ca-components 1.0.77 → 1.0.78

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/esm2022/lib/components/ca-input/ca-input.component.mjs +1 -1
  2. package/esm2022/lib/components/ca-map/ca-map.component.mjs +137 -210
  3. package/esm2022/lib/components/ca-map/enums/google-map.enum.mjs +2 -1
  4. package/esm2022/lib/components/ca-map/enums/map-marker-string.enum.mjs +2 -1
  5. package/esm2022/lib/components/ca-map/models/map.model.mjs +1 -1
  6. package/esm2022/lib/components/ca-map/utils/constants/index.mjs +2 -1
  7. package/esm2022/lib/components/ca-map/utils/constants/map-marker-icons.constants.mjs +119 -0
  8. package/esm2022/lib/components/ca-map/utils/constants/map-options.constants.mjs +1 -2
  9. package/esm2022/lib/components/ca-map/utils/helpers/map-marker-icon.helper.mjs +50 -12
  10. package/esm2022/lib/components/ca-map/utils/services/index.mjs +2 -0
  11. package/esm2022/lib/components/ca-map/utils/services/map-marker-icon.service.mjs +137 -0
  12. package/esm2022/lib/components/ca-map-dropdown/ca-map-dropdown.component.mjs +25 -11
  13. package/esm2022/lib/components/ca-progress-bar/ca-progress-bar.component.mjs +15 -15
  14. package/esm2022/lib/constants/map.constant.mjs +131 -131
  15. package/esm2022/public-api.mjs +2 -1
  16. package/fesm2022/ca-components.mjs +717 -491
  17. package/fesm2022/ca-components.mjs.map +1 -1
  18. package/lib/components/ca-filters/ca-filter.component.d.ts +2 -2
  19. package/lib/components/ca-map/ca-map.component.d.ts +22 -25
  20. package/lib/components/ca-map/enums/google-map.enum.d.ts +2 -1
  21. package/lib/components/ca-map/enums/map-marker-string.enum.d.ts +2 -1
  22. package/lib/components/ca-map/models/map.model.d.ts +8 -3
  23. package/lib/components/ca-map/utils/constants/index.d.ts +1 -0
  24. package/lib/components/ca-map/utils/constants/map-marker-icons.constants.d.ts +6 -0
  25. package/lib/components/ca-map/utils/helpers/map-marker-icon.helper.d.ts +2 -0
  26. package/lib/components/ca-map/utils/services/index.d.ts +1 -0
  27. package/lib/components/ca-map/utils/services/map-marker-icon.service.d.ts +23 -0
  28. package/lib/components/ca-map-dropdown/ca-map-dropdown.component.d.ts +5 -3
  29. package/lib/components/ca-progress-bar/ca-progress-bar.component.d.ts +3 -1
  30. package/package.json +1 -1
  31. package/public-api.d.ts +1 -0
@@ -25,7 +25,9 @@ export class CaMapDropdownComponent {
25
25
  this.isShowAllDaysActive = false;
26
26
  this.data = taDetailDropdownJson.taDetailDropDown;
27
27
  }
