ngx-extended-pdf-viewer
Version:
Embedding PDF files in your Angular application. Highly configurable viewer including the toolbar, sidebar, and all the features you're used to.
49 lines • 14.7 kB
JavaScript
import { Component, effect, Input } from '@angular/core';
import { PositioningService } from '../../dynamic-css/positioning.service';
import { AnnotationEditorType } from '../../options/editor-annotations';
import * as i0 from "@angular/core";
import * as i1 from "../../pdf-notification-service";
import * as i2 from "../pdf-shy-button/pdf-shy-button.component";
import * as i3 from "../../responsive-visibility";
export class PdfEditorSignatureComponent {
cdr;
show = true;
isSelected = false;
PDFViewerApplication;
constructor(notificationService, cdr) {
this.cdr = cdr;
effect(() => {
this.PDFViewerApplication = notificationService.onPDFJSInitSignal();
if (this.PDFViewerApplication) {
this.onPdfJsInit();
}
});
}
onPdfJsInit() {
this.PDFViewerApplication?.eventBus.on('annotationeditormodechanged', ({ mode }) => {
setTimeout(() => {
this.isSelected = mode === AnnotationEditorType.SIGNATURE;
this.cdr.detectChanges();
});
});
}
onClick(event) {
const currentMode = this.PDFViewerApplication?.pdfViewer.annotationEditorMode;
this.PDFViewerApplication?.eventBus.dispatch('switchannotationeditormode', {
source: this,
mode: currentMode === AnnotationEditorType.SIGNATURE ? AnnotationEditorType.NONE : AnnotationEditorType.SIGNATURE,
isFromKeyboard: event.detail === 0,
});
const positioningService = new PositioningService();
positioningService.positionPopupBelowItsButton('primaryEditorSignatureButton', 'editorSignatureParamsToolbar');
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PdfEditorSignatureComponent, deps: [{ token: i1.PDFNotificationService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: PdfEditorSignatureComponent, selector: "pdf-editor-signature", inputs: { show: "show" }, ngImport: i0, template: "<pdf-shy-button\n title=\"Signature\"\n primaryToolbarId=\"primaryEditorSignatureButton\"\n [cssClass]=\"show | responsiveCSSClass : 'hiddenTinyView'\"\n l10nId=\"pdfjs-editor-signature-button\"\n l10nLabel=\"pdfjs-editor-signature-button-label\"\n [order]=\"4000\"\n [action]=\"onClick\"\n [toggled]=\"isSelected\"\n [closeOnClick]=\"true\"\n image=\"<svg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'><path d='M11.618 12.868L11.254 13.25H10.423C10.335 13.396 10.182 13.5 10 13.5H2C1.725 13.5 1.5 13.275 1.5 13V2C1.5 1.725 1.725 1.5 2 1.5H6.939L7 1.561V4.5C7 4.776 7.224 5 7.5 5H10.439L10.5 5.061V6.515L12 5.015V4.75C12 4.551 11.921 4.36 11.78 4.22L7.78 0.22C7.64 0.079 7.449 0 7.25 0H2C0.895 0 0 0.895 0 2V13C0 14.105 0.895 15 2 15H10C11.105 15 12 14.105 12 13V12.486L11.618 12.868Z' fill='black'/><path d='M13.836 4.946C13.962 4.819 14.13 4.75 14.309 4.75C14.487 4.75 14.655 4.819 14.782 4.945L15.805 5.969C15.931 6.094 16 6.262 16 6.441C16 6.621 15.931 6.789 15.805 6.915L14.9397 7.78033L12.9707 5.81134L13.836 4.946Z' fill='black'/><path d='M12.4403 6.34167L8.84 9.942C8.793 9.989 8.767 10.052 8.767 10.119V11.75C8.767 11.888 8.879 12 9.017 12H10.616L10.793 11.927L14.4093 8.31067L12.4403 6.34167Z' fill='black'/><path d='M7.517 9.84799V10.016H7.516V11.517C7.49168 11.4944 7.46584 11.4738 7.44007 11.4532C7.39062 11.4138 7.34148 11.3746 7.304 11.322L7.081 11.009C7.071 10.992 7.037 10.946 6.966 10.957C6.93 10.962 6.882 10.982 6.859 11.046C6.705 11.486 6.492 12.087 5.938 12.087H5.921C5.317 12.07 5.009 11.557 4.745 9.98599L4.382 10.954C4.146 11.585 3.535 12.009 2.861 12.009H2.5V10.759H2.861C3.017 10.759 3.158 10.661 3.213 10.515L3.883 8.72799C4.05 8.28199 4.494 8.01899 4.955 8.07299C5.434 8.12799 5.796 8.48599 5.858 8.96399C5.921 9.43699 5.98 9.80399 6.035 10.085C6.24 9.89099 6.504 9.76099 6.795 9.71999C7.048 9.68399 7.291 9.74599 7.517 9.84799Z' fill='black'/></svg>\">\n</pdf-shy-button>\n", styles: [""], dependencies: [{ kind: "component", type: i2.PdfShyButtonComponent, selector: "pdf-shy-button", inputs: ["primaryToolbarId", "secondaryMenuId", "cssClass", "eventBusName", "l10nId", "l10nLabel", "title", "toggled", "disabled", "order", "action", "closeOnClick", "onlySecondaryMenu", "image"] }, { kind: "pipe", type: i3.ResponsiveCSSClassPipe, name: "responsiveCSSClass" }] });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PdfEditorSignatureComponent, decorators: [{
type: Component,
args: [{ selector: 'pdf-editor-signature', template: "<pdf-shy-button\n title=\"Signature\"\n primaryToolbarId=\"primaryEditorSignatureButton\"\n [cssClass]=\"show | responsiveCSSClass : 'hiddenTinyView'\"\n l10nId=\"pdfjs-editor-signature-button\"\n l10nLabel=\"pdfjs-editor-signature-button-label\"\n [order]=\"4000\"\n [action]=\"onClick\"\n [toggled]=\"isSelected\"\n [closeOnClick]=\"true\"\n image=\"<svg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'><path d='M11.618 12.868L11.254 13.25H10.423C10.335 13.396 10.182 13.5 10 13.5H2C1.725 13.5 1.5 13.275 1.5 13V2C1.5 1.725 1.725 1.5 2 1.5H6.939L7 1.561V4.5C7 4.776 7.224 5 7.5 5H10.439L10.5 5.061V6.515L12 5.015V4.75C12 4.551 11.921 4.36 11.78 4.22L7.78 0.22C7.64 0.079 7.449 0 7.25 0H2C0.895 0 0 0.895 0 2V13C0 14.105 0.895 15 2 15H10C11.105 15 12 14.105 12 13V12.486L11.618 12.868Z' fill='black'/><path d='M13.836 4.946C13.962 4.819 14.13 4.75 14.309 4.75C14.487 4.75 14.655 4.819 14.782 4.945L15.805 5.969C15.931 6.094 16 6.262 16 6.441C16 6.621 15.931 6.789 15.805 6.915L14.9397 7.78033L12.9707 5.81134L13.836 4.946Z' fill='black'/><path d='M12.4403 6.34167L8.84 9.942C8.793 9.989 8.767 10.052 8.767 10.119V11.75C8.767 11.888 8.879 12 9.017 12H10.616L10.793 11.927L14.4093 8.31067L12.4403 6.34167Z' fill='black'/><path d='M7.517 9.84799V10.016H7.516V11.517C7.49168 11.4944 7.46584 11.4738 7.44007 11.4532C7.39062 11.4138 7.34148 11.3746 7.304 11.322L7.081 11.009C7.071 10.992 7.037 10.946 6.966 10.957C6.93 10.962 6.882 10.982 6.859 11.046C6.705 11.486 6.492 12.087 5.938 12.087H5.921C5.317 12.07 5.009 11.557 4.745 9.98599L4.382 10.954C4.146 11.585 3.535 12.009 2.861 12.009H2.5V10.759H2.861C3.017 10.759 3.158 10.661 3.213 10.515L3.883 8.72799C4.05 8.28199 4.494 8.01899 4.955 8.07299C5.434 8.12799 5.796 8.48599 5.858 8.96399C5.921 9.43699 5.98 9.80399 6.035 10.085C6.24 9.89099 6.504 9.76099 6.795 9.71999C7.048 9.68399 7.291 9.74599 7.517 9.84799Z' fill='black'/></svg>\">\n</pdf-shy-button>\n" }]
}], ctorParameters: () => [{ type: i1.PDFNotificationService }, { type: i0.ChangeDetectorRef }], propDecorators: { show: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLWVkaXRvci1zaWduYXR1cmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWV4dGVuZGVkLXBkZi12aWV3ZXIvc3JjL2xpYi90b29sYmFyL3BkZi1lZGl0b3Itc2lnbmF0dXJlL3BkZi1lZGl0b3Itc2lnbmF0dXJlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1leHRlbmRlZC1wZGYtdmlld2VyL3NyYy9saWIvdG9vbGJhci9wZGYtZWRpdG9yLXNpZ25hdHVyZS9wZGYtZWRpdG9yLXNpZ25hdHVyZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRTNFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7OztBQVV4RSxNQUFNLE9BQU8sMkJBQTJCO0lBVW5CO0lBUlosSUFBSSxHQUF5QixJQUFJLENBQUM7SUFFbEMsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUVsQixvQkFBb0IsQ0FBb0M7SUFFaEUsWUFDRSxtQkFBMkMsRUFDMUIsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFFdkMsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNWLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxtQkFBbUIsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3BFLElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFO2dCQUM3QixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7YUFDcEI7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxXQUFXO1FBQ2pCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLDZCQUE2QixFQUFFLENBQUMsRUFBRSxJQUFJLEVBQTBDLEVBQUUsRUFBRTtZQUN6SCxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxLQUFLLG9CQUFvQixDQUFDLFNBQVMsQ0FBQztnQkFDMUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUMzQixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLE9BQU8sQ0FBQyxLQUFtQjtRQUNoQyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsU0FBUyxDQUFDLG9CQUFvQixDQUFDO1FBQzlFLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDLDRCQUE0QixFQUFFO1lBQ3pFLE1BQU0sRUFBRSxJQUFJO1lBQ1osSUFBSSxFQUFFLFdBQVcsS0FBSyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsU0FBUztZQUNqSCxjQUFjLEVBQUUsS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDO1NBQ25DLENBQUMsQ0FBQztRQUNILE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBQ3BELGtCQUFrQixDQUFDLDJCQUEyQixDQUFDLDhCQUE4QixFQUFFLDhCQUE4QixDQUFDLENBQUM7SUFDakgsQ0FBQzt3R0F0Q1UsMkJBQTJCOzRGQUEzQiwyQkFBMkIsc0ZDYnhDLHU2REFZQTs7NEZEQ2EsMkJBQTJCO2tCQUx2QyxTQUFTOytCQUNFLHNCQUFzQjsySEFNekIsSUFBSTtzQkFEVixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgZWZmZWN0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUG9zaXRpb25pbmdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZHluYW1pYy1jc3MvcG9zaXRpb25pbmcuc2VydmljZSc7XG5pbXBvcnQgeyBBbm5vdGF0aW9uRWRpdG9yRWRpdG9yTW9kZUNoYW5nZWRFdmVudCB9IGZyb20gJy4uLy4uL2V2ZW50cy9hbm5vdGF0aW9uLWVkaXRvci1tb2RlLWNoYW5nZWQtZXZlbnQnO1xuaW1wb3J0IHsgQW5ub3RhdGlvbkVkaXRvclR5cGUgfSBmcm9tICcuLi8uLi9vcHRpb25zL2VkaXRvci1hbm5vdGF0aW9ucyc7XG5pbXBvcnQgeyBJUERGVmlld2VyQXBwbGljYXRpb24gfSBmcm9tICcuLi8uLi9vcHRpb25zL3BkZi12aWV3ZXItYXBwbGljYXRpb24nO1xuaW1wb3J0IHsgUERGTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3BkZi1ub3RpZmljYXRpb24tc2VydmljZSc7XG5pbXBvcnQgeyBSZXNwb25zaXZlVmlzaWJpbGl0eSB9IGZyb20gJy4uLy4uL3Jlc3BvbnNpdmUtdmlzaWJpbGl0eSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3BkZi1lZGl0b3Itc2lnbmF0dXJlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BkZi1lZGl0b3Itc2lnbmF0dXJlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3BkZi1lZGl0b3Itc2lnbmF0dXJlLmNvbXBvbmVudC5jc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBQZGZFZGl0b3JTaWduYXR1cmVDb21wb25lbnQge1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2hvdzogUmVzcG9uc2l2ZVZpc2liaWxpdHkgPSB0cnVlO1xuXG4gIHB1YmxpYyBpc1NlbGVjdGVkID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBQREZWaWV3ZXJBcHBsaWNhdGlvbjogSVBERlZpZXdlckFwcGxpY2F0aW9uIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIG5vdGlmaWNhdGlvblNlcnZpY2U6IFBERk5vdGlmaWNhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICApIHtcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgdGhpcy5QREZWaWV3ZXJBcHBsaWNhdGlvbiA9IG5vdGlmaWNhdGlvblNlcnZpY2Uub25QREZKU0luaXRTaWduYWwoKTtcbiAgICAgIGlmICh0aGlzLlBERlZpZXdlckFwcGxpY2F0aW9uKSB7XG4gICAgICAgIHRoaXMub25QZGZKc0luaXQoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgb25QZGZKc0luaXQoKSB7XG4gICAgdGhpcy5QREZWaWV3ZXJBcHBsaWNhdGlvbj8uZXZlbnRCdXMub24oJ2Fubm90YXRpb25lZGl0b3Jtb2RlY2hhbmdlZCcsICh7IG1vZGUgfTogQW5ub3RhdGlvbkVkaXRvckVkaXRvck1vZGVDaGFuZ2VkRXZlbnQpID0+IHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmlzU2VsZWN0ZWQgPSBtb2RlID09PSBBbm5vdGF0aW9uRWRpdG9yVHlwZS5TSUdOQVRVUkU7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG9uQ2xpY2soZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGN1cnJlbnRNb2RlID0gdGhpcy5QREZWaWV3ZXJBcHBsaWNhdGlvbj8ucGRmVmlld2VyLmFubm90YXRpb25FZGl0b3JNb2RlO1xuICAgIHRoaXMuUERGVmlld2VyQXBwbGljYXRpb24/LmV2ZW50QnVzLmRpc3BhdGNoKCdzd2l0Y2hhbm5vdGF0aW9uZWRpdG9ybW9kZScsIHtcbiAgICAgIHNvdXJjZTogdGhpcyxcbiAgICAgIG1vZGU6IGN1cnJlbnRNb2RlID09PSBBbm5vdGF0aW9uRWRpdG9yVHlwZS5TSUdOQVRVUkUgPyBBbm5vdGF0aW9uRWRpdG9yVHlwZS5OT05FIDogQW5ub3RhdGlvbkVkaXRvclR5cGUuU0lHTkFUVVJFLFxuICAgICAgaXNGcm9tS2V5Ym9hcmQ6IGV2ZW50LmRldGFpbCA9PT0gMCxcbiAgICB9KTtcbiAgICBjb25zdCBwb3NpdGlvbmluZ1NlcnZpY2UgPSBuZXcgUG9zaXRpb25pbmdTZXJ2aWNlKCk7XG4gICAgcG9zaXRpb25pbmdTZXJ2aWNlLnBvc2l0aW9uUG9wdXBCZWxvd0l0c0J1dHRvbigncHJpbWFyeUVkaXRvclNpZ25hdHVyZUJ1dHRvbicsICdlZGl0b3JTaWduYXR1cmVQYXJhbXNUb29sYmFyJyk7XG4gIH1cbn1cbiIsIjxwZGYtc2h5LWJ1dHRvblxuICB0aXRsZT1cIlNpZ25hdHVyZVwiXG4gIHByaW1hcnlUb29sYmFySWQ9XCJwcmltYXJ5RWRpdG9yU2lnbmF0dXJlQnV0dG9uXCJcbiAgW2Nzc0NsYXNzXT1cInNob3cgfCByZXNwb25zaXZlQ1NTQ2xhc3MgOiAnaGlkZGVuVGlueVZpZXcnXCJcbiAgbDEwbklkPVwicGRmanMtZWRpdG9yLXNpZ25hdHVyZS1idXR0b25cIlxuICBsMTBuTGFiZWw9XCJwZGZqcy1lZGl0b3Itc2lnbmF0dXJlLWJ1dHRvbi1sYWJlbFwiXG4gIFtvcmRlcl09XCI0MDAwXCJcbiAgW2FjdGlvbl09XCJvbkNsaWNrXCJcbiAgW3RvZ2dsZWRdPVwiaXNTZWxlY3RlZFwiXG4gIFtjbG9zZU9uQ2xpY2tdPVwidHJ1ZVwiXG4gIGltYWdlPVwiPHN2ZyB3aWR0aD0nMTYnIGhlaWdodD0nMTYnIHZpZXdCb3g9JzAgMCAxNiAxNicgZmlsbD0nbm9uZScgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJz48cGF0aCBkPSdNMTEuNjE4IDEyLjg2OEwxMS4yNTQgMTMuMjVIMTAuNDIzQzEwLjMzNSAxMy4zOTYgMTAuMTgyIDEzLjUgMTAgMTMuNUgyQzEuNzI1IDEzLjUgMS41IDEzLjI3NSAxLjUgMTNWMkMxLjUgMS43MjUgMS43MjUgMS41IDIgMS41SDYuOTM5TDcgMS41NjFWNC41QzcgNC43NzYgNy4yMjQgNSA3LjUgNUgxMC40MzlMMTAuNSA1LjA2MVY2LjUxNUwxMiA1LjAxNVY0Ljc1QzEyIDQuNTUxIDExLjkyMSA0LjM2IDExLjc4IDQuMjJMNy43OCAwLjIyQzcuNjQgMC4wNzkgNy40NDkgMCA3LjI1IDBIMkMwLjg5NSAwIDAgMC44OTUgMCAyVjEzQzAgMTQuMTA1IDAuODk1IDE1IDIgMTVIMTBDMTEuMTA1IDE1IDEyIDE0LjEwNSAxMiAxM1YxMi40ODZMMTEuNjE4IDEyLjg2OFonIGZpbGw9J2JsYWNrJy8+PHBhdGggZD0nTTEzLjgzNiA0Ljk0NkMxMy45NjIgNC44MTkgMTQuMTMgNC43NSAxNC4zMDkgNC43NUMxNC40ODcgNC43NSAxNC42NTUgNC44MTkgMTQuNzgyIDQuOTQ1TDE1LjgwNSA1Ljk2OUMxNS45MzEgNi4wOTQgMTYgNi4yNjIgMTYgNi40NDFDMTYgNi42MjEgMTUuOTMxIDYuNzg5IDE1LjgwNSA2LjkxNUwxNC45Mzk3IDcuNzgwMzNMMTIuOTcwNyA1LjgxMTM0TDEzLjgzNiA0Ljk0NlonIGZpbGw9J2JsYWNrJy8+PHBhdGggZD0nTTEyLjQ0MDMgNi4zNDE2N0w4Ljg0IDkuOTQyQzguNzkzIDkuOTg5IDguNzY3IDEwLjA1MiA4Ljc2NyAxMC4xMTlWMTEuNzVDOC43NjcgMTEuODg4IDguODc5IDEyIDkuMDE3IDEySDEwLjYxNkwxMC43OTMgMTEuOTI3TDE0LjQwOTMgOC4zMTA2N0wxMi40NDAzIDYuMzQxNjdaJyBmaWxsPSdibGFjaycvPjxwYXRoIGQ9J003LjUxNyA5Ljg0Nzk5VjEwLjAxNkg3LjUxNlYxMS41MTdDNy40OTE2OCAxMS40OTQ0IDcuNDY1ODQgMTEuNDczOCA3LjQ0MDA3IDExLjQ1MzJDNy4zOTA2MiAxMS40MTM4IDcuMzQxNDggMTEuMzc0NiA3LjMwNCAxMS4zMjJMNy4wODEgMTEuMDA5QzcuMDcxIDEwLjk5MiA3LjAzNyAxMC45NDYgNi45NjYgMTAuOTU3QzYuOTMgMTAuOTYyIDYuODgyIDEwLjk4MiA2Ljg1OSAxMS4wNDZDNi43MDUgMTEuNDg2IDYuNDkyIDEyLjA4NyA1LjkzOCAxMi4wODdINS45MjFDNS4zMTcgMTIuMDcgNS4wMDkgMTEuNTU3IDQuNzQ1IDkuOTg1OTlMNC4zODIgMTAuOTU0QzQuMTQ2IDExLjU4NSAzLjUzNSAxMi4wMDkgMi44NjEgMTIuMDA5SDIuNVYxMC43NTlIMi44NjFDMy4wMTcgMTAuNzU5IDMuMTU4IDEwLjY2MSAzLjIxMyAxMC41MTVMMy44ODMgOC43Mjc5OUM0LjA1IDguMjgxOTkgNC40OTQgOC4wMTg5OSA0Ljk1NSA4LjA3Mjk5QzUuNDM0IDguMTI3OTkgNS43OTYgOC40ODU5OSA1Ljg1OCA4Ljk2Mzk5QzUuOTIxIDkuNDM2OTkgNS45OCA5LjgwMzk5IDYuMDM1IDEwLjA4NUM2LjI0IDkuODkwOTkgNi41MDQgOS43NjA5OSA2Ljc5NSA5LjcxOTk5QzcuMDQ4IDkuNjgzOTkgNy4yOTEgOS43NDU5OSA3LjUxNyA5Ljg0Nzk5WicgZmlsbD0nYmxhY2snLz48L3N2Zz5cIj5cbjwvcGRmLXNoeS1idXR0b24+XG4iXX0=