@mozaic-ds/angular 0.24.0-beta.6 → 0.24.0-beta.7

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 (26) hide show
  1. package/adeo/components/autocomplete/autocomplete.component.d.ts +12 -3
  2. package/adeo/components/sidebar/model/models.d.ts +1 -1
  3. package/adeo/components/sidebar/moz-sidebar.component.d.ts +4 -3
  4. package/adeo/esm2020/components/autocomplete/autocomplete.component.mjs +62 -9
  5. package/adeo/esm2020/components/datatable/directives/moz-datatable-sort.directive.mjs +12 -10
  6. package/adeo/esm2020/components/sidebar/components/user/moz-sidebar-user.component.mjs +1 -1
  7. package/adeo/esm2020/components/sidebar/model/models.mjs +1 -1
  8. package/adeo/esm2020/components/sidebar/moz-sidebar.component.mjs +11 -8
  9. package/adeo/fesm2015/mozaic-ds-angular.mjs +80 -21
  10. package/adeo/fesm2015/mozaic-ds-angular.mjs.map +1 -1
  11. package/adeo/fesm2020/mozaic-ds-angular.mjs +80 -21
  12. package/adeo/fesm2020/mozaic-ds-angular.mjs.map +1 -1
  13. package/adeo/package.json +1 -1
  14. package/components/autocomplete/autocomplete.component.d.ts +12 -3
  15. package/components/sidebar/model/models.d.ts +1 -1
  16. package/components/sidebar/moz-sidebar.component.d.ts +4 -3
  17. package/esm2020/components/autocomplete/autocomplete.component.mjs +62 -9
  18. package/esm2020/components/datatable/directives/moz-datatable-sort.directive.mjs +12 -10
  19. package/esm2020/components/sidebar/components/user/moz-sidebar-user.component.mjs +1 -1
  20. package/esm2020/components/sidebar/model/models.mjs +1 -1
  21. package/esm2020/components/sidebar/moz-sidebar.component.mjs +11 -8
  22. package/fesm2015/mozaic-ds-angular.mjs +80 -21
  23. package/fesm2015/mozaic-ds-angular.mjs.map +1 -1
  24. package/fesm2020/mozaic-ds-angular.mjs +80 -21
  25. package/fesm2020/mozaic-ds-angular.mjs.map +1 -1
  26. package/package.json +1 -1
@@ -1,10 +1,9 @@
1
- import { ChangeDetectionStrategy, Component, ContentChild, ContentChildren, Input, Optional, } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, ContentChild, ContentChildren, EventEmitter, Inject, Input, Optional, Output, forwardRef, } from '@angular/core';
2
+ import { RouterLinkActive, RouterLinkWithHref } from '@angular/router';
2
3
  import { MozSidebarFeatureComponent } from './components/feature/moz-sidebar-feature.component';
3
4
  import { MozSidebarHomeComponent } from './components/home/moz-sidebar-home.component';
4
5
  import { MozSidebarUserComponent } from './components/user/moz-sidebar-user.component';
5
6
  import { MozSidebarUtilityComponent } from './components/utility/moz-sidebar-utilty.component';
6
- import { forwardRef, Inject } from '@angular/core';
7
- import { RouterLinkActive, RouterLinkWithHref } from '@angular/router';
8
7
  import * as i0 from "@angular/core";
9
8
  import * as i1 from "@angular/common";
10
9
  import * as i2 from "../icon/icon.component";
@@ -13,15 +12,17 @@ export class MozSidebarComponent {
13
12
  constructor(routerLinkActive, routerLink) {
14
13
  this.routerLinkActive = routerLinkActive;
15
14
  this.routerLink = routerLink;
15
+ this.opened = new EventEmitter();
16
16
  this.localOpen = false;
17
- this.defaultOptions = { active: '', collapsed: true, closeOnSelect: true };
17
+ this.defaultOptions = { active: '', opened: true, closeOnSelect: true };
18
18
  }
19
19
  ngOnInit() {
20
20
  this.options = { ...this.defaultOptions, ...this.options };
21
- this.localOpen = this.options.collapsed || false;
21
+ this.localOpen = this.options.opened || false;
22
22
  }
23
23
  toggleSidebar() {
24
24
  this.localOpen = !this.localOpen;
25
+ this.opened.emit(this.localOpen);
25
26
  }
26
27
  toggleUser() {
27
28
  if (!this.userCmp)
@@ -59,10 +60,10 @@ export class MozSidebarComponent {
59
60
  }
60
61
  }
61
62
  MozSidebarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MozSidebarComponent, deps: [{ token: RouterLinkActive, optional: true }, { token: RouterLinkWithHref, optional: true }], target: i0.ɵɵFactoryTarget.Component });
