@tekdi/sunbird-quml-player
Version:
The QuML player library components are powered by Angular. This player is primarily designed to be used on Sunbird consumption platforms (mobile app, web portal, offline desktop app) to drive reusability and maintainability, hence reducing the redundant d
52 lines • 19.8 kB
JavaScript
import { Component, EventEmitter, Input, Output } from '@angular/core';
import * as i0 from "@angular/core";
import * as i1 from "@angular/common";
import * as i2 from "../pipes/safe-html/safe-html.pipe";
export class McqImageOptionComponent {
constructor() {
this.showQumlPopup = false;
this.imgOptionSelected = new EventEmitter();
}
showPopup(image) {
this.showQumlPopup = true;
this.qumlPopupImage = image;
}
optionClicked(event, mcqOption) {
this.imgOptionSelected.emit({
name: 'optionSelect',
option: mcqOption,
solutions: this.solutions
});
}
onEnter(event, mcqOption) {
/* istanbul ignore else */
if (event.key === 'Enter') {
event.stopPropagation();
this.optionClicked(event, mcqOption);
}
}
openPopup(optionHtml) {
this.showQumlPopup = true;
this.qumlPopupImage = optionHtml;
}
closePopUp() {
this.showQumlPopup = false;
}
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: McqImageOptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: McqImageOptionComponent, selector: "quml-mcq-image-option", inputs: { mcqQuestion: "mcqQuestion", solutions: "solutions", mcqOption: "mcqOption", cardinality: "cardinality" }, outputs: { imgOptionSelected: "imgOptionSelected" }, ngImport: i0, template: "<div class=\"quml-mcq-option-card\" tabindex=\"0\" (keydown)=\"mcqOption.isDisabled ? null: onEnter($event, mcqOption)\"\n(click)=\"mcqOption.isDisabled ? null: optionClicked($event, mcqOption)\"\n[ngClass]=\"mcqOption?.selected ? 'quml-mcq-option-card quml-option--selected' : 'quml-mcq-option-card'\">\n <div class=\"option\" *ngIf=\"mcqOption\" [innerHTML]=\"mcqOption?.label | safeHtml\"\n [ngClass]=\"{'disabled': mcqOption.isDisabled === true}\"></div>\n <div class=\"container\">\n <input type=\"radio\" *ngIf=\"cardinality==='single'\" name=\"radio\" [checked]=\"mcqOption.selected\" id=\"option-checkbox\" tabindex=\"-1\" (click)=\"optionClicked($event, mcqOption)\">\n <input type=\"checkbox\" *ngIf=\"cardinality==='multiple'\" name=\"checkbox\" [checked]=\"mcqOption.selected\" id=\"option-checkbox\"\n tabindex=\"-1\" [disabled]=\"mcqOption?.isDisabled\">\n <span [ngClass]=\"{'radiomark': cardinality==='single','checkmark':cardinality==='multiple'}\" tabindex=\"-1\"></span>\n </div>\n</div>\n", styles: ["::ng-deep :root{--quml-btn-border: #ccc;--quml-color-gray: #666;--quml-checkmark: #cdcdcd;--quml-color-primary-shade: rgba(0, 0, 0, .1);--quml-option-card-bg: #fff;--quml-option-selected-checkmark:#ffff}.quml-mcq-option-card{position:relative;background-color:var(--quml-option-card-bg);border-radius:.25rem;border:.0625rem solid var(--quml-btn-border);padding:1rem;box-shadow:0 .125rem .75rem 0 var(--quml-color-primary-shade);display:flex;align-items:center;justify-content:space-between;gap:.5rem}.quml-mcq-option-card .option-image{position:relative}.quml-mcq-option-card .option-image img{min-width:100%;vertical-align:bottom;width:100%!important}.quml-mcq-option-card .option{color:var(--quml-color-gray);font-size:.75rem;font-weight:700;flex:1}.quml-mcq-option-card label{margin-bottom:0}.zoom-in-icon{position:absolute;right:.5rem;bottom:0}::ng-deep .quml-mcq-option-card .option img{max-width:100%}::ng-deep .quml-mcq-option-card .option label{margin-bottom:0}.selected-option-text{color:var(--primary-color)!important}.icon-zommin{position:absolute;bottom:2px;right:-1px;content:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMTlweCIgaGVpZ2h0PSIxOXB4IiB2aWV3Qm94PSIwIDAgMTkgMTkiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDYyICg5MTM5MCkgLSBodHRwczovL3NrZXRjaC5jb20gLS0+CiAgICA8dGl0bGU+em9vbTwvdGl0bGU+CiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4KICAgIDxnIGlkPSJkZXZzIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4KICAgICAgICA8ZyBpZD0iem9vbSI+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik05LjUsMCBMMTgsMCBDMTguNTUyMjg0NywtMS4wMTQ1MzA2M2UtMTYgMTksMC40NDc3MTUyNSAxOSwxIEwxOSwxMyBDMTksMTYuMzEzNzA4NSAxNi4zMTM3MDg1LDE5IDEzLDE5IEwxLDE5IEMwLjQ0NzcxNTI1LDE5IDYuNzYzNTM3NTFlLTE3LDE4LjU1MjI4NDcgMCwxOCBMMCw5LjUgQy02LjQyNTM2MDY0ZS0xNiw0LjI1MzI5NDg4IDQuMjUzMjk0ODgsOS42MzgwNDA5NWUtMTYgOS41LDAgWiIgaWQ9IlJlY3RhbmdsZSIgZmlsbC1vcGFjaXR5PSIwLjUiIGZpbGw9IiM0MzQzNDMiIGZpbGwtcnVsZT0ibm9uemVybyI+PC9wYXRoPgogICAgICAgICAgICA8ZyBpZD0iR3JvdXAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDUuMDAwMDAwLCA0LjAwMDAwMCkiIGZpbGw9IiNGRkZGRkYiPgogICAgICAgICAgICAgICAgPHBhdGggZD0iTTQuNTgzMzMzMzMsMC43NSBDNi45NzY2NjY2NywwLjc1IDguOTE2NjY2NjcsMi42OSA4LjkxNjY2NjY3LDUuMDgzMzMzMzMgQzguOTE2NjY2NjcsNi4xNTY2NjY2NyA4LjUyMzMzMzMzLDcuMTQzMzMzMzMgNy44Nyw3LjkwMzMzMzMzIEw3Ljg3LDcuOTAzMzMzMzMgTDguMDU2NjY2NjcsOC4wODMzMzMzMyBMOC41ODMzMzMzMyw4LjA4MzMzMzMzIEwxMS45MSwxMS40MTY2NjY3IEwxMC45MTY2NjY3LDEyLjQxIEw3LjU4MzMzMzMzLDkuMDgzMzMzMzMgTDcuNTgzMzMzMzMsOC41NTY2NjY2NyBMNy40MDMzMzMzMyw4LjM3IEM2LjY0MzMzMzMzLDkuMDIzMzMzMzMgNS42NTY2NjY2Nyw5LjQxNjY2NjY3IDQuNTgzMzMzMzMsOS40MTY2NjY2NyBDMi4xOSw5LjQxNjY2NjY3IDAuMjUsNy40NzY2NjY2NyAwLjI1LDUuMDgzMzMzMzMgQzAuMjUsMi42OSAyLjE5LDAuNzUgNC41ODMzMzMzMywwLjc1IFogTTQuNTgzMzMzMzMsMi4wODMzMzMzMyBDMi45MjMzMzMzMywyLjA4MzMzMzMzIDEuNTgzMzMzMzMsMy40MjMzMzMzMyAxLjU4MzMzMzMzLDUuMDgzMzMzMzMgQzEuNTgzMzMzMzMsNi43NDMzMzMzMyAyLjkyMzMzMzMzLDguMDgzMzMzMzMgNC41ODMzMzMzMyw4LjA4MzMzMzMzIEM2LjI0MzMzMzMzLDguMDgzMzMzMzMgNy41ODMzMzMzMyw2Ljc0MzMzMzMzIDcuNTgzMzMzMzMsNS4wODMzMzMzMyBDNy41ODMzMzMzMywzLjQyMzMzMzMzIDYuMjQzMzMzMzMsMi4wODMzMzMzMyA0LjU4MzMzMzMzLDIuMDgzMzMzMzMgWiBNNC45MTY2NjY2NywzLjQxNjY2NjY3IEw0LjkxNjY2NjY3LDQuNzUgTDYuMjUsNC43NSBMNi4yNSw1LjQxNjY2NjY3IEw0LjkxNjY2NjY3LDUuNDE2NjY2NjcgTDQuOTE2NjY2NjcsNi43NSBMNC4yNSw2Ljc1IEw0LjI1LDUuNDE2NjY2NjcgTDIuOTE2NjY2NjcsNS40MTY2NjY2NyBMMi45MTY2NjY2Nyw0Ljc1IEw0LjI1LDQuNzUgTDQuMjUsMy40MTY2NjY2NyBMNC45MTY2NjY2NywzLjQxNjY2NjY3IFoiIGlkPSJDb21iaW5lZC1TaGFwZSI+PC9wYXRoPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4=)}.image-option-selected{border:.125rem solid var(--primary-color)}.checkmark{display:block;height:1.25rem;width:1.25rem;border:.125rem solid var(--quml-checkmark)}.container input{position:absolute;opacity:0;cursor:pointer}.container input:checked~.checkmark,.quml-option--selected .checkmark{position:relative;background-color:var(--quml-option-selected-checkmark);border:.125rem solid var(--primary-color)}input:checked~.checkmark:after,.quml-option--selected .checkmark:after{content:\"\";opacity:1}.container .checkmark:after,.quml-option--selected .container .checkmark:after{width:.75rem;height:.75rem;background:var(--primary-color);position:absolute;top:50%;left:50%;margin:0;transform:translate(-50%,-50%);opacity:0}.quml-option--selected .container .checkmark:after{opacity:1}.quml-option--selected{border:.125rem solid var(--primary-color)}.radiomark{display:block;height:1.25rem;width:1.25rem;border-radius:50%;border:.125rem solid var(--quml-checkmark)}.container input:checked~.radiomark,.quml-option--selected .radiomark{position:relative;background-color:var(--quml-option-selected-checkmark);border:.125rem solid var(--primary-color)}input:checked~.radiomark:after,.quml-option--selected .radiomark:after{content:\"\";opacity:1}.container .radiomark:after,.quml-option--selected .container .radiomark:after{width:.75rem;height:.75rem;border-radius:50%;background:var(--primary-color);position:absolute;top:50%;left:50%;margin:0;transform:translate(-50%,-50%);opacity:0}.quml-option--selected .container .checkmark:after,.quml-option--selected .container .radiomark:after{opacity:1}.disabled{opacity:.4}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.SafeHtmlPipe, name: "safeHtml" }] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: McqImageOptionComponent, decorators: [{
type: Component,
args: [{ selector: 'quml-mcq-image-option', template: "<div class=\"quml-mcq-option-card\" tabindex=\"0\" (keydown)=\"mcqOption.isDisabled ? null: onEnter($event, mcqOption)\"\n(click)=\"mcqOption.isDisabled ? null: optionClicked($event, mcqOption)\"\n[ngClass]=\"mcqOption?.selected ? 'quml-mcq-option-card quml-option--selected' : 'quml-mcq-option-card'\">\n <div class=\"option\" *ngIf=\"mcqOption\" [innerHTML]=\"mcqOption?.label | safeHtml\"\n [ngClass]=\"{'disabled': mcqOption.isDisabled === true}\"></div>\n <div class=\"container\">\n <input type=\"radio\" *ngIf=\"cardinality==='single'\" name=\"radio\" [checked]=\"mcqOption.selected\" id=\"option-checkbox\" tabindex=\"-1\" (click)=\"optionClicked($event, mcqOption)\">\n <input type=\"checkbox\" *ngIf=\"cardinality==='multiple'\" name=\"checkbox\" [checked]=\"mcqOption.selected\" id=\"option-checkbox\"\n tabindex=\"-1\" [disabled]=\"mcqOption?.isDisabled\">\n <span [ngClass]=\"{'radiomark': cardinality==='single','checkmark':cardinality==='multiple'}\" tabindex=\"-1\"></span>\n </div>\n</div>\n", styles: ["::ng-deep :root{--quml-btn-border: #ccc;--quml-color-gray: #666;--quml-checkmark: #cdcdcd;--quml-color-primary-shade: rgba(0, 0, 0, .1);--quml-option-card-bg: #fff;--quml-option-selected-checkmark:#ffff}.quml-mcq-option-card{position:relative;background-color:var(--quml-option-card-bg);border-radius:.25rem;border:.0625rem solid var(--quml-btn-border);padding:1rem;box-shadow:0 .125rem .75rem 0 var(--quml-color-primary-shade);display:flex;align-items:center;justify-content:space-between;gap:.5rem}.quml-mcq-option-card .option-image{position:relative}.quml-mcq-option-card .option-image img{min-width:100%;vertical-align:bottom;width:100%!important}.quml-mcq-option-card .option{color:var(--quml-color-gray);font-size:.75rem;font-weight:700;flex:1}.quml-mcq-option-card label{margin-bottom:0}.zoom-in-icon{position:absolute;right:.5rem;bottom:0}::ng-deep .quml-mcq-option-card .option img{max-width:100%}::ng-deep .quml-mcq-option-card .option label{margin-bottom:0}.selected-option-text{color:var(--primary-color)!important}.icon-zommin{position:absolute;bottom:2px;right:-1px;content:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMTlweCIgaGVpZ2h0PSIxOXB4IiB2aWV3Qm94PSIwIDAgMTkgMTkiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDYyICg5MTM5MCkgLSBodHRwczovL3NrZXRjaC5jb20gLS0+CiAgICA8dGl0bGU+em9vbTwvdGl0bGU+CiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4KICAgIDxnIGlkPSJkZXZzIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4KICAgICAgICA8ZyBpZD0iem9vbSI+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik05LjUsMCBMMTgsMCBDMTguNTUyMjg0NywtMS4wMTQ1MzA2M2UtMTYgMTksMC40NDc3MTUyNSAxOSwxIEwxOSwxMyBDMTksMTYuMzEzNzA4NSAxNi4zMTM3MDg1LDE5IDEzLDE5IEwxLDE5IEMwLjQ0NzcxNTI1LDE5IDYuNzYzNTM3NTFlLTE3LDE4LjU1MjI4NDcgMCwxOCBMMCw5LjUgQy02LjQyNTM2MDY0ZS0xNiw0LjI1MzI5NDg4IDQuMjUzMjk0ODgsOS42MzgwNDA5NWUtMTYgOS41LDAgWiIgaWQ9IlJlY3RhbmdsZSIgZmlsbC1vcGFjaXR5PSIwLjUiIGZpbGw9IiM0MzQzNDMiIGZpbGwtcnVsZT0ibm9uemVybyI+PC9wYXRoPgogICAgICAgICAgICA8ZyBpZD0iR3JvdXAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDUuMDAwMDAwLCA0LjAwMDAwMCkiIGZpbGw9IiNGRkZGRkYiPgogICAgICAgICAgICAgICAgPHBhdGggZD0iTTQuNTgzMzMzMzMsMC43NSBDNi45NzY2NjY2NywwLjc1IDguOTE2NjY2NjcsMi42OSA4LjkxNjY2NjY3LDUuMDgzMzMzMzMgQzguOTE2NjY2NjcsNi4xNTY2NjY2NyA4LjUyMzMzMzMzLDcuMTQzMzMzMzMgNy44Nyw3LjkwMzMzMzMzIEw3Ljg3LDcuOTAzMzMzMzMgTDguMDU2NjY2NjcsOC4wODMzMzMzMyBMOC41ODMzMzMzMyw4LjA4MzMzMzMzIEwxMS45MSwxMS40MTY2NjY3IEwxMC45MTY2NjY3LDEyLjQxIEw3LjU4MzMzMzMzLDkuMDgzMzMzMzMgTDcuNTgzMzMzMzMsOC41NTY2NjY2NyBMNy40MDMzMzMzMyw4LjM3IEM2LjY0MzMzMzMzLDkuMDIzMzMzMzMgNS42NTY2NjY2Nyw5LjQxNjY2NjY3IDQuNTgzMzMzMzMsOS40MTY2NjY2NyBDMi4xOSw5LjQxNjY2NjY3IDAuMjUsNy40NzY2NjY2NyAwLjI1LDUuMDgzMzMzMzMgQzAuMjUsMi42OSAyLjE5LDAuNzUgNC41ODMzMzMzMywwLjc1IFogTTQuNTgzMzMzMzMsMi4wODMzMzMzMyBDMi45MjMzMzMzMywyLjA4MzMzMzMzIDEuNTgzMzMzMzMsMy40MjMzMzMzMyAxLjU4MzMzMzMzLDUuMDgzMzMzMzMgQzEuNTgzMzMzMzMsNi43NDMzMzMzMyAyLjkyMzMzMzMzLDguMDgzMzMzMzMgNC41ODMzMzMzMyw4LjA4MzMzMzMzIEM2LjI0MzMzMzMzLDguMDgzMzMzMzMgNy41ODMzMzMzMyw2Ljc0MzMzMzMzIDcuNTgzMzMzMzMsNS4wODMzMzMzMyBDNy41ODMzMzMzMywzLjQyMzMzMzMzIDYuMjQzMzMzMzMsMi4wODMzMzMzMyA0LjU4MzMzMzMzLDIuMDgzMzMzMzMgWiBNNC45MTY2NjY2NywzLjQxNjY2NjY3IEw0LjkxNjY2NjY3LDQuNzUgTDYuMjUsNC43NSBMNi4yNSw1LjQxNjY2NjY3IEw0LjkxNjY2NjY3LDUuNDE2NjY2NjcgTDQuOTE2NjY2NjcsNi43NSBMNC4yNSw2Ljc1IEw0LjI1LDUuNDE2NjY2NjcgTDIuOTE2NjY2NjcsNS40MTY2NjY2NyBMMi45MTY2NjY2Nyw0Ljc1IEw0LjI1LDQuNzUgTDQuMjUsMy40MTY2NjY2NyBMNC45MTY2NjY2NywzLjQxNjY2NjY3IFoiIGlkPSJDb21iaW5lZC1TaGFwZSI+PC9wYXRoPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4=)}.image-option-selected{border:.125rem solid var(--primary-color)}.checkmark{display:block;height:1.25rem;width:1.25rem;border:.125rem solid var(--quml-checkmark)}.container input{position:absolute;opacity:0;cursor:pointer}.container input:checked~.checkmark,.quml-option--selected .checkmark{position:relative;background-color:var(--quml-option-selected-checkmark);border:.125rem solid var(--primary-color)}input:checked~.checkmark:after,.quml-option--selected .checkmark:after{content:\"\";opacity:1}.container .checkmark:after,.quml-option--selected .container .checkmark:after{width:.75rem;height:.75rem;background:var(--primary-color);position:absolute;top:50%;left:50%;margin:0;transform:translate(-50%,-50%);opacity:0}.quml-option--selected .container .checkmark:after{opacity:1}.quml-option--selected{border:.125rem solid var(--primary-color)}.radiomark{display:block;height:1.25rem;width:1.25rem;border-radius:50%;border:.125rem solid var(--quml-checkmark)}.container input:checked~.radiomark,.quml-option--selected .radiomark{position:relative;background-color:var(--quml-option-selected-checkmark);border:.125rem solid var(--primary-color)}input:checked~.radiomark:after,.quml-option--selected .radiomark:after{content:\"\";opacity:1}.container .radiomark:after,.quml-option--selected .container .radiomark:after{width:.75rem;height:.75rem;border-radius:50%;background:var(--primary-color);position:absolute;top:50%;left:50%;margin:0;transform:translate(-50%,-50%);opacity:0}.quml-option--selected .container .checkmark:after,.quml-option--selected .container .radiomark:after{opacity:1}.disabled{opacity:.4}\n"] }]
}], propDecorators: { mcqQuestion: [{
type: Input
}], solutions: [{
type: Input
}], mcqOption: [{
type: Input
}], cardinality: [{
type: Input
}], imgOptionSelected: [{
type: Output
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWNxLWltYWdlLW9wdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9xdW1sLWxpYnJhcnkvc3JjL2xpYi9tY3EtaW1hZ2Utb3B0aW9uL21jcS1pbWFnZS1vcHRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcXVtbC1saWJyYXJ5L3NyYy9saWIvbWNxLWltYWdlLW9wdGlvbi9tY3EtaW1hZ2Utb3B0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFPdkUsTUFBTSxPQUFPLHVCQUF1QjtJQUxwQztRQU1FLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBTVosc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztLQWdDbEQ7SUE5QkMsU0FBUyxDQUFDLEtBQUs7UUFDYixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUMxQixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztJQUM5QixDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQUssRUFBRSxTQUFTO1FBQzVCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQ3pCO1lBQ0UsSUFBSSxFQUFFLGNBQWM7WUFDcEIsTUFBTSxFQUFFLFNBQVM7WUFDakIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1NBQzFCLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxPQUFPLENBQUMsS0FBb0IsRUFBRSxTQUFTO1FBQ3JDLDBCQUEwQjtRQUMxQixJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssT0FBTyxFQUFFO1lBQ3pCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztTQUN0QztJQUNILENBQUM7SUFFRCxTQUFTLENBQUMsVUFBVTtRQUNsQixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUMxQixJQUFJLENBQUMsY0FBYyxHQUFHLFVBQVUsQ0FBQztJQUNuQyxDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQzdCLENBQUM7a0lBdENVLHVCQUF1QjtzSEFBdkIsdUJBQXVCLHNPQ1BwQyw4Z0NBWUE7OzRGRExhLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSx1QkFBdUI7OEJBT3hCLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0ksaUJBQWlCO3NCQUExQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncXVtbC1tY3EtaW1hZ2Utb3B0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21jcS1pbWFnZS1vcHRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tY3EtaW1hZ2Utb3B0aW9uLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTWNxSW1hZ2VPcHRpb25Db21wb25lbnQge1xuICBzaG93UXVtbFBvcHVwID0gZmFsc2U7XG4gIHF1bWxQb3B1cEltYWdlOiBhbnk7XG4gIEBJbnB1dCgpIG1jcVF1ZXN0aW9uOiBhbnk7XG4gIEBJbnB1dCgpIHNvbHV0aW9uczogYW55O1xuICBASW5wdXQoKSBtY3FPcHRpb246IGFueTtcbiAgQElucHV0KCkgY2FyZGluYWxpdHk6IHN0cmluZztcbiAgQE91dHB1dCgpIGltZ09wdGlvblNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHNob3dQb3B1cChpbWFnZSkge1xuICAgIHRoaXMuc2hvd1F1bWxQb3B1cCA9IHRydWU7XG4gICAgdGhpcy5xdW1sUG9wdXBJbWFnZSA9IGltYWdlO1xuICB9XG5cbiAgb3B0aW9uQ2xpY2tlZChldmVudCwgbWNxT3B0aW9uKSB7XG4gICAgdGhpcy5pbWdPcHRpb25TZWxlY3RlZC5lbWl0KFxuICAgICAge1xuICAgICAgICBuYW1lOiAnb3B0aW9uU2VsZWN0JyxcbiAgICAgICAgb3B0aW9uOiBtY3FPcHRpb24sXG4gICAgICAgIHNvbHV0aW9uczogdGhpcy5zb2x1dGlvbnNcbiAgICAgIH0pO1xuICB9XG5cbiAgb25FbnRlcihldmVudDogS2V5Ym9hcmRFdmVudCwgbWNxT3B0aW9uKSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIHRoaXMub3B0aW9uQ2xpY2tlZChldmVudCwgbWNxT3B0aW9uKTtcbiAgICB9XG4gIH1cblxuICBvcGVuUG9wdXAob3B0aW9uSHRtbCkge1xuICAgIHRoaXMuc2hvd1F1bWxQb3B1cCA9IHRydWU7XG4gICAgdGhpcy5xdW1sUG9wdXBJbWFnZSA9IG9wdGlvbkh0bWw7XG4gIH1cblxuICBjbG9zZVBvcFVwKCkge1xuICAgIHRoaXMuc2hvd1F1bWxQb3B1cCA9IGZhbHNlO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicXVtbC1tY3Etb3B0aW9uLWNhcmRcIiB0YWJpbmRleD1cIjBcIiAoa2V5ZG93bik9XCJtY3FPcHRpb24uaXNEaXNhYmxlZCA/IG51bGw6IG9uRW50ZXIoJGV2ZW50LCBtY3FPcHRpb24pXCJcbihjbGljayk9XCJtY3FPcHRpb24uaXNEaXNhYmxlZCA/IG51bGw6IG9wdGlvbkNsaWNrZWQoJGV2ZW50LCBtY3FPcHRpb24pXCJcbltuZ0NsYXNzXT1cIm1jcU9wdGlvbj8uc2VsZWN0ZWQgPyAncXVtbC1tY3Etb3B0aW9uLWNhcmQgcXVtbC1vcHRpb24tLXNlbGVjdGVkJyA6ICdxdW1sLW1jcS1vcHRpb24tY2FyZCdcIj5cbiAgPGRpdiBjbGFzcz1cIm9wdGlvblwiICpuZ0lmPVwibWNxT3B0aW9uXCIgW2lubmVySFRNTF09XCJtY3FPcHRpb24/LmxhYmVsIHwgc2FmZUh0bWxcIlxuICBbbmdDbGFzc109XCJ7J2Rpc2FibGVkJzogbWNxT3B0aW9uLmlzRGlzYWJsZWQgPT09IHRydWV9XCI+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxuICAgICAgPGlucHV0IHR5cGU9XCJyYWRpb1wiICpuZ0lmPVwiY2FyZGluYWxpdHk9PT0nc2luZ2xlJ1wiIG5hbWU9XCJyYWRpb1wiIFtjaGVja2VkXT1cIm1jcU9wdGlvbi5zZWxlY3RlZFwiIGlkPVwib3B0aW9uLWNoZWNrYm94XCIgdGFiaW5kZXg9XCItMVwiIChjbGljayk9XCJvcHRpb25DbGlja2VkKCRldmVudCwgbWNxT3B0aW9uKVwiPlxuICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiICpuZ0lmPVwiY2FyZGluYWxpdHk9PT0nbXVsdGlwbGUnXCIgbmFtZT1cImNoZWNrYm94XCIgW2NoZWNrZWRdPVwibWNxT3B0aW9uLnNlbGVjdGVkXCIgaWQ9XCJvcHRpb24tY2hlY2tib3hcIlxuICAgICAgdGFiaW5kZXg9XCItMVwiIFtkaXNhYmxlZF09XCJtY3FPcHRpb24/LmlzRGlzYWJsZWRcIj5cbiAgICAgIDxzcGFuIFtuZ0NsYXNzXT1cInsncmFkaW9tYXJrJzogY2FyZGluYWxpdHk9PT0nc2luZ2xlJywnY2hlY2ttYXJrJzpjYXJkaW5hbGl0eT09PSdtdWx0aXBsZSd9XCIgdGFiaW5kZXg9XCItMVwiPjwvc3Bhbj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19