@smarterplan/ngx-smarterplan-core 0.3.15 → 0.3.16
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/esm2020/lib/services/booking.service.mjs +14 -1
- package/esm2020/lib/services/viewer.service.mjs +2 -2
- package/fesm2015/smarterplan-ngx-smarterplan-core.mjs +10 -2
- package/fesm2015/smarterplan-ngx-smarterplan-core.mjs.map +1 -1
- package/fesm2020/smarterplan-ngx-smarterplan-core.mjs +10 -2
- package/fesm2020/smarterplan-ngx-smarterplan-core.mjs.map +1 -1
- package/lib/services/booking.service.d.ts +3 -0
- package/package.json +1 -1
|
@@ -1,5 +1,10 @@
|
|
|
1
|
+
import { Injectable } from "@angular/core";
|
|
1
2
|
import { dateHasExpired } from "../helpers.service";
|
|
2
3
|
import { EventType, EventStatus, EmailStatus } from "../types.service";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "./models/event.service";
|
|
6
|
+
import * as i2 from "./user.service";
|
|
7
|
+
import * as i3 from "./models/mission.service";
|
|
3
8
|
export class BookingService {
|
|
4
9
|
constructor(eventService, userService, missionService) {
|
|
5
10
|
this.eventService = eventService;
|
|
@@ -158,4 +163,12 @@ export class BookingService {
|
|
|
158
163
|
return author;
|
|
159
164
|
}
|
|
160
165
|
}
|
|
161
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9va2luZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNtYXJ0ZXJwbGFuLWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9ib29raW5nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBd0IsTUFBTSxrQkFBa0IsQ0FBQztBQUs3RixNQUFNLE9BQU8sY0FBYztJQUV2QixZQUFvQixZQUEwQixFQUFTLFdBQTRCLEVBQ3ZFLGNBQThCO1FBRHRCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQVMsZ0JBQVcsR0FBWCxXQUFXLENBQWlCO1FBQ3ZFLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtJQUFJLENBQUM7SUFFL0Msd0JBQXdCLENBQUMsTUFBZTtRQUNwQyxNQUFNLEdBQUcsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3ZCLE9BQU8sTUFBTTthQUNSLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7YUFDcEQsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELHFDQUFxQyxDQUFDLE1BQWU7UUFDakQsTUFBTSxHQUFHLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN2QixHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3pCLE9BQU8sTUFBTTthQUNSLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FB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Q0FBQyxPQUFPLENBQ2hCLENBQUM7UUFDRixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUNoRCxhQUFhLENBQUMsTUFBTSxDQUN2QixDQUFDO1FBQ0YsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGF0ZUhhc0V4cGlyZWQgfSBmcm9tIFwiLi4vaGVscGVycy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEV2ZW50VHlwZSwgRXZlbnRTdGF0dXMsIEVtYWlsU3RhdHVzLCBFdmVudCwgUHJvZmlsZUVudGl0eSB9IGZyb20gXCIuLi90eXBlcy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEV2ZW50U2VydmljZSB9IGZyb20gXCIuL21vZGVscy9ldmVudC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IE1pc3Npb25TZXJ2aWNlIH0gZnJvbSBcIi4vbW9kZWxzL21pc3Npb24uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBCYXNlVXNlclNlcnZpY2UgfSBmcm9tIFwiLi91c2VyLnNlcnZpY2VcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBCb29raW5nU2VydmljZSB7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBldmVudFNlcnZpY2U6IEV2ZW50U2VydmljZSxwcml2YXRlIHVzZXJTZXJ2aWNlOiBCYXNlVXNlclNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBtaXNzaW9uU2VydmljZTogTWlzc2lvblNlcnZpY2UsKSB7fVxyXG5cclxuICAgIGdldEZ1dHVyZU9yQ3VycmVudEV2ZW50cyhldmVudHM6IEV2ZW50W10pOiBFdmVudFtdIHtcclxuICAgICAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xyXG4gICAgICAgIHJldHVybiBldmVudHNcclxuICAgICAgICAgICAgLmZpbHRlcigoZXZlbnQpID0+IGV2ZW50LnJlYWxFbmREYXRlID4gbm93LmdldFRpbWUoKSlcclxuICAgICAgICAgICAgLnNvcnQoKGEsIGIpID0+IGEucmVhbFN0YXJ0RGF0ZSAtIGIucmVhbFN0YXJ0RGF0ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0RXZlbnRzV2l0aFJlYWxTdGFydERhdGVCZWZvcmVUb2RheShldmVudHM6IEV2ZW50W10pOiBFdmVudFtdIHtcclxuICAgICAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xyXG4gICAgICAgIG5vdy5zZXRIb3VycygwLCAwLCAwLCAwKTtcclxuICAgICAgICByZXR1cm4gZXZlbnRzXHJcbiAgICAgICAgICAgIC5maWx0ZXIoKGV2ZW50KSA9PiBldmVudC5yZWFsU3RhcnREYXRlIDwgbm93LmdldFRpbWUoKSlcclxuICAgICAgICAgICAgLnNvcnQoKGEsIGIpID0+IGIucmVhbFN0YXJ0RGF0ZSAtIGEucmVhbFN0YXJ0RGF0ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgYXV0b1VwZGF0ZUJvb2tpbmdFdmVudChcclxuICAgICAgICBldmVudFByb206IEV2ZW50IHwgUHJvbWlzZTxFdmVudD4sXHJcbiAgICApOiBQcm9taXNlPEV2ZW50PiB7XHJcbiAgICAgICAgY29uc3QgZXZlbnQgPSBhd2FpdCBldmVudFByb207XHJcbiAgICAgICAgY29uc3Qgc3RhcnRFeHBpcmVkID0gZGF0ZUhhc0V4cGlyZWQoZXZlbnQucmVhbFN0YXJ0RGF0ZSk7XHJcbiAgICAgICAgY29uc3QgZW5kRXhwaXJlZCA9IGRhdGVIYXNFeHBpcmVkKGV2ZW50LnJlYWxFbmREYXRlKTtcclxuXHJcbiAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09IEV2ZW50VHlwZS5CT09LSU5HICYmIGVuZEV4cGlyZWQpIHtcclxuICAgICAgICAgICAgLyoqIFtCT09LSU5HXSBWQUxJREFURUQgPT4gTEFURSAqL1xyXG4gICAgICAgICAgICBpZiAoZXZlbnQuc3RhdHVzID09PSBFdmVudFN0YXR1cy5WQUxJREFURUQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmV2ZW50U2VydmljZS51cGRhdGVFdmVudCh7XHJcbiAgICAgICAgICAgICAgICAgICAgaWQ6IGV2ZW50LmlkLFxyXG4gICAgICAgICAgICAgICAgICAgIHN0YXR1czogRXZlbnRTdGF0dXMuTEFURSxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8qKiBbQk9PS0lOR10gQ1JFQVRFRCA9PiBSRUZVU0VEICovXHJcbiAgICAgICAgICAgIGlmIChldmVudC5zdGF0dXMgPT09IEV2ZW50U3RhdHVzLkNSRUFURUQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmV2ZW50U2VydmljZS51cGRhdGVFdmVudCh7XHJcbiAgICAgICAgICAgICAgICAgICAgaWQ6IGV2ZW50LmlkLFxyXG4gICAgICAgICAgICAgICAgICAgIHN0YXR1czogRXZlbnRTdGF0dXMuUkVGVVNFRCxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChldmVudC50eXBlID09PSBFdmVudFR5cGUuQk9PS0lOR19TVUJDUklQVElPTikge1xyXG4gICAgICAgICAgICAvKiogW1NVQl0gQ1JFQVRFRCA9PiBSRUZVU0VEICovXHJcbiAgICAgICAgICAgIGlmIChldmVudC5zdGF0dXMgPT09IEV2ZW50U3RhdHVzLkNSRUFURUQgJiYgZW5kRXhwaXJlZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZXZlbnRTZXJ2aWNlLnVwZGF0ZUV2ZW50KHtcclxuICAgICAgICAgICAgICAgICAgICBpZDogZXZlbnQuaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiBFdmVudFN0YXR1cy5SRUZVU0VELFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLyoqIFtTVUJdIElOX1BST0dSRVNTIHwgVkFMSURBVEVEID0+IENPTVBMRVRFRCAqL1xyXG4gICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICBlbmRFeHBpcmVkICYmXHJcbiAgICAgICAgICAgICAgICAoZXZlbnQuc3RhdHVzID09PSBFdmVudFN0YXR1cy5JTl9QUk9HUkVTUyB8fFxyXG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0YXR1cyA9PT0gRXZlbnRTdGF0dXMuVkFMSURBVEVEKVxyXG4gICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmV2ZW50U2VydmljZS51cGRhdGVFdmVudCh7XHJcbiAgICAgICAgICAgICAgICAgICAgaWQ6IGV2ZW50LmlkLFxyXG4gICAgICAgICAgICAgICAgICAgIHN0YXR1czogRXZlbnRTdGF0dXMuQ09NUExFVEVELFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLyoqIFtTVUJdIENSRUFURUQgPT4gSU5fUFJPR1JFU1MgKi9cclxuICAgICAgICAgICAgaWYgKHN0YXJ0RXhwaXJlZCAmJiBldmVudC5zdGF0dXMgPT09IEV2ZW50U3RhdHVzLkNSRUFURUQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmV2ZW50U2VydmljZS51cGRhdGVFdmVudCh7XHJcbiAgICAgICAgICAgICAgICAgICAgaWQ6IGV2ZW50LmlkLFxyXG4gICAgICAgICAgICAgICAgICAgIHN0YXR1czogRXZlbnRTdGF0dXMuSU5fUFJPR1JFU1MsXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGV2ZW50O1xyXG4gICAgfVxyXG5cclxuICAgIG1lcmdlRXZlbnRzVG9TdWJzY3JpcHRzaW9uVW5pcXVlKFxyXG4gICAgICAgIGV2ZW50OiBFdmVudCxcclxuICAgICAgICB1bmlxdWVMaXN0OiBFdmVudFtdLFxyXG4gICAgKTogRXZlbnRbXSB7XHJcbiAgICAgICAgaWYgKCFldmVudCB8fCBldmVudC50eXBlICE9PSBFdmVudFR5cGUuQk9PS0lOR19TVUJDUklQVElPTilcclxuICAgICAgICAgICAgcmV0dXJuIHVuaXF1ZUxpc3Q7XHJcblxyXG4gICAgICAgIGNvbnN0IG5ld1VuaXF1ZUxpc3QgPSBbLi4udW5pcXVlTGlzdF07IC8vIGRlZXAgY29weVxyXG4gICAgICAgIGNvbnN0IGluZGV4ID0gbmV3VW5pcXVlTGlzdC5maW5kSW5kZXgoXHJcbiAgICAgICAgICAgIChldmVudF8pID0+IGV2ZW50Xy5ncm91cCA9PT0gZXZlbnQuZ3JvdXAsXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgLyoqIElmIGFuIGV2ZW50IG9mIHRoZSBzYW1lIGdyb3VwIGFscmVhZHkgZXhpc3QsIHdlIG1lcmdlIGRhdGUsIHRvIGdldCB0aGUgbWluIGFuZCBtYXggZGF0ZSBhbmQgdXBkYXRlIHN0YXR1cyAqL1xyXG4gICAgICAgIGlmIChpbmRleCA+PSAwKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGdyb3VwRXZlbnQgPSBuZXdVbmlxdWVMaXN0W2luZGV4XTtcclxuICAgICAgICAgICAgaWYgKGdyb3VwRXZlbnQucmVhbFN0YXJ0RGF0ZSA+IGV2ZW50LnJlYWxTdGFydERhdGUpIHtcclxuICAgICAgICAgICAgICAgIGdyb3VwRXZlbnQucmVhbFN0YXJ0RGF0ZSA9IGV2ZW50LnJlYWxTdGFydERhdGU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGdyb3VwRXZlbnQucmVhbEVuZERhdGUgPCBldmVudC5yZWFsRW5kRGF0ZSkge1xyXG4gICAgICAgICAgICAgICAgZ3JvdXBFdmVudC5yZWFsRW5kRGF0ZSA9IGV2ZW50LnJlYWxFbmREYXRlO1xyXG4gICAgICAgICAgICAgICAgZ3JvdXBFdmVudC5zdGF0dXMgPSBldmVudC5zdGF0dXM7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZ3JvdXBFdmVudC5hdXRob3IgPSBldmVudC5hdXRob3I7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgbmV3VW5pcXVlTGlzdC5wdXNoKHsgLi4uZXZlbnQgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gbmV3VW5pcXVlTGlzdDtcclxuICAgIH1cclxuXHJcbiAgICAvKiogTWVyZ2UgYSBzdWJzY3JpcHRpb24gZXZlbnQgbGlzdCB0byBhIHVuaXF1ZSBldmVudCAqL1xyXG4gICAgbWVyZ2VFdmVudHNUb1N1YnNjcmlwdGlvbnMoYWxsQm9raW5nczogRXZlbnRbXSk6IEV2ZW50W10ge1xyXG4gICAgICAgIGxldCB1bmlxdWVMaXN0ID0gW107XHJcbiAgICAgICAgZm9yIChjb25zdCBldmVudCBvZiBhbGxCb2tpbmdzKSB7XHJcbiAgICAgICAgICAgIHVuaXF1ZUxpc3QgPSB0aGlzLm1lcmdlRXZlbnRzVG9TdWJzY3JpcHRzaW9uVW5pcXVlKFxyXG4gICAgICAgICAgICAgICAgZXZlbnQsXHJcbiAgICAgICAgICAgICAgICB1bmlxdWVMaXN0LFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdW5pcXVlTGlzdDtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyB1cGRhdGVTdGF0dXNPZkV2ZW50c0luU3Vic2NyaXB0aW9uV2l0aFJlYXNvbihcclxuICAgICAgICBzdWJzY3JpcHRpb25Hcm91cDogc3RyaW5nLFxyXG4gICAgICAgIG5ld1N0YXR1czogRXZlbnRTdGF0dXMsXHJcbiAgICAgICAgcmVhc29uOiBzdHJpbmcgPSBudWxsLFxyXG4gICAgKTogUHJvbWlzZTxFdmVudFtdPiB7XHJcbiAgICAgICAgY29uc3QgZXZlbnRzT2ZTdWJjcmlwdGlvbiA9IGF3YWl0IHRoaXMuZXZlbnRTZXJ2aWNlLmdldEV2ZW50c0J5R3JvdXAoXHJcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvbkdyb3VwLFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgY29uc3QgdXBkYXRlZEV2ZW50cyA9IFtdO1xyXG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxyXG4gICAgICAgICAgICBldmVudHNPZlN1YmNyaXB0aW9uLm1hcChhc3luYyAoZXZlbnQpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHVwZEV2ZW50ID0gYXdhaXQgdGhpcy5ldmVudFNlcnZpY2UudXBkYXRlRXZlbnQoe1xyXG4gICAgICAgICAgICAgICAgICAgIGlkOiBldmVudC5pZCxcclxuICAgICAgICAgICAgICAgICAgICBzdGF0dXM6IG5ld1N0YXR1cyxcclxuICAgICAgICAgICAgICAgICAgICByZWZ1c2FsUmVhc29uOiByZWFzb24sXHJcbiAgICAgICAgICAgICAgICAgICAgbm90aWZpY2F0aW9uU3RhdHVzOiByZWFzb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBFbWFpbFN0YXR1cy5VUERBVEVfVE9fREVMSVZFUlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IG51bGwsXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIHVwZGF0ZWRFdmVudHMucHVzaCh1cGRFdmVudCk7XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgcmV0dXJuIHVwZGF0ZWRFdmVudHM7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0QWN0aXZlRnV0dXJlQm9va2luZ3MoYWxsQm9va2luZzogRXZlbnRbXSk6IEV2ZW50W10ge1xyXG4gICAgICAgIGxldCBib29raW5ncyA9IHRoaXMuZ2V0RnV0dXJlT3JDdXJyZW50RXZlbnRzKGFsbEJvb2tpbmcpO1xyXG4gICAgICAgIGJvb2tpbmdzID0gYm9va2luZ3MuZmlsdGVyKFxyXG4gICAgICAgICAgICAoZXZlbnRfKSA9PlxyXG4gICAgICAgICAgICAgICAgZXZlbnRfLnN0YXR1cyAhPT0gRXZlbnRTdGF0dXMuQ0FOQ0VMTEVEICYmXHJcbiAgICAgICAgICAgICAgICBldmVudF8uc3RhdHVzICE9PSBFdmVudFN0YXR1cy5SRUZVU0VEICYmXHJcbiAgICAgICAgICAgICAgICBldmVudF8uc3RhdHVzICE9PSBFdmVudFN0YXR1cy5BUkNISVZFRCxcclxuICAgICAgICApO1xyXG4gICAgICAgIHJldHVybiBib29raW5ncztcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBhcmNoaXZlRm9yT3duZXJFdmVudHNJblN1YnNjcmlwdGlvbihcclxuICAgICAgICBzdWJzY3JpcHRpb25Hcm91cDogc3RyaW5nLFxyXG4gICAgKTogUHJvbWlzZTxFdmVudFtdPiB7XHJcbiAgICAgICAgY29uc3QgZXZlbnRzT2ZTdWJjcmlwdGlvbiA9IGF3YWl0IHRoaXMuZXZlbnRTZXJ2aWNlLmdldEV2ZW50c0J5R3JvdXAoXHJcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvbkdyb3VwLFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgY29uc3QgdXBkYXRlZEV2ZW50cyA9IFtdO1xyXG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxyXG4gICAgICAgICAgICBldmVudHNPZlN1YmNyaXB0aW9uLm1hcChhc3luYyAoZXZlbnQpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHVwZEV2ZW50ID0gYXdhaXQgdGhpcy5ldmVudFNlcnZpY2UudXBkYXRlRXZlbnQoe1xyXG4gICAgICAgICAgICAgICAgICAgIGlkOiBldmVudC5pZCxcclxuICAgICAgICAgICAgICAgICAgICBhcmNoaXZlZEJ5T3duZXI6IHRydWUsXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIHVwZGF0ZWRFdmVudHMucHVzaCh1cGRFdmVudCk7XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgcmV0dXJuIHVwZGF0ZWRFdmVudHM7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0Q29uZmxpY3RCb29raW5nRm9yRGF0ZXMoXHJcbiAgICAgICAgc3RhcnQ6IG51bWJlcixcclxuICAgICAgICBlbmQ6IG51bWJlcixcclxuICAgICAgICBib29raW5nc1RvRmlsdGVyOiBFdmVudFtdLFxyXG4gICAgKTogRXZlbnQgfCBudWxsIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGJvb2tpbmcgb2YgYm9va2luZ3NUb0ZpbHRlcikge1xyXG4gICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICBib29raW5nLnN0YXR1cyAhPT0gRXZlbnRTdGF0dXMuUkVGVVNFRCAmJlxyXG4gICAgICAgICAgICAgICAgYm9va2luZy5zdGF0dXMgIT09IEV2ZW50U3RhdHVzLkNBTkNFTExFRCAmJlxyXG4gICAgICAgICAgICAgICAgYm9va2luZy5zdGF0dXMgIT09IEV2ZW50U3RhdHVzLkFSQ0hJVkVEXHJcbiAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0ID49IGJvb2tpbmcucmVhbFN0YXJ0RGF0ZSAmJlxyXG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0ICsgMTAwMCA8IGJvb2tpbmcucmVhbEVuZERhdGVcclxuICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBib29raW5nO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgIGVuZCA+IGJvb2tpbmcucmVhbFN0YXJ0RGF0ZSArIDEwMDAgJiZcclxuICAgICAgICAgICAgICAgICAgICBlbmQgPD0gYm9va2luZy5yZWFsRW5kRGF0ZVxyXG4gICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJvb2tpbmc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgc3RhcnQgPD0gYm9va2luZy5yZWFsU3RhcnREYXRlICYmXHJcbiAgICAgICAgICAgICAgICAgICAgZW5kID49IGJvb2tpbmcucmVhbEVuZERhdGVcclxuICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBib29raW5nO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGdldEF1dGhvck9mRXZlbnQoZXZlbnQ6IEV2ZW50KTogUHJvbWlzZTxQcm9maWxlRW50aXR5PiB7XHJcbiAgICAgICAgY29uc3QgYXV0aG9yTWlzc2lvbiA9IGF3YWl0IHRoaXMubWlzc2lvblNlcnZpY2UuZ2V0TWlzc2lvbihcclxuICAgICAgICAgICAgZXZlbnQub3duZXJJRCxcclxuICAgICAgICApO1xyXG4gICAgICAgIGNvbnN0IGF1dGhvciA9IGF3YWl0IHRoaXMudXNlclNlcnZpY2UudXNlckZyb21Vc2VySUQoXHJcbiAgICAgICAgICAgIGF1dGhvck1pc3Npb24udXNlcklELFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgcmV0dXJuIGF1dGhvcjtcclxuICAgIH1cclxufSJdfQ==
|
|
166
|
+
BookingService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: BookingService, deps: [{ token: i1.EventService }, { token: i2.BaseUserService }, { token: i3.MissionService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
167
|
+
BookingService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: BookingService, providedIn: "root" });
|
|
168
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: BookingService, decorators: [{
|
|
169
|
+
type: Injectable,
|
|
170
|
+
args: [{
|
|
171
|
+
providedIn: "root",
|
|
172
|
+
}]
|
|
173
|
+
}], ctorParameters: function () { return [{ type: i1.EventService }, { type: i2.BaseUserService }, { type: i3.MissionService }]; } });
|
|
174
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9va2luZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNtYXJ0ZXJwbGFuLWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9ib29raW5nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUF3QixNQUFNLGtCQUFrQixDQUFDOzs7OztBQVE3RixNQUFNLE9BQU8sY0FBYztJQUN2QixZQUFvQixZQUEwQixFQUFVLFdBQTRCLEVBQ3hFLGNBQThCO1FBRHRCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWlCO1FBQ3hFLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtJQUFLLENBQUM7SUFFaEQsd0JBQXdCLENBQUMsTUFBZTtRQUNwQyxNQUFNLEdBQUcsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3ZCLE9BQU8sTUFBTTthQUNSLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7YUFDcEQsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELHFDQUFxQyxDQUFDLE1BQWU7UUFDakQsTUFBTSxHQUFHLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN2QixHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3pCLE9BQU8sTUFB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QUFHLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQ3RELEtBQUssQ0FBQyxPQUFPLENBQ2hCLENBQUM7UUFDRixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUNoRCxhQUFhLENBQUMsTUFBTSxDQUN2QixDQUFDO1FBQ0YsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQzs7MkdBcE5RLGNBQWM7K0dBQWQsY0FBYyxjQUZYLE1BQU07MkZBRVQsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgZGF0ZUhhc0V4cGlyZWQgfSBmcm9tIFwiLi4vaGVscGVycy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEV2ZW50VHlwZSwgRXZlbnRTdGF0dXMsIEVtYWlsU3RhdHVzLCBFdmVudCwgUHJvZmlsZUVudGl0eSB9IGZyb20gXCIuLi90eXBlcy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEV2ZW50U2VydmljZSB9IGZyb20gXCIuL21vZGVscy9ldmVudC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IE1pc3Npb25TZXJ2aWNlIH0gZnJvbSBcIi4vbW9kZWxzL21pc3Npb24uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBCYXNlVXNlclNlcnZpY2UgfSBmcm9tIFwiLi91c2VyLnNlcnZpY2VcIjtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46IFwicm9vdFwiLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQm9va2luZ1NlcnZpY2Uge1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBldmVudFNlcnZpY2U6IEV2ZW50U2VydmljZSwgcHJpdmF0ZSB1c2VyU2VydmljZTogQmFzZVVzZXJTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgbWlzc2lvblNlcnZpY2U6IE1pc3Npb25TZXJ2aWNlLCkgeyB9XHJcblxyXG4gICAgZ2V0RnV0dXJlT3JDdXJyZW50RXZlbnRzKGV2ZW50czogRXZlbnRbXSk6IEV2ZW50W10ge1xyXG4gICAgICAgIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XHJcbiAgICAgICAgcmV0dXJuIGV2ZW50c1xyXG4gICAgICAgICAgICAuZmlsdGVyKChldmVudCkgPT4gZXZlbnQucmVhbEVuZERhdGUgPiBub3cuZ2V0VGltZSgpKVxyXG4gICAgICAgICAgICAuc29ydCgoYSwgYikgPT4gYS5yZWFsU3RhcnREYXRlIC0gYi5yZWFsU3RhcnREYXRlKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRFdmVudHNXaXRoUmVhbFN0YXJ0RGF0ZUJlZm9yZVRvZGF5KGV2ZW50czogRXZlbnRbXSk6IEV2ZW50W10ge1xyXG4gICAgICAgIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XHJcbiAgICAgICAgbm93LnNldEhvdXJzKDAsIDAsIDAsIDApO1xyXG4gICAgICAgIHJldHVybiBldmVudHNcclxuICAgICAgICAgICAgLmZpbHRlcigoZXZlbnQpID0+IGV2ZW50LnJlYWxTdGFydERhdGUgPCBub3cuZ2V0VGltZSgpKVxyXG4gICAgICAgICAgICAuc29ydCgoYSwgYikgPT4gYi5yZWFsU3RhcnREYXRlIC0gYS5yZWFsU3RhcnREYXRlKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBhdXRvVXBkYXRlQm9va2luZ0V2ZW50KFxyXG4gICAgICAgIGV2ZW50UHJvbTogRXZlbnQgfCBQcm9taXNlPEV2ZW50PixcclxuICAgICk6IFByb21pc2U8RXZlbnQ+IHtcclxuICAgICAgICBjb25zdCBldmVudCA9IGF3YWl0IGV2ZW50UHJvbTtcclxuICAgICAgICBjb25zdCBzdGFydEV4cGlyZWQgPSBkYXRlSGFzRXhwaXJlZChldmVudC5yZWFsU3RhcnREYXRlKTtcclxuICAgICAgICBjb25zdCBlbmRFeHBpcmVkID0gZGF0ZUhhc0V4cGlyZWQoZXZlbnQucmVhbEVuZERhdGUpO1xyXG5cclxuICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gRXZlbnRUeXBlLkJPT0tJTkcgJiYgZW5kRXhwaXJlZCkge1xyXG4gICAgICAgICAgICAvKiogW0JPT0tJTkddIFZBTElEQVRFRCA9PiBMQVRFICovXHJcbiAgICAgICAgICAgIGlmIChldmVudC5zdGF0dXMgPT09IEV2ZW50U3RhdHVzLlZBTElEQVRFRCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZXZlbnRTZXJ2aWNlLnVwZGF0ZUV2ZW50KHtcclxuICAgICAgICAgICAgICAgICAgICBpZDogZXZlbnQuaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiBFdmVudFN0YXR1cy5MQVRFLFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLyoqIFtCT09LSU5HXSBDUkVBVEVEID0+IFJFRlVTRUQgKi9cclxuICAgICAgICAgICAgaWYgKGV2ZW50LnN0YXR1cyA9PT0gRXZlbnRTdGF0dXMuQ1JFQVRFRCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZXZlbnRTZXJ2aWNlLnVwZGF0ZUV2ZW50KHtcclxuICAgICAgICAgICAgICAgICAgICBpZDogZXZlbnQuaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiBFdmVudFN0YXR1cy5SRUZVU0VELFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09IEV2ZW50VHlwZS5CT09LSU5HX1NVQkNSSVBUSU9OKSB7XHJcbiAgICAgICAgICAgIC8qKiBbU1VCXSBDUkVBVEVEID0+IFJFRlVTRUQgKi9cclxuICAgICAgICAgICAgaWYgKGV2ZW50LnN0YXR1cyA9PT0gRXZlbnRTdGF0dXMuQ1JFQVRFRCAmJiBlbmRFeHBpcmVkKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5ldmVudFNlcnZpY2UudXBkYXRlRXZlbnQoe1xyXG4gICAgICAgICAgICAgICAgICAgIGlkOiBldmVudC5pZCxcclxuICAgICAgICAgICAgICAgICAgICBzdGF0dXM6IEV2ZW50U3RhdHVzLlJFRlVTRUQsXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvKiogW1NVQl0gSU5fUFJPR1JFU1MgfCBWQUxJREFURUQgPT4gQ09NUExFVEVEICovXHJcbiAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgIGVuZEV4cGlyZWQgJiZcclxuICAgICAgICAgICAgICAgIChldmVudC5zdGF0dXMgPT09IEV2ZW50U3RhdHVzLklOX1BST0dSRVNTIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RhdHVzID09PSBFdmVudFN0YXR1cy5WQUxJREFURUQpXHJcbiAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZXZlbnRTZXJ2aWNlLnVwZGF0ZUV2ZW50KHtcclxuICAgICAgICAgICAgICAgICAgICBpZDogZXZlbnQuaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiBFdmVudFN0YXR1cy5DT01QTEVURUQsXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvKiogW1NVQl0gQ1JFQVRFRCA9PiBJTl9QUk9HUkVTUyAqL1xyXG4gICAgICAgICAgICBpZiAoc3RhcnRFeHBpcmVkICYmIGV2ZW50LnN0YXR1cyA9PT0gRXZlbnRTdGF0dXMuQ1JFQVRFRCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZXZlbnRTZXJ2aWNlLnVwZGF0ZUV2ZW50KHtcclxuICAgICAgICAgICAgICAgICAgICBpZDogZXZlbnQuaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiBFdmVudFN0YXR1cy5JTl9QUk9HUkVTUyxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gZXZlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgbWVyZ2VFdmVudHNUb1N1YnNjcmlwdHNpb25VbmlxdWUoXHJcbiAgICAgICAgZXZlbnQ6IEV2ZW50LFxyXG4gICAgICAgIHVuaXF1ZUxpc3Q6IEV2ZW50W10sXHJcbiAgICApOiBFdmVudFtdIHtcclxuICAgICAgICBpZiAoIWV2ZW50IHx8IGV2ZW50LnR5cGUgIT09IEV2ZW50VHlwZS5CT09LSU5HX1NVQkNSSVBUSU9OKVxyXG4gICAgICAgICAgICByZXR1cm4gdW5pcXVlTGlzdDtcclxuXHJcbiAgICAgICAgY29uc3QgbmV3VW5pcXVlTGlzdCA9IFsuLi51bmlxdWVMaXN0XTsgLy8gZGVlcCBjb3B5XHJcbiAgICAgICAgY29uc3QgaW5kZXggPSBuZXdVbmlxdWVMaXN0LmZpbmRJbmRleChcclxuICAgICAgICAgICAgKGV2ZW50XykgPT4gZXZlbnRfLmdyb3VwID09PSBldmVudC5ncm91cCxcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICAvKiogSWYgYW4gZXZlbnQgb2YgdGhlIHNhbWUgZ3JvdXAgYWxyZWFkeSBleGlzdCwgd2UgbWVyZ2UgZGF0ZSwgdG8gZ2V0IHRoZSBtaW4gYW5kIG1heCBkYXRlIGFuZCB1cGRhdGUgc3RhdHVzICovXHJcbiAgICAgICAgaWYgKGluZGV4ID49IDApIHtcclxuICAgICAgICAgICAgY29uc3QgZ3JvdXBFdmVudCA9IG5ld1VuaXF1ZUxpc3RbaW5kZXhdO1xyXG4gICAgICAgICAgICBpZiAoZ3JvdXBFdmVudC5yZWFsU3RhcnREYXRlID4gZXZlbnQucmVhbFN0YXJ0RGF0ZSkge1xyXG4gICAgICAgICAgICAgICAgZ3JvdXBFdmVudC5yZWFsU3RhcnREYXRlID0gZXZlbnQucmVhbFN0YXJ0RGF0ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoZ3JvdXBFdmVudC5yZWFsRW5kRGF0ZSA8IGV2ZW50LnJlYWxFbmREYXRlKSB7XHJcbiAgICAgICAgICAgICAgICBncm91cEV2ZW50LnJlYWxFbmREYXRlID0gZXZlbnQucmVhbEVuZERhdGU7XHJcbiAgICAgICAgICAgICAgICBncm91cEV2ZW50LnN0YXR1cyA9IGV2ZW50LnN0YXR1cztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBncm91cEV2ZW50LmF1dGhvciA9IGV2ZW50LmF1dGhvcjtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBuZXdVbmlxdWVMaXN0LnB1c2goeyAuLi5ldmVudCB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBuZXdVbmlxdWVMaXN0O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBNZXJnZSBhIHN1YnNjcmlwdGlvbiBldmVudCBsaXN0IHRvIGEgdW5pcXVlIGV2ZW50ICovXHJcbiAgICBtZXJnZUV2ZW50c1RvU3Vic2NyaXB0aW9ucyhhbGxCb2tpbmdzOiBFdmVudFtdKTogRXZlbnRbXSB7XHJcbiAgICAgICAgbGV0IHVuaXF1ZUxpc3QgPSBbXTtcclxuICAgICAgICBmb3IgKGNvbnN0IGV2ZW50IG9mIGFsbEJva2luZ3MpIHtcclxuICAgICAgICAgICAgdW5pcXVlTGlzdCA9IHRoaXMubWVyZ2VFdmVudHNUb1N1YnNjcmlwdHNpb25VbmlxdWUoXHJcbiAgICAgICAgICAgICAgICBldmVudCxcclxuICAgICAgICAgICAgICAgIHVuaXF1ZUxpc3QsXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB1bmlxdWVMaXN0O1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIHVwZGF0ZVN0YXR1c09mRXZlbnRzSW5TdWJzY3JpcHRpb25XaXRoUmVhc29uKFxyXG4gICAgICAgIHN1YnNjcmlwdGlvbkdyb3VwOiBzdHJpbmcsXHJcbiAgICAgICAgbmV3U3RhdHVzOiBFdmVudFN0YXR1cyxcclxuICAgICAgICByZWFzb246IHN0cmluZyA9IG51bGwsXHJcbiAgICApOiBQcm9taXNlPEV2ZW50W10+IHtcclxuICAgICAgICBjb25zdCBldmVudHNPZlN1YmNyaXB0aW9uID0gYXdhaXQgdGhpcy5ldmVudFNlcnZpY2UuZ2V0RXZlbnRzQnlHcm91cChcclxuICAgICAgICAgICAgc3Vic2NyaXB0aW9uR3JvdXAsXHJcbiAgICAgICAgKTtcclxuICAgICAgICBjb25zdCB1cGRhdGVkRXZlbnRzID0gW107XHJcbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoXHJcbiAgICAgICAgICAgIGV2ZW50c09mU3ViY3JpcHRpb24ubWFwKGFzeW5jIChldmVudCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdXBkRXZlbnQgPSBhd2FpdCB0aGlzLmV2ZW50U2VydmljZS51cGRhdGVFdmVudCh7XHJcbiAgICAgICAgICAgICAgICAgICAgaWQ6IGV2ZW50LmlkLFxyXG4gICAgICAgICAgICAgICAgICAgIHN0YXR1czogbmV3U3RhdHVzLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlZnVzYWxSZWFzb246IHJlYXNvbixcclxuICAgICAgICAgICAgICAgICAgICBub3RpZmljYXRpb25TdGF0dXM6IHJlYXNvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IEVtYWlsU3RhdHVzLlVQREFURV9UT19ERUxJVkVSXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogbnVsbCxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgdXBkYXRlZEV2ZW50cy5wdXNoKHVwZEV2ZW50KTtcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgKTtcclxuICAgICAgICByZXR1cm4gdXBkYXRlZEV2ZW50cztcclxuICAgIH1cclxuXHJcbiAgICBnZXRBY3RpdmVGdXR1cmVCb29raW5ncyhhbGxCb29raW5nOiBFdmVudFtdKTogRXZlbnRbXSB7XHJcbiAgICAgICAgbGV0IGJvb2tpbmdzID0gdGhpcy5nZXRGdXR1cmVPckN1cnJlbnRFdmVudHMoYWxsQm9va2luZyk7XHJcbiAgICAgICAgYm9va2luZ3MgPSBib29raW5ncy5maWx0ZXIoXHJcbiAgICAgICAgICAgIChldmVudF8pID0+XHJcbiAgICAgICAgICAgICAgICBldmVudF8uc3RhdHVzICE9PSBFdmVudFN0YXR1cy5DQU5DRUxMRUQgJiZcclxuICAgICAgICAgICAgICAgIGV2ZW50Xy5zdGF0dXMgIT09IEV2ZW50U3RhdHVzLlJFRlVTRUQgJiZcclxuICAgICAgICAgICAgICAgIGV2ZW50Xy5zdGF0dXMgIT09IEV2ZW50U3RhdHVzLkFSQ0hJVkVELFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgcmV0dXJuIGJvb2tpbmdzO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGFyY2hpdmVGb3JPd25lckV2ZW50c0luU3Vic2NyaXB0aW9uKFxyXG4gICAgICAgIHN1YnNjcmlwdGlvbkdyb3VwOiBzdHJpbmcsXHJcbiAgICApOiBQcm9taXNlPEV2ZW50W10+IHtcclxuICAgICAgICBjb25zdCBldmVudHNPZlN1YmNyaXB0aW9uID0gYXdhaXQgdGhpcy5ldmVudFNlcnZpY2UuZ2V0RXZlbnRzQnlHcm91cChcclxuICAgICAgICAgICAgc3Vic2NyaXB0aW9uR3JvdXAsXHJcbiAgICAgICAgKTtcclxuICAgICAgICBjb25zdCB1cGRhdGVkRXZlbnRzID0gW107XHJcbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoXHJcbiAgICAgICAgICAgIGV2ZW50c09mU3ViY3JpcHRpb24ubWFwKGFzeW5jIChldmVudCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdXBkRXZlbnQgPSBhd2FpdCB0aGlzLmV2ZW50U2VydmljZS51cGRhdGVFdmVudCh7XHJcbiAgICAgICAgICAgICAgICAgICAgaWQ6IGV2ZW50LmlkLFxyXG4gICAgICAgICAgICAgICAgICAgIGFyY2hpdmVkQnlPd25lcjogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgdXBkYXRlZEV2ZW50cy5wdXNoKHVwZEV2ZW50KTtcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgKTtcclxuICAgICAgICByZXR1cm4gdXBkYXRlZEV2ZW50cztcclxuICAgIH1cclxuXHJcbiAgICBnZXRDb25mbGljdEJvb2tpbmdGb3JEYXRlcyhcclxuICAgICAgICBzdGFydDogbnVtYmVyLFxyXG4gICAgICAgIGVuZDogbnVtYmVyLFxyXG4gICAgICAgIGJvb2tpbmdzVG9GaWx0ZXI6IEV2ZW50W10sXHJcbiAgICApOiBFdmVudCB8IG51bGwge1xyXG4gICAgICAgIGZvciAoY29uc3QgYm9va2luZyBvZiBib29raW5nc1RvRmlsdGVyKSB7XHJcbiAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgIGJvb2tpbmcuc3RhdHVzICE9PSBFdmVudFN0YXR1cy5SRUZVU0VEICYmXHJcbiAgICAgICAgICAgICAgICBib29raW5nLnN0YXR1cyAhPT0gRXZlbnRTdGF0dXMuQ0FOQ0VMTEVEICYmXHJcbiAgICAgICAgICAgICAgICBib29raW5nLnN0YXR1cyAhPT0gRXZlbnRTdGF0dXMuQVJDSElWRURcclxuICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgc3RhcnQgPj0gYm9va2luZy5yZWFsU3RhcnREYXRlICYmXHJcbiAgICAgICAgICAgICAgICAgICAgc3RhcnQgKyAxMDAwIDwgYm9va2luZy5yZWFsRW5kRGF0ZVxyXG4gICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJvb2tpbmc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgZW5kID4gYm9va2luZy5yZWFsU3RhcnREYXRlICsgMTAwMCAmJlxyXG4gICAgICAgICAgICAgICAgICAgIGVuZCA8PSBib29raW5nLnJlYWxFbmREYXRlXHJcbiAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm9va2luZztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICBzdGFydCA8PSBib29raW5nLnJlYWxTdGFydERhdGUgJiZcclxuICAgICAgICAgICAgICAgICAgICBlbmQgPj0gYm9va2luZy5yZWFsRW5kRGF0ZVxyXG4gICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJvb2tpbmc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZ2V0QXV0aG9yT2ZFdmVudChldmVudDogRXZlbnQpOiBQcm9taXNlPFByb2ZpbGVFbnRpdHk+IHtcclxuICAgICAgICBjb25zdCBhdXRob3JNaXNzaW9uID0gYXdhaXQgdGhpcy5taXNzaW9uU2VydmljZS5nZXRNaXNzaW9uKFxyXG4gICAgICAgICAgICBldmVudC5vd25lcklELFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgY29uc3QgYXV0aG9yID0gYXdhaXQgdGhpcy51c2VyU2VydmljZS51c2VyRnJvbVVzZXJJRChcclxuICAgICAgICAgICAgYXV0aG9yTWlzc2lvbi51c2VySUQsXHJcbiAgICAgICAgKTtcclxuICAgICAgICByZXR1cm4gYXV0aG9yO1xyXG4gICAgfVxyXG59Il19
|
|
@@ -55,7 +55,7 @@ export class ViewerService {
|
|
|
55
55
|
// this.tourUrl = this.checkMode("Matterport")
|
|
56
56
|
// ? `https://my.matterport.com/show/?m=${model3d}&play=1&qs=1&hr=0>=0&title=0&log=0&brand=0&applicationKey=qn9wsasuy5h2fzrbrn1nzr0id&mds=0`
|
|
57
57
|
// : "http://cupixweework.s3-website.eu-west-3.amazonaws.com/";
|
|
58
|
-
this.tourUrl = `https://my.matterport.com/show/?m=${model3d}&play=1&qs=1&
|
|
58
|
+
this.tourUrl = `https://my.matterport.com/show/?m=${model3d}&play=1&qs=1>=0&title=0&log=0&brand=0&search=0&applicationKey=qn9wsasuy5h2fzrbrn1nzr0id&mds=0`;
|
|
59
59
|
if (!showIconPlan) {
|
|
60
60
|
this.tourUrl += "&fp=0";
|
|
61
61
|
}
|
|
@@ -392,4 +392,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
|
|
|
392
392
|
providedIn: "root",
|
|
393
393
|
}]
|
|
394
394
|
}], ctorParameters: function () { return [{ type: i1.PoiService }, { type: i2.MatterportService }]; } });
|
|
395
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc21hcnRlcnBsYW4tY29yZS9zcmMvbGliL3NlcnZpY2VzL3ZpZXdlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHFDQUFxQztBQUNyQyw4QkFBOEI7QUFDOUIseUNBQXlDO0FBQ3pDLDJDQUEyQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHL0IsT0FBTyxFQUFxQixrQkFBa0IsRUFBRSxPQUFPLEVBQXVDLE1BQU0sa0JBQWtCLENBQUM7Ozs7QUFLdkgsTUFBTSxPQUFPLGFBQWE7SUE2Q3RCLFlBQ1ksVUFBc0IsRUFDdEIsaUJBQW9DO1FBRHBDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQTlDeEMsZUFBVSxHQUFXLFlBQVksQ0FBQztRQU1uQyxlQUFVLEdBS1osSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUVaLGlCQUFZLEdBQXFCLElBQUksT0FBTyxFQUFFLENBQUM7UUFFL0MsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUVqQixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQU10QixrQkFBYSxHQUFHO1lBQ25CLFNBQVMsRUFBRTtnQkFDUCxJQUFJLEVBQUUsS0FBSztnQkFDWCxNQUFNLEVBQUUsY0FBYztnQkFDdEIsSUFBSSxLQUFLLENBQUM7Z0JBQ1YsSUFBSSxLQUFLLENBQUM7YUFDYjtZQUNELFNBQVMsRUFBRTtnQkFDUCxJQUFJLEVBQUUsS0FBSzthQUNkO1lBQ0QsTUFBTSxFQUFFO2dCQUNKLElBQUksRUFBRSxLQUFLO2dCQUNYLE1BQU0sRUFBRSxXQUFXO2dCQUNuQixJQUFJLEtBQUssQ0FBQztnQkFDVixJQUFJLEtBQUssQ0FBQzthQUNiO1lB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QztJQUVELHFCQUFxQixDQUFDLGVBQXlCO1FBQzNDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUM5QixJQUFJLENBQUMsaUJBQWlCLENBQUMscUJBQXFCLENBQUMsZUFBZSxDQUFDLENBQUM7U0FDakU7SUFDTCxDQUFDOzswR0F6ZlEsYUFBYTs4R0FBYixhQUFhLGNBRlYsTUFBTTsyRkFFVCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLWF3YWl0LWluLWxvb3AgKi9cclxuLyogZXNsaW50LWRpc2FibGUgY2FtZWxjYXNlICovXHJcbi8qIGVzbGludC1kaXNhYmxlIG5vLXVuZGVyc2NvcmUtZGFuZ2xlICovXHJcbi8qIGVzbGludC1kaXNhYmxlIGNsYXNzLW1ldGhvZHMtdXNlLXRoaXMgKi9cclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBNYXR0ZXJwb3J0U2VydmljZSB9IGZyb20gXCIuL21hdHRlcnBvcnQuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBCYXNlVGFnU2VydmljZSB9IGZyb20gXCIuL3RhZy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERiT2JqZWN0VHlwZSwgUE9JLCBWaWV3ZXJJbnRlcmFjdGlvbnMsIFBvaVR5cGUsIENvbW1lbnQsIEVxdWlwbWVudCwgVGlja2V0LCBGZWF0dXJlIH0gZnJvbSBcIi4uL3R5cGVzLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgUG9pU2VydmljZSB9IGZyb20gXCIuL21vZGVscy9wb2kuc2VydmljZVwiO1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiBcInJvb3RcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIFZpZXdlclNlcnZpY2Uge1xyXG4gICAgcHJpdmF0ZSB2aWV3ZXJNb2RlOiBzdHJpbmcgPSBcIk1hdHRlcnBvcnRcIjtcclxuXHJcbiAgICBwdWJsaWMgY3VycmVudE1vZGVsM0Q6IHN0cmluZztcclxuXHJcbiAgICBwcml2YXRlIHRvdXJVcmw6IHN0cmluZztcclxuXHJcbiAgICBwdWJsaWMgdmlld2VySXNPbjogU3ViamVjdDx7XHJcbiAgICAgICAgc3BhY2VJRDogc3RyaW5nIHwgbnVsbDtcclxuICAgICAgICBtb2RlbDNEOiBzdHJpbmcgfCBudWxsO1xyXG4gICAgICAgIHN3ZWVwOiBzdHJpbmcgfCBudWxsO1xyXG4gICAgICAgIHJvdGF0aW9uOiB7IHg6IG51bWJlcjsgeTogbnVtYmVyOyB9IHwgbnVsbDtcclxuICAgIH0+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgICBwdWJsaWMgZGF0YUlzTG9hZGVkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgICBwdWJsaWMgaXNMb2FkZWQgPSBmYWxzZTtcclxuXHJcbiAgICBwdWJsaWMgc2hvd2luZ1ZpZXdlciA9IGZhbHNlO1xyXG5cclxuICAgIHB1YmxpYyBzd2VlcFRvTW92ZTogc3RyaW5nIHwgbnVsbDtcclxuXHJcbiAgICBwdWJsaWMgcm90YXRpb25Ub01vdmU6IHsgeDogbnVtYmVyOyB5OiBudW1iZXI7IH0gfCBudWxsO1xyXG5cclxuICAgIHB1YmxpYyB0b29sYm94U3RhdGVzID0ge1xyXG4gICAgICAgIGRvbGxob3VzZToge1xyXG4gICAgICAgICAgICBzdGF0OiBmYWxzZSxcclxuICAgICAgICAgICAgaWNvbklkOiBcInVpLWRvbGxob3VzZVwiLFxyXG4gICAgICAgICAgICBzaG93KCkgeyB9LFxyXG4gICAgICAgICAgICBoaWRlKCkgeyB9LFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZmxvb3JwbGFuOiB7XHJcbiAgICAgICAgICAgIHN0YXQ6IGZhbHNlLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbWVzdXJlOiB7XHJcbiAgICAgICAgICAgIHN0YXQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBpY29uSWQ6IFwidWktbWVzdXJlXCIsXHJcbiAgICAgICAgICAgIHNob3coKSB7IH0sXHJcbiAgICAgICAgICAgIGhpZGUoKSB7IH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgICBmaWx0ZXI6IHtcclxuICAgICAgICAgICAgc3RhdDogZmFsc2UsXHJcbiAgICAgICAgfSxcclxuICAgIH07XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBwb2lTZXJ2aWNlOiBQb2lTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgbWF0dGVycG9ydFNlcnZpY2U6IE1hdHRlcnBvcnRTZXJ2aWNlLFxyXG4gICAgKSB7XHJcbiAgICAgICAgdGhpcy5zZXRNb2RlKFwiTWF0dGVycG9ydFwiKTtcclxuICAgIH1cclxuXHJcbiAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgICAgICBVdGlsc1xyXG4gICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG5cclxuICAgIGNoZWNrTW9kZShpbmRleE1vZGU6IHN0cmluZykge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnZpZXdlck1vZGUgPT09IGluZGV4TW9kZTtcclxuICAgIH1cclxuXHJcbiAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgICAgICBTZXR0ZXJzXHJcbiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcblxyXG4gICAgc2V0TW9kZShpbmRleE1vZGU6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMudmlld2VyTW9kZSA9IGluZGV4TW9kZTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRUb3VyVXJsKG1vZGVsM2Q6IHN0cmluZywgc2hvd0ljb25QbGFuOiBib29sZWFuID0gdHJ1ZSwgc2hvd0ljb25Eb2xsaG91c2U6IGJvb2xlYW4gPSB0cnVlLCBzaG93SWNvbkZsb29yczogYm9vbGVhbiA9IHRydWUpIHtcclxuICAgICAgICAvLyB0aGlzLnRvdXJVcmwgPSB0aGlzLmNoZWNrTW9kZShcIk1hdHRlcnBvcnRcIilcclxuICAgICAgICAvLyAgICAgPyBgaHR0cHM6Ly9teS5tYXR0ZXJwb3J0LmNvbS9zaG93Lz9tPSR7bW9kZWwzZH0mcGxheT0xJnFzPTEmaHI9MCZndD0wJnRpdGxlPTAmbG9nPTAmYnJhbmQ9MCZhcHBsaWNhdGlvbktleT1xbjl3c2FzdXk1aDJmenJicm4xbnpyMGlkJm1kcz0wYFxyXG4gICAgICAgIC8vICAgICA6IFwiaHR0cDovL2N1cGl4d2Vld29yay5zMy13ZWJzaXRlLmV1LXdlc3QtMy5hbWF6b25hd3MuY29tL1wiO1xyXG4gICAgICAgIHRoaXMudG91clVybCA9IGBodHRwczovL215Lm1hdHRlcnBvcnQuY29tL3Nob3cvP209JHttb2RlbDNkfSZwbGF5PTEmcXM9MSZocj0wJmd0PTAmdGl0bGU9MCZsb2c9MCZicmFuZD0wJnNlYXJjaD0wJmFwcGxpY2F0aW9uS2V5PXFuOXdzYXN1eTVoMmZ6cmJybjFuenIwaWQmbWRzPTBgO1xyXG4gICAgICAgIGlmICghc2hvd0ljb25QbGFuKSB7XHJcbiAgICAgICAgICAgIHRoaXMudG91clVybCArPSBcIiZmcD0wXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghc2hvd0ljb25Eb2xsaG91c2UpIHtcclxuICAgICAgICAgICAgdGhpcy50b3VyVXJsICs9IFwiJmRoPTBcIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCFzaG93SWNvbkZsb29ycykge1xyXG4gICAgICAgICAgICB0aGlzLnRvdXJVcmwgKz0gXCImZj0wXCI7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNsZWFyQWxsKCkge1xyXG4gICAgICAgIHRoaXMuc3dlZXBUb01vdmUgPSBudWxsO1xyXG4gICAgICAgIHRoaXMucm90YXRpb25Ub01vdmUgPSBudWxsO1xyXG4gICAgICAgIGlmICh0aGlzLmNoZWNrTW9kZShcIk1hdHRlcnBvcnRcIikpIHtcclxuICAgICAgICAgICAgdGhpcy5zaG93aW5nVmlld2VyID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuaXNMb2FkZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5tYXR0ZXJwb3J0U2VydmljZS5jbGVhckFsbCgpO1xyXG4gICAgICAgICAgICB0aGlzLnZpZXdlcklzT24ubmV4dCh7XHJcbiAgICAgICAgICAgICAgICBzcGFjZUlEOiBudWxsLFxyXG4gICAgICAgICAgICAgICAgbW9kZWwzRDogbnVsbCxcclxuICAgICAgICAgICAgICAgIHN3ZWVwOiBudWxsLFxyXG4gICAgICAgICAgICAgICAgcm90YXRpb246IG51bGwsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgICAgICBHZXR0ZXJzXHJcbiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcblxyXG4gICAgZ2V0TW9kZSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy52aWV3ZXJNb2RlO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFZpZXdlclNlbGVjdGVkU2VydmljZSgpIHtcclxuICAgICAgICAvLyBNYXR0ZXJwb3J0XHJcbiAgICAgICAgLy8gaWYgKHRoaXMuY2hlY2tNb2RlKFwiTWF0dGVycG9ydFwiKSkge1xyXG4gICAgICAgIC8vICAgICByZXR1cm4gdGhpcy5nZXRNYXR0ZXJwb3J0U2VydmljZSgpO1xyXG4gICAgICAgIC8vIH1cclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRNYXR0ZXJwb3J0U2VydmljZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFRvdXJVcmwoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudG91clVybDtcclxuICAgIH1cclxuXHJcbiAgICBnZXRNYXR0ZXJwb3J0U2VydmljZSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5tYXR0ZXJwb3J0U2VydmljZTtcclxuICAgIH1cclxuXHJcbiAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgICAgICBHZW5lcmljIE1haW4gYWN0aW9uIGZ1bmN0aW9uc1xyXG4gICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG4gICAgc2V0U3dlZXBUb01vdmUoc3dlZXA6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuc3dlZXBUb01vdmUgPSBzd2VlcDtcclxuICAgIH1cclxuXHJcbiAgICBzZXRSb3RhdGlvblRvTW92ZShyb3RhdGlvbjogeyB4OiBudW1iZXI7IHk6IG51bWJlcjsgfSkge1xyXG4gICAgICAgIHRoaXMucm90YXRpb25Ub01vdmUgPSByb3RhdGlvbjtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBhY3Rpb25fbW92ZV90b190YWcoZWxlbWVudElkOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgICAgICAvLyBNYXR0ZXJwb3J0XHJcbiAgICAgICAgaWYgKHRoaXMuY2hlY2tNb2RlKFwiTWF0dGVycG9ydFwiKSkge1xyXG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPVxyXG4gICAgICAgICAgICAgICAgdGhpcy5tYXR0ZXJwb3J0U2VydmljZS5nZXRUYWdGcm9tRWxlbWVudElkKGVsZW1lbnRJZCk7XHJcbiAgICAgICAgICAgIGlmIChyZXN1bHQudGFnKSB7XHJcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLm1hdHRlcnBvcnRTZXJ2aWNlLmdvVG9UYWcocmVzdWx0LnRhZyk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAocmVzdWx0LnN3ZWVwKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN3ZWVwVG9Nb3ZlID0gcmVzdWx0LnN3ZWVwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGFjdGlvbl9sb2FkX2FsbF90aWNrZXRzX2Zyb21fZGF0YWJhc2UoXHJcbiAgICAgICAgdGlja2V0czogVGlja2V0W10sXHJcbiAgICApOiBQcm9taXNlPGFueT4ge1xyXG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxyXG4gICAgICAgICAgICB0aWNrZXRzLm1hcChhc3luYyAodGlja2V0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBwb2kgPSBhd2FpdCB0aGlzLnBvaVNlcnZpY2UuZ2V0UG9pQnlFbGVtZW50SWQodGlja2V0LmlkISk7XHJcbiAgICAgICAgICAgICAgICBpZiAocG9pICYmIHBvaS5jb29yZGluYXRlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5hY3Rpb25BZGRPYmplY3RGcm9tUE9JKHRpY2tldCwgcG9pKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBhY3Rpb25fbG9hZF9hbGxfZXF1aXBtZW50c19mcm9tX2RhdGFiYXNlKGVxdWlwbWVudHM6IEVxdWlwbWVudFtdKSB7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJhZGRpbmcgZXF1aXBzXCIsIGVxdWlwbWVudHMpO1xyXG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxyXG4gICAgICAgICAgICBlcXVpcG1lbnRzLm1hcChhc3luYyAoZXF1aXApID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHBvaSA9IGF3YWl0IHRoaXMucG9pU2VydmljZS5nZXRQb2lCeUVsZW1lbnRJZChlcXVpcC5pZCEpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHBvaSAmJiBwb2kuY29vcmRpbmF0ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuYWN0aW9uQWRkT2JqZWN0RnJvbVBPSShlcXVpcCwgcG9pKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBhY3Rpb25fbG9hZF9hbGxfbWVhc3VyZW1lbnRzX2Zyb21fZGF0YWJhc2UoY29tbWVudHM6IENvbW1lbnRbXSkge1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwiYWRkaW5nIG1lYXN1cmVzXCIsIGNvbW1lbnRzKTtcclxuICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChcclxuICAgICAgICAgICAgY29tbWVudHMubWFwKGFzeW5jIChjb21tZW50KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBwb2kgPSBhd2FpdCB0aGlzLnBvaVNlcnZpY2UuZ2V0UG9pQnlFbGVtZW50SWQoY29tbWVudC5pZCEpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHBvaSAmJiBwb2kuY29vcmRpbmF0ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aW9uQWRkT2JqZWN0RnJvbVBPSShcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29tbWVudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcG9pLFxyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgYWN0aW9uX2xvYWRfYWxsX2ZlYXR1cmVzX2Zyb21fZGF0YWJhc2UoZmVhdHVyZXM6IEZlYXR1cmVbXSkge1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwiYWRkaW5nIGZlYXR1cmVzXCIsIGZlYXR1cmVzKTtcclxuICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChcclxuICAgICAgICAgICAgZmVhdHVyZXMubWFwKGFzeW5jIChmZWF0dXJlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBwb2kgPSBhd2FpdCB0aGlzLnBvaVNlcnZpY2UuZ2V0UG9pQnlFbGVtZW50SWQoZmVhdHVyZS5pZCEpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHBvaSAmJiBwb2kuY29vcmRpbmF0ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aW9uQWRkT2JqZWN0RnJvbVBPSShmZWF0dXJlLCBwb2kpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGFjdGlvbkFkZE9iamVjdEZyb21QT0koXHJcbiAgICAgICAgb2JqZWN0OiBUaWNrZXQgfCBFcXVpcG1lbnQgfCBDb21tZW50IHwgRmVhdHVyZSxcclxuICAgICAgICBwb2k6IFBPSVxyXG4gICAgKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY2hlY2tNb2RlKFwiTWF0dGVycG9ydFwiKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5tYXR0ZXJwb3J0U2VydmljZS5hY3Rpb25fYWRkX21hdHRlcnRhZ19mcm9tX1BPSShcclxuICAgICAgICAgICAgICAgIHBvaS50eXBlISxcclxuICAgICAgICAgICAgICAgIG9iamVjdCxcclxuICAgICAgICAgICAgICAgIHBvaSxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gQ3VwaXhcclxuICAgICAgICAvLyBUT0RPXHJcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBhc3luYyBhY3Rpb25fZGVsZXRlX2VsZW1lbnQoXHJcbiAgICAgICAgZWxlbWVudDogRGJPYmplY3RUeXBlLFxyXG4gICAgKSB7XHJcbiAgICAgICAgLy8gTWF0dGVycG9ydFxyXG4gICAgICAgIGlmICh0aGlzLmNoZWNrTW9kZShcIk1hdHRlcnBvcnRcIikpIHtcclxuICAgICAgICAgICAgYXdhaXQgdGhpcy5tYXR0ZXJwb3J0U2VydmljZS5hY3Rpb25fZGVsZXRlX2VsZW1lbnQoZWxlbWVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRW5hYmxlIHRpY2tldCBwbGFjZW1lbnQgbWVudSB0byBhZGQgYSBuZXcgdGlja2V0XHJcbiAgICAgKi9cclxuICAgIGFzeW5jIGFjdGlvbl9hZGRfdGlja2V0KCkge1xyXG4gICAgICAgIHRoaXMuYWN0aW9uX3Rvb2xib3hfaW5zaWRlX3ZpZXcoKTtcclxuXHJcbiAgICAgICAgLy8gTWF0dGVycG9ydFxyXG4gICAgICAgIGlmICh0aGlzLmNoZWNrTW9kZShcIk1hdHRlcnBvcnRcIikpIHtcclxuICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgdGhpcy5tYXR0ZXJwb3J0U2VydmljZS5nZXRJbnRlcmFjdGlvbk1vZGUoKSA9PT1cclxuICAgICAgICAgICAgICAgIFZpZXdlckludGVyYWN0aW9ucy5ERUZBVUxUXHJcbiAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5tYXR0ZXJwb3J0U2VydmljZS5hY3Rpb25fYWRkX3RpY2tldCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqL1xyXG4gICAgYXN5bmMgYWN0aW9uX3Bvc2l0aW9uX3RpY2tldCh0aWNrZXQ6IERiT2JqZWN0VHlwZSkge1xyXG4gICAgICAgIC8vIE1hdHRlcnBvcnRcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tNb2RlKFwiTWF0dGVycG9ydFwiKSAmJlxyXG4gICAgICAgICAgICB0aGlzLm1hdHRlcnBvcnRTZXJ2aWNlLmdldEludGVyYWN0aW9uTW9kZSgpID09PVxyXG4gICAgICAgICAgICBWaWV3ZXJJbnRlcmFjdGlvbnMuREVGQVVMVFxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLm1hdHRlcnBvcnRTZXJ2aWNlLmFjdGlvbl9wb3NpdGlvbl9lbGVtZW50KFxyXG4gICAgICAgICAgICAgICAgUG9pVHlwZS5USUNLRVQsXHJcbiAgICAgICAgICAgICAgICB0aWNrZXQsXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIEN1cGl4XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQb3NpdGlvbiBhIGZlYXR1cmUgd2l0aCBNYXR0ZXJwb3J0XHJcbiAgICAgKiBAcGFyYW0gZmVhdHVyZSBUaGUgZmVhdHVyZSB0aGF0IHdpbGwgYmUgcG9zaXRpb25lZFxyXG4gICAgICovXHJcbiAgICBhc3luYyBhY3Rpb25fcG9zaXRpb25fZmVhdHVyZShmZWF0dXJlOiBEYk9iamVjdFR5cGUpIHtcclxuICAgICAgICAvLyBNYXR0ZXJwb3J0XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICB0aGlzLmNoZWNrTW9kZShcIk1hdHRlcnBvcnRcIikgJiZcclxuICAgICAgICAgICAgdGhpcy5tYXR0ZXJwb3J0U2VydmljZS5nZXRJbnRlcmFjdGlvbk1vZGUoKSA9PT1cclxuICAgICAgICAgICAgVmlld2VySW50ZXJhY3Rpb25zLkRFRkFVTFRcclxuICAgICAgICApIHtcclxuICAgICAgICAgICAgYXdhaXQgdGhpcy5tYXR0ZXJwb3J0U2VydmljZS5hY3Rpb25fcG9zaXRpb25fZWxlbWVudChcclxuICAgICAgICAgICAgICAgIFBvaVR5cGUuREFUQSxcclxuICAgICAgICAgICAgICAgIGZlYXR1cmUsXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRW5hYmxlIGVxdWlwZW1lbnQgcGxhY2VtZW50IG1lbnUgdG8gYWRkIGEgbmV3IGVxdWlwbWVudFxyXG4gICAgICovXHJcbiAgICBhc3luYyBhY3Rpb25fYWRkX2VxdWlwKCkge1xyXG4gICAgICAgIHRoaXMuYWN0aW9uX3Rvb2xib3hfaW5zaWRlX3ZpZXcoKTtcclxuXHJcbiAgICAgICAgLy8gTWF0dGVycG9ydFxyXG4gICAgICAgIGlmICh0aGlzLmNoZWNrTW9kZShcIk1hdHRlcnBvcnRcIikpIHtcclxuICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgdGhpcy5tYXR0ZXJwb3J0U2VydmljZS5nZXRJbnRlcmFjdGlvbk1vZGUoKSA9PT1cclxuICAgICAgICAgICAgICAgIFZpZXdlckludGVyYWN0aW9ucy5ERUZBVUxUXHJcbiAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5tYXR0ZXJwb3J0U2VydmljZS5hY3Rpb25fYWRkX2VxdWlwKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKlxyXG4gICAgICovXHJcbiAgICBhc3luYyBhY3Rpb25fcG9zaXRpb25fZXF1aXAoZXF1aXBtZW50OiBEYk9iamVjdFR5cGUpIHtcclxuICAgICAgICAvLyBNYXR0ZXJwb3J0XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICB0aGlzLmNoZWNrTW9kZShcIk1hdHRlcnBvcnRcIikgJiZcclxuICAgICAgICAgICAgdGhpcy5tYXR0ZXJwb3J0U2VydmljZS5nZXRJbnRlcmFjdGlvbk1vZGUoKSA9PT1cclxuICAgICAgICAgICAgVmlld2VySW50ZXJhY3Rpb25zLkRFRkFVTFRcclxuICAgICAgICApIHtcclxuICAgICAgICAgICAgYXdhaXQgdGhpcy5tYXR0ZXJwb3J0U2VydmljZS5hY3Rpb25fcG9zaXRpb25fZWxlbWVudChcclxuICAgICAgICAgICAgICAgIFBvaVR5cGUuRVFVSVBNRU5ULFxyXG4gICAgICAgICAgICAgICAgZXF1aXBtZW50LFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBDdXBpeFxyXG4gICAgfVxyXG5cclxuICAgIGFjdGlvbl9hZGRfZmVhdHVyZSgpIHtcclxuICAgICAgICB0aGlzLmFjdGlvbl90b29sYm94X2luc2lkZV92aWV3KCk7XHJcblxyXG4gICAgICAgIC8vIE1hdHRlcnBvcnRcclxuICAgICAgICBpZiAodGhpcy5jaGVja01vZGUoXCJNYXR0ZXJwb3J0XCIpKSB7XHJcbiAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgIHRoaXMubWF0dGVycG9ydFNlcnZpY2UuZ2V0SW50ZXJhY3Rpb25Nb2RlKCkgPT09XHJcbiAgICAgICAgICAgICAgICBWaWV3ZXJJbnRlcmFjdGlvbnMuREVGQVVMVFxyXG4gICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubWF0dGVycG9ydFNlcnZpY2UuYWN0aW9uX2FkZF9mZWF0dXJlKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgYWN0aW9uX2FkZF9kZXNrKCkge1xyXG4gICAgICAgIHRoaXMuYWN0aW9uX3Rvb2xib3hfaW5zaWRlX3ZpZXcoKTtcclxuXHJcbiAgICAgICAgLy8gTWF0dGVycG9ydFxyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgICAgdGhpcy5jaGVja01vZGUoXCJNYXR0ZXJwb3J0XCIpICYmXHJcbiAgICAgICAgICAgIHRoaXMubWF0dGVycG9ydFNlcnZpY2UuZ2V0SW50ZXJhY3Rpb25Nb2RlKCkgPT09XHJcbiAgICAgICAgICAgIFZpZXdlckludGVyYWN0aW9ucy5ERUZBVUxUXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIHRoaXMubWF0dGVycG9ydFNlcnZpY2UuYWN0aW9uX2FkZF9kZXNrKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRW5hYmxlIHRpY2tldCBwbGFjZW1lbnQgbWVudSB0byBhZGQgYSBuZXcgdGlja2V0XHJcbiAgICAgKi9cclxuICAgIGFjdGlvbl9jYW5jZWxlZCgpIHtcclxuICAgICAgICAvLyBNYXR0ZXJwb3J0XHJcbiAgICAgICAgaWYgKHRoaXMuY2hlY2tNb2RlKFwiTWF0dGVycG9ydFwiKSkge1xyXG4gICAgICAgICAgICB0aGlzLm1hdHRlcnBvcnRTZXJ2aWNlLmFjdGlvbl9jYW5jZWxlZCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBhY3Rpb25fdG9vbGJveF9pbnNpZGVfdmlldygpIHtcclxuICAgICAgICAvLyBNYXR0ZXJwb3J0XHJcbiAgICAgICAgaWYgKHRoaXMuY2hlY2tNb2RlKFwiTWF0dGVycG9ydFwiKSkge1xyXG4gICAgICAgICAgICB0aGlzLm1hdHRlcnBvcnRTZXJ2aWNlLmFjdGlvbl90b29sYm94X2luc2lkZV92aWV3KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGFjdGlvbl90b29sYm94X2RvbGxob3VzZSgpIHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIHRoaXMubWF0dGVycG9ydFNlcnZpY2UuZ2V0SW50ZXJhY3Rpb25Nb2RlKCkgIT09XHJcbiAgICAgICAgICAgIFZpZXdlckludGVyYWN0aW9ucy5ERUZBVUxUXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWN0aW9uX2NhbmNlbGVkKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmFjdGlvbl90b29sYm94X2NhbmNlbF9tZXN1cmUoKTtcclxuICAgICAgICAvLyBNYXR0ZXJwb3J0XHJcbiAgICAgICAgaWYgKHRoaXMuY2hlY2tNb2RlKFwiTWF0dGVycG9ydFwiKSkge1xyXG4gICAgICAgICAgICB0aGlzLm1hdHRlcnBvcnRTZXJ2aWNlLmFjdGlvbl90b29sYm94X2RvbGxob3VzZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBhY3Rpb25fdG9vbGJveF9tZXN1cmUoKSB7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICB0aGlzLm1hdHRlcnBvcnRTZXJ2aWNlLmdldEludGVyYWN0aW9uTW9kZSgpICE9PVxyXG4gICAgICAgICAgICBWaWV3ZXJJbnRlcmFjdGlvbnMuREVGQVVMVFxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgICB0aGlzLmFjdGlvbl9jYW5jZWxlZCgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5hY3Rpb25fdG9vbGJveF9pbnNpZGVfdmlldygpO1xyXG4gICAgICAgIC8vIE1hdHRlcnBvcnRcclxuICAgICAgICBpZiAodGhpcy5jaGVja01vZGUoXCJNYXR0ZXJwb3J0XCIpKSB7XHJcbiAgICAgICAgICAgIHRoaXMubWF0dGVycG9ydFNlcnZpY2UuYWN0aW9uX3Rvb2xib3hfbWVzdXJlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGFjdGlvbl90b29sYm94X2NhbmNlbF9tZXN1cmUoKSB7XHJcbiAgICAgICAgLy8gTWF0dGVycG9ydFxyXG4gICAgICAgIGlmICh0aGlzLmNoZWNrTW9kZShcIk1hdHRlcnBvcnRcIikpIHtcclxuICAgICAgICAgICAgdGhpcy5tYXR0ZXJwb3J0U2VydmljZS5hY3Rpb25fdG9vbGJveF9jYW5jZWxfbWVzdXJlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGFjdGlvbl91cGRhdGVfcG9pKFxyXG4gICAgICAgIHBvaTogUE9JLFxyXG4gICAgICAgIGlzVmFsaWQ6IGJvb2xlYW4sXHJcbiAgICAgICAgZWxlbWVudDogRGJPYmplY3RUeXBlLFxyXG4gICAgKTogUHJvbWlzZTxQT0k+IHtcclxuICAgICAgICBpZiAodGhpcy5jaGVja01vZGUoXCJNYXR0ZXJwb3J0XCIpKSB7XHJcbiAgICAgICAgICAgIGlmIChpc1ZhbGlkKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBsYXN0VGFnID0gdGhpcy5tYXR0ZXJwb3J0U2VydmljZS5tYXR0ZXJ0YWdUb0ZvbGxvd1xyXG4gICAgICAgICAgICAgICAgICAgID8gdGhpcy5tYXR0ZXJwb3J0U2VydmljZS5tYXR0ZXJ0YWdUb0ZvbGxvd1xyXG4gICAgICAgICAgICAgICAgICAgIDogdGhpcy5tYXR0ZXJwb3J0U2VydmljZS5nZXRMYXN0VGFnKCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWxhc3RUYWcpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHBvaSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjb25zdCB0YWdEYXRhID1cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1hdHRlcnBvcnRTZXJ2aWNlLmdldFRhZ0RhdGFGcm9tSWQobGFzdFRhZyk7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXRhZ0RhdGEpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHBvaSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3QgcG9pTWV0YWRhdGEgPSBwb2kubWV0YWRhdGFcclxuICAgICAgICAgICAgICAgICAgICA/IEpTT04ucGFyc2UocG9pLm1ldGFkYXRhKVxyXG4gICAgICAgICAgICAgICAgICAgIDoge307XHJcbiAgICAgICAgICAgICAgICBwb2lNZXRhZGF0YS5ub3JtYWwgPSB0YWdEYXRhLmdldE5vcm1hbCgpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcG9pSW5wdXQgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWQ6IHBvaS5pZCxcclxuICAgICAgICAgICAgICAgICAgICBjb29yZGluYXRlOiB0YWdEYXRhLmdldENvb3JkaW5hdGVTdHJpbmcoKSxcclxuICAgICAgICAgICAgICAgICAgICBtYXR0ZXJwb3J0U3dlZXBJRDogdGFnRGF0YS5nZXRTd2VlcElEKCksXHJcbiAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGE6IEpTT04uc3RyaW5naWZ5KHBvaU1ldGFkYXRhKSxcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICBjb25zdCB1cGRhdGVkUG9pOiBQT0kgPSBhd2FpdCB0aGlzLnBvaVNlcnZpY2UudXBkYXRlUG9pKFxyXG4gICAgICAgICAgICAgICAgICAgIHBvaUlucHV0LFxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIHRhZ0RhdGEuc2V0UG9pKHVwZGF0ZWRQb2kpO1xyXG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5tYXR0ZXJwb3J0U2VydmljZS5pbmplY3RIdG1sSW5UYWcoXHJcbiAgICAgICAgICAgICAgICAgICAgcG9pLnR5cGUhLFxyXG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnQsXHJcbiAgICAgICAgICAgICAgICAgICAgbGFzdFRhZ1xyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMubWF0dGVycG9ydFNlcnZpY2UuZWRpdFRhZ1N0eWxlKGxhc3RUYWcsIHRhZ0RhdGEpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tYXR0ZXJwb3J0U2VydmljZS5nb1RvVGFnKGxhc3RUYWcpO1xyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodXBkYXRlZFBvaSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5tYXR0ZXJwb3J0U2VydmljZS5kZWxldGVMYXN0TWF0dGVydGFnKCk7XHJcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUocG9pKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShwb2kpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTW92ZSBhbiBleGlzdGluZyBwb2kgaW4gTWF0dGVycG9ydFxyXG4gICAgICogQHBhcmFtIHBvaVxyXG4gICAgICogQHBhcmFtIGVsZW1lbnRcclxuICAgICAqL1xyXG4gICAgYXN5bmMgYWN0aW9uX21vdmVfcG9pX3Zpc3VhbGx5KFxyXG4gICAgICAgIHBvaTogUE9JLFxyXG4gICAgICAgIGVsZW1lbnQ6IFRpY2tldCB8IEZlYXR1cmUgfCBFcXVpcG1lbnQgfCBDb21tZW50LFxyXG4gICAgKSB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5hY3Rpb25fZGVsZXRlX2VsZW1lbnQoZWxlbWVudCk7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5hY3Rpb25BZGRPYmplY3RGcm9tUE9JKGVsZW1lbnQsIHBvaSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICAgQ3VwaXhcclxuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuXHJcbiAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgICBNYXR0ZXJwb3J0XHJcbiAgICBodHRwczovL21hdHRlcnBvcnQuZ2l0aHViLmlvL3Nob3djYXNlLXNkay9kb2NzL3Nkay9yZWZlcmVuY2UvY3VycmVudC9tb2R1bGVzL21hdHRlcnRhZy5odG1sI2FkZFxyXG4gICAgaHR0cHM6Ly9tYXR0ZXJwb3J0LmdpdGh1Yi5pby9zaG93Y2FzZS1zZGsvZG9jcy9zZGsvcmVmZXJlbmNlL2N1cnJlbnQvbW9kdWxlcy9tYXR0ZXJ0YWcuaHRtbCNyZW1vdmVcclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG5cclxuICAgIGFzeW5jIGluaXRNYXR0ZXJwb3J0U2RrKHNwYWNlSUQ6IHN0cmluZywgbW9kZWwzRDogc3RyaW5nLCB0YWdTZXJ2aWNlOiBCYXNlVGFnU2VydmljZSwgaXNNdXNldW06IGJvb2xlYW4gPSBmYWxzZSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgICAgIHRoaXMuaXNMb2FkZWQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm1hdHRlcnBvcnRTZXJ2aWNlLmN1cnJlbnRTcGFjZUlEID0gc3BhY2VJRDtcclxuICAgICAgICByZXR1cm4gdGhpcy5tYXR0ZXJwb3J0U2VydmljZS5pbml0U2RrKHRhZ1NlcnZpY2UsIGlzTXVzZXVtKS50aGVuKGFzeW5jIChyZXN1bHQpID0+IHtcclxuICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgeyBzZGsgfSA9IHRoaXMubWF0dGVycG9ydFNlcnZpY2U7XHJcbiAgICAgICAgICAgICAgICBzZGsuQXBwLnN0YXRlLnN1YnNjcmliZShmdW5jdGlvbiAoYXBwU3RhdGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBhcHAgc3RhdGUgaGFzIGNoYW5nZWRcclxuICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZygnVGhlIGN1cnJlbnQgcGhhc2U6ICcsIGFwcFN0YXRlLnBoYXNlKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoYXBwU3RhdGUucGhhc2UgPT09IHNkay5BcHAuUGhhc2UuUExBWUlORykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZygnVGhlIGFwcCBpcyBwbGF5aW5nJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2hvd2luZ1ZpZXdlciA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmlld2VySXNPbi5uZXh0KHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwYWNlSUQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RlbDNELFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3dlZXA6IHRoaXMuc3dlZXBUb01vdmUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjogdGhpcy5yb3RhdGlvblRvTW92ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YUlzTG9hZGVkLm5leHQodHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN3ZWVwVG9Nb3ZlID0gbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3RhdGlvblRvTW92ZSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfS5iaW5kKHRoaXMpKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICByZW1vdmVGb3JiaWRkZW5Td2VlcHMoZm9yYmlkZGVuU3dlZXBzOiBzdHJpbmdbXSkge1xyXG4gICAgICAgIGlmICh0aGlzLmNoZWNrTW9kZShcIk1hdHRlcnBvcnRcIikpIHtcclxuICAgICAgICAgICAgdGhpcy5tYXR0ZXJwb3J0U2VydmljZS5yZW1vdmVGb3JiaWRkZW5Td2VlcHMoZm9yYmlkZGVuU3dlZXBzKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
395
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc21hcnRlcnBsYW4tY29yZS9zcmMvbGliL3NlcnZpY2VzL3ZpZXdlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHFDQUFxQztBQUNyQyw4QkFBOEI7QUFDOUIseUNBQXlDO0FBQ3pDLDJDQUEyQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHL0IsT0FBTyxFQUFxQixrQkFBa0IsRUFBRSxPQUFPLEVBQXVDLE1BQU0sa0JBQWtCLENBQUM7Ozs7QUFLdkgsTUFBTSxPQUFPLGFBQWE7SUE2Q3RCLFlBQ1ksVUFBc0IsRUFDdEIsaUJBQW9DO1FBRHBDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQTlDeEMsZUFBVSxHQUFXLFlBQVksQ0FBQztRQU1uQyxlQUFVLEdBS1osSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUVaLGlCQUFZLEdBQXFCLElBQUksT0FBTyxFQUFFLENBQUM7UUFFL0MsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUVqQixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQU10QixrQkFBYSxHQUFHO1lBQ25CLFNBQVMsRUFBRTtnQkFDUCxJQUFJLEVBQUUsS0FBSztnQkFDWCxNQUFNLEVBQUUsY0FBYztnQkFDdEIsSUFBSSxLQUFLLENBQUM7Z0JBQ1YsSUFBSSxLQUFLLENBQUM7YUFDYjtZQUNELFNBQVMsRUFBRTtnQkFDUCxJQUFJLEVBQUUsS0FBSzthQUNkO1lBQ0QsTUFBTSxFQUFFO2dCQUNKLElBQUksRUFBRSxLQUFLO2dCQUNYLE1BQU0sRUFBRSxXQUFXO2dCQUNuQixJQUFJLEtBQUssQ0FBQztnQkFDVixJQUFJLEtBQUssQ0FBQzthQUNiO1lB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QztJQUVELHFCQUFxQixDQUFDLGVBQXlCO1FBQzNDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUM5QixJQUFJLENBQUMsaUJBQWlCLENBQUMscUJBQXFCLENBQUMsZUFBZSxDQUFDLENBQUM7U0FDakU7SUFDTCxDQUFDOzswR0F6ZlEsYUFBYTs4R0FBYixhQUFhLGNBRlYsTUFBTTsyRkFFVCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLWF3YWl0LWluLWxvb3AgKi9cclxuLyogZXNsaW50LWRpc2FibGUgY2FtZWxjYXNlICovXHJcbi8qIGVzbGludC1kaXNhYmxlIG5vLXVuZGVyc2NvcmUtZGFuZ2xlICovXHJcbi8qIGVzbGludC1kaXNhYmxlIGNsYXNzLW1ldGhvZHMtdXNlLXRoaXMgKi9cclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBNYXR0ZXJwb3J0U2VydmljZSB9IGZyb20gXCIuL21hdHRlcnBvcnQuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBCYXNlVGFnU2VydmljZSB9IGZyb20gXCIuL3RhZy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERiT2JqZWN0VHlwZSwgUE9JLCBWaWV3ZXJJbnRlcmFjdGlvbnMsIFBvaVR5cGUsIENvbW1lbnQsIEVxdWlwbWVudCwgVGlja2V0LCBGZWF0dXJlIH0gZnJvbSBcIi4uL3R5cGVzLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgUG9pU2VydmljZSB9IGZyb20gXCIuL21vZGVscy9wb2kuc2VydmljZVwiO1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiBcInJvb3RcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIFZpZXdlclNlcnZpY2Uge1xyXG4gICAgcHJpdmF0ZSB2aWV3ZXJNb2RlOiBzdHJpbmcgPSBcIk1hdHRlcnBvcnRcIjtcclxuXHJcbiAgICBwdWJsaWMgY3VycmVudE1vZGVsM0Q6IHN0cmluZztcclxuXHJcbiAgICBwcml2YXRlIHRvdXJVcmw6IHN0cmluZztcclxuXHJcbiAgICBwdWJsaWMgdmlld2VySXNPbjogU3ViamVjdDx7XHJcbiAgICAgICAgc3BhY2VJRDogc3RyaW5nIHwgbnVsbDtcclxuICAgICAgICBtb2RlbDNEOiBzdHJpbmcgfCBudWxsO1xyXG4gICAgICAgIHN3ZWVwOiBzdHJpbmcgfCBudWxsO1xyXG4gICAgICAgIHJvdGF0aW9uOiB7IHg6IG51bWJlcjsgeTogbnVtYmVyOyB9IHwgbnVsbDtcclxuICAgIH0+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgICBwdWJsaWMgZGF0YUlzTG9hZGVkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgICBwdWJsaWMgaXNMb2FkZWQgPSBmYWxzZTtcclxuXHJcbiAgICBwdWJsaWMgc2hvd2luZ1ZpZXdlciA9IGZhbHNlO1xyXG5cclxuICAgIHB1YmxpYyBzd2VlcFRvTW92ZTogc3RyaW5nIHwgbnVsbDtcclxuXHJcbiAgICBwdWJsaWMgcm90YXRpb25Ub01vdmU6IHsgeDogbnVtYmVyOyB5OiBudW1iZXI7IH0gfCBudWxsO1xyXG5cclxuICAgIHB1YmxpYyB0b29sYm94U3RhdGVzID0ge1xyXG4gICAgICAgIGRvbGxob3VzZToge1xyXG4gICAgICAgICAgICBzdGF0OiBmYWxzZSxcclxuICAgICAgICAgICAgaWNvbklkOiBcInVpLWRvbGxob3VzZVwiLFxyXG4gICAgICAgICAgICBzaG93KCkgeyB9LFxyXG4gICAgICAgICAgICBoaWRlKCkgeyB9LFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZmxvb3JwbGFuOiB7XHJcbiAgICAgICAgICAgIHN0YXQ6IGZhbHNlLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbWVzdXJlOiB7XHJcbiAgICAgICAgICAgIHN0YXQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBpY29uSWQ6IFwidWktbWVzdXJlXCIsXHJcbiAgICAgICAgICAgIHNob3coKSB7IH0sXHJcbiAgICAgICAgICAgIGhpZGUoKSB7IH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgICBmaWx0ZXI6IHtcclxuICAgICAgICAgICAgc3RhdDogZmFsc2UsXHJcbiAgICAgICAgfSxcclxuICAgIH07XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBwb2lTZXJ2aWNlOiBQb2lTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgbWF0dGVycG9ydFNlcnZpY2U6IE1hdHRlcnBvcnRTZXJ2aWNlLFxyXG4gICAgKSB7XHJcbiAgICAgICAgdGhpcy5zZXRNb2RlKFwiTWF0dGVycG9ydFwiKTtcclxuICAgIH1cclxuXHJcbiAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgICAgICBVdGlsc1xyXG4gICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG5cclxuICAgIGNoZWNrTW9kZShpbmRleE1vZGU6IHN0cmluZykge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnZpZXdlck1vZGUgPT09IGluZGV4TW9kZTtcclxuICAgIH1cclxuXHJcbiAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgICAgICBTZXR0ZXJzXHJcbiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcblxyXG4gICAgc2V0TW9kZShpbmRleE1vZGU6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMudmlld2VyTW9kZSA9IGluZGV4TW9kZTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRUb3VyVXJsKG1vZGVsM2Q6IHN0cmluZywgc2hvd0ljb25QbGFuOiBib29sZWFuID0gdHJ1ZSwgc2hvd0ljb25Eb2xsaG91c2U6IGJvb2xlYW4gPSB0cnVlLCBzaG93SWNvbkZsb29yczogYm9vbGVhbiA9IHRydWUpIHtcclxuICAgICAgICAvLyB0aGlzLnRvdXJVcmwgPSB0aGlzLmNoZWNrTW9kZShcIk1hdHRlcnBvcnRcIilcclxuICAgICAgICAvLyAgICAgPyBgaHR0cHM6Ly9teS5tYXR0ZXJwb3J0LmNvbS9zaG93Lz9tPSR7bW9kZWwzZH0mcGxheT0xJnFzPTEmaHI9MCZndD0wJnRpdGxlPTAmbG9nPTAmYnJhbmQ9MCZhcHBsaWNhdGlvbktleT1xbjl3c2FzdXk1aDJmenJicm4xbnpyMGlkJm1kcz0wYFxyXG4gICAgICAgIC8vICAgICA6IFwiaHR0cDovL2N1cGl4d2Vld29yay5zMy13ZWJzaXRlLmV1LXdlc3QtMy5hbWF6b25hd3MuY29tL1wiO1xyXG4gICAgICAgIHRoaXMudG91clVybCA9IGBodHRwczovL215Lm1hdHRlcnBvcnQuY29tL3Nob3cvP209JHttb2RlbDNkfSZwbGF5PTEmcXM9MSZndD0wJnRpdGxlPTAmbG9nPTAmYnJhbmQ9MCZzZWFyY2g9MCZhcHBsaWNhdGlvbktleT1xbjl3c2FzdXk1aDJmenJicm4xbnpyMGlkJm1kcz0wYDtcclxuICAgICAgICBpZiAoIXNob3dJY29uUGxhbikge1xyXG4gICAgICAgICAgICB0aGlzLnRvdXJVcmwgKz0gXCImZnA9MFwiO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIXNob3dJY29uRG9sbGhvdXNlKSB7XHJcbiAgICAgICAgICAgIHRoaXMudG91clVybCArPSBcIiZkaD0wXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghc2hvd0ljb25GbG9vcnMpIHtcclxuICAgICAgICAgICAgdGhpcy50b3VyVXJsICs9IFwiJmY9MFwiO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjbGVhckFsbCgpIHtcclxuICAgICAgICB0aGlzLnN3ZWVwVG9Nb3ZlID0gbnVsbDtcclxuICAgICAgICB0aGlzLnJvdGF0aW9uVG9Nb3ZlID0gbnVsbDtcclxuICAgICAgICBpZiAodGhpcy5jaGVja01vZGUoXCJNYXR0ZXJwb3J0XCIpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd2luZ1ZpZXdlciA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmlzTG9hZGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMubWF0dGVycG9ydFNlcnZpY2UuY2xlYXJBbGwoKTtcclxuICAgICAgICAgICAgdGhpcy52aWV3ZXJJc09uLm5leHQoe1xyXG4gICAgICAgICAgICAgICAgc3BhY2VJRDogbnVsbCxcclxuICAgICAgICAgICAgICAgIG1vZGVsM0Q6IG51bGwsXHJcbiAgICAgICAgICAgICAgICBzd2VlcDogbnVsbCxcclxuICAgICAgICAgICAgICAgIHJvdGF0aW9uOiBudWxsLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICAgICAgR2V0dGVyc1xyXG4gICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG5cclxuICAgIGdldE1vZGUoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudmlld2VyTW9kZTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRWaWV3ZXJTZWxlY3RlZFNlcnZpY2UoKSB7XHJcbiAgICAgICAgLy8gTWF0dGVycG9ydFxyXG4gICAgICAgIC8vIGlmICh0aGlzLmNoZWNrTW9kZShcIk1hdHRlcnBvcnRcIikpIHtcclxuICAgICAgICAvLyAgICAgcmV0dXJuIHRoaXMuZ2V0TWF0dGVycG9ydFNlcnZpY2UoKTtcclxuICAgICAgICAvLyB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TWF0dGVycG9ydFNlcnZpY2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRUb3VyVXJsKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnRvdXJVcmw7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0TWF0dGVycG9ydFNlcnZpY2UoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubWF0dGVycG9ydFNlcnZpY2U7XHJcbiAgICB9XHJcblxyXG4gICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICAgICAgR2VuZXJpYyBNYWluIGFjdGlvbiBmdW5jdGlvbnNcclxuICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuICAgIHNldFN3ZWVwVG9Nb3ZlKHN3ZWVwOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLnN3ZWVwVG9Nb3ZlID0gc3dlZXA7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0Um90YXRpb25Ub01vdmUocm90YXRpb246IHsgeDogbnVtYmVyOyB5OiBudW1iZXI7IH0pIHtcclxuICAgICAgICB0aGlzLnJvdGF0aW9uVG9Nb3ZlID0gcm90YXRpb247XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgYWN0aW9uX21vdmVfdG9fdGFnKGVsZW1lbnRJZDogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICAgICAgLy8gTWF0dGVycG9ydFxyXG4gICAgICAgIGlmICh0aGlzLmNoZWNrTW9kZShcIk1hdHRlcnBvcnRcIikpIHtcclxuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID1cclxuICAgICAgICAgICAgICAgIHRoaXMubWF0dGVycG9ydFNlcnZpY2UuZ2V0VGFnRnJvbUVsZW1lbnRJZChlbGVtZW50SWQpO1xyXG4gICAgICAgICAgICBpZiAocmVzdWx0LnRhZykge1xyXG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5tYXR0ZXJwb3J0U2VydmljZS5nb1RvVGFnKHJlc3VsdC50YWcpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHJlc3VsdC5zd2VlcCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zd2VlcFRvTW92ZSA9IHJlc3VsdC5zd2VlcDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBhY3Rpb25fbG9hZF9hbGxfdGlja2V0c19mcm9tX2RhdGFiYXNlKFxyXG4gICAgICAgIHRpY2tldHM6IFRpY2tldFtdLFxyXG4gICAgKTogUHJvbWlzZTxhbnk+IHtcclxuICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChcclxuICAgICAgICAgICAgdGlja2V0cy5tYXAoYXN5bmMgKHRpY2tldCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcG9pID0gYXdhaXQgdGhpcy5wb2lTZXJ2aWNlLmdldFBvaUJ5RWxlbWVudElkKHRpY2tldC5pZCEpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHBvaSAmJiBwb2kuY29vcmRpbmF0ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuYWN0aW9uQWRkT2JqZWN0RnJvbVBPSSh0aWNrZXQsIHBvaSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgYWN0aW9uX2xvYWRfYWxsX2VxdWlwbWVudHNfZnJvbV9kYXRhYmFzZShlcXVpcG1lbnRzOiBFcXVpcG1lbnRbXSkge1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwiYWRkaW5nIGVxdWlwc1wiLCBlcXVpcG1lbnRzKTtcclxuICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChcclxuICAgICAgICAgICAgZXF1aXBtZW50cy5tYXAoYXN5bmMgKGVxdWlwKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBwb2kgPSBhd2FpdCB0aGlzLnBvaVNlcnZpY2UuZ2V0UG9pQnlFbGVtZW50SWQoZXF1aXAuaWQhKTtcclxuICAgICAgICAgICAgICAgIGlmIChwb2kgJiYgcG9pLmNvb3JkaW5hdGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLmFjdGlvbkFkZE9iamVjdEZyb21QT0koZXF1aXAsIHBvaSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgYWN0aW9uX2xvYWRfYWxsX21lYXN1cmVtZW50c19mcm9tX2RhdGFiYXNlKGNvbW1lbnRzOiBDb21tZW50W10pIHtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcImFkZGluZyBtZWFzdXJlc1wiLCBjb21tZW50cyk7XHJcbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoXHJcbiAgICAgICAgICAgIGNvbW1lbnRzLm1hcChhc3luYyAoY29tbWVudCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcG9pID0gYXdhaXQgdGhpcy5wb2lTZXJ2aWNlLmdldFBvaUJ5RWxlbWVudElkKGNvbW1lbnQuaWQhKTtcclxuICAgICAgICAgICAgICAgIGlmIChwb2kgJiYgcG9pLmNvb3JkaW5hdGUpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGlvbkFkZE9iamVjdEZyb21QT0koXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1lbnQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvaSxcclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGFjdGlvbl9sb2FkX2FsbF9mZWF0dXJlc19mcm9tX2RhdGFiYXNlKGZlYXR1cmVzOiBGZWF0dXJlW10pIHtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcImFkZGluZyBmZWF0dXJlc1wiLCBmZWF0dXJlcyk7XHJcbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoXHJcbiAgICAgICAgICAgIGZlYXR1cmVzLm1hcChhc3luYyAoZmVhdHVyZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcG9pID0gYXdhaXQgdGhpcy5wb2lTZXJ2aWNlLmdldFBvaUJ5RWxlbWVudElkKGZlYXR1cmUuaWQhKTtcclxuICAgICAgICAgICAgICAgIGlmIChwb2kgJiYgcG9pLmNvb3JkaW5hdGUpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGlvbkFkZE9iamVjdEZyb21QT0koZmVhdHVyZSwgcG9pKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBhY3Rpb25BZGRPYmplY3RGcm9tUE9JKFxyXG4gICAgICAgIG9iamVjdDogVGlja2V0IHwgRXF1aXBtZW50IHwgQ29tbWVudCB8IEZlYXR1cmUsXHJcbiAgICAgICAgcG9pOiBQT0lcclxuICAgICkge1xyXG4gICAgICAgIGlmICh0aGlzLmNoZWNrTW9kZShcIk1hdHRlcnBvcnRcIikpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubWF0dGVycG9ydFNlcnZpY2UuYWN0aW9uX2FkZF9tYXR0ZXJ0YWdfZnJvbV9QT0koXHJcbiAgICAgICAgICAgICAgICBwb2kudHlwZSEsXHJcbiAgICAgICAgICAgICAgICBvYmplY3QsXHJcbiAgICAgICAgICAgICAgICBwb2ksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIEN1cGl4XHJcbiAgICAgICAgLy8gVE9ET1xyXG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgYXN5bmMgYWN0aW9uX2RlbGV0ZV9lbGVtZW50KFxyXG4gICAgICAgIGVsZW1lbnQ6IERiT2JqZWN0VHlwZSxcclxuICAgICkge1xyXG4gICAgICAgIC8vIE1hdHRlcnBvcnRcclxuICAgICAgICBpZiAodGhpcy5jaGVja01vZGUoXCJNYXR0ZXJwb3J0XCIpKSB7XHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMubWF0dGVycG9ydFNlcnZpY2UuYWN0aW9uX2RlbGV0ZV9lbGVtZW50KGVsZW1lbnQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEVuYWJsZSB0aWNrZXQgcGxhY2VtZW50IG1lbnUgdG8gYWRkIGEgbmV3IHRpY2tldFxyXG4gICAgICovXHJcbiAgICBhc3luYyBhY3Rpb25fYWRkX3RpY2tldCgpIHtcclxuICAgICAgICB0aGlzLmFjdGlvbl90b29sYm94X2luc2lkZV92aWV3KCk7XHJcblxyXG4gICAgICAgIC8vIE1hdHRlcnBvcnRcclxuICAgICAgICBpZiAodGhpcy5jaGVja01vZGUoXCJNYXR0ZXJwb3J0XCIpKSB7XHJcbiAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgIHRoaXMubWF0dGVycG9ydFNlcnZpY2UuZ2V0SW50ZXJhY3Rpb25Nb2RlKCkgPT09XHJcbiAgICAgICAgICAgICAgICBWaWV3ZXJJbnRlcmFjdGlvbnMuREVGQVVMVFxyXG4gICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMubWF0dGVycG9ydFNlcnZpY2UuYWN0aW9uX2FkZF90aWNrZXQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKi9cclxuICAgIGFzeW5jIGFjdGlvbl9wb3NpdGlvbl90aWNrZXQodGlja2V0OiBEYk9iamVjdFR5cGUpIHtcclxuICAgICAgICAvLyBNYXR0ZXJwb3J0XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICB0aGlzLmNoZWNrTW9kZShcIk1hdHRlcnBvcnRcIikgJiZcclxuICAgICAgICAgICAgdGhpcy5tYXR0ZXJwb3J0U2VydmljZS5nZXRJbnRlcmFjdGlvbk1vZGUoKSA9PT1cclxuICAgICAgICAgICAgVmlld2VySW50ZXJhY3Rpb25zLkRFRkFVTFRcclxuICAgICAgICApIHtcclxuICAgICAgICAgICAgYXdhaXQgdGhpcy5tYXR0ZXJwb3J0U2VydmljZS5hY3Rpb25fcG9zaXRpb25fZWxlbWVudChcclxuICAgICAgICAgICAgICAgIFBvaVR5cGUuVElDS0VULFxyXG4gICAgICAgICAgICAgICAgdGlja2V0LFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBDdXBpeFxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUG9zaXRpb24gYSBmZWF0dXJlIHdpdGggTWF0dGVycG9ydFxyXG4gICAgICogQHBhcmFtIGZlYXR1cmUgVGhlIGZlYXR1cmUgdGhhdCB3aWxsIGJlIHBvc2l0aW9uZWRcclxuICAgICAqL1xyXG4gICAgYXN5bmMgYWN0aW9uX3Bvc2l0aW9uX2ZlYXR1cmUoZmVhdHVyZTogRGJPYmplY3RUeXBlKSB7XHJcbiAgICAgICAgLy8gTWF0dGVycG9ydFxyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgICAgdGhpcy5jaGVja01vZGUoXCJNYXR0ZXJwb3J0XCIpICYmXHJcbiAgICAgICAgICAgIHRoaXMubWF0dGVycG9ydFNlcnZpY2UuZ2V0SW50ZXJhY3Rpb25Nb2RlKCkgPT09XHJcbiAgICAgICAgICAgIFZpZXdlckludGVyYWN0aW9ucy5ERUZBVUxUXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMubWF0dGVycG9ydFNlcnZpY2UuYWN0aW9uX3Bvc2l0aW9uX2VsZW1lbnQoXHJcbiAgICAgICAgICAgICAgICBQb2lUeXBlLkRBVEEsXHJcbiAgICAgICAgICAgICAgICBmZWF0dXJlLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEVuYWJsZSBlcXVpcGVtZW50IHBsYWNlbWVudCBtZW51IHRvIGFkZCBhIG5ldyBlcXVpcG1lbnRcclxuICAgICAqL1xyXG4gICAgYXN5bmMgYWN0aW9uX2FkZF9lcXVpcCgpIHtcclxuICAgICAgICB0aGlzLmFjdGlvbl90b29sYm94X2luc2lkZV92aWV3KCk7XHJcblxyXG4gICAgICAgIC8vIE1hdHRlcnBvcnRcclxuICAgICAgICBpZiAodGhpcy5jaGVja01vZGUoXCJNYXR0ZXJwb3J0XCIpKSB7XHJcbiAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgIHRoaXMubWF0dGVycG9ydFNlcnZpY2UuZ2V0SW50ZXJhY3Rpb25Nb2RlKCkgPT09XHJcbiAgICAgICAgICAgICAgICBWaWV3ZXJJbnRlcmFjdGlvbnMuREVGQVVMVFxyXG4gICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMubWF0dGVycG9ydFNlcnZpY2UuYWN0aW9uX2FkZF9lcXVpcCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqL1xyXG4gICAgYXN5bmMgYWN0aW9uX3Bvc2l0aW9uX2VxdWlwKGVxdWlwbWVudDogRGJPYmplY3RUeXBlKSB7XHJcbiAgICAgICAgLy8gTWF0dGVycG9ydFxyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgICAgdGhpcy5jaGVja01vZGUoXCJNYXR0ZXJwb3J0XCIpICYmXHJcbiAgICAgICAgICAgIHRoaXMubWF0dGVycG9ydFNlcnZpY2UuZ2V0SW50ZXJhY3Rpb25Nb2RlKCkgPT09XHJcbiAgICAgICAgICAgIFZpZXdlckludGVyYWN0aW9ucy5ERUZBVUxUXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMubWF0dGVycG9ydFNlcnZpY2UuYWN0aW9uX3Bvc2l0aW9uX2VsZW1lbnQoXHJcbiAgICAgICAgICAgICAgICBQb2lUeXBlLkVRVUlQTUVOVCxcclxuICAgICAgICAgICAgICAgIGVxdWlwbWVudCxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gQ3VwaXhcclxuICAgIH1cclxuXHJcbiAgICBhY3Rpb25fYWRkX2ZlYXR1cmUoKSB7XHJcbiAgICAgICAgdGhpcy5hY3Rpb25fdG9vbGJveF9pbnNpZGVfdmlldygpO1xyXG5cclxuICAgICAgICAvLyBNYXR0ZXJwb3J0XHJcbiAgICAgICAgaWYgKHRoaXMuY2hlY2tNb2RlKFwiTWF0dGVycG9ydFwiKSkge1xyXG4gICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICB0aGlzLm1hdHRlcnBvcnRTZXJ2aWNlLmdldEludGVyYWN0aW9uTW9kZSgpID09PVxyXG4gICAgICAgICAgICAgICAgVmlld2VySW50ZXJhY3Rpb25zLkRFRkFVTFRcclxuICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1hdHRlcnBvcnRTZXJ2aWNlLmFjdGlvbl9hZGRfZmVhdHVyZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGFjdGlvbl9hZGRfZGVzaygpIHtcclxuICAgICAgICB0aGlzLmFjdGlvbl90b29sYm94X2luc2lkZV92aWV3KCk7XHJcblxyXG4gICAgICAgIC8vIE1hdHRlcnBvcnRcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tNb2RlKFwiTWF0dGVycG9ydFwiKSAmJlxyXG4gICAgICAgICAgICB0aGlzLm1hdHRlcnBvcnRTZXJ2aWNlLmdldEludGVyYWN0aW9uTW9kZSgpID09PVxyXG4gICAgICAgICAgICBWaWV3ZXJJbnRlcmFjdGlvbnMuREVGQVVMVFxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgICB0aGlzLm1hdHRlcnBvcnRTZXJ2aWNlLmFjdGlvbl9hZGRfZGVzaygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEVuYWJsZSB0aWNrZXQgcGxhY2VtZW50IG1lbnUgdG8gYWRkIGEgbmV3IHRpY2tldFxyXG4gICAgICovXHJcbiAgICBhY3Rpb25fY2FuY2VsZWQoKSB7XHJcbiAgICAgICAgLy8gTWF0dGVycG9ydFxyXG4gICAgICAgIGlmICh0aGlzLmNoZWNrTW9kZShcIk1hdHRlcnBvcnRcIikpIHtcclxuICAgICAgICAgICAgdGhpcy5tYXR0ZXJwb3J0U2VydmljZS5hY3Rpb25fY2FuY2VsZWQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgYWN0aW9uX3Rvb2xib3hfaW5zaWRlX3ZpZXcoKSB7XHJcbiAgICAgICAgLy8gTWF0dGVycG9ydFxyXG4gICAgICAgIGlmICh0aGlzLmNoZWNrTW9kZShcIk1hdHRlcnBvcnRcIikpIHtcclxuICAgICAgICAgICAgdGhpcy5tYXR0ZXJwb3J0U2VydmljZS5hY3Rpb25fdG9vbGJveF9pbnNpZGVfdmlldygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBhY3Rpb25fdG9vbGJveF9kb2xsaG91c2UoKSB7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICB0aGlzLm1hdHRlcnBvcnRTZXJ2aWNlLmdldEludGVyYWN0aW9uTW9kZSgpICE9PVxyXG4gICAgICAgICAgICBWaWV3ZXJJbnRlcmFjdGlvbnMuREVGQVVMVFxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgICB0aGlzLmFjdGlvbl9jYW5jZWxlZCgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5hY3Rpb25fdG9vbGJveF9jYW5jZWxfbWVzdXJlKCk7XHJcbiAgICAgICAgLy8gTWF0dGVycG9ydFxyXG4gICAgICAgIGlmICh0aGlzLmNoZWNrTW9kZShcIk1hdHRlcnBvcnRcIikpIHtcclxuICAgICAgICAgICAgdGhpcy5tYXR0ZXJwb3J0U2VydmljZS5hY3Rpb25fdG9vbGJveF9kb2xsaG91c2UoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgYWN0aW9uX3Rvb2xib3hfbWVzdXJlKCkge1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgICAgdGhpcy5tYXR0ZXJwb3J0U2VydmljZS5nZXRJbnRlcmFjdGlvbk1vZGUoKSAhPT1cclxuICAgICAgICAgICAgVmlld2VySW50ZXJhY3Rpb25zLkRFRkFVTFRcclxuICAgICAgICApIHtcclxuICAgICAgICAgICAgdGhpcy5hY3Rpb25fY2FuY2VsZWQoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuYWN0aW9uX3Rvb2xib3hfaW5zaWRlX3ZpZXcoKTtcclxuICAgICAgICAvLyBNYXR0ZXJwb3J0XHJcbiAgICAgICAgaWYgKHRoaXMuY2hlY2tNb2RlKFwiTWF0dGVycG9ydFwiKSkge1xyXG4gICAgICAgICAgICB0aGlzLm1hdHRlcnBvcnRTZXJ2aWNlLmFjdGlvbl90b29sYm94X21lc3VyZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBhY3Rpb25fdG9vbGJveF9jYW5jZWxfbWVzdXJlKCkge1xyXG4gICAgICAgIC8vIE1hdHRlcnBvcnRcclxuICAgICAgICBpZiAodGhpcy5jaGVja01vZGUoXCJNYXR0ZXJwb3J0XCIpKSB7XHJcbiAgICAgICAgICAgIHRoaXMubWF0dGVycG9ydFNlcnZpY2UuYWN0aW9uX3Rvb2xib3hfY2FuY2VsX21lc3VyZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBhY3Rpb25fdXBkYXRlX3BvaShcclxuICAgICAgICBwb2k6IFBPSSxcclxuICAgICAgICBpc1ZhbGlkOiBib29sZWFuLFxyXG4gICAgICAgIGVsZW1lbnQ6IERiT2JqZWN0VHlwZSxcclxuICAgICk6IFByb21pc2U8UE9JPiB7XHJcbiAgICAgICAgaWYgKHRoaXMuY2hlY2tNb2RlKFwiTWF0dGVycG9ydFwiKSkge1xyXG4gICAgICAgICAgICBpZiAoaXNWYWxpZCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbGFzdFRhZyA9IHRoaXMubWF0dGVycG9ydFNlcnZpY2UubWF0dGVydGFnVG9Gb2xsb3dcclxuICAgICAgICAgICAgICAgICAgICA/IHRoaXMubWF0dGVycG9ydFNlcnZpY2UubWF0dGVydGFnVG9Gb2xsb3dcclxuICAgICAgICAgICAgICAgICAgICA6IHRoaXMubWF0dGVycG9ydFNlcnZpY2UuZ2V0TGFzdFRhZygpO1xyXG4gICAgICAgICAgICAgICAgaWYgKCFsYXN0VGFnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShwb2kpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY29uc3QgdGFnRGF0YSA9XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXR0ZXJwb3J0U2VydmljZS5nZXRUYWdEYXRhRnJvbUlkKGxhc3RUYWcpO1xyXG4gICAgICAgICAgICAgICAgaWYgKCF0YWdEYXRhKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShwb2kpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGNvbnN0IHBvaU1ldGFkYXRhID0gcG9pLm1ldGFkYXRhXHJcbiAgICAgICAgICAgICAgICAgICAgPyBKU09OLnBhcnNlKHBvaS5tZXRhZGF0YSlcclxuICAgICAgICAgICAgICAgICAgICA6IHt9O1xyXG4gICAgICAgICAgICAgICAgcG9pTWV0YWRhdGEubm9ybWFsID0gdGFnRGF0YS5nZXROb3JtYWwoKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHBvaUlucHV0ID0ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlkOiBwb2kuaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgY29vcmRpbmF0ZTogdGFnRGF0YS5nZXRDb29yZGluYXRlU3RyaW5nKCksXHJcbiAgICAgICAgICAgICAgICAgICAgbWF0dGVycG9ydFN3ZWVwSUQ6IHRhZ0RhdGEuZ2V0U3dlZXBJRCgpLFxyXG4gICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhOiBKU09OLnN0cmluZ2lmeShwb2lNZXRhZGF0YSksXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdXBkYXRlZFBvaTogUE9JID0gYXdhaXQgdGhpcy5wb2lTZXJ2aWNlLnVwZGF0ZVBvaShcclxuICAgICAgICAgICAgICAgICAgICBwb2lJbnB1dCxcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICB0YWdEYXRhLnNldFBvaSh1cGRhdGVkUG9pKTtcclxuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMubWF0dGVycG9ydFNlcnZpY2UuaW5qZWN0SHRtbEluVGFnKFxyXG4gICAgICAgICAgICAgICAgICAgIHBvaS50eXBlISxcclxuICAgICAgICAgICAgICAgICAgICBlbGVtZW50LFxyXG4gICAgICAgICAgICAgICAgICAgIGxhc3RUYWdcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLm1hdHRlcnBvcnRTZXJ2aWNlLmVkaXRUYWdTdHlsZShsYXN0VGFnLCB0YWdEYXRhKTtcclxuICAgICAgICAgICAgICAgIHRoaXMubWF0dGVycG9ydFNlcnZpY2UuZ29Ub1RhZyhsYXN0VGFnKTtcclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHVwZGF0ZWRQb2kpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMubWF0dGVycG9ydFNlcnZpY2UuZGVsZXRlTGFzdE1hdHRlcnRhZygpO1xyXG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHBvaSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUocG9pKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE1vdmUgYW4gZXhpc3RpbmcgcG9pIGluIE1hdHRlcnBvcnRcclxuICAgICAqIEBwYXJhbSBwb2lcclxuICAgICAqIEBwYXJhbSBlbGVtZW50XHJcbiAgICAgKi9cclxuICAgIGFzeW5jIGFjdGlvbl9tb3ZlX3BvaV92aXN1YWxseShcclxuICAgICAgICBwb2k6IFBPSSxcclxuICAgICAgICBlbGVtZW50OiBUaWNrZXQgfCBGZWF0dXJlIHwgRXF1aXBtZW50IHwgQ29tbWVudCxcclxuICAgICkge1xyXG4gICAgICAgIGF3YWl0IHRoaXMuYWN0aW9uX2RlbGV0ZV9lbGVtZW50KGVsZW1lbnQpO1xyXG4gICAgICAgIGF3YWl0IHRoaXMuYWN0aW9uQWRkT2JqZWN0RnJvbVBPSShlbGVtZW50LCBwb2kpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAgIEN1cGl4XHJcbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcblxyXG4gICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICAgTWF0dGVycG9ydFxyXG4gICAgaHR0cHM6Ly9tYXR0ZXJwb3J0LmdpdGh1Yi5pby9zaG93Y2FzZS1zZGsvZG9jcy9zZGsvcmVmZXJlbmNlL2N1cnJlbnQvbW9kdWxlcy9tYXR0ZXJ0YWcuaHRtbCNhZGRcclxuICAgIGh0dHBzOi8vbWF0dGVycG9ydC5naXRodWIuaW8vc2hvd2Nhc2Utc2RrL2RvY3Mvc2RrL3JlZmVyZW5jZS9jdXJyZW50L21vZHVsZXMvbWF0dGVydGFnLmh0bWwjcmVtb3ZlXHJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuXHJcbiAgICBhc3luYyBpbml0TWF0dGVycG9ydFNkayhzcGFjZUlEOiBzdHJpbmcsIG1vZGVsM0Q6IHN0cmluZywgdGFnU2VydmljZTogQmFzZVRhZ1NlcnZpY2UsIGlzTXVzZXVtOiBib29sZWFuID0gZmFsc2UpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgICAgICB0aGlzLmlzTG9hZGVkID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5tYXR0ZXJwb3J0U2VydmljZS5jdXJyZW50U3BhY2VJRCA9IHNwYWNlSUQ7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubWF0dGVycG9ydFNlcnZpY2UuaW5pdFNkayh0YWdTZXJ2aWNlLCBpc011c2V1bSkudGhlbihhc3luYyAocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHsgc2RrIH0gPSB0aGlzLm1hdHRlcnBvcnRTZXJ2aWNlO1xyXG4gICAgICAgICAgICAgICAgc2RrLkFwcC5zdGF0ZS5zdWJzY3JpYmUoZnVuY3Rpb24gKGFwcFN0YXRlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gYXBwIHN0YXRlIGhhcyBjaGFuZ2VkXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ1RoZSBjdXJyZW50IHBoYXNlOiAnLCBhcHBTdGF0ZS5waGFzZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGFwcFN0YXRlLnBoYXNlID09PSBzZGsuQXBwLlBoYXNlLlBMQVlJTkcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ1RoZSBhcHAgaXMgcGxheWluZycpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNob3dpbmdWaWV3ZXIgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnZpZXdlcklzT24ubmV4dCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGFjZUlELFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZWwzRCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN3ZWVwOiB0aGlzLnN3ZWVwVG9Nb3ZlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcm90YXRpb246IHRoaXMucm90YXRpb25Ub01vdmUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGFJc0xvYWRlZC5uZXh0KHRydWUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zd2VlcFRvTW92ZSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucm90YXRpb25Ub01vdmUgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0uYmluZCh0aGlzKSk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVtb3ZlRm9yYmlkZGVuU3dlZXBzKGZvcmJpZGRlblN3ZWVwczogc3RyaW5nW10pIHtcclxuICAgICAgICBpZiAodGhpcy5jaGVja01vZGUoXCJNYXR0ZXJwb3J0XCIpKSB7XHJcbiAgICAgICAgICAgIHRoaXMubWF0dGVycG9ydFNlcnZpY2UucmVtb3ZlRm9yYmlkZGVuU3dlZXBzKGZvcmJpZGRlblN3ZWVwcyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1590,7 +1590,7 @@ class ViewerService {
|
|
|
1590
1590
|
// this.tourUrl = this.checkMode("Matterport")
|
|
1591
1591
|
// ? `https://my.matterport.com/show/?m=${model3d}&play=1&qs=1&hr=0>=0&title=0&log=0&brand=0&applicationKey=qn9wsasuy5h2fzrbrn1nzr0id&mds=0`
|
|
1592
1592
|
// : "http://cupixweework.s3-website.eu-west-3.amazonaws.com/";
|
|
1593
|
-
this.tourUrl = `https://my.matterport.com/show/?m=${model3d}&play=1&qs=1&
|
|
1593
|
+
this.tourUrl = `https://my.matterport.com/show/?m=${model3d}&play=1&qs=1>=0&title=0&log=0&brand=0&search=0&applicationKey=qn9wsasuy5h2fzrbrn1nzr0id&mds=0`;
|
|
1594
1594
|
if (!showIconPlan) {
|
|
1595
1595
|
this.tourUrl += "&fp=0";
|
|
1596
1596
|
}
|
|
@@ -9564,7 +9564,15 @@ class BookingService {
|
|
|
9564
9564
|
return author;
|
|
9565
9565
|
});
|
|
9566
9566
|
}
|
|
9567
|
-
}
|
|
9567
|
+
}
|
|
9568
|
+
BookingService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: BookingService, deps: [{ token: EventService }, { token: BaseUserService }, { token: MissionService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
9569
|
+
BookingService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: BookingService, providedIn: "root" });
|
|
9570
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: BookingService, decorators: [{
|
|
9571
|
+
type: Injectable,
|
|
9572
|
+
args: [{
|
|
9573
|
+
providedIn: "root",
|
|
9574
|
+
}]
|
|
9575
|
+
}], ctorParameters: function () { return [{ type: EventService }, { type: BaseUserService }, { type: MissionService }]; } });
|
|
9568
9576
|
|
|
9569
9577
|
class MeasurementService {
|
|
9570
9578
|
constructor(navigatorService, filterService, commentService, poiService, userService, navigationService) {
|