@myclub_se/data-access 3.6.4 → 3.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/api-models/api-activity-invite.mjs +1 -1
- package/esm2022/lib/api-models/api-activity.mjs +1 -1
- package/esm2022/lib/api-models/api-feature-flags.mjs +1 -1
- package/esm2022/lib/api-models/api-guest.mjs +2 -0
- package/esm2022/lib/api-models/api-open-activity.mjs +1 -1
- package/esm2022/lib/api-models/index.mjs +2 -1
- package/esm2022/lib/interfaces/guest-input.interface.mjs +2 -0
- package/esm2022/lib/interfaces/index.mjs +2 -1
- package/esm2022/lib/models/activity-invite.mjs +4 -2
- package/esm2022/lib/models/activity.mjs +16 -3
- package/esm2022/lib/models/feature-flags.mjs +9 -3
- package/esm2022/lib/models/guest.mjs +13 -0
- package/esm2022/lib/models/index.mjs +2 -1
- package/esm2022/lib/models/open-activity.mjs +6 -2
- package/esm2022/lib/services/activity.service.mjs +66 -2
- package/esm2022/lib/services/factories/activity-factory.mjs +2 -2
- package/esm2022/lib/services/factories/activity-invite-factory.mjs +5 -2
- package/esm2022/lib/services/factories/feature-flags-factory.mjs +2 -2
- package/esm2022/lib/services/factories/guest-factory.mjs +3 -0
- package/esm2022/lib/services/factories/index.mjs +2 -1
- package/esm2022/lib/services/factories/open-activity-factory.mjs +2 -2
- package/esm2022/lib/store/actions/activity.actions.mjs +25 -1
- package/esm2022/lib/store/effects/activity.effects.mjs +123 -7
- package/esm2022/lib/store/interfaces/team-activity.interface.mjs +1 -1
- package/esm2022/lib/store/reducers/calendar.reducer.mjs +59 -3
- package/esm2022/lib/store/selectors/calendar.selectors.mjs +2 -1
- package/fesm2022/myclub_se-data-access.mjs +320 -17
- package/fesm2022/myclub_se-data-access.mjs.map +1 -1
- package/lib/api-models/api-activity-invite.d.ts +2 -0
- package/lib/api-models/api-activity.d.ts +5 -0
- package/lib/api-models/api-feature-flags.d.ts +3 -0
- package/lib/api-models/api-guest.d.ts +6 -0
- package/lib/api-models/api-open-activity.d.ts +2 -0
- package/lib/api-models/index.d.ts +1 -0
- package/lib/interfaces/guest-input.interface.d.ts +5 -0
- package/lib/interfaces/index.d.ts +1 -0
- package/lib/models/activity-invite.d.ts +3 -1
- package/lib/models/activity.d.ts +6 -1
- package/lib/models/feature-flags.d.ts +4 -1
- package/lib/models/guest.d.ts +7 -0
- package/lib/models/index.d.ts +1 -0
- package/lib/models/open-activity.d.ts +3 -1
- package/lib/services/activity.service.d.ts +39 -1
- package/lib/services/factories/guest-factory.d.ts +3 -0
- package/lib/services/factories/index.d.ts +1 -0
- package/lib/store/actions/activity.actions.d.ts +144 -1
- package/lib/store/effects/activity.effects.d.ts +66 -33
- package/lib/store/interfaces/team-activity.interface.d.ts +2 -1
- package/lib/store/selectors/calendar.selectors.d.ts +1 -0
- package/package.json +1 -1
|
@@ -2,7 +2,7 @@ import { Injectable } from '@angular/core';
|
|
|
2
2
|
import { Role, } from '../models';
|
|
3
3
|
import { tap } from 'rxjs/operators';
|
|
4
4
|
import { of } from 'rxjs';
|
|
5
|
-
import { activityFactory, activityInviteFactory, activityLocationFactory, activityQuestionFactory, activitySettingsFactory, activityTypeFactory, eventFactory, memberActivityInviteFactory, openActivityFactory, searchAttributeFactory, searchMemberFactory, } from './factories';
|
|
5
|
+
import { activityFactory, activityInviteFactory, activityLocationFactory, activityQuestionFactory, activitySettingsFactory, activityTypeFactory, eventFactory, guestFactory, memberActivityInviteFactory, openActivityFactory, searchAttributeFactory, searchMemberFactory, } from './factories';
|
|
6
6
|
import { sub } from 'date-fns';
|
|
7
7
|
import { invalidRoleError } from "./constants";
|
|
8
8
|
import { searchTeamFactory } from './factories/search-team-factory';
|
|
@@ -55,6 +55,14 @@ const MEMBER_OPEN_ACTIVITY_RESPOND_WITH_DATA_PATH = ':memberId/open-activities/:
|
|
|
55
55
|
const MEMBER_ACTIVITY_SETTINGS_PATH = ':memberId/activities/settings/';
|
|
56
56
|
const MEMBER_ACTIVITY_TYPES_PATH = ':memberId/activities/types/';
|
|
57
57
|
const MEMBER_ACTIVITY_LOCATIONS_PATH = ':memberId/activities/locations/';
|
|
58
|
+
const TEAM_ACTIVITY_GUESTS_PATH = ':teamId/activities/:activityId/guests/';
|
|
59
|
+
const TEAM_ACTIVITY_GUEST_PATH = ':teamId/activities/:activityId/guests/:guestId/';
|
|
60
|
+
const MEMBER_ACTIVITY_INVITE_GUESTS_PATH = ':memberId/activities/:inviteId/guests/';
|
|
61
|
+
const MEMBER_ACTIVITY_INVITE_GUEST_PATH = ':memberId/activities/:inviteId/guests/:guestId/';
|
|
62
|
+
const PUBLIC_ACTIVITY_INVITE_GUEST_LIST_PATH = 'activities/:id/:token/guests/';
|
|
63
|
+
const PUBLIC_ACTIVITY_INVITE_GUEST_DETAIL_PATH = 'activities/:id/:token/guests/:guestId/';
|
|
64
|
+
const PUBLIC_OPEN_ACTIVITY_GUEST_LIST_PATH = 'open-activities/:activityId/guests/';
|
|
65
|
+
const PUBLIC_OPEN_ACTIVITY_GUEST_DETAIL_PATH = 'open-activities/:activityId/guests/:guestId/';
|
|
58
66
|
export class ActivityService {
|
|
59
67
|
apiService;
|
|
60
68
|
activityLocationCollection;
|
|
@@ -315,6 +323,34 @@ export class ActivityService {
|
|
|
315
323
|
activityId
|
|
316
324
|
}, { params: { limit: 'null' } });
|
|
317
325
|
}
|
|
326
|
+
getTeamActivityGuests(teamId, activityId) {
|
|
327
|
+
return this.apiService
|
|
328
|
+
.getCollection(guestFactory, Role.TeamAdmin, TEAM_ACTIVITY_GUESTS_PATH, { teamId, activityId }, { params: { limit: 'null' } });
|
|
329
|
+
}
|
|
330
|
+
addTeamActivityGuest(teamId, activityId, data) {
|
|
331
|
+
return this.apiService
|
|
332
|
+
.postResource(guestFactory, Role.TeamAdmin, TEAM_ACTIVITY_GUESTS_PATH, { teamId, activityId }, data);
|
|
333
|
+
}
|
|
334
|
+
updateTeamActivityGuest(teamId, activityId, guestId, data) {
|
|
335
|
+
return this.apiService
|
|
336
|
+
.updateResource(guestFactory, Role.TeamAdmin, TEAM_ACTIVITY_GUEST_PATH, { teamId, activityId, guestId }, data);
|
|
337
|
+
}
|
|
338
|
+
deleteTeamActivityGuest(teamId, activityId, guestId) {
|
|
339
|
+
return this.apiService
|
|
340
|
+
.deleteResource(Role.TeamAdmin, TEAM_ACTIVITY_GUEST_PATH, { teamId, activityId, guestId });
|
|
341
|
+
}
|
|
342
|
+
addMemberActivityGuest(memberId, inviteId, data) {
|
|
343
|
+
return this.apiService
|
|
344
|
+
.postResource(guestFactory, Role.MemberAdmin, MEMBER_ACTIVITY_INVITE_GUESTS_PATH, { memberId, inviteId }, data);
|
|
345
|
+
}
|
|
346
|
+
updateMemberActivityGuest(memberId, inviteId, guestId, data) {
|
|
347
|
+
return this.apiService
|
|
348
|
+
.updateResource(guestFactory, Role.MemberAdmin, MEMBER_ACTIVITY_INVITE_GUEST_PATH, { memberId, inviteId, guestId }, data);
|
|
349
|
+
}
|
|
350
|
+
deleteMemberActivityGuest(memberId, inviteId, guestId) {
|
|
351
|
+
return this.apiService
|
|
352
|
+
.deleteResource(Role.MemberAdmin, MEMBER_ACTIVITY_INVITE_GUEST_PATH, { memberId, inviteId, guestId });
|
|
353
|
+
}
|
|
318
354
|
getActivitySettings(role, itemId) {
|
|
319
355
|
switch (role) {
|
|
320
356
|
case Role.ClubAdmin:
|
|
@@ -497,6 +533,34 @@ export class ActivityService {
|
|
|
497
533
|
id
|
|
498
534
|
}, activityInvite);
|
|
499
535
|
}
|
|
536
|
+
getPublicOpenActivityGuests(activityId) {
|
|
537
|
+
return this.apiService
|
|
538
|
+
.getCollection(guestFactory, Role.Public, PUBLIC_OPEN_ACTIVITY_GUEST_LIST_PATH, { activityId }, { params: { limit: 'null' } });
|
|
539
|
+
}
|
|
540
|
+
addPublicActivityGuestByToken(id, token, data) {
|
|
541
|
+
return this.apiService
|
|
542
|
+
.postResource(guestFactory, Role.Public, PUBLIC_ACTIVITY_INVITE_GUEST_LIST_PATH, { id, token }, data);
|
|
543
|
+
}
|
|
544
|
+
updatePublicActivityGuestByToken(id, token, guestId, data) {
|
|
545
|
+
return this.apiService
|
|
546
|
+
.updateResource(guestFactory, Role.Public, PUBLIC_ACTIVITY_INVITE_GUEST_DETAIL_PATH, { id, token, guestId }, data);
|
|
547
|
+
}
|
|
548
|
+
deletePublicActivityGuestByToken(id, token, guestId) {
|
|
549
|
+
return this.apiService
|
|
550
|
+
.deleteResource(Role.Public, PUBLIC_ACTIVITY_INVITE_GUEST_DETAIL_PATH, { id, token, guestId });
|
|
551
|
+
}
|
|
552
|
+
addPublicOpenActivityGuest(activityId, data) {
|
|
553
|
+
return this.apiService
|
|
554
|
+
.postResource(guestFactory, Role.Public, PUBLIC_OPEN_ACTIVITY_GUEST_LIST_PATH, { activityId }, data);
|
|
555
|
+
}
|
|
556
|
+
updatePublicOpenActivityGuest(activityId, guestId, data) {
|
|
557
|
+
return this.apiService
|
|
558
|
+
.updateResource(guestFactory, Role.Public, PUBLIC_OPEN_ACTIVITY_GUEST_DETAIL_PATH, { activityId, guestId }, data);
|
|
559
|
+
}
|
|
560
|
+
deletePublicOpenActivityGuest(activityId, guestId) {
|
|
561
|
+
return this.apiService
|
|
562
|
+
.deleteResource(Role.Public, PUBLIC_OPEN_ACTIVITY_GUEST_DETAIL_PATH, { activityId, guestId });
|
|
563
|
+
}
|
|
500
564
|
updateTeamActivity(teamId, activity) {
|
|
501
565
|
return this.apiService
|
|
502
566
|
.updateResource(activityFactory, Role.TeamAdmin, TEAM_ACTIVITY_PATH, {
|
|
@@ -584,4 +648,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
584
648
|
providedIn: 'root'
|
|
585
649
|
}]
|
|
586
650
|
}], ctorParameters: () => [{ type: i1.ApiService }] });
|
|
587
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEtYWNjZXNzL3NyYy9saWIvc2VydmljZXMvYWN0aXZpdHkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFPTCxJQUFJLEdBQ0wsTUFBTSxXQUFXLENBQUM7QUFDbkIsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUIsT0FBTyxFQUNMLGVBQWUsRUFDZixxQkFBcUIsRUFDckIsdUJBQXVCLEVBQ3ZCLHVCQUF1QixFQUN2Qix1QkFBdUIsRUFDdkIsbUJBQW1CLEVBQ25CLFlBQVksRUFDWiwyQkFBMkIsRUFDM0IsbUJBQW1CLEVBQUUsc0JBQXNCLEVBQzNDLG1CQUFtQixHQUNwQixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRS9CLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7O0FBRXBFLE1BQU0sMkJBQTJCLEdBQUcsd0JBQXdCLENBQUM7QUFDN0QsTUFBTSw2QkFBNkIsR0FBRyxhQUFhLENBQUM7QUFDcEQsTUFBTSwyQkFBMkIsR0FBRyx5QkFBeUIsQ0FBQztBQUM5RCxNQUFNLGlDQUFpQyxHQUFHLHNDQUFzQyxDQUFDO0FBQ2pGLE1BQU0sMkNBQTJDLEdBQUcsMkNBQTJDLENBQUM7QUFDaEcsTUFBTSxrQ0FBa0MsR0FBRyx1Q0FBdUMsQ0FBQztBQUNuRixNQUFNLGdDQUFnQyxHQUFHLHNDQUFzQyxDQUFDO0FBRWhGLE1BQU0sMkJBQTJCLEdBQUcsOEJB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LENBQUMsUUFBMkI7UUFDNUQsSUFBSSxPQUFPLFFBQVEsQ0FBQyxFQUFFLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDdkMsT0FBTyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ3JCLENBQUM7UUFFRCxJQUFJLE9BQU8sUUFBUSxDQUFDLElBQUksS0FBSyxXQUFXLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDM0QsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQ3ZCLENBQUM7UUFFRCxJQUFJLE9BQU8sUUFBUSxDQUFDLHlCQUF5QixLQUFLLFdBQVcsSUFBSSxDQUFDLFFBQVEsQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO1lBQ3JHLE9BQU8sUUFBUSxDQUFDLHlCQUF5QixDQUFDO1FBQzVDLENBQUM7UUFFRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRU8sa0NBQWtDLENBQUMsUUFBbUM7UUFDNUUsSUFBSSxPQUFPLFFBQVEsQ0FBQyxFQUFFLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDdkMsT0FBTyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ3JCLENBQUM7UUFDRCxPQUFPLFFBQVEsQ0FBQyxPQUFPLENBQUM7UUFDeEIsT0FBTyxRQUFRLENBQUMsVUFBVSxDQUFDO1FBQzNCLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7dUdBcDZCVSxlQUFlOzJHQUFmLGVBQWUsY0FGZCxNQUFNOzsyRkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFwaVNlcnZpY2UgfSBmcm9tICcuL2FwaS5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIEFjdGl2aXR5LFxuICBBY3Rpdml0eUxvY2F0aW9uLCBBY3Rpdml0eVF1ZXN0aW9uLFxuICBBY3Rpdml0eVF1ZXN0aW9uUmVzcG9uc2UsXG4gIEFjdGl2aXR5VHlwZSxcbiAgQ29sbGVjdGlvbixcbiAgTWVtYmVyQWN0aXZpdHlJbnZpdGUsXG4gIFJvbGUsXG59IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQgeyB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgYWN0aXZpdHlGYWN0b3J5LFxuICBhY3Rpdml0eUludml0ZUZhY3RvcnksXG4gIGFjdGl2aXR5TG9jYXRpb25GYWN0b3J5LFxuICBhY3Rpdml0eVF1ZXN0aW9uRmFjdG9yeSxcbiAgYWN0aXZpdHlTZXR0aW5nc0ZhY3RvcnksXG4gIGFjdGl2aXR5VHlwZUZhY3RvcnksXG4gIGV2ZW50RmFjdG9yeSxcbiAgbWVtYmVyQWN0aXZpdHlJbnZpdGVGYWN0b3J5LFxuICBvcGVuQWN0aXZpdHlGYWN0b3J5LCBzZWFyY2hBdHRyaWJ1dGVGYWN0b3J5LFxuICBzZWFyY2hNZW1iZXJGYWN0b3J5LFxufSBmcm9tICcuL2ZhY3Rvcmllcyc7XG5pbXBvcnQgeyBzdWIgfSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgeyBPcGVuQWN0aXZpdHlTZWFyY2hQYXJhbXNJbnRlcmZhY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGludmFsaWRSb2xlRXJyb3IgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IHNlYXJjaFRlYW1GYWN0b3J5IH0gZnJvbSAnLi9mYWN0b3JpZXMvc2VhcmNoLXRlYW0tZmFjdG9yeSc7XG5cbmNvbnN0IFBVQkxJQ19BQ1RJVklUWV9JTlZJVEVfUEFUSCA9ICdhY3Rpdml0aWVzLzppZC86dG9rZW4vJztcbmNvbnN0IFBVQkxJQ19NRU1CRVJfQUNUSVZJVElFU19QQVRIID0gJ2FjdGl2aXRpZXMvJztcbmNvbnN0IFBVQkxJQ19NRU1CRVJfQUNUSVZJVFlfUEFUSCA9ICdhY3Rpdml0aWVzLzphY3Rpdml0eUlkLyc7XG5jb25zdCBQVUJMSUNfT1BFTl9BQ1RJVklUWV9SRVNQT05EX1BBVEggPSAnb3Blbi1hY3Rpdml0aWVzLzphY3Rpdml0eUlkL3Jlc3BvbmQvJztcbmNvbnN0IFBVQkxJQ19PUEVOX0FDVElWSVRZX1JFU1BPTkRfV0lUSF9EQVRBX1BBVEggPSAnb3Blbi1hY3Rpdml0aWVzLzphY3Rpdml0eUlkL3Jlc3BvbmQtZGF0YS8nO1xuY29uc3QgUFVCTElDX01FTUJFUl9BQ1RJVklUWV9JTlZJVEVfUEFUSCA9ICdhY3Rpdml0aWVzL2ludml0ZXMvOmFjdGl2aXR5SW52aXRlSWQvJztcbmNvbnN0IFBVQkxJQ19PUEVOX0FDVElWSVRZX0lOVklURV9QQVRIID0gJ29wZW4tYWN0aXZpdGllcy9pbnZpdGVzLzphY3Rpdml0eUlkLyc7XG5cbmNvbnN0IENMVUJfQUNUSVZJVFlfU0VUVElOR1NfUEFUSCA9ICc6Y2x1YklkL2FjdGl2aXRpZXMvc2V0dGluZ3MvJztcbmNvbnN0IENMVUJfQUNUSVZJVFlfTE9DQVRJT05TX1BBVEggPSAnOmNsdWJJZC9hY3Rpdml0aWVzL2xvY2F0aW9ucy8nO1xuY29uc3QgQ0xVQl9BQ1RJVklUWV9MT0NBVElPTl9QQVRIID0gJzpjbHViSWQvYWN0aXZpdGllcy9sb2NhdGlvbnMvOmxvY2F0aW9uSWQvJztcbmNvbnN0IENMVUJfQUNUSVZJVFlfVFlQRVNfUEFUSCA9ICc6Y2x1YklkL2FjdGl2aXRpZXMvdHlwZXMvJztcbmNvbnN0IENMVUJfQUNUSVZJVFlfVFlQRV9QQVRIID0gJzpjbHViSWQvYWN0aXZpdGllcy90eXBlcy86dHlwZUlkLyc7XG5cbmNvbnN0IFNFQ1RJT05fQUNUSVZJVFlfU0VUVElOR1NfUEFUSCA9ICc6c2VjdGlvbklkL2FjdGl2aXRpZXMvc2V0dGluZ3MvJztcbmNvbnN0IFNFQ1RJT05fQUNUSVZJVFlfTE9DQVRJT05TX1BBVEggPSAnOnNlY3Rpb25JZC9hY3Rpdml0aWVzL2xvY2F0aW9ucy8nO1xuY29uc3QgU0VDVElPTl9BQ1RJVklUWV9MT0NBVElPTl9QQVRIID0gJzpzZWN0aW9uSWQvYWN0aXZpdGllcy9sb2NhdGlvbnMvOmxvY2F0aW9uSWQvJztcbmNvbnN0IFNFQ1RJT05fQUNUSVZJVFlfVFlQRVNfUEFUSCA9ICc6c2VjdGlvbklkL2FjdGl2aXRpZXMvdHlwZXMvJztcbmNvbnN0IFNFQ1RJT05fQUNUSVZJVFlfVFlQRV9QQVRIID0gJzpzZWN0aW9uSWQvYWN0aXZpdGllcy90eXBlcy86dHlwZUlkLyc7XG5cbmNvbnN0IFRFQU1fQUNUSVZJVElFU19QQVRIID0gJzp0ZWFtSWQvYWN0aXZpdGllcy8nO1xuY29uc3QgVEVBTV9BQ1RJVklUWV9SVUxFX0FUVFJJQlVURVNfUEFUSCA9ICc6dGVhbUlkL2FjdGl2aXRpZXMvYXR0cmlidXRlcy8nO1xuY29uc3QgVEVBTV9BQ1RJVklUWV9JTlZJVEVTX1BBVEggPSAnOnRlYW1JZC9hY3Rpdml0aWVzLzphY3Rpdml0eUlkL2ludml0ZXMvJztcbmNvbnN0IFRFQU1fQUNUSVZJVFlfSU5WSVRFX1BBVEggPSAnOnRlYW1JZC9hY3Rpdml0aWVzLzphY3Rpdml0eUlkL2ludml0ZXMvOmFjdGl2aXR5SW52aXRlSWQvJztcbmNvbnN0IFRFQU1fQUNUSVZJVFlfSU5WSVRFX1JFU0VORF9QQVRIID0gJzp0ZWFtSWQvYWN0aXZpdGllcy86YWN0aXZpdHlJZC9pbnZpdGVzLzphY3Rpdml0eUludml0ZUlkL3Jlc2VuZC1pbnZpdGUvJztcbmNvbnN0IFRFQU1fQUNUSVZJVFlfTkVXX1BBVEggPSAnOnRlYW1JZC9hY3Rpdml0aWVzL25ldy8nO1xuY29uc3QgVEVBTV9BQ1RJVklUWV9QQVJUSUNJUEFOVFNfUEFUSCA9ICc6dGVhbUlkL2FjdGl2aXRpZXMvOmFjdGl2aXR5SWQvcGFydGljaXBhbnRzLyc7XG5jb25zdCBURUFNX0FDVElWSVRZX1BBVEggPSAnOnRlYW1JZC9hY3Rpdml0aWVzLzppZC8nO1xuY29uc3QgVEVBTV9BQ1RJVklUWV9RUl9DT0RFX1BBVEggPSAnOnRlYW1JZC9hY3Rpdml0aWVzLzppZC9xci1jb2RlLyc7XG5jb25zdCBURUFNX0FDVElWSVRZX1FVRVNUSU9OX1BBVEggPSAnOnRlYW1JZC9hY3Rpdml0aWVzL3F1ZXN0aW9ucy86aWQvJztcbmNvbnN0IFRFQU1fQUNUSVZJVFlfUVVFU1RJT05TX1BBVEggPSAnOnRlYW1JZC9hY3Rpdml0aWVzL3F1ZXN0aW9ucy8nO1xuY29uc3QgVEVBTV9BQ1RJVklUWV9SVUxFX1RFQU1TX1BBVEggPSAnOnRlYW1JZC9hY3Rpdml0aWVzL3RlYW1zLyc7XG5jb25zdCBURUFNX0FDVElWSVRZX1NFVFRJTkdTX1BBVEggPSAnOnRlYW1JZC9hY3Rpdml0aWVzL3NldHRpbmdzLyc7XG5jb25zdCBURUFNX0FDVElWSVRZX1RZUEVTX1BBVEggPSAnOnRlYW1JZC9hY3Rpdml0aWVzL3R5cGVzLyc7XG5jb25zdCBURUFNX0FDVElWSVRZX0xPQ0FUSU9OU19QQVRIID0gJzp0ZWFtSWQvYWN0aXZpdGllcy9sb2NhdGlvbnMvJztcbmNvbnN0IFRFQU1fQ0FMRU5EQVJfUEFUSCA9ICc6dGVhbUlkL2FjdGl2aXRpZXMvY2FsZW5kYXIvJztcblxuY29uc3QgTUVNQkVSX0FDVElWSVRZX0FUVEVOREFOQ0VfUEFUSCA9ICc6bWVtYmVySWQvYWN0aXZpdGllcy9hY3Rpdml0eS86YWN0aXZpdHlJZC9hdHRlbmRhbmNlLyc7XG5jb25zdCBNRU1CRVJfQUNUSVZJVFlfSU5WSVRFX1BBVEggPSAnOm1lbWJlcklkL2FjdGl2aXRpZXMvOmFjdGl2aXR5SW52aXRlSWQvJztcbmNvbnN0IE1FTUJFUl9BQ1RJVklUWV9QQVRIID0gJzptZW1iZXJJZC9hY3Rpdml0aWVzL2FjdGl2aXR5LzphY3Rpdml0eUlkLyc7XG5jb25zdCBNRU1CRVJfQUNUSVZJVFlfSU5WSVRFU19QQVRIID0gJzptZW1iZXJJZC9hY3Rpdml0aWVzLyc7XG5jb25zdCBNRU1CRVJfQ0FMRU5EQVJfUEFUSCA9ICc6bWVtYmVySWQvYWN0aXZpdGllcy9jYWxlbmRhci8nO1xuY29uc3QgTUVNQkVSX09QRU5fQUNUSVZJVElFU19QQVRIID0gJzptZW1iZXJJZC9vcGVuLWFjdGl2aXRpZXMvJztcbmNvbnN0IE1FTUJFUl9PUEVOX0FDVElWSVRJRVNfQUNUSVZJVFlfVFlQRVNfUEFUSCA9ICc6bWVtYmVySWQvb3Blbi1hY3Rpdml0aWVzL3R5cGVzLyc7XG5jb25zdCBNRU1CRVJfT1BFTl9BQ1RJVklUSUVTX0FDVElWSVRZX0xPQ0FUSU9OU19QQVRIID0gJzptZW1iZXJJZC9vcGVuLWFjdGl2aXRpZXMvbG9jYXRpb25zLyc7XG5jb25zdCBNRU1CRVJfT1BFTl9BQ1RJVklUWV9QQVRIID0gJzptZW1iZXJJZC9vcGVuLWFjdGl2aXRpZXMvOmFjdGl2aXR5SWQvJztcbmNvbnN0IE1FTUJFUl9PUEVOX0FDVElWSVRZX1JFU1BPTkRfUEFUSCA9ICc6bWVtYmVySWQvb3Blbi1hY3Rpdml0aWVzLzphY3Rpdml0eUlkL3Jlc3BvbmQvJztcbmNvbnN0IE1FTUJFUl9PUEVOX0FDVElWSVRZX1JFU1BPTkRfV0lUSF9EQVRBX1BBVEggPSAnOm1lbWJlcklkL29wZW4tYWN0aXZpdGllcy86YWN0aXZpdHlJZC9yZXNwb25kLWRhdGEvJztcbmNvbnN0IE1FTUJFUl9BQ1RJVklUWV9TRVRUSU5HU19QQVRIID0gJzptZW1iZXJJZC9hY3Rpdml0aWVzL3NldHRpbmdzLyc7XG5jb25zdCBNRU1CRVJfQUNUSVZJVFlfVFlQRVNfUEFUSCA9ICc6bWVtYmVySWQvYWN0aXZpdGllcy90eXBlcy8nO1xuY29uc3QgTUVNQkVSX0FDVElWSVRZX0xPQ0FUSU9OU19QQVRIID0gJzptZW1iZXJJZC9hY3Rpdml0aWVzL2xvY2F0aW9ucy8nO1xuXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEFjdGl2aXR5U2VydmljZSB7XG4gIGFjdGl2aXR5TG9jYXRpb25Db2xsZWN0aW9uOiBDb2xsZWN0aW9uPEFjdGl2aXR5TG9jYXRpb24+IHwgdW5kZWZpbmVkO1xuXG4gIGFjdGl2aXR5TG9jYXRpb25SZXNwb25zZURhdGU6IERhdGUgfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhcGlTZXJ2aWNlOiBBcGlTZXJ2aWNlKSB7XG4gIH1cblxuICBhZGRUZWFtQWN0aXZpdHlJbnZpdGVzKHRlYW1JZDogc3RyaW5nLCBhY3Rpdml0eUlkOiBzdHJpbmcsIG1lbWJlcklkczogQXJyYXk8c3RyaW5nPikge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5wb3N0UmVzb3VyY2UoXG4gICAgICAgICgpID0+IHRydWUsXG4gICAgICAgIFJvbGUuVGVhbUFkbWluLFxuICAgICAgICBURUFNX0FDVElWSVRZX0lOVklURVNfUEFUSCxcbiAgICAgICAge1xuICAgICAgICAgIHRlYW1JZCxcbiAgICAgICAgICBhY3Rpdml0eUlkXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtZW1iZXJzOiBtZW1iZXJJZHNcbiAgICAgICAgfVxuICAgICAgKVxuICB9XG5cbiAgY3JlYXRlVGVhbUFjdGl2aXR5KHRlYW1JZDogc3RyaW5nLCBkYXRhOiBQYXJ0aWFsPEFjdGl2aXR5Pikge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5wb3N0UmVzb3VyY2UoXG4gICAgICAgIGFjdGl2aXR5RmFjdG9yeSxcbiAgICAgICAgUm9sZS5UZWFtQWRtaW4sXG4gICAgICAgIFRFQU1fQUNUSVZJVElFU19QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgdGVhbUlkXG4gICAgICAgIH0sXG4gICAgICAgIHRoaXMucmVtb3ZlVW51c2VkQWN0aXZpdHlGaWVsZHMoey4uLmRhdGF9KVxuICAgICAgKVxuICB9XG5cbiAgY3JlYXRlVGVhbUFjdGl2aXR5UXVlc3Rpb24odGVhbUlkOiBzdHJpbmcsIHF1ZXN0aW9uOiBQYXJ0aWFsPEFjdGl2aXR5UXVlc3Rpb24+KSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLnBvc3RSZXNvdXJjZShcbiAgICAgICAgYWN0aXZpdHlRdWVzdGlvbkZhY3RvcnksXG4gICAgICAgIFJvbGUuVGVhbUFkbWluLFxuICAgICAgICBURUFNX0FDVElWSVRZX1FVRVNUSU9OU19QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgdGVhbUlkXG4gICAgICAgIH0sXG4gICAgICAgIHRoaXMucmVtb3ZlVW51c2VkQWN0aXZpdHlRdWVzdGlvbkZpZWxkcyh7Li4ucXVlc3Rpb259KVxuICAgICAgKVxuICB9XG5cbiAgZGVsZXRlVGVhbUFjdGl2aXR5KHRlYW1JZDogc3RyaW5nLCBpZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmRlbGV0ZVJlc291cmNlKFxuICAgICAgICBSb2xlLlRlYW1BZG1pbixcbiAgICAgICAgVEVBTV9BQ1RJVklUWV9QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgdGVhbUlkLFxuICAgICAgICAgIGlkXG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cblxuICBkZWxldGVUZWFtQWN0aXZpdHlJbnZpdGUodGVhbUlkOiBzdHJpbmcsIGFjdGl2aXR5SWQ6IHN0cmluZywgYWN0aXZpdHlJbnZpdGVJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmRlbGV0ZVJlc291cmNlKFxuICAgICAgICBSb2xlLlRlYW1BZG1pbixcbiAgICAgICAgVEVBTV9BQ1RJVklUWV9JTlZJVEVfUEFUSCxcbiAgICAgICAge1xuICAgICAgICAgIHRlYW1JZCxcbiAgICAgICAgICBhY3Rpdml0eUlkLFxuICAgICAgICAgIGFjdGl2aXR5SW52aXRlSWRcbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIGRlbGV0ZVRlYW1BY3Rpdml0eVF1ZXN0aW9uKHRlYW1JZDogc3RyaW5nLCBpZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmRlbGV0ZVJlc291cmNlKFxuICAgICAgICBSb2xlLlRlYW1BZG1pbixcbiAgICAgICAgVEVBTV9BQ1RJVklUWV9RVUVTVElPTl9QQVRILFxuICAgICAgICB7dGVhbUlkLCBpZH1cbiAgICAgICk7XG4gIH1cblxuICBnZXRNZW1iZXJBY3Rpdml0eShtZW1iZXJJZDogc3RyaW5nLCBhY3Rpdml0eUlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0UmVzb3VyY2UoXG4gICAgICAgIGFjdGl2aXR5RmFjdG9yeSxcbiAgICAgICAgUm9sZS5NZW1iZXJBZG1pbixcbiAgICAgICAgTUVNQkVSX0FDVElWSVRZX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICBtZW1iZXJJZCxcbiAgICAgICAgICBhY3Rpdml0eUlkXG4gICAgICAgIH1cbiAgICAgIClcbiAgfVxuXG4gIGdldE1lbWJlckFjdGl2aXR5SW52aXRlKG1lbWJlcklkOiBzdHJpbmcsIGFjdGl2aXR5SW52aXRlSWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRSZXNvdXJjZShcbiAgICAgICAgYWN0aXZpdHlJbnZpdGVGYWN0b3J5LFxuICAgICAgICBSb2xlLk1lbWJlckFkbWluLFxuICAgICAgICBNRU1CRVJfQUNUSVZJVFlfSU5WSVRFX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICBtZW1iZXJJZCxcbiAgICAgICAgICBhY3Rpdml0eUludml0ZUlkXG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cblxuICBnZXRNZW1iZXJBY3Rpdml0eUludml0ZXMobWVtYmVySWQ6IHN0cmluZykge1xuICAgIGNvbnN0IHBhcmFtczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtsaW1pdDogJ251bGwnLCBvcGVuX2FjdGl2aXR5OiAndHJ1ZSd9O1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldENvbGxlY3Rpb24oXG4gICAgICAgIGFjdGl2aXR5SW52aXRlRmFjdG9yeSxcbiAgICAgICAgUm9sZS5NZW1iZXJBZG1pbixcbiAgICAgICAgTUVNQkVSX0FDVElWSVRZX0lOVklURVNfUEFUSCxcbiAgICAgICAge21lbWJlcklkfSxcbiAgICAgICAge1xuICAgICAgICAgIHBhcmFtc1xuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgZ2V0TWVtYmVyQ2FsZW5kYXJFdmVudHMobWVtYmVySWQ6IHN0cmluZywgc3RhcnREYXRlOiBzdHJpbmcgfCBudWxsID0gbnVsbCwgZW5kRGF0ZTogc3RyaW5nIHwgbnVsbCA9IG51bGwsIG9wZW5BY3Rpdml0eTogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgY29uc3QgcGFyYW1zOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge2xpbWl0OiAnbnVsbCd9O1xuXG4gICAgaWYgKHN0YXJ0RGF0ZSkge1xuICAgICAgcGFyYW1zWydzZWFyY2hfc3RhcnRfZGF5J10gPSBzdGFydERhdGU7XG4gICAgfVxuXG4gICAgaWYgKGVuZERhdGUpIHtcbiAgICAgIHBhcmFtc1snc2VhcmNoX2VuZF9kYXknXSA9IGVuZERhdGU7XG4gICAgfVxuXG4gICAgaWYgKG9wZW5BY3Rpdml0eSkge1xuICAgICAgcGFyYW1zWydvcGVuX2FjdGl2aXR5J10gPSAndHJ1ZSc7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldENvbGxlY3Rpb24oXG4gICAgICAgIGV2ZW50RmFjdG9yeSxcbiAgICAgICAgUm9sZS5NZW1iZXJBZG1pbixcbiAgICAgICAgTUVNQkVSX0NBTEVOREFSX1BBVEgsXG4gICAgICAgIHttZW1iZXJJZH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwYXJhbXNcbiAgICAgICAgfVxuICAgICAgKVxuICB9XG5cbiAgZ2V0TWVtYmVyT3BlbkFjdGl2aXRpZXMobWVtYmVySWQ6IHN0cmluZywgb3BlbkFjdGl2aXR5U2VhcmNoUGFyYW1zOiBPcGVuQWN0aXZpdHlTZWFyY2hQYXJhbXNJbnRlcmZhY2UpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0Q29sbGVjdGlvbihcbiAgICAgICAgb3BlbkFjdGl2aXR5RmFjdG9yeSxcbiAgICAgICAgUm9sZS5NZW1iZXJBZG1pbixcbiAgICAgICAgTUVNQkVSX09QRU5fQUNUSVZJVElFU19QQVRILFxuICAgICAgICB7bWVtYmVySWR9LFxuICAgICAgICB7XG4gICAgICAgICAgcGFyYW1zOiB0aGlzLmdldE9wZW5BY3Rpdml0eVNlYXJjaFBhcmFtcyhvcGVuQWN0aXZpdHlTZWFyY2hQYXJhbXMpXG4gICAgICAgIH1cbiAgICAgIClcbiAgfVxuXG4gIGdldE1lbWJlck9wZW5BY3Rpdml0eShtZW1iZXJJZDogc3RyaW5nLCBhY3Rpdml0eUlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0UmVzb3VyY2UoXG4gICAgICAgIG9wZW5BY3Rpdml0eUZhY3RvcnksXG4gICAgICAgIFJvbGUuTWVtYmVyQWRtaW4sXG4gICAgICAgIE1FTUJFUl9PUEVOX0FDVElWSVRZX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICBtZW1iZXJJZCxcbiAgICAgICAgICBhY3Rpdml0eUlkXG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cblxuICBnZXRNZW1iZXJPcGVuQWN0aXZpdHlBY3Rpdml0eVR5cGVzKG1lbWJlcklkOiBzdHJpbmcsIHN0YXJ0RGF0ZTogc3RyaW5nIHwgbnVsbCA9IG51bGwsIGVuZERhdGU6IHN0cmluZyB8IG51bGwgPSBudWxsLCBhbGw6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRDb2xsZWN0aW9uKFxuICAgICAgICBhY3Rpdml0eVR5cGVGYWN0b3J5LFxuICAgICAgICBSb2xlLk1lbWJlckFkbWluLFxuICAgICAgICBNRU1CRVJfT1BFTl9BQ1RJVklUSUVTX0FDVElWSVRZX1RZUEVTX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICBtZW1iZXJJZFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICAuLi50aGlzLmdldE9wZW5BY3Rpdml0eURhdGVQYXJhbXMoc3RhcnREYXRlLCBlbmREYXRlLCBhbGwpLFxuICAgICAgICAgICAgbGltaXQ6ICdudWxsJ1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgKVxuICB9XG5cbiAgZ2V0TWVtYmVyT3BlbkFjdGl2aXR5TG9jYXRpb25zKG1lbWJlcklkOiBzdHJpbmcsIHN0YXJ0RGF0ZTogc3RyaW5nIHwgbnVsbCA9IG51bGwsIGVuZERhdGU6IHN0cmluZyB8IG51bGwgPSBudWxsLCBhbGw6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRDb2xsZWN0aW9uKFxuICAgICAgICBhY3Rpdml0eUxvY2F0aW9uRmFjdG9yeSxcbiAgICAgICAgUm9sZS5NZW1iZXJBZG1pbixcbiAgICAgICAgTUVNQkVSX09QRU5fQUNUSVZJVElFU19BQ1RJVklUWV9MT0NBVElPTlNfUEFUSCxcbiAgICAgICAge1xuICAgICAgICAgIG1lbWJlcklkXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAgIC4uLnRoaXMuZ2V0T3BlbkFjdGl2aXR5RGF0ZVBhcmFtcyhzdGFydERhdGUsIGVuZERhdGUsIGFsbCksXG4gICAgICAgICAgICBsaW1pdDogJ251bGwnXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICApXG4gIH1cblxuICBnZXRQdWJsaWNBY3Rpdml0eUludml0ZShpZDogc3RyaW5nLCB0b2tlbjogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldFJlc291cmNlKFxuICAgICAgICBhY3Rpdml0eUludml0ZUZhY3RvcnksXG4gICAgICAgIFJvbGUuUHVibGljLFxuICAgICAgICBQVUJMSUNfQUNUSVZJVFlfSU5WSVRFX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICBpZCxcbiAgICAgICAgICB0b2tlblxuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgZ2V0UHVibGljTWVtYmVyQWN0aXZpdHlJbnZpdGUoYWN0aXZpdHlJbnZpdGVJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldFJlc291cmNlKFxuICAgICAgICBhY3Rpdml0eUludml0ZUZhY3RvcnksXG4gICAgICAgIFJvbGUuUHVibGljLFxuICAgICAgICBQVUJMSUNfTUVNQkVSX0FDVElWSVRZX0lOVklURV9QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgYWN0aXZpdHlJbnZpdGVJZFxuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgZ2V0UHVibGljTWVtYmVyQWN0aXZpdGllcyhzdGFydERhdGU6IHN0cmluZywgZW5kRGF0ZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldENvbGxlY3Rpb24oXG4gICAgICAgIGV2ZW50RmFjdG9yeSxcbiAgICAgICAgUm9sZS5QdWJsaWMsXG4gICAgICAgIFBVQkxJQ19NRU1CRVJfQUNUSVZJVElFU19QQVRILFxuICAgICAgICB7fSxcbiAgICAgICAge1xuICAgICAgICAgIHBhcmFtczoge1xuICAgICAgICAgICAgc2VhcmNoX3N0YXJ0X2RheTogc3RhcnREYXRlLFxuICAgICAgICAgICAgc2VhcmNoX2VuZF9kYXk6IGVuZERhdGUsXG4gICAgICAgICAgICBsaW1pdDogJ251bGwnXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICApXG4gIH1cblxuICBnZXRQdWJsaWNNZW1iZXJBY3Rpdml0eShhY3Rpdml0eUlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0UmVzb3VyY2UoXG4gICAgICAgIGFjdGl2aXR5RmFjdG9yeSxcbiAgICAgICAgUm9sZS5QdWJsaWMsXG4gICAgICAgIFBVQkxJQ19NRU1CRVJfQUNUSVZJVFlfUEFUSCxcbiAgICAgICAge1xuICAgICAgICAgIGFjdGl2aXR5SWRcbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIGdldFRlYW1BY3Rpdml0eSh0ZWFtSWQ6IHN0cmluZywgaWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRSZXNvdXJjZShcbiAgICAgICAgYWN0aXZpdHlGYWN0b3J5LFxuICAgICAgICBSb2xlLlRlYW1BZG1pbixcbiAgICAgICAgVEVBTV9BQ1RJVklUWV9QQVRILFxuICAgICAgICB7dGVhbUlkLCBpZH1cbiAgICAgIClcbiAgfVxuXG4gIGdldFRlYW1BY3Rpdml0eVFSQ29kZSh0ZWFtSWQ6IHN0cmluZywgaWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRSZXNvdXJjZShcbiAgICAgICAgYWN0aXZpdHlGYWN0b3J5LFxuICAgICAgICBSb2xlLlRlYW1BZG1pbixcbiAgICAgICAgVEVBTV9BQ1RJVklUWV9RUl9DT0RFX1BBVEgsXG4gICAgICAgIHt0ZWFtSWQsIGlkfVxuICAgICAgKVxuICB9XG5cbiAgZ2V0VGVhbUFjdGl2aXR5UXVlc3Rpb24odGVhbUlkOiBzdHJpbmcsIGlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0UmVzb3VyY2UoXG4gICAgICAgIGFjdGl2aXR5UXVlc3Rpb25GYWN0b3J5LFxuICAgICAgICBSb2xlLlRlYW1BZG1pbixcbiAgICAgICAgVEVBTV9BQ1RJVklUWV9RVUVTVElPTl9QQVRILFxuICAgICAgICB7dGVhbUlkLCBpZH1cbiAgICAgIClcbiAgfVxuXG4gIGdldFRlYW1BY3Rpdml0eVF1ZXN0aW9ucyh0ZWFtSWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRDb2xsZWN0aW9uKFxuICAgICAgICBhY3Rpdml0eVF1ZXN0aW9uRmFjdG9yeSxcbiAgICAgICAgUm9sZS5UZWFtQWRtaW4sXG4gICAgICAgIFRFQU1fQUNUSVZJVFlfUVVFU1RJT05TX1BBVEgsXG4gICAgICAgIHt0ZWFtSWR9LFxuICAgICAgICB7cGFyYW1zOiB7bGltaXQ6ICdudWxsJ319XG4gICAgICApXG4gIH1cblxuICBnZXRBY3Rpdml0eUxvY2F0aW9ucyhyb2xlOiBSb2xlLCBpdGVtSWQ6IHN0cmluZywgZm9yY2U6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIHN3aXRjaCAocm9sZSkge1xuICAgICAgY2FzZSBSb2xlLkNsdWJBZG1pbjpcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Q2x1YkFjdGl2aXR5TG9jYXRpb25zKGl0ZW1JZCwgZm9yY2UpO1xuICAgICAgY2FzZSBSb2xlLlNlY3Rpb25BZG1pbjpcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U2VjdGlvbkFjdGl2aXR5TG9jYXRpb25zKGl0ZW1JZCwgZm9yY2UpO1xuICAgICAgY2FzZSBSb2xlLlRlYW1BZG1pbjpcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VGVhbUFjdGl2aXR5TG9jYXRpb25zKGl0ZW1JZCwgZm9yY2UpO1xuICAgICAgY2FzZSBSb2xlLk1lbWJlckFkbWluOlxuICAgICAgICByZXR1cm4gdGhpcy5nZXRNZW1iZXJBY3Rpdml0eUxvY2F0aW9ucyhpdGVtSWQsIGZvcmNlKVxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgaW52YWxpZFJvbGVFcnJvcjtcbiAgICB9XG4gIH1cblxuICBnZXRUZWFtQWN0aXZpdHlMb2NhdGlvbnModGVhbUlkOiBzdHJpbmcsIGZvcmNlOiBib29sZWFuID0gZmFsc2UpIHtcbiAgICBpZiAodGhpcy5hY3Rpdml0eUxvY2F0aW9uUmVzcG9uc2VEYXRlICYmIHRoaXMuYWN0aXZpdHlMb2NhdGlvblJlc3BvbnNlRGF0ZSA+IHN1YihuZXcgRGF0ZSgpLCB7aG91cnM6IDF9KSAmJiAhZm9yY2UpIHtcbiAgICAgIHJldHVybiBvZih0aGlzLmFjdGl2aXR5TG9jYXRpb25Db2xsZWN0aW9uIGFzIENvbGxlY3Rpb248QWN0aXZpdHlMb2NhdGlvbj4pO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRDb2xsZWN0aW9uKFxuICAgICAgICBhY3Rpdml0eUxvY2F0aW9uRmFjdG9yeSxcbiAgICAgICAgUm9sZS5UZWFtQWRtaW4sXG4gICAgICAgIFRFQU1fQUNUSVZJVFlfTE9DQVRJT05TX1BBVEgsXG4gICAgICAgIHt0ZWFtSWR9LFxuICAgICAgICB7cGFyYW1zOiB7bGltaXQ6ICdudWxsJ319XG4gICAgICApLnBpcGUoXG4gICAgICAgIHRhcCgoYWN0aXZpdHlMb2NhdGlvbkNvbGxlY3Rpb246IENvbGxlY3Rpb248QWN0aXZpdHlMb2NhdGlvbj4pID0+IHtcbiAgICAgICAgICB0aGlzLmFjdGl2aXR5TG9jYXRpb25SZXNwb25zZURhdGUgPSBuZXcgRGF0ZSgpO1xuICAgICAgICAgIHRoaXMuYWN0aXZpdHlMb2NhdGlvbkNvbGxlY3Rpb24gPSBhY3Rpdml0eUxvY2F0aW9uQ29sbGVjdGlvbjtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICBnZXRNZW1iZXJBY3Rpdml0eUxvY2F0aW9ucyhtZW1iZXJJZDogc3RyaW5nLCBmb3JjZTogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgaWYgKHRoaXMuYWN0aXZpdHlMb2NhdGlvblJlc3BvbnNlRGF0ZSAmJiB0aGlzLmFjdGl2aXR5TG9jYXRpb25SZXNwb25zZURhdGUgPiBzdWIobmV3IERhdGUoKSwge2hvdXJzOiAxfSkgJiYgIWZvcmNlKSB7XG4gICAgICByZXR1cm4gb2YodGhpcy5hY3Rpdml0eUxvY2F0aW9uQ29sbGVjdGlvbiBhcyBDb2xsZWN0aW9uPEFjdGl2aXR5TG9jYXRpb24+KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0Q29sbGVjdGlvbihcbiAgICAgICAgYWN0aXZpdHlMb2NhdGlvbkZhY3RvcnksXG4gICAgICAgIFJvbGUuTWVtYmVyQWRtaW4sXG4gICAgICAgIE1FTUJFUl9BQ1RJVklUWV9MT0NBVElPTlNfUEFUSCxcbiAgICAgICAge21lbWJlcklkfSxcbiAgICAgICAge3BhcmFtczoge2xpbWl0OiAnbnVsbCd9fVxuICAgICAgKS5waXBlKFxuICAgICAgICB0YXAoKGFjdGl2aXR5TG9jYXRpb25Db2xsZWN0aW9uOiBDb2xsZWN0aW9uPEFjdGl2aXR5TG9jYXRpb24+KSA9PiB7XG4gICAgICAgICAgdGhpcy5hY3Rpdml0eUxvY2F0aW9uUmVzcG9uc2VEYXRlID0gbmV3IERhdGUoKTtcbiAgICAgICAgICB0aGlzLmFjdGl2aXR5TG9jYXRpb25Db2xsZWN0aW9uID0gYWN0aXZpdHlMb2NhdGlvbkNvbGxlY3Rpb247XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgZ2V0Q2x1YkFjdGl2aXR5TG9jYXRpb25zKGNsdWJJZDogc3RyaW5nLCBmb3JjZTogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgaWYgKHRoaXMuYWN0aXZpdHlMb2NhdGlvblJlc3BvbnNlRGF0ZSAmJiB0aGlzLmFjdGl2aXR5TG9jYXRpb25SZXNwb25zZURhdGUgPiBzdWIobmV3IERhdGUoKSwge2hvdXJzOiAxfSkgJiYgIWZvcmNlKSB7XG4gICAgICByZXR1cm4gb2YodGhpcy5hY3Rpdml0eUxvY2F0aW9uQ29sbGVjdGlvbiBhcyBDb2xsZWN0aW9uPEFjdGl2aXR5TG9jYXRpb24+KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0Q29sbGVjdGlvbihcbiAgICAgICAgYWN0aXZpdHlMb2NhdGlvbkZhY3RvcnksXG4gICAgICAgIFJvbGUuQ2x1YkFkbWluLFxuICAgICAgICBDTFVCX0FDVElWSVRZX0xPQ0FUSU9OU19QQVRILFxuICAgICAgICB7Y2x1YklkfSxcbiAgICAgICAge3BhcmFtczoge2xpbWl0OiAnbnVsbCd9fVxuICAgICAgKS5waXBlKFxuICAgICAgICB0YXAoKGFjdGl2aXR5TG9jYXRpb25Db2xsZWN0aW9uOiBDb2xsZWN0aW9uPEFjdGl2aXR5TG9jYXRpb24+KSA9PiB7XG4gICAgICAgICAgdGhpcy5hY3Rpdml0eUxvY2F0aW9uUmVzcG9uc2VEYXRlID0gbmV3IERhdGUoKTtcbiAgICAgICAgICB0aGlzLmFjdGl2aXR5TG9jYXRpb25Db2xsZWN0aW9uID0gYWN0aXZpdHlMb2NhdGlvbkNvbGxlY3Rpb247XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgZ2V0U2VjdGlvbkFjdGl2aXR5TG9jYXRpb25zKHNlY3Rpb25JZDogc3RyaW5nLCBmb3JjZTogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgaWYgKHRoaXMuYWN0aXZpdHlMb2NhdGlvblJlc3BvbnNlRGF0ZSAmJiB0aGlzLmFjdGl2aXR5TG9jYXRpb25SZXNwb25zZURhdGUgPiBzdWIobmV3IERhdGUoKSwge2hvdXJzOiAxfSkgJiYgIWZvcmNlKSB7XG4gICAgICByZXR1cm4gb2YodGhpcy5hY3Rpdml0eUxvY2F0aW9uQ29sbGVjdGlvbiBhcyBDb2xsZWN0aW9uPEFjdGl2aXR5TG9jYXRpb24+KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0Q29sbGVjdGlvbihcbiAgICAgICAgYWN0aXZpdHlMb2NhdGlvbkZhY3RvcnksXG4gICAgICAgIFJvbGUuU2VjdGlvbkFkbWluLFxuICAgICAgICBTRUNUSU9OX0FDVElWSVRZX0xPQ0FUSU9OU19QQVRILFxuICAgICAgICB7c2VjdGlvbklkfSxcbiAgICAgICAge3BhcmFtczoge2xpbWl0OiAnbnVsbCd9fVxuICAgICAgKS5waXBlKFxuICAgICAgICB0YXAoKGFjdGl2aXR5TG9jYXRpb25Db2xsZWN0aW9uOiBDb2xsZWN0aW9uPEFjdGl2aXR5TG9jYXRpb24+KSA9PiB7XG4gICAgICAgICAgdGhpcy5hY3Rpdml0eUxvY2F0aW9uUmVzcG9uc2VEYXRlID0gbmV3IERhdGUoKTtcbiAgICAgICAgICB0aGlzLmFjdGl2aXR5TG9jYXRpb25Db2xsZWN0aW9uID0gYWN0aXZpdHlMb2NhdGlvbkNvbGxlY3Rpb247XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgdXBkYXRlQWN0aXZpdHlMb2NhdGlvbihyb2xlOiBSb2xlLCBjbHViT3JTZWN0aW9uT3JUZWFtSWQ6IHN0cmluZywgbG9jYXRpb246IEFjdGl2aXR5TG9jYXRpb24pIHtcbiAgICBzd2l0Y2ggKHJvbGUpIHtcbiAgICAgIGNhc2UgUm9sZS5DbHViQWRtaW46XG4gICAgICAgIHJldHVybiB0aGlzLnVwZGF0ZUNsdWJBY3Rpdml0eUxvY2F0aW9uKGNsdWJPclNlY3Rpb25PclRlYW1JZCwgbG9jYXRpb24pO1xuICAgICAgY2FzZSBSb2xlLlNlY3Rpb25BZG1pbjpcbiAgICAgICAgcmV0dXJuIHRoaXMudXBkYXRlU2VjdGlvbkFjdGl2aXR5TG9jYXRpb24oY2x1Yk9yU2VjdGlvbk9yVGVhbUlkLCBsb2NhdGlvbik7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBpbnZhbGlkUm9sZUVycm9yO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZUNsdWJBY3Rpdml0eUxvY2F0aW9uKGNsdWJJZDogc3RyaW5nLCBsb2NhdGlvbjogQWN0aXZpdHlMb2NhdGlvbikge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC51cGRhdGVSZXNvdXJjZShcbiAgICAgICAgYWN0aXZpdHlMb2NhdGlvbkZhY3RvcnksXG4gICAgICAgIFJvbGUuQ2x1YkFkbWluLFxuICAgICAgICBDTFVCX0FDVElWSVRZX0xPQ0FUSU9OX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICBjbHViSWQsXG4gICAgICAgICAgbG9jYXRpb25JZDogbG9jYXRpb24uaWRcbiAgICAgICAgfSxcbiAgICAgICAgbG9jYXRpb25cbiAgICAgICk7XG4gIH1cblxuICB1cGRhdGVNZW1iZXJBY3Rpdml0eUF0dGVuZGFuY2UobWVtYmVySWQ6IHN0cmluZywgYWN0aXZpdHlJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLnBvc3RSZXNvdXJjZU5vUmVzcG9uc2UoXG4gICAgICAgIFJvbGUuTWVtYmVyQWRtaW4sXG4gICAgICAgIE1FTUJFUl9BQ1RJVklUWV9BVFRFTkRBTkNFX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICBtZW1iZXJJZCxcbiAgICAgICAgICBhY3Rpdml0eUlkXG4gICAgICAgIH0sXG4gICAgICAgIHt9XG4gICAgICApO1xuICB9XG5cbiAgdXBkYXRlU2VjdGlvbkFjdGl2aXR5TG9jYXRpb24oc2VjdGlvbklkOiBzdHJpbmcsIGxvY2F0aW9uOiBBY3Rpdml0eUxvY2F0aW9uKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLnVwZGF0ZVJlc291cmNlKFxuICAgICAgICBhY3Rpdml0eUxvY2F0aW9uRmFjdG9yeSxcbiAgICAgICAgUm9sZS5TZWN0aW9uQWRtaW4sXG4gICAgICAgIFNFQ1RJT05fQUNUSVZJVFlfTE9DQVRJT05fUEFUSCxcbiAgICAgICAge1xuICAgICAgICAgIHNlY3Rpb25JZCxcbiAgICAgICAgICBsb2NhdGlvbklkOiBsb2NhdGlvbi5pZFxuICAgICAgICB9LFxuICAgICAgICBsb2NhdGlvblxuICAgICAgKTtcbiAgfVxuXG4gIGdldFRlYW1BY3Rpdml0eU5ldyh0ZWFtSWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRSZXNvdXJjZShcbiAgICAgICAgYWN0aXZpdHlGYWN0b3J5LFxuICAgICAgICBSb2xlLlRlYW1BZG1pbixcbiAgICAgICAgVEVBTV9BQ1RJVklUWV9ORVdfUEFUSCxcbiAgICAgICAge3RlYW1JZH1cbiAgICAgICk7XG4gIH1cblxuICBnZXRUZWFtQWN0aXZpdHlQYXJ0aWNpcGFudHModGVhbUlkOiBzdHJpbmcsIGFjdGl2aXR5SWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRDb2xsZWN0aW9uKFxuICAgICAgICBzZWFyY2hNZW1iZXJGYWN0b3J5LFxuICAgICAgICBSb2xlLlRlYW1BZG1pbixcbiAgICAgICAgVEVBTV9BQ1RJVklUWV9QQVJUSUNJUEFOVFNfUEFUSCxcbiAgICAgICAge1xuICAgICAgICAgIHRlYW1JZCxcbiAgICAgICAgICBhY3Rpdml0eUlkXG4gICAgICAgIH0sXG4gICAgICAgIHtwYXJhbXM6IHtsaW1pdDogJ251bGwnfX1cbiAgICAgICk7XG4gIH1cblxuICBnZXRBY3Rpdml0eVNldHRpbmdzKHJvbGU6IFJvbGUsIGl0ZW1JZDogc3RyaW5nKSB7XG4gICAgc3dpdGNoIChyb2xlKSB7XG4gICAgICBjYXNlIFJvbGUuQ2x1YkFkbWluOlxuICAgICAgICByZXR1cm4gdGhpcy5nZXRDbHViQWN0aXZpdHlTZXR0aW5ncyhpdGVtSWQpO1xuICAgICAgY2FzZSBSb2xlLlNlY3Rpb25BZG1pbjpcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U2VjdGlvbkFjdGl2aXR5U2V0dGluZ3MoaXRlbUlkKTtcbiAgICAgIGNhc2UgUm9sZS5UZWFtQWRtaW46XG4gICAgICAgIHJldHVybiB0aGlzLmdldFRlYW1BY3Rpdml0eVNldHRpbmdzKGl0ZW1JZCk7XG4gICAgICBjYXNlIFJvbGUuTWVtYmVyQWRtaW46XG4gICAgICAgIHJldHVybiB0aGlzLmdldE1lbWJlckFjdGl2aXR5U2V0dGluZ3MoaXRlbUlkKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IGludmFsaWRSb2xlRXJyb3I7XG4gICAgfVxuICB9XG5cbiAgZ2V0VGVhbUFjdGl2aXR5U2V0dGluZ3ModGVhbUlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0UmVzb3VyY2UoXG4gICAgICAgIGFjdGl2aXR5U2V0dGluZ3NGYWN0b3J5LFxuICAgICAgICBSb2xlLlRlYW1BZG1pbixcbiAgICAgICAgVEVBTV9BQ1RJVklUWV9TRVRUSU5HU19QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgdGVhbUlkXG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cblxuICBnZXRNZW1iZXJBY3Rpdml0eVNldHRpbmdzKG1lbWJlcklkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0UmVzb3VyY2UoXG4gICAgICAgIGFjdGl2aXR5U2V0dGluZ3NGYWN0b3J5LFxuICAgICAgICBSb2xlLk1lbWJlckFkbWluLFxuICAgICAgICBNRU1CRVJfQUNUSVZJVFlfU0VUVElOR1NfUEFUSCxcbiAgICAgICAge21lbWJlcklkfVxuICAgICAgKTtcbiAgfVxuXG4gIGdldFNlY3Rpb25BY3Rpdml0eVNldHRpbmdzKHNlY3Rpb25JZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldFJlc291cmNlKFxuICAgICAgICBhY3Rpdml0eVNldHRpbmdzRmFjdG9yeSxcbiAgICAgICAgUm9sZS5TZWN0aW9uQWRtaW4sXG4gICAgICAgIFNFQ1RJT05fQUNUSVZJVFlfU0VUVElOR1NfUEFUSCxcbiAgICAgICAge1xuICAgICAgICAgIHNlY3Rpb25JZFxuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgZ2V0Q2x1YkFjdGl2aXR5U2V0dGluZ3MoY2x1YklkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0UmVzb3VyY2UoXG4gICAgICAgIGFjdGl2aXR5U2V0dGluZ3NGYWN0b3J5LFxuICAgICAgICBSb2xlLkNsdWJBZG1pbixcbiAgICAgICAgQ0xVQl9BQ1RJVklUWV9TRVRUSU5HU19QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgY2x1YklkLFxuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgZ2V0QWN0aXZpdHlUeXBlcyhyb2xlOiBSb2xlLCBpdGVtSWQ6IHN0cmluZykge1xuICAgIHN3aXRjaCAocm9sZSkge1xuICAgICAgY2FzZSBSb2xlLkNsdWJBZG1pbjpcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Q2x1YkFjdGl2aXR5VHlwZXMoaXRlbUlkKTtcbiAgICAgIGNhc2UgUm9sZS5TZWN0aW9uQWRtaW46XG4gICAgICAgIHJldHVybiB0aGlzLmdldFNlY3Rpb25BY3Rpdml0eVR5cGVzKGl0ZW1JZCk7XG4gICAgICBjYXNlIFJvbGUuVGVhbUFkbWluOlxuICAgICAgICByZXR1cm4gdGhpcy5nZXRUZWFtQWN0aXZpdHlUeXBlcyhpdGVtSWQpO1xuICAgICAgY2FzZSBSb2xlLk1lbWJlckFkbWluOlxuICAgICAgICByZXR1cm4gdGhpcy5nZXRNZW1iZXJBY3Rpdml0eVR5cGVzKGl0ZW1JZCk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBpbnZhbGlkUm9sZUVycm9yO1xuICAgIH1cbiAgfVxuXG4gIGdldFRlYW1BY3Rpdml0eVJ1bGVzQXR0cmlidXRlcyh0ZWFtSWQ6IHN0cmluZywgcXVlcnlTdHJpbmc6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRDb2xsZWN0aW9uKFxuICAgICAgICBzZWFyY2hBdHRyaWJ1dGVGYWN0b3J5LFxuICAgICAgICBSb2xlLlRlYW1BZG1pbixcbiAgICAgICAgVEVBTV9BQ1RJVklUWV9SVUxFX0FUVFJJQlVURVNfUEFUSCxcbiAgICAgICAge3RlYW1JZH0sXG4gICAgICAgIHtwYXJhbXM6IHtxOiBxdWVyeVN0cmluZ319XG4gICAgICApXG4gIH1cblxuICBnZXRUZWFtQWN0aXZpdHlSdWxlVGVhbXModGVhbUlkOiBzdHJpbmcsIHF1ZXJ5U3RyaW5nOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0Q29sbGVjdGlvbihcbiAgICAgICAgc2VhcmNoVGVhbUZhY3RvcnksXG4gICAgICAgIFJvbGUuVGVhbUFkbWluLFxuICAgICAgICBURUFNX0FDVElWSVRZX1JVTEVfVEVBTVNfUEFUSCxcbiAgICAgICAge3RlYW1JZH0sXG4gICAgICAgIHtwYXJhbXM6IHtxOiBxdWVyeVN0cmluZ319XG4gICAgICApXG4gIH1cblxuICBnZXRUZWFtQWN0aXZpdHlUeXBlcyh0ZWFtSWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRDb2xsZWN0aW9uKFxuICAgICAgICBhY3Rpdml0eVR5cGVGYWN0b3J5LFxuICAgICAgICBSb2xlLlRlYW1BZG1pbixcbiAgICAgICAgVEVBTV9BQ1RJVklUWV9UWVBFU19QQVRILFxuICAgICAgICB7dGVhbUlkfSxcbiAgICAgICAge3BhcmFtczoge2xpbWl0OiAnbnVsbCd9fVxuICAgICAgKVxuICB9XG5cbiAgZ2V0TWVtYmVyQWN0aXZpdHlUeXBlcyhtZW1iZXJJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldENvbGxlY3Rpb24oXG4gICAgICAgIGFjdGl2aXR5VHlwZUZhY3RvcnksXG4gICAgICAgIFJvbGUuTWVtYmVyQWRtaW4sXG4gICAgICAgIE1FTUJFUl9BQ1RJVklUWV9UWVBFU19QQVRILFxuICAgICAgICB7bWVtYmVySWR9LFxuICAgICAgICB7cGFyYW1zOiB7bGltaXQ6ICdudWxsJ319XG4gICAgICApXG4gIH1cblxuICBnZXRDbHViQWN0aXZpdHlUeXBlcyhjbHViSWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRDb2xsZWN0aW9uKFxuICAgICAgICBhY3Rpdml0eVR5cGVGYWN0b3J5LFxuICAgICAgICBSb2xlLkNsdWJBZG1pbixcbiAgICAgICAgQ0xVQl9BQ1RJVklUWV9UWVBFU19QQVRILFxuICAgICAgICB7Y2x1YklkfSxcbiAgICAgICAge3BhcmFtczoge2xpbWl0OiAnbnVsbCd9fVxuICAgICAgKTtcbiAgfVxuXG4gIGdldFNlY3Rpb25BY3Rpdml0eVR5cGVzKHNlY3Rpb25JZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldENvbGxlY3Rpb24oXG4gICAgICAgIGFjdGl2aXR5VHlwZUZhY3RvcnksXG4gICAgICAgIFJvbGUuU2VjdGlvbkFkbWluLFxuICAgICAgICBTRUNUSU9OX0FDVElWSVRZX1RZUEVTX1BBVEgsXG4gICAgICAgIHtzZWN0aW9uSWR9LFxuICAgICAgICB7cGFyYW1zOiB7bGltaXQ6ICdudWxsJ319XG4gICAgICApO1xuICB9XG5cbiAgdXBkYXRlQWN0aXZpdHlUeXBlKHJvbGU6IFJvbGUsIGNsdWJPclNlY3Rpb25PclRlYW1JZDogc3RyaW5nLCBhY3Rpdml0eVR5cGU6IEFjdGl2aXR5VHlwZSkge1xuICAgIHN3aXRjaCAocm9sZSkge1xuICAgICAgY2FzZSBSb2xlLkNsdWJBZG1pbjpcbiAgICAgICAgcmV0dXJuIHRoaXMudXBkYXRlQ2x1YkFjdGl2aXR5VHlwZShjbHViT3JTZWN0aW9uT3JUZWFtSWQsIGFjdGl2aXR5VHlwZSk7XG4gICAgICBjYXNlIFJvbGUuU2VjdGlvbkFkbWluOlxuICAgICAgICByZXR1cm4gdGhpcy51cGRhdGVTZWN0aW9uQWN0aXZpdHlUeXBlKGNsdWJPclNlY3Rpb25PclRlYW1JZCwgYWN0aXZpdHlUeXBlKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IGludmFsaWRSb2xlRXJyb3I7XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlQ2x1YkFjdGl2aXR5VHlwZShjbHViSWQ6IHN0cmluZywgYWN0aXZpdHlUeXBlOiBBY3Rpdml0eVR5cGUpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAudXBkYXRlUmVzb3VyY2UoXG4gICAgICAgIGFjdGl2aXR5VHlwZUZhY3RvcnksXG4gICAgICAgIFJvbGUuQ2x1YkFkbWluLFxuICAgICAgICBDTFVCX0FDVElWSVRZX1RZUEVfUEFUSCxcbiAgICAgICAge1xuICAgICAgICAgIGNsdWJJZCxcbiAgICAgICAgICB0eXBlSWQ6IGFjdGl2aXR5VHlwZS5pZCxcbiAgICAgICAgfSxcbiAgICAgICAgYWN0aXZpdHlUeXBlLFxuICAgICAgKTtcbiAgfVxuXG4gIHVwZGF0ZVNlY3Rpb25BY3Rpdml0eVR5cGUoc2VjdGlvbklkOiBzdHJpbmcsIGFjdGl2aXR5VHlwZTogQWN0aXZpdHlUeXBlKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLnVwZGF0ZVJlc291cmNlKFxuICAgICAgICBhY3Rpdml0eVR5cGVGYWN0b3J5LFxuICAgICAgICBSb2xlLlNlY3Rpb25BZG1pbixcbiAgICAgICAgU0VDVElPTl9BQ1RJVklUWV9UWVBFX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICBzZWN0aW9uSWQsXG4gICAgICAgICAgdHlwZUlkOiBhY3Rpdml0eVR5cGUuaWQsXG4gICAgICAgIH0sXG4gICAgICAgIGFjdGl2aXR5VHlwZSxcbiAgICAgICk7XG4gIH1cblxuICBnZXRUZWFtQ2FsZW5kYXJFdmVudHModGVhbUlkOiBzdHJpbmcsIHN0YXJ0RGF0ZTogc3RyaW5nIHwgbnVsbCA9IG51bGwsIGVuZERhdGU6IHN0cmluZyB8IG51bGwgPSBudWxsLCBvcGVuQWN0aXZpdHk6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIGNvbnN0IHBhcmFtczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtsaW1pdDogJ251bGwnfTtcblxuICAgIGlmIChzdGFydERhdGUpIHtcbiAgICAgIHBhcmFtc1snc2VhcmNoX3N0YXJ0X2RheSddID0gc3RhcnREYXRlO1xuICAgIH1cblxuICAgIGlmIChlbmREYXRlKSB7XG4gICAgICBwYXJhbXNbJ3NlYXJjaF9lbmRfZGF5J10gPSBlbmREYXRlO1xuICAgIH1cblxuICAgIGlmIChvcGVuQWN0aXZpdHkpIHtcbiAgICAgIHBhcmFtc1snb3Blbl9hY3Rpdml0eSddID0gJ3RydWUnO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRDb2xsZWN0aW9uKFxuICAgICAgICBldmVudEZhY3RvcnksXG4gICAgICAgIFJvbGUuVGVhbUFkbWluLFxuICAgICAgICBURUFNX0NBTEVOREFSX1BBVEgsXG4gICAgICAgIHt0ZWFtSWR9LFxuICAgICAgICB7XG4gICAgICAgICAgcGFyYW1zXG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cblxuICByZXNlbmRJbnZpdGUodGVhbUlkOiBzdHJpbmcsIGFjdGl2aXR5SWQ6IHN0cmluZywgYWN0aXZpdHlJbnZpdGVJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLnBvc3RSZXNvdXJjZShcbiAgICAgICAgYWN0aXZpdHlJbnZpdGVGYWN0b3J5LFxuICAgICAgICBSb2xlLlRlYW1BZG1pbixcbiAgICAgICAgVEVBTV9BQ1RJVklUWV9JTlZJVEVfUkVTRU5EX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICB0ZWFtSWQsXG4gICAgICAgICAgYWN0aXZpdHlJZCxcbiAgICAgICAgICBhY3Rpdml0eUludml0ZUlkXG4gICAgICAgIH0sXG4gICAgICAgIHt9XG4gICAgICApO1xuICB9XG5cbiAgcmVtb3ZlTWVtYmVyT3BlbkFjdGl2aXR5KG1lbWJlcklkOiBzdHJpbmcsIGFjdGl2aXR5SWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5kZWxldGVSZXNvdXJjZShcbiAgICAgICAgUm9sZS5NZW1iZXJBZG1pbixcbiAgICAgICAgTUVNQkVSX09QRU5fQUNUSVZJVFlfUkVTUE9ORF9QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgbWVtYmVySWQsXG4gICAgICAgICAgYWN0aXZpdHlJZFxuICAgICAgICB9XG4gICAgICApXG4gIH1cblxuICByZW1vdmVQdWJsaWNPcGVuQWN0aXZpdHkoYWN0aXZpdHlJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmRlbGV0ZVJlc291cmNlKFxuICAgICAgICBSb2xlLlB1YmxpYyxcbiAgICAgICAgUFVCTElDX09QRU5fQUNUSVZJVFlfUkVTUE9ORF9QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgYWN0aXZpdHlJZFxuICAgICAgICB9XG4gICAgICApXG4gIH1cblxuICBzaWduVXBNZW1iZXJPcGVuQWN0aXZpdHkobWVtYmVySWQ6IHN0cmluZywgYWN0aXZpdHlJZDogc3RyaW5nLCBjb21tZW50OiBzdHJpbmcsIG9wdGlvbmFsRmVlczogQXJyYXk8c3RyaW5nPiwgcmVzcG9uc2VzOiBBcnJheTxBY3Rpdml0eVF1ZXN0aW9uUmVzcG9uc2U+KSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLnVwZGF0ZVJlc291cmNlKFxuICAgICAgICBvcGVuQWN0aXZpdHlGYWN0b3J5LFxuICAgICAgICBSb2xlLk1lbWJlckFkbWluLFxuICAgICAgICBNRU1CRVJfT1BFTl9BQ1RJVklUWV9SRVNQT05EX1dJVEhfREFUQV9QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgbWVtYmVySWQsXG4gICAgICAgICAgYWN0aXZpdHlJZFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgY29tbWVudCxcbiAgICAgICAgICBvcHRpb25hbF9mZWVzOiBvcHRpb25hbEZlZXMsXG4gICAgICAgICAgcmVzcG9uc2VzXG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cblxuICBzaWduVXBQdWJsaWNPcGVuQWN0aXZpdHkoYWN0aXZpdHlJZDogc3RyaW5nLCBjb21tZW50OiBzdHJpbmcsIG9wdGlvbmFsRmVlczogQXJyYXk8c3RyaW5nPiwgcmVzcG9uc2VzOiBBcnJheTxBY3Rpdml0eVF1ZXN0aW9uUmVzcG9uc2U+KSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLnVwZGF0ZVJlc291cmNlKFxuICAgICAgICBvcGVuQWN0aXZpdHlGYWN0b3J5LFxuICAgICAgICBSb2xlLlB1YmxpYyxcbiAgICAgICAgUFVCTElDX09QRU5fQUNUSVZJVFlfUkVTUE9ORF9XSVRIX0RBVEFfUEFUSCxcbiAgICAgICAge1xuICAgICAgICAgIGFjdGl2aXR5SWRcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGNvbW1lbnQsXG4gICAgICAgICAgb3B0aW9uYWxfZmVlczogb3B0aW9uYWxGZWVzLFxuICAgICAgICAgIHJlc3BvbnNlc1xuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgdXBkYXRlTWVtYmVyQWN0aXZpdHkobWVtYmVySWQ6IHN0cmluZywgYWN0aXZpdHlJbnZpdGVJZDogc3RyaW5nLCBhY3Rpdml0eUludml0ZTogdW5rbm93bikge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC51cGRhdGVSZXNvdXJjZShcbiAgICAgICAgYWN0aXZpdHlJbnZpdGVGYWN0b3J5LFxuICAgICAgICBSb2xlLk1lbWJlckFkbWluLFxuICAgICAgICBNRU1CRVJfQUNUSVZJVFlfSU5WSVRFX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICBtZW1iZXJJZCxcbiAgICAgICAgICBhY3Rpdml0eUludml0ZUlkXG4gICAgICAgIH0sXG4gICAgICAgIGFjdGl2aXR5SW52aXRlXG4gICAgICApO1xuICB9XG5cbiAgdXBkYXRlUHVibGljTWVtYmVyQWN0aXZpdHlJbnZpdGUoYWN0aXZpdHlJbnZpdGVJZDogc3RyaW5nLCBhY3Rpdml0eUludml0ZTogdW5rbm93bikge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC51cGRhdGVSZXNvdXJjZShcbiAgICAgICAgYWN0aXZpdHlJbnZpdGVGYWN0b3J5LFxuICAgICAgICBSb2xlLlB1YmxpYyxcbiAgICAgICAgUFVCTElDX01FTUJFUl9BQ1RJVklUWV9JTlZJVEVfUEFUSCxcbiAgICAgICAge1xuICAgICAgICAgIGFjdGl2aXR5SW52aXRlSWRcbiAgICAgICAgfSxcbiAgICAgICAgYWN0aXZpdHlJbnZpdGVcbiAgICAgICk7XG4gIH1cblxuICB1cGRhdGVQdWJsaWNBY3Rpdml0eUludml0ZShpZDogc3RyaW5nLCB0b2tlbjogc3RyaW5nLCBhY3Rpdml0eUludml0ZTogdW5rbm93bikge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC51cGRhdGVSZXNvdXJjZShcbiAgICAgICAgYWN0aXZpdHlJbnZpdGVGYWN0b3J5LFxuICAgICAgICBSb2xlLlB1YmxpYyxcbiAgICAgICAgUFVCTElDX0FDVElWSVRZX0lOVklURV9QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgaWQsXG4gICAgICAgICAgdG9rZW5cbiAgICAgICAgfSxcbiAgICAgICAgYWN0aXZpdHlJbnZpdGVcbiAgICAgICk7XG4gIH1cblxuICB1cGRhdGVQdWJsaWNPcGVuQWN0aXZpdHlJbnZpdGUoaWQ6IHN0cmluZywgYWN0aXZpdHlJbnZpdGU6IHVua25vd24pIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAudXBkYXRlUmVzb3VyY2UoXG4gICAgICAgIGFjdGl2aXR5SW52aXRlRmFjdG9yeSxcbiAgICAgICAgUm9sZS5QdWJsaWMsXG4gICAgICAgIFBVQkxJQ19PUEVOX0FDVElWSVRZX0lOVklURV9QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgaWRcbiAgICAgICAgfSxcbiAgICAgICAgYWN0aXZpdHlJbnZpdGVcbiAgICAgICk7XG4gIH1cblxuICB1cGRhdGVUZWFtQWN0aXZpdHkodGVhbUlkOiBzdHJpbmcsIGFjdGl2aXR5OiBBY3Rpdml0eSkge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC51cGRhdGVSZXNvdXJjZShcbiAgICAgICAgYWN0aXZpdHlGYWN0b3J5LFxuICAgICAgICBSb2xlLlRlYW1BZG1pbixcbiAgICAgICAgVEVBTV9BQ1RJVklUWV9QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgdGVhbUlkLFxuICAgICAgICAgIGlkOiBhY3Rpdml0eS5pZFxuICAgICAgICB9LFxuICAgICAgICB0aGlzLnJlbW92ZVVudXNlZEFjdGl2aXR5RmllbGRzKHsuLi5hY3Rpdml0eX0pXG4gICAgICApO1xuICB9XG5cbiAgdXBkYXRlVGVhbUFjdGl2aXR5UXVlc3Rpb24odGVhbUlkOiBzdHJpbmcsIHF1ZXN0aW9uOiBBY3Rpdml0eVF1ZXN0aW9uKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLnVwZGF0ZVJlc291cmNlKFxuICAgICAgICBhY3Rpdml0eVF1ZXN0aW9uRmFjdG9yeSxcbiAgICAgICAgUm9sZS5UZWFtQWRtaW4sXG4gICAgICAgIFRFQU1fQUNUSVZJVFlfUVVFU1RJT05fUEFUSCxcbiAgICAgICAge1xuICAgICAgICAgIHRlYW1JZCxcbiAgICAgICAgICBpZDogcXVlc3Rpb24uaWRcbiAgICAgICAgfSxcbiAgICAgICAgdGhpcy5yZW1vdmVVbnVzZWRBY3Rpdml0eVF1ZXN0aW9uRmllbGRzKHsuLi5xdWVzdGlvbn0pXG4gICAgICApXG4gIH1cblxuICB1cGRhdGVUZWFtQWN0aXZpdHlJbnZpdGUodGVhbUlkOiBzdHJpbmcsIGFjdGl2aXR5SWQ6IHN0cmluZywgYWN0aXZpdHlJbnZpdGVJZDogc3RyaW5nLCBhY3Rpdml0eUludml0ZTogTWVtYmVyQWN0aXZpdHlJbnZpdGUpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAudXBkYXRlUmVzb3VyY2UoXG4gICAgICAgIG1lbWJlckFjdGl2aXR5SW52aXRlRmFjdG9yeSxcbiAgICAgICAgUm9sZS5UZWFtQWRtaW4sXG4gICAgICAgIFRFQU1fQUNUSVZJVFlfSU5WSVRFX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICB0ZWFtSWQsXG4gICAgICAgICAgYWN0aXZpdHlJZCxcbiAgICAgICAgICBhY3Rpdml0eUludml0ZUlkXG4gICAgICAgIH0sXG4gICAgICAgIGFjdGl2aXR5SW52aXRlXG4gICAgICApXG4gIH1cblxuICB1cGRhdGVUZWFtQWN0aXZpdHlQYXJ0aWNpcGFudHModGVhbUlkOiBzdHJpbmcsIGFjdGl2aXR5SWQ6IHN0cmluZywgbWVtYmVyczogQXJyYXk8c3RyaW5nPikge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5wb3N0UmVzb3VyY2UoXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgfSxcbiAgICAgICAgUm9sZS5UZWFtQWRtaW4sXG4gICAgICAgIFRFQU1fQUNUSVZJVFlfUEFSVElDSVBBTlRTX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICB0ZWFtSWQsXG4gICAgICAgICAgYWN0aXZpdHlJZFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbWVtYmVyc1xuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRPcGVuQWN0aXZpdHlEYXRlUGFyYW1zKHN0YXJ0RGF0ZTogc3RyaW5nIHwgbnVsbCwgZW5kRGF0ZTogc3RyaW5nIHwgbnVsbCwgYWxsOiBib29sZWFuID0gZmFsc2UpOiB7W2tleTogc3RyaW5nXTogc3RyaW5nfSB7XG4gICAgbGV0IHBhcmFtczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtcbiAgICAgICdhbGwnOiBhbGwgPyAndHJ1ZScgOiAnZmFsc2UnXG4gICAgfTtcblxuICAgIGlmIChzdGFydERhdGUpIHtcbiAgICAgIHBhcmFtc1snc3RhcnRfZGF0ZSddID0gc3RhcnREYXRlIGFzIHN0cmluZztcbiAgICB9XG5cbiAgICBpZiAoZW5kRGF0ZSkge1xuICAgICAgcGFyYW1zWydlbmRfZGF0ZSddID0gZW5kRGF0ZSBhcyBzdHJpbmc7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhcmFtcztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0T3BlbkFjdGl2aXR5U2VhcmNoUGFyYW1zKG9wZW5BY3Rpdml0eVNlYXJjaFBhcmFtczogT3BlbkFjdGl2aXR5U2VhcmNoUGFyYW1zSW50ZXJmYWNlKToge1trZXk6IHN0cmluZ106IHN0cmluZ30ge1xuICAgIGNvbnN0IHBhcmFtczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtcbiAgICAgIGVuZF9kYXRlOiBvcGVuQWN0aXZpdHlTZWFyY2hQYXJhbXMuZW5kRGF0ZSxcbiAgICAgIGxpbWl0OiAnbnVsbCcsXG4gICAgICBzdGFydF9kYXRlOiBvcGVuQWN0aXZpdHlTZWFyY2hQYXJhbXMuc3RhcnREYXRlXG4gICAgfTtcblxuICAgIGlmIChvcGVuQWN0aXZpdHlTZWFyY2hQYXJhbXMuYWN0aXZpdHlUeXBlSWQpIHtcbiAgICAgIHBhcmFtc1snYWN0aXZpdHlfdHlwZV9pZCddID0gb3BlbkFjdGl2aXR5U2VhcmNoUGFyYW1zLmFjdGl2aXR5VHlwZUlkO1xuICAgIH1cblxuICAgIGlmIChvcGVuQWN0aXZpdHlTZWFyY2hQYXJhbXMubG9jYXRpb25JZCkge1xuICAgICAgcGFyYW1zWydsb2NhdGlvbl9pZCddID0gb3BlbkFjdGl2aXR5U2VhcmNoUGFyYW1zLmxvY2F0aW9uSWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhcmFtcztcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlVW51c2VkQWN0aXZpdHlGaWVsZHMoYWN0aXZpdHk6IFBhcnRpYWw8QWN0aXZpdHk+KTogUGFydGlhbDxBY3Rpdml0eT4ge1xuICAgIGlmICh0eXBlb2YgYWN0aXZpdHkuaWQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBkZWxldGUgYWN0aXZpdHkuaWQ7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBhY3Rpdml0eS5maWxlICE9PSAndW5kZWZpbmVkJyAmJiAhYWN0aXZpdHkuZmlsZSkge1xuICAgICAgZGVsZXRlIGFjdGl2aXR5LmZpbGU7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBhY3Rpdml0eS5pbnZpdGVfbGFzdF9yZXNwb25zZV9kYXRlICE9PSAndW5kZWZpbmVkJyAmJiAhYWN0aXZpdHkuaW52aXRlX2xhc3RfcmVzcG9uc2VfZGF0ZSkge1xuICAgICAgZGVsZXRlIGFjdGl2aXR5Lmludml0ZV9sYXN0X3Jlc3BvbnNlX2RhdGU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGFjdGl2aXR5O1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVVbnVzZWRBY3Rpdml0eVF1ZXN0aW9uRmllbGRzKHF1ZXN0aW9uOiBQYXJ0aWFsPEFjdGl2aXR5UXVlc3Rpb24+KTogUGFydGlhbDxBY3Rpdml0eVF1ZXN0aW9uPiB7XG4gICAgaWYgKHR5cGVvZiBxdWVzdGlvbi5pZCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGRlbGV0ZSBxdWVzdGlvbi5pZDtcbiAgICB9XG4gICAgZGVsZXRlIHF1ZXN0aW9uLmNsdWJfaWQ7XG4gICAgZGVsZXRlIHF1ZXN0aW9uLnNlY3Rpb25faWQ7XG4gICAgcmV0dXJuIHF1ZXN0aW9uO1xuICB9XG59XG4iXX0=
|
|
651
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEtYWNjZXNzL3NyYy9saWIvc2VydmljZXMvYWN0aXZpdHkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFRTCxJQUFJLEdBQ0wsTUFBTSxXQUFXLENBQUM7QUFDbkIsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUIsT0FBTyxFQUNMLGVBQWUsRUFDZixxQkFBcUIsRUFDckIsdUJBQXVCLEVBQ3ZCLHVCQUF1QixFQUN2Qix1QkFBdUIsRUFDdkIsbUJBQW1CLEVBQ25CLFlBQVksRUFDWixZQUFZLEVBQ1osMkJBQTJCLEVBQzNCLG1CQUFtQixFQUFFLHNCQUFzQixFQUMzQyxtQkFBbUIsR0FDcEIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUUvQixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7OztBQUVwRSxNQUFNLDJCQUEyQixHQUFHLHdCQUF3QixDQUFDO0FBQzdELE1BQU0sNkJBQTZCLEdBQUcsYUFBYSxDQUFDO0FBQ3BELE1BQU0sMkJBQTJCLEdBQUcseUJBQXlCLENBQUM7QUFDOUQsTUFBTSxpQ0FBaUMsR0FBRyxzQ0FBc0MsQ0FBQztBQUNqRixNQUFNLDJDQUEyQyxHQUFHLDJDQUEyQyxDQUFDO0FBQ2hHLE1BQU0sa0NBQWtDLEdBQUcsdUNBQXVDLENBQUM7QUFDbkYsTUFBTSxnQ0FBZ0MsR0FBRyxzQ0FBc0MsQ0FBQztBQUVoRixNQUFNLDJCQUEy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amVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFwaVNlcnZpY2UgfSBmcm9tICcuL2FwaS5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIEFjdGl2aXR5LFxuICBBY3Rpdml0eUxvY2F0aW9uLCBBY3Rpdml0eVF1ZXN0aW9uLFxuICBBY3Rpdml0eVF1ZXN0aW9uUmVzcG9uc2UsXG4gIEFjdGl2aXR5VHlwZSxcbiAgQ29sbGVjdGlvbixcbiAgR3Vlc3QsXG4gIE1lbWJlckFjdGl2aXR5SW52aXRlLFxuICBSb2xlLFxufSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIGFjdGl2aXR5RmFjdG9yeSxcbiAgYWN0aXZpdHlJbnZpdGVGYWN0b3J5LFxuICBhY3Rpdml0eUxvY2F0aW9uRmFjdG9yeSxcbiAgYWN0aXZpdHlRdWVzdGlvbkZhY3RvcnksXG4gIGFjdGl2aXR5U2V0dGluZ3NGYWN0b3J5LFxuICBhY3Rpdml0eVR5cGVGYWN0b3J5LFxuICBldmVudEZhY3RvcnksXG4gIGd1ZXN0RmFjdG9yeSxcbiAgbWVtYmVyQWN0aXZpdHlJbnZpdGVGYWN0b3J5LFxuICBvcGVuQWN0aXZpdHlGYWN0b3J5LCBzZWFyY2hBdHRyaWJ1dGVGYWN0b3J5LFxuICBzZWFyY2hNZW1iZXJGYWN0b3J5LFxufSBmcm9tICcuL2ZhY3Rvcmllcyc7XG5pbXBvcnQgeyBzdWIgfSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgeyBPcGVuQWN0aXZpdHlTZWFyY2hQYXJhbXNJbnRlcmZhY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGludmFsaWRSb2xlRXJyb3IgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IHNlYXJjaFRlYW1GYWN0b3J5IH0gZnJvbSAnLi9mYWN0b3JpZXMvc2VhcmNoLXRlYW0tZmFjdG9yeSc7XG5cbmNvbnN0IFBVQkxJQ19BQ1RJVklUWV9JTlZJVEVfUEFUSCA9ICdhY3Rpdml0aWVzLzppZC86dG9rZW4vJztcbmNvbnN0IFBVQkxJQ19NRU1CRVJfQUNUSVZJVElFU19QQVRIID0gJ2FjdGl2aXRpZXMvJztcbmNvbnN0IFBVQkxJQ19NRU1CRVJfQUNUSVZJVFlfUEFUSCA9ICdhY3Rpdml0aWVzLzphY3Rpdml0eUlkLyc7XG5jb25zdCBQVUJMSUNfT1BFTl9BQ1RJVklUWV9SRVNQT05EX1BBVEggPSAnb3Blbi1hY3Rpdml0aWVzLzphY3Rpdml0eUlkL3Jlc3BvbmQvJztcbmNvbnN0IFBVQkxJQ19PUEVOX0FDVElWSVRZX1JFU1BPTkRfV0lUSF9EQVRBX1BBVEggPSAnb3Blbi1hY3Rpdml0aWVzLzphY3Rpdml0eUlkL3Jlc3BvbmQtZGF0YS8nO1xuY29uc3QgUFVCTElDX01FTUJFUl9BQ1RJVklUWV9JTlZJVEVfUEFUSCA9ICdhY3Rpdml0aWVzL2ludml0ZXMvOmFjdGl2aXR5SW52aXRlSWQvJztcbmNvbnN0IFBVQkxJQ19PUEVOX0FDVElWSVRZX0lOVklURV9QQVRIID0gJ29wZW4tYWN0aXZpdGllcy9pbnZpdGVzLzphY3Rpdml0eUlkLyc7XG5cbmNvbnN0IENMVUJfQUNUSVZJVFlfU0VUVElOR1NfUEFUSCA9ICc6Y2x1YklkL2FjdGl2aXRpZXMvc2V0dGluZ3MvJztcbmNvbnN0IENMVUJfQUNUSVZJVFlfTE9DQVRJT05TX1BBVEggPSAnOmNsdWJJZC9hY3Rpdml0aWVzL2xvY2F0aW9ucy8nO1xuY29uc3QgQ0xVQl9BQ1RJVklUWV9MT0NBVElPTl9QQVRIID0gJzpjbHViSWQvYWN0aXZpdGllcy9sb2NhdGlvbnMvOmxvY2F0aW9uSWQvJztcbmNvbnN0IENMVUJfQUNUSVZJVFlfVFlQRVNfUEFUSCA9ICc6Y2x1YklkL2FjdGl2aXRpZXMvdHlwZXMvJztcbmNvbnN0IENMVUJfQUNUSVZJVFlfVFlQRV9QQVRIID0gJzpjbHViSWQvYWN0aXZpdGllcy90eXBlcy86dHlwZUlkLyc7XG5cbmNvbnN0IFNFQ1RJT05fQUNUSVZJVFlfU0VUVElOR1NfUEFUSCA9ICc6c2VjdGlvbklkL2FjdGl2aXRpZXMvc2V0dGluZ3MvJztcbmNvbnN0IFNFQ1RJT05fQUNUSVZJVFlfTE9DQVRJT05TX1BBVEggPSAnOnNlY3Rpb25JZC9hY3Rpdml0aWVzL2xvY2F0aW9ucy8nO1xuY29uc3QgU0VDVElPTl9BQ1RJVklUWV9MT0NBVElPTl9QQVRIID0gJzpzZWN0aW9uSWQvYWN0aXZpdGllcy9sb2NhdGlvbnMvOmxvY2F0aW9uSWQvJztcbmNvbnN0IFNFQ1RJT05fQUNUSVZJVFlfVFlQRVNfUEFUSCA9ICc6c2VjdGlvbklkL2FjdGl2aXRpZXMvdHlwZXMvJztcbmNvbnN0IFNFQ1RJT05fQUNUSVZJVFlfVFlQRV9QQVRIID0gJzpzZWN0aW9uSWQvYWN0aXZpdGllcy90eXBlcy86dHlwZUlkLyc7XG5cbmNvbnN0IFRFQU1fQUNUSVZJVElFU19QQVRIID0gJzp0ZWFtSWQvYWN0aXZpdGllcy8nO1xuY29uc3QgVEVBTV9BQ1RJVklUWV9SVUxFX0FUVFJJQlVURVNfUEFUSCA9ICc6dGVhbUlkL2FjdGl2aXRpZXMvYXR0cmlidXRlcy8nO1xuY29uc3QgVEVBTV9BQ1RJVklUWV9JTlZJVEVTX1BBVEggPSAnOnRlYW1JZC9hY3Rpdml0aWVzLzphY3Rpdml0eUlkL2ludml0ZXMvJztcbmNvbnN0IFRFQU1fQUNUSVZJVFlfSU5WSVRFX1BBVEggPSAnOnRlYW1JZC9hY3Rpdml0aWVzLzphY3Rpdml0eUlkL2ludml0ZXMvOmFjdGl2aXR5SW52aXRlSWQvJztcbmNvbnN0IFRFQU1fQUNUSVZJVFlfSU5WSVRFX1JFU0VORF9QQVRIID0gJzp0ZWFtSWQvYWN0aXZpdGllcy86YWN0aXZpdHlJZC9pbnZpdGVzLzphY3Rpdml0eUludml0ZUlkL3Jlc2VuZC1pbnZpdGUvJztcbmNvbnN0IFRFQU1fQUNUSVZJVFlfTkVXX1BBVEggPSAnOnRlYW1JZC9hY3Rpdml0aWVzL25ldy8nO1xuY29uc3QgVEVBTV9BQ1RJVklUWV9QQVJUSUNJUEFOVFNfUEFUSCA9ICc6dGVhbUlkL2FjdGl2aXRpZXMvOmFjdGl2aXR5SWQvcGFydGljaXBhbnRzLyc7XG5jb25zdCBURUFNX0FDVElWSVRZX1BBVEggPSAnOnRlYW1JZC9hY3Rpdml0aWVzLzppZC8nO1xuY29uc3QgVEVBTV9BQ1RJVklUWV9RUl9DT0RFX1BBVEggPSAnOnRlYW1JZC9hY3Rpdml0aWVzLzppZC9xci1jb2RlLyc7XG5jb25zdCBURUFNX0FDVElWSVRZX1FVRVNUSU9OX1BBVEggPSAnOnRlYW1JZC9hY3Rpdml0aWVzL3F1ZXN0aW9ucy86aWQvJztcbmNvbnN0IFRFQU1fQUNUSVZJVFlfUVVFU1RJT05TX1BBVEggPSAnOnRlYW1JZC9hY3Rpdml0aWVzL3F1ZXN0aW9ucy8nO1xuY29uc3QgVEVBTV9BQ1RJVklUWV9SVUxFX1RFQU1TX1BBVEggPSAnOnRlYW1JZC9hY3Rpdml0aWVzL3RlYW1zLyc7XG5jb25zdCBURUFNX0FDVElWSVRZX1NFVFRJTkdTX1BBVEggPSAnOnRlYW1JZC9hY3Rpdml0aWVzL3NldHRpbmdzLyc7XG5jb25zdCBURUFNX0FDVElWSVRZX1RZUEVTX1BBVEggPSAnOnRlYW1JZC9hY3Rpdml0aWVzL3R5cGVzLyc7XG5jb25zdCBURUFNX0FDVElWSVRZX0xPQ0FUSU9OU19QQVRIID0gJzp0ZWFtSWQvYWN0aXZpdGllcy9sb2NhdGlvbnMvJztcbmNvbnN0IFRFQU1fQ0FMRU5EQVJfUEFUSCA9ICc6dGVhbUlkL2FjdGl2aXRpZXMvY2FsZW5kYXIvJztcblxuY29uc3QgTUVNQkVSX0FDVElWSVRZX0FUVEVOREFOQ0VfUEFUSCA9ICc6bWVtYmVySWQvYWN0aXZpdGllcy9hY3Rpdml0eS86YWN0aXZpdHlJZC9hdHRlbmRhbmNlLyc7XG5jb25zdCBNRU1CRVJfQUNUSVZJVFlfSU5WSVRFX1BBVEggPSAnOm1lbWJlcklkL2FjdGl2aXRpZXMvOmFjdGl2aXR5SW52aXRlSWQvJztcbmNvbnN0IE1FTUJFUl9BQ1RJVklUWV9QQVRIID0gJzptZW1iZXJJZC9hY3Rpdml0aWVzL2FjdGl2aXR5LzphY3Rpdml0eUlkLyc7XG5jb25zdCBNRU1CRVJfQUNUSVZJVFlfSU5WSVRFU19QQVRIID0gJzptZW1iZXJJZC9hY3Rpdml0aWVzLyc7XG5jb25zdCBNRU1CRVJfQ0FMRU5EQVJfUEFUSCA9ICc6bWVtYmVySWQvYWN0aXZpdGllcy9jYWxlbmRhci8nO1xuY29uc3QgTUVNQkVSX09QRU5fQUNUSVZJVElFU19QQVRIID0gJzptZW1iZXJJZC9vcGVuLWFjdGl2aXRpZXMvJztcbmNvbnN0IE1FTUJFUl9PUEVOX0FDVElWSVRJRVNfQUNUSVZJVFlfVFlQRVNfUEFUSCA9ICc6bWVtYmVySWQvb3Blbi1hY3Rpdml0aWVzL3R5cGVzLyc7XG5jb25zdCBNRU1CRVJfT1BFTl9BQ1RJVklUSUVTX0FDVElWSVRZX0xPQ0FUSU9OU19QQVRIID0gJzptZW1iZXJJZC9vcGVuLWFjdGl2aXRpZXMvbG9jYXRpb25zLyc7XG5jb25zdCBNRU1CRVJfT1BFTl9BQ1RJVklUWV9QQVRIID0gJzptZW1iZXJJZC9vcGVuLWFjdGl2aXRpZXMvOmFjdGl2aXR5SWQvJztcbmNvbnN0IE1FTUJFUl9PUEVOX0FDVElWSVRZX1JFU1BPTkRfUEFUSCA9ICc6bWVtYmVySWQvb3Blbi1hY3Rpdml0aWVzLzphY3Rpdml0eUlkL3Jlc3BvbmQvJztcbmNvbnN0IE1FTUJFUl9PUEVOX0FDVElWSVRZX1JFU1BPTkRfV0lUSF9EQVRBX1BBVEggPSAnOm1lbWJlcklkL29wZW4tYWN0aXZpdGllcy86YWN0aXZpdHlJZC9yZXNwb25kLWRhdGEvJztcbmNvbnN0IE1FTUJFUl9BQ1RJVklUWV9TRVRUSU5HU19QQVRIID0gJzptZW1iZXJJZC9hY3Rpdml0aWVzL3NldHRpbmdzLyc7XG5jb25zdCBNRU1CRVJfQUNUSVZJVFlfVFlQRVNfUEFUSCA9ICc6bWVtYmVySWQvYWN0aXZpdGllcy90eXBlcy8nO1xuY29uc3QgTUVNQkVSX0FDVElWSVRZX0xPQ0FUSU9OU19QQVRIID0gJzptZW1iZXJJZC9hY3Rpdml0aWVzL2xvY2F0aW9ucy8nO1xuXG5jb25zdCBURUFNX0FDVElWSVRZX0dVRVNUU19QQVRIID0gJzp0ZWFtSWQvYWN0aXZpdGllcy86YWN0aXZpdHlJZC9ndWVzdHMvJztcbmNvbnN0IFRFQU1fQUNUSVZJVFlfR1VFU1RfUEFUSCA9ICc6dGVhbUlkL2FjdGl2aXRpZXMvOmFjdGl2aXR5SWQvZ3Vlc3RzLzpndWVzdElkLyc7XG5jb25zdCBNRU1CRVJfQUNUSVZJVFlfSU5WSVRFX0dVRVNUU19QQVRIID0gJzptZW1iZXJJZC9hY3Rpdml0aWVzLzppbnZpdGVJZC9ndWVzdHMvJztcbmNvbnN0IE1FTUJFUl9BQ1RJVklUWV9JTlZJVEVfR1VFU1RfUEFUSCA9ICc6bWVtYmVySWQvYWN0aXZpdGllcy86aW52aXRlSWQvZ3Vlc3RzLzpndWVzdElkLyc7XG5cbmNvbnN0IFBVQkxJQ19BQ1RJVklUWV9JTlZJVEVfR1VFU1RfTElTVF9QQVRIID0gJ2FjdGl2aXRpZXMvOmlkLzp0b2tlbi9ndWVzdHMvJztcbmNvbnN0IFBVQkxJQ19BQ1RJVklUWV9JTlZJVEVfR1VFU1RfREVUQUlMX1BBVEggPSAnYWN0aXZpdGllcy86aWQvOnRva2VuL2d1ZXN0cy86Z3Vlc3RJZC8nO1xuY29uc3QgUFVCTElDX09QRU5fQUNUSVZJVFlfR1VFU1RfTElTVF9QQVRIID0gJ29wZW4tYWN0aXZpdGllcy86YWN0aXZpdHlJZC9ndWVzdHMvJztcbmNvbnN0IFBVQkxJQ19PUEVOX0FDVElWSVRZX0dVRVNUX0RFVEFJTF9QQVRIID0gJ29wZW4tYWN0aXZpdGllcy86YWN0aXZpdHlJZC9ndWVzdHMvOmd1ZXN0SWQvJztcblxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBBY3Rpdml0eVNlcnZpY2Uge1xuICBhY3Rpdml0eUxvY2F0aW9uQ29sbGVjdGlvbjogQ29sbGVjdGlvbjxBY3Rpdml0eUxvY2F0aW9uPiB8IHVuZGVmaW5lZDtcblxuICBhY3Rpdml0eUxvY2F0aW9uUmVzcG9uc2VEYXRlOiBEYXRlIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYXBpU2VydmljZTogQXBpU2VydmljZSkge1xuICB9XG5cbiAgYWRkVGVhbUFjdGl2aXR5SW52aXRlcyh0ZWFtSWQ6IHN0cmluZywgYWN0aXZpdHlJZDogc3RyaW5nLCBtZW1iZXJJZHM6IEFycmF5PHN0cmluZz4pIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAucG9zdFJlc291cmNlKFxuICAgICAgICAoKSA9PiB0cnVlLFxuICAgICAgICBSb2xlLlRlYW1BZG1pbixcbiAgICAgICAgVEVBTV9BQ1RJVklUWV9JTlZJVEVTX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICB0ZWFtSWQsXG4gICAgICAgICAgYWN0aXZpdHlJZFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbWVtYmVyczogbWVtYmVySWRzXG4gICAgICAgIH1cbiAgICAgIClcbiAgfVxuXG4gIGNyZWF0ZVRlYW1BY3Rpdml0eSh0ZWFtSWQ6IHN0cmluZywgZGF0YTogUGFydGlhbDxBY3Rpdml0eT4pIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAucG9zdFJlc291cmNlKFxuICAgICAgICBhY3Rpdml0eUZhY3RvcnksXG4gICAgICAgIFJvbGUuVGVhbUFkbWluLFxuICAgICAgICBURUFNX0FDVElWSVRJRVNfUEFUSCxcbiAgICAgICAge1xuICAgICAgICAgIHRlYW1JZFxuICAgICAgICB9LFxuICAgICAgICB0aGlzLnJlbW92ZVVudXNlZEFjdGl2aXR5RmllbGRzKHsuLi5kYXRhfSlcbiAgICAgIClcbiAgfVxuXG4gIGNyZWF0ZVRlYW1BY3Rpdml0eVF1ZXN0aW9uKHRlYW1JZDogc3RyaW5nLCBxdWVzdGlvbjogUGFydGlhbDxBY3Rpdml0eVF1ZXN0aW9uPikge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5wb3N0UmVzb3VyY2UoXG4gICAgICAgIGFjdGl2aXR5UXVlc3Rpb25GYWN0b3J5LFxuICAgICAgICBSb2xlLlRlYW1BZG1pbixcbiAgICAgICAgVEVBTV9BQ1RJVklUWV9RVUVTVElPTlNfUEFUSCxcbiAgICAgICAge1xuICAgICAgICAgIHRlYW1JZFxuICAgICAgICB9LFxuICAgICAgICB0aGlzLnJlbW92ZVVudXNlZEFjdGl2aXR5UXVlc3Rpb25GaWVsZHMoey4uLnF1ZXN0aW9ufSlcbiAgICAgIClcbiAgfVxuXG4gIGRlbGV0ZVRlYW1BY3Rpdml0eSh0ZWFtSWQ6IHN0cmluZywgaWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5kZWxldGVSZXNvdXJjZShcbiAgICAgICAgUm9sZS5UZWFtQWRtaW4sXG4gICAgICAgIFRFQU1fQUNUSVZJVFlfUEFUSCxcbiAgICAgICAge1xuICAgICAgICAgIHRlYW1JZCxcbiAgICAgICAgICBpZFxuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgZGVsZXRlVGVhbUFjdGl2aXR5SW52aXRlKHRlYW1JZDogc3RyaW5nLCBhY3Rpdml0eUlkOiBzdHJpbmcsIGFjdGl2aXR5SW52aXRlSWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5kZWxldGVSZXNvdXJjZShcbiAgICAgICAgUm9sZS5UZWFtQWRtaW4sXG4gICAgICAgIFRFQU1fQUNUSVZJVFlfSU5WSVRFX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICB0ZWFtSWQsXG4gICAgICAgICAgYWN0aXZpdHlJZCxcbiAgICAgICAgICBhY3Rpdml0eUludml0ZUlkXG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cblxuICBkZWxldGVUZWFtQWN0aXZpdHlRdWVzdGlvbih0ZWFtSWQ6IHN0cmluZywgaWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5kZWxldGVSZXNvdXJjZShcbiAgICAgICAgUm9sZS5UZWFtQWRtaW4sXG4gICAgICAgIFRFQU1fQUNUSVZJVFlfUVVFU1RJT05fUEFUSCxcbiAgICAgICAge3RlYW1JZCwgaWR9XG4gICAgICApO1xuICB9XG5cbiAgZ2V0TWVtYmVyQWN0aXZpdHkobWVtYmVySWQ6IHN0cmluZywgYWN0aXZpdHlJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldFJlc291cmNlKFxuICAgICAgICBhY3Rpdml0eUZhY3RvcnksXG4gICAgICAgIFJvbGUuTWVtYmVyQWRtaW4sXG4gICAgICAgIE1FTUJFUl9BQ1RJVklUWV9QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgbWVtYmVySWQsXG4gICAgICAgICAgYWN0aXZpdHlJZFxuICAgICAgICB9XG4gICAgICApXG4gIH1cblxuICBnZXRNZW1iZXJBY3Rpdml0eUludml0ZShtZW1iZXJJZDogc3RyaW5nLCBhY3Rpdml0eUludml0ZUlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0UmVzb3VyY2UoXG4gICAgICAgIGFjdGl2aXR5SW52aXRlRmFjdG9yeSxcbiAgICAgICAgUm9sZS5NZW1iZXJBZG1pbixcbiAgICAgICAgTUVNQkVSX0FDVElWSVRZX0lOVklURV9QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgbWVtYmVySWQsXG4gICAgICAgICAgYWN0aXZpdHlJbnZpdGVJZFxuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgZ2V0TWVtYmVyQWN0aXZpdHlJbnZpdGVzKG1lbWJlcklkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBwYXJhbXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7bGltaXQ6ICdudWxsJywgb3Blbl9hY3Rpdml0eTogJ3RydWUnfTtcblxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRDb2xsZWN0aW9uKFxuICAgICAgICBhY3Rpdml0eUludml0ZUZhY3RvcnksXG4gICAgICAgIFJvbGUuTWVtYmVyQWRtaW4sXG4gICAgICAgIE1FTUJFUl9BQ1RJVklUWV9JTlZJVEVTX1BBVEgsXG4gICAgICAgIHttZW1iZXJJZH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwYXJhbXNcbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIGdldE1lbWJlckNhbGVuZGFyRXZlbnRzKG1lbWJlcklkOiBzdHJpbmcsIHN0YXJ0RGF0ZTogc3RyaW5nIHwgbnVsbCA9IG51bGwsIGVuZERhdGU6IHN0cmluZyB8IG51bGwgPSBudWxsLCBvcGVuQWN0aXZpdHk6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIGNvbnN0IHBhcmFtczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtsaW1pdDogJ251bGwnfTtcblxuICAgIGlmIChzdGFydERhdGUpIHtcbiAgICAgIHBhcmFtc1snc2VhcmNoX3N0YXJ0X2RheSddID0gc3RhcnREYXRlO1xuICAgIH1cblxuICAgIGlmIChlbmREYXRlKSB7XG4gICAgICBwYXJhbXNbJ3NlYXJjaF9lbmRfZGF5J10gPSBlbmREYXRlO1xuICAgIH1cblxuICAgIGlmIChvcGVuQWN0aXZpdHkpIHtcbiAgICAgIHBhcmFtc1snb3Blbl9hY3Rpdml0eSddID0gJ3RydWUnO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRDb2xsZWN0aW9uKFxuICAgICAgICBldmVudEZhY3RvcnksXG4gICAgICAgIFJvbGUuTWVtYmVyQWRtaW4sXG4gICAgICAgIE1FTUJFUl9DQUxFTkRBUl9QQVRILFxuICAgICAgICB7bWVtYmVySWR9LFxuICAgICAgICB7XG4gICAgICAgICAgcGFyYW1zXG4gICAgICAgIH1cbiAgICAgIClcbiAgfVxuXG4gIGdldE1lbWJlck9wZW5BY3Rpdml0aWVzKG1lbWJlcklkOiBzdHJpbmcsIG9wZW5BY3Rpdml0eVNlYXJjaFBhcmFtczogT3BlbkFjdGl2aXR5U2VhcmNoUGFyYW1zSW50ZXJmYWNlKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldENvbGxlY3Rpb24oXG4gICAgICAgIG9wZW5BY3Rpdml0eUZhY3RvcnksXG4gICAgICAgIFJvbGUuTWVtYmVyQWRtaW4sXG4gICAgICAgIE1FTUJFUl9PUEVOX0FDVElWSVRJRVNfUEFUSCxcbiAgICAgICAge21lbWJlcklkfSxcbiAgICAgICAge1xuICAgICAgICAgIHBhcmFtczogdGhpcy5nZXRPcGVuQWN0aXZpdHlTZWFyY2hQYXJhbXMob3BlbkFjdGl2aXR5U2VhcmNoUGFyYW1zKVxuICAgICAgICB9XG4gICAgICApXG4gIH1cblxuICBnZXRNZW1iZXJPcGVuQWN0aXZpdHkobWVtYmVySWQ6IHN0cmluZywgYWN0aXZpdHlJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldFJlc291cmNlKFxuICAgICAgICBvcGVuQWN0aXZpdHlGYWN0b3J5LFxuICAgICAgICBSb2xlLk1lbWJlckFkbWluLFxuICAgICAgICBNRU1CRVJfT1BFTl9BQ1RJVklUWV9QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgbWVtYmVySWQsXG4gICAgICAgICAgYWN0aXZpdHlJZFxuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgZ2V0TWVtYmVyT3BlbkFjdGl2aXR5QWN0aXZpdHlUeXBlcyhtZW1iZXJJZDogc3RyaW5nLCBzdGFydERhdGU6IHN0cmluZyB8IG51bGwgPSBudWxsLCBlbmREYXRlOiBzdHJpbmcgfCBudWxsID0gbnVsbCwgYWxsOiBib29sZWFuID0gZmFsc2UpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0Q29sbGVjdGlvbihcbiAgICAgICAgYWN0aXZpdHlUeXBlRmFjdG9yeSxcbiAgICAgICAgUm9sZS5NZW1iZXJBZG1pbixcbiAgICAgICAgTUVNQkVSX09QRU5fQUNUSVZJVElFU19BQ1RJVklUWV9UWVBFU19QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgbWVtYmVySWRcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHBhcmFtczoge1xuICAgICAgICAgICAgLi4udGhpcy5nZXRPcGVuQWN0aXZpdHlEYXRlUGFyYW1zKHN0YXJ0RGF0ZSwgZW5kRGF0ZSwgYWxsKSxcbiAgICAgICAgICAgIGxpbWl0OiAnbnVsbCdcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIClcbiAgfVxuXG4gIGdldE1lbWJlck9wZW5BY3Rpdml0eUxvY2F0aW9ucyhtZW1iZXJJZDogc3RyaW5nLCBzdGFydERhdGU6IHN0cmluZyB8IG51bGwgPSBudWxsLCBlbmREYXRlOiBzdHJpbmcgfCBudWxsID0gbnVsbCwgYWxsOiBib29sZWFuID0gZmFsc2UpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0Q29sbGVjdGlvbihcbiAgICAgICAgYWN0aXZpdHlMb2NhdGlvbkZhY3RvcnksXG4gICAgICAgIFJvbGUuTWVtYmVyQWRtaW4sXG4gICAgICAgIE1FTUJFUl9PUEVOX0FDVElWSVRJRVNfQUNUSVZJVFlfTE9DQVRJT05TX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICBtZW1iZXJJZFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICAuLi50aGlzLmdldE9wZW5BY3Rpdml0eURhdGVQYXJhbXMoc3RhcnREYXRlLCBlbmREYXRlLCBhbGwpLFxuICAgICAgICAgICAgbGltaXQ6ICdudWxsJ1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgKVxuICB9XG5cbiAgZ2V0UHVibGljQWN0aXZpdHlJbnZpdGUoaWQ6IHN0cmluZywgdG9rZW46IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRSZXNvdXJjZShcbiAgICAgICAgYWN0aXZpdHlJbnZpdGVGYWN0b3J5LFxuICAgICAgICBSb2xlLlB1YmxpYyxcbiAgICAgICAgUFVCTElDX0FDVElWSVRZX0lOVklURV9QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgaWQsXG4gICAgICAgICAgdG9rZW5cbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIGdldFB1YmxpY01lbWJlckFjdGl2aXR5SW52aXRlKGFjdGl2aXR5SW52aXRlSWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRSZXNvdXJjZShcbiAgICAgICAgYWN0aXZpdHlJbnZpdGVGYWN0b3J5LFxuICAgICAgICBSb2xlLlB1YmxpYyxcbiAgICAgICAgUFVCTElDX01FTUJFUl9BQ1RJVklUWV9JTlZJVEVfUEFUSCxcbiAgICAgICAge1xuICAgICAgICAgIGFjdGl2aXR5SW52aXRlSWRcbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIGdldFB1YmxpY01lbWJlckFjdGl2aXRpZXMoc3RhcnREYXRlOiBzdHJpbmcsIGVuZERhdGU6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRDb2xsZWN0aW9uKFxuICAgICAgICBldmVudEZhY3RvcnksXG4gICAgICAgIFJvbGUuUHVibGljLFxuICAgICAgICBQVUJMSUNfTUVNQkVSX0FDVElWSVRJRVNfUEFUSCxcbiAgICAgICAge30sXG4gICAgICAgIHtcbiAgICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAgIHNlYXJjaF9zdGFydF9kYXk6IHN0YXJ0RGF0ZSxcbiAgICAgICAgICAgIHNlYXJjaF9lbmRfZGF5OiBlbmREYXRlLFxuICAgICAgICAgICAgbGltaXQ6ICdudWxsJ1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgKVxuICB9XG5cbiAgZ2V0UHVibGljTWVtYmVyQWN0aXZpdHkoYWN0aXZpdHlJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldFJlc291cmNlKFxuICAgICAgICBhY3Rpdml0eUZhY3RvcnksXG4gICAgICAgIFJvbGUuUHVibGljLFxuICAgICAgICBQVUJMSUNfTUVNQkVSX0FDVElWSVRZX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICBhY3Rpdml0eUlkXG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cblxuICBnZXRUZWFtQWN0aXZpdHkodGVhbUlkOiBzdHJpbmcsIGlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0UmVzb3VyY2UoXG4gICAgICAgIGFjdGl2aXR5RmFjdG9yeSxcbiAgICAgICAgUm9sZS5UZWFtQWRtaW4sXG4gICAgICAgIFRFQU1fQUNUSVZJVFlfUEFUSCxcbiAgICAgICAge3RlYW1JZCwgaWR9XG4gICAgICApXG4gIH1cblxuICBnZXRUZWFtQWN0aXZpdHlRUkNvZGUodGVhbUlkOiBzdHJpbmcsIGlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0UmVzb3VyY2UoXG4gICAgICAgIGFjdGl2aXR5RmFjdG9yeSxcbiAgICAgICAgUm9sZS5UZWFtQWRtaW4sXG4gICAgICAgIFRFQU1fQUNUSVZJVFlfUVJfQ09ERV9QQVRILFxuICAgICAgICB7dGVhbUlkLCBpZH1cbiAgICAgIClcbiAgfVxuXG4gIGdldFRlYW1BY3Rpdml0eVF1ZXN0aW9uKHRlYW1JZDogc3RyaW5nLCBpZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldFJlc291cmNlKFxuICAgICAgICBhY3Rpdml0eVF1ZXN0aW9uRmFjdG9yeSxcbiAgICAgICAgUm9sZS5UZWFtQWRtaW4sXG4gICAgICAgIFRFQU1fQUNUSVZJVFlfUVVFU1RJT05fUEFUSCxcbiAgICAgICAge3RlYW1JZCwgaWR9XG4gICAgICApXG4gIH1cblxuICBnZXRUZWFtQWN0aXZpdHlRdWVzdGlvbnModGVhbUlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0Q29sbGVjdGlvbihcbiAgICAgICAgYWN0aXZpdHlRdWVzdGlvbkZhY3RvcnksXG4gICAgICAgIFJvbGUuVGVhbUFkbWluLFxuICAgICAgICBURUFNX0FDVElWSVRZX1FVRVNUSU9OU19QQVRILFxuICAgICAgICB7dGVhbUlkfSxcbiAgICAgICAge3BhcmFtczoge2xpbWl0OiAnbnVsbCd9fVxuICAgICAgKVxuICB9XG5cbiAgZ2V0QWN0aXZpdHlMb2NhdGlvbnMocm9sZTogUm9sZSwgaXRlbUlkOiBzdHJpbmcsIGZvcmNlOiBib29sZWFuID0gZmFsc2UpIHtcbiAgICBzd2l0Y2ggKHJvbGUpIHtcbiAgICAgIGNhc2UgUm9sZS5DbHViQWRtaW46XG4gICAgICAgIHJldHVybiB0aGlzLmdldENsdWJBY3Rpdml0eUxvY2F0aW9ucyhpdGVtSWQsIGZvcmNlKTtcbiAgICAgIGNhc2UgUm9sZS5TZWN0aW9uQWRtaW46XG4gICAgICAgIHJldHVybiB0aGlzLmdldFNlY3Rpb25BY3Rpdml0eUxvY2F0aW9ucyhpdGVtSWQsIGZvcmNlKTtcbiAgICAgIGNhc2UgUm9sZS5UZWFtQWRtaW46XG4gICAgICAgIHJldHVybiB0aGlzLmdldFRlYW1BY3Rpdml0eUxvY2F0aW9ucyhpdGVtSWQsIGZvcmNlKTtcbiAgICAgIGNhc2UgUm9sZS5NZW1iZXJBZG1pbjpcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TWVtYmVyQWN0aXZpdHlMb2NhdGlvbnMoaXRlbUlkLCBmb3JjZSlcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IGludmFsaWRSb2xlRXJyb3I7XG4gICAgfVxuICB9XG5cbiAgZ2V0VGVhbUFjdGl2aXR5TG9jYXRpb25zKHRlYW1JZDogc3RyaW5nLCBmb3JjZTogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgaWYgKHRoaXMuYWN0aXZpdHlMb2NhdGlvblJlc3BvbnNlRGF0ZSAmJiB0aGlzLmFjdGl2aXR5TG9jYXRpb25SZXNwb25zZURhdGUgPiBzdWIobmV3IERhdGUoKSwge2hvdXJzOiAxfSkgJiYgIWZvcmNlKSB7XG4gICAgICByZXR1cm4gb2YodGhpcy5hY3Rpdml0eUxvY2F0aW9uQ29sbGVjdGlvbiBhcyBDb2xsZWN0aW9uPEFjdGl2aXR5TG9jYXRpb24+KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0Q29sbGVjdGlvbihcbiAgICAgICAgYWN0aXZpdHlMb2NhdGlvbkZhY3RvcnksXG4gICAgICAgIFJvbGUuVGVhbUFkbWluLFxuICAgICAgICBURUFNX0FDVElWSVRZX0xPQ0FUSU9OU19QQVRILFxuICAgICAgICB7dGVhbUlkfSxcbiAgICAgICAge3BhcmFtczoge2xpbWl0OiAnbnVsbCd9fVxuICAgICAgKS5waXBlKFxuICAgICAgICB0YXAoKGFjdGl2aXR5TG9jYXRpb25Db2xsZWN0aW9uOiBDb2xsZWN0aW9uPEFjdGl2aXR5TG9jYXRpb24+KSA9PiB7XG4gICAgICAgICAgdGhpcy5hY3Rpdml0eUxvY2F0aW9uUmVzcG9uc2VEYXRlID0gbmV3IERhdGUoKTtcbiAgICAgICAgICB0aGlzLmFjdGl2aXR5TG9jYXRpb25Db2xsZWN0aW9uID0gYWN0aXZpdHlMb2NhdGlvbkNvbGxlY3Rpb247XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgZ2V0TWVtYmVyQWN0aXZpdHlMb2NhdGlvbnMobWVtYmVySWQ6IHN0cmluZywgZm9yY2U6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIGlmICh0aGlzLmFjdGl2aXR5TG9jYXRpb25SZXNwb25zZURhdGUgJiYgdGhpcy5hY3Rpdml0eUxvY2F0aW9uUmVzcG9uc2VEYXRlID4gc3ViKG5ldyBEYXRlKCksIHtob3VyczogMX0pICYmICFmb3JjZSkge1xuICAgICAgcmV0dXJuIG9mKHRoaXMuYWN0aXZpdHlMb2NhdGlvbkNvbGxlY3Rpb24gYXMgQ29sbGVjdGlvbjxBY3Rpdml0eUxvY2F0aW9uPik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldENvbGxlY3Rpb24oXG4gICAgICAgIGFjdGl2aXR5TG9jYXRpb25GYWN0b3J5LFxuICAgICAgICBSb2xlLk1lbWJlckFkbWluLFxuICAgICAgICBNRU1CRVJfQUNUSVZJVFlfTE9DQVRJT05TX1BBVEgsXG4gICAgICAgIHttZW1iZXJJZH0sXG4gICAgICAgIHtwYXJhbXM6IHtsaW1pdDogJ251bGwnfX1cbiAgICAgICkucGlwZShcbiAgICAgICAgdGFwKChhY3Rpdml0eUxvY2F0aW9uQ29sbGVjdGlvbjogQ29sbGVjdGlvbjxBY3Rpdml0eUxvY2F0aW9uPikgPT4ge1xuICAgICAgICAgIHRoaXMuYWN0aXZpdHlMb2NhdGlvblJlc3BvbnNlRGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgICAgICAgdGhpcy5hY3Rpdml0eUxvY2F0aW9uQ29sbGVjdGlvbiA9IGFjdGl2aXR5TG9jYXRpb25Db2xsZWN0aW9uO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIGdldENsdWJBY3Rpdml0eUxvY2F0aW9ucyhjbHViSWQ6IHN0cmluZywgZm9yY2U6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIGlmICh0aGlzLmFjdGl2aXR5TG9jYXRpb25SZXNwb25zZURhdGUgJiYgdGhpcy5hY3Rpdml0eUxvY2F0aW9uUmVzcG9uc2VEYXRlID4gc3ViKG5ldyBEYXRlKCksIHtob3VyczogMX0pICYmICFmb3JjZSkge1xuICAgICAgcmV0dXJuIG9mKHRoaXMuYWN0aXZpdHlMb2NhdGlvbkNvbGxlY3Rpb24gYXMgQ29sbGVjdGlvbjxBY3Rpdml0eUxvY2F0aW9uPik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldENvbGxlY3Rpb24oXG4gICAgICAgIGFjdGl2aXR5TG9jYXRpb25GYWN0b3J5LFxuICAgICAgICBSb2xlLkNsdWJBZG1pbixcbiAgICAgICAgQ0xVQl9BQ1RJVklUWV9MT0NBVElPTlNfUEFUSCxcbiAgICAgICAge2NsdWJJZH0sXG4gICAgICAgIHtwYXJhbXM6IHtsaW1pdDogJ251bGwnfX1cbiAgICAgICkucGlwZShcbiAgICAgICAgdGFwKChhY3Rpdml0eUxvY2F0aW9uQ29sbGVjdGlvbjogQ29sbGVjdGlvbjxBY3Rpdml0eUxvY2F0aW9uPikgPT4ge1xuICAgICAgICAgIHRoaXMuYWN0aXZpdHlMb2NhdGlvblJlc3BvbnNlRGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgICAgICAgdGhpcy5hY3Rpdml0eUxvY2F0aW9uQ29sbGVjdGlvbiA9IGFjdGl2aXR5TG9jYXRpb25Db2xsZWN0aW9uO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIGdldFNlY3Rpb25BY3Rpdml0eUxvY2F0aW9ucyhzZWN0aW9uSWQ6IHN0cmluZywgZm9yY2U6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIGlmICh0aGlzLmFjdGl2aXR5TG9jYXRpb25SZXNwb25zZURhdGUgJiYgdGhpcy5hY3Rpdml0eUxvY2F0aW9uUmVzcG9uc2VEYXRlID4gc3ViKG5ldyBEYXRlKCksIHtob3VyczogMX0pICYmICFmb3JjZSkge1xuICAgICAgcmV0dXJuIG9mKHRoaXMuYWN0aXZpdHlMb2NhdGlvbkNvbGxlY3Rpb24gYXMgQ29sbGVjdGlvbjxBY3Rpdml0eUxvY2F0aW9uPik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldENvbGxlY3Rpb24oXG4gICAgICAgIGFjdGl2aXR5TG9jYXRpb25GYWN0b3J5LFxuICAgICAgICBSb2xlLlNlY3Rpb25BZG1pbixcbiAgICAgICAgU0VDVElPTl9BQ1RJVklUWV9MT0NBVElPTlNfUEFUSCxcbiAgICAgICAge3NlY3Rpb25JZH0sXG4gICAgICAgIHtwYXJhbXM6IHtsaW1pdDogJ251bGwnfX1cbiAgICAgICkucGlwZShcbiAgICAgICAgdGFwKChhY3Rpdml0eUxvY2F0aW9uQ29sbGVjdGlvbjogQ29sbGVjdGlvbjxBY3Rpdml0eUxvY2F0aW9uPikgPT4ge1xuICAgICAgICAgIHRoaXMuYWN0aXZpdHlMb2NhdGlvblJlc3BvbnNlRGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgICAgICAgdGhpcy5hY3Rpdml0eUxvY2F0aW9uQ29sbGVjdGlvbiA9IGFjdGl2aXR5TG9jYXRpb25Db2xsZWN0aW9uO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIHVwZGF0ZUFjdGl2aXR5TG9jYXRpb24ocm9sZTogUm9sZSwgY2x1Yk9yU2VjdGlvbk9yVGVhbUlkOiBzdHJpbmcsIGxvY2F0aW9uOiBBY3Rpdml0eUxvY2F0aW9uKSB7XG4gICAgc3dpdGNoIChyb2xlKSB7XG4gICAgICBjYXNlIFJvbGUuQ2x1YkFkbWluOlxuICAgICAgICByZXR1cm4gdGhpcy51cGRhdGVDbHViQWN0aXZpdHlMb2NhdGlvbihjbHViT3JTZWN0aW9uT3JUZWFtSWQsIGxvY2F0aW9uKTtcbiAgICAgIGNhc2UgUm9sZS5TZWN0aW9uQWRtaW46XG4gICAgICAgIHJldHVybiB0aGlzLnVwZGF0ZVNlY3Rpb25BY3Rpdml0eUxvY2F0aW9uKGNsdWJPclNlY3Rpb25PclRlYW1JZCwgbG9jYXRpb24pO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgaW52YWxpZFJvbGVFcnJvcjtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVDbHViQWN0aXZpdHlMb2NhdGlvbihjbHViSWQ6IHN0cmluZywgbG9jYXRpb246IEFjdGl2aXR5TG9jYXRpb24pIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAudXBkYXRlUmVzb3VyY2UoXG4gICAgICAgIGFjdGl2aXR5TG9jYXRpb25GYWN0b3J5LFxuICAgICAgICBSb2xlLkNsdWJBZG1pbixcbiAgICAgICAgQ0xVQl9BQ1RJVklUWV9MT0NBVElPTl9QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgY2x1YklkLFxuICAgICAgICAgIGxvY2F0aW9uSWQ6IGxvY2F0aW9uLmlkXG4gICAgICAgIH0sXG4gICAgICAgIGxvY2F0aW9uXG4gICAgICApO1xuICB9XG5cbiAgdXBkYXRlTWVtYmVyQWN0aXZpdHlBdHRlbmRhbmNlKG1lbWJlcklkOiBzdHJpbmcsIGFjdGl2aXR5SWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5wb3N0UmVzb3VyY2VOb1Jlc3BvbnNlKFxuICAgICAgICBSb2xlLk1lbWJlckFkbWluLFxuICAgICAgICBNRU1CRVJfQUNUSVZJVFlfQVRURU5EQU5DRV9QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgbWVtYmVySWQsXG4gICAgICAgICAgYWN0aXZpdHlJZFxuICAgICAgICB9LFxuICAgICAgICB7fVxuICAgICAgKTtcbiAgfVxuXG4gIHVwZGF0ZVNlY3Rpb25BY3Rpdml0eUxvY2F0aW9uKHNlY3Rpb25JZDogc3RyaW5nLCBsb2NhdGlvbjogQWN0aXZpdHlMb2NhdGlvbikge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC51cGRhdGVSZXNvdXJjZShcbiAgICAgICAgYWN0aXZpdHlMb2NhdGlvbkZhY3RvcnksXG4gICAgICAgIFJvbGUuU2VjdGlvbkFkbWluLFxuICAgICAgICBTRUNUSU9OX0FDVElWSVRZX0xPQ0FUSU9OX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICBzZWN0aW9uSWQsXG4gICAgICAgICAgbG9jYXRpb25JZDogbG9jYXRpb24uaWRcbiAgICAgICAgfSxcbiAgICAgICAgbG9jYXRpb25cbiAgICAgICk7XG4gIH1cblxuICBnZXRUZWFtQWN0aXZpdHlOZXcodGVhbUlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0UmVzb3VyY2UoXG4gICAgICAgIGFjdGl2aXR5RmFjdG9yeSxcbiAgICAgICAgUm9sZS5UZWFtQWRtaW4sXG4gICAgICAgIFRFQU1fQUNUSVZJVFlfTkVXX1BBVEgsXG4gICAgICAgIHt0ZWFtSWR9XG4gICAgICApO1xuICB9XG5cbiAgZ2V0VGVhbUFjdGl2aXR5UGFydGljaXBhbnRzKHRlYW1JZDogc3RyaW5nLCBhY3Rpdml0eUlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0Q29sbGVjdGlvbihcbiAgICAgICAgc2VhcmNoTWVtYmVyRmFjdG9yeSxcbiAgICAgICAgUm9sZS5UZWFtQWRtaW4sXG4gICAgICAgIFRFQU1fQUNUSVZJVFlfUEFSVElDSVBBTlRTX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICB0ZWFtSWQsXG4gICAgICAgICAgYWN0aXZpdHlJZFxuICAgICAgICB9LFxuICAgICAgICB7cGFyYW1zOiB7bGltaXQ6ICdudWxsJ319XG4gICAgICApO1xuICB9XG5cbiAgZ2V0VGVhbUFjdGl2aXR5R3Vlc3RzKHRlYW1JZDogc3RyaW5nLCBhY3Rpdml0eUlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0Q29sbGVjdGlvbihcbiAgICAgICAgZ3Vlc3RGYWN0b3J5LFxuICAgICAgICBSb2xlLlRlYW1BZG1pbixcbiAgICAgICAgVEVBTV9BQ1RJVklUWV9HVUVTVFNfUEFUSCxcbiAgICAgICAgeyB0ZWFtSWQsIGFjdGl2aXR5SWQgfSxcbiAgICAgICAgeyBwYXJhbXM6IHsgbGltaXQ6ICdudWxsJyB9IH1cbiAgICAgICk7XG4gIH1cblxuICBhZGRUZWFtQWN0aXZpdHlHdWVzdCh0ZWFtSWQ6IHN0cmluZywgYWN0aXZpdHlJZDogc3RyaW5nLCBkYXRhOiB7IG5hbWU6IHN0cmluZzsgY29tbWVudD86IHN0cmluZyB9KSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLnBvc3RSZXNvdXJjZShcbiAgICAgICAgZ3Vlc3RGYWN0b3J5LFxuICAgICAgICBSb2xlLlRlYW1BZG1pbixcbiAgICAgICAgVEVBTV9BQ1RJVklUWV9HVUVTVFNfUEFUSCxcbiAgICAgICAgeyB0ZWFtSWQsIGFjdGl2aXR5SWQgfSxcbiAgICAgICAgZGF0YVxuICAgICAgKTtcbiAgfVxuXG4gIHVwZGF0ZVRlYW1BY3Rpdml0eUd1ZXN0KHRlYW1JZDogc3RyaW5nLCBhY3Rpdml0eUlkOiBzdHJpbmcsIGd1ZXN0SWQ6IHN0cmluZywgZGF0YTogeyBuYW1lOiBzdHJpbmc7IGNvbW1lbnQ/OiBzdHJpbmcgfSkge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC51cGRhdGVSZXNvdXJjZShcbiAgICAgICAgZ3Vlc3RGYWN0b3J5LFxuICAgICAgICBSb2xlLlRlYW1BZG1pbixcbiAgICAgICAgVEVBTV9BQ1RJVklUWV9HVUVTVF9QQVRILFxuICAgICAgICB7IHRlYW1JZCwgYWN0aXZpdHlJZCwgZ3Vlc3RJZCB9LFxuICAgICAgICBkYXRhXG4gICAgICApO1xuICB9XG5cbiAgZGVsZXRlVGVhbUFjdGl2aXR5R3Vlc3QodGVhbUlkOiBzdHJpbmcsIGFjdGl2aXR5SWQ6IHN0cmluZywgZ3Vlc3RJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmRlbGV0ZVJlc291cmNlKFxuICAgICAgICBSb2xlLlRlYW1BZG1pbixcbiAgICAgICAgVEVBTV9BQ1RJVklUWV9HVUVTVF9QQVRILFxuICAgICAgICB7IHRlYW1JZCwgYWN0aXZpdHlJZCwgZ3Vlc3RJZCB9XG4gICAgICApO1xuICB9XG5cbiAgYWRkTWVtYmVyQWN0aXZpdHlHdWVzdChtZW1iZXJJZDogc3RyaW5nLCBpbnZpdGVJZDogc3RyaW5nLCBkYXRhOiB7IG5hbWU6IHN0cmluZzsgY29tbWVudD86IHN0cmluZyB9KSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLnBvc3RSZXNvdXJjZShcbiAgICAgICAgZ3Vlc3RGYWN0b3J5LFxuICAgICAgICBSb2xlLk1lbWJlckFkbWluLFxuICAgICAgICBNRU1CRVJfQUNUSVZJVFlfSU5WSVRFX0dVRVNUU19QQVRILFxuICAgICAgICB7IG1lbWJlcklkLCBpbnZpdGVJZCB9LFxuICAgICAgICBkYXRhXG4gICAgICApO1xuICB9XG5cbiAgdXBkYXRlTWVtYmVyQWN0aXZpdHlHdWVzdChtZW1iZXJJZDogc3RyaW5nLCBpbnZpdGVJZDogc3RyaW5nLCBndWVzdElkOiBzdHJpbmcsIGRhdGE6IHsgbmFtZTogc3RyaW5nOyBjb21tZW50Pzogc3RyaW5nIH0pIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAudXBkYXRlUmVzb3VyY2UoXG4gICAgICAgIGd1ZXN0RmFjdG9yeSxcbiAgICAgICAgUm9sZS5NZW1iZXJBZG1pbixcbiAgICAgICAgTUVNQkVSX0FDVElWSVRZX0lOVklURV9HVUVTVF9QQVRILFxuICAgICAgICB7IG1lbWJlcklkLCBpbnZpdGVJZCwgZ3Vlc3RJZCB9LFxuICAgICAgICBkYXRhXG4gICAgICApO1xuICB9XG5cbiAgZGVsZXRlTWVtYmVyQWN0aXZpdHlHdWVzdChtZW1iZXJJZDogc3RyaW5nLCBpbnZpdGVJZDogc3RyaW5nLCBndWVzdElkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZGVsZXRlUmVzb3VyY2UoXG4gICAgICAgIFJvbGUuTWVtYmVyQWRtaW4sXG4gICAgICAgIE1FTUJFUl9BQ1RJVklUWV9JTlZJVEVfR1VFU1RfUEFUSCxcbiAgICAgICAgeyBtZW1iZXJJZCwgaW52aXRlSWQsIGd1ZXN0SWQgfVxuICAgICAgKTtcbiAgfVxuXG4gIGdldEFjdGl2aXR5U2V0dGluZ3Mocm9sZTogUm9sZSwgaXRlbUlkOiBzdHJpbmcpIHtcbiAgICBzd2l0Y2ggKHJvbGUpIHtcbiAgICAgIGNhc2UgUm9sZS5DbHViQWRtaW46XG4gICAgICAgIHJldHVybiB0aGlzLmdldENsdWJBY3Rpdml0eVNldHRpbmdzKGl0ZW1JZCk7XG4gICAgICBjYXNlIFJvbGUuU2VjdGlvbkFkbWluOlxuICAgICAgICByZXR1cm4gdGhpcy5nZXRTZWN0aW9uQWN0aXZpdHlTZXR0aW5ncyhpdGVtSWQpO1xuICAgICAgY2FzZSBSb2xlLlRlYW1BZG1pbjpcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VGVhbUFjdGl2aXR5U2V0dGluZ3MoaXRlbUlkKTtcbiAgICAgIGNhc2UgUm9sZS5NZW1iZXJBZG1pbjpcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TWVtYmVyQWN0aXZpdHlTZXR0aW5ncyhpdGVtSWQpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgaW52YWxpZFJvbGVFcnJvcjtcbiAgICB9XG4gIH1cblxuICBnZXRUZWFtQWN0aXZpdHlTZXR0aW5ncyh0ZWFtSWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRSZXNvdXJjZShcbiAgICAgICAgYWN0aXZpdHlTZXR0aW5nc0ZhY3RvcnksXG4gICAgICAgIFJvbGUuVGVhbUFkbWluLFxuICAgICAgICBURUFNX0FDVElWSVRZX1NFVFRJTkdTX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICB0ZWFtSWRcbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIGdldE1lbWJlckFjdGl2aXR5U2V0dGluZ3MobWVtYmVySWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRSZXNvdXJjZShcbiAgICAgICAgYWN0aXZpdHlTZXR0aW5nc0ZhY3RvcnksXG4gICAgICAgIFJvbGUuTWVtYmVyQWRtaW4sXG4gICAgICAgIE1FTUJFUl9BQ1RJVklUWV9TRVRUSU5HU19QQVRILFxuICAgICAgICB7bWVtYmVySWR9XG4gICAgICApO1xuICB9XG5cbiAgZ2V0U2VjdGlvbkFjdGl2aXR5U2V0dGluZ3Moc2VjdGlvbklkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0UmVzb3VyY2UoXG4gICAgICAgIGFjdGl2aXR5U2V0dGluZ3NGYWN0b3J5LFxuICAgICAgICBSb2xlLlNlY3Rpb25BZG1pbixcbiAgICAgICAgU0VDVElPTl9BQ1RJVklUWV9TRVRUSU5HU19QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgc2VjdGlvbklkXG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cblxuICBnZXRDbHViQWN0aXZpdHlTZXR0aW5ncyhjbHViSWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRSZXNvdXJjZShcbiAgICAgICAgYWN0aXZpdHlTZXR0aW5nc0ZhY3RvcnksXG4gICAgICAgIFJvbGUuQ2x1YkFkbWluLFxuICAgICAgICBDTFVCX0FDVElWSVRZX1NFVFRJTkdTX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICBjbHViSWQsXG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cblxuICBnZXRBY3Rpdml0eVR5cGVzKHJvbGU6IFJvbGUsIGl0ZW1JZDogc3RyaW5nKSB7XG4gICAgc3dpdGNoIChyb2xlKSB7XG4gICAgICBjYXNlIFJvbGUuQ2x1YkFkbWluOlxuICAgICAgICByZXR1cm4gdGhpcy5nZXRDbHViQWN0aXZpdHlUeXBlcyhpdGVtSWQpO1xuICAgICAgY2FzZSBSb2xlLlNlY3Rpb25BZG1pbjpcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U2VjdGlvbkFjdGl2aXR5VHlwZXMoaXRlbUlkKTtcbiAgICAgIGNhc2UgUm9sZS5UZWFtQWRtaW46XG4gICAgICAgIHJldHVybiB0aGlzLmdldFRlYW1BY3Rpdml0eVR5cGVzKGl0ZW1JZCk7XG4gICAgICBjYXNlIFJvbGUuTWVtYmVyQWRtaW46XG4gICAgICAgIHJldHVybiB0aGlzLmdldE1lbWJlckFjdGl2aXR5VHlwZXMoaXRlbUlkKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IGludmFsaWRSb2xlRXJyb3I7XG4gICAgfVxuICB9XG5cbiAgZ2V0VGVhbUFjdGl2aXR5UnVsZXNBdHRyaWJ1dGVzKHRlYW1JZDogc3RyaW5nLCBxdWVyeVN0cmluZzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldENvbGxlY3Rpb24oXG4gICAgICAgIHNlYXJjaEF0dHJpYnV0ZUZhY3RvcnksXG4gICAgICAgIFJvbGUuVGVhbUFkbWluLFxuICAgICAgICBURUFNX0FDVElWSVRZX1JVTEVfQVRUUklCVVRFU19QQVRILFxuICAgICAgICB7dGVhbUlkfSxcbiAgICAgICAge3BhcmFtczoge3E6IHF1ZXJ5U3RyaW5nfX1cbiAgICAgIClcbiAgfVxuXG4gIGdldFRlYW1BY3Rpdml0eVJ1bGVUZWFtcyh0ZWFtSWQ6IHN0cmluZywgcXVlcnlTdHJpbmc6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRDb2xsZWN0aW9uKFxuICAgICAgICBzZWFyY2hUZWFtRmFjdG9yeSxcbiAgICAgICAgUm9sZS5UZWFtQWRtaW4sXG4gICAgICAgIFRFQU1fQUNUSVZJVFlfUlVMRV9URUFNU19QQVRILFxuICAgICAgICB7dGVhbUlkfSxcbiAgICAgICAge3BhcmFtczoge3E6IHF1ZXJ5U3RyaW5nfX1cbiAgICAgIClcbiAgfVxuXG4gIGdldFRlYW1BY3Rpdml0eVR5cGVzKHRlYW1JZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldENvbGxlY3Rpb24oXG4gICAgICAgIGFjdGl2aXR5VHlwZUZhY3RvcnksXG4gICAgICAgIFJvbGUuVGVhbUFkbWluLFxuICAgICAgICBURUFNX0FDVElWSVRZX1RZUEVTX1BBVEgsXG4gICAgICAgIHt0ZWFtSWR9LFxuICAgICAgICB7cGFyYW1zOiB7bGltaXQ6ICdudWxsJ319XG4gICAgICApXG4gIH1cblxuICBnZXRNZW1iZXJBY3Rpdml0eVR5cGVzKG1lbWJlcklkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0Q29sbGVjdGlvbihcbiAgICAgICAgYWN0aXZpdHlUeXBlRmFjdG9yeSxcbiAgICAgICAgUm9sZS5NZW1iZXJBZG1pbixcbiAgICAgICAgTUVNQkVSX0FDVElWSVRZX1RZUEVTX1BBVEgsXG4gICAgICAgIHttZW1iZXJJZH0sXG4gICAgICAgIHtwYXJhbXM6IHtsaW1pdDogJ251bGwnfX1cbiAgICAgIClcbiAgfVxuXG4gIGdldENsdWJBY3Rpdml0eVR5cGVzKGNsdWJJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldENvbGxlY3Rpb24oXG4gICAgICAgIGFjdGl2aXR5VHlwZUZhY3RvcnksXG4gICAgICAgIFJvbGUuQ2x1YkFkbWluLFxuICAgICAgICBDTFVCX0FDVElWSVRZX1RZUEVTX1BBVEgsXG4gICAgICAgIHtjbHViSWR9LFxuICAgICAgICB7cGFyYW1zOiB7bGltaXQ6ICdudWxsJ319XG4gICAgICApO1xuICB9XG5cbiAgZ2V0U2VjdGlvbkFjdGl2aXR5VHlwZXMoc2VjdGlvbklkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0Q29sbGVjdGlvbihcbiAgICAgICAgYWN0aXZpdHlUeXBlRmFjdG9yeSxcbiAgICAgICAgUm9sZS5TZWN0aW9uQWRtaW4sXG4gICAgICAgIFNFQ1RJT05fQUNUSVZJVFlfVFlQRVNfUEFUSCxcbiAgICAgICAge3NlY3Rpb25JZH0sXG4gICAgICAgIHtwYXJhbXM6IHtsaW1pdDogJ251bGwnfX1cbiAgICAgICk7XG4gIH1cblxuICB1cGRhdGVBY3Rpdml0eVR5cGUocm9sZTogUm9sZSwgY2x1Yk9yU2VjdGlvbk9yVGVhbUlkOiBzdHJpbmcsIGFjdGl2aXR5VHlwZTogQWN0aXZpdHlUeXBlKSB7XG4gICAgc3dpdGNoIChyb2xlKSB7XG4gICAgICBjYXNlIFJvbGUuQ2x1YkFkbWluOlxuICAgICAgICByZXR1cm4gdGhpcy51cGRhdGVDbHViQWN0aXZpdHlUeXBlKGNsdWJPclNlY3Rpb25PclRlYW1JZCwgYWN0aXZpdHlUeXBlKTtcbiAgICAgIGNhc2UgUm9sZS5TZWN0aW9uQWRtaW46XG4gICAgICAgIHJldHVybiB0aGlzLnVwZGF0ZVNlY3Rpb25BY3Rpdml0eVR5cGUoY2x1Yk9yU2VjdGlvbk9yVGVhbUlkLCBhY3Rpdml0eVR5cGUpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgaW52YWxpZFJvbGVFcnJvcjtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVDbHViQWN0aXZpdHlUeXBlKGNsdWJJZDogc3RyaW5nLCBhY3Rpdml0eVR5cGU6IEFjdGl2aXR5VHlwZSkge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC51cGRhdGVSZXNvdXJjZShcbiAgICAgICAgYWN0aXZpdHlUeXBlRmFjdG9yeSxcbiAgICAgICAgUm9sZS5DbHViQWRtaW4sXG4gICAgICAgIENMVUJfQUNUSVZJVFlfVFlQRV9QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgY2x1YklkLFxuICAgICAgICAgIHR5cGVJZDogYWN0aXZpdHlUeXBlLmlkLFxuICAgICAgICB9LFxuICAgICAgICBhY3Rpdml0eVR5cGUsXG4gICAgICApO1xuICB9XG5cbiAgdXBkYXRlU2VjdGlvbkFjdGl2aXR5VHlwZShzZWN0aW9uSWQ6IHN0cmluZywgYWN0aXZpdHlUeXBlOiBBY3Rpdml0eVR5cGUpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAudXBkYXRlUmVzb3VyY2UoXG4gICAgICAgIGFjdGl2aXR5VHlwZUZhY3RvcnksXG4gICAgICAgIFJvbGUuU2VjdGlvbkFkbWluLFxuICAgICAgICBTRUNUSU9OX0FDVElWSVRZX1RZUEVfUEFUSCxcbiAgICAgICAge1xuICAgICAgICAgIHNlY3Rpb25JZCxcbiAgICAgICAgICB0eXBlSWQ6IGFjdGl2aXR5VHlwZS5pZCxcbiAgICAgICAgfSxcbiAgICAgICAgYWN0aXZpdHlUeXBlLFxuICAgICAgKTtcbiAgfVxuXG4gIGdldFRlYW1DYWxlbmRhckV2ZW50cyh0ZWFtSWQ6IHN0cmluZywgc3RhcnREYXRlOiBzdHJpbmcgfCBudWxsID0gbnVsbCwgZW5kRGF0ZTogc3RyaW5nIHwgbnVsbCA9IG51bGwsIG9wZW5BY3Rpdml0eTogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgY29uc3QgcGFyYW1zOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge2xpbWl0OiAnbnVsbCd9O1xuXG4gICAgaWYgKHN0YXJ0RGF0ZSkge1xuICAgICAgcGFyYW1zWydzZWFyY2hfc3RhcnRfZGF5J10gPSBzdGFydERhdGU7XG4gICAgfVxuXG4gICAgaWYgKGVuZERhdGUpIHtcbiAgICAgIHBhcmFtc1snc2VhcmNoX2VuZF9kYXknXSA9IGVuZERhdGU7XG4gICAgfVxuXG4gICAgaWYgKG9wZW5BY3Rpdml0eSkge1xuICAgICAgcGFyYW1zWydvcGVuX2FjdGl2aXR5J10gPSAndHJ1ZSc7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldENvbGxlY3Rpb24oXG4gICAgICAgIGV2ZW50RmFjdG9yeSxcbiAgICAgICAgUm9sZS5UZWFtQWRtaW4sXG4gICAgICAgIFRFQU1fQ0FMRU5EQVJfUEFUSCxcbiAgICAgICAge3RlYW1JZH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwYXJhbXNcbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIHJlc2VuZEludml0ZSh0ZWFtSWQ6IHN0cmluZywgYWN0aXZpdHlJZDogc3RyaW5nLCBhY3Rpdml0eUludml0ZUlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAucG9zdFJlc291cmNlKFxuICAgICAgICBhY3Rpdml0eUludml0ZUZhY3RvcnksXG4gICAgICAgIFJvbGUuVGVhbUFkbWluLFxuICAgICAgICBURUFNX0FDVElWSVRZX0lOVklURV9SRVNFTkRfUEFUSCxcbiAgICAgICAge1xuICAgICAgICAgIHRlYW1JZCxcbiAgICAgICAgICBhY3Rpdml0eUlkLFxuICAgICAgICAgIGFjdGl2aXR5SW52aXRlSWRcbiAgICAgICAgfSxcbiAgICAgICAge31cbiAgICAgICk7XG4gIH1cblxuICByZW1vdmVNZW1iZXJPcGVuQWN0aXZpdHkobWVtYmVySWQ6IHN0cmluZywgYWN0aXZpdHlJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmRlbGV0ZVJlc291cmNlKFxuICAgICAgICBSb2xlLk1lbWJlckFkbWluLFxuICAgICAgICBNRU1CRVJfT1BFTl9BQ1RJVklUWV9SRVNQT05EX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICBtZW1iZXJJZCxcbiAgICAgICAgICBhY3Rpdml0eUlkXG4gICAgICAgIH1cbiAgICAgIClcbiAgfVxuXG4gIHJlbW92ZVB1YmxpY09wZW5BY3Rpdml0eShhY3Rpdml0eUlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZGVsZXRlUmVzb3VyY2UoXG4gICAgICAgIFJvbGUuUHVibGljLFxuICAgICAgICBQVUJMSUNfT1BFTl9BQ1RJVklUWV9SRVNQT05EX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICBhY3Rpdml0eUlkXG4gICAgICAgIH1cbiAgICAgIClcbiAgfVxuXG4gIHNpZ25VcE1lbWJlck9wZW5BY3Rpdml0eShtZW1iZXJJZDogc3RyaW5nLCBhY3Rpdml0eUlkOiBzdHJpbmcsIGNvbW1lbnQ6IHN0cmluZywgb3B0aW9uYWxGZWVzOiBBcnJheTxzdHJpbmc+LCByZXNwb25zZXM6IEFycmF5PEFjdGl2aXR5UXVlc3Rpb25SZXNwb25zZT4pIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAudXBkYXRlUmVzb3VyY2UoXG4gICAgICAgIG9wZW5BY3Rpdml0eUZhY3RvcnksXG4gICAgICAgIFJvbGUuTWVtYmVyQWRtaW4sXG4gICAgICAgIE1FTUJFUl9PUEVOX0FDVElWSVRZX1JFU1BPTkRfV0lUSF9EQVRBX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICBtZW1iZXJJZCxcbiAgICAgICAgICBhY3Rpdml0eUlkXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBjb21tZW50LFxuICAgICAgICAgIG9wdGlvbmFsX2ZlZXM6IG9wdGlvbmFsRmVlcyxcbiAgICAgICAgICByZXNwb25zZXNcbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIHNpZ25VcFB1YmxpY09wZW5BY3Rpdml0eShhY3Rpdml0eUlkOiBzdHJpbmcsIGNvbW1lbnQ6IHN0cmluZywgb3B0aW9uYWxGZWVzOiBBcnJheTxzdHJpbmc+LCByZXNwb25zZXM6IEFycmF5PEFjdGl2aXR5UXVlc3Rpb25SZXNwb25zZT4pIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAudXBkYXRlUmVzb3VyY2UoXG4gICAgICAgIG9wZW5BY3Rpdml0eUZhY3RvcnksXG4gICAgICAgIFJvbGUuUHVibGljLFxuICAgICAgICBQVUJMSUNfT1BFTl9BQ1RJVklUWV9SRVNQT05EX1dJVEhfREFUQV9QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgYWN0aXZpdHlJZFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgY29tbWVudCxcbiAgICAgICAgICBvcHRpb25hbF9mZWVzOiBvcHRpb25hbEZlZXMsXG4gICAgICAgICAgcmVzcG9uc2VzXG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cblxuICB1cGRhdGVNZW1iZXJBY3Rpdml0eShtZW1iZXJJZDogc3RyaW5nLCBhY3Rpdml0eUludml0ZUlkOiBzdHJpbmcsIGFjdGl2aXR5SW52aXRlOiB1bmtub3duKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLnVwZGF0ZVJlc291cmNlKFxuICAgICAgICBhY3Rpdml0eUludml0ZUZhY3RvcnksXG4gICAgICAgIFJvbGUuTWVtYmVyQWRtaW4sXG4gICAgICAgIE1FTUJFUl9BQ1RJVklUWV9JTlZJVEVfUEFUSCxcbiAgICAgICAge1xuICAgICAgICAgIG1lbWJlcklkLFxuICAgICAgICAgIGFjdGl2aXR5SW52aXRlSWRcbiAgICAgICAgfSxcbiAgICAgICAgYWN0aXZpdHlJbnZpdGVcbiAgICAgICk7XG4gIH1cblxuICB1cGRhdGVQdWJsaWNNZW1iZXJBY3Rpdml0eUludml0ZShhY3Rpdml0eUludml0ZUlkOiBzdHJpbmcsIGFjdGl2aXR5SW52aXRlOiB1bmtub3duKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLnVwZGF0ZVJlc291cmNlKFxuICAgICAgICBhY3Rpdml0eUludml0ZUZhY3RvcnksXG4gICAgICAgIFJvbGUuUHVibGljLFxuICAgICAgICBQVUJMSUNfTUVNQkVSX0FDVElWSVRZX0lOVklURV9QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgYWN0aXZpdHlJbnZpdGVJZFxuICAgICAgICB9LFxuICAgICAgICBhY3Rpdml0eUludml0ZVxuICAgICAgKTtcbiAgfVxuXG4gIHVwZGF0ZVB1YmxpY0FjdGl2aXR5SW52aXRlKGlkOiBzdHJpbmcsIHRva2VuOiBzdHJpbmcsIGFjdGl2aXR5SW52aXRlOiB1bmtub3duKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLnVwZGF0ZVJlc291cmNlKFxuICAgICAgICBhY3Rpdml0eUludml0ZUZhY3RvcnksXG4gICAgICAgIFJvbGUuUHVibGljLFxuICAgICAgICBQVUJMSUNfQUNUSVZJVFlfSU5WSVRFX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICBpZCxcbiAgICAgICAgICB0b2tlblxuICAgICAgICB9LFxuICAgICAgICBhY3Rpdml0eUludml0ZVxuICAgICAgKTtcbiAgfVxuXG4gIHVwZGF0ZVB1YmxpY09wZW5BY3Rpdml0eUludml0ZShpZDogc3RyaW5nLCBhY3Rpdml0eUludml0ZTogdW5rbm93bikge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC51cGRhdGVSZXNvdXJjZShcbiAgICAgICAgYWN0aXZpdHlJbnZpdGVGYWN0b3J5LFxuICAgICAgICBSb2xlLlB1YmxpYyxcbiAgICAgICAgUFVCTElDX09QRU5fQUNUSVZJVFlfSU5WSVRFX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICBpZFxuICAgICAgICB9LFxuICAgICAgICBhY3Rpdml0eUludml0ZVxuICAgICAgKTtcbiAgfVxuXG4gIGdldFB1YmxpY09wZW5BY3Rpdml0eUd1ZXN0cyhhY3Rpdml0eUlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0Q29sbGVjdGlvbihcbiAgICAgICAgZ3Vlc3RGYWN0b3J5LFxuICAgICAgICBSb2xlLlB1YmxpYyxcbiAgICAgICAgUFVCTElDX09QRU5fQUNUSVZJVFlfR1VFU1RfTElTVF9QQVRILFxuICAgICAgICB7IGFjdGl2aXR5SWQgfSxcbiAgICAgICAgeyBwYXJhbXM6IHsgbGltaXQ6ICdudWxsJyB9IH1cbiAgICAgICk7XG4gIH1cblxuICBhZGRQdWJsaWNBY3Rpdml0eUd1ZXN0QnlUb2tlbihpZDogc3RyaW5nLCB0b2tlbjogc3RyaW5nLCBkYXRhOiB7IG5hbWU6IHN0cmluZzsgY29tbWVudD86IHN0cmluZyB9KSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLnBvc3RSZXNvdXJjZShndWVzdEZhY3RvcnksIFJvbGUuUHVibGljLCBQVUJMSUNfQUNUSVZJVFlfSU5WSVRFX0dVRVNUX0xJU1RfUEFUSCwgeyBpZCwgdG9rZW4gfSwgZGF0YSk7XG4gIH1cblxuICB1cGRhdGVQdWJsaWNBY3Rpdml0eUd1ZXN0QnlUb2tlbihpZDogc3RyaW5nLCB0b2tlbjogc3RyaW5nLCBndWVzdElkOiBzdHJpbmcsIGRhdGE6IHsgbmFtZTogc3RyaW5nOyBjb21tZW50Pzogc3RyaW5nIH0pIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAudXBkYXRlUmVzb3VyY2UoZ3Vlc3RGYWN0b3J5LCBSb2xlLlB1YmxpYywgUFVCTElDX0FDVElWSVRZX0lOVklURV9HVUVTVF9ERVRBSUxfUEFUSCwgeyBpZCwgdG9rZW4sIGd1ZXN0SWQgfSwgZGF0YSk7XG4gIH1cblxuICBkZWxldGVQdWJsaWNBY3Rpdml0eUd1ZXN0QnlUb2tlbihpZDogc3RyaW5nLCB0b2tlbjogc3RyaW5nLCBndWVzdElkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZGVsZXRlUmVzb3VyY2UoUm9sZS5QdWJsaWMsIFBVQkxJQ19BQ1RJVklUWV9JTlZJVEVfR1VFU1RfREVUQUlMX1BBVEgsIHsgaWQsIHRva2VuLCBndWVzdElkIH0pO1xuICB9XG5cbiAgYWRkUHVibGljT3BlbkFjdGl2aXR5R3Vlc3QoYWN0aXZpdHlJZDogc3RyaW5nLCBkYXRhOiB7IG5hbWU6IHN0cmluZzsgY29tbWVudD86IHN0cmluZyB9KSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLnBvc3RSZXNvdXJjZShndWVzdEZhY3RvcnksIFJvbGUuUHVibGljLCBQVUJMSUNfT1BFTl9BQ1RJVklUWV9HVUVTVF9MSVNUX1BBVEgsIHsgYWN0aXZpdHlJZCB9LCBkYXRhKTtcbiAgfVxuXG4gIHVwZGF0ZVB1YmxpY09wZW5BY3Rpdml0eUd1ZXN0KGFjdGl2aXR5SWQ6IHN0cmluZywgZ3Vlc3RJZDogc3RyaW5nLCBkYXRhOiB7IG5hbWU6IHN0cmluZzsgY29tbWVudD86IHN0cmluZyB9KSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLnVwZGF0ZVJlc291cmNlKGd1ZXN0RmFjdG9yeSwgUm9sZS5QdWJsaWMsIFBVQkxJQ19PUEVOX0FDVElWSVRZX0dVRVNUX0RFVEFJTF9QQVRILCB7IGFjdGl2aXR5SWQsIGd1ZXN0SWQgfSwgZGF0YSk7XG4gIH1cblxuICBkZWxldGVQdWJsaWNPcGVuQWN0aXZpdHlHdWVzdChhY3Rpdml0eUlkOiBzdHJpbmcsIGd1ZXN0SWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5kZWxldGVSZXNvdXJjZShSb2xlLlB1YmxpYywgUFVCTElDX09QRU5fQUNUSVZJVFlfR1VFU1RfREVUQUlMX1BBVEgsIHsgYWN0aXZpdHlJZCwgZ3Vlc3RJZCB9KTtcbiAgfVxuXG4gIHVwZGF0ZVRlYW1BY3Rpdml0eSh0ZWFtSWQ6IHN0cmluZywgYWN0aXZpdHk6IEFjdGl2aXR5KSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLnVwZGF0ZVJlc291cmNlKFxuICAgICAgICBhY3Rpdml0eUZhY3RvcnksXG4gICAgICAgIFJvbGUuVGVhbUFkbWluLFxuICAgICAgICBURUFNX0FDVElWSVRZX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICB0ZWFtSWQsXG4gICAgICAgICAgaWQ6IGFjdGl2aXR5LmlkXG4gICAgICAgIH0sXG4gICAgICAgIHRoaXMucmVtb3ZlVW51c2VkQWN0aXZpdHlGaWVsZHMoey4uLmFjdGl2aXR5fSlcbiAgICAgICk7XG4gIH1cblxuICB1cGRhdGVUZWFtQWN0aXZpdHlRdWVzdGlvbih0ZWFtSWQ6IHN0cmluZywgcXVlc3Rpb246IEFjdGl2aXR5UXVlc3Rpb24pIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAudXBkYXRlUmVzb3VyY2UoXG4gICAgICAgIGFjdGl2aXR5UXVlc3Rpb25GYWN0b3J5LFxuICAgICAgICBSb2xlLlRlYW1BZG1pbixcbiAgICAgICAgVEVBTV9BQ1RJVklUWV9RVUVTVElPTl9QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgdGVhbUlkLFxuICAgICAgICAgIGlkOiBxdWVzdGlvbi5pZFxuICAgICAgICB9LFxuICAgICAgICB0aGlzLnJlbW92ZVVudXNlZEFjdGl2aXR5UXVlc3Rpb25GaWVsZHMoey4uLnF1ZXN0aW9ufSlcbiAgICAgIClcbiAgfVxuXG4gIHVwZGF0ZVRlYW1BY3Rpdml0eUludml0ZSh0ZWFtSWQ6IHN0cmluZywgYWN0aXZpdHlJZDogc3RyaW5nLCBhY3Rpdml0eUludml0ZUlkOiBzdHJpbmcsIGFjdGl2aXR5SW52aXRlOiBNZW1iZXJBY3Rpdml0eUludml0ZSkge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC51cGRhdGVSZXNvdXJjZShcbiAgICAgICAgbWVtYmVyQWN0aXZpdHlJbnZpdGVGYWN0b3J5LFxuICAgICAgICBSb2xlLlRlYW1BZG1pbixcbiAgICAgICAgVEVBTV9BQ1RJVklUWV9JTlZJVEVfUEFUSCxcbiAgICAgICAge1xuICAgICAgICAgIHRlYW1JZCxcbiAgICAgICAgICBhY3Rpdml0eUlkLFxuICAgICAgICAgIGFjdGl2aXR5SW52aXRlSWRcbiAgICAgICAgfSxcbiAgICAgICAgYWN0aXZpdHlJbnZpdGVcbiAgICAgIClcbiAgfVxuXG4gIHVwZGF0ZVRlYW1BY3Rpdml0eVBhcnRpY2lwYW50cyh0ZWFtSWQ6IHN0cmluZywgYWN0aXZpdHlJZDogc3RyaW5nLCBtZW1iZXJzOiBBcnJheTxzdHJpbmc+KSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLnBvc3RSZXNvdXJjZShcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICB9LFxuICAgICAgICBSb2xlLlRlYW1BZG1pbixcbiAgICAgICAgVEVBTV9BQ1RJVklUWV9QQVJUSUNJUEFOVFNfUEFUSCxcbiAgICAgICAge1xuICAgICAgICAgIHRlYW1JZCxcbiAgICAgICAgICBhY3Rpdml0eUlkXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtZW1iZXJzXG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cblxuICBwcml2YXRlIGdldE9wZW5BY3Rpdml0eURhdGVQYXJhbXMoc3RhcnREYXRlOiBzdHJpbmcgfCBudWxsLCBlbmREYXRlOiBzdHJpbmcgfCBudWxsLCBhbGw6IGJvb2xlYW4gPSBmYWxzZSk6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9IHtcbiAgICBsZXQgcGFyYW1zOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge1xuICAgICAgJ2FsbCc6IGFsbCA/ICd0cnVlJyA6ICdmYWxzZSdcbiAgICB9O1xuXG4gICAgaWYgKHN0YXJ0RGF0ZSkge1xuICAgICAgcGFyYW1zWydzdGFydF9kYXRlJ10gPSBzdGFydERhdGUgYXMgc3RyaW5nO1xuICAgIH1cblxuICAgIGlmIChlbmREYXRlKSB7XG4gICAgICBwYXJhbXNbJ2VuZF9kYXRlJ10gPSBlbmREYXRlIGFzIHN0cmluZztcbiAgICB9XG5cbiAgICByZXR1cm4gcGFyYW1zO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRPcGVuQWN0aXZpdHlTZWFyY2hQYXJhbXMob3BlbkFjdGl2aXR5U2VhcmNoUGFyYW1zOiBPcGVuQWN0aXZpdHlTZWFyY2hQYXJhbXNJbnRlcmZhY2UpOiB7W2tleTogc3RyaW5nXTogc3RyaW5nfSB7XG4gICAgY29uc3QgcGFyYW1zOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge1xuICAgICAgZW5kX2RhdGU6IG9wZW5BY3Rpdml0eVNlYXJjaFBhcmFtcy5lbmREYXRlLFxuICAgICAgbGltaXQ6ICdudWxsJyxcbiAgICAgIHN0YXJ0X2RhdGU6IG9wZW5BY3Rpdml0eVNlYXJjaFBhcmFtcy5zdGFydERhdGVcbiAgICB9O1xuXG4gICAgaWYgKG9wZW5BY3Rpdml0eVNlYXJjaFBhcmFtcy5hY3Rpdml0eVR5cGVJZCkge1xuICAgICAgcGFyYW1zWydhY3Rpdml0eV90eXBlX2lkJ10gPSBvcGVuQWN0aXZpdHlTZWFyY2hQYXJhbXMuYWN0aXZpdHlUeXBlSWQ7XG4gICAgfVxuXG4gICAgaWYgKG9wZW5BY3Rpdml0eVNlYXJjaFBhcmFtcy5sb2NhdGlvbklkKSB7XG4gICAgICBwYXJhbXNbJ2xvY2F0aW9uX2lkJ10gPSBvcGVuQWN0aXZpdHlTZWFyY2hQYXJhbXMubG9jYXRpb25JZDtcbiAgICB9XG5cbiAgICByZXR1cm4gcGFyYW1zO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVVbnVzZWRBY3Rpdml0eUZpZWxkcyhhY3Rpdml0eTogUGFydGlhbDxBY3Rpdml0eT4pOiBQYXJ0aWFsPEFjdGl2aXR5PiB7XG4gICAgaWYgKHR5cGVvZiBhY3Rpdml0eS5pZCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGRlbGV0ZSBhY3Rpdml0eS5pZDtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGFjdGl2aXR5LmZpbGUgIT09ICd1bmRlZmluZWQnICYmICFhY3Rpdml0eS5maWxlKSB7XG4gICAgICBkZWxldGUgYWN0aXZpdHkuZmlsZTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGFjdGl2aXR5Lmludml0ZV9sYXN0X3Jlc3BvbnNlX2RhdGUgIT09ICd1bmRlZmluZWQnICYmICFhY3Rpdml0eS5pbnZpdGVfbGFzdF9yZXNwb25zZV9kYXRlKSB7XG4gICAgICBkZWxldGUgYWN0aXZpdHkuaW52aXRlX2xhc3RfcmVzcG9uc2VfZGF0ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gYWN0aXZpdHk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZVVudXNlZEFjdGl2aXR5UXVlc3Rpb25GaWVsZHMocXVlc3Rpb246IFBhcnRpYWw8QWN0aXZpdHlRdWVzdGlvbj4pOiBQYXJ0aWFsPEFjdGl2aXR5UXVlc3Rpb24+IHtcbiAgICBpZiAodHlwZW9mIHF1ZXN0aW9uLmlkICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgZGVsZXRlIHF1ZXN0aW9uLmlkO1xuICAgIH1cbiAgICBkZWxldGUgcXVlc3Rpb24uY2x1Yl9pZDtcbiAgICBkZWxldGUgcXVlc3Rpb24uc2VjdGlvbl9pZDtcbiAgICByZXR1cm4gcXVlc3Rpb247XG4gIH1cbn1cbiJdfQ==
|
|
@@ -5,5 +5,5 @@ import { optionalFeeFactory } from './optional-fee-factory';
|
|
|
5
5
|
import { activityQuestionConnectionFactory } from './activity-question-connection-factory';
|
|
6
6
|
import { unpaidInvoiceFactory } from './unpaid-invoice-factory';
|
|
7
7
|
import { activityRuleRelationFactory } from './activity-rule-relation-factory';
|
|
8
|
-
export const activityFactory = (apiActivity) => new Activity(apiActivity.id, apiActivity.activity_group_id, apiActivity.activity_type_id, apiActivity.club_id, apiActivity.location_id, apiActivity.team_id, apiActivity.activity_location, apiActivity.activity_status, apiActivity.activity_type_name, apiActivity.allow_maybe, apiActivity.calendar_name, apiActivity.comment_required, apiActivity.created, apiActivity.current_num_attendants, apiActivity.day, apiActivity.default_fee, apiActivity.default_fee_id, apiActivity.description, apiActivity.end_time, apiActivity.file, apiActivity.has_unpaid_invoices || false, apiActivity.invitation_text, apiActivity.invite_first_days, [], apiActivity.invite_hide_before_sent, apiActivity.invite_last_response_date, apiActivity.invite_remind, apiActivity.invite_remind_receivers, apiActivity.invite_second_days, 'same_as_last', (apiActivity.invited_members && apiActivity.invited_members.length) ? apiActivity.invited_members.map((invitedMember) => memberActivityInviteFactory(invitedMember)) : [], apiActivity.last_response_date, apiActivity.max_num_attendants, apiActivity.max_num_attendants_type, apiActivity.meet_up_place, apiActivity.meet_up_time, apiActivity.meet_up_time_display, apiActivity.member_id, apiActivity.member_ids, apiActivity.member_name, apiActivity.open_activity, (apiActivity.optional_fees && apiActivity.optional_fees.length) ? apiActivity.optional_fees.map((optionalFee) => optionalFeeFactory(optionalFee)) : [], apiActivity.optional_fee_required, apiActivity.optional_fee_type, apiActivity.payment_type, apiActivity.qr_code, apiActivity.qr_code_enabled, (apiActivity.questions && apiActivity.questions.length) ? apiActivity.questions.map((apiQuestion) => activityQuestionConnectionFactory(apiQuestion)) : [], 'none', 6, format(new Date(), 'yyyy-MM-dd'), 'repeat_until', (apiActivity.rule_relations || []).map((apiRuleRelation) => activityRuleRelationFactory(apiRuleRelation)), apiActivity.service_fee, apiActivity.service_fee_id, apiActivity.show_other_invited, apiActivity.start_time, apiActivity.status, apiActivity.title, (apiActivity.unpaid_invoices && apiActivity.unpaid_invoices.length) ? apiActivity.unpaid_invoices.map((invoice) => unpaidInvoiceFactory(invoice)) : [], apiActivity.updated, apiActivity.use_invite, false, apiActivity.invite_auto_accept, false, apiActivity.open_activity_confirmation_text || '', apiActivity.send_open_activity_confirmation, apiActivity.sisu_material, apiActivity.sisu_responsible_id);
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
8
|
+
export const activityFactory = (apiActivity) => new Activity(apiActivity.id, apiActivity.activity_group_id, apiActivity.activity_type_id, apiActivity.club_id, apiActivity.location_id, apiActivity.team_id, apiActivity.activity_location, apiActivity.activity_status, apiActivity.activity_type_name, apiActivity.allow_maybe, apiActivity.calendar_name, apiActivity.comment_required, apiActivity.created, apiActivity.current_num_attendants, apiActivity.day, apiActivity.default_fee, apiActivity.default_fee_id, apiActivity.description, apiActivity.end_time, apiActivity.file, apiActivity.has_unpaid_invoices || false, apiActivity.invitation_text, apiActivity.invite_first_days, [], apiActivity.invite_hide_before_sent, apiActivity.invite_last_response_date, apiActivity.invite_remind, apiActivity.invite_remind_receivers, apiActivity.invite_second_days, 'same_as_last', (apiActivity.invited_members && apiActivity.invited_members.length) ? apiActivity.invited_members.map((invitedMember) => memberActivityInviteFactory(invitedMember)) : [], apiActivity.last_response_date, apiActivity.max_num_attendants, apiActivity.max_num_attendants_type, apiActivity.meet_up_place, apiActivity.meet_up_time, apiActivity.meet_up_time_display, apiActivity.member_id, apiActivity.member_ids, apiActivity.member_name, apiActivity.open_activity, (apiActivity.optional_fees && apiActivity.optional_fees.length) ? apiActivity.optional_fees.map((optionalFee) => optionalFeeFactory(optionalFee)) : [], apiActivity.optional_fee_required, apiActivity.optional_fee_type, apiActivity.payment_type, apiActivity.qr_code, apiActivity.qr_code_enabled, (apiActivity.questions && apiActivity.questions.length) ? apiActivity.questions.map((apiQuestion) => activityQuestionConnectionFactory(apiQuestion)) : [], 'none', 6, format(new Date(), 'yyyy-MM-dd'), 'repeat_until', (apiActivity.rule_relations || []).map((apiRuleRelation) => activityRuleRelationFactory(apiRuleRelation)), apiActivity.service_fee, apiActivity.service_fee_id, apiActivity.show_other_invited, apiActivity.start_time, apiActivity.status, apiActivity.title, (apiActivity.unpaid_invoices && apiActivity.unpaid_invoices.length) ? apiActivity.unpaid_invoices.map((invoice) => unpaidInvoiceFactory(invoice)) : [], apiActivity.updated, apiActivity.use_invite, false, apiActivity.invite_auto_accept, false, apiActivity.open_activity_confirmation_text || '', apiActivity.send_open_activity_confirmation, apiActivity.sisu_material, apiActivity.sisu_responsible_id, apiActivity.allow_guests || false, apiActivity.num_guests || 0, apiActivity.max_guests_per_member || 0, apiActivity.guest_fee_id || null, apiActivity.guest_fee || 0);
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEtYWNjZXNzL3NyYy9saWIvc2VydmljZXMvZmFjdG9yaWVzL2FjdGl2aXR5LWZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzNGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRS9FLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFDLFdBQXdCLEVBQUUsRUFBRSxDQUMxRCxJQUFJLFFBQVEsQ0FDVixXQUFXLENBQUMsRUFBRSxFQUNkLFdBQVcsQ0FBQyxpQkFBaUIsRUFDN0IsV0FBVyxDQUFDLGdCQUFnQixFQUM1QixXQUFXLENBQUMsT0FBTyxFQUNuQixXQUFXLENBQUMsV0FBVyxFQUN2QixXQUFXLENBQUMsT0FBTyxFQUNuQixXQUFXLENBQUMsaUJBQWlCLEVBQzdCLFdBQVcsQ0FBQyxlQUFlLEVBQzNCLFdBQVcsQ0FBQyxrQkFBa0IsRUFDOUIsV0FBVyxDQUFDLFdBQVcsRUFDdkIsV0FBVyxDQUFDLGFBQWEsRUFDekIsV0FBVyxDQUFDLGdCQUFnQixFQUM1QixXQUFXLENBQUMsT0FBTyxFQUNuQixXQUFXLENBQUMsc0JBQXNCLEVBQ2xDLFdBQVcsQ0FBQyxHQUFHLEVBQ2YsV0FBVyxDQUFDLFdBQVcs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LFdBQVcsQ0FBQyxhQUFhLEVBQ3pCLFdBQVcsQ0FBQyxtQkFBbUIsRUFDL0IsV0FBVyxDQUFDLFlBQVksSUFBSSxLQUFLLEVBQ2pDLFdBQVcsQ0FBQyxVQUFVLElBQUksQ0FBQyxFQUMzQixXQUFXLENBQUMscUJBQXFCLElBQUksQ0FBQyxFQUN0QyxXQUFXLENBQUMsWUFBWSxJQUFJLElBQUksRUFDaEMsV0FBVyxDQUFDLFNBQVMsSUFBSSxDQUFDLENBQzNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBcGlBY3Rpdml0eSxcbiAgQXBpQWN0aXZpdHlRdWVzdGlvbkNvbm5lY3Rpb24sIEFwaUFjdGl2aXR5UnVsZVJlbGF0aW9uLFxuICBBcGlNZW1iZXJBY3Rpdml0eUludml0ZSxcbiAgQXBpT3B0aW9uYWxGZWUsXG4gIEFwaVVucGFpZE1lbWJlckludm9pY2Vcbn0gZnJvbSAnLi4vLi4vYXBpLW1vZGVscyc7XG5pbXBvcnQgeyBBY3Rpdml0eSB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBtZW1iZXJBY3Rpdml0eUludml0ZUZhY3RvcnkgfSBmcm9tICcuL21lbWJlci1pbnZpdGUtZmFjdG9yeSc7XG5pbXBvcnQgeyBmb3JtYXQgfSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgeyBvcHRpb25hbEZlZUZhY3RvcnkgfSBmcm9tICcuL29wdGlvbmFsLWZlZS1mYWN0b3J5JztcbmltcG9ydCB7IGFjdGl2aXR5UXVlc3Rpb25Db25uZWN0aW9uRmFjdG9yeSB9IGZyb20gJy4vYWN0aXZpdHktcXVlc3Rpb24tY29ubmVjdGlvbi1mYWN0b3J5JztcbmltcG9ydCB7IHVucGFpZEludm9pY2VGYWN0b3J5IH0gZnJvbSAnLi91bnBhaWQtaW52b2ljZS1mYWN0b3J5JztcbmltcG9ydCB7IGFjdGl2aXR5UnVsZVJlbGF0aW9uRmFjdG9yeSB9IGZyb20gJy4vYWN0aXZpdHktcnVsZS1yZWxhdGlvbi1mYWN0b3J5JztcblxuZXhwb3J0IGNvbnN0IGFjdGl2aXR5RmFjdG9yeSA9IChhcGlBY3Rpdml0eTogQXBpQWN0aXZpdHkpID0+XG4gIG5ldyBBY3Rpdml0eShcbiAgICBhcGlBY3Rpdml0eS5pZCxcbiAgICBhcGlBY3Rpdml0eS5hY3Rpdml0eV9ncm91cF9pZCxcbiAgICBhcGlBY3Rpdml0eS5hY3Rpdml0eV90eXBlX2lkLFxuICAgIGFwaUFjdGl2aXR5LmNsdWJfaWQsXG4gICAgYXBpQWN0aXZpdHkubG9jYXRpb25faWQsXG4gICAgYXBpQWN0aXZpdHkudGVhbV9pZCxcbiAgICBhcGlBY3Rpdml0eS5hY3Rpdml0eV9sb2NhdGlvbixcbiAgICBhcGlBY3Rpdml0eS5hY3Rpdml0eV9zdGF0dXMsXG4gICAgYXBpQWN0aXZpdHkuYWN0aXZpdHlfdHlwZV9uYW1lLFxuICAgIGFwaUFjdGl2aXR5LmFsbG93X21heWJlLFxuICAgIGFwaUFjdGl2aXR5LmNhbGVuZGFyX25hbWUsXG4gICAgYXBpQWN0aXZpdHkuY29tbWVudF9yZXF1aXJlZCxcbiAgICBhcGlBY3Rpdml0eS5jcmVhdGVkLFxuICAgIGFwaUFjdGl2aXR5LmN1cnJlbnRfbnVtX2F0dGVuZGFudHMsXG4gICAgYXBpQWN0aXZpdHkuZGF5LFxuICAgIGFwaUFjdGl2aXR5LmRlZmF1bHRfZmVlLFxuICAgIGFwaUFjdGl2aXR5LmRlZmF1bHRfZmVlX2lkLFxuICAgIGFwaUFjdGl2aXR5LmRlc2NyaXB0aW9uLFxuICAgIGFwaUFjdGl2aXR5LmVuZF90aW1lLFxuICAgIGFwaUFjdGl2aXR5LmZpbGUsXG4gICAgYXBpQWN0aXZpdHkuaGFzX3VucGFpZF9pbnZvaWNlcyB8fCBmYWxzZSxcbiAgICBhcGlBY3Rpdml0eS5pbnZpdGF0aW9uX3RleHQsXG4gICAgYXBpQWN0aXZpdHkuaW52aXRlX2ZpcnN0X2RheXMsXG4gICAgW10sXG4gICAgYXBpQWN0aXZpdHkuaW52aXRlX2hpZGVfYmVmb3JlX3NlbnQsXG4gICAgYXBpQWN0aXZpdHkuaW52aXRlX2xhc3RfcmVzcG9uc2VfZGF0ZSxcbiAgICBhcGlBY3Rpdml0eS5pbnZpdGVfcmVtaW5kLFxuICAgIGFwaUFjdGl2aXR5Lmludml0ZV9yZW1pbmRfcmVjZWl2ZXJzLFxuICAgIGFwaUFjdGl2aXR5Lmludml0ZV9zZWNvbmRfZGF5cyxcbiAgICAnc2FtZV9hc19sYXN0JyxcbiAgICAoYXBpQWN0aXZpdHkuaW52aXRlZF9tZW1iZXJzICYmIGFwaUFjdGl2aXR5Lmludml0ZWRfbWVtYmVycy5sZW5ndGgpID8gYXBpQWN0aXZpdHkuaW52aXRlZF9tZW1iZXJzLm1hcChcbiAgICAgIChpbnZpdGVkTWVtYmVyOiBBcGlNZW1iZXJBY3Rpdml0eUludml0ZSkgPT4gbWVtYmVyQWN0aXZpdHlJbnZpdGVGYWN0b3J5KGludml0ZWRNZW1iZXIpXG4gICAgKSA6IFtdLFxuICAgIGFwaUFjdGl2aXR5Lmxhc3RfcmVzcG9uc2VfZGF0ZSxcbiAgICBhcGlBY3Rpdml0eS5tYXhfbnVtX2F0dGVuZGFudHMsXG4gICAgYXBpQWN0aXZpdHkubWF4X251bV9hdHRlbmRhbnRzX3R5cGUsXG4gICAgYXBpQWN0aXZpdHkubWVldF91cF9wbGFjZSxcbiAgICBhcGlBY3Rpdml0eS5tZWV0X3VwX3RpbWUsXG4gICAgYXBpQWN0aXZpdHkubWVldF91cF90aW1lX2Rpc3BsYXksXG4gICAgYXBpQWN0aXZpdHkubWVtYmVyX2lkLFxuICAgIGFwaUFjdGl2aXR5Lm1lbWJlcl9pZHMsXG4gICAgYXBpQWN0aXZpdHkubWVtYmVyX25hbWUsXG4gICAgYXBpQWN0aXZpdHkub3Blbl9hY3Rpdml0eSxcbiAgICAoYXBpQWN0aXZpdHkub3B0aW9uYWxfZmVlcyAmJiBhcGlBY3Rpdml0eS5vcHRpb25hbF9mZWVzLmxlbmd0aCkgPyBhcGlBY3Rpdml0eS5vcHRpb25hbF9mZWVzLm1hcChcbiAgICAgIChvcHRpb25hbEZlZTogQXBpT3B0aW9uYWxGZWUpID0+IG9wdGlvbmFsRmVlRmFjdG9yeShvcHRpb25hbEZlZSksXG4gICAgKSA6IFtdLFxuICAgIGFwaUFjdGl2aXR5Lm9wdGlvbmFsX2ZlZV9yZXF1aXJlZCxcbiAgICBhcGlBY3Rpdml0eS5vcHRpb25hbF9mZWVfdHlwZSxcbiAgICBhcGlBY3Rpdml0eS5wYXltZW50X3R5cGUsXG4gICAgYXBpQWN0aXZpdHkucXJfY29kZSxcbiAgICBhcGlBY3Rpdml0eS5xcl9jb2RlX2VuYWJsZWQsXG4gICAgKGFwaUFjdGl2aXR5LnF1ZXN0aW9ucyAmJiBhcGlBY3Rpdml0eS5xdWVzdGlvbnMubGVuZ3RoKSA/IGFwaUFjdGl2aXR5LnF1ZXN0aW9ucy5tYXAoXG4gICAgICAoYXBpUXVlc3Rpb246IEFwaUFjdGl2aXR5UXVlc3Rpb25Db25uZWN0aW9uKSA9PiBhY3Rpdml0eVF1ZXN0aW9uQ29ubmVjdGlvbkZhY3RvcnkoYXBpUXVlc3Rpb24pLFxuICAgICAgKSA6IFtdLFxuICAgICdub25lJyxcbiAgICA2LFxuICAgIGZvcm1hdChuZXcgRGF0ZSgpLCAneXl5eS1NTS1kZCcpLFxuICAgICdyZXBlYXRfdW50aWwnLFxuICAgIChhcGlBY3Rpdml0eS5ydWxlX3JlbGF0aW9ucyB8fCBbXSkubWFwKChhcGlSdWxlUmVsYXRpb246IEFwaUFjdGl2aXR5UnVsZVJlbGF0aW9uKSA9PiBhY3Rpdml0eVJ1bGVSZWxhdGlvbkZhY3RvcnkoYXBpUnVsZVJlbGF0aW9uKSksXG4gICAgYXBpQWN0aXZpdHkuc2VydmljZV9mZWUsXG4gICAgYXBpQWN0aXZpdHkuc2VydmljZV9mZWVfaWQsXG4gICAgYXBpQWN0aXZpdHkuc2hvd19vdGhlcl9pbnZpdGVkLFxuICAgIGFwaUFjdGl2aXR5LnN0YXJ0X3RpbWUsXG4gICAgYXBpQWN0aXZpdHkuc3RhdHVzLFxuICAgIGFwaUFjdGl2aXR5LnRpdGxlLFxuICAgIChhcGlBY3Rpdml0eS51bnBhaWRfaW52b2ljZXMgJiYgYXBpQWN0aXZpdHkudW5wYWlkX2ludm9pY2VzLmxlbmd0aCkgPyBhcGlBY3Rpdml0eS51bnBhaWRfaW52b2ljZXMubWFwKFxuICAgICAgKGludm9pY2U6IEFwaVVucGFpZE1lbWJlckludm9pY2UpID0+IHVucGFpZEludm9pY2VGYWN0b3J5KGludm9pY2UpXG4gICAgKSA6IFtdLFxuICAgIGFwaUFjdGl2aXR5LnVwZGF0ZWQsXG4gICAgYXBpQWN0aXZpdHkudXNlX2ludml0ZSxcbiAgICBmYWxzZSxcbiAgICBhcGlBY3Rpdml0eS5pbnZpdGVfYXV0b19hY2NlcHQsXG4gICAgZmFsc2UsXG4gICAgYXBpQWN0aXZpdHkub3Blbl9hY3Rpdml0eV9jb25maXJtYXRpb25fdGV4dCB8fCAnJyxcbiAgICBhcGlBY3Rpdml0eS5zZW5kX29wZW5fYWN0aXZpdHlfY29uZmlybWF0aW9uLFxuICAgIGFwaUFjdGl2aXR5LnNpc3VfbWF0ZXJpYWwsXG4gICAgYXBpQWN0aXZpdHkuc2lzdV9yZXNwb25zaWJsZV9pZCxcbiAgICBhcGlBY3Rpdml0eS5hbGxvd19ndWVzdHMgfHwgZmFsc2UsXG4gICAgYXBpQWN0aXZpdHkubnVtX2d1ZXN0cyB8fCAwLFxuICAgIGFwaUFjdGl2aXR5Lm1heF9ndWVzdHNfcGVyX21lbWJlciB8fCAwLFxuICAgIGFwaUFjdGl2aXR5Lmd1ZXN0X2ZlZV9pZCB8fCBudWxsLFxuICAgIGFwaUFjdGl2aXR5Lmd1ZXN0X2ZlZSB8fCAwXG4gICk7XG4iXX0=
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { ActivityInvite } from '../../models';
|
|
2
2
|
import { activityFactory } from './activity-factory';
|
|
3
|
+
import { guestFactory } from './guest-factory';
|
|
3
4
|
import { searchMemberFactory } from './search-member-factory';
|
|
4
5
|
import { unpaidInvoiceFactory } from './unpaid-invoice-factory';
|
|
5
|
-
export const activityInviteFactory = (apiActivityInvite) => new ActivityInvite(apiActivityInvite.id, activityFactory(apiActivityInvite.activity), apiActivityInvite.comment, apiActivityInvite.created, apiActivityInvite.has_unpaid_invoices, apiActivityInvite.last_invite, apiActivityInvite.leader, searchMemberFactory(apiActivityInvite.member), apiActivityInvite.member_invoice_id, apiActivityInvite.next_invite, [], apiActivityInvite.payment_link, apiActivityInvite.public_payment_link, apiActivityInvite.reminded, apiActivityInvite.response_date, [], apiActivityInvite.status, apiActivityInvite.token, apiActivityInvite.unpaid_invoices && apiActivityInvite.unpaid_invoices.length ? apiActivityInvite.unpaid_invoices.map((apiUnpaidInvoice) => unpaidInvoiceFactory(apiUnpaidInvoice)) : [], apiActivityInvite.updated)
|
|
6
|
-
|
|
6
|
+
export const activityInviteFactory = (apiActivityInvite) => new ActivityInvite(apiActivityInvite.id, activityFactory(apiActivityInvite.activity), apiActivityInvite.comment, apiActivityInvite.created, apiActivityInvite.has_unpaid_invoices, apiActivityInvite.last_invite, apiActivityInvite.leader, searchMemberFactory(apiActivityInvite.member), apiActivityInvite.member_invoice_id, apiActivityInvite.next_invite, [], apiActivityInvite.payment_link, apiActivityInvite.public_payment_link, apiActivityInvite.reminded, apiActivityInvite.response_date, [], apiActivityInvite.status, apiActivityInvite.token, apiActivityInvite.unpaid_invoices && apiActivityInvite.unpaid_invoices.length ? apiActivityInvite.unpaid_invoices.map((apiUnpaidInvoice) => unpaidInvoiceFactory(apiUnpaidInvoice)) : [], apiActivityInvite.updated, (apiActivityInvite.guests && apiActivityInvite.guests.length)
|
|
7
|
+
? apiActivityInvite.guests.map((g) => guestFactory(g))
|
|
8
|
+
: []);
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktaW52aXRlLWZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhLWFjY2Vzcy9zcmMvbGliL3NlcnZpY2VzL2ZhY3Rvcmllcy9hY3Rpdml0eS1pbnZpdGUtZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzlDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFaEUsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxpQkFBb0MsRUFBRSxFQUFFLENBQzVFLElBQUksY0FBYyxDQUNoQixpQkFBaUIsQ0FBQyxFQUFFLEVBQ3BCLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsRUFDM0MsaUJBQWlCLENBQUMsT0FBTyxFQUN6QixpQkFBaUIsQ0FBQyxPQUFPLEVBQ3pCLGlCQUFpQixDQUFDLG1CQUFtQixFQUNyQyxpQkFBaUIsQ0FBQyxXQUFXLEVBQzdCLGlCQUFpQixDQUFDLE1BQU0sRUFDeEIsbUJBQW1CLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLEVBQzdDLGlCQUFpQixDQUFDLGlCQUFpQixFQUNuQyxpQkFBaUIsQ0FBQyxXQUFXLEVBQzdCLEVBQUUsRUFDRixpQkFBaUIsQ0FBQyxZQUFZLEVBQzlCLGlCQUFpQixDQUFDLG1CQUFtQixFQUNyQyxpQkFBaUIsQ0FBQyxRQUFRLEVBQzFCLGlCQUFpQixDQUFDLGFBQWEsRUFDL0IsRUFBRSxFQUNGLGlCQUFpQixDQUFDLE1BQU0sRUFDeEIsaUJBQWlCLENBQUMsS0FBSyxFQUN2QixpQkFBaUIsQ0FBQyxlQUFlLElBQUksaUJBQWlCLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FDbkgsQ0FBQyxnQkFBd0MsRUFBRSxFQUFFLENBQUMsb0JBQW9CLENBQUMsZ0JBQWdCLENBQUMsQ0FDckYsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUNOLGlCQUFpQixDQUFDLE9BQU8sRUFDekIsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLElBQUksaUJBQWlCLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUMzRCxDQUFDLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQVcsRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2hFLENBQUMsQ0FBQyxFQUFFLENBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwaUFjdGl2aXR5SW52aXRlLCBBcGlHdWVzdCwgQXBpVW5wYWlkTWVtYmVySW52b2ljZSB9IGZyb20gJy4uLy4uL2FwaS1tb2RlbHMnO1xuaW1wb3J0IHsgQWN0aXZpdHlJbnZpdGUgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgYWN0aXZpdHlGYWN0b3J5IH0gZnJvbSAnLi9hY3Rpdml0eS1mYWN0b3J5JztcbmltcG9ydCB7IGd1ZXN0RmFjdG9yeSB9IGZyb20gJy4vZ3Vlc3QtZmFjdG9yeSc7XG5pbXBvcnQgeyBzZWFyY2hNZW1iZXJGYWN0b3J5IH0gZnJvbSAnLi9zZWFyY2gtbWVtYmVyLWZhY3RvcnknO1xuaW1wb3J0IHsgdW5wYWlkSW52b2ljZUZhY3RvcnkgfSBmcm9tICcuL3VucGFpZC1pbnZvaWNlLWZhY3RvcnknO1xuXG5leHBvcnQgY29uc3QgYWN0aXZpdHlJbnZpdGVGYWN0b3J5ID0gKGFwaUFjdGl2aXR5SW52aXRlOiBBcGlBY3Rpdml0eUludml0ZSkgPT5cbiAgbmV3IEFjdGl2aXR5SW52aXRlKFxuICAgIGFwaUFjdGl2aXR5SW52aXRlLmlkLFxuICAgIGFjdGl2aXR5RmFjdG9yeShhcGlBY3Rpdml0eUludml0ZS5hY3Rpdml0eSksXG4gICAgYXBpQWN0aXZpdHlJbnZpdGUuY29tbWVudCxcbiAgICBhcGlBY3Rpdml0eUludml0ZS5jcmVhdGVkLFxuICAgIGFwaUFjdGl2aXR5SW52aXRlLmhhc191bnBhaWRfaW52b2ljZXMsXG4gICAgYXBpQWN0aXZpdHlJbnZpdGUubGFzdF9pbnZpdGUsXG4gICAgYXBpQWN0aXZpdHlJbnZpdGUubGVhZGVyLFxuICAgIHNlYXJjaE1lbWJlckZhY3RvcnkoYXBpQWN0aXZpdHlJbnZpdGUubWVtYmVyKSxcbiAgICBhcGlBY3Rpdml0eUludml0ZS5tZW1iZXJfaW52b2ljZV9pZCxcbiAgICBhcGlBY3Rpdml0eUludml0ZS5uZXh0X2ludml0ZSxcbiAgICBbXSxcbiAgICBhcGlBY3Rpdml0eUludml0ZS5wYXltZW50X2xpbmssXG4gICAgYXBpQWN0aXZpdHlJbnZpdGUucHVibGljX3BheW1lbnRfbGluayxcbiAgICBhcGlBY3Rpdml0eUludml0ZS5yZW1pbmRlZCxcbiAgICBhcGlBY3Rpdml0eUludml0ZS5yZXNwb25zZV9kYXRlLFxuICAgIFtdLFxuICAgIGFwaUFjdGl2aXR5SW52aXRlLnN0YXR1cyxcbiAgICBhcGlBY3Rpdml0eUludml0ZS50b2tlbixcbiAgICBhcGlBY3Rpdml0eUludml0ZS51bnBhaWRfaW52b2ljZXMgJiYgYXBpQWN0aXZpdHlJbnZpdGUudW5wYWlkX2ludm9pY2VzLmxlbmd0aCA/IGFwaUFjdGl2aXR5SW52aXRlLnVucGFpZF9pbnZvaWNlcy5tYXAoXG4gICAgICAoYXBpVW5wYWlkSW52b2ljZTogQXBpVW5wYWlkTWVtYmVySW52b2ljZSkgPT4gdW5wYWlkSW52b2ljZUZhY3RvcnkoYXBpVW5wYWlkSW52b2ljZSlcbiAgICApIDogW10sXG4gICAgYXBpQWN0aXZpdHlJbnZpdGUudXBkYXRlZCxcbiAgICAoYXBpQWN0aXZpdHlJbnZpdGUuZ3Vlc3RzICYmIGFwaUFjdGl2aXR5SW52aXRlLmd1ZXN0cy5sZW5ndGgpXG4gICAgICA/IGFwaUFjdGl2aXR5SW52aXRlLmd1ZXN0cy5tYXAoKGc6IEFwaUd1ZXN0KSA9PiBndWVzdEZhY3RvcnkoZykpXG4gICAgICA6IFtdXG4gICk7XG4iXX0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { FeatureFlags } from "../../models";
|
|
2
2
|
export const featureFlagsFactory = (apiFeatureFlags) => {
|
|
3
|
-
return new FeatureFlags(apiFeatureFlags.extra_distribution, apiFeatureFlags.booking_system, apiFeatureFlags.core_invoices, apiFeatureFlags.member_booking, apiFeatureFlags.public_booking, apiFeatureFlags.section_handle_invoices_rfs, apiFeatureFlags.api, apiFeatureFlags.my_pages_menu, apiFeatureFlags.use_databank);
|
|
3
|
+
return new FeatureFlags(apiFeatureFlags.extra_distribution, apiFeatureFlags.booking_system, apiFeatureFlags.core_invoices, apiFeatureFlags.member_booking, apiFeatureFlags.public_booking, apiFeatureFlags.section_handle_invoices_rfs, apiFeatureFlags.api, apiFeatureFlags.member_pdf_exports, apiFeatureFlags.member_map, apiFeatureFlags.activity_guests, apiFeatureFlags.my_pages_menu, apiFeatureFlags.use_databank);
|
|
4
4
|
};
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1mbGFncy1mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS1hY2Nlc3Mvc3JjL2xpYi9zZXJ2aWNlcy9mYWN0b3JpZXMvZmVhdHVyZS1mbGFncy1mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFNUMsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxlQUFnQyxFQUFFLEVBQUU7SUFDdEUsT0FBTyxJQUFJLFlBQVksQ0FDckIsZUFBZSxDQUFDLGtCQUFrQixFQUNsQyxlQUFlLENBQUMsY0FBYyxFQUM5QixlQUFlLENBQUMsYUFBYSxFQUM3QixlQUFlLENBQUMsY0FBYyxFQUM5QixlQUFlLENBQUMsY0FBYyxFQUM5QixlQUFlLENBQUMsMkJBQTJCLEVBQzNDLGVBQWUsQ0FBQyxHQUFHLEVBQ25CLGVBQWUsQ0FBQyxrQkFBa0IsRUFDbEMsZUFBZSxDQUFDLFVBQVUsRUFDMUIsZUFBZSxDQUFDLGVBQWUsRUFDL0IsZUFBZSxDQUFDLGFBQWEsRUFDN0IsZUFBZSxDQUFDLFlBQVksQ0FDN0IsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwaUZlYXR1cmVGbGFncyB9IGZyb20gXCIuLi8uLi9hcGktbW9kZWxzXCI7XG5pbXBvcnQgeyBGZWF0dXJlRmxhZ3MgfSBmcm9tIFwiLi4vLi4vbW9kZWxzXCI7XG5cbmV4cG9ydCBjb25zdCBmZWF0dXJlRmxhZ3NGYWN0b3J5ID0gKGFwaUZlYXR1cmVGbGFnczogQXBpRmVhdHVyZUZsYWdzKSA9PiB7XG4gIHJldHVybiBuZXcgRmVhdHVyZUZsYWdzKFxuICAgIGFwaUZlYXR1cmVGbGFncy5leHRyYV9kaXN0cmlidXRpb24sXG4gICAgYXBpRmVhdHVyZUZsYWdzLmJvb2tpbmdfc3lzdGVtLFxuICAgIGFwaUZlYXR1cmVGbGFncy5jb3JlX2ludm9pY2VzLFxuICAgIGFwaUZlYXR1cmVGbGFncy5tZW1iZXJfYm9va2luZyxcbiAgICBhcGlGZWF0dXJlRmxhZ3MucHVibGljX2Jvb2tpbmcsXG4gICAgYXBpRmVhdHVyZUZsYWdzLnNlY3Rpb25faGFuZGxlX2ludm9pY2VzX3JmcyxcbiAgICBhcGlGZWF0dXJlRmxhZ3MuYXBpLFxuICAgIGFwaUZlYXR1cmVGbGFncy5tZW1iZXJfcGRmX2V4cG9ydHMsXG4gICAgYXBpRmVhdHVyZUZsYWdzLm1lbWJlcl9tYXAsXG4gICAgYXBpRmVhdHVyZUZsYWdzLmFjdGl2aXR5X2d1ZXN0cyxcbiAgICBhcGlGZWF0dXJlRmxhZ3MubXlfcGFnZXNfbWVudSxcbiAgICBhcGlGZWF0dXJlRmxhZ3MudXNlX2RhdGFiYW5rLFxuICApO1xufTtcbiJdfQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { Guest } from '../../models';
|
|
2
|
+
export const guestFactory = (apiGuest) => new Guest(apiGuest.id, apiGuest.name, apiGuest.comment, apiGuest.activity_invite_id);
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3Vlc3QtZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEtYWNjZXNzL3NyYy9saWIvc2VydmljZXMvZmFjdG9yaWVzL2d1ZXN0LWZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVyQyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxRQUFrQixFQUFTLEVBQUUsQ0FDeEQsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxRQUFRLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLGtCQUFrQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcGlHdWVzdCB9IGZyb20gJy4uLy4uL2FwaS1tb2RlbHMnO1xuaW1wb3J0IHsgR3Vlc3QgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuXG5leHBvcnQgY29uc3QgZ3Vlc3RGYWN0b3J5ID0gKGFwaUd1ZXN0OiBBcGlHdWVzdCk6IEd1ZXN0ID0+XG4gIG5ldyBHdWVzdChhcGlHdWVzdC5pZCwgYXBpR3Vlc3QubmFtZSwgYXBpR3Vlc3QuY29tbWVudCwgYXBpR3Vlc3QuYWN0aXZpdHlfaW52aXRlX2lkKTtcbiJdfQ==
|
|
@@ -53,6 +53,7 @@ export * from './file-factory';
|
|
|
53
53
|
export * from './general-image-factory';
|
|
54
54
|
export * from './giro-factory';
|
|
55
55
|
export * from './group-role-factory';
|
|
56
|
+
export * from './guest-factory';
|
|
56
57
|
export * from './home-team-factory';
|
|
57
58
|
export * from './image-urls-factory';
|
|
58
59
|
export * from './member-attribute-factory';
|
|
@@ -100,4 +101,4 @@ export * from './unpaid-invoice-factory';
|
|
|
100
101
|
export * from './user-factory';
|
|
101
102
|
export * from './user-notification-factory';
|
|
102
103
|
export * from './zimpler-factory';
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
104
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhLWFjY2Vzcy9zcmMvbGliL3NlcnZpY2VzL2ZhY3Rvcmllcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxzQkFBc0IsQ0FBQTtBQUNwQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsNEJBQTRCLENBQUE7QUFDMUMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYywrQkFBK0IsQ0FBQTtBQUM3QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hY3Rpdml0eS1leHRyYS1tZW1iZXItZmFjdG9yeSc7XG5leHBvcnQgKiBmcm9tICcuL2FjdGl2aXR5LWZhY3RvcnknO1xuZXhwb3J0ICogZnJvbSAnLi9hcHAtc2V0dGluZ3MtZmFjdG9yeSc7XG5leHBvcnQgKiBmcm9tICcuL2xlYWRlci1hY3Rpdml0eS1mYWN0b3J5JztcbmV4cG9ydCAqIGZyb20gJy4vYWN0aXZpdHktaW52aXRlLWZhY3RvcnknO1xuZXhwb3J0ICogZnJvbSAnLi9hY3Rpdml0eS1sb2NhdGlvbi1mYWN0b3J5JztcbmV4cG9ydCAqIGZyb20gJy4vYWN0aXZpdHktbG9jYXRpb24tZ3JvdXAtZmFjdG9yeSc7XG5leHBvcnQgKiBmcm9tICcuL2FjdGl2aXR5LWxvY2F0aW9uLXRhZy1mYWN0b3J5JztcbmV4cG9ydCAqIGZyb20gJy4vYWN0aXZpdHktbG9jYXRpb24tcGFydC1mYWN0b3J5JztcbmV4cG9ydCAqIGZyb20gJy4vYWN0aXZpdHktcGFydGljaXBhbnQtZmFjdG9yeSc7XG5leHBvcnQgKiBmcm9tICcuL2FjdGl2aXR5LXF1ZXN0aW9uLWNvbm5lY3Rpb24tZmFjdG9yeSc7XG5leHBvcnQgKiBmcm9tICcuL2FjdGl2aXR5LXF1ZXN0aW9uLWZhY3RvcnknO1xuZXhwb3J0ICogZnJvbSAnLi9hY3Rpdml0eS1zZXR0aW5ncy1mYWN0b3J5JztcbmV4cG9ydCAqIGZyb20gJy4vYWN0aXZpdHktcnVsZS1mYWN0b3J5JztcbmV4cG9ydCAqIGZyb20gJy4vYWN0aXZpdHktcnVsZS1yZWxhdGlvbi1mYWN0b3J5JztcbmV4cG9ydCAqIGZyb20gJy4vYWN0aXZpdHktdHlwZS1mYWN0b3J5JztcbmV4cG9ydCAqIGZyb20gJy4vYXV0aC1mYWN0b3J5JztcbmV4cG9ydCAqIGZyb20gJy4vYXV0aC1tZW1iZXItZmFjdG9yeSc7XG5leHBvcnQgKiBmcm9tICcuL2F1dGgtc2VjdGlvbi1mYWN0b3J5JztcbmV4cG9ydCAqIGZyb20gJy4vYXV0aC10ZWFtLWZhY3RvcnknO1xuZXhwb3J0ICogZnJvbSAnLi9hdXRoLXRlYW0tc2VjdGlvbi1mYWN0b3J5JztcbmV4cG9ydCAqIGZyb20gJy4vYm9va2FibGUtaXRlbS1mYWN0b3J5JztcbmV4cG9ydCAqIGZyb20gJy4vYm9va2FibGUtcGFydC1mYWN0b3J5JztcbmV4cG9ydCAqIGZyb20gJy4vYm9va2FibGUtdGFnLWZhY3RvcnknO1xuZXhwb3J0ICogZnJvbSAnLi9ib29raW5nLWNhbGVuZGFyLWZhY3RvcnknO1xuZXhwb3J0ICogZnJvbSAnLi9ib29raW5nLWNhbGVuZGFyLWFwcGxpY2F0aW9uLXRpbWUtZmFjdG9yeSc7XG5leHBvcnQgKiBmcm9tICcuL2Jvb2tpbmctY2FsZW5kYXItc2xvdC1mYWN0b3J5JztcbmV4cG9ydCAqIGZyb20gJy4vYm9va2luZy1jYWxlbmRhci1zbG90LWdyb3VwLWl0ZW0tZmFjdG9yeSc7XG5leHBvcnQgKiBmcm9tICcuL2Jvb2tpbmctY2FsZW5kYXItc2xvdC1zZXNzaW9uLWZhY3RvcnknO1xuZXhwb3J0ICogZnJvbSAnLi9ib29raW5nLWNhbGVuZGFyLXNsb3Qtc2Vzc2lvbi1ncm91cC1pdGVtLWZhY3RvcnknO1xuZXhwb3J0ICogZnJvbSAnLi9ib29raW5nLWNhbGVuZGFyLXNsb3QtdmFsaWRhdGUtY29weS1yZXN1bHQtZmFjdG9yeSc7XG5leHBvcnQgKiBmcm9tICcuL2Jvb2tpbmctc2V0dGluZ3MtZmFjdG9yeSc7XG5leHBvcnQgKiBmcm9tICcuL2NhcmQtZGVhbC1mYWN0b3J5JztcbmV4cG9ydCAqIGZyb20gJy4vY2FyZC1mYWN0b3J5JztcbmV4cG9ydCAqIGZyb20gJy4vY2FyZC1sb2dvLWZhY3RvcnknO1xuZXhwb3J0ICogZnJvbSAnLi9jYXJkLWxvZ28tdXJscy1mYWN0b3J5JztcbmV4cG9ydCAqIGZyb20gJy4vY2FyZC1tZW1iZXItdGlja2V0LWZhY3RvcnknO1xuZXhwb3J0ICogZnJvbSAnLi9jYXJkLXRoZW1lLWZhY3RvcnknO1xuZXhwb3J0ICogZnJvbSAnLi9jYXJkLXRpY2tldC1mYWN0b3J5JztcbmV4cG9ydCAqIGZyb20gJy4vY2FyZC10aWNrZXQtbG9jYXRpb24tZmFjdG9yeSc7XG5leHBvcnQgKiBmcm9tICcuL2NsdWItZmFjdG9yeSc7XG5leHBvcnQgKiBmcm9tICcuL2NsdWItaW1hZ2UtZmFjdG9yeSdcbmV4cG9ydCAqIGZyb20gJy4vY2x1Yi1zZWN0aW9uLWZhY3RvcnknO1xuZXhwb3J0ICogZnJvbSAnLi9jb250YWN0LWZhY3RvcnknO1xuZXhwb3J0ICogZnJvbSAnLi9jcmVkaXQtY2FyZC1mYWN0b3J5JztcbmV4cG9ydCAqIGZyb20gJy4vZGF0YWJhbmstY2F0ZWdvcnktZmFjdG9yeSc7XG5leHBvcnQgKiBmcm9tICcuL2RhdGFiYW5rLWl0ZW0tZmFjdG9yeSc7XG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdG9yeS1mYWN0b3J5JztcbmV4cG9ydCAqIGZyb20gJy4vZXZlbnQtZmFjdG9yeSc7XG5leHBvcnQgKiBmcm9tICcuL2V4dGVybmFsLWxpbmstZmFjdG9yeSc7XG5leHBvcnQgKiBmcm9tICcuL2ZlYXR1cmUtZmxhZ3MtZmFjdG9yeSc7XG5leHBvcnQgKiBmcm9tICcuL2ZpbGUtZmFjdG9yeSc7XG5leHBvcnQgKiBmcm9tICcuL2dlbmVyYWwtaW1hZ2UtZmFjdG9yeSc7XG5leHBvcnQgKiBmcm9tICcuL2dpcm8tZmFjdG9yeSc7XG5leHBvcnQgKiBmcm9tICcuL2dyb3VwLXJvbGUtZmFjdG9yeSc7XG5leHBvcnQgKiBmcm9tICcuL2d1ZXN0LWZhY3RvcnknO1xuZXhwb3J0ICogZnJvbSAnLi9ob21lLXRlYW0tZmFjdG9yeSc7XG5leHBvcnQgKiBmcm9tICcuL2ltYWdlLXVybHMtZmFjdG9yeSc7XG5leHBvcnQgKiBmcm9tICcuL21lbWJlci1hdHRyaWJ1dGUtZmFjdG9yeSdcbmV4cG9ydCAqIGZyb20gJy4vbWVtYmVyLWNhcmQtZmFjdG9yeSc7XG5leHBvcnQgKiBmcm9tICcuL21lbWJlci1jb250YWN0LWZhY3RvcnknO1xuZXhwb3J0ICogZnJvbSAnLi9tZW1iZXItZmFjdG9yeSc7XG5leHBvcnQgKiBmcm9tICcuL21lbWJlci1mZWUtZmFjdG9yeSc7XG5leHBvcnQgKiBmcm9tICcuL21lbWJlci1mdW5jdGlvbi1mYWN0b3J5JztcbmV4cG9ydCAqIGZyb20gJy4vbWVtYmVyLWludml0ZS1mYWN0b3J5JztcbmV4cG9ydCAqIGZyb20gJy4vbWVtYmVyLWludm9pY2UtZmFjdG9yeSc7XG5leHBvcnQgKiBmcm9tICcuL21lbWJlci1pbnZvaWNlLXJvdy1mYWN0b3J5JztcbmV4cG9ydCAqIGZyb20gJy4vbWVtYmVyLXB1YmxpYy1mb3JtLWZhY3RvcnknO1xuZXhwb3J0ICogZnJvbSAnLi9tZW1iZXItcHVibGljLWZvcm0tZmllbGQtZmFjdG9yeSc7XG5leHBvcnQgKiBmcm9tICcuL21lbWJlci1wdWJsaWMtZm9ybS1maWVsZC1vcHRpb24tZmFjdG9yeSc7XG5leHBvcnQgKiBmcm9tICcuL21lbWJlci10ZWFtLWZhY3RvcnknO1xuZXhwb3J0ICogZnJvbSAnLi9tZW1iZXItdGVhbS10aHJvdWdoLWZhY3RvcnknXG5leHBvcnQgKiBmcm9tICcuL21lbWJlci10eXBlLWZhY3RvcnknO1xuZXhwb3J0ICogZnJvbSAnLi9tZW1iZXItdmFsaWRhdGlvbi1zZXR0aW5ncy1mYWN0b3J5JztcbmV4cG9ydCAqIGZyb20gJy4vbmV3cy1mYWN0b3J5JztcbmV4cG9ydCAqIGZyb20gJy4vb3Blbi1hY3Rpdml0eS1mYWN0b3J5JztcbmV4cG9ydCAqIGZyb20gJy4vb3B0aW9uYWwtZmVlLWZhY3RvcnknO1xuZXhwb3J0ICogZnJvbSAnLi9vdmVyYm9va2VkLWJvb2thYmxlLWl0ZW0tZmFjdG9yeSc7XG5leHBvcnQgKiBmcm9tICcuL292ZXJib29rZWQtbG9jYXRpb24tZmFjdG9yeSc7XG5leHBvcnQgKiBmcm9tICcuL290aGVyLW1lbWJlci1mYWN0b3J5JztcbmV4cG9ydCAqIGZyb20gJy4vb3RoZXItbWVtYmVyLWZpZWxkLWZhY3RvcnknO1xuZXhwb3J0ICogZnJvbSAnLi9wYXJ0bmVyLWZhY3RvcnknO1xuZXhwb3J0ICogZnJvbSAnLi9wYXltZW50LWF0dGVtcHQtZmFjdG9yeSc7XG5leHBvcnQgKiBmcm9tICcuL3BheW1lbnQtb3JkZXItZmFjdG9yeSc7XG5leHBvcnQgKiBmcm9tICcuL3BheW1lbnQtb3JkZXItcm93LWZhY3RvcnknO1xuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXV0aGVudGljYXRpb24tZmFjdG9yeSc7XG5leHBvcnQgKiBmcm9tICcuL3JlZ2lzdHJhdGlvbi1xci1jb2RlLWZhY3RvcnknO1xuZXhwb3J0ICogZnJvbSAnLi9yZXRyaWV2ZS0yZmEtZmFjdG9yeSc7XG5leHBvcnQgKiBmcm9tICcuL3NhdmVkLXNlYXJjaC1mYWN0b3J5JztcbmV4cG9ydCAqIGZyb20gJy4vc2VhcmNoLWF0dHJpYnV0ZS5mYWN0b3J5JztcbmV4cG9ydCAqIGZyb20gJy4vc2VhcmNoLWNsdWItZmFjdG9yeSc7XG5leHBvcnQgKiBmcm9tICcuL3NlYXJjaC1tZW1iZXItY2FyZC1mYWN0b3J5JztcbmV4cG9ydCAqIGZyb20gJy4vc2VhcmNoLW1lbWJlci1mYWN0b3J5JztcbmV4cG9ydCAqIGZyb20gJy4vc2VhcmNoLW1lbWJlci1pbnZvaWNlLWZhY3RvcnknO1xuZXhwb3J0ICogZnJvbSAnLi9zZWFyY2gtbWVtYmVyLXRlYW0tdGhyb3VnaC1mYWN0b3J5JztcbmV4cG9ydCAqIGZyb20gJy4vc2VjdGlvbi1mYWN0b3J5JztcbmV4cG9ydCAqIGZyb20gJy4vc3dpc2gtZmFjdG9yeSc7XG5leHBvcnQgKiBmcm9tICcuL3N3aXNoLWluY2lkZW50LWZhY3RvcnknO1xuZXhwb3J0ICogZnJvbSAnLi90b2tlbi1mYWN0b3J5JztcbmV4cG9ydCAqIGZyb20gJy4vdW5wYWlkLWludm9pY2UtZmFjdG9yeSc7XG5leHBvcnQgKiBmcm9tICcuL3VzZXItZmFjdG9yeSc7XG5leHBvcnQgKiBmcm9tICcuL3VzZXItbm90aWZpY2F0aW9uLWZhY3RvcnknO1xuZXhwb3J0ICogZnJvbSAnLi96aW1wbGVyLWZhY3RvcnknO1xuIl19
|