@myclub_se/data-access 3.4.3 → 3.4.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/api-models/api-activity.mjs +1 -1
- package/esm2022/lib/api-models/api-open-activity.mjs +1 -1
- package/esm2022/lib/models/activity.mjs +4 -2
- package/esm2022/lib/models/open-activity.mjs +4 -2
- package/esm2022/lib/services/factories/activity-factory.mjs +2 -2
- package/esm2022/lib/services/factories/open-activity-factory.mjs +2 -2
- package/esm2022/lib/store/reducers/calendar.reducer.mjs +2 -2
- package/esm2022/lib/store/reducers/public.reducer.mjs +2 -2
- package/fesm2022/myclub_se-data-access.mjs +10 -6
- package/fesm2022/myclub_se-data-access.mjs.map +1 -1
- package/lib/api-models/api-activity.d.ts +1 -0
- package/lib/api-models/api-open-activity.d.ts +1 -0
- package/lib/models/activity.d.ts +2 -1
- package/lib/models/open-activity.d.ts +2 -1
- package/package.json +1 -1
|
@@ -417,7 +417,7 @@ on(removeMemberOpenActivityAction, (state, { payload }) => {
|
|
|
417
417
|
if (existingOpenActivities) {
|
|
418
418
|
const updatedOpenActivities = existingOpenActivities.map((openActivity) => {
|
|
419
419
|
if (openActivity.id === payload.activityId && openActivity.member_id === payload.memberId) {
|
|
420
|
-
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.created, openActivity.current_num_attendants, openActivity.day, openActivity.default_fee, openActivity.description, openActivity.end, openActivity.end_time, openActivity.file, 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_invoice, openActivity.member_name, openActivity.open_activity, openActivity.optional_fees, openActivity.optional_fee_required, openActivity.optional_fee_type, 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.updated, openActivity.use_invite, openActivity.update_repeating);
|
|
420
|
+
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.created, openActivity.current_num_attendants, openActivity.day, openActivity.default_fee, openActivity.description, openActivity.end, openActivity.end_time, openActivity.file, 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.repeat, openActivity.repeat_num, openActivity.repeat_to_day, openActivity.repeat_type, openActivity.show_other_invited, openActivity.start, openActivity.start_time, 'waiting', openActivity.title, openActivity.updated, openActivity.use_invite, openActivity.update_repeating);
|
|
421
421
|
}
|
|
422
422
|
return openActivity;
|
|
423
423
|
});
|
|
@@ -474,4 +474,4 @@ on(deleteTeamActivitySuccessAction, (state, { payload }) => {
|
|
|
474
474
|
on(createTeamActivityAction, state => ({ ...state, currentTeamActivity: retrieveStartLoading(state.currentTeamActivity) })),
|
|
475
475
|
// Failure Handlers
|
|
476
476
|
on(createTeamActivityFailureAction, (state, { payload }) => ({ ...state, currentTeamActivity: retrieveLoadFailure(payload) })));
|
|
477
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIucmVkdWNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEtYWNjZXNzL3NyYy9saWIvc3RvcmUvcmVkdWNlcnMvY2FsZW5kYXIucmVkdWNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNoRCxPQUFPLEVBQWlCLG9CQUFvQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQy9ELE9BQU8sRUFDTCx5QkFBeUIsRUFDekIsK0JBQStCLEVBQy9CLDZCQUE2QixFQUM3QixnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBQ3ZCLHlCQUF5QixFQUN6Qix3QkFBd0IsRUFDeEIsK0JBQStCLEVBQUUsOEJBQThCLEVBQy9ELCtCQUErQixFQUMvQix3Q0FBd0MsRUFDeEMsK0NBQStDLEVBQy9DLCtDQUErQyxFQUMvQyxvQ0FBb0MsRUFDcEMsMkNBQTJDLEVBQzNDLDJDQUEyQyxFQUMzQywwQkFBMEIsRUFDMUIsaUNBQWlDLEVBQ2pDLGlDQUFpQyxFQUNqQywrQkFBK0IsRUFDL0Isc0NBQXNDLEVBQ3RDLHNDQUFzQyxFQUN0Qyw4QkFBOEIsRUFDOUIscUNBQXFDLEVBQ3JDLHFDQUFxQyxFQUNyQyxxQ0FBcUMsRUFDckMsNENBQTRDLEVBQzVDLDRDQUE0QyxFQUM1QyxpQ0FBaUMsRUFDakMsd0NBQXdDLEVBQ3hDLHdDQUF3QyxFQUN4Qyx3QkFBd0IsRUFDeEIsK0JBQStCLEVBQy9CLCtCQUErQixFQUMvQix5Q0FBeUMsRUFDekMsdUNBQXVDLEVBQ3ZDLDhCQUE4QixFQUM5QiwyQ0FBMkMsRUFDM0MsNEJBQTRCLEVBQzVCLG1DQUFtQyxFQUNuQyxrQ0FBa0MsRUFDbEMseUNBQXlDLEVBQ3pDLHlDQUF5QyxFQUN6QyxtQ0FBbUMsRUFDbkMsZ0NBQWdDLEVBQ2hDLHVDQUF1QyxFQUN2Qyx1Q0FBdUMsRUFDdkMsMEJB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Q0FBQztJQUVGLElBQUksWUFBWSxDQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDNUMsWUFBWSxDQUFDLFVBQVUsR0FBRztZQUN4QixHQUFHLFlBQVksQ0FBQyxVQUFVO1lBQzFCLEtBQUssRUFBRTtnQkFDTCxHQUFHLFlBQVksQ0FBQyxVQUFVLENBQUMsS0FBSztnQkFDaEMsT0FBTyxFQUFFLFlBQVksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFZLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssT0FBTyxDQUFDO2FBQzlGO1NBQ0YsQ0FBQTtJQUNILENBQUM7SUFFRCxPQUFPLFlBQVksQ0FBQztBQUN0QixDQUFDLENBQUM7QUFFRix1QkFBdUI7QUFDdkIsRUFBRSxDQUFDLHdCQUF3QixFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLG1CQUFtQixFQUFFLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUUzSCxtQkFBbUI7QUFDbkIsRUFBRSxDQUFDLCtCQUErQixFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsQ0FBd0IsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQ3RKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVSZWR1Y2VyLCBvbiB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IENhbGVuZGFyU3RhdGUsIGluaXRpYWxDYWxlbmRhclN0YXRlIH0gZnJvbSAnLi4vc3RhdGUnO1xuaW1wb3J0IHtcbiAgY2xlYXJNZW1iZXJBY3Rpdml0eUFjdGlvbixcbiAgY2xlYXJNZW1iZXJBY3Rpdml0eUludml0ZUFjdGlvbixcbiAgY2xlYXJNZW1iZXJPcGVuQWN0aXZpdHlBY3Rpb24sXG4gIGNsZWFyU3RvcmVBY3Rpb24sXG4gIGNsZWFyVGVhbUFjdGl2aXR5QWN0aW9uLFxuICBjbGVhclRlYW1BY3Rpdml0aWVzQWN0aW9uLFxuICBjcmVhdGVUZWFtQWN0aXZpdHlBY3Rpb24sXG4gIGNyZWF0ZVRlYW1BY3Rpdml0eUZhaWx1cmVBY3Rpb24sIGRlbGV0ZVRlYW1BY3Rpdml0eUludml0ZUFjdGlvbixcbiAgZGVsZXRlVGVhbUFjdGl2aXR5U3VjY2Vzc0FjdGlvbixcbiAgbGlzdEFsbE1lbWJlck9wZW5BY3Rpdml0eUxvY2F0aW9uc0FjdGlvbixcbiAgbGlzdEFsbE1lbWJlck9wZW5BY3Rpdml0eUxvY2F0aW9uc0ZhaWx1cmVBY3Rpb24sXG4gIGxpc3RBbGxNZW1iZXJPcGVuQWN0aXZpdHlMb2NhdGlvbnNTdWNjZXNzQWN0aW9uLFxuICBsaXN0QWxsTWVtYmVyT3BlbkFjdGl2aXR5VHlwZXNBY3Rpb24sXG4gIGxpc3RBbGxNZW1iZXJPcGVuQWN0aXZpdHlUeXBlc0ZhaWx1cmVBY3Rpb24sXG4gIGxpc3RBbGxNZW1iZXJPcGVuQWN0aXZpdHlUeXBlc1N1Y2Nlc3NBY3Rpb24sXG4gIGxpc3RNZW1iZXJBY3Rpdml0aWVzQWN0aW9uLFxuICBsaXN0TWVtYmVyQWN0aXZpdGllc0ZhaWx1cmVBY3Rpb24sXG4gIGxpc3RNZW1iZXJBY3Rpdml0aWVzU3VjY2Vzc0FjdGlvbixcbiAgbGlzdE1lbWJlckFjdGl2aXR5SW52aXRlc0FjdGlvbixcbiAgbGlzdE1lbWJlckFjdGl2aXR5SW52aXRlc0ZhaWx1cmVBY3Rpb24sXG4gIGxpc3RNZW1iZXJBY3Rpdml0eUludml0ZXNTdWNjZXNzQWN0aW9uLFxuICBsaXN0TWVtYmVyT3BlbkFjdGl2aXRpZXNBY3Rpb24sXG4gIGxpc3RNZW1iZXJPcGVuQWN0aXZpdGllc0ZhaWx1cmVBY3Rpb24sXG4gIGxpc3RNZW1iZXJPcGVuQWN0aXZpdGllc1N1Y2Nlc3NBY3Rpb24sXG4gIGxpc3RNZW1iZXJPcGVuQWN0aXZpdHlMb2NhdGlvbnNBY3Rpb24sXG4gIGxpc3RNZW1iZXJPcGVuQWN0aXZpdHlMb2NhdGlvbnNGYWlsdXJlQWN0aW9uLFxuICBsaXN0TWVtYmVyT3BlbkFjdGl2aXR5TG9jYXRpb25zU3VjY2Vzc0FjdGlvbixcbiAgbGlzdE1lbWJlck9wZW5BY3Rpdml0eVR5cGVzQWN0aW9uLFxuICBsaXN0TWVtYmVyT3BlbkFjdGl2aXR5VHlwZXNGYWlsdXJlQWN0aW9uLFxuICBsaXN0TWVtYmVyT3BlbkFjdGl2aXR5VHlwZXNTdWNjZXNzQWN0aW9uLFxuICBsaXN0VGVhbUFjdGl2aXRpZXNBY3Rpb24sXG4gIGxpc3RUZWFtQWN0aXZpdGllc0ZhaWx1cmVBY3Rpb24sXG4gIGxpc3RUZWFtQWN0aXZpdGllc1N1Y2Nlc3NBY3Rpb24sXG4gIGxpc3RUZWFtQWN0aXZpdHlQYXJ0aWNpcGFudHNTdWNjZXNzQWN0aW9uLFxuICBsaXN0VGVhbUxlYWRlckV4dHJhTWVtYmVyc1N1Y2Nlc3NBY3Rpb24sXG4gIHJlbW92ZU1lbWJlck9wZW5BY3Rpdml0eUFjdGlvbixcbiAgcmVzZW5kVGVhbUFjdGl2aXR5TWVtYmVySW52aXRlU3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVNZW1iZXJBY3Rpdml0eUFjdGlvbixcbiAgcmV0cmlldmVNZW1iZXJBY3Rpdml0eUZhaWx1cmVBY3Rpb24sXG4gIHJldHJpZXZlTWVtYmVyQWN0aXZpdHlJbnZpdGVBY3Rpb24sXG4gIHJldHJpZXZlTWVtYmVyQWN0aXZpdHlJbnZpdGVGYWlsdXJlQWN0aW9uLFxuICByZXRyaWV2ZU1lbWJlckFjdGl2aXR5SW52aXRlU3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVNZW1iZXJBY3Rpdml0eVN1Y2Nlc3NBY3Rpb24sXG4gIHJldHJpZXZlTWVtYmVyT3BlbkFjdGl2aXR5QWN0aW9uLFxuICByZXRyaWV2ZU1lbWJlck9wZW5BY3Rpdml0eUZhaWx1cmVBY3Rpb24sXG4gIHJldHJpZXZlTWVtYmVyT3BlbkFjdGl2aXR5U3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVUZWFtQWN0aXZpdHlBY3Rpb24sXG4gIHJldHJpZXZlVGVhbUFjdGl2aXR5RmFpbHVyZUFjdGlvbixcbiAgcmV0cmlldmVUZWFtQWN0aXZpdHlRUkNvZGVTdWNjZXNzQWN0aW9uLFxuICByZXRyaWV2ZVRlYW1BY3Rpdml0eVNldHRpbmdzQWN0aW9uLFxuICByZXRyaWV2ZVRlYW1BY3Rpdml0eVNldHRpbmdzRmFpbHVyZUFjdGlvbixcbiAgcmV0cmlldmVUZWFtQWN0aXZpdHlTZXR0aW5nc1N1Y2Nlc3NBY3Rpb24sXG4gIHJldHJpZXZlVGVhbUFjdGl2aXR5U3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVUZWFtRGVmYXVsdEFjdGl2aXR5U2V0dGluZ3NBY3Rpb24sXG4gIHJldHJpZXZlVGVhbURlZmF1bHRBY3Rpdml0eVNldHRpbmdzRmFpbHVyZUFjdGlvbixcbiAgcmV0cmlldmVUZWFtRGVmYXVsdEFjdGl2aXR5U2V0dGluZ3NTdWNjZXNzQWN0aW9uLFxuICB1cGRhdGVNZW1iZXJBY3Rpdml0eUludml0ZVN1Y2Nlc3NBY3Rpb24sXG4gIHVwZGF0ZU1lbWJlck9wZW5BY3Rpdml0eVN1Y2Nlc3NBY3Rpb24sXG4gIHVwZGF0ZVRlYW1BY3Rpdml0eUFjdGlvbixcbiAgdXBkYXRlVGVhbUFjdGl2aXR5RmFpbHVyZUFjdGlvbixcbiAgdXBkYXRlVGVhbUFjdGl2aXR5U3VjY2Vzc0FjdGlvbixcbiAgdXBkYXRlVGVhbU1lbWJlckFjdGl2aXR5SW52aXRlU3VjY2Vzc0FjdGlvbixcbn0gZnJvbSAnLi4vYWN0aW9ucyc7XG5pbXBvcnQge1xuICBBY3Rpdml0eSxcbiAgQWN0aXZpdHlJbnZpdGUsXG4gIEFjdGl2aXR5TG9jYXRpb24sXG4gIEFjdGl2aXR5U2V0dGluZ3MsXG4gIEFjdGl2aXR5VHlwZSxcbiAgRXZlbnQsXG4gIE1lbWJlckFjdGl2aXR5SW52aXRlLFxuICBPcGVuQWN0aXZpdHlcbn0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IE9wZW5BY3Rpdml0eVNlYXJjaFBhcmFtc0ludGVyZmFjZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtcbiAgTGlzdFJlc3VsdEludGVyZmFjZSxcbiAgUmV0cmlldmVSZXN1bHRJbnRlcmZhY2UsXG4gIFRlYW1BY3Rpdml0eUludGVyZmFjZSxcbiAgVGVhbUNhbGVuZGFyRXZlbnRSZXN1bHRJbnRlcmZhY2Vcbn0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQge1xuICBsaXN0TG9hZEZhaWx1cmUsXG4gIGxpc3RMb2FkU3VjY2VzcyxcbiAgbGlzdFN0YXJ0TG9hZGluZyxcbiAgcmV0cmlldmVMb2FkRmFpbHVyZSxcbiAgcmV0cmlldmVMb2FkU3VjY2VzcyxcbiAgcmV0cmlldmVTdGFydExvYWRpbmdcbn0gZnJvbSAnLi9yZWR1Y2VyLWhlbHBlcnMnO1xuXG4vLyAtLS0gSGVscGVyIEZ1bmN0aW9ucyAtLS1cblxuY29uc3QgdXBkYXRlTWVtYmVyQWN0aXZpdHlJbnZpdGVzID0gKGludml0ZXM6IEFycmF5PE1lbWJlckFjdGl2aXR5SW52aXRlPiB8IHVuZGVmaW5lZCB8IG51bGwsIHBheWxvYWQ6IEFjdGl2aXR5SW52aXRlKSA9PiB7XG4gIGlmICghaW52aXRlcykgcmV0dXJuIFtdO1xuICByZXR1cm4gaW52aXRlcy5tYXAoKGludml0ZTogTWVtYmVyQWN0aXZpdHlJbnZpdGUpID0+IHtcbiAgICBpZiAoaW52aXRlLm1lbWJlcl9pZCA9PT0gcGF5bG9hZC5tZW1iZXIuaWQpIHtcbiAgICAgIHJldHVybiBuZXcgTWVtYmVyQWN0aXZpdHlJbnZpdGUoXG4gICAgICAgIGludml0ZS5pZCxcbiAgICAgICAgcGF5bG9hZC5jb21tZW50LFxuICAgICAgICBpbnZpdGUuY3VycmVudF9udW1fYXR0ZW5kYW50cyxcbiAgICAgICAgcGF5bG9hZC5sYXN0X2ludml0ZSxcbiAgICAgICAgcGF5bG9hZC5sZWFkZXIsXG4gICAgICAgIHBheWxvYWQubWVtYmVyLmVtYWlsLFxuICAgICAgICBwYXlsb2FkLm1lbWJlci5pZCxcbiAgICAgICAgcGF5bG9hZC5tZW1iZXIubmFtZSxcbiAgICAgICAgcGF5bG9hZC5uZXh0X2ludml0ZSxcbiAgICAgICAgcGF5bG9hZC5yZXNwb25zZV9kYXRlLFxuICAgICAgICBwYXlsb2FkLnN0YXR1c1xuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGludml0ZTtcbiAgfSk7XG59O1xuXG5jb25zdCB1cGRhdGVFdmVudEludml0ZXMgPSAoZXZlbnRzOiBBcnJheTxFdmVudD4sIHBheWxvYWQ6IEFjdGl2aXR5SW52aXRlKSA9PiB7XG4gIHJldHVybiBldmVudHMubWFwKChldmVudDogRXZlbnQpID0+IHtcbiAgICBpZiAoZXZlbnQuaW52aXRhdGlvbl9pZCA9PT0gcGF5bG9hZC5pZCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uZXZlbnQsXG4gICAgICAgIGludml0YXRpb25fcmVzcG9uc2U6IHBheWxvYWQuc3RhdHVzLFxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIGV2ZW50O1xuICB9KTtcbn07XG5cbmNvbnN0IHVwZGF0ZUludml0ZWRNZW1iZXJzID0gKGludml0ZWRNZW1iZXJzOiBBcnJheTxNZW1iZXJBY3Rpdml0eUludml0ZT4sIHBheWxvYWQ6IEFjdGl2aXR5SW52aXRlIHwgTWVtYmVyQWN0aXZpdHlJbnZpdGUpID0+IHtcbiAgcmV0dXJuIGludml0ZWRNZW1iZXJzLm1hcCgodmFsdWU6IE1lbWJlckFjdGl2aXR5SW52aXRlKSA9PiB7XG4gICAgaWYgKHZhbHVlLmlkID09PSBwYXlsb2FkLmlkKSB7XG4gICAgICByZXR1cm4gbmV3IE1lbWJlckFjdGl2aXR5SW52aXRlKFxuICAgICAgICB2YWx1ZS5pZCxcbiAgICAgICAgcGF5bG9hZC5jb21tZW50LFxuICAgICAgICB2YWx1ZS5jdXJyZW50X251bV9hdHRlbmRhbnRzLFxuICAgICAgICBwYXlsb2FkLmxhc3RfaW52aXRlLFxuICAgICAgICB2YWx1ZS5sZWFkZXIsXG4gICAgICAgIHZhbHVlLm1lbWJlcl9lbWFpbCxcbiAgICAgICAgdmFsdWUubWVtYmVyX2lkLFxuICAgICAgICB2YWx1ZS5tZW1iZXJfbmFtZSxcbiAgICAgICAgcGF5bG9hZC5uZXh0X2ludml0ZSxcbiAgICAgICAgcGF5bG9hZC5yZXNwb25zZV9kYXRlLFxuICAgICAgICBwYXlsb2FkLnN0YXR1c1xuICAgICAgKVxuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG4gIH0pO1xufTtcblxuY29uc3QgdXBkYXRlT3BlbkFjdGl2aXRpZXMgPSAob3BlbkFjdGl2aXRpZXM6IEFycmF5PE9wZW5BY3Rpdml0eT4sIHBheWxvYWQ6IE9wZW5BY3Rpdml0eSkgPT4ge1xuICByZXR1cm4gb3BlbkFjdGl2aXRpZXMubWFwKChvcGVuQWN0aXZpdHk6IE9wZW5BY3Rpdml0eSkgPT4ge1xuICAgIGlmIChvcGVuQWN0aXZpdHkuaWQgPT09IHBheWxvYWQuaWQpIHtcbiAgICAgIHJldHVybiBwYXlsb2FkO1xuICAgIH1cbiAgICByZXR1cm4gb3BlbkFjdGl2aXR5O1xuICB9KTtcbn07XG5cbmNvbnN0IHVwZGF0ZVRlYW1BY3Rpdml0eUludml0ZSA9IChzdGF0ZTogQ2FsZW5kYXJTdGF0ZSwgcGF5bG9hZDogQWN0aXZpdHlJbnZpdGUgfCBNZW1iZXJBY3Rpdml0eUludml0ZSkgPT4ge1xuICBpZiAoc3RhdGUuY3VycmVudFRlYW1BY3Rpdml0eT8ucmVzdWx0KSB7XG4gICAgaWYgKHN0YXRlLmN1cnJlbnRUZWFtQWN0aXZpdHkucmVzdWx0LmFjdGl2aXR5Lmludml0ZWRfbWVtYmVycy5maW5kSW5kZXgoKHZhbHVlOiBNZW1iZXJBY3Rpdml0eUludml0ZSkgPT4gdmFsdWUuaWQgPT09IHBheWxvYWQuaWQpICE9PSAtMSkge1xuICAgICAgbGV0IGN1cnJlbnRTdGF0ZSA9IHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGN1cnJlbnRUZWFtQWN0aXZpdHk6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5jdXJyZW50VGVhbUFjdGl2aXR5LFxuICAgICAgICAgIHJlc3VsdDoge1xuICAgICAgICAgICAgLi4uc3RhdGUuY3VycmVudFRlYW1BY3Rpdml0eS5yZXN1bHQsXG4gICAgICAgICAgICBhY3Rpdml0eToge1xuICAgICAgICAgICAgICAuLi5zdGF0ZS5jdXJyZW50VGVhbUFjdGl2aXR5LnJlc3VsdC5hY3Rpdml0eSxcbiAgICAgICAgICAgICAgaW52aXRlZF9tZW1iZXJzOiB1cGRhdGVJbnZpdGVkTWVtYmVycyhzdGF0ZS5jdXJyZW50VGVhbUFjdGl2aXR5LnJlc3VsdC5hY3Rpdml0eS5pbnZpdGVkX21lbWJlcnMsIHBheWxvYWQpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBjb25zdCBhY3Rpdml0eUlkID0gY3VycmVudFN0YXRlLmN1cnJlbnRUZWFtQWN0aXZpdHkucmVzdWx0LmFjdGl2aXR5LmlkO1xuXG4gICAgICBpZiAoY3VycmVudFN0YXRlLnRlYW1FdmVudHM/LnZhbHVlPy5yZXN1bHRzKSB7XG4gICAgICAgIGN1cnJlbnRTdGF0ZS50ZWFtRXZlbnRzID0ge1xuICAgICAgICAgIC4uLmN1cnJlbnRTdGF0ZS50ZWFtRXZlbnRzLFxuICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAuLi5jdXJyZW50U3RhdGUudGVhbUV2ZW50cy52YWx1ZSxcbiAgICAgICAgICAgIHJlc3VsdHM6IGN1cnJlbnRTdGF0ZS50ZWFtRXZlbnRzLnZhbHVlLnJlc3VsdHMubWFwKChldmVudDogRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgY3VycmVudEV2ZW50ID0gey4uLmV2ZW50fTtcbiAgICAgICAgICAgICAgaWYgKGN1cnJlbnRFdmVudC5hY3Rpdml0eV9pZCA9PT0gYWN0aXZpdHlJZCkge1xuICAgICAgICAgICAgICAgIGN1cnJlbnRFdmVudC5pbnZpdGVkX21lbWJlcnMgPSB1cGRhdGVJbnZpdGVkTWVtYmVycyhjdXJyZW50RXZlbnQuaW52aXRlZF9tZW1iZXJzIHx8IFtdLCBwYXlsb2FkKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gY3VycmVudEV2ZW50O1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBjdXJyZW50U3RhdGUgYXMgQ2FsZW5kYXJTdGF0ZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHN0YXRlO1xufVxuXG4vLyAtLS0gUmVkdWNlciAtLS1cblxuZXhwb3J0IGNvbnN0IGNhbGVuZGFyUmVkdWNlciA9IGNyZWF0ZVJlZHVjZXIoXG4gIGluaXRpYWxDYWxlbmRhclN0YXRlLFxuXG4gIC8vIENsZWFyIEFjdGlvbnNcbiAgb24oY2xlYXJTdG9yZUFjdGlvbiwgKCkgPT4gaW5pdGlhbENhbGVuZGFyU3RhdGUpLFxuICBvbihjbGVhck1lbWJlckFjdGl2aXR5QWN0aW9uLCAoc3RhdGU6IENhbGVuZGFyU3RhdGUpID0+ICh7IC4uLnN0YXRlLCBjdXJyZW50TWVtYmVyQWN0aXZpdHk6IHVuZGVmaW5lZCB9KSksXG4gIG9uKGNsZWFyTWVtYmVyQWN0aXZpdHlJbnZpdGVBY3Rpb24sIChzdGF0ZTogQ2FsZW5kYXJTdGF0ZSkgPT4gKHsgLi4uc3RhdGUsIGN1cnJlbnRNZW1iZXJBY3Rpdml0eUludml0ZTogdW5kZWZpbmVkIH0pKSxcbiAgb24oY2xlYXJNZW1iZXJPcGVuQWN0aXZpdHlBY3Rpb24sIChzdGF0ZTogQ2FsZW5kYXJTdGF0ZSkgPT4gKHsgLi4uc3RhdGUsIGN1cnJlbnRNZW1iZXJPcGVuQWN0aXZpdHk6IHVuZGVmaW5lZCB9KSksXG4gIG9uKGNsZWFyVGVhbUFjdGl2aXR5QWN0aW9uLCAoc3RhdGU6IENhbGVuZGFyU3RhdGUpID0+ICh7IC4uLnN0YXRlLCBjdXJyZW50VGVhbUFjdGl2aXR5OiB1bmRlZmluZWQgfSkpLFxuICBvbihjbGVhclRlYW1BY3Rpdml0aWVzQWN0aW9uLCAoc3RhdGU6IENhbGVuZGFyU3RhdGUpID0+ICh7IC4uLnN0YXRlLCB0ZWFtRXZlbnRzOiB1bmRlZmluZWQgfSkpLFxuXG4gIC8vIE1lbWJlciBBY3Rpdml0eSBJbnZpdGVzXG4gIG9uKHJldHJpZXZlTWVtYmVyQWN0aXZpdHlJbnZpdGVBY3Rpb24sIHN0YXRlID0+ICh7IC4uLnN0YXRlLCBjdXJyZW50TWVtYmVyQWN0aXZpdHlJbnZpdGU6IHJldHJpZXZlU3RhcnRMb2FkaW5nKHN0YXRlLmN1cnJlbnRNZW1iZXJBY3Rpdml0eUludml0ZSkgfSkpLFxuICBvbihyZXRyaWV2ZU1lbWJlckFjdGl2aXR5SW52aXRlRmFpbHVyZUFjdGlvbiwgKHN0YXRlLCB7IHBheWxvYWQgfSkgPT4gKHsgLi4uc3RhdGUsIGN1cnJlbnRNZW1iZXJBY3Rpdml0eUludml0ZTogcmV0cmlldmVMb2FkRmFpbHVyZTxBY3Rpdml0eUludml0ZT4ocGF5bG9hZCkgfSkpLFxuICBvbihyZXRyaWV2ZU1lbWJlckFjdGl2aXR5SW52aXRlU3VjY2Vzc0FjdGlvbiwgKHN0YXRlLCB7IHBheWxvYWQgfSkgPT4gKHsgLi4uc3RhdGUsIGN1cnJlbnRNZW1iZXJBY3Rpdml0eUludml0ZTogcmV0cmlldmVMb2FkU3VjY2VzcyhwYXlsb2FkKSB9KSksXG5cbiAgLy8gTWVtYmVyIEFjdGl2aXRpZXNcbiAgb24ocmV0cmlldmVNZW1iZXJBY3Rpdml0eUFjdGlvbiwgc3RhdGUgPT4gKHsgLi4uc3RhdGUsIGN1cnJlbnRNZW1iZXJBY3Rpdml0eTogcmV0cmlldmVTdGFydExvYWRpbmcoc3RhdGUuY3VycmVudE1lbWJlckFjdGl2aXR5KSB9KSksXG4gIG9uKHJldHJpZXZlTWVtYmVyQWN0aXZpdHlGYWlsdXJlQWN0aW9uLCAoc3RhdGUsIHsgcGF5bG9hZCB9KSA9PiAoeyAuLi5zdGF0ZSwgY3VycmVudE1lbWJlckFjdGl2aXR5OiByZXRyaWV2ZUxvYWRGYWlsdXJlPEFjdGl2aXR5PihwYXlsb2FkKSB9KSksXG4gIG9uKHJldHJpZXZlTWVtYmVyQWN0aXZpdHlTdWNjZXNzQWN0aW9uLCAoc3RhdGUsIHsgcGF5bG9hZCB9KSA9PiAoeyAuLi5zdGF0ZSwgY3VycmVudE1lbWJlckFjdGl2aXR5OiByZXRyaWV2ZUxvYWRTdWNjZXNzKHBheWxvYWQpIH0pKSxcblxuICAvLyBNZW1iZXIgT3BlbiBBY3Rpdml0aWVzXG4gIG9uKHJldHJpZXZlTWVtYmVyT3BlbkFjdGl2aXR5QWN0aW9uLCBzdGF0ZSA9PiAoeyAuLi5zdGF0ZSwgY3VycmVudE1lbWJlck9wZW5BY3Rpdml0eTogcmV0cmlldmVTdGFydExvYWRpbmcoc3RhdGUuY3VycmVudE1lbWJlck9wZW5BY3Rpdml0eSkgfSkpLFxuICBvbihyZXRyaWV2ZU1lbWJlck9wZW5BY3Rpdml0eUZhaWx1cmVBY3Rpb24sIChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+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+IHtcbiAgICBpZiAoc3RhdGUuY3VycmVudFRlYW1BY3Rpdml0eT8ucmVzdWx0ICYmIHBheWxvYWQudGVhbUlkID09PSBzdGF0ZS5jdXJyZW50VGVhbUFjdGl2aXR5LnJlc3VsdC50ZWFtLmlkKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgY3VycmVudFRlYW1BY3Rpdml0eToge1xuICAgICAgICAgIC4uLnN0YXRlLmN1cnJlbnRUZWFtQWN0aXZpdHksXG4gICAgICAgICAgcmVzdWx0OiB7XG4gICAgICAgICAgICAuLi5zdGF0ZS5jdXJyZW50VGVhbUFjdGl2aXR5LnJlc3VsdCxcbiAgICAgICAgICAgIGV4dHJhTWVtYmVyczogcGF5bG9hZC5yZXN1bHRzLFxuICAgICAgICAgICAgZXh0cmFNZW1iZXJzTG9hZGVkOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBsb2FkaW5nOiBmYWxzZVxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gc3RhdGU7XG4gIH0pLFxuXG4gIC8vIFRlYW0gQWN0aXZpdHkgQWN0aW9uc1xuICBvbihyZXRyaWV2ZVRlYW1BY3Rpdml0eUFjdGlvbiwgc3RhdGUgPT4gKHsgLi4uc3RhdGUsIGN1cnJlbnRUZWFtQWN0aXZpdHk6IHJldHJpZXZlU3RhcnRMb2FkaW5nKHN0YXRlLmN1cnJlbnRUZWFtQWN0aXZpdHkpIH0pKSxcbiAgb24ocmV0cmlldmVUZWFtQWN0aXZpdHlGYWlsdXJlQWN0aW9uLCAoc3RhdGUsIHsgcGF5bG9hZCB9KSA9PiAoeyAuLi5zdGF0ZSwgY3VycmVudFRlYW1BY3Rpdml0eTogcmV0cmlldmVMb2FkRmFpbHVyZTxUZWFtQWN0aXZpdHlJbnRlcmZhY2U+KHBheWxvYWQpIH0pKSxcbiAgb24ocmV0cmlldmVUZWFtQWN0aXZpdHlTdWNjZXNzQWN0aW9uLCAoc3RhdGUsIHsgcGF5bG9hZCB9KSA9PiAoeyAuLi5zdGF0ZSwgY3VycmVudFRlYW1BY3Rpdml0eTogcmV0cmlldmVMb2FkU3VjY2VzcyhwYXlsb2FkKSB9KSksXG4gIG9uKHJldHJpZXZlVGVhbUFjdGl2aXR5UVJDb2RlU3VjY2Vzc0FjdGlvbiwgKHN0YXRlLCB7IHBheWxvYWQgfSkgPT4ge1xuICAgIGlmIChzdGF0ZS5jdXJyZW50VGVhbUFjdGl2aXR5Py5yZXN1bHQgJiYgcGF5bG9hZC5hY3Rpdml0eS5pZCA9PT0gc3RhdGUuY3VycmVudFRlYW1BY3Rpdml0eS5yZXN1bHQuYWN0aXZpdHkuaWQgJiYgcGF5bG9hZC50ZWFtSWQgPT09IHN0YXRlLmN1cnJlbnRUZWFtQWN0aXZpdHkucmVzdWx0LnRlYW0uaWQpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBjdXJyZW50VGVhbUFjdGl2aXR5OiB7XG4gICAgICAgICAgLi4uc3RhdGUuY3VycmVudFRlYW1BY3Rpdml0eSxcbiAgICAgICAgICByZXN1bHQ6IHtcbiAgICAgICAgICAgIC4uLnN0YXRlLmN1cnJlbnRUZWFtQWN0aXZpdHkucmVzdWx0LFxuICAgICAgICAgICAgYWN0aXZpdHk6IHBheWxvYWQuYWN0aXZpdHlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBzdGF0ZTtcbiAgfSksXG5cbiAgLy8gVGVhbSBBY3Rpdml0eSBTZXR0aW5nc1xuICBvbihyZXRyaWV2ZVRlYW1BY3Rpdml0eVNldHRpbmdzQWN0aW9uLCBzdGF0ZSA9PiAoeyAuLi5zdGF0ZSwgYWN0aXZpdHlTZXR0aW5nczogcmV0cmlldmVTdGFydExvYWRpbmcoc3RhdGUuYWN0aXZpdHlTZXR0aW5ncykgfSkpLFxuICBvbihyZXRyaWV2ZVRlYW1BY3Rpdml0eVNldHRpbmdzRmFpbHVyZUFjdGlvbiwgKHN0YXRlLCB7IHBheWxvYWQgfSkgPT4gKHsgLi4uc3RhdGUsIGFjdGl2aXR5U2V0dGluZ3M6IHJldHJpZXZlTG9hZEZhaWx1cmU8QWN0aXZpdHlTZXR0aW5ncz4ocGF5bG9hZCkgfSkpLFxuICBvbihyZXRyaWV2ZVRlYW1BY3Rpdml0eVNldHRpbmdzU3VjY2Vzc0FjdGlvbiwgKHN0YXRlLCB7IHBheWxvYWQgfSkgPT4gKHsgLi4uc3RhdGUsIGFjdGl2aXR5U2V0dGluZ3M6IHJldHJpZXZlTG9hZFN1Y2Nlc3MocGF5bG9hZCkgfSkpLFxuXG4gIC8vIFRlYW0gRGVmYXVsdCBBY3Rpdml0eSBTZXR0aW5nc1xuICBvbihyZXRyaWV2ZVRlYW1EZWZhdWx0QWN0aXZpdHlTZXR0aW5nc0FjdGlvbiwgc3RhdGUgPT4gKHsgLi4uc3RhdGUsIG5ld1RlYW1BY3Rpdml0eTogcmV0cmlldmVTdGFydExvYWRpbmcoc3RhdGUubmV3VGVhbUFjdGl2aXR5KSB9KSksXG4gIG9uKHJldHJpZXZlVGVhbURlZmF1bHRBY3Rpdml0eVNldHRpbmdzRmFpbHVyZUFjdGlvbiwgKHN0YXRlLCB7IHBheWxvYWQgfSkgPT4gKHsgLi4uc3RhdGUsIG5ld1RlYW1BY3Rpdml0eTogcmV0cmlldmVMb2FkRmFpbHVyZTxBY3Rpdml0eT4ocGF5bG9hZCkgfSkpLFxuICBvbihyZXRyaWV2ZVRlYW1EZWZhdWx0QWN0aXZpdHlTZXR0aW5nc1N1Y2Nlc3NBY3Rpb24sIChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+ICh7IC4uLnN0YXRlLCBuZXdUZWFtQWN0aXZpdHk6IHJldHJpZXZlTG9hZFN1Y2Nlc3MocGF5bG9hZCkgfSkpLFxuXG4gIC8vIFVwZGF0ZSBNZW1iZXIgQWN0aXZpdHkgSW52aXRlXG4gIG9uKHVwZGF0ZU1lbWJlckFjdGl2aXR5SW52aXRlU3VjY2Vzc0FjdGlvbiwgKHN0YXRlLCB7IHBheWxvYWQgfSkgPT4ge1xuICAgIGxldCBjdXJyZW50U3RhdGUgPSB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIGN1cnJlbnRNZW1iZXJBY3Rpdml0eUludml0ZTogcmV0cmlldmVMb2FkU3VjY2VzcyhwYXlsb2FkKVxuICAgIH07XG5cbiAgICBpZiAoY3VycmVudFN0YXRlLmN1cnJlbnRNZW1iZXJBY3Rpdml0eT8ucmVzdWx0Py5cblxuICAgICAgaWQgPT09IHBheWxvYWQuYWN0aXZpdHkuaWQpIHtcbiAgICAgIGN1cnJlbnRTdGF0ZS5jdXJyZW50TWVtYmVyQWN0aXZpdHkgPSB7XG4gICAgICAgIC4uLmN1cnJlbnRTdGF0ZS5jdXJyZW50TWVtYmVyQWN0aXZpdHksXG4gICAgICAgIHJlc3VsdDoge1xuICAgICAgICAgIC4uLmN1cnJlbnRTdGF0ZS5jdXJyZW50TWVtYmVyQWN0aXZpdHkucmVzdWx0LFxuICAgICAgICAgIGludml0ZWRfbWVtYmVyczogdXBkYXRlTWVtYmVyQWN0aXZpdHlJbnZpdGVzKFxuICAgICAgICAgICAgY3VycmVudFN0YXRlLmN1cnJlbnRNZW1iZXJBY3Rpdml0eS5yZXN1bHQuaW52aXRlZF9tZW1iZXJzLFxuICAgICAgICAgICAgcGF5bG9hZFxuICAgICAgICAgICksXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmIChjdXJyZW50U3RhdGUubWVtYmVyRXZlbnRzPy52YWx1ZT8ucmVzdWx0KSB7XG4gICAgICBjb25zdCBleGlzdGluZ0V2ZW50cyA9IGN1cnJlbnRTdGF0ZS5tZW1iZXJFdmVudHMudmFsdWUucmVzdWx0LmdldChwYXlsb2FkLm1lbWJlci5pZCk7XG5cbiAgICAgIGlmIChleGlzdGluZ0V2ZW50cykge1xuICAgICAgICBjdXJyZW50U3RhdGUubWVtYmVyRXZlbnRzID0ge1xuICAgICAgICAgIC4uLmN1cnJlbnRTdGF0ZS5tZW1iZXJFdmVudHMsXG4gICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgIC4uLmN1cnJlbnRTdGF0ZS5tZW1iZXJFdmVudHMudmFsdWUsXG4gICAgICAgICAgICByZXN1bHQ6IG5ldyBNYXAoY3VycmVudFN0YXRlLm1lbWJlckV2ZW50cy52YWx1ZS5yZXN1bHQpLnNldChcbiAgICAgICAgICAgICAgcGF5bG9hZC5tZW1iZXIuaWQsXG4gICAgICAgICAgICAgIHVwZGF0ZUV2ZW50SW52aXRlcyhleGlzdGluZ0V2ZW50cywgcGF5bG9hZClcbiAgICAgICAgICAgICksXG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChjdXJyZW50U3RhdGUuYWN0aXZpdHlJbnZpdGVzPy5yZXN1bHRzKSB7XG4gICAgICBjdXJyZW50U3RhdGUuYWN0aXZpdHlJbnZpdGVzID0ge1xuICAgICAgICAuLi5jdXJyZW50U3RhdGUuYWN0aXZpdHlJbnZpdGVzLFxuICAgICAgICByZXN1bHRzOiBjdXJyZW50U3RhdGUuYWN0aXZpdHlJbnZpdGVzLnJlc3VsdHMubWFwKChpbnZpdGU6IEFjdGl2aXR5SW52aXRlKSA9PiB7XG4gICAgICAgICAgaWYgKGludml0ZS5pZCA9PT0gcGF5bG9hZC5pZCkge1xuICAgICAgICAgICAgcmV0dXJuIHBheWxvYWQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBpbnZpdGU7XG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGN1cnJlbnRTdGF0ZTtcbiAgfSksXG5cbiAgLy8gVXBkYXRlIE1lbWJlciBPcGVuIEFjdGl2aXR5XG4gIG9uKHVwZGF0ZU1lbWJlck9wZW5BY3Rpdml0eVN1Y2Nlc3NBY3Rpb24sIChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+IHtcbiAgICBsZXQgY3VycmVudFN0YXRlID0ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBjdXJyZW50TWVtYmVyT3BlbkFjdGl2aXR5OiByZXRyaWV2ZUxvYWRTdWNjZXNzKHBheWxvYWQpXG4gICAgfTtcblxuICAgIGlmIChjdXJyZW50U3RhdGUubWVtYmVyT3BlbkFjdGl2aXRpZXM/LnZhbHVlPy5yZXN1bHQpIHtcbiAgICAgIGNvbnN0IGV4aXN0aW5nT3BlbkFjdGl2aXRpZXMgPSBjdXJyZW50U3RhdGUubWVtYmVyT3BlbkFjdGl2aXRpZXMudmFsdWUucmVzdWx0LmdldChwYXlsb2FkLm1lbWJlcl9pZCk7XG5cbiAgICAgIGlmIChleGlzdGluZ09wZW5BY3Rpdml0aWVzKSB7XG4gICAgICAgIGN1cnJlbnRTdGF0ZS5tZW1iZXJPcGVuQWN0aXZpdGllcyA9IHtcbiAgICAgICAgICAuLi5jdXJyZW50U3RhdGUubWVtYmVyT3BlbkFjdGl2aXRpZXMsXG4gICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgIC4uLmN1cnJlbnRTdGF0ZS5tZW1iZXJPcGVuQWN0aXZpdGllcy52YWx1ZSxcbiAgICAgICAgICAgIHJlc3VsdDogbmV3IE1hcChjdXJyZW50U3RhdGUubWVtYmVyT3BlbkFjdGl2aXRpZXMudmFsdWUucmVzdWx0KS5zZXQoXG4gICAgICAgICAgICAgIHBheWxvYWQubWVtYmVyX2lkLFxuICAgICAgICAgICAgICB1cGRhdGVPcGVuQWN0aXZpdGllcyhleGlzdGluZ09wZW5BY3Rpdml0aWVzLCBwYXlsb2FkKVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGN1cnJlbnRTdGF0ZS5hY3Rpdml0eUludml0ZXM/LnJlc3VsdHMpIHtcbiAgICAgIGN1cnJlbnRTdGF0ZS5hY3Rpdml0eUludml0ZXMgPSB7XG4gICAgICAgIC4uLmN1cnJlbnRTdGF0ZS5hY3Rpdml0eUludml0ZXMsXG4gICAgICAgIHJlc3VsdHM6IGN1cnJlbnRTdGF0ZS5hY3Rpdml0eUludml0ZXMucmVzdWx0cy5tYXAoKGludml0ZTogQWN0aXZpdHlJbnZpdGUpID0+IHtcbiAgICAgICAgICBpZiAoaW52aXRlLmFjdGl2aXR5LmlkID09PSBwYXlsb2FkLmlkKSB7XG4gICAgICAgICAgICBjb25zdCBpbnZpdGVkTWVtYmVyID0gcGF5bG9hZC5pbnZpdGVkX21lbWJlcnMuZmluZCgoaW52aXRlZE1lbWJlcjogTWVtYmVyQWN0aXZpdHlJbnZpdGUpID0+IGludml0ZWRNZW1iZXIuaWQgPT09IGludml0ZS5pZCk7XG5cbiAgICAgICAgICAgIGlmIChpbnZpdGVkTWVtYmVyKSB7XG4gICAgICAgICAgICAgIHJldHVybiBuZXcgQWN0aXZpdHlJbnZpdGUoXG4gICAgICAgICAgICAgICAgaW52aXRlLmlkLFxuICAgICAgICAgICAgICAgIGludml0ZS5hY3Rpdml0eSxcbiAgICAgICAgICAgICAgICBpbnZpdGVkTWVtYmVyLmNvbW1lbnQsXG4gICAgICAgICAgICAgICAgaW52aXRlLmNyZWF0ZWQsXG4gICAgICAgICAgICAgICAgaW52aXRlLmhhc191bnBhaWRfaW52b2ljZXMsXG4gICAgICAgICAgICAgICAgaW52aXRlZE1lbWJlci5sYXN0X2ludml0ZSB8fCAnJyBhcyBzdHJpbmcsXG4gICAgICAgICAgICAgICAgaW52aXRlLmxlYWRlcixcbiAgICAgICAgICAgICAgICBpbnZpdGUubWVtYmVyLFxuICAgICAgICAgICAgICAgIGludml0ZWRNZW1iZXIubmV4dF9pbnZpdGUsXG4gICAgICAgICAgICAgICAgaW52aXRlLnJlbWluZGVkLFxuICAgICAgICAgICAgICAgIGludml0ZWRNZW1iZXIucmVzcG9uc2VfZGF0ZSxcbiAgICAgICAgICAgICAgICBpbnZpdGVkTWVtYmVyLnN0YXR1cyxcbiAgICAgICAgICAgICAgICBpbnZpdGUudG9rZW4sXG4gICAgICAgICAgICAgICAgaW52aXRlLnVucGFpZF9pbnZvaWNlcyxcbiAgICAgICAgICAgICAgICBpbnZpdGUudXBkYXRlZFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXR1cm4gaW52aXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gaW52aXRlO1xuICAgICAgICB9KVxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gY3VycmVudFN0YXRlO1xuICB9KSxcblxuICAvLyBSZW1vdmUgbWVtYmVyIG9wZW4gYWN0aXZpdHlcbiAgb24ocmVtb3ZlTWVtYmVyT3BlbkFjdGl2aXR5QWN0aW9uLCAoc3RhdGU6IENhbGVuZGFyU3RhdGUsIHsgcGF5bG9hZCB9OiB7cGF5bG9hZDoge21lbWJlcklkOiBzdHJpbmcsIGFjdGl2aXR5SWQ6IHN0cmluZ319KSA9PiB7XG4gICAgbGV0IGN1cnJlbnRTdGF0ZSA9IHtcbiAgICAgIC4uLnN0YXRlXG4gICAgfTtcblxuICAgIGlmIChzdGF0ZS5jdXJyZW50TWVtYmVyT3BlbkFjdGl2aXR5Py5yZXN1bHQ/LmlkID09PSBwYXlsb2FkLmFjdGl2aXR5SWQpIHtcbiAgICAgIGN1cnJlbnRTdGF0ZS5jdXJyZW50TWVtYmVyT3BlbkFjdGl2aXR5ID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGlmIChjdXJyZW50U3RhdGUubWVtYmVyT3BlbkFjdGl2aXRpZXM/LnZhbHVlPy5yZXN1bHQpIHtcbiAgICAgIGNvbnN0IGV4aXN0aW5nT3BlbkFjdGl2aXRpZXMgPSBjdXJyZW50U3RhdGUubWVtYmVyT3BlbkFjdGl2aXRpZXMudmFsdWUucmVzdWx0LmdldChwYXlsb2FkLm1lbWJlcklkKTtcblxuICAgICAgaWYgKGV4aXN0aW5nT3BlbkFjdGl2aXRpZXMpIHtcbiAgICAgICAgY29uc3QgdXBkYXRlZE9wZW5BY3Rpdml0aWVzID0gZXhpc3RpbmdPcGVuQWN0aXZpdGllcy5tYXAoXG4gICAgICAgICAgKG9wZW5BY3Rpdml0eTogT3BlbkFjdGl2aXR5KSA9PiB7XG4gICAgICAgICAgICBpZiAob3BlbkFjdGl2aXR5LmlkID09PSBwYXlsb2FkLmFjdGl2aXR5SWQgJiYgb3BlbkFjdGl2aXR5Lm1lbWJlcl9pZCA9PT0gcGF5bG9hZC5tZW1iZXJJZCkge1xuICAgICAgICAgICAgICByZXR1cm4gbmV3IE9wZW5BY3Rpdml0eShcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkuaWQsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LmFjdGl2aXR5X2dyb3VwX2lkLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5hY3Rpdml0eV90eXBlX2lkLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5jbHViX2lkLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5sb2NhdGlvbl9pZCxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkubWVtYmVyX2lkLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS50ZWFtX2lkLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5hY3Rpdml0eV9sb2NhdGlvbixcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkuYWN0aXZpdHlfdHlwZV9uYW1lLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5hbGxvd19tYXliZSxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkuY2FsZW5kYXJfbmFtZSxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkuY3JlYXRlZCxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkuY3VycmVudF9udW1fYXR0ZW5kYW50cyxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkuZGF5LFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5kZWZhdWx0X2ZlZSxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkuZGVzY3JpcHRpb24sXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LmVuZCxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkuZW5kX3RpbWUsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LmZpbGUsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lmludml0YXRpb25fdGV4dCxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkuaW52aXRlX2ZpcnN0X2RheXMsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lmludml0ZV9ncm91cHMsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lmludml0ZV9oaWRlX2JlZm9yZV9zZW50LFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5pbnZpdGVfbGFzdF9yZXNwb25zZV9kYXRlLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5pbnZpdGVfcmVtaW5kLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5pbnZpdGVfcmVtaW5kX3JlY2VpdmVycyxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkuaW52aXRlX3NlY29uZF9kYXlzLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5pbnZpdGVfc2V0dGluZ3MsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lmludml0ZWRfbWVtYmVycy5maWx0ZXIoKGludml0ZTogTWVtYmVyQWN0aXZpdHlJbnZpdGUpID0+IGludml0ZS5tZW1iZXJfaWQgIT09IHBheWxvYWQubWVtYmVySWQpLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5sYXN0X3Jlc3BvbnNlX2RhdGUsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LmxvY2F0aW9uX25hbWUsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lm1heF9udW1fYXR0ZW5kYW50cyxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkubWF4X251bV9hdHRlbmRhbnRzX3R5cGUsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lm1lZXRfdXBfcGxhY2UsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lm1lZXRfdXBfdGltZSxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkubWVldF91cF90aW1lX2Rpc3BsYXksXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lm1lZXRfdXBfdGltZV9zaG93LFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5tZW1iZXJfaW52b2ljZSxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkubWVtYmVyX25hbWUsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lm9wZW5fYWN0aXZpdHksXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lm9wdGlvbmFsX2ZlZXMsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lm9wdGlvbmFsX2ZlZV9yZXF1aXJlZCxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkub3B0aW9uYWxfZmVlX3R5cGUsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LnJlcGVhdCxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkucmVwZWF0X251bSxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkucmVwZWF0X3RvX2RheSxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkucmVwZWF0X3R5cGUsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LnNob3dfb3RoZXJfaW52aXRlZCxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkuc3RhcnQsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LnN0YXJ0X3RpbWUsXG4gICAgICAgICAgICAgICAgJ3dhaXRpbmcnLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS50aXRsZSxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkudXBkYXRlZCxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkudXNlX2ludml0ZSxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkudXBkYXRlX3JlcGVhdGluZ1xuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gb3BlbkFjdGl2aXR5O1xuICAgICAgICAgIH1cbiAgICAgICAgKTtcblxuICAgICAgICBjdXJyZW50U3RhdGUubWVtYmVyT3BlbkFjdGl2aXRpZXMgPSB7XG4gICAgICAgICAgLi4uY3VycmVudFN0YXRlLm1lbWJlck9wZW5BY3Rpdml0aWVzLFxuICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAuLi5jdXJyZW50U3RhdGUubWVtYmVyT3BlbkFjdGl2aXRpZXMudmFsdWUsXG4gICAgICAgICAgICByZXN1bHQ6IG5ldyBNYXA8c3RyaW5nLCBBcnJheTxPcGVuQWN0aXZpdHk+PihjdXJyZW50U3RhdGUubWVtYmVyT3BlbkFjdGl2aXRpZXMudmFsdWUucmVzdWx0KS5zZXQocGF5bG9hZC5tZW1iZXJJZCwgdXBkYXRlZE9wZW5BY3Rpdml0aWVzKVxuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gY3VycmVudFN0YXRlXG4gIH0pLFxuXG4gIC8vIFVwZGF0ZSBUZWFtIEFjdGl2aXR5XG4gIG9uKHVwZGF0ZVRlYW1BY3Rpdml0eUFjdGlvbiwgc3RhdGUgPT4gKHsgLi4uc3RhdGUsIGN1cnJlbnRUZWFtQWN0aXZpdHk6IHJldHJpZXZlU3RhcnRMb2FkaW5nKHN0YXRlLmN1cnJlbnRUZWFtQWN0aXZpdHkpIH0pKSxcbiAgb24odXBkYXRlVGVhbUFjdGl2aXR5RmFpbHVyZUFjdGlvbiwgKHN0YXRlLCB7IHBheWxvYWQgfSkgPT4gKHsgLi4uc3RhdGUsIGN1cnJlbnRUZWFtQWN0aXZpdHk6IHJldHJpZXZlTG9hZEZhaWx1cmU8VGVhbUFjdGl2aXR5SW50ZXJmYWNlPihwYXlsb2FkKSB9KSksXG4gIG9uKHVwZGF0ZVRlYW1BY3Rpdml0eVN1Y2Nlc3NBY3Rpb24sIChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+IHtcbiAgICBpZiAoc3RhdGUuY3VycmVudFRlYW1BY3Rpdml0eT8ucmVzdWx0ICYmIHBheWxvYWQuaWQgPT09IHN0YXRlLmN1cnJlbnRUZWFtQWN0aXZpdHkucmVzdWx0LmFjdGl2aXR5LmlkKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgY3VycmVudFRlYW1BY3Rpdml0eToge1xuICAgICAgICAgIC4uLnN0YXRlLmN1cnJlbnRUZWFtQWN0aXZpdHksXG4gICAgICAgICAgcmVzdWx0OiB7XG4gICAgICAgICAgICAuLi5zdGF0ZS5jdXJyZW50VGVhbUFjdGl2aXR5LnJlc3VsdCxcbiAgICAgICAgICAgIGFjdGl2aXR5OiBwYXlsb2FkXG4gICAgICAgICAgfSxcbiAgICAgICAgICBsb2FkaW5nOiBmYWxzZVxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gc3RhdGU7XG4gIH0pLFxuXG4gIC8vIFJlc2VuZCB0ZWFtIGFjdGl2aXR5IGludml0ZVxuICBvbihyZXNlbmRUZWFtQWN0aXZpdHlNZW1iZXJJbnZpdGVTdWNjZXNzQWN0aW9uLCAoc3RhdGU6IENhbGVuZGFyU3RhdGUsIHtwYXlsb2FkfToge3BheWxvYWQ6IEFjdGl2aXR5SW52aXRlfSkgPT4gdXBkYXRlVGVhbUFjdGl2aXR5SW52aXRlKHN0YXRlLCBwYXlsb2FkKSksXG5cbiAgLy8gVXBkYXRlIFRlYW0gYWN0aXZpdHkgaW52aXRlXG4gIG9uKHVwZGF0ZVRlYW1NZW1iZXJBY3Rpdml0eUludml0ZVN1Y2Nlc3NBY3Rpb24sIChzdGF0ZTogQ2FsZW5kYXJTdGF0ZSwge3BheWxvYWR9OiB7cGF5bG9hZDogTWVtYmVyQWN0aXZpdHlJbnZpdGV9KSA9PiB1cGRhdGVUZWFtQWN0aXZpdHlJbnZpdGUoc3RhdGUsIHBheWxvYWQpKSxcblxuICAvLyBEZWxldGUgVGVhbSBBY3Rpdml0eVxuICBvbihkZWxldGVUZWFtQWN0aXZpdHlTdWNjZXNzQWN0aW9uLCAoc3RhdGU6IENhbGVuZGFyU3RhdGUsIHtwYXlsb2FkfToge3BheWxvYWQ6IHN0cmluZ30pID0+IHtcbiAgICBsZXQgY3VycmVudFN0YXRlID0ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBjdXJyZW50VGVhbUFjdGl2aXR5OiB1bmRlZmluZWRcbiAgICB9O1xuXG4gICAgaWYgKGN1cnJlbnRTdGF0ZS50ZWFtRXZlbnRzPy52YWx1ZT8ucmVzdWx0cykge1xuICAgICAgY3VycmVudFN0YXRlLnRlYW1FdmVudHMgPSB7XG4gICAgICAgIC4uLmN1cnJlbnRTdGF0ZS50ZWFtRXZlbnRzLFxuICAgICAgICB2YWx1ZToge1xuICAgICAgICAgIC4uLmN1cnJlbnRTdGF0ZS50ZWFtRXZlbnRzLnZhbHVlLFxuICAgICAgICAgIHJlc3VsdHM6IGN1cnJlbnRTdGF0ZS50ZWFtRXZlbnRzLnZhbHVlLnJlc3VsdHMuZmlsdGVyKChldmVudDogRXZlbnQpID0+IGV2ZW50LmlkICE9PSBwYXlsb2FkKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGN1cnJlbnRTdGF0ZTtcbiAgfSksXG5cbiAgLy8gQ3JlYXRlIFRlYW0gQWN0aXZpdHlcbiAgb24oY3JlYXRlVGVhbUFjdGl2aXR5QWN0aW9uLCBzdGF0ZSA9PiAoeyAuLi5zdGF0ZSwgY3VycmVudFRlYW1BY3Rpdml0eTogcmV0cmlldmVTdGFydExvYWRpbmcoc3RhdGUuY3VycmVudFRlYW1BY3Rpdml0eSkgfSkpLFxuXG4gIC8vIEZhaWx1cmUgSGFuZGxlcnNcbiAgb24oY3JlYXRlVGVhbUFjdGl2aXR5RmFpbHVyZUFjdGlvbiwgKHN0YXRlLCB7IHBheWxvYWQgfSkgPT4gKHsgLi4uc3RhdGUsIGN1cnJlbnRUZWFtQWN0aXZpdHk6IHJldHJpZXZlTG9hZEZhaWx1cmU8VGVhbUFjdGl2aXR5SW50ZXJmYWNlPihwYXlsb2FkKSB9KSksXG4pO1xuIl19
|
|
477
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIucmVkdWNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEtYWNjZXNzL3NyYy9saWIvc3RvcmUvcmVkdWNlcnMvY2FsZW5kYXIucmVkdWNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNoRCxPQUFPLEVBQWlCLG9CQUFvQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQy9ELE9BQU8sRUFDTCx5QkFBeUIsRUFDekIsK0JBQStCLEVBQy9CLDZCQUE2QixFQUM3QixnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBQ3ZCLHlCQUF5QixFQUN6Qix3QkFBd0IsRUFDeEIsK0JBQStCLEVBQUUsOEJBQThCLEVBQy9ELCtCQUErQixFQUMvQix3Q0FBd0MsRUFDeEMsK0NBQStDLEVBQy9DLCtDQUErQyxFQUMvQyxvQ0FBb0MsRUFDcEMsMkNBQTJDLEVBQzNDLDJDQUEyQyxFQUMzQywwQkFBMEIsRUFDMUIsaUNBQWlDLEVBQ2pDLGlDQUFpQyxFQUNqQywrQkFBK0IsRUFDL0Isc0NBQXNDLEVBQ3RDLHNDQUFzQyxFQUN0Qyw4QkFBOEIsRUFDOUIscUNBQXFDLEVBQ3JDLHFDQUFxQyxFQUNyQyxxQ0FBcUMsRUFDckMsNENBQTRDLEVBQzVDLDRDQUE0QyxFQUM1QyxpQ0FBaUMsRUFDakMsd0NBQXdDLEVBQ3hDLHdDQUF3QyxFQUN4Qyx3QkFBd0IsRUFDeEIsK0JBQStCLEVBQy9CLCtCQUErQixFQUMvQix5Q0FBeUMsRUFDekMsdUNBQXVDLEVBQ3ZDLDhCQUE4QixFQUM5QiwyQ0FBMkMsRUFDM0MsNEJBQTRCLEVBQzVCLG1DQUFtQyxFQUNuQyxrQ0FBa0MsRUFDbEMseUNBQXlDLEVBQ3pDLHlDQUF5QyxFQUN6QyxtQ0FBbUMsRUFDbkMsZ0NBQWdDLEVBQ2hDLHVDQUF1QyxFQUN2Qyx1Q0FBdUMsRUFDdkMsMEJB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QUFtQixFQUFFLFNBQVM7S0FDL0IsQ0FBQztJQUVGLElBQUksWUFBWSxDQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDNUMsWUFBWSxDQUFDLFVBQVUsR0FBRztZQUN4QixHQUFHLFlBQVksQ0FBQyxVQUFVO1lBQzFCLEtBQUssRUFBRTtnQkFDTCxHQUFHLFlBQVksQ0FBQyxVQUFVLENBQUMsS0FBSztnQkFDaEMsT0FBTyxFQUFFLFlBQVksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFZLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssT0FBTyxDQUFDO2FBQzlGO1NBQ0YsQ0FBQTtJQUNILENBQUM7SUFFRCxPQUFPLFlBQVksQ0FBQztBQUN0QixDQUFDLENBQUM7QUFFRix1QkFBdUI7QUFDdkIsRUFBRSxDQUFDLHdCQUF3QixFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLG1CQUFtQixFQUFFLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUUzSCxtQkFBbUI7QUFDbkIsRUFBRSxDQUFDLCtCQUErQixFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsQ0FBd0IsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQ3RKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVSZWR1Y2VyLCBvbiB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IENhbGVuZGFyU3RhdGUsIGluaXRpYWxDYWxlbmRhclN0YXRlIH0gZnJvbSAnLi4vc3RhdGUnO1xuaW1wb3J0IHtcbiAgY2xlYXJNZW1iZXJBY3Rpdml0eUFjdGlvbixcbiAgY2xlYXJNZW1iZXJBY3Rpdml0eUludml0ZUFjdGlvbixcbiAgY2xlYXJNZW1iZXJPcGVuQWN0aXZpdHlBY3Rpb24sXG4gIGNsZWFyU3RvcmVBY3Rpb24sXG4gIGNsZWFyVGVhbUFjdGl2aXR5QWN0aW9uLFxuICBjbGVhclRlYW1BY3Rpdml0aWVzQWN0aW9uLFxuICBjcmVhdGVUZWFtQWN0aXZpdHlBY3Rpb24sXG4gIGNyZWF0ZVRlYW1BY3Rpdml0eUZhaWx1cmVBY3Rpb24sIGRlbGV0ZVRlYW1BY3Rpdml0eUludml0ZUFjdGlvbixcbiAgZGVsZXRlVGVhbUFjdGl2aXR5U3VjY2Vzc0FjdGlvbixcbiAgbGlzdEFsbE1lbWJlck9wZW5BY3Rpdml0eUxvY2F0aW9uc0FjdGlvbixcbiAgbGlzdEFsbE1lbWJlck9wZW5BY3Rpdml0eUxvY2F0aW9uc0ZhaWx1cmVBY3Rpb24sXG4gIGxpc3RBbGxNZW1iZXJPcGVuQWN0aXZpdHlMb2NhdGlvbnNTdWNjZXNzQWN0aW9uLFxuICBsaXN0QWxsTWVtYmVyT3BlbkFjdGl2aXR5VHlwZXNBY3Rpb24sXG4gIGxpc3RBbGxNZW1iZXJPcGVuQWN0aXZpdHlUeXBlc0ZhaWx1cmVBY3Rpb24sXG4gIGxpc3RBbGxNZW1iZXJPcGVuQWN0aXZpdHlUeXBlc1N1Y2Nlc3NBY3Rpb24sXG4gIGxpc3RNZW1iZXJBY3Rpdml0aWVzQWN0aW9uLFxuICBsaXN0TWVtYmVyQWN0aXZpdGllc0ZhaWx1cmVBY3Rpb24sXG4gIGxpc3RNZW1iZXJBY3Rpdml0aWVzU3VjY2Vzc0FjdGlvbixcbiAgbGlzdE1lbWJlckFjdGl2aXR5SW52aXRlc0FjdGlvbixcbiAgbGlzdE1lbWJlckFjdGl2aXR5SW52aXRlc0ZhaWx1cmVBY3Rpb24sXG4gIGxpc3RNZW1iZXJBY3Rpdml0eUludml0ZXNTdWNjZXNzQWN0aW9uLFxuICBsaXN0TWVtYmVyT3BlbkFjdGl2aXRpZXNBY3Rpb24sXG4gIGxpc3RNZW1iZXJPcGVuQWN0aXZpdGllc0ZhaWx1cmVBY3Rpb24sXG4gIGxpc3RNZW1iZXJPcGVuQWN0aXZpdGllc1N1Y2Nlc3NBY3Rpb24sXG4gIGxpc3RNZW1iZXJPcGVuQWN0aXZpdHlMb2NhdGlvbnNBY3Rpb24sXG4gIGxpc3RNZW1iZXJPcGVuQWN0aXZpdHlMb2NhdGlvbnNGYWlsdXJlQWN0aW9uLFxuICBsaXN0TWVtYmVyT3BlbkFjdGl2aXR5TG9jYXRpb25zU3VjY2Vzc0FjdGlvbixcbiAgbGlzdE1lbWJlck9wZW5BY3Rpdml0eVR5cGVzQWN0aW9uLFxuICBsaXN0TWVtYmVyT3BlbkFjdGl2aXR5VHlwZXNGYWlsdXJlQWN0aW9uLFxuICBsaXN0TWVtYmVyT3BlbkFjdGl2aXR5VHlwZXNTdWNjZXNzQWN0aW9uLFxuICBsaXN0VGVhbUFjdGl2aXRpZXNBY3Rpb24sXG4gIGxpc3RUZWFtQWN0aXZpdGllc0ZhaWx1cmVBY3Rpb24sXG4gIGxpc3RUZWFtQWN0aXZpdGllc1N1Y2Nlc3NBY3Rpb24sXG4gIGxpc3RUZWFtQWN0aXZpdHlQYXJ0aWNpcGFudHNTdWNjZXNzQWN0aW9uLFxuICBsaXN0VGVhbUxlYWRlckV4dHJhTWVtYmVyc1N1Y2Nlc3NBY3Rpb24sXG4gIHJlbW92ZU1lbWJlck9wZW5BY3Rpdml0eUFjdGlvbixcbiAgcmVzZW5kVGVhbUFjdGl2aXR5TWVtYmVySW52aXRlU3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVNZW1iZXJBY3Rpdml0eUFjdGlvbixcbiAgcmV0cmlldmVNZW1iZXJBY3Rpdml0eUZhaWx1cmVBY3Rpb24sXG4gIHJldHJpZXZlTWVtYmVyQWN0aXZpdHlJbnZpdGVBY3Rpb24sXG4gIHJldHJpZXZlTWVtYmVyQWN0aXZpdHlJbnZpdGVGYWlsdXJlQWN0aW9uLFxuICByZXRyaWV2ZU1lbWJlckFjdGl2aXR5SW52aXRlU3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVNZW1iZXJBY3Rpdml0eVN1Y2Nlc3NBY3Rpb24sXG4gIHJldHJpZXZlTWVtYmVyT3BlbkFjdGl2aXR5QWN0aW9uLFxuICByZXRyaWV2ZU1lbWJlck9wZW5BY3Rpdml0eUZhaWx1cmVBY3Rpb24sXG4gIHJldHJpZXZlTWVtYmVyT3BlbkFjdGl2aXR5U3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVUZWFtQWN0aXZpdHlBY3Rpb24sXG4gIHJldHJpZXZlVGVhbUFjdGl2aXR5RmFpbHVyZUFjdGlvbixcbiAgcmV0cmlldmVUZWFtQWN0aXZpdHlRUkNvZGVTdWNjZXNzQWN0aW9uLFxuICByZXRyaWV2ZVRlYW1BY3Rpdml0eVNldHRpbmdzQWN0aW9uLFxuICByZXRyaWV2ZVRlYW1BY3Rpdml0eVNldHRpbmdzRmFpbHVyZUFjdGlvbixcbiAgcmV0cmlldmVUZWFtQWN0aXZpdHlTZXR0aW5nc1N1Y2Nlc3NBY3Rpb24sXG4gIHJldHJpZXZlVGVhbUFjdGl2aXR5U3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVUZWFtRGVmYXVsdEFjdGl2aXR5U2V0dGluZ3NBY3Rpb24sXG4gIHJldHJpZXZlVGVhbURlZmF1bHRBY3Rpdml0eVNldHRpbmdzRmFpbHVyZUFjdGlvbixcbiAgcmV0cmlldmVUZWFtRGVmYXVsdEFjdGl2aXR5U2V0dGluZ3NTdWNjZXNzQWN0aW9uLFxuICB1cGRhdGVNZW1iZXJBY3Rpdml0eUludml0ZVN1Y2Nlc3NBY3Rpb24sXG4gIHVwZGF0ZU1lbWJlck9wZW5BY3Rpdml0eVN1Y2Nlc3NBY3Rpb24sXG4gIHVwZGF0ZVRlYW1BY3Rpdml0eUFjdGlvbixcbiAgdXBkYXRlVGVhbUFjdGl2aXR5RmFpbHVyZUFjdGlvbixcbiAgdXBkYXRlVGVhbUFjdGl2aXR5U3VjY2Vzc0FjdGlvbixcbiAgdXBkYXRlVGVhbU1lbWJlckFjdGl2aXR5SW52aXRlU3VjY2Vzc0FjdGlvbixcbn0gZnJvbSAnLi4vYWN0aW9ucyc7XG5pbXBvcnQge1xuICBBY3Rpdml0eSxcbiAgQWN0aXZpdHlJbnZpdGUsXG4gIEFjdGl2aXR5TG9jYXRpb24sXG4gIEFjdGl2aXR5U2V0dGluZ3MsXG4gIEFjdGl2aXR5VHlwZSxcbiAgRXZlbnQsXG4gIE1lbWJlckFjdGl2aXR5SW52aXRlLFxuICBPcGVuQWN0aXZpdHlcbn0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IE9wZW5BY3Rpdml0eVNlYXJjaFBhcmFtc0ludGVyZmFjZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtcbiAgTGlzdFJlc3VsdEludGVyZmFjZSxcbiAgUmV0cmlldmVSZXN1bHRJbnRlcmZhY2UsXG4gIFRlYW1BY3Rpdml0eUludGVyZmFjZSxcbiAgVGVhbUNhbGVuZGFyRXZlbnRSZXN1bHRJbnRlcmZhY2Vcbn0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQge1xuICBsaXN0TG9hZEZhaWx1cmUsXG4gIGxpc3RMb2FkU3VjY2VzcyxcbiAgbGlzdFN0YXJ0TG9hZGluZyxcbiAgcmV0cmlldmVMb2FkRmFpbHVyZSxcbiAgcmV0cmlldmVMb2FkU3VjY2VzcyxcbiAgcmV0cmlldmVTdGFydExvYWRpbmdcbn0gZnJvbSAnLi9yZWR1Y2VyLWhlbHBlcnMnO1xuXG4vLyAtLS0gSGVscGVyIEZ1bmN0aW9ucyAtLS1cblxuY29uc3QgdXBkYXRlTWVtYmVyQWN0aXZpdHlJbnZpdGVzID0gKGludml0ZXM6IEFycmF5PE1lbWJlckFjdGl2aXR5SW52aXRlPiB8IHVuZGVmaW5lZCB8IG51bGwsIHBheWxvYWQ6IEFjdGl2aXR5SW52aXRlKSA9PiB7XG4gIGlmICghaW52aXRlcykgcmV0dXJuIFtdO1xuICByZXR1cm4gaW52aXRlcy5tYXAoKGludml0ZTogTWVtYmVyQWN0aXZpdHlJbnZpdGUpID0+IHtcbiAgICBpZiAoaW52aXRlLm1lbWJlcl9pZCA9PT0gcGF5bG9hZC5tZW1iZXIuaWQpIHtcbiAgICAgIHJldHVybiBuZXcgTWVtYmVyQWN0aXZpdHlJbnZpdGUoXG4gICAgICAgIGludml0ZS5pZCxcbiAgICAgICAgcGF5bG9hZC5jb21tZW50LFxuICAgICAgICBpbnZpdGUuY3VycmVudF9udW1fYXR0ZW5kYW50cyxcbiAgICAgICAgcGF5bG9hZC5sYXN0X2ludml0ZSxcbiAgICAgICAgcGF5bG9hZC5sZWFkZXIsXG4gICAgICAgIHBheWxvYWQubWVtYmVyLmVtYWlsLFxuICAgICAgICBwYXlsb2FkLm1lbWJlci5pZCxcbiAgICAgICAgcGF5bG9hZC5tZW1iZXIubmFtZSxcbiAgICAgICAgcGF5bG9hZC5uZXh0X2ludml0ZSxcbiAgICAgICAgcGF5bG9hZC5yZXNwb25zZV9kYXRlLFxuICAgICAgICBwYXlsb2FkLnN0YXR1c1xuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGludml0ZTtcbiAgfSk7XG59O1xuXG5jb25zdCB1cGRhdGVFdmVudEludml0ZXMgPSAoZXZlbnRzOiBBcnJheTxFdmVudD4sIHBheWxvYWQ6IEFjdGl2aXR5SW52aXRlKSA9PiB7XG4gIHJldHVybiBldmVudHMubWFwKChldmVudDogRXZlbnQpID0+IHtcbiAgICBpZiAoZXZlbnQuaW52aXRhdGlvbl9pZCA9PT0gcGF5bG9hZC5pZCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uZXZlbnQsXG4gICAgICAgIGludml0YXRpb25fcmVzcG9uc2U6IHBheWxvYWQuc3RhdHVzLFxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIGV2ZW50O1xuICB9KTtcbn07XG5cbmNvbnN0IHVwZGF0ZUludml0ZWRNZW1iZXJzID0gKGludml0ZWRNZW1iZXJzOiBBcnJheTxNZW1iZXJBY3Rpdml0eUludml0ZT4sIHBheWxvYWQ6IEFjdGl2aXR5SW52aXRlIHwgTWVtYmVyQWN0aXZpdHlJbnZpdGUpID0+IHtcbiAgcmV0dXJuIGludml0ZWRNZW1iZXJzLm1hcCgodmFsdWU6IE1lbWJlckFjdGl2aXR5SW52aXRlKSA9PiB7XG4gICAgaWYgKHZhbHVlLmlkID09PSBwYXlsb2FkLmlkKSB7XG4gICAgICByZXR1cm4gbmV3IE1lbWJlckFjdGl2aXR5SW52aXRlKFxuICAgICAgICB2YWx1ZS5pZCxcbiAgICAgICAgcGF5bG9hZC5jb21tZW50LFxuICAgICAgICB2YWx1ZS5jdXJyZW50X251bV9hdHRlbmRhbnRzLFxuICAgICAgICBwYXlsb2FkLmxhc3RfaW52aXRlLFxuICAgICAgICB2YWx1ZS5sZWFkZXIsXG4gICAgICAgIHZhbHVlLm1lbWJlcl9lbWFpbCxcbiAgICAgICAgdmFsdWUubWVtYmVyX2lkLFxuICAgICAgICB2YWx1ZS5tZW1iZXJfbmFtZSxcbiAgICAgICAgcGF5bG9hZC5uZXh0X2ludml0ZSxcbiAgICAgICAgcGF5bG9hZC5yZXNwb25zZV9kYXRlLFxuICAgICAgICBwYXlsb2FkLnN0YXR1c1xuICAgICAgKVxuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG4gIH0pO1xufTtcblxuY29uc3QgdXBkYXRlT3BlbkFjdGl2aXRpZXMgPSAob3BlbkFjdGl2aXRpZXM6IEFycmF5PE9wZW5BY3Rpdml0eT4sIHBheWxvYWQ6IE9wZW5BY3Rpdml0eSkgPT4ge1xuICByZXR1cm4gb3BlbkFjdGl2aXRpZXMubWFwKChvcGVuQWN0aXZpdHk6IE9wZW5BY3Rpdml0eSkgPT4ge1xuICAgIGlmIChvcGVuQWN0aXZpdHkuaWQgPT09IHBheWxvYWQuaWQpIHtcbiAgICAgIHJldHVybiBwYXlsb2FkO1xuICAgIH1cbiAgICByZXR1cm4gb3BlbkFjdGl2aXR5O1xuICB9KTtcbn07XG5cbmNvbnN0IHVwZGF0ZVRlYW1BY3Rpdml0eUludml0ZSA9IChzdGF0ZTogQ2FsZW5kYXJTdGF0ZSwgcGF5bG9hZDogQWN0aXZpdHlJbnZpdGUgfCBNZW1iZXJBY3Rpdml0eUludml0ZSkgPT4ge1xuICBpZiAoc3RhdGUuY3VycmVudFRlYW1BY3Rpdml0eT8ucmVzdWx0KSB7XG4gICAgaWYgKHN0YXRlLmN1cnJlbnRUZWFtQWN0aXZpdHkucmVzdWx0LmFjdGl2aXR5Lmludml0ZWRfbWVtYmVycy5maW5kSW5kZXgoKHZhbHVlOiBNZW1iZXJBY3Rpdml0eUludml0ZSkgPT4gdmFsdWUuaWQgPT09IHBheWxvYWQuaWQpICE9PSAtMSkge1xuICAgICAgbGV0IGN1cnJlbnRTdGF0ZSA9IHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGN1cnJlbnRUZWFtQWN0aXZpdHk6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5jdXJyZW50VGVhbUFjdGl2aXR5LFxuICAgICAgICAgIHJlc3VsdDoge1xuICAgICAgICAgICAgLi4uc3RhdGUuY3VycmVudFRlYW1BY3Rpdml0eS5yZXN1bHQsXG4gICAgICAgICAgICBhY3Rpdml0eToge1xuICAgICAgICAgICAgICAuLi5zdGF0ZS5jdXJyZW50VGVhbUFjdGl2aXR5LnJlc3VsdC5hY3Rpdml0eSxcbiAgICAgICAgICAgICAgaW52aXRlZF9tZW1iZXJzOiB1cGRhdGVJbnZpdGVkTWVtYmVycyhzdGF0ZS5jdXJyZW50VGVhbUFjdGl2aXR5LnJlc3VsdC5hY3Rpdml0eS5pbnZpdGVkX21lbWJlcnMsIHBheWxvYWQpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBjb25zdCBhY3Rpdml0eUlkID0gY3VycmVudFN0YXRlLmN1cnJlbnRUZWFtQWN0aXZpdHkucmVzdWx0LmFjdGl2aXR5LmlkO1xuXG4gICAgICBpZiAoY3VycmVudFN0YXRlLnRlYW1FdmVudHM/LnZhbHVlPy5yZXN1bHRzKSB7XG4gICAgICAgIGN1cnJlbnRTdGF0ZS50ZWFtRXZlbnRzID0ge1xuICAgICAgICAgIC4uLmN1cnJlbnRTdGF0ZS50ZWFtRXZlbnRzLFxuICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAuLi5jdXJyZW50U3RhdGUudGVhbUV2ZW50cy52YWx1ZSxcbiAgICAgICAgICAgIHJlc3VsdHM6IGN1cnJlbnRTdGF0ZS50ZWFtRXZlbnRzLnZhbHVlLnJlc3VsdHMubWFwKChldmVudDogRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgY3VycmVudEV2ZW50ID0gey4uLmV2ZW50fTtcbiAgICAgICAgICAgICAgaWYgKGN1cnJlbnRFdmVudC5hY3Rpdml0eV9pZCA9PT0gYWN0aXZpdHlJZCkge1xuICAgICAgICAgICAgICAgIGN1cnJlbnRFdmVudC5pbnZpdGVkX21lbWJlcnMgPSB1cGRhdGVJbnZpdGVkTWVtYmVycyhjdXJyZW50RXZlbnQuaW52aXRlZF9tZW1iZXJzIHx8IFtdLCBwYXlsb2FkKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gY3VycmVudEV2ZW50O1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBjdXJyZW50U3RhdGUgYXMgQ2FsZW5kYXJTdGF0ZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHN0YXRlO1xufVxuXG4vLyAtLS0gUmVkdWNlciAtLS1cblxuZXhwb3J0IGNvbnN0IGNhbGVuZGFyUmVkdWNlciA9IGNyZWF0ZVJlZHVjZXIoXG4gIGluaXRpYWxDYWxlbmRhclN0YXRlLFxuXG4gIC8vIENsZWFyIEFjdGlvbnNcbiAgb24oY2xlYXJTdG9yZUFjdGlvbiwgKCkgPT4gaW5pdGlhbENhbGVuZGFyU3RhdGUpLFxuICBvbihjbGVhck1lbWJlckFjdGl2aXR5QWN0aW9uLCAoc3RhdGU6IENhbGVuZGFyU3RhdGUpID0+ICh7IC4uLnN0YXRlLCBjdXJyZW50TWVtYmVyQWN0aXZpdHk6IHVuZGVmaW5lZCB9KSksXG4gIG9uKGNsZWFyTWVtYmVyQWN0aXZpdHlJbnZpdGVBY3Rpb24sIChzdGF0ZTogQ2FsZW5kYXJTdGF0ZSkgPT4gKHsgLi4uc3RhdGUsIGN1cnJlbnRNZW1iZXJBY3Rpdml0eUludml0ZTogdW5kZWZpbmVkIH0pKSxcbiAgb24oY2xlYXJNZW1iZXJPcGVuQWN0aXZpdHlBY3Rpb24sIChzdGF0ZTogQ2FsZW5kYXJTdGF0ZSkgPT4gKHsgLi4uc3RhdGUsIGN1cnJlbnRNZW1iZXJPcGVuQWN0aXZpdHk6IHVuZGVmaW5lZCB9KSksXG4gIG9uKGNsZWFyVGVhbUFjdGl2aXR5QWN0aW9uLCAoc3RhdGU6IENhbGVuZGFyU3RhdGUpID0+ICh7IC4uLnN0YXRlLCBjdXJyZW50VGVhbUFjdGl2aXR5OiB1bmRlZmluZWQgfSkpLFxuICBvbihjbGVhclRlYW1BY3Rpdml0aWVzQWN0aW9uLCAoc3RhdGU6IENhbGVuZGFyU3RhdGUpID0+ICh7IC4uLnN0YXRlLCB0ZWFtRXZlbnRzOiB1bmRlZmluZWQgfSkpLFxuXG4gIC8vIE1lbWJlciBBY3Rpdml0eSBJbnZpdGVzXG4gIG9uKHJldHJpZXZlTWVtYmVyQWN0aXZpdHlJbnZpdGVBY3Rpb24sIHN0YXRlID0+ICh7IC4uLnN0YXRlLCBjdXJyZW50TWVtYmVyQWN0aXZpdHlJbnZpdGU6IHJldHJpZXZlU3RhcnRMb2FkaW5nKHN0YXRlLmN1cnJlbnRNZW1iZXJBY3Rpdml0eUludml0ZSkgfSkpLFxuICBvbihyZXRyaWV2ZU1lbWJlckFjdGl2aXR5SW52aXRlRmFpbHVyZUFjdGlvbiwgKHN0YXRlLCB7IHBheWxvYWQgfSkgPT4gKHsgLi4uc3RhdGUsIGN1cnJlbnRNZW1iZXJBY3Rpdml0eUludml0ZTogcmV0cmlldmVMb2FkRmFpbHVyZTxBY3Rpdml0eUludml0ZT4ocGF5bG9hZCkgfSkpLFxuICBvbihyZXRyaWV2ZU1lbWJlckFjdGl2aXR5SW52aXRlU3VjY2Vzc0FjdGlvbiwgKHN0YXRlLCB7IHBheWxvYWQgfSkgPT4gKHsgLi4uc3RhdGUsIGN1cnJlbnRNZW1iZXJBY3Rpdml0eUludml0ZTogcmV0cmlldmVMb2FkU3VjY2VzcyhwYXlsb2FkKSB9KSksXG5cbiAgLy8gTWVtYmVyIEFjdGl2aXRpZXNcbiAgb24ocmV0cmlldmVNZW1iZXJBY3Rpdml0eUFjdGlvbiwgc3RhdGUgPT4gKHsgLi4uc3RhdGUsIGN1cnJlbnRNZW1iZXJBY3Rpdml0eTogcmV0cmlldmVTdGFydExvYWRpbmcoc3RhdGUuY3VycmVudE1lbWJlckFjdGl2aXR5KSB9KSksXG4gIG9uKHJldHJpZXZlTWVtYmVyQWN0aXZpdHlGYWlsdXJlQWN0aW9uLCAoc3RhdGUsIHsgcGF5bG9hZCB9KSA9PiAoeyAuLi5zdGF0ZSwgY3VycmVudE1lbWJlckFjdGl2aXR5OiByZXRyaWV2ZUxvYWRGYWlsdXJlPEFjdGl2aXR5PihwYXlsb2FkKSB9KSksXG4gIG9uKHJldHJpZXZlTWVtYmVyQWN0aXZpdHlTdWNjZXNzQWN0aW9uLCAoc3RhdGUsIHsgcGF5bG9hZCB9KSA9PiAoeyAuLi5zdGF0ZSwgY3VycmVudE1lbWJlckFjdGl2aXR5OiByZXRyaWV2ZUxvYWRTdWNjZXNzKHBheWxvYWQpIH0pKSxcblxuICAvLyBNZW1iZXIgT3BlbiBBY3Rpdml0aWVzXG4gIG9uKHJldHJpZXZlTWVtYmVyT3BlbkFjdGl2aXR5QWN0aW9uLCBzdGF0ZSA9PiAoeyAuLi5zdGF0ZSwgY3VycmVudE1lbWJlck9wZW5BY3Rpdml0eTogcmV0cmlldmVTdGFydExvYWRpbmcoc3RhdGUuY3VycmVudE1lbWJlck9wZW5BY3Rpdml0eSkgfSkpLFxuICBvbihyZXRyaWV2ZU1lbWJlck9wZW5BY3Rpdml0eUZhaWx1cmVBY3Rpb24sIChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+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+IHtcbiAgICBpZiAoc3RhdGUuY3VycmVudFRlYW1BY3Rpdml0eT8ucmVzdWx0ICYmIHBheWxvYWQudGVhbUlkID09PSBzdGF0ZS5jdXJyZW50VGVhbUFjdGl2aXR5LnJlc3VsdC50ZWFtLmlkKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgY3VycmVudFRlYW1BY3Rpdml0eToge1xuICAgICAgICAgIC4uLnN0YXRlLmN1cnJlbnRUZWFtQWN0aXZpdHksXG4gICAgICAgICAgcmVzdWx0OiB7XG4gICAgICAgICAgICAuLi5zdGF0ZS5jdXJyZW50VGVhbUFjdGl2aXR5LnJlc3VsdCxcbiAgICAgICAgICAgIGV4dHJhTWVtYmVyczogcGF5bG9hZC5yZXN1bHRzLFxuICAgICAgICAgICAgZXh0cmFNZW1iZXJzTG9hZGVkOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBsb2FkaW5nOiBmYWxzZVxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gc3RhdGU7XG4gIH0pLFxuXG4gIC8vIFRlYW0gQWN0aXZpdHkgQWN0aW9uc1xuICBvbihyZXRyaWV2ZVRlYW1BY3Rpdml0eUFjdGlvbiwgc3RhdGUgPT4gKHsgLi4uc3RhdGUsIGN1cnJlbnRUZWFtQWN0aXZpdHk6IHJldHJpZXZlU3RhcnRMb2FkaW5nKHN0YXRlLmN1cnJlbnRUZWFtQWN0aXZpdHkpIH0pKSxcbiAgb24ocmV0cmlldmVUZWFtQWN0aXZpdHlGYWlsdXJlQWN0aW9uLCAoc3RhdGUsIHsgcGF5bG9hZCB9KSA9PiAoeyAuLi5zdGF0ZSwgY3VycmVudFRlYW1BY3Rpdml0eTogcmV0cmlldmVMb2FkRmFpbHVyZTxUZWFtQWN0aXZpdHlJbnRlcmZhY2U+KHBheWxvYWQpIH0pKSxcbiAgb24ocmV0cmlldmVUZWFtQWN0aXZpdHlTdWNjZXNzQWN0aW9uLCAoc3RhdGUsIHsgcGF5bG9hZCB9KSA9PiAoeyAuLi5zdGF0ZSwgY3VycmVudFRlYW1BY3Rpdml0eTogcmV0cmlldmVMb2FkU3VjY2VzcyhwYXlsb2FkKSB9KSksXG4gIG9uKHJldHJpZXZlVGVhbUFjdGl2aXR5UVJDb2RlU3VjY2Vzc0FjdGlvbiwgKHN0YXRlLCB7IHBheWxvYWQgfSkgPT4ge1xuICAgIGlmIChzdGF0ZS5jdXJyZW50VGVhbUFjdGl2aXR5Py5yZXN1bHQgJiYgcGF5bG9hZC5hY3Rpdml0eS5pZCA9PT0gc3RhdGUuY3VycmVudFRlYW1BY3Rpdml0eS5yZXN1bHQuYWN0aXZpdHkuaWQgJiYgcGF5bG9hZC50ZWFtSWQgPT09IHN0YXRlLmN1cnJlbnRUZWFtQWN0aXZpdHkucmVzdWx0LnRlYW0uaWQpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBjdXJyZW50VGVhbUFjdGl2aXR5OiB7XG4gICAgICAgICAgLi4uc3RhdGUuY3VycmVudFRlYW1BY3Rpdml0eSxcbiAgICAgICAgICByZXN1bHQ6IHtcbiAgICAgICAgICAgIC4uLnN0YXRlLmN1cnJlbnRUZWFtQWN0aXZpdHkucmVzdWx0LFxuICAgICAgICAgICAgYWN0aXZpdHk6IHBheWxvYWQuYWN0aXZpdHlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBzdGF0ZTtcbiAgfSksXG5cbiAgLy8gVGVhbSBBY3Rpdml0eSBTZXR0aW5nc1xuICBvbihyZXRyaWV2ZVRlYW1BY3Rpdml0eVNldHRpbmdzQWN0aW9uLCBzdGF0ZSA9PiAoeyAuLi5zdGF0ZSwgYWN0aXZpdHlTZXR0aW5nczogcmV0cmlldmVTdGFydExvYWRpbmcoc3RhdGUuYWN0aXZpdHlTZXR0aW5ncykgfSkpLFxuICBvbihyZXRyaWV2ZVRlYW1BY3Rpdml0eVNldHRpbmdzRmFpbHVyZUFjdGlvbiwgKHN0YXRlLCB7IHBheWxvYWQgfSkgPT4gKHsgLi4uc3RhdGUsIGFjdGl2aXR5U2V0dGluZ3M6IHJldHJpZXZlTG9hZEZhaWx1cmU8QWN0aXZpdHlTZXR0aW5ncz4ocGF5bG9hZCkgfSkpLFxuICBvbihyZXRyaWV2ZVRlYW1BY3Rpdml0eVNldHRpbmdzU3VjY2Vzc0FjdGlvbiwgKHN0YXRlLCB7IHBheWxvYWQgfSkgPT4gKHsgLi4uc3RhdGUsIGFjdGl2aXR5U2V0dGluZ3M6IHJldHJpZXZlTG9hZFN1Y2Nlc3MocGF5bG9hZCkgfSkpLFxuXG4gIC8vIFRlYW0gRGVmYXVsdCBBY3Rpdml0eSBTZXR0aW5nc1xuICBvbihyZXRyaWV2ZVRlYW1EZWZhdWx0QWN0aXZpdHlTZXR0aW5nc0FjdGlvbiwgc3RhdGUgPT4gKHsgLi4uc3RhdGUsIG5ld1RlYW1BY3Rpdml0eTogcmV0cmlldmVTdGFydExvYWRpbmcoc3RhdGUubmV3VGVhbUFjdGl2aXR5KSB9KSksXG4gIG9uKHJldHJpZXZlVGVhbURlZmF1bHRBY3Rpdml0eVNldHRpbmdzRmFpbHVyZUFjdGlvbiwgKHN0YXRlLCB7IHBheWxvYWQgfSkgPT4gKHsgLi4uc3RhdGUsIG5ld1RlYW1BY3Rpdml0eTogcmV0cmlldmVMb2FkRmFpbHVyZTxBY3Rpdml0eT4ocGF5bG9hZCkgfSkpLFxuICBvbihyZXRyaWV2ZVRlYW1EZWZhdWx0QWN0aXZpdHlTZXR0aW5nc1N1Y2Nlc3NBY3Rpb24sIChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+ICh7IC4uLnN0YXRlLCBuZXdUZWFtQWN0aXZpdHk6IHJldHJpZXZlTG9hZFN1Y2Nlc3MocGF5bG9hZCkgfSkpLFxuXG4gIC8vIFVwZGF0ZSBNZW1iZXIgQWN0aXZpdHkgSW52aXRlXG4gIG9uKHVwZGF0ZU1lbWJlckFjdGl2aXR5SW52aXRlU3VjY2Vzc0FjdGlvbiwgKHN0YXRlLCB7IHBheWxvYWQgfSkgPT4ge1xuICAgIGxldCBjdXJyZW50U3RhdGUgPSB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIGN1cnJlbnRNZW1iZXJBY3Rpdml0eUludml0ZTogcmV0cmlldmVMb2FkU3VjY2VzcyhwYXlsb2FkKVxuICAgIH07XG5cbiAgICBpZiAoY3VycmVudFN0YXRlLmN1cnJlbnRNZW1iZXJBY3Rpdml0eT8ucmVzdWx0Py5cblxuICAgICAgaWQgPT09IHBheWxvYWQuYWN0aXZpdHkuaWQpIHtcbiAgICAgIGN1cnJlbnRTdGF0ZS5jdXJyZW50TWVtYmVyQWN0aXZpdHkgPSB7XG4gICAgICAgIC4uLmN1cnJlbnRTdGF0ZS5jdXJyZW50TWVtYmVyQWN0aXZpdHksXG4gICAgICAgIHJlc3VsdDoge1xuICAgICAgICAgIC4uLmN1cnJlbnRTdGF0ZS5jdXJyZW50TWVtYmVyQWN0aXZpdHkucmVzdWx0LFxuICAgICAgICAgIGludml0ZWRfbWVtYmVyczogdXBkYXRlTWVtYmVyQWN0aXZpdHlJbnZpdGVzKFxuICAgICAgICAgICAgY3VycmVudFN0YXRlLmN1cnJlbnRNZW1iZXJBY3Rpdml0eS5yZXN1bHQuaW52aXRlZF9tZW1iZXJzLFxuICAgICAgICAgICAgcGF5bG9hZFxuICAgICAgICAgICksXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmIChjdXJyZW50U3RhdGUubWVtYmVyRXZlbnRzPy52YWx1ZT8ucmVzdWx0KSB7XG4gICAgICBjb25zdCBleGlzdGluZ0V2ZW50cyA9IGN1cnJlbnRTdGF0ZS5tZW1iZXJFdmVudHMudmFsdWUucmVzdWx0LmdldChwYXlsb2FkLm1lbWJlci5pZCk7XG5cbiAgICAgIGlmIChleGlzdGluZ0V2ZW50cykge1xuICAgICAgICBjdXJyZW50U3RhdGUubWVtYmVyRXZlbnRzID0ge1xuICAgICAgICAgIC4uLmN1cnJlbnRTdGF0ZS5tZW1iZXJFdmVudHMsXG4gICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgIC4uLmN1cnJlbnRTdGF0ZS5tZW1iZXJFdmVudHMudmFsdWUsXG4gICAgICAgICAgICByZXN1bHQ6IG5ldyBNYXAoY3VycmVudFN0YXRlLm1lbWJlckV2ZW50cy52YWx1ZS5yZXN1bHQpLnNldChcbiAgICAgICAgICAgICAgcGF5bG9hZC5tZW1iZXIuaWQsXG4gICAgICAgICAgICAgIHVwZGF0ZUV2ZW50SW52aXRlcyhleGlzdGluZ0V2ZW50cywgcGF5bG9hZClcbiAgICAgICAgICAgICksXG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChjdXJyZW50U3RhdGUuYWN0aXZpdHlJbnZpdGVzPy5yZXN1bHRzKSB7XG4gICAgICBjdXJyZW50U3RhdGUuYWN0aXZpdHlJbnZpdGVzID0ge1xuICAgICAgICAuLi5jdXJyZW50U3RhdGUuYWN0aXZpdHlJbnZpdGVzLFxuICAgICAgICByZXN1bHRzOiBjdXJyZW50U3RhdGUuYWN0aXZpdHlJbnZpdGVzLnJlc3VsdHMubWFwKChpbnZpdGU6IEFjdGl2aXR5SW52aXRlKSA9PiB7XG4gICAgICAgICAgaWYgKGludml0ZS5pZCA9PT0gcGF5bG9hZC5pZCkge1xuICAgICAgICAgICAgcmV0dXJuIHBheWxvYWQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBpbnZpdGU7XG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGN1cnJlbnRTdGF0ZTtcbiAgfSksXG5cbiAgLy8gVXBkYXRlIE1lbWJlciBPcGVuIEFjdGl2aXR5XG4gIG9uKHVwZGF0ZU1lbWJlck9wZW5BY3Rpdml0eVN1Y2Nlc3NBY3Rpb24sIChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+IHtcbiAgICBsZXQgY3VycmVudFN0YXRlID0ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBjdXJyZW50TWVtYmVyT3BlbkFjdGl2aXR5OiByZXRyaWV2ZUxvYWRTdWNjZXNzKHBheWxvYWQpXG4gICAgfTtcblxuICAgIGlmIChjdXJyZW50U3RhdGUubWVtYmVyT3BlbkFjdGl2aXRpZXM/LnZhbHVlPy5yZXN1bHQpIHtcbiAgICAgIGNvbnN0IGV4aXN0aW5nT3BlbkFjdGl2aXRpZXMgPSBjdXJyZW50U3RhdGUubWVtYmVyT3BlbkFjdGl2aXRpZXMudmFsdWUucmVzdWx0LmdldChwYXlsb2FkLm1lbWJlcl9pZCk7XG5cbiAgICAgIGlmIChleGlzdGluZ09wZW5BY3Rpdml0aWVzKSB7XG4gICAgICAgIGN1cnJlbnRTdGF0ZS5tZW1iZXJPcGVuQWN0aXZpdGllcyA9IHtcbiAgICAgICAgICAuLi5jdXJyZW50U3RhdGUubWVtYmVyT3BlbkFjdGl2aXRpZXMsXG4gICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgIC4uLmN1cnJlbnRTdGF0ZS5tZW1iZXJPcGVuQWN0aXZpdGllcy52YWx1ZSxcbiAgICAgICAgICAgIHJlc3VsdDogbmV3IE1hcChjdXJyZW50U3RhdGUubWVtYmVyT3BlbkFjdGl2aXRpZXMudmFsdWUucmVzdWx0KS5zZXQoXG4gICAgICAgICAgICAgIHBheWxvYWQubWVtYmVyX2lkLFxuICAgICAgICAgICAgICB1cGRhdGVPcGVuQWN0aXZpdGllcyhleGlzdGluZ09wZW5BY3Rpdml0aWVzLCBwYXlsb2FkKVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGN1cnJlbnRTdGF0ZS5hY3Rpdml0eUludml0ZXM/LnJlc3VsdHMpIHtcbiAgICAgIGN1cnJlbnRTdGF0ZS5hY3Rpdml0eUludml0ZXMgPSB7XG4gICAgICAgIC4uLmN1cnJlbnRTdGF0ZS5hY3Rpdml0eUludml0ZXMsXG4gICAgICAgIHJlc3VsdHM6IGN1cnJlbnRTdGF0ZS5hY3Rpdml0eUludml0ZXMucmVzdWx0cy5tYXAoKGludml0ZTogQWN0aXZpdHlJbnZpdGUpID0+IHtcbiAgICAgICAgICBpZiAoaW52aXRlLmFjdGl2aXR5LmlkID09PSBwYXlsb2FkLmlkKSB7XG4gICAgICAgICAgICBjb25zdCBpbnZpdGVkTWVtYmVyID0gcGF5bG9hZC5pbnZpdGVkX21lbWJlcnMuZmluZCgoaW52aXRlZE1lbWJlcjogTWVtYmVyQWN0aXZpdHlJbnZpdGUpID0+IGludml0ZWRNZW1iZXIuaWQgPT09IGludml0ZS5pZCk7XG5cbiAgICAgICAgICAgIGlmIChpbnZpdGVkTWVtYmVyKSB7XG4gICAgICAgICAgICAgIHJldHVybiBuZXcgQWN0aXZpdHlJbnZpdGUoXG4gICAgICAgICAgICAgICAgaW52aXRlLmlkLFxuICAgICAgICAgICAgICAgIGludml0ZS5hY3Rpdml0eSxcbiAgICAgICAgICAgICAgICBpbnZpdGVkTWVtYmVyLmNvbW1lbnQsXG4gICAgICAgICAgICAgICAgaW52aXRlLmNyZWF0ZWQsXG4gICAgICAgICAgICAgICAgaW52aXRlLmhhc191bnBhaWRfaW52b2ljZXMsXG4gICAgICAgICAgICAgICAgaW52aXRlZE1lbWJlci5sYXN0X2ludml0ZSB8fCAnJyBhcyBzdHJpbmcsXG4gICAgICAgICAgICAgICAgaW52aXRlLmxlYWRlcixcbiAgICAgICAgICAgICAgICBpbnZpdGUubWVtYmVyLFxuICAgICAgICAgICAgICAgIGludml0ZWRNZW1iZXIubmV4dF9pbnZpdGUsXG4gICAgICAgICAgICAgICAgaW52aXRlLnJlbWluZGVkLFxuICAgICAgICAgICAgICAgIGludml0ZWRNZW1iZXIucmVzcG9uc2VfZGF0ZSxcbiAgICAgICAgICAgICAgICBpbnZpdGVkTWVtYmVyLnN0YXR1cyxcbiAgICAgICAgICAgICAgICBpbnZpdGUudG9rZW4sXG4gICAgICAgICAgICAgICAgaW52aXRlLnVucGFpZF9pbnZvaWNlcyxcbiAgICAgICAgICAgICAgICBpbnZpdGUudXBkYXRlZFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXR1cm4gaW52aXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gaW52aXRlO1xuICAgICAgICB9KVxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gY3VycmVudFN0YXRlO1xuICB9KSxcblxuICAvLyBSZW1vdmUgbWVtYmVyIG9wZW4gYWN0aXZpdHlcbiAgb24ocmVtb3ZlTWVtYmVyT3BlbkFjdGl2aXR5QWN0aW9uLCAoc3RhdGU6IENhbGVuZGFyU3RhdGUsIHsgcGF5bG9hZCB9OiB7cGF5bG9hZDoge21lbWJlcklkOiBzdHJpbmcsIGFjdGl2aXR5SWQ6IHN0cmluZ319KSA9PiB7XG4gICAgbGV0IGN1cnJlbnRTdGF0ZSA9IHtcbiAgICAgIC4uLnN0YXRlXG4gICAgfTtcblxuICAgIGlmIChzdGF0ZS5jdXJyZW50TWVtYmVyT3BlbkFjdGl2aXR5Py5yZXN1bHQ/LmlkID09PSBwYXlsb2FkLmFjdGl2aXR5SWQpIHtcbiAgICAgIGN1cnJlbnRTdGF0ZS5jdXJyZW50TWVtYmVyT3BlbkFjdGl2aXR5ID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGlmIChjdXJyZW50U3RhdGUubWVtYmVyT3BlbkFjdGl2aXRpZXM/LnZhbHVlPy5yZXN1bHQpIHtcbiAgICAgIGNvbnN0IGV4aXN0aW5nT3BlbkFjdGl2aXRpZXMgPSBjdXJyZW50U3RhdGUubWVtYmVyT3BlbkFjdGl2aXRpZXMudmFsdWUucmVzdWx0LmdldChwYXlsb2FkLm1lbWJlcklkKTtcblxuICAgICAgaWYgKGV4aXN0aW5nT3BlbkFjdGl2aXRpZXMpIHtcbiAgICAgICAgY29uc3QgdXBkYXRlZE9wZW5BY3Rpdml0aWVzID0gZXhpc3RpbmdPcGVuQWN0aXZpdGllcy5tYXAoXG4gICAgICAgICAgKG9wZW5BY3Rpdml0eTogT3BlbkFjdGl2aXR5KSA9PiB7XG4gICAgICAgICAgICBpZiAob3BlbkFjdGl2aXR5LmlkID09PSBwYXlsb2FkLmFjdGl2aXR5SWQgJiYgb3BlbkFjdGl2aXR5Lm1lbWJlcl9pZCA9PT0gcGF5bG9hZC5tZW1iZXJJZCkge1xuICAgICAgICAgICAgICByZXR1cm4gbmV3IE9wZW5BY3Rpdml0eShcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkuaWQsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LmFjdGl2aXR5X2dyb3VwX2lkLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5hY3Rpdml0eV90eXBlX2lkLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5jbHViX2lkLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5sb2NhdGlvbl9pZCxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkubWVtYmVyX2lkLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS50ZWFtX2lkLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5hY3Rpdml0eV9sb2NhdGlvbixcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkuYWN0aXZpdHlfdHlwZV9uYW1lLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5hbGxvd19tYXliZSxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkuY2FsZW5kYXJfbmFtZSxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkuY3JlYXRlZCxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkuY3VycmVudF9udW1fYXR0ZW5kYW50cyxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkuZGF5LFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5kZWZhdWx0X2ZlZSxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkuZGVzY3JpcHRpb24sXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LmVuZCxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkuZW5kX3RpbWUsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LmZpbGUsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lmludml0YXRpb25fdGV4dCxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkuaW52aXRlX2ZpcnN0X2RheXMsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lmludml0ZV9ncm91cHMsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lmludml0ZV9oaWRlX2JlZm9yZV9zZW50LFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5pbnZpdGVfbGFzdF9yZXNwb25zZV9kYXRlLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5pbnZpdGVfcmVtaW5kLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5pbnZpdGVfcmVtaW5kX3JlY2VpdmVycyxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkuaW52aXRlX3NlY29uZF9kYXlzLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5pbnZpdGVfc2V0dGluZ3MsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lmludml0ZWRfbWVtYmVycy5maWx0ZXIoKGludml0ZTogTWVtYmVyQWN0aXZpdHlJbnZpdGUpID0+IGludml0ZS5tZW1iZXJfaWQgIT09IHBheWxvYWQubWVtYmVySWQpLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5sYXN0X3Jlc3BvbnNlX2RhdGUsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LmxvY2F0aW9uX25hbWUsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lm1heF9udW1fYXR0ZW5kYW50cyxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkubWF4X251bV9hdHRlbmRhbnRzX3R5cGUsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lm1lZXRfdXBfcGxhY2UsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lm1lZXRfdXBfdGltZSxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkubWVldF91cF90aW1lX2Rpc3BsYXksXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lm1lZXRfdXBfdGltZV9zaG93LFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5tZW1iZXJfaWRzLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5tZW1iZXJfaW52b2ljZSxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkubWVtYmVyX25hbWUsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lm9wZW5fYWN0aXZpdHksXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lm9wdGlvbmFsX2ZlZXMsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lm9wdGlvbmFsX2ZlZV9yZXF1aXJlZCxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkub3B0aW9uYWxfZmVlX3R5cGUsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LnJlcGVhdCxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkucmVwZWF0X251bSxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkucmVwZWF0X3RvX2RheSxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkucmVwZWF0X3R5cGUsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LnNob3dfb3RoZXJfaW52aXRlZCxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkuc3RhcnQsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LnN0YXJ0X3RpbWUsXG4gICAgICAgICAgICAgICAgJ3dhaXRpbmcnLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS50aXRsZSxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkudXBkYXRlZCxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkudXNlX2ludml0ZSxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkudXBkYXRlX3JlcGVhdGluZ1xuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gb3BlbkFjdGl2aXR5O1xuICAgICAgICAgIH1cbiAgICAgICAgKTtcblxuICAgICAgICBjdXJyZW50U3RhdGUubWVtYmVyT3BlbkFjdGl2aXRpZXMgPSB7XG4gICAgICAgICAgLi4uY3VycmVudFN0YXRlLm1lbWJlck9wZW5BY3Rpdml0aWVzLFxuICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAuLi5jdXJyZW50U3RhdGUubWVtYmVyT3BlbkFjdGl2aXRpZXMudmFsdWUsXG4gICAgICAgICAgICByZXN1bHQ6IG5ldyBNYXA8c3RyaW5nLCBBcnJheTxPcGVuQWN0aXZpdHk+PihjdXJyZW50U3RhdGUubWVtYmVyT3BlbkFjdGl2aXRpZXMudmFsdWUucmVzdWx0KS5zZXQocGF5bG9hZC5tZW1iZXJJZCwgdXBkYXRlZE9wZW5BY3Rpdml0aWVzKVxuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gY3VycmVudFN0YXRlXG4gIH0pLFxuXG4gIC8vIFVwZGF0ZSBUZWFtIEFjdGl2aXR5XG4gIG9uKHVwZGF0ZVRlYW1BY3Rpdml0eUFjdGlvbiwgc3RhdGUgPT4gKHsgLi4uc3RhdGUsIGN1cnJlbnRUZWFtQWN0aXZpdHk6IHJldHJpZXZlU3RhcnRMb2FkaW5nKHN0YXRlLmN1cnJlbnRUZWFtQWN0aXZpdHkpIH0pKSxcbiAgb24odXBkYXRlVGVhbUFjdGl2aXR5RmFpbHVyZUFjdGlvbiwgKHN0YXRlLCB7IHBheWxvYWQgfSkgPT4gKHsgLi4uc3RhdGUsIGN1cnJlbnRUZWFtQWN0aXZpdHk6IHJldHJpZXZlTG9hZEZhaWx1cmU8VGVhbUFjdGl2aXR5SW50ZXJmYWNlPihwYXlsb2FkKSB9KSksXG4gIG9uKHVwZGF0ZVRlYW1BY3Rpdml0eVN1Y2Nlc3NBY3Rpb24sIChzdGF0ZSwgeyBwYXlsb2FkIH0pID0+IHtcbiAgICBpZiAoc3RhdGUuY3VycmVudFRlYW1BY3Rpdml0eT8ucmVzdWx0ICYmIHBheWxvYWQuaWQgPT09IHN0YXRlLmN1cnJlbnRUZWFtQWN0aXZpdHkucmVzdWx0LmFjdGl2aXR5LmlkKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgY3VycmVudFRlYW1BY3Rpdml0eToge1xuICAgICAgICAgIC4uLnN0YXRlLmN1cnJlbnRUZWFtQWN0aXZpdHksXG4gICAgICAgICAgcmVzdWx0OiB7XG4gICAgICAgICAgICAuLi5zdGF0ZS5jdXJyZW50VGVhbUFjdGl2aXR5LnJlc3VsdCxcbiAgICAgICAgICAgIGFjdGl2aXR5OiBwYXlsb2FkXG4gICAgICAgICAgfSxcbiAgICAgICAgICBsb2FkaW5nOiBmYWxzZVxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gc3RhdGU7XG4gIH0pLFxuXG4gIC8vIFJlc2VuZCB0ZWFtIGFjdGl2aXR5IGludml0ZVxuICBvbihyZXNlbmRUZWFtQWN0aXZpdHlNZW1iZXJJbnZpdGVTdWNjZXNzQWN0aW9uLCAoc3RhdGU6IENhbGVuZGFyU3RhdGUsIHtwYXlsb2FkfToge3BheWxvYWQ6IEFjdGl2aXR5SW52aXRlfSkgPT4gdXBkYXRlVGVhbUFjdGl2aXR5SW52aXRlKHN0YXRlLCBwYXlsb2FkKSksXG5cbiAgLy8gVXBkYXRlIFRlYW0gYWN0aXZpdHkgaW52aXRlXG4gIG9uKHVwZGF0ZVRlYW1NZW1iZXJBY3Rpdml0eUludml0ZVN1Y2Nlc3NBY3Rpb24sIChzdGF0ZTogQ2FsZW5kYXJTdGF0ZSwge3BheWxvYWR9OiB7cGF5bG9hZDogTWVtYmVyQWN0aXZpdHlJbnZpdGV9KSA9PiB1cGRhdGVUZWFtQWN0aXZpdHlJbnZpdGUoc3RhdGUsIHBheWxvYWQpKSxcblxuICAvLyBEZWxldGUgVGVhbSBBY3Rpdml0eVxuICBvbihkZWxldGVUZWFtQWN0aXZpdHlTdWNjZXNzQWN0aW9uLCAoc3RhdGU6IENhbGVuZGFyU3RhdGUsIHtwYXlsb2FkfToge3BheWxvYWQ6IHN0cmluZ30pID0+IHtcbiAgICBsZXQgY3VycmVudFN0YXRlID0ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBjdXJyZW50VGVhbUFjdGl2aXR5OiB1bmRlZmluZWRcbiAgICB9O1xuXG4gICAgaWYgKGN1cnJlbnRTdGF0ZS50ZWFtRXZlbnRzPy52YWx1ZT8ucmVzdWx0cykge1xuICAgICAgY3VycmVudFN0YXRlLnRlYW1FdmVudHMgPSB7XG4gICAgICAgIC4uLmN1cnJlbnRTdGF0ZS50ZWFtRXZlbnRzLFxuICAgICAgICB2YWx1ZToge1xuICAgICAgICAgIC4uLmN1cnJlbnRTdGF0ZS50ZWFtRXZlbnRzLnZhbHVlLFxuICAgICAgICAgIHJlc3VsdHM6IGN1cnJlbnRTdGF0ZS50ZWFtRXZlbnRzLnZhbHVlLnJlc3VsdHMuZmlsdGVyKChldmVudDogRXZlbnQpID0+IGV2ZW50LmlkICE9PSBwYXlsb2FkKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGN1cnJlbnRTdGF0ZTtcbiAgfSksXG5cbiAgLy8gQ3JlYXRlIFRlYW0gQWN0aXZpdHlcbiAgb24oY3JlYXRlVGVhbUFjdGl2aXR5QWN0aW9uLCBzdGF0ZSA9PiAoeyAuLi5zdGF0ZSwgY3VycmVudFRlYW1BY3Rpdml0eTogcmV0cmlldmVTdGFydExvYWRpbmcoc3RhdGUuY3VycmVudFRlYW1BY3Rpdml0eSkgfSkpLFxuXG4gIC8vIEZhaWx1cmUgSGFuZGxlcnNcbiAgb24oY3JlYXRlVGVhbUFjdGl2aXR5RmFpbHVyZUFjdGlvbiwgKHN0YXRlLCB7IHBheWxvYWQgfSkgPT4gKHsgLi4uc3RhdGUsIGN1cnJlbnRUZWFtQWN0aXZpdHk6IHJldHJpZXZlTG9hZEZhaWx1cmU8VGVhbUFjdGl2aXR5SW50ZXJmYWNlPihwYXlsb2FkKSB9KSksXG4pO1xuIl19
|
|
@@ -83,7 +83,7 @@ export const publicReducer = createReducer(initialPublicState, on(clearStoreActi
|
|
|
83
83
|
error: null,
|
|
84
84
|
results: [...currentState.publicOpenActivities.value.results].map((openActivity) => {
|
|
85
85
|
if (openActivity.id === payload) {
|
|
86
|
-
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.created, openActivity.current_num_attendants, openActivity.day, openActivity.default_fee, openActivity.description, openActivity.end, openActivity.end_time, openActivity.file, 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 !== openActivity.member_id), 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_invoice, openActivity.member_name, openActivity.open_activity, openActivity.optional_fees, openActivity.optional_fee_required, openActivity.optional_fee_type, 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.updated, openActivity.use_invite, openActivity.update_repeating);
|
|
86
|
+
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.created, openActivity.current_num_attendants, openActivity.day, openActivity.default_fee, openActivity.description, openActivity.end, openActivity.end_time, openActivity.file, 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 !== openActivity.member_id), 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.repeat, openActivity.repeat_num, openActivity.repeat_to_day, openActivity.repeat_type, openActivity.show_other_invited, openActivity.start, openActivity.start_time, 'waiting', openActivity.title, openActivity.updated, openActivity.use_invite, openActivity.update_repeating);
|
|
87
87
|
}
|
|
88
88
|
return openActivity;
|
|
89
89
|
})
|
|
@@ -106,4 +106,4 @@ export const publicReducer = createReducer(initialPublicState, on(clearStoreActi
|
|
|
106
106
|
}
|
|
107
107
|
return currentState;
|
|
108
108
|
}));
|
|
109
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLnJlZHVjZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhLWFjY2Vzcy9zcmMvbGliL3N0b3JlL3JlZHVjZXJzL3B1YmxpYy5yZWR1Y2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsRUFBRSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2hELE9BQU8sRUFDTCw2QkFBNkIsRUFDN0IsZ0JBQWdCLEVBQ2hCLDhCQUE4QixFQUM5QixxQ0FBcUMsRUFDckMscUNBQXFDLEVBQ3JDLHdDQUF3QyxFQUN4QywrQ0FBK0MsRUFDL0MsK0NBQStDLEVBQy9DLG9DQUFvQyxFQUNwQywyQ0FBMkMsRUFDM0MsMkNBQTJDLEVBQzNDLHVCQUF1QixFQUN2Qiw4QkFBOEIsRUFDOUIsOEJBQThCLEVBQzlCLDhCQUE4QixFQUM5QixxQ0FBcUMsRUFDckMscUNBQXFDLEVBQ3JDLHFDQUFxQyxFQUNyQyw0Q0FBNEMsRUFDNUMsaUNBQWlDLEVBQ2pDLHdDQUF3QyxFQUN4Qyx3Q0FBd0MsRUFDeEMscUNBQXFDLEVBQ3JDLGtDQUFrQyxFQUNsQyx5Q0FBeUMsRUFDekMseUNBQXlDLEVBQ3pDLDJCQUEyQixFQUMzQixrQ0FBa0MsRUFDbEMsK0JBQStCLEVBQy9CLHNDQUFzQyxFQUN0QyxzQ0FBc0MsRUFDdEMsa0NBQWtDLEVBQ2xDLDhCQUE4QixFQUM5QixtQ0FBbUMsRUFDbkMsMENBQTBDLEVBQzFDLDBDQUEwQyxFQUMxQyxxQ0FBcUMsRUFDckMsMkNBQTJDLEVBQzNDLHNDQUFzQyxFQUN0Qyw2Q0FBNkMsRUFBRSw2Q0FBNkMsRUFDNUYscUNBQXFDLEVBQ3JDLHFDQUFxQyxFQUNyQyw0Q0FBNEMsRUFDNUMsNENBQTRDLEVBQzVDLGdDQUFnQyxFQUNoQyx1Q0FBdUMsRUFDdkMsdUNBQXVDLEVBQ3ZDLHVDQUF1QyxFQUN2QyxxQ0FBcUMsRUFDdEMsTUFBTSxZQUFZLENB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QVksQ0FBQyxrQkFBa0IsRUFDL0IsWUFBWSxDQUFDLEtBQUssRUFDbEIsWUFBWSxDQUFDLFVBQVUsRUFDdkIsU0FBUyxFQUNULFlBQVksQ0FBQyxLQUFLLEVBQ2xCLFlBQVksQ0FBQyxPQUFPLEVBQ3BCLFlBQVksQ0FBQyxVQUFVLEVBQ3ZCLFlBQVksQ0FBQyxnQkFBZ0IsQ0FDOUIsQ0FBQztvQkFDSixDQUFDO29CQUNELE9BQU8sWUFBWSxDQUFDO2dCQUN0QixDQUFDLENBQUM7YUFDSDtTQUNGLENBQUE7SUFDSCxDQUFDO0lBRUQsT0FBTyxZQUFZLENBQUM7QUFDdEIsQ0FBQyxDQUFDLEVBQ0YsRUFBRSxDQUFDLHFDQUFxQyxFQUFFLENBQUMsS0FBa0IsRUFBRSxFQUFDLE9BQU8sRUFBMEIsRUFBRSxFQUFFO0lBQ25HLElBQUksWUFBWSxHQUFHO1FBQ2pCLEdBQUcsS0FBSztRQUNSLGtCQUFrQixFQUFFLG1CQUFtQixDQUFDLE9BQU8sQ0FBQztLQUNqRCxDQUFDO0lBRUYsSUFBSSxZQUFZLENBQUMsb0JBQW9CLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3JELFlBQVksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLFlBQVksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUNuSCxJQUFJLFlBQVksQ0FBQyxFQUFFLEtBQUssT0FBTyxDQUFDLEVBQUUsSUFBSSxZQUFZLENBQUMsU0FBUyxLQUFLLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDbkYsT0FBTyxPQUFPLENBQUM7WUFDakIsQ0FBQztZQUNELE9BQU8sWUFBWSxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE9BQU8sWUFBWSxDQUFDO0FBQ3RCLENBQUMsQ0FBQyxDQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVSZWR1Y2VyLCBvbiB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7XG4gIGNsZWFyUHVibGljT3BlbkFjdGl2aXR5QWN0aW9uLFxuICBjbGVhclN0b3JlQWN0aW9uLFxuICBnZXRDdXJyZW50UHVibGljQ2x1YkluZm9BY3Rpb24sXG4gIGdldEN1cnJlbnRQdWJsaWNDbHViSW5mb0ZhaWx1cmVBY3Rpb24sXG4gIGdldEN1cnJlbnRQdWJsaWNDbHViSW5mb1N1Y2Nlc3NBY3Rpb24sXG4gIGxpc3RBbGxQdWJsaWNPcGVuQWN0aXZpdHlMb2NhdGlvbnNBY3Rpb24sXG4gIGxpc3RBbGxQdWJsaWNPcGVuQWN0aXZpdHlMb2NhdGlvbnNGYWlsdXJlQWN0aW9uLFxuICBsaXN0QWxsUHVibGljT3BlbkFjdGl2aXR5TG9jYXRpb25zU3VjY2Vzc0FjdGlvbixcbiAgbGlzdEFsbFB1YmxpY09wZW5BY3Rpdml0eVR5cGVzQWN0aW9uLFxuICBsaXN0QWxsUHVibGljT3BlbkFjdGl2aXR5VHlwZXNGYWlsdXJlQWN0aW9uLFxuICBsaXN0QWxsUHVibGljT3BlbkFjdGl2aXR5VHlwZXNTdWNjZXNzQWN0aW9uLFxuICBsaXN0UHVibGljTWVtYmVyc0FjdGlvbixcbiAgbGlzdFB1YmxpY01lbWJlcnNGYWlsdXJlQWN0aW9uLFxuICBsaXN0UHVibGljTWVtYmVyc1N1Y2Nlc3NBY3Rpb24sXG4gIGxpc3RQdWJsaWNPcGVuQWN0aXZpdGllc0FjdGlvbixcbiAgbGlzdFB1YmxpY09wZW5BY3Rpdml0aWVzRmFpbHVyZUFjdGlvbixcbiAgbGlzdFB1YmxpY09wZW5BY3Rpdml0aWVzU3VjY2Vzc0FjdGlvbixcbiAgbGlzdFB1YmxpY09wZW5BY3Rpdml0eUxvY2F0aW9uc0FjdGlvbixcbiAgbGlzdFB1YmxpY09wZW5BY3Rpdml0eUxvY2F0aW9uc1N1Y2Nlc3NBY3Rpb24sXG4gIGxpc3RQdWJsaWNPcGVuQWN0aXZpdHlUeXBlc0FjdGlvbixcbiAgbGlzdFB1YmxpY09wZW5BY3Rpdml0eVR5cGVzRmFpbHVyZUFjdGlvbixcbiAgbGlzdFB1YmxpY09wZW5BY3Rpdml0eVR5cGVzU3VjY2Vzc0FjdGlvbixcbiAgcmVtb3ZlUHVibGljT3BlbkFjdGl2aXR5U3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVQdWJsaWNBY3Rpdml0eUludml0ZUFjdGlvbixcbiAgcmV0cmlldmVQdWJsaWNBY3Rpdml0eUludml0ZUZhaWx1cmVBY3Rpb24sXG4gIHJldHJpZXZlUHVibGljQWN0aXZpdHlJbnZpdGVTdWNjZXNzQWN0aW9uLFxuICByZXRyaWV2ZVB1YmxpY0ludm9pY2VBY3Rpb24sXG4gIHJldHJpZXZlUHVibGljSW52b2ljZUZhaWx1cmVBY3Rpb24sXG4gIHJldHJpZXZlUHVibGljSW52b2ljZUxvZ29BY3Rpb24sXG4gIHJldHJpZXZlUHVibGljSW52b2ljZUxvZ29GYWlsdXJlQWN0aW9uLFxuICByZXRyaWV2ZVB1YmxpY0ludm9pY2VMb2dvU3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVQdWJsaWNJbnZvaWNlU3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVQdWJsaWNNZW1iZXJDYXJkQWN0aW9uLFxuICByZXRyaWV2ZVB1YmxpY01lbWJlckNhcmREZWFsc0FjdGlvbixcbiAgcmV0cmlldmVQdWJsaWNNZW1iZXJDYXJkRGVhbHNGYWlsdXJlQWN0aW9uLFxuICByZXRyaWV2ZVB1YmxpY01lbWJlckNhcmREZWFsc1N1Y2Nlc3NBY3Rpb24sXG4gIHJldHJpZXZlUHVibGljTWVtYmVyQ2FyZEZhaWx1cmVBY3Rpb24sXG4gIHJldHJpZXZlUHVibGljTWVtYmVyQ2FyZFFSQ29kZVN1Y2Nlc3NBY3Rpb24sXG4gIHJldHJpZXZlUHVibGljTWVtYmVyQ2FyZFJlZ2lzdGVyQWN0aW9uLFxuICByZXRyaWV2ZVB1YmxpY01lbWJlckNhcmRSZWdpc3RlckZhaWx1cmVBY3Rpb24sIHJldHJpZXZlUHVibGljTWVtYmVyQ2FyZFJlZ2lzdGVyU3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVQdWJsaWNNZW1iZXJDYXJkU3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVQdWJsaWNNZW1iZXJDYXJkVGlja2V0c0FjdGlvbixcbiAgcmV0cmlldmVQdWJsaWNNZW1iZXJDYXJkVGlja2V0c0ZhaWx1cmVBY3Rpb24sXG4gIHJldHJpZXZlUHVibGljTWVtYmVyQ2FyZFRpY2tldHNTdWNjZXNzQWN0aW9uLFxuICByZXRyaWV2ZVB1YmxpY09wZW5BY3Rpdml0eUFjdGlvbixcbiAgcmV0cmlldmVQdWJsaWNPcGVuQWN0aXZpdHlGYWlsdXJlQWN0aW9uLFxuICByZXRyaWV2ZVB1YmxpY09wZW5BY3Rpdml0eVN1Y2Nlc3NBY3Rpb24sXG4gIHVwZGF0ZVB1YmxpY0FjdGl2aXR5SW52aXRlU3VjY2Vzc0FjdGlvbixcbiAgdXBkYXRlUHVibGljT3BlbkFjdGl2aXR5U3VjY2Vzc0FjdGlvblxufSBmcm9tICcuLi9hY3Rpb25zJztcbmltcG9ydCB7XG4gIEFjdGl2aXR5SW52aXRlLFxuICBBY3Rpdml0eUxvY2F0aW9uLFxuICBBY3Rpdml0eVR5cGUsXG4gIENsdWJJbWFnZSxcbiAgTWVtYmVyQWN0aXZpdHlJbnZpdGUsXG4gIE1lbWJlckNhcmQsXG4gIE1lbWJlckludm9pY2UsXG4gIE9wZW5BY3Rpdml0eSxcbiAgU2VhcmNoQ2x1YixcbiAgU2VhcmNoTWVtYmVyXG59IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBpbml0aWFsUHVibGljU3RhdGUsIFB1YmxpY1N0YXRlIH0gZnJvbSAnLi4vc3RhdGUnO1xuaW1wb3J0IHtcbiAgbGlzdExvYWRGYWlsdXJlLFxuICBsaXN0TG9hZFN1Y2Nlc3MsXG4gIGxpc3RTdGFydExvYWRpbmcsXG4gIHJldHJpZXZlTG9hZEZhaWx1cmUsXG4gIHJldHJpZXZlTG9hZFN1Y2Nlc3MsXG4gIHJldHJpZXZlU3RhcnRMb2FkaW5nXG59IGZyb20gJy4vcmVkdWNlci1oZWxwZXJzJztcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtcbiAgQ2FsZW5kYXJBY3Rpdml0eUxvY2F0aW9uc0ludGVyZmFjZSxcbiAgQ2FsZW5kYXJBY3Rpdml0eVR5cGVzSW50ZXJmYWNlLFxuICBNZW1iZXJDYXJkRGVhbHNJbnRlcmZhY2UsXG4gIE1lbWJlckNhcmRUaWNrZXRzSW50ZXJmYWNlXG59IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgT3BlbkFjdGl2aXR5U2VhcmNoUGFyYW1zSW50ZXJmYWNlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCBjb25zdCBwdWJsaWNSZWR1Y2VyID0gY3JlYXRlUmVkdWNlcihcbiAgaW5pdGlhbFB1YmxpY1N0YXRlLFxuICBvbihjbGVhclN0b3JlQWN0aW9uLCAoKSA9PiBpbml0aWFsUHVibGljU3RhdGUpLFxuICBvbihjbGVhclB1YmxpY09wZW5BY3Rpdml0eUFjdGlvbiwgKHN0YXRlOiBQdWJsaWNTdGF0ZSkgPT4gKHsuLi5zdGF0ZSwgcHVibGljT3BlbkFjdGl2aXR5OiB1bmRlZmluZWR9KSksXG4gIG9uKGdldEN1cnJlbnRQdWJsaWNDbHViSW5mb0FjdGlvbiwgKHN0YXRlOiBQdWJsaWNTdGF0ZSkgPT4gKHsuLi5zdGF0ZSwgcHVibGljQ2x1YkluZm86IHJldHJpZXZlU3RhcnRMb2FkaW5nKHN0YXRlLnB1YmxpY0NsdWJJbmZvKX0pKSxcbiAgb24oZ2V0Q3VycmVudFB1YmxpY0NsdWJJbmZvRmFpbHVyZUFjdGlvbiwgKHN0YXRlOiBQdWJsaWNTdGF0ZSwge3BheWxvYWR9OiB7cGF5bG9hZDogSHR0cEVycm9yUmVzcG9uc2V9KSA9PiAgKHsuLi5zdGF0ZSwgcHVibGljQ2x1YkluZm86IHJldHJpZXZlTG9hZEZhaWx1cmU8U2VhcmNoQ2x1Yj4ocGF5bG9hZCl9KSksXG4gIG9uKGdldEN1cnJlbnRQdWJsaWNDbHViSW5mb1N1Y2Nlc3NBY3Rpb24sIChzdGF0ZTogUHVibGljU3RhdGUsIHtwYXlsb2FkfToge3BheWxvYWQ6IFNlYXJjaENsdWJ9KSA9PiAoey4uLnN0YXRlLCBwdWJsaWNDbHViSW5mbzogcmV0cmlldmVMb2FkU3VjY2VzcyhwYXlsb2FkKX0pKSxcbiAgb24obGlzdEFsbFB1YmxpY09wZW5BY3Rpdml0eUxvY2F0aW9uc0FjdGlvbiwgKHN0YXRlOiBQdWJsaWNTdGF0ZSkgPT4gKHsuLi5zdGF0ZSwgcHVibGljQWxsT3BlbkFjdGl2aXR5TG9jYXRpb25zOiBsaXN0U3RhcnRMb2FkaW5nKHN0YXRlLnB1YmxpY0FsbE9wZW5BY3Rpdml0eUxvY2F0aW9ucyl9KSksXG4gIG9uKGxpc3RBbGxQdWJsaWNPcGVuQWN0aXZpdHlMb2NhdGlvbnNGYWlsdXJlQWN0aW9uLCAoc3RhdGU6IFB1YmxpY1N0YXRlLCB7cGF5bG9hZH06IHtwYXlsb2FkOiBIdHRwRXJyb3JSZXNwb25zZX0pID0+ICh7Li4uc3RhdGUsIHB1YmxpY0FsbE9wZW5BY3Rpdml0eUxvY2F0aW9uczogbGlzdExvYWRGYWlsdXJlPEFjdGl2aXR5TG9jYXRpb24+KHBheWxvYWQpfSkpLFxuICBvbihsaXN0QWxsUHVibGljT3BlbkFjdGl2aXR5TG9jYXRpb25zU3VjY2Vzc0FjdGlvbiwgKHN0YXRlOiBQdWJsaWNTdGF0ZSwge3BheWxvYWR9OiB7cGF5bG9hZDogQXJyYXk8QWN0aXZpdHlMb2NhdGlvbj59KSA9PiAoey4uLnN0YXRlLCBwdWJsaWNBbGxPcGVuQWN0aXZpdHlMb2NhdGlvbnM6IGxpc3RMb2FkU3VjY2VzcyhwYXlsb2FkKX0pKSxcbiAgb24obGlzdEFsbFB1YmxpY09wZW5BY3Rpdml0eVR5cGVzQWN0aW9uLCAoc3RhdGU6IFB1YmxpY1N0YXRlKSA9PiAoey4uLnN0YXRlLCBwdWJsaWNBbGxPcGVuQWN0aXZpdHlUeXBlczogbGlzdFN0YXJ0TG9hZGluZyhzdGF0ZS5wdWJsaWNBbGxPcGVuQWN0aXZpdHlUeXBlcyl9KSksXG4gIG9uKGxpc3RBbGxQdWJsaWNPcGVuQWN0aXZpdHlUeXBlc0ZhaWx1cmVBY3Rpb24sIChzdGF0ZTogUHVibGljU3RhdGUsIHtwYXlsb2FkfToge3BheWxvYWQ6IEh0dHBFcnJvclJlc3BvbnNlfSkgPT4gKHsuLi5zdGF0ZSwgcHVibGljQWxsT3BlbkFjdGl2aXR5VHlwZXM6IGxpc3RMb2FkRmFpbHVyZTxBY3Rpdml0eVR5cGU+KHBheWxvYWQpfSkpLFxuICBvbihsaXN0QWxsUHVibGljT3BlbkFjdGl2aXR5VHlwZXNTdWNjZXNzQWN0aW9uLCAoc3RhdGU6IFB1YmxpY1N0YXRlLCB7cGF5bG9hZH06IHtwYXlsb2FkOiBBcnJheTxBY3Rpdml0eVR5cGU+fSkgPT4gKHsuLi5zdGF0ZSwgcHVibGljQWxsT3BlbkFjdGl2aXR5VHlwZXM6IGxpc3RMb2FkU3VjY2VzcyhwYXlsb2FkKX0pKSxcbiAgb24obGlzdFB1YmxpY01lbWJlcnNBY3Rpb24sIChzdGF0ZTogUHVibGljU3RhdGUpID0+ICh7Li4uc3RhdGUsIG1lbWJlcnM6IGxpc3RTdGFydExvYWRpbmcoc3RhdGUubWVtYmVycyl9KSksXG4gIG9uKGxpc3RQdWJsaWNNZW1iZXJzRmFpbHVyZUFjdGlvbiwgKHN0YXRlOiBQdWJsaWNTdGF0ZSwge3BheWxvYWR9OiB7cGF5bG9hZDogSHR0cEVycm9yUmVzcG9uc2V9KSA9PiAoey4uLnN0YXRlLCBtZW1iZXJzOiBsaXN0TG9hZEZhaWx1cmU8U2VhcmNoTWVtYmVyPihwYXlsb2FkKX0pKSxcbiAgb24obGlzdFB1YmxpY01lbWJlcnNTdWNjZXNzQWN0aW9uLCAoc3RhdGU6IFB1YmxpY1N0YXRlLCB7cGF5bG9hZH06IHtwYXlsb2FkOiBBcnJheTxTZWFyY2hNZW1iZXI+fSkgPT4gKHsuLi5zdGF0ZSwgbWVtYmVyczogbGlzdExvYWRTdWNjZXNzKHBheWxvYWQpfSkpLFxuICBvbihsaXN0UHVibGljT3BlbkFjdGl2aXRpZXNBY3Rpb24sIChzdGF0ZTogUHVibGljU3RhdGUsIHtwYXlsb2FkfToge3BheWxvYWQ6IE9wZW5BY3Rpdml0eVNlYXJjaFBhcmFtc0ludGVyZmFjZX0pID0+XG4gICAgKHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgcHVibGljT3BlbkFjdGl2aXRpZXM6IHtcbiAgICAgICAgc2VhcmNoUGFyYW1zOiBwYXlsb2FkLFxuICAgICAgICB2YWx1ZTogbGlzdFN0YXJ0TG9hZGluZyhzdGF0ZS5wdWJsaWNPcGVuQWN0aXZpdGllcz8udmFsdWUpXG4gICAgICB9XG4gICAgfSlcbiAgKSxcbiAgb24obGlzdFB1YmxpY09wZW5BY3Rpdml0aWVzRmFpbHVyZUFjdGlvbiwgKHN0YXRlOiBQdWJsaWNTdGF0ZSwge3BheWxvYWR9OiB7cGF5bG9hZDogSHR0cEVycm9yUmVzcG9uc2V9KSA9PlxuICAgICh7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIHB1YmxpY09wZW5BY3Rpdml0aWVzOiB7XG4gICAgICAgIHNlYXJjaFBhcmFtczogc3RhdGUucHVibGljT3BlbkFjdGl2aXRpZXM/LnNlYXJjaFBhcmFtcyBhcyBPcGVuQWN0aXZpdHlTZWFyY2hQYXJhbXNJbnRlcmZhY2UsXG4gICAgICAgIHZhbHVlOiBsaXN0TG9hZEZhaWx1cmU8T3BlbkFjdGl2aXR5PihwYXlsb2FkKVxuICAgICAgfVxuICAgIH0pXG4gICksXG4gIG9uKGxpc3RQdWJsaWNPcGVuQWN0aXZpdGllc1N1Y2Nlc3NBY3Rpb24sIChzdGF0ZTogUHVibGljU3RhdGUsIHtwYXlsb2FkfToge3BheWxvYWQ6IHtvcGVuQWN0aXZpdHlTZWFyY2hQYXJhbXM6IE9wZW5BY3Rpdml0eVNlYXJjaFBhcmFtc0ludGVyZmFjZSwgcmVzdWx0czogQXJyYXk8T3BlbkFjdGl2aXR5Pn19KSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIHB1YmxpY09wZW5BY3Rpdml0aWVzOiB7XG4gICAgICBzZWFyY2hQYXJhbXM6IHBheWxvYWQub3BlbkFjdGl2aXR5U2VhcmNoUGFyYW1zLFxuICAgICAgdmFsdWU6IGxpc3RMb2FkU3VjY2VzcyhwYXlsb2FkLnJlc3VsdHMpXG4gICAgfVxuICB9KSksXG4gIG9uKGxpc3RQdWJsaWNPcGVuQWN0aXZpdHlMb2NhdGlvbnNBY3Rpb24sIChzdGF0ZTogUHVibGljU3RhdGUsIHtwYXlsb2FkfToge3BheWxvYWQ6IHtzdGFydERhdGU6IHN0cmluZywgZW5kRGF0ZTogc3RyaW5nfX0pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgcHVibGljT3BlbkFjdGl2aXR5TG9jYXRpb25zOiB7XG4gICAgICBzdGFydERhdGU6IHBheWxvYWQuc3RhcnREYXRlLFxuICAgICAgZW5kRGF0ZTogcGF5bG9hZC5lbmREYXRlLFxuICAgICAgdmFsdWU6IGxpc3RTdGFydExvYWRpbmcoc3RhdGUucHVibGljT3BlbkFjdGl2aXR5TG9jYXRpb25zPy52YWx1ZSlcbiAgICB9XG4gIH0pKSxcbiAgb24obGlzdEFsbFB1YmxpY09wZW5BY3Rpdml0eUxvY2F0aW9uc0ZhaWx1cmVBY3Rpb24sIChzdGF0ZTogUHVibGljU3RhdGUsIHtwYXlsb2FkfToge3BheWxvYWQ6IEh0dHBFcnJvclJlc3BvbnNlfSkgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBwdWJsaWNPcGVuQWN0aXZpdHlMb2NhdGlvbnM6IHtcbiAgICAgIC4uLnN0YXRlLnB1YmxpY09wZW5BY3Rpdml0eUxvY2F0aW9ucyBhcyBDYWxlbmRhckFjdGl2aXR5TG9jYXRpb25zSW50ZXJmYWNlLFxuICAgICAgdmFsdWU6IGxpc3RMb2FkRmFpbHVyZTxBY3Rpdml0eUxvY2F0aW9uPihwYXlsb2FkKVxuICAgIH1cbiAgfSkpLFxuICBvbihsaXN0UHVibGljT3BlbkFjdGl2aXR5TG9jYXRpb25zU3VjY2Vzc0FjdGlvbiwgKHN0YXRlOiBQdWJsaWNTdGF0ZSwge3BheWxvYWR9OiB7cGF5bG9hZDoge3N0YXJ0RGF0ZTogc3RyaW5nLCBlbmREYXRlOiBzdHJpbmcsIGxvY2F0aW9uczogQXJyYXk8QWN0aXZpdHlMb2NhdGlvbj59fSkgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBwdWJsaWNPcGVuQWN0aXZpdHlMb2NhdGlvbnM6IHtcbiAgICAgIHN0YXJ0RGF0ZTogcGF5bG9hZC5zdGFydERhdGUsXG4gICAgICBlbmREYXRlOiBwYXlsb2FkLmVuZERhdGUsXG4gICAgICB2YWx1ZTogbGlzdExvYWRTdWNjZXNzKHBheWxvYWQubG9jYXRpb25zKVxuICAgIH1cbiAgfSkpLFxuICBvbihsaXN0UHVibGljT3BlbkFjdGl2aXR5VHlwZXNBY3Rpb24sIChzdGF0ZTogUHVibGljU3RhdGUsIHtwYXlsb2FkfToge3BheWxvYWQ6IHtzdGFydERhdGU6IHN0cmluZywgZW5kRGF0ZTogc3RyaW5nfX0pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgcHVibGljT3BlbkFjdGl2aXR5VHlwZXM6IHtcbiAgICAgIHN0YXJ0RGF0ZTogcGF5bG9hZC5zdGFydERhdGUsXG4gICAgICBlbmREYXRlOiBwYXlsb2FkLmVuZERhdGUsXG4gICAgICB2YWx1ZTogbGlzdFN0YXJ0TG9hZGluZyhzdGF0ZS5wdWJsaWNPcGVuQWN0aXZpdHlUeXBlcz8udmFsdWUpXG4gICAgfVxuICB9KSksXG4gIG9uKGxpc3RQdWJsaWNPcGVuQWN0aXZpdHlUeXBlc0ZhaWx1cmVBY3Rpb24sIChzdGF0ZTogUHVibGljU3RhdGUsIHtwYXlsb2FkfToge3BheWxvYWQ6IEh0dHBFcnJvclJlc3BvbnNlfSkgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBwdWJsaWNPcGVuQWN0aXZpdHlUeXBlczoge1xuICAgICAgLi4uc3RhdGUucHVibGljT3BlbkFjdGl2aXR5VHlwZXMgYXMgQ2FsZW5kYXJBY3Rpdml0eVR5cGVzSW50ZXJmYWNlLFxuICAgICAgdmFsdWU6IGxpc3RMb2FkRmFpbHVyZTxBY3Rpdml0eVR5cGU+KHBheWxvYWQpXG4gICAgfVxuICB9KSksXG4gIG9uKGxpc3RQdWJsaWNPcGVuQWN0aXZpdHlUeXBlc1N1Y2Nlc3NBY3Rpb24sIChzdGF0ZTogUHVibGljU3RhdGUsIHtwYXlsb2FkfToge3BheWxvYWQ6IHtzdGFydERhdGU6IHN0cmluZywgZW5kRGF0ZTogc3RyaW5nLCB0eXBlczogQXJyYXk8QWN0aXZpdHlUeXBlPiB9IH0pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgcHVibGljT3BlbkFjdGl2aXR5VHlwZXM6IHtcbiAgICAgIHN0YXJ0RGF0ZTogcGF5bG9hZC5zdGFydERhdGUsXG4gICAgICBlbmREYXRlOiBwYXlsb2FkLmVuZERhdGUsXG4gICAgICB2YWx1ZTogbGlzdExvYWRTdWNjZXNzKHBheWxvYWQudHlwZXMpXG4gICAgfVxuICB9KSksXG4gIG9uKHJldHJpZXZlUHVibGljQWN0aXZpdHlJbnZpdGVBY3Rpb24sIChzdGF0ZTogUHVibGljU3RhdGUpID0+ICh7Li4uc3RhdGUsIHB1YmxpY0FjdGl2aXR5SW52aXRlOiByZXRyaWV2ZVN0YXJ0TG9hZGluZyhzdGF0ZS5hY3Rpdml0eUludml0YXRpb24pfSkpLFxuICBvbihyZXRyaWV2ZVB1YmxpY0FjdGl2aXR5SW52aXRlRmFpbHVyZUFjdGlvbiwgKHN0YXRlOiBQdWJsaWNTdGF0ZSwge3BheWxvYWR9OiB7cGF5bG9hZDogSHR0cEVycm9yUmVzcG9uc2V9KSA9PiAoey4uLnN0YXRlLCBhY3Rpdml0eUludml0YXRpb246IHJldHJpZXZlTG9hZEZhaWx1cmU8QWN0aXZpdHlJbnZpdGU+KHBheWxvYWQpfSkpLFxuICBvbihyZXRyaWV2ZVB1YmxpY0FjdGl2aXR5SW52aXRlU3VjY2Vzc0FjdGlvbiwgdXBkYXRlUHVibGljQWN0aXZpdHlJbnZpdGVTdWNjZXNzQWN0aW9uLCAoc3RhdGU6IFB1YmxpY1N0YXRlLCB7cGF5bG9hZH06IHtwYXlsb2FkOiBBY3Rpdml0eUludml0ZX0pID0+ICh7Li4uc3RhdGUsIGFjdGl2aXR5SW52aXRhdGlvbjogcmV0cmlldmVMb2FkU3VjY2VzcyhwYXlsb2FkKX0pKSxcbiAgb24ocmV0cmlldmVQdWJsaWNJbnZvaWNlQWN0aW9uLCAoc3RhdGU6IFB1YmxpY1N0YXRlKSA9PiAoey4uLnN0YXRlLCBpbnZvaWNlOiByZXRyaWV2ZVN0YXJ0TG9hZGluZyhzdGF0ZS5pbnZvaWNlKX0pKSxcbiAgb24ocmV0cmlldmVQdWJsaWNJbnZvaWNlRmFpbHVyZUFjdGlvbiwgKHN0YXRlOiBQdWJsaWNTdGF0ZSwge3BheWxvYWR9OiB7cGF5bG9hZDogSHR0cEVycm9yUmVzcG9uc2V9KSA9PiAoey4uLnN0YXRlLCBpbnZvaWNlOiByZXRyaWV2ZUxvYWRGYWlsdXJlPE1lbWJlckludm9pY2U+KHBheWxvYWQpfSkpLFxuICBvbihyZXRyaWV2ZVB1YmxpY0ludm9pY2VTdWNjZXNzQWN0aW9uLCAoc3RhdGU6IFB1YmxpY1N0YXRlLCB7cGF5bG9hZH06IHtwYXlsb2FkOiBNZW1iZXJJbnZvaWNlfSkgPT4gKHsuLi5zdGF0ZSwgaW52b2ljZTogcmV0cmlldmVMb2FkU3VjY2VzcyhwYXlsb2FkKX0pKSxcbiAgb24ocmV0cmlldmVQdWJsaWNJbnZvaWNlTG9nb0FjdGlvbiwgKHN0YXRlOiBQdWJsaWNTdGF0ZSkgPT4gKHsuLi5zdGF0ZSwgaW52b2ljZUxvZ286IHJldHJpZXZlU3RhcnRMb2FkaW5nKHN0YXRlLmludm9pY2VMb2dvKX0pKSxcbiAgb24ocmV0cmlldmVQdWJsaWNJbnZvaWNlTG9nb0ZhaWx1cmVBY3Rpb24sIChzdGF0ZTogUHVibGljU3RhdGUsIHtwYXlsb2FkfToge3BheWxvYWQ6IEh0dHBFcnJvclJlc3BvbnNlfSkgPT4gKHsuLi5zdGF0ZSwgaW52b2ljZUxvZ286IHJldHJpZXZlTG9hZEZhaWx1cmU8Q2x1YkltYWdlPihwYXlsb2FkKX0pKSxcbiAgb24ocmV0cmlldmVQdWJsaWNJbnZvaWNlTG9nb1N1Y2Nlc3NBY3Rpb24sIChzdGF0ZTogUHVibGljU3RhdGUsIHtwYXlsb2FkfToge3BheWxvYWQ6IENsdWJJbWFnZX0pID0+ICh7Li4uc3RhdGUsIGludm9pY2VMb2dvOiByZXRyaWV2ZUxvYWRTdWNjZXNzKHBheWxvYWQpfSkpLFxuICBvbihyZXRyaWV2ZVB1YmxpY01lbWJlckNhcmRBY3Rpb24sIHJldHJpZXZlUHVibGljTWVtYmVyQ2FyZFJlZ2lzdGVyQWN0aW9uLCAoc3RhdGU6IFB1YmxpY1N0YXRlKSA9PiAoey4uLnN0YXRlLCBjdXJyZW50TWVtYmVyQ2FyZDogcmV0cmlldmVTdGFydExvYWRpbmcoc3RhdGUuY3VycmVudE1lbWJlckNhcmQpfSkpLFxuICBvbihyZXRyaWV2ZVB1YmxpY01lbWJlckNhcmRGYWlsdXJlQWN0aW9uLCByZXRyaWV2ZVB1YmxpY01lbWJlckNhcmRSZWdpc3RlckZhaWx1cmVBY3Rpb24sIChzdGF0ZTogUHVibGljU3RhdGUsIHtwYXlsb2FkfToge3BheWxvYWQ6IEh0dHBFcnJvclJlc3BvbnNlfSkgPT4gKHsuLi5zdGF0ZSwgY3VycmVudE1lbWJlckNhcmQ6IHJldHJpZXZlTG9hZEZhaWx1cmU8TWVtYmVyQ2FyZD4ocGF5bG9hZCl9KSksXG4gIG9uKHJldHJpZXZlUHVibGljTWVtYmVyQ2FyZFN1Y2Nlc3NBY3Rpb24sIHJldHJpZXZlUHVibGljTWVtYmVyQ2FyZFFSQ29kZVN1Y2Nlc3NBY3Rpb24sIHJldHJpZXZlUHVibGljTWVtYmVyQ2FyZFJlZ2lzdGVyU3VjY2Vzc0FjdGlvbiwgKHN0YXRlOiBQdWJsaWNTdGF0ZSwge3BheWxvYWR9OiB7cGF5bG9hZDogTWVtYmVyQ2FyZH0pID0+ICh7Li4uc3RhdGUsIGN1cnJlbnRNZW1iZXJDYXJkOiByZXRyaWV2ZUxvYWRTdWNjZXNzKHBheWxvYWQpfSkpLFxuICBvbihyZXRyaWV2ZVB1YmxpY01lbWJlckNhcmREZWFsc0FjdGlvbiwgKHN0YXRlOiBQdWJsaWNTdGF0ZSkgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBjYXJkRGVhbHM6IHJldHJpZXZlU3RhcnRMb2FkaW5nPE1lbWJlckNhcmREZWFsc0ludGVyZmFjZT4oc3RhdGUuY2FyZERlYWxzKVxuICB9KSksXG4gIG9uKHJldHJpZXZlUHVibGljTWVtYmVyQ2FyZERlYWxzRmFpbHVyZUFjdGlvbiwgKHN0YXRlOiBQdWJsaWNTdGF0ZSwge3BheWxvYWR9OiB7XG4gICAgcGF5bG9hZDogSHR0cEVycm9yUmVzcG9uc2VcbiAgfSkgPT4gKHsuLi5zdGF0ZSwgY2FyZERlYWxzOiByZXRyaWV2ZUxvYWRGYWlsdXJlPE1lbWJlckNhcmREZWFsc0ludGVyZmFjZT4ocGF5bG9hZCl9KSksXG4gIG9uKHJldHJpZXZlUHVibGljTWVtYmVyQ2FyZERlYWxzU3VjY2Vzc0FjdGlvbiwgKHN0YXRlOiBQdWJsaWNTdGF0ZSwge3BheWxvYWR9OiB7XG4gICAgcGF5bG9hZDogTWVtYmVyQ2FyZERlYWxzSW50ZXJmYWNlXG4gIH0pID0+ICh7Li4uc3RhdGUsIGNhcmREZWFsczogcmV0cmlldmVMb2FkU3VjY2VzcyhwYXlsb2FkKX0pKSxcbiAgb24ocmV0cmlldmVQdWJsaWNNZW1iZXJDYXJkVGlja2V0c0FjdGlvbiwgKHN0YXRlOiBQdWJsaWNTdGF0ZSkgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBjYXJkVGlja2V0czogcmV0cmlldmVTdGFydExvYWRpbmc8TWVtYmVyQ2FyZFRpY2tldHNJbnRlcmZhY2U+KHN0YXRlLmNhcmRUaWNrZXRzKVxuICB9KSksXG4gIG9uKHJldHJpZXZlUHVibGljTWVtYmVyQ2FyZFRpY2tldHNGYWlsdXJlQWN0aW9uLCAoc3RhdGU6IFB1YmxpY1N0YXRlLCB7cGF5bG9hZH06IHtcbiAgICBwYXlsb2FkOiBIdHRwRXJyb3JSZXNwb25zZVxuICB9KSA9PiAoey4uLnN0YXRlLCBjYXJkVGlja2V0czogcmV0cmlldmVMb2FkRmFpbHVyZTxNZW1iZXJDYXJkVGlja2V0c0ludGVyZmFjZT4ocGF5bG9hZCl9KSksXG4gIG9uKHJldHJpZXZlUHVibGljTWVtYmVyQ2FyZFRpY2tldHNTdWNjZXNzQWN0aW9uLCAoc3RhdGU6IFB1YmxpY1N0YXRlLCB7cGF5bG9hZH06IHtcbiAgICBwYXlsb2FkOiBNZW1iZXJDYXJkVGlja2V0c0ludGVyZmFjZVxuICB9KSA9PiAoey4uLnN0YXRlLCBjYXJkVGlja2V0czogcmV0cmlldmVMb2FkU3VjY2VzcyhwYXlsb2FkKX0pKSxcbiAgb24ocmV0cmlldmVQdWJsaWNPcGVuQWN0aXZpdHlBY3Rpb24sIChzdGF0ZTogUHVibGljU3RhdGUpID0+ICh7Li4uc3RhdGUsIHB1YmxpY09wZW5BY3Rpdml0eTogcmV0cmlldmVTdGFydExvYWRpbmcoc3RhdGUucHVibGljT3BlbkFjdGl2aXR5KX0pKSxcbiAgb24ocmV0cmlldmVQdWJsaWNPcGVuQWN0aXZpdHlGYWlsdXJlQWN0aW9uLCAoc3RhdGU6IFB1YmxpY1N0YXRlLCB7cGF5bG9hZH06IHtwYXlsb2FkOiBIdHRwRXJyb3JSZXNwb25zZX0pID0+ICh7Li4uc3RhdGUsIHB1YmxpY09wZW5BY3Rpdml0eTogcmV0cmlldmVMb2FkRmFpbHVyZTxPcGVuQWN0aXZpdHk+KHBheWxvYWQpfSkpLFxuICBvbihyZXRyaWV2ZVB1YmxpY09wZW5BY3Rpdml0eVN1Y2Nlc3NBY3Rpb24sIChzdGF0ZTogUHVibGljU3RhdGUsIHtwYXlsb2FkfToge3BheWxvYWQ6IE9wZW5BY3Rpdml0eX0pID0+ICh7Li4uc3RhdGUsIHB1YmxpY09wZW5BY3Rpdml0eTogcmV0cmlldmVMb2FkU3VjY2VzcyhwYXlsb2FkKX0pKSxcbiAgb24ocmVtb3ZlUHVibGljT3BlbkFjdGl2aXR5U3VjY2Vzc0FjdGlvbiwgKHN0YXRlOiBQdWJsaWNTdGF0ZSwge3BheWxvYWR9OiB7cGF5bG9hZDogc3RyaW5nfSkgPT4ge1xuICAgIGxldCBjdXJyZW50U3RhdGUgPSB7XG4gICAgICAuLi5zdGF0ZVxuICAgIH07XG5cbiAgICBpZiAoc3RhdGUucHVibGljT3BlbkFjdGl2aXR5Py5yZXN1bHQ/LmlkID09PSBwYXlsb2FkKSB7XG4gICAgICBjdXJyZW50U3RhdGUucHVibGljT3BlbkFjdGl2aXR5ID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGlmIChjdXJyZW50U3RhdGUucHVibGljT3BlbkFjdGl2aXRpZXM/LnZhbHVlPy5yZXN1bHRzKSB7XG4gICAgICBjdXJyZW50U3RhdGUucHVibGljT3BlbkFjdGl2aXRpZXMgPSB7XG4gICAgICAgIC4uLmN1cnJlbnRTdGF0ZS5wdWJsaWNPcGVuQWN0aXZpdGllcyxcbiAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICBsYXN0TG9hZGVkOiBjdXJyZW50U3RhdGUucHVibGljT3BlbkFjdGl2aXRpZXMudmFsdWUubGFzdExvYWRlZCxcbiAgICAgICAgICBsb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgICBlcnJvcjogbnVsbCxcbiAgICAgICAgICByZXN1bHRzOiBbLi4uY3VycmVudFN0YXRlLnB1YmxpY09wZW5BY3Rpdml0aWVzLnZhbHVlLnJlc3VsdHNdLm1hcCgob3BlbkFjdGl2aXR5OiBPcGVuQWN0aXZpdHkpID0+IHtcbiAgICAgICAgICAgIGlmIChvcGVuQWN0aXZpdHkuaWQgPT09IHBheWxvYWQpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG5ldyBPcGVuQWN0aXZpdHkoXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LmlkLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5hY3Rpdml0eV9ncm91cF9pZCxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkuYWN0aXZpdHlfdHlwZV9pZCxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkuY2x1Yl9pZCxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkubG9jYXRpb25faWQsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lm1lbWJlcl9pZCxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkudGVhbV9pZCxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkuYWN0aXZpdHlfbG9jYXRpb24sXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LmFjdGl2aXR5X3R5cGVfbmFtZSxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkuYWxsb3dfbWF5YmUsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LmNhbGVuZGFyX25hbWUsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LmNyZWF0ZWQsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LmN1cnJlbnRfbnVtX2F0dGVuZGFudHMsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LmRheSxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkuZGVmYXVsdF9mZWUsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5lbmQsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LmVuZF90aW1lLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5maWxlLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5pbnZpdGF0aW9uX3RleHQsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lmludml0ZV9maXJzdF9kYXlzLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5pbnZpdGVfZ3JvdXBzLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5pbnZpdGVfaGlkZV9iZWZvcmVfc2VudCxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkuaW52aXRlX2xhc3RfcmVzcG9uc2VfZGF0ZSxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkuaW52aXRlX3JlbWluZCxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkuaW52aXRlX3JlbWluZF9yZWNlaXZlcnMsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lmludml0ZV9zZWNvbmRfZGF5cyxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkuaW52aXRlX3NldHRpbmdzLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5pbnZpdGVkX21lbWJlcnMuZmlsdGVyKChpbnZpdGU6IE1lbWJlckFjdGl2aXR5SW52aXRlKSA9PiBpbnZpdGUubWVtYmVyX2lkICE9PSBvcGVuQWN0aXZpdHkubWVtYmVyX2lkKSxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkubGFzdF9yZXNwb25zZV9kYXRlLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5sb2NhdGlvbl9uYW1lLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5tYXhfbnVtX2F0dGVuZGFudHMsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lm1heF9udW1fYXR0ZW5kYW50c190eXBlLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5tZWV0X3VwX3BsYWNlLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5tZWV0X3VwX3RpbWUsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lm1lZXRfdXBfdGltZV9kaXNwbGF5LFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5tZWV0X3VwX3RpbWVfc2hvdyxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkubWVtYmVyX2ludm9pY2UsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lm1lbWJlcl9uYW1lLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5vcGVuX2FjdGl2aXR5LFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5vcHRpb25hbF9mZWVzLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5vcHRpb25hbF9mZWVfcmVxdWlyZWQsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lm9wdGlvbmFsX2ZlZV90eXBlLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5yZXBlYXQsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LnJlcGVhdF9udW0sXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LnJlcGVhdF90b19kYXksXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LnJlcGVhdF90eXBlLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5zaG93X290aGVyX2ludml0ZWQsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LnN0YXJ0LFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5zdGFydF90aW1lLFxuICAgICAgICAgICAgICAgICd3YWl0aW5nJyxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkudGl0bGUsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LnVwZGF0ZWQsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LnVzZV9pbnZpdGUsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LnVwZGF0ZV9yZXBlYXRpbmdcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBvcGVuQWN0aXZpdHk7XG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBjdXJyZW50U3RhdGU7XG4gIH0pLFxuICBvbih1cGRhdGVQdWJsaWNPcGVuQWN0aXZpdHlTdWNjZXNzQWN0aW9uLCAoc3RhdGU6IFB1YmxpY1N0YXRlLCB7cGF5bG9hZH06IHtwYXlsb2FkOiBPcGVuQWN0aXZpdHl9KSA9PiB7XG4gICAgbGV0IGN1cnJlbnRTdGF0ZSA9IHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgcHVibGljT3BlbkFjdGl2aXR5OiByZXRyaWV2ZUxvYWRTdWNjZXNzKHBheWxvYWQpXG4gICAgfTtcblxuICAgIGlmIChjdXJyZW50U3RhdGUucHVibGljT3BlbkFjdGl2aXRpZXM/LnZhbHVlLnJlc3VsdHMpIHtcbiAgICAgIGN1cnJlbnRTdGF0ZS5wdWJsaWNPcGVuQWN0aXZpdGllcy52YWx1ZS5yZXN1bHRzID0gY3VycmVudFN0YXRlLnB1YmxpY09wZW5BY3Rpdml0aWVzLnZhbHVlLnJlc3VsdHMubWFwKG9wZW5BY3Rpdml0eSA9PiB7XG4gICAgICAgIGlmIChvcGVuQWN0aXZpdHkuaWQgPT09IHBheWxvYWQuaWQgJiYgb3BlbkFjdGl2aXR5Lm1lbWJlcl9pZCA9PT0gcGF5bG9hZC5tZW1iZXJfaWQpIHtcbiAgICAgICAgICByZXR1cm4gcGF5bG9hZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb3BlbkFjdGl2aXR5O1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGN1cnJlbnRTdGF0ZTtcbiAgfSksXG4pO1xuIl19
|
|
109
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLnJlZHVjZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhLWFjY2Vzcy9zcmMvbGliL3N0b3JlL3JlZHVjZXJzL3B1YmxpYy5yZWR1Y2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsRUFBRSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2hELE9BQU8sRUFDTCw2QkFBNkIsRUFDN0IsZ0JBQWdCLEVBQ2hCLDhCQUE4QixFQUM5QixxQ0FBcUMsRUFDckMscUNBQXFDLEVBQ3JDLHdDQUF3QyxFQUN4QywrQ0FBK0MsRUFDL0MsK0NBQStDLEVBQy9DLG9DQUFvQyxFQUNwQywyQ0FBMkMsRUFDM0MsMkNBQTJDLEVBQzNDLHVCQUF1QixFQUN2Qiw4QkFBOEIsRUFDOUIsOEJBQThCLEVBQzlCLDhCQUE4QixFQUM5QixxQ0FBcUMsRUFDckMscUNBQXFDLEVBQ3JDLHFDQUFxQyxFQUNyQyw0Q0FBNEMsRUFDNUMsaUNBQWlDLEVBQ2pDLHdDQUF3QyxFQUN4Qyx3Q0FBd0MsRUFDeEMscUNBQXFDLEVBQ3JDLGtDQUFrQyxFQUNsQyx5Q0FBeUMsRUFDekMseUNBQXlDLEVBQ3pDLDJCQUEyQixFQUMzQixrQ0FBa0MsRUFDbEMsK0JBQStCLEVBQy9CLHNDQUFzQyxFQUN0QyxzQ0FBc0MsRUFDdEMsa0NBQWtDLEVBQ2xDLDhCQUE4QixFQUM5QixtQ0FBbUMsRUFDbkMsMENBQTBDLEVBQzFDLDBDQUEwQyxFQUMxQyxxQ0FBcUMsRUFDckMsMkNBQTJDLEVBQzNDLHNDQUFzQyxFQUN0Qyw2Q0FBNkMsRUFBRSw2Q0FBNkMsRUFDNUYscUNBQXFDLEVBQ3JDLHFDQUFxQyxFQUNyQyw0Q0FBNEMsRUFDNUMsNENBQTRDLEVBQzVDLGdDQUFnQyxFQUNoQyx1Q0FBdUMsRUFDdkMsdUNBQXVDLEVBQ3ZDLHVDQUF1QyxFQUN2QyxxQ0FBcUMsRUFDdEMsTUFBTSxZQUFZLENB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b20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7XG4gIGNsZWFyUHVibGljT3BlbkFjdGl2aXR5QWN0aW9uLFxuICBjbGVhclN0b3JlQWN0aW9uLFxuICBnZXRDdXJyZW50UHVibGljQ2x1YkluZm9BY3Rpb24sXG4gIGdldEN1cnJlbnRQdWJsaWNDbHViSW5mb0ZhaWx1cmVBY3Rpb24sXG4gIGdldEN1cnJlbnRQdWJsaWNDbHViSW5mb1N1Y2Nlc3NBY3Rpb24sXG4gIGxpc3RBbGxQdWJsaWNPcGVuQWN0aXZpdHlMb2NhdGlvbnNBY3Rpb24sXG4gIGxpc3RBbGxQdWJsaWNPcGVuQWN0aXZpdHlMb2NhdGlvbnNGYWlsdXJlQWN0aW9uLFxuICBsaXN0QWxsUHVibGljT3BlbkFjdGl2aXR5TG9jYXRpb25zU3VjY2Vzc0FjdGlvbixcbiAgbGlzdEFsbFB1YmxpY09wZW5BY3Rpdml0eVR5cGVzQWN0aW9uLFxuICBsaXN0QWxsUHVibGljT3BlbkFjdGl2aXR5VHlwZXNGYWlsdXJlQWN0aW9uLFxuICBsaXN0QWxsUHVibGljT3BlbkFjdGl2aXR5VHlwZXNTdWNjZXNzQWN0aW9uLFxuICBsaXN0UHVibGljTWVtYmVyc0FjdGlvbixcbiAgbGlzdFB1YmxpY01lbWJlcnNGYWlsdXJlQWN0aW9uLFxuICBsaXN0UHVibGljTWVtYmVyc1N1Y2Nlc3NBY3Rpb24sXG4gIGxpc3RQdWJsaWNPcGVuQWN0aXZpdGllc0FjdGlvbixcbiAgbGlzdFB1YmxpY09wZW5BY3Rpdml0aWVzRmFpbHVyZUFjdGlvbixcbiAgbGlzdFB1YmxpY09wZW5BY3Rpdml0aWVzU3VjY2Vzc0FjdGlvbixcbiAgbGlzdFB1YmxpY09wZW5BY3Rpdml0eUxvY2F0aW9uc0FjdGlvbixcbiAgbGlzdFB1YmxpY09wZW5BY3Rpdml0eUxvY2F0aW9uc1N1Y2Nlc3NBY3Rpb24sXG4gIGxpc3RQdWJsaWNPcGVuQWN0aXZpdHlUeXBlc0FjdGlvbixcbiAgbGlzdFB1YmxpY09wZW5BY3Rpdml0eVR5cGVzRmFpbHVyZUFjdGlvbixcbiAgbGlzdFB1YmxpY09wZW5BY3Rpdml0eVR5cGVzU3VjY2Vzc0FjdGlvbixcbiAgcmVtb3ZlUHVibGljT3BlbkFjdGl2aXR5U3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVQdWJsaWNBY3Rpdml0eUludml0ZUFjdGlvbixcbiAgcmV0cmlldmVQdWJsaWNBY3Rpdml0eUludml0ZUZhaWx1cmVBY3Rpb24sXG4gIHJldHJpZXZlUHVibGljQWN0aXZpdHlJbnZpdGVTdWNjZXNzQWN0aW9uLFxuICByZXRyaWV2ZVB1YmxpY0ludm9pY2VBY3Rpb24sXG4gIHJldHJpZXZlUHVibGljSW52b2ljZUZhaWx1cmVBY3Rpb24sXG4gIHJldHJpZXZlUHVibGljSW52b2ljZUxvZ29BY3Rpb24sXG4gIHJldHJpZXZlUHVibGljSW52b2ljZUxvZ29GYWlsdXJlQWN0aW9uLFxuICByZXRyaWV2ZVB1YmxpY0ludm9pY2VMb2dvU3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVQdWJsaWNJbnZvaWNlU3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVQdWJsaWNNZW1iZXJDYXJkQWN0aW9uLFxuICByZXRyaWV2ZVB1YmxpY01lbWJlckNhcmREZWFsc0FjdGlvbixcbiAgcmV0cmlldmVQdWJsaWNNZW1iZXJDYXJkRGVhbHNGYWlsdXJlQWN0aW9uLFxuICByZXRyaWV2ZVB1YmxpY01lbWJlckNhcmREZWFsc1N1Y2Nlc3NBY3Rpb24sXG4gIHJldHJpZXZlUHVibGljTWVtYmVyQ2FyZEZhaWx1cmVBY3Rpb24sXG4gIHJldHJpZXZlUHVibGljTWVtYmVyQ2FyZFFSQ29kZVN1Y2Nlc3NBY3Rpb24sXG4gIHJldHJpZXZlUHVibGljTWVtYmVyQ2FyZFJlZ2lzdGVyQWN0aW9uLFxuICByZXRyaWV2ZVB1YmxpY01lbWJlckNhcmRSZWdpc3RlckZhaWx1cmVBY3Rpb24sIHJldHJpZXZlUHVibGljTWVtYmVyQ2FyZFJlZ2lzdGVyU3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVQdWJsaWNNZW1iZXJDYXJkU3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVQdWJsaWNNZW1iZXJDYXJkVGlja2V0c0FjdGlvbixcbiAgcmV0cmlldmVQdWJsaWNNZW1iZXJDYXJkVGlja2V0c0ZhaWx1cmVBY3Rpb24sXG4gIHJldHJpZXZlUHVibGljTWVtYmVyQ2FyZFRpY2tldHNTdWNjZXNzQWN0aW9uLFxuICByZXRyaWV2ZVB1YmxpY09wZW5BY3Rpdml0eUFjdGlvbixcbiAgcmV0cmlldmVQdWJsaWNPcGVuQWN0aXZpdHlGYWlsdXJlQWN0aW9uLFxuICByZXRyaWV2ZVB1YmxpY09wZW5BY3Rpdml0eVN1Y2Nlc3NBY3Rpb24sXG4gIHVwZGF0ZVB1YmxpY0FjdGl2aXR5SW52aXRlU3VjY2Vzc0FjdGlvbixcbiAgdXBkYXRlUHVibGljT3BlbkFjdGl2aXR5U3VjY2Vzc0FjdGlvblxufSBmcm9tICcuLi9hY3Rpb25zJztcbmltcG9ydCB7XG4gIEFjdGl2aXR5SW52aXRlLFxuICBBY3Rpdml0eUxvY2F0aW9uLFxuICBBY3Rpdml0eVR5cGUsXG4gIENsdWJJbWFnZSxcbiAgTWVtYmVyQWN0aXZpdHlJbnZpdGUsXG4gIE1lbWJlckNhcmQsXG4gIE1lbWJlckludm9pY2UsXG4gIE9wZW5BY3Rpdml0eSxcbiAgU2VhcmNoQ2x1YixcbiAgU2VhcmNoTWVtYmVyXG59IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBpbml0aWFsUHVibGljU3RhdGUsIFB1YmxpY1N0YXRlIH0gZnJvbSAnLi4vc3RhdGUnO1xuaW1wb3J0IHtcbiAgbGlzdExvYWRGYWlsdXJlLFxuICBsaXN0TG9hZFN1Y2Nlc3MsXG4gIGxpc3RTdGFydExvYWRpbmcsXG4gIHJldHJpZXZlTG9hZEZhaWx1cmUsXG4gIHJldHJpZXZlTG9hZFN1Y2Nlc3MsXG4gIHJldHJpZXZlU3RhcnRMb2FkaW5nXG59IGZyb20gJy4vcmVkdWNlci1oZWxwZXJzJztcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtcbiAgQ2FsZW5kYXJBY3Rpdml0eUxvY2F0aW9uc0ludGVyZmFjZSxcbiAgQ2FsZW5kYXJBY3Rpdml0eVR5cGVzSW50ZXJmYWNlLFxuICBNZW1iZXJDYXJkRGVhbHNJbnRlcmZhY2UsXG4gIE1lbWJlckNhcmRUaWNrZXRzSW50ZXJmYWNlXG59IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgT3BlbkFjdGl2aXR5U2VhcmNoUGFyYW1zSW50ZXJmYWNlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCBjb25zdCBwdWJsaWNSZWR1Y2VyID0gY3JlYXRlUmVkdWNlcihcbiAgaW5pdGlhbFB1YmxpY1N0YXRlLFxuICBvbihjbGVhclN0b3JlQWN0aW9uLCAoKSA9PiBpbml0aWFsUHVibGljU3RhdGUpLFxuICBvbihjbGVhclB1YmxpY09wZW5BY3Rpdml0eUFjdGlvbiwgKHN0YXRlOiBQdWJsaWNTdGF0ZSkgPT4gKHsuLi5zdGF0ZSwgcHVibGljT3BlbkFjdGl2aXR5OiB1bmRlZmluZWR9KSksXG4gIG9uKGdldEN1cnJlbnRQdWJsaWNDbHViSW5mb0FjdGlvbiwgKHN0YXRlOiBQdWJsaWNTdGF0ZSkgPT4gKHsuLi5zdGF0ZSwgcHVibGljQ2x1YkluZm86IHJldHJpZXZlU3RhcnRMb2FkaW5nKHN0YXRlLnB1YmxpY0NsdWJJbmZvKX0pKSxcbiAgb24oZ2V0Q3VycmVudFB1YmxpY0NsdWJJbmZvRmFpbHVyZUFjdGlvbiwgKHN0YXRlOiBQdWJsaWNTdGF0ZSwge3BheWxvYWR9OiB7cGF5bG9hZDogSHR0cEVycm9yUmVzcG9uc2V9KSA9PiAgKHsuLi5zdGF0ZSwgcHVibGljQ2x1YkluZm86IHJldHJpZXZlTG9hZEZhaWx1cmU8U2VhcmNoQ2x1Yj4ocGF5bG9hZCl9KSksXG4gIG9uKGdldEN1cnJlbnRQdWJsaWNDbHViSW5mb1N1Y2Nlc3NBY3Rpb24sIChzdGF0ZTogUHVibGljU3RhdGUsIHtwYXlsb2FkfToge3BheWxvYWQ6IFNlYXJjaENsdWJ9KSA9PiAoey4uLnN0YXRlLCBwdWJsaWNDbHViSW5mbzogcmV0cmlldmVMb2FkU3VjY2VzcyhwYXlsb2FkKX0pKSxcbiAgb24obGlzdEFsbFB1YmxpY09wZW5BY3Rpdml0eUxvY2F0aW9uc0FjdGlvbiwgKHN0YXRlOiBQdWJsaWNTdGF0ZSkgPT4gKHsuLi5zdGF0ZSwgcHVibGljQWxsT3BlbkFjdGl2aXR5TG9jYXRpb25zOiBsaXN0U3RhcnRMb2FkaW5nKHN0YXRlLnB1YmxpY0FsbE9wZW5BY3Rpdml0eUxvY2F0aW9ucyl9KSksXG4gIG9uKGxpc3RBbGxQdWJsaWNPcGVuQWN0aXZpdHlMb2NhdGlvbnNGYWlsdXJlQWN0aW9uLCAoc3RhdGU6IFB1YmxpY1N0YXRlLCB7cGF5bG9hZH06IHtwYXlsb2FkOiBIdHRwRXJyb3JSZXNwb25zZX0pID0+ICh7Li4uc3RhdGUsIHB1YmxpY0FsbE9wZW5BY3Rpdml0eUxvY2F0aW9uczogbGlzdExvYWRGYWlsdXJlPEFjdGl2aXR5TG9jYXRpb24+KHBheWxvYWQpfSkpLFxuICBvbihsaXN0QWxsUHVibGljT3BlbkFjdGl2aXR5TG9jYXRpb25zU3VjY2Vzc0FjdGlvbiwgKHN0YXRlOiBQdWJsaWNTdGF0ZSwge3BheWxvYWR9OiB7cGF5bG9hZDogQXJyYXk8QWN0aXZpdHlMb2NhdGlvbj59KSA9PiAoey4uLnN0YXRlLCBwdWJsaWNBbGxPcGVuQWN0aXZpdHlMb2NhdGlvbnM6IGxpc3RMb2FkU3VjY2VzcyhwYXlsb2FkKX0pKSxcbiAgb24obGlzdEFsbFB1YmxpY09wZW5BY3Rpdml0eVR5cGVzQWN0aW9uLCAoc3RhdGU6IFB1YmxpY1N0YXRlKSA9PiAoey4uLnN0YXRlLCBwdWJsaWNBbGxPcGVuQWN0aXZpdHlUeXBlczogbGlzdFN0YXJ0TG9hZGluZyhzdGF0ZS5wdWJsaWNBbGxPcGVuQWN0aXZpdHlUeXBlcyl9KSksXG4gIG9uKGxpc3RBbGxQdWJsaWNPcGVuQWN0aXZpdHlUeXBlc0ZhaWx1cmVBY3Rpb24sIChzdGF0ZTogUHVibGljU3RhdGUsIHtwYXlsb2FkfToge3BheWxvYWQ6IEh0dHBFcnJvclJlc3BvbnNlfSkgPT4gKHsuLi5zdGF0ZSwgcHVibGljQWxsT3BlbkFjdGl2aXR5VHlwZXM6IGxpc3RMb2FkRmFpbHVyZTxBY3Rpdml0eVR5cGU+KHBheWxvYWQpfSkpLFxuICBvbihsaXN0QWxsUHVibGljT3BlbkFjdGl2aXR5VHlwZXNTdWNjZXNzQWN0aW9uLCAoc3RhdGU6IFB1YmxpY1N0YXRlLCB7cGF5bG9hZH06IHtwYXlsb2FkOiBBcnJheTxBY3Rpdml0eVR5cGU+fSkgPT4gKHsuLi5zdGF0ZSwgcHVibGljQWxsT3BlbkFjdGl2aXR5VHlwZXM6IGxpc3RMb2FkU3VjY2VzcyhwYXlsb2FkKX0pKSxcbiAgb24obGlzdFB1YmxpY01lbWJlcnNBY3Rpb24sIChzdGF0ZTogUHVibGljU3RhdGUpID0+ICh7Li4uc3RhdGUsIG1lbWJlcnM6IGxpc3RTdGFydExvYWRpbmcoc3RhdGUubWVtYmVycyl9KSksXG4gIG9uKGxpc3RQdWJsaWNNZW1iZXJzRmFpbHVyZUFjdGlvbiwgKHN0YXRlOiBQdWJsaWNTdGF0ZSwge3BheWxvYWR9OiB7cGF5bG9hZDogSHR0cEVycm9yUmVzcG9uc2V9KSA9PiAoey4uLnN0YXRlLCBtZW1iZXJzOiBsaXN0TG9hZEZhaWx1cmU8U2VhcmNoTWVtYmVyPihwYXlsb2FkKX0pKSxcbiAgb24obGlzdFB1YmxpY01lbWJlcnNTdWNjZXNzQWN0aW9uLCAoc3RhdGU6IFB1YmxpY1N0YXRlLCB7cGF5bG9hZH06IHtwYXlsb2FkOiBBcnJheTxTZWFyY2hNZW1iZXI+fSkgPT4gKHsuLi5zdGF0ZSwgbWVtYmVyczogbGlzdExvYWRTdWNjZXNzKHBheWxvYWQpfSkpLFxuICBvbihsaXN0UHVibGljT3BlbkFjdGl2aXRpZXNBY3Rpb24sIChzdGF0ZTogUHVibGljU3RhdGUsIHtwYXlsb2FkfToge3BheWxvYWQ6IE9wZW5BY3Rpdml0eVNlYXJjaFBhcmFtc0ludGVyZmFjZX0pID0+XG4gICAgKHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgcHVibGljT3BlbkFjdGl2aXRpZXM6IHtcbiAgICAgICAgc2VhcmNoUGFyYW1zOiBwYXlsb2FkLFxuICAgICAgICB2YWx1ZTogbGlzdFN0YXJ0TG9hZGluZyhzdGF0ZS5wdWJsaWNPcGVuQWN0aXZpdGllcz8udmFsdWUpXG4gICAgICB9XG4gICAgfSlcbiAgKSxcbiAgb24obGlzdFB1YmxpY09wZW5BY3Rpdml0aWVzRmFpbHVyZUFjdGlvbiwgKHN0YXRlOiBQdWJsaWNTdGF0ZSwge3BheWxvYWR9OiB7cGF5bG9hZDogSHR0cEVycm9yUmVzcG9uc2V9KSA9PlxuICAgICh7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIHB1YmxpY09wZW5BY3Rpdml0aWVzOiB7XG4gICAgICAgIHNlYXJjaFBhcmFtczogc3RhdGUucHVibGljT3BlbkFjdGl2aXRpZXM/LnNlYXJjaFBhcmFtcyBhcyBPcGVuQWN0aXZpdHlTZWFyY2hQYXJhbXNJbnRlcmZhY2UsXG4gICAgICAgIHZhbHVlOiBsaXN0TG9hZEZhaWx1cmU8T3BlbkFjdGl2aXR5PihwYXlsb2FkKVxuICAgICAgfVxuICAgIH0pXG4gICksXG4gIG9uKGxpc3RQdWJsaWNPcGVuQWN0aXZpdGllc1N1Y2Nlc3NBY3Rpb24sIChzdGF0ZTogUHVibGljU3RhdGUsIHtwYXlsb2FkfToge3BheWxvYWQ6IHtvcGVuQWN0aXZpdHlTZWFyY2hQYXJhbXM6IE9wZW5BY3Rpdml0eVNlYXJjaFBhcmFtc0ludGVyZmFjZSwgcmVzdWx0czogQXJyYXk8T3BlbkFjdGl2aXR5Pn19KSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIHB1YmxpY09wZW5BY3Rpdml0aWVzOiB7XG4gICAgICBzZWFyY2hQYXJhbXM6IHBheWxvYWQub3BlbkFjdGl2aXR5U2VhcmNoUGFyYW1zLFxuICAgICAgdmFsdWU6IGxpc3RMb2FkU3VjY2VzcyhwYXlsb2FkLnJlc3VsdHMpXG4gICAgfVxuICB9KSksXG4gIG9uKGxpc3RQdWJsaWNPcGVuQWN0aXZpdHlMb2NhdGlvbnNBY3Rpb24sIChzdGF0ZTogUHVibGljU3RhdGUsIHtwYXlsb2FkfToge3BheWxvYWQ6IHtzdGFydERhdGU6IHN0cmluZywgZW5kRGF0ZTogc3RyaW5nfX0pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgcHVibGljT3BlbkFjdGl2aXR5TG9jYXRpb25zOiB7XG4gICAgICBzdGFydERhdGU6IHBheWxvYWQuc3RhcnREYXRlLFxuICAgICAgZW5kRGF0ZTogcGF5bG9hZC5lbmREYXRlLFxuICAgICAgdmFsdWU6IGxpc3RTdGFydExvYWRpbmcoc3RhdGUucHVibGljT3BlbkFjdGl2aXR5TG9jYXRpb25zPy52YWx1ZSlcbiAgICB9XG4gIH0pKSxcbiAgb24obGlzdEFsbFB1YmxpY09wZW5BY3Rpdml0eUxvY2F0aW9uc0ZhaWx1cmVBY3Rpb24sIChzdGF0ZTogUHVibGljU3RhdGUsIHtwYXlsb2FkfToge3BheWxvYWQ6IEh0dHBFcnJvclJlc3BvbnNlfSkgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBwdWJsaWNPcGVuQWN0aXZpdHlMb2NhdGlvbnM6IHtcbiAgICAgIC4uLnN0YXRlLnB1YmxpY09wZW5BY3Rpdml0eUxvY2F0aW9ucyBhcyBDYWxlbmRhckFjdGl2aXR5TG9jYXRpb25zSW50ZXJmYWNlLFxuICAgICAgdmFsdWU6IGxpc3RMb2FkRmFpbHVyZTxBY3Rpdml0eUxvY2F0aW9uPihwYXlsb2FkKVxuICAgIH1cbiAgfSkpLFxuICBvbihsaXN0UHVibGljT3BlbkFjdGl2aXR5TG9jYXRpb25zU3VjY2Vzc0FjdGlvbiwgKHN0YXRlOiBQdWJsaWNTdGF0ZSwge3BheWxvYWR9OiB7cGF5bG9hZDoge3N0YXJ0RGF0ZTogc3RyaW5nLCBlbmREYXRlOiBzdHJpbmcsIGxvY2F0aW9uczogQXJyYXk8QWN0aXZpdHlMb2NhdGlvbj59fSkgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBwdWJsaWNPcGVuQWN0aXZpdHlMb2NhdGlvbnM6IHtcbiAgICAgIHN0YXJ0RGF0ZTogcGF5bG9hZC5zdGFydERhdGUsXG4gICAgICBlbmREYXRlOiBwYXlsb2FkLmVuZERhdGUsXG4gICAgICB2YWx1ZTogbGlzdExvYWRTdWNjZXNzKHBheWxvYWQubG9jYXRpb25zKVxuICAgIH1cbiAgfSkpLFxuICBvbihsaXN0UHVibGljT3BlbkFjdGl2aXR5VHlwZXNBY3Rpb24sIChzdGF0ZTogUHVibGljU3RhdGUsIHtwYXlsb2FkfToge3BheWxvYWQ6IHtzdGFydERhdGU6IHN0cmluZywgZW5kRGF0ZTogc3RyaW5nfX0pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgcHVibGljT3BlbkFjdGl2aXR5VHlwZXM6IHtcbiAgICAgIHN0YXJ0RGF0ZTogcGF5bG9hZC5zdGFydERhdGUsXG4gICAgICBlbmREYXRlOiBwYXlsb2FkLmVuZERhdGUsXG4gICAgICB2YWx1ZTogbGlzdFN0YXJ0TG9hZGluZyhzdGF0ZS5wdWJsaWNPcGVuQWN0aXZpdHlUeXBlcz8udmFsdWUpXG4gICAgfVxuICB9KSksXG4gIG9uKGxpc3RQdWJsaWNPcGVuQWN0aXZpdHlUeXBlc0ZhaWx1cmVBY3Rpb24sIChzdGF0ZTogUHVibGljU3RhdGUsIHtwYXlsb2FkfToge3BheWxvYWQ6IEh0dHBFcnJvclJlc3BvbnNlfSkgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBwdWJsaWNPcGVuQWN0aXZpdHlUeXBlczoge1xuICAgICAgLi4uc3RhdGUucHVibGljT3BlbkFjdGl2aXR5VHlwZXMgYXMgQ2FsZW5kYXJBY3Rpdml0eVR5cGVzSW50ZXJmYWNlLFxuICAgICAgdmFsdWU6IGxpc3RMb2FkRmFpbHVyZTxBY3Rpdml0eVR5cGU+KHBheWxvYWQpXG4gICAgfVxuICB9KSksXG4gIG9uKGxpc3RQdWJsaWNPcGVuQWN0aXZpdHlUeXBlc1N1Y2Nlc3NBY3Rpb24sIChzdGF0ZTogUHVibGljU3RhdGUsIHtwYXlsb2FkfToge3BheWxvYWQ6IHtzdGFydERhdGU6IHN0cmluZywgZW5kRGF0ZTogc3RyaW5nLCB0eXBlczogQXJyYXk8QWN0aXZpdHlUeXBlPiB9IH0pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgcHVibGljT3BlbkFjdGl2aXR5VHlwZXM6IHtcbiAgICAgIHN0YXJ0RGF0ZTogcGF5bG9hZC5zdGFydERhdGUsXG4gICAgICBlbmREYXRlOiBwYXlsb2FkLmVuZERhdGUsXG4gICAgICB2YWx1ZTogbGlzdExvYWRTdWNjZXNzKHBheWxvYWQudHlwZXMpXG4gICAgfVxuICB9KSksXG4gIG9uKHJldHJpZXZlUHVibGljQWN0aXZpdHlJbnZpdGVBY3Rpb24sIChzdGF0ZTogUHVibGljU3RhdGUpID0+ICh7Li4uc3RhdGUsIHB1YmxpY0FjdGl2aXR5SW52aXRlOiByZXRyaWV2ZVN0YXJ0TG9hZGluZyhzdGF0ZS5hY3Rpdml0eUludml0YXRpb24pfSkpLFxuICBvbihyZXRyaWV2ZVB1YmxpY0FjdGl2aXR5SW52aXRlRmFpbHVyZUFjdGlvbiwgKHN0YXRlOiBQdWJsaWNTdGF0ZSwge3BheWxvYWR9OiB7cGF5bG9hZDogSHR0cEVycm9yUmVzcG9uc2V9KSA9PiAoey4uLnN0YXRlLCBhY3Rpdml0eUludml0YXRpb246IHJldHJpZXZlTG9hZEZhaWx1cmU8QWN0aXZpdHlJbnZpdGU+KHBheWxvYWQpfSkpLFxuICBvbihyZXRyaWV2ZVB1YmxpY0FjdGl2aXR5SW52aXRlU3VjY2Vzc0FjdGlvbiwgdXBkYXRlUHVibGljQWN0aXZpdHlJbnZpdGVTdWNjZXNzQWN0aW9uLCAoc3RhdGU6IFB1YmxpY1N0YXRlLCB7cGF5bG9hZH06IHtwYXlsb2FkOiBBY3Rpdml0eUludml0ZX0pID0+ICh7Li4uc3RhdGUsIGFjdGl2aXR5SW52aXRhdGlvbjogcmV0cmlldmVMb2FkU3VjY2VzcyhwYXlsb2FkKX0pKSxcbiAgb24ocmV0cmlldmVQdWJsaWNJbnZvaWNlQWN0aW9uLCAoc3RhdGU6IFB1YmxpY1N0YXRlKSA9PiAoey4uLnN0YXRlLCBpbnZvaWNlOiByZXRyaWV2ZVN0YXJ0TG9hZGluZyhzdGF0ZS5pbnZvaWNlKX0pKSxcbiAgb24ocmV0cmlldmVQdWJsaWNJbnZvaWNlRmFpbHVyZUFjdGlvbiwgKHN0YXRlOiBQdWJsaWNTdGF0ZSwge3BheWxvYWR9OiB7cGF5bG9hZDogSHR0cEVycm9yUmVzcG9uc2V9KSA9PiAoey4uLnN0YXRlLCBpbnZvaWNlOiByZXRyaWV2ZUxvYWRGYWlsdXJlPE1lbWJlckludm9pY2U+KHBheWxvYWQpfSkpLFxuICBvbihyZXRyaWV2ZVB1YmxpY0ludm9pY2VTdWNjZXNzQWN0aW9uLCAoc3RhdGU6IFB1YmxpY1N0YXRlLCB7cGF5bG9hZH06IHtwYXlsb2FkOiBNZW1iZXJJbnZvaWNlfSkgPT4gKHsuLi5zdGF0ZSwgaW52b2ljZTogcmV0cmlldmVMb2FkU3VjY2VzcyhwYXlsb2FkKX0pKSxcbiAgb24ocmV0cmlldmVQdWJsaWNJbnZvaWNlTG9nb0FjdGlvbiwgKHN0YXRlOiBQdWJsaWNTdGF0ZSkgPT4gKHsuLi5zdGF0ZSwgaW52b2ljZUxvZ286IHJldHJpZXZlU3RhcnRMb2FkaW5nKHN0YXRlLmludm9pY2VMb2dvKX0pKSxcbiAgb24ocmV0cmlldmVQdWJsaWNJbnZvaWNlTG9nb0ZhaWx1cmVBY3Rpb24sIChzdGF0ZTogUHVibGljU3RhdGUsIHtwYXlsb2FkfToge3BheWxvYWQ6IEh0dHBFcnJvclJlc3BvbnNlfSkgPT4gKHsuLi5zdGF0ZSwgaW52b2ljZUxvZ286IHJldHJpZXZlTG9hZEZhaWx1cmU8Q2x1YkltYWdlPihwYXlsb2FkKX0pKSxcbiAgb24ocmV0cmlldmVQdWJsaWNJbnZvaWNlTG9nb1N1Y2Nlc3NBY3Rpb24sIChzdGF0ZTogUHVibGljU3RhdGUsIHtwYXlsb2FkfToge3BheWxvYWQ6IENsdWJJbWFnZX0pID0+ICh7Li4uc3RhdGUsIGludm9pY2VMb2dvOiByZXRyaWV2ZUxvYWRTdWNjZXNzKHBheWxvYWQpfSkpLFxuICBvbihyZXRyaWV2ZVB1YmxpY01lbWJlckNhcmRBY3Rpb24sIHJldHJpZXZlUHVibGljTWVtYmVyQ2FyZFJlZ2lzdGVyQWN0aW9uLCAoc3RhdGU6IFB1YmxpY1N0YXRlKSA9PiAoey4uLnN0YXRlLCBjdXJyZW50TWVtYmVyQ2FyZDogcmV0cmlldmVTdGFydExvYWRpbmcoc3RhdGUuY3VycmVudE1lbWJlckNhcmQpfSkpLFxuICBvbihyZXRyaWV2ZVB1YmxpY01lbWJlckNhcmRGYWlsdXJlQWN0aW9uLCByZXRyaWV2ZVB1YmxpY01lbWJlckNhcmRSZWdpc3RlckZhaWx1cmVBY3Rpb24sIChzdGF0ZTogUHVibGljU3RhdGUsIHtwYXlsb2FkfToge3BheWxvYWQ6IEh0dHBFcnJvclJlc3BvbnNlfSkgPT4gKHsuLi5zdGF0ZSwgY3VycmVudE1lbWJlckNhcmQ6IHJldHJpZXZlTG9hZEZhaWx1cmU8TWVtYmVyQ2FyZD4ocGF5bG9hZCl9KSksXG4gIG9uKHJldHJpZXZlUHVibGljTWVtYmVyQ2FyZFN1Y2Nlc3NBY3Rpb24sIHJldHJpZXZlUHVibGljTWVtYmVyQ2FyZFFSQ29kZVN1Y2Nlc3NBY3Rpb24sIHJldHJpZXZlUHVibGljTWVtYmVyQ2FyZFJlZ2lzdGVyU3VjY2Vzc0FjdGlvbiwgKHN0YXRlOiBQdWJsaWNTdGF0ZSwge3BheWxvYWR9OiB7cGF5bG9hZDogTWVtYmVyQ2FyZH0pID0+ICh7Li4uc3RhdGUsIGN1cnJlbnRNZW1iZXJDYXJkOiByZXRyaWV2ZUxvYWRTdWNjZXNzKHBheWxvYWQpfSkpLFxuICBvbihyZXRyaWV2ZVB1YmxpY01lbWJlckNhcmREZWFsc0FjdGlvbiwgKHN0YXRlOiBQdWJsaWNTdGF0ZSkgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBjYXJkRGVhbHM6IHJldHJpZXZlU3RhcnRMb2FkaW5nPE1lbWJlckNhcmREZWFsc0ludGVyZmFjZT4oc3RhdGUuY2FyZERlYWxzKVxuICB9KSksXG4gIG9uKHJldHJpZXZlUHVibGljTWVtYmVyQ2FyZERlYWxzRmFpbHVyZUFjdGlvbiwgKHN0YXRlOiBQdWJsaWNTdGF0ZSwge3BheWxvYWR9OiB7XG4gICAgcGF5bG9hZDogSHR0cEVycm9yUmVzcG9uc2VcbiAgfSkgPT4gKHsuLi5zdGF0ZSwgY2FyZERlYWxzOiByZXRyaWV2ZUxvYWRGYWlsdXJlPE1lbWJlckNhcmREZWFsc0ludGVyZmFjZT4ocGF5bG9hZCl9KSksXG4gIG9uKHJldHJpZXZlUHVibGljTWVtYmVyQ2FyZERlYWxzU3VjY2Vzc0FjdGlvbiwgKHN0YXRlOiBQdWJsaWNTdGF0ZSwge3BheWxvYWR9OiB7XG4gICAgcGF5bG9hZDogTWVtYmVyQ2FyZERlYWxzSW50ZXJmYWNlXG4gIH0pID0+ICh7Li4uc3RhdGUsIGNhcmREZWFsczogcmV0cmlldmVMb2FkU3VjY2VzcyhwYXlsb2FkKX0pKSxcbiAgb24ocmV0cmlldmVQdWJsaWNNZW1iZXJDYXJkVGlja2V0c0FjdGlvbiwgKHN0YXRlOiBQdWJsaWNTdGF0ZSkgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBjYXJkVGlja2V0czogcmV0cmlldmVTdGFydExvYWRpbmc8TWVtYmVyQ2FyZFRpY2tldHNJbnRlcmZhY2U+KHN0YXRlLmNhcmRUaWNrZXRzKVxuICB9KSksXG4gIG9uKHJldHJpZXZlUHVibGljTWVtYmVyQ2FyZFRpY2tldHNGYWlsdXJlQWN0aW9uLCAoc3RhdGU6IFB1YmxpY1N0YXRlLCB7cGF5bG9hZH06IHtcbiAgICBwYXlsb2FkOiBIdHRwRXJyb3JSZXNwb25zZVxuICB9KSA9PiAoey4uLnN0YXRlLCBjYXJkVGlja2V0czogcmV0cmlldmVMb2FkRmFpbHVyZTxNZW1iZXJDYXJkVGlja2V0c0ludGVyZmFjZT4ocGF5bG9hZCl9KSksXG4gIG9uKHJldHJpZXZlUHVibGljTWVtYmVyQ2FyZFRpY2tldHNTdWNjZXNzQWN0aW9uLCAoc3RhdGU6IFB1YmxpY1N0YXRlLCB7cGF5bG9hZH06IHtcbiAgICBwYXlsb2FkOiBNZW1iZXJDYXJkVGlja2V0c0ludGVyZmFjZVxuICB9KSA9PiAoey4uLnN0YXRlLCBjYXJkVGlja2V0czogcmV0cmlldmVMb2FkU3VjY2VzcyhwYXlsb2FkKX0pKSxcbiAgb24ocmV0cmlldmVQdWJsaWNPcGVuQWN0aXZpdHlBY3Rpb24sIChzdGF0ZTogUHVibGljU3RhdGUpID0+ICh7Li4uc3RhdGUsIHB1YmxpY09wZW5BY3Rpdml0eTogcmV0cmlldmVTdGFydExvYWRpbmcoc3RhdGUucHVibGljT3BlbkFjdGl2aXR5KX0pKSxcbiAgb24ocmV0cmlldmVQdWJsaWNPcGVuQWN0aXZpdHlGYWlsdXJlQWN0aW9uLCAoc3RhdGU6IFB1YmxpY1N0YXRlLCB7cGF5bG9hZH06IHtwYXlsb2FkOiBIdHRwRXJyb3JSZXNwb25zZX0pID0+ICh7Li4uc3RhdGUsIHB1YmxpY09wZW5BY3Rpdml0eTogcmV0cmlldmVMb2FkRmFpbHVyZTxPcGVuQWN0aXZpdHk+KHBheWxvYWQpfSkpLFxuICBvbihyZXRyaWV2ZVB1YmxpY09wZW5BY3Rpdml0eVN1Y2Nlc3NBY3Rpb24sIChzdGF0ZTogUHVibGljU3RhdGUsIHtwYXlsb2FkfToge3BheWxvYWQ6IE9wZW5BY3Rpdml0eX0pID0+ICh7Li4uc3RhdGUsIHB1YmxpY09wZW5BY3Rpdml0eTogcmV0cmlldmVMb2FkU3VjY2VzcyhwYXlsb2FkKX0pKSxcbiAgb24ocmVtb3ZlUHVibGljT3BlbkFjdGl2aXR5U3VjY2Vzc0FjdGlvbiwgKHN0YXRlOiBQdWJsaWNTdGF0ZSwge3BheWxvYWR9OiB7cGF5bG9hZDogc3RyaW5nfSkgPT4ge1xuICAgIGxldCBjdXJyZW50U3RhdGUgPSB7XG4gICAgICAuLi5zdGF0ZVxuICAgIH07XG5cbiAgICBpZiAoc3RhdGUucHVibGljT3BlbkFjdGl2aXR5Py5yZXN1bHQ/LmlkID09PSBwYXlsb2FkKSB7XG4gICAgICBjdXJyZW50U3RhdGUucHVibGljT3BlbkFjdGl2aXR5ID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGlmIChjdXJyZW50U3RhdGUucHVibGljT3BlbkFjdGl2aXRpZXM/LnZhbHVlPy5yZXN1bHRzKSB7XG4gICAgICBjdXJyZW50U3RhdGUucHVibGljT3BlbkFjdGl2aXRpZXMgPSB7XG4gICAgICAgIC4uLmN1cnJlbnRTdGF0ZS5wdWJsaWNPcGVuQWN0aXZpdGllcyxcbiAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICBsYXN0TG9hZGVkOiBjdXJyZW50U3RhdGUucHVibGljT3BlbkFjdGl2aXRpZXMudmFsdWUubGFzdExvYWRlZCxcbiAgICAgICAgICBsb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgICBlcnJvcjogbnVsbCxcbiAgICAgICAgICByZXN1bHRzOiBbLi4uY3VycmVudFN0YXRlLnB1YmxpY09wZW5BY3Rpdml0aWVzLnZhbHVlLnJlc3VsdHNdLm1hcCgob3BlbkFjdGl2aXR5OiBPcGVuQWN0aXZpdHkpID0+IHtcbiAgICAgICAgICAgIGlmIChvcGVuQWN0aXZpdHkuaWQgPT09IHBheWxvYWQpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG5ldyBPcGVuQWN0aXZpdHkoXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LmlkLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5hY3Rpdml0eV9ncm91cF9pZCxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkuYWN0aXZpdHlfdHlwZV9pZCxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkuY2x1Yl9pZCxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkubG9jYXRpb25faWQsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lm1lbWJlcl9pZCxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkudGVhbV9pZCxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkuYWN0aXZpdHlfbG9jYXRpb24sXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LmFjdGl2aXR5X3R5cGVfbmFtZSxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkuYWxsb3dfbWF5YmUsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LmNhbGVuZGFyX25hbWUsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LmNyZWF0ZWQsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LmN1cnJlbnRfbnVtX2F0dGVuZGFudHMsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LmRheSxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkuZGVmYXVsdF9mZWUsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5lbmQsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LmVuZF90aW1lLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5maWxlLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5pbnZpdGF0aW9uX3RleHQsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lmludml0ZV9maXJzdF9kYXlzLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5pbnZpdGVfZ3JvdXBzLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5pbnZpdGVfaGlkZV9iZWZvcmVfc2VudCxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkuaW52aXRlX2xhc3RfcmVzcG9uc2VfZGF0ZSxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkuaW52aXRlX3JlbWluZCxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkuaW52aXRlX3JlbWluZF9yZWNlaXZlcnMsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lmludml0ZV9zZWNvbmRfZGF5cyxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkuaW52aXRlX3NldHRpbmdzLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5pbnZpdGVkX21lbWJlcnMuZmlsdGVyKChpbnZpdGU6IE1lbWJlckFjdGl2aXR5SW52aXRlKSA9PiBpbnZpdGUubWVtYmVyX2lkICE9PSBvcGVuQWN0aXZpdHkubWVtYmVyX2lkKSxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkubGFzdF9yZXNwb25zZV9kYXRlLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5sb2NhdGlvbl9uYW1lLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5tYXhfbnVtX2F0dGVuZGFudHMsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lm1heF9udW1fYXR0ZW5kYW50c190eXBlLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5tZWV0X3VwX3BsYWNlLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5tZWV0X3VwX3RpbWUsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lm1lZXRfdXBfdGltZV9kaXNwbGF5LFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5tZWV0X3VwX3RpbWVfc2hvdyxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkubWVtYmVyX2lkcyxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkubWVtYmVyX2ludm9pY2UsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lm1lbWJlcl9uYW1lLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5vcGVuX2FjdGl2aXR5LFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5vcHRpb25hbF9mZWVzLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5vcHRpb25hbF9mZWVfcmVxdWlyZWQsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5Lm9wdGlvbmFsX2ZlZV90eXBlLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5yZXBlYXQsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LnJlcGVhdF9udW0sXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LnJlcGVhdF90b19kYXksXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LnJlcGVhdF90eXBlLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5zaG93X290aGVyX2ludml0ZWQsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LnN0YXJ0LFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpdml0eS5zdGFydF90aW1lLFxuICAgICAgICAgICAgICAgICd3YWl0aW5nJyxcbiAgICAgICAgICAgICAgICBvcGVuQWN0aXZpdHkudGl0bGUsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LnVwZGF0ZWQsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LnVzZV9pbnZpdGUsXG4gICAgICAgICAgICAgICAgb3BlbkFjdGl2aXR5LnVwZGF0ZV9yZXBlYXRpbmdcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBvcGVuQWN0aXZpdHk7XG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBjdXJyZW50U3RhdGU7XG4gIH0pLFxuICBvbih1cGRhdGVQdWJsaWNPcGVuQWN0aXZpdHlTdWNjZXNzQWN0aW9uLCAoc3RhdGU6IFB1YmxpY1N0YXRlLCB7cGF5bG9hZH06IHtwYXlsb2FkOiBPcGVuQWN0aXZpdHl9KSA9PiB7XG4gICAgbGV0IGN1cnJlbnRTdGF0ZSA9IHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgcHVibGljT3BlbkFjdGl2aXR5OiByZXRyaWV2ZUxvYWRTdWNjZXNzKHBheWxvYWQpXG4gICAgfTtcblxuICAgIGlmIChjdXJyZW50U3RhdGUucHVibGljT3BlbkFjdGl2aXRpZXM/LnZhbHVlLnJlc3VsdHMpIHtcbiAgICAgIGN1cnJlbnRTdGF0ZS5wdWJsaWNPcGVuQWN0aXZpdGllcy52YWx1ZS5yZXN1bHRzID0gY3VycmVudFN0YXRlLnB1YmxpY09wZW5BY3Rpdml0aWVzLnZhbHVlLnJlc3VsdHMubWFwKG9wZW5BY3Rpdml0eSA9PiB7XG4gICAgICAgIGlmIChvcGVuQWN0aXZpdHkuaWQgPT09IHBheWxvYWQuaWQgJiYgb3BlbkFjdGl2aXR5Lm1lbWJlcl9pZCA9PT0gcGF5bG9hZC5tZW1iZXJfaWQpIHtcbiAgICAgICAgICByZXR1cm4gcGF5bG9hZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb3BlbkFjdGl2aXR5O1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGN1cnJlbnRTdGF0ZTtcbiAgfSksXG4pO1xuIl19
|