@net7/components 3.8.0 → 3.8.2

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.
@@ -7,6 +7,11 @@ import * as i1 from "@angular/common";
7
7
  export class TextViewerComponent {
8
8
  constructor() {
9
9
  this.isDisplayed = false;
10
+ document.addEventListener('pb-page-ready', () => {
11
+ document.addEventListener('pb-end-update', (ev) => {
12
+ this.scrollElementsIntoView(ev.detail, 'chapter', '#view1');
13
+ });
14
+ });
10
15
  }
11
16
  ngOnInit() {
12
17
  if (!TextViewerComponent._loaded) {
@@ -17,13 +22,33 @@ export class TextViewerComponent {
17
22
  document.head.appendChild(s);
18
23
  }
19
24
  }
20
- scrollEntityIntoView(target) {
25
+ scrollElementsIntoView(target, type, view) {
21
26
  setTimeout(() => {
22
- const key = target.__key;
23
- const element = document
24
- .querySelector('#main-layout > div > main > mr-resource-layout > div > div.mr-resource__top > section.mr-resource__section.mr-resource__text-viewer > div > div > n7-text-viewer > div > pb-page > app-drawer-layout > app-header-layout > main > pb-view:nth-child(4)')
25
- .shadowRoot.querySelector(`#${key}`);
26
- element.scrollIntoView({ behavior: 'smooth' });
27
+ let element;
28
+ if (type === 'chapter') {
29
+ if (document
30
+ .querySelector('.n7-text-viewer #view0')
31
+ .shadowRoot.querySelector('pb-highlight')) {
32
+ const highlight = document
33
+ .querySelector('.n7-text-viewer #view0')
34
+ .shadowRoot.querySelectorAll('pb-highlight');
35
+ const highlightId = highlight[highlight.length - 1].id; // s.x
36
+ const fragmentNumber = highlightId.replace('.', '\\.');
37
+ element = document
38
+ .querySelector(view)
39
+ .shadowRoot.querySelector(`#${fragmentNumber}`);
40
+ }
41
+ }
42
+ else if (type === 'entity') {
43
+ const key = target.__key;
44
+ element = document
45
+ .querySelector(`.n7-text-viewer ${view}`)
46
+ .shadowRoot.querySelector(`#${key}`);
47
+ }
48
+ const container = document.querySelector(`.n7-text-viewer ${view}`);
49
+ if (element) {
50
+ container.scrollTop = element.offsetTop;
51
+ }
27
52
  }, 300);
28
53
  }
29
54
  displayIndex() {
@@ -37,9 +62,9 @@ export class TextViewerComponent {
37
62
  TextViewerComponent._loaded = true;
38
63
  }
39
64
  onClick(payload) {
40
- if (!this.emit)
41
- return;
42
- this.emit('click', payload);
65
+ // FIXME: mettere logica onClick sul boilerplate / progetto
66
+ // if (!this.emit) return;
67
+ // this.emit('click', payload);
43
68
  if (this.isDisplayed === false) {
44
69
  let target;
45
70
  let i = 0;
@@ -55,7 +80,7 @@ export class TextViewerComponent {
55
80
  && (target.className.includes('person')
56
81
  || target.className.includes('place'))) {
57
82
  this.isDisplayed = true;
58
- this.scrollEntityIntoView(target);
83
+ this.scrollElementsIntoView(target, 'entity', '#text-viewer-index');
59
84
  }
60
85
  }
61
86
  else
@@ -64,13 +89,13 @@ export class TextViewerComponent {
64
89
  }
65
90
  TextViewerComponent._loaded = false;
66
91
  TextViewerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: TextViewerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
67
- TextViewerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: TextViewerComponent, selector: "n7-text-viewer", inputs: { data: "data", emit: "emit" }, ngImport: i0, template: "<div\n class=\"n7-text-viewer {{data.classes || ''}}\"\n *ngIf=\"data && data.endpoint\"\n>\n <pb-page [attr.endpoint]=\"data.endpoint\" api-version=\"1.0.0\">\n <pb-document\n *ngFor=\"let doc of data.docs\"\n [path]=\"doc.xml\"\n [odd]=\"doc.odd\"\n [id]=\"doc.id\"\n >\n </pb-document>\n\n <app-drawer-layout force-narrow=\"force-narrow\" narrow=\"\">\n <app-header-layout>\n <app-header\n fixed=\"fixed\"\n data-template=\"browse:fix-links\"\n style=\"\n transition-duration: 0ms;\n transform: translate3d(0px, 0px, 0px);\n left: 0px;\n right: 0.399994px;\n \"\n >\n <app-toolbar\n class=\"toolbar\"\n sticky=\"sticky\"\n style=\"transform: translate3d(0px, 0px, 0px)\"\n >\n <paper-icon-button\n *ngIf=\"data.docs.length === 1\"\n id=\"tocToggle\"\n class=\"toc-toggle\"\n icon=\"icons:view-list\"\n role=\"button\"\n tabindex=\"0\"\n aria-disabled=\"false\"\n ></paper-icon-button>\n\n <pb-toggle-feature\n *ngIf=\"data.docs.length === 1\"\n name=\"highlight1\"\n selector=\"tei-app,pb-popover,pb-highlight\"\n default=\"off\"\n action=\"disable\"\n emit=\"transcription\"\n subscribe=\"transcription\"\n >\n <ng-container *ngIf=\"data.labels && data.labels.view\">\n {{data.labels.view}}\n </ng-container>\n <ng-container *ngIf=\"!data.labels || !data.labels.view\">\n <pb-i18n key=\"document.plain\">Plain Reading View</pb-i18n>\n </ng-container>\n </pb-toggle-feature>\n\n <ng-container\n *ngIf=\"data.docs?.length == 1 || data.docs[0].translation\"\n >\n <pb-zoom\n emit=\"transcription\"\n direction=\"in\"\n icon=\"icons:zoom-in\"\n ></pb-zoom>\n <pb-zoom\n emit=\"transcription\"\n direction=\"out\"\n icon=\"icons:zoom-out\"\n ></pb-zoom>\n </ng-container>\n\n <ng-container\n *ngIf=\"!data.docs[0].translation && data.docs?.length == 1\"\n >\n <pb-navigation\n emit=\"transcription\"\n keyboard=\"left\"\n subscribe=\"transcription\"\n direction=\"backward\"\n unit=\"page\"\n >\n <paper-icon-button\n icon=\"icons:chevron-left\"\n role=\"button\"\n tabindex=\"0\"\n aria-disabled=\"false\"\n ></paper-icon-button>\n </pb-navigation>\n <pb-navigation\n emit=\"transcription\"\n keyboard=\"right\"\n subscribe=\"transcription\"\n direction=\"forward\"\n unit=\"page\"\n >\n <paper-icon-button\n icon=\"icons:chevron-right\"\n role=\"button\"\n tabindex=\"0\"\n aria-disabled=\"false\"\n ></paper-icon-button>\n </pb-navigation>\n </ng-container>\n\n <ng-container *ngIf=\"data.docs?.length > 1\">\n <div class=\"n7-text-viewer__toolbar-container-flex\">\n <paper-icon-button\n *ngIf=\"data.docs?.length > 1\"\n id=\"tocToggle\"\n class=\"toc-toggle\"\n icon=\"icons:view-list\"\n role=\"button\"\n tabindex=\"0\"\n aria-disabled=\"false\"\n ></paper-icon-button>\n </div>\n </ng-container>\n\n <ng-container\n *ngIf=\"!data.docs[0].translation && data.docs?.length > 1\"\n >\n <div class=\"n7-text-viewer__toolbar-container-flex\">\n <pb-navigation\n emit=\"transcription\"\n keyboard=\"left\"\n subscribe=\"transcription\"\n direction=\"backward\"\n unit=\"page\"\n >\n <paper-icon-button\n icon=\"icons:chevron-left\"\n role=\"button\"\n tabindex=\"0\"\n aria-disabled=\"false\"\n ></paper-icon-button>\n </pb-navigation>\n </div>\n\n <div class=\"n7-text-viewer__toolbar-container-flex\">\n <pb-navigation\n emit=\"transcription\"\n keyboard=\"right\"\n subscribe=\"transcription\"\n direction=\"forward\"\n unit=\"page\"\n >\n <paper-icon-button\n icon=\"icons:chevron-right\"\n role=\"button\"\n tabindex=\"0\"\n aria-disabled=\"false\"\n ></paper-icon-button>\n </pb-navigation>\n </div>\n </ng-container>\n\n <ng-container\n *ngIf=\"data.docs?.length > 1 && !data.docs[0].translation\"\n >\n <div class=\"n7-text-viewer__toolbar-container-flex\">\n <pb-zoom\n emit=\"transcription\"\n direction=\"in\"\n icon=\"icons:zoom-in\"\n ></pb-zoom>\n\n <pb-zoom\n emit=\"transcription\"\n direction=\"out\"\n icon=\"icons:zoom-out\"\n ></pb-zoom>\n </div>\n </ng-container>\n\n <ng-container\n *ngIf=\"data.docs.length > 1 && data.labels && data.labels.select.label\"\n >\n <div class=\"n7-text-viewer__toolbar-container-flex\">\n <pb-select-feature\n id=\"select-view2\"\n name=\"view2\"\n [label]=\"data.labels && data.labels.select.label ? data.labels.select.label : 'Mostra entit\u00E0'\"\n [items]='[\n {\"name\": data.labels.select.type.all, \n \"selectors\": [{\"selector\": \".person\", \"state\": false}, {\"selector\": \".place\", \"state\": false}]},\n {\"name\": data.labels.select.type.person, \n \"selectors\": \n [{\"selector\": \".person\", \"state\": false}, {\"selector\": \".place\", \"state\": true}]},\n {\"name\": data.labels.select.type.place, \"selectors\": \n [{\"selector\": \".place\", \"state\": false}, {\"selector\": \".person\", \"state\": true}]}\n ]'\n subscribe=\"addChannel\"\n emit=\"addChannel\"\n ></pb-select-feature>\n </div>\n </ng-container>\n\n <ng-container\n *ngIf=\"data.docs.length > 1 && (!data.labels || !data.labels.select.label)\"\n >\n <div class=\"n7-text-viewer__toolbar-container-flex\">\n <pb-select-feature\n id=\"select-view2\"\n name=\"view2\"\n label=\"Mostra entit\u00E0\"\n [items]='[\n {\"name\": \"Tutto\", \n \"selectors\": [{\"selector\": \".person\", \"state\": false}, {\"selector\": \".place\", \"state\": false}]},\n {\"name\": \"Personaggi\", \n \"selectors\": \n [{\"selector\": \".person\", \"state\": false}, {\"selector\": \".place\", \"state\": true}]},\n {\"name\": \"Luoghi\", \"selectors\": \n [{\"selector\": \".place\", \"state\": false}, {\"selector\": \".person\", \"state\": true}]}\n ]'\n subscribe=\"addChannel\"\n emit=\"addChannel\"\n ></pb-select-feature>\n </div>\n </ng-container>\n\n <ng-container\n *ngIf=\"data.docs?.length > 1 && data.docs[1].channel && data.facsimile\"\n >\n <ng-container *ngIf=\"data.labels && data.labels.index.hide\">\n <div class=\"n7-text-viewer__toolbar-container-flex\">\n <paper-button raised=\"\" (click)=\"displayIndex()\"\n >{{ !isDisplayed ? data.labels.index.hide :\n data.labels.index.show }}</paper-button\n >\n </div>\n </ng-container>\n <ng-container *ngIf=\"!data.labels || !data.labels.index.hide\">\n <div class=\"n7-text-viewer__toolbar-container-flex\">\n <paper-button raised=\"\" (click)=\"displayIndex()\"\n >{{ !isDisplayed ? 'Indici' : 'Riassunto'\n }}</paper-button\n >\n </div>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"data.docs && data.download\">\n <div class=\"n7-text-viewer__toolbar-container-flex\">\n <pb-download\n [type]=\"data.download && data.download.format ? data.download.format: ''\"\n [src]=\"data.docs[0].id\"\n [url]=\"data.download && data.download.file ? data.download.file : ''\"\n dialog=\"downloadDialog\"\n [title]=\"data.download && data.download.format && data.download.label ? data.download.label + ' ' + data.download.format: ''\"\n >\n <paper-button raised=\"\"\n >{{data.download && data.download.format &&\n data.download.label ? data.download.label + ' ' +\n data.download.format: ''}}</paper-button\n >\n </pb-download>\n </div>\n </ng-container>\n\n <pb-progress\n subscribe=\"transcription\"\n indeterminate=\"\"\n bottom-item=\"bottom-item\"\n style=\"visibility: hidden\"\n ></pb-progress>\n </app-toolbar>\n </app-header>\n\n <pb-drawer\n toggle=\"tocToggle\"\n class=\"tocDrawer\"\n emit=\"toc\"\n subscribe=\"transcription\"\n >\n <div class=\"drawer-content\">\n <h3>\n <ng-container *ngIf=\"data.labels && data.labels.toc\">\n {{data.labels.toc}}\n </ng-container>\n <ng-container *ngIf=\"!data.labels || !data.labels.toc\">\n <pb-i18n key=\"document.contents\">Contents</pb-i18n>\n </ng-container>\n </h3>\n <pb-load\n *ngIf=\"data.docs\"\n id=\"toc\"\n url=\"api/document/{doc}/contents?target=transcription&amp;icons=true\"\n [src]=\"data.docs[0].id\"\n subscribe=\"toc\"\n emit=\"toc\"\n expand=\"expand\"\n auto=\"auto\"\n >\n <ng-container *ngIf=\"data.labels && data.labels.loading\">\n {{data.labels.loading}}\n </ng-container>\n <ng-container *ngIf=\"!data.labels || !data.labels.loading\">\n <pb-i18n key=\"dialogs.loading\">Loading</pb-i18n>\n </ng-container>\n </pb-load>\n </div>\n </pb-drawer>\n <main class=\"content-body\">\n <pb-facsimile\n *ngIf=\"data.facsimile\"\n id=\"facsimile\"\n [attr.base-uri]=\"data.facsimile.uri\"\n subscribe=\"transcription\"\n default-zoom-level=\"0\"\n show-navigation-control=\"show-navigation-control\"\n show-navigator=\"show-navigator\"\n >\n </pb-facsimile>\n <ng-container *ngFor=\"let doc of data.docs; index as $i;\">\n <!-- NO CHANNEL -->\n <pb-view\n *ngIf=\"!doc.channel\"\n id=\"view{{ $i }}\"\n [src]=\"doc.id\"\n subscribe=\"transcription\"\n emit=\"transcription\"\n [attr.wait-for]=\"data.facsimile ? '#facsimile' : null\"\n column-separator=\".tei-cb\"\n append-footnotes=\"append-footnotes\"\n view=\"{{ doc.view }}\"\n ></pb-view>\n <!-- WITH CHANNEL / MURUCA DEMO -->\n <pb-view\n *ngIf=\"doc.channel && doc.translation\"\n id=\"view{{ $i }}\"\n [src]=\"doc.id\"\n xpath=\"//text[@type='source']\"\n emit=\"{{ doc.channel }}\"\n subscribe=\"{{ doc.channel }}\"\n view=\"{{ doc.view }}\"\n >\n </pb-view>\n <pb-view\n *ngIf=\"doc.channel && doc.translation\"\n id=\"view{{ $i }}\"\n [src]=\"doc.id\"\n xpath=\"{{ doc.xpath }}\"\n emit=\"{{ doc.channel }}\"\n subscribe=\"{{ doc.channel }}\"\n view=\"{{ doc.view }}\"\n >\n <pb-param name=\"mode\" value=\"commentary\"></pb-param>\n </pb-view>\n <!-- WITH CHANNEL / addChannel -->\n <pb-view\n [hidden]=\"isDisplayed\"\n (click)=\"onClick($event)\"\n *ngIf=\"doc.channel && !doc.translation\"\n id=\"view{{ $i }}\"\n [src]=\"doc.id\"\n [odd]=\"doc.odd\"\n emit=\"addChannel\"\n subscribe=\"addChannel\"\n view=\"{{ doc.view }}\"\n >\n <pb-param name=\"mode\" value=\"commentary\"></pb-param>\n </pb-view>\n\n <ng-container *ngIf=\"doc.channel && !doc.translation\">\n <!-- -->\n <pb-view\n [hidden]=\"!isDisplayed\"\n *ngIf=\"doc.channel && !doc.translation\"\n [src]=\"doc.id\"\n [odd]=\"doc.odd\"\n subscribe=\"index\"\n emit=\"letter\"\n >\n <pb-param name=\"mode\" value=\"facets\"></pb-param>\n </pb-view>\n <!-- -->\n </ng-container>\n </ng-container>\n </main>\n </app-header-layout>\n </app-drawer-layout>\n </pb-page>\n</div>\n", directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
92
+ TextViewerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: TextViewerComponent, selector: "n7-text-viewer", inputs: { data: "data", emit: "emit" }, ngImport: i0, template: "<div\n class=\"n7-text-viewer {{data.classes || ''}}\"\n *ngIf=\"data && data.endpoint\"\n>\n\n <pb-page [attr.endpoint]=\"data.endpoint\" api-version=\"1.0.0\">\n <pb-document\n *ngFor=\"let doc of data.docs\"\n [path]=\"doc.xml\"\n [odd]=\"doc.odd\"\n [id]=\"doc.id\"\n >\n </pb-document>\n\n <app-drawer-layout force-narrow=\"force-narrow\" narrow=\"\">\n <app-header-layout>\n <app-header\n fixed=\"fixed\"\n data-template=\"browse:fix-links\"\n style=\"\n transition-duration: 0ms;\n transform: translate3d(0px, 0px, 0px);\n left: 0px;\n right: 0.399994px;\n \"\n >\n <app-toolbar\n class=\"toolbar\"\n sticky=\"sticky\"\n style=\"transform: translate3d(0px, 0px, 0px)\"\n >\n <paper-icon-button\n *ngIf=\"data.docs.length === 1\"\n id=\"tocToggle\"\n class=\"toc-toggle\"\n icon=\"icons:view-list\"\n role=\"button\"\n tabindex=\"0\"\n aria-disabled=\"false\"\n ></paper-icon-button>\n\n <pb-toggle-feature\n *ngIf=\"data.docs.length === 1\"\n name=\"highlight1\"\n selector=\"tei-app,pb-popover,pb-highlight\"\n default=\"off\"\n action=\"disable\"\n emit=\"transcription\"\n subscribe=\"transcription\"\n >\n <ng-container *ngIf=\"data.labels && data.labels.view\">\n {{data.labels.view}}\n </ng-container>\n <ng-container *ngIf=\"!data.labels || !data.labels.view\">\n <pb-i18n key=\"document.plain\">Plain Reading View</pb-i18n>\n </ng-container>\n </pb-toggle-feature>\n\n <ng-container\n *ngIf=\"data.docs?.length == 1 || data.docs[0].translation\"\n >\n <pb-zoom\n emit=\"transcription\"\n direction=\"in\"\n icon=\"icons:zoom-in\"\n ></pb-zoom>\n <pb-zoom\n emit=\"transcription\"\n direction=\"out\"\n icon=\"icons:zoom-out\"\n ></pb-zoom>\n </ng-container>\n\n <ng-container\n *ngIf=\"!data.docs[0].translation && data.docs?.length == 1\"\n >\n <pb-navigation\n emit=\"transcription\"\n keyboard=\"left\"\n subscribe=\"transcription\"\n direction=\"backward\"\n unit=\"page\"\n >\n <paper-icon-button\n icon=\"icons:chevron-left\"\n role=\"button\"\n tabindex=\"0\"\n aria-disabled=\"false\"\n ></paper-icon-button>\n </pb-navigation>\n <pb-navigation\n emit=\"transcription\"\n keyboard=\"right\"\n subscribe=\"transcription\"\n direction=\"forward\"\n unit=\"page\"\n >\n <paper-icon-button\n icon=\"icons:chevron-right\"\n role=\"button\"\n tabindex=\"0\"\n aria-disabled=\"false\"\n ></paper-icon-button>\n </pb-navigation>\n </ng-container>\n\n <ng-container *ngIf=\"data.docs?.length > 1\">\n <div class=\"n7-text-viewer__toolbar-container-flex\">\n <paper-icon-button\n *ngIf=\"data.docs?.length > 1\"\n id=\"tocToggle\"\n class=\"toc-toggle\"\n icon=\"icons:view-list\"\n role=\"button\"\n tabindex=\"0\"\n aria-disabled=\"false\"\n ></paper-icon-button>\n </div>\n </ng-container>\n\n <ng-container\n *ngIf=\"!data.docs[0].translation && data.docs?.length > 1\"\n >\n <div class=\"n7-text-viewer__toolbar-container-flex\">\n <pb-navigation\n emit=\"transcription\"\n keyboard=\"left\"\n subscribe=\"transcription\"\n direction=\"backward\"\n unit=\"page\"\n >\n <paper-icon-button\n icon=\"icons:chevron-left\"\n role=\"button\"\n tabindex=\"0\"\n aria-disabled=\"false\"\n ></paper-icon-button>\n </pb-navigation>\n </div>\n\n <div class=\"n7-text-viewer__toolbar-container-flex\">\n <pb-navigation\n emit=\"transcription\"\n keyboard=\"right\"\n subscribe=\"transcription\"\n direction=\"forward\"\n unit=\"page\"\n >\n <paper-icon-button\n icon=\"icons:chevron-right\"\n role=\"button\"\n tabindex=\"0\"\n aria-disabled=\"false\"\n ></paper-icon-button>\n </pb-navigation>\n </div>\n </ng-container>\n\n <ng-container\n *ngIf=\"data.docs?.length > 1 && !data.docs[0].translation\"\n >\n <div class=\"n7-text-viewer__toolbar-container-flex\">\n <pb-zoom\n emit=\"transcription\"\n direction=\"in\"\n icon=\"icons:zoom-in\"\n ></pb-zoom>\n\n <pb-zoom\n emit=\"transcription\"\n direction=\"out\"\n icon=\"icons:zoom-out\"\n ></pb-zoom>\n </div>\n </ng-container>\n\n <ng-container\n *ngIf=\"data.docs.length > 1 && data.labels && data.labels.select.label\"\n >\n <div class=\"n7-text-viewer__toolbar-container-flex\">\n <pb-select-feature\n id=\"select-view2\"\n name=\"view2\"\n [label]=\"data.labels && data.labels.select.label ? data.labels.select.label : 'Mostra entit\u00E0'\"\n [items]='[\n {\"name\": data.labels.select.type.all, \n \"selectors\": [{\"selector\": \".person\", \"state\": false}, {\"selector\": \".place\", \"state\": false}]},\n {\"name\": data.labels.select.type.person, \n \"selectors\": \n [{\"selector\": \".person\", \"state\": false}, {\"selector\": \".place\", \"state\": true}]},\n {\"name\": data.labels.select.type.place, \"selectors\": \n [{\"selector\": \".place\", \"state\": false}, {\"selector\": \".person\", \"state\": true}]}\n ]'\n subscribe=\"addChannel\"\n emit=\"addChannel\"\n ></pb-select-feature>\n </div>\n </ng-container>\n\n <ng-container\n *ngIf=\"data.docs.length > 1 && (!data.labels || !data.labels.select.label)\"\n >\n <div class=\"n7-text-viewer__toolbar-container-flex\">\n <pb-select-feature\n id=\"select-view2\"\n name=\"view2\"\n label=\"Mostra entit\u00E0\"\n [items]='[\n {\"name\": \"Tutto\", \n \"selectors\": [{\"selector\": \".person\", \"state\": false}, {\"selector\": \".place\", \"state\": false}]},\n {\"name\": \"Personaggi\", \n \"selectors\": \n [{\"selector\": \".person\", \"state\": false}, {\"selector\": \".place\", \"state\": true}]},\n {\"name\": \"Luoghi\", \"selectors\": \n [{\"selector\": \".place\", \"state\": false}, {\"selector\": \".person\", \"state\": true}]}\n ]'\n subscribe=\"addChannel\"\n emit=\"addChannel\"\n ></pb-select-feature>\n </div>\n </ng-container>\n\n <ng-container\n *ngIf=\"data.docs?.length > 1 && data.docs[1].channel && data.facsimile\"\n >\n <ng-container *ngIf=\"data.labels && data.labels.index.hide\">\n <div class=\"n7-text-viewer__toolbar-container-flex\">\n <paper-button raised=\"\" (click)=\"displayIndex()\"\n >{{ !isDisplayed ? data.labels.index.hide :\n data.labels.index.show }}</paper-button\n >\n </div>\n </ng-container>\n <ng-container *ngIf=\"!data.labels || !data.labels.index.hide\">\n <div class=\"n7-text-viewer__toolbar-container-flex\">\n <paper-button raised=\"\" (click)=\"displayIndex()\"\n >{{ !isDisplayed ? 'Indici' : 'Riassunto'\n }}</paper-button\n >\n </div>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"data.docs && data.download\">\n <div class=\"n7-text-viewer__toolbar-container-flex\">\n <pb-download\n [type]=\"data.download && data.download.format ? data.download.format: ''\"\n [src]=\"data.docs[0].id\"\n [url]=\"data.download && data.download.file ? data.download.file : ''\"\n dialog=\"downloadDialog\"\n [title]=\"data.download && data.download.format && data.download.label ? data.download.label + ' ' + data.download.format: ''\"\n >\n <paper-button raised=\"\"\n >{{data.download && data.download.format &&\n data.download.label ? data.download.label + ' ' +\n data.download.format: ''}}</paper-button\n >\n </pb-download>\n </div>\n </ng-container>\n\n <pb-progress\n subscribe=\"transcription\"\n indeterminate=\"\"\n bottom-item=\"bottom-item\"\n style=\"visibility: hidden\"\n ></pb-progress>\n </app-toolbar>\n </app-header>\n\n <pb-drawer\n toggle=\"tocToggle\"\n class=\"tocDrawer\"\n emit=\"toc\"\n subscribe=\"transcription\"\n >\n <div class=\"drawer-content\">\n <h3>\n <ng-container *ngIf=\"data.labels && data.labels.toc\">\n {{data.labels.toc}}\n </ng-container>\n <ng-container *ngIf=\"!data.labels || !data.labels.toc\">\n <pb-i18n key=\"document.contents\">Contents</pb-i18n>\n </ng-container>\n </h3>\n <pb-load\n *ngIf=\"data.docs\"\n id=\"toc\"\n url=\"api/document/{doc}/contents?target=transcription&amp;icons=true\"\n [src]=\"data.docs[0].id\"\n subscribe=\"toc\"\n emit=\"toc\"\n expand=\"expand\"\n auto=\"auto\"\n >\n <ng-container *ngIf=\"data.labels && data.labels.loading\">\n {{data.labels.loading}}\n </ng-container>\n <ng-container *ngIf=\"!data.labels || !data.labels.loading\">\n <pb-i18n key=\"dialogs.loading\">Loading</pb-i18n>\n </ng-container>\n </pb-load>\n </div>\n </pb-drawer>\n <main class=\"content-body\">\n <pb-facsimile\n *ngIf=\"data.facsimile\"\n id=\"facsimile\"\n [attr.base-uri]=\"data.facsimile.uri\"\n subscribe=\"transcription\"\n default-zoom-level=\"0\"\n show-navigation-control=\"show-navigation-control\"\n show-navigator=\"show-navigator\"\n >\n </pb-facsimile>\n <ng-container *ngFor=\"let doc of data.docs; index as $i;\">\n <!-- NO CHANNEL -->\n <pb-view\n *ngIf=\"!doc.channel\"\n id=\"view{{ $i }}\"\n [src]=\"doc.id\"\n subscribe=\"transcription\"\n emit=\"transcription\"\n [attr.wait-for]=\"data.facsimile ? '#facsimile' : null\"\n column-separator=\".tei-cb\"\n append-footnotes=\"append-footnotes\"\n view=\"{{ doc.view }}\"\n ></pb-view>\n <!-- WITH CHANNEL / MURUCA DEMO -->\n <pb-view\n *ngIf=\"doc.channel && doc.translation\"\n id=\"view{{ $i }}\"\n [src]=\"doc.id\"\n xpath=\"//text[@type='source']\"\n emit=\"{{ doc.channel }}\"\n subscribe=\"{{ doc.channel }}\"\n view=\"{{ doc.view }}\"\n >\n </pb-view>\n <pb-view\n *ngIf=\"doc.channel && doc.translation\"\n id=\"view{{ $i }}\"\n [src]=\"doc.id\"\n xpath=\"{{ doc.xpath }}\"\n emit=\"{{ doc.channel }}\"\n subscribe=\"{{ doc.channel }}\"\n view=\"{{ doc.view }}\"\n >\n <pb-param name=\"mode\" value=\"commentary\"></pb-param>\n </pb-view>\n <!-- WITH CHANNEL / addChannel -->\n <pb-view\n [hidden]=\"isDisplayed\"\n (click)=\"onClick($event)\"\n *ngIf=\"doc.channel && !doc.translation\"\n id=\"view{{ $i }}\"\n [src]=\"doc.id\"\n [odd]=\"doc.odd\"\n emit=\"addChannel\"\n subscribe=\"addChannel\"\n view=\"{{ doc.view }}\"\n >\n <pb-param name=\"mode\" value=\"commentary\"></pb-param>\n </pb-view>\n\n <ng-container *ngIf=\"doc.channel && !doc.translation\">\n <!-- -->\n <pb-view\n [hidden]=\"!isDisplayed\"\n *ngIf=\"doc.channel && !doc.translation\"\n [src]=\"doc.id\"\n [odd]=\"doc.odd\"\n id=\"text-viewer-index\"\n subscribe=\"index\"\n emit=\"letter\"\n >\n <pb-param name=\"mode\" value=\"facets\"></pb-param>\n </pb-view>\n <!-- -->\n </ng-container>\n </ng-container>\n </main>\n </app-header-layout>\n </app-drawer-layout>\n </pb-page>\n</div>\n", directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
68
93
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: TextViewerComponent, decorators: [{
69
94
  type: Component,
70
- args: [{ selector: 'n7-text-viewer', template: "<div\n class=\"n7-text-viewer {{data.classes || ''}}\"\n *ngIf=\"data && data.endpoint\"\n>\n <pb-page [attr.endpoint]=\"data.endpoint\" api-version=\"1.0.0\">\n <pb-document\n *ngFor=\"let doc of data.docs\"\n [path]=\"doc.xml\"\n [odd]=\"doc.odd\"\n [id]=\"doc.id\"\n >\n </pb-document>\n\n <app-drawer-layout force-narrow=\"force-narrow\" narrow=\"\">\n <app-header-layout>\n <app-header\n fixed=\"fixed\"\n data-template=\"browse:fix-links\"\n style=\"\n transition-duration: 0ms;\n transform: translate3d(0px, 0px, 0px);\n left: 0px;\n right: 0.399994px;\n \"\n >\n <app-toolbar\n class=\"toolbar\"\n sticky=\"sticky\"\n style=\"transform: translate3d(0px, 0px, 0px)\"\n >\n <paper-icon-button\n *ngIf=\"data.docs.length === 1\"\n id=\"tocToggle\"\n class=\"toc-toggle\"\n icon=\"icons:view-list\"\n role=\"button\"\n tabindex=\"0\"\n aria-disabled=\"false\"\n ></paper-icon-button>\n\n <pb-toggle-feature\n *ngIf=\"data.docs.length === 1\"\n name=\"highlight1\"\n selector=\"tei-app,pb-popover,pb-highlight\"\n default=\"off\"\n action=\"disable\"\n emit=\"transcription\"\n subscribe=\"transcription\"\n >\n <ng-container *ngIf=\"data.labels && data.labels.view\">\n {{data.labels.view}}\n </ng-container>\n <ng-container *ngIf=\"!data.labels || !data.labels.view\">\n <pb-i18n key=\"document.plain\">Plain Reading View</pb-i18n>\n </ng-container>\n </pb-toggle-feature>\n\n <ng-container\n *ngIf=\"data.docs?.length == 1 || data.docs[0].translation\"\n >\n <pb-zoom\n emit=\"transcription\"\n direction=\"in\"\n icon=\"icons:zoom-in\"\n ></pb-zoom>\n <pb-zoom\n emit=\"transcription\"\n direction=\"out\"\n icon=\"icons:zoom-out\"\n ></pb-zoom>\n </ng-container>\n\n <ng-container\n *ngIf=\"!data.docs[0].translation && data.docs?.length == 1\"\n >\n <pb-navigation\n emit=\"transcription\"\n keyboard=\"left\"\n subscribe=\"transcription\"\n direction=\"backward\"\n unit=\"page\"\n >\n <paper-icon-button\n icon=\"icons:chevron-left\"\n role=\"button\"\n tabindex=\"0\"\n aria-disabled=\"false\"\n ></paper-icon-button>\n </pb-navigation>\n <pb-navigation\n emit=\"transcription\"\n keyboard=\"right\"\n subscribe=\"transcription\"\n direction=\"forward\"\n unit=\"page\"\n >\n <paper-icon-button\n icon=\"icons:chevron-right\"\n role=\"button\"\n tabindex=\"0\"\n aria-disabled=\"false\"\n ></paper-icon-button>\n </pb-navigation>\n </ng-container>\n\n <ng-container *ngIf=\"data.docs?.length > 1\">\n <div class=\"n7-text-viewer__toolbar-container-flex\">\n <paper-icon-button\n *ngIf=\"data.docs?.length > 1\"\n id=\"tocToggle\"\n class=\"toc-toggle\"\n icon=\"icons:view-list\"\n role=\"button\"\n tabindex=\"0\"\n aria-disabled=\"false\"\n ></paper-icon-button>\n </div>\n </ng-container>\n\n <ng-container\n *ngIf=\"!data.docs[0].translation && data.docs?.length > 1\"\n >\n <div class=\"n7-text-viewer__toolbar-container-flex\">\n <pb-navigation\n emit=\"transcription\"\n keyboard=\"left\"\n subscribe=\"transcription\"\n direction=\"backward\"\n unit=\"page\"\n >\n <paper-icon-button\n icon=\"icons:chevron-left\"\n role=\"button\"\n tabindex=\"0\"\n aria-disabled=\"false\"\n ></paper-icon-button>\n </pb-navigation>\n </div>\n\n <div class=\"n7-text-viewer__toolbar-container-flex\">\n <pb-navigation\n emit=\"transcription\"\n keyboard=\"right\"\n subscribe=\"transcription\"\n direction=\"forward\"\n unit=\"page\"\n >\n <paper-icon-button\n icon=\"icons:chevron-right\"\n role=\"button\"\n tabindex=\"0\"\n aria-disabled=\"false\"\n ></paper-icon-button>\n </pb-navigation>\n </div>\n </ng-container>\n\n <ng-container\n *ngIf=\"data.docs?.length > 1 && !data.docs[0].translation\"\n >\n <div class=\"n7-text-viewer__toolbar-container-flex\">\n <pb-zoom\n emit=\"transcription\"\n direction=\"in\"\n icon=\"icons:zoom-in\"\n ></pb-zoom>\n\n <pb-zoom\n emit=\"transcription\"\n direction=\"out\"\n icon=\"icons:zoom-out\"\n ></pb-zoom>\n </div>\n </ng-container>\n\n <ng-container\n *ngIf=\"data.docs.length > 1 && data.labels && data.labels.select.label\"\n >\n <div class=\"n7-text-viewer__toolbar-container-flex\">\n <pb-select-feature\n id=\"select-view2\"\n name=\"view2\"\n [label]=\"data.labels && data.labels.select.label ? data.labels.select.label : 'Mostra entit\u00E0'\"\n [items]='[\n {\"name\": data.labels.select.type.all, \n \"selectors\": [{\"selector\": \".person\", \"state\": false}, {\"selector\": \".place\", \"state\": false}]},\n {\"name\": data.labels.select.type.person, \n \"selectors\": \n [{\"selector\": \".person\", \"state\": false}, {\"selector\": \".place\", \"state\": true}]},\n {\"name\": data.labels.select.type.place, \"selectors\": \n [{\"selector\": \".place\", \"state\": false}, {\"selector\": \".person\", \"state\": true}]}\n ]'\n subscribe=\"addChannel\"\n emit=\"addChannel\"\n ></pb-select-feature>\n </div>\n </ng-container>\n\n <ng-container\n *ngIf=\"data.docs.length > 1 && (!data.labels || !data.labels.select.label)\"\n >\n <div class=\"n7-text-viewer__toolbar-container-flex\">\n <pb-select-feature\n id=\"select-view2\"\n name=\"view2\"\n label=\"Mostra entit\u00E0\"\n [items]='[\n {\"name\": \"Tutto\", \n \"selectors\": [{\"selector\": \".person\", \"state\": false}, {\"selector\": \".place\", \"state\": false}]},\n {\"name\": \"Personaggi\", \n \"selectors\": \n [{\"selector\": \".person\", \"state\": false}, {\"selector\": \".place\", \"state\": true}]},\n {\"name\": \"Luoghi\", \"selectors\": \n [{\"selector\": \".place\", \"state\": false}, {\"selector\": \".person\", \"state\": true}]}\n ]'\n subscribe=\"addChannel\"\n emit=\"addChannel\"\n ></pb-select-feature>\n </div>\n </ng-container>\n\n <ng-container\n *ngIf=\"data.docs?.length > 1 && data.docs[1].channel && data.facsimile\"\n >\n <ng-container *ngIf=\"data.labels && data.labels.index.hide\">\n <div class=\"n7-text-viewer__toolbar-container-flex\">\n <paper-button raised=\"\" (click)=\"displayIndex()\"\n >{{ !isDisplayed ? data.labels.index.hide :\n data.labels.index.show }}</paper-button\n >\n </div>\n </ng-container>\n <ng-container *ngIf=\"!data.labels || !data.labels.index.hide\">\n <div class=\"n7-text-viewer__toolbar-container-flex\">\n <paper-button raised=\"\" (click)=\"displayIndex()\"\n >{{ !isDisplayed ? 'Indici' : 'Riassunto'\n }}</paper-button\n >\n </div>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"data.docs && data.download\">\n <div class=\"n7-text-viewer__toolbar-container-flex\">\n <pb-download\n [type]=\"data.download && data.download.format ? data.download.format: ''\"\n [src]=\"data.docs[0].id\"\n [url]=\"data.download && data.download.file ? data.download.file : ''\"\n dialog=\"downloadDialog\"\n [title]=\"data.download && data.download.format && data.download.label ? data.download.label + ' ' + data.download.format: ''\"\n >\n <paper-button raised=\"\"\n >{{data.download && data.download.format &&\n data.download.label ? data.download.label + ' ' +\n data.download.format: ''}}</paper-button\n >\n </pb-download>\n </div>\n </ng-container>\n\n <pb-progress\n subscribe=\"transcription\"\n indeterminate=\"\"\n bottom-item=\"bottom-item\"\n style=\"visibility: hidden\"\n ></pb-progress>\n </app-toolbar>\n </app-header>\n\n <pb-drawer\n toggle=\"tocToggle\"\n class=\"tocDrawer\"\n emit=\"toc\"\n subscribe=\"transcription\"\n >\n <div class=\"drawer-content\">\n <h3>\n <ng-container *ngIf=\"data.labels && data.labels.toc\">\n {{data.labels.toc}}\n </ng-container>\n <ng-container *ngIf=\"!data.labels || !data.labels.toc\">\n <pb-i18n key=\"document.contents\">Contents</pb-i18n>\n </ng-container>\n </h3>\n <pb-load\n *ngIf=\"data.docs\"\n id=\"toc\"\n url=\"api/document/{doc}/contents?target=transcription&amp;icons=true\"\n [src]=\"data.docs[0].id\"\n subscribe=\"toc\"\n emit=\"toc\"\n expand=\"expand\"\n auto=\"auto\"\n >\n <ng-container *ngIf=\"data.labels && data.labels.loading\">\n {{data.labels.loading}}\n </ng-container>\n <ng-container *ngIf=\"!data.labels || !data.labels.loading\">\n <pb-i18n key=\"dialogs.loading\">Loading</pb-i18n>\n </ng-container>\n </pb-load>\n </div>\n </pb-drawer>\n <main class=\"content-body\">\n <pb-facsimile\n *ngIf=\"data.facsimile\"\n id=\"facsimile\"\n [attr.base-uri]=\"data.facsimile.uri\"\n subscribe=\"transcription\"\n default-zoom-level=\"0\"\n show-navigation-control=\"show-navigation-control\"\n show-navigator=\"show-navigator\"\n >\n </pb-facsimile>\n <ng-container *ngFor=\"let doc of data.docs; index as $i;\">\n <!-- NO CHANNEL -->\n <pb-view\n *ngIf=\"!doc.channel\"\n id=\"view{{ $i }}\"\n [src]=\"doc.id\"\n subscribe=\"transcription\"\n emit=\"transcription\"\n [attr.wait-for]=\"data.facsimile ? '#facsimile' : null\"\n column-separator=\".tei-cb\"\n append-footnotes=\"append-footnotes\"\n view=\"{{ doc.view }}\"\n ></pb-view>\n <!-- WITH CHANNEL / MURUCA DEMO -->\n <pb-view\n *ngIf=\"doc.channel && doc.translation\"\n id=\"view{{ $i }}\"\n [src]=\"doc.id\"\n xpath=\"//text[@type='source']\"\n emit=\"{{ doc.channel }}\"\n subscribe=\"{{ doc.channel }}\"\n view=\"{{ doc.view }}\"\n >\n </pb-view>\n <pb-view\n *ngIf=\"doc.channel && doc.translation\"\n id=\"view{{ $i }}\"\n [src]=\"doc.id\"\n xpath=\"{{ doc.xpath }}\"\n emit=\"{{ doc.channel }}\"\n subscribe=\"{{ doc.channel }}\"\n view=\"{{ doc.view }}\"\n >\n <pb-param name=\"mode\" value=\"commentary\"></pb-param>\n </pb-view>\n <!-- WITH CHANNEL / addChannel -->\n <pb-view\n [hidden]=\"isDisplayed\"\n (click)=\"onClick($event)\"\n *ngIf=\"doc.channel && !doc.translation\"\n id=\"view{{ $i }}\"\n [src]=\"doc.id\"\n [odd]=\"doc.odd\"\n emit=\"addChannel\"\n subscribe=\"addChannel\"\n view=\"{{ doc.view }}\"\n >\n <pb-param name=\"mode\" value=\"commentary\"></pb-param>\n </pb-view>\n\n <ng-container *ngIf=\"doc.channel && !doc.translation\">\n <!-- -->\n <pb-view\n [hidden]=\"!isDisplayed\"\n *ngIf=\"doc.channel && !doc.translation\"\n [src]=\"doc.id\"\n [odd]=\"doc.odd\"\n subscribe=\"index\"\n emit=\"letter\"\n >\n <pb-param name=\"mode\" value=\"facets\"></pb-param>\n </pb-view>\n <!-- -->\n </ng-container>\n </ng-container>\n </main>\n </app-header-layout>\n </app-drawer-layout>\n </pb-page>\n</div>\n" }]
71
- }], propDecorators: { data: [{
95
+ args: [{ selector: 'n7-text-viewer', template: "<div\n class=\"n7-text-viewer {{data.classes || ''}}\"\n *ngIf=\"data && data.endpoint\"\n>\n\n <pb-page [attr.endpoint]=\"data.endpoint\" api-version=\"1.0.0\">\n <pb-document\n *ngFor=\"let doc of data.docs\"\n [path]=\"doc.xml\"\n [odd]=\"doc.odd\"\n [id]=\"doc.id\"\n >\n </pb-document>\n\n <app-drawer-layout force-narrow=\"force-narrow\" narrow=\"\">\n <app-header-layout>\n <app-header\n fixed=\"fixed\"\n data-template=\"browse:fix-links\"\n style=\"\n transition-duration: 0ms;\n transform: translate3d(0px, 0px, 0px);\n left: 0px;\n right: 0.399994px;\n \"\n >\n <app-toolbar\n class=\"toolbar\"\n sticky=\"sticky\"\n style=\"transform: translate3d(0px, 0px, 0px)\"\n >\n <paper-icon-button\n *ngIf=\"data.docs.length === 1\"\n id=\"tocToggle\"\n class=\"toc-toggle\"\n icon=\"icons:view-list\"\n role=\"button\"\n tabindex=\"0\"\n aria-disabled=\"false\"\n ></paper-icon-button>\n\n <pb-toggle-feature\n *ngIf=\"data.docs.length === 1\"\n name=\"highlight1\"\n selector=\"tei-app,pb-popover,pb-highlight\"\n default=\"off\"\n action=\"disable\"\n emit=\"transcription\"\n subscribe=\"transcription\"\n >\n <ng-container *ngIf=\"data.labels && data.labels.view\">\n {{data.labels.view}}\n </ng-container>\n <ng-container *ngIf=\"!data.labels || !data.labels.view\">\n <pb-i18n key=\"document.plain\">Plain Reading View</pb-i18n>\n </ng-container>\n </pb-toggle-feature>\n\n <ng-container\n *ngIf=\"data.docs?.length == 1 || data.docs[0].translation\"\n >\n <pb-zoom\n emit=\"transcription\"\n direction=\"in\"\n icon=\"icons:zoom-in\"\n ></pb-zoom>\n <pb-zoom\n emit=\"transcription\"\n direction=\"out\"\n icon=\"icons:zoom-out\"\n ></pb-zoom>\n </ng-container>\n\n <ng-container\n *ngIf=\"!data.docs[0].translation && data.docs?.length == 1\"\n >\n <pb-navigation\n emit=\"transcription\"\n keyboard=\"left\"\n subscribe=\"transcription\"\n direction=\"backward\"\n unit=\"page\"\n >\n <paper-icon-button\n icon=\"icons:chevron-left\"\n role=\"button\"\n tabindex=\"0\"\n aria-disabled=\"false\"\n ></paper-icon-button>\n </pb-navigation>\n <pb-navigation\n emit=\"transcription\"\n keyboard=\"right\"\n subscribe=\"transcription\"\n direction=\"forward\"\n unit=\"page\"\n >\n <paper-icon-button\n icon=\"icons:chevron-right\"\n role=\"button\"\n tabindex=\"0\"\n aria-disabled=\"false\"\n ></paper-icon-button>\n </pb-navigation>\n </ng-container>\n\n <ng-container *ngIf=\"data.docs?.length > 1\">\n <div class=\"n7-text-viewer__toolbar-container-flex\">\n <paper-icon-button\n *ngIf=\"data.docs?.length > 1\"\n id=\"tocToggle\"\n class=\"toc-toggle\"\n icon=\"icons:view-list\"\n role=\"button\"\n tabindex=\"0\"\n aria-disabled=\"false\"\n ></paper-icon-button>\n </div>\n </ng-container>\n\n <ng-container\n *ngIf=\"!data.docs[0].translation && data.docs?.length > 1\"\n >\n <div class=\"n7-text-viewer__toolbar-container-flex\">\n <pb-navigation\n emit=\"transcription\"\n keyboard=\"left\"\n subscribe=\"transcription\"\n direction=\"backward\"\n unit=\"page\"\n >\n <paper-icon-button\n icon=\"icons:chevron-left\"\n role=\"button\"\n tabindex=\"0\"\n aria-disabled=\"false\"\n ></paper-icon-button>\n </pb-navigation>\n </div>\n\n <div class=\"n7-text-viewer__toolbar-container-flex\">\n <pb-navigation\n emit=\"transcription\"\n keyboard=\"right\"\n subscribe=\"transcription\"\n direction=\"forward\"\n unit=\"page\"\n >\n <paper-icon-button\n icon=\"icons:chevron-right\"\n role=\"button\"\n tabindex=\"0\"\n aria-disabled=\"false\"\n ></paper-icon-button>\n </pb-navigation>\n </div>\n </ng-container>\n\n <ng-container\n *ngIf=\"data.docs?.length > 1 && !data.docs[0].translation\"\n >\n <div class=\"n7-text-viewer__toolbar-container-flex\">\n <pb-zoom\n emit=\"transcription\"\n direction=\"in\"\n icon=\"icons:zoom-in\"\n ></pb-zoom>\n\n <pb-zoom\n emit=\"transcription\"\n direction=\"out\"\n icon=\"icons:zoom-out\"\n ></pb-zoom>\n </div>\n </ng-container>\n\n <ng-container\n *ngIf=\"data.docs.length > 1 && data.labels && data.labels.select.label\"\n >\n <div class=\"n7-text-viewer__toolbar-container-flex\">\n <pb-select-feature\n id=\"select-view2\"\n name=\"view2\"\n [label]=\"data.labels && data.labels.select.label ? data.labels.select.label : 'Mostra entit\u00E0'\"\n [items]='[\n {\"name\": data.labels.select.type.all, \n \"selectors\": [{\"selector\": \".person\", \"state\": false}, {\"selector\": \".place\", \"state\": false}]},\n {\"name\": data.labels.select.type.person, \n \"selectors\": \n [{\"selector\": \".person\", \"state\": false}, {\"selector\": \".place\", \"state\": true}]},\n {\"name\": data.labels.select.type.place, \"selectors\": \n [{\"selector\": \".place\", \"state\": false}, {\"selector\": \".person\", \"state\": true}]}\n ]'\n subscribe=\"addChannel\"\n emit=\"addChannel\"\n ></pb-select-feature>\n </div>\n </ng-container>\n\n <ng-container\n *ngIf=\"data.docs.length > 1 && (!data.labels || !data.labels.select.label)\"\n >\n <div class=\"n7-text-viewer__toolbar-container-flex\">\n <pb-select-feature\n id=\"select-view2\"\n name=\"view2\"\n label=\"Mostra entit\u00E0\"\n [items]='[\n {\"name\": \"Tutto\", \n \"selectors\": [{\"selector\": \".person\", \"state\": false}, {\"selector\": \".place\", \"state\": false}]},\n {\"name\": \"Personaggi\", \n \"selectors\": \n [{\"selector\": \".person\", \"state\": false}, {\"selector\": \".place\", \"state\": true}]},\n {\"name\": \"Luoghi\", \"selectors\": \n [{\"selector\": \".place\", \"state\": false}, {\"selector\": \".person\", \"state\": true}]}\n ]'\n subscribe=\"addChannel\"\n emit=\"addChannel\"\n ></pb-select-feature>\n </div>\n </ng-container>\n\n <ng-container\n *ngIf=\"data.docs?.length > 1 && data.docs[1].channel && data.facsimile\"\n >\n <ng-container *ngIf=\"data.labels && data.labels.index.hide\">\n <div class=\"n7-text-viewer__toolbar-container-flex\">\n <paper-button raised=\"\" (click)=\"displayIndex()\"\n >{{ !isDisplayed ? data.labels.index.hide :\n data.labels.index.show }}</paper-button\n >\n </div>\n </ng-container>\n <ng-container *ngIf=\"!data.labels || !data.labels.index.hide\">\n <div class=\"n7-text-viewer__toolbar-container-flex\">\n <paper-button raised=\"\" (click)=\"displayIndex()\"\n >{{ !isDisplayed ? 'Indici' : 'Riassunto'\n }}</paper-button\n >\n </div>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"data.docs && data.download\">\n <div class=\"n7-text-viewer__toolbar-container-flex\">\n <pb-download\n [type]=\"data.download && data.download.format ? data.download.format: ''\"\n [src]=\"data.docs[0].id\"\n [url]=\"data.download && data.download.file ? data.download.file : ''\"\n dialog=\"downloadDialog\"\n [title]=\"data.download && data.download.format && data.download.label ? data.download.label + ' ' + data.download.format: ''\"\n >\n <paper-button raised=\"\"\n >{{data.download && data.download.format &&\n data.download.label ? data.download.label + ' ' +\n data.download.format: ''}}</paper-button\n >\n </pb-download>\n </div>\n </ng-container>\n\n <pb-progress\n subscribe=\"transcription\"\n indeterminate=\"\"\n bottom-item=\"bottom-item\"\n style=\"visibility: hidden\"\n ></pb-progress>\n </app-toolbar>\n </app-header>\n\n <pb-drawer\n toggle=\"tocToggle\"\n class=\"tocDrawer\"\n emit=\"toc\"\n subscribe=\"transcription\"\n >\n <div class=\"drawer-content\">\n <h3>\n <ng-container *ngIf=\"data.labels && data.labels.toc\">\n {{data.labels.toc}}\n </ng-container>\n <ng-container *ngIf=\"!data.labels || !data.labels.toc\">\n <pb-i18n key=\"document.contents\">Contents</pb-i18n>\n </ng-container>\n </h3>\n <pb-load\n *ngIf=\"data.docs\"\n id=\"toc\"\n url=\"api/document/{doc}/contents?target=transcription&amp;icons=true\"\n [src]=\"data.docs[0].id\"\n subscribe=\"toc\"\n emit=\"toc\"\n expand=\"expand\"\n auto=\"auto\"\n >\n <ng-container *ngIf=\"data.labels && data.labels.loading\">\n {{data.labels.loading}}\n </ng-container>\n <ng-container *ngIf=\"!data.labels || !data.labels.loading\">\n <pb-i18n key=\"dialogs.loading\">Loading</pb-i18n>\n </ng-container>\n </pb-load>\n </div>\n </pb-drawer>\n <main class=\"content-body\">\n <pb-facsimile\n *ngIf=\"data.facsimile\"\n id=\"facsimile\"\n [attr.base-uri]=\"data.facsimile.uri\"\n subscribe=\"transcription\"\n default-zoom-level=\"0\"\n show-navigation-control=\"show-navigation-control\"\n show-navigator=\"show-navigator\"\n >\n </pb-facsimile>\n <ng-container *ngFor=\"let doc of data.docs; index as $i;\">\n <!-- NO CHANNEL -->\n <pb-view\n *ngIf=\"!doc.channel\"\n id=\"view{{ $i }}\"\n [src]=\"doc.id\"\n subscribe=\"transcription\"\n emit=\"transcription\"\n [attr.wait-for]=\"data.facsimile ? '#facsimile' : null\"\n column-separator=\".tei-cb\"\n append-footnotes=\"append-footnotes\"\n view=\"{{ doc.view }}\"\n ></pb-view>\n <!-- WITH CHANNEL / MURUCA DEMO -->\n <pb-view\n *ngIf=\"doc.channel && doc.translation\"\n id=\"view{{ $i }}\"\n [src]=\"doc.id\"\n xpath=\"//text[@type='source']\"\n emit=\"{{ doc.channel }}\"\n subscribe=\"{{ doc.channel }}\"\n view=\"{{ doc.view }}\"\n >\n </pb-view>\n <pb-view\n *ngIf=\"doc.channel && doc.translation\"\n id=\"view{{ $i }}\"\n [src]=\"doc.id\"\n xpath=\"{{ doc.xpath }}\"\n emit=\"{{ doc.channel }}\"\n subscribe=\"{{ doc.channel }}\"\n view=\"{{ doc.view }}\"\n >\n <pb-param name=\"mode\" value=\"commentary\"></pb-param>\n </pb-view>\n <!-- WITH CHANNEL / addChannel -->\n <pb-view\n [hidden]=\"isDisplayed\"\n (click)=\"onClick($event)\"\n *ngIf=\"doc.channel && !doc.translation\"\n id=\"view{{ $i }}\"\n [src]=\"doc.id\"\n [odd]=\"doc.odd\"\n emit=\"addChannel\"\n subscribe=\"addChannel\"\n view=\"{{ doc.view }}\"\n >\n <pb-param name=\"mode\" value=\"commentary\"></pb-param>\n </pb-view>\n\n <ng-container *ngIf=\"doc.channel && !doc.translation\">\n <!-- -->\n <pb-view\n [hidden]=\"!isDisplayed\"\n *ngIf=\"doc.channel && !doc.translation\"\n [src]=\"doc.id\"\n [odd]=\"doc.odd\"\n id=\"text-viewer-index\"\n subscribe=\"index\"\n emit=\"letter\"\n >\n <pb-param name=\"mode\" value=\"facets\"></pb-param>\n </pb-view>\n <!-- -->\n </ng-container>\n </ng-container>\n </main>\n </app-header-layout>\n </app-drawer-layout>\n </pb-page>\n</div>\n" }]
96
+ }], ctorParameters: function () { return []; }, propDecorators: { data: [{
72
97
  type: Input
73
98
  }], emit: [{
74
99
  type: Input
75
100
  }] } });
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC12aWV3ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kdi1jb21wb25lbnRzLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvdGV4dC12aWV3ZXIvdGV4dC12aWV3ZXIudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kdi1jb21wb25lbnRzLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvdGV4dC12aWV3ZXIvdGV4dC12aWV3ZXIuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw2QkFBNkI7QUFDN0IsaUJBQWlCO0FBQ2pCLDZCQUE2QjtBQUM3QixPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQzs7O0FBbUV6RCxNQUFNLE9BQU8sbUJBQW1CO0lBSmhDO1FBd0JFLGdCQUFXLEdBQUcsS0FBSyxDQUFDO0tBK0NyQjtJQTVEQyxRQUFRO1FBQ04sSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRTtZQUNoQyxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzNDLENBQUMsQ0FBQyxZQUFZLENBQ1osS0FBSyxFQUNMLG9EQUFvRCxDQUNyRCxDQUFDO1lBQ0YsQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDakMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1lBQy9CLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzlCO0lBQ0gsQ0FBQztJQUlELG9CQUFvQixDQUFDLE1BQU07UUFDekIsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7WUFDekIsTUFBTSxPQUFPLEdBQUcsUUFBUTtpQkFDckIsYUFBYSxDQUNaLHdQQUF3UCxDQUN6UDtpQkFDQSxVQUFVLENBQUMsYUFBYSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQztZQUN2QyxPQUFPLENBQUMsY0FBYyxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDakQsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssS0FBSyxFQUFFO1lBQzlCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1NBQ3pCOztZQUFNLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxjQUFjO1FBQ1osbUJBQW1CLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztJQUNyQyxDQUFDO0lBRUQsT0FBTyxDQUFDLE9BQU87UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzVCLElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxLQUFLLEVBQUU7WUFDOUIsSUFBSSxNQUFNLENBQUM7WUFDWCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDVixPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQzdDLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEtBQUssY0FBYyxFQUFFO29CQUM5QyxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDMUI7cUJBQU07b0JBQ0wsQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDUjthQUNGO1lBQ0QsSUFDRSxNQUFNLENBQUMsS0FBSzttQkFDVCxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQzt1QkFDbEMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsRUFDeEM7Z0JBQ0EsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUNuQztTQUNGOztZQUFNLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQ2xDLENBQUM7O0FBN0RNLDJCQUFPLEdBQUcsS0FBSyxDQUFDO2dIQUxaLG1CQUFtQjtvR0FBbkIsbUJBQW1CLDhGQ3RFaEMsK3NkQWdZQTsyRkQxVGEsbUJBQW1CO2tCQUovQixTQUFTOytCQUNFLGdCQUFnQjs4QkFJakIsSUFBSTtzQkFBWixLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBURVhULVZJRVdFUi50c1xuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIEludGVyZmFjZSBmb3IgVGV4dFZpZXdlckNvbXBvbmVudCdzIFwiZGF0YVwiXG4gKiBAcHJvcGVydHkgZW5kcG9pbnQgKHJlcXVpcmVkKVxuICogQHByb3BlcnR5IGRvYyAocmVxdWlyZWQpXG4gKiBAcHJvcGVydHkgZmFjc2ltaWxlIChvcHRpb25hbClcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUZXh0Vmlld2VyRGF0YSB7XG4gIC8qXG4gICAqIFRFSVB1YiBzZXJ2ZXIgZW5kcG9pbnRcbiAgICovXG4gIGVuZHBvaW50OiBzdHJpbmc7XG4gIC8qXG4gICAqIFhNTCBhbmQgT0REIHBhdGhzXG4gICAqL1xuICBkb2NzOiB7XG4gICAgeG1sOiBzdHJpbmc7XG4gICAgb2RkOiBzdHJpbmc7XG4gICAgaWQ6IHN0cmluZztcbiAgICB2aWV3OiBzdHJpbmc7XG4gICAgY2hhbm5lbD86IHN0cmluZztcbiAgICB0cmFuc2xhdGlvbj86IGJvb2xlYW47XG4gICAgZG93bmxvYWQ/OiBzdHJpbmc7XG4gIH1bXTtcblxuICAvKlxuICAgKiBET1dOTE9BRCBGSUxFU1xuICAgKi9cbiAgZG93bmxvYWQ/OiB7XG4gICAgbGFiZWw/OiBzdHJpbmc7XG4gICAgZmlsZT86IHN0cmluZztcbiAgICBmb3JtYXQ/OiBzdHJpbmc7XG4gIH07XG5cbiAgLypcbiAgICogTEFCRUxTIGZvciBUT09MQkFSXG4gICAqL1xuICBsYWJlbHM/OiB7XG4gICAgdmlldz86IHN0cmluZztcbiAgICBzZWxlY3Q/OiB7XG4gICAgICBsYWJlbD86IHN0cmluZztcbiAgICAgIHR5cGU/OiB7XG4gICAgICAgIFtrZXk6IHN0cmluZ106IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICBpbmRleD86IHtcbiAgICAgIHNob3c/OiBzdHJpbmc7XG4gICAgICBoaWRlPzogc3RyaW5nO1xuICAgIH07XG4gICAgdG9jPzogc3RyaW5nO1xuICAgIGxvYWRpbmc/OiBzdHJpbmc7XG4gIH07XG4gIC8qXG4gICAqIElJSUYgc2VydmVyIGVuZHBvaW50XG4gICAqL1xuICBmYWNzaW1pbGU/OiBhbnk7XG4gIC8qKlxuICAgKiBhZGRpdGlvbmFsIGh0bWwgY2xhc3Nlc1xuICAgKi9cbiAgY2xhc3Nlcz86IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbjctdGV4dC12aWV3ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vdGV4dC12aWV3ZXIuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFRleHRWaWV3ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBkYXRhOiBUZXh0Vmlld2VyRGF0YTtcblxuICBASW5wdXQoKSBlbWl0OiBhbnk7XG5cbiAgc3RhdGljIF9sb2FkZWQgPSBmYWxzZTtcblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAoIVRleHRWaWV3ZXJDb21wb25lbnQuX2xvYWRlZCkge1xuICAgICAgY29uc3QgcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgICAgcy5zZXRBdHRyaWJ1dGUoXG4gICAgICAgICdzcmMnLFxuICAgICAgICAnL2Fzc2V0cy9wYi1jb21wb25lbnRzL2Rpc3QvcGItY29tcG9uZW50cy1idW5kbGUuanMnXG4gICAgICApO1xuICAgICAgcy5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAnbW9kdWxlJyk7XG4gICAgICBzLm9ubG9hZCA9IHRoaXMub25TY3JpcHRMb2FkZWQ7XG4gICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHMpO1xuICAgIH1cbiAgfVxuXG4gIGlzRGlzcGxheWVkID0gZmFsc2U7XG5cbiAgc2Nyb2xsRW50aXR5SW50b1ZpZXcodGFyZ2V0KSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBjb25zdCBrZXkgPSB0YXJnZXQuX19rZXk7XG4gICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnRcbiAgICAgICAgLnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICAgJyNtYWluLWxheW91dCA+IGRpdiA+IG1haW4gPiBtci1yZXNvdXJjZS1sYXlvdXQgPiBkaXYgPiBkaXYubXItcmVzb3VyY2VfX3RvcCA+IHNlY3Rpb24ubXItcmVzb3VyY2VfX3NlY3Rpb24ubXItcmVzb3VyY2VfX3RleHQtdmlld2VyID4gZGl2ID4gZGl2ID4gbjctdGV4dC12aWV3ZXIgPiBkaXYgPiBwYi1wYWdlID4gYXBwLWRyYXdlci1sYXlvdXQgPiBhcHAtaGVhZGVyLWxheW91dCA+IG1haW4gPiBwYi12aWV3Om50aC1jaGlsZCg0KSdcbiAgICAgICAgKVxuICAgICAgICAuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKGAjJHtrZXl9YCk7XG4gICAgICBlbGVtZW50LnNjcm9sbEludG9WaWV3KHsgYmVoYXZpb3I6ICdzbW9vdGgnIH0pO1xuICAgIH0sIDMwMCk7XG4gIH1cblxuICBkaXNwbGF5SW5kZXgoKSB7XG4gICAgaWYgKHRoaXMuaXNEaXNwbGF5ZWQgPT09IGZhbHNlKSB7XG4gICAgICB0aGlzLmlzRGlzcGxheWVkID0gdHJ1ZTtcbiAgICB9IGVsc2UgdGhpcy5pc0Rpc3BsYXllZCA9IGZhbHNlO1xuICB9XG5cbiAgb25TY3JpcHRMb2FkZWQoKSB7XG4gICAgVGV4dFZpZXdlckNvbXBvbmVudC5fbG9hZGVkID0gdHJ1ZTtcbiAgfVxuXG4gIG9uQ2xpY2socGF5bG9hZCkge1xuICAgIGlmICghdGhpcy5lbWl0KSByZXR1cm47XG4gICAgdGhpcy5lbWl0KCdjbGljaycsIHBheWxvYWQpO1xuICAgIGlmICh0aGlzLmlzRGlzcGxheWVkID09PSBmYWxzZSkge1xuICAgICAgbGV0IHRhcmdldDtcbiAgICAgIGxldCBpID0gMDtcbiAgICAgIHdoaWxlICghdGFyZ2V0ICYmIGkgPCBwYXlsb2FkLnBhdGgubGVuZ3RoIC0gMSkge1xuICAgICAgICBpZiAocGF5bG9hZC5wYXRoW2ldLnRhZ05hbWUgPT09ICdQQi1ISUdITElHSFQnKSB7XG4gICAgICAgICAgdGFyZ2V0ID0gcGF5bG9hZC5wYXRoW2ldO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGkgKz0gMTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICB0YXJnZXQuX19rZXlcbiAgICAgICAgJiYgKHRhcmdldC5jbGFzc05hbWUuaW5jbHVkZXMoJ3BlcnNvbicpXG4gICAgICAgICAgfHwgdGFyZ2V0LmNsYXNzTmFtZS5pbmNsdWRlcygncGxhY2UnKSlcbiAgICAgICkge1xuICAgICAgICB0aGlzLmlzRGlzcGxheWVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zY3JvbGxFbnRpdHlJbnRvVmlldyh0YXJnZXQpO1xuICAgICAgfVxuICAgIH0gZWxzZSB0aGlzLmlzRGlzcGxheWVkID0gZmFsc2U7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJuNy10ZXh0LXZpZXdlciB7e2RhdGEuY2xhc3NlcyB8fCAnJ319XCJcbiAgKm5nSWY9XCJkYXRhICYmIGRhdGEuZW5kcG9pbnRcIlxuPlxuICA8cGItcGFnZSBbYXR0ci5lbmRwb2ludF09XCJkYXRhLmVuZHBvaW50XCIgYXBpLXZlcnNpb249XCIxLjAuMFwiPlxuICAgIDxwYi1kb2N1bWVudFxuICAgICAgKm5nRm9yPVwibGV0IGRvYyBvZiBkYXRhLmRvY3NcIlxuICAgICAgW3BhdGhdPVwiZG9jLnhtbFwiXG4gICAgICBbb2RkXT1cImRvYy5vZGRcIlxuICAgICAgW2lkXT1cImRvYy5pZFwiXG4gICAgPlxuICAgIDwvcGItZG9jdW1lbnQ+XG5cbiAgICA8YXBwLWRyYXdlci1sYXlvdXQgZm9yY2UtbmFycm93PVwiZm9yY2UtbmFycm93XCIgbmFycm93PVwiXCI+XG4gICAgICA8YXBwLWhlYWRlci1sYXlvdXQ+XG4gICAgICAgIDxhcHAtaGVhZGVyXG4gICAgICAgICAgZml4ZWQ9XCJmaXhlZFwiXG4gICAgICAgICAgZGF0YS10ZW1wbGF0ZT1cImJyb3dzZTpmaXgtbGlua3NcIlxuICAgICAgICAgIHN0eWxlPVwiXG4gICAgICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwbXM7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDBweCwgMHB4LCAwcHgpO1xuICAgICAgICAgICAgbGVmdDogMHB4O1xuICAgICAgICAgICAgcmlnaHQ6IDAuMzk5OTk0cHg7XG4gICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxhcHAtdG9vbGJhclxuICAgICAgICAgICAgY2xhc3M9XCJ0b29sYmFyXCJcbiAgICAgICAgICAgIHN0aWNreT1cInN0aWNreVwiXG4gICAgICAgICAgICBzdHlsZT1cInRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMHB4LCAwcHgsIDBweClcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxwYXBlci1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAqbmdJZj1cImRhdGEuZG9jcy5sZW5ndGggPT09IDFcIlxuICAgICAgICAgICAgICBpZD1cInRvY1RvZ2dsZVwiXG4gICAgICAgICAgICAgIGNsYXNzPVwidG9jLXRvZ2dsZVwiXG4gICAgICAgICAgICAgIGljb249XCJpY29uczp2aWV3LWxpc3RcIlxuICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgICAgYXJpYS1kaXNhYmxlZD1cImZhbHNlXCJcbiAgICAgICAgICAgID48L3BhcGVyLWljb24tYnV0dG9uPlxuXG4gICAgICAgICAgICA8cGItdG9nZ2xlLWZlYXR1cmVcbiAgICAgICAgICAgICAgKm5nSWY9XCJkYXRhLmRvY3MubGVuZ3RoID09PSAxXCJcbiAgICAgICAgICAgICAgbmFtZT1cImhpZ2hsaWdodDFcIlxuICAgICAgICAgICAgICBzZWxlY3Rvcj1cInRlaS1hcHAscGItcG9wb3ZlcixwYi1oaWdobGlnaHRcIlxuICAgICAgICAgICAgICBkZWZhdWx0PVwib2ZmXCJcbiAgICAgICAgICAgICAgYWN0aW9uPVwiZGlzYWJsZVwiXG4gICAgICAgICAgICAgIGVtaXQ9XCJ0cmFuc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgc3Vic2NyaWJlPVwidHJhbnNjcmlwdGlvblwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkYXRhLmxhYmVscyAmJiBkYXRhLmxhYmVscy52aWV3XCI+XG4gICAgICAgICAgICAgICAge3tkYXRhLmxhYmVscy52aWV3fX1cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZGF0YS5sYWJlbHMgfHwgIWRhdGEubGFiZWxzLnZpZXdcIj5cbiAgICAgICAgICAgICAgICA8cGItaTE4biBrZXk9XCJkb2N1bWVudC5wbGFpblwiPlBsYWluIFJlYWRpbmcgVmlldzwvcGItaTE4bj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L3BiLXRvZ2dsZS1mZWF0dXJlPlxuXG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICpuZ0lmPVwiZGF0YS5kb2NzPy5sZW5ndGggPT0gMSB8fCBkYXRhLmRvY3NbMF0udHJhbnNsYXRpb25cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8cGItem9vbVxuICAgICAgICAgICAgICAgIGVtaXQ9XCJ0cmFuc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJpblwiXG4gICAgICAgICAgICAgICAgaWNvbj1cImljb25zOnpvb20taW5cIlxuICAgICAgICAgICAgICA+PC9wYi16b29tPlxuICAgICAgICAgICAgICA8cGItem9vbVxuICAgICAgICAgICAgICAgIGVtaXQ9XCJ0cmFuc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJvdXRcIlxuICAgICAgICAgICAgICAgIGljb249XCJpY29uczp6b29tLW91dFwiXG4gICAgICAgICAgICAgID48L3BiLXpvb20+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAqbmdJZj1cIiFkYXRhLmRvY3NbMF0udHJhbnNsYXRpb24gJiYgZGF0YS5kb2NzPy5sZW5ndGggPT0gMVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxwYi1uYXZpZ2F0aW9uXG4gICAgICAgICAgICAgICAgZW1pdD1cInRyYW5zY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgIGtleWJvYXJkPVwibGVmdFwiXG4gICAgICAgICAgICAgICAgc3Vic2NyaWJlPVwidHJhbnNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwiYmFja3dhcmRcIlxuICAgICAgICAgICAgICAgIHVuaXQ9XCJwYWdlXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxwYXBlci1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgaWNvbj1cImljb25zOmNoZXZyb24tbGVmdFwiXG4gICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICAgICAgICBhcmlhLWRpc2FibGVkPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgID48L3BhcGVyLWljb24tYnV0dG9uPlxuICAgICAgICAgICAgICA8L3BiLW5hdmlnYXRpb24+XG4gICAgICAgICAgICAgIDxwYi1uYXZpZ2F0aW9uXG4gICAgICAgICAgICAgICAgZW1pdD1cInRyYW5zY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgIGtleWJvYXJkPVwicmlnaHRcIlxuICAgICAgICAgICAgICAgIHN1YnNjcmliZT1cInRyYW5zY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cImZvcndhcmRcIlxuICAgICAgICAgICAgICAgIHVuaXQ9XCJwYWdlXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxwYXBlci1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgaWNvbj1cImljb25zOmNoZXZyb24tcmlnaHRcIlxuICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgICAgICAgYXJpYS1kaXNhYmxlZD1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICA+PC9wYXBlci1pY29uLWJ1dHRvbj5cbiAgICAgICAgICAgICAgPC9wYi1uYXZpZ2F0aW9uPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkYXRhLmRvY3M/Lmxlbmd0aCA+IDFcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm43LXRleHQtdmlld2VyX190b29sYmFyLWNvbnRhaW5lci1mbGV4XCI+XG4gICAgICAgICAgICAgICAgPHBhcGVyLWljb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cImRhdGEuZG9jcz8ubGVuZ3RoID4gMVwiXG4gICAgICAgICAgICAgICAgICBpZD1cInRvY1RvZ2dsZVwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInRvYy10b2dnbGVcIlxuICAgICAgICAgICAgICAgICAgaWNvbj1cImljb25zOnZpZXctbGlzdFwiXG4gICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICAgICAgICBhcmlhLWRpc2FibGVkPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgID48L3BhcGVyLWljb24tYnV0dG9uPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICpuZ0lmPVwiIWRhdGEuZG9jc1swXS50cmFuc2xhdGlvbiAmJiBkYXRhLmRvY3M/Lmxlbmd0aCA+IDFcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibjctdGV4dC12aWV3ZXJfX3Rvb2xiYXItY29udGFpbmVyLWZsZXhcIj5cbiAgICAgICAgICAgICAgICA8cGItbmF2aWdhdGlvblxuICAgICAgICAgICAgICAgICAgZW1pdD1cInRyYW5zY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgICAga2V5Ym9hcmQ9XCJsZWZ0XCJcbiAgICAgICAgICAgICAgICAgIHN1YnNjcmliZT1cInRyYW5zY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwiYmFja3dhcmRcIlxuICAgICAgICAgICAgICAgICAgdW5pdD1cInBhZ2VcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxwYXBlci1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBpY29uPVwiaWNvbnM6Y2hldnJvbi1sZWZ0XCJcbiAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtZGlzYWJsZWQ9XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICA+PC9wYXBlci1pY29uLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8L3BiLW5hdmlnYXRpb24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuNy10ZXh0LXZpZXdlcl9fdG9vbGJhci1jb250YWluZXItZmxleFwiPlxuICAgICAgICAgICAgICAgIDxwYi1uYXZpZ2F0aW9uXG4gICAgICAgICAgICAgICAgICBlbWl0PVwidHJhbnNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgICBrZXlib2FyZD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgIHN1YnNjcmliZT1cInRyYW5zY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwiZm9yd2FyZFwiXG4gICAgICAgICAgICAgICAgICB1bml0PVwicGFnZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPHBhcGVyLWljb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGljb249XCJpY29uczpjaGV2cm9uLXJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtZGlzYWJsZWQ9XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICA+PC9wYXBlci1pY29uLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8L3BiLW5hdmlnYXRpb24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgKm5nSWY9XCJkYXRhLmRvY3M/Lmxlbmd0aCA+IDEgJiYgIWRhdGEuZG9jc1swXS50cmFuc2xhdGlvblwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuNy10ZXh0LXZpZXdlcl9fdG9vbGJhci1jb250YWluZXItZmxleFwiPlxuICAgICAgICAgICAgICAgIDxwYi16b29tXG4gICAgICAgICAgICAgICAgICBlbWl0PVwidHJhbnNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJpblwiXG4gICAgICAgICAgICAgICAgICBpY29uPVwiaWNvbnM6em9vbS1pblwiXG4gICAgICAgICAgICAgICAgPjwvcGItem9vbT5cblxuICAgICAgICAgICAgICAgIDxwYi16b29tXG4gICAgICAgICAgICAgICAgICBlbWl0PVwidHJhbnNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJvdXRcIlxuICAgICAgICAgICAgICAgICAgaWNvbj1cImljb25zOnpvb20tb3V0XCJcbiAgICAgICAgICAgICAgICA+PC9wYi16b29tPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICpuZ0lmPVwiZGF0YS5kb2NzLmxlbmd0aCA+IDEgJiYgZGF0YS5sYWJlbHMgJiYgZGF0YS5sYWJlbHMuc2VsZWN0LmxhYmVsXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm43LXRleHQtdmlld2VyX190b29sYmFyLWNvbnRhaW5lci1mbGV4XCI+XG4gICAgICAgICAgICAgICAgPHBiLXNlbGVjdC1mZWF0dXJlXG4gICAgICAgICAgICAgICAgICBpZD1cInNlbGVjdC12aWV3MlwiXG4gICAgICAgICAgICAgICAgICBuYW1lPVwidmlldzJcIlxuICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cImRhdGEubGFiZWxzICYmIGRhdGEubGFiZWxzLnNlbGVjdC5sYWJlbCA/IGRhdGEubGFiZWxzLnNlbGVjdC5sYWJlbCA6ICdNb3N0cmEgZW50aXTDoCdcIlxuICAgICAgICAgICAgICAgICAgW2l0ZW1zXT0nW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcIm5hbWVcIjogZGF0YS5sYWJlbHMuc2VsZWN0LnR5cGUuYWxsLCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInNlbGVjdG9yc1wiOiBbe1wic2VsZWN0b3JcIjogXCIucGVyc29uXCIsIFwic3RhdGVcIjogZmFsc2V9LCB7XCJzZWxlY3RvclwiOiBcIi5wbGFjZVwiLCBcInN0YXRlXCI6IGZhbHNlfV19LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcIm5hbWVcIjogZGF0YS5sYWJlbHMuc2VsZWN0LnR5cGUucGVyc29uLCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInNlbGVjdG9yc1wiOiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbe1wic2VsZWN0b3JcIjogXCIucGVyc29uXCIsIFwic3RhdGVcIjogZmFsc2V9LCB7XCJzZWxlY3RvclwiOiBcIi5wbGFjZVwiLCBcInN0YXRlXCI6IHRydWV9XX0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1wibmFtZVwiOiBkYXRhLmxhYmVscy5zZWxlY3QudHlwZS5wbGFjZSwgXCJzZWxlY3RvcnNcIjogXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3tcInNlbGVjdG9yXCI6IFwiLnBsYWNlXCIsIFwic3RhdGVcIjogZmFsc2V9LCB7XCJzZWxlY3RvclwiOiBcIi5wZXJzb25cIiwgXCJzdGF0ZVwiOiB0cnVlfV19XG4gICAgICAgICAgICAgICAgXSdcbiAgICAgICAgICAgICAgICAgIHN1YnNjcmliZT1cImFkZENoYW5uZWxcIlxuICAgICAgICAgICAgICAgICAgZW1pdD1cImFkZENoYW5uZWxcIlxuICAgICAgICAgICAgICAgID48L3BiLXNlbGVjdC1mZWF0dXJlPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICpuZ0lmPVwiZGF0YS5kb2NzLmxlbmd0aCA+IDEgJiYgKCFkYXRhLmxhYmVscyB8fCAhZGF0YS5sYWJlbHMuc2VsZWN0LmxhYmVsKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuNy10ZXh0LXZpZXdlcl9fdG9vbGJhci1jb250YWluZXItZmxleFwiPlxuICAgICAgICAgICAgICAgIDxwYi1zZWxlY3QtZmVhdHVyZVxuICAgICAgICAgICAgICAgICAgaWQ9XCJzZWxlY3QtdmlldzJcIlxuICAgICAgICAgICAgICAgICAgbmFtZT1cInZpZXcyXCJcbiAgICAgICAgICAgICAgICAgIGxhYmVsPVwiTW9zdHJhIGVudGl0w6BcIlxuICAgICAgICAgICAgICAgICAgW2l0ZW1zXT0nW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcIm5hbWVcIjogXCJUdXR0b1wiLCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInNlbGVjdG9yc1wiOiBbe1wic2VsZWN0b3JcIjogXCIucGVyc29uXCIsIFwic3RhdGVcIjogZmFsc2V9LCB7XCJzZWxlY3RvclwiOiBcIi5wbGFjZVwiLCBcInN0YXRlXCI6IGZhbHNlfV19LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcIm5hbWVcIjogXCJQZXJzb25hZ2dpXCIsIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwic2VsZWN0b3JzXCI6IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt7XCJzZWxlY3RvclwiOiBcIi5wZXJzb25cIiwgXCJzdGF0ZVwiOiBmYWxzZX0sIHtcInNlbGVjdG9yXCI6IFwiLnBsYWNlXCIsIFwic3RhdGVcIjogdHJ1ZX1dfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XCJuYW1lXCI6IFwiTHVvZ2hpXCIsIFwic2VsZWN0b3JzXCI6IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt7XCJzZWxlY3RvclwiOiBcIi5wbGFjZVwiLCBcInN0YXRlXCI6IGZhbHNlfSwge1wic2VsZWN0b3JcIjogXCIucGVyc29uXCIsIFwic3RhdGVcIjogdHJ1ZX1dfVxuICAgICAgICAgICAgICAgIF0nXG4gICAgICAgICAgICAgICAgICBzdWJzY3JpYmU9XCJhZGRDaGFubmVsXCJcbiAgICAgICAgICAgICAgICAgIGVtaXQ9XCJhZGRDaGFubmVsXCJcbiAgICAgICAgICAgICAgICA+PC9wYi1zZWxlY3QtZmVhdHVyZT5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAqbmdJZj1cImRhdGEuZG9jcz8ubGVuZ3RoID4gMSAmJiBkYXRhLmRvY3NbMV0uY2hhbm5lbCAmJiBkYXRhLmZhY3NpbWlsZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkYXRhLmxhYmVscyAmJiBkYXRhLmxhYmVscy5pbmRleC5oaWRlXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm43LXRleHQtdmlld2VyX190b29sYmFyLWNvbnRhaW5lci1mbGV4XCI+XG4gICAgICAgICAgICAgICAgICA8cGFwZXItYnV0dG9uIHJhaXNlZD1cIlwiIChjbGljayk9XCJkaXNwbGF5SW5kZXgoKVwiXG4gICAgICAgICAgICAgICAgICAgID57eyAhaXNEaXNwbGF5ZWQgPyBkYXRhLmxhYmVscy5pbmRleC5oaWRlIDpcbiAgICAgICAgICAgICAgICAgICAgZGF0YS5sYWJlbHMuaW5kZXguc2hvdyB9fTwvcGFwZXItYnV0dG9uXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWRhdGEubGFiZWxzIHx8ICFkYXRhLmxhYmVscy5pbmRleC5oaWRlXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm43LXRleHQtdmlld2VyX190b29sYmFyLWNvbnRhaW5lci1mbGV4XCI+XG4gICAgICAgICAgICAgICAgICA8cGFwZXItYnV0dG9uIHJhaXNlZD1cIlwiIChjbGljayk9XCJkaXNwbGF5SW5kZXgoKVwiXG4gICAgICAgICAgICAgICAgICAgID57eyAhaXNEaXNwbGF5ZWQgPyAnSW5kaWNpJyA6ICdSaWFzc3VudG8nXG4gICAgICAgICAgICAgICAgICAgIH19PC9wYXBlci1idXR0b25cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRhdGEuZG9jcyAmJiBkYXRhLmRvd25sb2FkXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuNy10ZXh0LXZpZXdlcl9fdG9vbGJhci1jb250YWluZXItZmxleFwiPlxuICAgICAgICAgICAgICAgIDxwYi1kb3dubG9hZFxuICAgICAgICAgICAgICAgICAgW3R5cGVdPVwiZGF0YS5kb3dubG9hZCAmJiBkYXRhLmRvd25sb2FkLmZvcm1hdCA/IGRhdGEuZG93bmxvYWQuZm9ybWF0OiAnJ1wiXG4gICAgICAgICAgICAgICAgICBbc3JjXT1cImRhdGEuZG9jc1swXS5pZFwiXG4gICAgICAgICAgICAgICAgICBbdXJsXT1cImRhdGEuZG93bmxvYWQgJiYgZGF0YS5kb3dubG9hZC5maWxlID8gZGF0YS5kb3dubG9hZC5maWxlIDogJydcIlxuICAgICAgICAgICAgICAgICAgZGlhbG9nPVwiZG93bmxvYWREaWFsb2dcIlxuICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cImRhdGEuZG93bmxvYWQgJiYgZGF0YS5kb3dubG9hZC5mb3JtYXQgJiYgZGF0YS5kb3dubG9hZC5sYWJlbCA/IGRhdGEuZG93bmxvYWQubGFiZWwgKyAnICcgKyBkYXRhLmRvd25sb2FkLmZvcm1hdDogJydcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxwYXBlci1idXR0b24gcmFpc2VkPVwiXCJcbiAgICAgICAgICAgICAgICAgICAgPnt7ZGF0YS5kb3dubG9hZCAmJiBkYXRhLmRvd25sb2FkLmZvcm1hdCAmJlxuICAgICAgICAgICAgICAgICAgICBkYXRhLmRvd25sb2FkLmxhYmVsID8gZGF0YS5kb3dubG9hZC5sYWJlbCArICcgJyArXG4gICAgICAgICAgICAgICAgICAgIGRhdGEuZG93bmxvYWQuZm9ybWF0OiAnJ319PC9wYXBlci1idXR0b25cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8L3BiLWRvd25sb2FkPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8cGItcHJvZ3Jlc3NcbiAgICAgICAgICAgICAgc3Vic2NyaWJlPVwidHJhbnNjcmlwdGlvblwiXG4gICAgICAgICAgICAgIGluZGV0ZXJtaW5hdGU9XCJcIlxuICAgICAgICAgICAgICBib3R0b20taXRlbT1cImJvdHRvbS1pdGVtXCJcbiAgICAgICAgICAgICAgc3R5bGU9XCJ2aXNpYmlsaXR5OiBoaWRkZW5cIlxuICAgICAgICAgICAgPjwvcGItcHJvZ3Jlc3M+XG4gICAgICAgICAgPC9hcHAtdG9vbGJhcj5cbiAgICAgICAgPC9hcHAtaGVhZGVyPlxuXG4gICAgICAgIDxwYi1kcmF3ZXJcbiAgICAgICAgICB0b2dnbGU9XCJ0b2NUb2dnbGVcIlxuICAgICAgICAgIGNsYXNzPVwidG9jRHJhd2VyXCJcbiAgICAgICAgICBlbWl0PVwidG9jXCJcbiAgICAgICAgICBzdWJzY3JpYmU9XCJ0cmFuc2NyaXB0aW9uXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcmF3ZXItY29udGVudFwiPlxuICAgICAgICAgICAgPGgzPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGF0YS5sYWJlbHMgJiYgZGF0YS5sYWJlbHMudG9jXCI+XG4gICAgICAgICAgICAgICAge3tkYXRhLmxhYmVscy50b2N9fVxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFkYXRhLmxhYmVscyB8fCAhZGF0YS5sYWJlbHMudG9jXCI+XG4gICAgICAgICAgICAgICAgPHBiLWkxOG4ga2V5PVwiZG9jdW1lbnQuY29udGVudHNcIj5Db250ZW50czwvcGItaTE4bj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2gzPlxuICAgICAgICAgICAgPHBiLWxvYWRcbiAgICAgICAgICAgICAgKm5nSWY9XCJkYXRhLmRvY3NcIlxuICAgICAgICAgICAgICBpZD1cInRvY1wiXG4gICAgICAgICAgICAgIHVybD1cImFwaS9kb2N1bWVudC97ZG9jfS9jb250ZW50cz90YXJnZXQ9dHJhbnNjcmlwdGlvbiZhbXA7aWNvbnM9dHJ1ZVwiXG4gICAgICAgICAgICAgIFtzcmNdPVwiZGF0YS5kb2NzWzBdLmlkXCJcbiAgICAgICAgICAgICAgc3Vic2NyaWJlPVwidG9jXCJcbiAgICAgICAgICAgICAgZW1pdD1cInRvY1wiXG4gICAgICAgICAgICAgIGV4cGFuZD1cImV4cGFuZFwiXG4gICAgICAgICAgICAgIGF1dG89XCJhdXRvXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRhdGEubGFiZWxzICYmIGRhdGEubGFiZWxzLmxvYWRpbmdcIj5cbiAgICAgICAgICAgICAgICB7e2RhdGEubGFiZWxzLmxvYWRpbmd9fVxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFkYXRhLmxhYmVscyB8fCAhZGF0YS5sYWJlbHMubG9hZGluZ1wiPlxuICAgICAgICAgICAgICAgIDxwYi1pMThuIGtleT1cImRpYWxvZ3MubG9hZGluZ1wiPkxvYWRpbmc8L3BiLWkxOG4+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9wYi1sb2FkPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3BiLWRyYXdlcj5cbiAgICAgICAgPG1haW4gY2xhc3M9XCJjb250ZW50LWJvZHlcIj5cbiAgICAgICAgICA8cGItZmFjc2ltaWxlXG4gICAgICAgICAgICAqbmdJZj1cImRhdGEuZmFjc2ltaWxlXCJcbiAgICAgICAgICAgIGlkPVwiZmFjc2ltaWxlXCJcbiAgICAgICAgICAgIFthdHRyLmJhc2UtdXJpXT1cImRhdGEuZmFjc2ltaWxlLnVyaVwiXG4gICAgICAgICAgICBzdWJzY3JpYmU9XCJ0cmFuc2NyaXB0aW9uXCJcbiAgICAgICAgICAgIGRlZmF1bHQtem9vbS1sZXZlbD1cIjBcIlxuICAgICAgICAgICAgc2hvdy1uYXZpZ2F0aW9uLWNvbnRyb2w9XCJzaG93LW5hdmlnYXRpb24tY29udHJvbFwiXG4gICAgICAgICAgICBzaG93LW5hdmlnYXRvcj1cInNob3ctbmF2aWdhdG9yXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPC9wYi1mYWNzaW1pbGU+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZG9jIG9mIGRhdGEuZG9jczsgaW5kZXggYXMgJGk7XCI+XG4gICAgICAgICAgICA8IS0tIE5PIENIQU5ORUwgLS0+XG4gICAgICAgICAgICA8cGItdmlld1xuICAgICAgICAgICAgICAqbmdJZj1cIiFkb2MuY2hhbm5lbFwiXG4gICAgICAgICAgICAgIGlkPVwidmlld3t7ICRpIH19XCJcbiAgICAgICAgICAgICAgW3NyY109XCJkb2MuaWRcIlxuICAgICAgICAgICAgICBzdWJzY3JpYmU9XCJ0cmFuc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgZW1pdD1cInRyYW5zY3JpcHRpb25cIlxuICAgICAgICAgICAgICBbYXR0ci53YWl0LWZvcl09XCJkYXRhLmZhY3NpbWlsZSA/ICcjZmFjc2ltaWxlJyA6IG51bGxcIlxuICAgICAgICAgICAgICBjb2x1bW4tc2VwYXJhdG9yPVwiLnRlaS1jYlwiXG4gICAgICAgICAgICAgIGFwcGVuZC1mb290bm90ZXM9XCJhcHBlbmQtZm9vdG5vdGVzXCJcbiAgICAgICAgICAgICAgdmlldz1cInt7IGRvYy52aWV3IH19XCJcbiAgICAgICAgICAgID48L3BiLXZpZXc+XG4gICAgICAgICAgICA8IS0tIFdJVEggQ0hBTk5FTCAvIE1VUlVDQSBERU1PIC0tPlxuICAgICAgICAgICAgPHBiLXZpZXdcbiAgICAgICAgICAgICAgKm5nSWY9XCJkb2MuY2hhbm5lbCAmJiBkb2MudHJhbnNsYXRpb25cIlxuICAgICAgICAgICAgICBpZD1cInZpZXd7eyAkaSB9fVwiXG4gICAgICAgICAgICAgIFtzcmNdPVwiZG9jLmlkXCJcbiAgICAgICAgICAgICAgeHBhdGg9XCIvL3RleHRbQHR5cGU9J3NvdXJjZSddXCJcbiAgICAgICAgICAgICAgZW1pdD1cInt7IGRvYy5jaGFubmVsIH19XCJcbiAgICAgICAgICAgICAgc3Vic2NyaWJlPVwie3sgZG9jLmNoYW5uZWwgfX1cIlxuICAgICAgICAgICAgICB2aWV3PVwie3sgZG9jLnZpZXcgfX1cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9wYi12aWV3PlxuICAgICAgICAgICAgPHBiLXZpZXdcbiAgICAgICAgICAgICAgKm5nSWY9XCJkb2MuY2hhbm5lbCAmJiBkb2MudHJhbnNsYXRpb25cIlxuICAgICAgICAgICAgICBpZD1cInZpZXd7eyAkaSB9fVwiXG4gICAgICAgICAgICAgIFtzcmNdPVwiZG9jLmlkXCJcbiAgICAgICAgICAgICAgeHBhdGg9XCJ7eyBkb2MueHBhdGggfX1cIlxuICAgICAgICAgICAgICBlbWl0PVwie3sgZG9jLmNoYW5uZWwgfX1cIlxuICAgICAgICAgICAgICBzdWJzY3JpYmU9XCJ7eyBkb2MuY2hhbm5lbCB9fVwiXG4gICAgICAgICAgICAgIHZpZXc9XCJ7eyBkb2MudmlldyB9fVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxwYi1wYXJhbSBuYW1lPVwibW9kZVwiIHZhbHVlPVwiY29tbWVudGFyeVwiPjwvcGItcGFyYW0+XG4gICAgICAgICAgICA8L3BiLXZpZXc+XG4gICAgICAgICAgICA8IS0tIFdJVEggQ0hBTk5FTCAvIGFkZENoYW5uZWwgLS0+XG4gICAgICAgICAgICA8cGItdmlld1xuICAgICAgICAgICAgICBbaGlkZGVuXT1cImlzRGlzcGxheWVkXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgICAgICAgICpuZ0lmPVwiZG9jLmNoYW5uZWwgJiYgIWRvYy50cmFuc2xhdGlvblwiXG4gICAgICAgICAgICAgIGlkPVwidmlld3t7ICRpIH19XCJcbiAgICAgICAgICAgICAgW3NyY109XCJkb2MuaWRcIlxuICAgICAgICAgICAgICBbb2RkXT1cImRvYy5vZGRcIlxuICAgICAgICAgICAgICBlbWl0PVwiYWRkQ2hhbm5lbFwiXG4gICAgICAgICAgICAgIHN1YnNjcmliZT1cImFkZENoYW5uZWxcIlxuICAgICAgICAgICAgICB2aWV3PVwie3sgZG9jLnZpZXcgfX1cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8cGItcGFyYW0gbmFtZT1cIm1vZGVcIiB2YWx1ZT1cImNvbW1lbnRhcnlcIj48L3BiLXBhcmFtPlxuICAgICAgICAgICAgPC9wYi12aWV3PlxuXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZG9jLmNoYW5uZWwgJiYgIWRvYy50cmFuc2xhdGlvblwiPlxuICAgICAgICAgICAgICA8IS0tICAtLT5cbiAgICAgICAgICAgICAgPHBiLXZpZXdcbiAgICAgICAgICAgICAgICBbaGlkZGVuXT1cIiFpc0Rpc3BsYXllZFwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJkb2MuY2hhbm5lbCAmJiAhZG9jLnRyYW5zbGF0aW9uXCJcbiAgICAgICAgICAgICAgICBbc3JjXT1cImRvYy5pZFwiXG4gICAgICAgICAgICAgICAgW29kZF09XCJkb2Mub2RkXCJcbiAgICAgICAgICAgICAgICBzdWJzY3JpYmU9XCJpbmRleFwiXG4gICAgICAgICAgICAgICAgZW1pdD1cImxldHRlclwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8cGItcGFyYW0gbmFtZT1cIm1vZGVcIiB2YWx1ZT1cImZhY2V0c1wiPjwvcGItcGFyYW0+XG4gICAgICAgICAgICAgIDwvcGItdmlldz5cbiAgICAgICAgICAgICAgPCEtLSAgLS0+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9tYWluPlxuICAgICAgPC9hcHAtaGVhZGVyLWxheW91dD5cbiAgICA8L2FwcC1kcmF3ZXItbGF5b3V0PlxuICA8L3BiLXBhZ2U+XG48L2Rpdj5cbiJdfQ==
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC12aWV3ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kdi1jb21wb25lbnRzLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvdGV4dC12aWV3ZXIvdGV4dC12aWV3ZXIudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kdi1jb21wb25lbnRzLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvdGV4dC12aWV3ZXIvdGV4dC12aWV3ZXIuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw2QkFBNkI7QUFDN0IsaUJBQWlCO0FBQ2pCLDZCQUE2QjtBQUM3QixPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQzs7O0FBbUV6RCxNQUFNLE9BQU8sbUJBQW1CO0lBTzlCO1FBcUJBLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBcEJsQixRQUFRLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxFQUFFLEdBQUcsRUFBRTtZQUM5QyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxFQUFFLENBQUMsRUFBTyxFQUFFLEVBQUU7Z0JBQ3JELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUM5RCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFO1lBQ2hDLE1BQU0sQ0FBQyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDM0MsQ0FBQyxDQUFDLFlBQVksQ0FDWixLQUFLLEVBQ0wsb0RBQW9ELENBQ3JELENBQUM7WUFDRixDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztZQUNqQyxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7WUFDL0IsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDOUI7SUFDSCxDQUFDO0lBSUQsc0JBQXNCLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJO1FBQ3ZDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLE9BQVksQ0FBQztZQUNqQixJQUFJLElBQUksS0FBSyxTQUFTLEVBQUU7Z0JBQ3RCLElBQ0UsUUFBUTtxQkFDTCxhQUFhLENBQUMsd0JBQXdCLENBQUM7cUJBQ3ZDLFVBQVUsQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLEVBQzNDO29CQUNBLE1BQU0sU0FBUyxHQUFHLFFBQVE7eUJBQ3ZCLGFBQWEsQ0FBQyx3QkFBd0IsQ0FBQzt5QkFDdkMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxDQUFDO29CQUUvQyxNQUFNLFdBQVcsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNO29CQUU5RCxNQUFNLGNBQWMsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztvQkFFdkQsT0FBTyxHQUFHLFFBQVE7eUJBQ2YsYUFBYSxDQUFDLElBQUksQ0FBQzt5QkFDbkIsVUFBVSxDQUFDLGFBQWEsQ0FBQyxJQUFJLGNBQWMsRUFBRSxDQUFDLENBQUM7aUJBQ25EO2FBQ0Y7aUJBQU0sSUFBSSxJQUFJLEtBQUssUUFBUSxFQUFFO2dCQUM1QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO2dCQUN6QixPQUFPLEdBQUcsUUFBUTtxQkFDZixhQUFhLENBQUMsbUJBQW1CLElBQUksRUFBRSxDQUFDO3FCQUN4QyxVQUFVLENBQUMsYUFBYSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQzthQUN4QztZQUVELE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsbUJBQW1CLElBQUksRUFBRSxDQUFDLENBQUM7WUFDcEUsSUFBSSxPQUFPLEVBQUU7Z0JBQ1gsU0FBUyxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDO2FBQ3pDO1FBQ0gsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssS0FBSyxFQUFFO1lBQzlCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1NBQ3pCOztZQUFNLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxjQUFjO1FBQ1osbUJBQW1CLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztJQUNyQyxDQUFDO0lBRUQsT0FBTyxDQUFDLE9BQU87UUFDYiwyREFBMkQ7UUFDM0QsMEJBQTBCO1FBQzFCLCtCQUErQjtRQUMvQixJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssS0FBSyxFQUFFO1lBQzlCLElBQUksTUFBTSxDQUFDO1lBQ1gsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ1YsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUM3QyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxLQUFLLGNBQWMsRUFBRTtvQkFDOUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQzFCO3FCQUFNO29CQUNMLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQ1I7YUFDRjtZQUNELElBQ0UsTUFBTSxDQUFDLEtBQUs7bUJBQ1QsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7dUJBQ2xDLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQ3hDO2dCQUNBLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO2dCQUN4QixJQUFJLENBQUMsc0JBQXNCLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO2FBQ3JFO1NBQ0Y7O1lBQU0sSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDbEMsQ0FBQzs7QUE3Rk0sMkJBQU8sR0FBRyxLQUFLLENBQUM7Z0hBTFosbUJBQW1CO29HQUFuQixtQkFBbUIsOEZDdEVoQywydmRBa1lBOzJGRDVUYSxtQkFBbUI7a0JBSi9CLFNBQVM7K0JBQ0UsZ0JBQWdCOzBFQUlqQixJQUFJO3NCQUFaLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFRFWFQtVklFV0VSLnRzXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogSW50ZXJmYWNlIGZvciBUZXh0Vmlld2VyQ29tcG9uZW50J3MgXCJkYXRhXCJcbiAqIEBwcm9wZXJ0eSBlbmRwb2ludCAocmVxdWlyZWQpXG4gKiBAcHJvcGVydHkgZG9jIChyZXF1aXJlZClcbiAqIEBwcm9wZXJ0eSBmYWNzaW1pbGUgKG9wdGlvbmFsKVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRleHRWaWV3ZXJEYXRhIHtcbiAgLypcbiAgICogVEVJUHViIHNlcnZlciBlbmRwb2ludFxuICAgKi9cbiAgZW5kcG9pbnQ6IHN0cmluZztcbiAgLypcbiAgICogWE1MIGFuZCBPREQgcGF0aHNcbiAgICovXG4gIGRvY3M6IHtcbiAgICB4bWw6IHN0cmluZztcbiAgICBvZGQ6IHN0cmluZztcbiAgICBpZDogc3RyaW5nO1xuICAgIHZpZXc6IHN0cmluZztcbiAgICBjaGFubmVsPzogc3RyaW5nO1xuICAgIHRyYW5zbGF0aW9uPzogYm9vbGVhbjtcbiAgICBkb3dubG9hZD86IHN0cmluZztcbiAgfVtdO1xuXG4gIC8qXG4gICAqIERPV05MT0FEIEZJTEVTXG4gICAqL1xuICBkb3dubG9hZD86IHtcbiAgICBsYWJlbD86IHN0cmluZztcbiAgICBmaWxlPzogc3RyaW5nO1xuICAgIGZvcm1hdD86IHN0cmluZztcbiAgfTtcblxuICAvKlxuICAgKiBMQUJFTFMgZm9yIFRPT0xCQVJcbiAgICovXG4gIGxhYmVscz86IHtcbiAgICB2aWV3Pzogc3RyaW5nO1xuICAgIHNlbGVjdD86IHtcbiAgICAgIGxhYmVsPzogc3RyaW5nO1xuICAgICAgdHlwZT86IHtcbiAgICAgICAgW2tleTogc3RyaW5nXTogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIGluZGV4Pzoge1xuICAgICAgc2hvdz86IHN0cmluZztcbiAgICAgIGhpZGU/OiBzdHJpbmc7XG4gICAgfTtcbiAgICB0b2M/OiBzdHJpbmc7XG4gICAgbG9hZGluZz86IHN0cmluZztcbiAgfTtcbiAgLypcbiAgICogSUlJRiBzZXJ2ZXIgZW5kcG9pbnRcbiAgICovXG4gIGZhY3NpbWlsZT86IGFueTtcbiAgLyoqXG4gICAqIGFkZGl0aW9uYWwgaHRtbCBjbGFzc2VzXG4gICAqL1xuICBjbGFzc2VzPzogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduNy10ZXh0LXZpZXdlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi90ZXh0LXZpZXdlci5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgVGV4dFZpZXdlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGRhdGE6IFRleHRWaWV3ZXJEYXRhO1xuXG4gIEBJbnB1dCgpIGVtaXQ6IGFueTtcblxuICBzdGF0aWMgX2xvYWRlZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3BiLXBhZ2UtcmVhZHknLCAoKSA9PiB7XG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdwYi1lbmQtdXBkYXRlJywgKGV2OiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5zY3JvbGxFbGVtZW50c0ludG9WaWV3KGV2LmRldGFpbCwgJ2NoYXB0ZXInLCAnI3ZpZXcxJyk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICghVGV4dFZpZXdlckNvbXBvbmVudC5fbG9hZGVkKSB7XG4gICAgICBjb25zdCBzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4gICAgICBzLnNldEF0dHJpYnV0ZShcbiAgICAgICAgJ3NyYycsXG4gICAgICAgICcvYXNzZXRzL3BiLWNvbXBvbmVudHMvZGlzdC9wYi1jb21wb25lbnRzLWJ1bmRsZS5qcydcbiAgICAgICk7XG4gICAgICBzLnNldEF0dHJpYnV0ZSgndHlwZScsICdtb2R1bGUnKTtcbiAgICAgIHMub25sb2FkID0gdGhpcy5vblNjcmlwdExvYWRlZDtcbiAgICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQocyk7XG4gICAgfVxuICB9XG5cbiAgaXNEaXNwbGF5ZWQgPSBmYWxzZTtcblxuICBzY3JvbGxFbGVtZW50c0ludG9WaWV3KHRhcmdldCwgdHlwZSwgdmlldykge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgbGV0IGVsZW1lbnQ6IGFueTtcbiAgICAgIGlmICh0eXBlID09PSAnY2hhcHRlcicpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGRvY3VtZW50XG4gICAgICAgICAgICAucXVlcnlTZWxlY3RvcignLm43LXRleHQtdmlld2VyICN2aWV3MCcpXG4gICAgICAgICAgICAuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdwYi1oaWdobGlnaHQnKVxuICAgICAgICApIHtcbiAgICAgICAgICBjb25zdCBoaWdobGlnaHQgPSBkb2N1bWVudFxuICAgICAgICAgICAgLnF1ZXJ5U2VsZWN0b3IoJy5uNy10ZXh0LXZpZXdlciAjdmlldzAnKVxuICAgICAgICAgICAgLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgncGItaGlnaGxpZ2h0Jyk7XG5cbiAgICAgICAgICBjb25zdCBoaWdobGlnaHRJZCA9IGhpZ2hsaWdodFtoaWdobGlnaHQubGVuZ3RoIC0gMV0uaWQ7IC8vIHMueFxuXG4gICAgICAgICAgY29uc3QgZnJhZ21lbnROdW1iZXIgPSBoaWdobGlnaHRJZC5yZXBsYWNlKCcuJywgJ1xcXFwuJyk7XG5cbiAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnRcbiAgICAgICAgICAgIC5xdWVyeVNlbGVjdG9yKHZpZXcpXG4gICAgICAgICAgICAuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKGAjJHtmcmFnbWVudE51bWJlcn1gKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh0eXBlID09PSAnZW50aXR5Jykge1xuICAgICAgICBjb25zdCBrZXkgPSB0YXJnZXQuX19rZXk7XG4gICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudFxuICAgICAgICAgIC5xdWVyeVNlbGVjdG9yKGAubjctdGV4dC12aWV3ZXIgJHt2aWV3fWApXG4gICAgICAgICAgLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihgIyR7a2V5fWApO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGAubjctdGV4dC12aWV3ZXIgJHt2aWV3fWApO1xuICAgICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgICAgY29udGFpbmVyLnNjcm9sbFRvcCA9IGVsZW1lbnQub2Zmc2V0VG9wO1xuICAgICAgfVxuICAgIH0sIDMwMCk7XG4gIH1cblxuICBkaXNwbGF5SW5kZXgoKSB7XG4gICAgaWYgKHRoaXMuaXNEaXNwbGF5ZWQgPT09IGZhbHNlKSB7XG4gICAgICB0aGlzLmlzRGlzcGxheWVkID0gdHJ1ZTtcbiAgICB9IGVsc2UgdGhpcy5pc0Rpc3BsYXllZCA9IGZhbHNlO1xuICB9XG5cbiAgb25TY3JpcHRMb2FkZWQoKSB7XG4gICAgVGV4dFZpZXdlckNvbXBvbmVudC5fbG9hZGVkID0gdHJ1ZTtcbiAgfVxuXG4gIG9uQ2xpY2socGF5bG9hZCkge1xuICAgIC8vIEZJWE1FOiBtZXR0ZXJlIGxvZ2ljYSBvbkNsaWNrIHN1bCBib2lsZXJwbGF0ZSAvIHByb2dldHRvXG4gICAgLy8gaWYgKCF0aGlzLmVtaXQpIHJldHVybjtcbiAgICAvLyB0aGlzLmVtaXQoJ2NsaWNrJywgcGF5bG9hZCk7XG4gICAgaWYgKHRoaXMuaXNEaXNwbGF5ZWQgPT09IGZhbHNlKSB7XG4gICAgICBsZXQgdGFyZ2V0O1xuICAgICAgbGV0IGkgPSAwO1xuICAgICAgd2hpbGUgKCF0YXJnZXQgJiYgaSA8IHBheWxvYWQucGF0aC5sZW5ndGggLSAxKSB7XG4gICAgICAgIGlmIChwYXlsb2FkLnBhdGhbaV0udGFnTmFtZSA9PT0gJ1BCLUhJR0hMSUdIVCcpIHtcbiAgICAgICAgICB0YXJnZXQgPSBwYXlsb2FkLnBhdGhbaV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaSArPSAxO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIHRhcmdldC5fX2tleVxuICAgICAgICAmJiAodGFyZ2V0LmNsYXNzTmFtZS5pbmNsdWRlcygncGVyc29uJylcbiAgICAgICAgICB8fCB0YXJnZXQuY2xhc3NOYW1lLmluY2x1ZGVzKCdwbGFjZScpKVxuICAgICAgKSB7XG4gICAgICAgIHRoaXMuaXNEaXNwbGF5ZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLnNjcm9sbEVsZW1lbnRzSW50b1ZpZXcodGFyZ2V0LCAnZW50aXR5JywgJyN0ZXh0LXZpZXdlci1pbmRleCcpO1xuICAgICAgfVxuICAgIH0gZWxzZSB0aGlzLmlzRGlzcGxheWVkID0gZmFsc2U7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJuNy10ZXh0LXZpZXdlciB7e2RhdGEuY2xhc3NlcyB8fCAnJ319XCJcbiAgKm5nSWY9XCJkYXRhICYmIGRhdGEuZW5kcG9pbnRcIlxuPlxuXG4gIDxwYi1wYWdlIFthdHRyLmVuZHBvaW50XT1cImRhdGEuZW5kcG9pbnRcIiBhcGktdmVyc2lvbj1cIjEuMC4wXCI+XG4gICAgPHBiLWRvY3VtZW50XG4gICAgICAqbmdGb3I9XCJsZXQgZG9jIG9mIGRhdGEuZG9jc1wiXG4gICAgICBbcGF0aF09XCJkb2MueG1sXCJcbiAgICAgIFtvZGRdPVwiZG9jLm9kZFwiXG4gICAgICBbaWRdPVwiZG9jLmlkXCJcbiAgICA+XG4gICAgPC9wYi1kb2N1bWVudD5cblxuICAgIDxhcHAtZHJhd2VyLWxheW91dCBmb3JjZS1uYXJyb3c9XCJmb3JjZS1uYXJyb3dcIiBuYXJyb3c9XCJcIj5cbiAgICAgIDxhcHAtaGVhZGVyLWxheW91dD5cbiAgICAgICAgPGFwcC1oZWFkZXJcbiAgICAgICAgICBmaXhlZD1cImZpeGVkXCJcbiAgICAgICAgICBkYXRhLXRlbXBsYXRlPVwiYnJvd3NlOmZpeC1saW5rc1wiXG4gICAgICAgICAgc3R5bGU9XCJcbiAgICAgICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDBtcztcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMHB4LCAwcHgsIDBweCk7XG4gICAgICAgICAgICBsZWZ0OiAwcHg7XG4gICAgICAgICAgICByaWdodDogMC4zOTk5OTRweDtcbiAgICAgICAgICBcIlxuICAgICAgICA+XG4gICAgICAgICAgPGFwcC10b29sYmFyXG4gICAgICAgICAgICBjbGFzcz1cInRvb2xiYXJcIlxuICAgICAgICAgICAgc3RpY2t5PVwic3RpY2t5XCJcbiAgICAgICAgICAgIHN0eWxlPVwidHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwcHgsIDBweCwgMHB4KVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHBhcGVyLWljb24tYnV0dG9uXG4gICAgICAgICAgICAgICpuZ0lmPVwiZGF0YS5kb2NzLmxlbmd0aCA9PT0gMVwiXG4gICAgICAgICAgICAgIGlkPVwidG9jVG9nZ2xlXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJ0b2MtdG9nZ2xlXCJcbiAgICAgICAgICAgICAgaWNvbj1cImljb25zOnZpZXctbGlzdFwiXG4gICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgICBhcmlhLWRpc2FibGVkPVwiZmFsc2VcIlxuICAgICAgICAgICAgPjwvcGFwZXItaWNvbi1idXR0b24+XG5cbiAgICAgICAgICAgIDxwYi10b2dnbGUtZmVhdHVyZVxuICAgICAgICAgICAgICAqbmdJZj1cImRhdGEuZG9jcy5sZW5ndGggPT09IDFcIlxuICAgICAgICAgICAgICBuYW1lPVwiaGlnaGxpZ2h0MVwiXG4gICAgICAgICAgICAgIHNlbGVjdG9yPVwidGVpLWFwcCxwYi1wb3BvdmVyLHBiLWhpZ2hsaWdodFwiXG4gICAgICAgICAgICAgIGRlZmF1bHQ9XCJvZmZcIlxuICAgICAgICAgICAgICBhY3Rpb249XCJkaXNhYmxlXCJcbiAgICAgICAgICAgICAgZW1pdD1cInRyYW5zY3JpcHRpb25cIlxuICAgICAgICAgICAgICBzdWJzY3JpYmU9XCJ0cmFuc2NyaXB0aW9uXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRhdGEubGFiZWxzICYmIGRhdGEubGFiZWxzLnZpZXdcIj5cbiAgICAgICAgICAgICAgICB7e2RhdGEubGFiZWxzLnZpZXd9fVxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFkYXRhLmxhYmVscyB8fCAhZGF0YS5sYWJlbHMudmlld1wiPlxuICAgICAgICAgICAgICAgIDxwYi1pMThuIGtleT1cImRvY3VtZW50LnBsYWluXCI+UGxhaW4gUmVhZGluZyBWaWV3PC9wYi1pMThuPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvcGItdG9nZ2xlLWZlYXR1cmU+XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgKm5nSWY9XCJkYXRhLmRvY3M/Lmxlbmd0aCA9PSAxIHx8IGRhdGEuZG9jc1swXS50cmFuc2xhdGlvblwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxwYi16b29tXG4gICAgICAgICAgICAgICAgZW1pdD1cInRyYW5zY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cImluXCJcbiAgICAgICAgICAgICAgICBpY29uPVwiaWNvbnM6em9vbS1pblwiXG4gICAgICAgICAgICAgID48L3BiLXpvb20+XG4gICAgICAgICAgICAgIDxwYi16b29tXG4gICAgICAgICAgICAgICAgZW1pdD1cInRyYW5zY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cIm91dFwiXG4gICAgICAgICAgICAgICAgaWNvbj1cImljb25zOnpvb20tb3V0XCJcbiAgICAgICAgICAgICAgPjwvcGItem9vbT5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICpuZ0lmPVwiIWRhdGEuZG9jc1swXS50cmFuc2xhdGlvbiAmJiBkYXRhLmRvY3M/Lmxlbmd0aCA9PSAxXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHBiLW5hdmlnYXRpb25cbiAgICAgICAgICAgICAgICBlbWl0PVwidHJhbnNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAga2V5Ym9hcmQ9XCJsZWZ0XCJcbiAgICAgICAgICAgICAgICBzdWJzY3JpYmU9XCJ0cmFuc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJiYWNrd2FyZFwiXG4gICAgICAgICAgICAgICAgdW5pdD1cInBhZ2VcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHBhcGVyLWljb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgICBpY29uPVwiaWNvbnM6Y2hldnJvbi1sZWZ0XCJcbiAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgICAgICAgIGFyaWEtZGlzYWJsZWQ9XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgPjwvcGFwZXItaWNvbi1idXR0b24+XG4gICAgICAgICAgICAgIDwvcGItbmF2aWdhdGlvbj5cbiAgICAgICAgICAgICAgPHBiLW5hdmlnYXRpb25cbiAgICAgICAgICAgICAgICBlbWl0PVwidHJhbnNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAga2V5Ym9hcmQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgc3Vic2NyaWJlPVwidHJhbnNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwiZm9yd2FyZFwiXG4gICAgICAgICAgICAgICAgdW5pdD1cInBhZ2VcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHBhcGVyLWljb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgICBpY29uPVwiaWNvbnM6Y2hldnJvbi1yaWdodFwiXG4gICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICAgICAgICBhcmlhLWRpc2FibGVkPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgID48L3BhcGVyLWljb24tYnV0dG9uPlxuICAgICAgICAgICAgICA8L3BiLW5hdmlnYXRpb24+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRhdGEuZG9jcz8ubGVuZ3RoID4gMVwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibjctdGV4dC12aWV3ZXJfX3Rvb2xiYXItY29udGFpbmVyLWZsZXhcIj5cbiAgICAgICAgICAgICAgICA8cGFwZXItaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZGF0YS5kb2NzPy5sZW5ndGggPiAxXCJcbiAgICAgICAgICAgICAgICAgIGlkPVwidG9jVG9nZ2xlXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwidG9jLXRvZ2dsZVwiXG4gICAgICAgICAgICAgICAgICBpY29uPVwiaWNvbnM6dmlldy1saXN0XCJcbiAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgICAgICAgIGFyaWEtZGlzYWJsZWQ9XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgPjwvcGFwZXItaWNvbi1idXR0b24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgKm5nSWY9XCIhZGF0YS5kb2NzWzBdLnRyYW5zbGF0aW9uICYmIGRhdGEuZG9jcz8ubGVuZ3RoID4gMVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuNy10ZXh0LXZpZXdlcl9fdG9vbGJhci1jb250YWluZXItZmxleFwiPlxuICAgICAgICAgICAgICAgIDxwYi1uYXZpZ2F0aW9uXG4gICAgICAgICAgICAgICAgICBlbWl0PVwidHJhbnNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgICBrZXlib2FyZD1cImxlZnRcIlxuICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlPVwidHJhbnNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJiYWNrd2FyZFwiXG4gICAgICAgICAgICAgICAgICB1bml0PVwicGFnZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPHBhcGVyLWljb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGljb249XCJpY29uczpjaGV2cm9uLWxlZnRcIlxuICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1kaXNhYmxlZD1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgID48L3BhcGVyLWljb24tYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvcGItbmF2aWdhdGlvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm43LXRleHQtdmlld2VyX190b29sYmFyLWNvbnRhaW5lci1mbGV4XCI+XG4gICAgICAgICAgICAgICAgPHBiLW5hdmlnYXRpb25cbiAgICAgICAgICAgICAgICAgIGVtaXQ9XCJ0cmFuc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgIGtleWJvYXJkPVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlPVwidHJhbnNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJmb3J3YXJkXCJcbiAgICAgICAgICAgICAgICAgIHVuaXQ9XCJwYWdlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8cGFwZXItaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgaWNvbj1cImljb25zOmNoZXZyb24tcmlnaHRcIlxuICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1kaXNhYmxlZD1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgID48L3BhcGVyLWljb24tYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvcGItbmF2aWdhdGlvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAqbmdJZj1cImRhdGEuZG9jcz8ubGVuZ3RoID4gMSAmJiAhZGF0YS5kb2NzWzBdLnRyYW5zbGF0aW9uXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm43LXRleHQtdmlld2VyX190b29sYmFyLWNvbnRhaW5lci1mbGV4XCI+XG4gICAgICAgICAgICAgICAgPHBiLXpvb21cbiAgICAgICAgICAgICAgICAgIGVtaXQ9XCJ0cmFuc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cImluXCJcbiAgICAgICAgICAgICAgICAgIGljb249XCJpY29uczp6b29tLWluXCJcbiAgICAgICAgICAgICAgICA+PC9wYi16b29tPlxuXG4gICAgICAgICAgICAgICAgPHBiLXpvb21cbiAgICAgICAgICAgICAgICAgIGVtaXQ9XCJ0cmFuc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cIm91dFwiXG4gICAgICAgICAgICAgICAgICBpY29uPVwiaWNvbnM6em9vbS1vdXRcIlxuICAgICAgICAgICAgICAgID48L3BiLXpvb20+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgKm5nSWY9XCJkYXRhLmRvY3MubGVuZ3RoID4gMSAmJiBkYXRhLmxhYmVscyAmJiBkYXRhLmxhYmVscy5zZWxlY3QubGFiZWxcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibjctdGV4dC12aWV3ZXJfX3Rvb2xiYXItY29udGFpbmVyLWZsZXhcIj5cbiAgICAgICAgICAgICAgICA8cGItc2VsZWN0LWZlYXR1cmVcbiAgICAgICAgICAgICAgICAgIGlkPVwic2VsZWN0LXZpZXcyXCJcbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJ2aWV3MlwiXG4gICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiZGF0YS5sYWJlbHMgJiYgZGF0YS5sYWJlbHMuc2VsZWN0LmxhYmVsID8gZGF0YS5sYWJlbHMuc2VsZWN0LmxhYmVsIDogJ01vc3RyYSBlbnRpdMOgJ1wiXG4gICAgICAgICAgICAgICAgICBbaXRlbXNdPSdbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1wibmFtZVwiOiBkYXRhLmxhYmVscy5zZWxlY3QudHlwZS5hbGwsIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwic2VsZWN0b3JzXCI6IFt7XCJzZWxlY3RvclwiOiBcIi5wZXJzb25cIiwgXCJzdGF0ZVwiOiBmYWxzZX0sIHtcInNlbGVjdG9yXCI6IFwiLnBsYWNlXCIsIFwic3RhdGVcIjogZmFsc2V9XX0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1wibmFtZVwiOiBkYXRhLmxhYmVscy5zZWxlY3QudHlwZS5wZXJzb24sIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwic2VsZWN0b3JzXCI6IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt7XCJzZWxlY3RvclwiOiBcIi5wZXJzb25cIiwgXCJzdGF0ZVwiOiBmYWxzZX0sIHtcInNlbGVjdG9yXCI6IFwiLnBsYWNlXCIsIFwic3RhdGVcIjogdHJ1ZX1dfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XCJuYW1lXCI6IGRhdGEubGFiZWxzLnNlbGVjdC50eXBlLnBsYWNlLCBcInNlbGVjdG9yc1wiOiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbe1wic2VsZWN0b3JcIjogXCIucGxhY2VcIiwgXCJzdGF0ZVwiOiBmYWxzZX0sIHtcInNlbGVjdG9yXCI6IFwiLnBlcnNvblwiLCBcInN0YXRlXCI6IHRydWV9XX1cbiAgICAgICAgICAgICAgICBdJ1xuICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlPVwiYWRkQ2hhbm5lbFwiXG4gICAgICAgICAgICAgICAgICBlbWl0PVwiYWRkQ2hhbm5lbFwiXG4gICAgICAgICAgICAgICAgPjwvcGItc2VsZWN0LWZlYXR1cmU+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgKm5nSWY9XCJkYXRhLmRvY3MubGVuZ3RoID4gMSAmJiAoIWRhdGEubGFiZWxzIHx8ICFkYXRhLmxhYmVscy5zZWxlY3QubGFiZWwpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm43LXRleHQtdmlld2VyX190b29sYmFyLWNvbnRhaW5lci1mbGV4XCI+XG4gICAgICAgICAgICAgICAgPHBiLXNlbGVjdC1mZWF0dXJlXG4gICAgICAgICAgICAgICAgICBpZD1cInNlbGVjdC12aWV3MlwiXG4gICAgICAgICAgICAgICAgICBuYW1lPVwidmlldzJcIlxuICAgICAgICAgICAgICAgICAgbGFiZWw9XCJNb3N0cmEgZW50aXTDoFwiXG4gICAgICAgICAgICAgICAgICBbaXRlbXNdPSdbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1wibmFtZVwiOiBcIlR1dHRvXCIsIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwic2VsZWN0b3JzXCI6IFt7XCJzZWxlY3RvclwiOiBcIi5wZXJzb25cIiwgXCJzdGF0ZVwiOiBmYWxzZX0sIHtcInNlbGVjdG9yXCI6IFwiLnBsYWNlXCIsIFwic3RhdGVcIjogZmFsc2V9XX0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1wibmFtZVwiOiBcIlBlcnNvbmFnZ2lcIiwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJzZWxlY3RvcnNcIjogXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3tcInNlbGVjdG9yXCI6IFwiLnBlcnNvblwiLCBcInN0YXRlXCI6IGZhbHNlfSwge1wic2VsZWN0b3JcIjogXCIucGxhY2VcIiwgXCJzdGF0ZVwiOiB0cnVlfV19LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcIm5hbWVcIjogXCJMdW9naGlcIiwgXCJzZWxlY3RvcnNcIjogXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3tcInNlbGVjdG9yXCI6IFwiLnBsYWNlXCIsIFwic3RhdGVcIjogZmFsc2V9LCB7XCJzZWxlY3RvclwiOiBcIi5wZXJzb25cIiwgXCJzdGF0ZVwiOiB0cnVlfV19XG4gICAgICAgICAgICAgICAgXSdcbiAgICAgICAgICAgICAgICAgIHN1YnNjcmliZT1cImFkZENoYW5uZWxcIlxuICAgICAgICAgICAgICAgICAgZW1pdD1cImFkZENoYW5uZWxcIlxuICAgICAgICAgICAgICAgID48L3BiLXNlbGVjdC1mZWF0dXJlPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICpuZ0lmPVwiZGF0YS5kb2NzPy5sZW5ndGggPiAxICYmIGRhdGEuZG9jc1sxXS5jaGFubmVsICYmIGRhdGEuZmFjc2ltaWxlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRhdGEubGFiZWxzICYmIGRhdGEubGFiZWxzLmluZGV4LmhpZGVcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibjctdGV4dC12aWV3ZXJfX3Rvb2xiYXItY29udGFpbmVyLWZsZXhcIj5cbiAgICAgICAgICAgICAgICAgIDxwYXBlci1idXR0b24gcmFpc2VkPVwiXCIgKGNsaWNrKT1cImRpc3BsYXlJbmRleCgpXCJcbiAgICAgICAgICAgICAgICAgICAgPnt7ICFpc0Rpc3BsYXllZCA/IGRhdGEubGFiZWxzLmluZGV4LmhpZGUgOlxuICAgICAgICAgICAgICAgICAgICBkYXRhLmxhYmVscy5pbmRleC5zaG93IH19PC9wYXBlci1idXR0b25cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZGF0YS5sYWJlbHMgfHwgIWRhdGEubGFiZWxzLmluZGV4LmhpZGVcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibjctdGV4dC12aWV3ZXJfX3Rvb2xiYXItY29udGFpbmVyLWZsZXhcIj5cbiAgICAgICAgICAgICAgICAgIDxwYXBlci1idXR0b24gcmFpc2VkPVwiXCIgKGNsaWNrKT1cImRpc3BsYXlJbmRleCgpXCJcbiAgICAgICAgICAgICAgICAgICAgPnt7ICFpc0Rpc3BsYXllZCA/ICdJbmRpY2knIDogJ1JpYXNzdW50bydcbiAgICAgICAgICAgICAgICAgICAgfX08L3BhcGVyLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGF0YS5kb2NzICYmIGRhdGEuZG93bmxvYWRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm43LXRleHQtdmlld2VyX190b29sYmFyLWNvbnRhaW5lci1mbGV4XCI+XG4gICAgICAgICAgICAgICAgPHBiLWRvd25sb2FkXG4gICAgICAgICAgICAgICAgICBbdHlwZV09XCJkYXRhLmRvd25sb2FkICYmIGRhdGEuZG93bmxvYWQuZm9ybWF0ID8gZGF0YS5kb3dubG9hZC5mb3JtYXQ6ICcnXCJcbiAgICAgICAgICAgICAgICAgIFtzcmNdPVwiZGF0YS5kb2NzWzBdLmlkXCJcbiAgICAgICAgICAgICAgICAgIFt1cmxdPVwiZGF0YS5kb3dubG9hZCAmJiBkYXRhLmRvd25sb2FkLmZpbGUgPyBkYXRhLmRvd25sb2FkLmZpbGUgOiAnJ1wiXG4gICAgICAgICAgICAgICAgICBkaWFsb2c9XCJkb3dubG9hZERpYWxvZ1wiXG4gICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiZGF0YS5kb3dubG9hZCAmJiBkYXRhLmRvd25sb2FkLmZvcm1hdCAmJiBkYXRhLmRvd25sb2FkLmxhYmVsID8gZGF0YS5kb3dubG9hZC5sYWJlbCArICcgJyArIGRhdGEuZG93bmxvYWQuZm9ybWF0OiAnJ1wiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPHBhcGVyLWJ1dHRvbiByYWlzZWQ9XCJcIlxuICAgICAgICAgICAgICAgICAgICA+e3tkYXRhLmRvd25sb2FkICYmIGRhdGEuZG93bmxvYWQuZm9ybWF0ICYmXG4gICAgICAgICAgICAgICAgICAgIGRhdGEuZG93bmxvYWQubGFiZWwgPyBkYXRhLmRvd25sb2FkLmxhYmVsICsgJyAnICtcbiAgICAgICAgICAgICAgICAgICAgZGF0YS5kb3dubG9hZC5mb3JtYXQ6ICcnfX08L3BhcGVyLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwvcGItZG93bmxvYWQ+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxwYi1wcm9ncmVzc1xuICAgICAgICAgICAgICBzdWJzY3JpYmU9XCJ0cmFuc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgaW5kZXRlcm1pbmF0ZT1cIlwiXG4gICAgICAgICAgICAgIGJvdHRvbS1pdGVtPVwiYm90dG9tLWl0ZW1cIlxuICAgICAgICAgICAgICBzdHlsZT1cInZpc2liaWxpdHk6IGhpZGRlblwiXG4gICAgICAgICAgICA+PC9wYi1wcm9ncmVzcz5cbiAgICAgICAgICA8L2FwcC10b29sYmFyPlxuICAgICAgICA8L2FwcC1oZWFkZXI+XG5cbiAgICAgICAgPHBiLWRyYXdlclxuICAgICAgICAgIHRvZ2dsZT1cInRvY1RvZ2dsZVwiXG4gICAgICAgICAgY2xhc3M9XCJ0b2NEcmF3ZXJcIlxuICAgICAgICAgIGVtaXQ9XCJ0b2NcIlxuICAgICAgICAgIHN1YnNjcmliZT1cInRyYW5zY3JpcHRpb25cIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRyYXdlci1jb250ZW50XCI+XG4gICAgICAgICAgICA8aDM+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkYXRhLmxhYmVscyAmJiBkYXRhLmxhYmVscy50b2NcIj5cbiAgICAgICAgICAgICAgICB7e2RhdGEubGFiZWxzLnRvY319XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWRhdGEubGFiZWxzIHx8ICFkYXRhLmxhYmVscy50b2NcIj5cbiAgICAgICAgICAgICAgICA8cGItaTE4biBrZXk9XCJkb2N1bWVudC5jb250ZW50c1wiPkNvbnRlbnRzPC9wYi1pMThuPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvaDM+XG4gICAgICAgICAgICA8cGItbG9hZFxuICAgICAgICAgICAgICAqbmdJZj1cImRhdGEuZG9jc1wiXG4gICAgICAgICAgICAgIGlkPVwidG9jXCJcbiAgICAgICAgICAgICAgdXJsPVwiYXBpL2RvY3VtZW50L3tkb2N9L2NvbnRlbnRzP3RhcmdldD10cmFuc2NyaXB0aW9uJmFtcDtpY29ucz10cnVlXCJcbiAgICAgICAgICAgICAgW3NyY109XCJkYXRhLmRvY3NbMF0uaWRcIlxuICAgICAgICAgICAgICBzdWJzY3JpYmU9XCJ0b2NcIlxuICAgICAgICAgICAgICBlbWl0PVwidG9jXCJcbiAgICAgICAgICAgICAgZXhwYW5kPVwiZXhwYW5kXCJcbiAgICAgICAgICAgICAgYXV0bz1cImF1dG9cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGF0YS5sYWJlbHMgJiYgZGF0YS5sYWJlbHMubG9hZGluZ1wiPlxuICAgICAgICAgICAgICAgIHt7ZGF0YS5sYWJlbHMubG9hZGluZ319XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWRhdGEubGFiZWxzIHx8ICFkYXRhLmxhYmVscy5sb2FkaW5nXCI+XG4gICAgICAgICAgICAgICAgPHBiLWkxOG4ga2V5PVwiZGlhbG9ncy5sb2FkaW5nXCI+TG9hZGluZzwvcGItaTE4bj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L3BiLWxvYWQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvcGItZHJhd2VyPlxuICAgICAgICA8bWFpbiBjbGFzcz1cImNvbnRlbnQtYm9keVwiPlxuICAgICAgICAgIDxwYi1mYWNzaW1pbGVcbiAgICAgICAgICAgICpuZ0lmPVwiZGF0YS5mYWNzaW1pbGVcIlxuICAgICAgICAgICAgaWQ9XCJmYWNzaW1pbGVcIlxuICAgICAgICAgICAgW2F0dHIuYmFzZS11cmldPVwiZGF0YS5mYWNzaW1pbGUudXJpXCJcbiAgICAgICAgICAgIHN1YnNjcmliZT1cInRyYW5zY3JpcHRpb25cIlxuICAgICAgICAgICAgZGVmYXVsdC16b29tLWxldmVsPVwiMFwiXG4gICAgICAgICAgICBzaG93LW5hdmlnYXRpb24tY29udHJvbD1cInNob3ctbmF2aWdhdGlvbi1jb250cm9sXCJcbiAgICAgICAgICAgIHNob3ctbmF2aWdhdG9yPVwic2hvdy1uYXZpZ2F0b3JcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L3BiLWZhY3NpbWlsZT5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBkb2Mgb2YgZGF0YS5kb2NzOyBpbmRleCBhcyAkaTtcIj5cbiAgICAgICAgICAgIDwhLS0gTk8gQ0hBTk5FTCAtLT5cbiAgICAgICAgICAgIDxwYi12aWV3XG4gICAgICAgICAgICAgICpuZ0lmPVwiIWRvYy5jaGFubmVsXCJcbiAgICAgICAgICAgICAgaWQ9XCJ2aWV3e3sgJGkgfX1cIlxuICAgICAgICAgICAgICBbc3JjXT1cImRvYy5pZFwiXG4gICAgICAgICAgICAgIHN1YnNjcmliZT1cInRyYW5zY3JpcHRpb25cIlxuICAgICAgICAgICAgICBlbWl0PVwidHJhbnNjcmlwdGlvblwiXG4gICAgICAgICAgICAgIFthdHRyLndhaXQtZm9yXT1cImRhdGEuZmFjc2ltaWxlID8gJyNmYWNzaW1pbGUnIDogbnVsbFwiXG4gICAgICAgICAgICAgIGNvbHVtbi1zZXBhcmF0b3I9XCIudGVpLWNiXCJcbiAgICAgICAgICAgICAgYXBwZW5kLWZvb3Rub3Rlcz1cImFwcGVuZC1mb290bm90ZXNcIlxuICAgICAgICAgICAgICB2aWV3PVwie3sgZG9jLnZpZXcgfX1cIlxuICAgICAgICAgICAgPjwvcGItdmlldz5cbiAgICAgICAgICAgIDwhLS0gV0lUSCBDSEFOTkVMIC8gTVVSVUNBIERFTU8gLS0+XG4gICAgICAgICAgICA8cGItdmlld1xuICAgICAgICAgICAgICAqbmdJZj1cImRvYy5jaGFubmVsICYmIGRvYy50cmFuc2xhdGlvblwiXG4gICAgICAgICAgICAgIGlkPVwidmlld3t7ICRpIH19XCJcbiAgICAgICAgICAgICAgW3NyY109XCJkb2MuaWRcIlxuICAgICAgICAgICAgICB4cGF0aD1cIi8vdGV4dFtAdHlwZT0nc291cmNlJ11cIlxuICAgICAgICAgICAgICBlbWl0PVwie3sgZG9jLmNoYW5uZWwgfX1cIlxuICAgICAgICAgICAgICBzdWJzY3JpYmU9XCJ7eyBkb2MuY2hhbm5lbCB9fVwiXG4gICAgICAgICAgICAgIHZpZXc9XCJ7eyBkb2MudmlldyB9fVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L3BiLXZpZXc+XG4gICAgICAgICAgICA8cGItdmlld1xuICAgICAgICAgICAgICAqbmdJZj1cImRvYy5jaGFubmVsICYmIGRvYy50cmFuc2xhdGlvblwiXG4gICAgICAgICAgICAgIGlkPVwidmlld3t7ICRpIH19XCJcbiAgICAgICAgICAgICAgW3NyY109XCJkb2MuaWRcIlxuICAgICAgICAgICAgICB4cGF0aD1cInt7IGRvYy54cGF0aCB9fVwiXG4gICAgICAgICAgICAgIGVtaXQ9XCJ7eyBkb2MuY2hhbm5lbCB9fVwiXG4gICAgICAgICAgICAgIHN1YnNjcmliZT1cInt7IGRvYy5jaGFubmVsIH19XCJcbiAgICAgICAgICAgICAgdmlldz1cInt7IGRvYy52aWV3IH19XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHBiLXBhcmFtIG5hbWU9XCJtb2RlXCIgdmFsdWU9XCJjb21tZW50YXJ5XCI+PC9wYi1wYXJhbT5cbiAgICAgICAgICAgIDwvcGItdmlldz5cbiAgICAgICAgICAgIDwhLS0gV0lUSCBDSEFOTkVMIC8gYWRkQ2hhbm5lbCAtLT5cbiAgICAgICAgICAgIDxwYi12aWV3XG4gICAgICAgICAgICAgIFtoaWRkZW5dPVwiaXNEaXNwbGF5ZWRcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwib25DbGljaygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJkb2MuY2hhbm5lbCAmJiAhZG9jLnRyYW5zbGF0aW9uXCJcbiAgICAgICAgICAgICAgaWQ9XCJ2aWV3e3sgJGkgfX1cIlxuICAgICAgICAgICAgICBbc3JjXT1cImRvYy5pZFwiXG4gICAgICAgICAgICAgIFtvZGRdPVwiZG9jLm9kZFwiXG4gICAgICAgICAgICAgIGVtaXQ9XCJhZGRDaGFubmVsXCJcbiAgICAgICAgICAgICAgc3Vic2NyaWJlPVwiYWRkQ2hhbm5lbFwiXG4gICAgICAgICAgICAgIHZpZXc9XCJ7eyBkb2MudmlldyB9fVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxwYi1wYXJhbSBuYW1lPVwibW9kZVwiIHZhbHVlPVwiY29tbWVudGFyeVwiPjwvcGItcGFyYW0+XG4gICAgICAgICAgICA8L3BiLXZpZXc+XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkb2MuY2hhbm5lbCAmJiAhZG9jLnRyYW5zbGF0aW9uXCI+XG4gICAgICAgICAgICAgIDwhLS0gIC0tPlxuICAgICAgICAgICAgICA8cGItdmlld1xuICAgICAgICAgICAgICAgIFtoaWRkZW5dPVwiIWlzRGlzcGxheWVkXCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImRvYy5jaGFubmVsICYmICFkb2MudHJhbnNsYXRpb25cIlxuICAgICAgICAgICAgICAgIFtzcmNdPVwiZG9jLmlkXCJcbiAgICAgICAgICAgICAgICBbb2RkXT1cImRvYy5vZGRcIlxuICAgICAgICAgICAgICAgIGlkPVwidGV4dC12aWV3ZXItaW5kZXhcIlxuICAgICAgICAgICAgICAgIHN1YnNjcmliZT1cImluZGV4XCJcbiAgICAgICAgICAgICAgICBlbWl0PVwibGV0dGVyXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxwYi1wYXJhbSBuYW1lPVwibW9kZVwiIHZhbHVlPVwiZmFjZXRzXCI+PC9wYi1wYXJhbT5cbiAgICAgICAgICAgICAgPC9wYi12aWV3PlxuICAgICAgICAgICAgICA8IS0tICAtLT5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L21haW4+XG4gICAgICA8L2FwcC1oZWFkZXItbGF5b3V0PlxuICAgIDwvYXBwLWRyYXdlci1sYXlvdXQ+XG4gIDwvcGItcGFnZT5cbjwvZGl2PlxuIl19