@stackline/angular-multiselect-dropdown 16.0.0 → 18.0.0

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.
@@ -357,13 +357,13 @@ export class AngularMultiSelect {
357
357
  this.updateView(this.scrollTop);
358
358
  }
359
359
  }
360
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AngularMultiSelect, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
361
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AngularMultiSelect, selector: "angular-multiselect, angular2-multiselect", inputs: { data: "data", settings: "settings" }, outputs: { onSelect: "onSelect", onDeSelect: "onDeSelect", onSelectAll: "onSelectAll", onDeSelectAll: "onDeSelectAll", onOpen: "onOpen", onClose: "onClose" }, host: { properties: { "class": "defaultSettings.classes" } }, providers: [DROPDOWN_CONTROL_VALUE_ACCESSOR, DROPDOWN_CONTROL_VALIDATION], queries: [{ propertyName: "itemTempl", first: true, predicate: Item, descendants: true }, { propertyName: "badgeTempl", first: true, predicate: Badge, descendants: true }], viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"stackline-dropdown\" [ngClass]=\"getDropdownClasses()\" (clickOutside)=\"closeDropdown()\">\n <div class=\"selected-list\">\n <div class=\"c-btn\" (click)=\"toggleDropdown($event)\" [ngClass]=\"{'disabled': settings.disabled}\">\n <span *ngIf=\"selectedItems?.length == 0\">{{settings.text}}</span>\n <span *ngIf=\"settings.singleSelection\">\n <span *ngFor=\"let item of selectedItems;trackBy: trackByFn;\">\n {{item[settings.labelKey]}}\n </span>\n </span>\n <div class=\"c-list\" *ngIf=\"selectedItems?.length > 0 && !settings.singleSelection\">\n <div class=\"c-token\" *ngFor=\"let item of selectedItems;trackBy: trackByFn;let k = index\" [hidden]=\"k > settings.badgeShowLimit-1\">\n <span *ngIf=\"!badgeTempl\" class=\"c-label\">{{item[settings.labelKey]}}</span>\n <span *ngIf=\"badgeTempl\" class=\"c-label\">\n <c-templateRenderer [data]=\"badgeTempl\" [item]=\"item\"></c-templateRenderer>\n </span>\n <span class=\"fa fa-remove\" (click)=\"onItemClick(item,k,$event)\"></span>\n </div>\n </div> \n <span class=\"countplaceholder\" *ngIf=\"selectedItems?.length > settings.badgeShowLimit\">+{{selectedItems?.length - settings.badgeShowLimit }}</span>\n <span class=\"fa\" [ngClass]=\"{'fa-angle-down': !isActive,'fa-angle-up':isActive}\"></span>\n </div> \n </div>\n <div class=\"dropdown-list\" [hidden]=\"!isActive\">\n <div class=\"arrow-up arrow-2\"></div>\n <div class=\"arrow-up\"></div>\n <div class=\"list-area\">\n <div class=\"pure-checkbox select-all\" *ngIf=\"settings.enableCheckAll && !settings.singleSelection && !settings.limitSelection\" (click)=\"toggleSelectAll()\">\n <input *ngIf=\"settings.showCheckbox\" type=\"checkbox\" [checked]=\"isSelectAll\" [disabled]=\"settings.limitSelection == selectedItems?.length\"/>\n <label>\n <span [hidden]=\"isSelectAll\">{{settings.selectAllText}}</span>\n <span [hidden]=\"!isSelectAll\">{{settings.unSelectAllText}}</span>\n </label>\n </div> \n <div class=\"list-filter\" *ngIf=\"settings.enableSearchFilter && !settings.lazyLoading\">\n <span class=\"fa fa-search\"></span>\n <input #searchInput type=\"text\" [placeholder]=\"settings.searchPlaceholderText\" [(ngModel)]=\"filter\">\n </div> \n <div class=\"list-filter\" *ngIf=\"settings.enableSearchFilter && settings.lazyLoading\">\n <span class=\"fa fa-search\"></span>\n <input #searchInput type=\"text\" [placeholder]=\"settings.searchPlaceholderText\" (keyup)=\"filterInfiniteList($event)\">\n </div>\n <ul *ngIf=\"!settings.groupBy\" [style.maxHeight] = \"settings.maxHeight+'px'\" class=\"lazyContainer\" >\n <span *ngIf=\"itemTempl\">\n <li *ngFor=\"let item of data | listFilter:filter; let i = index;\" (click)=\"onItemClick(item,i,$event)\" class=\"pure-checkbox\">\n <input *ngIf=\"settings.showCheckbox\" type=\"checkbox\" [checked]=\"isSelected(item)\" [disabled]=\"settings.limitSelection == selectedItems?.length && !isSelected(item)\"/>\n <label></label>\n <c-templateRenderer [data]=\"itemTempl\" [item]=\"item\"></c-templateRenderer>\n </li>\n </span>\n <span *ngIf=\"!itemTempl && !settings.lazyLoading\" >\n <li *ngFor=\"let item of data | listFilter:filter; let i = index;\" (click)=\"onItemClick(item,i,$event)\" class=\"pure-checkbox\">\n <input *ngIf=\"settings.showCheckbox\" type=\"checkbox\" [checked]=\"isSelected(item)\" [disabled]=\"settings.limitSelection == selectedItems?.length && !isSelected(item)\"/>\n <label>{{item[settings.labelKey]}}</label>\n </li>\n </span>\n <span *ngIf=\"!itemTempl && settings.lazyLoading\" >\n <div [ngStyle]=\"{'height':totalHeight+'px'}\" style=\"position: relative;\">\n\n \n <li *ngFor=\"let item of chunkArray | listFilter:filter; let i = index;\" (click)=\"onItemClick(item,i,$event)\" style=\"position: absolute;width: 100%;\" class=\"pure-checkbox\" [styleProp]=\"chunkIndex[i]\">\n <input *ngIf=\"settings.showCheckbox\" type=\"checkbox\" [checked]=\"isSelected(item)\" [disabled]=\"settings.limitSelection == selectedItems?.length && !isSelected(item)\"/>\n <label>{{item[settings.labelKey]}}</label>\n </li>\n </div>\n </span>\n </ul>\n <div *ngIf=\"settings.groupBy\" [style.maxHeight] = \"settings.maxHeight+'px'\" style=\"overflow: auto;\">\n <ul *ngFor=\"let obj of groupedData ; let i = index;\" class=\"list-grp\">\n <h4 *ngIf=\"(obj.value | listFilter:filter ).length > 0\">{{obj.key}}</h4>\n <span *ngIf=\"itemTempl\" >\n <li *ngFor=\"let item of obj.value | listFilter:filter; let i = index;\" (click)=\"onItemClick(item,i,$event)\" class=\"pure-checkbox\">\n <input *ngIf=\"settings.showCheckbox\" type=\"checkbox\" [checked]=\"isSelected(item)\" [disabled]=\"settings.limitSelection == selectedItems?.length && !isSelected(item)\"/>\n <label></label>\n <c-templateRenderer [data]=\"itemTempl\" [item]=\"item\"></c-templateRenderer>\n </li>\n </span>\n <span *ngIf=\"!itemTempl\" >\n <li *ngFor=\"let item of obj.value | listFilter:filter; let i = index;\" (click)=\"onItemClick(item,i,$event)\" class=\"pure-checkbox\">\n <input *ngIf=\"settings.showCheckbox\" type=\"checkbox\" [checked]=\"isSelected(item)\" [disabled]=\"settings.limitSelection == selectedItems?.length && !isSelected(item)\"/>\n <label>{{item[settings.labelKey]}}</label>\n </li>\n </span>\n </ul>\n </div>\n <h5 class=\"list-message\" *ngIf=\"data?.length == 0\">{{settings.noDataLabel}}</h5>\n </div>\n </div>\n</div>\n", isInline: true, styles: [".stackline-dropdown{position:relative}.c-btn{display:inline-block;background:#fff;border:1px solid #ccc;border-radius:3px;font-size:14px;color:#333}.c-btn.disabled{background:#ccc}.c-btn:focus{outline:none}.selected-list .c-list{display:flex;flex:1 1 auto;align-items:center;flex-wrap:wrap;min-width:0;float:none;padding:0;margin:0;width:auto}.selected-list .c-list .c-token{list-style:none;padding:0 5px;background:#0079fe;color:#fff;border-radius:2px;margin-right:4px;margin-top:2px;float:left}.selected-list .c-list .c-token .c-label{display:block;float:left}.selected-list .c-list .c-token .fa-remove{margin-left:1px;font-size:12px}.selected-list .fa-angle-down,.selected-list .fa-angle-up{font-size:15pt;position:absolute;right:10px;top:50%;transform:translateY(-50%)}.selected-list .countplaceholder{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;align-self:center;margin:0 0 0 6px;line-height:1}.selected-list .c-btn{box-sizing:border-box;width:100%;box-shadow:0 1px 5px #959595;padding:10px 36px 10px 10px;cursor:pointer;display:flex;align-items:center;flex-wrap:nowrap;position:relative}.dropdown-list{position:absolute;padding-top:14px;width:100%;z-index:9999}.dropdown-list ul{padding:0;list-style:none;overflow:auto;margin:0}.dropdown-list ul li{padding:10px;cursor:pointer;text-align:left}.dropdown-list ul li:first-child{padding-top:10px}.dropdown-list ul li:last-child{padding-bottom:10px}.dropdown-list ul li:hover{background:#f5f5f5}.dropdown-list ::-webkit-scrollbar{width:8px}.dropdown-list ::-webkit-scrollbar-thumb{background:#ccc;border-radius:5px}.dropdown-list ::-webkit-scrollbar-track{background:#f2f2f2}.arrow-up{width:0;height:0;border-left:13px solid transparent;border-right:13px solid transparent;border-bottom:15px solid #fff;margin-left:15px;position:absolute;top:0}.arrow-2{border-bottom:15px solid #ccc;top:-1px}.list-area{border:1px solid #ccc;border-radius:3px;background:#fff;margin:0;box-shadow:0 1px 5px #959595}.select-all{padding:10px;border-bottom:1px solid #ccc;text-align:left}.list-filter{border-bottom:1px solid #ccc;position:relative}.list-filter input{border:0px;width:100%;height:35px;padding:0 0 0 35px}.list-filter input:focus{outline:none}.list-filter .fa{position:absolute;top:10px;left:13px;color:#888}.pure-checkbox input[type=checkbox]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.pure-checkbox input[type=checkbox]:focus+label:before,.pure-checkbox input[type=checkbox]:hover+label:before{border-color:#0079fe;background-color:#f2f2f2}.pure-checkbox input[type=checkbox]:active+label:before{transition-duration:0s}.pure-checkbox input[type=checkbox]+label{position:relative;padding-left:2em;vertical-align:middle;-webkit-user-select:none;user-select:none;cursor:pointer;margin:0;color:#000;font-weight:300}.pure-checkbox input[type=checkbox]+label:before{box-sizing:content-box;content:\"\";color:#0079fe;position:absolute;top:50%;left:0;width:14px;height:14px;margin-top:-9px;border:2px solid #0079FE;text-align:center;transition:all .4s ease}.pure-checkbox input[type=checkbox]+label:after{box-sizing:content-box;content:\"\";background-color:#0079fe;position:absolute;top:50%;left:4px;width:10px;height:10px;margin-top:-5px;transform:scale(0);transform-origin:50%;transition:transform .2s ease-out}.pure-checkbox input[type=checkbox]:disabled+label:before{border-color:#ccc}.pure-checkbox input[type=checkbox]:disabled:focus+label:before .pure-checkbox input[type=checkbox]:disabled:hover+label:before{background-color:inherit}.pure-checkbox input[type=checkbox]:disabled:checked+label:before{background-color:#ccc}.pure-checkbox input[type=checkbox]+label:after{background-color:transparent;top:50%;left:4px;width:8px;height:3px;margin-top:-4px;border-style:solid;border-color:#fff;border-width:0 0 3px 3px;border-image:none;transform:rotate(-45deg) scale(0)}.pure-checkbox input[type=checkbox]:checked+label:after{content:\"\";transform:rotate(-45deg) scale(1);transition:transform .2s ease-out}.pure-checkbox input[type=radio]:checked+label:before{background-color:#fff}.pure-checkbox input[type=radio]:checked+label:after{transform:scale(1)}.pure-checkbox input[type=radio]+label:before{border-radius:50%}.pure-checkbox input[type=checkbox]:checked+label:before{background:#0079fe}.pure-checkbox input[type=checkbox]:checked+label:after{transform:rotate(-45deg) scale(1)}.list-message{text-align:center}.list-grp{padding:0 15px!important}.list-grp h4{text-transform:capitalize;margin:15px 0 0;font-size:14px;font-weight:700}.list-grp>li{padding-left:15px!important}.stackline-dropdown.theme-material,.stackline-dropdown.theme-dark,.stackline-dropdown.theme-custom{--ms-primary: #3f51b5;--ms-primary-soft: rgba(63, 81, 181, .12);--ms-surface: #ffffff;--ms-surface-soft: #f5f7fb;--ms-surface-muted: #e8eaf6;--ms-outline: #c5cae9;--ms-outline-strong: #7986cb;--ms-on-surface: #212121;--ms-on-surface-muted: #5f6368;--ms-chip-bg: #e8eaf6;--ms-chip-text: #303f9f;--ms-chip-remove: #303f9f;--ms-divider: rgba(125, 119, 134, .16);--ms-section-bg: rgba(247, 242, 250, .76);--ms-selected-text: var(--ms-primary);--ms-shadow: 0 1px 2px rgba(33, 33, 33, .16), 0 12px 32px rgba(63, 81, 181, .12);--ms-shadow-soft: 0 1px 2px rgba(33, 33, 33, .12), 0 4px 12px rgba(33, 33, 33, .08);display:block;width:100%;color:var(--ms-on-surface);font:inherit}.stackline-dropdown.theme-dark{--ms-primary: #8ab4f8;--ms-primary-soft: rgba(138, 180, 248, .18);--ms-surface: #151a23;--ms-surface-soft: #202736;--ms-surface-muted: #111722;--ms-outline: #384456;--ms-outline-strong: #8ab4f8;--ms-on-surface: #edf2f7;--ms-on-surface-muted: #aab6c5;--ms-chip-bg: #263247;--ms-chip-text: #d7e6ff;--ms-chip-remove: #d7e6ff;--ms-divider: rgba(170, 182, 197, .18);--ms-section-bg: #101620;--ms-selected-text: #d7e6ff;--ms-shadow: 0 20px 50px rgba(0, 0, 0, .42);--ms-shadow-soft: 0 1px 2px rgba(0, 0, 0, .45), 0 10px 24px rgba(0, 0, 0, .28)}.stackline-dropdown.theme-custom{--ms-primary: var(--stackline-ms-primary, #0f766e);--ms-primary-soft: var(--stackline-ms-primary-soft, rgba(15, 118, 110, .14));--ms-surface: var(--stackline-ms-surface, #ffffff);--ms-surface-soft: var(--stackline-ms-surface-soft, #ecfdf5);--ms-surface-muted: var(--stackline-ms-surface-muted, #d1fae5);--ms-outline: var(--stackline-ms-outline, #99f6e4);--ms-outline-strong: var(--stackline-ms-outline-strong, #0f766e);--ms-on-surface: var(--stackline-ms-on-surface, #102a2a);--ms-on-surface-muted: var(--stackline-ms-on-surface-muted, #47615f);--ms-chip-bg: var(--stackline-ms-chip-bg, #ccfbf1);--ms-chip-text: var(--stackline-ms-chip-text, #115e59);--ms-chip-remove: var(--stackline-ms-chip-remove, #115e59);--ms-divider: var(--stackline-ms-divider, rgba(15, 118, 110, .16));--ms-section-bg: var(--stackline-ms-section-bg, #f0fdfa);--ms-selected-text: var(--stackline-ms-selected-text, var(--ms-primary));--ms-shadow: var(--stackline-ms-shadow, 0 18px 42px rgba(15, 118, 110, .15));--ms-shadow-soft: var(--stackline-ms-shadow-soft, 0 1px 2px rgba(15, 118, 110, .16), 0 8px 18px rgba(15, 118, 110, .09))}.stackline-dropdown.theme-material .selected-list,.stackline-dropdown.theme-dark .selected-list,.stackline-dropdown.theme-custom .selected-list{width:100%}.stackline-dropdown.theme-material .selected-list .c-btn,.stackline-dropdown.theme-dark .selected-list .c-btn,.stackline-dropdown.theme-custom .selected-list .c-btn{position:relative;display:flex;align-items:center;flex-wrap:nowrap;gap:8px;width:100%;min-height:56px;padding:11px 54px 11px 16px;border-radius:18px;border:1px solid var(--ms-outline);background:var(--ms-surface);box-shadow:var(--ms-shadow-soft);color:var(--ms-on-surface);cursor:pointer;font-size:inherit;line-height:1.45;transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease,transform .16s ease}.stackline-dropdown.theme-material .selected-list .c-btn:hover,.stackline-dropdown.theme-dark .selected-list .c-btn:hover,.stackline-dropdown.theme-custom .selected-list .c-btn:hover{border-color:var(--ms-outline-strong)}.stackline-dropdown.theme-material .selected-list .c-btn.disabled,.stackline-dropdown.theme-dark .selected-list .c-btn.disabled,.stackline-dropdown.theme-custom .selected-list .c-btn.disabled{background:var(--ms-surface);cursor:not-allowed;opacity:.72}.stackline-dropdown.theme-material .selected-list .c-list,.stackline-dropdown.theme-dark .selected-list .c-list,.stackline-dropdown.theme-custom .selected-list .c-list{display:flex;flex:1 1 auto;flex-wrap:wrap;gap:8px;width:auto;min-width:0;margin:0;padding:0;float:none}.stackline-dropdown.theme-material .selected-list .c-list .c-token,.stackline-dropdown.theme-dark .selected-list .c-list .c-token,.stackline-dropdown.theme-custom .selected-list .c-list .c-token{position:relative;display:inline-block;vertical-align:middle;min-height:32px;max-width:100%;padding:6px 30px 6px 12px;background:var(--ms-chip-bg);color:var(--ms-chip-text);border-radius:999px;box-shadow:inset 0 0 0 1px #6750a414;line-height:1.35;white-space:normal;overflow-wrap:anywhere;margin:0;float:none}.stackline-dropdown.theme-material .selected-list .c-list .c-token .c-label,.stackline-dropdown.theme-dark .selected-list .c-list .c-token .c-label,.stackline-dropdown.theme-custom .selected-list .c-list .c-token .c-label{display:inline-flex;align-items:center;float:none;min-width:0;max-width:100%;line-height:1.3;font-weight:500;white-space:normal;overflow-wrap:anywhere}.stackline-dropdown.theme-material .selected-list .c-list .c-token .fa-remove,.stackline-dropdown.theme-dark .selected-list .c-list .c-token .fa-remove,.stackline-dropdown.theme-custom .selected-list .c-list .c-token .fa-remove{position:absolute;right:10px;top:50%;display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-left:0;transform:translateY(-50%);color:var(--ms-chip-remove);cursor:pointer}.stackline-dropdown.theme-material .selected-list .countplaceholder,.stackline-dropdown.theme-dark .selected-list .countplaceholder,.stackline-dropdown.theme-custom .selected-list .countplaceholder{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;align-self:center;margin:0;line-height:1;color:var(--ms-on-surface-muted);font-size:.8rem;font-weight:600}.stackline-dropdown.theme-material .selected-list .fa-angle-down,.stackline-dropdown.theme-dark .selected-list .fa-angle-down,.stackline-dropdown.theme-custom .selected-list .fa-angle-down,.stackline-dropdown.theme-material .selected-list .fa-angle-up,.stackline-dropdown.theme-dark .selected-list .fa-angle-up,.stackline-dropdown.theme-custom .selected-list .fa-angle-up{position:absolute;top:50%;right:16px;display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;transform:translateY(-50%);color:var(--ms-on-surface-muted);font-size:15pt;pointer-events:none}.stackline-dropdown.theme-material .dropdown-list,.stackline-dropdown.theme-dark .dropdown-list,.stackline-dropdown.theme-custom .dropdown-list{position:absolute;width:100%;padding-top:8px;z-index:99999}.stackline-dropdown.theme-material .arrow-up,.stackline-dropdown.theme-dark .arrow-up,.stackline-dropdown.theme-custom .arrow-up,.stackline-dropdown.theme-material .arrow-down,.stackline-dropdown.theme-dark .arrow-down,.stackline-dropdown.theme-custom .arrow-down,.stackline-dropdown.theme-material .arrow-2,.stackline-dropdown.theme-dark .arrow-2,.stackline-dropdown.theme-custom .arrow-2{display:none}.stackline-dropdown.theme-material .list-area,.stackline-dropdown.theme-dark .list-area,.stackline-dropdown.theme-custom .list-area{overflow:hidden;border-radius:22px;background:var(--ms-surface);border:1px solid var(--ms-outline);box-shadow:var(--ms-shadow);margin:0}.stackline-dropdown.theme-material .select-all,.stackline-dropdown.theme-dark .select-all,.stackline-dropdown.theme-custom .select-all{padding:10px 14px;border-bottom:1px solid var(--ms-divider);background:var(--ms-section-bg);text-align:left}.stackline-dropdown.theme-material .list-filter,.stackline-dropdown.theme-dark .list-filter,.stackline-dropdown.theme-custom .list-filter{position:relative;display:flex;align-items:center;min-height:52px;padding-left:48px;padding-right:44px;border-bottom:1px solid var(--ms-divider);background:var(--ms-surface)}.stackline-dropdown.theme-material .list-filter input,.stackline-dropdown.theme-dark .list-filter input,.stackline-dropdown.theme-custom .list-filter input{width:100%;height:100%;border:0;background:transparent;color:var(--ms-on-surface);font:inherit;padding:0}.stackline-dropdown.theme-material .list-filter input::placeholder,.stackline-dropdown.theme-dark .list-filter input::placeholder,.stackline-dropdown.theme-custom .list-filter input::placeholder{color:var(--ms-on-surface-muted)}.stackline-dropdown.theme-material .list-filter input:focus,.stackline-dropdown.theme-dark .list-filter input:focus,.stackline-dropdown.theme-custom .list-filter input:focus{outline:none}.stackline-dropdown.theme-material .list-filter .fa,.stackline-dropdown.theme-dark .list-filter .fa,.stackline-dropdown.theme-custom .list-filter .fa{position:absolute;top:50%;left:16px;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;transform:translateY(-50%);color:var(--ms-on-surface-muted)}.stackline-dropdown.theme-material .dropdown-list ul,.stackline-dropdown.theme-dark .dropdown-list ul,.stackline-dropdown.theme-custom .dropdown-list ul{list-style:none;margin:0;padding:8px;overflow:auto}.stackline-dropdown.theme-material .dropdown-list ul li,.stackline-dropdown.theme-dark .dropdown-list ul li,.stackline-dropdown.theme-custom .dropdown-list ul li{align-items:center;min-height:0;margin:4px;padding:12px 14px;border-radius:14px;cursor:pointer;text-align:left;line-height:1.35;transition:background-color .16s ease,color .16s ease}.stackline-dropdown.theme-material .dropdown-list ul li:first-child,.stackline-dropdown.theme-dark .dropdown-list ul li:first-child,.stackline-dropdown.theme-custom .dropdown-list ul li:first-child{padding-top:12px}.stackline-dropdown.theme-material .dropdown-list ul li:last-child,.stackline-dropdown.theme-dark .dropdown-list ul li:last-child,.stackline-dropdown.theme-custom .dropdown-list ul li:last-child{padding-bottom:12px}.stackline-dropdown.theme-material .dropdown-list ul li:hover,.stackline-dropdown.theme-dark .dropdown-list ul li:hover,.stackline-dropdown.theme-custom .dropdown-list ul li:hover{background:var(--ms-surface-soft)}.stackline-dropdown.theme-material .pure-checkbox,.stackline-dropdown.theme-dark .pure-checkbox,.stackline-dropdown.theme-custom .pure-checkbox{position:relative}.stackline-dropdown.theme-material .pure-checkbox input[type=checkbox]+label,.stackline-dropdown.theme-dark .pure-checkbox input[type=checkbox]+label,.stackline-dropdown.theme-custom .pure-checkbox input[type=checkbox]+label{position:relative;display:block;width:100%;margin:0;padding-left:32px;color:inherit;cursor:pointer;font-weight:500;-webkit-user-select:none;user-select:none}.stackline-dropdown.theme-material .pure-checkbox input[type=checkbox]+label:before,.stackline-dropdown.theme-dark .pure-checkbox input[type=checkbox]+label:before,.stackline-dropdown.theme-custom .pure-checkbox input[type=checkbox]+label:before{box-sizing:content-box;content:\"\";position:absolute;top:50%;left:0;width:16px;height:16px;margin-top:-10px;border:2px solid var(--ms-outline-strong);border-radius:5px;background:var(--ms-surface);transition:border-color .16s ease,background-color .16s ease,box-shadow .16s ease}.stackline-dropdown.theme-material .pure-checkbox input[type=checkbox]+label:after,.stackline-dropdown.theme-dark .pure-checkbox input[type=checkbox]+label:after,.stackline-dropdown.theme-custom .pure-checkbox input[type=checkbox]+label:after{box-sizing:content-box;content:\"\";position:absolute;top:50%;left:5px;width:8px;height:3px;margin-top:-4px;border-style:solid;border-color:#fff;border-width:0 0 3px 3px;border-image:none;background:transparent;transform:rotate(-45deg) scale(0);transform-origin:50%;transition:transform .16s ease}.stackline-dropdown.theme-material .pure-checkbox input[type=checkbox]:focus+label:before,.stackline-dropdown.theme-dark .pure-checkbox input[type=checkbox]:focus+label:before,.stackline-dropdown.theme-custom .pure-checkbox input[type=checkbox]:focus+label:before,.stackline-dropdown.theme-material .pure-checkbox input[type=checkbox]:hover+label:before,.stackline-dropdown.theme-dark .pure-checkbox input[type=checkbox]:hover+label:before,.stackline-dropdown.theme-custom .pure-checkbox input[type=checkbox]:hover+label:before{border-color:var(--ms-primary);background:var(--ms-surface-soft)}.stackline-dropdown.theme-material .pure-checkbox input[type=checkbox]:checked+label:before,.stackline-dropdown.theme-dark .pure-checkbox input[type=checkbox]:checked+label:before,.stackline-dropdown.theme-custom .pure-checkbox input[type=checkbox]:checked+label:before{border-color:var(--ms-primary);background:var(--ms-primary)}.stackline-dropdown.theme-material .pure-checkbox input[type=checkbox]:checked+label:after,.stackline-dropdown.theme-dark .pure-checkbox input[type=checkbox]:checked+label:after,.stackline-dropdown.theme-custom .pure-checkbox input[type=checkbox]:checked+label:after{transform:rotate(-45deg) scale(1)}.stackline-dropdown.theme-material .list-message,.stackline-dropdown.theme-dark .list-message,.stackline-dropdown.theme-custom .list-message{margin:0;padding:20px 14px;color:var(--ms-on-surface-muted);text-align:center}\n"], dependencies: [{ kind: "directive", type: i0.forwardRef(function () { return i1.NgClass; }), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(function () { return i1.NgForOf; }), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(function () { return i1.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(function () { return i1.NgStyle; }), selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.DefaultValueAccessor; }), selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgControlStatus; }), selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgModel; }), selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i0.forwardRef(function () { return ClickOutsideDirective; }), selector: "[clickOutside]", outputs: ["clickOutside"] }, { kind: "directive", type: i0.forwardRef(function () { return styleDirective; }), selector: "[styleProp]", inputs: ["styleProp"] }, { kind: "component", type: i0.forwardRef(function () { return TemplateRenderer; }), selector: "c-templateRenderer", inputs: ["data", "item"] }, { kind: "pipe", type: i0.forwardRef(function () { return ListFilterPipe; }), name: "listFilter" }] });
360
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AngularMultiSelect, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
361
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: AngularMultiSelect, selector: "angular-multiselect, angular2-multiselect", inputs: { data: "data", settings: "settings" }, outputs: { onSelect: "onSelect", onDeSelect: "onDeSelect", onSelectAll: "onSelectAll", onDeSelectAll: "onDeSelectAll", onOpen: "onOpen", onClose: "onClose" }, host: { properties: { "class": "defaultSettings.classes" } }, providers: [DROPDOWN_CONTROL_VALUE_ACCESSOR, DROPDOWN_CONTROL_VALIDATION], queries: [{ propertyName: "itemTempl", first: true, predicate: Item, descendants: true }, { propertyName: "badgeTempl", first: true, predicate: Badge, descendants: true }], viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"stackline-dropdown\" [ngClass]=\"getDropdownClasses()\" (clickOutside)=\"closeDropdown()\">\n <div class=\"selected-list\">\n <div class=\"c-btn\" (click)=\"toggleDropdown($event)\" [ngClass]=\"{'disabled': settings.disabled}\">\n <span *ngIf=\"selectedItems?.length == 0\">{{settings.text}}</span>\n <span *ngIf=\"settings.singleSelection\">\n <span *ngFor=\"let item of selectedItems;trackBy: trackByFn;\">\n {{item[settings.labelKey]}}\n </span>\n </span>\n <div class=\"c-list\" *ngIf=\"selectedItems?.length > 0 && !settings.singleSelection\">\n <div class=\"c-token\" *ngFor=\"let item of selectedItems;trackBy: trackByFn;let k = index\" [hidden]=\"k > settings.badgeShowLimit-1\">\n <span *ngIf=\"!badgeTempl\" class=\"c-label\">{{item[settings.labelKey]}}</span>\n <span *ngIf=\"badgeTempl\" class=\"c-label\">\n <c-templateRenderer [data]=\"badgeTempl\" [item]=\"item\"></c-templateRenderer>\n </span>\n <span class=\"fa fa-remove\" (click)=\"onItemClick(item,k,$event)\"></span>\n </div>\n </div> \n <span class=\"countplaceholder\" *ngIf=\"selectedItems?.length > settings.badgeShowLimit\">+{{selectedItems?.length - settings.badgeShowLimit }}</span>\n <span class=\"fa\" [ngClass]=\"{'fa-angle-down': !isActive,'fa-angle-up':isActive}\"></span>\n </div> \n </div>\n <div class=\"dropdown-list\" [hidden]=\"!isActive\">\n <div class=\"arrow-up arrow-2\"></div>\n <div class=\"arrow-up\"></div>\n <div class=\"list-area\">\n <div class=\"pure-checkbox select-all\" *ngIf=\"settings.enableCheckAll && !settings.singleSelection && !settings.limitSelection\" (click)=\"toggleSelectAll()\">\n <input *ngIf=\"settings.showCheckbox\" type=\"checkbox\" [checked]=\"isSelectAll\" [disabled]=\"settings.limitSelection == selectedItems?.length\"/>\n <label>\n <span [hidden]=\"isSelectAll\">{{settings.selectAllText}}</span>\n <span [hidden]=\"!isSelectAll\">{{settings.unSelectAllText}}</span>\n </label>\n </div> \n <div class=\"list-filter\" *ngIf=\"settings.enableSearchFilter && !settings.lazyLoading\">\n <span class=\"fa fa-search\"></span>\n <input #searchInput type=\"text\" [placeholder]=\"settings.searchPlaceholderText\" [(ngModel)]=\"filter\">\n </div> \n <div class=\"list-filter\" *ngIf=\"settings.enableSearchFilter && settings.lazyLoading\">\n <span class=\"fa fa-search\"></span>\n <input #searchInput type=\"text\" [placeholder]=\"settings.searchPlaceholderText\" (keyup)=\"filterInfiniteList($event)\">\n </div>\n <ul *ngIf=\"!settings.groupBy\" [style.maxHeight] = \"settings.maxHeight+'px'\" class=\"lazyContainer\" >\n <span *ngIf=\"itemTempl\">\n <li *ngFor=\"let item of data | listFilter:filter; let i = index;\" (click)=\"onItemClick(item,i,$event)\" class=\"pure-checkbox\">\n <input *ngIf=\"settings.showCheckbox\" type=\"checkbox\" [checked]=\"isSelected(item)\" [disabled]=\"settings.limitSelection == selectedItems?.length && !isSelected(item)\"/>\n <label></label>\n <c-templateRenderer [data]=\"itemTempl\" [item]=\"item\"></c-templateRenderer>\n </li>\n </span>\n <span *ngIf=\"!itemTempl && !settings.lazyLoading\" >\n <li *ngFor=\"let item of data | listFilter:filter; let i = index;\" (click)=\"onItemClick(item,i,$event)\" class=\"pure-checkbox\">\n <input *ngIf=\"settings.showCheckbox\" type=\"checkbox\" [checked]=\"isSelected(item)\" [disabled]=\"settings.limitSelection == selectedItems?.length && !isSelected(item)\"/>\n <label>{{item[settings.labelKey]}}</label>\n </li>\n </span>\n <span *ngIf=\"!itemTempl && settings.lazyLoading\" >\n <div [ngStyle]=\"{'height':totalHeight+'px'}\" style=\"position: relative;\">\n\n \n <li *ngFor=\"let item of chunkArray | listFilter:filter; let i = index;\" (click)=\"onItemClick(item,i,$event)\" style=\"position: absolute;width: 100%;\" class=\"pure-checkbox\" [styleProp]=\"chunkIndex[i]\">\n <input *ngIf=\"settings.showCheckbox\" type=\"checkbox\" [checked]=\"isSelected(item)\" [disabled]=\"settings.limitSelection == selectedItems?.length && !isSelected(item)\"/>\n <label>{{item[settings.labelKey]}}</label>\n </li>\n </div>\n </span>\n </ul>\n <div *ngIf=\"settings.groupBy\" [style.maxHeight] = \"settings.maxHeight+'px'\" style=\"overflow: auto;\">\n <ul *ngFor=\"let obj of groupedData ; let i = index;\" class=\"list-grp\">\n <h4 *ngIf=\"(obj.value | listFilter:filter ).length > 0\">{{obj.key}}</h4>\n <span *ngIf=\"itemTempl\" >\n <li *ngFor=\"let item of obj.value | listFilter:filter; let i = index;\" (click)=\"onItemClick(item,i,$event)\" class=\"pure-checkbox\">\n <input *ngIf=\"settings.showCheckbox\" type=\"checkbox\" [checked]=\"isSelected(item)\" [disabled]=\"settings.limitSelection == selectedItems?.length && !isSelected(item)\"/>\n <label></label>\n <c-templateRenderer [data]=\"itemTempl\" [item]=\"item\"></c-templateRenderer>\n </li>\n </span>\n <span *ngIf=\"!itemTempl\" >\n <li *ngFor=\"let item of obj.value | listFilter:filter; let i = index;\" (click)=\"onItemClick(item,i,$event)\" class=\"pure-checkbox\">\n <input *ngIf=\"settings.showCheckbox\" type=\"checkbox\" [checked]=\"isSelected(item)\" [disabled]=\"settings.limitSelection == selectedItems?.length && !isSelected(item)\"/>\n <label>{{item[settings.labelKey]}}</label>\n </li>\n </span>\n </ul>\n </div>\n <h5 class=\"list-message\" *ngIf=\"data?.length == 0\">{{settings.noDataLabel}}</h5>\n </div>\n </div>\n</div>\n", isInline: true, styles: [".stackline-dropdown{position:relative}.c-btn{display:inline-block;background:#fff;border:1px solid #ccc;border-radius:3px;font-size:14px;color:#333}.c-btn.disabled{background:#ccc}.c-btn:focus{outline:none}.selected-list .c-list{display:flex;flex:1 1 auto;align-items:center;flex-wrap:wrap;min-width:0;float:none;padding:0;margin:0;width:auto}.selected-list .c-list .c-token{list-style:none;padding:0 5px;background:#0079fe;color:#fff;border-radius:2px;margin-right:4px;margin-top:2px;float:left}.selected-list .c-list .c-token .c-label{display:block;float:left}.selected-list .c-list .c-token .fa-remove{margin-left:1px;font-size:12px}.selected-list .fa-angle-down,.selected-list .fa-angle-up{font-size:15pt;position:absolute;right:10px;top:50%;transform:translateY(-50%)}.selected-list .countplaceholder{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;align-self:center;margin:0 0 0 6px;line-height:1}.selected-list .c-btn{box-sizing:border-box;width:100%;box-shadow:0 1px 5px #959595;padding:10px 36px 10px 10px;cursor:pointer;display:flex;align-items:center;flex-wrap:nowrap;position:relative}.dropdown-list{position:absolute;padding-top:14px;width:100%;z-index:9999}.dropdown-list ul{padding:0;list-style:none;overflow:auto;margin:0}.dropdown-list ul li{padding:10px;cursor:pointer;text-align:left}.dropdown-list ul li:first-child{padding-top:10px}.dropdown-list ul li:last-child{padding-bottom:10px}.dropdown-list ul li:hover{background:#f5f5f5}.dropdown-list ::-webkit-scrollbar{width:8px}.dropdown-list ::-webkit-scrollbar-thumb{background:#ccc;border-radius:5px}.dropdown-list ::-webkit-scrollbar-track{background:#f2f2f2}.arrow-up{width:0;height:0;border-left:13px solid transparent;border-right:13px solid transparent;border-bottom:15px solid #fff;margin-left:15px;position:absolute;top:0}.arrow-2{border-bottom:15px solid #ccc;top:-1px}.list-area{border:1px solid #ccc;border-radius:3px;background:#fff;margin:0;box-shadow:0 1px 5px #959595}.select-all{padding:10px;border-bottom:1px solid #ccc;text-align:left}.list-filter{border-bottom:1px solid #ccc;position:relative}.list-filter input{border:0px;width:100%;height:35px;padding:0 0 0 35px}.list-filter input:focus{outline:none}.list-filter .fa{position:absolute;top:10px;left:13px;color:#888}.pure-checkbox input[type=checkbox]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.pure-checkbox input[type=checkbox]:focus+label:before,.pure-checkbox input[type=checkbox]:hover+label:before{border-color:#0079fe;background-color:#f2f2f2}.pure-checkbox input[type=checkbox]:active+label:before{transition-duration:0s}.pure-checkbox input[type=checkbox]+label{position:relative;padding-left:2em;vertical-align:middle;-webkit-user-select:none;user-select:none;cursor:pointer;margin:0;color:#000;font-weight:300}.pure-checkbox input[type=checkbox]+label:before{box-sizing:content-box;content:\"\";color:#0079fe;position:absolute;top:50%;left:0;width:14px;height:14px;margin-top:-9px;border:2px solid #0079FE;text-align:center;transition:all .4s ease}.pure-checkbox input[type=checkbox]+label:after{box-sizing:content-box;content:\"\";background-color:#0079fe;position:absolute;top:50%;left:4px;width:10px;height:10px;margin-top:-5px;transform:scale(0);transform-origin:50%;transition:transform .2s ease-out}.pure-checkbox input[type=checkbox]:disabled+label:before{border-color:#ccc}.pure-checkbox input[type=checkbox]:disabled:focus+label:before .pure-checkbox input[type=checkbox]:disabled:hover+label:before{background-color:inherit}.pure-checkbox input[type=checkbox]:disabled:checked+label:before{background-color:#ccc}.pure-checkbox input[type=checkbox]+label:after{background-color:transparent;top:50%;left:4px;width:8px;height:3px;margin-top:-4px;border-style:solid;border-color:#fff;border-width:0 0 3px 3px;border-image:none;transform:rotate(-45deg) scale(0)}.pure-checkbox input[type=checkbox]:checked+label:after{content:\"\";transform:rotate(-45deg) scale(1);transition:transform .2s ease-out}.pure-checkbox input[type=radio]:checked+label:before{background-color:#fff}.pure-checkbox input[type=radio]:checked+label:after{transform:scale(1)}.pure-checkbox input[type=radio]+label:before{border-radius:50%}.pure-checkbox input[type=checkbox]:checked+label:before{background:#0079fe}.pure-checkbox input[type=checkbox]:checked+label:after{transform:rotate(-45deg) scale(1)}.list-message{text-align:center}.list-grp{padding:0 15px!important}.list-grp h4{text-transform:capitalize;margin:15px 0 0;font-size:14px;font-weight:700}.list-grp>li{padding-left:15px!important}.stackline-dropdown.theme-material,.stackline-dropdown.theme-dark,.stackline-dropdown.theme-custom{--ms-primary: #3f51b5;--ms-primary-soft: rgba(63, 81, 181, .12);--ms-surface: #ffffff;--ms-surface-soft: #f5f7fb;--ms-surface-muted: #e8eaf6;--ms-outline: #c5cae9;--ms-outline-strong: #7986cb;--ms-on-surface: #212121;--ms-on-surface-muted: #5f6368;--ms-chip-bg: #e8eaf6;--ms-chip-text: #303f9f;--ms-chip-remove: #303f9f;--ms-divider: rgba(125, 119, 134, .16);--ms-section-bg: rgba(247, 242, 250, .76);--ms-selected-text: var(--ms-primary);--ms-shadow: 0 1px 2px rgba(33, 33, 33, .16), 0 12px 32px rgba(63, 81, 181, .12);--ms-shadow-soft: 0 1px 2px rgba(33, 33, 33, .12), 0 4px 12px rgba(33, 33, 33, .08);display:block;width:100%;color:var(--ms-on-surface);font:inherit}.stackline-dropdown.theme-dark{--ms-primary: #8ab4f8;--ms-primary-soft: rgba(138, 180, 248, .18);--ms-surface: #151a23;--ms-surface-soft: #202736;--ms-surface-muted: #111722;--ms-outline: #384456;--ms-outline-strong: #8ab4f8;--ms-on-surface: #edf2f7;--ms-on-surface-muted: #aab6c5;--ms-chip-bg: #263247;--ms-chip-text: #d7e6ff;--ms-chip-remove: #d7e6ff;--ms-divider: rgba(170, 182, 197, .18);--ms-section-bg: #101620;--ms-selected-text: #d7e6ff;--ms-shadow: 0 20px 50px rgba(0, 0, 0, .42);--ms-shadow-soft: 0 1px 2px rgba(0, 0, 0, .45), 0 10px 24px rgba(0, 0, 0, .28)}.stackline-dropdown.theme-custom{--ms-primary: var(--stackline-ms-primary, #0f766e);--ms-primary-soft: var(--stackline-ms-primary-soft, rgba(15, 118, 110, .14));--ms-surface: var(--stackline-ms-surface, #ffffff);--ms-surface-soft: var(--stackline-ms-surface-soft, #ecfdf5);--ms-surface-muted: var(--stackline-ms-surface-muted, #d1fae5);--ms-outline: var(--stackline-ms-outline, #99f6e4);--ms-outline-strong: var(--stackline-ms-outline-strong, #0f766e);--ms-on-surface: var(--stackline-ms-on-surface, #102a2a);--ms-on-surface-muted: var(--stackline-ms-on-surface-muted, #47615f);--ms-chip-bg: var(--stackline-ms-chip-bg, #ccfbf1);--ms-chip-text: var(--stackline-ms-chip-text, #115e59);--ms-chip-remove: var(--stackline-ms-chip-remove, #115e59);--ms-divider: var(--stackline-ms-divider, rgba(15, 118, 110, .16));--ms-section-bg: var(--stackline-ms-section-bg, #f0fdfa);--ms-selected-text: var(--stackline-ms-selected-text, var(--ms-primary));--ms-shadow: var(--stackline-ms-shadow, 0 18px 42px rgba(15, 118, 110, .15));--ms-shadow-soft: var(--stackline-ms-shadow-soft, 0 1px 2px rgba(15, 118, 110, .16), 0 8px 18px rgba(15, 118, 110, .09))}.stackline-dropdown.theme-material .selected-list,.stackline-dropdown.theme-dark .selected-list,.stackline-dropdown.theme-custom .selected-list{width:100%}.stackline-dropdown.theme-material .selected-list .c-btn,.stackline-dropdown.theme-dark .selected-list .c-btn,.stackline-dropdown.theme-custom .selected-list .c-btn{position:relative;display:flex;align-items:center;flex-wrap:nowrap;gap:8px;width:100%;min-height:56px;padding:11px 54px 11px 16px;border-radius:18px;border:1px solid var(--ms-outline);background:var(--ms-surface);box-shadow:var(--ms-shadow-soft);color:var(--ms-on-surface);cursor:pointer;font-size:inherit;line-height:1.45;transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease,transform .16s ease}.stackline-dropdown.theme-material .selected-list .c-btn:hover,.stackline-dropdown.theme-dark .selected-list .c-btn:hover,.stackline-dropdown.theme-custom .selected-list .c-btn:hover{border-color:var(--ms-outline-strong)}.stackline-dropdown.theme-material .selected-list .c-btn.disabled,.stackline-dropdown.theme-dark .selected-list .c-btn.disabled,.stackline-dropdown.theme-custom .selected-list .c-btn.disabled{background:var(--ms-surface);cursor:not-allowed;opacity:.72}.stackline-dropdown.theme-material .selected-list .c-list,.stackline-dropdown.theme-dark .selected-list .c-list,.stackline-dropdown.theme-custom .selected-list .c-list{display:flex;flex:1 1 auto;flex-wrap:wrap;gap:8px;width:auto;min-width:0;margin:0;padding:0;float:none}.stackline-dropdown.theme-material .selected-list .c-list .c-token,.stackline-dropdown.theme-dark .selected-list .c-list .c-token,.stackline-dropdown.theme-custom .selected-list .c-list .c-token{position:relative;display:inline-block;vertical-align:middle;min-height:32px;max-width:100%;padding:6px 30px 6px 12px;background:var(--ms-chip-bg);color:var(--ms-chip-text);border-radius:999px;box-shadow:inset 0 0 0 1px #6750a414;line-height:1.35;white-space:normal;overflow-wrap:anywhere;margin:0;float:none}.stackline-dropdown.theme-material .selected-list .c-list .c-token .c-label,.stackline-dropdown.theme-dark .selected-list .c-list .c-token .c-label,.stackline-dropdown.theme-custom .selected-list .c-list .c-token .c-label{display:inline-flex;align-items:center;float:none;min-width:0;max-width:100%;line-height:1.3;font-weight:500;white-space:normal;overflow-wrap:anywhere}.stackline-dropdown.theme-material .selected-list .c-list .c-token .fa-remove,.stackline-dropdown.theme-dark .selected-list .c-list .c-token .fa-remove,.stackline-dropdown.theme-custom .selected-list .c-list .c-token .fa-remove{position:absolute;right:10px;top:50%;display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-left:0;transform:translateY(-50%);color:var(--ms-chip-remove);cursor:pointer}.stackline-dropdown.theme-material .selected-list .countplaceholder,.stackline-dropdown.theme-dark .selected-list .countplaceholder,.stackline-dropdown.theme-custom .selected-list .countplaceholder{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;align-self:center;margin:0;line-height:1;color:var(--ms-on-surface-muted);font-size:.8rem;font-weight:600}.stackline-dropdown.theme-material .selected-list .fa-angle-down,.stackline-dropdown.theme-dark .selected-list .fa-angle-down,.stackline-dropdown.theme-custom .selected-list .fa-angle-down,.stackline-dropdown.theme-material .selected-list .fa-angle-up,.stackline-dropdown.theme-dark .selected-list .fa-angle-up,.stackline-dropdown.theme-custom .selected-list .fa-angle-up{position:absolute;top:50%;right:16px;display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;transform:translateY(-50%);color:var(--ms-on-surface-muted);font-size:15pt;pointer-events:none}.stackline-dropdown.theme-material .dropdown-list,.stackline-dropdown.theme-dark .dropdown-list,.stackline-dropdown.theme-custom .dropdown-list{position:absolute;width:100%;padding-top:8px;z-index:99999}.stackline-dropdown.theme-material .arrow-up,.stackline-dropdown.theme-dark .arrow-up,.stackline-dropdown.theme-custom .arrow-up,.stackline-dropdown.theme-material .arrow-down,.stackline-dropdown.theme-dark .arrow-down,.stackline-dropdown.theme-custom .arrow-down,.stackline-dropdown.theme-material .arrow-2,.stackline-dropdown.theme-dark .arrow-2,.stackline-dropdown.theme-custom .arrow-2{display:none}.stackline-dropdown.theme-material .list-area,.stackline-dropdown.theme-dark .list-area,.stackline-dropdown.theme-custom .list-area{overflow:hidden;border-radius:22px;background:var(--ms-surface);border:1px solid var(--ms-outline);box-shadow:var(--ms-shadow);margin:0}.stackline-dropdown.theme-material .select-all,.stackline-dropdown.theme-dark .select-all,.stackline-dropdown.theme-custom .select-all{padding:10px 14px;border-bottom:1px solid var(--ms-divider);background:var(--ms-section-bg);text-align:left}.stackline-dropdown.theme-material .list-filter,.stackline-dropdown.theme-dark .list-filter,.stackline-dropdown.theme-custom .list-filter{position:relative;display:flex;align-items:center;min-height:52px;padding-left:48px;padding-right:44px;border-bottom:1px solid var(--ms-divider);background:var(--ms-surface)}.stackline-dropdown.theme-material .list-filter input,.stackline-dropdown.theme-dark .list-filter input,.stackline-dropdown.theme-custom .list-filter input{width:100%;height:100%;border:0;background:transparent;color:var(--ms-on-surface);font:inherit;padding:0}.stackline-dropdown.theme-material .list-filter input::placeholder,.stackline-dropdown.theme-dark .list-filter input::placeholder,.stackline-dropdown.theme-custom .list-filter input::placeholder{color:var(--ms-on-surface-muted)}.stackline-dropdown.theme-material .list-filter input:focus,.stackline-dropdown.theme-dark .list-filter input:focus,.stackline-dropdown.theme-custom .list-filter input:focus{outline:none}.stackline-dropdown.theme-material .list-filter .fa,.stackline-dropdown.theme-dark .list-filter .fa,.stackline-dropdown.theme-custom .list-filter .fa{position:absolute;top:50%;left:16px;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;transform:translateY(-50%);color:var(--ms-on-surface-muted)}.stackline-dropdown.theme-material .dropdown-list ul,.stackline-dropdown.theme-dark .dropdown-list ul,.stackline-dropdown.theme-custom .dropdown-list ul{list-style:none;margin:0;padding:8px;overflow:auto}.stackline-dropdown.theme-material .dropdown-list ul li,.stackline-dropdown.theme-dark .dropdown-list ul li,.stackline-dropdown.theme-custom .dropdown-list ul li{align-items:center;min-height:0;margin:4px;padding:12px 14px;border-radius:14px;cursor:pointer;text-align:left;line-height:1.35;transition:background-color .16s ease,color .16s ease}.stackline-dropdown.theme-material .dropdown-list ul li:first-child,.stackline-dropdown.theme-dark .dropdown-list ul li:first-child,.stackline-dropdown.theme-custom .dropdown-list ul li:first-child{padding-top:12px}.stackline-dropdown.theme-material .dropdown-list ul li:last-child,.stackline-dropdown.theme-dark .dropdown-list ul li:last-child,.stackline-dropdown.theme-custom .dropdown-list ul li:last-child{padding-bottom:12px}.stackline-dropdown.theme-material .dropdown-list ul li:hover,.stackline-dropdown.theme-dark .dropdown-list ul li:hover,.stackline-dropdown.theme-custom .dropdown-list ul li:hover{background:var(--ms-surface-soft)}.stackline-dropdown.theme-material .pure-checkbox,.stackline-dropdown.theme-dark .pure-checkbox,.stackline-dropdown.theme-custom .pure-checkbox{position:relative}.stackline-dropdown.theme-material .pure-checkbox input[type=checkbox]+label,.stackline-dropdown.theme-dark .pure-checkbox input[type=checkbox]+label,.stackline-dropdown.theme-custom .pure-checkbox input[type=checkbox]+label{position:relative;display:block;width:100%;margin:0;padding-left:32px;color:inherit;cursor:pointer;font-weight:500;-webkit-user-select:none;user-select:none}.stackline-dropdown.theme-material .pure-checkbox input[type=checkbox]+label:before,.stackline-dropdown.theme-dark .pure-checkbox input[type=checkbox]+label:before,.stackline-dropdown.theme-custom .pure-checkbox input[type=checkbox]+label:before{box-sizing:content-box;content:\"\";position:absolute;top:50%;left:0;width:16px;height:16px;margin-top:-10px;border:2px solid var(--ms-outline-strong);border-radius:5px;background:var(--ms-surface);transition:border-color .16s ease,background-color .16s ease,box-shadow .16s ease}.stackline-dropdown.theme-material .pure-checkbox input[type=checkbox]+label:after,.stackline-dropdown.theme-dark .pure-checkbox input[type=checkbox]+label:after,.stackline-dropdown.theme-custom .pure-checkbox input[type=checkbox]+label:after{box-sizing:content-box;content:\"\";position:absolute;top:50%;left:5px;width:8px;height:3px;margin-top:-4px;border-style:solid;border-color:#fff;border-width:0 0 3px 3px;border-image:none;background:transparent;transform:rotate(-45deg) scale(0);transform-origin:50%;transition:transform .16s ease}.stackline-dropdown.theme-material .pure-checkbox input[type=checkbox]:focus+label:before,.stackline-dropdown.theme-dark .pure-checkbox input[type=checkbox]:focus+label:before,.stackline-dropdown.theme-custom .pure-checkbox input[type=checkbox]:focus+label:before,.stackline-dropdown.theme-material .pure-checkbox input[type=checkbox]:hover+label:before,.stackline-dropdown.theme-dark .pure-checkbox input[type=checkbox]:hover+label:before,.stackline-dropdown.theme-custom .pure-checkbox input[type=checkbox]:hover+label:before{border-color:var(--ms-primary);background:var(--ms-surface-soft)}.stackline-dropdown.theme-material .pure-checkbox input[type=checkbox]:checked+label:before,.stackline-dropdown.theme-dark .pure-checkbox input[type=checkbox]:checked+label:before,.stackline-dropdown.theme-custom .pure-checkbox input[type=checkbox]:checked+label:before{border-color:var(--ms-primary);background:var(--ms-primary)}.stackline-dropdown.theme-material .pure-checkbox input[type=checkbox]:checked+label:after,.stackline-dropdown.theme-dark .pure-checkbox input[type=checkbox]:checked+label:after,.stackline-dropdown.theme-custom .pure-checkbox input[type=checkbox]:checked+label:after{transform:rotate(-45deg) scale(1)}.stackline-dropdown.theme-material .list-message,.stackline-dropdown.theme-dark .list-message,.stackline-dropdown.theme-custom .list-message{margin:0;padding:20px 14px;color:var(--ms-on-surface-muted);text-align:center}\n"], dependencies: [{ kind: "directive", type: i0.forwardRef(() => i1.NgClass), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(() => i1.NgForOf), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(() => i1.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(() => i1.NgStyle), selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i0.forwardRef(() => i2.DefaultValueAccessor), selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i0.forwardRef(() => i2.NgControlStatus), selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i0.forwardRef(() => i2.NgModel), selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i0.forwardRef(() => ClickOutsideDirective), selector: "[clickOutside]", outputs: ["clickOutside"] }, { kind: "directive", type: i0.forwardRef(() => styleDirective), selector: "[styleProp]", inputs: ["styleProp"] }, { kind: "component", type: i0.forwardRef(() => TemplateRenderer), selector: "c-templateRenderer", inputs: ["data", "item"] }, { kind: "pipe", type: i0.forwardRef(() => ListFilterPipe), name: "listFilter" }] });
362
362
  }
