otimus-library 0.1.64 → 0.1.65

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.
Files changed (30) hide show
  1. package/esm2022/lib/components/oc-accordion/oc-accordion.component.mjs +4 -4
  2. package/esm2022/lib/components/oc-accordion-item/oc-accordion-item.component.mjs +4 -4
  3. package/esm2022/lib/components/oc-autocomplete/oc-autocomplete.component.mjs +4 -4
  4. package/esm2022/lib/components/oc-badge/oc-badge.component.mjs +3 -3
  5. package/esm2022/lib/components/oc-checkbox/oc-checkbox.component.mjs +4 -4
  6. package/esm2022/lib/components/oc-chip/oc-chip.component.mjs +4 -4
  7. package/esm2022/lib/components/oc-filter/oc-filter.component.mjs +3 -3
  8. package/esm2022/lib/components/oc-input/oc-input.component.mjs +4 -4
  9. package/esm2022/lib/components/oc-key-value/oc-key-value.component.mjs +3 -3
  10. package/esm2022/lib/components/oc-log/oc-log.component.mjs +3 -3
  11. package/esm2022/lib/components/oc-menu/oc-menu.component.mjs +4 -4
  12. package/esm2022/lib/components/oc-modal/oc-modal.component.mjs +4 -4
  13. package/esm2022/lib/components/oc-modal-footer/oc-modal-footer.component.mjs +3 -3
  14. package/esm2022/lib/components/oc-not-found/oc-not-found.component.mjs +3 -3
  15. package/esm2022/lib/components/oc-pagination/oc-pagination.component.mjs +3 -3
  16. package/esm2022/lib/components/oc-profile/oc-profile.component.mjs +4 -4
  17. package/esm2022/lib/components/oc-step/oc-step.component.mjs +4 -4
  18. package/esm2022/lib/components/oc-stepper/oc-stepper.component.mjs +4 -4
  19. package/esm2022/lib/components/oc-tab/oc-tab.component.mjs +3 -3
  20. package/esm2022/lib/components/oc-table/oc-table.component.mjs +3 -3
  21. package/esm2022/lib/components/oc-tabs/oc-tabs.component.mjs +3 -3
  22. package/esm2022/lib/components/oc-toast/oc-toast.component.mjs +3 -3
  23. package/esm2022/lib/components/oc-toggle/oc-toggle.component.mjs +3 -3
  24. package/esm2022/lib/directives/oc-tooltip/oc-tooltip.directive.mjs +4 -4
  25. package/esm2022/lib/otimus-library.component.mjs +3 -3
  26. package/esm2022/lib/otimus-library.service.mjs +3 -3
  27. package/esm2022/lib/services/oc-toast.service.mjs +4 -4
  28. package/fesm2022/otimus-library.mjs +81 -81
  29. package/fesm2022/otimus-library.mjs.map +1 -1
  30. package/package.json +1 -1
