UNPKG

@carbon/icons-angular

Version:

Angular components for icons in digital and software products using the Carbon Design System

174 lines 40.7 kB
var SnowScatteredNightDirective_1; import { __decorate, __metadata } from "tslib"; import { NgModule, Component, Directive, ElementRef, Input, AfterViewInit } from "@angular/core"; import { getAttributes } from "@carbon/icon-helpers"; let SnowScatteredNightComponent = class SnowScatteredNightComponent { constructor() { this.focusable = false; } }; __decorate([ Input(), __metadata("design:type", String) ], SnowScatteredNightComponent.prototype, "ariaLabel", void 0); __decorate([ Input(), __metadata("design:type", String) ], SnowScatteredNightComponent.prototype, "ariaLabelledby", void 0); __decorate([ Input(), __metadata("design:type", Boolean) ], SnowScatteredNightComponent.prototype, "ariaHidden", void 0); __decorate([ Input(), __metadata("design:type", String) ], SnowScatteredNightComponent.prototype, "title", void 0); __decorate([ Input(), __metadata("design:type", Boolean) ], SnowScatteredNightComponent.prototype, "focusable", void 0); __decorate([ Input(), __metadata("design:type", String) ], SnowScatteredNightComponent.prototype, "innerClass", void 0); __decorate([ Input(), __metadata("design:type", String) ], SnowScatteredNightComponent.prototype, "size", void 0); SnowScatteredNightComponent = __decorate([ Component({ selector: "ibm-icon-snow-scattered-night", template: ` <svg ibmIconSnowScatteredNight [size]="size" [ariaLabel]="ariaLabel" [ariaLabelledby]="ariaLabelledby" [ariaHidden]="ariaHidden" [title]="title" [isFocusable]="focusable" [attr.class]="innerClass"> </svg> ` }) ], SnowScatteredNightComponent); export { SnowScatteredNightComponent }; let SnowScatteredNightDirective = SnowScatteredNightDirective_1 = class SnowScatteredNightDirective { constructor(elementRef) { this.elementRef = elementRef; this.isFocusable = false; this.icons = { "32": { metadata: { "moduleName": "SnowScatteredNight32", "filepath": "snow--scattered--night/32.js", "descriptor": { "elem": "svg", "attrs": { "xmlns": "http://www.w3.org/2000/svg", "viewBox": "0 0 32 32", "fill": "currentColor", "width": 32, "height": 32 }, "content": [{ "elem": "path", "attrs": { "d": "M2 26H4V28H2zM4 28H6V30H4zM6 30H8V32H6zM6 26H8V28H6zM2 30H4V32H2zM20 26H22V28H20zM22 28H24V30H22zM24 30H26V32H24zM24 26H26V28H24zM20 30H22V32H20zM11 26H13V28H11zM13 28H15V30H13zM15 30H17V32H15zM15 26H17V28H15zM11 30H13V32H11zM29.8439 13.0347a1.517 1.517 0 00-1.23-.8658 5.3552 5.3552 0 01-3.4095-1.7158 6.4655 6.4655 0 01-1.286-6.3926 1.6025 1.6025 0 00-.2989-1.5459 1.4543 1.4543 0 00-1.36-.4931l-.0191.0039a7.7685 7.7685 0 00-5.8847 5.5737A7.3706 7.3706 0 0013.5 7a7.5511 7.5511 0 00-7.1494 5.2441A5.9926 5.9926 0 008 24H19a6.0066 6.0066 0 006-6c0-.0571-.0123-.1113-.0139-.1685a7.5076 7.5076 0 004.7611-3.2768A1.5369 1.5369 0 0029.8439 13.0347zM19 22H8a3.9926 3.9926 0 01-.6733-7.9292l.663-.1128.1456-.6562a5.496 5.496 0 0110.7294 0l.1456.6562.6626.1128A3.9925 3.9925 0 0119 22zm5.5974-6.1289a5.9661 5.9661 0 00-3.948-3.627 7.49 7.49 0 00-2.489-3.58 5.9018 5.9018 0 013.6381-4.4473 8.4577 8.4577 0 001.94 7.5967A7.4007 7.4007 0 0027.64 14.041 5.4487 5.4487 0 0124.5974 15.8711z" } }], "name": "snow--scattered--night", "size": 32 }, "size": 32 }, svg: `<svg focusable="false" preserveAspectRatio="xMidYMid meet" xmlns="http://www.w3.org/2000/svg" fill="currentColor" width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><path d="M2 26H4V28H2zM4 28H6V30H4zM6 30H8V32H6zM6 26H8V28H6zM2 30H4V32H2zM20 26H22V28H20zM22 28H24V30H22zM24 30H26V32H24zM24 26H26V28H24zM20 30H22V32H20zM11 26H13V28H11zM13 28H15V30H13zM15 30H17V32H15zM15 26H17V28H15zM11 30H13V32H11zM29.8439 13.0347a1.517 1.517 0 00-1.23-.8658 5.3552 5.3552 0 01-3.4095-1.7158 6.4655 6.4655 0 01-1.286-6.3926 1.6025 1.6025 0 00-.2989-1.5459 1.4543 1.4543 0 00-1.36-.4931l-.0191.0039a7.7685 7.7685 0 00-5.8847 5.5737A7.3706 7.3706 0 0013.5 7a7.5511 7.5511 0 00-7.1494 5.2441A5.9926 5.9926 0 008 24H19a6.0066 6.0066 0 006-6c0-.0571-.0123-.1113-.0139-.1685a7.5076 7.5076 0 004.7611-3.2768A1.5369 1.5369 0 0029.8439 13.0347zM19 22H8a3.9926 3.9926 0 01-.6733-7.9292l.663-.1128.1456-.6562a5.496 5.496 0 0110.7294 0l.1456.6562.6626.1128A3.9925 3.9925 0 0119 22zm5.5974-6.1289a5.9661 5.9661 0 00-3.948-3.627 7.49 7.49 0 00-2.489-3.58 5.9018 5.9018 0 013.6381-4.4473 8.4577 8.4577 0 001.94 7.5967A7.4007 7.4007 0 0027.64 14.041 5.4487 5.4487 0 0124.5974 15.8711z"></path></svg>` }, "24": { metadata: { "moduleName": "SnowScatteredNight24", "filepath": "snow--scattered--night/24.js", "descriptor": { "elem": "svg", "attrs": { "xmlns": "http://www.w3.org/2000/svg", "viewBox": "0 0 32 32", "fill": "currentColor", "width": 24, "height": 24 }, "content": [{ "elem": "path", "attrs": { "d": "M2 26H4V28H2zM4 28H6V30H4zM6 30H8V32H6zM6 26H8V28H6zM2 30H4V32H2zM20 26H22V28H20zM22 28H24V30H22zM24 30H26V32H24zM24 26H26V28H24zM20 30H22V32H20zM11 26H13V28H11zM13 28H15V30H13zM15 30H17V32H15zM15 26H17V28H15zM11 30H13V32H11zM29.8439 13.0347a1.517 1.517 0 00-1.23-.8658 5.3552 5.3552 0 01-3.4095-1.7158 6.4655 6.4655 0 01-1.286-6.3926 1.6025 1.6025 0 00-.2989-1.5459 1.4543 1.4543 0 00-1.36-.4931l-.0191.0039a7.7685 7.7685 0 00-5.8847 5.5737A7.3706 7.3706 0 0013.5 7a7.5511 7.5511 0 00-7.1494 5.2441A5.9926 5.9926 0 008 24H19a6.0066 6.0066 0 006-6c0-.0571-.0123-.1113-.0139-.1685a7.5076 7.5076 0 004.7611-3.2768A1.5369 1.5369 0 0029.8439 13.0347zM19 22H8a3.9926 3.9926 0 01-.6733-7.9292l.663-.1128.1456-.6562a5.496 5.496 0 0110.7294 0l.1456.6562.6626.1128A3.9925 3.9925 0 0119 22zm5.5974-6.1289a5.9661 5.9661 0 00-3.948-3.627 7.49 7.49 0 00-2.489-3.58 5.9018 5.9018 0 013.6381-4.4473 8.4577 8.4577 0 001.94 7.5967A7.4007 7.4007 0 0027.64 14.041 5.4487 5.4487 0 0124.5974 15.8711z" } }], "name": "snow--scattered--night", "size": 24 }, "size": 24 }, svg: `<svg focusable="false" preserveAspectRatio="xMidYMid meet" xmlns="http://www.w3.org/2000/svg" fill="currentColor" width="24" height="24" viewBox="0 0 32 32" aria-hidden="true"><path d="M2 26H4V28H2zM4 28H6V30H4zM6 30H8V32H6zM6 26H8V28H6zM2 30H4V32H2zM20 26H22V28H20zM22 28H24V30H22zM24 30H26V32H24zM24 26H26V28H24zM20 30H22V32H20zM11 26H13V28H11zM13 28H15V30H13zM15 30H17V32H15zM15 26H17V28H15zM11 30H13V32H11zM29.8439 13.0347a1.517 1.517 0 00-1.23-.8658 5.3552 5.3552 0 01-3.4095-1.7158 6.4655 6.4655 0 01-1.286-6.3926 1.6025 1.6025 0 00-.2989-1.5459 1.4543 1.4543 0 00-1.36-.4931l-.0191.0039a7.7685 7.7685 0 00-5.8847 5.5737A7.3706 7.3706 0 0013.5 7a7.5511 7.5511 0 00-7.1494 5.2441A5.9926 5.9926 0 008 24H19a6.0066 6.0066 0 006-6c0-.0571-.0123-.1113-.0139-.1685a7.5076 7.5076 0 004.7611-3.2768A1.5369 1.5369 0 0029.8439 13.0347zM19 22H8a3.9926 3.9926 0 01-.6733-7.9292l.663-.1128.1456-.6562a5.496 5.496 0 0110.7294 0l.1456.6562.6626.1128A3.9925 3.9925 0 0119 22zm5.5974-6.1289a5.9661 5.9661 0 00-3.948-3.627 7.49 7.49 0 00-2.489-3.58 5.9018 5.9018 0 013.6381-4.4473 8.4577 8.4577 0 001.94 7.5967A7.4007 7.4007 0 0027.64 14.041 5.4487 5.4487 0 0124.5974 15.8711z"></path></svg>` }, "20": { metadata: { "moduleName": "SnowScatteredNight20", "filepath": "snow--scattered--night/20.js", "descriptor": { "elem": "svg", "attrs": { "xmlns": "http://www.w3.org/2000/svg", "viewBox": "0 0 32 32", "fill": "currentColor", "width": 20, "height": 20 }, "content": [{ "elem": "path", "attrs": { "d": "M2 26H4V28H2zM4 28H6V30H4zM6 30H8V32H6zM6 26H8V28H6zM2 30H4V32H2zM20 26H22V28H20zM22 28H24V30H22zM24 30H26V32H24zM24 26H26V28H24zM20 30H22V32H20zM11 26H13V28H11zM13 28H15V30H13zM15 30H17V32H15zM15 26H17V28H15zM11 30H13V32H11zM29.8439 13.0347a1.517 1.517 0 00-1.23-.8658 5.3552 5.3552 0 01-3.4095-1.7158 6.4655 6.4655 0 01-1.286-6.3926 1.6025 1.6025 0 00-.2989-1.5459 1.4543 1.4543 0 00-1.36-.4931l-.0191.0039a7.7685 7.7685 0 00-5.8847 5.5737A7.3706 7.3706 0 0013.5 7a7.5511 7.5511 0 00-7.1494 5.2441A5.9926 5.9926 0 008 24H19a6.0066 6.0066 0 006-6c0-.0571-.0123-.1113-.0139-.1685a7.5076 7.5076 0 004.7611-3.2768A1.5369 1.5369 0 0029.8439 13.0347zM19 22H8a3.9926 3.9926 0 01-.6733-7.9292l.663-.1128.1456-.6562a5.496 5.496 0 0110.7294 0l.1456.6562.6626.1128A3.9925 3.9925 0 0119 22zm5.5974-6.1289a5.9661 5.9661 0 00-3.948-3.627 7.49 7.49 0 00-2.489-3.58 5.9018 5.9018 0 013.6381-4.4473 8.4577 8.4577 0 001.94 7.5967A7.4007 7.4007 0 0027.64 14.041 5.4487 5.4487 0 0124.5974 15.8711z" } }], "name": "snow--scattered--night", "size": 20 }, "size": 20 }, svg: `<svg focusable="false" preserveAspectRatio="xMidYMid meet" xmlns="http://www.w3.org/2000/svg" fill="currentColor" width="20" height="20" viewBox="0 0 32 32" aria-hidden="true"><path d="M2 26H4V28H2zM4 28H6V30H4zM6 30H8V32H6zM6 26H8V28H6zM2 30H4V32H2zM20 26H22V28H20zM22 28H24V30H22zM24 30H26V32H24zM24 26H26V28H24zM20 30H22V32H20zM11 26H13V28H11zM13 28H15V30H13zM15 30H17V32H15zM15 26H17V28H15zM11 30H13V32H11zM29.8439 13.0347a1.517 1.517 0 00-1.23-.8658 5.3552 5.3552 0 01-3.4095-1.7158 6.4655 6.4655 0 01-1.286-6.3926 1.6025 1.6025 0 00-.2989-1.5459 1.4543 1.4543 0 00-1.36-.4931l-.0191.0039a7.7685 7.7685 0 00-5.8847 5.5737A7.3706 7.3706 0 0013.5 7a7.5511 7.5511 0 00-7.1494 5.2441A5.9926 5.9926 0 008 24H19a6.0066 6.0066 0 006-6c0-.0571-.0123-.1113-.0139-.1685a7.5076 7.5076 0 004.7611-3.2768A1.5369 1.5369 0 0029.8439 13.0347zM19 22H8a3.9926 3.9926 0 01-.6733-7.9292l.663-.1128.1456-.6562a5.496 5.496 0 0110.7294 0l.1456.6562.6626.1128A3.9925 3.9925 0 0119 22zm5.5974-6.1289a5.9661 5.9661 0 00-3.948-3.627 7.49 7.49 0 00-2.489-3.58 5.9018 5.9018 0 013.6381-4.4473 8.4577 8.4577 0 001.94 7.5967A7.4007 7.4007 0 0027.64 14.041 5.4487 5.4487 0 0124.5974 15.8711z"></path></svg>` }, "16": { metadata: { "moduleName": "SnowScatteredNight16", "filepath": "snow--scattered--night/16.js", "descriptor": { "elem": "svg", "attrs": { "xmlns": "http://www.w3.org/2000/svg", "viewBox": "0 0 32 32", "fill": "currentColor", "width": 16, "height": 16 }, "content": [{ "elem": "path", "attrs": { "d": "M2 26H4V28H2zM4 28H6V30H4zM6 30H8V32H6zM6 26H8V28H6zM2 30H4V32H2zM20 26H22V28H20zM22 28H24V30H22zM24 30H26V32H24zM24 26H26V28H24zM20 30H22V32H20zM11 26H13V28H11zM13 28H15V30H13zM15 30H17V32H15zM15 26H17V28H15zM11 30H13V32H11zM29.8439 13.0347a1.517 1.517 0 00-1.23-.8658 5.3552 5.3552 0 01-3.4095-1.7158 6.4655 6.4655 0 01-1.286-6.3926 1.6025 1.6025 0 00-.2989-1.5459 1.4543 1.4543 0 00-1.36-.4931l-.0191.0039a7.7685 7.7685 0 00-5.8847 5.5737A7.3706 7.3706 0 0013.5 7a7.5511 7.5511 0 00-7.1494 5.2441A5.9926 5.9926 0 008 24H19a6.0066 6.0066 0 006-6c0-.0571-.0123-.1113-.0139-.1685a7.5076 7.5076 0 004.7611-3.2768A1.5369 1.5369 0 0029.8439 13.0347zM19 22H8a3.9926 3.9926 0 01-.6733-7.9292l.663-.1128.1456-.6562a5.496 5.496 0 0110.7294 0l.1456.6562.6626.1128A3.9925 3.9925 0 0119 22zm5.5974-6.1289a5.9661 5.9661 0 00-3.948-3.627 7.49 7.49 0 00-2.489-3.58 5.9018 5.9018 0 013.6381-4.4473 8.4577 8.4577 0 001.94 7.5967A7.4007 7.4007 0 0027.64 14.041 5.4487 5.4487 0 0124.5974 15.8711z" } }], "name": "snow--scattered--night", "size": 16 }, "size": 16 }, svg: `<svg focusable="false" preserveAspectRatio="xMidYMid meet" xmlns="http://www.w3.org/2000/svg" fill="currentColor" width="16" height="16" viewBox="0 0 32 32" aria-hidden="true"><path d="M2 26H4V28H2zM4 28H6V30H4zM6 30H8V32H6zM6 26H8V28H6zM2 30H4V32H2zM20 26H22V28H20zM22 28H24V30H22zM24 30H26V32H24zM24 26H26V28H24zM20 30H22V32H20zM11 26H13V28H11zM13 28H15V30H13zM15 30H17V32H15zM15 26H17V28H15zM11 30H13V32H11zM29.8439 13.0347a1.517 1.517 0 00-1.23-.8658 5.3552 5.3552 0 01-3.4095-1.7158 6.4655 6.4655 0 01-1.286-6.3926 1.6025 1.6025 0 00-.2989-1.5459 1.4543 1.4543 0 00-1.36-.4931l-.0191.0039a7.7685 7.7685 0 00-5.8847 5.5737A7.3706 7.3706 0 0013.5 7a7.5511 7.5511 0 00-7.1494 5.2441A5.9926 5.9926 0 008 24H19a6.0066 6.0066 0 006-6c0-.0571-.0123-.1113-.0139-.1685a7.5076 7.5076 0 004.7611-3.2768A1.5369 1.5369 0 0029.8439 13.0347zM19 22H8a3.9926 3.9926 0 01-.6733-7.9292l.663-.1128.1456-.6562a5.496 5.496 0 0110.7294 0l.1456.6562.6626.1128A3.9925 3.9925 0 0119 22zm5.5974-6.1289a5.9661 5.9661 0 00-3.948-3.627 7.49 7.49 0 00-2.489-3.58 5.9018 5.9018 0 013.6381-4.4473 8.4577 8.4577 0 001.94 7.5967A7.4007 7.4007 0 0027.64 14.041 5.4487 5.4487 0 0124.5974 15.8711z"></path></svg>` }, }; } ngAfterViewInit() { const svg = this.elementRef.nativeElement; svg.setAttribute("xmlns", "http://www.w3.org/2000/svg"); const icon = this.icons[this.size]; const domParser = new DOMParser(); const rawSVG = icon.svg; const svgElement = domParser.parseFromString(rawSVG, "image/svg+xml").documentElement; let node = svgElement.firstChild; while (node) { // importNode makes a clone of the node // this ensures we keep looping over the nodes in the parsed document svg.appendChild(svg.ownerDocument.importNode(node, true)); node = node.nextSibling; } const attributes = getAttributes({ width: icon.metadata.descriptor.attrs.height, height: icon.metadata.descriptor.attrs.height, viewBox: icon.metadata.descriptor.attrs.viewBox, title: this.title, "aria-label": this.ariaLabel, "aria-labelledby": this.ariaLabelledby, "aria-hidden": this.ariaHidden, focusable: this.isFocusable.toString() }); const attrKeys = Object.keys(attributes); for (let i = 0; i < attrKeys.length; i++) { const key = attrKeys[i]; const value = attributes[key]; if (key === "title") { continue; } if (value) { svg.setAttribute(key, value); } } if (attributes.title) { const title = document.createElement("title"); title.textContent = attributes.title; SnowScatteredNightDirective_1.titleIdCounter++; title.setAttribute("id", `snow-scattered-night-${SnowScatteredNightDirective_1.titleIdCounter}`); svg.appendChild(title); svg.setAttribute("aria-labelledby", `snow-scattered-night-${SnowScatteredNightDirective_1.titleIdCounter}`); } } }; SnowScatteredNightDirective.titleIdCounter = 0; SnowScatteredNightDirective.ctorParameters = () => [ { type: ElementRef } ]; __decorate([ Input(), __metadata("design:type", String) ], SnowScatteredNightDirective.prototype, "ariaLabel", void 0); __decorate([ Input(), __metadata("design:type", String) ], SnowScatteredNightDirective.prototype, "ariaLabelledby", void 0); __decorate([ Input(), __metadata("design:type", Boolean) ], SnowScatteredNightDirective.prototype, "ariaHidden", void 0); __decorate([ Input(), __metadata("design:type", String) ], SnowScatteredNightDirective.prototype, "title", void 0); __decorate([ Input(), __metadata("design:type", Boolean) ], SnowScatteredNightDirective.prototype, "isFocusable", void 0); __decorate([ Input(), __metadata("design:type", String) ], SnowScatteredNightDirective.prototype, "size", void 0); SnowScatteredNightDirective = SnowScatteredNightDirective_1 = __decorate([ Directive({ selector: "[ibmIconSnowScatteredNight]" }), __metadata("design:paramtypes", [ElementRef]) ], SnowScatteredNightDirective); export { SnowScatteredNightDirective }; let SnowScatteredNightModule = class SnowScatteredNightModule { }; SnowScatteredNightModule = __decorate([ NgModule({ declarations: [ SnowScatteredNightComponent, SnowScatteredNightDirective, ], exports: [ SnowScatteredNightComponent, SnowScatteredNightDirective, ] }) ], SnowScatteredNightModule); export { SnowScatteredNightModule }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RzL3Nub3ctLXNjYXR0ZXJlZC0tbmlnaHQvaWNvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLE9BQU8sRUFDTCxRQUFRLEVBQ1IsU0FBUyxFQUNULFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUNMLGFBQWEsRUFDZCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFrQnJELElBQWEsMkJBQTJCLEdBQXhDLE1BQWEsMkJBQTJCO0lBQXhDO1FBS1csY0FBUyxHQUFZLEtBQUssQ0FBQztJQUd0QyxDQUFDO0NBQUEsQ0FBQTtBQVBVO0lBQVIsS0FBSyxFQUFFOzs4REFBbUI7QUFDbEI7SUFBUixLQUFLLEVBQUU7O21FQUF3QjtBQUN2QjtJQUFSLEtBQUssRUFBRTs7K0RBQXFCO0FBQ3BCO0lBQVIsS0FBSyxFQUFFOzswREFBZTtBQUNkO0lBQVIsS0FBSyxFQUFFOzs4REFBNEI7QUFDM0I7SUFBUixLQUFLLEVBQUU7OytEQUFvQjtBQUNuQjtJQUFSLEtBQUssRUFBRTs7eURBQWM7QUFQWCwyQkFBMkI7SUFmdkMsU0FBUyxDQUFDO1FBQ1YsUUFBUSxFQUFFLCtCQUErQjtRQUN4QyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7O0dBV1Q7S0FDRixDQUFDO0dBQ1csMkJBQTJCLENBUXZDO1NBUlksMkJBQTJCO0FBZXhDLElBQWEsMkJBQTJCLG1DQUF4QyxNQUFhLDJCQUEyQjtJQWtDdEMsWUFBc0IsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQTNCbkMsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFHNUIsVUFBSyxHQUFHO1lBRWxCLElBQUksRUFBRTtnQkFDSixRQUFRLEVBQUUsRUFBQyxZQUFZLEVBQUMsc0JBQXNCLEVBQUMsVUFBVSxFQUFDLDhCQUE4QixFQUFDLFlBQVksRUFBQyxFQUFDLE1BQU0sRUFB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QTZCO0tBQ3hDLENBQUM7cUNBbUNrQyxVQUFVO0dBbENqQywyQkFBMkIsQ0FzRnZDO1NBdEZZLDJCQUEyQjtBQXVHeEMsSUFBYSx3QkFBd0IsR0FBckMsTUFBYSx3QkFBd0I7Q0FBRyxDQUFBO0FBQTNCLHdCQUF3QjtJQWRwQyxRQUFRLENBQUM7UUFDUixZQUFZLEVBQUU7WUFFZCwyQkFBMkI7WUFDM0IsMkJBQTJCO1NBRTFCO1FBQ0QsT0FBTyxFQUFFO1lBRVQsMkJBQTJCO1lBQzNCLDJCQUEyQjtTQUUxQjtLQUNGLENBQUM7R0FDVyx3QkFBd0IsQ0FBRztTQUEzQix3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7XG4gIE5nTW9kdWxlLFxuICBDb21wb25lbnQsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIEFmdGVyVmlld0luaXRcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IGdldEF0dHJpYnV0ZXMgfSBmcm9tIFwiQGNhcmJvbi9pY29uLWhlbHBlcnNcIjtcblxuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6IFwiaWJtLWljb24tc25vdy1zY2F0dGVyZWQtbmlnaHRcIixcbiAgdGVtcGxhdGU6IGBcbiAgICA8c3ZnXG4gICAgICBpYm1JY29uU25vd1NjYXR0ZXJlZE5pZ2h0XG4gICAgICBbc2l6ZV09XCJzaXplXCJcbiAgICAgIFthcmlhTGFiZWxdPVwiYXJpYUxhYmVsXCJcbiAgICAgIFthcmlhTGFiZWxsZWRieV09XCJhcmlhTGFiZWxsZWRieVwiXG4gICAgICBbYXJpYUhpZGRlbl09XCJhcmlhSGlkZGVuXCJcbiAgICAgIFt0aXRsZV09XCJ0aXRsZVwiXG4gICAgICBbaXNGb2N1c2FibGVdPVwiZm9jdXNhYmxlXCJcbiAgICAgIFthdHRyLmNsYXNzXT1cImlubmVyQ2xhc3NcIj5cbiAgICA8L3N2Zz5cbiAgYFxufSlcbmV4cG9ydCBjbGFzcyBTbm93U2NhdHRlcmVkTmlnaHRDb21wb25lbnQge1xuICBASW5wdXQoKSBhcmlhTGFiZWw6IHN0cmluZztcbiAgQElucHV0KCkgYXJpYUxhYmVsbGVkYnk6IHN0cmluZztcbiAgQElucHV0KCkgYXJpYUhpZGRlbjogYm9vbGVhbjtcbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZztcbiAgQElucHV0KCkgZm9jdXNhYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGlubmVyQ2xhc3M6IHN0cmluZztcbiAgQElucHV0KCkgc2l6ZTogc3RyaW5nO1xufVxuXG5cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiBcIltpYm1JY29uU25vd1NjYXR0ZXJlZE5pZ2h0XVwiXG59KVxuZXhwb3J0IGNsYXNzIFNub3dTY2F0dGVyZWROaWdodERpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBzdGF0aWMgdGl0bGVJZENvdW50ZXIgPSAwO1xuXG4gIEBJbnB1dCgpIGFyaWFMYWJlbDogc3RyaW5nO1xuICBASW5wdXQoKSBhcmlhTGFiZWxsZWRieTogc3RyaW5nO1xuICBASW5wdXQoKSBhcmlhSGlkZGVuOiBib29sZWFuO1xuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nO1xuICBASW5wdXQoKSBpc0ZvY3VzYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzaXplOiBzdHJpbmc7XG5cbiAgcHJvdGVjdGVkIGljb25zID0ge1xuICAgIFxuICBcIjMyXCI6IHtcbiAgICBtZXRhZGF0YToge1wibW9kdWxlTmFtZVwiOlwiU25vd1NjYXR0ZXJlZE5pZ2h0MzJcIixcImZpbGVwYXRoXCI6XCJzbm93LS1zY2F0dGVyZWQtLW5pZ2h0LzMyLmpzXCIsXCJkZXNjcmlwdG9yXCI6e1wiZWxlbVwiOlwic3ZnXCIsXCJhdHRyc1wiOntcInhtbG5zXCI6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLFwidmlld0JveFwiOlwiMCAwIDMyIDMyXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcIndpZHRoXCI6MzIsXCJoZWlnaHRcIjozMn0sXCJjb250ZW50XCI6W3tcImVsZW1cIjpcInBhdGhcIixcImF0dHJzXCI6e1wiZFwiOlwiTTIgMjZINFYyOEgyek00IDI4SDZWMzBINHpNNiAzMEg4VjMySDZ6TTYgMjZIOFYyOEg2ek0yIDMwSDRWMzJIMnpNMjAgMjZIMjJWMjhIMjB6TTIyIDI4SDI0VjMwSDIyek0yNCAzMEgyNlYzMkgyNHpNMjQgMjZIMjZWMjhIMjR6TTIwIDMwSDIyVjMySDIwek0xMSAyNkgxM1YyOEgxMXpNMTMgMjhIMTVWMzBIMTN6TTE1IDMwSDE3VjMySDE1ek0xNSAyNkgxN1YyOEgxNXpNMTEgMzBIMTNWMzJIMTF6TTI5Ljg0MzkgMTMuMDM0N2ExLjUxNyAxLjUxNyAwIDAwLTEuMjMtLjg2NTggNS4zNTUyIDUuMzU1MiAwIDAxLTMuNDA5NS0xLjcxNTggNi40NjU1IDYuNDY1NSAwIDAxLTEuMjg2LTYuMzkyNiAxLjYwMjUgMS42MDI1IDAgMDAtLjI5ODktMS41NDU5IDEuNDU0MyAxLjQ1NDMgMCAwMC0xLjM2LS40OTMxbC0uMDE5MS4wMDM5YTcuNzY4NSA3Ljc2ODUgMCAwMC01Ljg4NDcgNS41NzM3QTcuMzcwNiA3LjM3MDYgMCAwMDEzLjUgN2E3LjU1MTEgNy41NTExIDAgMDAtNy4xNDk0IDUuMjQ0MUE1Ljk5MjYgNS45OTI2IDAgMDA4IDI0SDE5YTYuMDA2NiA2LjAwNjYgMCAwMDYtNmMwLS4wNTcxLS4wMTIzLS4xMTEzLS4wMTM5LS4xNjg1YTcuNTA3NiA3LjUwNzYgMCAwMDQuNzYxMS0zLjI3NjhBMS41MzY5IDEuNTM2OSAwIDAwMjkuODQzOSAxMy4wMzQ3ek0xOSAyMkg4YTMuOTkyNiAzLjk5MjYgMCAwMS0uNjczMy03LjkyOTJsLjY2My0uMTEyOC4xNDU2LS42NTYyYTUuNDk2IDUuNDk2IDAgMDExMC43Mjk0IDBsLjE0NTYuNjU2Mi42NjI2LjExMjhBMy45OTI1IDMuOTkyNSAwIDAxMTkgMjJ6bTUuNTk3NC02LjEyODlhNS45NjYxIDUuOTY2MSAwIDAwLTMuOTQ4LTMuNjI3IDcuNDkgNy40OSAwIDAwLTIuNDg5LTMuNTggNS45MDE4IDUuOTAxOCAwIDAxMy42MzgxLTQuNDQ3MyA4LjQ1NzcgOC40NTc3IDAgMDAxLjk0IDcuNTk2N0E3LjQwMDcgNy40MDA3IDAgMDAyNy42NCAxNC4wNDEgNS40NDg3IDUuNDQ4NyAwIDAxMjQuNTk3NCAxNS44NzExelwifX1dLFwibmFtZVwiOlwic25vdy0tc2NhdHRlcmVkLS1uaWdodFwiLFwic2l6ZVwiOjMyfSxcInNpemVcIjozMn0sXG4gICAgc3ZnOiBgPHN2ZyBmb2N1c2FibGU9XCJmYWxzZVwiIHByZXNlcnZlQXNwZWN0UmF0aW89XCJ4TWlkWU1pZCBtZWV0XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGZpbGw9XCJjdXJyZW50Q29sb3JcIiB3aWR0aD1cIjMyXCIgaGVpZ2h0PVwiMzJcIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PHBhdGggZD1cIk0yIDI2SDRWMjhIMnpNNCAyOEg2VjMwSDR6TTYgMzBIOFYzMkg2ek02IDI2SDhWMjhINnpNMiAzMEg0VjMySDJ6TTIwIDI2SDIyVjI4SDIwek0yMiAyOEgyNFYzMEgyMnpNMjQgMzBIMjZWMzJIMjR6TTI0IDI2SDI2VjI4SDI0ek0yMCAzMEgyMlYzMkgyMHpNMTEgMjZIMTNWMjhIMTF6TTEzIDI4SDE1VjMwSDEzek0xNSAzMEgxN1YzMkgxNXpNMTUgMjZIMTdWMjhIMTV6TTExIDMwSDEzVjMySDExek0yOS44NDM5IDEzLjAzNDdhMS41MTcgMS41MTcgMCAwMC0xLjIzLS44NjU4IDUuMzU1MiA1LjM1NTIgMCAwMS0zLjQwOTUtMS43MTU4IDYuNDY1NSA2LjQ2NTUgMCAwMS0xLjI4Ni02LjM5MjYgMS42MDI1IDEuNjAyNSAwIDAwLS4yOTg5LTEuNTQ1OSAxLjQ1NDMgMS40NTQzIDAgMDAtMS4zNi0uNDkzMWwtLjAxOTEuMDAzOWE3Ljc2ODUgNy43Njg1IDAgMDAtNS44ODQ3IDUuNTczN0E3LjM3MDYgNy4zNzA2IDAgMDAxMy41IDdhNy41NTExIDcuNTUxMSAwIDAwLTcuMTQ5NCA1LjI0NDFBNS45OTI2IDUuOTkyNiAwIDAwOCAyNEgxOWE2LjAwNjYgNi4wMDY2IDAgMDA2LTZjMC0uMDU3MS0uMDEyMy0uMTExMy0uMDEzOS0uMTY4NWE3LjUwNzYgNy41MDc2IDAgMDA0Ljc2MTEtMy4yNzY4QTEuNTM2OSAxLjUzNjkgMCAwMDI5Ljg0MzkgMTMuMDM0N3pNMTkgMjJIOGEzLjk5MjYgMy45OTI2IDAgMDEtLjY3MzMtNy45MjkybC42NjMtLjExMjguMTQ1Ni0uNjU2MmE1LjQ5NiA1LjQ5NiAwIDAxMTAuNzI5NCAwbC4xNDU2LjY1NjIuNjYyNi4xMTI4QTMuOTkyNSAzLjk5MjUgMCAwMTE5IDIyem01LjU5NzQtNi4xMjg5YTUuOTY2MSA1Ljk2NjEgMCAwMC0zLjk0OC0zLjYyNyA3LjQ5IDcuNDkgMCAwMC0yLjQ4OS0zLjU4IDUuOTAxOCA1LjkwMTggMCAwMTMuNjM4MS00LjQ0NzMgOC40NTc3IDguNDU3NyAwIDAwMS45NCA3LjU5NjdBNy40MDA3IDcuNDAwNyAwIDAwMjcuNjQgMTQuMDQxIDUuNDQ4NyA1LjQ0ODcgMCAwMTI0LjU5NzQgMTUuODcxMXpcIj48L3BhdGg+PC9zdmc+YFxuICB9LFxuXG4gIFwiMjRcIjoge1xuICAgIG1ldGFkYXRhOiB7XCJtb2R1bGVOYW1lXCI6XCJTbm93U2NhdHRlcmVkTmlnaHQyNFwiLFwiZmlsZXBhdGhcIjpcInNub3ctLXNjYXR0ZXJlZC0tbmlnaHQvMjQuanNcIixcImRlc2NyaXB0b3JcIjp7XCJlbGVtXCI6XCJzdmdcIixcImF0dHJzXCI6e1wieG1sbnNcIjpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMzIgMzJcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwid2lkdGhcIjoyNCxcImhlaWdodFwiOjI0fSxcImNvbnRlbnRcIjpbe1wiZWxlbVwiOlwicGF0aFwiLFwiYXR0cnNcIjp7XCJkXCI6XCJNMiAyNkg0VjI4SDJ6TTQgMjhINlYzMEg0ek02IDMwSDhWMzJINnpNNiAyNkg4VjI4SDZ6TTIgMzBINFYzMkgyek0yMCAyNkgyMlYyOEgyMHpNMjIgMjhIMjRWMzBIMjJ6TTI0IDMwSDI2VjMySDI0ek0yNCAyNkgyNlYyOEgyNHpNMjAgMzBIMjJWMzJIMjB6TTExIDI2SDEzVjI4SDExek0xMyAyOEgxNVYzMEgxM3pNMTUgMzBIMTdWMzJIMTV6TTE1IDI2SDE3VjI4SDE1ek0xMSAzMEgxM1YzMkgxMXpNMjkuODQzOSAxMy4wMzQ3YTEuNTE3IDEuNTE3IDAgMDAtMS4yMy0uODY1OCA1LjM1NTIgNS4zNTUyIDAgMDEtMy40MDk1LTEuNzE1OCA2LjQ2NTUgNi40NjU1IDAgMDEtMS4yODYtNi4zOTI2IDEuNjAyNSAxLjYwMjUgMCAwMC0uMjk4OS0xLjU0NTkgMS40NTQzIDEuNDU0MyAwIDAwLTEuMzYtLjQ5MzFsLS4wMTkxLjAwMzlhNy43Njg1IDcuNzY4NSAwIDAwLTUuODg0NyA1LjU3MzdBNy4zNzA2IDcuMzcwNiAwIDAwMTMuNSA3YTcuNTUxMSA3LjU1MTEgMCAwMC03LjE0OTQgNS4yNDQxQTUuOTkyNiA1Ljk5MjYgMCAwMDggMjRIMTlhNi4wMDY2IDYuMDA2NiAwIDAwNi02YzAtLjA1NzEtLjAxMjMtLjExMTMtLjAxMzktLjE2ODVhNy41MDc2IDcuNTA3NiAwIDAwNC43NjExLTMuMjc2OEExLjUzNjkgMS41MzY5IDAgMDAyOS44NDM5IDEzLjAzNDd6TTE5IDIySDhhMy45OTI2IDMuOTkyNiAwIDAxLS42NzMzLTcuOTI5MmwuNjYzLS4xMTI4LjE0NTYtLjY1NjJhNS40OTYgNS40OTYgMCAwMTEwLjcyOTQgMGwuMTQ1Ni42NTYyLjY2MjYuMTEyOEEzLjk5MjUgMy45OTI1IDAgMDExOSAyMnptNS41OTc0LTYuMTI4OWE1Ljk2NjEgNS45NjYxIDAgMDAtMy45NDgtMy42MjcgNy40OSA3LjQ5IDAgMDAtMi40ODktMy41OCA1LjkwMTggNS45MDE4IDAgMDEzLjYzODEtNC40NDczIDguNDU3NyA4LjQ1NzcgMCAwMDEuOTQgNy41OTY3QTcuNDAwNyA3LjQwMDcgMCAwMDI3LjY0IDE0LjA0MSA1LjQ0ODcgNS40NDg3IDAgMDEyNC41OTc0IDE1Ljg3MTF6XCJ9fV0sXCJuYW1lXCI6XCJzbm93LS1zY2F0dGVyZWQtLW5pZ2h0XCIsXCJzaXplXCI6MjR9LFwic2l6ZVwiOjI0fSxcbiAgICBzdmc6IGA8c3ZnIGZvY3VzYWJsZT1cImZhbHNlXCIgcHJlc2VydmVBc3BlY3RSYXRpbz1cInhNaWRZTWlkIG1lZXRcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMzIgMzJcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48cGF0aCBkPVwiTTIgMjZINFYyOEgyek00IDI4SDZWMzBINHpNNiAzMEg4VjMySDZ6TTYgMjZIOFYyOEg2ek0yIDMwSDRWMzJIMnpNMjAgMjZIMjJWMjhIMjB6TTIyIDI4SDI0VjMwSDIyek0yNCAzMEgyNlYzMkgyNHpNMjQgMjZIMjZWMjhIMjR6TTIwIDMwSDIyVjMySDIwek0xMSAyNkgxM1YyOEgxMXpNMTMgMjhIMTVWMzBIMTN6TTE1IDMwSDE3VjMySDE1ek0xNSAyNkgxN1YyOEgxNXpNMTEgMzBIMTNWMzJIMTF6TTI5Ljg0MzkgMTMuMDM0N2ExLjUxNyAxLjUxNyAwIDAwLTEuMjMtLjg2NTggNS4zNTUyIDUuMzU1MiAwIDAxLTMuNDA5NS0xLjcxNTggNi40NjU1IDYuNDY1NSAwIDAxLTEuMjg2LTYuMzkyNiAxLjYwMjUgMS42MDI1IDAgMDAtLjI5ODktMS41NDU5IDEuNDU0MyAxLjQ1NDMgMCAwMC0xLjM2LS40OTMxbC0uMDE5MS4wMDM5YTcuNzY4NSA3Ljc2ODUgMCAwMC01Ljg4NDcgNS41NzM3QTcuMzcwNiA3LjM3MDYgMCAwMDEzLjUgN2E3LjU1MTEgNy41NTExIDAgMDAtNy4xNDk0IDUuMjQ0MUE1Ljk5MjYgNS45OTI2IDAgMDA4IDI0SDE5YTYuMDA2NiA2LjAwNjYgMCAwMDYtNmMwLS4wNTcxLS4wMTIzLS4xMTEzLS4wMTM5LS4xNjg1YTcuNTA3NiA3LjUwNzYgMCAwMDQuNzYxMS0zLjI3NjhBMS41MzY5IDEuNTM2OSAwIDAwMjkuODQzOSAxMy4wMzQ3ek0xOSAyMkg4YTMuOTkyNiAzLjk5MjYgMCAwMS0uNjczMy03LjkyOTJsLjY2My0uMTEyOC4xNDU2LS42NTYyYTUuNDk2IDUuNDk2IDAgMDExMC43Mjk0IDBsLjE0NTYuNjU2Mi42NjI2LjExMjhBMy45OTI1IDMuOTkyNSAwIDAxMTkgMjJ6bTUuNTk3NC02LjEyODlhNS45NjYxIDUuOTY2MSAwIDAwLTMuOTQ4LTMuNjI3IDcuNDkgNy40OSAwIDAwLTIuNDg5LTMuNTggNS45MDE4IDUuOTAxOCAwIDAxMy42MzgxLTQuNDQ3MyA4LjQ1NzcgOC40NTc3IDAgMDAxLjk0IDcuNTk2N0E3LjQwMDcgNy40MDA3IDAgMDAyNy42NCAxNC4wNDEgNS40NDg3IDUuNDQ4NyAwIDAxMjQuNTk3NCAxNS44NzExelwiPjwvcGF0aD48L3N2Zz5gXG4gIH0sXG5cbiAgXCIyMFwiOiB7XG4gICAgbWV0YWRhdGE6IHtcIm1vZHVsZU5hbWVcIjpcIlNub3dTY2F0dGVyZWROaWdodDIwXCIsXCJmaWxlcGF0aFwiOlwic25vdy0tc2NhdHRlcmVkLS1uaWdodC8yMC5qc1wiLFwiZGVzY3JpcHRvclwiOntcImVsZW1cIjpcInN2Z1wiLFwiYXR0cnNcIjp7XCJ4bWxuc1wiOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcInZpZXdCb3hcIjpcIjAgMCAzMiAzMlwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJ3aWR0aFwiOjIwLFwiaGVpZ2h0XCI6MjB9LFwiY29udGVudFwiOlt7XCJlbGVtXCI6XCJwYXRoXCIsXCJhdHRyc1wiOntcImRcIjpcIk0yIDI2SDRWMjhIMnpNNCAyOEg2VjMwSDR6TTYgMzBIOFYzMkg2ek02IDI2SDhWMjhINnpNMiAzMEg0VjMySDJ6TTIwIDI2SDIyVjI4SDIwek0yMiAyOEgyNFYzMEgyMnpNMjQgMzBIMjZWMzJIMjR6TTI0IDI2SDI2VjI4SDI0ek0yMCAzMEgyMlYzMkgyMHpNMTEgMjZIMTNWMjhIMTF6TTEzIDI4SDE1VjMwSDEzek0xNSAzMEgxN1YzMkgxNXpNMTUgMjZIMTdWMjhIMTV6TTExIDMwSDEzVjMySDExek0yOS44NDM5IDEzLjAzNDdhMS41MTcgMS41MTcgMCAwMC0xLjIzLS44NjU4IDUuMzU1MiA1LjM1NTIgMCAwMS0zLjQwOTUtMS43MTU4IDYuNDY1NSA2LjQ2NTUgMCAwMS0xLjI4Ni02LjM5MjYgMS42MDI1IDEuNjAyNSAwIDAwLS4yOTg5LTEuNTQ1OSAxLjQ1NDMgMS40NTQzIDAgMDAtMS4zNi0uNDkzMWwtLjAxOTEuMDAzOWE3Ljc2ODUgNy43Njg1IDAgMDAtNS44ODQ3IDUuNTczN0E3LjM3MDYgNy4zNzA2IDAgMDAxMy41IDdhNy41NTExIDcuNTUxMSAwIDAwLTcuMTQ5NCA1LjI0NDFBNS45OTI2IDUuOTkyNiAwIDAwOCAyNEgxOWE2LjAwNjYgNi4wMDY2IDAgMDA2LTZjMC0uMDU3MS0uMDEyMy0uMTExMy0uMDEzOS0uMTY4NWE3LjUwNzYgNy41MDc2IDAgMDA0Ljc2MTEtMy4yNzY4QTEuNTM2OSAxLjUzNjkgMCAwMDI5Ljg0MzkgMTMuMDM0N3pNMTkgMjJIOGEzLjk5MjYgMy45OTI2IDAgMDEtLjY3MzMtNy45MjkybC42NjMtLjExMjguMTQ1Ni0uNjU2MmE1LjQ5NiA1LjQ5NiAwIDAxMTAuNzI5NCAwbC4xNDU2LjY1NjIuNjYyNi4xMTI4QTMuOTkyNSAzLjk5MjUgMCAwMTE5IDIyem01LjU5NzQtNi4xMjg5YTUuOTY2MSA1Ljk2NjEgMCAwMC0zLjk0OC0zLjYyNyA3LjQ5IDcuNDkgMCAwMC0yLjQ4OS0zLjU4IDUuOTAxOCA1LjkwMTggMCAwMTMuNjM4MS00LjQ0NzMgOC40NTc3IDguNDU3NyAwIDAwMS45NCA3LjU5NjdBNy40MDA3IDcuNDAwNyAwIDAwMjcuNjQgMTQuMDQxIDUuNDQ4NyA1LjQ0ODcgMCAwMTI0LjU5NzQgMTUuODcxMXpcIn19XSxcIm5hbWVcIjpcInNub3ctLXNjYXR0ZXJlZC0tbmlnaHRcIixcInNpemVcIjoyMH0sXCJzaXplXCI6MjB9LFxuICAgIHN2ZzogYDxzdmcgZm9jdXNhYmxlPVwiZmFsc2VcIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPVwieE1pZFlNaWQgbWVldFwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBmaWxsPVwiY3VycmVudENvbG9yXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAzMiAzMlwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjxwYXRoIGQ9XCJNMiAyNkg0VjI4SDJ6TTQgMjhINlYzMEg0ek02IDMwSDhWMzJINnpNNiAyNkg4VjI4SDZ6TTIgMzBINFYzMkgyek0yMCAyNkgyMlYyOEgyMHpNMjIgMjhIMjRWMzBIMjJ6TTI0IDMwSDI2VjMySDI0ek0yNCAyNkgyNlYyOEgyNHpNMjAgMzBIMjJWMzJIMjB6TTExIDI2SDEzVjI4SDExek0xMyAyOEgxNVYzMEgxM3pNMTUgMzBIMTdWMzJIMTV6TTE1IDI2SDE3VjI4SDE1ek0xMSAzMEgxM1YzMkgxMXpNMjkuODQzOSAxMy4wMzQ3YTEuNTE3IDEuNTE3IDAgMDAtMS4yMy0uODY1OCA1LjM1NTIgNS4zNTUyIDAgMDEtMy40MDk1LTEuNzE1OCA2LjQ2NTUgNi40NjU1IDAgMDEtMS4yODYtNi4zOTI2IDEuNjAyNSAxLjYwMjUgMCAwMC0uMjk4OS0xLjU0NTkgMS40NTQzIDEuNDU0MyAwIDAwLTEuMzYtLjQ5MzFsLS4wMTkxLjAwMzlhNy43Njg1IDcuNzY4NSAwIDAwLTUuODg0NyA1LjU3MzdBNy4zNzA2IDcuMzcwNiAwIDAwMTMuNSA3YTcuNTUxMSA3LjU1MTEgMCAwMC03LjE0OTQgNS4yNDQxQTUuOTkyNiA1Ljk5MjYgMCAwMDggMjRIMTlhNi4wMDY2IDYuMDA2NiAwIDAwNi02YzAtLjA1NzEtLjAxMjMtLjExMTMtLjAxMzktLjE2ODVhNy41MDc2IDcuNTA3NiAwIDAwNC43NjExLTMuMjc2OEExLjUzNjkgMS41MzY5IDAgMDAyOS44NDM5IDEzLjAzNDd6TTE5IDIySDhhMy45OTI2IDMuOTkyNiAwIDAxLS42NzMzLTcuOTI5MmwuNjYzLS4xMTI4LjE0NTYtLjY1NjJhNS40OTYgNS40OTYgMCAwMTEwLjcyOTQgMGwuMTQ1Ni42NTYyLjY2MjYuMTEyOEEzLjk5MjUgMy45OTI1IDAgMDExOSAyMnptNS41OTc0LTYuMTI4OWE1Ljk2NjEgNS45NjYxIDAgMDAtMy45NDgtMy42MjcgNy40OSA3LjQ5IDAgMDAtMi40ODktMy41OCA1LjkwMTggNS45MDE4IDAgMDEzLjYzODEtNC40NDczIDguNDU3NyA4LjQ1NzcgMCAwMDEuOTQgNy41OTY3QTcuNDAwNyA3LjQwMDcgMCAwMDI3LjY0IDE0LjA0MSA1LjQ0ODcgNS40NDg3IDAgMDEyNC41OTc0IDE1Ljg3MTF6XCI+PC9wYXRoPjwvc3ZnPmBcbiAgfSxcblxuICBcIjE2XCI6IHtcbiAgICBtZXRhZGF0YToge1wibW9kdWxlTmFtZVwiOlwiU25vd1NjYXR0ZXJlZE5pZ2h0MTZcIixcImZpbGVwYXRoXCI6XCJzbm93LS1zY2F0dGVyZWQtLW5pZ2h0LzE2LmpzXCIsXCJkZXNjcmlwdG9yXCI6e1wiZWxlbVwiOlwic3ZnXCIsXCJhdHRyc1wiOntcInhtbG5zXCI6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLFwidmlld0JveFwiOlwiMCAwIDMyIDMyXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcIndpZHRoXCI6MTYsXCJoZWlnaHRcIjoxNn0sXCJjb250ZW50XCI6W3tcImVsZW1cIjpcInBhdGhcIixcImF0dHJzXCI6e1wiZFwiOlwiTTIgMjZINFYyOEgyek00IDI4SDZWMzBINHpNNiAzMEg4VjMySDZ6TTYgMjZIOFYyOEg2ek0yIDMwSDRWMzJIMnpNMjAgMjZIMjJWMjhIMjB6TTIyIDI4SDI0VjMwSDIyek0yNCAzMEgyNlYzMkgyNHpNMjQgMjZIMjZWMjhIMjR6TTIwIDMwSDIyVjMySDIwek0xMSAyNkgxM1YyOEgxMXpNMTMgMjhIMTVWMzBIMTN6TTE1IDMwSDE3VjMySDE1ek0xNSAyNkgxN1YyOEgxNXpNMTEgMzBIMTNWMzJIMTF6TTI5Ljg0MzkgMTMuMDM0N2ExLjUxNyAxLjUxNyAwIDAwLTEuMjMtLjg2NTggNS4zNTUyIDUuMzU1MiAwIDAxLTMuNDA5NS0xLjcxNTggNi40NjU1IDYuNDY1NSAwIDAxLTEuMjg2LTYuMzkyNiAxLjYwMjUgMS42MDI1IDAgMDAtLjI5ODktMS41NDU5IDEuNDU0MyAxLjQ1NDMgMCAwMC0xLjM2LS40OTMxbC0uMDE5MS4wMDM5YTcuNzY4NSA3Ljc2ODUgMCAwMC01Ljg4NDcgNS41NzM3QTcuMzcwNiA3LjM3MDYgMCAwMDEzLjUgN2E3LjU1MTEgNy41NTExIDAgMDAtNy4xNDk0IDUuMjQ0MUE1Ljk5MjYgNS45OTI2IDAgMDA4IDI0SDE5YTYuMDA2NiA2LjAwNjYgMCAwMDYtNmMwLS4wNTcxLS4wMTIzLS4xMTEzLS4wMTM5LS4xNjg1YTcuNTA3NiA3LjUwNzYgMCAwMDQuNzYxMS0zLjI3NjhBMS41MzY5IDEuNTM2OSAwIDAwMjkuODQzOSAxMy4wMzQ3ek0xOSAyMkg4YTMuOTkyNiAzLjk5MjYgMCAwMS0uNjczMy03LjkyOTJsLjY2My0uMTEyOC4xNDU2LS42NTYyYTUuNDk2IDUuNDk2IDAgMDExMC43Mjk0IDBsLjE0NTYuNjU2Mi42NjI2LjExMjhBMy45OTI1IDMuOTkyNSAwIDAxMTkgMjJ6bTUuNTk3NC02LjEyODlhNS45NjYxIDUuOTY2MSAwIDAwLTMuOTQ4LTMuNjI3IDcuNDkgNy40OSAwIDAwLTIuNDg5LTMuNTggNS45MDE4IDUuOTAxOCAwIDAxMy42MzgxLTQuNDQ3MyA4LjQ1NzcgOC40NTc3IDAgMDAxLjk0IDcuNTk2N0E3LjQwMDcgNy40MDA3IDAgMDAyNy42NCAxNC4wNDEgNS40NDg3IDUuNDQ4NyAwIDAxMjQuNTk3NCAxNS44NzExelwifX1dLFwibmFtZVwiOlwic25vdy0tc2NhdHRlcmVkLS1uaWdodFwiLFwic2l6ZVwiOjE2fSxcInNpemVcIjoxNn0sXG4gICAgc3ZnOiBgPHN2ZyBmb2N1c2FibGU9XCJmYWxzZVwiIHByZXNlcnZlQXNwZWN0UmF0aW89XCJ4TWlkWU1pZCBtZWV0XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGZpbGw9XCJjdXJyZW50Q29sb3JcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PHBhdGggZD1cIk0yIDI2SDRWMjhIMnpNNCAyOEg2VjMwSDR6TTYgMzBIOFYzMkg2ek02IDI2SDhWMjhINnpNMiAzMEg0VjMySDJ6TTIwIDI2SDIyVjI4SDIwek0yMiAyOEgyNFYzMEgyMnpNMjQgMzBIMjZWMzJIMjR6TTI0IDI2SDI2VjI4SDI0ek0yMCAzMEgyMlYzMkgyMHpNMTEgMjZIMTNWMjhIMTF6TTEzIDI4SDE1VjMwSDEzek0xNSAzMEgxN1YzMkgxNXpNMTUgMjZIMTdWMjhIMTV6TTExIDMwSDEzVjMySDExek0yOS44NDM5IDEzLjAzNDdhMS41MTcgMS41MTcgMCAwMC0xLjIzLS44NjU4IDUuMzU1MiA1LjM1NTIgMCAwMS0zLjQwOTUtMS43MTU4IDYuNDY1NSA2LjQ2NTUgMCAwMS0xLjI4Ni02LjM5MjYgMS42MDI1IDEuNjAyNSAwIDAwLS4yOTg5LTEuNTQ1OSAxLjQ1NDMgMS40NTQzIDAgMDAtMS4zNi0uNDkzMWwtLjAxOTEuMDAzOWE3Ljc2ODUgNy43Njg1IDAgMDAtNS44ODQ3IDUuNTczN0E3LjM3MDYgNy4zNzA2IDAgMDAxMy41IDdhNy41NTExIDcuNTUxMSAwIDAwLTcuMTQ5NCA1LjI0NDFBNS45OTI2IDUuOTkyNiAwIDAwOCAyNEgxOWE2LjAwNjYgNi4wMDY2IDAgMDA2LTZjMC0uMDU3MS0uMDEyMy0uMTExMy0uMDEzOS0uMTY4NWE3LjUwNzYgNy41MDc2IDAgMDA0Ljc2MTEtMy4yNzY4QTEuNTM2OSAxLjUzNjkgMCAwMDI5Ljg0MzkgMTMuMDM0N3pNMTkgMjJIOGEzLjk5MjYgMy45OTI2IDAgMDEtLjY3MzMtNy45MjkybC42NjMtLjExMjguMTQ1Ni0uNjU2MmE1LjQ5NiA1LjQ5NiAwIDAxMTAuNzI5NCAwbC4xNDU2LjY1NjIuNjYyNi4xMTI4QTMuOTkyNSAzLjk5MjUgMCAwMTE5IDIyem01LjU5NzQtNi4xMjg5YTUuOTY2MSA1Ljk2NjEgMCAwMC0zLjk0OC0zLjYyNyA3LjQ5IDcuNDkgMCAwMC0yLjQ4OS0zLjU4IDUuOTAxOCA1LjkwMTggMCAwMTMuNjM4MS00LjQ0NzMgOC40NTc3IDguNDU3NyAwIDAwMS45NCA3LjU5NjdBNy40MDA3IDcuNDAwNyAwIDAwMjcuNjQgMTQuMDQxIDUuNDQ4NyA1LjQ0ODcgMCAwMTI0LjU5NzQgMTUuODcxMXpcIj48L3BhdGg+PC9zdmc+YFxuICB9LFxuXG4gIH07XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHt9XG5cblx0bmdBZnRlclZpZXdJbml0KCkge1xuICAgIGNvbnN0IHN2ZyA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIHN2Zy5zZXRBdHRyaWJ1dGUoXCJ4bWxuc1wiLCBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIpO1xuXG4gICAgY29uc3QgaWNvbiA9IHRoaXMuaWNvbnNbdGhpcy5zaXplXVxuXG4gICAgY29uc3QgZG9tUGFyc2VyID0gbmV3IERPTVBhcnNlcigpO1xuICAgIGNvbnN0IHJhd1NWRyA9IGljb24uc3ZnO1xuICAgIGNvbnN0IHN2Z0VsZW1lbnQgPSBkb21QYXJzZXIucGFyc2VGcm9tU3RyaW5nKHJhd1NWRywgXCJpbWFnZS9zdmcreG1sXCIpLmRvY3VtZW50RWxlbWVudDtcblxuICAgIGxldCBub2RlID0gc3ZnRWxlbWVudC5maXJzdENoaWxkO1xuICAgIHdoaWxlIChub2RlKSB7XG4gICAgICAvLyBpbXBvcnROb2RlIG1ha2VzIGEgY2xvbmUgb2YgdGhlIG5vZGVcbiAgICAgIC8vIHRoaXMgZW5zdXJlcyB3ZSBrZWVwIGxvb3Bpbmcgb3ZlciB0aGUgbm9kZXMgaW4gdGhlIHBhcnNlZCBkb2N1bWVudFxuICAgICAgc3ZnLmFwcGVuZENoaWxkKHN2Zy5vd25lckRvY3VtZW50LmltcG9ydE5vZGUobm9kZSwgdHJ1ZSkpO1xuICAgICAgbm9kZSA9IG5vZGUubmV4dFNpYmxpbmc7XG4gICAgfVxuXG4gICAgY29uc3QgYXR0cmlidXRlcyA9IGdldEF0dHJpYnV0ZXMoe1xuICAgICAgd2lkdGg6IGljb24ubWV0YWRhdGEuZGVzY3JpcHRvci5hdHRycy5oZWlnaHQsXG4gICAgICBoZWlnaHQ6IGljb24ubWV0YWRhdGEuZGVzY3JpcHRvci5hdHRycy5oZWlnaHQsXG4gICAgICB2aWV3Qm94OiBpY29uLm1ldGFkYXRhLmRlc2NyaXB0b3IuYXR0cnMudmlld0JveCxcbiAgICAgIHRpdGxlOiB0aGlzLnRpdGxlLFxuICAgICAgXCJhcmlhLWxhYmVsXCI6IHRoaXMuYXJpYUxhYmVsLFxuICAgICAgXCJhcmlhLWxhYmVsbGVkYnlcIjogdGhpcy5hcmlhTGFiZWxsZWRieSxcbiAgICAgIFwiYXJpYS1oaWRkZW5cIjogdGhpcy5hcmlhSGlkZGVuLFxuICAgICAgZm9jdXNhYmxlOiB0aGlzLmlzRm9jdXNhYmxlLnRvU3RyaW5nKClcbiAgICB9KTtcblxuICAgIGNvbnN0IGF0dHJLZXlzID0gT2JqZWN0LmtleXMoYXR0cmlidXRlcyk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhdHRyS2V5cy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3Qga2V5ID0gYXR0cktleXNbaV07XG4gICAgICBjb25zdCB2YWx1ZSA9IGF0dHJpYnV0ZXNba2V5XTtcbiAgICAgIGlmIChrZXkgPT09IFwidGl0bGVcIikge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICBzdmcuc2V0QXR0cmlidXRlKGtleSwgdmFsdWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChhdHRyaWJ1dGVzLnRpdGxlKSB7XG4gICAgICBjb25zdCB0aXRsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJ0aXRsZVwiKTtcbiAgICAgIHRpdGxlLnRleHRDb250ZW50ID0gYXR0cmlidXRlcy50aXRsZTtcbiAgICAgIFNub3dTY2F0dGVyZWROaWdodERpcmVjdGl2ZS50aXRsZUlkQ291bnRlcisrO1xuICAgICAgdGl0bGUuc2V0QXR0cmlidXRlKFwiaWRcIiwgYHNub3ctc2NhdHRlcmVkLW5pZ2h0LSR7U25vd1NjYXR0ZXJlZE5pZ2h0RGlyZWN0aXZlLnRpdGxlSWRDb3VudGVyfWApO1xuICAgICAgc3ZnLmFwcGVuZENoaWxkKHRpdGxlKTtcbiAgICAgIHN2Zy5zZXRBdHRyaWJ1dGUoXCJhcmlhLWxhYmVsbGVkYnlcIiwgYHNub3ctc2NhdHRlcmVkLW5pZ2h0LSR7U25vd1NjYXR0ZXJlZE5pZ2h0RGlyZWN0aXZlLnRpdGxlSWRDb3VudGVyfWApO1xuICAgIH1cblx0fVxufVxuXG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFxuICBTbm93U2NhdHRlcmVkTmlnaHRDb21wb25lbnQsXG4gIFNub3dTY2F0dGVyZWROaWdodERpcmVjdGl2ZSxcblxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgXG4gIFNub3dTY2F0dGVyZWROaWdodENvbXBvbmVudCxcbiAgU25vd1NjYXR0ZXJlZE5pZ2h0RGlyZWN0aXZlLFxuXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgU25vd1NjYXR0ZXJlZE5pZ2h0TW9kdWxlIHt9XG4iXX0=