363
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AngularMultiSelect, decorators: [{
363
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AngularMultiSelect, decorators: [{
364
364
  type: Component,
365
365
  args: [{ selector: 'angular-multiselect, angular2-multiselect', template: "<div class=\"stackline-dropdown\" [ngClass]=\"getDropdownClasses()\" (clickOutside)=\"closeDropdown()\">\n <div class=\"selected-list\">\n <div class=\"c-btn\" (click)=\"toggleDropdown($event)\" [ngClass]=\"{'disabled': settings.disabled}\">\n <span *ngIf=\"selectedItems?.length == 0\">{{settings.text}}</span>\n <span *ngIf=\"settings.singleSelection\">\n <span *ngFor=\"let item of selectedItems;trackBy: trackByFn;\">\n {{item[settings.labelKey]}}\n </span>\n </span>\n <div class=\"c-list\" *ngIf=\"selectedItems?.length > 0 && !settings.singleSelection\">\n <div class=\"c-token\" *ngFor=\"let item of selectedItems;trackBy: trackByFn;let k = index\" [hidden]=\"k > settings.badgeShowLimit-1\">\n <span *ngIf=\"!badgeTempl\" class=\"c-label\">{{item[settings.labelKey]}}</span>\n <span *ngIf=\"badgeTempl\" class=\"c-label\">\n <c-templateRenderer [data]=\"badgeTempl\" [item]=\"item\"></c-templateRenderer>\n </span>\n <span class=\"fa fa-remove\" (click)=\"onItemClick(item,k,$event)\"></span>\n </div>\n </div> \n <span class=\"countplaceholder\" *ngIf=\"selectedItems?.length > settings.badgeShowLimit\">+{{selectedItems?.length - settings.badgeShowLimit }}</span>\n <span class=\"fa\" [ngClass]=\"{'fa-angle-down': !isActive,'fa-angle-up':isActive}\"></span>\n </div> \n </div>\n <div class=\"dropdown-list\" [hidden]=\"!isActive\">\n <div class=\"arrow-up arrow-2\"></div>\n <div class=\"arrow-up\"></div>\n <div class=\"list-area\">\n <div class=\"pure-checkbox select-all\" *ngIf=\"settings.enableCheckAll && !settings.singleSelection && !settings.limitSelection\" (click)=\"toggleSelectAll()\">\n <input *ngIf=\"settings.showCheckbox\" type=\"checkbox\" [checked]=\"isSelectAll\" [disabled]=\"settings.limitSelection == selectedItems?.length\"/>\n <label>\n <span [hidden]=\"isSelectAll\">{{settings.selectAllText}}</span>\n <span [hidden]=\"!isSelectAll\">{{settings.unSelectAllText}}</span>\n </label>\n </div> \n <div class=\"list-filter\" *ngIf=\"settings.enableSearchFilter && !settings.lazyLoading\">\n <span class=\"fa fa-search\"></span>\n <input #searchInput type=\"text\" [placeholder]=\"settings.searchPlaceholderText\" [(ngModel)]=\"filter\">\n </div> \n <div class=\"list-filter\" *ngIf=\"settings.enableSearchFilter && settings.lazyLoading\">\n <span class=\"fa fa-search\"></span>\n <input #searchInput type=\"text\" [placeholder]=\"settings.searchPlaceholderText\" (keyup)=\"filterInfiniteList($event)\">\n </div>\n <ul *ngIf=\"!settings.groupBy\" [style.maxHeight] = \"settings.maxHeight+'px'\" class=\"lazyContainer\" >\n <span *ngIf=\"itemTempl\">\n <li *ngFor=\"let item of data | listFilter:filter; let i = index;\" (click)=\"onItemClick(item,i,$event)\" class=\"pure-checkbox\">\n <input *ngIf=\"settings.showCheckbox\" type=\"checkbox\" [checked]=\"isSelected(item)\" [disabled]=\"settings.limitSelection == selectedItems?.length && !isSelected(item)\"/>\n <label></label>\n <c-templateRenderer [data]=\"itemTempl\" [item]=\"item\"></c-templateRenderer>\n </li>\n </span>\n <span *ngIf=\"!itemTempl && !settings.lazyLoading\" >\n <li *ngFor=\"let item of data | listFilter:filter; let i = index;\" (click)=\"onItemClick(item,i,$event)\" class=\"pure-checkbox\">\n <input *ngIf=\"settings.showCheckbox\" type=\"checkbox\" [checked]=\"isSelected(item)\" [disabled]=\"settings.limitSelection == selectedItems?.length && !isSelected(item)\"/>\n <label>{{item[settings.labelKey]}}</label>\n </li>\n </span>\n <span *ngIf=\"!itemTempl && settings.lazyLoading\" >\n <div [ngStyle]=\"{'height':totalHeight+'px'}\" style=\"position: relative;\">\n\n \n <li *ngFor=\"let item of chunkArray | listFilter:filter; let i = index;\" (click)=\"onItemClick(item,i,$event)\" style=\"position: absolute;width: 100%;\" class=\"pure-checkbox\" [styleProp]=\"chunkIndex[i]\">\n <input *ngIf=\"settings.showCheckbox\" type=\"checkbox\" [checked]=\"isSelected(item)\" [disabled]=\"settings.limitSelection == selectedItems?.length && !isSelected(item)\"/>\n <label>{{item[settings.labelKey]}}</label>\n </li>\n </div>\n </span>\n </ul>\n <div *ngIf=\"settings.groupBy\" [style.maxHeight] = \"settings.maxHeight+'px'\" style=\"overflow: auto;\">\n <ul *ngFor=\"let obj of groupedData ; let i = index;\" class=\"list-grp\">\n <h4 *ngIf=\"(obj.value | listFilter:filter ).length > 0\">{{obj.key}}</h4>\n <span *ngIf=\"itemTempl\" >\n <li *ngFor=\"let item of obj.value | listFilter:filter; let i = index;\" (click)=\"onItemClick(item,i,$event)\" class=\"pure-checkbox\">\n <input *ngIf=\"settings.showCheckbox\" type=\"checkbox\" [checked]=\"isSelected(item)\" [disabled]=\"settings.limitSelection == selectedItems?.length && !isSelected(item)\"/>\n <label></label>\n <c-templateRenderer [data]=\"itemTempl\" [item]=\"item\"></c-templateRenderer>\n </li>\n </span>\n <span *ngIf=\"!itemTempl\" >\n <li *ngFor=\"let item of obj.value | listFilter:filter; let i = index;\" (click)=\"onItemClick(item,i,$event)\" class=\"pure-checkbox\">\n <input *ngIf=\"settings.showCheckbox\" type=\"checkbox\" [checked]=\"isSelected(item)\" [disabled]=\"settings.limitSelection == selectedItems?.length && !isSelected(item)\"/>\n <label>{{item[settings.labelKey]}}</label>\n </li>\n </span>\n </ul>\n </div>\n <h5 class=\"list-message\" *ngIf=\"data?.length == 0\">{{settings.noDataLabel}}</h5>\n </div>\n </div>\n</div>\n", host: { '[class]': 'defaultSettings.classes' }, providers: [DROPDOWN_CONTROL_VALUE_ACCESSOR, DROPDOWN_CONTROL_VALIDATION], styles: [".stackline-dropdown{position:relative}.c-btn{display:inline-block;background:#fff;border:1px solid #ccc;border-radius:3px;font-size:14px;color:#333}.c-btn.disabled{background:#ccc}.c-btn:focus{outline:none}.selected-list .c-list{display:flex;flex:1 1 auto;align-items:center;flex-wrap:wrap;min-width:0;float:none;padding:0;margin:0;width:auto}.selected-list .c-list .c-token{list-style:none;padding:0 5px;background:#0079fe;color:#fff;border-radius:2px;margin-right:4px;margin-top:2px;float:left}.selected-list .c-list .c-token .c-label{display:block;float:left}.selected-list .c-list .c-token .fa-remove{margin-left:1px;font-size:12px}.selected-list .fa-angle-down,.selected-list .fa-angle-up{font-size:15pt;position:absolute;right:10px;top:50%;transform:translateY(-50%)}.selected-list .countplaceholder{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;align-self:center;margin:0 0 0 6px;line-height:1}.selected-list .c-btn{box-sizing:border-box;width:100%;box-shadow:0 1px 5px #959595;padding:10px 36px 10px 10px;cursor:pointer;display:flex;align-items:center;flex-wrap:nowrap;position:relative}.dropdown-list{position:absolute;padding-top:14px;width:100%;z-index:9999}.dropdown-list ul{padding:0;list-style:none;overflow:auto;margin:0}.dropdown-list ul li{padding:10px;cursor:pointer;text-align:left}.dropdown-list ul li:first-child{padding-top:10px}.dropdown-list ul li:last-child{padding-bottom:10px}.dropdown-list ul li:hover{background:#f5f5f5}.dropdown-list ::-webkit-scrollbar{width:8px}.dropdown-list ::-webkit-scrollbar-thumb{background:#ccc;border-radius:5px}.dropdown-list ::-webkit-scrollbar-track{background:#f2f2f2}.arrow-up{width:0;height:0;border-left:13px solid transparent;border-right:13px solid transparent;border-bottom:15px solid #fff;margin-left:15px;position:absolute;top:0}.arrow-2{border-bottom:15px solid #ccc;top:-1px}.list-area{border:1px solid #ccc;border-radius:3px;background:#fff;margin:0;box-shadow:0 1px 5px #959595}.select-all{padding:10px;border-bottom:1px solid #ccc;text-align:left}.list-filter{border-bottom:1px solid #ccc;position:relative}.list-filter input{border:0px;width:100%;height:35px;padding:0 0 0 35px}.list-filter input:focus{outline:none}.list-filter .fa{position:absolute;top:10px;left:13px;color:#888}.pure-checkbox input[type=checkbox]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.pure-checkbox input[type=checkbox]:focus+label:before,.pure-checkbox input[type=checkbox]:hover+label:before{border-color:#0079fe;background-color:#f2f2f2}.pure-checkbox input[type=checkbox]:active+label:before{transition-duration:0s}.pure-checkbox input[type=checkbox]+label{position:relative;padding-left:2em;vertical-align:middle;-webkit-user-select:none;user-select:none;cursor:pointer;margin:0;color:#000;font-weight:300}.pure-checkbox input[type=checkbox]+label:before{box-sizing:content-box;content:\"\";color:#0079fe;position:absolute;top:50%;left:0;width:14px;height:14px;margin-top:-9px;border:2px solid #0079FE;text-align:center;transition:all .4s ease}.pure-checkbox input[type=checkbox]+label:after{box-sizing:content-box;content:\"\";background-color:#0079fe;position:absolute;top:50%;left:4px;width:10px;height:10px;margin-top:-5px;transform:scale(0);transform-origin:50%;transition:transform .2s ease-out}.pure-checkbox input[type=checkbox]:disabled+label:before{border-color:#ccc}.pure-checkbox input[type=checkbox]:disabled:focus+label:before .pure-checkbox input[type=checkbox]:disabled:hover+label:before{background-color:inherit}.pure-checkbox input[type=checkbox]:disabled:checked+label:before{background-color:#ccc}.pure-checkbox input[type=checkbox]+label:after{background-color:transparent;top:50%;left:4px;width:8px;height:3px;margin-top:-4px;border-style:solid;border-color:#fff;border-width:0 0 3px 3px;border-image:none;transform:rotate(-45deg) scale(0)}.pure-checkbox input[type=checkbox]:checked+label:after{content:\"\";transform:rotate(-45deg) scale(1);transition:transform .2s ease-out}.pure-checkbox input[type=radio]:checked+label:before{background-color:#fff}.pure-checkbox input[type=radio]:checked+label:after{transform:scale(1)}.pure-checkbox input[type=radio]+label:before{border-radius:50%}.pure-checkbox input[type=checkbox]:checked+label:before{background:#0079fe}.pure-checkbox input[type=checkbox]:checked+label:after{transform:rotate(-45deg) scale(1)}.list-message{text-align:center}.list-grp{padding:0 15px!important}.list-grp h4{text-transform:capitalize;margin:15px 0 0;font-size:14px;font-weight:700}.list-grp>li{padding-left:15px!important}.stackline-dropdown.theme-material,.stackline-dropdown.theme-dark,.stackline-dropdown.theme-custom{--ms-primary: #3f51b5;--ms-primary-soft: rgba(63, 81, 181, .12);--ms-surface: #ffffff;--ms-surface-soft: #f5f7fb;--ms-surface-muted: #e8eaf6;--ms-outline: #c5cae9;--ms-outline-strong: #7986cb;--ms-on-surface: #212121;--ms-on-surface-muted: #5f6368;--ms-chip-bg: #e8eaf6;--ms-chip-text: #303f9f;--ms-chip-remove: #303f9f;--ms-divider: rgba(125, 119, 134, .16);--ms-section-bg: rgba(247, 242, 250, .76);--ms-selected-text: var(--ms-primary);--ms-shadow: 0 1px 2px rgba(33, 33, 33, .16), 0 12px 32px rgba(63, 81, 181, .12);--ms-shadow-soft: 0 1px 2px rgba(33, 33, 33, .12), 0 4px 12px rgba(33, 33, 33, .08);display:block;width:100%;color:var(--ms-on-surface);font:inherit}.stackline-dropdown.theme-dark{--ms-primary: #8ab4f8;--ms-primary-soft: rgba(138, 180, 248, .18);--ms-surface: #151a23;--ms-surface-soft: #202736;--ms-surface-muted: #111722;--ms-outline: #384456;--ms-outline-strong: #8ab4f8;--ms-on-surface: #edf2f7;--ms-on-surface-muted: #aab6c5;--ms-chip-bg: #263247;--ms-chip-text: #d7e6ff;--ms-chip-remove: #d7e6ff;--ms-divider: rgba(170, 182, 197, .18);--ms-section-bg: #101620;--ms-selected-text: #d7e6ff;--ms-shadow: 0 20px 50px rgba(0, 0, 0, .42);--ms-shadow-soft: 0 1px 2px rgba(0, 0, 0, .45), 0 10px 24px rgba(0, 0, 0, .28)}.stackline-dropdown.theme-custom{--ms-primary: var(--stackline-ms-primary, #0f766e);--ms-primary-soft: var(--stackline-ms-primary-soft, rgba(15, 118, 110, .14));--ms-surface: var(--stackline-ms-surface, #ffffff);--ms-surface-soft: var(--stackline-ms-surface-soft, #ecfdf5);--ms-surface-muted: var(--stackline-ms-surface-muted, #d1fae5);--ms-outline: var(--stackline-ms-outline, #99f6e4);--ms-outline-strong: var(--stackline-ms-outline-strong, #0f766e);--ms-on-surface: var(--stackline-ms-on-surface, #102a2a);--ms-on-surface-muted: var(--stackline-ms-on-surface-muted, #47615f);--ms-chip-bg: var(--stackline-ms-chip-bg, #ccfbf1);--ms-chip-text: var(--stackline-ms-chip-text, #115e59);--ms-chip-remove: var(--stackline-ms-chip-remove, #115e59);--ms-divider: var(--stackline-ms-divider, rgba(15, 118, 110, .16));--ms-section-bg: var(--stackline-ms-section-bg, #f0fdfa);--ms-selected-text: var(--stackline-ms-selected-text, var(--ms-primary));--ms-shadow: var(--stackline-ms-shadow, 0 18px 42px rgba(15, 118, 110, .15));--ms-shadow-soft: var(--stackline-ms-shadow-soft, 0 1px 2px rgba(15, 118, 110, .16), 0 8px 18px rgba(15, 118, 110, .09))}.stackline-dropdown.theme-material .selected-list,.stackline-dropdown.theme-dark .selected-list,.stackline-dropdown.theme-custom .selected-list{width:100%}.stackline-dropdown.theme-material .selected-list .c-btn,.stackline-dropdown.theme-dark .selected-list .c-btn,.stackline-dropdown.theme-custom .selected-list .c-btn{position:relative;display:flex;align-items:center;flex-wrap:nowrap;gap:8px;width:100%;min-height:56px;padding:11px 54px 11px 16px;border-radius:18px;border:1px solid var(--ms-outline);background:var(--ms-surface);box-shadow:var(--ms-shadow-soft);color:var(--ms-on-surface);cursor:pointer;font-size:inherit;line-height:1.45;transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease,transform .16s ease}.stackline-dropdown.theme-material .selected-list .c-btn:hover,.stackline-dropdown.theme-dark .selected-list .c-btn:hover,.stackline-dropdown.theme-custom .selected-list .c-btn:hover{border-color:var(--ms-outline-strong)}.stackline-dropdown.theme-material .selected-list .c-btn.disabled,.stackline-dropdown.theme-dark .selected-list .c-btn.disabled,.stackline-dropdown.theme-custom .selected-list .c-btn.disabled{background:var(--ms-surface);cursor:not-allowed;opacity:.72}.stackline-dropdown.theme-material .selected-list .c-list,.stackline-dropdown.theme-dark .selected-list .c-list,.stackline-dropdown.theme-custom .selected-list .c-list{display:flex;flex:1 1 auto;flex-wrap:wrap;gap:8px;width:auto;min-width:0;margin:0;padding:0;float:none}.stackline-dropdown.theme-material .selected-list .c-list .c-token,.stackline-dropdown.theme-dark .selected-list .c-list .c-token,.stackline-dropdown.theme-custom .selected-list .c-list .c-token{position:relative;display:inline-block;vertical-align:middle;min-height:32px;max-width:100%;padding:6px 30px 6px 12px;background:var(--ms-chip-bg);color:var(--ms-chip-text);border-radius:999px;box-shadow:inset 0 0 0 1px #6750a414;line-height:1.35;white-space:normal;overflow-wrap:anywhere;margin:0;float:none}.stackline-dropdown.theme-material .selected-list .c-list .c-token .c-label,.stackline-dropdown.theme-dark .selected-list .c-list .c-token .c-label,.stackline-dropdown.theme-custom .selected-list .c-list .c-token .c-label{display:inline-flex;align-items:center;float:none;min-width:0;max-width:100%;line-height:1.3;font-weight:500;white-space:normal;overflow-wrap:anywhere}.stackline-dropdown.theme-material .selected-list .c-list .c-token .fa-remove,.stackline-dropdown.theme-dark .selected-list .c-list .c-token .fa-remove,.stackline-dropdown.theme-custom .selected-list .c-list .c-token .fa-remove{position:absolute;right:10px;top:50%;display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-left:0;transform:translateY(-50%);color:var(--ms-chip-remove);cursor:pointer}.stackline-dropdown.theme-material .selected-list .countplaceholder,.stackline-dropdown.theme-dark .selected-list .countplaceholder,.stackline-dropdown.theme-custom .selected-list .countplaceholder{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;align-self:center;margin:0;line-height:1;color:var(--ms-on-surface-muted);font-size:.8rem;font-weight:600}.stackline-dropdown.theme-material .selected-list .fa-angle-down,.stackline-dropdown.theme-dark .selected-list .fa-angle-down,.stackline-dropdown.theme-custom .selected-list .fa-angle-down,.stackline-dropdown.theme-material .selected-list .fa-angle-up,.stackline-dropdown.theme-dark .selected-list .fa-angle-up,.stackline-dropdown.theme-custom .selected-list .fa-angle-up{position:absolute;top:50%;right:16px;display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;transform:translateY(-50%);color:var(--ms-on-surface-muted);font-size:15pt;pointer-events:none}.stackline-dropdown.theme-material .dropdown-list,.stackline-dropdown.theme-dark .dropdown-list,.stackline-dropdown.theme-custom .dropdown-list{position:absolute;width:100%;padding-top:8px;z-index:99999}.stackline-dropdown.theme-material .arrow-up,.stackline-dropdown.theme-dark .arrow-up,.stackline-dropdown.theme-custom .arrow-up,.stackline-dropdown.theme-material .arrow-down,.stackline-dropdown.theme-dark .arrow-down,.stackline-dropdown.theme-custom .arrow-down,.stackline-dropdown.theme-material .arrow-2,.stackline-dropdown.theme-dark .arrow-2,.stackline-dropdown.theme-custom .arrow-2{display:none}.stackline-dropdown.theme-material .list-area,.stackline-dropdown.theme-dark .list-area,.stackline-dropdown.theme-custom .list-area{overflow:hidden;border-radius:22px;background:var(--ms-surface);border:1px solid var(--ms-outline);box-shadow:var(--ms-shadow);margin:0}.stackline-dropdown.theme-material .select-all,.stackline-dropdown.theme-dark .select-all,.stackline-dropdown.theme-custom .select-all{padding:10px 14px;border-bottom:1px solid var(--ms-divider);background:var(--ms-section-bg);text-align:left}.stackline-dropdown.theme-material .list-filter,.stackline-dropdown.theme-dark .list-filter,.stackline-dropdown.theme-custom .list-filter{position:relative;display:flex;align-items:center;min-height:52px;padding-left:48px;padding-right:44px;border-bottom:1px solid var(--ms-divider);background:var(--ms-surface)}.stackline-dropdown.theme-material .list-filter input,.stackline-dropdown.theme-dark .list-filter input,.stackline-dropdown.theme-custom .list-filter input{width:100%;height:100%;border:0;background:transparent;color:var(--ms-on-surface);font:inherit;padding:0}.stackline-dropdown.theme-material .list-filter input::placeholder,.stackline-dropdown.theme-dark .list-filter input::placeholder,.stackline-dropdown.theme-custom .list-filter input::placeholder{color:var(--ms-on-surface-muted)}.stackline-dropdown.theme-material .list-filter input:focus,.stackline-dropdown.theme-dark .list-filter input:focus,.stackline-dropdown.theme-custom .list-filter input:focus{outline:none}.stackline-dropdown.theme-material .list-filter .fa,.stackline-dropdown.theme-dark .list-filter .fa,.stackline-dropdown.theme-custom .list-filter .fa{position:absolute;top:50%;left:16px;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;transform:translateY(-50%);color:var(--ms-on-surface-muted)}.stackline-dropdown.theme-material .dropdown-list ul,.stackline-dropdown.theme-dark .dropdown-list ul,.stackline-dropdown.theme-custom .dropdown-list ul{list-style:none;margin:0;padding:8px;overflow:auto}.stackline-dropdown.theme-material .dropdown-list ul li,.stackline-dropdown.theme-dark .dropdown-list ul li,.stackline-dropdown.theme-custom .dropdown-list ul li{align-items:center;min-height:0;margin:4px;padding:12px 14px;border-radius:14px;cursor:pointer;text-align:left;line-height:1.35;transition:background-color .16s ease,color .16s ease}.stackline-dropdown.theme-material .dropdown-list ul li:first-child,.stackline-dropdown.theme-dark .dropdown-list ul li:first-child,.stackline-dropdown.theme-custom .dropdown-list ul li:first-child{padding-top:12px}.stackline-dropdown.theme-material .dropdown-list ul li:last-child,.stackline-dropdown.theme-dark .dropdown-list ul li:last-child,.stackline-dropdown.theme-custom .dropdown-list ul li:last-child{padding-bottom:12px}.stackline-dropdown.theme-material .dropdown-list ul li:hover,.stackline-dropdown.theme-dark .dropdown-list ul li:hover,.stackline-dropdown.theme-custom .dropdown-list ul li:hover{background:var(--ms-surface-soft)}.stackline-dropdown.theme-material .pure-checkbox,.stackline-dropdown.theme-dark .pure-checkbox,.stackline-dropdown.theme-custom .pure-checkbox{position:relative}.stackline-dropdown.theme-material .pure-checkbox input[type=checkbox]+label,.stackline-dropdown.theme-dark .pure-checkbox input[type=checkbox]+label,.stackline-dropdown.theme-custom .pure-checkbox input[type=checkbox]+label{position:relative;display:block;width:100%;margin:0;padding-left:32px;color:inherit;cursor:pointer;font-weight:500;-webkit-user-select:none;user-select:none}.stackline-dropdown.theme-material .pure-checkbox input[type=checkbox]+label:before,.stackline-dropdown.theme-dark .pure-checkbox input[type=checkbox]+label:before,.stackline-dropdown.theme-custom .pure-checkbox input[type=checkbox]+label:before{box-sizing:content-box;content:\"\";position:absolute;top:50%;left:0;width:16px;height:16px;margin-top:-10px;border:2px solid var(--ms-outline-strong);border-radius:5px;background:var(--ms-surface);transition:border-color .16s ease,background-color .16s ease,box-shadow .16s ease}.stackline-dropdown.theme-material .pure-checkbox input[type=checkbox]+label:after,.stackline-dropdown.theme-dark .pure-checkbox input[type=checkbox]+label:after,.stackline-dropdown.theme-custom .pure-checkbox input[type=checkbox]+label:after{box-sizing:content-box;content:\"\";position:absolute;top:50%;left:5px;width:8px;height:3px;margin-top:-4px;border-style:solid;border-color:#fff;border-width:0 0 3px 3px;border-image:none;background:transparent;transform:rotate(-45deg) scale(0);transform-origin:50%;transition:transform .16s ease}.stackline-dropdown.theme-material .pure-checkbox input[type=checkbox]:focus+label:before,.stackline-dropdown.theme-dark .pure-checkbox input[type=checkbox]:focus+label:before,.stackline-dropdown.theme-custom .pure-checkbox input[type=checkbox]:focus+label:before,.stackline-dropdown.theme-material .pure-checkbox input[type=checkbox]:hover+label:before,.stackline-dropdown.theme-dark .pure-checkbox input[type=checkbox]:hover+label:before,.stackline-dropdown.theme-custom .pure-checkbox input[type=checkbox]:hover+label:before{border-color:var(--ms-primary);background:var(--ms-surface-soft)}.stackline-dropdown.theme-material .pure-checkbox input[type=checkbox]:checked+label:before,.stackline-dropdown.theme-dark .pure-checkbox input[type=checkbox]:checked+label:before,.stackline-dropdown.theme-custom .pure-checkbox input[type=checkbox]:checked+label:before{border-color:var(--ms-primary);background:var(--ms-primary)}.stackline-dropdown.theme-material .pure-checkbox input[type=checkbox]:checked+label:after,.stackline-dropdown.theme-dark .pure-checkbox input[type=checkbox]:checked+label:after,.stackline-dropdown.theme-custom .pure-checkbox input[type=checkbox]:checked+label:after{transform:rotate(-45deg) scale(1)}.stackline-dropdown.theme-material .list-message,.stackline-dropdown.theme-dark .list-message,.stackline-dropdown.theme-custom .list-message{margin:0;padding:20px 14px;color:var(--ms-on-surface-muted);text-align:center}\n"] }]
366
- }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { data: [{
366
+ }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { data: [{
367
367
  type: Input
368
368
  }], settings: [{
369
369
  type: Input
@@ -396,11 +396,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
396
396
  args: ['searchInput', { static: false }]
397
397
  }] } });
398
398
  export class AngularMultiSelectModule {
399
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AngularMultiSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
400
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: AngularMultiSelectModule, declarations: [AngularMultiSelect, ClickOutsideDirective, ScrollDirective, styleDirective, ListFilterPipe, Item, TemplateRenderer, Badge], imports: [CommonModule, FormsModule], exports: [AngularMultiSelect, ClickOutsideDirective, ScrollDirective, styleDirective, ListFilterPipe, Item, TemplateRenderer, Badge] });
401
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AngularMultiSelectModule, imports: [CommonModule, FormsModule] });
399
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AngularMultiSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
400
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: AngularMultiSelectModule, declarations: [AngularMultiSelect, ClickOutsideDirective, ScrollDirective, styleDirective, ListFilterPipe, Item, TemplateRenderer, Badge], imports: [CommonModule, FormsModule], exports: [AngularMultiSelect, ClickOutsideDirective, ScrollDirective, styleDirective, ListFilterPipe, Item, TemplateRenderer, Badge] });
401
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AngularMultiSelectModule, imports: [CommonModule, FormsModule] });
402
402
  }
