@cometchat/chat-uikit-angular 4.0.1 → 4.1.0
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/AI/AIAssistBot/AIAssistBot.d.ts +7 -0
- package/AI/AIAssistBot/AIAssistBotDecorator.d.ts +11 -0
- package/AI/AIConversationStarter/AIConversationStarter.d.ts +2 -2
- package/AI/AIConversationStarter/AIConversationStarterDecorator.d.ts +3 -0
- package/AI/AIConversationSummary/AIConversationSummary.d.ts +7 -0
- package/AI/AIConversationSummary/AIConversationSummaryDecorator.d.ts +10 -0
- package/AI/AISmartReplies/AISmartReplies.d.ts +2 -2
- package/AI/AISmartReplies/AISmartRepliesDecorator.d.ts +3 -0
- package/Calls/CometChatCallLogDetails/cometchat-call-log-details/cometchat-call-log-details.component.d.ts +119 -0
- package/Calls/CometChatCallLogDetails/cometchat-call-log-details.module.d.ts +14 -0
- package/Calls/CometChatCallLogHistory/cometchat-call-log-history/cometchat-call-log-history.component.d.ts +111 -0
- package/Calls/CometChatCallLogHistory/cometchat-call-log-history.module.d.ts +10 -0
- package/Calls/CometChatCallLogParticipants/cometchat-call-log-participants/cometchat-call-log-participants.component.d.ts +76 -0
- package/Calls/CometChatCallLogParticipants/cometchat-call-log-participants.module.d.ts +10 -0
- package/Calls/CometChatCallLogRecordings/cometchat-call-log-recordings/cometchat-call-log-recordings.component.d.ts +90 -0
- package/Calls/CometChatCallLogRecordings/cometchat-call-log-recordings.module.d.ts +10 -0
- package/Calls/CometChatCallLogs/cometchat-call-logs/cometchat-call-logs.component.d.ts +133 -0
- package/Calls/CometChatCallLogs/cometchat-call-logs.module.d.ts +12 -0
- package/Calls/CometChatCallLogsWithDetails/cometchat-call-logs-with-details/cometchat-call-logs-with-details.component.d.ts +54 -0
- package/Calls/CometChatCallLogsWithDetails/cometchat-call-logs-with-details.module.d.ts +12 -0
- package/CometChatConversations/cometchat-conversations/cometchat-conversations.component.d.ts +18 -7
- package/CometChatList/cometchat-list.component.d.ts +12 -9
- package/CometChatMessageComposer/cometchat-message-composer/cometchat-message-composer.component.d.ts +65 -29
- package/CometChatMessageComposer/cometchat-message-composer.module.d.ts +3 -3
- package/CometChatMessageHeader/cometchat-message-header/cometchat-message-header.component.d.ts +7 -6
- package/CometChatMessageInformation/cometchat-message-information/cometchat-message-information.component.d.ts +6 -4
- package/CometChatMessageList/cometchat-message-list/cometchat-message-list.component.d.ts +96 -55
- package/CometChatMessageList/cometchat-message-list.module.d.ts +1 -1
- package/CometChatMessages/cometchat-messages/cometchat-messages.component.d.ts +19 -16
- package/CometChatMessages/cometchat-messages.module.d.ts +3 -2
- package/CometChatThreadedMessages/cometchat-threaded-messages/cometchat-threaded-messages.component.d.ts +8 -5
- package/Shared/CometChatUIkit/CometChatUIKit.d.ts +13 -3
- package/Shared/Framework/AIExtensionDataSource.d.ts +5 -0
- package/Shared/Framework/DataSource.d.ts +3 -1
- package/Shared/Framework/DataSourceDecorator.d.ts +3 -1
- package/Shared/Utils/CallDetailUtils.d.ts +8 -0
- package/Shared/Utils/CallLogUtils.d.ts +8 -0
- package/Shared/Utils/MessageUtils.d.ts +2 -1
- package/Shared/Views/AIAssistBotMessageList/aiassist-bot-message-list/aiassist-bot-message-list.component.d.ts +71 -0
- package/Shared/Views/AIAssistBotMessageList/aiassist-bot-message-list.module.d.ts +11 -0
- package/assets/InfoIcon.svg +13 -0
- package/assets/greaterThanIcon.svg +3 -0
- package/assets/incomingAudioCallIconUrl.svg +5 -0
- package/assets/incomingVideoCallIconUrl.svg +6 -0
- package/assets/missedAudioCallIconUrl.svg +5 -0
- package/assets/missedVideoCallIconUrl.svg +6 -0
- package/assets/outgoingAudioCallIconUrl.svg +5 -0
- package/assets/outgoingVideoCallIconUrl.svg +6 -0
- package/esm2020/AI/AIAssistBot/AIAssistBot.mjs +21 -0
- package/esm2020/AI/AIAssistBot/AIAssistBotDecorator.mjs +68 -0
- package/esm2020/AI/AIConversationStarter/AIConversationStarter.mjs +7 -4
- package/esm2020/AI/AIConversationStarter/AIConversationStarterDecorator.mjs +22 -1
- package/esm2020/AI/AIConversationSummary/AIConversationSummary.mjs +21 -0
- package/esm2020/AI/AIConversationSummary/AIConversationSummaryDecorator.mjs +32 -0
- package/esm2020/AI/AISmartReplies/AISmartReplies.mjs +7 -4
- package/esm2020/AI/AISmartReplies/AISmartRepliesDecorator.mjs +22 -1
- package/esm2020/Calls/CometChatCallButtons/cometchat-call-buttons/cometchat-call-buttons.component.mjs +3 -3
- package/esm2020/Calls/CometChatCallLogDetails/cometchat-call-log-details/cometchat-call-log-details.component.mjs +351 -0
- package/esm2020/Calls/CometChatCallLogDetails/cometchat-call-log-details.module.mjs +47 -0
- package/esm2020/Calls/CometChatCallLogHistory/cometchat-call-log-history/cometchat-call-log-history.component.mjs +352 -0
- package/esm2020/Calls/CometChatCallLogHistory/cometchat-call-log-history.module.mjs +21 -0
- package/esm2020/Calls/CometChatCallLogParticipants/cometchat-call-log-participants/cometchat-call-log-participants.component.mjs +189 -0
- package/esm2020/Calls/CometChatCallLogParticipants/cometchat-call-log-participants.module.mjs +21 -0
- package/esm2020/Calls/CometChatCallLogRecordings/cometchat-call-log-recordings/cometchat-call-log-recordings.component.mjs +246 -0
- package/esm2020/Calls/CometChatCallLogRecordings/cometchat-call-log-recordings.module.mjs +21 -0
- package/esm2020/Calls/CometChatCallLogs/cometchat-call-logs/cometchat-call-logs.component.mjs +585 -0
- package/esm2020/Calls/CometChatCallLogs/cometchat-call-logs.module.mjs +36 -0
- package/esm2020/Calls/CometChatCallLogsWithDetails/cometchat-call-logs-with-details/cometchat-call-logs-with-details.component.mjs +193 -0
- package/esm2020/Calls/CometChatCallLogsWithDetails/cometchat-call-logs-with-details.module.mjs +39 -0
- package/esm2020/CometChatBannedMembers/cometchat-banned-members/cometchat-banned-members.component.mjs +1 -1
- package/esm2020/CometChatConversations/cometchat-conversations/cometchat-conversations.component.mjs +72 -46
- package/esm2020/CometChatConversationsWithMessages/cometchat-conversations-with-messages/cometchat-conversations-with-messages.component.mjs +3 -3
- package/esm2020/CometChatGroupMembers/cometchat-group-members/cometchat-group-members.component.mjs +1 -1
- package/esm2020/CometChatGroups/cometchat-groups/cometchat-groups.component.mjs +1 -1
- package/esm2020/CometChatGroupsWithMessages/cometchat-groups-with-messages/cometchat-groups-with-messages.component.mjs +3 -3
- package/esm2020/CometChatList/cometchat-list.component.mjs +44 -28
- package/esm2020/CometChatMessageComposer/cometchat-message-composer/cometchat-message-composer.component.mjs +312 -115
- package/esm2020/CometChatMessageComposer/cometchat-message-composer.module.mjs +7 -14
- package/esm2020/CometChatMessageHeader/cometchat-message-header/cometchat-message-header.component.mjs +15 -17
- package/esm2020/CometChatMessageInformation/cometchat-message-information/cometchat-message-information.component.mjs +19 -21
- package/esm2020/CometChatMessageList/cometchat-message-list/cometchat-message-list.component.mjs +888 -300
- package/esm2020/CometChatMessageList/cometchat-message-list.module.mjs +5 -5
- package/esm2020/CometChatMessages/cometchat-messages/cometchat-messages.component.mjs +72 -51
- package/esm2020/CometChatMessages/cometchat-messages.module.mjs +10 -6
- package/esm2020/CometChatThreadedMessages/cometchat-threaded-messages/cometchat-threaded-messages.component.mjs +23 -23
- package/esm2020/CometChatUsers/cometchat-users/cometchat-users.component.mjs +1 -1
- package/esm2020/CometChatUsersWithMessages/cometchat-users-with-messages/cometchat-users-with-messages.component.mjs +3 -3
- package/esm2020/Shared/CometChatUIkit/CometChatUIKit.mjs +173 -36
- package/esm2020/Shared/Framework/AIExtensionDataSource.mjs +3 -0
- package/esm2020/Shared/Framework/ChatConfigurator.mjs +2 -2
- package/esm2020/Shared/Framework/DataSource.mjs +1 -1
- package/esm2020/Shared/Framework/DataSourceDecorator.mjs +5 -2
- package/esm2020/Shared/Utils/CallDetailUtils.mjs +72 -0
- package/esm2020/Shared/Utils/CallLogUtils.mjs +122 -0
- package/esm2020/Shared/Utils/MessageUtils.mjs +31 -20
- package/esm2020/Shared/Views/AIAssistBotMessageList/aiassist-bot-message-list/aiassist-bot-message-list.component.mjs +289 -0
- package/esm2020/Shared/Views/AIAssistBotMessageList/aiassist-bot-message-list.module.mjs +22 -0
- package/esm2020/public-api.mjs +106 -91
- package/fesm2015/cometchat-chat-uikit-angular.mjs +4249 -817
- package/fesm2015/cometchat-chat-uikit-angular.mjs.map +1 -1
- package/fesm2020/cometchat-chat-uikit-angular.mjs +4271 -836
- package/fesm2020/cometchat-chat-uikit-angular.mjs.map +1 -1
- package/package.json +6 -6
- package/public-api.d.ts +105 -90
- package/AI/AIEnabler.d.ts +0 -8
- package/AI/AIEnablerDecorator.d.ts +0 -7
- package/LICENSE.md +0 -3
- package/Shared/Views/CometChatCardView/cometchat-card-view/cometchat-card-view.component.d.ts +0 -71
- package/Shared/Views/CometChatCardView/cometchat-card-view.module.d.ts +0 -8
- package/esm2020/AI/AIEnabler.mjs +0 -70
- package/esm2020/AI/AIEnablerDecorator.mjs +0 -10
- package/esm2020/Shared/Views/CometChatCardView/cometchat-card-view/cometchat-card-view.component.mjs +0 -117
- package/esm2020/Shared/Views/CometChatCardView/cometchat-card-view.module.mjs +0 -23
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { CometChatCallDetailsOption, CometChatCallDetailsTemplate, fontHelper, } from "@cometchat/uikit-resources";
|
|
2
|
+
export class CallDetailUtils {
|
|
3
|
+
static getDefaultCallTemplate(callLog, loggedInUser, theme) {
|
|
4
|
+
return [
|
|
5
|
+
this.getPrimaryDetailsTemplate(callLog, loggedInUser, theme),
|
|
6
|
+
this.getSecondaryDetailsTemplate(callLog, loggedInUser, theme),
|
|
7
|
+
];
|
|
8
|
+
}
|
|
9
|
+
static getPrimaryDetailsTemplate(callLog, loggedInUser, theme) {
|
|
10
|
+
const template = new CometChatCallDetailsTemplate({
|
|
11
|
+
id: "callControls",
|
|
12
|
+
hideSectionSeparator: true,
|
|
13
|
+
sectionSeparatorColor: "red",
|
|
14
|
+
options: (user, group) => {
|
|
15
|
+
return this.getPrimaryOptions(user ?? undefined, group ?? undefined, callLog ?? undefined, loggedInUser ?? undefined, theme ?? undefined);
|
|
16
|
+
},
|
|
17
|
+
});
|
|
18
|
+
return template;
|
|
19
|
+
}
|
|
20
|
+
static getPrimaryOptions(user, group, callLog, loggedInUser, theme) {
|
|
21
|
+
const options = [];
|
|
22
|
+
if (user) {
|
|
23
|
+
options.push(new CometChatCallDetailsOption({
|
|
24
|
+
id: "calls",
|
|
25
|
+
}));
|
|
26
|
+
}
|
|
27
|
+
options.push(new CometChatCallDetailsOption({
|
|
28
|
+
id: "callStatus",
|
|
29
|
+
title: callLog?.getInitiatedAt(),
|
|
30
|
+
titleFont: fontHelper(theme.typography.subtitle1),
|
|
31
|
+
backgroundColor: "rgba(20, 20, 20, 0.04)",
|
|
32
|
+
}));
|
|
33
|
+
return options;
|
|
34
|
+
}
|
|
35
|
+
static getSecondaryDetailsTemplate(callLog, loggedInUser, theme) {
|
|
36
|
+
const template = new CometChatCallDetailsTemplate({
|
|
37
|
+
id: "callOptions",
|
|
38
|
+
hideSectionSeparator: true,
|
|
39
|
+
options: () => {
|
|
40
|
+
return this.getSecondaryOptions(callLog ?? undefined, theme ?? undefined);
|
|
41
|
+
},
|
|
42
|
+
});
|
|
43
|
+
return template;
|
|
44
|
+
}
|
|
45
|
+
static getSecondaryOptions(callLog, theme) {
|
|
46
|
+
const options = [];
|
|
47
|
+
const localizedParticipants = "Participants";
|
|
48
|
+
const localizedRecording = "Recordings";
|
|
49
|
+
const localizedHistory = "History";
|
|
50
|
+
options.push(new CometChatCallDetailsOption({
|
|
51
|
+
id: "participants",
|
|
52
|
+
title: localizedParticipants,
|
|
53
|
+
tail: callLog.participants.length,
|
|
54
|
+
backgroundColor: "rgba(20, 20, 20, 0.04)",
|
|
55
|
+
}));
|
|
56
|
+
if (callLog?.hasRecording) {
|
|
57
|
+
options.push(new CometChatCallDetailsOption({
|
|
58
|
+
id: "recordings",
|
|
59
|
+
title: localizedRecording,
|
|
60
|
+
tail: callLog.recordings.length,
|
|
61
|
+
backgroundColor: "rgba(20, 20, 20, 0.04)",
|
|
62
|
+
}));
|
|
63
|
+
}
|
|
64
|
+
options.push(new CometChatCallDetailsOption({
|
|
65
|
+
id: "callHistory",
|
|
66
|
+
title: localizedHistory,
|
|
67
|
+
backgroundColor: "rgba(20, 20, 20, 0.04)",
|
|
68
|
+
}));
|
|
69
|
+
return options;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FsbERldGFpbFV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2hhdC11aWtpdC1hbmd1bGFyL3NyYy9TaGFyZWQvVXRpbHMvQ2FsbERldGFpbFV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTCwwQkFBMEIsRUFDMUIsNEJBQTRCLEVBSzVCLFVBQVUsR0FFWCxNQUFNLDRCQUE0QixDQUFDO0FBSXBDLE1BQU0sT0FBTyxlQUFlO0lBQ25CLE1BQU0sQ0FBQyxzQkFBc0IsQ0FDbEMsT0FBWSxFQUNaLFlBQTRCLEVBQzVCLEtBQXFCO1FBRXJCLE9BQU87WUFDTCxJQUFJLENBQUMseUJBQXlCLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLENBQUM7WUFDNUQsSUFBSSxDQUFDLDJCQUEyQixDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxDQUFDO1NBQy9ELENBQUM7SUFDSixDQUFDO0lBRU0sTUFBTSxDQUFDLHlCQUF5QixDQUNyQyxPQUFZLEVBQ1osWUFBNEIsRUFDNUIsS0FBcUI7UUFFckIsTUFBTSxRQUFRLEdBQ1osSUFBSSw0QkFBNEIsQ0FBQztZQUMvQixFQUFFLEVBQUUsY0FBYztZQUNsQixvQkFBb0IsRUFBRSxJQUFJO1lBQzFCLHFCQUFxQixFQUFFLEtBQUs7WUFDNUIsT0FBTyxFQUFFLENBQ1AsSUFBMkIsRUFDM0IsS0FBNkIsRUFDN0IsRUFBRTtnQkFDRixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FDM0IsSUFBSSxJQUFJLFNBQVMsRUFDakIsS0FBSyxJQUFJLFNBQVMsRUFDbEIsT0FBTyxJQUFJLFNBQVMsRUFDcEIsWUFBWSxJQUFJLFNBQVMsRUFDekIsS0FBSyxJQUFJLFNBQVMsQ0FDbkIsQ0FBQztZQUNKLENBQUM7U0FDRixDQUFDLENBQUM7UUFDTCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRU8sTUFBTSxDQUFDLGlCQUFpQixDQUM5QixJQUFxQixFQUNyQixLQUF1QixFQUN2QixPQUFhLEVBQ2IsWUFBNkIsRUFDN0IsS0FBc0I7UUFFdEIsTUFBTSxPQUFPLEdBQWlDLEVBQUUsQ0FBQztRQUNqRCxJQUFJLElBQUksRUFBRTtZQUNSLE9BQU8sQ0FBQyxJQUFJLENBQ1YsSUFBSSwwQkFBMEIsQ0FBQztnQkFDN0IsRUFBRSxFQUFFLE9BQU87YUFDWixDQUFDLENBQ0gsQ0FBQztTQUNIO1FBQ0QsT0FBTyxDQUFDLElBQUksQ0FDVixJQUFJLDBCQUEwQixDQUFDO1lBQzdCLEVBQUUsRUFBRSxZQUFZO1lBQ2hCLEtBQUssRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFHO1lBQ2pDLFNBQVMsRUFBRSxVQUFVLENBQUMsS0FBTSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUM7WUFDbEQsZUFBZSxFQUFFLHdCQUF3QjtTQUMxQyxDQUFDLENBQ0gsQ0FBQztRQUNGLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFTSxNQUFNLENBQUMsMkJBQTJCLENBQ3ZDLE9BQVksRUFDWixZQUE0QixFQUM1QixLQUFxQjtRQUVyQixNQUFNLFFBQVEsR0FDWixJQUFJLDRCQUE0QixDQUFDO1lBQy9CLEVBQUUsRUFBRSxhQUFhO1lBQ2pCLG9CQUFvQixFQUFFLElBQUk7WUFDMUIsT0FBTyxFQUFFLEdBQUcsRUFBRTtnQkFDWixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FDN0IsT0FBTyxJQUFJLFNBQVMsRUFDcEIsS0FBSyxJQUFJLFNBQVMsQ0FDbkIsQ0FBQztZQUNKLENBQUM7U0FDRixDQUFDLENBQUM7UUFDTCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRU8sTUFBTSxDQUFDLG1CQUFtQixDQUNoQyxPQUFhLEVBQ2IsS0FBc0I7UUFFdEIsTUFBTSxPQUFPLEdBQWlDLEVBQUUsQ0FBQztRQUNqRCxNQUFNLHFCQUFxQixHQUFHLGNBQWMsQ0FBQztRQUM3QyxNQUFNLGtCQUFrQixHQUFHLFlBQVksQ0FBQztRQUN4QyxNQUFNLGdCQUFnQixHQUFHLFNBQVMsQ0FBQztRQUVuQyxPQUFPLENBQUMsSUFBSSxDQUNWLElBQUksMEJBQTBCLENBQUM7WUFDN0IsRUFBRSxFQUFFLGNBQWM7WUFDbEIsS0FBSyxFQUFFLHFCQUFxQjtZQUM1QixJQUFJLEVBQUUsT0FBTyxDQUFDLFlBQVksQ0FBQyxNQUFNO1lBQ2pDLGVBQWUsRUFBRSx3QkFBd0I7U0FDMUMsQ0FBQyxDQUNILENBQUM7UUFDRixJQUFJLE9BQU8sRUFBRSxZQUFZLEVBQUU7WUFDekIsT0FBTyxDQUFDLElBQUksQ0FDVixJQUFJLDBCQUEwQixDQUFDO2dCQUM3QixFQUFFLEVBQUUsWUFBWTtnQkFDaEIsS0FBSyxFQUFFLGtCQUFrQjtnQkFDekIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxVQUFVLENBQUMsTUFBTTtnQkFDL0IsZUFBZSxFQUFFLHdCQUF3QjthQUMxQyxDQUFDLENBQ0gsQ0FBQztTQUNIO1FBRUQsT0FBTyxDQUFDLElBQUksQ0FDVixJQUFJLDBCQUEwQixDQUFDO1lBQzdCLEVBQUUsRUFBRSxhQUFhO1lBQ2pCLEtBQUssRUFBRSxnQkFBZ0I7WUFDdkIsZUFBZSxFQUFFLHdCQUF3QjtTQUMxQyxDQUFDLENBQ0gsQ0FBQztRQUVGLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbWV0Q2hhdENhbGxCdXR0b25zIH0gZnJvbSBcIi4vLi4vLi4vQ2FsbHMvQ29tZXRDaGF0Q2FsbEJ1dHRvbnMvY29tZXRjaGF0LWNhbGwtYnV0dG9ucy5tb2R1bGVcIjtcbmltcG9ydCB7XG4gIENvbWV0Q2hhdENhbGxEZXRhaWxzT3B0aW9uLFxuICBDb21ldENoYXRDYWxsRGV0YWlsc1RlbXBsYXRlLFxuICBDb21ldENoYXREZXRhaWxzVGVtcGxhdGUsXG4gIENvbWV0Q2hhdFRoZW1lLFxuICBDb21ldENoYXRVSUtpdENvbnN0YW50cyxcbiAgRGF0ZVBhdHRlcm5zLFxuICBmb250SGVscGVyLFxuICBsb2NhbGl6ZSxcbn0gZnJvbSBcIkBjb21ldGNoYXQvdWlraXQtcmVzb3VyY2VzXCI7XG5pbXBvcnQgeyBEYXRlU3R5bGUsIExpc3RJdGVtU3R5bGUgfSBmcm9tIFwiQGNvbWV0Y2hhdC91aWtpdC1lbGVtZW50c1wiO1xuaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gXCIuLi9GcmFtZXdvcmsvRGF0YVNvdXJjZVwiO1xuXG5leHBvcnQgY2xhc3MgQ2FsbERldGFpbFV0aWxzIHtcbiAgcHVibGljIHN0YXRpYyBnZXREZWZhdWx0Q2FsbFRlbXBsYXRlKFxuICAgIGNhbGxMb2c6IGFueSxcbiAgICBsb2dnZWRJblVzZXI6IENvbWV0Q2hhdC5Vc2VyLFxuICAgIHRoZW1lOiBDb21ldENoYXRUaGVtZVxuICApOiBBcnJheTxDb21ldENoYXRDYWxsRGV0YWlsc1RlbXBsYXRlPiB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHRoaXMuZ2V0UHJpbWFyeURldGFpbHNUZW1wbGF0ZShjYWxsTG9nLCBsb2dnZWRJblVzZXIsIHRoZW1lKSxcbiAgICAgIHRoaXMuZ2V0U2Vjb25kYXJ5RGV0YWlsc1RlbXBsYXRlKGNhbGxMb2csIGxvZ2dlZEluVXNlciwgdGhlbWUpLFxuICAgIF07XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGdldFByaW1hcnlEZXRhaWxzVGVtcGxhdGUoXG4gICAgY2FsbExvZzogYW55LFxuICAgIGxvZ2dlZEluVXNlcjogQ29tZXRDaGF0LlVzZXIsXG4gICAgdGhlbWU6IENvbWV0Q2hhdFRoZW1lXG4gICk6IENvbWV0Q2hhdENhbGxEZXRhaWxzVGVtcGxhdGUge1xuICAgIGNvbnN0IHRlbXBsYXRlOiBDb21ldENoYXRDYWxsRGV0YWlsc1RlbXBsYXRlID1cbiAgICAgIG5ldyBDb21ldENoYXRDYWxsRGV0YWlsc1RlbXBsYXRlKHtcbiAgICAgICAgaWQ6IFwiY2FsbENvbnRyb2xzXCIsXG4gICAgICAgIGhpZGVTZWN0aW9uU2VwYXJhdG9yOiB0cnVlLFxuICAgICAgICBzZWN0aW9uU2VwYXJhdG9yQ29sb3I6IFwicmVkXCIsXG4gICAgICAgIG9wdGlvbnM6IChcbiAgICAgICAgICB1c2VyOiBDb21ldENoYXQuVXNlciB8IG51bGwsXG4gICAgICAgICAgZ3JvdXA6IENvbWV0Q2hhdC5Hcm91cCB8IG51bGxcbiAgICAgICAgKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0UHJpbWFyeU9wdGlvbnMoXG4gICAgICAgICAgICB1c2VyID8/IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGdyb3VwID8/IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGNhbGxMb2cgPz8gdW5kZWZpbmVkLFxuICAgICAgICAgICAgbG9nZ2VkSW5Vc2VyID8/IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHRoZW1lID8/IHVuZGVmaW5lZFxuICAgICAgICAgICk7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICByZXR1cm4gdGVtcGxhdGU7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBnZXRQcmltYXJ5T3B0aW9ucyhcbiAgICB1c2VyPzogQ29tZXRDaGF0LlVzZXIsXG4gICAgZ3JvdXA/OiBDb21ldENoYXQuR3JvdXAsXG4gICAgY2FsbExvZz86IGFueSxcbiAgICBsb2dnZWRJblVzZXI/OiBDb21ldENoYXQuVXNlcixcbiAgICB0aGVtZT86IENvbWV0Q2hhdFRoZW1lXG4gICk6IENvbWV0Q2hhdENhbGxEZXRhaWxzT3B0aW9uW10ge1xuICAgIGNvbnN0IG9wdGlvbnM6IENvbWV0Q2hhdENhbGxEZXRhaWxzT3B0aW9uW10gPSBbXTtcbiAgICBpZiAodXNlcikge1xuICAgICAgb3B0aW9ucy5wdXNoKFxuICAgICAgICBuZXcgQ29tZXRDaGF0Q2FsbERldGFpbHNPcHRpb24oe1xuICAgICAgICAgIGlkOiBcImNhbGxzXCIsXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cbiAgICBvcHRpb25zLnB1c2goXG4gICAgICBuZXcgQ29tZXRDaGF0Q2FsbERldGFpbHNPcHRpb24oe1xuICAgICAgICBpZDogXCJjYWxsU3RhdHVzXCIsXG4gICAgICAgIHRpdGxlOiBjYWxsTG9nPy5nZXRJbml0aWF0ZWRBdCgpISxcbiAgICAgICAgdGl0bGVGb250OiBmb250SGVscGVyKHRoZW1lIS50eXBvZ3JhcGh5LnN1YnRpdGxlMSksXG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogXCJyZ2JhKDIwLCAyMCwgMjAsIDAuMDQpXCIsXG4gICAgICB9KVxuICAgICk7XG4gICAgcmV0dXJuIG9wdGlvbnM7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGdldFNlY29uZGFyeURldGFpbHNUZW1wbGF0ZShcbiAgICBjYWxsTG9nOiBhbnksXG4gICAgbG9nZ2VkSW5Vc2VyOiBDb21ldENoYXQuVXNlcixcbiAgICB0aGVtZTogQ29tZXRDaGF0VGhlbWVcbiAgKTogQ29tZXRDaGF0Q2FsbERldGFpbHNUZW1wbGF0ZSB7XG4gICAgY29uc3QgdGVtcGxhdGU6IENvbWV0Q2hhdENhbGxEZXRhaWxzVGVtcGxhdGUgPVxuICAgICAgbmV3IENvbWV0Q2hhdENhbGxEZXRhaWxzVGVtcGxhdGUoe1xuICAgICAgICBpZDogXCJjYWxsT3B0aW9uc1wiLFxuICAgICAgICBoaWRlU2VjdGlvblNlcGFyYXRvcjogdHJ1ZSxcbiAgICAgICAgb3B0aW9uczogKCkgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLmdldFNlY29uZGFyeU9wdGlvbnMoXG4gICAgICAgICAgICBjYWxsTG9nID8/IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHRoZW1lID8/IHVuZGVmaW5lZFxuICAgICAgICAgICk7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICByZXR1cm4gdGVtcGxhdGU7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBnZXRTZWNvbmRhcnlPcHRpb25zKFxuICAgIGNhbGxMb2c/OiBhbnksXG4gICAgdGhlbWU/OiBDb21ldENoYXRUaGVtZVxuICApOiBDb21ldENoYXRDYWxsRGV0YWlsc09wdGlvbltdIHtcbiAgICBjb25zdCBvcHRpb25zOiBDb21ldENoYXRDYWxsRGV0YWlsc09wdGlvbltdID0gW107XG4gICAgY29uc3QgbG9jYWxpemVkUGFydGljaXBhbnRzID0gXCJQYXJ0aWNpcGFudHNcIjtcbiAgICBjb25zdCBsb2NhbGl6ZWRSZWNvcmRpbmcgPSBcIlJlY29yZGluZ3NcIjtcbiAgICBjb25zdCBsb2NhbGl6ZWRIaXN0b3J5ID0gXCJIaXN0b3J5XCI7XG5cbiAgICBvcHRpb25zLnB1c2goXG4gICAgICBuZXcgQ29tZXRDaGF0Q2FsbERldGFpbHNPcHRpb24oe1xuICAgICAgICBpZDogXCJwYXJ0aWNpcGFudHNcIixcbiAgICAgICAgdGl0bGU6IGxvY2FsaXplZFBhcnRpY2lwYW50cyxcbiAgICAgICAgdGFpbDogY2FsbExvZy5wYXJ0aWNpcGFudHMubGVuZ3RoLFxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IFwicmdiYSgyMCwgMjAsIDIwLCAwLjA0KVwiLFxuICAgICAgfSlcbiAgICApO1xuICAgIGlmIChjYWxsTG9nPy5oYXNSZWNvcmRpbmcpIHtcbiAgICAgIG9wdGlvbnMucHVzaChcbiAgICAgICAgbmV3IENvbWV0Q2hhdENhbGxEZXRhaWxzT3B0aW9uKHtcbiAgICAgICAgICBpZDogXCJyZWNvcmRpbmdzXCIsXG4gICAgICAgICAgdGl0bGU6IGxvY2FsaXplZFJlY29yZGluZyxcbiAgICAgICAgICB0YWlsOiBjYWxsTG9nLnJlY29yZGluZ3MubGVuZ3RoLFxuICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogXCJyZ2JhKDIwLCAyMCwgMjAsIDAuMDQpXCIsXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cblxuICAgIG9wdGlvbnMucHVzaChcbiAgICAgIG5ldyBDb21ldENoYXRDYWxsRGV0YWlsc09wdGlvbih7XG4gICAgICAgIGlkOiBcImNhbGxIaXN0b3J5XCIsXG4gICAgICAgIHRpdGxlOiBsb2NhbGl6ZWRIaXN0b3J5LFxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IFwicmdiYSgyMCwgMjAsIDIwLCAwLjA0KVwiLFxuICAgICAgfSlcbiAgICApO1xuXG4gICAgcmV0dXJuIG9wdGlvbnM7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { CometChatUIKitConstants, localize } from "@cometchat/uikit-resources";
|
|
2
|
+
export class CallLogUtils {
|
|
3
|
+
static isSentByMe(call, loggedInUser) {
|
|
4
|
+
const senderUid = call.getInitiator()?.getUid();
|
|
5
|
+
return !senderUid || senderUid === loggedInUser?.getUid();
|
|
6
|
+
}
|
|
7
|
+
static isMissedCall(call, loggedInUser) {
|
|
8
|
+
const callStatus = call.getStatus();
|
|
9
|
+
const sentByMe = this.isSentByMe(call, loggedInUser);
|
|
10
|
+
// If the user sent the call and it was unanswered, it's not counted as missed
|
|
11
|
+
if (sentByMe && callStatus === CometChatUIKitConstants.calls.unanswered) {
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
// The following statuses are considered missed for the receiver
|
|
15
|
+
const missedStatuses = [
|
|
16
|
+
CometChatUIKitConstants.calls.unanswered,
|
|
17
|
+
CometChatUIKitConstants.calls.cancelled,
|
|
18
|
+
];
|
|
19
|
+
// If the user didn't send the call and the status matches one of the missed statuses, it's a missed call
|
|
20
|
+
return !sentByMe && missedStatuses.includes(callStatus);
|
|
21
|
+
}
|
|
22
|
+
static getCallStatusWithType(call, loggedInUser, includeType = false) {
|
|
23
|
+
if (!call || !loggedInUser) {
|
|
24
|
+
return "";
|
|
25
|
+
}
|
|
26
|
+
let callMessageText = "";
|
|
27
|
+
const callStatus = call.getStatus();
|
|
28
|
+
const sentByMe = this.isSentByMe(call, loggedInUser);
|
|
29
|
+
const missedCall = this.isMissedCall(call, loggedInUser);
|
|
30
|
+
const callTypeKey = "_";
|
|
31
|
+
if (missedCall) {
|
|
32
|
+
callMessageText = `MISSED${callTypeKey}CALL`;
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
switch (callStatus) {
|
|
36
|
+
case CometChatUIKitConstants.calls.initiated:
|
|
37
|
+
callMessageText = sentByMe
|
|
38
|
+
? `OUTGOING${callTypeKey}CALL`
|
|
39
|
+
: `INCOMING${callTypeKey}CALL`;
|
|
40
|
+
break;
|
|
41
|
+
case CometChatUIKitConstants.calls.ongoing:
|
|
42
|
+
callMessageText = sentByMe
|
|
43
|
+
? `ONGOING${callTypeKey}CALL`
|
|
44
|
+
: `ONGOING${callTypeKey}CALL`;
|
|
45
|
+
break;
|
|
46
|
+
case CometChatUIKitConstants.calls.ended:
|
|
47
|
+
callMessageText = sentByMe
|
|
48
|
+
? `OUTGOING${callTypeKey}CALL`
|
|
49
|
+
: `INCOMING${callTypeKey}CALL`;
|
|
50
|
+
break;
|
|
51
|
+
case CometChatUIKitConstants.calls.unanswered:
|
|
52
|
+
callMessageText = sentByMe
|
|
53
|
+
? `UNANSWERED${callTypeKey}CALL`
|
|
54
|
+
: `MISSED${callTypeKey}CALL`;
|
|
55
|
+
break;
|
|
56
|
+
case CometChatUIKitConstants.calls.cancelled:
|
|
57
|
+
callMessageText = sentByMe
|
|
58
|
+
? `CANCELLED${callTypeKey}CALL`
|
|
59
|
+
: `MISSED${callTypeKey}CALL`;
|
|
60
|
+
break;
|
|
61
|
+
case CometChatUIKitConstants.calls.rejected:
|
|
62
|
+
callMessageText = sentByMe
|
|
63
|
+
? `REJECTED${callTypeKey}CALL`
|
|
64
|
+
: `MISSED${callTypeKey}CALL`;
|
|
65
|
+
break;
|
|
66
|
+
case CometChatUIKitConstants.calls.busy:
|
|
67
|
+
callMessageText = sentByMe
|
|
68
|
+
? `UNANSWERED${callTypeKey}CALL`
|
|
69
|
+
: `MISSED${callTypeKey}CALL`;
|
|
70
|
+
break;
|
|
71
|
+
default:
|
|
72
|
+
callMessageText = `INCOMING${callTypeKey}CALL`;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return localize(callMessageText);
|
|
76
|
+
}
|
|
77
|
+
static convertMinutesToHoursMinutesSeconds(minutes) {
|
|
78
|
+
const hours = Math.floor(minutes / 60);
|
|
79
|
+
const remainingMinutes = Math.floor(minutes % 60);
|
|
80
|
+
const seconds = Math.floor((minutes - Math.floor(minutes)) * 60);
|
|
81
|
+
let hoursString = "";
|
|
82
|
+
let minutesString = "";
|
|
83
|
+
let secondsString = "";
|
|
84
|
+
if (hours > 0) {
|
|
85
|
+
hoursString = `${hours}h`;
|
|
86
|
+
}
|
|
87
|
+
if (remainingMinutes > 0) {
|
|
88
|
+
minutesString = `${remainingMinutes}m`;
|
|
89
|
+
}
|
|
90
|
+
if (seconds >= 0) {
|
|
91
|
+
secondsString = `${seconds}s`;
|
|
92
|
+
}
|
|
93
|
+
return `${hoursString} ${minutesString} ${secondsString}`;
|
|
94
|
+
}
|
|
95
|
+
static convertSecondsToHoursMinutesSeconds(seconds) {
|
|
96
|
+
const hours = Math.floor(seconds / 3600);
|
|
97
|
+
const remainingMinutes = Math.floor((seconds % 3600) / 60);
|
|
98
|
+
const remainingSeconds = Math.floor((seconds % 3600) % 60);
|
|
99
|
+
let hoursString = "";
|
|
100
|
+
let minutesString = "";
|
|
101
|
+
let secondsString = "";
|
|
102
|
+
if (hours > 0) {
|
|
103
|
+
hoursString = `${hours}h`;
|
|
104
|
+
}
|
|
105
|
+
if (remainingMinutes > 0) {
|
|
106
|
+
minutesString = `${remainingMinutes}m`;
|
|
107
|
+
}
|
|
108
|
+
if (remainingSeconds >= 0) {
|
|
109
|
+
secondsString = `${remainingSeconds}s`;
|
|
110
|
+
}
|
|
111
|
+
return `${hoursString} ${minutesString} ${secondsString}`;
|
|
112
|
+
}
|
|
113
|
+
static isDateDifferent(firstDate, secondDate) {
|
|
114
|
+
let firstDateObj, secondDateObj;
|
|
115
|
+
firstDateObj = new Date(firstDate * 1000);
|
|
116
|
+
secondDateObj = new Date(secondDate * 1000);
|
|
117
|
+
return (firstDateObj.getDate() !== secondDateObj.getDate() ||
|
|
118
|
+
firstDateObj.getMonth() !== secondDateObj.getMonth() ||
|
|
119
|
+
firstDateObj.getFullYear() !== secondDateObj.getFullYear());
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FsbExvZ1V0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2hhdC11aWtpdC1hbmd1bGFyL3NyYy9TaGFyZWQvVXRpbHMvQ2FsbExvZ1V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUkvRSxNQUFNLE9BQU8sWUFBWTtJQUN2QixNQUFNLENBQUMsVUFBVSxDQUFDLElBQVMsRUFBRSxZQUE0QjtRQUN2RCxNQUFNLFNBQVMsR0FBVyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDeEQsT0FBTyxDQUFDLFNBQVMsSUFBSSxTQUFTLEtBQUssWUFBWSxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQzVELENBQUM7SUFFRCxNQUFNLENBQUMsWUFBWSxDQUFDLElBQVMsRUFBRSxZQUE0QjtRQUN6RCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDcEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFFckQsOEVBQThFO1FBQzlFLElBQUksUUFBUSxJQUFJLFVBQVUsS0FBSyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFO1lBQ3ZFLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxnRUFBZ0U7UUFDaEUsTUFBTSxjQUFjLEdBQUc7WUFDckIsdUJBQXVCLENBQUMsS0FBSyxDQUFDLFVBQVU7WUFDeEMsdUJBQXVCLENBQUMsS0FBSyxDQUFDLFNBQVM7U0FDeEMsQ0FBQztRQUVGLHlHQUF5RztRQUN6RyxPQUFPLENBQUMsUUFBUSxJQUFJLGNBQWMsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELE1BQU0sQ0FBQyxxQkFBcUIsQ0FDMUIsSUFBUyxFQUNULFlBQTRCLEVBQzVCLGNBQXVCLEtBQUs7UUFHNUIsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUMxQixPQUFPLEVBQUUsQ0FBQztTQUNiO1FBRUQsSUFBSSxlQUFlLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNwQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsQ0FBQztRQUNyRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsQ0FBQztRQUd6RCxNQUFNLFdBQVcsR0FBRyxHQUFHLENBQUE7UUFFdkIsSUFBSSxVQUFVLEVBQUU7WUFDWixlQUFlLEdBQUcsU0FBUyxXQUFXLE1BQU0sQ0FBQztTQUNoRDthQUFNO1lBQ0gsUUFBUSxVQUFVLEVBQUU7Z0JBQ2hCLEtBQUssdUJBQXVCLENBQUMsS0FBSyxDQUFDLFNBQVM7b0JBQ3hDLGVBQWUsR0FBRyxRQUFRO3dCQUNsQixDQUFDLENBQUMsV0FBVyxXQUFXLE1BQU07d0JBQzlCLENBQUMsQ0FBQyxXQUFXLFdBQVcsTUFBTSxDQUFDO29CQUN2QyxNQUFNO2dCQUNWLEtBQUssdUJBQXVCLENBQUMsS0FBSyxDQUFDLE9BQU87b0JBQ3RDLGVBQWUsR0FBRyxRQUFRO3dCQUN0QixDQUFDLENBQUMsVUFBVSxXQUFXLE1BQU07d0JBQzdCLENBQUMsQ0FBQyxVQUFVLFdBQVcsTUFBTSxDQUFDO29CQUNsQyxNQUFNO2dCQUNWLEtBQUssdUJBQXVCLENBQUMsS0FBSyxDQUFDLEtBQUs7b0JBQ3BDLGVBQWUsR0FBRyxRQUFRO3dCQUN0QixDQUFDLENBQUMsV0FBVyxXQUFXLE1BQU07d0JBQzlCLENBQUMsQ0FBQyxXQUFXLFdBQVcsTUFBTSxDQUFDO29CQUNuQyxNQUFNO2dCQUNWLEtBQUssdUJBQXVCLENBQUMsS0FBSyxDQUFDLFVBQVU7b0JBQ3pDLGVBQWUsR0FBRyxRQUFRO3dCQUN0QixDQUFDLENBQUMsYUFBYSxXQUFXLE1BQU07d0JBQ2hDLENBQUMsQ0FBQyxTQUFTLFdBQVcsTUFBTSxDQUFDO29CQUNqQyxNQUFNO2dCQUNWLEtBQUssdUJBQXVCLENBQUMsS0FBSyxDQUFDLFNBQVM7b0JBQ3hDLGVBQWUsR0FBRyxRQUFRO3dCQUN0QixDQUFDLENBQUMsWUFBWSxXQUFXLE1BQU07d0JBQy9CLENBQUMsQ0FBQyxTQUFTLFdBQVcsTUFBTSxDQUFDO29CQUNqQyxNQUFNO2dCQUNWLEtBQUssdUJBQXVCLENBQUMsS0FBSyxDQUFDLFFBQVE7b0JBQ3ZDLGVBQWUsR0FBRyxRQUFRO3dCQUN0QixDQUFDLENBQUMsV0FBVyxXQUFXLE1BQU07d0JBQzlCLENBQUMsQ0FBQyxTQUFTLFdBQVcsTUFBTSxDQUFDO29CQUNqQyxNQUFNO2dCQUNWLEtBQUssdUJBQXVCLENBQUMsS0FBSyxDQUFDLElBQUk7b0JBQ25DLGVBQWUsR0FBRyxRQUFRO3dCQUN0QixDQUFDLENBQUMsYUFBYSxXQUFXLE1BQU07d0JBQ2hDLENBQUMsQ0FBQyxTQUFTLFdBQVcsTUFBTSxDQUFDO29CQUNqQyxNQUFNO2dCQUNWO29CQUNJLGVBQWUsR0FBRyxXQUFXLFdBQVcsTUFBTSxDQUFDO2FBQ3REO1NBQ0o7UUFFRCxPQUFPLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUVqQyxDQUFDO0lBRUQsTUFBTSxDQUFDLG1DQUFtQyxDQUFDLE9BQWU7UUFDeEQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDdkMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUMsQ0FBQztRQUNsRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUVqRSxJQUFJLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDckIsSUFBSSxhQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLElBQUksYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUV2QixJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUU7WUFDYixXQUFXLEdBQUcsR0FBRyxLQUFLLEdBQUcsQ0FBQztTQUMzQjtRQUVELElBQUksZ0JBQWdCLEdBQUcsQ0FBQyxFQUFFO1lBQ3hCLGFBQWEsR0FBRyxHQUFHLGdCQUFnQixHQUFHLENBQUM7U0FDeEM7UUFFRCxJQUFJLE9BQU8sSUFBSSxDQUFDLEVBQUU7WUFDaEIsYUFBYSxHQUFHLEdBQUcsT0FBTyxHQUFHLENBQUM7U0FDL0I7UUFFRCxPQUFPLEdBQUcsV0FBVyxJQUFJLGFBQWEsSUFBSSxhQUFhLEVBQUUsQ0FBQztJQUM1RCxDQUFDO0lBRUQsTUFBTSxDQUFDLG1DQUFtQyxDQUFDLE9BQWU7UUFDeEQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDekMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQzNELE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUUzRCxJQUFJLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDckIsSUFBSSxhQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLElBQUksYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUV2QixJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUU7WUFDYixXQUFXLEdBQUcsR0FBRyxLQUFLLEdBQUcsQ0FBQztTQUMzQjtRQUVELElBQUksZ0JBQWdCLEdBQUcsQ0FBQyxFQUFFO1lBQ3hCLGFBQWEsR0FBRyxHQUFHLGdCQUFnQixHQUFHLENBQUM7U0FDeEM7UUFFRCxJQUFJLGdCQUFnQixJQUFJLENBQUMsRUFBRTtZQUN6QixhQUFhLEdBQUcsR0FBRyxnQkFBZ0IsR0FBRyxDQUFDO1NBQ3hDO1FBRUQsT0FBTyxHQUFHLFdBQVcsSUFBSSxhQUFhLElBQUksYUFBYSxFQUFFLENBQUM7SUFDNUQsQ0FBQztJQUVELE1BQU0sQ0FBQyxlQUFlLENBQ3BCLFNBQTZCLEVBQzdCLFVBQThCO1FBRTlCLElBQUksWUFBa0IsRUFBRSxhQUFtQixDQUFDO1FBQzVDLFlBQVksR0FBRyxJQUFJLElBQUksQ0FBQyxTQUFVLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDM0MsYUFBYSxHQUFHLElBQUksSUFBSSxDQUFDLFVBQVcsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUM3QyxPQUFPLENBQ0wsWUFBWSxDQUFDLE9BQU8sRUFBRSxLQUFLLGFBQWEsQ0FBQyxPQUFPLEVBQUU7WUFDbEQsWUFBWSxDQUFDLFFBQVEsRUFBRSxLQUFLLGFBQWEsQ0FBQyxRQUFRLEVBQUU7WUFDcEQsWUFBWSxDQUFDLFdBQVcsRUFBRSxLQUFLLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FDM0QsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLCBsb2NhbGl6ZSB9IGZyb20gXCJAY29tZXRjaGF0L3Vpa2l0LXJlc291cmNlc1wiO1xuXG5pbXBvcnQgeyBDb21ldENoYXQgfSBmcm9tIFwiQGNvbWV0Y2hhdC9jaGF0LXNkay1qYXZhc2NyaXB0XCI7XG5cbmV4cG9ydCBjbGFzcyBDYWxsTG9nVXRpbHMge1xuICBzdGF0aWMgaXNTZW50QnlNZShjYWxsOiBhbnksIGxvZ2dlZEluVXNlcjogQ29tZXRDaGF0LlVzZXIpIHtcbiAgICBjb25zdCBzZW5kZXJVaWQ6IHN0cmluZyA9IGNhbGwuZ2V0SW5pdGlhdG9yKCk/LmdldFVpZCgpO1xuICAgIHJldHVybiAhc2VuZGVyVWlkIHx8IHNlbmRlclVpZCA9PT0gbG9nZ2VkSW5Vc2VyPy5nZXRVaWQoKTtcbiAgfVxuXG4gIHN0YXRpYyBpc01pc3NlZENhbGwoY2FsbDogYW55LCBsb2dnZWRJblVzZXI6IENvbWV0Q2hhdC5Vc2VyKSB7XG4gICAgY29uc3QgY2FsbFN0YXR1cyA9IGNhbGwuZ2V0U3RhdHVzKCk7XG4gICAgY29uc3Qgc2VudEJ5TWUgPSB0aGlzLmlzU2VudEJ5TWUoY2FsbCwgbG9nZ2VkSW5Vc2VyKTtcblxuICAgIC8vIElmIHRoZSB1c2VyIHNlbnQgdGhlIGNhbGwgYW5kIGl0IHdhcyB1bmFuc3dlcmVkLCBpdCdzIG5vdCBjb3VudGVkIGFzIG1pc3NlZFxuICAgIGlmIChzZW50QnlNZSAmJiBjYWxsU3RhdHVzID09PSBDb21ldENoYXRVSUtpdENvbnN0YW50cy5jYWxscy51bmFuc3dlcmVkKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gVGhlIGZvbGxvd2luZyBzdGF0dXNlcyBhcmUgY29uc2lkZXJlZCBtaXNzZWQgZm9yIHRoZSByZWNlaXZlclxuICAgIGNvbnN0IG1pc3NlZFN0YXR1c2VzID0gW1xuICAgICAgQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuY2FsbHMudW5hbnN3ZXJlZCxcbiAgICAgIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLmNhbGxzLmNhbmNlbGxlZCxcbiAgICBdO1xuXG4gICAgLy8gSWYgdGhlIHVzZXIgZGlkbid0IHNlbmQgdGhlIGNhbGwgYW5kIHRoZSBzdGF0dXMgbWF0Y2hlcyBvbmUgb2YgdGhlIG1pc3NlZCBzdGF0dXNlcywgaXQncyBhIG1pc3NlZCBjYWxsXG4gICAgcmV0dXJuICFzZW50QnlNZSAmJiBtaXNzZWRTdGF0dXNlcy5pbmNsdWRlcyhjYWxsU3RhdHVzKTtcbiAgfVxuXG4gIHN0YXRpYyBnZXRDYWxsU3RhdHVzV2l0aFR5cGUoXG4gICAgY2FsbDogYW55LFxuICAgIGxvZ2dlZEluVXNlcjogQ29tZXRDaGF0LlVzZXIsXG4gICAgaW5jbHVkZVR5cGU6IGJvb2xlYW4gPSBmYWxzZVxuICApOiBzdHJpbmcge1xuICBcbiAgICBpZiAoIWNhbGwgfHwgIWxvZ2dlZEluVXNlcikge1xuICAgICAgcmV0dXJuIFwiXCI7XG4gIH1cblxuICBsZXQgY2FsbE1lc3NhZ2VUZXh0ID0gXCJcIjtcbiAgY29uc3QgY2FsbFN0YXR1cyA9IGNhbGwuZ2V0U3RhdHVzKCk7XG4gIGNvbnN0IHNlbnRCeU1lID0gdGhpcy5pc1NlbnRCeU1lKGNhbGwsIGxvZ2dlZEluVXNlcik7XG4gIGNvbnN0IG1pc3NlZENhbGwgPSB0aGlzLmlzTWlzc2VkQ2FsbChjYWxsLCBsb2dnZWRJblVzZXIpO1xuXG5cbiAgY29uc3QgY2FsbFR5cGVLZXkgPSBcIl9cIlxuXG4gIGlmIChtaXNzZWRDYWxsKSB7XG4gICAgICBjYWxsTWVzc2FnZVRleHQgPSBgTUlTU0VEJHtjYWxsVHlwZUtleX1DQUxMYDtcbiAgfSBlbHNlIHtcbiAgICAgIHN3aXRjaCAoY2FsbFN0YXR1cykge1xuICAgICAgICAgIGNhc2UgQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuY2FsbHMuaW5pdGlhdGVkOlxuICAgICAgICAgICAgICBjYWxsTWVzc2FnZVRleHQgPSBzZW50QnlNZVxuICAgICAgICAgICAgICAgICAgICAgID8gYE9VVEdPSU5HJHtjYWxsVHlwZUtleX1DQUxMYFxuICAgICAgICAgICAgICAgICAgICAgIDogYElOQ09NSU5HJHtjYWxsVHlwZUtleX1DQUxMYDtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBDb21ldENoYXRVSUtpdENvbnN0YW50cy5jYWxscy5vbmdvaW5nOlxuICAgICAgICAgICAgICBjYWxsTWVzc2FnZVRleHQgPSBzZW50QnlNZVxuICAgICAgICAgICAgICAgICAgPyBgT05HT0lORyR7Y2FsbFR5cGVLZXl9Q0FMTGBcbiAgICAgICAgICAgICAgICAgIDogYE9OR09JTkcke2NhbGxUeXBlS2V5fUNBTExgO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLmNhbGxzLmVuZGVkOlxuICAgICAgICAgICAgICBjYWxsTWVzc2FnZVRleHQgPSBzZW50QnlNZVxuICAgICAgICAgICAgICAgICAgPyBgT1VUR09JTkcke2NhbGxUeXBlS2V5fUNBTExgXG4gICAgICAgICAgICAgICAgICA6IGBJTkNPTUlORyR7Y2FsbFR5cGVLZXl9Q0FMTGA7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuY2FsbHMudW5hbnN3ZXJlZDpcbiAgICAgICAgICAgICAgY2FsbE1lc3NhZ2VUZXh0ID0gc2VudEJ5TWVcbiAgICAgICAgICAgICAgICAgID8gYFVOQU5TV0VSRUQke2NhbGxUeXBlS2V5fUNBTExgXG4gICAgICAgICAgICAgICAgICA6IGBNSVNTRUQke2NhbGxUeXBlS2V5fUNBTExgO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLmNhbGxzLmNhbmNlbGxlZDpcbiAgICAgICAgICAgICAgY2FsbE1lc3NhZ2VUZXh0ID0gc2VudEJ5TWVcbiAgICAgICAgICAgICAgICAgID8gYENBTkNFTExFRCR7Y2FsbFR5cGVLZXl9Q0FMTGBcbiAgICAgICAgICAgICAgICAgIDogYE1JU1NFRCR7Y2FsbFR5cGVLZXl9Q0FMTGA7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuY2FsbHMucmVqZWN0ZWQ6XG4gICAgICAgICAgICAgIGNhbGxNZXNzYWdlVGV4dCA9IHNlbnRCeU1lXG4gICAgICAgICAgICAgICAgICA/IGBSRUpFQ1RFRCR7Y2FsbFR5cGVLZXl9Q0FMTGBcbiAgICAgICAgICAgICAgICAgIDogYE1JU1NFRCR7Y2FsbFR5cGVLZXl9Q0FMTGA7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuY2FsbHMuYnVzeTpcbiAgICAgICAgICAgICAgY2FsbE1lc3NhZ2VUZXh0ID0gc2VudEJ5TWVcbiAgICAgICAgICAgICAgICAgID8gYFVOQU5TV0VSRUQke2NhbGxUeXBlS2V5fUNBTExgXG4gICAgICAgICAgICAgICAgICA6IGBNSVNTRUQke2NhbGxUeXBlS2V5fUNBTExgO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICBjYWxsTWVzc2FnZVRleHQgPSBgSU5DT01JTkcke2NhbGxUeXBlS2V5fUNBTExgO1xuICAgICAgfVxuICB9XG5cbiAgcmV0dXJuIGxvY2FsaXplKGNhbGxNZXNzYWdlVGV4dCk7XG4gICAgXG4gIH1cblxuICBzdGF0aWMgY29udmVydE1pbnV0ZXNUb0hvdXJzTWludXRlc1NlY29uZHMobWludXRlczogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBjb25zdCBob3VycyA9IE1hdGguZmxvb3IobWludXRlcyAvIDYwKTtcbiAgICBjb25zdCByZW1haW5pbmdNaW51dGVzID0gTWF0aC5mbG9vcihtaW51dGVzICUgNjApO1xuICAgIGNvbnN0IHNlY29uZHMgPSBNYXRoLmZsb29yKChtaW51dGVzIC0gTWF0aC5mbG9vcihtaW51dGVzKSkgKiA2MCk7XG5cbiAgICBsZXQgaG91cnNTdHJpbmcgPSBcIlwiO1xuICAgIGxldCBtaW51dGVzU3RyaW5nID0gXCJcIjtcbiAgICBsZXQgc2Vjb25kc1N0cmluZyA9IFwiXCI7XG5cbiAgICBpZiAoaG91cnMgPiAwKSB7XG4gICAgICBob3Vyc1N0cmluZyA9IGAke2hvdXJzfWhgO1xuICAgIH1cblxuICAgIGlmIChyZW1haW5pbmdNaW51dGVzID4gMCkge1xuICAgICAgbWludXRlc1N0cmluZyA9IGAke3JlbWFpbmluZ01pbnV0ZXN9bWA7XG4gICAgfVxuXG4gICAgaWYgKHNlY29uZHMgPj0gMCkge1xuICAgICAgc2Vjb25kc1N0cmluZyA9IGAke3NlY29uZHN9c2A7XG4gICAgfVxuXG4gICAgcmV0dXJuIGAke2hvdXJzU3RyaW5nfSAke21pbnV0ZXNTdHJpbmd9ICR7c2Vjb25kc1N0cmluZ31gO1xuICB9XG5cbiAgc3RhdGljIGNvbnZlcnRTZWNvbmRzVG9Ib3Vyc01pbnV0ZXNTZWNvbmRzKHNlY29uZHM6IG51bWJlcik6IHN0cmluZyB7XG4gICAgY29uc3QgaG91cnMgPSBNYXRoLmZsb29yKHNlY29uZHMgLyAzNjAwKTtcbiAgICBjb25zdCByZW1haW5pbmdNaW51dGVzID0gTWF0aC5mbG9vcigoc2Vjb25kcyAlIDM2MDApIC8gNjApO1xuICAgIGNvbnN0IHJlbWFpbmluZ1NlY29uZHMgPSBNYXRoLmZsb29yKChzZWNvbmRzICUgMzYwMCkgJSA2MCk7XG5cbiAgICBsZXQgaG91cnNTdHJpbmcgPSBcIlwiO1xuICAgIGxldCBtaW51dGVzU3RyaW5nID0gXCJcIjtcbiAgICBsZXQgc2Vjb25kc1N0cmluZyA9IFwiXCI7XG5cbiAgICBpZiAoaG91cnMgPiAwKSB7XG4gICAgICBob3Vyc1N0cmluZyA9IGAke2hvdXJzfWhgO1xuICAgIH1cblxuICAgIGlmIChyZW1haW5pbmdNaW51dGVzID4gMCkge1xuICAgICAgbWludXRlc1N0cmluZyA9IGAke3JlbWFpbmluZ01pbnV0ZXN9bWA7XG4gICAgfVxuXG4gICAgaWYgKHJlbWFpbmluZ1NlY29uZHMgPj0gMCkge1xuICAgICAgc2Vjb25kc1N0cmluZyA9IGAke3JlbWFpbmluZ1NlY29uZHN9c2A7XG4gICAgfVxuXG4gICAgcmV0dXJuIGAke2hvdXJzU3RyaW5nfSAke21pbnV0ZXNTdHJpbmd9ICR7c2Vjb25kc1N0cmluZ31gO1xuICB9XG5cbiAgc3RhdGljIGlzRGF0ZURpZmZlcmVudChcbiAgICBmaXJzdERhdGU6IG51bWJlciB8IHVuZGVmaW5lZCxcbiAgICBzZWNvbmREYXRlOiBudW1iZXIgfCB1bmRlZmluZWRcbiAgKSB7XG4gICAgbGV0IGZpcnN0RGF0ZU9iajogRGF0ZSwgc2Vjb25kRGF0ZU9iajogRGF0ZTtcbiAgICBmaXJzdERhdGVPYmogPSBuZXcgRGF0ZShmaXJzdERhdGUhICogMTAwMCk7XG4gICAgc2Vjb25kRGF0ZU9iaiA9IG5ldyBEYXRlKHNlY29uZERhdGUhICogMTAwMCk7XG4gICAgcmV0dXJuIChcbiAgICAgIGZpcnN0RGF0ZU9iai5nZXREYXRlKCkgIT09IHNlY29uZERhdGVPYmouZ2V0RGF0ZSgpIHx8XG4gICAgICBmaXJzdERhdGVPYmouZ2V0TW9udGgoKSAhPT0gc2Vjb25kRGF0ZU9iai5nZXRNb250aCgpIHx8XG4gICAgICBmaXJzdERhdGVPYmouZ2V0RnVsbFllYXIoKSAhPT0gc2Vjb25kRGF0ZU9iai5nZXRGdWxsWWVhcigpXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CometChatMessageOption, CometChatMessageTemplate, CometChatMessageComposerAction, localize, CometChatUIKitConstants, fontHelper } from "@cometchat/uikit-resources";
|
|
1
|
+
import { CometChatMessageOption, CometChatMessageTemplate, CometChatMessageComposerAction, localize, CometChatUIKitConstants, fontHelper, } from "@cometchat/uikit-resources";
|
|
2
2
|
import { ConversationUtils } from "@cometchat/uikit-shared";
|
|
3
3
|
import { CometChat } from "@cometchat/chat-sdk-javascript";
|
|
4
4
|
import { ChatConfigurator } from "../Framework/ChatConfigurator";
|
|
@@ -12,7 +12,7 @@ export class MessageUtils {
|
|
|
12
12
|
iconTint: theme.palette.getAccent600(),
|
|
13
13
|
backgroundColor: "transparent",
|
|
14
14
|
titleFont: fontHelper(theme.typography.subtitle1),
|
|
15
|
-
titleColor: theme.palette.getAccent600()
|
|
15
|
+
titleColor: theme.palette.getAccent600(),
|
|
16
16
|
});
|
|
17
17
|
}
|
|
18
18
|
getMessageInfoOption(theme) {
|
|
@@ -24,7 +24,7 @@ export class MessageUtils {
|
|
|
24
24
|
iconTint: theme.palette.getAccent600(),
|
|
25
25
|
backgroundColor: "transparent",
|
|
26
26
|
titleFont: fontHelper(theme.typography.subtitle1),
|
|
27
|
-
titleColor: theme.palette.getAccent600()
|
|
27
|
+
titleColor: theme.palette.getAccent600(),
|
|
28
28
|
});
|
|
29
29
|
}
|
|
30
30
|
getMessagePrivatelyOption(theme) {
|
|
@@ -36,7 +36,7 @@ export class MessageUtils {
|
|
|
36
36
|
iconTint: theme.palette.getAccent600(),
|
|
37
37
|
backgroundColor: "transparent",
|
|
38
38
|
titleFont: fontHelper(theme.typography.subtitle1),
|
|
39
|
-
titleColor: theme.palette.getAccent600()
|
|
39
|
+
titleColor: theme.palette.getAccent600(),
|
|
40
40
|
});
|
|
41
41
|
}
|
|
42
42
|
getDeleteOption(theme) {
|
|
@@ -48,7 +48,7 @@ export class MessageUtils {
|
|
|
48
48
|
iconTint: theme.palette.getAccent600(),
|
|
49
49
|
backgroundColor: "transparent",
|
|
50
50
|
titleFont: fontHelper(theme.typography.subtitle1),
|
|
51
|
-
titleColor: theme.palette.getAccent600()
|
|
51
|
+
titleColor: theme.palette.getAccent600(),
|
|
52
52
|
});
|
|
53
53
|
}
|
|
54
54
|
getReplyInThreadOption(theme) {
|
|
@@ -60,7 +60,7 @@ export class MessageUtils {
|
|
|
60
60
|
iconTint: theme.palette.getAccent600(),
|
|
61
61
|
backgroundColor: "transparent",
|
|
62
62
|
titleFont: fontHelper(theme.typography.subtitle1),
|
|
63
|
-
titleColor: theme.palette.getAccent600()
|
|
63
|
+
titleColor: theme.palette.getAccent600(),
|
|
64
64
|
});
|
|
65
65
|
}
|
|
66
66
|
getCopyOption(theme) {
|
|
@@ -72,7 +72,7 @@ export class MessageUtils {
|
|
|
72
72
|
iconTint: theme.palette.getAccent600(),
|
|
73
73
|
backgroundColor: "transparent",
|
|
74
74
|
titleFont: fontHelper(theme.typography.subtitle1),
|
|
75
|
-
titleColor: theme.palette.getAccent600()
|
|
75
|
+
titleColor: theme.palette.getAccent600(),
|
|
76
76
|
});
|
|
77
77
|
}
|
|
78
78
|
isSentByMe(loggedInUser, message) {
|
|
@@ -174,10 +174,12 @@ export class MessageUtils {
|
|
|
174
174
|
_template = ChatConfigurator.getDataSource().getTextMessageTemplate();
|
|
175
175
|
break;
|
|
176
176
|
case CometChatUIKitConstants.MessageTypes.image:
|
|
177
|
-
_template =
|
|
177
|
+
_template =
|
|
178
|
+
ChatConfigurator.getDataSource().getImageMessageTemplate();
|
|
178
179
|
break;
|
|
179
180
|
case CometChatUIKitConstants.MessageTypes.video:
|
|
180
|
-
_template =
|
|
181
|
+
_template =
|
|
182
|
+
ChatConfigurator.getDataSource().getVideoMessageTemplate();
|
|
181
183
|
break;
|
|
182
184
|
case CometChatUIKitConstants.MessageTypes.groupMember:
|
|
183
185
|
_template = ChatConfigurator.getDataSource().getGroupActionTemplate();
|
|
@@ -186,7 +188,8 @@ export class MessageUtils {
|
|
|
186
188
|
_template = ChatConfigurator.getDataSource().getFileMessageTemplate();
|
|
187
189
|
break;
|
|
188
190
|
case CometChatUIKitConstants.MessageTypes.audio:
|
|
189
|
-
_template =
|
|
191
|
+
_template =
|
|
192
|
+
ChatConfigurator.getDataSource().getAudioMessageTemplate();
|
|
190
193
|
break;
|
|
191
194
|
}
|
|
192
195
|
}
|
|
@@ -198,7 +201,8 @@ export class MessageUtils {
|
|
|
198
201
|
if (loggedInUser.getUid() == messageObject.getSender()?.getUid()) {
|
|
199
202
|
_isSentByMe = true;
|
|
200
203
|
}
|
|
201
|
-
if (messageObject.getCategory() ==
|
|
204
|
+
if (messageObject.getCategory() ==
|
|
205
|
+
CometChatUIKitConstants.MessageCategory.message) {
|
|
202
206
|
switch (messageObject.getType()) {
|
|
203
207
|
case CometChatUIKitConstants.MessageTypes.text:
|
|
204
208
|
_optionList = ChatConfigurator.getDataSource().getTextMessageOptions(loggedInUser, messageObject, theme, group);
|
|
@@ -220,7 +224,8 @@ export class MessageUtils {
|
|
|
220
224
|
break;
|
|
221
225
|
}
|
|
222
226
|
}
|
|
223
|
-
else if (messageObject.getCategory() ==
|
|
227
|
+
else if (messageObject.getCategory() ==
|
|
228
|
+
CometChatUIKitConstants.MessageCategory.custom) {
|
|
224
229
|
_optionList = ChatConfigurator.getDataSource().getCommonOptions(loggedInUser, messageObject, theme, group);
|
|
225
230
|
}
|
|
226
231
|
return _optionList;
|
|
@@ -251,14 +256,17 @@ export class MessageUtils {
|
|
|
251
256
|
CometChatUIKitConstants.MessageTypes.audio,
|
|
252
257
|
CometChatUIKitConstants.MessageTypes.video,
|
|
253
258
|
CometChatUIKitConstants.MessageTypes.file,
|
|
254
|
-
CometChatUIKitConstants.MessageTypes.groupMember
|
|
259
|
+
CometChatUIKitConstants.MessageTypes.groupMember,
|
|
255
260
|
];
|
|
256
261
|
}
|
|
257
262
|
addList() {
|
|
258
263
|
return "<Message Utils>";
|
|
259
264
|
}
|
|
260
265
|
getAllMessageCategories() {
|
|
261
|
-
return [
|
|
266
|
+
return [
|
|
267
|
+
CometChatUIKitConstants.MessageCategory.message,
|
|
268
|
+
CometChatUIKitConstants.MessageCategory.action,
|
|
269
|
+
];
|
|
262
270
|
}
|
|
263
271
|
getAuxiliaryOptions(id, user, group) {
|
|
264
272
|
return null;
|
|
@@ -314,7 +322,7 @@ export class MessageUtils {
|
|
|
314
322
|
titleFont: fontHelper(theme.typography.subtitle1),
|
|
315
323
|
titleColor: theme.palette.getAccent700(),
|
|
316
324
|
borderRadius: "8px",
|
|
317
|
-
background: theme.palette.getAccent100()
|
|
325
|
+
background: theme.palette.getAccent100(),
|
|
318
326
|
});
|
|
319
327
|
}
|
|
320
328
|
videoAttachmentOption(theme) {
|
|
@@ -327,7 +335,7 @@ export class MessageUtils {
|
|
|
327
335
|
titleFont: fontHelper(theme.typography.subtitle1),
|
|
328
336
|
titleColor: theme.palette.getAccent700(),
|
|
329
337
|
borderRadius: "8px",
|
|
330
|
-
background: theme.palette.getAccent100()
|
|
338
|
+
background: theme.palette.getAccent100(),
|
|
331
339
|
});
|
|
332
340
|
}
|
|
333
341
|
audioAttachmentOption(theme) {
|
|
@@ -340,7 +348,7 @@ export class MessageUtils {
|
|
|
340
348
|
titleFont: fontHelper(theme.typography.subtitle1),
|
|
341
349
|
titleColor: theme.palette.getAccent700(),
|
|
342
350
|
borderRadius: "8px",
|
|
343
|
-
background: theme.palette.getAccent100()
|
|
351
|
+
background: theme.palette.getAccent100(),
|
|
344
352
|
});
|
|
345
353
|
}
|
|
346
354
|
fileAttachmentOption(theme) {
|
|
@@ -353,7 +361,7 @@ export class MessageUtils {
|
|
|
353
361
|
titleFont: fontHelper(theme.typography.subtitle1),
|
|
354
362
|
titleColor: theme.palette.getAccent700(),
|
|
355
363
|
borderRadius: "8px",
|
|
356
|
-
background: theme.palette.getAccent100()
|
|
364
|
+
background: theme.palette.getAccent100(),
|
|
357
365
|
});
|
|
358
366
|
}
|
|
359
367
|
getAttachmentOptions(theme, user, group, id) {
|
|
@@ -361,12 +369,15 @@ export class MessageUtils {
|
|
|
361
369
|
this.imageAttachmentOption(theme),
|
|
362
370
|
this.videoAttachmentOption(theme),
|
|
363
371
|
this.audioAttachmentOption(theme),
|
|
364
|
-
this.fileAttachmentOption(theme)
|
|
372
|
+
this.fileAttachmentOption(theme),
|
|
365
373
|
];
|
|
366
374
|
return actions;
|
|
367
375
|
}
|
|
368
376
|
getLastConversationMessage(conversation, loggedInUser) {
|
|
369
377
|
return ConversationUtils.getLastConversationMessage(conversation, loggedInUser);
|
|
370
378
|
}
|
|
379
|
+
getAIOptions(theme, id) {
|
|
380
|
+
return [];
|
|
381
|
+
}
|
|
371
382
|
}
|
|
372
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWVzc2FnZVV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2hhdC11aWtpdC1hbmd1bGFyL3NyYy9TaGFyZWQvVXRpbHMvTWVzc2FnZVV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBeUIsd0JBQXdCLEVBQUUsOEJBQThCLEVBQWtCLFFBQVEsRUFBRSx1QkFBdUIsRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwTixPQUFPLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDakUsTUFBTSxPQUFPLFlBQVk7SUFDckIsYUFBYSxDQUFDLEtBQXFCO1FBQy9CLE9BQU8sSUFBSSxzQkFBc0IsQ0FBQztZQUM5QixFQUFFLEVBQUUsdUJBQXVCLENBQUMsYUFBYSxDQUFDLFdBQVc7WUFDckQsS0FBSyxFQUFFLFFBQVEsQ0FBQyxjQUFjLENBQUM7WUFDL0IsT0FBTyxFQUFFLHFCQUFxQjtZQUM5QixPQUFPLEVBQUUsSUFBSTtZQUNiLFFBQVEsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRTtZQUN0QyxlQUFlLEVBQUUsYUFBYTtZQUM5QixTQUFTLEVBQUUsVUFBVSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDO1lBQ2pELFVBQVUsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRTtTQUMzQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0Qsb0JBQW9CLENBQUMsS0FBcUI7UUFDdEMsT0FBTyxJQUFJLHNCQUFzQixDQUFDO1lBQzlCLEVBQUUsRUFBRSx1QkFBdUIsQ0FBQyxhQUFhLENBQUMsa0JBQWtCO1lBQzVELEtBQUssRUFB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QTBCLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ3BGLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24sTWVzc2FnZUJ1YmJsZUFsaWdubWVudCwgQ29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlLCBDb21ldENoYXRNZXNzYWdlQ29tcG9zZXJBY3Rpb24sIENvbWV0Q2hhdFRoZW1lLCBsb2NhbGl6ZSwgQ29tZXRDaGF0VUlLaXRDb25zdGFudHMsIGZvbnRIZWxwZXIgfSBmcm9tIFwiQGNvbWV0Y2hhdC91aWtpdC1yZXNvdXJjZXNcIjtcbmltcG9ydCB7IENvbnZlcnNhdGlvblV0aWxzfSBmcm9tIFwiQGNvbWV0Y2hhdC91aWtpdC1zaGFyZWRcIjtcbmltcG9ydCB7IENvbWV0Q2hhdCB9IGZyb20gXCJAY29tZXRjaGF0L2NoYXQtc2RrLWphdmFzY3JpcHRcIjtcbmltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tIFwiLi4vRnJhbWV3b3JrL0RhdGFTb3VyY2VcIjtcbmltcG9ydCB7IENoYXRDb25maWd1cmF0b3IgfSBmcm9tIFwiLi4vRnJhbWV3b3JrL0NoYXRDb25maWd1cmF0b3JcIjtcbmV4cG9ydCBjbGFzcyBNZXNzYWdlVXRpbHMgaW1wbGVtZW50cyBEYXRhU291cmNlIHtcbiAgICBnZXRFZGl0T3B0aW9uKHRoZW1lOiBDb21ldENoYXRUaGVtZSk6IENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24ge1xuICAgICAgICByZXR1cm4gbmV3IENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24oe1xuICAgICAgICAgICAgaWQ6IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VPcHRpb24uZWRpdE1lc3NhZ2UsXG4gICAgICAgICAgICB0aXRsZTogbG9jYWxpemUoXCJFRElUX01FU1NBR0VcIiksXG4gICAgICAgICAgICBpY29uVVJMOiBcImFzc2V0cy9lZGl0aWNvbi5zdmdcIixcbiAgICAgICAgICAgIG9uQ2xpY2s6IG51bGwsXG4gICAgICAgICAgICBpY29uVGludDogdGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ2MDAoKSxcbiAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogXCJ0cmFuc3BhcmVudFwiLFxuICAgICAgICAgICAgdGl0bGVGb250OiBmb250SGVscGVyKHRoZW1lLnR5cG9ncmFwaHkuc3VidGl0bGUxKSxcbiAgICAgICAgICAgIHRpdGxlQ29sb3I6IHRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NjAwKClcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGdldE1lc3NhZ2VJbmZvT3B0aW9uKHRoZW1lOiBDb21ldENoYXRUaGVtZSk6IENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24ge1xuICAgICAgICByZXR1cm4gbmV3IENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24oe1xuICAgICAgICAgICAgaWQ6IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VPcHRpb24ubWVzc2FnZUluZm9ybWF0aW9uLFxuICAgICAgICAgICAgdGl0bGU6IGxvY2FsaXplKFwiTUVTU0FHRV9JTkZPUk1BVElPTlwiKSxcbiAgICAgICAgICAgIGljb25VUkw6IFwiYXNzZXRzL0luZm8uc3ZnXCIsXG4gICAgICAgICAgICBvbkNsaWNrOiBudWxsLFxuICAgICAgICAgICAgaWNvblRpbnQ6IHRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NjAwKCksXG4gICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IFwidHJhbnNwYXJlbnRcIixcbiAgICAgICAgICAgIHRpdGxlRm9udDogZm9udEhlbHBlcih0aGVtZS50eXBvZ3JhcGh5LnN1YnRpdGxlMSksXG4gICAgICAgICAgICB0aXRsZUNvbG9yOiB0aGVtZS5wYWxldHRlLmdldEFjY2VudDYwMCgpXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBnZXRNZXNzYWdlUHJpdmF0ZWx5T3B0aW9uKHRoZW1lOiBDb21ldENoYXRUaGVtZSk6IENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24ge1xuICAgICAgICByZXR1cm4gbmV3IENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24oe1xuICAgICAgICAgICAgaWQ6IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VPcHRpb24uc2VuZE1lc3NhZ2VQcml2YXRlbHksXG4gICAgICAgICAgICB0aXRsZTogbG9jYWxpemUoXCJTRU5EX01FU1NBR0VfSU5fUFJJVkFURVwiKSxcbiAgICAgICAgICAgIGljb25VUkw6IFwiYXNzZXRzL21lc3NhZ2UtcHJpdmF0ZWx5LnN2Z1wiLFxuICAgICAgICAgICAgb25DbGljazogbnVsbCxcbiAgICAgICAgICAgIGljb25UaW50OiB0aGVtZS5wYWxldHRlLmdldEFjY2VudDYwMCgpLFxuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBcInRyYW5zcGFyZW50XCIsXG4gICAgICAgICAgICB0aXRsZUZvbnQ6IGZvbnRIZWxwZXIodGhlbWUudHlwb2dyYXBoeS5zdWJ0aXRsZTEpLFxuICAgICAgICAgICAgdGl0bGVDb2xvcjogdGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ2MDAoKVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgZ2V0RGVsZXRlT3B0aW9uKHRoZW1lOiBDb21ldENoYXRUaGVtZSk6IENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24ge1xuICAgICAgICByZXR1cm4gbmV3IENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24oe1xuICAgICAgICAgICAgaWQ6IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VPcHRpb24uZGVsZXRlTWVzc2FnZSxcbiAgICAgICAgICAgIHRpdGxlOiBsb2NhbGl6ZShcIkRFTEVURVwiKSxcbiAgICAgICAgICAgIGljb25VUkw6IFwiYXNzZXRzL2RlbGV0ZWljb24uc3ZnXCIsXG4gICAgICAgICAgICBvbkNsaWNrOiBudWxsLFxuICAgICAgICAgICAgaWNvblRpbnQ6IHRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NjAwKCksXG4gICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IFwidHJhbnNwYXJlbnRcIixcbiAgICAgICAgICAgIHRpdGxlRm9udDogZm9udEhlbHBlcih0aGVtZS50eXBvZ3JhcGh5LnN1YnRpdGxlMSksXG4gICAgICAgICAgICB0aXRsZUNvbG9yOiB0aGVtZS5wYWxldHRlLmdldEFjY2VudDYwMCgpXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBnZXRSZXBseUluVGhyZWFkT3B0aW9uKHRoZW1lOiBDb21ldENoYXRUaGVtZSk6IENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24ge1xuICAgICAgICByZXR1cm4gbmV3IENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24oe1xuICAgICAgICAgICAgaWQ6IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VPcHRpb24ucmVwbHlJblRocmVhZCxcbiAgICAgICAgICAgIHRpdGxlOiBsb2NhbGl6ZShcIlJFUExZX0lOX1RIUkVBRFwiKSxcbiAgICAgICAgICAgIGljb25VUkw6IFwiYXNzZXRzL3RocmVhZGljb24uc3ZnXCIsXG4gICAgICAgICAgICBvbkNsaWNrOiBudWxsLFxuICAgICAgICAgICAgaWNvblRpbnQ6IHRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NjAwKCksXG4gICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IFwidHJhbnNwYXJlbnRcIixcbiAgICAgICAgICAgIHRpdGxlRm9udDogZm9udEhlbHBlcih0aGVtZS50eXBvZ3JhcGh5LnN1YnRpdGxlMSksXG4gICAgICAgICAgICB0aXRsZUNvbG9yOiB0aGVtZS5wYWxldHRlLmdldEFjY2VudDYwMCgpXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBnZXRDb3B5T3B0aW9uKHRoZW1lOiBDb21ldENoYXRUaGVtZSk6IENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24ge1xuICAgICAgICByZXR1cm4gbmV3IENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24oe1xuICAgICAgICAgICAgaWQ6IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VPcHRpb24uY29weU1lc3NhZ2UsXG4gICAgICAgICAgICB0aXRsZTogbG9jYWxpemUoXCJDT1BZX01FU1NBR0VcIiksXG4gICAgICAgICAgICBpY29uVVJMOiBcImFzc2V0cy9Db3B5LnN2Z1wiLFxuICAgICAgICAgICAgb25DbGljazogbnVsbCxcbiAgICAgICAgICAgIGljb25UaW50OiB0aGVtZS5wYWxldHRlLmdldEFjY2VudDYwMCgpLFxuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBcInRyYW5zcGFyZW50XCIsXG4gICAgICAgICAgICB0aXRsZUZvbnQ6IGZvbnRIZWxwZXIodGhlbWUudHlwb2dyYXBoeS5zdWJ0aXRsZTEpLFxuICAgICAgICAgICAgdGl0bGVDb2xvcjogdGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ2MDAoKVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgaXNTZW50QnlNZShsb2dnZWRJblVzZXI6IENvbWV0Q2hhdC5Vc2VyLCBtZXNzYWdlOiBDb21ldENoYXQuQmFzZU1lc3NhZ2UpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGxvZ2dlZEluVXNlci5nZXRVaWQoKSA9PT0gbWVzc2FnZS5nZXRTZW5kZXIoKS5nZXRVaWQoKTtcbiAgICB9XG4gICAgZ2V0VGV4dE1lc3NhZ2VPcHRpb25zKGxvZ2dlZEluVXNlcjogQ29tZXRDaGF0LlVzZXIsIG1lc3NhZ2VPYmplY3Q6IENvbWV0Q2hhdC5CYXNlTWVzc2FnZSwgdGhlbWU6IENvbWV0Q2hhdFRoZW1lLCBncm91cD86IENvbWV0Q2hhdC5Hcm91cCk6IEFycmF5PENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24+IHtcbiAgICAgICAgbGV0IF9pc1NlbnRCeU1lOiBib29sZWFuID0gdGhpcy5pc1NlbnRCeU1lKGxvZ2dlZEluVXNlciwgbWVzc2FnZU9iamVjdCk7XG4gICAgICAgIGxldCBfaXNNb2RlcmF0b3I6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICAgICAgaWYgKGdyb3VwPy5nZXRTY29wZSgpID09IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLmdyb3VwTWVtYmVyU2NvcGUubW9kZXJhdG9yKSB7XG4gICAgICAgICAgICBfaXNNb2RlcmF0b3IgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGxldCBtZXNzYWdlT3B0aW9uTGlzdDogQXJyYXk8Q29tZXRDaGF0TWVzc2FnZU9wdGlvbj4gPSBbXTtcbiAgICAgICAgbWVzc2FnZU9wdGlvbkxpc3QgPSBDaGF0Q29uZmlndXJhdG9yLmdldERhdGFTb3VyY2UoKS5nZXRDb21tb25PcHRpb25zKGxvZ2dlZEluVXNlciwgbWVzc2FnZU9iamVjdCwgdGhlbWUsIGdyb3VwKTtcbiAgICAgICAgaWYgKF9pc1NlbnRCeU1lKSB7XG4gICAgICAgICAgICBtZXNzYWdlT3B0aW9uTGlzdC51bnNoaWZ0KHRoaXMuZ2V0RWRpdE9wdGlvbih0aGVtZSkpO1xuICAgICAgICB9XG4gICAgICAgIG1lc3NhZ2VPcHRpb25MaXN0LnVuc2hpZnQodGhpcy5nZXRDb3B5T3B0aW9uKHRoZW1lKSk7XG4gICAgICAgIHJldHVybiBtZXNzYWdlT3B0aW9uTGlzdDtcbiAgICB9XG4gICAgZ2V0SW1hZ2VNZXNzYWdlT3B0aW9ucyhsb2dnZWRJblVzZXI6IENvbWV0Q2hhdC5Vc2VyLCBtZXNzYWdlT2JqZWN0OiBDb21ldENoYXQuQmFzZU1lc3NhZ2UsIHRoZW1lOiBDb21ldENoYXRUaGVtZSwgZ3JvdXA/OiBDb21ldENoYXQuR3JvdXApOiBBcnJheTxDb21ldENoYXRNZXNzYWdlT3B0aW9uPiB7XG4gICAgICAgIGxldCBtZXNzYWdlT3B0aW9uTGlzdDogQ29tZXRDaGF0TWVzc2FnZU9wdGlvbltdID0gW107XG4gICAgICAgIG1lc3NhZ2VPcHRpb25MaXN0ID0gQ2hhdENvbmZpZ3VyYXRvci5nZXREYXRhU291cmNlKCkuZ2V0Q29tbW9uT3B0aW9ucyhsb2dnZWRJblVzZXIsIG1lc3NhZ2VPYmplY3QsIHRoZW1lLCBncm91cCk7XG4gICAgICAgIHJldHVybiBtZXNzYWdlT3B0aW9uTGlzdDtcbiAgICB9XG4gICAgZ2V0VmlkZW9NZXNzYWdlT3B0aW9ucyhsb2dnZWRJblVzZXI6IENvbWV0Q2hhdC5Vc2VyLCBtZXNzYWdlT2JqZWN0OiBDb21ldENoYXQuQmFzZU1lc3NhZ2UsIHRoZW1lOiBDb21ldENoYXRUaGVtZSwgZ3JvdXA/OiBDb21ldENoYXQuR3JvdXApOiBBcnJheTxDb21ldENoYXRNZXNzYWdlT3B0aW9uPiB7XG4gICAgICAgIGxldCBtZXNzYWdlT3B0aW9uTGlzdDogQ29tZXRDaGF0TWVzc2FnZU9wdGlvbltdID0gW107XG4gICAgICAgIG1lc3NhZ2VPcHRpb25MaXN0ID0gQ2hhdENvbmZpZ3VyYXRvci5nZXREYXRhU291cmNlKCkuZ2V0Q29tbW9uT3B0aW9ucyhsb2dnZWRJblVzZXIsIG1lc3NhZ2VPYmplY3QsIHRoZW1lLCBncm91cCk7XG4gICAgICAgIHJldHVybiBtZXNzYWdlT3B0aW9uTGlzdDtcbiAgICB9XG4gICAgZ2V0QXVkaW9NZXNzYWdlT3B0aW9ucyhsb2dnZWRJblVzZXI6IENvbWV0Q2hhdC5Vc2VyLCBtZXNzYWdlT2JqZWN0OiBDb21ldENoYXQuQmFzZU1lc3NhZ2UsIHRoZW1lOiBDb21ldENoYXRUaGVtZSwgZ3JvdXA/OiBDb21ldENoYXQuR3JvdXApOiBBcnJheTxDb21ldENoYXRNZXNzYWdlT3B0aW9uPiB7XG4gICAgICAgIGxldCBtZXNzYWdlT3B0aW9uTGlzdDogQ29tZXRDaGF0TWVzc2FnZU9wdGlvbltdID0gW107XG4gICAgICAgIG1lc3NhZ2VPcHRpb25MaXN0ID0gQ2hhdENvbmZpZ3VyYXRvci5nZXREYXRhU291cmNlKCkuZ2V0Q29tbW9uT3B0aW9ucyhsb2dnZWRJblVzZXIsIG1lc3NhZ2VPYmplY3QsIHRoZW1lLCBncm91cCk7XG4gICAgICAgIHJldHVybiBtZXNzYWdlT3B0aW9uTGlzdDtcbiAgICB9XG4gICAgZ2V0RmlsZU1lc3NhZ2VPcHRpb25zKGxvZ2dlZEluVXNlcjogQ29tZXRDaGF0LlVzZXIsIG1lc3NhZ2VPYmplY3Q6IENvbWV0Q2hhdC5CYXNlTWVzc2FnZSwgdGhlbWU6IENvbWV0Q2hhdFRoZW1lLCBncm91cD86IENvbWV0Q2hhdC5Hcm91cCk6IEFycmF5PENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24+IHtcbiAgICAgICAgbGV0IG1lc3NhZ2VPcHRpb25MaXN0OiBDb21ldENoYXRNZXNzYWdlT3B0aW9uW10gPSBbXTtcbiAgICAgICAgbWVzc2FnZU9wdGlvbkxpc3QgPSBDaGF0Q29uZmlndXJhdG9yLmdldERhdGFTb3VyY2UoKS5nZXRDb21tb25PcHRpb25zKGxvZ2dlZEluVXNlciwgbWVzc2FnZU9iamVjdCwgdGhlbWUsIGdyb3VwKTtcbiAgICAgICAgcmV0dXJuIG1lc3NhZ2VPcHRpb25MaXN0O1xuICAgIH1cbiAgICBnZXRCb3R0b21WaWV3KF9tZXNzYWdlT2JqZWN0OiBDb21ldENoYXQuQmFzZU1lc3NhZ2UsIF9hbGlnbm1lbnQ6IE1lc3NhZ2VCdWJibGVBbGlnbm1lbnQpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGdldFRleHRNZXNzYWdlVGVtcGxhdGUoKTogQ29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBDb21ldENoYXRNZXNzYWdlVGVtcGxhdGUoe1xuICAgICAgICAgICAgdHlwZTogQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVR5cGVzLnRleHQsXG4gICAgICAgICAgICBjYXRlZ29yeTogQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZUNhdGVnb3J5Lm1lc3NhZ2UsXG4gICAgICAgICAgICBvcHRpb25zOiBDaGF0Q29uZmlndXJhdG9yLmdldERhdGFTb3VyY2UoKS5nZXRNZXNzYWdlT3B0aW9ucyxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGdldEF1ZGlvTWVzc2FnZVRlbXBsYXRlKCk6IENvbWV0Q2hhdE1lc3NhZ2VUZW1wbGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgQ29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlKHtcbiAgICAgICAgICAgIHR5cGU6IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VUeXBlcy5hdWRpbyxcbiAgICAgICAgICAgIGNhdGVnb3J5OiBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlQ2F0ZWdvcnkubWVzc2FnZSxcbiAgICAgICAgICAgIG9wdGlvbnM6IENoYXRDb25maWd1cmF0b3IuZ2V0RGF0YVNvdXJjZSgpLmdldE1lc3NhZ2VPcHRpb25zLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgZ2V0VmlkZW9NZXNzYWdlVGVtcGxhdGUoKTogQ29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBDb21ldENoYXRNZXNzYWdlVGVtcGxhdGUoe1xuICAgICAgICAgICAgdHlwZTogQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVR5cGVzLnZpZGVvLFxuICAgICAgICAgICAgY2F0ZWdvcnk6IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VDYXRlZ29yeS5tZXNzYWdlLFxuICAgICAgICAgICAgb3B0aW9uczogQ2hhdENvbmZpZ3VyYXRvci5nZXREYXRhU291cmNlKCkuZ2V0TWVzc2FnZU9wdGlvbnMsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBnZXRJbWFnZU1lc3NhZ2VUZW1wbGF0ZSgpOiBDb21ldENoYXRNZXNzYWdlVGVtcGxhdGUge1xuICAgICAgICByZXR1cm4gbmV3IENvbWV0Q2hhdE1lc3NhZ2VUZW1wbGF0ZSh7XG4gICAgICAgICAgICB0eXBlOiBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlVHlwZXMuaW1hZ2UsXG4gICAgICAgICAgICBjYXRlZ29yeTogQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZUNhdGVnb3J5Lm1lc3NhZ2UsXG4gICAgICAgICAgICBvcHRpb25zOiBDaGF0Q29uZmlndXJhdG9yLmdldERhdGFTb3VyY2UoKS5nZXRNZXNzYWdlT3B0aW9ucyxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGdldEdyb3VwQWN0aW9uVGVtcGxhdGUoKTogQ29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBDb21ldENoYXRNZXNzYWdlVGVtcGxhdGUoe1xuICAgICAgICAgICAgdHlwZTogQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVR5cGVzLmdyb3VwTWVtYmVyLFxuICAgICAgICAgICAgY2F0ZWdvcnk6IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VDYXRlZ29yeS5hY3Rpb24sXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBnZXRGaWxlTWVzc2FnZVRlbXBsYXRlKCk6IENvbWV0Q2hhdE1lc3NhZ2VUZW1wbGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgQ29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlKHtcbiAgICAgICAgICAgIHR5cGU6IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VUeXBlcy5maWxlLFxuICAgICAgICAgICAgY2F0ZWdvcnk6IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VDYXRlZ29yeS5tZXNzYWdlLFxuICAgICAgICAgICAgb3B0aW9uczogQ2hhdENvbmZpZ3VyYXRvci5nZXREYXRhU291cmNlKCkuZ2V0TWVzc2FnZU9wdGlvbnMsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBnZXRBbGxNZXNzYWdlVGVtcGxhdGVzKCk6IEFycmF5PENvbWV0Q2hhdE1lc3NhZ2VUZW1wbGF0ZT4ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgQ2hhdENvbmZpZ3VyYXRvci5nZXREYXRhU291cmNlKCkuZ2V0VGV4dE1lc3NhZ2VUZW1wbGF0ZSgpLFxuICAgICAgICAgICAgQ2hhdENvbmZpZ3VyYXRvci5nZXREYXRhU291cmNlKCkuZ2V0SW1hZ2VNZXNzYWdlVGVtcGxhdGUoKSxcbiAgICAgICAgICAgIENoYXRDb25maWd1cmF0b3IuZ2V0RGF0YVNvdXJjZSgpLmdldFZpZGVvTWVzc2FnZVRlbXBsYXRlKCksXG4gICAgICAgICAgICBDaGF0Q29uZmlndXJhdG9yLmdldERhdGFTb3VyY2UoKS5nZXRBdWRpb01lc3NhZ2VUZW1wbGF0ZSgpLFxuICAgICAgICAgICAgQ2hhdENvbmZpZ3VyYXRvci5nZXREYXRhU291cmNlKCkuZ2V0RmlsZU1lc3NhZ2VUZW1wbGF0ZSgpLFxuICAgICAgICAgICAgQ2hhdENvbmZpZ3VyYXRvci5nZXREYXRhU291cmNlKCkuZ2V0R3JvdXBBY3Rpb25UZW1wbGF0ZSgpLFxuICAgICAgICBdO1xuICAgIH1cbiAgICBnZXRNZXNzYWdlVGVtcGxhdGUobWVzc2FnZVR5cGU6IHN0cmluZywgbWVzc2FnZUNhdGVnb3J5OiBzdHJpbmcpOiBDb21ldENoYXRNZXNzYWdlVGVtcGxhdGUgfCBudWxsIHtcbiAgICAgICAgbGV0IF90ZW1wbGF0ZTogQ29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlIHwgbnVsbCA9IG51bGw7XG4gICAgICAgIGlmIChtZXNzYWdlQ2F0ZWdvcnkgIT0gQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZUNhdGVnb3J5LmNhbGwpIHtcbiAgICAgICAgICAgIHN3aXRjaCAobWVzc2FnZVR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VUeXBlcy50ZXh0OlxuICAgICAgICAgICAgICAgICAgICBfdGVtcGxhdGUgPSBDaGF0Q29uZmlndXJhdG9yLmdldERhdGFTb3VyY2UoKS5nZXRUZXh0TWVzc2FnZVRlbXBsYXRlKCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVR5cGVzLmltYWdlOlxuICAgICAgICAgICAgICAgICAgICBfdGVtcGxhdGUgPSBDaGF0Q29uZmlndXJhdG9yLmdldERhdGFTb3VyY2UoKS5nZXRJbWFnZU1lc3NhZ2VUZW1wbGF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VUeXBlcy52aWRlbzpcbiAgICAgICAgICAgICAgICAgICAgX3RlbXBsYXRlID0gQ2hhdENvbmZpZ3VyYXRvci5nZXREYXRhU291cmNlKCkuZ2V0VmlkZW9NZXNzYWdlVGVtcGxhdGUoKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlVHlwZXMuZ3JvdXBNZW1iZXI6XG4gICAgICAgICAgICAgICAgICAgIF90ZW1wbGF0ZSA9IENoYXRDb25maWd1cmF0b3IuZ2V0RGF0YVNvdXJjZSgpLmdldEdyb3VwQWN0aW9uVGVtcGxhdGUoKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlVHlwZXMuZmlsZTpcbiAgICAgICAgICAgICAgICAgICAgX3RlbXBsYXRlID0gQ2hhdENvbmZpZ3VyYXRvci5nZXREYXRhU291cmNlKCkuZ2V0RmlsZU1lc3NhZ2VUZW1wbGF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VUeXBlcy5hdWRpbzpcbiAgICAgICAgICAgICAgICAgICAgX3RlbXBsYXRlID0gQ2hhdENvbmZpZ3VyYXRvci5nZXREYXRhU291cmNlKCkuZ2V0QXVkaW9NZXNzYWdlVGVtcGxhdGUoKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIF90ZW1wbGF0ZTtcbiAgICB9XG4gICAgZ2V0TWVzc2FnZU9wdGlvbnMobG9nZ2VkSW5Vc2VyOiBDb21ldENoYXQuVXNlciwgbWVzc2FnZU9iamVjdDogQ29tZXRDaGF0LkJhc2VNZXNzYWdlLCB0aGVtZTogQ29tZXRDaGF0VGhlbWUsIGdyb3VwPzogQ29tZXRDaGF0Lkdyb3VwKTogQXJyYXk8Q29tZXRDaGF0TWVzc2FnZU9wdGlvbj4ge1xuICAgICAgICBsZXQgX29wdGlvbkxpc3Q6IEFycmF5PENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24+ID0gW107XG4gICAgICAgIGxldCBfaXNTZW50QnlNZTogYm9vbGVhbiA9IGZhbHNlO1xuICAgICAgICBpZiAobG9nZ2VkSW5Vc2VyLmdldFVpZCgpID09IG1lc3NhZ2VPYmplY3QuZ2V0U2VuZGVyKCk/LmdldFVpZCgpKSB7XG4gICAgICAgICAgICBfaXNTZW50QnlNZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1lc3NhZ2VPYmplY3QuZ2V0Q2F0ZWdvcnkoKSA9PSBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlQ2F0ZWdvcnkubWVzc2FnZSkge1xuICAgICAgICAgICAgc3dpdGNoIChtZXNzYWdlT2JqZWN0LmdldFR5cGUoKSkge1xuICAgICAgICAgICAgICAgIGNhc2UgQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVR5cGVzLnRleHQ6XG4gICAgICAgICAgICAgICAgICAgIF9vcHRpb25MaXN0ID0gQ2hhdENvbmZpZ3VyYXRvci5nZXREYXRhU291cmNlKCkuZ2V0VGV4dE1lc3NhZ2VPcHRpb25zKGxvZ2dlZEluVXNlciwgbWVzc2FnZU9iamVjdCwgdGhlbWUsIGdyb3VwKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlVHlwZXMuaW1hZ2U6XG4gICAgICAgICAgICAgICAgICAgIF9vcHRpb25MaXN0ID0gQ2hhdENvbmZpZ3VyYXRvci5nZXREYXRhU291cmNlKCkuZ2V0SW1hZ2VNZXNzYWdlT3B0aW9ucyhsb2dnZWRJblVzZXIsIG1lc3NhZ2VPYmplY3QsIHRoZW1lLCBncm91cCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVR5cGVzLnZpZGVvOlxuICAgICAgICAgICAgICAgICAgICBfb3B0aW9uTGlzdCA9IENoYXRDb25maWd1cmF0b3IuZ2V0RGF0YVNvdXJjZSgpLmdldFZpZGVvTWVzc2FnZU9wdGlvbnMobG9nZ2VkSW5Vc2VyLCBtZXNzYWdlT2JqZWN0LCB0aGVtZSwgZ3JvdXApO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VUeXBlcy5ncm91cE1lbWJlcjpcbiAgICAgICAgICAgICAgICAgICAgX29wdGlvbkxpc3QgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlVHlwZXMuZmlsZTpcbiAgICAgICAgICAgICAgICAgICAgX29wdGlvbkxpc3QgPSBDaGF0Q29uZmlndXJhdG9yLmdldERhdGFTb3VyY2UoKS5nZXRGaWxlTWVzc2FnZU9wdGlvbnMobG9nZ2VkSW5Vc2VyLCBtZXNzYWdlT2JqZWN0LCB0aGVtZSwgZ3JvdXApO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VUeXBlcy5hdWRpbzpcbiAgICAgICAgICAgICAgICAgICAgX29wdGlvbkxpc3QgPSBDaGF0Q29uZmlndXJhdG9yLmdldERhdGFTb3VyY2UoKS5nZXRBdWRpb01lc3NhZ2VPcHRpb25zKGxvZ2dlZEluVXNlciwgbWVzc2FnZU9iamVjdCwgdGhlbWUsIGdyb3VwKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAobWVzc2FnZU9iamVjdC5nZXRDYXRlZ29yeSgpID09IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VDYXRlZ29yeS5jdXN0b20pIHtcbiAgICAgICAgICAgIF9vcHRpb25MaXN0ID0gQ2hhdENvbmZpZ3VyYXRvci5nZXREYXRhU291cmNlKCkuZ2V0Q29tbW9uT3B0aW9ucyhsb2dnZWRJblVzZXIsIG1lc3NhZ2VPYmplY3QsIHRoZW1lLCBncm91cCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIF9vcHRpb25MaXN0O1xuICAgIH1cbiAgICBnZXRDb21tb25PcHRpb25zKGxvZ2dlZEluVXNlcjogQ29tZXRDaGF0LlVzZXIsIG1lc3NhZ2VPYmplY3Q6IENvbWV0Q2hhdC5CYXNlTWVzc2FnZSwgdGhlbWU6IENvbWV0Q2hhdFRoZW1lLCBncm91cD86IENvbWV0Q2hhdC5Hcm91cCk6IEFycmF5PENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24+IHtcbiAgICAgICAgbGV0IF9pc1NlbnRCeU1lOiBib29sZWFuID0gdGhpcy5pc1NlbnRCeU1lKGxvZ2dlZEluVXNlciwgbWVzc2FnZU9iamVjdCk7XG4gICAgICAgIGxldCBfaXNNb2RlcmF0b3I6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICAgICAgaWYgKGdyb3VwPy5nZXRTY29wZSgpID09IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLmdyb3VwTWVtYmVyU2NvcGUubW9kZXJhdG9yKSBfaXNNb2RlcmF0b3IgPSB0cnVlO1xuICAgICAgICBsZXQgbWVzc2FnZU9wdGlvbkxpc3Q6IEFycmF5PENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24+ID0gW107XG4gICAgICAgIGlmICghbWVzc2FnZU9iamVjdC5nZXRQYXJlbnRNZXNzYWdlSWQoKSkge1xuICAgICAgICAgICAgbWVzc2FnZU9wdGlvbkxpc3QucHVzaCh0aGlzLmdldFJlcGx5SW5UaHJlYWRPcHRpb24odGhlbWUpKTtcbiAgICAgICAgfVxuICAgICAgICBpZihfaXNTZW50QnlNZSl7XG4gICAgICAgICAgICBtZXNzYWdlT3B0aW9uTGlzdC5wdXNoKHRoaXMuZ2V0TWVzc2FnZUluZm9PcHRpb24odGhlbWUpKVxuICAgICAgICB9XG4gICAgICAgIGlmIChncm91cCAmJiAhX2lzU2VudEJ5TWUpe1xuICAgICAgICAgICAgbWVzc2FnZU9wdGlvbkxpc3QucHVzaCh0aGlzLmdldE1lc3NhZ2VQcml2YXRlbHlPcHRpb24odGhlbWUpKVxuICAgICAgICB9XG4gICAgICAgIGlmIChfaXNTZW50QnlNZSA9PSB0cnVlIHx8IF9pc01vZGVyYXRvciA9PSB0cnVlKVxuICAgICAgICBtZXNzYWdlT3B0aW9uTGlzdC5wdXNoKHRoaXMuZ2V0RGVsZXRlT3B0aW9uKHRoZW1lKSk7XG4gICAgXG4gICAgICAgIHJldHVybiBtZXNzYWdlT3B0aW9uTGlzdDtcbiAgICB9XG4gICAgZ2V0QWxsTWVzc2FnZVR5cGVzKCk6IEFycmF5PHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVR5cGVzLnRleHQsXG4gICAgICAgICAgICBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlVHlwZXMuaW1hZ2UsXG4gICAgICAgICAgICBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlVHlwZXMuYXVkaW8sXG4gICAgICAgICAgICBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlVHlwZXMudmlkZW8sXG4gICAgICAgICAgICBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlVHlwZXMuZmlsZSxcbiAgICAgICAgICAgIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VUeXBlcy5ncm91cE1lbWJlclxuICAgICAgICBdO1xuICAgIH1cbiAgICBhZGRMaXN0KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBcIjxNZXNzYWdlIFV0aWxzPlwiO1xuICAgIH1cbiAgICBnZXRBbGxNZXNzYWdlQ2F0ZWdvcmllcygpOiBBcnJheTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIFtDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlQ2F0ZWdvcnkubWVzc2FnZSwgQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZUNhdGVnb3J5LmFjdGlvbl07XG4gICAgfVxuICAgIGdldEF1eGlsaWFyeU9wdGlvbnMoaWQ6Q29tcG9zZXJJZCwgdXNlcj86IENvbWV0Q2hhdC5Vc2VyLCBncm91cD86IENvbWV0Q2hhdC5Hcm91cCk6IGFueSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBnZXRJZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gXCJtZXNzYWdlVXRpbHNcIjtcbiAgICB9XG4gICAgZ2V0QWN0aW9uTWVzc2FnZShtZXNzYWdlOiBDb21ldENoYXQuQWN0aW9uKTpzdHJpbmcgIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmIChtZXNzYWdlIGluc3RhbmNlb2YgQ29tZXRDaGF0LkFjdGlvbikge1xuICAgICAgICAgICAgICAgIGNvbnN0IGFjdGlvbiA9IG1lc3NhZ2UuZ2V0QWN0aW9uKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgYWN0aW9uQnkgPSBtZXNzYWdlLmdldEFjdGlvbkJ5KCk7XG4gICAgICAgICAgICAgICAgY29uc3QgYWN0aW9uT24gPSBtZXNzYWdlLmdldEFjdGlvbk9uKCk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBieVN0cmluZyA9IChhY3Rpb25CeSBhcyBDb21ldENoYXQuVXNlcikuZ2V0TmFtZSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZvclN0cmluZyA9XG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbiA9PT0gQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuZ3JvdXBNZW1iZXJBY3Rpb24uSk9JTkVEIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb24gPT09IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLmdyb3VwTWVtYmVyQWN0aW9uLkxFRlRcbiAgICAgICAgICAgICAgICAgICAgICAgID8gXCJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgOiAoYWN0aW9uT24gYXMgQ29tZXRDaGF0LlVzZXIpLmdldE5hbWUoKTtcblxuICAgICAgICAgICAgICAgIHN3aXRjaCAoYWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuZ3JvdXBNZW1iZXJBY3Rpb24uQURERUQ6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7YnlTdHJpbmd9ICR7bG9jYWxpemUoXCJBRERFRFwiKX0gJHtmb3JTdHJpbmd9YDtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBDb21ldENoYXRVSUtpdENvbnN0YW50cy5ncm91cE1lbWJlckFjdGlvbi5KT0lORUQ6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7YnlTdHJpbmd9ICR7bG9jYWxpemUoXCJKT0lORURcIil9YDtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBDb21ldENoYXRVSUtpdENvbnN0YW50cy5ncm91cE1lbWJlckFjdGlvbi5MRUZUOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke2J5U3RyaW5nfSAke2xvY2FsaXplKFwiTEVGVFwiKX1gO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLmdyb3VwTWVtYmVyQWN0aW9uLktJQ0tFRDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtieVN0cmluZ30gJHtsb2NhbGl6ZShcIktJQ0tFRFwiKX0gJHtmb3JTdHJpbmd9YDtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBDb21ldENoYXRVSUtpdENvbnN0YW50cy5ncm91cE1lbWJlckFjdGlvbi5CQU5ORUQ6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7YnlTdHJpbmd9ICR7bG9jYWxpemUoXCJCQU5ORURcIil9ICR7Zm9yU3RyaW5nfWA7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuZ3JvdXBNZW1iZXJBY3Rpb24uVU5CQU5ORUQ6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7YnlTdHJpbmd9ICR7bG9jYWxpemUoXCJVTkJBTk5FRFwiKX0gJHtmb3JTdHJpbmd9YDtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBDb21ldENoYXRVSUtpdENvbnN0YW50cy5ncm91cE1lbWJlckFjdGlvbi5TQ09QRV9DSEFOR0U6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7YnlTdHJpbmd9ICR7bG9jYWxpemUoXCJNQURFXCIpfSAke2ZvclN0cmluZ30gJHttZXNzYWdlLmdldE5ld1Njb3BlKCl9YDtcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBcIlwiO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2V7XG4gICAgICAgICAgICAgICAgcmV0dXJuICBcIlwiXG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2goZSkge1xuICAgICAgICAgICAgcmV0dXJuIFwiXCI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpbWFnZUF0dGFjaG1lbnRPcHRpb24odGhlbWU6IENvbWV0Q2hhdFRoZW1lKTogQ29tZXRDaGF0TWVzc2FnZUNvbXBvc2VyQWN0aW9uIHtcbiAgICAgICAgcmV0dXJuIG5ldyBDb21ldENoYXRNZXNzYWdlQ29tcG9zZXJBY3Rpb24oe1xuICAgICAgICAgICAgaWQ6IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VUeXBlcy5pbWFnZSxcbiAgICAgICAgICAgIHRpdGxlOiBsb2NhbGl6ZShcIkFUVEFDSF9JTUFHRVwiKSxcbiAgICAgICAgICAgIGljb25VUkw6IFwiYXNzZXRzL3Bob3RvbGlicmFyeS5zdmdcIixcbiAgICAgICAgICAgIG9uQ2xpY2s6bnVsbCxcbiAgICAgICAgICAgIGljb25UaW50OnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NzAwKCksXG4gICAgICAgICAgICB0aXRsZUZvbnQ6Zm9udEhlbHBlcih0aGVtZS50eXBvZ3JhcGh5LnN1YnRpdGxlMSksXG4gICAgICAgICAgICB0aXRsZUNvbG9yOnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NzAwKCksXG4gICAgICAgICAgICBib3JkZXJSYWRpdXM6XCI4cHhcIixcbiAgICAgICAgICAgIGJhY2tncm91bmQ6dGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQxMDAoKVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgdmlkZW9BdHRhY2htZW50T3B0aW9uKHRoZW1lOiBDb21ldENoYXRUaGVtZSk6IENvbWV0Q2hhdE1lc3NhZ2VDb21wb3NlckFjdGlvbiB7XG4gICAgICAgIHJldHVybiBuZXcgQ29tZXRDaGF0TWVzc2FnZUNvbXBvc2VyQWN0aW9uKHtcbiAgICAgICAgICAgIGlkOiBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlVHlwZXMudmlkZW8sXG4gICAgICAgICAgICB0aXRsZTogbG9jYWxpemUoXCJBVFRBQ0hfVklERU9cIiksXG4gICAgICAgICAgICBpY29uVVJMOiBcImFzc2V0cy92aWRlby5zdmdcIixcbiAgICAgICAgICAgIG9uQ2xpY2s6bnVsbCxcbiAgICAgICAgICAgIGljb25UaW50OnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NzAwKCksXG4gICAgICAgICAgICB0aXRsZUZvbnQ6Zm9udEhlbHBlcih0aGVtZS50eXBvZ3JhcGh5LnN1YnRpdGxlMSksXG4gICAgICAgICAgICB0aXRsZUNvbG9yOnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NzAwKCksXG4gICAgICAgICAgICBib3JkZXJSYWRpdXM6XCI4cHhcIixcbiAgICAgICAgICAgIGJhY2tncm91bmQ6dGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQxMDAoKVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgYXVkaW9BdHRhY2htZW50T3B0aW9uKHRoZW1lOiBDb21ldENoYXRUaGVtZSk6IENvbWV0Q2hhdE1lc3NhZ2VDb21wb3NlckFjdGlvbiB7XG4gICAgICAgIHJldHVybiBuZXcgQ29tZXRDaGF0TWVzc2FnZUNvbXBvc2VyQWN0aW9uKHtcbiAgICAgICAgICAgIGlkOiBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlVHlwZXMuYXVkaW8sXG4gICAgICAgICAgICB0aXRsZTogbG9jYWxpemUoXCJBVFRBQ0hfQVVESU9cIiksXG4gICAgICAgICAgICBpY29uVVJMOiBcImFzc2V0cy9hdWRpby1maWxlLnN2Z1wiLFxuICAgICAgICAgICAgb25DbGljazpudWxsLFxuICAgICAgICAgICAgaWNvblRpbnQ6dGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ3MDAoKSxcbiAgICAgICAgICAgIHRpdGxlRm9udDpmb250SGVscGVyKHRoZW1lLnR5cG9ncmFwaHkuc3VidGl0bGUxKSxcbiAgICAgICAgICAgIHRpdGxlQ29sb3I6dGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ3MDAoKSxcbiAgICAgICAgICAgIGJvcmRlclJhZGl1czpcIjhweFwiLFxuICAgICAgICAgICAgYmFja2dyb3VuZDp0aGVtZS5wYWxldHRlLmdldEFjY2VudDEwMCgpXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBmaWxlQXR0YWNobWVudE9wdGlvbih0aGVtZTogQ29tZXRDaGF0VGhlbWUpOiBDb21ldENoYXRNZXNzYWdlQ29tcG9zZXJBY3Rpb24ge1xuICAgICAgICByZXR1cm4gbmV3IENvbWV0Q2hhdE1lc3NhZ2VDb21wb3NlckFjdGlvbih7XG4gICAgICAgICAgICBpZDogQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVR5cGVzLmZpbGUsXG4gICAgICAgICAgICB0aXRsZTogbG9jYWxpemUoXCJBVFRBQ0hfRklMRVwiKSxcbiAgICAgICAgICAgIGljb25VUkw6IFwiYXNzZXRzL2F0dGFjaG1lbnQtZmlsZS5zdmdcIixcbiAgICAgICAgICAgIG9uQ2xpY2s6bnVsbCxcbiAgICAgICAgICAgIGljb25UaW50OnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NzAwKCksXG4gICAgICAgICAgICB0aXRsZUZvbnQ6Zm9udEhlbHBlcih0aGVtZS50eXBvZ3JhcGh5LnN1YnRpdGxlMSksXG4gICAgICAgICAgICB0aXRsZUNvbG9yOnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NzAwKCksXG4gICAgICAgICAgICBib3JkZXJSYWRpdXM6XCI4cHhcIixcbiAgICAgICAgICAgIGJhY2tncm91bmQ6dGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQxMDAoKVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgZ2V0QXR0YWNobWVudE9wdGlvbnModGhlbWU6IENvbWV0Q2hhdFRoZW1lLHVzZXI/OkNvbWV0Q2hhdC5Vc2VyLGdyb3VwPzpDb21ldENoYXQuR3JvdXAsIGlkPzogQ29tcG9zZXJJZCk6IENvbWV0Q2hhdE1lc3NhZ2VDb21wb3NlckFjdGlvbltdIHtcbiAgICAgICAgbGV0IGFjdGlvbnM6IEFycmF5PENvbWV0Q2hhdE1lc3NhZ2VDb21wb3NlckFjdGlvbj4gPSBbXG4gICAgICAgICAgICB0aGlzLmltYWdlQXR0YWNobWVudE9wdGlvbih0aGVtZSksXG4gICAgICAgICAgICB0aGlzLnZpZGVvQXR0YWNobWVudE9wdGlvbih0aGVtZSksXG4gICAgICAgICAgICB0aGlzLmF1ZGlvQXR0YWNobWVudE9wdGlvbih0aGVtZSksXG4gICAgICAgICAgICB0aGlzLmZpbGVBdHRhY2htZW50T3B0aW9uKHRoZW1lKVxuICAgICAgICBdO1xuICAgICAgICByZXR1cm4gYWN0aW9ucztcbiAgICB9XG4gICAgZ2V0TGFzdENvbnZlcnNhdGlvbk1lc3NhZ2UoY29udmVyc2F0aW9uOiBDb21ldENoYXQuQ29udmVyc2F0aW9uLCBsb2dnZWRJblVzZXI6IENvbWV0Q2hhdC5Vc2VyKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIENvbnZlcnNhdGlvblV0aWxzLmdldExhc3RDb252ZXJzYXRpb25NZXNzYWdlKGNvbnZlcnNhdGlvbiwgbG9nZ2VkSW5Vc2VyKTtcbiAgICB9XG59XG5leHBvcnQgdHlwZSBDb21wb3NlcklkID0ge3BhcmVudE1lc3NhZ2VJZCA6IG51bWJlciB8IG51bGwsIHVzZXIgOiBzdHJpbmcgfCBudWxsLCBncm91cCA6IHN0cmluZyB8IG51bGx9OyJdfQ==
|
|
383
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWVzc2FnZVV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2hhdC11aWtpdC1hbmd1bGFyL3NyYy9TaGFyZWQvVXRpbHMvTWVzc2FnZVV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxzQkFBc0IsRUFFdEIsd0JBQXdCLEVBQ3hCLDhCQUE4QixFQUU5QixRQUFRLEVBQ1IsdUJBQXVCLEVBQ3ZCLFVBQVUsR0FFWCxNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUUzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxNQUFNLE9BQU8sWUFBWTtJQUN2QixhQUFhLENBQUMsS0FBcUI7UUFDakMsT0FBTyxJQUFJLHNCQUFzQixDQUFDO1lBQ2hDLEVBQUUsRUFBRSx1QkFBdUIsQ0FBQyxhQUFhLENBQUMsV0FBVztZQUNyRCxLQUFLLEVBQUUsUUFBUSxDQUFDLGNBQWMsQ0FBQztZQUMvQixPQUFPLEVBQUUscUJBQXFCO1lBQzlCLE9BQU8sRUFBRSxJQUFJO1lBQ2IsUUFBUSxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFO1lBQ3RDLGVBQWUsRUFBRSxhQUFhO1lBQzlCLFNBQVMsRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUM7WUFDakQsVUFBVSxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFO1NBQ3pDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxvQkFBb0IsQ0FBQyxLQUFxQjtRQUN4QyxPQUFPLElBQUksc0JBQXNCLENBQUM7WUFDaEMsRUFBRSxFQUFFLHVCQUF1QixDQUFDLGFBQWEsQ0FBQyxrQkFBa0I7WUFDNUQsS0FBSyxF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LFlBQW9DLEVBQ3BDLFlBQTRCO1FBRTVCLE9BQU8saUJBQWlCLENBQUMsMEJBQTBCLENBQ2pELFlBQVksRUFDWixZQUFZLENBQ2IsQ0FBQztJQUNKLENBQUM7SUFFRCxZQUFZLENBQ1YsS0FBcUIsRUFDckIsRUFBcUI7UUFFckIsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21ldENoYXRNZXNzYWdlT3B0aW9uLFxuICBNZXNzYWdlQnViYmxlQWxpZ25tZW50LFxuICBDb21ldENoYXRNZXNzYWdlVGVtcGxhdGUsXG4gIENvbWV0Q2hhdE1lc3NhZ2VDb21wb3NlckFjdGlvbixcbiAgQ29tZXRDaGF0VGhlbWUsXG4gIGxvY2FsaXplLFxuICBDb21ldENoYXRVSUtpdENvbnN0YW50cyxcbiAgZm9udEhlbHBlcixcbiAgQ29tZXRDaGF0QWN0aW9uc1ZpZXcsXG59IGZyb20gXCJAY29tZXRjaGF0L3Vpa2l0LXJlc291cmNlc1wiO1xuaW1wb3J0IHsgQ29udmVyc2F0aW9uVXRpbHMgfSBmcm9tIFwiQGNvbWV0Y2hhdC91aWtpdC1zaGFyZWRcIjtcbmltcG9ydCB7IENvbWV0Q2hhdCB9IGZyb20gXCJAY29tZXRjaGF0L2NoYXQtc2RrLWphdmFzY3JpcHRcIjtcbmltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tIFwiLi4vRnJhbWV3b3JrL0RhdGFTb3VyY2VcIjtcbmltcG9ydCB7IENoYXRDb25maWd1cmF0b3IgfSBmcm9tIFwiLi4vRnJhbWV3b3JrL0NoYXRDb25maWd1cmF0b3JcIjtcbmV4cG9ydCBjbGFzcyBNZXNzYWdlVXRpbHMgaW1wbGVtZW50cyBEYXRhU291cmNlIHtcbiAgZ2V0RWRpdE9wdGlvbih0aGVtZTogQ29tZXRDaGF0VGhlbWUpOiBDb21ldENoYXRNZXNzYWdlT3B0aW9uIHtcbiAgICByZXR1cm4gbmV3IENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24oe1xuICAgICAgaWQ6IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VPcHRpb24uZWRpdE1lc3NhZ2UsXG4gICAgICB0aXRsZTogbG9jYWxpemUoXCJFRElUX01FU1NBR0VcIiksXG4gICAgICBpY29uVVJMOiBcImFzc2V0cy9lZGl0aWNvbi5zdmdcIixcbiAgICAgIG9uQ2xpY2s6IG51bGwsXG4gICAgICBpY29uVGludDogdGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ2MDAoKSxcbiAgICAgIGJhY2tncm91bmRDb2xvcjogXCJ0cmFuc3BhcmVudFwiLFxuICAgICAgdGl0bGVGb250OiBmb250SGVscGVyKHRoZW1lLnR5cG9ncmFwaHkuc3VidGl0bGUxKSxcbiAgICAgIHRpdGxlQ29sb3I6IHRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NjAwKCksXG4gICAgfSk7XG4gIH1cbiAgZ2V0TWVzc2FnZUluZm9PcHRpb24odGhlbWU6IENvbWV0Q2hhdFRoZW1lKTogQ29tZXRDaGF0TWVzc2FnZU9wdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBDb21ldENoYXRNZXNzYWdlT3B0aW9uKHtcbiAgICAgIGlkOiBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlT3B0aW9uLm1lc3NhZ2VJbmZvcm1hdGlvbixcbiAgICAgIHRpdGxlOiBsb2NhbGl6ZShcIk1FU1NBR0VfSU5GT1JNQVRJT05cIiksXG4gICAgICBpY29uVVJMOiBcImFzc2V0cy9JbmZvLnN2Z1wiLFxuICAgICAgb25DbGljazogbnVsbCxcbiAgICAgIGljb25UaW50OiB0aGVtZS5wYWxldHRlLmdldEFjY2VudDYwMCgpLFxuICAgICAgYmFja2dyb3VuZENvbG9yOiBcInRyYW5zcGFyZW50XCIsXG4gICAgICB0aXRsZUZvbnQ6IGZvbnRIZWxwZXIodGhlbWUudHlwb2dyYXBoeS5zdWJ0aXRsZTEpLFxuICAgICAgdGl0bGVDb2xvcjogdGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ2MDAoKSxcbiAgICB9KTtcbiAgfVxuICBnZXRNZXNzYWdlUHJpdmF0ZWx5T3B0aW9uKHRoZW1lOiBDb21ldENoYXRUaGVtZSk6IENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24ge1xuICAgIHJldHVybiBuZXcgQ29tZXRDaGF0TWVzc2FnZU9wdGlvbih7XG4gICAgICBpZDogQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZU9wdGlvbi5zZW5kTWVzc2FnZVByaXZhdGVseSxcbiAgICAgIHRpdGxlOiBsb2NhbGl6ZShcIlNFTkRfTUVTU0FHRV9JTl9QUklWQVRFXCIpLFxuICAgICAgaWNvblVSTDogXCJhc3NldHMvbWVzc2FnZS1wcml2YXRlbHkuc3ZnXCIsXG4gICAgICBvbkNsaWNrOiBudWxsLFxuICAgICAgaWNvblRpbnQ6IHRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NjAwKCksXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IFwidHJhbnNwYXJlbnRcIixcbiAgICAgIHRpdGxlRm9udDogZm9udEhlbHBlcih0aGVtZS50eXBvZ3JhcGh5LnN1YnRpdGxlMSksXG4gICAgICB0aXRsZUNvbG9yOiB0aGVtZS5wYWxldHRlLmdldEFjY2VudDYwMCgpLFxuICAgIH0pO1xuICB9XG4gIGdldERlbGV0ZU9wdGlvbih0aGVtZTogQ29tZXRDaGF0VGhlbWUpOiBDb21ldENoYXRNZXNzYWdlT3B0aW9uIHtcbiAgICByZXR1cm4gbmV3IENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24oe1xuICAgICAgaWQ6IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VPcHRpb24uZGVsZXRlTWVzc2FnZSxcbiAgICAgIHRpdGxlOiBsb2NhbGl6ZShcIkRFTEVURVwiKSxcbiAgICAgIGljb25VUkw6IFwiYXNzZXRzL2RlbGV0ZWljb24uc3ZnXCIsXG4gICAgICBvbkNsaWNrOiBudWxsLFxuICAgICAgaWNvblRpbnQ6IHRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NjAwKCksXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IFwidHJhbnNwYXJlbnRcIixcbiAgICAgIHRpdGxlRm9udDogZm9udEhlbHBlcih0aGVtZS50eXBvZ3JhcGh5LnN1YnRpdGxlMSksXG4gICAgICB0aXRsZUNvbG9yOiB0aGVtZS5wYWxldHRlLmdldEFjY2VudDYwMCgpLFxuICAgIH0pO1xuICB9XG4gIGdldFJlcGx5SW5UaHJlYWRPcHRpb24odGhlbWU6IENvbWV0Q2hhdFRoZW1lKTogQ29tZXRDaGF0TWVzc2FnZU9wdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBDb21ldENoYXRNZXNzYWdlT3B0aW9uKHtcbiAgICAgIGlkOiBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlT3B0aW9uLnJlcGx5SW5UaHJlYWQsXG4gICAgICB0aXRsZTogbG9jYWxpemUoXCJSRVBMWV9JTl9USFJFQURcIiksXG4gICAgICBpY29uVVJMOiBcImFzc2V0cy90aHJlYWRpY29uLnN2Z1wiLFxuICAgICAgb25DbGljazogbnVsbCxcbiAgICAgIGljb25UaW50OiB0aGVtZS5wYWxldHRlLmdldEFjY2VudDYwMCgpLFxuICAgICAgYmFja2dyb3VuZENvbG9yOiBcInRyYW5zcGFyZW50XCIsXG4gICAgICB0aXRsZUZvbnQ6IGZvbnRIZWxwZXIodGhlbWUudHlwb2dyYXBoeS5zdWJ0aXRsZTEpLFxuICAgICAgdGl0bGVDb2xvcjogdGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ2MDAoKSxcbiAgICB9KTtcbiAgfVxuICBnZXRDb3B5T3B0aW9uKHRoZW1lOiBDb21ldENoYXRUaGVtZSk6IENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24ge1xuICAgIHJldHVybiBuZXcgQ29tZXRDaGF0TWVzc2FnZU9wdGlvbih7XG4gICAgICBpZDogQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZU9wdGlvbi5jb3B5TWVzc2FnZSxcbiAgICAgIHRpdGxlOiBsb2NhbGl6ZShcIkNPUFlfTUVTU0FHRVwiKSxcbiAgICAgIGljb25VUkw6IFwiYXNzZXRzL0NvcHkuc3ZnXCIsXG4gICAgICBvbkNsaWNrOiBudWxsLFxuICAgICAgaWNvblRpbnQ6IHRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NjAwKCksXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IFwidHJhbnNwYXJlbnRcIixcbiAgICAgIHRpdGxlRm9udDogZm9udEhlbHBlcih0aGVtZS50eXBvZ3JhcGh5LnN1YnRpdGxlMSksXG4gICAgICB0aXRsZUNvbG9yOiB0aGVtZS5wYWxldHRlLmdldEFjY2VudDYwMCgpLFxuICAgIH0pO1xuICB9XG4gIGlzU2VudEJ5TWUoXG4gICAgbG9nZ2VkSW5Vc2VyOiBDb21ldENoYXQuVXNlcixcbiAgICBtZXNzYWdlOiBDb21ldENoYXQuQmFzZU1lc3NhZ2VcbiAgKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGxvZ2dlZEluVXNlci5nZXRVaWQoKSA9PT0gbWVzc2FnZS5nZXRTZW5kZXIoKS5nZXRVaWQoKTtcbiAgfVxuICBnZXRUZXh0TWVzc2FnZU9wdGlvbnMoXG4gICAgbG9nZ2VkSW5Vc2VyOiBDb21ldENoYXQuVXNlcixcbiAgICBtZXNzYWdlT2JqZWN0OiBDb21ldENoYXQuQmFzZU1lc3NhZ2UsXG4gICAgdGhlbWU6IENvbWV0Q2hhdFRoZW1lLFxuICAgIGdyb3VwPzogQ29tZXRDaGF0Lkdyb3VwXG4gICk6IEFycmF5PENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24+IHtcbiAgICBsZXQgX2lzU2VudEJ5TWU6IGJvb2xlYW4gPSB0aGlzLmlzU2VudEJ5TWUobG9nZ2VkSW5Vc2VyLCBtZXNzYWdlT2JqZWN0KTtcbiAgICBsZXQgX2lzTW9kZXJhdG9yOiBib29sZWFuID0gZmFsc2U7XG4gICAgaWYgKFxuICAgICAgZ3JvdXA/LmdldFNjb3BlKCkgPT0gQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuZ3JvdXBNZW1iZXJTY29wZS5tb2RlcmF0b3JcbiAgICApIHtcbiAgICAgIF9pc01vZGVyYXRvciA9IHRydWU7XG4gICAgfVxuICAgIGxldCBtZXNzYWdlT3B0aW9uTGlzdDogQXJyYXk8Q29tZXRDaGF0TWVzc2FnZU9wdGlvbj4gPSBbXTtcbiAgICBtZXNzYWdlT3B0aW9uTGlzdCA9IENoYXRDb25maWd1cmF0b3IuZ2V0RGF0YVNvdXJjZSgpLmdldENvbW1vbk9wdGlvbnMoXG4gICAgICBsb2dnZWRJblVzZXIsXG4gICAgICBtZXNzYWdlT2JqZWN0LFxuICAgICAgdGhlbWUsXG4gICAgICBncm91cFxuICAgICk7XG4gICAgaWYgKF9pc1NlbnRCeU1lKSB7XG4gICAgICBtZXNzYWdlT3B0aW9uTGlzdC51bnNoaWZ0KHRoaXMuZ2V0RWRpdE9wdGlvbih0aGVtZSkpO1xuICAgIH1cbiAgICBtZXNzYWdlT3B0aW9uTGlzdC51bnNoaWZ0KHRoaXMuZ2V0Q29weU9wdGlvbih0aGVtZSkpO1xuICAgIHJldHVybiBtZXNzYWdlT3B0aW9uTGlzdDtcbiAgfVxuICBnZXRJbWFnZU1lc3NhZ2VPcHRpb25zKFxuICAgIGxvZ2dlZEluVXNlcjogQ29tZXRDaGF0LlVzZXIsXG4gICAgbWVzc2FnZU9iamVjdDogQ29tZXRDaGF0LkJhc2VNZXNzYWdlLFxuICAgIHRoZW1lOiBDb21ldENoYXRUaGVtZSxcbiAgICBncm91cD86IENvbWV0Q2hhdC5Hcm91cFxuICApOiBBcnJheTxDb21ldENoYXRNZXNzYWdlT3B0aW9uPiB7XG4gICAgbGV0IG1lc3NhZ2VPcHRpb25MaXN0OiBDb21ldENoYXRNZXNzYWdlT3B0aW9uW10gPSBbXTtcbiAgICBtZXNzYWdlT3B0aW9uTGlzdCA9IENoYXRDb25maWd1cmF0b3IuZ2V0RGF0YVNvdXJjZSgpLmdldENvbW1vbk9wdGlvbnMoXG4gICAgICBsb2dnZWRJblVzZXIsXG4gICAgICBtZXNzYWdlT2JqZWN0LFxuICAgICAgdGhlbWUsXG4gICAgICBncm91cFxuICAgICk7XG4gICAgcmV0dXJuIG1lc3NhZ2VPcHRpb25MaXN0O1xuICB9XG4gIGdldFZpZGVvTWVzc2FnZU9wdGlvbnMoXG4gICAgbG9nZ2VkSW5Vc2VyOiBDb21ldENoYXQuVXNlcixcbiAgICBtZXNzYWdlT2JqZWN0OiBDb21ldENoYXQuQmFzZU1lc3NhZ2UsXG4gICAgdGhlbWU6IENvbWV0Q2hhdFRoZW1lLFxuICAgIGdyb3VwPzogQ29tZXRDaGF0Lkdyb3VwXG4gICk6IEFycmF5PENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24+IHtcbiAgICBsZXQgbWVzc2FnZU9wdGlvbkxpc3Q6IENvbWV0Q2hhdE1lc3NhZ2VPcHRpb25bXSA9IFtdO1xuICAgIG1lc3NhZ2VPcHRpb25MaXN0ID0gQ2hhdENvbmZpZ3VyYXRvci5nZXREYXRhU291cmNlKCkuZ2V0Q29tbW9uT3B0aW9ucyhcbiAgICAgIGxvZ2dlZEluVXNlcixcbiAgICAgIG1lc3NhZ2VPYmplY3QsXG4gICAgICB0aGVtZSxcbiAgICAgIGdyb3VwXG4gICAgKTtcbiAgICByZXR1cm4gbWVzc2FnZU9wdGlvbkxpc3Q7XG4gIH1cbiAgZ2V0QXVkaW9NZXNzYWdlT3B0aW9ucyhcbiAgICBsb2dnZWRJblVzZXI6IENvbWV0Q2hhdC5Vc2VyLFxuICAgIG1lc3NhZ2VPYmplY3Q6IENvbWV0Q2hhdC5CYXNlTWVzc2FnZSxcbiAgICB0aGVtZTogQ29tZXRDaGF0VGhlbWUsXG4gICAgZ3JvdXA/OiBDb21ldENoYXQuR3JvdXBcbiAgKTogQXJyYXk8Q29tZXRDaGF0TWVzc2FnZU9wdGlvbj4ge1xuICAgIGxldCBtZXNzYWdlT3B0aW9uTGlzdDogQ29tZXRDaGF0TWVzc2FnZU9wdGlvbltdID0gW107XG4gICAgbWVzc2FnZU9wdGlvbkxpc3QgPSBDaGF0Q29uZmlndXJhdG9yLmdldERhdGFTb3VyY2UoKS5nZXRDb21tb25PcHRpb25zKFxuICAgICAgbG9nZ2VkSW5Vc2VyLFxuICAgICAgbWVzc2FnZU9iamVjdCxcbiAgICAgIHRoZW1lLFxuICAgICAgZ3JvdXBcbiAgICApO1xuICAgIHJldHVybiBtZXNzYWdlT3B0aW9uTGlzdDtcbiAgfVxuICBnZXRGaWxlTWVzc2FnZU9wdGlvbnMoXG4gICAgbG9nZ2VkSW5Vc2VyOiBDb21ldENoYXQuVXNlcixcbiAgICBtZXNzYWdlT2JqZWN0OiBDb21ldENoYXQuQmFzZU1lc3NhZ2UsXG4gICAgdGhlbWU6IENvbWV0Q2hhdFRoZW1lLFxuICAgIGdyb3VwPzogQ29tZXRDaGF0Lkdyb3VwXG4gICk6IEFycmF5PENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24+IHtcbiAgICBsZXQgbWVzc2FnZU9wdGlvbkxpc3Q6IENvbWV0Q2hhdE1lc3NhZ2VPcHRpb25bXSA9IFtdO1xuICAgIG1lc3NhZ2VPcHRpb25MaXN0ID0gQ2hhdENvbmZpZ3VyYXRvci5nZXREYXRhU291cmNlKCkuZ2V0Q29tbW9uT3B0aW9ucyhcbiAgICAgIGxvZ2dlZEluVXNlcixcbiAgICAgIG1lc3NhZ2VPYmplY3QsXG4gICAgICB0aGVtZSxcbiAgICAgIGdyb3VwXG4gICAgKTtcbiAgICByZXR1cm4gbWVzc2FnZU9wdGlvbkxpc3Q7XG4gIH1cbiAgZ2V0Qm90dG9tVmlldyhcbiAgICBfbWVzc2FnZU9iamVjdDogQ29tZXRDaGF0LkJhc2VNZXNzYWdlLFxuICAgIF9hbGlnbm1lbnQ6IE1lc3NhZ2VCdWJibGVBbGlnbm1lbnRcbiAgKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgZ2V0VGV4dE1lc3NhZ2VUZW1wbGF0ZSgpOiBDb21ldENoYXRNZXNzYWdlVGVtcGxhdGUge1xuICAgIHJldHVybiBuZXcgQ29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlKHtcbiAgICAgIHR5cGU6IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VUeXBlcy50ZXh0LFxuICAgICAgY2F0ZWdvcnk6IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VDYXRlZ29yeS5tZXNzYWdlLFxuICAgICAgb3B0aW9uczogQ2hhdENvbmZpZ3VyYXRvci5nZXREYXRhU291cmNlKCkuZ2V0TWVzc2FnZU9wdGlvbnMsXG4gICAgfSk7XG4gIH1cbiAgZ2V0QXVkaW9NZXNzYWdlVGVtcGxhdGUoKTogQ29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlIHtcbiAgICByZXR1cm4gbmV3IENvbWV0Q2hhdE1lc3NhZ2VUZW1wbGF0ZSh7XG4gICAgICB0eXBlOiBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlVHlwZXMuYXVkaW8sXG4gICAgICBjYXRlZ29yeTogQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZUNhdGVnb3J5Lm1lc3NhZ2UsXG4gICAgICBvcHRpb25zOiBDaGF0Q29uZmlndXJhdG9yLmdldERhdGFTb3VyY2UoKS5nZXRNZXNzYWdlT3B0aW9ucyxcbiAgICB9KTtcbiAgfVxuICBnZXRWaWRlb01lc3NhZ2VUZW1wbGF0ZSgpOiBDb21ldENoYXRNZXNzYWdlVGVtcGxhdGUge1xuICAgIHJldHVybiBuZXcgQ29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlKHtcbiAgICAgIHR5cGU6IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VUeXBlcy52aWRlbyxcbiAgICAgIGNhdGVnb3J5OiBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlQ2F0ZWdvcnkubWVzc2FnZSxcbiAgICAgIG9wdGlvbnM6IENoYXRDb25maWd1cmF0b3IuZ2V0RGF0YVNvdXJjZSgpLmdldE1lc3NhZ2VPcHRpb25zLFxuICAgIH0pO1xuICB9XG4gIGdldEltYWdlTWVzc2FnZVRlbXBsYXRlKCk6IENvbWV0Q2hhdE1lc3NhZ2VUZW1wbGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBDb21ldENoYXRNZXNzYWdlVGVtcGxhdGUoe1xuICAgICAgdHlwZTogQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVR5cGVzLmltYWdlLFxuICAgICAgY2F0ZWdvcnk6IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VDYXRlZ29yeS5tZXNzYWdlLFxuICAgICAgb3B0aW9uczogQ2hhdENvbmZpZ3VyYXRvci5nZXREYXRhU291cmNlKCkuZ2V0TWVzc2FnZU9wdGlvbnMsXG4gICAgfSk7XG4gIH1cbiAgZ2V0R3JvdXBBY3Rpb25UZW1wbGF0ZSgpOiBDb21ldENoYXRNZXNzYWdlVGVtcGxhdGUge1xuICAgIHJldHVybiBuZXcgQ29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlKHtcbiAgICAgIHR5cGU6IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VUeXBlcy5ncm91cE1lbWJlcixcbiAgICAgIGNhdGVnb3J5OiBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlQ2F0ZWdvcnkuYWN0aW9uLFxuICAgIH0pO1xuICB9XG4gIGdldEZpbGVNZXNzYWdlVGVtcGxhdGUoKTogQ29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlIHtcbiAgICByZXR1cm4gbmV3IENvbWV0Q2hhdE1lc3NhZ2VUZW1wbGF0ZSh7XG4gICAgICB0eXBlOiBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlVHlwZXMuZmlsZSxcbiAgICAgIGNhdGVnb3J5OiBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlQ2F0ZWdvcnkubWVzc2FnZSxcbiAgICAgIG9wdGlvbnM6IENoYXRDb25maWd1cmF0b3IuZ2V0RGF0YVNvdXJjZSgpLmdldE1lc3NhZ2VPcHRpb25zLFxuICAgIH0pO1xuICB9XG4gIGdldEFsbE1lc3NhZ2VUZW1wbGF0ZXMoKTogQXJyYXk8Q29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlPiB7XG4gICAgcmV0dXJuIFtcbiAgICAgIENoYXRDb25maWd1cmF0b3IuZ2V0RGF0YVNvdXJjZSgpLmdldFRleHRNZXNzYWdlVGVtcGxhdGUoKSxcbiAgICAgIENoYXRDb25maWd1cmF0b3IuZ2V0RGF0YVNvdXJjZSgpLmdldEltYWdlTWVzc2FnZVRlbXBsYXRlKCksXG4gICAgICBDaGF0Q29uZmlndXJhdG9yLmdldERhdGFTb3VyY2UoKS5nZXRWaWRlb01lc3NhZ2VUZW1wbGF0ZSgpLFxuICAgICAgQ2hhdENvbmZpZ3VyYXRvci5nZXREYXRhU291cmNlKCkuZ2V0QXVkaW9NZXNzYWdlVGVtcGxhdGUoKSxcbiAgICAgIENoYXRDb25maWd1cmF0b3IuZ2V0RGF0YVNvdXJjZSgpLmdldEZpbGVNZXNzYWdlVGVtcGxhdGUoKSxcbiAgICAgIENoYXRDb25maWd1cmF0b3IuZ2V0RGF0YVNvdXJjZSgpLmdldEdyb3VwQWN0aW9uVGVtcGxhdGUoKSxcbiAgICBdO1xuICB9XG4gIGdldE1lc3NhZ2VUZW1wbGF0ZShcbiAgICBtZXNzYWdlVHlwZTogc3RyaW5nLFxuICAgIG1lc3NhZ2VDYXRlZ29yeTogc3RyaW5nXG4gICk6IENvbWV0Q2hhdE1lc3NhZ2VUZW1wbGF0ZSB8IG51bGwge1xuICAgIGxldCBfdGVtcGxhdGU6IENvbWV0Q2hhdE1lc3NhZ2VUZW1wbGF0ZSB8IG51bGwgPSBudWxsO1xuICAgIGlmIChtZXNzYWdlQ2F0ZWdvcnkgIT0gQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZUNhdGVnb3J5LmNhbGwpIHtcbiAgICAgIHN3aXRjaCAobWVzc2FnZVR5cGUpIHtcbiAgICAgICAgY2FzZSBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlVHlwZXMudGV4dDpcbiAgICAgICAgICBfdGVtcGxhdGUgPSBDaGF0Q29uZmlndXJhdG9yLmdldERhdGFTb3VyY2UoKS5nZXRUZXh0TWVzc2FnZVRlbXBsYXRlKCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVR5cGVzLmltYWdlOlxuICAgICAgICAgIF90ZW1wbGF0ZSA9XG4gICAgICAgICAgICBDaGF0Q29uZmlndXJhdG9yLmdldERhdGFTb3VyY2UoKS5nZXRJbWFnZU1lc3NhZ2VUZW1wbGF0ZSgpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VUeXBlcy52aWRlbzpcbiAgICAgICAgICBfdGVtcGxhdGUgPVxuICAgICAgICAgICAgQ2hhdENvbmZpZ3VyYXRvci5nZXREYXRhU291cmNlKCkuZ2V0VmlkZW9NZXNzYWdlVGVtcGxhdGUoKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlVHlwZXMuZ3JvdXBNZW1iZXI6XG4gICAgICAgICAgX3RlbXBsYXRlID0gQ2hhdENvbmZpZ3VyYXRvci5nZXREYXRhU291cmNlKCkuZ2V0R3JvdXBBY3Rpb25UZW1wbGF0ZSgpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VUeXBlcy5maWxlOlxuICAgICAgICAgIF90ZW1wbGF0ZSA9IENoYXRDb25maWd1cmF0b3IuZ2V0RGF0YVNvdXJjZSgpLmdldEZpbGVNZXNzYWdlVGVtcGxhdGUoKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlVHlwZXMuYXVkaW86XG4gICAgICAgICAgX3RlbXBsYXRlID1cbiAgICAgICAgICAgIENoYXRDb25maWd1cmF0b3IuZ2V0RGF0YVNvdXJjZSgpLmdldEF1ZGlvTWVzc2FnZVRlbXBsYXRlKCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBfdGVtcGxhdGU7XG4gIH1cbiAgZ2V0TWVzc2FnZU9wdGlvbnMoXG4gICAgbG9nZ2VkSW5Vc2VyOiBDb21ldENoYXQuVXNlcixcbiAgICBtZXNzYWdlT2JqZWN0OiBDb21ldENoYXQuQmFzZU1lc3NhZ2UsXG4gICAgdGhlbWU6IENvbWV0Q2hhdFRoZW1lLFxuICAgIGdyb3VwPzogQ29tZXRDaGF0Lkdyb3VwXG4gICk6IEFycmF5PENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24+IHtcbiAgICBsZXQgX29wdGlvbkxpc3Q6IEFycmF5PENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24+ID0gW107XG4gICAgbGV0IF9pc1NlbnRCeU1lOiBib29sZWFuID0gZmFsc2U7XG4gICAgaWYgKGxvZ2dlZEluVXNlci5nZXRVaWQoKSA9PSBtZXNzYWdlT2JqZWN0LmdldFNlbmRlcigpPy5nZXRVaWQoKSkge1xuICAgICAgX2lzU2VudEJ5TWUgPSB0cnVlO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICBtZXNzYWdlT2JqZWN0LmdldENhdGVnb3J5KCkgPT1cbiAgICAgIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VDYXRlZ29yeS5tZXNzYWdlXG4gICAgKSB7XG4gICAgICBzd2l0Y2ggKG1lc3NhZ2VPYmplY3QuZ2V0VHlwZSgpKSB7XG4gICAgICAgIGNhc2UgQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVR5cGVzLnRleHQ6XG4gICAgICAgICAgX29wdGlvbkxpc3QgPSBDaGF0Q29uZmlndXJhdG9yLmdldERhdGFTb3VyY2UoKS5nZXRUZXh0TWVzc2FnZU9wdGlvbnMoXG4gICAgICAgICAgICBsb2dnZWRJblVzZXIsXG4gICAgICAgICAgICBtZXNzYWdlT2JqZWN0LFxuICAgICAgICAgICAgdGhlbWUsXG4gICAgICAgICAgICBncm91cFxuICAgICAgICAgICk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVR5cGVzLmltYWdlOlxuICAgICAgICAgIF9vcHRpb25MaXN0ID0gQ2hhdENvbmZpZ3VyYXRvci5nZXREYXRhU291cmNlKCkuZ2V0SW1hZ2VNZXNzYWdlT3B0aW9ucyhcbiAgICAgICAgICAgIGxvZ2dlZEluVXNlcixcbiAgICAgICAgICAgIG1lc3NhZ2VPYmplY3QsXG4gICAgICAgICAgICB0aGVtZSxcbiAgICAgICAgICAgIGdyb3VwXG4gICAgICAgICAgKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlVHlwZXMudmlkZW86XG4gICAgICAgICAgX29wdGlvbkxpc3QgPSBDaGF0Q29uZmlndXJhdG9yLmdldERhdGFTb3VyY2UoKS5nZXRWaWRlb01lc3NhZ2VPcHRpb25zKFxuICAgICAgICAgICAgbG9nZ2VkSW5Vc2VyLFxuICAgICAgICAgICAgbWVzc2FnZU9iamVjdCxcbiAgICAgICAgICAgIHRoZW1lLFxuICAgICAgICAgICAgZ3JvdXBcbiAgICAgICAgICApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VUeXBlcy5ncm91cE1lbWJlcjpcbiAgICAgICAgICBfb3B0aW9uTGlzdCA9IFtdO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VUeXBlcy5maWxlOlxuICAgICAgICAgIF9vcHRpb25MaXN0ID0gQ2hhdENvbmZpZ3VyYXRvci5nZXREYXRhU291cmNlKCkuZ2V0RmlsZU1lc3NhZ2VPcHRpb25zKFxuICAgICAgICAgICAgbG9nZ2VkSW5Vc2VyLFxuICAgICAgICAgICAgbWVzc2FnZU9iamVjdCxcbiAgICAgICAgICAgIHRoZW1lLFxuICAgICAgICAgICAgZ3JvdXBcbiAgICAgICAgICApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VUeXBlcy5hdWRpbzpcbiAgICAgICAgICBfb3B0aW9uTGlzdCA9IENoYXRDb25maWd1cmF0b3IuZ2V0RGF0YVNvdXJjZSgpLmdldEF1ZGlvTWVzc2FnZU9wdGlvbnMoXG4gICAgICAgICAgICBsb2dnZWRJblVzZXIsXG4gICAgICAgICAgICBtZXNzYWdlT2JqZWN0LFxuICAgICAgICAgICAgdGhlbWUsXG4gICAgICAgICAgICBncm91cFxuICAgICAgICAgICk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIG1lc3NhZ2VPYmplY3QuZ2V0Q2F0ZWdvcnkoKSA9PVxuICAgICAgQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZUNhdGVnb3J5LmN1c3RvbVxuICAgICkge1xuICAgICAgX29wdGlvbkxpc3QgPSBDaGF0Q29uZmlndXJhdG9yLmdldERhdGFTb3VyY2UoKS5nZXRDb21tb25PcHRpb25zKFxuICAgICAgICBsb2dnZWRJblVzZXIsXG4gICAgICAgIG1lc3NhZ2VPYmplY3QsXG4gICAgICAgIHRoZW1lLFxuICAgICAgICBncm91cFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIF9vcHRpb25MaXN0O1xuICB9XG4gIGdldENvbW1vbk9wdGlvbnMoXG4gICAgbG9nZ2VkSW5Vc2VyOiBDb21ldENoYXQuVXNlcixcbiAgICBtZXNzYWdlT2JqZWN0OiBDb21ldENoYXQuQmFzZU1lc3NhZ2UsXG4gICAgdGhlbWU6IENvbWV0Q2hhdFRoZW1lLFxuICAgIGdyb3VwPzogQ29tZXRDaGF0Lkdyb3VwXG4gICk6IEFycmF5PENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24+IHtcbiAgICBsZXQgX2lzU2VudEJ5TWU6IGJvb2xlYW4gPSB0aGlzLmlzU2VudEJ5TWUobG9nZ2VkSW5Vc2VyLCBtZXNzYWdlT2JqZWN0KTtcbiAgICBsZXQgX2lzTW9kZXJhdG9yOiBib29sZWFuID0gZmFsc2U7XG4gICAgaWYgKGdyb3VwPy5nZXRTY29wZSgpID09IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLmdyb3VwTWVtYmVyU2NvcGUubW9kZXJhdG9yKVxuICAgICAgX2lzTW9kZXJhdG9yID0gdHJ1ZTtcbiAgICBsZXQgbWVzc2FnZU9wdGlvbkxpc3Q6IEFycmF5PENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24+ID0gW107XG4gICAgaWYgKCFtZXNzYWdlT2JqZWN0LmdldFBhcmVudE1lc3NhZ2VJZCgpKSB7XG4gICAgICBtZXNzYWdlT3B0aW9uTGlzdC5wdXNoKHRoaXMuZ2V0UmVwbHlJblRocmVhZE9wdGlvbih0aGVtZSkpO1xuICAgIH1cbiAgICBpZiAoX2lzU2VudEJ5TWUpIHtcbiAgICAgIG1lc3NhZ2VPcHRpb25MaXN0LnB1c2godGhpcy5nZXRNZXNzYWdlSW5mb09wdGlvbih0aGVtZSkpO1xuICAgIH1cbiAgICBpZiAoZ3JvdXAgJiYgIV9pc1NlbnRCeU1lKSB7XG4gICAgICBtZXNzYWdlT3B0aW9uTGlzdC5wdXNoKHRoaXMuZ2V0TWVzc2FnZVByaXZhdGVseU9wdGlvbih0aGVtZSkpO1xuICAgIH1cbiAgICBpZiAoX2lzU2VudEJ5TWUgPT0gdHJ1ZSB8fCBfaXNNb2RlcmF0b3IgPT0gdHJ1ZSlcbiAgICAgIG1lc3NhZ2VPcHRpb25MaXN0LnB1c2godGhpcy5nZXREZWxldGVPcHRpb24odGhlbWUpKTtcblxuICAgIHJldHVybiBtZXNzYWdlT3B0aW9uTGlzdDtcbiAgfVxuICBnZXRBbGxNZXNzYWdlVHlwZXMoKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgcmV0dXJuIFtcbiAgICAgIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VUeXBlcy50ZXh0LFxuICAgICAgQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVR5cGVzLmltYWdlLFxuICAgICAgQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVR5cGVzLmF1ZGlvLFxuICAgICAgQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVR5cGVzLnZpZGVvLFxuICAgICAgQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVR5cGVzLmZpbGUsXG4gICAgICBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlVHlwZXMuZ3JvdXBNZW1iZXIsXG4gICAgXTtcbiAgfVxuICBhZGRMaXN0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFwiPE1lc3NhZ2UgVXRpbHM+XCI7XG4gIH1cbiAgZ2V0QWxsTWVzc2FnZUNhdGVnb3JpZXMoKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgcmV0dXJuIFtcbiAgICAgIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VDYXRlZ29yeS5tZXNzYWdlLFxuICAgICAgQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZUNhdGVnb3J5LmFjdGlvbixcbiAgICBdO1xuICB9XG4gIGdldEF1eGlsaWFyeU9wdGlvbnMoXG4gICAgaWQ6IENvbXBvc2VySWQsXG4gICAgdXNlcj86IENvbWV0Q2hhdC5Vc2VyLFxuICAgIGdyb3VwPzogQ29tZXRDaGF0Lkdyb3VwXG4gICk6IGFueSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgZ2V0SWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJtZXNzYWdlVXRpbHNcIjtcbiAgfVxuICBnZXRBY3Rpb25NZXNzYWdlKG1lc3NhZ2U6IENvbWV0Q2hhdC5BY3Rpb24pOiBzdHJpbmcge1xuICAgIHRyeSB7XG4gICAgICBpZiAobWVzc2FnZSBpbnN0YW5jZW9mIENvbWV0Q2hhdC5BY3Rpb24pIHtcbiAgICAgICAgY29uc3QgYWN0aW9uID0gbWVzc2FnZS5nZXRBY3Rpb24oKTtcbiAgICAgICAgY29uc3QgYWN0aW9uQnkgPSBtZXNzYWdlLmdldEFjdGlvbkJ5KCk7XG4gICAgICAgIGNvbnN0IGFjdGlvbk9uID0gbWVzc2FnZS5nZXRBY3Rpb25PbigpO1xuXG4gICAgICAgIGNvbnN0IGJ5U3RyaW5nID0gKGFjdGlvbkJ5IGFzIENvbWV0Q2hhdC5Vc2VyKS5nZXROYW1lKCk7XG4gICAgICAgIGNvbnN0IGZvclN0cmluZyA9XG4gICAgICAgICAgYWN0aW9uID09PSBDb21ldENoYXRVSUtpdENvbnN0YW50cy5ncm91cE1lbWJlckFjdGlvbi5KT0lORUQgfHxcbiAgICAgICAgICBhY3Rpb24gPT09IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLmdyb3VwTWVtYmVyQWN0aW9uLkxFRlRcbiAgICAgICAgICAgID8gXCJcIlxuICAgICAgICAgICAgOiAoYWN0aW9uT24gYXMgQ29tZXRDaGF0LlVzZXIpLmdldE5hbWUoKTtcblxuICAgICAgICBzd2l0Y2ggKGFjdGlvbikge1xuICAgICAgICAgIGNhc2UgQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuZ3JvdXBNZW1iZXJBY3Rpb24uQURERUQ6XG4gICAgICAgICAgICByZXR1cm4gYCR7YnlTdHJpbmd9ICR7bG9jYWxpemUoXCJBRERFRFwiKX0gJHtmb3JTdHJpbmd9YDtcbiAgICAgICAgICBjYXNlIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLmdyb3VwTWVtYmVyQWN0aW9uLkpPSU5FRDpcbiAgICAgICAgICAgIHJldHVybiBgJHtieVN0cmluZ30gJHtsb2NhbGl6ZShcIkpPSU5FRFwiKX1gO1xuICAgICAgICAgIGNhc2UgQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuZ3JvdXBNZW1iZXJBY3Rpb24uTEVGVDpcbiAgICAgICAgICAgIHJldHVybiBgJHtieVN0cmluZ30gJHtsb2NhbGl6ZShcIkxFRlRcIil9YDtcbiAgICAgICAgICBjYXNlIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLmdyb3VwTWVtYmVyQWN0aW9uLktJQ0tFRDpcbiAgICAgICAgICAgIHJldHVybiBgJHtieVN0cmluZ30gJHtsb2NhbGl6ZShcIktJQ0tFRFwiKX0gJHtmb3JTdHJpbmd9YDtcbiAgICAgICAgICBjYXNlIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLmdyb3VwTWVtYmVyQWN0aW9uLkJBTk5FRDpcbiAgICAgICAgICAgIHJldHVybiBgJHtieVN0cmluZ30gJHtsb2NhbGl6ZShcIkJBTk5FRFwiKX0gJHtmb3JTdHJpbmd9YDtcbiAgICAgICAgICBjYXNlIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLmdyb3VwTWVtYmVyQWN0aW9uLlVOQkFOTkVEOlxuICAgICAgICAgICAgcmV0dXJuIGAke2J5U3RyaW5nfSAke2xvY2FsaXplKFwiVU5CQU5ORURcIil9ICR7Zm9yU3RyaW5nfWA7XG4gICAgICAgICAgY2FzZSBDb21ldENoYXRVSUtpdENvbnN0YW50cy5ncm91cE1lbWJlckFjdGlvbi5TQ09QRV9DSEFOR0U6XG4gICAgICAgICAgICByZXR1cm4gYCR7YnlTdHJpbmd9ICR7bG9jYWxpemUoXG4gICAgICAgICAgICAgIFwiTUFERVwiXG4gICAgICAgICAgICApfSAke2ZvclN0cmluZ30gJHttZXNzYWdlLmdldE5ld1Njb3BlKCl9YDtcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIFwiXCI7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBcIlwiO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiBcIlwiO1xuICAgIH1cbiAgfVxuXG4gIGltYWdlQXR0YWNobWVudE9wdGlvbih0aGVtZTogQ29tZXRDaGF0VGhlbWUpOiBDb21ldENoYXRNZXNzYWdlQ29tcG9zZXJBY3Rpb24ge1xuICAgIHJldHVybiBuZXcgQ29tZXRDaGF0TWVzc2FnZUNvbXBvc2VyQWN0aW9uKHtcbiAgICAgIGlkOiBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlVHlwZXMuaW1hZ2UsXG4gICAgICB0aXRsZTogbG9jYWxpemUoXCJBVFRBQ0hfSU1BR0VcIiksXG4gICAgICBpY29uVVJMOiBcImFzc2V0cy9waG90b2xpYnJhcnkuc3ZnXCIsXG4gICAgICBvbkNsaWNrOiBudWxsLFxuICAgICAgaWNvblRpbnQ6IHRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NzAwKCksXG4gICAgICB0aXRsZUZvbnQ6IGZvbnRIZWxwZXIodGhlbWUudHlwb2dyYXBoeS5zdWJ0aXRsZTEpLFxuICAgICAgdGl0bGVDb2xvcjogdGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ3MDAoKSxcbiAgICAgIGJvcmRlclJhZGl1czogXCI4cHhcIixcbiAgICAgIGJhY2tncm91bmQ6IHRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50MTAwKCksXG4gICAgfSk7XG4gIH1cbiAgdmlkZW9BdHRhY2htZW50T3B0aW9uKHRoZW1lOiBDb21ldENoYXRUaGVtZSk6IENvbWV0Q2hhdE1lc3NhZ2VDb21wb3NlckFjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBDb21ldENoYXRNZXNzYWdlQ29tcG9zZXJBY3Rpb24oe1xuICAgICAgaWQ6IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VUeXBlcy52aWRlbyxcbiAgICAgIHRpdGxlOiBsb2NhbGl6ZShcIkFUVEFDSF9WSURFT1wiKSxcbiAgICAgIGljb25VUkw6IFwiYXNzZXRzL3ZpZGVvLnN2Z1wiLFxuICAgICAgb25DbGljazogbnVsbCxcbiAgICAgIGljb25UaW50OiB0aGVtZS5wYWxldHRlLmdldEFjY2VudDcwMCgpLFxuICAgICAgdGl0bGVGb250OiBmb250SGVscGVyKHRoZW1lLnR5cG9ncmFwaHkuc3VidGl0bGUxKSxcbiAgICAgIHRpdGxlQ29sb3I6IHRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NzAwKCksXG4gICAgICBib3JkZXJSYWRpdXM6IFwiOHB4XCIsXG4gICAgICBiYWNrZ3JvdW5kOiB0aGVtZS5wYWxldHRlLmdldEFjY2VudDEwMCgpLFxuICAgIH0pO1xuICB9XG4gIGF1ZGlvQXR0YWNobWVudE9wdGlvbih0aGVtZTogQ29tZXRDaGF0VGhlbWUpOiBDb21ldENoYXRNZXNzYWdlQ29tcG9zZXJBY3Rpb24ge1xuICAgIHJldHVybiBuZXcgQ29tZXRDaGF0TWVzc2FnZUNvbXBvc2VyQWN0aW9uKHtcbiAgICAgIGlkOiBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlVHlwZXMuYXVkaW8sXG4gICAgICB0aXRsZTogbG9jYWxpemUoXCJBVFRBQ0hfQVVESU9cIiksXG4gICAgICBpY29uVVJMOiBcImFzc2V0cy9hdWRpby1maWxlLnN2Z1wiLFxuICAgICAgb25DbGljazogbnVsbCxcbiAgICAgIGljb25UaW50OiB0aGVtZS5wYWxldHRlLmdldEFjY2VudDcwMCgpLFxuICAgICAgdGl0bGVGb250OiBmb250SGVscGVyKHRoZW1lLnR5cG9ncmFwaHkuc3VidGl0bGUxKSxcbiAgICAgIHRpdGxlQ29sb3I6IHRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NzAwKCksXG4gICAgICBib3JkZXJSYWRpdXM6IFwiOHB4XCIsXG4gICAgICBiYWNrZ3JvdW5kOiB0aGVtZS5wYWxldHRlLmdldEFjY2VudDEwMCgpLFxuICAgIH0pO1xuICB9XG4gIGZpbGVBdHRhY2htZW50T3B0aW9uKHRoZW1lOiBDb21ldENoYXRUaGVtZSk6IENvbWV0Q2hhdE1lc3NhZ2VDb21wb3NlckFjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBDb21ldENoYXRNZXNzYWdlQ29tcG9zZXJBY3Rpb24oe1xuICAgICAgaWQ6IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VUeXBlcy5maWxlLFxuICAgICAgdGl0bGU6IGxvY2FsaXplKFwiQVRUQUNIX0ZJTEVcIiksXG4gICAgICBpY29uVVJMOiBcImFzc2V0cy9hdHRhY2htZW50LWZpbGUuc3ZnXCIsXG4gICAgICBvbkNsaWNrOiBudWxsLFxuICAgICAgaWNvblRpbnQ6IHRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NzAwKCksXG4gICAgICB0aXRsZUZvbnQ6IGZvbnRIZWxwZXIodGhlbWUudHlwb2dyYXBoeS5zdWJ0aXRsZTEpLFxuICAgICAgdGl0bGVDb2xvcjogdGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ3MDAoKSxcbiAgICAgIGJvcmRlclJhZGl1czogXCI4cHhcIixcbiAgICAgIGJhY2tncm91bmQ6IHRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50MTAwKCksXG4gICAgfSk7XG4gIH1cbiAgZ2V0QXR0YWNobWVudE9wdGlvbnMoXG4gICAgdGhlbWU6IENvbWV0Q2hhdFRoZW1lLFxuICAgIHVzZXI/OiBDb21ldENoYXQuVXNlcixcbiAgICBncm91cD86IENvbWV0Q2hhdC5Hcm91cCxcbiAgICBpZD86IENvbXBvc2VySWRcbiAgKTogQ29tZXRDaGF0TWVzc2FnZUNvbXBvc2VyQWN0aW9uW10ge1xuICAgIGxldCBhY3Rpb25zOiBBcnJheTxDb21ldENoYXRNZXNzYWdlQ29tcG9zZXJBY3Rpb24+ID0gW1xuICAgICAgdGhpcy5pbWFnZUF0dGFjaG1lbnRPcHRpb24odGhlbWUpLFxuICAgICAgdGhpcy52aWRlb0F0dGFjaG1lbnRPcHRpb24odGhlbWUpLFxuICAgICAgdGhpcy5hdWRpb0F0dGFjaG1lbnRPcHRpb24odGhlbWUpLFxuICAgICAgdGhpcy5maWxlQXR0YWNobWVudE9wdGlvbih0aGVtZSksXG4gICAgXTtcbiAgICByZXR1cm4gYWN0aW9ucztcbiAgfVxuICBnZXRMYXN0Q29udmVyc2F0aW9uTWVzc2FnZShcbiAgICBjb252ZXJzYXRpb246IENvbWV0Q2hhdC5Db252ZXJzYXRpb24sXG4gICAgbG9nZ2VkSW5Vc2VyOiBDb21ldENoYXQuVXNlclxuICApOiBzdHJpbmcge1xuICAgIHJldHVybiBDb252ZXJzYXRpb25VdGlscy5nZXRMYXN0Q29udmVyc2F0aW9uTWVzc2FnZShcbiAgICAgIGNvbnZlcnNhdGlvbixcbiAgICAgIGxvZ2dlZEluVXNlclxuICAgICk7XG4gIH1cblxuICBnZXRBSU9wdGlvbnMoXG4gICAgdGhlbWU6IENvbWV0Q2hhdFRoZW1lLFxuICAgIGlkPzogTWFwPFN0cmluZywgYW55PlxuICApOiBBcnJheTxDb21ldENoYXRNZXNzYWdlQ29tcG9zZXJBY3Rpb24gfCBDb21ldENoYXRBY3Rpb25zVmlldz4ge1xuICAgIHJldHVybiBbXTtcbiAgfVxufVxuZXhwb3J0IHR5cGUgQ29tcG9zZXJJZCA9IHtcbiAgcGFyZW50TWVzc2FnZUlkOiBudW1iZXIgfCBudWxsO1xuICB1c2VyOiBzdHJpbmcgfCBudWxsO1xuICBncm91cDogc3RyaW5nIHwgbnVsbDtcbn07XG4iXX0=
|