myrta-ui 17.0.70 → 17.0.72
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/esm2022/lib/components/form/input-file-image/components/file-image-edit-modal/file-image-edit-modal.component.mjs +15 -12
- package/esm2022/lib/components/form/input-file-image/input-file-image.component.mjs +10 -4
- package/fesm2022/myrta-ui.mjs +23 -14
- package/fesm2022/myrta-ui.mjs.map +1 -1
- package/lib/components/form/input-file-image/components/file-image-edit-modal/file-image-edit-modal.component.d.ts +2 -1
- package/package.json +1 -1
|
@@ -30,14 +30,6 @@ export class FileImageEditModalComponent extends ModalServiceComponent {
|
|
|
30
30
|
this.aspectRatio = data.aspectRatio;
|
|
31
31
|
this.maintainAspectRatio = data.maintainAspectRatio;
|
|
32
32
|
}
|
|
33
|
-
async ok() {
|
|
34
|
-
this.result = {
|
|
35
|
-
result: true,
|
|
36
|
-
fileImage: convertBase64ToFile(this.croppedImage, this.fileImage.name, this.fileImage.type),
|
|
37
|
-
fileUrl: this.croppedImage
|
|
38
|
-
};
|
|
39
|
-
this.close();
|
|
40
|
-
}
|
|
41
33
|
rotateLeft() {
|
|
42
34
|
this.canvasRotation--;
|
|
43
35
|
this.flipAfterRotate();
|
|
@@ -72,18 +64,29 @@ export class FileImageEditModalComponent extends ModalServiceComponent {
|
|
|
72
64
|
loadImageFailed() {
|
|
73
65
|
// show message
|
|
74
66
|
}
|
|
75
|
-
|
|
67
|
+
async ok() {
|
|
68
|
+
this.result = {
|
|
69
|
+
result: true,
|
|
70
|
+
fileImage: convertBase64ToFile(this.croppedImage, this.fileImage.name, this.fileImage.type),
|
|
71
|
+
fileUrl: this.croppedImage
|
|
72
|
+
};
|
|
73
|
+
this.close();
|
|
74
|
+
}
|
|
75
|
+
cancel() {
|
|
76
76
|
this.result = { result: false };
|
|
77
|
+
this.close();
|
|
78
|
+
}
|
|
79
|
+
close() {
|
|
77
80
|
this.dialogRef.close(this.result);
|
|
78
81
|
}
|
|
79
82
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FileImageEditModalComponent, deps: [{ token: i1.ModalRef }, { token: MODAL_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
80
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FileImageEditModalComponent, selector: "mrx-file-image-edit-modal", usesInheritance: true, ngImport: i0, template: "<mrx-modal\r\n [title]=\"title\"\r\n [size]=\"'medium'\"\r\n (close)=\"
|
|
83
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FileImageEditModalComponent, selector: "mrx-file-image-edit-modal", usesInheritance: true, ngImport: i0, template: "<mrx-modal\r\n [title]=\"title\"\r\n [size]=\"'medium'\"\r\n (close)=\"cancel()\"\r\n>\r\n <div class=\"row\">\r\n <div class=\"col col-12\">\r\n <p>\u0412\u044B\u0431\u0440\u0430\u043D\u043D\u0430\u044F \u043E\u0431\u043B\u0430\u0441\u0442\u044C \u0431\u0443\u0434\u0435\u0442 \u043F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C\u0441\u044F \u043D\u0430 \u043E\u0431\u043B\u043E\u0436\u043A\u0435 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B</p>\r\n </div>\r\n\r\n <div class=\"col col-12\">\r\n <div class=\"mrx-input-image-cropper__wrapper\">\r\n <image-cropper\r\n format=\"png\"\r\n output=\"base64\"\r\n [alignImage]=\"'center'\"\r\n [imageFile]=\"fileImage\"\r\n [maintainAspectRatio]=\"maintainAspectRatio\"\r\n [aspectRatio]=\"aspectRatio\"\r\n [backgroundColor]=\"'#000000'\"\r\n [canvasRotation]=\"canvasRotation\"\r\n [transform]=\"transform\"\r\n [cropperMaxWidth]=\"cropperMaxWidth\"\r\n [cropperMaxHeight]=\"cropperMaxHeight\"\r\n (loadImageFailed)=\"loadImageFailed()\"\r\n (imageCropped)=\"imageCropped($event)\"\r\n (imageLoaded)=\"imageLoaded($event)\"\r\n (cropperReady)=\"cropperReady()\"\r\n ></image-cropper>\r\n\r\n <div class=\"mrx-input-image-cropper__controls\">\r\n <svg (click)=\"rotateLeft()\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"2\" y=\"15\" width=\"8\" height=\"8\" rx=\"0.888889\" stroke=\"white\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4.5 18.5C5.05228 18.5 5.5 18.0523 5.5 17.5C5.5 16.9477 5.05228 16.5 4.5 16.5C3.94772 16.5 3.5 16.9477 3.5 17.5C3.5 18.0523 3.94772 18.5 4.5 18.5Z\" stroke=\"white\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M9.99978 20.3333L7.77756 18.1111L2.88867 23\" stroke=\"white\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M13.1575 21.6842C18.5932 21.6842 22.9996 17.2777 22.9996 11.8421C22.9996 6.40646 18.5932 2 13.1575 2C7.72189 2 3.31543 6.40646 3.31543 11.8421\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\"/>\r\n <path d=\"M1.00026 10.1052L3.31605 12.421L5.63184 10.1052\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n\r\n <svg (click)=\"rotateRight()\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"14\" y=\"15\" width=\"8\" height=\"8\" rx=\"0.888889\" stroke=\"white\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M16.5 18.5C17.0523 18.5 17.5 18.0523 17.5 17.5C17.5 16.9477 17.0523 16.5 16.5 16.5C15.9477 16.5 15.5 16.9477 15.5 17.5C15.5 18.0523 15.9477 18.5 16.5 18.5Z\" stroke=\"white\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M21.9998 20.3333L19.7776 18.1111L14.8887 23\" stroke=\"white\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M10.8425 21.6842C5.40682 21.6842 1.00036 17.2777 1.00036 11.8421C1.00036 6.40646 5.40682 2 10.8425 2C16.2781 2 20.6846 6.40646 20.6846 11.8421\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\"/>\r\n <path d=\"M22.9997 10.1052L20.684 12.421L18.3682 10.1052\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <ng-template #footerContent>\r\n <mrx-button\r\n [customClasses]=\"'mr-3'\"\r\n [type]=\"'secondary'\"\r\n [size]=\"'medium'\"\r\n (click)=\"cancel()\"\r\n >\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C\r\n </mrx-button>\r\n <mrx-button\r\n [type]=\"'primary'\"\r\n [size]=\"'medium'\"\r\n (click)=\"ok()\"\r\n >\u041F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044C\r\n </mrx-button>\r\n </ng-template>\r\n</mrx-modal>\r\n\r\n\r\n", styles: [":host::ng-deep .mrx-input-image-cropper__wrapper{position:relative}:host::ng-deep .mrx-input-image-cropper__controls{padding:8px;background:#1f222680;border-radius:4px;position:absolute;left:50%;bottom:24px;transform:translate(-50%)}:host::ng-deep .mrx-input-image-cropper__controls svg{cursor:pointer}:host::ng-deep .mrx-input-image-cropper__controls svg:not(:last-child){margin-right:16px}\n"], dependencies: [{ kind: "component", type: i2.ModalComponent, selector: "mrx-modal", inputs: ["title", "message", "alert", "okText", "closeText", "size", "color", "customClasses", "expandable", "isEmbed", "isClose", "isBack", "backText", "enableFooter", "alignButtons", "isLoading", "iconPosition"], outputs: ["ok", "close", "back"] }, { kind: "component", type: i3.ButtonComponent, selector: "mrx-button", inputs: ["size", "type", "color", "iconPosition", "active", "disabled", "isLoading", "iconOnly", "customClasses", "label", "icon", "iconClass", "buttonType", "href", "target", "routerLink", "queryParams"], outputs: ["mrxClick"] }, { kind: "component", type: i4.ImageCropperComponent, selector: "image-cropper", inputs: ["imageChangedEvent", "imageURL", "imageBase64", "imageFile", "imageAltText", "options", "cropperFrameAriaLabel", "output", "format", "autoCrop", "cropper", "transform", "maintainAspectRatio", "aspectRatio", "resetCropOnAspectRatioChange", "resizeToWidth", "resizeToHeight", "cropperMinWidth", "cropperMinHeight", "cropperMaxHeight", "cropperMaxWidth", "cropperStaticWidth", "cropperStaticHeight", "canvasRotation", "initialStepSize", "roundCropper", "onlyScaleDown", "imageQuality", "backgroundColor", "containWithinAspectRatio", "hideResizeSquares", "allowMoveImage", "checkImageType", "alignImage", "disabled", "hidden"], outputs: ["imageCropped", "startCropImage", "imageLoaded", "cropperReady", "loadImageFailed", "transformChange", "cropperChange"] }] });
|
|
81
84
|
}
|
|
82
85
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FileImageEditModalComponent, decorators: [{
|
|
83
86
|
type: Component,
|
|
84
|
-
args: [{ selector: 'mrx-file-image-edit-modal', template: "<mrx-modal\r\n [title]=\"title\"\r\n [size]=\"'medium'\"\r\n (close)=\"
|
|
87
|
+
args: [{ selector: 'mrx-file-image-edit-modal', template: "<mrx-modal\r\n [title]=\"title\"\r\n [size]=\"'medium'\"\r\n (close)=\"cancel()\"\r\n>\r\n <div class=\"row\">\r\n <div class=\"col col-12\">\r\n <p>\u0412\u044B\u0431\u0440\u0430\u043D\u043D\u0430\u044F \u043E\u0431\u043B\u0430\u0441\u0442\u044C \u0431\u0443\u0434\u0435\u0442 \u043F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C\u0441\u044F \u043D\u0430 \u043E\u0431\u043B\u043E\u0436\u043A\u0435 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B</p>\r\n </div>\r\n\r\n <div class=\"col col-12\">\r\n <div class=\"mrx-input-image-cropper__wrapper\">\r\n <image-cropper\r\n format=\"png\"\r\n output=\"base64\"\r\n [alignImage]=\"'center'\"\r\n [imageFile]=\"fileImage\"\r\n [maintainAspectRatio]=\"maintainAspectRatio\"\r\n [aspectRatio]=\"aspectRatio\"\r\n [backgroundColor]=\"'#000000'\"\r\n [canvasRotation]=\"canvasRotation\"\r\n [transform]=\"transform\"\r\n [cropperMaxWidth]=\"cropperMaxWidth\"\r\n [cropperMaxHeight]=\"cropperMaxHeight\"\r\n (loadImageFailed)=\"loadImageFailed()\"\r\n (imageCropped)=\"imageCropped($event)\"\r\n (imageLoaded)=\"imageLoaded($event)\"\r\n (cropperReady)=\"cropperReady()\"\r\n ></image-cropper>\r\n\r\n <div class=\"mrx-input-image-cropper__controls\">\r\n <svg (click)=\"rotateLeft()\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"2\" y=\"15\" width=\"8\" height=\"8\" rx=\"0.888889\" stroke=\"white\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4.5 18.5C5.05228 18.5 5.5 18.0523 5.5 17.5C5.5 16.9477 5.05228 16.5 4.5 16.5C3.94772 16.5 3.5 16.9477 3.5 17.5C3.5 18.0523 3.94772 18.5 4.5 18.5Z\" stroke=\"white\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M9.99978 20.3333L7.77756 18.1111L2.88867 23\" stroke=\"white\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M13.1575 21.6842C18.5932 21.6842 22.9996 17.2777 22.9996 11.8421C22.9996 6.40646 18.5932 2 13.1575 2C7.72189 2 3.31543 6.40646 3.31543 11.8421\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\"/>\r\n <path d=\"M1.00026 10.1052L3.31605 12.421L5.63184 10.1052\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n\r\n <svg (click)=\"rotateRight()\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"14\" y=\"15\" width=\"8\" height=\"8\" rx=\"0.888889\" stroke=\"white\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M16.5 18.5C17.0523 18.5 17.5 18.0523 17.5 17.5C17.5 16.9477 17.0523 16.5 16.5 16.5C15.9477 16.5 15.5 16.9477 15.5 17.5C15.5 18.0523 15.9477 18.5 16.5 18.5Z\" stroke=\"white\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M21.9998 20.3333L19.7776 18.1111L14.8887 23\" stroke=\"white\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M10.8425 21.6842C5.40682 21.6842 1.00036 17.2777 1.00036 11.8421C1.00036 6.40646 5.40682 2 10.8425 2C16.2781 2 20.6846 6.40646 20.6846 11.8421\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\"/>\r\n <path d=\"M22.9997 10.1052L20.684 12.421L18.3682 10.1052\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <ng-template #footerContent>\r\n <mrx-button\r\n [customClasses]=\"'mr-3'\"\r\n [type]=\"'secondary'\"\r\n [size]=\"'medium'\"\r\n (click)=\"cancel()\"\r\n >\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C\r\n </mrx-button>\r\n <mrx-button\r\n [type]=\"'primary'\"\r\n [size]=\"'medium'\"\r\n (click)=\"ok()\"\r\n >\u041F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044C\r\n </mrx-button>\r\n </ng-template>\r\n</mrx-modal>\r\n\r\n\r\n", styles: [":host::ng-deep .mrx-input-image-cropper__wrapper{position:relative}:host::ng-deep .mrx-input-image-cropper__controls{padding:8px;background:#1f222680;border-radius:4px;position:absolute;left:50%;bottom:24px;transform:translate(-50%)}:host::ng-deep .mrx-input-image-cropper__controls svg{cursor:pointer}:host::ng-deep .mrx-input-image-cropper__controls svg:not(:last-child){margin-right:16px}\n"] }]
|
|
85
88
|
}], ctorParameters: () => [{ type: i1.ModalRef }, { type: undefined, decorators: [{
|
|
86
89
|
type: Inject,
|
|
87
90
|
args: [MODAL_DATA]
|
|
88
91
|
}] }] });
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1pbWFnZS1lZGl0LW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRhLXVpL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2lucHV0LWZpbGUtaW1hZ2UvY29tcG9uZW50cy9maWxlLWltYWdlLWVkaXQtbW9kYWwvZmlsZS1pbWFnZS1lZGl0LW1vZGFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRhLXVpL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2lucHV0LWZpbGUtaW1hZ2UvY29tcG9uZW50cy9maWxlLWltYWdlLWVkaXQtbW9kYWwvZmlsZS1pbWFnZS1lZGl0LW1vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBRXRHLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUN4RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7O0FBc0I3RCxNQUFNLE9BQU8sMkJBQTRCLFNBQVEscUJBQXVEO0lBYzVGO0lBWlYsS0FBSyxDQUFVO0lBQ2YsU0FBUyxDQUFPO0lBQ2hCLGVBQWUsQ0FBVTtJQUN6QixnQkFBZ0IsQ0FBVTtJQUMxQixXQUFXLENBQVU7SUFDckIsbUJBQW1CLENBQVc7SUFDOUIsaUJBQWlCLEdBQVEsRUFBRSxDQUFDO0lBQzVCLFlBQVksR0FBRyxFQUFFLENBQUM7SUFDbEIsY0FBYyxHQUFHLENBQUMsQ0FBQztJQUNuQixTQUFTLEdBQW1CLEVBQUUsQ0FBQztJQUUvQixZQUNVLFNBQW9DLEVBQ3hCLElBQXFCO1FBRXpDLEtBQUssRUFBRSxDQUFDO1FBSEEsY0FBUyxHQUFULFNBQVMsQ0FBMkI7UUFJNUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUMsQ0FBQztRQUU5QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUE7UUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFBO1FBQy9CLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQTtRQUMzQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFBO1FBQzdDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQTtRQUNuQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFBO0lBQ3JELENBQUM7SUFFTSxLQUFLLENBQUMsRUFBRTtRQUNiLElBQUksQ0FBQyxNQUFNLEdBQUc7WUFDWixNQUFNLEVBQUUsSUFBSTtZQUNaLFNBQVMsRUFBRSxtQkFBbUIsQ0FDNUIsSUFBSSxDQUFDLFlBQVksRUFDakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUNwQjtZQUNELE9BQU8sRUFBRSxJQUFJLENBQUMsWUFBWTtTQUMzQixDQUFDO1FBQ0YsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2YsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRU8sZUFBZTtRQUNyQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztRQUN0QyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztRQUN0QyxJQUFJLENBQUMsU0FBUyxHQUFHO1lBQ2YsR0FBRyxJQUFJLENBQUMsU0FBUztZQUNqQixLQUFLLEVBQUUsUUFBUTtZQUNmLEtBQUssRUFBRSxRQUFRO1NBQ2hCLENBQUM7SUFDSixDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQVU7UUFDeEIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztJQUNqQyxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQXdCO1FBQ25DLElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUNuQyxDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFrQjtRQUM1QixxQkFBcUI7SUFDdkIsQ0FBQztJQUVELFlBQVk7UUFDVixnQkFBZ0I7SUFDbEIsQ0FBQztJQUVELGVBQWU7UUFDYixlQUFlO0lBQ2pCLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUMsQ0FBQTtRQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEMsQ0FBQzt3R0F0RlUsMkJBQTJCLDBDQWU1QixVQUFVOzRGQWZULDJCQUEyQix3RkMzQnhDLDJwSUFxRUE7OzRGRDFDYSwyQkFBMkI7a0JBTHZDLFNBQVM7K0JBQ0UsMkJBQTJCOzswQkFtQmxDLE1BQU07MkJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEltYWdlQ3JvcHBlZEV2ZW50LCBJbWFnZVRyYW5zZm9ybSwgTG9hZGVkSW1hZ2UgfSBmcm9tICduZ3gtaW1hZ2UtY3JvcHBlcic7XHJcbmltcG9ydCB7IE1vZGFsU2VydmljZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NlcnZpY2VzL21vZGFsLXNlcnZpY2UvaGVscGVycy9tb2RhbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNb2RhbFJlZiB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NlcnZpY2VzL21vZGFsLXNlcnZpY2UvaGVscGVycy9tb2RhbC1yZWYnO1xyXG5pbXBvcnQgeyBNT0RBTF9EQVRBIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2VydmljZXMvbW9kYWwtc2VydmljZS9oZWxwZXJzL21vZGFsLXRva2Vucyc7XHJcbmltcG9ydCB7IGNvbnZlcnRCYXNlNjRUb0ZpbGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9oZWxwZXJzJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSW1hZ2VFZGl0U2VsZWN0IHtcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIGZpbGVJbWFnZT86IGFueTtcclxuICBjcm9wcGVyTWF4V2lkdGg6IG51bWJlcjtcclxuICBjcm9wcGVyTWF4SGVpZ2h0OiBudW1iZXI7XHJcbiAgYXNwZWN0UmF0aW86IG51bWJlcjtcclxuICBtYWludGFpbkFzcGVjdFJhdGlvOiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEltYWdlRWRpdFJlc3VsdCB7XHJcbiAgcmVzdWx0OiBib29sZWFuLFxyXG4gIGZpbGVJbWFnZT86IEZpbGUsXHJcbiAgZmlsZVVybD86IHN0cmluZ1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ21yeC1maWxlLWltYWdlLWVkaXQtbW9kYWwnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9maWxlLWltYWdlLWVkaXQtbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ZpbGUtaW1hZ2UtZWRpdC1tb2RhbC5jb21wb25lbnQubGVzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGaWxlSW1hZ2VFZGl0TW9kYWxDb21wb25lbnQgZXh0ZW5kcyBNb2RhbFNlcnZpY2VDb21wb25lbnQ8SW1hZ2VFZGl0U2VsZWN0LCBJbWFnZUVkaXRSZXN1bHQ+IHtcclxuXHJcbiAgdGl0bGUhOiBzdHJpbmc7XHJcbiAgZmlsZUltYWdlPzogYW55O1xyXG4gIGNyb3BwZXJNYXhXaWR0aCE6IG51bWJlcjtcclxuICBjcm9wcGVyTWF4SGVpZ2h0ITogbnVtYmVyO1xyXG4gIGFzcGVjdFJhdGlvITogbnVtYmVyO1xyXG4gIG1haW50YWluQXNwZWN0UmF0aW8hOiBib29sZWFuO1xyXG4gIGltYWdlQ2hhbmdlZEV2ZW50OiBhbnkgPSAnJztcclxuICBjcm9wcGVkSW1hZ2UgPSAnJztcclxuICBjYW52YXNSb3RhdGlvbiA9IDA7XHJcbiAgdHJhbnNmb3JtOiBJbWFnZVRyYW5zZm9ybSA9IHt9O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZGlhbG9nUmVmOiBNb2RhbFJlZjxJbWFnZUVkaXRSZXN1bHQ+LFxyXG4gICAgQEluamVjdChNT0RBTF9EQVRBKSBkYXRhOiBJbWFnZUVkaXRTZWxlY3QsXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgdGhpcy5yZXN1bHQgPSB7cmVzdWx0OiBmYWxzZX07XHJcblxyXG4gICAgdGhpcy50aXRsZSA9IGRhdGEudGl0bGVcclxuICAgIHRoaXMuZmlsZUltYWdlID0gZGF0YS5maWxlSW1hZ2VcclxuICAgIHRoaXMuY3JvcHBlck1heFdpZHRoID0gZGF0YS5jcm9wcGVyTWF4V2lkdGhcclxuICAgIHRoaXMuY3JvcHBlck1heEhlaWdodCA9IGRhdGEuY3JvcHBlck1heEhlaWdodFxyXG4gICAgdGhpcy5hc3BlY3RSYXRpbyA9IGRhdGEuYXNwZWN0UmF0aW9cclxuICAgIHRoaXMubWFpbnRhaW5Bc3BlY3RSYXRpbyA9IGRhdGEubWFpbnRhaW5Bc3BlY3RSYXRpb1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIG9rKCkge1xyXG4gICAgdGhpcy5yZXN1bHQgPSB7XHJcbiAgICAgIHJlc3VsdDogdHJ1ZSxcclxuICAgICAgZmlsZUltYWdlOiBjb252ZXJ0QmFzZTY0VG9GaWxlKFxyXG4gICAgICAgIHRoaXMuY3JvcHBlZEltYWdlLFxyXG4gICAgICAgIHRoaXMuZmlsZUltYWdlLm5hbWUsXHJcbiAgICAgICAgdGhpcy5maWxlSW1hZ2UudHlwZVxyXG4gICAgICApLFxyXG4gICAgICBmaWxlVXJsOiB0aGlzLmNyb3BwZWRJbWFnZVxyXG4gICAgfTtcclxuICAgIHRoaXMuY2xvc2UoKTtcclxuICB9XHJcblxyXG4gIHJvdGF0ZUxlZnQoKSB7XHJcbiAgICB0aGlzLmNhbnZhc1JvdGF0aW9uLS07XHJcbiAgICB0aGlzLmZsaXBBZnRlclJvdGF0ZSgpO1xyXG4gIH1cclxuXHJcbiAgcm90YXRlUmlnaHQoKSB7XHJcbiAgICB0aGlzLmNhbnZhc1JvdGF0aW9uKys7XHJcbiAgICB0aGlzLmZsaXBBZnRlclJvdGF0ZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmbGlwQWZ0ZXJSb3RhdGUoKSB7XHJcbiAgICBjb25zdCBmbGlwcGVkSCA9IHRoaXMudHJhbnNmb3JtLmZsaXBIO1xyXG4gICAgY29uc3QgZmxpcHBlZFYgPSB0aGlzLnRyYW5zZm9ybS5mbGlwVjtcclxuICAgIHRoaXMudHJhbnNmb3JtID0ge1xyXG4gICAgICAuLi50aGlzLnRyYW5zZm9ybSxcclxuICAgICAgZmxpcEg6IGZsaXBwZWRWLFxyXG4gICAgICBmbGlwVjogZmxpcHBlZEhcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBmaWxlQ2hhbmdlRXZlbnQoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5pbWFnZUNoYW5nZWRFdmVudCA9IGV2ZW50O1xyXG4gIH1cclxuXHJcbiAgaW1hZ2VDcm9wcGVkKGV2ZW50OiBJbWFnZUNyb3BwZWRFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKGV2ZW50LmJhc2U2NCkge1xyXG4gICAgICB0aGlzLmNyb3BwZWRJbWFnZSA9IGV2ZW50LmJhc2U2NDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGltYWdlTG9hZGVkKGltYWdlOiBMb2FkZWRJbWFnZSkge1xyXG4gICAgLy8gY29uc29sZS5sb2coaW1hZ2UpXHJcbiAgfVxyXG5cclxuICBjcm9wcGVyUmVhZHkoKSB7XHJcbiAgICAvLyBjcm9wcGVyIHJlYWR5XHJcbiAgfVxyXG5cclxuICBsb2FkSW1hZ2VGYWlsZWQoKSB7XHJcbiAgICAvLyBzaG93IG1lc3NhZ2VcclxuICB9XHJcblxyXG4gIGNsb3NlKCkge1xyXG4gICAgdGhpcy5yZXN1bHQgPSB7cmVzdWx0OiBmYWxzZX1cclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHRoaXMucmVzdWx0KTtcclxuICB9XHJcbn1cclxuIiwiPG1yeC1tb2RhbFxyXG4gIFt0aXRsZV09XCJ0aXRsZVwiXHJcbiAgW3NpemVdPVwiJ21lZGl1bSdcIlxyXG4gIChjbG9zZSk9XCJjbG9zZSgpXCJcclxuPlxyXG4gIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTEyXCI+XHJcbiAgICAgIDxwPtCS0YvQsdGA0LDQvdC90LDRjyDQvtCx0LvQsNGB0YLRjCDQsdGD0LTQtdGCINC/0L7QutCw0LfRi9Cy0LDRgtGM0YHRjyDQvdCwINC+0LHQu9C+0LbQutC1INGB0YLRgNCw0L3QuNGG0Ys8L3A+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC0xMlwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibXJ4LWlucHV0LWltYWdlLWNyb3BwZXJfX3dyYXBwZXJcIj5cclxuICAgICAgICA8aW1hZ2UtY3JvcHBlclxyXG4gICAgICAgICAgZm9ybWF0PVwicG5nXCJcclxuICAgICAgICAgIG91dHB1dD1cImJhc2U2NFwiXHJcbiAgICAgICAgICBbYWxpZ25JbWFnZV09XCInY2VudGVyJ1wiXHJcbiAgICAgICAgICBbaW1hZ2VGaWxlXT1cImZpbGVJbWFnZVwiXHJcbiAgICAgICAgICBbbWFpbnRhaW5Bc3BlY3RSYXRpb109XCJtYWludGFpbkFzcGVjdFJhdGlvXCJcclxuICAgICAgICAgIFthc3BlY3RSYXRpb109XCJhc3BlY3RSYXRpb1wiXHJcbiAgICAgICAgICBbYmFja2dyb3VuZENvbG9yXT1cIicjMDAwMDAwJ1wiXHJcbiAgICAgICAgICBbY2FudmFzUm90YXRpb25dPVwiY2FudmFzUm90YXRpb25cIlxyXG4gICAgICAgICAgW3RyYW5zZm9ybV09XCJ0cmFuc2Zvcm1cIlxyXG4gICAgICAgICAgW2Nyb3BwZXJNYXhXaWR0aF09XCJjcm9wcGVyTWF4V2lkdGhcIlxyXG4gICAgICAgICAgW2Nyb3BwZXJNYXhIZWlnaHRdPVwiY3JvcHBlck1heEhlaWdodFwiXHJcbiAgICAgICAgICAobG9hZEltYWdlRmFpbGVkKT1cImxvYWRJbWFnZUZhaWxlZCgpXCJcclxuICAgICAgICAgIChpbWFnZUNyb3BwZWQpPVwiaW1hZ2VDcm9wcGVkKCRldmVudClcIlxyXG4gICAgICAgICAgKGltYWdlTG9hZGVkKT1cImltYWdlTG9hZGVkKCRldmVudClcIlxyXG4gICAgICAgICAgKGNyb3BwZXJSZWFkeSk9XCJjcm9wcGVyUmVhZHkoKVwiXHJcbiAgICAgICAgPjwvaW1hZ2UtY3JvcHBlcj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1pbnB1dC1pbWFnZS1jcm9wcGVyX19jb250cm9sc1wiPlxyXG4gICAgICAgICAgPHN2ZyAoY2xpY2spPVwicm90YXRlTGVmdCgpXCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICA8cmVjdCB4PVwiMlwiIHk9XCIxNVwiIHdpZHRoPVwiOFwiIGhlaWdodD1cIjhcIiByeD1cIjAuODg4ODg5XCIgc3Ryb2tlPVwid2hpdGVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCIgZD1cIk00LjUgMTguNUM1LjA1MjI4IDE4LjUgNS41IDE4LjA1MjMgNS41IDE3LjVDNS41IDE2Ljk0NzcgNS4wNTIyOCAxNi41IDQuNSAxNi41QzMuOTQ3NzIgMTYuNSAzLjUgMTYuOTQ3NyAzLjUgMTcuNUMzLjUgMTguMDUyMyAzLjk0NzcyIDE4LjUgNC41IDE4LjVaXCIgc3Ryb2tlPVwid2hpdGVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNOS45OTk3OCAyMC4zMzMzTDcuNzc3NTYgMTguMTExMUwyLjg4ODY3IDIzXCIgc3Ryb2tlPVwid2hpdGVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTMuMTU3NSAyMS42ODQyQzE4LjU5MzIgMjEuNjg0MiAyMi45OTk2IDE3LjI3NzcgMjIuOTk5NiAxMS44NDIxQzIyLjk5OTYgNi40MDY0NiAxOC41OTMyIDIgMTMuMTU3NSAyQzcuNzIxODkgMiAzLjMxNTQzIDYuNDA2NDYgMy4zMTU0MyAxMS44NDIxXCIgc3Ryb2tlPVwid2hpdGVcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICA8cGF0aCBkPVwiTTEuMDAwMjYgMTAuMTA1MkwzLjMxNjA1IDEyLjQyMUw1LjYzMTg0IDEwLjEwNTJcIiBzdHJva2U9XCJ3aGl0ZVwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgIDwvc3ZnPlxyXG5cclxuICAgICAgICAgIDxzdmcgKGNsaWNrKT1cInJvdGF0ZVJpZ2h0KClcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgIDxyZWN0IHg9XCIxNFwiIHk9XCIxNVwiIHdpZHRoPVwiOFwiIGhlaWdodD1cIjhcIiByeD1cIjAuODg4ODg5XCIgc3Ryb2tlPVwid2hpdGVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xNi41IDE4LjVDMTcuMDUyMyAxOC41IDE3LjUgMTguMDUyMyAxNy41IDE3LjVDMTcuNSAxNi45NDc3IDE3LjA1MjMgMTYuNSAxNi41IDE2LjVDMTUuOTQ3NyAxNi41IDE1LjUgMTYuOTQ3NyAxNS41IDE3LjVDMTUuNSAxOC4wNTIzIDE1Ljk0NzcgMTguNSAxNi41IDE4LjVaXCIgc3Ryb2tlPVwid2hpdGVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNMjEuOTk5OCAyMC4zMzMzTDE5Ljc3NzYgMTguMTExMUwxNC44ODg3IDIzXCIgc3Ryb2tlPVwid2hpdGVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTAuODQyNSAyMS42ODQyQzUuNDA2ODIgMjEuNjg0MiAxLjAwMDM2IDE3LjI3NzcgMS4wMDAzNiAxMS44NDIxQzEuMDAwMzYgNi40MDY0NiA1LjQwNjgyIDIgMTAuODQyNSAyQzE2LjI3ODEgMiAyMC42ODQ2IDYuNDA2NDYgMjAuNjg0NiAxMS44NDIxXCIgc3Ryb2tlPVwid2hpdGVcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICA8cGF0aCBkPVwiTTIyLjk5OTcgMTAuMTA1MkwyMC42ODQgMTIuNDIxTDE4LjM2ODIgMTAuMTA1MlwiIHN0cm9rZT1cIndoaXRlXCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSAjZm9vdGVyQ29udGVudD5cclxuICAgIDxtcngtYnV0dG9uXHJcbiAgICAgIFtjdXN0b21DbGFzc2VzXT1cIidtci0zJ1wiXHJcbiAgICAgIFt0eXBlXT1cIidzZWNvbmRhcnknXCJcclxuICAgICAgW3NpemVdPVwiJ21lZGl1bSdcIlxyXG4gICAgICAoY2xpY2spPVwiY2xvc2UoKVwiXHJcbiAgICA+0J7RgtC80LXQvdC40YLRjFxyXG4gICAgPC9tcngtYnV0dG9uPlxyXG4gICAgPG1yeC1idXR0b25cclxuICAgICAgW3R5cGVdPVwiJ3ByaW1hcnknXCJcclxuICAgICAgW3NpemVdPVwiJ21lZGl1bSdcIlxyXG4gICAgICAoY2xpY2spPVwib2soKVwiXHJcbiAgICA+0J/QvtC00YLQstC10YDQtNC40YLRjFxyXG4gICAgPC9tcngtYnV0dG9uPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbjwvbXJ4LW1vZGFsPlxyXG5cclxuXHJcbiJdfQ==
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1pbWFnZS1lZGl0LW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRhLXVpL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2lucHV0LWZpbGUtaW1hZ2UvY29tcG9uZW50cy9maWxlLWltYWdlLWVkaXQtbW9kYWwvZmlsZS1pbWFnZS1lZGl0LW1vZGFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRhLXVpL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2lucHV0LWZpbGUtaW1hZ2UvY29tcG9uZW50cy9maWxlLWltYWdlLWVkaXQtbW9kYWwvZmlsZS1pbWFnZS1lZGl0LW1vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBRXRHLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUN4RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7O0FBc0I3RCxNQUFNLE9BQU8sMkJBQTRCLFNBQVEscUJBQXVEO0lBYzVGO0lBWlYsS0FBSyxDQUFVO0lBQ2YsU0FBUyxDQUFPO0lBQ2hCLGVBQWUsQ0FBVTtJQUN6QixnQkFBZ0IsQ0FBVTtJQUMxQixXQUFXLENBQVU7SUFDckIsbUJBQW1CLENBQVc7SUFDOUIsaUJBQWlCLEdBQVEsRUFBRSxDQUFDO0lBQzVCLFlBQVksR0FBRyxFQUFFLENBQUM7SUFDbEIsY0FBYyxHQUFHLENBQUMsQ0FBQztJQUNuQixTQUFTLEdBQW1CLEVBQUUsQ0FBQztJQUUvQixZQUNVLFNBQW9DLEVBQ3hCLElBQXFCO1FBRXpDLEtBQUssRUFBRSxDQUFDO1FBSEEsY0FBUyxHQUFULFNBQVMsQ0FBMkI7UUFJNUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUMsQ0FBQztRQUU5QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUE7UUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFBO1FBQy9CLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQTtRQUMzQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFBO1FBQzdDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQTtRQUNuQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFBO0lBQ3JELENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVPLGVBQWU7UUFDckIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7UUFDdEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7UUFDdEMsSUFBSSxDQUFDLFNBQVMsR0FBRztZQUNmLEdBQUcsSUFBSSxDQUFDLFNBQVM7WUFDakIsS0FBSyxFQUFFLFFBQVE7WUFDZixLQUFLLEVBQUUsUUFBUTtTQUNoQixDQUFDO0lBQ0osQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFVO1FBQ3hCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7SUFDakMsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUF3QjtRQUNuQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDbkMsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsS0FBa0I7UUFDNUIscUJBQXFCO0lBQ3ZCLENBQUM7SUFFRCxZQUFZO1FBQ1YsZ0JBQWdCO0lBQ2xCLENBQUM7SUFFRCxlQUFlO1FBQ2IsZUFBZTtJQUNqQixDQUFDO0lBRU0sS0FBSyxDQUFDLEVBQUU7UUFDYixJQUFJLENBQUMsTUFBTSxHQUFHO1lBQ1osTUFBTSxFQUFFLElBQUk7WUFDWixTQUFTLEVBQUUsbUJBQW1CLENBQzVCLElBQUksQ0FBQyxZQUFZLEVBQ2pCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUNuQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FDcEI7WUFDRCxPQUFPLEVBQUUsSUFBSSxDQUFDLFlBQVk7U0FDM0IsQ0FBQztRQUVGLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNmLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUMsQ0FBQTtRQUM3QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUE7SUFDZCxDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwQyxDQUFDO3dHQTNGVSwyQkFBMkIsMENBZTVCLFVBQVU7NEZBZlQsMkJBQTJCLHdGQzNCeEMsNnBJQXFFQTs7NEZEMUNhLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDRSwyQkFBMkI7OzBCQW1CbEMsTUFBTTsyQkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSW1hZ2VDcm9wcGVkRXZlbnQsIEltYWdlVHJhbnNmb3JtLCBMb2FkZWRJbWFnZSB9IGZyb20gJ25neC1pbWFnZS1jcm9wcGVyJztcclxuaW1wb3J0IHsgTW9kYWxTZXJ2aWNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2VydmljZXMvbW9kYWwtc2VydmljZS9oZWxwZXJzL21vZGFsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1vZGFsUmVmIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2VydmljZXMvbW9kYWwtc2VydmljZS9oZWxwZXJzL21vZGFsLXJlZic7XHJcbmltcG9ydCB7IE1PREFMX0RBVEEgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zZXJ2aWNlcy9tb2RhbC1zZXJ2aWNlL2hlbHBlcnMvbW9kYWwtdG9rZW5zJztcclxuaW1wb3J0IHsgY29udmVydEJhc2U2NFRvRmlsZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2hlbHBlcnMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJbWFnZUVkaXRTZWxlY3Qge1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgZmlsZUltYWdlPzogYW55O1xyXG4gIGNyb3BwZXJNYXhXaWR0aDogbnVtYmVyO1xyXG4gIGNyb3BwZXJNYXhIZWlnaHQ6IG51bWJlcjtcclxuICBhc3BlY3RSYXRpbzogbnVtYmVyO1xyXG4gIG1haW50YWluQXNwZWN0UmF0aW86IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSW1hZ2VFZGl0UmVzdWx0IHtcclxuICByZXN1bHQ6IGJvb2xlYW4sXHJcbiAgZmlsZUltYWdlPzogRmlsZSxcclxuICBmaWxlVXJsPzogc3RyaW5nXHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbXJ4LWZpbGUtaW1hZ2UtZWRpdC1tb2RhbCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbGUtaW1hZ2UtZWRpdC1tb2RhbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZmlsZS1pbWFnZS1lZGl0LW1vZGFsLmNvbXBvbmVudC5sZXNzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEZpbGVJbWFnZUVkaXRNb2RhbENvbXBvbmVudCBleHRlbmRzIE1vZGFsU2VydmljZUNvbXBvbmVudDxJbWFnZUVkaXRTZWxlY3QsIEltYWdlRWRpdFJlc3VsdD4ge1xyXG5cclxuICB0aXRsZSE6IHN0cmluZztcclxuICBmaWxlSW1hZ2U/OiBhbnk7XHJcbiAgY3JvcHBlck1heFdpZHRoITogbnVtYmVyO1xyXG4gIGNyb3BwZXJNYXhIZWlnaHQhOiBudW1iZXI7XHJcbiAgYXNwZWN0UmF0aW8hOiBudW1iZXI7XHJcbiAgbWFpbnRhaW5Bc3BlY3RSYXRpbyE6IGJvb2xlYW47XHJcbiAgaW1hZ2VDaGFuZ2VkRXZlbnQ6IGFueSA9ICcnO1xyXG4gIGNyb3BwZWRJbWFnZSA9ICcnO1xyXG4gIGNhbnZhc1JvdGF0aW9uID0gMDtcclxuICB0cmFuc2Zvcm06IEltYWdlVHJhbnNmb3JtID0ge307XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBkaWFsb2dSZWY6IE1vZGFsUmVmPEltYWdlRWRpdFJlc3VsdD4sXHJcbiAgICBASW5qZWN0KE1PREFMX0RBVEEpIGRhdGE6IEltYWdlRWRpdFNlbGVjdCxcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICB0aGlzLnJlc3VsdCA9IHtyZXN1bHQ6IGZhbHNlfTtcclxuXHJcbiAgICB0aGlzLnRpdGxlID0gZGF0YS50aXRsZVxyXG4gICAgdGhpcy5maWxlSW1hZ2UgPSBkYXRhLmZpbGVJbWFnZVxyXG4gICAgdGhpcy5jcm9wcGVyTWF4V2lkdGggPSBkYXRhLmNyb3BwZXJNYXhXaWR0aFxyXG4gICAgdGhpcy5jcm9wcGVyTWF4SGVpZ2h0ID0gZGF0YS5jcm9wcGVyTWF4SGVpZ2h0XHJcbiAgICB0aGlzLmFzcGVjdFJhdGlvID0gZGF0YS5hc3BlY3RSYXRpb1xyXG4gICAgdGhpcy5tYWludGFpbkFzcGVjdFJhdGlvID0gZGF0YS5tYWludGFpbkFzcGVjdFJhdGlvXHJcbiAgfVxyXG5cclxuICByb3RhdGVMZWZ0KCkge1xyXG4gICAgdGhpcy5jYW52YXNSb3RhdGlvbi0tO1xyXG4gICAgdGhpcy5mbGlwQWZ0ZXJSb3RhdGUoKTtcclxuICB9XHJcblxyXG4gIHJvdGF0ZVJpZ2h0KCkge1xyXG4gICAgdGhpcy5jYW52YXNSb3RhdGlvbisrO1xyXG4gICAgdGhpcy5mbGlwQWZ0ZXJSb3RhdGUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZmxpcEFmdGVyUm90YXRlKCkge1xyXG4gICAgY29uc3QgZmxpcHBlZEggPSB0aGlzLnRyYW5zZm9ybS5mbGlwSDtcclxuICAgIGNvbnN0IGZsaXBwZWRWID0gdGhpcy50cmFuc2Zvcm0uZmxpcFY7XHJcbiAgICB0aGlzLnRyYW5zZm9ybSA9IHtcclxuICAgICAgLi4udGhpcy50cmFuc2Zvcm0sXHJcbiAgICAgIGZsaXBIOiBmbGlwcGVkVixcclxuICAgICAgZmxpcFY6IGZsaXBwZWRIXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgZmlsZUNoYW5nZUV2ZW50KGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuaW1hZ2VDaGFuZ2VkRXZlbnQgPSBldmVudDtcclxuICB9XHJcblxyXG4gIGltYWdlQ3JvcHBlZChldmVudDogSW1hZ2VDcm9wcGVkRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmIChldmVudC5iYXNlNjQpIHtcclxuICAgICAgdGhpcy5jcm9wcGVkSW1hZ2UgPSBldmVudC5iYXNlNjQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpbWFnZUxvYWRlZChpbWFnZTogTG9hZGVkSW1hZ2UpIHtcclxuICAgIC8vIGNvbnNvbGUubG9nKGltYWdlKVxyXG4gIH1cclxuXHJcbiAgY3JvcHBlclJlYWR5KCkge1xyXG4gICAgLy8gY3JvcHBlciByZWFkeVxyXG4gIH1cclxuXHJcbiAgbG9hZEltYWdlRmFpbGVkKCkge1xyXG4gICAgLy8gc2hvdyBtZXNzYWdlXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgb2soKSB7XHJcbiAgICB0aGlzLnJlc3VsdCA9IHtcclxuICAgICAgcmVzdWx0OiB0cnVlLFxyXG4gICAgICBmaWxlSW1hZ2U6IGNvbnZlcnRCYXNlNjRUb0ZpbGUoXHJcbiAgICAgICAgdGhpcy5jcm9wcGVkSW1hZ2UsXHJcbiAgICAgICAgdGhpcy5maWxlSW1hZ2UubmFtZSxcclxuICAgICAgICB0aGlzLmZpbGVJbWFnZS50eXBlXHJcbiAgICAgICksXHJcbiAgICAgIGZpbGVVcmw6IHRoaXMuY3JvcHBlZEltYWdlXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMuY2xvc2UoKTtcclxuICB9XHJcblxyXG4gIGNhbmNlbCgpIHtcclxuICAgIHRoaXMucmVzdWx0ID0ge3Jlc3VsdDogZmFsc2V9XHJcbiAgICB0aGlzLmNsb3NlKClcclxuICB9XHJcblxyXG4gIGNsb3NlKCkge1xyXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UodGhpcy5yZXN1bHQpO1xyXG4gIH1cclxufVxyXG4iLCI8bXJ4LW1vZGFsXHJcbiAgW3RpdGxlXT1cInRpdGxlXCJcclxuICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgKGNsb3NlKT1cImNhbmNlbCgpXCJcclxuPlxyXG4gIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTEyXCI+XHJcbiAgICAgIDxwPtCS0YvQsdGA0LDQvdC90LDRjyDQvtCx0LvQsNGB0YLRjCDQsdGD0LTQtdGCINC/0L7QutCw0LfRi9Cy0LDRgtGM0YHRjyDQvdCwINC+0LHQu9C+0LbQutC1INGB0YLRgNCw0L3QuNGG0Ys8L3A+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC0xMlwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibXJ4LWlucHV0LWltYWdlLWNyb3BwZXJfX3dyYXBwZXJcIj5cclxuICAgICAgICA8aW1hZ2UtY3JvcHBlclxyXG4gICAgICAgICAgZm9ybWF0PVwicG5nXCJcclxuICAgICAgICAgIG91dHB1dD1cImJhc2U2NFwiXHJcbiAgICAgICAgICBbYWxpZ25JbWFnZV09XCInY2VudGVyJ1wiXHJcbiAgICAgICAgICBbaW1hZ2VGaWxlXT1cImZpbGVJbWFnZVwiXHJcbiAgICAgICAgICBbbWFpbnRhaW5Bc3BlY3RSYXRpb109XCJtYWludGFpbkFzcGVjdFJhdGlvXCJcclxuICAgICAgICAgIFthc3BlY3RSYXRpb109XCJhc3BlY3RSYXRpb1wiXHJcbiAgICAgICAgICBbYmFja2dyb3VuZENvbG9yXT1cIicjMDAwMDAwJ1wiXHJcbiAgICAgICAgICBbY2FudmFzUm90YXRpb25dPVwiY2FudmFzUm90YXRpb25cIlxyXG4gICAgICAgICAgW3RyYW5zZm9ybV09XCJ0cmFuc2Zvcm1cIlxyXG4gICAgICAgICAgW2Nyb3BwZXJNYXhXaWR0aF09XCJjcm9wcGVyTWF4V2lkdGhcIlxyXG4gICAgICAgICAgW2Nyb3BwZXJNYXhIZWlnaHRdPVwiY3JvcHBlck1heEhlaWdodFwiXHJcbiAgICAgICAgICAobG9hZEltYWdlRmFpbGVkKT1cImxvYWRJbWFnZUZhaWxlZCgpXCJcclxuICAgICAgICAgIChpbWFnZUNyb3BwZWQpPVwiaW1hZ2VDcm9wcGVkKCRldmVudClcIlxyXG4gICAgICAgICAgKGltYWdlTG9hZGVkKT1cImltYWdlTG9hZGVkKCRldmVudClcIlxyXG4gICAgICAgICAgKGNyb3BwZXJSZWFkeSk9XCJjcm9wcGVyUmVhZHkoKVwiXHJcbiAgICAgICAgPjwvaW1hZ2UtY3JvcHBlcj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1pbnB1dC1pbWFnZS1jcm9wcGVyX19jb250cm9sc1wiPlxyXG4gICAgICAgICAgPHN2ZyAoY2xpY2spPVwicm90YXRlTGVmdCgpXCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICA8cmVjdCB4PVwiMlwiIHk9XCIxNVwiIHdpZHRoPVwiOFwiIGhlaWdodD1cIjhcIiByeD1cIjAuODg4ODg5XCIgc3Ryb2tlPVwid2hpdGVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCIgZD1cIk00LjUgMTguNUM1LjA1MjI4IDE4LjUgNS41IDE4LjA1MjMgNS41IDE3LjVDNS41IDE2Ljk0NzcgNS4wNTIyOCAxNi41IDQuNSAxNi41QzMuOTQ3NzIgMTYuNSAzLjUgMTYuOTQ3NyAzLjUgMTcuNUMzLjUgMTguMDUyMyAzLjk0NzcyIDE4LjUgNC41IDE4LjVaXCIgc3Ryb2tlPVwid2hpdGVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNOS45OTk3OCAyMC4zMzMzTDcuNzc3NTYgMTguMTExMUwyLjg4ODY3IDIzXCIgc3Ryb2tlPVwid2hpdGVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTMuMTU3NSAyMS42ODQyQzE4LjU5MzIgMjEuNjg0MiAyMi45OTk2IDE3LjI3NzcgMjIuOTk5NiAxMS44NDIxQzIyLjk5OTYgNi40MDY0NiAxOC41OTMyIDIgMTMuMTU3NSAyQzcuNzIxODkgMiAzLjMxNTQzIDYuNDA2NDYgMy4zMTU0MyAxMS44NDIxXCIgc3Ryb2tlPVwid2hpdGVcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICA8cGF0aCBkPVwiTTEuMDAwMjYgMTAuMTA1MkwzLjMxNjA1IDEyLjQyMUw1LjYzMTg0IDEwLjEwNTJcIiBzdHJva2U9XCJ3aGl0ZVwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgIDwvc3ZnPlxyXG5cclxuICAgICAgICAgIDxzdmcgKGNsaWNrKT1cInJvdGF0ZVJpZ2h0KClcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgIDxyZWN0IHg9XCIxNFwiIHk9XCIxNVwiIHdpZHRoPVwiOFwiIGhlaWdodD1cIjhcIiByeD1cIjAuODg4ODg5XCIgc3Ryb2tlPVwid2hpdGVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xNi41IDE4LjVDMTcuMDUyMyAxOC41IDE3LjUgMTguMDUyMyAxNy41IDE3LjVDMTcuNSAxNi45NDc3IDE3LjA1MjMgMTYuNSAxNi41IDE2LjVDMTUuOTQ3NyAxNi41IDE1LjUgMTYuOTQ3NyAxNS41IDE3LjVDMTUuNSAxOC4wNTIzIDE1Ljk0NzcgMTguNSAxNi41IDE4LjVaXCIgc3Ryb2tlPVwid2hpdGVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNMjEuOTk5OCAyMC4zMzMzTDE5Ljc3NzYgMTguMTExMUwxNC44ODg3IDIzXCIgc3Ryb2tlPVwid2hpdGVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTAuODQyNSAyMS42ODQyQzUuNDA2ODIgMjEuNjg0MiAxLjAwMDM2IDE3LjI3NzcgMS4wMDAzNiAxMS44NDIxQzEuMDAwMzYgNi40MDY0NiA1LjQwNjgyIDIgMTAuODQyNSAyQzE2LjI3ODEgMiAyMC42ODQ2IDYuNDA2NDYgMjAuNjg0NiAxMS44NDIxXCIgc3Ryb2tlPVwid2hpdGVcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICA8cGF0aCBkPVwiTTIyLjk5OTcgMTAuMTA1MkwyMC42ODQgMTIuNDIxTDE4LjM2ODIgMTAuMTA1MlwiIHN0cm9rZT1cIndoaXRlXCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSAjZm9vdGVyQ29udGVudD5cclxuICAgIDxtcngtYnV0dG9uXHJcbiAgICAgIFtjdXN0b21DbGFzc2VzXT1cIidtci0zJ1wiXHJcbiAgICAgIFt0eXBlXT1cIidzZWNvbmRhcnknXCJcclxuICAgICAgW3NpemVdPVwiJ21lZGl1bSdcIlxyXG4gICAgICAoY2xpY2spPVwiY2FuY2VsKClcIlxyXG4gICAgPtCe0YLQvNC10L3QuNGC0YxcclxuICAgIDwvbXJ4LWJ1dHRvbj5cclxuICAgIDxtcngtYnV0dG9uXHJcbiAgICAgIFt0eXBlXT1cIidwcmltYXJ5J1wiXHJcbiAgICAgIFtzaXplXT1cIidtZWRpdW0nXCJcclxuICAgICAgKGNsaWNrKT1cIm9rKClcIlxyXG4gICAgPtCf0L7QtNGC0LLQtdGA0LTQuNGC0YxcclxuICAgIDwvbXJ4LWJ1dHRvbj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L21yeC1tb2RhbD5cclxuXHJcblxyXG4iXX0=
|
|
@@ -127,13 +127,19 @@ export class InputFileImageComponent {
|
|
|
127
127
|
cropperMaxHeight: this.cropperMaxHeight,
|
|
128
128
|
aspectRatio: this.aspectRatio,
|
|
129
129
|
maintainAspectRatio: this.maintainAspectRatio
|
|
130
|
-
})
|
|
130
|
+
}, {})
|
|
131
131
|
.afterClosed()
|
|
132
132
|
.subscribe((res) => {
|
|
133
133
|
if (res.result && res.fileImage) {
|
|
134
134
|
data.file = res.fileImage;
|
|
135
|
+
this._uploadFile(data);
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
const findIdx = this.files.findIndex(d => d.tempUuid === data.tempUuid);
|
|
139
|
+
if (findIdx != -1) {
|
|
140
|
+
this.files = this.files.filter((f, idx) => idx !== findIdx);
|
|
141
|
+
}
|
|
135
142
|
}
|
|
136
|
-
this._uploadFile(data);
|
|
137
143
|
});
|
|
138
144
|
}
|
|
139
145
|
});
|
|
@@ -149,7 +155,7 @@ export class InputFileImageComponent {
|
|
|
149
155
|
cropperMaxHeight: this.cropperMaxHeight,
|
|
150
156
|
aspectRatio: this.aspectRatio,
|
|
151
157
|
maintainAspectRatio: this.maintainAspectRatio
|
|
152
|
-
})
|
|
158
|
+
}, {})
|
|
153
159
|
.afterClosed()
|
|
154
160
|
.subscribe((res) => {
|
|
155
161
|
if (res.result && res.fileImage) {
|
|
@@ -347,4 +353,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
347
353
|
}], filesChanged: [{
|
|
348
354
|
type: Output
|
|
349
355
|
}] } });
|
|
350
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZmlsZS1pbWFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0YS11aS9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9pbnB1dC1maWxlLWltYWdlL2lucHV0LWZpbGUtaW1hZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vaW5wdXQtZmlsZS1pbWFnZS9pbnB1dC1maWxlLWltYWdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUl2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdEYsT0FBTyxFQUFFLEVBQUUsSUFBSSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxFQUFhLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG9FQUFvRSxDQUFDO0FBQ2pILE9BQU8sRUFBRSxzQkFBc0IsRUFBMkIsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7QUFVMUYsTUFBTSxPQUFPLHVCQUF1QjtJQTBEeEI7SUFDQTtJQUNBO0lBM0RWLFdBQVcsR0FBRyxXQUFXLENBQUM7SUFDMUIsVUFBVSxDQUFVO0lBQ3BCLGlCQUFpQixHQUFhLEVBQUUsQ0FBQztJQUNqQyxLQUFLLEdBQXFCLEVBQUUsQ0FB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QUNyQyxDQUFDOzRCQUVELElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLENBQUM7d0JBQ2pDLENBQUM7Z0JBQ0wsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztJQUNILENBQUM7d0dBL1VVLHVCQUF1Qjs0RkFBdkIsdUJBQXVCLHFzQkM1QnBDLDR6T0F1SkE7OzRGRDNIYSx1QkFBdUI7a0JBUm5DLFNBQVM7K0JBQ0Usc0JBQXNCLGlCQUdqQixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNO2lKQVMvQixJQUFJO3NCQUFuQixLQUFLO2dCQUVVLGFBQWE7c0JBQTVCLEtBQUs7Z0JBQ1UsV0FBVztzQkFBMUIsS0FBSztnQkFDVSxRQUFRO3NCQUF2QixLQUFLO2dCQUNVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBQ1UsT0FBTztzQkFBdEIsS0FBSztnQkFDVSxRQUFRO3NCQUF2QixLQUFLO2dCQUNVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBR1UsUUFBUTtzQkFBdkIsS0FBSztnQkFHVSxlQUFlO3NCQUE5QixLQUFLO2dCQUNVLGdCQUFnQjtzQkFBL0IsS0FBSztnQkFDVSxXQUFXO3NCQUExQixLQUFLO2dCQUNVLG1CQUFtQjtzQkFBbEMsS0FBSztnQkFFVSxjQUFjO3NCQUE3QixLQUFLO2dCQUNVLGNBQWM7c0JBQTdCLEtBQUs7Z0JBQ1UsZ0JBQWdCO3NCQUEvQixLQUFLO2dCQUVVLGFBQWE7c0JBQTVCLEtBQUs7Z0JBR0YsU0FBUztzQkFEWixLQUFLO3VCQUFDLE9BQU87Z0JBY0gscUJBQXFCO3NCQUQvQixLQUFLO3VCQUFDLG1CQUFtQjtnQkFXVCxZQUFZO3NCQUE1QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE91dHB1dCxcclxuICBWaWV3RW5jYXBzdWxhdGlvblxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJbnB1dEZpbGVNb2RlbCwgVXBsb2FkZWRGaWxlTW9kZWwsIFVwbG9hZGVkUmVzdWx0TW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBGaWxlVXBsb2FkU2VydmljZSwgTW9kYWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBGaWxlU3lzdGVtRmlsZUVudHJ5LCBOZ3hGaWxlRHJvcEVudHJ5IH0gZnJvbSAnbmd4LWZpbGUtZHJvcCc7XHJcbmltcG9ydCB7IGNvbnZlcnRCYXNlNjRUb0ZpbGUsIGZvcm1hdEJ5dGVzLCBnZXRCYXNlNjRGcm9tVXJsIH0gZnJvbSAnLi4vLi4vLi4vaGVscGVycyc7XHJcbmltcG9ydCB7IHY0IGFzIHV1aWR2NCB9IGZyb20gJ3V1aWQnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBFTVBUWSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBIdHRwRXZlbnQsIEh0dHBFdmVudFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEZpbGVJbWFnZUVkaXRNb2RhbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9maWxlLWltYWdlLWVkaXQtbW9kYWwvZmlsZS1pbWFnZS1lZGl0LW1vZGFsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IElucHV0RmlsZUltYWdlVHlwZUVudW0sIElucHV0RmlsZUltYWdlVHlwZVR5cGVzIH0gZnJvbSAnLi9pbnB1dC1maWxlLWltYWdlLmVudW0nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdtcngtaW5wdXQtZmlsZS1pbWFnZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LWZpbGUtaW1hZ2UuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2lucHV0LWZpbGUtaW1hZ2UuY29tcG9uZW50Lmxlc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgSW5wdXRGaWxlSW1hZ2VDb21wb25lbnQge1xyXG4gIGZvcm1hdEJ5dGVzID0gZm9ybWF0Qnl0ZXM7XHJcbiAgZXh0ZW5zaW9ucz86IHN0cmluZztcclxuICBhbGxvd2VkRXh0ZW5zaW9uczogc3RyaW5nW10gPSBbXTtcclxuICBmaWxlczogSW5wdXRGaWxlTW9kZWxbXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKSBwdWJsaWMgdHlwZTogSW5wdXRGaWxlSW1hZ2VUeXBlVHlwZXMgPSAnZGVmYXVsdCc7XHJcblxyXG4gIEBJbnB1dCgpIHB1YmxpYyBjdXN0b21DbGFzc2VzID0gJyc7XHJcbiAgQElucHV0KCkgcHVibGljIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyByZWFkb25seSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBtYXhTaXplID0gMzE0NTcyODA7XHJcbiAgQElucHV0KCkgcHVibGljIG1heEZpbGVzID0gNTtcclxuICBASW5wdXQoKSBwdWJsaWMgbWluRmlsZXMgPSAwO1xyXG5cclxuICAvLyDQn9Cw0YDQsNC80LXRgtGA0YssINC60L7RgtC+0YDRi9C1INCx0YPQtNGD0YIg0L/QtdGA0LXQtNCw0LLQsNGC0YzRgdGPINCyINGE0L7RgNC80LVcclxuICBASW5wdXQoKSBwdWJsaWMgZm9ybURhdGE6IGFueSA9IHt9O1xyXG5cclxuICAvLyBDUk9QUEVSXHJcbiAgQElucHV0KCkgcHVibGljIGNyb3BwZXJNYXhXaWR0aCA9IDA7XHJcbiAgQElucHV0KCkgcHVibGljIGNyb3BwZXJNYXhIZWlnaHQgPSAwO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBhc3BlY3RSYXRpbyA9IDEgLyAxO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBtYWludGFpbkFzcGVjdFJhdGlvID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIHB1YmxpYyB1cGxvYWRFbmRQb2ludCE6IHN0cmluZztcclxuICBASW5wdXQoKSBwdWJsaWMgZGVsZXRlRW5kUG9pbnQ/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcHVibGljIGRvd25sb2FkRW5kUG9pbnQ/OiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpIHB1YmxpYyBkZWxldGVDb25maXJtPzogKGZpbGU6IFVwbG9hZGVkRmlsZU1vZGVsLCByZXN1bHQ6IChvazogYm9vbGVhbikgPT4gdm9pZCkgPT4gdm9pZDtcclxuXHJcbiAgQElucHV0KCdmaWxlcycpXHJcbiAgc2V0IGluaXRGaWxlcyhkYXRhOiBVcGxvYWRlZEZpbGVNb2RlbFtdIHwgVXBsb2FkZWRGaWxlTW9kZWwpIHtcclxuICAgIGlmIChkYXRhKSB7XHJcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGRhdGEpKSB7XHJcbiAgICAgICAgdGhpcy5maWxlcyA9IGRhdGEubWFwKHMgPT4gKHsuLi5zfSkpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuZmlsZXMgPSBbey4uLmRhdGF9XTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5maWxlcyA9IFtdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQElucHV0KCdhbGxvd2VkRXh0ZW5zaW9ucycpXHJcbiAgcHVibGljIHNldCBpbml0QWxsb3dlZEV4dGVuc2lvbnModmFsOiBzdHJpbmdbXSkge1xyXG4gICAgaWYgKHZhbCkge1xyXG4gICAgICB0aGlzLmFsbG93ZWRFeHRlbnNpb25zID0gdmFsO1xyXG4gICAgICB0aGlzLmV4dGVuc2lvbnMgPSB2YWwuam9pbignLCAnKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuYWxsb3dlZEV4dGVuc2lvbnMgPSBbXTtcclxuICAgICAgdGhpcy5leHRlbnNpb25zID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQE91dHB1dCgpIHB1YmxpYyBmaWxlc0NoYW5nZWQ6IEV2ZW50RW1pdHRlcjxJbnB1dEZpbGVNb2RlbFtdPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGltYWdlVXBsb2FkU2VydmljZTogRmlsZVVwbG9hZFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9tb2RhbFNlcnZpY2U6IE1vZGFsU2VydmljZSxcclxuICAgIHByaXZhdGUgX2RldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBnZXREZWZhdWx0UGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnR5cGUgPT09ICdhdmF0YXInID9cclxuICAgICAgJ9CX0LDQs9GA0YPQt9C40YLQtSDRhNC+0YLQvtCz0YDQsNGE0LjRjicgOlxyXG4gICAgICAn0J/QtdGA0LXQvdC10YHQuNGC0LUg0YTQsNC50Lsg0YEg0YPRgdGC0YDQvtC50YHRgtCy0LAg0LjQu9C4INC90LDQttC80LjRgtC1INC90LAg0LTQsNC90L3QvtC1INC/0L7Qu9C1INC00LvRjyDQtNC+0LHQsNCy0LvQtdC90LjRjyDRhNCw0LnQu9CwJztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZ2V0Q2xhc3NlcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGAke0lucHV0RmlsZUltYWdlVHlwZUVudW1bdGhpcy50eXBlXX0gJHt0aGlzLmN1c3RvbUNsYXNzZXN9YDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZ2V0RHJvcFpvbmVDbGFzc2VzKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYG1yeC1pbnB1dC1maWxlLWltYWdlLWRyb3AgJHt0aGlzLmRpc2FibGVkID8gJ21yeC1pbnB1dC1maWxlLXBpY3R1cmUtZHJvcC1kaXNhYmxlZCcgOiAnJ31gO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBjYW5BZGQoKSB7XHJcbiAgICBpZiAodGhpcy50eXBlID09PSAnYXZhdGFyJykge1xyXG4gICAgICByZXR1cm4gdGhpcy5maWxlcy5sZW5ndGggPCAxO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMubWF4RmlsZXMgPiB0aGlzLmZpbGVzLmZpbHRlcihzID0+ICFzLmVycm9yKS5sZW5ndGg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jaGVja0Vycm9ycygpIHtcclxuXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZHJvcHBlZChmaWxlczogTmd4RmlsZURyb3BFbnRyeVtdKSB7XHJcbiAgICBjb25zdCBkcm9wcGVkRmlsZSA9IGZpbGVzWzBdO1xyXG5cclxuICAgIGlmIChkcm9wcGVkRmlsZS5maWxlRW50cnkuaXNGaWxlKSB7XHJcbiAgICAgIGNvbnN0IGZpbGVFbnRyeSA9IGRyb3BwZWRGaWxlLmZpbGVFbnRyeSBhcyBGaWxlU3lzdGVtRmlsZUVudHJ5O1xyXG5cclxuICAgICAgZmlsZUVudHJ5LmZpbGUoKGZpbGU6IEZpbGUpID0+IHtcclxuICAgICAgICBjb25zdCBkYXRhOiBJbnB1dEZpbGVNb2RlbCA9IHtcclxuICAgICAgICAgIGlkOiAnJyxcclxuICAgICAgICAgIHRlbXBVdWlkOiB1dWlkdjQoKSxcclxuICAgICAgICAgIG5hbWU6IGZpbGUubmFtZSxcclxuICAgICAgICAgIGxlbmd0aDogZmlsZS5zaXplLFxyXG4gICAgICAgICAgdXBsb2FkaW5nOiB0cnVlLFxyXG4gICAgICAgICAgcGVyY2VudGFnZTogMCxcclxuICAgICAgICAgIGZpbGU6IGZpbGUsXHJcbiAgICAgICAgfSBhcyBJbnB1dEZpbGVNb2RlbDtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLmNhbkFkZCkge1xyXG4gICAgICAgICAgZGF0YS5lcnJvciA9ICfQodC70LjRiNC60L7QvCDQvNC90L7Qs9C+INGE0LDQudC70L7Qsic7XHJcbiAgICAgICAgICBkYXRhLnVwbG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5maWxlcy5wdXNoKGRhdGEpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5maWxlcy5wdXNoKGRhdGEpO1xyXG5cclxuICAgICAgICBpZiAoZGF0YS5maWxlICYmIGRhdGEuZmlsZS5zaXplID4gdGhpcy5tYXhTaXplKSB7XHJcbiAgICAgICAgICBkYXRhLmVycm9yID0gJ9Ch0LvQuNGI0LrQvtC8INCx0L7Qu9GM0YjQvtC5INGE0LDQudC7JztcclxuICAgICAgICAgIGRhdGEudXBsb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoZGF0YS5maWxlICYmIGRhdGEuZmlsZS5zaXplID09IDApIHtcclxuICAgICAgICAgIGRhdGEuZXJyb3IgPSAn0J/Rg9GB0YLQvtC5INGE0LDQudC7JztcclxuICAgICAgICAgIGRhdGEudXBsb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5hbGxvd2VkRXh0ZW5zaW9ucy5sZW5ndGggPiAwICYmICF0aGlzLmFsbG93ZWRFeHRlbnNpb25zLnNvbWUoXHJcbiAgICAgICAgICBzID0+IGRhdGEuZmlsZT8ubmFtZS50b0xvd2VyQ2FzZSgpLmVuZHNXaXRoKHMudG9Mb3dlckNhc2UoKSkpKSB7XHJcbiAgICAgICAgICBkYXRhLmVycm9yID0gJ9Cd0LXQstC10YDQvdGL0Lkg0YTQvtGA0LzQsNGCINGE0LDQudC70LAnO1xyXG4gICAgICAgICAgZGF0YS51cGxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghZGF0YS5lcnJvcikge1xyXG4gICAgICAgICAgdGhpcy5fbW9kYWxTZXJ2aWNlLm9wZW4oRmlsZUltYWdlRWRpdE1vZGFsQ29tcG9uZW50LCB7XHJcbiAgICAgICAgICAgIHRpdGxlOiAn0KDQldCU0JDQmtCi0JjQoNCe0JLQkNCd0JjQlSDQmNCX0J7QkdCg0JDQltCV0J3QmNCvJyxcclxuICAgICAgICAgICAgZmlsZUltYWdlOiBmaWxlLFxyXG4gICAgICAgICAgICBjcm9wcGVyTWF4V2lkdGg6IHRoaXMuY3JvcHBlck1heFdpZHRoLFxyXG4gICAgICAgICAgICBjcm9wcGVyTWF4SGVpZ2h0OiB0aGlzLmNyb3BwZXJNYXhIZWlnaHQsXHJcbiAgICAgICAgICAgIGFzcGVjdFJhdGlvOiB0aGlzLmFzcGVjdFJhdGlvLFxyXG4gICAgICAgICAgICBtYWludGFpbkFzcGVjdFJhdGlvOiB0aGlzLm1haW50YWluQXNwZWN0UmF0aW9cclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5hZnRlckNsb3NlZCgpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChyZXMucmVzdWx0ICYmIHJlcy5maWxlSW1hZ2UpIHtcclxuICAgICAgICAgICAgICAgIGRhdGEuZmlsZSA9IHJlcy5maWxlSW1hZ2VcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgdGhpcy5fdXBsb2FkRmlsZShkYXRhKVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGNoYW5nZVByZXZpZXcoZXZlbnQ6IGFueSwgZmlsZTogSW5wdXRGaWxlTW9kZWwpIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG5cclxuICAgIGdldEJhc2U2NEZyb21VcmwodGhpcy5kb3dubG9hZFVybChmaWxlKSkudGhlbigoYmFzZTY0VXJsOiBhbnkpID0+IHtcclxuICAgICAgdGhpcy5fbW9kYWxTZXJ2aWNlLm9wZW4oRmlsZUltYWdlRWRpdE1vZGFsQ29tcG9uZW50LCB7XHJcbiAgICAgICAgdGl0bGU6ICfQoNCV0JTQkNCa0KLQmNCg0J7QktCQ0J3QmNCVINCY0JfQntCR0KDQkNCW0JXQndCY0K8nLFxyXG4gICAgICAgIGZpbGVJbWFnZTogY29udmVydEJhc2U2NFRvRmlsZShiYXNlNjRVcmwsIGZpbGUubmFtZSB8fCAnJywgJ2ltYWdlL3BuZycpLFxyXG4gICAgICAgIGNyb3BwZXJNYXhXaWR0aDogdGhpcy5jcm9wcGVyTWF4V2lkdGgsXHJcbiAgICAgICAgY3JvcHBlck1heEhlaWdodDogdGhpcy5jcm9wcGVyTWF4SGVpZ2h0LFxyXG4gICAgICAgIGFzcGVjdFJhdGlvOiB0aGlzLmFzcGVjdFJhdGlvLFxyXG4gICAgICAgIG1haW50YWluQXNwZWN0UmF0aW86IHRoaXMubWFpbnRhaW5Bc3BlY3RSYXRpb1xyXG4gICAgICB9KVxyXG4gICAgICAgIC5hZnRlckNsb3NlZCgpXHJcbiAgICAgICAgLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzLnJlc3VsdCAmJiByZXMuZmlsZUltYWdlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3VwZGF0ZUZpbGUoZmlsZSwgcmVzLmZpbGVJbWFnZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBkZWxldGUoZXZlbnQ6IGFueSwgZmlsZTogSW5wdXRGaWxlTW9kZWwpOiB2b2lkIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG5cclxuICAgIGlmICh0aGlzLmRlbGV0ZUNvbmZpcm0pIHtcclxuICAgICAgdGhpcy5kZWxldGVDb25maXJtKGZpbGUsIChvaykgPT4ge1xyXG4gICAgICAgIGlmIChvaykge1xyXG4gICAgICAgICAgdGhpcy5fZGVsZXRlRmlsZShmaWxlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fZGVsZXRlRmlsZShmaWxlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbGVhcihmaWxlOiBJbnB1dEZpbGVNb2RlbCk6IHZvaWQge1xyXG4gICAgaWYgKGZpbGUudXBsb2FkaW5nKSB7XHJcbiAgICAgIGlmIChmaWxlLmV4ZWN1dGlvbikge1xyXG4gICAgICAgIGZpbGUuZXhlY3V0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBmaW5kRmlsZUlkeCA9IHRoaXMuZmlsZXMuaW5kZXhPZihmaWxlKTtcclxuXHJcbiAgICBpZiAoZmluZEZpbGVJZHggPj0gMCkge1xyXG4gICAgICB0aGlzLmZpbGVzLnNwbGljZShmaW5kRmlsZUlkeCwgMSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZG93bmxvYWRVcmwoZmlsZTogVXBsb2FkZWRGaWxlTW9kZWwpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMuZG93bmxvYWRFbmRQb2ludCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5fdHJhbnNmb3JtVXJsKHRoaXMuZG93bmxvYWRFbmRQb2ludCwgZmlsZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZmlsZU92ZXIoZXZlbnQ6IGFueSkge1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGZpbGVMZWF2ZShldmVudDogYW55KSB7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF90cmFuc2Zvcm1VcmwodXJsOiBzdHJpbmcsIGZpbGU6IFVwbG9hZGVkRmlsZU1vZGVsKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB1cmwucmVwbGFjZSgve2lkfS8sIGZpbGUuaWQpXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9mb3JtRGF0YUtleXMoKTogc3RyaW5nW10ge1xyXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuZm9ybURhdGEpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY3JlYXRlRm9ybURhdGEoKTogRm9ybURhdGEge1xyXG4gICAgY29uc3QgZm9ybSA9IG5ldyBGb3JtRGF0YSgpO1xyXG4gICAgaWYgKHRoaXMubWF4RmlsZXMpIHtcclxuICAgICAgZm9ybS5hcHBlbmQoJ01heEZpbGVzJywgdGhpcy5tYXhGaWxlcy50b1N0cmluZygxMCkpO1xyXG4gICAgfVxyXG4gICAgY29uc3Qga2V5cyA9IHRoaXMuX2Zvcm1EYXRhS2V5cygpO1xyXG4gICAga2V5cy5mb3JFYWNoKGtleSA9PiBmb3JtLmFwcGVuZChrZXksIHRoaXMuZm9ybURhdGFba2V5XSkpO1xyXG4gICAgcmV0dXJuIGZvcm07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9kZWxldGVGaWxlKGZpbGU6IElucHV0RmlsZU1vZGVsKSB7XHJcbiAgICBjb25zdCBmaW5kRmlsZSA9IHRoaXMuZmlsZXMuZmluZChzID0+IHMuaWQgPT09IGZpbGUuaWQpO1xyXG5cclxuICAgIGlmIChmaW5kRmlsZSkge1xyXG4gICAgICBpZiAodGhpcy5kZWxldGVFbmRQb2ludCkge1xyXG4gICAgICAgIGZpbmRGaWxlLmRlbGV0aW5nID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgdGhpcy5pbWFnZVVwbG9hZFNlcnZpY2UuZGVsZXRlKHRoaXMuZGVsZXRlRW5kUG9pbnQpLnN1YnNjcmliZShyZXN1bHQgPT4ge1xyXG4gICAgICAgICAgdGhpcy5maWxlcy5zcGxpY2UodGhpcy5maWxlcy5pbmRleE9mKGZpbmRGaWxlKSwgMSk7XHJcbiAgICAgICAgICB0aGlzLmZpbGVzQ2hhbmdlZC5lbWl0KHRoaXMuZmlsZXMpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmZpbGVzLnNwbGljZSh0aGlzLmZpbGVzLmluZGV4T2YoZmluZEZpbGUpLCAxKTtcclxuICAgICAgICB0aGlzLmZpbGVzQ2hhbmdlZC5lbWl0KHRoaXMuZmlsZXMpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF91cGRhdGVGaWxlKG9sZEZpbGU6IElucHV0RmlsZU1vZGVsLCBuZXdGaWxlOiBGaWxlKSB7XHJcbiAgICBjb25zdCBmaW5kRmlsZSA9IHRoaXMuZmlsZXMuZmluZCgoczogSW5wdXRGaWxlTW9kZWwpID0+IHtcclxuICAgICAgaWYgKHMuaWQgIT09ICcnKSB7XHJcbiAgICAgICAgcmV0dXJuIHMuaWQgPT09IG9sZEZpbGUuaWQ7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHMudGVtcFV1aWQgPT09IG9sZEZpbGUudGVtcFV1aWQ7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIGlmIChmaW5kRmlsZSkge1xyXG4gICAgICBjb25zdCBkYXRhOiBJbnB1dEZpbGVNb2RlbCA9IHtcclxuICAgICAgICBpZDogJycsXHJcbiAgICAgICAgdGVtcFV1aWQ6IHV1aWR2NCgpLFxyXG4gICAgICAgIG5hbWU6IG5ld0ZpbGUubmFtZSxcclxuICAgICAgICBsZW5ndGg6IG5ld0ZpbGUuc2l6ZSxcclxuICAgICAgICB1cGxvYWRpbmc6IHRydWUsXHJcbiAgICAgICAgcGVyY2VudGFnZTogMCxcclxuICAgICAgICBmaWxlOiBuZXdGaWxlLFxyXG4gICAgICB9IGFzIElucHV0RmlsZU1vZGVsO1xyXG5cclxuICAgICAgaWYgKHRoaXMuZGVsZXRlRW5kUG9pbnQpIHtcclxuICAgICAgICBmaW5kRmlsZS5kZWxldGluZyA9IHRydWU7XHJcblxyXG4gICAgICAgIHRoaXMuaW1hZ2VVcGxvYWRTZXJ2aWNlLmRlbGV0ZSh0aGlzLmRlbGV0ZUVuZFBvaW50KS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcclxuICAgICAgICAgIHRoaXMuZmlsZXMuc3BsaWNlKHRoaXMuZmlsZXMuaW5kZXhPZihmaW5kRmlsZSksIDEpO1xyXG4gICAgICAgICAgdGhpcy5maWxlcy5wdXNoKGRhdGEpO1xyXG4gICAgICAgICAgdGhpcy5fdXBsb2FkRmlsZShkYXRhKTtcclxuXHJcbiAgICAgICAgICB0aGlzLl9kZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuZmlsZXMucHVzaChkYXRhKTtcclxuICAgICAgICB0aGlzLl91cGxvYWRGaWxlKGRhdGEpO1xyXG5cclxuICAgICAgICB0aGlzLl9kZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3VwbG9hZEZpbGUoZGF0YTogSW5wdXRGaWxlTW9kZWwpIHtcclxuICAgIGNvbnN0IGZvcm1EYXRhID0gdGhpcy5fY3JlYXRlRm9ybURhdGEoKTtcclxuXHJcbiAgICBpZiAoZGF0YS5maWxlKSB7XHJcbiAgICAgIGZvcm1EYXRhLmFwcGVuZCgnRmlsZScsIGRhdGEuZmlsZSk7XHJcblxyXG4gICAgICBkYXRhLmV4ZWN1dGlvbiA9IHRoaXMuaW1hZ2VVcGxvYWRTZXJ2aWNlLnVwbG9hZCh0aGlzLnVwbG9hZEVuZFBvaW50LCBmb3JtRGF0YSkucGlwZShcclxuICAgICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcclxuICAgICAgICAgIGRhdGEudXBsb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICByZXR1cm4gRU1QVFk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBIdHRwRXZlbnQ8VXBsb2FkZWRSZXN1bHRNb2RlbD4pID0+IHtcclxuICAgICAgICAgIHN3aXRjaCAoZXZlbnQudHlwZSkge1xyXG4gICAgICAgICAgICBjYXNlIEh0dHBFdmVudFR5cGUuU2VudDpcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBIdHRwRXZlbnRUeXBlLlJlc3BvbnNlSGVhZGVyOlxyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIEh0dHBFdmVudFR5cGUuVXBsb2FkUHJvZ3Jlc3M6XHJcbiAgICAgICAgICAgICAgaWYgKGV2ZW50LnRvdGFsKSB7XHJcbiAgICAgICAgICAgICAgICBkYXRhLnBlcmNlbnRhZ2UgPSBNYXRoLnJvdW5kKGV2ZW50LmxvYWRlZCAvIGV2ZW50LnRvdGFsICogMTAwKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgSHR0cEV2ZW50VHlwZS5SZXNwb25zZTpcclxuICAgICAgICAgICAgICBpZiAoZXZlbnQuYm9keSkge1xyXG4gICAgICAgICAgICAgICAgZGF0YS51cGxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIGRhdGEucGVyY2VudGFnZSA9IDA7XHJcbiAgICAgICAgICAgICAgICBkYXRhLmlkID0gZXZlbnQuYm9keS51dWlkO1xyXG4gICAgICAgICAgICAgICAgZGF0YS5maWxlID0gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICAgICAgZGF0YS5lcnJvciA9IGV2ZW50LmJvZHkubWVzc2FnZTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoZGF0YS5leGVjdXRpb24pIHtcclxuICAgICAgICAgICAgICAgICAgZGF0YS5leGVjdXRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmZpbGVzLmV2ZXJ5KHMgPT4gIXMudXBsb2FkaW5nKSkge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmZpbGVzQ2hhbmdlZC5lbWl0KHRoaXMuZmlsZXMpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuX2RldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJtcngtaW5wdXQtZmlsZS1pbWFnZVwiIFtjbGFzc109XCJnZXRDbGFzc2VzXCI+XHJcbiAgQHN3aXRjaCAodHlwZSkge1xyXG4gICAgQGNhc2UgKCdhdmF0YXInKSB7XHJcbiAgICAgIDxuZ3gtZmlsZS1kcm9wXHJcbiAgICAgICAgW2NsYXNzTmFtZV09XCJnZXREcm9wWm9uZUNsYXNzZXNcIlxyXG4gICAgICAgIFthY2NlcHRdPVwiZXh0ZW5zaW9ucyB8fCAnJ1wiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgICAob25GaWxlRHJvcCk9XCJkcm9wcGVkKCRldmVudClcIlxyXG4gICAgICAgIChvbkZpbGVPdmVyKT1cImZpbGVPdmVyKCRldmVudClcIiAob25GaWxlTGVhdmUpPVwiZmlsZUxlYXZlKCRldmVudClcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIG5neC1maWxlLWRyb3AtY29udGVudC10bXAgbGV0LW9wZW5GaWxlU2VsZWN0b3I9XCJvcGVuRmlsZVNlbGVjdG9yXCI+XHJcbiAgICAgICAgICBAaWYgKGZpbGVzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXJ4LWlucHV0LWZpbGUtaW1hZ2UtYXZhdGFyXCI+XHJcblxyXG4gICAgICAgICAgICAgIEBmb3IgKGZpbGUgb2YgZmlsZXM7IHRyYWNrIGZpbGUuaWQpIHtcclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwMCBoLTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXJ4LWlucHV0LWZpbGUtaW1hZ2UtYXZhdGFyLWl0ZW1cIiBbY2xhc3MubXJ4LWlucHV0LWZpbGUtaW1hZ2UtZXJyb3JdPVwiZmlsZS5lcnJvclwiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICBAaWYgKGZpbGUuZXJyb3IpIHtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1yeC1pY29uIGljb24tY2xvc2UgaWNvbi1mb250LTI0XCIgKGNsaWNrKT1cImNsZWFyKGZpbGUpXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1pbnB1dC1maWxlLWltYWdlLWF2YXRhci1pdGVtLWVycm9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXJ4LWljb24gaWNvbi1pbWFnZSBpY29uLWZvbnQtMjQgaWNvbi1maWxsZWQtY29sb3ItbmVnYXRpdmVcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGZpbGUuZXJyb3IgfX1cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmIChmaWxlLnVwbG9hZGluZyAmJiAhZmlsZS5lcnJvcikge1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXJ4LWljb24gaWNvbi1jbG9zZSBpY29uLWZvbnQtMjRcIiAoY2xpY2spPVwiZGVsZXRlKCRldmVudCwgZmlsZSlcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXJ4LWlucHV0LWZpbGUtaW1hZ2UtYXZhdGFyLWl0ZW0tdXBsb2FkaW5nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXJ4LWlucHV0LWZpbGUtaW1hZ2UtYXZhdGFyLWl0ZW0tdXBsb2FkaW5nLXRleHRcIj7Ql9Cw0LPRgNGD0LfQutCwLi4uPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXJ4LWlucHV0LWZpbGUtaW1hZ2UtYXZhdGFyLWl0ZW0tdXBsb2FkaW5nLXByb2dyZXNzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW25nU3R5bGVdPVwie3dpZHRoOiBmaWxlLnBlcmNlbnRhZ2UgKyAnJSd9XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmICghZmlsZS51cGxvYWRpbmcgJiYgIWZpbGUuZXJyb3IpIHtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwiZG93bmxvYWRVcmwoZmlsZSlcIiBbYWx0XT1cImZpbGUubmFtZVwiIGhlaWdodD1cIjE1NFwiIHdpZHRoPVwiMTU0XCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1pbnB1dC1maWxlLWltYWdlLWNvbnRyb2xzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtcngtaW5wdXQtZmlsZS1pbWFnZS1jb250cm9scy1pdGVtXCIgKGNsaWNrKT1cImNoYW5nZVByZXZpZXcoJGV2ZW50LCBmaWxlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXJ4LWljb24gaWNvbi1wZW4gaWNvbi1mb250LTE2XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1pbnB1dC1maWxlLWltYWdlLWNvbnRyb2xzLWl0ZW1cIiAoY2xpY2spPVwiZGVsZXRlKCRldmVudCwgZmlsZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1yeC1pY29uIGljb24tZGVsZXRlIGljb24tZm9udC0xNlwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwibXJ4LWlucHV0LWZpbGUtaW1hZ2UtaW5wdXRcIlxyXG4gICAgICAgICAgICAgIFtjbGFzcy5tcngtaW5wdXQtZmlsZS1pbWFnZV9fZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCIhZGlzYWJsZWQgPyBvcGVuRmlsZVNlbGVjdG9yKCkgOiB1bmRlZmluZWRcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcngtaW5wdXQtZmlsZS1pbWFnZS1pbnB1dC1wbGFjZWhvbGRlclwiPnt7IHBsYWNlaG9sZGVyIHx8IGdldERlZmF1bHRQbGFjZWhvbGRlciB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXJ4LWlucHV0LWZpbGUtaW1hZ2UtaW5wdXQtaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+0KDQsNC30LzQtdGAOiDQtNC+IHt7IGZvcm1hdEJ5dGVzKG1heFNpemUpIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJleHRlbnNpb25zXCI+0KTQvtGA0LzQsNGCOiB7eyBleHRlbnNpb25zIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIH1cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8L25neC1maWxlLWRyb3A+XHJcbiAgICB9XHJcbiAgICBAZGVmYXVsdCB7XHJcbiAgICAgIEBpZiAoY2FuQWRkKSB7XHJcbiAgICAgICAgPG5neC1maWxlLWRyb3BcclxuICAgICAgICAgIFtjbGFzc05hbWVdPVwiZ2V0RHJvcFpvbmVDbGFzc2VzXCJcclxuICAgICAgICAgIFthY2NlcHRdPVwiZXh0ZW5zaW9ucyB8fCAnJ1wiXHJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgICAgKG9uRmlsZURyb3ApPVwiZHJvcHBlZCgkZXZlbnQpXCJcclxuICAgICAgICAgIChvbkZpbGVPdmVyKT1cImZpbGVPdmVyKCRldmVudClcIiAob25GaWxlTGVhdmUpPVwiZmlsZUxlYXZlKCRldmVudClcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBuZ3gtZmlsZS1kcm9wLWNvbnRlbnQtdG1wIGxldC1vcGVuRmlsZVNlbGVjdG9yPVwib3BlbkZpbGVTZWxlY3RvclwiPlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJtcngtaW5wdXQtZmlsZS1pbWFnZS1pbnB1dFwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIiFkaXNhYmxlZCA/IG9wZW5GaWxlU2VsZWN0b3IoKSA6IHVuZGVmaW5lZFwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1yeC1pbnB1dC1maWxlLWltYWdlLWlucHV0LXBsYWNlaG9sZGVyXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBwbGFjZWhvbGRlciB8fCBnZXREZWZhdWx0UGxhY2Vob2xkZXIgfX1cclxuICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1pbnB1dC1maWxlLWltYWdlLWlucHV0LWluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPtCg0LDQt9C80LXRgDog0LTQviB7eyBmb3JtYXRCeXRlcyhtYXhTaXplKSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZXh0ZW5zaW9uc1wiPtCk0L7RgNC80LDRgjoge3sgZXh0ZW5zaW9ucyB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmd4LWZpbGUtZHJvcD5cclxuICAgICAgfVxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1yeC1pbnB1dC1maWxlLWltYWdlLXByZXZpZXdcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICBAZm9yIChmaWxlIG9mIGZpbGVzOyB0cmFjayBmaWxlLmlkKSB7XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC0xMiBjb2wtc20tNiBjb2wtbWQtNCBjb2wtbGctM1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtcngtaW5wdXQtZmlsZS1pbWFnZS1wcmV2aWV3LWl0ZW1cIiBbY2xhc3MubXJ4LWlucHV0LWZpbGUtaW1hZ2UtZXJyb3JdPVwiZmlsZS5lcnJvclwiPlxyXG4gICAgICAgICAgICAgICAgQGlmIChmaWxlLmVycm9yKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1yeC1pY29uIGljb24tY2xvc2UgaWNvbi1mb250LTI0XCIgKGNsaWNrKT1cImRlbGV0ZSgkZXZlbnQsIGZpbGUpXCI+PC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1pbnB1dC1maWxlLWltYWdlLXByZXZpZXctaXRlbS1lcnJvclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXJ4LWljb24gaWNvbi1pbWFnZSBpY29uLWZvbnQtMjQgaWNvbi1maWxsZWQtY29sb3ItbmVnYXRpdmVcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgZmlsZS5lcnJvciB9fVxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1pbnB1dC1maWxlLWltYWdlLXByZXZpZXctaXRlbS1uYW1lXCI+e3sgZmlsZS5uYW1lIH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtcngtaW5wdXQtZmlsZS1pbWFnZS1wcmV2aWV3LWl0ZW0tZGVzY3JpcHRpb25cIj57eyBmb3JtYXRCeXRlcyhmaWxlLmxlbmd0aCkgfX08L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICB9IEBlbHNlIGlmIChmaWxlLnVwbG9hZGluZyAmJiAhZmlsZS5lcnJvcikge1xyXG5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1pbnB1dC1maWxlLWltYWdlLXByZXZpZXctaXRlbS11cGxvYWRpbmdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1yeC1pbnB1dC1maWxlLWltYWdlLXByZXZpZXctaXRlbS11cGxvYWRpbmctdGV4dFwiPtCX0LDQs9GA0YPQt9C60LAuLi48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1pbnB1dC1maWxlLWltYWdlLXByZXZpZXctaXRlbS11cGxvYWRpbmctcHJvZ3Jlc3NcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFtuZ1N0eWxlXT1cInt3aWR0aDogZmlsZS5wZXJjZW50YWdlICsgJyUnfVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoIWZpbGUudXBsb2FkaW5nICYmICFmaWxlLmVycm9yKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXJ4LWlucHV0LWZpbGUtaW1hZ2UtcHJldmlldy1pdGVtX19pbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJkb3dubG9hZFVybChmaWxlKVwiIFthbHRdPVwiZmlsZS5uYW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1pbnB1dC1maWxlLWltYWdlLXByZXZpZXctaXRlbS1pbmZvXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1pbnB1dC1maWxlLWltYWdlLXByZXZpZXctaXRlbS1uYW1lXCI+e3sgZmlsZS5uYW1lIH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1pbnB1dC1maWxlLWltYWdlLXByZXZpZXctaXRlbS1kZXNjcmlwdGlvblwiPnt7IGZvcm1hdEJ5dGVzKGZpbGUubGVuZ3RoKSB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtcngtaW5wdXQtZmlsZS1pbWFnZS1jb250cm9sc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtcngtaW5wdXQtZmlsZS1pbWFnZS1jb250cm9scy1pdGVtXCIgKGNsaWNrKT1cImNoYW5nZVByZXZpZXcoJGV2ZW50LCBmaWxlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcngtaWNvbiBpY29uLXBlbiBpY29uLWZvbnQtMTZcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1pbnB1dC1maWxlLWltYWdlLWNvbnRyb2xzLWl0ZW1cIiAoY2xpY2spPVwiZGVsZXRlKCRldmVudCwgZmlsZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXJ4LWljb24gaWNvbi1kZWxldGUgaWNvbi1mb250LTE2XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIH1cclxuICB9XHJcbjwvZGl2PlxyXG4iXX0=
|
|
356
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZmlsZS1pbWFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0YS11aS9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9pbnB1dC1maWxlLWltYWdlL2lucHV0LWZpbGUtaW1hZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vaW5wdXQtZmlsZS1pbWFnZS9pbnB1dC1maWxlLWltYWdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUl2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdEYsT0FBTyxFQUFFLEVBQUUsSUFBSSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxFQUFhLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG9FQUFvRSxDQUFDO0FBQ2pILE9BQU8sRUFBRSxzQkFBc0IsRUFBMkIsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7QUFVMUYsTUFBTSxPQUFPLHVCQUF1QjtJQTBEeEI7SUFDQTtJQUNBO0lBM0RWLFdBQVcsR0FBRyxXQUFXLENBQUM7SUFDMUIsVUFBVSxDQUFVO0lBQ3BCLGlCQUFpQixHQUFhLEVBQUUsQ0FBQztJQUNqQyxLQUFLLEdBQXFCLEVBQUUsQ0FB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QUs7Z0JBQ1UsY0FBYztzQkFBN0IsS0FBSztnQkFDVSxnQkFBZ0I7c0JBQS9CLEtBQUs7Z0JBRVUsYUFBYTtzQkFBNUIsS0FBSztnQkFHRixTQUFTO3NCQURaLEtBQUs7dUJBQUMsT0FBTztnQkFjSCxxQkFBcUI7c0JBRC9CLEtBQUs7dUJBQUMsbUJBQW1CO2dCQVdULFlBQVk7c0JBQTVCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IElucHV0RmlsZU1vZGVsLCBVcGxvYWRlZEZpbGVNb2RlbCwgVXBsb2FkZWRSZXN1bHRNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XHJcbmltcG9ydCB7IEZpbGVVcGxvYWRTZXJ2aWNlLCBNb2RhbFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IEZpbGVTeXN0ZW1GaWxlRW50cnksIE5neEZpbGVEcm9wRW50cnkgfSBmcm9tICduZ3gtZmlsZS1kcm9wJztcclxuaW1wb3J0IHsgY29udmVydEJhc2U2NFRvRmlsZSwgZm9ybWF0Qnl0ZXMsIGdldEJhc2U2NEZyb21VcmwgfSBmcm9tICcuLi8uLi8uLi9oZWxwZXJzJztcclxuaW1wb3J0IHsgdjQgYXMgdXVpZHY0IH0gZnJvbSAndXVpZCc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEVNUFRZIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEh0dHBFdmVudCwgSHR0cEV2ZW50VHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgRmlsZUltYWdlRWRpdE1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ZpbGUtaW1hZ2UtZWRpdC1tb2RhbC9maWxlLWltYWdlLWVkaXQtbW9kYWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW5wdXRGaWxlSW1hZ2VUeXBlRW51bSwgSW5wdXRGaWxlSW1hZ2VUeXBlVHlwZXMgfSBmcm9tICcuL2lucHV0LWZpbGUtaW1hZ2UuZW51bSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ21yeC1pbnB1dC1maWxlLWltYWdlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtZmlsZS1pbWFnZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtZmlsZS1pbWFnZS5jb21wb25lbnQubGVzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBJbnB1dEZpbGVJbWFnZUNvbXBvbmVudCB7XHJcbiAgZm9ybWF0Qnl0ZXMgPSBmb3JtYXRCeXRlcztcclxuICBleHRlbnNpb25zPzogc3RyaW5nO1xyXG4gIGFsbG93ZWRFeHRlbnNpb25zOiBzdHJpbmdbXSA9IFtdO1xyXG4gIGZpbGVzOiBJbnB1dEZpbGVNb2RlbFtdID0gW107XHJcblxyXG4gIEBJbnB1dCgpIHB1YmxpYyB0eXBlOiBJbnB1dEZpbGVJbWFnZVR5cGVUeXBlcyA9ICdkZWZhdWx0JztcclxuXHJcbiAgQElucHV0KCkgcHVibGljIGN1c3RvbUNsYXNzZXMgPSAnJztcclxuICBASW5wdXQoKSBwdWJsaWMgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcHVibGljIGRpc2FibGVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIHJlYWRvbmx5ID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIG1heFNpemUgPSAzMTQ1NzI4MDtcclxuICBASW5wdXQoKSBwdWJsaWMgbWF4RmlsZXMgPSA1O1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBtaW5GaWxlcyA9IDA7XHJcblxyXG4gIC8vINCf0LDRgNCw0LzQtdGC0YDRiywg0LrQvtGC0L7RgNGL0LUg0LHRg9C00YPRgiDQv9C10YDQtdC00LDQstCw0YLRjNGB0Y8g0LIg0YTQvtGA0LzQtVxyXG4gIEBJbnB1dCgpIHB1YmxpYyBmb3JtRGF0YTogYW55ID0ge307XHJcblxyXG4gIC8vIENST1BQRVJcclxuICBASW5wdXQoKSBwdWJsaWMgY3JvcHBlck1heFdpZHRoID0gMDtcclxuICBASW5wdXQoKSBwdWJsaWMgY3JvcHBlck1heEhlaWdodCA9IDA7XHJcbiAgQElucHV0KCkgcHVibGljIGFzcGVjdFJhdGlvID0gMSAvIDE7XHJcbiAgQElucHV0KCkgcHVibGljIG1haW50YWluQXNwZWN0UmF0aW8gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgcHVibGljIHVwbG9hZEVuZFBvaW50ITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBkZWxldGVFbmRQb2ludD86IHN0cmluZztcclxuICBASW5wdXQoKSBwdWJsaWMgZG93bmxvYWRFbmRQb2ludD86IHN0cmluZztcclxuXHJcbiAgQElucHV0KCkgcHVibGljIGRlbGV0ZUNvbmZpcm0/OiAoZmlsZTogVXBsb2FkZWRGaWxlTW9kZWwsIHJlc3VsdDogKG9rOiBib29sZWFuKSA9PiB2b2lkKSA9PiB2b2lkO1xyXG5cclxuICBASW5wdXQoJ2ZpbGVzJylcclxuICBzZXQgaW5pdEZpbGVzKGRhdGE6IFVwbG9hZGVkRmlsZU1vZGVsW10gfCBVcGxvYWRlZEZpbGVNb2RlbCkge1xyXG4gICAgaWYgKGRhdGEpIHtcclxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YSkpIHtcclxuICAgICAgICB0aGlzLmZpbGVzID0gZGF0YS5tYXAocyA9PiAoey4uLnN9KSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5maWxlcyA9IFt7Li4uZGF0YX1dO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZpbGVzID0gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASW5wdXQoJ2FsbG93ZWRFeHRlbnNpb25zJylcclxuICBwdWJsaWMgc2V0IGluaXRBbGxvd2VkRXh0ZW5zaW9ucyh2YWw6IHN0cmluZ1tdKSB7XHJcbiAgICBpZiAodmFsKSB7XHJcbiAgICAgIHRoaXMuYWxsb3dlZEV4dGVuc2lvbnMgPSB2YWw7XHJcbiAgICAgIHRoaXMuZXh0ZW5zaW9ucyA9IHZhbC5qb2luKCcsICcpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5hbGxvd2VkRXh0ZW5zaW9ucyA9IFtdO1xyXG4gICAgICB0aGlzLmV4dGVuc2lvbnMgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KCkgcHVibGljIGZpbGVzQ2hhbmdlZDogRXZlbnRFbWl0dGVyPElucHV0RmlsZU1vZGVsW10+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgaW1hZ2VVcGxvYWRTZXJ2aWNlOiBGaWxlVXBsb2FkU2VydmljZSxcclxuICAgIHByaXZhdGUgX21vZGFsU2VydmljZTogTW9kYWxTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGdldERlZmF1bHRQbGFjZWhvbGRlcigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gJ2F2YXRhcicgP1xyXG4gICAgICAn0JfQsNCz0YDRg9C30LjRgtC1INGE0L7RgtC+0LPRgNCw0YTQuNGOJyA6XHJcbiAgICAgICfQn9C10YDQtdC90LXRgdC40YLQtSDRhNCw0LnQuyDRgSDRg9GB0YLRgNC+0LnRgdGC0LLQsCDQuNC70Lgg0L3QsNC20LzQuNGC0LUg0L3QsCDQtNCw0L3QvdC+0LUg0L/QvtC70LUg0LTQu9GPINC00L7QsdCw0LLQu9C10L3QuNGPINGE0LDQudC70LAnO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBnZXRDbGFzc2VzKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYCR7SW5wdXRGaWxlSW1hZ2VUeXBlRW51bVt0aGlzLnR5cGVdfSAke3RoaXMuY3VzdG9tQ2xhc3Nlc31gO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBnZXREcm9wWm9uZUNsYXNzZXMoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBgbXJ4LWlucHV0LWZpbGUtaW1hZ2UtZHJvcCAke3RoaXMuZGlzYWJsZWQgPyAnbXJ4LWlucHV0LWZpbGUtcGljdHVyZS1kcm9wLWRpc2FibGVkJyA6ICcnfWA7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGNhbkFkZCgpIHtcclxuICAgIGlmICh0aGlzLnR5cGUgPT09ICdhdmF0YXInKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmZpbGVzLmxlbmd0aCA8IDE7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5tYXhGaWxlcyA+IHRoaXMuZmlsZXMuZmlsdGVyKHMgPT4gIXMuZXJyb3IpLmxlbmd0aDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2NoZWNrRXJyb3JzKCkge1xyXG5cclxuICB9XHJcblxyXG4gIHB1YmxpYyBkcm9wcGVkKGZpbGVzOiBOZ3hGaWxlRHJvcEVudHJ5W10pIHtcclxuICAgIGNvbnN0IGRyb3BwZWRGaWxlID0gZmlsZXNbMF07XHJcblxyXG4gICAgaWYgKGRyb3BwZWRGaWxlLmZpbGVFbnRyeS5pc0ZpbGUpIHtcclxuICAgICAgY29uc3QgZmlsZUVudHJ5ID0gZHJvcHBlZEZpbGUuZmlsZUVudHJ5IGFzIEZpbGVTeXN0ZW1GaWxlRW50cnk7XHJcblxyXG4gICAgICBmaWxlRW50cnkuZmlsZSgoZmlsZTogRmlsZSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGRhdGE6IElucHV0RmlsZU1vZGVsID0ge1xyXG4gICAgICAgICAgaWQ6ICcnLFxyXG4gICAgICAgICAgdGVtcFV1aWQ6IHV1aWR2NCgpLFxyXG4gICAgICAgICAgbmFtZTogZmlsZS5uYW1lLFxyXG4gICAgICAgICAgbGVuZ3RoOiBmaWxlLnNpemUsXHJcbiAgICAgICAgICB1cGxvYWRpbmc6IHRydWUsXHJcbiAgICAgICAgICBwZXJjZW50YWdlOiAwLFxyXG4gICAgICAgICAgZmlsZTogZmlsZSxcclxuICAgICAgICB9IGFzIElucHV0RmlsZU1vZGVsO1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMuY2FuQWRkKSB7XHJcbiAgICAgICAgICBkYXRhLmVycm9yID0gJ9Ch0LvQuNGI0LrQvtC8INC80L3QvtCz0L4g0YTQsNC50LvQvtCyJztcclxuICAgICAgICAgIGRhdGEudXBsb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmZpbGVzLnB1c2goZGF0YSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmZpbGVzLnB1c2goZGF0YSk7XHJcblxyXG4gICAgICAgIGlmIChkYXRhLmZpbGUgJiYgZGF0YS5maWxlLnNpemUgPiB0aGlzLm1heFNpemUpIHtcclxuICAgICAgICAgIGRhdGEuZXJyb3IgPSAn0KHQu9C40YjQutC+0Lwg0LHQvtC70YzRiNC+0Lkg0YTQsNC50LsnO1xyXG4gICAgICAgICAgZGF0YS51cGxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChkYXRhLmZpbGUgJiYgZGF0YS5maWxlLnNpemUgPT0gMCkge1xyXG4gICAgICAgICAgZGF0YS5lcnJvciA9ICfQn9GD0YHRgtC+0Lkg0YTQsNC50LsnO1xyXG4gICAgICAgICAgZGF0YS51cGxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmFsbG93ZWRFeHRlbnNpb25zLmxlbmd0aCA+IDAgJiYgIXRoaXMuYWxsb3dlZEV4dGVuc2lvbnMuc29tZShcclxuICAgICAgICAgIHMgPT4gZGF0YS5maWxlPy5uYW1lLnRvTG93ZXJDYXNlKCkuZW5kc1dpdGgocy50b0xvd2VyQ2FzZSgpKSkpIHtcclxuICAgICAgICAgIGRhdGEuZXJyb3IgPSAn0J3QtdCy0LXRgNC90YvQuSDRhNC+0YDQvNCw0YIg0YTQsNC50LvQsCc7XHJcbiAgICAgICAgICBkYXRhLnVwbG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCFkYXRhLmVycm9yKSB7XHJcbiAgICAgICAgICB0aGlzLl9tb2RhbFNlcnZpY2Uub3BlbihGaWxlSW1hZ2VFZGl0TW9kYWxDb21wb25lbnQsIHtcclxuICAgICAgICAgICAgdGl0bGU6ICfQoNCV0JTQkNCa0KLQmNCg0J7QktCQ0J3QmNCVINCY0JfQntCR0KDQkNCW0JXQndCY0K8nLFxyXG4gICAgICAgICAgICBmaWxlSW1hZ2U6IGZpbGUsXHJcbiAgICAgICAgICAgIGNyb3BwZXJNYXhXaWR0aDogdGhpcy5jcm9wcGVyTWF4V2lkdGgsXHJcbiAgICAgICAgICAgIGNyb3BwZXJNYXhIZWlnaHQ6IHRoaXMuY3JvcHBlck1heEhlaWdodCxcclxuICAgICAgICAgICAgYXNwZWN0UmF0aW86IHRoaXMuYXNwZWN0UmF0aW8sXHJcbiAgICAgICAgICAgIG1haW50YWluQXNwZWN0UmF0aW86IHRoaXMubWFpbnRhaW5Bc3BlY3RSYXRpb1xyXG4gICAgICAgICAgfSwge30pXHJcbiAgICAgICAgICAgIC5hZnRlckNsb3NlZCgpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChyZXMucmVzdWx0ICYmIHJlcy5maWxlSW1hZ2UpIHtcclxuICAgICAgICAgICAgICAgIGRhdGEuZmlsZSA9IHJlcy5maWxlSW1hZ2VcclxuICAgICAgICAgICAgICAgIHRoaXMuX3VwbG9hZEZpbGUoZGF0YSlcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZmluZElkeCA9IHRoaXMuZmlsZXMuZmluZEluZGV4KGQgPT4gZC50ZW1wVXVpZCA9PT0gZGF0YS50ZW1wVXVpZClcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoZmluZElkeCAhPSAtMSkge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmZpbGVzID0gdGhpcy5maWxlcy5maWx0ZXIoKGYsIGlkeCkgPT4gaWR4ICE9PSBmaW5kSWR4KVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBjaGFuZ2VQcmV2aWV3KGV2ZW50OiBhbnksIGZpbGU6IElucHV0RmlsZU1vZGVsKSB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuXHJcbiAgICBnZXRCYXNlNjRGcm9tVXJsKHRoaXMuZG93bmxvYWRVcmwoZmlsZSkpLnRoZW4oKGJhc2U2NFVybDogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMuX21vZGFsU2VydmljZS5vcGVuKEZpbGVJbWFnZUVkaXRNb2RhbENvbXBvbmVudCwge1xyXG4gICAgICAgIHRpdGxlOiAn0KDQldCU0JDQmtCi0JjQoNCe0JLQkNCd0JjQlSDQmNCX0J7QkdCg0JDQltCV0J3QmNCvJyxcclxuICAgICAgICBmaWxlSW1hZ2U6IGNvbnZlcnRCYXNlNjRUb0ZpbGUoYmFzZTY0VXJsLCBmaWxlLm5hbWUgfHwgJycsICdpbWFnZS9wbmcnKSxcclxuICAgICAgICBjcm9wcGVyTWF4V2lkdGg6IHRoaXMuY3JvcHBlck1heFdpZHRoLFxyXG4gICAgICAgIGNyb3BwZXJNYXhIZWlnaHQ6IHRoaXMuY3JvcHBlck1heEhlaWdodCxcclxuICAgICAgICBhc3BlY3RSYXRpbzogdGhpcy5hc3BlY3RSYXRpbyxcclxuICAgICAgICBtYWludGFpbkFzcGVjdFJhdGlvOiB0aGlzLm1haW50YWluQXNwZWN0UmF0aW9cclxuICAgICAgfSwge30pXHJcbiAgICAgICAgLmFmdGVyQ2xvc2VkKClcclxuICAgICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMucmVzdWx0ICYmIHJlcy5maWxlSW1hZ2UpIHtcclxuICAgICAgICAgICAgdGhpcy5fdXBkYXRlRmlsZShmaWxlLCByZXMuZmlsZUltYWdlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGRlbGV0ZShldmVudDogYW55LCBmaWxlOiBJbnB1dEZpbGVNb2RlbCk6IHZvaWQge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcblxyXG4gICAgaWYgKHRoaXMuZGVsZXRlQ29uZmlybSkge1xyXG4gICAgICB0aGlzLmRlbGV0ZUNvbmZpcm0oZmlsZSwgKG9rKSA9PiB7XHJcbiAgICAgICAgaWYgKG9rKSB7XHJcbiAgICAgICAgICB0aGlzLl9kZWxldGVGaWxlKGZpbGUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9kZWxldGVGaWxlKGZpbGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsZWFyKGZpbGU6IElucHV0RmlsZU1vZGVsKTogdm9pZCB7XHJcbiAgICBpZiAoZmlsZS51cGxvYWRpbmcpIHtcclxuICAgICAgaWYgKGZpbGUuZXhlY3V0aW9uKSB7XHJcbiAgICAgICAgZmlsZS5leGVjdXRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGZpbmRGaWxlSWR4ID0gdGhpcy5maWxlcy5pbmRleE9mKGZpbGUpO1xyXG5cclxuICAgIGlmIChmaW5kRmlsZUlkeCA+PSAwKSB7XHJcbiAgICAgIHRoaXMuZmlsZXMuc3BsaWNlKGZpbmRGaWxlSWR4LCAxKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBkb3dubG9hZFVybChmaWxlOiBVcGxvYWRlZEZpbGVNb2RlbCk6IHN0cmluZyB7XHJcbiAgICBpZiAodGhpcy5kb3dubG9hZEVuZFBvaW50KSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl90cmFuc2Zvcm1VcmwodGhpcy5kb3dubG9hZEVuZFBvaW50LCBmaWxlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBmaWxlT3ZlcihldmVudDogYW55KSB7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZmlsZUxlYXZlKGV2ZW50OiBhbnkpIHtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3RyYW5zZm9ybVVybCh1cmw6IHN0cmluZywgZmlsZTogVXBsb2FkZWRGaWxlTW9kZWwpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHVybC5yZXBsYWNlKC97aWR9LywgZmlsZS5pZClcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2Zvcm1EYXRhS2V5cygpOiBzdHJpbmdbXSB7XHJcbiAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5mb3JtRGF0YSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jcmVhdGVGb3JtRGF0YSgpOiBGb3JtRGF0YSB7XHJcbiAgICBjb25zdCBmb3JtID0gbmV3IEZvcm1EYXRhKCk7XHJcbiAgICBpZiAodGhpcy5tYXhGaWxlcykge1xyXG4gICAgICBmb3JtLmFwcGVuZCgnTWF4RmlsZXMnLCB0aGlzLm1heEZpbGVzLnRvU3RyaW5nKDEwKSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBrZXlzID0gdGhpcy5fZm9ybURhdGFLZXlzKCk7XHJcbiAgICBrZXlzLmZvckVhY2goa2V5ID0+IGZvcm0uYXBwZW5kKGtleSwgdGhpcy5mb3JtRGF0YVtrZXldKSk7XHJcbiAgICByZXR1cm4gZm9ybTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2RlbGV0ZUZpbGUoZmlsZTogSW5wdXRGaWxlTW9kZWwpIHtcclxuICAgIGNvbnN0IGZpbmRGaWxlID0gdGhpcy5maWxlcy5maW5kKHMgPT4gcy5pZCA9PT0gZmlsZS5pZCk7XHJcblxyXG4gICAgaWYgKGZpbmRGaWxlKSB7XHJcbiAgICAgIGlmICh0aGlzLmRlbGV0ZUVuZFBvaW50KSB7XHJcbiAgICAgICAgZmluZEZpbGUuZGVsZXRpbmcgPSB0cnVlO1xyXG5cclxuICAgICAgICB0aGlzLmltYWdlVXBsb2FkU2VydmljZS5kZWxldGUodGhpcy5kZWxldGVFbmRQb2ludCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgICB0aGlzLmZpbGVzLnNwbGljZSh0aGlzLmZpbGVzLmluZGV4T2YoZmluZEZpbGUpLCAxKTtcclxuICAgICAgICAgIHRoaXMuZmlsZXNDaGFuZ2VkLmVtaXQodGhpcy5maWxlcyk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuZmlsZXMuc3BsaWNlKHRoaXMuZmlsZXMuaW5kZXhPZihmaW5kRmlsZSksIDEpO1xyXG4gICAgICAgIHRoaXMuZmlsZXNDaGFuZ2VkLmVtaXQodGhpcy5maWxlcyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3VwZGF0ZUZpbGUob2xkRmlsZTogSW5wdXRGaWxlTW9kZWwsIG5ld0ZpbGU6IEZpbGUpIHtcclxuICAgIGNvbnN0IGZpbmRGaWxlID0gdGhpcy5maWxlcy5maW5kKChzOiBJbnB1dEZpbGVNb2RlbCkgPT4ge1xyXG4gICAgICBpZiAocy5pZCAhPT0gJycpIHtcclxuICAgICAgICByZXR1cm4gcy5pZCA9PT0gb2xkRmlsZS5pZDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gcy50ZW1wVXVpZCA9PT0gb2xkRmlsZS50ZW1wVXVpZDtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKGZpbmRGaWxlKSB7XHJcbiAgICAgIGNvbnN0IGRhdGE6IElucHV0RmlsZU1vZGVsID0ge1xyXG4gICAgICAgIGlkOiAnJyxcclxuICAgICAgICB0ZW1wVXVpZDogdXVpZHY0KCksXHJcbiAgICAgICAgbmFtZTogbmV3RmlsZS5uYW1lLFxyXG4gICAgICAgIGxlbmd0aDogbmV3RmlsZS5zaXplLFxyXG4gICAgICAgIHVwbG9hZGluZzogdHJ1ZSxcclxuICAgICAgICBwZXJjZW50YWdlOiAwLFxyXG4gICAgICAgIGZpbGU6IG5ld0ZpbGUsXHJcbiAgICAgIH0gYXMgSW5wdXRGaWxlTW9kZWw7XHJcblxyXG4gICAgICBpZiAodGhpcy5kZWxldGVFbmRQb2ludCkge1xyXG4gICAgICAgIGZpbmRGaWxlLmRlbGV0aW5nID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgdGhpcy5pbWFnZVVwbG9hZFNlcnZpY2UuZGVsZXRlKHRoaXMuZGVsZXRlRW5kUG9pbnQpLnN1YnNjcmliZShyZXN1bHQgPT4ge1xyXG4gICAgICAgICAgdGhpcy5maWxlcy5zcGxpY2UodGhpcy5maWxlcy5pbmRleE9mKGZpbmRGaWxlKSwgMSk7XHJcbiAgICAgICAgICB0aGlzLmZpbGVzLnB1c2goZGF0YSk7XHJcbiAgICAgICAgICB0aGlzLl91cGxvYWRGaWxlKGRhdGEpO1xyXG5cclxuICAgICAgICAgIHRoaXMuX2RldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5maWxlcy5wdXNoKGRhdGEpO1xyXG4gICAgICAgIHRoaXMuX3VwbG9hZEZpbGUoZGF0YSk7XHJcblxyXG4gICAgICAgIHRoaXMuX2RldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdXBsb2FkRmlsZShkYXRhOiBJbnB1dEZpbGVNb2RlbCkge1xyXG4gICAgY29uc3QgZm9ybURhdGEgPSB0aGlzLl9jcmVhdGVGb3JtRGF0YSgpO1xyXG5cclxuICAgIGlmIChkYXRhLmZpbGUpIHtcclxuICAgICAgZm9ybURhdGEuYXBwZW5kKCdGaWxlJywgZGF0YS5maWxlKTtcclxuXHJcbiAgICAgIGRhdGEuZXhlY3V0aW9uID0gdGhpcy5pbWFnZVVwbG9hZFNlcnZpY2UudXBsb2FkKHRoaXMudXBsb2FkRW5kUG9pbnQsIGZvcm1EYXRhKS5waXBlKFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG4gICAgICAgICAgZGF0YS51cGxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHJldHVybiBFTVBUWTtcclxuICAgICAgICB9KVxyXG4gICAgICApXHJcbiAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IEh0dHBFdmVudDxVcGxvYWRlZFJlc3VsdE1vZGVsPikgPT4ge1xyXG4gICAgICAgICAgc3dpdGNoIChldmVudC50eXBlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgSHR0cEV2ZW50VHlwZS5TZW50OlxyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIEh0dHBFdmVudFR5cGUuUmVzcG9uc2VIZWFkZXI6XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgSHR0cEV2ZW50VHlwZS5VcGxvYWRQcm9ncmVzczpcclxuICAgICAgICAgICAgICBpZiAoZXZlbnQudG90YWwpIHtcclxuICAgICAgICAgICAgICAgIGRhdGEucGVyY2VudGFnZSA9IE1hdGgucm91bmQoZXZlbnQubG9hZGVkIC8gZXZlbnQudG90YWwgKiAxMDApO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBIdHRwRXZlbnRUeXBlLlJlc3BvbnNlOlxyXG4gICAgICAgICAgICAgIGlmIChldmVudC5ib2R5KSB7XHJcbiAgICAgICAgICAgICAgICBkYXRhLnVwbG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgZGF0YS5wZXJjZW50YWdlID0gMDtcclxuICAgICAgICAgICAgICAgIGRhdGEuaWQgPSBldmVudC5ib2R5LnV1aWQ7XHJcbiAgICAgICAgICAgICAgICBkYXRhLmZpbGUgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgICAgICBkYXRhLmVycm9yID0gZXZlbnQuYm9keS5tZXNzYWdlO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChkYXRhLmV4ZWN1dGlvbikge1xyXG4gICAgICAgICAgICAgICAgICBkYXRhLmV4ZWN1dGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZmlsZXMuZXZlcnkocyA9PiAhcy51cGxvYWRpbmcpKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuZmlsZXNDaGFuZ2VkLmVtaXQodGhpcy5maWxlcyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5fZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIm1yeC1pbnB1dC1maWxlLWltYWdlXCIgW2NsYXNzXT1cImdldENsYXNzZXNcIj5cclxuICBAc3dpdGNoICh0eXBlKSB7XHJcbiAgICBAY2FzZSAoJ2F2YXRhcicpIHtcclxuICAgICAgPG5neC1maWxlLWRyb3BcclxuICAgICAgICBbY2xhc3NOYW1lXT1cImdldERyb3Bab25lQ2xhc3Nlc1wiXHJcbiAgICAgICAgW2FjY2VwdF09XCJleHRlbnNpb25zIHx8ICcnXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgIChvbkZpbGVEcm9wKT1cImRyb3BwZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgKG9uRmlsZU92ZXIpPVwiZmlsZU92ZXIoJGV2ZW50KVwiIChvbkZpbGVMZWF2ZSk9XCJmaWxlTGVhdmUoJGV2ZW50KVwiXHJcbiAgICAgID5cclxuICAgICAgICA8bmctdGVtcGxhdGUgbmd4LWZpbGUtZHJvcC1jb250ZW50LXRtcCBsZXQtb3BlbkZpbGVTZWxlY3Rvcj1cIm9wZW5GaWxlU2VsZWN0b3JcIj5cclxuICAgICAgICAgIEBpZiAoZmlsZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtcngtaW5wdXQtZmlsZS1pbWFnZS1hdmF0YXJcIj5cclxuXHJcbiAgICAgICAgICAgICAgQGZvciAoZmlsZSBvZiBmaWxlczsgdHJhY2sgZmlsZS5pZCkge1xyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMTAwIGgtMTAwXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtcngtaW5wdXQtZmlsZS1pbWFnZS1hdmF0YXItaXRlbVwiIFtjbGFzcy5tcngtaW5wdXQtZmlsZS1pbWFnZS1lcnJvcl09XCJmaWxlLmVycm9yXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIEBpZiAoZmlsZS5lcnJvcikge1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXJ4LWljb24gaWNvbi1jbG9zZSBpY29uLWZvbnQtMjRcIiAoY2xpY2spPVwiY2xlYXIoZmlsZSlcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXJ4LWlucHV0LWZpbGUtaW1hZ2UtYXZhdGFyLWl0ZW0tZXJyb3JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcngtaWNvbiBpY29uLWltYWdlIGljb24tZm9udC0yNCBpY29uLWZpbGxlZC1jb2xvci1uZWdhdGl2ZVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgZmlsZS5lcnJvciB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKGZpbGUudXBsb2FkaW5nICYmICFmaWxlLmVycm9yKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcngtaWNvbiBpY29uLWNsb3NlIGljb24tZm9udC0yNFwiIChjbGljayk9XCJkZWxldGUoJGV2ZW50LCBmaWxlKVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtcngtaW5wdXQtZmlsZS1pbWFnZS1hdmF0YXItaXRlbS11cGxvYWRpbmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcngtaW5wdXQtZmlsZS1pbWFnZS1hdmF0YXItaXRlbS11cGxvYWRpbmctdGV4dFwiPtCX0LDQs9GA0YPQt9C60LAuLi48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtcngtaW5wdXQtZmlsZS1pbWFnZS1hdmF0YXItaXRlbS11cGxvYWRpbmctcHJvZ3Jlc3NcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbbmdTdHlsZV09XCJ7d2lkdGg6IGZpbGUucGVyY2VudGFnZSArICclJ31cIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKCFmaWxlLnVwbG9hZGluZyAmJiAhZmlsZS5lcnJvcikge1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJkb3dubG9hZFVybChmaWxlKVwiIFthbHRdPVwiZmlsZS5uYW1lXCIgaGVpZ2h0PVwiMTU0XCIgd2lkdGg9XCIxNTRcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXJ4LWlucHV0LWZpbGUtaW1hZ2UtY29udHJvbHNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1pbnB1dC1maWxlLWltYWdlLWNvbnRyb2xzLWl0ZW1cIiAoY2xpY2spPVwiY2hhbmdlUHJldmlldygkZXZlbnQsIGZpbGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcngtaWNvbiBpY29uLXBlbiBpY29uLWZvbnQtMTZcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXJ4LWlucHV0LWZpbGUtaW1hZ2UtY29udHJvbHMtaXRlbVwiIChjbGljayk9XCJkZWxldGUoJGV2ZW50LCBmaWxlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXJ4LWljb24gaWNvbi1kZWxldGUgaWNvbi1mb250LTE2XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJtcngtaW5wdXQtZmlsZS1pbWFnZS1pbnB1dFwiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLm1yeC1pbnB1dC1maWxlLWltYWdlX19kaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIiFkaXNhYmxlZCA/IG9wZW5GaWxlU2VsZWN0b3IoKSA6IHVuZGVmaW5lZFwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1yeC1pbnB1dC1maWxlLWltYWdlLWlucHV0LXBsYWNlaG9sZGVyXCI+e3sgcGxhY2Vob2xkZXIgfHwgZ2V0RGVmYXVsdFBsYWNlaG9sZGVyIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtcngtaW5wdXQtZmlsZS1pbWFnZS1pbnB1dC1pbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj7QoNCw0LfQvNC10YA6INC00L4ge3sgZm9ybWF0Qnl0ZXMobWF4U2l6ZSkgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImV4dGVuc2lvbnNcIj7QpNC+0YDQvNCw0YI6IHt7IGV4dGVuc2lvbnMgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDwvbmd4LWZpbGUtZHJvcD5cclxuICAgIH1cclxuICAgIEBkZWZhdWx0IHtcclxuICAgICAgQGlmIChjYW5BZGQpIHtcclxuICAgICAgICA8bmd4LWZpbGUtZHJvcFxyXG4gICAgICAgICAgW2NsYXNzTmFtZV09XCJnZXREcm9wWm9uZUNsYXNzZXNcIlxyXG4gICAgICAgICAgW2FjY2VwdF09XCJleHRlbnNpb25zIHx8ICcnXCJcclxuICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgICAgICAob25GaWxlRHJvcCk9XCJkcm9wcGVkKCRldmVudClcIlxyXG4gICAgICAgICAgKG9uRmlsZU92ZXIpPVwiZmlsZU92ZXIoJGV2ZW50KVwiIChvbkZpbGVMZWF2ZSk9XCJmaWxlTGVhdmUoJGV2ZW50KVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIG5neC1maWxlLWRyb3AtY29udGVudC10bXAgbGV0LW9wZW5GaWxlU2VsZWN0b3I9XCJvcGVuRmlsZVNlbGVjdG9yXCI+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBjbGFzcz1cIm1yeC1pbnB1dC1maWxlLWltYWdlLWlucHV0XCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiIWRpc2FibGVkID8gb3BlbkZpbGVTZWxlY3RvcigpIDogdW5kZWZpbmVkXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXJ4LWlucHV0LWZpbGUtaW1hZ2UtaW5wdXQtcGxhY2Vob2xkZXJcIj5cclxuICAgICAgICAgICAgICAgIHt7IHBsYWNlaG9sZGVyIHx8IGdldERlZmF1bHRQbGFjZWhvbGRlciB9fVxyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXJ4LWlucHV0LWZpbGUtaW1hZ2UtaW5wdXQtaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+0KDQsNC30LzQtdGAOiDQtNC+IHt7IGZvcm1hdEJ5dGVzKG1heFNpemUpIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJleHRlbnNpb25zXCI+0KTQvtGA0LzQsNGCOiB7eyBleHRlbnNpb25zIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZ3gtZmlsZS1kcm9wPlxyXG4gICAgICB9XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwibXJ4LWlucHV0LWZpbGUtaW1hZ2UtcHJldmlld1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgIEBmb3IgKGZpbGUgb2YgZmlsZXM7IHRyYWNrIGZpbGUuaWQpIHtcclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTEyIGNvbC1zbS02IGNvbC1tZC00IGNvbC1sZy0zXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1pbnB1dC1maWxlLWltYWdlLXByZXZpZXctaXRlbVwiIFtjbGFzcy5tcngtaW5wdXQtZmlsZS1pbWFnZS1lcnJvcl09XCJmaWxlLmVycm9yXCI+XHJcbiAgICAgICAgICAgICAgICBAaWYgKGZpbGUuZXJyb3IpIHtcclxuXHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXJ4LWljb24gaWNvbi1jbG9zZSBpY29uLWZvbnQtMjRcIiAoY2xpY2spPVwiZGVsZXRlKCRldmVudCwgZmlsZSlcIj48L3NwYW4+XHJcblxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXJ4LWlucHV0LWZpbGUtaW1hZ2UtcHJldmlldy1pdGVtLWVycm9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcngtaWNvbiBpY29uLWltYWdlIGljb24tZm9udC0yNCBpY29uLWZpbGxlZC1jb2xvci1uZWdhdGl2ZVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICB7eyBmaWxlLmVycm9yIH19XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXJ4LWlucHV0LWZpbGUtaW1hZ2UtcHJldmlldy1pdGVtLW5hbWVcIj57eyBmaWxlLm5hbWUgfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1pbnB1dC1maWxlLWltYWdlLXByZXZpZXctaXRlbS1kZXNjcmlwdGlvblwiPnt7IGZvcm1hdEJ5dGVzKGZpbGUubGVuZ3RoKSB9fTwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKGZpbGUudXBsb2FkaW5nICYmICFmaWxlLmVycm9yKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXJ4LWlucHV0LWZpbGUtaW1hZ2UtcHJldmlldy1pdGVtLXVwbG9hZGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXJ4LWlucHV0LWZpbGUtaW1hZ2UtcHJldmlldy1pdGVtLXVwbG9hZGluZy10ZXh0XCI+0JfQsNCz0YDRg9C30LrQsC4uLjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXJ4LWlucHV0LWZpbGUtaW1hZ2UtcHJldmlldy1pdGVtLXVwbG9hZGluZy1wcm9ncmVzc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW25nU3R5bGVdPVwie3dpZHRoOiBmaWxlLnBlcmNlbnRhZ2UgKyAnJSd9XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICB9IEBlbHNlIGlmICghZmlsZS51cGxvYWRpbmcgJiYgIWZpbGUuZXJyb3IpIHtcclxuXHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtcngtaW5wdXQtZmlsZS1pbWFnZS1wcmV2aWV3LWl0ZW1fX2ltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cImRvd25sb2FkVXJsKGZpbGUpXCIgW2FsdF09XCJmaWxlLm5hbWVcIj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXJ4LWlucHV0LWZpbGUtaW1hZ2UtcHJldmlldy1pdGVtLWluZm9cIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXJ4LWlucHV0LWZpbGUtaW1hZ2UtcHJldmlldy1pdGVtLW5hbWVcIj57eyBmaWxlLm5hbWUgfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXJ4LWlucHV0LWZpbGUtaW1hZ2UtcHJldmlldy1pdGVtLWRlc2NyaXB0aW9uXCI+e3sgZm9ybWF0Qnl0ZXMoZmlsZS5sZW5ndGgpIH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1pbnB1dC1maWxlLWltYWdlLWNvbnRyb2xzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1pbnB1dC1maWxlLWltYWdlLWNvbnRyb2xzLWl0ZW1cIiAoY2xpY2spPVwiY2hhbmdlUHJldmlldygkZXZlbnQsIGZpbGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1yeC1pY29uIGljb24tcGVuIGljb24tZm9udC0xNlwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXJ4LWlucHV0LWZpbGUtaW1hZ2UtY29udHJvbHMtaXRlbVwiIChjbGljayk9XCJkZWxldGUoJGV2ZW50LCBmaWxlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcngtaWNvbiBpY29uLWRlbGV0ZSBpY29uLWZvbnQtMTZcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgfVxyXG4gIH1cclxuPC9kaXY+XHJcbiJdfQ==
|
package/fesm2022/myrta-ui.mjs
CHANGED
|
@@ -10813,14 +10813,6 @@ class FileImageEditModalComponent extends ModalServiceComponent {
|
|
|
10813
10813
|
this.aspectRatio = data.aspectRatio;
|
|
10814
10814
|
this.maintainAspectRatio = data.maintainAspectRatio;
|
|
10815
10815
|
}
|
|
10816
|
-
async ok() {
|
|
10817
|
-
this.result = {
|
|
10818
|
-
result: true,
|
|
10819
|
-
fileImage: convertBase64ToFile(this.croppedImage, this.fileImage.name, this.fileImage.type),
|
|
10820
|
-
fileUrl: this.croppedImage
|
|
10821
|
-
};
|
|
10822
|
-
this.close();
|
|
10823
|
-
}
|
|
10824
10816
|
rotateLeft() {
|
|
10825
10817
|
this.canvasRotation--;
|
|
10826
10818
|
this.flipAfterRotate();
|
|
@@ -10855,16 +10847,27 @@ class FileImageEditModalComponent extends ModalServiceComponent {
|
|
|
10855
10847
|
loadImageFailed() {
|
|
10856
10848
|
// show message
|
|
10857
10849
|
}
|
|
10858
|
-
|
|
10850
|
+
async ok() {
|
|
10851
|
+
this.result = {
|
|
10852
|
+
result: true,
|
|
10853
|
+
fileImage: convertBase64ToFile(this.croppedImage, this.fileImage.name, this.fileImage.type),
|
|
10854
|
+
fileUrl: this.croppedImage
|
|
10855
|
+
};
|
|
10856
|
+
this.close();
|
|
10857
|
+
}
|
|
10858
|
+
cancel() {
|
|
10859
10859
|
this.result = { result: false };
|
|
10860
|
+
this.close();
|
|
10861
|
+
}
|
|
10862
|
+
close() {
|
|
10860
10863
|
this.dialogRef.close(this.result);
|
|
10861
10864
|
}
|
|
10862
10865
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FileImageEditModalComponent, deps: [{ token: ModalRef }, { token: MODAL_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
10863
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FileImageEditModalComponent, selector: "mrx-file-image-edit-modal", usesInheritance: true, ngImport: i0, template: "<mrx-modal\r\n [title]=\"title\"\r\n [size]=\"'medium'\"\r\n (close)=\"
|
|
10866
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FileImageEditModalComponent, selector: "mrx-file-image-edit-modal", usesInheritance: true, ngImport: i0, template: "<mrx-modal\r\n [title]=\"title\"\r\n [size]=\"'medium'\"\r\n (close)=\"cancel()\"\r\n>\r\n <div class=\"row\">\r\n <div class=\"col col-12\">\r\n <p>\u0412\u044B\u0431\u0440\u0430\u043D\u043D\u0430\u044F \u043E\u0431\u043B\u0430\u0441\u0442\u044C \u0431\u0443\u0434\u0435\u0442 \u043F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C\u0441\u044F \u043D\u0430 \u043E\u0431\u043B\u043E\u0436\u043A\u0435 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B</p>\r\n </div>\r\n\r\n <div class=\"col col-12\">\r\n <div class=\"mrx-input-image-cropper__wrapper\">\r\n <image-cropper\r\n format=\"png\"\r\n output=\"base64\"\r\n [alignImage]=\"'center'\"\r\n [imageFile]=\"fileImage\"\r\n [maintainAspectRatio]=\"maintainAspectRatio\"\r\n [aspectRatio]=\"aspectRatio\"\r\n [backgroundColor]=\"'#000000'\"\r\n [canvasRotation]=\"canvasRotation\"\r\n [transform]=\"transform\"\r\n [cropperMaxWidth]=\"cropperMaxWidth\"\r\n [cropperMaxHeight]=\"cropperMaxHeight\"\r\n (loadImageFailed)=\"loadImageFailed()\"\r\n (imageCropped)=\"imageCropped($event)\"\r\n (imageLoaded)=\"imageLoaded($event)\"\r\n (cropperReady)=\"cropperReady()\"\r\n ></image-cropper>\r\n\r\n <div class=\"mrx-input-image-cropper__controls\">\r\n <svg (click)=\"rotateLeft()\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"2\" y=\"15\" width=\"8\" height=\"8\" rx=\"0.888889\" stroke=\"white\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4.5 18.5C5.05228 18.5 5.5 18.0523 5.5 17.5C5.5 16.9477 5.05228 16.5 4.5 16.5C3.94772 16.5 3.5 16.9477 3.5 17.5C3.5 18.0523 3.94772 18.5 4.5 18.5Z\" stroke=\"white\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M9.99978 20.3333L7.77756 18.1111L2.88867 23\" stroke=\"white\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M13.1575 21.6842C18.5932 21.6842 22.9996 17.2777 22.9996 11.8421C22.9996 6.40646 18.5932 2 13.1575 2C7.72189 2 3.31543 6.40646 3.31543 11.8421\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\"/>\r\n <path d=\"M1.00026 10.1052L3.31605 12.421L5.63184 10.1052\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n\r\n <svg (click)=\"rotateRight()\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"14\" y=\"15\" width=\"8\" height=\"8\" rx=\"0.888889\" stroke=\"white\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M16.5 18.5C17.0523 18.5 17.5 18.0523 17.5 17.5C17.5 16.9477 17.0523 16.5 16.5 16.5C15.9477 16.5 15.5 16.9477 15.5 17.5C15.5 18.0523 15.9477 18.5 16.5 18.5Z\" stroke=\"white\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M21.9998 20.3333L19.7776 18.1111L14.8887 23\" stroke=\"white\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M10.8425 21.6842C5.40682 21.6842 1.00036 17.2777 1.00036 11.8421C1.00036 6.40646 5.40682 2 10.8425 2C16.2781 2 20.6846 6.40646 20.6846 11.8421\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\"/>\r\n <path d=\"M22.9997 10.1052L20.684 12.421L18.3682 10.1052\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <ng-template #footerContent>\r\n <mrx-button\r\n [customClasses]=\"'mr-3'\"\r\n [type]=\"'secondary'\"\r\n [size]=\"'medium'\"\r\n (click)=\"cancel()\"\r\n >\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C\r\n </mrx-button>\r\n <mrx-button\r\n [type]=\"'primary'\"\r\n [size]=\"'medium'\"\r\n (click)=\"ok()\"\r\n >\u041F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044C\r\n </mrx-button>\r\n </ng-template>\r\n</mrx-modal>\r\n\r\n\r\n", styles: [":host::ng-deep .mrx-input-image-cropper__wrapper{position:relative}:host::ng-deep .mrx-input-image-cropper__controls{padding:8px;background:#1f222680;border-radius:4px;position:absolute;left:50%;bottom:24px;transform:translate(-50%)}:host::ng-deep .mrx-input-image-cropper__controls svg{cursor:pointer}:host::ng-deep .mrx-input-image-cropper__controls svg:not(:last-child){margin-right:16px}\n"], dependencies: [{ kind: "component", type: ModalComponent, selector: "mrx-modal", inputs: ["title", "message", "alert", "okText", "closeText", "size", "color", "customClasses", "expandable", "isEmbed", "isClose", "isBack", "backText", "enableFooter", "alignButtons", "isLoading", "iconPosition"], outputs: ["ok", "close", "back"] }, { kind: "component", type: ButtonComponent, selector: "mrx-button", inputs: ["size", "type", "color", "iconPosition", "active", "disabled", "isLoading", "iconOnly", "customClasses", "label", "icon", "iconClass", "buttonType", "href", "target", "routerLink", "queryParams"], outputs: ["mrxClick"] }, { kind: "component", type: i4.ImageCropperComponent, selector: "image-cropper", inputs: ["imageChangedEvent", "imageURL", "imageBase64", "imageFile", "imageAltText", "options", "cropperFrameAriaLabel", "output", "format", "autoCrop", "cropper", "transform", "maintainAspectRatio", "aspectRatio", "resetCropOnAspectRatioChange", "resizeToWidth", "resizeToHeight", "cropperMinWidth", "cropperMinHeight", "cropperMaxHeight", "cropperMaxWidth", "cropperStaticWidth", "cropperStaticHeight", "canvasRotation", "initialStepSize", "roundCropper", "onlyScaleDown", "imageQuality", "backgroundColor", "containWithinAspectRatio", "hideResizeSquares", "allowMoveImage", "checkImageType", "alignImage", "disabled", "hidden"], outputs: ["imageCropped", "startCropImage", "imageLoaded", "cropperReady", "loadImageFailed", "transformChange", "cropperChange"] }] });
|
|
10864
10867
|
}
|
|
10865
10868
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FileImageEditModalComponent, decorators: [{
|
|
10866
10869
|
type: Component,
|
|
10867
|
-
args: [{ selector: 'mrx-file-image-edit-modal', template: "<mrx-modal\r\n [title]=\"title\"\r\n [size]=\"'medium'\"\r\n (close)=\"
|
|
10870
|
+
args: [{ selector: 'mrx-file-image-edit-modal', template: "<mrx-modal\r\n [title]=\"title\"\r\n [size]=\"'medium'\"\r\n (close)=\"cancel()\"\r\n>\r\n <div class=\"row\">\r\n <div class=\"col col-12\">\r\n <p>\u0412\u044B\u0431\u0440\u0430\u043D\u043D\u0430\u044F \u043E\u0431\u043B\u0430\u0441\u0442\u044C \u0431\u0443\u0434\u0435\u0442 \u043F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C\u0441\u044F \u043D\u0430 \u043E\u0431\u043B\u043E\u0436\u043A\u0435 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B</p>\r\n </div>\r\n\r\n <div class=\"col col-12\">\r\n <div class=\"mrx-input-image-cropper__wrapper\">\r\n <image-cropper\r\n format=\"png\"\r\n output=\"base64\"\r\n [alignImage]=\"'center'\"\r\n [imageFile]=\"fileImage\"\r\n [maintainAspectRatio]=\"maintainAspectRatio\"\r\n [aspectRatio]=\"aspectRatio\"\r\n [backgroundColor]=\"'#000000'\"\r\n [canvasRotation]=\"canvasRotation\"\r\n [transform]=\"transform\"\r\n [cropperMaxWidth]=\"cropperMaxWidth\"\r\n [cropperMaxHeight]=\"cropperMaxHeight\"\r\n (loadImageFailed)=\"loadImageFailed()\"\r\n (imageCropped)=\"imageCropped($event)\"\r\n (imageLoaded)=\"imageLoaded($event)\"\r\n (cropperReady)=\"cropperReady()\"\r\n ></image-cropper>\r\n\r\n <div class=\"mrx-input-image-cropper__controls\">\r\n <svg (click)=\"rotateLeft()\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"2\" y=\"15\" width=\"8\" height=\"8\" rx=\"0.888889\" stroke=\"white\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4.5 18.5C5.05228 18.5 5.5 18.0523 5.5 17.5C5.5 16.9477 5.05228 16.5 4.5 16.5C3.94772 16.5 3.5 16.9477 3.5 17.5C3.5 18.0523 3.94772 18.5 4.5 18.5Z\" stroke=\"white\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M9.99978 20.3333L7.77756 18.1111L2.88867 23\" stroke=\"white\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M13.1575 21.6842C18.5932 21.6842 22.9996 17.2777 22.9996 11.8421C22.9996 6.40646 18.5932 2 13.1575 2C7.72189 2 3.31543 6.40646 3.31543 11.8421\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\"/>\r\n <path d=\"M1.00026 10.1052L3.31605 12.421L5.63184 10.1052\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n\r\n <svg (click)=\"rotateRight()\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"14\" y=\"15\" width=\"8\" height=\"8\" rx=\"0.888889\" stroke=\"white\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M16.5 18.5C17.0523 18.5 17.5 18.0523 17.5 17.5C17.5 16.9477 17.0523 16.5 16.5 16.5C15.9477 16.5 15.5 16.9477 15.5 17.5C15.5 18.0523 15.9477 18.5 16.5 18.5Z\" stroke=\"white\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M21.9998 20.3333L19.7776 18.1111L14.8887 23\" stroke=\"white\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M10.8425 21.6842C5.40682 21.6842 1.00036 17.2777 1.00036 11.8421C1.00036 6.40646 5.40682 2 10.8425 2C16.2781 2 20.6846 6.40646 20.6846 11.8421\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\"/>\r\n <path d=\"M22.9997 10.1052L20.684 12.421L18.3682 10.1052\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <ng-template #footerContent>\r\n <mrx-button\r\n [customClasses]=\"'mr-3'\"\r\n [type]=\"'secondary'\"\r\n [size]=\"'medium'\"\r\n (click)=\"cancel()\"\r\n >\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C\r\n </mrx-button>\r\n <mrx-button\r\n [type]=\"'primary'\"\r\n [size]=\"'medium'\"\r\n (click)=\"ok()\"\r\n >\u041F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044C\r\n </mrx-button>\r\n </ng-template>\r\n</mrx-modal>\r\n\r\n\r\n", styles: [":host::ng-deep .mrx-input-image-cropper__wrapper{position:relative}:host::ng-deep .mrx-input-image-cropper__controls{padding:8px;background:#1f222680;border-radius:4px;position:absolute;left:50%;bottom:24px;transform:translate(-50%)}:host::ng-deep .mrx-input-image-cropper__controls svg{cursor:pointer}:host::ng-deep .mrx-input-image-cropper__controls svg:not(:last-child){margin-right:16px}\n"] }]
|
|
10868
10871
|
}], ctorParameters: () => [{ type: ModalRef }, { type: undefined, decorators: [{
|
|
10869
10872
|
type: Inject,
|
|
10870
10873
|
args: [MODAL_DATA]
|
|
@@ -10997,13 +11000,19 @@ class InputFileImageComponent {
|
|
|
10997
11000
|
cropperMaxHeight: this.cropperMaxHeight,
|
|
10998
11001
|
aspectRatio: this.aspectRatio,
|
|
10999
11002
|
maintainAspectRatio: this.maintainAspectRatio
|
|
11000
|
-
})
|
|
11003
|
+
}, {})
|
|
11001
11004
|
.afterClosed()
|
|
11002
11005
|
.subscribe((res) => {
|
|
11003
11006
|
if (res.result && res.fileImage) {
|
|
11004
11007
|
data.file = res.fileImage;
|
|
11008
|
+
this._uploadFile(data);
|
|
11009
|
+
}
|
|
11010
|
+
else {
|
|
11011
|
+
const findIdx = this.files.findIndex(d => d.tempUuid === data.tempUuid);
|
|
11012
|
+
if (findIdx != -1) {
|
|
11013
|
+
this.files = this.files.filter((f, idx) => idx !== findIdx);
|
|
11014
|
+
}
|
|
11005
11015
|
}
|
|
11006
|
-
this._uploadFile(data);
|
|
11007
11016
|
});
|
|
11008
11017
|
}
|
|
11009
11018
|
});
|
|
@@ -11019,7 +11028,7 @@ class InputFileImageComponent {
|
|
|
11019
11028
|
cropperMaxHeight: this.cropperMaxHeight,
|
|
11020
11029
|
aspectRatio: this.aspectRatio,
|
|
11021
11030
|
maintainAspectRatio: this.maintainAspectRatio
|
|
11022
|
-
})
|
|
11031
|
+
}, {})
|
|
11023
11032
|
.afterClosed()
|
|
11024
11033
|
.subscribe((res) => {
|
|
11025
11034
|
if (res.result && res.fileImage) {
|