403
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AngularMultiSelectModule, decorators: [{
403
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AngularMultiSelectModule, decorators: [{
404
404
  type: NgModule,
405
405
  args: [{
406
406
  imports: [CommonModule, FormsModule],
@@ -408,4 +408,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
408
408
  exports: [AngularMultiSelect, ClickOutsideDirective, ScrollDirective, styleDirective, ListFilterPipe, Item, TemplateRenderer, Badge]
409
409
  }]
410
410
  }] });
411
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlzZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9tdWx0aXNlbGVjdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxRQUFRLEVBQStDLFlBQVksRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFrRCxNQUFNLGVBQWUsQ0FBQztBQUMzTixPQUFPLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUF3QixhQUFhLEVBQTBCLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0gsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBWSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUU1RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7QUFFNUQsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQVE7SUFDaEQsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixDQUFDO0lBQ2pELEtBQUssRUFBRSxJQUFJO0NBQ2QsQ0FBQztBQUNGLE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFRO0lBQzVDLE9BQU8sRUFBRSxhQUFhO0lBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsa0JBQWtCLENBQUM7SUFDakQsS0FBSyxFQUFFLElBQUk7Q0FDZCxDQUFBO0FBQ0QsTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFO0FBQ2xCLENBQUMsQ0FB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TW9kdWxlLCBTaW1wbGVDaGFuZ2VzLCBPbkNoYW5nZXMsIFZpZXdFbmNhcHN1bGF0aW9uLCBDb250ZW50Q2hpbGQsIFZpZXdDaGlsZCwgZm9yd2FyZFJlZiwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBFbGVtZW50UmVmLCBBZnRlclZpZXdJbml0LCBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgTkdfVkFMVUVfQUNDRVNTT1IsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxJREFUT1JTLCBWYWxpZGF0b3IsIEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IExpc3RJdGVtLCBNeUV4Y2VwdGlvbiB9IGZyb20gJy4vbXVsdGlzZWxlY3QubW9kZWwnO1xuaW1wb3J0IHsgRHJvcGRvd25TZXR0aW5ncyB9IGZyb20gJy4vbXVsdGlzZWxlY3QuaW50ZXJmYWNlJztcbmltcG9ydCB7IENsaWNrT3V0c2lkZURpcmVjdGl2ZSwgU2Nyb2xsRGlyZWN0aXZlLCBzdHlsZURpcmVjdGl2ZSB9IGZyb20gJy4vY2xpY2tPdXRzaWRlJztcbmltcG9ydCB7IExpc3RGaWx0ZXJQaXBlIH0gZnJvbSAnLi9saXN0LWZpbHRlcic7XG5pbXBvcnQgeyBJdGVtLCBCYWRnZSwgVGVtcGxhdGVSZW5kZXJlciB9IGZyb20gJy4vbWVudS1pdGVtJztcblxuZXhwb3J0IGNvbnN0IERST1BET1dOX0NPTlRST0xfVkFMVUVfQUNDRVNTT1I6IGFueSA9IHtcbiAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBbmd1bGFyTXVsdGlTZWxlY3QpLFxuICAgIG11bHRpOiB0cnVlXG59O1xuZXhwb3J0IGNvbnN0IERST1BET1dOX0NPTlRST0xfVkFMSURBVElPTjogYW55ID0ge1xuICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQW5ndWxhck11bHRpU2VsZWN0KSxcbiAgICBtdWx0aTogdHJ1ZSxcbn1cbmNvbnN0IG5vb3AgPSAoKSA9PiB7XG59O1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FuZ3VsYXItbXVsdGlzZWxlY3QsIGFuZ3VsYXIyLW11bHRpc2VsZWN0JyxcbiAgICB0ZW1wbGF0ZTogXCI8ZGl2IGNsYXNzPVxcXCJzdGFja2xpbmUtZHJvcGRvd25cXFwiIFtuZ0NsYXNzXT1cXFwiZ2V0RHJvcGRvd25DbGFzc2VzKClcXFwiIChjbGlja091dHNpZGUpPVxcXCJjbG9zZURyb3Bkb3duKClcXFwiPlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJzZWxlY3RlZC1saXN0XFxcIj5cXG4gICAgICAgIDxkaXYgY2xhc3M9XFxcImMtYnRuXFxcIiAoY2xpY2spPVxcXCJ0b2dnbGVEcm9wZG93bigkZXZlbnQpXFxcIiBbbmdDbGFzc109XFxcInsnZGlzYWJsZWQnOiBzZXR0aW5ncy5kaXNhYmxlZH1cXFwiPlxcbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVxcXCJzZWxlY3RlZEl0ZW1zPy5sZW5ndGggPT0gMFxcXCI+e3tzZXR0aW5ncy50ZXh0fX08L3NwYW4+XFxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XFxcInNldHRpbmdzLnNpbmdsZVNlbGVjdGlvblxcXCI+XFxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0Zvcj1cXFwibGV0IGl0ZW0gb2Ygc2VsZWN0ZWRJdGVtczt0cmFja0J5OiB0cmFja0J5Rm47XFxcIj5cXG4gICAgICAgICAgICAgICAgICAgIHt7aXRlbVtzZXR0aW5ncy5sYWJlbEtleV19fVxcbiAgICAgICAgICAgICAgICA8L3NwYW4+XFxuICAgICAgICAgICAgPC9zcGFuPlxcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XFxcImMtbGlzdFxcXCIgKm5nSWY9XFxcInNlbGVjdGVkSXRlbXM/Lmxlbmd0aCA+IDAgJiYgIXNldHRpbmdzLnNpbmdsZVNlbGVjdGlvblxcXCI+XFxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XFxcImMtdG9rZW5cXFwiICpuZ0Zvcj1cXFwibGV0IGl0ZW0gb2Ygc2VsZWN0ZWRJdGVtczt0cmFja0J5OiB0cmFja0J5Rm47bGV0IGsgPSBpbmRleFxcXCIgW2hpZGRlbl09XFxcImsgPiBzZXR0aW5ncy5iYWRnZVNob3dMaW1pdC0xXFxcIj5cXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVxcXCIhYmFkZ2VUZW1wbFxcXCIgY2xhc3M9XFxcImMtbGFiZWxcXFwiPnt7aXRlbVtzZXR0aW5ncy5sYWJlbEtleV19fTwvc3Bhbj5cXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVxcXCJiYWRnZVRlbXBsXFxcIiBjbGFzcz1cXFwiYy1sYWJlbFxcXCI+XFxuICAgICAgICAgICAgICAgICAgICAgICAgPGMtdGVtcGxhdGVSZW5kZXJlciBbZGF0YV09XFxcImJhZGdlVGVtcGxcXFwiIFtpdGVtXT1cXFwiaXRlbVxcXCI+PC9jLXRlbXBsYXRlUmVuZGVyZXI+XFxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XFxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cXFwiZmEgZmEtcmVtb3ZlXFxcIiAoY2xpY2spPVxcXCJvbkl0ZW1DbGljayhpdGVtLGssJGV2ZW50KVxcXCI+PC9zcGFuPlxcbiAgICAgICAgICAgICAgICA8L2Rpdj5cXG4gICAgICAgICAgICA8L2Rpdj4gXFxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XFxcImNvdW50cGxhY2Vob2xkZXJcXFwiICpuZ0lmPVxcXCJzZWxlY3RlZEl0ZW1zPy5sZW5ndGggPiBzZXR0aW5ncy5iYWRnZVNob3dMaW1pdFxcXCI+K3t7c2VsZWN0ZWRJdGVtcz8ubGVuZ3RoIC0gc2V0dGluZ3MuYmFkZ2VTaG93TGltaXQgfX08L3NwYW4+XFxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XFxcImZhXFxcIiBbbmdDbGFzc109XFxcInsnZmEtYW5nbGUtZG93bic6ICFpc0FjdGl2ZSwnZmEtYW5nbGUtdXAnOmlzQWN0aXZlfVxcXCI+PC9zcGFuPlxcbiAgICAgICAgPC9kaXY+ICAgICAgXFxuICAgIDwvZGl2PlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJkcm9wZG93bi1saXN0XFxcIiBbaGlkZGVuXT1cXFwiIWlzQWN0aXZlXFxcIj5cXG4gICAgPGRpdiBjbGFzcz1cXFwiYXJyb3ctdXAgYXJyb3ctMlxcXCI+PC9kaXY+XFxuICAgIDxkaXYgY2xhc3M9XFxcImFycm93LXVwXFxcIj48L2Rpdj5cXG4gICAgPGRpdiBjbGFzcz1cXFwibGlzdC1hcmVhXFxcIj5cXG4gICAgICAgIDxkaXYgY2xhc3M9XFxcInB1cmUtY2hlY2tib3ggc2VsZWN0LWFsbFxcXCIgKm5nSWY9XFxcInNldHRpbmdzLmVuYWJsZUNoZWNrQWxsICYmICFzZXR0aW5ncy5zaW5nbGVTZWxlY3Rpb24gJiYgIXNldHRpbmdzLmxpbWl0U2VsZWN0aW9uXFxcIiAoY2xpY2spPVxcXCJ0b2dnbGVTZWxlY3RBbGwoKVxcXCI+XFxuICAgICAgICAgICAgPGlucHV0ICpuZ0lmPVxcXCJzZXR0aW5ncy5zaG93Q2hlY2tib3hcXFwiIHR5cGU9XFxcImNoZWNrYm94XFxcIiBbY2hlY2tlZF09XFxcImlzU2VsZWN0QWxsXFxcIiBbZGlzYWJsZWRdPVxcXCJzZXR0aW5ncy5saW1pdFNlbGVjdGlvbiA9PSBzZWxlY3RlZEl0ZW1zPy5sZW5ndGhcXFwiLz5cXG4gICAgICAgICAgICA8bGFiZWw+XFxuICAgICAgICAgICAgICAgIDxzcGFuIFtoaWRkZW5dPVxcXCJpc1NlbGVjdEFsbFxcXCI+e3tzZXR0aW5ncy5zZWxlY3RBbGxUZXh0fX08L3NwYW4+XFxuICAgICAgICAgICAgICAgIDxzcGFuIFtoaWRkZW5dPVxcXCIhaXNTZWxlY3RBbGxcXFwiPnt7c2V0dGluZ3MudW5TZWxlY3RBbGxUZXh0fX08L3NwYW4+XFxuICAgICAgICAgICAgPC9sYWJlbD5cXG4gICAgICAgIDwvZGl2PiAgIFxcbiAgICAgICAgPGRpdiBjbGFzcz1cXFwibGlzdC1maWx0ZXJcXFwiICpuZ0lmPVxcXCJzZXR0aW5ncy5lbmFibGVTZWFyY2hGaWx0ZXIgJiYgIXNldHRpbmdzLmxhenlMb2FkaW5nXFxcIj5cXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cXFwiZmEgZmEtc2VhcmNoXFxcIj48L3NwYW4+XFxuICAgICAgICAgICAgPGlucHV0ICNzZWFyY2hJbnB1dCB0eXBlPVxcXCJ0ZXh0XFxcIiBbcGxhY2Vob2xkZXJdPVxcXCJzZXR0aW5ncy5zZWFyY2hQbGFjZWhvbGRlclRleHRcXFwiIFsobmdNb2RlbCldPVxcXCJmaWx0ZXJcXFwiPlxcbiAgICAgICAgPC9kaXY+IFxcbiAgICAgICAgPGRpdiBjbGFzcz1cXFwibGlzdC1maWx0ZXJcXFwiICpuZ0lmPVxcXCJzZXR0aW5ncy5lbmFibGVTZWFyY2hGaWx0ZXIgJiYgc2V0dGluZ3MubGF6eUxvYWRpbmdcXFwiPlxcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVxcXCJmYSBmYS1zZWFyY2hcXFwiPjwvc3Bhbj5cXG4gICAgICAgICAgICA8aW5wdXQgI3NlYXJjaElucHV0IHR5cGU9XFxcInRleHRcXFwiIFtwbGFjZWhvbGRlcl09XFxcInNldHRpbmdzLnNlYXJjaFBsYWNlaG9sZGVyVGV4dFxcXCIgKGtleXVwKT1cXFwiZmlsdGVySW5maW5pdGVMaXN0KCRldmVudClcXFwiPlxcbiAgICAgICAgPC9kaXY+XFxuICAgIDx1bCAqbmdJZj1cXFwiIXNldHRpbmdzLmdyb3VwQnlcXFwiIFtzdHlsZS5tYXhIZWlnaHRdID0gXFxcInNldHRpbmdzLm1heEhlaWdodCsncHgnXFxcIiBjbGFzcz1cXFwibGF6eUNvbnRhaW5lclxcXCIgPlxcbiAgICAgICAgPHNwYW4gKm5nSWY9XFxcIml0ZW1UZW1wbFxcXCI+XFxuICAgICAgICAgICAgPGxpICpuZ0Zvcj1cXFwibGV0IGl0ZW0gb2YgZGF0YSB8IGxpc3RGaWx0ZXI6ZmlsdGVyOyBsZXQgaSA9IGluZGV4O1xcXCIgKGNsaWNrKT1cXFwib25JdGVtQ2xpY2soaXRlbSxpLCRldmVudClcXFwiIGNsYXNzPVxcXCJwdXJlLWNoZWNrYm94XFxcIj5cXG4gICAgICAgICAgICA8aW5wdXQgKm5nSWY9XFxcInNldHRpbmdzLnNob3dDaGVja2JveFxcXCIgdHlwZT1cXFwiY2hlY2tib3hcXFwiIFtjaGVja2VkXT1cXFwiaXNTZWxlY3RlZChpdGVtKVxcXCIgW2Rpc2FibGVkXT1cXFwic2V0dGluZ3MubGltaXRTZWxlY3Rpb24gPT0gc2VsZWN0ZWRJdGVtcz8ubGVuZ3RoICYmICFpc1NlbGVjdGVkKGl0ZW0pXFxcIi8+XFxuICAgICAgICAgICAgPGxhYmVsPjwvbGFiZWw+XFxuICAgICAgICAgICAgPGMtdGVtcGxhdGVSZW5kZXJlciBbZGF0YV09XFxcIml0ZW1UZW1wbFxcXCIgW2l0ZW1dPVxcXCJpdGVtXFxcIj48L2MtdGVtcGxhdGVSZW5kZXJlcj5cXG4gICAgICAgIDwvbGk+XFxuICAgICAgICA8L3NwYW4+XFxuICAgICAgICA8c3BhbiAqbmdJZj1cXFwiIWl0ZW1UZW1wbCAmJiAhc2V0dGluZ3MubGF6eUxvYWRpbmdcXFwiID5cXG4gICAgICAgIDxsaSAqbmdGb3I9XFxcImxldCBpdGVtIG9mIGRhdGEgfCBsaXN0RmlsdGVyOmZpbHRlcjsgbGV0IGkgPSBpbmRleDtcXFwiIChjbGljayk9XFxcIm9uSXRlbUNsaWNrKGl0ZW0saSwkZXZlbnQpXFxcIiBjbGFzcz1cXFwicHVyZS1jaGVja2JveFxcXCI+XFxuICAgICAgICAgICAgPGlucHV0ICpuZ0lmPVxcXCJzZXR0aW5ncy5zaG93Q2hlY2tib3hcXFwiIHR5cGU9XFxcImNoZWNrYm94XFxcIiBbY2hlY2tlZF09XFxcImlzU2VsZWN0ZWQoaXRlbSlcXFwiIFtkaXNhYmxlZF09XFxcInNldHRpbmdzLmxpbWl0U2VsZWN0aW9uID09IHNlbGVjdGVkSXRlbXM/Lmxlbmd0aCAmJiAhaXNTZWxlY3RlZChpdGVtKVxcXCIvPlxcbiAgICAgICAgICAgIDxsYWJlbD57e2l0ZW1bc2V0dGluZ3MubGFiZWxLZXldfX08L2xhYmVsPlxcbiAgICAgICAgPC9saT5cXG4gICAgICAgIDwvc3Bhbj5cXG4gICAgICAgIDxzcGFuICpuZ0lmPVxcXCIhaXRlbVRlbXBsICYmIHNldHRpbmdzLmxhenlMb2FkaW5nXFxcIiA+XFxuICAgICAgICAgICAgPGRpdiBbbmdTdHlsZV09XFxcInsnaGVpZ2h0Jzp0b3RhbEhlaWdodCsncHgnfVxcXCIgc3R5bGU9XFxcInBvc2l0aW9uOiByZWxhdGl2ZTtcXFwiPlxcblxcbiAgICAgICAgICAgIFxcbiAgICAgICAgPGxpICpuZ0Zvcj1cXFwibGV0IGl0ZW0gb2YgY2h1bmtBcnJheSB8IGxpc3RGaWx0ZXI6ZmlsdGVyOyBsZXQgaSA9IGluZGV4O1xcXCIgKGNsaWNrKT1cXFwib25JdGVtQ2xpY2soaXRlbSxpLCRldmVudClcXFwiIHN0eWxlPVxcXCJwb3NpdGlvbjogYWJzb2x1dGU7d2lkdGg6IDEwMCU7XFxcIiBjbGFzcz1cXFwicHVyZS1jaGVja2JveFxcXCIgW3N0eWxlUHJvcF09XFxcImNodW5rSW5kZXhbaV1cXFwiPlxcbiAgICAgICAgICAgIDxpbnB1dCAqbmdJZj1cXFwic2V0dGluZ3Muc2hvd0NoZWNrYm94XFxcIiB0eXBlPVxcXCJjaGVja2JveFxcXCIgW2NoZWNrZWRdPVxcXCJpc1NlbGVjdGVkKGl0ZW0pXFxcIiBbZGlzYWJsZWRdPVxcXCJzZXR0aW5ncy5saW1pdFNlbGVjdGlvbiA9PSBzZWxlY3RlZEl0ZW1zPy5sZW5ndGggJiYgIWlzU2VsZWN0ZWQoaXRlbSlcXFwiLz5cXG4gICAgICAgICAgICA8bGFiZWw+e3tpdGVtW3NldHRpbmdzLmxhYmVsS2V5XX19PC9sYWJlbD5cXG4gICAgICAgIDwvbGk+XFxuICAgICAgICA8L2Rpdj5cXG4gICAgICAgIDwvc3Bhbj5cXG4gICAgPC91bD5cXG4gICAgPGRpdiAqbmdJZj1cXFwic2V0dGluZ3MuZ3JvdXBCeVxcXCIgW3N0eWxlLm1heEhlaWdodF0gPSBcXFwic2V0dGluZ3MubWF4SGVpZ2h0KydweCdcXFwiIHN0eWxlPVxcXCJvdmVyZmxvdzogYXV0bztcXFwiPlxcbiAgICA8dWwgKm5nRm9yPVxcXCJsZXQgb2JqIG9mIGdyb3VwZWREYXRhIDsgbGV0IGkgPSBpbmRleDtcXFwiIGNsYXNzPVxcXCJsaXN0LWdycFxcXCI+XFxuICAgICAgICA8aDQgKm5nSWY9XFxcIihvYmoudmFsdWUgfCBsaXN0RmlsdGVyOmZpbHRlciApLmxlbmd0aCA+IDBcXFwiPnt7b2JqLmtleX19PC9oND5cXG4gICAgICAgIDxzcGFuICpuZ0lmPVxcXCJpdGVtVGVtcGxcXFwiID5cXG4gICAgICAgIDxsaSAqbmdGb3I9XFxcImxldCBpdGVtIG9mIG9iai52YWx1ZSB8IGxpc3RGaWx0ZXI6ZmlsdGVyOyBsZXQgaSA9IGluZGV4O1xcXCIgKGNsaWNrKT1cXFwib25JdGVtQ2xpY2soaXRlbSxpLCRldmVudClcXFwiIGNsYXNzPVxcXCJwdXJlLWNoZWNrYm94XFxcIj5cXG4gICAgICAgICAgICA8aW5wdXQgKm5nSWY9XFxcInNldHRpbmdzLnNob3dDaGVja2JveFxcXCIgdHlwZT1cXFwiY2hlY2tib3hcXFwiIFtjaGVja2VkXT1cXFwiaXNTZWxlY3RlZChpdGVtKVxcXCIgW2Rpc2FibGVkXT1cXFwic2V0dGluZ3MubGltaXRTZWxlY3Rpb24gPT0gc2VsZWN0ZWRJdGVtcz8ubGVuZ3RoICYmICFpc1NlbGVjdGVkKGl0ZW0pXFxcIi8+XFxuICAgICAgICAgICAgPGxhYmVsPjwvbGFiZWw+XFxuICAgICAgICAgICAgPGMtdGVtcGxhdGVSZW5kZXJlciBbZGF0YV09XFxcIml0ZW1UZW1wbFxcXCIgW2l0ZW1dPVxcXCJpdGVtXFxcIj48L2MtdGVtcGxhdGVSZW5kZXJlcj5cXG4gICAgICAgIDwvbGk+XFxuICAgICAgICA8L3NwYW4+XFxuICAgICAgICA8c3BhbiAqbmdJZj1cXFwiIWl0ZW1UZW1wbFxcXCIgPlxcbiAgICAgICAgPGxpICpuZ0Zvcj1cXFwibGV0IGl0ZW0gb2Ygb2JqLnZhbHVlIHwgbGlzdEZpbHRlcjpmaWx0ZXI7IGxldCBpID0gaW5kZXg7XFxcIiAoY2xpY2spPVxcXCJvbkl0ZW1DbGljayhpdGVtLGksJGV2ZW50KVxcXCIgY2xhc3M9XFxcInB1cmUtY2hlY2tib3hcXFwiPlxcbiAgICAgICAgICAgIDxpbnB1dCAqbmdJZj1cXFwic2V0dGluZ3Muc2hvd0NoZWNrYm94XFxcIiB0eXBlPVxcXCJjaGVja2JveFxcXCIgW2NoZWNrZWRdPVxcXCJpc1NlbGVjdGVkKGl0ZW0pXFxcIiBbZGlzYWJsZWRdPVxcXCJzZXR0aW5ncy5saW1pdFNlbGVjdGlvbiA9PSBzZWxlY3RlZEl0ZW1zPy5sZW5ndGggJiYgIWlzU2VsZWN0ZWQoaXRlbSlcXFwiLz5cXG4gICAgICAgICAgICA8bGFiZWw+e3tpdGVtW3NldHRpbmdzLmxhYmVsS2V5XX19PC9sYWJlbD5cXG4gICAgICAgIDwvbGk+XFxuICAgICAgICA8L3NwYW4+XFxuICAgIDwvdWw+XFxuICAgIDwvZGl2PlxcbiAgICA8aDUgY2xhc3M9XFxcImxpc3QtbWVzc2FnZVxcXCIgKm5nSWY9XFxcImRhdGE/Lmxlbmd0aCA9PSAwXFxcIj57e3NldHRpbmdzLm5vRGF0YUxhYmVsfX08L2g1PlxcbiAgICA8L2Rpdj5cXG4gICAgPC9kaXY+XFxuPC9kaXY+XFxuXCIsXG4gICAgaG9zdDogeyAnW2NsYXNzXSc6ICdkZWZhdWx0U2V0dGluZ3MuY2xhc3NlcycgfSxcbiAgICBzdHlsZXM6IFtcIi5zdGFja2xpbmUtZHJvcGRvd24ge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbn1cXG5cXG4uYy1idG4ge1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgYmFja2dyb3VuZDogI2ZmZjtcXG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XFxuICBib3JkZXItcmFkaXVzOiAzcHg7XFxuICBmb250LXNpemU6IDE0cHg7XFxuICBjb2xvcjogIzMzMztcXG59XFxuXFxuLmMtYnRuLmRpc2FibGVkIHtcXG4gIGJhY2tncm91bmQ6ICNjY2M7XFxufVxcblxcbi5jLWJ0bjpmb2N1cyB7XFxuICBvdXRsaW5lOiBub25lO1xcbn1cXG5cXG4uc2VsZWN0ZWQtbGlzdCAuYy1saXN0IHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBmbGV4OiAxIDEgYXV0bztcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBmbGV4LXdyYXA6IHdyYXA7XFxuICBtaW4td2lkdGg6IDA7XFxuICBmbG9hdDogbm9uZTtcXG4gIHBhZGRpbmc6IDBweDtcXG4gIG1hcmdpbjogMHB4O1xcbiAgd2lkdGg6IGF1dG87XFxufVxcbi5zZWxlY3RlZC1saXN0IC5jLWxpc3QgLmMtdG9rZW4ge1xcbiAgbGlzdC1zdHlsZTogbm9uZTtcXG4gIHBhZGRpbmc6IDBweCA1cHg7XFxuICBiYWNrZ3JvdW5kOiAjMDA3OUZFO1xcbiAgY29sb3I6ICNmZmY7XFxuICBib3JkZXItcmFkaXVzOiAycHg7XFxuICBtYXJnaW4tcmlnaHQ6IDRweDtcXG4gIG1hcmdpbi10b3A6IDJweDtcXG4gIGZsb2F0OiBsZWZ0O1xcbn1cXG4uc2VsZWN0ZWQtbGlzdCAuYy1saXN0IC5jLXRva2VuIC5jLWxhYmVsIHtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgZmxvYXQ6IGxlZnQ7XFxuICAvKndpZHRoOiA1MHB4O1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjsqL1xcbn1cXG4uc2VsZWN0ZWQtbGlzdCAuYy1saXN0IC5jLXRva2VuIC5mYS1yZW1vdmUge1xcbiAgbWFyZ2luLWxlZnQ6IDFweDtcXG4gIGZvbnQtc2l6ZTogMTJweDtcXG59XFxuLnNlbGVjdGVkLWxpc3QgLmZhLWFuZ2xlLWRvd24sIC5zZWxlY3RlZC1saXN0IC5mYS1hbmdsZS11cCB7XFxuICBmb250LXNpemU6IDE1cHQ7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICByaWdodDogMTBweDtcXG4gIHRvcDogNTAlO1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xcbn1cXG4uc2VsZWN0ZWQtbGlzdCAuY291bnRwbGFjZWhvbGRlciB7XFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcXG4gIGZsZXg6IDAgMCBhdXRvO1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xcbiAgbWFyZ2luOiAwIDAgMCA2cHg7XFxuICBsaW5lLWhlaWdodDogMTtcXG59XFxuLnNlbGVjdGVkLWxpc3QgLmMtYnRuIHtcXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICB3aWR0aDogMTAwJTtcXG4gIGJveC1zaGFkb3c6IDBweCAxcHggNXB4ICM5NTk1OTU7XFxuICBwYWRkaW5nOiAxMHB4IDM2cHggMTBweCAxMHB4O1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbiAgZGlzcGxheTogZmxleDtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBmbGV4LXdyYXA6IG5vd3JhcDtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG59XFxuXFxuLmRyb3Bkb3duLWxpc3Qge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgcGFkZGluZy10b3A6IDE0cHg7XFxuICB3aWR0aDogMTAwJTtcXG4gIHotaW5kZXg6IDk5OTk7XFxufVxcbi5kcm9wZG93bi1saXN0IHVsIHtcXG4gIHBhZGRpbmc6IDBweDtcXG4gIGxpc3Qtc3R5bGU6IG5vbmU7XFxuICBvdmVyZmxvdzogYXV0bztcXG4gIG1hcmdpbjogMHB4O1xcbn1cXG4uZHJvcGRvd24tbGlzdCB1bCBsaSB7XFxuICBwYWRkaW5nOiAxMHB4IDEwcHg7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxuICB0ZXh0LWFsaWduOiBsZWZ0O1xcbn1cXG4uZHJvcGRvd24tbGlzdCB1bCBsaTpmaXJzdC1jaGlsZCB7XFxuICBwYWRkaW5nLXRvcDogMTBweDtcXG59XFxuLmRyb3Bkb3duLWxpc3QgdWwgbGk6bGFzdC1jaGlsZCB7XFxuICBwYWRkaW5nLWJvdHRvbTogMTBweDtcXG59XFxuLmRyb3Bkb3duLWxpc3QgdWwgbGk6aG92ZXIge1xcbiAgYmFja2dyb3VuZDogI2Y1ZjVmNTtcXG59XFxuLmRyb3Bkb3duLWxpc3QgOjotd2Via2l0LXNjcm9sbGJhciB7XFxuICB3aWR0aDogOHB4O1xcbn1cXG4uZHJvcGRvd24tbGlzdCA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcXG4gIGJhY2tncm91bmQ6ICNjY2NjY2M7XFxuICBib3JkZXItcmFkaXVzOiA1cHg7XFxufVxcbi5kcm9wZG93bi1saXN0IDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xcbiAgYmFja2dyb3VuZDogI2YyZjJmMjtcXG59XFxuXFxuLmFycm93LXVwIHtcXG4gIHdpZHRoOiAwO1xcbiAgaGVpZ2h0OiAwO1xcbiAgYm9yZGVyLWxlZnQ6IDEzcHggc29saWQgdHJhbnNwYXJlbnQ7XFxuICBib3JkZXItcmlnaHQ6IDEzcHggc29saWQgdHJhbnNwYXJlbnQ7XFxuICBib3JkZXItYm90dG9tOiAxNXB4IHNvbGlkICNmZmY7XFxuICBtYXJnaW4tbGVmdDogMTVweDtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG59XFxuXFxuLmFycm93LTIge1xcbiAgYm9yZGVyLWJvdHRvbTogMTVweCBzb2xpZCAjY2NjO1xcbiAgdG9wOiAtMXB4O1xcbn1cXG5cXG4ubGlzdC1hcmVhIHtcXG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XFxuICBib3JkZXItcmFkaXVzOiAzcHg7XFxuICBiYWNrZ3JvdW5kOiAjZmZmO1xcbiAgbWFyZ2luOiAwcHg7XFxuICBib3gtc2hhZG93OiAwcHggMXB4IDVweCAjOTU5NTk1O1xcbn1cXG5cXG4uc2VsZWN0LWFsbCB7XFxuICBwYWRkaW5nOiAxMHB4O1xcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XFxuICB0ZXh0LWFsaWduOiBsZWZ0O1xcbn1cXG5cXG4ubGlzdC1maWx0ZXIge1xcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxufVxcbi5saXN0LWZpbHRlciBpbnB1dCB7XFxuICBib3JkZXI6IDBweDtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiAzNXB4O1xcbiAgcGFkZGluZzogMHB4IDBweCAwcHggMzVweDtcXG59XFxuLmxpc3QtZmlsdGVyIGlucHV0OmZvY3VzIHtcXG4gIG91dGxpbmU6IG5vbmU7XFxufVxcbi5saXN0LWZpbHRlciAuZmEge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAxMHB4O1xcbiAgbGVmdDogMTNweDtcXG4gIGNvbG9yOiAjODg4O1xcbn1cXG5cXG4ucHVyZS1jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XSB7XFxuICBib3JkZXI6IDA7XFxuICBjbGlwOiByZWN0KDAgMCAwIDApO1xcbiAgaGVpZ2h0OiAxcHg7XFxuICBtYXJnaW46IC0xcHg7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgcGFkZGluZzogMDtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHdpZHRoOiAxcHg7XFxufVxcblxcbi5wdXJlLWNoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdOmZvY3VzICsgbGFiZWw6YmVmb3JlLFxcbi5wdXJlLWNoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdOmhvdmVyICsgbGFiZWw6YmVmb3JlIHtcXG4gIGJvcmRlci1jb2xvcjogIzAwNzlGRTtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmMmYyZjI7XFxufVxcblxcbi5wdXJlLWNoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdOmFjdGl2ZSArIGxhYmVsOmJlZm9yZSB7XFxuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwcztcXG59XFxuXFxuLnB1cmUtY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF0gKyBsYWJlbCB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBwYWRkaW5nLWxlZnQ6IDJlbTtcXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICB1c2VyLXNlbGVjdDogbm9uZTtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG4gIG1hcmdpbjogMHB4O1xcbiAgY29sb3I6ICMwMDA7XFxuICBmb250LXdlaWdodDogMzAwO1xcbn1cXG5cXG4ucHVyZS1jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XSArIGxhYmVsOmJlZm9yZSB7XFxuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcXG4gIGNvbnRlbnQ6IFxcXCJcXFwiO1xcbiAgY29sb3I6ICMwMDc5RkU7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDUwJTtcXG4gIGxlZnQ6IDA7XFxuICB3aWR0aDogMTRweDtcXG4gIGhlaWdodDogMTRweDtcXG4gIG1hcmdpbi10b3A6IC05cHg7XFxuICBib3JkZXI6IDJweCBzb2xpZCAjMDA3OUZFO1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZTtcXG59XFxuXFxuLnB1cmUtY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF0gKyBsYWJlbDphZnRlciB7XFxuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcXG4gIGNvbnRlbnQ6IFxcXCJcXFwiO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNzlGRTtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogNTAlO1xcbiAgbGVmdDogNHB4O1xcbiAgd2lkdGg6IDEwcHg7XFxuICBoZWlnaHQ6IDEwcHg7XFxuICBtYXJnaW4tdG9wOiAtNXB4O1xcbiAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcXG4gIHRyYW5zZm9ybS1vcmlnaW46IDUwJTtcXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyMDBtcyBlYXNlLW91dDtcXG59XFxuXFxuLnB1cmUtY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF06ZGlzYWJsZWQgKyBsYWJlbDpiZWZvcmUge1xcbiAgYm9yZGVyLWNvbG9yOiAjY2NjY2NjO1xcbn1cXG5cXG4ucHVyZS1jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XTpkaXNhYmxlZDpmb2N1cyArIGxhYmVsOmJlZm9yZSAucHVyZS1jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XTpkaXNhYmxlZDpob3ZlciArIGxhYmVsOmJlZm9yZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xcbn1cXG5cXG4ucHVyZS1jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XTpkaXNhYmxlZDpjaGVja2VkICsgbGFiZWw6YmVmb3JlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNjY2NjY2M7XFxufVxcblxcbi5wdXJlLWNoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdICsgbGFiZWw6YWZ0ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICB0b3A6IDUwJTtcXG4gIGxlZnQ6IDRweDtcXG4gIHdpZHRoOiA4cHg7XFxuICBoZWlnaHQ6IDNweDtcXG4gIG1hcmdpbi10b3A6IC00cHg7XFxuICBib3JkZXItc3R5bGU6IHNvbGlkO1xcbiAgYm9yZGVyLWNvbG9yOiAjZmZmZmZmO1xcbiAgYm9yZGVyLXdpZHRoOiAwIDAgM3B4IDNweDtcXG4gIGJvcmRlci1pbWFnZTogbm9uZTtcXG4gIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgc2NhbGUoMCk7XFxufVxcblxcbi5wdXJlLWNoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQgKyBsYWJlbDphZnRlciB7XFxuICBjb250ZW50OiBcXFwiXFxcIjtcXG4gIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgc2NhbGUoMSk7XFxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjAwbXMgZWFzZS1vdXQ7XFxufVxcblxcbi5wdXJlLWNoZWNrYm94IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQgKyBsYWJlbDpiZWZvcmUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XFxufVxcblxcbi5wdXJlLWNoZWNrYm94IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQgKyBsYWJlbDphZnRlciB7XFxuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xcbn1cXG5cXG4ucHVyZS1jaGVja2JveCBpbnB1dFt0eXBlPXJhZGlvXSArIGxhYmVsOmJlZm9yZSB7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxufVxcblxcbi5wdXJlLWNoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQgKyBsYWJlbDpiZWZvcmUge1xcbiAgYmFja2dyb3VuZDogIzAwNzlGRTtcXG59XFxuXFxuLnB1cmUtY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCArIGxhYmVsOmFmdGVyIHtcXG4gIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgc2NhbGUoMSk7XFxufVxcblxcbi5saXN0LW1lc3NhZ2Uge1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbn1cXG5cXG4ubGlzdC1ncnAge1xcbiAgcGFkZGluZzogMCAxNXB4ICFpbXBvcnRhbnQ7XFxufVxcblxcbi5saXN0LWdycCBoNCB7XFxuICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcXG4gIG1hcmdpbjogMTVweCAwcHggMHB4IDBweDtcXG4gIGZvbnQtc2l6ZTogMTRweDtcXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XFxufVxcblxcbi5saXN0LWdycCA+IGxpIHtcXG4gIHBhZGRpbmctbGVmdDogMTVweCAhaW1wb3J0YW50O1xcbn1cXG5cXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLW1hdGVyaWFsLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtZGFyayxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWN1c3RvbSB7XFxuICAtLW1zLXByaW1hcnk6ICMzZjUxYjU7XFxuICAtLW1zLXByaW1hcnktc29mdDogcmdiYSg2MywgODEsIDE4MSwgMC4xMik7XFxuICAtLW1zLXN1cmZhY2U6ICNmZmZmZmY7XFxuICAtLW1zLXN1cmZhY2Utc29mdDogI2Y1ZjdmYjtcXG4gIC0tbXMtc3VyZmFjZS1tdXRlZDogI2U4ZWFmNjtcXG4gIC0tbXMtb3V0bGluZTogI2M1Y2FlOTtcXG4gIC0tbXMtb3V0bGluZS1zdHJvbmc6ICM3OTg2Y2I7XFxuICAtLW1zLW9uLXN1cmZhY2U6ICMyMTIxMjE7XFxuICAtLW1zLW9uLXN1cmZhY2UtbXV0ZWQ6ICM1ZjYzNjg7XFxuICAtLW1zLWNoaXAtYmc6ICNlOGVhZjY7XFxuICAtLW1zLWNoaXAtdGV4dDogIzMwM2Y5ZjtcXG4gIC0tbXMtY2hpcC1yZW1vdmU6ICMzMDNmOWY7XFxuICAtLW1zLWRpdmlkZXI6IHJnYmEoMTI1LCAxMTksIDEzNCwgMC4xNik7XFxuICAtLW1zLXNlY3Rpb24tYmc6IHJnYmEoMjQ3LCAyNDIsIDI1MCwgMC43Nik7XFxuICAtLW1zLXNlbGVjdGVkLXRleHQ6IHZhcigtLW1zLXByaW1hcnkpO1xcbiAgLS1tcy1zaGFkb3c6IDAgMXB4IDJweCByZ2JhKDMzLCAzMywgMzMsIDAuMTYpLCAwIDEycHggMzJweCByZ2JhKDYzLCA4MSwgMTgxLCAwLjEyKTtcXG4gIC0tbXMtc2hhZG93LXNvZnQ6IDAgMXB4IDJweCByZ2JhKDMzLCAzMywgMzMsIDAuMTIpLCAwIDRweCAxMnB4IHJnYmEoMzMsIDMzLCAzMywgMC4wOCk7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIHdpZHRoOiAxMDAlO1xcbiAgY29sb3I6IHZhcigtLW1zLW9uLXN1cmZhY2UpO1xcbiAgZm9udDogaW5oZXJpdDtcXG59XFxuXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1kYXJrIHtcXG4gIC0tbXMtcHJpbWFyeTogIzhhYjRmODtcXG4gIC0tbXMtcHJpbWFyeS1zb2Z0OiByZ2JhKDEzOCwgMTgwLCAyNDgsIDAuMTgpO1xcbiAgLS1tcy1zdXJmYWNlOiAjMTUxYTIzO1xcbiAgLS1tcy1zdXJmYWNlLXNvZnQ6ICMyMDI3MzY7XFxuICAtLW1zLXN1cmZhY2UtbXV0ZWQ6ICMxMTE3MjI7XFxuICAtLW1zLW91dGxpbmU6ICMzODQ0NTY7XFxuICAtLW1zLW91dGxpbmUtc3Ryb25nOiAjOGFiNGY4O1xcbiAgLS1tcy1vbi1zdXJmYWNlOiAjZWRmMmY3O1xcbiAgLS1tcy1vbi1zdXJmYWNlLW11dGVkOiAjYWFiNmM1O1xcbiAgLS1tcy1jaGlwLWJnOiAjMjYzMjQ3O1xcbiAgLS1tcy1jaGlwLXRleHQ6ICNkN2U2ZmY7XFxuICAtLW1zLWNoaXAtcmVtb3ZlOiAjZDdlNmZmO1xcbiAgLS1tcy1kaXZpZGVyOiByZ2JhKDE3MCwgMTgyLCAxOTcsIDAuMTgpO1xcbiAgLS1tcy1zZWN0aW9uLWJnOiAjMTAxNjIwO1xcbiAgLS1tcy1zZWxlY3RlZC10ZXh0OiAjZDdlNmZmO1xcbiAgLS1tcy1zaGFkb3c6IDAgMjBweCA1MHB4IHJnYmEoMCwgMCwgMCwgMC40Mik7XFxuICAtLW1zLXNoYWRvdy1zb2Z0OiAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjQ1KSwgMCAxMHB4IDI0cHggcmdiYSgwLCAwLCAwLCAwLjI4KTtcXG59XFxuXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1jdXN0b20ge1xcbiAgLS1tcy1wcmltYXJ5OiB2YXIoLS1zdGFja2xpbmUtbXMtcHJpbWFyeSwgIzBmNzY2ZSk7XFxuICAtLW1zLXByaW1hcnktc29mdDogdmFyKC0tc3RhY2tsaW5lLW1zLXByaW1hcnktc29mdCwgcmdiYSgxNSwgMTE4LCAxMTAsIDAuMTQpKTtcXG4gIC0tbXMtc3VyZmFjZTogdmFyKC0tc3RhY2tsaW5lLW1zLXN1cmZhY2UsICNmZmZmZmYpO1xcbiAgLS1tcy1zdXJmYWNlLXNvZnQ6IHZhcigtLXN0YWNrbGluZS1tcy1zdXJmYWNlLXNvZnQsICNlY2ZkZjUpO1xcbiAgLS1tcy1zdXJmYWNlLW11dGVkOiB2YXIoLS1zdGFja2xpbmUtbXMtc3VyZmFjZS1tdXRlZCwgI2QxZmFlNSk7XFxuICAtLW1zLW91dGxpbmU6IHZhcigtLXN0YWNrbGluZS1tcy1vdXRsaW5lLCAjOTlmNmU0KTtcXG4gIC0tbXMtb3V0bGluZS1zdHJvbmc6IHZhcigtLXN0YWNrbGluZS1tcy1vdXRsaW5lLXN0cm9uZywgIzBmNzY2ZSk7XFxuICAtLW1zLW9uLXN1cmZhY2U6IHZhcigtLXN0YWNrbGluZS1tcy1vbi1zdXJmYWNlLCAjMTAyYTJhKTtcXG4gIC0tbXMtb24tc3VyZmFjZS1tdXRlZDogdmFyKC0tc3RhY2tsaW5lLW1zLW9uLXN1cmZhY2UtbXV0ZWQsICM0NzYxNWYpO1xcbiAgLS1tcy1jaGlwLWJnOiB2YXIoLS1zdGFja2xpbmUtbXMtY2hpcC1iZywgI2NjZmJmMSk7XFxuICAtLW1zLWNoaXAtdGV4dDogdmFyKC0tc3RhY2tsaW5lLW1zLWNoaXAtdGV4dCwgIzExNWU1OSk7XFxuICAtLW1zLWNoaXAtcmVtb3ZlOiB2YXIoLS1zdGFja2xpbmUtbXMtY2hpcC1yZW1vdmUsICMxMTVlNTkpO1xcbiAgLS1tcy1kaXZpZGVyOiB2YXIoLS1zdGFja2xpbmUtbXMtZGl2aWRlciwgcmdiYSgxNSwgMTE4LCAxMTAsIDAuMTYpKTtcXG4gIC0tbXMtc2VjdGlvbi1iZzogdmFyKC0tc3RhY2tsaW5lLW1zLXNlY3Rpb24tYmcsICNmMGZkZmEpO1xcbiAgLS1tcy1zZWxlY3RlZC10ZXh0OiB2YXIoLS1zdGFja2xpbmUtbXMtc2VsZWN0ZWQtdGV4dCwgdmFyKC0tbXMtcHJpbWFyeSkpO1xcbiAgLS1tcy1zaGFkb3c6IHZhcigtLXN0YWNrbGluZS1tcy1zaGFkb3csIDAgMThweCA0MnB4IHJnYmEoMTUsIDExOCwgMTEwLCAwLjE1KSk7XFxuICAtLW1zLXNoYWRvdy1zb2Z0OiB2YXIoLS1zdGFja2xpbmUtbXMtc2hhZG93LXNvZnQsIDAgMXB4IDJweCByZ2JhKDE1LCAxMTgsIDExMCwgMC4xNiksIDAgOHB4IDE4cHggcmdiYSgxNSwgMTE4LCAxMTAsIDAuMDkpKTtcXG59XFxuXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1tYXRlcmlhbCAuc2VsZWN0ZWQtbGlzdCxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWRhcmsgLnNlbGVjdGVkLWxpc3QsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1jdXN0b20gLnNlbGVjdGVkLWxpc3Qge1xcbiAgd2lkdGg6IDEwMCU7XFxufVxcblxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtbWF0ZXJpYWwgLnNlbGVjdGVkLWxpc3QgLmMtYnRuLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtZGFyayAuc2VsZWN0ZWQtbGlzdCAuYy1idG4sXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1jdXN0b20gLnNlbGVjdGVkLWxpc3QgLmMtYnRuIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgZmxleC13cmFwOiBub3dyYXA7XFxuICBnYXA6IDhweDtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgbWluLWhlaWdodDogNTZweDtcXG4gIHBhZGRpbmc6IDExcHggNTRweCAxMXB4IDE2cHg7XFxuICBib3JkZXItcmFkaXVzOiAxOHB4O1xcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbXMtb3V0bGluZSk7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1tcy1zdXJmYWNlKTtcXG4gIGJveC1zaGFkb3c6IHZhcigtLW1zLXNoYWRvdy1zb2Z0KTtcXG4gIGNvbG9yOiB2YXIoLS1tcy1vbi1zdXJmYWNlKTtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcXG4gIGxpbmUtaGVpZ2h0OiAxLjQ1O1xcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMTZzIGVhc2UsIGJveC1zaGFkb3cgMC4xNnMgZWFzZSwgYmFja2dyb3VuZC1jb2xvciAwLjE2cyBlYXNlLCB0cmFuc2Zvcm0gMC4xNnMgZWFzZTtcXG59XFxuXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1tYXRlcmlhbCAuc2VsZWN0ZWQtbGlzdCAuYy1idG46aG92ZXIsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1kYXJrIC5zZWxlY3RlZC1saXN0IC5jLWJ0bjpob3ZlcixcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWN1c3RvbSAuc2VsZWN0ZWQtbGlzdCAuYy1idG46aG92ZXIge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1tcy1vdXRsaW5lLXN0cm9uZyk7XFxufVxcblxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtbWF0ZXJpYWwgLnNlbGVjdGVkLWxpc3QgLmMtYnRuLmRpc2FibGVkLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtZGFyayAuc2VsZWN0ZWQtbGlzdCAuYy1idG4uZGlzYWJsZWQsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1jdXN0b20gLnNlbGVjdGVkLWxpc3QgLmMtYnRuLmRpc2FibGVkIHtcXG4gIGJhY2tncm91bmQ6IHZhcigtLW1zLXN1cmZhY2UpO1xcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcXG4gIG9wYWNpdHk6IDAuNzI7XFxufVxcblxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtbWF0ZXJpYWwgLnNlbGVjdGVkLWxpc3QgLmMtbGlzdCxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWRhcmsgLnNlbGVjdGVkLWxpc3QgLmMtbGlzdCxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWN1c3RvbSAuc2VsZWN0ZWQtbGlzdCAuYy1saXN0IHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBmbGV4OiAxIDEgYXV0bztcXG4gIGZsZXgtd3JhcDogd3JhcDtcXG4gIGdhcDogOHB4O1xcbiAgd2lkdGg6IGF1dG87XFxuICBtaW4td2lkdGg6IDA7XFxuICBtYXJnaW46IDA7XFxuICBwYWRkaW5nOiAwO1xcbiAgZmxvYXQ6IG5vbmU7XFxufVxcblxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtbWF0ZXJpYWwgLnNlbGVjdGVkLWxpc3QgLmMtbGlzdCAuYy10b2tlbixcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWRhcmsgLnNlbGVjdGVkLWxpc3QgLmMtbGlzdCAuYy10b2tlbixcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWN1c3RvbSAuc2VsZWN0ZWQtbGlzdCAuYy1saXN0IC5jLXRva2VuIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICBtaW4taGVpZ2h0OiAzMnB4O1xcbiAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgcGFkZGluZzogNnB4IDMwcHggNnB4IDEycHg7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1tcy1jaGlwLWJnKTtcXG4gIGNvbG9yOiB2YXIoLS1tcy1jaGlwLXRleHQpO1xcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XFxuICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggcmdiYSgxMDMsIDgwLCAxNjQsIDAuMDgpO1xcbiAgbGluZS1oZWlnaHQ6IDEuMzU7XFxuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xcbiAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XFxuICBtYXJnaW46IDA7XFxuICBmbG9hdDogbm9uZTtcXG59XFxuXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1tYXRlcmlhbCAuc2VsZWN0ZWQtbGlzdCAuYy1saXN0IC5jLXRva2VuIC5jLWxhYmVsLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtZGFyayAuc2VsZWN0ZWQtbGlzdCAuYy1saXN0IC5jLXRva2VuIC5jLWxhYmVsLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtY3VzdG9tIC5zZWxlY3RlZC1saXN0IC5jLWxpc3QgLmMtdG9rZW4gLmMtbGFiZWwge1xcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgZmxvYXQ6IG5vbmU7XFxuICBtaW4td2lkdGg6IDA7XFxuICBtYXgtd2lkdGg6IDEwMCU7XFxuICBsaW5lLWhlaWdodDogMS4zO1xcbiAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XFxuICBvdmVyZmxvdy13cmFwOiBhbnl3aGVyZTtcXG59XFxuXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1tYXRlcmlhbCAuc2VsZWN0ZWQtbGlzdCAuYy1saXN0IC5jLXRva2VuIC5mYS1yZW1vdmUsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1kYXJrIC5zZWxlY3RlZC1saXN0IC5jLWxpc3QgLmMtdG9rZW4gLmZhLXJlbW92ZSxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWN1c3RvbSAuc2VsZWN0ZWQtbGlzdCAuYy1saXN0IC5jLXRva2VuIC5mYS1yZW1vdmUge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgcmlnaHQ6IDEwcHg7XFxuICB0b3A6IDUwJTtcXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgd2lkdGg6IDE2cHg7XFxuICBoZWlnaHQ6IDE2cHg7XFxuICBtYXJnaW4tbGVmdDogMDtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcXG4gIGNvbG9yOiB2YXIoLS1tcy1jaGlwLXJlbW92ZSk7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxufVxcblxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtbWF0ZXJpYWwgLnNlbGVjdGVkLWxpc3QgLmNvdW50cGxhY2Vob2xkZXIsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1kYXJrIC5zZWxlY3RlZC1saXN0IC5jb3VudHBsYWNlaG9sZGVyLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtY3VzdG9tIC5zZWxlY3RlZC1saXN0IC5jb3VudHBsYWNlaG9sZGVyIHtcXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xcbiAgZmxleDogMCAwIGF1dG87XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICBhbGlnbi1zZWxmOiBjZW50ZXI7XFxuICBtYXJnaW46IDA7XFxuICBsaW5lLWhlaWdodDogMTtcXG4gIGNvbG9yOiB2YXIoLS1tcy1vbi1zdXJmYWNlLW11dGVkKTtcXG4gIGZvbnQtc2l6ZTogMC44cmVtO1xcbiAgZm9udC13ZWlnaHQ6IDYwMDtcXG59XFxuXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1tYXRlcmlhbCAuc2VsZWN0ZWQtbGlzdCAuZmEtYW5nbGUtZG93bixcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWRhcmsgLnNlbGVjdGVkLWxpc3QgLmZhLWFuZ2xlLWRvd24sXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1jdXN0b20gLnNlbGVjdGVkLWxpc3QgLmZhLWFuZ2xlLWRvd24sXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1tYXRlcmlhbCAuc2VsZWN0ZWQtbGlzdCAuZmEtYW5nbGUtdXAsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1kYXJrIC5zZWxlY3RlZC1saXN0IC5mYS1hbmdsZS11cCxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWN1c3RvbSAuc2VsZWN0ZWQtbGlzdCAuZmEtYW5nbGUtdXAge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiA1MCU7XFxuICByaWdodDogMTZweDtcXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgd2lkdGg6IDIwcHg7XFxuICBoZWlnaHQ6IDIwcHg7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XFxuICBjb2xvcjogdmFyKC0tbXMtb24tc3VyZmFjZS1tdXRlZCk7XFxuICBmb250LXNpemU6IDE1cHQ7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG59XFxuXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1tYXRlcmlhbCAuZHJvcGRvd24tbGlzdCxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWRhcmsgLmRyb3Bkb3duLWxpc3QsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1jdXN0b20gLmRyb3Bkb3duLWxpc3Qge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBwYWRkaW5nLXRvcDogOHB4O1xcbiAgei1pbmRleDogOTk5OTk7XFxufVxcblxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtbWF0ZXJpYWwgLmFycm93LXVwLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtZGFyayAuYXJyb3ctdXAsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1jdXN0b20gLmFycm93LXVwLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtbWF0ZXJpYWwgLmFycm93LWRvd24sXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1kYXJrIC5hcnJvdy1kb3duLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtY3VzdG9tIC5hcnJvdy1kb3duLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtbWF0ZXJpYWwgLmFycm93LTIsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1kYXJrIC5hcnJvdy0yLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtY3VzdG9tIC5hcnJvdy0yIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcblxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtbWF0ZXJpYWwgLmxpc3QtYXJlYSxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWRhcmsgLmxpc3QtYXJlYSxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWN1c3RvbSAubGlzdC1hcmVhIHtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICBib3JkZXItcmFkaXVzOiAyMnB4O1xcbiAgYmFja2dyb3VuZDogdmFyKC0tbXMtc3VyZmFjZSk7XFxuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1tcy1vdXRsaW5lKTtcXG4gIGJveC1zaGFkb3c6IHZhcigtLW1zLXNoYWRvdyk7XFxuICBtYXJnaW46IDA7XFxufVxcblxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtbWF0ZXJpYWwgLnNlbGVjdC1hbGwsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1kYXJrIC5zZWxlY3QtYWxsLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtY3VzdG9tIC5zZWxlY3QtYWxsIHtcXG4gIHBhZGRpbmc6IDEwcHggMTRweDtcXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1tcy1kaXZpZGVyKTtcXG4gIGJhY2tncm91bmQ6IHZhcigtLW1zLXNlY3Rpb24tYmcpO1xcbiAgdGV4dC1hbGlnbjogbGVmdDtcXG59XFxuXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1tYXRlcmlhbCAubGlzdC1maWx0ZXIsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1kYXJrIC5saXN0LWZpbHRlcixcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWN1c3RvbSAubGlzdC1maWx0ZXIge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgZGlzcGxheTogZmxleDtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBtaW4taGVpZ2h0OiA1MnB4O1xcbiAgcGFkZGluZy1sZWZ0OiA0OHB4O1xcbiAgcGFkZGluZy1yaWdodDogNDRweDtcXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1tcy1kaXZpZGVyKTtcXG4gIGJhY2tncm91bmQ6IHZhcigtLW1zLXN1cmZhY2UpO1xcbn1cXG5cXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLW1hdGVyaWFsIC5saXN0LWZpbHRlciBpbnB1dCxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWRhcmsgLmxpc3QtZmlsdGVyIGlucHV0LFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtY3VzdG9tIC5saXN0LWZpbHRlciBpbnB1dCB7XFxuICB3aWR0aDogMTAwJTtcXG4gIGhlaWdodDogMTAwJTtcXG4gIGJvcmRlcjogMDtcXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbiAgY29sb3I6IHZhcigtLW1zLW9uLXN1cmZhY2UpO1xcbiAgZm9udDogaW5oZXJpdDtcXG4gIHBhZGRpbmc6IDA7XFxufVxcblxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtbWF0ZXJpYWwgLmxpc3QtZmlsdGVyIGlucHV0OjpwbGFjZWhvbGRlcixcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWRhcmsgLmxpc3QtZmlsdGVyIGlucHV0OjpwbGFjZWhvbGRlcixcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWN1c3RvbSAubGlzdC1maWx0ZXIgaW5wdXQ6OnBsYWNlaG9sZGVyIHtcXG4gIGNvbG9yOiB2YXIoLS1tcy1vbi1zdXJmYWNlLW11dGVkKTtcXG59XFxuXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1tYXRlcmlhbCAubGlzdC1maWx0ZXIgaW5wdXQ6Zm9jdXMsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1kYXJrIC5saXN0LWZpbHRlciBpbnB1dDpmb2N1cyxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWN1c3RvbSAubGlzdC1maWx0ZXIgaW5wdXQ6Zm9jdXMge1xcbiAgb3V0bGluZTogbm9uZTtcXG59XFxuXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1tYXRlcmlhbCAubGlzdC1maWx0ZXIgLmZhLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtZGFyayAubGlzdC1maWx0ZXIgLmZhLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtY3VzdG9tIC5saXN0LWZpbHRlciAuZmEge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiA1MCU7XFxuICBsZWZ0OiAxNnB4O1xcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICB3aWR0aDogMThweDtcXG4gIGhlaWdodDogMThweDtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcXG4gIGNvbG9yOiB2YXIoLS1tcy1vbi1zdXJmYWNlLW11dGVkKTtcXG59XFxuXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1tYXRlcmlhbCAuZHJvcGRvd24tbGlzdCB1bCxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWRhcmsgLmRyb3Bkb3duLWxpc3QgdWwsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1jdXN0b20gLmRyb3Bkb3duLWxpc3QgdWwge1xcbiAgbGlzdC1zdHlsZTogbm9uZTtcXG4gIG1hcmdpbjogMDtcXG4gIHBhZGRpbmc6IDhweDtcXG4gIG92ZXJmbG93OiBhdXRvO1xcbn1cXG5cXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLW1hdGVyaWFsIC5kcm9wZG93bi1saXN0IHVsIGxpLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtZGFyayAuZHJvcGRvd24tbGlzdCB1bCBsaSxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWN1c3RvbSAuZHJvcGRvd24tbGlzdCB1bCBsaSB7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgbWluLWhlaWdodDogMDtcXG4gIG1hcmdpbjogNHB4O1xcbiAgcGFkZGluZzogMTJweCAxNHB4O1xcbiAgYm9yZGVyLXJhZGl1czogMTRweDtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG4gIHRleHQtYWxpZ246IGxlZnQ7XFxuICBsaW5lLWhlaWdodDogMS4zNTtcXG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xNnMgZWFzZSwgY29sb3IgMC4xNnMgZWFzZTtcXG59XFxuXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1tYXRlcmlhbCAuZHJvcGRvd24tbGlzdCB1bCBsaTpmaXJzdC1jaGlsZCxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWRhcmsgLmRyb3Bkb3duLWxpc3QgdWwgbGk6Zmlyc3QtY2hpbGQsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1jdXN0b20gLmRyb3Bkb3duLWxpc3QgdWwgbGk6Zmlyc3QtY2hpbGQge1xcbiAgcGFkZGluZy10b3A6IDEycHg7XFxufVxcblxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtbWF0ZXJpYWwgLmRyb3Bkb3duLWxpc3QgdWwgbGk6bGFzdC1jaGlsZCxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWRhcmsgLmRyb3Bkb3duLWxpc3QgdWwgbGk6bGFzdC1jaGlsZCxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWN1c3RvbSAuZHJvcGRvd24tbGlzdCB1bCBsaTpsYXN0LWNoaWxkIHtcXG4gIHBhZGRpbmctYm90dG9tOiAxMnB4O1xcbn1cXG5cXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLW1hdGVyaWFsIC5kcm9wZG93bi1saXN0IHVsIGxpOmhvdmVyLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtZGFyayAuZHJvcGRvd24tbGlzdCB1bCBsaTpob3ZlcixcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWN1c3RvbSAuZHJvcGRvd24tbGlzdCB1bCBsaTpob3ZlciB7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1tcy1zdXJmYWNlLXNvZnQpO1xcbn1cXG5cXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLW1hdGVyaWFsIC5wdXJlLWNoZWNrYm94LFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtZGFyayAucHVyZS1jaGVja2JveCxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWN1c3RvbSAucHVyZS1jaGVja2JveCB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxufVxcblxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtbWF0ZXJpYWwgLnB1cmUtY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF0gKyBsYWJlbCxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWRhcmsgLnB1cmUtY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF0gKyBsYWJlbCxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWN1c3RvbSAucHVyZS1jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XSArIGxhYmVsIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBtYXJnaW46IDA7XFxuICBwYWRkaW5nLWxlZnQ6IDMycHg7XFxuICBjb2xvcjogaW5oZXJpdDtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICB1c2VyLXNlbGVjdDogbm9uZTtcXG59XFxuXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1tYXRlcmlhbCAucHVyZS1jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XSArIGxhYmVsOmJlZm9yZSxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWRhcmsgLnB1cmUtY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF0gKyBsYWJlbDpiZWZvcmUsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1jdXN0b20gLnB1cmUtY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF0gKyBsYWJlbDpiZWZvcmUge1xcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XFxuICBjb250ZW50OiBcXFwiXFxcIjtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogNTAlO1xcbiAgbGVmdDogMDtcXG4gIHdpZHRoOiAxNnB4O1xcbiAgaGVpZ2h0OiAxNnB4O1xcbiAgbWFyZ2luLXRvcDogLTEwcHg7XFxuICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1tcy1vdXRsaW5lLXN0cm9uZyk7XFxuICBib3JkZXItcmFkaXVzOiA1cHg7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1tcy1zdXJmYWNlKTtcXG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjE2cyBlYXNlLCBiYWNrZ3JvdW5kLWNvbG9yIDAuMTZzIGVhc2UsIGJveC1zaGFkb3cgMC4xNnMgZWFzZTtcXG59XFxuXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1tYXRlcmlhbCAucHVyZS1jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XSArIGxhYmVsOmFmdGVyLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtZGFyayAucHVyZS1jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XSArIGxhYmVsOmFmdGVyLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtY3VzdG9tIC5wdXJlLWNoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdICsgbGFiZWw6YWZ0ZXIge1xcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XFxuICBjb250ZW50OiBcXFwiXFxcIjtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogNTAlO1xcbiAgbGVmdDogNXB4O1xcbiAgd2lkdGg6IDhweDtcXG4gIGhlaWdodDogM3B4O1xcbiAgbWFyZ2luLXRvcDogLTRweDtcXG4gIGJvcmRlci1zdHlsZTogc29saWQ7XFxuICBib3JkZXItY29sb3I6ICNmZmZmZmY7XFxuICBib3JkZXItd2lkdGg6IDAgMCAzcHggM3B4O1xcbiAgYm9yZGVyLWltYWdlOiBub25lO1xcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxuICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHNjYWxlKDApO1xcbiAgdHJhbnNmb3JtLW9yaWdpbjogNTAlO1xcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTZzIGVhc2U7XFxufVxcblxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtbWF0ZXJpYWwgLnB1cmUtY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF06Zm9jdXMgKyBsYWJlbDpiZWZvcmUsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1kYXJrIC5wdXJlLWNoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdOmZvY3VzICsgbGFiZWw6YmVmb3JlLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtY3VzdG9tIC5wdXJlLWNoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdOmZvY3VzICsgbGFiZWw6YmVmb3JlLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtbWF0ZXJpYWwgLnB1cmUtY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF06aG92ZXIgKyBsYWJlbDpiZWZvcmUsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1kYXJrIC5wdXJlLWNoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdOmhvdmVyICsgbGFiZWw6YmVmb3JlLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtY3VzdG9tIC5wdXJlLWNoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdOmhvdmVyICsgbGFiZWw6YmVmb3JlIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tbXMtcHJpbWFyeSk7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1tcy1zdXJmYWNlLXNvZnQpO1xcbn1cXG5cXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLW1hdGVyaWFsIC5wdXJlLWNoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQgKyBsYWJlbDpiZWZvcmUsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1kYXJrIC5wdXJlLWNoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQgKyBsYWJlbDpiZWZvcmUsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1jdXN0b20gLnB1cmUtY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCArIGxhYmVsOmJlZm9yZSB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLW1zLXByaW1hcnkpO1xcbiAgYmFja2dyb3VuZDogdmFyKC0tbXMtcHJpbWFyeSk7XFxufVxcblxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtbWF0ZXJpYWwgLnB1cmUtY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCArIGxhYmVsOmFmdGVyLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtZGFyayAucHVyZS1jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkICsgbGFiZWw6YWZ0ZXIsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1jdXN0b20gLnB1cmUtY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCArIGxhYmVsOmFmdGVyIHtcXG4gIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgc2NhbGUoMSk7XFxufVxcblxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtbWF0ZXJpYWwgLmxpc3QtbWVzc2FnZSxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWRhcmsgLmxpc3QtbWVzc2FnZSxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWN1c3RvbSAubGlzdC1tZXNzYWdlIHtcXG4gIG1hcmdpbjogMDtcXG4gIHBhZGRpbmc6IDIwcHggMTRweDtcXG4gIGNvbG9yOiB2YXIoLS1tcy1vbi1zdXJmYWNlLW11dGVkKTtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG59XFxuXCJdLFxuICAgIHByb3ZpZGVyczogW0RST1BET1dOX0NPTlRST0xfVkFMVUVfQUNDRVNTT1IsIERST1BET1dOX0NPTlRST0xfVkFMSURBVElPTl1cbn0pXG5cbmV4cG9ydCBjbGFzcyBBbmd1bGFyTXVsdGlTZWxlY3QgaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkNoYW5nZXMsIFZhbGlkYXRvciB7XG5cbiAgICBASW5wdXQoKVxuICAgIGRhdGE6IEFycmF5PExpc3RJdGVtPjtcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0dGluZ3M6IERyb3Bkb3duU2V0dGluZ3M7XG5cbiAgICBAT3V0cHV0KCdvblNlbGVjdCcpXG4gICAgb25TZWxlY3Q6IEV2ZW50RW1pdHRlcjxMaXN0SXRlbT4gPSBuZXcgRXZlbnRFbWl0dGVyPExpc3RJdGVtPigpO1xuXG4gICAgQE91dHB1dCgnb25EZVNlbGVjdCcpXG4gICAgb25EZVNlbGVjdDogRXZlbnRFbWl0dGVyPExpc3RJdGVtPiA9IG5ldyBFdmVudEVtaXR0ZXI8TGlzdEl0ZW0+KCk7XG5cbiAgICBAT3V0cHV0KCdvblNlbGVjdEFsbCcpXG4gICAgb25TZWxlY3RBbGw6IEV2ZW50RW1pdHRlcjxBcnJheTxMaXN0SXRlbT4+ID0gbmV3IEV2ZW50RW1pdHRlcjxBcnJheTxMaXN0SXRlbT4+KCk7XG5cbiAgICBAT3V0cHV0KCdvbkRlU2VsZWN0QWxsJylcbiAgICBvbkRlU2VsZWN0QWxsOiBFdmVudEVtaXR0ZXI8QXJyYXk8TGlzdEl0ZW0+PiA9IG5ldyBFdmVudEVtaXR0ZXI8QXJyYXk8TGlzdEl0ZW0+PigpO1xuXG4gICAgQE91dHB1dCgnb25PcGVuJylcbiAgICBvbk9wZW46IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICBAT3V0cHV0KCdvbkNsb3NlJylcbiAgICBvbkNsb3NlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgQENvbnRlbnRDaGlsZChJdGVtLCB7IHN0YXRpYzogZmFsc2UgfSkgaXRlbVRlbXBsOiBJdGVtO1xuICAgIEBDb250ZW50Q2hpbGQoQmFkZ2UsIHsgc3RhdGljOiBmYWxzZSB9KSBiYWRnZVRlbXBsOiBCYWRnZTtcblxuXG4gICAgQFZpZXdDaGlsZCgnc2VhcmNoSW5wdXQnLCB7IHN0YXRpYzogZmFsc2UgfSkgc2VhcmNoSW5wdXQ6IEVsZW1lbnRSZWY7XG5cbiAgICBwdWJsaWMgc2VsZWN0ZWRJdGVtczogQXJyYXk8TGlzdEl0ZW0+O1xuICAgIHB1YmxpYyBpc0FjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHB1YmxpYyBpc1NlbGVjdEFsbDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHB1YmxpYyBncm91cGVkRGF0YTogQXJyYXk8TGlzdEl0ZW0+O1xuICAgIGZpbHRlcjogYW55O1xuICAgIHB1YmxpYyBjaHVua0FycmF5OmFueVtdO1xuICAgIHB1YmxpYyBzY3JvbGxUb3A6YW55O1xuICAgIHB1YmxpYyBjaHVua0luZGV4OmFueVtdID0gW107XG4gICAgcHVibGljIGNhY2hlZEl0ZW1zOmFueVtdID0gW107XG4gICAgcHVibGljIHRvdGFsUm93czphbnk7XG4gICAgcHVibGljIGl0ZW1IZWlnaHQ6YW55ID0gNDEuNjtcbiAgICBwdWJsaWMgc2NyZWVuSXRlbXNMZW46YW55O1xuICAgIHB1YmxpYyBjYWNoZWRJdGVtc0xlbjphbnk7XG4gICAgcHVibGljIHRvdGFsSGVpZ2h0OiBhbnk7XG4gICAgcHVibGljIHNjcm9sbGVyOmFueTtcbiAgICBwdWJsaWMgbWF4QnVmZmVyOmFueTtcbiAgICBwdWJsaWMgbGFzdFNjcm9sbGVkOmFueTtcbiAgICBwdWJsaWMgbGFzdFJlcGFpbnRZOiBhbnk7XG5cbiAgICBkZWZhdWx0U2V0dGluZ3M6IERyb3Bkb3duU2V0dGluZ3MgPSB7XG4gICAgICAgIHNpbmdsZVNlbGVjdGlvbjogZmFsc2UsXG4gICAgICAgIHRleHQ6ICdTZWxlY3QnLFxuICAgICAgICBlbmFibGVDaGVja0FsbDogdHJ1ZSxcbiAgICAgICAgc2VsZWN0QWxsVGV4dDogJ1NlbGVjdCBBbGwnLFxuICAgICAgICB1blNlbGVjdEFsbFRleHQ6ICdVblNlbGVjdCBBbGwnLFxuICAgICAgICBlbmFibGVTZWFyY2hGaWx0ZXI6IGZhbHNlLFxuICAgICAgICBtYXhIZWlnaHQ6IDMwMCxcbiAgICAgICAgYmFkZ2VTaG93TGltaXQ6IDk5OTk5OTk5OTk5OSxcbiAgICAgICAgY2xhc3NlczogJycsXG4gICAgICAgIGRpc2FibGVkOiBmYWxzZSxcbiAgICAgICAgc2VhcmNoUGxhY2Vob2xkZXJUZXh0OiAnU2VhcmNoJyxcbiAgICAgICAgc2hvd0NoZWNrYm94OiB0cnVlLFxuICAgICAgICBub0RhdGFMYWJlbDogJ05vIERhdGEgQXZhaWxhYmxlJyxcbiAgICAgICAgc2VhcmNoQXV0b2ZvY3VzOiB0cnVlLFxuICAgICAgICBsYXp5TG9hZGluZzogZmFsc2UsXG4gICAgICAgIGxhYmVsS2V5OiAnaXRlbU5hbWUnLFxuICAgICAgICB0aGVtZTogJ2NsYXNzaWMnLFxuICAgICAgICBza2luOiAnY2xhc3NpYydcbiAgICB9XG4gICAgcHVibGljIHBhcnNlRXJyb3I6IGJvb2xlYW47XG4gICAgY29uc3RydWN0b3IocHVibGljIF9lbGVtZW50UmVmIDogRWxlbWVudFJlZikge1xuXG4gICAgfVxuICAgIGdldFRoZW1lTmFtZSgpOiBzdHJpbmcge1xuICAgICAgICBsZXQgcmF3VGhlbWU6IGFueSA9ICdjbGFzc2ljJztcbiAgICAgICAgaWYgKHRoaXMuc2V0dGluZ3MpIHtcbiAgICAgICAgICAgIHJhd1RoZW1lID0gdGhpcy5zZXR0aW5ncy5za2luIHx8IHRoaXMuc2V0dGluZ3MudGhlbWUgfHwgJ2NsYXNzaWMnO1xuICAgICAgICB9XG4gICAgICAgIGxldCB0aGVtZSA9IFN0cmluZyhyYXdUaGVtZSkudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9bXmEtejAtOV8tXSsvZywgJy0nKTtcbiAgICAgICAgdGhlbWUgPSB0aGVtZS5yZXBsYWNlKC9eLSt8LSskL2csICcnKTtcbiAgICAgICAgcmV0dXJuIHRoZW1lIHx8ICdjbGFzc2ljJztcbiAgICB9XG4gICAgZ2V0RHJvcGRvd25DbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgICAgIGxldCB0aGVtZSA9IHRoaXMuZ2V0VGhlbWVOYW1lKCk7XG4gICAgICAgIGxldCBjbGFzc05hbWUgPSAndGhlbWUtJyArIHRoZW1lO1xuICAgICAgICBpZiAodGhlbWUgIT09ICdjbGFzc2ljJyAmJiB0aGVtZSAhPT0gJ21hdGVyaWFsJyAmJiB0aGVtZSAhPT0gJ2RhcmsnICYmIHRoZW1lICE9PSAnY3VzdG9tJykge1xuICAgICAgICAgICAgY2xhc3NOYW1lICs9ICcgdGhlbWUtY3VzdG9tJztcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5pc0FjdGl2ZSkge1xuICAgICAgICAgICAgY2xhc3NOYW1lICs9ICcgaXMtb3Blbic7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuc2V0dGluZ3MgJiYgdGhpcy5zZXR0aW5ncy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgY2xhc3NOYW1lICs9ICcgaXMtZGlzYWJsZWQnO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjbGFzc05hbWU7XG4gICAgfVxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnNldHRpbmdzID0gT2JqZWN0LmFzc2lnbih0aGlzLmRlZmF1bHRTZXR0aW5ncywgdGhpcy5zZXR0aW5ncyk7XG4gICAgICAgIGlmICh0aGlzLnNldHRpbmdzLmdyb3VwQnkpIHtcbiAgICAgICAgICAgIHRoaXMuZ3JvdXBlZERhdGEgPSB0aGlzLnRyYW5zZm9ybURhdGEodGhpcy5kYXRhLCB0aGlzLnNldHRpbmdzLmdyb3VwQnkpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudG90YWxSb3dzID0gKHRoaXMuZGF0YSAmJiB0aGlzLmRhdGEubGVuZ3RoKTtcbiAgICAgICAgdGhpcy5jYWNoZWRJdGVtcyA9IHRoaXMuZGF0YTtcbiAgICAgICAgdGhpcy5zY3JlZW5JdGVtc0xlbiA9IE1hdGguY2VpbCh0aGlzLnNldHRpbmdzLm1heEhlaWdodCAvIHRoaXMuaXRlbUhlaWdodCk7XG4gICAgICAgIHRoaXMuY2FjaGVkSXRlbXNMZW4gPSB0aGlzLnNjcmVlbkl0ZW1zTGVuICogMztcbiAgICAgICAgdGhpcy50b3RhbEhlaWdodCA9IHRoaXMuaXRlbUhlaWdodCAqIHRoaXMudG90YWxSb3dzO1xuICAgICAgICB0aGlzLm1heEJ1ZmZlciA9IHRoaXMuc2NyZWVuSXRlbXNMZW4gKiB0aGlzLml0ZW1IZWlnaHQ7XG4gICAgICAgIHRoaXMubGFzdFNjcm9sbGVkID0gMDtcbiAgICAgICAgdGhpcy5yZW5kZXJDaHVuaygwLCB0aGlzLmNhY2hlZEl0ZW1zTGVuIC8gMik7XG4gICAgfVxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgaWYgKGNoYW5nZXMuZGF0YSAmJiAhY2hhbmdlcy5kYXRhLmlzRmlyc3RDaGFuZ2UoKSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuc2V0dGluZ3MuZ3JvdXBCeSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZ3JvdXBlZERhdGEgPSB0aGlzLnRyYW5zZm9ybURhdGEodGhpcy5kYXRhLCB0aGlzLnNldHRpbmdzLmdyb3VwQnkpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmRhdGEubGVuZ3RoID09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gW107XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChjaGFuZ2VzLnNldHRpbmdzICYmICFjaGFuZ2VzLnNldHRpbmdzLmlzRmlyc3RDaGFuZ2UoKSkge1xuICAgICAgICAgICAgdGhpcy5zZXR0aW5ncyA9IE9iamVjdC5hc3NpZ24odGhpcy5kZWZhdWx0U2V0dGluZ3MsIHRoaXMuc2V0dGluZ3MpO1xuICAgICAgICB9XG4gICAgfVxuICAgIG5nRG9DaGVjaygpIHtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRJdGVtcykge1xuICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRJdGVtcy5sZW5ndGggPT0gMCB8fCB0aGlzLmRhdGEubGVuZ3RoID09IDAgfHwgdGhpcy5zZWxlY3RlZEl0ZW1zLmxlbmd0aCA8IHRoaXMuZGF0YS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzU2VsZWN0QWxsID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICBpZih0aGlzLnNldHRpbmdzLmxhenlMb2FkaW5nKXtcbiAgICAgICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFwibGF6eUNvbnRhaW5lclwiKVswXS5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLm9uU2Nyb2xsLmJpbmQodGhpcykpO1xuICAgICAgICB9XG4gICAgfVxuICAgIG9uSXRlbUNsaWNrKGl0ZW06IExpc3RJdGVtLCBpbmRleDogbnVtYmVyLCBldnQ6IEV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLnNldHRpbmdzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgZm91bmQgPSB0aGlzLmlzU2VsZWN0ZWQoaXRlbSk7XG4gICAgICAgIGxldCBsaW1pdCA9IHRoaXMuc2VsZWN0ZWRJdGVtcy5sZW5ndGggPCB0aGlzLnNldHRpbmdzLmxpbWl0U2VsZWN0aW9uID8gdHJ1ZSA6IGZhbHNlO1xuXG4gICAgICAgIGlmICghZm91bmQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnNldHRpbmdzLmxpbWl0U2VsZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgaWYgKGxpbWl0KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWRkU2VsZWN0ZWQoaXRlbSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25TZWxlY3QuZW1pdChpdGVtKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFkZFNlbGVjdGVkKGl0ZW0pO1xuICAgICAgICAgICAgICAgIHRoaXMub25TZWxlY3QuZW1pdChpdGVtKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVTZWxlY3RlZChpdGVtKTtcbiAgICAgICAgICAgIHRoaXMub25EZVNlbGVjdC5lbWl0KGl0ZW0pO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmlzU2VsZWN0QWxsIHx8IHRoaXMuZGF0YS5sZW5ndGggPiB0aGlzLnNlbGVjdGVkSXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLmlzU2VsZWN0QWxsID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuZGF0YS5sZW5ndGggPT0gdGhpcy5zZWxlY3RlZEl0ZW1zLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5pc1NlbGVjdEFsbCA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcHVibGljIHZhbGlkYXRlKGM6IEZvcm1Db250cm9sKTogYW55IHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHByaXZhdGUgb25Ub3VjaGVkQ2FsbGJhY2s6IChfOiBhbnkpID0+IHZvaWQgPSBub29wO1xuICAgIHByaXZhdGUgb25DaGFuZ2VDYWxsYmFjazogKF86IGFueSkgPT4gdm9pZCA9IG5vb3A7XG5cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnNldHRpbmdzLnNpbmdsZVNlbGVjdGlvbikge1xuICAgICAgICAgICAgICAgIHRyeSB7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFt2YWx1ZVswXV07XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgTXlFeGNlcHRpb24oNDA0LCB7IFwibXNnXCI6IFwiU2luZ2xlIFNlbGVjdGlvbiBNb2RlLCBTZWxlY3RlZCBJdGVtcyBjYW5ub3QgaGF2ZSBtb3JlIHRoYW4gb25lIGl0ZW0uXCIgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGUuYm9keS5tc2cpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc2V0dGluZ3MubGltaXRTZWxlY3Rpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gdmFsdWUuc3BsaWNlKDAsIHRoaXMuc2V0dGluZ3MubGltaXRTZWxlY3Rpb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGVkSXRlbXMubGVuZ3RoID09PSB0aGlzLmRhdGEubGVuZ3RoICYmIHRoaXMuZGF0YS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNTZWxlY3RBbGwgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtdO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy9Gcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sgPSBmbjtcbiAgICB9XG5cbiAgICAvL0Zyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrID0gZm47XG4gICAgfVxuICAgIHRyYWNrQnlGbihpbmRleDogbnVtYmVyLCBpdGVtOiBMaXN0SXRlbSkge1xuICAgICAgICByZXR1cm4gaXRlbS5pZDtcbiAgICB9XG4gICAgaXNTZWxlY3RlZChjbGlja2VkSXRlbTogTGlzdEl0ZW0pIHtcbiAgICAgICAgbGV0IGZvdW5kID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyAmJiB0aGlzLnNlbGVjdGVkSXRlbXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgIGlmIChjbGlja2VkSXRlbS5pZCA9PT0gaXRlbS5pZCkge1xuICAgICAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBmb3VuZDtcbiAgICB9XG4gICAgYWRkU2VsZWN0ZWQoaXRlbTogTGlzdEl0ZW0pIHtcbiAgICAgICAgaWYgKHRoaXMuc2V0dGluZ3Muc2luZ2xlU2VsZWN0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5wdXNoKGl0ZW0pO1xuICAgICAgICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnB1c2goaXRlbSk7XG4gICAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayh0aGlzLnNlbGVjdGVkSXRlbXMpO1xuICAgICAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrKHRoaXMuc2VsZWN0ZWRJdGVtcyk7XG4gICAgfVxuICAgIHJlbW92ZVNlbGVjdGVkKGNsaWNrZWRJdGVtOiBMaXN0SXRlbSkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgJiYgdGhpcy5zZWxlY3RlZEl0ZW1zLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICBpZiAoY2xpY2tlZEl0ZW0uaWQgPT09IGl0ZW0uaWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMuc3BsaWNlKHRoaXMuc2VsZWN0ZWRJdGVtcy5pbmRleE9mKGl0ZW0pLCAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayh0aGlzLnNlbGVjdGVkSXRlbXMpO1xuICAgICAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrKHRoaXMuc2VsZWN0ZWRJdGVtcyk7XG4gICAgfVxuICAgIHRvZ2dsZURyb3Bkb3duKGV2dDogYW55KSB7XG4gICAgICAgIGlmICh0aGlzLnNldHRpbmdzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pc0FjdGl2ZSA9ICF0aGlzLmlzQWN0aXZlO1xuICAgICAgICBpZiAodGhpcy5pc0FjdGl2ZSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuc2V0dGluZ3Muc2VhcmNoQXV0b2ZvY3VzICYmIHRoaXMuc2V0dGluZ3MuZW5hYmxlU2VhcmNoRmlsdGVyKSB7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoSW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICAgICAgICAgIH0sIDApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5vbk9wZW4uZW1pdCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMub25DbG9zZS5lbWl0KGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gICAgY2xvc2VEcm9wZG93bigpIHtcbiAgICAgICAgaWYodGhpcy5zZWFyY2hJbnB1dCl7XG4gICAgICAgICAgICB0aGlzLnNlYXJjaElucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBcIlwiO1xuICAgICAgICAgICAgdGhpcy5kYXRhID0gW107XG4gICAgICAgICAgICB0aGlzLmRhdGEgPSB0aGlzLmNhY2hlZEl0ZW1zO1xuICAgICAgICAgICAgdGhpcy50b3RhbEhlaWdodCA9IHRoaXMuaXRlbUhlaWdodCAqIHRoaXMuZGF0YS5sZW5ndGg7XG4gICAgICAgICAgICB0aGlzLnRvdGFsUm93cyA9IHRoaXMuZGF0YS5sZW5ndGg7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZpZXcodGhpcy5zY3JvbGxUb3ApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZmlsdGVyID0gXCJcIjtcbiAgICAgICAgdGhpcy5pc0FjdGl2ZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLm9uQ2xvc2UuZW1pdChmYWxzZSk7XG4gICAgfVxuICAgIHRvZ2dsZVNlbGVjdEFsbCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzU2VsZWN0QWxsKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHRoaXMuZGF0YS5zbGljZSgpO1xuICAgICAgICAgICAgdGhpcy5pc1NlbGVjdEFsbCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sodGhpcy5zZWxlY3RlZEl0ZW1zKTtcbiAgICAgICAgICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2sodGhpcy5zZWxlY3RlZEl0ZW1zKTtcblxuICAgICAgICAgICAgdGhpcy5vblNlbGVjdEFsbC5lbWl0KHRoaXMuc2VsZWN0ZWRJdGVtcyk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuaXNTZWxlY3RBbGwgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayh0aGlzLnNlbGVjdGVkSXRlbXMpO1xuICAgICAgICAgICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjayh0aGlzLnNlbGVjdGVkSXRlbXMpO1xuXG4gICAgICAgICAgICB0aGlzLm9uRGVTZWxlY3RBbGwuZW1pdCh0aGlzLnNlbGVjdGVkSXRlbXMpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHRyYW5zZm9ybURhdGEoYXJyOiBBcnJheTxMaXN0SXRlbT4sIGZpZWxkOiBhbnkpOiBBcnJheTxMaXN0SXRlbT4ge1xuICAgICAgICBjb25zdCBncm91cGVkT2JqOiBhbnkgPSBhcnIucmVkdWNlKChwcmV2OiBhbnksIGN1cjogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAoIXByZXZbY3VyW2ZpZWxkXV0pIHtcbiAgICAgICAgICAgICAgICBwcmV2W2N1cltmaWVsZF1dID0gW2N1cl07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHByZXZbY3VyW2ZpZWxkXV0ucHVzaChjdXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHByZXY7XG4gICAgICAgIH0sIHt9KTtcbiAgICAgICAgY29uc3QgdGVtcEFycjogYW55ID0gW107XG4gICAgICAgIE9iamVjdC5rZXlzKGdyb3VwZWRPYmopLm1hcChmdW5jdGlvbiAoeCkge1xuICAgICAgICAgICAgdGVtcEFyci5wdXNoKHsga2V5OiB4LCB2YWx1ZTogZ3JvdXBlZE9ialt4XSB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB0ZW1wQXJyO1xuICAgIH1cbiAgICByZW5kZXJDaHVuayhmcm9tUG9zOmFueSwgaG93TWFueTphbnkpIHtcbiAgICAgICAgdGhpcy5jaHVua0FycmF5ID0gW107XG4gICAgICAgIHRoaXMuY2h1bmtJbmRleCA9IFtdO1xuICAgICAgICB2YXIgZmluYWxJdGVtID0gZnJvbVBvcyArIGhvd01hbnk7XG4gICAgICAgIGlmIChmaW5hbEl0ZW0gPiB0aGlzLnRvdGFsUm93cylcbiAgICAgICAgICAgIGZpbmFsSXRlbSA9IHRoaXMudG90YWxSb3dzO1xuXG4gICAgICAgIGZvciAodmFyIGkgPSBmcm9tUG9zOyBpIDwgZmluYWxJdGVtOyBpKyspIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNodW5rSW5kZXgucHVzaCgoaSAqIHRoaXMuaXRlbUhlaWdodCkgKyAncHgnKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNodW5rQXJyYXkucHVzaCh0aGlzLmRhdGFbaV0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHB1YmxpYyBvblNjcm9sbChlOmFueSkge1xuICAgICAgICB0aGlzLnNjcm9sbFRvcCA9IGUudGFyZ2V0LnNjcm9sbFRvcDtcbiAgICAgICAgdGhpcy51cGRhdGVWaWV3KHRoaXMuc2Nyb2xsVG9wKTtcblxuICAgIH1cbiAgICBwdWJsaWMgdXBkYXRlVmlldyhzY3JvbGxUb3A6YW55KXtcbiAgICAgICAgdmFyIHNjcm9sbFBvcyA9IHNjcm9sbFRvcCA/IHNjcm9sbFRvcDogMDtcbiAgICAgICAgIHZhciBmaXJzdCA9IChzY3JvbGxQb3MgLyB0aGlzLml0ZW1IZWlnaHQpIC0gdGhpcy5zY3JlZW5JdGVtc0xlbjtcbiAgICAgICAgdmFyIGZpcnN0VGVtcCA9IFwiXCIrZmlyc3Q7XG4gICAgICAgIGZpcnN0ID0gcGFyc2VJbnQoZmlyc3RUZW1wKSA8IDAgPyAwIDogcGFyc2VJbnQoZmlyc3RUZW1wKTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyQ2h1bmsoZmlyc3QsIHRoaXMuY2FjaGVkSXRlbXNMZW4pO1xuICAgICAgICAgICAgdGhpcy5sYXN0UmVwYWludFkgPSBzY3JvbGxQb3M7XG4gICAgfVxuICAgIHB1YmxpYyBmaWx0ZXJJbmZpbml0ZUxpc3QoZXZ0OiBhbnkpe1xuICAgICAgICB2YXIgZmlsdGVyZWRFbGVtczpBcnJheTxhbnk+ID0gW107XG4gICAgICAgIHRoaXMuZGF0YSA9IHRoaXMuY2FjaGVkSXRlbXMuc2xpY2UoKTtcbiAgICAgICAgaWYoZXZ0LnRhcmdldC52YWx1ZS50b1N0cmluZygpICE9ICcnKXtcbiAgICAgICAgICB0aGlzLmRhdGEuZmlsdGVyKGZ1bmN0aW9uKGVsOmFueSl7XG4gICAgICAgICAgICAgIGZvcih2YXIgcHJvcCBpbiBlbCl7XG4gICAgICAgICAgICAgICAgICBpZihlbFtwcm9wXS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihldnQudGFyZ2V0LnZhbHVlLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSkgPj0wICl7XG4gICAgICAgICAgICAgICAgICAgICAgZmlsdGVyZWRFbGVtcy5wdXNoKGVsKTtcbiAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICAgICAgLy90aGlzLmNhY2hlZEl0ZW1zID0gdGhpcy5kYXRhO1xuICAgICAgICAgICAgdGhpcy50b3RhbEhlaWdodCA9IHRoaXMuaXRlbUhlaWdodCAqIGZpbHRlcmVkRWxlbXMubGVuZ3RoO1xuICAgICAgICAgICAgdGhpcy50b3RhbFJvd3MgPSBmaWx0ZXJlZEVsZW1zLmxlbmd0aDtcbiAgICAgICAgICAgIHRoaXMuZGF0YSA9IFtdO1xuICAgICAgICAgICAgdGhpcy5kYXRhID0gZmlsdGVyZWRFbGVtcztcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmlldyh0aGlzLnNjcm9sbFRvcCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZihldnQudGFyZ2V0LnZhbHVlLnRvU3RyaW5nKCkgPT0gJycgJiYgdGhpcy5jYWNoZWRJdGVtcy5sZW5ndGggPiAwKXtcbiAgICAgICAgICAgIHRoaXMuZGF0YSA9IFtdO1xuICAgICAgICAgICAgdGhpcy5kYXRhID0gdGhpcy5jYWNoZWRJdGVtcztcbiAgICAgICAgICAgIHRoaXMudG90YWxIZWlnaHQgPSB0aGlzLml0ZW1IZWlnaHQgKiB0aGlzLmRhdGEubGVuZ3RoO1xuICAgICAgICAgICAgdGhpcy50b3RhbFJvd3MgPSB0aGlzLmRhdGEubGVuZ3RoO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWaWV3KHRoaXMuc2Nyb2xsVG9wKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZV0sXG4gICAgZGVjbGFyYXRpb25zOiBbQW5ndWxhck11bHRpU2VsZWN0LCBDbGlja091dHNpZGVEaXJlY3RpdmUsIFNjcm9sbERpcmVjdGl2ZSwgc3R5bGVEaXJlY3RpdmUsIExpc3RGaWx0ZXJQaXBlLCBJdGVtLCBUZW1wbGF0ZVJlbmRlcmVyLCBCYWRnZV0sXG4gICAgZXhwb3J0czogW0FuZ3VsYXJNdWx0aVNlbGVjdCwgQ2xpY2tPdXRzaWRlRGlyZWN0aXZlLCBTY3JvbGxEaXJlY3RpdmUsIHN0eWxlRGlyZWN0aXZlLCBMaXN0RmlsdGVyUGlwZSwgSXRlbSwgVGVtcGxhdGVSZW5kZXJlciwgQmFkZ2VdXG59KVxuZXhwb3J0IGNsYXNzIEFuZ3VsYXJNdWx0aVNlbGVjdE1vZHVsZSB7IH1cbiJdfQ==
411
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlzZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9tdWx0aXNlbGVjdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxRQUFRLEVBQStDLFlBQVksRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFrRCxNQUFNLGVBQWUsQ0FBQztBQUMzTixPQUFPLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUF3QixhQUFhLEVBQTBCLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0gsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBWSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUU1RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7QUFFNUQsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQVE7SUFDaEQsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixDQUFDO0lBQ2pELEtBQUssRUFBRSxJQUFJO0NBQ2QsQ0FBQztBQUNGLE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFRO0lBQzVDLE9BQU8sRUFBRSxhQUFhO0lBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsa0JBQWtCLENBQUM7SUFDakQsS0FBSyxFQUFFLElBQUk7Q0FDZCxDQUFBO0FBQ0QsTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFO0FBQ2xCLENBQUMsQ0FB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QVksRUFBRSxXQUFXLGFBbFgxQixrQkFBa0IsRUFvWEcscUJBQXFCLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLEtBQUs7eUdBRTFILHdCQUF3QixZQUp2QixZQUFZLEVBQUUsV0FBVzs7NEZBSTFCLHdCQUF3QjtrQkFMcEMsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsV0FBVyxDQUFDO29CQUNwQyxZQUFZLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxxQkFBcUIsRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDO29CQUN6SSxPQUFPLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxxQkFBcUIsRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDO2lCQUN2SSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBOZ01vZHVsZSwgU2ltcGxlQ2hhbmdlcywgT25DaGFuZ2VzLCBWaWV3RW5jYXBzdWxhdGlvbiwgQ29udGVudENoaWxkLCBWaWV3Q2hpbGQsIGZvcndhcmRSZWYsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgRWxlbWVudFJlZiwgQWZ0ZXJWaWV3SW5pdCwgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIE5HX1ZBTFVFX0FDQ0VTU09SLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMSURBVE9SUywgVmFsaWRhdG9yLCBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBMaXN0SXRlbSwgTXlFeGNlcHRpb24gfSBmcm9tICcuL211bHRpc2VsZWN0Lm1vZGVsJztcbmltcG9ydCB7IERyb3Bkb3duU2V0dGluZ3MgfSBmcm9tICcuL211bHRpc2VsZWN0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBDbGlja091dHNpZGVEaXJlY3RpdmUsIFNjcm9sbERpcmVjdGl2ZSwgc3R5bGVEaXJlY3RpdmUgfSBmcm9tICcuL2NsaWNrT3V0c2lkZSc7XG5pbXBvcnQgeyBMaXN0RmlsdGVyUGlwZSB9IGZyb20gJy4vbGlzdC1maWx0ZXInO1xuaW1wb3J0IHsgSXRlbSwgQmFkZ2UsIFRlbXBsYXRlUmVuZGVyZXIgfSBmcm9tICcuL21lbnUtaXRlbSc7XG5cbmV4cG9ydCBjb25zdCBEUk9QRE9XTl9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SOiBhbnkgPSB7XG4gICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQW5ndWxhck11bHRpU2VsZWN0KSxcbiAgICBtdWx0aTogdHJ1ZVxufTtcbmV4cG9ydCBjb25zdCBEUk9QRE9XTl9DT05UUk9MX1ZBTElEQVRJT046IGFueSA9IHtcbiAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEFuZ3VsYXJNdWx0aVNlbGVjdCksXG4gICAgbXVsdGk6IHRydWUsXG59XG5jb25zdCBub29wID0gKCkgPT4ge1xufTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhbmd1bGFyLW11bHRpc2VsZWN0LCBhbmd1bGFyMi1tdWx0aXNlbGVjdCcsXG4gICAgdGVtcGxhdGU6IFwiPGRpdiBjbGFzcz1cXFwic3RhY2tsaW5lLWRyb3Bkb3duXFxcIiBbbmdDbGFzc109XFxcImdldERyb3Bkb3duQ2xhc3NlcygpXFxcIiAoY2xpY2tPdXRzaWRlKT1cXFwiY2xvc2VEcm9wZG93bigpXFxcIj5cXG4gICAgPGRpdiBjbGFzcz1cXFwic2VsZWN0ZWQtbGlzdFxcXCI+XFxuICAgICAgICA8ZGl2IGNsYXNzPVxcXCJjLWJ0blxcXCIgKGNsaWNrKT1cXFwidG9nZ2xlRHJvcGRvd24oJGV2ZW50KVxcXCIgW25nQ2xhc3NdPVxcXCJ7J2Rpc2FibGVkJzogc2V0dGluZ3MuZGlzYWJsZWR9XFxcIj5cXG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cXFwic2VsZWN0ZWRJdGVtcz8ubGVuZ3RoID09IDBcXFwiPnt7c2V0dGluZ3MudGV4dH19PC9zcGFuPlxcbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVxcXCJzZXR0aW5ncy5zaW5nbGVTZWxlY3Rpb25cXFwiPlxcbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdGb3I9XFxcImxldCBpdGVtIG9mIHNlbGVjdGVkSXRlbXM7dHJhY2tCeTogdHJhY2tCeUZuO1xcXCI+XFxuICAgICAgICAgICAgICAgICAgICB7e2l0ZW1bc2V0dGluZ3MubGFiZWxLZXldfX1cXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxcbiAgICAgICAgICAgIDwvc3Bhbj5cXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVxcXCJjLWxpc3RcXFwiICpuZ0lmPVxcXCJzZWxlY3RlZEl0ZW1zPy5sZW5ndGggPiAwICYmICFzZXR0aW5ncy5zaW5nbGVTZWxlY3Rpb25cXFwiPlxcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVxcXCJjLXRva2VuXFxcIiAqbmdGb3I9XFxcImxldCBpdGVtIG9mIHNlbGVjdGVkSXRlbXM7dHJhY2tCeTogdHJhY2tCeUZuO2xldCBrID0gaW5kZXhcXFwiIFtoaWRkZW5dPVxcXCJrID4gc2V0dGluZ3MuYmFkZ2VTaG93TGltaXQtMVxcXCI+XFxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cXFwiIWJhZGdlVGVtcGxcXFwiIGNsYXNzPVxcXCJjLWxhYmVsXFxcIj57e2l0ZW1bc2V0dGluZ3MubGFiZWxLZXldfX08L3NwYW4+XFxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cXFwiYmFkZ2VUZW1wbFxcXCIgY2xhc3M9XFxcImMtbGFiZWxcXFwiPlxcbiAgICAgICAgICAgICAgICAgICAgICAgIDxjLXRlbXBsYXRlUmVuZGVyZXIgW2RhdGFdPVxcXCJiYWRnZVRlbXBsXFxcIiBbaXRlbV09XFxcIml0ZW1cXFwiPjwvYy10ZW1wbGF0ZVJlbmRlcmVyPlxcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XFxcImZhIGZhLXJlbW92ZVxcXCIgKGNsaWNrKT1cXFwib25JdGVtQ2xpY2soaXRlbSxrLCRldmVudClcXFwiPjwvc3Bhbj5cXG4gICAgICAgICAgICAgICAgPC9kaXY+XFxuICAgICAgICAgICAgPC9kaXY+IFxcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVxcXCJjb3VudHBsYWNlaG9sZGVyXFxcIiAqbmdJZj1cXFwic2VsZWN0ZWRJdGVtcz8ubGVuZ3RoID4gc2V0dGluZ3MuYmFkZ2VTaG93TGltaXRcXFwiPit7e3NlbGVjdGVkSXRlbXM/Lmxlbmd0aCAtIHNldHRpbmdzLmJhZGdlU2hvd0xpbWl0IH19PC9zcGFuPlxcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVxcXCJmYVxcXCIgW25nQ2xhc3NdPVxcXCJ7J2ZhLWFuZ2xlLWRvd24nOiAhaXNBY3RpdmUsJ2ZhLWFuZ2xlLXVwJzppc0FjdGl2ZX1cXFwiPjwvc3Bhbj5cXG4gICAgICAgIDwvZGl2PiAgICAgIFxcbiAgICA8L2Rpdj5cXG4gICAgPGRpdiBjbGFzcz1cXFwiZHJvcGRvd24tbGlzdFxcXCIgW2hpZGRlbl09XFxcIiFpc0FjdGl2ZVxcXCI+XFxuICAgIDxkaXYgY2xhc3M9XFxcImFycm93LXVwIGFycm93LTJcXFwiPjwvZGl2PlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJhcnJvdy11cFxcXCI+PC9kaXY+XFxuICAgIDxkaXYgY2xhc3M9XFxcImxpc3QtYXJlYVxcXCI+XFxuICAgICAgICA8ZGl2IGNsYXNzPVxcXCJwdXJlLWNoZWNrYm94IHNlbGVjdC1hbGxcXFwiICpuZ0lmPVxcXCJzZXR0aW5ncy5lbmFibGVDaGVja0FsbCAmJiAhc2V0dGluZ3Muc2luZ2xlU2VsZWN0aW9uICYmICFzZXR0aW5ncy5saW1pdFNlbGVjdGlvblxcXCIgKGNsaWNrKT1cXFwidG9nZ2xlU2VsZWN0QWxsKClcXFwiPlxcbiAgICAgICAgICAgIDxpbnB1dCAqbmdJZj1cXFwic2V0dGluZ3Muc2hvd0NoZWNrYm94XFxcIiB0eXBlPVxcXCJjaGVja2JveFxcXCIgW2NoZWNrZWRdPVxcXCJpc1NlbGVjdEFsbFxcXCIgW2Rpc2FibGVkXT1cXFwic2V0dGluZ3MubGltaXRTZWxlY3Rpb24gPT0gc2VsZWN0ZWRJdGVtcz8ubGVuZ3RoXFxcIi8+XFxuICAgICAgICAgICAgPGxhYmVsPlxcbiAgICAgICAgICAgICAgICA8c3BhbiBbaGlkZGVuXT1cXFwiaXNTZWxlY3RBbGxcXFwiPnt7c2V0dGluZ3Muc2VsZWN0QWxsVGV4dH19PC9zcGFuPlxcbiAgICAgICAgICAgICAgICA8c3BhbiBbaGlkZGVuXT1cXFwiIWlzU2VsZWN0QWxsXFxcIj57e3NldHRpbmdzLnVuU2VsZWN0QWxsVGV4dH19PC9zcGFuPlxcbiAgICAgICAgICAgIDwvbGFiZWw+XFxuICAgICAgICA8L2Rpdj4gICBcXG4gICAgICAgIDxkaXYgY2xhc3M9XFxcImxpc3QtZmlsdGVyXFxcIiAqbmdJZj1cXFwic2V0dGluZ3MuZW5hYmxlU2VhcmNoRmlsdGVyICYmICFzZXR0aW5ncy5sYXp5TG9hZGluZ1xcXCI+XFxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XFxcImZhIGZhLXNlYXJjaFxcXCI+PC9zcGFuPlxcbiAgICAgICAgICAgIDxpbnB1dCAjc2VhcmNoSW5wdXQgdHlwZT1cXFwidGV4dFxcXCIgW3BsYWNlaG9sZGVyXT1cXFwic2V0dGluZ3Muc2VhcmNoUGxhY2Vob2xkZXJUZXh0XFxcIiBbKG5nTW9kZWwpXT1cXFwiZmlsdGVyXFxcIj5cXG4gICAgICAgIDwvZGl2PiBcXG4gICAgICAgIDxkaXYgY2xhc3M9XFxcImxpc3QtZmlsdGVyXFxcIiAqbmdJZj1cXFwic2V0dGluZ3MuZW5hYmxlU2VhcmNoRmlsdGVyICYmIHNldHRpbmdzLmxhenlMb2FkaW5nXFxcIj5cXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cXFwiZmEgZmEtc2VhcmNoXFxcIj48L3NwYW4+XFxuICAgICAgICAgICAgPGlucHV0ICNzZWFyY2hJbnB1dCB0eXBlPVxcXCJ0ZXh0XFxcIiBbcGxhY2Vob2xkZXJdPVxcXCJzZXR0aW5ncy5zZWFyY2hQbGFjZWhvbGRlclRleHRcXFwiIChrZXl1cCk9XFxcImZpbHRlckluZmluaXRlTGlzdCgkZXZlbnQpXFxcIj5cXG4gICAgICAgIDwvZGl2PlxcbiAgICA8dWwgKm5nSWY9XFxcIiFzZXR0aW5ncy5ncm91cEJ5XFxcIiBbc3R5bGUubWF4SGVpZ2h0XSA9IFxcXCJzZXR0aW5ncy5tYXhIZWlnaHQrJ3B4J1xcXCIgY2xhc3M9XFxcImxhenlDb250YWluZXJcXFwiID5cXG4gICAgICAgIDxzcGFuICpuZ0lmPVxcXCJpdGVtVGVtcGxcXFwiPlxcbiAgICAgICAgICAgIDxsaSAqbmdGb3I9XFxcImxldCBpdGVtIG9mIGRhdGEgfCBsaXN0RmlsdGVyOmZpbHRlcjsgbGV0IGkgPSBpbmRleDtcXFwiIChjbGljayk9XFxcIm9uSXRlbUNsaWNrKGl0ZW0saSwkZXZlbnQpXFxcIiBjbGFzcz1cXFwicHVyZS1jaGVja2JveFxcXCI+XFxuICAgICAgICAgICAgPGlucHV0ICpuZ0lmPVxcXCJzZXR0aW5ncy5zaG93Q2hlY2tib3hcXFwiIHR5cGU9XFxcImNoZWNrYm94XFxcIiBbY2hlY2tlZF09XFxcImlzU2VsZWN0ZWQoaXRlbSlcXFwiIFtkaXNhYmxlZF09XFxcInNldHRpbmdzLmxpbWl0U2VsZWN0aW9uID09IHNlbGVjdGVkSXRlbXM/Lmxlbmd0aCAmJiAhaXNTZWxlY3RlZChpdGVtKVxcXCIvPlxcbiAgICAgICAgICAgIDxsYWJlbD48L2xhYmVsPlxcbiAgICAgICAgICAgIDxjLXRlbXBsYXRlUmVuZGVyZXIgW2RhdGFdPVxcXCJpdGVtVGVtcGxcXFwiIFtpdGVtXT1cXFwiaXRlbVxcXCI+PC9jLXRlbXBsYXRlUmVuZGVyZXI+XFxuICAgICAgICA8L2xpPlxcbiAgICAgICAgPC9zcGFuPlxcbiAgICAgICAgPHNwYW4gKm5nSWY9XFxcIiFpdGVtVGVtcGwgJiYgIXNldHRpbmdzLmxhenlMb2FkaW5nXFxcIiA+XFxuICAgICAgICA8bGkgKm5nRm9yPVxcXCJsZXQgaXRlbSBvZiBkYXRhIHwgbGlzdEZpbHRlcjpmaWx0ZXI7IGxldCBpID0gaW5kZXg7XFxcIiAoY2xpY2spPVxcXCJvbkl0ZW1DbGljayhpdGVtLGksJGV2ZW50KVxcXCIgY2xhc3M9XFxcInB1cmUtY2hlY2tib3hcXFwiPlxcbiAgICAgICAgICAgIDxpbnB1dCAqbmdJZj1cXFwic2V0dGluZ3Muc2hvd0NoZWNrYm94XFxcIiB0eXBlPVxcXCJjaGVja2JveFxcXCIgW2NoZWNrZWRdPVxcXCJpc1NlbGVjdGVkKGl0ZW0pXFxcIiBbZGlzYWJsZWRdPVxcXCJzZXR0aW5ncy5saW1pdFNlbGVjdGlvbiA9PSBzZWxlY3RlZEl0ZW1zPy5sZW5ndGggJiYgIWlzU2VsZWN0ZWQoaXRlbSlcXFwiLz5cXG4gICAgICAgICAgICA8bGFiZWw+e3tpdGVtW3NldHRpbmdzLmxhYmVsS2V5XX19PC9sYWJlbD5cXG4gICAgICAgIDwvbGk+XFxuICAgICAgICA8L3NwYW4+XFxuICAgICAgICA8c3BhbiAqbmdJZj1cXFwiIWl0ZW1UZW1wbCAmJiBzZXR0aW5ncy5sYXp5TG9hZGluZ1xcXCIgPlxcbiAgICAgICAgICAgIDxkaXYgW25nU3R5bGVdPVxcXCJ7J2hlaWdodCc6dG90YWxIZWlnaHQrJ3B4J31cXFwiIHN0eWxlPVxcXCJwb3NpdGlvbjogcmVsYXRpdmU7XFxcIj5cXG5cXG4gICAgICAgICAgICBcXG4gICAgICAgIDxsaSAqbmdGb3I9XFxcImxldCBpdGVtIG9mIGNodW5rQXJyYXkgfCBsaXN0RmlsdGVyOmZpbHRlcjsgbGV0IGkgPSBpbmRleDtcXFwiIChjbGljayk9XFxcIm9uSXRlbUNsaWNrKGl0ZW0saSwkZXZlbnQpXFxcIiBzdHlsZT1cXFwicG9zaXRpb246IGFic29sdXRlO3dpZHRoOiAxMDAlO1xcXCIgY2xhc3M9XFxcInB1cmUtY2hlY2tib3hcXFwiIFtzdHlsZVByb3BdPVxcXCJjaHVua0luZGV4W2ldXFxcIj5cXG4gICAgICAgICAgICA8aW5wdXQgKm5nSWY9XFxcInNldHRpbmdzLnNob3dDaGVja2JveFxcXCIgdHlwZT1cXFwiY2hlY2tib3hcXFwiIFtjaGVja2VkXT1cXFwiaXNTZWxlY3RlZChpdGVtKVxcXCIgW2Rpc2FibGVkXT1cXFwic2V0dGluZ3MubGltaXRTZWxlY3Rpb24gPT0gc2VsZWN0ZWRJdGVtcz8ubGVuZ3RoICYmICFpc1NlbGVjdGVkKGl0ZW0pXFxcIi8+XFxuICAgICAgICAgICAgPGxhYmVsPnt7aXRlbVtzZXR0aW5ncy5sYWJlbEtleV19fTwvbGFiZWw+XFxuICAgICAgICA8L2xpPlxcbiAgICAgICAgPC9kaXY+XFxuICAgICAgICA8L3NwYW4+XFxuICAgIDwvdWw+XFxuICAgIDxkaXYgKm5nSWY9XFxcInNldHRpbmdzLmdyb3VwQnlcXFwiIFtzdHlsZS5tYXhIZWlnaHRdID0gXFxcInNldHRpbmdzLm1heEhlaWdodCsncHgnXFxcIiBzdHlsZT1cXFwib3ZlcmZsb3c6IGF1dG87XFxcIj5cXG4gICAgPHVsICpuZ0Zvcj1cXFwibGV0IG9iaiBvZiBncm91cGVkRGF0YSA7IGxldCBpID0gaW5kZXg7XFxcIiBjbGFzcz1cXFwibGlzdC1ncnBcXFwiPlxcbiAgICAgICAgPGg0ICpuZ0lmPVxcXCIob2JqLnZhbHVlIHwgbGlzdEZpbHRlcjpmaWx0ZXIgKS5sZW5ndGggPiAwXFxcIj57e29iai5rZXl9fTwvaDQ+XFxuICAgICAgICA8c3BhbiAqbmdJZj1cXFwiaXRlbVRlbXBsXFxcIiA+XFxuICAgICAgICA8bGkgKm5nRm9yPVxcXCJsZXQgaXRlbSBvZiBvYmoudmFsdWUgfCBsaXN0RmlsdGVyOmZpbHRlcjsgbGV0IGkgPSBpbmRleDtcXFwiIChjbGljayk9XFxcIm9uSXRlbUNsaWNrKGl0ZW0saSwkZXZlbnQpXFxcIiBjbGFzcz1cXFwicHVyZS1jaGVja2JveFxcXCI+XFxuICAgICAgICAgICAgPGlucHV0ICpuZ0lmPVxcXCJzZXR0aW5ncy5zaG93Q2hlY2tib3hcXFwiIHR5cGU9XFxcImNoZWNrYm94XFxcIiBbY2hlY2tlZF09XFxcImlzU2VsZWN0ZWQoaXRlbSlcXFwiIFtkaXNhYmxlZF09XFxcInNldHRpbmdzLmxpbWl0U2VsZWN0aW9uID09IHNlbGVjdGVkSXRlbXM/Lmxlbmd0aCAmJiAhaXNTZWxlY3RlZChpdGVtKVxcXCIvPlxcbiAgICAgICAgICAgIDxsYWJlbD48L2xhYmVsPlxcbiAgICAgICAgICAgIDxjLXRlbXBsYXRlUmVuZGVyZXIgW2RhdGFdPVxcXCJpdGVtVGVtcGxcXFwiIFtpdGVtXT1cXFwiaXRlbVxcXCI+PC9jLXRlbXBsYXRlUmVuZGVyZXI+XFxuICAgICAgICA8L2xpPlxcbiAgICAgICAgPC9zcGFuPlxcbiAgICAgICAgPHNwYW4gKm5nSWY9XFxcIiFpdGVtVGVtcGxcXFwiID5cXG4gICAgICAgIDxsaSAqbmdGb3I9XFxcImxldCBpdGVtIG9mIG9iai52YWx1ZSB8IGxpc3RGaWx0ZXI6ZmlsdGVyOyBsZXQgaSA9IGluZGV4O1xcXCIgKGNsaWNrKT1cXFwib25JdGVtQ2xpY2soaXRlbSxpLCRldmVudClcXFwiIGNsYXNzPVxcXCJwdXJlLWNoZWNrYm94XFxcIj5cXG4gICAgICAgICAgICA8aW5wdXQgKm5nSWY9XFxcInNldHRpbmdzLnNob3dDaGVja2JveFxcXCIgdHlwZT1cXFwiY2hlY2tib3hcXFwiIFtjaGVja2VkXT1cXFwiaXNTZWxlY3RlZChpdGVtKVxcXCIgW2Rpc2FibGVkXT1cXFwic2V0dGluZ3MubGltaXRTZWxlY3Rpb24gPT0gc2VsZWN0ZWRJdGVtcz8ubGVuZ3RoICYmICFpc1NlbGVjdGVkKGl0ZW0pXFxcIi8+XFxuICAgICAgICAgICAgPGxhYmVsPnt7aXRlbVtzZXR0aW5ncy5sYWJlbEtleV19fTwvbGFiZWw+XFxuICAgICAgICA8L2xpPlxcbiAgICAgICAgPC9zcGFuPlxcbiAgICA8L3VsPlxcbiAgICA8L2Rpdj5cXG4gICAgPGg1IGNsYXNzPVxcXCJsaXN0LW1lc3NhZ2VcXFwiICpuZ0lmPVxcXCJkYXRhPy5sZW5ndGggPT0gMFxcXCI+e3tzZXR0aW5ncy5ub0RhdGFMYWJlbH19PC9oNT5cXG4gICAgPC9kaXY+XFxuICAgIDwvZGl2PlxcbjwvZGl2PlxcblwiLFxuICAgIGhvc3Q6IHsgJ1tjbGFzc10nOiAnZGVmYXVsdFNldHRpbmdzLmNsYXNzZXMnIH0sXG4gICAgc3R5bGVzOiBbXCIuc3RhY2tsaW5lLWRyb3Bkb3duIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG59XFxuXFxuLmMtYnRuIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIGJhY2tncm91bmQ6ICNmZmY7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xcbiAgZm9udC1zaXplOiAxNHB4O1xcbiAgY29sb3I6ICMzMzM7XFxufVxcblxcbi5jLWJ0bi5kaXNhYmxlZCB7XFxuICBiYWNrZ3JvdW5kOiAjY2NjO1xcbn1cXG5cXG4uYy1idG46Zm9jdXMge1xcbiAgb3V0bGluZTogbm9uZTtcXG59XFxuXFxuLnNlbGVjdGVkLWxpc3QgLmMtbGlzdCB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgZmxleDogMSAxIGF1dG87XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgZmxleC13cmFwOiB3cmFwO1xcbiAgbWluLXdpZHRoOiAwO1xcbiAgZmxvYXQ6IG5vbmU7XFxuICBwYWRkaW5nOiAwcHg7XFxuICBtYXJnaW46IDBweDtcXG4gIHdpZHRoOiBhdXRvO1xcbn1cXG4uc2VsZWN0ZWQtbGlzdCAuYy1saXN0IC5jLXRva2VuIHtcXG4gIGxpc3Qtc3R5bGU6IG5vbmU7XFxuICBwYWRkaW5nOiAwcHggNXB4O1xcbiAgYmFja2dyb3VuZDogIzAwNzlGRTtcXG4gIGNvbG9yOiAjZmZmO1xcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xcbiAgbWFyZ2luLXJpZ2h0OiA0cHg7XFxuICBtYXJnaW4tdG9wOiAycHg7XFxuICBmbG9hdDogbGVmdDtcXG59XFxuLnNlbGVjdGVkLWxpc3QgLmMtbGlzdCAuYy10b2tlbiAuYy1sYWJlbCB7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIGZsb2F0OiBsZWZ0O1xcbiAgLyp3aWR0aDogNTBweDtcXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcXG4gIG92ZXJmbG93OiBoaWRkZW47Ki9cXG59XFxuLnNlbGVjdGVkLWxpc3QgLmMtbGlzdCAuYy10b2tlbiAuZmEtcmVtb3ZlIHtcXG4gIG1hcmdpbi1sZWZ0OiAxcHg7XFxuICBmb250LXNpemU6IDEycHg7XFxufVxcbi5zZWxlY3RlZC1saXN0IC5mYS1hbmdsZS1kb3duLCAuc2VsZWN0ZWQtbGlzdCAuZmEtYW5nbGUtdXAge1xcbiAgZm9udC1zaXplOiAxNXB0O1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgcmlnaHQ6IDEwcHg7XFxuICB0b3A6IDUwJTtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcXG59XFxuLnNlbGVjdGVkLWxpc3QgLmNvdW50cGxhY2Vob2xkZXIge1xcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XFxuICBmbGV4OiAwIDAgYXV0bztcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcXG4gIG1hcmdpbjogMCAwIDAgNnB4O1xcbiAgbGluZS1oZWlnaHQ6IDE7XFxufVxcbi5zZWxlY3RlZC1saXN0IC5jLWJ0biB7XFxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgd2lkdGg6IDEwMCU7XFxuICBib3gtc2hhZG93OiAwcHggMXB4IDVweCAjOTU5NTk1O1xcbiAgcGFkZGluZzogMTBweCAzNnB4IDEwcHggMTBweDtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgZmxleC13cmFwOiBub3dyYXA7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxufVxcblxcbi5kcm9wZG93bi1saXN0IHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHBhZGRpbmctdG9wOiAxNHB4O1xcbiAgd2lkdGg6IDEwMCU7XFxuICB6LWluZGV4OiA5OTk5O1xcbn1cXG4uZHJvcGRvd24tbGlzdCB1bCB7XFxuICBwYWRkaW5nOiAwcHg7XFxuICBsaXN0LXN0eWxlOiBub25lO1xcbiAgb3ZlcmZsb3c6IGF1dG87XFxuICBtYXJnaW46IDBweDtcXG59XFxuLmRyb3Bkb3duLWxpc3QgdWwgbGkge1xcbiAgcGFkZGluZzogMTBweCAxMHB4O1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbiAgdGV4dC1hbGlnbjogbGVmdDtcXG59XFxuLmRyb3Bkb3duLWxpc3QgdWwgbGk6Zmlyc3QtY2hpbGQge1xcbiAgcGFkZGluZy10b3A6IDEwcHg7XFxufVxcbi5kcm9wZG93bi1saXN0IHVsIGxpOmxhc3QtY2hpbGQge1xcbiAgcGFkZGluZy1ib3R0b206IDEwcHg7XFxufVxcbi5kcm9wZG93bi1saXN0IHVsIGxpOmhvdmVyIHtcXG4gIGJhY2tncm91bmQ6ICNmNWY1ZjU7XFxufVxcbi5kcm9wZG93bi1saXN0IDo6LXdlYmtpdC1zY3JvbGxiYXIge1xcbiAgd2lkdGg6IDhweDtcXG59XFxuLmRyb3Bkb3duLWxpc3QgOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XFxuICBiYWNrZ3JvdW5kOiAjY2NjY2NjO1xcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xcbn1cXG4uZHJvcGRvd24tbGlzdCA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcXG4gIGJhY2tncm91bmQ6ICNmMmYyZjI7XFxufVxcblxcbi5hcnJvdy11cCB7XFxuICB3aWR0aDogMDtcXG4gIGhlaWdodDogMDtcXG4gIGJvcmRlci1sZWZ0OiAxM3B4IHNvbGlkIHRyYW5zcGFyZW50O1xcbiAgYm9yZGVyLXJpZ2h0OiAxM3B4IHNvbGlkIHRyYW5zcGFyZW50O1xcbiAgYm9yZGVyLWJvdHRvbTogMTVweCBzb2xpZCAjZmZmO1xcbiAgbWFyZ2luLWxlZnQ6IDE1cHg7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDA7XFxufVxcblxcbi5hcnJvdy0yIHtcXG4gIGJvcmRlci1ib3R0b206IDE1cHggc29saWQgI2NjYztcXG4gIHRvcDogLTFweDtcXG59XFxuXFxuLmxpc3QtYXJlYSB7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xcbiAgYmFja2dyb3VuZDogI2ZmZjtcXG4gIG1hcmdpbjogMHB4O1xcbiAgYm94LXNoYWRvdzogMHB4IDFweCA1cHggIzk1OTU5NTtcXG59XFxuXFxuLnNlbGVjdC1hbGwge1xcbiAgcGFkZGluZzogMTBweDtcXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1xcbiAgdGV4dC1hbGlnbjogbGVmdDtcXG59XFxuXFxuLmxpc3QtZmlsdGVyIHtcXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbn1cXG4ubGlzdC1maWx0ZXIgaW5wdXQge1xcbiAgYm9yZGVyOiAwcHg7XFxuICB3aWR0aDogMTAwJTtcXG4gIGhlaWdodDogMzVweDtcXG4gIHBhZGRpbmc6IDBweCAwcHggMHB4IDM1cHg7XFxufVxcbi5saXN0LWZpbHRlciBpbnB1dDpmb2N1cyB7XFxuICBvdXRsaW5lOiBub25lO1xcbn1cXG4ubGlzdC1maWx0ZXIgLmZhIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMTBweDtcXG4gIGxlZnQ6IDEzcHg7XFxuICBjb2xvcjogIzg4ODtcXG59XFxuXFxuLnB1cmUtY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF0ge1xcbiAgYm9yZGVyOiAwO1xcbiAgY2xpcDogcmVjdCgwIDAgMCAwKTtcXG4gIGhlaWdodDogMXB4O1xcbiAgbWFyZ2luOiAtMXB4O1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIHBhZGRpbmc6IDA7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB3aWR0aDogMXB4O1xcbn1cXG5cXG4ucHVyZS1jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XTpmb2N1cyArIGxhYmVsOmJlZm9yZSxcXG4ucHVyZS1jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XTpob3ZlciArIGxhYmVsOmJlZm9yZSB7XFxuICBib3JkZXItY29sb3I6ICMwMDc5RkU7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJmMmYyO1xcbn1cXG5cXG4ucHVyZS1jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XTphY3RpdmUgKyBsYWJlbDpiZWZvcmUge1xcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMHM7XFxufVxcblxcbi5wdXJlLWNoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdICsgbGFiZWwge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgcGFkZGluZy1sZWZ0OiAyZW07XFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxuICBtYXJnaW46IDBweDtcXG4gIGNvbG9yOiAjMDAwO1xcbiAgZm9udC13ZWlnaHQ6IDMwMDtcXG59XFxuXFxuLnB1cmUtY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF0gKyBsYWJlbDpiZWZvcmUge1xcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XFxuICBjb250ZW50OiBcXFwiXFxcIjtcXG4gIGNvbG9yOiAjMDA3OUZFO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiA1MCU7XFxuICBsZWZ0OiAwO1xcbiAgd2lkdGg6IDE0cHg7XFxuICBoZWlnaHQ6IDE0cHg7XFxuICBtYXJnaW4tdG9wOiAtOXB4O1xcbiAgYm9yZGVyOiAycHggc29saWQgIzAwNzlGRTtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gIHRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2U7XFxufVxcblxcbi5wdXJlLWNoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdICsgbGFiZWw6YWZ0ZXIge1xcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XFxuICBjb250ZW50OiBcXFwiXFxcIjtcXG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDc5RkU7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDUwJTtcXG4gIGxlZnQ6IDRweDtcXG4gIHdpZHRoOiAxMHB4O1xcbiAgaGVpZ2h0OiAxMHB4O1xcbiAgbWFyZ2luLXRvcDogLTVweDtcXG4gIHRyYW5zZm9ybTogc2NhbGUoMCk7XFxuICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCU7XFxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjAwbXMgZWFzZS1vdXQ7XFxufVxcblxcbi5wdXJlLWNoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdOmRpc2FibGVkICsgbGFiZWw6YmVmb3JlIHtcXG4gIGJvcmRlci1jb2xvcjogI2NjY2NjYztcXG59XFxuXFxuLnB1cmUtY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF06ZGlzYWJsZWQ6Zm9jdXMgKyBsYWJlbDpiZWZvcmUgLnB1cmUtY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF06ZGlzYWJsZWQ6aG92ZXIgKyBsYWJlbDpiZWZvcmUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcXG59XFxuXFxuLnB1cmUtY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF06ZGlzYWJsZWQ6Y2hlY2tlZCArIGxhYmVsOmJlZm9yZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjY2NjO1xcbn1cXG5cXG4ucHVyZS1jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XSArIGxhYmVsOmFmdGVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgdG9wOiA1MCU7XFxuICBsZWZ0OiA0cHg7XFxuICB3aWR0aDogOHB4O1xcbiAgaGVpZ2h0OiAzcHg7XFxuICBtYXJnaW4tdG9wOiAtNHB4O1xcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcXG4gIGJvcmRlci1jb2xvcjogI2ZmZmZmZjtcXG4gIGJvcmRlci13aWR0aDogMCAwIDNweCAzcHg7XFxuICBib3JkZXItaW1hZ2U6IG5vbmU7XFxuICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHNjYWxlKDApO1xcbn1cXG5cXG4ucHVyZS1jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkICsgbGFiZWw6YWZ0ZXIge1xcbiAgY29udGVudDogXFxcIlxcXCI7XFxuICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHNjYWxlKDEpO1xcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDIwMG1zIGVhc2Utb3V0O1xcbn1cXG5cXG4ucHVyZS1jaGVja2JveCBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkICsgbGFiZWw6YmVmb3JlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xcbn1cXG5cXG4ucHVyZS1jaGVja2JveCBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkICsgbGFiZWw6YWZ0ZXIge1xcbiAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcXG59XFxuXFxuLnB1cmUtY2hlY2tib3ggaW5wdXRbdHlwZT1yYWRpb10gKyBsYWJlbDpiZWZvcmUge1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbn1cXG5cXG4ucHVyZS1jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkICsgbGFiZWw6YmVmb3JlIHtcXG4gIGJhY2tncm91bmQ6ICMwMDc5RkU7XFxufVxcblxcbi5wdXJlLWNoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQgKyBsYWJlbDphZnRlciB7XFxuICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHNjYWxlKDEpO1xcbn1cXG5cXG4ubGlzdC1tZXNzYWdlIHtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG59XFxuXFxuLmxpc3QtZ3JwIHtcXG4gIHBhZGRpbmc6IDAgMTVweCAhaW1wb3J0YW50O1xcbn1cXG5cXG4ubGlzdC1ncnAgaDQge1xcbiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XFxuICBtYXJnaW46IDE1cHggMHB4IDBweCAwcHg7XFxuICBmb250LXNpemU6IDE0cHg7XFxuICBmb250LXdlaWdodDogNzAwO1xcbn1cXG5cXG4ubGlzdC1ncnAgPiBsaSB7XFxuICBwYWRkaW5nLWxlZnQ6IDE1cHggIWltcG9ydGFudDtcXG59XFxuXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1tYXRlcmlhbCxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWRhcmssXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1jdXN0b20ge1xcbiAgLS1tcy1wcmltYXJ5OiAjM2Y1MWI1O1xcbiAgLS1tcy1wcmltYXJ5LXNvZnQ6IHJnYmEoNjMsIDgxLCAxODEsIDAuMTIpO1xcbiAgLS1tcy1zdXJmYWNlOiAjZmZmZmZmO1xcbiAgLS1tcy1zdXJmYWNlLXNvZnQ6ICNmNWY3ZmI7XFxuICAtLW1zLXN1cmZhY2UtbXV0ZWQ6ICNlOGVhZjY7XFxuICAtLW1zLW91dGxpbmU6ICNjNWNhZTk7XFxuICAtLW1zLW91dGxpbmUtc3Ryb25nOiAjNzk4NmNiO1xcbiAgLS1tcy1vbi1zdXJmYWNlOiAjMjEyMTIxO1xcbiAgLS1tcy1vbi1zdXJmYWNlLW11dGVkOiAjNWY2MzY4O1xcbiAgLS1tcy1jaGlwLWJnOiAjZThlYWY2O1xcbiAgLS1tcy1jaGlwLXRleHQ6ICMzMDNmOWY7XFxuICAtLW1zLWNoaXAtcmVtb3ZlOiAjMzAzZjlmO1xcbiAgLS1tcy1kaXZpZGVyOiByZ2JhKDEyNSwgMTE5LCAxMzQsIDAuMTYpO1xcbiAgLS1tcy1zZWN0aW9uLWJnOiByZ2JhKDI0NywgMjQyLCAyNTAsIDAuNzYpO1xcbiAgLS1tcy1zZWxlY3RlZC10ZXh0OiB2YXIoLS1tcy1wcmltYXJ5KTtcXG4gIC0tbXMtc2hhZG93OiAwIDFweCAycHggcmdiYSgzMywgMzMsIDMzLCAwLjE2KSwgMCAxMnB4IDMycHggcmdiYSg2MywgODEsIDE4MSwgMC4xMik7XFxuICAtLW1zLXNoYWRvdy1zb2Z0OiAwIDFweCAycHggcmdiYSgzMywgMzMsIDMzLCAwLjEyKSwgMCA0cHggMTJweCByZ2JhKDMzLCAzMywgMzMsIDAuMDgpO1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICB3aWR0aDogMTAwJTtcXG4gIGNvbG9yOiB2YXIoLS1tcy1vbi1zdXJmYWNlKTtcXG4gIGZvbnQ6IGluaGVyaXQ7XFxufVxcblxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtZGFyayB7XFxuICAtLW1zLXByaW1hcnk6ICM4YWI0Zjg7XFxuICAtLW1zLXByaW1hcnktc29mdDogcmdiYSgxMzgsIDE4MCwgMjQ4LCAwLjE4KTtcXG4gIC0tbXMtc3VyZmFjZTogIzE1MWEyMztcXG4gIC0tbXMtc3VyZmFjZS1zb2Z0OiAjMjAyNzM2O1xcbiAgLS1tcy1zdXJmYWNlLW11dGVkOiAjMTExNzIyO1xcbiAgLS1tcy1vdXRsaW5lOiAjMzg0NDU2O1xcbiAgLS1tcy1vdXRsaW5lLXN0cm9uZzogIzhhYjRmODtcXG4gIC0tbXMtb24tc3VyZmFjZTogI2VkZjJmNztcXG4gIC0tbXMtb24tc3VyZmFjZS1tdXRlZDogI2FhYjZjNTtcXG4gIC0tbXMtY2hpcC1iZzogIzI2MzI0NztcXG4gIC0tbXMtY2hpcC10ZXh0OiAjZDdlNmZmO1xcbiAgLS1tcy1jaGlwLXJlbW92ZTogI2Q3ZTZmZjtcXG4gIC0tbXMtZGl2aWRlcjogcmdiYSgxNzAsIDE4MiwgMTk3LCAwLjE4KTtcXG4gIC0tbXMtc2VjdGlvbi1iZzogIzEwMTYyMDtcXG4gIC0tbXMtc2VsZWN0ZWQtdGV4dDogI2Q3ZTZmZjtcXG4gIC0tbXMtc2hhZG93OiAwIDIwcHggNTBweCByZ2JhKDAsIDAsIDAsIDAuNDIpO1xcbiAgLS1tcy1zaGFkb3ctc29mdDogMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC40NSksIDAgMTBweCAyNHB4IHJnYmEoMCwgMCwgMCwgMC4yOCk7XFxufVxcblxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtY3VzdG9tIHtcXG4gIC0tbXMtcHJpbWFyeTogdmFyKC0tc3RhY2tsaW5lLW1zLXByaW1hcnksICMwZjc2NmUpO1xcbiAgLS1tcy1wcmltYXJ5LXNvZnQ6IHZhcigtLXN0YWNrbGluZS1tcy1wcmltYXJ5LXNvZnQsIHJnYmEoMTUsIDExOCwgMTEwLCAwLjE0KSk7XFxuICAtLW1zLXN1cmZhY2U6IHZhcigtLXN0YWNrbGluZS1tcy1zdXJmYWNlLCAjZmZmZmZmKTtcXG4gIC0tbXMtc3VyZmFjZS1zb2Z0OiB2YXIoLS1zdGFja2xpbmUtbXMtc3VyZmFjZS1zb2Z0LCAjZWNmZGY1KTtcXG4gIC0tbXMtc3VyZmFjZS1tdXRlZDogdmFyKC0tc3RhY2tsaW5lLW1zLXN1cmZhY2UtbXV0ZWQsICNkMWZhZTUpO1xcbiAgLS1tcy1vdXRsaW5lOiB2YXIoLS1zdGFja2xpbmUtbXMtb3V0bGluZSwgIzk5ZjZlNCk7XFxuICAtLW1zLW91dGxpbmUtc3Ryb25nOiB2YXIoLS1zdGFja2xpbmUtbXMtb3V0bGluZS1zdHJvbmcsICMwZjc2NmUpO1xcbiAgLS1tcy1vbi1zdXJmYWNlOiB2YXIoLS1zdGFja2xpbmUtbXMtb24tc3VyZmFjZSwgIzEwMmEyYSk7XFxuICAtLW1zLW9uLXN1cmZhY2UtbXV0ZWQ6IHZhcigtLXN0YWNrbGluZS1tcy1vbi1zdXJmYWNlLW11dGVkLCAjNDc2MTVmKTtcXG4gIC0tbXMtY2hpcC1iZzogdmFyKC0tc3RhY2tsaW5lLW1zLWNoaXAtYmcsICNjY2ZiZjEpO1xcbiAgLS1tcy1jaGlwLXRleHQ6IHZhcigtLXN0YWNrbGluZS1tcy1jaGlwLXRleHQsICMxMTVlNTkpO1xcbiAgLS1tcy1jaGlwLXJlbW92ZTogdmFyKC0tc3RhY2tsaW5lLW1zLWNoaXAtcmVtb3ZlLCAjMTE1ZTU5KTtcXG4gIC0tbXMtZGl2aWRlcjogdmFyKC0tc3RhY2tsaW5lLW1zLWRpdmlkZXIsIHJnYmEoMTUsIDExOCwgMTEwLCAwLjE2KSk7XFxuICAtLW1zLXNlY3Rpb24tYmc6IHZhcigtLXN0YWNrbGluZS1tcy1zZWN0aW9uLWJnLCAjZjBmZGZhKTtcXG4gIC0tbXMtc2VsZWN0ZWQtdGV4dDogdmFyKC0tc3RhY2tsaW5lLW1zLXNlbGVjdGVkLXRleHQsIHZhcigtLW1zLXByaW1hcnkpKTtcXG4gIC0tbXMtc2hhZG93OiB2YXIoLS1zdGFja2xpbmUtbXMtc2hhZG93LCAwIDE4cHggNDJweCByZ2JhKDE1LCAxMTgsIDExMCwgMC4xNSkpO1xcbiAgLS1tcy1zaGFkb3ctc29mdDogdmFyKC0tc3RhY2tsaW5lLW1zLXNoYWRvdy1zb2Z0LCAwIDFweCAycHggcmdiYSgxNSwgMTE4LCAxMTAsIDAuMTYpLCAwIDhweCAxOHB4IHJnYmEoMTUsIDExOCwgMTEwLCAwLjA5KSk7XFxufVxcblxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtbWF0ZXJpYWwgLnNlbGVjdGVkLWxpc3QsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1kYXJrIC5zZWxlY3RlZC1saXN0LFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtY3VzdG9tIC5zZWxlY3RlZC1saXN0IHtcXG4gIHdpZHRoOiAxMDAlO1xcbn1cXG5cXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLW1hdGVyaWFsIC5zZWxlY3RlZC1saXN0IC5jLWJ0bixcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWRhcmsgLnNlbGVjdGVkLWxpc3QgLmMtYnRuLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtY3VzdG9tIC5zZWxlY3RlZC1saXN0IC5jLWJ0biB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIGZsZXgtd3JhcDogbm93cmFwO1xcbiAgZ2FwOiA4cHg7XFxuICB3aWR0aDogMTAwJTtcXG4gIG1pbi1oZWlnaHQ6IDU2cHg7XFxuICBwYWRkaW5nOiAxMXB4IDU0cHggMTFweCAxNnB4O1xcbiAgYm9yZGVyLXJhZGl1czogMThweDtcXG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLW1zLW91dGxpbmUpO1xcbiAgYmFja2dyb3VuZDogdmFyKC0tbXMtc3VyZmFjZSk7XFxuICBib3gtc2hhZG93OiB2YXIoLS1tcy1zaGFkb3ctc29mdCk7XFxuICBjb2xvcjogdmFyKC0tbXMtb24tc3VyZmFjZSk7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxuICBmb250LXNpemU6IGluaGVyaXQ7XFxuICBsaW5lLWhlaWdodDogMS40NTtcXG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjE2cyBlYXNlLCBib3gtc2hhZG93IDAuMTZzIGVhc2UsIGJhY2tncm91bmQtY29sb3IgMC4xNnMgZWFzZSwgdHJhbnNmb3JtIDAuMTZzIGVhc2U7XFxufVxcblxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtbWF0ZXJpYWwgLnNlbGVjdGVkLWxpc3QgLmMtYnRuOmhvdmVyLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtZGFyayAuc2VsZWN0ZWQtbGlzdCAuYy1idG46aG92ZXIsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1jdXN0b20gLnNlbGVjdGVkLWxpc3QgLmMtYnRuOmhvdmVyIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tbXMtb3V0bGluZS1zdHJvbmcpO1xcbn1cXG5cXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLW1hdGVyaWFsIC5zZWxlY3RlZC1saXN0IC5jLWJ0bi5kaXNhYmxlZCxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWRhcmsgLnNlbGVjdGVkLWxpc3QgLmMtYnRuLmRpc2FibGVkLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtY3VzdG9tIC5zZWxlY3RlZC1saXN0IC5jLWJ0bi5kaXNhYmxlZCB7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1tcy1zdXJmYWNlKTtcXG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XFxuICBvcGFjaXR5OiAwLjcyO1xcbn1cXG5cXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLW1hdGVyaWFsIC5zZWxlY3RlZC1saXN0IC5jLWxpc3QsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1kYXJrIC5zZWxlY3RlZC1saXN0IC5jLWxpc3QsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1jdXN0b20gLnNlbGVjdGVkLWxpc3QgLmMtbGlzdCB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgZmxleDogMSAxIGF1dG87XFxuICBmbGV4LXdyYXA6IHdyYXA7XFxuICBnYXA6IDhweDtcXG4gIHdpZHRoOiBhdXRvO1xcbiAgbWluLXdpZHRoOiAwO1xcbiAgbWFyZ2luOiAwO1xcbiAgcGFkZGluZzogMDtcXG4gIGZsb2F0OiBub25lO1xcbn1cXG5cXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLW1hdGVyaWFsIC5zZWxlY3RlZC1saXN0IC5jLWxpc3QgLmMtdG9rZW4sXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1kYXJrIC5zZWxlY3RlZC1saXN0IC5jLWxpc3QgLmMtdG9rZW4sXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1jdXN0b20gLnNlbGVjdGVkLWxpc3QgLmMtbGlzdCAuYy10b2tlbiB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgbWluLWhlaWdodDogMzJweDtcXG4gIG1heC13aWR0aDogMTAwJTtcXG4gIHBhZGRpbmc6IDZweCAzMHB4IDZweCAxMnB4O1xcbiAgYmFja2dyb3VuZDogdmFyKC0tbXMtY2hpcC1iZyk7XFxuICBjb2xvcjogdmFyKC0tbXMtY2hpcC10ZXh0KTtcXG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMTAzLCA4MCwgMTY0LCAwLjA4KTtcXG4gIGxpbmUtaGVpZ2h0OiAxLjM1O1xcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcXG4gIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xcbiAgbWFyZ2luOiAwO1xcbiAgZmxvYXQ6IG5vbmU7XFxufVxcblxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtbWF0ZXJpYWwgLnNlbGVjdGVkLWxpc3QgLmMtbGlzdCAuYy10b2tlbiAuYy1sYWJlbCxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWRhcmsgLnNlbGVjdGVkLWxpc3QgLmMtbGlzdCAuYy10b2tlbiAuYy1sYWJlbCxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWN1c3RvbSAuc2VsZWN0ZWQtbGlzdCAuYy1saXN0IC5jLXRva2VuIC5jLWxhYmVsIHtcXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIGZsb2F0OiBub25lO1xcbiAgbWluLXdpZHRoOiAwO1xcbiAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgbGluZS1oZWlnaHQ6IDEuMztcXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xcbiAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XFxufVxcblxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtbWF0ZXJpYWwgLnNlbGVjdGVkLWxpc3QgLmMtbGlzdCAuYy10b2tlbiAuZmEtcmVtb3ZlLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtZGFyayAuc2VsZWN0ZWQtbGlzdCAuYy1saXN0IC5jLXRva2VuIC5mYS1yZW1vdmUsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1jdXN0b20gLnNlbGVjdGVkLWxpc3QgLmMtbGlzdCAuYy10b2tlbiAuZmEtcmVtb3ZlIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHJpZ2h0OiAxMHB4O1xcbiAgdG9wOiA1MCU7XFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gIHdpZHRoOiAxNnB4O1xcbiAgaGVpZ2h0OiAxNnB4O1xcbiAgbWFyZ2luLWxlZnQ6IDA7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XFxuICBjb2xvcjogdmFyKC0tbXMtY2hpcC1yZW1vdmUpO1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbn1cXG5cXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLW1hdGVyaWFsIC5zZWxlY3RlZC1saXN0IC5jb3VudHBsYWNlaG9sZGVyLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtZGFyayAuc2VsZWN0ZWQtbGlzdCAuY291bnRwbGFjZWhvbGRlcixcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWN1c3RvbSAuc2VsZWN0ZWQtbGlzdCAuY291bnRwbGFjZWhvbGRlciB7XFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcXG4gIGZsZXg6IDAgMCBhdXRvO1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xcbiAgbWFyZ2luOiAwO1xcbiAgbGluZS1oZWlnaHQ6IDE7XFxuICBjb2xvcjogdmFyKC0tbXMtb24tc3VyZmFjZS1tdXRlZCk7XFxuICBmb250LXNpemU6IDAuOHJlbTtcXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XFxufVxcblxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtbWF0ZXJpYWwgLnNlbGVjdGVkLWxpc3QgLmZhLWFuZ2xlLWRvd24sXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1kYXJrIC5zZWxlY3RlZC1saXN0IC5mYS1hbmdsZS1kb3duLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtY3VzdG9tIC5zZWxlY3RlZC1saXN0IC5mYS1hbmdsZS1kb3duLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtbWF0ZXJpYWwgLnNlbGVjdGVkLWxpc3QgLmZhLWFuZ2xlLXVwLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtZGFyayAuc2VsZWN0ZWQtbGlzdCAuZmEtYW5nbGUtdXAsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1jdXN0b20gLnNlbGVjdGVkLWxpc3QgLmZhLWFuZ2xlLXVwIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogNTAlO1xcbiAgcmlnaHQ6IDE2cHg7XFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gIHdpZHRoOiAyMHB4O1xcbiAgaGVpZ2h0OiAyMHB4O1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xcbiAgY29sb3I6IHZhcigtLW1zLW9uLXN1cmZhY2UtbXV0ZWQpO1xcbiAgZm9udC1zaXplOiAxNXB0O1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxufVxcblxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtbWF0ZXJpYWwgLmRyb3Bkb3duLWxpc3QsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1kYXJrIC5kcm9wZG93bi1saXN0LFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtY3VzdG9tIC5kcm9wZG93bi1saXN0IHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgcGFkZGluZy10b3A6IDhweDtcXG4gIHotaW5kZXg6IDk5OTk5O1xcbn1cXG5cXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLW1hdGVyaWFsIC5hcnJvdy11cCxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWRhcmsgLmFycm93LXVwLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtY3VzdG9tIC5hcnJvdy11cCxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLW1hdGVyaWFsIC5hcnJvdy1kb3duLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtZGFyayAuYXJyb3ctZG93bixcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWN1c3RvbSAuYXJyb3ctZG93bixcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLW1hdGVyaWFsIC5hcnJvdy0yLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtZGFyayAuYXJyb3ctMixcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWN1c3RvbSAuYXJyb3ctMiB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG5cXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLW1hdGVyaWFsIC5saXN0LWFyZWEsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1kYXJrIC5saXN0LWFyZWEsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1jdXN0b20gLmxpc3QtYXJlYSB7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgYm9yZGVyLXJhZGl1czogMjJweDtcXG4gIGJhY2tncm91bmQ6IHZhcigtLW1zLXN1cmZhY2UpO1xcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbXMtb3V0bGluZSk7XFxuICBib3gtc2hhZG93OiB2YXIoLS1tcy1zaGFkb3cpO1xcbiAgbWFyZ2luOiAwO1xcbn1cXG5cXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLW1hdGVyaWFsIC5zZWxlY3QtYWxsLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtZGFyayAuc2VsZWN0LWFsbCxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWN1c3RvbSAuc2VsZWN0LWFsbCB7XFxuICBwYWRkaW5nOiAxMHB4IDE0cHg7XFxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tbXMtZGl2aWRlcik7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1tcy1zZWN0aW9uLWJnKTtcXG4gIHRleHQtYWxpZ246IGxlZnQ7XFxufVxcblxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtbWF0ZXJpYWwgLmxpc3QtZmlsdGVyLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtZGFyayAubGlzdC1maWx0ZXIsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1jdXN0b20gLmxpc3QtZmlsdGVyIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgbWluLWhlaWdodDogNTJweDtcXG4gIHBhZGRpbmctbGVmdDogNDhweDtcXG4gIHBhZGRpbmctcmlnaHQ6IDQ0cHg7XFxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tbXMtZGl2aWRlcik7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1tcy1zdXJmYWNlKTtcXG59XFxuXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1tYXRlcmlhbCAubGlzdC1maWx0ZXIgaW5wdXQsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1kYXJrIC5saXN0LWZpbHRlciBpbnB1dCxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWN1c3RvbSAubGlzdC1maWx0ZXIgaW5wdXQge1xcbiAgd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICBib3JkZXI6IDA7XFxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG4gIGNvbG9yOiB2YXIoLS1tcy1vbi1zdXJmYWNlKTtcXG4gIGZvbnQ6IGluaGVyaXQ7XFxuICBwYWRkaW5nOiAwO1xcbn1cXG5cXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLW1hdGVyaWFsIC5saXN0LWZpbHRlciBpbnB1dDo6cGxhY2Vob2xkZXIsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1kYXJrIC5saXN0LWZpbHRlciBpbnB1dDo6cGxhY2Vob2xkZXIsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1jdXN0b20gLmxpc3QtZmlsdGVyIGlucHV0OjpwbGFjZWhvbGRlciB7XFxuICBjb2xvcjogdmFyKC0tbXMtb24tc3VyZmFjZS1tdXRlZCk7XFxufVxcblxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtbWF0ZXJpYWwgLmxpc3QtZmlsdGVyIGlucHV0OmZvY3VzLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtZGFyayAubGlzdC1maWx0ZXIgaW5wdXQ6Zm9jdXMsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1jdXN0b20gLmxpc3QtZmlsdGVyIGlucHV0OmZvY3VzIHtcXG4gIG91dGxpbmU6IG5vbmU7XFxufVxcblxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtbWF0ZXJpYWwgLmxpc3QtZmlsdGVyIC5mYSxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWRhcmsgLmxpc3QtZmlsdGVyIC5mYSxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWN1c3RvbSAubGlzdC1maWx0ZXIgLmZhIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogNTAlO1xcbiAgbGVmdDogMTZweDtcXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgd2lkdGg6IDE4cHg7XFxuICBoZWlnaHQ6IDE4cHg7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XFxuICBjb2xvcjogdmFyKC0tbXMtb24tc3VyZmFjZS1tdXRlZCk7XFxufVxcblxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtbWF0ZXJpYWwgLmRyb3Bkb3duLWxpc3QgdWwsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1kYXJrIC5kcm9wZG93bi1saXN0IHVsLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtY3VzdG9tIC5kcm9wZG93bi1saXN0IHVsIHtcXG4gIGxpc3Qtc3R5bGU6IG5vbmU7XFxuICBtYXJnaW46IDA7XFxuICBwYWRkaW5nOiA4cHg7XFxuICBvdmVyZmxvdzogYXV0bztcXG59XFxuXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1tYXRlcmlhbCAuZHJvcGRvd24tbGlzdCB1bCBsaSxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWRhcmsgLmRyb3Bkb3duLWxpc3QgdWwgbGksXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1jdXN0b20gLmRyb3Bkb3duLWxpc3QgdWwgbGkge1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIG1pbi1oZWlnaHQ6IDA7XFxuICBtYXJnaW46IDRweDtcXG4gIHBhZGRpbmc6IDEycHggMTRweDtcXG4gIGJvcmRlci1yYWRpdXM6IDE0cHg7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxuICB0ZXh0LWFsaWduOiBsZWZ0O1xcbiAgbGluZS1oZWlnaHQ6IDEuMzU7XFxuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTZzIGVhc2UsIGNvbG9yIDAuMTZzIGVhc2U7XFxufVxcblxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtbWF0ZXJpYWwgLmRyb3Bkb3duLWxpc3QgdWwgbGk6Zmlyc3QtY2hpbGQsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1kYXJrIC5kcm9wZG93bi1saXN0IHVsIGxpOmZpcnN0LWNoaWxkLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtY3VzdG9tIC5kcm9wZG93bi1saXN0IHVsIGxpOmZpcnN0LWNoaWxkIHtcXG4gIHBhZGRpbmctdG9wOiAxMnB4O1xcbn1cXG5cXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLW1hdGVyaWFsIC5kcm9wZG93bi1saXN0IHVsIGxpOmxhc3QtY2hpbGQsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1kYXJrIC5kcm9wZG93bi1saXN0IHVsIGxpOmxhc3QtY2hpbGQsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1jdXN0b20gLmRyb3Bkb3duLWxpc3QgdWwgbGk6bGFzdC1jaGlsZCB7XFxuICBwYWRkaW5nLWJvdHRvbTogMTJweDtcXG59XFxuXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1tYXRlcmlhbCAuZHJvcGRvd24tbGlzdCB1bCBsaTpob3ZlcixcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWRhcmsgLmRyb3Bkb3duLWxpc3QgdWwgbGk6aG92ZXIsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1jdXN0b20gLmRyb3Bkb3duLWxpc3QgdWwgbGk6aG92ZXIge1xcbiAgYmFja2dyb3VuZDogdmFyKC0tbXMtc3VyZmFjZS1zb2Z0KTtcXG59XFxuXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1tYXRlcmlhbCAucHVyZS1jaGVja2JveCxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWRhcmsgLnB1cmUtY2hlY2tib3gsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1jdXN0b20gLnB1cmUtY2hlY2tib3gge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbn1cXG5cXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLW1hdGVyaWFsIC5wdXJlLWNoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdICsgbGFiZWwsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1kYXJrIC5wdXJlLWNoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdICsgbGFiZWwsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1jdXN0b20gLnB1cmUtY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF0gKyBsYWJlbCB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIHdpZHRoOiAxMDAlO1xcbiAgbWFyZ2luOiAwO1xcbiAgcGFkZGluZy1sZWZ0OiAzMnB4O1xcbiAgY29sb3I6IGluaGVyaXQ7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxuICBmb250LXdlaWdodDogNTAwO1xcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XFxufVxcblxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtbWF0ZXJpYWwgLnB1cmUtY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF0gKyBsYWJlbDpiZWZvcmUsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1kYXJrIC5wdXJlLWNoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdICsgbGFiZWw6YmVmb3JlLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtY3VzdG9tIC5wdXJlLWNoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdICsgbGFiZWw6YmVmb3JlIHtcXG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xcbiAgY29udGVudDogXFxcIlxcXCI7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDUwJTtcXG4gIGxlZnQ6IDA7XFxuICB3aWR0aDogMTZweDtcXG4gIGhlaWdodDogMTZweDtcXG4gIG1hcmdpbi10b3A6IC0xMHB4O1xcbiAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tbXMtb3V0bGluZS1zdHJvbmcpO1xcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xcbiAgYmFja2dyb3VuZDogdmFyKC0tbXMtc3VyZmFjZSk7XFxuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xNnMgZWFzZSwgYmFja2dyb3VuZC1jb2xvciAwLjE2cyBlYXNlLCBib3gtc2hhZG93IDAuMTZzIGVhc2U7XFxufVxcblxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtbWF0ZXJpYWwgLnB1cmUtY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF0gKyBsYWJlbDphZnRlcixcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWRhcmsgLnB1cmUtY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF0gKyBsYWJlbDphZnRlcixcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWN1c3RvbSAucHVyZS1jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XSArIGxhYmVsOmFmdGVyIHtcXG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xcbiAgY29udGVudDogXFxcIlxcXCI7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDUwJTtcXG4gIGxlZnQ6IDVweDtcXG4gIHdpZHRoOiA4cHg7XFxuICBoZWlnaHQ6IDNweDtcXG4gIG1hcmdpbi10b3A6IC00cHg7XFxuICBib3JkZXItc3R5bGU6IHNvbGlkO1xcbiAgYm9yZGVyLWNvbG9yOiAjZmZmZmZmO1xcbiAgYm9yZGVyLXdpZHRoOiAwIDAgM3B4IDNweDtcXG4gIGJvcmRlci1pbWFnZTogbm9uZTtcXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSBzY2FsZSgwKTtcXG4gIHRyYW5zZm9ybS1vcmlnaW46IDUwJTtcXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE2cyBlYXNlO1xcbn1cXG5cXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLW1hdGVyaWFsIC5wdXJlLWNoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdOmZvY3VzICsgbGFiZWw6YmVmb3JlLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtZGFyayAucHVyZS1jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XTpmb2N1cyArIGxhYmVsOmJlZm9yZSxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWN1c3RvbSAucHVyZS1jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XTpmb2N1cyArIGxhYmVsOmJlZm9yZSxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLW1hdGVyaWFsIC5wdXJlLWNoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdOmhvdmVyICsgbGFiZWw6YmVmb3JlLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtZGFyayAucHVyZS1jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XTpob3ZlciArIGxhYmVsOmJlZm9yZSxcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWN1c3RvbSAucHVyZS1jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XTpob3ZlciArIGxhYmVsOmJlZm9yZSB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLW1zLXByaW1hcnkpO1xcbiAgYmFja2dyb3VuZDogdmFyKC0tbXMtc3VyZmFjZS1zb2Z0KTtcXG59XFxuXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1tYXRlcmlhbCAucHVyZS1jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkICsgbGFiZWw6YmVmb3JlLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtZGFyayAucHVyZS1jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkICsgbGFiZWw6YmVmb3JlLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtY3VzdG9tIC5wdXJlLWNoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQgKyBsYWJlbDpiZWZvcmUge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1tcy1wcmltYXJ5KTtcXG4gIGJhY2tncm91bmQ6IHZhcigtLW1zLXByaW1hcnkpO1xcbn1cXG5cXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLW1hdGVyaWFsIC5wdXJlLWNoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQgKyBsYWJlbDphZnRlcixcXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLWRhcmsgLnB1cmUtY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCArIGxhYmVsOmFmdGVyLFxcbi5zdGFja2xpbmUtZHJvcGRvd24udGhlbWUtY3VzdG9tIC5wdXJlLWNoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQgKyBsYWJlbDphZnRlciB7XFxuICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHNjYWxlKDEpO1xcbn1cXG5cXG4uc3RhY2tsaW5lLWRyb3Bkb3duLnRoZW1lLW1hdGVyaWFsIC5saXN0LW1lc3NhZ2UsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1kYXJrIC5saXN0LW1lc3NhZ2UsXFxuLnN0YWNrbGluZS1kcm9wZG93bi50aGVtZS1jdXN0b20gLmxpc3QtbWVzc2FnZSB7XFxuICBtYXJnaW46IDA7XFxuICBwYWRkaW5nOiAyMHB4IDE0cHg7XFxuICBjb2xvcjogdmFyKC0tbXMtb24tc3VyZmFjZS1tdXRlZCk7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxufVxcblwiXSxcbiAgICBwcm92aWRlcnM6IFtEUk9QRE9XTl9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SLCBEUk9QRE9XTl9DT05UUk9MX1ZBTElEQVRJT05dXG59KVxuXG5leHBvcnQgY2xhc3MgQW5ndWxhck11bHRpU2VsZWN0IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25DaGFuZ2VzLCBWYWxpZGF0b3Ige1xuXG4gICAgQElucHV0KClcbiAgICBkYXRhOiBBcnJheTxMaXN0SXRlbT47XG5cbiAgICBASW5wdXQoKVxuICAgIHNldHRpbmdzOiBEcm9wZG93blNldHRpbmdzO1xuXG4gICAgQE91dHB1dCgnb25TZWxlY3QnKVxuICAgIG9uU2VsZWN0OiBFdmVudEVtaXR0ZXI8TGlzdEl0ZW0+ID0gbmV3IEV2ZW50RW1pdHRlcjxMaXN0SXRlbT4oKTtcblxuICAgIEBPdXRwdXQoJ29uRGVTZWxlY3QnKVxuICAgIG9uRGVTZWxlY3Q6IEV2ZW50RW1pdHRlcjxMaXN0SXRlbT4gPSBuZXcgRXZlbnRFbWl0dGVyPExpc3RJdGVtPigpO1xuXG4gICAgQE91dHB1dCgnb25TZWxlY3RBbGwnKVxuICAgIG9uU2VsZWN0QWxsOiBFdmVudEVtaXR0ZXI8QXJyYXk8TGlzdEl0ZW0+PiA9IG5ldyBFdmVudEVtaXR0ZXI8QXJyYXk8TGlzdEl0ZW0+PigpO1xuXG4gICAgQE91dHB1dCgnb25EZVNlbGVjdEFsbCcpXG4gICAgb25EZVNlbGVjdEFsbDogRXZlbnRFbWl0dGVyPEFycmF5PExpc3RJdGVtPj4gPSBuZXcgRXZlbnRFbWl0dGVyPEFycmF5PExpc3RJdGVtPj4oKTtcblxuICAgIEBPdXRwdXQoJ29uT3BlbicpXG4gICAgb25PcGVuOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgQE91dHB1dCgnb25DbG9zZScpXG4gICAgb25DbG9zZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIEBDb250ZW50Q2hpbGQoSXRlbSwgeyBzdGF0aWM6IGZhbHNlIH0pIGl0ZW1UZW1wbDogSXRlbTtcbiAgICBAQ29udGVudENoaWxkKEJhZGdlLCB7IHN0YXRpYzogZmFsc2UgfSkgYmFkZ2VUZW1wbDogQmFkZ2U7XG5cblxuICAgIEBWaWV3Q2hpbGQoJ3NlYXJjaElucHV0JywgeyBzdGF0aWM6IGZhbHNlIH0pIHNlYXJjaElucHV0OiBFbGVtZW50UmVmO1xuXG4gICAgcHVibGljIHNlbGVjdGVkSXRlbXM6IEFycmF5PExpc3RJdGVtPjtcbiAgICBwdWJsaWMgaXNBY3RpdmU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgaXNTZWxlY3RBbGw6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgZ3JvdXBlZERhdGE6IEFycmF5PExpc3RJdGVtPjtcbiAgICBmaWx0ZXI6IGFueTtcbiAgICBwdWJsaWMgY2h1bmtBcnJheTphbnlbXTtcbiAgICBwdWJsaWMgc2Nyb2xsVG9wOmFueTtcbiAgICBwdWJsaWMgY2h1bmtJbmRleDphbnlbXSA9IFtdO1xuICAgIHB1YmxpYyBjYWNoZWRJdGVtczphbnlbXSA9IFtdO1xuICAgIHB1YmxpYyB0b3RhbFJvd3M6YW55O1xuICAgIHB1YmxpYyBpdGVtSGVpZ2h0OmFueSA9IDQxLjY7XG4gICAgcHVibGljIHNjcmVlbkl0ZW1zTGVuOmFueTtcbiAgICBwdWJsaWMgY2FjaGVkSXRlbXNMZW46YW55O1xuICAgIHB1YmxpYyB0b3RhbEhlaWdodDogYW55O1xuICAgIHB1YmxpYyBzY3JvbGxlcjphbnk7XG4gICAgcHVibGljIG1heEJ1ZmZlcjphbnk7XG4gICAgcHVibGljIGxhc3RTY3JvbGxlZDphbnk7XG4gICAgcHVibGljIGxhc3RSZXBhaW50WTogYW55O1xuXG4gICAgZGVmYXVsdFNldHRpbmdzOiBEcm9wZG93blNldHRpbmdzID0ge1xuICAgICAgICBzaW5nbGVTZWxlY3Rpb246IGZhbHNlLFxuICAgICAgICB0ZXh0OiAnU2VsZWN0JyxcbiAgICAgICAgZW5hYmxlQ2hlY2tBbGw6IHRydWUsXG4gICAgICAgIHNlbGVjdEFsbFRleHQ6ICdTZWxlY3QgQWxsJyxcbiAgICAgICAgdW5TZWxlY3RBbGxUZXh0OiAnVW5TZWxlY3QgQWxsJyxcbiAgICAgICAgZW5hYmxlU2VhcmNoRmlsdGVyOiBmYWxzZSxcbiAgICAgICAgbWF4SGVpZ2h0OiAzMDAsXG4gICAgICAgIGJhZGdlU2hvd0xpbWl0OiA5OTk5OTk5OTk5OTksXG4gICAgICAgIGNsYXNzZXM6ICcnLFxuICAgICAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgICAgIHNlYXJjaFBsYWNlaG9sZGVyVGV4dDogJ1NlYXJjaCcsXG4gICAgICAgIHNob3dDaGVja2JveDogdHJ1ZSxcbiAgICAgICAgbm9EYXRhTGFiZWw6ICdObyBEYXRhIEF2YWlsYWJsZScsXG4gICAgICAgIHNlYXJjaEF1dG9mb2N1czogdHJ1ZSxcbiAgICAgICAgbGF6eUxvYWRpbmc6IGZhbHNlLFxuICAgICAgICBsYWJlbEtleTogJ2l0ZW1OYW1lJyxcbiAgICAgICAgdGhlbWU6ICdjbGFzc2ljJyxcbiAgICAgICAgc2tpbjogJ2NsYXNzaWMnXG4gICAgfVxuICAgIHB1YmxpYyBwYXJzZUVycm9yOiBib29sZWFuO1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBfZWxlbWVudFJlZiA6IEVsZW1lbnRSZWYpIHtcblxuICAgIH1cbiAgICBnZXRUaGVtZU5hbWUoKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IHJhd1RoZW1lOiBhbnkgPSAnY2xhc3NpYyc7XG4gICAgICAgIGlmICh0aGlzLnNldHRpbmdzKSB7XG4gICAgICAgICAgICByYXdUaGVtZSA9IHRoaXMuc2V0dGluZ3Muc2tpbiB8fCB0aGlzLnNldHRpbmdzLnRoZW1lIHx8ICdjbGFzc2ljJztcbiAgICAgICAgfVxuICAgICAgICBsZXQgdGhlbWUgPSBTdHJpbmcocmF3VGhlbWUpLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvW15hLXowLTlfLV0rL2csICctJyk7XG4gICAgICAgIHRoZW1lID0gdGhlbWUucmVwbGFjZSgvXi0rfC0rJC9nLCAnJyk7XG4gICAgICAgIHJldHVybiB0aGVtZSB8fCAnY2xhc3NpYyc7XG4gICAgfVxuICAgIGdldERyb3Bkb3duQ2xhc3NlcygpOiBzdHJpbmcge1xuICAgICAgICBsZXQgdGhlbWUgPSB0aGlzLmdldFRoZW1lTmFtZSgpO1xuICAgICAgICBsZXQgY2xhc3NOYW1lID0gJ3RoZW1lLScgKyB0aGVtZTtcbiAgICAgICAgaWYgKHRoZW1lICE9PSAnY2xhc3NpYycgJiYgdGhlbWUgIT09ICdtYXRlcmlhbCcgJiYgdGhlbWUgIT09ICdkYXJrJyAmJiB0aGVtZSAhPT0gJ2N1c3RvbScpIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZSArPSAnIHRoZW1lLWN1c3RvbSc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaXNBY3RpdmUpIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZSArPSAnIGlzLW9wZW4nO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnNldHRpbmdzICYmIHRoaXMuc2V0dGluZ3MuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZSArPSAnIGlzLWRpc2FibGVkJztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2xhc3NOYW1lO1xuICAgIH1cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5zZXR0aW5ncyA9IE9iamVjdC5hc3NpZ24odGhpcy5kZWZhdWx0U2V0dGluZ3MsIHRoaXMuc2V0dGluZ3MpO1xuICAgICAgICBpZiAodGhpcy5zZXR0aW5ncy5ncm91cEJ5KSB7XG4gICAgICAgICAgICB0aGlzLmdyb3VwZWREYXRhID0gdGhpcy50cmFuc2Zvcm1EYXRhKHRoaXMuZGF0YSwgdGhpcy5zZXR0aW5ncy5ncm91cEJ5KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnRvdGFsUm93cyA9ICh0aGlzLmRhdGEgJiYgdGhpcy5kYXRhLmxlbmd0aCk7XG4gICAgICAgIHRoaXMuY2FjaGVkSXRlbXMgPSB0aGlzLmRhdGE7XG4gICAgICAgIHRoaXMuc2NyZWVuSXRlbXNMZW4gPSBNYXRoLmNlaWwodGhpcy5zZXR0aW5ncy5tYXhIZWlnaHQgLyB0aGlzLml0ZW1IZWlnaHQpO1xuICAgICAgICB0aGlzLmNhY2hlZEl0ZW1zTGVuID0gdGhpcy5zY3JlZW5JdGVtc0xlbiAqIDM7XG4gICAgICAgIHRoaXMudG90YWxIZWlnaHQgPSB0aGlzLml0ZW1IZWlnaHQgKiB0aGlzLnRvdGFsUm93cztcbiAgICAgICAgdGhpcy5tYXhCdWZmZXIgPSB0aGlzLnNjcmVlbkl0ZW1zTGVuICogdGhpcy5pdGVtSGVpZ2h0O1xuICAgICAgICB0aGlzLmxhc3RTY3JvbGxlZCA9IDA7XG4gICAgICAgIHRoaXMucmVuZGVyQ2h1bmsoMCwgdGhpcy5jYWNoZWRJdGVtc0xlbiAvIDIpO1xuICAgIH1cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgICAgIGlmIChjaGFuZ2VzLmRhdGEgJiYgIWNoYW5nZXMuZGF0YS5pc0ZpcnN0Q2hhbmdlKCkpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnNldHRpbmdzLmdyb3VwQnkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmdyb3VwZWREYXRhID0gdGhpcy50cmFuc2Zvcm1EYXRhKHRoaXMuZGF0YSwgdGhpcy5zZXR0aW5ncy5ncm91cEJ5KTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5kYXRhLmxlbmd0aCA9PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoY2hhbmdlcy5zZXR0aW5ncyAmJiAhY2hhbmdlcy5zZXR0aW5ncy5pc0ZpcnN0Q2hhbmdlKCkpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0dGluZ3MgPSBPYmplY3QuYXNzaWduKHRoaXMuZGVmYXVsdFNldHRpbmdzLCB0aGlzLnNldHRpbmdzKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBuZ0RvQ2hlY2soKSB7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkSXRlbXMpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGVkSXRlbXMubGVuZ3RoID09IDAgfHwgdGhpcy5kYXRhLmxlbmd0aCA9PSAwIHx8IHRoaXMuc2VsZWN0ZWRJdGVtcy5sZW5ndGggPCB0aGlzLmRhdGEubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc1NlbGVjdEFsbCA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgaWYodGhpcy5zZXR0aW5ncy5sYXp5TG9hZGluZyl7XG4gICAgICAgICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShcImxhenlDb250YWluZXJcIilbMF0uYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5vblNjcm9sbC5iaW5kKHRoaXMpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBvbkl0ZW1DbGljayhpdGVtOiBMaXN0SXRlbSwgaW5kZXg6IG51bWJlciwgZXZ0OiBFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5zZXR0aW5ncy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGZvdW5kID0gdGhpcy5pc1NlbGVjdGVkKGl0ZW0pO1xuICAgICAgICBsZXQgbGltaXQgPSB0aGlzLnNlbGVjdGVkSXRlbXMubGVuZ3RoIDwgdGhpcy5zZXR0aW5ncy5saW1pdFNlbGVjdGlvbiA/IHRydWUgOiBmYWxzZTtcblxuICAgICAgICBpZiAoIWZvdW5kKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5zZXR0aW5ncy5saW1pdFNlbGVjdGlvbikge1xuICAgICAgICAgICAgICAgIGlmIChsaW1pdCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZFNlbGVjdGVkKGl0ZW0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uU2VsZWN0LmVtaXQoaXRlbSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hZGRTZWxlY3RlZChpdGVtKTtcbiAgICAgICAgICAgICAgICB0aGlzLm9uU2VsZWN0LmVtaXQoaXRlbSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlU2VsZWN0ZWQoaXRlbSk7XG4gICAgICAgICAgICB0aGlzLm9uRGVTZWxlY3QuZW1pdChpdGVtKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5pc1NlbGVjdEFsbCB8fCB0aGlzLmRhdGEubGVuZ3RoID4gdGhpcy5zZWxlY3RlZEl0ZW1zLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5pc1NlbGVjdEFsbCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmRhdGEubGVuZ3RoID09IHRoaXMuc2VsZWN0ZWRJdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuaXNTZWxlY3RBbGwgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHB1YmxpYyB2YWxpZGF0ZShjOiBGb3JtQ29udHJvbCk6IGFueSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBwcml2YXRlIG9uVG91Y2hlZENhbGxiYWNrOiAoXzogYW55KSA9PiB2b2lkID0gbm9vcDtcbiAgICBwcml2YXRlIG9uQ2hhbmdlQ2FsbGJhY2s6IChfOiBhbnkpID0+IHZvaWQgPSBub29wO1xuXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlICE9PSBudWxsKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5zZXR0aW5ncy5zaW5nbGVTZWxlY3Rpb24pIHtcbiAgICAgICAgICAgICAgICB0cnkge1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBbdmFsdWVbMF1dO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IE15RXhjZXB0aW9uKDQwNCwgeyBcIm1zZ1wiOiBcIlNpbmdsZSBTZWxlY3Rpb24gTW9kZSwgU2VsZWN0ZWQgSXRlbXMgY2Fubm90IGhhdmUgbW9yZSB0aGFuIG9uZSBpdGVtLlwiIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlLmJvZHkubXNnKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnNldHRpbmdzLmxpbWl0U2VsZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHZhbHVlLnNwbGljZSgwLCB0aGlzLnNldHRpbmdzLmxpbWl0U2VsZWN0aW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHZhbHVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zZWxlY3RlZEl0ZW1zLmxlbmd0aCA9PT0gdGhpcy5kYXRhLmxlbmd0aCAmJiB0aGlzLmRhdGEubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzU2VsZWN0QWxsID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBbXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrID0gZm47XG4gICAgfVxuXG4gICAgLy9Gcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjayA9IGZuO1xuICAgIH1cbiAgICB0cmFja0J5Rm4oaW5kZXg6IG51bWJlciwgaXRlbTogTGlzdEl0ZW0pIHtcbiAgICAgICAgcmV0dXJuIGl0ZW0uaWQ7XG4gICAgfVxuICAgIGlzU2VsZWN0ZWQoY2xpY2tlZEl0ZW06IExpc3RJdGVtKSB7XG4gICAgICAgIGxldCBmb3VuZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgJiYgdGhpcy5zZWxlY3RlZEl0ZW1zLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICBpZiAoY2xpY2tlZEl0ZW0uaWQgPT09IGl0ZW0uaWQpIHtcbiAgICAgICAgICAgICAgICBmb3VuZCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gZm91bmQ7XG4gICAgfVxuICAgIGFkZFNlbGVjdGVkKGl0ZW06IExpc3RJdGVtKSB7XG4gICAgICAgIGlmICh0aGlzLnNldHRpbmdzLnNpbmdsZVNlbGVjdGlvbikge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gW107XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMucHVzaChpdGVtKTtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VEcm9wZG93bigpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5wdXNoKGl0ZW0pO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sodGhpcy5zZWxlY3RlZEl0ZW1zKTtcbiAgICAgICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjayh0aGlzLnNlbGVjdGVkSXRlbXMpO1xuICAgIH1cbiAgICByZW1vdmVTZWxlY3RlZChjbGlja2VkSXRlbTogTGlzdEl0ZW0pIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zICYmIHRoaXMuc2VsZWN0ZWRJdGVtcy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgICAgaWYgKGNsaWNrZWRJdGVtLmlkID09PSBpdGVtLmlkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnNwbGljZSh0aGlzLnNlbGVjdGVkSXRlbXMuaW5kZXhPZihpdGVtKSwgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sodGhpcy5zZWxlY3RlZEl0ZW1zKTtcbiAgICAgICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjayh0aGlzLnNlbGVjdGVkSXRlbXMpO1xuICAgIH1cbiAgICB0b2dnbGVEcm9wZG93bihldnQ6IGFueSkge1xuICAgICAgICBpZiAodGhpcy5zZXR0aW5ncy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaXNBY3RpdmUgPSAhdGhpcy5pc0FjdGl2ZTtcbiAgICAgICAgaWYgKHRoaXMuaXNBY3RpdmUpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnNldHRpbmdzLnNlYXJjaEF1dG9mb2N1cyAmJiB0aGlzLnNldHRpbmdzLmVuYWJsZVNlYXJjaEZpbHRlcikge1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaElucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICB9LCAwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMub25PcGVuLmVtaXQodHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm9uQ2xvc2UuZW1pdChmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICAgIGNsb3NlRHJvcGRvd24oKSB7XG4gICAgICAgIGlmKHRoaXMuc2VhcmNoSW5wdXQpe1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gXCJcIjtcbiAgICAgICAgICAgIHRoaXMuZGF0YSA9IFtdO1xuICAgICAgICAgICAgdGhpcy5kYXRhID0gdGhpcy5jYWNoZWRJdGVtcztcbiAgICAgICAgICAgIHRoaXMudG90YWxIZWlnaHQgPSB0aGlzLml0ZW1IZWlnaHQgKiB0aGlzLmRhdGEubGVuZ3RoO1xuICAgICAgICAgICAgdGhpcy50b3RhbFJvd3MgPSB0aGlzLmRhdGEubGVuZ3RoO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWaWV3KHRoaXMuc2Nyb2xsVG9wKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmZpbHRlciA9IFwiXCI7XG4gICAgICAgIHRoaXMuaXNBY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5vbkNsb3NlLmVtaXQoZmFsc2UpO1xuICAgIH1cbiAgICB0b2dnbGVTZWxlY3RBbGwoKSB7XG4gICAgICAgIGlmICghdGhpcy5pc1NlbGVjdEFsbCkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gW107XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSB0aGlzLmRhdGEuc2xpY2UoKTtcbiAgICAgICAgICAgIHRoaXMuaXNTZWxlY3RBbGwgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKHRoaXMuc2VsZWN0ZWRJdGVtcyk7XG4gICAgICAgICAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrKHRoaXMuc2VsZWN0ZWRJdGVtcyk7XG5cbiAgICAgICAgICAgIHRoaXMub25TZWxlY3RBbGwuZW1pdCh0aGlzLnNlbGVjdGVkSXRlbXMpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gW107XG4gICAgICAgICAgICB0aGlzLmlzU2VsZWN0QWxsID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sodGhpcy5zZWxlY3RlZEl0ZW1zKTtcbiAgICAgICAgICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2sodGhpcy5zZWxlY3RlZEl0ZW1zKTtcblxuICAgICAgICAgICAgdGhpcy5vbkRlU2VsZWN0QWxsLmVtaXQodGhpcy5zZWxlY3RlZEl0ZW1zKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICB0cmFuc2Zvcm1EYXRhKGFycjogQXJyYXk8TGlzdEl0ZW0+LCBmaWVsZDogYW55KTogQXJyYXk8TGlzdEl0ZW0+IHtcbiAgICAgICAgY29uc3QgZ3JvdXBlZE9iajogYW55ID0gYXJyLnJlZHVjZSgocHJldjogYW55LCBjdXI6IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKCFwcmV2W2N1cltmaWVsZF1dKSB7XG4gICAgICAgICAgICAgICAgcHJldltjdXJbZmllbGRdXSA9IFtjdXJdO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBwcmV2W2N1cltmaWVsZF1dLnB1c2goY3VyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBwcmV2O1xuICAgICAgICB9LCB7fSk7XG4gICAgICAgIGNvbnN0IHRlbXBBcnI6IGFueSA9IFtdO1xuICAgICAgICBPYmplY3Qua2V5cyhncm91cGVkT2JqKS5tYXAoZnVuY3Rpb24gKHgpIHtcbiAgICAgICAgICAgIHRlbXBBcnIucHVzaCh7IGtleTogeCwgdmFsdWU6IGdyb3VwZWRPYmpbeF0gfSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdGVtcEFycjtcbiAgICB9XG4gICAgcmVuZGVyQ2h1bmsoZnJvbVBvczphbnksIGhvd01hbnk6YW55KSB7XG4gICAgICAgIHRoaXMuY2h1bmtBcnJheSA9IFtdO1xuICAgICAgICB0aGlzLmNodW5rSW5kZXggPSBbXTtcbiAgICAgICAgdmFyIGZpbmFsSXRlbSA9IGZyb21Qb3MgKyBob3dNYW55O1xuICAgICAgICBpZiAoZmluYWxJdGVtID4gdGhpcy50b3RhbFJvd3MpXG4gICAgICAgICAgICBmaW5hbEl0ZW0gPSB0aGlzLnRvdGFsUm93cztcblxuICAgICAgICBmb3IgKHZhciBpID0gZnJvbVBvczsgaSA8IGZpbmFsSXRlbTsgaSsrKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jaHVua0luZGV4LnB1c2goKGkgKiB0aGlzLml0ZW1IZWlnaHQpICsgJ3B4Jyk7XG4gICAgICAgICAgICAgICAgdGhpcy5jaHVua0FycmF5LnB1c2godGhpcy5kYXRhW2ldKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBwdWJsaWMgb25TY3JvbGwoZTphbnkpIHtcbiAgICAgICAgdGhpcy5zY3JvbGxUb3AgPSBlLnRhcmdldC5zY3JvbGxUb3A7XG4gICAgICAgIHRoaXMudXBkYXRlVmlldyh0aGlzLnNjcm9sbFRvcCk7XG5cbiAgICB9XG4gICAgcHVibGljIHVwZGF0ZVZpZXcoc2Nyb2xsVG9wOmFueSl7XG4gICAgICAgIHZhciBzY3JvbGxQb3MgPSBzY3JvbGxUb3AgPyBzY3JvbGxUb3A6IDA7XG4gICAgICAgICB2YXIgZmlyc3QgPSAoc2Nyb2xsUG9zIC8gdGhpcy5pdGVtSGVpZ2h0KSAtIHRoaXMuc2NyZWVuSXRlbXNMZW47XG4gICAgICAgIHZhciBmaXJzdFRlbXAgPSBcIlwiK2ZpcnN0O1xuICAgICAgICBmaXJzdCA9IHBhcnNlSW50KGZpcnN0VGVtcCkgPCAwID8gMCA6IHBhcnNlSW50KGZpcnN0VGVtcCk7XG4gICAgICAgICAgICB0aGlzLnJlbmRlckNodW5rKGZpcnN0LCB0aGlzLmNhY2hlZEl0ZW1zTGVuKTtcbiAgICAgICAgICAgIHRoaXMubGFzdFJlcGFpbnRZID0gc2Nyb2xsUG9zO1xuICAgIH1cbiAgICBwdWJsaWMgZmlsdGVySW5maW5pdGVMaXN0KGV2dDogYW55KXtcbiAgICAgICAgdmFyIGZpbHRlcmVkRWxlbXM6QXJyYXk8YW55PiA9IFtdO1xuICAgICAgICB0aGlzLmRhdGEgPSB0aGlzLmNhY2hlZEl0ZW1zLnNsaWNlKCk7XG4gICAgICAgIGlmKGV2dC50YXJnZXQudmFsdWUudG9TdHJpbmcoKSAhPSAnJyl7XG4gICAgICAgICAgdGhpcy5kYXRhLmZpbHRlcihmdW5jdGlvbihlbDphbnkpe1xuICAgICAgICAgICAgICBmb3IodmFyIHByb3AgaW4gZWwpe1xuICAgICAgICAgICAgICAgICAgaWYoZWxbcHJvcF0udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoZXZ0LnRhcmdldC52YWx1ZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkpID49MCApe1xuICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcmVkRWxlbXMucHVzaChlbCk7XG4gICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vdGhpcy5jYWNoZWRJdGVtcyA9IHRoaXMuZGF0YTtcbiAgICAgICAgICAgIHRoaXMudG90YWxIZWlnaHQgPSB0aGlzLml0ZW1IZWlnaHQgKiBmaWx0ZXJlZEVsZW1zLmxlbmd0aDtcbiAgICAgICAgICAgIHRoaXMudG90YWxSb3dzID0gZmlsdGVyZWRFbGVtcy5sZW5ndGg7XG4gICAgICAgICAgICB0aGlzLmRhdGEgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuZGF0YSA9IGZpbHRlcmVkRWxlbXM7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZpZXcodGhpcy5zY3JvbGxUb3ApO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYoZXZ0LnRhcmdldC52YWx1ZS50b1N0cmluZygpID09ICcnICYmIHRoaXMuY2FjaGVkSXRlbXMubGVuZ3RoID4gMCl7XG4gICAgICAgICAgICB0aGlzLmRhdGEgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuZGF0YSA9IHRoaXMuY2FjaGVkSXRlbXM7XG4gICAgICAgICAgICB0aGlzLnRvdGFsSGVpZ2h0ID0gdGhpcy5pdGVtSGVpZ2h0ICogdGhpcy5kYXRhLmxlbmd0aDtcbiAgICAgICAgICAgIHRoaXMudG90YWxSb3dzID0gdGhpcy5kYXRhLmxlbmd0aDtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmlldyh0aGlzLnNjcm9sbFRvcCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGVdLFxuICAgIGRlY2xhcmF0aW9uczogW0FuZ3VsYXJNdWx0aVNlbGVjdCwgQ2xpY2tPdXRzaWRlRGlyZWN0aXZlLCBTY3JvbGxEaXJlY3RpdmUsIHN0eWxlRGlyZWN0aXZlLCBMaXN0RmlsdGVyUGlwZSwgSXRlbSwgVGVtcGxhdGVSZW5kZXJlciwgQmFkZ2VdLFxuICAgIGV4cG9ydHM6IFtBbmd1bGFyTXVsdGlTZWxlY3QsIENsaWNrT3V0c2lkZURpcmVjdGl2ZSwgU2Nyb2xsRGlyZWN0aXZlLCBzdHlsZURpcmVjdGl2ZSwgTGlzdEZpbHRlclBpcGUsIEl0ZW0sIFRlbXBsYXRlUmVuZGVyZXIsIEJhZGdlXVxufSlcbmV4cG9ydCBjbGFzcyBBbmd1bGFyTXVsdGlTZWxlY3RNb2R1bGUgeyB9XG4iXX0=