28
- showHiddenData() {
28
+ showHiddenData(event) {
29
+ event.preventDefault();
30
+ event.stopPropagation();
29
31
  this.isHidden = !this.isHidden;
30
32
  }
31
33
  callBodyAction(action) {
@@ -38,25 +40,37 @@ export class CaMapDropdownComponent {
38
40
  if (item?.id)
39
41
  this.onClusterItemClick?.emit(item.id);
40
42
  }
41
- backButtonClick() {
43
+ backButtonClick(event) {
44
+ event.stopPropagation();
42
45
  this.onBackButtonClick.emit();
43
46
  }
44
47
  showAllDaysClick() {
45
48
  this.isShowAllDaysActive = !this.isShowAllDaysActive;
46
49
  }
47
50
  onClusterListScroll(event) {
48
- const eventTarget = event?.target;
49
- if (eventTarget?.offsetHeight + eventTarget?.scrollTop >=
50
- eventTarget?.scrollHeight)
51
- this.onClusterListScrollToEnd.emit();
51
+ this.stopMapZoom(event);
52
+ if (this.infoWindowContent?.clusterData &&
53
+ this.infoWindowContent?.clusterData?.length >= 25) {
54
+ const scrollElement = document.querySelector('.cluster-marker-container');
55
+ if (scrollElement?.offsetHeight + scrollElement?.scrollTop >=
56
+ scrollElement?.scrollHeight - 105)
57
+ this.onClusterListScrollToEnd.emit();
58
+ }
59
+ }
60
+ stopMapZoom(event) {
61
+ event.stopPropagation();
62
+ }
63
+ dropdownClick(event) {
64
+ event.preventDefault();
65
+ event.stopPropagation();
52
66
  }
53
67
  identity(index) {
54
68
  return index;
55
69
  }
56
70
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CaMapDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
57
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.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 *ngIf=\"infoWindowContent?.clusterData; else markerInfoTemplate\">\n <ng-container\n *ngIf=\"\n infoWindowContent?.selectedClusterItemData;\n else clusterDataListTemplate\n \"\n >\n <div class=\"marker-container relative\" [class.expanded]=\"!isHidden\">\n <ng-container\n *ngFor=\"\n let item of infoWindowContent?.selectedClusterItemData.mainContent;\n let i = index;\n trackBy: identity\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentTemplate;\n context: {\n content: item,\n data: infoWindowContent?.selectedClusterItemData.data\n }\n \"\n ></ng-container>\n </ng-container>\n\n <div class=\"expanded-info\" [class.active]=\"!isHidden\">\n <ng-container\n *ngFor=\"\n let item of infoWindowContent?.selectedClusterItemData\n .expandedContent;\n let i = index;\n trackBy: identity\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentTemplate;\n context: {\n content: item,\n data: infoWindowContent?.selectedClusterItemData.data\n }\n \"\n ></ng-container>\n </ng-container>\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()\"\n ></svg-icon>\n </div></div\n ></ng-container>\n\n <ng-template #clusterDataListTemplate>\n <div\n class=\"cluster-marker-container d-flex flex-column gap-1\"\n (scroll)=\"\n infoWindowContent.clusterData!.length >= 25\n ? onClusterListScroll($event)\n : null\n \"\n >\n <ng-container\n *ngFor=\"\n let item of infoWindowContent.clusterData;\n let i = index;\n trackBy: identity\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n clusterContentTemplate;\n context: {\n content: item,\n }\n \"\n ></ng-container>\n </ng-container>\n </div>\n </ng-template>\n </ng-container>\n\n <ng-template #markerInfoTemplate>\n <div class=\"marker-container relative\" [class.expanded]=\"!isHidden\">\n <ng-container\n *ngFor=\"\n let item of infoWindowContent.mainContent;\n let i = index;\n trackBy: identity\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentTemplate;\n context: {\n content: item,\n data: markerData\n }\n \"\n ></ng-container>\n </ng-container>\n\n <div class=\"expanded-info\" [class.active]=\"!isHidden\">\n <ng-container\n *ngFor=\"\n let item of infoWindowContent.expandedContent;\n let i = index;\n trackBy: identity\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentTemplate;\n context: {\n content: item,\n data: markerData\n }\n \"\n ></ng-container>\n </ng-container>\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()\"\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 class=\"regular-text dark-gray-text uppercase text-ellipsis\">\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()\"\n >\n <svg-icon\n class=\"d-flex\"\n [src]=\"getSvgPath('backButtonRoute')\"\n [svgStyle]=\"{ 'width.px': 14, 'height.px': 14 }\"\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 <ng-container *ngFor=\"let service of data[item.field]\">\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]=\"service.logoName | caSvg : 'common' : 'repair-services'\"\n [svgStyle]=\"{ 'width.px': 18, 'height.px': 18 }\"\n ></svg-icon>\n </div>\n </ng-container>\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 {{ item.customClassContainer }}\"\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 class=\"regular-text dark-gray-text {{ item.customClassText }}\">\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 {{ data?.[item.field] !== '' ? data[item.field] : '$0' }}\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=\"data[item.field]?.openHoursToday && !isShowAllDaysActive\"\n >\n <div class=\"d-flex flex-column flex-1\">\n <div class=\"small-text dark-gray-text ca-font-bold\">\n {{ data[item.field].openHoursToday.status }}\n </div>\n <div class=\"regular-text dark-gray-text text-ellipsis\">\n {{ data[item.field].openHoursToday.info }}\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"data[item.field]?.openHours?.length\">\n <ng-container *ngIf=\"isShowAllDaysActive\">\n <ng-container\n *ngFor=\"\n let day of data[item.field].openHours;\n trackBy: identity\n \"\n >\n <div class=\"d-flex flex-column flex-1\">\n <div class=\"small-text dark-gray-text ca-font-bold\">\n {{ day.dayOfWeek }}\n </div>\n <div class=\"regular-text dark-gray-text text-ellipsis\">\n {{ day.startTime + ' - ' + day.endTime }}\n </div>\n </div>\n </ng-container>\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]=\"getSvgPath('accidentCalenderRoute')\"\n [svgStyle]=\"{ 'width.px': 18, 'height.px': 18 }\"\n ></svg-icon>\n <div class=\"regular-text gray-text cursor-pointer\">\n {{ isShowAllDaysActive ? 'Show today' : 'Show all days' }}\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 {{ item.customClassText }}\"\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 class=\"small-text dark-gray-text {{ item.customClassText }}\">\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}.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}.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: "<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:
58
72
  //modules
59
- CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { 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:
73
+ CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { 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:
60
74
  // components
61
75
  CaAppTooltipV2Component, selector: "mainCaTooltip, [mainCaTooltip]", inputs: ["mainCaTooltip", "position", "openTooltipDelay", "tooltipBackground", "tooltipColor", "tooltipTextAlign", "tooltipMarginTop", "disableTooltip"] }, { kind: "pipe", type:
62
76
  // pipes
@@ -75,8 +89,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
75
89
  CaSvgPipe,
76
90
  MapDropdownContentPipe,
77
91
  MapDropdownClusterContentPipe,
78
- MapDropdownValuePipe
79
- ], providers: [SvgIconRegistryService], template: "<ng-container *ngIf=\"infoWindowContent\">\n <ng-container *ngIf=\"infoWindowContent?.clusterData; else markerInfoTemplate\">\n <ng-container\n *ngIf=\"\n infoWindowContent?.selectedClusterItemData;\n else clusterDataListTemplate\n \"\n >\n <div class=\"marker-container relative\" [class.expanded]=\"!isHidden\">\n <ng-container\n *ngFor=\"\n let item of infoWindowContent?.selectedClusterItemData.mainContent;\n let i = index;\n trackBy: identity\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentTemplate;\n context: {\n content: item,\n data: infoWindowContent?.selectedClusterItemData.data\n }\n \"\n ></ng-container>\n </ng-container>\n\n <div class=\"expanded-info\" [class.active]=\"!isHidden\">\n <ng-container\n *ngFor=\"\n let item of infoWindowContent?.selectedClusterItemData\n .expandedContent;\n let i = index;\n trackBy: identity\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentTemplate;\n context: {\n content: item,\n data: infoWindowContent?.selectedClusterItemData.data\n }\n \"\n ></ng-container>\n </ng-container>\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()\"\n ></svg-icon>\n </div></div\n ></ng-container>\n\n <ng-template #clusterDataListTemplate>\n <div\n class=\"cluster-marker-container d-flex flex-column gap-1\"\n (scroll)=\"\n infoWindowContent.clusterData!.length >= 25\n ? onClusterListScroll($event)\n : null\n \"\n >\n <ng-container\n *ngFor=\"\n let item of infoWindowContent.clusterData;\n let i = index;\n trackBy: identity\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n clusterContentTemplate;\n context: {\n content: item,\n }\n \"\n ></ng-container>\n </ng-container>\n </div>\n </ng-template>\n </ng-container>\n\n <ng-template #markerInfoTemplate>\n <div class=\"marker-container relative\" [class.expanded]=\"!isHidden\">\n <ng-container\n *ngFor=\"\n let item of infoWindowContent.mainContent;\n let i = index;\n trackBy: identity\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentTemplate;\n context: {\n content: item,\n data: markerData\n }\n \"\n ></ng-container>\n </ng-container>\n\n <div class=\"expanded-info\" [class.active]=\"!isHidden\">\n <ng-container\n *ngFor=\"\n let item of infoWindowContent.expandedContent;\n let i = index;\n trackBy: identity\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentTemplate;\n context: {\n content: item,\n data: markerData\n }\n \"\n ></ng-container>\n </ng-container>\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()\"\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 class=\"regular-text dark-gray-text uppercase text-ellipsis\">\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()\"\n >\n <svg-icon\n class=\"d-flex\"\n [src]=\"getSvgPath('backButtonRoute')\"\n [svgStyle]=\"{ 'width.px': 14, 'height.px': 14 }\"\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 <ng-container *ngFor=\"let service of data[item.field]\">\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]=\"service.logoName | caSvg : 'common' : 'repair-services'\"\n [svgStyle]=\"{ 'width.px': 18, 'height.px': 18 }\"\n ></svg-icon>\n </div>\n </ng-container>\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 {{ item.customClassContainer }}\"\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 class=\"regular-text dark-gray-text {{ item.customClassText }}\">\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 {{ data?.[item.field] !== '' ? data[item.field] : '$0' }}\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=\"data[item.field]?.openHoursToday && !isShowAllDaysActive\"\n >\n <div class=\"d-flex flex-column flex-1\">\n <div class=\"small-text dark-gray-text ca-font-bold\">\n {{ data[item.field].openHoursToday.status }}\n </div>\n <div class=\"regular-text dark-gray-text text-ellipsis\">\n {{ data[item.field].openHoursToday.info }}\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"data[item.field]?.openHours?.length\">\n <ng-container *ngIf=\"isShowAllDaysActive\">\n <ng-container\n *ngFor=\"\n let day of data[item.field].openHours;\n trackBy: identity\n \"\n >\n <div class=\"d-flex flex-column flex-1\">\n <div class=\"small-text dark-gray-text ca-font-bold\">\n {{ day.dayOfWeek }}\n </div>\n <div class=\"regular-text dark-gray-text text-ellipsis\">\n {{ day.startTime + ' - ' + day.endTime }}\n </div>\n </div>\n </ng-container>\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]=\"getSvgPath('accidentCalenderRoute')\"\n [svgStyle]=\"{ 'width.px': 18, 'height.px': 18 }\"\n ></svg-icon>\n <div class=\"regular-text gray-text cursor-pointer\">\n {{ isShowAllDaysActive ? 'Show today' : 'Show all days' }}\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 {{ item.customClassText }}\"\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 class=\"small-text dark-gray-text {{ item.customClassText }}\">\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}.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}.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"] }]
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"] }]
80
94
  }], propDecorators: { infoWindowContent: [{
81
95
  type: Input
82
96
  }], markerData: [{
@@ -90,4 +104,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
90
104
  }], bodyActions: [{
91
105
  type: Output
92
106
  }] } });
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtbWFwLWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLW1hcC1kcm9wZG93bi9jYS1tYXAtZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtbWFwLWRyb3Bkb3duL2NhLW1hcC1kcm9wZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZFLFFBQVE7QUFDUixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXhELFlBQVk7QUFDWixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUUzRixNQUFNO0FBQ04sT0FBTyxvQkFBb0IsTUFBTSw4Q0FBOEMsQ0FBQztBQUVoRixZQUFZO0FBQ1osT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFTbkcsUUFBUTtBQUNSLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLDZCQUE2QixFQUM3QixvQkFBb0IsR0FDckIsTUFBTSxTQUFTLENBQUM7Ozs7QUFzQmpCLE1BQU0sT0FBTyxzQkFBc0I7SUFwQm5DO1FBdUJZLHVCQUFrQixHQUF5QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzlELDZCQUF3QixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDOUMsc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN2QyxnQkFBVyxHQUFtQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3BFLGFBQVEsR0FBWSxJQUFJLENBQUM7UUFDekIsd0JBQW1CLEdBQVksS0FBSyxDQUFDO1FBQ3JDLFNBQUksR0FBbUIsb0JBQW9CLENBQUMsZ0JBQWdCLENBQUM7S0F1Q3JFO0lBckNRLGNBQWM7UUFDbkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDakMsQ0FBQztJQUVNLGNBQWMsQ0FBQyxNQUF3QjtRQUM1QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRU0sVUFBVSxDQUFDLFlBQStDO1FBQy9ELE9BQU8sb0JBQW9CLENBQUMsWUFBWSxDQUFXLENBQUM7SUFDdEQsQ0FBQztJQUVNLGdCQUFnQixDQUFDLElBQTRCO1FBQ2xELElBQUksSUFBSSxFQUFFLEVBQUU7WUFBRSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRU0sZUFBZTtRQUNwQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVNLGdCQUFnQjtRQUNyQixJQUFJLENBQUMsbUJBQW1CLEdBQUcsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDdkQsQ0FBQztJQUVNLG1CQUFtQixDQUFDLEtBQVk7UUFDckMsTUFBTSxXQUFXLEdBQUcsS0FBSyxFQUFFLE1BQXFCLENBQUM7UUFFakQsSUFDRSxXQUFXLEVBQUUsWUFBWSxHQUFHLFdBQVcsRUFBRSxTQUFTO1lBQ2xELFdBQVcsRUFBRSxZQUFZO1lBRXpCLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRU0sUUFBUSxDQUFDLEtBQWE7UUFDM0IsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOytHQS9DVSxzQkFBc0I7bUdBQXRCLHNCQUFzQixpVUFGdEIsQ0FBQyxzQkFBc0IsQ0FBQywwQkNqRHJDLCszakJBa2lCQTtnQkQvZkksU0FBUztnQkFDVCxZQUFZLHVyQkFDWixvQkFBb0IsaU9BQ3BCLFVBQVU7Z0JBQ1YsYUFBYTtnQkFDYix1QkFBdUI7Z0JBQ3ZCLFFBQVE7Z0JBQ1IsU0FBUyx5Q0FDVCxzQkFBc0IsMERBQ3RCLDZCQUE2QixpRUFDN0Isb0JBQW9COzs0RkFNWCxzQkFBc0I7a0JBcEJsQyxTQUFTOytCQUNFLHFCQUFxQixjQUNuQixJQUFJLFdBQ1A7d0JBQ1AsU0FBUzt3QkFDVCxZQUFZO3dCQUNaLG9CQUFvQjt3QkFDcEIsVUFBVTt3QkFDVixhQUFhO3dCQUNiLHVCQUF1Qjt3QkFDdkIsUUFBUTt3QkFDUixTQUFTO3dCQUNULHNCQUFzQjt3QkFDdEIsNkJBQTZCO3dCQUM3QixvQkFBb0I7cUJBQ3ZCLGFBR1ksQ0FBQyxzQkFBc0IsQ0FBQzs4QkFHMUIsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0ksa0JBQWtCO3NCQUEzQixNQUFNO2dCQUNHLHdCQUF3QjtzQkFBakMsTUFBTTtnQkFDRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8vTW9kdWxlXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQW5ndWxhclN2Z0ljb25Nb2R1bGUsIFN2Z0ljb25SZWdpc3RyeVNlcnZpY2UgfSBmcm9tICdhbmd1bGFyLXN2Zy1pY29uJztcbmltcG9ydCB7IE5nYlRvb2x0aXAgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5cbi8vQ29tcG9uZW50c1xuaW1wb3J0IHsgQ2FBcHBUb29sdGlwVjJDb21wb25lbnQgfSBmcm9tICcuLi9jYS1hcHAtdG9vbHRpcC12Mi9jYS1hcHAtdG9vbHRpcC12Mi5jb21wb25lbnQnO1xuXG4vL2pzb25cbmltcG9ydCB0YURldGFpbERyb3Bkb3duSnNvbiBmcm9tICcuLi8uLi8uLi9hc3NldHMvanNvbi90YS1kZXRhaWwtZHJvcGRvd24uanNvbic7XG5cbi8vc3ZnLXJvdXRlc1xuaW1wb3J0IHsgTWFwRHJvcGRvd25TdmdSb3V0ZXMgfSBmcm9tICcuLi9jYS1tYXAtZHJvcGRvd24vdXRpbHMvc3ZnLXJvdXRlcy9tYXAtZHJvcGRvd24tc3ZnLXJvdXRlcyc7XG5cbi8vbW9kZWxzXG5pbXBvcnQge1xuICBEcm9wRG93bkRhdGEsXG4gIElEcm9wRG93bkFjdGlvbnMsXG59IGZyb20gJy4uL2NhLWRldGFpbHMtZHJvcGRvd24vbW9kZWxzL2RldGFpbC1kcm9wZG93bi5tb2RlbCc7XG5pbXBvcnQgeyBNYXBEcm9wZG93bkNsdXN0ZXJJdGVtLCBNYXBEcm9wZG93bkNvbnRlbnQgfSBmcm9tICcuL21vZGVscyc7XG5cbi8vIHBpcGVzXG5pbXBvcnQgeyBDYVN2Z1BpcGUgfSBmcm9tICcuLi8uLi9waXBlcy9jYS1zdmcucGlwZSc7XG5pbXBvcnQge1xuICBNYXBEcm9wZG93bkNvbnRlbnRQaXBlLFxuICBNYXBEcm9wZG93bkNsdXN0ZXJDb250ZW50UGlwZSxcbiAgTWFwRHJvcGRvd25WYWx1ZVBpcGUsXG59IGZyb20gJy4vcGlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtY2EtbWFwLWRyb3Bkb3duJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIC8vbW9kdWxlc1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBBbmd1bGFyU3ZnSWNvbk1vZHVsZSxcbiAgICBOZ2JUb29sdGlwLFxuICAgIC8vIGNvbXBvbmVudHNcbiAgICBDYUFwcFRvb2x0aXBWMkNvbXBvbmVudCxcbiAgICAvLyBwaXBlc1xuICAgIENhU3ZnUGlwZSxcbiAgICBNYXBEcm9wZG93bkNvbnRlbnRQaXBlLFxuICAgIE1hcERyb3Bkb3duQ2x1c3RlckNvbnRlbnRQaXBlLFxuICAgIE1hcERyb3Bkb3duVmFsdWVQaXBlXG5dLFxuICB0ZW1wbGF0ZVVybDogJy4vY2EtbWFwLWRyb3Bkb3duLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2EtbWFwLWRyb3Bkb3duLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1N2Z0ljb25SZWdpc3RyeVNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBDYU1hcERyb3Bkb3duQ29tcG9uZW50IHtcbiAgQElucHV0KCkgaW5mb1dpbmRvd0NvbnRlbnQ/OiBNYXBEcm9wZG93bkNvbnRlbnQ7XG4gIEBJbnB1dCgpIG1hcmtlckRhdGE/OiBhbnk7XG4gIEBPdXRwdXQoKSBvbkNsdXN0ZXJJdGVtQ2xpY2s6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgb25DbHVzdGVyTGlzdFNjcm9sbFRvRW5kID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgb25CYWNrQnV0dG9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBib2R5QWN0aW9uczogRXZlbnRFbWl0dGVyPElEcm9wRG93bkFjdGlvbnM+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBwdWJsaWMgaXNIaWRkZW46IGJvb2xlYW4gPSB0cnVlO1xuICBwdWJsaWMgaXNTaG93QWxsRGF5c0FjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgZGF0YTogRHJvcERvd25EYXRhW10gPSB0YURldGFpbERyb3Bkb3duSnNvbi50YURldGFpbERyb3BEb3duO1xuXG4gIHB1YmxpYyBzaG93SGlkZGVuRGF0YSgpOiB2b2lkIHtcbiAgICB0aGlzLmlzSGlkZGVuID0gIXRoaXMuaXNIaWRkZW47XG4gIH1cblxuICBwdWJsaWMgY2FsbEJvZHlBY3Rpb24oYWN0aW9uOiBJRHJvcERvd25BY3Rpb25zKTogdm9pZCB7XG4gICAgdGhpcy5ib2R5QWN0aW9ucy5lbWl0KGFjdGlvbik7XG4gIH1cblxuICBwdWJsaWMgZ2V0U3ZnUGF0aChwcm9wZXJ0eU5hbWU6IGtleW9mIHR5cGVvZiBNYXBEcm9wZG93blN2Z1JvdXRlcyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIE1hcERyb3Bkb3duU3ZnUm91dGVzW3Byb3BlcnR5TmFtZV0gYXMgc3RyaW5nO1xuICB9XG5cbiAgcHVibGljIGNsdXN0ZXJJdGVtQ2xpY2soaXRlbTogTWFwRHJvcGRvd25DbHVzdGVySXRlbSk6IHZvaWQge1xuICAgIGlmIChpdGVtPy5pZCkgdGhpcy5vbkNsdXN0ZXJJdGVtQ2xpY2s/LmVtaXQoaXRlbS5pZCk7XG4gIH1cblxuICBwdWJsaWMgYmFja0J1dHRvbkNsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMub25CYWNrQnV0dG9uQ2xpY2suZW1pdCgpO1xuICB9XG5cbiAgcHVibGljIHNob3dBbGxEYXlzQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5pc1Nob3dBbGxEYXlzQWN0aXZlID0gIXRoaXMuaXNTaG93QWxsRGF5c0FjdGl2ZTtcbiAgfVxuXG4gIHB1YmxpYyBvbkNsdXN0ZXJMaXN0U2Nyb2xsKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGV2ZW50VGFyZ2V0ID0gZXZlbnQ/LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcblxuICAgIGlmIChcbiAgICAgIGV2ZW50VGFyZ2V0Py5vZmZzZXRIZWlnaHQgKyBldmVudFRhcmdldD8uc2Nyb2xsVG9wID49XG4gICAgICBldmVudFRhcmdldD8uc2Nyb2xsSGVpZ2h0XG4gICAgKVxuICAgICAgdGhpcy5vbkNsdXN0ZXJMaXN0U2Nyb2xsVG9FbmQuZW1pdCgpO1xuICB9XG5cbiAgcHVibGljIGlkZW50aXR5KGluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgIHJldHVybiBpbmRleDtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImluZm9XaW5kb3dDb250ZW50XCI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJpbmZvV2luZG93Q29udGVudD8uY2x1c3RlckRhdGE7IGVsc2UgbWFya2VySW5mb1RlbXBsYXRlXCI+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nSWY9XCJcbiAgICAgICAgaW5mb1dpbmRvd0NvbnRlbnQ/LnNlbGVjdGVkQ2x1c3Rlckl0ZW1EYXRhO1xuICAgICAgICBlbHNlIGNsdXN0ZXJEYXRhTGlzdFRlbXBsYXRlXG4gICAgICBcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJtYXJrZXItY29udGFpbmVyIHJlbGF0aXZlXCIgW2NsYXNzLmV4cGFuZGVkXT1cIiFpc0hpZGRlblwiPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nRm9yPVwiXG4gICAgICAgICAgICBsZXQgaXRlbSBvZiBpbmZvV2luZG93Q29udGVudD8uc2VsZWN0ZWRDbHVzdGVySXRlbURhdGEubWFpbkNvbnRlbnQ7XG4gICAgICAgICAgICBsZXQgaSA9IGluZGV4O1xuICAgICAgICAgICAgdHJhY2tCeTogaWRlbnRpdHlcbiAgICAgICAgICBcIlxuICAgICAgICA+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgZHJvcGRvd25Db250ZW50VGVtcGxhdGU7XG4gICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBpdGVtLFxuICAgICAgICAgICAgICAgIGRhdGE6IGluZm9XaW5kb3dDb250ZW50Py5zZWxlY3RlZENsdXN0ZXJJdGVtRGF0YS5kYXRhXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiZXhwYW5kZWQtaW5mb1wiIFtjbGFzcy5hY3RpdmVdPVwiIWlzSGlkZGVuXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nRm9yPVwiXG4gICAgICAgICAgICAgIGxldCBpdGVtIG9mIGluZm9XaW5kb3dDb250ZW50Py5zZWxlY3RlZENsdXN0ZXJJdGVtRGF0YVxuICAgICAgICAgICAgICAgIC5leHBhbmRlZENvbnRlbnQ7XG4gICAgICAgICAgICAgIGxldCBpID0gaW5kZXg7XG4gICAgICAgICAgICAgIHRyYWNrQnk6IGlkZW50aXR5XG4gICAgICAgICAgICBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICBkcm9wZG93bkNvbnRlbnRUZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICBjb250ZW50OiBpdGVtLFxuICAgICAgICAgICAgICAgICAgZGF0YTogaW5mb1dpbmRvd0NvbnRlbnQ/LnNlbGVjdGVkQ2x1c3Rlckl0ZW1EYXRhLmRhdGFcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImRyb3Bkb3duLWFycm93IGFsaWduLXNlbGYtZW5kXCJcbiAgICAgICAgICBbY2xhc3Mucm90YXRlLWFycm93XT1cIiFpc0hpZGRlblwiXG4gICAgICAgID5cbiAgICAgICAgICA8c3ZnLWljb25cbiAgICAgICAgICAgIFtzcmNdPVwiZ2V0U3ZnUGF0aCgnY29ybmVyRG93bkFycm93Um91dGUnKVwiXG4gICAgICAgICAgICAoY2xpY2spPVwic2hvd0hpZGRlbkRhdGEoKVwiXG4gICAgICAgICAgPjwvc3ZnLWljb24+XG4gICAgICAgIDwvZGl2PjwvZGl2XG4gICAgPjwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLXRlbXBsYXRlICNjbHVzdGVyRGF0YUxpc3RUZW1wbGF0ZT5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJjbHVzdGVyLW1hcmtlci1jb250YWluZXIgZC1mbGV4IGZsZXgtY29sdW1uIGdhcC0xXCJcbiAgICAgICAgKHNjcm9sbCk9XCJcbiAgICAgICAgICBpbmZvV2luZG93Q29udGVudC5jbHVzdGVyRGF0YSEubGVuZ3RoID49IDI1XG4gICAgICAgICAgICA/IG9uQ2x1c3Rlckxpc3RTY3JvbGwoJGV2ZW50KVxuICAgICAgICAgICAgOiBudWxsXG4gICAgICAgIFwiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgIGxldCBpdGVtIG9mIGluZm9XaW5kb3dDb250ZW50LmNsdXN0ZXJEYXRhO1xuICAgICAgICAgICAgbGV0IGkgPSBpbmRleDtcbiAgICAgICAgICAgIHRyYWNrQnk6IGlkZW50aXR5XG4gICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgIGNsdXN0ZXJDb250ZW50VGVtcGxhdGU7XG4gICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBpdGVtLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBcIlxuICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8bmctdGVtcGxhdGUgI21hcmtlckluZm9UZW1wbGF0ZT5cbiAgICA8ZGl2IGNsYXNzPVwibWFya2VyLWNvbnRhaW5lciByZWxhdGl2ZVwiIFtjbGFzcy5leHBhbmRlZF09XCIhaXNIaWRkZW5cIj5cbiAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nRm9yPVwiXG4gICAgICAgICAgbGV0IGl0ZW0gb2YgaW5mb1dpbmRvd0NvbnRlbnQubWFpbkNvbnRlbnQ7XG4gICAgICAgICAgbGV0IGkgPSBpbmRleDtcbiAgICAgICAgICB0cmFja0J5OiBpZGVudGl0eVxuICAgICAgICBcIlxuICAgICAgPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgIGRyb3Bkb3duQ29udGVudFRlbXBsYXRlO1xuICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICBjb250ZW50OiBpdGVtLFxuICAgICAgICAgICAgICBkYXRhOiBtYXJrZXJEYXRhXG4gICAgICAgICAgICB9XG4gICAgICAgICAgXCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJleHBhbmRlZC1pbmZvXCIgW2NsYXNzLmFjdGl2ZV09XCIhaXNIaWRkZW5cIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpuZ0Zvcj1cIlxuICAgICAgICAgICAgbGV0IGl0ZW0gb2YgaW5mb1dpbmRvd0NvbnRlbnQuZXhwYW5kZWRDb250ZW50O1xuICAgICAgICAgICAgbGV0IGkgPSBpbmRleDtcbiAgICAgICAgICAgIHRyYWNrQnk6IGlkZW50aXR5XG4gICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgIGRyb3Bkb3duQ29udGVudFRlbXBsYXRlO1xuICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgY29udGVudDogaXRlbSxcbiAgICAgICAgICAgICAgICBkYXRhOiBtYXJrZXJEYXRhXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZHJvcGRvd24tYXJyb3cgYWxpZ24tc2VsZi1lbmRcIlxuICAgICAgICBbY2xhc3Mucm90YXRlLWFycm93XT1cIiFpc0hpZGRlblwiXG4gICAgICA+XG4gICAgICAgIDxzdmctaWNvblxuICAgICAgICAgIFtzcmNdPVwiZ2V0U3ZnUGF0aCgnY29ybmVyRG93bkFycm93Um91dGUnKVwiXG4gICAgICAgICAgKGNsaWNrKT1cInNob3dIaWRkZW5EYXRhKClcIlxuICAgICAgICA+PC9zdmctaWNvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjY2x1c3RlckNvbnRlbnRUZW1wbGF0ZSBsZXQtY29udGVudD1cImNvbnRlbnRcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRlbnQgfCBtYXBEcm9wZG93bkNsdXN0ZXJDb250ZW50VHlwZTsgbGV0IGl0ZW1cIj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4gY2x1c3Rlci1tYXJrZXItaXRlbVwiXG4gICAgICAoY2xpY2spPVwiY2x1c3Rlckl0ZW1DbGljayhpdGVtKVwiXG4gICAgPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTFcIlxuICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgJ21heC13aWR0aCc6IGl0ZW0uZmF2b3VyaXRlID8gJ2NhbGMoMTAwJSAtIDE4cHgpJyA6ICcxMDAlJ1xuICAgICAgICB9XCJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0uaXNDbG9zZWRcIj5cbiAgICAgICAgICA8c3ZnLWljb25cbiAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4XCJcbiAgICAgICAgICAgIFtzcmNdPVwiZ2V0U3ZnUGF0aCgncGVybWFuZW50bHlDbG9zZWRSb3V0ZScpXCJcbiAgICAgICAgICAgIFtzdmdTdHlsZV09XCJ7ICd3aWR0aC5weCc6IDE4LCAnaGVpZ2h0LnB4JzogMTggfVwiXG4gICAgICAgICAgPjwvc3ZnLWljb24+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicmVndWxhci10ZXh0IGRhcmstZ3JheS10ZXh0IHVwcGVyY2FzZSB0ZXh0LWVsbGlwc2lzXCI+XG4gICAgICAgICAge3sgaXRlbS5uYW1lIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5mYXZvdXJpdGVcIj5cbiAgICAgICAgPHN2Zy1pY29uXG4gICAgICAgICAgY2xhc3M9XCJkLWZsZXhcIlxuICAgICAgICAgIFtzcmNdPVwiZ2V0U3ZnUGF0aCgnZmF2b3JpdGVSb3V0ZScpXCJcbiAgICAgICAgICBbc3ZnU3R5bGVdPVwieyAnd2lkdGgucHgnOiAxOCwgJ2hlaWdodC5weCc6IDE4IH1cIlxuICAgICAgICA+PC9zdmctaWNvbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZHJvcGRvd25Db250ZW50VGVtcGxhdGUgbGV0LWNvbnRlbnQ9XCJjb250ZW50XCIgbGV0LWRhdGE9XCJkYXRhXCI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb250ZW50IHwgbWFwRHJvcGRvd25Db250ZW50VHlwZTsgbGV0IGl0ZW1cIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWl0ZW0uc2lkZUJ5U2lkZUluZm87IGVsc2Ugc2lkZUJ5U2lkZUluZm9UZW1wbGF0ZVwiPlxuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgIGRyb3Bkb3duQ29udGVudEl0ZW1UZW1wbGF0ZXM7XG4gICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgY29udGVudDogaXRlbSxcbiAgICAgICAgICAgIGRhdGE6IGRhdGFcbiAgICAgICAgICB9XG4gICAgICAgIFwiXG4gICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctdGVtcGxhdGUgI3NpZGVCeVNpZGVJbmZvVGVtcGxhdGU+XG4gICAgICA8IS0tIFNpZGUgYnkgU2lkZSBEYXRhIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgPCEtLSBMZWZ0IFNpZGUgLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLnNpZGVCeVNpZGVJbmZvPy5sZWZ0U2lkZVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LTFcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICBkcm9wZG93bkNvbnRlbnRJdGVtVGVtcGxhdGVzO1xuICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGl0ZW0uc2lkZUJ5U2lkZUluZm8/LmxlZnRTaWRlLFxuICAgICAgICAgICAgICAgICAgZGF0YTogZGF0YVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8IS0tIFJpZ2h0IFNpZGUgLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLnNpZGVCeVNpZGVJbmZvPy5yaWdodFNpZGVcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC0xXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgZHJvcGRvd25Db250ZW50SXRlbVRlbXBsYXRlcztcbiAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICBjb250ZW50OiBpdGVtLnNpZGVCeVNpZGVJbmZvPy5yaWdodFNpZGUsXG4gICAgICAgICAgICAgICAgICBkYXRhOiBkYXRhXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGVcbiAgI2Ryb3Bkb3duQ29udGVudEl0ZW1UZW1wbGF0ZXNcbiAgbGV0LWNvbnRlbnQ9XCJjb250ZW50XCJcbiAgbGV0LWRhdGE9XCJkYXRhXCJcbj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRlbnQgfCBtYXBEcm9wZG93bkNvbnRlbnRUeXBlOyBsZXQgaXRlbVwiPlxuICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cIml0ZW0udGVtcGxhdGVcIj5cbiAgICAgIDwhLS0gTWFpbiBUaXRsZSAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidoZWFkZXItdGl0bGUnXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImhlYWRpbmcgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciB7e1xuICAgICAgICAgICAgaXRlbS5jdXN0b21DbGFzc0NvbnRhaW5lclxuICAgICAgICAgIH19XCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiaGVhZGVyLXRleHQtY29udGFpbmVyIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTEgdy0xMDBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLmhhc0JhY2tCdXR0b25cIj5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiaGVhZGVyLWJhY2stYnV0dG9uIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImJhY2tCdXR0b25DbGljaygpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzdmctaWNvblxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXhcIlxuICAgICAgICAgICAgICAgICAgW3NyY109XCJnZXRTdmdQYXRoKCdiYWNrQnV0dG9uUm91dGUnKVwiXG4gICAgICAgICAgICAgICAgICBbc3ZnU3R5bGVdPVwieyAnd2lkdGgucHgnOiAxNCwgJ2hlaWdodC5weCc6IDE0IH1cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8L3N2Zy1pY29uPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgY2xhc3M9XCJoZWFkZXIgY2EtZm9udC1leHRyYS1ib2xkIGRhcmstZ3JheS10ZXh0IHt7XG4gICAgICAgICAgICAgICAgaXRlbS5jdXN0b21DbGFzc1RleHRcbiAgICAgICAgICAgICAgfX1cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyBkYXRhW2l0ZW0uZmllbGRdIH19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1pY29uXCI+PC9kaXY+IC0tPlxuICAgICAgICAgIDwhLS0gPGFwcC1jYS1kZXRhaWxzLWRyb3Bkb3duXG4gICAgICAgICAgICAgI2RldGFpbHNEcm9wZG93blxuICAgICAgICAgICAgIFtvcHRpb25zXT1cImRhdGFcIlxuICAgICAgICAgICAgIFtwbGFjZW1lbnRdPVwiJ3JpZ2h0LXRvcCdcIlxuICAgICAgICAgICAgIFtpZF09XCJpdGVtPy5pZFwiXG4gICAgICAgICAgICAgW2RhdGFdPVwiaXRlbVwiXG4gICAgICAgICAgICAgW2N1c3RvbUNsYXNzRHJvcERvd25dPVwiXG4gICAgICAgICAgICAgICAgICdtYXAtbGlzdC1jYXJkLWRyb3Bkb3duIG1hcmtlci1kcm9wZG93bi1wb3BvdmVyJ1xuICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgKGRyb3BEb3duQWN0aW9ucyk9XCJjYWxsQm9keUFjdGlvbigkZXZlbnQpXCJcbiAgICAgICAgID48L2FwcC1jYS1kZXRhaWxzLWRyb3Bkb3duPiAtLT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPCEtLSBSYXRpbmcgUmV2aWV3IC0tPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3JhdGluZy1yZXZpZXcnXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQgYWxpZ24taXRlbXMtY2VudGVyIGFsaWduLWNvbnRlbnQtY2VudGVyIGdhcC0zIHt7XG4gICAgICAgICAgICBpdGVtLmN1c3RvbUNsYXNzQ29udGFpbmVyXG4gICAgICAgICAgfX1cIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LXN0YXJ0IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiXG4gICAgICAgICAgICBbY2xhc3Mub3BhY2l0eS00MF09XCIhZGF0YVtpdGVtLmZpZWxkXS5saWtlQ291bnRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxzdmctaWNvblxuICAgICAgICAgICAgICBjbGFzcz1cInJhdGluZy1pY29uIGxpa2UtaWNvbiBkLWZsZXhcIlxuICAgICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImRhdGFbaXRlbS5maWVsZF0uaGFzTGlrZWRcIlxuICAgICAgICAgICAgICBbc3JjXT1cImdldFN2Z1BhdGgoJ2xpa2VSb3V0ZScpXCJcbiAgICAgICAgICAgICAgW3N2Z1N0eWxlXT1cInsgJ3dpZHRoLnB4JzogMTQsICdoZWlnaHQucHgnOiAxNCB9XCJcbiAgICAgICAgICAgID48L3N2Zy1pY29uPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgY2xhc3M9XCJzbWFsbC10ZXh0IGRhcmstZ3JheS10ZXh0IGNhLWZvbnQtc2VtaS1ib2xkIHVzZXItc2VsZWN0LW5vbmVcIlxuICAgICAgICAgICAgICA+e3sgZGF0YVtpdGVtLmZpZWxkXS5saWtlQ291bnQgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCJcbiAgICAgICAgICAgIFtjbGFzcy5vcGFjaXR5LTQwXT1cIiFkYXRhW2l0ZW0uZmllbGRdLmRpc2xpa2VDb3VudFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHN2Zy1pY29uXG4gICAgICAgICAgICAgIGNsYXNzPVwicmF0aW5nLWljb24gZGlzbGlrZS1pY29uIGQtZmxleFwiXG4gICAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiZGF0YVtpdGVtLmZpZWxkXS5oYXNEaXNsaWtlXCJcbiAgICAgICAgICAgICAgW3NyY109XCJnZXRTdmdQYXRoKCdkaXNsaWtlUm91dGUnKVwiXG4gICAgICAgICAgICAgIFtzdmdTdHlsZV09XCJ7ICd3aWR0aC5weCc6IDE0LCAnaGVpZ2h0LnB4JzogMTQgfVwiXG4gICAgICAgICAgICA+PC9zdmctaWNvbj5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgIGNsYXNzPVwic21hbGwtdGV4dCBkYXJrLWdyYXktdGV4dCBjYS1mb250LXNlbWktYm9sZCB1c2VyLXNlbGVjdC1ub25lXCJcbiAgICAgICAgICAgICAgPnt7IGRhdGFbaXRlbS5maWVsZF0uZGlzbGlrZUNvdW50IH19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LXN0YXJ0IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiXG4gICAgICAgICAgICBbY2xhc3Mub3BhY2l0eS00MF09XCIhZGF0YVtpdGVtLmZpZWxkXS5yZXZpZXdDb3VudFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHN2Zy1pY29uXG4gICAgICAgICAgICAgIGNsYXNzPVwicmF0aW5nLWljb24gcmV2aWV3LWljb24gZC1mbGV4XCJcbiAgICAgICAgICAgICAgW3NyY109XCJnZXRTdmdQYXRoKCdyZXZpZXdSb3V0ZScpXCJcbiAgICAgICAgICAgICAgW3N2Z1N0eWxlXT1cInsgJ3dpZHRoLnB4JzogMTQsICdoZWlnaHQucHgnOiAxNCB9XCJcbiAgICAgICAgICAgID48L3N2Zy1pY29uPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgY2xhc3M9XCJzbWFsbC10ZXh0IGRhcmstZ3JheS10ZXh0IGNhLWZvbnQtc2VtaS1ib2xkIHVzZXItc2VsZWN0LW5vbmVcIlxuICAgICAgICAgICAgICA+e3sgZGF0YVtpdGVtLmZpZWxkXS5yZXZpZXdDb3VudCA/PyAwIH19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDwhLS0gQm9yZGVyIERpdmlkZXIgLS0+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZGl2aWRlcidcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImluZm8tZGl2aWRlclwiPjwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDwhLS0gUmVwYWlyIFNob3AgU2VydmljZXMgLS0+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIncmVwYWlyLXNob3Atc2VydmljZXMnXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4ge3tcbiAgICAgICAgICAgIGl0ZW0uY3VzdG9tQ2xhc3NDb250YWluZXJcbiAgICAgICAgICB9fVwiXG4gICAgICAgID5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzZXJ2aWNlIG9mIGRhdGFbaXRlbS5maWVsZF1cIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIlxuICAgICAgICAgICAgICBuZ2JUb29sdGlwXG4gICAgICAgICAgICAgIFt0b29sdGlwQmFja2dyb3VuZF09XCInIzQyNDI0MidcIlxuICAgICAgICAgICAgICBbbWFpbkNhVG9vbHRpcF09XCJzZXJ2aWNlLnNlcnZpY2VUeXBlLm5hbWVcIlxuICAgICAgICAgICAgICBwb3NpdGlvbj1cImJvdHRvbVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzdmctaWNvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwicmVwYWlyLXNlcnZpY2UtaWNvblwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJzZXJ2aWNlLmFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgW3NyY109XCJzZXJ2aWNlLmxvZ29OYW1lIHwgY2FTdmcgOiAnY29tbW9uJyA6ICdyZXBhaXItc2VydmljZXMnXCJcbiAgICAgICAgICAgICAgICBbc3ZnU3R5bGVdPVwieyAnd2lkdGgucHgnOiAxOCwgJ2hlaWdodC5weCc6IDE4IH1cIlxuICAgICAgICAgICAgICA+PC9zdmctaWNvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8IS0tIEljb24gYW5kIFRleHQgLS0+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInaWNvbi10ZXh0J1wiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtc3RhcnQgZ2FwLTEge3sgaXRlbS5jdXN0b21DbGFzc0NvbnRhaW5lciB9fVwiXG4gICAgICAgID5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS51cmxcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgbmdiVG9vbHRpcFxuICAgICAgICAgICAgICBbdG9vbHRpcEJhY2tncm91bmRdPVwiJyM0MjQyNDInXCJcbiAgICAgICAgICAgICAgW21haW5DYVRvb2x0aXBdPVwiaXRlbS5pY29uVG9vbHRpcFRleHRcIlxuICAgICAgICAgICAgICBwb3NpdGlvbj1cImJvdHRvbVwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlVG9vbHRpcF09XCIhaXRlbS5pY29uVG9vbHRpcFRleHRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c3ZnLWljb25cbiAgICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiXG4gICAgICAgICAgICAgICAgW3NyY109XCJpdGVtLnVybFwiXG4gICAgICAgICAgICAgICAgW3N2Z1N0eWxlXT1cInsgJ3dpZHRoLnB4JzogMTgsICdoZWlnaHQucHgnOiAxOCB9XCJcbiAgICAgICAgICAgICAgPjwvc3ZnLWljb24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInJlZ3VsYXItdGV4dCBkYXJrLWdyYXktdGV4dCB7eyBpdGVtLmN1c3RvbUNsYXNzVGV4dCB9fVwiPlxuICAgICAgICAgICAge3sgZGF0YVtpdGVtLmZpZWxkXSB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPCEtLSBUaXRsZSAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIid0aXRsZSdcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwicmVndWxhci10ZXh0IGRhcmstZ3JheS10ZXh0IGNhLWZvbnQtZXh0cmEtYm9sZCB7e1xuICAgICAgICAgICAgaXRlbS5jdXN0b21DbGFzc1RleHRcbiAgICAgICAgICB9fVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBkYXRhW2l0ZW0uZmllbGRdIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDwhLS0gVGl0bGUgYW5kIENvdW50IC0tPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3RpdGxlLWNvdW50J1wiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0xIHt7XG4gICAgICAgICAgICBpdGVtLmN1c3RvbUNsYXNzQ29udGFpbmVyXG4gICAgICAgICAgfX1cIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJlZ3VsYXItdGV4dCBkYXJrLWdyYXktdGV4dCBjYS1mb250LWV4dHJhLWJvbGRcIj5cbiAgICAgICAgICAgIHt7IGl0ZW0udGl0bGUgfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImNvdW50LW51bWJlciB3aGl0ZS10ZXh0IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBjYS1mb250LWJvbGRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IGRhdGFbaXRlbS5maWVsZF0gfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPCEtLSBNb25leSBUZXh0ICAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidtb25leS10ZXh0J1wiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0xIHt7XG4gICAgICAgICAgICBpdGVtLmN1c3RvbUNsYXNzQ29udGFpbmVyXG4gICAgICAgICAgfX1cIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJlZ3VsYXItdGV4dCBjYS1mb250LWJvbGQgYmx1ZS10ZXh0XCI+XG4gICAgICAgICAgICB7eyBkYXRhPy5baXRlbS5maWVsZF0gIT09ICcnID8gZGF0YVtpdGVtLmZpZWxkXSA6ICckMCcgfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVndWxhci10ZXh0IGxpZ2h0LWdyYXktdGV4dCBjYS1mb250LWJvbGRcIj5cbiAgICAgICAgICAgIHt7IGl0ZW0udGl0bGUgfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPCEtLSBPcGVuIEhvdXJzIC0tPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ29wZW4taG91cnMnXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gZ2FwLTJcIj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInJlZ3VsYXItdGV4dCBkYXJrLWdyYXktdGV4dCBjYS1mb250LWV4dHJhLWJvbGQge3tcbiAgICAgICAgICAgICAgaXRlbS5jdXN0b21DbGFzc1RleHRcbiAgICAgICAgICAgIH19XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBpdGVtLnRpdGxlIH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm9wZW4taG91cnMtZ3JpZFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAqbmdJZj1cImRhdGFbaXRlbS5maWVsZF0/Lm9wZW5Ib3Vyc1RvZGF5ICYmICFpc1Nob3dBbGxEYXlzQWN0aXZlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBmbGV4LTFcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic21hbGwtdGV4dCBkYXJrLWdyYXktdGV4dCBjYS1mb250LWJvbGRcIj5cbiAgICAgICAgICAgICAgICAgIHt7IGRhdGFbaXRlbS5maWVsZF0ub3BlbkhvdXJzVG9kYXkuc3RhdHVzIH19XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlZ3VsYXItdGV4dCBkYXJrLWdyYXktdGV4dCB0ZXh0LWVsbGlwc2lzXCI+XG4gICAgICAgICAgICAgICAgICB7eyBkYXRhW2l0ZW0uZmllbGRdLm9wZW5Ib3Vyc1RvZGF5LmluZm8gfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkYXRhW2l0ZW0uZmllbGRdPy5vcGVuSG91cnM/Lmxlbmd0aFwiPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNTaG93QWxsRGF5c0FjdGl2ZVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cIlxuICAgICAgICAgICAgICAgICAgICBsZXQgZGF5IG9mIGRhdGFbaXRlbS5maWVsZF0ub3BlbkhvdXJzO1xuICAgICAgICAgICAgICAgICAgICB0cmFja0J5OiBpZGVudGl0eVxuICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGZsZXgtMVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic21hbGwtdGV4dCBkYXJrLWdyYXktdGV4dCBjYS1mb250LWJvbGRcIj5cbiAgICAgICAgICAgICAgICAgICAgICB7eyBkYXkuZGF5T2ZXZWVrIH19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVndWxhci10ZXh0IGRhcmstZ3JheS10ZXh0IHRleHQtZWxsaXBzaXNcIj5cbiAgICAgICAgICAgICAgICAgICAgICB7eyBkYXkuc3RhcnRUaW1lICsgJyAtICcgKyBkYXkuZW5kVGltZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGZsZXgtMSBqdXN0aWZ5LWNvbnRlbnQtZW5kIHNob3ctYWxsLWRheXMtY29udGFpbmVyXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMVwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2hvd0FsbERheXNDbGljaygpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8c3ZnLWljb25cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXhcIlxuICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImdldFN2Z1BhdGgoJ2FjY2lkZW50Q2FsZW5kZXJSb3V0ZScpXCJcbiAgICAgICAgICAgICAgICAgICAgW3N2Z1N0eWxlXT1cInsgJ3dpZHRoLnB4JzogMTgsICdoZWlnaHQucHgnOiAxOCB9XCJcbiAgICAgICAgICAgICAgICAgID48L3N2Zy1pY29uPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlZ3VsYXItdGV4dCBncmF5LXRleHQgY3Vyc29yLXBvaW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgaXNTaG93QWxsRGF5c0FjdGl2ZSA/ICdTaG93IHRvZGF5JyA6ICdTaG93IGFsbCBkYXlzJyB9fVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDwhLS0gVGV4dCBhbmQgQ291bnQgLS0+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIndGV4dC1jb3VudCdcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMSB7e1xuICAgICAgICAgICAgaXRlbS5jdXN0b21DbGFzc0NvbnRhaW5lclxuICAgICAgICAgIH19XCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZWd1bGFyLXRleHQge3sgaXRlbS5jdXN0b21DbGFzc1RleHQgfX1cIj5cbiAgICAgICAgICAgIHt7IGl0ZW0udGl0bGUgfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInJlZ3VsYXItdGV4dCBjYS1mb250LXNlbWktYm9sZCB7eyBpdGVtLmN1c3RvbUNsYXNzVGV4dCB9fVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgZGF0YSB8IG1hcERyb3Bkb3duVmFsdWUgOiBpdGVtIH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDwhLS0gU3VidGl0bGUgLS0+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInc3VidGl0bGUnXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cInJlZ3VsYXItdGV4dCBkYXJrLWdyYXktdGV4dCBjYS1mb250LWV4dHJhLWJvbGQge3tcbiAgICAgICAgICAgIGl0ZW0uY3VzdG9tQ2xhc3NUZXh0XG4gICAgICAgICAgfX1cIlxuICAgICAgICA+XG4gICAgICAgICAge3sgaXRlbS50aXRsZSB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8IS0tIFJlZ3VsYXIgVGV4dCAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIid0ZXh0J1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicmVndWxhci10ZXh0IGJsYWNrLXRleHQge3sgaXRlbS5jdXN0b21DbGFzc1RleHQgfX1cIj5cbiAgICAgICAgICB7eyBkYXRhIHwgbWFwRHJvcGRvd25WYWx1ZSA6IGl0ZW0gfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPCEtLSBTbWFsbCBTdWJ0aXRsZSAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidzbWFsbC1zdWJ0aXRsZSdcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNtYWxsLXRleHQgZGFyay1ncmF5LXRleHQge3sgaXRlbS5jdXN0b21DbGFzc1RleHQgfX1cIj5cbiAgICAgICAgICB7eyBpdGVtLnRpdGxlIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
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=