tango-app-ui-analyse-traffic 3.3.0-beta.9 → 3.3.1-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/explore-view/explore-view.component.mjs +174 -106
- package/esm2022/lib/components/image-doc/image-doc.component.mjs +36 -25
- package/esm2022/lib/components/traffic-analysis/traffic-analysis.component.mjs +123 -63
- package/esm2022/lib/components/traffic-card-charts/traffic-card-charts.component.mjs +137 -87
- package/esm2022/lib/components/traffic-charts/traffic-charts.component.mjs +83 -56
- package/esm2022/lib/services/traffic.service.mjs +10 -1
- package/esm2022/lib/tango-analyse-traffic.module.mjs +8 -4
- package/fesm2022/tango-app-ui-analyse-traffic.mjs +577 -350
- package/fesm2022/tango-app-ui-analyse-traffic.mjs.map +1 -1
- package/lib/components/explore-view/explore-view.component.d.ts +10 -3
- package/lib/components/image-doc/image-doc.component.d.ts +2 -0
- package/lib/components/traffic-analysis/traffic-analysis.component.d.ts +9 -4
- package/lib/components/traffic-card-charts/traffic-card-charts.component.d.ts +8 -2
- package/lib/components/traffic-charts/traffic-charts.component.d.ts +3 -0
- package/lib/services/traffic.service.d.ts +4 -0
- package/lib/tango-analyse-traffic.module.d.ts +2 -1
- package/package.json +1 -1
|
@@ -3,11 +3,12 @@ import { debounceTime } from 'rxjs/operators';
|
|
|
3
3
|
import { Subject, takeUntil } from "rxjs";
|
|
4
4
|
import * as mapboxgl from 'mapbox-gl';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "
|
|
7
|
-
import * as i2 from "
|
|
6
|
+
import * as i1 from "tango-app-ui-global";
|
|
7
|
+
import * as i2 from "../../services/traffic.service";
|
|
8
8
|
import * as i3 from "@angular/router";
|
|
9
9
|
import * as i4 from "@angular/common";
|
|
10
10
|
export class ExploreViewComponent {
|
|
11
|
+
pageInfo;
|
|
11
12
|
service;
|
|
12
13
|
gs;
|
|
13
14
|
router;
|
|
@@ -28,13 +29,28 @@ export class ExploreViewComponent {
|
|
|
28
29
|
loading = true;
|
|
29
30
|
noData = false;
|
|
30
31
|
dataImages;
|
|
31
|
-
|
|
32
|
+
dataStoreMap;
|
|
33
|
+
newDataStoreMap;
|
|
34
|
+
storeId;
|
|
35
|
+
constructor(pageInfo, service, gs, router, cd) {
|
|
36
|
+
this.pageInfo = pageInfo;
|
|
32
37
|
this.service = service;
|
|
33
38
|
this.gs = gs;
|
|
34
39
|
this.router = router;
|
|
35
40
|
this.cd = cd;
|
|
36
41
|
}
|
|
42
|
+
setPageData() {
|
|
43
|
+
this.pageInfo.setTitle('Explore');
|
|
44
|
+
this.pageInfo.setDescription('To optimize and improve existing algorithm');
|
|
45
|
+
this.pageInfo.setBreadcrumbs([
|
|
46
|
+
{ title: 'Analyze', path: '/manage/traffic', isActive: false, isSeparator: false },
|
|
47
|
+
{ title: 'Analyze', path: '/manage/traffic', isActive: false, isSeparator: true },
|
|
48
|
+
{ title: 'Traffic', path: '/manage/traffic', isActive: false, isSeparator: false },
|
|
49
|
+
{ title: 'Traffic', path: '/manage/traffic', isActive: false, isSeparator: true },
|
|
50
|
+
]);
|
|
51
|
+
}
|
|
37
52
|
ngOnInit() {
|
|
53
|
+
this.setPageData();
|
|
38
54
|
mapboxgl.accessToken = 'pk.eyJ1IjoiYmFsYWppdGFuZ28iLCJhIjoiY20wZ2xiem55MDFxYTJ3b21zb3FjNHdwayJ9.nnIIzt7OeYlYHufGE8lFWQ';
|
|
39
55
|
this.gs.dataRangeValue
|
|
40
56
|
.pipe(takeUntil(this.destroy$), debounceTime(300))
|
|
@@ -92,110 +108,152 @@ export class ExploreViewComponent {
|
|
|
92
108
|
});
|
|
93
109
|
}
|
|
94
110
|
getData() {
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
'
|
|
107
|
-
'
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
111
|
+
setTimeout(() => {
|
|
112
|
+
const mapContainer = document.getElementById('map1');
|
|
113
|
+
if (!mapContainer) {
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
if (this.auLocations.length === 0) {
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
const geojson = {
|
|
120
|
+
'type': 'FeatureCollection',
|
|
121
|
+
'features': this.auLocations.map((store, index) => ({
|
|
122
|
+
'type': 'Feature',
|
|
123
|
+
'properties': {
|
|
124
|
+
'storeName': store.storeName,
|
|
125
|
+
'imageId': 1011 + index,
|
|
126
|
+
'iconSize': [60, 60],
|
|
127
|
+
'footfall': store.avgFootfall,
|
|
128
|
+
'openTime': store.openTime,
|
|
129
|
+
'closeTime': store.closeTime,
|
|
130
|
+
},
|
|
131
|
+
'geometry': {
|
|
132
|
+
'type': 'Point',
|
|
133
|
+
'coordinates': [store.lng, store.lat]
|
|
134
|
+
}
|
|
135
|
+
}))
|
|
136
|
+
};
|
|
137
|
+
const firstLocation = this.auLocations[0];
|
|
138
|
+
this.map = new mapboxgl.Map({
|
|
139
|
+
container: 'map1',
|
|
140
|
+
style: 'mapbox://styles/mapbox/streets-v12',
|
|
141
|
+
center: [firstLocation.lng, firstLocation.lat],
|
|
142
|
+
zoom: 10,
|
|
143
|
+
maxZoom: 20,
|
|
144
|
+
minZoom: 1 // Optional: Limit min zoom level
|
|
145
|
+
});
|
|
146
|
+
// this.map = new mapboxgl.Map({
|
|
147
|
+
// container: 'map1',
|
|
148
|
+
// style: 'mapbox://styles/mapbox/streets-v12',
|
|
149
|
+
// center: [firstLocation.lng, firstLocation.lat],
|
|
150
|
+
// zoom: 4
|
|
151
|
+
// });
|
|
152
|
+
geojson.features.forEach((feature, featureIndex) => {
|
|
153
|
+
const { properties, geometry } = feature;
|
|
154
|
+
const store = this.auLocations[featureIndex];
|
|
155
|
+
const el = document.createElement('div');
|
|
156
|
+
const width = properties.iconSize[0];
|
|
157
|
+
const height = properties.iconSize[1];
|
|
158
|
+
el.className = 'marker';
|
|
159
|
+
el.innerHTML = `
|
|
160
|
+
<div class="marker-icon" style="background-color: white; width: 65px; height: 70px; display: flex; justify-content: center; align-items: center;">
|
|
161
|
+
<div class="marker-content" style="display: flex; flex-direction: column; align-items: center;">
|
|
162
|
+
<svg class="mb-1" xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 13 13" fill="none">
|
|
163
|
+
<path d="M1.33654 3.3637L1.29658 3.42611C0.877698 4.16701 1.32493 5.10335 2.12931 5.21076C2.20218 5.21967 2.26999 5.22438 2.33625 5.22438C2.77021 5.22438 3.1539 5.03821 3.42132 4.74793L3.83666 4.2971L4.25059 4.74923C4.51476 5.03778 4.89758 5.22438 5.33448 5.22438C5.76941 5.22438 6.15443 5.03752 6.41837 4.74923L6.83359 4.29568L7.24882 4.74923C7.51275 5.03752 7.89777 5.22438 8.33271 5.22438C8.76764 5.22438 9.15266 5.03752 9.4166 4.74923L9.83182 4.29568L10.247 4.74923C10.511 5.03752 10.896 5.22438 11.3309 5.22438C11.395 5.22438 11.4649 5.21966 11.5372 5.21083C12.3593 5.09875 12.808 4.11225 12.3286 3.36408C12.3286 3.36403 12.3285 3.36399 12.3285 3.36395L11.0088 1.30621L11.0081 1.30511C10.9967 1.28722 10.9686 1.26804 10.9332 1.26804H2.72942C2.69403 1.26804 2.66589 1.28722 2.65448 1.30511L2.65401 1.30584L1.33654 3.3637ZM11.0731 7.06667V9.41753V9.98049H10.5101H3.15248H2.58952V9.41753V7.06702C2.50678 7.07318 2.42308 7.07634 2.33855 7.07634C2.30679 7.07634 2.27525 7.07587 2.24392 7.07495V9.41753V10.8696C2.24392 11.3526 2.64467 11.7587 3.15248 11.7587H10.5101C11.0179 11.7587 11.4187 11.3526 11.4187 10.8696V9.41753V7.07509C11.3888 7.07591 11.3587 7.07634 11.3286 7.07634C11.2428 7.07634 11.1575 7.07308 11.0731 7.06667Z" stroke="#101828" stroke-width="1.12592"/>
|
|
164
|
+
</svg>
|
|
165
|
+
|
|
166
|
+
<div class="marker-label" style="color: var(--Gray-700, #344054); text-align: center; font-family: Inter; font-size: 9.007px; font-style: normal; font-weight: 600; line-height: 13px;">
|
|
167
|
+
${properties.storeName}
|
|
168
|
+
</div>
|
|
147
169
|
</div>
|
|
148
170
|
</div>
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
this.
|
|
164
|
-
.subscribe({
|
|
165
|
-
next: (res) => {
|
|
166
|
-
if (res && res?.code == 200)
|
|
167
|
-
this.dataImages = res?.data?.cameraBaseImage;
|
|
168
|
-
else
|
|
169
|
-
this.dataImages = 'assets/tango/Image/baseimg.png';
|
|
170
|
-
}
|
|
171
|
-
});
|
|
172
|
-
// console.log(store)
|
|
171
|
+
`;
|
|
172
|
+
el.style.width = `${width}px`;
|
|
173
|
+
el.style.height = `${height}px`;
|
|
174
|
+
el.style.backgroundSize = '100%';
|
|
175
|
+
// Create an empty popup initially
|
|
176
|
+
const popup = new mapboxgl.Popup({ offset: 25 })
|
|
177
|
+
.setHTML('<div>Loading...</div>');
|
|
178
|
+
// Create marker with the popup
|
|
179
|
+
const marker = new mapboxgl.Marker(el)
|
|
180
|
+
.setLngLat([geometry.coordinates[0], geometry.coordinates[1]])
|
|
181
|
+
.setPopup(popup)
|
|
182
|
+
.addTo(this.map);
|
|
183
|
+
// Handle click events
|
|
184
|
+
el.addEventListener('click', () => {
|
|
185
|
+
this.adjustLayout(store, marker, popup);
|
|
173
186
|
});
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
const popup = new mapboxgl.Popup({ offset: 25 })
|
|
177
|
-
.setHTML(`
|
|
178
|
-
<img class="w-100" [src]="dataImages ? dataImages :''">
|
|
179
|
-
<div style="background: var(--gradient-primary-800700265-deg, linear-gradient(27deg, #0082CC 8.33%, #0093E6 91.67%));color:white; padding: 10px; border-radius: 16px;">
|
|
180
|
-
<h4 class="text-white">${properties.storeName || 'Store Name'}</h4>
|
|
181
|
-
<h6 class="text-white">Average Footfall: ${properties.footfall || '--'}</h6>
|
|
182
|
-
<h6 class="text-white">Open Time: ${properties.openTime || '--'}</h6>
|
|
183
|
-
<h6 class="text-white">Close Time: ${properties.closeTime || '--'}</h6>
|
|
184
|
-
</div>
|
|
185
|
-
`);
|
|
186
|
-
// Use the coordinates from the feature
|
|
187
|
-
const coordinates = geometry.coordinates;
|
|
188
|
-
// Add markers to the map
|
|
189
|
-
new mapboxgl.Marker(el)
|
|
190
|
-
.setLngLat(coordinates)
|
|
191
|
-
.setPopup(popup) // Attach the popup to the marker
|
|
192
|
-
.addTo(this.map);
|
|
193
|
-
});
|
|
187
|
+
});
|
|
188
|
+
}, 0);
|
|
194
189
|
}
|
|
195
|
-
adjustLayout(store) {
|
|
190
|
+
adjustLayout(store, marker, popup) {
|
|
196
191
|
this.selectedStore = store;
|
|
192
|
+
this.storeId = store?.storeId;
|
|
197
193
|
this.auth = true;
|
|
198
|
-
this.setClass = 'col-md-9';
|
|
194
|
+
this.setClass = 'col-md-9';
|
|
195
|
+
const obj = {
|
|
196
|
+
clientId: this.headerData.client,
|
|
197
|
+
storeDate: this.headerData.date.endDate,
|
|
198
|
+
storeId: [store?.storeId]
|
|
199
|
+
};
|
|
200
|
+
this.service.getStoreMapData(obj)?.pipe(takeUntil(this.destroy$))
|
|
201
|
+
.subscribe({
|
|
202
|
+
next: (res) => {
|
|
203
|
+
if (res && res?.code === 200) {
|
|
204
|
+
this.dataStoreMap = res?.data;
|
|
205
|
+
this.dataImages = res?.data?.cameraBaseImage || 'assets/tango/Images/preview_not.png';
|
|
206
|
+
// Update the popup content
|
|
207
|
+
popup.setHTML(`
|
|
208
|
+
<img class="w-100" src="${this.dataImages}" onerror="this.onerror=null; this.src='assets/tango/Images/preview_not.png';" alt="Store Image">
|
|
209
|
+
<div style="background: var(--gradient-primary-800700265-deg, linear-gradient(27deg, #0082CC 8.33%, #0093E6 91.67%));color:white; padding: 10px;">
|
|
210
|
+
<h4 class="text-white">${store.storeName || 'Store Name'}</h4>
|
|
211
|
+
<h6 class="text-white">Average Footfall: ${this.dataStoreMap?.hourlyData?.hourlyFootfall || '--'}</h6>
|
|
212
|
+
<h6 class="text-white">Open Time: ${this.dataStoreMap?.hourlyData?.openTime || '--'}</h6>
|
|
213
|
+
<h6 class="text-white">Close Time: ${this.dataStoreMap?.hourlyData?.closeTime || '--'}</h6>
|
|
214
|
+
</div>
|
|
215
|
+
`);
|
|
216
|
+
// Ensure the popup is added to the map and positioned correctly
|
|
217
|
+
marker.setPopup(popup); // Attach the popup to the marker
|
|
218
|
+
if (!popup.isOpen()) {
|
|
219
|
+
popup.addTo(this.map); // Add popup to the map
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
else {
|
|
223
|
+
this.dataImages = 'assets/tango/Images/preview_not.png';
|
|
224
|
+
popup.setHTML(`
|
|
225
|
+
<img class="w-100" src="${this.dataImages}" onerror="this.onerror=null; this.src='assets/tango/Images/preview_not.png';" alt="Store Image">
|
|
226
|
+
<div style="background: var(--gradient-primary-800700265-deg, linear-gradient(27deg, #0082CC 8.33%, #0093E6 91.67%));color:white; padding: 10px;">
|
|
227
|
+
<h4 class="text-white">${store.storeName || 'Store Name'}</h4>
|
|
228
|
+
<h6 class="text-white">Average Footfall: --</h6>
|
|
229
|
+
<h6 class="text-white">Open Time: --</h6>
|
|
230
|
+
<h6 class="text-white">Close Time: --</h6>
|
|
231
|
+
</div>
|
|
232
|
+
`);
|
|
233
|
+
}
|
|
234
|
+
},
|
|
235
|
+
error: (err) => {
|
|
236
|
+
console.error('Error fetching store map data:', err);
|
|
237
|
+
popup.setHTML(`
|
|
238
|
+
<img class="w-100" src="${this.dataImages}" onerror="this.onerror=null; this.src='assets/tango/Images/preview_not.png';" alt="Store Image">
|
|
239
|
+
<div style="background: var(--gradient-primary-800700265-deg, linear-gradient(27deg, #0082CC 8.33%, #0093E6 91.67%));color:white; padding: 10px;">
|
|
240
|
+
<h4 class="text-white">${store.storeName || 'Store Name'}</h4>
|
|
241
|
+
<h6 class="text-white">Average Footfall: --</h6>
|
|
242
|
+
<h6 class="text-white">Open Time: --</h6>
|
|
243
|
+
<h6 class="text-white">Close Time: --</h6>
|
|
244
|
+
</div>
|
|
245
|
+
`);
|
|
246
|
+
}
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
// adjustLayout(store:any) {
|
|
250
|
+
// this.selectedStore = store;
|
|
251
|
+
// this.auth =true;
|
|
252
|
+
// this.setClass = 'col-md-9'; // Adjust the layout to 8 columns on marker click
|
|
253
|
+
// // this.newDataStoreMap = data;
|
|
254
|
+
// }
|
|
255
|
+
dataValue(data) {
|
|
256
|
+
this.newDataStoreMap = data;
|
|
199
257
|
}
|
|
200
258
|
toggleAuth() {
|
|
201
259
|
this.auth = !this.auth;
|
|
@@ -204,11 +262,21 @@ line-height: 13px;">
|
|
|
204
262
|
backToFootfall() {
|
|
205
263
|
this.router.navigate(['/manage/traffic']);
|
|
206
264
|
}
|
|
207
|
-
|
|
208
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ExploreViewComponent, selector: "lib-explore-view", ngImport: i0, template: "<div *ngIf=\"!noData\" class=\"row\">\r\n <div [ngClass]=\"setClass\">\r\n <div class=\"card px-2 py-3\">\r\n <div class=\"d-flex align-items-center me-2\">\r\n <div class=\"flex-shrink-0\">\r\n <span class=\"cursor-pointer\" (click)=\"backToFootfall()\">\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <g filter=\"url(#filter0_d_2585_7036)\">\r\n <rect x=\"2\" y=\"1\" width=\"36\" height=\"36\" rx=\"8\" fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"35\" height=\"35\" rx=\"7.5\" stroke=\"#D0D5DD\" />\r\n <path d=\"M25.8327 19H14.166M14.166 19L19.9993 24.8334M14.166 19L19.9993 13.1667\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_2585_7036\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"\r\n filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_2585_7036\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_2585_7036\"\r\n result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg>\r\n </span>\r\n </div>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div id=\"map\" style=\"width: 100%; height: 100vh;\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"auth\" class=\"col-md-3\">\r\n <div class=\"card px-5 h-100 py-3 position-relative\">\r\n <img (click)=\"toggleAuth()\" class=\"leftIcon position-absolute left-0 cursor-pointer\"\r\n src=\"assets/tango/Image/leftIcon.svg\">\r\n <img class=\"w-100\" src=\"assets/tango/Image/baseimg.png\">\r\n <div class=\"card-header mt-3 px-0 border-0 min-h-10px\">\r\n <div class=\"col-md-12\">\r\n <h3 class=\"card-title align-items-start d-flex\">\r\n <span class=\"card-label\">{{selectedStore.storeName ?? '--'}}</span>\r\n <span class=\"badge badge-light-primary mt-1\">App ID : {{selectedStore.appId ?? '--'}}</span>\r\n </h3>\r\n </div>\r\n \r\n </div>\r\n <div class=\"card-body pt-0 px-0\">\r\n <div class=\"col-md-12\">\r\n <span class=\"map-subtext\">{{selectedStore?.storeProfile?.address ? selectedStore?.storeProfile?.address:'--'}} {{selectedStore?.storeProfile?.country ? selectedStore?.storeProfile?.country:'--'}} {{selectedStore?.storeProfile?.pincode ? selectedStore?.storeProfile?.pincode:'--'}}</span>\r\n <div class=\"flex items-center gap-5 mt-3\">\r\n <span class=\"text-sm text-gray-600\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M13.3346 14V12.6667C13.3346 11.9594 13.0537 11.2811 12.5536 10.781C12.0535 10.281 11.3752 10 10.668 10H5.33464C4.62739 10 3.94911 10.281 3.44902 10.781C2.94892 11.2811 2.66797 11.9594 2.66797 12.6667V14M10.668 4.66667C10.668 6.13943 9.47406 7.33333 8.0013 7.33333C6.52854 7.33333 5.33464 6.13943 5.33464 4.66667C5.33464 3.19391 6.52854 2 8.0013 2C9.47406 2 10.668 3.19391 10.668 4.66667Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <span class=\"text-sm font-medium map-subtext text-gray-800\">\r\n {{selectedStore?.spocDetails?.name ?selectedStore?.spocDetails?.name:'--'}}\r\n </span>\r\n </span>\r\n <span class=\"text-sm text-gray-600 mx-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146516)\">\r\n <path\r\n d=\"M14.665 11.2802V13.2802C14.6657 13.4659 14.6277 13.6497 14.5533 13.8198C14.479 13.9899 14.3699 14.1426 14.233 14.2681C14.0962 14.3937 13.9347 14.4892 13.7588 14.5487C13.5829 14.6082 13.3966 14.6303 13.2117 14.6136C11.1602 14.3907 9.18966 13.6897 7.45833 12.5669C5.84755 11.5433 4.48189 10.1777 3.45833 8.56689C2.33165 6.8277 1.63049 4.84756 1.41166 2.78689C1.395 2.60254 1.41691 2.41673 1.47599 2.24131C1.53508 2.06589 1.63004 1.90469 1.75484 1.76797C1.87964 1.63126 2.03153 1.52203 2.20086 1.44724C2.37018 1.37245 2.55322 1.33374 2.73833 1.33356H4.73833C5.06187 1.33038 5.37552 1.44495 5.62084 1.65592C5.86615 1.86689 6.02638 2.15986 6.07166 2.48023C6.15608 3.12027 6.31263 3.74871 6.53833 4.35356C6.62802 4.59218 6.64744 4.8515 6.59427 5.10081C6.5411 5.35012 6.41757 5.57897 6.23833 5.76023L5.39166 6.60689C6.3407 8.27592 7.72263 9.65786 9.39166 10.6069L10.2383 9.76023C10.4196 9.58099 10.6484 9.45746 10.8977 9.40429C11.1471 9.35112 11.4064 9.37053 11.645 9.46023C12.2498 9.68593 12.8783 9.84248 13.5183 9.92689C13.8422 9.97258 14.1379 10.1357 14.3494 10.3852C14.5608 10.6348 14.6731 10.9533 14.665 11.2802Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146516\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <span class=\"text-sm font-medium map-subtext text-gray-800\">\r\n {{selectedStore?.spocDetails?.contact ?selectedStore?.spocDetails?.contact:'--'}}\r\n </span>\r\n </span>\r\n </div>\r\n <div class=\"my-3\">\r\n <span class=\"text-sm text-gray-600\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M14.6654 3.99984C14.6654 3.2665 14.0654 2.6665 13.332 2.6665H2.66536C1.93203 2.6665 1.33203 3.2665 1.33203 3.99984M14.6654 3.99984V11.9998C14.6654 12.7332 14.0654 13.3332 13.332 13.3332H2.66536C1.93203 13.3332 1.33203 12.7332 1.33203 11.9998V3.99984M14.6654 3.99984L7.9987 8.6665L1.33203 3.99984\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <span class=\"text-sm font-medium map-subtext text-gray-800\">\r\n {{selectedStore?.spocDetails?.email ? selectedStore?.spocDetails?.email:'--'}}\r\n </span>\r\n </span>\r\n </div>\r\n <div class=\"flex items-center gap-5 my-3\">\r\n <span class=\"text-sm text-gray-600 \">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M13.3346 14V12.6667C13.3346 11.9594 13.0537 11.2811 12.5536 10.781C12.0535 10.281 11.3752 10 10.668 10H5.33464C4.62739 10 3.94911 10.281 3.44902 10.781C2.94892 11.2811 2.66797 11.9594 2.66797 12.6667V14M10.668 4.66667C10.668 6.13943 9.47406 7.33333 8.0013 7.33333C6.52854 7.33333 5.33464 6.13943 5.33464 4.66667C5.33464 3.19391 6.52854 2 8.0013 2C9.47406 2 10.668 3.19391 10.668 4.66667Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <span class=\"text-sm font-medium map-subtext text-gray-800\">\r\n {{selectedStore?.storeType?.type ? selectedStore?.storeType?.type:'--'}}\r\n </span>\r\n </span>\r\n <span class=\"text-sm text-gray-600 mx-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146516)\">\r\n <path\r\n d=\"M14.665 11.2802V13.2802C14.6657 13.4659 14.6277 13.6497 14.5533 13.8198C14.479 13.9899 14.3699 14.1426 14.233 14.2681C14.0962 14.3937 13.9347 14.4892 13.7588 14.5487C13.5829 14.6082 13.3966 14.6303 13.2117 14.6136C11.1602 14.3907 9.18966 13.6897 7.45833 12.5669C5.84755 11.5433 4.48189 10.1777 3.45833 8.56689C2.33165 6.8277 1.63049 4.84756 1.41166 2.78689C1.395 2.60254 1.41691 2.41673 1.47599 2.24131C1.53508 2.06589 1.63004 1.90469 1.75484 1.76797C1.87964 1.63126 2.03153 1.52203 2.20086 1.44724C2.37018 1.37245 2.55322 1.33374 2.73833 1.33356H4.73833C5.06187 1.33038 5.37552 1.44495 5.62084 1.65592C5.86615 1.86689 6.02638 2.15986 6.07166 2.48023C6.15608 3.12027 6.31263 3.74871 6.53833 4.35356C6.62802 4.59218 6.64744 4.8515 6.59427 5.10081C6.5411 5.35012 6.41757 5.57897 6.23833 5.76023L5.39166 6.60689C6.3407 8.27592 7.72263 9.65786 9.39166 10.6069L10.2383 9.76023C10.4196 9.58099 10.6484 9.45746 10.8977 9.40429C11.1471 9.35112 11.4064 9.37053 11.645 9.46023C12.2498 9.68593 12.8783 9.84248 13.5183 9.92689C13.8422 9.97258 14.1379 10.1357 14.3494 10.3852C14.5608 10.6348 14.6731 10.9533 14.665 11.2802Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146516\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <span class=\"text-sm font-medium map-subtext text-gray-800\">\r\n {{selectedStore?.storeType?.name ? selectedStore?.storeType?.name:'--'}}\r\n </span>\r\n </span>\r\n </div>\r\n \r\n <div class=\"flex items-center gap-5 my-3\">\r\n <span class=\"text-sm text-gray-600\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146529)\">\r\n <path\r\n d=\"M9 4.5V9L12 10.5M16.5 9C16.5 13.1421 13.1421 16.5 9 16.5C4.85786 16.5 1.5 13.1421 1.5 9C1.5 4.85786 4.85786 1.5 9 1.5C13.1421 1.5 16.5 4.85786 16.5 9Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146529\">\r\n <rect width=\"18\" height=\"18\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <span class=\"text-sm font-medium text-gray-800\">\r\n {{selectedStore?.openTime ? selectedStore?.openTime:'--'}} - {{selectedStore?.closeTime ? selectedStore?.closeTime:'--'}}\r\n </span>\r\n </span>\r\n </div>\r\n <div class=\"flex flex-col my-3\">\r\n <a class=\"map-avg\">\r\n {{selectedStore?.avgFootfall? selectedStore?.avgFootfall:'--'}}\r\n </a>\r\n <br>\r\n <span class=\"text-sm text-gray-700 map-avgtest\">\r\n Avg Footfall \r\n <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146536)\">\r\n <path\r\n d=\"M6 8V6M6 4H6.005M11 6C11 8.76142 8.76142 11 6 11C3.23858 11 1 8.76142 1 6C1 3.23858 3.23858 1 6 1C8.76142 1 11 3.23858 11 6Z\"\r\n stroke=\"#98A2B3\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146536\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </span>\r\n </div>\r\n <div class=\"flex flex-col my-3\">\r\n <a class=\"map-avg\">\r\n {{selectedStore?.avgWeekdayFootfall ? selectedStore?.avgWeekdayFootfall:'--'}}\r\n </a>\r\n <br>\r\n <span class=\"text-sm text-gray-700 map-avgtest\">\r\n Avg Weekday Footfall <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146536)\">\r\n <path\r\n d=\"M6 8V6M6 4H6.005M11 6C11 8.76142 8.76142 11 6 11C3.23858 11 1 8.76142 1 6C1 3.23858 3.23858 1 6 1C8.76142 1 11 3.23858 11 6Z\"\r\n stroke=\"#98A2B3\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146536\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </span>\r\n </div>\r\n <div class=\"flex flex-col my-3\">\r\n <a class=\"map-avg\">\r\n {{selectedStore?.avgWeekendFootfall ? selectedStore?.avgWeekendFootfall:'--'}}\r\n </a>\r\n <br>\r\n <span class=\"text-sm text-gray-700 map-avgtest\">\r\n Avg Weekend Footfall <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146536)\">\r\n <path\r\n d=\"M6 8V6M6 4H6.005M11 6C11 8.76142 8.76142 11 6 11C3.23858 11 1 8.76142 1 6C1 3.23858 3.23858 1 6 1C8.76142 1 11 3.23858 11 6Z\"\r\n stroke=\"#98A2B3\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146536\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </span>\r\n </div>\r\n \r\n \r\n <!-- <div class=\"mt-5 col-lg-12\">\r\n <button class=\"btn btn-light-primary1 w-100 px-2\"><span class=\"ms-2\">View more\r\n Details</span></button>\r\n </div> -->\r\n </div>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"loading\" class=\"row px-3 loader card d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n</div>\r\n<div *ngIf=\"noData\" class=\"row px-3\">\r\n <div class=\"card\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-nodata-table\" src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\">\r\n <div class=\"nodata-title\">No data found</div>\r\n <div class=\"nodata-sub\">There is no result for this Store map</div>\r\n </div>\r\n </div>\r\n</div>", styles: ["#map{width:100%!important;position:relative}:host::ng-deep .mapboxgl-popup-content{background:var(--gradient-primary-800700265-deg, linear-gradient(27deg, #0082CC 8.33%, #0093E6 91.67%))!important}:host::ng-deep .map-container{height:500px;width:100%!important;position:relative;overflow:hidden}:host::ng-deep .mapboxgl-popup-anchor-bottom .mapboxgl-popup-tip{align-self:center;border-bottom:none;border-top-color:#008ddc;display:none!important}#map{top:0;bottom:0;width:100%}.marker{display:block;border:none;border-radius:50%;cursor:pointer;padding:0}.tooltip{position:absolute;background-color:#fff;padding:5px 10px;border-radius:4px;box-shadow:0 2px 6px #00000026;z-index:3;font-size:12px;pointer-events:none}.mapboxgl-popup{background-color:#fffc;border-radius:8px;padding:10px}.mapboxgl-popup-content{background-color:#fffc;color:#fff;padding:5px;border-radius:5px}.leftIcon{width:50px;height:50px;left:-25px;top:31px}.card-title .card-label{color:var(--Gray-900, #101828)!important;font-family:Inter;font-size:12px!important;font-weight:600!important;line-height:20px}.btn-light-primary1{color:var(--White, #FFF)!important;font-size:14px;font-style:normal;font-weight:600;line-height:20px;text-transform:capitalize;border-radius:8px!important;border:1px solid var(--Primary-600, #00A3FF)!important;background:var(--Primary-600, #00A3FF)!important;box-shadow:0 1px 2px #1018280d!important}.map-subtext{color:var(--Gray-500, #667085)!important;font-size:12px!important;font-style:normal;font-weight:500!important;line-height:18px}.map-avg{color:var(--Gray-700, #344054)!important;font-size:18px!important;font-style:normal;font-weight:600;line-height:28px}.map-avgtest{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-style:normal;font-weight:500;line-height:20px}.img-nodata-table{width:35%;height:20%}:host::ng-deep .mapboxgl-popup-close-button{background-color:transparent;border:0;border-radius:0 3px 0 0;cursor:pointer;position:absolute;right:0;top:0;outline:none!important;display:none!important}.nodata-title{font-size:14px!important;font-weight:600}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
265
|
+
storeView(data) {
|
|
266
|
+
const datavalue = JSON.parse(localStorage.getItem("header-filters") || "{}");
|
|
267
|
+
datavalue.store = data;
|
|
268
|
+
localStorage.setItem("header-filters", JSON.stringify(datavalue));
|
|
269
|
+
this.cd.detectChanges();
|
|
270
|
+
this.gs.dataRangeValue.next(datavalue);
|
|
271
|
+
this.router.navigate(["/manage/stores/cameras"], {
|
|
272
|
+
queryParams: { storeId: data },
|
|
273
|
+
});
|
|
274
|
+
}
|
|
275
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ExploreViewComponent, deps: [{ token: i1.PageInfoService }, { token: i2.TrafficService }, { token: i1.GlobalStateService }, { token: i3.Router }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
276
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ExploreViewComponent, selector: "lib-explore-view", ngImport: i0, template: "<div *ngIf=\"!noData\" class=\"row\">\r\n <div [ngClass]=\"setClass\">\r\n <div class=\"card px-2 py-3\">\r\n <div class=\"d-flex align-items-center me-2\">\r\n <div class=\"flex-shrink-0\">\r\n <span class=\"cursor-pointer\" (click)=\"backToFootfall()\">\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <g filter=\"url(#filter0_d_2585_7036)\">\r\n <rect x=\"2\" y=\"1\" width=\"36\" height=\"36\" rx=\"8\" fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"35\" height=\"35\" rx=\"7.5\" stroke=\"#D0D5DD\" />\r\n <path d=\"M25.8327 19H14.166M14.166 19L19.9993 24.8334M14.166 19L19.9993 13.1667\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_2585_7036\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"\r\n filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_2585_7036\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_2585_7036\"\r\n result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg>\r\n </span>\r\n </div>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div id=\"map1\" style=\"width: 100%; height: 100vh;\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"auth\" class=\"col-md-3\">\r\n <div class=\"card px-5 h-100 py-3 position-relative\">\r\n <img (click)=\"toggleAuth()\" class=\"leftIcon position-absolute left-0 cursor-pointer\"\r\n src=\"assets/tango/Image/leftIcon.svg\">\r\n <img *ngIf=\"dataImages !== null\" class=\"w-100\" [src]=\"dataImages\" (error)=\"dataImages = null\" [alt]=\"dataImages ? 'Image' : 'Error Image'\">\r\n <!-- <img *ngIf=\"dataImages === null\" class=\"w-100\" src=\"assets/tango/Image/baseimg.png\" alt=\"Image\"> -->\r\n <div *ngIf=\"dataImages === null\" class=\"no-preview\">\r\n <span class=\"mb-5\">\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\"\r\n d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n\r\n </span>\r\n <span class=\"header mb-5 text-center\">Preview not available</span>\r\n <span class=\"description mb-5 text-center\">The selected camera is not available at the\r\n moment.</span>\r\n </div>\r\n \r\n <div class=\"card-header mt-3 px-0 border-0 min-h-10px\" >\r\n <div class=\"col-md-12\">\r\n <h3 class=\"card-title align-items-start d-flex\">\r\n <span class=\"card-label cursor-pointer\" (click)=\"storeView(storeId)\">{{selectedStore.storeName ?? '--'}}</span>\r\n </h3>\r\n <span class=\"badge badge-light-primary mb-2\">App ID : {{selectedStore.appId ?? '--'}}</span>\r\n\r\n </div>\r\n \r\n </div>\r\n <div class=\"card-body pt-0 px-0\">\r\n <div class=\"col-md-12\">\r\n <span class=\"map-subtext\">{{selectedStore?.storeProfile?.address ? selectedStore?.storeProfile?.address:'--'}} {{selectedStore?.storeProfile?.country ? selectedStore?.storeProfile?.country:'--'}} {{selectedStore?.storeProfile?.pincode ? selectedStore?.storeProfile?.pincode:'--'}}</span>\r\n <div class=\"flex items-center gap-5 mt-3\">\r\n <span class=\"text-sm text-gray-600\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M13.3346 14V12.6667C13.3346 11.9594 13.0537 11.2811 12.5536 10.781C12.0535 10.281 11.3752 10 10.668 10H5.33464C4.62739 10 3.94911 10.281 3.44902 10.781C2.94892 11.2811 2.66797 11.9594 2.66797 12.6667V14M10.668 4.66667C10.668 6.13943 9.47406 7.33333 8.0013 7.33333C6.52854 7.33333 5.33464 6.13943 5.33464 4.66667C5.33464 3.19391 6.52854 2 8.0013 2C9.47406 2 10.668 3.19391 10.668 4.66667Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <span class=\"text-sm font-medium map-subtext text-gray-800\">\r\n {{selectedStore?.spocDetails?.name ?selectedStore?.spocDetails?.name:'--'}}\r\n </span>\r\n </span>\r\n <span class=\"text-sm text-gray-600 mx-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146516)\">\r\n <path\r\n d=\"M14.665 11.2802V13.2802C14.6657 13.4659 14.6277 13.6497 14.5533 13.8198C14.479 13.9899 14.3699 14.1426 14.233 14.2681C14.0962 14.3937 13.9347 14.4892 13.7588 14.5487C13.5829 14.6082 13.3966 14.6303 13.2117 14.6136C11.1602 14.3907 9.18966 13.6897 7.45833 12.5669C5.84755 11.5433 4.48189 10.1777 3.45833 8.56689C2.33165 6.8277 1.63049 4.84756 1.41166 2.78689C1.395 2.60254 1.41691 2.41673 1.47599 2.24131C1.53508 2.06589 1.63004 1.90469 1.75484 1.76797C1.87964 1.63126 2.03153 1.52203 2.20086 1.44724C2.37018 1.37245 2.55322 1.33374 2.73833 1.33356H4.73833C5.06187 1.33038 5.37552 1.44495 5.62084 1.65592C5.86615 1.86689 6.02638 2.15986 6.07166 2.48023C6.15608 3.12027 6.31263 3.74871 6.53833 4.35356C6.62802 4.59218 6.64744 4.8515 6.59427 5.10081C6.5411 5.35012 6.41757 5.57897 6.23833 5.76023L5.39166 6.60689C6.3407 8.27592 7.72263 9.65786 9.39166 10.6069L10.2383 9.76023C10.4196 9.58099 10.6484 9.45746 10.8977 9.40429C11.1471 9.35112 11.4064 9.37053 11.645 9.46023C12.2498 9.68593 12.8783 9.84248 13.5183 9.92689C13.8422 9.97258 14.1379 10.1357 14.3494 10.3852C14.5608 10.6348 14.6731 10.9533 14.665 11.2802Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146516\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <span class=\"text-sm font-medium map-subtext text-gray-800\">\r\n {{selectedStore?.spocDetails?.contact ?selectedStore?.spocDetails?.contact:'--'}}\r\n </span>\r\n </span>\r\n </div>\r\n <div class=\"my-3\">\r\n <span class=\"text-sm text-gray-600\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M14.6654 3.99984C14.6654 3.2665 14.0654 2.6665 13.332 2.6665H2.66536C1.93203 2.6665 1.33203 3.2665 1.33203 3.99984M14.6654 3.99984V11.9998C14.6654 12.7332 14.0654 13.3332 13.332 13.3332H2.66536C1.93203 13.3332 1.33203 12.7332 1.33203 11.9998V3.99984M14.6654 3.99984L7.9987 8.6665L1.33203 3.99984\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <span class=\"text-sm font-medium map-subtext text-gray-800\">\r\n {{selectedStore?.spocDetails?.email ? selectedStore?.spocDetails?.email:'--'}}\r\n </span>\r\n </span>\r\n </div>\r\n <div class=\"flex items-center gap-5 my-3\">\r\n <span class=\"text-sm text-gray-600 \">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M13.3346 14V12.6667C13.3346 11.9594 13.0537 11.2811 12.5536 10.781C12.0535 10.281 11.3752 10 10.668 10H5.33464C4.62739 10 3.94911 10.281 3.44902 10.781C2.94892 11.2811 2.66797 11.9594 2.66797 12.6667V14M10.668 4.66667C10.668 6.13943 9.47406 7.33333 8.0013 7.33333C6.52854 7.33333 5.33464 6.13943 5.33464 4.66667C5.33464 3.19391 6.52854 2 8.0013 2C9.47406 2 10.668 3.19391 10.668 4.66667Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <span class=\"text-sm font-medium map-subtext text-gray-800\">\r\n {{selectedStore?.storeType?.type ? selectedStore?.storeType?.type:'--'}}\r\n </span>\r\n </span>\r\n <span class=\"text-sm text-gray-600 mx-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146516)\">\r\n <path\r\n d=\"M14.665 11.2802V13.2802C14.6657 13.4659 14.6277 13.6497 14.5533 13.8198C14.479 13.9899 14.3699 14.1426 14.233 14.2681C14.0962 14.3937 13.9347 14.4892 13.7588 14.5487C13.5829 14.6082 13.3966 14.6303 13.2117 14.6136C11.1602 14.3907 9.18966 13.6897 7.45833 12.5669C5.84755 11.5433 4.48189 10.1777 3.45833 8.56689C2.33165 6.8277 1.63049 4.84756 1.41166 2.78689C1.395 2.60254 1.41691 2.41673 1.47599 2.24131C1.53508 2.06589 1.63004 1.90469 1.75484 1.76797C1.87964 1.63126 2.03153 1.52203 2.20086 1.44724C2.37018 1.37245 2.55322 1.33374 2.73833 1.33356H4.73833C5.06187 1.33038 5.37552 1.44495 5.62084 1.65592C5.86615 1.86689 6.02638 2.15986 6.07166 2.48023C6.15608 3.12027 6.31263 3.74871 6.53833 4.35356C6.62802 4.59218 6.64744 4.8515 6.59427 5.10081C6.5411 5.35012 6.41757 5.57897 6.23833 5.76023L5.39166 6.60689C6.3407 8.27592 7.72263 9.65786 9.39166 10.6069L10.2383 9.76023C10.4196 9.58099 10.6484 9.45746 10.8977 9.40429C11.1471 9.35112 11.4064 9.37053 11.645 9.46023C12.2498 9.68593 12.8783 9.84248 13.5183 9.92689C13.8422 9.97258 14.1379 10.1357 14.3494 10.3852C14.5608 10.6348 14.6731 10.9533 14.665 11.2802Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146516\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <span class=\"text-sm font-medium map-subtext text-gray-800\">\r\n {{selectedStore?.storeType?.name ? selectedStore?.storeType?.name:'--'}}\r\n </span>\r\n </span>\r\n </div>\r\n \r\n <div class=\"flex items-center gap-5 my-3\">\r\n <span class=\"text-sm text-gray-600\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146529)\">\r\n <path\r\n d=\"M9 4.5V9L12 10.5M16.5 9C16.5 13.1421 13.1421 16.5 9 16.5C4.85786 16.5 1.5 13.1421 1.5 9C1.5 4.85786 4.85786 1.5 9 1.5C13.1421 1.5 16.5 4.85786 16.5 9Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146529\">\r\n <rect width=\"18\" height=\"18\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <span class=\"text-sm font-medium text-gray-800\">\r\n {{dataStoreMap?.hourlyData?.openTime ? dataStoreMap?.hourlyData?.openTime:'--'}} - {{dataStoreMap?.hourlyData?.closeTime ? dataStoreMap?.hourlyData?.closeTime:'--'}}\r\n </span>\r\n </span>\r\n </div>\r\n <div class=\"flex flex-col my-3\">\r\n <a class=\"map-avg\">\r\n {{dataStoreMap?.avgData?.avgFootfall ? dataStoreMap?.avgData?.avgFootfall:'--'}}\r\n </a>\r\n <br>\r\n <span class=\"text-sm text-gray-700 map-avgtest\">\r\n Avg Footfall \r\n <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146536)\">\r\n <path\r\n d=\"M6 8V6M6 4H6.005M11 6C11 8.76142 8.76142 11 6 11C3.23858 11 1 8.76142 1 6C1 3.23858 3.23858 1 6 1C8.76142 1 11 3.23858 11 6Z\"\r\n stroke=\"#98A2B3\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146536\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </span>\r\n </div>\r\n <div class=\"flex flex-col my-3\">\r\n <a class=\"map-avg\">\r\n {{dataStoreMap?.avgData?.avgWeekdayFootfall ? dataStoreMap?.avgData?.avgWeekdayFootfall:'--'}}\r\n </a>\r\n <br>\r\n <span class=\"text-sm text-gray-700 map-avgtest\">\r\n Avg Weekday Footfall <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146536)\">\r\n <path\r\n d=\"M6 8V6M6 4H6.005M11 6C11 8.76142 8.76142 11 6 11C3.23858 11 1 8.76142 1 6C1 3.23858 3.23858 1 6 1C8.76142 1 11 3.23858 11 6Z\"\r\n stroke=\"#98A2B3\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146536\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </span>\r\n </div>\r\n <div class=\"flex flex-col my-3\">\r\n <a class=\"map-avg\">\r\n {{dataStoreMap?.avgData?.avgWeekendFootfall ? dataStoreMap?.avgData?.avgWeekendFootfall:'--'}}\r\n </a>\r\n <br>\r\n <span class=\"text-sm text-gray-700 map-avgtest\">\r\n Avg Weekend Footfall <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146536)\">\r\n <path\r\n d=\"M6 8V6M6 4H6.005M11 6C11 8.76142 8.76142 11 6 11C3.23858 11 1 8.76142 1 6C1 3.23858 3.23858 1 6 1C8.76142 1 11 3.23858 11 6Z\"\r\n stroke=\"#98A2B3\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146536\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </span>\r\n </div>\r\n \r\n \r\n \r\n </div>\r\n </div>\r\n <div class=\"card-footer border-0 px-0\">\r\n <div class=\"mt-5 col-lg-12\">\r\n <button class=\"btn btn-light-primary1 w-100 px-2\" (click)=\"storeView(storeId)\"><span class=\"ms-2\">View more\r\n Details</span></button>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n</div>\r\n\r\n<!-- <div *ngIf=\"loading\" class=\"row px-3 loader card d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n</div> -->\r\n<div *ngIf=\"noData\" class=\"row px-3\">\r\n <div class=\"card\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-nodata-table\" src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\">\r\n <div class=\"nodata-title\">No data found</div>\r\n <div class=\"nodata-sub\">There is no result for this Store map</div>\r\n </div>\r\n </div>\r\n</div>", styles: ["#map{width:100%!important;position:relative}:host::ng-deep .mapboxgl-popup-content{background:var(--gradient-primary-800700265-deg, linear-gradient(27deg, #0082CC 8.33%, #0093E6 91.67%))!important}:host::ng-deep .map-container{height:500px;width:100%!important;position:relative;overflow:hidden}:host::ng-deep .mapboxgl-popup-anchor-bottom .mapboxgl-popup-tip{align-self:center;border-bottom:none;border-top-color:#008ddc;display:none!important}#map{top:0;bottom:0;width:100%}.marker{display:block;border:none;border-radius:50%;cursor:pointer;padding:0}.tooltip{position:absolute;background-color:#fff;padding:5px 10px;border-radius:4px;box-shadow:0 2px 6px #00000026;z-index:3;font-size:12px;pointer-events:none}.mapboxgl-popup{background-color:#fffc;border-radius:8px;padding:10px}.mapboxgl-popup-content{background-color:#fffc;color:#fff;padding:5px;border-radius:5px}.leftIcon{width:50px;height:50px;left:-25px;top:31px}.card-title .card-label{color:var(--Gray-900, #101828)!important;font-family:Inter;font-size:14px!important;font-weight:600!important;line-height:20px}.btn-light-primary1{color:var(--White, #FFF)!important;font-size:14px;font-style:normal;font-weight:600;line-height:20px;text-transform:capitalize;border-radius:8px!important;border:1px solid var(--Primary-600, #00A3FF)!important;background:var(--Primary-600, #00A3FF)!important;box-shadow:0 1px 2px #1018280d!important}.map-subtext{color:var(--Gray-500, #667085)!important;font-size:12px!important;font-style:normal;font-weight:500!important;line-height:18px}.map-avg{color:var(--Gray-700, #344054)!important;font-size:18px!important;font-style:normal;font-weight:600;line-height:28px}.map-avgtest{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-style:normal;font-weight:500;line-height:20px}.img-nodata-table{width:35%;height:20%}:host::ng-deep .mapboxgl-popup-close-button{background-color:transparent;border:0;border-radius:0 3px 0 0;cursor:pointer;position:absolute;right:0;top:0;outline:none!important;display:none!important}.nodata-title{font-size:14px!important;font-weight:600}.no-preview{border:1px solid #F04438;background:#fee4e2;border-radius:8px;stroke-width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:41px 16px}.no-preview .header{color:#f04438;font-size:20px;font-weight:700;line-height:20px}.no-preview .description{color:#f04438;font-size:12px;font-weight:500;line-height:18px}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
209
277
|
}
|
|
210
278
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ExploreViewComponent, decorators: [{
|
|
211
279
|
type: Component,
|
|
212
|
-
args: [{ selector: 'lib-explore-view', template: "<div *ngIf=\"!noData\" class=\"row\">\r\n <div [ngClass]=\"setClass\">\r\n <div class=\"card px-2 py-3\">\r\n <div class=\"d-flex align-items-center me-2\">\r\n <div class=\"flex-shrink-0\">\r\n <span class=\"cursor-pointer\" (click)=\"backToFootfall()\">\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <g filter=\"url(#filter0_d_2585_7036)\">\r\n <rect x=\"2\" y=\"1\" width=\"36\" height=\"36\" rx=\"8\" fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"35\" height=\"35\" rx=\"7.5\" stroke=\"#D0D5DD\" />\r\n <path d=\"M25.8327 19H14.166M14.166 19L19.9993 24.8334M14.166 19L19.9993 13.1667\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_2585_7036\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"\r\n filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_2585_7036\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_2585_7036\"\r\n result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg>\r\n </span>\r\n </div>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div id=\"map\" style=\"width: 100%; height: 100vh;\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"auth\" class=\"col-md-3\">\r\n <div class=\"card px-5 h-100 py-3 position-relative\">\r\n <img (click)=\"toggleAuth()\" class=\"leftIcon position-absolute left-0 cursor-pointer\"\r\n src=\"assets/tango/Image/leftIcon.svg\">\r\n <img class=\"w-100\" src=\"assets/tango/Image/baseimg.png\">\r\n <div class=\"card-header mt-3 px-0 border-0 min-h-10px\">\r\n <div class=\"col-md-12\">\r\n <h3 class=\"card-title align-items-start d-flex\">\r\n <span class=\"card-label\">{{selectedStore.storeName ?? '--'}}</span>\r\n <span class=\"badge badge-light-primary mt-1\">App ID : {{selectedStore.appId ?? '--'}}</span>\r\n </h3>\r\n </div>\r\n \r\n </div>\r\n <div class=\"card-body pt-0 px-0\">\r\n <div class=\"col-md-12\">\r\n <span class=\"map-subtext\">{{selectedStore?.storeProfile?.address ? selectedStore?.storeProfile?.address:'--'}} {{selectedStore?.storeProfile?.country ? selectedStore?.storeProfile?.country:'--'}} {{selectedStore?.storeProfile?.pincode ? selectedStore?.storeProfile?.pincode:'--'}}</span>\r\n <div class=\"flex items-center gap-5 mt-3\">\r\n <span class=\"text-sm text-gray-600\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M13.3346 14V12.6667C13.3346 11.9594 13.0537 11.2811 12.5536 10.781C12.0535 10.281 11.3752 10 10.668 10H5.33464C4.62739 10 3.94911 10.281 3.44902 10.781C2.94892 11.2811 2.66797 11.9594 2.66797 12.6667V14M10.668 4.66667C10.668 6.13943 9.47406 7.33333 8.0013 7.33333C6.52854 7.33333 5.33464 6.13943 5.33464 4.66667C5.33464 3.19391 6.52854 2 8.0013 2C9.47406 2 10.668 3.19391 10.668 4.66667Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <span class=\"text-sm font-medium map-subtext text-gray-800\">\r\n {{selectedStore?.spocDetails?.name ?selectedStore?.spocDetails?.name:'--'}}\r\n </span>\r\n </span>\r\n <span class=\"text-sm text-gray-600 mx-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146516)\">\r\n <path\r\n d=\"M14.665 11.2802V13.2802C14.6657 13.4659 14.6277 13.6497 14.5533 13.8198C14.479 13.9899 14.3699 14.1426 14.233 14.2681C14.0962 14.3937 13.9347 14.4892 13.7588 14.5487C13.5829 14.6082 13.3966 14.6303 13.2117 14.6136C11.1602 14.3907 9.18966 13.6897 7.45833 12.5669C5.84755 11.5433 4.48189 10.1777 3.45833 8.56689C2.33165 6.8277 1.63049 4.84756 1.41166 2.78689C1.395 2.60254 1.41691 2.41673 1.47599 2.24131C1.53508 2.06589 1.63004 1.90469 1.75484 1.76797C1.87964 1.63126 2.03153 1.52203 2.20086 1.44724C2.37018 1.37245 2.55322 1.33374 2.73833 1.33356H4.73833C5.06187 1.33038 5.37552 1.44495 5.62084 1.65592C5.86615 1.86689 6.02638 2.15986 6.07166 2.48023C6.15608 3.12027 6.31263 3.74871 6.53833 4.35356C6.62802 4.59218 6.64744 4.8515 6.59427 5.10081C6.5411 5.35012 6.41757 5.57897 6.23833 5.76023L5.39166 6.60689C6.3407 8.27592 7.72263 9.65786 9.39166 10.6069L10.2383 9.76023C10.4196 9.58099 10.6484 9.45746 10.8977 9.40429C11.1471 9.35112 11.4064 9.37053 11.645 9.46023C12.2498 9.68593 12.8783 9.84248 13.5183 9.92689C13.8422 9.97258 14.1379 10.1357 14.3494 10.3852C14.5608 10.6348 14.6731 10.9533 14.665 11.2802Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146516\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <span class=\"text-sm font-medium map-subtext text-gray-800\">\r\n {{selectedStore?.spocDetails?.contact ?selectedStore?.spocDetails?.contact:'--'}}\r\n </span>\r\n </span>\r\n </div>\r\n <div class=\"my-3\">\r\n <span class=\"text-sm text-gray-600\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M14.6654 3.99984C14.6654 3.2665 14.0654 2.6665 13.332 2.6665H2.66536C1.93203 2.6665 1.33203 3.2665 1.33203 3.99984M14.6654 3.99984V11.9998C14.6654 12.7332 14.0654 13.3332 13.332 13.3332H2.66536C1.93203 13.3332 1.33203 12.7332 1.33203 11.9998V3.99984M14.6654 3.99984L7.9987 8.6665L1.33203 3.99984\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <span class=\"text-sm font-medium map-subtext text-gray-800\">\r\n {{selectedStore?.spocDetails?.email ? selectedStore?.spocDetails?.email:'--'}}\r\n </span>\r\n </span>\r\n </div>\r\n <div class=\"flex items-center gap-5 my-3\">\r\n <span class=\"text-sm text-gray-600 \">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M13.3346 14V12.6667C13.3346 11.9594 13.0537 11.2811 12.5536 10.781C12.0535 10.281 11.3752 10 10.668 10H5.33464C4.62739 10 3.94911 10.281 3.44902 10.781C2.94892 11.2811 2.66797 11.9594 2.66797 12.6667V14M10.668 4.66667C10.668 6.13943 9.47406 7.33333 8.0013 7.33333C6.52854 7.33333 5.33464 6.13943 5.33464 4.66667C5.33464 3.19391 6.52854 2 8.0013 2C9.47406 2 10.668 3.19391 10.668 4.66667Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <span class=\"text-sm font-medium map-subtext text-gray-800\">\r\n {{selectedStore?.storeType?.type ? selectedStore?.storeType?.type:'--'}}\r\n </span>\r\n </span>\r\n <span class=\"text-sm text-gray-600 mx-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146516)\">\r\n <path\r\n d=\"M14.665 11.2802V13.2802C14.6657 13.4659 14.6277 13.6497 14.5533 13.8198C14.479 13.9899 14.3699 14.1426 14.233 14.2681C14.0962 14.3937 13.9347 14.4892 13.7588 14.5487C13.5829 14.6082 13.3966 14.6303 13.2117 14.6136C11.1602 14.3907 9.18966 13.6897 7.45833 12.5669C5.84755 11.5433 4.48189 10.1777 3.45833 8.56689C2.33165 6.8277 1.63049 4.84756 1.41166 2.78689C1.395 2.60254 1.41691 2.41673 1.47599 2.24131C1.53508 2.06589 1.63004 1.90469 1.75484 1.76797C1.87964 1.63126 2.03153 1.52203 2.20086 1.44724C2.37018 1.37245 2.55322 1.33374 2.73833 1.33356H4.73833C5.06187 1.33038 5.37552 1.44495 5.62084 1.65592C5.86615 1.86689 6.02638 2.15986 6.07166 2.48023C6.15608 3.12027 6.31263 3.74871 6.53833 4.35356C6.62802 4.59218 6.64744 4.8515 6.59427 5.10081C6.5411 5.35012 6.41757 5.57897 6.23833 5.76023L5.39166 6.60689C6.3407 8.27592 7.72263 9.65786 9.39166 10.6069L10.2383 9.76023C10.4196 9.58099 10.6484 9.45746 10.8977 9.40429C11.1471 9.35112 11.4064 9.37053 11.645 9.46023C12.2498 9.68593 12.8783 9.84248 13.5183 9.92689C13.8422 9.97258 14.1379 10.1357 14.3494 10.3852C14.5608 10.6348 14.6731 10.9533 14.665 11.2802Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146516\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <span class=\"text-sm font-medium map-subtext text-gray-800\">\r\n {{selectedStore?.storeType?.name ? selectedStore?.storeType?.name:'--'}}\r\n </span>\r\n </span>\r\n </div>\r\n \r\n <div class=\"flex items-center gap-5 my-3\">\r\n <span class=\"text-sm text-gray-600\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146529)\">\r\n <path\r\n d=\"M9 4.5V9L12 10.5M16.5 9C16.5 13.1421 13.1421 16.5 9 16.5C4.85786 16.5 1.5 13.1421 1.5 9C1.5 4.85786 4.85786 1.5 9 1.5C13.1421 1.5 16.5 4.85786 16.5 9Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146529\">\r\n <rect width=\"18\" height=\"18\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <span class=\"text-sm font-medium text-gray-800\">\r\n {{selectedStore?.openTime ? selectedStore?.openTime:'--'}} - {{selectedStore?.closeTime ? selectedStore?.closeTime:'--'}}\r\n </span>\r\n </span>\r\n </div>\r\n <div class=\"flex flex-col my-3\">\r\n <a class=\"map-avg\">\r\n {{selectedStore?.avgFootfall? selectedStore?.avgFootfall:'--'}}\r\n </a>\r\n <br>\r\n <span class=\"text-sm text-gray-700 map-avgtest\">\r\n Avg Footfall \r\n <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146536)\">\r\n <path\r\n d=\"M6 8V6M6 4H6.005M11 6C11 8.76142 8.76142 11 6 11C3.23858 11 1 8.76142 1 6C1 3.23858 3.23858 1 6 1C8.76142 1 11 3.23858 11 6Z\"\r\n stroke=\"#98A2B3\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146536\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </span>\r\n </div>\r\n <div class=\"flex flex-col my-3\">\r\n <a class=\"map-avg\">\r\n {{selectedStore?.avgWeekdayFootfall ? selectedStore?.avgWeekdayFootfall:'--'}}\r\n </a>\r\n <br>\r\n <span class=\"text-sm text-gray-700 map-avgtest\">\r\n Avg Weekday Footfall <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146536)\">\r\n <path\r\n d=\"M6 8V6M6 4H6.005M11 6C11 8.76142 8.76142 11 6 11C3.23858 11 1 8.76142 1 6C1 3.23858 3.23858 1 6 1C8.76142 1 11 3.23858 11 6Z\"\r\n stroke=\"#98A2B3\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146536\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </span>\r\n </div>\r\n <div class=\"flex flex-col my-3\">\r\n <a class=\"map-avg\">\r\n {{selectedStore?.avgWeekendFootfall ? selectedStore?.avgWeekendFootfall:'--'}}\r\n </a>\r\n <br>\r\n <span class=\"text-sm text-gray-700 map-avgtest\">\r\n Avg Weekend Footfall <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146536)\">\r\n <path\r\n d=\"M6 8V6M6 4H6.005M11 6C11 8.76142 8.76142 11 6 11C3.23858 11 1 8.76142 1 6C1 3.23858 3.23858 1 6 1C8.76142 1 11 3.23858 11 6Z\"\r\n stroke=\"#98A2B3\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146536\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </span>\r\n </div>\r\n \r\n \r\n <!-- <div class=\"mt-5 col-lg-12\">\r\n <button class=\"btn btn-light-primary1 w-100 px-2\"><span class=\"ms-2\">View more\r\n Details</span></button>\r\n </div> -->\r\n </div>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"loading\" class=\"row px-3 loader card d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n</div>\r\n<div *ngIf=\"noData\" class=\"row px-3\">\r\n <div class=\"card\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-nodata-table\" src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\">\r\n <div class=\"nodata-title\">No data found</div>\r\n <div class=\"nodata-sub\">There is no result for this Store map</div>\r\n </div>\r\n </div>\r\n</div>", styles: ["#map{width:100%!important;position:relative}:host::ng-deep .mapboxgl-popup-content{background:var(--gradient-primary-800700265-deg, linear-gradient(27deg, #0082CC 8.33%, #0093E6 91.67%))!important}:host::ng-deep .map-container{height:500px;width:100%!important;position:relative;overflow:hidden}:host::ng-deep .mapboxgl-popup-anchor-bottom .mapboxgl-popup-tip{align-self:center;border-bottom:none;border-top-color:#008ddc;display:none!important}#map{top:0;bottom:0;width:100%}.marker{display:block;border:none;border-radius:50%;cursor:pointer;padding:0}.tooltip{position:absolute;background-color:#fff;padding:5px 10px;border-radius:4px;box-shadow:0 2px 6px #00000026;z-index:3;font-size:12px;pointer-events:none}.mapboxgl-popup{background-color:#fffc;border-radius:8px;padding:10px}.mapboxgl-popup-content{background-color:#fffc;color:#fff;padding:5px;border-radius:5px}.leftIcon{width:50px;height:50px;left:-25px;top:31px}.card-title .card-label{color:var(--Gray-900, #101828)!important;font-family:Inter;font-size:12px!important;font-weight:600!important;line-height:20px}.btn-light-primary1{color:var(--White, #FFF)!important;font-size:14px;font-style:normal;font-weight:600;line-height:20px;text-transform:capitalize;border-radius:8px!important;border:1px solid var(--Primary-600, #00A3FF)!important;background:var(--Primary-600, #00A3FF)!important;box-shadow:0 1px 2px #1018280d!important}.map-subtext{color:var(--Gray-500, #667085)!important;font-size:12px!important;font-style:normal;font-weight:500!important;line-height:18px}.map-avg{color:var(--Gray-700, #344054)!important;font-size:18px!important;font-style:normal;font-weight:600;line-height:28px}.map-avgtest{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-style:normal;font-weight:500;line-height:20px}.img-nodata-table{width:35%;height:20%}:host::ng-deep .mapboxgl-popup-close-button{background-color:transparent;border:0;border-radius:0 3px 0 0;cursor:pointer;position:absolute;right:0;top:0;outline:none!important;display:none!important}.nodata-title{font-size:14px!important;font-weight:600}\n"] }]
|
|
213
|
-
}], ctorParameters: () => [{ type: i1.
|
|
214
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwbG9yZS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFuYWx5c2UtdHJhZmZpYy9zcmMvbGliL2NvbXBvbmVudHMvZXhwbG9yZS12aWV3L2V4cGxvcmUtdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYWZmaWMvc3JjL2xpYi9jb21wb25lbnRzL2V4cGxvcmUtdmlldy9leHBsb3JlLXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFvQyxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFHcEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFDLE9BQU8sS0FBSyxRQUFRLE1BQU0sV0FBVyxDQUFDOzs7Ozs7QUFNdEMsTUFBTSxPQUFPLG9CQUFvQjtJQWtCWjtJQUErQjtJQUErQjtJQUFzQjtJQWpCdkcsVUFBVSxDQUFNO0lBQ2hCLFlBQVksQ0FBTTtJQUVsQixvQ0FBb0M7SUFDcEMsV0FBVyxHQUFVLEVBQUUsQ0FBQztJQUN4QixVQUFVLEdBQTJCO1FBQ25DLEtBQUssRUFBRSxhQUFhO1FBQ3BCLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtRQUMxQixJQUFJLEVBQUUsRUFBRTtLQUNULENBQUM7SUFDZSxRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUNuQyxJQUFJLEdBQVksS0FBSyxDQUFDLENBQUUsdUNBQXVDO0lBQy9ELFFBQVEsR0FBVyxXQUFXLENBQUM7SUFDdEMsYUFBYSxDQUFNO0lBQ25CLE9BQU8sR0FBVSxJQUFJLENBQUM7SUFDdEIsTUFBTSxHQUFX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QUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztpQkFDcEIsU0FBUyxDQUFDLFdBQVcsQ0FBQztpQkFDdEIsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFFLGlDQUFpQztpQkFDbEQsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBUztRQUNwQixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsSUFBSSxHQUFFLElBQUksQ0FBQztRQUNoQixJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQyxDQUFDLGlEQUFpRDtJQUMvRSxDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUM7SUFDdkQsQ0FBQztJQUVDLGNBQWM7UUFDZCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQTtJQUMzQyxDQUFDO3dHQS9NVSxvQkFBb0I7NEZBQXBCLG9CQUFvQix3RENaakMsNjRtQkE4UE07OzRGRGxQTyxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0Usa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRyYWZmaWNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJhZmZpYy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgR2xvYmFsU3RhdGVTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLWdsb2JhbCc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0ICogYXMgbWFwYm94Z2wgZnJvbSAnbWFwYm94LWdsJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZXhwbG9yZS12aWV3JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZXhwbG9yZS12aWV3LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vZXhwbG9yZS12aWV3LmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRXhwbG9yZVZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQgIHtcclxuICBoZWFkZXJEYXRhOiBhbnk7XHJcbiAgc3RvcmVJZGFycmF5OiBhbnk7XHJcbiAgXHJcbiAgLy8gbWFwOiBnb29nbGUubWFwcy5NYXAgfCB1bmRlZmluZWQ7XHJcbiAgYXVMb2NhdGlvbnM6IGFueVtdID0gW107XHJcbiAgbWFwT3B0aW9uczogZ29vZ2xlLm1hcHMuTWFwT3B0aW9ucyA9IHtcclxuICAgIG1hcElkOiBcIkRFTU9fTUFQX0lEXCIsXHJcbiAgICBjZW50ZXI6IHsgbGF0OiAwLCBsbmc6IDAgfSwgIC8vIEluaXRpYWwgY2VudGVyXHJcbiAgICB6b29tOiAxMCxcclxuICB9O1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG4gIHB1YmxpYyBhdXRoOiBib29sZWFuID0gZmFsc2U7ICAvLyBTZXQgdGhpcyBiYXNlZCBvbiB5b3VyIGluaXRpYWwgbG9naWNcclxuICBwdWJsaWMgc2V0Q2xhc3M6IHN0cmluZyA9ICdjb2wtbWQtMTInO1xyXG4gIHNlbGVjdGVkU3RvcmU6IGFueTtcclxuICBsb2FkaW5nOmJvb2xlYW4gPXRydWU7XHJcbiAgbm9EYXRhOiBib29sZWFuID1mYWxzZTtcclxuICBkYXRhSW1hZ2VzOiBhbnk7XHJcbmNvbnN0cnVjdG9yKCBwcml2YXRlIHNlcnZpY2U6IFRyYWZmaWNTZXJ2aWNlLHB1YmxpYyBnczogR2xvYmFsU3RhdGVTZXJ2aWNlLHByaXZhdGUgcm91dGVyOlJvdXRlcixwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZil7XHJcblxyXG59XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAobWFwYm94Z2wgYXMgYW55KS5hY2Nlc3NUb2tlbiA9ICdway5leUoxSWpvaVltRnNZV3BwZEdGdVoyOGlMQ0poSWpvaVkyMHdaMnhpZW01NU1ERnhZVEozYjIxemIzRmpOSGR3YXlKOS5ubklJenQ3T2VZbFlIdWZHRThsRldRJztcclxuXHJcbiAgICB0aGlzLmdzLmRhdGFSYW5nZVZhbHVlXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSwgZGVib3VuY2VUaW1lKDMwMCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgIC8vIE9ubHkgcHJvY2VzcyB0aGUgbGF0ZXN0IGRhdGEgYWZ0ZXIgZGVib3VuY2UgdGltZVxyXG4gICAgICAgIHRoaXMuaGVhZGVyRGF0YSA9IGRhdGE7XHJcbiAgICAgICAgdGhpcy5zdG9yZUlkYXJyYXkgPSB0aGlzLmhlYWRlckRhdGE/LnN0b3Jlcy5maWx0ZXIoKHN0b3JlOmFueSkgPT4gc3RvcmUuY2hlY2tlZCkubWFwKChzdG9yZTphbnkpID0+IHN0b3JlLnN0b3JlSWQpXHJcbiAgICAgICBcclxuICAgICAgICB0aGlzLmdldE1hcCgpO1xyXG4gICAgICB9KVxyXG4gICAgICBcclxuICAgIH1cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XHJcbiAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICAgIH1cclxuXHJcblxyXG5cclxuXHJcbiAgbWFwOiBtYXBib3hnbC5NYXA7XHJcblxyXG4gIGdldE1hcCgpIHtcclxuICAgIHRoaXMubG9hZGluZyA9dHJ1ZTtcclxuICAgIGNvbnN0IG9iaiA9IHtcclxuICAgICAgY2xpZW50SWQ6IHRoaXMuaGVhZGVyRGF0YS5jbGllbnQsXHJcbiAgICAgIHN0b3JlRGF0ZTogdGhpcy5oZWFkZXJEYXRhLmRhdGUuZW5kRGF0ZSxcclxuICAgICAgc3RvcmVJZDogdGhpcy5zdG9yZUlkYXJyYXlcclxuICAgIH07XHJcbiAgXHJcbiAgICB0aGlzLnNlcnZpY2UuZ2VNYXBzKG9iaik/LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmRhdGEgJiYgcmVzLmRhdGEuc3RvcmVEYXRhKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYXVMb2NhdGlvbnMgPSByZXMuZGF0YS5zdG9yZURhdGE7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0RGF0YSgpO1xyXG4gICAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgICAgaWYgKHRoaXMuYXVMb2NhdGlvbnMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGZpcnN0TG9jYXRpb24gPSB0aGlzLmF1TG9jYXRpb25zWzBdO1xyXG4gICAgICAgICAgICAgIGlmIChmaXJzdExvY2F0aW9uICYmIHR5cGVvZiBmaXJzdExvY2F0aW9uLmxhdCA9PT0gJ251bWJlcicgJiYgdHlwZW9mIGZpcnN0TG9jYXRpb24ubG5nID09PSAnbnVtYmVyJykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tYXBPcHRpb25zID0ge1xyXG4gICAgICAgICAgICAgICAgICAuLi50aGlzLm1hcE9wdGlvbnMsXHJcbiAgICAgICAgICAgICAgICAgIGNlbnRlcjogeyBsYXQ6IGZpcnN0TG9jYXRpb24ubGF0LCBsbmc6IGZpcnN0TG9jYXRpb24ubG5nIH1cclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICBcclxuICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID1mYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5ub0RhdGEgPWZhbHNlO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID1mYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5ub0RhdGEgPXRydWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID1mYWxzZTtcclxuICAgICAgICAgIHRoaXMubm9EYXRhID10cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIFxyXG4gIGdldERhdGEoKSB7XHJcbiAgICAvLyBDaGVjayB0aGF0IGxvY2F0aW9ucyBleGlzdCBiZWZvcmUgcHJvY2VlZGluZ1xyXG4gICAgaWYgKHRoaXMuYXVMb2NhdGlvbnMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICBcclxuICAgIGNvbnN0IGdlb2pzb24gPSB7XHJcbiAgICAgICd0eXBlJzogJ0ZlYXR1cmVDb2xsZWN0aW9uJyxcclxuICAgICAgJ2ZlYXR1cmVzJzogdGhpcy5hdUxvY2F0aW9ucy5tYXAoKHN0b3JlLCBpbmRleCkgPT4gKHtcclxuICAgICAgICAndHlwZSc6ICdGZWF0dXJlJyxcclxuICAgICAgICAncHJvcGVydGllcyc6IHtcclxuICAgICAgICAgICdzdG9yZU5hbWUnOiBzdG9yZS5zdG9yZU5hbWUsICAgICAgICAgLy8gU3RvcmUgbmFtZVxyXG4gICAgICAgICAgJ2ltYWdlSWQnOiAxMDExICsgaW5kZXgsICAgICAgICAgICAgICAvLyBEeW5hbWljIGltYWdlIElEXHJcbiAgICAgICAgICAnaWNvblNpemUnOiBbNjAsIDYwXSwgICAgICAgICAgICAgICAgIC8vIEFkanVzdCBpY29uIHNpemUgYXMgbmVlZGVkXHJcbiAgICAgICAgICAnZm9vdGZhbGwnOiBzdG9yZS5hdmdGb290ZmFsbCwgICAgICAgIC8vIEZvb3RmYWxsIGRhdGFcclxuICAgICAgICAgICdvcGVuVGltZSc6IHN0b3JlLm9wZW5UaW1lLCAgICAgICAgICAgLy8gT3BlbiB0aW1lXHJcbiAgICAgICAgICAnY2xvc2VUaW1lJzogc3RvcmUuY2xvc2VUaW1lLCAgICAgICAgIC8vIENsb3NlIHRpbWVcclxuICAgICAgICB9LFxyXG4gICAgICAgICdnZW9tZXRyeSc6IHtcclxuICAgICAgICAgICd0eXBlJzogJ1BvaW50JyxcclxuICAgICAgICAgICdjb29yZGluYXRlcyc6IFtzdG9yZS5sbmcsIHN0b3JlLmxhdF0gIC8vIENvb3JkaW5hdGVzIGZyb20gc3RvcmUgZGF0YVxyXG4gICAgICAgIH1cclxuICAgICAgfSkpXHJcbiAgICB9O1xyXG4gIFxyXG4gICAgLy8gRHluYW1pY2FsbHkgc2V0IG1hcCBjZW50ZXIgYmFzZWQgb24gdGhlIGZpcnN0IGxvY2F0aW9uXHJcbiAgICBjb25zdCBmaXJzdExvY2F0aW9uID0gdGhpcy5hdUxvY2F0aW9uc1swXTtcclxuICAgIHRoaXMubWFwID0gbmV3IG1hcGJveGdsLk1hcCh7XHJcbiAgICAgIGNvbnRhaW5lcjogJ21hcCcsXHJcbiAgICAgIHN0eWxlOiAnbWFwYm94Oi8vc3R5bGVzL21hcGJveC9zdHJlZXRzLXYxMicsXHJcbiAgICAgIGNlbnRlcjogW2ZpcnN0TG9jYXRpb24ubG5nLCBmaXJzdExvY2F0aW9uLmxhdF0sIC8vIENlbnRlciBtYXAgb24gdGhlIGZpcnN0IGxvY2F0aW9uXHJcbiAgICAgIHpvb206IDQgLy8gQWRqdXN0IHpvb20gYXMgbmVjZXNzYXJ5XHJcbiAgICB9KTtcclxuICBcclxuICAgIC8vIEFkZCBtYXJrZXJzIHRvIHRoZSBtYXBcclxuICAgIGdlb2pzb24uZmVhdHVyZXMuZm9yRWFjaCgoZmVhdHVyZSwgZmVhdHVyZUluZGV4KSA9PiB7XHJcbiAgICAgIGNvbnN0IHsgcHJvcGVydGllcywgZ2VvbWV0cnkgfSA9IGZlYXR1cmU7XHJcblxyXG4gICAgICBjb25zdCBlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgICBjb25zdCB3aWR0aCA9IHByb3BlcnRpZXMuaWNvblNpemVbMF07XHJcbiAgICAgIGNvbnN0IGhlaWdodCA9IHByb3BlcnRpZXMuaWNvblNpemVbMV07XHJcbiAgICAgIGVsLmNsYXNzTmFtZSA9ICdtYXJrZXInO1xyXG4gICAgICBlbC5pbm5lckhUTUwgPSBgXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtYXJrZXItaWNvblwiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7IHdpZHRoOiA2NXB4OyBoZWlnaHQ6IDcwcHg7IGRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogY2VudGVyOyBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWFya2VyLWNvbnRlbnRcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGFsaWduLWl0ZW1zOiBjZW50ZXI7XCI+XHJcbiAgICAgICAgICA8c3ZnIGNsYXNzPVwibWItMVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjEzXCIgaGVpZ2h0PVwiMTNcIiB2aWV3Qm94PVwiMCAwIDEzIDEzXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgPHBhdGggZD1cIk0xLjMzNjU0IDMuMzYzN0wxLjI5NjU4IDMuNDI2MTFDMC44Nzc2OTggNC4xNjcwMSAxLjMyNDkzIDUuMTAzMzUgMi4xMjkzMSA1LjIxMDc2QzIuMjAyMTggNS4yMTk2NyAyLjI2OTk5IDUuMjI0MzggMi4zMzYyNSA1LjIyNDM4QzIuNzcwMjEgNS4yMjQzOCAzLjE1MzkgNS4wMzgyMSAzLjQyMTMyIDQuNzQ3OTNMMy44MzY2NiA0LjI5NzFMNC4yNTA1OSA0Ljc0OTIzQzQuNTE0NzYgNS4wMzc3OCA0Ljg5NzU4IDUuMjI0MzggNS4zMzQ0OCA1LjIyNDM4QzUuNzY5NDEgNS4yMjQzOCA2LjE1NDQzIDUuMDM3NTIgNi40MTgzNyA0Ljc0OTIzTDYuODMzNTkgNC4yOTU2OEw3LjI0ODgyIDQuNzQ5MjNDNy41MTI3NSA1LjAzNzUyIDcuODk3NzcgNS4yMjQzOCA4LjMzMjcxIDUuMjI0MzhDOC43Njc2NCA1LjIyNDM4IDkuMTUyNjYgNS4wMzc1MiA5LjQxNjYgNC43NDkyM0w5LjgzMTgyIDQuMjk1NjhMMTAuMjQ3IDQuNzQ5MjNDMTAuNTExIDUuMDM3NTIgMTAuODk2IDUuMjI0MzggMTEuMzMwOSA1LjIyNDM4QzExLjM5NSA1LjIyNDM4IDExLjQ2NDkgNS4yMTk2NiAxMS41MzcyIDUuMjEwODNDMTIuMzU5MyA1LjA5ODc1IDEyLjgwOCA0LjExMjI1IDEyLjMyODYgMy4zNjQwOEMxMi4zMjg2IDMuMzY0MDMgMTIuMzI4NSAzLjM2Mzk5IDEyLjMyODUgMy4zNjM5NUwxMS4wMDg4IDEuMzA2MjFMMTEuMDA4MSAxLjMwNTExQzEwLjk5NjcgMS4yODcyMiAxMC45Njg2IDEuMjY4MDQgMTAuOTMzMiAxLjI2ODA0SDIuNzI5NDJDMi42OTQwMyAxLjI2ODA0IDIuNjY1ODkgMS4yODcyMiAyLjY1NDQ4IDEuMzA1MTFMMi42NTQwMSAxLjMwNTg0TDEuMzM2NTQgMy4zNjM3Wk0xMS4wNzMxIDcuMDY2NjdWOS40MTc1M1Y5Ljk4MDQ5SDEwLjUxMDFIMy4xNTI0OEgyLjU4OTUyVjkuNDE3NTNWNy4wNjcwMkMyLjUwNjc4IDcuMDczMTggMi40MjMwOCA3LjA3NjM0IDIuMzM4NTUgNy4wNzYzNEMyLjMwNjc5IDcuMDc2MzQgMi4yNzUyNSA3LjA3NTg3IDIuMjQzOTIgNy4wNzQ5NVY5LjQxNzUzVjEwLjg2OTZDMi4yNDM5MiAxMS4zNTI2IDIuNjQ0NjcgMTEuNzU4NyAzLjE1MjQ4IDExLjc1ODdIMTAuNTEwMUMxMS4wMTc5IDExLjc1ODcgMTEuNDE4NyAxMS4zNTI2IDExLjQxODcgMTAuODY5NlY5LjQxNzUzVjcuMDc1MDlDMTEuMzg4OCA3LjA3NTkxIDExLjM1ODcgNy4wNzYzNCAxMS4zMjg2IDcuMDc2MzRDMTEuMjQyOCA3LjA3NjM0IDExLjE1NzUgNy4wNzMwOCAxMS4wNzMxIDcuMDY2NjdaXCIgc3Ryb2tlPVwiIzEwMTgyOFwiIHN0cm9rZS13aWR0aD1cIjEuMTI1OTJcIi8+XHJcbiAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYXJrZXItbGFiZWxcIiBzdHlsZT1cImNvbG9yOiB2YXIoLS1HcmF5LTcwMCwgIzM0NDA1NCk7XHJcbnRleHQtYWxpZ246IGNlbnRlcjtcclxuZm9udC1mYW1pbHk6IEludGVyO1xyXG5mb250LXNpemU6IDkuMDA3cHg7XHJcbmZvbnQtc3R5bGU6IG5vcm1hbDtcclxuZm9udC13ZWlnaHQ6IDYwMDtcclxubGluZS1oZWlnaHQ6IDEzcHg7XCI+XHJcbiAgICAgICAgICAgICR7cHJvcGVydGllcy5zdG9yZU5hbWV9XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICBgO1xyXG4gICAgICBlbC5zdHlsZS53aWR0aCA9IGAke3dpZHRofXB4YDtcclxuICAgICAgZWwuc3R5bGUuaGVpZ2h0ID0gYCR7aGVpZ2h0fXB4YDtcclxuICAgICAgZWwuc3R5bGUuYmFja2dyb3VuZFNpemUgPSAnMTAwJSc7XHJcbiAgIC8vIEFwcGx5IGR5bmFtaWMgY2xhc3MgYmFzZWQgb24gYXV0aFxyXG4gICBjb25zdCBzdG9yZSA9IHRoaXMuYXVMb2NhdGlvbnNbZmVhdHVyZUluZGV4XTtcclxuICAgaWYgKHN0b3JlKSB7XHJcbiAgIGVsPy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcclxuICAgIHRoaXMuYWRqdXN0TGF5b3V0KHN0b3JlKTtcclxuICAgIGNvbnN0IG9iaiA9IHtcclxuICAgICAgY2xpZW50SWQ6IHRoaXMuaGVhZGVyRGF0YS5jbGllbnQsXHJcbiAgICAgIHN0b3JlSWQ6IFtzdG9yZT8uc3RvcmVJZF1cclxuICAgIH07XHJcbiAgdGhpcy5zZXJ2aWNlLmdldFN0b3JlQ2FtZXJhSW1hZ2Uob2JqKT8ucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgLnN1YnNjcmliZSh7XHJcbiAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgaWYocmVzICYmIHJlcz8uY29kZSA9PTIwMClcclxuICB0aGlzLmRhdGFJbWFnZXMgPXJlcz8uZGF0YT8uY2FtZXJhQmFzZUltYWdlO1xyXG5lbHNlIFxyXG50aGlzLmRhdGFJbWFnZXMgPSdhc3NldHMvdGFuZ28vSW1hZ2UvYmFzZWltZy5wbmcnXHJcbiAgICB9XHJcbiAgfSlcclxuICAgIC8vIGNvbnNvbGUubG9nKHN0b3JlKVxyXG4gIH0pO1xyXG59XHJcbiAgICAgIC8vIENyZWF0ZSBhIHBvcHVwIGluc3RhbmNlIHdpdGggdGhlIGZlYXR1cmUgcHJvcGVydGllc1xyXG4gICAgICBjb25zdCBwb3B1cCA9IG5ldyBtYXBib3hnbC5Qb3B1cCh7IG9mZnNldDogMjUgfSlcclxuICAgICAgLnNldEhUTUwoYFxyXG4gICAgICAgICA8aW1nIGNsYXNzPVwidy0xMDBcIiBbc3JjXT1cImRhdGFJbWFnZXMgPyBkYXRhSW1hZ2VzIDonJ1wiPiBcclxuICAgICAgICA8ZGl2IHN0eWxlPVwiYmFja2dyb3VuZDogdmFyKC0tZ3JhZGllbnQtcHJpbWFyeS04MDA3MDAyNjUtZGVnLCBsaW5lYXItZ3JhZGllbnQoMjdkZWcsICMwMDgyQ0MgOC4zMyUsICMwMDkzRTYgOTEuNjclKSk7Y29sb3I6d2hpdGU7IHBhZGRpbmc6IDEwcHg7IGJvcmRlci1yYWRpdXM6IDE2cHg7XCI+XHJcbiAgICAgICAgICA8aDQgY2xhc3M9XCJ0ZXh0LXdoaXRlXCI+JHtwcm9wZXJ0aWVzLnN0b3JlTmFtZSB8fCAnU3RvcmUgTmFtZSd9PC9oND5cclxuICAgICAgICAgIDxoNiBjbGFzcz1cInRleHQtd2hpdGVcIj5BdmVyYWdlIEZvb3RmYWxsOiAke3Byb3BlcnRpZXMuZm9vdGZhbGwgfHwgJy0tJ308L2g2PlxyXG4gICAgICAgICAgPGg2IGNsYXNzPVwidGV4dC13aGl0ZVwiPk9wZW4gVGltZTogJHtwcm9wZXJ0aWVzLm9wZW5UaW1lIHx8ICctLSd9PC9oNj5cclxuICAgICAgICAgIDxoNiBjbGFzcz1cInRleHQtd2hpdGVcIj5DbG9zZSBUaW1lOiAke3Byb3BlcnRpZXMuY2xvc2VUaW1lIHx8ICctLSd9PC9oNj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgYCk7XHJcblxyXG4gICAgICAvLyBVc2UgdGhlIGNvb3JkaW5hdGVzIGZyb20gdGhlIGZlYXR1cmVcclxuICAgICAgY29uc3QgY29vcmRpbmF0ZXM6IFtudW1iZXIsIG51bWJlcl0gPSBnZW9tZXRyeS5jb29yZGluYXRlcyBhcyBbbnVtYmVyLCBudW1iZXJdO1xyXG4gIFxyXG4gICAgICAvLyBBZGQgbWFya2VycyB0byB0aGUgbWFwXHJcbiAgICAgIG5ldyBtYXBib3hnbC5NYXJrZXIoZWwpXHJcbiAgICAgICAgLnNldExuZ0xhdChjb29yZGluYXRlcylcclxuICAgICAgICAuc2V0UG9wdXAocG9wdXApICAvLyBBdHRhY2ggdGhlIHBvcHVwIHRvIHRoZSBtYXJrZXJcclxuICAgICAgICAuYWRkVG8odGhpcy5tYXApO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIFxyXG4gIGFkanVzdExheW91dChzdG9yZTphbnkpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRTdG9yZSA9IHN0b3JlO1xyXG4gICAgdGhpcy5hdXRoID10cnVlO1xyXG4gICAgdGhpcy5zZXRDbGFzcyA9ICdjb2wtbWQtOSc7IC8vIEFkanVzdCB0aGUgbGF5b3V0IHRvIDggY29sdW1ucyBvbiBtYXJrZXIgY2xpY2tcclxuICB9XHJcbiAgXHJcbiAgdG9nZ2xlQXV0aCgpIHtcclxuICAgIHRoaXMuYXV0aCA9ICF0aGlzLmF1dGg7XHJcbiAgICB0aGlzLnNldENsYXNzID0gdGhpcy5hdXRoID8gJ2NvbC1tZC05JyA6ICdjb2wtbWQtMTInO1xyXG4gIH1cclxuXHJcbiAgICBiYWNrVG9Gb290ZmFsbCgpe1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbWFuYWdlL3RyYWZmaWMnXSlcclxuICB9XHJcblxyXG4gIC8vIG9uTWFya2VyQ2xpY2sobG9jYXRpb246IGFueSkge1xyXG4gIC8vICAgY29uc29sZS5sb2coJ01hcmtlciBjbGlja2VkOicsIGxvY2F0aW9uKTtcclxuICAvLyAgIC8vIFBlcmZvcm0gYWN0aW9ucyBiYXNlZCBvbiB0aGUgY2xpY2tlZCBsb2NhdGlvblxyXG4gIC8vIH1cclxufVxyXG4iLCI8ZGl2ICpuZ0lmPVwiIW5vRGF0YVwiIGNsYXNzPVwicm93XCI+XHJcbiAgICA8ZGl2IFtuZ0NsYXNzXT1cInNldENsYXNzXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgcHgtMiBweS0zXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG1lLTJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNocmluay0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJiYWNrVG9Gb290ZmFsbCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCI0MFwiIGhlaWdodD1cIjQwXCIgdmlld0JveD1cIjAgMCA0MCA0MFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgZmlsdGVyPVwidXJsKCNmaWx0ZXIwX2RfMjU4NV83MDM2KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIyXCIgeT1cIjFcIiB3aWR0aD1cIjM2XCIgaGVpZ2h0PVwiMzZcIiByeD1cIjhcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIyLjVcIiB5PVwiMS41XCIgd2lkdGg9XCIzNVwiIGhlaWdodD1cIjM1XCIgcng9XCI3LjVcIiBzdHJva2U9XCIjRDBENUREXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTI1LjgzMjcgMTlIMTQuMTY2TTE0LjE2NiAxOUwxOS45OTkzIDI0LjgzMzRNMTQuMTY2IDE5TDE5Ljk5OTMgMTMuMTY2N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWx0ZXIgaWQ9XCJmaWx0ZXIwX2RfMjU4NV83MDM2XCIgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlclVuaXRzPVwidXNlclNwYWNlT25Vc2VcIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9XCJzUkdCXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUZsb29kIGZsb29kLW9wYWNpdHk9XCIwXCIgcmVzdWx0PVwiQmFja2dyb3VuZEltYWdlRml4XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggaW49XCJTb3VyY2VBbHBoYVwiIHR5cGU9XCJtYXRyaXhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzPVwiMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDBcIiByZXN1bHQ9XCJoYXJkQWxwaGFcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVPZmZzZXQgZHk9XCIxXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj1cIjFcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCB0eXBlPVwibWF0cml4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz1cIjAgMCAwIDAgMC4wNjI3NDUxIDAgMCAwIDAgMC4wOTQxMTc2IDAgMCAwIDAgMC4xNTY4NjMgMCAwIDAgMC4wNSAwXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluMj1cIkJhY2tncm91bmRJbWFnZUZpeFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMjU4NV83MDM2XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluPVwiU291cmNlR3JhcGhpY1wiIGluMj1cImVmZmVjdDFfZHJvcFNoYWRvd18yNTg1XzcwMzZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0PVwic2hhcGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmlsdGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcC0wXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwibWFwXCIgc3R5bGU9XCJ3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDB2aDtcIj48L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2ICpuZ0lmPVwiYXV0aFwiIGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBweC01IGgtMTAwIHB5LTMgcG9zaXRpb24tcmVsYXRpdmVcIj5cclxuICAgICAgICAgICAgPGltZyAoY2xpY2spPVwidG9nZ2xlQXV0aCgpXCIgY2xhc3M9XCJsZWZ0SWNvbiBwb3NpdGlvbi1hYnNvbHV0ZSBsZWZ0LTAgY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgc3JjPVwiYXNzZXRzL3RhbmdvL0ltYWdlL2xlZnRJY29uLnN2Z1wiPlxyXG4gICAgICAgICAgICA8aW1nIGNsYXNzPVwidy0xMDBcIiBzcmM9XCJhc3NldHMvdGFuZ28vSW1hZ2UvYmFzZWltZy5wbmdcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIG10LTMgcHgtMCBib3JkZXItMCBtaW4taC0xMHB4XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwiY2FyZC10aXRsZSBhbGlnbi1pdGVtcy1zdGFydCBkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXJkLWxhYmVsXCI+e3tzZWxlY3RlZFN0b3JlLnN0b3JlTmFtZSA/PyAnLS0nfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtcHJpbWFyeSBtdC0xXCI+QXBwIElEIDoge3tzZWxlY3RlZFN0b3JlLmFwcElkID8/ICctLSd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2gzPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICBcclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcHQtMCBweC0wXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXAtc3VidGV4dFwiPnt7c2VsZWN0ZWRTdG9yZT8uc3RvcmVQcm9maWxlPy5hZGRyZXNzID8gc2VsZWN0ZWRTdG9yZT8uc3RvcmVQcm9maWxlPy5hZGRyZXNzOictLSd9fSB7e3NlbGVjdGVkU3RvcmU/LnN0b3JlUHJvZmlsZT8uY291bnRyeSA/IHNlbGVjdGVkU3RvcmU/LnN0b3JlUHJvZmlsZT8uY291bnRyeTonLS0nfX0ge3tzZWxlY3RlZFN0b3JlPy5zdG9yZVByb2ZpbGU/LnBpbmNvZGUgPyBzZWxlY3RlZFN0b3JlPy5zdG9yZVByb2ZpbGU/LnBpbmNvZGU6Jy0tJ319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtNSBtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zbSB0ZXh0LWdyYXktNjAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEzLjMzNDYgMTRWMTIuNjY2N0MxMy4zMzQ2IDExLjk1OTQgMTMuMDUzNyAxMS4yODExIDEyLjU1MzYgMTAuNzgxQzEyLjA1MzUgMTAuMjgxIDExLjM3NTIgMTAgMTAuNjY4IDEwSDUuMzM0NjRDNC42MjczOSAxMCAzLjk0OTExIDEwLjI4MSAzLjQ0OTAyIDEwLjc4MUMyLjk0ODkyIDExLjI4MTEgMi42Njc5NyAxMS45NTk0IDIuNjY3OTcgMTIuNjY2N1YxNE0xMC42NjggNC42NjY2N0MxMC42NjggNi4xMzk0MyA5LjQ3NDA2IDcuMzMzMzMgOC4wMDEzIDcuMzMzMzNDNi41Mjg1NCA3LjMzMzMzIDUuMzM0NjQgNi4xMzk0MyA1LjMzNDY0IDQuNjY2NjdDNS4zMzQ2NCAzLjE5MzkxIDYuNTI4NTQgMiA4LjAwMTMgMkM5LjQ3NDA2IDIgMTAuNjY4IDMuMTkzOTEgMTAuNjY4IDQuNjY2NjdaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zbSBmb250LW1lZGl1bSBtYXAtc3VidGV4dCB0ZXh0LWdyYXktODAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tzZWxlY3RlZFN0b3JlPy5zcG9jRGV0YWlscz8ubmFtZSA/c2VsZWN0ZWRTdG9yZT8uc3BvY0RldGFpbHM/Lm5hbWU6Jy0tJ319XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXNtIHRleHQtZ3JheS02MDAgbXgtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8xODY1XzE0NjUxNilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTQuNjY1IDExLjI4MDJWMTMuMjgwMkMxNC42NjU3IDEzLjQ2NTkgMTQuNjI3NyAxMy42NDk3IDE0LjU1MzMgMTMuODE5OEMxNC40NzkgMTMuOTg5OSAxNC4zNjk5IDE0LjE0MjYgMTQuMjMzIDE0LjI2ODFDMTQuMDk2MiAxNC4zOTM3IDEzLjkzNDcgMTQuNDg5MiAxMy43NTg4IDE0LjU0ODdDMTMuNTgyOSAxNC42MDgyIDEzLjM5NjYgMTQuNjMwMyAxMy4yMTE3IDE0LjYxMzZDMTEuMTYwMiAxNC4zOTA3IDkuMTg5NjYgMTMuNjg5NyA3LjQ1ODMzIDEyLjU2NjlDNS44NDc1NSAxMS41NDMzIDQuNDgxODkgMTAuMTc3NyAzLjQ1ODMzIDguNTY2ODlDMi4zMzE2NSA2LjgyNzcgMS42MzA0OSA0Ljg0NzU2IDEuNDExNjYgMi43ODY4OUMxLjM5NSAyLjYwMjU0IDEuNDE2OTEgMi40MTY3MyAxLjQ3NTk5IDIuMjQxMzFDMS41MzUwOCAyLjA2NTg5IDEuNjMwMDQgMS45MDQ2OSAxLjc1NDg0IDEuNzY3OTdDMS44Nzk2NCAxLjYzMTI2IDIuMDMxNTMgMS41MjIwMyAyLjIwMDg2IDEuNDQ3MjRDMi4zNzAxOCAxLjM3MjQ1IDIuNTUzMjIgMS4zMzM3NCAyLjczODMzIDEuMzMzNTZINC43MzgzM0M1LjA2MTg3IDEuMzMwMzggNS4zNzU1MiAxLjQ0NDk1IDUuNjIwODQgMS42NTU5MkM1Ljg2NjE1IDEuODY2ODkgNi4wMjYzOCAyLjE1OTg2IDYuMDcxNjYgMi40ODAyM0M2LjE1NjA4IDMuMTIwMjcgNi4zMTI2MyAzLjc0ODcxIDYuNTM4MzMgNC4zNTM1NkM2LjYyODAyIDQuNTkyMTggNi42NDc0NCA0Ljg1MTUgNi41OTQyNyA1LjEwMDgxQzYuNTQxMSA1LjM1MDEyIDYuNDE3NTcgNS41Nzg5NyA2LjIzODMzIDUuNzYwMjNMNS4zOTE2NiA2LjYwNjg5QzYuMzQwNyA4LjI3NTkyIDcuNzIyNjMgOS42NTc4NiA5LjM5MTY2IDEwLjYwNjlMMTAuMjM4MyA5Ljc2MDIzQzEwLjQxOTYgOS41ODA5OSAxMC42NDg0IDkuNDU3NDYgMTAuODk3NyA5LjQwNDI5QzExLjE0NzEgOS4zNTExMiAxMS40MDY0IDkuMzcwNTMgMTEuNjQ1IDkuNDYwMjNDMTIuMjQ5OCA5LjY4NTkzIDEyLjg3ODMgOS44NDI0OCAxMy41MTgzIDkuOTI2ODlDMTMuODQyMiA5Ljk3MjU4IDE0LjEzNzkgMTAuMTM1NyAxNC4zNDk0IDEwLjM4NTJDMTQuNTYwOCAxMC42MzQ4IDE0LjY3MzEgMTAuOTUzMyAxNC42NjUgMTEuMjgwMlpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMTg2NV8xNDY1MTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc20gZm9udC1tZWRpdW0gbWFwLXN1YnRleHQgdGV4dC1ncmF5LTgwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7c2VsZWN0ZWRTdG9yZT8uc3BvY0RldGFpbHM/LmNvbnRhY3QgP3NlbGVjdGVkU3RvcmU/LnNwb2NEZXRhaWxzPy5jb250YWN0OictLSd9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm15LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXNtIHRleHQtZ3JheS02MDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTQuNjY1NCAzLjk5OTg0QzE0LjY2NTQgMy4yNjY1IDE0LjA2NTQgMi42NjY1IDEzLjMzMiAyLjY2NjVIMi42NjUzNkMxLjkzMjAzIDIuNjY2NSAxLjMzMjAzIDMuMjY2NSAxLjMzMjAzIDMuOTk5ODRNMTQuNjY1NCAzLjk5OTg0VjExLjk5OThDMTQuNjY1NCAxMi43MzMyIDE0LjA2NTQgMTMuMzMzMiAxMy4zMzIgMTMuMzMzMkgyLjY2NTM2QzEuOTMyMDMgMTMuMzMzMiAxLjMzMjAzIDEyLjczMzIgMS4zMzIwMyAxMS45OTk4VjMuOTk5ODRNMTQuNjY1NCAzLjk5OTg0TDcuOTk4NyA4LjY2NjVMMS4zMzIwMyAzLjk5OTg0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zbSBmb250LW1lZGl1bSBtYXAtc3VidGV4dCB0ZXh0LWdyYXktODAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tzZWxlY3RlZFN0b3JlPy5zcG9jRGV0YWlscz8uZW1haWwgPyBzZWxlY3RlZFN0b3JlPy5zcG9jRGV0YWlscz8uZW1haWw6Jy0tJ319XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTUgbXktM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc20gdGV4dC1ncmF5LTYwMCBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTMuMzM0NiAxNFYxMi42NjY3QzEzLjMzNDYgMTEuOTU5NCAxMy4wNTM3IDExLjI4MTEgMTIuNTUzNiAxMC43ODFDMTIuMDUzNSAxMC4yODEgMTEuMzc1MiAxMCAxMC42NjggMTBINS4zMzQ2NEM0LjYyNzM5IDEwIDMuOTQ5MTEgMTAuMjgxIDMuNDQ5MDIgMTAuNzgxQzIuOTQ4OTIgMTEuMjgxMSAyLjY2Nzk3IDExLjk1OTQgMi42Njc5NyAxMi42NjY3VjE0TTEwLjY2OCA0LjY2NjY3QzEwLjY2OCA2LjEzOTQzIDkuNDc0MDYgNy4zMzMzMyA4LjAwMTMgNy4zMzMzM0M2LjUyODU0IDcuMzMzMzMgNS4zMzQ2NCA2LjEzOTQzIDUuMzM0NjQgNC42NjY2N0M1LjMzNDY0IDMuMTkzOTEgNi41Mjg1NCAyIDguMDAxMyAyQzkuNDc0MDYgMiAxMC42NjggMy4xOTM5MSAxMC42NjggNC42NjY2N1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS40XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXNtIGZvbnQtbWVkaXVtIG1hcC1zdWJ0ZXh0IHRleHQtZ3JheS04MDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3NlbGVjdGVkU3RvcmU/LnN0b3JlVHlwZT8udHlwZSA/IHNlbGVjdGVkU3RvcmU/LnN0b3JlVHlwZT8udHlwZTonLS0nfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc20gdGV4dC1ncmF5LTYwMCBteC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzE4NjVfMTQ2NTE2KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNC42NjUgMTEuMjgwMlYxMy4yODAyQzE0LjY2NTcgMTMuNDY1OSAxNC42Mjc3IDEzLjY0OTcgMTQuNTUzMyAxMy44MTk4QzE0LjQ3OSAxMy45ODk5IDE0LjM2OTkgMTQuMTQyNiAxNC4yMzMgMTQuMjY4MUMxNC4wOTYyIDE0LjM5MzcgMTMuOTM0NyAxNC40ODkyIDEzLjc1ODggMTQuNTQ4N0MxMy41ODI5IDE0LjYwODIgMTMuMzk2NiAxNC42MzAzIDEzLjIxMTcgMTQuNjEzNkMxMS4xNjAyIDE0LjM5MDcgOS4xODk2NiAxMy42ODk3IDcuNDU4MzMgMTIuNTY2OUM1Ljg0NzU1IDExLjU0MzMgNC40ODE4OSAxMC4xNzc3IDMuNDU4MzMgOC41NjY4OUMyLjMzMTY1IDYuODI3NyAxLjYzMDQ5IDQuODQ3NTYgMS40MTE2NiAyLjc4Njg5QzEuMzk1IDIuNjAyNTQgMS40MTY5MSAyLjQxNjczIDEuNDc1OTkgMi4yNDEzMUMxLjUzNTA4IDIuMDY1ODkgMS42MzAwNCAxLjkwNDY5IDEuNzU0ODQgMS43Njc5N0MxLjg3OTY0IDEuNjMxMjYgMi4wMzE1MyAxLjUyMjAzIDIuMjAwODYgMS40NDcyNEMyLjM3MDE4IDEuMzcyNDUgMi41NTMyMiAxLjMzMzc0IDIuNzM4MzMgMS4zMzM1Nkg0LjczODMzQzUuMDYxODcgMS4zMzAzOCA1LjM3NTUyIDEuNDQ0OTUgNS42MjA4NCAxLjY1NTkyQzUuODY2MTUgMS44NjY4OSA2LjAyNjM4IDIuMTU5ODYgNi4wNzE2NiAyLjQ4MDIzQzYuMTU2MDggMy4xMjAyNyA2LjMxMjYzIDMuNzQ4NzEgNi41MzgzMyA0LjM1MzU2QzYuNjI4MDIgNC41OTIxOCA2LjY0NzQ0IDQuODUxNSA2LjU5NDI3IDUuMTAwODFDNi41NDExIDUuMzUwMTIgNi40MTc1NyA1LjU3ODk3IDYuMjM4MzMgNS43NjAyM0w1LjM5MTY2IDYuNjA2ODlDNi4zNDA3IDguMjc1OTIgNy43MjI2MyA5LjY1Nzg2IDkuMzkxNjYgMTAuNjA2OUwxMC4yMzgzIDkuNzYwMjNDMTAuNDE5NiA5LjU4MDk5IDEwLjY0ODQgOS40NTc0NiAxMC44OTc3IDkuNDA0MjlDMTEuMTQ3MSA5LjM1MTEyIDExLjQwNjQgOS4zNzA1MyAxMS42NDUgOS40NjAyM0MxMi4yNDk4IDkuNjg1OTMgMTIuODc4MyA5Ljg0MjQ4IDEzLjUxODMgOS45MjY4OUMxMy44NDIyIDkuOTcyNTggMTQuMTM3OSAxMC4xMzU3IDE0LjM0OTQgMTAuMzg1MkMxNC41NjA4IDEwLjYzNDggMTQuNjczMSAxMC45NTMzIDE0LjY2NSAxMS4yODAyWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS40XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8xODY1XzE0NjUxNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zbSBmb250LW1lZGl1bSBtYXAtc3VidGV4dCB0ZXh0LWdyYXktODAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tzZWxlY3RlZFN0b3JlPy5zdG9yZVR5cGU/Lm5hbWUgPyBzZWxlY3RlZFN0b3JlPy5zdG9yZVR5cGU/Lm5hbWU6Jy0tJ319XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtNSBteS0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zbSB0ZXh0LWdyYXktNjAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE4XCIgaGVpZ2h0PVwiMThcIiB2aWV3Qm94PVwiMCAwIDE4IDE4XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzE4NjVfMTQ2NTI5KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk05IDQuNVY5TDEyIDEwLjVNMTYuNSA5QzE2LjUgMTMuMTQyMSAxMy4xNDIxIDE2LjUgOSAxNi41QzQuODU3ODYgMTYuNSAxLjUgMTMuMTQyMSAxLjUgOUMxLjUgNC44NTc4NiA0Ljg1Nzg2IDEuNSA5IDEuNUMxMy4xNDIxIDEuNSAxNi41IDQuODU3ODYgMTYuNSA5WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS40XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8xODY1XzE0NjUyOVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIxOFwiIGhlaWdodD1cIjE4XCIgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LWdyYXktODAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tzZWxlY3RlZFN0b3JlPy5vcGVuVGltZSA/IHNlbGVjdGVkU3RvcmU/Lm9wZW5UaW1lOictLSd9fSAtIHt7c2VsZWN0ZWRTdG9yZT8uY2xvc2VUaW1lID8gc2VsZWN0ZWRTdG9yZT8uY2xvc2VUaW1lOictLSd9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgbXktM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIm1hcC1hdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7c2VsZWN0ZWRTdG9yZT8uYXZnRm9vdGZhbGw/IHNlbGVjdGVkU3RvcmU/LmF2Z0Zvb3RmYWxsOictLSd9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxicj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXNtIHRleHQtZ3JheS03MDAgbWFwLWF2Z3Rlc3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF2ZyBGb290ZmFsbCBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzE4NjVfMTQ2NTM2KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTYgOFY2TTYgNEg2LjAwNU0xMSA2QzExIDguNzYxNDIgOC43NjE0MiAxMSA2IDExQzMuMjM4NTggMTEgMSA4Ljc2MTQyIDEgNkMxIDMuMjM4NTggMy4yMzg1OCAxIDYgMUM4Ljc2MTQyIDEgMTEgMy4yMzg1OCAxMSA2WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzk4QTJCM1wiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzE4NjVfMTQ2NTM2XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBteS0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwibWFwLWF2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tzZWxlY3RlZFN0b3JlPy5hdmdXZWVrZGF5Rm9vdGZhbGwgPyBzZWxlY3RlZFN0b3JlPy5hdmdXZWVrZGF5Rm9vdGZhbGw6Jy0tJ319XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc20gdGV4dC1ncmF5LTcwMCBtYXAtYXZndGVzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQXZnIFdlZWtkYXkgRm9vdGZhbGwgPHNwYW4+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMTg2NV8xNDY1MzYpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNiA4VjZNNiA0SDYuMDA1TTExIDZDMTEgOC43NjE0MiA4Ljc2MTQyIDExIDYgMTFDMy4yMzg1OCAxMSAxIDguNzYxNDIgMSA2QzEgMy4yMzg1OCAzLjIzODU4IDEgNiAxQzguNzYxNDIgMSAxMSAzLjIzODU4IDExIDZaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjOThBMkIzXCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMTg2NV8xNDY1MzZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIG15LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJtYXAtYXZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3NlbGVjdGVkU3RvcmU/LmF2Z1dlZWtlbmRGb290ZmFsbCA/IHNlbGVjdGVkU3RvcmU/LmF2Z1dlZWtlbmRGb290ZmFsbDonLS0nfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zbSB0ZXh0LWdyYXktNzAwIG1hcC1hdmd0ZXN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdmcgV2Vla2VuZCBGb290ZmFsbCA8c3Bhbj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8xODY1XzE0NjUzNilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk02IDhWNk02IDRINi4wMDVNMTEgNkMxMSA4Ljc2MTQyIDguNzYxNDIgMTEgNiAxMUMzLjIzODU4IDExIDEgOC43NjE0MiAxIDZDMSAzLjIzODU4IDMuMjM4NTggMSA2IDFDOC43NjE0MiAxIDExIDMuMjM4NTggMTEgNlpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM5OEEyQjNcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8xODY1XzE0NjUzNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICBcclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cIm10LTUgY29sLWxnLTEyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLWxpZ2h0LXByaW1hcnkxIHctMTAwIHB4LTJcIj48c3BhbiBjbGFzcz1cIm1zLTJcIj5WaWV3IG1vcmVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZXRhaWxzPC9zcGFuPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiAqbmdJZj1cImxvYWRpbmdcIiBjbGFzcz1cInJvdyBweC0zIGxvYWRlciBjYXJkICBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuPGRpdiAqbmdJZj1cIm5vRGF0YVwiIGNsYXNzPVwicm93IHB4LTNcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgPGltZyBjbGFzcz1cImltZy1ub2RhdGEtdGFibGVcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9JY29ucy9Ob2RhdGExLnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibm9kYXRhLXRpdGxlXCI+Tm8gZGF0YSBmb3VuZDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibm9kYXRhLXN1YlwiPlRoZXJlIGlzIG5vIHJlc3VsdCBmb3IgdGhpcyBTdG9yZSBtYXA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
|
|
280
|
+
args: [{ selector: 'lib-explore-view', template: "<div *ngIf=\"!noData\" class=\"row\">\r\n <div [ngClass]=\"setClass\">\r\n <div class=\"card px-2 py-3\">\r\n <div class=\"d-flex align-items-center me-2\">\r\n <div class=\"flex-shrink-0\">\r\n <span class=\"cursor-pointer\" (click)=\"backToFootfall()\">\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <g filter=\"url(#filter0_d_2585_7036)\">\r\n <rect x=\"2\" y=\"1\" width=\"36\" height=\"36\" rx=\"8\" fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"35\" height=\"35\" rx=\"7.5\" stroke=\"#D0D5DD\" />\r\n <path d=\"M25.8327 19H14.166M14.166 19L19.9993 24.8334M14.166 19L19.9993 13.1667\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_2585_7036\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"\r\n filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_2585_7036\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_2585_7036\"\r\n result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg>\r\n </span>\r\n </div>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div id=\"map1\" style=\"width: 100%; height: 100vh;\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"auth\" class=\"col-md-3\">\r\n <div class=\"card px-5 h-100 py-3 position-relative\">\r\n <img (click)=\"toggleAuth()\" class=\"leftIcon position-absolute left-0 cursor-pointer\"\r\n src=\"assets/tango/Image/leftIcon.svg\">\r\n <img *ngIf=\"dataImages !== null\" class=\"w-100\" [src]=\"dataImages\" (error)=\"dataImages = null\" [alt]=\"dataImages ? 'Image' : 'Error Image'\">\r\n <!-- <img *ngIf=\"dataImages === null\" class=\"w-100\" src=\"assets/tango/Image/baseimg.png\" alt=\"Image\"> -->\r\n <div *ngIf=\"dataImages === null\" class=\"no-preview\">\r\n <span class=\"mb-5\">\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\"\r\n d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n\r\n </span>\r\n <span class=\"header mb-5 text-center\">Preview not available</span>\r\n <span class=\"description mb-5 text-center\">The selected camera is not available at the\r\n moment.</span>\r\n </div>\r\n \r\n <div class=\"card-header mt-3 px-0 border-0 min-h-10px\" >\r\n <div class=\"col-md-12\">\r\n <h3 class=\"card-title align-items-start d-flex\">\r\n <span class=\"card-label cursor-pointer\" (click)=\"storeView(storeId)\">{{selectedStore.storeName ?? '--'}}</span>\r\n </h3>\r\n <span class=\"badge badge-light-primary mb-2\">App ID : {{selectedStore.appId ?? '--'}}</span>\r\n\r\n </div>\r\n \r\n </div>\r\n <div class=\"card-body pt-0 px-0\">\r\n <div class=\"col-md-12\">\r\n <span class=\"map-subtext\">{{selectedStore?.storeProfile?.address ? selectedStore?.storeProfile?.address:'--'}} {{selectedStore?.storeProfile?.country ? selectedStore?.storeProfile?.country:'--'}} {{selectedStore?.storeProfile?.pincode ? selectedStore?.storeProfile?.pincode:'--'}}</span>\r\n <div class=\"flex items-center gap-5 mt-3\">\r\n <span class=\"text-sm text-gray-600\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M13.3346 14V12.6667C13.3346 11.9594 13.0537 11.2811 12.5536 10.781C12.0535 10.281 11.3752 10 10.668 10H5.33464C4.62739 10 3.94911 10.281 3.44902 10.781C2.94892 11.2811 2.66797 11.9594 2.66797 12.6667V14M10.668 4.66667C10.668 6.13943 9.47406 7.33333 8.0013 7.33333C6.52854 7.33333 5.33464 6.13943 5.33464 4.66667C5.33464 3.19391 6.52854 2 8.0013 2C9.47406 2 10.668 3.19391 10.668 4.66667Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <span class=\"text-sm font-medium map-subtext text-gray-800\">\r\n {{selectedStore?.spocDetails?.name ?selectedStore?.spocDetails?.name:'--'}}\r\n </span>\r\n </span>\r\n <span class=\"text-sm text-gray-600 mx-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146516)\">\r\n <path\r\n d=\"M14.665 11.2802V13.2802C14.6657 13.4659 14.6277 13.6497 14.5533 13.8198C14.479 13.9899 14.3699 14.1426 14.233 14.2681C14.0962 14.3937 13.9347 14.4892 13.7588 14.5487C13.5829 14.6082 13.3966 14.6303 13.2117 14.6136C11.1602 14.3907 9.18966 13.6897 7.45833 12.5669C5.84755 11.5433 4.48189 10.1777 3.45833 8.56689C2.33165 6.8277 1.63049 4.84756 1.41166 2.78689C1.395 2.60254 1.41691 2.41673 1.47599 2.24131C1.53508 2.06589 1.63004 1.90469 1.75484 1.76797C1.87964 1.63126 2.03153 1.52203 2.20086 1.44724C2.37018 1.37245 2.55322 1.33374 2.73833 1.33356H4.73833C5.06187 1.33038 5.37552 1.44495 5.62084 1.65592C5.86615 1.86689 6.02638 2.15986 6.07166 2.48023C6.15608 3.12027 6.31263 3.74871 6.53833 4.35356C6.62802 4.59218 6.64744 4.8515 6.59427 5.10081C6.5411 5.35012 6.41757 5.57897 6.23833 5.76023L5.39166 6.60689C6.3407 8.27592 7.72263 9.65786 9.39166 10.6069L10.2383 9.76023C10.4196 9.58099 10.6484 9.45746 10.8977 9.40429C11.1471 9.35112 11.4064 9.37053 11.645 9.46023C12.2498 9.68593 12.8783 9.84248 13.5183 9.92689C13.8422 9.97258 14.1379 10.1357 14.3494 10.3852C14.5608 10.6348 14.6731 10.9533 14.665 11.2802Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146516\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <span class=\"text-sm font-medium map-subtext text-gray-800\">\r\n {{selectedStore?.spocDetails?.contact ?selectedStore?.spocDetails?.contact:'--'}}\r\n </span>\r\n </span>\r\n </div>\r\n <div class=\"my-3\">\r\n <span class=\"text-sm text-gray-600\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M14.6654 3.99984C14.6654 3.2665 14.0654 2.6665 13.332 2.6665H2.66536C1.93203 2.6665 1.33203 3.2665 1.33203 3.99984M14.6654 3.99984V11.9998C14.6654 12.7332 14.0654 13.3332 13.332 13.3332H2.66536C1.93203 13.3332 1.33203 12.7332 1.33203 11.9998V3.99984M14.6654 3.99984L7.9987 8.6665L1.33203 3.99984\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <span class=\"text-sm font-medium map-subtext text-gray-800\">\r\n {{selectedStore?.spocDetails?.email ? selectedStore?.spocDetails?.email:'--'}}\r\n </span>\r\n </span>\r\n </div>\r\n <div class=\"flex items-center gap-5 my-3\">\r\n <span class=\"text-sm text-gray-600 \">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M13.3346 14V12.6667C13.3346 11.9594 13.0537 11.2811 12.5536 10.781C12.0535 10.281 11.3752 10 10.668 10H5.33464C4.62739 10 3.94911 10.281 3.44902 10.781C2.94892 11.2811 2.66797 11.9594 2.66797 12.6667V14M10.668 4.66667C10.668 6.13943 9.47406 7.33333 8.0013 7.33333C6.52854 7.33333 5.33464 6.13943 5.33464 4.66667C5.33464 3.19391 6.52854 2 8.0013 2C9.47406 2 10.668 3.19391 10.668 4.66667Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <span class=\"text-sm font-medium map-subtext text-gray-800\">\r\n {{selectedStore?.storeType?.type ? selectedStore?.storeType?.type:'--'}}\r\n </span>\r\n </span>\r\n <span class=\"text-sm text-gray-600 mx-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146516)\">\r\n <path\r\n d=\"M14.665 11.2802V13.2802C14.6657 13.4659 14.6277 13.6497 14.5533 13.8198C14.479 13.9899 14.3699 14.1426 14.233 14.2681C14.0962 14.3937 13.9347 14.4892 13.7588 14.5487C13.5829 14.6082 13.3966 14.6303 13.2117 14.6136C11.1602 14.3907 9.18966 13.6897 7.45833 12.5669C5.84755 11.5433 4.48189 10.1777 3.45833 8.56689C2.33165 6.8277 1.63049 4.84756 1.41166 2.78689C1.395 2.60254 1.41691 2.41673 1.47599 2.24131C1.53508 2.06589 1.63004 1.90469 1.75484 1.76797C1.87964 1.63126 2.03153 1.52203 2.20086 1.44724C2.37018 1.37245 2.55322 1.33374 2.73833 1.33356H4.73833C5.06187 1.33038 5.37552 1.44495 5.62084 1.65592C5.86615 1.86689 6.02638 2.15986 6.07166 2.48023C6.15608 3.12027 6.31263 3.74871 6.53833 4.35356C6.62802 4.59218 6.64744 4.8515 6.59427 5.10081C6.5411 5.35012 6.41757 5.57897 6.23833 5.76023L5.39166 6.60689C6.3407 8.27592 7.72263 9.65786 9.39166 10.6069L10.2383 9.76023C10.4196 9.58099 10.6484 9.45746 10.8977 9.40429C11.1471 9.35112 11.4064 9.37053 11.645 9.46023C12.2498 9.68593 12.8783 9.84248 13.5183 9.92689C13.8422 9.97258 14.1379 10.1357 14.3494 10.3852C14.5608 10.6348 14.6731 10.9533 14.665 11.2802Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146516\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <span class=\"text-sm font-medium map-subtext text-gray-800\">\r\n {{selectedStore?.storeType?.name ? selectedStore?.storeType?.name:'--'}}\r\n </span>\r\n </span>\r\n </div>\r\n \r\n <div class=\"flex items-center gap-5 my-3\">\r\n <span class=\"text-sm text-gray-600\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146529)\">\r\n <path\r\n d=\"M9 4.5V9L12 10.5M16.5 9C16.5 13.1421 13.1421 16.5 9 16.5C4.85786 16.5 1.5 13.1421 1.5 9C1.5 4.85786 4.85786 1.5 9 1.5C13.1421 1.5 16.5 4.85786 16.5 9Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146529\">\r\n <rect width=\"18\" height=\"18\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <span class=\"text-sm font-medium text-gray-800\">\r\n {{dataStoreMap?.hourlyData?.openTime ? dataStoreMap?.hourlyData?.openTime:'--'}} - {{dataStoreMap?.hourlyData?.closeTime ? dataStoreMap?.hourlyData?.closeTime:'--'}}\r\n </span>\r\n </span>\r\n </div>\r\n <div class=\"flex flex-col my-3\">\r\n <a class=\"map-avg\">\r\n {{dataStoreMap?.avgData?.avgFootfall ? dataStoreMap?.avgData?.avgFootfall:'--'}}\r\n </a>\r\n <br>\r\n <span class=\"text-sm text-gray-700 map-avgtest\">\r\n Avg Footfall \r\n <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146536)\">\r\n <path\r\n d=\"M6 8V6M6 4H6.005M11 6C11 8.76142 8.76142 11 6 11C3.23858 11 1 8.76142 1 6C1 3.23858 3.23858 1 6 1C8.76142 1 11 3.23858 11 6Z\"\r\n stroke=\"#98A2B3\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146536\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </span>\r\n </div>\r\n <div class=\"flex flex-col my-3\">\r\n <a class=\"map-avg\">\r\n {{dataStoreMap?.avgData?.avgWeekdayFootfall ? dataStoreMap?.avgData?.avgWeekdayFootfall:'--'}}\r\n </a>\r\n <br>\r\n <span class=\"text-sm text-gray-700 map-avgtest\">\r\n Avg Weekday Footfall <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146536)\">\r\n <path\r\n d=\"M6 8V6M6 4H6.005M11 6C11 8.76142 8.76142 11 6 11C3.23858 11 1 8.76142 1 6C1 3.23858 3.23858 1 6 1C8.76142 1 11 3.23858 11 6Z\"\r\n stroke=\"#98A2B3\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146536\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </span>\r\n </div>\r\n <div class=\"flex flex-col my-3\">\r\n <a class=\"map-avg\">\r\n {{dataStoreMap?.avgData?.avgWeekendFootfall ? dataStoreMap?.avgData?.avgWeekendFootfall:'--'}}\r\n </a>\r\n <br>\r\n <span class=\"text-sm text-gray-700 map-avgtest\">\r\n Avg Weekend Footfall <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146536)\">\r\n <path\r\n d=\"M6 8V6M6 4H6.005M11 6C11 8.76142 8.76142 11 6 11C3.23858 11 1 8.76142 1 6C1 3.23858 3.23858 1 6 1C8.76142 1 11 3.23858 11 6Z\"\r\n stroke=\"#98A2B3\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146536\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </span>\r\n </div>\r\n \r\n \r\n \r\n </div>\r\n </div>\r\n <div class=\"card-footer border-0 px-0\">\r\n <div class=\"mt-5 col-lg-12\">\r\n <button class=\"btn btn-light-primary1 w-100 px-2\" (click)=\"storeView(storeId)\"><span class=\"ms-2\">View more\r\n Details</span></button>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n</div>\r\n\r\n<!-- <div *ngIf=\"loading\" class=\"row px-3 loader card d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n</div> -->\r\n<div *ngIf=\"noData\" class=\"row px-3\">\r\n <div class=\"card\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-nodata-table\" src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\">\r\n <div class=\"nodata-title\">No data found</div>\r\n <div class=\"nodata-sub\">There is no result for this Store map</div>\r\n </div>\r\n </div>\r\n</div>", styles: ["#map{width:100%!important;position:relative}:host::ng-deep .mapboxgl-popup-content{background:var(--gradient-primary-800700265-deg, linear-gradient(27deg, #0082CC 8.33%, #0093E6 91.67%))!important}:host::ng-deep .map-container{height:500px;width:100%!important;position:relative;overflow:hidden}:host::ng-deep .mapboxgl-popup-anchor-bottom .mapboxgl-popup-tip{align-self:center;border-bottom:none;border-top-color:#008ddc;display:none!important}#map{top:0;bottom:0;width:100%}.marker{display:block;border:none;border-radius:50%;cursor:pointer;padding:0}.tooltip{position:absolute;background-color:#fff;padding:5px 10px;border-radius:4px;box-shadow:0 2px 6px #00000026;z-index:3;font-size:12px;pointer-events:none}.mapboxgl-popup{background-color:#fffc;border-radius:8px;padding:10px}.mapboxgl-popup-content{background-color:#fffc;color:#fff;padding:5px;border-radius:5px}.leftIcon{width:50px;height:50px;left:-25px;top:31px}.card-title .card-label{color:var(--Gray-900, #101828)!important;font-family:Inter;font-size:14px!important;font-weight:600!important;line-height:20px}.btn-light-primary1{color:var(--White, #FFF)!important;font-size:14px;font-style:normal;font-weight:600;line-height:20px;text-transform:capitalize;border-radius:8px!important;border:1px solid var(--Primary-600, #00A3FF)!important;background:var(--Primary-600, #00A3FF)!important;box-shadow:0 1px 2px #1018280d!important}.map-subtext{color:var(--Gray-500, #667085)!important;font-size:12px!important;font-style:normal;font-weight:500!important;line-height:18px}.map-avg{color:var(--Gray-700, #344054)!important;font-size:18px!important;font-style:normal;font-weight:600;line-height:28px}.map-avgtest{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-style:normal;font-weight:500;line-height:20px}.img-nodata-table{width:35%;height:20%}:host::ng-deep .mapboxgl-popup-close-button{background-color:transparent;border:0;border-radius:0 3px 0 0;cursor:pointer;position:absolute;right:0;top:0;outline:none!important;display:none!important}.nodata-title{font-size:14px!important;font-weight:600}.no-preview{border:1px solid #F04438;background:#fee4e2;border-radius:8px;stroke-width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:41px 16px}.no-preview .header{color:#f04438;font-size:20px;font-weight:700;line-height:20px}.no-preview .description{color:#f04438;font-size:12px;font-weight:500;line-height:18px}\n"] }]
|
|
281
|
+
}], ctorParameters: () => [{ type: i1.PageInfoService }, { type: i2.TrafficService }, { type: i1.GlobalStateService }, { type: i3.Router }, { type: i0.ChangeDetectorRef }] });
|
|
282
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwbG9yZS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFuYWx5c2UtdHJhZmZpYy9zcmMvbGliL2NvbXBvbmVudHMvZXhwbG9yZS12aWV3L2V4cGxvcmUtdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYWZmaWMvc3JjL2xpYi9jb21wb25lbnRzL2V4cGxvcmUtdmlldy9leHBsb3JlLXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFvQyxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFHcEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFDLE9BQU8sS0FBSyxRQUFRLE1BQU0sV0FBVyxDQUFDOzs7Ozs7QUFNdEMsTUFBTSxPQUFPLG9CQUFvQjtJQXFCYjtJQUFrQztJQUErQjtJQUErQjtJQUFzQjtJQXBCeEksVUFBVSxDQUFNO0lBQ2hCLFlBQVksQ0FBTTtJQUVsQixvQ0FBb0M7SUFDcEMsV0FBVyxHQUFVLEVBQUUsQ0FBQztJQUN4QixVQUFVLEdBQTJCO1FBQ25DLEtBQUssRUFBRSxhQUFhO1FBQ3BCLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtRQUMxQixJQUFJLEVBQUUsRUFBRTtLQUNULENBQUM7SUFDZSxRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUNuQyxJQUFJLEdBQVksS0FBSyxDQUFDLENBQUUsdUNBQXVDO0lBQy9ELFFBQVEsR0FBVyxXQUFXLENBQUM7SUFDdEMsYUFBYSxDQUFNO0lBQ25CLE9BQU8sR0FBVSxJQUFJLENBQUM7SUFDdEIsTUFB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QUFBO1FBQ3RDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsd0JBQXdCLENBQUMsRUFBRTtZQUMvQyxXQUFXLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFDO1NBQzlCLENBQUMsQ0FBQztJQUVMLENBQUM7d0dBL1JVLG9CQUFvQjs0RkFBcEIsb0JBQW9CLHdEQ1pqQywraHJCQXlSTTs7NEZEN1FPLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVHJhZmZpY1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cmFmZmljLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UsIFBhZ2VJbmZvU2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1nbG9iYWwnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCAqIGFzIG1hcGJveGdsIGZyb20gJ21hcGJveC1nbCc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWV4cGxvcmUtdmlldycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2V4cGxvcmUtdmlldy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2V4cGxvcmUtdmlldy5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEV4cGxvcmVWaWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0ICB7XHJcbiAgaGVhZGVyRGF0YTogYW55O1xyXG4gIHN0b3JlSWRhcnJheTogYW55O1xyXG4gIFxyXG4gIC8vIG1hcDogZ29vZ2xlLm1hcHMuTWFwIHwgdW5kZWZpbmVkO1xyXG4gIGF1TG9jYXRpb25zOiBhbnlbXSA9IFtdO1xyXG4gIG1hcE9wdGlvbnM6IGdvb2dsZS5tYXBzLk1hcE9wdGlvbnMgPSB7XHJcbiAgICBtYXBJZDogXCJERU1PX01BUF9JRFwiLFxyXG4gICAgY2VudGVyOiB7IGxhdDogMCwgbG5nOiAwIH0sICAvLyBJbml0aWFsIGNlbnRlclxyXG4gICAgem9vbTogMTAsXHJcbiAgfTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcclxuICBwdWJsaWMgYXV0aDogYm9vbGVhbiA9IGZhbHNlOyAgLy8gU2V0IHRoaXMgYmFzZWQgb24geW91ciBpbml0aWFsIGxvZ2ljXHJcbiAgcHVibGljIHNldENsYXNzOiBzdHJpbmcgPSAnY29sLW1kLTEyJztcclxuICBzZWxlY3RlZFN0b3JlOiBhbnk7XHJcbiAgbG9hZGluZzpib29sZWFuID10cnVlO1xyXG4gIG5vRGF0YTogYm9vbGVhbiA9ZmFsc2U7XHJcbiAgZGF0YUltYWdlczogYW55O1xyXG4gIGRhdGFTdG9yZU1hcDogYW55O1xyXG4gIG5ld0RhdGFTdG9yZU1hcDogYW55O1xyXG4gIHN0b3JlSWQ6IGFueTtcclxuY29uc3RydWN0b3IocHJpdmF0ZSBwYWdlSW5mbzpQYWdlSW5mb1NlcnZpY2UsIHByaXZhdGUgc2VydmljZTogVHJhZmZpY1NlcnZpY2UscHVibGljIGdzOiBHbG9iYWxTdGF0ZVNlcnZpY2UscHJpdmF0ZSByb3V0ZXI6Um91dGVyLHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmKXtcclxuXHJcbn1cclxuc2V0UGFnZURhdGEoKXtcclxuICB0aGlzLnBhZ2VJbmZvLnNldFRpdGxlKCdFeHBsb3JlJylcclxuICB0aGlzLnBhZ2VJbmZvLnNldERlc2NyaXB0aW9uKCdUbyBvcHRpbWl6ZSBhbmQgaW1wcm92ZSBleGlzdGluZyBhbGdvcml0aG0nKVxyXG4gIHRoaXMucGFnZUluZm8uc2V0QnJlYWRjcnVtYnMoW1xyXG4gIHt0aXRsZTonQW5hbHl6ZScsIHBhdGg6ICcvbWFuYWdlL3RyYWZmaWMnLCBpc0FjdGl2ZTogZmFsc2UsIGlzU2VwYXJhdG9yOiBmYWxzZX0sXHJcbiAge3RpdGxlOidBbmFseXplJywgcGF0aDogJy9tYW5hZ2UvdHJhZmZpYycsIGlzQWN0aXZlOiBmYWxzZSwgaXNTZXBhcmF0b3I6IHRydWV9LFxyXG4gIHt0aXRsZTonVHJhZmZpYycsIHBhdGg6ICcvbWFuYWdlL3RyYWZmaWMnLCBpc0FjdGl2ZTogZmFsc2UsIGlzU2VwYXJhdG9yOiBmYWxzZX0sXHJcbiAge3RpdGxlOidUcmFmZmljJywgcGF0aDogJy9tYW5hZ2UvdHJhZmZpYycsIGlzQWN0aXZlOiBmYWxzZSwgaXNTZXBhcmF0b3I6IHRydWV9LFxyXG4gIF0pXHJcbn1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2V0UGFnZURhdGEoKTtcclxuICAgXHJcbiAgICAobWFwYm94Z2wgYXMgYW55KS5hY2Nlc3NUb2tlbiA9ICdway5leUoxSWpvaVltRnNZV3BwZEdGdVoyOGlMQ0poSWpvaVkyMHdaMnhpZW01NU1ERnhZVEozYjIxemIzRmpOSGR3YXlKOS5ubklJenQ3T2VZbFlIdWZHRThsRldRJztcclxuXHJcbiAgICB0aGlzLmdzLmRhdGFSYW5nZVZhbHVlXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSwgZGVib3VuY2VUaW1lKDMwMCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgIC8vIE9ubHkgcHJvY2VzcyB0aGUgbGF0ZXN0IGRhdGEgYWZ0ZXIgZGVib3VuY2UgdGltZVxyXG4gICAgICAgIHRoaXMuaGVhZGVyRGF0YSA9IGRhdGE7XHJcbiAgICAgICAgdGhpcy5zdG9yZUlkYXJyYXkgPSB0aGlzLmhlYWRlckRhdGE/LnN0b3Jlcy5maWx0ZXIoKHN0b3JlOmFueSkgPT4gc3RvcmUuY2hlY2tlZCkubWFwKChzdG9yZTphbnkpID0+IHN0b3JlLnN0b3JlSWQpXHJcbiAgICAgICBcclxuICAgICAgICB0aGlzLmdldE1hcCgpO1xyXG4gICAgICB9KVxyXG4gICAgICBcclxuICAgIH1cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XHJcbiAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICAgIH1cclxuXHJcblxyXG5cclxuXHJcbiAgbWFwOiBtYXBib3hnbC5NYXA7XHJcblxyXG4gIGdldE1hcCgpIHtcclxuICAgIHRoaXMubG9hZGluZyA9dHJ1ZTtcclxuICAgIGNvbnN0IG9iaiA9IHtcclxuICAgICAgY2xpZW50SWQ6IHRoaXMuaGVhZGVyRGF0YS5jbGllbnQsXHJcbiAgICAgIHN0b3JlRGF0ZTogdGhpcy5oZWFkZXJEYXRhLmRhdGUuZW5kRGF0ZSxcclxuICAgICAgc3RvcmVJZDogdGhpcy5zdG9yZUlkYXJyYXlcclxuICAgIH07XHJcbiAgXHJcbiAgICB0aGlzLnNlcnZpY2UuZ2VNYXBzKG9iaik/LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmRhdGEgJiYgcmVzLmRhdGEuc3RvcmVEYXRhKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYXVMb2NhdGlvbnMgPSByZXMuZGF0YS5zdG9yZURhdGE7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0RGF0YSgpO1xyXG4gICAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgICAgaWYgKHRoaXMuYXVMb2NhdGlvbnMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGZpcnN0TG9jYXRpb24gPSB0aGlzLmF1TG9jYXRpb25zWzBdO1xyXG4gICAgICAgICAgICAgIGlmIChmaXJzdExvY2F0aW9uICYmIHR5cGVvZiBmaXJzdExvY2F0aW9uLmxhdCA9PT0gJ251bWJlcicgJiYgdHlwZW9mIGZpcnN0TG9jYXRpb24ubG5nID09PSAnbnVtYmVyJykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tYXBPcHRpb25zID0ge1xyXG4gICAgICAgICAgICAgICAgICAuLi50aGlzLm1hcE9wdGlvbnMsXHJcbiAgICAgICAgICAgICAgICAgIGNlbnRlcjogeyBsYXQ6IGZpcnN0TG9jYXRpb24ubGF0LCBsbmc6IGZpcnN0TG9jYXRpb24ubG5nIH1cclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICBcclxuICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID1mYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5ub0RhdGEgPWZhbHNlO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID1mYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5ub0RhdGEgPXRydWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID1mYWxzZTtcclxuICAgICAgICAgIHRoaXMubm9EYXRhID10cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIFxyXG4gIGdldERhdGEoKSB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgY29uc3QgbWFwQ29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21hcDEnKTtcclxuICAgICAgaWYgKCFtYXBDb250YWluZXIpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIGlmICh0aGlzLmF1TG9jYXRpb25zLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgXHJcbiAgICBjb25zdCBnZW9qc29uID0ge1xyXG4gICAgICAndHlwZSc6ICdGZWF0dXJlQ29sbGVjdGlvbicsXHJcbiAgICAgICdmZWF0dXJlcyc6IHRoaXMuYXVMb2NhdGlvbnMubWFwKChzdG9yZSwgaW5kZXgpID0+ICh7XHJcbiAgICAgICAgJ3R5cGUnOiAnRmVhdHVyZScsXHJcbiAgICAgICAgJ3Byb3BlcnRpZXMnOiB7XHJcbiAgICAgICAgICAnc3RvcmVOYW1lJzogc3RvcmUuc3RvcmVOYW1lLFxyXG4gICAgICAgICAgJ2ltYWdlSWQnOiAxMDExICsgaW5kZXgsXHJcbiAgICAgICAgICAnaWNvblNpemUnOiBbNjAsIDYwXSxcclxuICAgICAgICAgICdmb290ZmFsbCc6IHN0b3JlLmF2Z0Zvb3RmYWxsLFxyXG4gICAgICAgICAgJ29wZW5UaW1lJzogc3RvcmUub3BlblRpbWUsXHJcbiAgICAgICAgICAnY2xvc2VUaW1lJzogc3RvcmUuY2xvc2VUaW1lLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgJ2dlb21ldHJ5Jzoge1xyXG4gICAgICAgICAgJ3R5cGUnOiAnUG9pbnQnLFxyXG4gICAgICAgICAgJ2Nvb3JkaW5hdGVzJzogW3N0b3JlLmxuZywgc3RvcmUubGF0XVxyXG4gICAgICAgIH1cclxuICAgICAgfSkpXHJcbiAgICB9O1xyXG4gIFxyXG4gICAgY29uc3QgZmlyc3RMb2NhdGlvbiA9IHRoaXMuYXVMb2NhdGlvbnNbMF07XHJcbiAgICB0aGlzLm1hcCA9IG5ldyBtYXBib3hnbC5NYXAoe1xyXG4gICAgICBjb250YWluZXI6ICdtYXAxJyxcclxuICAgICAgc3R5bGU6ICdtYXBib3g6Ly9zdHlsZXMvbWFwYm94L3N0cmVldHMtdjEyJyxcclxuICAgICAgY2VudGVyOiBbZmlyc3RMb2NhdGlvbi5sbmcsIGZpcnN0TG9jYXRpb24ubGF0XSwgLy8gQ2VudGVyIG1hcCBvbiB0aGUgZmlyc3QgbG9jYXRpb25cclxuICAgICAgem9vbTogMTAsIC8vIEFkanVzdCB0aGlzIHZhbHVlICgxID0gd29ybGQgdmlldywgMjAgPSBidWlsZGluZyB2aWV3KVxyXG4gICAgICBtYXhab29tOiAyMCwgLy8gT3B0aW9uYWw6IExpbWl0IG1heCB6b29tIGxldmVsXHJcbiAgICAgIG1pblpvb206IDEgICAvLyBPcHRpb25hbDogTGltaXQgbWluIHpvb20gbGV2ZWxcclxuICAgIH0pO1xyXG4gIFxyXG4gICAgLy8gdGhpcy5tYXAgPSBuZXcgbWFwYm94Z2wuTWFwKHtcclxuICAgIC8vICAgY29udGFpbmVyOiAnbWFwMScsXHJcbiAgICAvLyAgIHN0eWxlOiAnbWFwYm94Oi8vc3R5bGVzL21hcGJveC9zdHJlZXRzLXYxMicsXHJcbiAgICAvLyAgIGNlbnRlcjogW2ZpcnN0TG9jYXRpb24ubG5nLCBmaXJzdExvY2F0aW9uLmxhdF0sXHJcbiAgICAvLyAgIHpvb206IDRcclxuICAgIC8vIH0pO1xyXG4gIFxyXG4gICAgZ2VvanNvbi5mZWF0dXJlcy5mb3JFYWNoKChmZWF0dXJlLCBmZWF0dXJlSW5kZXgpID0+IHtcclxuICAgICAgY29uc3QgeyBwcm9wZXJ0aWVzLCBnZW9tZXRyeSB9ID0gZmVhdHVyZTtcclxuICAgICAgY29uc3Qgc3RvcmUgPSB0aGlzLmF1TG9jYXRpb25zW2ZlYXR1cmVJbmRleF07XHJcbiAgXHJcbiAgICAgIGNvbnN0IGVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICAgIGNvbnN0IHdpZHRoID0gcHJvcGVydGllcy5pY29uU2l6ZVswXTtcclxuICAgICAgY29uc3QgaGVpZ2h0ID0gcHJvcGVydGllcy5pY29uU2l6ZVsxXTtcclxuICAgICAgZWwuY2xhc3NOYW1lID0gJ21hcmtlcic7XHJcbiAgICAgIGVsLmlubmVySFRNTCA9IGBcclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWFya2VyLWljb25cIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6IHdoaXRlOyB3aWR0aDogNjVweDsgaGVpZ2h0OiA3MHB4OyBkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgYWxpZ24taXRlbXM6IGNlbnRlcjtcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYXJrZXItY29udGVudFwiIHN0eWxlPVwiZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgYWxpZ24taXRlbXM6IGNlbnRlcjtcIj5cclxuICAgICAgICAgICAgPHN2ZyBjbGFzcz1cIm1iLTFcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxM1wiIGhlaWdodD1cIjEzXCIgdmlld0JveD1cIjAgMCAxMyAxM1wiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgPHBhdGggZD1cIk0xLjMzNjU0IDMuMzYzN0wxLjI5NjU4IDMuNDI2MTFDMC44Nzc2OTggNC4xNjcwMSAxLjMyNDkzIDUuMTAzMzUgMi4xMjkzMSA1LjIxMDc2QzIuMjAyMTggNS4yMTk2NyAyLjI2OTk5IDUuMjI0MzggMi4zMzYyNSA1LjIyNDM4QzIuNzcwMjEgNS4yMjQzOCAzLjE1MzkgNS4wMzgyMSAzLjQyMTMyIDQuNzQ3OTNMMy44MzY2NiA0LjI5NzFMNC4yNTA1OSA0Ljc0OTIzQzQuNTE0NzYgNS4wMzc3OCA0Ljg5NzU4IDUuMjI0MzggNS4zMzQ0OCA1LjIyNDM4QzUuNzY5NDEgNS4yMjQzOCA2LjE1NDQzIDUuMDM3NTIgNi40MTgzNyA0Ljc0OTIzTDYuODMzNTkgNC4yOTU2OEw3LjI0ODgyIDQuNzQ5MjNDNy41MTI3NSA1LjAzNzUyIDcuODk3NzcgNS4yMjQzOCA4LjMzMjcxIDUuMjI0MzhDOC43Njc2NCA1LjIyNDM4IDkuMTUyNjYgNS4wMzc1MiA5LjQxNjYgNC43NDkyM0w5LjgzMTgyIDQuMjk1NjhMMTAuMjQ3IDQuNzQ5MjNDMTAuNTExIDUuMDM3NTIgMTAuODk2IDUuMjI0MzggMTEuMzMwOSA1LjIyNDM4QzExLjM5NSA1LjIyNDM4IDExLjQ2NDkgNS4yMTk2NiAxMS41MzcyIDUuMjEwODNDMTIuMzU5MyA1LjA5ODc1IDEyLjgwOCA0LjExMjI1IDEyLjMyODYgMy4zNjQwOEMxMi4zMjg2IDMuMzY0MDMgMTIuMzI4NSAzLjM2Mzk5IDEyLjMyODUgMy4zNjM5NUwxMS4wMDg4IDEuMzA2MjFMMTEuMDA4MSAxLjMwNTExQzEwLjk5NjcgMS4yODcyMiAxMC45Njg2IDEuMjY4MDQgMTAuOTMzMiAxLjI2ODA0SDIuNzI5NDJDMi42OTQwMyAxLjI2ODA0IDIuNjY1ODkgMS4yODcyMiAyLjY1NDQ4IDEuMzA1MTFMMi42NTQwMSAxLjMwNTg0TDEuMzM2NTQgMy4zNjM3Wk0xMS4wNzMxIDcuMDY2NjdWOS40MTc1M1Y5Ljk4MDQ5SDEwLjUxMDFIMy4xNTI0OEgyLjU4OTUyVjkuNDE3NTNWNy4wNjcwMkMyLjUwNjc4IDcuMDczMTggMi40MjMwOCA3LjA3NjM0IDIuMzM4NTUgNy4wNzYzNEMyLjMwNjc5IDcuMDc2MzQgMi4yNzUyNSA3LjA3NTg3IDIuMjQzOTIgNy4wNzQ5NVY5LjQxNzUzVjEwLjg2OTZDMi4yNDM5MiAxMS4zNTI2IDIuNjQ0NjcgMTEuNzU4NyAzLjE1MjQ4IDExLjc1ODdIMTAuNTEwMUMxMS4wMTc5IDExLjc1ODcgMTEuNDE4NyAxMS4zNTI2IDExLjQxODcgMTAuODY5NlY5LjQxNzUzVjcuMDc1MDlDMTEuMzg4OCA3LjA3NTkxIDExLjM1ODcgNy4wNzYzNCAxMS4zMjg2IDcuMDc2MzRDMTEuMjQyOCA3LjA3NjM0IDExLjE1NzUgNy4wNzMwOCAxMS4wNzMxIDcuMDY2NjdaXCIgc3Ryb2tlPVwiIzEwMTgyOFwiIHN0cm9rZS13aWR0aD1cIjEuMTI1OTJcIi8+XHJcbiAgICAgICAgICAgIDwvc3ZnPlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1hcmtlci1sYWJlbFwiIHN0eWxlPVwiY29sb3I6IHZhcigtLUdyYXktNzAwLCAjMzQ0MDU0KTsgdGV4dC1hbGlnbjogY2VudGVyOyBmb250LWZhbWlseTogSW50ZXI7IGZvbnQtc2l6ZTogOS4wMDdweDsgZm9udC1zdHlsZTogbm9ybWFsOyBmb250LXdlaWdodDogNjAwOyBsaW5lLWhlaWdodDogMTNweDtcIj5cclxuICAgICAgICAgICAgICAke3Byb3BlcnRpZXMuc3RvcmVOYW1lfVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICBgO1xyXG4gICAgICBlbC5zdHlsZS53aWR0aCA9IGAke3dpZHRofXB4YDtcclxuICAgICAgZWwuc3R5bGUuaGVpZ2h0ID0gYCR7aGVpZ2h0fXB4YDtcclxuICAgICAgZWwuc3R5bGUuYmFja2dyb3VuZFNpemUgPSAnMTAwJSc7XHJcbiAgXHJcbiAgICAgIC8vIENyZWF0ZSBhbiBlbXB0eSBwb3B1cCBpbml0aWFsbHlcclxuICAgICAgY29uc3QgcG9wdXAgPSBuZXcgbWFwYm94Z2wuUG9wdXAoeyBvZmZzZXQ6IDI1IH0pXHJcbiAgICAgICAgLnNldEhUTUwoJzxkaXY+TG9hZGluZy4uLjwvZGl2PicpO1xyXG4gIFxyXG4gICAgICAvLyBDcmVhdGUgbWFya2VyIHdpdGggdGhlIHBvcHVwXHJcbiAgICAgIGNvbnN0IG1hcmtlciA9IG5ldyBtYXBib3hnbC5NYXJrZXIoZWwpXHJcbiAgICAgICAgLnNldExuZ0xhdChbZ2VvbWV0cnkuY29vcmRpbmF0ZXNbMF0sIGdlb21ldHJ5LmNvb3JkaW5hdGVzWzFdXSlcclxuICAgICAgICAuc2V0UG9wdXAocG9wdXApXHJcbiAgICAgICAgLmFkZFRvKHRoaXMubWFwKTtcclxuICBcclxuICAgICAgLy8gSGFuZGxlIGNsaWNrIGV2ZW50c1xyXG4gICAgICBlbC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcclxuICAgICAgICB0aGlzLmFkanVzdExheW91dChzdG9yZSwgbWFya2VyLCBwb3B1cCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfSwwKVxyXG4gIH1cclxuICBcclxuICBhZGp1c3RMYXlvdXQoc3RvcmU6IGFueSwgbWFya2VyOiBtYXBib3hnbC5NYXJrZXIsIHBvcHVwOiBtYXBib3hnbC5Qb3B1cCkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFN0b3JlID0gc3RvcmU7XHJcblxyXG4gICAgdGhpcy5zdG9yZUlkID0gc3RvcmU/LnN0b3JlSWQ7XHJcbiAgICB0aGlzLmF1dGggPSB0cnVlO1xyXG4gICAgdGhpcy5zZXRDbGFzcyA9ICdjb2wtbWQtOSc7XHJcbiAgXHJcbiAgICBjb25zdCBvYmogPSB7XHJcbiAgICAgIGNsaWVudElkOiB0aGlzLmhlYWRlckRhdGEuY2xpZW50LFxyXG4gICAgICBzdG9yZURhdGU6IHRoaXMuaGVhZGVyRGF0YS5kYXRlLmVuZERhdGUsXHJcbiAgICAgIHN0b3JlSWQ6IFtzdG9yZT8uc3RvcmVJZF1cclxuICAgIH07XHJcbiAgXHJcbiAgICB0aGlzLnNlcnZpY2UuZ2V0U3RvcmVNYXBEYXRhKG9iaik/LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMgJiYgcmVzPy5jb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgdGhpcy5kYXRhU3RvcmVNYXAgPSByZXM/LmRhdGE7XHJcbiAgICAgICAgICAgIHRoaXMuZGF0YUltYWdlcyA9IHJlcz8uZGF0YT8uY2FtZXJhQmFzZUltYWdlIHx8ICdhc3NldHMvdGFuZ28vSW1hZ2VzL3ByZXZpZXdfbm90LnBuZyc7XHJcbiAgXHJcbiAgICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgcG9wdXAgY29udGVudFxyXG4gICAgICAgICAgICBwb3B1cC5zZXRIVE1MKGBcclxuICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwidy0xMDBcIiBzcmM9XCIke3RoaXMuZGF0YUltYWdlc31cIiBvbmVycm9yPVwidGhpcy5vbmVycm9yPW51bGw7IHRoaXMuc3JjPSdhc3NldHMvdGFuZ28vSW1hZ2VzL3ByZXZpZXdfbm90LnBuZyc7XCIgYWx0PVwiU3RvcmUgSW1hZ2VcIj5cclxuICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiYmFja2dyb3VuZDogdmFyKC0tZ3JhZGllbnQtcHJpbWFyeS04MDA3MDAyNjUtZGVnLCBsaW5lYXItZ3JhZGllbnQoMjdkZWcsICMwMDgyQ0MgOC4zMyUsICMwMDkzRTYgOTEuNjclKSk7Y29sb3I6d2hpdGU7IHBhZGRpbmc6IDEwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJ0ZXh0LXdoaXRlXCI+JHtzdG9yZS5zdG9yZU5hbWUgfHwgJ1N0b3JlIE5hbWUnfTwvaDQ+XHJcbiAgICAgICAgICAgICAgICA8aDYgY2xhc3M9XCJ0ZXh0LXdoaXRlXCI+QXZlcmFnZSBGb290ZmFsbDogJHt0aGlzLmRhdGFTdG9yZU1hcD8uaG91cmx5RGF0YT8uaG91cmx5Rm9vdGZhbGwgfHwgJy0tJ308L2g2PlxyXG4gICAgICAgICAgICAgICAgPGg2IGNsYXNzPVwidGV4dC13aGl0ZVwiPk9wZW4gVGltZTogJHt0aGlzLmRhdGFTdG9yZU1hcD8uaG91cmx5RGF0YT8ub3BlblRpbWUgfHwgJy0tJ308L2g2PlxyXG4gICAgICAgICAgICAgICAgPGg2IGNsYXNzPVwidGV4dC13aGl0ZVwiPkNsb3NlIFRpbWU6ICR7dGhpcy5kYXRhU3RvcmVNYXA/LmhvdXJseURhdGE/LmNsb3NlVGltZSB8fCAnLS0nfTwvaDY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIGApO1xyXG4gIFxyXG4gICAgICAgICAgICAvLyBFbnN1cmUgdGhlIHBvcHVwIGlzIGFkZGVkIHRvIHRoZSBtYXAgYW5kIHBvc2l0aW9uZWQgY29ycmVjdGx5XHJcbiAgICAgICAgICAgIG1hcmtlci5zZXRQb3B1cChwb3B1cCk7IC8vIEF0dGFjaCB0aGUgcG9wdXAgdG8gdGhlIG1hcmtlclxyXG4gICAgICAgICAgICBpZiAoIXBvcHVwLmlzT3BlbigpKSB7XHJcbiAgICAgICAgICAgICAgcG9wdXAuYWRkVG8odGhpcy5tYXApOyAvLyBBZGQgcG9wdXAgdG8gdGhlIG1hcFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmRhdGFJbWFnZXMgPSAnYXNzZXRzL3RhbmdvL0ltYWdlcy9wcmV2aWV3X25vdC5wbmcnO1xyXG4gICAgICAgICAgICBwb3B1cC5zZXRIVE1MKGBcclxuICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwidy0xMDBcIiBzcmM9XCIke3RoaXMuZGF0YUltYWdlc31cIiBvbmVycm9yPVwidGhpcy5vbmVycm9yPW51bGw7IHRoaXMuc3JjPSdhc3NldHMvdGFuZ28vSW1hZ2VzL3ByZXZpZXdfbm90LnBuZyc7XCIgYWx0PVwiU3RvcmUgSW1hZ2VcIj5cclxuICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiYmFja2dyb3VuZDogdmFyKC0tZ3JhZGllbnQtcHJpbWFyeS04MDA3MDAyNjUtZGVnLCBsaW5lYXItZ3JhZGllbnQoMjdkZWcsICMwMDgyQ0MgOC4zMyUsICMwMDkzRTYgOTEuNjclKSk7Y29sb3I6d2hpdGU7IHBhZGRpbmc6IDEwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJ0ZXh0LXdoaXRlXCI+JHtzdG9yZS5zdG9yZU5hbWUgfHwgJ1N0b3JlIE5hbWUnfTwvaDQ+XHJcbiAgICAgICAgICAgICAgICA8aDYgY2xhc3M9XCJ0ZXh0LXdoaXRlXCI+QXZlcmFnZSBGb290ZmFsbDogLS08L2g2PlxyXG4gICAgICAgICAgICAgICAgPGg2IGNsYXNzPVwidGV4dC13aGl0ZVwiPk9wZW4gVGltZTogLS08L2g2PlxyXG4gICAgICAgICAgICAgICAgPGg2IGNsYXNzPVwidGV4dC13aGl0ZVwiPkNsb3NlIFRpbWU6IC0tPC9oNj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgYCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZmV0Y2hpbmcgc3RvcmUgbWFwIGRhdGE6JywgZXJyKTtcclxuICAgICAgICAgIHBvcHVwLnNldEhUTUwoYFxyXG4gICAgICAgICAgIDxpbWcgY2xhc3M9XCJ3LTEwMFwiIHNyYz1cIiR7dGhpcy5kYXRhSW1hZ2VzfVwiIG9uZXJyb3I9XCJ0aGlzLm9uZXJyb3I9bnVsbDsgdGhpcy5zcmM9J2Fzc2V0cy90YW5nby9JbWFnZXMvcHJldmlld19ub3QucG5nJztcIiBhbHQ9XCJTdG9yZSBJbWFnZVwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJiYWNrZ3JvdW5kOiB2YXIoLS1ncmFkaWVudC1wcmltYXJ5LTgwMDcwMDI2NS1kZWcsIGxpbmVhci1ncmFkaWVudCgyN2RlZywgIzAwODJDQyA4LjMzJSwgIzAwOTNFNiA5MS42NyUpKTtjb2xvcjp3aGl0ZTsgcGFkZGluZzogMTBweDtcIj5cclxuICAgICAgICAgICAgICAgIDxoNCBjbGFzcz1cInRleHQtd2hpdGVcIj4ke3N0b3JlLnN0b3JlTmFtZSB8fCAnU3RvcmUgTmFtZSd9PC9oND5cclxuICAgICAgICAgICAgICAgIDxoNiBjbGFzcz1cInRleHQtd2hpdGVcIj5BdmVyYWdlIEZvb3RmYWxsOiAtLTwvaDY+XHJcbiAgICAgICAgICAgICAgICA8aDYgY2xhc3M9XCJ0ZXh0LXdoaXRlXCI+T3BlbiBUaW1lOiAtLTwvaDY+XHJcbiAgICAgICAgICAgICAgICA8aDYgY2xhc3M9XCJ0ZXh0LXdoaXRlXCI+Q2xvc2UgVGltZTogLS08L2g2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgYCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcbiAgXHJcbiAgXHJcbiAgXHJcbiAgXHJcbiAgLy8gYWRqdXN0TGF5b3V0KHN0b3JlOmFueSkge1xyXG4gIC8vICAgdGhpcy5zZWxlY3RlZFN0b3JlID0gc3RvcmU7XHJcbiAgLy8gICB0aGlzLmF1dGggPXRydWU7XHJcbiAgLy8gICB0aGlzLnNldENsYXNzID0gJ2NvbC1tZC05JzsgLy8gQWRqdXN0IHRoZSBsYXlvdXQgdG8gOCBjb2x1bW5zIG9uIG1hcmtlciBjbGlja1xyXG4gICBcclxuICAvLyAgIC8vIHRoaXMubmV3RGF0YVN0b3JlTWFwID0gZGF0YTtcclxuICAvLyB9XHJcbiAgZGF0YVZhbHVlKGRhdGE6YW55KXtcclxuICAgIHRoaXMubmV3RGF0YVN0b3JlTWFwID0gZGF0YVxyXG4gIH1cclxuICB0b2dnbGVBdXRoKCkge1xyXG4gICAgdGhpcy5hdXRoID0gIXRoaXMuYXV0aDtcclxuICAgIHRoaXMuc2V0Q2xhc3MgPSB0aGlzLmF1dGggPyAnY29sLW1kLTknIDogJ2NvbC1tZC0xMic7XHJcbiAgfVxyXG5cclxuICAgIGJhY2tUb0Zvb3RmYWxsKCl7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9tYW5hZ2UvdHJhZmZpYyddKVxyXG4gIH1cclxuICBzdG9yZVZpZXcoZGF0YTphbnkpe1xyXG4gICAgY29uc3QgZGF0YXZhbHVlOiBhbnkgPSBKU09OLnBhcnNlKFxyXG4gICAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImhlYWRlci1maWx0ZXJzXCIpIHx8IFwie31cIlxyXG4gICAgKTtcclxuICAgIGRhdGF2YWx1ZS5zdG9yZSA9IGRhdGE7XHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcImhlYWRlci1maWx0ZXJzXCIsIEpTT04uc3RyaW5naWZ5KGRhdGF2YWx1ZSkpO1xyXG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKClcclxuICAgIHRoaXMuZ3MuZGF0YVJhbmdlVmFsdWUubmV4dChkYXRhdmFsdWUpXHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXCIvbWFuYWdlL3N0b3Jlcy9jYW1lcmFzXCJdLCB7XHJcbiAgICAgIHF1ZXJ5UGFyYW1zOiB7IHN0b3JlSWQ6IGRhdGF9LFxyXG4gICAgfSk7XHJcblxyXG4gIH1cclxuICAvLyBvbk1hcmtlckNsaWNrKGxvY2F0aW9uOiBhbnkpIHtcclxuICAvLyAgIGNvbnNvbGUubG9nKCdNYXJrZXIgY2xpY2tlZDonLCBsb2NhdGlvbik7XHJcbiAgLy8gICAvLyBQZXJmb3JtIGFjdGlvbnMgYmFzZWQgb24gdGhlIGNsaWNrZWQgbG9jYXRpb25cclxuICAvLyB9XHJcbn1cclxuIiwiPGRpdiAqbmdJZj1cIiFub0RhdGFcIiBjbGFzcz1cInJvd1wiPlxyXG4gICAgPGRpdiBbbmdDbGFzc109XCJzZXRDbGFzc1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIHB4LTIgcHktM1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBtZS0yXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1zaHJpbmstMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiYmFja1RvRm9vdGZhbGwoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiIHZpZXdCb3g9XCIwIDAgNDAgNDBcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGZpbHRlcj1cInVybCgjZmlsdGVyMF9kXzI1ODVfNzAzNilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMlwiIHk9XCIxXCIgd2lkdGg9XCIzNlwiIGhlaWdodD1cIjM2XCIgcng9XCI4XCIgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMi41XCIgeT1cIjEuNVwiIHdpZHRoPVwiMzVcIiBoZWlnaHQ9XCIzNVwiIHJ4PVwiNy41XCIgc3Ryb2tlPVwiI0QwRDVERFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yNS44MzI3IDE5SDE0LjE2Nk0xNC4xNjYgMTlMMTkuOTk5MyAyNC44MzM0TTE0LjE2NiAxOUwxOS45OTkzIDEzLjE2NjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsdGVyIGlkPVwiZmlsdGVyMF9kXzI1ODVfNzAzNlwiIHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJVbml0cz1cInVzZXJTcGFjZU9uVXNlXCIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPVwic1JHQlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PVwiMFwiIHJlc3VsdD1cIkJhY2tncm91bmRJbWFnZUZpeFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IGluPVwiU291cmNlQWxwaGFcIiB0eXBlPVwibWF0cml4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz1cIjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwXCIgcmVzdWx0PVwiaGFyZEFscGhhXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlT2Zmc2V0IGR5PVwiMVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249XCIxXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggdHlwZT1cIm1hdHJpeFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9XCIwIDAgMCAwIDAuMDYyNzQ1MSAwIDAgMCAwIDAuMDk0MTE3NiAwIDAgMCAwIDAuMTU2ODYzIDAgMCAwIDAuMDUgMFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbjI9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0PVwiZWZmZWN0MV9kcm9wU2hhZG93XzI1ODVfNzAzNlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbj1cIlNvdXJjZUdyYXBoaWNcIiBpbjI9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMjU4NV83MDM2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdD1cInNoYXBlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZpbHRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHAtMFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cIm1hcDFcIiBzdHlsZT1cIndpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMHZoO1wiPjwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgKm5nSWY9XCJhdXRoXCIgY2xhc3M9XCJjb2wtbWQtM1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIHB4LTUgaC0xMDAgcHktMyBwb3NpdGlvbi1yZWxhdGl2ZVwiPlxyXG4gICAgICAgICAgICA8aW1nIChjbGljayk9XCJ0b2dnbGVBdXRoKClcIiBjbGFzcz1cImxlZnRJY29uIHBvc2l0aW9uLWFic29sdXRlIGxlZnQtMCBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICBzcmM9XCJhc3NldHMvdGFuZ28vSW1hZ2UvbGVmdEljb24uc3ZnXCI+XHJcbiAgICAgICAgICAgIDxpbWcgKm5nSWY9XCJkYXRhSW1hZ2VzICE9PSBudWxsXCIgY2xhc3M9XCJ3LTEwMFwiIFtzcmNdPVwiZGF0YUltYWdlc1wiIChlcnJvcik9XCJkYXRhSW1hZ2VzID0gbnVsbFwiIFthbHRdPVwiZGF0YUltYWdlcyA/ICdJbWFnZScgOiAnRXJyb3IgSW1hZ2UnXCI+XHJcbiAgICAgICAgICAgIDwhLS0gPGltZyAqbmdJZj1cImRhdGFJbWFnZXMgPT09IG51bGxcIiBjbGFzcz1cInctMTAwXCIgc3JjPVwiYXNzZXRzL3RhbmdvL0ltYWdlL2Jhc2VpbWcucG5nXCIgYWx0PVwiSW1hZ2VcIj4gLS0+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJkYXRhSW1hZ2VzID09PSBudWxsXCIgY2xhc3M9XCJuby1wcmV2aWV3XCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1iLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMjNcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjMgMjBcIiBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGcgaWQ9XCJHcm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggaWQ9XCJWZWN0b3JcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNi41IDYuMzIyMjdINi41MU0xNi4yNSA5LjMyMjI3SDIxLjVMMTggMTYuMzIyM0wxNC45MSAxMi4wMDIzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGlkPVwiVmVjdG9yXzJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMS41IDE2LjMyMjlINS4yNkM1LjYzMjczIDE2LjMyNTUgNS45OTg3NyAxNi4yMjM5IDYuMzE2ODIgMTYuMDI5NUM2LjYzNDg3IDE1LjgzNTIgNi44OTIyOCAxNS41NTU4IDcuMDYgMTUuMjIyOUw4LjUgMTIuMzIyOU0xLjUgMTguMzIyOVYxNC4zMjI5TTE3LjUgNi44MjI5MUwxMy41IDE0LjgyMjlMMy4xMSA5LjYyMjkxQzIuNDIwMzMgOS4yNzU1MyAxLjg5NjM1IDguNjY5MSAxLjY1MjcyIDcuOTM2MzJDMS40MDkwOSA3LjIwMzU0IDEuNDY1NjQgNi40MDQxIDEuODEgNS43MTI5MUwzLjE5IDIuOTIyOTFDMy4zNjIgMi41ODAxNCAzLjU5OTg0IDIuMjc0NiAzLjg4OTk0IDIuMDIzNzVDNC4xODAwMyAxLjc3MjkgNC41MTY3IDEuNTgxNjUgNC44ODA3MiAxLjQ2MDkzQzUuMjQ0NzQgMS4zNDAyMSA1LjYyODk3IDEuMjkyMzkgNi4wMTE0NyAxLjMyMDE4QzYuMzkzOTggMS4zNDc5NyA2Ljc2NzI2IDEuNDUwODQgNy4xMSAxLjYyMjkxTDE3LjUgNi44MjI5MVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcblxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoZWFkZXIgbWItNSB0ZXh0LWNlbnRlclwiPlByZXZpZXcgbm90IGF2YWlsYWJsZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGVzY3JpcHRpb24gbWItNSB0ZXh0LWNlbnRlclwiPlRoZSBzZWxlY3RlZCBjYW1lcmEgaXMgbm90IGF2YWlsYWJsZSBhdCB0aGVcclxuICAgICAgICAgICAgICAgICAgICBtb21lbnQuPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICBcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIG10LTMgcHgtMCBib3JkZXItMCBtaW4taC0xMHB4XCIgPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cImNhcmQtdGl0bGUgYWxpZ24taXRlbXMtc3RhcnQgZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FyZC1sYWJlbCBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJzdG9yZVZpZXcoc3RvcmVJZClcIj57e3NlbGVjdGVkU3RvcmUuc3RvcmVOYW1lID8/ICctLSd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2gzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtcHJpbWFyeSBtYi0yXCI+QXBwIElEIDoge3tzZWxlY3RlZFN0b3JlLmFwcElkID8/ICctLSd9fTwvc3Bhbj5cclxuXHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBwdC0wIHB4LTBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hcC1zdWJ0ZXh0XCI+e3tzZWxlY3RlZFN0b3JlPy5zdG9yZVByb2ZpbGU/LmFkZHJlc3MgPyBzZWxlY3RlZFN0b3JlPy5zdG9yZVByb2ZpbGU/LmFkZHJlc3M6Jy0tJ319IHt7c2VsZWN0ZWRTdG9yZT8uc3RvcmVQcm9maWxlPy5jb3VudHJ5ID8gc2VsZWN0ZWRTdG9yZT8uc3RvcmVQcm9maWxlPy5jb3VudHJ5OictLSd9fSB7e3NlbGVjdGVkU3RvcmU/LnN0b3JlUHJvZmlsZT8ucGluY29kZSA/IHNlbGVjdGVkU3RvcmU/LnN0b3JlUHJvZmlsZT8ucGluY29kZTonLS0nfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC01IG10LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXNtIHRleHQtZ3JheS02MDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTMuMzM0NiAxNFYxMi42NjY3QzEzLjMzNDYgMTEuOTU5NCAxMy4wNTM3IDExLjI4MTEgMTIuNTUzNiAxMC43ODFDMTIuMDUzNSAxMC4yODEgMTEuMzc1MiAxMCAxMC42NjggMTBINS4zMzQ2NEM0LjYyNzM5IDEwIDMuOTQ5MTEgMTAuMjgxIDMuNDQ5MDIgMTAuNzgxQzIuOTQ4OTIgMTEuMjgxMSAyLjY2Nzk3IDExLjk1OTQgMi42Njc5NyAxMi42NjY3VjE0TTEwLjY2OCA0LjY2NjY3QzEwLjY2OCA2LjEzOTQzIDkuNDc0MDYgNy4zMzMzMyA4LjAwMTMgNy4zMzMzM0M2LjUyODU0IDcuMzMzMzMgNS4zMzQ2NCA2LjEzOTQzIDUuMzM0NjQgNC42NjY2N0M1LjMzNDY0IDMuMTkzOTEgNi41Mjg1NCAyIDguMDAxMyAyQzkuNDc0MDYgMiAxMC42NjggMy4xOTM5MSAxMC42NjggNC42NjY2N1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS40XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXNtIGZvbnQtbWVkaXVtIG1hcC1zdWJ0ZXh0IHRleHQtZ3JheS04MDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3NlbGVjdGVkU3RvcmU/LnNwb2NEZXRhaWxzPy5uYW1lID9zZWxlY3RlZFN0b3JlPy5zcG9jRGV0YWlscz8ubmFtZTonLS0nfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc20gdGV4dC1ncmF5LTYwMCBteC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzE4NjVfMTQ2NTE2KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNC42NjUgMTEuMjgwMlYxMy4yODAyQzE0LjY2NTcgMTMuNDY1OSAxNC42Mjc3IDEzLjY0OTcgMTQuNTUzMyAxMy44MTk4QzE0LjQ3OSAxMy45ODk5IDE0LjM2OTkgMTQuMTQyNiAxNC4yMzMgMTQuMjY4MUMxNC4wOTYyIDE0LjM5MzcgMTMuOTM0NyAxNC40ODkyIDEzLjc1ODggMTQuNTQ4N0MxMy41ODI5IDE0LjYwODIgMTMuMzk2NiAxNC42MzAzIDEzLjIxMTcgMTQuNjEzNkMxMS4xNjAyIDE0LjM5MDcgOS4xODk2NiAxMy42ODk3IDcuNDU4MzMgMTIuNTY2OUM1Ljg0NzU1IDExLjU0MzMgNC40ODE4OSAxMC4xNzc3IDMuNDU4MzMgOC41NjY4OUMyLjMzMTY1IDYuODI3NyAxLjYzMDQ5IDQuODQ3NTYgMS40MTE2NiAyLjc4Njg5QzEuMzk1IDIuNjAyNTQgMS40MTY5MSAyLjQxNjczIDEuNDc1OTkgMi4yNDEzMUMxLjUzNTA4IDIuMDY1ODkgMS42MzAwNCAxLjkwNDY5IDEuNzU0ODQgMS43Njc5N0MxLjg3OTY0IDEuNjMxMjYgMi4wMzE1MyAxLjUyMjAzIDIuMjAwODYgMS40NDcyNEMyLjM3MDE4IDEuMzcyNDUgMi41NTMyMiAxLjMzMzc0IDIuNzM4MzMgMS4zMzM1Nkg0LjczODMzQzUuMDYxODcgMS4zMzAzOCA1LjM3NTUyIDEuNDQ0OTUgNS42MjA4NCAxLjY1NTkyQzUuODY2MTUgMS44NjY4OSA2LjAyNjM4IDIuMTU5ODYgNi4wNzE2NiAyLjQ4MDIzQzYuMTU2MDggMy4xMjAyNyA2LjMxMjYzIDMuNzQ4NzEgNi41MzgzMyA0LjM1MzU2QzYuNjI4MDIgNC41OTIxOCA2LjY0NzQ0IDQuODUxNSA2LjU5NDI3IDUuMTAwODFDNi41NDExIDUuMzUwMTIgNi40MTc1NyA1LjU3ODk3IDYuMjM4MzMgNS43NjAyM0w1LjM5MTY2IDYuNjA2ODlDNi4zNDA3IDguMjc1OTIgNy43MjI2MyA5LjY1Nzg2IDkuMzkxNjYgMTAuNjA2OUwxMC4yMzgzIDkuNzYwMjNDMTAuNDE5NiA5LjU4MDk5IDEwLjY0ODQgOS40NTc0NiAxMC44OTc3IDkuNDA0MjlDMTEuMTQ3MSA5LjM1MTEyIDExLjQwNjQgOS4zNzA1MyAxMS42NDUgOS40NjAyM0MxMi4yNDk4IDkuNjg1OTMgMTIuODc4MyA5Ljg0MjQ4IDEzLjUxODMgOS45MjY4OUMxMy44NDIyIDkuOTcyNTggMTQuMTM3OSAxMC4xMzU3IDE0LjM0OTQgMTAuMzg1MkMxNC41NjA4IDEwLjYzNDggMTQuNjczMSAxMC45NTMzIDE0LjY2NSAxMS4yODAyWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS40XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8xODY1XzE0NjUxNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zbSBmb250LW1lZGl1bSBtYXAtc3VidGV4dCB0ZXh0LWdyYXktODAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tzZWxlY3RlZFN0b3JlPy5zcG9jRGV0YWlscz8uY29udGFjdCA/c2VsZWN0ZWRTdG9yZT8uc3BvY0RldGFpbHM/LmNvbnRhY3Q6Jy0tJ319XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXktM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc20gdGV4dC1ncmF5LTYwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNC42NjU0IDMuOTk5ODRDMTQuNjY1NCAzLjI2NjUgMTQuMDY1NCAyLjY2NjUgMTMuMzMyIDIuNjY2NUgyLjY2NTM2QzEuOTMyMDMgMi42NjY1IDEuMzMyMDMgMy4yNjY1IDEuMzMyMDMgMy45OTk4NE0xNC42NjU0IDMuOTk5ODRWMTEuOTk5OEMxNC42NjU0IDEyLjczMzIgMTQuMDY1NCAxMy4zMzMyIDEzLjMzMiAxMy4zMzMySDIuNjY1MzZDMS45MzIwMyAxMy4zMzMyIDEuMzMyMDMgMTIuNzMzMiAxLjMzMjAzIDExLjk5OThWMy45OTk4NE0xNC42NjU0IDMuOTk5ODRMNy45OTg3IDguNjY2NUwxLjMzMjAzIDMuOTk5ODRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS40XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXNtIGZvbnQtbWVkaXVtIG1hcC1zdWJ0ZXh0IHRleHQtZ3JheS04MDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3NlbGVjdGVkU3RvcmU/LnNwb2NEZXRhaWxzPy5lbWFpbCA/IHNlbGVjdGVkU3RvcmU/LnNwb2NEZXRhaWxzPy5lbWFpbDonLS0nfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtNSBteS0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zbSB0ZXh0LWdyYXktNjAwIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMy4zMzQ2IDE0VjEyLjY2NjdDMTMuMzM0NiAxMS45NTk0IDEzLjA1MzcgMTEuMjgxMSAxMi41NTM2IDEwLjc4MUMxMi4wNTM1IDEwLjI4MSAxMS4zNzUyIDEwIDEwLjY2OCAxMEg1LjMzNDY0QzQuNjI3MzkgMTAgMy45NDkxMSAxMC4yODEgMy40NDkwMiAxMC43ODFDMi45NDg5MiAxMS4yODExIDIuNjY3OTcgMTEuOTU5NCAyLjY2Nzk3IDEyLjY2NjdWMTRNMTAuNjY4IDQuNjY2NjdDMTAuNjY4IDYuMTM5NDMgOS40NzQwNiA3LjMzMzMzIDguMDAxMyA3LjMzMzMzQzYuNTI4NTQgNy4zMzMzMyA1LjMzNDY0IDYuMTM5NDMgNS4zMzQ2NCA0LjY2NjY3QzUuMzM0NjQgMy4xOTM5MSA2LjUyODU0IDIgOC4wMDEzIDJDOS40NzQwNiAyIDEwLjY2OCAzLjE5MzkxIDEwLjY2OCA0LjY2NjY3WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjRcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc20gZm9udC1tZWRpdW0gbWFwLXN1YnRleHQgdGV4dC1ncmF5LTgwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7c2VsZWN0ZWRTdG9yZT8uc3RvcmVUeXBlPy50eXBlID8gc2VsZWN0ZWRTdG9yZT8uc3RvcmVUeXBlPy50eXBlOictLSd9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zbSB0ZXh0LWdyYXktNjAwIG14LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMTg2NV8xNDY1MTYpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE0LjY2NSAxMS4yODAyVjEzLjI4MDJDMTQuNjY1NyAxMy40NjU5IDE0LjYyNzcgMTMuNjQ5NyAxNC41NTMzIDEzLjgxOThDMTQuNDc5IDEzLjk4OTkgMTQuMzY5OSAxNC4xNDI2IDE0LjIzMyAxNC4yNjgxQzE0LjA5NjIgMTQuMzkzNyAxMy45MzQ3IDE0LjQ4OTIgMTMuNzU4OCAxNC41NDg3QzEzLjU4MjkgMTQuNjA4MiAxMy4zOTY2IDE0LjYzMDMgMTMuMjExNyAxNC42MTM2QzExLjE2MDIgMTQuMzkwNyA5LjE4OTY2IDEzLjY4OTcgNy40NTgzMyAxMi41NjY5QzUuODQ3NTUgMTEuNTQzMyA0LjQ4MTg5IDEwLjE3NzcgMy40NTgzMyA4LjU2Njg5QzIuMzMxNjUgNi44Mjc3IDEuNjMwNDkgNC44NDc1NiAxLjQxMTY2IDIuNzg2ODlDMS4zOTUgMi42MDI1NCAxLjQxNjkxIDIuNDE2NzMgMS40NzU5OSAyLjI0MTMxQzEuNTM1MDggMi4wNjU4OSAxLjYzMDA0IDEuOTA0NjkgMS43NTQ4NCAxLjc2Nzk3QzEuODc5NjQgMS42MzEyNiAyLjAzMTUzIDEuNTIyMDMgMi4yMDA4NiAxLjQ0NzI0QzIuMzcwMTggMS4zNzI0NSAyLjU1MzIyIDEuMzMzNzQgMi43MzgzMyAxLjMzMzU2SDQuNzM4MzNDNS4wNjE4NyAxLjMzMDM4IDUuMzc1NTIgMS40NDQ5NSA1LjYyMDg0IDEuNjU1OTJDNS44NjYxNSAxLjg2Njg5IDYuMDI2MzggMi4xNTk4NiA2LjA3MTY2IDIuNDgwMjNDNi4xNTYwOCAzLjEyMDI3IDYuMzEyNjMgMy43NDg3MSA2LjUzODMzIDQuMzUzNTZDNi42MjgwMiA0LjU5MjE4IDYuNjQ3NDQgNC44NTE1IDYuNTk0MjcgNS4xMDA4MUM2LjU0MTEgNS4zNTAxMiA2LjQxNzU3IDUuNTc4OTcgNi4yMzgzMyA1Ljc2MDIzTDUuMzkxNjYgNi42MDY4OUM2LjM0MDcgOC4yNzU5MiA3LjcyMjYzIDkuNjU3ODYgOS4zOTE2NiAxMC42MDY5TDEwLjIzODMgOS43NjAyM0MxMC40MTk2IDkuNTgwOTkgMTAuNjQ4NCA5LjQ1NzQ2IDEwLjg5NzcgOS40MDQyOUMxMS4xNDcxIDkuMzUxMTIgMTEuNDA2NCA5LjM3MDUzIDExLjY0NSA5LjQ2MDIzQzEyLjI0OTggOS42ODU5MyAxMi44NzgzIDkuODQyNDggMTMuNTE4MyA5LjkyNjg5QzEzLjg0MjIgOS45NzI1OCAxNC4xMzc5IDEwLjEzNTcgMTQuMzQ5NCAxMC4zODUyQzE0LjU2MDggMTAuNjM0OCAxNC42NzMxIDEwLjk1MzMgMTQuNjY1IDExLjI4MDJaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjRcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzE4NjVfMTQ2NTE2XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXNtIGZvbnQtbWVkaXVtIG1hcC1zdWJ0ZXh0IHRleHQtZ3JheS04MDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3NlbGVjdGVkU3RvcmU/LnN0b3JlVHlwZT8ubmFtZSA/IHNlbGVjdGVkU3RvcmU/LnN0b3JlVHlwZT8ubmFtZTonLS0nfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC01IG15LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXNtIHRleHQtZ3JheS02MDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMThcIiBoZWlnaHQ9XCIxOFwiIHZpZXdCb3g9XCIwIDAgMTggMThcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMTg2NV8xNDY1MjkpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTkgNC41VjlMMTIgMTAuNU0xNi41IDlDMTYuNSAxMy4xNDIxIDEzLjE0MjEgMTYuNSA5IDE2LjVDNC44NTc4NiAxNi41IDEuNSAxMy4xNDIxIDEuNSA5QzEuNSA0Ljg1Nzg2IDQuODU3ODYgMS41IDkgMS41QzEzLjE0MjEgMS41IDE2LjUgNC44NTc4NiAxNi41IDlaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjRcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzE4NjVfMTQ2NTI5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjE4XCIgaGVpZ2h0PVwiMThcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtZ3JheS04MDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2RhdGFTdG9yZU1hcD8uaG91cmx5RGF0YT8ub3BlblRpbWUgPyBkYXRhU3RvcmVNYXA/LmhvdXJseURhdGE/Lm9wZW5UaW1lOictLSd9fSAtIHt7ZGF0YVN0b3JlTWFwPy5ob3VybHlEYXRhPy5jbG9zZVRpbWUgPyBkYXRhU3RvcmVNYXA/LmhvdXJseURhdGE/LmNsb3NlVGltZTonLS0nfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIG15LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJtYXAtYXZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2RhdGFTdG9yZU1hcD8uYXZnRGF0YT8uYXZnRm9vdGZhbGwgPyBkYXRhU3RvcmVNYXA/LmF2Z0RhdGE/LmF2Z0Zvb3RmYWxsOictLSd9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxicj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXNtIHRleHQtZ3JheS03MDAgbWFwLWF2Z3Rlc3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF2ZyBGb290ZmFsbCBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzE4NjVfMTQ2NTM2KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTYgOFY2TTYgNEg2LjAwNU0xMSA2QzExIDguNzYxNDIgOC43NjE0MiAxMSA2IDExQzMuMjM4NTggMTEgMSA4Ljc2MTQyIDEgNkMxIDMuMjM4NTggMy4yMzg1OCAxIDYgMUM4Ljc2MTQyIDEgMTEgMy4yMzg1OCAxMSA2WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzk4QTJCM1wiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzE4NjVfMTQ2NTM2XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBteS0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwibWFwLWF2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tkYXRhU3RvcmVNYXA/LmF2Z0RhdGE/LmF2Z1dlZWtkYXlGb290ZmFsbCA/IGRhdGFTdG9yZU1hcD8uYXZnRGF0YT8uYXZnV2Vla2RheUZvb3RmYWxsOictLSd9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxicj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXNtIHRleHQtZ3JheS03MDAgbWFwLWF2Z3Rlc3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF2ZyBXZWVrZGF5IEZvb3RmYWxsIDxzcGFuPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzE4NjVfMTQ2NTM2KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTYgOFY2TTYgNEg2LjAwNU0xMSA2QzExIDguNzYxNDIgOC43NjE0MiAxMSA2IDExQzMuMjM4NTggMTEgMSA4Ljc2MTQyIDEgNkMxIDMuMjM4NTggMy4yMzg1OCAxIDYgMUM4Ljc2MTQyIDEgMTEgMy4yMzg1OCAxMSA2WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzk4QTJCM1wiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzE4NjVfMTQ2NTM2XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBteS0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwibWFwLWF2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tkYXRhU3RvcmVNYXA/LmF2Z0RhdGE/LmF2Z1dlZWtlbmRGb290ZmFsbCA/IGRhdGFTdG9yZU1hcD8uYXZnRGF0YT8uYXZnV2Vla2VuZEZvb3RmYWxsOictLSd9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxicj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXNtIHRleHQtZ3JheS03MDAgbWFwLWF2Z3Rlc3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF2ZyBXZWVrZW5kIEZvb3RmYWxsIDxzcGFuPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzE4NjVfMTQ2NTM2KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTYgOFY2TTYgNEg2LjAwNU0xMSA2QzExIDguNzYxNDIgOC43NjE0MiAxMSA2IDExQzMuMjM4NTggMTEgMSA4Ljc2MTQyIDEgNkMxIDMuMjM4NTggMy4yMzg1OCAxIDYgMUM4Ljc2MTQyIDEgMTEgMy4yMzg1OCAxMSA2WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzk4QTJCM1wiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzE4NjVfMTQ2NTM2XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWZvb3RlciBib3JkZXItMCBweC0wXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC01IGNvbC1sZy0xMlwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tbGlnaHQtcHJpbWFyeTEgdy0xMDAgcHgtMlwiIChjbGljayk9XCJzdG9yZVZpZXcoc3RvcmVJZClcIj48c3BhbiBjbGFzcz1cIm1zLTJcIj5WaWV3IG1vcmVcclxuICAgICAgICAgICAgICAgICAgICAgICAgRGV0YWlsczwvc3Bhbj48L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgXHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48IS0tIDxkaXYgKm5nSWY9XCJsb2FkaW5nXCIgY2xhc3M9XCJyb3cgcHgtMyBsb2FkZXIgY2FyZCAgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+IC0tPlxyXG48ZGl2ICpuZ0lmPVwibm9EYXRhXCIgY2xhc3M9XCJyb3cgcHgtM1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICA8aW1nIGNsYXNzPVwiaW1nLW5vZGF0YS10YWJsZVwiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ljb25zL05vZGF0YTEuc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub2RhdGEtdGl0bGVcIj5ObyBkYXRhIGZvdW5kPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub2RhdGEtc3ViXCI+VGhlcmUgaXMgbm8gcmVzdWx0IGZvciB0aGlzIFN0b3JlIG1hcDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|