@cometchat/chat-uikit-angular 4.0.0-beta.1.4 → 4.0.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/Calls/CallingExtension.d.ts +4 -3
- package/Calls/CallingExtensionDecorator.d.ts +0 -1
- package/Calls/CometChatCallButtons/cometchat-call-buttons/cometchat-call-buttons.component.d.ts +4 -3
- package/Calls/CometChatIncomingCall/cometchat-incoming-call/cometchat-incoming-call.component.d.ts +4 -3
- package/Calls/CometChatOngoingCall/cometchat-ongoing-call/cometchat-ongoing-call.component.d.ts +14 -6
- package/Calls/CometChatOutgoingCall/cometchat-outgoing-call/cometchat-outgoing-call.component.d.ts +0 -1
- package/CometChatAddMembers/cometchat-add-members/cometchat-add-members.component.d.ts +5 -5
- package/CometChatBannedMembers/cometchat-banned-members/cometchat-banned-members.component.d.ts +6 -5
- package/CometChatContacts/cometchat-contacts/cometchat-contacts.component.d.ts +65 -0
- package/CometChatContacts/cometchat-contacts.module.d.ts +12 -0
- package/CometChatConversations/cometchat-conversations/cometchat-conversations.component.d.ts +21 -15
- package/CometChatConversationsWithMessages/cometchat-conversations-with-messages/cometchat-conversations-with-messages.component.d.ts +13 -4
- package/CometChatConversationsWithMessages/cometchat-conversations-with-messages.module.d.ts +2 -1
- package/CometChatDetails/cometchat-details/cometchat-details.component.d.ts +7 -7
- package/CometChatGroupMembers/cometchat-group-members/cometchat-group-members.component.d.ts +14 -12
- package/CometChatGroups/cometchat-groups/cometchat-groups.component.d.ts +12 -6
- package/CometChatGroupsWithMessages/cometchat-groups-with-messages/cometchat-groups-with-messages.component.d.ts +6 -4
- package/CometChatList/cometchat-list.component.d.ts +2 -1
- package/CometChatMessageBubble/cometchat-message-bubble/cometchat-message-bubble.component.d.ts +2 -2
- package/CometChatMessageComposer/cometchat-message-composer/cometchat-message-composer.component.d.ts +23 -6
- package/CometChatMessageHeader/cometchat-message-header/cometchat-message-header.component.d.ts +1 -1
- package/CometChatMessageInformation/cometchat-message-information/cometchat-message-information.component.d.ts +95 -0
- package/CometChatMessageInformation/cometchat-message-information.module.d.ts +10 -0
- package/CometChatMessageList/cometchat-message-list/cometchat-message-list.component.d.ts +45 -26
- package/CometChatMessageList/cometchat-message-list.module.d.ts +3 -1
- package/CometChatMessages/cometchat-messages/cometchat-messages.component.d.ts +5 -3
- package/CometChatThreadedMessages/cometchat-threaded-messages/cometchat-threaded-messages.component.d.ts +0 -1
- package/CometChatTransferOwnership/cometchat-transfer-ownership/cometchat-transfer-ownership.component.d.ts +3 -3
- package/CometChatUsers/cometchat-users/cometchat-users.component.d.ts +11 -5
- package/CometChatUsersWithMessages/cometchat-users-with-messages/cometchat-users-with-messages.component.d.ts +2 -2
- package/Extensions/CollaborativeDocument/CollaborativeDocumentExtension.d.ts +4 -8
- package/Extensions/CollaborativeDocument/CollaborativeDocumentExtensionDecorator.d.ts +1 -4
- package/Extensions/CollaborativeWhiteboard/CollaborativeWhiteboardExtension.d.ts +4 -8
- package/Extensions/CollaborativeWhiteboard/CollaborativeWhiteboardExtensionDecorator.d.ts +1 -4
- package/Extensions/ImageModeration/ImageModerationExtension.d.ts +4 -4
- package/Extensions/LinkPreviewExtension/LinkPreviewExtension.d.ts +4 -4
- package/Extensions/MessageTranslation/MessageTranslationExtension.d.ts +4 -8
- package/Extensions/MessageTranslation/MessageTranslationExtensionDecorator.d.ts +1 -4
- package/Extensions/PollsExtension/PollsExtension.d.ts +4 -4
- package/Extensions/PollsExtension/PollsExtensionDecorator.d.ts +0 -1
- package/Extensions/Reactions/ReactionExtension.d.ts +4 -4
- package/Extensions/Reactions/ReactionExtensionDecorator.d.ts +0 -1
- package/Extensions/SmartReplies/SmartRepliesExtension.d.ts +4 -8
- package/Extensions/SmartReplies/SmartRepliesExtensionDecorator.d.ts +2 -2
- package/Extensions/Stickers/StickersExtension.d.ts +4 -8
- package/Extensions/Stickers/StickersExtensionDecorator.d.ts +2 -2
- package/Extensions/TextModerator/TextModeratorExtension.d.ts +4 -3
- package/Extensions/TextModerator/TextModeratorExtensionDecorator.d.ts +0 -1
- package/Extensions/ThumbnailGeneration/ThumbnailGenerationExtension.d.ts +4 -4
- package/README.md +4 -7
- package/Shared/CometChatUIkit/CometChatUIKit.d.ts +10 -6
- package/Shared/Framework/DataSource.d.ts +0 -1
- package/Shared/Framework/DataSourceDecorator.d.ts +0 -1
- package/Shared/Utils/ComeChatException.d.ts +1 -2
- package/Shared/Utils/MessageUtils.d.ts +2 -1
- package/Shared/Views/CometChatTabs/cometchat-tabs/cometchat-tabs.component.d.ts +38 -9
- package/Shared/Views/CometChatTabs/cometchat-tabs.module.d.ts +1 -5
- package/assets/.gitkeep +0 -0
- package/assets/Reply@2x.svg +9 -0
- package/assets/call.svg +0 -0
- package/assets/chats.svg +0 -0
- package/assets/group.svg +0 -0
- package/assets/message-privately.svg +6 -0
- package/assets/mic.svg +11 -0
- package/assets/new-chat.svg +13 -0
- package/assets/open-thread.svg +0 -0
- package/assets/pause-icon.svg +14 -0
- package/assets/play-icon.svg +18 -0
- package/assets/record-icon.svg +8 -0
- package/assets/start-conversation.svg +46 -0
- package/assets/stop.svg +1 -0
- package/assets/user.svg +0 -0
- package/esm2020/Calls/CallingExtension.mjs +7 -4
- package/esm2020/Calls/CallingExtensionDecorator.mjs +4 -4
- package/esm2020/Calls/CometChatCallButtons/cometchat-call-buttons/cometchat-call-buttons.component.mjs +58 -21
- package/esm2020/Calls/CometChatIncomingCall/cometchat-incoming-call/cometchat-incoming-call.component.mjs +48 -17
- package/esm2020/Calls/CometChatOngoingCall/cometchat-ongoing-call/cometchat-ongoing-call.component.mjs +110 -9
- package/esm2020/Calls/CometChatOutgoingCall/cometchat-outgoing-call/cometchat-outgoing-call.component.mjs +9 -7
- package/esm2020/CometChatAddMembers/cometchat-add-members/cometchat-add-members.component.mjs +9 -6
- package/esm2020/CometChatBannedMembers/cometchat-banned-members/cometchat-banned-members.component.mjs +12 -7
- package/esm2020/CometChatContacts/cometchat-contacts/cometchat-contacts.component.mjs +273 -0
- package/esm2020/CometChatContacts/cometchat-contacts.module.mjs +23 -0
- package/esm2020/CometChatConversations/cometchat-conversations/cometchat-conversations.component.mjs +122 -65
- package/esm2020/CometChatConversationsWithMessages/cometchat-conversations-with-messages/cometchat-conversations-with-messages.component.mjs +105 -17
- package/esm2020/CometChatConversationsWithMessages/cometchat-conversations-with-messages.module.mjs +6 -2
- package/esm2020/CometChatDetails/cometchat-details/cometchat-details.component.mjs +13 -11
- package/esm2020/CometChatGroupMembers/cometchat-group-members/cometchat-group-members.component.mjs +45 -46
- package/esm2020/CometChatGroups/cometchat-groups/cometchat-groups.component.mjs +69 -28
- package/esm2020/CometChatGroupsWithMessages/cometchat-groups-with-messages/cometchat-groups-with-messages.component.mjs +60 -21
- package/esm2020/CometChatList/cometchat-list.component.mjs +8 -9
- package/esm2020/CometChatMessageBubble/cometchat-message-bubble/cometchat-message-bubble.component.mjs +4 -5
- package/esm2020/CometChatMessageComposer/cometchat-message-composer/cometchat-message-composer.component.mjs +200 -30
- package/esm2020/CometChatMessageHeader/cometchat-message-header/cometchat-message-header.component.mjs +4 -5
- package/esm2020/CometChatMessageInformation/cometchat-message-information/cometchat-message-information.component.mjs +288 -0
- package/esm2020/CometChatMessageInformation/cometchat-message-information.module.mjs +28 -0
- package/esm2020/CometChatMessageList/cometchat-message-list/cometchat-message-list.component.mjs +401 -185
- package/esm2020/CometChatMessageList/cometchat-message-list.module.mjs +12 -4
- package/esm2020/CometChatMessages/cometchat-messages/cometchat-messages.component.mjs +28 -15
- package/esm2020/CometChatThreadedMessages/cometchat-threaded-messages/cometchat-threaded-messages.component.mjs +3 -4
- package/esm2020/CometChatTransferOwnership/cometchat-transfer-ownership/cometchat-transfer-ownership.component.mjs +14 -15
- package/esm2020/CometChatUsers/cometchat-users/cometchat-users.component.mjs +72 -45
- package/esm2020/CometChatUsersWithMessages/cometchat-users-with-messages/cometchat-users-with-messages.component.mjs +21 -9
- package/esm2020/Extensions/CollaborativeDocument/CollaborativeDocumentExtension.mjs +7 -6
- package/esm2020/Extensions/CollaborativeDocument/CollaborativeDocumentExtensionDecorator.mjs +3 -4
- package/esm2020/Extensions/CollaborativeWhiteboard/CollaborativeWhiteboardExtension.mjs +7 -6
- package/esm2020/Extensions/CollaborativeWhiteboard/CollaborativeWhiteboardExtensionDecorator.mjs +3 -4
- package/esm2020/Extensions/ImageModeration/ImageModerationExtension.mjs +7 -5
- package/esm2020/Extensions/LinkPreviewExtension/LinkPreviewExtension.mjs +7 -5
- package/esm2020/Extensions/MessageTranslation/MessageTranslationExtension.mjs +7 -6
- package/esm2020/Extensions/MessageTranslation/MessageTranslationExtensionDecorator.mjs +2 -4
- package/esm2020/Extensions/PollsExtension/PollsExtension.mjs +7 -5
- package/esm2020/Extensions/PollsExtension/PollsExtensionDecorator.mjs +1 -1
- package/esm2020/Extensions/Reactions/ReactionExtension.mjs +7 -5
- package/esm2020/Extensions/Reactions/ReactionExtensionDecorator.mjs +3 -2
- package/esm2020/Extensions/SmartReplies/SmartRepliesExtension.mjs +7 -6
- package/esm2020/Extensions/SmartReplies/SmartRepliesExtensionDecorator.mjs +5 -7
- package/esm2020/Extensions/Stickers/StickersExtension.mjs +7 -10
- package/esm2020/Extensions/Stickers/StickersExtensionDecorator.mjs +5 -7
- package/esm2020/Extensions/TextModerator/TextModeratorExtension.mjs +16 -4
- package/esm2020/Extensions/TextModerator/TextModeratorExtensionDecorator.mjs +1 -1
- package/esm2020/Extensions/ThumbnailGeneration/ThumbnailGenerationExtension.mjs +7 -5
- package/esm2020/Shared/CometChatUIkit/CometChatUIKit.mjs +66 -32
- package/esm2020/Shared/Framework/DataSource.mjs +1 -1
- package/esm2020/Shared/Framework/DataSourceDecorator.mjs +1 -1
- package/esm2020/Shared/Utils/ComeChatException.mjs +2 -2
- package/esm2020/Shared/Utils/MessageUtils.mjs +36 -6
- package/esm2020/Shared/Views/CometChatTabs/cometchat-tabs/cometchat-tabs.component.mjs +61 -25
- package/esm2020/Shared/Views/CometChatTabs/cometchat-tabs.module.mjs +2 -18
- package/esm2020/public-api.mjs +8 -5
- package/fesm2015/cometchat-chat-uikit-angular.mjs +3658 -3185
- package/fesm2015/cometchat-chat-uikit-angular.mjs.map +1 -1
- package/fesm2020/cometchat-chat-uikit-angular.mjs +3639 -3164
- package/fesm2020/cometchat-chat-uikit-angular.mjs.map +1 -1
- package/package.json +5 -5
- package/public-api.d.ts +7 -4
- package/Calls/CometChatCallDetails/cometchat-call-details/cometchat-call-details.component.d.ts +0 -139
- package/Calls/CometChatCallDetails/cometchat-call-details.module.d.ts +0 -10
- package/Calls/CometChatCallHistory/cometchat-call-history/cometchat-call-history.component.d.ts +0 -125
- package/Calls/CometChatCallHistory/cometchat-call-history.module.d.ts +0 -10
- package/Calls/CometChatCallHistoryWithDetails/cometchat-call-history-with-details/cometchat-call-history-with-details.component.d.ts +0 -59
- package/Calls/CometChatCallHistoryWithDetails/cometchat-call-history-with-details.module.d.ts +0 -12
- package/esm2020/Calls/CometChatCallDetails/cometchat-call-details/cometchat-call-details.component.mjs +0 -452
- package/esm2020/Calls/CometChatCallDetails/cometchat-call-details.module.mjs +0 -31
- package/esm2020/Calls/CometChatCallHistory/cometchat-call-history/cometchat-call-history.component.mjs +0 -397
- package/esm2020/Calls/CometChatCallHistory/cometchat-call-history.module.mjs +0 -28
- package/esm2020/Calls/CometChatCallHistoryWithDetails/cometchat-call-history-with-details/cometchat-call-history-with-details.component.mjs +0 -143
- package/esm2020/Calls/CometChatCallHistoryWithDetails/cometchat-call-history-with-details.module.mjs +0 -39
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
2
|
+
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
|
3
|
+
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
|
4
|
+
viewBox="0 0 275.836 275.836" style="enable-background:new 0 0 275.836 275.836;" xml:space="preserve">
|
|
5
|
+
<g>
|
|
6
|
+
<path d="M191.344,20.922l-95.155,95.155c-0.756,0.756-1.297,1.699-1.565,2.734l-8.167,31.454c-0.534,2.059,0.061,4.246,1.565,5.751
|
|
7
|
+
c1.14,1.139,2.671,1.757,4.242,1.757c0.503,0,1.009-0.063,1.508-0.192l31.454-8.168c1.035-0.269,1.979-0.81,2.734-1.565
|
|
8
|
+
l95.153-95.153c0.002-0.002,0.004-0.003,0.005-0.004s0.003-0.004,0.004-0.005l19.156-19.156c2.344-2.343,2.344-6.142,0.001-8.484
|
|
9
|
+
L218.994,1.758C217.868,0.632,216.343,0,214.751,0c-1.591,0-3.117,0.632-4.242,1.758l-19.155,19.155
|
|
10
|
+
c-0.002,0.002-0.004,0.003-0.005,0.004S191.346,20.921,191.344,20.922z M120.631,138.208l-19.993,5.192l5.191-19.993l89.762-89.762
|
|
11
|
+
l14.801,14.802L120.631,138.208z M214.751,14.485l14.801,14.802l-10.675,10.675L204.076,25.16L214.751,14.485z"/>
|
|
12
|
+
<path d="M238.037,65.022c-3.313,0-6,2.687-6,6v192.813H43.799V34.417h111.063c3.313,0,6-2.687,6-6s-2.687-6-6-6H37.799
|
|
13
|
+
c-3.313,0-6,2.687-6,6v241.419c0,3.313,2.687,6,6,6h200.238c3.313,0,6-2.687,6-6V71.022
|
|
14
|
+
C244.037,67.709,241.351,65.022,238.037,65.022z"/>
|
|
15
|
+
</g>
|
|
16
|
+
<g>
|
|
17
|
+
</g>
|
|
18
|
+
<g>
|
|
19
|
+
</g>
|
|
20
|
+
<g>
|
|
21
|
+
</g>
|
|
22
|
+
<g>
|
|
23
|
+
</g>
|
|
24
|
+
<g>
|
|
25
|
+
</g>
|
|
26
|
+
<g>
|
|
27
|
+
</g>
|
|
28
|
+
<g>
|
|
29
|
+
</g>
|
|
30
|
+
<g>
|
|
31
|
+
</g>
|
|
32
|
+
<g>
|
|
33
|
+
</g>
|
|
34
|
+
<g>
|
|
35
|
+
</g>
|
|
36
|
+
<g>
|
|
37
|
+
</g>
|
|
38
|
+
<g>
|
|
39
|
+
</g>
|
|
40
|
+
<g>
|
|
41
|
+
</g>
|
|
42
|
+
<g>
|
|
43
|
+
</g>
|
|
44
|
+
<g>
|
|
45
|
+
</g>
|
|
46
|
+
</svg>
|
package/assets/stop.svg
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="20px" height="20px"><path d="M 12 2 C 6.477 2 2 6.477 2 12 C 2 17.523 6.477 22 12 22 C 17.523 22 22 17.523 22 12 C 22 6.477 17.523 2 12 2 z M 12 4 C 16.411 4 20 7.589 20 12 C 20 16.411 16.411 20 12 20 C 7.589 20 4 16.411 4 12 C 4 7.589 7.589 4 12 4 z M 8 8 L 8 16 L 16 16 L 16 8 L 8 8 z"/></svg>
|
package/assets/user.svg
CHANGED
|
File without changes
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { ChatConfigurator } from '../Shared/Framework/ChatConfigurator';
|
|
2
|
+
import { ExtensionsDataSource } from '@cometchat/uikit-shared';
|
|
2
3
|
import { CallingExtensionDecorator } from './CallingExtensionDecorator';
|
|
3
|
-
export class CallingExtension {
|
|
4
|
-
|
|
4
|
+
export class CallingExtension extends ExtensionsDataSource {
|
|
5
|
+
getExtensionId() {
|
|
6
|
+
return '';
|
|
7
|
+
}
|
|
8
|
+
addExtension() {
|
|
5
9
|
}
|
|
6
|
-
// override enable method from ExtensionsDataSource interface
|
|
7
10
|
enable() {
|
|
8
11
|
ChatConfigurator.enable((dataSource) => new CallingExtensionDecorator(dataSource));
|
|
9
12
|
}
|
|
10
13
|
}
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FsbGluZ0V4dGVuc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NoYXQtdWlraXQtYW5ndWxhci9zcmMvQ2FsbHMvQ2FsbGluZ0V4dGVuc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUV4RSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQTtBQUM1RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUV4RSxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsb0JBQW9CO0lBRXZELGNBQWM7UUFDWCxPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFDQSxZQUFZO0lBRWIsQ0FBQztJQUNRLE1BQU07UUFFYixnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxVQUFzQixFQUFFLEVBQUUsQ0FDakQsSUFBSSx5QkFBeUIsQ0FBQyxVQUFVLENBQUMsQ0FDMUMsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHsgQ2hhdENvbmZpZ3VyYXRvciB9IGZyb20gJy4uL1NoYXJlZC9GcmFtZXdvcmsvQ2hhdENvbmZpZ3VyYXRvcic7XG5pbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAnLi4vU2hhcmVkL0ZyYW1ld29yay9EYXRhU291cmNlJztcbmltcG9ydCB7RXh0ZW5zaW9uc0RhdGFTb3VyY2V9IGZyb20gJ0Bjb21ldGNoYXQvdWlraXQtc2hhcmVkJ1xuaW1wb3J0IHsgQ2FsbGluZ0V4dGVuc2lvbkRlY29yYXRvciB9IGZyb20gJy4vQ2FsbGluZ0V4dGVuc2lvbkRlY29yYXRvcic7XG5cbmV4cG9ydCBjbGFzcyBDYWxsaW5nRXh0ZW5zaW9uIGV4dGVuZHMgRXh0ZW5zaW9uc0RhdGFTb3VyY2Uge1xuXG4gICBnZXRFeHRlbnNpb25JZCgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuICcnO1xuICB9XG4gICBhZGRFeHRlbnNpb24oKTogdm9pZCB7XG5cbiAgfVxuICBvdmVycmlkZSBlbmFibGUoKTogdm9pZCB7XG5cbiAgICBDaGF0Q29uZmlndXJhdG9yLmVuYWJsZSgoZGF0YVNvdXJjZTogRGF0YVNvdXJjZSkgPT5cbiAgICAgIG5ldyBDYWxsaW5nRXh0ZW5zaW9uRGVjb3JhdG9yKGRhdGFTb3VyY2UpXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CometChat } from "@cometchat
|
|
1
|
+
import { CometChat } from "@cometchat/chat-sdk-javascript";
|
|
2
2
|
import { CometChatUIKitConstants, CometChatMessageTemplate, localize } from "@cometchat/uikit-resources";
|
|
3
3
|
import { CallingDetailsUtils } from "@cometchat/uikit-shared";
|
|
4
4
|
import { ChatConfigurator } from "../Shared/Framework/ChatConfigurator";
|
|
@@ -96,9 +96,9 @@ export class CallingExtensionDecorator extends DataSourceDecorator {
|
|
|
96
96
|
let call = conversation.getLastMessage();
|
|
97
97
|
actionMessage = CallingDetailsUtils.getCallStatus(call, loggedInUser);
|
|
98
98
|
}
|
|
99
|
-
else if (conversation
|
|
99
|
+
else if (conversation?.getLastMessage() && conversation.getLastMessage().type == CometChatUIKitConstants.calls.meeting) {
|
|
100
100
|
let message = conversation.getLastMessage();
|
|
101
|
-
if (!message.getSender() || message
|
|
101
|
+
if (!message.getSender() || message?.getSender()?.getUid() == loggedInUser.getUid()) {
|
|
102
102
|
actionMessage = localize("YOU_INITIATED_GROUP_CALL");
|
|
103
103
|
}
|
|
104
104
|
else {
|
|
@@ -111,4 +111,4 @@ export class CallingExtensionDecorator extends DataSourceDecorator {
|
|
|
111
111
|
return actionMessage;
|
|
112
112
|
}
|
|
113
113
|
}
|
|
114
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FsbGluZ0V4dGVuc2lvbkRlY29yYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NoYXQtdWlraXQtYW5ndWxhci9zcmMvQ2FsbHMvQ2FsbGluZ0V4dGVuc2lvbkRlY29yYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLHdCQUF3QixFQUFrRCxRQUFRLEVBQWMsTUFBTSw0QkFBNEIsQ0FBQztBQUNySyxPQUFPLEVBQUUsbUJBQW1CLEVBQXNFLE1BQU0seUJBQXlCLENBQUM7QUFDbEksT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFeEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFHOUUsTUFBTSxPQUFPLHlCQUEwQixTQUFRLG1CQUFtQjtJQUM5RCxZQUFZLFVBQXNCO1FBQzlCLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUE7SUFDbEIsQ0FBQztJQUNELHFDQUFxQztJQUNyQyxRQUFRO1FBQ04sSUFBSSxVQUFVLEdBQVcsaUJBQWlCLENBQUM7UUFDM0MsU0FBUyxDQUFDLGdCQUFnQixDQUMxQixVQUFVLEVBQ1YsSUFBSSxTQUFTLENBQUMsYUFBYSxDQUFDO1lBQzFCLGFBQWEsRUFBRSxHQUFHLEVBQUU7Z0JBQ25CLElBQUksSUFBSSxHQUFtQixTQUFTLENBQUMsYUFBYSxFQUFFLENBQUE7Z0JBQ2pELElBQUcsSUFBSSxFQUFDO29CQUNOLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUE7aUJBRXZDO3FCQUNHO29CQUNGLE9BQU07aUJBQ1A7WUFDTCxDQUFDO1lBQ0QsYUFBYSxFQUFFLENBQUMsS0FBbUMsRUFBRSxFQUFF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LE9BQU8sRUFBQztZQUNySCxJQUFJLE9BQU8sR0FBMkIsWUFBWSxDQUFDLGNBQWMsRUFBRSxDQUFBO1lBQ25FLElBQUcsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLElBQUksT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDLE1BQU0sRUFBRSxJQUFJLFlBQVksQ0FBQyxNQUFNLEVBQUUsRUFBQztnQkFDL0UsYUFBYSxHQUFHLFFBQVEsQ0FBQywwQkFBMEIsQ0FBQyxDQUFBO2FBQ3JEO2lCQUNJO2dCQUNILGFBQWEsR0FBRyxHQUFHLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxPQUFPLEVBQUUsS0FBSyxRQUFRLENBQUMsc0JBQXNCLENBQUMsRUFBRSxDQUFBO2FBQ3hGO1NBRUY7YUFDRztZQUNGLGFBQWEsR0FBRyxLQUFLLENBQUMsMEJBQTBCLENBQUMsWUFBWSxFQUFDLFlBQVksQ0FBQyxDQUFDO1NBQzdFO1FBQ0QsT0FBTyxhQUFhLENBQUE7SUFFckIsQ0FBQztDQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tZXRDaGF0IH0gZnJvbSBcIkBjb21ldGNoYXQtcHJvL2NoYXRcIjtcbmltcG9ydCB7IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLCBDb21ldENoYXRNZXNzYWdlVGVtcGxhdGUsIENvbWV0Q2hhdFRoZW1lLCBDb21ldENoYXRNZXNzYWdlQ29tcG9zZXJBY3Rpb24sIGxvY2FsaXplLCBmb250SGVscGVyIH0gZnJvbSBcIkBjb21ldGNoYXQvdWlraXQtcmVzb3VyY2VzXCI7XG5pbXBvcnQgeyBDYWxsaW5nRGV0YWlsc1V0aWxzLCBDb2xsYWJvcmF0aXZlRG9jdW1lbnRDb25maWd1cmF0aW9uLCBDb2xsYWJvcmF0aXZlRG9jdW1lbnRDb25zdGFudHMgfSBmcm9tIFwiQGNvbWV0Y2hhdC91aWtpdC1zaGFyZWRcIjtcbmltcG9ydCB7IENoYXRDb25maWd1cmF0b3IgfSBmcm9tIFwiLi4vU2hhcmVkL0ZyYW1ld29yay9DaGF0Q29uZmlndXJhdG9yXCI7XG5pbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSBcIi4uL1NoYXJlZC9GcmFtZXdvcmsvRGF0YVNvdXJjZVwiO1xuaW1wb3J0IHsgRGF0YVNvdXJjZURlY29yYXRvciB9IGZyb20gXCIuLi9TaGFyZWQvRnJhbWV3b3JrL0RhdGFTb3VyY2VEZWNvcmF0b3JcIjtcbmltcG9ydCB7ICB9IGZyb20gXCJAY29tZXRjaGF0L3Vpa2l0LXNoYXJlZFwiO1xuXG5leHBvcnQgY2xhc3MgQ2FsbGluZ0V4dGVuc2lvbkRlY29yYXRvciBleHRlbmRzIERhdGFTb3VyY2VEZWNvcmF0b3Ige1xuICAgIGNvbnN0cnVjdG9yKGRhdGFTb3VyY2U6IERhdGFTb3VyY2UpIHtcbiAgICAgICAgc3VwZXIoZGF0YVNvdXJjZSk7XG4gICAgICAgdGhpcy5vbkxvZ291dCgpXG4gICAgfVxuICAgIC8vIGVuZCBhY3RpdmUgY2FsbCB3aGVuIHVzZXIgbG9ncyBvdXRcbiAgICBvbkxvZ291dCgpe1xuICAgICAgdmFyIGxpc3RlbmVySUQ6IHN0cmluZyA9IFwibG9nb3V0X2xpc3RlbmVyXCI7XG4gICAgICBDb21ldENoYXQuYWRkTG9naW5MaXN0ZW5lcihcbiAgICAgIGxpc3RlbmVySUQsXG4gICAgICBuZXcgQ29tZXRDaGF0LkxvZ2luTGlzdGVuZXIoe1xuICAgICAgICBsb2dvdXRTdWNjZXNzOiAoKSA9PiB7XG4gICAgICAgICBsZXQgY2FsbDpDb21ldENoYXQuQ2FsbCA9ICBDb21ldENoYXQuZ2V0QWN0aXZlQ2FsbCgpXG4gICAgICAgICAgICBpZihjYWxsKXtcbiAgICAgICAgICAgICAgQ29tZXRDaGF0LmVuZENhbGwoY2FsbC5nZXRTZXNzaW9uSWQoKSlcblxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZXtcbiAgICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGxvZ291dEZhaWx1cmU6IChlcnJvcjogQ29tZXRDaGF0LkNvbWV0Q2hhdEV4Y2VwdGlvbikgPT4ge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJMb2dpbkxpc3RlbmVyIDo6IGxvZ291dEZhaWx1cmVcIiwgZXJyb3IpO1xuICAgICAgICB9XG4gICAgfSlcbik7XG4gICAgfVxuICAgIG92ZXJyaWRlIGdldEFsbE1lc3NhZ2VUeXBlcygpOiBzdHJpbmdbXSB7XG4gICAgICAgIGNvbnN0IHR5cGVzID0gc3VwZXIuZ2V0QWxsTWVzc2FnZVR5cGVzKCk7XG4gICAgICAgIGlmICghdHlwZXMuaW5jbHVkZXMoIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLmNhbGxzLm1lZXRpbmcpKSB7XG4gICAgICAgICAgICB0eXBlcy5wdXNoKCBDb21ldENoYXRVSUtpdENvbnN0YW50cy5jYWxscy5tZWV0aW5nKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXR5cGVzLmluY2x1ZGVzKENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VUeXBlcy5hdWRpbykpIHtcbiAgICAgICAgICAgIHR5cGVzLnB1c2goQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVR5cGVzLmF1ZGlvKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXR5cGVzLmluY2x1ZGVzKENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VUeXBlcy52aWRlbykpIHtcbiAgICAgICAgICAgIHR5cGVzLnB1c2goQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVR5cGVzLnZpZGVvKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHlwZXM7XG4gICAgfVxuICAgIG92ZXJyaWRlIGdldElkKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBcImNhbGxpbmdcIjtcbiAgICAgIH1cbiAgICBvdmVycmlkZSBnZXRBbGxNZXNzYWdlQ2F0ZWdvcmllcygpOiBzdHJpbmdbXSB7XG4gICAgICAgIGNvbnN0IGNhdGVnb3JpZXMgPSBzdXBlci5nZXRBbGxNZXNzYWdlQ2F0ZWdvcmllcygpO1xuICAgICAgICBpZiAoIWNhdGVnb3JpZXMuaW5jbHVkZXMoQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZUNhdGVnb3J5LmNhbGwpKSB7XG4gICAgICAgICAgICBjYXRlZ29yaWVzLnB1c2goQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZUNhdGVnb3J5LmNhbGwpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghY2F0ZWdvcmllcy5pbmNsdWRlcyhDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlQ2F0ZWdvcnkuY3VzdG9tKSkge1xuICAgICAgICAgICAgY2F0ZWdvcmllcy5wdXNoKENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VDYXRlZ29yeS5jdXN0b20pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjYXRlZ29yaWVzO1xuICAgIH1cbiAgICBjaGVja0lmVGVtcGxhdGVUeXBlRXhpc3QodGVtcGxhdGU6Q29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlW10sIHR5cGU6c3RyaW5nKTpib29sZWFue1xuICAgICAgICByZXR1cm4gdGVtcGxhdGUuc29tZShvYmogPT4gb2JqLnR5cGUgPT09IHR5cGUpXG4gICAgICB9XG4gICAgICBjaGVja0lmVGVtcGxhdGVDYXRlZ29yeUV4aXN0KHRlbXBsYXRlOkNvbWV0Q2hhdE1lc3NhZ2VUZW1wbGF0ZVtdLCBjYXRlZ29yeTpzdHJpbmcpOmJvb2xlYW57XG4gICAgICAgIHJldHVybiB0ZW1wbGF0ZS5zb21lKG9iaiA9PiBvYmouY2F0ZWdvcnkgPT09IGNhdGVnb3J5KVxuICAgICAgfVxuICAgIG92ZXJyaWRlIGdldEFsbE1lc3NhZ2VUZW1wbGF0ZXMoKTogQ29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlW10ge1xuICAgICAgICBjb25zdCB0ZW1wbGF0ZXMgPSBzdXBlci5nZXRBbGxNZXNzYWdlVGVtcGxhdGVzKCk7XG4gICAgICAgIGlmKCF0aGlzLmNoZWNrSWZUZW1wbGF0ZVR5cGVFeGlzdCh0ZW1wbGF0ZXMsIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLmNhbGxzLm1lZXRpbmcpKXtcbiAgICAgICAgICAgICB0ZW1wbGF0ZXMucHVzaCh0aGlzLmdldERpcmVjdENhbGxUZW1wbGF0ZSgpKVxuICAgICAgICAgICB9XG4gICAgICAgICAgIGlmKCF0aGlzLmNoZWNrSWZUZW1wbGF0ZUNhdGVnb3J5RXhpc3QodGVtcGxhdGVzLENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VDYXRlZ29yeS5jYWxsKSl7XG4gICAgICAgICAgICB0ZW1wbGF0ZXMucHVzaCguLi50aGlzLmdldERlZmF1bHRDYWxsVGVtcGxhdGUoKSlcbiAgICAgICAgICB9XG4gICAgICAgICAgICAgcmV0dXJuIHRlbXBsYXRlc1xuXG4gICAgfVxuICAgIGdldERpcmVjdENhbGxUZW1wbGF0ZSgpOkNvbWV0Q2hhdE1lc3NhZ2VUZW1wbGF0ZXtcbiAgICByZXR1cm4gbmV3IENvbWV0Q2hhdE1lc3NhZ2VUZW1wbGF0ZSh7XG4gICAgICB0eXBlOiBDb21ldENoYXRVSUtpdENvbnN0YW50cy5jYWxscy5tZWV0aW5nLFxuICAgICAgY2F0ZWdvcnk6Q29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZUNhdGVnb3J5LmN1c3RvbSxcbiAgICAgIG9wdGlvbnM6IChsb2dnZWRJblVzZXI6IENvbWV0Q2hhdC5Vc2VyLCBtZXNzYWdlT2JqZWN0OiBDb21ldENoYXQuQmFzZU1lc3NhZ2UsIHRoZW1lOiBDb21ldENoYXRUaGVtZSwgZ3JvdXA/OiBDb21ldENoYXQuR3JvdXApPT57XG4gICAgICAgIHJldHVybiBDaGF0Q29uZmlndXJhdG9yLmdldERhdGFTb3VyY2UoKS5nZXRDb21tb25PcHRpb25zKGxvZ2dlZEluVXNlciwgbWVzc2FnZU9iamVjdCwgdGhlbWUsIGdyb3VwKVxuICAgICAgIH1cbiAgICB9KVxuICAgIH1cbiAgICBnZXREZWZhdWx0Q2FsbFRlbXBsYXRlKCk6Q29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlW117XG4gICAgICBsZXQgdGVtcGxhdGVzOkNvbWV0Q2hhdE1lc3NhZ2VUZW1wbGF0ZVtdID0gW1xuICAgICAgICBuZXcgQ29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlKHtcbiAgICAgICAgICAgIHR5cGU6Q29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVR5cGVzLmF1ZGlvICxcbiAgICAgICAgICAgIGNhdGVnb3J5OkNvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VDYXRlZ29yeS5jYWxsLFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIG5ldyBDb21ldENoYXRNZXNzYWdlVGVtcGxhdGUoe1xuICAgICAgICAgICAgdHlwZTpDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlVHlwZXMudmlkZW8sXG4gICAgICAgICAgICBjYXRlZ29yeTpDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlQ2F0ZWdvcnkuY2FsbCxcbiAgICAgICAgICB9KVxuXG4gICAgICBdXG4gICAgICByZXR1cm4gdGVtcGxhdGVzXG4gICAgfVxuICAgcHVibGljIG92ZXJyaWRlIGdldExhc3RDb252ZXJzYXRpb25NZXNzYWdlKGNvbnZlcnNhdGlvbjogQ29tZXRDaGF0LkNvbnZlcnNhdGlvbiwgbG9nZ2VkSW5Vc2VyOiBDb21ldENoYXQuVXNlcik6IHN0cmluZyB7XG4gICAgIGxldCBhY3Rpb25NZXNzYWdlOnN0cmluZyA9IFwiXCI7XG5cbiAgICBpZihjb252ZXJzYXRpb24uZ2V0TGFzdE1lc3NhZ2UoKSAmJiBjb252ZXJzYXRpb24uZ2V0TGFzdE1lc3NhZ2UoKS5jYXRlZ29yeSA9PSBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlQ2F0ZWdvcnkuY2FsbCl7XG4gICAgICBsZXQgY2FsbDpDb21ldENoYXQuQ2FsbCA9Y29udmVyc2F0aW9uLmdldExhc3RNZXNzYWdlKCk7XG5cbiAgICAgIGFjdGlvbk1lc3NhZ2UgPSBDYWxsaW5nRGV0YWlsc1V0aWxzLmdldENhbGxTdGF0dXMoY2FsbCxsb2dnZWRJblVzZXIpXG4gICAgfVxuICAgIGVsc2UgaWYgKGNvbnZlcnNhdGlvbi5nZXRMYXN0TWVzc2FnZSgpICYmIGNvbnZlcnNhdGlvbi5nZXRMYXN0TWVzc2FnZSgpLnR5cGUgPT0gIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLmNhbGxzLm1lZXRpbmcpe1xuICAgICAgbGV0IG1lc3NhZ2U6Q29tZXRDaGF0LkN1c3RvbU1lc3NhZ2UgPSBjb252ZXJzYXRpb24uZ2V0TGFzdE1lc3NhZ2UoKVxuICAgICAgaWYoIW1lc3NhZ2UuZ2V0U2VuZGVyKCkgfHwgbWVzc2FnZS5nZXRTZW5kZXIoKS5nZXRVaWQoKSA9PSBsb2dnZWRJblVzZXIuZ2V0VWlkKCkpe1xuICAgICAgICBhY3Rpb25NZXNzYWdlID0gbG9jYWxpemUoXCJZT1VfSU5JVElBVEVEX0dST1VQX0NBTExcIilcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICBhY3Rpb25NZXNzYWdlID0gYCR7bWVzc2FnZS5nZXRTZW5kZXIoKS5nZXROYW1lKCl9ICAke2xvY2FsaXplKFwiSU5JVElBVEVEX0dST1VQX0NBTExcIil9YFxuICAgICAgfVxuXG4gICAgfVxuICAgIGVsc2V7XG4gICAgICBhY3Rpb25NZXNzYWdlID0gc3VwZXIuZ2V0TGFzdENvbnZlcnNhdGlvbk1lc3NhZ2UoY29udmVyc2F0aW9uLGxvZ2dlZEluVXNlcik7XG4gICAgfVxuICAgIHJldHVybiBhY3Rpb25NZXNzYWdlXG5cbiAgIH1cbn0iXX0=
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FsbGluZ0V4dGVuc2lvbkRlY29yYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NoYXQtdWlraXQtYW5ndWxhci9zcmMvQ2FsbHMvQ2FsbGluZ0V4dGVuc2lvbkRlY29yYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLHdCQUF3QixFQUFrRCxRQUFRLEVBQWMsTUFBTSw0QkFBNEIsQ0FBQztBQUNySyxPQUFPLEVBQUUsbUJBQW1CLEVBQXNFLE1BQU0seUJBQXlCLENBQUM7QUFDbEksT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFeEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFHOUUsTUFBTSxPQUFPLHlCQUEwQixTQUFRLG1CQUFtQjtJQUM5RCxZQUFZLFVBQXNCO1FBQzlCLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUE7SUFDbEIsQ0FBQztJQUNELHFDQUFxQztJQUNyQyxRQUFRO1FBQ04sSUFBSSxVQUFVLEdBQVcsaUJBQWlCLENBQUM7UUFDM0MsU0FBUyxDQUFDLGdCQUFnQixDQUMxQixVQUFVLEVBQ1YsSUFBSSxTQUFTLENBQUMsYUFBYSxDQUFDO1lBQzFCLGFBQWEsRUFBRSxHQUFHLEVBQUU7Z0JBQ25CLElBQUksSUFBSSxHQUFtQixTQUFTLENBQUMsYUFBYSxFQUFFLENBQUE7Z0JBQ2pELElBQUcsSUFBSSxFQUFDO29CQUNOLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUE7aUJBRXZDO3FCQUNHO29CQUNGLE9BQU07aUJBQ1A7WUFDTCxDQUFDO1lBQ0QsYUFBYSxFQUFFLENBQUMsS0FBbUMsRUFBRSxFQUFF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LE9BQU8sRUFBQztZQUN0SCxJQUFJLE9BQU8sR0FBMkIsWUFBWSxDQUFDLGNBQWMsRUFBRSxDQUFBO1lBQ25FLElBQUcsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLElBQUksT0FBTyxFQUFFLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLFlBQVksQ0FBQyxNQUFNLEVBQUUsRUFBQztnQkFDakYsYUFBYSxHQUFHLFFBQVEsQ0FBQywwQkFBMEIsQ0FBQyxDQUFBO2FBQ3JEO2lCQUNJO2dCQUNILGFBQWEsR0FBRyxHQUFHLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxPQUFPLEVBQUUsS0FBSyxRQUFRLENBQUMsc0JBQXNCLENBQUMsRUFBRSxDQUFBO2FBQ3hGO1NBRUY7YUFDRztZQUNGLGFBQWEsR0FBRyxLQUFLLENBQUMsMEJBQTBCLENBQUMsWUFBWSxFQUFDLFlBQVksQ0FBQyxDQUFDO1NBQzdFO1FBQ0QsT0FBTyxhQUFhLENBQUE7SUFFckIsQ0FBQztDQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tZXRDaGF0IH0gZnJvbSBcIkBjb21ldGNoYXQvY2hhdC1zZGstamF2YXNjcmlwdFwiO1xuaW1wb3J0IHsgQ29tZXRDaGF0VUlLaXRDb25zdGFudHMsIENvbWV0Q2hhdE1lc3NhZ2VUZW1wbGF0ZSwgQ29tZXRDaGF0VGhlbWUsIENvbWV0Q2hhdE1lc3NhZ2VDb21wb3NlckFjdGlvbiwgbG9jYWxpemUsIGZvbnRIZWxwZXIgfSBmcm9tIFwiQGNvbWV0Y2hhdC91aWtpdC1yZXNvdXJjZXNcIjtcbmltcG9ydCB7IENhbGxpbmdEZXRhaWxzVXRpbHMsIENvbGxhYm9yYXRpdmVEb2N1bWVudENvbmZpZ3VyYXRpb24sIENvbGxhYm9yYXRpdmVEb2N1bWVudENvbnN0YW50cyB9IGZyb20gXCJAY29tZXRjaGF0L3Vpa2l0LXNoYXJlZFwiO1xuaW1wb3J0IHsgQ2hhdENvbmZpZ3VyYXRvciB9IGZyb20gXCIuLi9TaGFyZWQvRnJhbWV3b3JrL0NoYXRDb25maWd1cmF0b3JcIjtcbmltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tIFwiLi4vU2hhcmVkL0ZyYW1ld29yay9EYXRhU291cmNlXCI7XG5pbXBvcnQgeyBEYXRhU291cmNlRGVjb3JhdG9yIH0gZnJvbSBcIi4uL1NoYXJlZC9GcmFtZXdvcmsvRGF0YVNvdXJjZURlY29yYXRvclwiO1xuaW1wb3J0IHsgIH0gZnJvbSBcIkBjb21ldGNoYXQvdWlraXQtc2hhcmVkXCI7XG5cbmV4cG9ydCBjbGFzcyBDYWxsaW5nRXh0ZW5zaW9uRGVjb3JhdG9yIGV4dGVuZHMgRGF0YVNvdXJjZURlY29yYXRvciB7XG4gICAgY29uc3RydWN0b3IoZGF0YVNvdXJjZTogRGF0YVNvdXJjZSkge1xuICAgICAgICBzdXBlcihkYXRhU291cmNlKTtcbiAgICAgICB0aGlzLm9uTG9nb3V0KClcbiAgICB9XG4gICAgLy8gZW5kIGFjdGl2ZSBjYWxsIHdoZW4gdXNlciBsb2dzIG91dFxuICAgIG9uTG9nb3V0KCl7XG4gICAgICB2YXIgbGlzdGVuZXJJRDogc3RyaW5nID0gXCJsb2dvdXRfbGlzdGVuZXJcIjtcbiAgICAgIENvbWV0Q2hhdC5hZGRMb2dpbkxpc3RlbmVyKFxuICAgICAgbGlzdGVuZXJJRCxcbiAgICAgIG5ldyBDb21ldENoYXQuTG9naW5MaXN0ZW5lcih7XG4gICAgICAgIGxvZ291dFN1Y2Nlc3M6ICgpID0+IHtcbiAgICAgICAgIGxldCBjYWxsOkNvbWV0Q2hhdC5DYWxsID0gIENvbWV0Q2hhdC5nZXRBY3RpdmVDYWxsKClcbiAgICAgICAgICAgIGlmKGNhbGwpe1xuICAgICAgICAgICAgICBDb21ldENoYXQuZW5kQ2FsbChjYWxsLmdldFNlc3Npb25JZCgpKVxuXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNle1xuICAgICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbG9nb3V0RmFpbHVyZTogKGVycm9yOiBDb21ldENoYXQuQ29tZXRDaGF0RXhjZXB0aW9uKSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkxvZ2luTGlzdGVuZXIgOjogbG9nb3V0RmFpbHVyZVwiLCBlcnJvcik7XG4gICAgICAgIH1cbiAgICB9KVxuKTtcbiAgICB9XG4gICAgb3ZlcnJpZGUgZ2V0QWxsTWVzc2FnZVR5cGVzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgY29uc3QgdHlwZXMgPSBzdXBlci5nZXRBbGxNZXNzYWdlVHlwZXMoKTtcbiAgICAgICAgaWYgKCF0eXBlcy5pbmNsdWRlcyggQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuY2FsbHMubWVldGluZykpIHtcbiAgICAgICAgICAgIHR5cGVzLnB1c2goIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLmNhbGxzLm1lZXRpbmcpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdHlwZXMuaW5jbHVkZXMoQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVR5cGVzLmF1ZGlvKSkge1xuICAgICAgICAgICAgdHlwZXMucHVzaChDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlVHlwZXMuYXVkaW8pO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdHlwZXMuaW5jbHVkZXMoQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVR5cGVzLnZpZGVvKSkge1xuICAgICAgICAgICAgdHlwZXMucHVzaChDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlVHlwZXMudmlkZW8pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0eXBlcztcbiAgICB9XG4gICAgb3ZlcnJpZGUgZ2V0SWQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFwiY2FsbGluZ1wiO1xuICAgICAgfVxuICAgIG92ZXJyaWRlIGdldEFsbE1lc3NhZ2VDYXRlZ29yaWVzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgY29uc3QgY2F0ZWdvcmllcyA9IHN1cGVyLmdldEFsbE1lc3NhZ2VDYXRlZ29yaWVzKCk7XG4gICAgICAgIGlmICghY2F0ZWdvcmllcy5pbmNsdWRlcyhDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlQ2F0ZWdvcnkuY2FsbCkpIHtcbiAgICAgICAgICAgIGNhdGVnb3JpZXMucHVzaChDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlQ2F0ZWdvcnkuY2FsbCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFjYXRlZ29yaWVzLmluY2x1ZGVzKENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VDYXRlZ29yeS5jdXN0b20pKSB7XG4gICAgICAgICAgICBjYXRlZ29yaWVzLnB1c2goQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZUNhdGVnb3J5LmN1c3RvbSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNhdGVnb3JpZXM7XG4gICAgfVxuICAgIGNoZWNrSWZUZW1wbGF0ZVR5cGVFeGlzdCh0ZW1wbGF0ZTpDb21ldENoYXRNZXNzYWdlVGVtcGxhdGVbXSwgdHlwZTpzdHJpbmcpOmJvb2xlYW57XG4gICAgICAgIHJldHVybiB0ZW1wbGF0ZS5zb21lKG9iaiA9PiBvYmoudHlwZSA9PT0gdHlwZSlcbiAgICAgIH1cbiAgICAgIGNoZWNrSWZUZW1wbGF0ZUNhdGVnb3J5RXhpc3QodGVtcGxhdGU6Q29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlW10sIGNhdGVnb3J5OnN0cmluZyk6Ym9vbGVhbntcbiAgICAgICAgcmV0dXJuIHRlbXBsYXRlLnNvbWUob2JqID0+IG9iai5jYXRlZ29yeSA9PT0gY2F0ZWdvcnkpXG4gICAgICB9XG4gICAgb3ZlcnJpZGUgZ2V0QWxsTWVzc2FnZVRlbXBsYXRlcygpOiBDb21ldENoYXRNZXNzYWdlVGVtcGxhdGVbXSB7XG4gICAgICAgIGNvbnN0IHRlbXBsYXRlcyA9IHN1cGVyLmdldEFsbE1lc3NhZ2VUZW1wbGF0ZXMoKTtcbiAgICAgICAgaWYoIXRoaXMuY2hlY2tJZlRlbXBsYXRlVHlwZUV4aXN0KHRlbXBsYXRlcywgQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuY2FsbHMubWVldGluZykpe1xuICAgICAgICAgICAgIHRlbXBsYXRlcy5wdXNoKHRoaXMuZ2V0RGlyZWN0Q2FsbFRlbXBsYXRlKCkpXG4gICAgICAgICAgIH1cbiAgICAgICAgICAgaWYoIXRoaXMuY2hlY2tJZlRlbXBsYXRlQ2F0ZWdvcnlFeGlzdCh0ZW1wbGF0ZXMsQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZUNhdGVnb3J5LmNhbGwpKXtcbiAgICAgICAgICAgIHRlbXBsYXRlcy5wdXNoKC4uLnRoaXMuZ2V0RGVmYXVsdENhbGxUZW1wbGF0ZSgpKVxuICAgICAgICAgIH1cbiAgICAgICAgICAgICByZXR1cm4gdGVtcGxhdGVzXG5cbiAgICB9XG4gICAgZ2V0RGlyZWN0Q2FsbFRlbXBsYXRlKCk6Q29tZXRDaGF0TWVzc2FnZVRlbXBsYXRle1xuICAgIHJldHVybiBuZXcgQ29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlKHtcbiAgICAgIHR5cGU6IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLmNhbGxzLm1lZXRpbmcsXG4gICAgICBjYXRlZ29yeTpDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlQ2F0ZWdvcnkuY3VzdG9tLFxuICAgICAgb3B0aW9uczogKGxvZ2dlZEluVXNlcjogQ29tZXRDaGF0LlVzZXIsIG1lc3NhZ2VPYmplY3Q6IENvbWV0Q2hhdC5CYXNlTWVzc2FnZSwgdGhlbWU6IENvbWV0Q2hhdFRoZW1lLCBncm91cD86IENvbWV0Q2hhdC5Hcm91cCk9PntcbiAgICAgICAgcmV0dXJuIENoYXRDb25maWd1cmF0b3IuZ2V0RGF0YVNvdXJjZSgpLmdldENvbW1vbk9wdGlvbnMobG9nZ2VkSW5Vc2VyLCBtZXNzYWdlT2JqZWN0LCB0aGVtZSwgZ3JvdXApXG4gICAgICAgfVxuICAgIH0pXG4gICAgfVxuICAgIGdldERlZmF1bHRDYWxsVGVtcGxhdGUoKTpDb21ldENoYXRNZXNzYWdlVGVtcGxhdGVbXXtcbiAgICAgIGxldCB0ZW1wbGF0ZXM6Q29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlW10gPSBbXG4gICAgICAgIG5ldyBDb21ldENoYXRNZXNzYWdlVGVtcGxhdGUoe1xuICAgICAgICAgICAgdHlwZTpDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlVHlwZXMuYXVkaW8gLFxuICAgICAgICAgICAgY2F0ZWdvcnk6Q29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZUNhdGVnb3J5LmNhbGwsXG4gICAgICAgICAgfSksXG4gICAgICAgICAgbmV3IENvbWV0Q2hhdE1lc3NhZ2VUZW1wbGF0ZSh7XG4gICAgICAgICAgICB0eXBlOkNvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VUeXBlcy52aWRlbyxcbiAgICAgICAgICAgIGNhdGVnb3J5OkNvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VDYXRlZ29yeS5jYWxsLFxuICAgICAgICAgIH0pXG5cbiAgICAgIF1cbiAgICAgIHJldHVybiB0ZW1wbGF0ZXNcbiAgICB9XG4gICBwdWJsaWMgb3ZlcnJpZGUgZ2V0TGFzdENvbnZlcnNhdGlvbk1lc3NhZ2UoY29udmVyc2F0aW9uOiBDb21ldENoYXQuQ29udmVyc2F0aW9uLCBsb2dnZWRJblVzZXI6IENvbWV0Q2hhdC5Vc2VyKTogc3RyaW5nIHtcbiAgICAgbGV0IGFjdGlvbk1lc3NhZ2U6c3RyaW5nID0gXCJcIjtcblxuICAgIGlmKGNvbnZlcnNhdGlvbi5nZXRMYXN0TWVzc2FnZSgpICYmIGNvbnZlcnNhdGlvbi5nZXRMYXN0TWVzc2FnZSgpLmNhdGVnb3J5ID09IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VDYXRlZ29yeS5jYWxsKXtcbiAgICAgIGxldCBjYWxsOkNvbWV0Q2hhdC5DYWxsID1jb252ZXJzYXRpb24uZ2V0TGFzdE1lc3NhZ2UoKTtcblxuICAgICAgYWN0aW9uTWVzc2FnZSA9IENhbGxpbmdEZXRhaWxzVXRpbHMuZ2V0Q2FsbFN0YXR1cyhjYWxsLGxvZ2dlZEluVXNlcilcbiAgICB9XG4gICAgZWxzZSBpZiAoY29udmVyc2F0aW9uPy5nZXRMYXN0TWVzc2FnZSgpICYmIGNvbnZlcnNhdGlvbi5nZXRMYXN0TWVzc2FnZSgpLnR5cGUgPT0gIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLmNhbGxzLm1lZXRpbmcpe1xuICAgICAgbGV0IG1lc3NhZ2U6Q29tZXRDaGF0LkN1c3RvbU1lc3NhZ2UgPSBjb252ZXJzYXRpb24uZ2V0TGFzdE1lc3NhZ2UoKVxuICAgICAgaWYoIW1lc3NhZ2UuZ2V0U2VuZGVyKCkgfHwgbWVzc2FnZT8uZ2V0U2VuZGVyKCk/LmdldFVpZCgpID09IGxvZ2dlZEluVXNlci5nZXRVaWQoKSl7XG4gICAgICAgIGFjdGlvbk1lc3NhZ2UgPSBsb2NhbGl6ZShcIllPVV9JTklUSUFURURfR1JPVVBfQ0FMTFwiKVxuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIGFjdGlvbk1lc3NhZ2UgPSBgJHttZXNzYWdlLmdldFNlbmRlcigpLmdldE5hbWUoKX0gICR7bG9jYWxpemUoXCJJTklUSUFURURfR1JPVVBfQ0FMTFwiKX1gXG4gICAgICB9XG5cbiAgICB9XG4gICAgZWxzZXtcbiAgICAgIGFjdGlvbk1lc3NhZ2UgPSBzdXBlci5nZXRMYXN0Q29udmVyc2F0aW9uTWVzc2FnZShjb252ZXJzYXRpb24sbG9nZ2VkSW5Vc2VyKTtcbiAgICB9XG4gICAgcmV0dXJuIGFjdGlvbk1lc3NhZ2VcblxuICAgfVxufSJdfQ==
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
|
-
import { CometChat } from '@cometchat
|
|
3
|
-
import { localize, CometChatUIKitConstants, fontHelper, CometChatCallEvents, CometChatMessageEvents, MessageStatus
|
|
4
|
-
import { CallButtonsStyle,
|
|
2
|
+
import { CometChat } from '@cometchat/chat-sdk-javascript';
|
|
3
|
+
import { localize, CometChatUIKitConstants, fontHelper, CometChatCallEvents, CometChatMessageEvents, MessageStatus } from '@cometchat/uikit-resources';
|
|
4
|
+
import { CallButtonsStyle, CometChatSoundManager, CometChatUIKitUtility, OutgoingCallConfiguration, CallScreenConfiguration, CometChatUIKitCalls } from '@cometchat/uikit-shared';
|
|
5
|
+
import { CallscreenStyle } from '@cometchat/uikit-elements';
|
|
5
6
|
import '@cometchat/uikit-shared';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
8
|
import * as i1 from "../../../CometChatTheme.service";
|
|
@@ -136,15 +137,50 @@ export class CometChatCallButtonsComponent {
|
|
|
136
137
|
}
|
|
137
138
|
getCallBuilder() {
|
|
138
139
|
let audioOnlyCall = this.activeCall?.getType() == CometChatUIKitConstants.MessageTypes.audio ? true : false;
|
|
139
|
-
|
|
140
|
-
return undefined;
|
|
141
|
-
}
|
|
142
|
-
return this.ongoingCallConfiguration.callSettingsBuilder ?? new CometChat.CallSettingsBuilder()
|
|
143
|
-
.setSessionID(this.sessionId)
|
|
140
|
+
const callSettings = new CometChatUIKitCalls.CallSettingsBuilder()
|
|
144
141
|
.enableDefaultLayout(true)
|
|
145
142
|
.setIsAudioOnlyCall(audioOnlyCall)
|
|
146
|
-
.
|
|
147
|
-
|
|
143
|
+
.setCallListener(new CometChatUIKitCalls.OngoingCallListener({
|
|
144
|
+
onCallEnded: () => {
|
|
145
|
+
if (this.call?.getReceiverType() == CometChatUIKitConstants.MessageReceiverType.user) {
|
|
146
|
+
CometChatUIKitCalls.endSession();
|
|
147
|
+
this.closeCallScreen();
|
|
148
|
+
}
|
|
149
|
+
},
|
|
150
|
+
onCallEndButtonPressed: () => {
|
|
151
|
+
if (this.call?.getReceiverType() == CometChatUIKitConstants.MessageReceiverType.user) {
|
|
152
|
+
CometChat.endCall(this.sessionId).then((call) => {
|
|
153
|
+
CometChatUIKitCalls.endSession();
|
|
154
|
+
CometChatCallEvents.ccCallEnded.next(call);
|
|
155
|
+
this.closeCallScreen();
|
|
156
|
+
})
|
|
157
|
+
.catch((err) => {
|
|
158
|
+
if (this.onError) {
|
|
159
|
+
this.onError(err);
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
this.closeCallScreen();
|
|
165
|
+
}
|
|
166
|
+
},
|
|
167
|
+
onError: (error) => {
|
|
168
|
+
if (this.onError) {
|
|
169
|
+
this.onError(error);
|
|
170
|
+
}
|
|
171
|
+
},
|
|
172
|
+
}))
|
|
173
|
+
.build();
|
|
174
|
+
return callSettings;
|
|
175
|
+
}
|
|
176
|
+
closeCallScreen() {
|
|
177
|
+
this.disableButtons = false;
|
|
178
|
+
this.activeCall = null;
|
|
179
|
+
this.showOngoingCall = false;
|
|
180
|
+
this.sessionId = "";
|
|
181
|
+
this.showOutgoingCallscreen = false;
|
|
182
|
+
this.call = null;
|
|
183
|
+
this.ref.detectChanges();
|
|
148
184
|
}
|
|
149
185
|
openOngoingCallScreen(call) {
|
|
150
186
|
this.showOutgoingCallscreen = false;
|
|
@@ -190,12 +226,12 @@ export class CometChatCallButtonsComponent {
|
|
|
190
226
|
sendCustomMessage() {
|
|
191
227
|
const receiverType = this.user ? CometChatUIKitConstants.MessageReceiverType.user : CometChatUIKitConstants.MessageReceiverType.group;
|
|
192
228
|
const receiverId = this.user ? this.user.getUid() : this.group.getGuid();
|
|
193
|
-
const customData = { "sessionID": this.sessionId, "sessionId": this.sessionId, "callType":
|
|
229
|
+
const customData = { "sessionID": this.sessionId, "sessionId": this.sessionId, "callType": CometChatUIKitConstants.MessageTypes.video };
|
|
194
230
|
const customType = CometChatUIKitConstants.calls.meeting;
|
|
195
231
|
const conversationId = `group_${this.sessionId}`;
|
|
196
232
|
const customMessage = new CometChat.CustomMessage(receiverId, receiverType, customType, customData);
|
|
197
233
|
customMessage.setSender(this.loggedInUser);
|
|
198
|
-
customMessage.setMetadata({ incrementUnreadCount:
|
|
234
|
+
customMessage.setMetadata({ incrementUnreadCount: false });
|
|
199
235
|
customMessage.setReceiver(receiverType);
|
|
200
236
|
customMessage.setConversationId(conversationId);
|
|
201
237
|
customMessage.sentAt = CometChatUIKitUtility.getUnixTimestamp();
|
|
@@ -238,6 +274,7 @@ export class CometChatCallButtonsComponent {
|
|
|
238
274
|
attachListeners() {
|
|
239
275
|
CometChat.addCallListener(this.callbuttonsListenerId, new CometChat.CallListener({
|
|
240
276
|
onIncomingCallReceived: (call) => {
|
|
277
|
+
this.call = call;
|
|
241
278
|
this.disableButtons = true;
|
|
242
279
|
this.ref.detectChanges();
|
|
243
280
|
},
|
|
@@ -252,7 +289,13 @@ export class CometChatCallButtonsComponent {
|
|
|
252
289
|
this.ref.detectChanges();
|
|
253
290
|
},
|
|
254
291
|
onOutgoingCallAccepted: (call) => {
|
|
292
|
+
this.call = call;
|
|
255
293
|
this.openOngoingCallScreen(call);
|
|
294
|
+
},
|
|
295
|
+
onCallEndedMessageReceived: (call) => {
|
|
296
|
+
this.disableButtons = false;
|
|
297
|
+
this.call = null;
|
|
298
|
+
this.ref.detectChanges();
|
|
256
299
|
}
|
|
257
300
|
}));
|
|
258
301
|
}
|
|
@@ -269,13 +312,7 @@ export class CometChatCallButtonsComponent {
|
|
|
269
312
|
this.ref.detectChanges();
|
|
270
313
|
});
|
|
271
314
|
this.ccCallEnded = CometChatCallEvents.ccCallEnded.subscribe((call) => {
|
|
272
|
-
this.
|
|
273
|
-
this.ref.detectChanges();
|
|
274
|
-
this.activeCall = null;
|
|
275
|
-
this.showOngoingCall = false;
|
|
276
|
-
this.sessionId = "";
|
|
277
|
-
this.showOutgoingCallscreen = false;
|
|
278
|
-
this.ref.detectChanges();
|
|
315
|
+
this.closeCallScreen();
|
|
279
316
|
});
|
|
280
317
|
}
|
|
281
318
|
unsubscribeToEvents() {
|
|
@@ -329,7 +366,7 @@ export class CometChatCallButtonsComponent {
|
|
|
329
366
|
}
|
|
330
367
|
}
|
|
331
368
|
CometChatCallButtonsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CometChatCallButtonsComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.CometChatThemeService }], target: i0.ɵɵFactoryTarget.Component });
|
|
332
|
-
CometChatCallButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: CometChatCallButtonsComponent, selector: "cometchat-call-buttons", inputs: { user: "user", group: "group", voiceCallIconURL: "voiceCallIconURL", voiceCallIconText: "voiceCallIconText", voiceCallIconHoverText: "voiceCallIconHoverText", videoCallIconURL: "videoCallIconURL", videoCallIconText: "videoCallIconText", videoCallIconHoverText: "videoCallIconHoverText", onVoiceCallClick: "onVoiceCallClick", onVideoCallClick: "onVideoCallClick", onError: "onError", callButtonsStyle: "callButtonsStyle", outgoingCallConfiguration: "outgoingCallConfiguration", ongoingCallConfiguration: "ongoingCallConfiguration" }, ngImport: i0, template: "<div class=\"cc-call-buttons__wrapper\" [ngStyle]=\"wrapperStyle()\">\n<div class=\"cc-call-buttons-buttons\">\n<cometchat-button [disabled]=\"disableButtons ? true : false\" *ngIf=\"user\" (cc-button-clicked)=\"initiateAudioCall()\" [buttonStyle]=\"getVoiceCallButtonStyle(disableButtons)\" [text]=\"voiceCallIconText\" [hoverText]=\"voiceCallIconHoverText\" [iconURL]=\"voiceCallIconURL\"></cometchat-button>\n<cometchat-button [disabled]=\"disableButtons ? true : false\" *ngIf=\"user || group\" (cc-button-clicked)=\"initiateVideoCall()\" [buttonStyle]=\"getVideoCallButtonStyle(disableButtons)\" [text]=\"videoCallIconText\" [hoverText]=\"videoCallIconHoverText\" [iconURL]=\"videoCallIconURL\"></cometchat-button>\n</div>\n</div>\n<cometchat-ongoing-call *ngIf=\"showOngoingCall\" [maximizeIconURL]=\"ongoingCallConfiguration.maximizeIconURL\" [minimizeIconURL]=\"ongoingCallConfiguration.minimizeIconURL\" [ongoingCallStyle]=\"ongoingCallConfiguration.ongoingCallStyle || ongoingCallStyle\" [sessionID]=\"sessionId\" [callSettingsBuilder]=\"getCallBuilder()!\"></cometchat-ongoing-call>\n<cometchat-backdrop *ngIf=\"showOutgoingCallscreen\">\n<cometchat-outgoing-call [customSoundForCalls]=\"outgoingCallConfiguration.customSoundForCalls\" [onError]=\"outgoingCallConfiguration.onError\" [disableSoundForCalls]=\"outgoingCallConfiguration.disableSoundForCalls\" [avatarStyle]=\"outgoingCallConfiguration.avatarStyle\" [customView]=\"outgoingCallConfiguration.customView\" [declineButtonIconURL]=\"outgoingCallConfiguration.declineButtonIconURL\" [onCloseClicked]=\"outgoingCallConfiguration.onCloseClicked || cancelOutgoingCall\" [outgoingCallStyle]=\"outgoingCallConfiguration.outgoingCallStyle || outgoingCallStyle\" [call]=\"call!\"></cometchat-outgoing-call>\n</cometchat-backdrop>", styles: [".cc-call-buttons__wrapper{height:100%;width:100%}.cc-call-buttons-buttons{display:flex;gap:8px}\n"], components: [{ type: i2.CometChatOngoingCallComponent, selector: "cometchat-ongoing-call", inputs: ["ongoingCallStyle", "resizeIconHoverText", "sessionID", "minimizeIconURL", "maximizeIconURL", "callSettingsBuilder"] }, { type: i3.CometChatOutgoingCallComponent, selector: "cometchat-outgoing-call", inputs: ["call", "declineButtonText", "declineButtonIconURL", "customView", "onError", "disableSoundForCalls", "customSoundForCalls", "avatarStyle", "outgoingCallStyle", "onCloseClicked"] }], directives: [{ type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
369
|
+
CometChatCallButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: CometChatCallButtonsComponent, selector: "cometchat-call-buttons", inputs: { user: "user", group: "group", voiceCallIconURL: "voiceCallIconURL", voiceCallIconText: "voiceCallIconText", voiceCallIconHoverText: "voiceCallIconHoverText", videoCallIconURL: "videoCallIconURL", videoCallIconText: "videoCallIconText", videoCallIconHoverText: "videoCallIconHoverText", onVoiceCallClick: "onVoiceCallClick", onVideoCallClick: "onVideoCallClick", onError: "onError", callButtonsStyle: "callButtonsStyle", outgoingCallConfiguration: "outgoingCallConfiguration", ongoingCallConfiguration: "ongoingCallConfiguration" }, ngImport: i0, template: "<div class=\"cc-call-buttons__wrapper\" [ngStyle]=\"wrapperStyle()\">\n<div class=\"cc-call-buttons-buttons\">\n<cometchat-button [disabled]=\"disableButtons ? true : false\" *ngIf=\"user\" (cc-button-clicked)=\"initiateAudioCall()\" [buttonStyle]=\"getVoiceCallButtonStyle(disableButtons)\" [text]=\"voiceCallIconText\" [hoverText]=\"voiceCallIconHoverText\" [iconURL]=\"voiceCallIconURL\"></cometchat-button>\n<cometchat-button [disabled]=\"disableButtons ? true : false\" *ngIf=\"user || group\" (cc-button-clicked)=\"initiateVideoCall()\" [buttonStyle]=\"getVideoCallButtonStyle(disableButtons)\" [text]=\"videoCallIconText\" [hoverText]=\"videoCallIconHoverText\" [iconURL]=\"videoCallIconURL\"></cometchat-button>\n</div>\n</div>\n<cometchat-ongoing-call *ngIf=\"showOngoingCall\" [maximizeIconURL]=\"ongoingCallConfiguration.maximizeIconURL\" [minimizeIconURL]=\"ongoingCallConfiguration.minimizeIconURL\" [ongoingCallStyle]=\"ongoingCallConfiguration.ongoingCallStyle || ongoingCallStyle\" [sessionID]=\"sessionId\" [callSettingsBuilder]=\"getCallBuilder()!\"></cometchat-ongoing-call>\n<cometchat-backdrop *ngIf=\"showOutgoingCallscreen\">\n<cometchat-outgoing-call [customSoundForCalls]=\"outgoingCallConfiguration.customSoundForCalls\" [onError]=\"outgoingCallConfiguration.onError\" [disableSoundForCalls]=\"outgoingCallConfiguration.disableSoundForCalls\" [avatarStyle]=\"outgoingCallConfiguration.avatarStyle\" [customView]=\"outgoingCallConfiguration.customView\" [declineButtonIconURL]=\"outgoingCallConfiguration.declineButtonIconURL\" [onCloseClicked]=\"outgoingCallConfiguration.onCloseClicked || cancelOutgoingCall\" [outgoingCallStyle]=\"outgoingCallConfiguration.outgoingCallStyle || outgoingCallStyle\" [call]=\"call!\"></cometchat-outgoing-call>\n</cometchat-backdrop>", styles: [".cc-call-buttons__wrapper{height:100%;width:100%}.cc-call-buttons-buttons{display:flex;gap:8px}\n"], components: [{ type: i2.CometChatOngoingCallComponent, selector: "cometchat-ongoing-call", inputs: ["ongoingCallStyle", "resizeIconHoverText", "sessionID", "minimizeIconURL", "maximizeIconURL", "callSettingsBuilder", "callWorkflow", "onError"] }, { type: i3.CometChatOutgoingCallComponent, selector: "cometchat-outgoing-call", inputs: ["call", "declineButtonText", "declineButtonIconURL", "customView", "onError", "disableSoundForCalls", "customSoundForCalls", "avatarStyle", "outgoingCallStyle", "onCloseClicked"] }], directives: [{ type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
333
370
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CometChatCallButtonsComponent, decorators: [{
|
|
334
371
|
type: Component,
|
|
335
372
|
args: [{ selector: "cometchat-call-buttons", changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"cc-call-buttons__wrapper\" [ngStyle]=\"wrapperStyle()\">\n<div class=\"cc-call-buttons-buttons\">\n<cometchat-button [disabled]=\"disableButtons ? true : false\" *ngIf=\"user\" (cc-button-clicked)=\"initiateAudioCall()\" [buttonStyle]=\"getVoiceCallButtonStyle(disableButtons)\" [text]=\"voiceCallIconText\" [hoverText]=\"voiceCallIconHoverText\" [iconURL]=\"voiceCallIconURL\"></cometchat-button>\n<cometchat-button [disabled]=\"disableButtons ? true : false\" *ngIf=\"user || group\" (cc-button-clicked)=\"initiateVideoCall()\" [buttonStyle]=\"getVideoCallButtonStyle(disableButtons)\" [text]=\"videoCallIconText\" [hoverText]=\"videoCallIconHoverText\" [iconURL]=\"videoCallIconURL\"></cometchat-button>\n</div>\n</div>\n<cometchat-ongoing-call *ngIf=\"showOngoingCall\" [maximizeIconURL]=\"ongoingCallConfiguration.maximizeIconURL\" [minimizeIconURL]=\"ongoingCallConfiguration.minimizeIconURL\" [ongoingCallStyle]=\"ongoingCallConfiguration.ongoingCallStyle || ongoingCallStyle\" [sessionID]=\"sessionId\" [callSettingsBuilder]=\"getCallBuilder()!\"></cometchat-ongoing-call>\n<cometchat-backdrop *ngIf=\"showOutgoingCallscreen\">\n<cometchat-outgoing-call [customSoundForCalls]=\"outgoingCallConfiguration.customSoundForCalls\" [onError]=\"outgoingCallConfiguration.onError\" [disableSoundForCalls]=\"outgoingCallConfiguration.disableSoundForCalls\" [avatarStyle]=\"outgoingCallConfiguration.avatarStyle\" [customView]=\"outgoingCallConfiguration.customView\" [declineButtonIconURL]=\"outgoingCallConfiguration.declineButtonIconURL\" [onCloseClicked]=\"outgoingCallConfiguration.onCloseClicked || cancelOutgoingCall\" [outgoingCallStyle]=\"outgoingCallConfiguration.outgoingCallStyle || outgoingCallStyle\" [call]=\"call!\"></cometchat-outgoing-call>\n</cometchat-backdrop>", styles: [".cc-call-buttons__wrapper{height:100%;width:100%}.cc-call-buttons-buttons{display:flex;gap:8px}\n"] }]
|
|
@@ -362,4 +399,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
362
399
|
}], ongoingCallConfiguration: [{
|
|
363
400
|
type: Input
|
|
364
401
|
}] } });
|
|
365
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tZXRjaGF0LWNhbGwtYnV0dG9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jaGF0LXVpa2l0LWFuZ3VsYXIvc3JjL0NhbGxzL0NvbWV0Q2hhdENhbGxCdXR0b25zL2NvbWV0Y2hhdC1jYWxsLWJ1dHRvbnMvY29tZXRjaGF0LWNhbGwtYnV0dG9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jaGF0LXVpa2l0LWFuZ3VsYXIvc3JjL0NhbGxzL0NvbWV0Q2hhdENhbGxCdXR0b25zL2NvbWV0Y2hhdC1jYWxsLWJ1dHRvbnMvY29tZXRjaGF0LWNhbGwtYnV0dG9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDckcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRWhELE9BQU8sRUFBRSxRQUFRLEVBQUUsdUJBQXVCLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLHNCQUFzQixFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTFLLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUscUJBQXFCLEVBQXFCLHFCQUFxQixFQUFFLHlCQUF5QixFQUFFLHVCQUF1QixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDaE0sT0FBTyx5QkFBeUIsQ0FBQTs7Ozs7O0FBQ2hDOzs7Ozs7OztFQVFFO0FBT0YsTUFBTSxPQUFPLDZCQUE2QjtJQWdFeEMsWUFBb0IsR0FBc0IsRUFBVSxZQUFtQztRQUFuRSxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUFVLGlCQUFZLEdBQVosWUFBWSxDQUF1QjtRQTdEOUUscUJBQWdCLEdBQVcseUJBQXlCLENBQUE7UUFDcEQsc0JB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O2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFHRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBT0cseUJBQXlCO3NCQUFqQyxLQUFLO2dCQUNHLHdCQUF3QjtzQkFBaEMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21ldENoYXQgfSBmcm9tICdAY29tZXRjaGF0LXByby9jaGF0JztcbmltcG9ydCB7IENvbWV0Q2hhdFRoZW1lU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL0NvbWV0Q2hhdFRoZW1lLnNlcnZpY2UnO1xuaW1wb3J0IHsgbG9jYWxpemUsIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLCBmb250SGVscGVyLCBDb21ldENoYXRDYWxsRXZlbnRzLCBDb21ldENoYXRNZXNzYWdlRXZlbnRzLCBNZXNzYWdlU3RhdHVzLCBDb21ldENoYXRMb2NhbGl6ZSB9IGZyb20gJ0Bjb21ldGNoYXQvdWlraXQtcmVzb3VyY2VzJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ2FsbEJ1dHRvbnNTdHlsZSwgQ2FsbHNjcmVlblN0eWxlLCBDb21ldENoYXRTb3VuZE1hbmFnZXIsIE91dGdvaW5nQ2FsbFN0eWxlICxDb21ldENoYXRVSUtpdFV0aWxpdHksIE91dGdvaW5nQ2FsbENvbmZpZ3VyYXRpb24sIENhbGxTY3JlZW5Db25maWd1cmF0aW9ufSBmcm9tICdAY29tZXRjaGF0L3Vpa2l0LXNoYXJlZCc7XG5pbXBvcnQgJ0Bjb21ldGNoYXQvdWlraXQtc2hhcmVkJ1xuLyoqXG4qXG4qIENvbWV0Q2hhdENhbGxCdXR0b25zQ29tcG9uZW50IGlzIGEgY29tcG9uZW50IHdoaWNoIHNob3dzIGJ1dHRvbnMgZm9yIGF1ZGlvIGFuZCB2aWRlbyBjYWxsIGZvciAxdjEgYW5kIGdyb3VwIGNhbGwuXG4qXG4qIEB2ZXJzaW9uIDEuMC4wXG4qIEBhdXRob3IgQ29tZXRDaGF0VGVhbVxuKiBAY29weXJpZ2h0IMKpIDIwMjIgQ29tZXRDaGF0IEluYy5cbipcbiovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiY29tZXRjaGF0LWNhbGwtYnV0dG9uc1wiLFxuICB0ZW1wbGF0ZVVybDogXCIuL2NvbWV0Y2hhdC1jYWxsLWJ1dHRvbnMuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL2NvbWV0Y2hhdC1jYWxsLWJ1dHRvbnMuY29tcG9uZW50LnNjc3NcIl0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIENvbWV0Q2hhdENhbGxCdXR0b25zQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgdXNlciE6IENvbWV0Q2hhdC5Vc2VyO1xuICBASW5wdXQoKSBncm91cCE6IENvbWV0Q2hhdC5Hcm91cDtcbiAgQElucHV0KCkgdm9pY2VDYWxsSWNvblVSTDogc3RyaW5nID0gXCJhc3NldHMvQXVkaW8tQ2FsbDJ4LnN2Z1wiXG4gIEBJbnB1dCgpIHZvaWNlQ2FsbEljb25UZXh0OiBzdHJpbmcgPSBsb2NhbGl6ZShcIlZPSUNFX0NBTExcIilcbiAgQElucHV0KCkgdm9pY2VDYWxsSWNvbkhvdmVyVGV4dDogc3RyaW5nID0gbG9jYWxpemUoXCJWT0lDRV9DQUxMXCIpXG4gIEBJbnB1dCgpIHZpZGVvQ2FsbEljb25VUkw6IHN0cmluZyA9IFwiYXNzZXRzL1ZpZGVvLWNhbGwyeC5zdmdcIlxuICBASW5wdXQoKSB2aWRlb0NhbGxJY29uVGV4dDogc3RyaW5nID0gbG9jYWxpemUoXCJWSURFT19DQUxMXCIpXG4gIEBJbnB1dCgpIHZpZGVvQ2FsbEljb25Ib3ZlclRleHQ6IHN0cmluZyA9IGxvY2FsaXplKFwiVklERU9fQ0FMTFwiKVxuICBASW5wdXQoKSBvblZvaWNlQ2FsbENsaWNrITogKCh1c2VyOiBDb21ldENoYXQuVXNlciwgZ3JvdXA6IENvbWV0Q2hhdC5Hcm91cCkgPT4gdm9pZCkgfCBudWxsO1xuICBASW5wdXQoKSBvblZpZGVvQ2FsbENsaWNrITogKCh1c2VyOiBDb21ldENoYXQuVXNlciwgZ3JvdXA6IENvbWV0Q2hhdC5Hcm91cCkgPT4gdm9pZCkgfCBudWxsO1xuICBASW5wdXQoKSBvbkVycm9yOiAoZXJyb3I6IENvbWV0Q2hhdC5Db21ldENoYXRFeGNlcHRpb24pID0+IHZvaWQgPSAoZXJyb3I6IENvbWV0Q2hhdC5Db21ldENoYXRFeGNlcHRpb24pID0+IHtcbiAgICBjb25zb2xlLmxvZyhlcnJvcilcbiAgfVxuICBASW5wdXQoKSBjYWxsQnV0dG9uc1N0eWxlOiBDYWxsQnV0dG9uc1N0eWxlID0ge1xuICAgIHdpZHRoOiBcIjEwMCVcIixcbiAgICBoZWlnaHQ6IFwiMTAwJVwiLFxuICAgIGJvcmRlcjogXCJub25lXCIsXG4gICAgYm9yZGVyUmFkaXVzOiBcIjBcIixcbiAgICBiYWNrZ3JvdW5kOiBcInRyYW5zcGFyZW50XCJcbiAgfTtcbiAgQElucHV0KCkgb3V0Z29pbmdDYWxsQ29uZmlndXJhdGlvbjpPdXRnb2luZ0NhbGxDb25maWd1cmF0aW9uID0gbmV3IE91dGdvaW5nQ2FsbENvbmZpZ3VyYXRpb24oe30pXG4gIEBJbnB1dCgpIG9uZ29pbmdDYWxsQ29uZmlndXJhdGlvbjpDYWxsU2NyZWVuQ29uZmlndXJhdGlvbiA9IG5ldyBDYWxsU2NyZWVuQ29uZmlndXJhdGlvbih7fSlcbiAgY2FsbCE6IENvbWV0Q2hhdC5DYWxsIHwgbnVsbDtcbiAgcHVibGljIGNjT3V0Z29pbmdDYWxsITogU3Vic2NyaXB0aW9uO1xuICBwdWJsaWMgY2NDYWxsUmVqZWN0ZWQhOiBTdWJzY3JpcHRpb247XG4gIHB1YmxpYyBjY0NhbGxFbmRlZCE6IFN1YnNjcmlwdGlvbjtcbiAgcHVibGljIGRpc2FibGVCdXR0b25zOiBib29sZWFuID0gZmFsc2U7XG4gIHNob3dPbmdvaW5nQ2FsbDogYm9vbGVhbiA9IGZhbHNlO1xuICBzZXNzaW9uSWQ6IHN0cmluZyA9IFwiXCI7XG4gIHB1YmxpYyBjYWxsYnV0dG9uc0xpc3RlbmVySWQ6IHN0cmluZyA9IFwiY2FsbGJ1dHRvbnNfXCIgKyBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgcHVibGljIGxvZ2dlZEluVXNlcjogQ29tZXRDaGF0LlVzZXIgfCBudWxsID0gbnVsbDtcbiAgYnV0dG9uU3R5bGU6IGFueSA9IHtcbiAgICBoZWlnaHQ6IFwiMTAwJVwiLFxuICAgIHdpZHRoOiBcIjEwMCVcIixcbiAgICBkaXNwbGF5OiBcImZsZXhcIixcbiAgICBmbGV4RGlyZWN0aW9uOiBcImNvbHVtblwiLFxuICAgIGp1c3RpZnlDb250ZW50OiBcImNlbnRlclwiLFxuICAgIGFsaWduSXRlbXM6IFwiY2VudGVyXCIsXG4gIH1cbiAgdm9pY2VDYWxsQnV0dG9uU3R5bGU6IGFueSA9IHtcbiAgICBidXR0b25JY29uVGludDogXCJSR0IoNTEsIDE1MywgMjU1KVwiLFxuICAgIGJ1dHRvblRleHRGb250OiBcIjQwMCAxMnB4IEludGVyXCIsXG4gICAgYnV0dG9uVGV4dENvbG9yOiBcIlJHQig1MSwgMTUzLCAyNTUpXCIsXG4gICAgcGFkZGluZzogXCI4cHggMzJweFwiXG4gIH1cbiAgdmlkZW9DYWxsQnV0dG9uU3R5bGU6IGFueSA9IHtcbiAgICBidXR0b25JY29uVGludDogXCJSR0IoNTEsIDE1MywgMjU1KVwiLFxuICAgIGJ1dHRvblRleHRGb250OiBcIjQwMCAxMnB4IEludGVyXCIsXG4gICAgYnV0dG9uVGV4dENvbG9yOiBcIlJHQig1MSwgMTUzLCAyNTUpXCIsXG4gICAgcGFkZGluZzogXCI4cHggMzJweFwiXG4gIH1cbiAgc2hvd091dGdvaW5nQ2FsbHNjcmVlbjogYm9vbGVhbiA9IGZhbHNlO1xuICBvdXRnb2luZ0NhbGxTdHlsZTogT3V0Z29pbmdDYWxsU3R5bGUgPSB7XG4gICAgd2lkdGg6IFwiMzYwcHhcIixcbiAgICBoZWlnaHQ6IFwiNTgxcHhcIixcbiAgICB0aXRsZVRleHRGb250OiBcIjcwMCAyMnB4IEludGVyXCIsXG4gICAgdGl0bGVUZXh0Q29sb3I6IFwiUkdCKDIwLCAyMCwgMjApXCIsXG4gICAgc3VidGl0bGVUZXh0Rm9udDogXCI0MDAgMTVweCBJbnRlclwiLFxuICAgIHN1YnRpdGxlVGV4dENvbG9yOiBcIlJHQkEoMjAsIDIwLCAyMCwgMC41OClcIixcbiAgICBib3JkZXJSYWRpdXM6IFwiOHB4XCJcbiAgfTtcbiAgb25nb2luZ0NhbGxTdHlsZTogQ2FsbHNjcmVlblN0eWxlID0ge31cbiAgYWN0aXZlQ2FsbDogQ29tZXRDaGF0LkNhbGwgfCBudWxsID0gbnVsbFxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgdGhlbWVTZXJ2aWNlOiBDb21ldENoYXRUaGVtZVNlcnZpY2UpIHsgfVxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBDb21ldENoYXQuZ2V0TG9nZ2VkaW5Vc2VyKCkudGhlbigodXNlcjpDb21ldENoYXQuVXNlciB8IG51bGwpPT57XG4gICAgICB0aGlzLmxvZ2dlZEluVXNlciA9IHVzZXJcbiAgICB9KS5jYXRjaCgoZXJyb3I6Q29tZXRDaGF0LkNvbWV0Q2hhdEV4Y2VwdGlvbik9PntcbiAgICAgIGlmKHRoaXMub25FcnJvcil7XG4gICAgICAgIHRoaXMub25FcnJvcihlcnJvcilcbiAgICAgIH1cbiAgICB9KVxuICAgIHRoaXMuc2V0VGhlbWVTdHlsZSgpXG4gICAgdGhpcy5hdHRhY2hMaXN0ZW5lcnMoKVxuICAgIHRoaXMuc3Vic2NyaWJlVG9FdmVudHMoKVxuICB9XG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMucmVtb3ZlTGlzdGVuZXIoKTtcbiAgICB0aGlzLnVuc3Vic2NyaWJlVG9FdmVudHMoKVxuICB9XG4gIGdldENhbGxCdWlsZGVyKCk6IENvbWV0Q2hhdC5DYWxsU2V0dGluZ3NCdWlsZGVyIHwgdW5kZWZpbmVkIHtcbiAgICBsZXQgYXVkaW9Pbmx5Q2FsbDogYm9vbGVhbiA9IHRoaXMuYWN0aXZlQ2FsbD8uZ2V0VHlwZSgpID09IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VUeXBlcy5hdWRpbyA/IHRydWUgOiBmYWxzZVxuICAgIGlmICh0aGlzLmFjdGl2ZUNhbGw/LmdldFR5cGUoKSA9PSAgQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuY2FsbHMubWVldGluZykge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMub25nb2luZ0NhbGxDb25maWd1cmF0aW9uLmNhbGxTZXR0aW5nc0J1aWxkZXIgPz8gIG5ldyBDb21ldENoYXQuQ2FsbFNldHRpbmdzQnVpbGRlcigpXG4gICAgICAuc2V0U2Vzc2lvbklEKHRoaXMuc2Vzc2lvbklkKVxuICAgICAgLmVuYWJsZURlZmF1bHRMYXlvdXQodHJ1ZSlcbiAgICAgIC5zZXRJc0F1ZGlvT25seUNhbGwoYXVkaW9Pbmx5Q2FsbClcbiAgICAgIC5zZXRNb2RlKENvbWV0Q2hhdC5DQUxMX01PREUuREVGQVVMVClcbiAgICAgIC5zZXRMb2NhbGl6ZWRTdHJpbmdPYmplY3QoQ29tZXRDaGF0TG9jYWxpemUuZ2V0TG9jYWxlKCkpXG4gIH1cbiAgb3Blbk9uZ29pbmdDYWxsU2NyZWVuKGNhbGw6IENvbWV0Q2hhdC5DYWxsKSB7XG4gICAgdGhpcy5zaG93T3V0Z29pbmdDYWxsc2NyZWVuID0gZmFsc2U7XG4gICAgdGhpcy5hY3RpdmVDYWxsID0gY2FsbFxuICAgIHRoaXMuc2Vzc2lvbklkID0gY2FsbC5nZXRTZXNzaW9uSWQoKVxuICAgIHRoaXMuc2hvd09uZ29pbmdDYWxsID0gdHJ1ZVxuICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKVxuICB9XG4gIGluaXRpYXRlQ2FsbCh0eXBlOiBzdHJpbmcpIHtcblxuICAgIGNvbnN0IHJlY2VpdmVyVHlwZTogc3RyaW5nID0gdGhpcy51c2VyID8gQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVJlY2VpdmVyVHlwZS51c2VyIDogQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVJlY2VpdmVyVHlwZS5ncm91cFxuICAgIGNvbnN0IHJlY2VpdmVySWQ6IHN0cmluZyA9IHRoaXMudXNlciA/IHRoaXMudXNlci5nZXRVaWQoKSA6IHRoaXMuZ3JvdXAuZ2V0R3VpZCgpXG4gICAgY29uc3QgY2FsbDogQ29tZXRDaGF0LkNhbGwgPSBuZXcgQ29tZXRDaGF0LkNhbGwoXG4gICAgICByZWNlaXZlcklkLFxuICAgICAgdHlwZSxcbiAgICAgIHJlY2VpdmVyVHlwZVxuICAgICk7XG4gICAgQ29tZXRDaGF0LmluaXRpYXRlQ2FsbChjYWxsKVxuICAgICAgLnRoZW4oKG91dGdvaW5nQ2FsbCkgPT4ge1xuICAgICAgICAvL3doZW4gdGhpcyBjb21wb25lbnQgaXMgcGFydCBvZiBjaGF0IHdpZGdldCB0cmlnZ2VyIGFuIGV2ZW50Li4gKG91dGdvaW5nY2FsbCBjb21wb25lbnQgaXMgdXNlZCBzZXBhcmF0ZWx5IGluIGNoYXQgd2lkZ2V0KVxuICAgICAgICB0aGlzLmNhbGwgPSBvdXRnb2luZ0NhbGxcbiAgICAgICAgdGhpcy5zaG93T3V0Z29pbmdDYWxsc2NyZWVuID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpXG4gICAgICAgIENvbWV0Q2hhdENhbGxFdmVudHMuY2NPdXRnb2luZ0NhbGwubmV4dChcbiAgICAgICAgICBvdXRnb2luZ0NhbGxcbiAgICAgICAgKVxuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgaWYgKHRoaXMub25FcnJvcikge1xuICAgICAgICAgIHRoaXMub25FcnJvcihlcnJvcilcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBpbml0aWF0ZUF1ZGlvQ2FsbCgpIHtcbiAgICBpZiAodGhpcy51c2VyKSB7XG4gICAgICB0aGlzLmluaXRpYXRlQ2FsbChDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlVHlwZXMuYXVkaW8pXG4gICAgfVxuICB9XG4gIGluaXRpYXRlVmlkZW9DYWxsKCkge1xuICAgIGlmICh0aGlzLnVzZXIpIHtcbiAgICAgIHRoaXMuaW5pdGlhdGVDYWxsKENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VUeXBlcy52aWRlbylcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICB0aGlzLnNlc3Npb25JZCA9IHRoaXMuZ3JvdXAuZ2V0R3VpZCgpXG4gICAgICB0aGlzLnNlbmRDdXN0b21NZXNzYWdlKClcbiAgICAgIHRoaXMuc2hvd09uZ29pbmdDYWxsID0gdHJ1ZTtcbiAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKVxuXG4gICAgfVxuICB9XG4gIHNlbmRDdXN0b21NZXNzYWdlKCkge1xuICAgIGNvbnN0IHJlY2VpdmVyVHlwZTogc3RyaW5nID0gdGhpcy51c2VyID8gQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVJlY2VpdmVyVHlwZS51c2VyIDogQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVJlY2VpdmVyVHlwZS5ncm91cFxuICAgIGNvbnN0IHJlY2VpdmVySWQ6IHN0cmluZyA9IHRoaXMudXNlciA/IHRoaXMudXNlci5nZXRVaWQoKSA6IHRoaXMuZ3JvdXAuZ2V0R3VpZCgpXG4gICAgY29uc3QgY3VzdG9tRGF0YSA9IHsgXCJzZXNzaW9uSURcIjogdGhpcy5zZXNzaW9uSWQsIFwic2Vzc2lvbklkXCI6IHRoaXMuc2Vzc2lvbklkLCBcImNhbGxUeXBlXCI6IENvbWV0Q2hhdC5DQUxMX1RZUEUuVklERU8gfTtcbiAgICBjb25zdCBjdXN0b21UeXBlID0gIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLmNhbGxzLm1lZXRpbmc7XG4gICAgY29uc3QgY29udmVyc2F0aW9uSWQgPSBgZ3JvdXBfJHt0aGlzLnNlc3Npb25JZH1gO1xuXG4gICAgY29uc3QgY3VzdG9tTWVzc2FnZTogYW55ID0gbmV3IENvbWV0Q2hhdC5DdXN0b21NZXNzYWdlKHJlY2VpdmVySWQsIHJlY2VpdmVyVHlwZSwgY3VzdG9tVHlwZSwgY3VzdG9tRGF0YSk7XG4gICAgY3VzdG9tTWVzc2FnZS5zZXRTZW5kZXIodGhpcy5sb2dnZWRJblVzZXIpO1xuICAgIGN1c3RvbU1lc3NhZ2Uuc2V0TWV0YWRhdGEoeyBpbmNyZW1lbnRVbnJlYWRDb3VudDogdHJ1ZSB9KTtcbiAgICBjdXN0b21NZXNzYWdlLnNldFJlY2VpdmVyKChyZWNlaXZlclR5cGUgYXMgYW55KSk7XG4gICAgY3VzdG9tTWVzc2FnZS5zZXRDb252ZXJzYXRpb25JZChjb252ZXJzYXRpb25JZCk7XG4gICAgY3VzdG9tTWVzc2FnZS5zZW50QXQgPSBDb21ldENoYXRVSUtpdFV0aWxpdHkuZ2V0VW5peFRpbWVzdGFtcCgpO1xuICAgIGN1c3RvbU1lc3NhZ2UubXVpZCA9IENvbWV0Q2hhdFVJS2l0VXRpbGl0eS5JRCgpO1xuICAgIC8vIGN1c3RvbSBtZXNzYWdlXG4gICAgQ29tZXRDaGF0TWVzc2FnZUV2ZW50cy5jY01lc3NhZ2VTZW50Lm5leHQoe1xuICAgICAgbWVzc2FnZTpjdXN0b21NZXNzYWdlLFxuICAgICAgc3RhdHVzOk1lc3NhZ2VTdGF0dXMuaW5wcm9ncmVzc1xuICAgIH0pXG4gICAgQ29tZXRDaGF0LnNlbmRDdXN0b21NZXNzYWdlKGN1c3RvbU1lc3NhZ2UpLnRoZW4oKG1zZykgPT4ge1xuICAgICAgQ29tZXRDaGF0TWVzc2FnZUV2ZW50cy5jY01lc3NhZ2VTZW50Lm5leHQoe1xuICAgICAgICBtZXNzYWdlOm1zZyxcbiAgICAgICAgc3RhdHVzOk1lc3NhZ2VTdGF0dXMuc3VjY2Vzc1xuICAgICAgfSlcbiAgICB9KVxuICAgIC5jYXRjaCgoZXJyb3I6Q29tZXRDaGF0LkNvbWV0Q2hhdEV4Y2VwdGlvbik9PntcbiAgICAgaWYodGhpcy5vbkVycm9yKXtcbiAgICAgIHRoaXMub25FcnJvcihlcnJvcilcbiAgICAgfVxuICAgIH0pXG5cbiAgfVxuICBjYW5jZWxPdXRnb2luZ0NhbGwgPSAoKSA9PiB7XG4gICAgQ29tZXRDaGF0U291bmRNYW5hZ2VyLnBhdXNlKClcbiAgICBDb21ldENoYXQucmVqZWN0Q2FsbChcbiAgICAgIHRoaXMuY2FsbCEuZ2V0U2Vzc2lvbklkKCksXG4gICAgICBDb21ldENoYXRVSUtpdENvbnN0YW50cy5jYWxscy5jYW5jZWxsZWRcbiAgICApXG4gICAgICAudGhlbigoY2FsbCkgPT4ge1xuICAgICAgICB0aGlzLmRpc2FibGVCdXR0b25zID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2hvd091dGdvaW5nQ2FsbHNjcmVlbiA9IGZhbHNlXG4gICAgICAgIENvbWV0Q2hhdENhbGxFdmVudHMuY2NDYWxsUmVqZWN0ZWQubmV4dChjYWxsKVxuICAgICAgICB0aGlzLmNhbGwgPSBudWxsO1xuICAgICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKClcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLm9uRXJyb3IpIHtcbiAgICAgICAgICB0aGlzLm9uRXJyb3IoZXJyb3IpXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIHRoaXMuc2hvd091dGdvaW5nQ2FsbHNjcmVlbiA9IGZhbHNlO1xuICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKVxuICB9XG4gIGdldFZvaWNlQ2FsbEJ1dHRvblN0eWxlKGRpc2FibGVCdXR0b25zOmJvb2xlYW4pe1xuICAgIGNvbnN0IGJ1dHRvbkljb25UaW50ID0gZGlzYWJsZUJ1dHRvbnNcbiAgICA/IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NjAwKClcbiAgICA6IHRoaXMuY2FsbEJ1dHRvbnNTdHlsZS52b2ljZUNhbGxJY29uVGludDtcblxuICByZXR1cm4ge1xuICAgIC4uLnRoaXMudmlkZW9DYWxsQnV0dG9uU3R5bGUsXG4gICAgYnV0dG9uSWNvblRpbnQsXG4gIH07XG4gIH1cbiAgZ2V0VmlkZW9DYWxsQnV0dG9uU3R5bGUoZGlzYWJsZUJ1dHRvbnM6IGJvb2xlYW4pIHtcbiAgICBjb25zdCBidXR0b25JY29uVGludCA9IGRpc2FibGVCdXR0b25zXG4gICAgICA/IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NjAwKClcbiAgICAgIDogdGhpcy5jYWxsQnV0dG9uc1N0eWxlLnZpZGVvQ2FsbEljb25UaW50O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnRoaXMudmlkZW9DYWxsQnV0dG9uU3R5bGUsXG4gICAgICBidXR0b25JY29uVGludCxcbiAgICB9O1xuICB9XG5cbiAgYXR0YWNoTGlzdGVuZXJzKCkge1xuICAgIENvbWV0Q2hhdC5hZGRDYWxsTGlzdGVuZXIoXG4gICAgICB0aGlzLmNhbGxidXR0b25zTGlzdGVuZXJJZCxcbiAgICAgIG5ldyBDb21ldENoYXQuQ2FsbExpc3RlbmVyKHtcbiAgICAgICAgb25JbmNvbWluZ0NhbGxSZWNlaXZlZDogKGNhbGw6IENvbWV0Q2hhdC5DYWxsKSA9PiB7XG4gICAgICAgICAgdGhpcy5kaXNhYmxlQnV0dG9ucyA9IHRydWVcbiAgICAgICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKClcbiAgICAgICAgfSxcbiAgICAgICAgb25JbmNvbWluZ0NhbGxDYW5jZWxsZWQ6IChjYWxsOiBDb21ldENoYXQuQ2FsbCkgPT4ge1xuICAgICAgICAgIHRoaXMuZGlzYWJsZUJ1dHRvbnMgPSBmYWxzZVxuICAgICAgICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKClcbiAgICAgICAgfSxcbiAgICAgICAgb25PdXRnb2luZ0NhbGxSZWplY3RlZDogKGNhbGw6IENvbWV0Q2hhdC5DYWxsKSA9PiB7XG4gICAgICAgICAgdGhpcy5kaXNhYmxlQnV0dG9ucyA9IGZhbHNlXG4gICAgICAgICAgdGhpcy5jYWxsID0gbnVsbDtcbiAgICAgICAgICB0aGlzLnNob3dPdXRnb2luZ0NhbGxzY3JlZW4gPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKClcbiAgICAgICAgfSxcbiAgICAgICAgb25PdXRnb2luZ0NhbGxBY2NlcHRlZDogKGNhbGw6IENvbWV0Q2hhdC5DYWxsKSA9PiB7XG4gICAgICAgICAgdGhpcy5vcGVuT25nb2luZ0NhbGxTY3JlZW4oY2FsbCk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuICByZW1vdmVMaXN0ZW5lcigpIHtcbiAgICBDb21ldENoYXQucmVtb3ZlQ2FsbExpc3RlbmVyKHRoaXMuY2FsbGJ1dHRvbnNMaXN0ZW5lcklkKTtcbiAgfVxuICBzdWJzY3JpYmVUb0V2ZW50cygpIHtcbiAgICB0aGlzLmNjQ2FsbFJlamVjdGVkID0gQ29tZXRDaGF0Q2FsbEV2ZW50cy5jY0NhbGxSZWplY3RlZC5zdWJzY3JpYmUoKGNhbGw6IENvbWV0Q2hhdC5DYWxsKSA9PiB7XG4gICAgICB0aGlzLmRpc2FibGVCdXR0b25zID0gZmFsc2VcbiAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKVxuICAgIH0pXG4gICAgdGhpcy5jY091dGdvaW5nQ2FsbCA9IENvbWV0Q2hhdENhbGxFdmVudHMuY2NPdXRnb2luZ0NhbGwuc3Vic2NyaWJlKChjYWxsOiBDb21ldENoYXQuQ2FsbCkgPT4ge1xuICAgICAgdGhpcy5kaXNhYmxlQnV0dG9ucyA9IHRydWVcbiAgICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKClcbiAgICB9KVxuICAgIHRoaXMuY2NDYWxsRW5kZWQgPSBDb21ldENoYXRDYWxsRXZlbnRzLmNjQ2FsbEVuZGVkLnN1YnNjcmliZSgoY2FsbDogQ29tZXRDaGF0LkNhbGwpID0+IHtcbiAgICAgIHRoaXMuZGlzYWJsZUJ1dHRvbnMgPSBmYWxzZVxuICAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKVxuICAgICAgdGhpcy5hY3RpdmVDYWxsID0gbnVsbFxuICAgICAgdGhpcy5zaG93T25nb2luZ0NhbGwgPSBmYWxzZVxuICAgICAgdGhpcy5zZXNzaW9uSWQgPSBcIlwiXG4gICAgICB0aGlzLnNob3dPdXRnb2luZ0NhbGxzY3JlZW4gPSBmYWxzZTtcbiAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKVxuICAgIH0pXG4gIH1cbiAgdW5zdWJzY3JpYmVUb0V2ZW50cygpIHtcbiAgICB0aGlzLmNjQ2FsbFJlamVjdGVkPy51bnN1YnNjcmliZSgpXG4gICAgdGhpcy5jY091dGdvaW5nQ2FsbD8udW5zdWJzY3JpYmUoKVxuICAgIHRoaXMuY2NDYWxsRW5kZWQ/LnVuc3Vic2NyaWJlKClcbiAgfVxuICBzZXRUaGVtZVN0eWxlKCkge1xuICAgIHRoaXMuc2V0Y2FsbEJ1dHRvbnNTdHlsZSgpXG4gICAgdGhpcy5zZXRPbmdvaW5nQ2FsbFN0eWxlKClcbiAgfVxuICBzZXRPbmdvaW5nQ2FsbFN0eWxlID0gKCkgPT4ge1xuICAgIGxldCBkZWZhdWx0U3R5bGUgPSBuZXcgQ2FsbHNjcmVlblN0eWxlKHtcbiAgICAgIG1heEhlaWdodDogXCIxMDAlXCIsXG4gICAgICBtYXhXaWR0aDogXCIxMDAlXCIsXG4gICAgICBib3JkZXI6IFwibm9uZVwiLFxuICAgICAgYm9yZGVyUmFkaXVzOiBcIjBcIixcbiAgICAgIGJhY2tncm91bmQ6IFwiIzFjMjIyNlwiLFxuICAgICAgbWluSGVpZ2h0OiBcIjQwMHB4XCIsXG4gICAgICBtaW5XaWR0aDogXCI0MDBweFwiLFxuICAgICAgbWluaW1pemVJY29uVGludDogdGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ5MDAoKSxcbiAgICAgIG1heGltaXplSWNvblRpbnQ6IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50OTAwKCksXG4gICAgfSlcbiAgICB0aGlzLm9uZ29pbmdDYWxsU3R5bGUgPSB7IC4uLmRlZmF1bHRTdHlsZSwgLi4udGhpcy5vbmdvaW5nQ2FsbFN0eWxlIH1cbiAgfVxuICBzZXRjYWxsQnV0dG9uc1N0eWxlKCkge1xuICAgIGxldCBkZWZhdWx0U3R5bGU6IENhbGxCdXR0b25zU3R5bGUgPSBuZXcgQ2FsbEJ1dHRvbnNTdHlsZSh7XG4gICAgICB3aWR0aDogXCIxMDAlXCIsXG4gICAgICBoZWlnaHQ6IFwiMTAwJVwiLFxuICAgICAgYmFja2dyb3VuZDogXCJ0cmFuc3BhcmVudFwiLFxuICAgICAgYm9yZGVyOiBcIm5vbmVcIixcbiAgICAgIGJvcmRlclJhZGl1czogXCIwXCIsXG4gICAgICB2b2ljZUNhbGxJY29uVGludDogdGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRQcmltYXJ5KCksXG4gICAgICB2aWRlb0NhbGxJY29uVGludDogdGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRQcmltYXJ5KCksXG4gICAgICB2b2ljZUNhbGxJY29uVGV4dEZvbnQ6IGZvbnRIZWxwZXIodGhpcy50aGVtZVNlcnZpY2UudGhlbWUudHlwb2dyYXBoeS5jYXB0aW9uMSksXG4gICAgICB2aWRlb0NhbGxJY29uVGV4dEZvbnQ6IGZvbnRIZWxwZXIodGhpcy50aGVtZVNlcnZpY2UudGhlbWUudHlwb2dyYXBoeS5jYXB0aW9uMSksXG4gICAgICB2b2ljZUNhbGxJY29uVGV4dENvbG9yOiB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldFByaW1hcnkoKSxcbiAgICAgIHZpZGVvQ2FsbEljb25UZXh0Q29sb3I6IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0UHJpbWFyeSgpLFxuICAgICAgYnV0dG9uUGFkZGluZzogXCI4cHggMzJweFwiLFxuICAgICAgYnV0dG9uQmFja2dyb3VuZDp0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudDEwMCgpLFxuICAgICAgYnV0dG9uQm9yZGVyOlwiMFwiLFxuICAgICAgYnV0dG9uQm9yZGVyUmFkaXVzOlwiOHB4XCJcbiAgICB9KVxuICAgIHRoaXMuY2FsbEJ1dHRvbnNTdHlsZSA9IHsgLi4uZGVmYXVsdFN0eWxlLCAuLi50aGlzLmNhbGxCdXR0b25zU3R5bGUgfVxuICAgIHRoaXMudm9pY2VDYWxsQnV0dG9uU3R5bGUgPSB7XG4gICAgICBidXR0b25JY29uVGludDogdGhpcy5kaXNhYmxlQnV0dG9ucyA/IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NjAwKCkgOiAgdGhpcy5jYWxsQnV0dG9uc1N0eWxlLnZvaWNlQ2FsbEljb25UaW50LFxuICAgICAgYnV0dG9uVGV4dEZvbnQ6IHRoaXMuY2FsbEJ1dHRvbnNTdHlsZS52b2ljZUNhbGxJY29uVGV4dEZvbnQsXG4gICAgICBidXR0b25UZXh0Q29sb3I6IHRoaXMuY2FsbEJ1dHRvbnNTdHlsZS52b2ljZUNhbGxJY29uVGV4dENvbG9yLFxuICAgICAgcGFkZGluZzogdGhpcy5jYWxsQnV0dG9uc1N0eWxlLmJ1dHRvblBhZGRpbmcsXG4gICAgICBiYWNrZ3JvdW5kOnRoaXMuY2FsbEJ1dHRvbnNTdHlsZS5idXR0b25CYWNrZ3JvdW5kLFxuICAgICAgYm9yZGVyOnRoaXMuY2FsbEJ1dHRvbnNTdHlsZS5ib3JkZXIsXG4gICAgICBib3JkZXJSYWRpdXM6dGhpcy5jYWxsQnV0dG9uc1N0eWxlLmJ1dHRvbkJvcmRlclJhZGl1cyxcbiAgICAgIC4uLnRoaXMuYnV0dG9uU3R5bGVcbiAgICB9XG4gICAgdGhpcy52aWRlb0NhbGxCdXR0b25TdHlsZSA9IHtcbiAgICAgIGJ1dHRvbkljb25UaW50OiB0aGlzLmRpc2FibGVCdXR0b25zID8gdGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ2MDAoKSA6ICAgdGhpcy5jYWxsQnV0dG9uc1N0eWxlLnZpZGVvQ2FsbEljb25UaW50LFxuICAgICAgYnV0dG9uVGV4dEZvbnQ6IHRoaXMuY2FsbEJ1dHRvbnNTdHlsZS52aWRlb0NhbGxJY29uVGV4dEZvbnQsXG4gICAgICBidXR0b25UZXh0Q29sb3I6IHRoaXMuY2FsbEJ1dHRvbnNTdHlsZS52aWRlb0NhbGxJY29uVGV4dENvbG9yLFxuICAgICAgcGFkZGluZzogdGhpcy5jYWxsQnV0dG9uc1N0eWxlLmJ1dHRvblBhZGRpbmcsXG4gICAgICBiYWNrZ3JvdW5kOnRoaXMuY2FsbEJ1dHRvbnNTdHlsZS5idXR0b25CYWNrZ3JvdW5kLFxuICAgICAgYm9yZGVyOnRoaXMuY2FsbEJ1dHRvbnNTdHlsZS5ib3JkZXIsXG4gICAgICBib3JkZXJSYWRpdXM6dGhpcy5jYWxsQnV0dG9uc1N0eWxlLmJ1dHRvbkJvcmRlclJhZGl1cyxcbiAgICAgIC4uLnRoaXMuYnV0dG9uU3R5bGVcbiAgICB9XG4gIH1cbiAgd3JhcHBlclN0eWxlID0gKCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBoZWlnaHQ6IHRoaXMuY2FsbEJ1dHRvbnNTdHlsZS5oZWlnaHQsXG4gICAgICB3aWR0aDogdGhpcy5jYWxsQnV0dG9uc1N0eWxlLndpZHRoLFxuICAgICAgYmFja2dyb3VuZDogdGhpcy5jYWxsQnV0dG9uc1N0eWxlLmJhY2tncm91bmQsXG4gICAgICBib3JkZXI6IHRoaXMuY2FsbEJ1dHRvbnNTdHlsZS5ib3JkZXIsXG4gICAgICBib3JkZXJSYWRpdXM6IHRoaXMuY2FsbEJ1dHRvbnNTdHlsZS5ib3JkZXJSYWRpdXNcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjYy1jYWxsLWJ1dHRvbnNfX3dyYXBwZXJcIiBbbmdTdHlsZV09XCJ3cmFwcGVyU3R5bGUoKVwiPlxuPGRpdiBjbGFzcz1cImNjLWNhbGwtYnV0dG9ucy1idXR0b25zXCI+XG48Y29tZXRjaGF0LWJ1dHRvbiBbZGlzYWJsZWRdPVwiZGlzYWJsZUJ1dHRvbnMgPyB0cnVlIDogZmFsc2VcIiAqbmdJZj1cInVzZXJcIiAoY2MtYnV0dG9uLWNsaWNrZWQpPVwiaW5pdGlhdGVBdWRpb0NhbGwoKVwiIFtidXR0b25TdHlsZV09XCJnZXRWb2ljZUNhbGxCdXR0b25TdHlsZShkaXNhYmxlQnV0dG9ucylcIiBbdGV4dF09XCJ2b2ljZUNhbGxJY29uVGV4dFwiIFtob3ZlclRleHRdPVwidm9pY2VDYWxsSWNvbkhvdmVyVGV4dFwiIFtpY29uVVJMXT1cInZvaWNlQ2FsbEljb25VUkxcIj48L2NvbWV0Y2hhdC1idXR0b24+XG48Y29tZXRjaGF0LWJ1dHRvbiBbZGlzYWJsZWRdPVwiZGlzYWJsZUJ1dHRvbnMgID8gdHJ1ZSA6IGZhbHNlXCIgKm5nSWY9XCJ1c2VyIHx8IGdyb3VwXCIgKGNjLWJ1dHRvbi1jbGlja2VkKT1cImluaXRpYXRlVmlkZW9DYWxsKClcIiBbYnV0dG9uU3R5bGVdPVwiZ2V0VmlkZW9DYWxsQnV0dG9uU3R5bGUoZGlzYWJsZUJ1dHRvbnMpXCIgW3RleHRdPVwidmlkZW9DYWxsSWNvblRleHRcIiBbaG92ZXJUZXh0XT1cInZpZGVvQ2FsbEljb25Ib3ZlclRleHRcIiBbaWNvblVSTF09XCJ2aWRlb0NhbGxJY29uVVJMXCI+PC9jb21ldGNoYXQtYnV0dG9uPlxuPC9kaXY+XG48L2Rpdj5cbjxjb21ldGNoYXQtb25nb2luZy1jYWxsICpuZ0lmPVwic2hvd09uZ29pbmdDYWxsXCIgW21heGltaXplSWNvblVSTF09XCJvbmdvaW5nQ2FsbENvbmZpZ3VyYXRpb24ubWF4aW1pemVJY29uVVJMXCIgW21pbmltaXplSWNvblVSTF09XCJvbmdvaW5nQ2FsbENvbmZpZ3VyYXRpb24ubWluaW1pemVJY29uVVJMXCIgW29uZ29pbmdDYWxsU3R5bGVdPVwib25nb2luZ0NhbGxDb25maWd1cmF0aW9uLm9uZ29pbmdDYWxsU3R5bGUgfHwgb25nb2luZ0NhbGxTdHlsZVwiIFtzZXNzaW9uSURdPVwic2Vzc2lvbklkXCIgIFtjYWxsU2V0dGluZ3NCdWlsZGVyXT1cImdldENhbGxCdWlsZGVyKCkhXCI+PC9jb21ldGNoYXQtb25nb2luZy1jYWxsPlxuPGNvbWV0Y2hhdC1iYWNrZHJvcCAqbmdJZj1cInNob3dPdXRnb2luZ0NhbGxzY3JlZW5cIj5cbjxjb21ldGNoYXQtb3V0Z29pbmctY2FsbCBbY3VzdG9tU291bmRGb3JDYWxsc109XCJvdXRnb2luZ0NhbGxDb25maWd1cmF0aW9uLmN1c3RvbVNvdW5kRm9yQ2FsbHNcIiBbb25FcnJvcl09XCJvdXRnb2luZ0NhbGxDb25maWd1cmF0aW9uLm9uRXJyb3JcIiBbZGlzYWJsZVNvdW5kRm9yQ2FsbHNdPVwib3V0Z29pbmdDYWxsQ29uZmlndXJhdGlvbi5kaXNhYmxlU291bmRGb3JDYWxsc1wiIFthdmF0YXJTdHlsZV09XCJvdXRnb2luZ0NhbGxDb25maWd1cmF0aW9uLmF2YXRhclN0eWxlXCIgW2N1c3RvbVZpZXddPVwib3V0Z29pbmdDYWxsQ29uZmlndXJhdGlvbi5jdXN0b21WaWV3XCIgW2RlY2xpbmVCdXR0b25JY29uVVJMXT1cIm91dGdvaW5nQ2FsbENvbmZpZ3VyYXRpb24uZGVjbGluZUJ1dHRvbkljb25VUkxcIiAgW29uQ2xvc2VDbGlja2VkXT1cIm91dGdvaW5nQ2FsbENvbmZpZ3VyYXRpb24ub25DbG9zZUNsaWNrZWQgfHwgY2FuY2VsT3V0Z29pbmdDYWxsXCIgW291dGdvaW5nQ2FsbFN0eWxlXT1cIm91dGdvaW5nQ2FsbENvbmZpZ3VyYXRpb24ub3V0Z29pbmdDYWxsU3R5bGUgfHwgb3V0Z29pbmdDYWxsU3R5bGVcIiBbY2FsbF09XCJjYWxsIVwiPjwvY29tZXRjaGF0LW91dGdvaW5nLWNhbGw+XG48L2NvbWV0Y2hhdC1iYWNrZHJvcD4iXX0=
|
|
402
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tZXRjaGF0LWNhbGwtYnV0dG9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jaGF0LXVpa2l0LWFuZ3VsYXIvc3JjL0NhbGxzL0NvbWV0Q2hhdENhbGxCdXR0b25zL2NvbWV0Y2hhdC1jYWxsLWJ1dHRvbnMvY29tZXRjaGF0LWNhbGwtYnV0dG9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jaGF0LXVpa2l0LWFuZ3VsYXIvc3JjL0NhbGxzL0NvbWV0Q2hhdENhbGxCdXR0b25zL2NvbWV0Y2hhdC1jYWxsLWJ1dHRvbnMvY29tZXRjaGF0LWNhbGwtYnV0dG9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDckcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRTNELE9BQU8sRUFBRSxRQUFRLEVBQUUsdUJBQXVCLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLHNCQUFzQixFQUFFLGFBQWEsRUFBd0MsTUFBTSw0QkFBNEIsQ0FBQztBQUU3TCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUscUJBQXFCLEVBQXFCLHFCQUFxQixFQUFFLHlCQUF5QixFQUFFLHVCQUF1QixFQUFFLG1CQUFtQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDcE0sT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDJCQUEyQixDQUFBO0FBQ3pELE9BQU8seUJBQXlCLENBQUE7Ozs7OztBQUNoQzs7Ozs7Ozs7RUFRRTtBQU9GLE1BQU0sT0FBTyw2QkFBNkI7SUFnRXhDLFlBQW9CLEdBQXNCLEVBQVUsWUFBbUM7UUFBbkUsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFBVSxpQkFBWSxHQUFaLFlBQVksQ0FBdUI7UUE3RDlF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LEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFHRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBT0cseUJBQXlCO3NCQUFqQyxLQUFLO2dCQUNHLHdCQUF3QjtzQkFBaEMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21ldENoYXQgfSBmcm9tICdAY29tZXRjaGF0L2NoYXQtc2RrLWphdmFzY3JpcHQnO1xuaW1wb3J0IHsgQ29tZXRDaGF0VGhlbWVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vQ29tZXRDaGF0VGhlbWUuc2VydmljZSc7XG5pbXBvcnQgeyBsb2NhbGl6ZSwgQ29tZXRDaGF0VUlLaXRDb25zdGFudHMsIGZvbnRIZWxwZXIsIENvbWV0Q2hhdENhbGxFdmVudHMsIENvbWV0Q2hhdE1lc3NhZ2VFdmVudHMsIE1lc3NhZ2VTdGF0dXMsIENvbWV0Q2hhdExvY2FsaXplLCBDb21ldENoYXRVSUV2ZW50cyB9IGZyb20gJ0Bjb21ldGNoYXQvdWlraXQtcmVzb3VyY2VzJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ2FsbEJ1dHRvbnNTdHlsZSwgQ29tZXRDaGF0U291bmRNYW5hZ2VyLCBPdXRnb2luZ0NhbGxTdHlsZSAsQ29tZXRDaGF0VUlLaXRVdGlsaXR5LCBPdXRnb2luZ0NhbGxDb25maWd1cmF0aW9uLCBDYWxsU2NyZWVuQ29uZmlndXJhdGlvbiwgQ29tZXRDaGF0VUlLaXRDYWxsc30gZnJvbSAnQGNvbWV0Y2hhdC91aWtpdC1zaGFyZWQnO1xuaW1wb3J0IHtDYWxsc2NyZWVuU3R5bGV9IGZyb20gJ0Bjb21ldGNoYXQvdWlraXQtZWxlbWVudHMnXG5pbXBvcnQgJ0Bjb21ldGNoYXQvdWlraXQtc2hhcmVkJ1xuLyoqXG4qXG4qIENvbWV0Q2hhdENhbGxCdXR0b25zQ29tcG9uZW50IGlzIGEgY29tcG9uZW50IHdoaWNoIHNob3dzIGJ1dHRvbnMgZm9yIGF1ZGlvIGFuZCB2aWRlbyBjYWxsIGZvciAxdjEgYW5kIGdyb3VwIGNhbGwuXG4qXG4qIEB2ZXJzaW9uIDEuMC4wXG4qIEBhdXRob3IgQ29tZXRDaGF0VGVhbVxuKiBAY29weXJpZ2h0IMKpIDIwMjIgQ29tZXRDaGF0IEluYy5cbipcbiovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiY29tZXRjaGF0LWNhbGwtYnV0dG9uc1wiLFxuICB0ZW1wbGF0ZVVybDogXCIuL2NvbWV0Y2hhdC1jYWxsLWJ1dHRvbnMuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL2NvbWV0Y2hhdC1jYWxsLWJ1dHRvbnMuY29tcG9uZW50LnNjc3NcIl0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIENvbWV0Q2hhdENhbGxCdXR0b25zQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgdXNlciE6IENvbWV0Q2hhdC5Vc2VyO1xuICBASW5wdXQoKSBncm91cCE6IENvbWV0Q2hhdC5Hcm91cDtcbiAgQElucHV0KCkgdm9pY2VDYWxsSWNvblVSTDogc3RyaW5nID0gXCJhc3NldHMvQXVkaW8tQ2FsbDJ4LnN2Z1wiXG4gIEBJbnB1dCgpIHZvaWNlQ2FsbEljb25UZXh0OiBzdHJpbmcgPSBsb2NhbGl6ZShcIlZPSUNFX0NBTExcIilcbiAgQElucHV0KCkgdm9pY2VDYWxsSWNvbkhvdmVyVGV4dDogc3RyaW5nID0gbG9jYWxpemUoXCJWT0lDRV9DQUxMXCIpXG4gIEBJbnB1dCgpIHZpZGVvQ2FsbEljb25VUkw6IHN0cmluZyA9IFwiYXNzZXRzL1ZpZGVvLWNhbGwyeC5zdmdcIlxuICBASW5wdXQoKSB2aWRlb0NhbGxJY29uVGV4dDogc3RyaW5nID0gbG9jYWxpemUoXCJWSURFT19DQUxMXCIpXG4gIEBJbnB1dCgpIHZpZGVvQ2FsbEljb25Ib3ZlclRleHQ6IHN0cmluZyA9IGxvY2FsaXplKFwiVklERU9fQ0FMTFwiKVxuICBASW5wdXQoKSBvblZvaWNlQ2FsbENsaWNrITogKCh1c2VyOiBDb21ldENoYXQuVXNlciwgZ3JvdXA6IENvbWV0Q2hhdC5Hcm91cCkgPT4gdm9pZCkgfCBudWxsO1xuICBASW5wdXQoKSBvblZpZGVvQ2FsbENsaWNrITogKCh1c2VyOiBDb21ldENoYXQuVXNlciwgZ3JvdXA6IENvbWV0Q2hhdC5Hcm91cCkgPT4gdm9pZCkgfCBudWxsO1xuICBASW5wdXQoKSBvbkVycm9yOiAoZXJyb3I6IENvbWV0Q2hhdC5Db21ldENoYXRFeGNlcHRpb24pID0+IHZvaWQgPSAoZXJyb3I6IENvbWV0Q2hhdC5Db21ldENoYXRFeGNlcHRpb24pID0+IHtcbiAgICBjb25zb2xlLmxvZyhlcnJvcilcbiAgfVxuICBASW5wdXQoKSBjYWxsQnV0dG9uc1N0eWxlOiBDYWxsQnV0dG9uc1N0eWxlID0ge1xuICAgIHdpZHRoOiBcIjEwMCVcIixcbiAgICBoZWlnaHQ6IFwiMTAwJVwiLFxuICAgIGJvcmRlcjogXCJub25lXCIsXG4gICAgYm9yZGVyUmFkaXVzOiBcIjBcIixcbiAgICBiYWNrZ3JvdW5kOiBcInRyYW5zcGFyZW50XCJcbiAgfTtcbiAgQElucHV0KCkgb3V0Z29pbmdDYWxsQ29uZmlndXJhdGlvbjpPdXRnb2luZ0NhbGxDb25maWd1cmF0aW9uID0gbmV3IE91dGdvaW5nQ2FsbENvbmZpZ3VyYXRpb24oe30pXG4gIEBJbnB1dCgpIG9uZ29pbmdDYWxsQ29uZmlndXJhdGlvbjpDYWxsU2NyZWVuQ29uZmlndXJhdGlvbiA9IG5ldyBDYWxsU2NyZWVuQ29uZmlndXJhdGlvbih7fSlcbiAgY2FsbCE6IENvbWV0Q2hhdC5DYWxsIHwgbnVsbDtcbiAgcHVibGljIGNjT3V0Z29pbmdDYWxsITogU3Vic2NyaXB0aW9uO1xuICBwdWJsaWMgY2NDYWxsUmVqZWN0ZWQhOiBTdWJzY3JpcHRpb247XG4gIHB1YmxpYyBjY0NhbGxFbmRlZCE6IFN1YnNjcmlwdGlvbjtcbiAgcHVibGljIGRpc2FibGVCdXR0b25zOiBib29sZWFuID0gZmFsc2U7XG4gIHNob3dPbmdvaW5nQ2FsbDogYm9vbGVhbiA9IGZhbHNlO1xuICBzZXNzaW9uSWQ6IHN0cmluZyA9IFwiXCI7XG4gIHB1YmxpYyBjYWxsYnV0dG9uc0xpc3RlbmVySWQ6IHN0cmluZyA9IFwiY2FsbGJ1dHRvbnNfXCIgKyBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgcHVibGljIGxvZ2dlZEluVXNlcjogQ29tZXRDaGF0LlVzZXIgfCBudWxsID0gbnVsbDtcbiAgYnV0dG9uU3R5bGU6IGFueSA9IHtcbiAgICBoZWlnaHQ6IFwiMTAwJVwiLFxuICAgIHdpZHRoOiBcIjEwMCVcIixcbiAgICBkaXNwbGF5OiBcImZsZXhcIixcbiAgICBmbGV4RGlyZWN0aW9uOiBcImNvbHVtblwiLFxuICAgIGp1c3RpZnlDb250ZW50OiBcImNlbnRlclwiLFxuICAgIGFsaWduSXRlbXM6IFwiY2VudGVyXCIsXG4gIH1cbiAgdm9pY2VDYWxsQnV0dG9uU3R5bGU6IGFueSA9IHtcbiAgICBidXR0b25JY29uVGludDogXCJSR0IoNTEsIDE1MywgMjU1KVwiLFxuICAgIGJ1dHRvblRleHRGb250OiBcIjQwMCAxMnB4IEludGVyXCIsXG4gICAgYnV0dG9uVGV4dENvbG9yOiBcIlJHQig1MSwgMTUzLCAyNTUpXCIsXG4gICAgcGFkZGluZzogXCI4cHggMzJweFwiXG4gIH1cbiAgdmlkZW9DYWxsQnV0dG9uU3R5bGU6IGFueSA9IHtcbiAgICBidXR0b25JY29uVGludDogXCJSR0IoNTEsIDE1MywgMjU1KVwiLFxuICAgIGJ1dHRvblRleHRGb250OiBcIjQwMCAxMnB4IEludGVyXCIsXG4gICAgYnV0dG9uVGV4dENvbG9yOiBcIlJHQig1MSwgMTUzLCAyNTUpXCIsXG4gICAgcGFkZGluZzogXCI4cHggMzJweFwiXG4gIH1cbiAgc2hvd091dGdvaW5nQ2FsbHNjcmVlbjogYm9vbGVhbiA9IGZhbHNlO1xuICBvdXRnb2luZ0NhbGxTdHlsZTogT3V0Z29pbmdDYWxsU3R5bGUgPSB7XG4gICAgd2lkdGg6IFwiMzYwcHhcIixcbiAgICBoZWlnaHQ6IFwiNTgxcHhcIixcbiAgICB0aXRsZVRleHRGb250OiBcIjcwMCAyMnB4IEludGVyXCIsXG4gICAgdGl0bGVUZXh0Q29sb3I6IFwiUkdCKDIwLCAyMCwgMjApXCIsXG4gICAgc3VidGl0bGVUZXh0Rm9udDogXCI0MDAgMTVweCBJbnRlclwiLFxuICAgIHN1YnRpdGxlVGV4dENvbG9yOiBcIlJHQkEoMjAsIDIwLCAyMCwgMC41OClcIixcbiAgICBib3JkZXJSYWRpdXM6IFwiOHB4XCJcbiAgfTtcbiAgb25nb2luZ0NhbGxTdHlsZTogQ2FsbHNjcmVlblN0eWxlID0ge31cbiAgYWN0aXZlQ2FsbDogQ29tZXRDaGF0LkNhbGwgfCBudWxsID0gbnVsbFxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgdGhlbWVTZXJ2aWNlOiBDb21ldENoYXRUaGVtZVNlcnZpY2UpIHsgfVxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBDb21ldENoYXQuZ2V0TG9nZ2VkaW5Vc2VyKCkudGhlbigodXNlcjpDb21ldENoYXQuVXNlciB8IG51bGwpPT57XG4gICAgICB0aGlzLmxvZ2dlZEluVXNlciA9IHVzZXJcbiAgICB9KS5jYXRjaCgoZXJyb3I6Q29tZXRDaGF0LkNvbWV0Q2hhdEV4Y2VwdGlvbik9PntcbiAgICAgIGlmKHRoaXMub25FcnJvcil7XG4gICAgICAgIHRoaXMub25FcnJvcihlcnJvcilcbiAgICAgIH1cbiAgICB9KVxuICAgIHRoaXMuc2V0VGhlbWVTdHlsZSgpXG4gICAgdGhpcy5hdHRhY2hMaXN0ZW5lcnMoKVxuICAgIHRoaXMuc3Vic2NyaWJlVG9FdmVudHMoKVxuICB9XG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMucmVtb3ZlTGlzdGVuZXIoKTtcbiAgICB0aGlzLnVuc3Vic2NyaWJlVG9FdmVudHMoKVxuICB9XG4gIGdldENhbGxCdWlsZGVyKCk6IHR5cGVvZiBDb21ldENoYXRVSUtpdENhbGxzLkNhbGxTZXR0aW5ncyB8IHVuZGVmaW5lZCB7XG4gICAgbGV0IGF1ZGlvT25seUNhbGw6IGJvb2xlYW4gPSB0aGlzLmFjdGl2ZUNhbGw/LmdldFR5cGUoKSA9PSBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlVHlwZXMuYXVkaW8gPyB0cnVlIDogZmFsc2VcbiAgICBjb25zdCBjYWxsU2V0dGluZ3MgPSBuZXcgQ29tZXRDaGF0VUlLaXRDYWxscy5DYWxsU2V0dGluZ3NCdWlsZGVyKClcbiAgICAuZW5hYmxlRGVmYXVsdExheW91dCh0cnVlKVxuICAgIC5zZXRJc0F1ZGlvT25seUNhbGwoYXVkaW9Pbmx5Q2FsbClcbiAgICAuc2V0Q2FsbExpc3RlbmVyKFxuICAgICAgbmV3IENvbWV0Q2hhdFVJS2l0Q2FsbHMuT25nb2luZ0NhbGxMaXN0ZW5lcih7XG4gICAgICAgIG9uQ2FsbEVuZGVkOiAoKSA9PiB7XG4gICAgICAgICAgaWYodGhpcy5jYWxsPy5nZXRSZWNlaXZlclR5cGUoKSA9PSBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlUmVjZWl2ZXJUeXBlLnVzZXIpe1xuICAgICAgICAgICAgQ29tZXRDaGF0VUlLaXRDYWxscy5lbmRTZXNzaW9uKCk7XG4gICAgICAgICAgICB0aGlzLmNsb3NlQ2FsbFNjcmVlbigpO1xuICAgICAgICAgfVxuXG4gICAgICAgIH0sXG4gICAgICAgIG9uQ2FsbEVuZEJ1dHRvblByZXNzZWQ6ICgpID0+IHtcbiAgICAgICAgICBpZih0aGlzLmNhbGw/LmdldFJlY2VpdmVyVHlwZSgpID09IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VSZWNlaXZlclR5cGUudXNlcil7XG4gICAgICAgICAgICBDb21ldENoYXQuZW5kQ2FsbCh0aGlzLnNlc3Npb25JZCkudGhlbigoY2FsbDpDb21ldENoYXQuQ2FsbCk9PntcbiAgICAgICAgICAgICAgQ29tZXRDaGF0VUlLaXRDYWxscy5lbmRTZXNzaW9uKCk7XG4gICAgICAgICAgICAgIENvbWV0Q2hhdENhbGxFdmVudHMuY2NDYWxsRW5kZWQubmV4dChjYWxsKTtcbiAgICAgICAgICAgICAgdGhpcy5jbG9zZUNhbGxTY3JlZW4oKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goKGVycjpDb21ldENoYXQuQ29tZXRDaGF0RXhjZXB0aW9uKT0+e1xuICAgICAgICAgICAgICBpZih0aGlzLm9uRXJyb3Ipe1xuICAgICAgICAgICAgICAgIHRoaXMub25FcnJvcihlcnIpXG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfSlcbiAgICAgICAgIH1cbiAgICAgICAgIGVsc2V7XG4gICAgICAgICAgdGhpcy5jbG9zZUNhbGxTY3JlZW4oKTtcbiAgICAgICAgIH1cblxuXG4gICAgICAgIH0sXG4gICAgICAgIG9uRXJyb3I6IChlcnJvcjpDb21ldENoYXQuQ29tZXRDaGF0RXhjZXB0aW9uKSA9PiB7XG4gICAgICAgICAgaWYodGhpcy5vbkVycm9yKXtcbiAgICAgICAgICAgIHRoaXMub25FcnJvcihlcnJvcilcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgIClcbiAgICAuYnVpbGQoKTtcbiAgICByZXR1cm4gY2FsbFNldHRpbmdzXG4gIH1cbiAgY2xvc2VDYWxsU2NyZWVuKCl7XG4gICAgdGhpcy5kaXNhYmxlQnV0dG9ucyA9IGZhbHNlXG4gICAgdGhpcy5hY3RpdmVDYWxsID0gbnVsbFxuICAgIHRoaXMuc2hvd09uZ29pbmdDYWxsID0gZmFsc2VcbiAgICB0aGlzLnNlc3Npb25JZCA9IFwiXCJcbiAgICB0aGlzLnNob3dPdXRnb2luZ0NhbGxzY3JlZW4gPSBmYWxzZTtcbiAgICB0aGlzLmNhbGwgPSBudWxsO1xuICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKVxuICB9XG4gIG9wZW5PbmdvaW5nQ2FsbFNjcmVlbihjYWxsOiBDb21ldENoYXQuQ2FsbCkge1xuICAgIHRoaXMuc2hvd091dGdvaW5nQ2FsbHNjcmVlbiA9IGZhbHNlO1xuICAgIHRoaXMuYWN0aXZlQ2FsbCA9IGNhbGxcbiAgICB0aGlzLnNlc3Npb25JZCA9IGNhbGwuZ2V0U2Vzc2lvbklkKClcbiAgICB0aGlzLnNob3dPbmdvaW5nQ2FsbCA9IHRydWVcbiAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKClcbiAgfVxuICBpbml0aWF0ZUNhbGwodHlwZTogc3RyaW5nKSB7XG5cbiAgICBjb25zdCByZWNlaXZlclR5cGU6IHN0cmluZyA9IHRoaXMudXNlciA/IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VSZWNlaXZlclR5cGUudXNlciA6IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VSZWNlaXZlclR5cGUuZ3JvdXBcbiAgICBjb25zdCByZWNlaXZlcklkOiBzdHJpbmcgPSB0aGlzLnVzZXIgPyB0aGlzLnVzZXIuZ2V0VWlkKCkgOiB0aGlzLmdyb3VwLmdldEd1aWQoKVxuICAgIGNvbnN0IGNhbGw6IENvbWV0Q2hhdC5DYWxsID0gbmV3IENvbWV0Q2hhdC5DYWxsKFxuICAgICAgcmVjZWl2ZXJJZCxcbiAgICAgIHR5cGUsXG4gICAgICByZWNlaXZlclR5cGVcbiAgICApO1xuICAgIENvbWV0Q2hhdC5pbml0aWF0ZUNhbGwoY2FsbClcbiAgICAgIC50aGVuKChvdXRnb2luZ0NhbGwpID0+IHtcbiAgICAgICAgLy93aGVuIHRoaXMgY29tcG9uZW50IGlzIHBhcnQgb2YgY2hhdCB3aWRnZXQgdHJpZ2dlciBhbiBldmVudC4uIChvdXRnb2luZ2NhbGwgY29tcG9uZW50IGlzIHVzZWQgc2VwYXJhdGVseSBpbiBjaGF0IHdpZGdldClcbiAgICAgICAgdGhpcy5jYWxsID0gb3V0Z29pbmdDYWxsXG4gICAgICAgIHRoaXMuc2hvd091dGdvaW5nQ2FsbHNjcmVlbiA9IHRydWU7XG4gICAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKVxuICAgICAgICBDb21ldENoYXRDYWxsRXZlbnRzLmNjT3V0Z29pbmdDYWxsLm5leHQoXG4gICAgICAgICAgb3V0Z29pbmdDYWxsXG4gICAgICAgIClcblxuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgaWYgKHRoaXMub25FcnJvcikge1xuICAgICAgICAgIHRoaXMub25FcnJvcihlcnJvcilcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBpbml0aWF0ZUF1ZGlvQ2FsbCgpIHtcbiAgICBpZiAodGhpcy51c2VyKSB7XG4gICAgICB0aGlzLmluaXRpYXRlQ2FsbChDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlVHlwZXMuYXVkaW8pXG4gICAgfVxuICB9XG4gIGluaXRpYXRlVmlkZW9DYWxsKCkge1xuICAgIGlmICh0aGlzLnVzZXIpIHtcbiAgICAgIHRoaXMuaW5pdGlhdGVDYWxsKENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VUeXBlcy52aWRlbylcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICB0aGlzLnNlc3Npb25JZCA9IHRoaXMuZ3JvdXAuZ2V0R3VpZCgpXG4gICAgICB0aGlzLnNlbmRDdXN0b21NZXNzYWdlKClcbiAgICAgIHRoaXMuc2hvd09uZ29pbmdDYWxsID0gdHJ1ZTtcbiAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKVxuXG4gICAgfVxuICB9XG4gIHNlbmRDdXN0b21NZXNzYWdlKCkge1xuICAgIGNvbnN0IHJlY2VpdmVyVHlwZTogc3RyaW5nID0gdGhpcy51c2VyID8gQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVJlY2VpdmVyVHlwZS51c2VyIDogQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVJlY2VpdmVyVHlwZS5ncm91cFxuICAgIGNvbnN0IHJlY2VpdmVySWQ6IHN0cmluZyA9IHRoaXMudXNlciA/IHRoaXMudXNlci5nZXRVaWQoKSA6IHRoaXMuZ3JvdXAuZ2V0R3VpZCgpXG4gICAgY29uc3QgY3VzdG9tRGF0YSA9IHsgXCJzZXNzaW9uSURcIjogdGhpcy5zZXNzaW9uSWQsIFwic2Vzc2lvbklkXCI6IHRoaXMuc2Vzc2lvbklkLCBcImNhbGxUeXBlXCI6IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VUeXBlcy52aWRlbyB9O1xuICAgIGNvbnN0IGN1c3RvbVR5cGUgPSAgQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuY2FsbHMubWVldGluZztcbiAgICBjb25zdCBjb252ZXJzYXRpb25JZCA9IGBncm91cF8ke3RoaXMuc2Vzc2lvbklkfWA7XG5cbiAgICBjb25zdCBjdXN0b21NZXNzYWdlOiBhbnkgPSBuZXcgQ29tZXRDaGF0LkN1c3RvbU1lc3NhZ2UocmVjZWl2ZXJJZCwgcmVjZWl2ZXJUeXBlLCBjdXN0b21UeXBlLCBjdXN0b21EYXRhKTtcbiAgICBjdXN0b21NZXNzYWdlLnNldFNlbmRlcih0aGlzLmxvZ2dlZEluVXNlcik7XG4gICAgY3VzdG9tTWVzc2FnZS5zZXRNZXRhZGF0YSh7IGluY3JlbWVudFVucmVhZENvdW50OiBmYWxzZSB9KTtcbiAgICBjdXN0b21NZXNzYWdlLnNldFJlY2VpdmVyKChyZWNlaXZlclR5cGUgYXMgYW55KSk7XG4gICAgY3VzdG9tTWVzc2FnZS5zZXRDb252ZXJzYXRpb25JZChjb252ZXJzYXRpb25JZCk7XG4gICAgY3VzdG9tTWVzc2FnZS5zZW50QXQgPSBDb21ldENoYXRVSUtpdFV0aWxpdHkuZ2V0VW5peFRpbWVzdGFtcCgpO1xuICAgIGN1c3RvbU1lc3NhZ2UubXVpZCA9IENvbWV0Q2hhdFVJS2l0VXRpbGl0eS5JRCgpO1xuICAgIC8vIGN1c3RvbSBtZXNzYWdlXG4gICAgQ29tZXRDaGF0TWVzc2FnZUV2ZW50cy5jY01lc3NhZ2VTZW50Lm5leHQoe1xuICAgICAgbWVzc2FnZTpjdXN0b21NZXNzYWdlLFxuICAgICAgc3RhdHVzOk1lc3NhZ2VTdGF0dXMuaW5wcm9ncmVzc1xuICAgIH0pXG4gICAgQ29tZXRDaGF0LnNlbmRDdXN0b21NZXNzYWdlKGN1c3RvbU1lc3NhZ2UpLnRoZW4oKG1zZykgPT4ge1xuICAgICAgQ29tZXRDaGF0TWVzc2FnZUV2ZW50cy5jY01lc3NhZ2VTZW50Lm5leHQoe1xuICAgICAgICBtZXNzYWdlOm1zZyxcbiAgICAgICAgc3RhdHVzOk1lc3NhZ2VTdGF0dXMuc3VjY2Vzc1xuICAgICAgfSlcbiAgICB9KVxuICAgIC5jYXRjaCgoZXJyb3I6Q29tZXRDaGF0LkNvbWV0Q2hhdEV4Y2VwdGlvbik9PntcbiAgICAgaWYodGhpcy5vbkVycm9yKXtcbiAgICAgIHRoaXMub25FcnJvcihlcnJvcilcbiAgICAgfVxuICAgIH0pXG5cbiAgfVxuICBjYW5jZWxPdXRnb2luZ0NhbGwgPSAoKSA9PiB7XG4gICAgQ29tZXRDaGF0U291bmRNYW5hZ2VyLnBhdXNlKClcbiAgICBDb21ldENoYXQucmVqZWN0Q2FsbChcbiAgICAgIHRoaXMuY2FsbCEuZ2V0U2Vzc2lvbklkKCksXG4gICAgICBDb21ldENoYXRVSUtpdENvbnN0YW50cy5jYWxscy5jYW5jZWxsZWRcbiAgICApXG4gICAgICAudGhlbigoY2FsbCkgPT4ge1xuICAgICAgICB0aGlzLmRpc2FibGVCdXR0b25zID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2hvd091dGdvaW5nQ2FsbHNjcmVlbiA9IGZhbHNlXG4gICAgICAgIENvbWV0Q2hhdENhbGxFdmVudHMuY2NDYWxsUmVqZWN0ZWQubmV4dChjYWxsKVxuICAgICAgICB0aGlzLmNhbGwgPSBudWxsO1xuICAgICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKClcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLm9uRXJyb3IpIHtcbiAgICAgICAgICB0aGlzLm9uRXJyb3IoZXJyb3IpXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIHRoaXMuc2hvd091dGdvaW5nQ2FsbHNjcmVlbiA9IGZhbHNlO1xuICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKVxuICB9XG4gIGdldFZvaWNlQ2FsbEJ1dHRvblN0eWxlKGRpc2FibGVCdXR0b25zOmJvb2xlYW4pe1xuICAgIGNvbnN0IGJ1dHRvbkljb25UaW50ID0gZGlzYWJsZUJ1dHRvbnNcbiAgICA/IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NjAwKClcbiAgICA6IHRoaXMuY2FsbEJ1dHRvbnNTdHlsZS52b2ljZUNhbGxJY29uVGludDtcblxuICByZXR1cm4ge1xuICAgIC4uLnRoaXMudmlkZW9DYWxsQnV0dG9uU3R5bGUsXG4gICAgYnV0dG9uSWNvblRpbnQsXG4gIH07XG4gIH1cbiAgZ2V0VmlkZW9DYWxsQnV0dG9uU3R5bGUoZGlzYWJsZUJ1dHRvbnM6IGJvb2xlYW4pIHtcbiAgICBjb25zdCBidXR0b25JY29uVGludCA9IGRpc2FibGVCdXR0b25zXG4gICAgICA/IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NjAwKClcbiAgICAgIDogdGhpcy5jYWxsQnV0dG9uc1N0eWxlLnZpZGVvQ2FsbEljb25UaW50O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnRoaXMudmlkZW9DYWxsQnV0dG9uU3R5bGUsXG4gICAgICBidXR0b25JY29uVGludCxcbiAgICB9O1xuICB9XG5cbiAgYXR0YWNoTGlzdGVuZXJzKCkge1xuICAgIENvbWV0Q2hhdC5hZGRDYWxsTGlzdGVuZXIoXG4gICAgICB0aGlzLmNhbGxidXR0b25zTGlzdGVuZXJJZCxcbiAgICAgIG5ldyBDb21ldENoYXQuQ2FsbExpc3RlbmVyKHtcbiAgICAgICAgb25JbmNvbWluZ0NhbGxSZWNlaXZlZDogKGNhbGw6IENvbWV0Q2hhdC5DYWxsKSA9PiB7XG4gICAgICAgICAgdGhpcy5jYWxsID0gY2FsbDtcbiAgICAgICAgICB0aGlzLmRpc2FibGVCdXR0b25zID0gdHJ1ZVxuICAgICAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKVxuICAgICAgICB9LFxuICAgICAgICBvbkluY29taW5nQ2FsbENhbmNlbGxlZDogKGNhbGw6IENvbWV0Q2hhdC5DYWxsKSA9PiB7XG4gICAgICAgICAgdGhpcy5kaXNhYmxlQnV0dG9ucyA9IGZhbHNlXG4gICAgICAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKVxuICAgICAgICB9LFxuICAgICAgICBvbk91dGdvaW5nQ2FsbFJlamVjdGVkOiAoY2FsbDogQ29tZXRDaGF0LkNhbGwpID0+IHtcbiAgICAgICAgICB0aGlzLmRpc2FibGVCdXR0b25zID0gZmFsc2VcbiAgICAgICAgICB0aGlzLmNhbGwgPSBudWxsO1xuICAgICAgICAgIHRoaXMuc2hvd091dGdvaW5nQ2FsbHNjcmVlbiA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKVxuICAgICAgICB9LFxuICAgICAgICBvbk91dGdvaW5nQ2FsbEFjY2VwdGVkOiAoY2FsbDogQ29tZXRDaGF0LkNhbGwpID0+IHtcbiAgICAgICAgICB0aGlzLmNhbGwgPSBjYWxsO1xuICAgICAgICAgIHRoaXMub3Blbk9uZ29pbmdDYWxsU2NyZWVuKGNhbGwpO1xuICAgICAgICB9LFxuICAgICAgICBvbkNhbGxFbmRlZE1lc3NhZ2VSZWNlaXZlZDooY2FsbDogQ29tZXRDaGF0LkNhbGwpID0+IHtcbiAgICAgICAgICB0aGlzLmRpc2FibGVCdXR0b25zID0gZmFsc2VcbiAgICAgICAgICB0aGlzLmNhbGwgPSBudWxsO1xuICAgICAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKVxuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH1cbiAgcmVtb3ZlTGlzdGVuZXIoKSB7XG4gICAgQ29tZXRDaGF0LnJlbW92ZUNhbGxMaXN0ZW5lcih0aGlzLmNhbGxidXR0b25zTGlzdGVuZXJJZCk7XG4gIH1cbiAgc3Vic2NyaWJlVG9FdmVudHMoKSB7XG4gICAgdGhpcy5jY0NhbGxSZWplY3RlZCA9IENvbWV0Q2hhdENhbGxFdmVudHMuY2NDYWxsUmVqZWN0ZWQuc3Vic2NyaWJlKChjYWxsOiBDb21ldENoYXQuQ2FsbCkgPT4ge1xuICAgICAgdGhpcy5kaXNhYmxlQnV0dG9ucyA9IGZhbHNlXG4gICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKClcbiAgICB9KVxuICAgIHRoaXMuY2NPdXRnb2luZ0NhbGwgPSBDb21ldENoYXRDYWxsRXZlbnRzLmNjT3V0Z29pbmdDYWxsLnN1YnNjcmliZSgoY2FsbDogQ29tZXRDaGF0LkNhbGwpID0+IHtcbiAgICAgIHRoaXMuZGlzYWJsZUJ1dHRvbnMgPSB0cnVlXG4gICAgICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpXG4gICAgfSlcbiAgICB0aGlzLmNjQ2FsbEVuZGVkID0gQ29tZXRDaGF0Q2FsbEV2ZW50cy5jY0NhbGxFbmRlZC5zdWJzY3JpYmUoKGNhbGw6IENvbWV0Q2hhdC5DYWxsKSA9PiB7XG50aGlzLmNsb3NlQ2FsbFNjcmVlbigpXG4gICAgfSlcbiAgfVxuICB1bnN1YnNjcmliZVRvRXZlbnRzKCkge1xuICAgIHRoaXMuY2NDYWxsUmVqZWN0ZWQ/LnVuc3Vic2NyaWJlKClcbiAgICB0aGlzLmNjT3V0Z29pbmdDYWxsPy51bnN1YnNjcmliZSgpXG4gICAgdGhpcy5jY0NhbGxFbmRlZD8udW5zdWJzY3JpYmUoKVxuICB9XG4gIHNldFRoZW1lU3R5bGUoKSB7XG4gICAgdGhpcy5zZXRjYWxsQnV0dG9uc1N0eWxlKClcbiAgICB0aGlzLnNldE9uZ29pbmdDYWxsU3R5bGUoKVxuICB9XG4gIHNldE9uZ29pbmdDYWxsU3R5bGUgPSAoKSA9PiB7XG4gICAgbGV0IGRlZmF1bHRTdHlsZSA9IG5ldyBDYWxsc2NyZWVuU3R5bGUoe1xuICAgICAgbWF4SGVpZ2h0OiBcIjEwMCVcIixcbiAgICAgIG1heFdpZHRoOiBcIjEwMCVcIixcbiAgICAgIGJvcmRlcjogXCJub25lXCIsXG4gICAgICBib3JkZXJSYWRpdXM6IFwiMFwiLFxuICAgICAgYmFja2dyb3VuZDogXCIjMWMyMjI2XCIsXG4gICAgICBtaW5IZWlnaHQ6IFwiNDAwcHhcIixcbiAgICAgIG1pbldpZHRoOiBcIjQwMHB4XCIsXG4gICAgICBtaW5pbWl6ZUljb25UaW50OiB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudDkwMCgpLFxuICAgICAgbWF4aW1pemVJY29uVGludDogdGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ5MDAoKSxcbiAgICB9KVxuICAgIHRoaXMub25nb2luZ0NhbGxTdHlsZSA9IHsgLi4uZGVmYXVsdFN0eWxlLCAuLi50aGlzLm9uZ29pbmdDYWxsU3R5bGUgfVxuICB9XG4gIHNldGNhbGxCdXR0b25zU3R5bGUoKSB7XG4gICAgbGV0IGRlZmF1bHRTdHlsZTogQ2FsbEJ1dHRvbnNTdHlsZSA9IG5ldyBDYWxsQnV0dG9uc1N0eWxlKHtcbiAgICAgIHdpZHRoOiBcIjEwMCVcIixcbiAgICAgIGhlaWdodDogXCIxMDAlXCIsXG4gICAgICBiYWNrZ3JvdW5kOiBcInRyYW5zcGFyZW50XCIsXG4gICAgICBib3JkZXI6IFwibm9uZVwiLFxuICAgICAgYm9yZGVyUmFkaXVzOiBcIjBcIixcbiAgICAgIHZvaWNlQ2FsbEljb25UaW50OiB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldFByaW1hcnkoKSxcbiAgICAgIHZpZGVvQ2FsbEljb25UaW50OiB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldFByaW1hcnkoKSxcbiAgICAgIHZvaWNlQ2FsbEljb25UZXh0Rm9udDogZm9udEhlbHBlcih0aGlzLnRoZW1lU2VydmljZS50aGVtZS50eXBvZ3JhcGh5LmNhcHRpb24xKSxcbiAgICAgIHZpZGVvQ2FsbEljb25UZXh0Rm9udDogZm9udEhlbHBlcih0aGlzLnRoZW1lU2VydmljZS50aGVtZS50eXBvZ3JhcGh5LmNhcHRpb24xKSxcbiAgICAgIHZvaWNlQ2FsbEljb25UZXh0Q29sb3I6IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0UHJpbWFyeSgpLFxuICAgICAgdmlkZW9DYWxsSWNvblRleHRDb2xvcjogdGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRQcmltYXJ5KCksXG4gICAgICBidXR0b25QYWRkaW5nOiBcIjhweCAzMnB4XCIsXG4gICAgICBidXR0b25CYWNrZ3JvdW5kOnRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50MTAwKCksXG4gICAgICBidXR0b25Cb3JkZXI6XCIwXCIsXG4gICAgICBidXR0b25Cb3JkZXJSYWRpdXM6XCI4cHhcIlxuICAgIH0pXG4gICAgdGhpcy5jYWxsQnV0dG9uc1N0eWxlID0geyAuLi5kZWZhdWx0U3R5bGUsIC4uLnRoaXMuY2FsbEJ1dHRvbnNTdHlsZSB9XG4gICAgdGhpcy52b2ljZUNhbGxCdXR0b25TdHlsZSA9IHtcbiAgICAgIGJ1dHRvbkljb25UaW50OiB0aGlzLmRpc2FibGVCdXR0b25zID8gdGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ2MDAoKSA6ICB0aGlzLmNhbGxCdXR0b25zU3R5bGUudm9pY2VDYWxsSWNvblRpbnQsXG4gICAgICBidXR0b25UZXh0Rm9udDogdGhpcy5jYWxsQnV0dG9uc1N0eWxlLnZvaWNlQ2FsbEljb25UZXh0Rm9udCxcbiAgICAgIGJ1dHRvblRleHRDb2xvcjogdGhpcy5jYWxsQnV0dG9uc1N0eWxlLnZvaWNlQ2FsbEljb25UZXh0Q29sb3IsXG4gICAgICBwYWRkaW5nOiB0aGlzLmNhbGxCdXR0b25zU3R5bGUuYnV0dG9uUGFkZGluZyxcbiAgICAgIGJhY2tncm91bmQ6dGhpcy5jYWxsQnV0dG9uc1N0eWxlLmJ1dHRvbkJhY2tncm91bmQsXG4gICAgICBib3JkZXI6dGhpcy5jYWxsQnV0dG9uc1N0eWxlLmJvcmRlcixcbiAgICAgIGJvcmRlclJhZGl1czp0aGlzLmNhbGxCdXR0b25zU3R5bGUuYnV0dG9uQm9yZGVyUmFkaXVzLFxuICAgICAgLi4udGhpcy5idXR0b25TdHlsZVxuICAgIH1cbiAgICB0aGlzLnZpZGVvQ2FsbEJ1dHRvblN0eWxlID0ge1xuICAgICAgYnV0dG9uSWNvblRpbnQ6IHRoaXMuZGlzYWJsZUJ1dHRvbnMgPyB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudDYwMCgpIDogICB0aGlzLmNhbGxCdXR0b25zU3R5bGUudmlkZW9DYWxsSWNvblRpbnQsXG4gICAgICBidXR0b25UZXh0Rm9udDogdGhpcy5jYWxsQnV0dG9uc1N0eWxlLnZpZGVvQ2FsbEljb25UZXh0Rm9udCxcbiAgICAgIGJ1dHRvblRleHRDb2xvcjogdGhpcy5jYWxsQnV0dG9uc1N0eWxlLnZpZGVvQ2FsbEljb25UZXh0Q29sb3IsXG4gICAgICBwYWRkaW5nOiB0aGlzLmNhbGxCdXR0b25zU3R5bGUuYnV0dG9uUGFkZGluZyxcbiAgICAgIGJhY2tncm91bmQ6dGhpcy5jYWxsQnV0dG9uc1N0eWxlLmJ1dHRvbkJhY2tncm91bmQsXG4gICAgICBib3JkZXI6dGhpcy5jYWxsQnV0dG9uc1N0eWxlLmJvcmRlcixcbiAgICAgIGJvcmRlclJhZGl1czp0aGlzLmNhbGxCdXR0b25zU3R5bGUuYnV0dG9uQm9yZGVyUmFkaXVzLFxuICAgICAgLi4udGhpcy5idXR0b25TdHlsZVxuICAgIH1cbiAgfVxuICB3cmFwcGVyU3R5bGUgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGhlaWdodDogdGhpcy5jYWxsQnV0dG9uc1N0eWxlLmhlaWdodCxcbiAgICAgIHdpZHRoOiB0aGlzLmNhbGxCdXR0b25zU3R5bGUud2lkdGgsXG4gICAgICBiYWNrZ3JvdW5kOiB0aGlzLmNhbGxCdXR0b25zU3R5bGUuYmFja2dyb3VuZCxcbiAgICAgIGJvcmRlcjogdGhpcy5jYWxsQnV0dG9uc1N0eWxlLmJvcmRlcixcbiAgICAgIGJvcmRlclJhZGl1czogdGhpcy5jYWxsQnV0dG9uc1N0eWxlLmJvcmRlclJhZGl1c1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNjLWNhbGwtYnV0dG9uc19fd3JhcHBlclwiIFtuZ1N0eWxlXT1cIndyYXBwZXJTdHlsZSgpXCI+XG48ZGl2IGNsYXNzPVwiY2MtY2FsbC1idXR0b25zLWJ1dHRvbnNcIj5cbjxjb21ldGNoYXQtYnV0dG9uIFtkaXNhYmxlZF09XCJkaXNhYmxlQnV0dG9ucyA/IHRydWUgOiBmYWxzZVwiICpuZ0lmPVwidXNlclwiIChjYy1idXR0b24tY2xpY2tlZCk9XCJpbml0aWF0ZUF1ZGlvQ2FsbCgpXCIgW2J1dHRvblN0eWxlXT1cImdldFZvaWNlQ2FsbEJ1dHRvblN0eWxlKGRpc2FibGVCdXR0b25zKVwiIFt0ZXh0XT1cInZvaWNlQ2FsbEljb25UZXh0XCIgW2hvdmVyVGV4dF09XCJ2b2ljZUNhbGxJY29uSG92ZXJUZXh0XCIgW2ljb25VUkxdPVwidm9pY2VDYWxsSWNvblVSTFwiPjwvY29tZXRjaGF0LWJ1dHRvbj5cbjxjb21ldGNoYXQtYnV0dG9uIFtkaXNhYmxlZF09XCJkaXNhYmxlQnV0dG9ucyAgPyB0cnVlIDogZmFsc2VcIiAqbmdJZj1cInVzZXIgfHwgZ3JvdXBcIiAoY2MtYnV0dG9uLWNsaWNrZWQpPVwiaW5pdGlhdGVWaWRlb0NhbGwoKVwiIFtidXR0b25TdHlsZV09XCJnZXRWaWRlb0NhbGxCdXR0b25TdHlsZShkaXNhYmxlQnV0dG9ucylcIiBbdGV4dF09XCJ2aWRlb0NhbGxJY29uVGV4dFwiIFtob3ZlclRleHRdPVwidmlkZW9DYWxsSWNvbkhvdmVyVGV4dFwiIFtpY29uVVJMXT1cInZpZGVvQ2FsbEljb25VUkxcIj48L2NvbWV0Y2hhdC1idXR0b24+XG48L2Rpdj5cbjwvZGl2PlxuPGNvbWV0Y2hhdC1vbmdvaW5nLWNhbGwgKm5nSWY9XCJzaG93T25nb2luZ0NhbGxcIiBbbWF4aW1pemVJY29uVVJMXT1cIm9uZ29pbmdDYWxsQ29uZmlndXJhdGlvbi5tYXhpbWl6ZUljb25VUkxcIiBbbWluaW1pemVJY29uVVJMXT1cIm9uZ29pbmdDYWxsQ29uZmlndXJhdGlvbi5taW5pbWl6ZUljb25VUkxcIiBbb25nb2luZ0NhbGxTdHlsZV09XCJvbmdvaW5nQ2FsbENvbmZpZ3VyYXRpb24ub25nb2luZ0NhbGxTdHlsZSB8fCBvbmdvaW5nQ2FsbFN0eWxlXCIgW3Nlc3Npb25JRF09XCJzZXNzaW9uSWRcIiAgW2NhbGxTZXR0aW5nc0J1aWxkZXJdPVwiZ2V0Q2FsbEJ1aWxkZXIoKSFcIj48L2NvbWV0Y2hhdC1vbmdvaW5nLWNhbGw+XG48Y29tZXRjaGF0LWJhY2tkcm9wICpuZ0lmPVwic2hvd091dGdvaW5nQ2FsbHNjcmVlblwiPlxuPGNvbWV0Y2hhdC1vdXRnb2luZy1jYWxsIFtjdXN0b21Tb3VuZEZvckNhbGxzXT1cIm91dGdvaW5nQ2FsbENvbmZpZ3VyYXRpb24uY3VzdG9tU291bmRGb3JDYWxsc1wiIFtvbkVycm9yXT1cIm91dGdvaW5nQ2FsbENvbmZpZ3VyYXRpb24ub25FcnJvclwiIFtkaXNhYmxlU291bmRGb3JDYWxsc109XCJvdXRnb2luZ0NhbGxDb25maWd1cmF0aW9uLmRpc2FibGVTb3VuZEZvckNhbGxzXCIgW2F2YXRhclN0eWxlXT1cIm91dGdvaW5nQ2FsbENvbmZpZ3VyYXRpb24uYXZhdGFyU3R5bGVcIiBbY3VzdG9tVmlld109XCJvdXRnb2luZ0NhbGxDb25maWd1cmF0aW9uLmN1c3RvbVZpZXdcIiBbZGVjbGluZUJ1dHRvbkljb25VUkxdPVwib3V0Z29pbmdDYWxsQ29uZmlndXJhdGlvbi5kZWNsaW5lQnV0dG9uSWNvblVSTFwiICBbb25DbG9zZUNsaWNrZWRdPVwib3V0Z29pbmdDYWxsQ29uZmlndXJhdGlvbi5vbkNsb3NlQ2xpY2tlZCB8fCBjYW5jZWxPdXRnb2luZ0NhbGxcIiBbb3V0Z29pbmdDYWxsU3R5bGVdPVwib3V0Z29pbmdDYWxsQ29uZmlndXJhdGlvbi5vdXRnb2luZ0NhbGxTdHlsZSB8fCBvdXRnb2luZ0NhbGxTdHlsZVwiIFtjYWxsXT1cImNhbGwhXCI+PC9jb21ldGNoYXQtb3V0Z29pbmctY2FsbD5cbjwvY29tZXRjaGF0LWJhY2tkcm9wPiJdfQ==
|