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.
11 lines • 23.9 kB
JavaScript
import { Component } from '@angular/core';
import * as i0 from "@angular/core";
export class PdfAltTextDialogComponent {
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PdfAltTextDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: PdfAltTextDialogComponent, selector: "pdf-alt-text-dialog", ngImport: i0, template: "<dialog class=\"dialog altText\" id=\"altTextDialog\" aria-labelledby=\"dialogLabel\" aria-describedby=\"dialogDescription\">\n <div id=\"altTextContainer\" class=\"mainContainer\">\n <div id=\"overallDescription\">\n <span id=\"dialogLabel\" data-l10n-id=\"pdfjs-editor-alt-text-dialog-label\" class=\"title\">Choose an option</span>\n <span id=\"dialogDescription\" data-l10n-id=\"pdfjs-editor-alt-text-dialog-description\">\n Alt text (alternative text) helps when people can\u2019t see the image or when it doesn\u2019t load.\n </span>\n </div>\n <div id=\"addDescription\">\n <div class=\"radio\">\n <div class=\"radioButton\">\n <input type=\"radio\" id=\"descriptionButton\" name=\"altTextOption\" aria-describedby=\"descriptionAreaLabel\"\n checked />\n <label for=\"descriptionButton\" data-l10n-id=\"pdfjs-editor-alt-text-add-description-label\">Add a\n description</label>\n </div>\n <div class=\"radioLabel\">\n <span id=\"descriptionAreaLabel\" data-l10n-id=\"pdfjs-editor-alt-text-add-description-description\">\n Aim for 1-2 sentences that describe the subject, setting, or actions.\n </span>\n </div>\n </div>\n <div class=\"descriptionArea\">\n <textarea id=\"descriptionTextarea\" placeholder=\"For example, \u201CA young man sits down at a table to eat a meal\u201D\"\n aria-labelledby=\"descriptionAreaLabel\" data-l10n-id=\"pdfjs-editor-alt-text-textarea\"></textarea>\n </div>\n </div>\n <div id=\"markAsDecorative\">\n <div class=\"radio\">\n <div class=\"radioButton\">\n <input type=\"radio\" id=\"decorativeButton\" name=\"altTextOption\" aria-describedby=\"decorativeLabel\" />\n <label for=\"decorativeButton\" data-l10n-id=\"pdfjs-editor-alt-text-mark-decorative-label\">Mark as\n decorative</label>\n </div>\n <div class=\"radioLabel\">\n <span id=\"decorativeLabel\" data-l10n-id=\"pdfjs-editor-alt-text-mark-decorative-description\">\n This is used for ornamental images, like borders or watermarks.\n </span>\n </div>\n </div>\n </div>\n <div id=\"buttons\">\n <button id=\"altTextCancel\" class=\"secondaryButton\" type=\"button\" tabindex=\"0\"><span\n data-l10n-id=\"pdfjs-editor-alt-text-cancel-button\">Cancel</span></button>\n <button id=\"altTextSave\" class=\"primaryButton\" type=\"button\" tabindex=\"0\"><span\n data-l10n-id=\"pdfjs-editor-alt-text-save-button\">Save</span></button>\n </div>\n </div>\n</dialog>\n<dialog class=\"dialog newAltText\" id=\"newAltTextDialog\" aria-labelledby=\"newAltTextTitle\"\n aria-describedby=\"newAltTextDescription\" tabindex=\"0\">\n <div id=\"newAltTextContainer\" class=\"mainContainer\">\n <div class=\"title\">\n <span id=\"newAltTextTitle\" data-l10n-id=\"pdfjs-editor-new-alt-text-dialog-edit-label\" role=\"sectionhead\"\n tabindex=\"0\">Edit alt text (image description)</span>\n </div>\n <div id=\"mainContent\">\n <div id=\"descriptionAndSettings\">\n <div id=\"descriptionInstruction\">\n <div id=\"newAltTextDescriptionContainer\">\n <div class=\"altTextSpinner\" role=\"status\" aria-live=\"polite\"></div>\n <textarea id=\"newAltTextDescriptionTextarea\" placeholder=\"Write your description here\u2026\"\n aria-labelledby=\"descriptionAreaLabel\" data-l10n-id=\"pdfjs-editor-new-alt-text-textarea\"\n tabindex=\"0\"></textarea>\n </div>\n <span id=\"newAltTextDescription\" role=\"note\" data-l10n-id=\"pdfjs-editor-new-alt-text-description\">Short\n description for people who can\u2019t see the image or when the image doesn\u2019t load.</span>\n <div id=\"newAltTextDisclaimer\" role=\"note\">\n <div><span data-l10n-id=\"pdfjs-editor-new-alt-text-disclaimer1\">This alt text was created automatically and\n may be inaccurate.</span> <a href=\"https://support.mozilla.org/en-US/kb/pdf-alt-text\" target=\"_blank\"\n rel=\"noopener noreferrer\" id=\"newAltTextLearnMore\"\n data-l10n-id=\"pdfjs-editor-new-alt-text-disclaimer-learn-more-url\" tabindex=\"0\">Learn more</a></div>\n </div>\n </div>\n <div id=\"newAltTextCreateAutomatically\" class=\"toggler\">\n <button id=\"newAltTextCreateAutomaticallyButton\" class=\"toggle-button\" type=\"button\" aria-pressed=\"true\"\n tabindex=\"0\"></button>\n <label for=\"newAltTextCreateAutomaticallyButton\" class=\"togglerLabel\"\n data-l10n-id=\"pdfjs-editor-new-alt-text-create-automatically-button-label\">Create alt text\n automatically</label>\n </div>\n <div id=\"newAltTextDownloadModel\" class=\"hidden\">\n <span id=\"newAltTextDownloadModelDescription\"\n data-l10n-id=\"pdfjs-editor-new-alt-text-ai-model-downloading-progress\" aria-valuemin=\"0\"\n data-l10n-args='{ \"totalSize\": 0, \"downloadedSize\": 0 }'>Downloading alt text AI model (0 of 0 MB)</span>\n </div>\n </div>\n <div id=\"newAltTextImagePreview\"></div>\n </div>\n <div id=\"newAltTextError\" class=\"messageBar\">\n <div>\n <div>\n <span class=\"title\" data-l10n-id=\"pdfjs-editor-new-alt-text-error-title\">Couldn\u2019t create alt text\n automatically</span>\n <span class=\"description\" data-l10n-id=\"pdfjs-editor-new-alt-text-error-description\">Please write your own alt\n text or try again later.</span>\n </div>\n <button id=\"newAltTextCloseButton\" class=\"closeButton\" type=\"button\" tabindex=\"0\" title=\"Close\"><span\n data-l10n-id=\"pdfjs-editor-new-alt-text-error-close-button\">Close</span></button>\n </div>\n </div>\n <div id=\"newAltTextButtons\" class=\"dialogButtonsGroup\">\n <button id=\"newAltTextCancel\" type=\"button\" class=\"secondaryButton hidden\" tabindex=\"0\"><span\n data-l10n-id=\"pdfjs-editor-alt-text-cancel-button\">Cancel</span></button>\n <button id=\"newAltTextNotNow\" type=\"button\" class=\"secondaryButton\" tabindex=\"0\"><span\n data-l10n-id=\"pdfjs-editor-new-alt-text-not-now-button\">Not now</span></button>\n <button id=\"newAltTextSave\" type=\"button\" class=\"primaryButton\" tabindex=\"0\"><span\n data-l10n-id=\"pdfjs-editor-alt-text-save-button\">Save</span></button>\n </div>\n </div>\n</dialog>" });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PdfAltTextDialogComponent, decorators: [{
type: Component,
args: [{ selector: 'pdf-alt-text-dialog', template: "<dialog class=\"dialog altText\" id=\"altTextDialog\" aria-labelledby=\"dialogLabel\" aria-describedby=\"dialogDescription\">\n <div id=\"altTextContainer\" class=\"mainContainer\">\n <div id=\"overallDescription\">\n <span id=\"dialogLabel\" data-l10n-id=\"pdfjs-editor-alt-text-dialog-label\" class=\"title\">Choose an option</span>\n <span id=\"dialogDescription\" data-l10n-id=\"pdfjs-editor-alt-text-dialog-description\">\n Alt text (alternative text) helps when people can\u2019t see the image or when it doesn\u2019t load.\n </span>\n </div>\n <div id=\"addDescription\">\n <div class=\"radio\">\n <div class=\"radioButton\">\n <input type=\"radio\" id=\"descriptionButton\" name=\"altTextOption\" aria-describedby=\"descriptionAreaLabel\"\n checked />\n <label for=\"descriptionButton\" data-l10n-id=\"pdfjs-editor-alt-text-add-description-label\">Add a\n description</label>\n </div>\n <div class=\"radioLabel\">\n <span id=\"descriptionAreaLabel\" data-l10n-id=\"pdfjs-editor-alt-text-add-description-description\">\n Aim for 1-2 sentences that describe the subject, setting, or actions.\n </span>\n </div>\n </div>\n <div class=\"descriptionArea\">\n <textarea id=\"descriptionTextarea\" placeholder=\"For example, \u201CA young man sits down at a table to eat a meal\u201D\"\n aria-labelledby=\"descriptionAreaLabel\" data-l10n-id=\"pdfjs-editor-alt-text-textarea\"></textarea>\n </div>\n </div>\n <div id=\"markAsDecorative\">\n <div class=\"radio\">\n <div class=\"radioButton\">\n <input type=\"radio\" id=\"decorativeButton\" name=\"altTextOption\" aria-describedby=\"decorativeLabel\" />\n <label for=\"decorativeButton\" data-l10n-id=\"pdfjs-editor-alt-text-mark-decorative-label\">Mark as\n decorative</label>\n </div>\n <div class=\"radioLabel\">\n <span id=\"decorativeLabel\" data-l10n-id=\"pdfjs-editor-alt-text-mark-decorative-description\">\n This is used for ornamental images, like borders or watermarks.\n </span>\n </div>\n </div>\n </div>\n <div id=\"buttons\">\n <button id=\"altTextCancel\" class=\"secondaryButton\" type=\"button\" tabindex=\"0\"><span\n data-l10n-id=\"pdfjs-editor-alt-text-cancel-button\">Cancel</span></button>\n <button id=\"altTextSave\" class=\"primaryButton\" type=\"button\" tabindex=\"0\"><span\n data-l10n-id=\"pdfjs-editor-alt-text-save-button\">Save</span></button>\n </div>\n </div>\n</dialog>\n<dialog class=\"dialog newAltText\" id=\"newAltTextDialog\" aria-labelledby=\"newAltTextTitle\"\n aria-describedby=\"newAltTextDescription\" tabindex=\"0\">\n <div id=\"newAltTextContainer\" class=\"mainContainer\">\n <div class=\"title\">\n <span id=\"newAltTextTitle\" data-l10n-id=\"pdfjs-editor-new-alt-text-dialog-edit-label\" role=\"sectionhead\"\n tabindex=\"0\">Edit alt text (image description)</span>\n </div>\n <div id=\"mainContent\">\n <div id=\"descriptionAndSettings\">\n <div id=\"descriptionInstruction\">\n <div id=\"newAltTextDescriptionContainer\">\n <div class=\"altTextSpinner\" role=\"status\" aria-live=\"polite\"></div>\n <textarea id=\"newAltTextDescriptionTextarea\" placeholder=\"Write your description here\u2026\"\n aria-labelledby=\"descriptionAreaLabel\" data-l10n-id=\"pdfjs-editor-new-alt-text-textarea\"\n tabindex=\"0\"></textarea>\n </div>\n <span id=\"newAltTextDescription\" role=\"note\" data-l10n-id=\"pdfjs-editor-new-alt-text-description\">Short\n description for people who can\u2019t see the image or when the image doesn\u2019t load.</span>\n <div id=\"newAltTextDisclaimer\" role=\"note\">\n <div><span data-l10n-id=\"pdfjs-editor-new-alt-text-disclaimer1\">This alt text was created automatically and\n may be inaccurate.</span> <a href=\"https://support.mozilla.org/en-US/kb/pdf-alt-text\" target=\"_blank\"\n rel=\"noopener noreferrer\" id=\"newAltTextLearnMore\"\n data-l10n-id=\"pdfjs-editor-new-alt-text-disclaimer-learn-more-url\" tabindex=\"0\">Learn more</a></div>\n </div>\n </div>\n <div id=\"newAltTextCreateAutomatically\" class=\"toggler\">\n <button id=\"newAltTextCreateAutomaticallyButton\" class=\"toggle-button\" type=\"button\" aria-pressed=\"true\"\n tabindex=\"0\"></button>\n <label for=\"newAltTextCreateAutomaticallyButton\" class=\"togglerLabel\"\n data-l10n-id=\"pdfjs-editor-new-alt-text-create-automatically-button-label\">Create alt text\n automatically</label>\n </div>\n <div id=\"newAltTextDownloadModel\" class=\"hidden\">\n <span id=\"newAltTextDownloadModelDescription\"\n data-l10n-id=\"pdfjs-editor-new-alt-text-ai-model-downloading-progress\" aria-valuemin=\"0\"\n data-l10n-args='{ \"totalSize\": 0, \"downloadedSize\": 0 }'>Downloading alt text AI model (0 of 0 MB)</span>\n </div>\n </div>\n <div id=\"newAltTextImagePreview\"></div>\n </div>\n <div id=\"newAltTextError\" class=\"messageBar\">\n <div>\n <div>\n <span class=\"title\" data-l10n-id=\"pdfjs-editor-new-alt-text-error-title\">Couldn\u2019t create alt text\n automatically</span>\n <span class=\"description\" data-l10n-id=\"pdfjs-editor-new-alt-text-error-description\">Please write your own alt\n text or try again later.</span>\n </div>\n <button id=\"newAltTextCloseButton\" class=\"closeButton\" type=\"button\" tabindex=\"0\" title=\"Close\"><span\n data-l10n-id=\"pdfjs-editor-new-alt-text-error-close-button\">Close</span></button>\n </div>\n </div>\n <div id=\"newAltTextButtons\" class=\"dialogButtonsGroup\">\n <button id=\"newAltTextCancel\" type=\"button\" class=\"secondaryButton hidden\" tabindex=\"0\"><span\n data-l10n-id=\"pdfjs-editor-alt-text-cancel-button\">Cancel</span></button>\n <button id=\"newAltTextNotNow\" type=\"button\" class=\"secondaryButton\" tabindex=\"0\"><span\n data-l10n-id=\"pdfjs-editor-new-alt-text-not-now-button\">Not now</span></button>\n <button id=\"newAltTextSave\" type=\"button\" class=\"primaryButton\" tabindex=\"0\"><span\n data-l10n-id=\"pdfjs-editor-alt-text-save-button\">Save</span></button>\n </div>\n </div>\n</dialog>" }]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLWFsdC10ZXh0LWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZXh0ZW5kZWQtcGRmLXZpZXdlci9zcmMvbGliL3BkZi1kaWFsb2cvcGRmLWFsdC10ZXh0LWRpYWxvZy9wZGYtYWx0LXRleHQtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1leHRlbmRlZC1wZGYtdmlld2VyL3NyYy9saWIvcGRmLWRpYWxvZy9wZGYtYWx0LXRleHQtZGlhbG9nL3BkZi1hbHQtdGV4dC1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNMUMsTUFBTSxPQUFPLHlCQUF5Qjt3R0FBekIseUJBQXlCOzRGQUF6Qix5QkFBeUIsMkRDTnRDLGlnTkE4R1M7OzRGRHhHSSx5QkFBeUI7a0JBSnJDLFNBQVM7K0JBQ0UscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3BkZi1hbHQtdGV4dC1kaWFsb2cnLFxuICB0ZW1wbGF0ZVVybDogJy4vcGRmLWFsdC10ZXh0LWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFBkZkFsdFRleHREaWFsb2dDb21wb25lbnQge31cbiIsIjxkaWFsb2cgY2xhc3M9XCJkaWFsb2cgYWx0VGV4dFwiIGlkPVwiYWx0VGV4dERpYWxvZ1wiIGFyaWEtbGFiZWxsZWRieT1cImRpYWxvZ0xhYmVsXCIgYXJpYS1kZXNjcmliZWRieT1cImRpYWxvZ0Rlc2NyaXB0aW9uXCI+XG4gIDxkaXYgaWQ9XCJhbHRUZXh0Q29udGFpbmVyXCIgY2xhc3M9XCJtYWluQ29udGFpbmVyXCI+XG4gICAgPGRpdiBpZD1cIm92ZXJhbGxEZXNjcmlwdGlvblwiPlxuICAgICAgPHNwYW4gaWQ9XCJkaWFsb2dMYWJlbFwiIGRhdGEtbDEwbi1pZD1cInBkZmpzLWVkaXRvci1hbHQtdGV4dC1kaWFsb2ctbGFiZWxcIiBjbGFzcz1cInRpdGxlXCI+Q2hvb3NlIGFuIG9wdGlvbjwvc3Bhbj5cbiAgICAgIDxzcGFuIGlkPVwiZGlhbG9nRGVzY3JpcHRpb25cIiBkYXRhLWwxMG4taWQ9XCJwZGZqcy1lZGl0b3ItYWx0LXRleHQtZGlhbG9nLWRlc2NyaXB0aW9uXCI+XG4gICAgICAgIEFsdCB0ZXh0IChhbHRlcm5hdGl2ZSB0ZXh0KSBoZWxwcyB3aGVuIHBlb3BsZSBjYW7igJl0IHNlZSB0aGUgaW1hZ2Ugb3Igd2hlbiBpdCBkb2VzbuKAmXQgbG9hZC5cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGlkPVwiYWRkRGVzY3JpcHRpb25cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJyYWRpb1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicmFkaW9CdXR0b25cIj5cbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInJhZGlvXCIgaWQ9XCJkZXNjcmlwdGlvbkJ1dHRvblwiIG5hbWU9XCJhbHRUZXh0T3B0aW9uXCIgYXJpYS1kZXNjcmliZWRieT1cImRlc2NyaXB0aW9uQXJlYUxhYmVsXCJcbiAgICAgICAgICAgIGNoZWNrZWQgLz5cbiAgICAgICAgICA8bGFiZWwgZm9yPVwiZGVzY3JpcHRpb25CdXR0b25cIiBkYXRhLWwxMG4taWQ9XCJwZGZqcy1lZGl0b3ItYWx0LXRleHQtYWRkLWRlc2NyaXB0aW9uLWxhYmVsXCI+QWRkIGFcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uPC9sYWJlbD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyYWRpb0xhYmVsXCI+XG4gICAgICAgICAgPHNwYW4gaWQ9XCJkZXNjcmlwdGlvbkFyZWFMYWJlbFwiIGRhdGEtbDEwbi1pZD1cInBkZmpzLWVkaXRvci1hbHQtdGV4dC1hZGQtZGVzY3JpcHRpb24tZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgIEFpbSBmb3IgMS0yIHNlbnRlbmNlcyB0aGF0IGRlc2NyaWJlIHRoZSBzdWJqZWN0LCBzZXR0aW5nLCBvciBhY3Rpb25zLlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvbkFyZWFcIj5cbiAgICAgICAgPHRleHRhcmVhIGlkPVwiZGVzY3JpcHRpb25UZXh0YXJlYVwiIHBsYWNlaG9sZGVyPVwiRm9yIGV4YW1wbGUsIOKAnEEgeW91bmcgbWFuIHNpdHMgZG93biBhdCBhIHRhYmxlIHRvIGVhdCBhIG1lYWzigJ1cIlxuICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT1cImRlc2NyaXB0aW9uQXJlYUxhYmVsXCIgZGF0YS1sMTBuLWlkPVwicGRmanMtZWRpdG9yLWFsdC10ZXh0LXRleHRhcmVhXCI+PC90ZXh0YXJlYT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgaWQ9XCJtYXJrQXNEZWNvcmF0aXZlXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicmFkaW9cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJhZGlvQnV0dG9uXCI+XG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJyYWRpb1wiIGlkPVwiZGVjb3JhdGl2ZUJ1dHRvblwiIG5hbWU9XCJhbHRUZXh0T3B0aW9uXCIgYXJpYS1kZXNjcmliZWRieT1cImRlY29yYXRpdmVMYWJlbFwiIC8+XG4gICAgICAgICAgPGxhYmVsIGZvcj1cImRlY29yYXRpdmVCdXR0b25cIiBkYXRhLWwxMG4taWQ9XCJwZGZqcy1lZGl0b3ItYWx0LXRleHQtbWFyay1kZWNvcmF0aXZlLWxhYmVsXCI+TWFyayBhc1xuICAgICAgICAgICAgZGVjb3JhdGl2ZTwvbGFiZWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwicmFkaW9MYWJlbFwiPlxuICAgICAgICAgIDxzcGFuIGlkPVwiZGVjb3JhdGl2ZUxhYmVsXCIgZGF0YS1sMTBuLWlkPVwicGRmanMtZWRpdG9yLWFsdC10ZXh0LW1hcmstZGVjb3JhdGl2ZS1kZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgVGhpcyBpcyB1c2VkIGZvciBvcm5hbWVudGFsIGltYWdlcywgbGlrZSBib3JkZXJzIG9yIHdhdGVybWFya3MuXG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgaWQ9XCJidXR0b25zXCI+XG4gICAgICA8YnV0dG9uIGlkPVwiYWx0VGV4dENhbmNlbFwiIGNsYXNzPVwic2Vjb25kYXJ5QnV0dG9uXCIgdHlwZT1cImJ1dHRvblwiIHRhYmluZGV4PVwiMFwiPjxzcGFuXG4gICAgICAgICAgZGF0YS1sMTBuLWlkPVwicGRmanMtZWRpdG9yLWFsdC10ZXh0LWNhbmNlbC1idXR0b25cIj5DYW5jZWw8L3NwYW4+PC9idXR0b24+XG4gICAgICA8YnV0dG9uIGlkPVwiYWx0VGV4dFNhdmVcIiBjbGFzcz1cInByaW1hcnlCdXR0b25cIiB0eXBlPVwiYnV0dG9uXCIgdGFiaW5kZXg9XCIwXCI+PHNwYW5cbiAgICAgICAgICBkYXRhLWwxMG4taWQ9XCJwZGZqcy1lZGl0b3ItYWx0LXRleHQtc2F2ZS1idXR0b25cIj5TYXZlPC9zcGFuPjwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGlhbG9nPlxuPGRpYWxvZyBjbGFzcz1cImRpYWxvZyBuZXdBbHRUZXh0XCIgaWQ9XCJuZXdBbHRUZXh0RGlhbG9nXCIgYXJpYS1sYWJlbGxlZGJ5PVwibmV3QWx0VGV4dFRpdGxlXCJcbiAgYXJpYS1kZXNjcmliZWRieT1cIm5ld0FsdFRleHREZXNjcmlwdGlvblwiIHRhYmluZGV4PVwiMFwiPlxuICA8ZGl2IGlkPVwibmV3QWx0VGV4dENvbnRhaW5lclwiIGNsYXNzPVwibWFpbkNvbnRhaW5lclwiPlxuICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPlxuICAgICAgPHNwYW4gaWQ9XCJuZXdBbHRUZXh0VGl0bGVcIiBkYXRhLWwxMG4taWQ9XCJwZGZqcy1lZGl0b3ItbmV3LWFsdC10ZXh0LWRpYWxvZy1lZGl0LWxhYmVsXCIgcm9sZT1cInNlY3Rpb25oZWFkXCJcbiAgICAgICAgdGFiaW5kZXg9XCIwXCI+RWRpdCBhbHQgdGV4dCAoaW1hZ2UgZGVzY3JpcHRpb24pPC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgaWQ9XCJtYWluQ29udGVudFwiPlxuICAgICAgPGRpdiBpZD1cImRlc2NyaXB0aW9uQW5kU2V0dGluZ3NcIj5cbiAgICAgICAgPGRpdiBpZD1cImRlc2NyaXB0aW9uSW5zdHJ1Y3Rpb25cIj5cbiAgICAgICAgICA8ZGl2IGlkPVwibmV3QWx0VGV4dERlc2NyaXB0aW9uQ29udGFpbmVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWx0VGV4dFNwaW5uZXJcIiByb2xlPVwic3RhdHVzXCIgYXJpYS1saXZlPVwicG9saXRlXCI+PC9kaXY+XG4gICAgICAgICAgICA8dGV4dGFyZWEgaWQ9XCJuZXdBbHRUZXh0RGVzY3JpcHRpb25UZXh0YXJlYVwiIHBsYWNlaG9sZGVyPVwiV3JpdGUgeW91ciBkZXNjcmlwdGlvbiBoZXJl4oCmXCJcbiAgICAgICAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PVwiZGVzY3JpcHRpb25BcmVhTGFiZWxcIiBkYXRhLWwxMG4taWQ9XCJwZGZqcy1lZGl0b3ItbmV3LWFsdC10ZXh0LXRleHRhcmVhXCJcbiAgICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCI+PC90ZXh0YXJlYT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8c3BhbiBpZD1cIm5ld0FsdFRleHREZXNjcmlwdGlvblwiIHJvbGU9XCJub3RlXCIgZGF0YS1sMTBuLWlkPVwicGRmanMtZWRpdG9yLW5ldy1hbHQtdGV4dC1kZXNjcmlwdGlvblwiPlNob3J0XG4gICAgICAgICAgICBkZXNjcmlwdGlvbiBmb3IgcGVvcGxlIHdobyBjYW7igJl0IHNlZSB0aGUgaW1hZ2Ugb3Igd2hlbiB0aGUgaW1hZ2UgZG9lc27igJl0IGxvYWQuPC9zcGFuPlxuICAgICAgICAgIDxkaXYgaWQ9XCJuZXdBbHRUZXh0RGlzY2xhaW1lclwiIHJvbGU9XCJub3RlXCI+XG4gICAgICAgICAgICA8ZGl2PjxzcGFuIGRhdGEtbDEwbi1pZD1cInBkZmpzLWVkaXRvci1uZXctYWx0LXRleHQtZGlzY2xhaW1lcjFcIj5UaGlzIGFsdCB0ZXh0IHdhcyBjcmVhdGVkIGF1dG9tYXRpY2FsbHkgYW5kXG4gICAgICAgICAgICAgICAgbWF5IGJlIGluYWNjdXJhdGUuPC9zcGFuPiA8YSBocmVmPVwiaHR0cHM6Ly9zdXBwb3J0Lm1vemlsbGEub3JnL2VuLVVTL2tiL3BkZi1hbHQtdGV4dFwiIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiIGlkPVwibmV3QWx0VGV4dExlYXJuTW9yZVwiXG4gICAgICAgICAgICAgICAgZGF0YS1sMTBuLWlkPVwicGRmanMtZWRpdG9yLW5ldy1hbHQtdGV4dC1kaXNjbGFpbWVyLWxlYXJuLW1vcmUtdXJsXCIgdGFiaW5kZXg9XCIwXCI+TGVhcm4gbW9yZTwvYT48L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgaWQ9XCJuZXdBbHRUZXh0Q3JlYXRlQXV0b21hdGljYWxseVwiIGNsYXNzPVwidG9nZ2xlclwiPlxuICAgICAgICAgIDxidXR0b24gaWQ9XCJuZXdBbHRUZXh0Q3JlYXRlQXV0b21hdGljYWxseUJ1dHRvblwiIGNsYXNzPVwidG9nZ2xlLWJ1dHRvblwiIHR5cGU9XCJidXR0b25cIiBhcmlhLXByZXNzZWQ9XCJ0cnVlXCJcbiAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiPjwvYnV0dG9uPlxuICAgICAgICAgIDxsYWJlbCBmb3I9XCJuZXdBbHRUZXh0Q3JlYXRlQXV0b21hdGljYWxseUJ1dHRvblwiIGNsYXNzPVwidG9nZ2xlckxhYmVsXCJcbiAgICAgICAgICAgIGRhdGEtbDEwbi1pZD1cInBkZmpzLWVkaXRvci1uZXctYWx0LXRleHQtY3JlYXRlLWF1dG9tYXRpY2FsbHktYnV0dG9uLWxhYmVsXCI+Q3JlYXRlIGFsdCB0ZXh0XG4gICAgICAgICAgICBhdXRvbWF0aWNhbGx5PC9sYWJlbD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgaWQ9XCJuZXdBbHRUZXh0RG93bmxvYWRNb2RlbFwiIGNsYXNzPVwiaGlkZGVuXCI+XG4gICAgICAgICAgPHNwYW4gaWQ9XCJuZXdBbHRUZXh0RG93bmxvYWRNb2RlbERlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgIGRhdGEtbDEwbi1pZD1cInBkZmpzLWVkaXRvci1uZXctYWx0LXRleHQtYWktbW9kZWwtZG93bmxvYWRpbmctcHJvZ3Jlc3NcIiBhcmlhLXZhbHVlbWluPVwiMFwiXG4gICAgICAgICAgICBkYXRhLWwxMG4tYXJncz0neyBcInRvdGFsU2l6ZVwiOiAwLCBcImRvd25sb2FkZWRTaXplXCI6IDAgfSc+RG93bmxvYWRpbmcgYWx0IHRleHQgQUkgbW9kZWwgKDAgb2YgMCBNQik8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGlkPVwibmV3QWx0VGV4dEltYWdlUHJldmlld1wiPjwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgaWQ9XCJuZXdBbHRUZXh0RXJyb3JcIiBjbGFzcz1cIm1lc3NhZ2VCYXJcIj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRsZVwiIGRhdGEtbDEwbi1pZD1cInBkZmpzLWVkaXRvci1uZXctYWx0LXRleHQtZXJyb3ItdGl0bGVcIj5Db3VsZG7igJl0IGNyZWF0ZSBhbHQgdGV4dFxuICAgICAgICAgICAgYXV0b21hdGljYWxseTwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImRlc2NyaXB0aW9uXCIgZGF0YS1sMTBuLWlkPVwicGRmanMtZWRpdG9yLW5ldy1hbHQtdGV4dC1lcnJvci1kZXNjcmlwdGlvblwiPlBsZWFzZSB3cml0ZSB5b3VyIG93biBhbHRcbiAgICAgICAgICAgIHRleHQgb3IgdHJ5IGFnYWluIGxhdGVyLjwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxidXR0b24gaWQ9XCJuZXdBbHRUZXh0Q2xvc2VCdXR0b25cIiBjbGFzcz1cImNsb3NlQnV0dG9uXCIgdHlwZT1cImJ1dHRvblwiIHRhYmluZGV4PVwiMFwiIHRpdGxlPVwiQ2xvc2VcIj48c3BhblxuICAgICAgICAgICAgZGF0YS1sMTBuLWlkPVwicGRmanMtZWRpdG9yLW5ldy1hbHQtdGV4dC1lcnJvci1jbG9zZS1idXR0b25cIj5DbG9zZTwvc3Bhbj48L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgaWQ9XCJuZXdBbHRUZXh0QnV0dG9uc1wiIGNsYXNzPVwiZGlhbG9nQnV0dG9uc0dyb3VwXCI+XG4gICAgICA8YnV0dG9uIGlkPVwibmV3QWx0VGV4dENhbmNlbFwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cInNlY29uZGFyeUJ1dHRvbiBoaWRkZW5cIiB0YWJpbmRleD1cIjBcIj48c3BhblxuICAgICAgICAgIGRhdGEtbDEwbi1pZD1cInBkZmpzLWVkaXRvci1hbHQtdGV4dC1jYW5jZWwtYnV0dG9uXCI+Q2FuY2VsPC9zcGFuPjwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBpZD1cIm5ld0FsdFRleHROb3ROb3dcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJzZWNvbmRhcnlCdXR0b25cIiB0YWJpbmRleD1cIjBcIj48c3BhblxuICAgICAgICAgIGRhdGEtbDEwbi1pZD1cInBkZmpzLWVkaXRvci1uZXctYWx0LXRleHQtbm90LW5vdy1idXR0b25cIj5Ob3Qgbm93PC9zcGFuPjwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBpZD1cIm5ld0FsdFRleHRTYXZlXCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwicHJpbWFyeUJ1dHRvblwiIHRhYmluZGV4PVwiMFwiPjxzcGFuXG4gICAgICAgICAgZGF0YS1sMTBuLWlkPVwicGRmanMtZWRpdG9yLWFsdC10ZXh0LXNhdmUtYnV0dG9uXCI+U2F2ZTwvc3Bhbj48L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2RpYWxvZz4iXX0=