@sabstravtech/obtservices 0.0.22050309 → 0.0.26051001
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/angular/components/basket-panel.d.ts +1 -0
- package/angular/fetchers.d.ts +7 -0
- package/angular/lib/vendor/fetchers/get-cancellation-info.fetcher.d.ts +7 -0
- package/angular/lib/vendor/fetchers/get-companies.fetcher.d.ts +7 -0
- package/angular/lib/vendor/fetchers/get-company.fetcher.d.ts +7 -0
- package/angular/lib/vendor/fetchers/get-irl-supplier-station.fetcher.d.ts +7 -0
- package/angular/lib/vendor/fetchers/get-user-guests.fetcher.d.ts +7 -0
- package/angular/lib/vendor/services/enterprise-basket.service.d.ts +5 -3
- package/angular/lib/vendor/services/logon.service.d.ts +2 -1
- package/angular/lib/vendor/services/search.service.d.ts +4 -3
- package/angular/lib/vendor/services/ticket-queue.service.d.ts +6 -0
- package/angular/lib/vendor/services/user.service.d.ts +7 -3
- package/angular/lib/vendor/types/graphql.angular.types.d.ts +354 -90
- package/angular/lib/vendor/updaters/create-guest-updater.d.ts +6 -0
- package/angular/sabstravtech-obtservices-angular.d.ts +0 -1
- package/angular/sabstravtech-obtservices-angular.metadata.json +1 -1
- package/angular/services.d.ts +1 -0
- package/angular/updaters.d.ts +1 -0
- package/base/fetchers.d.ts +7 -0
- package/base/interfaces.d.ts +2 -0
- package/base/lib/vendor/classes/base-enterprise.d.ts +5 -1
- package/base/lib/vendor/classes/basket-info-mi-details.impl.d.ts +2 -0
- package/base/lib/vendor/classes/bookable-basket.d.ts +2 -0
- package/base/lib/vendor/classes/cabhire-enterprise-search.d.ts +6 -4
- package/base/lib/vendor/classes/carhire-enterprise-search.d.ts +5 -3
- package/base/lib/vendor/classes/eurostar-enterprise-search.d.ts +5 -4
- package/base/lib/vendor/classes/fast-track-enterprise-search.d.ts +18 -13
- package/base/lib/vendor/classes/flight-enterprise-search.d.ts +6 -5
- package/base/lib/vendor/classes/helpers.d.ts +6 -1
- package/base/lib/vendor/classes/hotel-enterprise-search.d.ts +8 -4
- package/base/lib/vendor/classes/irl-enterprise-search.d.ts +23 -9
- package/base/lib/vendor/classes/lounges-enterprise-search.d.ts +4 -3
- package/base/lib/vendor/classes/management-info-and-valid.d.ts +7 -2
- package/base/lib/vendor/classes/modal-types.enum.d.ts +2 -0
- package/base/lib/vendor/classes/parking-enterprise-search.d.ts +4 -3
- package/base/lib/vendor/classes/rail-enterprise-search.d.ts +10 -7
- package/base/lib/vendor/classes/supplementary-booking-info-impl.d.ts +5 -3
- package/base/lib/vendor/fetchers/fast-track-quote.fetcher.d.ts +1 -1
- package/base/lib/vendor/fetchers/get-cancellation-info.fetcher.d.ts +20 -0
- package/base/lib/vendor/fetchers/get-companies.fetcher.d.ts +21 -0
- package/base/lib/vendor/fetchers/get-company.fetcher.d.ts +20 -0
- package/base/lib/vendor/fetchers/get-irl-supplier-station.fetcher.d.ts +21 -0
- package/base/lib/vendor/fetchers/get-user-guests.fetcher.d.ts +20 -0
- package/base/lib/vendor/interfaces/Icabhire-enterprise-search.d.ts +2 -0
- package/base/lib/vendor/interfaces/Icarhire-enterprise-search.d.ts +4 -2
- package/base/lib/vendor/interfaces/Ienterprise-basket.service.d.ts +10 -6
- package/base/lib/vendor/interfaces/Ieurostar-enterprise-search.d.ts +2 -0
- package/base/lib/vendor/interfaces/Ifast-track-enterprise-search.d.ts +11 -5
- package/base/lib/vendor/interfaces/Iflight-enterprise-search.d.ts +3 -1
- package/base/lib/vendor/interfaces/Ihotel-enterprise-search.d.ts +7 -2
- package/base/lib/vendor/interfaces/Iirl-enterprise-search.d.ts +11 -5
- package/base/lib/vendor/interfaces/Ilounges-enterprise-search.d.ts +2 -0
- package/base/lib/vendor/interfaces/Iparking-enterprise-search.d.ts +2 -0
- package/base/lib/vendor/interfaces/Irail-enterprise-search.d.ts +6 -2
- package/base/lib/vendor/interfaces/Isearch.service.d.ts +4 -2
- package/base/lib/vendor/interfaces/Isupplementary-booking-info-impl.d.ts +3 -2
- package/base/lib/vendor/interfaces/Iuser.service.d.ts +3 -1
- package/base/lib/vendor/interfaces/car-hire-search-arg.interface.d.ts +2 -3
- package/base/lib/vendor/interfaces/fast-track-filters.interface.d.ts +4 -0
- package/base/lib/vendor/interfaces/rail-basket-item.interface.d.ts +2 -0
- package/base/lib/vendor/interfaces/summary-interface.d.ts +4 -0
- package/base/lib/vendor/interfaces/user.data.d.ts +1 -0
- package/base/lib/vendor/models/traveller.object.d.ts +1 -1
- package/base/lib/vendor/services/enterprise-basket.service.d.ts +28 -10
- package/base/lib/vendor/services/logon.service.d.ts +5 -1
- package/base/lib/vendor/services/requires-reason.service.d.ts +20 -0
- package/base/lib/vendor/services/search.service.d.ts +30 -25
- package/base/lib/vendor/services/url.service.d.ts +2 -0
- package/base/lib/vendor/services/user.service.d.ts +21 -5
- package/base/lib/vendor/services/webtoken.service.d.ts +5 -0
- package/base/lib/vendor/types/graphql.types.d.ts +326 -89
- package/base/lib/vendor/types/types.d.ts +44 -17
- package/base/lib/vendor/updaters/create-guest-updater.d.ts +19 -0
- package/base/sabstravtech-obtservices-base.d.ts +1 -1
- package/base/sabstravtech-obtservices-base.metadata.json +1 -1
- package/base/services.d.ts +1 -0
- package/base/updaters.d.ts +1 -0
- package/bundles/sabstravtech-obtservices-angular.umd.js +466 -180
- package/bundles/sabstravtech-obtservices-angular.umd.js.map +1 -1
- package/bundles/sabstravtech-obtservices-angular.umd.min.js +1 -1
- package/bundles/sabstravtech-obtservices-angular.umd.min.js.map +1 -1
- package/bundles/sabstravtech-obtservices-base.umd.js +4435 -1004
- package/bundles/sabstravtech-obtservices-base.umd.js.map +1 -1
- package/bundles/sabstravtech-obtservices-base.umd.min.js +2 -2
- package/bundles/sabstravtech-obtservices-base.umd.min.js.map +1 -1
- package/esm2015/angular/components/basket-panel.js +16 -7
- package/esm2015/angular/fetchers.js +8 -1
- package/esm2015/angular/lib/vendor/fetchers/get-cancellation-info.fetcher.js +25 -0
- package/esm2015/angular/lib/vendor/fetchers/get-companies.fetcher.js +25 -0
- package/esm2015/angular/lib/vendor/fetchers/get-company.fetcher.js +25 -0
- package/esm2015/angular/lib/vendor/fetchers/get-irl-supplier-station.fetcher.js +25 -0
- package/esm2015/angular/lib/vendor/fetchers/get-user-guests.fetcher.js +25 -0
- package/esm2015/angular/lib/vendor/services/enterprise-basket.service.js +11 -5
- package/esm2015/angular/lib/vendor/services/http-call.service.js +6 -2
- package/esm2015/angular/lib/vendor/services/logon.service.js +8 -5
- package/esm2015/angular/lib/vendor/services/search.service.js +28 -25
- package/esm2015/angular/lib/vendor/services/ticket-queue.service.js +23 -0
- package/esm2015/angular/lib/vendor/services/user.service.js +21 -9
- package/esm2015/angular/lib/vendor/services/webtoken.service.js +6 -2
- package/esm2015/angular/lib/vendor/types/graphql.angular.types.js +353 -72
- package/esm2015/angular/lib/vendor/updaters/create-guest-updater.js +22 -0
- package/esm2015/angular/obtservices.module.js +3 -1
- package/esm2015/angular/sabstravtech-obtservices-angular.js +1 -2
- package/esm2015/angular/services.js +2 -1
- package/esm2015/angular/updaters.js +2 -1
- package/esm2015/base/fetchers.js +8 -1
- package/esm2015/base/interfaces.js +3 -1
- package/esm2015/base/lib/vendor/classes/base-enterprise.js +8 -2
- package/esm2015/base/lib/vendor/classes/basket-info-mi-details.impl.js +17 -1
- package/esm2015/base/lib/vendor/classes/bookable-basket.js +27 -6
- package/esm2015/base/lib/vendor/classes/cabhire-enterprise-search.js +98 -11
- package/esm2015/base/lib/vendor/classes/carhire-enterprise-search.js +146 -68
- package/esm2015/base/lib/vendor/classes/eurostar-enterprise-search.js +140 -37
- package/esm2015/base/lib/vendor/classes/fast-track-enterprise-search.js +111 -23
- package/esm2015/base/lib/vendor/classes/flight-enterprise-search.js +218 -40
- package/esm2015/base/lib/vendor/classes/helpers.js +24 -4
- package/esm2015/base/lib/vendor/classes/hotel-enterprise-search.js +191 -48
- package/esm2015/base/lib/vendor/classes/irl-enterprise-search.js +271 -27
- package/esm2015/base/lib/vendor/classes/lounges-enterprise-search.js +59 -11
- package/esm2015/base/lib/vendor/classes/management-info-and-valid.js +13 -9
- package/esm2015/base/lib/vendor/classes/modal-types.enum.js +3 -1
- package/esm2015/base/lib/vendor/classes/parking-enterprise-search.js +63 -11
- package/esm2015/base/lib/vendor/classes/rail-enterprise-search.js +183 -23
- package/esm2015/base/lib/vendor/classes/supplementary-booking-info-impl.js +42 -4
- package/esm2015/base/lib/vendor/fetchers/fast-track-quote.fetcher.js +2 -2
- package/esm2015/base/lib/vendor/fetchers/get-cancellation-info.fetcher.js +10 -0
- package/esm2015/base/lib/vendor/fetchers/get-companies.fetcher.js +11 -0
- package/esm2015/base/lib/vendor/fetchers/get-company.fetcher.js +11 -0
- package/esm2015/base/lib/vendor/fetchers/get-irl-supplier-station.fetcher.js +11 -0
- package/esm2015/base/lib/vendor/fetchers/get-user-guests.fetcher.js +11 -0
- package/esm2015/base/lib/vendor/interfaces/Icabhire-enterprise-search.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/Icarhire-enterprise-search.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/Ienterprise-basket.service.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/Ieurostar-enterprise-search.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/Ifast-track-enterprise-search.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/Iflight-enterprise-search.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/Ihotel-enterprise-search.js +2 -1
- package/esm2015/base/lib/vendor/interfaces/Iirl-enterprise-search.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/Ilounges-enterprise-search.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/Iparking-enterprise-search.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/Irail-enterprise-search.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/Isearch.service.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/Isupplementary-booking-info-impl.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/Iuser.service.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/car-hire-search-arg.interface.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/fast-track-filters.interface.js +2 -0
- package/esm2015/base/lib/vendor/interfaces/rail-basket-item.interface.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/summary-interface.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/user.data.js +1 -1
- package/esm2015/base/lib/vendor/models/traveller.object.js +1 -1
- package/esm2015/base/lib/vendor/services/enterprise-basket.service.js +154 -45
- package/esm2015/base/lib/vendor/services/hotel-avallibility.service.js +16 -12
- package/esm2015/base/lib/vendor/services/http-call.service.js +1 -1
- package/esm2015/base/lib/vendor/services/logon.service.js +37 -3
- package/esm2015/base/lib/vendor/services/requires-reason.service.js +53 -0
- package/esm2015/base/lib/vendor/services/search.service.js +82 -101
- package/esm2015/base/lib/vendor/services/url.service.js +3 -1
- package/esm2015/base/lib/vendor/services/user.service.js +64 -9
- package/esm2015/base/lib/vendor/services/webtoken.service.js +16 -5
- package/esm2015/base/lib/vendor/types/graphql.types.js +15 -2
- package/esm2015/base/lib/vendor/types/types.js +1679 -21
- package/esm2015/base/lib/vendor/updaters/create-guest-updater.js +11 -0
- package/esm2015/base/sabstravtech-obtservices-base.js +1 -1
- package/esm2015/base/services.js +2 -1
- package/esm2015/base/updaters.js +2 -1
- package/fesm2015/sabstravtech-obtservices-angular.js +570 -148
- package/fesm2015/sabstravtech-obtservices-angular.js.map +1 -1
- package/fesm2015/sabstravtech-obtservices-base.js +3725 -466
- package/fesm2015/sabstravtech-obtservices-base.js.map +1 -1
- package/package.json +1 -1
|
@@ -38,16 +38,21 @@ export class BaseHotelAvalibilityService {
|
|
|
38
38
|
if ((_a = fullHotel === null || fullHotel === void 0 ? void 0 : fullHotel.availableRates) === null || _a === void 0 ? void 0 : _a.rooms) {
|
|
39
39
|
// add this data to the behaviours array and return it (if it dosen't already exist)
|
|
40
40
|
if (this.behaviours[hotel.hotel]) {
|
|
41
|
-
return
|
|
41
|
+
return this.behaviours[hotel.hotel];
|
|
42
42
|
}
|
|
43
43
|
else {
|
|
44
44
|
// add the data to the array
|
|
45
|
-
this.behaviours[hotel.hotel] =
|
|
45
|
+
this.behaviours[hotel.hotel] =
|
|
46
|
+
new BehaviorSubject(null);
|
|
46
47
|
const newBehaviourObject = fullHotel.availableRates;
|
|
47
|
-
newBehaviourObject.minprice = fullHotel.availableRates.rooms[0]
|
|
48
|
-
|
|
48
|
+
newBehaviourObject.minprice = fullHotel.availableRates.rooms[0]
|
|
49
|
+
? fullHotel.availableRates.rooms[0].total
|
|
50
|
+
: 0;
|
|
51
|
+
newBehaviourObject.maxprice = newBehaviourObject.minprice
|
|
52
|
+
? fullHotel.availableRates.rooms[fullHotel.availableRates.rooms.length - 1].total
|
|
53
|
+
: 0;
|
|
49
54
|
this.behaviours[hotel.hotel].next(newBehaviourObject);
|
|
50
|
-
return
|
|
55
|
+
return this.behaviours[hotel.hotel];
|
|
51
56
|
}
|
|
52
57
|
}
|
|
53
58
|
this.data = this.data || this.readFromSession();
|
|
@@ -67,11 +72,9 @@ export class BaseHotelAvalibilityService {
|
|
|
67
72
|
return hotel;
|
|
68
73
|
}
|
|
69
74
|
setHotelAvalability(hotel) {
|
|
70
|
-
if (
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
this.behaviours[hotel.availableRates.hotelId].next(hotel.availableRates);
|
|
74
|
-
}
|
|
75
|
+
if (hotel.availableRates && (hotel === null || hotel === void 0 ? void 0 : hotel.availableRates.hotelId)) {
|
|
76
|
+
this.data[hotel.availableRates.hotelId] = hotel.availableRates;
|
|
77
|
+
this.behaviours[hotel.availableRates.hotelId].next(hotel.availableRates);
|
|
75
78
|
}
|
|
76
79
|
return hotel;
|
|
77
80
|
}
|
|
@@ -173,7 +176,8 @@ export class BaseHotelAvalibilityService {
|
|
|
173
176
|
else {
|
|
174
177
|
this.fetching.next(false);
|
|
175
178
|
}
|
|
176
|
-
}, error => {
|
|
179
|
+
}, (error) => {
|
|
180
|
+
// might need to refine this
|
|
177
181
|
console.error(`+++ Error recovering hotel availabilty: ${error} - reseting availabilty +++`);
|
|
178
182
|
this.fetching.next(false);
|
|
179
183
|
return null;
|
|
@@ -201,4 +205,4 @@ export class BaseHotelAvalibilityService {
|
|
|
201
205
|
return count;
|
|
202
206
|
}
|
|
203
207
|
}
|
|
204
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG90ZWwtYXZhbGxpYmlsaXR5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vYnRzZXJ2aWNlcy9iYXNlL3NyYy9saWIvdmVuZG9yL3NlcnZpY2VzL2hvdGVsLWF2YWxsaWJpbGl0eS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBeUJ0QyxNQUFNLFlBQVksR0FBRyw0QkFBNEIsQ0FBQztBQUVsRCxNQUFNLE9BQU8sMkJBQTJCO0lBYXRDLFlBQ1Usa0JBQXVELEVBQ3ZELGNBQWtDLEVBQ2xDLE9BQTJCLEVBQzNCLFdBQTRCO1FBSDVCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBcUM7UUFDdkQsbUJBQWMsR0FBZCxjQUFjLENBQW9CO1FBQ2xDLFlBQU8sR0FBUCxPQUFPLENBQW9CO1FBQzNCLGdCQUFXLEdBQVgsV0FBVyxDQUFpQjtRQWQ5QixTQUFJLEdBQWUsSUFBSSxDQUFDO1FBQ3hCLGVBQVUsR0FFZCxFQUFFLENBQUM7UUFFQyxZQUFPLEdBQTRCLEVBQUUsQ0FBQztRQUN2QyxhQUFRLEdBQTZCLElBQUksZUFBZSxDQUM3RCxLQUFLLENBQ04sQ0FBQztRQUNGLGVBQVUsR0FBb0IsRUFBRSxDQUFDO0lBTTlCLENBQUM7SUFFSSxlQUFlO1FBQ3JCLE1BQU0sSUFBSSxHQUNSLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFhLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQXVCLEVBQUUsRUFBRTtZQUN0RCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLGVBQWUsQ0FD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USxFQUFFLE1BQU0sQ0FBQyxTQUFTO1lBQzFCLFFBQVEsRUFBRSxNQUFNLENBQUMsU0FBUztTQUMzQixDQUNGLENBQUMsUUFBUSxDQUFDO0lBQ2IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsdUJBQXVCO1FBQ3JCLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNiLEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDcEQsSUFBSSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsSUFBSSxFQUFFO29CQUNmLEtBQUssRUFBRSxDQUFDO2lCQUNUO2FBQ0Y7U0FDRjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEJhc2VFbnZpcm9ubWVudCB9IGZyb20gJy4uL2NsYXNzZXMvZW52aXJvbWVudCc7XHJcbmltcG9ydCB7IEJhc2VIZWxwZXJSb3V0aW5lcyB9IGZyb20gJy4uL2NsYXNzZXMvaGVscGVycyc7XHJcbmltcG9ydCB7XHJcbiAgQmFzZUhvdGVsQXZhbGliaWxpdHlRdW90ZUZldGNoZXIsXHJcbiAgSG90ZWxBdmFsaW5pbGl0eUZldGNoZXJUeXBlXHJcbn0gZnJvbSAnLi4vZmV0Y2hlcnMvaG90ZWwtYXZhbGlhYmlsaXR5LWZldGNoZXInO1xyXG5pbXBvcnQge1xyXG4gIEhvdGVsQXZhaWxhYmlsaXR5LFxyXG4gIEhvdGVsSXRpbmVyYXJ5LFxyXG4gIFF1ZXJ5R2V0TXVsdGlwbGVIb3RlbHNBdmFpbGFiaWxpdHlBcmdzXHJcbn0gZnJvbSAnLi4vdHlwZXMvZ3JhcGhxbC50eXBlcyc7XHJcbmltcG9ydCB7XHJcbiAgQ3VycmVuY3lEZXRhaWxzLFxyXG4gIEhvdGVsQXZhbGliaWxpdHlRdWVyeSxcclxuICBIb3RlbEF2YWxpYmlsaXR5UXVvdGVSZXN1bHQsXHJcbiAgSG90ZWxBdmFsaWJpbGl0eVF1b3RlUmVzdWx0QXJyYXksXHJcbiAgSG90ZWxEZXRhaWxzLFxyXG4gIEhvdGVsUm9vbVdpdGhMb2NhbFByaWNlXHJcbn0gZnJvbSAnLi4vdHlwZXMvdHlwZXMnO1xyXG5cclxuaW1wb3J0IHsgQmFzZVN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi9zdG9yYWdlLnNlcnZpY2UnO1xyXG5cclxudHlwZSBTdG9yZWREYXRhID0geyBba2V5OiBzdHJpbmddOiBIb3RlbEF2YWlsYWJpbGl0eSB9O1xyXG5cclxuY29uc3QgU0VTU0lPTl9OQU1FID0gJ3Jlc3VsdHNfaG90ZWxfYXZhbGxpYmlsaXR5JztcclxuXHJcbmV4cG9ydCBjbGFzcyBCYXNlSG90ZWxBdmFsaWJpbGl0eVNlcnZpY2U8XHJcbiAgUSBleHRlbmRzIEhvdGVsQXZhbGluaWxpdHlGZXRjaGVyVHlwZVxyXG4+IHtcclxuICBwcml2YXRlIGRhdGE6IFN0b3JlZERhdGEgPSBudWxsO1xyXG4gIHByaXZhdGUgYmVoYXZpb3Vyczoge1xyXG4gICAgW2tleTogc3RyaW5nXTogQmVoYXZpb3JTdWJqZWN0PEhvdGVsQXZhaWxhYmlsaXR5PjtcclxuICB9ID0ge307XHJcbiAgcHJpdmF0ZSB0aW1lb3V0OiBudW1iZXI7XHJcbiAgcHJpdmF0ZSB0b0ZldGNoOiBIb3RlbEF2YWxpYmlsaXR5UXVlcnlbXSA9IFtdO1xyXG4gIHB1YmxpYyBmZXRjaGluZzogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihcclxuICAgIGZhbHNlXHJcbiAgKTtcclxuICBjdXJyZW5jaWVzOiBDdXJyZW5jeURldGFpbHMgPSB7fTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgYXZhbGliaWxpdHlGZXRoY2VyOiBCYXNlSG90ZWxBdmFsaWJpbGl0eVF1b3RlRmV0Y2hlcjxRPixcclxuICAgIHByaXZhdGUgc2Vzc2lvblN0b3JhZ2U6IEJhc2VTdG9yYWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgaGVscGVyczogQmFzZUhlbHBlclJvdXRpbmVzLFxyXG4gICAgcHJpdmF0ZSBlbnZpcm9ubWVudDogQmFzZUVudmlyb25tZW50LFxyXG4gICkge31cclxuXHJcbiAgcHJpdmF0ZSByZWFkRnJvbVNlc3Npb24oKSB7XHJcbiAgICBjb25zdCBkYXRhID1cclxuICAgICAgdGhpcy5zZXNzaW9uU3RvcmFnZS5nZXRTZXNzaW9uSXRlbTxTdG9yZWREYXRhPihTRVNTSU9OX05BTUUpIHx8IHt9O1xyXG4gICAgT2JqZWN0LnZhbHVlcyhkYXRhKS5mb3JFYWNoKChpdGVtOiBIb3RlbEF2YWlsYWJpbGl0eSkgPT4ge1xyXG4gICAgICB0aGlzLmJlaGF2aW91cnNbaXRlbS5ob3RlbElkXSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SG90ZWxBdmFpbGFiaWxpdHk+KFxyXG4gICAgICAgIGl0ZW1cclxuICAgICAgKTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGRhdGE7XHJcbiAgfVxyXG5cclxuICByZXNldCgpIHtcclxuICAgIHRoaXMuZGF0YSA9IHt9O1xyXG4gICAgdGhpcy5jdXJyZW5jaWVzID0ge307XHJcbiAgICB0aGlzLnRvRmV0Y2ggPSBbXTtcclxuICAgIHRoaXMuZmV0Y2hpbmcubmV4dChmYWxzZSk7XHJcbiAgICB0aGlzLnNlc3Npb25TdG9yYWdlLnJlbW92ZVNlc3Npb25JdGVtKFNFU1NJT05fTkFNRSk7XHJcbiAgICBPYmplY3QudmFsdWVzKHRoaXMuZGF0YSkuZm9yRWFjaCgoaXRlbTogSG90ZWxBdmFsaWJpbGl0eVF1b3RlUmVzdWx0KSA9PiB7XHJcbiAgICAgIHRoaXMuYmVoYXZpb3Vyc1tpdGVtLmhvdGVsSWRdLmNvbXBsZXRlKCk7XHJcbiAgICAgIGRlbGV0ZSB0aGlzLmJlaGF2aW91cnNbaXRlbS5ob3RlbElkXTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5iZWhhdmlvdXJzID0ge307XHJcbiAgfVxyXG5cclxuICBnZXRBdmFpbGFiaWxpdHlGb3JJZChcclxuICAgIGhvdGVsOiBIb3RlbEF2YWxpYmlsaXR5UXVlcnksXHJcbiAgICBmdWxsSG90ZWw/OiBIb3RlbEl0aW5lcmFyeVxyXG4gICk6IEJlaGF2aW9yU3ViamVjdDxIb3RlbEF2YWxpYmlsaXR5UXVvdGVSZXN1bHQ+IHtcclxuICAgIC8vIGNvbnNvbGUubG9nKCcrKysgRmV0Y2hpbmcgd2l0aCBmdWxsIGhvdGVsIGRhdGE6ICcsIGZ1bGxIb3RlbCwgJyArKysnKTtcclxuXHJcbiAgICBpZiAoZnVsbEhvdGVsPy5hdmFpbGFibGVSYXRlcz8ucm9vbXMpIHtcclxuICAgICAgLy8gYWRkIHRoaXMgZGF0YSB0byB0aGUgYmVoYXZpb3VycyBhcnJheSBhbmQgcmV0dXJuIGl0IChpZiBpdCBkb3Nlbid0IGFscmVhZHkgZXhpc3QpXHJcblxyXG4gICAgICBpZiAodGhpcy5iZWhhdmlvdXJzW2hvdGVsLmhvdGVsIGFzIHN0cmluZ10pIHtcclxuICAgICAgICByZXR1cm4gKHRoaXMuYmVoYXZpb3Vyc1tob3RlbC5ob3RlbCBhcyBzdHJpbmddKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvLyBhZGQgdGhlIGRhdGEgdG8gdGhlIGFycmF5XHJcbiAgICAgICAgdGhpcy5iZWhhdmlvdXJzW2hvdGVsLmhvdGVsIGFzIHN0cmluZ10gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEhvdGVsQXZhbGliaWxpdHlRdW90ZVJlc3VsdD4obnVsbCk7XHJcblxyXG4gICAgICAgIGNvbnN0IG5ld0JlaGF2aW91ck9iamVjdDogSG90ZWxBdmFsaWJpbGl0eVF1b3RlUmVzdWx0ID0gZnVsbEhvdGVsLmF2YWlsYWJsZVJhdGVzO1xyXG4gICAgICAgIG5ld0JlaGF2aW91ck9iamVjdC5taW5wcmljZSA9IGZ1bGxIb3RlbC5hdmFpbGFibGVSYXRlcy5yb29tc1swXSA/ICBmdWxsSG90ZWwuYXZhaWxhYmxlUmF0ZXMucm9vbXNbMF0udG90YWwgOiAgMDtcclxuICAgICAgICBuZXdCZWhhdmlvdXJPYmplY3QubWF4cHJpY2UgPSBuZXdCZWhhdmlvdXJPYmplY3QubWlucHJpY2UgPyAgZnVsbEhvdGVsLmF2YWlsYWJsZVJhdGVzLnJvb21zW2Z1bGxIb3RlbC5hdmFpbGFibGVSYXRlcy5yb29tcy5sZW5ndGggLSAxXS50b3RhbCA6ICAwO1xyXG4gICAgICAgIHRoaXMuYmVoYXZpb3Vyc1tob3RlbC5ob3RlbCBhcyBzdHJpbmddLm5leHQobmV3QmVoYXZpb3VyT2JqZWN0KTtcclxuICAgICAgICByZXR1cm4gKHRoaXMuYmVoYXZpb3Vyc1tob3RlbC5ob3RlbCBhcyBzdHJpbmddKTtcclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmRhdGEgPSB0aGlzLmRhdGEgfHwgdGhpcy5yZWFkRnJvbVNlc3Npb24oKTtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIHRoaXMuYmVoYXZpb3Vyc1tob3RlbC5ob3RlbCBhcyBzdHJpbmddIHx8XHJcbiAgICAgIHRoaXMuX2dldEF2YWlsYWJpbGl0eUZvcklkKGhvdGVsKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEF2YWlsYWJpbGl0eVZhbHVlKGhvdGVsOiBIb3RlbERldGFpbHMpOiBIb3RlbEF2YWxpYmlsaXR5UXVvdGVSZXN1bHQge1xyXG4gICAgdGhpcy5kYXRhID0gdGhpcy5kYXRhIHx8IHRoaXMucmVhZEZyb21TZXNzaW9uKCk7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICB0aGlzLmJlaGF2aW91cnNbaG90ZWwuaWQgYXMgc3RyaW5nXT8udmFsdWUgfHxcclxuICAgICAgKHt9IGFzIEhvdGVsQXZhbGliaWxpdHlRdW90ZVJlc3VsdClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVIb3RlbChob3RlbDogSG90ZWxEZXRhaWxzKTogSG90ZWxEZXRhaWxzIHtcclxuICAgIGlmICghaG90ZWwuYXZhaWxhYmxlUmF0ZXMpIHtcclxuICAgICAgaG90ZWwuYXZhaWxhYmxlUmF0ZXMgPSB0aGlzLmdldEF2YWlsYWJpbGl0eVZhbHVlKGhvdGVsKTtcclxuICAgIH1cclxuICAgIHJldHVybiBob3RlbDtcclxuICB9XHJcblxyXG4gIHNldEhvdGVsQXZhbGFiaWxpdHkoaG90ZWw6IEhvdGVsRGV0YWlscyk6IEhvdGVsRGV0YWlscyB7XHJcbiAgICBpZiAoIWhvdGVsLmF2YWlsYWJsZVJhdGVzKSB7XHJcbiAgICAgIGlmIChob3RlbD8uYXZhaWxhYmxlUmF0ZXMuaG90ZWxJZCkge1xyXG4gICAgICAgIHRoaXMuZGF0YVtob3RlbC5hdmFpbGFibGVSYXRlcy5ob3RlbElkXSA9IGhvdGVsLmF2YWlsYWJsZVJhdGVzO1xyXG4gICAgICAgIHRoaXMuYmVoYXZpb3Vyc1tob3RlbC5hdmFpbGFibGVSYXRlcy5ob3RlbElkXS5uZXh0KFxyXG4gICAgICAgICAgaG90ZWwuYXZhaWxhYmxlUmF0ZXNcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaG90ZWw7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9nZXRBdmFpbGFiaWxpdHlGb3JJZChcclxuICAgIGhvdGVsOiBIb3RlbEF2YWxpYmlsaXR5UXVlcnlcclxuICApOiBCZWhhdmlvclN1YmplY3Q8SG90ZWxBdmFsaWJpbGl0eVF1b3RlUmVzdWx0PiB7XHJcbiAgICAvLyBjb25zb2xlLmxvZygnKysrIEZldGNoaW5nIGF2YWlsYWJpbHR5IGZvcjogJywgaG90ZWwsICcgKysrJyk7XHJcbiAgICBpZiAodGhpcy50aW1lb3V0KSB7XHJcbiAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy50aW1lb3V0KTtcclxuICAgICAgdGhpcy50aW1lb3V0ID0gMDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXRoaXMuZmV0Y2hpbmcudmFsdWUpIHtcclxuICAgICAgdGhpcy50aW1lb3V0ID0gd2luZG93LnNldFRpbWVvdXQoXHJcbiAgICAgICAgdGhpcy5mZXRjaEF2YWxpbGJpbGl0eS5iaW5kKHRoaXMpLFxyXG4gICAgICAgIHRoaXMuZW52aXJvbm1lbnQuYXV0b0ZldGNoSG90ZWxUaW1lb3V0XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnRvRmV0Y2gucHVzaChob3RlbCk7XHJcbiAgICBpZiAoXHJcbiAgICAgICF0aGlzLmZldGNoaW5nLnZhbHVlICYmXHJcbiAgICAgIHRoaXMudG9GZXRjaC5sZW5ndGggPj0gdGhpcy5lbnZpcm9ubWVudC5udW1iZXJPZkhvdGVsc1RvRmV0Y2hcclxuICAgICkge1xyXG4gICAgICB0aGlzLmZldGNoQXZhbGlsYmlsaXR5KCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmJlaGF2aW91cnNbaG90ZWwuaG90ZWwgYXMgc3RyaW5nXSA9XHJcbiAgICAgIG5ldyBCZWhhdmlvclN1YmplY3Q8SG90ZWxBdmFsaWJpbGl0eVF1b3RlUmVzdWx0PihudWxsKTtcclxuICAgIHJldHVybiB0aGlzLmJlaGF2aW91cnNbaG90ZWwuaG90ZWwgYXMgc3RyaW5nXTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZmV0Y2hBdmFsaWxiaWxpdHkoKSB7XHJcbiAgICB0aGlzLmZldGNoaW5nLm5leHQodHJ1ZSk7XHJcbiAgICBpZiAodGhpcy50aW1lb3V0KSB7XHJcbiAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy50aW1lb3V0KTtcclxuICAgICAgdGhpcy50aW1lb3V0ID0gMDtcclxuICAgIH1cclxuICAgIGNvbnN0IHRvRmV0Y2ggPSB0aGlzLnRvRmV0Y2guc2xpY2UoXHJcbiAgICAgIDAsXHJcbiAgICAgIHRoaXMuZW52aXJvbm1lbnQubnVtYmVyT2ZIb3RlbHNUb0ZldGNoXHJcbiAgICApO1xyXG4gICAgdGhpcy50b0ZldGNoID0gdGhpcy50b0ZldGNoLnNsaWNlKHRoaXMuZW52aXJvbm1lbnQubnVtYmVyT2ZIb3RlbHNUb0ZldGNoKTtcclxuXHJcbiAgICBjb25zb2xlLmxvZygnSG90ZWxzIHN0aWxsIHRvIGZldGNoJywgdGhpcy50b0ZldGNoLmxlbmd0aCk7XHJcblxyXG4gICAgY29uc3QgcXVlcnk6IFF1ZXJ5R2V0TXVsdGlwbGVIb3RlbHNBdmFpbGFiaWxpdHlBcmdzID0ge1xyXG4gICAgICBob3RlbDogdG9GZXRjaC5tYXAoKGhvdGVsKSA9PiBob3RlbC5ob3RlbCkgYXMgc3RyaW5nW10sXHJcbiAgICAgIGN1cnJlbmN5OiB0b0ZldGNoWzBdLmN1cnJlbmN5LFxyXG4gICAgICBlbmREYXRlOiB0b0ZldGNoWzBdLmVuZERhdGUsXHJcbiAgICAgIHN0YXJ0RGF0ZTogdG9GZXRjaFswXS5zdGFydERhdGUsXHJcbiAgICAgIG9jY3VwYW50czogdG9GZXRjaFswXS5vY2N1cGFudHMsXHJcbiAgICAgIHJvb21zOiB0b0ZldGNoWzBdLnJvb21zXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMuYXZhbGliaWxpdHlGZXRoY2VyXHJcbiAgICAgIC5mZXRjaExpc3QocXVlcnkpXHJcbiAgICAgIC5waXBlKHRha2UoMSkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKGhvdGVsczogSG90ZWxBdmFsaWJpbGl0eVF1b3RlUmVzdWx0QXJyYXkpID0+IHtcclxuICAgICAgICBob3RlbHMuZm9yRWFjaCgoaG90ZWw6IEhvdGVsQXZhbGliaWxpdHlRdW90ZVJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgaG90ZWwgPSB0aGlzLmhlbHBlcnMuY2xvbmUoaG90ZWwpO1xyXG4gICAgICAgICAgaG90ZWwucm9vbXMgPSAoaG90ZWwucm9vbXMgfHwgW10pXHJcbiAgICAgICAgICAgIC5maWx0ZXIoKHJvb206IEhvdGVsUm9vbVdpdGhMb2NhbFByaWNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHJvb20udG90YWwgPiAwO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAubWFwKChyb29tOiBIb3RlbFJvb21XaXRoTG9jYWxQcmljZSkgPT4ge1xyXG4gICAgICAgICAgICAgIHJvb20gPSB0aGlzLmhlbHBlcnMuY2xvbmU8SG90ZWxSb29tV2l0aExvY2FsUHJpY2U+KHJvb20pO1xyXG4gICAgICAgICAgICAgIHJvb20uTG9jYWxQcmljZSA9IHJvb20uY3VycmVuY3lDb252ZXJzaW9uXHJcbiAgICAgICAgICAgICAgICA/IHJvb20uY3VycmVuY3lDb252ZXJzaW9uLmxvY2FsVG90YWxcclxuICAgICAgICAgICAgICAgIDogcm9vbS50b3RhbDtcclxuICAgICAgICAgICAgICByb29tLkxvY2FsQ3VycmVuY3kgPSByb29tLmN1cnJlbmN5Q29udmVyc2lvblxyXG4gICAgICAgICAgICAgICAgPyByb29tLmN1cnJlbmN5Q29udmVyc2lvbi5sb2NhbENvZGVcclxuICAgICAgICAgICAgICAgIDogcm9vbS5jdXJyZW5jeUNvZGU7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHJvb207XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgaG90ZWwuY3VycmVuY2llcyA9IGhvdGVsLnJvb21zLnJlZHVjZShcclxuICAgICAgICAgICAgKGRldGFpbHM6IEN1cnJlbmN5RGV0YWlscywgcm9vbTogSG90ZWxSb29tV2l0aExvY2FsUHJpY2UpID0+IHtcclxuICAgICAgICAgICAgICBpZiAocm9vbS5jdXJyZW5jeUNvbnZlcnNpb24pIHtcclxuICAgICAgICAgICAgICAgIGRldGFpbHNbcm9vbS5jdXJyZW5jeUNvbnZlcnNpb24uY29udmVydGVkQ29kZV0gPSBkZXRhaWxzW1xyXG4gICAgICAgICAgICAgICAgICByb29tLmN1cnJlbmN5Q29udmVyc2lvbi5jb252ZXJ0ZWRDb2RlXHJcbiAgICAgICAgICAgICAgICBdIHx8IHtcclxuICAgICAgICAgICAgICAgICAgbWF4cHJpY2U6IE51bWJlci5NSU5fVkFMVUUsXHJcbiAgICAgICAgICAgICAgICAgIG1pbnByaWNlOiBOdW1iZXIuTUFYX1ZBTFVFXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgZGV0YWlsc1tyb29tLmN1cnJlbmN5Q29udmVyc2lvbi5jb252ZXJ0ZWRDb2RlXS5tYXhwcmljZSA9XHJcbiAgICAgICAgICAgICAgICAgIE1hdGgubWF4KFxyXG4gICAgICAgICAgICAgICAgICAgIGRldGFpbHNbcm9vbS5jdXJyZW5jeUNvbnZlcnNpb24uY29udmVydGVkQ29kZV0ubWF4cHJpY2UsXHJcbiAgICAgICAgICAgICAgICAgICAgcm9vbS5jdXJyZW5jeUNvbnZlcnNpb24uY29udmVydGVkVG90YWxcclxuICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIGRldGFpbHNbcm9vbS5jdXJyZW5jeUNvbnZlcnNpb24uY29udmVydGVkQ29kZV0ubWlucHJpY2UgPVxyXG4gICAgICAgICAgICAgICAgICBNYXRoLm1pbihcclxuICAgICAgICAgICAgICAgICAgICBkZXRhaWxzW3Jvb20uY3VycmVuY3lDb252ZXJzaW9uLmNvbnZlcnRlZENvZGVdLm1pbnByaWNlLFxyXG4gICAgICAgICAgICAgICAgICAgIHJvb20uY3VycmVuY3lDb252ZXJzaW9uLmNvbnZlcnRlZFRvdGFsXHJcbiAgICAgICAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW5jaWVzW3Jvb20uY3VycmVuY3lDb252ZXJzaW9uLmNvbnZlcnRlZENvZGVdID0gdGhpc1xyXG4gICAgICAgICAgICAgICAgICAuY3VycmVuY2llc1tyb29tLmN1cnJlbmN5Q29udmVyc2lvbi5jb252ZXJ0ZWRDb2RlXSB8fCB7XHJcbiAgICAgICAgICAgICAgICAgIG1heHByaWNlOiBOdW1iZXIuTUlOX1ZBTFVFLFxyXG4gICAgICAgICAgICAgICAgICBtaW5wcmljZTogTnVtYmVyLk1BWF9WQUxVRVxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVuY2llc1tcclxuICAgICAgICAgICAgICAgICAgcm9vbS5jdXJyZW5jeUNvbnZlcnNpb24uY29udmVydGVkQ29kZVxyXG4gICAgICAgICAgICAgICAgXS5taW5wcmljZSA9IE1hdGguY2VpbChcclxuICAgICAgICAgICAgICAgICAgTWF0aC5taW4oXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW5jaWVzW3Jvb20uY3VycmVuY3lDb252ZXJzaW9uLmNvbnZlcnRlZENvZGVdXHJcbiAgICAgICAgICAgICAgICAgICAgICAubWlucHJpY2UsXHJcbiAgICAgICAgICAgICAgICAgICAgcm9vbS5jdXJyZW5jeUNvbnZlcnNpb24uY29udmVydGVkVG90YWxcclxuICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVuY2llc1tcclxuICAgICAgICAgICAgICAgICAgcm9vbS5jdXJyZW5jeUNvbnZlcnNpb24uY29udmVydGVkQ29kZVxyXG4gICAgICAgICAgICAgICAgXS5tYXhwcmljZSA9IE1hdGguY2VpbChcclxuICAgICAgICAgICAgICAgICAgTWF0aC5tYXgoXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW5jaWVzW3Jvb20uY3VycmVuY3lDb252ZXJzaW9uLmNvbnZlcnRlZENvZGVdXHJcbiAgICAgICAgICAgICAgICAgICAgICAubWF4cHJpY2UsXHJcbiAgICAgICAgICAgICAgICAgICAgcm9vbS5jdXJyZW5jeUNvbnZlcnNpb24uY29udmVydGVkVG90YWxcclxuICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGRldGFpbHM7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHt9IGFzIEN1cnJlbmN5RGV0YWlsc1xyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIGNvbnN0IHJvb21QcmljZXMgPSBob3RlbC5yb29tcy5tYXAoXHJcbiAgICAgICAgICAgIHRoaXMuaGVscGVycy5tYXBGaWVsZEZyb21PYmplY3Q8c3RyaW5nLCBudW1iZXI+KCd0b3RhbCcpXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgaWYgKCFyb29tUHJpY2VzLmxlbmd0aCkgcm9vbVByaWNlcy5wdXNoKDApO1xyXG4gICAgICAgICAgaG90ZWwubWlucHJpY2UgPSBNYXRoLm1pbiguLi5yb29tUHJpY2VzKTtcclxuICAgICAgICAgIGhvdGVsLm1heHByaWNlID0gTWF0aC5tYXgoLi4ucm9vbVByaWNlcyk7XHJcblxyXG4gICAgICAgICAgaG90ZWwucm9vbXMgPSBob3RlbC5yb29tcztcclxuICAgICAgICAgIGlmIChob3RlbD8uaG90ZWxJZCAmJiB0aGlzLmJlaGF2aW91cnNbaG90ZWwuaG90ZWxJZF0pIHtcclxuICAgICAgICAgICAgdGhpcy5kYXRhW2hvdGVsLmhvdGVsSWRdID0gaG90ZWw7XHJcbiAgICAgICAgICAgIHRoaXMuYmVoYXZpb3Vyc1tob3RlbC5ob3RlbElkXS5uZXh0KGhvdGVsKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgLy8gdGhpcy5zZXNzaW9uU3RvcmFnZS5zZXRTZXNzaW9uSXRlbShTRVNTSU9OX05BTUUsIHRoaXMuZGF0YSk7XHJcbiAgICAgICAgdGhpcy5zZXNzaW9uU3RvcmFnZS5zZXRTZXNzaW9uSXRlbShTRVNTSU9OX05BTUUsIGhvdGVscyk7XHJcbiAgICAgICAgaWYgKHRoaXMudG9GZXRjaC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5mZXRjaEF2YWxpbGJpbGl0eSgpO1xyXG4gICAgICAgICAgfSwgdGhpcy5lbnZpcm9ubWVudC5ob3RlbEF2YWxpYmlsaXR5VGltZW91dCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuZmV0Y2hpbmcubmV4dChmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LCBlcnJvciA9PiB7IC8vIG1pZ2h0IG5lZWQgdG8gcmVmaW5lIHRoaXNcclxuICAgICAgICBjb25zb2xlLmVycm9yKGArKysgRXJyb3IgcmVjb3ZlcmluZyBob3RlbCBhdmFpbGFiaWx0eTogJHtlcnJvcn0gLSByZXNldGluZyBhdmFpbGFiaWx0eSArKytgKTtcclxuICAgICAgICB0aGlzLmZldGNoaW5nLm5leHQoZmFsc2UpO1xyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIC8vIHRoaXMucmVzZXQoKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBtYXhQcmljZUZvckN1cnJlbmN5KGN1cnJlbmN5OiBzdHJpbmcpIHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIHRoaXMuY3VycmVuY2llc1tjdXJyZW5jeV0gfHwge1xyXG4gICAgICAgIG1heHByaWNlOiBOdW1iZXIuTUFYX1ZBTFVFLFxyXG4gICAgICAgIG1pbnByaWNlOiBOdW1iZXIuTUlOX1ZBTFVFXHJcbiAgICAgIH1cclxuICAgICkubWF4cHJpY2U7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAZGVzY3JpcHRpb24gLSByZXR1cm4gdGhlIG51bWJlciBvZiBob3RlbHMgdGhhdCBoYXZlIGEgcHJpY2UgKHBycG4gdmFsdWUpXHJcbiAgICovXHJcbiAgbnVtYmVyT2ZIb3RlbHNXaXRoUHJpY2UoKTogbnVtYmVyIHtcclxuICAgIGxldCBjb3VudCA9IDA7XHJcbiAgICBpZiAodGhpcy5kYXRhKSB7XHJcbiAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMuZGF0YSkpIHtcclxuICAgICAgICBpZiAodmFsdWU/LnBycG4pIHtcclxuICAgICAgICAgIGNvdW50Kys7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY291bnQ7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
|
|
208
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG90ZWwtYXZhbGxpYmlsaXR5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vYnRzZXJ2aWNlcy9iYXNlL3NyYy9saWIvdmVuZG9yL3NlcnZpY2VzL2hvdGVsLWF2YWxsaWJpbGl0eS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBeUJ0QyxNQUFNLFlBQVksR0FBRyw0QkFBNEIsQ0FBQztBQUVsRCxNQUFNLE9BQU8sMkJBQTJCO0lBYXRDLFlBQ1Usa0JBQXVELEVBQ3ZELGNBQWtDLEVBQ2xDLE9BQTJCLEVBQzNCLFdBQTRCO1FBSDVCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBcUM7UUFDdkQsbUJBQWMsR0FBZCxjQUFjLENBQW9CO1FBQ2xDLFlBQU8sR0FBUCxPQUFPLENBQW9CO1FBQzNCLGdCQUFXLEdBQVgsV0FBVyxDQUFpQjtRQWQ5QixTQUFJLEdBQWUsSUFBSSxDQUFDO1FBQ3hCLGVBQVUsR0FFZCxFQUFFLENBQUM7UUFFQyxZQUFPLEdBQTRCLEVBQUUsQ0FBQztRQUN2QyxhQUFRLEdBQTZCLElBQUksZUFBZSxDQUM3RCxLQUFLLENBQ04sQ0FBQztRQUNGLGVBQVUsR0FBb0IsRUFBRSxDQUFDO0lBTTlCLENBQUM7SUFFSSxlQUFlO1FBQ3JCLE1BQU0sSUFBSSxHQUNSLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFhLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQXVCLEVBQUUsRUFBRTtZQUN0RCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLGVBQWUsQ0FDakQsSUFBSSxDQUNMLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxjQUFjLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDcEQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBaUMsRUFBRSxFQUFFO1lBQ3JFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3pDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkMsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsb0JBQW9CLENBQ2xCLEtBQTRCLEVBQzVCLFNBQTBCO1FBRTFCLHlFQUF5RTs7UUFFekUsVUFBSSxTQUFTLGFBQVQsU0FBUyx1QkFBVCxTQUFTLENBQUUsY0FBYywwQ0FBRSxLQUFLLEVBQUU7WUFDcEMsb0ZBQW9GO1lBRXBGLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsS0FBZSxDQUFDLEVBQUU7Z0JBQzFDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsS0FBZSxDQUFDLENBQUM7YUFDL0M7aUJBQU07Z0JBQ0wsNEJBQTRCO2dCQUM1QixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxLQUFlLENBQUM7b0JBQ3BDLElBQUksZUFBZSxDQUE4QixJQUFJLENBQUMsQ0FBQztnQkFFekQsTUFBTSxrQkFBa0IsR0FDdEIsU0FBUyxDQUFDLGNBQWMsQ0FBQztnQkFDM0Isa0JBQWtCLENBQUMsUUFBUSxHQUFHLFNBQVMsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztvQkFDN0QsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7b0JBQ3pDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ04sa0JBQWtCLENBQUMsUUFBUSxHQUFHLGtCQUFrQixDQUFDLFFBQVE7b0JBQ3ZELENBQUMsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FDNUIsU0FBUyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FDMUMsQ0FBQyxLQUFLO29CQUNULENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ04sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsS0FBZSxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7Z0JBQ2hFLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsS0FBZSxDQUFDLENBQUM7YUFDL0M7U0FDRjtRQUVELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDaEQsT0FBTyxDQUNMLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEtBQWUsQ0FBQztZQUN0QyxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQ2xDLENBQUM7SUFDSixDQUFDO0lBRUQsb0JBQW9CLENBQUMsS0FBbUI7O1FBQ3RDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDaEQsT0FBTyxDQUNMLE9BQUEsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBWSxDQUFDLDBDQUFFLEtBQUs7WUFDekMsRUFBa0MsQ0FDcEMsQ0FBQztJQUNKLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBbUI7UUFDN0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUU7WUFDekIsS0FBSyxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDekQ7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxLQUFtQjtRQUNyQyxJQUFJLEtBQUssQ0FBQyxjQUFjLEtBQUksS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLGNBQWMsQ0FBQyxPQUFPLENBQUEsRUFBRTtZQUN6RCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEdBQUcsS0FBSyxDQUFDLGNBQWMsQ0FBQztZQUMvRCxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUMxRTtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVPLHFCQUFxQixDQUMzQixLQUE0QjtRQUU1QixnRUFBZ0U7UUFDaEUsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hCLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO1NBQ2xCO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FDOUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFDakMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsQ0FDdkMsQ0FBQztTQUNIO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekIsSUFDRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSztZQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixFQUM3RDtZQUNBLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1NBQzFCO1FBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsS0FBZSxDQUFDO1lBQ3BDLElBQUksZUFBZSxDQUE4QixJQUFJLENBQUMsQ0FBQztRQUN6RCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEtBQWUsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFTyxpQkFBaUI7UUFDdkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hCLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO1NBQ2xCO1FBQ0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQ2hDLENBQUMsRUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixDQUN2QyxDQUFDO1FBQ0YsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFFMUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTFELE1BQU0sS0FBSyxHQUEyQztZQUNwRCxLQUFLLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBYTtZQUN0RCxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVE7WUFDN0IsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPO1lBQzNCLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztZQUMvQixTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDL0IsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO1NBQ3hCLENBQUM7UUFFRixJQUFJLENBQUMsa0JBQWtCO2FBQ3BCLFNBQVMsQ0FBQyxLQUFLLENBQUM7YUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNiLFNBQVMsQ0FDUixDQUFDLE1BQXdDLEVBQUUsRUFBRTtZQUMzQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBa0MsRUFBRSxFQUFFO2dCQUNwRCxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ2xDLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztxQkFDOUIsTUFBTSxDQUFDLENBQUMsSUFBNkIsRUFBRSxFQUFFO29CQUN4QyxPQUFPLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO2dCQUN4QixDQUFDLENBQUM7cUJBQ0QsR0FBRyxDQUFDLENBQUMsSUFBNkIsRUFBRSxFQUFFO29CQUNyQyxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQTBCLElBQUksQ0FBQyxDQUFDO29CQUN6RCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxrQkFBa0I7d0JBQ3ZDLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVTt3QkFDcEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7b0JBQ2YsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsa0JBQWtCO3dCQUMxQyxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVM7d0JBQ25DLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO29CQUN0QixPQUFPLElBQUksQ0FBQztnQkFDZCxDQUFDLENBQUMsQ0FBQztnQkFDTCxLQUFLLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUNuQyxDQUFDLE9BQXdCLEVBQUUsSUFBNkIsRUFBRSxFQUFFO29CQUMxRCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRTt3QkFDM0IsT0FBTyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsR0FBRyxPQUFPLENBQ3RELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQ3RDLElBQUk7NEJBQ0gsUUFBUSxFQUFFLE1BQU0sQ0FBQyxTQUFTOzRCQUMxQixRQUFRLEVBQUUsTUFBTSxDQUFDLFNBQVM7eUJBQzNCLENBQUM7d0JBQ0YsT0FBTyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsQ0FBQyxRQUFROzRCQUNyRCxJQUFJLENBQUMsR0FBRyxDQUNOLE9BQU8sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxDQUFDLENBQUMsUUFBUSxFQUN2RCxJQUFJLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUN2QyxDQUFDO3dCQUNKLE9BQU8sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxDQUFDLENBQUMsUUFBUTs0QkFDckQsSUFBSSxDQUFDLEdBQUcsQ0FDTixPQUFPLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxDQUFDLFFBQVEsRUFDdkQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FDdkMsQ0FBQzt3QkFFSixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsR0FBRyxJQUFJOzZCQUMxRCxVQUFVLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxJQUFJOzRCQUN0RCxRQUFRLEVBQUUsTUFBTSxDQUFDLFNBQVM7NEJBQzFCLFFBQVEsRUFBRSxNQUFNLENBQUMsU0FBUzt5QkFDM0IsQ0FBQzt3QkFDRixJQUFJLENBQUMsVUFBVSxDQUNiLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQ3RDLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQ3BCLElBQUksQ0FBQyxHQUFHLENBQ04sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxDQUFDOzZCQUNuRCxRQUFRLEVBQ1gsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FDdkMsQ0FDRixDQUFDO3dCQUNGLElBQUksQ0FBQyxVQUFVLENBQ2IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FDdEMsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FDcEIsSUFBSSxDQUFDLEdBQUcsQ0FDTixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUM7NkJBQ25ELFFBQVEsRUFDWCxJQUFJLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUN2QyxDQUNGLENBQUM7cUJBQ0g7b0JBQ0QsT0FBTyxPQUFPLENBQUM7Z0JBQ2pCLENBQUMsRUFDRCxFQUFxQixDQUN0QixDQUFDO2dCQUNGLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUNoQyxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFpQixPQUFPLENBQUMsQ0FDekQsQ0FBQztnQkFDRixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU07b0JBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDM0MsS0FBSyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUM7Z0JBQ3pDLEtBQUssQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDO2dCQUV6QyxLQUFLLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7Z0JBQzFCLElBQUksQ0FBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsT0FBTyxLQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFO29CQUNwRCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxLQUFLLENBQUM7b0JBQ2pDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDNUM7WUFDSCxDQUFDLENBQUMsQ0FBQztZQUVILCtEQUErRDtZQUMvRCxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDekQsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQzNCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7b0JBQ2QsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7Z0JBQzNCLENBQUMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLHVCQUF1QixDQUFDLENBQUM7YUFDOUM7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDM0I7UUFDSCxDQUFDLEVBQ0QsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNSLDRCQUE0QjtZQUM1QixPQUFPLENBQUMsS0FBSyxDQUNYLDJDQUEyQyxLQUFLLDZCQUE2QixDQUM5RSxDQUFDO1lBQ0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDMUIsT0FBTyxJQUFJLENBQUM7WUFDWixnQkFBZ0I7UUFDbEIsQ0FBQyxDQUNGLENBQUM7SUFDTixDQUFDO0lBRUQsbUJBQW1CLENBQUMsUUFBZ0I7UUFDbEMsT0FBTyxDQUNMLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUk7WUFDM0IsUUFBUSxFQUFFLE1BQU0sQ0FBQyxTQUFTO1lBQzFCLFFBQVEsRUFBRSxNQUFNLENBQUMsU0FBUztTQUMzQixDQUNGLENBQUMsUUFBUSxDQUFDO0lBQ2IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsdUJBQXVCO1FBQ3JCLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNiLEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDcEQsSUFBSSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsSUFBSSxFQUFFO29CQUNmLEtBQUssRUFBRSxDQUFDO2lCQUNUO2FBQ0Y7U0FDRjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEJhc2VFbnZpcm9ubWVudCB9IGZyb20gJy4uL2NsYXNzZXMvZW52aXJvbWVudCc7XHJcbmltcG9ydCB7IEJhc2VIZWxwZXJSb3V0aW5lcyB9IGZyb20gJy4uL2NsYXNzZXMvaGVscGVycyc7XHJcbmltcG9ydCB7XHJcbiAgQmFzZUhvdGVsQXZhbGliaWxpdHlRdW90ZUZldGNoZXIsXHJcbiAgSG90ZWxBdmFsaW5pbGl0eUZldGNoZXJUeXBlXHJcbn0gZnJvbSAnLi4vZmV0Y2hlcnMvaG90ZWwtYXZhbGlhYmlsaXR5LWZldGNoZXInO1xyXG5pbXBvcnQge1xyXG4gIEhvdGVsQXZhaWxhYmlsaXR5LFxyXG4gIEhvdGVsSXRpbmVyYXJ5LFxyXG4gIFF1ZXJ5R2V0TXVsdGlwbGVIb3RlbHNBdmFpbGFiaWxpdHlBcmdzXHJcbn0gZnJvbSAnLi4vdHlwZXMvZ3JhcGhxbC50eXBlcyc7XHJcbmltcG9ydCB7XHJcbiAgQ3VycmVuY3lEZXRhaWxzLFxyXG4gIEhvdGVsQXZhbGliaWxpdHlRdWVyeSxcclxuICBIb3RlbEF2YWxpYmlsaXR5UXVvdGVSZXN1bHQsXHJcbiAgSG90ZWxBdmFsaWJpbGl0eVF1b3RlUmVzdWx0QXJyYXksXHJcbiAgSG90ZWxEZXRhaWxzLFxyXG4gIEhvdGVsUm9vbVdpdGhMb2NhbFByaWNlXHJcbn0gZnJvbSAnLi4vdHlwZXMvdHlwZXMnO1xyXG5cclxuaW1wb3J0IHsgQmFzZVN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi9zdG9yYWdlLnNlcnZpY2UnO1xyXG5cclxudHlwZSBTdG9yZWREYXRhID0geyBba2V5OiBzdHJpbmddOiBIb3RlbEF2YWlsYWJpbGl0eSB9O1xyXG5cclxuY29uc3QgU0VTU0lPTl9OQU1FID0gJ3Jlc3VsdHNfaG90ZWxfYXZhbGxpYmlsaXR5JztcclxuXHJcbmV4cG9ydCBjbGFzcyBCYXNlSG90ZWxBdmFsaWJpbGl0eVNlcnZpY2U8XHJcbiAgUSBleHRlbmRzIEhvdGVsQXZhbGluaWxpdHlGZXRjaGVyVHlwZVxyXG4+IHtcclxuICBwcml2YXRlIGRhdGE6IFN0b3JlZERhdGEgPSBudWxsO1xyXG4gIHByaXZhdGUgYmVoYXZpb3Vyczoge1xyXG4gICAgW2tleTogc3RyaW5nXTogQmVoYXZpb3JTdWJqZWN0PEhvdGVsQXZhaWxhYmlsaXR5PjtcclxuICB9ID0ge307XHJcbiAgcHJpdmF0ZSB0aW1lb3V0OiBudW1iZXI7XHJcbiAgcHJpdmF0ZSB0b0ZldGNoOiBIb3RlbEF2YWxpYmlsaXR5UXVlcnlbXSA9IFtdO1xyXG4gIHB1YmxpYyBmZXRjaGluZzogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihcclxuICAgIGZhbHNlXHJcbiAgKTtcclxuICBjdXJyZW5jaWVzOiBDdXJyZW5jeURldGFpbHMgPSB7fTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgYXZhbGliaWxpdHlGZXRoY2VyOiBCYXNlSG90ZWxBdmFsaWJpbGl0eVF1b3RlRmV0Y2hlcjxRPixcclxuICAgIHByaXZhdGUgc2Vzc2lvblN0b3JhZ2U6IEJhc2VTdG9yYWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgaGVscGVyczogQmFzZUhlbHBlclJvdXRpbmVzLFxyXG4gICAgcHJpdmF0ZSBlbnZpcm9ubWVudDogQmFzZUVudmlyb25tZW50XHJcbiAgKSB7fVxyXG5cclxuICBwcml2YXRlIHJlYWRGcm9tU2Vzc2lvbigpIHtcclxuICAgIGNvbnN0IGRhdGEgPVxyXG4gICAgICB0aGlzLnNlc3Npb25TdG9yYWdlLmdldFNlc3Npb25JdGVtPFN0b3JlZERhdGE+KFNFU1NJT05fTkFNRSkgfHwge307XHJcbiAgICBPYmplY3QudmFsdWVzKGRhdGEpLmZvckVhY2goKGl0ZW06IEhvdGVsQXZhaWxhYmlsaXR5KSA9PiB7XHJcbiAgICAgIHRoaXMuYmVoYXZpb3Vyc1tpdGVtLmhvdGVsSWRdID0gbmV3IEJlaGF2aW9yU3ViamVjdDxIb3RlbEF2YWlsYWJpbGl0eT4oXHJcbiAgICAgICAgaXRlbVxyXG4gICAgICApO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gZGF0YTtcclxuICB9XHJcblxyXG4gIHJlc2V0KCkge1xyXG4gICAgdGhpcy5kYXRhID0ge307XHJcbiAgICB0aGlzLmN1cnJlbmNpZXMgPSB7fTtcclxuICAgIHRoaXMudG9GZXRjaCA9IFtdO1xyXG4gICAgdGhpcy5mZXRjaGluZy5uZXh0KGZhbHNlKTtcclxuICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2UucmVtb3ZlU2Vzc2lvbkl0ZW0oU0VTU0lPTl9OQU1FKTtcclxuICAgIE9iamVjdC52YWx1ZXModGhpcy5kYXRhKS5mb3JFYWNoKChpdGVtOiBIb3RlbEF2YWxpYmlsaXR5UXVvdGVSZXN1bHQpID0+IHtcclxuICAgICAgdGhpcy5iZWhhdmlvdXJzW2l0ZW0uaG90ZWxJZF0uY29tcGxldGUoKTtcclxuICAgICAgZGVsZXRlIHRoaXMuYmVoYXZpb3Vyc1tpdGVtLmhvdGVsSWRdO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmJlaGF2aW91cnMgPSB7fTtcclxuICB9XHJcblxyXG4gIGdldEF2YWlsYWJpbGl0eUZvcklkKFxyXG4gICAgaG90ZWw6IEhvdGVsQXZhbGliaWxpdHlRdWVyeSxcclxuICAgIGZ1bGxIb3RlbD86IEhvdGVsSXRpbmVyYXJ5XHJcbiAgKTogQmVoYXZpb3JTdWJqZWN0PEhvdGVsQXZhbGliaWxpdHlRdW90ZVJlc3VsdD4ge1xyXG4gICAgLy8gY29uc29sZS5sb2coJysrKyBGZXRjaGluZyB3aXRoIGZ1bGwgaG90ZWwgZGF0YTogJywgZnVsbEhvdGVsLCAnICsrKycpO1xyXG5cclxuICAgIGlmIChmdWxsSG90ZWw/LmF2YWlsYWJsZVJhdGVzPy5yb29tcykge1xyXG4gICAgICAvLyBhZGQgdGhpcyBkYXRhIHRvIHRoZSBiZWhhdmlvdXJzIGFycmF5IGFuZCByZXR1cm4gaXQgKGlmIGl0IGRvc2VuJ3QgYWxyZWFkeSBleGlzdClcclxuXHJcbiAgICAgIGlmICh0aGlzLmJlaGF2aW91cnNbaG90ZWwuaG90ZWwgYXMgc3RyaW5nXSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmJlaGF2aW91cnNbaG90ZWwuaG90ZWwgYXMgc3RyaW5nXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvLyBhZGQgdGhlIGRhdGEgdG8gdGhlIGFycmF5XHJcbiAgICAgICAgdGhpcy5iZWhhdmlvdXJzW2hvdGVsLmhvdGVsIGFzIHN0cmluZ10gPVxyXG4gICAgICAgICAgbmV3IEJlaGF2aW9yU3ViamVjdDxIb3RlbEF2YWxpYmlsaXR5UXVvdGVSZXN1bHQ+KG51bGwpO1xyXG5cclxuICAgICAgICBjb25zdCBuZXdCZWhhdmlvdXJPYmplY3Q6IEhvdGVsQXZhbGliaWxpdHlRdW90ZVJlc3VsdCA9XHJcbiAgICAgICAgICBmdWxsSG90ZWwuYXZhaWxhYmxlUmF0ZXM7XHJcbiAgICAgICAgbmV3QmVoYXZpb3VyT2JqZWN0Lm1pbnByaWNlID0gZnVsbEhvdGVsLmF2YWlsYWJsZVJhdGVzLnJvb21zWzBdXHJcbiAgICAgICAgICA/IGZ1bGxIb3RlbC5hdmFpbGFibGVSYXRlcy5yb29tc1swXS50b3RhbFxyXG4gICAgICAgICAgOiAwO1xyXG4gICAgICAgIG5ld0JlaGF2aW91ck9iamVjdC5tYXhwcmljZSA9IG5ld0JlaGF2aW91ck9iamVjdC5taW5wcmljZVxyXG4gICAgICAgICAgPyBmdWxsSG90ZWwuYXZhaWxhYmxlUmF0ZXMucm9vbXNbXHJcbiAgICAgICAgICAgICAgZnVsbEhvdGVsLmF2YWlsYWJsZVJhdGVzLnJvb21zLmxlbmd0aCAtIDFcclxuICAgICAgICAgICAgXS50b3RhbFxyXG4gICAgICAgICAgOiAwO1xyXG4gICAgICAgIHRoaXMuYmVoYXZpb3Vyc1tob3RlbC5ob3RlbCBhcyBzdHJpbmddLm5leHQobmV3QmVoYXZpb3VyT2JqZWN0KTtcclxuICAgICAgICByZXR1cm4gdGhpcy5iZWhhdmlvdXJzW2hvdGVsLmhvdGVsIGFzIHN0cmluZ107XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmRhdGEgPSB0aGlzLmRhdGEgfHwgdGhpcy5yZWFkRnJvbVNlc3Npb24oKTtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIHRoaXMuYmVoYXZpb3Vyc1tob3RlbC5ob3RlbCBhcyBzdHJpbmddIHx8XHJcbiAgICAgIHRoaXMuX2dldEF2YWlsYWJpbGl0eUZvcklkKGhvdGVsKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEF2YWlsYWJpbGl0eVZhbHVlKGhvdGVsOiBIb3RlbERldGFpbHMpOiBIb3RlbEF2YWxpYmlsaXR5UXVvdGVSZXN1bHQge1xyXG4gICAgdGhpcy5kYXRhID0gdGhpcy5kYXRhIHx8IHRoaXMucmVhZEZyb21TZXNzaW9uKCk7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICB0aGlzLmJlaGF2aW91cnNbaG90ZWwuaWQgYXMgc3RyaW5nXT8udmFsdWUgfHxcclxuICAgICAgKHt9IGFzIEhvdGVsQXZhbGliaWxpdHlRdW90ZVJlc3VsdClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVIb3RlbChob3RlbDogSG90ZWxEZXRhaWxzKTogSG90ZWxEZXRhaWxzIHtcclxuICAgIGlmICghaG90ZWwuYXZhaWxhYmxlUmF0ZXMpIHtcclxuICAgICAgaG90ZWwuYXZhaWxhYmxlUmF0ZXMgPSB0aGlzLmdldEF2YWlsYWJpbGl0eVZhbHVlKGhvdGVsKTtcclxuICAgIH1cclxuICAgIHJldHVybiBob3RlbDtcclxuICB9XHJcblxyXG4gIHNldEhvdGVsQXZhbGFiaWxpdHkoaG90ZWw6IEhvdGVsRGV0YWlscyk6IEhvdGVsRGV0YWlscyB7XHJcbiAgICBpZiAoaG90ZWwuYXZhaWxhYmxlUmF0ZXMgJiYgaG90ZWw/LmF2YWlsYWJsZVJhdGVzLmhvdGVsSWQpIHtcclxuICAgICAgdGhpcy5kYXRhW2hvdGVsLmF2YWlsYWJsZVJhdGVzLmhvdGVsSWRdID0gaG90ZWwuYXZhaWxhYmxlUmF0ZXM7XHJcbiAgICAgIHRoaXMuYmVoYXZpb3Vyc1tob3RlbC5hdmFpbGFibGVSYXRlcy5ob3RlbElkXS5uZXh0KGhvdGVsLmF2YWlsYWJsZVJhdGVzKTtcclxuICAgIH1cclxuICAgIHJldHVybiBob3RlbDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2dldEF2YWlsYWJpbGl0eUZvcklkKFxyXG4gICAgaG90ZWw6IEhvdGVsQXZhbGliaWxpdHlRdWVyeVxyXG4gICk6IEJlaGF2aW9yU3ViamVjdDxIb3RlbEF2YWxpYmlsaXR5UXVvdGVSZXN1bHQ+IHtcclxuICAgIC8vIGNvbnNvbGUubG9nKCcrKysgRmV0Y2hpbmcgYXZhaWxhYmlsdHkgZm9yOiAnLCBob3RlbCwgJyArKysnKTtcclxuICAgIGlmICh0aGlzLnRpbWVvdXQpIHtcclxuICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXQpO1xyXG4gICAgICB0aGlzLnRpbWVvdXQgPSAwO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghdGhpcy5mZXRjaGluZy52YWx1ZSkge1xyXG4gICAgICB0aGlzLnRpbWVvdXQgPSB3aW5kb3cuc2V0VGltZW91dChcclxuICAgICAgICB0aGlzLmZldGNoQXZhbGlsYmlsaXR5LmJpbmQodGhpcyksXHJcbiAgICAgICAgdGhpcy5lbnZpcm9ubWVudC5hdXRvRmV0Y2hIb3RlbFRpbWVvdXRcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHRoaXMudG9GZXRjaC5wdXNoKGhvdGVsKTtcclxuICAgIGlmIChcclxuICAgICAgIXRoaXMuZmV0Y2hpbmcudmFsdWUgJiZcclxuICAgICAgdGhpcy50b0ZldGNoLmxlbmd0aCA+PSB0aGlzLmVudmlyb25tZW50Lm51bWJlck9mSG90ZWxzVG9GZXRjaFxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuZmV0Y2hBdmFsaWxiaWxpdHkoKTtcclxuICAgIH1cclxuICAgIHRoaXMuYmVoYXZpb3Vyc1tob3RlbC5ob3RlbCBhcyBzdHJpbmddID1cclxuICAgICAgbmV3IEJlaGF2aW9yU3ViamVjdDxIb3RlbEF2YWxpYmlsaXR5UXVvdGVSZXN1bHQ+KG51bGwpO1xyXG4gICAgcmV0dXJuIHRoaXMuYmVoYXZpb3Vyc1tob3RlbC5ob3RlbCBhcyBzdHJpbmddO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmZXRjaEF2YWxpbGJpbGl0eSgpIHtcclxuICAgIHRoaXMuZmV0Y2hpbmcubmV4dCh0cnVlKTtcclxuICAgIGlmICh0aGlzLnRpbWVvdXQpIHtcclxuICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXQpO1xyXG4gICAgICB0aGlzLnRpbWVvdXQgPSAwO1xyXG4gICAgfVxyXG4gICAgY29uc3QgdG9GZXRjaCA9IHRoaXMudG9GZXRjaC5zbGljZShcclxuICAgICAgMCxcclxuICAgICAgdGhpcy5lbnZpcm9ubWVudC5udW1iZXJPZkhvdGVsc1RvRmV0Y2hcclxuICAgICk7XHJcbiAgICB0aGlzLnRvRmV0Y2ggPSB0aGlzLnRvRmV0Y2guc2xpY2UodGhpcy5lbnZpcm9ubWVudC5udW1iZXJPZkhvdGVsc1RvRmV0Y2gpO1xyXG5cclxuICAgIGNvbnNvbGUubG9nKCdIb3RlbHMgc3RpbGwgdG8gZmV0Y2gnLCB0aGlzLnRvRmV0Y2gubGVuZ3RoKTtcclxuXHJcbiAgICBjb25zdCBxdWVyeTogUXVlcnlHZXRNdWx0aXBsZUhvdGVsc0F2YWlsYWJpbGl0eUFyZ3MgPSB7XHJcbiAgICAgIGhvdGVsOiB0b0ZldGNoLm1hcCgoaG90ZWwpID0+IGhvdGVsLmhvdGVsKSBhcyBzdHJpbmdbXSxcclxuICAgICAgY3VycmVuY3k6IHRvRmV0Y2hbMF0uY3VycmVuY3ksXHJcbiAgICAgIGVuZERhdGU6IHRvRmV0Y2hbMF0uZW5kRGF0ZSxcclxuICAgICAgc3RhcnREYXRlOiB0b0ZldGNoWzBdLnN0YXJ0RGF0ZSxcclxuICAgICAgb2NjdXBhbnRzOiB0b0ZldGNoWzBdLm9jY3VwYW50cyxcclxuICAgICAgcm9vbXM6IHRvRmV0Y2hbMF0ucm9vbXNcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5hdmFsaWJpbGl0eUZldGhjZXJcclxuICAgICAgLmZldGNoTGlzdChxdWVyeSlcclxuICAgICAgLnBpcGUodGFrZSgxKSlcclxuICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAoaG90ZWxzOiBIb3RlbEF2YWxpYmlsaXR5UXVvdGVSZXN1bHRBcnJheSkgPT4ge1xyXG4gICAgICAgICAgaG90ZWxzLmZvckVhY2goKGhvdGVsOiBIb3RlbEF2YWxpYmlsaXR5UXVvdGVSZXN1bHQpID0+IHtcclxuICAgICAgICAgICAgaG90ZWwgPSB0aGlzLmhlbHBlcnMuY2xvbmUoaG90ZWwpO1xyXG4gICAgICAgICAgICBob3RlbC5yb29tcyA9IChob3RlbC5yb29tcyB8fCBbXSlcclxuICAgICAgICAgICAgICAuZmlsdGVyKChyb29tOiBIb3RlbFJvb21XaXRoTG9jYWxQcmljZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHJvb20udG90YWwgPiAwO1xyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgLm1hcCgocm9vbTogSG90ZWxSb29tV2l0aExvY2FsUHJpY2UpID0+IHtcclxuICAgICAgICAgICAgICAgIHJvb20gPSB0aGlzLmhlbHBlcnMuY2xvbmU8SG90ZWxSb29tV2l0aExvY2FsUHJpY2U+KHJvb20pO1xyXG4gICAgICAgICAgICAgICAgcm9vbS5Mb2NhbFByaWNlID0gcm9vbS5jdXJyZW5jeUNvbnZlcnNpb25cclxuICAgICAgICAgICAgICAgICAgPyByb29tLmN1cnJlbmN5Q29udmVyc2lvbi5sb2NhbFRvdGFsXHJcbiAgICAgICAgICAgICAgICAgIDogcm9vbS50b3RhbDtcclxuICAgICAgICAgICAgICAgIHJvb20uTG9jYWxDdXJyZW5jeSA9IHJvb20uY3VycmVuY3lDb252ZXJzaW9uXHJcbiAgICAgICAgICAgICAgICAgID8gcm9vbS5jdXJyZW5jeUNvbnZlcnNpb24ubG9jYWxDb2RlXHJcbiAgICAgICAgICAgICAgICAgIDogcm9vbS5jdXJyZW5jeUNvZGU7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcm9vbTtcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgaG90ZWwuY3VycmVuY2llcyA9IGhvdGVsLnJvb21zLnJlZHVjZShcclxuICAgICAgICAgICAgICAoZGV0YWlsczogQ3VycmVuY3lEZXRhaWxzLCByb29tOiBIb3RlbFJvb21XaXRoTG9jYWxQcmljZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHJvb20uY3VycmVuY3lDb252ZXJzaW9uKSB7XHJcbiAgICAgICAgICAgICAgICAgIGRldGFpbHNbcm9vbS5jdXJyZW5jeUNvbnZlcnNpb24uY29udmVydGVkQ29kZV0gPSBkZXRhaWxzW1xyXG4gICAgICAgICAgICAgICAgICAgIHJvb20uY3VycmVuY3lDb252ZXJzaW9uLmNvbnZlcnRlZENvZGVcclxuICAgICAgICAgICAgICAgICAgXSB8fCB7XHJcbiAgICAgICAgICAgICAgICAgICAgbWF4cHJpY2U6IE51bWJlci5NSU5fVkFMVUUsXHJcbiAgICAgICAgICAgICAgICAgICAgbWlucHJpY2U6IE51bWJlci5NQVhfVkFMVUVcclxuICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgZGV0YWlsc1tyb29tLmN1cnJlbmN5Q29udmVyc2lvbi5jb252ZXJ0ZWRDb2RlXS5tYXhwcmljZSA9XHJcbiAgICAgICAgICAgICAgICAgICAgTWF0aC5tYXgoXHJcbiAgICAgICAgICAgICAgICAgICAgICBkZXRhaWxzW3Jvb20uY3VycmVuY3lDb252ZXJzaW9uLmNvbnZlcnRlZENvZGVdLm1heHByaWNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgcm9vbS5jdXJyZW5jeUNvbnZlcnNpb24uY29udmVydGVkVG90YWxcclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICBkZXRhaWxzW3Jvb20uY3VycmVuY3lDb252ZXJzaW9uLmNvbnZlcnRlZENvZGVdLm1pbnByaWNlID1cclxuICAgICAgICAgICAgICAgICAgICBNYXRoLm1pbihcclxuICAgICAgICAgICAgICAgICAgICAgIGRldGFpbHNbcm9vbS5jdXJyZW5jeUNvbnZlcnNpb24uY29udmVydGVkQ29kZV0ubWlucHJpY2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICByb29tLmN1cnJlbmN5Q29udmVyc2lvbi5jb252ZXJ0ZWRUb3RhbFxyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbmNpZXNbcm9vbS5jdXJyZW5jeUNvbnZlcnNpb24uY29udmVydGVkQ29kZV0gPSB0aGlzXHJcbiAgICAgICAgICAgICAgICAgICAgLmN1cnJlbmNpZXNbcm9vbS5jdXJyZW5jeUNvbnZlcnNpb24uY29udmVydGVkQ29kZV0gfHwge1xyXG4gICAgICAgICAgICAgICAgICAgIG1heHByaWNlOiBOdW1iZXIuTUlOX1ZBTFVFLFxyXG4gICAgICAgICAgICAgICAgICAgIG1pbnByaWNlOiBOdW1iZXIuTUFYX1ZBTFVFXHJcbiAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVuY2llc1tcclxuICAgICAgICAgICAgICAgICAgICByb29tLmN1cnJlbmN5Q29udmVyc2lvbi5jb252ZXJ0ZWRDb2RlXHJcbiAgICAgICAgICAgICAgICAgIF0ubWlucHJpY2UgPSBNYXRoLmNlaWwoXHJcbiAgICAgICAgICAgICAgICAgICAgTWF0aC5taW4oXHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbmNpZXNbcm9vbS5jdXJyZW5jeUNvbnZlcnNpb24uY29udmVydGVkQ29kZV1cclxuICAgICAgICAgICAgICAgICAgICAgICAgLm1pbnByaWNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgcm9vbS5jdXJyZW5jeUNvbnZlcnNpb24uY29udmVydGVkVG90YWxcclxuICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVuY2llc1tcclxuICAgICAgICAgICAgICAgICAgICByb29tLmN1cnJlbmN5Q29udmVyc2lvbi5jb252ZXJ0ZWRDb2RlXHJcbiAgICAgICAgICAgICAgICAgIF0ubWF4cHJpY2UgPSBNYXRoLmNlaWwoXHJcbiAgICAgICAgICAgICAgICAgICAgTWF0aC5tYXgoXHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbmNpZXNbcm9vbS5jdXJyZW5jeUNvbnZlcnNpb24uY29udmVydGVkQ29kZV1cclxuICAgICAgICAgICAgICAgICAgICAgICAgLm1heHByaWNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgcm9vbS5jdXJyZW5jeUNvbnZlcnNpb24uY29udmVydGVkVG90YWxcclxuICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZGV0YWlscztcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHt9IGFzIEN1cnJlbmN5RGV0YWlsc1xyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICBjb25zdCByb29tUHJpY2VzID0gaG90ZWwucm9vbXMubWFwKFxyXG4gICAgICAgICAgICAgIHRoaXMuaGVscGVycy5tYXBGaWVsZEZyb21PYmplY3Q8c3RyaW5nLCBudW1iZXI+KCd0b3RhbCcpXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGlmICghcm9vbVByaWNlcy5sZW5ndGgpIHJvb21QcmljZXMucHVzaCgwKTtcclxuICAgICAgICAgICAgaG90ZWwubWlucHJpY2UgPSBNYXRoLm1pbiguLi5yb29tUHJpY2VzKTtcclxuICAgICAgICAgICAgaG90ZWwubWF4cHJpY2UgPSBNYXRoLm1heCguLi5yb29tUHJpY2VzKTtcclxuXHJcbiAgICAgICAgICAgIGhvdGVsLnJvb21zID0gaG90ZWwucm9vbXM7XHJcbiAgICAgICAgICAgIGlmIChob3RlbD8uaG90ZWxJZCAmJiB0aGlzLmJlaGF2aW91cnNbaG90ZWwuaG90ZWxJZF0pIHtcclxuICAgICAgICAgICAgICB0aGlzLmRhdGFbaG90ZWwuaG90ZWxJZF0gPSBob3RlbDtcclxuICAgICAgICAgICAgICB0aGlzLmJlaGF2aW91cnNbaG90ZWwuaG90ZWxJZF0ubmV4dChob3RlbCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgIC8vIHRoaXMuc2Vzc2lvblN0b3JhZ2Uuc2V0U2Vzc2lvbkl0ZW0oU0VTU0lPTl9OQU1FLCB0aGlzLmRhdGEpO1xyXG4gICAgICAgICAgdGhpcy5zZXNzaW9uU3RvcmFnZS5zZXRTZXNzaW9uSXRlbShTRVNTSU9OX05BTUUsIGhvdGVscyk7XHJcbiAgICAgICAgICBpZiAodGhpcy50b0ZldGNoLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5mZXRjaEF2YWxpbGJpbGl0eSgpO1xyXG4gICAgICAgICAgICB9LCB0aGlzLmVudmlyb25tZW50LmhvdGVsQXZhbGliaWxpdHlUaW1lb3V0KTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmV0Y2hpbmcubmV4dChmYWxzZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICAoZXJyb3IpID0+IHtcclxuICAgICAgICAgIC8vIG1pZ2h0IG5lZWQgdG8gcmVmaW5lIHRoaXNcclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXHJcbiAgICAgICAgICAgIGArKysgRXJyb3IgcmVjb3ZlcmluZyBob3RlbCBhdmFpbGFiaWx0eTogJHtlcnJvcn0gLSByZXNldGluZyBhdmFpbGFiaWx0eSArKytgXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgdGhpcy5mZXRjaGluZy5uZXh0KGZhbHNlKTtcclxuICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgICAgLy8gdGhpcy5yZXNldCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIG1heFByaWNlRm9yQ3VycmVuY3koY3VycmVuY3k6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgdGhpcy5jdXJyZW5jaWVzW2N1cnJlbmN5XSB8fCB7XHJcbiAgICAgICAgbWF4cHJpY2U6IE51bWJlci5NQVhfVkFMVUUsXHJcbiAgICAgICAgbWlucHJpY2U6IE51bWJlci5NSU5fVkFMVUVcclxuICAgICAgfVxyXG4gICAgKS5tYXhwcmljZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBkZXNjcmlwdGlvbiAtIHJldHVybiB0aGUgbnVtYmVyIG9mIGhvdGVscyB0aGF0IGhhdmUgYSBwcmljZSAocHJwbiB2YWx1ZSlcclxuICAgKi9cclxuICBudW1iZXJPZkhvdGVsc1dpdGhQcmljZSgpOiBudW1iZXIge1xyXG4gICAgbGV0IGNvdW50ID0gMDtcclxuICAgIGlmICh0aGlzLmRhdGEpIHtcclxuICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModGhpcy5kYXRhKSkge1xyXG4gICAgICAgIGlmICh2YWx1ZT8ucHJwbikge1xyXG4gICAgICAgICAgY291bnQrKztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBjb3VudDtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -13,4 +13,4 @@ export class AbstractHttpCallService {
|
|
|
13
13
|
}, '');
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1jYWxsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vYnRzZXJ2aWNlcy9iYXNlL3NyYy9saWIvdmVuZG9yL3NlcnZpY2VzL2h0dHAtY2FsbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sT0FBZ0IsdUJBQXVCO0lBa0MzQzs7OztPQUlHO0lBQ0ksU0FBUyxDQUFDLEdBQThCO1FBQzdDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFnQixFQUFFLEdBQVcsRUFBRSxFQUFFO1lBQy9ELE9BQU8sQ0FDTCxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDdkMsR0FBRztnQkFDSCxHQUFHO2dCQUNILGtCQUFrQixDQUNoQixPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FDbkUsQ0FDRixDQUFDO1FBQ0osQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ1QsQ0FBQztDQUlGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBVUkxTIH0gZnJvbSAnLi91cmwuc2VydmljZSc7XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RIdHRwQ2FsbFNlcnZpY2Uge1xyXG4gIGFic3RyYWN0IGZvcm1FbmNvZGVkUG9zdCh1cmw6IFVSTFMsIGJvZHk/OiBhbnksIHJlc3BvbnNlVHlwZT86ICdqc29uJyB8ICd0ZXh0Jyk6IE9ic2VydmFibGU8YW55PjtcclxuXHJcbiAgYWJzdHJhY3QgdGltZW91dEZvcm1FbmNvZGVkUG9zdChcclxuICAgIHVybDogVVJMUyxcclxuICAgIGJvZHk/OiBhbnksXHJcbiAgICByZVRpbWVvdXQ/OiBudW1iZXJcclxuICApOiBPYnNlcnZhYmxlPGFueT47XHJcblxyXG4gIGFic3RyYWN0IGZvcm1FbmNvZGVkUG9zdE5vRXJyb3JIYW5kbGluZyhcclxuICAgIHVybDogVVJMUyxcclxuICAgIGJvZHk/OiBhbnlcclxuICApOiBPYnNlcnZhYmxlPGFueT47XHJcblxyXG4gIC8qXHJcblx0XHRAZGVzYyAtIGNhbGwgYSB1cmwgdGhyb3VnaCBwb3N0LCB3aXRoIGEgSnNvbiBPYmplY3QgYXMgZGF0YSAoYW5ndWxhciBkZWZhdWx0KVxyXG5cdCoqL1xyXG4gIGFic3RyYWN0IHBvc3QodXJsOiBVUkxTLCBkYXRhPzogYW55KTogT2JzZXJ2YWJsZTxhbnk+O1xyXG5cclxuICAvKlxyXG5cdFx0QGRlc2MgLSBjYWxsIGEgQW5ndWxhciBzdGFuZGFyZCBnZXQgcmVxdWVzdCAoYXBwbGljYXRpb24vanNvbiBoZWFkZXJzKVxyXG5cdCoqL1xyXG4gIGFic3RyYWN0IGdldCh1cmw6IFVSTFMsIHBhcmFtcz86IGFueSk6IE9ic2VydmFibGU8YW55PjtcclxuXHJcbiAgLypcclxuXHRcdEBkZXNjIC0gdGhpcyB3aWxsIGRldGVybWluZSBpZiB0aGVyZSBpcyBhIGxvZ2luIGVycm9yIGZvciB0aGUgcmVxdWVzdCBvciBub3QsIHNpbmNlIHRoaXMgaXMgYSBwb3RlbnRpYWwgZXJyb3IgZm9yIGV2ZXJ5IGNhbGxcclxuXHQqKi9cclxuICBhYnN0cmFjdCBoYW5kbGVSZXNwb25zZShkYXRhOiBhbnkpOiBhbnk7XHJcbiAgYWJzdHJhY3QgcmVzZXRMb2dvdXQoKTogdm9pZDtcclxuICAvKlxyXG5cdFx0QGRlc2MgLSBoYW5kbGUgYW55IGZhdGFsIGVycm9ycyA0MDQncyA1MDAncyBvdGhlciBnZW5lcmljIGh0dHAgZXJyb3JzXHJcblx0KiovXHJcbiAgYWJzdHJhY3QgaGFuZGxlRXJyb3IoZXJyb3JWYWw6IGFueSwgc2tpcFRpbWVvdXRNZXNzYWdlPzogYm9vbGVhbik6IGFueTtcclxuXHJcbiAgLypcclxuICAgKiBVc2luZyB0aGUga2V5cyBvZiB0aGUgZ2l2ZW4gb2JqZWN0IGFzIHBhcmFtZXRlciBuYW1lcyBjcmVhdGUgYSBwYXJhbWV0ZXIgc3RyaW5nIHVybCBlbmNvZGluZyB0aGUgdmFsdWVzLlxyXG4gICAqIFRoZSBmdW5jdGlvbiBleHBlY3RzIHRoZSB2YWx1ZXMgdG8gYmUgc3RyaW5ncy5cclxuICAgKiBAcGFyYW0gb2JqXHJcbiAgICovXHJcbiAgcHVibGljIHNlcmlhbGl6ZShvYmo6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0pOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKG9iaikucmVkdWNlKCh0b1JldHVybjogc3RyaW5nLCBrZXk6IHN0cmluZykgPT4ge1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgICh0b1JldHVybi5sZW5ndGggPyB0b1JldHVybiArICcmJyA6ICcnKSArXHJcbiAgICAgICAga2V5ICtcclxuICAgICAgICAnPScgK1xyXG4gICAgICAgIGVuY29kZVVSSUNvbXBvbmVudChcclxuICAgICAgICAgIHR5cGVvZiBvYmpba2V5XSA9PT0gJ29iamVjdCcgPyBKU09OLnN0cmluZ2lmeShvYmpba2V5XSkgOiBvYmpba2V5XVxyXG4gICAgICAgIClcclxuICAgICAgKTtcclxuICAgIH0sICcnKTtcclxuICB9XHJcblxyXG4gIGFic3RyYWN0IGdldEhlYWRlcnMoKTogYW55O1xyXG4gIGFic3RyYWN0IG1ha2VVcmwodXJsOiBVUkxTKTogc3RyaW5nO1xyXG59XHJcbiJdfQ==
|
|
@@ -5,7 +5,7 @@ import { UserFavorurite } from '../classes/user-favourite.enum';
|
|
|
5
5
|
import { of } from 'rxjs';
|
|
6
6
|
import { ModalTypes } from '../classes/modal-types.enum';
|
|
7
7
|
export class BaseLogonService {
|
|
8
|
-
constructor(userService, modalService, http, router, eventMessenager, storageService, environment) {
|
|
8
|
+
constructor(userService, modalService, http, router, eventMessenager, storageService, environment, webTokenService) {
|
|
9
9
|
this.userService = userService;
|
|
10
10
|
this.modalService = modalService;
|
|
11
11
|
this.http = http;
|
|
@@ -13,6 +13,7 @@ export class BaseLogonService {
|
|
|
13
13
|
this.eventMessenager = eventMessenager;
|
|
14
14
|
this.storageService = storageService;
|
|
15
15
|
this.environment = environment;
|
|
16
|
+
this.webTokenService = webTokenService;
|
|
16
17
|
this.loading = false;
|
|
17
18
|
this.isLoggedIn = false;
|
|
18
19
|
this.redirectUrl = '';
|
|
@@ -79,6 +80,37 @@ export class BaseLogonService {
|
|
|
79
80
|
setRefresh() {
|
|
80
81
|
this.timeoutSubscription = window.setTimeout(this.refreshToken.bind(this), this.environment.authRefreshTimeout * 1000);
|
|
81
82
|
}
|
|
83
|
+
becomeUser(username) {
|
|
84
|
+
return new Promise((resolve, reject) => {
|
|
85
|
+
this.clearRefresh();
|
|
86
|
+
this.http
|
|
87
|
+
.post(URLS.BECOME_USER, { username })
|
|
88
|
+
.pipe(take(1))
|
|
89
|
+
.subscribe((data) => {
|
|
90
|
+
console.log(data);
|
|
91
|
+
this.userService.setUser(data.jwtObject);
|
|
92
|
+
this.router.navigate(['main']);
|
|
93
|
+
resolve(true);
|
|
94
|
+
}, (error) => {
|
|
95
|
+
reject(error);
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
endBecomeUserSession() {
|
|
100
|
+
return new Promise((resolve, reject) => {
|
|
101
|
+
this.clearRefresh();
|
|
102
|
+
this.http
|
|
103
|
+
.post(URLS.END_BECOME_USER, {})
|
|
104
|
+
.pipe(take(1))
|
|
105
|
+
.subscribe((data) => {
|
|
106
|
+
console.log(data);
|
|
107
|
+
this.userService.setUser(data.jwtObject);
|
|
108
|
+
resolve(true);
|
|
109
|
+
}, (error) => {
|
|
110
|
+
reject(error);
|
|
111
|
+
});
|
|
112
|
+
});
|
|
113
|
+
}
|
|
82
114
|
login(username, password, again) {
|
|
83
115
|
this.userService.emptyUserData();
|
|
84
116
|
this.storageService.clearSessionData();
|
|
@@ -89,6 +121,7 @@ export class BaseLogonService {
|
|
|
89
121
|
password
|
|
90
122
|
})
|
|
91
123
|
.pipe(take(1), map((value, index) => {
|
|
124
|
+
this.webTokenService.bobo = null;
|
|
92
125
|
this.setRefresh();
|
|
93
126
|
return this.handleResponse(value);
|
|
94
127
|
}));
|
|
@@ -118,6 +151,7 @@ export class BaseLogonService {
|
|
|
118
151
|
const isSSO = this.userService.isUserFavoriteSet(UserFavorurite.SSO_no_password);
|
|
119
152
|
this.clearRefresh();
|
|
120
153
|
this.isLoggedIn = false;
|
|
154
|
+
this.webTokenService.bobo = null;
|
|
121
155
|
this.userService.emptyUserData();
|
|
122
156
|
this.storageService.clearSessionData();
|
|
123
157
|
this.http.post(URLS.LOGOUT_URL).subscribe((data) => {
|
|
@@ -160,7 +194,7 @@ export class BaseLogonService {
|
|
|
160
194
|
**/
|
|
161
195
|
recoverPassword(username) {
|
|
162
196
|
return this.http.formEncodedPost(URLS.RECOVER_PASSWORD_URL, {
|
|
163
|
-
username: `${username}
|
|
197
|
+
username: `${username}`
|
|
164
198
|
}, 'text');
|
|
165
199
|
}
|
|
166
200
|
/*
|
|
@@ -174,4 +208,4 @@ export class BaseLogonService {
|
|
|
174
208
|
this.modalService.open(ModalTypes.ModalErrorComponent, {}, modalValues);
|
|
175
209
|
}
|
|
176
210
|
}
|
|
177
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29idHNlcnZpY2VzL2Jhc2Uvc3JjL2xpYi92ZW5kb3Ivc2VydmljZXMvbG9nb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUkzQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3RDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQVd6RCxNQUFNLE9BQU8sZ0JBQWdCO0lBUzNCLFlBQ1UsV0FBaUMsRUFDakMsWUFBb0MsRUFDcEMsSUFBNkIsRUFDN0IsTUFBYyxFQUNkLGVBQW9DLEVBQ3BDLGNBQWtDLEVBQ2xDLFdBQTRCO1FBTjVCLGdCQUFXLEdBQVgsV0FBVyxDQUFzQjtRQUNqQyxpQkFBWSxHQUFaLFlBQVksQ0FBd0I7UUFDcEMsU0FBSSxHQUFKLElBQUksQ0FBeUI7UUFDN0IsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLG9CQUFlLEdBQWYsZUFBZSxDQUFxQjtRQUNwQyxtQkFBYyxHQUFkLGNBQWMsQ0FBb0I7UUFDbEMsZ0JBQVcsR0FBWCxXQUFXLENBQWlCO1FBZnRDLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUlqQixtQkFBYyxHQUFxQixJQUFJLENBQUM7SUFVckMsQ0FBQztJQUVKLFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxZQUFZLEVB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SSxDQUFDLGVBQWUsQ0FDOUIsSUFBSSxDQUFDLG9CQUFvQixFQUN6QjtZQUNFLFFBQVEsRUFBQyxHQUFHLFFBQVEsRUFBRTtTQUN2QixFQUNELE1BQU0sQ0FDUCxDQUFBO0lBQ0gsQ0FBQztJQUVEOztRQUVJO0lBQ0osV0FBVyxDQUFDLEtBQWE7UUFDdkIseUNBQXlDO1FBQ3pDLE1BQU0sV0FBVyxHQUFHO1lBQ2xCLEtBQUs7U0FDTixDQUFDO1FBQ0YsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLG1CQUFtQixFQUFFLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUMxRSxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVU0VSX1NJR05FRE9VVCB9IGZyb20gJy4vdXNlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgbWFwLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBCYXNlTW9kYWxPcGVuZXJTZXJ2aWNlIH0gZnJvbSAnLi9tb2RhbC1vcGVuZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IEJhc2VTdG9yYWdlU2VydmljZSB9IGZyb20gJy4vc3RvcmFnZS5zZXJ2aWNlJztcclxuXHJcbmltcG9ydCB7IFVSTFMgfSBmcm9tICcuL3VybC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXNlckZhdm9ydXJpdGUgfSBmcm9tICcuLi9jbGFzc2VzL3VzZXItZmF2b3VyaXRlLmVudW0nO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBCYXNlRXZlbnRNZXNzZW5hZ2VyIH0gZnJvbSAnLi4vY2xhc3Nlcy9ldmVudC1tZXNzZW5hZ2VyJztcclxuaW1wb3J0IHsgQmFzZUVudmlyb25tZW50IH0gZnJvbSAnLi4vY2xhc3Nlcy9lbnZpcm9tZW50JztcclxuaW1wb3J0IHsgTW9kYWxUeXBlcyB9IGZyb20gJy4uL2NsYXNzZXMvbW9kYWwtdHlwZXMuZW51bSc7XHJcbmltcG9ydCB7IFVzZXJEYXRhIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy91c2VyLmRhdGEnO1xyXG5pbXBvcnQge1xyXG4gIEF1dGhJbmZvLFxyXG4gIExvZ2luUmVzcG9uc2UsXHJcbiAgUGFzc3dvcmRDaGFuZ2VSZXNwb25zZVxyXG59IGZyb20gJy4uL21vZGVscy9sb2dpbi5tb2RlbCc7XHJcbmltcG9ydCB7IFVzZXJTZXJ2aWNlSW50ZXJmYWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JdXNlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RIdHRwQ2FsbFNlcnZpY2UgfSBmcm9tICcuL2h0dHAtY2FsbC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnLi4vdHlwZXMvdHlwZXMnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEJhc2VMb2dvblNlcnZpY2Uge1xyXG4gIGxvYWRpbmcgPSBmYWxzZTtcclxuICBpc0xvZ2dlZEluID0gZmFsc2U7XHJcbiAgcmVkaXJlY3RVcmwgPSAnJztcclxuICBhdXRoSW5mbzogQXV0aEluZm87XHJcbiAgbG9naW5SZXNwb25zZTogTG9naW5SZXNwb25zZTtcclxuICB0aW1lb3V0U3Vic2NyaXB0aW9uOiBudW1iZXI7XHJcbiAgcmVmcmVzaFByb21pc2U6IFByb21pc2U8Ym9vbGVhbj4gPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlSW50ZXJmYWNlLFxyXG4gICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IEJhc2VNb2RhbE9wZW5lclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGh0dHA6IEFic3RyYWN0SHR0cENhbGxTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgZXZlbnRNZXNzZW5hZ2VyOiBCYXNlRXZlbnRNZXNzZW5hZ2VyLFxyXG4gICAgcHJpdmF0ZSBzdG9yYWdlU2VydmljZTogQmFzZVN0b3JhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBlbnZpcm9ubWVudDogQmFzZUVudmlyb25tZW50XHJcbiAgKSB7fVxyXG5cclxuICBjaGVja0xvZ2luKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgcmV0dXJuIHRoaXMucmVmcmVzaFRva2VuKCk7XHJcbiAgfVxyXG5cclxuICByZWZyZXNoVG9rZW4oKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICB0aGlzLnJlZnJlc2hQcm9taXNlID1cclxuICAgICAgdGhpcy5yZWZyZXNoUHJvbWlzZSB8fFxyXG4gICAgICBuZXcgUHJvbWlzZShcclxuICAgICAgICAocmVzb2x2ZTogKHZhbHVlOiBib29sZWFuKSA9PiB2b2lkLCByZWplY3Q6IChlcnJvcjogYW55KSA9PiB2b2lkKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmNsZWFyUmVmcmVzaCgpO1xyXG4gICAgICAgICAgdGhpcy5odHRwXHJcbiAgICAgICAgICAgIC5mb3JtRW5jb2RlZFBvc3ROb0Vycm9ySGFuZGxpbmcoVVJMUy5SZWZyZXNoLCB7fSlcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgdGFrZSgxKSxcclxuICAgICAgICAgICAgICBtYXAoKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmhhbmRsZVJlc3BvbnNlKGRhdGEpO1xyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgICAgICAoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBkYXRhID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICAgICAgICByZXNvbHZlKGZhbHNlKTtcclxuICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucm91dGVyLnVybCAhPT0gJ2xvZ2luJykge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGxvZ291dERpYWxvZyA9IHRoaXMubW9kYWxTZXJ2aWNlXHJcbiAgICAgICAgICAgICAgICAgICAgICAub3BlbihcclxuICAgICAgICAgICAgICAgICAgICAgICAgTW9kYWxUeXBlcy5CYXNlTW9kYWxDb21wb25lbnQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICdBdXRvIExvZ291dCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYm9keTogJycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBidXR0b25DYW5jZWw6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9uT2s6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBidXR0b25Pa1RleHQ6ICdDb250aW51ZSdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2dvdXQoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5zZXRSZWZyZXNoKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAoZXJyb3IpID0+IHtcclxuICAgICAgICAgICAgICAgIHJlc29sdmUoZmFsc2UpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgIClcclxuICAgICAgICAudGhlbigoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnJlZnJlc2hQcm9taXNlID0gbnVsbDtcclxuICAgICAgICAgIHJldHVybiBkYXRhO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnJlZnJlc2hQcm9taXNlID0gbnVsbDtcclxuICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgIHJldHVybiB0aGlzLnJlZnJlc2hQcm9taXNlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjbGVhclJlZnJlc2goKSB7XHJcbiAgICBpZiAodGhpcy50aW1lb3V0U3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXRTdWJzY3JpcHRpb24pO1xyXG4gICAgICB0aGlzLnRpbWVvdXRTdWJzY3JpcHRpb24gPSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRSZWZyZXNoKCkge1xyXG4gICAgdGhpcy50aW1lb3V0U3Vic2NyaXB0aW9uID0gd2luZG93LnNldFRpbWVvdXQoXHJcbiAgICAgIHRoaXMucmVmcmVzaFRva2VuLmJpbmQodGhpcyksXHJcbiAgICAgIHRoaXMuZW52aXJvbm1lbnQuYXV0aFJlZnJlc2hUaW1lb3V0ICogMTAwMFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGxvZ2luKFxyXG4gICAgdXNlcm5hbWU6IHN0cmluZyxcclxuICAgIHBhc3N3b3JkOiBzdHJpbmcsXHJcbiAgICBhZ2Fpbj86IGJvb2xlYW5cclxuICApOiBPYnNlcnZhYmxlPFVzZXJEYXRhPiB7XHJcbiAgICB0aGlzLnVzZXJTZXJ2aWNlLmVtcHR5VXNlckRhdGEoKTtcclxuXHJcbiAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmNsZWFyU2Vzc2lvbkRhdGEoKTtcclxuICAgIHRoaXMuY2xlYXJSZWZyZXNoKCk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5mb3JtRW5jb2RlZFBvc3ROb0Vycm9ySGFuZGxpbmcoVVJMUy5BY2Nlc3NUb2tlbiwge1xyXG4gICAgICAgIHVzZXJuYW1lLFxyXG4gICAgICAgIHBhc3N3b3JkXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHRha2UoMSksXHJcbiAgICAgICAgbWFwKCh2YWx1ZTogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNldFJlZnJlc2goKTtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmhhbmRsZVJlc3BvbnNlKHZhbHVlKTtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLypcclxuXHRcdEBkZXNjIC0gdGhpcyB3aWxsIGRldGVybWluZSBpZiB0aGVyZSBpcyBhIGxvZ2luIGVycm9yIGZvciB0aGUgcmVxdWVzdCBvciBub3QsIHNpbmNlIHRoaXMgaXMgYSBwb3RlbnRpYWwgZXJyb3IgZm9yIGV2ZXJ5IGNhbGxcclxuXHQqKi9cclxuICBoYW5kbGVSZXNwb25zZShkYXRhOiBhbnkpOiBhbnkge1xyXG4gICAgaWYgKHR5cGVvZiBkYXRhID09PSAnb2JqZWN0JyAmJiBkYXRhLmp3dCkge1xyXG4gICAgICB0aGlzLnVzZXJTZXJ2aWNlLnNldFVzZXIoZGF0YS5qd3RPYmplY3QpO1xyXG4gICAgICBkZWxldGUgZGF0YS5qd3Q7XHJcbiAgICAgIGRlbGV0ZSBkYXRhLmp3dE9iamVjdDtcclxuICAgIH1cclxuICAgIHJldHVybiBkYXRhO1xyXG4gIH1cclxuXHJcbiAgY29va2llTG9naW4odXNlcm5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8VXNlckRhdGE+IHtcclxuICAgIC8vIGNvbnN0IHNzbyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3Nzb19xdWVyeScpO1xyXG4gICAgLypcclxuICAgIHRoaXMudXNlclNlcnZpY2UuZW1wdHlVc2VyRGF0YSgpO1xyXG4gICAgdGhpcy51c2VyU2VydmljZS5zZXRVc2VyQWdlbnQodXNlcm5hbWUpO1xyXG4gICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnc3NvX3F1ZXJ5Jywgc3NvKTtcclxuICAgIHRoaXMuYXV0aEluZm8gPSBuZXcgQXV0aEluZm8odXNlcm5hbWUsICcnLCBmYWxzZSk7Ki9cclxuICAgIC8vIHJldHVybiB0aGlzLmh0dHAuZ2V0KFVSTFMuTlVNQkVSX09OQ0VfVE9LRU5fVVJMKTtcclxuICAgIHJldHVybiBvZihudWxsKTtcclxuICB9XHJcblxyXG4gIGxvZ291dCgpIHtcclxuICAgIGNvbnN0IGlzU1NPID0gdGhpcy51c2VyU2VydmljZS5pc1VzZXJGYXZvcml0ZVNldChcclxuICAgICAgVXNlckZhdm9ydXJpdGUuU1NPX25vX3Bhc3N3b3JkXHJcbiAgICApO1xyXG4gICAgdGhpcy5jbGVhclJlZnJlc2goKTtcclxuICAgIHRoaXMuaXNMb2dnZWRJbiA9IGZhbHNlO1xyXG4gICAgdGhpcy51c2VyU2VydmljZS5lbXB0eVVzZXJEYXRhKCk7XHJcblxyXG4gICAgdGhpcy5zdG9yYWdlU2VydmljZS5jbGVhclNlc3Npb25EYXRhKCk7XHJcbiAgICB0aGlzLmh0dHAucG9zdChVUkxTLkxPR09VVF9VUkwpLnN1YnNjcmliZShcclxuICAgICAgKGRhdGEpID0+IHtcclxuICAgICAgICBpZiAoIWRhdGEuTG9nb3V0U3VjY2Vzcykge1xyXG4gICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBxdW90ZW1hcmtcclxuICAgICAgICAgIGNvbnNvbGUud2FybihcIllvdSdyZSBub3QgbG9nZ2VkIGluLCBjYW5ub3QgbG9nIG91dC5cIik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5ldmVudE1lc3NlbmFnZXIuZW1pdChVU0VSX1NJR05FRE9VVCwge30pO1xyXG5cclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICB0aGlzLnVzZXJTZXJ2aWNlLmlzVXNlckZhdm9yaXRlU2V0KFVzZXJGYXZvcnVyaXRlLlNTT19ub19wYXNzd29yZClcclxuICAgICAgICApIHtcclxuICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnbG9nT3V0RGlnaXRzVXNlciddKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWydsb2dvbiddKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VQYXNzd29yZChhdXRoSW5mbzogQXV0aEluZm8pOiBPYnNlcnZhYmxlPFBhc3N3b3JkQ2hhbmdlUmVzcG9uc2U+IHtcclxuICAgIC8vIHJldHVybiB0aGlzLmh0dHBcclxuICAgIC8vICAgLmZvcm1FbmNvZGVkUG9zdChVUkxTLkNIQU5HRV9QQVNTV09SRCwgYXV0aEluZm8uZ2V0Q2hhbmdlUGFzc1Rva2VuU3RyKCkpXHJcbiAgICAvLyAgIC5waXBlKFxyXG4gICAgLy8gICAgIG1hcCgocmVzOiBQYXNzd29yZENoYW5nZVJlc3BvbnNlKSA9PiB7XHJcbiAgICAvLyAgICAgICBpZiAocmVzLnN1Y2Nlc3MpIHtcclxuICAgIC8vICAgICAgICAgcmV0dXJuIHJlcztcclxuICAgIC8vICAgICAgIH0gZWxzZSB7XHJcbiAgICAvLyAgICAgICAgIHRocm93IG5ldyBMb2dpbkVycm9yKExvZ2luRXJyb3JSZWFzb24uUEFTU1dPUkRfQ0hBTkdFLCByZXMpO1xyXG4gICAgLy8gICAgICAgfVxyXG4gICAgLy8gICAgIH0pXHJcbiAgICAvLyAgICk7XHJcbiAgICByZXR1cm4gb2YobnVsbCk7XHJcbiAgfVxyXG5cclxuICByZXNldFBhc3N3b3JkKHBhc3N3b3JkUmVzZXRUb2tlbjogc3RyaW5nLCBuZXdQYXNzd29yZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxQYXNzd29yZENoYW5nZVJlc3BvbnNlPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmZvcm1FbmNvZGVkUG9zdChcclxuICAgICAgVVJMUy5SRVNFVF9QQVNTV09SRCxcclxuICAgICAge1xyXG4gICAgICAgIHBhc3N3b3JkUmVzZXRUb2tlbixcclxuICAgICAgICBuZXdQYXNzd29yZFxyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLypcclxuXHRcdEBkZXNjIC0gYWN0YXVhbGx5IGNhbGwgdGhlIGJhY2tlbmQgcGVybCBmb3IgcmVjb3ZlciBwYXNzXHJcblx0KiovXHJcbiAgcmVjb3ZlclBhc3N3b3JkKHVzZXJuYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5mb3JtRW5jb2RlZFBvc3QoXHJcbiAgICAgIFVSTFMuUkVDT1ZFUl9QQVNTV09SRF9VUkwsXHJcbiAgICAgIHtcclxuICAgICAgICB1c2VybmFtZTpgJHt1c2VybmFtZX1gLFxyXG4gICAgICB9LFxyXG4gICAgICAndGV4dCdcclxuICAgIClcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgICpcdEBkZXNjIC0gZXJyb3IgaGFuZGxpbmcsIG9wZW5zIGEgbW9kYWwgd2l0aCB0aGUgcGFzc2VkIGluIGVycm9yIG1lc3NhZ2VcclxuICAgKiovXHJcbiAgaGFuZGxlRXJyb3IoZXJyb3I6IHN0cmluZykge1xyXG4gICAgLy8gdGhpcy51c2VyU2VydmljZS5iZWNvbWluZ1VzZXIgPSBmYWxzZTtcclxuICAgIGNvbnN0IG1vZGFsVmFsdWVzID0ge1xyXG4gICAgICBlcnJvclxyXG4gICAgfTtcclxuICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oTW9kYWxUeXBlcy5Nb2RhbEVycm9yQ29tcG9uZW50LCB7fSwgbW9kYWxWYWx1ZXMpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
211
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29idHNlcnZpY2VzL2Jhc2Uvc3JjL2xpYi92ZW5kb3Ivc2VydmljZXMvbG9nb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUkzQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3RDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQWF6RCxNQUFNLE9BQU8sZ0JBQWdCO0lBUzNCLFlBQ1UsV0FBaUMsRUFDakMsWUFBb0MsRUFDcEMsSUFBNkIsRUFDN0IsTUFBYyxFQUNkLGVBQW9DLEVBQ3BDLGNBQWtDLEVBQ2xDLFdBQTRCLEVBQzVCLGVBQW9DO1FBUHBDLGdCQUFXLEdBQVgsV0FBVyxDQUFzQjtRQUNqQyxpQkFBWSxHQUFaLFlBQVksQ0FBd0I7UUFDcEMsU0FBSSxHQUFKLElBQUksQ0FBeUI7UUFDN0IsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLG9CQUFlLEdBQWYsZUFBZSxDQUFxQjtRQUNwQyxtQkFBYyxHQUFkLGNBQWMsQ0FBb0I7UUFDbEMsZ0JBQVcsR0FBWCxXQUFXLENBQWlCO1FBQzVCLG9CQUFlLEdBQWYsZUFBZSxDQUFxQjtRQWhCOUMsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBSWpCLG1CQUFjLEdBQXFCLElBQUksQ0FBQztJQVdyQyxD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QzNCLHNCQUFzQjtRQUN0QixpQkFBaUI7UUFDakIsdUVBQXVFO1FBQ3ZFLFVBQVU7UUFDVixTQUFTO1FBQ1QsT0FBTztRQUNQLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxhQUFhLENBQ1gsa0JBQTBCLEVBQzFCLFdBQW1CO1FBRW5CLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUNwRCxrQkFBa0I7WUFDbEIsV0FBVztTQUNaLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7U0FFRTtJQUNGLGVBQWUsQ0FBQyxRQUFnQjtRQUM5QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUM5QixJQUFJLENBQUMsb0JBQW9CLEVBQ3pCO1lBQ0UsUUFBUSxFQUFFLEdBQUcsUUFBUSxFQUFFO1NBQ3hCLEVBQ0QsTUFBTSxDQUNQLENBQUM7SUFDSixDQUFDO0lBRUQ7O1FBRUk7SUFDSixXQUFXLENBQUMsS0FBYTtRQUN2Qix5Q0FBeUM7UUFDekMsTUFBTSxXQUFXLEdBQUc7WUFDbEIsS0FBSztTQUNOLENBQUM7UUFDRixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQzFFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFVTRVJfU0lHTkVET1VUIH0gZnJvbSAnLi91c2VyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBtYXAsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEJhc2VNb2RhbE9wZW5lclNlcnZpY2UgfSBmcm9tICcuL21vZGFsLW9wZW5lci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQmFzZVN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi9zdG9yYWdlLnNlcnZpY2UnO1xyXG5cclxuaW1wb3J0IHsgVVJMUyB9IGZyb20gJy4vdXJsLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVc2VyRmF2b3J1cml0ZSB9IGZyb20gJy4uL2NsYXNzZXMvdXNlci1mYXZvdXJpdGUuZW51bSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEJhc2VFdmVudE1lc3NlbmFnZXIgfSBmcm9tICcuLi9jbGFzc2VzL2V2ZW50LW1lc3NlbmFnZXInO1xyXG5pbXBvcnQgeyBCYXNlRW52aXJvbm1lbnQgfSBmcm9tICcuLi9jbGFzc2VzL2Vudmlyb21lbnQnO1xyXG5pbXBvcnQgeyBNb2RhbFR5cGVzIH0gZnJvbSAnLi4vY2xhc3Nlcy9tb2RhbC10eXBlcy5lbnVtJztcclxuaW1wb3J0IHsgVXNlckRhdGEgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3VzZXIuZGF0YSc7XHJcbmltcG9ydCB7XHJcbiAgQXV0aEluZm8sXHJcbiAgTG9naW5SZXNwb25zZSxcclxuICBQYXNzd29yZENoYW5nZVJlc3BvbnNlXHJcbn0gZnJvbSAnLi4vbW9kZWxzL2xvZ2luLm1vZGVsJztcclxuaW1wb3J0IHsgVXNlclNlcnZpY2VJbnRlcmZhY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL0l1c2VyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdEh0dHBDYWxsU2VydmljZSB9IGZyb20gJy4vaHR0cC1jYWxsLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICcuLi90eXBlcy90eXBlcyc7XHJcbmltcG9ydCB7IFVzZXIgfSBmcm9tICcuLi90eXBlcy9ncmFwaHFsLnR5cGVzJztcclxuaW1wb3J0IHsgQmFzZVdlYlRva2VuU2VydmljZSB9IGZyb20gJy4vd2VidG9rZW4uc2VydmljZSc7XHJcblxyXG5leHBvcnQgY2xhc3MgQmFzZUxvZ29uU2VydmljZSB7XHJcbiAgbG9hZGluZyA9IGZhbHNlO1xyXG4gIGlzTG9nZ2VkSW4gPSBmYWxzZTtcclxuICByZWRpcmVjdFVybCA9ICcnO1xyXG4gIGF1dGhJbmZvOiBBdXRoSW5mbztcclxuICBsb2dpblJlc3BvbnNlOiBMb2dpblJlc3BvbnNlO1xyXG4gIHRpbWVvdXRTdWJzY3JpcHRpb246IG51bWJlcjtcclxuICByZWZyZXNoUHJvbWlzZTogUHJvbWlzZTxib29sZWFuPiA9IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSB1c2VyU2VydmljZTogVXNlclNlcnZpY2VJbnRlcmZhY2UsXHJcbiAgICBwcml2YXRlIG1vZGFsU2VydmljZTogQmFzZU1vZGFsT3BlbmVyU2VydmljZSxcclxuICAgIHByaXZhdGUgaHR0cDogQWJzdHJhY3RIdHRwQ2FsbFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSBldmVudE1lc3NlbmFnZXI6IEJhc2VFdmVudE1lc3NlbmFnZXIsXHJcbiAgICBwcml2YXRlIHN0b3JhZ2VTZXJ2aWNlOiBCYXNlU3RvcmFnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGVudmlyb25tZW50OiBCYXNlRW52aXJvbm1lbnQsXHJcbiAgICBwcml2YXRlIHdlYlRva2VuU2VydmljZTogQmFzZVdlYlRva2VuU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgY2hlY2tMb2dpbigpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIHJldHVybiB0aGlzLnJlZnJlc2hUb2tlbigpO1xyXG4gIH1cclxuXHJcbiAgcmVmcmVzaFRva2VuKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgdGhpcy5yZWZyZXNoUHJvbWlzZSA9XHJcbiAgICAgIHRoaXMucmVmcmVzaFByb21pc2UgfHxcclxuICAgICAgbmV3IFByb21pc2UoXHJcbiAgICAgICAgKHJlc29sdmU6ICh2YWx1ZTogYm9vbGVhbikgPT4gdm9pZCwgcmVqZWN0OiAoZXJyb3I6IGFueSkgPT4gdm9pZCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5jbGVhclJlZnJlc2goKTtcclxuICAgICAgICAgIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAuZm9ybUVuY29kZWRQb3N0Tm9FcnJvckhhbmRsaW5nKFVSTFMuUmVmcmVzaCwge30pXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgIHRha2UoMSksXHJcbiAgICAgICAgICAgICAgbWFwKChkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5oYW5kbGVSZXNwb25zZShkYXRhKTtcclxuICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgICAgICAgcmVzb2x2ZShmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnJvdXRlci51cmwgIT09ICdsb2dpbicpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBsb2dvdXREaWFsb2cgPSB0aGlzLm1vZGFsU2VydmljZVxyXG4gICAgICAgICAgICAgICAgICAgICAgLm9wZW4oXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIE1vZGFsVHlwZXMuQmFzZU1vZGFsQ29tcG9uZW50LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7fSxcclxuICAgICAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAnQXV0byBMb2dvdXQnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGJvZHk6ICcnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlzTG9hZGluZzogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9uQ2FuY2VsOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvbk9rOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9uT2tUZXh0OiAnQ29udGludWUnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgICAudGhlbigoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9nb3V0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgIHJlc29sdmUodHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuc2V0UmVmcmVzaCgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXNvbHZlKGZhbHNlKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICApXHJcbiAgICAgICAgLnRoZW4oKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5yZWZyZXNoUHJvbWlzZSA9IG51bGw7XHJcbiAgICAgICAgICByZXR1cm4gZGF0YTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5yZWZyZXNoUHJvbWlzZSA9IG51bGw7XHJcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5yZWZyZXNoUHJvbWlzZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2xlYXJSZWZyZXNoKCkge1xyXG4gICAgaWYgKHRoaXMudGltZW91dFN1YnNjcmlwdGlvbikge1xyXG4gICAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lb3V0U3Vic2NyaXB0aW9uKTtcclxuICAgICAgdGhpcy50aW1lb3V0U3Vic2NyaXB0aW9uID0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0UmVmcmVzaCgpIHtcclxuICAgIHRoaXMudGltZW91dFN1YnNjcmlwdGlvbiA9IHdpbmRvdy5zZXRUaW1lb3V0KFxyXG4gICAgICB0aGlzLnJlZnJlc2hUb2tlbi5iaW5kKHRoaXMpLFxyXG4gICAgICB0aGlzLmVudmlyb25tZW50LmF1dGhSZWZyZXNoVGltZW91dCAqIDEwMDBcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBiZWNvbWVVc2VyKHVzZXJuYW1lOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZShcclxuICAgICAgKHJlc29sdmU6ICh2YWx1ZTogYm9vbGVhbikgPT4gdm9pZCwgcmVqZWN0OiAoZXJyb3I6IGFueSkgPT4gdm9pZCkgPT4ge1xyXG4gICAgICAgIHRoaXMuY2xlYXJSZWZyZXNoKCk7XHJcbiAgICAgICAgdGhpcy5odHRwXHJcbiAgICAgICAgICAucG9zdChVUkxTLkJFQ09NRV9VU0VSLCB7IHVzZXJuYW1lIH0pXHJcbiAgICAgICAgICAucGlwZSh0YWtlKDEpKVxyXG4gICAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgICAgKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhKTtcclxuICAgICAgICAgICAgICB0aGlzLnVzZXJTZXJ2aWNlLnNldFVzZXIoZGF0YS5qd3RPYmplY3QpO1xyXG4gICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnbWFpbiddKTtcclxuICAgICAgICAgICAgICByZXNvbHZlKHRydWUpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAoZXJyb3IpID0+IHtcclxuICAgICAgICAgICAgICByZWplY3QoZXJyb3IpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZW5kQmVjb21lVXNlclNlc3Npb24oKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoXHJcbiAgICAgIChyZXNvbHZlOiAodmFsdWU6IGJvb2xlYW4pID0+IHZvaWQsIHJlamVjdDogKGVycm9yOiBhbnkpID0+IHZvaWQpID0+IHtcclxuICAgICAgICB0aGlzLmNsZWFyUmVmcmVzaCgpO1xyXG4gICAgICAgIHRoaXMuaHR0cFxyXG4gICAgICAgICAgLnBvc3QoVVJMUy5FTkRfQkVDT01FX1VTRVIsIHt9KVxyXG4gICAgICAgICAgLnBpcGUodGFrZSgxKSlcclxuICAgICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgIChkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coZGF0YSk7XHJcbiAgICAgICAgICAgICAgdGhpcy51c2VyU2VydmljZS5zZXRVc2VyKGRhdGEuand0T2JqZWN0KTtcclxuICAgICAgICAgICAgICByZXNvbHZlKHRydWUpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAoZXJyb3IpID0+IHtcclxuICAgICAgICAgICAgICByZWplY3QoZXJyb3IpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgbG9naW4oXHJcbiAgICB1c2VybmFtZTogc3RyaW5nLFxyXG4gICAgcGFzc3dvcmQ6IHN0cmluZyxcclxuICAgIGFnYWluPzogYm9vbGVhblxyXG4gICk6IE9ic2VydmFibGU8VXNlckRhdGE+IHtcclxuICAgIHRoaXMudXNlclNlcnZpY2UuZW1wdHlVc2VyRGF0YSgpO1xyXG5cclxuICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UuY2xlYXJTZXNzaW9uRGF0YSgpO1xyXG4gICAgdGhpcy5jbGVhclJlZnJlc2goKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmZvcm1FbmNvZGVkUG9zdE5vRXJyb3JIYW5kbGluZyhVUkxTLkFjY2Vzc1Rva2VuLCB7XHJcbiAgICAgICAgdXNlcm5hbWUsXHJcbiAgICAgICAgcGFzc3dvcmRcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgdGFrZSgxKSxcclxuICAgICAgICBtYXAoKHZhbHVlOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgIHRoaXMud2ViVG9rZW5TZXJ2aWNlLmJvYm8gPSBudWxsO1xyXG4gICAgICAgICAgdGhpcy5zZXRSZWZyZXNoKCk7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5oYW5kbGVSZXNwb25zZSh2YWx1ZSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qXHJcblx0XHRAZGVzYyAtIHRoaXMgd2lsbCBkZXRlcm1pbmUgaWYgdGhlcmUgaXMgYSBsb2dpbiBlcnJvciBmb3IgdGhlIHJlcXVlc3Qgb3Igbm90LCBzaW5jZSB0aGlzIGlzIGEgcG90ZW50aWFsIGVycm9yIGZvciBldmVyeSBjYWxsXHJcblx0KiovXHJcbiAgaGFuZGxlUmVzcG9uc2UoZGF0YTogYW55KTogYW55IHtcclxuICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcgJiYgZGF0YS5qd3QpIHtcclxuICAgICAgdGhpcy51c2VyU2VydmljZS5zZXRVc2VyKGRhdGEuand0T2JqZWN0KTtcclxuICAgICAgZGVsZXRlIGRhdGEuand0O1xyXG4gICAgICBkZWxldGUgZGF0YS5qd3RPYmplY3Q7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZGF0YTtcclxuICB9XHJcblxyXG4gIGNvb2tpZUxvZ2luKHVzZXJuYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFVzZXJEYXRhPiB7XHJcbiAgICAvLyBjb25zdCBzc28gPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdzc29fcXVlcnknKTtcclxuICAgIC8qXHJcbiAgICB0aGlzLnVzZXJTZXJ2aWNlLmVtcHR5VXNlckRhdGEoKTtcclxuICAgIHRoaXMudXNlclNlcnZpY2Uuc2V0VXNlckFnZW50KHVzZXJuYW1lKTtcclxuICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ3Nzb19xdWVyeScsIHNzbyk7XHJcbiAgICB0aGlzLmF1dGhJbmZvID0gbmV3IEF1dGhJbmZvKHVzZXJuYW1lLCAnJywgZmFsc2UpOyovXHJcbiAgICAvLyByZXR1cm4gdGhpcy5odHRwLmdldChVUkxTLk5VTUJFUl9PTkNFX1RPS0VOX1VSTCk7XHJcbiAgICByZXR1cm4gb2YobnVsbCk7XHJcbiAgfVxyXG5cclxuICBsb2dvdXQoKSB7XHJcbiAgICBjb25zdCBpc1NTTyA9IHRoaXMudXNlclNlcnZpY2UuaXNVc2VyRmF2b3JpdGVTZXQoXHJcbiAgICAgIFVzZXJGYXZvcnVyaXRlLlNTT19ub19wYXNzd29yZFxyXG4gICAgKTtcclxuICAgIHRoaXMuY2xlYXJSZWZyZXNoKCk7XHJcbiAgICB0aGlzLmlzTG9nZ2VkSW4gPSBmYWxzZTtcclxuICAgIHRoaXMud2ViVG9rZW5TZXJ2aWNlLmJvYm8gPSBudWxsO1xyXG4gICAgdGhpcy51c2VyU2VydmljZS5lbXB0eVVzZXJEYXRhKCk7XHJcblxyXG4gICAgdGhpcy5zdG9yYWdlU2VydmljZS5jbGVhclNlc3Npb25EYXRhKCk7XHJcbiAgICB0aGlzLmh0dHAucG9zdChVUkxTLkxPR09VVF9VUkwpLnN1YnNjcmliZShcclxuICAgICAgKGRhdGEpID0+IHtcclxuICAgICAgICBpZiAoIWRhdGEuTG9nb3V0U3VjY2Vzcykge1xyXG4gICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBxdW90ZW1hcmtcclxuICAgICAgICAgIGNvbnNvbGUud2FybihcIllvdSdyZSBub3QgbG9nZ2VkIGluLCBjYW5ub3QgbG9nIG91dC5cIik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5ldmVudE1lc3NlbmFnZXIuZW1pdChVU0VSX1NJR05FRE9VVCwge30pO1xyXG5cclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICB0aGlzLnVzZXJTZXJ2aWNlLmlzVXNlckZhdm9yaXRlU2V0KFVzZXJGYXZvcnVyaXRlLlNTT19ub19wYXNzd29yZClcclxuICAgICAgICApIHtcclxuICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnbG9nT3V0RGlnaXRzVXNlciddKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWydsb2dvbiddKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VQYXNzd29yZChhdXRoSW5mbzogQXV0aEluZm8pOiBPYnNlcnZhYmxlPFBhc3N3b3JkQ2hhbmdlUmVzcG9uc2U+IHtcclxuICAgIC8vIHJldHVybiB0aGlzLmh0dHBcclxuICAgIC8vICAgLmZvcm1FbmNvZGVkUG9zdChVUkxTLkNIQU5HRV9QQVNTV09SRCwgYXV0aEluZm8uZ2V0Q2hhbmdlUGFzc1Rva2VuU3RyKCkpXHJcbiAgICAvLyAgIC5waXBlKFxyXG4gICAgLy8gICAgIG1hcCgocmVzOiBQYXNzd29yZENoYW5nZVJlc3BvbnNlKSA9PiB7XHJcbiAgICAvLyAgICAgICBpZiAocmVzLnN1Y2Nlc3MpIHtcclxuICAgIC8vICAgICAgICAgcmV0dXJuIHJlcztcclxuICAgIC8vICAgICAgIH0gZWxzZSB7XHJcbiAgICAvLyAgICAgICAgIHRocm93IG5ldyBMb2dpbkVycm9yKExvZ2luRXJyb3JSZWFzb24uUEFTU1dPUkRfQ0hBTkdFLCByZXMpO1xyXG4gICAgLy8gICAgICAgfVxyXG4gICAgLy8gICAgIH0pXHJcbiAgICAvLyAgICk7XHJcbiAgICByZXR1cm4gb2YobnVsbCk7XHJcbiAgfVxyXG5cclxuICByZXNldFBhc3N3b3JkKFxyXG4gICAgcGFzc3dvcmRSZXNldFRva2VuOiBzdHJpbmcsXHJcbiAgICBuZXdQYXNzd29yZDogc3RyaW5nXHJcbiAgKTogT2JzZXJ2YWJsZTxQYXNzd29yZENoYW5nZVJlc3BvbnNlPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmZvcm1FbmNvZGVkUG9zdChVUkxTLlJFU0VUX1BBU1NXT1JELCB7XHJcbiAgICAgIHBhc3N3b3JkUmVzZXRUb2tlbixcclxuICAgICAgbmV3UGFzc3dvcmRcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLypcclxuXHRcdEBkZXNjIC0gYWN0YXVhbGx5IGNhbGwgdGhlIGJhY2tlbmQgcGVybCBmb3IgcmVjb3ZlciBwYXNzXHJcblx0KiovXHJcbiAgcmVjb3ZlclBhc3N3b3JkKHVzZXJuYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5mb3JtRW5jb2RlZFBvc3QoXHJcbiAgICAgIFVSTFMuUkVDT1ZFUl9QQVNTV09SRF9VUkwsXHJcbiAgICAgIHtcclxuICAgICAgICB1c2VybmFtZTogYCR7dXNlcm5hbWV9YFxyXG4gICAgICB9LFxyXG4gICAgICAndGV4dCdcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gICAqXHRAZGVzYyAtIGVycm9yIGhhbmRsaW5nLCBvcGVucyBhIG1vZGFsIHdpdGggdGhlIHBhc3NlZCBpbiBlcnJvciBtZXNzYWdlXHJcbiAgICoqL1xyXG4gIGhhbmRsZUVycm9yKGVycm9yOiBzdHJpbmcpIHtcclxuICAgIC8vIHRoaXMudXNlclNlcnZpY2UuYmVjb21pbmdVc2VyID0gZmFsc2U7XHJcbiAgICBjb25zdCBtb2RhbFZhbHVlcyA9IHtcclxuICAgICAgZXJyb3JcclxuICAgIH07XHJcbiAgICB0aGlzLm1vZGFsU2VydmljZS5vcGVuKE1vZGFsVHlwZXMuTW9kYWxFcnJvckNvbXBvbmVudCwge30sIG1vZGFsVmFsdWVzKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import { ModalTypes } from '../classes/modal-types.enum';
|
|
3
|
+
export class BaseRequiresReasonService {
|
|
4
|
+
constructor(modalService, basketService) {
|
|
5
|
+
this.modalService = modalService;
|
|
6
|
+
this.basketService = basketService;
|
|
7
|
+
}
|
|
8
|
+
addBasketItem(basket) {
|
|
9
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
10
|
+
if (basket.id !== this.currentBasketid || this.workingOn) {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
const basketItems = basket.basketItems.filter((bi) => {
|
|
14
|
+
return (bi.requiresReason &&
|
|
15
|
+
bi.managementInfo.filter((mi) => {
|
|
16
|
+
return mi.reason && mi.selectedValues.length === 0;
|
|
17
|
+
}).length !== 0);
|
|
18
|
+
});
|
|
19
|
+
if (basketItems.length > 0) {
|
|
20
|
+
this.workingOn = {
|
|
21
|
+
basket,
|
|
22
|
+
required: basketItems.reduce((required, bi) => {
|
|
23
|
+
required[bi.id] = bi.managementInfo.filter((mi) => {
|
|
24
|
+
return mi.reason && mi.selectedValues.length === 0;
|
|
25
|
+
});
|
|
26
|
+
return required;
|
|
27
|
+
}, {})
|
|
28
|
+
};
|
|
29
|
+
const results = yield this.modalService.open(ModalTypes.RequiresReasonDialogComponent, { backdrop: 'static' }, this.workingOn);
|
|
30
|
+
if (results) {
|
|
31
|
+
yield Promise.all(this.workingOn.basket.basketItems.map((bi) => {
|
|
32
|
+
return Promise.all((bi.managementInfo || []).map((mi) => {
|
|
33
|
+
if (results[mi.id]) {
|
|
34
|
+
return this.basketService.setMiSelectedValue(this.workingOn.basket.id, mi, results[mi.id], null);
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
return Promise.resolve();
|
|
38
|
+
}
|
|
39
|
+
}));
|
|
40
|
+
}));
|
|
41
|
+
this.workingOn = null;
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
yield Promise.all(Object.entries(this.workingOn.required).map(([biId, mis]) => {
|
|
45
|
+
return this.basketService.removeBasketItem(this.workingOn.basket.id, this.workingOn.basket.basketItems.find((bi) => bi.id === biId));
|
|
46
|
+
}));
|
|
47
|
+
this.workingOn = null;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWlyZXMtcmVhc29uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vYnRzZXJ2aWNlcy9iYXNlL3NyYy9saWIvdmVuZG9yL3NlcnZpY2VzL3JlcXVpcmVzLXJlYXNvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFFQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFlekQsTUFBTSxPQUFPLHlCQUF5QjtJQU1wQyxZQUNVLFlBQW9DLEVBQ3BDLGFBQStDO1FBRC9DLGlCQUFZLEdBQVosWUFBWSxDQUF3QjtRQUNwQyxrQkFBYSxHQUFiLGFBQWEsQ0FBa0M7SUFDdEQsQ0FBQztJQUVFLGFBQWEsQ0FBQyxNQUF3Qjs7WUFDMUMsSUFBSSxNQUFNLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDeEQsT0FBTzthQUNSO1lBRUQsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFjLEVBQUUsRUFBRTtnQkFDL0QsT0FBTyxDQUNMLEVBQUUsQ0FBQyxjQUFjO29CQUNqQixFQUFFLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQWtCLEVBQUUsRUFBRTt3QkFDOUMsT0FBTyxFQUFFLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxjQUFjLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztvQkFDckQsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FDaEIsQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUFDO1lBRUgsSUFBSSxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDMUIsSUFBSSxDQUFDLFNBQVMsR0FBRztvQkFDZixNQUFNO29CQUNOLFFBQVEsRUFBRSxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBa0IsRUFBRSxFQUFjLEVBQUUsRUFBRTt3QkFDbEUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQWtCLEVBQUUsRUFBRTs0QkFDaEUsT0FBTyxFQUFFLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxjQUFjLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQzt3QkFDckQsQ0FBQyxDQUFDLENBQUM7d0JBQ0gsT0FBTyxRQUFRLENBQUM7b0JBQ2xCLENBQUMsRUFBRSxFQUFFLENBQUM7aUJBQ1AsQ0FBQztnQkFFRixNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUMxQyxVQUFVLENBQUMsNkJBQTZCLEVBQ3hDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxFQUN0QixJQUFJLENBQUMsU0FBUyxDQUNmLENBQUM7Z0JBQ0YsSUFBSSxPQUFPLEVBQUU7b0JBQ1gsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUNmLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFjLEVBQUUsRUFBRTt3QkFDdkQsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUNoQixDQUFDLEVBQUUsQ0FBQyxjQUFjLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUMzQixDQUFDLEVBQWtCLEVBQWlCLEVBQUU7NEJBQ3BDLElBQUksT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRTtnQ0FDbEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUMxQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQ3hCLEVBQUUsRUFDRixPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUNkLElBQUksQ0FDTCxDQUFDOzZCQUNIO2lDQUFNO2dDQUNMLE9BQU8sT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDOzZCQUMxQjt3QkFDSCxDQUFDLENBQ0YsQ0FDRixDQUFDO29CQUNKLENBQUMsQ0FBQyxDQUNILENBQUM7b0JBQ0YsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7aUJBQ3ZCO3FCQUFNO29CQUNMLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDZixNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUN6QyxDQUFDLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBNkIsRUFBaUIsRUFBRTt3QkFDekQsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUN4QyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQ3BDLENBQUMsRUFBYyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLElBQUksQ0FDbkMsQ0FDRixDQUFDO29CQUNKLENBQUMsQ0FDRixDQUNGLENBQUM7b0JBQ0YsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7aUJBQ3ZCO2FBQ0Y7UUFDSCxDQUFDO0tBQUE7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VNb2RhbE9wZW5lclNlcnZpY2UgfSBmcm9tICcuL21vZGFsLW9wZW5lci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQmFza2V0SXRlbSwgTWFuYWdlbWVudEluZm8gfSBmcm9tICcuLi90eXBlcy9ncmFwaHFsLnR5cGVzJztcclxuaW1wb3J0IHsgTW9kYWxUeXBlcyB9IGZyb20gJy4uL2NsYXNzZXMvbW9kYWwtdHlwZXMuZW51bSc7XHJcbmltcG9ydCB7IFVzZXJCYXNrZXRSZXN1bHQgfSBmcm9tICcuLi90eXBlcy90eXBlcyc7XHJcbmltcG9ydCB7IEVudGVycHJpc2VCYXNrZXRTZXJ2aWNlSW50ZXJmYWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JZW50ZXJwcmlzZS1iYXNrZXQuc2VydmljZSc7XHJcbmltcG9ydCB7IG9mIH0gZnJvbSAncnhqcyc7XHJcblxyXG5leHBvcnQgdHlwZSBSZXF1aXJlZCA9IFJlY29yZDxzdHJpbmcsIE1hbmFnZW1lbnRJbmZvW10+O1xyXG5leHBvcnQgdHlwZSBSZXF1aXJlc1JlYXNvblR5cGUgPSB7XHJcbiAgYmFza2V0OiBVc2VyQmFza2V0UmVzdWx0O1xyXG4gIHJlcXVpcmVkOiBSZXF1aXJlZDtcclxufTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUmVxdWlyZXNSZWFzb25TZXJ2aWNlSW50ZXJmYWNlIHtcclxuICBjdXJyZW50QmFza2V0aWQ6IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEJhc2VSZXF1aXJlc1JlYXNvblNlcnZpY2VcclxuICBpbXBsZW1lbnRzIFJlcXVpcmVzUmVhc29uU2VydmljZUludGVyZmFjZVxyXG57XHJcbiAgcHVibGljIGN1cnJlbnRCYXNrZXRpZDogc3RyaW5nO1xyXG4gIHByaXZhdGUgd29ya2luZ09uOiBSZXF1aXJlc1JlYXNvblR5cGU7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IEJhc2VNb2RhbE9wZW5lclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGJhc2tldFNlcnZpY2U6IEVudGVycHJpc2VCYXNrZXRTZXJ2aWNlSW50ZXJmYWNlXHJcbiAgKSB7fVxyXG5cclxuICBhc3luYyBhZGRCYXNrZXRJdGVtKGJhc2tldDogVXNlckJhc2tldFJlc3VsdCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKGJhc2tldC5pZCAhPT0gdGhpcy5jdXJyZW50QmFza2V0aWQgfHwgdGhpcy53b3JraW5nT24pIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGJhc2tldEl0ZW1zID0gYmFza2V0LmJhc2tldEl0ZW1zLmZpbHRlcigoYmk6IEJhc2tldEl0ZW0pID0+IHtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICBiaS5yZXF1aXJlc1JlYXNvbiAmJlxyXG4gICAgICAgIGJpLm1hbmFnZW1lbnRJbmZvLmZpbHRlcigobWk6IE1hbmFnZW1lbnRJbmZvKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gbWkucmVhc29uICYmIG1pLnNlbGVjdGVkVmFsdWVzLmxlbmd0aCA9PT0gMDtcclxuICAgICAgICB9KS5sZW5ndGggIT09IDBcclxuICAgICAgKTtcclxuICAgIH0pO1xyXG5cclxuICAgIGlmIChiYXNrZXRJdGVtcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMud29ya2luZ09uID0ge1xyXG4gICAgICAgIGJhc2tldCxcclxuICAgICAgICByZXF1aXJlZDogYmFza2V0SXRlbXMucmVkdWNlKChyZXF1aXJlZDogUmVxdWlyZWQsIGJpOiBCYXNrZXRJdGVtKSA9PiB7XHJcbiAgICAgICAgICByZXF1aXJlZFtiaS5pZF0gPSBiaS5tYW5hZ2VtZW50SW5mby5maWx0ZXIoKG1pOiBNYW5hZ2VtZW50SW5mbykgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gbWkucmVhc29uICYmIG1pLnNlbGVjdGVkVmFsdWVzLmxlbmd0aCA9PT0gMDtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgcmV0dXJuIHJlcXVpcmVkO1xyXG4gICAgICAgIH0sIHt9KVxyXG4gICAgICB9O1xyXG5cclxuICAgICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oXHJcbiAgICAgICAgTW9kYWxUeXBlcy5SZXF1aXJlc1JlYXNvbkRpYWxvZ0NvbXBvbmVudCxcclxuICAgICAgICB7IGJhY2tkcm9wOiAnc3RhdGljJyB9LFxyXG4gICAgICAgIHRoaXMud29ya2luZ09uXHJcbiAgICAgICk7XHJcbiAgICAgIGlmIChyZXN1bHRzKSB7XHJcbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoXHJcbiAgICAgICAgICB0aGlzLndvcmtpbmdPbi5iYXNrZXQuYmFza2V0SXRlbXMubWFwKChiaTogQmFza2V0SXRlbSkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoXHJcbiAgICAgICAgICAgICAgKGJpLm1hbmFnZW1lbnRJbmZvIHx8IFtdKS5tYXAoXHJcbiAgICAgICAgICAgICAgICAobWk6IE1hbmFnZW1lbnRJbmZvKTogUHJvbWlzZTx2b2lkPiA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHRzW21pLmlkXSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmJhc2tldFNlcnZpY2Uuc2V0TWlTZWxlY3RlZFZhbHVlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy53b3JraW5nT24uYmFza2V0LmlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgbWksXHJcbiAgICAgICAgICAgICAgICAgICAgICByZXN1bHRzW21pLmlkXSxcclxuICAgICAgICAgICAgICAgICAgICAgIG51bGxcclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLndvcmtpbmdPbiA9IG51bGw7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoXHJcbiAgICAgICAgICBPYmplY3QuZW50cmllcyh0aGlzLndvcmtpbmdPbi5yZXF1aXJlZCkubWFwKFxyXG4gICAgICAgICAgICAoW2JpSWQsIG1pc106IFtzdHJpbmcsIE1hbmFnZW1lbnRJbmZvW11dKTogUHJvbWlzZTx2b2lkPiA9PiB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuYmFza2V0U2VydmljZS5yZW1vdmVCYXNrZXRJdGVtKFxyXG4gICAgICAgICAgICAgICAgdGhpcy53b3JraW5nT24uYmFza2V0LmlkLFxyXG4gICAgICAgICAgICAgICAgdGhpcy53b3JraW5nT24uYmFza2V0LmJhc2tldEl0ZW1zLmZpbmQoXHJcbiAgICAgICAgICAgICAgICAgIChiaTogQmFza2V0SXRlbSkgPT4gYmkuaWQgPT09IGJpSWRcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICApXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLndvcmtpbmdPbiA9IG51bGw7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|