@sabstravtech/obtservices 0.0.22042501 → 0.0.22051001
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/fetchers.d.ts +8 -0
- package/angular/lib/vendor/fetchers/fast-track-quote.fetcher.d.ts +7 -0
- package/angular/lib/vendor/fetchers/get-all-airlines.fetcher.d.ts +7 -0
- package/angular/lib/vendor/fetchers/get-cancellation-info.fetcher.d.ts +7 -0
- package/angular/lib/vendor/fetchers/get-car-hire-providers.fetcher.d.ts +7 -0
- package/angular/lib/vendor/fetchers/get-hotel-chains.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-rail-providers.fetcher.d.ts +7 -0
- package/angular/lib/vendor/fetchers/send-offline-notification.fetcher.d.ts +7 -0
- package/angular/lib/vendor/services/enterprise-basket.service.d.ts +4 -3
- package/angular/lib/vendor/services/search.service.d.ts +10 -3
- package/angular/lib/vendor/services/ticket-queue.service.d.ts +6 -0
- package/angular/lib/vendor/services/user.service.d.ts +5 -3
- package/angular/lib/vendor/types/graphql.angular.types.d.ts +438 -16
- package/angular/lib/vendor/updaters/edit-user.updater.d.ts +6 -0
- package/angular/lib/vendor/updaters/set-user-language-updater.d.ts +6 -0
- package/angular/sabstravtech-obtservices-angular.d.ts +16 -13
- package/angular/sabstravtech-obtservices-angular.metadata.json +1 -1
- package/angular/services.d.ts +1 -0
- package/base/fetchers.d.ts +10 -0
- package/base/interfaces.d.ts +2 -0
- package/base/lib/vendor/classes/cabhire-enterprise-search.d.ts +2 -1
- package/base/lib/vendor/classes/carhire-enterprise-search.d.ts +1 -0
- package/base/lib/vendor/classes/eurostar-enterprise-search.d.ts +8 -2
- package/base/lib/vendor/classes/fast-track-enterprise-search.d.ts +57 -0
- package/base/lib/vendor/classes/flight-enterprise-search.d.ts +2 -1
- package/base/lib/vendor/classes/hotel-enterprise-search.d.ts +3 -1
- package/base/lib/vendor/classes/irl-enterprise-search.d.ts +27 -7
- package/base/lib/vendor/classes/lounges-enterprise-search.d.ts +1 -0
- package/base/lib/vendor/classes/management-info-and-valid.d.ts +6 -1
- package/base/lib/vendor/classes/modal-types.enum.d.ts +2 -0
- package/base/lib/vendor/classes/parking-enterprise-search.d.ts +1 -0
- package/base/lib/vendor/classes/rail-enterprise-search.d.ts +3 -2
- package/base/lib/vendor/fetchers/fast-track-quote.fetcher.d.ts +23 -0
- package/base/lib/vendor/fetchers/get-all-airlines.fetcher.d.ts +20 -0
- package/base/lib/vendor/fetchers/get-cancellation-info.fetcher.d.ts +20 -0
- package/base/lib/vendor/fetchers/get-car-hire-providers.fetcher.d.ts +20 -0
- package/base/lib/vendor/fetchers/get-hotel-chains.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-rail-providers.fetcher.d.ts +20 -0
- package/base/lib/vendor/fetchers/send-offline-notification.fetcher.d.ts +21 -0
- package/base/lib/vendor/fetchers/user-fetcher.d.ts +2 -3
- package/base/lib/vendor/interfaces/Icabhire-enterprise-search.d.ts +1 -0
- package/base/lib/vendor/interfaces/Icarhire-enterprise-search.d.ts +1 -0
- package/base/lib/vendor/interfaces/Ienterprise-basket.service.d.ts +6 -3
- package/base/lib/vendor/interfaces/Ieurostar-enterprise-search.d.ts +2 -0
- package/base/lib/vendor/interfaces/Ifast-track-enterprise-search.d.ts +26 -0
- package/base/lib/vendor/interfaces/Iflight-enterprise-search.d.ts +1 -0
- package/base/lib/vendor/interfaces/Ihotel-enterprise-search.d.ts +2 -0
- package/base/lib/vendor/interfaces/Iirl-enterprise-search.d.ts +11 -3
- package/base/lib/vendor/interfaces/Ilounges-enterprise-search.d.ts +1 -0
- package/base/lib/vendor/interfaces/Iparking-enterprise-search.d.ts +1 -0
- package/base/lib/vendor/interfaces/Irail-enterprise-search.d.ts +1 -0
- package/base/lib/vendor/interfaces/Isearch.service.d.ts +7 -1
- package/base/lib/vendor/interfaces/Iuser.service.d.ts +2 -1
- package/base/lib/vendor/interfaces/eurostar-search-arg.interface.d.ts +2 -0
- 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 +2 -0
- package/base/lib/vendor/interfaces/user.data.d.ts +1 -0
- package/base/lib/vendor/models/traveller.object.d.ts +1 -0
- package/base/lib/vendor/services/enterprise-basket.service.d.ts +13 -6
- package/base/lib/vendor/services/requires-reason.service.d.ts +20 -0
- package/base/lib/vendor/services/search.service.d.ts +30 -5
- package/base/lib/vendor/services/user.service.d.ts +12 -5
- package/base/lib/vendor/services/webtoken.service.d.ts +1 -0
- package/base/lib/vendor/types/graphql.types.d.ts +398 -16
- package/base/lib/vendor/types/types.d.ts +53 -16
- package/base/lib/vendor/updaters/edit-user-updater.d.ts +19 -0
- package/base/lib/vendor/updaters/set-user-language-updater.d.ts +19 -0
- package/base/sabstravtech-obtservices-base.d.ts +5 -5
- package/base/sabstravtech-obtservices-base.metadata.json +1 -1
- package/base/services.d.ts +1 -0
- package/base/updaters.d.ts +2 -0
- package/bundles/sabstravtech-obtservices-angular.umd.js +499 -91
- 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 +3204 -176
- 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/fetchers.js +9 -1
- package/esm2015/angular/lib/vendor/fetchers/fast-track-quote.fetcher.js +25 -0
- package/esm2015/angular/lib/vendor/fetchers/get-all-airlines.fetcher.js +25 -0
- package/esm2015/angular/lib/vendor/fetchers/get-cancellation-info.fetcher.js +25 -0
- package/esm2015/angular/lib/vendor/fetchers/get-car-hire-providers.fetcher.js +25 -0
- package/esm2015/angular/lib/vendor/fetchers/get-hotel-chains.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-rail-providers.fetcher.js +25 -0
- package/esm2015/angular/lib/vendor/fetchers/send-offline-notification.fetcher.js +25 -0
- package/esm2015/angular/lib/vendor/services/enterprise-basket.service.js +8 -5
- package/esm2015/angular/lib/vendor/services/http-call.service.js +6 -2
- package/esm2015/angular/lib/vendor/services/search.service.js +58 -37
- package/esm2015/angular/lib/vendor/services/ticket-queue.service.js +23 -0
- package/esm2015/angular/lib/vendor/services/user.service.js +12 -6
- package/esm2015/angular/lib/vendor/types/graphql.angular.types.js +583 -5
- package/esm2015/angular/lib/vendor/updaters/edit-user.updater.js +22 -0
- package/esm2015/angular/lib/vendor/updaters/set-user-language-updater.js +22 -0
- package/esm2015/angular/obtservices.module.js +3 -1
- package/esm2015/angular/sabstravtech-obtservices-angular.js +17 -14
- package/esm2015/angular/services.js +2 -1
- package/esm2015/base/fetchers.js +11 -1
- package/esm2015/base/interfaces.js +3 -1
- package/esm2015/base/lib/vendor/classes/basket-info-mi-details.impl.js +4 -1
- package/esm2015/base/lib/vendor/classes/cabhire-enterprise-search.js +37 -5
- package/esm2015/base/lib/vendor/classes/carhire-enterprise-search.js +46 -16
- package/esm2015/base/lib/vendor/classes/eurostar-enterprise-search.js +77 -10
- package/esm2015/base/lib/vendor/classes/fast-track-enterprise-search.js +296 -0
- package/esm2015/base/lib/vendor/classes/flight-enterprise-search.js +44 -5
- package/esm2015/base/lib/vendor/classes/helpers.js +6 -2
- package/esm2015/base/lib/vendor/classes/hotel-enterprise-search.js +58 -19
- package/esm2015/base/lib/vendor/classes/irl-enterprise-search.js +214 -25
- package/esm2015/base/lib/vendor/classes/lounges-enterprise-search.js +22 -6
- package/esm2015/base/lib/vendor/classes/management-info-and-valid.js +1 -1
- package/esm2015/base/lib/vendor/classes/modal-types.enum.js +3 -1
- package/esm2015/base/lib/vendor/classes/parking-enterprise-search.js +27 -7
- package/esm2015/base/lib/vendor/classes/rail-enterprise-search.js +62 -13
- package/esm2015/base/lib/vendor/classes/supplementary-booking-info-impl.js +2 -2
- package/esm2015/base/lib/vendor/fetchers/fast-track-quote.fetcher.js +11 -0
- package/esm2015/base/lib/vendor/fetchers/get-all-airlines.fetcher.js +11 -0
- package/esm2015/base/lib/vendor/fetchers/get-cancellation-info.fetcher.js +10 -0
- package/esm2015/base/lib/vendor/fetchers/get-car-hire-providers.fetcher.js +11 -0
- package/esm2015/base/lib/vendor/fetchers/get-hotel-chains.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-rail-providers.fetcher.js +11 -0
- package/esm2015/base/lib/vendor/fetchers/send-offline-notification.fetcher.js +11 -0
- package/esm2015/base/lib/vendor/fetchers/user-fetcher.js +1 -1
- 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 +2 -0
- package/esm2015/base/lib/vendor/interfaces/Iflight-enterprise-search.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/Ihotel-enterprise-search.js +1 -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/Iuser.service.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/eurostar-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 +3 -2
- package/esm2015/base/lib/vendor/services/enterprise-basket.service.js +63 -17
- package/esm2015/base/lib/vendor/services/hotel-avallibility.service.js +16 -12
- package/esm2015/base/lib/vendor/services/requires-reason.service.js +49 -0
- package/esm2015/base/lib/vendor/services/search.service.js +166 -20
- package/esm2015/base/lib/vendor/services/user.service.js +44 -6
- package/esm2015/base/lib/vendor/services/webtoken.service.js +9 -5
- package/esm2015/base/lib/vendor/types/graphql.types.js +9 -1
- package/esm2015/base/lib/vendor/types/types.js +1704 -1
- package/esm2015/base/lib/vendor/updaters/edit-user-updater.js +11 -0
- package/esm2015/base/lib/vendor/updaters/set-user-language-updater.js +11 -0
- package/esm2015/base/sabstravtech-obtservices-base.js +6 -5
- package/esm2015/base/services.js +2 -1
- package/esm2015/base/updaters.js +3 -1
- package/fesm2015/sabstravtech-obtservices-angular.js +790 -19
- package/fesm2015/sabstravtech-obtservices-angular.js.map +1 -1
- package/fesm2015/sabstravtech-obtservices-base.js +3041 -169
- package/fesm2015/sabstravtech-obtservices-base.js.map +1 -1
- package/package.json +1 -1
|
@@ -275,16 +275,21 @@ export class LoungesEnterpriseSearch extends BaseEnterpriseSearch {
|
|
|
275
275
|
}
|
|
276
276
|
updateFromPreviousSearches(previousItems) {
|
|
277
277
|
var _a;
|
|
278
|
-
console.log(
|
|
278
|
+
console.log('PREPOPULATING LOUNGE FORM');
|
|
279
279
|
const flightItem = (_a = previousItems[ServiceType.Flight]) === null || _a === void 0 ? void 0 : _a.searchQuery;
|
|
280
280
|
if (flightItem) {
|
|
281
281
|
try {
|
|
282
282
|
let date = this.searchService.searches[ServiceType.Flight].outBoundDate.toDate();
|
|
283
|
-
this.date = {
|
|
284
|
-
|
|
283
|
+
this.date = {
|
|
284
|
+
day: date.getUTCDate(),
|
|
285
|
+
month: date.getUTCMonth() + 1,
|
|
286
|
+
year: date.getUTCFullYear()
|
|
287
|
+
};
|
|
288
|
+
this.locationCode = this.searchService.searches[ServiceType.Flight]
|
|
289
|
+
.arriveLocation;
|
|
285
290
|
}
|
|
286
291
|
catch (_b) {
|
|
287
|
-
console.error(
|
|
292
|
+
console.error('Error trying to prepopulate parking from lounge item');
|
|
288
293
|
}
|
|
289
294
|
}
|
|
290
295
|
}
|
|
@@ -328,7 +333,7 @@ export class LoungesEnterpriseSearch extends BaseEnterpriseSearch {
|
|
|
328
333
|
currency: loungeQuote.currency,
|
|
329
334
|
searchQuery: loungeQuery,
|
|
330
335
|
outboundDate: loungeQuery.arrivalDatetime.format()
|
|
331
|
-
}, intBasket, this.searchService, this.travellers);
|
|
336
|
+
}, intBasket, this.searchService, this.travellers, loungeQuote.requiresReason);
|
|
332
337
|
}
|
|
333
338
|
return Promise.resolve(false); // TODO should this throw an error?
|
|
334
339
|
});
|
|
@@ -419,7 +424,18 @@ export class LoungesEnterpriseSearch extends BaseEnterpriseSearch {
|
|
|
419
424
|
return this.searchService.saveFavouriteSearch(searchInfo);
|
|
420
425
|
}
|
|
421
426
|
}
|
|
427
|
+
applyFavourite(fav) {
|
|
428
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
429
|
+
this.searchService.getAirportsList(fav.locationCode).subscribe(a => {
|
|
430
|
+
this.locationCode = a.find(a => a.gateway == fav.locationCode);
|
|
431
|
+
this.terminal = fav.terminal;
|
|
432
|
+
});
|
|
433
|
+
this.adults = fav.adults;
|
|
434
|
+
this.children = fav.children;
|
|
435
|
+
this.infants = fav.infants;
|
|
436
|
+
});
|
|
437
|
+
}
|
|
422
438
|
}
|
|
423
439
|
LoungesEnterpriseSearch.STORAGE_SESSION_PARAMS = 'search_lounge';
|
|
424
440
|
LoungesEnterpriseSearch.STORAGE_SESSION_RESULTS = 'results_lounge';
|
|
425
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG91bmdlcy1lbnRlcnByaXNlLXNlYXJjaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29idHNlcnZpY2VzL2Jhc2Uvc3JjL2xpYi92ZW5kb3IvY2xhc3Nlcy9sb3VuZ2VzLWVudGVycHJpc2Utc2VhcmNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQWE1QixPQUFPLEVBT0wsV0FBVyxFQUNaLE1BQU0sd0JBQXdCLENBQUM7QUFlaEMsTUFBTSxPQUFPLHVCQUNYLFNBQVEsb0JBSVA7SUFrS0QsWUFDVSxhQUEyQyxFQUNuRCxPQUEyQixFQUNuQixhQUErQyxFQUN2RCxjQUFrQyxFQUMxQixhQUErQztRQUV2RCxLQUFLLENBQUMsY0FBYyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBTnZCLGtCQUFhLEdBQWIsYUFBYSxDQUE4QjtRQUUzQyxrQkFBYSxHQUFiLGFBQWEsQ0FBa0M7UUFFL0Msa0JBQWEsR0FBYixhQUFhLENBQWtDO1FBbktsRCxTQUFJLEdBQWdCLFdBQVcsQ0FBQyxNQUFNLENBQUM7UUFDdkMsY0FBUyxHQUFHLElBQUksZUFBZSxDQUFrQixFQUFFLENBQUMsQ0FBQztRQStCcEQsa0JBQWEsR0FBVyxJQUFJLENBQUM7UUFvRTdCLHNCQUFpQixHQUFXLEVBQUUsQ0FBQztRQVV2QyxtQkFBbUI7UUFDWixhQUFRLEdBQUc7WUFDaEIsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRTtZQUNyQixLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQztZQUMzQixHQUFHLEVBQUUsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFO1NBQ3JCLENBQUM7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RSxXQUFXLENBQUMsTUFBTSxDQUFDLGdCQUFnQjthQUMzQztTQUNGLENBQUE7SUFDSCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsT0FBc0I7UUFDdEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDakMsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztRQUNyQyxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQ25CLENBQUMsYUFBNkIsRUFBRSxNQUFtQixFQUFFLEVBQUU7WUFDckQsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztZQUMzQixJQUFJLGFBQWEsQ0FBQyxNQUFNLEdBQUcsS0FBSztnQkFBRSxhQUFhLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUMvRCxPQUFPLGFBQWEsQ0FBQztRQUN2QixDQUFDLEVBQ0QsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsQ0FDNUQsQ0FBQztJQUNKLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRTtZQUN0QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDckMsTUFBTSxVQUFVLEdBQUc7Z0JBQ2pCLElBQUksRUFBRSxHQUFHLE1BQU0sRUFBRSxFQUFFO2dCQUNuQixXQUFXLEVBQUUsV0FBVyxDQUFDLE1BQU07Z0JBQy9CLFVBQVUsRUFBRSxNQUFNO2FBQ25CLENBQUE7WUFDRCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDM0Q7SUFDSCxDQUFDOztBQXhmZSw4Q0FBc0IsR0FBRyxlQUFlLENBQUM7QUFDekMsK0NBQXVCLEdBQUcsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlRW50ZXJwcmlzZVNlYXJjaCB9IGZyb20gJy4vYmFzZS1lbnRlcnByaXNlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcclxuaW1wb3J0IHsgQmFzZVN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvc3RvcmFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQmFzZUhlbHBlclJvdXRpbmVzIH0gZnJvbSAnLi9oZWxwZXJzJztcclxuaW1wb3J0IHsgVHJhdmVsbGVyIH0gZnJvbSAnLi4vbW9kZWxzL3RyYXZlbGxlci5vYmplY3QnO1xyXG5pbXBvcnQge1xyXG4gIExvdW5nZVF1b3RlUmVzdWx0LFxyXG4gIExvdW5nZVF1b3RlUmVzdWx0QXJyYXksXHJcbiAgTmdiRGF0ZVN0cnVjdCxcclxuICBPQlRBaXJwb3J0RGV0YWlscyxcclxuICBSZWNlbnRTZWFyY2gsXHJcbiAgU2F2ZUZhdm91cml0ZVNlYXJjaFJlc3VsdCxcclxuICBUZXJtaW5hbHNUeXBlXHJcbn0gZnJvbSAnLi4vdHlwZXMvdHlwZXMnO1xyXG5pbXBvcnQge1xyXG4gIEFpcnBvcnRSZXN1bHRzLFxyXG4gIEJhc2tldEl0ZW0sXHJcbiAgTG91bmdlUXVvdGUsXHJcbiAgU2F2ZVJlY2VudFNlYXJjaE11dGF0aW9uVmFyaWFibGVzLFxyXG4gIFNlYXJjaEZsaWdodHNWMlF1ZXJ5VmFyaWFibGVzLFxyXG4gIFNlYXJjaExvdW5nZXNRdWVyeVZhcmlhYmxlcyxcclxuICBTZXJ2aWNlVHlwZVxyXG59IGZyb20gJy4uL3R5cGVzL2dyYXBocWwudHlwZXMnO1xyXG5pbXBvcnQge1xyXG4gIEJhc2VMb3VuZ2VRdW90ZUZldGNoZXIsXHJcbiAgTG91bmdlUXVvdGVGZXRjaGVyVHlwZVxyXG59IGZyb20gJy4uL2ZldGNoZXJzL2xvdW5nZS1xdW90ZS5mZXRjaGVyJztcclxuaW1wb3J0IHtcclxuICBFbnRlcnByaXNlQmFza2V0U2VydmljZUludGVyZmFjZSxcclxuICBJbnRlcm5hbEJhc2tldEludGVyZmFjZVxyXG59IGZyb20gJy4uL2ludGVyZmFjZXMvSWVudGVycHJpc2UtYmFza2V0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBFbnRlcnByaXNlU2VhcmNoU2VydmljZUludGVyZmFjZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvSXNlYXJjaC5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBMb3VuZ2VzRW50ZXJwcmlzZVNlYXJjaEludGVyZmFjZSxcclxuICBMb3VuZ2VzVGVtcFBhcmFtc1xyXG59IGZyb20gJy4uL2ludGVyZmFjZXMvSWxvdW5nZXMtZW50ZXJwcmlzZS1zZWFyY2gnO1xyXG5pbXBvcnQgeyBJQ2hlYXBlc3RQcmljZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvY2hlYXBlc3QtcHJpY2UnO1xyXG5leHBvcnQgY2xhc3MgTG91bmdlc0VudGVycHJpc2VTZWFyY2g8TFFfUSBleHRlbmRzIExvdW5nZVF1b3RlRmV0Y2hlclR5cGU+XHJcbiAgZXh0ZW5kcyBCYXNlRW50ZXJwcmlzZVNlYXJjaDxcclxuICBMb3VuZ2VzVGVtcFBhcmFtcyxcclxuICBMb3VuZ2VRdW90ZVJlc3VsdEFycmF5LFxyXG4gIExvdW5nZVF1b3RlUmVzdWx0QXJyYXlcclxuICA+XHJcbiAgaW1wbGVtZW50cyBMb3VuZ2VzRW50ZXJwcmlzZVNlYXJjaEludGVyZmFjZSB7XHJcbiAgc3RhdGljIHJlYWRvbmx5IFNUT1JBR0VfU0VTU0lPTl9QQVJBTVMgPSAnc2VhcmNoX2xvdW5nZSc7XHJcbiAgc3RhdGljIHJlYWRvbmx5IFNUT1JBR0VfU0VTU0lPTl9SRVNVTFRTID0gJ3Jlc3VsdHNfbG91bmdlJztcclxuICBwdWJsaWMgdHlwZTogU2VydmljZVR5cGUgPSBTZXJ2aWNlVHlwZS5Mb3VuZ2U7XHJcbiAgcHVibGljIHRlcm1pbmFscyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGVybWluYWxzVHlwZVtdPihbXSk7XHJcblxyXG4gIHByaXZhdGUgdHJhdmVsbGVyczogVHJhdmVsbGVyW107XHJcbiAgcHJpdmF0ZSBfbG9jYXRpb25Db2RlOiBzdHJpbmc7XHJcblxyXG4gIGdldCBhZHVsdHMoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLnRlbXBQYXJhbXMuYWR1bHRzO1xyXG4gIH1cclxuXHJcbiAgc2V0IGFkdWx0cyh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnRlbXBQYXJhbXMuYWR1bHRzID0gdmFsdWU7XHJcbiAgICB0aGlzLl9pc1ZhbGlkKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgY2hpbGRyZW4oKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLnRlbXBQYXJhbXMuY2hpbGRyZW47XHJcbiAgfVxyXG5cclxuICBzZXQgY2hpbGRyZW4odmFsdWU6IG51bWJlcikge1xyXG4gICAgdGhpcy50ZW1wUGFyYW1zLmNoaWxkcmVuID0gdmFsdWU7XHJcbiAgICB0aGlzLl9pc1ZhbGlkKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgaW5mYW50cygpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMudGVtcFBhcmFtcy5pbmZhbnRzO1xyXG4gIH1cclxuXHJcbiAgc2V0IGluZmFudHModmFsdWU6IG51bWJlcikge1xyXG4gICAgdGhpcy50ZW1wUGFyYW1zLmluZmFudHMgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2ZsaWdodE51bWJlcjogc3RyaW5nID0gbnVsbDtcclxuXHJcbiAgZ2V0IGZsaWdodE51bWJlcigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2ZsaWdodE51bWJlcjtcclxuICB9XHJcblxyXG4gIHNldCBmbGlnaHROdW1iZXIodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fZmxpZ2h0TnVtYmVyID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBnZXQgbG9jYXRpb25Db2RlKCk6IHN0cmluZyB8IE9CVEFpcnBvcnREZXRhaWxzIHtcclxuICAgIHJldHVybiB0aGlzLnRlbXBQYXJhbXMubG9jYXRpb25Db2RlO1xyXG4gIH1cclxuXHJcbiAgc2V0IGxvY2F0aW9uQ29kZSh2YWx1ZTogc3RyaW5nIHwgT0JUQWlycG9ydERldGFpbHMpIHtcclxuICAgIHRoaXMudGVtcFBhcmFtcy5sb2NhdGlvbkNvZGUgPSB2YWx1ZTtcclxuICAgIGNvbnN0IHRlcm1pbmFsc1R5cGU6IFRlcm1pbmFsc1R5cGVbXSA9IHRoaXMudGVybWluYWxzPy52YWx1ZTtcclxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgIHRoaXMuX2xvY2F0aW9uQ29kZSA9ICcnO1xyXG4gICAgICB0aGlzLnRlcm1pbmFsID0gbnVsbDtcclxuICAgICAgdGhpcy50ZXJtaW5hbHMubmV4dChbXSk7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRUZXJtaW5hbCA9IG51bGw7XHJcbiAgICAgIHRoaXMuX2lzVmFsaWQoKTtcclxuICAgIH0gZWxzZSBpZiAodmFsdWUgJiYgdmFsdWUuZ2F0ZXdheSkge1xyXG4gICAgICB0aGlzLl9sb2NhdGlvbkNvZGUgPSB2YWx1ZS5nYXRld2F5O1xyXG4gICAgICB0aGlzLnRlcm1pbmFsID0gbnVsbDtcclxuICAgICAgdGhpcy50ZXJtaW5hbHMubmV4dCh2YWx1ZS50ZXJtaW5hbHMpO1xyXG4gICAgICBpZiAodGVybWluYWxzVHlwZS5sZW5ndGggPT09IDEpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVGVybWluYWwgPSB0ZXJtaW5hbHNUeXBlWzBdLmtleTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLl9pc1ZhbGlkKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9sb2NhdGlvbkNvZGUgPSBudWxsO1xyXG4gICAgICB0aGlzLnRlcm1pbmFsID0gbnVsbDtcclxuICAgICAgdGhpcy5zZWxlY3RlZFRlcm1pbmFsID0gbnVsbDtcclxuICAgICAgdGhpcy50ZXJtaW5hbHMubmV4dChbXSk7XHJcbiAgICAgIHRoaXMuX2lzVmFsaWQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldCB0ZXJtaW5hbCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMudGVtcFBhcmFtcy50ZXJtaW5hbFxyXG4gICAgICA/IHRoaXMudGVtcFBhcmFtcy50ZXJtaW5hbC50b1N0cmluZygpXHJcbiAgICAgIDogbnVsbDtcclxuICB9XHJcblxyXG4gIHNldCB0ZXJtaW5hbChpbnB1dDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnRlbXBQYXJhbXMudGVybWluYWwgPSBpbnB1dDtcclxuICAgIGNvbnN0IGZvdW5kOiBUZXJtaW5hbHNUeXBlID0gdGhpcy50ZXJtaW5hbHMudmFsdWUuZmluZChcclxuICAgICAgKHRlcm1pbmFsOiBUZXJtaW5hbHNUeXBlLCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgaWYgKHRlcm1pbmFsLnZhbHVlID09PSBpbnB1dCkge1xyXG4gICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICApO1xyXG5cclxuICAgIGlmIChmb3VuZCkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVGVybWluYWwgPSBmb3VuZC5rZXk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy50ZXJtaW5hbHMudmFsdWUgJiYgdGhpcy50ZXJtaW5hbHMudmFsdWUubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRUZXJtaW5hbCA9IHRoaXMudGVybWluYWxzLnZhbHVlWzBdLmtleTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVGVybWluYWwgPSAnQW55IFRlcm1pbmFsJztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5faXNWYWxpZCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfc2VsZWN0ZWRUZXJtaW5hbDogc3RyaW5nID0gJyc7XHJcbiAgc2V0IHNlbGVjdGVkVGVybWluYWwodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fc2VsZWN0ZWRUZXJtaW5hbCA9IHZhbHVlO1xyXG4gICAgdGhpcy5faXNWYWxpZCgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNlbGVjdGVkVGVybWluYWwoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZFRlcm1pbmFsO1xyXG4gIH1cclxuXHJcbiAgLy8gcHVibGljIHZhcmlhYmxlc1xyXG4gIHB1YmxpYyBtaW5fZGF0ZSA9IHtcclxuICAgIHllYXI6IG1vbWVudCgpLnllYXIoKSxcclxuICAgIG1vbnRoOiBtb21lbnQoKS5tb250aCgpICsgMSwgLy8gbmdiRGF0ZSBtb250aHMgYXJlIG5vdCAwIGluZGV4ZWRcclxuICAgIGRheTogbW9tZW50KCkuZGF0ZSgpXHJcbiAgfTtcclxuXHJcbiAgcHJpdmF0ZSBfZGF0ZTogTmdiRGF0ZVN0cnVjdCA9IG51bGw7XHJcbiAgZ2V0IGRhdGUoKTogTmdiRGF0ZVN0cnVjdCB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGF0ZTtcclxuICB9XHJcblxyXG4gIHNldCBkYXRlKHZhbHVlOiBOZ2JEYXRlU3RydWN0KSB7XHJcbiAgICB0aGlzLl9kYXRlID0gdmFsdWU7XHJcbiAgICB0aGlzLl91cGRhdGVEYXRlVGltZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdGltZTogc3RyaW5nID0gbnVsbDtcclxuICBnZXQgdGltZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RpbWU7XHJcbiAgfVxyXG5cclxuICBzZXQgdGltZSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl90aW1lID0gdmFsdWU7XHJcbiAgICB0aGlzLl91cGRhdGVEYXRlVGltZSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGFycml2YWxEYXRldGltZSgpOiBtb21lbnQuTW9tZW50IHtcclxuICAgIHJldHVybiB0aGlzLnRlbXBQYXJhbXMuYXJyaXZhbERhdGV0aW1lO1xyXG4gIH1cclxuXHJcbiAgc2V0IGFycml2YWxEYXRldGltZSh2YWx1ZTogbW9tZW50Lk1vbWVudCkge1xyXG4gICAgaWYgKHZhbHVlLmlzVmFsaWQoKSkge1xyXG4gICAgICB0aGlzLnRlbXBQYXJhbXMuYXJyaXZhbERhdGV0aW1lID0gdmFsdWU7XHJcblxyXG4gICAgICB0aGlzLl9kYXRlID0gdGhpcy5oZWxwZXJzLm1vbWVudFRvTmdEYXRlKHZhbHVlKTtcclxuICAgICAgdGhpcy5fdGltZSA9IHRoaXMuaGVscGVycy5mb3JtYXRUaW1lQ29sb24odmFsdWUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50ZW1wUGFyYW1zLmFycml2YWxEYXRldGltZSA9IG51bGw7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9pc1ZhbGlkKCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgcmVzdWx0c1Nlc3Npb25OYW1lID1cclxuICAgIExvdW5nZXNFbnRlcnByaXNlU2VhcmNoLlNUT1JBR0VfU0VTU0lPTl9SRVNVTFRTO1xyXG4gIHByb3RlY3RlZCBtdWx0aVJlc3VsdHNTZXNzaW9uTmFtZSA9XHJcbiAgICBMb3VuZ2VzRW50ZXJwcmlzZVNlYXJjaC5TVE9SQUdFX1NFU1NJT05fUkVTVUxUUztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGxvdW5nZWZldGNoZXI6IEJhc2VMb3VuZ2VRdW90ZUZldGNoZXI8TFFfUT4sXHJcbiAgICBoZWxwZXJzOiBCYXNlSGVscGVyUm91dGluZXMsXHJcbiAgICBwcml2YXRlIGJhc2tldFNlcnZpY2U6IEVudGVycHJpc2VCYXNrZXRTZXJ2aWNlSW50ZXJmYWNlLFxyXG4gICAgc3RvcmFnZVNlcnZpY2U6IEJhc2VTdG9yYWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgc2VhcmNoU2VydmljZTogRW50ZXJwcmlzZVNlYXJjaFNlcnZpY2VJbnRlcmZhY2VcclxuICApIHtcclxuICAgIHN1cGVyKHN0b3JhZ2VTZXJ2aWNlLCBoZWxwZXJzKTtcclxuICAgIGNvbnN0IGRhdGE6IHtcclxuICAgICAgdGVtcFBhcmFtczogTG91bmdlc1RlbXBQYXJhbXM7XHJcbiAgICB9ID0gc3RvcmFnZVNlcnZpY2UuZ2V0U2Vzc2lvbkl0ZW0oXHJcbiAgICAgIExvdW5nZXNFbnRlcnByaXNlU2VhcmNoLlNUT1JBR0VfU0VTU0lPTl9QQVJBTVNcclxuICAgICkgfHwge1xyXG4gICAgICAgIHRlbXBQYXJhbXM6IHt9IGFzIExvdW5nZXNUZW1wUGFyYW1zXHJcbiAgICAgIH07XHJcblxyXG4gICAgdGhpcy51cGRhdGVUZW1wUGFyYW1zKHNlYXJjaFNlcnZpY2UubWFrZUxvdW5nZXNRdWVyeShkYXRhLnRlbXBQYXJhbXMpKTtcclxuXHJcbiAgICBpZiAoc2VhcmNoU2VydmljZS5zaG91bGRBZGRUcmF2ZWxsZXJTdWJzY3JpcHRpb24oKSkge1xyXG4gICAgICBzZWFyY2hTZXJ2aWNlLnRyYXZlbGxlckluZm9ybWF0aW9uLnN1YnNjcmliZShcclxuICAgICAgICAodHJhdmVsbGVyczogVHJhdmVsbGVyW10pID0+IHtcclxuICAgICAgICAgIGNvbnN0IHNwbGl0VHJhdmVsbGVycyA9IHRoaXMuaGVscGVycy5zZWxlY3RlZFRyYXZlbGxlcnMoXHJcbiAgICAgICAgICAgIHRyYXZlbGxlcnMsXHJcbiAgICAgICAgICAgIFNlcnZpY2VUeXBlLkxvdW5nZVxyXG4gICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICB0aGlzLnRlbXBQYXJhbXMuYWR1bHRzID0gc3BsaXRUcmF2ZWxsZXJzLmFkdWx0cy5sZW5ndGg7XHJcbiAgICAgICAgICB0aGlzLnRlbXBQYXJhbXMuY2hpbGRyZW4gPSBzcGxpdFRyYXZlbGxlcnMuY2hpbGRyZW4ubGVuZ3RoO1xyXG4gICAgICAgICAgdGhpcy50cmF2ZWxsZXJzID0gdHJhdmVsbGVycztcclxuXHJcbiAgICAgICAgICB0aGlzLl9pc1ZhbGlkKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgY29uc3QgcmVzdWx0cyA9XHJcbiAgICAgIHN0b3JhZ2VTZXJ2aWNlLmdldFNlc3Npb25JdGVtQXNMaXN0PExvdW5nZVF1b3RlUmVzdWx0QXJyYXk+KFxyXG4gICAgICAgIHRoaXMucmVzdWx0c1Nlc3Npb25OYW1lXHJcbiAgICAgICkgfHwgW107XHJcbiAgICAvLyBpZiAocmVzdWx0cyA9PSBudWxsICYmIHRoaXMuaXNWYWxpZCkge1xyXG4gICAgLy8gICBzZWFyY2hTZXJ2aWNlLnN0YXJ0U2VhcmNoZXMoKTtcclxuICAgIC8vIH1cclxuICAgIHRoaXMuX2NoZWFwZXN0UmVzdWx0UHJpY2UgPSB0aGlzLnVwZGF0ZUxvd2VzdFByaWNlKHJlc3VsdHMpO1xyXG4gICAgdGhpcy5yZXN1bHRzLm5leHQocmVzdWx0cyB8fCBbXSk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgcmVzZXRRdWVyeSgpIHtcclxuICAgIHRoaXMudXBkYXRlVGVtcFBhcmFtcyh0aGlzLnNlYXJjaFNlcnZpY2UubWFrZUxvdW5nZXNRdWVyeSgpKTtcclxuICAgIHRoaXMuX2lzVmFsaWQoKTtcclxuICB9XHJcblxyXG4gIGdldFNlYXJjaFF1ZXJ5KCk6IFNlYXJjaExvdW5nZXNRdWVyeVZhcmlhYmxlcyB7XHJcbiAgICBjb25zdCBxdWVyeTogU2VhcmNoTG91bmdlc1F1ZXJ5VmFyaWFibGVzID0ge1xyXG4gICAgICBhZHVsdHM6IHRoaXMudGVtcFBhcmFtcy5hZHVsdHMsXHJcbiAgICAgIGNoaWxkcmVuOiB0aGlzLnRlbXBQYXJhbXMuY2hpbGRyZW4sXHJcbiAgICAgIGluZmFudHM6IHRoaXMudGVtcFBhcmFtcy5pbmZhbnRzLFxyXG4gICAgICBsb2NhdGlvbkNvZGU6IHRoaXMuX2xvY2F0aW9uQ29kZSxcclxuICAgICAgdGVybWluYWw6XHJcbiAgICAgICAgdGhpcy50ZW1wUGFyYW1zLnRlcm1pbmFsID09PSAnQW55JyA/IG51bGwgOiB0aGlzLnRlbXBQYXJhbXMudGVybWluYWwsXHJcbiAgICAgIGFycml2YWxEYXRldGltZTogdGhpcy50ZW1wUGFyYW1zLmFycml2YWxEYXRldGltZVxyXG4gICAgfTtcclxuICAgIHJldHVybiB0aGlzLmhlbHBlcnMucmVtb3ZlTnVsbHM8U2VhcmNoTG91bmdlc1F1ZXJ5VmFyaWFibGVzPihxdWVyeSk7XHJcbiAgfVxyXG5cclxuICAvLyBQcml2YXRlIE1ldGhvZHNcclxuXHJcbiAgcHJpdmF0ZSBfaXNWYWxpZCgpIHtcclxuICAgIGlmICghdGhpcy5kb0NoZWNrcykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnNldFNlc3Npb25JdGVtKFxyXG4gICAgICBMb3VuZ2VzRW50ZXJwcmlzZVNlYXJjaC5TVE9SQUdFX1NFU1NJT05fUEFSQU1TLFxyXG4gICAgICB7XHJcbiAgICAgICAgdGVtcFBhcmFtczogdGhpcy50ZW1wUGFyYW1zLFxyXG4gICAgICAgIHRyYXZlbGxlcnM6IHRoaXMudHJhdmVsbGVyc1xyXG4gICAgICB9XHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMudmFsaWRhdGlvbk1lc3NhZ2VzID0gW107XHJcbiAgICBpZiAoIXRoaXMuX2xvY2F0aW9uQ29kZSB8fCB0aGlzLl9sb2NhdGlvbkNvZGUgPT09ICcnKSB7XHJcbiAgICAgIHRoaXMudmFsaWRhdGlvbk1lc3NhZ2VzLnB1c2goJ1lvdSBtdXN0IHNlbGVjdCBhaXJwb3J0IGZpcnN0LicpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGlmICghdGhpcy5xdWVyeS50ZXJtaW5hbCkge1xyXG4gICAgLy8gICB0aGlzLnZhbGlkYXRpb25NZXNzYWdlcy5wdXNoKCdUZXJtaW5hbCBjYW4gbm90IGJlIGVtcHR5LicpO1xyXG4gICAgLy8gfVxyXG5cclxuICAgIGlmICh0aGlzLnRlbXBQYXJhbXMuYXJyaXZhbERhdGV0aW1lLnVuaXgoKSA8IG1vbWVudCgpLnVuaXgoKSkge1xyXG4gICAgICB0aGlzLnZhbGlkYXRpb25NZXNzYWdlcy5wdXNoKCdPdXR3YXJkIGpvdXJuZXkgY2Fubm90IGJlIGluIHRoZSBwYXN0LicpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaXNWYWxpZC5uZXh0KHRoaXMudmFsaWRhdGlvbk1lc3NhZ2VzLmxlbmd0aCA9PT0gMCk7XHJcbiAgICB0aGlzLm1lc3NhZ2VzLm5leHQodGhpcy52YWxpZGF0aW9uTWVzc2FnZXMpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdXBkYXRlRGF0ZVRpbWUoKSB7XHJcbiAgICBpZiAodGhpcy5fZGF0ZSAmJiB0aGlzLl90aW1lKSB7XHJcbiAgICAgIGNvbnN0IHRpbWUgPSB0aGlzLmhlbHBlcnMubmdEYXRlVG9Nb21lbnQodGhpcy5fZGF0ZSwgdGhpcy5fdGltZSk7XHJcbiAgICAgIHRoaXMudGVtcFBhcmFtcy5hcnJpdmFsRGF0ZXRpbWUgPSB0aW1lLmlzVmFsaWQoKSA/IHRpbWUgOiBudWxsO1xyXG4gICAgICB0aGlzLl9pc1ZhbGlkKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzdGFydFNlYXJjaCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIHRoaXMucmVzdWx0cy5uZXh0KFtdKTtcclxuXHJcbiAgICBpZiAodGhpcy5pc1ZhbGlkLnZhbHVlKSB7XHJcbiAgICAgIGNvbnN0IHF1ZXJ5ID0gdGhpcy5nZXRTZWFyY2hRdWVyeSgpO1xyXG4gICAgICB0aGlzLnNlYXJjaFNlcnZpY2Uuc2F2ZVJlY2VudFNlYXJjaCh0aGlzLmdldFJlY2VudFNlYXJjaFF1ZXJ5KHF1ZXJ5KSk7XHJcbiAgICAgIHJldHVybiB0aGlzLl9zdGFydFNlYXJjaChcclxuICAgICAgICB0aGlzLmxvdW5nZWZldGNoZXIuZmV0Y2hMaXN0KFxyXG4gICAgICAgICAgdGhpcy5oZWxwZXJzLnJlbW92ZU51bGxzPFNlYXJjaExvdW5nZXNRdWVyeVZhcmlhYmxlcz4ocXVlcnkpXHJcbiAgICAgICAgKVxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShmYWxzZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRSZWNlbnRTZWFyY2hRdWVyeShcclxuICAgIHF1ZXJ5OiBTZWFyY2hMb3VuZ2VzUXVlcnlWYXJpYWJsZXNcclxuICApOiBTYXZlUmVjZW50U2VhcmNoTXV0YXRpb25WYXJpYWJsZXMge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgc2VydmljZVR5cGU6IFNlcnZpY2VUeXBlLkxvdW5nZSxcclxuICAgICAgc2VhcmNoQXJnczogcXVlcnksXHJcbiAgICAgIHRyYXZlbERhdGU6IHRoaXMuYXJyaXZhbERhdGV0aW1lLmZvcm1hdCgpLFxyXG4gICAgICB0cmF2ZWxsZXJzOiB0aGlzLmhlbHBlcnMuZ2V0VHJhdmVsbGVyc0lkKHRoaXMudHJhdmVsbGVycylcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhcnRSZWNlbnRTZWFyY2gocmVjZW50U2VhcmNoOiBSZWNlbnRTZWFyY2gpOiB2b2lkIHtcclxuICAgIHRoaXMuYXJyaXZhbERhdGV0aW1lID0gbW9tZW50KHJlY2VudFNlYXJjaC5zZWFyY2hBcmdzLmFycml2YWxEYXRldGltZSk7XHJcbiAgICB0aGlzLnRlcm1pbmFsID0gcmVjZW50U2VhcmNoLnNlYXJjaEFyZ3MudGVybWluYWw7XHJcbiAgICB0aGlzLnNlYXJjaFNlcnZpY2VcclxuICAgICAgLmdldEFpcnBvcnRCeUNvZGUocmVjZW50U2VhcmNoLnNlYXJjaEFyZ3MubG9jYXRpb25Db2RlKVxyXG4gICAgICAuc3Vic2NyaWJlKChhaXJwb3J0OiBBaXJwb3J0UmVzdWx0cykgPT4ge1xyXG4gICAgICAgIGlmIChhaXJwb3J0KSB7XHJcbiAgICAgICAgICB0aGlzLmxvY2F0aW9uQ29kZSA9IHtcclxuICAgICAgICAgICAgY291bnRyeTogYWlycG9ydC5pYXRhTWF0Y2g/LmxvY2F0aW9uRGV0YWlscz8uY291bnRyeSxcclxuICAgICAgICAgICAgY291bnRyeUNvZGU6IGFpcnBvcnQuaWF0YU1hdGNoPy5sb2NhdGlvbkRldGFpbHM/LmNvdW50cnlDb2RlLFxyXG4gICAgICAgICAgICBkZXN0aW5hdGlvbjogYWlycG9ydC5pYXRhTWF0Y2gubmFtZSxcclxuICAgICAgICAgICAgZ2F0ZXdheTogYWlycG9ydC5pYXRhTWF0Y2guaWF0YSxcclxuICAgICAgICAgICAgcG9zdGNvZGU6IGFpcnBvcnQuaWF0YU1hdGNoPy5sb2NhdGlvbkRldGFpbHM/LnBvc3Rjb2RlLFxyXG4gICAgICAgICAgICB0ZXJtaW5hbHM6IHRoaXMuc2VhcmNoU2VydmljZS5wcm9jZXNzVGVybWluYWxzKFxyXG4gICAgICAgICAgICAgIGFpcnBvcnQuaWF0YU1hdGNoLnRlcm1pbmFsc1xyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgICAgdGhpcy50ZXJtaW5hbCA9IHJlY2VudFNlYXJjaC5zZWFyY2hBcmdzLnRlcm1pbmFsO1xyXG4gICAgICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnN0YXJ0U2VhcmNoZXMoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnN0YXJ0U2VhcmNoZXMoKTtcclxuICB9XHJcblxyXG4gIHNvcnRCeVByaWNlKGFzYz86IGJvb2xlYW4sIHJlc3VsdEFycmF5OiBMb3VuZ2VRdW90ZVtdID0gW10pIHtcclxuICAgIGxldCBzb3J0UmVzdWx0cyA9IFsuLi50aGlzLmZ1bGxSZXN1bHRzXSBhcyBMb3VuZ2VRdW90ZVtdO1xyXG4gICAgaWYgKCFzb3J0UmVzdWx0cy5sZW5ndGgpIHtcclxuICAgICAgc29ydFJlc3VsdHMgPSByZXN1bHRBcnJheTtcclxuICAgIH1cclxuICAgIHNvcnRSZXN1bHRzID0gdGhpcy5zb3J0UmVzdWx0c1ByaWNlKHNvcnRSZXN1bHRzLCBhc2MpO1xyXG4gICAgdGhpcy5yZXN1bHRzLm5leHQoc29ydFJlc3VsdHMpO1xyXG4gIH1cclxuXHJcbiAgc29ydFJlc3VsdHNQcmljZShyZXN1bHRBcnJheTogTG91bmdlUXVvdGVbXSwgYXNjPzogYm9vbGVhbik6IExvdW5nZVF1b3RlW10ge1xyXG4gICAgbGV0IHJlc3VsdHMgPSBbLi4ucmVzdWx0QXJyYXldO1xyXG4gICAgaWYgKGFzYykge1xyXG4gICAgICByZXN1bHRzID0gcmVzdWx0cy5zb3J0KFxyXG4gICAgICAgIChhOiBMb3VuZ2VRdW90ZVJlc3VsdCwgYjogTG91bmdlUXVvdGVSZXN1bHQpID0+IGIucHJpY2UgLSBhLnByaWNlXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXN1bHRzID0gcmVzdWx0cy5zb3J0KFxyXG4gICAgICAgIChhOiBMb3VuZ2VRdW90ZVJlc3VsdCwgYjogTG91bmdlUXVvdGVSZXN1bHQpID0+IGEucHJpY2UgLSBiLnByaWNlXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0cztcclxuICB9XHJcblxyXG4gIHNvcnRCeVRlcm1pbmFsKHJlc3VsdEFycmF5OiBMb3VuZ2VRdW90ZVtdID0gW10pIHtcclxuICAgIGxldCByZXN1bHRzID0gWy4uLnRoaXMuZnVsbFJlc3VsdHNdO1xyXG4gICAgaWYgKCFyZXN1bHRzLmxlbmd0aCkge1xyXG4gICAgICByZXN1bHRzID0gcmVzdWx0QXJyYXk7XHJcbiAgICB9XHJcbiAgICBjb25zdCB0ZXJtaW5hbFNvcnRlciA9IChhOiBMb3VuZ2VRdW90ZVJlc3VsdCwgYjogTG91bmdlUXVvdGVSZXN1bHQpID0+IHtcclxuICAgICAgcmV0dXJuIC0xOyAvLyBUT0RPIGEucmF3RGF0YS5GbGlnaHRUZXJtT3V0ID4gYi5yYXdEYXRhLkZsaWdodFRlcm1PdXQgPyAxIDogLTE7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5yZXN1bHRzLm5leHQocmVzdWx0cy5zb3J0KHRlcm1pbmFsU29ydGVyKSk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVGcm9tUHJldmlvdXNTZWFyY2hlcyhcclxuICAgIHByZXZpb3VzSXRlbXM6IFJlY29yZDxTZXJ2aWNlVHlwZSwgQmFza2V0SXRlbT5cclxuICApOiB2b2lkIHtcclxuICAgIGNvbnNvbGUubG9nKFwiUFJFUE9QVUxBVElORyBMT1VOR0UgRk9STVwiKVxyXG4gICAgY29uc3QgZmxpZ2h0SXRlbTogU2VhcmNoRmxpZ2h0c1YyUXVlcnlWYXJpYWJsZXMgPVxyXG4gICAgICBwcmV2aW91c0l0ZW1zW1NlcnZpY2VUeXBlLkZsaWdodF0/LnNlYXJjaFF1ZXJ5O1xyXG4gICAgaWYgKGZsaWdodEl0ZW0pIHtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICBsZXQgZGF0ZSA9IHRoaXMuc2VhcmNoU2VydmljZS5zZWFyY2hlc1tTZXJ2aWNlVHlwZS5GbGlnaHRdLm91dEJvdW5kRGF0ZS50b0RhdGUoKTtcclxuICAgICAgICB0aGlzLmRhdGUgPSB7IGRheTogZGF0ZS5nZXRVVENEYXRlKCksIG1vbnRoOiBkYXRlLmdldFVUQ01vbnRoKCkgKyAxLCB5ZWFyOiBkYXRlLmdldFVUQ0Z1bGxZZWFyKCkgfTtcclxuICAgICAgICB0aGlzLmxvY2F0aW9uQ29kZSA9IHRoaXMuc2VhcmNoU2VydmljZS5zZWFyY2hlc1tTZXJ2aWNlVHlwZS5GbGlnaHRdLmFycml2ZUxvY2F0aW9uIGFzIE9CVEFpcnBvcnREZXRhaWxzXHJcbiAgICAgIH0gY2F0Y2gge1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXCJFcnJvciB0cnlpbmcgdG8gcHJlcG9wdWxhdGUgcGFya2luZyBmcm9tIGxvdW5nZSBpdGVtXCIpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhc3luYyBhZGRMb3VuZ2VUb0Jhc2tldChcclxuICAgIGxvdW5nZVF1b3RlOiBMb3VuZ2VRdW90ZSxcclxuICAgIGxvdW5nZVF1ZXJ5OiBTZWFyY2hMb3VuZ2VzUXVlcnlWYXJpYWJsZXNcclxuICApOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIGlmIChsb3VuZ2VRdW90ZS51bmF2YWlsYWJsZSkge1xyXG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGZhbHNlKTtcclxuICAgIH1cclxuICAgIGNvbnN0IGludEJhc2tldDogSW50ZXJuYWxCYXNrZXRJbnRlcmZhY2UgPVxyXG4gICAgICBhd2FpdCB0aGlzLmJhc2tldFNlcnZpY2UuZ2V0RGVmYXVsdEJhc2tldCgpO1xyXG4gICAgY29uc3QgYmFza2V0ID0gaW50QmFza2V0Py5zdWJqZWN0LnZhbHVlO1xyXG4gICAgY29uc3QgdGVybXNBbmRDb25kaXRpb25zID0gdGhpcy5nZXRUZXJtc0FuZENvbmQobG91bmdlUXVvdGUpO1xyXG4gICAgaWYgKGJhc2tldCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5iYXNrZXRTZXJ2aWNlLmFkZFRvQmFza2V0KFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGFkdWx0czogbG91bmdlUXVlcnkuYWR1bHRzLFxyXG4gICAgICAgICAgY2hpbGRyZW46IGxvdW5nZVF1ZXJ5LmNoaWxkcmVuLFxyXG4gICAgICAgICAgaW5mYW50czogbG91bmdlUXVlcnkuaW5mYW50cyxcclxuICAgICAgICAgIGJhc2tldDogYmFza2V0LmlkLFxyXG4gICAgICAgICAgc2VydmljZTogbG91bmdlUXVvdGUuc291cmNlSWQudG9TdHJpbmcoKSxcclxuICAgICAgICAgIGRldGFpbDoge1xyXG4gICAgICAgICAgICBhcnJpdmFsRGF0ZXRpbWU6IGxvdW5nZVF1ZXJ5LmFycml2YWxEYXRldGltZS5mb3JtYXQoKSxcclxuICAgICAgICAgICAgbG9jYXRpb25Db2RlOiBsb3VuZ2VRdW90ZS5jb2RlLFxyXG4gICAgICAgICAgICBuYW1lOiBsb3VuZ2VRdW90ZS5uYW1lLFxyXG4gICAgICAgICAgICBhaXJwb3J0SWF0YTogbG91bmdlUXVlcnk/LmxvY2F0aW9uQ29kZSxcclxuICAgICAgICAgICAgbG9nbzogbG91bmdlUXVvdGUubG91bmdlLmxvZ28sXHJcbiAgICAgICAgICAgIGludHJvZHVjdGlvbjogbG91bmdlUXVvdGUubG91bmdlLmludHJvZHVjdGlvbixcclxuICAgICAgICAgICAgY292aWRDb3B5OiBsb3VuZ2VRdW90ZS5sb3VuZ2UubWlzYy5jb3ZpZENvcHksXHJcbiAgICAgICAgICAgIGNhbmNlbGxhdGlvbkluZm86IGxvdW5nZVF1b3RlLmxvdW5nZS5jYW5jZWxsYXRpb25JbmZvLFxyXG4gICAgICAgICAgICBhZG1lbmRtZW50c0luZm86IGxvdW5nZVF1b3RlLmxvdW5nZS5hbWVuZG1lbnRzSW5mbyxcclxuICAgICAgICAgICAgY2hlY2tJbkluZm86IGxvdW5nZVF1b3RlLmxvdW5nZS5jaGVja0luSW5mbyxcclxuICAgICAgICAgICAgZHJlc3NDb2RlOiBsb3VuZ2VRdW90ZS5sb3VuZ2UuZHJlc3NDb2RlLFxyXG4gICAgICAgICAgICBmb29kQW5kQmV2ZXJhZ2U6IGxvdW5nZVF1b3RlLmxvdW5nZS5mb29kQW5kQmV2ZXJhZ2UsXHJcbiAgICAgICAgICAgIHdoYXRzSW5jbHVkZWRGb29kOiBsb3VuZ2VRdW90ZS5sb3VuZ2Uud2hhdHNJbmNsdWRlZEZvb2QsXHJcbiAgICAgICAgICAgIHdoYXRzSW5jbHVkZWREcmlua3M6IGxvdW5nZVF1b3RlLmxvdW5nZS53aGF0c0luY2x1ZGVkRHJpbmtzLFxyXG4gICAgICAgICAgICB3aGF0c0luY2x1ZGVkRXh0cmFzOiBsb3VuZ2VRdW90ZS5sb3VuZ2Uud2hhdHNJbmNsdWRlZEV4dHJhcyxcclxuICAgICAgICAgICAgZ3JvdXBJbmZvOiBsb3VuZ2VRdW90ZS5sb3VuZ2UuZ3JvdXBJbmZvLFxyXG4gICAgICAgICAgICB0ZXJtaW5hbDogbG91bmdlUXVvdGUubG91bmdlLnRlcm1pbmFsPy50b1N0cmluZygpLFxyXG4gICAgICAgICAgICB0ZXJtc0FuZENvbmQ6IHRlcm1zQW5kQ29uZGl0aW9uc1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHByaWNlOiBsb3VuZ2VRdW90ZS5wcmljZSxcclxuICAgICAgICAgIGN1cnJlbmN5OiBsb3VuZ2VRdW90ZS5jdXJyZW5jeSxcclxuICAgICAgICAgIHNlYXJjaFF1ZXJ5OiBsb3VuZ2VRdWVyeSxcclxuICAgICAgICAgIG91dGJvdW5kRGF0ZTogbG91bmdlUXVlcnkuYXJyaXZhbERhdGV0aW1lLmZvcm1hdCgpXHJcbiAgICAgICAgfSxcclxuICAgICAgICBpbnRCYXNrZXQsXHJcbiAgICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlLFxyXG4gICAgICAgIHRoaXMudHJhdmVsbGVyc1xyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShmYWxzZSk7IC8vIFRPRE8gc2hvdWxkIHRoaXMgdGhyb3cgYW4gZXJyb3I/XHJcbiAgfVxyXG5cclxuICBnZXRUZXJtc0FuZENvbmQobG91bmdlUXVvdGU6IExvdW5nZVF1b3RlKSB7XHJcbiAgICByZXR1cm4gW1xyXG4gICAgICB7XHJcbiAgICAgICAgbmFtZTogJ05hbWUnLFxyXG4gICAgICAgIHZhbHVlOiBsb3VuZ2VRdW90ZS5sb3VuZ2UubmFtZVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgbmFtZTogJ1RlbGVwaG9uZScsXHJcbiAgICAgICAgdmFsdWU6IGxvdW5nZVF1b3RlLmxvdW5nZS50ZWxlcGhvbmVcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIG5hbWU6ICdJbXBvcnRhbnQgSW5mb3JtYXRpb24nLFxyXG4gICAgICAgIHZhbHVlOiBsb3VuZ2VRdW90ZS5sb3VuZ2UubWlzYy5pbXBvcnRhbnRJbmZvcm1hdGlvblxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgbmFtZTogJ0ludHJvZHVjdGlvbicsXHJcbiAgICAgICAgdmFsdWU6IGxvdW5nZVF1b3RlLmxvdW5nZS5pbnRyb2R1Y3Rpb25cclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIG5hbWU6ICdEcmVzcyBDb2RlJyxcclxuICAgICAgICB2YWx1ZTogbG91bmdlUXVvdGUubG91bmdlLmRyZXNzQ29kZVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgbmFtZTogJ0J1c2luZXNzIEZhY2lsaXRpZXMnLFxyXG4gICAgICAgIHZhbHVlOiBsb3VuZ2VRdW90ZS5sb3VuZ2UubWlzYy5idXNpbmVzc2ZhY2lsaXRpZXNcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIG5hbWU6ICdFbnRlcnRhaW5tZW50IEZhY2lsaXRpZXMnLFxyXG4gICAgICAgIHZhbHVlOiBsb3VuZ2VRdW90ZS5sb3VuZ2UubWlzYy5lbnRlcnRhaW5tZW50RmFjaWxpdGllc1xyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgbmFtZTogJ0Rpc2FibGVkIEZhY2lsaXRpZXMnLFxyXG4gICAgICAgIHZhbHVlOiBsb3VuZ2VRdW90ZS5sb3VuZ2UubWlzYy5mYWNpbGl0aWVzZGlzYWJsZWRcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIG5hbWU6ICdGYWNpbGl0aWVzJyxcclxuICAgICAgICB2YWx1ZTogbG91bmdlUXVvdGUubG91bmdlLmZhY2lsaXRpZXMudG9TdHJpbmcoKVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgbmFtZTogJ1RpbWVzJyxcclxuICAgICAgICB2YWx1ZTogYE9wZW5zICR7bG91bmdlUXVvdGUubG91bmdlLm9wZW5UaW1lfTsgQ2xvc2VzICR7bG91bmdlUXVvdGUubG91bmdlLmNsb3NlVGltZX1gXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBuYW1lOiAnRGlyZWN0aW9ucycsXHJcbiAgICAgICAgdmFsdWU6IGxvdW5nZVF1b3RlLmxvdW5nZS5kaXJlY3Rpb25zXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBuYW1lOiAnR3JvdXBzJyxcclxuICAgICAgICB2YWx1ZTogbG91bmdlUXVvdGUubG91bmdlLmdyb3VwSW5mb1xyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgbmFtZTogJ0NoZWNrLUluIFRpbWUnLFxyXG4gICAgICAgIHZhbHVlOiBsb3VuZ2VRdW90ZS5sb3VuZ2UuY2hlY2tJbkluZm9cclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIG5hbWU6ICdBbWVuZCBJbmZvJyxcclxuICAgICAgICB2YWx1ZTogbG91bmdlUXVvdGUubG91bmdlLmFtZW5kbWVudHNJbmZvXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBuYW1lOiAnQ2FuY2VsIEluZm8nLFxyXG4gICAgICAgIHZhbHVlOiBsb3VuZ2VRdW90ZS5sb3VuZ2UuY2FuY2VsbGF0aW9uSW5mb1xyXG4gICAgICB9XHJcbiAgICBdXHJcbiAgfVxyXG5cclxuICB1cGRhdGVMb3dlc3RQcmljZShyZXN1bHRzOiBMb3VuZ2VRdW90ZVtdKTogSUNoZWFwZXN0UHJpY2Uge1xyXG4gICAgaWYgKCFyZXN1bHRzLmxlbmd0aCkgcmV0dXJuIG51bGw7XHJcbiAgICBjb25zdCBjdXJyZW5jeSA9IHJlc3VsdHNbMF0uY3VycmVuY3k7XHJcbiAgICByZXR1cm4gcmVzdWx0cy5yZWR1Y2UoXHJcbiAgICAgIChjaGVhcGVzdFByaWNlOiBJQ2hlYXBlc3RQcmljZSwgcmVzdWx0OiBMb3VuZ2VRdW90ZSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHByaWNlID0gcmVzdWx0LnByaWNlO1xyXG4gICAgICAgIGlmIChjaGVhcGVzdFByaWNlLmFtb3VudCA+IHByaWNlKSBjaGVhcGVzdFByaWNlLmFtb3VudCA9IHByaWNlO1xyXG4gICAgICAgIHJldHVybiBjaGVhcGVzdFByaWNlO1xyXG4gICAgICB9LFxyXG4gICAgICB7IGFtb3VudDogTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIsIGN1cnJlbmN5Q29kZTogY3VycmVuY3kgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHNhdmVTZWFyY2goKTogT2JzZXJ2YWJsZTxTYXZlRmF2b3VyaXRlU2VhcmNoUmVzdWx0PiB7XHJcbiAgICBpZiAodGhpcy5pc1ZhbGlkLnZhbHVlKSB7XHJcbiAgICAgIGNvbnN0IHNlYXJjaCA9IHRoaXMuZ2V0U2VhcmNoUXVlcnkoKTtcclxuICAgICAgY29uc3Qgc2VhcmNoSW5mbyA9IHtcclxuICAgICAgICBuYW1lOiBgJHttb21lbnQoKX1gLFxyXG4gICAgICAgIHNlcnZpY2VUeXBlOiBTZXJ2aWNlVHlwZS5Mb3VuZ2UsXHJcbiAgICAgICAgc2VhcmNoQXJnczogc2VhcmNoXHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRoaXMuc2VhcmNoU2VydmljZS5zYXZlRmF2b3VyaXRlU2VhcmNoKHNlYXJjaEluZm8pO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
441
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG91bmdlcy1lbnRlcnByaXNlLXNlYXJjaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29idHNlcnZpY2VzL2Jhc2Uvc3JjL2xpYi92ZW5kb3IvY2xhc3Nlcy9sb3VuZ2VzLWVudGVycHJpc2Utc2VhcmNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQWE1QixPQUFPLEVBT0wsV0FBVyxFQUNaLE1BQU0sd0JBQXdCLENBQUM7QUFlaEMsTUFBTSxPQUFPLHVCQUNYLFNBQVEsb0JBSVA7SUFtS0QsWUFDVSxhQUEyQyxFQUNuRCxPQUEyQixFQUNuQixhQUErQyxFQUN2RCxjQUFrQyxFQUMxQixhQUErQztRQUV2RCxLQUFLLENBQUMsY0FBYyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBTnZCLGtCQUFhLEdBQWIsYUFBYSxDQUE4QjtRQUUzQyxrQkFBYSxHQUFiLGFBQWEsQ0FBa0M7UUFFL0Msa0JBQWEsR0FBYixhQUFhLENBQWtDO1FBbktsRCxTQUFJLEdBQWdCLFdBQVcsQ0FBQyxNQUFNLENBQUM7UUFDdkMsY0FBUyxHQUFHLElBQUksZUFBZSxDQUFrQixFQUFFLENBQUMsQ0FBQztRQStCcEQsa0JBQWEsR0FBVyxJQUFJLENBQUM7UUFvRTdCLHNCQUFpQixHQUFXLEVBQUUsQ0FBQztRQVV2QyxtQkFBbUI7UUFDWixhQUFRLEdBQUc7WUFDaEIsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRTtZQUNyQixLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQztZQUMzQixHQUFHLEVBQUUsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFO1NBQ3JCLENBQUM7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QUFFO2dCQUNqRSxJQUFJLENBQUMsWUFBWSxHQUFJLENBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQTtnQkFDekUsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFBO1lBQzlCLENBQUMsQ0FBQyxDQUFBO1lBQ0YsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFBO1lBQ3hCLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQTtZQUM1QixJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUE7UUFDNUIsQ0FBQztLQUFBOztBQXhnQmUsOENBQXNCLEdBQUcsZUFBZSxDQUFDO0FBQ3pDLCtDQUF1QixHQUFHLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUVudGVycHJpc2VTZWFyY2ggfSBmcm9tICcuL2Jhc2UtZW50ZXJwcmlzZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XHJcbmltcG9ydCB7IEJhc2VTdG9yYWdlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3N0b3JhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEJhc2VIZWxwZXJSb3V0aW5lcyB9IGZyb20gJy4vaGVscGVycyc7XHJcbmltcG9ydCB7IFRyYXZlbGxlciB9IGZyb20gJy4uL21vZGVscy90cmF2ZWxsZXIub2JqZWN0JztcclxuaW1wb3J0IHtcclxuICBMb3VuZ2VRdW90ZVJlc3VsdCxcclxuICBMb3VuZ2VRdW90ZVJlc3VsdEFycmF5LFxyXG4gIE5nYkRhdGVTdHJ1Y3QsXHJcbiAgT0JUQWlycG9ydERldGFpbHMsXHJcbiAgUmVjZW50U2VhcmNoLFxyXG4gIFNhdmVGYXZvdXJpdGVTZWFyY2hSZXN1bHQsXHJcbiAgVGVybWluYWxzVHlwZVxyXG59IGZyb20gJy4uL3R5cGVzL3R5cGVzJztcclxuaW1wb3J0IHtcclxuICBBaXJwb3J0UmVzdWx0cyxcclxuICBCYXNrZXRJdGVtLFxyXG4gIExvdW5nZVF1b3RlLFxyXG4gIFNhdmVSZWNlbnRTZWFyY2hNdXRhdGlvblZhcmlhYmxlcyxcclxuICBTZWFyY2hGbGlnaHRzVjJRdWVyeVZhcmlhYmxlcyxcclxuICBTZWFyY2hMb3VuZ2VzUXVlcnlWYXJpYWJsZXMsXHJcbiAgU2VydmljZVR5cGVcclxufSBmcm9tICcuLi90eXBlcy9ncmFwaHFsLnR5cGVzJztcclxuaW1wb3J0IHtcclxuICBCYXNlTG91bmdlUXVvdGVGZXRjaGVyLFxyXG4gIExvdW5nZVF1b3RlRmV0Y2hlclR5cGVcclxufSBmcm9tICcuLi9mZXRjaGVycy9sb3VuZ2UtcXVvdGUuZmV0Y2hlcic7XHJcbmltcG9ydCB7XHJcbiAgRW50ZXJwcmlzZUJhc2tldFNlcnZpY2VJbnRlcmZhY2UsXHJcbiAgSW50ZXJuYWxCYXNrZXRJbnRlcmZhY2VcclxufSBmcm9tICcuLi9pbnRlcmZhY2VzL0llbnRlcnByaXNlLWJhc2tldC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRW50ZXJwcmlzZVNlYXJjaFNlcnZpY2VJbnRlcmZhY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL0lzZWFyY2guc2VydmljZSc7XHJcbmltcG9ydCB7XHJcbiAgTG91bmdlc0VudGVycHJpc2VTZWFyY2hJbnRlcmZhY2UsXHJcbiAgTG91bmdlc1RlbXBQYXJhbXNcclxufSBmcm9tICcuLi9pbnRlcmZhY2VzL0lsb3VuZ2VzLWVudGVycHJpc2Utc2VhcmNoJztcclxuaW1wb3J0IHsgSUNoZWFwZXN0UHJpY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2NoZWFwZXN0LXByaWNlJztcclxuZXhwb3J0IGNsYXNzIExvdW5nZXNFbnRlcnByaXNlU2VhcmNoPExRX1EgZXh0ZW5kcyBMb3VuZ2VRdW90ZUZldGNoZXJUeXBlPlxyXG4gIGV4dGVuZHMgQmFzZUVudGVycHJpc2VTZWFyY2g8XHJcbiAgICBMb3VuZ2VzVGVtcFBhcmFtcyxcclxuICAgIExvdW5nZVF1b3RlUmVzdWx0QXJyYXksXHJcbiAgICBMb3VuZ2VRdW90ZVJlc3VsdEFycmF5XHJcbiAgPlxyXG4gIGltcGxlbWVudHMgTG91bmdlc0VudGVycHJpc2VTZWFyY2hJbnRlcmZhY2Vcclxue1xyXG4gIHN0YXRpYyByZWFkb25seSBTVE9SQUdFX1NFU1NJT05fUEFSQU1TID0gJ3NlYXJjaF9sb3VuZ2UnO1xyXG4gIHN0YXRpYyByZWFkb25seSBTVE9SQUdFX1NFU1NJT05fUkVTVUxUUyA9ICdyZXN1bHRzX2xvdW5nZSc7XHJcbiAgcHVibGljIHR5cGU6IFNlcnZpY2VUeXBlID0gU2VydmljZVR5cGUuTG91bmdlO1xyXG4gIHB1YmxpYyB0ZXJtaW5hbHMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRlcm1pbmFsc1R5cGVbXT4oW10pO1xyXG5cclxuICBwcml2YXRlIHRyYXZlbGxlcnM6IFRyYXZlbGxlcltdO1xyXG4gIHByaXZhdGUgX2xvY2F0aW9uQ29kZTogc3RyaW5nO1xyXG5cclxuICBnZXQgYWR1bHRzKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy50ZW1wUGFyYW1zLmFkdWx0cztcclxuICB9XHJcblxyXG4gIHNldCBhZHVsdHModmFsdWU6IG51bWJlcikge1xyXG4gICAgdGhpcy50ZW1wUGFyYW1zLmFkdWx0cyA9IHZhbHVlO1xyXG4gICAgdGhpcy5faXNWYWxpZCgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNoaWxkcmVuKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy50ZW1wUGFyYW1zLmNoaWxkcmVuO1xyXG4gIH1cclxuXHJcbiAgc2V0IGNoaWxkcmVuKHZhbHVlOiBudW1iZXIpIHtcclxuICAgIHRoaXMudGVtcFBhcmFtcy5jaGlsZHJlbiA9IHZhbHVlO1xyXG4gICAgdGhpcy5faXNWYWxpZCgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGluZmFudHMoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLnRlbXBQYXJhbXMuaW5mYW50cztcclxuICB9XHJcblxyXG4gIHNldCBpbmZhbnRzKHZhbHVlOiBudW1iZXIpIHtcclxuICAgIHRoaXMudGVtcFBhcmFtcy5pbmZhbnRzID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9mbGlnaHROdW1iZXI6IHN0cmluZyA9IG51bGw7XHJcblxyXG4gIGdldCBmbGlnaHROdW1iZXIoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9mbGlnaHROdW1iZXI7XHJcbiAgfVxyXG5cclxuICBzZXQgZmxpZ2h0TnVtYmVyKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX2ZsaWdodE51bWJlciA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGxvY2F0aW9uQ29kZSgpOiBzdHJpbmcgfCBPQlRBaXJwb3J0RGV0YWlscyB7XHJcbiAgICByZXR1cm4gdGhpcy50ZW1wUGFyYW1zLmxvY2F0aW9uQ29kZTtcclxuICB9XHJcblxyXG4gIHNldCBsb2NhdGlvbkNvZGUodmFsdWU6IHN0cmluZyB8IE9CVEFpcnBvcnREZXRhaWxzKSB7XHJcbiAgICB0aGlzLnRlbXBQYXJhbXMubG9jYXRpb25Db2RlID0gdmFsdWU7XHJcbiAgICBjb25zdCB0ZXJtaW5hbHNUeXBlOiBUZXJtaW5hbHNUeXBlW10gPSB0aGlzLnRlcm1pbmFscz8udmFsdWU7XHJcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xyXG4gICAgICB0aGlzLl9sb2NhdGlvbkNvZGUgPSAnJztcclxuICAgICAgdGhpcy50ZXJtaW5hbCA9IG51bGw7XHJcbiAgICAgIHRoaXMudGVybWluYWxzLm5leHQoW10pO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVGVybWluYWwgPSBudWxsO1xyXG4gICAgICB0aGlzLl9pc1ZhbGlkKCk7XHJcbiAgICB9IGVsc2UgaWYgKHZhbHVlICYmIHZhbHVlLmdhdGV3YXkpIHtcclxuICAgICAgdGhpcy5fbG9jYXRpb25Db2RlID0gdmFsdWUuZ2F0ZXdheTtcclxuICAgICAgdGhpcy50ZXJtaW5hbCA9IG51bGw7XHJcbiAgICAgIHRoaXMudGVybWluYWxzLm5leHQodmFsdWUudGVybWluYWxzKTtcclxuICAgICAgaWYgKHRlcm1pbmFsc1R5cGUubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFRlcm1pbmFsID0gdGVybWluYWxzVHlwZVswXS5rZXk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5faXNWYWxpZCgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fbG9jYXRpb25Db2RlID0gbnVsbDtcclxuICAgICAgdGhpcy50ZXJtaW5hbCA9IG51bGw7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRUZXJtaW5hbCA9IG51bGw7XHJcbiAgICAgIHRoaXMudGVybWluYWxzLm5leHQoW10pO1xyXG4gICAgICB0aGlzLl9pc1ZhbGlkKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgdGVybWluYWwoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnRlbXBQYXJhbXMudGVybWluYWxcclxuICAgICAgPyB0aGlzLnRlbXBQYXJhbXMudGVybWluYWwudG9TdHJpbmcoKVxyXG4gICAgICA6IG51bGw7XHJcbiAgfVxyXG5cclxuICBzZXQgdGVybWluYWwoaW5wdXQ6IHN0cmluZykge1xyXG4gICAgdGhpcy50ZW1wUGFyYW1zLnRlcm1pbmFsID0gaW5wdXQ7XHJcbiAgICBjb25zdCBmb3VuZDogVGVybWluYWxzVHlwZSA9IHRoaXMudGVybWluYWxzLnZhbHVlLmZpbmQoXHJcbiAgICAgICh0ZXJtaW5hbDogVGVybWluYWxzVHlwZSwgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgIGlmICh0ZXJtaW5hbC52YWx1ZSA9PT0gaW5wdXQpIHtcclxuICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgKTtcclxuXHJcbiAgICBpZiAoZm91bmQpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFRlcm1pbmFsID0gZm91bmQua2V5O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMudGVybWluYWxzLnZhbHVlICYmIHRoaXMudGVybWluYWxzLnZhbHVlLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVGVybWluYWwgPSB0aGlzLnRlcm1pbmFscy52YWx1ZVswXS5rZXk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFRlcm1pbmFsID0gJ0FueSBUZXJtaW5hbCc7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuX2lzVmFsaWQoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3NlbGVjdGVkVGVybWluYWw6IHN0cmluZyA9ICcnO1xyXG4gIHNldCBzZWxlY3RlZFRlcm1pbmFsKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3NlbGVjdGVkVGVybWluYWwgPSB2YWx1ZTtcclxuICAgIHRoaXMuX2lzVmFsaWQoKTtcclxuICB9XHJcblxyXG4gIGdldCBzZWxlY3RlZFRlcm1pbmFsKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRUZXJtaW5hbDtcclxuICB9XHJcblxyXG4gIC8vIHB1YmxpYyB2YXJpYWJsZXNcclxuICBwdWJsaWMgbWluX2RhdGUgPSB7XHJcbiAgICB5ZWFyOiBtb21lbnQoKS55ZWFyKCksXHJcbiAgICBtb250aDogbW9tZW50KCkubW9udGgoKSArIDEsIC8vIG5nYkRhdGUgbW9udGhzIGFyZSBub3QgMCBpbmRleGVkXHJcbiAgICBkYXk6IG1vbWVudCgpLmRhdGUoKVxyXG4gIH07XHJcblxyXG4gIHByaXZhdGUgX2RhdGU6IE5nYkRhdGVTdHJ1Y3QgPSBudWxsO1xyXG4gIGdldCBkYXRlKCk6IE5nYkRhdGVTdHJ1Y3Qge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RhdGU7XHJcbiAgfVxyXG5cclxuICBzZXQgZGF0ZSh2YWx1ZTogTmdiRGF0ZVN0cnVjdCkge1xyXG4gICAgdGhpcy5fZGF0ZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5fdXBkYXRlRGF0ZVRpbWUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3RpbWU6IHN0cmluZyA9IG51bGw7XHJcbiAgZ2V0IHRpbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl90aW1lO1xyXG4gIH1cclxuXHJcbiAgc2V0IHRpbWUodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fdGltZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5fdXBkYXRlRGF0ZVRpbWUoKTtcclxuICB9XHJcblxyXG4gIGdldCBhcnJpdmFsRGF0ZXRpbWUoKTogbW9tZW50Lk1vbWVudCB7XHJcbiAgICByZXR1cm4gdGhpcy50ZW1wUGFyYW1zLmFycml2YWxEYXRldGltZTtcclxuICB9XHJcblxyXG4gIHNldCBhcnJpdmFsRGF0ZXRpbWUodmFsdWU6IG1vbWVudC5Nb21lbnQpIHtcclxuICAgIGlmICh2YWx1ZS5pc1ZhbGlkKCkpIHtcclxuICAgICAgdGhpcy50ZW1wUGFyYW1zLmFycml2YWxEYXRldGltZSA9IHZhbHVlO1xyXG5cclxuICAgICAgdGhpcy5fZGF0ZSA9IHRoaXMuaGVscGVycy5tb21lbnRUb05nRGF0ZSh2YWx1ZSk7XHJcbiAgICAgIHRoaXMuX3RpbWUgPSB0aGlzLmhlbHBlcnMuZm9ybWF0VGltZUNvbG9uKHZhbHVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudGVtcFBhcmFtcy5hcnJpdmFsRGF0ZXRpbWUgPSBudWxsO1xyXG4gICAgfVxyXG4gICAgdGhpcy5faXNWYWxpZCgpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHJlc3VsdHNTZXNzaW9uTmFtZSA9XHJcbiAgICBMb3VuZ2VzRW50ZXJwcmlzZVNlYXJjaC5TVE9SQUdFX1NFU1NJT05fUkVTVUxUUztcclxuICBwcm90ZWN0ZWQgbXVsdGlSZXN1bHRzU2Vzc2lvbk5hbWUgPVxyXG4gICAgTG91bmdlc0VudGVycHJpc2VTZWFyY2guU1RPUkFHRV9TRVNTSU9OX1JFU1VMVFM7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBsb3VuZ2VmZXRjaGVyOiBCYXNlTG91bmdlUXVvdGVGZXRjaGVyPExRX1E+LFxyXG4gICAgaGVscGVyczogQmFzZUhlbHBlclJvdXRpbmVzLFxyXG4gICAgcHJpdmF0ZSBiYXNrZXRTZXJ2aWNlOiBFbnRlcnByaXNlQmFza2V0U2VydmljZUludGVyZmFjZSxcclxuICAgIHN0b3JhZ2VTZXJ2aWNlOiBCYXNlU3RvcmFnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHNlYXJjaFNlcnZpY2U6IEVudGVycHJpc2VTZWFyY2hTZXJ2aWNlSW50ZXJmYWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcihzdG9yYWdlU2VydmljZSwgaGVscGVycyk7XHJcbiAgICBjb25zdCBkYXRhOiB7XHJcbiAgICAgIHRlbXBQYXJhbXM6IExvdW5nZXNUZW1wUGFyYW1zO1xyXG4gICAgfSA9IHN0b3JhZ2VTZXJ2aWNlLmdldFNlc3Npb25JdGVtKFxyXG4gICAgICBMb3VuZ2VzRW50ZXJwcmlzZVNlYXJjaC5TVE9SQUdFX1NFU1NJT05fUEFSQU1TXHJcbiAgICApIHx8IHtcclxuICAgICAgdGVtcFBhcmFtczoge30gYXMgTG91bmdlc1RlbXBQYXJhbXNcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy51cGRhdGVUZW1wUGFyYW1zKHNlYXJjaFNlcnZpY2UubWFrZUxvdW5nZXNRdWVyeShkYXRhLnRlbXBQYXJhbXMpKTtcclxuXHJcbiAgICBpZiAoc2VhcmNoU2VydmljZS5zaG91bGRBZGRUcmF2ZWxsZXJTdWJzY3JpcHRpb24oKSkge1xyXG4gICAgICBzZWFyY2hTZXJ2aWNlLnRyYXZlbGxlckluZm9ybWF0aW9uLnN1YnNjcmliZShcclxuICAgICAgICAodHJhdmVsbGVyczogVHJhdmVsbGVyW10pID0+IHtcclxuICAgICAgICAgIGNvbnN0IHNwbGl0VHJhdmVsbGVycyA9IHRoaXMuaGVscGVycy5zZWxlY3RlZFRyYXZlbGxlcnMoXHJcbiAgICAgICAgICAgIHRyYXZlbGxlcnMsXHJcbiAgICAgICAgICAgIFNlcnZpY2VUeXBlLkxvdW5nZVxyXG4gICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICB0aGlzLnRlbXBQYXJhbXMuYWR1bHRzID0gc3BsaXRUcmF2ZWxsZXJzLmFkdWx0cy5sZW5ndGg7XHJcbiAgICAgICAgICB0aGlzLnRlbXBQYXJhbXMuY2hpbGRyZW4gPSBzcGxpdFRyYXZlbGxlcnMuY2hpbGRyZW4ubGVuZ3RoO1xyXG4gICAgICAgICAgdGhpcy50cmF2ZWxsZXJzID0gdHJhdmVsbGVycztcclxuXHJcbiAgICAgICAgICB0aGlzLl9pc1ZhbGlkKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgY29uc3QgcmVzdWx0cyA9XHJcbiAgICAgIHN0b3JhZ2VTZXJ2aWNlLmdldFNlc3Npb25JdGVtQXNMaXN0PExvdW5nZVF1b3RlUmVzdWx0QXJyYXk+KFxyXG4gICAgICAgIHRoaXMucmVzdWx0c1Nlc3Npb25OYW1lXHJcbiAgICAgICkgfHwgW107XHJcbiAgICAvLyBpZiAocmVzdWx0cyA9PSBudWxsICYmIHRoaXMuaXNWYWxpZCkge1xyXG4gICAgLy8gICBzZWFyY2hTZXJ2aWNlLnN0YXJ0U2VhcmNoZXMoKTtcclxuICAgIC8vIH1cclxuICAgIHRoaXMuX2NoZWFwZXN0UmVzdWx0UHJpY2UgPSB0aGlzLnVwZGF0ZUxvd2VzdFByaWNlKHJlc3VsdHMpO1xyXG4gICAgdGhpcy5yZXN1bHRzLm5leHQocmVzdWx0cyB8fCBbXSk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgcmVzZXRRdWVyeSgpIHtcclxuICAgIHRoaXMudXBkYXRlVGVtcFBhcmFtcyh0aGlzLnNlYXJjaFNlcnZpY2UubWFrZUxvdW5nZXNRdWVyeSgpKTtcclxuICAgIHRoaXMuX2lzVmFsaWQoKTtcclxuICB9XHJcblxyXG4gIGdldFNlYXJjaFF1ZXJ5KCk6IFNlYXJjaExvdW5nZXNRdWVyeVZhcmlhYmxlcyB7XHJcbiAgICBjb25zdCBxdWVyeTogU2VhcmNoTG91bmdlc1F1ZXJ5VmFyaWFibGVzID0ge1xyXG4gICAgICBhZHVsdHM6IHRoaXMudGVtcFBhcmFtcy5hZHVsdHMsXHJcbiAgICAgIGNoaWxkcmVuOiB0aGlzLnRlbXBQYXJhbXMuY2hpbGRyZW4sXHJcbiAgICAgIGluZmFudHM6IHRoaXMudGVtcFBhcmFtcy5pbmZhbnRzLFxyXG4gICAgICBsb2NhdGlvbkNvZGU6IHRoaXMuX2xvY2F0aW9uQ29kZSxcclxuICAgICAgdGVybWluYWw6XHJcbiAgICAgICAgdGhpcy50ZW1wUGFyYW1zLnRlcm1pbmFsID09PSAnQW55JyA/IG51bGwgOiB0aGlzLnRlbXBQYXJhbXMudGVybWluYWwsXHJcbiAgICAgIGFycml2YWxEYXRldGltZTogdGhpcy50ZW1wUGFyYW1zLmFycml2YWxEYXRldGltZVxyXG4gICAgfTtcclxuICAgIHJldHVybiB0aGlzLmhlbHBlcnMucmVtb3ZlTnVsbHM8U2VhcmNoTG91bmdlc1F1ZXJ5VmFyaWFibGVzPihxdWVyeSk7XHJcbiAgfVxyXG5cclxuICAvLyBQcml2YXRlIE1ldGhvZHNcclxuXHJcbiAgcHJpdmF0ZSBfaXNWYWxpZCgpIHtcclxuICAgIGlmICghdGhpcy5kb0NoZWNrcykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnNldFNlc3Npb25JdGVtKFxyXG4gICAgICBMb3VuZ2VzRW50ZXJwcmlzZVNlYXJjaC5TVE9SQUdFX1NFU1NJT05fUEFSQU1TLFxyXG4gICAgICB7XHJcbiAgICAgICAgdGVtcFBhcmFtczogdGhpcy50ZW1wUGFyYW1zLFxyXG4gICAgICAgIHRyYXZlbGxlcnM6IHRoaXMudHJhdmVsbGVyc1xyXG4gICAgICB9XHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMudmFsaWRhdGlvbk1lc3NhZ2VzID0gW107XHJcbiAgICBpZiAoIXRoaXMuX2xvY2F0aW9uQ29kZSB8fCB0aGlzLl9sb2NhdGlvbkNvZGUgPT09ICcnKSB7XHJcbiAgICAgIHRoaXMudmFsaWRhdGlvbk1lc3NhZ2VzLnB1c2goJ1lvdSBtdXN0IHNlbGVjdCBhaXJwb3J0IGZpcnN0LicpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGlmICghdGhpcy5xdWVyeS50ZXJtaW5hbCkge1xyXG4gICAgLy8gICB0aGlzLnZhbGlkYXRpb25NZXNzYWdlcy5wdXNoKCdUZXJtaW5hbCBjYW4gbm90IGJlIGVtcHR5LicpO1xyXG4gICAgLy8gfVxyXG5cclxuICAgIGlmICh0aGlzLnRlbXBQYXJhbXMuYXJyaXZhbERhdGV0aW1lLnVuaXgoKSA8IG1vbWVudCgpLnVuaXgoKSkge1xyXG4gICAgICB0aGlzLnZhbGlkYXRpb25NZXNzYWdlcy5wdXNoKCdPdXR3YXJkIGpvdXJuZXkgY2Fubm90IGJlIGluIHRoZSBwYXN0LicpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaXNWYWxpZC5uZXh0KHRoaXMudmFsaWRhdGlvbk1lc3NhZ2VzLmxlbmd0aCA9PT0gMCk7XHJcbiAgICB0aGlzLm1lc3NhZ2VzLm5leHQodGhpcy52YWxpZGF0aW9uTWVzc2FnZXMpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdXBkYXRlRGF0ZVRpbWUoKSB7XHJcbiAgICBpZiAodGhpcy5fZGF0ZSAmJiB0aGlzLl90aW1lKSB7XHJcbiAgICAgIGNvbnN0IHRpbWUgPSB0aGlzLmhlbHBlcnMubmdEYXRlVG9Nb21lbnQodGhpcy5fZGF0ZSwgdGhpcy5fdGltZSk7XHJcbiAgICAgIHRoaXMudGVtcFBhcmFtcy5hcnJpdmFsRGF0ZXRpbWUgPSB0aW1lLmlzVmFsaWQoKSA/IHRpbWUgOiBudWxsO1xyXG4gICAgICB0aGlzLl9pc1ZhbGlkKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzdGFydFNlYXJjaCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIHRoaXMucmVzdWx0cy5uZXh0KFtdKTtcclxuXHJcbiAgICBpZiAodGhpcy5pc1ZhbGlkLnZhbHVlKSB7XHJcbiAgICAgIGNvbnN0IHF1ZXJ5ID0gdGhpcy5nZXRTZWFyY2hRdWVyeSgpO1xyXG4gICAgICB0aGlzLnNlYXJjaFNlcnZpY2Uuc2F2ZVJlY2VudFNlYXJjaCh0aGlzLmdldFJlY2VudFNlYXJjaFF1ZXJ5KHF1ZXJ5KSk7XHJcbiAgICAgIHJldHVybiB0aGlzLl9zdGFydFNlYXJjaChcclxuICAgICAgICB0aGlzLmxvdW5nZWZldGNoZXIuZmV0Y2hMaXN0KFxyXG4gICAgICAgICAgdGhpcy5oZWxwZXJzLnJlbW92ZU51bGxzPFNlYXJjaExvdW5nZXNRdWVyeVZhcmlhYmxlcz4ocXVlcnkpXHJcbiAgICAgICAgKVxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShmYWxzZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRSZWNlbnRTZWFyY2hRdWVyeShcclxuICAgIHF1ZXJ5OiBTZWFyY2hMb3VuZ2VzUXVlcnlWYXJpYWJsZXNcclxuICApOiBTYXZlUmVjZW50U2VhcmNoTXV0YXRpb25WYXJpYWJsZXMge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgc2VydmljZVR5cGU6IFNlcnZpY2VUeXBlLkxvdW5nZSxcclxuICAgICAgc2VhcmNoQXJnczogcXVlcnksXHJcbiAgICAgIHRyYXZlbERhdGU6IHRoaXMuYXJyaXZhbERhdGV0aW1lLmZvcm1hdCgpLFxyXG4gICAgICB0cmF2ZWxsZXJzOiB0aGlzLmhlbHBlcnMuZ2V0VHJhdmVsbGVyc0lkKHRoaXMudHJhdmVsbGVycylcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhcnRSZWNlbnRTZWFyY2gocmVjZW50U2VhcmNoOiBSZWNlbnRTZWFyY2gpOiB2b2lkIHtcclxuICAgIHRoaXMuYXJyaXZhbERhdGV0aW1lID0gbW9tZW50KHJlY2VudFNlYXJjaC5zZWFyY2hBcmdzLmFycml2YWxEYXRldGltZSk7XHJcbiAgICB0aGlzLnRlcm1pbmFsID0gcmVjZW50U2VhcmNoLnNlYXJjaEFyZ3MudGVybWluYWw7XHJcbiAgICB0aGlzLnNlYXJjaFNlcnZpY2VcclxuICAgICAgLmdldEFpcnBvcnRCeUNvZGUocmVjZW50U2VhcmNoLnNlYXJjaEFyZ3MubG9jYXRpb25Db2RlKVxyXG4gICAgICAuc3Vic2NyaWJlKChhaXJwb3J0OiBBaXJwb3J0UmVzdWx0cykgPT4ge1xyXG4gICAgICAgIGlmIChhaXJwb3J0KSB7XHJcbiAgICAgICAgICB0aGlzLmxvY2F0aW9uQ29kZSA9IHtcclxuICAgICAgICAgICAgY291bnRyeTogYWlycG9ydC5pYXRhTWF0Y2g/LmxvY2F0aW9uRGV0YWlscz8uY291bnRyeSxcclxuICAgICAgICAgICAgY291bnRyeUNvZGU6IGFpcnBvcnQuaWF0YU1hdGNoPy5sb2NhdGlvbkRldGFpbHM/LmNvdW50cnlDb2RlLFxyXG4gICAgICAgICAgICBkZXN0aW5hdGlvbjogYWlycG9ydC5pYXRhTWF0Y2gubmFtZSxcclxuICAgICAgICAgICAgZ2F0ZXdheTogYWlycG9ydC5pYXRhTWF0Y2guaWF0YSxcclxuICAgICAgICAgICAgcG9zdGNvZGU6IGFpcnBvcnQuaWF0YU1hdGNoPy5sb2NhdGlvbkRldGFpbHM/LnBvc3Rjb2RlLFxyXG4gICAgICAgICAgICB0ZXJtaW5hbHM6IHRoaXMuc2VhcmNoU2VydmljZS5wcm9jZXNzVGVybWluYWxzKFxyXG4gICAgICAgICAgICAgIGFpcnBvcnQuaWF0YU1hdGNoLnRlcm1pbmFsc1xyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgICAgdGhpcy50ZXJtaW5hbCA9IHJlY2VudFNlYXJjaC5zZWFyY2hBcmdzLnRlcm1pbmFsO1xyXG4gICAgICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnN0YXJ0U2VhcmNoZXMoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnN0YXJ0U2VhcmNoZXMoKTtcclxuICB9XHJcblxyXG4gIHNvcnRCeVByaWNlKGFzYz86IGJvb2xlYW4sIHJlc3VsdEFycmF5OiBMb3VuZ2VRdW90ZVtdID0gW10pIHtcclxuICAgIGxldCBzb3J0UmVzdWx0cyA9IFsuLi50aGlzLmZ1bGxSZXN1bHRzXSBhcyBMb3VuZ2VRdW90ZVtdO1xyXG4gICAgaWYgKCFzb3J0UmVzdWx0cy5sZW5ndGgpIHtcclxuICAgICAgc29ydFJlc3VsdHMgPSByZXN1bHRBcnJheTtcclxuICAgIH1cclxuICAgIHNvcnRSZXN1bHRzID0gdGhpcy5zb3J0UmVzdWx0c1ByaWNlKHNvcnRSZXN1bHRzLCBhc2MpO1xyXG4gICAgdGhpcy5yZXN1bHRzLm5leHQoc29ydFJlc3VsdHMpO1xyXG4gIH1cclxuXHJcbiAgc29ydFJlc3VsdHNQcmljZShyZXN1bHRBcnJheTogTG91bmdlUXVvdGVbXSwgYXNjPzogYm9vbGVhbik6IExvdW5nZVF1b3RlW10ge1xyXG4gICAgbGV0IHJlc3VsdHMgPSBbLi4ucmVzdWx0QXJyYXldO1xyXG4gICAgaWYgKGFzYykge1xyXG4gICAgICByZXN1bHRzID0gcmVzdWx0cy5zb3J0KFxyXG4gICAgICAgIChhOiBMb3VuZ2VRdW90ZVJlc3VsdCwgYjogTG91bmdlUXVvdGVSZXN1bHQpID0+IGIucHJpY2UgLSBhLnByaWNlXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXN1bHRzID0gcmVzdWx0cy5zb3J0KFxyXG4gICAgICAgIChhOiBMb3VuZ2VRdW90ZVJlc3VsdCwgYjogTG91bmdlUXVvdGVSZXN1bHQpID0+IGEucHJpY2UgLSBiLnByaWNlXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0cztcclxuICB9XHJcblxyXG4gIHNvcnRCeVRlcm1pbmFsKHJlc3VsdEFycmF5OiBMb3VuZ2VRdW90ZVtdID0gW10pIHtcclxuICAgIGxldCByZXN1bHRzID0gWy4uLnRoaXMuZnVsbFJlc3VsdHNdO1xyXG4gICAgaWYgKCFyZXN1bHRzLmxlbmd0aCkge1xyXG4gICAgICByZXN1bHRzID0gcmVzdWx0QXJyYXk7XHJcbiAgICB9XHJcbiAgICBjb25zdCB0ZXJtaW5hbFNvcnRlciA9IChhOiBMb3VuZ2VRdW90ZVJlc3VsdCwgYjogTG91bmdlUXVvdGVSZXN1bHQpID0+IHtcclxuICAgICAgcmV0dXJuIC0xOyAvLyBUT0RPIGEucmF3RGF0YS5GbGlnaHRUZXJtT3V0ID4gYi5yYXdEYXRhLkZsaWdodFRlcm1PdXQgPyAxIDogLTE7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5yZXN1bHRzLm5leHQocmVzdWx0cy5zb3J0KHRlcm1pbmFsU29ydGVyKSk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVGcm9tUHJldmlvdXNTZWFyY2hlcyhcclxuICAgIHByZXZpb3VzSXRlbXM6IFJlY29yZDxTZXJ2aWNlVHlwZSwgQmFza2V0SXRlbT5cclxuICApOiB2b2lkIHtcclxuICAgIGNvbnNvbGUubG9nKCdQUkVQT1BVTEFUSU5HIExPVU5HRSBGT1JNJyk7XHJcbiAgICBjb25zdCBmbGlnaHRJdGVtOiBTZWFyY2hGbGlnaHRzVjJRdWVyeVZhcmlhYmxlcyA9XHJcbiAgICAgIHByZXZpb3VzSXRlbXNbU2VydmljZVR5cGUuRmxpZ2h0XT8uc2VhcmNoUXVlcnk7XHJcbiAgICBpZiAoZmxpZ2h0SXRlbSkge1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIGxldCBkYXRlID1cclxuICAgICAgICAgIHRoaXMuc2VhcmNoU2VydmljZS5zZWFyY2hlc1tTZXJ2aWNlVHlwZS5GbGlnaHRdLm91dEJvdW5kRGF0ZS50b0RhdGUoKTtcclxuICAgICAgICB0aGlzLmRhdGUgPSB7XHJcbiAgICAgICAgICBkYXk6IGRhdGUuZ2V0VVRDRGF0ZSgpLFxyXG4gICAgICAgICAgbW9udGg6IGRhdGUuZ2V0VVRDTW9udGgoKSArIDEsXHJcbiAgICAgICAgICB5ZWFyOiBkYXRlLmdldFVUQ0Z1bGxZZWFyKClcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMubG9jYXRpb25Db2RlID0gdGhpcy5zZWFyY2hTZXJ2aWNlLnNlYXJjaGVzW1NlcnZpY2VUeXBlLkZsaWdodF1cclxuICAgICAgICAgIC5hcnJpdmVMb2NhdGlvbiBhcyBPQlRBaXJwb3J0RGV0YWlscztcclxuICAgICAgfSBjYXRjaCB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgdHJ5aW5nIHRvIHByZXBvcHVsYXRlIHBhcmtpbmcgZnJvbSBsb3VuZ2UgaXRlbScpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhc3luYyBhZGRMb3VuZ2VUb0Jhc2tldChcclxuICAgIGxvdW5nZVF1b3RlOiBMb3VuZ2VRdW90ZSxcclxuICAgIGxvdW5nZVF1ZXJ5OiBTZWFyY2hMb3VuZ2VzUXVlcnlWYXJpYWJsZXNcclxuICApOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIGlmIChsb3VuZ2VRdW90ZS51bmF2YWlsYWJsZSkge1xyXG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGZhbHNlKTtcclxuICAgIH1cclxuICAgIGNvbnN0IGludEJhc2tldDogSW50ZXJuYWxCYXNrZXRJbnRlcmZhY2UgPVxyXG4gICAgICBhd2FpdCB0aGlzLmJhc2tldFNlcnZpY2UuZ2V0RGVmYXVsdEJhc2tldCgpO1xyXG4gICAgY29uc3QgYmFza2V0ID0gaW50QmFza2V0Py5zdWJqZWN0LnZhbHVlO1xyXG4gICAgY29uc3QgdGVybXNBbmRDb25kaXRpb25zID0gdGhpcy5nZXRUZXJtc0FuZENvbmQobG91bmdlUXVvdGUpO1xyXG4gICAgaWYgKGJhc2tldCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5iYXNrZXRTZXJ2aWNlLmFkZFRvQmFza2V0KFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGFkdWx0czogbG91bmdlUXVlcnkuYWR1bHRzLFxyXG4gICAgICAgICAgY2hpbGRyZW46IGxvdW5nZVF1ZXJ5LmNoaWxkcmVuLFxyXG4gICAgICAgICAgaW5mYW50czogbG91bmdlUXVlcnkuaW5mYW50cyxcclxuICAgICAgICAgIGJhc2tldDogYmFza2V0LmlkLFxyXG4gICAgICAgICAgc2VydmljZTogbG91bmdlUXVvdGUuc291cmNlSWQudG9TdHJpbmcoKSxcclxuICAgICAgICAgIGRldGFpbDoge1xyXG4gICAgICAgICAgICBhcnJpdmFsRGF0ZXRpbWU6IGxvdW5nZVF1ZXJ5LmFycml2YWxEYXRldGltZS5mb3JtYXQoKSxcclxuICAgICAgICAgICAgbG9jYXRpb25Db2RlOiBsb3VuZ2VRdW90ZS5jb2RlLFxyXG4gICAgICAgICAgICBuYW1lOiBsb3VuZ2VRdW90ZS5uYW1lLFxyXG4gICAgICAgICAgICBhaXJwb3J0SWF0YTogbG91bmdlUXVlcnk/LmxvY2F0aW9uQ29kZSxcclxuICAgICAgICAgICAgbG9nbzogbG91bmdlUXVvdGUubG91bmdlLmxvZ28sXHJcbiAgICAgICAgICAgIGludHJvZHVjdGlvbjogbG91bmdlUXVvdGUubG91bmdlLmludHJvZHVjdGlvbixcclxuICAgICAgICAgICAgY292aWRDb3B5OiBsb3VuZ2VRdW90ZS5sb3VuZ2UubWlzYy5jb3ZpZENvcHksXHJcbiAgICAgICAgICAgIGNhbmNlbGxhdGlvbkluZm86IGxvdW5nZVF1b3RlLmxvdW5nZS5jYW5jZWxsYXRpb25JbmZvLFxyXG4gICAgICAgICAgICBhZG1lbmRtZW50c0luZm86IGxvdW5nZVF1b3RlLmxvdW5nZS5hbWVuZG1lbnRzSW5mbyxcclxuICAgICAgICAgICAgY2hlY2tJbkluZm86IGxvdW5nZVF1b3RlLmxvdW5nZS5jaGVja0luSW5mbyxcclxuICAgICAgICAgICAgZHJlc3NDb2RlOiBsb3VuZ2VRdW90ZS5sb3VuZ2UuZHJlc3NDb2RlLFxyXG4gICAgICAgICAgICBmb29kQW5kQmV2ZXJhZ2U6IGxvdW5nZVF1b3RlLmxvdW5nZS5mb29kQW5kQmV2ZXJhZ2UsXHJcbiAgICAgICAgICAgIHdoYXRzSW5jbHVkZWRGb29kOiBsb3VuZ2VRdW90ZS5sb3VuZ2Uud2hhdHNJbmNsdWRlZEZvb2QsXHJcbiAgICAgICAgICAgIHdoYXRzSW5jbHVkZWREcmlua3M6IGxvdW5nZVF1b3RlLmxvdW5nZS53aGF0c0luY2x1ZGVkRHJpbmtzLFxyXG4gICAgICAgICAgICB3aGF0c0luY2x1ZGVkRXh0cmFzOiBsb3VuZ2VRdW90ZS5sb3VuZ2Uud2hhdHNJbmNsdWRlZEV4dHJhcyxcclxuICAgICAgICAgICAgZ3JvdXBJbmZvOiBsb3VuZ2VRdW90ZS5sb3VuZ2UuZ3JvdXBJbmZvLFxyXG4gICAgICAgICAgICB0ZXJtaW5hbDogbG91bmdlUXVvdGUubG91bmdlLnRlcm1pbmFsPy50b1N0cmluZygpLFxyXG4gICAgICAgICAgICB0ZXJtc0FuZENvbmQ6IHRlcm1zQW5kQ29uZGl0aW9uc1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHByaWNlOiBsb3VuZ2VRdW90ZS5wcmljZSxcclxuICAgICAgICAgIGN1cnJlbmN5OiBsb3VuZ2VRdW90ZS5jdXJyZW5jeSxcclxuICAgICAgICAgIHNlYXJjaFF1ZXJ5OiBsb3VuZ2VRdWVyeSxcclxuICAgICAgICAgIG91dGJvdW5kRGF0ZTogbG91bmdlUXVlcnkuYXJyaXZhbERhdGV0aW1lLmZvcm1hdCgpXHJcbiAgICAgICAgfSxcclxuICAgICAgICBpbnRCYXNrZXQsXHJcbiAgICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlLFxyXG4gICAgICAgIHRoaXMudHJhdmVsbGVycyxcclxuICAgICAgICBsb3VuZ2VRdW90ZS5yZXF1aXJlc1JlYXNvblxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShmYWxzZSk7IC8vIFRPRE8gc2hvdWxkIHRoaXMgdGhyb3cgYW4gZXJyb3I/XHJcbiAgfVxyXG5cclxuICBnZXRUZXJtc0FuZENvbmQobG91bmdlUXVvdGU6IExvdW5nZVF1b3RlKSB7XHJcbiAgICByZXR1cm4gW1xyXG4gICAgICB7XHJcbiAgICAgICAgbmFtZTogJ05hbWUnLFxyXG4gICAgICAgIHZhbHVlOiBsb3VuZ2VRdW90ZS5sb3VuZ2UubmFtZVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgbmFtZTogJ1RlbGVwaG9uZScsXHJcbiAgICAgICAgdmFsdWU6IGxvdW5nZVF1b3RlLmxvdW5nZS50ZWxlcGhvbmVcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIG5hbWU6ICdJbXBvcnRhbnQgSW5mb3JtYXRpb24nLFxyXG4gICAgICAgIHZhbHVlOiBsb3VuZ2VRdW90ZS5sb3VuZ2UubWlzYy5pbXBvcnRhbnRJbmZvcm1hdGlvblxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgbmFtZTogJ0ludHJvZHVjdGlvbicsXHJcbiAgICAgICAgdmFsdWU6IGxvdW5nZVF1b3RlLmxvdW5nZS5pbnRyb2R1Y3Rpb25cclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIG5hbWU6ICdEcmVzcyBDb2RlJyxcclxuICAgICAgICB2YWx1ZTogbG91bmdlUXVvdGUubG91bmdlLmRyZXNzQ29kZVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgbmFtZTogJ0J1c2luZXNzIEZhY2lsaXRpZXMnLFxyXG4gICAgICAgIHZhbHVlOiBsb3VuZ2VRdW90ZS5sb3VuZ2UubWlzYy5idXNpbmVzc2ZhY2lsaXRpZXNcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIG5hbWU6ICdFbnRlcnRhaW5tZW50IEZhY2lsaXRpZXMnLFxyXG4gICAgICAgIHZhbHVlOiBsb3VuZ2VRdW90ZS5sb3VuZ2UubWlzYy5lbnRlcnRhaW5tZW50RmFjaWxpdGllc1xyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgbmFtZTogJ0Rpc2FibGVkIEZhY2lsaXRpZXMnLFxyXG4gICAgICAgIHZhbHVlOiBsb3VuZ2VRdW90ZS5sb3VuZ2UubWlzYy5mYWNpbGl0aWVzZGlzYWJsZWRcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIG5hbWU6ICdGYWNpbGl0aWVzJyxcclxuICAgICAgICB2YWx1ZTogbG91bmdlUXVvdGUubG91bmdlLmZhY2lsaXRpZXMudG9TdHJpbmcoKVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgbmFtZTogJ1RpbWVzJyxcclxuICAgICAgICB2YWx1ZTogYE9wZW5zICR7bG91bmdlUXVvdGUubG91bmdlLm9wZW5UaW1lfTsgQ2xvc2VzICR7bG91bmdlUXVvdGUubG91bmdlLmNsb3NlVGltZX1gXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBuYW1lOiAnRGlyZWN0aW9ucycsXHJcbiAgICAgICAgdmFsdWU6IGxvdW5nZVF1b3RlLmxvdW5nZS5kaXJlY3Rpb25zXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBuYW1lOiAnR3JvdXBzJyxcclxuICAgICAgICB2YWx1ZTogbG91bmdlUXVvdGUubG91bmdlLmdyb3VwSW5mb1xyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgbmFtZTogJ0NoZWNrLUluIFRpbWUnLFxyXG4gICAgICAgIHZhbHVlOiBsb3VuZ2VRdW90ZS5sb3VuZ2UuY2hlY2tJbkluZm9cclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIG5hbWU6ICdBbWVuZCBJbmZvJyxcclxuICAgICAgICB2YWx1ZTogbG91bmdlUXVvdGUubG91bmdlLmFtZW5kbWVudHNJbmZvXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBuYW1lOiAnQ2FuY2VsIEluZm8nLFxyXG4gICAgICAgIHZhbHVlOiBsb3VuZ2VRdW90ZS5sb3VuZ2UuY2FuY2VsbGF0aW9uSW5mb1xyXG4gICAgICB9XHJcbiAgICBdO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlTG93ZXN0UHJpY2UocmVzdWx0czogTG91bmdlUXVvdGVbXSk6IElDaGVhcGVzdFByaWNlIHtcclxuICAgIGlmICghcmVzdWx0cy5sZW5ndGgpIHJldHVybiBudWxsO1xyXG4gICAgY29uc3QgY3VycmVuY3kgPSByZXN1bHRzWzBdLmN1cnJlbmN5O1xyXG4gICAgcmV0dXJuIHJlc3VsdHMucmVkdWNlKFxyXG4gICAgICAoY2hlYXBlc3RQcmljZTogSUNoZWFwZXN0UHJpY2UsIHJlc3VsdDogTG91bmdlUXVvdGUpID0+IHtcclxuICAgICAgICBjb25zdCBwcmljZSA9IHJlc3VsdC5wcmljZTtcclxuICAgICAgICBpZiAoY2hlYXBlc3RQcmljZS5hbW91bnQgPiBwcmljZSkgY2hlYXBlc3RQcmljZS5hbW91bnQgPSBwcmljZTtcclxuICAgICAgICByZXR1cm4gY2hlYXBlc3RQcmljZTtcclxuICAgICAgfSxcclxuICAgICAgeyBhbW91bnQ6IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSLCBjdXJyZW5jeUNvZGU6IGN1cnJlbmN5IH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBzYXZlU2VhcmNoKCk6IE9ic2VydmFibGU8U2F2ZUZhdm91cml0ZVNlYXJjaFJlc3VsdD4ge1xyXG4gICAgaWYgKHRoaXMuaXNWYWxpZC52YWx1ZSkge1xyXG4gICAgICBjb25zdCBzZWFyY2ggPSB0aGlzLmdldFNlYXJjaFF1ZXJ5KCk7XHJcbiAgICAgIGNvbnN0IHNlYXJjaEluZm8gPSB7XHJcbiAgICAgICAgbmFtZTogYCR7bW9tZW50KCl9YCxcclxuICAgICAgICBzZXJ2aWNlVHlwZTogU2VydmljZVR5cGUuTG91bmdlLFxyXG4gICAgICAgIHNlYXJjaEFyZ3M6IHNlYXJjaFxyXG4gICAgICB9O1xyXG4gICAgICByZXR1cm4gdGhpcy5zZWFyY2hTZXJ2aWNlLnNhdmVGYXZvdXJpdGVTZWFyY2goc2VhcmNoSW5mbyk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGFzeW5jIGFwcGx5RmF2b3VyaXRlKGZhdjogYW55KTogUHJvbWlzZTx2b2lkPntcclxuICAgIHRoaXMuc2VhcmNoU2VydmljZS5nZXRBaXJwb3J0c0xpc3QoZmF2LmxvY2F0aW9uQ29kZSkuc3Vic2NyaWJlKGEgPT4ge1xyXG4gICAgICB0aGlzLmxvY2F0aW9uQ29kZSA9IChhIGFzIGFueVtdKS5maW5kKGEgPT4gYS5nYXRld2F5ID09IGZhdi5sb2NhdGlvbkNvZGUpXHJcbiAgICAgIHRoaXMudGVybWluYWwgPSBmYXYudGVybWluYWxcclxuICAgIH0pXHJcbiAgICB0aGlzLmFkdWx0cyA9IGZhdi5hZHVsdHNcclxuICAgIHRoaXMuY2hpbGRyZW4gPSBmYXYuY2hpbGRyZW5cclxuICAgIHRoaXMuaW5mYW50cyA9IGZhdi5pbmZhbnRzXHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -247,4 +247,4 @@ export const makeManagamentInfo = (managementInfo, basketService) => {
|
|
|
247
247
|
}
|
|
248
248
|
return null;
|
|
249
249
|
};
|
|
250
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlbWVudC1pbmZvLWFuZC12YWxpZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29idHNlcnZpY2VzL2Jhc2Uvc3JjL2xpYi92ZW5kb3IvY2xhc3Nlcy9tYW5hZ2VtZW50LWluZm8tYW5kLXZhbGlkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RCxPQUFPLEVBQ0wsWUFBWSxFQUNaLG9CQUFvQixFQUNwQixTQUFTLEVBQ1QsR0FBRyxFQUNKLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFaEUsT0FBTyxFQVFMLGNBQWMsRUFDZixNQUFNLHdCQUF3QixDQUFDO0FBR2hDLE1BQU0sT0FBZ0Isd0JBQ3BCLFNBQVEsZ0JBQWdCO0lBaUR4QixZQUFzQixjQUE4QjtRQUNsRCxLQUFLLEVBQUUsQ0FBQztRQXhCVixjQUFjO1FBQ2QsY0FBUyxHQUE2QixJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQTJDMUUsV0FBTSxHQUFHLENBQUMsS0FBeUIsRUFBdUMsRUFBRTtZQUMxRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNoQixDQUFDLENBQUM7UUFyQkEsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQywwQ0FBMEM7SUFDakYsQ0FBQztJQXRCRCxJQUFJLGNBQWM7UUFHaEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFJLGNBQWMsQ0FBQyxNQUFxQztRQUN0RCxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLE1BQU0sQ0FBQyxFQUFFO1lBQzVDLElBQUksQ0FBQyxlQUFlLEdBQUcsTUFB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LENBQUMsY0FBYyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ3JFLEtBQUssY0FBYyxDQUFDLE1BQU07WUFDeEIsT0FBTyxJQUFJLG9CQUFvQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2xELEtBQUssY0FBYyxDQUFDLFFBQVE7WUFDMUIsT0FBTyxJQUFJLHNCQUFzQixDQUFDLGNBQWMsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUNuRTtZQUNFLE1BQU0sR0FBRyxHQUFVLGNBQWMsQ0FBQyxjQUFjLENBQUM7WUFDakQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztLQUNwQjtJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge1xyXG4gIGRlYm91bmNlVGltZSxcclxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcclxuICBzd2l0Y2hNYXAsXHJcbiAgdGFwXHJcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBWYWxpZGF0b3JDaGVja2VyIH0gZnJvbSAnLi4vY2xhc3Nlcy92YWxpZGF0b3IuY2hlY2tlcic7XHJcbmltcG9ydCB7IEVudGVycHJpc2VCYXNrZXRTZXJ2aWNlSW50ZXJmYWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JZW50ZXJwcmlzZS1iYXNrZXQuc2VydmljZSc7XHJcbmltcG9ydCB7XHJcbiAgRmllbGRXcmFwcGVyLFxyXG4gIE1hbmFnZW1lbnRJbmZvLFxyXG4gIE1hbmFnZW1lbnRJbmZvVmFsdWUsXHJcbiAgTWF5YmUsXHJcbiAgU2NhbGFycyxcclxuICBTZWxlY3RlZE1hbmFnZW1lbnRJbmZvVmFsdWUsXHJcbiAgU2VydmljZSxcclxuICBVaVByZXNlbnRhdGlvblxyXG59IGZyb20gJy4uL3R5cGVzL2dyYXBocWwudHlwZXMnO1xyXG5pbXBvcnQgeyBHZXRNaUF1dG9TdWdlc3Rpb25BcnJheSwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJy4uL3R5cGVzL3R5cGVzJztcclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBNYW5hZ2VtZW50SW5mb0FuZElzVmFsaWRcclxuICBleHRlbmRzIFZhbGlkYXRvckNoZWNrZXJcclxuICBpbXBsZW1lbnRzIE1hbmFnZW1lbnRJbmZvXHJcbntcclxuICAvLyBNYW5hZ2VtZW50SW5mbyBpbnRlcmZhY2VcclxuICBhZ2VudE9ubHk6IEZpZWxkV3JhcHBlcjxTY2FsYXJzWydCb29sZWFuJ10+O1xyXG4gIGNyZWF0ZWRBdDogRmllbGRXcmFwcGVyPFNjYWxhcnNbJ0RhdGVUaW1lJ10+O1xyXG4gIGRiSWQ6IEZpZWxkV3JhcHBlcjxTY2FsYXJzWydJbnQnXT47XHJcbiAgZGVmYXVsdFZhbHVlPzogTWF5YmU8RmllbGRXcmFwcGVyPE1hbmFnZW1lbnRJbmZvVmFsdWU+PjtcclxuICBkZXNjcmlwdGlvbj86IE1heWJlPEZpZWxkV3JhcHBlcjxTY2FsYXJzWydTdHJpbmcnXT4+O1xyXG4gIGZpeGVkOiBGaWVsZFdyYXBwZXI8U2NhbGFyc1snQm9vbGVhbiddPjtcclxuICBmaXhlZFZhbHVlPzogTWF5YmU8RmllbGRXcmFwcGVyPE1hbmFnZW1lbnRJbmZvVmFsdWU+PjtcclxuICBncm91cD86IE1heWJlPEFycmF5PE1heWJlPEZpZWxkV3JhcHBlcjxTY2FsYXJzWydTdHJpbmcnXT4+Pj47XHJcbiAgaGFuZG9mZjogRmllbGRXcmFwcGVyPFNjYWxhcnNbJ1N0cmluZyddPjtcclxuICBpZDogRmllbGRXcmFwcGVyPFNjYWxhcnNbJ0lEJ10+O1xyXG4gIG1hbmRhdG9yeTogRmllbGRXcmFwcGVyPFNjYWxhcnNbJ0Jvb2xlYW4nXT47XHJcbiAgbmFtZTogRmllbGRXcmFwcGVyPFNjYWxhcnNbJ1N0cmluZyddPjtcclxuICBwZXJCb29raW5nOiBGaWVsZFdyYXBwZXI8U2NhbGFyc1snQm9vbGVhbiddPjtcclxuICBwZXJQYXNzZW5nZXI6IEZpZWxkV3JhcHBlcjxTY2FsYXJzWydCb29sZWFuJ10+O1xyXG4gIF9zZWxlY3RlZFZhbHVlczogQXJyYXk8TWF5YmU8RmllbGRXcmFwcGVyPFNlbGVjdGVkTWFuYWdlbWVudEluZm9WYWx1ZT4+PjtcclxuICBzZXJ2aWNlOiBGaWVsZFdyYXBwZXI8U2VydmljZT47XHJcbiAgdWlQcmVzZW50YXRpb246IEZpZWxkV3JhcHBlcjxVaVByZXNlbnRhdGlvbj47XHJcbiAgdXBkYXRlZEF0OiBGaWVsZFdyYXBwZXI8U2NhbGFyc1snRGF0ZVRpbWUnXT47XHJcbiAgdmFsdWVNYXNrPzogTWF5YmU8RmllbGRXcmFwcGVyPFNjYWxhcnNbJ1N0cmluZyddPj47XHJcbiAgdmFsdWVzOiBBcnJheTxNYXliZTxGaWVsZFdyYXBwZXI8TWFuYWdlbWVudEluZm9WYWx1ZT4+PjtcclxuICB0ZW1wVmFsdWU/OiBGaWVsZFdyYXBwZXI8U2NhbGFyc1snU3RyaW5nJ10+O1xyXG5cclxuICAvLyBleHRyYUZpZWxkc1xyXG4gIGlzTG9hZGluZzogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XHJcbiAgYXZhbGlhYmxlSXRlbXM6IEdldE1pQXV0b1N1Z2VzdGlvbkFycmF5O1xyXG5cclxuICBnZXQgc2VsZWN0ZWRWYWx1ZXMoKTogQXJyYXk8XHJcbiAgICBNYXliZTxGaWVsZFdyYXBwZXI8U2VsZWN0ZWRNYW5hZ2VtZW50SW5mb1ZhbHVlPj5cclxuICA+IHtcclxuICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZFZhbHVlcztcclxuICB9XHJcblxyXG4gIHNldCBzZWxlY3RlZFZhbHVlcyh2YWx1ZXM6IFNlbGVjdGVkTWFuYWdlbWVudEluZm9WYWx1ZVtdKSB7XHJcbiAgICBpZiAoIU9iamVjdC5pcyh0aGlzLl9zZWxlY3RlZFZhbHVlcywgdmFsdWVzKSkge1xyXG4gICAgICB0aGlzLl9zZWxlY3RlZFZhbHVlcyA9IHZhbHVlcztcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0IHZhbHVlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRWYWx1ZSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0IHZhbHVlKHZhbDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnNldFZhbHVlKHZhbCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IobWFuYWdlbWVudEluZm86IE1hbmFnZW1lbnRJbmZvKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLCBtYW5hZ2VtZW50SW5mbyk7IC8vIFRoaXMgd2lsbCBhdXRvbWF0aWNhbGx5IGNhbGwgX2lzVmFsaWQoKVxyXG4gIH1cclxuXHJcbiAgaXNWYWxpZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhdGhpcy5tYW5kYXRvcnkgfHwgdGhpcy5zZWxlY3RlZFZhbHVlcy5sZW5ndGggIT09IDA7XHJcbiAgfVxyXG5cclxuICBoYXNFcnJvcnModmFsdWU6IHN0cmluZyk6IFByb21pc2U8VmFsaWRhdGlvbkVycm9ycz4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgcmVzb2x2ZShcclxuICAgICAgICB0aGlzLm1hbmRhdG9yeSAmJiAoIXZhbHVlIHx8IHZhbHVlLmxlbmd0aCA9PT0gMClcclxuICAgICAgICAgID8geyBoYXNFcnJvcnM6IHRydWUgfVxyXG4gICAgICAgICAgOiBudWxsXHJcbiAgICAgICk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGFic3RyYWN0IGdldFZhbHVlKCk6IHN0cmluZztcclxuICBhYnN0cmFjdCBzZXRWYWx1ZSh2YWw6IHN0cmluZyk6IHZvaWQ7XHJcbiAgc2VhcmNoID0gKHRlcm1zOiBPYnNlcnZhYmxlPHN0cmluZz4pOiBPYnNlcnZhYmxlPEdldE1pQXV0b1N1Z2VzdGlvbkFycmF5PiA9PiB7XHJcbiAgICByZXR1cm4gb2YoW10pO1xyXG4gIH07XHJcblxyXG4gIGFic3RyYWN0IHNhdmUoYmFza2V0aWQ6IHN0cmluZywgdXNlcklkPzogc3RyaW5nKTogdm9pZDtcclxufVxyXG5cclxuY2xhc3MgRnJlZVRleHRNYW5hZ2VtZW50SW5mbyBleHRlbmRzIE1hbmFnZW1lbnRJbmZvQW5kSXNWYWxpZCB7XHJcbiAgdGVtcFZhbHVlOiBzdHJpbmc7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBtYW5hZ2VtZW50SW5mbzogTWFuYWdlbWVudEluZm8sXHJcbiAgICBwcml2YXRlIGJhc2tldFNlcnZpY2U6IEVudGVycHJpc2VCYXNrZXRTZXJ2aWNlSW50ZXJmYWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcihtYW5hZ2VtZW50SW5mbyk7XHJcbiAgICB0aGlzLnRlbXBWYWx1ZSA9IHRoaXMuc2VsZWN0ZWRWYWx1ZXNcclxuICAgICAgPyB0aGlzLnNlbGVjdGVkVmFsdWVzWzBdPy5mcmVlVmFsdWUgfHwgJydcclxuICAgICAgOiAnJztcclxuICB9XHJcbiAgZ2V0VmFsdWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnRlbXBWYWx1ZTtcclxuICB9XHJcbiAgc2V0VmFsdWUodmFsOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnRlbXBWYWx1ZSA9PT0gdmFsKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMudGVtcFZhbHVlID0gdmFsO1xyXG5cclxuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMgPSBbXHJcbiAgICAgIHtcclxuICAgICAgICBmcmVlVmFsdWU6IHZhbCxcclxuICAgICAgICBiYXNrZXRMZXZlbFZhbHVlOiB0aGlzLnBlckJvb2tpbmcsXHJcbiAgICAgICAgdXNlckxldmVsVmFsdWU6IHRoaXMucGVyUGFzc2VuZ2VyXHJcbiAgICAgIH1cclxuICAgIF07XHJcbiAgfVxyXG5cclxuICBzYXZlKGJhc2tldGlkOiBzdHJpbmcsIHVzZXJJZD86IHN0cmluZykge1xyXG4gICAgdGhpcy5iYXNrZXRTZXJ2aWNlLnNldE1pRnJlZVZhbHVlKFxyXG4gICAgICBiYXNrZXRpZCxcclxuICAgICAgdGhpcyxcclxuICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlc1swXSA/IHRoaXMuc2VsZWN0ZWRWYWx1ZXNbMF0uZnJlZVZhbHVlIDogJycsXHJcbiAgICAgIHVzZXJJZFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGhhc0Vycm9ycyh2YWx1ZTogc3RyaW5nKTogUHJvbWlzZTxWYWxpZGF0aW9uRXJyb3JzPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5tYW5kYXRvcnkgJiYgKCF2YWx1ZSB8fCB2YWx1ZS5sZW5ndGggPT09IDApKSB7XHJcbiAgICAgICAgcmVzb2x2ZSh7IGhhc0Vycm9yczogdHJ1ZSB9KTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy52YWx1ZU1hc2sgJiYgISF2YWx1ZSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmJhc2tldFNlcnZpY2VcclxuICAgICAgICAgIC52YWxpZGF0ZUZyZWVWYWxlTWkodGhpcywgdmFsdWUpXHJcbiAgICAgICAgICAudGhlbigocmVzdWx0OiBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgICAgIHJlc29sdmUocmVzdWx0ID8gbnVsbCA6IHsgaGFzRXJyb3JzOiB0cnVlIH0pO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy52YWx1ZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHJlc29sdmUoXHJcbiAgICAgICAgICAhIXRoaXMudmFsdWVzLmZpbmQoKG1pdjogTWFuYWdlbWVudEluZm9WYWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gbWl2LnZhbHVlID09PSB2YWx1ZTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgID8gbnVsbFxyXG4gICAgICAgICAgICA6IHsgaGFzRXJyb3JzOiB0cnVlIH1cclxuICAgICAgICApO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJlc29sdmUoc3VwZXIuaGFzRXJyb3JzKHZhbHVlKSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG5cclxuY2xhc3MgQXV0b1N1Z2VzdE1hbmFnZW1lbnRJbmZvIGV4dGVuZHMgTWFuYWdlbWVudEluZm9BbmRJc1ZhbGlkIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIG1hbmFnZW1lbnRJbmZvOiBNYW5hZ2VtZW50SW5mbyxcclxuICAgIHByaXZhdGUgYmFza2V0U2VydmljZTogRW50ZXJwcmlzZUJhc2tldFNlcnZpY2VJbnRlcmZhY2VcclxuICApIHtcclxuICAgIHN1cGVyKG1hbmFnZW1lbnRJbmZvKTtcclxuICAgIGlmICh0aGlzLnZhbHVlcz8ubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmF2YWxpYWJsZUl0ZW1zID0gdGhpcy52YWx1ZXM7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldFZhbHVlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZFZhbHVlc1swXSA/IHRoaXMuc2VsZWN0ZWRWYWx1ZXNbMF0udmFsdWUuaWQgOiAnX19OT05FJztcclxuICB9XHJcblxyXG4gIGFzeW5jIGhhc0Vycm9ycyhpZDogc3RyaW5nKTogUHJvbWlzZTxWYWxpZGF0aW9uRXJyb3JzPiB7XHJcbiAgICB0cnkge1xyXG4gICAgICByZXR1cm4gIXRoaXMuYXZhbGlhYmxlSXRlbXMuZmluZCgodmFsdWUxOiBNYW5hZ2VtZW50SW5mb1ZhbHVlKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlMS5pZCA9PT0gaWQ7XHJcbiAgICAgIH0pXHJcbiAgICAgICAgPyB7IGhhc0Vycm9yczogdHJ1ZSB9XHJcbiAgICAgICAgOiBudWxsO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBcclxuICB9XHJcblxyXG4gIHNldFZhbHVlKGlkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IHZhbHVlOiBNYW5hZ2VtZW50SW5mb1ZhbHVlID0gdGhpcy5hdmFsaWFibGVJdGVtcy5maW5kKFxyXG4gICAgICAgICh2YWx1ZTE6IE1hbmFnZW1lbnRJbmZvVmFsdWUpID0+IHtcclxuICAgICAgICAgIHJldHVybiB2YWx1ZTEuaWQgPT09IGlkO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgICAgaWYgKCEhdmFsdWUpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzID0gW1xyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICB2YWx1ZToge1xyXG4gICAgICAgICAgICAgIGlkOiB2YWx1ZS5pZCxcclxuICAgICAgICAgICAgICBsYWJlbDogdmFsdWUubGFiZWwsXHJcbiAgICAgICAgICAgICAgdmFsdWU6IHZhbHVlLnZhbHVlLFxyXG4gICAgICAgICAgICAgIGRlZmF1bHQ6IHZhbHVlLmRlZmF1bHQsXHJcbiAgICAgICAgICAgICAgZml4ZWQ6IHZhbHVlLmZpeGVkLFxyXG4gICAgICAgICAgICAgIGFnZW50T25seTogdmFsdWUuYWdlbnRPbmx5XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGJhc2tldExldmVsVmFsdWU6IHRoaXMucGVyQm9va2luZyxcclxuICAgICAgICAgICAgdXNlckxldmVsVmFsdWU6IHRoaXMucGVyUGFzc2VuZ2VyXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzID0gW107XHJcbiAgICAgIH1cclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMgPSBbXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNlYXJjaCA9ICh0ZXJtczogT2JzZXJ2YWJsZTxzdHJpbmc+KTogT2JzZXJ2YWJsZTxHZXRNaUF1dG9TdWdlc3Rpb25BcnJheT4gPT4ge1xyXG4gICAgcmV0dXJuIHRlcm1zLnBpcGUoXHJcbiAgICAgIGRlYm91bmNlVGltZSgzMDApLFxyXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxyXG4gICAgICBzd2l0Y2hNYXAoKHRlcm06IHN0cmluZykgPT4ge1xyXG4gICAgICAgIGNvbnN0IG9iID1cclxuICAgICAgICAgIHRlcm0ubGVuZ3RoID4gMlxyXG4gICAgICAgICAgICA/IHRoaXMuYmFza2V0U2VydmljZS5nZXRNaUF1dG9TdWdlc3Rpb25zKFxyXG4gICAgICAgICAgICAgICAgdGhpcy5pZCxcclxuICAgICAgICAgICAgICAgIHRlcm0sXHJcbiAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGluZ1xyXG4gICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgOiBvZih0aGlzLmF2YWxpYWJsZUl0ZW1zKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIG9iO1xyXG4gICAgICB9KSxcclxuICAgICAgdGFwKChzdWdlc3Rpb25zOiBHZXRNaUF1dG9TdWdlc3Rpb25BcnJheSkgPT4ge1xyXG4gICAgICAgIHRoaXMuYXZhbGlhYmxlSXRlbXMgPSBzdWdlc3Rpb25zO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9O1xyXG5cclxuICBzYXZlKGJhc2tldGlkOiBzdHJpbmcsIHVzZXJpZD86IHN0cmluZykge1xyXG4gICAgdGhpcy5iYXNrZXRTZXJ2aWNlLnNldE1pU2VsZWN0ZWRWYWx1ZShcclxuICAgICAgYmFza2V0aWQsXHJcbiAgICAgIHRoaXMsXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXNbMF0udmFsdWUuaWQsXHJcbiAgICAgIHVzZXJpZFxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuXHJcbmNsYXNzIEhpZGRlbk1hbmFnZW1lbnRJbmZvIGV4dGVuZHMgTWFuYWdlbWVudEluZm9BbmRJc1ZhbGlkIHtcclxuICBjb25zdHJ1Y3RvcihtYW5hZ2VtZW50SW5mbzogTWFuYWdlbWVudEluZm8pIHtcclxuICAgIHN1cGVyKG1hbmFnZW1lbnRJbmZvKTtcclxuICB9XHJcbiAgZ2V0VmFsdWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiAnJztcclxuICB9XHJcbiAgc2V0VmFsdWUodmFsOiBzdHJpbmcpOiB2b2lkIHt9XHJcblxyXG4gIHNhdmUoYmFza2V0aWQ6IHN0cmluZywgdXNlcklkPzogc3RyaW5nKSB7fVxyXG59XHJcblxyXG5jbGFzcyBEcm9wZG93bk1hbmFnZW1lbnRJbmZvIGV4dGVuZHMgTWFuYWdlbWVudEluZm9BbmRJc1ZhbGlkIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIG1hbmFnZW1lbnRJbmZvOiBNYW5hZ2VtZW50SW5mbyxcclxuICAgIHByaXZhdGUgYmFza2V0U2VydmljZTogRW50ZXJwcmlzZUJhc2tldFNlcnZpY2VJbnRlcmZhY2VcclxuICApIHtcclxuICAgIHN1cGVyKG1hbmFnZW1lbnRJbmZvKTtcclxuICAgIGlmICh0aGlzLnZhbHVlcz8ubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmF2YWxpYWJsZUl0ZW1zID0gdGhpcy52YWx1ZXM7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zb2xlLmVycm9yKCdObyB2YWx1ZXMgZm9yIERyb3Bkb3duIE1JIGZpZWxkICAnKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmRlZmF1bHRWYWx1ZSAmJiAhdGhpcy5zZWxlY3RlZFZhbHVlcy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuZGVmYXVsdFZhbHVlLmlkO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzWzBdLnZhbHVlID0gdGhpcy5kZWZhdWx0VmFsdWU7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldFZhbHVlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZFZhbHVlc1swXSA/IHRoaXMuc2VsZWN0ZWRWYWx1ZXNbMF0udmFsdWUuaWQgOiAnX19OT05FJztcclxuICB9XHJcblxyXG4gIGFzeW5jIGhhc0Vycm9ycyhpZDogc3RyaW5nKTogUHJvbWlzZTxWYWxpZGF0aW9uRXJyb3JzPiB7XHJcbiAgICB0cnkge1xyXG4gICAgICByZXR1cm4gIXRoaXMuYXZhbGlhYmxlSXRlbXMuZmluZCgodmFsdWUxOiBNYW5hZ2VtZW50SW5mb1ZhbHVlKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlMS5pZCA9PT0gaWQ7XHJcbiAgICAgIH0pXHJcbiAgICAgICAgPyB7IGhhc0Vycm9yczogdHJ1ZSB9XHJcbiAgICAgICAgOiBudWxsO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBcclxuICB9XHJcblxyXG4gIHNldFZhbHVlKGlkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IHZhbHVlOiBNYW5hZ2VtZW50SW5mb1ZhbHVlID0gdGhpcy5hdmFsaWFibGVJdGVtcy5maW5kKFxyXG4gICAgICAodmFsdWUxOiBNYW5hZ2VtZW50SW5mb1ZhbHVlKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlMS5pZCA9PT0gaWQ7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgICBpZiAoISF2YWx1ZSkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzID0gW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIHZhbHVlOiB7XHJcbiAgICAgICAgICAgIGlkOiB2YWx1ZS5pZCxcclxuICAgICAgICAgICAgbGFiZWw6IHZhbHVlLmxhYmVsLFxyXG4gICAgICAgICAgICB2YWx1ZTogdmFsdWUudmFsdWUsXHJcbiAgICAgICAgICAgIGRlZmF1bHQ6IHZhbHVlLmRlZmF1bHQsXHJcbiAgICAgICAgICAgIGZpeGVkOiB2YWx1ZS5maXhlZCxcclxuICAgICAgICAgICAgYWdlbnRPbmx5OiB2YWx1ZS5hZ2VudE9ubHlcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBiYXNrZXRMZXZlbFZhbHVlOiB0aGlzLnBlckJvb2tpbmcsXHJcbiAgICAgICAgICB1c2VyTGV2ZWxWYWx1ZTogdGhpcy5wZXJQYXNzZW5nZXJcclxuICAgICAgICB9XHJcbiAgICAgIF07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzID0gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzYXZlKGJhc2tldGlkOiBzdHJpbmcsIHVzZXJpZD86IHN0cmluZykge1xyXG4gICAgdGhpcy5iYXNrZXRTZXJ2aWNlLnNldE1pU2VsZWN0ZWRWYWx1ZShcclxuICAgICAgYmFza2V0aWQsXHJcbiAgICAgIHRoaXMsXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXNbMF0udmFsdWUuaWQsXHJcbiAgICAgIHVzZXJpZFxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBtYWtlTWFuYWdhbWVudEluZm8gPSAoXHJcbiAgbWFuYWdlbWVudEluZm86IE1hbmFnZW1lbnRJbmZvLFxyXG4gIGJhc2tldFNlcnZpY2U6IEVudGVycHJpc2VCYXNrZXRTZXJ2aWNlSW50ZXJmYWNlXHJcbik6IE1hbmFnZW1lbnRJbmZvQW5kSXNWYWxpZCA9PiB7XHJcbiAgc3dpdGNoIChtYW5hZ2VtZW50SW5mby51aVByZXNlbnRhdGlvbikge1xyXG4gICAgY2FzZSBVaVByZXNlbnRhdGlvbi5GcmVlVGV4dDpcclxuICAgICAgcmV0dXJuIG5ldyBGcmVlVGV4dE1hbmFnZW1lbnRJbmZvKG1hbmFnZW1lbnRJbmZvLCBiYXNrZXRTZXJ2aWNlKTtcclxuICAgIGNhc2UgVWlQcmVzZW50YXRpb24uQXV0b1N1Z2dlc3Q6XHJcbiAgICAgIHJldHVybiBuZXcgQXV0b1N1Z2VzdE1hbmFnZW1lbnRJbmZvKG1hbmFnZW1lbnRJbmZvLCBiYXNrZXRTZXJ2aWNlKTtcclxuICAgIGNhc2UgVWlQcmVzZW50YXRpb24uSGlkZGVuOlxyXG4gICAgICByZXR1cm4gbmV3IEhpZGRlbk1hbmFnZW1lbnRJbmZvKG1hbmFnZW1lbnRJbmZvKTtcclxuICAgIGNhc2UgVWlQcmVzZW50YXRpb24uRHJvcGRvd246XHJcbiAgICAgIHJldHVybiBuZXcgRHJvcGRvd25NYW5hZ2VtZW50SW5mbyhtYW5hZ2VtZW50SW5mbywgYmFza2V0U2VydmljZSk7XHJcbiAgICBkZWZhdWx0OlxyXG4gICAgICBjb25zdCB0bXA6IG5ldmVyID0gbWFuYWdlbWVudEluZm8udWlQcmVzZW50YXRpb247XHJcbiAgICAgIGNvbnNvbGUubG9nKHRtcCk7XHJcbiAgfVxyXG4gIHJldHVybiBudWxsO1xyXG59O1xyXG4iXX0=
|
|
250
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlbWVudC1pbmZvLWFuZC12YWxpZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29idHNlcnZpY2VzL2Jhc2Uvc3JjL2xpYi92ZW5kb3IvY2xhc3Nlcy9tYW5hZ2VtZW50LWluZm8tYW5kLXZhbGlkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RCxPQUFPLEVBQ0wsWUFBWSxFQUNaLG9CQUFvQixFQUNwQixTQUFTLEVBQ1QsR0FBRyxFQUNKLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFaEUsT0FBTyxFQVNMLGNBQWMsRUFDZixNQUFNLHdCQUF3QixDQUFDO0FBR2hDLE1BQU0sT0FBZ0Isd0JBQ3BCLFNBQVEsZ0JBQWdCO0lBaUR4QixZQUFzQixjQUE4QjtRQUNsRCxLQUFLLEVBQUUsQ0FBQztRQXhCVixjQUFjO1FBQ2QsY0FBUyxHQUE2QixJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQWlEMUUsV0FBTSxHQUFHLENBQUMsS0FBeUIsRUFBdUMsRUFBRTtZQUMxRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNoQixDQUFDLENBQUM7UUEzQkEsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQywwQ0FBMEM7SUFDakYsQ0FBQztJQXRCRCxJQUFJLGNBQWM7UUFHaEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFJLGNBQWMsQ0FBQyxNQUFxQztRQUN0RCxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLE1BQU0sQ0FBQyxFQUFFO1lBQzVDLElBQUksQ0FBQyxlQUFlLEdBQUcsTUFBTSxDQUFDO1NBQy9CO0lBQ0gsQ0FBQztJQUNELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxHQUFXO1FBQ25CLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQWFELE9BQU87UUFDTCxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFhO1FBQ3JCLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDckMsT0FBTyxDQUNMLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztnQkFDOUMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRTtnQkFDckIsQ0FBQyxDQUFDLElBQUksQ0FDVCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBU0Y7QUFFRCxNQUFNLHNCQUF1QixTQUFRLHdCQUF3QjtJQUUzRCxZQUNFLGNBQThCLEVBQ3RCLGFBQStDOztRQUV2RCxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7UUFGZCxrQkFBYSxHQUFiLGFBQWEsQ0FBa0M7UUFHdkQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsY0FBYztZQUNsQyxDQUFDLENBQUMsT0FBQSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQywwQ0FBRSxTQUFTLEtBQUksRUFBRTtZQUN6QyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ1QsQ0FBQztJQUNELFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUNELFFBQVEsQ0FBQyxHQUFXO1FBQ2xCLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxHQUFHLEVBQUU7WUFDMUIsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUM7UUFFckIsSUFBSSxDQUFDLGNBQWMsR0FBRztZQUNwQjtnQkFDRSxTQUFTLEVBQUUsR0FBRztnQkFDZCxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsVUFBVTtnQkFDakMsY0FBYyxFQUFFLElBQUksQ0FBQyxZQUFZO2FBQ2xDO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLENBQUMsUUFBZ0IsRUFBRSxNQUFlO1FBQ3BDLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUMvQixRQUFRLEVBQ1IsSUFBSSxFQUNKLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQzlELE1BQU0sQ0FDUCxDQUFDO0lBQ0osQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFhO1FBQ3JCLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDckMsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDcEQsT0FBTyxDQUFDLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7YUFDOUI7WUFDRCxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRTtnQkFDN0IsT0FBTyxJQUFJLENBQUMsYUFBYTtxQkFDdEIsa0JBQWtCLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQztxQkFDL0IsSUFBSSxDQUFDLENBQUMsTUFBZSxFQUFFLEVBQUU7b0JBQ3hCLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDL0MsQ0FBQyxDQUFDLENBQUM7YUFDTjtpQkFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDakMsT0FBTyxDQUNMLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQXdCLEVBQUUsRUFBRTtvQkFDOUMsT0FBTyxHQUFHLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQztnQkFDN0IsQ0FBQyxDQUFDO29CQUNBLENBQUMsQ0FBQyxJQUFJO29CQUNOLENBQUMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FDeEIsQ0FBQzthQUNIO2lCQUFNO2dCQUNMLE9BQU8sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7YUFDakM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQUVELE1BQU0sd0JBQXlCLFNBQVEsd0JBQXdCO0lBQzdELFlBQ0UsY0FBOEIsRUFDdEIsYUFBK0M7O1FBRXZELEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUZkLGtCQUFhLEdBQWIsYUFBYSxDQUFrQztRQXFEekQsV0FBTSxHQUFHLENBQUMsS0FBeUIsRUFBdUMsRUFBRTtZQUMxRSxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQ2YsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUNqQixvQkFBb0IsRUFBRSxFQUN0QixTQUFTLENBQUMsQ0FBQyxJQUFZLEVBQUUsRUFBRTtnQkFDekIsTUFBTSxFQUFFLEdBQ04sSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDO29CQUNiLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUNwQyxJQUFJLENBQUMsRUFBRSxFQUNQLElBQUksRUFDSixJQUFJLENBQUMsU0FBUyxDQUNmO29CQUNILENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUU5QixPQUFPLEVBQUUsQ0FBQztZQUNaLENBQUMsQ0FBQyxFQUNGLEdBQUcsQ0FBQyxDQUFDLFVBQW1DLEVBQUUsRUFBRTtnQkFDMUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxVQUFVLENBQUM7WUFDbkMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUNKLENBQUMsQ0FBQztRQXRFQSxJQUFJLE9BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsTUFBTSxJQUFHLENBQUMsRUFBRTtZQUMzQixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7U0FDbkM7SUFDSCxDQUFDO0lBQ0QsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFDN0UsQ0FBQztJQUVLLFNBQVMsQ0FBQyxFQUFVOztZQUN4QixJQUFJO2dCQUNGLE9BQU8sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQTJCLEVBQUUsRUFBRTtvQkFDL0QsT0FBTyxNQUFNLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQztnQkFDMUIsQ0FBQyxDQUFDO29CQUNBLENBQUMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUU7b0JBQ3JCLENBQUMsQ0FBQyxJQUFJLENBQUM7YUFDVjtZQUFDLE9BQU8sS0FBSyxFQUFFO2dCQUNkLE9BQU8sSUFBSSxDQUFDO2FBQ2I7UUFDSCxDQUFDO0tBQUE7SUFFRCxRQUFRLENBQUMsRUFBVTtRQUNqQixJQUFJO1lBQ0YsTUFBTSxLQUFLLEdBQXdCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUN6RCxDQUFDLE1BQTJCLEVBQUUsRUFBRTtnQkFDOUIsT0FBTyxNQUFNLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUMxQixDQUFDLENBQ0YsQ0FBQztZQUNGLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRTtnQkFDWCxJQUFJLENBQUMsY0FBYyxHQUFHO29CQUNwQjt3QkFDRSxLQUFLLEVBQUU7NEJBQ0wsRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFFOzRCQUNaLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSzs0QkFDbEIsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLOzRCQUNsQixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87NEJBQ3RCLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSzs0QkFDbEIsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO3lCQUMzQjt3QkFDRCxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsVUFBVTt3QkFDakMsY0FBYyxFQUFFLElBQUksQ0FBQyxZQUFZO3FCQUNsQztpQkFDRixDQUFDO2FBQ0g7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7YUFDMUI7U0FDRjtRQUFDLE9BQU8sS0FBSyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBd0JELElBQUksQ0FBQyxRQUFnQixFQUFFLE1BQWU7UUFDcEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FDbkMsUUFBUSxFQUNSLElBQUksRUFDSixJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQy9CLE1BQU0sQ0FDUCxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBRUQsTUFBTSxvQkFBcUIsU0FBUSx3QkFBd0I7SUFDekQsWUFBWSxjQUE4QjtRQUN4QyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUNELFFBQVE7UUFDTixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFDRCxRQUFRLENBQUMsR0FBVyxJQUFTLENBQUM7SUFFOUIsSUFBSSxDQUFDLFFBQWdCLEVBQUUsTUFBZSxJQUFHLENBQUM7Q0FDM0M7QUFFRCxNQUFNLHNCQUF1QixTQUFRLHdCQUF3QjtJQUMzRCxZQUNFLGNBQThCLEVBQ3RCLGFBQStDOztRQUV2RCxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7UUFGZCxrQkFBYSxHQUFiLGFBQWEsQ0FBa0M7UUFHdkQsSUFBSSxPQUFBLElBQUksQ0FBQyxNQUFNLDBDQUFFLE1BQU0sSUFBRyxDQUFDLEVBQUU7WUFDM0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQ25DO2FBQU07WUFDTCxPQUFPLENBQUMsS0FBSyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7U0FDcEQ7UUFDRCxJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRTtZQUNwRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7U0FDbEQ7SUFDSCxDQUFDO0lBQ0QsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFDN0UsQ0FBQztJQUVLLFNBQVMsQ0FBQyxFQUFVOztZQUN4QixJQUFJO2dCQUNGLE9BQU8sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQTJCLEVBQUUsRUFBRTtvQkFDL0QsT0FBTyxNQUFNLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQztnQkFDMUIsQ0FBQyxDQUFDO29CQUNBLENBQUMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUU7b0JBQ3JCLENBQUMsQ0FBQyxJQUFJLENBQUM7YUFDVjtZQUFDLE9BQU8sS0FBSyxFQUFFO2dCQUNkLE9BQU8sSUFBSSxDQUFDO2FBQ2I7UUFDSCxDQUFDO0tBQUE7SUFFRCxRQUFRLENBQUMsRUFBVTtRQUNqQixNQUFNLEtBQUssR0FBd0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQ3pELENBQUMsTUFBMkIsRUFBRSxFQUFFO1lBQzlCLE9BQU8sTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDMUIsQ0FBQyxDQUNGLENBQUM7UUFDRixJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUU7WUFDWCxJQUFJLENBQUMsY0FBYyxHQUFHO2dCQUNwQjtvQkFDRSxLQUFLLEVBQUU7d0JBQ0wsRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFFO3dCQUNaLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSzt3QkFDbEIsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO3dCQUNsQixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87d0JBQ3RCLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSzt3QkFDbEIsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO3FCQUMzQjtvQkFDRCxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsVUFBVTtvQkFDakMsY0FBYyxFQUFFLElBQUksQ0FBQyxZQUFZO2lCQUNsQzthQUNGLENBQUM7U0FDSDthQUFNO1lBQ0wsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBRUQsSUFBSSxDQUFDLFFBQWdCLEVBQUUsTUFBZTtRQUNwQyxJQUFJLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUNuQyxRQUFRLEVBQ1IsSUFBSSxFQUNKLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFDL0IsTUFBTSxDQUNQLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFFRCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUNoQyxjQUE4QixFQUM5QixhQUErQyxFQUNyQixFQUFFO0lBQzVCLFFBQVEsY0FBYyxDQUFDLGNBQWMsRUFBRTtRQUNyQyxLQUFLLGNBQWMsQ0FBQyxRQUFRO1lBQzFCLE9BQU8sSUFBSSxzQkFBc0IsQ0FBQyxjQUFjLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDbkUsS0FBSyxjQUFjLENBQUMsV0FBVztZQUM3QixPQUFPLElBQUksd0JBQXdCLENBQUMsY0FBYyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ3JFLEtBQUssY0FBYyxDQUFDLE1BQU07WUFDeEIsT0FBTyxJQUFJLG9CQUFvQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2xELEtBQUssY0FBYyxDQUFDLFFBQVE7WUFDMUIsT0FBTyxJQUFJLHNCQUFzQixDQUFDLGNBQWMsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUNuRTtZQUNFLE1BQU0sR0FBRyxHQUFVLGNBQWMsQ0FBQyxjQUFjLENBQUM7WUFDakQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztLQUNwQjtJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge1xyXG4gIGRlYm91bmNlVGltZSxcclxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcclxuICBzd2l0Y2hNYXAsXHJcbiAgdGFwXHJcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBWYWxpZGF0b3JDaGVja2VyIH0gZnJvbSAnLi4vY2xhc3Nlcy92YWxpZGF0b3IuY2hlY2tlcic7XHJcbmltcG9ydCB7IEVudGVycHJpc2VCYXNrZXRTZXJ2aWNlSW50ZXJmYWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JZW50ZXJwcmlzZS1iYXNrZXQuc2VydmljZSc7XHJcbmltcG9ydCB7XHJcbiAgQm9va2VkQnlGaWVsZCxcclxuICBGaWVsZFdyYXBwZXIsXHJcbiAgTWFuYWdlbWVudEluZm8sXHJcbiAgTWFuYWdlbWVudEluZm9WYWx1ZSxcclxuICBNYXliZSxcclxuICBTY2FsYXJzLFxyXG4gIFNlbGVjdGVkTWFuYWdlbWVudEluZm9WYWx1ZSxcclxuICBTZXJ2aWNlLFxyXG4gIFVpUHJlc2VudGF0aW9uXHJcbn0gZnJvbSAnLi4vdHlwZXMvZ3JhcGhxbC50eXBlcyc7XHJcbmltcG9ydCB7IEdldE1pQXV0b1N1Z2VzdGlvbkFycmF5LCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnLi4vdHlwZXMvdHlwZXMnO1xyXG5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE1hbmFnZW1lbnRJbmZvQW5kSXNWYWxpZFxyXG4gIGV4dGVuZHMgVmFsaWRhdG9yQ2hlY2tlclxyXG4gIGltcGxlbWVudHMgTWFuYWdlbWVudEluZm9cclxue1xyXG4gIC8vIE1hbmFnZW1lbnRJbmZvIGludGVyZmFjZVxyXG4gIGFnZW50T25seTogRmllbGRXcmFwcGVyPFNjYWxhcnNbJ0Jvb2xlYW4nXT47XHJcbiAgY3JlYXRlZEF0OiBGaWVsZFdyYXBwZXI8U2NhbGFyc1snRGF0ZVRpbWUnXT47XHJcbiAgZGJJZDogRmllbGRXcmFwcGVyPFNjYWxhcnNbJ0ludCddPjtcclxuICBkZWZhdWx0VmFsdWU/OiBNYXliZTxGaWVsZFdyYXBwZXI8TWFuYWdlbWVudEluZm9WYWx1ZT4+O1xyXG4gIGRlc2NyaXB0aW9uPzogTWF5YmU8RmllbGRXcmFwcGVyPFNjYWxhcnNbJ1N0cmluZyddPj47XHJcbiAgZml4ZWQ6IEZpZWxkV3JhcHBlcjxTY2FsYXJzWydCb29sZWFuJ10+O1xyXG4gIGZpeGVkVmFsdWU/OiBNYXliZTxGaWVsZFdyYXBwZXI8TWFuYWdlbWVudEluZm9WYWx1ZT4+O1xyXG4gIGdyb3VwPzogTWF5YmU8QXJyYXk8TWF5YmU8RmllbGRXcmFwcGVyPFNjYWxhcnNbJ1N0cmluZyddPj4+PjtcclxuICBoYW5kb2ZmOiBGaWVsZFdyYXBwZXI8U2NhbGFyc1snU3RyaW5nJ10+O1xyXG4gIGlkOiBGaWVsZFdyYXBwZXI8U2NhbGFyc1snSUQnXT47XHJcbiAgbWFuZGF0b3J5OiBGaWVsZFdyYXBwZXI8U2NhbGFyc1snQm9vbGVhbiddPjtcclxuICBuYW1lOiBGaWVsZFdyYXBwZXI8U2NhbGFyc1snU3RyaW5nJ10+O1xyXG4gIHBlckJvb2tpbmc6IEZpZWxkV3JhcHBlcjxTY2FsYXJzWydCb29sZWFuJ10+O1xyXG4gIHBlclBhc3NlbmdlcjogRmllbGRXcmFwcGVyPFNjYWxhcnNbJ0Jvb2xlYW4nXT47XHJcbiAgX3NlbGVjdGVkVmFsdWVzOiBBcnJheTxNYXliZTxGaWVsZFdyYXBwZXI8U2VsZWN0ZWRNYW5hZ2VtZW50SW5mb1ZhbHVlPj4+O1xyXG4gIHNlcnZpY2U6IEZpZWxkV3JhcHBlcjxTZXJ2aWNlPjtcclxuICB1aVByZXNlbnRhdGlvbjogRmllbGRXcmFwcGVyPFVpUHJlc2VudGF0aW9uPjtcclxuICB1cGRhdGVkQXQ6IEZpZWxkV3JhcHBlcjxTY2FsYXJzWydEYXRlVGltZSddPjtcclxuICB2YWx1ZU1hc2s/OiBNYXliZTxGaWVsZFdyYXBwZXI8U2NhbGFyc1snU3RyaW5nJ10+PjtcclxuICB2YWx1ZXM6IEFycmF5PE1heWJlPEZpZWxkV3JhcHBlcjxNYW5hZ2VtZW50SW5mb1ZhbHVlPj4+O1xyXG4gIHRlbXBWYWx1ZT86IEZpZWxkV3JhcHBlcjxTY2FsYXJzWydTdHJpbmcnXT47XHJcblxyXG4gIC8vIGV4dHJhRmllbGRzXHJcbiAgaXNMb2FkaW5nOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcclxuICBhdmFsaWFibGVJdGVtczogR2V0TWlBdXRvU3VnZXN0aW9uQXJyYXk7XHJcblxyXG4gIGdldCBzZWxlY3RlZFZhbHVlcygpOiBBcnJheTxcclxuICAgIE1heWJlPEZpZWxkV3JhcHBlcjxTZWxlY3RlZE1hbmFnZW1lbnRJbmZvVmFsdWU+PlxyXG4gID4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkVmFsdWVzO1xyXG4gIH1cclxuXHJcbiAgc2V0IHNlbGVjdGVkVmFsdWVzKHZhbHVlczogU2VsZWN0ZWRNYW5hZ2VtZW50SW5mb1ZhbHVlW10pIHtcclxuICAgIGlmICghT2JqZWN0LmlzKHRoaXMuX3NlbGVjdGVkVmFsdWVzLCB2YWx1ZXMpKSB7XHJcbiAgICAgIHRoaXMuX3NlbGVjdGVkVmFsdWVzID0gdmFsdWVzO1xyXG4gICAgfVxyXG4gIH1cclxuICBnZXQgdmFsdWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmdldFZhbHVlKCk7XHJcbiAgfVxyXG5cclxuICBzZXQgdmFsdWUodmFsOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuc2V0VmFsdWUodmFsKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihtYW5hZ2VtZW50SW5mbzogTWFuYWdlbWVudEluZm8pIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICBPYmplY3QuYXNzaWduKHRoaXMsIG1hbmFnZW1lbnRJbmZvKTsgLy8gVGhpcyB3aWxsIGF1dG9tYXRpY2FsbHkgY2FsbCBfaXNWYWxpZCgpXHJcbiAgfVxyXG5cclxuICByZWFzb246IGJvb2xlYW47XHJcbiAgdGFrZVZhbHVlRnJvbVVzZXJEZWZhdWx0PzogYm9vbGVhbjtcclxuICB0YWtlVmFsdWVGcm9tQm9va2VyRGVmYXVsdD86IGJvb2xlYW47XHJcbiAgZW5mb3JjZVVzZXJEZWZhdWx0PzogYm9vbGVhbjtcclxuICBib29rZWRCeUZpZWxkPzogQm9va2VkQnlGaWVsZDtcclxuXHJcbiAgaXNWYWxpZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhdGhpcy5tYW5kYXRvcnkgfHwgdGhpcy5zZWxlY3RlZFZhbHVlcy5sZW5ndGggIT09IDA7XHJcbiAgfVxyXG5cclxuICBoYXNFcnJvcnModmFsdWU6IHN0cmluZyk6IFByb21pc2U8VmFsaWRhdGlvbkVycm9ycz4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgcmVzb2x2ZShcclxuICAgICAgICB0aGlzLm1hbmRhdG9yeSAmJiAoIXZhbHVlIHx8IHZhbHVlLmxlbmd0aCA9PT0gMClcclxuICAgICAgICAgID8geyBoYXNFcnJvcnM6IHRydWUgfVxyXG4gICAgICAgICAgOiBudWxsXHJcbiAgICAgICk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGFic3RyYWN0IGdldFZhbHVlKCk6IHN0cmluZztcclxuICBhYnN0cmFjdCBzZXRWYWx1ZSh2YWw6IHN0cmluZyk6IHZvaWQ7XHJcbiAgc2VhcmNoID0gKHRlcm1zOiBPYnNlcnZhYmxlPHN0cmluZz4pOiBPYnNlcnZhYmxlPEdldE1pQXV0b1N1Z2VzdGlvbkFycmF5PiA9PiB7XHJcbiAgICByZXR1cm4gb2YoW10pO1xyXG4gIH07XHJcblxyXG4gIGFic3RyYWN0IHNhdmUoYmFza2V0aWQ6IHN0cmluZywgdXNlcklkPzogc3RyaW5nKTogdm9pZDtcclxufVxyXG5cclxuY2xhc3MgRnJlZVRleHRNYW5hZ2VtZW50SW5mbyBleHRlbmRzIE1hbmFnZW1lbnRJbmZvQW5kSXNWYWxpZCB7XHJcbiAgdGVtcFZhbHVlOiBzdHJpbmc7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBtYW5hZ2VtZW50SW5mbzogTWFuYWdlbWVudEluZm8sXHJcbiAgICBwcml2YXRlIGJhc2tldFNlcnZpY2U6IEVudGVycHJpc2VCYXNrZXRTZXJ2aWNlSW50ZXJmYWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcihtYW5hZ2VtZW50SW5mbyk7XHJcbiAgICB0aGlzLnRlbXBWYWx1ZSA9IHRoaXMuc2VsZWN0ZWRWYWx1ZXNcclxuICAgICAgPyB0aGlzLnNlbGVjdGVkVmFsdWVzWzBdPy5mcmVlVmFsdWUgfHwgJydcclxuICAgICAgOiAnJztcclxuICB9XHJcbiAgZ2V0VmFsdWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnRlbXBWYWx1ZTtcclxuICB9XHJcbiAgc2V0VmFsdWUodmFsOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnRlbXBWYWx1ZSA9PT0gdmFsKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMudGVtcFZhbHVlID0gdmFsO1xyXG5cclxuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMgPSBbXHJcbiAgICAgIHtcclxuICAgICAgICBmcmVlVmFsdWU6IHZhbCxcclxuICAgICAgICBiYXNrZXRMZXZlbFZhbHVlOiB0aGlzLnBlckJvb2tpbmcsXHJcbiAgICAgICAgdXNlckxldmVsVmFsdWU6IHRoaXMucGVyUGFzc2VuZ2VyXHJcbiAgICAgIH1cclxuICAgIF07XHJcbiAgfVxyXG5cclxuICBzYXZlKGJhc2tldGlkOiBzdHJpbmcsIHVzZXJJZD86IHN0cmluZykge1xyXG4gICAgdGhpcy5iYXNrZXRTZXJ2aWNlLnNldE1pRnJlZVZhbHVlKFxyXG4gICAgICBiYXNrZXRpZCxcclxuICAgICAgdGhpcyxcclxuICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlc1swXSA/IHRoaXMuc2VsZWN0ZWRWYWx1ZXNbMF0uZnJlZVZhbHVlIDogJycsXHJcbiAgICAgIHVzZXJJZFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGhhc0Vycm9ycyh2YWx1ZTogc3RyaW5nKTogUHJvbWlzZTxWYWxpZGF0aW9uRXJyb3JzPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5tYW5kYXRvcnkgJiYgKCF2YWx1ZSB8fCB2YWx1ZS5sZW5ndGggPT09IDApKSB7XHJcbiAgICAgICAgcmVzb2x2ZSh7IGhhc0Vycm9yczogdHJ1ZSB9KTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy52YWx1ZU1hc2sgJiYgISF2YWx1ZSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmJhc2tldFNlcnZpY2VcclxuICAgICAgICAgIC52YWxpZGF0ZUZyZWVWYWxlTWkodGhpcywgdmFsdWUpXHJcbiAgICAgICAgICAudGhlbigocmVzdWx0OiBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgICAgIHJlc29sdmUocmVzdWx0ID8gbnVsbCA6IHsgaGFzRXJyb3JzOiB0cnVlIH0pO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy52YWx1ZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHJlc29sdmUoXHJcbiAgICAgICAgICAhIXRoaXMudmFsdWVzLmZpbmQoKG1pdjogTWFuYWdlbWVudEluZm9WYWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gbWl2LnZhbHVlID09PSB2YWx1ZTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgID8gbnVsbFxyXG4gICAgICAgICAgICA6IHsgaGFzRXJyb3JzOiB0cnVlIH1cclxuICAgICAgICApO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJlc29sdmUoc3VwZXIuaGFzRXJyb3JzKHZhbHVlKSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG5cclxuY2xhc3MgQXV0b1N1Z2VzdE1hbmFnZW1lbnRJbmZvIGV4dGVuZHMgTWFuYWdlbWVudEluZm9BbmRJc1ZhbGlkIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIG1hbmFnZW1lbnRJbmZvOiBNYW5hZ2VtZW50SW5mbyxcclxuICAgIHByaXZhdGUgYmFza2V0U2VydmljZTogRW50ZXJwcmlzZUJhc2tldFNlcnZpY2VJbnRlcmZhY2VcclxuICApIHtcclxuICAgIHN1cGVyKG1hbmFnZW1lbnRJbmZvKTtcclxuICAgIGlmICh0aGlzLnZhbHVlcz8ubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmF2YWxpYWJsZUl0ZW1zID0gdGhpcy52YWx1ZXM7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldFZhbHVlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZFZhbHVlc1swXSA/IHRoaXMuc2VsZWN0ZWRWYWx1ZXNbMF0udmFsdWUuaWQgOiAnX19OT05FJztcclxuICB9XHJcblxyXG4gIGFzeW5jIGhhc0Vycm9ycyhpZDogc3RyaW5nKTogUHJvbWlzZTxWYWxpZGF0aW9uRXJyb3JzPiB7XHJcbiAgICB0cnkge1xyXG4gICAgICByZXR1cm4gIXRoaXMuYXZhbGlhYmxlSXRlbXMuZmluZCgodmFsdWUxOiBNYW5hZ2VtZW50SW5mb1ZhbHVlKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlMS5pZCA9PT0gaWQ7XHJcbiAgICAgIH0pXHJcbiAgICAgICAgPyB7IGhhc0Vycm9yczogdHJ1ZSB9XHJcbiAgICAgICAgOiBudWxsO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRWYWx1ZShpZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCB2YWx1ZTogTWFuYWdlbWVudEluZm9WYWx1ZSA9IHRoaXMuYXZhbGlhYmxlSXRlbXMuZmluZChcclxuICAgICAgICAodmFsdWUxOiBNYW5hZ2VtZW50SW5mb1ZhbHVlKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdmFsdWUxLmlkID09PSBpZDtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICAgIGlmICghIXZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcyA9IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdmFsdWU6IHtcclxuICAgICAgICAgICAgICBpZDogdmFsdWUuaWQsXHJcbiAgICAgICAgICAgICAgbGFiZWw6IHZhbHVlLmxhYmVsLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiB2YWx1ZS52YWx1ZSxcclxuICAgICAgICAgICAgICBkZWZhdWx0OiB2YWx1ZS5kZWZhdWx0LFxyXG4gICAgICAgICAgICAgIGZpeGVkOiB2YWx1ZS5maXhlZCxcclxuICAgICAgICAgICAgICBhZ2VudE9ubHk6IHZhbHVlLmFnZW50T25seVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBiYXNrZXRMZXZlbFZhbHVlOiB0aGlzLnBlckJvb2tpbmcsXHJcbiAgICAgICAgICAgIHVzZXJMZXZlbFZhbHVlOiB0aGlzLnBlclBhc3NlbmdlclxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIF07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcyA9IFtdO1xyXG4gICAgICB9XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzID0gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZWFyY2ggPSAodGVybXM6IE9ic2VydmFibGU8c3RyaW5nPik6IE9ic2VydmFibGU8R2V0TWlBdXRvU3VnZXN0aW9uQXJyYXk+ID0+IHtcclxuICAgIHJldHVybiB0ZXJtcy5waXBlKFxyXG4gICAgICBkZWJvdW5jZVRpbWUoMzAwKSxcclxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcclxuICAgICAgc3dpdGNoTWFwKCh0ZXJtOiBzdHJpbmcpID0+IHtcclxuICAgICAgICBjb25zdCBvYiA9XHJcbiAgICAgICAgICB0ZXJtLmxlbmd0aCA+IDJcclxuICAgICAgICAgICAgPyB0aGlzLmJhc2tldFNlcnZpY2UuZ2V0TWlBdXRvU3VnZXN0aW9ucyhcclxuICAgICAgICAgICAgICAgIHRoaXMuaWQsXHJcbiAgICAgICAgICAgICAgICB0ZXJtLFxyXG4gICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmdcclxuICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgIDogb2YodGhpcy5hdmFsaWFibGVJdGVtcyk7XHJcblxyXG4gICAgICAgIHJldHVybiBvYjtcclxuICAgICAgfSksXHJcbiAgICAgIHRhcCgoc3VnZXN0aW9uczogR2V0TWlBdXRvU3VnZXN0aW9uQXJyYXkpID0+IHtcclxuICAgICAgICB0aGlzLmF2YWxpYWJsZUl0ZW1zID0gc3VnZXN0aW9ucztcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfTtcclxuXHJcbiAgc2F2ZShiYXNrZXRpZDogc3RyaW5nLCB1c2VyaWQ/OiBzdHJpbmcpIHtcclxuICAgIHRoaXMuYmFza2V0U2VydmljZS5zZXRNaVNlbGVjdGVkVmFsdWUoXHJcbiAgICAgIGJhc2tldGlkLFxyXG4gICAgICB0aGlzLFxyXG4gICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzWzBdLnZhbHVlLmlkLFxyXG4gICAgICB1c2VyaWRcclxuICAgICk7XHJcbiAgfVxyXG59XHJcblxyXG5jbGFzcyBIaWRkZW5NYW5hZ2VtZW50SW5mbyBleHRlbmRzIE1hbmFnZW1lbnRJbmZvQW5kSXNWYWxpZCB7XHJcbiAgY29uc3RydWN0b3IobWFuYWdlbWVudEluZm86IE1hbmFnZW1lbnRJbmZvKSB7XHJcbiAgICBzdXBlcihtYW5hZ2VtZW50SW5mbyk7XHJcbiAgfVxyXG4gIGdldFZhbHVlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gJyc7XHJcbiAgfVxyXG4gIHNldFZhbHVlKHZhbDogc3RyaW5nKTogdm9pZCB7fVxyXG5cclxuICBzYXZlKGJhc2tldGlkOiBzdHJpbmcsIHVzZXJJZD86IHN0cmluZykge31cclxufVxyXG5cclxuY2xhc3MgRHJvcGRvd25NYW5hZ2VtZW50SW5mbyBleHRlbmRzIE1hbmFnZW1lbnRJbmZvQW5kSXNWYWxpZCB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBtYW5hZ2VtZW50SW5mbzogTWFuYWdlbWVudEluZm8sXHJcbiAgICBwcml2YXRlIGJhc2tldFNlcnZpY2U6IEVudGVycHJpc2VCYXNrZXRTZXJ2aWNlSW50ZXJmYWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcihtYW5hZ2VtZW50SW5mbyk7XHJcbiAgICBpZiAodGhpcy52YWx1ZXM/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5hdmFsaWFibGVJdGVtcyA9IHRoaXMudmFsdWVzO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc29sZS5lcnJvcignTm8gdmFsdWVzIGZvciBEcm9wZG93biBNSSBmaWVsZCAgJyk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5kZWZhdWx0VmFsdWUgJiYgIXRoaXMuc2VsZWN0ZWRWYWx1ZXMubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmRlZmF1bHRWYWx1ZS5pZDtcclxuICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlc1swXS52YWx1ZSA9IHRoaXMuZGVmYXVsdFZhbHVlO1xyXG4gICAgfVxyXG4gIH1cclxuICBnZXRWYWx1ZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRWYWx1ZXNbMF0gPyB0aGlzLnNlbGVjdGVkVmFsdWVzWzBdLnZhbHVlLmlkIDogJ19fTk9ORSc7XHJcbiAgfVxyXG5cclxuICBhc3luYyBoYXNFcnJvcnMoaWQ6IHN0cmluZyk6IFByb21pc2U8VmFsaWRhdGlvbkVycm9ycz4ge1xyXG4gICAgdHJ5IHtcclxuICAgICAgcmV0dXJuICF0aGlzLmF2YWxpYWJsZUl0ZW1zLmZpbmQoKHZhbHVlMTogTWFuYWdlbWVudEluZm9WYWx1ZSkgPT4ge1xyXG4gICAgICAgIHJldHVybiB2YWx1ZTEuaWQgPT09IGlkO1xyXG4gICAgICB9KVxyXG4gICAgICAgID8geyBoYXNFcnJvcnM6IHRydWUgfVxyXG4gICAgICAgIDogbnVsbDtcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0VmFsdWUoaWQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3QgdmFsdWU6IE1hbmFnZW1lbnRJbmZvVmFsdWUgPSB0aGlzLmF2YWxpYWJsZUl0ZW1zLmZpbmQoXHJcbiAgICAgICh2YWx1ZTE6IE1hbmFnZW1lbnRJbmZvVmFsdWUpID0+IHtcclxuICAgICAgICByZXR1cm4gdmFsdWUxLmlkID09PSBpZDtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICAgIGlmICghIXZhbHVlKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMgPSBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgdmFsdWU6IHtcclxuICAgICAgICAgICAgaWQ6IHZhbHVlLmlkLFxyXG4gICAgICAgICAgICBsYWJlbDogdmFsdWUubGFiZWwsXHJcbiAgICAgICAgICAgIHZhbHVlOiB2YWx1ZS52YWx1ZSxcclxuICAgICAgICAgICAgZGVmYXVsdDogdmFsdWUuZGVmYXVsdCxcclxuICAgICAgICAgICAgZml4ZWQ6IHZhbHVlLmZpeGVkLFxyXG4gICAgICAgICAgICBhZ2VudE9ubHk6IHZhbHVlLmFnZW50T25seVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGJhc2tldExldmVsVmFsdWU6IHRoaXMucGVyQm9va2luZyxcclxuICAgICAgICAgIHVzZXJMZXZlbFZhbHVlOiB0aGlzLnBlclBhc3NlbmdlclxyXG4gICAgICAgIH1cclxuICAgICAgXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMgPSBbXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNhdmUoYmFza2V0aWQ6IHN0cmluZywgdXNlcmlkPzogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmJhc2tldFNlcnZpY2Uuc2V0TWlTZWxlY3RlZFZhbHVlKFxyXG4gICAgICBiYXNrZXRpZCxcclxuICAgICAgdGhpcyxcclxuICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlc1swXS52YWx1ZS5pZCxcclxuICAgICAgdXNlcmlkXHJcbiAgICApO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IG1ha2VNYW5hZ2FtZW50SW5mbyA9IChcclxuICBtYW5hZ2VtZW50SW5mbzogTWFuYWdlbWVudEluZm8sXHJcbiAgYmFza2V0U2VydmljZTogRW50ZXJwcmlzZUJhc2tldFNlcnZpY2VJbnRlcmZhY2VcclxuKTogTWFuYWdlbWVudEluZm9BbmRJc1ZhbGlkID0+IHtcclxuICBzd2l0Y2ggKG1hbmFnZW1lbnRJbmZvLnVpUHJlc2VudGF0aW9uKSB7XHJcbiAgICBjYXNlIFVpUHJlc2VudGF0aW9uLkZyZWVUZXh0OlxyXG4gICAgICByZXR1cm4gbmV3IEZyZWVUZXh0TWFuYWdlbWVudEluZm8obWFuYWdlbWVudEluZm8sIGJhc2tldFNlcnZpY2UpO1xyXG4gICAgY2FzZSBVaVByZXNlbnRhdGlvbi5BdXRvU3VnZ2VzdDpcclxuICAgICAgcmV0dXJuIG5ldyBBdXRvU3VnZXN0TWFuYWdlbWVudEluZm8obWFuYWdlbWVudEluZm8sIGJhc2tldFNlcnZpY2UpO1xyXG4gICAgY2FzZSBVaVByZXNlbnRhdGlvbi5IaWRkZW46XHJcbiAgICAgIHJldHVybiBuZXcgSGlkZGVuTWFuYWdlbWVudEluZm8obWFuYWdlbWVudEluZm8pO1xyXG4gICAgY2FzZSBVaVByZXNlbnRhdGlvbi5Ecm9wZG93bjpcclxuICAgICAgcmV0dXJuIG5ldyBEcm9wZG93bk1hbmFnZW1lbnRJbmZvKG1hbmFnZW1lbnRJbmZvLCBiYXNrZXRTZXJ2aWNlKTtcclxuICAgIGRlZmF1bHQ6XHJcbiAgICAgIGNvbnN0IHRtcDogbmV2ZXIgPSBtYW5hZ2VtZW50SW5mby51aVByZXNlbnRhdGlvbjtcclxuICAgICAgY29uc29sZS5sb2codG1wKTtcclxuICB9XHJcbiAgcmV0dXJuIG51bGw7XHJcbn07XHJcbiJdfQ==
|
|
@@ -24,4 +24,6 @@ ModalTypes.WarningRemoveModalComponent = new ModalTypes('WarningRemoveModalCompo
|
|
|
24
24
|
ModalTypes.RailTicketsDialogComponent = new ModalTypes('RailTicketsDialogComponent');
|
|
25
25
|
ModalTypes.ModalFlightFareComponent = new ModalTypes('ModalFlightFareComponent');
|
|
26
26
|
ModalTypes.FlightExtrasDialogComponent = new ModalTypes('FlightExtrasDialogComponent');
|
|
27
|
-
|
|
27
|
+
ModalTypes.OfflineRequestDialogComponent = new ModalTypes('OfflineRequestDialogComponent');
|
|
28
|
+
ModalTypes.RequiresReasonDialogComponent = new ModalTypes('RequiresReasonDialogComponent');
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtdHlwZXMuZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29idHNlcnZpY2VzL2Jhc2Uvc3JjL2xpYi92ZW5kb3IvY2xhc3Nlcy9tb2RhbC10eXBlcy5lbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxVQUFVO0lBZ0RyQixZQUE2QixLQUFhO1FBQWIsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQWZsQyxlQUFVLEdBQVEsSUFBSSxDQUFDO1FBZ0I1QixVQUFrQyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQztJQUNwRCxDQUFDO0lBaEJELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxTQUFTLENBQUMsS0FBVTtRQUN0QixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbkIsT0FBTyxDQUFDLElBQUksQ0FDViwyQkFBMkIsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUN4QyxJQUFJLENBQUMsVUFBVSxFQUNmLEtBQUssQ0FDTixDQUFDO1NBQ0g7UUFDRCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUMxQixDQUFDOztBQTlDZSw4QkFBbUIsR0FBRyxJQUFJLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0FBQzVELHFDQUEwQixHQUFHLElBQUksVUFBVSxDQUN6RCw0QkFBNEIsQ0FDN0IsQ0FBQztBQUNjLDZCQUFrQixHQUFHLElBQUksVUFBVSxDQUFDLG9CQUFvQixDQUFDLENBQUM7QUFDMUQscUJBQVUsR0FBRyxJQUFJLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUMxQywwQkFBZSxHQUFHLElBQUksVUFBVSxDQUM5QywrQkFBK0IsQ0FDaEMsQ0FBQztBQUNjLHdDQUE2QixHQUFHLElBQUksVUFBVSxDQUM1RCwrQkFBK0IsQ0FDaEMsQ0FBQztBQUNjLHNDQUEyQixHQUFHLElBQUksVUFBVSxDQUMxRCw2QkFBNkIsQ0FDOUIsQ0FBQztBQUNjLHFDQUEwQixHQUFHLElBQUksVUFBVSxDQUN6RCw0QkFBNEIsQ0FDN0IsQ0FBQztBQUNjLG1DQUF3QixHQUFHLElBQUksVUFBVSxDQUN2RCwwQkFBMEIsQ0FDM0IsQ0FBQztBQUNjLHNDQUEyQixHQUFHLElBQUksVUFBVSxDQUMxRCw2QkFBNkIsQ0FDOUIsQ0FBQztBQUNjLHdDQUE2QixHQUFHLElBQUksVUFBVSxDQUM1RCwrQkFBK0IsQ0FDaEMsQ0FBQztBQUVjLHdDQUE2QixHQUFHLElBQUksVUFBVSxDQUM1RCwrQkFBK0IsQ0FDaEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBNb2RhbFR5cGVzIHtcclxuICBzdGF0aWMgcmVhZG9ubHkgTW9kYWxFcnJvckNvbXBvbmVudCA9IG5ldyBNb2RhbFR5cGVzKCdNb2RhbEVycm9yQ29tcG9uZW50Jyk7XHJcbiAgc3RhdGljIHJlYWRvbmx5IE1vZGFsTmV0V29ya0Vycm9yQ29tcG9uZW50ID0gbmV3IE1vZGFsVHlwZXMoXHJcbiAgICAnTW9kYWxOZXR3b3JrRXJyb3JDb21wb25lbnQnXHJcbiAgKTtcclxuICBzdGF0aWMgcmVhZG9ubHkgQmFzZU1vZGFsQ29tcG9uZW50ID0gbmV3IE1vZGFsVHlwZXMoJ0Jhc2VNb2RhbENvbXBvbmVudCcpO1xyXG4gIHN0YXRpYyByZWFkb25seSBBdXRvTG9nb3V0ID0gbmV3IE1vZGFsVHlwZXMoJ0F1dG9Mb2dvdXQnKTtcclxuICBzdGF0aWMgcmVhZG9ubHkgUmlza0FsZXJ0RGV0YWlsID0gbmV3IE1vZGFsVHlwZXMoXHJcbiAgICAnUmlza0FsZXJ0RGV0YWlsTW9kYWxDb21wb25lbnQnXHJcbiAgKTtcclxuICBzdGF0aWMgcmVhZG9ubHkgQWx0ZXJuYXRpdmVSYWlsTW9kYWxDb21wb25lbnQgPSBuZXcgTW9kYWxUeXBlcyhcclxuICAgICdBbHRlcm5hdGl2ZVJhaWxNb2RhbENvbXBvbmVudCdcclxuICApO1xyXG4gIHN0YXRpYyByZWFkb25seSBXYXJuaW5nUmVtb3ZlTW9kYWxDb21wb25lbnQgPSBuZXcgTW9kYWxUeXBlcyhcclxuICAgICdXYXJuaW5nUmVtb3ZlTW9kYWxDb21wb25lbnQnXHJcbiAgKTtcclxuICBzdGF0aWMgcmVhZG9ubHkgUmFpbFRpY2tldHNEaWFsb2dDb21wb25lbnQgPSBuZXcgTW9kYWxUeXBlcyhcclxuICAgICdSYWlsVGlja2V0c0RpYWxvZ0NvbXBvbmVudCdcclxuICApO1xyXG4gIHN0YXRpYyByZWFkb25seSBNb2RhbEZsaWdodEZhcmVDb21wb25lbnQgPSBuZXcgTW9kYWxUeXBlcyhcclxuICAgICdNb2RhbEZsaWdodEZhcmVDb21wb25lbnQnXHJcbiAgKTtcclxuICBzdGF0aWMgcmVhZG9ubHkgRmxpZ2h0RXh0cmFzRGlhbG9nQ29tcG9uZW50ID0gbmV3IE1vZGFsVHlwZXMoXHJcbiAgICAnRmxpZ2h0RXh0cmFzRGlhbG9nQ29tcG9uZW50J1xyXG4gICk7XHJcbiAgc3RhdGljIHJlYWRvbmx5IE9mZmxpbmVSZXF1ZXN0RGlhbG9nQ29tcG9uZW50ID0gbmV3IE1vZGFsVHlwZXMoXHJcbiAgICAnT2ZmbGluZVJlcXVlc3REaWFsb2dDb21wb25lbnQnXHJcbiAgKTtcclxuXHJcbiAgc3RhdGljIHJlYWRvbmx5IFJlcXVpcmVzUmVhc29uRGlhbG9nQ29tcG9uZW50ID0gbmV3IE1vZGFsVHlwZXMoXHJcbiAgICAnUmVxdWlyZXNSZWFzb25EaWFsb2dDb21wb25lbnQnXHJcbiAgKTtcclxuXHJcbiAgcHJpdmF0ZSBfY29tcG9uZW50OiBhbnkgPSBudWxsO1xyXG4gIGdldCBjb21wb25lbnQoKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLl9jb21wb25lbnQ7XHJcbiAgfVxyXG5cclxuICBzZXQgY29tcG9uZW50KHZhbHVlOiBhbnkpIHtcclxuICAgIGlmICh0aGlzLl9jb21wb25lbnQpIHtcclxuICAgICAgY29uc29sZS53YXJuKFxyXG4gICAgICAgICdDb21wbmVudCBhbHJlYWR5IHNldCBmb3IgJyArIHRoaXMudmFsdWUsXHJcbiAgICAgICAgdGhpcy5fY29tcG9uZW50LFxyXG4gICAgICAgIHZhbHVlXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9jb21wb25lbnQgPSB2YWx1ZTtcclxuICB9XHJcbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKHB1YmxpYyB2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICAoTW9kYWxUeXBlcyBhcyBSZWNvcmQ8c3RyaW5nLCBhbnk+KVt2YWx1ZV0gPSB0aGlzO1xyXG4gIH1cclxufVxyXG4iXX0=
|