@@ -64,10 +64,10 @@ export class OcMenuComponent {
64
64
  typeof(key) {
65
65
  return typeof key;
66
66
  }
67
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: OcMenuComponent, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
68
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: OcMenuComponent, isStandalone: true, selector: "oc-menu", inputs: { ocMenu: "ocMenu" }, outputs: { ocChange: "ocChange" }, viewQueries: [{ propertyName: "menu", first: true, predicate: ["ocMenuEl"], descendants: true }], ngImport: i0, template: "<div class=\"oc-menu\" *ngIf=\"isMenuShown\" cdkMenu #ocMenuEl>\n <ul>\n @for(option of ocMenu; track $index) {\n <li\n [ngClass]=\"{\n 'checkbox-option cbx': typeof(option.checked) === 'boolean'\n }\"\n >\n @if(typeof(option.checked) === 'boolean'){\n <div class=\"checkbox-opt cbx\">\n <oc-checkbox (ocChange)=\"changeCheckbox(option.name, $event)\" [ocChecked]=\"option.checked!\" class=\"cbx\" ocSize=\"tiny\" [ocLabel]=\"option.name\" ocBorderColor=\"gray\"/>\n </div>\n }\n @if(option.icon) {\n <span class=\"material-symbols-outlined\">\n {{option.icon}}\n </span>\n } \n @if(option.callback){\n <button (click)=\"option.callback()\">{{option.name}}</button>\n }\n @if(option.url){\n <a [href]=\"option.url\" [target]=\"option.targetBlank ? '_blank' : ''\">{{option.name}}</a>\n }\n @if (!option.callback && !option.url && typeof(option.checked) !== 'boolean') {\n <span>{{option.name}}</span>\n }\n </li>\n }\n </ul>\n</div>\n", styles: ["*{box-sizing:border-box}.oc-menu{display:flex;flex-direction:column;border-radius:0 8px 8px;background-color:#f8f9ff;border:2px solid #ffffff;position:absolute;z-index:1000;max-height:800px;box-shadow:0 4px 8.7px #00000021;animation:showUp .15s ease}.oc-menu ul{display:flex;flex-direction:column;list-style:none;margin:0;padding:0;width:100%}.oc-menu ul li{text-align:left;text-decoration:none;width:100%;max-height:30px;display:flex;align-items:center;gap:.2rem;white-space:nowrap}.oc-menu ul li .checkbox-opt{min-width:1.3rem}.oc-menu ul li a,.oc-menu ul li button{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.oc-menu ul li a,.oc-menu ul li button,.oc-menu ul li span,.oc-menu ul li .checkbox-opt{color:#8f9596;text-decoration:none;font-size:1rem;font-weight:400;text-align:left;padding:0;margin:0;border:none;padding:.6rem;background-color:transparent;width:100%;height:100%;cursor:pointer}.oc-menu ul li .material-symbols-outlined{width:.3rem;font-size:1.1rem;pointer-events:none}.oc-menu ul li:hover{background-color:#fff}@keyframes showUp{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: CdkMenuModule }, { kind: "directive", type: i2.CdkMenu, selector: "[cdkMenu]", outputs: ["closed"], exportAs: ["cdkMenu"] }, { kind: "component", type: OcCheckboxComponent, selector: "oc-checkbox", inputs: ["ocChecked", "ocSize", "ocLabel", "ocName", "ocColor", "ocBorderColor", "formControl"], outputs: ["ocChange"] }] }); }
67
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: OcMenuComponent, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
68
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: OcMenuComponent, isStandalone: true, selector: "oc-menu", inputs: { ocMenu: "ocMenu" }, outputs: { ocChange: "ocChange" }, viewQueries: [{ propertyName: "menu", first: true, predicate: ["ocMenuEl"], descendants: true }], ngImport: i0, template: "<div class=\"oc-menu\" *ngIf=\"isMenuShown\" cdkMenu #ocMenuEl>\n <ul>\n @for(option of ocMenu; track $index) {\n <li\n [ngClass]=\"{\n 'checkbox-option cbx': typeof(option.checked) === 'boolean'\n }\"\n >\n @if(typeof(option.checked) === 'boolean'){\n <div class=\"checkbox-opt cbx\">\n <oc-checkbox (ocChange)=\"changeCheckbox(option.name, $event)\" [ocChecked]=\"option.checked!\" class=\"cbx\" ocSize=\"tiny\" [ocLabel]=\"option.name\" ocBorderColor=\"gray\"/>\n </div>\n }\n @if(option.icon) {\n <span class=\"material-symbols-outlined\">\n {{option.icon}}\n </span>\n } \n @if(option.callback){\n <button (click)=\"option.callback()\">{{option.name}}</button>\n }\n @if(option.url){\n <a [href]=\"option.url\" [target]=\"option.targetBlank ? '_blank' : ''\">{{option.name}}</a>\n }\n @if (!option.callback && !option.url && typeof(option.checked) !== 'boolean') {\n <span>{{option.name}}</span>\n }\n </li>\n }\n </ul>\n</div>\n", styles: ["*{box-sizing:border-box}.oc-menu{display:flex;flex-direction:column;border-radius:0 8px 8px;background-color:#f8f9ff;border:2px solid #ffffff;position:absolute;z-index:1000;max-height:800px;box-shadow:0 4px 8.7px #00000021;animation:showUp .15s ease}.oc-menu ul{display:flex;flex-direction:column;list-style:none;margin:0;padding:0;width:100%}.oc-menu ul li{text-align:left;text-decoration:none;width:100%;max-height:30px;display:flex;align-items:center;gap:.2rem;white-space:nowrap}.oc-menu ul li .checkbox-opt{min-width:1.3rem}.oc-menu ul li a,.oc-menu ul li button{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.oc-menu ul li a,.oc-menu ul li button,.oc-menu ul li span,.oc-menu ul li .checkbox-opt{color:#8f9596;text-decoration:none;font-size:1rem;font-weight:400;text-align:left;padding:0;margin:0;border:none;padding:.6rem;background-color:transparent;width:100%;height:100%;cursor:pointer}.oc-menu ul li .material-symbols-outlined{width:.3rem;font-size:1.1rem;pointer-events:none}.oc-menu ul li:hover{background-color:#fff}@keyframes showUp{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: CdkMenuModule }, { kind: "directive", type: i2.CdkMenu, selector: "[cdkMenu]", outputs: ["closed"], exportAs: ["cdkMenu"] }, { kind: "component", type: OcCheckboxComponent, selector: "oc-checkbox", inputs: ["ocChecked", "ocSize", "ocLabel", "ocName", "ocColor", "ocBorderColor", "formControl"], outputs: ["ocChange"] }] }); }
69
69
  }
70
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: OcMenuComponent, decorators: [{
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: OcMenuComponent, decorators: [{
71
71
  type: Component,
72
72
  args: [{ selector: 'oc-menu', standalone: true, imports: [CommonModule, CdkMenuModule, OcCheckboxComponent], template: "<div class=\"oc-menu\" *ngIf=\"isMenuShown\" cdkMenu #ocMenuEl>\n <ul>\n @for(option of ocMenu; track $index) {\n <li\n [ngClass]=\"{\n 'checkbox-option cbx': typeof(option.checked) === 'boolean'\n }\"\n >\n @if(typeof(option.checked) === 'boolean'){\n <div class=\"checkbox-opt cbx\">\n <oc-checkbox (ocChange)=\"changeCheckbox(option.name, $event)\" [ocChecked]=\"option.checked!\" class=\"cbx\" ocSize=\"tiny\" [ocLabel]=\"option.name\" ocBorderColor=\"gray\"/>\n </div>\n }\n @if(option.icon) {\n <span class=\"material-symbols-outlined\">\n {{option.icon}}\n </span>\n } \n @if(option.callback){\n <button (click)=\"option.callback()\">{{option.name}}</button>\n }\n @if(option.url){\n <a [href]=\"option.url\" [target]=\"option.targetBlank ? '_blank' : ''\">{{option.name}}</a>\n }\n @if (!option.callback && !option.url && typeof(option.checked) !== 'boolean') {\n <span>{{option.name}}</span>\n }\n </li>\n }\n </ul>\n</div>\n", styles: ["*{box-sizing:border-box}.oc-menu{display:flex;flex-direction:column;border-radius:0 8px 8px;background-color:#f8f9ff;border:2px solid #ffffff;position:absolute;z-index:1000;max-height:800px;box-shadow:0 4px 8.7px #00000021;animation:showUp .15s ease}.oc-menu ul{display:flex;flex-direction:column;list-style:none;margin:0;padding:0;width:100%}.oc-menu ul li{text-align:left;text-decoration:none;width:100%;max-height:30px;display:flex;align-items:center;gap:.2rem;white-space:nowrap}.oc-menu ul li .checkbox-opt{min-width:1.3rem}.oc-menu ul li a,.oc-menu ul li button{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.oc-menu ul li a,.oc-menu ul li button,.oc-menu ul li span,.oc-menu ul li .checkbox-opt{color:#8f9596;text-decoration:none;font-size:1rem;font-weight:400;text-align:left;padding:0;margin:0;border:none;padding:.6rem;background-color:transparent;width:100%;height:100%;cursor:pointer}.oc-menu ul li .material-symbols-outlined{width:.3rem;font-size:1.1rem;pointer-events:none}.oc-menu ul li:hover{background-color:#fff}@keyframes showUp{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}\n"] }]
73
73
  }], ctorParameters: () => [{ type: i0.Renderer2 }], propDecorators: { menu: [{
@@ -78,4 +78,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
78
78
  }], ocMenu: [{
79
79
  type: Input
80
80
  }] } });
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2MtbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vdGltdXMtbGlicmFyeS9zcmMvbGliL2NvbXBvbmVudHMvb2MtbWVudS9vYy1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL290aW11cy1saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9vYy1tZW51L29jLW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFHLFNBQVMsRUFBWSxZQUFZLEVBQUMsS0FBSyxFQUFVLE1BQU0sRUFBYSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0csT0FBTyxFQUFHLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7OztBQVMzRSxNQUFNLE9BQU8sZUFBZTtJQUMxQixZQUFvQixRQUFtQjtRQUFuQixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBRzdCLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFBO1FBQzlCLFdBQU0sR0FBaUIsRUFBRSxDQUFBO1FBQ2xDLGdCQUFXLEdBQVksS0FBSyxDQUFBO0lBTGMsQ0FBQztJQVEzQyxJQUFJO1FBQ0YsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUE7UUFFdkIsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUcsSUFBSSxDQUFDLElBQUksRUFBQztnQkFDWCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDcEUsSUFBSSxZQUFZLEVBQUU7b0JBQ2hCLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQTtvQkFDckMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQy9EO2FBQ0Y7UUFDSCxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUE7SUFDVCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQTtJQUN4QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsT0FBb0I7UUFDbkMsSUFBSSxNQUFNLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQztRQUNuQyxPQUFPLE1BQU0sRUFBRTtZQUNiLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsS0FBSyxRQUFRLEVBQUU7Z0JBQzdDLE9BQU8sTUFBMkIsQ0FBQzthQUNwQztZQUNELE1BQU0sR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDO1NBQy9CO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUMsQ0FBQyxDQUFLLEVBQUMsRUFBRTtZQUU5QyxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFBO1lBRWpFLElBQUcsVUFBVTtnQkFBRSxPQUFNO2lCQUNoQixJQUFHLENBQUMsSUFBSSxDQUFDLElBQUk7Z0JBQUUsT0FBTTtZQUUxQixJQUFHLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDakQsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUE7Z0JBQ3hCLE9BQU07YUFDUDtRQUVILENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFZLEVBQUUsT0FBZ0I7UUFDM0MsSUFBSSxTQUFTLENBQUE7UUFDYixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN6QixJQUFHLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxJQUFJLE9BQU8sT0FBTyxLQUFLLFNBQVMsRUFBRTtnQkFDckQsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUE7Z0JBRXRCLFNBQVMsR0FBRyxJQUFJLENBQUE7YUFDakI7UUFDSCxDQUFDLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQzdCLE9BQU8sU0FBUyxDQUFBO0lBQ2xCLENBQUM7SUFFRCxNQUFNLENBQUMsR0FBUTtRQUNiLE9BQU8sT0FBTyxHQUFHLENBQUE7SUFDbkIsQ0FBQzsrR0FyRVUsZUFBZTttR0FBZixlQUFlLHNPQ2I1Qiw4bUNBK0JBLGlxQ0R0QlksWUFBWSxnT0FBRSxhQUFhLDJJQUFFLG1CQUFtQjs7NEZBSS9DLGVBQWU7a0JBUDNCLFNBQVM7K0JBQ0UsU0FBUyxjQUNQLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUsbUJBQW1CLENBQUM7OEVBT3BDLElBQUk7c0JBQTFCLFNBQVM7dUJBQUMsVUFBVTtnQkFDWCxRQUFRO3NCQUFqQixNQUFNO2dCQUNFLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ICBDb21wb25lbnQsRWxlbWVudFJlZixFdmVudEVtaXR0ZXIsSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBSZW5kZXJlcjIsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgIENka01lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvbWVudSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgT2NNZW51VHlwZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvb2MtbWVudSc7XG5pbXBvcnQgeyBPY0NoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi4vb2MtY2hlY2tib3gvb2MtY2hlY2tib3guY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb2MtbWVudScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIENka01lbnVNb2R1bGUsIE9jQ2hlY2tib3hDb21wb25lbnRdLFxuICB0ZW1wbGF0ZVVybDogJy4vb2MtbWVudS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL29jLW1lbnUuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBPY01lbnVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHt9XG5cbiAgQFZpZXdDaGlsZCgnb2NNZW51RWwnKSBtZW51ITogRWxlbWVudFJlZjtcbiAgQE91dHB1dCgpIG9jQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpXG4gIEBJbnB1dCgpIG9jTWVudTogT2NNZW51VHlwZVtdID0gW11cbiAgaXNNZW51U2hvd246IGJvb2xlYW4gPSBmYWxzZVxuICBidXR0b25JZD86c3RyaW5nXG5cbiAgb3BlbigpIHtcbiAgICB0aGlzLmlzTWVudVNob3duID0gdHJ1ZVxuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZih0aGlzLm1lbnUpe1xuICAgICAgICBjb25zdCBwYXJlbnRCdXR0b24gPSB0aGlzLmZpbmRQYXJlbnRCdXR0b24odGhpcy5tZW51Lm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICBpZiAocGFyZW50QnV0dG9uKSB7XG4gICAgICAgICAgdGhpcy5idXR0b25JZCA9IGBvYy0ke01hdGgucmFuZG9tKCl9YFxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHBhcmVudEJ1dHRvbiwgJ2lkJywgdGhpcy5idXR0b25JZCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCAxMDApXG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmNsb3NlT25DbGlja091dCgpXG4gIH1cblxuICBmaW5kUGFyZW50QnV0dG9uKGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogSFRNTEJ1dHRvbkVsZW1lbnQgfCBudWxsIHtcbiAgICBsZXQgcGFyZW50ID0gZWxlbWVudC5wYXJlbnRFbGVtZW50O1xuICAgIHdoaWxlIChwYXJlbnQpIHtcbiAgICAgIGlmIChwYXJlbnQudGFnTmFtZS50b0xvd2VyQ2FzZSgpID09PSAnYnV0dG9uJykge1xuICAgICAgICByZXR1cm4gcGFyZW50IGFzIEhUTUxCdXR0b25FbGVtZW50O1xuICAgICAgfVxuICAgICAgcGFyZW50ID0gcGFyZW50LnBhcmVudEVsZW1lbnQ7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG4gIFxuICBjbG9zZU9uQ2xpY2tPdXQoKSB7XG4gICAgdGhpcy5yZW5kZXJlci5saXN0ZW4oJ3dpbmRvdycsICdjbGljaycsKGU6YW55KT0+e1xuXG4gICAgICBjb25zdCBpc0NoZWNrYm94ID0gQXJyYXkuZnJvbShlLnRhcmdldC5jbGFzc0xpc3QpLmluY2x1ZGVzKCdjYngnKVxuXG4gICAgICBpZihpc0NoZWNrYm94KSByZXR1cm5cbiAgICAgIGVsc2UgaWYoIXRoaXMubWVudSkgcmV0dXJuXG5cbiAgICAgIGlmKHRoaXMuYnV0dG9uSWQgJiYgZS50YXJnZXQuaWQgIT09IHRoaXMuYnV0dG9uSWQpIHtcbiAgICAgICAgdGhpcy5pc01lbnVTaG93biA9IGZhbHNlXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgXG4gICAgfSlcbiAgfVxuXG4gIGNoYW5nZUNoZWNrYm94KG5hbWU6IHN0cmluZywgY2hlY2tlZDogYm9vbGVhbikge1xuICAgIGxldCBmb3VuZEl0ZW1cbiAgICB0aGlzLm9jTWVudS5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgaWYoaXRlbS5uYW1lID09PSBuYW1lICYmIHR5cGVvZiBjaGVja2VkID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgaXRlbS5jaGVja2VkID0gY2hlY2tlZFxuXG4gICAgICAgIGZvdW5kSXRlbSA9IGl0ZW1cbiAgICAgIH1cbiAgICB9KVxuICAgIHRoaXMub2NDaGFuZ2UuZW1pdChmb3VuZEl0ZW0pXG4gICAgcmV0dXJuIGZvdW5kSXRlbVxuICB9XG5cbiAgdHlwZW9mKGtleTogYW55KSB7XG4gICAgcmV0dXJuIHR5cGVvZiBrZXlcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm9jLW1lbnVcIiAqbmdJZj1cImlzTWVudVNob3duXCIgY2RrTWVudSAjb2NNZW51RWw+XG4gIDx1bD5cbiAgICBAZm9yKG9wdGlvbiBvZiBvY01lbnU7IHRyYWNrICRpbmRleCkge1xuICAgICAgPGxpXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAnY2hlY2tib3gtb3B0aW9uIGNieCc6IHR5cGVvZihvcHRpb24uY2hlY2tlZCkgPT09ICdib29sZWFuJ1xuICAgICAgICB9XCJcbiAgICAgID5cbiAgICAgICAgQGlmKHR5cGVvZihvcHRpb24uY2hlY2tlZCkgPT09ICdib29sZWFuJyl7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrYm94LW9wdCBjYnhcIj5cbiAgICAgICAgICAgIDxvYy1jaGVja2JveCAob2NDaGFuZ2UpPVwiY2hhbmdlQ2hlY2tib3gob3B0aW9uLm5hbWUsICRldmVudClcIiBbb2NDaGVja2VkXT1cIm9wdGlvbi5jaGVja2VkIVwiIGNsYXNzPVwiY2J4XCIgb2NTaXplPVwidGlueVwiIFtvY0xhYmVsXT1cIm9wdGlvbi5uYW1lXCIgb2NCb3JkZXJDb2xvcj1cImdyYXlcIi8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAgQGlmKG9wdGlvbi5pY29uKSB7XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkXCI+XG4gICAgICAgICAgICB7e29wdGlvbi5pY29ufX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIH0gIFxuICAgICAgICBAaWYob3B0aW9uLmNhbGxiYWNrKXtcbiAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJvcHRpb24uY2FsbGJhY2soKVwiPnt7b3B0aW9uLm5hbWV9fTwvYnV0dG9uPlxuICAgICAgICB9XG4gICAgICAgIEBpZihvcHRpb24udXJsKXtcbiAgICAgICAgICA8YSBbaHJlZl09XCJvcHRpb24udXJsXCIgW3RhcmdldF09XCJvcHRpb24udGFyZ2V0QmxhbmsgPyAnX2JsYW5rJyA6ICcnXCI+e3tvcHRpb24ubmFtZX19PC9hPlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoIW9wdGlvbi5jYWxsYmFjayAmJiAhb3B0aW9uLnVybCAmJiB0eXBlb2Yob3B0aW9uLmNoZWNrZWQpICE9PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICA8c3Bhbj57e29wdGlvbi5uYW1lfX08L3NwYW4+XG4gICAgICAgIH1cbiAgICA8L2xpPlxuICB9XG4gIDwvdWw+XG48L2Rpdj5cbiJdfQ==
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2MtbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vdGltdXMtbGlicmFyeS9zcmMvbGliL2NvbXBvbmVudHMvb2MtbWVudS9vYy1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL290aW11cy1saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9vYy1tZW51L29jLW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFHLFNBQVMsRUFBWSxZQUFZLEVBQUMsS0FBSyxFQUFVLE1BQU0sRUFBYSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0csT0FBTyxFQUFHLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7OztBQVMzRSxNQUFNLE9BQU8sZUFBZTtJQUMxQixZQUFvQixRQUFtQjtRQUFuQixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBRzdCLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFBO1FBQzlCLFdBQU0sR0FBaUIsRUFBRSxDQUFBO1FBQ2xDLGdCQUFXLEdBQVksS0FBSyxDQUFBO0lBTGMsQ0FBQztJQVEzQyxJQUFJO1FBQ0YsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUE7UUFFdkIsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUcsSUFBSSxDQUFDLElBQUksRUFBQyxDQUFDO2dCQUNaLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2dCQUNwRSxJQUFJLFlBQVksRUFBRSxDQUFDO29CQUNqQixJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUE7b0JBQ3JDLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNoRSxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUNULENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFBO0lBQ3hCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxPQUFvQjtRQUNuQyxJQUFJLE1BQU0sR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDO1FBQ25DLE9BQU8sTUFBTSxFQUFFLENBQUM7WUFDZCxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQzlDLE9BQU8sTUFBMkIsQ0FBQztZQUNyQyxDQUFDO1lBQ0QsTUFBTSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUM7UUFDaEMsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFDLENBQUMsQ0FBSyxFQUFDLEVBQUU7WUFFOUMsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQTtZQUVqRSxJQUFHLFVBQVU7Z0JBQUUsT0FBTTtpQkFDaEIsSUFBRyxDQUFDLElBQUksQ0FBQyxJQUFJO2dCQUFFLE9BQU07WUFFMUIsSUFBRyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDbEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUE7Z0JBQ3hCLE9BQU07WUFDUixDQUFDO1FBRUgsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsY0FBYyxDQUFDLElBQVksRUFBRSxPQUFnQjtRQUMzQyxJQUFJLFNBQVMsQ0FBQTtRQUNiLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3pCLElBQUcsSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLElBQUksT0FBTyxPQUFPLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQ3RELElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFBO2dCQUV0QixTQUFTLEdBQUcsSUFBSSxDQUFBO1lBQ2xCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQzdCLE9BQU8sU0FBUyxDQUFBO0lBQ2xCLENBQUM7SUFFRCxNQUFNLENBQUMsR0FBUTtRQUNiLE9BQU8sT0FBTyxHQUFHLENBQUE7SUFDbkIsQ0FBQzsrR0FyRVUsZUFBZTttR0FBZixlQUFlLHNPQ2I1Qiw4bUNBK0JBLGlxQ0R0QlksWUFBWSxnT0FBRSxhQUFhLDJJQUFFLG1CQUFtQjs7NEZBSS9DLGVBQWU7a0JBUDNCLFNBQVM7K0JBQ0UsU0FBUyxjQUNQLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUsbUJBQW1CLENBQUM7OEVBT3BDLElBQUk7c0JBQTFCLFNBQVM7dUJBQUMsVUFBVTtnQkFDWCxRQUFRO3NCQUFqQixNQUFNO2dCQUNFLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ICBDb21wb25lbnQsRWxlbWVudFJlZixFdmVudEVtaXR0ZXIsSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBSZW5kZXJlcjIsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgIENka01lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvbWVudSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgT2NNZW51VHlwZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvb2MtbWVudSc7XG5pbXBvcnQgeyBPY0NoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi4vb2MtY2hlY2tib3gvb2MtY2hlY2tib3guY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb2MtbWVudScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIENka01lbnVNb2R1bGUsIE9jQ2hlY2tib3hDb21wb25lbnRdLFxuICB0ZW1wbGF0ZVVybDogJy4vb2MtbWVudS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL29jLW1lbnUuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBPY01lbnVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHt9XG5cbiAgQFZpZXdDaGlsZCgnb2NNZW51RWwnKSBtZW51ITogRWxlbWVudFJlZjtcbiAgQE91dHB1dCgpIG9jQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpXG4gIEBJbnB1dCgpIG9jTWVudTogT2NNZW51VHlwZVtdID0gW11cbiAgaXNNZW51U2hvd246IGJvb2xlYW4gPSBmYWxzZVxuICBidXR0b25JZD86c3RyaW5nXG5cbiAgb3BlbigpIHtcbiAgICB0aGlzLmlzTWVudVNob3duID0gdHJ1ZVxuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZih0aGlzLm1lbnUpe1xuICAgICAgICBjb25zdCBwYXJlbnRCdXR0b24gPSB0aGlzLmZpbmRQYXJlbnRCdXR0b24odGhpcy5tZW51Lm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICBpZiAocGFyZW50QnV0dG9uKSB7XG4gICAgICAgICAgdGhpcy5idXR0b25JZCA9IGBvYy0ke01hdGgucmFuZG9tKCl9YFxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHBhcmVudEJ1dHRvbiwgJ2lkJywgdGhpcy5idXR0b25JZCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCAxMDApXG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmNsb3NlT25DbGlja091dCgpXG4gIH1cblxuICBmaW5kUGFyZW50QnV0dG9uKGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogSFRNTEJ1dHRvbkVsZW1lbnQgfCBudWxsIHtcbiAgICBsZXQgcGFyZW50ID0gZWxlbWVudC5wYXJlbnRFbGVtZW50O1xuICAgIHdoaWxlIChwYXJlbnQpIHtcbiAgICAgIGlmIChwYXJlbnQudGFnTmFtZS50b0xvd2VyQ2FzZSgpID09PSAnYnV0dG9uJykge1xuICAgICAgICByZXR1cm4gcGFyZW50IGFzIEhUTUxCdXR0b25FbGVtZW50O1xuICAgICAgfVxuICAgICAgcGFyZW50ID0gcGFyZW50LnBhcmVudEVsZW1lbnQ7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG4gIFxuICBjbG9zZU9uQ2xpY2tPdXQoKSB7XG4gICAgdGhpcy5yZW5kZXJlci5saXN0ZW4oJ3dpbmRvdycsICdjbGljaycsKGU6YW55KT0+e1xuXG4gICAgICBjb25zdCBpc0NoZWNrYm94ID0gQXJyYXkuZnJvbShlLnRhcmdldC5jbGFzc0xpc3QpLmluY2x1ZGVzKCdjYngnKVxuXG4gICAgICBpZihpc0NoZWNrYm94KSByZXR1cm5cbiAgICAgIGVsc2UgaWYoIXRoaXMubWVudSkgcmV0dXJuXG5cbiAgICAgIGlmKHRoaXMuYnV0dG9uSWQgJiYgZS50YXJnZXQuaWQgIT09IHRoaXMuYnV0dG9uSWQpIHtcbiAgICAgICAgdGhpcy5pc01lbnVTaG93biA9IGZhbHNlXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgXG4gICAgfSlcbiAgfVxuXG4gIGNoYW5nZUNoZWNrYm94KG5hbWU6IHN0cmluZywgY2hlY2tlZDogYm9vbGVhbikge1xuICAgIGxldCBmb3VuZEl0ZW1cbiAgICB0aGlzLm9jTWVudS5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgaWYoaXRlbS5uYW1lID09PSBuYW1lICYmIHR5cGVvZiBjaGVja2VkID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgaXRlbS5jaGVja2VkID0gY2hlY2tlZFxuXG4gICAgICAgIGZvdW5kSXRlbSA9IGl0ZW1cbiAgICAgIH1cbiAgICB9KVxuICAgIHRoaXMub2NDaGFuZ2UuZW1pdChmb3VuZEl0ZW0pXG4gICAgcmV0dXJuIGZvdW5kSXRlbVxuICB9XG5cbiAgdHlwZW9mKGtleTogYW55KSB7XG4gICAgcmV0dXJuIHR5cGVvZiBrZXlcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm9jLW1lbnVcIiAqbmdJZj1cImlzTWVudVNob3duXCIgY2RrTWVudSAjb2NNZW51RWw+XG4gIDx1bD5cbiAgICBAZm9yKG9wdGlvbiBvZiBvY01lbnU7IHRyYWNrICRpbmRleCkge1xuICAgICAgPGxpXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAnY2hlY2tib3gtb3B0aW9uIGNieCc6IHR5cGVvZihvcHRpb24uY2hlY2tlZCkgPT09ICdib29sZWFuJ1xuICAgICAgICB9XCJcbiAgICAgID5cbiAgICAgICAgQGlmKHR5cGVvZihvcHRpb24uY2hlY2tlZCkgPT09ICdib29sZWFuJyl7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrYm94LW9wdCBjYnhcIj5cbiAgICAgICAgICAgIDxvYy1jaGVja2JveCAob2NDaGFuZ2UpPVwiY2hhbmdlQ2hlY2tib3gob3B0aW9uLm5hbWUsICRldmVudClcIiBbb2NDaGVja2VkXT1cIm9wdGlvbi5jaGVja2VkIVwiIGNsYXNzPVwiY2J4XCIgb2NTaXplPVwidGlueVwiIFtvY0xhYmVsXT1cIm9wdGlvbi5uYW1lXCIgb2NCb3JkZXJDb2xvcj1cImdyYXlcIi8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAgQGlmKG9wdGlvbi5pY29uKSB7XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkXCI+XG4gICAgICAgICAgICB7e29wdGlvbi5pY29ufX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIH0gIFxuICAgICAgICBAaWYob3B0aW9uLmNhbGxiYWNrKXtcbiAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJvcHRpb24uY2FsbGJhY2soKVwiPnt7b3B0aW9uLm5hbWV9fTwvYnV0dG9uPlxuICAgICAgICB9XG4gICAgICAgIEBpZihvcHRpb24udXJsKXtcbiAgICAgICAgICA8YSBbaHJlZl09XCJvcHRpb24udXJsXCIgW3RhcmdldF09XCJvcHRpb24udGFyZ2V0QmxhbmsgPyAnX2JsYW5rJyA6ICcnXCI+e3tvcHRpb24ubmFtZX19PC9hPlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoIW9wdGlvbi5jYWxsYmFjayAmJiAhb3B0aW9uLnVybCAmJiB0eXBlb2Yob3B0aW9uLmNoZWNrZWQpICE9PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICA8c3Bhbj57e29wdGlvbi5uYW1lfX08L3NwYW4+XG4gICAgICAgIH1cbiAgICA8L2xpPlxuICB9XG4gIDwvdWw+XG48L2Rpdj5cbiJdfQ==