@myclub_se/data-access 3.6.1 → 3.6.3
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-app-settings.mjs +2 -0
- package/esm2022/lib/api-models/api-invite-stats.mjs +2 -0
- package/esm2022/lib/api-models/api-leader-activity.mjs +2 -0
- package/esm2022/lib/api-models/api-open-activity.mjs +1 -1
- package/esm2022/lib/api-models/api-search-club.mjs +1 -1
- package/esm2022/lib/api-models/index.mjs +4 -1
- package/esm2022/lib/models/app-settings.mjs +13 -0
- package/esm2022/lib/models/index.mjs +4 -1
- package/esm2022/lib/models/invite-stats.mjs +2 -0
- package/esm2022/lib/models/leader-activity.mjs +25 -0
- package/esm2022/lib/models/open-activity.mjs +6 -2
- package/esm2022/lib/models/search-club.mjs +4 -2
- package/esm2022/lib/services/factories/app-settings-factory.mjs +3 -0
- package/esm2022/lib/services/factories/index.mjs +3 -1
- package/esm2022/lib/services/factories/leader-activity-factory.mjs +3 -0
- package/esm2022/lib/services/factories/open-activity-factory.mjs +2 -2
- package/esm2022/lib/services/factories/search-club-factory.mjs +3 -2
- package/esm2022/lib/services/index.mjs +2 -1
- package/esm2022/lib/services/leader-notification.service.mjs +24 -0
- package/esm2022/lib/store/actions/team.actions.mjs +7 -1
- package/esm2022/lib/store/effects/team.effects.mjs +7 -2
- package/esm2022/lib/store/reducers/calendar.reducer.mjs +2 -2
- package/esm2022/lib/store/reducers/team.reducer.mjs +11 -2
- package/esm2022/lib/store/selectors/club-info.selectors.mjs +2 -1
- package/esm2022/lib/store/selectors/team.selectors.mjs +2 -1
- package/esm2022/lib/store/state/team.state.mjs +2 -1
- package/fesm2022/myclub_se-data-access.mjs +95 -6
- package/fesm2022/myclub_se-data-access.mjs.map +1 -1
- package/lib/api-models/api-app-settings.d.ts +6 -0
- package/lib/api-models/api-invite-stats.d.ts +5 -0
- package/lib/api-models/api-leader-activity.d.ts +13 -0
- package/lib/api-models/api-open-activity.d.ts +2 -0
- package/lib/api-models/api-search-club.d.ts +2 -0
- package/lib/api-models/index.d.ts +3 -0
- package/lib/models/app-settings.d.ts +7 -0
- package/lib/models/index.d.ts +3 -0
- package/lib/models/invite-stats.d.ts +5 -0
- package/lib/models/leader-activity.d.ts +14 -0
- package/lib/models/open-activity.d.ts +3 -1
- package/lib/models/search-club.d.ts +3 -2
- package/lib/services/factories/app-settings-factory.d.ts +3 -0
- package/lib/services/factories/index.d.ts +2 -0
- package/lib/services/factories/leader-activity-factory.d.ts +3 -0
- package/lib/services/index.d.ts +1 -0
- package/lib/services/leader-notification.service.d.ts +10 -0
- package/lib/store/actions/team.actions.d.ts +19 -1
- package/lib/store/effects/team.effects.d.ts +7 -1
- package/lib/store/selectors/club-info.selectors.d.ts +1 -0
- package/lib/store/selectors/team.selectors.d.ts +1 -0
- package/lib/store/state/team.state.d.ts +2 -1
- package/package.json +1 -1
|
@@ -436,7 +436,7 @@ on(removeMemberOpenActivityAction, (state, { payload }) => {
|
|
|
436
436
|
if (existingOpenActivities) {
|
|
437
437
|
const updatedOpenActivities = existingOpenActivities.map((openActivity) => {
|
|
438
438
|
if (openActivity.id === payload.activityId && openActivity.member_id === payload.memberId) {
|
|
439
|
-
return new OpenActivity(openActivity.id, openActivity.activity_group_id, openActivity.activity_type_id, openActivity.club_id, openActivity.location_id, openActivity.member_id, openActivity.team_id, openActivity.activity_location, openActivity.activity_type_name, openActivity.allow_maybe, openActivity.calendar_name, openActivity.comment_required, openActivity.created, openActivity.current_num_attendants, openActivity.day, openActivity.default_fee, openActivity.default_fee_id, openActivity.description, openActivity.end, openActivity.end_time, openActivity.file, openActivity.has_unpaid_invoices, openActivity.invitation_text, openActivity.invite_first_days, openActivity.invite_groups, openActivity.invite_hide_before_sent, openActivity.invite_last_response_date, openActivity.invite_remind, openActivity.invite_remind_receivers, openActivity.invite_second_days, openActivity.invite_settings, openActivity.invited_members.filter((invite) => invite.member_id !== payload.memberId), openActivity.last_response_date, openActivity.location_name, openActivity.max_num_attendants, openActivity.max_num_attendants_type, openActivity.meet_up_place, openActivity.meet_up_time, openActivity.meet_up_time_display, openActivity.meet_up_time_show, openActivity.member_ids, openActivity.member_invoice, openActivity.member_name, openActivity.open_activity, openActivity.optional_fees, openActivity.optional_fee_required, openActivity.optional_fee_type, openActivity.payment_link, openActivity.public_payment_link, openActivity.questions, openActivity.repeat, openActivity.repeat_num, openActivity.repeat_to_day, openActivity.repeat_type, openActivity.show_other_invited, openActivity.start, openActivity.start_time, 'waiting', openActivity.title, openActivity.unpaid_invoices, openActivity.updated, openActivity.use_invite, openActivity.update_repeating);
|
|
439
|
+
return new OpenActivity(openActivity.id, openActivity.activity_group_id, openActivity.activity_type_id, openActivity.club_id, openActivity.location_id, openActivity.member_id, openActivity.team_id, openActivity.activity_location, openActivity.activity_type_name, openActivity.allow_maybe, openActivity.calendar_name, openActivity.comment_required, openActivity.created, openActivity.current_num_attendants, openActivity.day, openActivity.default_fee, openActivity.default_fee_id, openActivity.description, openActivity.end, openActivity.end_time, openActivity.file, openActivity.has_unpaid_invoices, openActivity.invitation_text, openActivity.invite_first_days, openActivity.invite_groups, openActivity.invite_hide_before_sent, openActivity.invite_last_response_date, openActivity.invite_remind, openActivity.invite_remind_receivers, openActivity.invite_second_days, openActivity.invite_settings, openActivity.invited_members.filter((invite) => invite.member_id !== payload.memberId), openActivity.last_response_date, openActivity.location_name, openActivity.max_num_attendants, openActivity.max_num_attendants_type, openActivity.meet_up_place, openActivity.meet_up_time, openActivity.meet_up_time_display, openActivity.meet_up_time_show, openActivity.member_ids, openActivity.member_invoice, openActivity.member_name, openActivity.open_activity, openActivity.optional_fees, openActivity.optional_fee_required, openActivity.optional_fee_type, openActivity.payment_link, openActivity.public_payment_link, openActivity.questions, openActivity.repeat, openActivity.repeat_num, openActivity.repeat_to_day, openActivity.repeat_type, openActivity.service_fee, openActivity.service_fee_id, openActivity.show_other_invited, openActivity.start, openActivity.start_time, 'waiting', openActivity.title, openActivity.unpaid_invoices, openActivity.updated, openActivity.use_invite, openActivity.update_repeating);
|
|
440
440
|
}
|
|
441
441
|
return openActivity;
|
|
442
442
|
});
|
|
@@ -507,4 +507,4 @@ on(deleteTeamActivitySuccessAction, (state, { payload }) => {
|
|
|
507
507
|
on(createTeamActivityAction, state => ({ ...state, currentTeamActivity: retrieveStartLoading(state.currentTeamActivity) })),
|
|
508
508
|
// Failure Handlers
|
|
509
509
|
on(createTeamActivityFailureAction, (state, { payload }) => ({ ...state, currentTeamActivity: retrieveLoadFailure(payload) })));
|
|
510
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIucmVkdWNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEtYWNjZXNzL3NyYy9saWIvc3RvcmUvcmVkdWNlcnMvY2FsZW5kYXIucmVkdWNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNoRCxPQUFPLEVBQWlCLG9CQUFvQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQy9ELE9BQU8sRUFDTCx5QkFBeUIsRUFDekIsK0JBQStCLEVBQy9CLDZCQUE2QixFQUM3QixnQkFBZ0IsRUFDaEIseUJBQXlCLEVBQ3pCLHVCQUF1QixFQUN2Qix3QkFBd0IsRUFDeEIsK0JBQStCLEVBQy9CLDhCQUE4QixFQUM5Qix1Q0FBdUMsRUFDdkMsK0JBQStCLEVBQy9CLHdDQUF3QyxFQUN4QywrQ0FBK0MsRUFDL0MsK0NBQStDLEVBQy9DLG9DQUFvQyxFQUNwQywyQ0FBMkMsRUFDM0MsMkNBQTJDLEVBQzNDLDBCQUEwQixFQUMxQixpQ0FBaUMsRUFDakMsaUNBQWlDLEVBQ2pDLCtCQUErQixFQUMvQixzQ0FBc0MsRUFDdEMsc0NBQXNDLEVBQ3RDLDhCQUE4QixFQUM5QixxQ0FBcUMsRUFDckMscUNBQXFDLEVBQ3JDLHFDQUFxQyxFQUNyQyw0Q0FBNEMsRUFDNUMsNENBQTRDLEVBQzVDLGlDQUFpQyxFQUNqQyx3Q0FBd0MsRUFDeEMsd0NBQXdDLEVBQ3hDLHdCQUF3QixFQUN4QiwrQkFBK0IsRUFDL0IsK0JBQStCLEVBQy9CLHlDQUF5QyxFQUN6QywrQkFBK0IsRUFDL0Isc0NBQXNDLEVBQ3RDLHNDQUFzQyxFQUN0Qyx1Q0FBdUMsRUFDdkMsOEJBQThCLEVBQzlCLDJDQUEyQyxFQUMzQyw0QkFBNEIsRUFDNUIsbUNBQW1DLEVBQ25DLGtDQUFrQyxFQUNsQyx5Q0FBeUMsRUFDekMseUNBQXlDLEVBQ3pDLG1D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QUFFLENBQUMsQ0FBQztBQUUzSCxtQkFBbUI7QUFDbkIsRUFBRSxDQUFDLCtCQUErQixFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsQ0FBd0IsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQ3RKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVSZWR1Y2VyLCBvbiB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IENhbGVuZGFyU3RhdGUsIGluaXRpYWxDYWxlbmRhclN0YXRlIH0gZnJvbSAnLi4vc3RhdGUnO1xuaW1wb3J0IHtcbiAgY2xlYXJNZW1iZXJBY3Rpdml0eUFjdGlvbixcbiAgY2xlYXJNZW1iZXJBY3Rpdml0eUludml0ZUFjdGlvbixcbiAgY2xlYXJNZW1iZXJPcGVuQWN0aXZpdHlBY3Rpb24sXG4gIGNsZWFyU3RvcmVBY3Rpb24sXG4gIGNsZWFyVGVhbUFjdGl2aXRpZXNBY3Rpb24sXG4gIGNsZWFyVGVhbUFjdGl2aXR5QWN0aW9uLFxuICBjcmVhdGVUZWFtQWN0aXZpdHlBY3Rpb24sXG4gIGNyZWF0ZVRlYW1BY3Rpdml0eUZhaWx1cmVBY3Rpb24sXG4gIGRlbGV0ZVRlYW1BY3Rpdml0eUludml0ZUFjdGlvbixcbiAgZGVsZXRlVGVhbUFjdGl2aXR5UXVlc3Rpb25TdWNjZXNzQWN0aW9uLFxuICBkZWxldGVUZWFtQWN0aXZpdHlTdWNjZXNzQWN0aW9uLFxuICBsaXN0QWxsTWVtYmVyT3BlbkFjdGl2aXR5TG9jYXRpb25zQWN0aW9uLFxuICBsaXN0QWxsTWVtYmVyT3BlbkFjdGl2aXR5TG9jYXRpb25zRmFpbHVyZUFjdGlvbixcbiAgbGlzdEFsbE1lbWJlck9wZW5BY3Rpdml0eUxvY2F0aW9uc1N1Y2Nlc3NBY3Rpb24sXG4gIGxpc3RBbGxNZW1iZXJPcGVuQWN0aXZpdHlUeXBlc0FjdGlvbixcbiAgbGlzdEFsbE1lbWJlck9wZW5BY3Rpdml0eVR5cGVzRmFpbHVyZUFjdGlvbixcbiAgbGlzdEFsbE1lbWJlck9wZW5BY3Rpdml0eVR5cGVzU3VjY2Vzc0FjdGlvbixcbiAgbGlzdE1lbWJlckFjdGl2aXRpZXNBY3Rpb24sXG4gIGxpc3RNZW1iZXJBY3Rpdml0aWVzRmFpbHVyZUFjdGlvbixcbiAgbGlzdE1lbWJlckFjdGl2aXRpZXNTdWNjZXNzQWN0aW9uLFxuICBsaXN0TWVtYmVyQWN0aXZpdHlJbnZpdGVzQWN0aW9uLFxuICBsaXN0TWVtYmVyQWN0aXZpdHlJbnZpdGVzRmFpbHVyZUFjdGlvbixcbiAgbGlzdE1lbWJlckFjdGl2aXR5SW52aXRlc1N1Y2Nlc3NBY3Rpb24sXG4gIGxpc3RNZW1iZXJPcGVuQWN0aXZpdGllc0FjdGlvbixcbiAgbGlzdE1lbWJlck9wZW5BY3Rpdml0aWVzRmFpbHVyZUFjdGlvbixcbiAgbGlzdE1lbWJlck9wZW5BY3Rpdml0aWVzU3VjY2Vzc0FjdGlvbixcbiAgbGlzdE1lbWJlck9wZW5BY3Rpdml0eUxvY2F0aW9uc0FjdGlvbixcbiAgbGlzdE1lbWJlck9wZW5BY3Rpdml0eUxvY2F0aW9uc0ZhaWx1cmVBY3Rpb24sXG4gIGxpc3RNZW1iZXJPcGVuQWN0aXZpdHlMb2NhdGlvbnNTdWNjZXNzQWN0aW9uLFxuICBsaXN0TWVtYmVyT3BlbkFjdGl2aXR5VHlwZXNBY3Rpb24sXG4gIGxpc3RNZW1iZXJPcGVuQWN0aXZpdHlUeXBlc0ZhaWx1cmVBY3Rpb24sXG4gIGxpc3RNZW1iZXJPcGVuQWN0aXZpdHlUeXBlc1N1Y2Nlc3NBY3Rpb24sXG4gIGxpc3RUZWFtQWN0aXZpdGllc0FjdGlvbixcbiAgbGlzdFRlYW1BY3Rpdml0aWVzRmFpbHVyZUFjdGlvbixcbiAgbGlzdFRlYW1BY3Rpdml0aWVzU3VjY2Vzc0FjdGlvbixcbiAgbGlzdFRlYW1BY3Rpdml0eVBhcnRpY2lwYW50c1N1Y2Nlc3NBY3Rpb24sXG4gIGxpc3RUZWFtQWN0aXZpdHlRdWVzdGlvbnNBY3Rpb24sXG4gIGxpc3RUZWFtQWN0aXZpdHlRdWVzdGlvbnNGYWlsdXJlQWN0aW9uLFxuICBsaXN0VGVhbUFjdGl2aXR5UXVlc3Rpb25zU3VjY2Vzc0FjdGlvbixcbiAgbGlzdFRlYW1MZWFkZXJFeHRyYU1lbWJlcnNTdWNjZXNzQWN0aW9uLFxuICByZW1vdmVNZW1iZXJPcGVuQWN0aXZpdHlBY3Rpb24sXG4gIHJlc2VuZFRlYW1BY3Rpdml0eU1lbWJlckludml0ZVN1Y2Nlc3NBY3Rpb24sXG4gIHJldHJpZXZlTWVtYmVyQWN0aXZpdHlBY3Rpb24sXG4gIHJldHJpZXZlTWVtYmVyQWN0aXZpdHlGYWlsdXJlQWN0aW9uLFxuICByZXRyaWV2ZU1lbWJlckFjdGl2aXR5SW52aXRlQWN0aW9uLFxuICByZXRyaWV2ZU1lbWJlckFjdGl2aXR5SW52aXRlRmFpbHVyZUFjdGlvbixcbiAgcmV0cmlldmVNZW1iZXJBY3Rpdml0eUludml0ZVN1Y2Nlc3NBY3Rpb24sXG4gIHJldHJpZXZlTWVtYmVyQWN0aXZpdHlTdWNjZXNzQWN0aW9uLFxuICByZXRyaWV2ZU1lbWJlck9wZW5BY3Rpdml0eUFjdGlvbixcbiAgcmV0cmlldmVNZW1iZXJPcGVuQWN0aXZpdHlGYWlsdXJlQWN0aW9uLFxuICByZXRyaWV2ZU1lbWJlck9wZW5BY3Rpdml0eVN1Y2Nlc3NBY3Rpb24sXG4gIHJldHJpZXZlVGVhbUFjdGl2aXR5QWN0aW9uLFxuICByZXRyaWV2ZVRlYW1BY3Rpdml0eUZhaWx1cmVBY3Rpb24sXG4gIHJldHJpZXZlVGVhbUFjdGl2aXR5UVJDb2RlU3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVUZWFtQWN0aXZpdHlRdWVzdGlvbkFjdGlvbixcbiAgcmV0cmlldmVUZWFtQWN0aXZpdHlRdWVzdGlvbkZhaWx1cmVBY3Rpb24sXG4gIHJldHJpZXZlVGVhbUFjdGl2aXR5UXVlc3Rpb25TdWNjZXNzQWN0aW9uLFxuICByZXRyaWV2ZVRlYW1BY3Rpdml0eVNldHRpbmdzQWN0aW9uLFxuICByZXRyaWV2ZVRlYW1BY3Rpdml0eVNldHRpbmdzRmFpbHVyZUFjdGlvbixcbiAgcmV0cmlldmVUZWFtQWN0aXZpdHlTZXR0aW5nc1N1Y2Nlc3NBY3Rpb24sXG4gIHJldHJpZXZlVGVhbUFjdGl2aXR5U3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVUZWFtRGVmYXVsdEFjdGl2aXR5U2V0dGluZ3NBY3Rpb24sXG4gIHJldHJpZXZlVGVhbURlZmF1bHRBY3Rpdml0eVNldHRpbmdzRmFpbHVyZUFjdGlvbixcbiAgcmV0cmlldmVUZWFtRGVmYXVsdEFjdGl2aXR5U2V0dGluZ3NTdWNjZXNzQWN0aW9uLFxuICB1cGRhdGVNZW1iZXJBY3Rpdml0eUludml0ZVN1Y2Nlc3NBY3Rpb24sXG4gIHVwZGF0ZU1lbWJlck9wZW5BY3Rpdml0eVN1Y2Nlc3NBY3Rpb24sXG4gIHVwZGF0ZVRlYW1BY3Rpdml0eUFjdGlvbixcbiAgdXBkYXRlVGVhbUFjdGl2aXR5RmFpbHVyZUFjdGlvbixcbiAgdXBkYXRlVGVhbUFjdGl2aXR5UXVlc3Rpb25BY3Rpb24sXG4gIHVwZGF0ZVRlYW1BY3Rpdml0eVF1ZXN0aW9uRmFpbHVyZUFjdGlvbixcbiAgdXBkYXRlVGVhbUFjdGl2aXR5UXVlc3Rpb25TdWNjZXNzQWN0aW9uLFxuICB1cGRhdGVUZWFtQWN0aXZpdHlTdWNjZXNzQWN0aW9uLFxuICB1cGRhdGVUZWFtTWVtYmVyQWN0aXZpdHlJbnZpdGVTdWNjZXNzQWN0aW9uLFxufSBmcm9tICcuLi9hY3Rpb25zJztcbmltcG9ydCB7XG4gIEFjdGl2aXR5LFxuICBBY3Rpdml0eUludml0ZSxcbiAgQWN0aXZpdHlMb2NhdGlvbixcbiAgQWN0aXZpdHlRdWVzdGlvbixcbiAgQWN0aXZpdHlTZXR0aW5ncyxcbiAgQWN0aXZpdHlUeXBlLFxuICBFdmVudCxcbiAgTWVtYmVyQWN0aXZpdHlJbnZpdGUsXG4gIE9wZW5BY3Rpdml0eVxufSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgT3BlbkFjdGl2aXR5U2VhcmNoUGFyYW1zSW50ZXJmYWNlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQge1xuICBMaXN0UmVzdWx0SW50ZXJmYWNlLFxuICBSZXRyaWV2ZVJlc3VsdEludGVyZmFjZSxcbiAgVGVhbUFjdGl2aXR5SW50ZXJmYWNlLFxuICBUZWFtQ2FsZW5kYXJFdmVudFJlc3VsdEludGVyZmFjZVxufSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7XG4gIGxpc3RMb2FkRmFpbHVyZSxcbiAgbGlzdExvYWRTdWNjZXNzLFxuICBsaXN0U3RhcnRMb2FkaW5nLFxuICByZXRyaWV2ZUxvYWRGYWlsdXJlLFxuICByZXRyaWV2ZUxvYWRTdWNjZXNzLFxuICByZXRyaWV2ZVN0YXJ0TG9hZGluZ1xufSBmcm9tICcuL3JlZHVjZXItaGVscGVycyc7XG5cbi8vIC0tLSBIZWxwZXIgRnVuY3Rpb25zIC0tLVxuXG5jb25zdCB1cGRhdGVNZW1iZXJBY3Rpdml0eUludml0ZXMgPSAoaW52aXRlczogQXJyYXk8TWVtYmVyQWN0aXZpdHlJbnZpdGU+IHwgdW5kZWZpbmVkIHwgbnVsbCwgcGF5bG9hZDogQWN0aXZpdHlJbnZpdGUpID0+IHtcbiAgaWYgKCFpbnZpdGVzKSByZXR1cm4gW107XG4gIHJldHVybiBpbnZpdGVzLm1hcCgoaW52aXRlOiBNZW1iZXJBY3Rpdml0eUludml0ZSkgPT4ge1xuICAgIGlmIChpbnZpdGUubWVtYmVyX2lkID09PSBwYXlsb2FkLm1lbWJlci5pZCkge1xuICAgICAgcmV0dXJuIG5ldyBNZW1iZXJBY3Rpdml0eUludml0ZShcbiAgICAgICAgaW52aXRlLmlkLFxuICAgICAgICBwYXlsb2FkLmNvbW1lbnQsXG4gICAgICAgIGludml0ZS5jdXJyZW50X251bV9hdHRlbmRhbnRzLFxuICAgICAgICBwYXlsb2FkLmxhc3RfaW52aXRlLFxuICAgICAgICBwYXlsb2FkLmxlYWRlcixcbiAgICAgICAgcGF5bG9hZC5tZW1iZXIuZW1haWwsXG4gICAgICAgIHBheWxvYWQubWVtYmVyLmlkLFxuICAgICAgICBwYXlsb2FkLm1lbWJlci5uYW1lLFxuICAgICAgICBwYXlsb2FkLm5leHRfaW52aXRlLFxuICAgICAgICBwYXlsb2FkLnJlc3BvbnNlX2RhdGUsXG4gICAgICAgIHBheWxvYWQuc3RhdHVzXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gaW52aXRlO1xuICB9KTtcbn07XG5cbmNvbnN0IHVwZGF0ZUV2ZW50SW52aXRlcyA9IChldmVudHM6IEFycmF5PEV2ZW50PiwgcGF5bG9hZDogQWN0aXZpdHlJbnZpdGUpID0+IHtcbiAgcmV0dXJuIGV2ZW50cy5tYXAoKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgIGlmIChldmVudC5pbnZpdGF0aW9uX2lkID09PSBwYXlsb2FkLmlkKSB7XG4gICAgICByZXR1cm4gbmV3IEV2ZW50KFxuICAgICAgICBldmVudC5pZCxcbiAgICAgICAgZXZlbnQuYWN0aXZpdHlfaWQsXG4gICAgICAgIGV2ZW50LmFjdGl2aXR5X3R5cGUsXG4gICAgICAgIGV2ZW50LmJhc2VfYmFja2dyb3VuZF9jb2xvcixcbiAgICAgICAgZXZlbnQuYmFzZV9jb2xvcixcbiAgICAgICAgZXZlbnQuYmFzZV9uYW1lLFxuICAgICAgICBldmVudC5jYWxlbmRhcl9uYW1lLFxuICAgICAgICBldmVudC5kZXNjcmlwdGlvbixcbiAgICAgICAgZXZlbnQuZW5kLFxuICAgICAgICBldmVudC5pbnZpdGF0aW9uX2lkLFxuICAgICAgICBwYXlsb2FkLnN0YXR1cyxcbiAgICAgICAgZXZlbnQuaW52aXRlZF9tZW1iZXJzID8gWy4uLmV2ZW50Lmludml0ZWRfbWVtYmVyc10gOiBldmVudC5pbnZpdGVkX21lbWJlcnMsXG4gICAgICAgIGV2ZW50LmxvY2F0aW9uLFxuICAgICAgICBldmVudC5tZWV0X3VwX3BsYWNlLFxuICAgICAgICBldmVudC5tZWV0X3VwX3RpbWUsXG4gICAgICAgIGV2ZW50Lm1lbWJlcl9pZCxcbiAgICAgICAgZXZlbnQub3Blbl9hY3Rpdml0eSxcbiAgICAgICAgWy4uLmV2ZW50LnBhcnRpY2lwYW50c10sXG4gICAgICAgIGV2ZW50LnN0YXJ0LFxuICAgICAgICBldmVudC50aXRsZSxcbiAgICAgICAgZXZlbnQudHlwZVxuICAgICAgKVxuICAgIH1cbiAgICByZXR1cm4gZXZlbnQ7XG4gIH0pO1xufTtcblxuY29uc3QgdXBkYXRlSW52aXRlZE1lbWJlcnMgPSAoaW52aXRlZE1lbWJlcnM6IEFycmF5PE1lbWJlckFjdGl2aXR5SW52aXRlPiwgcGF5bG9hZDogQWN0aXZpdHlJbnZpdGUgfCBNZW1iZXJBY3Rpdml0eUludml0ZSkgPT4ge1xuICByZXR1cm4gaW52aXRlZE1lbWJlcnMubWFwKCh2YWx1ZTogTWVtYmVyQWN0aXZpdHlJbnZpdGUpID0+IHtcbiAgICBpZiAodmFsdWUuaWQgPT09IHBheWxvYWQuaWQpIHtcbiAgICAgIHJldHVybiBuZXcgTWVtYmVyQWN0aXZpdHlJbnZpdGUoXG4gICAgICAgIHZhbHVlLmlkLFxuICAgICAgICBwYXlsb2FkLmNvbW1lbnQsXG4gICAgICAgIHZhbHVlLmN1cnJlbnRfbnVtX2F0dGVuZGFudHMsXG4gICAgICAgIHBheWxvYWQubGFzdF9pbnZpdGUsXG4gICAgICAgIHZhbHVlLmxlYWRlcixcbiAgICAgICAgdmFsdWUubWVtYmVyX2VtYWlsLFxuICAgICAgICB2YWx1ZS5tZW1iZXJfaWQsXG4gICAgICAgIHZhbHVlLm1lbWJlcl9uYW1lLFxuICAgICAgICBwYXlsb2FkLm5leHRfaW52aXRlLFxuICAgICAgICBwYXlsb2FkLnJlc3BvbnNlX2RhdGUsXG4gICAgICAgIHBheWxvYWQuc3RhdHVzXG4gICAgICApXG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbiAgfSk7XG59O1xuXG5jb25zdCB1cGRhdGVPcGVuQWN0aXZpdGllcyA9IChvcGVuQWN0aXZpdGllczogQXJyYXk8T3BlbkFjdGl2aXR5PiwgcGF5bG9hZDogT3BlbkFjdGl2aXR5KSA9PiB7XG4gIHJldHVybiBvcGVuQWN0aXZpdGllcy5tYXAoKG9wZW5BY3Rpdml0eTogT3BlbkFjdGl2aXR5KSA9PiB7XG4gICAgaWYgKG9wZW5BY3Rpdml0eS5pZCA9PT0gcGF5bG9hZC5pZCkge1xuICAgICAgcmV0dXJuIHBheWxvYWQ7XG4gICAgfVxuICAgIHJldHVybiBvcGVuQWN0aXZpdHk7XG4gIH0pO1xufTtcblxuY29uc3QgdXBkYXRlVGVhbUFjdGl2aXR5SW52aXRlID0gKHN0YXRlOiBDYWxlbmRhclN0YXRlLCBwYXlsb2FkOiBBY3Rpdml0eUludml0ZSB8IE1lbWJlckFjdGl2aXR5SW52aXRlKSA9PiB7XG4gIGlmIChzdGF0ZS5jdXJyZW50VGVhbUFjdGl2aXR5Py5yZXN1bHQpIHtcbiAgICBpZiAoc3RhdGUuY3VycmVudFRlYW1BY3Rpdml0eS5yZXN1bHQuYWN0aXZpdHkuaW52aXRlZF9tZW1iZXJzLmZpbmRJbmRleCgodmFsdWU6IE1lbWJlckFjdGl2aXR5SW52aXRlKSA9PiB2YWx1ZS5pZCA9PT0gcGF5bG9hZC5pZCkgIT09IC0xKSB7XG4gICAgICBsZXQgY3VycmVudFN0YXRlID0ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgY3VycmVudFRlYW1BY3Rpdml0eToge1xuICAgICAgICAgIC4uLnN0YXRlLmN1cnJlbnRUZWFtQWN0aXZpdHksXG4gICAgICAgICAgcmVzdWx0OiB7XG4gICAgICAgICAgICAuLi5zdGF0ZS5jdXJyZW50VGVhbUFjdGl2aXR5LnJlc3VsdCxcbiAgICAgICAgICAgIGFjdGl2aXR5OiB7XG4gICAgICAgICAgICAgIC4uLnN0YXRlLmN1cnJlbnRUZWFtQWN0aXZpdHkucmVzdWx0LmFjdGl2aXR5LFxuICAgICAgICAgICAgICBpbnZpdGVkX21lbWJlcnM6IHVwZGF0ZUludml0ZWRNZW1iZXJzKHN0YXRlLmN1cnJlbnRUZWFtQWN0aXZpdHkucmVzdWx0LmFjdGl2aXR5Lmludml0ZWRfbWVtYmVycywgcGF5bG9hZClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNvbnN0IGFjdGl2aXR5SWQgPSBjdXJyZW50U3RhdGUuY3VycmVudFRlYW1BY3Rpdml0eS5yZXN1bHQuYWN0aXZpdHkuaWQ7XG5cbiAgICAgIGlmIChjdXJyZW50U3RhdGUudGVhbUV2ZW50cz8udmFsdWU/LnJlc3VsdHMpIHtcbiAgICAgICAgY3VycmVudFN0YXRlLnRlYW1FdmVudHMgPSB7XG4gICAgICAgICAgLi4uY3VycmVudFN0YXRlLnRlYW1FdmVudHMsXG4gICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgIC4uLmN1cnJlbnRTdGF0ZS50ZWFtRXZlbnRzLnZhbHVlLFxuICAgICAgICAgICAgcmVzdWx0czogY3VycmVudFN0YXRlLnRlYW1FdmVudHMudmFsdWUucmVzdWx0cy5tYXAoKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBjdXJyZW50RXZlbnQgPSB7Li4uZXZlbnR9O1xuICAgICAgICAgICAgICBpZiAoY3VycmVudEV2ZW50LmFjdGl2aXR5X2lkID09PSBhY3Rpdml0eUlkKSB7XG4gICAgICAgICAgICAgICAgY3VycmVudEV2ZW50Lmludml0ZWRfbWVtYmVycyA9IHVwZGF0ZUludml0ZWRNZW1iZXJzKGN1cnJlbnRFdmVudC5pbnZpdGVkX21lbWJlcnMgfHwgW10sIHBheWxvYWQpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiBjdXJyZW50RXZlbnQ7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGN1cnJlbnRTdGF0ZSBhcyBDYWxlbmRhclN0YXRlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gc3RhdGU7XG59XG5cbmNvbnN0IHVwZGF0ZU1lbWJlckFjdGl2aXR5SW52aXRlID0gKHN0YXRlOiBDYWxlbmRhclN0YXRlLCBwYXlsb2FkOiBBY3Rpdml0eUludml0ZSkgPT4ge1xuICBsZXQgY3VycmVudFN0YXRlID0ge1xuICAgIC4uLnN0YXRlLFxuICAgIGN1cnJlbnRNZW1iZXJBY3Rpdml0eUludml0ZTogcmV0cmlldmVMb2FkU3VjY2VzcyhwYXlsb2FkKVxuICB9O1xuXG4gIGlmIChjdXJyZW50U3RhdGUuY3VycmVudE1lbWJlckFjdGl2aXR5Py5yZXN1bHQ/LmlkID09PSBwYXlsb2FkLmFjdGl2aXR5LmlkKSB7XG4gICAgY3VycmVudFN0YXRlLmN1cnJlbnRNZW1iZXJBY3Rpdml0eSA9IHtcbiAgICAgIC4uLmN1cnJlbnRTdGF0ZS5jdXJyZW50TWVtYmVyQWN0aXZpdHksXG4gICAgICByZXN1bHQ6IHtcbiAgICAgICAgLi4uY3VycmVudFN0YXRlLmN1cnJlbnRNZW1iZXJBY3Rpdml0eS5yZXN1bHQsXG4gICAgICAgIGludml0ZWRfbWVtYmVyczogdXBkYXRlTWVtYmVyQWN0aXZpdHlJbnZpdGVzKFxuICAgICAgICAgIGN1cnJlbnRTdGF0ZS5jdXJyZW50TWVtYmVyQWN0aXZpdHkucmVzdWx0Lmludml0ZWRfbWVtYmVycyxcbiAgICAgICAgICBwYXlsb2FkXG4gICAgICAgICksXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBpZiAoY3VycmVudFN0YXRlLm1lbWJlckV2ZW50cz8udmFsdWU/LnJlc3VsdCkge1xuICAgIGNvbnN0IGV4aXN0aW5nRXZlbnRzID0gY3VycmVudFN0YXRlLm1lbWJlckV2ZW50cy52YWx1ZS5yZXN1bHQuZ2V0KHBheWxvYWQubWVtYmVyLmlkKTtcblxuICAgIGlmIChleGlzdGluZ0V2ZW50cykge1xuICAgICAgY3VycmVudFN0YXRlLm1lbWJlckV2ZW50cyA9IHtcbiAgICAgICAgLi4uY3VycmVudFN0YXRlLm1lbWJlckV2ZW50cyxcbiAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAuLi5jdXJyZW50U3RhdGUubWVtYmVyRXZlbnRzLnZhbHVlLFxuICAgICAgICAgIHJlc3VsdDogbmV3IE1hcChjdXJyZW50U3RhdGUubWVtYmVyRXZlbnRzLnZhbHVlLnJlc3VsdCkuc2V0KFxuICAgICAgICAgICAgcGF5bG9hZC5tZW1iZXIuaWQsXG4gICAgICAgICAgICB1cGRhdGVFdmVudEludml0ZXMoZXhpc3RpbmdFdmVudHMsIHBheWxvYWQpXG4gICAgICAgICAgKSxcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBpZiAoY3VycmVudFN0YXRlLmFjdGl2aXR5SW52aXRlcz8ucmVzdWx0cykge1xuICAgIGN1cnJlbnRTdGF0ZS5hY3Rpdml0eUludml0ZXMgPSB7XG4gICAgICAuLi5jdXJyZW50U3RhdGUuYWN0aXZpdHlJbnZpdGVzLFxuICAgICAgcmVzdWx0czogY3VycmVudFN0YXRlLmFjdGl2aXR5SW52aXRlcy5yZXN1bHRzLm1hcCgoaW52aXRlOiBBY3Rpdml0eUludml0ZSkgPT4ge1xuICAgICAgICBpZiAoaW52aXRlLmlkID09PSBwYXlsb2FkLmlkKSB7XG4gICAgICAgICAgcmV0dXJuIHBheWxvYWQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGludml0ZTtcbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGN1cnJlbnRTdGF0ZTtcbn1cblxuLy8gLS0tIFJlZHVjZXIgLS0tXG5cbmV4cG9ydCBjb25zdCBjYWxlbmRhclJlZHVjZXIgPSBjcmVhdGVSZWR1Y2VyKFxuICBpbml0aWFsQ2FsZW5kYXJTdGF0ZSxcblxuICAvLyBDbGVhciBBY3Rpb25zXG4gIG9uKGNsZWFyU3RvcmVBY3Rpb24sICgpID0+IGluaXRpYWxDYWxlbmRhclN0YXRlKSxcbiAgb24oY2xlYXJNZW1iZXJBY3Rpdml0eUFjdGlvbiwgKHN0YXRlOiBDYWxlbmRhclN0YXRlKSA9PiAoeyAuLi5zdGF0ZSwgY3VycmVudE1lbWJlckFjdGl2aXR5OiB1bmRlZmluZWQgfSkpLFxuICBvbihjbGVhck1lbWJlckFjdGl2aXR5SW52aXRlQWN0aW9uLCAoc3RhdGU6IENhbGVuZGFyU3RhdGUpID0+ICh7IC4uLnN0YXRlLCBjdXJyZW50TWVtYmVyQWN0aXZpdHlJbnZpdGU6IHVuZGVmaW5lZCB9KSksXG4gIG9uKGNsZWFyTWVtYmVyT3BlbkFjdGl2aXR5QWN0aW9uLCAoc3RhdGU6IENhbGVuZGFyU3RhdGUpID0+ICh7IC4uLnN0YXRlLCBjdXJyZW50TWVtYmVyT3BlbkFjdGl2aXR5OiB1bmRlZmluZWQgfSkpLFxuICBvbihjbGVhclRlYW1BY3Rpdml0eUFjdGlvbiwgKHN0YXRlOiBDYWxlbmRhclN0YXRlKSA9PiAoeyAuLi5zdGF0ZSwgY3VycmVudFRlYW1BY3Rpdml0eTogdW5kZWZpbmVkIH0pKSxcbiAgb24oY2xlYXJUZWFtQWN0aXZpdGllc0FjdGlvbiwgKHN0YXRlOiBDYWxlbmRhclN0YXRlKSA9PiAoeyAuLi5zdGF0ZSwgdGVhbUV2ZW50czogdW5kZWZpbmVkIH0pKSxcblxuICAvLyBNZW1iZXIgQWN0aXZpdHkgSW52aXRlc1xuICBvbihyZXRyaWV2ZU1lbWJlckFjdGl2aXR5SW52aXRlQWN0aW9uLCBzdGF0ZSA9PiAoeyAuLi5zdGF0ZSwgY3VycmVudE1lbWJlckFjdGl2aXR5SW52aXRlOiByZXRyaWV2ZVN0YXJ0TG9hZGluZyhzdGF0ZS5jdXJyZW50TWVtYmVyQWN0aXZpdHlJbnZpdGUpIH0pKSxcbiAgb24ocmV0cmlldmVNZW1iZXJBY3Rpdml0eUludml0ZUZhaWx1cmVBY3Rpb24sIChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+ICh7IC4uLnN0YXRlLCBjdXJyZW50TWVtYmVyQWN0aXZpdHlJbnZpdGU6IHJldHJpZXZlTG9hZEZhaWx1cmU8QWN0aXZpdHlJbnZpdGU+KHBheWxvYWQpIH0pKSxcbiAgb24ocmV0cmlldmVNZW1iZXJBY3Rpdml0eUludml0ZVN1Y2Nlc3NBY3Rpb24sIChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+IHVwZGF0ZU1lbWJlckFjdGl2aXR5SW52aXRlKHN0YXRlLCBwYXlsb2FkKSksXG5cbiAgLy8gTWVtYmVyIEFjdGl2aXRpZXNcbiAgb24ocmV0cmlldmVNZW1iZXJBY3Rpdml0eUFjdGlvbiwgc3RhdGUgPT4gKHsgLi4uc3RhdGUsIGN1cnJlbnRNZW1iZXJBY3Rpdml0eTogcmV0cmlldmVTdGFydExvYWRpbmcoc3RhdGUuY3VycmVudE1lbWJlckFjdGl2aXR5KSB9KSksXG4gIG9uKHJldHJpZXZlTWVtYmVyQWN0aXZpdHlGYWlsdXJlQWN0aW9uLCAoc3RhdGUsIHsgcGF5bG9hZCB9KSA9PiAoeyAuLi5zdGF0ZSwgY3VycmVudE1lbWJlckFjdGl2aXR5OiByZXRyaWV2ZUxvYWRGYWlsdXJlPEFjdGl2aXR5PihwYXlsb2FkKSB9KSksXG4gIG9uKHJldHJpZXZlTWVtYmVyQWN0aXZpdHlTdWNjZXNzQWN0aW9uLCAoc3RhdGUsIHsgcGF5bG9hZCB9KSA9PiAoeyAuLi5zdGF0ZSwgY3VycmVudE1lbWJlckFjdGl2aXR5OiByZXRyaWV2ZUxvYWRTdWNjZXNzKHBheWxvYWQpIH0pKSxcblxuICAvLyBNZW1iZXIgT3BlbiBBY3Rpdml0aWVzXG4gIG9uKHJldHJpZXZlTWVtYmVyT3BlbkFjdGl2aXR5QWN0aW9uLCBzdGF0ZSA9PiAoeyAuLi5zdGF0ZSwgY3VycmVudE1lbWJlck9wZW5BY3Rpdml0eTogcmV0cmlldmVTdGFydExvYWRpbmcoc3RhdGUuY3VycmVudE1lbWJlck9wZW5BY3Rpdml0eSkgfSkpLFxuICBvbihyZXRyaWV2ZU1lbWJlck9wZW5BY3Rpdml0eUZhaWx1cmVBY3Rpb24sIChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+ICh7IC4uLnN0YXRlLCBjdXJyZW50TWVtYmVyT3BlbkFjdGl2aXR5OiByZXRyaWV2ZUxvYWRGYWlsdXJlPE9wZW5BY3Rpdml0eT4ocGF5bG9hZCkgfSkpLFxuICBvbihyZXRyaWV2ZU1lbWJlck9wZW5BY3Rpdml0eVN1Y2Nlc3NBY3Rpb24sIChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+IHtcbiAgICBsZXQgbmV3U3RhdGUgPSB7IC4uLnN0YXRlLCBjdXJyZW50TWVtYmVyT3BlbkFjdGl2aXR5OiByZXRyaWV2ZUxvYWRTdWNjZXNzKHBheWxvYWQpIH07XG5cbiAgICBpZiAobmV3U3RhdGUubWVtYmVyT3BlbkFjdGl2aXRpZXM/LnZhbHVlLnJlc3VsdCAmJiBuZXdTdGF0ZS5tZW1iZXJPcGVuQWN0aXZpdGllcz8udmFsdWUucmVzdWx0Py5nZXQocGF5bG9hZC5tZW1iZXJfaWQpPy5maW5kSW5kZXgoKGl0ZW06IE9wZW5BY3Rpdml0eSkgPT4gaXRlbS5pZCA9PT0gcGF5bG9hZC5pZCkgIT09IC0xKSB7XG4gICAgICBjb25zdCB1cGRhdGVkQWN0aXZpdGllcyA9IG5ld1N0YXRlLm1lbWJlck9wZW5BY3Rpdml0aWVzPy52YWx1ZS5yZXN1bHQ/LmdldChwYXlsb2FkLm1lbWJlcl9pZCk/Lm1hcCgoaXRlbTogT3BlbkFjdGl2aXR5KSA9PiBpdGVtLmlkID09PSBwYXlsb2FkLmlkID8gcGF5bG9hZCA6IGl0ZW0pIGFzIEFycmF5PE9wZW5BY3Rpdml0eT47XG5cbiAgICAgIG5ld1N0YXRlID0ge1xuICAgICAgICAuLi5uZXdTdGF0ZSxcbiAgICAgICAgbWVtYmVyT3BlbkFjdGl2aXRpZXM6IHtcbiAgICAgICAgICBzZWFyY2hQYXJhbXM6IG5ld1N0YXRlLm1lbWJlck9wZW5BY3Rpdml0aWVzPy5zZWFyY2hQYXJhbXMgYXMgT3BlbkFjdGl2aXR5U2VhcmNoUGFyYW1zSW50ZXJmYWNlLFxuICAgICAgICAgIG1lbWJlcklkczogbmV3U3RhdGUubWVtYmVyT3BlbkFjdGl2aXRpZXM/Lm1lbWJlcklkcyBhcyBBcnJheTxzdHJpbmc+LFxuICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICBsb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgICAgIGVycm9yOiBudWxsLFxuICAgICAgICAgICAgbGFzdExvYWRlZDogbmV3IERhdGUoKSxcbiAgICAgICAgICAgIHJlc3VsdDogbmV3U3RhdGUubWVtYmVyT3BlbkFjdGl2aXRpZXM/LnZhbHVlLnJlc3VsdD8uc2V0KHBheWxvYWQubWVtYmVyX2lkLCB1cGRhdGVkQWN0aXZpdGllcykgYXMgTWFwPHN0cmluZywgQXJyYXk8T3BlbkFjdGl2aXR5Pj5cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbmV3U3RhdGU7XG4gIH0pLFxuXG4gIC8vIExpc3QgQWxsIE1lbWJlciBPcGVuIEFjdGl2aXR5IExvY2F0aW9uc1xuICBvbihsaXN0QWxsTWVtYmVyT3BlbkFjdGl2aXR5TG9jYXRpb25zQWN0aW9uLCBzdGF0ZSA9PiAoeyAuLi5zdGF0ZSwgYWxsT3BlbkFjdGl2aXR5TG9jYXRpb25zOiBsaXN0U3RhcnRMb2FkaW5nKHN0YXRlLmFsbE9wZW5BY3Rpdml0eUxvY2F0aW9ucykgfSkpLFxuICBvbihsaXN0QWxsTWVtYmVyT3BlbkFjdGl2aXR5TG9jYXRpb25zRmFpbHVyZUFjdGlvbiwgKHN0YXRlLCB7IHBheWxvYWQgfSkgPT4gKHsgLi4uc3RhdGUsIGFsbE9wZW5BY3Rpdml0eUxvY2F0aW9uczogbGlzdExvYWRGYWlsdXJlPEFjdGl2aXR5TG9jYXRpb24+KHBheWxvYWQpIH0pKSxcbiAgb24obGlzdEFsbE1lbWJlck9wZW5BY3Rpdml0eUxvY2F0aW9uc1N1Y2Nlc3NBY3Rpb24sIChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+ICh7IC4uLnN0YXRlLCBhbGxPcGVuQWN0aXZpdHlMb2NhdGlvbnM6IGxpc3RMb2FkU3VjY2VzcyhwYXlsb2FkKSB9KSksXG5cbiAgLy8gTGlzdCBBbGwgTWVtYmVyIE9wZW4gQWN0aXZpdHkgVHlwZXNcbiAgb24obGlzdEFsbE1lbWJlck9wZW5BY3Rpdml0eVR5cGVzQWN0aW9uLCBzdGF0ZSA9PiAoeyAuLi5zdGF0ZSwgYWxsT3BlbkFjdGl2aXR5VHlwZXM6IGxpc3RTdGFydExvYWRpbmcoc3RhdGUuYWxsT3BlbkFjdGl2aXR5VHlwZXMpIH0pKSxcbiAgb24obGlzdEFsbE1lbWJlck9wZW5BY3Rpdml0eVR5cGVzRmFpbHVyZUFjdGlvbiwgKHN0YXRlLCB7IHBheWxvYWQgfSkgPT4gKHsgLi4uc3RhdGUsIGFsbE9wZW5BY3Rpdml0eVR5cGVzOiBsaXN0TG9hZEZhaWx1cmU8QWN0aXZpdHlUeXBlPihwYXlsb2FkKSB9KSksXG4gIG9uKGxpc3RBbGxNZW1iZXJPcGVuQWN0aXZpdHlUeXBlc1N1Y2Nlc3NBY3Rpb24sIChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+ICh7IC4uLnN0YXRlLCBhbGxPcGVuQWN0aXZpdHlUeXBlczogbGlzdExvYWRTdWNjZXNzKHBheWxvYWQpIH0pKSxcblxuICAvLyBMaXN0IE1lbWJlciBBY3Rpdml0eSBJbnZpdGVzXG4gIG9uKGxpc3RNZW1iZXJBY3Rpdml0eUludml0ZXNBY3Rpb24sIHN0YXRlID0+ICh7IC4uLnN0YXRlLCBhY3Rpdml0eUludml0ZXM6IGxpc3RTdGFydExvYWRpbmcoc3RhdGUuYWN0aXZpdHlJbnZpdGVzKSB9KSksXG4gIG9uKGxpc3RNZW1iZXJBY3Rpdml0eUludml0ZXNGYWlsdXJlQWN0aW9uLCAoc3RhdGUsIHsgcGF5bG9hZCB9KSA9PiAoeyAuLi5zdGF0ZSwgYWN0aXZpdHlJbnZpdGVzOiBsaXN0TG9hZEZhaWx1cmU8QWN0aXZpdHlJbnZpdGU+KHBheWxvYWQpIH0pKSxcbiAgb24obGlzdE1lbWJlckFjdGl2aXR5SW52aXRlc1N1Y2Nlc3NBY3Rpb24sIChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+ICh7IC4uLnN0YXRlLCBhY3Rpdml0eUludml0ZXM6IGxpc3RMb2FkU3VjY2VzcyhwYXlsb2FkKSB9KSksXG5cbiAgLy8gTWVtYmVyIEFjdGl2aXRpZXNcbiAgb24obGlzdE1lbWJlckFjdGl2aXRpZXNBY3Rpb24sIChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgbWVtYmVyRXZlbnRzOiB7XG4gICAgICBzdGFydERhdGU6IHBheWxvYWQuc3RhcnREYXRlLFxuICAgICAgZW5kRGF0ZTogcGF5bG9hZC5lbmREYXRlLFxuICAgICAgbWVtYmVySWRzOiBwYXlsb2FkLm1lbWJlcklkcyxcbiAgICAgIHZhbHVlOiByZXRyaWV2ZVN0YXJ0TG9hZGluZyhzdGF0ZS5tZW1iZXJFdmVudHM/LnZhbHVlKVxuICAgIH1cbiAgfSkpLFxuICBvbihsaXN0TWVtYmVyQWN0aXZpdGllc0ZhaWx1cmVBY3Rpb24sIChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgbWVtYmVyRXZlbnRzOiB7XG4gICAgICBzdGFydERhdGU6IHBheWxvYWQuc3RhcnREYXRlLFxuICAgICAgZW5kRGF0ZTogcGF5bG9hZC5lbmREYXRlLFxuICAgICAgbWVtYmVySWRzOiBwYXlsb2FkLm1lbWJlcklkcyxcbiAgICAgIHZhbHVlOiByZXRyaWV2ZUxvYWRGYWlsdXJlPE1hcDxzdHJpbmcsIEFycmF5PEV2ZW50Pj4+KHBheWxvYWQuZXJyb3IpXG4gICAgfVxuICB9KSksXG4gIG9uKGxpc3RNZW1iZXJBY3Rpdml0aWVzU3VjY2Vzc0FjdGlvbiwgKHN0YXRlLCB7IHBheWxvYWQgfSkgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBtZW1iZXJFdmVudHM6IHtcbiAgICAgIHN0YXJ0RGF0ZTogcGF5bG9hZC5zdGFydERhdGUsXG4gICAgICBlbmREYXRlOiBwYXlsb2FkLmVuZERhdGUsXG4gICAgICBtZW1iZXJJZHM6IHBheWxvYWQubWVtYmVySWRzLFxuICAgICAgdmFsdWU6IHJldHJpZXZlTG9hZFN1Y2Nlc3MocGF5bG9hZC5yZXN1bHRzKVxuICAgIH1cbiAgfSkpLFxuXG4gIC8vIE1lbWJlciBPcGVuIEFjdGl2aXRpZXNcbiAgb24obGlzdE1lbWJlck9wZW5BY3Rpdml0aWVzQWN0aW9uLCAoc3RhdGUsIHsgcGF5bG9hZCB9KSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIG1lbWJlck9wZW5BY3Rpdml0aWVzOiB7XG4gICAgICBzZWFyY2hQYXJhbXM6IHBheWxvYWQub3BlbkFjdGl2aXR5U2VhcmNoUGFyYW1zLFxuICAgICAgbWVtYmVySWRzOiBwYXlsb2FkLm1lbWJlcklkcyxcbiAgICAgIHZhbHVlOiByZXRyaWV2ZVN0YXJ0TG9hZGluZyhzdGF0ZS5tZW1iZXJPcGVuQWN0aXZpdGllcz8udmFsdWUpXG4gICAgfVxuICB9KSksXG4gIG9uKGxpc3RNZW1iZXJPcGVuQWN0aXZpdGllc0ZhaWx1cmVBY3Rpb24sIChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgbWVtYmVyT3BlbkFjdGl2aXRpZXM6IHtcbiAgICAgIHNlYXJjaFBhcmFtczogcGF5bG9hZC5vcGVuQWN0aXZpdHlTZWFyY2hQYXJhbXMsXG4gICAgICBtZW1iZXJJZHM6IHBheWxvYWQubWVtYmVySWRzLFxuICAgICAgdmFsdWU6IHJldHJpZXZlTG9hZEZhaWx1cmU8TWFwPHN0cmluZywgQXJyYXk8T3BlbkFjdGl2aXR5Pj4+KHBheWxvYWQuZXJyb3IpXG4gICAgfVxuICB9KSksXG4gIG9uKGxpc3RNZW1iZXJPcGVuQWN0aXZpdGllc1N1Y2Nlc3NBY3Rpb24sIChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgbWVtYmVyT3BlbkFjdGl2aXRpZXM6IHtcbiAgICAgIHNlYXJjaFBhcmFtczogcGF5bG9hZC5vcGVuQWN0aXZpdHlTZWFyY2hQYXJhbXMsXG4gICAgICBtZW1iZXJJZHM6IHBheWxvYWQubWVtYmVySWRzLFxuICAgICAgdmFsdWU6IHJldHJpZXZlTG9hZFN1Y2Nlc3MocGF5bG9hZC5yZXN1bHRzKVxuICAgIH1cbiAgfSkpLFxuXG4gIC8vIE1lbWJlciBPcGVuIEFjdGl2aXR5IExvY2F0aW9uc1xuICBvbihsaXN0TWVtYmVyT3BlbkFjdGl2aXR5TG9jYXRpb25zQWN0aW9uLCAoc3RhdGUsIHsgcGF5bG9hZCB9KSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIG1lbWJlck9wZW5BY3Rpdml0eUxvY2F0aW9uczoge1xuICAgICAgc3RhcnREYXRlOiBwYXlsb2FkLnN0YXJ0RGF0ZSxcbiAgICAgIGVuZERhdGU6IHBheWxvYWQuZW5kRGF0ZSxcbiAgICAgIHZhbHVlOiBsaXN0U3RhcnRMb2FkaW5nPEFjdGl2aXR5TG9jYXRpb24+KHN0YXRlLm1lbWJlck9wZW5BY3Rpdml0eUxvY2F0aW9ucz8udmFsdWUpXG4gICAgfVxuICB9KSksXG4gIG9uKGxpc3RNZW1iZXJPcGVuQWN0aXZpdHlMb2NhdGlvbnNGYWlsdXJlQWN0aW9uLCAoc3RhdGUsIHsgcGF5bG9hZCB9KSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIG1lbWJlck9wZW5BY3Rpdml0eUxvY2F0aW9uczoge1xuICAgICAgc3RhcnREYXRlOiBwYXlsb2FkLnN0YXJ0RGF0ZSxcbiAgICAgIGVuZERhdGU6IHBheWxvYWQuZW5kRGF0ZSxcbiAgICAgIHZhbHVlOiBsaXN0TG9hZEZhaWx1cmU8QWN0aXZpdHlMb2NhdGlvbj4ocGF5bG9hZC5lcnJvcilcbiAgICB9XG4gIH0pKSxcbiAgb24obGlzdE1lbWJlck9wZW5BY3Rpdml0eUxvY2F0aW9uc1N1Y2Nlc3NBY3Rpb24sIChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgbWVtYmVyT3BlbkFjdGl2aXR5TG9jYXRpb25zOiB7XG4gICAgICBzdGFydERhdGU6IHBheWxvYWQuc3RhcnREYXRlLFxuICAgICAgZW5kRGF0ZTogcGF5bG9hZC5lbmREYXRlLFxuICAgICAgdmFsdWU6IGxpc3RMb2FkU3VjY2VzcyhwYXlsb2FkLmxvY2F0aW9ucylcbiAgICB9XG4gIH0pKSxcblxuICAvLyBNZW1iZXIgT3BlbiBBY3Rpdml0eSBUeXBlc1xuICBvbihsaXN0TWVtYmVyT3BlbkFjdGl2aXR5VHlwZXNBY3Rpb24sIChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgbWVtYmVyT3BlbkFjdGl2aXR5VHlwZXM6IHtcbiAgICAgIHN0YXJ0RGF0ZTogcGF5bG9hZC5zdGFydERhdGUsXG4gICAgICBlbmREYXRlOiBwYXlsb2FkLmVuZERhdGUsXG4gICAgICB2YWx1ZTogbGlzdFN0YXJ0TG9hZGluZzxBY3Rpdml0eVR5cGU+KHN0YXRlLm1lbWJlck9wZW5BY3Rpdml0eVR5cGVzPy52YWx1ZSlcbiAgICB9XG4gIH0pKSxcbiAgb24obGlzdE1lbWJlck9wZW5BY3Rpdml0eVR5cGVzRmFpbHVyZUFjdGlvbiwgKHN0YXRlLCB7IHBheWxvYWQgfSkgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBtZW1iZXJPcGVuQWN0aXZpdHlUeXBlczoge1xuICAgICAgc3RhcnREYXRlOiBwYXlsb2FkLnN0YXJ0RGF0ZSxcbiAgICAgIGVuZERhdGU6IHBheWxvYWQuZW5kRGF0ZSxcbiAgICAgIHZhbHVlOiBsaXN0TG9hZEZhaWx1cmU8QWN0aXZpdHlUeXBlPihwYXlsb2FkLmVycm9yKVxuICAgIH1cbiAgfSkpLFxuICBvbihsaXN0TWVtYmVyT3BlbkFjdGl2aXR5VHlwZXNTdWNjZXNzQWN0aW9uLCAoc3RhdGUsIHsgcGF5bG9hZCB9KSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIG1lbWJlck9wZW5BY3Rpdml0eVR5cGVzOiB7XG4gICAgICBzdGFydERhdGU6IHBheWxvYWQuc3RhcnREYXRlLFxuICAgICAgZW5kRGF0ZTogcGF5bG9hZC5lbmREYXRlLFxuICAgICAgdmFsdWU6IGxpc3RMb2FkU3VjY2VzcyhwYXlsb2FkLnR5cGVzKVxuICAgIH1cbiAgfSkpLFxuXG4gIG9uKGRlbGV0ZVRlYW1BY3Rpdml0eUludml0ZUFjdGlvbiwgKHN0YXRlOiBDYWxlbmRhclN0YXRlLCB7cGF5bG9hZH06IHtwYXlsb2FkOiB7dGVhbUlkOiBzdHJpbmcsIGFjdGl2aXR5SWQ6IHN0cmluZywgYWN0aXZpdHlJbnZpdGVJZDogc3RyaW5nfSB9KSA9PiB7XG4gICAgaWYgKHN0YXRlLmN1cnJlbnRUZWFtQWN0aXZpdHk/LnJlc3VsdD8uYWN0aXZpdHkuaWQgPT09IHBheWxvYWQuYWN0aXZpdHlJZCB8fCBzdGF0ZS50ZWFtRXZlbnRzPy52YWx1ZS5yZXN1bHRzKSB7XG4gICAgICBsZXQgY3VycmVudFN0YXRlID0ge1xuICAgICAgICAuLi5zdGF0ZVxuICAgICAgfTtcblxuICAgICAgaWYgKHN0YXRlLmN1cnJlbnRUZWFtQWN0aXZpdHk/LnJlc3VsdD8uYWN0aXZpdHkuaWQgPT09IHBheWxvYWQuYWN0aXZpdHlJZCkge1xuICAgICAgICBjdXJyZW50U3RhdGUuY3VycmVudFRlYW1BY3Rpdml0eSA9IHtcbiAgICAgICAgICAuLi5jdXJyZW50U3RhdGUuY3VycmVudFRlYW1BY3Rpdml0eSxcbiAgICAgICAgICByZXN1bHQ6IHtcbiAgICAgICAgICAgIC4uLmN1cnJlbnRTdGF0ZS5jdXJyZW50VGVhbUFjdGl2aXR5Py5yZXN1bHQsXG4gICAgICAgICAgICBhY3Rpdml0eToge1xuICAgICAgICAgICAgICAuLi5jdXJyZW50U3RhdGUuY3VycmVudFRlYW1BY3Rpdml0eT8ucmVzdWx0Py5hY3Rpdml0eSxcbiAgICAgICAgICAgICAgaW52aXRlZF9tZW1iZXJzOiBjdXJyZW50U3RhdGUuY3VycmVudFRlYW1BY3Rpdml0eT8ucmVzdWx0Py5hY3Rpdml0eS5pbnZpdGVkX21lbWJlcnMuZmlsdGVyKGFjdGl2aXR5SW52aXRlID0+IGFjdGl2aXR5SW52aXRlLmlkICE9PSBwYXlsb2FkLmFjdGl2aXR5SW52aXRlSWQpIHx8IFtdXG4gICAgICAgICAgICB9IGFzIEFjdGl2aXR5XG4gICAgICAgICAgfSBhcyBUZWFtQWN0aXZpdHlJbnRlcmZhY2VcbiAgICAgICAgfSBhcyBSZXRyaWV2ZVJlc3VsdEludGVyZmFjZTxUZWFtQWN0aXZpdHlJbnRlcmZhY2U+XG4gICAgICB9XG5cbiAgICAgIGlmIChzdGF0ZS50ZWFtRXZlbnRzPy52YWx1ZT8ucmVzdWx0cykge1xuICAgICAgICBjdXJyZW50U3RhdGUudGVhbUV2ZW50cyA9IHtcbiAgICAgICAgICAuLi5jdXJyZW50U3RhdGUudGVhbUV2ZW50cyxcbiAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgLi4uY3VycmVudFN0YXRlLnRlYW1FdmVudHM/LnZhbHVlLFxuICAgICAgICAgICAgcmVzdWx0czogY3VycmVudFN0YXRlLnRlYW1FdmVudHM/LnZhbHVlLnJlc3VsdHMubWFwKChldmVudDogRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgaWYgKGV2ZW50LmFjdGl2aXR5X2lkID09PSBwYXlsb2FkLmFjdGl2aXR5SWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gIHtcbiAgICAgICAgICAgICAgICAgIC4uLmV2ZW50LFxuICAgICAgICAgICAgICAgICAgaW52aXRlZF9tZW1iZXJzOiBldmVudC5pbnZpdGVkX21lbWJlcnM/LmZpbHRlcigoYWN0aXZpdHlJbnZpdGU6IE1lbWJlckFjdGl2aXR5SW52aXRlKSA9PiBhY3Rpdml0eUludml0ZS5pZCAhPT0gcGF5bG9hZC5hY3Rpdml0eUludml0ZUlkKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gZXZlbnQ7XG4gICAgICAgICAgICB9KSBhcyBBcnJheTxFdmVudD5cbiAgICAgICAgICB9IGFzIExpc3RSZXN1bHRJbnRlcmZhY2U8RXZlbnQ+XG4gICAgICAgIH0gYXMgVGVhbUNhbGVuZGFyRXZlbnRSZXN1bHRJbnRlcmZhY2U7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjdXJyZW50U3RhdGU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0YXRlO1xuICB9KSxcblxuICAvLyBUZWFtIEFjdGl2aXRpZXNcbiAgb24obGlzdFRlYW1BY3Rpdml0aWVzQWN0aW9uLCAoc3RhdGUsIHsgcGF5bG9hZCB9KSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIHRlYW1FdmVudHM6IHtcbiAgICAgIHRlYW1JZDogcGF5bG9hZC50ZWFtSWQsXG4gICAgICBzdGFydERhdGU6IHBheWxvYWQuc3RhcnREYXRlLFxuICAgICAgZW5kRGF0ZTogcGF5bG9hZC5lbmREYXRlLFxuICAgICAgdmFsdWU6IGxpc3RTdGFydExvYWRpbmcoc3RhdGUudGVhbUV2ZW50cz8udmFsdWUpXG4gICAgfVxuICB9KSksXG4gIG9uKGxpc3RUZWFtQWN0aXZpdGllc0ZhaWx1cmVBY3Rpb24sIChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgdGVhbUV2ZW50czoge1xuICAgICAgdGVhbUlkOiBwYXlsb2FkLnRlYW1JZCxcbiAgICAgIHN0YXJ0RGF0ZTogcGF5bG9hZC5zdGFydERhdGUsXG4gICAgICBlbmREYXRlOiBwYXlsb2FkLmVuZERhdGUsXG4gICAgICB2YWx1ZTogbGlzdExvYWRGYWlsdXJlPEV2ZW50PihwYXlsb2FkLmVycm9yKVxuICAgIH1cbiAgfSkpLFxuICBvbihsaXN0VGVhbUFjdGl2aXRpZXNTdWNjZXNzQWN0aW9uLCAoc3RhdGUsIHsgcGF5bG9hZCB9KSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIHRlYW1FdmVudHM6IHtcbiAgICAgIHRlYW1JZDogcGF5bG9hZC50ZWFtSWQsXG4gICAgICBzdGFydERhdGU6IHBheWxvYWQuc3RhcnREYXRlLFxuICAgICAgZW5kRGF0ZTogcGF5bG9hZC5lbmREYXRlLFxuICAgICAgdmFsdWU6IGxpc3RMb2FkU3VjY2VzcyhwYXlsb2FkLnJlc3VsdHMpXG4gICAgfVxuICB9KSksXG5cbiAgLy8gVGVhbSBBY3Rpdml0eSBQYXJ0aWNpcGFudHNcbiAgb24obGlzdFRlYW1BY3Rpdml0eVBhcnRpY2lwYW50c1N1Y2Nlc3NBY3Rpb24sIChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+IHtcbiAgICBpZiAoc3RhdGUuY3VycmVudFRlYW1BY3Rpdml0eT8ucmVzdWx0ICYmIHN0YXRlLmN1cnJlbnRUZWFtQWN0aXZpdHkucmVzdWx0LmFjdGl2aXR5LmlkID09PSBwYXlsb2FkLmFjdGl2aXR5SWQpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBjdXJyZW50VGVhbUFjdGl2aXR5OiB7XG4gICAgICAgICAgLi4uc3RhdGUuY3VycmVudFRlYW1BY3Rpdml0eSxcbiAgICAgICAgICByZXN1bHQ6IHtcbiAgICAgICAgICAgIC4uLnN0YXRlLmN1cnJlbnRUZWFtQWN0aXZpdHkucmVzdWx0LFxuICAgICAgICAgICAgcGFydGljaXBhbnRzOiBwYXlsb2FkLnJlc3VsdHNcbiAgICAgICAgICB9LFxuICAgICAgICAgIGxvYWRpbmc6IGZhbHNlXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBzdGF0ZTtcbiAgfSksXG5cbiAgLy8gVGVhbSBMZWFkZXIgRXh0cmEgTWVtYmVyc1xuICBvbihsaXN0VGVhbUxlYWRlckV4dHJhTWVtYmVyc1N1Y2Nlc3NBY3Rpb24sIChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+IHtcbiAgICBpZiAoc3RhdGUuY3VycmVudFRlYW1BY3Rpdml0eT8ucmVzdWx0ICYmIHBheWxvYWQudGVhbUlkID09PSBzdGF0ZS5jdXJyZW50VGVhbUFjdGl2aXR5LnJlc3VsdC50ZWFtLmlkKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgY3VycmVudFRlYW1BY3Rpdml0eToge1xuICAgICAgICAgIC4uLnN0YXRlLmN1cnJlbnRUZWFtQWN0aXZpdHksXG4gICAgICAgICAgcmVzdWx0OiB7XG4gICAgICAgICAgICAuLi5zdGF0ZS5jdXJyZW50VGVhbUFjdGl2aXR5LnJlc3VsdCxcbiAgICAgICAgICAgIGV4dHJhTWVtYmVyczogcGF5bG9hZC5yZXN1bHRzLFxuICAgICAgICAgICAgZXh0cmFNZW1iZXJzTG9hZGVkOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBsb2FkaW5nOiBmYWxzZVxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gc3RhdGU7XG4gIH0pLFxuXG4gIC8vIFRlYW0gYWN0aXZpdHkgcXVlc3Rpb25zXG4gIG9uKGxpc3RUZWFtQWN0aXZpdHlRdWVzdGlvbnNBY3Rpb24sIChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgYWN0aXZpdHlRdWVzdGlvbnM6IHtcbiAgICAgIC4uLnN0YXRlLmFjdGl2aXR5UXVlc3Rpb25zIHx8IHt9LFxuICAgICAgW3BheWxvYWQudGVhbUlkXTogbGlzdFN0YXJ0TG9hZGluZyhzdGF0ZS5hY3Rpdml0eVF1ZXN0aW9ucz8uW3BheWxvYWQudGVhbUlkXSlcbiAgICB9XG4gIH0pKSxcbiAgb24obGlzdFRlYW1BY3Rpdml0eVF1ZXN0aW9uc0ZhaWx1cmVBY3Rpb24sIChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgYWN0aXZpdHlRdWVzdGlvbnM6IHtcbiAgICAgIC4uLnN0YXRlLmFjdGl2aXR5UXVlc3Rpb25zIHx8IHt9LFxuICAgICAgW3BheWxvYWQudGVhbUlkXTogbGlzdExvYWRGYWlsdXJlPEFjdGl2aXR5UXVlc3Rpb24+KHBheWxvYWQuZXJyb3IpXG4gICAgfVxuICB9KSksXG4gIG9uKGxpc3RUZWFtQWN0aXZpdHlRdWVzdGlvbnNTdWNjZXNzQWN0aW9uLCAoc3RhdGUsIHsgcGF5bG9hZCB9KSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIGFjdGl2aXR5UXVlc3Rpb25zOiB7XG4gICAgICAuLi5zdGF0ZS5hY3Rpdml0eVF1ZXN0aW9ucyB8fCB7fSxcbiAgICAgIFtwYXlsb2FkLnRlYW1JZF06IGxpc3RMb2FkU3VjY2VzcyhwYXlsb2FkLnJlc3VsdHMpXG4gICAgfVxuICB9KSksXG5cbiAgLy8gVGVhbSBBY3Rpdml0eSBBY3Rpb25zXG4gIG9uKHJldHJpZXZlVGVhbUFjdGl2aXR5QWN0aW9uLCBzdGF0ZSA9PiAoeyAuLi5zdGF0ZSwgY3VycmVudFRlYW1BY3Rpdml0eTogcmV0cmlldmVTdGFydExvYWRpbmcoc3RhdGUuY3VycmVudFRlYW1BY3Rpdml0eSkgfSkpLFxuICBvbihyZXRyaWV2ZVRlYW1BY3Rpdml0eUZhaWx1cmVBY3Rpb24sIChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+ICh7IC4uLnN0YXRlLCBjdXJyZW50VGVhbUFjdGl2aXR5OiByZXRyaWV2ZUxvYWRGYWlsdXJlPFRlYW1BY3Rpdml0eUludGVyZmFjZT4ocGF5bG9hZCkgfSkpLFxuICBvbihyZXRyaWV2ZVRlYW1BY3Rpdml0eVN1Y2Nlc3NBY3Rpb24sIChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+ICh7IC4uLnN0YXRlLCBjdXJyZW50VGVhbUFjdGl2aXR5OiByZXRyaWV2ZUxvYWRTdWNjZXNzKHBheWxvYWQpIH0pKSxcbiAgb24ocmV0cmlldmVUZWFtQWN0aXZpdHlRUkNvZGVTdWNjZXNzQWN0aW9uLCAoc3RhdGUsIHsgcGF5bG9hZCB9KSA9PiB7XG4gICAgaWYgKHN0YXRlLmN1cnJlbnRUZWFtQWN0aXZpdHk/LnJlc3VsdCAmJiBwYXlsb2FkLmFjdGl2aXR5LmlkID09PSBzdGF0ZS5jdXJyZW50VGVhbUFjdGl2aXR5LnJlc3VsdC5hY3Rpdml0eS5pZCAmJiBwYXlsb2FkLnRlYW1JZCA9PT0gc3RhdGUuY3VycmVudFRlYW1BY3Rpdml0eS5yZXN1bHQudGVhbS5pZCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGN1cnJlbnRUZWFtQWN0aXZpdHk6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5jdXJyZW50VGVhbUFjdGl2aXR5LFxuICAgICAgICAgIHJlc3VsdDoge1xuICAgICAgICAgICAgLi4uc3RhdGUuY3VycmVudFRlYW1BY3Rpdml0eS5yZXN1bHQsXG4gICAgICAgICAgICBhY3Rpdml0eTogcGF5bG9hZC5hY3Rpdml0eVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHN0YXRlO1xuICB9KSxcblxuICAvLyBUZWFtIEFjdGl2aXR5IFNldHRpbmdzXG4gIG9uKHJldHJpZXZlVGVhbUFjdGl2aXR5U2V0dGluZ3NBY3Rpb24sIHN0YXRlID0+ICh7IC4uLnN0YXRlLCBhY3Rpdml0eVNldHRpbmdzOiByZXRyaWV2ZVN0YXJ0TG9hZGluZyhzdGF0ZS5hY3Rpdml0eVNldHRpbmdzKSB9KSksXG4gIG9uKHJldHJpZXZlVGVhbUFjdGl2aXR5U2V0dGluZ3NGYWlsdXJlQWN0aW9uLCAoc3RhdGUsIHsgcGF5bG9hZCB9KSA9PiAoeyAuLi5zdGF0ZSwgYWN0aXZpdHlTZXR0aW5nczogcmV0cmlldmVMb2FkRmFpbHVyZTxBY3Rpdml0eVNldHRpbmdzPihwYXlsb2FkKSB9KSksXG4gIG9uKHJldHJpZXZlVGVhbUFjdGl2aXR5U2V0dGluZ3NTdWNjZXNzQWN0aW9uLCAoc3RhdGUsIHsgcGF5bG9hZCB9KSA9PiAoeyAuLi5zdGF0ZSwgYWN0aXZpdHlTZXR0aW5nczogcmV0cmlldmVMb2FkU3VjY2VzcyhwYXlsb2FkKSB9KSksXG5cbiAgLy8gVGVhbSBBY3Rpdml0eSBRdWVzdGlvblxuICBvbihyZXRyaWV2ZVRlYW1BY3Rpdml0eVF1ZXN0aW9uQWN0aW9uLCBzdGF0ZSA9PiAoeyAuLi5zdGF0ZSwgY3VycmVudFRlYW1BY3Rpdml0eVF1ZXN0aW9uOiByZXRyaWV2ZVN0YXJ0TG9hZGluZyhzdGF0ZS5jdXJyZW50VGVhbUFjdGl2aXR5UXVlc3Rpb24pIH0pKSxcbiAgb24ocmV0cmlldmVUZWFtQWN0aXZpdHlRdWVzdGlvbkZhaWx1cmVBY3Rpb24sIChzdGF0ZSwge3BheWxvYWR9KSA9PiAoey4uLnN0YXRlLCBjdXJyZW50VGVhbUFjdGl2aXR5UXVlc3Rpb246IHJldHJpZXZlTG9hZEZhaWx1cmU8QWN0aXZpdHlRdWVzdGlvbj4ocGF5bG9hZCl9KSksXG4gIG9uKHJldHJpZXZlVGVhbUFjdGl2aXR5UXVlc3Rpb25TdWNjZXNzQWN0aW9uLCAoc3RhdGUsIHtwYXlsb2FkfSkgPT4gKHsuLi5zdGF0ZSwgY3VycmVudFRlYW1BY3Rpdml0eVF1ZXN0aW9uOiByZXRyaWV2ZUxvYWRTdWNjZXNzKHBheWxvYWQpfSkpLFxuXG4gIC8vIFRlYW0gRGVmYXVsdCBBY3Rpdml0eSBTZXR0aW5nc1xuICBvbihyZXRyaWV2ZVRlYW1EZWZhdWx0QWN0aXZpdHlTZXR0aW5nc0FjdGlvbiwgc3RhdGUgPT4gKHsgLi4uc3RhdGUsIG5ld1RlYW1BY3Rpdml0eTogcmV0cmlldmVTdGFydExvYWRpbmcoc3RhdGUubmV3VGVhbUFjdGl2aXR5KSB9KSksXG4gIG9uKHJldHJpZXZlVGVhbURlZmF1bHRBY3Rpdml0eVNldHRpbmdzRmFpbHVyZUFjdGlvbiwgKHN0YXRlLCB7IHBheWxvYWQgfSkgPT4gKHsgLi4uc3RhdGUsIG5ld1RlYW1BY3Rpdml0eTogcmV0cmlldmVMb2FkRmFpbHVyZTxBY3Rpdml0eT4ocGF5bG9hZCkgfSkpLFxuICBvbihyZXRyaWV2ZVRlYW1EZWZhdWx0QWN0aXZpdHlTZXR0aW5nc1N1Y2Nlc3NBY3Rpb24sIChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+ICh7IC4uLnN0YXRlLCBuZXdUZWFtQWN0aXZpdHk6IHJldHJpZXZlTG9hZFN1Y2Nlc3MocGF5bG9hZCkgfSkpLFxuXG4gIC8vIFVwZGF0ZSBNZW1iZXIgQWN0aXZpdHkgSW52aXRlXG4gIG9uKHVwZGF0ZU1lbWJlckFjdGl2aXR5SW52aXRlU3VjY2Vzc0FjdGlvbiwgKHN0YXRlLCB7IHBheWxvYWQgfSkgPT4gdXBkYXRlTWVtYmVyQWN0aXZpdHlJbnZpdGUoc3RhdGUsIHBheWxvYWQpKSxcblxuICAvLyBVcGRhdGUgTWVtYmVyIE9wZW4gQWN0aXZpdHlcbiAgb24odXBkYXRlTWVtYmVyT3BlbkFjdGl2aXR5U3VjY2Vzc0FjdGlvbiwgKHN0YXRlLCB7IHBheWxvYWQgfSkgPT4ge1xuICAgIGxldCBjdXJyZW50U3RhdGUgPSB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIGN1cnJlbnRNZW1iZXJPcGVuQWN0aXZpdHk6IHJldHJpZXZlTG9hZFN1Y2Nlc3MocGF5bG9hZClcbiAgICB9O1xuXG4gICAgaWYgKGN1cnJlbnRTdGF0ZS5tZW1iZXJPcGVuQWN0aXZpdGllcz8udmFsdWU/LnJlc3VsdCkge1xuICAgICAgY29uc3QgZXhpc3RpbmdPcGVuQWN0aXZpdGllcyA9IGN1cnJlbnRTdGF0ZS5tZW1iZXJPcGVuQWN0aXZpdGllcy52YWx1ZS5yZXN1bHQuZ2V0KHBheWxvYWQubWVtYmVyX2lkKTtcblxuICAgICAgaWYgKGV4aXN0aW5nT3BlbkFjdGl2aXRpZXMpIHtcbiAgICAgICAgY3VycmVudFN0YXRlLm1lbWJlck9wZW5BY3Rpdml0aWVzID0ge1xuICAgICAgICAgIC4uLmN1cnJlbnRTdGF0ZS5tZW1iZXJPcGVuQWN0aXZpdGllcyxcbiAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgLi4uY3VycmVudFN0YXRlLm1lbWJlck9wZW5BY3Rpdml0aWVzLnZhbHVlLFxuICAgICAgICAgICAgcmVzdWx0OiBuZXcgTWFwKGN1cnJlbnRTdGF0ZS5tZW1iZXJPcGVuQWN0aXZpdGllcy52YWx1ZS5yZXN1bHQpLnNldChcbiAgICAgICAgICAgICAgcGF5bG9hZC5tZW1iZXJfaWQsXG4gICAgICAgICAgICAgIHVwZGF0ZU9wZW5BY3Rpdml0aWVzKGV4aXN0aW5nT3BlbkFjdGl2aXRpZXMsIHBheWxvYWQpXG4gICAgICAgICAgICApLFxuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY3VycmVudFN0YXRlLmFjdGl2aXR5SW52aXRlcz8ucmVzdWx0cykge1xuICAgICAgY3VycmVudFN0YXRlLmFjdGl2aXR5SW52aXRlcyA9IHtcbiAgICAgICAgLi4uY3VycmVudFN0YXRlLmFjdGl2aXR5SW52aXRlcyxcbiAgICAgICAgcmVzdWx0czogY3VycmVudFN0YXRlLmFjdGl2aXR5SW52aXRlcy5yZXN1bHRzLm1hcCgoaW52aXRlOiBBY3Rpdml0eUludml0ZSkgPT4ge1xuICAgICAgICAgIGlmIChpbnZpdGUuYWN0aXZpdHkuaWQgPT09IHBheWxvYWQuaWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGludml0ZWRNZW1iZXIgPSBwYXlsb2FkLmludml0ZWRfbWVtYmVycy5maW5kKChpbnZpdGVkTWVtYmVyOiBNZW1iZXJBY3Rpdml0eUludml0ZSkgPT4gaW52aXRlZE1lbWJlci5pZCA9PT0gaW52aXRlLmlkKTtcblxuICAgICAgICAgICAgaWYgKGludml0ZWRNZW1iZXIpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG5ldyBBY3Rpdml0eUludml0ZShcbiAgICAgICAgICAgICAgICBpbnZpdGUuaWQsXG4gICAgICAgICAgICAgICAgaW52aXRlLmFjdGl2aXR5LFxuICAgICAgICAgICAgICAgIGludml0ZWRNZW1iZXIuY29tbWVudCxcbiAgICAgICAgICAgICAgICBpbnZpdGUuY3JlYXRlZCxcbiAgICAgICAgICAgICAgICBpbnZpdGUuaGFzX3VucGFpZF9pbnZvaWNlcyxcbiAgICAgICAgICAgICAgICBpbnZpdGVkTWVtYmVyLmxhc3RfaW52aXRlIHx8ICcnIGFzIHN0cmluZyxcbiAgICAgICAgICAgICAgICBpbnZpdGUubGVhZGVyLFxuICAgICAgICAgICAgICAgIGludml0ZS5tZW1iZXIsXG4gICAgICAgICAgICAgICAgaW52aXRlLm1lbWJlcl9pbnZvaWNlX2lkLFxuICAgICAgICAgICAgICAgIGludml0ZWRNZW1iZXIubmV4dF9pbnZpdGUsXG4gICAgICAgICAgICAgICAgW10sXG4gICAgICAgICAgICAgICAgaW52aXRlLnBheW1lbnRfbGluayxcbiAgICAgICAgICAgICAgICBpbnZpdGUucHVibGljX3BheW1lbnRfbGluayxcbiAgICAgICAgICAgICAgICBpbnZpdGUucmVtaW5kZWQsXG4gICAgICAgICAgICAgICAgaW52aXRlZE1lbWJlci5yZXNwb25zZV9kYXRlLFxuICAgICAgICAgICAgICAgIFtdLFxuICAgICAgICAgICAgICAgIGludml0ZWRNZW1iZXIuc3RhdHVzLFxuICAgICAgICAgICAgICAgIGludml0ZS50b2tlbixcbiAgICAgICAgICAgICAgICBpbnZpdGUudW5wYWlkX2ludm9pY2VzLFxuICAgICAgICAgICAgICAgIGludml0ZS51cGRhdGVkXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJldHVybiBpbnZpdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBpbnZpdGU7XG4gICAgICAgIH0pXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiBjdXJyZW50U3RhdGU7XG4gIH0pLFxuXG4gIC8vIFJlbW92ZSBtZW1iZXIgb3BlbiBhY3Rpdml0eVxuICBvbihyZW1vdmVNZW1iZXJPcGVuQWN0aXZpdHlBY3Rpb24sIChzdGF0ZTogQ2FsZW5kYXJTdGF0ZSwgeyBwYXlsb2FkIH06IHtwYXlsb2FkOiB7bWVtYmVySWQ6IHN0cmluZywgYWN0aXZpdHlJZDogc3RyaW5nfX0pID0+IHtcbiAgICBsZXQgY3VycmVudFN0YXRlID0ge1xuICAgICAgLi4uc3RhdGVcbiAgICB9O1xuXG4gICAgaWYgKHN0YXRlLmN1cnJlbnRNZW1iZXJPcGVuQWN0aXZpdHk/LnJlc3VsdD8uaWQgPT09IHBheWxvYWQuYWN0aXZpdHlJZCkge1xuICAgICAgY3VycmVudFN0YXRlLmN1cnJlbnRNZW1iZXJPcGVuQWN0aXZpdHkgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaWYgKGN1cnJlbnRTdGF0ZS5tZW1iZXJPcGVuQWN0aXZpdGllcz8udmFsdWU/LnJlc3VsdCkge1xuICAgICAgY29uc3QgZXhpc3RpbmdPcGVuQWN0aXZpdGllcyA9IGN1cnJlbnRTdGF0ZS5tZW1iZXJPcGVuQWN0aXZpdGllcy52YWx1ZS5yZXN1bHQuZ2V0KHBheWxvYWQubWVtYmVySWQpO1xuXG4gICAgICBpZiAoZXhpc3RpbmdPcGVuQWN0aXZpdGllcykge1xuICAgICAgICBjb25zdCB1cGRhdGVkT3BlbkFjdGl2aXRpZXMgPSBleGlzdGluZ09wZW5BY3Rpdml0aWVzLm1hcChcbiAgICAgICAgICAob3BlbkFjdGl2aXR5OiBPcGVuQWN0aXZpdHkpID0+IHtcbiAgICAgICAgICAgIGlmIChvcGVuQWN0aXZpdHkuaWQgPT09IHBheWxvYWQuYWN0aXZpdHlJZCAmJiBvcGVuQWN0aXZpdHkubWVtYmVyX2lkID09PSBwYXlsb2FkLm1lbWJlcklkKSB7XG4gICAgICAgICAgICAgIHJldHVybiBuZXcgT3BlbkFjdGl2aXR5KFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5pZCxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkuYWN0aXZpdHlfZ3JvdXBfaWQsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LmFjdGl2aXR5X3R5cGVfaWQsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LmNsdWJfaWQsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LmxvY2F0aW9uX2lkLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5tZW1iZXJfaWQsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LnRlYW1faWQsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LmFjdGl2aXR5X2xvY2F0aW9uLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5hY3Rpdml0eV90eXBlX25hbWUsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LmFsbG93X21heWJlLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5jYWxlbmRhcl9uYW1lLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5jb21tZW50X3JlcXVpcmVkLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5jcmVhdGVkLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5jdXJyZW50X251bV9hdHRlbmRhbnRzLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5kYXksXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LmRlZmF1bHRfZmVlLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5kZWZhdWx0X2ZlZV9pZCxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkuZGVzY3JpcHRpb24sXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LmVuZCxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkuZW5kX3RpbWUsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LmZpbGUsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lmhhc191bnBhaWRfaW52b2ljZXMsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lmludml0YXRpb25fdGV4dCxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkuaW52aXRlX2ZpcnN0X2RheXMsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lmludml0ZV9ncm91cHMsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lmludml0ZV9oaWRlX2JlZm9yZV9zZW50LFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5pbnZpdGVfbGFzdF9yZXNwb25zZV9kYXRlLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5pbnZpdGVfcmVtaW5kLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5pbnZpdGVfcmVtaW5kX3JlY2VpdmVycyxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkuaW52aXRlX3NlY29uZF9kYXlzLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5pbnZpdGVfc2V0dGluZ3MsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lmludml0ZWRfbWVtYmVycy5maWx0ZXIoKGludml0ZTogTWVtYmVyQWN0aXZpdHlJbnZpdGUpID0+IGludml0ZS5tZW1iZXJfaWQgIT09IHBheWxvYWQubWVtYmVySWQpLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5sYXN0X3Jlc3BvbnNlX2RhdGUsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LmxvY2F0aW9uX25hbWUsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lm1heF9udW1fYXR0ZW5kYW50cyxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkubWF4X251bV9hdHRlbmRhbnRzX3R5cGUsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lm1lZXRfdXBfcGxhY2UsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lm1lZXRfdXBfdGltZSxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkubWVldF91cF90aW1lX2Rpc3BsYXksXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lm1lZXRfdXBfdGltZV9zaG93LFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5tZW1iZXJfaWRzLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5tZW1iZXJfaW52b2ljZSxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkubWVtYmVyX25hbWUsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lm9wZW5fYWN0aXZpdHksXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lm9wdGlvbmFsX2ZlZXMsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lm9wdGlvbmFsX2ZlZV9yZXF1aXJlZCxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkub3B0aW9uYWxfZmVlX3R5cGUsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LnBheW1lbnRfbGluayxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkucHVibGljX3BheW1lbnRfbGluayxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkucXVlc3Rpb25zLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5yZXBlYXQsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LnJlcGVhdF9udW0sXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LnJlcGVhdF90b19kYXksXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LnJlcGVhdF90eXBlLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5zaG93X290aGVyX2ludml0ZWQsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LnN0YXJ0LFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5zdGFydF90aW1lLFxuICAgICAgICAgICAgICAgICd3YWl0aW5nJyxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkudGl0bGUsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LnVucGFpZF9pbnZvaWNlcyxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkudXBkYXRlZCxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkudXNlX2ludml0ZSxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkudXBkYXRlX3JlcGVhdGluZ1xuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gb3BlbkFjdGl2aXR5O1xuICAgICAgICAgIH1cbiAgICAgICAgKTtcblxuICAgICAgICBjdXJyZW50U3RhdGUubWVtYmVyT3BlbkFjdGl2aXRpZXMgPSB7XG4gICAgICAgICAgLi4uY3VycmVudFN0YXRlLm1lbWJlck9wZW5BY3Rpdml0aWVzLFxuICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAuLi5jdXJyZW50U3RhdGUubWVtYmVyT3BlbkFjdGl2aXRpZXMudmFsdWUsXG4gICAgICAgICAgICByZXN1bHQ6IG5ldyBNYXA8c3RyaW5nLCBBcnJheTxPcGVuQWN0aXZpdHk+PihjdXJyZW50U3RhdGUubWVtYmVyT3BlbkFjdGl2aXRpZXMudmFsdWUucmVzdWx0KS5zZXQocGF5bG9hZC5tZW1iZXJJZCwgdXBkYXRlZE9wZW5BY3Rpdml0aWVzKVxuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gY3VycmVudFN0YXRlXG4gIH0pLFxuXG4gIC8vIFVwZGF0ZSBUZWFtIEFjdGl2aXR5XG4gIG9uKHVwZGF0ZVRlYW1BY3Rpdml0eUFjdGlvbiwgc3RhdGUgPT4gKHsgLi4uc3RhdGUsIGN1cnJlbnRUZWFtQWN0aXZpdHk6IHJldHJpZXZlU3RhcnRMb2FkaW5nKHN0YXRlLmN1cnJlbnRUZWFtQWN0aXZpdHkpIH0pKSxcbiAgb24odXBkYXRlVGVhbUFjdGl2aXR5RmFpbHVyZUFjdGlvbiwgKHN0YXRlLCB7IHBheWxvYWQgfSkgPT4gKHsgLi4uc3RhdGUsIGN1cnJlbnRUZWFtQWN0aXZpdHk6IHJldHJpZXZlTG9hZEZhaWx1cmU8VGVhbUFjdGl2aXR5SW50ZXJmYWNlPihwYXlsb2FkKSB9KSksXG4gIG9uKHVwZGF0ZVRlYW1BY3Rpdml0eVN1Y2Nlc3NBY3Rpb24sIChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+IHtcbiAgICBpZiAoc3RhdGUuY3VycmVudFRlYW1BY3Rpdml0eT8ucmVzdWx0ICYmIHBheWxvYWQuaWQgPT09IHN0YXRlLmN1cnJlbnRUZWFtQWN0aXZpdHkucmVzdWx0LmFjdGl2aXR5LmlkKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgY3VycmVudFRlYW1BY3Rpdml0eToge1xuICAgICAgICAgIC4uLnN0YXRlLmN1cnJlbnRUZWFtQWN0aXZpdHksXG4gICAgICAgICAgcmVzdWx0OiB7XG4gICAgICAgICAgICAuLi5zdGF0ZS5jdXJyZW50VGVhbUFjdGl2aXR5LnJlc3VsdCxcbiAgICAgICAgICAgIGFjdGl2aXR5OiBwYXlsb2FkXG4gICAgICAgICAgfSxcbiAgICAgICAgICBsb2FkaW5nOiBmYWxzZVxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gc3RhdGU7XG4gIH0pLFxuXG4gIC8vIFRlYW0gQWN0aXZpdHkgUXVlc3Rpb25cbiAgb24odXBkYXRlVGVhbUFjdGl2aXR5UXVlc3Rpb25BY3Rpb24sIHN0YXRlID0+ICh7IC4uLnN0YXRlLCBjdXJyZW50VGVhbUFjdGl2aXR5UXVlc3Rpb246IHJldHJpZXZlU3RhcnRMb2FkaW5nKHN0YXRlLmN1cnJlbnRUZWFtQWN0aXZpdHlRdWVzdGlvbikgfSkpLFxuICBvbih1cGRhdGVUZWFtQWN0aXZpdHlRdWVzdGlvbkZhaWx1cmVBY3Rpb24sIChzdGF0ZSwge3BheWxvYWR9KSA9PiAoey4uLnN0YXRlLCBjdXJyZW50VGVhbUFjdGl2aXR5UXVlc3Rpb246IHJldHJpZXZlTG9hZEZhaWx1cmU8QWN0aXZpdHlRdWVzdGlvbj4ocGF5bG9hZCl9KSksXG4gIG9uKHVwZGF0ZVRlYW1BY3Rpdml0eVF1ZXN0aW9uU3VjY2Vzc0FjdGlvbiwgKHN0YXRlLCB7cGF5bG9hZH0pID0+ICh7Li4uc3RhdGUsIGN1cnJlbnRUZWFtQWN0aXZpdHlRdWVzdGlvbjogcmV0cmlldmVMb2FkU3VjY2VzcyhwYXlsb2FkKX0pKSxcblxuICAvLyBSZXNlbmQgdGVhbSBhY3Rpdml0eSBpbnZpdGVcbiAgb24ocmVzZW5kVGVhbUFjdGl2aXR5TWVtYmVySW52aXRlU3VjY2Vzc0FjdGlvbiwgKHN0YXRlOiBDYWxlbmRhclN0YXRlLCB7cGF5bG9hZH06IHtwYXlsb2FkOiBBY3Rpdml0eUludml0ZX0pID0+IHVwZGF0ZVRlYW1BY3Rpdml0eUludml0ZShzdGF0ZSwgcGF5bG9hZCkpLFxuXG4gIC8vIFVwZGF0ZSBUZWFtIGFjdGl2aXR5IGludml0ZVxuICBvbih1cGRhdGVUZWFtTWVtYmVyQWN0aXZpdHlJbnZpdGVTdWNjZXNzQWN0aW9uLCAoc3RhdGU6IENhbGVuZGFyU3RhdGUsIHtwYXlsb2FkfToge3BheWxvYWQ6IE1lbWJlckFjdGl2aXR5SW52aXRlfSkgPT4gdXBkYXRlVGVhbUFjdGl2aXR5SW52aXRlKHN0YXRlLCBwYXlsb2FkKSksXG5cbiAgLy8gRGVsZXRlIFRlYW0gQWN0aXZpdHlcbiAgb24oZGVsZXRlVGVhbUFjdGl2aXR5U3VjY2Vzc0FjdGlvbiwgKHN0YXRlOiBDYWxlbmRhclN0YXRlLCB7cGF5bG9hZH06IHtwYXlsb2FkOiBzdHJpbmd9KSA9PiB7XG4gICAgbGV0IGN1cnJlbnRTdGF0ZSA9IHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgY3VycmVudFRlYW1BY3Rpdml0eTogdW5kZWZpbmVkXG4gICAgfTtcblxuICAgIGlmIChjdXJyZW50U3RhdGUudGVhbUV2ZW50cz8udmFsdWU/LnJlc3VsdHMpIHtcbiAgICAgIGN1cnJlbnRTdGF0ZS50ZWFtRXZlbnRzID0ge1xuICAgICAgICAuLi5jdXJyZW50U3RhdGUudGVhbUV2ZW50cyxcbiAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAuLi5jdXJyZW50U3RhdGUudGVhbUV2ZW50cy52YWx1ZSxcbiAgICAgICAgICByZXN1bHRzOiBjdXJyZW50U3RhdGUudGVhbUV2ZW50cy52YWx1ZS5yZXN1bHRzLmZpbHRlcigoZXZlbnQ6IEV2ZW50KSA9PiBldmVudC5pZCAhPT0gcGF5bG9hZClcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBjdXJyZW50U3RhdGU7XG4gIH0pLFxuXG4gIG9uKGRlbGV0ZVRlYW1BY3Rpdml0eVF1ZXN0aW9uU3VjY2Vzc0FjdGlvbiwgKHN0YXRlOiBDYWxlbmRhclN0YXRlLCB7cGF5bG9hZH06IHtwYXlsb2FkOiB7dGVhbUlkOiBzdHJpbmcsIHF1ZXN0aW9uSWQ6IHN0cmluZ319KSA9PiB7XG4gICAgbGV0IGN1cnJlbnRTdGF0ZSA9IHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgY3VycmVudFRlYW1BY3Rpdml0eVF1ZXN0aW9uOiB1bmRlZmluZWRcbiAgICB9O1xuXG4gICAgaWYgKGN1cnJlbnRTdGF0ZS5hY3Rpdml0eVF1ZXN0aW9ucyAmJiBzdGF0ZS5hY3Rpdml0eVF1ZXN0aW9ucz8uW3BheWxvYWQudGVhbUlkXSkge1xuICAgICAgY3VycmVudFN0YXRlLmFjdGl2aXR5UXVlc3Rpb25zW3BheWxvYWQudGVhbUlkXSA9IHtcbiAgICAgICAgLi4uc3RhdGUuYWN0aXZpdHlRdWVzdGlvbnNbcGF5bG9hZC50ZWFtSWRdLFxuICAgICAgICByZXN1bHRzOiBzdGF0ZS5hY3Rpdml0eVF1ZXN0aW9uc1twYXlsb2FkLnRlYW1JZF0ucmVzdWx0cy5maWx0ZXIoKGFjdGl2aXR5UXVlc3Rpb246IEFjdGl2aXR5UXVlc3Rpb24pID0+IGFjdGl2aXR5UXVlc3Rpb24uaWQgIT09IHBheWxvYWQucXVlc3Rpb25JZClcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gY3VycmVudFN0YXRlO1xuICB9KSxcblxuICAvLyBDcmVhdGUgVGVhbSBBY3Rpdml0eVxuICBvbihjcmVhdGVUZWFtQWN0aXZpdHlBY3Rpb24sIHN0YXRlID0+ICh7IC4uLnN0YXRlLCBjdXJyZW50VGVhbUFjdGl2aXR5OiByZXRyaWV2ZVN0YXJ0TG9hZGluZyhzdGF0ZS5jdXJyZW50VGVhbUFjdGl2aXR5KSB9KSksXG5cbiAgLy8gRmFpbHVyZSBIYW5kbGVyc1xuICBvbihjcmVhdGVUZWFtQWN0aXZpdHlGYWlsdXJlQWN0aW9uLCAoc3RhdGUsIHsgcGF5bG9hZCB9KSA9PiAoeyAuLi5zdGF0ZSwgY3VycmVudFRlYW1BY3Rpdml0eTogcmV0cmlldmVMb2FkRmFpbHVyZTxUZWFtQWN0aXZpdHlJbnRlcmZhY2U+KHBheWxvYWQpIH0pKSxcbik7XG4iXX0=
|
|
510
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIucmVkdWNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEtYWNjZXNzL3NyYy9saWIvc3RvcmUvcmVkdWNlcnMvY2FsZW5kYXIucmVkdWNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNoRCxPQUFPLEVBQWlCLG9CQUFvQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQy9ELE9BQU8sRUFDTCx5QkFBeUIsRUFDekIsK0JBQStCLEVBQy9CLDZCQUE2QixFQUM3QixnQkFBZ0IsRUFDaEIseUJBQXlCLEVBQ3pCLHVCQUF1QixFQUN2Qix3QkFBd0IsRUFDeEIsK0JBQStCLEVBQy9CLDhCQUE4QixFQUM5Qix1Q0FBdUMsRUFDdkMsK0JBQStCLEVBQy9CLHdDQUF3QyxFQUN4QywrQ0FBK0MsRUFDL0MsK0NBQStDLEVBQy9DLG9DQUFvQyxFQUNwQywyQ0FBMkMsRUFDM0MsMkNBQTJDLEVBQzNDLDBCQUEwQixFQUMxQixpQ0FBaUMsRUFDakMsaUNBQWlDLEVBQ2pDLCtCQUErQixFQUMvQixzQ0FBc0MsRUFDdEMsc0NBQXNDLEVBQ3RDLDhCQUE4QixFQUM5QixxQ0FBcUMsRUFDckMscUNBQXFDLEVBQ3JDLHFDQUFxQyxFQUNyQyw0Q0FBNEMsRUFDNUMsNENBQTRDLEVBQzVDLGlDQUFpQyxFQUNqQyx3Q0FBd0MsRUFDeEMsd0NBQXdDLEVBQ3hDLHdCQUF3QixFQUN4QiwrQkFBK0IsRUFDL0IsK0JBQStCLEVBQy9CLHlDQUF5QyxFQUN6QywrQkFBK0IsRUFDL0Isc0NBQXNDLEVBQ3RDLHNDQUFzQyxFQUN0Qyx1Q0FBdUMsRUFDdkMsOEJBQThCLEVBQzlCLDJDQUEyQyxFQUMzQyw0QkFBNEIsRUFDNUIsbUNBQW1DLEVBQ25DLGtDQUFrQyxFQUNsQyx5Q0FBeUMsRUFDekMseUNBQXlDLEVBQ3pDLG1D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QixFQUFFLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUUzSCxtQkFBbUI7QUFDbkIsRUFBRSxDQUFDLCtCQUErQixFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsQ0FBd0IsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQ3RKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVSZWR1Y2VyLCBvbiB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IENhbGVuZGFyU3RhdGUsIGluaXRpYWxDYWxlbmRhclN0YXRlIH0gZnJvbSAnLi4vc3RhdGUnO1xuaW1wb3J0IHtcbiAgY2xlYXJNZW1iZXJBY3Rpdml0eUFjdGlvbixcbiAgY2xlYXJNZW1iZXJBY3Rpdml0eUludml0ZUFjdGlvbixcbiAgY2xlYXJNZW1iZXJPcGVuQWN0aXZpdHlBY3Rpb24sXG4gIGNsZWFyU3RvcmVBY3Rpb24sXG4gIGNsZWFyVGVhbUFjdGl2aXRpZXNBY3Rpb24sXG4gIGNsZWFyVGVhbUFjdGl2aXR5QWN0aW9uLFxuICBjcmVhdGVUZWFtQWN0aXZpdHlBY3Rpb24sXG4gIGNyZWF0ZVRlYW1BY3Rpdml0eUZhaWx1cmVBY3Rpb24sXG4gIGRlbGV0ZVRlYW1BY3Rpdml0eUludml0ZUFjdGlvbixcbiAgZGVsZXRlVGVhbUFjdGl2aXR5UXVlc3Rpb25TdWNjZXNzQWN0aW9uLFxuICBkZWxldGVUZWFtQWN0aXZpdHlTdWNjZXNzQWN0aW9uLFxuICBsaXN0QWxsTWVtYmVyT3BlbkFjdGl2aXR5TG9jYXRpb25zQWN0aW9uLFxuICBsaXN0QWxsTWVtYmVyT3BlbkFjdGl2aXR5TG9jYXRpb25zRmFpbHVyZUFjdGlvbixcbiAgbGlzdEFsbE1lbWJlck9wZW5BY3Rpdml0eUxvY2F0aW9uc1N1Y2Nlc3NBY3Rpb24sXG4gIGxpc3RBbGxNZW1iZXJPcGVuQWN0aXZpdHlUeXBlc0FjdGlvbixcbiAgbGlzdEFsbE1lbWJlck9wZW5BY3Rpdml0eVR5cGVzRmFpbHVyZUFjdGlvbixcbiAgbGlzdEFsbE1lbWJlck9wZW5BY3Rpdml0eVR5cGVzU3VjY2Vzc0FjdGlvbixcbiAgbGlzdE1lbWJlckFjdGl2aXRpZXNBY3Rpb24sXG4gIGxpc3RNZW1iZXJBY3Rpdml0aWVzRmFpbHVyZUFjdGlvbixcbiAgbGlzdE1lbWJlckFjdGl2aXRpZXNTdWNjZXNzQWN0aW9uLFxuICBsaXN0TWVtYmVyQWN0aXZpdHlJbnZpdGVzQWN0aW9uLFxuICBsaXN0TWVtYmVyQWN0aXZpdHlJbnZpdGVzRmFpbHVyZUFjdGlvbixcbiAgbGlzdE1lbWJlckFjdGl2aXR5SW52aXRlc1N1Y2Nlc3NBY3Rpb24sXG4gIGxpc3RNZW1iZXJPcGVuQWN0aXZpdGllc0FjdGlvbixcbiAgbGlzdE1lbWJlck9wZW5BY3Rpdml0aWVzRmFpbHVyZUFjdGlvbixcbiAgbGlzdE1lbWJlck9wZW5BY3Rpdml0aWVzU3VjY2Vzc0FjdGlvbixcbiAgbGlzdE1lbWJlck9wZW5BY3Rpdml0eUxvY2F0aW9uc0FjdGlvbixcbiAgbGlzdE1lbWJlck9wZW5BY3Rpdml0eUxvY2F0aW9uc0ZhaWx1cmVBY3Rpb24sXG4gIGxpc3RNZW1iZXJPcGVuQWN0aXZpdHlMb2NhdGlvbnNTdWNjZXNzQWN0aW9uLFxuICBsaXN0TWVtYmVyT3BlbkFjdGl2aXR5VHlwZXNBY3Rpb24sXG4gIGxpc3RNZW1iZXJPcGVuQWN0aXZpdHlUeXBlc0ZhaWx1cmVBY3Rpb24sXG4gIGxpc3RNZW1iZXJPcGVuQWN0aXZpdHlUeXBlc1N1Y2Nlc3NBY3Rpb24sXG4gIGxpc3RUZWFtQWN0aXZpdGllc0FjdGlvbixcbiAgbGlzdFRlYW1BY3Rpdml0aWVzRmFpbHVyZUFjdGlvbixcbiAgbGlzdFRlYW1BY3Rpdml0aWVzU3VjY2Vzc0FjdGlvbixcbiAgbGlzdFRlYW1BY3Rpdml0eVBhcnRpY2lwYW50c1N1Y2Nlc3NBY3Rpb24sXG4gIGxpc3RUZWFtQWN0aXZpdHlRdWVzdGlvbnNBY3Rpb24sXG4gIGxpc3RUZWFtQWN0aXZpdHlRdWVzdGlvbnNGYWlsdXJlQWN0aW9uLFxuICBsaXN0VGVhbUFjdGl2aXR5UXVlc3Rpb25zU3VjY2Vzc0FjdGlvbixcbiAgbGlzdFRlYW1MZWFkZXJFeHRyYU1lbWJlcnNTdWNjZXNzQWN0aW9uLFxuICByZW1vdmVNZW1iZXJPcGVuQWN0aXZpdHlBY3Rpb24sXG4gIHJlc2VuZFRlYW1BY3Rpdml0eU1lbWJlckludml0ZVN1Y2Nlc3NBY3Rpb24sXG4gIHJldHJpZXZlTWVtYmVyQWN0aXZpdHlBY3Rpb24sXG4gIHJldHJpZXZlTWVtYmVyQWN0aXZpdHlGYWlsdXJlQWN0aW9uLFxuICByZXRyaWV2ZU1lbWJlckFjdGl2aXR5SW52aXRlQWN0aW9uLFxuICByZXRyaWV2ZU1lbWJlckFjdGl2aXR5SW52aXRlRmFpbHVyZUFjdGlvbixcbiAgcmV0cmlldmVNZW1iZXJBY3Rpdml0eUludml0ZVN1Y2Nlc3NBY3Rpb24sXG4gIHJldHJpZXZlTWVtYmVyQWN0aXZpdHlTdWNjZXNzQWN0aW9uLFxuICByZXRyaWV2ZU1lbWJlck9wZW5BY3Rpdml0eUFjdGlvbixcbiAgcmV0cmlldmVNZW1iZXJPcGVuQWN0aXZpdHlGYWlsdXJlQWN0aW9uLFxuICByZXRyaWV2ZU1lbWJlck9wZW5BY3Rpdml0eVN1Y2Nlc3NBY3Rpb24sXG4gIHJldHJpZXZlVGVhbUFjdGl2aXR5QWN0aW9uLFxuICByZXRyaWV2ZVRlYW1BY3Rpdml0eUZhaWx1cmVBY3Rpb24sXG4gIHJldHJpZXZlVGVhbUFjdGl2aXR5UVJDb2RlU3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVUZWFtQWN0aXZpdHlRdWVzdGlvbkFjdGlvbixcbiAgcmV0cmlldmVUZWFtQWN0aXZpdHlRdWVzdGlvbkZhaWx1cmVBY3Rpb24sXG4gIHJldHJpZXZlVGVhbUFjdGl2aXR5UXVlc3Rpb25TdWNjZXNzQWN0aW9uLFxuICByZXRyaWV2ZVRlYW1BY3Rpdml0eVNldHRpbmdzQWN0aW9uLFxuICByZXRyaWV2ZVRlYW1BY3Rpdml0eVNldHRpbmdzRmFpbHVyZUFjdGlvbixcbiAgcmV0cmlldmVUZWFtQWN0aXZpdHlTZXR0aW5nc1N1Y2Nlc3NBY3Rpb24sXG4gIHJldHJpZXZlVGVhbUFjdGl2aXR5U3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVUZWFtRGVmYXVsdEFjdGl2aXR5U2V0dGluZ3NBY3Rpb24sXG4gIHJldHJpZXZlVGVhbURlZmF1bHRBY3Rpdml0eVNldHRpbmdzRmFpbHVyZUFjdGlvbixcbiAgcmV0cmlldmVUZWFtRGVmYXVsdEFjdGl2aXR5U2V0dGluZ3NTdWNjZXNzQWN0aW9uLFxuICB1cGRhdGVNZW1iZXJBY3Rpdml0eUludml0ZVN1Y2Nlc3NBY3Rpb24sXG4gIHVwZGF0ZU1lbWJlck9wZW5BY3Rpdml0eVN1Y2Nlc3NBY3Rpb24sXG4gIHVwZGF0ZVRlYW1BY3Rpdml0eUFjdGlvbixcbiAgdXBkYXRlVGVhbUFjdGl2aXR5RmFpbHVyZUFjdGlvbixcbiAgdXBkYXRlVGVhbUFjdGl2aXR5UXVlc3Rpb25BY3Rpb24sXG4gIHVwZGF0ZVRlYW1BY3Rpdml0eVF1ZXN0aW9uRmFpbHVyZUFjdGlvbixcbiAgdXBkYXRlVGVhbUFjdGl2aXR5UXVlc3Rpb25TdWNjZXNzQWN0aW9uLFxuICB1cGRhdGVUZWFtQWN0aXZpdHlTdWNjZXNzQWN0aW9uLFxuICB1cGRhdGVUZWFtTWVtYmVyQWN0aXZpdHlJbnZpdGVTdWNjZXNzQWN0aW9uLFxufSBmcm9tICcuLi9hY3Rpb25zJztcbmltcG9ydCB7XG4gIEFjdGl2aXR5LFxuICBBY3Rpdml0eUludml0ZSxcbiAgQWN0aXZpdHlMb2NhdGlvbixcbiAgQWN0aXZpdHlRdWVzdGlvbixcbiAgQWN0aXZpdHlTZXR0aW5ncyxcbiAgQWN0aXZpdHlUeXBlLFxuICBFdmVudCxcbiAgTWVtYmVyQWN0aXZpdHlJbnZpdGUsXG4gIE9wZW5BY3Rpdml0eVxufSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgT3BlbkFjdGl2aXR5U2VhcmNoUGFyYW1zSW50ZXJmYWNlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQge1xuICBMaXN0UmVzdWx0SW50ZXJmYWNlLFxuICBSZXRyaWV2ZVJlc3VsdEludGVyZmFjZSxcbiAgVGVhbUFjdGl2aXR5SW50ZXJmYWNlLFxuICBUZWFtQ2FsZW5kYXJFdmVudFJlc3VsdEludGVyZmFjZVxufSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7XG4gIGxpc3RMb2FkRmFpbHVyZSxcbiAgbGlzdExvYWRTdWNjZXNzLFxuICBsaXN0U3RhcnRMb2FkaW5nLFxuICByZXRyaWV2ZUxvYWRGYWlsdXJlLFxuICByZXRyaWV2ZUxvYWRTdWNjZXNzLFxuICByZXRyaWV2ZVN0YXJ0TG9hZGluZ1xufSBmcm9tICcuL3JlZHVjZXItaGVscGVycyc7XG5cbi8vIC0tLSBIZWxwZXIgRnVuY3Rpb25zIC0tLVxuXG5jb25zdCB1cGRhdGVNZW1iZXJBY3Rpdml0eUludml0ZXMgPSAoaW52aXRlczogQXJyYXk8TWVtYmVyQWN0aXZpdHlJbnZpdGU+IHwgdW5kZWZpbmVkIHwgbnVsbCwgcGF5bG9hZDogQWN0aXZpdHlJbnZpdGUpID0+IHtcbiAgaWYgKCFpbnZpdGVzKSByZXR1cm4gW107XG4gIHJldHVybiBpbnZpdGVzLm1hcCgoaW52aXRlOiBNZW1iZXJBY3Rpdml0eUludml0ZSkgPT4ge1xuICAgIGlmIChpbnZpdGUubWVtYmVyX2lkID09PSBwYXlsb2FkLm1lbWJlci5pZCkge1xuICAgICAgcmV0dXJuIG5ldyBNZW1iZXJBY3Rpdml0eUludml0ZShcbiAgICAgICAgaW52aXRlLmlkLFxuICAgICAgICBwYXlsb2FkLmNvbW1lbnQsXG4gICAgICAgIGludml0ZS5jdXJyZW50X251bV9hdHRlbmRhbnRzLFxuICAgICAgICBwYXlsb2FkLmxhc3RfaW52aXRlLFxuICAgICAgICBwYXlsb2FkLmxlYWRlcixcbiAgICAgICAgcGF5bG9hZC5tZW1iZXIuZW1haWwsXG4gICAgICAgIHBheWxvYWQubWVtYmVyLmlkLFxuICAgICAgICBwYXlsb2FkLm1lbWJlci5uYW1lLFxuICAgICAgICBwYXlsb2FkLm5leHRfaW52aXRlLFxuICAgICAgICBwYXlsb2FkLnJlc3BvbnNlX2RhdGUsXG4gICAgICAgIHBheWxvYWQuc3RhdHVzXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gaW52aXRlO1xuICB9KTtcbn07XG5cbmNvbnN0IHVwZGF0ZUV2ZW50SW52aXRlcyA9IChldmVudHM6IEFycmF5PEV2ZW50PiwgcGF5bG9hZDogQWN0aXZpdHlJbnZpdGUpID0+IHtcbiAgcmV0dXJuIGV2ZW50cy5tYXAoKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgIGlmIChldmVudC5pbnZpdGF0aW9uX2lkID09PSBwYXlsb2FkLmlkKSB7XG4gICAgICByZXR1cm4gbmV3IEV2ZW50KFxuICAgICAgICBldmVudC5pZCxcbiAgICAgICAgZXZlbnQuYWN0aXZpdHlfaWQsXG4gICAgICAgIGV2ZW50LmFjdGl2aXR5X3R5cGUsXG4gICAgICAgIGV2ZW50LmJhc2VfYmFja2dyb3VuZF9jb2xvcixcbiAgICAgICAgZXZlbnQuYmFzZV9jb2xvcixcbiAgICAgICAgZXZlbnQuYmFzZV9uYW1lLFxuICAgICAgICBldmVudC5jYWxlbmRhcl9uYW1lLFxuICAgICAgICBldmVudC5kZXNjcmlwdGlvbixcbiAgICAgICAgZXZlbnQuZW5kLFxuICAgICAgICBldmVudC5pbnZpdGF0aW9uX2lkLFxuICAgICAgICBwYXlsb2FkLnN0YXR1cyxcbiAgICAgICAgZXZlbnQuaW52aXRlZF9tZW1iZXJzID8gWy4uLmV2ZW50Lmludml0ZWRfbWVtYmVyc10gOiBldmVudC5pbnZpdGVkX21lbWJlcnMsXG4gICAgICAgIGV2ZW50LmxvY2F0aW9uLFxuICAgICAgICBldmVudC5tZWV0X3VwX3BsYWNlLFxuICAgICAgICBldmVudC5tZWV0X3VwX3RpbWUsXG4gICAgICAgIGV2ZW50Lm1lbWJlcl9pZCxcbiAgICAgICAgZXZlbnQub3Blbl9hY3Rpdml0eSxcbiAgICAgICAgWy4uLmV2ZW50LnBhcnRpY2lwYW50c10sXG4gICAgICAgIGV2ZW50LnN0YXJ0LFxuICAgICAgICBldmVudC50aXRsZSxcbiAgICAgICAgZXZlbnQudHlwZVxuICAgICAgKVxuICAgIH1cbiAgICByZXR1cm4gZXZlbnQ7XG4gIH0pO1xufTtcblxuY29uc3QgdXBkYXRlSW52aXRlZE1lbWJlcnMgPSAoaW52aXRlZE1lbWJlcnM6IEFycmF5PE1lbWJlckFjdGl2aXR5SW52aXRlPiwgcGF5bG9hZDogQWN0aXZpdHlJbnZpdGUgfCBNZW1iZXJBY3Rpdml0eUludml0ZSkgPT4ge1xuICByZXR1cm4gaW52aXRlZE1lbWJlcnMubWFwKCh2YWx1ZTogTWVtYmVyQWN0aXZpdHlJbnZpdGUpID0+IHtcbiAgICBpZiAodmFsdWUuaWQgPT09IHBheWxvYWQuaWQpIHtcbiAgICAgIHJldHVybiBuZXcgTWVtYmVyQWN0aXZpdHlJbnZpdGUoXG4gICAgICAgIHZhbHVlLmlkLFxuICAgICAgICBwYXlsb2FkLmNvbW1lbnQsXG4gICAgICAgIHZhbHVlLmN1cnJlbnRfbnVtX2F0dGVuZGFudHMsXG4gICAgICAgIHBheWxvYWQubGFzdF9pbnZpdGUsXG4gICAgICAgIHZhbHVlLmxlYWRlcixcbiAgICAgICAgdmFsdWUubWVtYmVyX2VtYWlsLFxuICAgICAgICB2YWx1ZS5tZW1iZXJfaWQsXG4gICAgICAgIHZhbHVlLm1lbWJlcl9uYW1lLFxuICAgICAgICBwYXlsb2FkLm5leHRfaW52aXRlLFxuICAgICAgICBwYXlsb2FkLnJlc3BvbnNlX2RhdGUsXG4gICAgICAgIHBheWxvYWQuc3RhdHVzXG4gICAgICApXG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbiAgfSk7XG59O1xuXG5jb25zdCB1cGRhdGVPcGVuQWN0aXZpdGllcyA9IChvcGVuQWN0aXZpdGllczogQXJyYXk8T3BlbkFjdGl2aXR5PiwgcGF5bG9hZDogT3BlbkFjdGl2aXR5KSA9PiB7XG4gIHJldHVybiBvcGVuQWN0aXZpdGllcy5tYXAoKG9wZW5BY3Rpdml0eTogT3BlbkFjdGl2aXR5KSA9PiB7XG4gICAgaWYgKG9wZW5BY3Rpdml0eS5pZCA9PT0gcGF5bG9hZC5pZCkge1xuICAgICAgcmV0dXJuIHBheWxvYWQ7XG4gICAgfVxuICAgIHJldHVybiBvcGVuQWN0aXZpdHk7XG4gIH0pO1xufTtcblxuY29uc3QgdXBkYXRlVGVhbUFjdGl2aXR5SW52aXRlID0gKHN0YXRlOiBDYWxlbmRhclN0YXRlLCBwYXlsb2FkOiBBY3Rpdml0eUludml0ZSB8IE1lbWJlckFjdGl2aXR5SW52aXRlKSA9PiB7XG4gIGlmIChzdGF0ZS5jdXJyZW50VGVhbUFjdGl2aXR5Py5yZXN1bHQpIHtcbiAgICBpZiAoc3RhdGUuY3VycmVudFRlYW1BY3Rpdml0eS5yZXN1bHQuYWN0aXZpdHkuaW52aXRlZF9tZW1iZXJzLmZpbmRJbmRleCgodmFsdWU6IE1lbWJlckFjdGl2aXR5SW52aXRlKSA9PiB2YWx1ZS5pZCA9PT0gcGF5bG9hZC5pZCkgIT09IC0xKSB7XG4gICAgICBsZXQgY3VycmVudFN0YXRlID0ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgY3VycmVudFRlYW1BY3Rpdml0eToge1xuICAgICAgICAgIC4uLnN0YXRlLmN1cnJlbnRUZWFtQWN0aXZpdHksXG4gICAgICAgICAgcmVzdWx0OiB7XG4gICAgICAgICAgICAuLi5zdGF0ZS5jdXJyZW50VGVhbUFjdGl2aXR5LnJlc3VsdCxcbiAgICAgICAgICAgIGFjdGl2aXR5OiB7XG4gICAgICAgICAgICAgIC4uLnN0YXRlLmN1cnJlbnRUZWFtQWN0aXZpdHkucmVzdWx0LmFjdGl2aXR5LFxuICAgICAgICAgICAgICBpbnZpdGVkX21lbWJlcnM6IHVwZGF0ZUludml0ZWRNZW1iZXJzKHN0YXRlLmN1cnJlbnRUZWFtQWN0aXZpdHkucmVzdWx0LmFjdGl2aXR5Lmludml0ZWRfbWVtYmVycywgcGF5bG9hZClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNvbnN0IGFjdGl2aXR5SWQgPSBjdXJyZW50U3RhdGUuY3VycmVudFRlYW1BY3Rpdml0eS5yZXN1bHQuYWN0aXZpdHkuaWQ7XG5cbiAgICAgIGlmIChjdXJyZW50U3RhdGUudGVhbUV2ZW50cz8udmFsdWU/LnJlc3VsdHMpIHtcbiAgICAgICAgY3VycmVudFN0YXRlLnRlYW1FdmVudHMgPSB7XG4gICAgICAgICAgLi4uY3VycmVudFN0YXRlLnRlYW1FdmVudHMsXG4gICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgIC4uLmN1cnJlbnRTdGF0ZS50ZWFtRXZlbnRzLnZhbHVlLFxuICAgICAgICAgICAgcmVzdWx0czogY3VycmVudFN0YXRlLnRlYW1FdmVudHMudmFsdWUucmVzdWx0cy5tYXAoKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBjdXJyZW50RXZlbnQgPSB7Li4uZXZlbnR9O1xuICAgICAgICAgICAgICBpZiAoY3VycmVudEV2ZW50LmFjdGl2aXR5X2lkID09PSBhY3Rpdml0eUlkKSB7XG4gICAgICAgICAgICAgICAgY3VycmVudEV2ZW50Lmludml0ZWRfbWVtYmVycyA9IHVwZGF0ZUludml0ZWRNZW1iZXJzKGN1cnJlbnRFdmVudC5pbnZpdGVkX21lbWJlcnMgfHwgW10sIHBheWxvYWQpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiBjdXJyZW50RXZlbnQ7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGN1cnJlbnRTdGF0ZSBhcyBDYWxlbmRhclN0YXRlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gc3RhdGU7XG59XG5cbmNvbnN0IHVwZGF0ZU1lbWJlckFjdGl2aXR5SW52aXRlID0gKHN0YXRlOiBDYWxlbmRhclN0YXRlLCBwYXlsb2FkOiBBY3Rpdml0eUludml0ZSkgPT4ge1xuICBsZXQgY3VycmVudFN0YXRlID0ge1xuICAgIC4uLnN0YXRlLFxuICAgIGN1cnJlbnRNZW1iZXJBY3Rpdml0eUludml0ZTogcmV0cmlldmVMb2FkU3VjY2VzcyhwYXlsb2FkKVxuICB9O1xuXG4gIGlmIChjdXJyZW50U3RhdGUuY3VycmVudE1lbWJlckFjdGl2aXR5Py5yZXN1bHQ/LmlkID09PSBwYXlsb2FkLmFjdGl2aXR5LmlkKSB7XG4gICAgY3VycmVudFN0YXRlLmN1cnJlbnRNZW1iZXJBY3Rpdml0eSA9IHtcbiAgICAgIC4uLmN1cnJlbnRTdGF0ZS5jdXJyZW50TWVtYmVyQWN0aXZpdHksXG4gICAgICByZXN1bHQ6IHtcbiAgICAgICAgLi4uY3VycmVudFN0YXRlLmN1cnJlbnRNZW1iZXJBY3Rpdml0eS5yZXN1bHQsXG4gICAgICAgIGludml0ZWRfbWVtYmVyczogdXBkYXRlTWVtYmVyQWN0aXZpdHlJbnZpdGVzKFxuICAgICAgICAgIGN1cnJlbnRTdGF0ZS5jdXJyZW50TWVtYmVyQWN0aXZpdHkucmVzdWx0Lmludml0ZWRfbWVtYmVycyxcbiAgICAgICAgICBwYXlsb2FkXG4gICAgICAgICksXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBpZiAoY3VycmVudFN0YXRlLm1lbWJlckV2ZW50cz8udmFsdWU/LnJlc3VsdCkge1xuICAgIGNvbnN0IGV4aXN0aW5nRXZlbnRzID0gY3VycmVudFN0YXRlLm1lbWJlckV2ZW50cy52YWx1ZS5yZXN1bHQuZ2V0KHBheWxvYWQubWVtYmVyLmlkKTtcblxuICAgIGlmIChleGlzdGluZ0V2ZW50cykge1xuICAgICAgY3VycmVudFN0YXRlLm1lbWJlckV2ZW50cyA9IHtcbiAgICAgICAgLi4uY3VycmVudFN0YXRlLm1lbWJlckV2ZW50cyxcbiAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAuLi5jdXJyZW50U3RhdGUubWVtYmVyRXZlbnRzLnZhbHVlLFxuICAgICAgICAgIHJlc3VsdDogbmV3IE1hcChjdXJyZW50U3RhdGUubWVtYmVyRXZlbnRzLnZhbHVlLnJlc3VsdCkuc2V0KFxuICAgICAgICAgICAgcGF5bG9hZC5tZW1iZXIuaWQsXG4gICAgICAgICAgICB1cGRhdGVFdmVudEludml0ZXMoZXhpc3RpbmdFdmVudHMsIHBheWxvYWQpXG4gICAgICAgICAgKSxcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBpZiAoY3VycmVudFN0YXRlLmFjdGl2aXR5SW52aXRlcz8ucmVzdWx0cykge1xuICAgIGN1cnJlbnRTdGF0ZS5hY3Rpdml0eUludml0ZXMgPSB7XG4gICAgICAuLi5jdXJyZW50U3RhdGUuYWN0aXZpdHlJbnZpdGVzLFxuICAgICAgcmVzdWx0czogY3VycmVudFN0YXRlLmFjdGl2aXR5SW52aXRlcy5yZXN1bHRzLm1hcCgoaW52aXRlOiBBY3Rpdml0eUludml0ZSkgPT4ge1xuICAgICAgICBpZiAoaW52aXRlLmlkID09PSBwYXlsb2FkLmlkKSB7XG4gICAgICAgICAgcmV0dXJuIHBheWxvYWQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGludml0ZTtcbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGN1cnJlbnRTdGF0ZTtcbn1cblxuLy8gLS0tIFJlZHVjZXIgLS0tXG5cbmV4cG9ydCBjb25zdCBjYWxlbmRhclJlZHVjZXIgPSBjcmVhdGVSZWR1Y2VyKFxuICBpbml0aWFsQ2FsZW5kYXJTdGF0ZSxcblxuICAvLyBDbGVhciBBY3Rpb25zXG4gIG9uKGNsZWFyU3RvcmVBY3Rpb24sICgpID0+IGluaXRpYWxDYWxlbmRhclN0YXRlKSxcbiAgb24oY2xlYXJNZW1iZXJBY3Rpdml0eUFjdGlvbiwgKHN0YXRlOiBDYWxlbmRhclN0YXRlKSA9PiAoeyAuLi5zdGF0ZSwgY3VycmVudE1lbWJlckFjdGl2aXR5OiB1bmRlZmluZWQgfSkpLFxuICBvbihjbGVhck1lbWJlckFjdGl2aXR5SW52aXRlQWN0aW9uLCAoc3RhdGU6IENhbGVuZGFyU3RhdGUpID0+ICh7IC4uLnN0YXRlLCBjdXJyZW50TWVtYmVyQWN0aXZpdHlJbnZpdGU6IHVuZGVmaW5lZCB9KSksXG4gIG9uKGNsZWFyTWVtYmVyT3BlbkFjdGl2aXR5QWN0aW9uLCAoc3RhdGU6IENhbGVuZGFyU3RhdGUpID0+ICh7IC4uLnN0YXRlLCBjdXJyZW50TWVtYmVyT3BlbkFjdGl2aXR5OiB1bmRlZmluZWQgfSkpLFxuICBvbihjbGVhclRlYW1BY3Rpdml0eUFjdGlvbiwgKHN0YXRlOiBDYWxlbmRhclN0YXRlKSA9PiAoeyAuLi5zdGF0ZSwgY3VycmVudFRlYW1BY3Rpdml0eTogdW5kZWZpbmVkIH0pKSxcbiAgb24oY2xlYXJUZWFtQWN0aXZpdGllc0FjdGlvbiwgKHN0YXRlOiBDYWxlbmRhclN0YXRlKSA9PiAoeyAuLi5zdGF0ZSwgdGVhbUV2ZW50czogdW5kZWZpbmVkIH0pKSxcblxuICAvLyBNZW1iZXIgQWN0aXZpdHkgSW52aXRlc1xuICBvbihyZXRyaWV2ZU1lbWJlckFjdGl2aXR5SW52aXRlQWN0aW9uLCBzdGF0ZSA9PiAoeyAuLi5zdGF0ZSwgY3VycmVudE1lbWJlckFjdGl2aXR5SW52aXRlOiByZXRyaWV2ZVN0YXJ0TG9hZGluZyhzdGF0ZS5jdXJyZW50TWVtYmVyQWN0aXZpdHlJbnZpdGUpIH0pKSxcbiAgb24ocmV0cmlldmVNZW1iZXJBY3Rpdml0eUludml0ZUZhaWx1cmVBY3Rpb24sIChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+ICh7IC4uLnN0YXRlLCBjdXJyZW50TWVtYmVyQWN0aXZpdHlJbnZpdGU6IHJldHJpZXZlTG9hZEZhaWx1cmU8QWN0aXZpdHlJbnZpdGU+KHBheWxvYWQpIH0pKSxcbiAgb24ocmV0cmlldmVNZW1iZXJBY3Rpdml0eUludml0ZVN1Y2Nlc3NBY3Rpb24sIChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+IHVwZGF0ZU1lbWJlckFjdGl2aXR5SW52aXRlKHN0YXRlLCBwYXlsb2FkKSksXG5cbiAgLy8gTWVtYmVyIEFjdGl2aXRpZXNcbiAgb24ocmV0cmlldmVNZW1iZXJBY3Rpdml0eUFjdGlvbiwgc3RhdGUgPT4gKHsgLi4uc3RhdGUsIGN1cnJlbnRNZW1iZXJBY3Rpdml0eTogcmV0cmlldmVTdGFydExvYWRpbmcoc3RhdGUuY3VycmVudE1lbWJlckFjdGl2aXR5KSB9KSksXG4gIG9uKHJldHJpZXZlTWVtYmVyQWN0aXZpdHlGYWlsdXJlQWN0aW9uLCAoc3RhdGUsIHsgcGF5bG9hZCB9KSA9PiAoeyAuLi5zdGF0ZSwgY3VycmVudE1lbWJlckFjdGl2aXR5OiByZXRyaWV2ZUxvYWRGYWlsdXJlPEFjdGl2aXR5PihwYXlsb2FkKSB9KSksXG4gIG9uKHJldHJpZXZlTWVtYmVyQWN0aXZpdHlTdWNjZXNzQWN0aW9uLCAoc3RhdGUsIHsgcGF5bG9hZCB9KSA9PiAoeyAuLi5zdGF0ZSwgY3VycmVudE1lbWJlckFjdGl2aXR5OiByZXRyaWV2ZUxvYWRTdWNjZXNzKHBheWxvYWQpIH0pKSxcblxuICAvLyBNZW1iZXIgT3BlbiBBY3Rpdml0aWVzXG4gIG9uKHJldHJpZXZlTWVtYmVyT3BlbkFjdGl2aXR5QWN0aW9uLCBzdGF0ZSA9PiAoeyAuLi5zdGF0ZSwgY3VycmVudE1lbWJlck9wZW5BY3Rpdml0eTogcmV0cmlldmVTdGFydExvYWRpbmcoc3RhdGUuY3VycmVudE1lbWJlck9wZW5BY3Rpdml0eSkgfSkpLFxuICBvbihyZXRyaWV2ZU1lbWJlck9wZW5BY3Rpdml0eUZhaWx1cmVBY3Rpb24sIChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+ICh7IC4uLnN0YXRlLCBjdXJyZW50TWVtYmVyT3BlbkFjdGl2aXR5OiByZXRyaWV2ZUxvYWRGYWlsdXJlPE9wZW5BY3Rpdml0eT4ocGF5bG9hZCkgfSkpLFxuICBvbihyZXRyaWV2ZU1lbWJlck9wZW5BY3Rpdml0eVN1Y2Nlc3NBY3Rpb24sIChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+IHtcbiAgICBsZXQgbmV3U3RhdGUgPSB7IC4uLnN0YXRlLCBjdXJyZW50TWVtYmVyT3BlbkFjdGl2aXR5OiByZXRyaWV2ZUxvYWRTdWNjZXNzKHBheWxvYWQpIH07XG5cbiAgICBpZiAobmV3U3RhdGUubWVtYmVyT3BlbkFjdGl2aXRpZXM/LnZhbHVlLnJlc3VsdCAmJiBuZXdTdGF0ZS5tZW1iZXJPcGVuQWN0aXZpdGllcz8udmFsdWUucmVzdWx0Py5nZXQocGF5bG9hZC5tZW1iZXJfaWQpPy5maW5kSW5kZXgoKGl0ZW06IE9wZW5BY3Rpdml0eSkgPT4gaXRlbS5pZCA9PT0gcGF5bG9hZC5pZCkgIT09IC0xKSB7XG4gICAgICBjb25zdCB1cGRhdGVkQWN0aXZpdGllcyA9IG5ld1N0YXRlLm1lbWJlck9wZW5BY3Rpdml0aWVzPy52YWx1ZS5yZXN1bHQ/LmdldChwYXlsb2FkLm1lbWJlcl9pZCk/Lm1hcCgoaXRlbTogT3BlbkFjdGl2aXR5KSA9PiBpdGVtLmlkID09PSBwYXlsb2FkLmlkID8gcGF5bG9hZCA6IGl0ZW0pIGFzIEFycmF5PE9wZW5BY3Rpdml0eT47XG5cbiAgICAgIG5ld1N0YXRlID0ge1xuICAgICAgICAuLi5uZXdTdGF0ZSxcbiAgICAgICAgbWVtYmVyT3BlbkFjdGl2aXRpZXM6IHtcbiAgICAgICAgICBzZWFyY2hQYXJhbXM6IG5ld1N0YXRlLm1lbWJlck9wZW5BY3Rpdml0aWVzPy5zZWFyY2hQYXJhbXMgYXMgT3BlbkFjdGl2aXR5U2VhcmNoUGFyYW1zSW50ZXJmYWNlLFxuICAgICAgICAgIG1lbWJlcklkczogbmV3U3RhdGUubWVtYmVyT3BlbkFjdGl2aXRpZXM/Lm1lbWJlcklkcyBhcyBBcnJheTxzdHJpbmc+LFxuICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICBsb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgICAgIGVycm9yOiBudWxsLFxuICAgICAgICAgICAgbGFzdExvYWRlZDogbmV3IERhdGUoKSxcbiAgICAgICAgICAgIHJlc3VsdDogbmV3U3RhdGUubWVtYmVyT3BlbkFjdGl2aXRpZXM/LnZhbHVlLnJlc3VsdD8uc2V0KHBheWxvYWQubWVtYmVyX2lkLCB1cGRhdGVkQWN0aXZpdGllcykgYXMgTWFwPHN0cmluZywgQXJyYXk8T3BlbkFjdGl2aXR5Pj5cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbmV3U3RhdGU7XG4gIH0pLFxuXG4gIC8vIExpc3QgQWxsIE1lbWJlciBPcGVuIEFjdGl2aXR5IExvY2F0aW9uc1xuICBvbihsaXN0QWxsTWVtYmVyT3BlbkFjdGl2aXR5TG9jYXRpb25zQWN0aW9uLCBzdGF0ZSA9PiAoeyAuLi5zdGF0ZSwgYWxsT3BlbkFjdGl2aXR5TG9jYXRpb25zOiBsaXN0U3RhcnRMb2FkaW5nKHN0YXRlLmFsbE9wZW5BY3Rpdml0eUxvY2F0aW9ucykgfSkpLFxuICBvbihsaXN0QWxsTWVtYmVyT3BlbkFjdGl2aXR5TG9jYXRpb25zRmFpbHVyZUFjdGlvbiwgKHN0YXRlLCB7IHBheWxvYWQgfSkgPT4gKHsgLi4uc3RhdGUsIGFsbE9wZW5BY3Rpdml0eUxvY2F0aW9uczogbGlzdExvYWRGYWlsdXJlPEFjdGl2aXR5TG9jYXRpb24+KHBheWxvYWQpIH0pKSxcbiAgb24obGlzdEFsbE1lbWJlck9wZW5BY3Rpdml0eUxvY2F0aW9uc1N1Y2Nlc3NBY3Rpb24sIChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+ICh7IC4uLnN0YXRlLCBhbGxPcGVuQWN0aXZpdHlMb2NhdGlvbnM6IGxpc3RMb2FkU3VjY2VzcyhwYXlsb2FkKSB9KSksXG5cbiAgLy8gTGlzdCBBbGwgTWVtYmVyIE9wZW4gQWN0aXZpdHkgVHlwZXNcbiAgb24obGlzdEFsbE1lbWJlck9wZW5BY3Rpdml0eVR5cGVzQWN0aW9uLCBzdGF0ZSA9PiAoeyAuLi5zdGF0ZSwgYWxsT3BlbkFjdGl2aXR5VHlwZXM6IGxpc3RTdGFydExvYWRpbmcoc3RhdGUuYWxsT3BlbkFjdGl2aXR5VHlwZXMpIH0pKSxcbiAgb24obGlzdEFsbE1lbWJlck9wZW5BY3Rpdml0eVR5cGVzRmFpbHVyZUFjdGlvbiwgKHN0YXRlLCB7IHBheWxvYWQgfSkgPT4gKHsgLi4uc3RhdGUsIGFsbE9wZW5BY3Rpdml0eVR5cGVzOiBsaXN0TG9hZEZhaWx1cmU8QWN0aXZpdHlUeXBlPihwYXlsb2FkKSB9KSksXG4gIG9uKGxpc3RBbGxNZW1iZXJPcGVuQWN0aXZpdHlUeXBlc1N1Y2Nlc3NBY3Rpb24sIChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+ICh7IC4uLnN0YXRlLCBhbGxPcGVuQWN0aXZpdHlUeXBlczogbGlzdExvYWRTdWNjZXNzKHBheWxvYWQpIH0pKSxcblxuICAvLyBMaXN0IE1lbWJlciBBY3Rpdml0eSBJbnZpdGVzXG4gIG9uKGxpc3RNZW1iZXJBY3Rpdml0eUludml0ZXNBY3Rpb24sIHN0YXRlID0+ICh7IC4uLnN0YXRlLCBhY3Rpdml0eUludml0ZXM6IGxpc3RTdGFydExvYWRpbmcoc3RhdGUuYWN0aXZpdHlJbnZpdGVzKSB9KSksXG4gIG9uKGxpc3RNZW1iZXJBY3Rpdml0eUludml0ZXNGYWlsdXJlQWN0aW9uLCAoc3RhdGUsIHsgcGF5bG9hZCB9KSA9PiAoeyAuLi5zdGF0ZSwgYWN0aXZpdHlJbnZpdGVzOiBsaXN0TG9hZEZhaWx1cmU8QWN0aXZpdHlJbnZpdGU+KHBheWxvYWQpIH0pKSxcbiAgb24obGlzdE1lbWJlckFjdGl2aXR5SW52aXRlc1N1Y2Nlc3NBY3Rpb24sIChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+ICh7IC4uLnN0YXRlLCBhY3Rpdml0eUludml0ZXM6IGxpc3RMb2FkU3VjY2VzcyhwYXlsb2FkKSB9KSksXG5cbiAgLy8gTWVtYmVyIEFjdGl2aXRpZXNcbiAgb24obGlzdE1lbWJlckFjdGl2aXRpZXNBY3Rpb24sIChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgbWVtYmVyRXZlbnRzOiB7XG4gICAgICBzdGFydERhdGU6IHBheWxvYWQuc3RhcnREYXRlLFxuICAgICAgZW5kRGF0ZTogcGF5bG9hZC5lbmREYXRlLFxuICAgICAgbWVtYmVySWRzOiBwYXlsb2FkLm1lbWJlcklkcyxcbiAgICAgIHZhbHVlOiByZXRyaWV2ZVN0YXJ0TG9hZGluZyhzdGF0ZS5tZW1iZXJFdmVudHM/LnZhbHVlKVxuICAgIH1cbiAgfSkpLFxuICBvbihsaXN0TWVtYmVyQWN0aXZpdGllc0ZhaWx1cmVBY3Rpb24sIChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgbWVtYmVyRXZlbnRzOiB7XG4gICAgICBzdGFydERhdGU6IHBheWxvYWQuc3RhcnREYXRlLFxuICAgICAgZW5kRGF0ZTogcGF5bG9hZC5lbmREYXRlLFxuICAgICAgbWVtYmVySWRzOiBwYXlsb2FkLm1lbWJlcklkcyxcbiAgICAgIHZhbHVlOiByZXRyaWV2ZUxvYWRGYWlsdXJlPE1hcDxzdHJpbmcsIEFycmF5PEV2ZW50Pj4+KHBheWxvYWQuZXJyb3IpXG4gICAgfVxuICB9KSksXG4gIG9uKGxpc3RNZW1iZXJBY3Rpdml0aWVzU3VjY2Vzc0FjdGlvbiwgKHN0YXRlLCB7IHBheWxvYWQgfSkgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBtZW1iZXJFdmVudHM6IHtcbiAgICAgIHN0YXJ0RGF0ZTogcGF5bG9hZC5zdGFydERhdGUsXG4gICAgICBlbmREYXRlOiBwYXlsb2FkLmVuZERhdGUsXG4gICAgICBtZW1iZXJJZHM6IHBheWxvYWQubWVtYmVySWRzLFxuICAgICAgdmFsdWU6IHJldHJpZXZlTG9hZFN1Y2Nlc3MocGF5bG9hZC5yZXN1bHRzKVxuICAgIH1cbiAgfSkpLFxuXG4gIC8vIE1lbWJlciBPcGVuIEFjdGl2aXRpZXNcbiAgb24obGlzdE1lbWJlck9wZW5BY3Rpdml0aWVzQWN0aW9uLCAoc3RhdGUsIHsgcGF5bG9hZCB9KSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIG1lbWJlck9wZW5BY3Rpdml0aWVzOiB7XG4gICAgICBzZWFyY2hQYXJhbXM6IHBheWxvYWQub3BlbkFjdGl2aXR5U2VhcmNoUGFyYW1zLFxuICAgICAgbWVtYmVySWRzOiBwYXlsb2FkLm1lbWJlcklkcyxcbiAgICAgIHZhbHVlOiByZXRyaWV2ZVN0YXJ0TG9hZGluZyhzdGF0ZS5tZW1iZXJPcGVuQWN0aXZpdGllcz8udmFsdWUpXG4gICAgfVxuICB9KSksXG4gIG9uKGxpc3RNZW1iZXJPcGVuQWN0aXZpdGllc0ZhaWx1cmVBY3Rpb24sIChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgbWVtYmVyT3BlbkFjdGl2aXRpZXM6IHtcbiAgICAgIHNlYXJjaFBhcmFtczogcGF5bG9hZC5vcGVuQWN0aXZpdHlTZWFyY2hQYXJhbXMsXG4gICAgICBtZW1iZXJJZHM6IHBheWxvYWQubWVtYmVySWRzLFxuICAgICAgdmFsdWU6IHJldHJpZXZlTG9hZEZhaWx1cmU8TWFwPHN0cmluZywgQXJyYXk8T3BlbkFjdGl2aXR5Pj4+KHBheWxvYWQuZXJyb3IpXG4gICAgfVxuICB9KSksXG4gIG9uKGxpc3RNZW1iZXJPcGVuQWN0aXZpdGllc1N1Y2Nlc3NBY3Rpb24sIChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgbWVtYmVyT3BlbkFjdGl2aXRpZXM6IHtcbiAgICAgIHNlYXJjaFBhcmFtczogcGF5bG9hZC5vcGVuQWN0aXZpdHlTZWFyY2hQYXJhbXMsXG4gICAgICBtZW1iZXJJZHM6IHBheWxvYWQubWVtYmVySWRzLFxuICAgICAgdmFsdWU6IHJldHJpZXZlTG9hZFN1Y2Nlc3MocGF5bG9hZC5yZXN1bHRzKVxuICAgIH1cbiAgfSkpLFxuXG4gIC8vIE1lbWJlciBPcGVuIEFjdGl2aXR5IExvY2F0aW9uc1xuICBvbihsaXN0TWVtYmVyT3BlbkFjdGl2aXR5TG9jYXRpb25zQWN0aW9uLCAoc3RhdGUsIHsgcGF5bG9hZCB9KSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIG1lbWJlck9wZW5BY3Rpdml0eUxvY2F0aW9uczoge1xuICAgICAgc3RhcnREYXRlOiBwYXlsb2FkLnN0YXJ0RGF0ZSxcbiAgICAgIGVuZERhdGU6IHBheWxvYWQuZW5kRGF0ZSxcbiAgICAgIHZhbHVlOiBsaXN0U3RhcnRMb2FkaW5nPEFjdGl2aXR5TG9jYXRpb24+KHN0YXRlLm1lbWJlck9wZW5BY3Rpdml0eUxvY2F0aW9ucz8udmFsdWUpXG4gICAgfVxuICB9KSksXG4gIG9uKGxpc3RNZW1iZXJPcGVuQWN0aXZpdHlMb2NhdGlvbnNGYWlsdXJlQWN0aW9uLCAoc3RhdGUsIHsgcGF5bG9hZCB9KSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIG1lbWJlck9wZW5BY3Rpdml0eUxvY2F0aW9uczoge1xuICAgICAgc3RhcnREYXRlOiBwYXlsb2FkLnN0YXJ0RGF0ZSxcbiAgICAgIGVuZERhdGU6IHBheWxvYWQuZW5kRGF0ZSxcbiAgICAgIHZhbHVlOiBsaXN0TG9hZEZhaWx1cmU8QWN0aXZpdHlMb2NhdGlvbj4ocGF5bG9hZC5lcnJvcilcbiAgICB9XG4gIH0pKSxcbiAgb24obGlzdE1lbWJlck9wZW5BY3Rpdml0eUxvY2F0aW9uc1N1Y2Nlc3NBY3Rpb24sIChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgbWVtYmVyT3BlbkFjdGl2aXR5TG9jYXRpb25zOiB7XG4gICAgICBzdGFydERhdGU6IHBheWxvYWQuc3RhcnREYXRlLFxuICAgICAgZW5kRGF0ZTogcGF5bG9hZC5lbmREYXRlLFxuICAgICAgdmFsdWU6IGxpc3RMb2FkU3VjY2VzcyhwYXlsb2FkLmxvY2F0aW9ucylcbiAgICB9XG4gIH0pKSxcblxuICAvLyBNZW1iZXIgT3BlbiBBY3Rpdml0eSBUeXBlc1xuICBvbihsaXN0TWVtYmVyT3BlbkFjdGl2aXR5VHlwZXNBY3Rpb24sIChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgbWVtYmVyT3BlbkFjdGl2aXR5VHlwZXM6IHtcbiAgICAgIHN0YXJ0RGF0ZTogcGF5bG9hZC5zdGFydERhdGUsXG4gICAgICBlbmREYXRlOiBwYXlsb2FkLmVuZERhdGUsXG4gICAgICB2YWx1ZTogbGlzdFN0YXJ0TG9hZGluZzxBY3Rpdml0eVR5cGU+KHN0YXRlLm1lbWJlck9wZW5BY3Rpdml0eVR5cGVzPy52YWx1ZSlcbiAgICB9XG4gIH0pKSxcbiAgb24obGlzdE1lbWJlck9wZW5BY3Rpdml0eVR5cGVzRmFpbHVyZUFjdGlvbiwgKHN0YXRlLCB7IHBheWxvYWQgfSkgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBtZW1iZXJPcGVuQWN0aXZpdHlUeXBlczoge1xuICAgICAgc3RhcnREYXRlOiBwYXlsb2FkLnN0YXJ0RGF0ZSxcbiAgICAgIGVuZERhdGU6IHBheWxvYWQuZW5kRGF0ZSxcbiAgICAgIHZhbHVlOiBsaXN0TG9hZEZhaWx1cmU8QWN0aXZpdHlUeXBlPihwYXlsb2FkLmVycm9yKVxuICAgIH1cbiAgfSkpLFxuICBvbihsaXN0TWVtYmVyT3BlbkFjdGl2aXR5VHlwZXNTdWNjZXNzQWN0aW9uLCAoc3RhdGUsIHsgcGF5bG9hZCB9KSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIG1lbWJlck9wZW5BY3Rpdml0eVR5cGVzOiB7XG4gICAgICBzdGFydERhdGU6IHBheWxvYWQuc3RhcnREYXRlLFxuICAgICAgZW5kRGF0ZTogcGF5bG9hZC5lbmREYXRlLFxuICAgICAgdmFsdWU6IGxpc3RMb2FkU3VjY2VzcyhwYXlsb2FkLnR5cGVzKVxuICAgIH1cbiAgfSkpLFxuXG4gIG9uKGRlbGV0ZVRlYW1BY3Rpdml0eUludml0ZUFjdGlvbiwgKHN0YXRlOiBDYWxlbmRhclN0YXRlLCB7cGF5bG9hZH06IHtwYXlsb2FkOiB7dGVhbUlkOiBzdHJpbmcsIGFjdGl2aXR5SWQ6IHN0cmluZywgYWN0aXZpdHlJbnZpdGVJZDogc3RyaW5nfSB9KSA9PiB7XG4gICAgaWYgKHN0YXRlLmN1cnJlbnRUZWFtQWN0aXZpdHk/LnJlc3VsdD8uYWN0aXZpdHkuaWQgPT09IHBheWxvYWQuYWN0aXZpdHlJZCB8fCBzdGF0ZS50ZWFtRXZlbnRzPy52YWx1ZS5yZXN1bHRzKSB7XG4gICAgICBsZXQgY3VycmVudFN0YXRlID0ge1xuICAgICAgICAuLi5zdGF0ZVxuICAgICAgfTtcblxuICAgICAgaWYgKHN0YXRlLmN1cnJlbnRUZWFtQWN0aXZpdHk/LnJlc3VsdD8uYWN0aXZpdHkuaWQgPT09IHBheWxvYWQuYWN0aXZpdHlJZCkge1xuICAgICAgICBjdXJyZW50U3RhdGUuY3VycmVudFRlYW1BY3Rpdml0eSA9IHtcbiAgICAgICAgICAuLi5jdXJyZW50U3RhdGUuY3VycmVudFRlYW1BY3Rpdml0eSxcbiAgICAgICAgICByZXN1bHQ6IHtcbiAgICAgICAgICAgIC4uLmN1cnJlbnRTdGF0ZS5jdXJyZW50VGVhbUFjdGl2aXR5Py5yZXN1bHQsXG4gICAgICAgICAgICBhY3Rpdml0eToge1xuICAgICAgICAgICAgICAuLi5jdXJyZW50U3RhdGUuY3VycmVudFRlYW1BY3Rpdml0eT8ucmVzdWx0Py5hY3Rpdml0eSxcbiAgICAgICAgICAgICAgaW52aXRlZF9tZW1iZXJzOiBjdXJyZW50U3RhdGUuY3VycmVudFRlYW1BY3Rpdml0eT8ucmVzdWx0Py5hY3Rpdml0eS5pbnZpdGVkX21lbWJlcnMuZmlsdGVyKGFjdGl2aXR5SW52aXRlID0+IGFjdGl2aXR5SW52aXRlLmlkICE9PSBwYXlsb2FkLmFjdGl2aXR5SW52aXRlSWQpIHx8IFtdXG4gICAgICAgICAgICB9IGFzIEFjdGl2aXR5XG4gICAgICAgICAgfSBhcyBUZWFtQWN0aXZpdHlJbnRlcmZhY2VcbiAgICAgICAgfSBhcyBSZXRyaWV2ZVJlc3VsdEludGVyZmFjZTxUZWFtQWN0aXZpdHlJbnRlcmZhY2U+XG4gICAgICB9XG5cbiAgICAgIGlmIChzdGF0ZS50ZWFtRXZlbnRzPy52YWx1ZT8ucmVzdWx0cykge1xuICAgICAgICBjdXJyZW50U3RhdGUudGVhbUV2ZW50cyA9IHtcbiAgICAgICAgICAuLi5jdXJyZW50U3RhdGUudGVhbUV2ZW50cyxcbiAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgLi4uY3VycmVudFN0YXRlLnRlYW1FdmVudHM/LnZhbHVlLFxuICAgICAgICAgICAgcmVzdWx0czogY3VycmVudFN0YXRlLnRlYW1FdmVudHM/LnZhbHVlLnJlc3VsdHMubWFwKChldmVudDogRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgaWYgKGV2ZW50LmFjdGl2aXR5X2lkID09PSBwYXlsb2FkLmFjdGl2aXR5SWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gIHtcbiAgICAgICAgICAgICAgICAgIC4uLmV2ZW50LFxuICAgICAgICAgICAgICAgICAgaW52aXRlZF9tZW1iZXJzOiBldmVudC5pbnZpdGVkX21lbWJlcnM/LmZpbHRlcigoYWN0aXZpdHlJbnZpdGU6IE1lbWJlckFjdGl2aXR5SW52aXRlKSA9PiBhY3Rpdml0eUludml0ZS5pZCAhPT0gcGF5bG9hZC5hY3Rpdml0eUludml0ZUlkKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gZXZlbnQ7XG4gICAgICAgICAgICB9KSBhcyBBcnJheTxFdmVudD5cbiAgICAgICAgICB9IGFzIExpc3RSZXN1bHRJbnRlcmZhY2U8RXZlbnQ+XG4gICAgICAgIH0gYXMgVGVhbUNhbGVuZGFyRXZlbnRSZXN1bHRJbnRlcmZhY2U7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjdXJyZW50U3RhdGU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0YXRlO1xuICB9KSxcblxuICAvLyBUZWFtIEFjdGl2aXRpZXNcbiAgb24obGlzdFRlYW1BY3Rpdml0aWVzQWN0aW9uLCAoc3RhdGUsIHsgcGF5bG9hZCB9KSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIHRlYW1FdmVudHM6IHtcbiAgICAgIHRlYW1JZDogcGF5bG9hZC50ZWFtSWQsXG4gICAgICBzdGFydERhdGU6IHBheWxvYWQuc3RhcnREYXRlLFxuICAgICAgZW5kRGF0ZTogcGF5bG9hZC5lbmREYXRlLFxuICAgICAgdmFsdWU6IGxpc3RTdGFydExvYWRpbmcoc3RhdGUudGVhbUV2ZW50cz8udmFsdWUpXG4gICAgfVxuICB9KSksXG4gIG9uKGxpc3RUZWFtQWN0aXZpdGllc0ZhaWx1cmVBY3Rpb24sIChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgdGVhbUV2ZW50czoge1xuICAgICAgdGVhbUlkOiBwYXlsb2FkLnRlYW1JZCxcbiAgICAgIHN0YXJ0RGF0ZTogcGF5bG9hZC5zdGFydERhdGUsXG4gICAgICBlbmREYXRlOiBwYXlsb2FkLmVuZERhdGUsXG4gICAgICB2YWx1ZTogbGlzdExvYWRGYWlsdXJlPEV2ZW50PihwYXlsb2FkLmVycm9yKVxuICAgIH1cbiAgfSkpLFxuICBvbihsaXN0VGVhbUFjdGl2aXRpZXNTdWNjZXNzQWN0aW9uLCAoc3RhdGUsIHsgcGF5bG9hZCB9KSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIHRlYW1FdmVudHM6IHtcbiAgICAgIHRlYW1JZDogcGF5bG9hZC50ZWFtSWQsXG4gICAgICBzdGFydERhdGU6IHBheWxvYWQuc3RhcnREYXRlLFxuICAgICAgZW5kRGF0ZTogcGF5bG9hZC5lbmREYXRlLFxuICAgICAgdmFsdWU6IGxpc3RMb2FkU3VjY2VzcyhwYXlsb2FkLnJlc3VsdHMpXG4gICAgfVxuICB9KSksXG5cbiAgLy8gVGVhbSBBY3Rpdml0eSBQYXJ0aWNpcGFudHNcbiAgb24obGlzdFRlYW1BY3Rpdml0eVBhcnRpY2lwYW50c1N1Y2Nlc3NBY3Rpb24sIChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+IHtcbiAgICBpZiAoc3RhdGUuY3VycmVudFRlYW1BY3Rpdml0eT8ucmVzdWx0ICYmIHN0YXRlLmN1cnJlbnRUZWFtQWN0aXZpdHkucmVzdWx0LmFjdGl2aXR5LmlkID09PSBwYXlsb2FkLmFjdGl2aXR5SWQpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBjdXJyZW50VGVhbUFjdGl2aXR5OiB7XG4gICAgICAgICAgLi4uc3RhdGUuY3VycmVudFRlYW1BY3Rpdml0eSxcbiAgICAgICAgICByZXN1bHQ6IHtcbiAgICAgICAgICAgIC4uLnN0YXRlLmN1cnJlbnRUZWFtQWN0aXZpdHkucmVzdWx0LFxuICAgICAgICAgICAgcGFydGljaXBhbnRzOiBwYXlsb2FkLnJlc3VsdHNcbiAgICAgICAgICB9LFxuICAgICAgICAgIGxvYWRpbmc6IGZhbHNlXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBzdGF0ZTtcbiAgfSksXG5cbiAgLy8gVGVhbSBMZWFkZXIgRXh0cmEgTWVtYmVyc1xuICBvbihsaXN0VGVhbUxlYWRlckV4dHJhTWVtYmVyc1N1Y2Nlc3NBY3Rpb24sIChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+IHtcbiAgICBpZiAoc3RhdGUuY3VycmVudFRlYW1BY3Rpdml0eT8ucmVzdWx0ICYmIHBheWxvYWQudGVhbUlkID09PSBzdGF0ZS5jdXJyZW50VGVhbUFjdGl2aXR5LnJlc3VsdC50ZWFtLmlkKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgY3VycmVudFRlYW1BY3Rpdml0eToge1xuICAgICAgICAgIC4uLnN0YXRlLmN1cnJlbnRUZWFtQWN0aXZpdHksXG4gICAgICAgICAgcmVzdWx0OiB7XG4gICAgICAgICAgICAuLi5zdGF0ZS5jdXJyZW50VGVhbUFjdGl2aXR5LnJlc3VsdCxcbiAgICAgICAgICAgIGV4dHJhTWVtYmVyczogcGF5bG9hZC5yZXN1bHRzLFxuICAgICAgICAgICAgZXh0cmFNZW1iZXJzTG9hZGVkOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBsb2FkaW5nOiBmYWxzZVxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gc3RhdGU7XG4gIH0pLFxuXG4gIC8vIFRlYW0gYWN0aXZpdHkgcXVlc3Rpb25zXG4gIG9uKGxpc3RUZWFtQWN0aXZpdHlRdWVzdGlvbnNBY3Rpb24sIChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgYWN0aXZpdHlRdWVzdGlvbnM6IHtcbiAgICAgIC4uLnN0YXRlLmFjdGl2aXR5UXVlc3Rpb25zIHx8IHt9LFxuICAgICAgW3BheWxvYWQudGVhbUlkXTogbGlzdFN0YXJ0TG9hZGluZyhzdGF0ZS5hY3Rpdml0eVF1ZXN0aW9ucz8uW3BheWxvYWQudGVhbUlkXSlcbiAgICB9XG4gIH0pKSxcbiAgb24obGlzdFRlYW1BY3Rpdml0eVF1ZXN0aW9uc0ZhaWx1cmVBY3Rpb24sIChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgYWN0aXZpdHlRdWVzdGlvbnM6IHtcbiAgICAgIC4uLnN0YXRlLmFjdGl2aXR5UXVlc3Rpb25zIHx8IHt9LFxuICAgICAgW3BheWxvYWQudGVhbUlkXTogbGlzdExvYWRGYWlsdXJlPEFjdGl2aXR5UXVlc3Rpb24+KHBheWxvYWQuZXJyb3IpXG4gICAgfVxuICB9KSksXG4gIG9uKGxpc3RUZWFtQWN0aXZpdHlRdWVzdGlvbnNTdWNjZXNzQWN0aW9uLCAoc3RhdGUsIHsgcGF5bG9hZCB9KSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIGFjdGl2aXR5UXVlc3Rpb25zOiB7XG4gICAgICAuLi5zdGF0ZS5hY3Rpdml0eVF1ZXN0aW9ucyB8fCB7fSxcbiAgICAgIFtwYXlsb2FkLnRlYW1JZF06IGxpc3RMb2FkU3VjY2VzcyhwYXlsb2FkLnJlc3VsdHMpXG4gICAgfVxuICB9KSksXG5cbiAgLy8gVGVhbSBBY3Rpdml0eSBBY3Rpb25zXG4gIG9uKHJldHJpZXZlVGVhbUFjdGl2aXR5QWN0aW9uLCBzdGF0ZSA9PiAoeyAuLi5zdGF0ZSwgY3VycmVudFRlYW1BY3Rpdml0eTogcmV0cmlldmVTdGFydExvYWRpbmcoc3RhdGUuY3VycmVudFRlYW1BY3Rpdml0eSkgfSkpLFxuICBvbihyZXRyaWV2ZVRlYW1BY3Rpdml0eUZhaWx1cmVBY3Rpb24sIChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+ICh7IC4uLnN0YXRlLCBjdXJyZW50VGVhbUFjdGl2aXR5OiByZXRyaWV2ZUxvYWRGYWlsdXJlPFRlYW1BY3Rpdml0eUludGVyZmFjZT4ocGF5bG9hZCkgfSkpLFxuICBvbihyZXRyaWV2ZVRlYW1BY3Rpdml0eVN1Y2Nlc3NBY3Rpb24sIChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+ICh7IC4uLnN0YXRlLCBjdXJyZW50VGVhbUFjdGl2aXR5OiByZXRyaWV2ZUxvYWRTdWNjZXNzKHBheWxvYWQpIH0pKSxcbiAgb24ocmV0cmlldmVUZWFtQWN0aXZpdHlRUkNvZGVTdWNjZXNzQWN0aW9uLCAoc3RhdGUsIHsgcGF5bG9hZCB9KSA9PiB7XG4gICAgaWYgKHN0YXRlLmN1cnJlbnRUZWFtQWN0aXZpdHk/LnJlc3VsdCAmJiBwYXlsb2FkLmFjdGl2aXR5LmlkID09PSBzdGF0ZS5jdXJyZW50VGVhbUFjdGl2aXR5LnJlc3VsdC5hY3Rpdml0eS5pZCAmJiBwYXlsb2FkLnRlYW1JZCA9PT0gc3RhdGUuY3VycmVudFRlYW1BY3Rpdml0eS5yZXN1bHQudGVhbS5pZCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGN1cnJlbnRUZWFtQWN0aXZpdHk6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5jdXJyZW50VGVhbUFjdGl2aXR5LFxuICAgICAgICAgIHJlc3VsdDoge1xuICAgICAgICAgICAgLi4uc3RhdGUuY3VycmVudFRlYW1BY3Rpdml0eS5yZXN1bHQsXG4gICAgICAgICAgICBhY3Rpdml0eTogcGF5bG9hZC5hY3Rpdml0eVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHN0YXRlO1xuICB9KSxcblxuICAvLyBUZWFtIEFjdGl2aXR5IFNldHRpbmdzXG4gIG9uKHJldHJpZXZlVGVhbUFjdGl2aXR5U2V0dGluZ3NBY3Rpb24sIHN0YXRlID0+ICh7IC4uLnN0YXRlLCBhY3Rpdml0eVNldHRpbmdzOiByZXRyaWV2ZVN0YXJ0TG9hZGluZyhzdGF0ZS5hY3Rpdml0eVNldHRpbmdzKSB9KSksXG4gIG9uKHJldHJpZXZlVGVhbUFjdGl2aXR5U2V0dGluZ3NGYWlsdXJlQWN0aW9uLCAoc3RhdGUsIHsgcGF5bG9hZCB9KSA9PiAoeyAuLi5zdGF0ZSwgYWN0aXZpdHlTZXR0aW5nczogcmV0cmlldmVMb2FkRmFpbHVyZTxBY3Rpdml0eVNldHRpbmdzPihwYXlsb2FkKSB9KSksXG4gIG9uKHJldHJpZXZlVGVhbUFjdGl2aXR5U2V0dGluZ3NTdWNjZXNzQWN0aW9uLCAoc3RhdGUsIHsgcGF5bG9hZCB9KSA9PiAoeyAuLi5zdGF0ZSwgYWN0aXZpdHlTZXR0aW5nczogcmV0cmlldmVMb2FkU3VjY2VzcyhwYXlsb2FkKSB9KSksXG5cbiAgLy8gVGVhbSBBY3Rpdml0eSBRdWVzdGlvblxuICBvbihyZXRyaWV2ZVRlYW1BY3Rpdml0eVF1ZXN0aW9uQWN0aW9uLCBzdGF0ZSA9PiAoeyAuLi5zdGF0ZSwgY3VycmVudFRlYW1BY3Rpdml0eVF1ZXN0aW9uOiByZXRyaWV2ZVN0YXJ0TG9hZGluZyhzdGF0ZS5jdXJyZW50VGVhbUFjdGl2aXR5UXVlc3Rpb24pIH0pKSxcbiAgb24ocmV0cmlldmVUZWFtQWN0aXZpdHlRdWVzdGlvbkZhaWx1cmVBY3Rpb24sIChzdGF0ZSwge3BheWxvYWR9KSA9PiAoey4uLnN0YXRlLCBjdXJyZW50VGVhbUFjdGl2aXR5UXVlc3Rpb246IHJldHJpZXZlTG9hZEZhaWx1cmU8QWN0aXZpdHlRdWVzdGlvbj4ocGF5bG9hZCl9KSksXG4gIG9uKHJldHJpZXZlVGVhbUFjdGl2aXR5UXVlc3Rpb25TdWNjZXNzQWN0aW9uLCAoc3RhdGUsIHtwYXlsb2FkfSkgPT4gKHsuLi5zdGF0ZSwgY3VycmVudFRlYW1BY3Rpdml0eVF1ZXN0aW9uOiByZXRyaWV2ZUxvYWRTdWNjZXNzKHBheWxvYWQpfSkpLFxuXG4gIC8vIFRlYW0gRGVmYXVsdCBBY3Rpdml0eSBTZXR0aW5nc1xuICBvbihyZXRyaWV2ZVRlYW1EZWZhdWx0QWN0aXZpdHlTZXR0aW5nc0FjdGlvbiwgc3RhdGUgPT4gKHsgLi4uc3RhdGUsIG5ld1RlYW1BY3Rpdml0eTogcmV0cmlldmVTdGFydExvYWRpbmcoc3RhdGUubmV3VGVhbUFjdGl2aXR5KSB9KSksXG4gIG9uKHJldHJpZXZlVGVhbURlZmF1bHRBY3Rpdml0eVNldHRpbmdzRmFpbHVyZUFjdGlvbiwgKHN0YXRlLCB7IHBheWxvYWQgfSkgPT4gKHsgLi4uc3RhdGUsIG5ld1RlYW1BY3Rpdml0eTogcmV0cmlldmVMb2FkRmFpbHVyZTxBY3Rpdml0eT4ocGF5bG9hZCkgfSkpLFxuICBvbihyZXRyaWV2ZVRlYW1EZWZhdWx0QWN0aXZpdHlTZXR0aW5nc1N1Y2Nlc3NBY3Rpb24sIChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+ICh7IC4uLnN0YXRlLCBuZXdUZWFtQWN0aXZpdHk6IHJldHJpZXZlTG9hZFN1Y2Nlc3MocGF5bG9hZCkgfSkpLFxuXG4gIC8vIFVwZGF0ZSBNZW1iZXIgQWN0aXZpdHkgSW52aXRlXG4gIG9uKHVwZGF0ZU1lbWJlckFjdGl2aXR5SW52aXRlU3VjY2Vzc0FjdGlvbiwgKHN0YXRlLCB7IHBheWxvYWQgfSkgPT4gdXBkYXRlTWVtYmVyQWN0aXZpdHlJbnZpdGUoc3RhdGUsIHBheWxvYWQpKSxcblxuICAvLyBVcGRhdGUgTWVtYmVyIE9wZW4gQWN0aXZpdHlcbiAgb24odXBkYXRlTWVtYmVyT3BlbkFjdGl2aXR5U3VjY2Vzc0FjdGlvbiwgKHN0YXRlLCB7IHBheWxvYWQgfSkgPT4ge1xuICAgIGxldCBjdXJyZW50U3RhdGUgPSB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIGN1cnJlbnRNZW1iZXJPcGVuQWN0aXZpdHk6IHJldHJpZXZlTG9hZFN1Y2Nlc3MocGF5bG9hZClcbiAgICB9O1xuXG4gICAgaWYgKGN1cnJlbnRTdGF0ZS5tZW1iZXJPcGVuQWN0aXZpdGllcz8udmFsdWU/LnJlc3VsdCkge1xuICAgICAgY29uc3QgZXhpc3RpbmdPcGVuQWN0aXZpdGllcyA9IGN1cnJlbnRTdGF0ZS5tZW1iZXJPcGVuQWN0aXZpdGllcy52YWx1ZS5yZXN1bHQuZ2V0KHBheWxvYWQubWVtYmVyX2lkKTtcblxuICAgICAgaWYgKGV4aXN0aW5nT3BlbkFjdGl2aXRpZXMpIHtcbiAgICAgICAgY3VycmVudFN0YXRlLm1lbWJlck9wZW5BY3Rpdml0aWVzID0ge1xuICAgICAgICAgIC4uLmN1cnJlbnRTdGF0ZS5tZW1iZXJPcGVuQWN0aXZpdGllcyxcbiAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgLi4uY3VycmVudFN0YXRlLm1lbWJlck9wZW5BY3Rpdml0aWVzLnZhbHVlLFxuICAgICAgICAgICAgcmVzdWx0OiBuZXcgTWFwKGN1cnJlbnRTdGF0ZS5tZW1iZXJPcGVuQWN0aXZpdGllcy52YWx1ZS5yZXN1bHQpLnNldChcbiAgICAgICAgICAgICAgcGF5bG9hZC5tZW1iZXJfaWQsXG4gICAgICAgICAgICAgIHVwZGF0ZU9wZW5BY3Rpdml0aWVzKGV4aXN0aW5nT3BlbkFjdGl2aXRpZXMsIHBheWxvYWQpXG4gICAgICAgICAgICApLFxuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY3VycmVudFN0YXRlLmFjdGl2aXR5SW52aXRlcz8ucmVzdWx0cykge1xuICAgICAgY3VycmVudFN0YXRlLmFjdGl2aXR5SW52aXRlcyA9IHtcbiAgICAgICAgLi4uY3VycmVudFN0YXRlLmFjdGl2aXR5SW52aXRlcyxcbiAgICAgICAgcmVzdWx0czogY3VycmVudFN0YXRlLmFjdGl2aXR5SW52aXRlcy5yZXN1bHRzLm1hcCgoaW52aXRlOiBBY3Rpdml0eUludml0ZSkgPT4ge1xuICAgICAgICAgIGlmIChpbnZpdGUuYWN0aXZpdHkuaWQgPT09IHBheWxvYWQuaWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGludml0ZWRNZW1iZXIgPSBwYXlsb2FkLmludml0ZWRfbWVtYmVycy5maW5kKChpbnZpdGVkTWVtYmVyOiBNZW1iZXJBY3Rpdml0eUludml0ZSkgPT4gaW52aXRlZE1lbWJlci5pZCA9PT0gaW52aXRlLmlkKTtcblxuICAgICAgICAgICAgaWYgKGludml0ZWRNZW1iZXIpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG5ldyBBY3Rpdml0eUludml0ZShcbiAgICAgICAgICAgICAgICBpbnZpdGUuaWQsXG4gICAgICAgICAgICAgICAgaW52aXRlLmFjdGl2aXR5LFxuICAgICAgICAgICAgICAgIGludml0ZWRNZW1iZXIuY29tbWVudCxcbiAgICAgICAgICAgICAgICBpbnZpdGUuY3JlYXRlZCxcbiAgICAgICAgICAgICAgICBpbnZpdGUuaGFzX3VucGFpZF9pbnZvaWNlcyxcbiAgICAgICAgICAgICAgICBpbnZpdGVkTWVtYmVyLmxhc3RfaW52aXRlIHx8ICcnIGFzIHN0cmluZyxcbiAgICAgICAgICAgICAgICBpbnZpdGUubGVhZGVyLFxuICAgICAgICAgICAgICAgIGludml0ZS5tZW1iZXIsXG4gICAgICAgICAgICAgICAgaW52aXRlLm1lbWJlcl9pbnZvaWNlX2lkLFxuICAgICAgICAgICAgICAgIGludml0ZWRNZW1iZXIubmV4dF9pbnZpdGUsXG4gICAgICAgICAgICAgICAgW10sXG4gICAgICAgICAgICAgICAgaW52aXRlLnBheW1lbnRfbGluayxcbiAgICAgICAgICAgICAgICBpbnZpdGUucHVibGljX3BheW1lbnRfbGluayxcbiAgICAgICAgICAgICAgICBpbnZpdGUucmVtaW5kZWQsXG4gICAgICAgICAgICAgICAgaW52aXRlZE1lbWJlci5yZXNwb25zZV9kYXRlLFxuICAgICAgICAgICAgICAgIFtdLFxuICAgICAgICAgICAgICAgIGludml0ZWRNZW1iZXIuc3RhdHVzLFxuICAgICAgICAgICAgICAgIGludml0ZS50b2tlbixcbiAgICAgICAgICAgICAgICBpbnZpdGUudW5wYWlkX2ludm9pY2VzLFxuICAgICAgICAgICAgICAgIGludml0ZS51cGRhdGVkXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJldHVybiBpbnZpdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBpbnZpdGU7XG4gICAgICAgIH0pXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiBjdXJyZW50U3RhdGU7XG4gIH0pLFxuXG4gIC8vIFJlbW92ZSBtZW1iZXIgb3BlbiBhY3Rpdml0eVxuICBvbihyZW1vdmVNZW1iZXJPcGVuQWN0aXZpdHlBY3Rpb24sIChzdGF0ZTogQ2FsZW5kYXJTdGF0ZSwgeyBwYXlsb2FkIH06IHtwYXlsb2FkOiB7bWVtYmVySWQ6IHN0cmluZywgYWN0aXZpdHlJZDogc3RyaW5nfX0pID0+IHtcbiAgICBsZXQgY3VycmVudFN0YXRlID0ge1xuICAgICAgLi4uc3RhdGVcbiAgICB9O1xuXG4gICAgaWYgKHN0YXRlLmN1cnJlbnRNZW1iZXJPcGVuQWN0aXZpdHk/LnJlc3VsdD8uaWQgPT09IHBheWxvYWQuYWN0aXZpdHlJZCkge1xuICAgICAgY3VycmVudFN0YXRlLmN1cnJlbnRNZW1iZXJPcGVuQWN0aXZpdHkgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaWYgKGN1cnJlbnRTdGF0ZS5tZW1iZXJPcGVuQWN0aXZpdGllcz8udmFsdWU/LnJlc3VsdCkge1xuICAgICAgY29uc3QgZXhpc3RpbmdPcGVuQWN0aXZpdGllcyA9IGN1cnJlbnRTdGF0ZS5tZW1iZXJPcGVuQWN0aXZpdGllcy52YWx1ZS5yZXN1bHQuZ2V0KHBheWxvYWQubWVtYmVySWQpO1xuXG4gICAgICBpZiAoZXhpc3RpbmdPcGVuQWN0aXZpdGllcykge1xuICAgICAgICBjb25zdCB1cGRhdGVkT3BlbkFjdGl2aXRpZXMgPSBleGlzdGluZ09wZW5BY3Rpdml0aWVzLm1hcChcbiAgICAgICAgICAob3BlbkFjdGl2aXR5OiBPcGVuQWN0aXZpdHkpID0+IHtcbiAgICAgICAgICAgIGlmIChvcGVuQWN0aXZpdHkuaWQgPT09IHBheWxvYWQuYWN0aXZpdHlJZCAmJiBvcGVuQWN0aXZpdHkubWVtYmVyX2lkID09PSBwYXlsb2FkLm1lbWJlcklkKSB7XG4gICAgICAgICAgICAgIHJldHVybiBuZXcgT3BlbkFjdGl2aXR5KFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5pZCxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkuYWN0aXZpdHlfZ3JvdXBfaWQsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LmFjdGl2aXR5X3R5cGVfaWQsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LmNsdWJfaWQsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LmxvY2F0aW9uX2lkLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5tZW1iZXJfaWQsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LnRlYW1faWQsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LmFjdGl2aXR5X2xvY2F0aW9uLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5hY3Rpdml0eV90eXBlX25hbWUsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LmFsbG93X21heWJlLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5jYWxlbmRhcl9uYW1lLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5jb21tZW50X3JlcXVpcmVkLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5jcmVhdGVkLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5jdXJyZW50X251bV9hdHRlbmRhbnRzLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5kYXksXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LmRlZmF1bHRfZmVlLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5kZWZhdWx0X2ZlZV9pZCxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkuZGVzY3JpcHRpb24sXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LmVuZCxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkuZW5kX3RpbWUsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LmZpbGUsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lmhhc191bnBhaWRfaW52b2ljZXMsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lmludml0YXRpb25fdGV4dCxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkuaW52aXRlX2ZpcnN0X2RheXMsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lmludml0ZV9ncm91cHMsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lmludml0ZV9oaWRlX2JlZm9yZV9zZW50LFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5pbnZpdGVfbGFzdF9yZXNwb25zZV9kYXRlLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5pbnZpdGVfcmVtaW5kLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5pbnZpdGVfcmVtaW5kX3JlY2VpdmVycyxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkuaW52aXRlX3NlY29uZF9kYXlzLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5pbnZpdGVfc2V0dGluZ3MsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lmludml0ZWRfbWVtYmVycy5maWx0ZXIoKGludml0ZTogTWVtYmVyQWN0aXZpdHlJbnZpdGUpID0+IGludml0ZS5tZW1iZXJfaWQgIT09IHBheWxvYWQubWVtYmVySWQpLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5sYXN0X3Jlc3BvbnNlX2RhdGUsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LmxvY2F0aW9uX25hbWUsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lm1heF9udW1fYXR0ZW5kYW50cyxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkubWF4X251bV9hdHRlbmRhbnRzX3R5cGUsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lm1lZXRfdXBfcGxhY2UsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lm1lZXRfdXBfdGltZSxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkubWVldF91cF90aW1lX2Rpc3BsYXksXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lm1lZXRfdXBfdGltZV9zaG93LFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5tZW1iZXJfaWRzLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5tZW1iZXJfaW52b2ljZSxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkubWVtYmVyX25hbWUsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lm9wZW5fYWN0aXZpdHksXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lm9wdGlvbmFsX2ZlZXMsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lm9wdGlvbmFsX2ZlZV9yZXF1aXJlZCxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkub3B0aW9uYWxfZmVlX3R5cGUsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LnBheW1lbnRfbGluayxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkucHVibGljX3BheW1lbnRfbGluayxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkucXVlc3Rpb25zLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5yZXBlYXQsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LnJlcGVhdF9udW0sXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LnJlcGVhdF90b19kYXksXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LnJlcGVhdF90eXBlLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5zZXJ2aWNlX2ZlZSxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkuc2VydmljZV9mZWVfaWQsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LnNob3dfb3RoZXJfaW52aXRlZCxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkuc3RhcnQsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LnN0YXJ0X3RpbWUsXG4gICAgICAgICAgICAgICAgJ3dhaXRpbmcnLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS50aXRsZSxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkudW5wYWlkX2ludm9pY2VzLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS51cGRhdGVkLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS51c2VfaW52aXRlLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS51cGRhdGVfcmVwZWF0aW5nXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBvcGVuQWN0aXZpdHk7XG4gICAgICAgICAgfVxuICAgICAgICApO1xuXG4gICAgICAgIGN1cnJlbnRTdGF0ZS5tZW1iZXJPcGVuQWN0aXZpdGllcyA9IHtcbiAgICAgICAgICAuLi5jdXJyZW50U3RhdGUubWVtYmVyT3BlbkFjdGl2aXRpZXMsXG4gICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgIC4uLmN1cnJlbnRTdGF0ZS5tZW1iZXJPcGVuQWN0aXZpdGllcy52YWx1ZSxcbiAgICAgICAgICAgIHJlc3VsdDogbmV3IE1hcDxzdHJpbmcsIEFycmF5PE9wZW5BY3Rpdml0eT4+KGN1cnJlbnRTdGF0ZS5tZW1iZXJPcGVuQWN0aXZpdGllcy52YWx1ZS5yZXN1bHQpLnNldChwYXlsb2FkLm1lbWJlcklkLCB1cGRhdGVkT3BlbkFjdGl2aXRpZXMpXG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBjdXJyZW50U3RhdGVcbiAgfSksXG5cbiAgLy8gVXBkYXRlIFRlYW0gQWN0aXZpdHlcbiAgb24odXBkYXRlVGVhbUFjdGl2aXR5QWN0aW9uLCBzdGF0ZSA9PiAoeyAuLi5zdGF0ZSwgY3VycmVudFRlYW1BY3Rpdml0eTogcmV0cmlldmVTdGFydExvYWRpbmcoc3RhdGUuY3VycmVudFRlYW1BY3Rpdml0eSkgfSkpLFxuICBvbih1cGRhdGVUZWFtQWN0aXZpdHlGYWlsdXJlQWN0aW9uLCAoc3RhdGUsIHsgcGF5bG9hZCB9KSA9PiAoeyAuLi5zdGF0ZSwgY3VycmVudFRlYW1BY3Rpdml0eTogcmV0cmlldmVMb2FkRmFpbHVyZTxUZWFtQWN0aXZpdHlJbnRlcmZhY2U+KHBheWxvYWQpIH0pKSxcbiAgb24odXBkYXRlVGVhbUFjdGl2aXR5U3VjY2Vzc0FjdGlvbiwgKHN0YXRlLCB7IHBheWxvYWQgfSkgPT4ge1xuICAgIGlmIChzdGF0ZS5jdXJyZW50VGVhbUFjdGl2aXR5Py5yZXN1bHQgJiYgcGF5bG9hZC5pZCA9PT0gc3RhdGUuY3VycmVudFRlYW1BY3Rpdml0eS5yZXN1bHQuYWN0aXZpdHkuaWQpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBjdXJyZW50VGVhbUFjdGl2aXR5OiB7XG4gICAgICAgICAgLi4uc3RhdGUuY3VycmVudFRlYW1BY3Rpdml0eSxcbiAgICAgICAgICByZXN1bHQ6IHtcbiAgICAgICAgICAgIC4uLnN0YXRlLmN1cnJlbnRUZWFtQWN0aXZpdHkucmVzdWx0LFxuICAgICAgICAgICAgYWN0aXZpdHk6IHBheWxvYWRcbiAgICAgICAgICB9LFxuICAgICAgICAgIGxvYWRpbmc6IGZhbHNlXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBzdGF0ZTtcbiAgfSksXG5cbiAgLy8gVGVhbSBBY3Rpdml0eSBRdWVzdGlvblxuICBvbih1cGRhdGVUZWFtQWN0aXZpdHlRdWVzdGlvbkFjdGlvbiwgc3RhdGUgPT4gKHsgLi4uc3RhdGUsIGN1cnJlbnRUZWFtQWN0aXZpdHlRdWVzdGlvbjogcmV0cmlldmVTdGFydExvYWRpbmcoc3RhdGUuY3VycmVudFRlYW1BY3Rpdml0eVF1ZXN0aW9uKSB9KSksXG4gIG9uKHVwZGF0ZVRlYW1BY3Rpdml0eVF1ZXN0aW9uRmFpbHVyZUFjdGlvbiwgKHN0YXRlLCB7cGF5bG9hZH0pID0+ICh7Li4uc3RhdGUsIGN1cnJlbnRUZWFtQWN0aXZpdHlRdWVzdGlvbjogcmV0cmlldmVMb2FkRmFpbHVyZTxBY3Rpdml0eVF1ZXN0aW9uPihwYXlsb2FkKX0pKSxcbiAgb24odXBkYXRlVGVhbUFjdGl2aXR5UXVlc3Rpb25TdWNjZXNzQWN0aW9uLCAoc3RhdGUsIHtwYXlsb2FkfSkgPT4gKHsuLi5zdGF0ZSwgY3VycmVudFRlYW1BY3Rpdml0eVF1ZXN0aW9uOiByZXRyaWV2ZUxvYWRTdWNjZXNzKHBheWxvYWQpfSkpLFxuXG4gIC8vIFJlc2VuZCB0ZWFtIGFjdGl2aXR5IGludml0ZVxuICBvbihyZXNlbmRUZWFtQWN0aXZpdHlNZW1iZXJJbnZpdGVTdWNjZXNzQWN0aW9uLCAoc3RhdGU6IENhbGVuZGFyU3RhdGUsIHtwYXlsb2FkfToge3BheWxvYWQ6IEFjdGl2aXR5SW52aXRlfSkgPT4gdXBkYXRlVGVhbUFjdGl2aXR5SW52aXRlKHN0YXRlLCBwYXlsb2FkKSksXG5cbiAgLy8gVXBkYXRlIFRlYW0gYWN0aXZpdHkgaW52aXRlXG4gIG9uKHVwZGF0ZVRlYW1NZW1iZXJBY3Rpdml0eUludml0ZVN1Y2Nlc3NBY3Rpb24sIChzdGF0ZTogQ2FsZW5kYXJTdGF0ZSwge3BheWxvYWR9OiB7cGF5bG9hZDogTWVtYmVyQWN0aXZpdHlJbnZpdGV9KSA9PiB1cGRhdGVUZWFtQWN0aXZpdHlJbnZpdGUoc3RhdGUsIHBheWxvYWQpKSxcblxuICAvLyBEZWxldGUgVGVhbSBBY3Rpdml0eVxuICBvbihkZWxldGVUZWFtQWN0aXZpdHlTdWNjZXNzQWN0aW9uLCAoc3RhdGU6IENhbGVuZGFyU3RhdGUsIHtwYXlsb2FkfToge3BheWxvYWQ6IHN0cmluZ30pID0+IHtcbiAgICBsZXQgY3VycmVudFN0YXRlID0ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBjdXJyZW50VGVhbUFjdGl2aXR5OiB1bmRlZmluZWRcbiAgICB9O1xuXG4gICAgaWYgKGN1cnJlbnRTdGF0ZS50ZWFtRXZlbnRzPy52YWx1ZT8ucmVzdWx0cykge1xuICAgICAgY3VycmVudFN0YXRlLnRlYW1FdmVudHMgPSB7XG4gICAgICAgIC4uLmN1cnJlbnRTdGF0ZS50ZWFtRXZlbnRzLFxuICAgICAgICB2YWx1ZToge1xuICAgICAgICAgIC4uLmN1cnJlbnRTdGF0ZS50ZWFtRXZlbnRzLnZhbHVlLFxuICAgICAgICAgIHJlc3VsdHM6IGN1cnJlbnRTdGF0ZS50ZWFtRXZlbnRzLnZhbHVlLnJlc3VsdHMuZmlsdGVyKChldmVudDogRXZlbnQpID0+IGV2ZW50LmlkICE9PSBwYXlsb2FkKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGN1cnJlbnRTdGF0ZTtcbiAgfSksXG5cbiAgb24oZGVsZXRlVGVhbUFjdGl2aXR5UXVlc3Rpb25TdWNjZXNzQWN0aW9uLCAoc3RhdGU6IENhbGVuZGFyU3RhdGUsIHtwYXlsb2FkfToge3BheWxvYWQ6IHt0ZWFtSWQ6IHN0cmluZywgcXVlc3Rpb25JZDogc3RyaW5nfX0pID0+IHtcbiAgICBsZXQgY3VycmVudFN0YXRlID0ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBjdXJyZW50VGVhbUFjdGl2aXR5UXVlc3Rpb246IHVuZGVmaW5lZFxuICAgIH07XG5cbiAgICBpZiAoY3VycmVudFN0YXRlLmFjdGl2aXR5UXVlc3Rpb25zICYmIHN0YXRlLmFjdGl2aXR5UXVlc3Rpb25zPy5bcGF5bG9hZC50ZWFtSWRdKSB7XG4gICAgICBjdXJyZW50U3RhdGUuYWN0aXZpdHlRdWVzdGlvbnNbcGF5bG9hZC50ZWFtSWRdID0ge1xuICAgICAgICAuLi5zdGF0ZS5hY3Rpdml0eVF1ZXN0aW9uc1twYXlsb2FkLnRlYW1JZF0sXG4gICAgICAgIHJlc3VsdHM6IHN0YXRlLmFjdGl2aXR5UXVlc3Rpb25zW3BheWxvYWQudGVhbUlkXS5yZXN1bHRzLmZpbHRlcigoYWN0aXZpdHlRdWVzdGlvbjogQWN0aXZpdHlRdWVzdGlvbikgPT4gYWN0aXZpdHlRdWVzdGlvbi5pZCAhPT0gcGF5bG9hZC5xdWVzdGlvbklkKVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBjdXJyZW50U3RhdGU7XG4gIH0pLFxuXG4gIC8vIENyZWF0ZSBUZWFtIEFjdGl2aXR5XG4gIG9uKGNyZWF0ZVRlYW1BY3Rpdml0eUFjdGlvbiwgc3RhdGUgPT4gKHsgLi4uc3RhdGUsIGN1cnJlbnRUZWFtQWN0aXZpdHk6IHJldHJpZXZlU3RhcnRMb2FkaW5nKHN0YXRlLmN1cnJlbnRUZWFtQWN0aXZpdHkpIH0pKSxcblxuICAvLyBGYWlsdXJlIEhhbmRsZXJzXG4gIG9uKGNyZWF0ZVRlYW1BY3Rpdml0eUZhaWx1cmVBY3Rpb24sIChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+ICh7IC4uLnN0YXRlLCBjdXJyZW50VGVhbUFjdGl2aXR5OiByZXRyaWV2ZUxvYWRGYWlsdXJlPFRlYW1BY3Rpdml0eUludGVyZmFjZT4ocGF5bG9hZCkgfSkpLFxuKTtcbiJdfQ==
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createReducer, on } from '@ngrx/store';
|
|
2
2
|
import { initialTeamState } from '../state';
|
|
3
|
-
import { clearCurrentExtraMemberAction, clearCurrentMemberAction, clearCurrentTeamAction, clearMemberTeamsAction, clearStoreAction, deleteTeamLeaderMemberSuccessAction, listGenerallyAvailableTeamsAction, listGenerallyAvailableTeamsFailureAction, listGenerallyAvailableTeamsSuccessAction, listMemberLeaderExtraMembersAction, listMemberLeaderExtraMembersFailureAction, listMemberLeaderExtraMembersSuccessAction, listMemberLeaderMembersAction, listMemberLeaderMembersFailureAction, listMemberLeaderMembersSuccessAction, listMemberTeamsAction, listMemberTeamsFailureAction, listMemberTeamsSuccessAction, listTeamLeaderExtraMembersAction, listTeamLeaderExtraMembersFailureAction, listTeamLeaderExtraMembersSuccessAction, listTeamLeaderMembersAction, listTeamLeaderMembersFailureAction, listTeamLeaderMembersSuccessAction, retrieveMemberLeaderExtraMemberAction, retrieveMemberLeaderExtraMemberFailureAction, retrieveMemberLeaderExtraMemberSuccessAction, retrieveMemberLeaderGroupAction, retrieveMemberLeaderGroupFailureAction, retrieveMemberLeaderGroupSuccessAction, retrieveMemberLeaderMemberAction, retrieveMemberLeaderMemberFailureAction, retrieveMemberLeaderMemberSuccessAction, retrieveTeamLeaderExtraMemberFailureAction, retrieveTeamLeaderExtraMemberSuccessAction, retrieveTeamLeaderGroupAction, retrieveTeamLeaderGroupFailureAction, retrieveTeamLeaderGroupSuccessAction, retrieveTeamLeaderMemberAction, retrieveTeamLeaderMemberFailureAction, retrieveTeamLeaderMemberSuccessAction, updateTeamLeaderMemberSuccessAction } from '../actions';
|
|
3
|
+
import { clearCurrentExtraMemberAction, clearCurrentMemberAction, clearCurrentTeamAction, clearMemberTeamsAction, clearStoreAction, deleteTeamLeaderMemberSuccessAction, listGenerallyAvailableTeamsAction, listGenerallyAvailableTeamsFailureAction, listGenerallyAvailableTeamsSuccessAction, listLeaderNotificationsAction, listLeaderNotificationsFailureAction, listLeaderNotificationsSuccessAction, listMemberLeaderExtraMembersAction, listMemberLeaderExtraMembersFailureAction, listMemberLeaderExtraMembersSuccessAction, listMemberLeaderMembersAction, listMemberLeaderMembersFailureAction, listMemberLeaderMembersSuccessAction, listMemberTeamsAction, listMemberTeamsFailureAction, listMemberTeamsSuccessAction, listTeamLeaderExtraMembersAction, listTeamLeaderExtraMembersFailureAction, listTeamLeaderExtraMembersSuccessAction, listTeamLeaderMembersAction, listTeamLeaderMembersFailureAction, listTeamLeaderMembersSuccessAction, retrieveMemberLeaderExtraMemberAction, retrieveMemberLeaderExtraMemberFailureAction, retrieveMemberLeaderExtraMemberSuccessAction, retrieveMemberLeaderGroupAction, retrieveMemberLeaderGroupFailureAction, retrieveMemberLeaderGroupSuccessAction, retrieveMemberLeaderMemberAction, retrieveMemberLeaderMemberFailureAction, retrieveMemberLeaderMemberSuccessAction, retrieveTeamLeaderExtraMemberFailureAction, retrieveTeamLeaderExtraMemberSuccessAction, retrieveTeamLeaderGroupAction, retrieveTeamLeaderGroupFailureAction, retrieveTeamLeaderGroupSuccessAction, retrieveTeamLeaderMemberAction, retrieveTeamLeaderMemberFailureAction, retrieveTeamLeaderMemberSuccessAction, updateTeamLeaderMemberSuccessAction } from '../actions';
|
|
4
4
|
import { listLoadFailure, listLoadSuccess, listStartLoading, retrieveLoadFailure, retrieveLoadSuccess, retrieveStartLoading } from './reducer-helpers';
|
|
5
5
|
export const teamReducer = createReducer(initialTeamState, on(clearStoreAction, () => initialTeamState), on(clearMemberTeamsAction, (state) => ({ ...state, memberTeams: undefined })), on(clearCurrentTeamAction, (state) => ({ ...state, currentTeam: undefined })), on(clearCurrentMemberAction, (state) => ({ ...state, currentMember: undefined })), on(clearCurrentExtraMemberAction, (state) => ({ ...state, currentExtraMember: undefined })), on(deleteTeamLeaderMemberSuccessAction, (state, { payload }) => {
|
|
6
6
|
if (state.membersTeamId === payload.teamId || state.currentMember?.result?.id === payload.id) {
|
|
@@ -26,6 +26,15 @@ export const teamReducer = createReducer(initialTeamState, on(clearStoreAction,
|
|
|
26
26
|
})), on(listGenerallyAvailableTeamsSuccessAction, (state, { payload }) => ({
|
|
27
27
|
...state,
|
|
28
28
|
generallyAvailableTeams: listLoadSuccess(payload)
|
|
29
|
+
})), on(listLeaderNotificationsAction, (state) => ({
|
|
30
|
+
...state,
|
|
31
|
+
leaderNotifications: listStartLoading(state.leaderNotifications)
|
|
32
|
+
})), on(listLeaderNotificationsFailureAction, (state, { payload }) => ({
|
|
33
|
+
...state,
|
|
34
|
+
leaderNotifications: listLoadFailure(payload)
|
|
35
|
+
})), on(listLeaderNotificationsSuccessAction, (state, { payload }) => ({
|
|
36
|
+
...state,
|
|
37
|
+
leaderNotifications: listLoadSuccess(payload)
|
|
29
38
|
})), on(listMemberTeamsAction, (state) => ({ ...state, memberTeams: retrieveStartLoading(state.memberTeams) })), on(listMemberTeamsFailureAction, (state, { payload }) => ({
|
|
30
39
|
...state,
|
|
31
40
|
memberTeams: retrieveLoadFailure(payload)
|
|
@@ -83,4 +92,4 @@ export const teamReducer = createReducer(initialTeamState, on(clearStoreAction,
|
|
|
83
92
|
}
|
|
84
93
|
return state;
|
|
85
94
|
}));
|
|
86
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVhbS5yZWR1Y2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS1hY2Nlc3Mvc3JjL2xpYi9zdG9yZS9yZWR1Y2Vycy90ZWFtLnJlZHVjZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDaEQsT0FBTyxFQUFFLGdCQUFnQixFQUFhLE1BQU0sVUFBVSxDQUFDO0FBQ3ZELE9BQU8sRUFDTCw2QkFBNkIsRUFDN0Isd0JBQXdCLEVBQ3hCLHNCQUFzQixFQUN0QixzQkFBc0IsRUFDdEIsZ0JBQWdCLEVBQ2hCLG1DQUFtQyxFQUNuQyxpQ0FBaUMsRUFDakMsd0NBQXdDLEVBQ3hDLHdDQUF3QyxFQUN4QyxrQ0FBa0MsRUFDbEMseUNBQXlDLEVBQ3pDLHlDQUF5QyxFQUN6Qyw2QkFBNkIsRUFDN0Isb0NBQW9DLEVBQ3BDLG9DQUFvQyxFQUNwQyxxQkFBcUIsRUFDckIsNEJBQTRCLEVBQzVCLDRCQUE0QixFQUM1QixnQ0FBZ0MsRUFDaEMsdUNBQXVDLEVBQ3ZDLHVDQUF1QyxFQUN2QywyQkFBMkIsRUFDM0Isa0NBQWtDLEVBQ2xDLGtDQUFrQyxFQUNsQyxxQ0FBcUMsRUFDckMsNENBQTRDLEVBQzVDLDRDQUE0QyxFQUM1QywrQkFBK0IsRUFDL0Isc0NBQXNDLEVBQ3RDLHNDQUFzQyxFQUN0QyxnQ0FBZ0MsRUFDaEMsdUNBQXVDLEVBQ3ZDLHVDQUF1QyxFQUN2QywwQ0FBMEMsRUFDMUMsMENBQTBDLEVBQzFDLDZCQUE2QixFQUM3QixvQ0FBb0MsRUFDcEMsb0NBQW9DLEVBQ3BDLDhCQUE4QixFQUM5QixxQ0FBcUMsRUFDckMscUNBQXFDLEVBQ3JDLG1DQUFtQyxFQUNwQyxNQUFNLFlBQVksQ0FBQztBQUNwQixPQUFPLEVBQ0wsZUFBZSxFQUNmLGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsbUJBQW1CLEVBQ25C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QUM7UUFFRCxJQUFJLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUM7WUFDOUIsUUFBUSxDQUFDLE9BQU8sR0FBRztnQkFDakIsR0FBRyxRQUFRLENBQUMsT0FBTztnQkFDbkIsT0FBTyxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQy9DLE1BQU0sQ0FBQyxFQUFFLEtBQUssT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQzVDO2FBQ0YsQ0FBQztRQUNKLENBQUM7UUFFRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDLENBQUMsQ0FDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlUmVkdWNlciwgb24gfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBpbml0aWFsVGVhbVN0YXRlLCBUZWFtU3RhdGUgfSBmcm9tICcuLi9zdGF0ZSc7XG5pbXBvcnQge1xuICBjbGVhckN1cnJlbnRFeHRyYU1lbWJlckFjdGlvbixcbiAgY2xlYXJDdXJyZW50TWVtYmVyQWN0aW9uLFxuICBjbGVhckN1cnJlbnRUZWFtQWN0aW9uLFxuICBjbGVhck1lbWJlclRlYW1zQWN0aW9uLFxuICBjbGVhclN0b3JlQWN0aW9uLFxuICBkZWxldGVUZWFtTGVhZGVyTWVtYmVyU3VjY2Vzc0FjdGlvbixcbiAgbGlzdEdlbmVyYWxseUF2YWlsYWJsZVRlYW1zQWN0aW9uLFxuICBsaXN0R2VuZXJhbGx5QXZhaWxhYmxlVGVhbXNGYWlsdXJlQWN0aW9uLFxuICBsaXN0R2VuZXJhbGx5QXZhaWxhYmxlVGVhbXNTdWNjZXNzQWN0aW9uLFxuICBsaXN0TWVtYmVyTGVhZGVyRXh0cmFNZW1iZXJzQWN0aW9uLFxuICBsaXN0TWVtYmVyTGVhZGVyRXh0cmFNZW1iZXJzRmFpbHVyZUFjdGlvbixcbiAgbGlzdE1lbWJlckxlYWRlckV4dHJhTWVtYmVyc1N1Y2Nlc3NBY3Rpb24sXG4gIGxpc3RNZW1iZXJMZWFkZXJNZW1iZXJzQWN0aW9uLFxuICBsaXN0TWVtYmVyTGVhZGVyTWVtYmVyc0ZhaWx1cmVBY3Rpb24sXG4gIGxpc3RNZW1iZXJMZWFkZXJNZW1iZXJzU3VjY2Vzc0FjdGlvbixcbiAgbGlzdE1lbWJlclRlYW1zQWN0aW9uLFxuICBsaXN0TWVtYmVyVGVhbXNGYWlsdXJlQWN0aW9uLFxuICBsaXN0TWVtYmVyVGVhbXNTdWNjZXNzQWN0aW9uLFxuICBsaXN0VGVhbUxlYWRlckV4dHJhTWVtYmVyc0FjdGlvbixcbiAgbGlzdFRlYW1MZWFkZXJFeHRyYU1lbWJlcnNGYWlsdXJlQWN0aW9uLFxuICBsaXN0VGVhbUxlYWRlckV4dHJhTWVtYmVyc1N1Y2Nlc3NBY3Rpb24sXG4gIGxpc3RUZWFtTGVhZGVyTWVtYmVyc0FjdGlvbixcbiAgbGlzdFRlYW1MZWFkZXJNZW1iZXJzRmFpbHVyZUFjdGlvbixcbiAgbGlzdFRlYW1MZWFkZXJNZW1iZXJzU3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVNZW1iZXJMZWFkZXJFeHRyYU1lbWJlckFjdGlvbixcbiAgcmV0cmlldmVNZW1iZXJMZWFkZXJFeHRyYU1lbWJlckZhaWx1cmVBY3Rpb24sXG4gIHJldHJpZXZlTWVtYmVyTGVhZGVyRXh0cmFNZW1iZXJTdWNjZXNzQWN0aW9uLFxuICByZXRyaWV2ZU1lbWJlckxlYWRlckdyb3VwQWN0aW9uLFxuICByZXRyaWV2ZU1lbWJlckxlYWRlckdyb3VwRmFpbHVyZUFjdGlvbixcbiAgcmV0cmlldmVNZW1iZXJMZWFkZXJHcm91cFN1Y2Nlc3NBY3Rpb24sXG4gIHJldHJpZXZlTWVtYmVyTGVhZGVyTWVtYmVyQWN0aW9uLFxuICByZXRyaWV2ZU1lbWJlckxlYWRlck1lbWJlckZhaWx1cmVBY3Rpb24sXG4gIHJldHJpZXZlTWVtYmVyTGVhZGVyTWVtYmVyU3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVUZWFtTGVhZGVyRXh0cmFNZW1iZXJGYWlsdXJlQWN0aW9uLFxuICByZXRyaWV2ZVRlYW1MZWFkZXJFeHRyYU1lbWJlclN1Y2Nlc3NBY3Rpb24sXG4gIHJldHJpZXZlVGVhbUxlYWRlckdyb3VwQWN0aW9uLFxuICByZXRyaWV2ZVRlYW1MZWFkZXJHcm91cEZhaWx1cmVBY3Rpb24sXG4gIHJldHJpZXZlVGVhbUxlYWRlckdyb3VwU3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVUZWFtTGVhZGVyTWVtYmVyQWN0aW9uLFxuICByZXRyaWV2ZVRlYW1MZWFkZXJNZW1iZXJGYWlsdXJlQWN0aW9uLFxuICByZXRyaWV2ZVRlYW1MZWFkZXJNZW1iZXJTdWNjZXNzQWN0aW9uLFxuICB1cGRhdGVUZWFtTGVhZGVyTWVtYmVyU3VjY2Vzc0FjdGlvblxufSBmcm9tICcuLi9hY3Rpb25zJztcbmltcG9ydCB7XG4gIGxpc3RMb2FkRmFpbHVyZSxcbiAgbGlzdExvYWRTdWNjZXNzLFxuICBsaXN0U3RhcnRMb2FkaW5nLFxuICByZXRyaWV2ZUxvYWRGYWlsdXJlLFxuICByZXRyaWV2ZUxvYWRTdWNjZXNzLFxuICByZXRyaWV2ZVN0YXJ0TG9hZGluZ1xufSBmcm9tICcuL3JlZHVjZXItaGVscGVycyc7XG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEFjdGl2aXR5RXh0cmFNZW1iZXIsIE1lbWJlclRlYW0sIE1lbWJlclRlYW1UaHJvdWdoLCBTZWFyY2hUZWFtIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcblxuZXhwb3J0IGNvbnN0IHRlYW1SZWR1Y2VyID0gY3JlYXRlUmVkdWNlcihcbiAgaW5pdGlhbFRlYW1TdGF0ZSxcbiAgb24oY2xlYXJTdG9yZUFjdGlvbiwgKCkgPT4gaW5pdGlhbFRlYW1TdGF0ZSksXG4gIG9uKGNsZWFyTWVtYmVyVGVhbXNBY3Rpb24sIChzdGF0ZTogVGVhbVN0YXRlKSA9PiAoey4uLnN0YXRlLCBtZW1iZXJUZWFtczogdW5kZWZpbmVkfSkpLFxuICBvbihjbGVhckN1cnJlbnRUZWFtQWN0aW9uLCAoc3RhdGU6IFRlYW1TdGF0ZSkgPT4gKHsuLi5zdGF0ZSwgY3VycmVudFRlYW06IHVuZGVmaW5lZH0pKSxcbiAgb24oY2xlYXJDdXJyZW50TWVtYmVyQWN0aW9uLCAoc3RhdGU6IFRlYW1TdGF0ZSkgPT4gKHsuLi5zdGF0ZSwgY3VycmVudE1lbWJlcjogdW5kZWZpbmVkfSkpLFxuICBvbihjbGVhckN1cnJlbnRFeHRyYU1lbWJlckFjdGlvbiwgKHN0YXRlOiBUZWFtU3RhdGUpID0+ICh7Li4uc3RhdGUsIGN1cnJlbnRFeHRyYU1lbWJlcjogdW5kZWZpbmVkfSkpLFxuICBvbihkZWxldGVUZWFtTGVhZGVyTWVtYmVyU3VjY2Vzc0FjdGlvbiwgKHN0YXRlOiBUZWFtU3RhdGUsIHtwYXlsb2FkfToge3BheWxvYWQ6IHt0ZWFtSWQ6IHN0cmluZywgaWQ6IHN0cmluZ319KSA9PiB7XG4gICAgaWYgKHN0YXRlLm1lbWJlcnNUZWFtSWQgPT09IHBheWxvYWQudGVhbUlkIHx8IHN0YXRlLmN1cnJlbnRNZW1iZXI/LnJlc3VsdD8uaWQgPT09IHBheWxvYWQuaWQpIHtcbiAgICAgIGxldCBuZXdTdGF0ZSA9IHsgLi4uc3RhdGUgfTtcblxuICAgICAgaWYgKHN0YXRlLm1lbWJlcnNUZWFtSWQgPT09IHBheWxvYWQudGVhbUlkICYmIG5ld1N0YXRlLm1lbWJlcnMpIHtcbiAgICAgICAgbmV3U3RhdGUubWVtYmVycyA9IHtcbiAgICAgICAgICAuLi5uZXdTdGF0ZS5tZW1iZXJzLFxuICAgICAgICAgIHJlc3VsdHM6IG5ld1N0YXRlLm1lbWJlcnMucmVzdWx0cy5maWx0ZXIoXG4gICAgICAgICAgICAobWVtYmVyOiBNZW1iZXJUZWFtVGhyb3VnaCkgPT4gbWVtYmVyLmlkICE9PSBwYXlsb2FkLmlkXG4gICAgICAgICAgKSxcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgaWYgKG5ld1N0YXRlLmN1cnJlbnRNZW1iZXI/LnJlc3VsdD8uaWQgPT09IHBheWxvYWQuaWQpIHtcbiAgICAgICAgbmV3U3RhdGUuY3VycmVudE1lbWJlciA9IHVuZGVmaW5lZDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG5ld1N0YXRlO1xuICAgIH1cblxuICAgIHJldHVybiBzdGF0ZTtcbiAgfSksXG4gIG9uKGxpc3RHZW5lcmFsbHlBdmFpbGFibGVUZWFtc0FjdGlvbiwgKHN0YXRlOiBUZWFtU3RhdGUpID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgZ2VuZXJhbGx5QXZhaWxhYmxlVGVhbXM6IGxpc3RTdGFydExvYWRpbmc8U2VhcmNoVGVhbT4oc3RhdGUuZ2VuZXJhbGx5QXZhaWxhYmxlVGVhbXMpXG4gIH0pKSxcbiAgb24obGlzdEdlbmVyYWxseUF2YWlsYWJsZVRlYW1zRmFpbHVyZUFjdGlvbiwgKHN0YXRlOiBUZWFtU3RhdGUsIHtwYXlsb2FkfTogeyBwYXlsb2FkOiBIdHRwRXJyb3JSZXNwb25zZSB9KSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIGdlbmVyYWxseUF2YWlsYWJsZVRlYW1zOiBsaXN0TG9hZEZhaWx1cmU8U2VhcmNoVGVhbT4ocGF5bG9hZClcbiAgfSkpLFxuICBvbihsaXN0R2VuZXJhbGx5QXZhaWxhYmxlVGVhbXNTdWNjZXNzQWN0aW9uLCAoc3RhdGU6IFRlYW1TdGF0ZSwge3BheWxvYWR9OiB7IHBheWxvYWQ6IEFycmF5PFNlYXJjaFRlYW0+IH0pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgZ2VuZXJhbGx5QXZhaWxhYmxlVGVhbXM6IGxpc3RMb2FkU3VjY2VzczxTZWFyY2hUZWFtPihwYXlsb2FkKVxuICB9KSksXG4gIG9uKGxpc3RNZW1iZXJUZWFtc0FjdGlvbiwgKHN0YXRlOiBUZWFtU3RhdGUpID0+ICh7Li4uc3RhdGUsIG1lbWJlclRlYW1zOiByZXRyaWV2ZVN0YXJ0TG9hZGluZyhzdGF0ZS5tZW1iZXJUZWFtcyl9KSksXG4gIG9uKGxpc3RNZW1iZXJUZWFtc0ZhaWx1cmVBY3Rpb24sIChzdGF0ZTogVGVhbVN0YXRlLCB7cGF5bG9hZH06IHsgcGF5bG9hZDogSHR0cEVycm9yUmVzcG9uc2UgfSkgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBtZW1iZXJUZWFtczogcmV0cmlldmVMb2FkRmFpbHVyZTxNYXA8c3RyaW5nLCBBcnJheTxTZWFyY2hUZWFtPj4+KHBheWxvYWQpXG4gIH0pKSxcbiAgb24obGlzdE1lbWJlclRlYW1zU3VjY2Vzc0FjdGlvbiwgKHN0YXRlOiBUZWFtU3RhdGUsIHtwYXlsb2FkfToge1xuICAgIHBheWxvYWQ6IE1hcDxzdHJpbmcsIEFycmF5PFNlYXJjaFRlYW0+PlxuICB9KSA9PiAoey4uLnN0YXRlLCBtZW1iZXJUZWFtczogcmV0cmlldmVMb2FkU3VjY2VzcyhwYXlsb2FkKX0pKSxcbiAgb24obGlzdE1lbWJlckxlYWRlckV4dHJhTWVtYmVyc0FjdGlvbiwgKHN0YXRlOiBUZWFtU3RhdGUsIHtwYXlsb2FkfToge1xuICAgIHBheWxvYWQ6IHsgbWVtYmVySWQ6IHN0cmluZywgaWQ6IHN0cmluZywgcTogc3RyaW5nIH1cbiAgfSkgPT4gKHsuLi5zdGF0ZSwgZXh0cmFNZW1iZXJzOiBsaXN0U3RhcnRMb2FkaW5nKHN0YXRlLmV4dHJhTWVtYmVycyksIGV4dHJhTWVtYmVyc1RlYW1JZDogcGF5bG9hZC5pZH0pKSxcbiAgb24obGlzdE1lbWJlckxlYWRlckV4dHJhTWVtYmVyc0ZhaWx1cmVBY3Rpb24sIChzdGF0ZTogVGVhbVN0YXRlLCB7cGF5bG9hZH06IHtcbiAgICBwYXlsb2FkOiBIdHRwRXJyb3JSZXNwb25zZVxuICB9KSA9PiAoey4uLnN0YXRlLCBleHRyYU1lbWJlcnM6IGxpc3RMb2FkRmFpbHVyZTxBY3Rpdml0eUV4dHJhTWVtYmVyPihwYXlsb2FkKX0pKSxcbiAgb24obGlzdE1lbWJlckxlYWRlckV4dHJhTWVtYmVyc1N1Y2Nlc3NBY3Rpb24sIChzdGF0ZTogVGVhbVN0YXRlLCB7cGF5bG9hZH06IHtcbiAgICBwYXlsb2FkOiBBcnJheTxBY3Rpdml0eUV4dHJhTWVtYmVyPlxuICB9KSA9PiAoey4uLnN0YXRlLCBleHRyYU1lbWJlcnM6IGxpc3RMb2FkU3VjY2VzcyhwYXlsb2FkKX0pKSxcbiAgb24obGlzdE1lbWJlckxlYWRlck1lbWJlcnNBY3Rpb24sIChzdGF0ZTogVGVhbVN0YXRlLCB7cGF5bG9hZH06IHsgcGF5bG9hZDogeyBpZDogc3RyaW5nLCBxOiBzdHJpbmcgfSB9KSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIG1lbWJlcnM6IGxpc3RTdGFydExvYWRpbmcoc3RhdGUubWVtYmVycyksXG4gICAgbWVtYmVyc1RlYW1JZDogcGF5bG9hZC5pZFxuICB9KSksXG4gIG9uKGxpc3RNZW1iZXJMZWFkZXJNZW1iZXJzRmFpbHVyZUFjdGlvbiwgKHN0YXRlOiBUZWFtU3RhdGUsIHtwYXlsb2FkfTogeyBwYXlsb2FkOiBIdHRwRXJyb3JSZXNwb25zZSB9KSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIG1lbWJlcnM6IGxpc3RMb2FkRmFpbHVyZTxNZW1iZXJUZWFtVGhyb3VnaD4ocGF5bG9hZClcbiAgfSkpLFxuICBvbihsaXN0TWVtYmVyTGVhZGVyTWVtYmVyc1N1Y2Nlc3NBY3Rpb24sIChzdGF0ZTogVGVhbVN0YXRlLCB7cGF5bG9hZH06IHtcbiAgICBwYXlsb2FkOiBBcnJheTxNZW1iZXJUZWFtVGhyb3VnaD5cbiAgfSkgPT4gKHsuLi5zdGF0ZSwgbWVtYmVyczogbGlzdExvYWRTdWNjZXNzKHBheWxvYWQpfSkpLFxuICBvbihsaXN0VGVhbUxlYWRlckV4dHJhTWVtYmVyc0FjdGlvbiwgKHN0YXRlOiBUZWFtU3RhdGUsIHtwYXlsb2FkfTogeyBwYXlsb2FkOiB7IHRlYW1JZDogc3RyaW5nLCBxOiBzdHJpbmcgfSB9KSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIGV4dHJhTWVtYmVyczogbGlzdFN0YXJ0TG9hZGluZyhzdGF0ZS5leHRyYU1lbWJlcnMpLFxuICAgIGV4dHJhTWVtYmVyc1RlYW1JZDogcGF5bG9hZC50ZWFtSWRcbiAgfSkpLFxuICBvbihsaXN0VGVhbUxlYWRlckV4dHJhTWVtYmVyc0ZhaWx1cmVBY3Rpb24sIChzdGF0ZTogVGVhbVN0YXRlLCB7cGF5bG9hZH06IHtcbiAgICBwYXlsb2FkOiBIdHRwRXJyb3JSZXNwb25zZVxuICB9KSA9PiAoey4uLnN0YXRlLCBleHRyYU1lbWJlcnM6IGxpc3RMb2FkRmFpbHVyZTxBY3Rpdml0eUV4dHJhTWVtYmVyPihwYXlsb2FkLmVycm9yKX0pKSxcbiAgb24obGlzdFRlYW1MZWFkZXJFeHRyYU1lbWJlcnNTdWNjZXNzQWN0aW9uLCAoc3RhdGU6IFRlYW1TdGF0ZSwge3BheWxvYWR9OiB7XG4gICAgcGF5bG9hZDogeyB0ZWFtSWQ6IHN0cmluZywgcmVzdWx0czogQXJyYXk8QWN0aXZpdHlFeHRyYU1lbWJlcj4gfVxuICB9KSA9PiAoey4uLnN0YXRlLCBleHRyYU1lbWJlcnM6IGxpc3RMb2FkU3VjY2VzcyhwYXlsb2FkLnJlc3VsdHMpfSkpLFxuICBvbihsaXN0VGVhbUxlYWRlck1lbWJlcnNBY3Rpb24sIChzdGF0ZTogVGVhbVN0YXRlLCB7cGF5bG9hZH06IHtcbiAgICBwYXlsb2FkOiB7IHRlYW1JZDogc3RyaW5nLCBxOiBzdHJpbmcgfVxuICB9KSA9PiAoey4uLnN0YXRlLCBtZW1iZXJzOiBsaXN0U3RhcnRMb2FkaW5nKHN0YXRlLm1lbWJlcnMpLCBtZW1iZXJzVGVhbUlkOiBwYXlsb2FkLnRlYW1JZH0pKSxcbiAgb24obGlzdFRlYW1MZWFkZXJNZW1iZXJzRmFpbHVyZUFjdGlvbiwgKHN0YXRlOiBUZWFtU3RhdGUsIHtwYXlsb2FkfTogeyBwYXlsb2FkOiBIdHRwRXJyb3JSZXNwb25zZSB9KSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIG1lbWJlcnM6IGxpc3RMb2FkRmFpbHVyZTxNZW1iZXJUZWFtVGhyb3VnaD4ocGF5bG9hZC5lcnJvcilcbiAgfSkpLFxuICBvbihsaXN0VGVhbUxlYWRlck1lbWJlcnNTdWNjZXNzQWN0aW9uLCAoc3RhdGU6IFRlYW1TdGF0ZSwge3BheWxvYWR9OiB7XG4gICAgcGF5bG9hZDogQXJyYXk8TWVtYmVyVGVhbVRocm91Z2g+XG4gIH0pID0+ICh7Li4uc3RhdGUsIG1lbWJlcnM6IGxpc3RMb2FkU3VjY2VzcyhwYXlsb2FkKX0pKSxcbiAgb24ocmV0cmlldmVNZW1iZXJMZWFkZXJHcm91cEFjdGlvbiwgKHN0YXRlOiBUZWFtU3RhdGUpID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgY3VycmVudFRlYW06IHJldHJpZXZlU3RhcnRMb2FkaW5nKHN0YXRlLmN1cnJlbnRUZWFtKVxuICB9KSksXG4gIG9uKHJldHJpZXZlTWVtYmVyTGVhZGVyR3JvdXBGYWlsdXJlQWN0aW9uLCAoc3RhdGU6IFRlYW1TdGF0ZSwge3BheWxvYWR9OiB7XG4gICAgcGF5bG9hZDogSHR0cEVycm9yUmVzcG9uc2VcbiAgfSkgPT4gKHsuLi5zdGF0ZSwgY3VycmVudFRlYW06IHJldHJpZXZlTG9hZEZhaWx1cmU8TWVtYmVyVGVhbT4ocGF5bG9hZCl9KSksXG4gIG9uKHJldHJpZXZlTWVtYmVyTGVhZGVyR3JvdXBTdWNjZXNzQWN0aW9uLCAoc3RhdGU6IFRlYW1TdGF0ZSwge3BheWxvYWR9OiB7IHBheWxvYWQ6IE1lbWJlclRlYW0gfSkgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBjdXJyZW50VGVhbTogcmV0cmlldmVMb2FkU3VjY2VzcyhwYXlsb2FkKVxuICB9KSksXG4gIG9uKHJldHJpZXZlVGVhbUxlYWRlckdyb3VwQWN0aW9uLCAoc3RhdGU6IFRlYW1TdGF0ZSkgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBjdXJyZW50VGVhbTogcmV0cmlldmVTdGFydExvYWRpbmcoc3RhdGUuY3VycmVudFRlYW0pXG4gIH0pKSxcbiAgb24ocmV0cmlldmVUZWFtTGVhZGVyR3JvdXBGYWlsdXJlQWN0aW9uLCAoc3RhdGU6IFRlYW1TdGF0ZSwge3BheWxvYWR9OiB7IHBheWxvYWQ6IEh0dHBFcnJvclJlc3BvbnNlIH0pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgY3VycmVudFRlYW06IHJldHJpZXZlTG9hZEZhaWx1cmU8TWVtYmVyVGVhbT4ocGF5bG9hZClcbiAgfSkpLFxuICBvbihyZXRyaWV2ZVRlYW1MZWFkZXJHcm91cFN1Y2Nlc3NBY3Rpb24sIChzdGF0ZTogVGVhbVN0YXRlLCB7cGF5bG9hZH06IHsgcGF5bG9hZDogTWVtYmVyVGVhbSB9KSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIGN1cnJlbnRUZWFtOiByZXRyaWV2ZUxvYWRTdWNjZXNzKHBheWxvYWQpXG4gIH0pKSxcbiAgb24ocmV0cmlldmVNZW1iZXJMZWFkZXJNZW1iZXJBY3Rpb24sIHJldHJpZXZlVGVhbUxlYWRlck1lbWJlckFjdGlvbiwgKHN0YXRlOiBUZWFtU3RhdGUpID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgY3VycmVudE1lbWJlcjogcmV0cmlldmVTdGFydExvYWRpbmcoc3RhdGUuY3VycmVudE1lbWJlcilcbiAgfSkpLFxuICBvbihyZXRyaWV2ZU1lbWJlckxlYWRlck1lbWJlckZhaWx1cmVBY3Rpb24sIHJldHJpZXZlVGVhbUxlYWRlck1lbWJlckZhaWx1cmVBY3Rpb24sIChzdGF0ZTogVGVhbVN0YXRlLCB7cGF5bG9hZH06IHtcbiAgICBwYXlsb2FkOiBIdHRwRXJyb3JSZXNwb25zZVxuICB9KSA9PiAoey4uLnN0YXRlLCBjdXJyZW50TWVtYmVyOiByZXRyaWV2ZUxvYWRGYWlsdXJlPE1lbWJlclRlYW1UaHJvdWdoPihwYXlsb2FkKX0pKSxcbiAgb24ocmV0cmlldmVNZW1iZXJMZWFkZXJNZW1iZXJTdWNjZXNzQWN0aW9uLCByZXRyaWV2ZVRlYW1MZWFkZXJNZW1iZXJTdWNjZXNzQWN0aW9uLCAoc3RhdGU6IFRlYW1TdGF0ZSwge3BheWxvYWR9OiB7XG4gICAgcGF5bG9hZDogTWVtYmVyVGVhbVRocm91Z2hcbiAgfSkgPT4gKHsuLi5zdGF0ZSwgY3VycmVudE1lbWJlcjogcmV0cmlldmVMb2FkU3VjY2VzcyhwYXlsb2FkKX0pKSxcbiAgb24ocmV0cmlldmVNZW1iZXJMZWFkZXJFeHRyYU1lbWJlckFjdGlvbiwgcmV0cmlldmVNZW1iZXJMZWFkZXJFeHRyYU1lbWJlckFjdGlvbiwgKHN0YXRlOiBUZWFtU3RhdGUpID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgY3VycmVudEV4dHJhTWVtYmVyOiByZXRyaWV2ZVN0YXJ0TG9hZGluZyhzdGF0ZS5jdXJyZW50RXh0cmFNZW1iZXIpXG4gIH0pKSxcbiAgb24ocmV0cmlldmVNZW1iZXJMZWFkZXJFeHRyYU1lbWJlckZhaWx1cmVBY3Rpb24sIHJldHJpZXZlVGVhbUxlYWRlckV4dHJhTWVtYmVyRmFpbHVyZUFjdGlvbiwgKHN0YXRlOiBUZWFtU3RhdGUsIHtwYXlsb2FkfToge1xuICAgIHBheWxvYWQ6IEh0dHBFcnJvclJlc3BvbnNlXG4gIH0pID0+ICh7Li4uc3RhdGUsIGN1cnJlbnRFeHRyYU1lbWJlcjogcmV0cmlldmVMb2FkRmFpbHVyZTxBY3Rpdml0eUV4dHJhTWVtYmVyPihwYXlsb2FkKX0pKSxcbiAgb24ocmV0cmlldmVNZW1iZXJMZWFkZXJFeHRyYU1lbWJlclN1Y2Nlc3NBY3Rpb24sIHJldHJpZXZlVGVhbUxlYWRlckV4dHJhTWVtYmVyU3VjY2Vzc0FjdGlvbiwgKHN0YXRlOiBUZWFtU3RhdGUsIHtwYXlsb2FkfToge1xuICAgIHBheWxvYWQ6IEFjdGl2aXR5RXh0cmFNZW1iZXJcbiAgfSkgPT4gKHsuLi5zdGF0ZSwgY3VycmVudEV4dHJhTWVtYmVyOiByZXRyaWV2ZUxvYWRTdWNjZXNzKHBheWxvYWQpfSkpLFxuICBvbih1cGRhdGVUZWFtTGVhZGVyTWVtYmVyU3VjY2Vzc0FjdGlvbiwgKHN0YXRlOiBUZWFtU3RhdGUsIHtwYXlsb2FkfToge3BheWxvYWQ6IE1lbWJlclRlYW1UaHJvdWdofSkgPT4ge1xuICAgIGlmIChzdGF0ZS5jdXJyZW50TWVtYmVyPy5yZXN1bHQ/LmlkID09PSBwYXlsb2FkLmlkIHx8IHN0YXRlLm1lbWJlcnM/LnJlc3VsdHMpIHtcbiAgICAgIGxldCBuZXdTdGF0ZSA9IHsgLi4uc3RhdGUgfTtcblxuICAgICAgaWYgKG5ld1N0YXRlLmN1cnJlbnRNZW1iZXI/LnJlc3VsdD8uaWQgPT09IHBheWxvYWQuaWQpIHtcbiAgICAgICAgbmV3U3RhdGUuY3VycmVudE1lbWJlciA9IHtcbiAgICAgICAgICAuLi5uZXdTdGF0ZS5jdXJyZW50TWVtYmVyLFxuICAgICAgICAgIHJlc3VsdDogcGF5bG9hZCxcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgaWYgKG5ld1N0YXRlLm1lbWJlcnM/LnJlc3VsdHMpIHtcbiAgICAgICAgbmV3U3RhdGUubWVtYmVycyA9IHtcbiAgICAgICAgICAuLi5uZXdTdGF0ZS5tZW1iZXJzLFxuICAgICAgICAgIHJlc3VsdHM6IG5ld1N0YXRlLm1lbWJlcnMucmVzdWx0cy5tYXAoKG1lbWJlcikgPT5cbiAgICAgICAgICAgIG1lbWJlci5pZCA9PT0gcGF5bG9hZC5pZCA/IHBheWxvYWQgOiBtZW1iZXJcbiAgICAgICAgICApLFxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gbmV3U3RhdGU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0YXRlO1xuICB9KSxcbik7XG4iXX0=
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVhbS5yZWR1Y2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS1hY2Nlc3Mvc3JjL2xpYi9zdG9yZS9yZWR1Y2Vycy90ZWFtLnJlZHVjZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDaEQsT0FBTyxFQUFFLGdCQUFnQixFQUFhLE1BQU0sVUFBVSxDQUFDO0FBQ3ZELE9BQU8sRUFDTCw2QkFBNkIsRUFDN0Isd0JBQXdCLEVBQ3hCLHNCQUFzQixFQUN0QixzQkFBc0IsRUFDdEIsZ0JBQWdCLEVBQ2hCLG1DQUFtQyxFQUNuQyxpQ0FBaUMsRUFDakMsd0NBQXdDLEVBQ3hDLHdDQUF3QyxFQUN4Qyw2QkFBNkIsRUFDN0Isb0NBQW9DLEVBQ3BDLG9DQUFvQyxFQUNwQyxrQ0FBa0MsRUFDbEMseUNBQXlDLEVBQ3pDLHlDQUF5QyxFQUN6Qyw2QkFBNkIsRUFDN0Isb0NBQW9DLEVBQ3BDLG9DQUFvQyxFQUNwQyxxQkFBcUIsRUFDckIsNEJBQTRCLEVBQzVCLDRCQUE0QixFQUM1QixnQ0FBZ0MsRUFDaEMsdUNBQXVDLEVBQ3ZDLHVDQUF1QyxFQUN2QywyQkFBMkIsRUFDM0Isa0NBQWtDLEVBQ2xDLGtDQUFrQyxFQUNsQyxxQ0FBcUMsRUFDckMsNENBQTRDLEVBQzVDLDRDQUE0QyxFQUM1QywrQkFBK0IsRUFDL0Isc0NBQXNDLEVBQ3RDLHNDQUFzQyxFQUN0QyxnQ0FBZ0MsRUFDaEMsdUNBQXVDLEVBQ3ZDLHVDQUF1QyxFQUN2QywwQ0FBMEMsRUFDMUMsMENBQTBDLEVBQzFDLDZCQUE2QixFQUM3QixvQ0FBb0MsRUFDcEMsb0NBQW9DLEVBQ3BDLDhCQUE4QixFQUM5QixxQ0FBcUMsRUFDckMscUNBQXFDLEVBQ3JDLG1DQUFtQyxFQUNwQyxNQUFNLFlBQVksQ0FBQztBQUNwQixPQUFPLEVBQ0wsZUFBZSxF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L3N0b3JlJztcbmltcG9ydCB7IGluaXRpYWxUZWFtU3RhdGUsIFRlYW1TdGF0ZSB9IGZyb20gJy4uL3N0YXRlJztcbmltcG9ydCB7XG4gIGNsZWFyQ3VycmVudEV4dHJhTWVtYmVyQWN0aW9uLFxuICBjbGVhckN1cnJlbnRNZW1iZXJBY3Rpb24sXG4gIGNsZWFyQ3VycmVudFRlYW1BY3Rpb24sXG4gIGNsZWFyTWVtYmVyVGVhbXNBY3Rpb24sXG4gIGNsZWFyU3RvcmVBY3Rpb24sXG4gIGRlbGV0ZVRlYW1MZWFkZXJNZW1iZXJTdWNjZXNzQWN0aW9uLFxuICBsaXN0R2VuZXJhbGx5QXZhaWxhYmxlVGVhbXNBY3Rpb24sXG4gIGxpc3RHZW5lcmFsbHlBdmFpbGFibGVUZWFtc0ZhaWx1cmVBY3Rpb24sXG4gIGxpc3RHZW5lcmFsbHlBdmFpbGFibGVUZWFtc1N1Y2Nlc3NBY3Rpb24sXG4gIGxpc3RMZWFkZXJOb3RpZmljYXRpb25zQWN0aW9uLFxuICBsaXN0TGVhZGVyTm90aWZpY2F0aW9uc0ZhaWx1cmVBY3Rpb24sXG4gIGxpc3RMZWFkZXJOb3RpZmljYXRpb25zU3VjY2Vzc0FjdGlvbixcbiAgbGlzdE1lbWJlckxlYWRlckV4dHJhTWVtYmVyc0FjdGlvbixcbiAgbGlzdE1lbWJlckxlYWRlckV4dHJhTWVtYmVyc0ZhaWx1cmVBY3Rpb24sXG4gIGxpc3RNZW1iZXJMZWFkZXJFeHRyYU1lbWJlcnNTdWNjZXNzQWN0aW9uLFxuICBsaXN0TWVtYmVyTGVhZGVyTWVtYmVyc0FjdGlvbixcbiAgbGlzdE1lbWJlckxlYWRlck1lbWJlcnNGYWlsdXJlQWN0aW9uLFxuICBsaXN0TWVtYmVyTGVhZGVyTWVtYmVyc1N1Y2Nlc3NBY3Rpb24sXG4gIGxpc3RNZW1iZXJUZWFtc0FjdGlvbixcbiAgbGlzdE1lbWJlclRlYW1zRmFpbHVyZUFjdGlvbixcbiAgbGlzdE1lbWJlclRlYW1zU3VjY2Vzc0FjdGlvbixcbiAgbGlzdFRlYW1MZWFkZXJFeHRyYU1lbWJlcnNBY3Rpb24sXG4gIGxpc3RUZWFtTGVhZGVyRXh0cmFNZW1iZXJzRmFpbHVyZUFjdGlvbixcbiAgbGlzdFRlYW1MZWFkZXJFeHRyYU1lbWJlcnNTdWNjZXNzQWN0aW9uLFxuICBsaXN0VGVhbUxlYWRlck1lbWJlcnNBY3Rpb24sXG4gIGxpc3RUZWFtTGVhZGVyTWVtYmVyc0ZhaWx1cmVBY3Rpb24sXG4gIGxpc3RUZWFtTGVhZGVyTWVtYmVyc1N1Y2Nlc3NBY3Rpb24sXG4gIHJldHJpZXZlTWVtYmVyTGVhZGVyRXh0cmFNZW1iZXJBY3Rpb24sXG4gIHJldHJpZXZlTWVtYmVyTGVhZGVyRXh0cmFNZW1iZXJGYWlsdXJlQWN0aW9uLFxuICByZXRyaWV2ZU1lbWJlckxlYWRlckV4dHJhTWVtYmVyU3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVNZW1iZXJMZWFkZXJHcm91cEFjdGlvbixcbiAgcmV0cmlldmVNZW1iZXJMZWFkZXJHcm91cEZhaWx1cmVBY3Rpb24sXG4gIHJldHJpZXZlTWVtYmVyTGVhZGVyR3JvdXBTdWNjZXNzQWN0aW9uLFxuICByZXRyaWV2ZU1lbWJlckxlYWRlck1lbWJlckFjdGlvbixcbiAgcmV0cmlldmVNZW1iZXJMZWFkZXJNZW1iZXJGYWlsdXJlQWN0aW9uLFxuICByZXRyaWV2ZU1lbWJlckxlYWRlck1lbWJlclN1Y2Nlc3NBY3Rpb24sXG4gIHJldHJpZXZlVGVhbUxlYWRlckV4dHJhTWVtYmVyRmFpbHVyZUFjdGlvbixcbiAgcmV0cmlldmVUZWFtTGVhZGVyRXh0cmFNZW1iZXJTdWNjZXNzQWN0aW9uLFxuICByZXRyaWV2ZVRlYW1MZWFkZXJHcm91cEFjdGlvbixcbiAgcmV0cmlldmVUZWFtTGVhZGVyR3JvdXBGYWlsdXJlQWN0aW9uLFxuICByZXRyaWV2ZVRlYW1MZWFkZXJHcm91cFN1Y2Nlc3NBY3Rpb24sXG4gIHJldHJpZXZlVGVhbUxlYWRlck1lbWJlckFjdGlvbixcbiAgcmV0cmlldmVUZWFtTGVhZGVyTWVtYmVyRmFpbHVyZUFjdGlvbixcbiAgcmV0cmlldmVUZWFtTGVhZGVyTWVtYmVyU3VjY2Vzc0FjdGlvbixcbiAgdXBkYXRlVGVhbUxlYWRlck1lbWJlclN1Y2Nlc3NBY3Rpb25cbn0gZnJvbSAnLi4vYWN0aW9ucyc7XG5pbXBvcnQge1xuICBsaXN0TG9hZEZhaWx1cmUsXG4gIGxpc3RMb2FkU3VjY2VzcyxcbiAgbGlzdFN0YXJ0TG9hZGluZyxcbiAgcmV0cmlldmVMb2FkRmFpbHVyZSxcbiAgcmV0cmlldmVMb2FkU3VjY2VzcyxcbiAgcmV0cmlldmVTdGFydExvYWRpbmdcbn0gZnJvbSAnLi9yZWR1Y2VyLWhlbHBlcnMnO1xuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBBY3Rpdml0eUV4dHJhTWVtYmVyLCBMZWFkZXJBY3Rpdml0eSwgTWVtYmVyVGVhbSwgTWVtYmVyVGVhbVRocm91Z2gsIFNlYXJjaFRlYW0gfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuXG5leHBvcnQgY29uc3QgdGVhbVJlZHVjZXIgPSBjcmVhdGVSZWR1Y2VyKFxuICBpbml0aWFsVGVhbVN0YXRlLFxuICBvbihjbGVhclN0b3JlQWN0aW9uLCAoKSA9PiBpbml0aWFsVGVhbVN0YXRlKSxcbiAgb24oY2xlYXJNZW1iZXJUZWFtc0FjdGlvbiwgKHN0YXRlOiBUZWFtU3RhdGUpID0+ICh7Li4uc3RhdGUsIG1lbWJlclRlYW1zOiB1bmRlZmluZWR9KSksXG4gIG9uKGNsZWFyQ3VycmVudFRlYW1BY3Rpb24sIChzdGF0ZTogVGVhbVN0YXRlKSA9PiAoey4uLnN0YXRlLCBjdXJyZW50VGVhbTogdW5kZWZpbmVkfSkpLFxuICBvbihjbGVhckN1cnJlbnRNZW1iZXJBY3Rpb24sIChzdGF0ZTogVGVhbVN0YXRlKSA9PiAoey4uLnN0YXRlLCBjdXJyZW50TWVtYmVyOiB1bmRlZmluZWR9KSksXG4gIG9uKGNsZWFyQ3VycmVudEV4dHJhTWVtYmVyQWN0aW9uLCAoc3RhdGU6IFRlYW1TdGF0ZSkgPT4gKHsuLi5zdGF0ZSwgY3VycmVudEV4dHJhTWVtYmVyOiB1bmRlZmluZWR9KSksXG4gIG9uKGRlbGV0ZVRlYW1MZWFkZXJNZW1iZXJTdWNjZXNzQWN0aW9uLCAoc3RhdGU6IFRlYW1TdGF0ZSwge3BheWxvYWR9OiB7cGF5bG9hZDoge3RlYW1JZDogc3RyaW5nLCBpZDogc3RyaW5nfX0pID0+IHtcbiAgICBpZiAoc3RhdGUubWVtYmVyc1RlYW1JZCA9PT0gcGF5bG9hZC50ZWFtSWQgfHwgc3RhdGUuY3VycmVudE1lbWJlcj8ucmVzdWx0Py5pZCA9PT0gcGF5bG9hZC5pZCkge1xuICAgICAgbGV0IG5ld1N0YXRlID0geyAuLi5zdGF0ZSB9O1xuXG4gICAgICBpZiAoc3RhdGUubWVtYmVyc1RlYW1JZCA9PT0gcGF5bG9hZC50ZWFtSWQgJiYgbmV3U3RhdGUubWVtYmVycykge1xuICAgICAgICBuZXdTdGF0ZS5tZW1iZXJzID0ge1xuICAgICAgICAgIC4uLm5ld1N0YXRlLm1lbWJlcnMsXG4gICAgICAgICAgcmVzdWx0czogbmV3U3RhdGUubWVtYmVycy5yZXN1bHRzLmZpbHRlcihcbiAgICAgICAgICAgIChtZW1iZXI6IE1lbWJlclRlYW1UaHJvdWdoKSA9PiBtZW1iZXIuaWQgIT09IHBheWxvYWQuaWRcbiAgICAgICAgICApLFxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICBpZiAobmV3U3RhdGUuY3VycmVudE1lbWJlcj8ucmVzdWx0Py5pZCA9PT0gcGF5bG9hZC5pZCkge1xuICAgICAgICBuZXdTdGF0ZS5jdXJyZW50TWVtYmVyID0gdW5kZWZpbmVkO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gbmV3U3RhdGU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0YXRlO1xuICB9KSxcbiAgb24obGlzdEdlbmVyYWxseUF2YWlsYWJsZVRlYW1zQWN0aW9uLCAoc3RhdGU6IFRlYW1TdGF0ZSkgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBnZW5lcmFsbHlBdmFpbGFibGVUZWFtczogbGlzdFN0YXJ0TG9hZGluZzxTZWFyY2hUZWFtPihzdGF0ZS5nZW5lcmFsbHlBdmFpbGFibGVUZWFtcylcbiAgfSkpLFxuICBvbihsaXN0R2VuZXJhbGx5QXZhaWxhYmxlVGVhbXNGYWlsdXJlQWN0aW9uLCAoc3RhdGU6IFRlYW1TdGF0ZSwge3BheWxvYWR9OiB7IHBheWxvYWQ6IEh0dHBFcnJvclJlc3BvbnNlIH0pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgZ2VuZXJhbGx5QXZhaWxhYmxlVGVhbXM6IGxpc3RMb2FkRmFpbHVyZTxTZWFyY2hUZWFtPihwYXlsb2FkKVxuICB9KSksXG4gIG9uKGxpc3RHZW5lcmFsbHlBdmFpbGFibGVUZWFtc1N1Y2Nlc3NBY3Rpb24sIChzdGF0ZTogVGVhbVN0YXRlLCB7cGF5bG9hZH06IHsgcGF5bG9hZDogQXJyYXk8U2VhcmNoVGVhbT4gfSkgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBnZW5lcmFsbHlBdmFpbGFibGVUZWFtczogbGlzdExvYWRTdWNjZXNzPFNlYXJjaFRlYW0+KHBheWxvYWQpXG4gIH0pKSxcbiAgb24obGlzdExlYWRlck5vdGlmaWNhdGlvbnNBY3Rpb24sIChzdGF0ZTogVGVhbVN0YXRlKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIGxlYWRlck5vdGlmaWNhdGlvbnM6IGxpc3RTdGFydExvYWRpbmc8TGVhZGVyQWN0aXZpdHk+KHN0YXRlLmxlYWRlck5vdGlmaWNhdGlvbnMpXG4gIH0pKSxcbiAgb24obGlzdExlYWRlck5vdGlmaWNhdGlvbnNGYWlsdXJlQWN0aW9uLCAoc3RhdGU6IFRlYW1TdGF0ZSwge3BheWxvYWR9OiB7IHBheWxvYWQ6IEh0dHBFcnJvclJlc3BvbnNlIH0pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgbGVhZGVyTm90aWZpY2F0aW9uczogbGlzdExvYWRGYWlsdXJlPExlYWRlckFjdGl2aXR5PihwYXlsb2FkKVxuICB9KSksXG4gIG9uKGxpc3RMZWFkZXJOb3RpZmljYXRpb25zU3VjY2Vzc0FjdGlvbiwgKHN0YXRlOiBUZWFtU3RhdGUsIHtwYXlsb2FkfTogeyBwYXlsb2FkOiBBcnJheTxMZWFkZXJBY3Rpdml0eT4gfSkgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBsZWFkZXJOb3RpZmljYXRpb25zOiBsaXN0TG9hZFN1Y2Nlc3M8TGVhZGVyQWN0aXZpdHk+KHBheWxvYWQpXG4gIH0pKSxcbiAgb24obGlzdE1lbWJlclRlYW1zQWN0aW9uLCAoc3RhdGU6IFRlYW1TdGF0ZSkgPT4gKHsuLi5zdGF0ZSwgbWVtYmVyVGVhbXM6IHJldHJpZXZlU3RhcnRMb2FkaW5nKHN0YXRlLm1lbWJlclRlYW1zKX0pKSxcbiAgb24obGlzdE1lbWJlclRlYW1zRmFpbHVyZUFjdGlvbiwgKHN0YXRlOiBUZWFtU3RhdGUsIHtwYXlsb2FkfTogeyBwYXlsb2FkOiBIdHRwRXJyb3JSZXNwb25zZSB9KSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIG1lbWJlclRlYW1zOiByZXRyaWV2ZUxvYWRGYWlsdXJlPE1hcDxzdHJpbmcsIEFycmF5PFNlYXJjaFRlYW0+Pj4ocGF5bG9hZClcbiAgfSkpLFxuICBvbihsaXN0TWVtYmVyVGVhbXNTdWNjZXNzQWN0aW9uLCAoc3RhdGU6IFRlYW1TdGF0ZSwge3BheWxvYWR9OiB7XG4gICAgcGF5bG9hZDogTWFwPHN0cmluZywgQXJyYXk8U2VhcmNoVGVhbT4+XG4gIH0pID0+ICh7Li4uc3RhdGUsIG1lbWJlclRlYW1zOiByZXRyaWV2ZUxvYWRTdWNjZXNzKHBheWxvYWQpfSkpLFxuICBvbihsaXN0TWVtYmVyTGVhZGVyRXh0cmFNZW1iZXJzQWN0aW9uLCAoc3RhdGU6IFRlYW1TdGF0ZSwge3BheWxvYWR9OiB7XG4gICAgcGF5bG9hZDogeyBtZW1iZXJJZDogc3RyaW5nLCBpZDogc3RyaW5nLCBxOiBzdHJpbmcgfVxuICB9KSA9PiAoey4uLnN0YXRlLCBleHRyYU1lbWJlcnM6IGxpc3RTdGFydExvYWRpbmcoc3RhdGUuZXh0cmFNZW1iZXJzKSwgZXh0cmFNZW1iZXJzVGVhbUlkOiBwYXlsb2FkLmlkfSkpLFxuICBvbihsaXN0TWVtYmVyTGVhZGVyRXh0cmFNZW1iZXJzRmFpbHVyZUFjdGlvbiwgKHN0YXRlOiBUZWFtU3RhdGUsIHtwYXlsb2FkfToge1xuICAgIHBheWxvYWQ6IEh0dHBFcnJvclJlc3BvbnNlXG4gIH0pID0+ICh7Li4uc3RhdGUsIGV4dHJhTWVtYmVyczogbGlzdExvYWRGYWlsdXJlPEFjdGl2aXR5RXh0cmFNZW1iZXI+KHBheWxvYWQpfSkpLFxuICBvbihsaXN0TWVtYmVyTGVhZGVyRXh0cmFNZW1iZXJzU3VjY2Vzc0FjdGlvbiwgKHN0YXRlOiBUZWFtU3RhdGUsIHtwYXlsb2FkfToge1xuICAgIHBheWxvYWQ6IEFycmF5PEFjdGl2aXR5RXh0cmFNZW1iZXI+XG4gIH0pID0+ICh7Li4uc3RhdGUsIGV4dHJhTWVtYmVyczogbGlzdExvYWRTdWNjZXNzKHBheWxvYWQpfSkpLFxuICBvbihsaXN0TWVtYmVyTGVhZGVyTWVtYmVyc0FjdGlvbiwgKHN0YXRlOiBUZWFtU3RhdGUsIHtwYXlsb2FkfTogeyBwYXlsb2FkOiB7IGlkOiBzdHJpbmcsIHE6IHN0cmluZyB9IH0pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgbWVtYmVyczogbGlzdFN0YXJ0TG9hZGluZyhzdGF0ZS5tZW1iZXJzKSxcbiAgICBtZW1iZXJzVGVhbUlkOiBwYXlsb2FkLmlkXG4gIH0pKSxcbiAgb24obGlzdE1lbWJlckxlYWRlck1lbWJlcnNGYWlsdXJlQWN0aW9uLCAoc3RhdGU6IFRlYW1TdGF0ZSwge3BheWxvYWR9OiB7IHBheWxvYWQ6IEh0dHBFcnJvclJlc3BvbnNlIH0pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgbWVtYmVyczogbGlzdExvYWRGYWlsdXJlPE1lbWJlclRlYW1UaHJvdWdoPihwYXlsb2FkKVxuICB9KSksXG4gIG9uKGxpc3RNZW1iZXJMZWFkZXJNZW1iZXJzU3VjY2Vzc0FjdGlvbiwgKHN0YXRlOiBUZWFtU3RhdGUsIHtwYXlsb2FkfToge1xuICAgIHBheWxvYWQ6IEFycmF5PE1lbWJlclRlYW1UaHJvdWdoPlxuICB9KSA9PiAoey4uLnN0YXRlLCBtZW1iZXJzOiBsaXN0TG9hZFN1Y2Nlc3MocGF5bG9hZCl9KSksXG4gIG9uKGxpc3RUZWFtTGVhZGVyRXh0cmFNZW1iZXJzQWN0aW9uLCAoc3RhdGU6IFRlYW1TdGF0ZSwge3BheWxvYWR9OiB7IHBheWxvYWQ6IHsgdGVhbUlkOiBzdHJpbmcsIHE6IHN0cmluZyB9IH0pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgZXh0cmFNZW1iZXJzOiBsaXN0U3RhcnRMb2FkaW5nKHN0YXRlLmV4dHJhTWVtYmVycyksXG4gICAgZXh0cmFNZW1iZXJzVGVhbUlkOiBwYXlsb2FkLnRlYW1JZFxuICB9KSksXG4gIG9uKGxpc3RUZWFtTGVhZGVyRXh0cmFNZW1iZXJzRmFpbHVyZUFjdGlvbiwgKHN0YXRlOiBUZWFtU3RhdGUsIHtwYXlsb2FkfToge1xuICAgIHBheWxvYWQ6IEh0dHBFcnJvclJlc3BvbnNlXG4gIH0pID0+ICh7Li4uc3RhdGUsIGV4dHJhTWVtYmVyczogbGlzdExvYWRGYWlsdXJlPEFjdGl2aXR5RXh0cmFNZW1iZXI+KHBheWxvYWQuZXJyb3IpfSkpLFxuICBvbihsaXN0VGVhbUxlYWRlckV4dHJhTWVtYmVyc1N1Y2Nlc3NBY3Rpb24sIChzdGF0ZTogVGVhbVN0YXRlLCB7cGF5bG9hZH06IHtcbiAgICBwYXlsb2FkOiB7IHRlYW1JZDogc3RyaW5nLCByZXN1bHRzOiBBcnJheTxBY3Rpdml0eUV4dHJhTWVtYmVyPiB9XG4gIH0pID0+ICh7Li4uc3RhdGUsIGV4dHJhTWVtYmVyczogbGlzdExvYWRTdWNjZXNzKHBheWxvYWQucmVzdWx0cyl9KSksXG4gIG9uKGxpc3RUZWFtTGVhZGVyTWVtYmVyc0FjdGlvbiwgKHN0YXRlOiBUZWFtU3RhdGUsIHtwYXlsb2FkfToge1xuICAgIHBheWxvYWQ6IHsgdGVhbUlkOiBzdHJpbmcsIHE6IHN0cmluZyB9XG4gIH0pID0+ICh7Li4uc3RhdGUsIG1lbWJlcnM6IGxpc3RTdGFydExvYWRpbmcoc3RhdGUubWVtYmVycyksIG1lbWJlcnNUZWFtSWQ6IHBheWxvYWQudGVhbUlkfSkpLFxuICBvbihsaXN0VGVhbUxlYWRlck1lbWJlcnNGYWlsdXJlQWN0aW9uLCAoc3RhdGU6IFRlYW1TdGF0ZSwge3BheWxvYWR9OiB7IHBheWxvYWQ6IEh0dHBFcnJvclJlc3BvbnNlIH0pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgbWVtYmVyczogbGlzdExvYWRGYWlsdXJlPE1lbWJlclRlYW1UaHJvdWdoPihwYXlsb2FkLmVycm9yKVxuICB9KSksXG4gIG9uKGxpc3RUZWFtTGVhZGVyTWVtYmVyc1N1Y2Nlc3NBY3Rpb24sIChzdGF0ZTogVGVhbVN0YXRlLCB7cGF5bG9hZH06IHtcbiAgICBwYXlsb2FkOiBBcnJheTxNZW1iZXJUZWFtVGhyb3VnaD5cbiAgfSkgPT4gKHsuLi5zdGF0ZSwgbWVtYmVyczogbGlzdExvYWRTdWNjZXNzKHBheWxvYWQpfSkpLFxuICBvbihyZXRyaWV2ZU1lbWJlckxlYWRlckdyb3VwQWN0aW9uLCAoc3RhdGU6IFRlYW1TdGF0ZSkgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBjdXJyZW50VGVhbTogcmV0cmlldmVTdGFydExvYWRpbmcoc3RhdGUuY3VycmVudFRlYW0pXG4gIH0pKSxcbiAgb24ocmV0cmlldmVNZW1iZXJMZWFkZXJHcm91cEZhaWx1cmVBY3Rpb24sIChzdGF0ZTogVGVhbVN0YXRlLCB7cGF5bG9hZH06IHtcbiAgICBwYXlsb2FkOiBIdHRwRXJyb3JSZXNwb25zZVxuICB9KSA9PiAoey4uLnN0YXRlLCBjdXJyZW50VGVhbTogcmV0cmlldmVMb2FkRmFpbHVyZTxNZW1iZXJUZWFtPihwYXlsb2FkKX0pKSxcbiAgb24ocmV0cmlldmVNZW1iZXJMZWFkZXJHcm91cFN1Y2Nlc3NBY3Rpb24sIChzdGF0ZTogVGVhbVN0YXRlLCB7cGF5bG9hZH06IHsgcGF5bG9hZDogTWVtYmVyVGVhbSB9KSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIGN1cnJlbnRUZWFtOiByZXRyaWV2ZUxvYWRTdWNjZXNzKHBheWxvYWQpXG4gIH0pKSxcbiAgb24ocmV0cmlldmVUZWFtTGVhZGVyR3JvdXBBY3Rpb24sIChzdGF0ZTogVGVhbVN0YXRlKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIGN1cnJlbnRUZWFtOiByZXRyaWV2ZVN0YXJ0TG9hZGluZyhzdGF0ZS5jdXJyZW50VGVhbSlcbiAgfSkpLFxuICBvbihyZXRyaWV2ZVRlYW1MZWFkZXJHcm91cEZhaWx1cmVBY3Rpb24sIChzdGF0ZTogVGVhbVN0YXRlLCB7cGF5bG9hZH06IHsgcGF5bG9hZDogSHR0cEVycm9yUmVzcG9uc2UgfSkgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBjdXJyZW50VGVhbTogcmV0cmlldmVMb2FkRmFpbHVyZTxNZW1iZXJUZWFtPihwYXlsb2FkKVxuICB9KSksXG4gIG9uKHJldHJpZXZlVGVhbUxlYWRlckdyb3VwU3VjY2Vzc0FjdGlvbiwgKHN0YXRlOiBUZWFtU3RhdGUsIHtwYXlsb2FkfTogeyBwYXlsb2FkOiBNZW1iZXJUZWFtIH0pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgY3VycmVudFRlYW06IHJldHJpZXZlTG9hZFN1Y2Nlc3MocGF5bG9hZClcbiAgfSkpLFxuICBvbihyZXRyaWV2ZU1lbWJlckxlYWRlck1lbWJlckFjdGlvbiwgcmV0cmlldmVUZWFtTGVhZGVyTWVtYmVyQWN0aW9uLCAoc3RhdGU6IFRlYW1TdGF0ZSkgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBjdXJyZW50TWVtYmVyOiByZXRyaWV2ZVN0YXJ0TG9hZGluZyhzdGF0ZS5jdXJyZW50TWVtYmVyKVxuICB9KSksXG4gIG9uKHJldHJpZXZlTWVtYmVyTGVhZGVyTWVtYmVyRmFpbHVyZUFjdGlvbiwgcmV0cmlldmVUZWFtTGVhZGVyTWVtYmVyRmFpbHVyZUFjdGlvbiwgKHN0YXRlOiBUZWFtU3RhdGUsIHtwYXlsb2FkfToge1xuICAgIHBheWxvYWQ6IEh0dHBFcnJvclJlc3BvbnNlXG4gIH0pID0+ICh7Li4uc3RhdGUsIGN1cnJlbnRNZW1iZXI6IHJldHJpZXZlTG9hZEZhaWx1cmU8TWVtYmVyVGVhbVRocm91Z2g+KHBheWxvYWQpfSkpLFxuICBvbihyZXRyaWV2ZU1lbWJlckxlYWRlck1lbWJlclN1Y2Nlc3NBY3Rpb24sIHJldHJpZXZlVGVhbUxlYWRlck1lbWJlclN1Y2Nlc3NBY3Rpb24sIChzdGF0ZTogVGVhbVN0YXRlLCB7cGF5bG9hZH06IHtcbiAgICBwYXlsb2FkOiBNZW1iZXJUZWFtVGhyb3VnaFxuICB9KSA9PiAoey4uLnN0YXRlLCBjdXJyZW50TWVtYmVyOiByZXRyaWV2ZUxvYWRTdWNjZXNzKHBheWxvYWQpfSkpLFxuICBvbihyZXRyaWV2ZU1lbWJlckxlYWRlckV4dHJhTWVtYmVyQWN0aW9uLCByZXRyaWV2ZU1lbWJlckxlYWRlckV4dHJhTWVtYmVyQWN0aW9uLCAoc3RhdGU6IFRlYW1TdGF0ZSkgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBjdXJyZW50RXh0cmFNZW1iZXI6IHJldHJpZXZlU3RhcnRMb2FkaW5nKHN0YXRlLmN1cnJlbnRFeHRyYU1lbWJlcilcbiAgfSkpLFxuICBvbihyZXRyaWV2ZU1lbWJlckxlYWRlckV4dHJhTWVtYmVyRmFpbHVyZUFjdGlvbiwgcmV0cmlldmVUZWFtTGVhZGVyRXh0cmFNZW1iZXJGYWlsdXJlQWN0aW9uLCAoc3RhdGU6IFRlYW1TdGF0ZSwge3BheWxvYWR9OiB7XG4gICAgcGF5bG9hZDogSHR0cEVycm9yUmVzcG9uc2VcbiAgfSkgPT4gKHsuLi5zdGF0ZSwgY3VycmVudEV4dHJhTWVtYmVyOiByZXRyaWV2ZUxvYWRGYWlsdXJlPEFjdGl2aXR5RXh0cmFNZW1iZXI+KHBheWxvYWQpfSkpLFxuICBvbihyZXRyaWV2ZU1lbWJlckxlYWRlckV4dHJhTWVtYmVyU3VjY2Vzc0FjdGlvbiwgcmV0cmlldmVUZWFtTGVhZGVyRXh0cmFNZW1iZXJTdWNjZXNzQWN0aW9uLCAoc3RhdGU6IFRlYW1TdGF0ZSwge3BheWxvYWR9OiB7XG4gICAgcGF5bG9hZDogQWN0aXZpdHlFeHRyYU1lbWJlclxuICB9KSA9PiAoey4uLnN0YXRlLCBjdXJyZW50RXh0cmFNZW1iZXI6IHJldHJpZXZlTG9hZFN1Y2Nlc3MocGF5bG9hZCl9KSksXG4gIG9uKHVwZGF0ZVRlYW1MZWFkZXJNZW1iZXJTdWNjZXNzQWN0aW9uLCAoc3RhdGU6IFRlYW1TdGF0ZSwge3BheWxvYWR9OiB7cGF5bG9hZDogTWVtYmVyVGVhbVRocm91Z2h9KSA9PiB7XG4gICAgaWYgKHN0YXRlLmN1cnJlbnRNZW1iZXI/LnJlc3VsdD8uaWQgPT09IHBheWxvYWQuaWQgfHwgc3RhdGUubWVtYmVycz8ucmVzdWx0cykge1xuICAgICAgbGV0IG5ld1N0YXRlID0geyAuLi5zdGF0ZSB9O1xuXG4gICAgICBpZiAobmV3U3RhdGUuY3VycmVudE1lbWJlcj8ucmVzdWx0Py5pZCA9PT0gcGF5bG9hZC5pZCkge1xuICAgICAgICBuZXdTdGF0ZS5jdXJyZW50TWVtYmVyID0ge1xuICAgICAgICAgIC4uLm5ld1N0YXRlLmN1cnJlbnRNZW1iZXIsXG4gICAgICAgICAgcmVzdWx0OiBwYXlsb2FkLFxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICBpZiAobmV3U3RhdGUubWVtYmVycz8ucmVzdWx0cykge1xuICAgICAgICBuZXdTdGF0ZS5tZW1iZXJzID0ge1xuICAgICAgICAgIC4uLm5ld1N0YXRlLm1lbWJlcnMsXG4gICAgICAgICAgcmVzdWx0czogbmV3U3RhdGUubWVtYmVycy5yZXN1bHRzLm1hcCgobWVtYmVyKSA9PlxuICAgICAgICAgICAgbWVtYmVyLmlkID09PSBwYXlsb2FkLmlkID8gcGF5bG9hZCA6IG1lbWJlclxuICAgICAgICAgICksXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBuZXdTdGF0ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3RhdGU7XG4gIH0pLFxuKTtcbiJdfQ==
|
|
@@ -2,4 +2,5 @@ import { createFeatureSelector, createSelector } from '@ngrx/store';
|
|
|
2
2
|
const pluginState = createFeatureSelector('dataAccess');
|
|
3
3
|
export const clubInfoState = createSelector(pluginState, (state) => state.clubInfo);
|
|
4
4
|
export const selectClubInfo = createSelector(clubInfoState, (state) => state.currentClubInfo);
|
|
5
|
-
|
|
5
|
+
export const selectAppSettings = createSelector(selectClubInfo, (clubInfo) => clubInfo?.result?.app_settings);
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2x1Yi1pbmZvLnNlbGVjdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEtYWNjZXNzL3NyYy9saWIvc3RvcmUvc2VsZWN0b3JzL2NsdWItaW5mby5zZWxlY3RvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVwRSxNQUFNLFdBQVcsR0FBRyxxQkFBcUIsQ0FBa0IsWUFBWSxDQUFDLENBQUM7QUFFekUsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFzQixFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7QUFFckcsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLGNBQWMsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxLQUFvQixFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7QUFFN0csTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsY0FBYyxDQUFDLGNBQWMsRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxZQUFZLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENsdWJJbmZvU3RhdGUsIERhdGFBY2Nlc3NTdGF0ZSB9IGZyb20gJy4uL3N0YXRlJztcblxuaW1wb3J0IHsgY3JlYXRlRmVhdHVyZVNlbGVjdG9yLCBjcmVhdGVTZWxlY3RvciB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcblxuY29uc3QgcGx1Z2luU3RhdGUgPSBjcmVhdGVGZWF0dXJlU2VsZWN0b3I8RGF0YUFjY2Vzc1N0YXRlPignZGF0YUFjY2VzcycpO1xuXG5leHBvcnQgY29uc3QgY2x1YkluZm9TdGF0ZSA9IGNyZWF0ZVNlbGVjdG9yKHBsdWdpblN0YXRlLCAoc3RhdGU6IERhdGFBY2Nlc3NTdGF0ZSkgPT4gc3RhdGUuY2x1YkluZm8pO1xuXG5leHBvcnQgY29uc3Qgc2VsZWN0Q2x1YkluZm8gPSBjcmVhdGVTZWxlY3RvcihjbHViSW5mb1N0YXRlLCAoc3RhdGU6IENsdWJJbmZvU3RhdGUpID0+IHN0YXRlLmN1cnJlbnRDbHViSW5mbyk7XG5cbmV4cG9ydCBjb25zdCBzZWxlY3RBcHBTZXR0aW5ncyA9IGNyZWF0ZVNlbGVjdG9yKHNlbGVjdENsdWJJbmZvLCAoY2x1YkluZm8pID0+IGNsdWJJbmZvPy5yZXN1bHQ/LmFwcF9zZXR0aW5ncyk7XG4iXX0=
|
|
@@ -2,6 +2,7 @@ import { createFeatureSelector, createSelector } from '@ngrx/store';
|
|
|
2
2
|
const pluginState = createFeatureSelector('dataAccess');
|
|
3
3
|
export const teamState = createSelector(pluginState, (state) => state.teams);
|
|
4
4
|
export const selectGenerallyAvailableTeams = createSelector(teamState, (state) => state.generallyAvailableTeams);
|
|
5
|
+
export const selectLeaderNotifications = createSelector(teamState, (state) => state.leaderNotifications);
|
|
5
6
|
export const selectCurrentExtraMember = createSelector(teamState, (state) => state.currentExtraMember);
|
|
6
7
|
export const selectCurrentMember = createSelector(teamState, (state) => state.currentMember);
|
|
7
8
|
export const selectCurrentTeam = createSelector(teamState, (state) => state.currentTeam);
|
|
@@ -10,4 +11,4 @@ export const selectTeamExtraMembersId = createSelector(teamState, (state) => sta
|
|
|
10
11
|
export const selectTeamMembers = createSelector(teamState, (state) => state.members);
|
|
11
12
|
export const selectTeamMembersId = createSelector(teamState, (state) => state.membersTeamId);
|
|
12
13
|
export const selectMemberTeams = createSelector(teamState, (state) => state.memberTeams);
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVhbS5zZWxlY3RvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhLWFjY2Vzcy9zcmMvbGliL3N0b3JlL3NlbGVjdG9ycy90ZWFtLnNlbGVjdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBR3BFLE1BQU0sV0FBVyxHQUFHLHFCQUFxQixDQUFrQixZQUFZLENBQUMsQ0FBQztBQUV6RSxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDLEtBQXNCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUU5RixNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRyxjQUFjLENBQUMsU0FBUyxFQUFFLENBQUMsS0FBZ0IsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUM7QUFDNUgsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsY0FBYyxDQUFDLFNBQVMsRUFBRSxDQUFDLEtBQWdCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0FBQ3BILE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLGNBQWMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxLQUFnQixFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztBQUNsSCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxjQUFjLENBQUMsU0FBUyxFQUFFLENBQUMsS0FBZ0IsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQ3hHLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLGNBQWMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxLQUFnQixFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDcEcsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsY0FBYyxDQUFDLFNBQVMsRUFBRSxDQUFDLEtBQWdCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUMxRyxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxjQUFjLENBQUMsU0FBUyxFQUFFLENBQUMsS0FBZ0IsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUM7QUFDbEgsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsY0FBYyxDQUFDLFNBQVMsRUFBRSxDQUFDLEtBQWdCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUNoRyxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxjQUFjLENBQUMsU0FBUyxFQUFFLENBQUMsS0FBZ0IsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQ3hHLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLGNBQWMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxLQUFnQixFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVGZWF0dXJlU2VsZWN0b3IsIGNyZWF0ZVNlbGVjdG9yIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgRGF0YUFjY2Vzc1N0YXRlLCBUZWFtU3RhdGUgfSBmcm9tICcuLi9zdGF0ZSc7XG5cbmNvbnN0IHBsdWdpblN0YXRlID0gY3JlYXRlRmVhdHVyZVNlbGVjdG9yPERhdGFBY2Nlc3NTdGF0ZT4oJ2RhdGFBY2Nlc3MnKTtcblxuZXhwb3J0IGNvbnN0IHRlYW1TdGF0ZSA9IGNyZWF0ZVNlbGVjdG9yKHBsdWdpblN0YXRlLCAoc3RhdGU6IERhdGFBY2Nlc3NTdGF0ZSkgPT4gc3RhdGUudGVhbXMpO1xuXG5leHBvcnQgY29uc3Qgc2VsZWN0R2VuZXJhbGx5QXZhaWxhYmxlVGVhbXMgPSBjcmVhdGVTZWxlY3Rvcih0ZWFtU3RhdGUsIChzdGF0ZTogVGVhbVN0YXRlKSA9PiBzdGF0ZS5nZW5lcmFsbHlBdmFpbGFibGVUZWFtcyk7XG5leHBvcnQgY29uc3Qgc2VsZWN0TGVhZGVyTm90aWZpY2F0aW9ucyA9IGNyZWF0ZVNlbGVjdG9yKHRlYW1TdGF0ZSwgKHN0YXRlOiBUZWFtU3RhdGUpID0+IHN0YXRlLmxlYWRlck5vdGlmaWNhdGlvbnMpO1xuZXhwb3J0IGNvbnN0IHNlbGVjdEN1cnJlbnRFeHRyYU1lbWJlciA9IGNyZWF0ZVNlbGVjdG9yKHRlYW1TdGF0ZSwgKHN0YXRlOiBUZWFtU3RhdGUpID0+IHN0YXRlLmN1cnJlbnRFeHRyYU1lbWJlcik7XG5leHBvcnQgY29uc3Qgc2VsZWN0Q3VycmVudE1lbWJlciA9IGNyZWF0ZVNlbGVjdG9yKHRlYW1TdGF0ZSwgKHN0YXRlOiBUZWFtU3RhdGUpID0+IHN0YXRlLmN1cnJlbnRNZW1iZXIpO1xuZXhwb3J0IGNvbnN0IHNlbGVjdEN1cnJlbnRUZWFtID0gY3JlYXRlU2VsZWN0b3IodGVhbVN0YXRlLCAoc3RhdGU6IFRlYW1TdGF0ZSkgPT4gc3RhdGUuY3VycmVudFRlYW0pO1xuZXhwb3J0IGNvbnN0IHNlbGVjdFRlYW1FeHRyYU1lbWJlcnMgPSBjcmVhdGVTZWxlY3Rvcih0ZWFtU3RhdGUsIChzdGF0ZTogVGVhbVN0YXRlKSA9PiBzdGF0ZS5leHRyYU1lbWJlcnMpO1xuZXhwb3J0IGNvbnN0IHNlbGVjdFRlYW1FeHRyYU1lbWJlcnNJZCA9IGNyZWF0ZVNlbGVjdG9yKHRlYW1TdGF0ZSwgKHN0YXRlOiBUZWFtU3RhdGUpID0+IHN0YXRlLmV4dHJhTWVtYmVyc1RlYW1JZCk7XG5leHBvcnQgY29uc3Qgc2VsZWN0VGVhbU1lbWJlcnMgPSBjcmVhdGVTZWxlY3Rvcih0ZWFtU3RhdGUsIChzdGF0ZTogVGVhbVN0YXRlKSA9PiBzdGF0ZS5tZW1iZXJzKTtcbmV4cG9ydCBjb25zdCBzZWxlY3RUZWFtTWVtYmVyc0lkID0gY3JlYXRlU2VsZWN0b3IodGVhbVN0YXRlLCAoc3RhdGU6IFRlYW1TdGF0ZSkgPT4gc3RhdGUubWVtYmVyc1RlYW1JZCk7XG5leHBvcnQgY29uc3Qgc2VsZWN0TWVtYmVyVGVhbXMgPSBjcmVhdGVTZWxlY3Rvcih0ZWFtU3RhdGUsIChzdGF0ZTogVGVhbVN0YXRlKSA9PiBzdGF0ZS5tZW1iZXJUZWFtcyk7XG4iXX0=
|