ca-components 1.0.93 → 1.0.95
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.
- package/assets/scss/ca-global.scss +3 -1
- package/esm2022/lib/components/ca-input/base-classes/ca-input-base-helpres.mjs +1 -1
- package/esm2022/lib/components/ca-input/components/ca-input-commands/ca-input-commands.component.mjs +3 -3
- package/esm2022/lib/components/ca-input/config/ca-input.config.mjs +1 -1
- package/esm2022/lib/components/ca-input/directives/command-visible.directive.mjs +77 -0
- package/esm2022/lib/components/ca-input/directives/min-max-value.directive.mjs +1 -1
- package/esm2022/lib/components/ca-input/directives/restrict-input.directive.mjs +19 -22
- package/esm2022/lib/components/ca-input/input-test/input-test.component.mjs +94 -49
- package/esm2022/lib/components/ca-input/mixins/input-command.mixin.mjs +130 -0
- package/esm2022/lib/components/ca-input/mixins/input-helper.mixin.mjs +49 -0
- package/esm2022/lib/components/ca-input/mixins/restriction-pipe.mixin.mjs +36 -0
- package/esm2022/lib/components/ca-input/pipes/input-pattern.pipe.mjs +2 -4
- package/esm2022/lib/components/ca-input-datetime-picker/ca-input-datetime-picker.component.mjs +34 -20
- package/esm2022/lib/components/ca-input-dropdown/ca-input-dropdown.component.mjs +6 -6
- package/esm2022/lib/components/ca-map/ca-map.component.mjs +7 -7
- package/esm2022/lib/components/ca-map-dropdown/ca-map-dropdown.component.mjs +24 -24
- package/esm2022/lib/components/ca-map-dropdown/enums/index.mjs +2 -0
- package/esm2022/lib/components/ca-map-dropdown/enums/map-dropdown-string.enum.mjs +18 -0
- package/esm2022/lib/components/ca-map-dropdown/utils/svg-routes/index.mjs +2 -0
- package/esm2022/lib/components/ca-modal-button/ca-modal-button.component.mjs +6 -6
- package/esm2022/lib/models/mixin.model.mjs +2 -0
- package/fesm2022/ca-components.mjs +1029 -680
- package/fesm2022/ca-components.mjs.map +1 -1
- package/lib/components/ca-input/config/ca-input.config.d.ts +3 -0
- package/lib/components/ca-input/directives/command-visible.directive.d.ts +20 -0
- package/lib/components/ca-input/directives/restrict-input.directive.d.ts +14 -2
- package/lib/components/ca-input/input-test/input-test.component.d.ts +69 -14
- package/lib/components/ca-input/mixins/input-command.mixin.d.ts +24 -0
- package/lib/components/ca-input/mixins/input-helper.mixin.d.ts +34 -0
- package/lib/components/ca-input/mixins/restriction-pipe.mixin.d.ts +12 -0
- package/lib/components/ca-input-datetime-picker/ca-input-datetime-picker.component.d.ts +1 -1
- package/lib/components/ca-map-dropdown/ca-map-dropdown.component.d.ts +10 -9
- package/lib/components/ca-map-dropdown/enums/index.d.ts +1 -0
- package/lib/components/ca-map-dropdown/enums/map-dropdown-string.enum.d.ts +15 -0
- package/lib/components/ca-map-dropdown/utils/svg-routes/index.d.ts +1 -0
- package/lib/models/mixin.model.d.ts +1 -0
- package/package.json +1 -1
- package/src/assets/ca-components/svg/input/ic_fuel_card.svg +3 -0
- package/src/assets/ca-components/svg/input/ic_input_reset.svg +4 -0
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
-
//
|
|
2
|
+
// modules
|
|
3
3
|
import { CommonModule } from '@angular/common';
|
|
4
4
|
import { AngularSvgIconModule, SvgIconRegistryService } from 'angular-svg-icon';
|
|
5
5
|
import { NgbTooltip } from '@ng-bootstrap/ng-bootstrap';
|
|
6
|
-
//
|
|
6
|
+
// components
|
|
7
7
|
import { CaAppTooltipV2Component } from '../ca-app-tooltip-v2/ca-app-tooltip-v2.component';
|
|
8
|
-
//json
|
|
8
|
+
// json
|
|
9
9
|
import taDetailDropdownJson from '../../../assets/json/ta-detail-dropdown.json';
|
|
10
|
-
//svg-routes
|
|
11
|
-
import { MapDropdownSvgRoutes } from '../ca-map-dropdown/utils/svg-routes
|
|
10
|
+
// svg-routes
|
|
11
|
+
import { MapDropdownSvgRoutes } from '../ca-map-dropdown/utils/svg-routes';
|
|
12
12
|
// pipes
|
|
13
13
|
import { CaSvgPipe } from '../../pipes/ca-svg.pipe';
|
|
14
14
|
import { MapDropdownContentPipe, MapDropdownClusterContentPipe, MapDropdownValuePipe, } from './pipes';
|
|
15
|
+
// enums
|
|
16
|
+
import { EMapDropdownStringEnum } from './enums';
|
|
15
17
|
import * as i0 from "@angular/core";
|
|
16
18
|
import * as i1 from "@angular/common";
|
|
17
19
|
import * as i2 from "angular-svg-icon";
|
|
@@ -24,31 +26,34 @@ export class CaMapDropdownComponent {
|
|
|
24
26
|
this.isHidden = true;
|
|
25
27
|
this.isShowAllDaysActive = false;
|
|
26
28
|
this.data = taDetailDropdownJson.taDetailDropDown;
|
|
29
|
+
this._markerData = null;
|
|
30
|
+
this.mapDropdownSvgRoutes = MapDropdownSvgRoutes;
|
|
31
|
+
this.eMapDropdownStringEnum = EMapDropdownStringEnum;
|
|
32
|
+
}
|
|
33
|
+
set markerData(values) {
|
|
34
|
+
this._markerData = values;
|
|
35
|
+
this.isHidden = true;
|
|
27
36
|
}
|
|
28
37
|
showHiddenData(event) {
|
|
29
|
-
|
|
30
|
-
event.stopPropagation();
|
|
38
|
+
this.preventEventPropagation(event, true);
|
|
31
39
|
this.isHidden = !this.isHidden;
|
|
32
40
|
}
|
|
33
41
|
callBodyAction(action) {
|
|
34
42
|
this.bodyActions.emit(action);
|
|
35
43
|
}
|
|
36
|
-
getSvgPath(propertyName) {
|
|
37
|
-
return MapDropdownSvgRoutes[propertyName];
|
|
38
|
-
}
|
|
39
44
|
clusterItemClick(item) {
|
|
40
45
|
if (item?.id)
|
|
41
46
|
this.onClusterItemClick?.emit(item.id);
|
|
42
47
|
}
|
|
43
48
|
backButtonClick(event) {
|
|
44
|
-
|
|
49
|
+
this.preventEventPropagation(event);
|
|
45
50
|
this.onBackButtonClick.emit();
|
|
46
51
|
}
|
|
47
52
|
showAllDaysClick() {
|
|
48
53
|
this.isShowAllDaysActive = !this.isShowAllDaysActive;
|
|
49
54
|
}
|
|
50
55
|
onClusterListScroll(event) {
|
|
51
|
-
this.
|
|
56
|
+
this.preventEventPropagation(event);
|
|
52
57
|
if (this.infoWindowContent?.clusterData &&
|
|
53
58
|
this.infoWindowContent?.clusterData?.length >= 25) {
|
|
54
59
|
const scrollElement = document.querySelector('.cluster-marker-container');
|
|
@@ -57,20 +62,15 @@ export class CaMapDropdownComponent {
|
|
|
57
62
|
this.onClusterListScrollToEnd.emit();
|
|
58
63
|
}
|
|
59
64
|
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
dropdownClick(event) {
|
|
64
|
-
event.preventDefault();
|
|
65
|
+
preventEventPropagation(event, preventDefault) {
|
|
66
|
+
if (preventDefault)
|
|
67
|
+
event.preventDefault();
|
|
65
68
|
event.stopPropagation();
|
|
66
69
|
}
|
|
67
|
-
identity(index) {
|
|
68
|
-
return index;
|
|
69
|
-
}
|
|
70
70
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CaMapDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
71
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CaMapDropdownComponent, isStandalone: true, selector: "app-ca-map-dropdown", inputs: { infoWindowContent: "infoWindowContent", markerData: "markerData" }, outputs: { onClusterItemClick: "onClusterItemClick", onClusterListScrollToEnd: "onClusterListScrollToEnd", onBackButtonClick: "onBackButtonClick", bodyActions: "bodyActions" }, providers: [SvgIconRegistryService], ngImport: i0, template: "<ng-container *ngIf=\"infoWindowContent\">\n <ng-container\n *ngIf=\"infoWindowContent?.clusterData; else markerInfoTemplate\"\n >\n <ng-container\n *ngIf=\"\n infoWindowContent?.selectedClusterItemData;\n else clusterDataListTemplate\n \"\n >\n <div\n class=\"marker-container relative\"\n [class.expanded]=\"!isHidden\"\n (click)=\"dropdownClick($event)\"\n (mousewheel)=\"stopMapZoom($event)\"\n >\n @for (\n item of infoWindowContent.selectedClusterItemData\n .mainContent;\n let i = $index;\n track identity\n ) {\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentTemplate;\n context: {\n content: item,\n data: infoWindowContent?.selectedClusterItemData\n .data,\n }\n \"\n ></ng-container>\n }\n\n <div class=\"expanded-info\" [class.active]=\"!isHidden\">\n @for (\n item of infoWindowContent.selectedClusterItemData\n .expandedContent;\n let i = $index;\n track identity\n ) {\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentTemplate;\n context: {\n content: item,\n data: infoWindowContent\n ?.selectedClusterItemData.data,\n }\n \"\n ></ng-container>\n }\n </div>\n\n <div\n class=\"dropdown-arrow align-self-end\"\n [class.rotate-arrow]=\"!isHidden\"\n >\n <svg-icon\n [src]=\"getSvgPath('cornerDownArrowRoute')\"\n (click)=\"showHiddenData($event)\"\n ></svg-icon>\n </div>\n </div>\n </ng-container>\n\n <ng-template #clusterDataListTemplate>\n <div\n class=\"cluster-marker-container d-flex flex-column gap-1\"\n (click)=\"dropdownClick($event)\"\n (mousewheel)=\"onClusterListScroll($event)\"\n >\n @for (\n item of infoWindowContent.clusterData;\n let i = $index;\n track identity\n ) {\n <ng-container\n *ngTemplateOutlet=\"\n clusterContentTemplate;\n context: {\n content: item,\n }\n \"\n ></ng-container>\n }\n </div>\n </ng-template>\n </ng-container>\n\n <ng-template #markerInfoTemplate>\n <div\n class=\"marker-container relative\"\n [class.expanded]=\"!isHidden\"\n (click)=\"dropdownClick($event)\"\n (mousewheel)=\"stopMapZoom($event)\"\n >\n @for (\n item of infoWindowContent.mainContent;\n let i = $index;\n track identity\n ) {\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentTemplate;\n context: {\n content: item,\n data: markerData,\n }\n \"\n ></ng-container>\n }\n\n <div class=\"expanded-info\" [class.active]=\"!isHidden\">\n @for (\n item of infoWindowContent.expandedContent;\n let i = $index;\n track identity\n ) {\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentTemplate;\n context: {\n content: item,\n data: markerData,\n }\n \"\n ></ng-container>\n }\n </div>\n\n <div\n class=\"dropdown-arrow align-self-end\"\n [class.rotate-arrow]=\"!isHidden\"\n >\n <svg-icon\n [src]=\"getSvgPath('cornerDownArrowRoute')\"\n (click)=\"showHiddenData($event)\"\n ></svg-icon>\n </div>\n </div>\n </ng-template>\n</ng-container>\n\n<ng-template #clusterContentTemplate let-content=\"content\">\n <ng-container *ngIf=\"content | mapDropdownClusterContentType; let item\">\n <div\n class=\"d-flex align-items-center justify-content-between cluster-marker-item\"\n (click)=\"clusterItemClick(item)\"\n >\n <div\n class=\"d-flex align-items-center gap-1\"\n [ngStyle]=\"{\n 'max-width': item.favourite ? 'calc(100% - 18px)' : '100%',\n }\"\n >\n <ng-container *ngIf=\"item.isClosed\">\n <svg-icon\n class=\"d-flex\"\n [src]=\"getSvgPath('permanentlyClosedRoute')\"\n [svgStyle]=\"{ 'width.px': 18, 'height.px': 18 }\"\n ></svg-icon>\n </ng-container>\n <div\n class=\"regular-text dark-gray-text uppercase text-ellipsis\"\n >\n {{ item.name }}\n </div>\n </div>\n <ng-container *ngIf=\"item.favourite\">\n <svg-icon\n class=\"d-flex\"\n [src]=\"getSvgPath('favoriteRoute')\"\n [svgStyle]=\"{ 'width.px': 18, 'height.px': 18 }\"\n ></svg-icon>\n </ng-container>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #dropdownContentTemplate let-content=\"content\" let-data=\"data\">\n <ng-container *ngIf=\"content | mapDropdownContentType; let item\">\n <ng-container *ngIf=\"!item.sideBySideInfo; else sideBySideInfoTemplate\">\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentItemTemplates;\n context: {\n content: item,\n data: data,\n }\n \"\n ></ng-container>\n </ng-container>\n\n <ng-template #sideBySideInfoTemplate>\n <!-- Side by Side Data -->\n <div class=\"d-flex align-items-center\">\n <!-- Left Side -->\n <ng-container *ngIf=\"item.sideBySideInfo?.leftSide\">\n <div class=\"flex-1\">\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentItemTemplates;\n context: {\n content: item.sideBySideInfo?.leftSide,\n data: data,\n }\n \"\n >\n </ng-container>\n </div>\n </ng-container>\n\n <!-- Right Side -->\n <ng-container *ngIf=\"item.sideBySideInfo?.rightSide\">\n <div class=\"flex-1\">\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentItemTemplates;\n context: {\n content: item.sideBySideInfo?.rightSide,\n data: data,\n }\n \"\n >\n </ng-container>\n </div>\n </ng-container>\n </div>\n </ng-template>\n </ng-container>\n</ng-template>\n\n<ng-template\n #dropdownContentItemTemplates\n let-content=\"content\"\n let-data=\"data\"\n>\n <ng-container *ngIf=\"content | mapDropdownContentType; let item\">\n <ng-container [ngSwitch]=\"item.template\">\n <!-- Main Title -->\n <ng-container *ngSwitchCase=\"'header-title'\">\n <div\n class=\"heading d-flex justify-content-between align-items-center {{\n item.customClassContainer\n }}\"\n >\n <div\n class=\"header-text-container d-flex align-items-center gap-1 w-100\"\n >\n <ng-container *ngIf=\"item.hasBackButton\">\n <div\n class=\"header-back-button d-flex align-items-center justify-content-center\"\n (click)=\"backButtonClick($event)\"\n >\n <svg-icon\n class=\"d-flex\"\n [src]=\"getSvgPath('backButtonRoute')\"\n [svgStyle]=\"{\n 'width.px': 14,\n 'height.px': 14,\n }\"\n >\n </svg-icon>\n </div>\n </ng-container>\n <span\n class=\"header ca-font-extra-bold dark-gray-text {{\n item.customClassText\n }}\"\n >\n {{ data[item.field] }}\n </span>\n </div>\n\n <!-- <div class=\"dropdown-icon\"></div> -->\n <!-- <app-ca-details-dropdown\n #detailsDropdown\n [options]=\"data\"\n [placement]=\"'right-top'\"\n [id]=\"item?.id\"\n [data]=\"item\"\n [customClassDropDown]=\"\n 'map-list-card-dropdown marker-dropdown-popover'\n \"\n (dropDownActions)=\"callBodyAction($event)\"\n ></app-ca-details-dropdown> -->\n </div>\n </ng-container>\n\n <!-- Rating Review -->\n <ng-container *ngSwitchCase=\"'rating-review'\">\n <div\n class=\"d-flex justify-content-start align-items-center align-content-center gap-3 {{\n item.customClassContainer\n }}\"\n >\n <div\n class=\"d-flex justify-content-start align-items-center gap-2\"\n [class.opacity-40]=\"!data[item.field].likeCount\"\n >\n <svg-icon\n class=\"rating-icon like-icon d-flex\"\n [class.active]=\"data[item.field].hasLiked\"\n [src]=\"getSvgPath('likeRoute')\"\n [svgStyle]=\"{ 'width.px': 14, 'height.px': 14 }\"\n ></svg-icon>\n <span\n class=\"small-text dark-gray-text ca-font-semi-bold user-select-none\"\n >{{ data[item.field].likeCount }}\n </span>\n </div>\n <div\n class=\"d-flex justify-content-start align-items-center gap-2\"\n [class.opacity-40]=\"!data[item.field].dislikeCount\"\n >\n <svg-icon\n class=\"rating-icon dislike-icon d-flex\"\n [class.active]=\"data[item.field].hasDislike\"\n [src]=\"getSvgPath('dislikeRoute')\"\n [svgStyle]=\"{ 'width.px': 14, 'height.px': 14 }\"\n ></svg-icon>\n <span\n class=\"small-text dark-gray-text ca-font-semi-bold user-select-none\"\n >{{ data[item.field].dislikeCount }}\n </span>\n </div>\n <div\n class=\"d-flex justify-content-start align-items-center gap-2\"\n [class.opacity-40]=\"!data[item.field].reviewCount\"\n >\n <svg-icon\n class=\"rating-icon review-icon d-flex\"\n [src]=\"getSvgPath('reviewRoute')\"\n [svgStyle]=\"{ 'width.px': 14, 'height.px': 14 }\"\n ></svg-icon>\n <span\n class=\"small-text dark-gray-text ca-font-semi-bold user-select-none\"\n >{{ data[item.field].reviewCount ?? 0 }}\n </span>\n </div>\n </div>\n </ng-container>\n\n <!-- Border Divider -->\n <ng-container *ngSwitchCase=\"'divider'\">\n <div class=\"info-divider\"></div>\n </ng-container>\n\n <!-- Repair Shop Services -->\n <ng-container *ngSwitchCase=\"'repair-shop-services'\">\n <div\n class=\"d-flex align-items-center justify-content-between {{\n item.customClassContainer\n }}\"\n >\n @for (service of data[item.field]; track identity) {\n <div\n class=\"d-flex align-items-center justify-content-center\"\n ngbTooltip\n [tooltipBackground]=\"'#424242'\"\n [mainCaTooltip]=\"service.serviceType.name\"\n position=\"bottom\"\n >\n <svg-icon\n class=\"repair-service-icon\"\n [class.active]=\"service.active\"\n [src]=\"\n service.logoName\n | caSvg: 'common' : 'repair-services'\n \"\n [svgStyle]=\"{\n 'width.px': 18,\n 'height.px': 18,\n }\"\n ></svg-icon>\n </div>\n }\n </div>\n </ng-container>\n\n <!-- Icon and Text -->\n <ng-container *ngSwitchCase=\"'icon-text'\">\n <div\n class=\"d-flex align-items-start gap-1 {{\n item.customClassContainer\n }}\"\n >\n <ng-container *ngIf=\"item.url\">\n <div\n ngbTooltip\n [tooltipBackground]=\"'#424242'\"\n [mainCaTooltip]=\"item.iconTooltipText\"\n position=\"bottom\"\n [disableTooltip]=\"!item.iconTooltipText\"\n >\n <svg-icon\n class=\"d-flex align-items-center justify-content-center\"\n [src]=\"item.url\"\n [svgStyle]=\"{ 'width.px': 18, 'height.px': 18 }\"\n ></svg-icon>\n </div>\n </ng-container>\n <span\n class=\"regular-text dark-gray-text {{\n item.customClassText\n }}\"\n >\n {{ data[item.field] }}\n </span>\n </div>\n </ng-container>\n\n <!-- Title -->\n <ng-container *ngSwitchCase=\"'title'\">\n <div\n class=\"regular-text dark-gray-text ca-font-extra-bold {{\n item.customClassText\n }}\"\n >\n {{ data[item.field] }}\n </div>\n </ng-container>\n\n <!-- Title and Count -->\n <ng-container *ngSwitchCase=\"'title-count'\">\n <div\n class=\"d-flex align-items-center gap-1 {{\n item.customClassContainer\n }}\"\n >\n <div class=\"regular-text dark-gray-text ca-font-extra-bold\">\n {{ item.title }}\n </div>\n <div\n class=\"count-number white-text d-flex align-items-center justify-content-center ca-font-bold\"\n >\n {{ data[item.field] }}\n </div>\n </div>\n </ng-container>\n\n <!-- Money Text -->\n <ng-container *ngSwitchCase=\"'money-text'\">\n <div\n class=\"d-flex align-items-center gap-1 {{\n item.customClassContainer\n }}\"\n >\n <div class=\"regular-text ca-font-bold blue-text\">\n {{\n data?.[item.field] !== '' ? data[item.field] : '$0'\n }}\n </div>\n <div class=\"regular-text light-gray-text ca-font-bold\">\n {{ item.title }}\n </div>\n </div>\n </ng-container>\n\n <!-- Open Hours -->\n <ng-container *ngSwitchCase=\"'open-hours'\">\n <div class=\"d-flex flex-column gap-2\">\n <div\n class=\"regular-text dark-gray-text ca-font-extra-bold {{\n item.customClassText\n }}\"\n >\n {{ item.title }}\n </div>\n <div class=\"open-hours-grid\">\n <ng-container\n *ngIf=\"\n data[item.field]?.openHoursToday &&\n !isShowAllDaysActive\n \"\n >\n <div class=\"d-flex flex-column flex-1\">\n <div\n class=\"small-text dark-gray-text ca-font-bold\"\n >\n {{ data[item.field].openHoursToday.status }}\n </div>\n <div\n class=\"regular-text dark-gray-text text-ellipsis\"\n >\n {{ data[item.field].openHoursToday.info }}\n </div>\n </div>\n </ng-container>\n <ng-container\n *ngIf=\"data[item.field]?.openHours?.length\"\n >\n <ng-container *ngIf=\"isShowAllDaysActive\">\n @for (\n day of data[item.field].openHours;\n track identity\n ) {\n <div class=\"d-flex flex-column flex-1\">\n <div\n class=\"small-text dark-gray-text ca-font-bold\"\n >\n {{ day.dayOfWeek }}\n </div>\n <div\n class=\"regular-text dark-gray-text text-ellipsis\"\n >\n {{\n day.startTime +\n ' - ' +\n day.endTime\n }}\n </div>\n </div>\n }\n </ng-container>\n <div\n class=\"d-flex flex-column flex-1 justify-content-end show-all-days-container\"\n >\n <div\n class=\"d-flex align-items-center gap-1\"\n (click)=\"showAllDaysClick()\"\n >\n <svg-icon\n class=\"d-flex\"\n [src]=\"\n getSvgPath('accidentCalenderRoute')\n \"\n [svgStyle]=\"{\n 'width.px': 18,\n 'height.px': 18,\n }\"\n ></svg-icon>\n <div\n class=\"regular-text gray-text cursor-pointer\"\n >\n {{\n isShowAllDaysActive\n ? 'Show today'\n : 'Show all days'\n }}\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n </ng-container>\n\n <!-- Text and Count -->\n <ng-container *ngSwitchCase=\"'text-count'\">\n <div\n class=\"d-flex align-items-center gap-1 {{\n item.customClassContainer\n }}\"\n >\n <div class=\"regular-text {{ item.customClassText }}\">\n {{ item.title }}\n </div>\n <div\n class=\"regular-text ca-font-semi-bold {{\n item.customClassText\n }}\"\n >\n {{ data | mapDropdownValue: item }}\n </div>\n </div>\n </ng-container>\n\n <!-- Subtitle -->\n <ng-container *ngSwitchCase=\"'subtitle'\">\n <div\n class=\"regular-text dark-gray-text ca-font-extra-bold {{\n item.customClassText\n }}\"\n >\n {{ item.title }}\n </div>\n </ng-container>\n\n <!-- Regular Text -->\n <ng-container *ngSwitchCase=\"'text'\">\n <div class=\"regular-text black-text {{ item.customClassText }}\">\n {{ data | mapDropdownValue: item }}\n </div>\n </ng-container>\n\n <!-- Small Subtitle -->\n <ng-container *ngSwitchCase=\"'small-subtitle'\">\n <div\n class=\"small-text dark-gray-text {{ item.customClassText }}\"\n >\n {{ item.title }}\n </div>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-template>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap\";@import\"https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css\";.ca-font-thin{font-weight:100!important}.ca-font-extra-light{font-weight:200!important}.ca-font-light{font-weight:300!important}.ca-font-regular{font-weight:400!important}.ca-font-medium{font-weight:500!important}.ca-font-semi-bold{font-weight:600!important}.ca-font-bold{font-weight:700!important}.ca-font-extra-bold{font-weight:800!important}.ca-font-black{font-weight:900!important}.pickup-delivery-popover{top:-38px!important;max-width:340px!important}.pickup-delivery-popover.bs-popover-top{top:auto!important;bottom:-38px!important}.pickup-delivery-popover.bs-popover-top .load-component .assigned-load-holder{order:3;margin-top:4px;margin-bottom:0!important}.pickup-delivery-popover.bs-popover-top .load-component .statusBar{order:2;margin-top:4px}.pickup-delivery-popover.bs-popover-top .load-component .animation-three-tabs{order:1}.gps_dropdown_popover{top:-38px;max-width:494px}.gps_dropdown_popover .popover-body{padding:0}.table-progress-popover{background-color:unset!important;margin-left:-10px}.table-progress-popover .progress-dropdown{margin-top:-6px;width:260px;height:200px;background:#2f2f2f;border-radius:3px;padding:8px;box-shadow:0 0 4px #00000026;overflow:hidden;-webkit-animation:progressAnimation .25s ease-in-out;animation:progressAnimation .25s ease-in-out}.table-progress-popover .progress-dropdown .progress-header .progress-title{font-size:18px;font-weight:600;color:#dadada}.table-progress-popover .progress-dropdown .progress-header .progress-title span{font-weight:400}.table-progress-popover .progress-dropdown .progress-header .progress-total{font-size:14px;line-height:17px;color:#dadada}.table-progress-popover .progress-dropdown .table-progress-bar-container{width:100%;height:8px;margin-top:6px;border-radius:2px;overflow:hidden}.table-progress-popover .progress-dropdown .table-progress-bar-container .table-progress-bar{height:100%}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-dual-info-container .progress-info-container{width:50%}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container{margin-top:10px}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container .progress-info-title{margin-bottom:2px;font-size:11px;font-weight:700;line-height:14px;color:#ffffffb2}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container .progress-info-text{font-size:14px;line-height:18px;color:#dadada}.table-progress-popover .progress-dropdown.credit-dropdown{height:100px}@-webkit-keyframes progressAnimation{0%{height:0px}to{height:220px}}@keyframes progressAnimation{0%{height:0px}to{height:220px}}ngb-popover-window{padding:unset!important;border:unset!important}ngb-popover-window .popover-arrow{display:none!important}ngb-popover-window .popover-body{padding:unset!important}.dispatch-note .popover-body{position:relative;top:-4px;left:-4px}.tooltip{font-size:12px;position:relative}.tooltip.show{opacity:.83}.tooltip.fade:after,.tooltip.fade:before{transform:translateY(-10px);transition:all .15s ease-in-out}.tooltip.fade:hover:after,.tooltip.fade:hover:before{opacity:1;transform:translate(0)}.tooltip-inner{padding:4px 10px;white-space:nowrap;max-width:none;border-radius:3px}.tooltip-inner:empty{padding:0}.placeholder-delete .tooltip-inner{background-color:#f66}.placeholder-delete .arrow:before{border-top-color:#f66}.custom-popup-owners-for-flag .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(126%) translate(-50%)!important;width:130px;border-radius:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-for-flag .arrow{bottom:-18%;transform:rotate(180deg);left:calc(50% + 2.7rem)}.custom-popup-owners-for-flag .tooltip{opacity:.93!important;width:0}.custom-popup-owners{z-index:999}.custom-popup-owners .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(132%);z-index:999;box-shadow:0 0 3px #0003}.custom-popup-owners .arrow{bottom:-20%;transform:rotate(180deg)}.custom-popup-owners .tooltip{transform:translateY(-61px)!important}.custom-popup-owners-year{z-index:999}.custom-popup-owners-year .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(132%);z-index:999;box-shadow:0 0 3px #0003}.custom-popup-owners-year .arrow{bottom:-20%;transform:rotate(180deg)}.custom-popup-owners-year .tooltip{transform:translate(70px,-61px)!important}.custom-popup-owners-info .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(-100%) translate(-10%);width:200px;height:36px;display:flex;justify-content:center;align-items:center;border-radius:3px;margin-top:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-info .tooltip{opacity:.93;width:0}.custom-popup-owners-info .arrow{display:none}.custom-popup-owners-info #phone-inside{position:relative;right:26px;bottom:0}.custom-popup-owners-info-at .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(-108%) translate(-7%);width:270px;height:36px;display:flex;justify-content:center;align-items:center;border-radius:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-info-at .tooltip{opacity:1;width:0}.custom-popup-owners-info-at .arrow{display:none}.custom-popup-owners-for-tag .tooltip-inner{color:#3b3b3b;background-color:#fff;width:100px;border-radius:3px;box-shadow:0 0 3px #0003!important}.custom-popup-owners-for-tag .tooltip{top:5px!important}.custom-popup-owners-for-tag .arrow{bottom:-24%}.align-items-flex-start{justify-content:center;align-items:center}.align-items-flex-end{display:flex;justify-content:center;flex-direction:column;align-self:flex-end;align-items:flex-start}.label-add{align-self:flex-start}.fadeInLoad{animation:fadeInLoad .25s}@keyframes fadeInLoad{0%{opacity:0}to{opacity:1}}.fadeIn{opacity:1;-webkit-transition:.25s;-moz-transition:.25s;-o-transition:.25s;transition:.25s}.thisText:hover .fadeIn{opacity:0}.fadeInLoad{animation-name:example;animation-duration:.25s}@keyframes example{0%{transform:scale(.5)}to{transform:scale(1)}}.tooltip.tooltip-table-icons{left:12px!important;opacity:1}.tooltip.tooltip-table-icons .arrow{display:none!important}.tooltip.tooltip-table-icons .tooltip-inner{border-radius:0 50px 50px;background:#28529f}.tooltip.show{opacity:1;animation:fadeIn ease .5s!important;-webkit-animation:fadeIn ease .5s!important;-moz-animation:fadeIn ease .5s!important;-o-animation:fadeIn ease .5s!important;-ms-animation:fadeIn ease .5s!important}.ta-tooltip{position:absolute;font-size:12px;text-align:center;color:#fff;line-height:22px;z-index:999999!important;opacity:0;white-space:nowrap;transform:scale(.7)}.ta-tooltip.ta-tooltip-show{opacity:.85;transform:scale(1);padding:0 12px}.ta-tooltip.ta-tooltip-bottom-right,.ta-tooltip.ta-tooltip-bottom-right-corner{transform-origin:top left;border-radius:0 15px 15px}.ta-tooltip.ta-tooltip-bottom-left{transform-origin:top right;border-radius:15px 0 15px 15px}@keyframes scaleItem{0%{transform:scale(.4)}to{transform:scale(1)}}.app-ca-main-tooltip{pointer-events:none}.app-ca-main-tooltip .tooltip-inner{padding:0;background-color:transparent;pointer-events:none}.app-ca-main-tooltip .tooltip-inner .tooltip-holder{display:flex;font-size:11px;font-weight:700;border-radius:2px;padding:2px 8px;animation:scaleItem .3s;white-space:normal}.app-ca-main-tooltip .tooltip-inner .tooltip-holder:empty{padding:0}.tooltip-arrow{display:none!important}.trucks.semitruck svg path,.trucks.semisleeper svg path,.trucks.flatbed svg path,.trucks.stepdeck svg path,.trucks.lowboyrgn svg path,.trucks.chassis svg path,.trucks.conestoga svg path,.trucks.sidekit svg path,.trucks.container svg path,.trailers.semitruck svg path,.trailers.semisleeper svg path,.trailers.flatbed svg path,.trailers.stepdeck svg path,.trailers.lowboyrgn svg path,.trailers.chassis svg path,.trailers.conestoga svg path,.trailers.sidekit svg path,.trailers.container svg path{fill:#92b1f5}.trucks.boxtruck svg path,.trucks.reefertruck svg path,.trucks.cargovan svg path,.trucks.dryvan svg path,.trucks.reefer svg path,.trailers.boxtruck svg path,.trailers.reefertruck svg path,.trailers.cargovan svg path,.trailers.dryvan svg path,.trailers.reefer svg path{fill:#fbc88b}.trucks.dumptruck svg path,.trucks.cementtruck svg path,.trucks.garbagetruck svg path,.trucks.enddump svg path,.trucks.bottomdump svg path,.trucks.hopper svg path,.trucks.tanker svg path,.trucks.pneumatictanker svg path,.trailers.dumptruck svg path,.trailers.cementtruck svg path,.trailers.garbagetruck svg path,.trailers.enddump svg path,.trailers.bottomdump svg path,.trailers.hopper svg path,.trailers.tanker svg path,.trailers.pneumatictanker svg path{fill:#ed9292}.trucks.towtruck svg path,.trucks.carhauler svg path,.trucks.spotter svg path,.trucks.carhaulerstigner svg path,.trailers.towtruck svg path,.trailers.carhauler svg path,.trailers.spotter svg path,.trailers.carhaulerstigner svg path{fill:#86c9c3}.trucks .svgtext-template-text,.trailers .svgtext-template-text{color:#fff;transition:color .3s ease-in-out}.colors .black svg #droplet{fill:#6c6c6c}.colors .brown svg #droplet{fill:#a1887f}.colors .darkgreen svg #droplet{fill:#4db6a2}.colors .lightgreen svg #droplet{fill:#81c784}.colors .darkblue svg #droplet{fill:#546fd2}.colors .lightblue svg #droplet{fill:#64b5f6}.colors .gray svg #droplet{fill:#aaa}.colors .purple svg #droplet{fill:#ba68c8}.colors .gold svg #droplet{fill:#bcad79}.colors .silver svg #droplet{fill:#dadada}.colors .red svg #droplet{fill:#f96b69}.colors .pink svg #droplet{fill:#f26ec2}.colors .white svg #droplet{fill:#f1f1f1}.colors .orange svg #droplet{fill:#ff8a65}.colors .yellow svg #droplet{fill:#ffd54f}.colors:hover{transition:all .3s ease-in-out}.colors:hover .black svg #droplet{fill:#3c3c3c}.colors:hover .brown svg #droplet{fill:#8d6e63}.colors:hover .darkgreen svg #droplet{fill:#26a690}.colors:hover .lightgreen svg #droplet{fill:#66bb6a}.colors:hover .darkblue svg #droplet{fill:#304fc1}.colors:hover .lightblue svg #droplet{fill:#42a5f5}.colors:hover .gray svg #droplet{fill:#919191}.colors:hover .purple svg #droplet{fill:#ab47bc}.colors:hover .gold svg #droplet{fill:#aa9c6e}.colors:hover .silver svg #droplet{fill:#b7b7b7}.colors:hover .red svg #droplet{fill:#ef5350}.colors:hover .pink svg #droplet{fill:#fa4daa}.colors:hover .white svg #droplet{fill:#fff}.colors:hover .orange svg #droplet{fill:#ff7043}.colors:hover .yellow svg #droplet{fill:#ffca28}.text-color-black{color:#424242!important}.text-color-black::-moz-selection{background:#42424233!important;color:#424242!important}.text-color-black::selection{background:#42424233!important;color:#424242!important}.text-color-black-2{color:#2f2f2f!important}.text-color-black-2::-moz-selection{background:#2f2f2f33!important;color:#2f2f2f!important}.text-color-black-2::selection{background:#2f2f2f33!important;color:#2f2f2f!important}.text-color-muted{color:#919191!important}.text-color-muted::-moz-selection{background:#91919133!important;color:#919191!important}.text-color-muted::selection{background:#91919133!important;color:#919191!important}.text-color-green{color:#56b4ac!important}.text-color-green::-moz-selection{background:#56b4ac33!important;color:#56b4ac!important}.text-color-green::selection{background:#56b4ac33!important;color:#56b4ac!important}.text-color-blue-13{color:#6692f1!important}.text-color-blue-13::-moz-selection{background:#66921833!important;color:#6692f1!important}.text-color-blue-13::selection{background:#66921833!important;color:#6692f1!important}.text-color-blue-18{color:#3b73ed!important}.text-color-blue-18::-moz-selection{background:#3b73ed33!important;color:#3b73ed!important}.text-color-blue-18::selection{background:#3b73ed33!important;color:#3b73ed!important}.text-color-red-10{color:#e66767!important}.text-color-red-10::-moz-selection{background:#e6676733!important;color:#e66767!important}.text-color-red-10::selection{background:#e6676733!important;color:#e66767!important}.text-color-light-grey{color:#e5e5e5!important}.text-color-light-grey::-moz-selection{background:#e5e5e533!important;color:#e5e5e5!important}.text-color-light-grey::selection{background:#e5e5e533!important;color:#e5e5e5!important}.text-color-light-grey-2{color:#aaa!important}.text-color-light-grey-2::-moz-selection{background:#aaa3!important;color:#aaa!important}.text-color-light-grey-2::selection{background:#aaa3!important;color:#aaa!important}.text-color-light-grey-6{color:#ccc!important}.text-color-light-grey-6::-moz-selection{color:#ccc!important;background:#aaa3!important}.text-color-light-grey-6::selection{color:#ccc!important;background:#aaa3!important}.text-color-white{color:#dadada!important}.text-color-white::-moz-selection{color:#dadada!important;background:#fff3!important}.text-color-white::selection{color:#dadada!important;background:#fff3!important}.text-color-white-4{color:#ffffffb2!important}.text-color-white-4::-moz-selection{color:#ffffffb2!important;background:#fff3!important}.text-color-white-4::selection{color:#ffffffb2!important;background:#fff3!important}.text-color-dark-grey{color:#6c6c6c!important}.text-color-dark-grey::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-dark-grey::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw6-2{color:#6c6c6c!important}.text-color-bw6-2::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw6-2::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw-9{color:#dadada!important}.text-color-bw-9::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw-9::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-grey{color:#919191!important}.text-color-grey::-moz-selection{color:#919191!important;background:#91919133!important}.text-color-grey::selection{color:#919191!important;background:#91919133!important}.text-color-grey .address-text::-moz-selection,.text-color-grey .marker-bold-text::-moz-selection{color:#919191!important;background:#91919133!important}.text-color-grey .address-text::selection,.text-color-grey .marker-bold-text::selection{color:#919191!important;background:#91919133!important}.text-size-11{font-size:11px!important;line-height:14px!important}.text-size-14{font-size:14px!important;line-height:18px!important}.text-size-16{font-size:16px!important;line-height:19px!important}.text-size-18{font-size:18px!important;line-height:22px!important}.text-size-26{font-size:26px!important;line-height:32px!important}.text-size-28{font-size:28px!important;line-height:34px!important}@keyframes dropdown{0%{margin-top:20px;visibility:hidden;opacity:0}to{opacity:1;margin-top:10px;visibility:visible!important}}@keyframes dropup{0%{margin-top:-19px;visibility:hidden;opacity:0}to{margin-top:inherit;visibility:visible!important}}.svg-fill-black svg path{fill:#424242!important}.svg-fill-muted svg path{fill:#919191!important}.svg-fill-bw-9 svg path{fill:#dadada!important}.svg-fill-light-grey-2 svg path{fill:#aaa!important}.svg-fill-light-grey-6 svg path{fill:#ccc!important}.svg-fill-blue-13 svg path{fill:#6692f1!important}.svg-fill-blue-19 svg path{fill:#92b1f5!important}.svg-fill-blue-26 svg path{fill:#4dc5eb!important}.svg-hover-muted svg path{transition:all .3s ease-in-out}.svg-hover-muted:hover svg path{fill:#919191!important}.svg-hover-black svg path{transition:all .3s ease-in-out}.svg-hover-black:hover svg path{fill:#424242!important}.svg-hover-blue-15 svg path{transition:all .3s ease-in-out}.svg-hover-blue-15:hover svg path{fill:#0b49d1!important}.svg-hover-bw6-2 svg path{transition:all .3s ease-in-out}.svg-hover-bw6-2:hover svg path{fill:#6c6c6c!important}.svg-hover-trash-red svg path{transition:all .3s ease-in-out}.svg-hover-trash-red:hover svg path{fill:#ff5050!important}.svg-hover-red-14 svg path{transition:all .3s ease-in-out}.svg-hover-red-14:hover svg path{fill:#c20c0c!important}.svg-size-12 svg{width:12px;height:12px}.svg-size-14 svg{width:14px;height:14px}.svg-size-16 svg{width:16px;height:16px}.svg-size-18 svg{width:18px;height:18px}.svg-size-44-16 svg{width:44px;height:16px}*{margin:0;font-family:Montserrat,sans-serif}html{scroll-behavior:auto!important}.gm-style-iw-chr,.gm-style-iw-tc{display:none}.gm-style .gm-style-iw-c{border-radius:0}.gm-style-iw{overflow-y:auto!important;overflow-x:hidden!important}.gm-style-iw>div{overflow:visible!important}.infoWindow{overflow:hidden!important}.gm-style-iw-d,.gm-style-iw.gm-style-iw-c{max-height:350px!important}::ng-deep .popover{--bs-popover-border-width: 0;--bs-popover-body-padding-y: 0;--bs-popover-body-padding-x: 0}::ng-deep .popover .popover-arrow{display:none}:host{display:block;height:100%;width:100%}.cluster-marker-container{width:354px;max-height:244px;margin:4px 2px 4px 4px;overflow-y:scroll;cursor:default}.cluster-marker-container::-webkit-scrollbar{width:2px}.cluster-marker-container::-webkit-scrollbar-thumb{background-color:#ccc;border:2px solid #cccccc;border-radius:1px}.cluster-marker-container::-webkit-scrollbar-track{width:2px;background-color:#fff}.cluster-marker-container .cluster-marker-item{max-width:100%;padding:4px;cursor:pointer;border-radius:2px}.cluster-marker-container .cluster-marker-item:hover{background:#eee}.marker-container{width:360px;max-height:214px;padding:8px;transition:max-height .2s ease-in-out;cursor:default}.marker-container.expanded{max-height:396px}.marker-container .heading{max-width:100%;margin-bottom:3px}.marker-container .heading .header-text-container{max-width:calc(100% - 26px)}.marker-container .heading .header-text-container .header-back-button{min-width:18px;min-height:18px;background:#eee;border-radius:1px;cursor:pointer}.marker-container .heading .header-text-container .header-back-button svg-icon svg path{fill:#919191}.marker-container .heading .header-text-container .header{font-family:Montserrat,sans-serif;font-size:16px;line-height:20px;color:#424242}.marker-container .heading .dropdown-icon{min-width:26px;min-height:26px}.marker-container .action .side-space{padding-right:4px}.marker-container .action .side-space .count{font-family:Montserrat,sans-serif;font-size:11px;color:#424242;padding:0 7px;position:relative;left:-1px}.marker-container .action .side-space .grey-color{color:#919191}.marker-container .repair-service-icon svg path{fill:#ccc;fill-opacity:1}.marker-container .repair-service-icon.active svg path{fill:#919191;fill-opacity:1}.marker-container .personal-info-items{font-family:Montserrat,sans-serif}.marker-container .personal-info-items .info{max-width:100%;font-size:14px;line-height:18px;padding:0 5px;color:#2f2f2f;font-family:Montserrat,sans-serif;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.marker-container .working-info-detail{font-family:Montserrat,sans-serif}.marker-container .working-info-detail .working-info-item{font-size:11px;line-height:14px;color:#424242}.marker-container .working-info-detail .working-info-item .working-time{font-size:14px;line-height:18px}.marker-container .load-info .load-heading{font-family:Montserrat,sans-serif;font-size:13px;margin-bottom:5px}.marker-container .load-info .load-heading .load-head-count{background-color:#6c6c6c;border-radius:50%;padding:3px 4px;color:#fff;font-size:7px;margin:1px 4px 0;font-family:Montserrat,sans-serif}.marker-container .load-info .load-info-detail{font-family:Montserrat,sans-serif}.marker-container .load-info .load-info-detail .load-info-item{font-size:12px;line-height:18px;color:#2f2f2f}.marker-container .load-info .load-info-detail .loading-hours{font-size:10px;color:#919191}.marker-container .load-info .load-info-detail .loading-hours .load-time{color:#919191}.marker-container .avg-info .avg-info-detail{font-family:Montserrat,sans-serif}.marker-container .avg-info .avg-info-detail .avg-item .item-date{padding:0 7px;color:#2f2f2f}.infowindow-container{width:300px;padding:2px 9px 9px 0}.infowindow-container .heading-container .heading{margin-top:15px;margin-bottom:3px}.infowindow-container .heading-container .heading .header{font-family:Montserrat,sans-serif;font-size:15px;line-height:19.5px}.infowindow-container .personal-info .personal-info-items{padding:1px 0;margin-bottom:3px;font-family:Montserrat,sans-serif}.infowindow-container .personal-info .personal-info-items .info{font-size:14px;line-height:18px;padding:0 5px;color:#2f2f2f;font-family:Montserrat,sans-serif}.infowindow-container .weight-info .weight-heading{font-family:Montserrat,sans-serif;font-size:13px;margin-bottom:5px}.infowindow-container .weight-info .weight-heading .weight-head-count{background-color:#6c6c6c;border-radius:50%;padding:3px 4px;color:#fff;font-size:7px;margin:1px 4px 0;font-family:Montserrat,sans-serif}.infowindow-container .weight-info .weight-info-detail{font-family:Montserrat,sans-serif}.infowindow-container .weight-info .weight-info-detail .weight-info-item{font-size:12px;line-height:18px;color:#424242}.infowindow-container .weight-info .weight-info-detail .weight-info-item .weight-time{color:#424242;padding:0 5px}.infowindow-container .transport-info .transport-container{margin-top:15px;font-family:Montserrat,sans-serif;margin-bottom:10px}.infowindow-container .transport-info .transport-container .driver-info .side-space{margin-left:20px}.infowindow-container .transport-info .transport-container .driver-info .title{font-size:11px;line-height:14px}.infowindow-container .transport-info .transport-container .driver-info .detail{font-size:13px;line-height:18px;color:#2f2f2f}.infowindow-container .transport-info .transport-container .truck-info .side-space{margin-left:50px}.infowindow-container .transport-info .transport-container .truck-info .title{font-size:11px;line-height:14px}.infowindow-container .transport-info .transport-container .truck-info .detail{font-size:13px;line-height:18px;color:#2f2f2f}.info-divider{margin:8px 0;width:100%;height:1px;background:#dadada;border-radius:2px}.dropdown-arrow{position:absolute;right:6px;bottom:6px}.dropdown-arrow svg{transition:transform .2s ease-in-out;transform:rotate(0)}.dropdown-arrow svg path{transition:fill .2s ease-in-out;fill:#919191}.dropdown-arrow.rotate-arrow svg{transform:rotate(180deg)}.dropdown-arrow.rotate-arrow svg path{fill:#6692f1}.dropdown-arrow:hover{cursor:pointer}.dropdown-arrow:hover svg path{fill:#6692f1}.expanded-info{max-height:0px;overflow:hidden;transition:max-height .2s ease-in-out}.expanded-info.active{max-height:300px}.gap-8{gap:8px}.count-number{padding:0 5px;background:#6c6c6c;border-radius:60px;font-size:11px;line-height:14px;-webkit-user-select:none;user-select:none}.rating-icon svg path{fill:#919191;fill-opacity:1}.rating-icon.active.like-icon svg path{fill:#56b4ac}.rating-icon.active.dislike-icon svg path{fill:#e66767}.text-ellipsis{max-width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.text-ellipsis.two-rows-ellipsis{max-width:90%;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;white-space:initial}.blue-text{color:#6692f1!important}.blue-text::-moz-selection{color:#6692f1;background:#3b73ed33}.blue-text::selection{color:#6692f1;background:#3b73ed33}.red-text{color:#df3c3c!important}.red-text::-moz-selection{color:#df3c3c;background:#df3c3c33}.red-text::selection{color:#df3c3c;background:#df3c3c33}.gray-text{color:#919191!important}.gray-text::-moz-selection{color:#919191;background:#91919133}.gray-text::selection{color:#919191;background:#91919133}.light-gray-text{color:#6c6c6c}.light-gray-text::-moz-selection{color:#6c6c6c;background:#6c6c6c33}.light-gray-text::selection{color:#6c6c6c;background:#6c6c6c33}.dark-gray-text{color:#424242}.dark-gray-text::-moz-selection{color:#424242;background:#42424233}.dark-gray-text::selection{color:#424242;background:#42424233}.black-text{color:#2f2f2f}.black-text::-moz-selection{color:#2f2f2f;background:#2f2f2f33}.black-text::selection{color:#2f2f2f;background:#2f2f2f33}.white-text{color:#dadada}.white-text::-moz-selection{color:#dadada;background:#fff3}.white-text::selection{color:#dadada;background:#fff3}.opacity-40{opacity:.4}.regular-text{font-size:14px;line-height:18px;font-family:Montserrat,sans-serif}.small-text{font-size:11px;line-height:14px;font-family:Montserrat,sans-serif}.open-hours-grid{display:grid;grid-template-columns:50% 50%;grid-row-gap:8px}.cursor-pointer{cursor:pointer}.show-all-days-container{grid-column:2/span 1}\n"], dependencies: [{ kind: "ngmodule", type:
|
|
71
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CaMapDropdownComponent, isStandalone: true, selector: "app-ca-map-dropdown", inputs: { infoWindowContent: "infoWindowContent", markerData: "markerData" }, outputs: { onClusterItemClick: "onClusterItemClick", onClusterListScrollToEnd: "onClusterListScrollToEnd", onBackButtonClick: "onBackButtonClick", bodyActions: "bodyActions" }, providers: [SvgIconRegistryService], ngImport: i0, template: "@if (infoWindowContent?.clusterData) {\n @if (infoWindowContent?.selectedClusterItemData) {\n <div\n class=\"marker-container relative\"\n [class.expanded]=\"!isHidden\"\n (click)=\"preventEventPropagation($event, true)\"\n (mousewheel)=\"preventEventPropagation($event)\"\n >\n @for (\n item of infoWindowContent?.selectedClusterItemData.mainContent;\n let i = $index;\n track i\n ) {\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentTemplate;\n context: {\n content: item,\n data: infoWindowContent?.selectedClusterItemData\n .data,\n }\n \"\n ></ng-container>\n }\n\n <div class=\"expanded-info\" [class.active]=\"!isHidden\">\n @for (\n item of infoWindowContent?.selectedClusterItemData\n .expandedContent;\n let i = $index;\n track i\n ) {\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentTemplate;\n context: {\n content: item,\n data: infoWindowContent?.selectedClusterItemData\n .data,\n }\n \"\n ></ng-container>\n }\n </div>\n\n <div\n class=\"dropdown-arrow align-self-end\"\n [class.rotate-arrow]=\"!isHidden\"\n >\n <svg-icon\n [src]=\"mapDropdownSvgRoutes.cornerDownArrowRoute\"\n (click)=\"showHiddenData($event)\"\n ></svg-icon>\n </div>\n </div>\n } @else {\n <div\n class=\"cluster-marker-container d-flex flex-column gap-1\"\n (click)=\"preventEventPropagation($event, true)\"\n (mousewheel)=\"onClusterListScroll($event)\"\n >\n @for (\n item of infoWindowContent?.clusterData;\n let i = $index;\n track i\n ) {\n <ng-container\n *ngTemplateOutlet=\"\n clusterContentTemplate;\n context: {\n content: item,\n }\n \"\n ></ng-container>\n }\n </div>\n }\n} @else {\n <div\n class=\"marker-container relative\"\n [class.expanded]=\"!isHidden\"\n (click)=\"preventEventPropagation($event, true)\"\n (mousewheel)=\"preventEventPropagation($event)\"\n >\n @for (item of infoWindowContent?.mainContent; let i = $index; track i) {\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentTemplate;\n context: {\n content: item,\n data: _markerData,\n }\n \"\n ></ng-container>\n }\n\n <div class=\"expanded-info\" [class.active]=\"!isHidden\">\n @for (\n item of infoWindowContent?.expandedContent;\n let i = $index;\n track i\n ) {\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentTemplate;\n context: {\n content: item,\n data: _markerData,\n }\n \"\n ></ng-container>\n }\n </div>\n\n <div\n class=\"dropdown-arrow align-self-end\"\n [class.rotate-arrow]=\"!isHidden\"\n >\n <svg-icon\n [src]=\"mapDropdownSvgRoutes.cornerDownArrowRoute\"\n (click)=\"showHiddenData($event)\"\n ></svg-icon>\n </div>\n </div>\n}\n\n<ng-template #clusterContentTemplate let-content=\"content\">\n @let item = content | mapDropdownClusterContentType;\n @if (item) {\n <div\n class=\"d-flex align-items-center justify-content-between cluster-marker-item\"\n (click)=\"clusterItemClick(item)\"\n >\n <div\n class=\"d-flex align-items-center gap-1\"\n [ngStyle]=\"{\n 'max-width': item.favourite ? 'calc(100% - 18px)' : '100%',\n }\"\n >\n @if (item.isClosed) {\n <svg-icon\n class=\"d-flex\"\n [src]=\"mapDropdownSvgRoutes.permanentlyClosedRoute\"\n [svgStyle]=\"{ 'width.px': 18, 'height.px': 18 }\"\n ></svg-icon>\n }\n <div\n class=\"regular-text dark-gray-text uppercase text-ellipsis\"\n >\n {{ item.name }}\n </div>\n </div>\n @if (item.favourite) {\n <svg-icon\n class=\"d-flex\"\n [src]=\"mapDropdownSvgRoutes.favoriteRoute\"\n [svgStyle]=\"{ 'width.px': 18, 'height.px': 18 }\"\n ></svg-icon>\n }\n </div>\n }\n</ng-template>\n\n<ng-template #dropdownContentTemplate let-content=\"content\" let-data=\"data\">\n @let item = content | mapDropdownContentType;\n @if (item) {\n @if (!item.sideBySideInfo) {\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentItemTemplates;\n context: {\n content: item,\n data: data,\n }\n \"\n ></ng-container>\n } @else {\n <!-- Side by Side Data -->\n <div class=\"d-flex align-items-center\">\n <!-- Left Side -->\n @if (item.sideBySideInfo.leftSide) {\n <div class=\"flex-1\">\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentItemTemplates;\n context: {\n content: item.sideBySideInfo?.leftSide,\n data: data,\n }\n \"\n >\n </ng-container>\n </div>\n }\n\n <!-- Right Side -->\n @if (item.sideBySideInfo.rightSide) {\n <div class=\"flex-1\">\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentItemTemplates;\n context: {\n content: item.sideBySideInfo?.rightSide,\n data: data,\n }\n \"\n >\n </ng-container>\n </div>\n }\n </div>\n }\n }\n</ng-template>\n\n<ng-template\n #dropdownContentItemTemplates\n let-content=\"content\"\n let-data=\"data\"\n>\n @let item = content | mapDropdownContentType;\n @if (item) {\n @switch (item?.template) {\n @case (eMapDropdownStringEnum.HEADER_TITLE) {\n <div\n class=\"heading d-flex justify-content-between align-items-center {{\n item.customClassContainer\n }}\"\n >\n <div\n class=\"header-text-container d-flex align-items-center gap-1 w-100\"\n >\n @if (item.hasBackButton) {\n <div\n class=\"header-back-button d-flex align-items-center justify-content-center\"\n (click)=\"backButtonClick($event)\"\n >\n <svg-icon\n class=\"d-flex\"\n [src]=\"mapDropdownSvgRoutes.backButtonRoute\"\n [svgStyle]=\"{\n 'width.px': 14,\n 'height.px': 14,\n }\"\n >\n </svg-icon>\n </div>\n }\n <span\n class=\"header ca-font-extra-bold dark-gray-text {{\n item.customClassText\n }}\"\n >\n {{ data[item.field] }}\n </span>\n </div>\n\n <!-- <div class=\"dropdown-icon\"></div> -->\n <!-- <app-ca-details-dropdown\n #detailsDropdown\n [options]=\"data\"\n [placement]=\"'right-top'\"\n [id]=\"item?.id\"\n [data]=\"item\"\n [customClassDropDown]=\"\n 'map-list-card-dropdown marker-dropdown-popover'\n \"\n (dropDownActions)=\"callBodyAction($event)\"\n ></app-ca-details-dropdown> -->\n </div>\n }\n\n <!-- Rating Review -->\n @case (eMapDropdownStringEnum.RATING_REVIEW) {\n <div\n class=\"d-flex justify-content-start align-items-center align-content-center gap-3 {{\n item.customClassContainer\n }}\"\n >\n <div\n class=\"d-flex justify-content-start align-items-center gap-2\"\n [class.opacity-40]=\"!data[item.field].likeCount\"\n >\n <svg-icon\n class=\"rating-icon like-icon d-flex\"\n [class.active]=\"data[item.field].hasLiked\"\n [src]=\"mapDropdownSvgRoutes.likeRoute\"\n [svgStyle]=\"{ 'width.px': 14, 'height.px': 14 }\"\n ></svg-icon>\n <span\n class=\"small-text dark-gray-text ca-font-semi-bold user-select-none\"\n >{{ data[item.field].likeCount }}\n </span>\n </div>\n <div\n class=\"d-flex justify-content-start align-items-center gap-2\"\n [class.opacity-40]=\"!data[item.field].dislikeCount\"\n >\n <svg-icon\n class=\"rating-icon dislike-icon d-flex\"\n [class.active]=\"data[item.field].hasDislike\"\n [src]=\"mapDropdownSvgRoutes.dislikeRoute\"\n [svgStyle]=\"{ 'width.px': 14, 'height.px': 14 }\"\n ></svg-icon>\n <span\n class=\"small-text dark-gray-text ca-font-semi-bold user-select-none\"\n >{{ data[item.field].dislikeCount }}\n </span>\n </div>\n <div\n class=\"d-flex justify-content-start align-items-center gap-2\"\n [class.opacity-40]=\"!data[item.field].reviewCount\"\n >\n <svg-icon\n class=\"rating-icon review-icon d-flex\"\n [src]=\"mapDropdownSvgRoutes.reviewRoute\"\n [svgStyle]=\"{ 'width.px': 14, 'height.px': 14 }\"\n ></svg-icon>\n <span\n class=\"small-text dark-gray-text ca-font-semi-bold user-select-none\"\n >{{ data[item.field].reviewCount ?? 0 }}\n </span>\n </div>\n </div>\n }\n\n <!-- Border Divider -->\n @case (eMapDropdownStringEnum.DIVIDER) {\n <div class=\"info-divider\"></div>\n }\n\n <!-- Repair Shop Services -->\n @case (eMapDropdownStringEnum.REPAIR_SHOP_SERVICES) {\n <div\n class=\"d-flex align-items-center justify-content-between {{\n item.customClassContainer\n }}\"\n >\n @for (\n service of data[item.field];\n let i = $index;\n track i\n ) {\n <div\n class=\"d-flex align-items-center justify-content-center\"\n ngbTooltip\n [tooltipBackground]=\"'#424242'\"\n [mainCaTooltip]=\"service.serviceType.name\"\n position=\"bottom\"\n >\n <svg-icon\n class=\"repair-service-icon\"\n [class.active]=\"service.active\"\n [src]=\"\n service.logoName\n | caSvg: 'common' : 'repair-services'\n \"\n [svgStyle]=\"{\n 'width.px': 18,\n 'height.px': 18,\n }\"\n ></svg-icon>\n </div>\n }\n </div>\n }\n\n <!-- Icon and Text -->\n @case (eMapDropdownStringEnum.ICON_TEXT) {\n <div\n class=\"d-flex align-items-start gap-1 {{\n item.customClassContainer\n }}\"\n >\n @if (item.url) {\n <div\n ngbTooltip\n [tooltipBackground]=\"'#424242'\"\n [mainCaTooltip]=\"item.iconTooltipText\"\n position=\"bottom\"\n [disableTooltip]=\"!item.iconTooltipText\"\n >\n <svg-icon\n class=\"d-flex align-items-center justify-content-center\"\n [src]=\"item.url\"\n [svgStyle]=\"{ 'width.px': 18, 'height.px': 18 }\"\n ></svg-icon>\n </div>\n }\n <span\n class=\"regular-text dark-gray-text {{\n item.customClassText\n }}\"\n >\n {{ data[item.field] }}\n </span>\n </div>\n }\n\n <!-- Title -->\n @case (eMapDropdownStringEnum.TITLE) {\n <div\n class=\"regular-text dark-gray-text ca-font-extra-bold {{\n item.customClassText\n }}\"\n >\n {{ data[item.field] }}\n </div>\n }\n\n <!-- Title and Count -->\n @case (eMapDropdownStringEnum.TITLE_COUNT) {\n <div\n class=\"d-flex align-items-center gap-1 {{\n item.customClassContainer\n }}\"\n >\n <div class=\"regular-text dark-gray-text ca-font-extra-bold\">\n {{ item.title }}\n </div>\n <div\n class=\"count-number white-text d-flex align-items-center justify-content-center ca-font-bold\"\n >\n {{ data[item.field] }}\n </div>\n </div>\n }\n\n <!-- Money Text -->\n @case (eMapDropdownStringEnum.MONEY_TEXT) {\n <div\n class=\"d-flex align-items-center gap-1 {{\n item.customClassContainer\n }}\"\n >\n <div class=\"regular-text ca-font-bold blue-text\">\n {{\n data?.[item.field] !== '' ? data[item.field] : '$0'\n }}\n </div>\n <div class=\"regular-text light-gray-text ca-font-bold\">\n {{ item.title }}\n </div>\n </div>\n }\n\n <!-- Open Hours -->\n @case (eMapDropdownStringEnum.OPEN_HOURS) {\n <div class=\"d-flex flex-column gap-2\">\n <div\n class=\"regular-text dark-gray-text ca-font-extra-bold {{\n item.customClassText\n }}\"\n >\n {{ item.title }}\n </div>\n <div class=\"open-hours-grid\">\n @if (\n data[item.field]?.openHoursToday &&\n !isShowAllDaysActive\n ) {\n <div class=\"d-flex flex-column flex-1\">\n <div\n class=\"small-text dark-gray-text ca-font-bold\"\n >\n {{ data[item.field].openHoursToday.status }}\n </div>\n <div\n class=\"regular-text dark-gray-text text-ellipsis\"\n >\n {{ data[item.field].openHoursToday.info }}\n </div>\n </div>\n }\n\n @if (data[item.field]?.openHours?.length) {\n @if (isShowAllDaysActive) {\n @for (\n day of data[item.field].openHours;\n let i = $index;\n track i\n ) {\n <div class=\"d-flex flex-column flex-1\">\n <div\n class=\"small-text dark-gray-text ca-font-bold\"\n >\n {{ day.dayOfWeek }}\n </div>\n <div\n class=\"regular-text dark-gray-text text-ellipsis\"\n >\n {{\n day.startTime +\n ' - ' +\n day.endTime\n }}\n </div>\n </div>\n }\n }\n <div\n class=\"d-flex flex-column flex-1 justify-content-end show-all-days-container\"\n >\n <div\n class=\"d-flex align-items-center gap-1\"\n (click)=\"showAllDaysClick()\"\n >\n <svg-icon\n class=\"d-flex\"\n [src]=\"\n mapDropdownSvgRoutes.accidentCalenderRoute\n \"\n [svgStyle]=\"{\n 'width.px': 18,\n 'height.px': 18,\n }\"\n ></svg-icon>\n <div\n class=\"regular-text gray-text cursor-pointer\"\n >\n {{\n isShowAllDaysActive\n ? 'Show today'\n : 'Show all days'\n }}\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n }\n\n <!-- Text and Count -->\n @case (eMapDropdownStringEnum.TEXT_COUNT) {\n <div\n class=\"d-flex align-items-center gap-1 {{\n item.customClassContainer\n }}\"\n >\n <div class=\"regular-text {{ item.customClassText }}\">\n {{ item.title }}\n </div>\n <div\n class=\"regular-text ca-font-semi-bold {{\n item.customClassText\n }}\"\n >\n {{ data | mapDropdownValue: item }}\n </div>\n </div>\n }\n\n <!-- Subtitle -->\n @case (eMapDropdownStringEnum.SUBTITLE) {\n <div\n class=\"regular-text dark-gray-text ca-font-extra-bold {{\n item.customClassText\n }}\"\n >\n {{ item.title }}\n </div>\n }\n\n <!-- Regular Text -->\n @case (eMapDropdownStringEnum.TEXT) {\n <div class=\"regular-text black-text {{ item.customClassText }}\">\n {{ data | mapDropdownValue: item }}\n </div>\n }\n\n <!-- Small Subtitle -->\n @case (eMapDropdownStringEnum.SMALL_SUBTITLE) {\n <div\n class=\"small-text dark-gray-text {{ item.customClassText }}\"\n >\n {{ item.title }}\n </div>\n }\n }\n }\n</ng-template>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap\";@import\"https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css\";.ca-font-thin{font-weight:100!important}.ca-font-extra-light{font-weight:200!important}.ca-font-light{font-weight:300!important}.ca-font-regular{font-weight:400!important}.ca-font-medium{font-weight:500!important}.ca-font-semi-bold{font-weight:600!important}.ca-font-bold{font-weight:700!important}.ca-font-extra-bold{font-weight:800!important}.ca-font-black{font-weight:900!important}.pickup-delivery-popover{top:-38px!important;max-width:340px!important}.pickup-delivery-popover.bs-popover-top{top:auto!important;bottom:-38px!important}.pickup-delivery-popover.bs-popover-top .load-component .assigned-load-holder{order:3;margin-top:4px;margin-bottom:0!important}.pickup-delivery-popover.bs-popover-top .load-component .statusBar{order:2;margin-top:4px}.pickup-delivery-popover.bs-popover-top .load-component .animation-three-tabs{order:1}.gps_dropdown_popover{top:-38px;max-width:494px}.gps_dropdown_popover .popover-body{padding:0}.table-progress-popover{background-color:unset!important;margin-left:-10px}.table-progress-popover .progress-dropdown{margin-top:-6px;width:260px;height:200px;background:#2f2f2f;border-radius:3px;padding:8px;box-shadow:0 0 4px #00000026;overflow:hidden;-webkit-animation:progressAnimation .25s ease-in-out;animation:progressAnimation .25s ease-in-out}.table-progress-popover .progress-dropdown .progress-header .progress-title{font-size:18px;font-weight:600;color:#dadada}.table-progress-popover .progress-dropdown .progress-header .progress-title span{font-weight:400}.table-progress-popover .progress-dropdown .progress-header .progress-total{font-size:14px;line-height:17px;color:#dadada}.table-progress-popover .progress-dropdown .table-progress-bar-container{width:100%;height:8px;margin-top:6px;border-radius:2px;overflow:hidden}.table-progress-popover .progress-dropdown .table-progress-bar-container .table-progress-bar{height:100%}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-dual-info-container .progress-info-container{width:50%}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container{margin-top:10px}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container .progress-info-title{margin-bottom:2px;font-size:11px;font-weight:700;line-height:14px;color:#ffffffb2}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container .progress-info-text{font-size:14px;line-height:18px;color:#dadada}.table-progress-popover .progress-dropdown.credit-dropdown{height:100px}@-webkit-keyframes progressAnimation{0%{height:0px}to{height:220px}}@keyframes progressAnimation{0%{height:0px}to{height:220px}}ngb-popover-window{padding:unset!important;border:unset!important}ngb-popover-window .popover-arrow{display:none!important}ngb-popover-window .popover-body{padding:unset!important}.dispatch-note .popover-body{position:relative;top:-4px;left:-4px}.tooltip{font-size:12px;position:relative}.tooltip.show{opacity:.83}.tooltip.fade:after,.tooltip.fade:before{transform:translateY(-10px);transition:all .15s ease-in-out}.tooltip.fade:hover:after,.tooltip.fade:hover:before{opacity:1;transform:translate(0)}.tooltip-inner{padding:4px 10px;white-space:nowrap;max-width:none;border-radius:3px}.tooltip-inner:empty{padding:0}.placeholder-delete .tooltip-inner{background-color:#f66}.placeholder-delete .arrow:before{border-top-color:#f66}.custom-popup-owners-for-flag .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(126%) translate(-50%)!important;width:130px;border-radius:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-for-flag .arrow{bottom:-18%;transform:rotate(180deg);left:calc(50% + 2.7rem)}.custom-popup-owners-for-flag .tooltip{opacity:.93!important;width:0}.custom-popup-owners{z-index:999}.custom-popup-owners .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(132%);z-index:999;box-shadow:0 0 3px #0003}.custom-popup-owners .arrow{bottom:-20%;transform:rotate(180deg)}.custom-popup-owners .tooltip{transform:translateY(-61px)!important}.custom-popup-owners-year{z-index:999}.custom-popup-owners-year .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(132%);z-index:999;box-shadow:0 0 3px #0003}.custom-popup-owners-year .arrow{bottom:-20%;transform:rotate(180deg)}.custom-popup-owners-year .tooltip{transform:translate(70px,-61px)!important}.custom-popup-owners-info .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(-100%) translate(-10%);width:200px;height:36px;display:flex;justify-content:center;align-items:center;border-radius:3px;margin-top:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-info .tooltip{opacity:.93;width:0}.custom-popup-owners-info .arrow{display:none}.custom-popup-owners-info #phone-inside{position:relative;right:26px;bottom:0}.custom-popup-owners-info-at .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(-108%) translate(-7%);width:270px;height:36px;display:flex;justify-content:center;align-items:center;border-radius:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-info-at .tooltip{opacity:1;width:0}.custom-popup-owners-info-at .arrow{display:none}.custom-popup-owners-for-tag .tooltip-inner{color:#3b3b3b;background-color:#fff;width:100px;border-radius:3px;box-shadow:0 0 3px #0003!important}.custom-popup-owners-for-tag .tooltip{top:5px!important}.custom-popup-owners-for-tag .arrow{bottom:-24%}.align-items-flex-start{justify-content:center;align-items:center}.align-items-flex-end{display:flex;justify-content:center;flex-direction:column;align-self:flex-end;align-items:flex-start}.label-add{align-self:flex-start}.fadeInLoad{animation:fadeInLoad .25s}@keyframes fadeInLoad{0%{opacity:0}to{opacity:1}}.fadeIn{opacity:1;-webkit-transition:.25s;-moz-transition:.25s;-o-transition:.25s;transition:.25s}.thisText:hover .fadeIn{opacity:0}.fadeInLoad{animation-name:example;animation-duration:.25s}@keyframes example{0%{transform:scale(.5)}to{transform:scale(1)}}.tooltip.tooltip-table-icons{left:12px!important;opacity:1}.tooltip.tooltip-table-icons .arrow{display:none!important}.tooltip.tooltip-table-icons .tooltip-inner{border-radius:0 50px 50px;background:#28529f}.tooltip.show{opacity:1;animation:fadeIn ease .5s!important;-webkit-animation:fadeIn ease .5s!important;-moz-animation:fadeIn ease .5s!important;-o-animation:fadeIn ease .5s!important;-ms-animation:fadeIn ease .5s!important}.ta-tooltip{position:absolute;font-size:12px;text-align:center;color:#fff;line-height:22px;z-index:999999!important;opacity:0;white-space:nowrap;transform:scale(.7)}.ta-tooltip.ta-tooltip-show{opacity:.85;transform:scale(1);padding:0 12px}.ta-tooltip.ta-tooltip-bottom-right,.ta-tooltip.ta-tooltip-bottom-right-corner{transform-origin:top left;border-radius:0 15px 15px}.ta-tooltip.ta-tooltip-bottom-left{transform-origin:top right;border-radius:15px 0 15px 15px}@keyframes scaleItem{0%{transform:scale(.4)}to{transform:scale(1)}}.app-ca-main-tooltip{pointer-events:none}.app-ca-main-tooltip .tooltip-inner{padding:0;background-color:transparent;pointer-events:none}.app-ca-main-tooltip .tooltip-inner .tooltip-holder{display:flex;font-size:11px;font-weight:700;border-radius:2px;padding:2px 8px;animation:scaleItem .3s;white-space:normal}.app-ca-main-tooltip .tooltip-inner .tooltip-holder:empty{padding:0}.tooltip-arrow{display:none!important}.trucks.semitruck svg path,.trucks.semisleeper svg path,.trucks.flatbed svg path,.trucks.stepdeck svg path,.trucks.lowboyrgn svg path,.trucks.chassis svg path,.trucks.conestoga svg path,.trucks.sidekit svg path,.trucks.container svg path,.trailers.semitruck svg path,.trailers.semisleeper svg path,.trailers.flatbed svg path,.trailers.stepdeck svg path,.trailers.lowboyrgn svg path,.trailers.chassis svg path,.trailers.conestoga svg path,.trailers.sidekit svg path,.trailers.container svg path{fill:#92b1f5}.trucks.boxtruck svg path,.trucks.reefertruck svg path,.trucks.cargovan svg path,.trucks.dryvan svg path,.trucks.reefer svg path,.trailers.boxtruck svg path,.trailers.reefertruck svg path,.trailers.cargovan svg path,.trailers.dryvan svg path,.trailers.reefer svg path{fill:#fbc88b}.trucks.dumptruck svg path,.trucks.cementtruck svg path,.trucks.garbagetruck svg path,.trucks.enddump svg path,.trucks.bottomdump svg path,.trucks.hopper svg path,.trucks.tanker svg path,.trucks.pneumatictanker svg path,.trailers.dumptruck svg path,.trailers.cementtruck svg path,.trailers.garbagetruck svg path,.trailers.enddump svg path,.trailers.bottomdump svg path,.trailers.hopper svg path,.trailers.tanker svg path,.trailers.pneumatictanker svg path{fill:#ed9292}.trucks.towtruck svg path,.trucks.carhauler svg path,.trucks.spotter svg path,.trucks.carhaulerstigner svg path,.trailers.towtruck svg path,.trailers.carhauler svg path,.trailers.spotter svg path,.trailers.carhaulerstigner svg path{fill:#86c9c3}.trucks .svgtext-template-text,.trailers .svgtext-template-text{color:#fff;transition:color .3s ease-in-out}.colors .black svg #droplet{fill:#6c6c6c}.colors .brown svg #droplet{fill:#a1887f}.colors .darkgreen svg #droplet{fill:#4db6a2}.colors .lightgreen svg #droplet{fill:#81c784}.colors .darkblue svg #droplet{fill:#546fd2}.colors .lightblue svg #droplet{fill:#64b5f6}.colors .gray svg #droplet{fill:#aaa}.colors .purple svg #droplet{fill:#ba68c8}.colors .gold svg #droplet{fill:#bcad79}.colors .silver svg #droplet{fill:#dadada}.colors .red svg #droplet{fill:#f96b69}.colors .pink svg #droplet{fill:#f26ec2}.colors .white svg #droplet{fill:#f1f1f1}.colors .orange svg #droplet{fill:#ff8a65}.colors .yellow svg #droplet{fill:#ffd54f}.colors:hover{transition:all .3s ease-in-out}.colors:hover .black svg #droplet{fill:#3c3c3c}.colors:hover .brown svg #droplet{fill:#8d6e63}.colors:hover .darkgreen svg #droplet{fill:#26a690}.colors:hover .lightgreen svg #droplet{fill:#66bb6a}.colors:hover .darkblue svg #droplet{fill:#304fc1}.colors:hover .lightblue svg #droplet{fill:#42a5f5}.colors:hover .gray svg #droplet{fill:#919191}.colors:hover .purple svg #droplet{fill:#ab47bc}.colors:hover .gold svg #droplet{fill:#aa9c6e}.colors:hover .silver svg #droplet{fill:#b7b7b7}.colors:hover .red svg #droplet{fill:#ef5350}.colors:hover .pink svg #droplet{fill:#fa4daa}.colors:hover .white svg #droplet{fill:#fff}.colors:hover .orange svg #droplet{fill:#ff7043}.colors:hover .yellow svg #droplet{fill:#ffca28}.text-color-black{color:#424242!important}.text-color-black::-moz-selection{background:#42424233!important;color:#424242!important}.text-color-black::selection{background:#42424233!important;color:#424242!important}.text-color-black-2{color:#2f2f2f!important}.text-color-black-2::-moz-selection{background:#2f2f2f33!important;color:#2f2f2f!important}.text-color-black-2::selection{background:#2f2f2f33!important;color:#2f2f2f!important}.text-color-muted{color:#919191!important}.text-color-muted::-moz-selection{background:#91919133!important;color:#919191!important}.text-color-muted::selection{background:#91919133!important;color:#919191!important}.text-color-green{color:#56b4ac!important}.text-color-green::-moz-selection{background:#56b4ac33!important;color:#56b4ac!important}.text-color-green::selection{background:#56b4ac33!important;color:#56b4ac!important}.text-color-blue-13{color:#6692f1!important}.text-color-blue-13::-moz-selection{background:#66921833!important;color:#6692f1!important}.text-color-blue-13::selection{background:#66921833!important;color:#6692f1!important}.text-color-blue-18{color:#3b73ed!important}.text-color-blue-18::-moz-selection{background:#3b73ed33!important;color:#3b73ed!important}.text-color-blue-18::selection{background:#3b73ed33!important;color:#3b73ed!important}.text-color-red-10{color:#e66767!important}.text-color-red-10::-moz-selection{background:#e6676733!important;color:#e66767!important}.text-color-red-10::selection{background:#e6676733!important;color:#e66767!important}.text-color-light-grey{color:#e5e5e5!important}.text-color-light-grey::-moz-selection{background:#e5e5e533!important;color:#e5e5e5!important}.text-color-light-grey::selection{background:#e5e5e533!important;color:#e5e5e5!important}.text-color-light-grey-2{color:#aaa!important}.text-color-light-grey-2::-moz-selection{background:#aaa3!important;color:#aaa!important}.text-color-light-grey-2::selection{background:#aaa3!important;color:#aaa!important}.text-color-light-grey-6{color:#ccc!important}.text-color-light-grey-6::-moz-selection{color:#ccc!important;background:#aaa3!important}.text-color-light-grey-6::selection{color:#ccc!important;background:#aaa3!important}.text-color-white{color:#dadada!important}.text-color-white::-moz-selection{color:#dadada!important;background:#fff3!important}.text-color-white::selection{color:#dadada!important;background:#fff3!important}.text-color-white-4{color:#ffffffb2!important}.text-color-white-4::-moz-selection{color:#ffffffb2!important;background:#fff3!important}.text-color-white-4::selection{color:#ffffffb2!important;background:#fff3!important}.text-color-dark-grey{color:#6c6c6c!important}.text-color-dark-grey::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-dark-grey::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw6-2{color:#6c6c6c!important}.text-color-bw6-2::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw6-2::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw-9{color:#dadada!important}.text-color-bw-9::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw-9::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-grey{color:#919191!important}.text-color-grey::-moz-selection{color:#919191!important;background:#91919133!important}.text-color-grey::selection{color:#919191!important;background:#91919133!important}.text-color-grey .address-text::-moz-selection,.text-color-grey .marker-bold-text::-moz-selection{color:#919191!important;background:#91919133!important}.text-color-grey .address-text::selection,.text-color-grey .marker-bold-text::selection{color:#919191!important;background:#91919133!important}.text-size-11{font-size:11px!important;line-height:14px!important}.text-size-14{font-size:14px!important;line-height:18px!important}.text-size-16{font-size:16px!important;line-height:19px!important}.text-size-18{font-size:18px!important;line-height:22px!important}.text-size-26{font-size:26px!important;line-height:32px!important}.text-size-28{font-size:28px!important;line-height:34px!important}@keyframes dropdown{0%{margin-top:20px;visibility:hidden;opacity:0}to{opacity:1;margin-top:10px;visibility:visible!important}}@keyframes dropup{0%{margin-top:-19px;visibility:hidden;opacity:0}to{margin-top:inherit;visibility:visible!important}}.svg-fill-black svg path{fill:#424242!important}.svg-fill-muted svg path{fill:#919191!important}.svg-fill-bw-9 svg path{fill:#dadada!important}.svg-fill-light-grey-2 svg path{fill:#aaa!important}.svg-fill-light-grey-6 svg path{fill:#ccc!important}.svg-fill-blue-13 svg path{fill:#6692f1!important}.svg-fill-blue-19 svg path{fill:#92b1f5!important}.svg-fill-blue-26 svg path{fill:#4dc5eb!important}.svg-hover-muted svg path{transition:all .3s ease-in-out}.svg-hover-muted:hover svg path{fill:#919191!important}.svg-hover-black svg path{transition:all .3s ease-in-out}.svg-hover-black:hover svg path{fill:#424242!important}.svg-hover-blue-15 svg path{transition:all .3s ease-in-out}.svg-hover-blue-15:hover svg path{fill:#0b49d1!important}.svg-hover-bw6-2 svg path{transition:all .3s ease-in-out}.svg-hover-bw6-2:hover svg path{fill:#6c6c6c!important}.svg-hover-trash-red svg path{transition:all .3s ease-in-out}.svg-hover-trash-red:hover svg path{fill:#ff5050!important}.svg-hover-red-14 svg path{transition:all .3s ease-in-out}.svg-hover-red-14:hover svg path{fill:#c20c0c!important}.svg-size-12 svg{width:12px;height:12px}.svg-size-14 svg{width:14px;height:14px}.svg-size-16 svg{width:16px;height:16px}.svg-size-18 svg{width:18px;height:18px}.svg-size-44-16 svg{width:44px;height:16px}*{margin:0;font-family:Montserrat,sans-serif}html{scroll-behavior:auto!important}.gm-style-iw-chr,.gm-style-iw-tc{display:none}.gm-style .gm-style-iw-c{border-radius:0}.gm-style-iw{overflow-y:auto!important;overflow-x:hidden!important}.gm-style-iw>div{overflow:visible!important}.infoWindow{overflow:hidden!important}.gm-style-iw-d,.gm-style-iw.gm-style-iw-c{max-height:350px!important}::ng-deep .popover{--bs-popover-border-width: 0;--bs-popover-body-padding-y: 0;--bs-popover-body-padding-x: 0}::ng-deep .popover .popover-arrow{display:none}:host{display:block;height:100%;width:100%}.cluster-marker-container{width:354px;max-height:244px;margin:4px 2px 4px 4px;overflow-y:scroll;cursor:default}.cluster-marker-container::-webkit-scrollbar{width:2px}.cluster-marker-container::-webkit-scrollbar-thumb{background-color:#ccc;border:2px solid #cccccc;border-radius:1px}.cluster-marker-container::-webkit-scrollbar-track{width:2px;background-color:#fff}.cluster-marker-container .cluster-marker-item{max-width:100%;padding:4px;cursor:pointer;border-radius:2px}.cluster-marker-container .cluster-marker-item:hover{background:#eee}.marker-container{width:360px;max-height:214px;padding:8px;transition:max-height .2s ease-in-out;cursor:default}.marker-container.expanded{max-height:396px}.marker-container .heading{max-width:100%;margin-bottom:3px}.marker-container .heading .header-text-container{max-width:calc(100% - 26px)}.marker-container .heading .header-text-container .header-back-button{min-width:18px;min-height:18px;background:#eee;border-radius:1px;cursor:pointer}.marker-container .heading .header-text-container .header-back-button svg-icon svg path{fill:#919191}.marker-container .heading .header-text-container .header{font-family:Montserrat,sans-serif;font-size:16px;line-height:20px;color:#424242}.marker-container .heading .dropdown-icon{min-width:26px;min-height:26px}.marker-container .action .side-space{padding-right:4px}.marker-container .action .side-space .count{font-family:Montserrat,sans-serif;font-size:11px;color:#424242;padding:0 7px;position:relative;left:-1px}.marker-container .action .side-space .grey-color{color:#919191}.marker-container .repair-service-icon svg path{fill:#ccc;fill-opacity:1}.marker-container .repair-service-icon.active svg path{fill:#919191;fill-opacity:1}.marker-container .personal-info-items{font-family:Montserrat,sans-serif}.marker-container .personal-info-items .info{max-width:100%;font-size:14px;line-height:18px;padding:0 5px;color:#2f2f2f;font-family:Montserrat,sans-serif;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.marker-container .working-info-detail{font-family:Montserrat,sans-serif}.marker-container .working-info-detail .working-info-item{font-size:11px;line-height:14px;color:#424242}.marker-container .working-info-detail .working-info-item .working-time{font-size:14px;line-height:18px}.marker-container .load-info .load-heading{font-family:Montserrat,sans-serif;font-size:13px;margin-bottom:5px}.marker-container .load-info .load-heading .load-head-count{background-color:#6c6c6c;border-radius:50%;padding:3px 4px;color:#fff;font-size:7px;margin:1px 4px 0;font-family:Montserrat,sans-serif}.marker-container .load-info .load-info-detail{font-family:Montserrat,sans-serif}.marker-container .load-info .load-info-detail .load-info-item{font-size:12px;line-height:18px;color:#2f2f2f}.marker-container .load-info .load-info-detail .loading-hours{font-size:10px;color:#919191}.marker-container .load-info .load-info-detail .loading-hours .load-time{color:#919191}.marker-container .avg-info .avg-info-detail{font-family:Montserrat,sans-serif}.marker-container .avg-info .avg-info-detail .avg-item .item-date{padding:0 7px;color:#2f2f2f}.infowindow-container{width:300px;padding:2px 9px 9px 0}.infowindow-container .heading-container .heading{margin-top:15px;margin-bottom:3px}.infowindow-container .heading-container .heading .header{font-family:Montserrat,sans-serif;font-size:15px;line-height:19.5px}.infowindow-container .personal-info .personal-info-items{padding:1px 0;margin-bottom:3px;font-family:Montserrat,sans-serif}.infowindow-container .personal-info .personal-info-items .info{font-size:14px;line-height:18px;padding:0 5px;color:#2f2f2f;font-family:Montserrat,sans-serif}.infowindow-container .weight-info .weight-heading{font-family:Montserrat,sans-serif;font-size:13px;margin-bottom:5px}.infowindow-container .weight-info .weight-heading .weight-head-count{background-color:#6c6c6c;border-radius:50%;padding:3px 4px;color:#fff;font-size:7px;margin:1px 4px 0;font-family:Montserrat,sans-serif}.infowindow-container .weight-info .weight-info-detail{font-family:Montserrat,sans-serif}.infowindow-container .weight-info .weight-info-detail .weight-info-item{font-size:12px;line-height:18px;color:#424242}.infowindow-container .weight-info .weight-info-detail .weight-info-item .weight-time{color:#424242;padding:0 5px}.infowindow-container .transport-info .transport-container{margin-top:15px;font-family:Montserrat,sans-serif;margin-bottom:10px}.infowindow-container .transport-info .transport-container .driver-info .side-space{margin-left:20px}.infowindow-container .transport-info .transport-container .driver-info .title{font-size:11px;line-height:14px}.infowindow-container .transport-info .transport-container .driver-info .detail{font-size:13px;line-height:18px;color:#2f2f2f}.infowindow-container .transport-info .transport-container .truck-info .side-space{margin-left:50px}.infowindow-container .transport-info .transport-container .truck-info .title{font-size:11px;line-height:14px}.infowindow-container .transport-info .transport-container .truck-info .detail{font-size:13px;line-height:18px;color:#2f2f2f}.info-divider{margin:8px 0;width:100%;height:1px;background:#dadada;border-radius:2px}.dropdown-arrow{position:absolute;right:6px;bottom:6px}.dropdown-arrow svg{transition:transform .2s ease-in-out;transform:rotate(0)}.dropdown-arrow svg path{transition:fill .2s ease-in-out;fill:#919191}.dropdown-arrow.rotate-arrow svg{transform:rotate(180deg)}.dropdown-arrow.rotate-arrow svg path{fill:#6692f1}.dropdown-arrow:hover{cursor:pointer}.dropdown-arrow:hover svg path{fill:#6692f1}.expanded-info{max-height:0px;overflow:hidden;transition:max-height .2s ease-in-out}.expanded-info.active{max-height:300px}.gap-8{gap:8px}.count-number{padding:0 5px;background:#6c6c6c;border-radius:60px;font-size:11px;line-height:14px;-webkit-user-select:none;user-select:none}.rating-icon svg path{fill:#919191;fill-opacity:1}.rating-icon.active.like-icon svg path{fill:#56b4ac}.rating-icon.active.dislike-icon svg path{fill:#e66767}.text-ellipsis{max-width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.text-ellipsis.two-rows-ellipsis{max-width:90%;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;white-space:initial}.blue-text{color:#6692f1!important}.blue-text::-moz-selection{color:#6692f1;background:#3b73ed33}.blue-text::selection{color:#6692f1;background:#3b73ed33}.red-text{color:#df3c3c!important}.red-text::-moz-selection{color:#df3c3c;background:#df3c3c33}.red-text::selection{color:#df3c3c;background:#df3c3c33}.gray-text{color:#919191!important}.gray-text::-moz-selection{color:#919191;background:#91919133}.gray-text::selection{color:#919191;background:#91919133}.light-gray-text{color:#6c6c6c}.light-gray-text::-moz-selection{color:#6c6c6c;background:#6c6c6c33}.light-gray-text::selection{color:#6c6c6c;background:#6c6c6c33}.dark-gray-text{color:#424242}.dark-gray-text::-moz-selection{color:#424242;background:#42424233}.dark-gray-text::selection{color:#424242;background:#42424233}.black-text{color:#2f2f2f}.black-text::-moz-selection{color:#2f2f2f;background:#2f2f2f33}.black-text::selection{color:#2f2f2f;background:#2f2f2f33}.white-text{color:#dadada}.white-text::-moz-selection{color:#dadada;background:#fff3}.white-text::selection{color:#dadada;background:#fff3}.opacity-40{opacity:.4}.regular-text{font-size:14px;line-height:18px;font-family:Montserrat,sans-serif}.small-text{font-size:11px;line-height:14px;font-family:Montserrat,sans-serif}.open-hours-grid{display:grid;grid-template-columns:50% 50%;grid-row-gap:8px}.cursor-pointer{cursor:pointer}.show-all-days-container{grid-column:2/span 1}\n"], dependencies: [{ kind: "ngmodule", type:
|
|
72
72
|
//modules
|
|
73
|
-
CommonModule }, { kind: "directive", type: i1.
|
|
73
|
+
CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: AngularSvgIconModule }, { kind: "component", type: i2.SvgIconComponent, selector: "svg-icon", inputs: ["src", "name", "stretch", "applyClass", "applyCss", "svgClass", "class", "viewBox", "svgAriaLabel", "svgStyle"] }, { kind: "directive", type: NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "component", type:
|
|
74
74
|
// components
|
|
75
75
|
CaAppTooltipV2Component, selector: "mainCaTooltip, [mainCaTooltip]", inputs: ["mainCaTooltip", "position", "openTooltipDelay", "tooltipBackground", "tooltipColor", "tooltipTextAlign", "tooltipMarginTop", "disableTooltip"] }, { kind: "pipe", type:
|
|
76
76
|
// pipes
|
|
@@ -90,7 +90,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
90
90
|
MapDropdownContentPipe,
|
|
91
91
|
MapDropdownClusterContentPipe,
|
|
92
92
|
MapDropdownValuePipe,
|
|
93
|
-
], providers: [SvgIconRegistryService], template: "<ng-container *ngIf=\"infoWindowContent\">\n <ng-container\n *ngIf=\"infoWindowContent?.clusterData; else markerInfoTemplate\"\n >\n <ng-container\n *ngIf=\"\n infoWindowContent?.selectedClusterItemData;\n else clusterDataListTemplate\n \"\n >\n <div\n class=\"marker-container relative\"\n [class.expanded]=\"!isHidden\"\n (click)=\"dropdownClick($event)\"\n (mousewheel)=\"stopMapZoom($event)\"\n >\n @for (\n item of infoWindowContent.selectedClusterItemData\n .mainContent;\n let i = $index;\n track identity\n ) {\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentTemplate;\n context: {\n content: item,\n data: infoWindowContent?.selectedClusterItemData\n .data,\n }\n \"\n ></ng-container>\n }\n\n <div class=\"expanded-info\" [class.active]=\"!isHidden\">\n @for (\n item of infoWindowContent.selectedClusterItemData\n .expandedContent;\n let i = $index;\n track identity\n ) {\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentTemplate;\n context: {\n content: item,\n data: infoWindowContent\n ?.selectedClusterItemData.data,\n }\n \"\n ></ng-container>\n }\n </div>\n\n <div\n class=\"dropdown-arrow align-self-end\"\n [class.rotate-arrow]=\"!isHidden\"\n >\n <svg-icon\n [src]=\"getSvgPath('cornerDownArrowRoute')\"\n (click)=\"showHiddenData($event)\"\n ></svg-icon>\n </div>\n </div>\n </ng-container>\n\n <ng-template #clusterDataListTemplate>\n <div\n class=\"cluster-marker-container d-flex flex-column gap-1\"\n (click)=\"dropdownClick($event)\"\n (mousewheel)=\"onClusterListScroll($event)\"\n >\n @for (\n item of infoWindowContent.clusterData;\n let i = $index;\n track identity\n ) {\n <ng-container\n *ngTemplateOutlet=\"\n clusterContentTemplate;\n context: {\n content: item,\n }\n \"\n ></ng-container>\n }\n </div>\n </ng-template>\n </ng-container>\n\n <ng-template #markerInfoTemplate>\n <div\n class=\"marker-container relative\"\n [class.expanded]=\"!isHidden\"\n (click)=\"dropdownClick($event)\"\n (mousewheel)=\"stopMapZoom($event)\"\n >\n @for (\n item of infoWindowContent.mainContent;\n let i = $index;\n track identity\n ) {\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentTemplate;\n context: {\n content: item,\n data: markerData,\n }\n \"\n ></ng-container>\n }\n\n <div class=\"expanded-info\" [class.active]=\"!isHidden\">\n @for (\n item of infoWindowContent.expandedContent;\n let i = $index;\n track identity\n ) {\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentTemplate;\n context: {\n content: item,\n data: markerData,\n }\n \"\n ></ng-container>\n }\n </div>\n\n <div\n class=\"dropdown-arrow align-self-end\"\n [class.rotate-arrow]=\"!isHidden\"\n >\n <svg-icon\n [src]=\"getSvgPath('cornerDownArrowRoute')\"\n (click)=\"showHiddenData($event)\"\n ></svg-icon>\n </div>\n </div>\n </ng-template>\n</ng-container>\n\n<ng-template #clusterContentTemplate let-content=\"content\">\n <ng-container *ngIf=\"content | mapDropdownClusterContentType; let item\">\n <div\n class=\"d-flex align-items-center justify-content-between cluster-marker-item\"\n (click)=\"clusterItemClick(item)\"\n >\n <div\n class=\"d-flex align-items-center gap-1\"\n [ngStyle]=\"{\n 'max-width': item.favourite ? 'calc(100% - 18px)' : '100%',\n }\"\n >\n <ng-container *ngIf=\"item.isClosed\">\n <svg-icon\n class=\"d-flex\"\n [src]=\"getSvgPath('permanentlyClosedRoute')\"\n [svgStyle]=\"{ 'width.px': 18, 'height.px': 18 }\"\n ></svg-icon>\n </ng-container>\n <div\n class=\"regular-text dark-gray-text uppercase text-ellipsis\"\n >\n {{ item.name }}\n </div>\n </div>\n <ng-container *ngIf=\"item.favourite\">\n <svg-icon\n class=\"d-flex\"\n [src]=\"getSvgPath('favoriteRoute')\"\n [svgStyle]=\"{ 'width.px': 18, 'height.px': 18 }\"\n ></svg-icon>\n </ng-container>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #dropdownContentTemplate let-content=\"content\" let-data=\"data\">\n <ng-container *ngIf=\"content | mapDropdownContentType; let item\">\n <ng-container *ngIf=\"!item.sideBySideInfo; else sideBySideInfoTemplate\">\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentItemTemplates;\n context: {\n content: item,\n data: data,\n }\n \"\n ></ng-container>\n </ng-container>\n\n <ng-template #sideBySideInfoTemplate>\n <!-- Side by Side Data -->\n <div class=\"d-flex align-items-center\">\n <!-- Left Side -->\n <ng-container *ngIf=\"item.sideBySideInfo?.leftSide\">\n <div class=\"flex-1\">\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentItemTemplates;\n context: {\n content: item.sideBySideInfo?.leftSide,\n data: data,\n }\n \"\n >\n </ng-container>\n </div>\n </ng-container>\n\n <!-- Right Side -->\n <ng-container *ngIf=\"item.sideBySideInfo?.rightSide\">\n <div class=\"flex-1\">\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentItemTemplates;\n context: {\n content: item.sideBySideInfo?.rightSide,\n data: data,\n }\n \"\n >\n </ng-container>\n </div>\n </ng-container>\n </div>\n </ng-template>\n </ng-container>\n</ng-template>\n\n<ng-template\n #dropdownContentItemTemplates\n let-content=\"content\"\n let-data=\"data\"\n>\n <ng-container *ngIf=\"content | mapDropdownContentType; let item\">\n <ng-container [ngSwitch]=\"item.template\">\n <!-- Main Title -->\n <ng-container *ngSwitchCase=\"'header-title'\">\n <div\n class=\"heading d-flex justify-content-between align-items-center {{\n item.customClassContainer\n }}\"\n >\n <div\n class=\"header-text-container d-flex align-items-center gap-1 w-100\"\n >\n <ng-container *ngIf=\"item.hasBackButton\">\n <div\n class=\"header-back-button d-flex align-items-center justify-content-center\"\n (click)=\"backButtonClick($event)\"\n >\n <svg-icon\n class=\"d-flex\"\n [src]=\"getSvgPath('backButtonRoute')\"\n [svgStyle]=\"{\n 'width.px': 14,\n 'height.px': 14,\n }\"\n >\n </svg-icon>\n </div>\n </ng-container>\n <span\n class=\"header ca-font-extra-bold dark-gray-text {{\n item.customClassText\n }}\"\n >\n {{ data[item.field] }}\n </span>\n </div>\n\n <!-- <div class=\"dropdown-icon\"></div> -->\n <!-- <app-ca-details-dropdown\n #detailsDropdown\n [options]=\"data\"\n [placement]=\"'right-top'\"\n [id]=\"item?.id\"\n [data]=\"item\"\n [customClassDropDown]=\"\n 'map-list-card-dropdown marker-dropdown-popover'\n \"\n (dropDownActions)=\"callBodyAction($event)\"\n ></app-ca-details-dropdown> -->\n </div>\n </ng-container>\n\n <!-- Rating Review -->\n <ng-container *ngSwitchCase=\"'rating-review'\">\n <div\n class=\"d-flex justify-content-start align-items-center align-content-center gap-3 {{\n item.customClassContainer\n }}\"\n >\n <div\n class=\"d-flex justify-content-start align-items-center gap-2\"\n [class.opacity-40]=\"!data[item.field].likeCount\"\n >\n <svg-icon\n class=\"rating-icon like-icon d-flex\"\n [class.active]=\"data[item.field].hasLiked\"\n [src]=\"getSvgPath('likeRoute')\"\n [svgStyle]=\"{ 'width.px': 14, 'height.px': 14 }\"\n ></svg-icon>\n <span\n class=\"small-text dark-gray-text ca-font-semi-bold user-select-none\"\n >{{ data[item.field].likeCount }}\n </span>\n </div>\n <div\n class=\"d-flex justify-content-start align-items-center gap-2\"\n [class.opacity-40]=\"!data[item.field].dislikeCount\"\n >\n <svg-icon\n class=\"rating-icon dislike-icon d-flex\"\n [class.active]=\"data[item.field].hasDislike\"\n [src]=\"getSvgPath('dislikeRoute')\"\n [svgStyle]=\"{ 'width.px': 14, 'height.px': 14 }\"\n ></svg-icon>\n <span\n class=\"small-text dark-gray-text ca-font-semi-bold user-select-none\"\n >{{ data[item.field].dislikeCount }}\n </span>\n </div>\n <div\n class=\"d-flex justify-content-start align-items-center gap-2\"\n [class.opacity-40]=\"!data[item.field].reviewCount\"\n >\n <svg-icon\n class=\"rating-icon review-icon d-flex\"\n [src]=\"getSvgPath('reviewRoute')\"\n [svgStyle]=\"{ 'width.px': 14, 'height.px': 14 }\"\n ></svg-icon>\n <span\n class=\"small-text dark-gray-text ca-font-semi-bold user-select-none\"\n >{{ data[item.field].reviewCount ?? 0 }}\n </span>\n </div>\n </div>\n </ng-container>\n\n <!-- Border Divider -->\n <ng-container *ngSwitchCase=\"'divider'\">\n <div class=\"info-divider\"></div>\n </ng-container>\n\n <!-- Repair Shop Services -->\n <ng-container *ngSwitchCase=\"'repair-shop-services'\">\n <div\n class=\"d-flex align-items-center justify-content-between {{\n item.customClassContainer\n }}\"\n >\n @for (service of data[item.field]; track identity) {\n <div\n class=\"d-flex align-items-center justify-content-center\"\n ngbTooltip\n [tooltipBackground]=\"'#424242'\"\n [mainCaTooltip]=\"service.serviceType.name\"\n position=\"bottom\"\n >\n <svg-icon\n class=\"repair-service-icon\"\n [class.active]=\"service.active\"\n [src]=\"\n service.logoName\n | caSvg: 'common' : 'repair-services'\n \"\n [svgStyle]=\"{\n 'width.px': 18,\n 'height.px': 18,\n }\"\n ></svg-icon>\n </div>\n }\n </div>\n </ng-container>\n\n <!-- Icon and Text -->\n <ng-container *ngSwitchCase=\"'icon-text'\">\n <div\n class=\"d-flex align-items-start gap-1 {{\n item.customClassContainer\n }}\"\n >\n <ng-container *ngIf=\"item.url\">\n <div\n ngbTooltip\n [tooltipBackground]=\"'#424242'\"\n [mainCaTooltip]=\"item.iconTooltipText\"\n position=\"bottom\"\n [disableTooltip]=\"!item.iconTooltipText\"\n >\n <svg-icon\n class=\"d-flex align-items-center justify-content-center\"\n [src]=\"item.url\"\n [svgStyle]=\"{ 'width.px': 18, 'height.px': 18 }\"\n ></svg-icon>\n </div>\n </ng-container>\n <span\n class=\"regular-text dark-gray-text {{\n item.customClassText\n }}\"\n >\n {{ data[item.field] }}\n </span>\n </div>\n </ng-container>\n\n <!-- Title -->\n <ng-container *ngSwitchCase=\"'title'\">\n <div\n class=\"regular-text dark-gray-text ca-font-extra-bold {{\n item.customClassText\n }}\"\n >\n {{ data[item.field] }}\n </div>\n </ng-container>\n\n <!-- Title and Count -->\n <ng-container *ngSwitchCase=\"'title-count'\">\n <div\n class=\"d-flex align-items-center gap-1 {{\n item.customClassContainer\n }}\"\n >\n <div class=\"regular-text dark-gray-text ca-font-extra-bold\">\n {{ item.title }}\n </div>\n <div\n class=\"count-number white-text d-flex align-items-center justify-content-center ca-font-bold\"\n >\n {{ data[item.field] }}\n </div>\n </div>\n </ng-container>\n\n <!-- Money Text -->\n <ng-container *ngSwitchCase=\"'money-text'\">\n <div\n class=\"d-flex align-items-center gap-1 {{\n item.customClassContainer\n }}\"\n >\n <div class=\"regular-text ca-font-bold blue-text\">\n {{\n data?.[item.field] !== '' ? data[item.field] : '$0'\n }}\n </div>\n <div class=\"regular-text light-gray-text ca-font-bold\">\n {{ item.title }}\n </div>\n </div>\n </ng-container>\n\n <!-- Open Hours -->\n <ng-container *ngSwitchCase=\"'open-hours'\">\n <div class=\"d-flex flex-column gap-2\">\n <div\n class=\"regular-text dark-gray-text ca-font-extra-bold {{\n item.customClassText\n }}\"\n >\n {{ item.title }}\n </div>\n <div class=\"open-hours-grid\">\n <ng-container\n *ngIf=\"\n data[item.field]?.openHoursToday &&\n !isShowAllDaysActive\n \"\n >\n <div class=\"d-flex flex-column flex-1\">\n <div\n class=\"small-text dark-gray-text ca-font-bold\"\n >\n {{ data[item.field].openHoursToday.status }}\n </div>\n <div\n class=\"regular-text dark-gray-text text-ellipsis\"\n >\n {{ data[item.field].openHoursToday.info }}\n </div>\n </div>\n </ng-container>\n <ng-container\n *ngIf=\"data[item.field]?.openHours?.length\"\n >\n <ng-container *ngIf=\"isShowAllDaysActive\">\n @for (\n day of data[item.field].openHours;\n track identity\n ) {\n <div class=\"d-flex flex-column flex-1\">\n <div\n class=\"small-text dark-gray-text ca-font-bold\"\n >\n {{ day.dayOfWeek }}\n </div>\n <div\n class=\"regular-text dark-gray-text text-ellipsis\"\n >\n {{\n day.startTime +\n ' - ' +\n day.endTime\n }}\n </div>\n </div>\n }\n </ng-container>\n <div\n class=\"d-flex flex-column flex-1 justify-content-end show-all-days-container\"\n >\n <div\n class=\"d-flex align-items-center gap-1\"\n (click)=\"showAllDaysClick()\"\n >\n <svg-icon\n class=\"d-flex\"\n [src]=\"\n getSvgPath('accidentCalenderRoute')\n \"\n [svgStyle]=\"{\n 'width.px': 18,\n 'height.px': 18,\n }\"\n ></svg-icon>\n <div\n class=\"regular-text gray-text cursor-pointer\"\n >\n {{\n isShowAllDaysActive\n ? 'Show today'\n : 'Show all days'\n }}\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n </ng-container>\n\n <!-- Text and Count -->\n <ng-container *ngSwitchCase=\"'text-count'\">\n <div\n class=\"d-flex align-items-center gap-1 {{\n item.customClassContainer\n }}\"\n >\n <div class=\"regular-text {{ item.customClassText }}\">\n {{ item.title }}\n </div>\n <div\n class=\"regular-text ca-font-semi-bold {{\n item.customClassText\n }}\"\n >\n {{ data | mapDropdownValue: item }}\n </div>\n </div>\n </ng-container>\n\n <!-- Subtitle -->\n <ng-container *ngSwitchCase=\"'subtitle'\">\n <div\n class=\"regular-text dark-gray-text ca-font-extra-bold {{\n item.customClassText\n }}\"\n >\n {{ item.title }}\n </div>\n </ng-container>\n\n <!-- Regular Text -->\n <ng-container *ngSwitchCase=\"'text'\">\n <div class=\"regular-text black-text {{ item.customClassText }}\">\n {{ data | mapDropdownValue: item }}\n </div>\n </ng-container>\n\n <!-- Small Subtitle -->\n <ng-container *ngSwitchCase=\"'small-subtitle'\">\n <div\n class=\"small-text dark-gray-text {{ item.customClassText }}\"\n >\n {{ item.title }}\n </div>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-template>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap\";@import\"https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css\";.ca-font-thin{font-weight:100!important}.ca-font-extra-light{font-weight:200!important}.ca-font-light{font-weight:300!important}.ca-font-regular{font-weight:400!important}.ca-font-medium{font-weight:500!important}.ca-font-semi-bold{font-weight:600!important}.ca-font-bold{font-weight:700!important}.ca-font-extra-bold{font-weight:800!important}.ca-font-black{font-weight:900!important}.pickup-delivery-popover{top:-38px!important;max-width:340px!important}.pickup-delivery-popover.bs-popover-top{top:auto!important;bottom:-38px!important}.pickup-delivery-popover.bs-popover-top .load-component .assigned-load-holder{order:3;margin-top:4px;margin-bottom:0!important}.pickup-delivery-popover.bs-popover-top .load-component .statusBar{order:2;margin-top:4px}.pickup-delivery-popover.bs-popover-top .load-component .animation-three-tabs{order:1}.gps_dropdown_popover{top:-38px;max-width:494px}.gps_dropdown_popover .popover-body{padding:0}.table-progress-popover{background-color:unset!important;margin-left:-10px}.table-progress-popover .progress-dropdown{margin-top:-6px;width:260px;height:200px;background:#2f2f2f;border-radius:3px;padding:8px;box-shadow:0 0 4px #00000026;overflow:hidden;-webkit-animation:progressAnimation .25s ease-in-out;animation:progressAnimation .25s ease-in-out}.table-progress-popover .progress-dropdown .progress-header .progress-title{font-size:18px;font-weight:600;color:#dadada}.table-progress-popover .progress-dropdown .progress-header .progress-title span{font-weight:400}.table-progress-popover .progress-dropdown .progress-header .progress-total{font-size:14px;line-height:17px;color:#dadada}.table-progress-popover .progress-dropdown .table-progress-bar-container{width:100%;height:8px;margin-top:6px;border-radius:2px;overflow:hidden}.table-progress-popover .progress-dropdown .table-progress-bar-container .table-progress-bar{height:100%}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-dual-info-container .progress-info-container{width:50%}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container{margin-top:10px}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container .progress-info-title{margin-bottom:2px;font-size:11px;font-weight:700;line-height:14px;color:#ffffffb2}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container .progress-info-text{font-size:14px;line-height:18px;color:#dadada}.table-progress-popover .progress-dropdown.credit-dropdown{height:100px}@-webkit-keyframes progressAnimation{0%{height:0px}to{height:220px}}@keyframes progressAnimation{0%{height:0px}to{height:220px}}ngb-popover-window{padding:unset!important;border:unset!important}ngb-popover-window .popover-arrow{display:none!important}ngb-popover-window .popover-body{padding:unset!important}.dispatch-note .popover-body{position:relative;top:-4px;left:-4px}.tooltip{font-size:12px;position:relative}.tooltip.show{opacity:.83}.tooltip.fade:after,.tooltip.fade:before{transform:translateY(-10px);transition:all .15s ease-in-out}.tooltip.fade:hover:after,.tooltip.fade:hover:before{opacity:1;transform:translate(0)}.tooltip-inner{padding:4px 10px;white-space:nowrap;max-width:none;border-radius:3px}.tooltip-inner:empty{padding:0}.placeholder-delete .tooltip-inner{background-color:#f66}.placeholder-delete .arrow:before{border-top-color:#f66}.custom-popup-owners-for-flag .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(126%) translate(-50%)!important;width:130px;border-radius:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-for-flag .arrow{bottom:-18%;transform:rotate(180deg);left:calc(50% + 2.7rem)}.custom-popup-owners-for-flag .tooltip{opacity:.93!important;width:0}.custom-popup-owners{z-index:999}.custom-popup-owners .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(132%);z-index:999;box-shadow:0 0 3px #0003}.custom-popup-owners .arrow{bottom:-20%;transform:rotate(180deg)}.custom-popup-owners .tooltip{transform:translateY(-61px)!important}.custom-popup-owners-year{z-index:999}.custom-popup-owners-year .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(132%);z-index:999;box-shadow:0 0 3px #0003}.custom-popup-owners-year .arrow{bottom:-20%;transform:rotate(180deg)}.custom-popup-owners-year .tooltip{transform:translate(70px,-61px)!important}.custom-popup-owners-info .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(-100%) translate(-10%);width:200px;height:36px;display:flex;justify-content:center;align-items:center;border-radius:3px;margin-top:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-info .tooltip{opacity:.93;width:0}.custom-popup-owners-info .arrow{display:none}.custom-popup-owners-info #phone-inside{position:relative;right:26px;bottom:0}.custom-popup-owners-info-at .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(-108%) translate(-7%);width:270px;height:36px;display:flex;justify-content:center;align-items:center;border-radius:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-info-at .tooltip{opacity:1;width:0}.custom-popup-owners-info-at .arrow{display:none}.custom-popup-owners-for-tag .tooltip-inner{color:#3b3b3b;background-color:#fff;width:100px;border-radius:3px;box-shadow:0 0 3px #0003!important}.custom-popup-owners-for-tag .tooltip{top:5px!important}.custom-popup-owners-for-tag .arrow{bottom:-24%}.align-items-flex-start{justify-content:center;align-items:center}.align-items-flex-end{display:flex;justify-content:center;flex-direction:column;align-self:flex-end;align-items:flex-start}.label-add{align-self:flex-start}.fadeInLoad{animation:fadeInLoad .25s}@keyframes fadeInLoad{0%{opacity:0}to{opacity:1}}.fadeIn{opacity:1;-webkit-transition:.25s;-moz-transition:.25s;-o-transition:.25s;transition:.25s}.thisText:hover .fadeIn{opacity:0}.fadeInLoad{animation-name:example;animation-duration:.25s}@keyframes example{0%{transform:scale(.5)}to{transform:scale(1)}}.tooltip.tooltip-table-icons{left:12px!important;opacity:1}.tooltip.tooltip-table-icons .arrow{display:none!important}.tooltip.tooltip-table-icons .tooltip-inner{border-radius:0 50px 50px;background:#28529f}.tooltip.show{opacity:1;animation:fadeIn ease .5s!important;-webkit-animation:fadeIn ease .5s!important;-moz-animation:fadeIn ease .5s!important;-o-animation:fadeIn ease .5s!important;-ms-animation:fadeIn ease .5s!important}.ta-tooltip{position:absolute;font-size:12px;text-align:center;color:#fff;line-height:22px;z-index:999999!important;opacity:0;white-space:nowrap;transform:scale(.7)}.ta-tooltip.ta-tooltip-show{opacity:.85;transform:scale(1);padding:0 12px}.ta-tooltip.ta-tooltip-bottom-right,.ta-tooltip.ta-tooltip-bottom-right-corner{transform-origin:top left;border-radius:0 15px 15px}.ta-tooltip.ta-tooltip-bottom-left{transform-origin:top right;border-radius:15px 0 15px 15px}@keyframes scaleItem{0%{transform:scale(.4)}to{transform:scale(1)}}.app-ca-main-tooltip{pointer-events:none}.app-ca-main-tooltip .tooltip-inner{padding:0;background-color:transparent;pointer-events:none}.app-ca-main-tooltip .tooltip-inner .tooltip-holder{display:flex;font-size:11px;font-weight:700;border-radius:2px;padding:2px 8px;animation:scaleItem .3s;white-space:normal}.app-ca-main-tooltip .tooltip-inner .tooltip-holder:empty{padding:0}.tooltip-arrow{display:none!important}.trucks.semitruck svg path,.trucks.semisleeper svg path,.trucks.flatbed svg path,.trucks.stepdeck svg path,.trucks.lowboyrgn svg path,.trucks.chassis svg path,.trucks.conestoga svg path,.trucks.sidekit svg path,.trucks.container svg path,.trailers.semitruck svg path,.trailers.semisleeper svg path,.trailers.flatbed svg path,.trailers.stepdeck svg path,.trailers.lowboyrgn svg path,.trailers.chassis svg path,.trailers.conestoga svg path,.trailers.sidekit svg path,.trailers.container svg path{fill:#92b1f5}.trucks.boxtruck svg path,.trucks.reefertruck svg path,.trucks.cargovan svg path,.trucks.dryvan svg path,.trucks.reefer svg path,.trailers.boxtruck svg path,.trailers.reefertruck svg path,.trailers.cargovan svg path,.trailers.dryvan svg path,.trailers.reefer svg path{fill:#fbc88b}.trucks.dumptruck svg path,.trucks.cementtruck svg path,.trucks.garbagetruck svg path,.trucks.enddump svg path,.trucks.bottomdump svg path,.trucks.hopper svg path,.trucks.tanker svg path,.trucks.pneumatictanker svg path,.trailers.dumptruck svg path,.trailers.cementtruck svg path,.trailers.garbagetruck svg path,.trailers.enddump svg path,.trailers.bottomdump svg path,.trailers.hopper svg path,.trailers.tanker svg path,.trailers.pneumatictanker svg path{fill:#ed9292}.trucks.towtruck svg path,.trucks.carhauler svg path,.trucks.spotter svg path,.trucks.carhaulerstigner svg path,.trailers.towtruck svg path,.trailers.carhauler svg path,.trailers.spotter svg path,.trailers.carhaulerstigner svg path{fill:#86c9c3}.trucks .svgtext-template-text,.trailers .svgtext-template-text{color:#fff;transition:color .3s ease-in-out}.colors .black svg #droplet{fill:#6c6c6c}.colors .brown svg #droplet{fill:#a1887f}.colors .darkgreen svg #droplet{fill:#4db6a2}.colors .lightgreen svg #droplet{fill:#81c784}.colors .darkblue svg #droplet{fill:#546fd2}.colors .lightblue svg #droplet{fill:#64b5f6}.colors .gray svg #droplet{fill:#aaa}.colors .purple svg #droplet{fill:#ba68c8}.colors .gold svg #droplet{fill:#bcad79}.colors .silver svg #droplet{fill:#dadada}.colors .red svg #droplet{fill:#f96b69}.colors .pink svg #droplet{fill:#f26ec2}.colors .white svg #droplet{fill:#f1f1f1}.colors .orange svg #droplet{fill:#ff8a65}.colors .yellow svg #droplet{fill:#ffd54f}.colors:hover{transition:all .3s ease-in-out}.colors:hover .black svg #droplet{fill:#3c3c3c}.colors:hover .brown svg #droplet{fill:#8d6e63}.colors:hover .darkgreen svg #droplet{fill:#26a690}.colors:hover .lightgreen svg #droplet{fill:#66bb6a}.colors:hover .darkblue svg #droplet{fill:#304fc1}.colors:hover .lightblue svg #droplet{fill:#42a5f5}.colors:hover .gray svg #droplet{fill:#919191}.colors:hover .purple svg #droplet{fill:#ab47bc}.colors:hover .gold svg #droplet{fill:#aa9c6e}.colors:hover .silver svg #droplet{fill:#b7b7b7}.colors:hover .red svg #droplet{fill:#ef5350}.colors:hover .pink svg #droplet{fill:#fa4daa}.colors:hover .white svg #droplet{fill:#fff}.colors:hover .orange svg #droplet{fill:#ff7043}.colors:hover .yellow svg #droplet{fill:#ffca28}.text-color-black{color:#424242!important}.text-color-black::-moz-selection{background:#42424233!important;color:#424242!important}.text-color-black::selection{background:#42424233!important;color:#424242!important}.text-color-black-2{color:#2f2f2f!important}.text-color-black-2::-moz-selection{background:#2f2f2f33!important;color:#2f2f2f!important}.text-color-black-2::selection{background:#2f2f2f33!important;color:#2f2f2f!important}.text-color-muted{color:#919191!important}.text-color-muted::-moz-selection{background:#91919133!important;color:#919191!important}.text-color-muted::selection{background:#91919133!important;color:#919191!important}.text-color-green{color:#56b4ac!important}.text-color-green::-moz-selection{background:#56b4ac33!important;color:#56b4ac!important}.text-color-green::selection{background:#56b4ac33!important;color:#56b4ac!important}.text-color-blue-13{color:#6692f1!important}.text-color-blue-13::-moz-selection{background:#66921833!important;color:#6692f1!important}.text-color-blue-13::selection{background:#66921833!important;color:#6692f1!important}.text-color-blue-18{color:#3b73ed!important}.text-color-blue-18::-moz-selection{background:#3b73ed33!important;color:#3b73ed!important}.text-color-blue-18::selection{background:#3b73ed33!important;color:#3b73ed!important}.text-color-red-10{color:#e66767!important}.text-color-red-10::-moz-selection{background:#e6676733!important;color:#e66767!important}.text-color-red-10::selection{background:#e6676733!important;color:#e66767!important}.text-color-light-grey{color:#e5e5e5!important}.text-color-light-grey::-moz-selection{background:#e5e5e533!important;color:#e5e5e5!important}.text-color-light-grey::selection{background:#e5e5e533!important;color:#e5e5e5!important}.text-color-light-grey-2{color:#aaa!important}.text-color-light-grey-2::-moz-selection{background:#aaa3!important;color:#aaa!important}.text-color-light-grey-2::selection{background:#aaa3!important;color:#aaa!important}.text-color-light-grey-6{color:#ccc!important}.text-color-light-grey-6::-moz-selection{color:#ccc!important;background:#aaa3!important}.text-color-light-grey-6::selection{color:#ccc!important;background:#aaa3!important}.text-color-white{color:#dadada!important}.text-color-white::-moz-selection{color:#dadada!important;background:#fff3!important}.text-color-white::selection{color:#dadada!important;background:#fff3!important}.text-color-white-4{color:#ffffffb2!important}.text-color-white-4::-moz-selection{color:#ffffffb2!important;background:#fff3!important}.text-color-white-4::selection{color:#ffffffb2!important;background:#fff3!important}.text-color-dark-grey{color:#6c6c6c!important}.text-color-dark-grey::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-dark-grey::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw6-2{color:#6c6c6c!important}.text-color-bw6-2::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw6-2::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw-9{color:#dadada!important}.text-color-bw-9::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw-9::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-grey{color:#919191!important}.text-color-grey::-moz-selection{color:#919191!important;background:#91919133!important}.text-color-grey::selection{color:#919191!important;background:#91919133!important}.text-color-grey .address-text::-moz-selection,.text-color-grey .marker-bold-text::-moz-selection{color:#919191!important;background:#91919133!important}.text-color-grey .address-text::selection,.text-color-grey .marker-bold-text::selection{color:#919191!important;background:#91919133!important}.text-size-11{font-size:11px!important;line-height:14px!important}.text-size-14{font-size:14px!important;line-height:18px!important}.text-size-16{font-size:16px!important;line-height:19px!important}.text-size-18{font-size:18px!important;line-height:22px!important}.text-size-26{font-size:26px!important;line-height:32px!important}.text-size-28{font-size:28px!important;line-height:34px!important}@keyframes dropdown{0%{margin-top:20px;visibility:hidden;opacity:0}to{opacity:1;margin-top:10px;visibility:visible!important}}@keyframes dropup{0%{margin-top:-19px;visibility:hidden;opacity:0}to{margin-top:inherit;visibility:visible!important}}.svg-fill-black svg path{fill:#424242!important}.svg-fill-muted svg path{fill:#919191!important}.svg-fill-bw-9 svg path{fill:#dadada!important}.svg-fill-light-grey-2 svg path{fill:#aaa!important}.svg-fill-light-grey-6 svg path{fill:#ccc!important}.svg-fill-blue-13 svg path{fill:#6692f1!important}.svg-fill-blue-19 svg path{fill:#92b1f5!important}.svg-fill-blue-26 svg path{fill:#4dc5eb!important}.svg-hover-muted svg path{transition:all .3s ease-in-out}.svg-hover-muted:hover svg path{fill:#919191!important}.svg-hover-black svg path{transition:all .3s ease-in-out}.svg-hover-black:hover svg path{fill:#424242!important}.svg-hover-blue-15 svg path{transition:all .3s ease-in-out}.svg-hover-blue-15:hover svg path{fill:#0b49d1!important}.svg-hover-bw6-2 svg path{transition:all .3s ease-in-out}.svg-hover-bw6-2:hover svg path{fill:#6c6c6c!important}.svg-hover-trash-red svg path{transition:all .3s ease-in-out}.svg-hover-trash-red:hover svg path{fill:#ff5050!important}.svg-hover-red-14 svg path{transition:all .3s ease-in-out}.svg-hover-red-14:hover svg path{fill:#c20c0c!important}.svg-size-12 svg{width:12px;height:12px}.svg-size-14 svg{width:14px;height:14px}.svg-size-16 svg{width:16px;height:16px}.svg-size-18 svg{width:18px;height:18px}.svg-size-44-16 svg{width:44px;height:16px}*{margin:0;font-family:Montserrat,sans-serif}html{scroll-behavior:auto!important}.gm-style-iw-chr,.gm-style-iw-tc{display:none}.gm-style .gm-style-iw-c{border-radius:0}.gm-style-iw{overflow-y:auto!important;overflow-x:hidden!important}.gm-style-iw>div{overflow:visible!important}.infoWindow{overflow:hidden!important}.gm-style-iw-d,.gm-style-iw.gm-style-iw-c{max-height:350px!important}::ng-deep .popover{--bs-popover-border-width: 0;--bs-popover-body-padding-y: 0;--bs-popover-body-padding-x: 0}::ng-deep .popover .popover-arrow{display:none}:host{display:block;height:100%;width:100%}.cluster-marker-container{width:354px;max-height:244px;margin:4px 2px 4px 4px;overflow-y:scroll;cursor:default}.cluster-marker-container::-webkit-scrollbar{width:2px}.cluster-marker-container::-webkit-scrollbar-thumb{background-color:#ccc;border:2px solid #cccccc;border-radius:1px}.cluster-marker-container::-webkit-scrollbar-track{width:2px;background-color:#fff}.cluster-marker-container .cluster-marker-item{max-width:100%;padding:4px;cursor:pointer;border-radius:2px}.cluster-marker-container .cluster-marker-item:hover{background:#eee}.marker-container{width:360px;max-height:214px;padding:8px;transition:max-height .2s ease-in-out;cursor:default}.marker-container.expanded{max-height:396px}.marker-container .heading{max-width:100%;margin-bottom:3px}.marker-container .heading .header-text-container{max-width:calc(100% - 26px)}.marker-container .heading .header-text-container .header-back-button{min-width:18px;min-height:18px;background:#eee;border-radius:1px;cursor:pointer}.marker-container .heading .header-text-container .header-back-button svg-icon svg path{fill:#919191}.marker-container .heading .header-text-container .header{font-family:Montserrat,sans-serif;font-size:16px;line-height:20px;color:#424242}.marker-container .heading .dropdown-icon{min-width:26px;min-height:26px}.marker-container .action .side-space{padding-right:4px}.marker-container .action .side-space .count{font-family:Montserrat,sans-serif;font-size:11px;color:#424242;padding:0 7px;position:relative;left:-1px}.marker-container .action .side-space .grey-color{color:#919191}.marker-container .repair-service-icon svg path{fill:#ccc;fill-opacity:1}.marker-container .repair-service-icon.active svg path{fill:#919191;fill-opacity:1}.marker-container .personal-info-items{font-family:Montserrat,sans-serif}.marker-container .personal-info-items .info{max-width:100%;font-size:14px;line-height:18px;padding:0 5px;color:#2f2f2f;font-family:Montserrat,sans-serif;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.marker-container .working-info-detail{font-family:Montserrat,sans-serif}.marker-container .working-info-detail .working-info-item{font-size:11px;line-height:14px;color:#424242}.marker-container .working-info-detail .working-info-item .working-time{font-size:14px;line-height:18px}.marker-container .load-info .load-heading{font-family:Montserrat,sans-serif;font-size:13px;margin-bottom:5px}.marker-container .load-info .load-heading .load-head-count{background-color:#6c6c6c;border-radius:50%;padding:3px 4px;color:#fff;font-size:7px;margin:1px 4px 0;font-family:Montserrat,sans-serif}.marker-container .load-info .load-info-detail{font-family:Montserrat,sans-serif}.marker-container .load-info .load-info-detail .load-info-item{font-size:12px;line-height:18px;color:#2f2f2f}.marker-container .load-info .load-info-detail .loading-hours{font-size:10px;color:#919191}.marker-container .load-info .load-info-detail .loading-hours .load-time{color:#919191}.marker-container .avg-info .avg-info-detail{font-family:Montserrat,sans-serif}.marker-container .avg-info .avg-info-detail .avg-item .item-date{padding:0 7px;color:#2f2f2f}.infowindow-container{width:300px;padding:2px 9px 9px 0}.infowindow-container .heading-container .heading{margin-top:15px;margin-bottom:3px}.infowindow-container .heading-container .heading .header{font-family:Montserrat,sans-serif;font-size:15px;line-height:19.5px}.infowindow-container .personal-info .personal-info-items{padding:1px 0;margin-bottom:3px;font-family:Montserrat,sans-serif}.infowindow-container .personal-info .personal-info-items .info{font-size:14px;line-height:18px;padding:0 5px;color:#2f2f2f;font-family:Montserrat,sans-serif}.infowindow-container .weight-info .weight-heading{font-family:Montserrat,sans-serif;font-size:13px;margin-bottom:5px}.infowindow-container .weight-info .weight-heading .weight-head-count{background-color:#6c6c6c;border-radius:50%;padding:3px 4px;color:#fff;font-size:7px;margin:1px 4px 0;font-family:Montserrat,sans-serif}.infowindow-container .weight-info .weight-info-detail{font-family:Montserrat,sans-serif}.infowindow-container .weight-info .weight-info-detail .weight-info-item{font-size:12px;line-height:18px;color:#424242}.infowindow-container .weight-info .weight-info-detail .weight-info-item .weight-time{color:#424242;padding:0 5px}.infowindow-container .transport-info .transport-container{margin-top:15px;font-family:Montserrat,sans-serif;margin-bottom:10px}.infowindow-container .transport-info .transport-container .driver-info .side-space{margin-left:20px}.infowindow-container .transport-info .transport-container .driver-info .title{font-size:11px;line-height:14px}.infowindow-container .transport-info .transport-container .driver-info .detail{font-size:13px;line-height:18px;color:#2f2f2f}.infowindow-container .transport-info .transport-container .truck-info .side-space{margin-left:50px}.infowindow-container .transport-info .transport-container .truck-info .title{font-size:11px;line-height:14px}.infowindow-container .transport-info .transport-container .truck-info .detail{font-size:13px;line-height:18px;color:#2f2f2f}.info-divider{margin:8px 0;width:100%;height:1px;background:#dadada;border-radius:2px}.dropdown-arrow{position:absolute;right:6px;bottom:6px}.dropdown-arrow svg{transition:transform .2s ease-in-out;transform:rotate(0)}.dropdown-arrow svg path{transition:fill .2s ease-in-out;fill:#919191}.dropdown-arrow.rotate-arrow svg{transform:rotate(180deg)}.dropdown-arrow.rotate-arrow svg path{fill:#6692f1}.dropdown-arrow:hover{cursor:pointer}.dropdown-arrow:hover svg path{fill:#6692f1}.expanded-info{max-height:0px;overflow:hidden;transition:max-height .2s ease-in-out}.expanded-info.active{max-height:300px}.gap-8{gap:8px}.count-number{padding:0 5px;background:#6c6c6c;border-radius:60px;font-size:11px;line-height:14px;-webkit-user-select:none;user-select:none}.rating-icon svg path{fill:#919191;fill-opacity:1}.rating-icon.active.like-icon svg path{fill:#56b4ac}.rating-icon.active.dislike-icon svg path{fill:#e66767}.text-ellipsis{max-width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.text-ellipsis.two-rows-ellipsis{max-width:90%;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;white-space:initial}.blue-text{color:#6692f1!important}.blue-text::-moz-selection{color:#6692f1;background:#3b73ed33}.blue-text::selection{color:#6692f1;background:#3b73ed33}.red-text{color:#df3c3c!important}.red-text::-moz-selection{color:#df3c3c;background:#df3c3c33}.red-text::selection{color:#df3c3c;background:#df3c3c33}.gray-text{color:#919191!important}.gray-text::-moz-selection{color:#919191;background:#91919133}.gray-text::selection{color:#919191;background:#91919133}.light-gray-text{color:#6c6c6c}.light-gray-text::-moz-selection{color:#6c6c6c;background:#6c6c6c33}.light-gray-text::selection{color:#6c6c6c;background:#6c6c6c33}.dark-gray-text{color:#424242}.dark-gray-text::-moz-selection{color:#424242;background:#42424233}.dark-gray-text::selection{color:#424242;background:#42424233}.black-text{color:#2f2f2f}.black-text::-moz-selection{color:#2f2f2f;background:#2f2f2f33}.black-text::selection{color:#2f2f2f;background:#2f2f2f33}.white-text{color:#dadada}.white-text::-moz-selection{color:#dadada;background:#fff3}.white-text::selection{color:#dadada;background:#fff3}.opacity-40{opacity:.4}.regular-text{font-size:14px;line-height:18px;font-family:Montserrat,sans-serif}.small-text{font-size:11px;line-height:14px;font-family:Montserrat,sans-serif}.open-hours-grid{display:grid;grid-template-columns:50% 50%;grid-row-gap:8px}.cursor-pointer{cursor:pointer}.show-all-days-container{grid-column:2/span 1}\n"] }]
|
|
93
|
+
], providers: [SvgIconRegistryService], template: "@if (infoWindowContent?.clusterData) {\n @if (infoWindowContent?.selectedClusterItemData) {\n <div\n class=\"marker-container relative\"\n [class.expanded]=\"!isHidden\"\n (click)=\"preventEventPropagation($event, true)\"\n (mousewheel)=\"preventEventPropagation($event)\"\n >\n @for (\n item of infoWindowContent?.selectedClusterItemData.mainContent;\n let i = $index;\n track i\n ) {\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentTemplate;\n context: {\n content: item,\n data: infoWindowContent?.selectedClusterItemData\n .data,\n }\n \"\n ></ng-container>\n }\n\n <div class=\"expanded-info\" [class.active]=\"!isHidden\">\n @for (\n item of infoWindowContent?.selectedClusterItemData\n .expandedContent;\n let i = $index;\n track i\n ) {\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentTemplate;\n context: {\n content: item,\n data: infoWindowContent?.selectedClusterItemData\n .data,\n }\n \"\n ></ng-container>\n }\n </div>\n\n <div\n class=\"dropdown-arrow align-self-end\"\n [class.rotate-arrow]=\"!isHidden\"\n >\n <svg-icon\n [src]=\"mapDropdownSvgRoutes.cornerDownArrowRoute\"\n (click)=\"showHiddenData($event)\"\n ></svg-icon>\n </div>\n </div>\n } @else {\n <div\n class=\"cluster-marker-container d-flex flex-column gap-1\"\n (click)=\"preventEventPropagation($event, true)\"\n (mousewheel)=\"onClusterListScroll($event)\"\n >\n @for (\n item of infoWindowContent?.clusterData;\n let i = $index;\n track i\n ) {\n <ng-container\n *ngTemplateOutlet=\"\n clusterContentTemplate;\n context: {\n content: item,\n }\n \"\n ></ng-container>\n }\n </div>\n }\n} @else {\n <div\n class=\"marker-container relative\"\n [class.expanded]=\"!isHidden\"\n (click)=\"preventEventPropagation($event, true)\"\n (mousewheel)=\"preventEventPropagation($event)\"\n >\n @for (item of infoWindowContent?.mainContent; let i = $index; track i) {\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentTemplate;\n context: {\n content: item,\n data: _markerData,\n }\n \"\n ></ng-container>\n }\n\n <div class=\"expanded-info\" [class.active]=\"!isHidden\">\n @for (\n item of infoWindowContent?.expandedContent;\n let i = $index;\n track i\n ) {\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentTemplate;\n context: {\n content: item,\n data: _markerData,\n }\n \"\n ></ng-container>\n }\n </div>\n\n <div\n class=\"dropdown-arrow align-self-end\"\n [class.rotate-arrow]=\"!isHidden\"\n >\n <svg-icon\n [src]=\"mapDropdownSvgRoutes.cornerDownArrowRoute\"\n (click)=\"showHiddenData($event)\"\n ></svg-icon>\n </div>\n </div>\n}\n\n<ng-template #clusterContentTemplate let-content=\"content\">\n @let item = content | mapDropdownClusterContentType;\n @if (item) {\n <div\n class=\"d-flex align-items-center justify-content-between cluster-marker-item\"\n (click)=\"clusterItemClick(item)\"\n >\n <div\n class=\"d-flex align-items-center gap-1\"\n [ngStyle]=\"{\n 'max-width': item.favourite ? 'calc(100% - 18px)' : '100%',\n }\"\n >\n @if (item.isClosed) {\n <svg-icon\n class=\"d-flex\"\n [src]=\"mapDropdownSvgRoutes.permanentlyClosedRoute\"\n [svgStyle]=\"{ 'width.px': 18, 'height.px': 18 }\"\n ></svg-icon>\n }\n <div\n class=\"regular-text dark-gray-text uppercase text-ellipsis\"\n >\n {{ item.name }}\n </div>\n </div>\n @if (item.favourite) {\n <svg-icon\n class=\"d-flex\"\n [src]=\"mapDropdownSvgRoutes.favoriteRoute\"\n [svgStyle]=\"{ 'width.px': 18, 'height.px': 18 }\"\n ></svg-icon>\n }\n </div>\n }\n</ng-template>\n\n<ng-template #dropdownContentTemplate let-content=\"content\" let-data=\"data\">\n @let item = content | mapDropdownContentType;\n @if (item) {\n @if (!item.sideBySideInfo) {\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentItemTemplates;\n context: {\n content: item,\n data: data,\n }\n \"\n ></ng-container>\n } @else {\n <!-- Side by Side Data -->\n <div class=\"d-flex align-items-center\">\n <!-- Left Side -->\n @if (item.sideBySideInfo.leftSide) {\n <div class=\"flex-1\">\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentItemTemplates;\n context: {\n content: item.sideBySideInfo?.leftSide,\n data: data,\n }\n \"\n >\n </ng-container>\n </div>\n }\n\n <!-- Right Side -->\n @if (item.sideBySideInfo.rightSide) {\n <div class=\"flex-1\">\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentItemTemplates;\n context: {\n content: item.sideBySideInfo?.rightSide,\n data: data,\n }\n \"\n >\n </ng-container>\n </div>\n }\n </div>\n }\n }\n</ng-template>\n\n<ng-template\n #dropdownContentItemTemplates\n let-content=\"content\"\n let-data=\"data\"\n>\n @let item = content | mapDropdownContentType;\n @if (item) {\n @switch (item?.template) {\n @case (eMapDropdownStringEnum.HEADER_TITLE) {\n <div\n class=\"heading d-flex justify-content-between align-items-center {{\n item.customClassContainer\n }}\"\n >\n <div\n class=\"header-text-container d-flex align-items-center gap-1 w-100\"\n >\n @if (item.hasBackButton) {\n <div\n class=\"header-back-button d-flex align-items-center justify-content-center\"\n (click)=\"backButtonClick($event)\"\n >\n <svg-icon\n class=\"d-flex\"\n [src]=\"mapDropdownSvgRoutes.backButtonRoute\"\n [svgStyle]=\"{\n 'width.px': 14,\n 'height.px': 14,\n }\"\n >\n </svg-icon>\n </div>\n }\n <span\n class=\"header ca-font-extra-bold dark-gray-text {{\n item.customClassText\n }}\"\n >\n {{ data[item.field] }}\n </span>\n </div>\n\n <!-- <div class=\"dropdown-icon\"></div> -->\n <!-- <app-ca-details-dropdown\n #detailsDropdown\n [options]=\"data\"\n [placement]=\"'right-top'\"\n [id]=\"item?.id\"\n [data]=\"item\"\n [customClassDropDown]=\"\n 'map-list-card-dropdown marker-dropdown-popover'\n \"\n (dropDownActions)=\"callBodyAction($event)\"\n ></app-ca-details-dropdown> -->\n </div>\n }\n\n <!-- Rating Review -->\n @case (eMapDropdownStringEnum.RATING_REVIEW) {\n <div\n class=\"d-flex justify-content-start align-items-center align-content-center gap-3 {{\n item.customClassContainer\n }}\"\n >\n <div\n class=\"d-flex justify-content-start align-items-center gap-2\"\n [class.opacity-40]=\"!data[item.field].likeCount\"\n >\n <svg-icon\n class=\"rating-icon like-icon d-flex\"\n [class.active]=\"data[item.field].hasLiked\"\n [src]=\"mapDropdownSvgRoutes.likeRoute\"\n [svgStyle]=\"{ 'width.px': 14, 'height.px': 14 }\"\n ></svg-icon>\n <span\n class=\"small-text dark-gray-text ca-font-semi-bold user-select-none\"\n >{{ data[item.field].likeCount }}\n </span>\n </div>\n <div\n class=\"d-flex justify-content-start align-items-center gap-2\"\n [class.opacity-40]=\"!data[item.field].dislikeCount\"\n >\n <svg-icon\n class=\"rating-icon dislike-icon d-flex\"\n [class.active]=\"data[item.field].hasDislike\"\n [src]=\"mapDropdownSvgRoutes.dislikeRoute\"\n [svgStyle]=\"{ 'width.px': 14, 'height.px': 14 }\"\n ></svg-icon>\n <span\n class=\"small-text dark-gray-text ca-font-semi-bold user-select-none\"\n >{{ data[item.field].dislikeCount }}\n </span>\n </div>\n <div\n class=\"d-flex justify-content-start align-items-center gap-2\"\n [class.opacity-40]=\"!data[item.field].reviewCount\"\n >\n <svg-icon\n class=\"rating-icon review-icon d-flex\"\n [src]=\"mapDropdownSvgRoutes.reviewRoute\"\n [svgStyle]=\"{ 'width.px': 14, 'height.px': 14 }\"\n ></svg-icon>\n <span\n class=\"small-text dark-gray-text ca-font-semi-bold user-select-none\"\n >{{ data[item.field].reviewCount ?? 0 }}\n </span>\n </div>\n </div>\n }\n\n <!-- Border Divider -->\n @case (eMapDropdownStringEnum.DIVIDER) {\n <div class=\"info-divider\"></div>\n }\n\n <!-- Repair Shop Services -->\n @case (eMapDropdownStringEnum.REPAIR_SHOP_SERVICES) {\n <div\n class=\"d-flex align-items-center justify-content-between {{\n item.customClassContainer\n }}\"\n >\n @for (\n service of data[item.field];\n let i = $index;\n track i\n ) {\n <div\n class=\"d-flex align-items-center justify-content-center\"\n ngbTooltip\n [tooltipBackground]=\"'#424242'\"\n [mainCaTooltip]=\"service.serviceType.name\"\n position=\"bottom\"\n >\n <svg-icon\n class=\"repair-service-icon\"\n [class.active]=\"service.active\"\n [src]=\"\n service.logoName\n | caSvg: 'common' : 'repair-services'\n \"\n [svgStyle]=\"{\n 'width.px': 18,\n 'height.px': 18,\n }\"\n ></svg-icon>\n </div>\n }\n </div>\n }\n\n <!-- Icon and Text -->\n @case (eMapDropdownStringEnum.ICON_TEXT) {\n <div\n class=\"d-flex align-items-start gap-1 {{\n item.customClassContainer\n }}\"\n >\n @if (item.url) {\n <div\n ngbTooltip\n [tooltipBackground]=\"'#424242'\"\n [mainCaTooltip]=\"item.iconTooltipText\"\n position=\"bottom\"\n [disableTooltip]=\"!item.iconTooltipText\"\n >\n <svg-icon\n class=\"d-flex align-items-center justify-content-center\"\n [src]=\"item.url\"\n [svgStyle]=\"{ 'width.px': 18, 'height.px': 18 }\"\n ></svg-icon>\n </div>\n }\n <span\n class=\"regular-text dark-gray-text {{\n item.customClassText\n }}\"\n >\n {{ data[item.field] }}\n </span>\n </div>\n }\n\n <!-- Title -->\n @case (eMapDropdownStringEnum.TITLE) {\n <div\n class=\"regular-text dark-gray-text ca-font-extra-bold {{\n item.customClassText\n }}\"\n >\n {{ data[item.field] }}\n </div>\n }\n\n <!-- Title and Count -->\n @case (eMapDropdownStringEnum.TITLE_COUNT) {\n <div\n class=\"d-flex align-items-center gap-1 {{\n item.customClassContainer\n }}\"\n >\n <div class=\"regular-text dark-gray-text ca-font-extra-bold\">\n {{ item.title }}\n </div>\n <div\n class=\"count-number white-text d-flex align-items-center justify-content-center ca-font-bold\"\n >\n {{ data[item.field] }}\n </div>\n </div>\n }\n\n <!-- Money Text -->\n @case (eMapDropdownStringEnum.MONEY_TEXT) {\n <div\n class=\"d-flex align-items-center gap-1 {{\n item.customClassContainer\n }}\"\n >\n <div class=\"regular-text ca-font-bold blue-text\">\n {{\n data?.[item.field] !== '' ? data[item.field] : '$0'\n }}\n </div>\n <div class=\"regular-text light-gray-text ca-font-bold\">\n {{ item.title }}\n </div>\n </div>\n }\n\n <!-- Open Hours -->\n @case (eMapDropdownStringEnum.OPEN_HOURS) {\n <div class=\"d-flex flex-column gap-2\">\n <div\n class=\"regular-text dark-gray-text ca-font-extra-bold {{\n item.customClassText\n }}\"\n >\n {{ item.title }}\n </div>\n <div class=\"open-hours-grid\">\n @if (\n data[item.field]?.openHoursToday &&\n !isShowAllDaysActive\n ) {\n <div class=\"d-flex flex-column flex-1\">\n <div\n class=\"small-text dark-gray-text ca-font-bold\"\n >\n {{ data[item.field].openHoursToday.status }}\n </div>\n <div\n class=\"regular-text dark-gray-text text-ellipsis\"\n >\n {{ data[item.field].openHoursToday.info }}\n </div>\n </div>\n }\n\n @if (data[item.field]?.openHours?.length) {\n @if (isShowAllDaysActive) {\n @for (\n day of data[item.field].openHours;\n let i = $index;\n track i\n ) {\n <div class=\"d-flex flex-column flex-1\">\n <div\n class=\"small-text dark-gray-text ca-font-bold\"\n >\n {{ day.dayOfWeek }}\n </div>\n <div\n class=\"regular-text dark-gray-text text-ellipsis\"\n >\n {{\n day.startTime +\n ' - ' +\n day.endTime\n }}\n </div>\n </div>\n }\n }\n <div\n class=\"d-flex flex-column flex-1 justify-content-end show-all-days-container\"\n >\n <div\n class=\"d-flex align-items-center gap-1\"\n (click)=\"showAllDaysClick()\"\n >\n <svg-icon\n class=\"d-flex\"\n [src]=\"\n mapDropdownSvgRoutes.accidentCalenderRoute\n \"\n [svgStyle]=\"{\n 'width.px': 18,\n 'height.px': 18,\n }\"\n ></svg-icon>\n <div\n class=\"regular-text gray-text cursor-pointer\"\n >\n {{\n isShowAllDaysActive\n ? 'Show today'\n : 'Show all days'\n }}\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n }\n\n <!-- Text and Count -->\n @case (eMapDropdownStringEnum.TEXT_COUNT) {\n <div\n class=\"d-flex align-items-center gap-1 {{\n item.customClassContainer\n }}\"\n >\n <div class=\"regular-text {{ item.customClassText }}\">\n {{ item.title }}\n </div>\n <div\n class=\"regular-text ca-font-semi-bold {{\n item.customClassText\n }}\"\n >\n {{ data | mapDropdownValue: item }}\n </div>\n </div>\n }\n\n <!-- Subtitle -->\n @case (eMapDropdownStringEnum.SUBTITLE) {\n <div\n class=\"regular-text dark-gray-text ca-font-extra-bold {{\n item.customClassText\n }}\"\n >\n {{ item.title }}\n </div>\n }\n\n <!-- Regular Text -->\n @case (eMapDropdownStringEnum.TEXT) {\n <div class=\"regular-text black-text {{ item.customClassText }}\">\n {{ data | mapDropdownValue: item }}\n </div>\n }\n\n <!-- Small Subtitle -->\n @case (eMapDropdownStringEnum.SMALL_SUBTITLE) {\n <div\n class=\"small-text dark-gray-text {{ item.customClassText }}\"\n >\n {{ item.title }}\n </div>\n }\n }\n }\n</ng-template>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap\";@import\"https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css\";.ca-font-thin{font-weight:100!important}.ca-font-extra-light{font-weight:200!important}.ca-font-light{font-weight:300!important}.ca-font-regular{font-weight:400!important}.ca-font-medium{font-weight:500!important}.ca-font-semi-bold{font-weight:600!important}.ca-font-bold{font-weight:700!important}.ca-font-extra-bold{font-weight:800!important}.ca-font-black{font-weight:900!important}.pickup-delivery-popover{top:-38px!important;max-width:340px!important}.pickup-delivery-popover.bs-popover-top{top:auto!important;bottom:-38px!important}.pickup-delivery-popover.bs-popover-top .load-component .assigned-load-holder{order:3;margin-top:4px;margin-bottom:0!important}.pickup-delivery-popover.bs-popover-top .load-component .statusBar{order:2;margin-top:4px}.pickup-delivery-popover.bs-popover-top .load-component .animation-three-tabs{order:1}.gps_dropdown_popover{top:-38px;max-width:494px}.gps_dropdown_popover .popover-body{padding:0}.table-progress-popover{background-color:unset!important;margin-left:-10px}.table-progress-popover .progress-dropdown{margin-top:-6px;width:260px;height:200px;background:#2f2f2f;border-radius:3px;padding:8px;box-shadow:0 0 4px #00000026;overflow:hidden;-webkit-animation:progressAnimation .25s ease-in-out;animation:progressAnimation .25s ease-in-out}.table-progress-popover .progress-dropdown .progress-header .progress-title{font-size:18px;font-weight:600;color:#dadada}.table-progress-popover .progress-dropdown .progress-header .progress-title span{font-weight:400}.table-progress-popover .progress-dropdown .progress-header .progress-total{font-size:14px;line-height:17px;color:#dadada}.table-progress-popover .progress-dropdown .table-progress-bar-container{width:100%;height:8px;margin-top:6px;border-radius:2px;overflow:hidden}.table-progress-popover .progress-dropdown .table-progress-bar-container .table-progress-bar{height:100%}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-dual-info-container .progress-info-container{width:50%}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container{margin-top:10px}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container .progress-info-title{margin-bottom:2px;font-size:11px;font-weight:700;line-height:14px;color:#ffffffb2}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container .progress-info-text{font-size:14px;line-height:18px;color:#dadada}.table-progress-popover .progress-dropdown.credit-dropdown{height:100px}@-webkit-keyframes progressAnimation{0%{height:0px}to{height:220px}}@keyframes progressAnimation{0%{height:0px}to{height:220px}}ngb-popover-window{padding:unset!important;border:unset!important}ngb-popover-window .popover-arrow{display:none!important}ngb-popover-window .popover-body{padding:unset!important}.dispatch-note .popover-body{position:relative;top:-4px;left:-4px}.tooltip{font-size:12px;position:relative}.tooltip.show{opacity:.83}.tooltip.fade:after,.tooltip.fade:before{transform:translateY(-10px);transition:all .15s ease-in-out}.tooltip.fade:hover:after,.tooltip.fade:hover:before{opacity:1;transform:translate(0)}.tooltip-inner{padding:4px 10px;white-space:nowrap;max-width:none;border-radius:3px}.tooltip-inner:empty{padding:0}.placeholder-delete .tooltip-inner{background-color:#f66}.placeholder-delete .arrow:before{border-top-color:#f66}.custom-popup-owners-for-flag .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(126%) translate(-50%)!important;width:130px;border-radius:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-for-flag .arrow{bottom:-18%;transform:rotate(180deg);left:calc(50% + 2.7rem)}.custom-popup-owners-for-flag .tooltip{opacity:.93!important;width:0}.custom-popup-owners{z-index:999}.custom-popup-owners .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(132%);z-index:999;box-shadow:0 0 3px #0003}.custom-popup-owners .arrow{bottom:-20%;transform:rotate(180deg)}.custom-popup-owners .tooltip{transform:translateY(-61px)!important}.custom-popup-owners-year{z-index:999}.custom-popup-owners-year .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(132%);z-index:999;box-shadow:0 0 3px #0003}.custom-popup-owners-year .arrow{bottom:-20%;transform:rotate(180deg)}.custom-popup-owners-year .tooltip{transform:translate(70px,-61px)!important}.custom-popup-owners-info .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(-100%) translate(-10%);width:200px;height:36px;display:flex;justify-content:center;align-items:center;border-radius:3px;margin-top:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-info .tooltip{opacity:.93;width:0}.custom-popup-owners-info .arrow{display:none}.custom-popup-owners-info #phone-inside{position:relative;right:26px;bottom:0}.custom-popup-owners-info-at .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(-108%) translate(-7%);width:270px;height:36px;display:flex;justify-content:center;align-items:center;border-radius:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-info-at .tooltip{opacity:1;width:0}.custom-popup-owners-info-at .arrow{display:none}.custom-popup-owners-for-tag .tooltip-inner{color:#3b3b3b;background-color:#fff;width:100px;border-radius:3px;box-shadow:0 0 3px #0003!important}.custom-popup-owners-for-tag .tooltip{top:5px!important}.custom-popup-owners-for-tag .arrow{bottom:-24%}.align-items-flex-start{justify-content:center;align-items:center}.align-items-flex-end{display:flex;justify-content:center;flex-direction:column;align-self:flex-end;align-items:flex-start}.label-add{align-self:flex-start}.fadeInLoad{animation:fadeInLoad .25s}@keyframes fadeInLoad{0%{opacity:0}to{opacity:1}}.fadeIn{opacity:1;-webkit-transition:.25s;-moz-transition:.25s;-o-transition:.25s;transition:.25s}.thisText:hover .fadeIn{opacity:0}.fadeInLoad{animation-name:example;animation-duration:.25s}@keyframes example{0%{transform:scale(.5)}to{transform:scale(1)}}.tooltip.tooltip-table-icons{left:12px!important;opacity:1}.tooltip.tooltip-table-icons .arrow{display:none!important}.tooltip.tooltip-table-icons .tooltip-inner{border-radius:0 50px 50px;background:#28529f}.tooltip.show{opacity:1;animation:fadeIn ease .5s!important;-webkit-animation:fadeIn ease .5s!important;-moz-animation:fadeIn ease .5s!important;-o-animation:fadeIn ease .5s!important;-ms-animation:fadeIn ease .5s!important}.ta-tooltip{position:absolute;font-size:12px;text-align:center;color:#fff;line-height:22px;z-index:999999!important;opacity:0;white-space:nowrap;transform:scale(.7)}.ta-tooltip.ta-tooltip-show{opacity:.85;transform:scale(1);padding:0 12px}.ta-tooltip.ta-tooltip-bottom-right,.ta-tooltip.ta-tooltip-bottom-right-corner{transform-origin:top left;border-radius:0 15px 15px}.ta-tooltip.ta-tooltip-bottom-left{transform-origin:top right;border-radius:15px 0 15px 15px}@keyframes scaleItem{0%{transform:scale(.4)}to{transform:scale(1)}}.app-ca-main-tooltip{pointer-events:none}.app-ca-main-tooltip .tooltip-inner{padding:0;background-color:transparent;pointer-events:none}.app-ca-main-tooltip .tooltip-inner .tooltip-holder{display:flex;font-size:11px;font-weight:700;border-radius:2px;padding:2px 8px;animation:scaleItem .3s;white-space:normal}.app-ca-main-tooltip .tooltip-inner .tooltip-holder:empty{padding:0}.tooltip-arrow{display:none!important}.trucks.semitruck svg path,.trucks.semisleeper svg path,.trucks.flatbed svg path,.trucks.stepdeck svg path,.trucks.lowboyrgn svg path,.trucks.chassis svg path,.trucks.conestoga svg path,.trucks.sidekit svg path,.trucks.container svg path,.trailers.semitruck svg path,.trailers.semisleeper svg path,.trailers.flatbed svg path,.trailers.stepdeck svg path,.trailers.lowboyrgn svg path,.trailers.chassis svg path,.trailers.conestoga svg path,.trailers.sidekit svg path,.trailers.container svg path{fill:#92b1f5}.trucks.boxtruck svg path,.trucks.reefertruck svg path,.trucks.cargovan svg path,.trucks.dryvan svg path,.trucks.reefer svg path,.trailers.boxtruck svg path,.trailers.reefertruck svg path,.trailers.cargovan svg path,.trailers.dryvan svg path,.trailers.reefer svg path{fill:#fbc88b}.trucks.dumptruck svg path,.trucks.cementtruck svg path,.trucks.garbagetruck svg path,.trucks.enddump svg path,.trucks.bottomdump svg path,.trucks.hopper svg path,.trucks.tanker svg path,.trucks.pneumatictanker svg path,.trailers.dumptruck svg path,.trailers.cementtruck svg path,.trailers.garbagetruck svg path,.trailers.enddump svg path,.trailers.bottomdump svg path,.trailers.hopper svg path,.trailers.tanker svg path,.trailers.pneumatictanker svg path{fill:#ed9292}.trucks.towtruck svg path,.trucks.carhauler svg path,.trucks.spotter svg path,.trucks.carhaulerstigner svg path,.trailers.towtruck svg path,.trailers.carhauler svg path,.trailers.spotter svg path,.trailers.carhaulerstigner svg path{fill:#86c9c3}.trucks .svgtext-template-text,.trailers .svgtext-template-text{color:#fff;transition:color .3s ease-in-out}.colors .black svg #droplet{fill:#6c6c6c}.colors .brown svg #droplet{fill:#a1887f}.colors .darkgreen svg #droplet{fill:#4db6a2}.colors .lightgreen svg #droplet{fill:#81c784}.colors .darkblue svg #droplet{fill:#546fd2}.colors .lightblue svg #droplet{fill:#64b5f6}.colors .gray svg #droplet{fill:#aaa}.colors .purple svg #droplet{fill:#ba68c8}.colors .gold svg #droplet{fill:#bcad79}.colors .silver svg #droplet{fill:#dadada}.colors .red svg #droplet{fill:#f96b69}.colors .pink svg #droplet{fill:#f26ec2}.colors .white svg #droplet{fill:#f1f1f1}.colors .orange svg #droplet{fill:#ff8a65}.colors .yellow svg #droplet{fill:#ffd54f}.colors:hover{transition:all .3s ease-in-out}.colors:hover .black svg #droplet{fill:#3c3c3c}.colors:hover .brown svg #droplet{fill:#8d6e63}.colors:hover .darkgreen svg #droplet{fill:#26a690}.colors:hover .lightgreen svg #droplet{fill:#66bb6a}.colors:hover .darkblue svg #droplet{fill:#304fc1}.colors:hover .lightblue svg #droplet{fill:#42a5f5}.colors:hover .gray svg #droplet{fill:#919191}.colors:hover .purple svg #droplet{fill:#ab47bc}.colors:hover .gold svg #droplet{fill:#aa9c6e}.colors:hover .silver svg #droplet{fill:#b7b7b7}.colors:hover .red svg #droplet{fill:#ef5350}.colors:hover .pink svg #droplet{fill:#fa4daa}.colors:hover .white svg #droplet{fill:#fff}.colors:hover .orange svg #droplet{fill:#ff7043}.colors:hover .yellow svg #droplet{fill:#ffca28}.text-color-black{color:#424242!important}.text-color-black::-moz-selection{background:#42424233!important;color:#424242!important}.text-color-black::selection{background:#42424233!important;color:#424242!important}.text-color-black-2{color:#2f2f2f!important}.text-color-black-2::-moz-selection{background:#2f2f2f33!important;color:#2f2f2f!important}.text-color-black-2::selection{background:#2f2f2f33!important;color:#2f2f2f!important}.text-color-muted{color:#919191!important}.text-color-muted::-moz-selection{background:#91919133!important;color:#919191!important}.text-color-muted::selection{background:#91919133!important;color:#919191!important}.text-color-green{color:#56b4ac!important}.text-color-green::-moz-selection{background:#56b4ac33!important;color:#56b4ac!important}.text-color-green::selection{background:#56b4ac33!important;color:#56b4ac!important}.text-color-blue-13{color:#6692f1!important}.text-color-blue-13::-moz-selection{background:#66921833!important;color:#6692f1!important}.text-color-blue-13::selection{background:#66921833!important;color:#6692f1!important}.text-color-blue-18{color:#3b73ed!important}.text-color-blue-18::-moz-selection{background:#3b73ed33!important;color:#3b73ed!important}.text-color-blue-18::selection{background:#3b73ed33!important;color:#3b73ed!important}.text-color-red-10{color:#e66767!important}.text-color-red-10::-moz-selection{background:#e6676733!important;color:#e66767!important}.text-color-red-10::selection{background:#e6676733!important;color:#e66767!important}.text-color-light-grey{color:#e5e5e5!important}.text-color-light-grey::-moz-selection{background:#e5e5e533!important;color:#e5e5e5!important}.text-color-light-grey::selection{background:#e5e5e533!important;color:#e5e5e5!important}.text-color-light-grey-2{color:#aaa!important}.text-color-light-grey-2::-moz-selection{background:#aaa3!important;color:#aaa!important}.text-color-light-grey-2::selection{background:#aaa3!important;color:#aaa!important}.text-color-light-grey-6{color:#ccc!important}.text-color-light-grey-6::-moz-selection{color:#ccc!important;background:#aaa3!important}.text-color-light-grey-6::selection{color:#ccc!important;background:#aaa3!important}.text-color-white{color:#dadada!important}.text-color-white::-moz-selection{color:#dadada!important;background:#fff3!important}.text-color-white::selection{color:#dadada!important;background:#fff3!important}.text-color-white-4{color:#ffffffb2!important}.text-color-white-4::-moz-selection{color:#ffffffb2!important;background:#fff3!important}.text-color-white-4::selection{color:#ffffffb2!important;background:#fff3!important}.text-color-dark-grey{color:#6c6c6c!important}.text-color-dark-grey::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-dark-grey::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw6-2{color:#6c6c6c!important}.text-color-bw6-2::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw6-2::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw-9{color:#dadada!important}.text-color-bw-9::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw-9::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-grey{color:#919191!important}.text-color-grey::-moz-selection{color:#919191!important;background:#91919133!important}.text-color-grey::selection{color:#919191!important;background:#91919133!important}.text-color-grey .address-text::-moz-selection,.text-color-grey .marker-bold-text::-moz-selection{color:#919191!important;background:#91919133!important}.text-color-grey .address-text::selection,.text-color-grey .marker-bold-text::selection{color:#919191!important;background:#91919133!important}.text-size-11{font-size:11px!important;line-height:14px!important}.text-size-14{font-size:14px!important;line-height:18px!important}.text-size-16{font-size:16px!important;line-height:19px!important}.text-size-18{font-size:18px!important;line-height:22px!important}.text-size-26{font-size:26px!important;line-height:32px!important}.text-size-28{font-size:28px!important;line-height:34px!important}@keyframes dropdown{0%{margin-top:20px;visibility:hidden;opacity:0}to{opacity:1;margin-top:10px;visibility:visible!important}}@keyframes dropup{0%{margin-top:-19px;visibility:hidden;opacity:0}to{margin-top:inherit;visibility:visible!important}}.svg-fill-black svg path{fill:#424242!important}.svg-fill-muted svg path{fill:#919191!important}.svg-fill-bw-9 svg path{fill:#dadada!important}.svg-fill-light-grey-2 svg path{fill:#aaa!important}.svg-fill-light-grey-6 svg path{fill:#ccc!important}.svg-fill-blue-13 svg path{fill:#6692f1!important}.svg-fill-blue-19 svg path{fill:#92b1f5!important}.svg-fill-blue-26 svg path{fill:#4dc5eb!important}.svg-hover-muted svg path{transition:all .3s ease-in-out}.svg-hover-muted:hover svg path{fill:#919191!important}.svg-hover-black svg path{transition:all .3s ease-in-out}.svg-hover-black:hover svg path{fill:#424242!important}.svg-hover-blue-15 svg path{transition:all .3s ease-in-out}.svg-hover-blue-15:hover svg path{fill:#0b49d1!important}.svg-hover-bw6-2 svg path{transition:all .3s ease-in-out}.svg-hover-bw6-2:hover svg path{fill:#6c6c6c!important}.svg-hover-trash-red svg path{transition:all .3s ease-in-out}.svg-hover-trash-red:hover svg path{fill:#ff5050!important}.svg-hover-red-14 svg path{transition:all .3s ease-in-out}.svg-hover-red-14:hover svg path{fill:#c20c0c!important}.svg-size-12 svg{width:12px;height:12px}.svg-size-14 svg{width:14px;height:14px}.svg-size-16 svg{width:16px;height:16px}.svg-size-18 svg{width:18px;height:18px}.svg-size-44-16 svg{width:44px;height:16px}*{margin:0;font-family:Montserrat,sans-serif}html{scroll-behavior:auto!important}.gm-style-iw-chr,.gm-style-iw-tc{display:none}.gm-style .gm-style-iw-c{border-radius:0}.gm-style-iw{overflow-y:auto!important;overflow-x:hidden!important}.gm-style-iw>div{overflow:visible!important}.infoWindow{overflow:hidden!important}.gm-style-iw-d,.gm-style-iw.gm-style-iw-c{max-height:350px!important}::ng-deep .popover{--bs-popover-border-width: 0;--bs-popover-body-padding-y: 0;--bs-popover-body-padding-x: 0}::ng-deep .popover .popover-arrow{display:none}:host{display:block;height:100%;width:100%}.cluster-marker-container{width:354px;max-height:244px;margin:4px 2px 4px 4px;overflow-y:scroll;cursor:default}.cluster-marker-container::-webkit-scrollbar{width:2px}.cluster-marker-container::-webkit-scrollbar-thumb{background-color:#ccc;border:2px solid #cccccc;border-radius:1px}.cluster-marker-container::-webkit-scrollbar-track{width:2px;background-color:#fff}.cluster-marker-container .cluster-marker-item{max-width:100%;padding:4px;cursor:pointer;border-radius:2px}.cluster-marker-container .cluster-marker-item:hover{background:#eee}.marker-container{width:360px;max-height:214px;padding:8px;transition:max-height .2s ease-in-out;cursor:default}.marker-container.expanded{max-height:396px}.marker-container .heading{max-width:100%;margin-bottom:3px}.marker-container .heading .header-text-container{max-width:calc(100% - 26px)}.marker-container .heading .header-text-container .header-back-button{min-width:18px;min-height:18px;background:#eee;border-radius:1px;cursor:pointer}.marker-container .heading .header-text-container .header-back-button svg-icon svg path{fill:#919191}.marker-container .heading .header-text-container .header{font-family:Montserrat,sans-serif;font-size:16px;line-height:20px;color:#424242}.marker-container .heading .dropdown-icon{min-width:26px;min-height:26px}.marker-container .action .side-space{padding-right:4px}.marker-container .action .side-space .count{font-family:Montserrat,sans-serif;font-size:11px;color:#424242;padding:0 7px;position:relative;left:-1px}.marker-container .action .side-space .grey-color{color:#919191}.marker-container .repair-service-icon svg path{fill:#ccc;fill-opacity:1}.marker-container .repair-service-icon.active svg path{fill:#919191;fill-opacity:1}.marker-container .personal-info-items{font-family:Montserrat,sans-serif}.marker-container .personal-info-items .info{max-width:100%;font-size:14px;line-height:18px;padding:0 5px;color:#2f2f2f;font-family:Montserrat,sans-serif;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.marker-container .working-info-detail{font-family:Montserrat,sans-serif}.marker-container .working-info-detail .working-info-item{font-size:11px;line-height:14px;color:#424242}.marker-container .working-info-detail .working-info-item .working-time{font-size:14px;line-height:18px}.marker-container .load-info .load-heading{font-family:Montserrat,sans-serif;font-size:13px;margin-bottom:5px}.marker-container .load-info .load-heading .load-head-count{background-color:#6c6c6c;border-radius:50%;padding:3px 4px;color:#fff;font-size:7px;margin:1px 4px 0;font-family:Montserrat,sans-serif}.marker-container .load-info .load-info-detail{font-family:Montserrat,sans-serif}.marker-container .load-info .load-info-detail .load-info-item{font-size:12px;line-height:18px;color:#2f2f2f}.marker-container .load-info .load-info-detail .loading-hours{font-size:10px;color:#919191}.marker-container .load-info .load-info-detail .loading-hours .load-time{color:#919191}.marker-container .avg-info .avg-info-detail{font-family:Montserrat,sans-serif}.marker-container .avg-info .avg-info-detail .avg-item .item-date{padding:0 7px;color:#2f2f2f}.infowindow-container{width:300px;padding:2px 9px 9px 0}.infowindow-container .heading-container .heading{margin-top:15px;margin-bottom:3px}.infowindow-container .heading-container .heading .header{font-family:Montserrat,sans-serif;font-size:15px;line-height:19.5px}.infowindow-container .personal-info .personal-info-items{padding:1px 0;margin-bottom:3px;font-family:Montserrat,sans-serif}.infowindow-container .personal-info .personal-info-items .info{font-size:14px;line-height:18px;padding:0 5px;color:#2f2f2f;font-family:Montserrat,sans-serif}.infowindow-container .weight-info .weight-heading{font-family:Montserrat,sans-serif;font-size:13px;margin-bottom:5px}.infowindow-container .weight-info .weight-heading .weight-head-count{background-color:#6c6c6c;border-radius:50%;padding:3px 4px;color:#fff;font-size:7px;margin:1px 4px 0;font-family:Montserrat,sans-serif}.infowindow-container .weight-info .weight-info-detail{font-family:Montserrat,sans-serif}.infowindow-container .weight-info .weight-info-detail .weight-info-item{font-size:12px;line-height:18px;color:#424242}.infowindow-container .weight-info .weight-info-detail .weight-info-item .weight-time{color:#424242;padding:0 5px}.infowindow-container .transport-info .transport-container{margin-top:15px;font-family:Montserrat,sans-serif;margin-bottom:10px}.infowindow-container .transport-info .transport-container .driver-info .side-space{margin-left:20px}.infowindow-container .transport-info .transport-container .driver-info .title{font-size:11px;line-height:14px}.infowindow-container .transport-info .transport-container .driver-info .detail{font-size:13px;line-height:18px;color:#2f2f2f}.infowindow-container .transport-info .transport-container .truck-info .side-space{margin-left:50px}.infowindow-container .transport-info .transport-container .truck-info .title{font-size:11px;line-height:14px}.infowindow-container .transport-info .transport-container .truck-info .detail{font-size:13px;line-height:18px;color:#2f2f2f}.info-divider{margin:8px 0;width:100%;height:1px;background:#dadada;border-radius:2px}.dropdown-arrow{position:absolute;right:6px;bottom:6px}.dropdown-arrow svg{transition:transform .2s ease-in-out;transform:rotate(0)}.dropdown-arrow svg path{transition:fill .2s ease-in-out;fill:#919191}.dropdown-arrow.rotate-arrow svg{transform:rotate(180deg)}.dropdown-arrow.rotate-arrow svg path{fill:#6692f1}.dropdown-arrow:hover{cursor:pointer}.dropdown-arrow:hover svg path{fill:#6692f1}.expanded-info{max-height:0px;overflow:hidden;transition:max-height .2s ease-in-out}.expanded-info.active{max-height:300px}.gap-8{gap:8px}.count-number{padding:0 5px;background:#6c6c6c;border-radius:60px;font-size:11px;line-height:14px;-webkit-user-select:none;user-select:none}.rating-icon svg path{fill:#919191;fill-opacity:1}.rating-icon.active.like-icon svg path{fill:#56b4ac}.rating-icon.active.dislike-icon svg path{fill:#e66767}.text-ellipsis{max-width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.text-ellipsis.two-rows-ellipsis{max-width:90%;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;white-space:initial}.blue-text{color:#6692f1!important}.blue-text::-moz-selection{color:#6692f1;background:#3b73ed33}.blue-text::selection{color:#6692f1;background:#3b73ed33}.red-text{color:#df3c3c!important}.red-text::-moz-selection{color:#df3c3c;background:#df3c3c33}.red-text::selection{color:#df3c3c;background:#df3c3c33}.gray-text{color:#919191!important}.gray-text::-moz-selection{color:#919191;background:#91919133}.gray-text::selection{color:#919191;background:#91919133}.light-gray-text{color:#6c6c6c}.light-gray-text::-moz-selection{color:#6c6c6c;background:#6c6c6c33}.light-gray-text::selection{color:#6c6c6c;background:#6c6c6c33}.dark-gray-text{color:#424242}.dark-gray-text::-moz-selection{color:#424242;background:#42424233}.dark-gray-text::selection{color:#424242;background:#42424233}.black-text{color:#2f2f2f}.black-text::-moz-selection{color:#2f2f2f;background:#2f2f2f33}.black-text::selection{color:#2f2f2f;background:#2f2f2f33}.white-text{color:#dadada}.white-text::-moz-selection{color:#dadada;background:#fff3}.white-text::selection{color:#dadada;background:#fff3}.opacity-40{opacity:.4}.regular-text{font-size:14px;line-height:18px;font-family:Montserrat,sans-serif}.small-text{font-size:11px;line-height:14px;font-family:Montserrat,sans-serif}.open-hours-grid{display:grid;grid-template-columns:50% 50%;grid-row-gap:8px}.cursor-pointer{cursor:pointer}.show-all-days-container{grid-column:2/span 1}\n"] }]
|
|
94
94
|
}], propDecorators: { infoWindowContent: [{
|
|
95
95
|
type: Input
|
|
96
96
|
}], markerData: [{
|
|
@@ -104,4 +104,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
104
104
|
}], bodyActions: [{
|
|
105
105
|
type: Output
|
|
106
106
|
}] } });
|
|
107
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtbWFwLWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLW1hcC1kcm9wZG93bi9jYS1tYXAtZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtbWFwLWRyb3Bkb3duL2NhLW1hcC1kcm9wZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZFLFFBQVE7QUFDUixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXhELFlBQVk7QUFDWixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUUzRixNQUFNO0FBQ04sT0FBTyxvQkFBb0IsTUFBTSw4Q0FBOEMsQ0FBQztBQUVoRixZQUFZO0FBQ1osT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFTbkcsUUFBUTtBQUNSLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBQ0gsc0JBQXNCLEVBQ3RCLDZCQUE2QixFQUM3QixvQkFBb0IsR0FDdkIsTUFBTSxTQUFTLENBQUM7Ozs7QUFzQmpCLE1BQU0sT0FBTyxzQkFBc0I7SUFwQm5DO1FBdUJjLHVCQUFrQixHQUF5QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzlELDZCQUF3QixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDOUMsc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN2QyxnQkFBVyxHQUFtQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3BFLGFBQVEsR0FBWSxJQUFJLENBQUM7UUFDekIsd0JBQW1CLEdBQVksS0FBSyxDQUFDO1FBQ3JDLFNBQUksR0FBbUIsb0JBQW9CLENBQUMsZ0JBQWdCLENBQUM7S0E4RHZFO0lBNURVLGNBQWMsQ0FBQyxLQUFZO1FBQzlCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFeEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDbkMsQ0FBQztJQUVNLGNBQWMsQ0FBQyxNQUF3QjtRQUMxQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRU0sVUFBVSxDQUFDLFlBQStDO1FBQzdELE9BQU8sb0JBQW9CLENBQUMsWUFBWSxDQUFXLENBQUM7SUFDeEQsQ0FBQztJQUVNLGdCQUFnQixDQUFDLElBQTRCO1FBQ2hELElBQUksSUFBSSxFQUFFLEVBQUU7WUFBRSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRU0sZUFBZSxDQUFDLEtBQVk7UUFDL0IsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRXhCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRU0sZ0JBQWdCO1FBQ25CLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUN6RCxDQUFDO0lBRU0sbUJBQW1CLENBQUMsS0FBWTtRQUNuQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXhCLElBQ0ksSUFBSSxDQUFDLGlCQUFpQixFQUFFLFdBQVc7WUFDbkMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxNQUFNLElBQUksRUFBRSxFQUNuRCxDQUFDO1lBQ0MsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FDeEMsMkJBQTJCLENBQ2YsQ0FBQztZQUVqQixJQUNJLGFBQWEsRUFBRSxZQUFZLEdBQUcsYUFBYSxFQUFFLFNBQVM7Z0JBQ3RELGFBQWEsRUFBRSxZQUFZLEdBQUcsR0FBRztnQkFFakMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksRUFBRSxDQUFDO1FBQzdDLENBQUM7SUFDTCxDQUFDO0lBRU0sV0FBVyxDQUFDLEtBQVk7UUFDM0IsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFTSxhQUFhLENBQUMsS0FBWTtRQUM3QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFTSxRQUFRLENBQUMsS0FBYTtRQUN6QixPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDOytHQXRFUSxzQkFBc0I7bUdBQXRCLHNCQUFzQixpVUFGcEIsQ0FBQyxzQkFBc0IsQ0FBQywwQkNqRHZDLGtyeEJBc2xCQTtnQkRuakJRLFNBQVM7Z0JBQ1QsWUFBWSwwakJBQ1osb0JBQW9CLGlPQUNwQixVQUFVO2dCQUNWLGFBQWE7Z0JBQ2IsdUJBQXVCO2dCQUN2QixRQUFRO2dCQUNSLFNBQVMseUNBQ1Qsc0JBQXNCLDBEQUN0Qiw2QkFBNkIsaUVBQzdCLG9CQUFvQjs7NEZBTWYsc0JBQXNCO2tCQXBCbEMsU0FBUzsrQkFDSSxxQkFBcUIsY0FDbkIsSUFBSSxXQUNQO3dCQUNMLFNBQVM7d0JBQ1QsWUFBWTt3QkFDWixvQkFBb0I7d0JBQ3BCLFVBQVU7d0JBQ1YsYUFBYTt3QkFDYix1QkFBdUI7d0JBQ3ZCLFFBQVE7d0JBQ1IsU0FBUzt3QkFDVCxzQkFBc0I7d0JBQ3RCLDZCQUE2Qjt3QkFDN0Isb0JBQW9CO3FCQUN2QixhQUdVLENBQUMsc0JBQXNCLENBQUM7OEJBRzFCLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNJLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFDRyx3QkFBd0I7c0JBQWpDLE1BQU07Z0JBQ0csaUJBQWlCO3NCQUExQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vL01vZHVsZVxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFuZ3VsYXJTdmdJY29uTW9kdWxlLCBTdmdJY29uUmVnaXN0cnlTZXJ2aWNlIH0gZnJvbSAnYW5ndWxhci1zdmctaWNvbic7XG5pbXBvcnQgeyBOZ2JUb29sdGlwIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuXG4vL0NvbXBvbmVudHNcbmltcG9ydCB7IENhQXBwVG9vbHRpcFYyQ29tcG9uZW50IH0gZnJvbSAnLi4vY2EtYXBwLXRvb2x0aXAtdjIvY2EtYXBwLXRvb2x0aXAtdjIuY29tcG9uZW50JztcblxuLy9qc29uXG5pbXBvcnQgdGFEZXRhaWxEcm9wZG93bkpzb24gZnJvbSAnLi4vLi4vLi4vYXNzZXRzL2pzb24vdGEtZGV0YWlsLWRyb3Bkb3duLmpzb24nO1xuXG4vL3N2Zy1yb3V0ZXNcbmltcG9ydCB7IE1hcERyb3Bkb3duU3ZnUm91dGVzIH0gZnJvbSAnLi4vY2EtbWFwLWRyb3Bkb3duL3V0aWxzL3N2Zy1yb3V0ZXMvbWFwLWRyb3Bkb3duLXN2Zy1yb3V0ZXMnO1xuXG4vL21vZGVsc1xuaW1wb3J0IHtcbiAgICBEcm9wRG93bkRhdGEsXG4gICAgSURyb3BEb3duQWN0aW9ucyxcbn0gZnJvbSAnLi4vY2EtZGV0YWlscy1kcm9wZG93bi9tb2RlbHMvZGV0YWlsLWRyb3Bkb3duLm1vZGVsJztcbmltcG9ydCB7IE1hcERyb3Bkb3duQ2x1c3Rlckl0ZW0sIE1hcERyb3Bkb3duQ29udGVudCB9IGZyb20gJy4vbW9kZWxzJztcblxuLy8gcGlwZXNcbmltcG9ydCB7IENhU3ZnUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL2NhLXN2Zy5waXBlJztcbmltcG9ydCB7XG4gICAgTWFwRHJvcGRvd25Db250ZW50UGlwZSxcbiAgICBNYXBEcm9wZG93bkNsdXN0ZXJDb250ZW50UGlwZSxcbiAgICBNYXBEcm9wZG93blZhbHVlUGlwZSxcbn0gZnJvbSAnLi9waXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXBwLWNhLW1hcC1kcm9wZG93bicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIC8vbW9kdWxlc1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEFuZ3VsYXJTdmdJY29uTW9kdWxlLFxuICAgICAgICBOZ2JUb29sdGlwLFxuICAgICAgICAvLyBjb21wb25lbnRzXG4gICAgICAgIENhQXBwVG9vbHRpcFYyQ29tcG9uZW50LFxuICAgICAgICAvLyBwaXBlc1xuICAgICAgICBDYVN2Z1BpcGUsXG4gICAgICAgIE1hcERyb3Bkb3duQ29udGVudFBpcGUsXG4gICAgICAgIE1hcERyb3Bkb3duQ2x1c3RlckNvbnRlbnRQaXBlLFxuICAgICAgICBNYXBEcm9wZG93blZhbHVlUGlwZSxcbiAgICBdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jYS1tYXAtZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2NhLW1hcC1kcm9wZG93bi5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW1N2Z0ljb25SZWdpc3RyeVNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBDYU1hcERyb3Bkb3duQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKSBpbmZvV2luZG93Q29udGVudD86IE1hcERyb3Bkb3duQ29udGVudCB8IG51bGw7XG4gICAgQElucHV0KCkgbWFya2VyRGF0YT86IGFueTtcbiAgICBAT3V0cHV0KCkgb25DbHVzdGVySXRlbUNsaWNrOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgb25DbHVzdGVyTGlzdFNjcm9sbFRvRW5kID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBvbkJhY2tCdXR0b25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgYm9keUFjdGlvbnM6IEV2ZW50RW1pdHRlcjxJRHJvcERvd25BY3Rpb25zPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBwdWJsaWMgaXNIaWRkZW46IGJvb2xlYW4gPSB0cnVlO1xuICAgIHB1YmxpYyBpc1Nob3dBbGxEYXlzQWN0aXZlOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHVibGljIGRhdGE6IERyb3BEb3duRGF0YVtdID0gdGFEZXRhaWxEcm9wZG93bkpzb24udGFEZXRhaWxEcm9wRG93bjtcblxuICAgIHB1YmxpYyBzaG93SGlkZGVuRGF0YShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgdGhpcy5pc0hpZGRlbiA9ICF0aGlzLmlzSGlkZGVuO1xuICAgIH1cblxuICAgIHB1YmxpYyBjYWxsQm9keUFjdGlvbihhY3Rpb246IElEcm9wRG93bkFjdGlvbnMpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ib2R5QWN0aW9ucy5lbWl0KGFjdGlvbik7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFN2Z1BhdGgocHJvcGVydHlOYW1lOiBrZXlvZiB0eXBlb2YgTWFwRHJvcGRvd25TdmdSb3V0ZXMpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gTWFwRHJvcGRvd25TdmdSb3V0ZXNbcHJvcGVydHlOYW1lXSBhcyBzdHJpbmc7XG4gICAgfVxuXG4gICAgcHVibGljIGNsdXN0ZXJJdGVtQ2xpY2soaXRlbTogTWFwRHJvcGRvd25DbHVzdGVySXRlbSk6IHZvaWQge1xuICAgICAgICBpZiAoaXRlbT8uaWQpIHRoaXMub25DbHVzdGVySXRlbUNsaWNrPy5lbWl0KGl0ZW0uaWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBiYWNrQnV0dG9uQ2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgIHRoaXMub25CYWNrQnV0dG9uQ2xpY2suZW1pdCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzaG93QWxsRGF5c0NsaWNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzU2hvd0FsbERheXNBY3RpdmUgPSAhdGhpcy5pc1Nob3dBbGxEYXlzQWN0aXZlO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkNsdXN0ZXJMaXN0U2Nyb2xsKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0b3BNYXBab29tKGV2ZW50KTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLmluZm9XaW5kb3dDb250ZW50Py5jbHVzdGVyRGF0YSAmJlxuICAgICAgICAgICAgdGhpcy5pbmZvV2luZG93Q29udGVudD8uY2x1c3RlckRhdGE/Lmxlbmd0aCA+PSAyNVxuICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IHNjcm9sbEVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAgICAgICAgICcuY2x1c3Rlci1tYXJrZXItY29udGFpbmVyJ1xuICAgICAgICAgICAgKSBhcyBIVE1MRWxlbWVudDtcblxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIHNjcm9sbEVsZW1lbnQ/Lm9mZnNldEhlaWdodCArIHNjcm9sbEVsZW1lbnQ/LnNjcm9sbFRvcCA+PVxuICAgICAgICAgICAgICAgIHNjcm9sbEVsZW1lbnQ/LnNjcm9sbEhlaWdodCAtIDEwNVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIHRoaXMub25DbHVzdGVyTGlzdFNjcm9sbFRvRW5kLmVtaXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBzdG9wTWFwWm9vbShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGRyb3Bkb3duQ2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBpZGVudGl0eShpbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJpbmZvV2luZG93Q29udGVudFwiPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nSWY9XCJpbmZvV2luZG93Q29udGVudD8uY2x1c3RlckRhdGE7IGVsc2UgbWFya2VySW5mb1RlbXBsYXRlXCJcbiAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgaW5mb1dpbmRvd0NvbnRlbnQ/LnNlbGVjdGVkQ2x1c3Rlckl0ZW1EYXRhO1xuICAgICAgICAgICAgICAgIGVsc2UgY2x1c3RlckRhdGFMaXN0VGVtcGxhdGVcbiAgICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1hcmtlci1jb250YWluZXIgcmVsYXRpdmVcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5leHBhbmRlZF09XCIhaXNIaWRkZW5cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJkcm9wZG93bkNsaWNrKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChtb3VzZXdoZWVsKT1cInN0b3BNYXBab29tKCRldmVudClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIEBmb3IgKFxuICAgICAgICAgICAgICAgICAgICBpdGVtIG9mIGluZm9XaW5kb3dDb250ZW50LnNlbGVjdGVkQ2x1c3Rlckl0ZW1EYXRhXG4gICAgICAgICAgICAgICAgICAgICAgICAubWFpbkNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGxldCBpID0gJGluZGV4O1xuICAgICAgICAgICAgICAgICAgICB0cmFjayBpZGVudGl0eVxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRyb3Bkb3duQ29udGVudFRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogaXRlbSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogaW5mb1dpbmRvd0NvbnRlbnQ/LnNlbGVjdGVkQ2x1c3Rlckl0ZW1EYXRhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4cGFuZGVkLWluZm9cIiBbY2xhc3MuYWN0aXZlXT1cIiFpc0hpZGRlblwiPlxuICAgICAgICAgICAgICAgICAgICBAZm9yIChcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0gb2YgaW5mb1dpbmRvd0NvbnRlbnQuc2VsZWN0ZWRDbHVzdGVySXRlbURhdGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZXhwYW5kZWRDb250ZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGkgPSAkaW5kZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFjayBpZGVudGl0eVxuICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcm9wZG93bkNvbnRlbnRUZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogaXRlbSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IGluZm9XaW5kb3dDb250ZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPy5zZWxlY3RlZENsdXN0ZXJJdGVtRGF0YS5kYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImRyb3Bkb3duLWFycm93IGFsaWduLXNlbGYtZW5kXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLnJvdGF0ZS1hcnJvd109XCIhaXNIaWRkZW5cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHN2Zy1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImdldFN2Z1BhdGgoJ2Nvcm5lckRvd25BcnJvd1JvdXRlJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNob3dIaWRkZW5EYXRhKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICA+PC9zdmctaWNvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctdGVtcGxhdGUgI2NsdXN0ZXJEYXRhTGlzdFRlbXBsYXRlPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY2x1c3Rlci1tYXJrZXItY29udGFpbmVyIGQtZmxleCBmbGV4LWNvbHVtbiBnYXAtMVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImRyb3Bkb3duQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKG1vdXNld2hlZWwpPVwib25DbHVzdGVyTGlzdFNjcm9sbCgkZXZlbnQpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBAZm9yIChcbiAgICAgICAgICAgICAgICAgICAgaXRlbSBvZiBpbmZvV2luZG93Q29udGVudC5jbHVzdGVyRGF0YTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGkgPSAkaW5kZXg7XG4gICAgICAgICAgICAgICAgICAgIHRyYWNrIGlkZW50aXR5XG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2x1c3RlckNvbnRlbnRUZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGl0ZW0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLXRlbXBsYXRlICNtYXJrZXJJbmZvVGVtcGxhdGU+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwibWFya2VyLWNvbnRhaW5lciByZWxhdGl2ZVwiXG4gICAgICAgICAgICBbY2xhc3MuZXhwYW5kZWRdPVwiIWlzSGlkZGVuXCJcbiAgICAgICAgICAgIChjbGljayk9XCJkcm9wZG93bkNsaWNrKCRldmVudClcIlxuICAgICAgICAgICAgKG1vdXNld2hlZWwpPVwic3RvcE1hcFpvb20oJGV2ZW50KVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIEBmb3IgKFxuICAgICAgICAgICAgICAgIGl0ZW0gb2YgaW5mb1dpbmRvd0NvbnRlbnQubWFpbkNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgbGV0IGkgPSAkaW5kZXg7XG4gICAgICAgICAgICAgICAgdHJhY2sgaWRlbnRpdHlcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRyb3Bkb3duQ29udGVudFRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGl0ZW0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogbWFya2VyRGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleHBhbmRlZC1pbmZvXCIgW2NsYXNzLmFjdGl2ZV09XCIhaXNIaWRkZW5cIj5cbiAgICAgICAgICAgICAgICBAZm9yIChcbiAgICAgICAgICAgICAgICAgICAgaXRlbSBvZiBpbmZvV2luZG93Q29udGVudC5leHBhbmRlZENvbnRlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGxldCBpID0gJGluZGV4O1xuICAgICAgICAgICAgICAgICAgICB0cmFjayBpZGVudGl0eVxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRyb3Bkb3duQ29udGVudFRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogaXRlbSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogbWFya2VyRGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cImRyb3Bkb3duLWFycm93IGFsaWduLXNlbGYtZW5kXCJcbiAgICAgICAgICAgICAgICBbY2xhc3Mucm90YXRlLWFycm93XT1cIiFpc0hpZGRlblwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHN2Zy1pY29uXG4gICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiZ2V0U3ZnUGF0aCgnY29ybmVyRG93bkFycm93Um91dGUnKVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzaG93SGlkZGVuRGF0YSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICA+PC9zdmctaWNvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjY2x1c3RlckNvbnRlbnRUZW1wbGF0ZSBsZXQtY29udGVudD1cImNvbnRlbnRcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29udGVudCB8IG1hcERyb3Bkb3duQ2x1c3RlckNvbnRlbnRUeXBlOyBsZXQgaXRlbVwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4gY2x1c3Rlci1tYXJrZXItaXRlbVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY2x1c3Rlckl0ZW1DbGljayhpdGVtKVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTFcIlxuICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgICAgICAgICAgICAgJ21heC13aWR0aCc6IGl0ZW0uZmF2b3VyaXRlID8gJ2NhbGMoMTAwJSAtIDE4cHgpJyA6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5pc0Nsb3NlZFwiPlxuICAgICAgICAgICAgICAgICAgICA8c3ZnLWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiZ2V0U3ZnUGF0aCgncGVybWFuZW50bHlDbG9zZWRSb3V0ZScpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzdmdTdHlsZV09XCJ7ICd3aWR0aC5weCc6IDE4LCAnaGVpZ2h0LnB4JzogMTggfVwiXG4gICAgICAgICAgICAgICAgICAgID48L3N2Zy1pY29uPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyZWd1bGFyLXRleHQgZGFyay1ncmF5LXRleHQgdXBwZXJjYXNlIHRleHQtZWxsaXBzaXNcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5uYW1lIH19XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLmZhdm91cml0ZVwiPlxuICAgICAgICAgICAgICAgIDxzdmctaWNvblxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleFwiXG4gICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiZ2V0U3ZnUGF0aCgnZmF2b3JpdGVSb3V0ZScpXCJcbiAgICAgICAgICAgICAgICAgICAgW3N2Z1N0eWxlXT1cInsgJ3dpZHRoLnB4JzogMTgsICdoZWlnaHQucHgnOiAxOCB9XCJcbiAgICAgICAgICAgICAgICA+PC9zdmctaWNvbj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZHJvcGRvd25Db250ZW50VGVtcGxhdGUgbGV0LWNvbnRlbnQ9XCJjb250ZW50XCIgbGV0LWRhdGE9XCJkYXRhXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRlbnQgfCBtYXBEcm9wZG93bkNvbnRlbnRUeXBlOyBsZXQgaXRlbVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWl0ZW0uc2lkZUJ5U2lkZUluZm87IGVsc2Ugc2lkZUJ5U2lkZUluZm9UZW1wbGF0ZVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgIGRyb3Bkb3duQ29udGVudEl0ZW1UZW1wbGF0ZXM7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGl0ZW0sXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBkYXRhLFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNzaWRlQnlTaWRlSW5mb1RlbXBsYXRlPlxuICAgICAgICAgICAgPCEtLSBTaWRlIGJ5IFNpZGUgRGF0YSAtLT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgPCEtLSBMZWZ0IFNpZGUgLS0+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0uc2lkZUJ5U2lkZUluZm8/LmxlZnRTaWRlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcm9wZG93bkNvbnRlbnRJdGVtVGVtcGxhdGVzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBpdGVtLnNpZGVCeVNpZGVJbmZvPy5sZWZ0U2lkZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IGRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgPCEtLSBSaWdodCBTaWRlIC0tPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLnNpZGVCeVNpZGVJbmZvPy5yaWdodFNpZGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRyb3Bkb3duQ29udGVudEl0ZW1UZW1wbGF0ZXM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGl0ZW0uc2lkZUJ5U2lkZUluZm8/LnJpZ2h0U2lkZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IGRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGVcbiAgICAjZHJvcGRvd25Db250ZW50SXRlbVRlbXBsYXRlc1xuICAgIGxldC1jb250ZW50PVwiY29udGVudFwiXG4gICAgbGV0LWRhdGE9XCJkYXRhXCJcbj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29udGVudCB8IG1hcERyb3Bkb3duQ29udGVudFR5cGU7IGxldCBpdGVtXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cIml0ZW0udGVtcGxhdGVcIj5cbiAgICAgICAgICAgIDwhLS0gTWFpbiBUaXRsZSAtLT5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidoZWFkZXItdGl0bGUnXCI+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImhlYWRpbmcgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5jdXN0b21DbGFzc0NvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICB9fVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImhlYWRlci10ZXh0LWNvbnRhaW5lciBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0xIHctMTAwXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0uaGFzQmFja0J1dHRvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJoZWFkZXItYmFjay1idXR0b24gZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImJhY2tCdXR0b25DbGljaygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmctaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJnZXRTdmdQYXRoKCdiYWNrQnV0dG9uUm91dGUnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3ZnU3R5bGVdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd3aWR0aC5weCc6IDE0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdoZWlnaHQucHgnOiAxNCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJoZWFkZXIgY2EtZm9udC1leHRyYS1ib2xkIGRhcmstZ3JheS10ZXh0IHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uY3VzdG9tQ2xhc3NUZXh0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGRhdGFbaXRlbS5maWVsZF0gfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiZHJvcGRvd24taWNvblwiPjwvZGl2PiAtLT5cbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8YXBwLWNhLWRldGFpbHMtZHJvcGRvd25cbiAgICAgICAgICAgICAjZGV0YWlsc0Ryb3Bkb3duXG4gICAgICAgICAgICAgW29wdGlvbnNdPVwiZGF0YVwiXG4gICAgICAgICAgICAgW3BsYWNlbWVudF09XCIncmlnaHQtdG9wJ1wiXG4gICAgICAgICAgICAgW2lkXT1cIml0ZW0/LmlkXCJcbiAgICAgICAgICAgICBbZGF0YV09XCJpdGVtXCJcbiAgICAgICAgICAgICBbY3VzdG9tQ2xhc3NEcm9wRG93bl09XCJcbiAgICAgICAgICAgICAgICAgJ21hcC1saXN0LWNhcmQtZHJvcGRvd24gbWFya2VyLWRyb3Bkb3duLXBvcG92ZXInXG4gICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAoZHJvcERvd25BY3Rpb25zKT1cImNhbGxCb2R5QWN0aW9uKCRldmVudClcIlxuICAgICAgICAgPjwvYXBwLWNhLWRldGFpbHMtZHJvcGRvd24+IC0tPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDwhLS0gUmF0aW5nIFJldmlldyAtLT5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidyYXRpbmctcmV2aWV3J1wiPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LXN0YXJ0IGFsaWduLWl0ZW1zLWNlbnRlciBhbGlnbi1jb250ZW50LWNlbnRlciBnYXAtMyB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5jdXN0b21DbGFzc0NvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICB9fVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5vcGFjaXR5LTQwXT1cIiFkYXRhW2l0ZW0uZmllbGRdLmxpa2VDb3VudFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmctaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicmF0aW5nLWljb24gbGlrZS1pY29uIGQtZmxleFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJkYXRhW2l0ZW0uZmllbGRdLmhhc0xpa2VkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImdldFN2Z1BhdGgoJ2xpa2VSb3V0ZScpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3ZnU3R5bGVdPVwieyAnd2lkdGgucHgnOiAxNCwgJ2hlaWdodC5weCc6IDE0IH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvc3ZnLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic21hbGwtdGV4dCBkYXJrLWdyYXktdGV4dCBjYS1mb250LXNlbWktYm9sZCB1c2VyLXNlbGVjdC1ub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+e3sgZGF0YVtpdGVtLmZpZWxkXS5saWtlQ291bnQgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1zdGFydCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLm9wYWNpdHktNDBdPVwiIWRhdGFbaXRlbS5maWVsZF0uZGlzbGlrZUNvdW50XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2Zy1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyYXRpbmctaWNvbiBkaXNsaWtlLWljb24gZC1mbGV4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImRhdGFbaXRlbS5maWVsZF0uaGFzRGlzbGlrZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJnZXRTdmdQYXRoKCdkaXNsaWtlUm91dGUnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N2Z1N0eWxlXT1cInsgJ3dpZHRoLnB4JzogMTQsICdoZWlnaHQucHgnOiAxNCB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L3N2Zy1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNtYWxsLXRleHQgZGFyay1ncmF5LXRleHQgY2EtZm9udC1zZW1pLWJvbGQgdXNlci1zZWxlY3Qtbm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPnt7IGRhdGFbaXRlbS5maWVsZF0uZGlzbGlrZUNvdW50IH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5vcGFjaXR5LTQwXT1cIiFkYXRhW2l0ZW0uZmllbGRdLnJldmlld0NvdW50XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2Zy1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyYXRpbmctaWNvbiByZXZpZXctaWNvbiBkLWZsZXhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiZ2V0U3ZnUGF0aCgncmV2aWV3Um91dGUnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N2Z1N0eWxlXT1cInsgJ3dpZHRoLnB4JzogMTQsICdoZWlnaHQucHgnOiAxNCB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L3N2Zy1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNtYWxsLXRleHQgZGFyay1ncmF5LXRleHQgY2EtZm9udC1zZW1pLWJvbGQgdXNlci1zZWxlY3Qtbm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPnt7IGRhdGFbaXRlbS5maWVsZF0ucmV2aWV3Q291bnQgPz8gMCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8IS0tIEJvcmRlciBEaXZpZGVyIC0tPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2RpdmlkZXInXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImluZm8tZGl2aWRlclwiPjwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDwhLS0gUmVwYWlyIFNob3AgU2VydmljZXMgLS0+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIncmVwYWlyLXNob3Atc2VydmljZXMnXCI+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4ge3tcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uY3VzdG9tQ2xhc3NDb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgfX1cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgQGZvciAoc2VydmljZSBvZiBkYXRhW2l0ZW0uZmllbGRdOyB0cmFjayBpZGVudGl0eSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZ2JUb29sdGlwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBCYWNrZ3JvdW5kXT1cIicjNDI0MjQyJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW21haW5DYVRvb2x0aXBdPVwic2VydmljZS5zZXJ2aWNlVHlwZS5uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbj1cImJvdHRvbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2Zy1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicmVwYWlyLXNlcnZpY2UtaWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwic2VydmljZS5hY3RpdmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmljZS5sb2dvTmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgY2FTdmc6ICdjb21tb24nIDogJ3JlcGFpci1zZXJ2aWNlcydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N2Z1N0eWxlXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd3aWR0aC5weCc6IDE4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hlaWdodC5weCc6IDE4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9zdmctaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPCEtLSBJY29uIGFuZCBUZXh0IC0tPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2ljb24tdGV4dCdcIj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLXN0YXJ0IGdhcC0xIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmN1c3RvbUNsYXNzQ29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgIH19XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLnVybFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5nYlRvb2x0aXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdG9vbHRpcEJhY2tncm91bmRdPVwiJyM0MjQyNDInXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWFpbkNhVG9vbHRpcF09XCJpdGVtLmljb25Ub29sdGlwVGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb249XCJib3R0b21cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlVG9vbHRpcF09XCIhaXRlbS5pY29uVG9vbHRpcFRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmctaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiaXRlbS51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3ZnU3R5bGVdPVwieyAnd2lkdGgucHgnOiAxOCwgJ2hlaWdodC5weCc6IDE4IH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3N2Zy1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyZWd1bGFyLXRleHQgZGFyay1ncmF5LXRleHQge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmN1c3RvbUNsYXNzVGV4dFxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBkYXRhW2l0ZW0uZmllbGRdIH19XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8IS0tIFRpdGxlIC0tPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3RpdGxlJ1wiPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyZWd1bGFyLXRleHQgZGFyay1ncmF5LXRleHQgY2EtZm9udC1leHRyYS1ib2xkIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmN1c3RvbUNsYXNzVGV4dFxuICAgICAgICAgICAgICAgICAgICB9fVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyBkYXRhW2l0ZW0uZmllbGRdIH19XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPCEtLSBUaXRsZSBhbmQgQ291bnQgLS0+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIndGl0bGUtY291bnQnXCI+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTEge3tcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uY3VzdG9tQ2xhc3NDb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgfX1cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlZ3VsYXItdGV4dCBkYXJrLWdyYXktdGV4dCBjYS1mb250LWV4dHJhLWJvbGRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0udGl0bGUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY291bnQtbnVtYmVyIHdoaXRlLXRleHQgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGNhLWZvbnQtYm9sZFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGRhdGFbaXRlbS5maWVsZF0gfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPCEtLSBNb25leSBUZXh0ICAtLT5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidtb25leS10ZXh0J1wiPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0xIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmN1c3RvbUNsYXNzQ29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgIH19XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZWd1bGFyLXRleHQgY2EtZm9udC1ib2xkIGJsdWUtdGV4dFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhPy5baXRlbS5maWVsZF0gIT09ICcnID8gZGF0YVtpdGVtLmZpZWxkXSA6ICckMCdcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVndWxhci10ZXh0IGxpZ2h0LWdyYXktdGV4dCBjYS1mb250LWJvbGRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0udGl0bGUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPCEtLSBPcGVuIEhvdXJzIC0tPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ29wZW4taG91cnMnXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBnYXAtMlwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInJlZ3VsYXItdGV4dCBkYXJrLWdyYXktdGV4dCBjYS1mb250LWV4dHJhLWJvbGQge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmN1c3RvbUNsYXNzVGV4dFxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLnRpdGxlIH19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3Blbi1ob3Vycy1ncmlkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVtpdGVtLmZpZWxkXT8ub3BlbkhvdXJzVG9kYXkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIWlzU2hvd0FsbERheXNBY3RpdmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gZmxleC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic21hbGwtdGV4dCBkYXJrLWdyYXktdGV4dCBjYS1mb250LWJvbGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBkYXRhW2l0ZW0uZmllbGRdLm9wZW5Ib3Vyc1RvZGF5LnN0YXR1cyB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyZWd1bGFyLXRleHQgZGFyay1ncmF5LXRleHQgdGV4dC1lbGxpcHNpc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGRhdGFbaXRlbS5maWVsZF0ub3BlbkhvdXJzVG9kYXkuaW5mbyB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZGF0YVtpdGVtLmZpZWxkXT8ub3BlbkhvdXJzPy5sZW5ndGhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1Nob3dBbGxEYXlzQWN0aXZlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF5IG9mIGRhdGFbaXRlbS5maWVsZF0ub3BlbkhvdXJzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2sgaWRlbnRpdHlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGZsZXgtMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzbWFsbC10ZXh0IGRhcmstZ3JheS10ZXh0IGNhLWZvbnQtYm9sZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBkYXkuZGF5T2ZXZWVrIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInJlZ3VsYXItdGV4dCBkYXJrLWdyYXktdGV4dCB0ZXh0LWVsbGlwc2lzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXkuc3RhcnRUaW1lICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnIC0gJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF5LmVuZFRpbWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBmbGV4LTEganVzdGlmeS1jb250ZW50LWVuZCBzaG93LWFsbC1kYXlzLWNvbnRhaW5lclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNob3dBbGxEYXlzQ2xpY2soKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmctaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRTdmdQYXRoKCdhY2NpZGVudENhbGVuZGVyUm91dGUnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N2Z1N0eWxlXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3dpZHRoLnB4JzogMTgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdoZWlnaHQucHgnOiAxOCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3N2Zy1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicmVndWxhci10ZXh0IGdyYXktdGV4dCBjdXJzb3ItcG9pbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNTaG93QWxsRGF5c0FjdGl2ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnU2hvdyB0b2RheSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJ1Nob3cgYWxsIGRheXMnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8IS0tIFRleHQgYW5kIENvdW50IC0tPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3RleHQtY291bnQnXCI+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTEge3tcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uY3VzdG9tQ2xhc3NDb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgfX1cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlZ3VsYXItdGV4dCB7eyBpdGVtLmN1c3RvbUNsYXNzVGV4dCB9fVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS50aXRsZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyZWd1bGFyLXRleHQgY2EtZm9udC1zZW1pLWJvbGQge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmN1c3RvbUNsYXNzVGV4dFxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBkYXRhIHwgbWFwRHJvcGRvd25WYWx1ZTogaXRlbSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8IS0tIFN1YnRpdGxlIC0tPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3N1YnRpdGxlJ1wiPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyZWd1bGFyLXRleHQgZGFyay1ncmF5LXRleHQgY2EtZm9udC1leHRyYS1ib2xkIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmN1c3RvbUNsYXNzVGV4dFxuICAgICAgICAgICAgICAgICAgICB9fVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLnRpdGxlIH19XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPCEtLSBSZWd1bGFyIFRleHQgLS0+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIndGV4dCdcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVndWxhci10ZXh0IGJsYWNrLXRleHQge3sgaXRlbS5jdXN0b21DbGFzc1RleHQgfX1cIj5cbiAgICAgICAgICAgICAgICAgICAge3sgZGF0YSB8IG1hcERyb3Bkb3duVmFsdWU6IGl0ZW0gfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8IS0tIFNtYWxsIFN1YnRpdGxlIC0tPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3NtYWxsLXN1YnRpdGxlJ1wiPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzbWFsbC10ZXh0IGRhcmstZ3JheS10ZXh0IHt7IGl0ZW0uY3VzdG9tQ2xhc3NUZXh0IH19XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0udGl0bGUgfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
107
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtbWFwLWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLW1hcC1kcm9wZG93bi9jYS1tYXAtZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtbWFwLWRyb3Bkb3duL2NhLW1hcC1kcm9wZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZFLFVBQVU7QUFDVixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXhELGFBQWE7QUFDYixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUUzRixPQUFPO0FBQ1AsT0FBTyxvQkFBb0IsTUFBTSw4Q0FBOEMsQ0FBQztBQUVoRixhQUFhO0FBQ2IsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFTM0UsUUFBUTtBQUNSLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBQ0gsc0JBQXNCLEVBQ3RCLDZCQUE2QixFQUM3QixvQkFBb0IsR0FDdkIsTUFBTSxTQUFTLENBQUM7QUFFakIsUUFBUTtBQUNSLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7OztBQXNCakQsTUFBTSxPQUFPLHNCQUFzQjtJQXBCbkM7UUEwQmMsdUJBQWtCLEdBQXlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDOUQsNkJBQXdCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM5QyxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3ZDLGdCQUFXLEdBQW1DLElBQUksWUFBWSxFQUFFLENBQUM7UUFDcEUsYUFBUSxHQUFZLElBQUksQ0FBQztRQUN6Qix3QkFBbUIsR0FBWSxLQUFLLENBQUM7UUFDckMsU0FBSSxHQUFtQixvQkFBb0IsQ0FBQyxnQkFBZ0IsQ0FBQztRQUM3RCxnQkFBVyxHQUFhLElBQUksQ0FBQztRQUM3Qix5QkFBb0IsR0FBRyxvQkFBb0IsQ0FBQztRQUM1QywyQkFBc0IsR0FBRyxzQkFBc0IsQ0FBQztLQW9EMUQ7SUFqRUcsSUFBYSxVQUFVLENBQUMsTUFBUztRQUM3QixJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQztRQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztJQUN6QixDQUFDO0lBWU0sY0FBYyxDQUFDLEtBQVk7UUFDOUIsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztRQUUxQyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUNuQyxDQUFDO0lBRU0sY0FBYyxDQUFDLE1BQXdCO1FBQzFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxJQUE0QjtRQUNoRCxJQUFJLElBQUksRUFBRSxFQUFFO1lBQUUsSUFBSSxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVNLGVBQWUsQ0FBQyxLQUFZO1FBQy9CLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVwQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVNLGdCQUFnQjtRQUNuQixJQUFJLENBQUMsbUJBQW1CLEdBQUcsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDekQsQ0FBQztJQUVNLG1CQUFtQixDQUFDLEtBQVk7UUFDbkMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXBDLElBQ0ksSUFBSSxDQUFDLGlCQUFpQixFQUFFLFdBQVc7WUFDbkMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxNQUFNLElBQUksRUFBRSxFQUNuRCxDQUFDO1lBQ0MsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FDeEMsMkJBQTJCLENBQ2YsQ0FBQztZQUVqQixJQUNJLGFBQWEsRUFBRSxZQUFZLEdBQUcsYUFBYSxFQUFFLFNBQVM7Z0JBQ3RELGFBQWEsRUFBRSxZQUFZLEdBQUcsR0FBRztnQkFFakMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksRUFBRSxDQUFDO1FBQzdDLENBQUM7SUFDTCxDQUFDO0lBRU0sdUJBQXVCLENBQzFCLEtBQVksRUFDWixjQUF3QjtRQUV4QixJQUFJLGNBQWM7WUFBRSxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDM0MsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzVCLENBQUM7K0dBbEVRLHNCQUFzQjttR0FBdEIsc0JBQXNCLGlVQUZwQixDQUFDLHNCQUFzQixDQUFDLDBCQ3BEdkMsNnl1QkFza0JBO2dCRGhpQlEsU0FBUztnQkFDVCxZQUFZLDBSQUNaLG9CQUFvQixpT0FDcEIsVUFBVTtnQkFDVixhQUFhO2dCQUNiLHVCQUF1QjtnQkFDdkIsUUFBUTtnQkFDUixTQUFTLHlDQUNULHNCQUFzQiwwREFDdEIsNkJBQTZCLGlFQUM3QixvQkFBb0I7OzRGQU1mLHNCQUFzQjtrQkFwQmxDLFNBQVM7K0JBQ0kscUJBQXFCLGNBQ25CLElBQUksV0FDUDt3QkFDTCxTQUFTO3dCQUNULFlBQVk7d0JBQ1osb0JBQW9CO3dCQUNwQixVQUFVO3dCQUNWLGFBQWE7d0JBQ2IsdUJBQXVCO3dCQUN2QixRQUFRO3dCQUNSLFNBQVM7d0JBQ1Qsc0JBQXNCO3dCQUN0Qiw2QkFBNkI7d0JBQzdCLG9CQUFvQjtxQkFDdkIsYUFHVSxDQUFDLHNCQUFzQixDQUFDOzhCQUcxQixpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ08sVUFBVTtzQkFBdEIsS0FBSztnQkFJSSxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBQ0csd0JBQXdCO3NCQUFqQyxNQUFNO2dCQUNHLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLy8gbW9kdWxlc1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFuZ3VsYXJTdmdJY29uTW9kdWxlLCBTdmdJY29uUmVnaXN0cnlTZXJ2aWNlIH0gZnJvbSAnYW5ndWxhci1zdmctaWNvbic7XG5pbXBvcnQgeyBOZ2JUb29sdGlwIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuXG4vLyBjb21wb25lbnRzXG5pbXBvcnQgeyBDYUFwcFRvb2x0aXBWMkNvbXBvbmVudCB9IGZyb20gJy4uL2NhLWFwcC10b29sdGlwLXYyL2NhLWFwcC10b29sdGlwLXYyLmNvbXBvbmVudCc7XG5cbi8vIGpzb25cbmltcG9ydCB0YURldGFpbERyb3Bkb3duSnNvbiBmcm9tICcuLi8uLi8uLi9hc3NldHMvanNvbi90YS1kZXRhaWwtZHJvcGRvd24uanNvbic7XG5cbi8vIHN2Zy1yb3V0ZXNcbmltcG9ydCB7IE1hcERyb3Bkb3duU3ZnUm91dGVzIH0gZnJvbSAnLi4vY2EtbWFwLWRyb3Bkb3duL3V0aWxzL3N2Zy1yb3V0ZXMnO1xuXG4vLyBtb2RlbHNcbmltcG9ydCB7XG4gICAgRHJvcERvd25EYXRhLFxuICAgIElEcm9wRG93bkFjdGlvbnMsXG59IGZyb20gJy4uL2NhLWRldGFpbHMtZHJvcGRvd24vbW9kZWxzL2RldGFpbC1kcm9wZG93bi5tb2RlbCc7XG5pbXBvcnQgeyBNYXBEcm9wZG93bkNsdXN0ZXJJdGVtLCBNYXBEcm9wZG93bkNvbnRlbnQgfSBmcm9tICcuL21vZGVscyc7XG5cbi8vIHBpcGVzXG5pbXBvcnQgeyBDYVN2Z1BpcGUgfSBmcm9tICcuLi8uLi9waXBlcy9jYS1zdmcucGlwZSc7XG5pbXBvcnQge1xuICAgIE1hcERyb3Bkb3duQ29udGVudFBpcGUsXG4gICAgTWFwRHJvcGRvd25DbHVzdGVyQ29udGVudFBpcGUsXG4gICAgTWFwRHJvcGRvd25WYWx1ZVBpcGUsXG59IGZyb20gJy4vcGlwZXMnO1xuXG4vLyBlbnVtc1xuaW1wb3J0IHsgRU1hcERyb3Bkb3duU3RyaW5nRW51bSB9IGZyb20gJy4vZW51bXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FwcC1jYS1tYXAtZHJvcGRvd24nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICAvL21vZHVsZXNcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBBbmd1bGFyU3ZnSWNvbk1vZHVsZSxcbiAgICAgICAgTmdiVG9vbHRpcCxcbiAgICAgICAgLy8gY29tcG9uZW50c1xuICAgICAgICBDYUFwcFRvb2x0aXBWMkNvbXBvbmVudCxcbiAgICAgICAgLy8gcGlwZXNcbiAgICAgICAgQ2FTdmdQaXBlLFxuICAgICAgICBNYXBEcm9wZG93bkNvbnRlbnRQaXBlLFxuICAgICAgICBNYXBEcm9wZG93bkNsdXN0ZXJDb250ZW50UGlwZSxcbiAgICAgICAgTWFwRHJvcGRvd25WYWx1ZVBpcGUsXG4gICAgXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2EtbWFwLWRyb3Bkb3duLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jYS1tYXAtZHJvcGRvd24uY29tcG9uZW50LnNjc3MnXSxcbiAgICBwcm92aWRlcnM6IFtTdmdJY29uUmVnaXN0cnlTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2FNYXBEcm9wZG93bkNvbXBvbmVudDxUPiB7XG4gICAgQElucHV0KCkgaW5mb1dpbmRvd0NvbnRlbnQ/OiBNYXBEcm9wZG93bkNvbnRlbnQgfCBudWxsO1xuICAgIEBJbnB1dCgpIHNldCBtYXJrZXJEYXRhKHZhbHVlczogVCkge1xuICAgICAgICB0aGlzLl9tYXJrZXJEYXRhID0gdmFsdWVzO1xuICAgICAgICB0aGlzLmlzSGlkZGVuID0gdHJ1ZTtcbiAgICB9XG4gICAgQE91dHB1dCgpIG9uQ2x1c3Rlckl0ZW1DbGljazogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIG9uQ2x1c3Rlckxpc3RTY3JvbGxUb0VuZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgb25CYWNrQnV0dG9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIGJvZHlBY3Rpb25zOiBFdmVudEVtaXR0ZXI8SURyb3BEb3duQWN0aW9ucz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgcHVibGljIGlzSGlkZGVuOiBib29sZWFuID0gdHJ1ZTtcbiAgICBwdWJsaWMgaXNTaG93QWxsRGF5c0FjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHB1YmxpYyBkYXRhOiBEcm9wRG93bkRhdGFbXSA9IHRhRGV0YWlsRHJvcGRvd25Kc29uLnRhRGV0YWlsRHJvcERvd247XG4gICAgcHVibGljIF9tYXJrZXJEYXRhOiBUIHwgbnVsbCA9IG51bGw7XG4gICAgcHVibGljIG1hcERyb3Bkb3duU3ZnUm91dGVzID0gTWFwRHJvcGRvd25TdmdSb3V0ZXM7XG4gICAgcHVibGljIGVNYXBEcm9wZG93blN0cmluZ0VudW0gPSBFTWFwRHJvcGRvd25TdHJpbmdFbnVtO1xuXG4gICAgcHVibGljIHNob3dIaWRkZW5EYXRhKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLnByZXZlbnRFdmVudFByb3BhZ2F0aW9uKGV2ZW50LCB0cnVlKTtcblxuICAgICAgICB0aGlzLmlzSGlkZGVuID0gIXRoaXMuaXNIaWRkZW47XG4gICAgfVxuXG4gICAgcHVibGljIGNhbGxCb2R5QWN0aW9uKGFjdGlvbjogSURyb3BEb3duQWN0aW9ucyk6IHZvaWQge1xuICAgICAgICB0aGlzLmJvZHlBY3Rpb25zLmVtaXQoYWN0aW9uKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2x1c3Rlckl0ZW1DbGljayhpdGVtOiBNYXBEcm9wZG93bkNsdXN0ZXJJdGVtKTogdm9pZCB7XG4gICAgICAgIGlmIChpdGVtPy5pZCkgdGhpcy5vbkNsdXN0ZXJJdGVtQ2xpY2s/LmVtaXQoaXRlbS5pZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGJhY2tCdXR0b25DbGljayhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wcmV2ZW50RXZlbnRQcm9wYWdhdGlvbihldmVudCk7XG5cbiAgICAgICAgdGhpcy5vbkJhY2tCdXR0b25DbGljay5lbWl0KCk7XG4gICAgfVxuXG4gICAgcHVibGljIHNob3dBbGxEYXlzQ2xpY2soKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNTaG93QWxsRGF5c0FjdGl2ZSA9ICF0aGlzLmlzU2hvd0FsbERheXNBY3RpdmU7XG4gICAgfVxuXG4gICAgcHVibGljIG9uQ2x1c3Rlckxpc3RTY3JvbGwoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJldmVudEV2ZW50UHJvcGFnYXRpb24oZXZlbnQpO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMuaW5mb1dpbmRvd0NvbnRlbnQ/LmNsdXN0ZXJEYXRhICYmXG4gICAgICAgICAgICB0aGlzLmluZm9XaW5kb3dDb250ZW50Py5jbHVzdGVyRGF0YT8ubGVuZ3RoID49IDI1XG4gICAgICAgICkge1xuICAgICAgICAgICAgY29uc3Qgc2Nyb2xsRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICAgICAgICAgJy5jbHVzdGVyLW1hcmtlci1jb250YWluZXInXG4gICAgICAgICAgICApIGFzIEhUTUxFbGVtZW50O1xuXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgc2Nyb2xsRWxlbWVudD8ub2Zmc2V0SGVpZ2h0ICsgc2Nyb2xsRWxlbWVudD8uc2Nyb2xsVG9wID49XG4gICAgICAgICAgICAgICAgc2Nyb2xsRWxlbWVudD8uc2Nyb2xsSGVpZ2h0IC0gMTA1XG4gICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgdGhpcy5vbkNsdXN0ZXJMaXN0U2Nyb2xsVG9FbmQuZW1pdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHByZXZlbnRFdmVudFByb3BhZ2F0aW9uKFxuICAgICAgICBldmVudDogRXZlbnQsXG4gICAgICAgIHByZXZlbnREZWZhdWx0PzogYm9vbGVhblxuICAgICk6IHZvaWQge1xuICAgICAgICBpZiAocHJldmVudERlZmF1bHQpIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cbn1cbiIsIkBpZiAoaW5mb1dpbmRvd0NvbnRlbnQ/LmNsdXN0ZXJEYXRhKSB7XG4gICAgQGlmIChpbmZvV2luZG93Q29udGVudD8uc2VsZWN0ZWRDbHVzdGVySXRlbURhdGEpIHtcbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJtYXJrZXItY29udGFpbmVyIHJlbGF0aXZlXCJcbiAgICAgICAgICAgIFtjbGFzcy5leHBhbmRlZF09XCIhaXNIaWRkZW5cIlxuICAgICAgICAgICAgKGNsaWNrKT1cInByZXZlbnRFdmVudFByb3BhZ2F0aW9uKCRldmVudCwgdHJ1ZSlcIlxuICAgICAgICAgICAgKG1vdXNld2hlZWwpPVwicHJldmVudEV2ZW50UHJvcGFnYXRpb24oJGV2ZW50KVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIEBmb3IgKFxuICAgICAgICAgICAgICAgIGl0ZW0gb2YgaW5mb1dpbmRvd0NvbnRlbnQ/LnNlbGVjdGVkQ2x1c3Rlckl0ZW1EYXRhLm1haW5Db250ZW50O1xuICAgICAgICAgICAgICAgIGxldCBpID0gJGluZGV4O1xuICAgICAgICAgICAgICAgIHRyYWNrIGlcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRyb3Bkb3duQ29udGVudFRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGl0ZW0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogaW5mb1dpbmRvd0NvbnRlbnQ/LnNlbGVjdGVkQ2x1c3Rlckl0ZW1EYXRhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5kYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4cGFuZGVkLWluZm9cIiBbY2xhc3MuYWN0aXZlXT1cIiFpc0hpZGRlblwiPlxuICAgICAgICAgICAgICAgIEBmb3IgKFxuICAgICAgICAgICAgICAgICAgICBpdGVtIG9mIGluZm9XaW5kb3dDb250ZW50Py5zZWxlY3RlZENsdXN0ZXJJdGVtRGF0YVxuICAgICAgICAgICAgICAgICAgICAgICAgLmV4cGFuZGVkQ29udGVudDtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGkgPSAkaW5kZXg7XG4gICAgICAgICAgICAgICAgICAgIHRyYWNrIGlcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcm9wZG93bkNvbnRlbnRUZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGl0ZW0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IGluZm9XaW5kb3dDb250ZW50Py5zZWxlY3RlZENsdXN0ZXJJdGVtRGF0YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJkcm9wZG93bi1hcnJvdyBhbGlnbi1zZWxmLWVuZFwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLnJvdGF0ZS1hcnJvd109XCIhaXNIaWRkZW5cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzdmctaWNvblxuICAgICAgICAgICAgICAgICAgICBbc3JjXT1cIm1hcERyb3Bkb3duU3ZnUm91dGVzLmNvcm5lckRvd25BcnJvd1JvdXRlXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNob3dIaWRkZW5EYXRhKCRldmVudClcIlxuICAgICAgICAgICAgICAgID48L3N2Zy1pY29uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIH0gQGVsc2Uge1xuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImNsdXN0ZXItbWFya2VyLWNvbnRhaW5lciBkLWZsZXggZmxleC1jb2x1bW4gZ2FwLTFcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInByZXZlbnRFdmVudFByb3BhZ2F0aW9uKCRldmVudCwgdHJ1ZSlcIlxuICAgICAgICAgICAgKG1vdXNld2hlZWwpPVwib25DbHVzdGVyTGlzdFNjcm9sbCgkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgQGZvciAoXG4gICAgICAgICAgICAgICAgaXRlbSBvZiBpbmZvV2luZG93Q29udGVudD8uY2x1c3RlckRhdGE7XG4gICAgICAgICAgICAgICAgbGV0IGkgPSAkaW5kZXg7XG4gICAgICAgICAgICAgICAgdHJhY2sgaVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2x1c3RlckNvbnRlbnRUZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBpdGVtLFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgfVxufSBAZWxzZSB7XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cIm1hcmtlci1jb250YWluZXIgcmVsYXRpdmVcIlxuICAgICAgICBbY2xhc3MuZXhwYW5kZWRdPVwiIWlzSGlkZGVuXCJcbiAgICAgICAgKGNsaWNrKT1cInByZXZlbnRFdmVudFByb3BhZ2F0aW9uKCRldmVudCwgdHJ1ZSlcIlxuICAgICAgICAobW91c2V3aGVlbCk9XCJwcmV2ZW50RXZlbnRQcm9wYWdhdGlvbigkZXZlbnQpXCJcbiAgICA+XG4gICAgICAgIEBmb3IgKGl0ZW0gb2YgaW5mb1dpbmRvd0NvbnRlbnQ/Lm1haW5Db250ZW50OyBsZXQgaSA9ICRpbmRleDsgdHJhY2sgaSkge1xuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgIGRyb3Bkb3duQ29udGVudFRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBpdGVtLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogX21hcmtlckRhdGEsXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICB9XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImV4cGFuZGVkLWluZm9cIiBbY2xhc3MuYWN0aXZlXT1cIiFpc0hpZGRlblwiPlxuICAgICAgICAgICAgQGZvciAoXG4gICAgICAgICAgICAgICAgaXRlbSBvZiBpbmZvV2luZG93Q29udGVudD8uZXhwYW5kZWRDb250ZW50O1xuICAgICAgICAgICAgICAgIGxldCBpID0gJGluZGV4O1xuICAgICAgICAgICAgICAgIHRyYWNrIGlcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRyb3Bkb3duQ29udGVudFRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGl0ZW0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogX21hcmtlckRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImRyb3Bkb3duLWFycm93IGFsaWduLXNlbGYtZW5kXCJcbiAgICAgICAgICAgIFtjbGFzcy5yb3RhdGUtYXJyb3ddPVwiIWlzSGlkZGVuXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPHN2Zy1pY29uXG4gICAgICAgICAgICAgICAgW3NyY109XCJtYXBEcm9wZG93blN2Z1JvdXRlcy5jb3JuZXJEb3duQXJyb3dSb3V0ZVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInNob3dIaWRkZW5EYXRhKCRldmVudClcIlxuICAgICAgICAgICAgPjwvc3ZnLWljb24+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxufVxuXG48bmctdGVtcGxhdGUgI2NsdXN0ZXJDb250ZW50VGVtcGxhdGUgbGV0LWNvbnRlbnQ9XCJjb250ZW50XCI+XG4gICAgQGxldCBpdGVtID0gY29udGVudCB8IG1hcERyb3Bkb3duQ2x1c3RlckNvbnRlbnRUeXBlO1xuICAgIEBpZiAoaXRlbSkge1xuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4gY2x1c3Rlci1tYXJrZXItaXRlbVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY2x1c3Rlckl0ZW1DbGljayhpdGVtKVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTFcIlxuICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgICAgICAgICAgICAgJ21heC13aWR0aCc6IGl0ZW0uZmF2b3VyaXRlID8gJ2NhbGMoMTAwJSAtIDE4cHgpJyA6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBAaWYgKGl0ZW0uaXNDbG9zZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgPHN2Zy1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cIm1hcERyb3Bkb3duU3ZnUm91dGVzLnBlcm1hbmVudGx5Q2xvc2VkUm91dGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3N2Z1N0eWxlXT1cInsgJ3dpZHRoLnB4JzogMTgsICdoZWlnaHQucHgnOiAxOCB9XCJcbiAgICAgICAgICAgICAgICAgICAgPjwvc3ZnLWljb24+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyZWd1bGFyLXRleHQgZGFyay1ncmF5LXRleHQgdXBwZXJjYXNlIHRleHQtZWxsaXBzaXNcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5uYW1lIH19XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIEBpZiAoaXRlbS5mYXZvdXJpdGUpIHtcbiAgICAgICAgICAgICAgICA8c3ZnLWljb25cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXhcIlxuICAgICAgICAgICAgICAgICAgICBbc3JjXT1cIm1hcERyb3Bkb3duU3ZnUm91dGVzLmZhdm9yaXRlUm91dGVcIlxuICAgICAgICAgICAgICAgICAgICBbc3ZnU3R5bGVdPVwieyAnd2lkdGgucHgnOiAxOCwgJ2hlaWdodC5weCc6IDE4IH1cIlxuICAgICAgICAgICAgICAgID48L3N2Zy1pY29uPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICB9XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2Ryb3Bkb3duQ29udGVudFRlbXBsYXRlIGxldC1jb250ZW50PVwiY29udGVudFwiIGxldC1kYXRhPVwiZGF0YVwiPlxuICAgIEBsZXQgaXRlbSA9IGNvbnRlbnQgfCBtYXBEcm9wZG93bkNvbnRlbnRUeXBlO1xuICAgIEBpZiAoaXRlbSkge1xuICAgICAgICBAaWYgKCFpdGVtLnNpZGVCeVNpZGVJbmZvKSB7XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgZHJvcGRvd25Db250ZW50SXRlbVRlbXBsYXRlcztcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogaXRlbSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IGRhdGEsXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDwhLS0gU2lkZSBieSBTaWRlIERhdGEgLS0+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgIDwhLS0gTGVmdCBTaWRlIC0tPlxuICAgICAgICAgICAgICAgIEBpZiAoaXRlbS5zaWRlQnlTaWRlSW5mby5sZWZ0U2lkZSkge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJvcGRvd25Db250ZW50SXRlbVRlbXBsYXRlcztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogaXRlbS5zaWRlQnlTaWRlSW5mbz8ubGVmdFNpZGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBkYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICA8IS0tIFJpZ2h0IFNpZGUgLS0+XG4gICAgICAgICAgICAgICAgQGlmIChpdGVtLnNpZGVCeVNpZGVJbmZvLnJpZ2h0U2lkZSkge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJvcGRvd25Db250ZW50SXRlbVRlbXBsYXRlcztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogaXRlbS5zaWRlQnlTaWRlSW5mbz8ucmlnaHRTaWRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICB9XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGVcbiAgICAjZHJvcGRvd25Db250ZW50SXRlbVRlbXBsYXRlc1xuICAgIGxldC1jb250ZW50PVwiY29udGVudFwiXG4gICAgbGV0LWRhdGE9XCJkYXRhXCJcbj5cbiAgICBAbGV0IGl0ZW0gPSBjb250ZW50IHwgbWFwRHJvcGRvd25Db250ZW50VHlwZTtcbiAgICBAaWYgKGl0ZW0pIHtcbiAgICAgICAgQHN3aXRjaCAoaXRlbT8udGVtcGxhdGUpIHtcbiAgICAgICAgICAgIEBjYXNlIChlTWFwRHJvcGRvd25TdHJpbmdFbnVtLkhFQURFUl9USVRMRSkge1xuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJoZWFkaW5nIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIge3tcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uY3VzdG9tQ2xhc3NDb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgfX1cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJoZWFkZXItdGV4dC1jb250YWluZXIgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMSB3LTEwMFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaXRlbS5oYXNCYWNrQnV0dG9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImhlYWRlci1iYWNrLWJ1dHRvbiBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYmFja0J1dHRvbkNsaWNrKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2Zy1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cIm1hcERyb3Bkb3duU3ZnUm91dGVzLmJhY2tCdXR0b25Sb3V0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3ZnU3R5bGVdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd3aWR0aC5weCc6IDE0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdoZWlnaHQucHgnOiAxNCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaGVhZGVyIGNhLWZvbnQtZXh0cmEtYm9sZCBkYXJrLWdyYXktdGV4dCB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmN1c3RvbUNsYXNzVGV4dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBkYXRhW2l0ZW0uZmllbGRdIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImRyb3Bkb3duLWljb25cIj48L2Rpdj4gLS0+XG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPGFwcC1jYS1kZXRhaWxzLWRyb3Bkb3duXG4gICAgICAgICAgICAgICAgICAgICAgICAjZGV0YWlsc0Ryb3Bkb3duXG4gICAgICAgICAgICAgICAgICAgICAgICBbb3B0aW9uc109XCJkYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZW1lbnRdPVwiJ3JpZ2h0LXRvcCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cIml0ZW0/LmlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhXT1cIml0ZW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2N1c3RvbUNsYXNzRHJvcERvd25dPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21hcC1saXN0LWNhcmQtZHJvcGRvd24gbWFya2VyLWRyb3Bkb3duLXBvcG92ZXInXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGRyb3BEb3duQWN0aW9ucyk9XCJjYWxsQm9keUFjdGlvbigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvYXBwLWNhLWRldGFpbHMtZHJvcGRvd24+IC0tPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA8IS0tIFJhdGluZyBSZXZpZXcgLS0+XG4gICAgICAgICAgICBAY2FzZSAoZU1hcERyb3Bkb3duU3RyaW5nRW51bS5SQVRJTkdfUkVWSUVXKSB7XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQgYWxpZ24taXRlbXMtY2VudGVyIGFsaWduLWNvbnRlbnQtY2VudGVyIGdhcC0zIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmN1c3RvbUNsYXNzQ29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgIH19XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1zdGFydCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLm9wYWNpdHktNDBdPVwiIWRhdGFbaXRlbS5maWVsZF0ubGlrZUNvdW50XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2Zy1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyYXRpbmctaWNvbiBsaWtlLWljb24gZC1mbGV4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImRhdGFbaXRlbS5maWVsZF0uaGFzTGlrZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwibWFwRHJvcGRvd25TdmdSb3V0ZXMubGlrZVJvdXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3ZnU3R5bGVdPVwieyAnd2lkdGgucHgnOiAxNCwgJ2hlaWdodC5weCc6IDE0IH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvc3ZnLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic21hbGwtdGV4dCBkYXJrLWdyYXktdGV4dCBjYS1mb250LXNlbWktYm9sZCB1c2VyLXNlbGVjdC1ub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+e3sgZGF0YVtpdGVtLmZpZWxkXS5saWtlQ291bnQgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1zdGFydCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLm9wYWNpdHktNDBdPVwiIWRhdGFbaXRlbS5maWVsZF0uZGlzbGlrZUNvdW50XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2Zy1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyYXRpbmctaWNvbiBkaXNsaWtlLWljb24gZC1mbGV4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImRhdGFbaXRlbS5maWVsZF0uaGFzRGlzbGlrZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJtYXBEcm9wZG93blN2Z1JvdXRlcy5kaXNsaWtlUm91dGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdmdTdHlsZV09XCJ7ICd3aWR0aC5weCc6IDE0LCAnaGVpZ2h0LnB4JzogMTQgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9zdmctaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzbWFsbC10ZXh0IGRhcmstZ3JheS10ZXh0IGNhLWZvbnQtc2VtaS1ib2xkIHVzZXItc2VsZWN0LW5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID57eyBkYXRhW2l0ZW0uZmllbGRdLmRpc2xpa2VDb3VudCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LXN0YXJ0IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3Mub3BhY2l0eS00MF09XCIhZGF0YVtpdGVtLmZpZWxkXS5yZXZpZXdDb3VudFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmctaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicmF0aW5nLWljb24gcmV2aWV3LWljb24gZC1mbGV4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cIm1hcERyb3Bkb3duU3ZnUm91dGVzLnJldmlld1JvdXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3ZnU3R5bGVdPVwieyAnd2lkdGgucHgnOiAxNCwgJ2hlaWdodC5weCc6IDE0IH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvc3ZnLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic21hbGwtdGV4dCBkYXJrLWdyYXktdGV4dCBjYS1mb250LXNlbWktYm9sZCB1c2VyLXNlbGVjdC1ub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+e3sgZGF0YVtpdGVtLmZpZWxkXS5yZXZpZXdDb3VudCA/PyAwIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA8IS0tIEJvcmRlciBEaXZpZGVyIC0tPlxuICAgICAgICAgICAgQGNhc2UgKGVNYXBEcm9wZG93blN0cmluZ0VudW0uRElWSURFUikge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbmZvLWRpdmlkZXJcIj48L2Rpdj5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPCEtLSBSZXBhaXIgU2hvcCBTZXJ2aWNlcyAtLT5cbiAgICAgICAgICAgIEBjYXNlIChlTWFwRHJvcGRvd25TdHJpbmdFbnVtLlJFUEFJUl9TSE9QX1NFUlZJQ0VTKSB7XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4ge3tcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uY3VzdG9tQ2xhc3NDb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgfX1cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgQGZvciAoXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXJ2aWNlIG9mIGRhdGFbaXRlbS5maWVsZF07XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgaSA9ICRpbmRleDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrIGlcbiAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5nYlRvb2x0aXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdG9vbHRpcEJhY2tncm91bmRdPVwiJyM0MjQyNDInXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWFpbkNhVG9vbHRpcF09XCJzZXJ2aWNlLnNlcnZpY2VUeXBlLm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uPVwiYm90dG9tXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnLWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyZXBhaXItc2VydmljZS1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJzZXJ2aWNlLmFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2aWNlLmxvZ29OYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBjYVN2ZzogJ2NvbW1vbicgOiAncmVwYWlyLXNlcnZpY2VzJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3ZnU3R5bGVdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3dpZHRoLnB4JzogMTgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaGVpZ2h0LnB4JzogMTgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3N2Zy1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPCEtLSBJY29uIGFuZCBUZXh0IC0tPlxuICAgICAgICAgICAgQGNhc2UgKGVNYXBEcm9wZG93blN0cmluZ0VudW0uSUNPTl9URVhUKSB7XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1zdGFydCBnYXAtMSB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5jdXN0b21DbGFzc0NvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICB9fVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKGl0ZW0udXJsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmdiVG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0b29sdGlwQmFja2dyb3VuZF09XCInIzQyNDI0MidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYWluQ2FUb29sdGlwXT1cIml0ZW0uaWNvblRvb2x0aXBUZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbj1cImJvdHRvbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVUb29sdGlwXT1cIiFpdGVtLmljb25Ub29sdGlwVGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2Zy1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJpdGVtLnVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdmdTdHlsZV09XCJ7ICd3aWR0aC5weCc6IDE4LCAnaGVpZ2h0LnB4JzogMTggfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvc3ZnLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyZWd1bGFyLXRleHQgZGFyay1ncmF5LXRleHQge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmN1c3RvbUNsYXNzVGV4dFxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBkYXRhW2l0ZW0uZmllbGRdIH19XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPCEtLSBUaXRsZSAtLT5cbiAgICAgICAgICAgIEBjYXNlIChlTWFwRHJvcGRvd25TdHJpbmdFbnVtLlRJVExFKSB7XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInJlZ3VsYXItdGV4dCBkYXJrLWdyYXktdGV4dCBjYS1mb250LWV4dHJhLWJvbGQge3tcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uY3VzdG9tQ2xhc3NUZXh0XG4gICAgICAgICAgICAgICAgICAgIH19XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7IGRhdGFbaXRlbS5maWVsZF0gfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPCEtLSBUaXRsZSBhbmQgQ291bnQgLS0+XG4gICAgICAgICAgICBAY2FzZSAoZU1hcERyb3Bkb3duU3RyaW5nRW51bS5USVRMRV9DT1VOVCkge1xuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0xIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmN1c3RvbUNsYXNzQ29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgIH19XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZWd1bGFyLXRleHQgZGFyay1ncmF5LXRleHQgY2EtZm9udC1leHRyYS1ib2xkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLnRpdGxlIH19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNvdW50LW51bWJlciB3aGl0ZS10ZXh0IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBjYS1mb250LWJvbGRcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBkYXRhW2l0ZW0uZmllbGRdIH19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA8IS0tIE1vbmV5IFRleHQgIC0tPlxuICAgICAgICAgICAgQGNhc2UgKGVNYXBEcm9wZG93blN0cmluZ0VudW0uTU9ORVlfVEVYVCkge1xuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0xIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmN1c3RvbUNsYXNzQ29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgIH19XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZWd1bGFyLXRleHQgY2EtZm9udC1ib2xkIGJsdWUtdGV4dFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhPy5baXRlbS5maWVsZF0gIT09ICcnID8gZGF0YVtpdGVtLmZpZWxkXSA6ICckMCdcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVndWxhci10ZXh0IGxpZ2h0LWdyYXktdGV4dCBjYS1mb250LWJvbGRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0udGl0bGUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIDwhLS0gT3BlbiBIb3VycyAtLT5cbiAgICAgICAgICAgIEBjYXNlIChlTWFwRHJvcGRvd25TdHJpbmdFbnVtLk9QRU5fSE9VUlMpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGdhcC0yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicmVndWxhci10ZXh0IGRhcmstZ3JheS10ZXh0IGNhLWZvbnQtZXh0cmEtYm9sZCB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uY3VzdG9tQ2xhc3NUZXh0XG4gICAgICAgICAgICAgICAgICAgICAgICB9fVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0udGl0bGUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvcGVuLWhvdXJzLWdyaWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVtpdGVtLmZpZWxkXT8ub3BlbkhvdXJzVG9kYXkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAhaXNTaG93QWxsRGF5c0FjdGl2ZVxuICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBmbGV4LTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzbWFsbC10ZXh0IGRhcmstZ3JheS10ZXh0IGNhLWZvbnQtYm9sZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGRhdGFbaXRlbS5maWVsZF0ub3BlbkhvdXJzVG9kYXkuc3RhdHVzIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInJlZ3VsYXItdGV4dCBkYXJrLWdyYXktdGV4dCB0ZXh0LWVsbGlwc2lzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZGF0YVtpdGVtLmZpZWxkXS5vcGVuSG91cnNUb2RheS5pbmZvIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGRhdGFbaXRlbS5maWVsZF0/Lm9wZW5Ib3Vycz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChpc1Nob3dBbGxEYXlzQWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF5IG9mIGRhdGFbaXRlbS5maWVsZF0ub3BlbkhvdXJzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGkgPSAkaW5kZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFjayBpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBmbGV4LTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic21hbGwtdGV4dCBkYXJrLWdyYXktdGV4dCBjYS1mb250LWJvbGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZGF5LmRheU9mV2VlayB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyZWd1bGFyLXRleHQgZGFyay1ncmF5LXRleHQgdGV4dC1lbGxpcHNpc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF5LnN0YXJ0VGltZSArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAtICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRheS5lbmRUaW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGZsZXgtMSBqdXN0aWZ5LWNvbnRlbnQtZW5kIHNob3ctYWxsLWRheXMtY29udGFpbmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2hvd0FsbERheXNDbGljaygpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2Zy1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcERyb3Bkb3duU3ZnUm91dGVzLmFjY2lkZW50Q2FsZW5kZXJSb3V0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N2Z1N0eWxlXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3dpZHRoLnB4JzogMTgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdoZWlnaHQucHgnOiAxOCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3N2Zy1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicmVndWxhci10ZXh0IGdyYXktdGV4dCBjdXJzb3ItcG9pbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNTaG93QWxsRGF5c0FjdGl2ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnU2hvdyB0b2RheSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJ1Nob3cgYWxsIGRheXMnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIDwhLS0gVGV4dCBhbmQgQ291bnQgLS0+XG4gICAgICAgICAgICBAY2FzZSAoZU1hcERyb3Bkb3duU3RyaW5nRW51bS5URVhUX0NPVU5UKSB7XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTEge3tcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uY3VzdG9tQ2xhc3NDb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgfX1cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlZ3VsYXItdGV4dCB7eyBpdGVtLmN1c3RvbUNsYXNzVGV4dCB9fVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS50aXRsZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyZWd1bGFyLXRleHQgY2EtZm9udC1zZW1pLWJvbGQge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmN1c3RvbUNsYXNzVGV4dFxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBkYXRhIHwgbWFwRHJvcGRvd25WYWx1ZTogaXRlbSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPCEtLSBTdWJ0aXRsZSAtLT5cbiAgICAgICAgICAgIEBjYXNlIChlTWFwRHJvcGRvd25TdHJpbmdFbnVtLlNVQlRJVExFKSB7XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInJlZ3VsYXItdGV4dCBkYXJrLWdyYXktdGV4dCBjYS1mb250LWV4dHJhLWJvbGQge3tcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uY3VzdG9tQ2xhc3NUZXh0XG4gICAgICAgICAgICAgICAgICAgIH19XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0udGl0bGUgfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPCEtLSBSZWd1bGFyIFRleHQgLS0+XG4gICAgICAgICAgICBAY2FzZSAoZU1hcERyb3Bkb3duU3RyaW5nRW51bS5URVhUKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlZ3VsYXItdGV4dCBibGFjay10ZXh0IHt7IGl0ZW0uY3VzdG9tQ2xhc3NUZXh0IH19XCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGRhdGEgfCBtYXBEcm9wZG93blZhbHVlOiBpdGVtIH19XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIDwhLS0gU21hbGwgU3VidGl0bGUgLS0+XG4gICAgICAgICAgICBAY2FzZSAoZU1hcERyb3Bkb3duU3RyaW5nRW51bS5TTUFMTF9TVUJUSVRMRSkge1xuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzbWFsbC10ZXh0IGRhcmstZ3JheS10ZXh0IHt7IGl0ZW0uY3VzdG9tQ2xhc3NUZXh0IH19XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0udGl0bGUgfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|