62
- MozSidebarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MozSidebarComponent, selector: "moz-sidebar", inputs: { options: "options" }, queries: [{ propertyName: "homeCmp", first: true, predicate: MozSidebarHomeComponent, descendants: true }, { propertyName: "userCmp", first: true, predicate: MozSidebarUserComponent, descendants: true }, { propertyName: "featuresCmp", predicate: i0.forwardRef(function () { return MozSidebarFeatureComponent; }) }, { propertyName: "utilitiesCmp", predicate: MozSidebarUtilityComponent }], ngImport: i0, template: "<nav class=\"mc-sidebar\" [ngClass]=\"localOpen ? 'is-open' : 'is-close'\">\n <div class=\"mc-sidebar__container\" [ngClass]=\"{'has-bottom-panel': userCmp}\">\n <button class=\"mc-sidebar__trigger\" type=\"button\" id=\"mc-sidebar__trigger\" (click)=\"toggleSidebar()\">\n <span class=\"mc-sidebar__trigger__container\">\n <moz-icon *ngIf=\"!localOpen\" [iconName]=\"'Navigation_Arrow_DoubleArrow--Right_24px'\"></moz-icon>\n <moz-icon *ngIf=\"localOpen\" [iconName]=\"'Navigation_Arrow_DoubleArrow--Left_24px'\"></moz-icon>\n </span>\n </button>\n <ng-container *ngTemplateOutlet=\"sidebarHome\"></ng-container>\n\n <ng-container *ngTemplateOutlet=\"separator\"></ng-container>\n\n <div class=\"mc-sidebar-section\">\n <ul [ngClass]=\"{'is-hidden': activeSubFeature && localOpen,\n 'is-visible': !activeSubFeature || !localOpen}\">\n <li *ngFor=\"let item of featuresCmp\">\n <ng-container *ngTemplateOutlet=\"sidebarFeatures; context: {item: item}\"></ng-container>\n </li>\n </ul>\n <ng-container *ngTemplateOutlet=\"tmplSubFeature; context: {feature: activeSubFeature}\"></ng-container>\n </div>\n <div class=\"mc-sidebar__utilities\">\n <div *ngFor=\"let utility of utilitiesCmp\">\n <ng-container *ngTemplateOutlet=\"separator\"></ng-container>\n <ul>\n <li class=\"mc-sidebar__utilities__item\">\n <ng-container *ngTemplateOutlet=\"sidebarUtility; context: {utility: utility}\"></ng-container>\n </li>\n </ul>\n </div>\n </div>\n\n <!-- <ng-container *ngTemplateOutlet=\"separator\"></ng-container> -->\n\n </div>\n <ng-container *ngTemplateOutlet=\"sidebarUser\"></ng-container>\n</nav>\n\n<ng-template #sidebarHome>\n <ng-container *ngIf=\"homeCmp\">\n <button class=\"mc-sidebar-feature-group\" [ngClass]=\"localOpen ? 'is-open' : 'is-close'\">\n <a href=\"#\" [routerLink]=\"homeCmp.link\">\n <span class=\"mc-sidebar-feature-group__container\" [ngClass]=\"localOpen ? 'is-open' : 'is-close'\" (click)=\"select(homeCmp)\">\n <span class=\"mc-sidebar-feature-group__icon\">\n <ng-container *ngTemplateOutlet=\"homeCmp.tmplIcon\"></ng-container>\n </span>\n <ng-container *ngIf=\"localOpen\">\n <span class=\"mc-sidebar-feature-group__label\">\n <ng-container *ngTemplateOutlet=\"homeCmp.tmplText\"></ng-container>\n </span>\n </ng-container>\n </span>\n </a>\n </button >\n </ng-container>\n</ng-template>\n\n<ng-template #sidebarFeatures let-item=\"item\">\n <!-- <span> -->\n <ng-container *ngTemplateOutlet=\"tmplFeatureGroup\"></ng-container>\n\n <ul *ngIf=\"item?.category\" class=\"mc-sidebar-feature-group__content\" [ngClass]=\"{ 'is-open': localOpen && item.selected, 'is-close': !localOpen || !item.selected }\">\n <li *ngFor=\"let innerItem of item.featuresCmp\" id=\"innerFeature\">\n <ng-template *ngTemplateOutlet=\"tmplFeature; context: {feature: innerItem}\"></ng-template>\n </li>\n </ul>\n <!-- </span> -->\n\n <ng-template #tmplFeatureGroup>\n <button class=\"mc-sidebar-feature-group\" (click)=\"select(item)\" [ngClass]=\"{ 'is-selected': item.selected && !item.category, 'is-open': localOpen, 'is-close': !localOpen }\">\n <a href=\"#\" [routerLink]=\"item.link\">\n <span class=\"mc-sidebar-feature-group__container\" [routerLink]=\"item.link\">\n <span class=\"mc-sidebar-feature-group__icon\">\n <ng-container *ngTemplateOutlet=\"item.tmplIcon\"></ng-container>\n </span>\n <div style=\"display:flex;\" *ngIf=\"localOpen\">\n <span class=\"mc-sidebar-feature-group__label\">\n <ng-container *ngTemplateOutlet=\"item.tmplText\"></ng-container>\n </span>\n <div *ngIf=\"localOpen && item?.category\">\n <moz-icon *ngIf=\"!item.selected\" [iconName]=\"'Navigation_Control_More_16px'\"></moz-icon>\n\n <moz-icon *ngIf=\"item.selected\" [iconName]=\"'Navigation_Control_Less_16px'\"></moz-icon>\n </div>\n </div>\n </span>\n </a>\n </button>\n </ng-template>\n\n</ng-template>\n\n<ng-template #tmplFeature let-feature=\"feature\">\n <button class=\"mc-sidebar-feature\" [ngClass]=\"{ 'is-selected': feature.selected, 'is-open': localOpen, 'is-close': !localOpen }\">\n <a href=\"#\" [routerLink]=\"feature.link\">\n <span class=\"mc-sidebar-feature__container\" (click)=\"feature.subCategory ? selectSubFeature(feature) : select(feature)\">\n <span class=\"mc-sidebar-feature__label\">\n <ng-container *ngTemplateOutlet=\"feature.tmplText\"></ng-container>\n </span>\n </span>\n </a>\n </button>\n</ng-template>\n\n<ng-template #tmplSubFeature let-feature=\"feature\">\n <!-- <ng-container *ngTemplateOutlet=\"feature.tmplText\"></ng-container> -->\n <div class=\"mc-sidebar-sub-feature\" *ngIf=\"!!feature\">\n <button class=\"mc-sidebar-sub-feature__trigger\" (click)=\"closeSubFeature()\">\n <span class=\"mc-sidebar-sub-feature__container\">\n <moz-icon *ngIf=\"localOpen\" [iconName]=\"'Navigation_Arrow_Back_24px'\"></moz-icon>\n <span class=\"mc-sidebar-sub-feature__trigger__label\">\n <ng-container *ngTemplateOutlet=\"feature.tmplText\"></ng-container>\n </span>\n </span>\n </button>\n <ul>\n <li *ngFor=\"let item of feature.featuresCmp\" class=\"mc-sidebar-sub-feature__item\" id=\"sub-features\">\n <ng-template *ngTemplateOutlet=\"tmplFeature; context: {feature: item}\"></ng-template>\n </li>\n </ul>\n </div>\n</ng-template>\n\n<ng-template #sidebarUtility let-utility=\"utility\">\n <button class=\"mc-sidebar-segment\" [ngClass]=\"{ 'is-selected': utility.selected, 'is-open': localOpen, 'is-close': !localOpen }\">\n <a href=\"#\" [routerLink]=\"utility.link\">\n <span class=\"mc-sidebar-segment__container\" (click)=\"select(utility)\">\n <span class=\"mc-sidebar-segment__icon\">\n <ng-container *ngTemplateOutlet=\"utility.tmplIcon\"></ng-container>\n </span>\n <span class=\"mc-sidebar-segment__label\">\n <ng-container *ngTemplateOutlet=\"utility.tmplText\"></ng-container>\n </span>\n </span>\n </a>\n </button>\n</ng-template>\n\n<ng-template #sidebarUser>\n <ng-container *ngIf=\"userCmp && userCmp.templateRef\">\n <div class=\"mc-sidebar-user\" [ngClass]=\"localOpen ? 'is-open' : 'is-close'\">\n <button class=\"mc-sidebar-user__header\">\n <span class=\"mc-sidebar-user__header__picture\">\n <ng-template #tmplProfilPicture>\n <ng-container *ngTemplateOutlet=\"userCmp.tmplPicture\"></ng-container>\n </ng-template>\n <moz-icon *ngIf=\"!userCmp.tmplPicture; else tmplProfilPicture\" [iconName]=\"'User_Account_Profile--View_24px'\"></moz-icon>\n </span>\n <div style=\"display:flex; width: 100%;\" *ngIf=\"localOpen\">\n <p class=\"mc-sidebar-user__header__information\">\n <ng-container *ngTemplateOutlet=\"userCmp.templateRef\"></ng-container>\n </p>\n <span (click)=\"toggleUser()\" *ngIf=\"userCmp?.features?.length\" class=\"mc-sidebar-user__header__information__icon\">\n <moz-icon *ngIf=\"!userCmp.localOpen\" [iconName]=\"'Navigation_Control_More_16px'\"></moz-icon>\n\n <moz-icon *ngIf=\"userCmp.localOpen\" [iconName]=\"'Navigation_Control_Less_16px'\"></moz-icon>\n </span>\n </div>\n </button>\n\n <ul *ngIf=\"userCmp.features?.length && userCmp.localOpen\" [ngClass]=\"userCmp.localOpen ? 'is-open' : 'is-close'\"\n id=\"user-content\" ref=\"content\" class=\"mc-sidebar-user__content\">\n <li *ngFor=\"let userFeature of userCmp.features\">\n <button class=\"mc-sidebar-feature\" [ngClass]=\"{ 'is-open': localOpen, 'is-close': !localOpen }\">\n <!-- <a href=\"#\"> -->\n <span class=\"mc-sidebar-feature__container\">\n <span class=\"mc-sidebar-feature__label\">\n <ng-container *ngTemplateOutlet=\"userFeature\"></ng-container>\n </span>\n </span>\n <!-- </a> -->\n </button>\n </li>\n </ul>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #separator>\n <span role=\"separator\" class=\"mc-sidebar-separator\" [ngClass]=\"localOpen ? 'is-open' : 'is-close'\">\n </span>\n</ng-template>\n", styles: ["a,a:hover,a:visited,a:focus,a:active{text-decoration:none;color:inherit}.mc-sidebar{position:absolute;top:0;left:0;z-index:10;font-size:14px;font-family:LeroyMerlin,sans-serif;color:#fff;box-sizing:border-box;fill:#fff;width:320px;background:#082435;display:block;height:100vh}.mc-sidebar__container{height:100%;display:flex;flex-direction:column}.mc-sidebar__container.has-bottom-panel{height:calc(100% - 88px)}.mc-sidebar__utilities{margin-bottom:24px}.mc-sidebar__utilities__item{margin:4px 0}.mc-sidebar__utilities__item:first-child{margin-top:0}.mc-sidebar__utilities__item:last-child{margin-bottom:0}.mc-sidebar__trigger{cursor:pointer;background:none;border:none;padding:0;min-height:92px;width:100%;font-size:inherit;font-family:inherit;position:relative;display:flex}.mc-sidebar__trigger__container{position:relative;margin:28px 20px;height:32px;width:100%}.mc-sidebar__trigger__container>*{position:absolute;top:0;right:0;width:24px;height:24px}.mc-sidebar__trigger:focus-visible{box-shadow:none;border:none;outline:none}.mc-sidebar__trigger:focus-visible .mc-sidebar__trigger__container{box-shadow:none;border:none;border-radius:6px;outline:1px solid #0b96cc}.mc-sidebar.is-open{transition:width .3s ease-in-out}.mc-sidebar.is-close{transition:width .3s ease-in-out;width:64px;padding:0}.mc-sidebar ul{list-style-type:none;margin:0;padding:0}.mc-sidebar-segment{font-size:.875rem;line-height:1.5714285714;background:none;border:none;cursor:pointer;flex:0;font-family:inherit;text-decoration:none;color:#fff;display:flex;overflow:hidden;min-height:40px;padding:0;width:100%}.mc-sidebar-segment__container{display:flex;align-items:center;width:100%;padding:8px 0}.mc-sidebar-segment__icon{flex-shrink:0}.mc-sidebar-segment__label{margin-left:10px}.mc-sidebar-segment.is-selected{background:#007f8c}.mc-sidebar-segment:focus-visible{box-shadow:none;border:none;outline:none}.mc-sidebar-segment:focus-visible .mc-sidebar-segment__container{box-shadow:none;border:none;border-radius:6px;outline:1px solid #0b96cc}.mc-sidebar-segment:hover{background:#405d68}.mc-sidebar-segment.is-close .mc-sidebar-segment__container{transition:margin .3s ease-in-out;margin:0 20px;width:24px}.mc-sidebar-segment.is-close .mc-sidebar-segment__label{opacity:0}.mc-sidebar-segment.is-open .mc-sidebar-segment__container{transition:margin .3s ease-in-out;margin:0 32px}.mc-sidebar-segment.is-open__label{opacity:1}.mc-sidebar-section{display:flex;flex-direction:row;flex:1;align-items:flex-start;min-height:38px;overflow-x:hidden;overflow-y:auto;overflow-y:overlay;padding:1px 0;scrollbar-color:#009eac #082435;scrollbar-width:thin}.mc-sidebar-section ul,.mc-sidebar-section li{list-style-type:none;margin:0;padding:0;display:flex;width:100%}.mc-sidebar-section ul{align-items:start;flex-direction:column;justify-content:center}.mc-sidebar-section ul li{flex-direction:column;box-sizing:border-box;margin:4px 0}.mc-sidebar-section ul li:first-child{margin-top:0}.mc-sidebar-section ul li:last-child{margin-bottom:0}.mc-sidebar-section ul.is-hidden{transition:margin-left .3s ease-in-out;margin-left:-320px;opacity:0}.mc-sidebar-section ul.is-visible{transition:margin-left .3s ease-in-out;margin-left:0}.mc-sidebar-section::-webkit-scrollbar{width:5px;height:10px;background:#082435}.mc-sidebar-section::-webkit-scrollbar-thumb{background:#009eac}.mc-sidebar-feature-group{background:none;border:none;color:#fff;cursor:pointer;font-size:inherit;font-family:inherit;text-align:initial;margin:0;padding:0;min-height:40px;overflow:hidden;text-decoration:none}.mc-sidebar-feature-group__container{display:flex;align-items:center;margin:5px 0;padding:8px 0;transition:margin .3s ease-in-out}.mc-sidebar-feature-group__label{font-size:.875rem;line-height:1.2857142857;margin:0 8px;width:200px;min-width:200px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical}.mc-sidebar-feature-group__label__tooltip{opacity:0;transition:0s opacity;background-color:#5b737d;border:1px solid white;border-radius:4px;position:absolute;pointer-events:none;left:calc(100% - 16px);padding:8px 16px;width:188px}.mc-sidebar-feature-group__label__tooltip__pointer{position:absolute;top:50%;left:-8px;top:calc(50% - 6px);width:0;height:0;border-top:6px solid transparent;border-bottom:6px solid transparent;border-right:8px solid white}.mc-sidebar-feature-group__label__tooltip__pointer div{position:relative;top:-6px;left:2px;width:0;height:0;border-top:6px solid transparent;border-bottom:6px solid transparent;border-right:8px solid #5b737d}.mc-sidebar-feature-group__label:hover+.mc-sidebar-feature-group__label__tooltip{opacity:1;transition-delay:1s}.mc-sidebar-feature-group__content{overflow:hidden;transition:height .3s ease-in-out}.mc-sidebar-feature-group__content.is-close{height:0}.mc-sidebar-feature-group__content.is-open{height:auto}.mc-sidebar-feature-group__content li#innerFeature{margin:0}.mc-sidebar-feature-group.is-selected{background:#007f8c}.mc-sidebar-feature-group.is-close .mc-sidebar-feature-group__container{margin:0 20px;width:24px}.mc-sidebar-feature-group.is-open .mc-sidebar-feature-group__container{margin:0 32px}.mc-sidebar-feature-group:hover{background:#405d68}.mc-sidebar-feature-group:focus-visible{box-shadow:none;border:none;outline:none}.mc-sidebar-feature-group:focus-visible .mc-sidebar-feature-group__container{box-shadow:none;border:none;border-radius:6px;outline:1px solid #0b96cc}.mc-sidebar-feature-group ul,.mc-sidebar-feature-group li{list-style-type:none;margin:0;padding:0;display:flex;width:100%}.mc-sidebar-feature-group ul{align-items:start;flex-direction:column;justify-content:center}.mc-sidebar-feature-group ul li{flex-direction:column;box-sizing:border-box}.mc-sidebar-feature{font-size:16px;min-width:200px;cursor:pointer;flex:1;display:flex;color:#fff;line-height:22px;overflow:hidden;background:none;border:none;padding:0;text-align:left;font-family:inherit;text-decoration:none}.mc-sidebar-feature__container{display:flex;align-items:center;width:100%;padding-top:8px;padding-bottom:8px}.mc-sidebar-feature__container span{max-width:200px;min-width:200px}.mc-sidebar-feature__label{font-size:.875rem;line-height:1.2857142857;flex:1;margin-right:8px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical}.mc-sidebar-feature__label__tooltip{opacity:0;transition:0s opacity;background-color:#5b737d;border:1px solid white;border-radius:4px;position:absolute;pointer-events:none;left:calc(100% - 16px);padding:8px 16px;width:188px}.mc-sidebar-feature__label__tooltip__pointer{position:absolute;top:50%;left:-8px;top:calc(50% - 6px);width:0;height:0;border-top:6px solid transparent;border-bottom:6px solid transparent;border-right:8px solid white}.mc-sidebar-feature__label__tooltip__pointer div{position:relative;top:-6px;left:2px;width:0;height:0;border-top:6px solid transparent;border-bottom:6px solid transparent;border-right:8px solid #5b737d}.mc-sidebar-feature__label:hover+.mc-sidebar-feature__label__tooltip{opacity:1;transition-delay:1s}.mc-sidebar-feature__icon{margin-right:8px}.mc-sidebar-feature.is-selected{background:#007f8c}.mc-sidebar-feature.is-close{transition:padding .3s ease-in-out;padding:0}.mc-sidebar-feature.is-close .mc-sidebar-feature__container{transition:padding-left .3s ease-in-out;padding-left:20px;width:24px}.mc-sidebar-feature.is-open{transition:padding .3s ease-in-out;padding:0 32px}.mc-sidebar-feature.is-open .mc-sidebar-feature__container{transition:padding-left .3s ease-in-out;padding-left:32px}.mc-sidebar-feature.is-disabled{color:#92a2a9;fill:#92a2a9}.mc-sidebar-feature:hover{background:#405d68}.mc-sidebar-feature:focus-visible{box-shadow:none;border:none;outline:none}.mc-sidebar-feature:focus-visible .mc-sidebar-feature__container{box-shadow:none;border:none;border-radius:6px;outline:1px solid #0b96cc}.mc-sidebar-sub-feature{width:320px}.mc-sidebar-sub-feature__trigger{background:none;border:none;cursor:pointer;display:flex;margin:0;font-size:inherit;font-family:inherit;width:100%;padding:0 32px}.mc-sidebar-sub-feature__trigger__label{font-size:16px;font-weight:700;margin-left:8px;color:#fff}.mc-sidebar-sub-feature__trigger__item{margin:-8px 0 24px}.mc-sidebar-sub-feature__trigger:focus-visible{box-shadow:none;border:none;outline:none}.mc-sidebar-sub-feature__trigger:focus-visible .mc-sidebar-sub-feature__container{box-shadow:none;border:none;border-radius:6px;outline:1px solid #0b96cc}.mc-sidebar-sub-feature__container{display:flex;align-items:center;width:100%;height:24px;padding:8px 0}.mc-sidebar-sub-feature ul{list-style:none;margin:0;padding:0}.mc-sidebar-sub-feature ul li#sub-features{margin:0}.mc-sidebar-user{left:0;right:0;bottom:0;position:absolute;background:#264653}.mc-sidebar-user__header{display:flex;align-items:center;background:none;border:none;color:#fff;font-size:inherit;font-family:inherit;text-align:initial;margin:0;width:100%;overflow:hidden}.mc-sidebar-user__header:focus-visible{box-shadow:none;border:none;border-radius:12px;outline:1px solid #0b96cc;outline-offset:-5px}.mc-sidebar-user__header:hover{cursor:pointer}.mc-sidebar-user__header:hover .mc-sidebar-user__header__information__icon{background:#082435}.mc-sidebar-user__header__picture{display:flex;align-items:center;justify-content:center;background:#5b737d;border-radius:24px;width:48px;min-width:48px;height:48px;overflow:hidden}.mc-sidebar-user__header__picture img{display:block}.mc-sidebar-user__header__information{justify-content:space-around;display:flex;flex-direction:column;flex:1;margin:0 0 0 8px;height:40px}.mc-sidebar-user__header__information__icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:4px}.mc-sidebar-user__header__information__identity{font-size:16px;font-weight:700}.mc-sidebar-user__header__information__title,.mc-sidebar-user__header__information__identity{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:176px}.mc-sidebar-user__content#user-content{list-style-type:none;padding:0;overflow:hidden;margin:-8px 0 24px;transition:all .3s ease-in-out}.mc-sidebar-user__content#user-content.is-close{height:0;margin:0}.mc-sidebar-user__content#user-content .is-open{height:auto}.mc-sidebar-user.is-close .mc-sidebar-user__header{transition:padding .3s ease-in-out;padding:12px 8px;margin:8px 0}.mc-sidebar-user.is-open .mc-sidebar-user__header{transition:padding .3s ease-in-out;padding:12px 24px 12px 32px;margin:8px 0}.mc-sidebar-separator{border-bottom:1px solid #5b737d;display:flex}.mc-sidebar-separator.is-close{transition:margin .3s ease-in-out;margin:24px 0}.mc-sidebar-separator.is-open{transition:margin .3s ease-in-out;margin:24px 32px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.IconComponent, selector: "moz-icon", inputs: ["iconName"] }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
63
+ MozSidebarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MozSidebarComponent, selector: "moz-sidebar", inputs: { options: "options" }, outputs: { opened: "opened" }, queries: [{ propertyName: "homeCmp", first: true, predicate: MozSidebarHomeComponent, descendants: true }, { propertyName: "userCmp", first: true, predicate: MozSidebarUserComponent, descendants: true }, { propertyName: "featuresCmp", predicate: i0.forwardRef(function () { return MozSidebarFeatureComponent; }) }, { propertyName: "utilitiesCmp", predicate: MozSidebarUtilityComponent }], ngImport: i0, template: "<nav class=\"mc-sidebar\" [ngClass]=\"localOpen ? 'is-open' : 'is-close'\">\n <div class=\"mc-sidebar__container\" [ngClass]=\"{'has-bottom-panel': userCmp}\">\n <button class=\"mc-sidebar__trigger\" type=\"button\" id=\"mc-sidebar__trigger\" (click)=\"toggleSidebar()\">\n <span class=\"mc-sidebar__trigger__container\">\n <moz-icon *ngIf=\"!localOpen\" [iconName]=\"'Navigation_Arrow_DoubleArrow--Right_24px'\"></moz-icon>\n <moz-icon *ngIf=\"localOpen\" [iconName]=\"'Navigation_Arrow_DoubleArrow--Left_24px'\"></moz-icon>\n </span>\n </button>\n <ng-container *ngTemplateOutlet=\"sidebarHome\"></ng-container>\n\n <ng-container *ngTemplateOutlet=\"separator\"></ng-container>\n\n <div class=\"mc-sidebar-section\">\n <ul [ngClass]=\"{'is-hidden': activeSubFeature && localOpen,\n 'is-visible': !activeSubFeature || !localOpen}\">\n <li *ngFor=\"let item of featuresCmp\">\n <ng-container *ngTemplateOutlet=\"sidebarFeatures; context: {item: item}\"></ng-container>\n </li>\n </ul>\n <ng-container *ngTemplateOutlet=\"tmplSubFeature; context: {feature: activeSubFeature}\"></ng-container>\n </div>\n <div class=\"mc-sidebar__utilities\">\n <div *ngFor=\"let utility of utilitiesCmp\">\n <ng-container *ngTemplateOutlet=\"separator\"></ng-container>\n <ul>\n <li class=\"mc-sidebar__utilities__item\">\n <ng-container *ngTemplateOutlet=\"sidebarUtility; context: {utility: utility}\"></ng-container>\n </li>\n </ul>\n </div>\n </div>\n\n </div>\n <ng-container *ngTemplateOutlet=\"sidebarUser\"></ng-container>\n</nav>\n\n<ng-template #sidebarHome>\n <ng-container *ngIf=\"homeCmp\">\n <button class=\"mc-sidebar-feature-group\" [ngClass]=\"localOpen ? 'is-open' : 'is-close'\">\n <a href=\"#\" [routerLink]=\"homeCmp.link\">\n <span class=\"mc-sidebar-feature-group__container\" [ngClass]=\"localOpen ? 'is-open' : 'is-close'\" (click)=\"select(homeCmp)\">\n <span class=\"mc-sidebar-feature-group__icon\">\n <ng-container *ngTemplateOutlet=\"homeCmp.tmplIcon\"></ng-container>\n </span>\n <ng-container *ngIf=\"localOpen\">\n <span class=\"mc-sidebar-feature-group__label\">\n <ng-container *ngTemplateOutlet=\"homeCmp.tmplText\"></ng-container>\n </span>\n </ng-container>\n </span>\n </a>\n </button >\n </ng-container>\n</ng-template>\n\n<ng-template #sidebarFeatures let-item=\"item\">\n <ng-container *ngTemplateOutlet=\"tmplFeatureGroup\"></ng-container>\n\n <ul *ngIf=\"item?.category\" class=\"mc-sidebar-feature-group__content\" [ngClass]=\"{ 'is-open': localOpen && item.selected, 'is-close': !localOpen || !item.selected }\">\n <li *ngFor=\"let innerItem of item.featuresCmp\" id=\"innerFeature\">\n <ng-template *ngTemplateOutlet=\"tmplFeature; context: {feature: innerItem}\"></ng-template>\n </li>\n </ul>\n\n <ng-template #tmplFeatureGroup>\n <button class=\"mc-sidebar-feature-group\" (click)=\"select(item)\" [ngClass]=\"{ 'is-selected': item.selected && !item.category, 'is-open': localOpen, 'is-close': !localOpen }\">\n <a href=\"#\" [routerLink]=\"item.link\">\n <span class=\"mc-sidebar-feature-group__container\" [routerLink]=\"item.link\">\n <span class=\"mc-sidebar-feature-group__icon\">\n <ng-container *ngTemplateOutlet=\"item.tmplIcon\"></ng-container>\n </span>\n <div style=\"display:flex;\" *ngIf=\"localOpen\">\n <span class=\"mc-sidebar-feature-group__label\">\n <ng-container *ngTemplateOutlet=\"item.tmplText\"></ng-container>\n </span>\n <div *ngIf=\"localOpen && item?.category\">\n <moz-icon *ngIf=\"!item.selected\" [iconName]=\"'Navigation_Control_More_16px'\"></moz-icon>\n\n <moz-icon *ngIf=\"item.selected\" [iconName]=\"'Navigation_Control_Less_16px'\"></moz-icon>\n </div>\n </div>\n </span>\n </a>\n </button>\n </ng-template>\n\n</ng-template>\n\n<ng-template #tmplFeature let-feature=\"feature\">\n <button class=\"mc-sidebar-feature\" [ngClass]=\"{ 'is-selected': feature.selected, 'is-open': localOpen, 'is-close': !localOpen }\">\n <a href=\"#\" [routerLink]=\"feature.link\">\n <span class=\"mc-sidebar-feature__container\" (click)=\"feature.subCategory ? selectSubFeature(feature) : select(feature)\">\n <span class=\"mc-sidebar-feature__label\">\n <ng-container *ngTemplateOutlet=\"feature.tmplText\"></ng-container>\n </span>\n </span>\n </a>\n </button>\n</ng-template>\n\n<ng-template #tmplSubFeature let-feature=\"feature\">\n <div class=\"mc-sidebar-sub-feature\" *ngIf=\"!!feature\">\n <button class=\"mc-sidebar-sub-feature__trigger\" (click)=\"closeSubFeature()\">\n <span class=\"mc-sidebar-sub-feature__container\">\n <moz-icon *ngIf=\"localOpen\" [iconName]=\"'Navigation_Arrow_Back_24px'\"></moz-icon>\n <span class=\"mc-sidebar-sub-feature__trigger__label\">\n <ng-container *ngTemplateOutlet=\"feature.tmplText\"></ng-container>\n </span>\n </span>\n </button>\n <ul>\n <li *ngFor=\"let item of feature.featuresCmp\" class=\"mc-sidebar-sub-feature__item\" id=\"sub-features\">\n <ng-template *ngTemplateOutlet=\"tmplFeature; context: {feature: item}\"></ng-template>\n </li>\n </ul>\n </div>\n</ng-template>\n\n<ng-template #sidebarUtility let-utility=\"utility\">\n <button class=\"mc-sidebar-segment\" [ngClass]=\"{ 'is-selected': utility.selected, 'is-open': localOpen, 'is-close': !localOpen }\">\n <a href=\"#\" [routerLink]=\"utility.link\">\n <span class=\"mc-sidebar-segment__container\" (click)=\"select(utility)\">\n <span class=\"mc-sidebar-segment__icon\">\n <ng-container *ngTemplateOutlet=\"utility.tmplIcon\"></ng-container>\n </span>\n <span class=\"mc-sidebar-segment__label\">\n <ng-container *ngTemplateOutlet=\"utility.tmplText\"></ng-container>\n </span>\n </span>\n </a>\n </button>\n</ng-template>\n\n<ng-template #sidebarUser>\n <ng-container *ngIf=\"userCmp && userCmp.templateRef\">\n <div class=\"mc-sidebar-user\" [ngClass]=\"localOpen ? 'is-open' : 'is-close'\">\n <button class=\"mc-sidebar-user__header\">\n <span class=\"mc-sidebar-user__header__picture\">\n <ng-template #tmplProfilPicture>\n <ng-container *ngTemplateOutlet=\"userCmp.tmplPicture\"></ng-container>\n </ng-template>\n <moz-icon *ngIf=\"!userCmp.tmplPicture; else tmplProfilPicture\" [iconName]=\"'User_Account_Profile--View_24px'\"></moz-icon>\n </span>\n <div style=\"display:flex; width: 100%;\" *ngIf=\"localOpen\">\n <p class=\"mc-sidebar-user__header__information\">\n <ng-container *ngTemplateOutlet=\"userCmp.templateRef\"></ng-container>\n </p>\n <span (click)=\"toggleUser()\" *ngIf=\"userCmp?.features?.length\" class=\"mc-sidebar-user__header__information__icon\">\n <moz-icon *ngIf=\"!userCmp.localOpen\" [iconName]=\"'Navigation_Control_More_16px'\"></moz-icon>\n\n <moz-icon *ngIf=\"userCmp.localOpen\" [iconName]=\"'Navigation_Control_Less_16px'\"></moz-icon>\n </span>\n </div>\n </button>\n\n <ul *ngIf=\"userCmp.features?.length && userCmp.localOpen\" [ngClass]=\"userCmp.localOpen ? 'is-open' : 'is-close'\"\n id=\"user-content\" ref=\"content\" class=\"mc-sidebar-user__content\">\n <li *ngFor=\"let userFeature of userCmp.features\">\n <button class=\"mc-sidebar-feature\" [ngClass]=\"{ 'is-open': localOpen, 'is-close': !localOpen }\">\n <span class=\"mc-sidebar-feature__container\">\n <span class=\"mc-sidebar-feature__label\">\n <ng-container *ngTemplateOutlet=\"userFeature\"></ng-container>\n </span>\n </span>\n </button>\n </li>\n </ul>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #separator>\n <span role=\"separator\" class=\"mc-sidebar-separator\" [ngClass]=\"localOpen ? 'is-open' : 'is-close'\">\n </span>\n</ng-template>\n", styles: ["a,a:hover,a:visited,a:focus,a:active{text-decoration:none;color:inherit}.mc-sidebar{position:absolute;top:0;left:0;z-index:10;font-size:14px;font-family:LeroyMerlin,sans-serif;color:#fff;box-sizing:border-box;fill:#fff;width:320px;background:#082435;display:block;height:100vh}.mc-sidebar__container{height:100%;display:flex;flex-direction:column}.mc-sidebar__container.has-bottom-panel{height:calc(100% - 88px)}.mc-sidebar__utilities{margin-bottom:24px}.mc-sidebar__utilities__item{margin:4px 0}.mc-sidebar__utilities__item:first-child{margin-top:0}.mc-sidebar__utilities__item:last-child{margin-bottom:0}.mc-sidebar__trigger{cursor:pointer;background:none;border:none;padding:0;min-height:92px;width:100%;font-size:inherit;font-family:inherit;position:relative;display:flex}.mc-sidebar__trigger__container{position:relative;margin:28px 20px;height:32px;width:100%}.mc-sidebar__trigger__container>*{position:absolute;top:0;right:0;width:24px;height:24px}.mc-sidebar__trigger:focus-visible{box-shadow:none;border:none;outline:none}.mc-sidebar__trigger:focus-visible .mc-sidebar__trigger__container{box-shadow:none;border:none;border-radius:6px;outline:1px solid #0b96cc}.mc-sidebar.is-open{transition:width .3s ease-in-out}.mc-sidebar.is-close{transition:width .3s ease-in-out;width:64px;padding:0}.mc-sidebar ul{list-style-type:none;margin:0;padding:0}.mc-sidebar-segment{font-size:.875rem;line-height:1.5714285714;background:none;border:none;cursor:pointer;flex:0;font-family:inherit;text-decoration:none;color:#fff;display:flex;overflow:hidden;min-height:40px;padding:0;width:100%}.mc-sidebar-segment__container{display:flex;align-items:center;width:100%;padding:8px 0}.mc-sidebar-segment__icon{flex-shrink:0}.mc-sidebar-segment__label{margin-left:10px}.mc-sidebar-segment.is-selected{background:#007f8c}.mc-sidebar-segment:focus-visible{box-shadow:none;border:none;outline:none}.mc-sidebar-segment:focus-visible .mc-sidebar-segment__container{box-shadow:none;border:none;border-radius:6px;outline:1px solid #0b96cc}.mc-sidebar-segment:hover{background:#405d68}.mc-sidebar-segment.is-close .mc-sidebar-segment__container{transition:margin .3s ease-in-out;margin:0 20px;width:24px}.mc-sidebar-segment.is-close .mc-sidebar-segment__label{opacity:0}.mc-sidebar-segment.is-open .mc-sidebar-segment__container{transition:margin .3s ease-in-out;margin:0 32px}.mc-sidebar-segment.is-open__label{opacity:1}.mc-sidebar-section{display:flex;flex-direction:row;flex:1;align-items:flex-start;min-height:38px;overflow-x:hidden;overflow-y:auto;overflow-y:overlay;padding:1px 0;scrollbar-color:#009eac #082435;scrollbar-width:thin}.mc-sidebar-section ul,.mc-sidebar-section li{list-style-type:none;margin:0;padding:0;display:flex;width:100%}.mc-sidebar-section ul{align-items:start;flex-direction:column;justify-content:center}.mc-sidebar-section ul li{flex-direction:column;box-sizing:border-box;margin:4px 0}.mc-sidebar-section ul li:first-child{margin-top:0}.mc-sidebar-section ul li:last-child{margin-bottom:0}.mc-sidebar-section ul.is-hidden{transition:margin-left .3s ease-in-out;margin-left:-320px;opacity:0}.mc-sidebar-section ul.is-visible{transition:margin-left .3s ease-in-out;margin-left:0}.mc-sidebar-section::-webkit-scrollbar{width:5px;height:10px;background:#082435}.mc-sidebar-section::-webkit-scrollbar-thumb{background:#009eac}.mc-sidebar-feature-group{background:none;border:none;color:#fff;cursor:pointer;font-size:inherit;font-family:inherit;text-align:initial;margin:0;padding:0;min-height:40px;overflow:hidden;text-decoration:none}.mc-sidebar-feature-group__container{display:flex;align-items:center;margin:5px 0;padding:8px 0;transition:margin .3s ease-in-out}.mc-sidebar-feature-group__label{font-size:.875rem;line-height:1.2857142857;margin:0 8px;width:200px;min-width:200px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical}.mc-sidebar-feature-group__label__tooltip{opacity:0;transition:0s opacity;background-color:#5b737d;border:1px solid white;border-radius:4px;position:absolute;pointer-events:none;left:calc(100% - 16px);padding:8px 16px;width:188px}.mc-sidebar-feature-group__label__tooltip__pointer{position:absolute;top:50%;left:-8px;top:calc(50% - 6px);width:0;height:0;border-top:6px solid transparent;border-bottom:6px solid transparent;border-right:8px solid white}.mc-sidebar-feature-group__label__tooltip__pointer div{position:relative;top:-6px;left:2px;width:0;height:0;border-top:6px solid transparent;border-bottom:6px solid transparent;border-right:8px solid #5b737d}.mc-sidebar-feature-group__label:hover+.mc-sidebar-feature-group__label__tooltip{opacity:1;transition-delay:1s}.mc-sidebar-feature-group__content{overflow:hidden;transition:height .3s ease-in-out}.mc-sidebar-feature-group__content.is-close{height:0}.mc-sidebar-feature-group__content.is-open{height:auto}.mc-sidebar-feature-group__content li#innerFeature{margin:0}.mc-sidebar-feature-group.is-selected{background:#007f8c}.mc-sidebar-feature-group.is-close .mc-sidebar-feature-group__container{margin:0 20px;width:24px}.mc-sidebar-feature-group.is-open .mc-sidebar-feature-group__container{margin:0 32px}.mc-sidebar-feature-group:hover{background:#405d68}.mc-sidebar-feature-group:focus-visible{box-shadow:none;border:none;outline:none}.mc-sidebar-feature-group:focus-visible .mc-sidebar-feature-group__container{box-shadow:none;border:none;border-radius:6px;outline:1px solid #0b96cc}.mc-sidebar-feature-group ul,.mc-sidebar-feature-group li{list-style-type:none;margin:0;padding:0;display:flex;width:100%}.mc-sidebar-feature-group ul{align-items:start;flex-direction:column;justify-content:center}.mc-sidebar-feature-group ul li{flex-direction:column;box-sizing:border-box}.mc-sidebar-feature{font-size:16px;min-width:200px;cursor:pointer;flex:1;display:flex;color:#fff;line-height:22px;overflow:hidden;background:none;border:none;padding:0;text-align:left;font-family:inherit;text-decoration:none}.mc-sidebar-feature__container{display:flex;align-items:center;width:100%;padding-top:8px;padding-bottom:8px}.mc-sidebar-feature__container span{max-width:200px;min-width:200px}.mc-sidebar-feature__label{font-size:.875rem;line-height:1.2857142857;flex:1;margin-right:8px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical}.mc-sidebar-feature__label__tooltip{opacity:0;transition:0s opacity;background-color:#5b737d;border:1px solid white;border-radius:4px;position:absolute;pointer-events:none;left:calc(100% - 16px);padding:8px 16px;width:188px}.mc-sidebar-feature__label__tooltip__pointer{position:absolute;top:50%;left:-8px;top:calc(50% - 6px);width:0;height:0;border-top:6px solid transparent;border-bottom:6px solid transparent;border-right:8px solid white}.mc-sidebar-feature__label__tooltip__pointer div{position:relative;top:-6px;left:2px;width:0;height:0;border-top:6px solid transparent;border-bottom:6px solid transparent;border-right:8px solid #5b737d}.mc-sidebar-feature__label:hover+.mc-sidebar-feature__label__tooltip{opacity:1;transition-delay:1s}.mc-sidebar-feature__icon{margin-right:8px}.mc-sidebar-feature.is-selected{background:#007f8c}.mc-sidebar-feature.is-close{transition:padding .3s ease-in-out;padding:0}.mc-sidebar-feature.is-close .mc-sidebar-feature__container{transition:padding-left .3s ease-in-out;padding-left:20px;width:24px}.mc-sidebar-feature.is-open{transition:padding .3s ease-in-out;padding:0 32px}.mc-sidebar-feature.is-open .mc-sidebar-feature__container{transition:padding-left .3s ease-in-out;padding-left:32px}.mc-sidebar-feature.is-disabled{color:#92a2a9;fill:#92a2a9}.mc-sidebar-feature:hover{background:#405d68}.mc-sidebar-feature:focus-visible{box-shadow:none;border:none;outline:none}.mc-sidebar-feature:focus-visible .mc-sidebar-feature__container{box-shadow:none;border:none;border-radius:6px;outline:1px solid #0b96cc}.mc-sidebar-sub-feature{width:320px}.mc-sidebar-sub-feature__trigger{background:none;border:none;cursor:pointer;display:flex;margin:0;font-size:inherit;font-family:inherit;width:100%;padding:0 32px}.mc-sidebar-sub-feature__trigger__label{font-size:16px;font-weight:700;margin-left:8px;color:#fff}.mc-sidebar-sub-feature__trigger__item{margin:-8px 0 24px}.mc-sidebar-sub-feature__trigger:focus-visible{box-shadow:none;border:none;outline:none}.mc-sidebar-sub-feature__trigger:focus-visible .mc-sidebar-sub-feature__container{box-shadow:none;border:none;border-radius:6px;outline:1px solid #0b96cc}.mc-sidebar-sub-feature__container{display:flex;align-items:center;width:100%;height:24px;padding:8px 0}.mc-sidebar-sub-feature ul{list-style:none;margin:0;padding:0}.mc-sidebar-sub-feature ul li#sub-features{margin:0}.mc-sidebar-user{left:0;right:0;bottom:0;position:absolute;background:#264653}.mc-sidebar-user__header{display:flex;align-items:center;background:none;border:none;color:#fff;font-size:inherit;font-family:inherit;text-align:initial;margin:0;width:100%;overflow:hidden}.mc-sidebar-user__header:focus-visible{box-shadow:none;border:none;border-radius:12px;outline:1px solid #0b96cc;outline-offset:-5px}.mc-sidebar-user__header:hover{cursor:pointer}.mc-sidebar-user__header:hover .mc-sidebar-user__header__information__icon{background:#082435}.mc-sidebar-user__header__picture{display:flex;align-items:center;justify-content:center;background:#5b737d;border-radius:24px;width:48px;min-width:48px;height:48px;overflow:hidden}.mc-sidebar-user__header__picture img{display:block}.mc-sidebar-user__header__information{justify-content:space-around;display:flex;flex-direction:column;flex:1;margin:0 0 0 8px;height:40px}.mc-sidebar-user__header__information__icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:4px}.mc-sidebar-user__header__information__identity{font-size:16px;font-weight:700}.mc-sidebar-user__header__information__title,.mc-sidebar-user__header__information__identity{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:176px}.mc-sidebar-user__content#user-content{list-style-type:none;padding:0;overflow:hidden;margin:-8px 0 24px;transition:all .3s ease-in-out}.mc-sidebar-user__content#user-content.is-close{height:0;margin:0}.mc-sidebar-user__content#user-content .is-open{height:auto}.mc-sidebar-user.is-close .mc-sidebar-user__header{transition:padding .3s ease-in-out;padding:12px 8px;margin:8px 0}.mc-sidebar-user.is-open .mc-sidebar-user__header{transition:padding .3s ease-in-out;padding:12px 24px 12px 32px;margin:8px 0}.mc-sidebar-separator{border-bottom:1px solid #5b737d;display:flex}.mc-sidebar-separator.is-close{transition:margin .3s ease-in-out;margin:24px 0}.mc-sidebar-separator.is-open{transition:margin .3s ease-in-out;margin:24px 32px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.IconComponent, selector: "moz-icon", inputs: ["iconName"] }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
63
64
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MozSidebarComponent, decorators: [{
64
65
  type: Component,
65
- args: [{ selector: 'moz-sidebar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<nav class=\"mc-sidebar\" [ngClass]=\"localOpen ? 'is-open' : 'is-close'\">\n <div class=\"mc-sidebar__container\" [ngClass]=\"{'has-bottom-panel': userCmp}\">\n <button class=\"mc-sidebar__trigger\" type=\"button\" id=\"mc-sidebar__trigger\" (click)=\"toggleSidebar()\">\n <span class=\"mc-sidebar__trigger__container\">\n <moz-icon *ngIf=\"!localOpen\" [iconName]=\"'Navigation_Arrow_DoubleArrow--Right_24px'\"></moz-icon>\n <moz-icon *ngIf=\"localOpen\" [iconName]=\"'Navigation_Arrow_DoubleArrow--Left_24px'\"></moz-icon>\n </span>\n </button>\n <ng-container *ngTemplateOutlet=\"sidebarHome\"></ng-container>\n\n <ng-container *ngTemplateOutlet=\"separator\"></ng-container>\n\n <div class=\"mc-sidebar-section\">\n <ul [ngClass]=\"{'is-hidden': activeSubFeature && localOpen,\n 'is-visible': !activeSubFeature || !localOpen}\">\n <li *ngFor=\"let item of featuresCmp\">\n <ng-container *ngTemplateOutlet=\"sidebarFeatures; context: {item: item}\"></ng-container>\n </li>\n </ul>\n <ng-container *ngTemplateOutlet=\"tmplSubFeature; context: {feature: activeSubFeature}\"></ng-container>\n </div>\n <div class=\"mc-sidebar__utilities\">\n <div *ngFor=\"let utility of utilitiesCmp\">\n <ng-container *ngTemplateOutlet=\"separator\"></ng-container>\n <ul>\n <li class=\"mc-sidebar__utilities__item\">\n <ng-container *ngTemplateOutlet=\"sidebarUtility; context: {utility: utility}\"></ng-container>\n </li>\n </ul>\n </div>\n </div>\n\n <!-- <ng-container *ngTemplateOutlet=\"separator\"></ng-container> -->\n\n </div>\n <ng-container *ngTemplateOutlet=\"sidebarUser\"></ng-container>\n</nav>\n\n<ng-template #sidebarHome>\n <ng-container *ngIf=\"homeCmp\">\n <button class=\"mc-sidebar-feature-group\" [ngClass]=\"localOpen ? 'is-open' : 'is-close'\">\n <a href=\"#\" [routerLink]=\"homeCmp.link\">\n <span class=\"mc-sidebar-feature-group__container\" [ngClass]=\"localOpen ? 'is-open' : 'is-close'\" (click)=\"select(homeCmp)\">\n <span class=\"mc-sidebar-feature-group__icon\">\n <ng-container *ngTemplateOutlet=\"homeCmp.tmplIcon\"></ng-container>\n </span>\n <ng-container *ngIf=\"localOpen\">\n <span class=\"mc-sidebar-feature-group__label\">\n <ng-container *ngTemplateOutlet=\"homeCmp.tmplText\"></ng-container>\n </span>\n </ng-container>\n </span>\n </a>\n </button >\n </ng-container>\n</ng-template>\n\n<ng-template #sidebarFeatures let-item=\"item\">\n <!-- <span> -->\n <ng-container *ngTemplateOutlet=\"tmplFeatureGroup\"></ng-container>\n\n <ul *ngIf=\"item?.category\" class=\"mc-sidebar-feature-group__content\" [ngClass]=\"{ 'is-open': localOpen && item.selected, 'is-close': !localOpen || !item.selected }\">\n <li *ngFor=\"let innerItem of item.featuresCmp\" id=\"innerFeature\">\n <ng-template *ngTemplateOutlet=\"tmplFeature; context: {feature: innerItem}\"></ng-template>\n </li>\n </ul>\n <!-- </span> -->\n\n <ng-template #tmplFeatureGroup>\n <button class=\"mc-sidebar-feature-group\" (click)=\"select(item)\" [ngClass]=\"{ 'is-selected': item.selected && !item.category, 'is-open': localOpen, 'is-close': !localOpen }\">\n <a href=\"#\" [routerLink]=\"item.link\">\n <span class=\"mc-sidebar-feature-group__container\" [routerLink]=\"item.link\">\n <span class=\"mc-sidebar-feature-group__icon\">\n <ng-container *ngTemplateOutlet=\"item.tmplIcon\"></ng-container>\n </span>\n <div style=\"display:flex;\" *ngIf=\"localOpen\">\n <span class=\"mc-sidebar-feature-group__label\">\n <ng-container *ngTemplateOutlet=\"item.tmplText\"></ng-container>\n </span>\n <div *ngIf=\"localOpen && item?.category\">\n <moz-icon *ngIf=\"!item.selected\" [iconName]=\"'Navigation_Control_More_16px'\"></moz-icon>\n\n <moz-icon *ngIf=\"item.selected\" [iconName]=\"'Navigation_Control_Less_16px'\"></moz-icon>\n </div>\n </div>\n </span>\n </a>\n </button>\n </ng-template>\n\n</ng-template>\n\n<ng-template #tmplFeature let-feature=\"feature\">\n <button class=\"mc-sidebar-feature\" [ngClass]=\"{ 'is-selected': feature.selected, 'is-open': localOpen, 'is-close': !localOpen }\">\n <a href=\"#\" [routerLink]=\"feature.link\">\n <span class=\"mc-sidebar-feature__container\" (click)=\"feature.subCategory ? selectSubFeature(feature) : select(feature)\">\n <span class=\"mc-sidebar-feature__label\">\n <ng-container *ngTemplateOutlet=\"feature.tmplText\"></ng-container>\n </span>\n </span>\n </a>\n </button>\n</ng-template>\n\n<ng-template #tmplSubFeature let-feature=\"feature\">\n <!-- <ng-container *ngTemplateOutlet=\"feature.tmplText\"></ng-container> -->\n <div class=\"mc-sidebar-sub-feature\" *ngIf=\"!!feature\">\n <button class=\"mc-sidebar-sub-feature__trigger\" (click)=\"closeSubFeature()\">\n <span class=\"mc-sidebar-sub-feature__container\">\n <moz-icon *ngIf=\"localOpen\" [iconName]=\"'Navigation_Arrow_Back_24px'\"></moz-icon>\n <span class=\"mc-sidebar-sub-feature__trigger__label\">\n <ng-container *ngTemplateOutlet=\"feature.tmplText\"></ng-container>\n </span>\n </span>\n </button>\n <ul>\n <li *ngFor=\"let item of feature.featuresCmp\" class=\"mc-sidebar-sub-feature__item\" id=\"sub-features\">\n <ng-template *ngTemplateOutlet=\"tmplFeature; context: {feature: item}\"></ng-template>\n </li>\n </ul>\n </div>\n</ng-template>\n\n<ng-template #sidebarUtility let-utility=\"utility\">\n <button class=\"mc-sidebar-segment\" [ngClass]=\"{ 'is-selected': utility.selected, 'is-open': localOpen, 'is-close': !localOpen }\">\n <a href=\"#\" [routerLink]=\"utility.link\">\n <span class=\"mc-sidebar-segment__container\" (click)=\"select(utility)\">\n <span class=\"mc-sidebar-segment__icon\">\n <ng-container *ngTemplateOutlet=\"utility.tmplIcon\"></ng-container>\n </span>\n <span class=\"mc-sidebar-segment__label\">\n <ng-container *ngTemplateOutlet=\"utility.tmplText\"></ng-container>\n </span>\n </span>\n </a>\n </button>\n</ng-template>\n\n<ng-template #sidebarUser>\n <ng-container *ngIf=\"userCmp && userCmp.templateRef\">\n <div class=\"mc-sidebar-user\" [ngClass]=\"localOpen ? 'is-open' : 'is-close'\">\n <button class=\"mc-sidebar-user__header\">\n <span class=\"mc-sidebar-user__header__picture\">\n <ng-template #tmplProfilPicture>\n <ng-container *ngTemplateOutlet=\"userCmp.tmplPicture\"></ng-container>\n </ng-template>\n <moz-icon *ngIf=\"!userCmp.tmplPicture; else tmplProfilPicture\" [iconName]=\"'User_Account_Profile--View_24px'\"></moz-icon>\n </span>\n <div style=\"display:flex; width: 100%;\" *ngIf=\"localOpen\">\n <p class=\"mc-sidebar-user__header__information\">\n <ng-container *ngTemplateOutlet=\"userCmp.templateRef\"></ng-container>\n </p>\n <span (click)=\"toggleUser()\" *ngIf=\"userCmp?.features?.length\" class=\"mc-sidebar-user__header__information__icon\">\n <moz-icon *ngIf=\"!userCmp.localOpen\" [iconName]=\"'Navigation_Control_More_16px'\"></moz-icon>\n\n <moz-icon *ngIf=\"userCmp.localOpen\" [iconName]=\"'Navigation_Control_Less_16px'\"></moz-icon>\n </span>\n </div>\n </button>\n\n <ul *ngIf=\"userCmp.features?.length && userCmp.localOpen\" [ngClass]=\"userCmp.localOpen ? 'is-open' : 'is-close'\"\n id=\"user-content\" ref=\"content\" class=\"mc-sidebar-user__content\">\n <li *ngFor=\"let userFeature of userCmp.features\">\n <button class=\"mc-sidebar-feature\" [ngClass]=\"{ 'is-open': localOpen, 'is-close': !localOpen }\">\n <!-- <a href=\"#\"> -->\n <span class=\"mc-sidebar-feature__container\">\n <span class=\"mc-sidebar-feature__label\">\n <ng-container *ngTemplateOutlet=\"userFeature\"></ng-container>\n </span>\n </span>\n <!-- </a> -->\n </button>\n </li>\n </ul>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #separator>\n <span role=\"separator\" class=\"mc-sidebar-separator\" [ngClass]=\"localOpen ? 'is-open' : 'is-close'\">\n </span>\n</ng-template>\n", styles: ["a,a:hover,a:visited,a:focus,a:active{text-decoration:none;color:inherit}.mc-sidebar{position:absolute;top:0;left:0;z-index:10;font-size:14px;font-family:LeroyMerlin,sans-serif;color:#fff;box-sizing:border-box;fill:#fff;width:320px;background:#082435;display:block;height:100vh}.mc-sidebar__container{height:100%;display:flex;flex-direction:column}.mc-sidebar__container.has-bottom-panel{height:calc(100% - 88px)}.mc-sidebar__utilities{margin-bottom:24px}.mc-sidebar__utilities__item{margin:4px 0}.mc-sidebar__utilities__item:first-child{margin-top:0}.mc-sidebar__utilities__item:last-child{margin-bottom:0}.mc-sidebar__trigger{cursor:pointer;background:none;border:none;padding:0;min-height:92px;width:100%;font-size:inherit;font-family:inherit;position:relative;display:flex}.mc-sidebar__trigger__container{position:relative;margin:28px 20px;height:32px;width:100%}.mc-sidebar__trigger__container>*{position:absolute;top:0;right:0;width:24px;height:24px}.mc-sidebar__trigger:focus-visible{box-shadow:none;border:none;outline:none}.mc-sidebar__trigger:focus-visible .mc-sidebar__trigger__container{box-shadow:none;border:none;border-radius:6px;outline:1px solid #0b96cc}.mc-sidebar.is-open{transition:width .3s ease-in-out}.mc-sidebar.is-close{transition:width .3s ease-in-out;width:64px;padding:0}.mc-sidebar ul{list-style-type:none;margin:0;padding:0}.mc-sidebar-segment{font-size:.875rem;line-height:1.5714285714;background:none;border:none;cursor:pointer;flex:0;font-family:inherit;text-decoration:none;color:#fff;display:flex;overflow:hidden;min-height:40px;padding:0;width:100%}.mc-sidebar-segment__container{display:flex;align-items:center;width:100%;padding:8px 0}.mc-sidebar-segment__icon{flex-shrink:0}.mc-sidebar-segment__label{margin-left:10px}.mc-sidebar-segment.is-selected{background:#007f8c}.mc-sidebar-segment:focus-visible{box-shadow:none;border:none;outline:none}.mc-sidebar-segment:focus-visible .mc-sidebar-segment__container{box-shadow:none;border:none;border-radius:6px;outline:1px solid #0b96cc}.mc-sidebar-segment:hover{background:#405d68}.mc-sidebar-segment.is-close .mc-sidebar-segment__container{transition:margin .3s ease-in-out;margin:0 20px;width:24px}.mc-sidebar-segment.is-close .mc-sidebar-segment__label{opacity:0}.mc-sidebar-segment.is-open .mc-sidebar-segment__container{transition:margin .3s ease-in-out;margin:0 32px}.mc-sidebar-segment.is-open__label{opacity:1}.mc-sidebar-section{display:flex;flex-direction:row;flex:1;align-items:flex-start;min-height:38px;overflow-x:hidden;overflow-y:auto;overflow-y:overlay;padding:1px 0;scrollbar-color:#009eac #082435;scrollbar-width:thin}.mc-sidebar-section ul,.mc-sidebar-section li{list-style-type:none;margin:0;padding:0;display:flex;width:100%}.mc-sidebar-section ul{align-items:start;flex-direction:column;justify-content:center}.mc-sidebar-section ul li{flex-direction:column;box-sizing:border-box;margin:4px 0}.mc-sidebar-section ul li:first-child{margin-top:0}.mc-sidebar-section ul li:last-child{margin-bottom:0}.mc-sidebar-section ul.is-hidden{transition:margin-left .3s ease-in-out;margin-left:-320px;opacity:0}.mc-sidebar-section ul.is-visible{transition:margin-left .3s ease-in-out;margin-left:0}.mc-sidebar-section::-webkit-scrollbar{width:5px;height:10px;background:#082435}.mc-sidebar-section::-webkit-scrollbar-thumb{background:#009eac}.mc-sidebar-feature-group{background:none;border:none;color:#fff;cursor:pointer;font-size:inherit;font-family:inherit;text-align:initial;margin:0;padding:0;min-height:40px;overflow:hidden;text-decoration:none}.mc-sidebar-feature-group__container{display:flex;align-items:center;margin:5px 0;padding:8px 0;transition:margin .3s ease-in-out}.mc-sidebar-feature-group__label{font-size:.875rem;line-height:1.2857142857;margin:0 8px;width:200px;min-width:200px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical}.mc-sidebar-feature-group__label__tooltip{opacity:0;transition:0s opacity;background-color:#5b737d;border:1px solid white;border-radius:4px;position:absolute;pointer-events:none;left:calc(100% - 16px);padding:8px 16px;width:188px}.mc-sidebar-feature-group__label__tooltip__pointer{position:absolute;top:50%;left:-8px;top:calc(50% - 6px);width:0;height:0;border-top:6px solid transparent;border-bottom:6px solid transparent;border-right:8px solid white}.mc-sidebar-feature-group__label__tooltip__pointer div{position:relative;top:-6px;left:2px;width:0;height:0;border-top:6px solid transparent;border-bottom:6px solid transparent;border-right:8px solid #5b737d}.mc-sidebar-feature-group__label:hover+.mc-sidebar-feature-group__label__tooltip{opacity:1;transition-delay:1s}.mc-sidebar-feature-group__content{overflow:hidden;transition:height .3s ease-in-out}.mc-sidebar-feature-group__content.is-close{height:0}.mc-sidebar-feature-group__content.is-open{height:auto}.mc-sidebar-feature-group__content li#innerFeature{margin:0}.mc-sidebar-feature-group.is-selected{background:#007f8c}.mc-sidebar-feature-group.is-close .mc-sidebar-feature-group__container{margin:0 20px;width:24px}.mc-sidebar-feature-group.is-open .mc-sidebar-feature-group__container{margin:0 32px}.mc-sidebar-feature-group:hover{background:#405d68}.mc-sidebar-feature-group:focus-visible{box-shadow:none;border:none;outline:none}.mc-sidebar-feature-group:focus-visible .mc-sidebar-feature-group__container{box-shadow:none;border:none;border-radius:6px;outline:1px solid #0b96cc}.mc-sidebar-feature-group ul,.mc-sidebar-feature-group li{list-style-type:none;margin:0;padding:0;display:flex;width:100%}.mc-sidebar-feature-group ul{align-items:start;flex-direction:column;justify-content:center}.mc-sidebar-feature-group ul li{flex-direction:column;box-sizing:border-box}.mc-sidebar-feature{font-size:16px;min-width:200px;cursor:pointer;flex:1;display:flex;color:#fff;line-height:22px;overflow:hidden;background:none;border:none;padding:0;text-align:left;font-family:inherit;text-decoration:none}.mc-sidebar-feature__container{display:flex;align-items:center;width:100%;padding-top:8px;padding-bottom:8px}.mc-sidebar-feature__container span{max-width:200px;min-width:200px}.mc-sidebar-feature__label{font-size:.875rem;line-height:1.2857142857;flex:1;margin-right:8px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical}.mc-sidebar-feature__label__tooltip{opacity:0;transition:0s opacity;background-color:#5b737d;border:1px solid white;border-radius:4px;position:absolute;pointer-events:none;left:calc(100% - 16px);padding:8px 16px;width:188px}.mc-sidebar-feature__label__tooltip__pointer{position:absolute;top:50%;left:-8px;top:calc(50% - 6px);width:0;height:0;border-top:6px solid transparent;border-bottom:6px solid transparent;border-right:8px solid white}.mc-sidebar-feature__label__tooltip__pointer div{position:relative;top:-6px;left:2px;width:0;height:0;border-top:6px solid transparent;border-bottom:6px solid transparent;border-right:8px solid #5b737d}.mc-sidebar-feature__label:hover+.mc-sidebar-feature__label__tooltip{opacity:1;transition-delay:1s}.mc-sidebar-feature__icon{margin-right:8px}.mc-sidebar-feature.is-selected{background:#007f8c}.mc-sidebar-feature.is-close{transition:padding .3s ease-in-out;padding:0}.mc-sidebar-feature.is-close .mc-sidebar-feature__container{transition:padding-left .3s ease-in-out;padding-left:20px;width:24px}.mc-sidebar-feature.is-open{transition:padding .3s ease-in-out;padding:0 32px}.mc-sidebar-feature.is-open .mc-sidebar-feature__container{transition:padding-left .3s ease-in-out;padding-left:32px}.mc-sidebar-feature.is-disabled{color:#92a2a9;fill:#92a2a9}.mc-sidebar-feature:hover{background:#405d68}.mc-sidebar-feature:focus-visible{box-shadow:none;border:none;outline:none}.mc-sidebar-feature:focus-visible .mc-sidebar-feature__container{box-shadow:none;border:none;border-radius:6px;outline:1px solid #0b96cc}.mc-sidebar-sub-feature{width:320px}.mc-sidebar-sub-feature__trigger{background:none;border:none;cursor:pointer;display:flex;margin:0;font-size:inherit;font-family:inherit;width:100%;padding:0 32px}.mc-sidebar-sub-feature__trigger__label{font-size:16px;font-weight:700;margin-left:8px;color:#fff}.mc-sidebar-sub-feature__trigger__item{margin:-8px 0 24px}.mc-sidebar-sub-feature__trigger:focus-visible{box-shadow:none;border:none;outline:none}.mc-sidebar-sub-feature__trigger:focus-visible .mc-sidebar-sub-feature__container{box-shadow:none;border:none;border-radius:6px;outline:1px solid #0b96cc}.mc-sidebar-sub-feature__container{display:flex;align-items:center;width:100%;height:24px;padding:8px 0}.mc-sidebar-sub-feature ul{list-style:none;margin:0;padding:0}.mc-sidebar-sub-feature ul li#sub-features{margin:0}.mc-sidebar-user{left:0;right:0;bottom:0;position:absolute;background:#264653}.mc-sidebar-user__header{display:flex;align-items:center;background:none;border:none;color:#fff;font-size:inherit;font-family:inherit;text-align:initial;margin:0;width:100%;overflow:hidden}.mc-sidebar-user__header:focus-visible{box-shadow:none;border:none;border-radius:12px;outline:1px solid #0b96cc;outline-offset:-5px}.mc-sidebar-user__header:hover{cursor:pointer}.mc-sidebar-user__header:hover .mc-sidebar-user__header__information__icon{background:#082435}.mc-sidebar-user__header__picture{display:flex;align-items:center;justify-content:center;background:#5b737d;border-radius:24px;width:48px;min-width:48px;height:48px;overflow:hidden}.mc-sidebar-user__header__picture img{display:block}.mc-sidebar-user__header__information{justify-content:space-around;display:flex;flex-direction:column;flex:1;margin:0 0 0 8px;height:40px}.mc-sidebar-user__header__information__icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:4px}.mc-sidebar-user__header__information__identity{font-size:16px;font-weight:700}.mc-sidebar-user__header__information__title,.mc-sidebar-user__header__information__identity{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:176px}.mc-sidebar-user__content#user-content{list-style-type:none;padding:0;overflow:hidden;margin:-8px 0 24px;transition:all .3s ease-in-out}.mc-sidebar-user__content#user-content.is-close{height:0;margin:0}.mc-sidebar-user__content#user-content .is-open{height:auto}.mc-sidebar-user.is-close .mc-sidebar-user__header{transition:padding .3s ease-in-out;padding:12px 8px;margin:8px 0}.mc-sidebar-user.is-open .mc-sidebar-user__header{transition:padding .3s ease-in-out;padding:12px 24px 12px 32px;margin:8px 0}.mc-sidebar-separator{border-bottom:1px solid #5b737d;display:flex}.mc-sidebar-separator.is-close{transition:margin .3s ease-in-out;margin:24px 0}.mc-sidebar-separator.is-open{transition:margin .3s ease-in-out;margin:24px 32px}\n"] }]
66
+ args: [{ selector: 'moz-sidebar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<nav class=\"mc-sidebar\" [ngClass]=\"localOpen ? 'is-open' : 'is-close'\">\n <div class=\"mc-sidebar__container\" [ngClass]=\"{'has-bottom-panel': userCmp}\">\n <button class=\"mc-sidebar__trigger\" type=\"button\" id=\"mc-sidebar__trigger\" (click)=\"toggleSidebar()\">\n <span class=\"mc-sidebar__trigger__container\">\n <moz-icon *ngIf=\"!localOpen\" [iconName]=\"'Navigation_Arrow_DoubleArrow--Right_24px'\"></moz-icon>\n <moz-icon *ngIf=\"localOpen\" [iconName]=\"'Navigation_Arrow_DoubleArrow--Left_24px'\"></moz-icon>\n </span>\n </button>\n <ng-container *ngTemplateOutlet=\"sidebarHome\"></ng-container>\n\n <ng-container *ngTemplateOutlet=\"separator\"></ng-container>\n\n <div class=\"mc-sidebar-section\">\n <ul [ngClass]=\"{'is-hidden': activeSubFeature && localOpen,\n 'is-visible': !activeSubFeature || !localOpen}\">\n <li *ngFor=\"let item of featuresCmp\">\n <ng-container *ngTemplateOutlet=\"sidebarFeatures; context: {item: item}\"></ng-container>\n </li>\n </ul>\n <ng-container *ngTemplateOutlet=\"tmplSubFeature; context: {feature: activeSubFeature}\"></ng-container>\n </div>\n <div class=\"mc-sidebar__utilities\">\n <div *ngFor=\"let utility of utilitiesCmp\">\n <ng-container *ngTemplateOutlet=\"separator\"></ng-container>\n <ul>\n <li class=\"mc-sidebar__utilities__item\">\n <ng-container *ngTemplateOutlet=\"sidebarUtility; context: {utility: utility}\"></ng-container>\n </li>\n </ul>\n </div>\n </div>\n\n </div>\n <ng-container *ngTemplateOutlet=\"sidebarUser\"></ng-container>\n</nav>\n\n<ng-template #sidebarHome>\n <ng-container *ngIf=\"homeCmp\">\n <button class=\"mc-sidebar-feature-group\" [ngClass]=\"localOpen ? 'is-open' : 'is-close'\">\n <a href=\"#\" [routerLink]=\"homeCmp.link\">\n <span class=\"mc-sidebar-feature-group__container\" [ngClass]=\"localOpen ? 'is-open' : 'is-close'\" (click)=\"select(homeCmp)\">\n <span class=\"mc-sidebar-feature-group__icon\">\n <ng-container *ngTemplateOutlet=\"homeCmp.tmplIcon\"></ng-container>\n </span>\n <ng-container *ngIf=\"localOpen\">\n <span class=\"mc-sidebar-feature-group__label\">\n <ng-container *ngTemplateOutlet=\"homeCmp.tmplText\"></ng-container>\n </span>\n </ng-container>\n </span>\n </a>\n </button >\n </ng-container>\n</ng-template>\n\n<ng-template #sidebarFeatures let-item=\"item\">\n <ng-container *ngTemplateOutlet=\"tmplFeatureGroup\"></ng-container>\n\n <ul *ngIf=\"item?.category\" class=\"mc-sidebar-feature-group__content\" [ngClass]=\"{ 'is-open': localOpen && item.selected, 'is-close': !localOpen || !item.selected }\">\n <li *ngFor=\"let innerItem of item.featuresCmp\" id=\"innerFeature\">\n <ng-template *ngTemplateOutlet=\"tmplFeature; context: {feature: innerItem}\"></ng-template>\n </li>\n </ul>\n\n <ng-template #tmplFeatureGroup>\n <button class=\"mc-sidebar-feature-group\" (click)=\"select(item)\" [ngClass]=\"{ 'is-selected': item.selected && !item.category, 'is-open': localOpen, 'is-close': !localOpen }\">\n <a href=\"#\" [routerLink]=\"item.link\">\n <span class=\"mc-sidebar-feature-group__container\" [routerLink]=\"item.link\">\n <span class=\"mc-sidebar-feature-group__icon\">\n <ng-container *ngTemplateOutlet=\"item.tmplIcon\"></ng-container>\n </span>\n <div style=\"display:flex;\" *ngIf=\"localOpen\">\n <span class=\"mc-sidebar-feature-group__label\">\n <ng-container *ngTemplateOutlet=\"item.tmplText\"></ng-container>\n </span>\n <div *ngIf=\"localOpen && item?.category\">\n <moz-icon *ngIf=\"!item.selected\" [iconName]=\"'Navigation_Control_More_16px'\"></moz-icon>\n\n <moz-icon *ngIf=\"item.selected\" [iconName]=\"'Navigation_Control_Less_16px'\"></moz-icon>\n </div>\n </div>\n </span>\n </a>\n </button>\n </ng-template>\n\n</ng-template>\n\n<ng-template #tmplFeature let-feature=\"feature\">\n <button class=\"mc-sidebar-feature\" [ngClass]=\"{ 'is-selected': feature.selected, 'is-open': localOpen, 'is-close': !localOpen }\">\n <a href=\"#\" [routerLink]=\"feature.link\">\n <span class=\"mc-sidebar-feature__container\" (click)=\"feature.subCategory ? selectSubFeature(feature) : select(feature)\">\n <span class=\"mc-sidebar-feature__label\">\n <ng-container *ngTemplateOutlet=\"feature.tmplText\"></ng-container>\n </span>\n </span>\n </a>\n </button>\n</ng-template>\n\n<ng-template #tmplSubFeature let-feature=\"feature\">\n <div class=\"mc-sidebar-sub-feature\" *ngIf=\"!!feature\">\n <button class=\"mc-sidebar-sub-feature__trigger\" (click)=\"closeSubFeature()\">\n <span class=\"mc-sidebar-sub-feature__container\">\n <moz-icon *ngIf=\"localOpen\" [iconName]=\"'Navigation_Arrow_Back_24px'\"></moz-icon>\n <span class=\"mc-sidebar-sub-feature__trigger__label\">\n <ng-container *ngTemplateOutlet=\"feature.tmplText\"></ng-container>\n </span>\n </span>\n </button>\n <ul>\n <li *ngFor=\"let item of feature.featuresCmp\" class=\"mc-sidebar-sub-feature__item\" id=\"sub-features\">\n <ng-template *ngTemplateOutlet=\"tmplFeature; context: {feature: item}\"></ng-template>\n </li>\n </ul>\n </div>\n</ng-template>\n\n<ng-template #sidebarUtility let-utility=\"utility\">\n <button class=\"mc-sidebar-segment\" [ngClass]=\"{ 'is-selected': utility.selected, 'is-open': localOpen, 'is-close': !localOpen }\">\n <a href=\"#\" [routerLink]=\"utility.link\">\n <span class=\"mc-sidebar-segment__container\" (click)=\"select(utility)\">\n <span class=\"mc-sidebar-segment__icon\">\n <ng-container *ngTemplateOutlet=\"utility.tmplIcon\"></ng-container>\n </span>\n <span class=\"mc-sidebar-segment__label\">\n <ng-container *ngTemplateOutlet=\"utility.tmplText\"></ng-container>\n </span>\n </span>\n </a>\n </button>\n</ng-template>\n\n<ng-template #sidebarUser>\n <ng-container *ngIf=\"userCmp && userCmp.templateRef\">\n <div class=\"mc-sidebar-user\" [ngClass]=\"localOpen ? 'is-open' : 'is-close'\">\n <button class=\"mc-sidebar-user__header\">\n <span class=\"mc-sidebar-user__header__picture\">\n <ng-template #tmplProfilPicture>\n <ng-container *ngTemplateOutlet=\"userCmp.tmplPicture\"></ng-container>\n </ng-template>\n <moz-icon *ngIf=\"!userCmp.tmplPicture; else tmplProfilPicture\" [iconName]=\"'User_Account_Profile--View_24px'\"></moz-icon>\n </span>\n <div style=\"display:flex; width: 100%;\" *ngIf=\"localOpen\">\n <p class=\"mc-sidebar-user__header__information\">\n <ng-container *ngTemplateOutlet=\"userCmp.templateRef\"></ng-container>\n </p>\n <span (click)=\"toggleUser()\" *ngIf=\"userCmp?.features?.length\" class=\"mc-sidebar-user__header__information__icon\">\n <moz-icon *ngIf=\"!userCmp.localOpen\" [iconName]=\"'Navigation_Control_More_16px'\"></moz-icon>\n\n <moz-icon *ngIf=\"userCmp.localOpen\" [iconName]=\"'Navigation_Control_Less_16px'\"></moz-icon>\n </span>\n </div>\n </button>\n\n <ul *ngIf=\"userCmp.features?.length && userCmp.localOpen\" [ngClass]=\"userCmp.localOpen ? 'is-open' : 'is-close'\"\n id=\"user-content\" ref=\"content\" class=\"mc-sidebar-user__content\">\n <li *ngFor=\"let userFeature of userCmp.features\">\n <button class=\"mc-sidebar-feature\" [ngClass]=\"{ 'is-open': localOpen, 'is-close': !localOpen }\">\n <span class=\"mc-sidebar-feature__container\">\n <span class=\"mc-sidebar-feature__label\">\n <ng-container *ngTemplateOutlet=\"userFeature\"></ng-container>\n </span>\n </span>\n </button>\n </li>\n </ul>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #separator>\n <span role=\"separator\" class=\"mc-sidebar-separator\" [ngClass]=\"localOpen ? 'is-open' : 'is-close'\">\n </span>\n</ng-template>\n", styles: ["a,a:hover,a:visited,a:focus,a:active{text-decoration:none;color:inherit}.mc-sidebar{position:absolute;top:0;left:0;z-index:10;font-size:14px;font-family:LeroyMerlin,sans-serif;color:#fff;box-sizing:border-box;fill:#fff;width:320px;background:#082435;display:block;height:100vh}.mc-sidebar__container{height:100%;display:flex;flex-direction:column}.mc-sidebar__container.has-bottom-panel{height:calc(100% - 88px)}.mc-sidebar__utilities{margin-bottom:24px}.mc-sidebar__utilities__item{margin:4px 0}.mc-sidebar__utilities__item:first-child{margin-top:0}.mc-sidebar__utilities__item:last-child{margin-bottom:0}.mc-sidebar__trigger{cursor:pointer;background:none;border:none;padding:0;min-height:92px;width:100%;font-size:inherit;font-family:inherit;position:relative;display:flex}.mc-sidebar__trigger__container{position:relative;margin:28px 20px;height:32px;width:100%}.mc-sidebar__trigger__container>*{position:absolute;top:0;right:0;width:24px;height:24px}.mc-sidebar__trigger:focus-visible{box-shadow:none;border:none;outline:none}.mc-sidebar__trigger:focus-visible .mc-sidebar__trigger__container{box-shadow:none;border:none;border-radius:6px;outline:1px solid #0b96cc}.mc-sidebar.is-open{transition:width .3s ease-in-out}.mc-sidebar.is-close{transition:width .3s ease-in-out;width:64px;padding:0}.mc-sidebar ul{list-style-type:none;margin:0;padding:0}.mc-sidebar-segment{font-size:.875rem;line-height:1.5714285714;background:none;border:none;cursor:pointer;flex:0;font-family:inherit;text-decoration:none;color:#fff;display:flex;overflow:hidden;min-height:40px;padding:0;width:100%}.mc-sidebar-segment__container{display:flex;align-items:center;width:100%;padding:8px 0}.mc-sidebar-segment__icon{flex-shrink:0}.mc-sidebar-segment__label{margin-left:10px}.mc-sidebar-segment.is-selected{background:#007f8c}.mc-sidebar-segment:focus-visible{box-shadow:none;border:none;outline:none}.mc-sidebar-segment:focus-visible .mc-sidebar-segment__container{box-shadow:none;border:none;border-radius:6px;outline:1px solid #0b96cc}.mc-sidebar-segment:hover{background:#405d68}.mc-sidebar-segment.is-close .mc-sidebar-segment__container{transition:margin .3s ease-in-out;margin:0 20px;width:24px}.mc-sidebar-segment.is-close .mc-sidebar-segment__label{opacity:0}.mc-sidebar-segment.is-open .mc-sidebar-segment__container{transition:margin .3s ease-in-out;margin:0 32px}.mc-sidebar-segment.is-open__label{opacity:1}.mc-sidebar-section{display:flex;flex-direction:row;flex:1;align-items:flex-start;min-height:38px;overflow-x:hidden;overflow-y:auto;overflow-y:overlay;padding:1px 0;scrollbar-color:#009eac #082435;scrollbar-width:thin}.mc-sidebar-section ul,.mc-sidebar-section li{list-style-type:none;margin:0;padding:0;display:flex;width:100%}.mc-sidebar-section ul{align-items:start;flex-direction:column;justify-content:center}.mc-sidebar-section ul li{flex-direction:column;box-sizing:border-box;margin:4px 0}.mc-sidebar-section ul li:first-child{margin-top:0}.mc-sidebar-section ul li:last-child{margin-bottom:0}.mc-sidebar-section ul.is-hidden{transition:margin-left .3s ease-in-out;margin-left:-320px;opacity:0}.mc-sidebar-section ul.is-visible{transition:margin-left .3s ease-in-out;margin-left:0}.mc-sidebar-section::-webkit-scrollbar{width:5px;height:10px;background:#082435}.mc-sidebar-section::-webkit-scrollbar-thumb{background:#009eac}.mc-sidebar-feature-group{background:none;border:none;color:#fff;cursor:pointer;font-size:inherit;font-family:inherit;text-align:initial;margin:0;padding:0;min-height:40px;overflow:hidden;text-decoration:none}.mc-sidebar-feature-group__container{display:flex;align-items:center;margin:5px 0;padding:8px 0;transition:margin .3s ease-in-out}.mc-sidebar-feature-group__label{font-size:.875rem;line-height:1.2857142857;margin:0 8px;width:200px;min-width:200px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical}.mc-sidebar-feature-group__label__tooltip{opacity:0;transition:0s opacity;background-color:#5b737d;border:1px solid white;border-radius:4px;position:absolute;pointer-events:none;left:calc(100% - 16px);padding:8px 16px;width:188px}.mc-sidebar-feature-group__label__tooltip__pointer{position:absolute;top:50%;left:-8px;top:calc(50% - 6px);width:0;height:0;border-top:6px solid transparent;border-bottom:6px solid transparent;border-right:8px solid white}.mc-sidebar-feature-group__label__tooltip__pointer div{position:relative;top:-6px;left:2px;width:0;height:0;border-top:6px solid transparent;border-bottom:6px solid transparent;border-right:8px solid #5b737d}.mc-sidebar-feature-group__label:hover+.mc-sidebar-feature-group__label__tooltip{opacity:1;transition-delay:1s}.mc-sidebar-feature-group__content{overflow:hidden;transition:height .3s ease-in-out}.mc-sidebar-feature-group__content.is-close{height:0}.mc-sidebar-feature-group__content.is-open{height:auto}.mc-sidebar-feature-group__content li#innerFeature{margin:0}.mc-sidebar-feature-group.is-selected{background:#007f8c}.mc-sidebar-feature-group.is-close .mc-sidebar-feature-group__container{margin:0 20px;width:24px}.mc-sidebar-feature-group.is-open .mc-sidebar-feature-group__container{margin:0 32px}.mc-sidebar-feature-group:hover{background:#405d68}.mc-sidebar-feature-group:focus-visible{box-shadow:none;border:none;outline:none}.mc-sidebar-feature-group:focus-visible .mc-sidebar-feature-group__container{box-shadow:none;border:none;border-radius:6px;outline:1px solid #0b96cc}.mc-sidebar-feature-group ul,.mc-sidebar-feature-group li{list-style-type:none;margin:0;padding:0;display:flex;width:100%}.mc-sidebar-feature-group ul{align-items:start;flex-direction:column;justify-content:center}.mc-sidebar-feature-group ul li{flex-direction:column;box-sizing:border-box}.mc-sidebar-feature{font-size:16px;min-width:200px;cursor:pointer;flex:1;display:flex;color:#fff;line-height:22px;overflow:hidden;background:none;border:none;padding:0;text-align:left;font-family:inherit;text-decoration:none}.mc-sidebar-feature__container{display:flex;align-items:center;width:100%;padding-top:8px;padding-bottom:8px}.mc-sidebar-feature__container span{max-width:200px;min-width:200px}.mc-sidebar-feature__label{font-size:.875rem;line-height:1.2857142857;flex:1;margin-right:8px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical}.mc-sidebar-feature__label__tooltip{opacity:0;transition:0s opacity;background-color:#5b737d;border:1px solid white;border-radius:4px;position:absolute;pointer-events:none;left:calc(100% - 16px);padding:8px 16px;width:188px}.mc-sidebar-feature__label__tooltip__pointer{position:absolute;top:50%;left:-8px;top:calc(50% - 6px);width:0;height:0;border-top:6px solid transparent;border-bottom:6px solid transparent;border-right:8px solid white}.mc-sidebar-feature__label__tooltip__pointer div{position:relative;top:-6px;left:2px;width:0;height:0;border-top:6px solid transparent;border-bottom:6px solid transparent;border-right:8px solid #5b737d}.mc-sidebar-feature__label:hover+.mc-sidebar-feature__label__tooltip{opacity:1;transition-delay:1s}.mc-sidebar-feature__icon{margin-right:8px}.mc-sidebar-feature.is-selected{background:#007f8c}.mc-sidebar-feature.is-close{transition:padding .3s ease-in-out;padding:0}.mc-sidebar-feature.is-close .mc-sidebar-feature__container{transition:padding-left .3s ease-in-out;padding-left:20px;width:24px}.mc-sidebar-feature.is-open{transition:padding .3s ease-in-out;padding:0 32px}.mc-sidebar-feature.is-open .mc-sidebar-feature__container{transition:padding-left .3s ease-in-out;padding-left:32px}.mc-sidebar-feature.is-disabled{color:#92a2a9;fill:#92a2a9}.mc-sidebar-feature:hover{background:#405d68}.mc-sidebar-feature:focus-visible{box-shadow:none;border:none;outline:none}.mc-sidebar-feature:focus-visible .mc-sidebar-feature__container{box-shadow:none;border:none;border-radius:6px;outline:1px solid #0b96cc}.mc-sidebar-sub-feature{width:320px}.mc-sidebar-sub-feature__trigger{background:none;border:none;cursor:pointer;display:flex;margin:0;font-size:inherit;font-family:inherit;width:100%;padding:0 32px}.mc-sidebar-sub-feature__trigger__label{font-size:16px;font-weight:700;margin-left:8px;color:#fff}.mc-sidebar-sub-feature__trigger__item{margin:-8px 0 24px}.mc-sidebar-sub-feature__trigger:focus-visible{box-shadow:none;border:none;outline:none}.mc-sidebar-sub-feature__trigger:focus-visible .mc-sidebar-sub-feature__container{box-shadow:none;border:none;border-radius:6px;outline:1px solid #0b96cc}.mc-sidebar-sub-feature__container{display:flex;align-items:center;width:100%;height:24px;padding:8px 0}.mc-sidebar-sub-feature ul{list-style:none;margin:0;padding:0}.mc-sidebar-sub-feature ul li#sub-features{margin:0}.mc-sidebar-user{left:0;right:0;bottom:0;position:absolute;background:#264653}.mc-sidebar-user__header{display:flex;align-items:center;background:none;border:none;color:#fff;font-size:inherit;font-family:inherit;text-align:initial;margin:0;width:100%;overflow:hidden}.mc-sidebar-user__header:focus-visible{box-shadow:none;border:none;border-radius:12px;outline:1px solid #0b96cc;outline-offset:-5px}.mc-sidebar-user__header:hover{cursor:pointer}.mc-sidebar-user__header:hover .mc-sidebar-user__header__information__icon{background:#082435}.mc-sidebar-user__header__picture{display:flex;align-items:center;justify-content:center;background:#5b737d;border-radius:24px;width:48px;min-width:48px;height:48px;overflow:hidden}.mc-sidebar-user__header__picture img{display:block}.mc-sidebar-user__header__information{justify-content:space-around;display:flex;flex-direction:column;flex:1;margin:0 0 0 8px;height:40px}.mc-sidebar-user__header__information__icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:4px}.mc-sidebar-user__header__information__identity{font-size:16px;font-weight:700}.mc-sidebar-user__header__information__title,.mc-sidebar-user__header__information__identity{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:176px}.mc-sidebar-user__content#user-content{list-style-type:none;padding:0;overflow:hidden;margin:-8px 0 24px;transition:all .3s ease-in-out}.mc-sidebar-user__content#user-content.is-close{height:0;margin:0}.mc-sidebar-user__content#user-content .is-open{height:auto}.mc-sidebar-user.is-close .mc-sidebar-user__header{transition:padding .3s ease-in-out;padding:12px 8px;margin:8px 0}.mc-sidebar-user.is-open .mc-sidebar-user__header{transition:padding .3s ease-in-out;padding:12px 24px 12px 32px;margin:8px 0}.mc-sidebar-separator{border-bottom:1px solid #5b737d;display:flex}.mc-sidebar-separator.is-close{transition:margin .3s ease-in-out;margin:24px 0}.mc-sidebar-separator.is-open{transition:margin .3s ease-in-out;margin:24px 32px}\n"] }]
66
67
  }], ctorParameters: function () { return [{ type: i3.RouterLinkActive, decorators: [{
67
68
  type: Optional
68
69
  }, {
@@ -87,5 +88,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
87
88
  args: [MozSidebarUserComponent]
88
89
  }], options: [{
89
90
  type: Input
91
+ }], opened: [{
92
+ type: Output
90
93
  }] } });
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW96LXNpZGViYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvc2lkZWJhci9tb3otc2lkZWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9zaWRlYmFyL21vei1zaWRlYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixlQUFlLEVBQ2YsS0FBSyxFQUdMLFFBQVEsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUNoRyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN2RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN2RixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUUvRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7QUFRdkUsTUFBTSxPQUFPLG1CQUFtQjtJQW9COUIsWUFHa0IsZ0JBQXlDLEVBR3pDLFVBQXFDO1FBSHJDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBeUI7UUFHekMsZUFBVSxHQUFWLFVBQVUsQ0FBMkI7UUFYaEQsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUdsQixtQkFBYyxHQUFtQixFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFTMUYsQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzNELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLElBQUksS0FBSyxDQUFDO0lBQ25ELENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDbkMsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFPO1FBQzFCLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUM7SUFDcEQsQ0FBQztJQUVELE1BQU0sQ0FDSixJQUF1RjtRQUV2RixNQUFNLGtCQUFrQixHQUFHLENBQUMsSUFBUyxFQUFFLEVBQUU7WUFDdkMsSUFBSSxJQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFPLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsRUFBRTtnQkFDckUsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7YUFDdkI7WUFDRCxJQUFJLENBQUMsV0FBVyxFQUFFLE1BQU0sSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQU8sRUFBRSxFQUFFLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM1RixDQUFDLENBQUM7UUFFRixJQUFJLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFO1lBQy9CLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRTtZQUNoQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQy9CLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUU7WUFDL0IsSUFBSSxJQUFJLFlBQVksMEJBQTBCLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDaEUsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7YUFDdkI7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7YUFDeEI7U0FDRjtJQUNILENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxJQUFnQztRQUMvQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO0lBQy9CLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFNBQVMsQ0FBQztJQUNwQyxDQUFDOztpSEEzRVUsbUJBQW1CLGtCQXNCcEIsZ0JBQWdCLDZCQUdoQixrQkFBa0I7cUdBekJqQixtQkFBbUIsd0hBQ2hCLHVCQUF1QiwwRUFTdkIsdUJBQXVCLG9HQU5ILDBCQUEwQixtREFHM0MsMEJBQTBCLDZCQy9CN0MsODdRQXNMQTs0RkQ5SmEsbUJBQW1CO2tCQU4vQixTQUFTOytCQUNFLGFBQWEsbUJBR04sdUJBQXVCLENBQUMsTUFBTTs7MEJBdUI1QyxRQUFROzswQkFDUixNQUFNOzJCQUFDLGdCQUFnQjs7MEJBRXZCLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMsa0JBQWtCOzRDQXZCckIsT0FBTztzQkFEYixZQUFZO3VCQUFDLHVCQUF1QjtnQkFJOUIsV0FBVztzQkFEakIsZUFBZTt1QkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsMEJBQTBCLENBQUM7Z0JBSXRELFlBQVk7c0JBRGxCLGVBQWU7dUJBQUMsMEJBQTBCO2dCQUlwQyxPQUFPO3NCQURiLFlBQVk7dUJBQUMsdUJBQXVCO2dCQUc1QixPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgUXVlcnlMaXN0LFxuICBPcHRpb25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNb3pTaWRlYmFyRmVhdHVyZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mZWF0dXJlL21vei1zaWRlYmFyLWZlYXR1cmUuY29tcG9uZW50JztcbmltcG9ydCB7IE1velNpZGViYXJIb21lQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2hvbWUvbW96LXNpZGViYXItaG9tZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTW96U2lkZWJhclVzZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdXNlci9tb3otc2lkZWJhci11c2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNb3pTaWRlYmFyVXRpbGl0eUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy91dGlsaXR5L21vei1zaWRlYmFyLXV0aWx0eS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2lkZWJhck9wdGlvbnMgfSBmcm9tICcuL21vZGVsL21vZGVscyc7XG5pbXBvcnQgeyBmb3J3YXJkUmVmLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlckxpbmtBY3RpdmUsIFJvdXRlckxpbmtXaXRoSHJlZiB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21vei1zaWRlYmFyJyxcbiAgc3R5bGVVcmxzOiBbJy4vbW96LXNpZGViYXIuY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICcuL21vei1zaWRlYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE1velNpZGViYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBAQ29udGVudENoaWxkKE1velNpZGViYXJIb21lQ29tcG9uZW50KVxuICBwdWJsaWMgaG9tZUNtcD86IE1velNpZGViYXJIb21lQ29tcG9uZW50O1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oZm9yd2FyZFJlZigoKSA9PiBNb3pTaWRlYmFyRmVhdHVyZUNvbXBvbmVudCkpXG4gIHB1YmxpYyBmZWF0dXJlc0NtcD86IFF1ZXJ5TGlzdDxNb3pTaWRlYmFyRmVhdHVyZUNvbXBvbmVudD47XG5cbiAgQENvbnRlbnRDaGlsZHJlbihNb3pTaWRlYmFyVXRpbGl0eUNvbXBvbmVudClcbiAgcHVibGljIHV0aWxpdGllc0NtcD86IFF1ZXJ5TGlzdDxNb3pTaWRlYmFyVXRpbGl0eUNvbXBvbmVudD47XG5cbiAgQENvbnRlbnRDaGlsZChNb3pTaWRlYmFyVXNlckNvbXBvbmVudClcbiAgcHVibGljIHVzZXJDbXA/OiBNb3pTaWRlYmFyVXNlckNvbXBvbmVudDtcblxuICBASW5wdXQoKSBvcHRpb25zPzogU2lkZWJhck9wdGlvbnM7XG5cbiAgcHVibGljIGxvY2FsT3BlbiA9IGZhbHNlO1xuICBwdWJsaWMgYWN0aXZlU3ViRmVhdHVyZT86IE1velNpZGViYXJGZWF0dXJlQ29tcG9uZW50O1xuXG4gIHB1YmxpYyBkZWZhdWx0T3B0aW9uczogU2lkZWJhck9wdGlvbnMgPSB7IGFjdGl2ZTogJycsIGNvbGxhcHNlZDogdHJ1ZSwgY2xvc2VPblNlbGVjdDogdHJ1ZSB9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpXG4gICAgQEluamVjdChSb3V0ZXJMaW5rQWN0aXZlKVxuICAgIHB1YmxpYyByZWFkb25seSByb3V0ZXJMaW5rQWN0aXZlOiBSb3V0ZXJMaW5rQWN0aXZlIHwgbnVsbCxcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBJbmplY3QoUm91dGVyTGlua1dpdGhIcmVmKVxuICAgIHB1YmxpYyByZWFkb25seSByb3V0ZXJMaW5rOiBSb3V0ZXJMaW5rV2l0aEhyZWYgfCBudWxsXG4gICkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLm9wdGlvbnMgPSB7IC4uLnRoaXMuZGVmYXVsdE9wdGlvbnMsIC4uLnRoaXMub3B0aW9ucyB9O1xuICAgIHRoaXMubG9jYWxPcGVuID0gdGhpcy5vcHRpb25zLmNvbGxhcHNlZCB8fCBmYWxzZTtcbiAgfVxuXG4gIHRvZ2dsZVNpZGViYXIoKSB7XG4gICAgdGhpcy5sb2NhbE9wZW4gPSAhdGhpcy5sb2NhbE9wZW47XG4gIH1cblxuICB0b2dnbGVVc2VyKCkge1xuICAgIGlmICghdGhpcy51c2VyQ21wKSByZXR1cm47XG4gICAgdGhpcy51c2VyQ21wLmxvY2FsT3BlbiA9ICF0aGlzLnVzZXJDbXA/LmxvY2FsT3BlbjtcbiAgfVxuXG4gIHNlbGVjdChcbiAgICBpdGVtOiBNb3pTaWRlYmFyRmVhdHVyZUNvbXBvbmVudCB8IE1velNpZGViYXJIb21lQ29tcG9uZW50IHwgTW96U2lkZWJhclV0aWxpdHlDb21wb25lbnRcbiAgKTogdm9pZCB7XG4gICAgY29uc3QgY2xlYXJBbmRIYW5kZGxlQ2F0ID0gKGVsZW06IGFueSkgPT4ge1xuICAgICAgaWYgKGVsZW0gIT09IGl0ZW0gJiYgIWVsZW0uZmVhdHVyZXNDbXAuc29tZSgoaXQ6IGFueSkgPT4gaXQgPT09IGl0ZW0pKSB7XG4gICAgICAgIGVsZW0uc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGVsZW0uZmVhdHVyZXNDbXA/Lmxlbmd0aCAmJiBlbGVtLmZlYXR1cmVzQ21wLmZvckVhY2goKGl0OiBhbnkpID0+IGNsZWFyQW5kSGFuZGRsZUNhdChpdCkpO1xuICAgIH07XG5cbiAgICB0aGlzLmZlYXR1cmVzQ21wPy5mb3JFYWNoKChpdCkgPT4ge1xuICAgICAgY2xlYXJBbmRIYW5kZGxlQ2F0KGl0KTtcbiAgICB9KTtcbiAgICB0aGlzLnV0aWxpdGllc0NtcD8uZm9yRWFjaCgoaXQpID0+IHtcbiAgICAgIGNsZWFyQW5kSGFuZGRsZUNhdChpdCk7XG4gICAgfSk7XG4gICAgaXRlbS5zZWxlY3RlZCA9ICFpdGVtLnNlbGVjdGVkO1xuICAgIGlmICh0aGlzLm9wdGlvbnM/LmNsb3NlT25TZWxlY3QpIHtcbiAgICAgIGlmIChpdGVtIGluc3RhbmNlb2YgTW96U2lkZWJhckZlYXR1cmVDb21wb25lbnQgJiYgaXRlbS5fY2F0ZWdvcnkpIHtcbiAgICAgICAgdGhpcy5sb2NhbE9wZW4gPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5sb2NhbE9wZW4gPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzZWxlY3RTdWJGZWF0dXJlKGl0ZW06IE1velNpZGViYXJGZWF0dXJlQ29tcG9uZW50KSB7XG4gICAgdGhpcy5hY3RpdmVTdWJGZWF0dXJlID0gaXRlbTtcbiAgfVxuXG4gIGNsb3NlU3ViRmVhdHVyZSgpIHtcbiAgICB0aGlzLmFjdGl2ZVN1YkZlYXR1cmUgPSB1bmRlZmluZWQ7XG4gIH1cbn1cbiIsIjxuYXYgY2xhc3M9XCJtYy1zaWRlYmFyXCIgW25nQ2xhc3NdPVwibG9jYWxPcGVuID8gJ2lzLW9wZW4nIDogJ2lzLWNsb3NlJ1wiPlxuICA8ZGl2IGNsYXNzPVwibWMtc2lkZWJhcl9fY29udGFpbmVyXCIgW25nQ2xhc3NdPVwieydoYXMtYm90dG9tLXBhbmVsJzogdXNlckNtcH1cIj5cbiAgICA8YnV0dG9uIGNsYXNzPVwibWMtc2lkZWJhcl9fdHJpZ2dlclwiIHR5cGU9XCJidXR0b25cIiBpZD1cIm1jLXNpZGViYXJfX3RyaWdnZXJcIiAoY2xpY2spPVwidG9nZ2xlU2lkZWJhcigpXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cIm1jLXNpZGViYXJfX3RyaWdnZXJfX2NvbnRhaW5lclwiPlxuICAgICAgICA8bW96LWljb24gKm5nSWY9XCIhbG9jYWxPcGVuXCIgW2ljb25OYW1lXT1cIidOYXZpZ2F0aW9uX0Fycm93X0RvdWJsZUFycm93LS1SaWdodF8yNHB4J1wiPjwvbW96LWljb24+XG4gICAgICAgIDxtb3otaWNvbiAqbmdJZj1cImxvY2FsT3BlblwiIFtpY29uTmFtZV09XCInTmF2aWdhdGlvbl9BcnJvd19Eb3VibGVBcnJvdy0tTGVmdF8yNHB4J1wiPjwvbW96LWljb24+XG4gICAgICA8L3NwYW4+XG4gICAgPC9idXR0b24+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNpZGViYXJIb21lXCI+PC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic2VwYXJhdG9yXCI+PC9uZy1jb250YWluZXI+XG5cbiAgICA8ZGl2IGNsYXNzPVwibWMtc2lkZWJhci1zZWN0aW9uXCI+XG4gICAgICA8dWwgW25nQ2xhc3NdPVwieydpcy1oaWRkZW4nOiBhY3RpdmVTdWJGZWF0dXJlICYmIGxvY2FsT3BlbixcbiAgICAgICAgICAnaXMtdmlzaWJsZSc6ICFhY3RpdmVTdWJGZWF0dXJlIHx8ICFsb2NhbE9wZW59XCI+XG4gICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgaXRlbSBvZiBmZWF0dXJlc0NtcFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzaWRlYmFyRmVhdHVyZXM7IGNvbnRleHQ6IHtpdGVtOiBpdGVtfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2xpPlxuICAgICAgPC91bD5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0bXBsU3ViRmVhdHVyZTsgY29udGV4dDoge2ZlYXR1cmU6IGFjdGl2ZVN1YkZlYXR1cmV9XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm1jLXNpZGViYXJfX3V0aWxpdGllc1wiPlxuICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgdXRpbGl0eSBvZiB1dGlsaXRpZXNDbXBcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNlcGFyYXRvclwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDx1bD5cbiAgICAgICAgICAgIDxsaSBjbGFzcz1cIm1jLXNpZGViYXJfX3V0aWxpdGllc19faXRlbVwiPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic2lkZWJhclV0aWxpdHk7IGNvbnRleHQ6IHt1dGlsaXR5OiB1dGlsaXR5fVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICA8L3VsPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzZXBhcmF0b3JcIj48L25nLWNvbnRhaW5lcj4gLS0+XG5cbiAgPC9kaXY+XG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzaWRlYmFyVXNlclwiPjwvbmctY29udGFpbmVyPlxuPC9uYXY+XG5cbjxuZy10ZW1wbGF0ZSAjc2lkZWJhckhvbWU+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJob21lQ21wXCI+XG4gICAgPGJ1dHRvbiBjbGFzcz1cIm1jLXNpZGViYXItZmVhdHVyZS1ncm91cFwiIFtuZ0NsYXNzXT1cImxvY2FsT3BlbiA/ICdpcy1vcGVuJyA6ICdpcy1jbG9zZSdcIj5cbiAgICAgIDxhIGhyZWY9XCIjXCIgW3JvdXRlckxpbmtdPVwiaG9tZUNtcC5saW5rXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWMtc2lkZWJhci1mZWF0dXJlLWdyb3VwX19jb250YWluZXJcIiBbbmdDbGFzc109XCJsb2NhbE9wZW4gPyAnaXMtb3BlbicgOiAnaXMtY2xvc2UnXCIgKGNsaWNrKT1cInNlbGVjdChob21lQ21wKVwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWMtc2lkZWJhci1mZWF0dXJlLWdyb3VwX19pY29uXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaG9tZUNtcC50bXBsSWNvblwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibG9jYWxPcGVuXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1jLXNpZGViYXItZmVhdHVyZS1ncm91cF9fbGFiZWxcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImhvbWVDbXAudG1wbFRleHRcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9hPlxuICAgIDwvYnV0dG9uID5cbiAgIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNzaWRlYmFyRmVhdHVyZXMgbGV0LWl0ZW09XCJpdGVtXCI+XG4gIDwhLS0gPHNwYW4+IC0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0bXBsRmVhdHVyZUdyb3VwXCI+PC9uZy1jb250YWluZXI+XG5cbiAgICA8dWwgKm5nSWY9XCJpdGVtPy5jYXRlZ29yeVwiIGNsYXNzPVwibWMtc2lkZWJhci1mZWF0dXJlLWdyb3VwX19jb250ZW50XCIgW25nQ2xhc3NdPVwieyAnaXMtb3Blbic6IGxvY2FsT3BlbiAmJiBpdGVtLnNlbGVjdGVkLCAnaXMtY2xvc2UnOiAhbG9jYWxPcGVuIHx8ICFpdGVtLnNlbGVjdGVkIH1cIj5cbiAgICAgIDxsaSAqbmdGb3I9XCJsZXQgaW5uZXJJdGVtIG9mIGl0ZW0uZmVhdHVyZXNDbXBcIiBpZD1cImlubmVyRmVhdHVyZVwiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICpuZ1RlbXBsYXRlT3V0bGV0PVwidG1wbEZlYXR1cmU7IGNvbnRleHQ6IHtmZWF0dXJlOiBpbm5lckl0ZW19XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvbGk+XG4gICAgPC91bD5cbiAgPCEtLSA8L3NwYW4+IC0tPlxuXG4gIDxuZy10ZW1wbGF0ZSAjdG1wbEZlYXR1cmVHcm91cD5cbiAgICA8YnV0dG9uIGNsYXNzPVwibWMtc2lkZWJhci1mZWF0dXJlLWdyb3VwXCIgKGNsaWNrKT1cInNlbGVjdChpdGVtKVwiIFtuZ0NsYXNzXT1cInsgJ2lzLXNlbGVjdGVkJzogaXRlbS5zZWxlY3RlZCAmJiAhaXRlbS5jYXRlZ29yeSwgJ2lzLW9wZW4nOiBsb2NhbE9wZW4sICdpcy1jbG9zZSc6ICFsb2NhbE9wZW4gfVwiPlxuICAgICAgPGEgaHJlZj1cIiNcIiBbcm91dGVyTGlua109XCJpdGVtLmxpbmtcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtYy1zaWRlYmFyLWZlYXR1cmUtZ3JvdXBfX2NvbnRhaW5lclwiIFtyb3V0ZXJMaW5rXT1cIml0ZW0ubGlua1wiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWMtc2lkZWJhci1mZWF0dXJlLWdyb3VwX19pY29uXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW0udG1wbEljb25cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTpmbGV4O1wiICpuZ0lmPVwibG9jYWxPcGVuXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYy1zaWRlYmFyLWZlYXR1cmUtZ3JvdXBfX2xhYmVsXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbS50bXBsVGV4dFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwibG9jYWxPcGVuICYmIGl0ZW0/LmNhdGVnb3J5XCI+XG4gICAgICAgICAgICA8bW96LWljb24gKm5nSWY9XCIhaXRlbS5zZWxlY3RlZFwiIFtpY29uTmFtZV09XCInTmF2aWdhdGlvbl9Db250cm9sX01vcmVfMTZweCdcIj48L21vei1pY29uPlxuXG4gICAgICAgICAgICA8bW96LWljb24gKm5nSWY9XCJpdGVtLnNlbGVjdGVkXCIgW2ljb25OYW1lXT1cIidOYXZpZ2F0aW9uX0NvbnRyb2xfTGVzc18xNnB4J1wiPjwvbW96LWljb24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9zcGFuPlxuICAgICAgPC9hPlxuICAgIDwvYnV0dG9uPlxuICA8L25nLXRlbXBsYXRlPlxuXG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3RtcGxGZWF0dXJlIGxldC1mZWF0dXJlPVwiZmVhdHVyZVwiPlxuICA8YnV0dG9uIGNsYXNzPVwibWMtc2lkZWJhci1mZWF0dXJlXCIgW25nQ2xhc3NdPVwieyAnaXMtc2VsZWN0ZWQnOiBmZWF0dXJlLnNlbGVjdGVkLCAnaXMtb3Blbic6IGxvY2FsT3BlbiwgJ2lzLWNsb3NlJzogIWxvY2FsT3BlbiB9XCI+XG4gICAgPGEgaHJlZj1cIiNcIiBbcm91dGVyTGlua109XCJmZWF0dXJlLmxpbmtcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwibWMtc2lkZWJhci1mZWF0dXJlX19jb250YWluZXJcIiAoY2xpY2spPVwiZmVhdHVyZS5zdWJDYXRlZ29yeSA/IHNlbGVjdFN1YkZlYXR1cmUoZmVhdHVyZSkgOiBzZWxlY3QoZmVhdHVyZSlcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtYy1zaWRlYmFyLWZlYXR1cmVfX2xhYmVsXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImZlYXR1cmUudG1wbFRleHRcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9zcGFuPlxuICAgIDwvYT5cbiAgPC9idXR0b24+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3RtcGxTdWJGZWF0dXJlIGxldC1mZWF0dXJlPVwiZmVhdHVyZVwiPlxuICA8IS0tIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmZWF0dXJlLnRtcGxUZXh0XCI+PC9uZy1jb250YWluZXI+IC0tPlxuICA8ZGl2IGNsYXNzPVwibWMtc2lkZWJhci1zdWItZmVhdHVyZVwiICpuZ0lmPVwiISFmZWF0dXJlXCI+XG4gICAgPGJ1dHRvbiBjbGFzcz1cIm1jLXNpZGViYXItc3ViLWZlYXR1cmVfX3RyaWdnZXJcIiAoY2xpY2spPVwiY2xvc2VTdWJGZWF0dXJlKClcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwibWMtc2lkZWJhci1zdWItZmVhdHVyZV9fY29udGFpbmVyXCI+XG4gICAgICAgIDxtb3otaWNvbiAqbmdJZj1cImxvY2FsT3BlblwiIFtpY29uTmFtZV09XCInTmF2aWdhdGlvbl9BcnJvd19CYWNrXzI0cHgnXCI+PC9tb3otaWNvbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtYy1zaWRlYmFyLXN1Yi1mZWF0dXJlX190cmlnZ2VyX19sYWJlbFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmZWF0dXJlLnRtcGxUZXh0XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgICA8dWw+XG4gICAgICA8bGkgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZmVhdHVyZS5mZWF0dXJlc0NtcFwiIGNsYXNzPVwibWMtc2lkZWJhci1zdWItZmVhdHVyZV9faXRlbVwiIGlkPVwic3ViLWZlYXR1cmVzXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cInRtcGxGZWF0dXJlOyBjb250ZXh0OiB7ZmVhdHVyZTogaXRlbX1cIj48L25nLXRlbXBsYXRlPlxuICAgICAgPC9saT5cbiAgICA8L3VsPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjc2lkZWJhclV0aWxpdHkgbGV0LXV0aWxpdHk9XCJ1dGlsaXR5XCI+XG4gICAgPGJ1dHRvbiBjbGFzcz1cIm1jLXNpZGViYXItc2VnbWVudFwiIFtuZ0NsYXNzXT1cInsgJ2lzLXNlbGVjdGVkJzogdXRpbGl0eS5zZWxlY3RlZCwgJ2lzLW9wZW4nOiBsb2NhbE9wZW4sICdpcy1jbG9zZSc6ICFsb2NhbE9wZW4gfVwiPlxuICAgICAgPGEgaHJlZj1cIiNcIiBbcm91dGVyTGlua109XCJ1dGlsaXR5LmxpbmtcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtYy1zaWRlYmFyLXNlZ21lbnRfX2NvbnRhaW5lclwiIChjbGljayk9XCJzZWxlY3QodXRpbGl0eSlcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWMtc2lkZWJhci1zZWdtZW50X19pY29uXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidXRpbGl0eS50bXBsSWNvblwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWMtc2lkZWJhci1zZWdtZW50X19sYWJlbFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInV0aWxpdHkudG1wbFRleHRcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvYT5cbiAgICA8L2J1dHRvbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjc2lkZWJhclVzZXI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJ1c2VyQ21wICYmIHVzZXJDbXAudGVtcGxhdGVSZWZcIj5cbiAgICA8ZGl2IGNsYXNzPVwibWMtc2lkZWJhci11c2VyXCIgW25nQ2xhc3NdPVwibG9jYWxPcGVuID8gJ2lzLW9wZW4nIDogJ2lzLWNsb3NlJ1wiPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cIm1jLXNpZGViYXItdXNlcl9faGVhZGVyXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWMtc2lkZWJhci11c2VyX19oZWFkZXJfX3BpY3R1cmVcIj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI3RtcGxQcm9maWxQaWN0dXJlPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInVzZXJDbXAudG1wbFBpY3R1cmVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDxtb3otaWNvbiAqbmdJZj1cIiF1c2VyQ21wLnRtcGxQaWN0dXJlOyBlbHNlIHRtcGxQcm9maWxQaWN0dXJlXCIgW2ljb25OYW1lXT1cIidVc2VyX0FjY291bnRfUHJvZmlsZS0tVmlld18yNHB4J1wiPjwvbW96LWljb24+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6ZmxleDsgd2lkdGg6IDEwMCU7XCIgKm5nSWY9XCJsb2NhbE9wZW5cIj5cbiAgICAgICAgICA8cCBjbGFzcz1cIm1jLXNpZGViYXItdXNlcl9faGVhZGVyX19pbmZvcm1hdGlvblwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInVzZXJDbXAudGVtcGxhdGVSZWZcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L3A+XG4gICAgICAgICAgPHNwYW4gKGNsaWNrKT1cInRvZ2dsZVVzZXIoKVwiICpuZ0lmPVwidXNlckNtcD8uZmVhdHVyZXM/Lmxlbmd0aFwiIGNsYXNzPVwibWMtc2lkZWJhci11c2VyX19oZWFkZXJfX2luZm9ybWF0aW9uX19pY29uXCI+XG4gICAgICAgICAgICA8bW96LWljb24gKm5nSWY9XCIhdXNlckNtcC5sb2NhbE9wZW5cIiBbaWNvbk5hbWVdPVwiJ05hdmlnYXRpb25fQ29udHJvbF9Nb3JlXzE2cHgnXCI+PC9tb3otaWNvbj5cblxuICAgICAgICAgICAgPG1vei1pY29uICpuZ0lmPVwidXNlckNtcC5sb2NhbE9wZW5cIiBbaWNvbk5hbWVdPVwiJ05hdmlnYXRpb25fQ29udHJvbF9MZXNzXzE2cHgnXCI+PC9tb3otaWNvbj5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9idXR0b24+XG5cbiAgICAgIDx1bCAqbmdJZj1cInVzZXJDbXAuZmVhdHVyZXM/Lmxlbmd0aCAmJiB1c2VyQ21wLmxvY2FsT3BlblwiIFtuZ0NsYXNzXT1cInVzZXJDbXAubG9jYWxPcGVuID8gJ2lzLW9wZW4nIDogJ2lzLWNsb3NlJ1wiXG4gICAgICAgIGlkPVwidXNlci1jb250ZW50XCIgcmVmPVwiY29udGVudFwiIGNsYXNzPVwibWMtc2lkZWJhci11c2VyX19jb250ZW50XCI+XG4gICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgdXNlckZlYXR1cmUgb2YgdXNlckNtcC5mZWF0dXJlc1wiPlxuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJtYy1zaWRlYmFyLWZlYXR1cmVcIiBbbmdDbGFzc109XCJ7ICdpcy1vcGVuJzogbG9jYWxPcGVuLCAnaXMtY2xvc2UnOiAhbG9jYWxPcGVuIH1cIj5cbiAgICAgICAgICAgIDwhLS0gPGEgaHJlZj1cIiNcIj4gLS0+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWMtc2lkZWJhci1mZWF0dXJlX19jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1jLXNpZGViYXItZmVhdHVyZV9fbGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ1c2VyRmVhdHVyZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPCEtLSA8L2E+IC0tPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2xpPlxuICAgICAgPC91bD5cbiAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNzZXBhcmF0b3I+XG4gIDxzcGFuIHJvbGU9XCJzZXBhcmF0b3JcIiBjbGFzcz1cIm1jLXNpZGViYXItc2VwYXJhdG9yXCIgW25nQ2xhc3NdPVwibG9jYWxPcGVuID8gJ2lzLW9wZW4nIDogJ2lzLWNsb3NlJ1wiPlxuICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuIl19
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW96LXNpZGViYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvc2lkZWJhci9tb3otc2lkZWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9zaWRlYmFyL21vei1zaWRlYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixlQUFlLEVBQ2YsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsUUFBUSxFQUNSLE1BQU0sRUFFTixVQUFVLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDaEcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDdkYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDdkYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sbURBQW1ELENBQUM7Ozs7O0FBUy9GLE1BQU0sT0FBTyxtQkFBbUI7SUFzQjlCLFlBR2tCLGdCQUF5QyxFQUd6QyxVQUFxQztRQUhyQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXlCO1FBR3pDLGVBQVUsR0FBVixVQUFVLENBQTJCO1FBYjdDLFdBQU0sR0FBMEIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV0RCxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBR2xCLG1CQUFjLEdBQW1CLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQVN2RixDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDM0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUM7SUFDaEQsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNqQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFPO1FBQzFCLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUM7SUFDcEQsQ0FBQztJQUVELE1BQU0sQ0FDSixJQUF1RjtRQUV2RixNQUFNLGtCQUFrQixHQUFHLENBQUMsSUFBUyxFQUFFLEVBQUU7WUFDdkMsSUFBSSxJQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFPLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsRUFBRTtnQkFDckUsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7YUFDdkI7WUFDRCxJQUFJLENBQUMsV0FBVyxFQUFFLE1BQU0sSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQU8sRUFBRSxFQUFFLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM1RixDQUFDLENBQUM7UUFFRixJQUFJLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFO1lBQy9CLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRTtZQUNoQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQy9CLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUU7WUFDL0IsSUFBSSxJQUFJLFlBQVksMEJBQTBCLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDaEUsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7YUFDdkI7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7YUFDeEI7U0FDRjtJQUNILENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxJQUFnQztRQUMvQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO0lBQy9CLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFNBQVMsQ0FBQztJQUNwQyxDQUFDOztpSEE5RVUsbUJBQW1CLGtCQXdCcEIsZ0JBQWdCLDZCQUdoQixrQkFBa0I7cUdBM0JqQixtQkFBbUIsdUpBQ2hCLHVCQUF1QiwwRUFTdkIsdUJBQXVCLG9HQU5ILDBCQUEwQixtREFHM0MsMEJBQTBCLDZCQ2xDN0Msd3JRQStLQTs0RkRwSmEsbUJBQW1CO2tCQU4vQixTQUFTOytCQUNFLGFBQWEsbUJBR04sdUJBQXVCLENBQUMsTUFBTTs7MEJBeUI1QyxRQUFROzswQkFDUixNQUFNOzJCQUFDLGdCQUFnQjs7MEJBRXZCLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMsa0JBQWtCOzRDQXpCckIsT0FBTztzQkFEYixZQUFZO3VCQUFDLHVCQUF1QjtnQkFJOUIsV0FBVztzQkFEakIsZUFBZTt1QkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsMEJBQTBCLENBQUM7Z0JBSXRELFlBQVk7c0JBRGxCLGVBQWU7dUJBQUMsMEJBQTBCO2dCQUlwQyxPQUFPO3NCQURiLFlBQVk7dUJBQUMsdUJBQXVCO2dCQUc1QixPQUFPO3NCQUFmLEtBQUs7Z0JBRUksTUFBTTtzQkFBZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIGZvcndhcmRSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyTGlua0FjdGl2ZSwgUm91dGVyTGlua1dpdGhIcmVmIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE1velNpZGViYXJGZWF0dXJlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ZlYXR1cmUvbW96LXNpZGViYXItZmVhdHVyZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTW96U2lkZWJhckhvbWVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvaG9tZS9tb3otc2lkZWJhci1ob21lLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNb3pTaWRlYmFyVXNlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy91c2VyL21vei1zaWRlYmFyLXVzZXIuY29tcG9uZW50JztcbmltcG9ydCB7IE1velNpZGViYXJVdGlsaXR5Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3V0aWxpdHkvbW96LXNpZGViYXItdXRpbHR5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTaWRlYmFyT3B0aW9ucyB9IGZyb20gJy4vbW9kZWwvbW9kZWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbW96LXNpZGViYXInLFxuICBzdHlsZVVybHM6IFsnLi9tb3otc2lkZWJhci5jb21wb25lbnQuc2NzcyddLFxuICB0ZW1wbGF0ZVVybDogJy4vbW96LXNpZGViYXIuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTW96U2lkZWJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBDb250ZW50Q2hpbGQoTW96U2lkZWJhckhvbWVDb21wb25lbnQpXG4gIHB1YmxpYyBob21lQ21wPzogTW96U2lkZWJhckhvbWVDb21wb25lbnQ7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihmb3J3YXJkUmVmKCgpID0+IE1velNpZGViYXJGZWF0dXJlQ29tcG9uZW50KSlcbiAgcHVibGljIGZlYXR1cmVzQ21wPzogUXVlcnlMaXN0PE1velNpZGViYXJGZWF0dXJlQ29tcG9uZW50PjtcblxuICBAQ29udGVudENoaWxkcmVuKE1velNpZGViYXJVdGlsaXR5Q29tcG9uZW50KVxuICBwdWJsaWMgdXRpbGl0aWVzQ21wPzogUXVlcnlMaXN0PE1velNpZGViYXJVdGlsaXR5Q29tcG9uZW50PjtcblxuICBAQ29udGVudENoaWxkKE1velNpZGViYXJVc2VyQ29tcG9uZW50KVxuICBwdWJsaWMgdXNlckNtcD86IE1velNpZGViYXJVc2VyQ29tcG9uZW50O1xuXG4gIEBJbnB1dCgpIG9wdGlvbnM/OiBTaWRlYmFyT3B0aW9ucztcblxuICBAT3V0cHV0KCkgb3BlbmVkOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcHVibGljIGxvY2FsT3BlbiA9IGZhbHNlO1xuICBwdWJsaWMgYWN0aXZlU3ViRmVhdHVyZT86IE1velNpZGViYXJGZWF0dXJlQ29tcG9uZW50O1xuXG4gIHB1YmxpYyBkZWZhdWx0T3B0aW9uczogU2lkZWJhck9wdGlvbnMgPSB7IGFjdGl2ZTogJycsIG9wZW5lZDogdHJ1ZSwgY2xvc2VPblNlbGVjdDogdHJ1ZSB9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpXG4gICAgQEluamVjdChSb3V0ZXJMaW5rQWN0aXZlKVxuICAgIHB1YmxpYyByZWFkb25seSByb3V0ZXJMaW5rQWN0aXZlOiBSb3V0ZXJMaW5rQWN0aXZlIHwgbnVsbCxcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBJbmplY3QoUm91dGVyTGlua1dpdGhIcmVmKVxuICAgIHB1YmxpYyByZWFkb25seSByb3V0ZXJMaW5rOiBSb3V0ZXJMaW5rV2l0aEhyZWYgfCBudWxsXG4gICkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLm9wdGlvbnMgPSB7IC4uLnRoaXMuZGVmYXVsdE9wdGlvbnMsIC4uLnRoaXMub3B0aW9ucyB9O1xuICAgIHRoaXMubG9jYWxPcGVuID0gdGhpcy5vcHRpb25zLm9wZW5lZCB8fCBmYWxzZTtcbiAgfVxuXG4gIHRvZ2dsZVNpZGViYXIoKSB7XG4gICAgdGhpcy5sb2NhbE9wZW4gPSAhdGhpcy5sb2NhbE9wZW47XG4gICAgdGhpcy5vcGVuZWQuZW1pdCh0aGlzLmxvY2FsT3Blbik7XG4gIH1cblxuICB0b2dnbGVVc2VyKCkge1xuICAgIGlmICghdGhpcy51c2VyQ21wKSByZXR1cm47XG4gICAgdGhpcy51c2VyQ21wLmxvY2FsT3BlbiA9ICF0aGlzLnVzZXJDbXA/LmxvY2FsT3BlbjtcbiAgfVxuXG4gIHNlbGVjdChcbiAgICBpdGVtOiBNb3pTaWRlYmFyRmVhdHVyZUNvbXBvbmVudCB8IE1velNpZGViYXJIb21lQ29tcG9uZW50IHwgTW96U2lkZWJhclV0aWxpdHlDb21wb25lbnRcbiAgKTogdm9pZCB7XG4gICAgY29uc3QgY2xlYXJBbmRIYW5kZGxlQ2F0ID0gKGVsZW06IGFueSkgPT4ge1xuICAgICAgaWYgKGVsZW0gIT09IGl0ZW0gJiYgIWVsZW0uZmVhdHVyZXNDbXAuc29tZSgoaXQ6IGFueSkgPT4gaXQgPT09IGl0ZW0pKSB7XG4gICAgICAgIGVsZW0uc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGVsZW0uZmVhdHVyZXNDbXA/Lmxlbmd0aCAmJiBlbGVtLmZlYXR1cmVzQ21wLmZvckVhY2goKGl0OiBhbnkpID0+IGNsZWFyQW5kSGFuZGRsZUNhdChpdCkpO1xuICAgIH07XG5cbiAgICB0aGlzLmZlYXR1cmVzQ21wPy5mb3JFYWNoKChpdCkgPT4ge1xuICAgICAgY2xlYXJBbmRIYW5kZGxlQ2F0KGl0KTtcbiAgICB9KTtcbiAgICB0aGlzLnV0aWxpdGllc0NtcD8uZm9yRWFjaCgoaXQpID0+IHtcbiAgICAgIGNsZWFyQW5kSGFuZGRsZUNhdChpdCk7XG4gICAgfSk7XG4gICAgaXRlbS5zZWxlY3RlZCA9ICFpdGVtLnNlbGVjdGVkO1xuICAgIGlmICh0aGlzLm9wdGlvbnM/LmNsb3NlT25TZWxlY3QpIHtcbiAgICAgIGlmIChpdGVtIGluc3RhbmNlb2YgTW96U2lkZWJhckZlYXR1cmVDb21wb25lbnQgJiYgaXRlbS5fY2F0ZWdvcnkpIHtcbiAgICAgICAgdGhpcy5sb2NhbE9wZW4gPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5sb2NhbE9wZW4gPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzZWxlY3RTdWJGZWF0dXJlKGl0ZW06IE1velNpZGViYXJGZWF0dXJlQ29tcG9uZW50KSB7XG4gICAgdGhpcy5hY3RpdmVTdWJGZWF0dXJlID0gaXRlbTtcbiAgfVxuXG4gIGNsb3NlU3ViRmVhdHVyZSgpIHtcbiAgICB0aGlzLmFjdGl2ZVN1YkZlYXR1cmUgPSB1bmRlZmluZWQ7XG4gIH1cbn1cbiIsIjxuYXYgY2xhc3M9XCJtYy1zaWRlYmFyXCIgW25nQ2xhc3NdPVwibG9jYWxPcGVuID8gJ2lzLW9wZW4nIDogJ2lzLWNsb3NlJ1wiPlxuICA8ZGl2IGNsYXNzPVwibWMtc2lkZWJhcl9fY29udGFpbmVyXCIgW25nQ2xhc3NdPVwieydoYXMtYm90dG9tLXBhbmVsJzogdXNlckNtcH1cIj5cbiAgICA8YnV0dG9uIGNsYXNzPVwibWMtc2lkZWJhcl9fdHJpZ2dlclwiIHR5cGU9XCJidXR0b25cIiBpZD1cIm1jLXNpZGViYXJfX3RyaWdnZXJcIiAoY2xpY2spPVwidG9nZ2xlU2lkZWJhcigpXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cIm1jLXNpZGViYXJfX3RyaWdnZXJfX2NvbnRhaW5lclwiPlxuICAgICAgICA8bW96LWljb24gKm5nSWY9XCIhbG9jYWxPcGVuXCIgW2ljb25OYW1lXT1cIidOYXZpZ2F0aW9uX0Fycm93X0RvdWJsZUFycm93LS1SaWdodF8yNHB4J1wiPjwvbW96LWljb24+XG4gICAgICAgIDxtb3otaWNvbiAqbmdJZj1cImxvY2FsT3BlblwiIFtpY29uTmFtZV09XCInTmF2aWdhdGlvbl9BcnJvd19Eb3VibGVBcnJvdy0tTGVmdF8yNHB4J1wiPjwvbW96LWljb24+XG4gICAgICA8L3NwYW4+XG4gICAgPC9idXR0b24+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNpZGViYXJIb21lXCI+PC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic2VwYXJhdG9yXCI+PC9uZy1jb250YWluZXI+XG5cbiAgICA8ZGl2IGNsYXNzPVwibWMtc2lkZWJhci1zZWN0aW9uXCI+XG4gICAgICA8dWwgW25nQ2xhc3NdPVwieydpcy1oaWRkZW4nOiBhY3RpdmVTdWJGZWF0dXJlICYmIGxvY2FsT3BlbixcbiAgICAgICAgICAnaXMtdmlzaWJsZSc6ICFhY3RpdmVTdWJGZWF0dXJlIHx8ICFsb2NhbE9wZW59XCI+XG4gICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgaXRlbSBvZiBmZWF0dXJlc0NtcFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzaWRlYmFyRmVhdHVyZXM7IGNvbnRleHQ6IHtpdGVtOiBpdGVtfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2xpPlxuICAgICAgPC91bD5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0bXBsU3ViRmVhdHVyZTsgY29udGV4dDoge2ZlYXR1cmU6IGFjdGl2ZVN1YkZlYXR1cmV9XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm1jLXNpZGViYXJfX3V0aWxpdGllc1wiPlxuICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgdXRpbGl0eSBvZiB1dGlsaXRpZXNDbXBcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNlcGFyYXRvclwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDx1bD5cbiAgICAgICAgICAgIDxsaSBjbGFzcz1cIm1jLXNpZGViYXJfX3V0aWxpdGllc19faXRlbVwiPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic2lkZWJhclV0aWxpdHk7IGNvbnRleHQ6IHt1dGlsaXR5OiB1dGlsaXR5fVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICA8L3VsPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgPC9kaXY+XG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzaWRlYmFyVXNlclwiPjwvbmctY29udGFpbmVyPlxuPC9uYXY+XG5cbjxuZy10ZW1wbGF0ZSAjc2lkZWJhckhvbWU+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJob21lQ21wXCI+XG4gICAgPGJ1dHRvbiBjbGFzcz1cIm1jLXNpZGViYXItZmVhdHVyZS1ncm91cFwiIFtuZ0NsYXNzXT1cImxvY2FsT3BlbiA/ICdpcy1vcGVuJyA6ICdpcy1jbG9zZSdcIj5cbiAgICAgIDxhIGhyZWY9XCIjXCIgW3JvdXRlckxpbmtdPVwiaG9tZUNtcC5saW5rXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWMtc2lkZWJhci1mZWF0dXJlLWdyb3VwX19jb250YWluZXJcIiBbbmdDbGFzc109XCJsb2NhbE9wZW4gPyAnaXMtb3BlbicgOiAnaXMtY2xvc2UnXCIgKGNsaWNrKT1cInNlbGVjdChob21lQ21wKVwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWMtc2lkZWJhci1mZWF0dXJlLWdyb3VwX19pY29uXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaG9tZUNtcC50bXBsSWNvblwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibG9jYWxPcGVuXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1jLXNpZGViYXItZmVhdHVyZS1ncm91cF9fbGFiZWxcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImhvbWVDbXAudG1wbFRleHRcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9hPlxuICAgIDwvYnV0dG9uID5cbiAgIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNzaWRlYmFyRmVhdHVyZXMgbGV0LWl0ZW09XCJpdGVtXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRtcGxGZWF0dXJlR3JvdXBcIj48L25nLWNvbnRhaW5lcj5cblxuICAgIDx1bCAqbmdJZj1cIml0ZW0/LmNhdGVnb3J5XCIgY2xhc3M9XCJtYy1zaWRlYmFyLWZlYXR1cmUtZ3JvdXBfX2NvbnRlbnRcIiBbbmdDbGFzc109XCJ7ICdpcy1vcGVuJzogbG9jYWxPcGVuICYmIGl0ZW0uc2VsZWN0ZWQsICdpcy1jbG9zZSc6ICFsb2NhbE9wZW4gfHwgIWl0ZW0uc2VsZWN0ZWQgfVwiPlxuICAgICAgPGxpICpuZ0Zvcj1cImxldCBpbm5lckl0ZW0gb2YgaXRlbS5mZWF0dXJlc0NtcFwiIGlkPVwiaW5uZXJGZWF0dXJlXCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0bXBsRmVhdHVyZTsgY29udGV4dDoge2ZlYXR1cmU6IGlubmVySXRlbX1cIj48L25nLXRlbXBsYXRlPlxuICAgICAgPC9saT5cbiAgICA8L3VsPlxuXG4gIDxuZy10ZW1wbGF0ZSAjdG1wbEZlYXR1cmVHcm91cD5cbiAgICA8YnV0dG9uIGNsYXNzPVwibWMtc2lkZWJhci1mZWF0dXJlLWdyb3VwXCIgKGNsaWNrKT1cInNlbGVjdChpdGVtKVwiIFtuZ0NsYXNzXT1cInsgJ2lzLXNlbGVjdGVkJzogaXRlbS5zZWxlY3RlZCAmJiAhaXRlbS5jYXRlZ29yeSwgJ2lzLW9wZW4nOiBsb2NhbE9wZW4sICdpcy1jbG9zZSc6ICFsb2NhbE9wZW4gfVwiPlxuICAgICAgPGEgaHJlZj1cIiNcIiBbcm91dGVyTGlua109XCJpdGVtLmxpbmtcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtYy1zaWRlYmFyLWZlYXR1cmUtZ3JvdXBfX2NvbnRhaW5lclwiIFtyb3V0ZXJMaW5rXT1cIml0ZW0ubGlua1wiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWMtc2lkZWJhci1mZWF0dXJlLWdyb3VwX19pY29uXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW0udG1wbEljb25cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTpmbGV4O1wiICpuZ0lmPVwibG9jYWxPcGVuXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYy1zaWRlYmFyLWZlYXR1cmUtZ3JvdXBfX2xhYmVsXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbS50bXBsVGV4dFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwibG9jYWxPcGVuICYmIGl0ZW0/LmNhdGVnb3J5XCI+XG4gICAgICAgICAgICA8bW96LWljb24gKm5nSWY9XCIhaXRlbS5zZWxlY3RlZFwiIFtpY29uTmFtZV09XCInTmF2aWdhdGlvbl9Db250cm9sX01vcmVfMTZweCdcIj48L21vei1pY29uPlxuXG4gICAgICAgICAgICA8bW96LWljb24gKm5nSWY9XCJpdGVtLnNlbGVjdGVkXCIgW2ljb25OYW1lXT1cIidOYXZpZ2F0aW9uX0NvbnRyb2xfTGVzc18xNnB4J1wiPjwvbW96LWljb24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9zcGFuPlxuICAgICAgPC9hPlxuICAgIDwvYnV0dG9uPlxuICA8L25nLXRlbXBsYXRlPlxuXG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3RtcGxGZWF0dXJlIGxldC1mZWF0dXJlPVwiZmVhdHVyZVwiPlxuICA8YnV0dG9uIGNsYXNzPVwibWMtc2lkZWJhci1mZWF0dXJlXCIgW25nQ2xhc3NdPVwieyAnaXMtc2VsZWN0ZWQnOiBmZWF0dXJlLnNlbGVjdGVkLCAnaXMtb3Blbic6IGxvY2FsT3BlbiwgJ2lzLWNsb3NlJzogIWxvY2FsT3BlbiB9XCI+XG4gICAgPGEgaHJlZj1cIiNcIiBbcm91dGVyTGlua109XCJmZWF0dXJlLmxpbmtcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwibWMtc2lkZWJhci1mZWF0dXJlX19jb250YWluZXJcIiAoY2xpY2spPVwiZmVhdHVyZS5zdWJDYXRlZ29yeSA/IHNlbGVjdFN1YkZlYXR1cmUoZmVhdHVyZSkgOiBzZWxlY3QoZmVhdHVyZSlcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtYy1zaWRlYmFyLWZlYXR1cmVfX2xhYmVsXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImZlYXR1cmUudG1wbFRleHRcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9zcGFuPlxuICAgIDwvYT5cbiAgPC9idXR0b24+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3RtcGxTdWJGZWF0dXJlIGxldC1mZWF0dXJlPVwiZmVhdHVyZVwiPlxuICA8ZGl2IGNsYXNzPVwibWMtc2lkZWJhci1zdWItZmVhdHVyZVwiICpuZ0lmPVwiISFmZWF0dXJlXCI+XG4gICAgPGJ1dHRvbiBjbGFzcz1cIm1jLXNpZGViYXItc3ViLWZlYXR1cmVfX3RyaWdnZXJcIiAoY2xpY2spPVwiY2xvc2VTdWJGZWF0dXJlKClcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwibWMtc2lkZWJhci1zdWItZmVhdHVyZV9fY29udGFpbmVyXCI+XG4gICAgICAgIDxtb3otaWNvbiAqbmdJZj1cImxvY2FsT3BlblwiIFtpY29uTmFtZV09XCInTmF2aWdhdGlvbl9BcnJvd19CYWNrXzI0cHgnXCI+PC9tb3otaWNvbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtYy1zaWRlYmFyLXN1Yi1mZWF0dXJlX190cmlnZ2VyX19sYWJlbFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmZWF0dXJlLnRtcGxUZXh0XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgICA8dWw+XG4gICAgICA8bGkgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZmVhdHVyZS5mZWF0dXJlc0NtcFwiIGNsYXNzPVwibWMtc2lkZWJhci1zdWItZmVhdHVyZV9faXRlbVwiIGlkPVwic3ViLWZlYXR1cmVzXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cInRtcGxGZWF0dXJlOyBjb250ZXh0OiB7ZmVhdHVyZTogaXRlbX1cIj48L25nLXRlbXBsYXRlPlxuICAgICAgPC9saT5cbiAgICA8L3VsPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjc2lkZWJhclV0aWxpdHkgbGV0LXV0aWxpdHk9XCJ1dGlsaXR5XCI+XG4gICAgPGJ1dHRvbiBjbGFzcz1cIm1jLXNpZGViYXItc2VnbWVudFwiIFtuZ0NsYXNzXT1cInsgJ2lzLXNlbGVjdGVkJzogdXRpbGl0eS5zZWxlY3RlZCwgJ2lzLW9wZW4nOiBsb2NhbE9wZW4sICdpcy1jbG9zZSc6ICFsb2NhbE9wZW4gfVwiPlxuICAgICAgPGEgaHJlZj1cIiNcIiBbcm91dGVyTGlua109XCJ1dGlsaXR5LmxpbmtcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtYy1zaWRlYmFyLXNlZ21lbnRfX2NvbnRhaW5lclwiIChjbGljayk9XCJzZWxlY3QodXRpbGl0eSlcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWMtc2lkZWJhci1zZWdtZW50X19pY29uXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidXRpbGl0eS50bXBsSWNvblwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWMtc2lkZWJhci1zZWdtZW50X19sYWJlbFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInV0aWxpdHkudG1wbFRleHRcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvYT5cbiAgICA8L2J1dHRvbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjc2lkZWJhclVzZXI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJ1c2VyQ21wICYmIHVzZXJDbXAudGVtcGxhdGVSZWZcIj5cbiAgICA8ZGl2IGNsYXNzPVwibWMtc2lkZWJhci11c2VyXCIgW25nQ2xhc3NdPVwibG9jYWxPcGVuID8gJ2lzLW9wZW4nIDogJ2lzLWNsb3NlJ1wiPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cIm1jLXNpZGViYXItdXNlcl9faGVhZGVyXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWMtc2lkZWJhci11c2VyX19oZWFkZXJfX3BpY3R1cmVcIj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI3RtcGxQcm9maWxQaWN0dXJlPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInVzZXJDbXAudG1wbFBpY3R1cmVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDxtb3otaWNvbiAqbmdJZj1cIiF1c2VyQ21wLnRtcGxQaWN0dXJlOyBlbHNlIHRtcGxQcm9maWxQaWN0dXJlXCIgW2ljb25OYW1lXT1cIidVc2VyX0FjY291bnRfUHJvZmlsZS0tVmlld18yNHB4J1wiPjwvbW96LWljb24+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6ZmxleDsgd2lkdGg6IDEwMCU7XCIgKm5nSWY9XCJsb2NhbE9wZW5cIj5cbiAgICAgICAgICA8cCBjbGFzcz1cIm1jLXNpZGViYXItdXNlcl9faGVhZGVyX19pbmZvcm1hdGlvblwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInVzZXJDbXAudGVtcGxhdGVSZWZcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L3A+XG4gICAgICAgICAgPHNwYW4gKGNsaWNrKT1cInRvZ2dsZVVzZXIoKVwiICpuZ0lmPVwidXNlckNtcD8uZmVhdHVyZXM/Lmxlbmd0aFwiIGNsYXNzPVwibWMtc2lkZWJhci11c2VyX19oZWFkZXJfX2luZm9ybWF0aW9uX19pY29uXCI+XG4gICAgICAgICAgICA8bW96LWljb24gKm5nSWY9XCIhdXNlckNtcC5sb2NhbE9wZW5cIiBbaWNvbk5hbWVdPVwiJ05hdmlnYXRpb25fQ29udHJvbF9Nb3JlXzE2cHgnXCI+PC9tb3otaWNvbj5cblxuICAgICAgICAgICAgPG1vei1pY29uICpuZ0lmPVwidXNlckNtcC5sb2NhbE9wZW5cIiBbaWNvbk5hbWVdPVwiJ05hdmlnYXRpb25fQ29udHJvbF9MZXNzXzE2cHgnXCI+PC9tb3otaWNvbj5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9idXR0b24+XG5cbiAgICAgIDx1bCAqbmdJZj1cInVzZXJDbXAuZmVhdHVyZXM/Lmxlbmd0aCAmJiB1c2VyQ21wLmxvY2FsT3BlblwiIFtuZ0NsYXNzXT1cInVzZXJDbXAubG9jYWxPcGVuID8gJ2lzLW9wZW4nIDogJ2lzLWNsb3NlJ1wiXG4gICAgICAgIGlkPVwidXNlci1jb250ZW50XCIgcmVmPVwiY29udGVudFwiIGNsYXNzPVwibWMtc2lkZWJhci11c2VyX19jb250ZW50XCI+XG4gICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgdXNlckZlYXR1cmUgb2YgdXNlckNtcC5mZWF0dXJlc1wiPlxuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJtYy1zaWRlYmFyLWZlYXR1cmVcIiBbbmdDbGFzc109XCJ7ICdpcy1vcGVuJzogbG9jYWxPcGVuLCAnaXMtY2xvc2UnOiAhbG9jYWxPcGVuIH1cIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYy1zaWRlYmFyLWZlYXR1cmVfX2NvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWMtc2lkZWJhci1mZWF0dXJlX19sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInVzZXJGZWF0dXJlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvbGk+XG4gICAgICA8L3VsPlxuICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3NlcGFyYXRvcj5cbiAgPHNwYW4gcm9sZT1cInNlcGFyYXRvclwiIGNsYXNzPVwibWMtc2lkZWJhci1zZXBhcmF0b3JcIiBbbmdDbGFzc109XCJsb2NhbE9wZW4gPyAnaXMtb3BlbicgOiAnaXMtY2xvc2UnXCI+XG4gIDwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=