@projectcor/maia-components 2.11.17-6 → 2.11.17-8
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/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +6 -2
- package/lib/components/molecules/ChatAIMessages/newStyles.js +24 -21
- package/lib/hooks/useChatManager/useChatManager.js +2 -2
- package/lib/services/utils/mapChatMessages.js +2 -2
- package/lib/types/Chat.js +1 -1
- package/package.json +1 -1
|
@@ -25,8 +25,11 @@ export var SCMessagesScroll = styled.div.withConfig({
|
|
|
25
25
|
export var SCMessagesInner = styled.div.withConfig({
|
|
26
26
|
displayName: "newStyles__SCMessagesInner",
|
|
27
27
|
componentId: "sc-1k23l8x-3"
|
|
28
|
-
})(["flex-grow:1;display:flex;flex-direction:column;gap:36px;padding:
|
|
29
|
-
var $
|
|
28
|
+
})(["flex-grow:1;display:flex;flex-direction:column;gap:36px;padding:", " width:100%;max-width:864px;", ""], function (_ref2) {
|
|
29
|
+
var $isMarketplaceGlobal = _ref2.$isMarketplaceGlobal;
|
|
30
|
+
return $isMarketplaceGlobal ? '0 16px 16px;' : '0 16px;';
|
|
31
|
+
}, function (_ref3) {
|
|
32
|
+
var $scrollOnParent = _ref3.$scrollOnParent;
|
|
30
33
|
return $scrollOnParent ? 'overflow: visible;' : 'overflow-y: auto; overscroll-behavior-y: contain;';
|
|
31
34
|
});
|
|
32
35
|
|
|
@@ -44,11 +47,11 @@ export var SCOptionsList = styled.div.withConfig({
|
|
|
44
47
|
export var SCOptionItem = styled.div.withConfig({
|
|
45
48
|
displayName: "newStyles__SCOptionItem",
|
|
46
49
|
componentId: "sc-1k23l8x-6"
|
|
47
|
-
})(["color:", ";font-size:14px;line-height:140%;cursor:", ";opacity:", ";"], GLOBAL_COLORS.dark, function (
|
|
48
|
-
var $hasSelection =
|
|
50
|
+
})(["color:", ";font-size:14px;line-height:140%;cursor:", ";opacity:", ";"], GLOBAL_COLORS.dark, function (_ref4) {
|
|
51
|
+
var $hasSelection = _ref4.$hasSelection;
|
|
49
52
|
return $hasSelection ? 'not-allowed' : 'pointer';
|
|
50
|
-
}, function (
|
|
51
|
-
var $dimmed =
|
|
53
|
+
}, function (_ref5) {
|
|
54
|
+
var $dimmed = _ref5.$dimmed;
|
|
52
55
|
return $dimmed ? 0.5 : 1;
|
|
53
56
|
});
|
|
54
57
|
|
|
@@ -78,8 +81,8 @@ export var SCTaskLink = styled.a.withConfig({
|
|
|
78
81
|
export var SCMessageItemWrapper = styled.div.withConfig({
|
|
79
82
|
displayName: "newStyles__SCMessageItemWrapper",
|
|
80
83
|
componentId: "sc-1k23l8x-11"
|
|
81
|
-
})(["position:relative;display:flex;gap:8px;flex-direction:column;", ""], function (
|
|
82
|
-
var $isAssistant =
|
|
84
|
+
})(["position:relative;display:flex;gap:8px;flex-direction:column;", ""], function (_ref6) {
|
|
85
|
+
var $isAssistant = _ref6.$isAssistant;
|
|
83
86
|
return $isAssistant && 'justify-content: start;';
|
|
84
87
|
});
|
|
85
88
|
|
|
@@ -105,29 +108,29 @@ export var SCApprovalActionsColumn = styled.div.withConfig({
|
|
|
105
108
|
export var SCCAIMessageWrapper = styled.div.withConfig({
|
|
106
109
|
displayName: "newStyles__SCCAIMessageWrapper",
|
|
107
110
|
componentId: "sc-1k23l8x-15"
|
|
108
|
-
})(["contain:layout style;min-width:0;max-width:100%;padding:", ";border-radius:8px;background-color:", ";display:flex;flex-direction:column;gap:16px;", " h1{font-size:24px;line-height:122%;font-weight:600;color:rgba(32,32,31,1);padding:6px 0 6px 0;}h2{font-family:Work Sans;font-weight:600;font-size:20px;line-height:125%;color:rgba(32,32,31,1);padding:6px 0 8px 0;}h3{font-family:Work Sans;font-weight:600;font-size:18px;line-height:114.99999999999999%;color:rgba(32,32,31,1);padding:6px 0 8px 0;}h4{font-family:Work Sans;font-weight:600;font-size:16px;line-height:114.99999999999999%;color:rgba(32,32,31,1);padding:6px 0 8px 0;}h5{font-family:Work Sans;font-weight:600;font-size:16px;line-height:122%;color:rgba(32,32,31,1);padding:6px 0 8px 0;}h6{font-family:Work Sans;font-weight:400;font-size:16px;line-height:122%;color:rgba(32,32,31,1);padding:6px 0 8px 0;}p{line-height:140%;font-size:16px;font-weight:400;line-height:", ";color:", ";font-family:", ";letter-spacing:", ";margin-bottom:16px;&:last-child{margin-bottom:0;}}blockquote{margin:16px 0 !important;border-left:none;border-top:0.5px solid rgba(242,242,242,1);border-bottom:0.5px solid rgba(242,242,242,1);padding:16px 0 16px 12px;color:rgba(102,102,102,1);font-size:16px;line-height:140%;font-style:italic;p{padding-left:12px !important;margin:0 !important;border-left:1px solid rgba(217,217,217,1) !important;}}a{text-decoration:underline !important;font-size:16px;color:#337ab7 !important;}&.has-task-links a{text-decoration:none !important;color:#202020 !important;font-weight:600 !important;position:relative;padding-left:24px;&:hover{text-decoration:underline !important;}&::before{content:'';position:absolute;left:0;top:0;width:20px;height:20px;background-image:url(\"data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10 18C11.125 18 12.125 17.4375 12.6875 16.5625C13.7188 16.7812 14.8438 16.4688 15.6562 15.6562C16.4375 14.875 16.75 13.75 16.5312 12.7188C17.4062 12.1562 18 11.1562 18 10C18 8.875 17.4062 7.875 16.5312 7.3125C16.75 6.28125 16.4375 5.15625 15.6562 4.34375C14.8438 3.5625 13.7188 3.25 12.6875 3.46875C12.125 2.59375 11.125 2 10 2C8.84375 2 7.84375 2.59375 7.28125 3.46875C6.25 3.25 5.125 3.5625 4.34375 4.34375C3.53125 5.15625 3.21875 6.28125 3.4375 7.3125C2.5625 7.875 2 8.875 2 10C2 11.1562 2.5625 12.1562 3.4375 12.7188C3.21875 13.75 3.53125 14.875 4.34375 15.6562C5.125 16.4688 6.25 16.7812 7.28125 16.5625C7.84375 17.4375 8.84375 18 10 18ZM8.0625 14.625C7.40625 14.9375 6.34375 15.5625 5.375 14.5938C4.375 13.5938 5.125 12.4688 5.375 11.9375C4.71875 11.6875 3.5 11.375 3.5 10C3.5 8.59375 4.8125 8.3125 5.375 8.09375C5.09375 7.46875 4.4375 6.375 5.40625 5.40625C6.40625 4.40625 7.53125 5.15625 8.0625 5.40625C8.3125 4.75 8.625 3.5 10 3.5C11.4062 3.5 11.6875 4.84375 11.9062 5.40625C12.5312 5.125 13.625 4.46875 14.5938 5.4375C15.5938 6.4375 14.8438 7.5625 14.5938 8.09375C15.25 8.34375 16.4688 8.65625 16.4688 10.0312C16.4688 11.4375 15.1562 11.7188 14.5938 11.9375C14.875 12.5625 15.5625 13.6562 14.5938 14.625C13.7188 15.5 12.8438 15.0625 11.9062 14.625C11.6562 15.2812 11.3438 16.5 10 16.5C8.5625 16.5 8.28125 15.1875 8.0625 14.625Z' fill='%238740BF'/%3E%3C/svg%3E\");background-size:contain;background-repeat:no-repeat;background-position:center;}}ul{list-style:inside !important;padding-left:15px !important;margin:0px 0 16px 0 !important;& > li{list-style:disc !important;margin-left:16px !important;margin-bottom:4px !important;color:rgba(32,32,31,1);font-size:16px;}}hr{margin:28px 0 !important;padding:0 !important;}ol{margin:0px 0 16px 0 !important;& > li{margin-bottom:4px !important;color:rgba(32,32,31,1);font-size:16px;p:last-child{margin-bottom:14px !important;}}}"], function (
|
|
109
|
-
var isCurrentUser =
|
|
111
|
+
})(["contain:layout style;min-width:0;max-width:100%;padding:", ";border-radius:8px;background-color:", ";display:flex;flex-direction:column;gap:16px;", " h1{font-size:24px;line-height:122%;font-weight:600;color:rgba(32,32,31,1);padding:6px 0 6px 0;}h2{font-family:Work Sans;font-weight:600;font-size:20px;line-height:125%;color:rgba(32,32,31,1);padding:6px 0 8px 0;}h3{font-family:Work Sans;font-weight:600;font-size:18px;line-height:114.99999999999999%;color:rgba(32,32,31,1);padding:6px 0 8px 0;}h4{font-family:Work Sans;font-weight:600;font-size:16px;line-height:114.99999999999999%;color:rgba(32,32,31,1);padding:6px 0 8px 0;}h5{font-family:Work Sans;font-weight:600;font-size:16px;line-height:122%;color:rgba(32,32,31,1);padding:6px 0 8px 0;}h6{font-family:Work Sans;font-weight:400;font-size:16px;line-height:122%;color:rgba(32,32,31,1);padding:6px 0 8px 0;}p{line-height:140%;font-size:16px;font-weight:400;line-height:", ";color:", ";font-family:", ";letter-spacing:", ";margin-bottom:16px;&:last-child{margin-bottom:0;}}blockquote{margin:16px 0 !important;border-left:none;border-top:0.5px solid rgba(242,242,242,1);border-bottom:0.5px solid rgba(242,242,242,1);padding:16px 0 16px 12px;color:rgba(102,102,102,1);font-size:16px;line-height:140%;font-style:italic;p{padding-left:12px !important;margin:0 !important;border-left:1px solid rgba(217,217,217,1) !important;}}a{text-decoration:underline !important;font-size:16px;color:#337ab7 !important;}&.has-task-links a{text-decoration:none !important;color:#202020 !important;font-weight:600 !important;position:relative;padding-left:24px;&:hover{text-decoration:underline !important;}&::before{content:'';position:absolute;left:0;top:0;width:20px;height:20px;background-image:url(\"data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10 18C11.125 18 12.125 17.4375 12.6875 16.5625C13.7188 16.7812 14.8438 16.4688 15.6562 15.6562C16.4375 14.875 16.75 13.75 16.5312 12.7188C17.4062 12.1562 18 11.1562 18 10C18 8.875 17.4062 7.875 16.5312 7.3125C16.75 6.28125 16.4375 5.15625 15.6562 4.34375C14.8438 3.5625 13.7188 3.25 12.6875 3.46875C12.125 2.59375 11.125 2 10 2C8.84375 2 7.84375 2.59375 7.28125 3.46875C6.25 3.25 5.125 3.5625 4.34375 4.34375C3.53125 5.15625 3.21875 6.28125 3.4375 7.3125C2.5625 7.875 2 8.875 2 10C2 11.1562 2.5625 12.1562 3.4375 12.7188C3.21875 13.75 3.53125 14.875 4.34375 15.6562C5.125 16.4688 6.25 16.7812 7.28125 16.5625C7.84375 17.4375 8.84375 18 10 18ZM8.0625 14.625C7.40625 14.9375 6.34375 15.5625 5.375 14.5938C4.375 13.5938 5.125 12.4688 5.375 11.9375C4.71875 11.6875 3.5 11.375 3.5 10C3.5 8.59375 4.8125 8.3125 5.375 8.09375C5.09375 7.46875 4.4375 6.375 5.40625 5.40625C6.40625 4.40625 7.53125 5.15625 8.0625 5.40625C8.3125 4.75 8.625 3.5 10 3.5C11.4062 3.5 11.6875 4.84375 11.9062 5.40625C12.5312 5.125 13.625 4.46875 14.5938 5.4375C15.5938 6.4375 14.8438 7.5625 14.5938 8.09375C15.25 8.34375 16.4688 8.65625 16.4688 10.0312C16.4688 11.4375 15.1562 11.7188 14.5938 11.9375C14.875 12.5625 15.5625 13.6562 14.5938 14.625C13.7188 15.5 12.8438 15.0625 11.9062 14.625C11.6562 15.2812 11.3438 16.5 10 16.5C8.5625 16.5 8.28125 15.1875 8.0625 14.625Z' fill='%238740BF'/%3E%3C/svg%3E\");background-size:contain;background-repeat:no-repeat;background-position:center;}}ul{list-style:inside !important;padding-left:15px !important;margin:0px 0 16px 0 !important;& > li{list-style:disc !important;margin-left:16px !important;margin-bottom:4px !important;color:rgba(32,32,31,1);font-size:16px;}}hr{margin:28px 0 !important;padding:0 !important;}ol{margin:0px 0 16px 0 !important;& > li{margin-bottom:4px !important;color:rgba(32,32,31,1);font-size:16px;p:last-child{margin-bottom:14px !important;}}}"], function (_ref7) {
|
|
112
|
+
var isCurrentUser = _ref7.isCurrentUser;
|
|
110
113
|
return isCurrentUser ? '12px' : '0px';
|
|
111
|
-
}, function (
|
|
112
|
-
var isCurrentUser =
|
|
113
|
-
isFrontendCancelled =
|
|
114
|
+
}, function (_ref8) {
|
|
115
|
+
var isCurrentUser = _ref8.isCurrentUser,
|
|
116
|
+
isFrontendCancelled = _ref8.isFrontendCancelled;
|
|
114
117
|
if (isFrontendCancelled) return 'transparent';
|
|
115
118
|
if (isCurrentUser) return BLUE_IA_COLORS[50];
|
|
116
119
|
return 'transparent';
|
|
117
|
-
}, function (_ref8) {
|
|
118
|
-
var isCurrentUser = _ref8.isCurrentUser;
|
|
119
|
-
return isCurrentUser && css(["overflow-wrap:anywhere;align-self:flex-end;max-width:75%;"]);
|
|
120
120
|
}, function (_ref9) {
|
|
121
121
|
var isCurrentUser = _ref9.isCurrentUser;
|
|
122
|
-
return isCurrentUser
|
|
122
|
+
return isCurrentUser && css(["overflow-wrap:anywhere;align-self:flex-end;max-width:75%;"]);
|
|
123
123
|
}, function (_ref0) {
|
|
124
|
-
var
|
|
125
|
-
return
|
|
124
|
+
var isCurrentUser = _ref0.isCurrentUser;
|
|
125
|
+
return isCurrentUser ? 'normal' : '1.6';
|
|
126
126
|
}, function (_ref1) {
|
|
127
127
|
var isFrontendCancelled = _ref1.isFrontendCancelled;
|
|
128
|
-
return isFrontendCancelled ? '
|
|
128
|
+
return isFrontendCancelled ? '#999' : 'rgba(32, 32, 31, 1)';
|
|
129
129
|
}, function (_ref10) {
|
|
130
130
|
var isFrontendCancelled = _ref10.isFrontendCancelled;
|
|
131
|
+
return isFrontendCancelled ? '"Work Sans"' : 'inherit';
|
|
132
|
+
}, function (_ref11) {
|
|
133
|
+
var isFrontendCancelled = _ref11.isFrontendCancelled;
|
|
131
134
|
return isFrontendCancelled ? '-0.21px' : 'normal';
|
|
132
135
|
});
|
|
133
136
|
var fadeInUp = keyframes(["from{opacity:0;transform:translateX(-50%) translateY(10px);}to{opacity:1;transform:translateX(-50%) translateY(0);}"]);
|
|
@@ -135,4 +138,4 @@ export var ScrollToBottomButton = styled.button.withConfig({
|
|
|
135
138
|
displayName: "newStyles__ScrollToBottomButton",
|
|
136
139
|
componentId: "sc-1k23l8x-16"
|
|
137
140
|
})(["display:flex;width:40px;height:40px;justify-content:center;align-items:center;gap:10px;aspect-ratio:1/1;border-radius:21.5px;border:1px solid #d9d9d9;background:#fff;box-shadow:0 4px 4px 0 rgba(0,0,0,0.05);position:absolute;bottom:15px;left:50%;transform:translateX(-50%);cursor:pointer;z-index:10;animation:", " 0.3s ease;transition:background 0.3s ease;pointer-events:auto;&:hover{background:#f7f7f7;}"], fadeInUp);
|
|
138
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjc3MiLCJrZXlmcmFtZXMiLCJCTFVFX0lBX0NPTE9SUyIsIkdMT0JBTF9DT0xPUlMiLCJNZXNzYWdlV3JhcHBlciIsImRpdiIsIndpdGhDb25maWciLCJkaXNwbGF5TmFtZSIsImNvbXBvbmVudElkIiwiU0NNZXNzYWdlc091dGVyIiwiX3JlZiIsIiRzY3JvbGxPblBhcmVudCIsIlNDTWVzc2FnZXNTY3JvbGwiLCJTQ01lc3NhZ2VzSW5uZXIiLCJfcmVmMiIsIlNDTG9hZGluZ01lc3NhZ2VzQ29sdW1uIiwiU0NPcHRpb25zTGlzdCIsIlNDT3B0aW9uSXRlbSIsImRhcmsiLCJfcmVmMyIsIiRoYXNTZWxlY3Rpb24iLCJfcmVmNCIsIiRkaW1tZWQiLCJTQ0Fzc2lzdGFudE1lc3NhZ2VIZWFkZXIiLCJTQ0Fzc2lzdGFudE5hbWUiLCJzcGFuIiwiU0NBc3Npc3RhbnRBdmF0YXIiLCJTQ1Rhc2tMaW5rIiwiYSIsIlNDTWVzc2FnZUl0ZW1XcmFwcGVyIiwiX3JlZjUiLCIkaXNBc3Npc3RhbnQiLCJTQ01lc3NhZ2VJdGVtSW5uZXIiLCJTQ0F0dGFjaG1lbnRzUm93IiwiU0NBcHByb3ZhbEFjdGlvbnNDb2x1bW4iLCJTQ0NBSU1lc3NhZ2VXcmFwcGVyIiwiX3JlZjYiLCJpc0N1cnJlbnRVc2VyIiwiX3JlZjciLCJpc0Zyb250ZW5kQ2FuY2VsbGVkIiwiX3JlZjgiLCJfcmVmOSIsIl9yZWYwIiwiX3JlZjEiLCJfcmVmMTAiLCJmYWRlSW5VcCIsIlNjcm9sbFRvQm90dG9tQnV0dG9uIiwiYnV0dG9uIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0NoYXRBSU1lc3NhZ2VzL25ld1N0eWxlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvaW5kZW50ICovXG5pbXBvcnQgc3R5bGVkLCB7IGNzcywga2V5ZnJhbWVzIH0gZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnXG5pbXBvcnQgeyBCTFVFX0lBX0NPTE9SUywgR0xPQkFMX0NPTE9SUyB9IGZyb20gJy4uLy4uLy4uL3N0eWxlcy9jb25maWcnXG5cbmV4cG9ydCBjb25zdCBNZXNzYWdlV3JhcHBlciA9IHN0eWxlZC5kaXZgXG4gIHBhZGRpbmc6IDE2cHg7XG5gXG5cbi8qKiBDb250ZW5lZG9yIGV4dGVyaW9yIGRlbCDDoXJlYSBkZSBtZW5zYWplcy4gQ3VhbmRvIGV4cGFuZGVkLCBubyBoYWNlIHNjcm9sbDsgZWwgc2Nyb2xsIGxvIHRpZW5lIFNDTWVzc2FnZXNTY3JvbGwuICovXG5leHBvcnQgY29uc3QgU0NNZXNzYWdlc091dGVyID0gc3R5bGVkLmRpdjx7ICRzY3JvbGxPblBhcmVudD86IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZ3JvdzogMTtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLWhlaWdodDogMDtcbiAgJHsoeyAkc2Nyb2xsT25QYXJlbnQgfSkgPT4gKCRzY3JvbGxPblBhcmVudCA/ICcnIDogJ292ZXJmbG93OiBhdXRvOyBvdmVyc2Nyb2xsLWJlaGF2aW9yLXk6IGNvbnRhaW47Jyl9XG5gXG5cbi8qKiBDdWFuZG8gZXhwYW5kZWQsIGVzdGUgY29udGVuZWRvciBoYWNlIHNjcm9sbCBwYXJhIHF1ZSBlbCBib3TDs24gXCJpciBhbCBmaW5hbFwiIHF1ZWRlIGZpam8gZW4gZWwgw6FyZWEgZGVsIGNoYXQgKi9cbmV4cG9ydCBjb25zdCBTQ01lc3NhZ2VzU2Nyb2xsID0gc3R5bGVkLmRpdmBcbiAgZmxleDogMTtcbiAgbWluLWhlaWdodDogMDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgb3ZlcnNjcm9sbC1iZWhhdmlvci15OiBjb250YWluO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbmBcblxuLyoqIENvbnRlbmVkb3IgaW50ZXJpb3IgZGUgbWVuc2FqZXMgKG1heFdpZHRoIDg2NHB4KS4gQ3VhbmRvIGV4cGFuZGVkLCBvdmVyZmxvdyB2aXNpYmxlIHBhcmEgcXVlIHNjcm9sbCBsbyB0ZW5nYSBTQ01lc3NhZ2VzU2Nyb2xsICovXG5leHBvcnQgY29uc3QgU0NNZXNzYWdlc0lubmVyID0gc3R5bGVkLmRpdjx7ICRzY3JvbGxPblBhcmVudD86IGJvb2xlYW4gfT5gXG4gIGZsZXgtZ3JvdzogMTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAzNnB4O1xuICBwYWRkaW5nOiAwIDE2cHg7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDg2NHB4O1xuICAkeyh7ICRzY3JvbGxPblBhcmVudCB9KSA9PlxuICAgICRzY3JvbGxPblBhcmVudCA/ICdvdmVyZmxvdzogdmlzaWJsZTsnIDogJ292ZXJmbG93LXk6IGF1dG87IG92ZXJzY3JvbGwtYmVoYXZpb3IteTogY29udGFpbjsnfVxuYFxuXG4vKiogQ29sdW1uYSBwYXJhIGxvYWRpbmcvbG9hZGluZyBtZXNzYWdlcyAqL1xuZXhwb3J0IGNvbnN0IFNDTG9hZGluZ01lc3NhZ2VzQ29sdW1uID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbmBcblxuLyoqIExpc3RhIGRlIG9wY2lvbmVzIChNZXNzYWdlT3B0aW9ucykgKi9cbmV4cG9ydCBjb25zdCBTQ09wdGlvbnNMaXN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAxMnB4O1xuYFxuXG5leHBvcnQgY29uc3QgU0NPcHRpb25JdGVtID0gc3R5bGVkLmRpdjx7ICRoYXNTZWxlY3Rpb24/OiBib29sZWFuOyAkZGltbWVkPzogYm9vbGVhbiB9PmBcbiAgY29sb3I6ICR7R0xPQkFMX0NPTE9SUy5kYXJrfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMTQwJTtcbiAgY3Vyc29yOiAkeyh7ICRoYXNTZWxlY3Rpb24gfSkgPT4gKCRoYXNTZWxlY3Rpb24gPyAnbm90LWFsbG93ZWQnIDogJ3BvaW50ZXInKX07XG4gIG9wYWNpdHk6ICR7KHsgJGRpbW1lZCB9KSA9PiAoJGRpbW1lZCA/IDAuNSA6IDEpfTtcbmBcblxuLyoqIEhlYWRlciBkZWwgbWVuc2FqZSBkZWwgYXNpc3RlbnRlIChhdmF0YXIgKyBub21icmUpICovXG5leHBvcnQgY29uc3QgU0NBc3Npc3RhbnRNZXNzYWdlSGVhZGVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0Fzc2lzdGFudE5hbWUgPSBzdHlsZWQuc3BhbmBcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogNzAwO1xuICBjb2xvcjogcmdiYSgzMiwgMzIsIDMxLCAxKTtcbmBcblxuLyoqIFdyYXBwZXIgZGVsIGF2YXRhciBkZWwgYXNpc3RlbnRlICovXG5leHBvcnQgY29uc3QgU0NBc3Npc3RhbnRBdmF0YXIgPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogMThweDtcbiAgaGVpZ2h0OiAxOHB4O1xuICBmb250LXNpemU6IDE4cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG5gXG5cbi8qKiBFbmxhY2UgZGUgdGFyZWEgKHRhc2sgbGluaykgKi9cbmV4cG9ydCBjb25zdCBTQ1Rhc2tMaW5rID0gc3R5bGVkLmFgXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMzM3YWI3ICFpbXBvcnRhbnQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbmBcblxuLyoqIFdyYXBwZXIgZGUgdW4gbWVuc2FqZSAocG9zaWNpw7NuLCBmbGV4LCBnYXApICovXG5leHBvcnQgY29uc3QgU0NNZXNzYWdlSXRlbVdyYXBwZXIgPSBzdHlsZWQuZGl2PHsgJGlzQXNzaXN0YW50PzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDhweDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgJHsoeyAkaXNBc3Npc3RhbnQgfSkgPT4gJGlzQXNzaXN0YW50ICYmICdqdXN0aWZ5LWNvbnRlbnQ6IHN0YXJ0Oyd9XG5gXG5cbi8qKiBDb250ZW5lZG9yIGludGVyaW9yIGRlbCBtZW5zYWplIChhdHRhY2htZW50cyArIGFwcHJvdmFsICsgY29udGVudCkgKi9cbmV4cG9ydCBjb25zdCBTQ01lc3NhZ2VJdGVtSW5uZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDhweDtcbiAgbWluLXdpZHRoOiAwO1xuICBtYXgtd2lkdGg6IDEwMCU7XG5gXG5cbi8qKiBGaWxhIGRlIGF0dGFjaG1lbnRzIChmbGV4IGVuZCwgd3JhcCkgKi9cbmV4cG9ydCBjb25zdCBTQ0F0dGFjaG1lbnRzUm93ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgZ2FwOiAxMnB4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG5gXG5cbi8qKiBDb2x1bW5hIGRlIGFjY2lvbmVzIGRlIGFwcHJvdmFsICovXG5leHBvcnQgY29uc3QgU0NBcHByb3ZhbEFjdGlvbnNDb2x1bW4gPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDEycHg7XG5gXG5cbi8qKiBXcmFwcGVyIGRlbCBjb250ZW5pZG8gZGVsIG1lbnNhamUuIGNvbnRhaW4gbGltaXRhIHJlcGFpbnQgZHVyYW50ZSBzdHJlYW1pbmcgYWwgw6FyZWEgZGVsIHRleHRvLiAqL1xuZXhwb3J0IGNvbnN0IFNDQ0FJTWVzc2FnZVdyYXBwZXIgPSBzdHlsZWQuZGl2PHsgaXNDdXJyZW50VXNlcjogYm9vbGVhbjsgaXNGcm9udGVuZENhbmNlbGxlZD86IGJvb2xlYW4gfT5gXG4gIGNvbnRhaW46IGxheW91dCBzdHlsZTtcbiAgbWluLXdpZHRoOiAwO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6ICR7KHsgaXNDdXJyZW50VXNlciB9KSA9PiAoaXNDdXJyZW50VXNlciA/ICcxMnB4JyA6ICcwcHgnKX07XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyBpc0N1cnJlbnRVc2VyLCBpc0Zyb250ZW5kQ2FuY2VsbGVkIH0pID0+IHtcbiAgICBpZiAoaXNGcm9udGVuZENhbmNlbGxlZCkgcmV0dXJuICd0cmFuc3BhcmVudCdcbiAgICBpZiAoaXNDdXJyZW50VXNlcikgcmV0dXJuIEJMVUVfSUFfQ09MT1JTWzUwXVxuICAgIHJldHVybiAndHJhbnNwYXJlbnQnXG4gIH19O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDE2cHg7XG4gICR7KHsgaXNDdXJyZW50VXNlciB9KSA9PlxuICAgIGlzQ3VycmVudFVzZXIgJiZcbiAgICBjc3NgXG4gICAgICBvdmVyZmxvdy13cmFwOiBhbnl3aGVyZTtcbiAgICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuICAgICAgbWF4LXdpZHRoOiA3NSU7XG4gICAgYH1cblxuICBoMSB7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxMjIlO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6IHJnYmEoMzIsIDMyLCAzMSwgMSk7XG4gICAgcGFkZGluZzogNnB4IDAgNnB4IDA7XG4gIH1cblxuICBoMiB7XG4gICAgZm9udC1mYW1pbHk6IFdvcmsgU2FucztcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBsaW5lLWhlaWdodDogMTI1JTtcbiAgICBjb2xvcjogcmdiYSgzMiwgMzIsIDMxLCAxKTtcbiAgICBwYWRkaW5nOiA2cHggMCA4cHggMDtcbiAgfVxuXG4gIGgzIHtcbiAgICBmb250LWZhbWlseTogV29yayBTYW5zO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxMTQuOTk5OTk5OTk5OTk5OTklO1xuICAgIGNvbG9yOiByZ2JhKDMyLCAzMiwgMzEsIDEpO1xuICAgIHBhZGRpbmc6IDZweCAwIDhweCAwO1xuICB9XG5cbiAgaDQge1xuICAgIGZvbnQtZmFtaWx5OiBXb3JrIFNhbnM7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgbGluZS1oZWlnaHQ6IDExNC45OTk5OTk5OTk5OTk5OSU7XG4gICAgY29sb3I6IHJnYmEoMzIsIDMyLCAzMSwgMSk7XG4gICAgcGFkZGluZzogNnB4IDAgOHB4IDA7XG4gIH1cblxuICBoNSB7XG4gICAgZm9udC1mYW1pbHk6IFdvcmsgU2FucztcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBsaW5lLWhlaWdodDogMTIyJTtcbiAgICBjb2xvcjogcmdiYSgzMiwgMzIsIDMxLCAxKTtcbiAgICBwYWRkaW5nOiA2cHggMCA4cHggMDtcbiAgfVxuXG4gIGg2IHtcbiAgICBmb250LWZhbWlseTogV29yayBTYW5zO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxMjIlO1xuICAgIGNvbG9yOiByZ2JhKDMyLCAzMiwgMzEsIDEpO1xuICAgIHBhZGRpbmc6IDZweCAwIDhweCAwO1xuICB9XG5cbiAgcCB7XG4gICAgbGluZS1oZWlnaHQ6IDE0MCU7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbGluZS1oZWlnaHQ6ICR7KHsgaXNDdXJyZW50VXNlciB9KSA9PiAoaXNDdXJyZW50VXNlciA/ICdub3JtYWwnIDogJzEuNicpfTtcbiAgICBjb2xvcjogJHsoeyBpc0Zyb250ZW5kQ2FuY2VsbGVkIH0pID0+IChpc0Zyb250ZW5kQ2FuY2VsbGVkID8gJyM5OTknIDogJ3JnYmEoMzIsIDMyLCAzMSwgMSknKX07XG4gICAgZm9udC1mYW1pbHk6ICR7KHsgaXNGcm9udGVuZENhbmNlbGxlZCB9KSA9PiAoaXNGcm9udGVuZENhbmNlbGxlZCA/ICdcIldvcmsgU2Fuc1wiJyA6ICdpbmhlcml0Jyl9O1xuICAgIGxldHRlci1zcGFjaW5nOiAkeyh7IGlzRnJvbnRlbmRDYW5jZWxsZWQgfSkgPT4gKGlzRnJvbnRlbmRDYW5jZWxsZWQgPyAnLTAuMjFweCcgOiAnbm9ybWFsJyl9O1xuICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgLyogY29sb3I6ICR7KHsgaXNDdXJyZW50VXNlciB9KSA9PiAoaXNDdXJyZW50VXNlciA/ICdyZ2JhKDMyLCAzMiwgMzEsIDEpJyA6ICdyZ2JhKDEwMiwgMTAyLCAxMDIsIDEpJyl9OyAqL1xuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gIGJsb2NrcXVvdGUge1xuICAgIG1hcmdpbjogMTZweCAwICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgYm9yZGVyLXRvcDogMC41cHggc29saWQgcmdiYSgyNDIsIDI0MiwgMjQyLCAxKTtcbiAgICBib3JkZXItYm90dG9tOiAwLjVweCBzb2xpZCByZ2JhKDI0MiwgMjQyLCAyNDIsIDEpO1xuICAgIHBhZGRpbmc6IDE2cHggMCAxNnB4IDEycHg7XG4gICAgY29sb3I6IHJnYmEoMTAyLCAxMDIsIDEwMiwgMSk7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxNDAlO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBwIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMTJweCAhaW1wb3J0YW50O1xuICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHJnYmEoMjE3LCAyMTcsIDIxNywgMSkgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICBhIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSAhaW1wb3J0YW50O1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBjb2xvcjogIzMzN2FiNyAhaW1wb3J0YW50O1xuICB9XG5cbiAgJi5oYXMtdGFzay1saW5rcyBhIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgICBjb2xvcjogIzIwMjAyMCAhaW1wb3J0YW50O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDAgIWltcG9ydGFudDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZy1sZWZ0OiAyNHB4O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB0b3A6IDA7XG4gICAgICB3aWR0aDogMjBweDtcbiAgICAgIGhlaWdodDogMjBweDtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0Nzdmcgd2lkdGg9JzIwJyBoZWlnaHQ9JzIwJyB2aWV3Qm94PScwIDAgMjAgMjAnIGZpbGw9J25vbmUnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM0UlM0NwYXRoIGQ9J00xMCAxOEMxMS4xMjUgMTggMTIuMTI1IDE3LjQzNzUgMTIuNjg3NSAxNi41NjI1QzEzLjcxODggMTYuNzgxMiAxNC44NDM4IDE2LjQ2ODggMTUuNjU2MiAxNS42NTYyQzE2LjQzNzUgMTQuODc1IDE2Ljc1IDEzLjc1IDE2LjUzMTIgMTIuNzE4OEMxNy40MDYyIDEyLjE1NjIgMTggMTEuMTU2MiAxOCAxMEMxOCA4Ljg3NSAxNy40MDYyIDcuODc1IDE2LjUzMTIgNy4zMTI1QzE2Ljc1IDYuMjgxMjUgMTYuNDM3NSA1LjE1NjI1IDE1LjY1NjIgNC4zNDM3NUMxNC44NDM4IDMuNTYyNSAxMy43MTg4IDMuMjUgMTIuNjg3NSAzLjQ2ODc1QzEyLjEyNSAyLjU5Mzc1IDExLjEyNSAyIDEwIDJDOC44NDM3NSAyIDcuODQzNzUgMi41OTM3NSA3LjI4MTI1IDMuNDY4NzVDNi4yNSAzLjI1IDUuMTI1IDMuNTYyNSA0LjM0Mzc1IDQuMzQzNzVDMy41MzEyNSA1LjE1NjI1IDMuMjE4NzUgNi4yODEyNSAzLjQzNzUgNy4zMTI1QzIuNTYyNSA3Ljg3NSAyIDguODc1IDIgMTBDMiAxMS4xNTYyIDIuNTYyNSAxMi4xNTYyIDMuNDM3NSAxMi43MTg4QzMuMjE4NzUgMTMuNzUgMy41MzEyNSAxNC44NzUgNC4zNDM3NSAxNS42NTYyQzUuMTI1IDE2LjQ2ODggNi4yNSAxNi43ODEyIDcuMjgxMjUgMTYuNTYyNUM3Ljg0Mzc1IDE3LjQzNzUgOC44NDM3NSAxOCAxMCAxOFpNOC4wNjI1IDE0LjYyNUM3LjQwNjI1IDE0LjkzNzUgNi4zNDM3NSAxNS41NjI1IDUuMzc1IDE0LjU5MzhDNC4zNzUgMTMuNTkzOCA1LjEyNSAxMi40Njg4IDUuMzc1IDExLjkzNzVDNC43MTg3NSAxMS42ODc1IDMuNSAxMS4zNzUgMy41IDEwQzMuNSA4LjU5Mzc1IDQuODEyNSA4LjMxMjUgNS4zNzUgOC4wOTM3NUM1LjA5Mzc1IDcuNDY4NzUgNC40Mzc1IDYuMzc1IDUuNDA2MjUgNS40MDYyNUM2LjQwNjI1IDQuNDA2MjUgNy41MzEyNSA1LjE1NjI1IDguMDYyNSA1LjQwNjI1QzguMzEyNSA0Ljc1IDguNjI1IDMuNSAxMCAzLjVDMTEuNDA2MiAzLjUgMTEuNjg3NSA0Ljg0Mzc1IDExLjkwNjIgNS40MDYyNUMxMi41MzEyIDUuMTI1IDEzLjYyNSA0LjQ2ODc1IDE0LjU5MzggNS40Mzc1QzE1LjU5MzggNi40Mzc1IDE0Ljg0MzggNy41NjI1IDE0LjU5MzggOC4wOTM3NUMxNS4yNSA4LjM0Mzc1IDE2LjQ2ODggOC42NTYyNSAxNi40Njg4IDEwLjAzMTJDMTYuNDY4OCAxMS40Mzc1IDE1LjE1NjIgMTEuNzE4OCAxNC41OTM4IDExLjkzNzVDMTQuODc1IDEyLjU2MjUgMTUuNTYyNSAxMy42NTYyIDE0LjU5MzggMTQuNjI1QzEzLjcxODggMTUuNSAxMi44NDM4IDE1LjA2MjUgMTEuOTA2MiAxNC42MjVDMTEuNjU2MiAxNS4yODEyIDExLjM0MzggMTYuNSAxMCAxNi41QzguNTYyNSAxNi41IDguMjgxMjUgMTUuMTg3NSA4LjA2MjUgMTQuNjI1WicgZmlsbD0nJTIzODc0MEJGJy8lM0UlM0Mvc3ZnJTNFXCIpO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICB9XG4gIH1cblxuICB1bCB7XG4gICAgbGlzdC1zdHlsZTogaW5zaWRlICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1sZWZ0OiAxNXB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAwcHggMCAxNnB4IDAgIWltcG9ydGFudDtcbiAgICAmID4gbGkge1xuICAgICAgbGlzdC1zdHlsZTogZGlzYyAhaW1wb3J0YW50O1xuICAgICAgbWFyZ2luLWxlZnQ6IDE2cHggIWltcG9ydGFudDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDRweCAhaW1wb3J0YW50O1xuICAgICAgY29sb3I6IHJnYmEoMzIsIDMyLCAzMSwgMSk7XG4gICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgfVxuICB9XG5cbiAgaHIge1xuICAgIG1hcmdpbjogMjhweCAwICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICB9XG5cbiAgb2wge1xuICAgIG1hcmdpbjogMHB4IDAgMTZweCAwICFpbXBvcnRhbnQ7XG4gICAgJiA+IGxpIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDRweCAhaW1wb3J0YW50O1xuICAgICAgY29sb3I6IHJnYmEoMzIsIDMyLCAzMSwgMSk7XG4gICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICBwOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNHB4ICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IGZhZGVJblVwID0ga2V5ZnJhbWVzYFxuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKDEwcHgpO1xuICB9XG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKDApO1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTY3JvbGxUb0JvdHRvbUJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEwcHg7XG4gIGFzcGVjdC1yYXRpbzogMS8xO1xuICBib3JkZXItcmFkaXVzOiAyMS41cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkOWQ5ZDk7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDRweCAwIHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAxNXB4O1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB6LWluZGV4OiAxMDtcbiAgYW5pbWF0aW9uOiAke2ZhZGVJblVwfSAwLjNzIGVhc2U7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4zcyBlYXNlO1xuICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2Y3ZjdmNztcbiAgfVxuYFxuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBLE9BQU9BLE1BQU0sSUFBSUMsR0FBRyxFQUFFQyxTQUFTLFFBQVEsbUJBQW1CO0FBQzFELFNBQVNDLGNBQWMsRUFBRUMsYUFBYSxRQUFRLHdCQUF3QjtBQUV0RSxPQUFPLElBQU1DLGNBQWMsR0FBR0wsTUFBTSxDQUFDTSxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEscUJBRXZDOztBQUVEO0FBQ0EsT0FBTyxJQUFNQyxlQUFlLEdBQUdWLE1BQU0sQ0FBQ00sR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLDRGQU1yQyxVQUFBRSxJQUFBO0VBQUEsSUFBR0MsZUFBZSxHQUFBRCxJQUFBLENBQWZDLGVBQWU7RUFBQSxPQUFRQSxlQUFlLEdBQUcsRUFBRSxHQUFHLGlEQUFpRDtBQUFBLENBQUMsQ0FDdEc7O0FBRUQ7QUFDQSxPQUFPLElBQU1DLGdCQUFnQixHQUFHYixNQUFNLENBQUNNLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSw4R0FPekM7O0FBRUQ7QUFDQSxPQUFPLElBQU1LLGVBQWUsR0FBR2QsTUFBTSxDQUFDTSxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsK0dBUXJDLFVBQUFNLEtBQUE7RUFBQSxJQUFHSCxlQUFlLEdBQUFHLEtBQUEsQ0FBZkgsZUFBZTtFQUFBLE9BQ2xCQSxlQUFlLEdBQUcsb0JBQW9CLEdBQUcsbURBQW1EO0FBQUEsRUFDL0Y7O0FBRUQ7QUFDQSxPQUFPLElBQU1JLHVCQUF1QixHQUFHaEIsTUFBTSxDQUFDTSxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsMkNBR2hEOztBQUVEO0FBQ0EsT0FB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
|
|
141
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjc3MiLCJrZXlmcmFtZXMiLCJCTFVFX0lBX0NPTE9SUyIsIkdMT0JBTF9DT0xPUlMiLCJNZXNzYWdlV3JhcHBlciIsImRpdiIsIndpdGhDb25maWciLCJkaXNwbGF5TmFtZSIsImNvbXBvbmVudElkIiwiU0NNZXNzYWdlc091dGVyIiwiX3JlZiIsIiRzY3JvbGxPblBhcmVudCIsIlNDTWVzc2FnZXNTY3JvbGwiLCJTQ01lc3NhZ2VzSW5uZXIiLCJfcmVmMiIsIiRpc01hcmtldHBsYWNlR2xvYmFsIiwiX3JlZjMiLCJTQ0xvYWRpbmdNZXNzYWdlc0NvbHVtbiIsIlNDT3B0aW9uc0xpc3QiLCJTQ09wdGlvbkl0ZW0iLCJkYXJrIiwiX3JlZjQiLCIkaGFzU2VsZWN0aW9uIiwiX3JlZjUiLCIkZGltbWVkIiwiU0NBc3Npc3RhbnRNZXNzYWdlSGVhZGVyIiwiU0NBc3Npc3RhbnROYW1lIiwic3BhbiIsIlNDQXNzaXN0YW50QXZhdGFyIiwiU0NUYXNrTGluayIsImEiLCJTQ01lc3NhZ2VJdGVtV3JhcHBlciIsIl9yZWY2IiwiJGlzQXNzaXN0YW50IiwiU0NNZXNzYWdlSXRlbUlubmVyIiwiU0NBdHRhY2htZW50c1JvdyIsIlNDQXBwcm92YWxBY3Rpb25zQ29sdW1uIiwiU0NDQUlNZXNzYWdlV3JhcHBlciIsIl9yZWY3IiwiaXNDdXJyZW50VXNlciIsIl9yZWY4IiwiaXNGcm9udGVuZENhbmNlbGxlZCIsIl9yZWY5IiwiX3JlZjAiLCJfcmVmMSIsIl9yZWYxMCIsIl9yZWYxMSIsImZhZGVJblVwIiwiU2Nyb2xsVG9Cb3R0b21CdXR0b24iLCJidXR0b24iXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEFJTWVzc2FnZXMvbmV3U3R5bGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9pbmRlbnQgKi9cbmltcG9ydCBzdHlsZWQsIHsgY3NzLCBrZXlmcmFtZXMgfSBmcm9tICdzdHlsZWQtY29tcG9uZW50cydcbmltcG9ydCB7IEJMVUVfSUFfQ09MT1JTLCBHTE9CQUxfQ09MT1JTIH0gZnJvbSAnLi4vLi4vLi4vc3R5bGVzL2NvbmZpZydcblxuZXhwb3J0IGNvbnN0IE1lc3NhZ2VXcmFwcGVyID0gc3R5bGVkLmRpdmBcbiAgcGFkZGluZzogMTZweDtcbmBcblxuLyoqIENvbnRlbmVkb3IgZXh0ZXJpb3IgZGVsIMOhcmVhIGRlIG1lbnNhamVzLiBDdWFuZG8gZXhwYW5kZWQsIG5vIGhhY2Ugc2Nyb2xsOyBlbCBzY3JvbGwgbG8gdGllbmUgU0NNZXNzYWdlc1Njcm9sbC4gKi9cbmV4cG9ydCBjb25zdCBTQ01lc3NhZ2VzT3V0ZXIgPSBzdHlsZWQuZGl2PHsgJHNjcm9sbE9uUGFyZW50PzogYm9vbGVhbiB9PmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1ncm93OiAxO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtaW4taGVpZ2h0OiAwO1xuICAkeyh7ICRzY3JvbGxPblBhcmVudCB9KSA9PiAoJHNjcm9sbE9uUGFyZW50ID8gJycgOiAnb3ZlcmZsb3c6IGF1dG87IG92ZXJzY3JvbGwtYmVoYXZpb3IteTogY29udGFpbjsnKX1cbmBcblxuLyoqIEN1YW5kbyBleHBhbmRlZCwgZXN0ZSBjb250ZW5lZG9yIGhhY2Ugc2Nyb2xsIHBhcmEgcXVlIGVsIGJvdMOzbiBcImlyIGFsIGZpbmFsXCIgcXVlZGUgZmlqbyBlbiBlbCDDoXJlYSBkZWwgY2hhdCAqL1xuZXhwb3J0IGNvbnN0IFNDTWVzc2FnZXNTY3JvbGwgPSBzdHlsZWQuZGl2YFxuICBmbGV4OiAxO1xuICBtaW4taGVpZ2h0OiAwO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyc2Nyb2xsLWJlaGF2aW9yLXk6IGNvbnRhaW47XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuYFxuXG4vKiogQ29udGVuZWRvciBpbnRlcmlvciBkZSBtZW5zYWplcyAobWF4V2lkdGggODY0cHgpLiBDdWFuZG8gZXhwYW5kZWQsIG92ZXJmbG93IHZpc2libGUgcGFyYSBxdWUgc2Nyb2xsIGxvIHRlbmdhIFNDTWVzc2FnZXNTY3JvbGwgKi9cbmV4cG9ydCBjb25zdCBTQ01lc3NhZ2VzSW5uZXIgPSBzdHlsZWQuZGl2PHsgJHNjcm9sbE9uUGFyZW50PzogYm9vbGVhbjsgJGlzTWFya2V0cGxhY2VHbG9iYWw/OiBib29sZWFuIH0+YFxuICBmbGV4LWdyb3c6IDE7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMzZweDtcbiAgcGFkZGluZzogJHsoeyAkaXNNYXJrZXRwbGFjZUdsb2JhbCB9KSA9PiAoJGlzTWFya2V0cGxhY2VHbG9iYWwgPyAnMCAxNnB4IDE2cHg7JyA6ICcwIDE2cHg7Jyl9XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDg2NHB4O1xuICAkeyh7ICRzY3JvbGxPblBhcmVudCB9KSA9PlxuICAgICRzY3JvbGxPblBhcmVudCA/ICdvdmVyZmxvdzogdmlzaWJsZTsnIDogJ292ZXJmbG93LXk6IGF1dG87IG92ZXJzY3JvbGwtYmVoYXZpb3IteTogY29udGFpbjsnfVxuYFxuXG4vKiogQ29sdW1uYSBwYXJhIGxvYWRpbmcvbG9hZGluZyBtZXNzYWdlcyAqL1xuZXhwb3J0IGNvbnN0IFNDTG9hZGluZ01lc3NhZ2VzQ29sdW1uID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbmBcblxuLyoqIExpc3RhIGRlIG9wY2lvbmVzIChNZXNzYWdlT3B0aW9ucykgKi9cbmV4cG9ydCBjb25zdCBTQ09wdGlvbnNMaXN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAxMnB4O1xuYFxuXG5leHBvcnQgY29uc3QgU0NPcHRpb25JdGVtID0gc3R5bGVkLmRpdjx7ICRoYXNTZWxlY3Rpb24/OiBib29sZWFuOyAkZGltbWVkPzogYm9vbGVhbiB9PmBcbiAgY29sb3I6ICR7R0xPQkFMX0NPTE9SUy5kYXJrfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMTQwJTtcbiAgY3Vyc29yOiAkeyh7ICRoYXNTZWxlY3Rpb24gfSkgPT4gKCRoYXNTZWxlY3Rpb24gPyAnbm90LWFsbG93ZWQnIDogJ3BvaW50ZXInKX07XG4gIG9wYWNpdHk6ICR7KHsgJGRpbW1lZCB9KSA9PiAoJGRpbW1lZCA/IDAuNSA6IDEpfTtcbmBcblxuLyoqIEhlYWRlciBkZWwgbWVuc2FqZSBkZWwgYXNpc3RlbnRlIChhdmF0YXIgKyBub21icmUpICovXG5leHBvcnQgY29uc3QgU0NBc3Npc3RhbnRNZXNzYWdlSGVhZGVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0Fzc2lzdGFudE5hbWUgPSBzdHlsZWQuc3BhbmBcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogNzAwO1xuICBjb2xvcjogcmdiYSgzMiwgMzIsIDMxLCAxKTtcbmBcblxuLyoqIFdyYXBwZXIgZGVsIGF2YXRhciBkZWwgYXNpc3RlbnRlICovXG5leHBvcnQgY29uc3QgU0NBc3Npc3RhbnRBdmF0YXIgPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogMThweDtcbiAgaGVpZ2h0OiAxOHB4O1xuICBmb250LXNpemU6IDE4cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG5gXG5cbi8qKiBFbmxhY2UgZGUgdGFyZWEgKHRhc2sgbGluaykgKi9cbmV4cG9ydCBjb25zdCBTQ1Rhc2tMaW5rID0gc3R5bGVkLmFgXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMzM3YWI3ICFpbXBvcnRhbnQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbmBcblxuLyoqIFdyYXBwZXIgZGUgdW4gbWVuc2FqZSAocG9zaWNpw7NuLCBmbGV4LCBnYXApICovXG5leHBvcnQgY29uc3QgU0NNZXNzYWdlSXRlbVdyYXBwZXIgPSBzdHlsZWQuZGl2PHsgJGlzQXNzaXN0YW50PzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDhweDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgJHsoeyAkaXNBc3Npc3RhbnQgfSkgPT4gJGlzQXNzaXN0YW50ICYmICdqdXN0aWZ5LWNvbnRlbnQ6IHN0YXJ0Oyd9XG5gXG5cbi8qKiBDb250ZW5lZG9yIGludGVyaW9yIGRlbCBtZW5zYWplIChhdHRhY2htZW50cyArIGFwcHJvdmFsICsgY29udGVudCkgKi9cbmV4cG9ydCBjb25zdCBTQ01lc3NhZ2VJdGVtSW5uZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDhweDtcbiAgbWluLXdpZHRoOiAwO1xuICBtYXgtd2lkdGg6IDEwMCU7XG5gXG5cbi8qKiBGaWxhIGRlIGF0dGFjaG1lbnRzIChmbGV4IGVuZCwgd3JhcCkgKi9cbmV4cG9ydCBjb25zdCBTQ0F0dGFjaG1lbnRzUm93ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgZ2FwOiAxMnB4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG5gXG5cbi8qKiBDb2x1bW5hIGRlIGFjY2lvbmVzIGRlIGFwcHJvdmFsICovXG5leHBvcnQgY29uc3QgU0NBcHByb3ZhbEFjdGlvbnNDb2x1bW4gPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDEycHg7XG5gXG5cbi8qKiBXcmFwcGVyIGRlbCBjb250ZW5pZG8gZGVsIG1lbnNhamUuIGNvbnRhaW4gbGltaXRhIHJlcGFpbnQgZHVyYW50ZSBzdHJlYW1pbmcgYWwgw6FyZWEgZGVsIHRleHRvLiAqL1xuZXhwb3J0IGNvbnN0IFNDQ0FJTWVzc2FnZVdyYXBwZXIgPSBzdHlsZWQuZGl2PHsgaXNDdXJyZW50VXNlcjogYm9vbGVhbjsgaXNGcm9udGVuZENhbmNlbGxlZD86IGJvb2xlYW4gfT5gXG4gIGNvbnRhaW46IGxheW91dCBzdHlsZTtcbiAgbWluLXdpZHRoOiAwO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6ICR7KHsgaXNDdXJyZW50VXNlciB9KSA9PiAoaXNDdXJyZW50VXNlciA/ICcxMnB4JyA6ICcwcHgnKX07XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyBpc0N1cnJlbnRVc2VyLCBpc0Zyb250ZW5kQ2FuY2VsbGVkIH0pID0+IHtcbiAgICBpZiAoaXNGcm9udGVuZENhbmNlbGxlZCkgcmV0dXJuICd0cmFuc3BhcmVudCdcbiAgICBpZiAoaXNDdXJyZW50VXNlcikgcmV0dXJuIEJMVUVfSUFfQ09MT1JTWzUwXVxuICAgIHJldHVybiAndHJhbnNwYXJlbnQnXG4gIH19O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDE2cHg7XG4gICR7KHsgaXNDdXJyZW50VXNlciB9KSA9PlxuICAgIGlzQ3VycmVudFVzZXIgJiZcbiAgICBjc3NgXG4gICAgICBvdmVyZmxvdy13cmFwOiBhbnl3aGVyZTtcbiAgICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuICAgICAgbWF4LXdpZHRoOiA3NSU7XG4gICAgYH1cblxuICBoMSB7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxMjIlO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6IHJnYmEoMzIsIDMyLCAzMSwgMSk7XG4gICAgcGFkZGluZzogNnB4IDAgNnB4IDA7XG4gIH1cblxuICBoMiB7XG4gICAgZm9udC1mYW1pbHk6IFdvcmsgU2FucztcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBsaW5lLWhlaWdodDogMTI1JTtcbiAgICBjb2xvcjogcmdiYSgzMiwgMzIsIDMxLCAxKTtcbiAgICBwYWRkaW5nOiA2cHggMCA4cHggMDtcbiAgfVxuXG4gIGgzIHtcbiAgICBmb250LWZhbWlseTogV29yayBTYW5zO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxMTQuOTk5OTk5OTk5OTk5OTklO1xuICAgIGNvbG9yOiByZ2JhKDMyLCAzMiwgMzEsIDEpO1xuICAgIHBhZGRpbmc6IDZweCAwIDhweCAwO1xuICB9XG5cbiAgaDQge1xuICAgIGZvbnQtZmFtaWx5OiBXb3JrIFNhbnM7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgbGluZS1oZWlnaHQ6IDExNC45OTk5OTk5OTk5OTk5OSU7XG4gICAgY29sb3I6IHJnYmEoMzIsIDMyLCAzMSwgMSk7XG4gICAgcGFkZGluZzogNnB4IDAgOHB4IDA7XG4gIH1cblxuICBoNSB7XG4gICAgZm9udC1mYW1pbHk6IFdvcmsgU2FucztcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBsaW5lLWhlaWdodDogMTIyJTtcbiAgICBjb2xvcjogcmdiYSgzMiwgMzIsIDMxLCAxKTtcbiAgICBwYWRkaW5nOiA2cHggMCA4cHggMDtcbiAgfVxuXG4gIGg2IHtcbiAgICBmb250LWZhbWlseTogV29yayBTYW5zO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxMjIlO1xuICAgIGNvbG9yOiByZ2JhKDMyLCAzMiwgMzEsIDEpO1xuICAgIHBhZGRpbmc6IDZweCAwIDhweCAwO1xuICB9XG5cbiAgcCB7XG4gICAgbGluZS1oZWlnaHQ6IDE0MCU7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbGluZS1oZWlnaHQ6ICR7KHsgaXNDdXJyZW50VXNlciB9KSA9PiAoaXNDdXJyZW50VXNlciA/ICdub3JtYWwnIDogJzEuNicpfTtcbiAgICBjb2xvcjogJHsoeyBpc0Zyb250ZW5kQ2FuY2VsbGVkIH0pID0+IChpc0Zyb250ZW5kQ2FuY2VsbGVkID8gJyM5OTknIDogJ3JnYmEoMzIsIDMyLCAzMSwgMSknKX07XG4gICAgZm9udC1mYW1pbHk6ICR7KHsgaXNGcm9udGVuZENhbmNlbGxlZCB9KSA9PiAoaXNGcm9udGVuZENhbmNlbGxlZCA/ICdcIldvcmsgU2Fuc1wiJyA6ICdpbmhlcml0Jyl9O1xuICAgIGxldHRlci1zcGFjaW5nOiAkeyh7IGlzRnJvbnRlbmRDYW5jZWxsZWQgfSkgPT4gKGlzRnJvbnRlbmRDYW5jZWxsZWQgPyAnLTAuMjFweCcgOiAnbm9ybWFsJyl9O1xuICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgLyogY29sb3I6ICR7KHsgaXNDdXJyZW50VXNlciB9KSA9PiAoaXNDdXJyZW50VXNlciA/ICdyZ2JhKDMyLCAzMiwgMzEsIDEpJyA6ICdyZ2JhKDEwMiwgMTAyLCAxMDIsIDEpJyl9OyAqL1xuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gIGJsb2NrcXVvdGUge1xuICAgIG1hcmdpbjogMTZweCAwICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgYm9yZGVyLXRvcDogMC41cHggc29saWQgcmdiYSgyNDIsIDI0MiwgMjQyLCAxKTtcbiAgICBib3JkZXItYm90dG9tOiAwLjVweCBzb2xpZCByZ2JhKDI0MiwgMjQyLCAyNDIsIDEpO1xuICAgIHBhZGRpbmc6IDE2cHggMCAxNnB4IDEycHg7XG4gICAgY29sb3I6IHJnYmEoMTAyLCAxMDIsIDEwMiwgMSk7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxNDAlO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBwIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMTJweCAhaW1wb3J0YW50O1xuICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHJnYmEoMjE3LCAyMTcsIDIxNywgMSkgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICBhIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSAhaW1wb3J0YW50O1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBjb2xvcjogIzMzN2FiNyAhaW1wb3J0YW50O1xuICB9XG5cbiAgJi5oYXMtdGFzay1saW5rcyBhIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgICBjb2xvcjogIzIwMjAyMCAhaW1wb3J0YW50O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDAgIWltcG9ydGFudDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZy1sZWZ0OiAyNHB4O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB0b3A6IDA7XG4gICAgICB3aWR0aDogMjBweDtcbiAgICAgIGhlaWdodDogMjBweDtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0Nzdmcgd2lkdGg9JzIwJyBoZWlnaHQ9JzIwJyB2aWV3Qm94PScwIDAgMjAgMjAnIGZpbGw9J25vbmUnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM0UlM0NwYXRoIGQ9J00xMCAxOEMxMS4xMjUgMTggMTIuMTI1IDE3LjQzNzUgMTIuNjg3NSAxNi41NjI1QzEzLjcxODggMTYuNzgxMiAxNC44NDM4IDE2LjQ2ODggMTUuNjU2MiAxNS42NTYyQzE2LjQzNzUgMTQuODc1IDE2Ljc1IDEzLjc1IDE2LjUzMTIgMTIuNzE4OEMxNy40MDYyIDEyLjE1NjIgMTggMTEuMTU2MiAxOCAxMEMxOCA4Ljg3NSAxNy40MDYyIDcuODc1IDE2LjUzMTIgNy4zMTI1QzE2Ljc1IDYuMjgxMjUgMTYuNDM3NSA1LjE1NjI1IDE1LjY1NjIgNC4zNDM3NUMxNC44NDM4IDMuNTYyNSAxMy43MTg4IDMuMjUgMTIuNjg3NSAzLjQ2ODc1QzEyLjEyNSAyLjU5Mzc1IDExLjEyNSAyIDEwIDJDOC44NDM3NSAyIDcuODQzNzUgMi41OTM3NSA3LjI4MTI1IDMuNDY4NzVDNi4yNSAzLjI1IDUuMTI1IDMuNTYyNSA0LjM0Mzc1IDQuMzQzNzVDMy41MzEyNSA1LjE1NjI1IDMuMjE4NzUgNi4yODEyNSAzLjQzNzUgNy4zMTI1QzIuNTYyNSA3Ljg3NSAyIDguODc1IDIgMTBDMiAxMS4xNTYyIDIuNTYyNSAxMi4xNTYyIDMuNDM3NSAxMi43MTg4QzMuMjE4NzUgMTMuNzUgMy41MzEyNSAxNC44NzUgNC4zNDM3NSAxNS42NTYyQzUuMTI1IDE2LjQ2ODggNi4yNSAxNi43ODEyIDcuMjgxMjUgMTYuNTYyNUM3Ljg0Mzc1IDE3LjQzNzUgOC44NDM3NSAxOCAxMCAxOFpNOC4wNjI1IDE0LjYyNUM3LjQwNjI1IDE0LjkzNzUgNi4zNDM3NSAxNS41NjI1IDUuMzc1IDE0LjU5MzhDNC4zNzUgMTMuNTkzOCA1LjEyNSAxMi40Njg4IDUuMzc1IDExLjkzNzVDNC43MTg3NSAxMS42ODc1IDMuNSAxMS4zNzUgMy41IDEwQzMuNSA4LjU5Mzc1IDQuODEyNSA4LjMxMjUgNS4zNzUgOC4wOTM3NUM1LjA5Mzc1IDcuNDY4NzUgNC40Mzc1IDYuMzc1IDUuNDA2MjUgNS40MDYyNUM2LjQwNjI1IDQuNDA2MjUgNy41MzEyNSA1LjE1NjI1IDguMDYyNSA1LjQwNjI1QzguMzEyNSA0Ljc1IDguNjI1IDMuNSAxMCAzLjVDMTEuNDA2MiAzLjUgMTEuNjg3NSA0Ljg0Mzc1IDExLjkwNjIgNS40MDYyNUMxMi41MzEyIDUuMTI1IDEzLjYyNSA0LjQ2ODc1IDE0LjU5MzggNS40Mzc1QzE1LjU5MzggNi40Mzc1IDE0Ljg0MzggNy41NjI1IDE0LjU5MzggOC4wOTM3NUMxNS4yNSA4LjM0Mzc1IDE2LjQ2ODggOC42NTYyNSAxNi40Njg4IDEwLjAzMTJDMTYuNDY4OCAxMS40Mzc1IDE1LjE1NjIgMTEuNzE4OCAxNC41OTM4IDExLjkzNzVDMTQuODc1IDEyLjU2MjUgMTUuNTYyNSAxMy42NTYyIDE0LjU5MzggMTQuNjI1QzEzLjcxODggMTUuNSAxMi44NDM4IDE1LjA2MjUgMTEuOTA2MiAxNC42MjVDMTEuNjU2MiAxNS4yODEyIDExLjM0MzggMTYuNSAxMCAxNi41QzguNTYyNSAxNi41IDguMjgxMjUgMTUuMTg3NSA4LjA2MjUgMTQuNjI1WicgZmlsbD0nJTIzODc0MEJGJy8lM0UlM0Mvc3ZnJTNFXCIpO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICB9XG4gIH1cblxuICB1bCB7XG4gICAgbGlzdC1zdHlsZTogaW5zaWRlICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1sZWZ0OiAxNXB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAwcHggMCAxNnB4IDAgIWltcG9ydGFudDtcbiAgICAmID4gbGkge1xuICAgICAgbGlzdC1zdHlsZTogZGlzYyAhaW1wb3J0YW50O1xuICAgICAgbWFyZ2luLWxlZnQ6IDE2cHggIWltcG9ydGFudDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDRweCAhaW1wb3J0YW50O1xuICAgICAgY29sb3I6IHJnYmEoMzIsIDMyLCAzMSwgMSk7XG4gICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgfVxuICB9XG5cbiAgaHIge1xuICAgIG1hcmdpbjogMjhweCAwICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICB9XG5cbiAgb2wge1xuICAgIG1hcmdpbjogMHB4IDAgMTZweCAwICFpbXBvcnRhbnQ7XG4gICAgJiA+IGxpIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDRweCAhaW1wb3J0YW50O1xuICAgICAgY29sb3I6IHJnYmEoMzIsIDMyLCAzMSwgMSk7XG4gICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICBwOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNHB4ICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IGZhZGVJblVwID0ga2V5ZnJhbWVzYFxuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKDEwcHgpO1xuICB9XG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKDApO1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTY3JvbGxUb0JvdHRvbUJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEwcHg7XG4gIGFzcGVjdC1yYXRpbzogMS8xO1xuICBib3JkZXItcmFkaXVzOiAyMS41cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkOWQ5ZDk7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDRweCAwIHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAxNXB4O1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB6LWluZGV4OiAxMDtcbiAgYW5pbWF0aW9uOiAke2ZhZGVJblVwfSAwLjNzIGVhc2U7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4zcyBlYXNlO1xuICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2Y3ZjdmNztcbiAgfVxuYFxuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBLE9BQU9BLE1BQU0sSUFBSUMsR0FBRyxFQUFFQyxTQUFTLFFBQVEsbUJBQW1CO0FBQzFELFNBQVNDLGNBQWMsRUFBRUMsYUFBYSxRQUFRLHdCQUF3QjtBQUV0RSxPQUFPLElBQU1DLGNBQWMsR0FBR0wsTUFBTSxDQUFDTSxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEscUJBRXZDOztBQUVEO0FBQ0EsT0FBTyxJQUFNQyxlQUFlLEdBQUdWLE1BQU0sQ0FBQ00sR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLDRGQU1yQyxVQUFBRSxJQUFBO0VBQUEsSUFBR0MsZUFBZSxHQUFBRCxJQUFBLENBQWZDLGVBQWU7RUFBQSxPQUFRQSxlQUFlLEdBQUcsRUFBRSxHQUFHLGlEQUFpRDtBQUFBLENBQUMsQ0FDdEc7O0FBRUQ7QUFDQSxPQUFPLElBQU1DLGdCQUFnQixHQUFHYixNQUFNLENBQUNNLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSw4R0FPekM7O0FBRUQ7QUFDQSxPQUFPLElBQU1LLGVBQWUsR0FBR2QsTUFBTSxDQUFDTSxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsNkdBSzVCLFVBQUFNLEtBQUE7RUFBQSxJQUFHQyxvQkFBb0IsR0FBQUQsS0FBQSxDQUFwQkMsb0JBQW9CO0VBQUEsT0FBUUEsb0JBQW9C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
|
|
@@ -99,7 +99,7 @@ var processSSEStream = /*#__PURE__*/function () {
|
|
|
99
99
|
var finalContent = eventData.content || accumulatedContent;
|
|
100
100
|
var sources = eventData.sources || null;
|
|
101
101
|
var memorySessionId = eventData.memory_session_id || '';
|
|
102
|
-
var suggestions = Array.isArray(eventData.suggestions) ? eventData.suggestions : null;
|
|
102
|
+
var suggestions = Array.isArray(eventData.suggest_reply) ? eventData.suggest_reply : Array.isArray(eventData.suggestions) ? eventData.suggestions : null;
|
|
103
103
|
callbacks.onComplete(finalContent, sources, memorySessionId, threadId, suggestions);
|
|
104
104
|
} else if (eventType === 'error') {
|
|
105
105
|
callbacks.onError(eventData.error, threadId);
|
|
@@ -869,4 +869,4 @@ export var useChatManager = function useChatManager(_ref2) {
|
|
|
869
869
|
isDisabled: waitingResponse || loadingMessages
|
|
870
870
|
};
|
|
871
871
|
};
|
|
872
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZVJlZiIsInVzZUVmZmVjdCIsInVzZVN0YXRlIiwidjQiLCJ1dWlkdjQiLCJ1c2VDaGF0TWVzc2FnZXMiLCJ1c2VPcmNoZXN0cmF0b3JTdHJlYW0iLCJ1c2VUIiwidXNlVXNlciIsInVzZUdsb2JhbENvbnRleHQiLCJFVkVOVFMiLCJ1c2VFdmVudCIsIm1haWEiLCJGZWVkYmFjayIsIkNoYXRIaXN0b3J5Um9sZSIsInVzZVByb2plY3RzIiwidXNlVGFiVGFza0RlZmF1bHQiLCJUQVNLX1VSTF9SRUdFWF9QQVRURVJOIiwibm9ybWFsaXplU2VuZE1lc3NhZ2VBcmdzIiwiYXR0YWNobWVudHNPck9wdGlvbnMiLCJfb3B0aW9ucyRhdHRhY2htZW50cyIsIkFycmF5IiwiaXNBcnJheSIsImF0dGFjaG1lbnRzIiwib3B0aW9ucyIsInVzZVN0YWJsZUNhbGxiYWNrcyIsImF1dGhVc2VyIiwiY3VycmVudFVzZXIiLCJpZCIsInRvU3RyaW5nIiwibmFtZSIsImZpcnN0TmFtZSIsImF2YXRhciIsInBpY3R1cmUiLCJjdXJyZW50IiwicGFyc2VTU0VMaW5lIiwibGluZSIsInRyaW0iLCJfbGluZSRzcGxpdCIsInNwbGl0IiwiX2xpbmUkc3BsaXQyIiwiX3NsaWNlZFRvQXJyYXkiLCJldmVudExpbmUiLCJkYXRhTGluZSIsImV2ZW50VHlwZSIsInJlcGxhY2UiLCJkYXRhU3RyIiwiZGF0YSIsIkpTT04iLCJwYXJzZSIsInBhcnNlRXJyb3IiLCJjb25zb2xlIiwiZXJyb3IiLCJwcm9jZXNzU1NFU3RyZWFtIiwiX3JlZiIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwicmVzcG9uc2UiLCJ0aHJlYWRJZCIsImNhbGxiYWNrcyIsIl9yZXNwb25zZSRib2R5IiwicmVhZGVyIiwiZGVjb2RlciIsImJ1ZmZlciIsImFjY3VtdWxhdGVkQ29udGVudCIsImlzU3RyZWFtQ29tcGxldGUiLCJoYW5kbGVMaW5lIiwiX3lpZWxkJHJlYWRlciRyZWFkIiwiZG9uZSIsInZhbHVlIiwibGluZXMiLCJpIiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJfaGFuZGxlTGluZSIsInBhcnNlZCIsImV2ZW50RGF0YSIsImNvbnRlbnQiLCJvblRva2VuIiwibWVzc2FnZSIsIm9uTm9kZSIsImZpbmFsQ29udGVudCIsInNvdXJjZXMiLCJtZW1vcnlTZXNzaW9uSWQiLCJtZW1vcnlfc2Vzc2lvbl9pZCIsInN1Z2dlc3Rpb25zIiwib25Db21wbGV0ZSIsIm9uRXJyb3IiLCJib2R5IiwiZ2V0UmVhZGVyIiwiRXJyb3IiLCJUZXh0RGVjb2RlciIsInJlYWQiLCJzZW50IiwiYWJydXB0IiwiZGVjb2RlIiwic3RyZWFtIiwicG9wIiwibGVuZ3RoIiwic3RvcCIsIl94IiwiX3gyIiwiX3gzIiwiYXBwbHkiLCJhcmd1bWVudHMiLCJ1c2VDaGF0TWFuYWdlciIsIl9yZWYyIiwiaW5pdGlhbENoYXRJZCIsImNoYXRJZCIsInVzZXJJbml0aWFsTWVzc2FnZSIsIl9yZWYyJGFnZW50cyIsImFnZW50cyIsIl91c2VUIiwidCIsIl91c2VHbG9iYWxDb250ZXh0IiwicHJvamVjdCIsInNldFByb2plY3QiLCJjbGllbnQiLCJzZXRDbGllbnQiLCJhZ2VudCIsImlzV2ViU2VhcmNoQWN0aXZlIiwiaXNEZWVwU2VhcmNoQWN0aXZlIiwiY2hpcHNQcm9qZWN0Iiwic2V0Q2hpcHNQcm9qZWN0IiwiZXZlbnQiLCJfdXNlUHJvamVjdHMiLCJmZXRjaFByb2plY3RzIiwiX3VzZVN0YWJsZUNhbGxiYWNrcyIsIl91c2VUYWJUYXNrRGVmYXVsdCIsImdldFRhYlRhc2tEZWZhdWx0IiwiY3VycmVudE1lc3NhZ2VJZCIsImN1cnJlbnRVc2VyUXVlc3Rpb24iLCJjdXJyZW50Q2hhdElkIiwicmVwb3J0ZWRFdmVudCIsIm1lc3NhZ2VzUmVmIiwiaXNQcm9jZXNzaW5nUmVmIiwiZmlyc3RUaW1lUmVmIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsImFjdGl2ZUxvYWRpbmdzIiwic2V0QWN0aXZlTG9hZGluZ3MiLCJpc1dlYlNlYXJjaEFjdGl2ZVJlZiIsImlzRGVlcFNlYXJjaEFjdGl2ZVJlZiIsIl91c2VDaGF0TWVzc2FnZXMiLCJsb2FkaW5nTWVzc2FnZXMiLCJtZXNzYWdlcyIsImlzTG9hZGluZ01vcmVNZXNzYWdlcyIsImxvYWRNZXNzYWdlcyIsImFkZE1lc3NhZ2UiLCJyZW1vdmVNZXNzYWdlIiwiaGFuZGxlU2Nyb2xsIiwiY3VzdG9tRXZlbnQiLCJDdXN0b21FdmVudCIsImRldGFpbCIsImRvY3VtZW50IiwiZGlzcGF0Y2hFdmVudCIsImxhc3RNc2dXaXRoUHJvamVjdCIsImZpbHRlciIsIm1zZyIsInByb2plY3RJZCIsImF0IiwiX3JlZjMiLCJwcm9qZWN0TmFtZSIsInRoZW4iLCJwcm9qZWN0cyIsImZvdW5kIiwiZmluZCIsInAiLCJOdW1iZXIiLCJfZm91bmQkY2xpZW50IiwiY2xpZW50TmFtZSIsIlN0cmluZyIsImxhc3RNc2dXaXRoQ2xpZW50IiwiY2xpZW50SWQiLCJfcmVmNCIsIm1zZ0NsaWVudElkIiwibXNnQ2xpZW50TmFtZSIsImhhbmRsZVN0cmVhbUVycm9yIiwiZXJyb3JNZXNzYWdlIiwiY29uY2F0IiwiaXNFcnJvciIsImRhdGUiLCJEYXRlIiwidXNlciIsInJvbGUiLCJBU1NJU1RBTlQiLCJoYW5kbGVTdHJlYW1VcGRhdGUiLCJ0ZW1wTWVzc2FnZUlkIiwiaGFuZGxlU3RyZWFtRmluaXNoIiwiX3JlZjUiLCJfY2FsbGVlMiIsIl9wcmV2aW91c01lc3NhZ2UkYXBwciIsIl9wcmV2aW91c01lc3NhZ2UkYXBwcjIiLCJ0YXNrVXJsUmVnZXgiLCJtYXRjaGVzIiwiY29udGVudFRvQWRkIiwicHJldmlvdXNNZXNzYWdlIiwiaGFzQXBwcm92YWxJblByZXZpb3VzTWVzc2FnZSIsIlRBU0tfQ1JFQVRJT05fVE9PTFMiLCJUQVNLX0VESVRfVE9PTFMiLCJ3YXNUYXNrQ3JlYXRpb24iLCJ3YXNUYXNrRWRpdCIsInRhc2tJZHMiLCJ0YWIiLCJ0YWJTZWdtZW50IiwibGFzdFByb2plY3RNZXNzYWdlIiwiY29udGV4dFByb2plY3RJZFJhdyIsImNvbnRleHRQcm9qZWN0SWQiLCJwYXRoTWF0Y2giLCJyb3V0ZVByb2plY3RJZCIsIl93aW5kb3ckbmV3UHJvamVjdERhcyIsIl9jb250ZXh0MiIsIlJlZ0V4cCIsIl90b0NvbnN1bWFibGVBcnJheSIsIm1hdGNoQWxsIiwibSIsImFwcHJvdmFsIiwicGVuZGluZ19hY3Rpb25zIiwic29tZSIsImFjdGlvbiIsImluY2x1ZGVzIiwidG9vbF9uYW1lIiwibWFwIiwibWF0Y2giLCJwYXJzZUludCIsInVybCIsIndpbmRvdyIsImxvY2F0aW9uIiwicGF0aG5hbWUiLCJuZXdQcm9qZWN0RGFzaGJvYXJkIiwiYWRkRXhpc3RpbmdUYXNrVG9EYXNoYm9hcmQiLCJfeDQiLCJfeDUiLCJfeDYiLCJfeDciLCJoYW5kbGVTdHJlYW1TdG9wIiwiaXNGcm9udGVuZENhbmNlbGxlZCIsInNldFRpbWVvdXQiLCJoYW5kbGVBcHByb3ZhbFJlcXVpcmVkIiwib3JpZ2luYWxfdGhyZWFkX2lkIiwiYXBwcm92YWxTdGF0dXMiLCJfdXNlT3JjaGVzdHJhdG9yU3RyZWEiLCJvblN0cmVhbVVwZGF0ZSIsIm9uRmluaXNoU3RyZWFtIiwib25TdG9wIiwib25BcHByb3ZhbFJlcXVpcmVkIiwiYXNrTWFpYSIsIndhaXRpbmdSZXNwb25zZSIsImlzTG9hZGluZyIsImlzV3JpdGluZyIsImxvYWRpbmdNZXNzYWdlIiwic3RvcFN0cmVhbWluZyIsImN1cnJlbnRQcm9qZWN0Iiwic2VuZE1lc3NhZ2UiLCJfcmVmNiIsIl9jYWxsZWUzIiwiZmFxSWQiLCJfbWVzc2FnZXNSZWYkY3VycmVudCIsIl9wcm9qZWN0JGNsaWVudCIsIl9ub3JtYWxpemVTZW5kTWVzc2FnZSIsIm5ld01lc3NhZ2VJZCIsImxhc3RNZXNzYWdlV2l0aFByb2plY3QiLCJjdXJyZW50QWdlbnRGcm9tTWVzc2FnZXMiLCJmaW5hbE1lc3NhZ2UiLCJfb3B0aW9ucyRwcm9qZWN0Q2hhbmciLCJoaXN0b3J5IiwibGFzdE1lc3NhZ2VQcm9qZWN0SWQiLCJwcm9qZWN0VG9SZXF1ZXN0IiwicGF5bG9hZEZhcUlkIiwicGF5bG9hZERhdGEiLCJfY29udGV4dDMiLCJwbUFpVHlwZWRUZXh0IiwiYWdlbnRJZCIsIlVTRVIiLCJwcm9qZWN0Q2hhbmdlZCIsImluY29tZVR5cGUiLCJoaXN0b3J5TWVzc2FnZSIsImlzRmluaXRlIiwiX29iamVjdFNwcmVhZCIsImxhbmciLCJ1c2VySWQiLCJsYXN0TmFtZSIsImNvbXBhbnlJZCIsImNvbXBhbnlfaWQiLCJtZXNzYWdlSWQiLCJhZ2VudE5hbWUiLCJlbnRpdHkiLCJhZ2VudEVudGl0eSIsIl94OCIsIl94OSIsIl94MCIsImNoYW5nZVByb2plY3QiLCJvcHRpb24iLCJoYW5kbGVGZWVkYmFjayIsIl9yZWY3IiwiX2NhbGxlZTQiLCJmZWVkYmFja1Byb3AiLCJjaGF0TWVzc2FnZUlkIiwiX2NvbnRleHQ0IiwiQ2hhdHMiLCJ3YXNIZWxwZnVsQ2hhdCIsIlRIVU1CU19VUCIsIndhc0hlbHBmdWwiLCJfeDEiLCJfeDEwIiwiaGFuZGxlQXBwcm92YWxEZWNpc2lvbiIsIl9yZWY4IiwiX2NhbGxlZTUiLCJkZWNpc2lvbiIsImVkaXRlZEFjdGlvbnMiLCJfYXBwcm92YWwkcGVuZGluZ19hY3QiLCJtZXNzYWdlV2l0aEFwcHJvdmFsIiwiaGFzQ3JlYXRlQWdlbnRBY3Rpb24iLCJzaG91bGRSZWZldGNoQWdlbnRzQWZ0ZXJDb21wbGV0aW9uIiwiZXhpc3RpbmdNZXNzYWdlIiwibmV3U3RhdHVzIiwiX3QiLCJfY29udGV4dDUiLCJfbSRhcHByb3ZhbCIsInRocmVhZF9pZCIsIl9kZWZpbmVQcm9wZXJ0eSIsIk9yY2hlc3RyYXRvciIsImNvbnRpbnVlVGhyZWFkIiwic2Vzc2lvbklkIiwic2Vzc2lvbl9pZCIsIm9rIiwibmV3TG9hZGluZ3MiLCJjdXJyZW50VGhyZWFkSWQiLCJkaXNwbGF5TXNnIiwiX3gxMSIsIl94MTIiLCJfeDEzIiwiaW5pdGlhbGl6ZUNoYXQiLCJfY2FsbGVlNiIsIl91c2VySW5pdGlhbE1lc3NhZ2UkbSIsIl91c2VySW5pdGlhbE1lc3NhZ2UkYSIsIl9wcm9qZWN0JGNsaWVudDIiLCJfcHJvamVjdCRjbGllbnQzIiwiaGFzSW5pdGlhbE1lc3NhZ2UiLCJoYXNJbml0aWFsQXR0YWNobWVudHMiLCJoYXNJbml0aWFsRmFxIiwiX2NvbnRleHQ2IiwiQm9vbGVhbiIsInJlc2V0Q2hhdCIsInN0b3BHZW5lcmF0aW9uIiwiaXNEaXNhYmxlZCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ob29rcy91c2VDaGF0TWFuYWdlci91c2VDaGF0TWFuYWdlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSByYWRpeCAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tbmVzdGVkLXRlcm5hcnkgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRlZC1vcHRpb25hbC1jaGFpbiAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZVJlZiwgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdjQgYXMgdXVpZHY0IH0gZnJvbSAndXVpZCdcbmltcG9ydCB7IHVzZUNoYXRNZXNzYWdlcyB9IGZyb20gJy4uL3VzZUNoYXRNZXNzYWdlcydcbmltcG9ydCB7IHVzZU9yY2hlc3RyYXRvclN0cmVhbSB9IGZyb20gJy4uL3VzZU9yY2hlc3RyYXRvclN0cmVhbSdcbmltcG9ydCB7IHVzZVQgfSBmcm9tICcuLi91c2VUJ1xuaW1wb3J0IHsgQXR0YWNobWVudEZpbGUgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL21vbGVjdWxlcy9DaGF0Rm9vdGVyL0NoYXRGb290ZXInXG5pbXBvcnQgeyBTZW5kTWVzc2FnZU9wdGlvbnMsIFVzZUNoYXRNYW5hZ2VyUHJvcHMgfSBmcm9tICcuL3VzZUNoYXRNYW5hZ2VyLmludGVyZmFjZSdcbmltcG9ydCB7IHVzZVVzZXIsIENPUlVzZXIgfSBmcm9tICcuLi8uLi9jb250ZXh0L2Nvci11c2VyJ1xuaW1wb3J0IHsgdXNlR2xvYmFsQ29udGV4dCB9IGZyb20gJy4uLy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyBFVkVOVFMsIHVzZUV2ZW50IH0gZnJvbSAnLi4vdXNlRXZlbnQnXG5pbXBvcnQgbWFpYSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tYWlhJ1xuaW1wb3J0IHsgRmVlZGJhY2sgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL21vbGVjdWxlcy9NZXNzYWdlRmVlZGJhY2svTWVzc2FnZUZlZWRiYWNrJ1xuaW1wb3J0IHsgQ2hhdE1lc3NhZ2UsIENoYXRNZXNzYWdlVXNlciwgQ2hhdEhpc3RvcnlSb2xlLCBBcHByb3ZhbFJlcXVlc3QgfSBmcm9tICcuLi8uLi90eXBlcy9DaGF0J1xuXG5pbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSAnLi4vLi4vdHlwZXMvUHJvamVjdCdcbmltcG9ydCB7IHVzZVByb2plY3RzIH0gZnJvbSAnLi4vdXNlUHJvamVjdHMnXG5pbXBvcnQgeyB1c2VUYWJUYXNrRGVmYXVsdCB9IGZyb20gJy4uL3VzZVRhYlRhc2tEZWZhdWx0J1xuaW1wb3J0IHsgVEFTS19VUkxfUkVHRVhfUEFUVEVSTiB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy90YXNrVXJscydcblxudHlwZSBBdHRhY2htZW50c09yT3B0aW9ucyA9IEF0dGFjaG1lbnRGaWxlW10gfCBTZW5kTWVzc2FnZU9wdGlvbnNcblxuY29uc3Qgbm9ybWFsaXplU2VuZE1lc3NhZ2VBcmdzID0gKGF0dGFjaG1lbnRzT3JPcHRpb25zPzogQXR0YWNobWVudHNPck9wdGlvbnMpID0+IHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoYXR0YWNobWVudHNPck9wdGlvbnMpKSB7XG4gICAgcmV0dXJuIHsgYXR0YWNobWVudHM6IGF0dGFjaG1lbnRzT3JPcHRpb25zLCBvcHRpb25zOiB7fSBhcyBTZW5kTWVzc2FnZU9wdGlvbnMgfVxuICB9XG5cbiAgY29uc3Qgb3B0aW9uczogU2VuZE1lc3NhZ2VPcHRpb25zID0gYXR0YWNobWVudHNPck9wdGlvbnMgPz8ge31cbiAgcmV0dXJuIHsgYXR0YWNobWVudHM6IG9wdGlvbnMuYXR0YWNobWVudHMgPz8gW10sIG9wdGlvbnMgfVxufVxuXG5jb25zdCB1c2VTdGFibGVDYWxsYmFja3MgPSAoYXV0aFVzZXI6IENPUlVzZXIpID0+IHtcbiAgY29uc3QgY3VycmVudFVzZXIgPSB1c2VSZWY8Q2hhdE1lc3NhZ2VVc2VyPih7XG4gICAgaWQ6IGF1dGhVc2VyLmlkLnRvU3RyaW5nKCksXG4gICAgbmFtZTogYXV0aFVzZXIuZmlyc3ROYW1lLFxuICAgIGF2YXRhcjogYXV0aFVzZXIucGljdHVyZSxcbiAgfSlcblxuICBpZiAoXG4gICAgY3VycmVudFVzZXIuY3VycmVudC5pZCAhPT0gYXV0aFVzZXIuaWQudG9TdHJpbmcoKSB8fFxuICAgIGN1cnJlbnRVc2VyLmN1cnJlbnQubmFtZSAhPT0gYXV0aFVzZXIuZmlyc3ROYW1lIHx8XG4gICAgY3VycmVudFVzZXIuY3VycmVudC5hdmF0YXIgIT09IGF1dGhVc2VyLnBpY3R1cmVcbiAgKSB7XG4gICAgY3VycmVudFVzZXIuY3VycmVudCA9IHtcbiAgICAgIGlkOiBhdXRoVXNlci5pZC50b1N0cmluZygpLFxuICAgICAgbmFtZTogYXV0aFVzZXIuZmlyc3ROYW1lLFxuICAgICAgYXZhdGFyOiBhdXRoVXNlci5waWN0dXJlLFxuICAgIH1cbiAgfVxuICByZXR1cm4ge1xuICAgIGN1cnJlbnRVc2VyOiBjdXJyZW50VXNlci5jdXJyZW50LFxuICB9XG59XG5cbmNvbnN0IHBhcnNlU1NFTGluZSA9IChsaW5lOiBzdHJpbmcpOiB7IGV2ZW50VHlwZTogc3RyaW5nOyBkYXRhOiB1bmtub3duIH0gfCBudWxsID0+IHtcbiAgaWYgKCFsaW5lLnRyaW0oKSkgcmV0dXJuIG51bGxcblxuICBjb25zdCBbZXZlbnRMaW5lLCBkYXRhTGluZV0gPSBsaW5lLnNwbGl0KCdcXG4nKVxuICBpZiAoIWV2ZW50TGluZSB8fCAhZGF0YUxpbmUpIHJldHVybiBudWxsXG5cbiAgY29uc3QgZXZlbnRUeXBlID0gZXZlbnRMaW5lLnJlcGxhY2UoJ2V2ZW50OiAnLCAnJykudHJpbSgpXG4gIGNvbnN0IGRhdGFTdHIgPSBkYXRhTGluZS5yZXBsYWNlKCdkYXRhOiAnLCAnJykudHJpbSgpXG5cbiAgdHJ5IHtcbiAgICBjb25zdCBkYXRhID0gSlNPTi5wYXJzZShkYXRhU3RyKVxuICAgIHJldHVybiB7IGV2ZW50VHlwZSwgZGF0YSB9XG4gIH0gY2F0Y2ggKHBhcnNlRXJyb3IpIHtcbiAgICBjb25zb2xlLmVycm9yKCdFcnJvciBwYXJzaW5nIFNTRSBkYXRhOicsIHBhcnNlRXJyb3IsIGRhdGFTdHIpXG4gICAgcmV0dXJuIG51bGxcbiAgfVxufVxuXG5jb25zdCBwcm9jZXNzU1NFU3RyZWFtID0gYXN5bmMgKFxuICByZXNwb25zZTogUmVzcG9uc2UsXG4gIHRocmVhZElkOiBzdHJpbmcsXG4gIGNhbGxiYWNrczoge1xuICAgIG9uVG9rZW46IChjb250ZW50OiBzdHJpbmcpID0+IHZvaWRcbiAgICBvbk5vZGU6IChtZXNzYWdlOiBzdHJpbmcsIHRocmVhZElkOiBzdHJpbmcpID0+IHZvaWRcbiAgICBvbkNvbXBsZXRlOiAoXG4gICAgICBmaW5hbENvbnRlbnQ6IHN0cmluZyxcbiAgICAgIHNvdXJjZXM6IGFueSxcbiAgICAgIG1lbW9yeVNlc3Npb25JZDogc3RyaW5nLFxuICAgICAgY3VycmVudFRocmVhZElkOiBzdHJpbmcsXG4gICAgICBzdWdnZXN0aW9ucz86IHN0cmluZ1tdIHwgbnVsbFxuICAgICkgPT4gdm9pZFxuICAgIG9uRXJyb3I6IChlcnJvcjogYW55LCB0aHJlYWRJZDogc3RyaW5nKSA9PiB2b2lkXG4gIH1cbik6IFByb21pc2U8dm9pZD4gPT4ge1xuICBjb25zdCByZWFkZXIgPSByZXNwb25zZS5ib2R5Py5nZXRSZWFkZXIoKVxuICBpZiAoIXJlYWRlcikge1xuICAgIHRocm93IG5ldyBFcnJvcignTm8gcmVhZGVyIGF2YWlsYWJsZScpXG4gIH1cblxuICBjb25zdCBkZWNvZGVyID0gbmV3IFRleHREZWNvZGVyKClcbiAgbGV0IGJ1ZmZlciA9ICcnXG4gIGxldCBhY2N1bXVsYXRlZENvbnRlbnQgPSAnJ1xuICBsZXQgaXNTdHJlYW1Db21wbGV0ZSA9IGZhbHNlXG5cbiAgZnVuY3Rpb24gaGFuZGxlTGluZShsaW5lOiBzdHJpbmcpIHtcbiAgICBjb25zdCBwYXJzZWQgPSBwYXJzZVNTRUxpbmUobGluZSlcbiAgICBpZiAoIXBhcnNlZCkgcmV0dXJuXG5cbiAgICBjb25zdCB7IGV2ZW50VHlwZSwgZGF0YSB9ID0gcGFyc2VkXG4gICAgY29uc3QgZXZlbnREYXRhID0gZGF0YSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuXG4gICAgaWYgKGV2ZW50VHlwZSA9PT0gJ3Rva2VuJykge1xuICAgICAgY29uc3QgY29udGVudCA9IGV2ZW50RGF0YS5jb250ZW50IGFzIHN0cmluZ1xuICAgICAgYWNjdW11bGF0ZWRDb250ZW50ICs9IGNvbnRlbnRcbiAgICAgIGNhbGxiYWNrcy5vblRva2VuKGFjY3VtdWxhdGVkQ29udGVudClcbiAgICB9IGVsc2UgaWYgKGV2ZW50VHlwZSA9PT0gJ25vZGUnKSB7XG4gICAgICBpZiAoZXZlbnREYXRhLm1lc3NhZ2UgJiYgdHlwZW9mIGV2ZW50RGF0YS5tZXNzYWdlID09PSAnc3RyaW5nJykge1xuICAgICAgICBjYWxsYmFja3Mub25Ob2RlKGV2ZW50RGF0YS5tZXNzYWdlLCB0aHJlYWRJZClcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGV2ZW50VHlwZSA9PT0gJ2NvbXBsZXRlJykge1xuICAgICAgY29uc3QgZmluYWxDb250ZW50ID0gKGV2ZW50RGF0YS5jb250ZW50IGFzIHN0cmluZykgfHwgYWNjdW11bGF0ZWRDb250ZW50XG4gICAgICBjb25zdCBzb3VyY2VzID0gKGV2ZW50RGF0YS5zb3VyY2VzIGFzIHVua25vd24pIHx8IG51bGxcbiAgICAgIGNvbnN0IG1lbW9yeVNlc3Npb25JZCA9IChldmVudERhdGEubWVtb3J5X3Nlc3Npb25faWQgYXMgc3RyaW5nKSB8fCAnJ1xuICAgICAgY29uc3Qgc3VnZ2VzdGlvbnMgPSBBcnJheS5pc0FycmF5KGV2ZW50RGF0YS5zdWdnZXN0aW9ucykgPyAoZXZlbnREYXRhLnN1Z2dlc3Rpb25zIGFzIHN0cmluZ1tdKSA6IG51bGxcbiAgICAgIGNhbGxiYWNrcy5vbkNvbXBsZXRlKGZpbmFsQ29udGVudCwgc291cmNlcywgbWVtb3J5U2Vzc2lvbklkLCB0aHJlYWRJZCwgc3VnZ2VzdGlvbnMpXG4gICAgfSBlbHNlIGlmIChldmVudFR5cGUgPT09ICdlcnJvcicpIHtcbiAgICAgIGNhbGxiYWNrcy5vbkVycm9yKGV2ZW50RGF0YS5lcnJvciwgdGhyZWFkSWQpXG4gICAgfVxuICB9XG5cbiAgd2hpbGUgKCFpc1N0cmVhbUNvbXBsZXRlKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWF3YWl0LWluLWxvb3BcbiAgICBjb25zdCB7IGRvbmUsIHZhbHVlIH0gPSBhd2FpdCByZWFkZXIucmVhZCgpXG4gICAgaWYgKGRvbmUpIHtcbiAgICAgIGlzU3RyZWFtQ29tcGxldGUgPSB0cnVlXG4gICAgICBicmVha1xuICAgIH1cblxuICAgIGJ1ZmZlciArPSBkZWNvZGVyLmRlY29kZSh2YWx1ZSwgeyBzdHJlYW06IHRydWUgfSlcbiAgICBjb25zdCBsaW5lcyA9IGJ1ZmZlci5zcGxpdCgnXFxuXFxuJylcbiAgICBidWZmZXIgPSBsaW5lcy5wb3AoKSB8fCAnJ1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaW5lcy5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgaGFuZGxlTGluZShsaW5lc1tpXSlcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IHVzZUNoYXRNYW5hZ2VyID0gKHtcbiAgY2hhdElkOiBpbml0aWFsQ2hhdElkLFxuICB1c2VySW5pdGlhbE1lc3NhZ2UsXG4gIG9uRXJyb3IsXG4gIGFnZW50cyA9IFtdLFxufTogVXNlQ2hhdE1hbmFnZXJQcm9wcykgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVQoKVxuICBjb25zdCBhdXRoVXNlciA9IHVzZVVzZXIoKVxuICBjb25zdCB7XG4gICAgcHJvamVjdCxcbiAgICBzZXRQcm9qZWN0LFxuICAgIGNsaWVudCxcbiAgICBzZXRDbGllbnQsXG4gICAgYWdlbnQsXG4gICAgaXNXZWJTZWFyY2hBY3RpdmUsXG4gICAgaXNEZWVwU2VhcmNoQWN0aXZlLFxuICAgIGNoaXBzUHJvamVjdCxcbiAgICBzZXRDaGlwc1Byb2plY3QsXG4gIH0gPSB1c2VHbG9iYWxDb250ZXh0KClcbiAgY29uc3QgZXZlbnQgPSB1c2VFdmVudCgpXG4gIGNvbnN0IHsgZmV0Y2hQcm9qZWN0cyB9ID0gdXNlUHJvamVjdHMoKVxuICBjb25zdCB7IGN1cnJlbnRVc2VyIH0gPSB1c2VTdGFibGVDYWxsYmFja3MoYXV0aFVzZXIpXG4gIGNvbnN0IHsgZ2V0VGFiVGFza0RlZmF1bHQgfSA9IHVzZVRhYlRhc2tEZWZhdWx0KClcbiAgY29uc3QgY3VycmVudE1lc3NhZ2VJZCA9IHVzZVJlZih1dWlkdjQoKSlcbiAgY29uc3QgY3VycmVudFVzZXJRdWVzdGlvbiA9IHVzZVJlZjxzdHJpbmcgfCBudWxsPihudWxsKVxuICBjb25zdCBjdXJyZW50Q2hhdElkID0gdXNlUmVmKGluaXRpYWxDaGF0SWQgfHwgdXVpZHY0KCkpXG4gIGNvbnN0IHJlcG9ydGVkRXZlbnQgPSB1c2VSZWYoZmFsc2UpXG4gIGNvbnN0IG1lc3NhZ2VzUmVmID0gdXNlUmVmPENoYXRNZXNzYWdlW10+KFtdKVxuICBjb25zdCBpc1Byb2Nlc3NpbmdSZWYgPSB1c2VSZWYoZmFsc2UpXG4gIGNvbnN0IGZpcnN0VGltZVJlZiA9IHVzZVJlZihmYWxzZSlcbiAgY29uc3QgW2FjdGl2ZUxvYWRpbmdzLCBzZXRBY3RpdmVMb2FkaW5nc10gPSB1c2VTdGF0ZTxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+Pih7fSlcblxuICBjb25zdCBpc1dlYlNlYXJjaEFjdGl2ZVJlZiA9IHVzZVJlZihpc1dlYlNlYXJjaEFjdGl2ZSlcbiAgY29uc3QgaXNEZWVwU2VhcmNoQWN0aXZlUmVmID0gdXNlUmVmKGlzRGVlcFNlYXJjaEFjdGl2ZSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlzV2ViU2VhcmNoQWN0aXZlUmVmLmN1cnJlbnQgPSBpc1dlYlNlYXJjaEFjdGl2ZVxuICAgIGlzRGVlcFNlYXJjaEFjdGl2ZVJlZi5jdXJyZW50ID0gaXNEZWVwU2VhcmNoQWN0aXZlXG4gIH0sIFtpc1dlYlNlYXJjaEFjdGl2ZSwgaXNEZWVwU2VhcmNoQWN0aXZlXSlcblxuICBjb25zdCB7IGxvYWRpbmdNZXNzYWdlcywgbWVzc2FnZXMsIGlzTG9hZGluZ01vcmVNZXNzYWdlcywgbG9hZE1lc3NhZ2VzLCBhZGRNZXNzYWdlLCByZW1vdmVNZXNzYWdlLCBoYW5kbGVTY3JvbGwgfSA9XG4gICAgdXNlQ2hhdE1lc3NhZ2VzKHtcbiAgICAgIGNoYXRJZDogaW5pdGlhbENoYXRJZCB8fCBjdXJyZW50Q2hhdElkLmN1cnJlbnQsXG4gICAgICBjdXJyZW50VXNlcixcbiAgICAgIHVzZXJJbml0aWFsTWVzc2FnZSxcbiAgICAgIG9uRXJyb3IsXG4gICAgICBhZ2VudHMsXG4gICAgfSlcblxuICBtZXNzYWdlc1JlZi5jdXJyZW50ID0gbWVzc2FnZXNcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGN1c3RvbUV2ZW50ID0gbmV3IEN1c3RvbUV2ZW50KCdjaGF0LWxvYWRpbmctbWVzc2FnZXMtY2hhbmdlZCcsIHtcbiAgICAgIGRldGFpbDogeyBsb2FkaW5nTWVzc2FnZXMgfSxcbiAgICB9KVxuICAgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQoY3VzdG9tRXZlbnQpXG4gIH0sIFtsb2FkaW5nTWVzc2FnZXNdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGluaXRpYWxDaGF0SWQgJiYgaW5pdGlhbENoYXRJZCAhPT0gY3VycmVudENoYXRJZC5jdXJyZW50KSB7XG4gICAgICAvLyBMaW1waWFyIGNvbnRleHRvIGdsb2JhbCBhbCBjYW1iaWFyIGRlIGNvbnZlcnNhY2nDs25cbiAgICAgIHNldFByb2plY3QobnVsbClcbiAgICAgIHNldENsaWVudD8uKG51bGwpXG4gICAgICBzZXRDaGlwc1Byb2plY3QobnVsbClcblxuICAgICAgY3VycmVudENoYXRJZC5jdXJyZW50ID0gaW5pdGlhbENoYXRJZFxuICAgICAgY3VycmVudE1lc3NhZ2VJZC5jdXJyZW50ID0gdXVpZHY0KClcbiAgICAgIGN1cnJlbnRVc2VyUXVlc3Rpb24uY3VycmVudCA9IG51bGxcbiAgICAgIHJlcG9ydGVkRXZlbnQuY3VycmVudCA9IGZhbHNlXG4gICAgICBpc1Byb2Nlc3NpbmdSZWYuY3VycmVudCA9IGZhbHNlXG5cbiAgICAgIGxvYWRNZXNzYWdlcygpXG4gICAgfVxuICB9LCBbaW5pdGlhbENoYXRJZCwgcHJvamVjdCwgc2V0UHJvamVjdCwgc2V0Q2xpZW50LCBzZXRDaGlwc1Byb2plY3QsIGxvYWRNZXNzYWdlc10pXG5cbiAgLy8gU2luY3Jvbml6YXIgY2hpcHNQcm9qZWN0IGN1YW5kbyBoYXkgbWVuc2FqZXMgY29uIHByb2plY3RJZCBwZXJvIGNoaXBzUHJvamVjdCBubyBzZSBoYSBzZXRlYWRvXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGNoaXBzUHJvamVjdCB8fCBsb2FkaW5nTWVzc2FnZXMpIHJldHVyblxuICAgIGNvbnN0IGxhc3RNc2dXaXRoUHJvamVjdCA9IG1lc3NhZ2VzLmZpbHRlcihtc2cgPT4gbXNnLnByb2plY3RJZCkuYXQoLTEpXG4gICAgY29uc3QgeyBwcm9qZWN0SWQsIHByb2plY3ROYW1lIH0gPSBsYXN0TXNnV2l0aFByb2plY3QgfHwge31cbiAgICBpZiAoIXByb2plY3RJZCkgcmV0dXJuXG5cbiAgICBmZXRjaFByb2plY3RzKHByb2plY3RJZCkudGhlbihwcm9qZWN0cyA9PiB7XG4gICAgICBjb25zdCBmb3VuZCA9IHByb2plY3RzPy5maW5kKHAgPT4gTnVtYmVyKHAuaWQpID09PSBOdW1iZXIocHJvamVjdElkKSlcbiAgICAgIGlmIChmb3VuZCkge1xuICAgICAgICBzZXRDaGlwc1Byb2plY3Qoe1xuICAgICAgICAgIHByb2plY3ROYW1lOiBmb3VuZC5uYW1lLFxuICAgICAgICAgIGNsaWVudE5hbWU6IGZvdW5kLmNsaWVudD8ubmFtZSB8fCAnJyxcbiAgICAgICAgICBwcm9qZWN0SWQ6IFN0cmluZyhmb3VuZC5pZCksXG4gICAgICAgIH0pXG4gICAgICAgIHNldFByb2plY3QoZm91bmQpXG4gICAgICB9IGVsc2UgaWYgKHByb2plY3ROYW1lKSB7XG4gICAgICAgIHNldENoaXBzUHJvamVjdCh7XG4gICAgICAgICAgcHJvamVjdE5hbWUsXG4gICAgICAgICAgY2xpZW50TmFtZTogJycsXG4gICAgICAgICAgcHJvamVjdElkOiBTdHJpbmcocHJvamVjdElkKSxcbiAgICAgICAgfSlcbiAgICAgICAgc2V0UHJvamVjdCh7IGlkOiBOdW1iZXIocHJvamVjdElkKSwgbmFtZTogcHJvamVjdE5hbWUgfSlcbiAgICAgIH1cbiAgICB9KVxuICB9LCBbbWVzc2FnZXMsIGNoaXBzUHJvamVjdCwgbG9hZGluZ01lc3NhZ2VzLCBmZXRjaFByb2plY3RzLCBzZXRDaGlwc1Byb2plY3QsIHNldFByb2plY3RdKVxuXG4gIC8vIFNpbmNyb25pemFyIGNsaWVudCBjdWFuZG8gaGF5IG1lbnNhamVzIGNvbiBjbGllbnRJZCBwZXJvIGNsaWVudCBubyBzZSBoYSBzZXRlYWRvXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGNsaWVudCB8fCBsb2FkaW5nTWVzc2FnZXMpIHJldHVyblxuICAgIGNvbnN0IGxhc3RNc2dXaXRoQ2xpZW50ID0gbWVzc2FnZXMuZmlsdGVyKG1zZyA9PiBtc2cuY2xpZW50SWQgIT0gbnVsbCAmJiBtc2cuY2xpZW50TmFtZSkuYXQoLTEpXG4gICAgY29uc3QgeyBjbGllbnRJZDogbXNnQ2xpZW50SWQsIGNsaWVudE5hbWU6IG1zZ0NsaWVudE5hbWUgfSA9IGxhc3RNc2dXaXRoQ2xpZW50IHx8IHt9XG4gICAgaWYgKG1zZ0NsaWVudElkID09IG51bGwgfHwgIW1zZ0NsaWVudE5hbWUpIHJldHVyblxuXG4gICAgc2V0Q2xpZW50Py4oeyBpZDogTnVtYmVyKG1zZ0NsaWVudElkKSwgbmFtZTogbXNnQ2xpZW50TmFtZSB9KVxuICB9LCBbbWVzc2FnZXMsIGNsaWVudCwgbG9hZGluZ01lc3NhZ2VzLCBzZXRDbGllbnRdKVxuXG4gIGNvbnN0IGhhbmRsZVN0cmVhbUVycm9yID0gdXNlQ2FsbGJhY2soXG4gICAgKGVycm9yTWVzc2FnZT86IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgbWVzc2FnZSA9XG4gICAgICAgIGVycm9yTWVzc2FnZSA9PT0gXCJBY2Nlc3MgZGVuaWVkOiBZb3UgZG9uJ3QgaGF2ZSBwZXJtaXNzaW9uIHRvIGFjY2VzcyB0aGlzIGFnZW50XCJcbiAgICAgICAgICA/IHQoJ2NoYXQuZXJyb3JBY2Nlc3NEZW5pZWQnKVxuICAgICAgICAgIDogdCgnY2hhdC5lcnJvcicpXG5cbiAgICAgIGFkZE1lc3NhZ2Uoe1xuICAgICAgICBpZDogYGFuc3dlci0ke2N1cnJlbnRNZXNzYWdlSWQuY3VycmVudH1gLFxuICAgICAgICBtZXNzYWdlLFxuICAgICAgICBpc0Vycm9yOiB0cnVlLFxuICAgICAgICBkYXRlOiBuZXcgRGF0ZSgpLFxuICAgICAgICB1c2VyOiB7IGlkOiAnYXNzaXN0YW50JywgbmFtZTogJ0Fzc2lzdGFudCcgfSxcbiAgICAgICAgcm9sZTogQ2hhdEhpc3RvcnlSb2xlLkFTU0lTVEFOVCxcbiAgICAgIH0pXG4gICAgICBpc1Byb2Nlc3NpbmdSZWYuY3VycmVudCA9IGZhbHNlXG4gICAgfSxcbiAgICBbYWRkTWVzc2FnZSwgdF1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZVN0cmVhbVVwZGF0ZSA9IHVzZUNhbGxiYWNrKFxuICAgIChjb250ZW50OiBzdHJpbmcsIHNvdXJjZXM6IGFueSwgbWVtb3J5U2Vzc2lvbklkOiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IHRlbXBNZXNzYWdlSWQgPSBgYW5zd2VyLSR7Y3VycmVudE1lc3NhZ2VJZC5jdXJyZW50fS1zdHJlYW1pbmdgXG5cbiAgICAgIGFkZE1lc3NhZ2Uoe1xuICAgICAgICBpZDogdGVtcE1lc3NhZ2VJZCxcbiAgICAgICAgbWVzc2FnZTogY29udGVudCxcbiAgICAgICAgZGF0ZTogbmV3IERhdGUoKSxcbiAgICAgICAgdXNlcjogeyBpZDogJ2Fzc2lzdGFudCcsIG5hbWU6ICdBc3Npc3RhbnQnIH0sXG4gICAgICAgIHJvbGU6IENoYXRIaXN0b3J5Um9sZS5BU1NJU1RBTlQsXG4gICAgICAgIHNvdXJjZXMsXG4gICAgICAgIG1lbW9yeVNlc3Npb25JZCxcbiAgICAgIH0pXG4gICAgfSxcbiAgICBbYWRkTWVzc2FnZV1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZVN0cmVhbUZpbmlzaCA9IHVzZUNhbGxiYWNrKFxuICAgIGFzeW5jIChjb250ZW50OiBzdHJpbmcsIHNvdXJjZXM6IGFueSwgbWVtb3J5U2Vzc2lvbklkOiBzdHJpbmcsIHN1Z2dlc3Rpb25zPzogc3RyaW5nW10gfCBudWxsKSA9PiB7XG4gICAgICBjb25zdCB0ZW1wTWVzc2FnZUlkID0gYGFuc3dlci0ke2N1cnJlbnRNZXNzYWdlSWQuY3VycmVudH0tc3RyZWFtaW5nYFxuICAgICAgcmVtb3ZlTWVzc2FnZSh0ZW1wTWVzc2FnZUlkKVxuXG4gICAgICAvLyBEZXRlY3RhciB0b2RhcyBsYXMgVVJMcyBkZSB0YXJlYXMgKC4uLi90YXNrcy8xMjMvZGV0YWlsfG1lc3NhZ2V8bWVzc2FnZXN8ZmlsZXN8aGlzdG9yeXxob3VycylcbiAgICAgIGNvbnN0IHRhc2tVcmxSZWdleCA9IG5ldyBSZWdFeHAoVEFTS19VUkxfUkVHRVhfUEFUVEVSTiwgJ2cnKVxuICAgICAgY29uc3QgbWF0Y2hlcyA9IFsuLi5jb250ZW50Lm1hdGNoQWxsKHRhc2tVcmxSZWdleCldXG5cbiAgICAgIGxldCBjb250ZW50VG9BZGQgPSBjb250ZW50XG4gICAgICBjb25zdCBwcmV2aW91c01lc3NhZ2UgPSBtZXNzYWdlc1JlZi5jdXJyZW50LmZpbHRlcihtID0+IG0uaWQgIT09IHRlbXBNZXNzYWdlSWQpLmF0KC0xKVxuICAgICAgY29uc3QgaGFzQXBwcm92YWxJblByZXZpb3VzTWVzc2FnZSA9IHByZXZpb3VzTWVzc2FnZT8uYXBwcm92YWwgIT0gbnVsbFxuICAgICAgY29uc3QgVEFTS19DUkVBVElPTl9UT09MUyA9IFsnY3JlYXRlX3Rhc2snLCAnY3JlYXRlX3Rhc2tzX2JhdGNoJ11cbiAgICAgIGNvbnN0IFRBU0tfRURJVF9UT09MUyA9IFtcbiAgICAgICAgJ2VkaXRfdGFzaycsXG4gICAgICAgICdlZGl0X3Rhc2tzX2JhdGNoJyxcbiAgICAgICAgJ3Rhc2tfYXNzaWduJyxcbiAgICAgICAgJ3Rhc2tfdW5hc3NpZ24nLFxuICAgICAgICAndXBkYXRlX3Rhc2tfdHlwZScsXG4gICAgICAgICd1cGRhdGVfZXN0aW1hdGVkX2hvdXJzJyxcbiAgICAgICAgJ2Fzc2lnbl90YXNrX2xhYmVsJyxcbiAgICAgIF1cbiAgICAgIGNvbnN0IHdhc1Rhc2tDcmVhdGlvbiA9XG4gICAgICAgIGhhc0FwcHJvdmFsSW5QcmV2aW91c01lc3NhZ2UgJiZcbiAgICAgICAgcHJldmlvdXNNZXNzYWdlPy5hcHByb3ZhbD8ucGVuZGluZ19hY3Rpb25zPy5zb21lKChhY3Rpb246IGFueSkgPT5cbiAgICAgICAgICBUQVNLX0NSRUFUSU9OX1RPT0xTLmluY2x1ZGVzKGFjdGlvbi50b29sX25hbWUpXG4gICAgICAgIClcbiAgICAgIGNvbnN0IHdhc1Rhc2tFZGl0ID1cbiAgICAgICAgaGFzQXBwcm92YWxJblByZXZpb3VzTWVzc2FnZSAmJlxuICAgICAgICBwcmV2aW91c01lc3NhZ2U/LmFwcHJvdmFsPy5wZW5kaW5nX2FjdGlvbnM/LnNvbWUoKGFjdGlvbjogYW55KSA9PiBUQVNLX0VESVRfVE9PTFMuaW5jbHVkZXMoYWN0aW9uLnRvb2xfbmFtZSkpXG4gICAgICBpZiAobWF0Y2hlcy5sZW5ndGggPiAwICYmIGhhc0FwcHJvdmFsSW5QcmV2aW91c01lc3NhZ2UpIHtcbiAgICAgICAgY29uc3QgdGFza0lkcyA9IG1hdGNoZXMubWFwKG1hdGNoID0+IHBhcnNlSW50KG1hdGNoWzFdLCAxMCkpXG4gICAgICAgIGNvbnN0IHRhYiA9IGF3YWl0IGdldFRhYlRhc2tEZWZhdWx0KHRhc2tJZHNbMF0pXG4gICAgICAgIGNvbnN0IHRhYlNlZ21lbnQgPSB0YWIgPyBgLyR7dGFifWAgOiAnL2RldGFpbCdcbiAgICAgICAgY29udGVudFRvQWRkID0gY29udGVudC5yZXBsYWNlKHRhc2tVcmxSZWdleCwgdXJsID0+XG4gICAgICAgICAgdXJsLnJlcGxhY2UoL1xcLyhkZXRhaWx8bWVzc2FnZXxtZXNzYWdlc3xmaWxlc3xoaXN0b3J5fGhvdXJzKSg/PSR8XFw/KS8sIHRhYlNlZ21lbnQpXG4gICAgICAgIClcblxuICAgICAgICAvLyBTb2xvIGHDsWFkaXIgYWwgZGFzaGJvYXJkIGN1YW5kbyBmdWUgY3JlYWNpw7NuIGRlIHRhcmVhIHkgbGEgcnV0YSBhY3R1YWwgY29pbmNpZGUgY29uIGVsIHByb3llY3RvIGRlbCBjaGF0XG4gICAgICAgIGlmICh3YXNUYXNrQ3JlYXRpb24pIHtcbiAgICAgICAgICBjb25zdCBsYXN0UHJvamVjdE1lc3NhZ2UgPSBtZXNzYWdlc1JlZi5jdXJyZW50LmZpbHRlcihtc2cgPT4gbXNnLnByb2plY3RJZCkuYXQoLTEpXG4gICAgICAgICAgY29uc3QgY29udGV4dFByb2plY3RJZFJhdyA9IHByb2plY3Q/LmlkIHx8IGxhc3RQcm9qZWN0TWVzc2FnZT8ucHJvamVjdElkXG4gICAgICAgICAgY29uc3QgY29udGV4dFByb2plY3RJZCA9IGNvbnRleHRQcm9qZWN0SWRSYXcgPyBwYXJzZUludChTdHJpbmcoY29udGV4dFByb2plY3RJZFJhdyksIDEwKSA6IG51bGxcbiAgICAgICAgICBjb25zdCBwYXRoTWF0Y2ggPSB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUubWF0Y2goL15cXC9wcm9qZWN0c1xcLyhcXGQrKVxcLy8pXG4gICAgICAgICAgY29uc3Qgcm91dGVQcm9qZWN0SWQgPSBwYXRoTWF0Y2ggPyBwYXJzZUludChwYXRoTWF0Y2hbMV0sIDEwKSA6IG51bGxcbiAgICAgICAgICBpZiAoY29udGV4dFByb2plY3RJZCAmJiByb3V0ZVByb2plY3RJZCAmJiBjb250ZXh0UHJvamVjdElkID09PSByb3V0ZVByb2plY3RJZCkge1xuICAgICAgICAgICAgaWYgKHdpbmRvdy5uZXdQcm9qZWN0RGFzaGJvYXJkPy5hZGRFeGlzdGluZ1Rhc2tUb0Rhc2hib2FyZCkge1xuICAgICAgICAgICAgICB3aW5kb3cubmV3UHJvamVjdERhc2hib2FyZC5hZGRFeGlzdGluZ1Rhc2tUb0Rhc2hib2FyZCh0YXNrSWRzKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICh3YXNUYXNrRWRpdCkge1xuICAgICAgICAgIC8vIFRPRE86IENPUiBkZWJlIGltcGxlbWVudGFyIHdpbmRvdy5uZXdQcm9qZWN0RGFzaGJvYXJkLnJlZnJlc2hUYXNrc09uRGFzaGJvYXJkKHRhc2tJZHMpXG4gICAgICAgICAgLy8gcGFyYSByZWZyZXNjYXIgdGFyZWFzIGVkaXRhZGFzIGVuIGVsIGRhc2hib2FyZCBzaW4gZHVwbGljYXJsYXNcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBhZGRNZXNzYWdlKHtcbiAgICAgICAgaWQ6IGBhbnN3ZXItJHttZW1vcnlTZXNzaW9uSWR9YCxcbiAgICAgICAgbWVzc2FnZTogY29udGVudFRvQWRkLFxuICAgICAgICBkYXRlOiBuZXcgRGF0ZSgpLFxuICAgICAgICB1c2VyOiB7IGlkOiAnYXNzaXN0YW50JywgbmFtZTogJ0Fzc2lzdGFudCcgfSxcbiAgICAgICAgcm9sZTogQ2hhdEhpc3RvcnlSb2xlLkFTU0lTVEFOVCxcbiAgICAgICAgc291cmNlcyxcbiAgICAgICAgbWVtb3J5U2Vzc2lvbklkLFxuICAgICAgICBzdWdnZXN0aW9uczogc3VnZ2VzdGlvbnMgfHwgW10sXG4gICAgICB9KVxuXG4gICAgICBpc1Byb2Nlc3NpbmdSZWYuY3VycmVudCA9IGZhbHNlXG4gICAgICBpZiAoZmlyc3RUaW1lUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgY29uc3QgY3VzdG9tRXZlbnQgPSBuZXcgQ3VzdG9tRXZlbnQoJ3JlZmV0Y2gtc2Vzc2lvbicpXG4gICAgICAgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQoY3VzdG9tRXZlbnQpXG4gICAgICAgIGZpcnN0VGltZVJlZi5jdXJyZW50ID0gZmFsc2VcbiAgICAgIH1cbiAgICB9LFxuICAgIFthZGRNZXNzYWdlLCByZW1vdmVNZXNzYWdlLCBwcm9qZWN0LCBnZXRUYWJUYXNrRGVmYXVsdF1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZVN0cmVhbVN0b3AgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgYWRkTWVzc2FnZSh7XG4gICAgICBpZDogYGFuc3dlci0ke2N1cnJlbnRNZXNzYWdlSWQuY3VycmVudH0tY2FuY2VsbGVkYCxcbiAgICAgIG1lc3NhZ2U6IHQoJ2NoYXQuY2FuY2VsbGVkJyksXG4gICAgICBkYXRlOiBuZXcgRGF0ZSgpLFxuICAgICAgdXNlcjogeyBpZDogJ2Fzc2lzdGFudCcsIG5hbWU6ICdBc3Npc3RhbnQnIH0sXG4gICAgICByb2xlOiBDaGF0SGlzdG9yeVJvbGUuQVNTSVNUQU5ULFxuICAgICAgaXNGcm9udGVuZENhbmNlbGxlZDogdHJ1ZSxcbiAgICB9KVxuICAgIGlzUHJvY2Vzc2luZ1JlZi5jdXJyZW50ID0gZmFsc2VcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGNvbnN0IGN1c3RvbUV2ZW50ID0gbmV3IEN1c3RvbUV2ZW50KCdyZWZldGNoLXNlc3Npb24nKVxuICAgICAgZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChjdXN0b21FdmVudClcbiAgICB9LCA1MDApXG4gIH0sIFthZGRNZXNzYWdlLCB0XSlcblxuICBjb25zdCBoYW5kbGVBcHByb3ZhbFJlcXVpcmVkID0gdXNlQ2FsbGJhY2soXG4gICAgKGFwcHJvdmFsOiBBcHByb3ZhbFJlcXVlc3QsIGFjY3VtdWxhdGVkQ29udGVudDogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCB0ZW1wTWVzc2FnZUlkID0gYGFuc3dlci0ke2N1cnJlbnRNZXNzYWdlSWQuY3VycmVudH0tc3RyZWFtaW5nYFxuICAgICAgcmVtb3ZlTWVzc2FnZSh0ZW1wTWVzc2FnZUlkKVxuXG4gICAgICAvLyBBZGQgYSBtZXNzYWdlIHdpdGggdGhlIGFwcHJvdmFsIHJlcXVlc3RcbiAgICAgIGFkZE1lc3NhZ2Uoe1xuICAgICAgICBpZDogYGFwcHJvdmFsLSR7YXBwcm92YWwub3JpZ2luYWxfdGhyZWFkX2lkfWAsXG4gICAgICAgIG1lc3NhZ2U6IGFjY3VtdWxhdGVkQ29udGVudCB8fCAnJyxcbiAgICAgICAgZGF0ZTogbmV3IERhdGUoKSxcbiAgICAgICAgdXNlcjogeyBpZDogJ2Fzc2lzdGFudCcsIG5hbWU6ICdBc3Npc3RhbnQnIH0sXG4gICAgICAgIHJvbGU6IENoYXRIaXN0b3J5Um9sZS5BU1NJU1RBTlQsXG4gICAgICAgIGFwcHJvdmFsLFxuICAgICAgICBhcHByb3ZhbFN0YXR1czogJ3BlbmRpbmcnLFxuICAgICAgfSlcbiAgICAgIGlzUHJvY2Vzc2luZ1JlZi5jdXJyZW50ID0gZmFsc2VcbiAgICB9LFxuICAgIFthZGRNZXNzYWdlLCByZW1vdmVNZXNzYWdlXVxuICApXG5cbiAgY29uc3Qge1xuICAgIGFza01haWEsXG4gICAgaXNMb2FkaW5nOiB3YWl0aW5nUmVzcG9uc2UsXG4gICAgaXNXcml0aW5nLFxuICAgIGxvYWRpbmdNZXNzYWdlLFxuICAgIHN0b3BTdHJlYW1pbmcsXG4gIH0gPSB1c2VPcmNoZXN0cmF0b3JTdHJlYW0oe1xuICAgIG9uRXJyb3I6IGhhbmRsZVN0cmVhbUVycm9yLFxuICAgIG9uU3RyZWFtVXBkYXRlOiBoYW5kbGVTdHJlYW1VcGRhdGUsXG4gICAgb25GaW5pc2hTdHJlYW06IGhhbmRsZVN0cmVhbUZpbmlzaCxcbiAgICBvblN0b3A6IGhhbmRsZVN0cmVhbVN0b3AsXG4gICAgb25BcHByb3ZhbFJlcXVpcmVkOiBoYW5kbGVBcHByb3ZhbFJlcXVpcmVkLFxuICB9KVxuXG4gIGNvbnN0IGN1cnJlbnRQcm9qZWN0ID0gcHJvamVjdFxuXG4gIGNvbnN0IHNlbmRNZXNzYWdlID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKG1lc3NhZ2U6IHN0cmluZywgYXR0YWNobWVudHNPck9wdGlvbnM/OiBBdHRhY2htZW50RmlsZVtdIHwgU2VuZE1lc3NhZ2VPcHRpb25zLCBmYXFJZD86IHN0cmluZykgPT4ge1xuICAgICAgaWYgKGlzUHJvY2Vzc2luZ1JlZi5jdXJyZW50IHx8IHdhaXRpbmdSZXNwb25zZSB8fCBsb2FkaW5nTWVzc2FnZXMpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHsgYXR0YWNobWVudHMsIG9wdGlvbnMgfSA9IG5vcm1hbGl6ZVNlbmRNZXNzYWdlQXJncyhhdHRhY2htZW50c09yT3B0aW9ucylcblxuICAgICAgaXNQcm9jZXNzaW5nUmVmLmN1cnJlbnQgPSB0cnVlXG4gICAgICBjb25zdCBuZXdNZXNzYWdlSWQgPSB1dWlkdjQoKVxuICAgICAgY3VycmVudE1lc3NhZ2VJZC5jdXJyZW50ID0gbmV3TWVzc2FnZUlkXG4gICAgICBjdXJyZW50VXNlclF1ZXN0aW9uLmN1cnJlbnQgPSBtZXNzYWdlXG5cbiAgICAgIGlmICghcmVwb3J0ZWRFdmVudC5jdXJyZW50KSB7XG4gICAgICAgIGV2ZW50KEVWRU5UUy5wbUFpVHlwZWRUZXh0KVxuICAgICAgICByZXBvcnRlZEV2ZW50LmN1cnJlbnQgPSB0cnVlXG4gICAgICB9XG5cbiAgICAgIC8vIFZlcmlmaWNhciBzaSBlbCBjb250ZXh0byBnbG9iYWwgZXN0w6EgZGVzYWN0dWFsaXphZG9cbiAgICAgIGNvbnN0IGxhc3RNZXNzYWdlV2l0aFByb2plY3QgPSBtZXNzYWdlc1JlZi5jdXJyZW50LmZpbHRlcihtc2cgPT4gbXNnLnByb2plY3RJZCkuYXQoLTEpXG5cbiAgICAgIGNvbnN0IGN1cnJlbnRBZ2VudEZyb21NZXNzYWdlcyA9IG1lc3NhZ2VzUmVmLmN1cnJlbnQ/LlttZXNzYWdlc1JlZi5jdXJyZW50Lmxlbmd0aCAtIDFdPy5hZ2VudElkXG5cbiAgICAgIC8vIE5vIGFncmVnYXIgcHJvamVjdElkIGFsIG1lbnNhamUgZGVsIHVzdWFyaW8gLSBzZSBkZXRlcm1pbmFyw6EgZGVzcHXDqXNcbiAgICAgIGFkZE1lc3NhZ2Uoe1xuICAgICAgICBpZDogYHF1ZXN0aW9uLSR7Y3VycmVudE1lc3NhZ2VJZC5jdXJyZW50fWAsXG4gICAgICAgIG1lc3NhZ2UsXG4gICAgICAgIGRhdGU6IG5ldyBEYXRlKCksXG4gICAgICAgIHVzZXI6IGN1cnJlbnRVc2VyLFxuICAgICAgICByb2xlOiBDaGF0SGlzdG9yeVJvbGUuVVNFUixcbiAgICAgICAgc291cmNlczogYXR0YWNobWVudHMsXG4gICAgICB9KVxuXG4gICAgICBjdXJyZW50TWVzc2FnZUlkLmN1cnJlbnQgPSB1dWlkdjQoKVxuICAgICAgbGV0IGZpbmFsTWVzc2FnZSA9IG1lc3NhZ2VcblxuICAgICAgaWYgKG1lc3NhZ2UgPT09IHQoJ3FhLml0ZW1zLnJlbnRhYmlsaWRhZF9wcm95ZWN0bycpKSB7XG4gICAgICAgIGZpbmFsTWVzc2FnZSA9IGBGQVE6ICR7dCgncWEuaXRlbXMucmVudGFiaWxpZGFkX3Byb3llY3RvJyl9IC0gVGlwbyBkZSByZW50YWJpbGlkYWQ6ICR7XG4gICAgICAgICAgb3B0aW9ucy5wcm9qZWN0Q2hhbmdlZD8uaW5jb21lVHlwZSB8fCBwcm9qZWN0Py5pbmNvbWVUeXBlXG4gICAgICAgIH1gXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGhpc3RvcnkgPSBtZXNzYWdlc1JlZi5jdXJyZW50Lm1hcChoaXN0b3J5TWVzc2FnZSA9PiAoe1xuICAgICAgICBjb250ZW50OiBoaXN0b3J5TWVzc2FnZS5tZXNzYWdlLFxuICAgICAgICByb2xlOiBoaXN0b3J5TWVzc2FnZS51c2VyLmlkID09PSBhdXRoVXNlci5pZC50b1N0cmluZygpID8gQ2hhdEhpc3RvcnlSb2xlLlVTRVIgOiBDaGF0SGlzdG9yeVJvbGUuQVNTSVNUQU5ULFxuICAgICAgfSkpXG5cbiAgICAgIC8vIFZlcmlmaWNhciBjb25zaXN0ZW5jaWEgZW50cmUgY29udGV4dG8gZ2xvYmFsIHkgw7psdGltbyBtZW5zYWplXG4gICAgICBjb25zdCBjb250ZXh0UHJvamVjdElkID0gcHJvamVjdD8uaWRcbiAgICAgIGNvbnN0IGxhc3RNZXNzYWdlUHJvamVjdElkID0gbGFzdE1lc3NhZ2VXaXRoUHJvamVjdD8ucHJvamVjdElkXG5cbiAgICAgIGxldCBwcm9qZWN0VG9SZXF1ZXN0OiBudW1iZXIgfCBudWxsID0gbnVsbFxuXG4gICAgICAvLyBTaSBoYXkgw7psdGltbyBtZW5zYWplIGNvbiBwcm9qZWN0SWQsIHVzYXJsbyAobcOhcyBjb25maWFibGUpXG4gICAgICBpZiAobGFzdE1lc3NhZ2VQcm9qZWN0SWQgIT0gbnVsbCkge1xuICAgICAgICBjb25zdCBwYXJzZWQgPSBOdW1iZXIobGFzdE1lc3NhZ2VQcm9qZWN0SWQpXG4gICAgICAgIHByb2plY3RUb1JlcXVlc3QgPSBOdW1iZXIuaXNGaW5pdGUocGFyc2VkKSA/IHBhcnNlZCA6IG51bGxcbiAgICAgIH1cbiAgICAgIC8vIFNpIG5vIGhheSDDumx0aW1vIG1lbnNhamUsIHVzYXIgZWwgY29udGV4dG8gZ2xvYmFsXG4gICAgICBlbHNlIGlmIChjb250ZXh0UHJvamVjdElkICE9IG51bGwpIHtcbiAgICAgICAgcHJvamVjdFRvUmVxdWVzdCA9IGNvbnRleHRQcm9qZWN0SWRcbiAgICAgIH1cblxuICAgICAgY29uc3QgcHJvamVjdHMgPSBhd2FpdCBmZXRjaFByb2plY3RzKFtwcm9qZWN0VG9SZXF1ZXN0XSlcblxuICAgICAgY29uc3QgcGF5bG9hZEZhcUlkID0gZmFxSWQgPz8gb3B0aW9ucy5mYXFJZFxuXG4gICAgICBjb25zdCBwYXlsb2FkRGF0YSA9IHtcbiAgICAgICAgbWVzc2FnZTogZmluYWxNZXNzYWdlLFxuICAgICAgICBoaXN0b3J5LFxuICAgICAgICBwcm9qZWN0SWQ6IHByb2plY3RUb1JlcXVlc3QsXG4gICAgICAgIGxhbmc6IGF1dGhVc2VyLmxhbmcsXG4gICAgICAgIHVzZXJJZDogYXV0aFVzZXIuaWQudG9TdHJpbmcoKSxcbiAgICAgICAgZmlyc3ROYW1lOiBhdXRoVXNlci5maXJzdE5hbWUsXG4gICAgICAgIGxhc3ROYW1lOiBhdXRoVXNlci5sYXN0TmFtZSxcbiAgICAgICAgY29tcGFueUlkOiBhdXRoVXNlci5jb21wYW55X2lkLnRvU3RyaW5nKCksXG4gICAgICAgIGNoYXRJZDogY3VycmVudENoYXRJZC5jdXJyZW50LFxuICAgICAgICBtZXNzYWdlSWQ6IGN1cnJlbnRNZXNzYWdlSWQuY3VycmVudCxcbiAgICAgICAgYWdlbnROYW1lOiBhZ2VudD8ubmFtZSB8fCAnJyxcbiAgICAgICAgYWdlbnRJZDogY3VycmVudEFnZW50RnJvbU1lc3NhZ2VzIHx8IGFnZW50Py5pZCEsXG4gICAgICAgIGlzV2ViU2VhcmNoQWN0aXZlOiBpc1dlYlNlYXJjaEFjdGl2ZVJlZi5jdXJyZW50LFxuICAgICAgICBpc0RlZXBTZWFyY2hBY3RpdmU6IGlzRGVlcFNlYXJjaEFjdGl2ZVJlZi5jdXJyZW50LFxuICAgICAgICAuLi4oY2xpZW50Py5pZFxuICAgICAgICAgID8geyBjbGllbnRJZDogY2xpZW50LmlkLCAuLi4oY2xpZW50Lm5hbWUgPyB7IGNsaWVudE5hbWU6IGNsaWVudC5uYW1lIH0gOiB7fSkgfVxuICAgICAgICAgIDogcHJvamVjdD8uY2xpZW50Py5pZFxuICAgICAgICAgICAgPyB7IGNsaWVudElkOiBwcm9qZWN0LmNsaWVudC5pZCwgLi4uKHByb2plY3QuY2xpZW50Lm5hbWUgPyB7IGNsaWVudE5hbWU6IHByb2plY3QuY2xpZW50Lm5hbWUgfSA6IHt9KSB9XG4gICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgLi4uKHByb2plY3RzPy5sZW5ndGggPyB7IHByb2plY3ROYW1lOiBwcm9qZWN0c1swXS5uYW1lIH0gOiB7fSksXG4gICAgICAgIC4uLihhdHRhY2htZW50cy5sZW5ndGggPiAwID8geyBhdHRhY2htZW50cyB9IDoge30pLFxuICAgICAgICAuLi4ocGF5bG9hZEZhcUlkID8geyBmYXFJZDogcGF5bG9hZEZhcUlkIH0gOiB7fSksXG4gICAgICAgIC4uLihhZ2VudD8uZW50aXR5ICE9IG51bGwgPyB7IGFnZW50RW50aXR5OiBhZ2VudC5lbnRpdHkgfSA6IHt9KSxcbiAgICAgIH1cblxuICAgICAgYXNrTWFpYShwYXlsb2FkRGF0YSlcbiAgICB9LFxuICAgIFtcbiAgICAgIGFkZE1lc3NhZ2UsXG4gICAgICBldmVudCxcbiAgICAgIGFza01haWEsXG4gICAgICBwcm9qZWN0LFxuICAgICAgY2xpZW50LFxuICAgICAgYXV0aFVzZXIsXG4gICAgICBhZ2VudCxcbiAgICAgIHQsXG4gICAgICB3YWl0aW5nUmVzcG9uc2UsXG4gICAgICBsb2FkaW5nTWVzc2FnZXMsXG4gICAgICBpc1dlYlNlYXJjaEFjdGl2ZSxcbiAgICAgIGlzRGVlcFNlYXJjaEFjdGl2ZSxcbiAgICBdXG4gIClcblxuICBjb25zdCBjaGFuZ2VQcm9qZWN0ID0gdXNlQ2FsbGJhY2soXG4gICAgKG9wdGlvbjogUHJvamVjdCkgPT4ge1xuICAgICAgaWYgKCFjdXJyZW50VXNlclF1ZXN0aW9uLmN1cnJlbnQpIHJldHVyblxuXG4gICAgICBpZiAob3B0aW9uLmlkICE9PSBwcm9qZWN0Py5pZCkge1xuICAgICAgICBzZXRQcm9qZWN0KG9wdGlvbilcbiAgICAgIH1cblxuICAgICAgaWYgKHByb2plY3QgJiYgY3VycmVudFVzZXJRdWVzdGlvbi5jdXJyZW50KSB7XG4gICAgICAgIGNvbnN0IGhpc3RvcnkgPSBtZXNzYWdlc1JlZi5jdXJyZW50Lm1hcChoaXN0b3J5TWVzc2FnZSA9PiAoe1xuICAgICAgICAgIGNvbnRlbnQ6IGhpc3RvcnlNZXNzYWdlLm1lc3NhZ2UsXG4gICAgICAgICAgcm9sZTogaGlzdG9yeU1lc3NhZ2UudXNlci5pZCA9PT0gYXV0aFVzZXIuaWQudG9TdHJpbmcoKSA/IENoYXRIaXN0b3J5Um9sZS5VU0VSIDogQ2hhdEhpc3RvcnlSb2xlLkFTU0lTVEFOVCxcbiAgICAgICAgfSkpXG5cbiAgICAgICAgYXNrTWFpYSh7XG4gICAgICAgICAgbWVzc2FnZTogY3VycmVudFVzZXJRdWVzdGlvbi5jdXJyZW50LFxuICAgICAgICAgIGhpc3RvcnksXG4gICAgICAgICAgcHJvamVjdElkOiBvcHRpb24uaWQsXG4gICAgICAgICAgbGFuZzogYXV0aFVzZXIubGFuZyxcbiAgICAgICAgICB1c2VySWQ6IGF1dGhVc2VyLmlkLnRvU3RyaW5nKCksXG4gICAgICAgICAgZmlyc3ROYW1lOiBhdXRoVXNlci5maXJzdE5hbWUsXG4gICAgICAgICAgbGFzdE5hbWU6IGF1dGhVc2VyLmxhc3ROYW1lLFxuICAgICAgICAgIGNvbXBhbnlJZDogYXV0aFVzZXIuY29tcGFueV9pZC50b1N0cmluZygpLFxuICAgICAgICAgIGNoYXRJZDogY3VycmVudENoYXRJZC5jdXJyZW50LFxuICAgICAgICAgIG1lc3NhZ2VJZDogY3VycmVudE1lc3NhZ2VJZC5jdXJyZW50LFxuICAgICAgICAgIGFnZW50TmFtZTogYWdlbnQ/Lm5hbWUgfHwgJycsXG4gICAgICAgICAgYWdlbnRJZDogYWdlbnQ/LmlkIHx8ICcnLFxuICAgICAgICAgIGlzV2ViU2VhcmNoQWN0aXZlOiBpc1dlYlNlYXJjaEFjdGl2ZVJlZi5jdXJyZW50LFxuICAgICAgICAgIGlzRGVlcFNlYXJjaEFjdGl2ZTogaXNEZWVwU2VhcmNoQWN0aXZlUmVmLmN1cnJlbnQsXG4gICAgICAgICAgLi4uKGFnZW50Py5lbnRpdHkgIT0gbnVsbCA/IHsgYWdlbnRFbnRpdHk6IGFnZW50LmVudGl0eSB9IDoge30pLFxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0sXG4gICAgW3Byb2plY3QsIHNldFByb2plY3QsIGFza01haWEsIGF1dGhVc2VyLCBpc1dlYlNlYXJjaEFjdGl2ZSwgYWdlbnRdXG4gIClcblxuICBjb25zdCBoYW5kbGVGZWVkYmFjayA9IHVzZUNhbGxiYWNrKGFzeW5jIChmZWVkYmFja1Byb3A6IEZlZWRiYWNrLCBjaGF0TWVzc2FnZUlkOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IG1haWEuQ2hhdHMud2FzSGVscGZ1bENoYXQoY2hhdE1lc3NhZ2VJZCwgZmVlZGJhY2tQcm9wID09PSBGZWVkYmFjay5USFVNQlNfVVApXG4gICAgaWYgKHJlc3BvbnNlKSB7XG4gICAgICBtZXNzYWdlc1JlZi5jdXJyZW50ID0gbWVzc2FnZXNSZWYuY3VycmVudC5tYXAobWVzc2FnZSA9PiB7XG4gICAgICAgIGlmIChtZXNzYWdlLmlkID09PSBjaGF0TWVzc2FnZUlkICYmIG1lc3NhZ2Uucm9sZSA9PT0gJ2Fzc2lzdGFudCcpIHtcbiAgICAgICAgICByZXR1cm4geyAuLi5tZXNzYWdlLCB3YXNIZWxwZnVsOiBmZWVkYmFja1Byb3AgPT09IEZlZWRiYWNrLlRIVU1CU19VUCB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1lc3NhZ2VcbiAgICAgIH0pXG4gICAgfVxuICB9LCBbXSlcblxuICBjb25zdCBoYW5kbGVBcHByb3ZhbERlY2lzaW9uID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKFxuICAgICAgdGhyZWFkSWQ6IHN0cmluZywgLy8gQ2hhbmdlZCBmcm9tIGFwcHJvdmFsOiBBcHByb3ZhbFJlcXVlc3RcbiAgICAgIGRlY2lzaW9uOiAnYXBwcm92ZScgfCAncmVqZWN0JyxcbiAgICAgIGVkaXRlZEFjdGlvbnM/OiBBcnJheTx7IHRvb2xfbmFtZTogc3RyaW5nOyBhcmdzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB9PlxuICAgICkgPT4ge1xuICAgICAgLy8gQnVzY2FyIGVsIG1lbnNhamUgcXVlIGNvbnRpZW5lIGVzdGUgdGhyZWFkSWQgZW4gc3VzIHBlbmRpbmdfYWN0aW9uc1xuICAgICAgY29uc3QgbWVzc2FnZVdpdGhBcHByb3ZhbCA9IG1lc3NhZ2VzUmVmLmN1cnJlbnQuZmluZChtID0+XG4gICAgICAgIG0uYXBwcm92YWw/LnBlbmRpbmdfYWN0aW9ucz8uc29tZShhY3Rpb24gPT4gYWN0aW9uLnRocmVhZF9pZCA9PT0gdGhyZWFkSWQpXG4gICAgICApXG5cbiAgICAgIGlmICghbWVzc2FnZVdpdGhBcHByb3ZhbCB8fCAhbWVzc2FnZVdpdGhBcHByb3ZhbC5hcHByb3ZhbCkge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdObyBzZSBlbmNvbnRyw7MgbWVuc2FqZSBjb24gYXBwcm92YWwgcGFyYSB0aHJlYWRfaWQ6JywgdGhyZWFkSWQpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBjb25zdCB7IGFwcHJvdmFsIH0gPSBtZXNzYWdlV2l0aEFwcHJvdmFsXG4gICAgICBjb25zdCBtZXNzYWdlSWQgPSBtZXNzYWdlV2l0aEFwcHJvdmFsLmlkXG4gICAgICBjb25zdCBoYXNDcmVhdGVBZ2VudEFjdGlvbiA9IGFwcHJvdmFsLnBlbmRpbmdfYWN0aW9ucz8uc29tZShhY3Rpb24gPT4gYWN0aW9uLnRvb2xfbmFtZSA9PT0gJ2NyZWF0ZV9hZ2VudCcpXG4gICAgICBjb25zdCBzaG91bGRSZWZldGNoQWdlbnRzQWZ0ZXJDb21wbGV0aW9uID0gZGVjaXNpb24gIT09ICdyZWplY3QnICYmIGhhc0NyZWF0ZUFnZW50QWN0aW9uXG5cbiAgICAgIC8vIFVwZGF0ZSBtZXNzYWdlIHN0YXR1cyBpbW1lZGlhdGVseVxuICAgICAgbWVzc2FnZXNSZWYuY3VycmVudCA9IG1lc3NhZ2VzUmVmLmN1cnJlbnQubWFwKG1lc3NhZ2UgPT4ge1xuICAgICAgICBpZiAobWVzc2FnZS5pZCA9PT0gbWVzc2FnZUlkKSB7XG4gICAgICAgICAgY29uc3QgbmV3U3RhdHVzID0gZGVjaXNpb24gPT09ICdhcHByb3ZlJyA/ICdhcHByb3ZlZCcgOiAncmVqZWN0ZWQnXG4gICAgICAgICAgcmV0dXJuIHsgLi4ubWVzc2FnZSwgYXBwcm92YWxTdGF0dXM6IG5ld1N0YXR1cyB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1lc3NhZ2VcbiAgICAgIH0pXG5cbiAgICAgIC8vIFRyaWdnZXIgcmUtcmVuZGVyXG4gICAgICBjb25zdCBleGlzdGluZ01lc3NhZ2UgPSBtZXNzYWdlc1JlZi5jdXJyZW50LmZpbmQobSA9PiBtLmlkID09PSBtZXNzYWdlSWQpXG4gICAgICBpZiAoZXhpc3RpbmdNZXNzYWdlKSB7XG4gICAgICAgIGNvbnN0IG5ld1N0YXR1cyA9IGRlY2lzaW9uID09PSAnYXBwcm92ZScgPyAnYXBwcm92ZWQnIDogJ3JlamVjdGVkJ1xuICAgICAgICBhZGRNZXNzYWdlKHsgLi4uZXhpc3RpbmdNZXNzYWdlLCBhcHByb3ZhbFN0YXR1czogbmV3U3RhdHVzIH0pXG4gICAgICB9XG5cbiAgICAgIC8vIEZvciBib3RoIGFwcHJvdmUgYW5kIHJlamVjdCwgY2FsbCBjb250aW51ZS10aHJlYWQgZW5kcG9pbnQgd2l0aCBzcGVjaWZpYyB0aHJlYWRfaWRcbiAgICAgIGlzUHJvY2Vzc2luZ1JlZi5jdXJyZW50ID0gdHJ1ZVxuICAgICAgY3VycmVudE1lc3NhZ2VJZC5jdXJyZW50ID0gdXVpZHY0KClcblxuICAgICAgLy8gQWRkIGxvYWRpbmcgZm9yIHRoaXMgdGhyZWFkXG4gICAgICBzZXRBY3RpdmVMb2FkaW5ncyhwcmV2ID0+ICh7XG4gICAgICAgIC4uLnByZXYsXG4gICAgICAgIFt0aHJlYWRJZF06IHQoJ2NoYXQucHJvY2Vzc2luZycpLFxuICAgICAgfSkpXG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgbWFpYS5PcmNoZXN0cmF0b3IuY29udGludWVUaHJlYWQoe1xuICAgICAgICAgIHRocmVhZElkLCAvLyBVc2Ugc3BlY2lmaWMgYWN0aW9uIHRocmVhZF9pZFxuICAgICAgICAgIHNlc3Npb25JZDogYXBwcm92YWwuc2Vzc2lvbl9pZCxcbiAgICAgICAgICBkZWNpc2lvbjogZWRpdGVkQWN0aW9ucyA/ICdlZGl0JyA6IGRlY2lzaW9uLFxuICAgICAgICAgIGVkaXRlZEFjdGlvbnMsXG4gICAgICAgICAgYWdlbnRJZDogYWdlbnQ/LmlkIHx8ICcnLFxuICAgICAgICAgIGxhbmc6IGF1dGhVc2VyLmxhbmcsXG4gICAgICAgIH0pXG5cbiAgICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICAgIGhhbmRsZVN0cmVhbUVycm9yKClcbiAgICAgICAgICAvLyBSZW1vdmUgbG9hZGluZyBvbiBlcnJvclxuICAgICAgICAgIHNldEFjdGl2ZUxvYWRpbmdzKHByZXYgPT4ge1xuICAgICAgICAgICAgY29uc3QgbmV3TG9hZGluZ3MgPSB7IC4uLnByZXYgfVxuICAgICAgICAgICAgZGVsZXRlIG5ld0xvYWRpbmdzW3RocmVhZElkXVxuICAgICAgICAgICAgcmV0dXJuIG5ld0xvYWRpbmdzXG4gICAgICAgICAgfSlcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFByb2Nlc3MgU1NFIG1hbnVhbGx5IHRvIHRyYWNrIGxvYWRpbmcgcGVyIHRocmVhZFxuICAgICAgICBhd2FpdCBwcm9jZXNzU1NFU3RyZWFtKHJlc3BvbnNlLCB0aHJlYWRJZCwge1xuICAgICAgICAgIG9uVG9rZW46IChjb250ZW50OiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIGhhbmRsZVN0cmVhbVVwZGF0ZShjb250ZW50LCBudWxsLCAnJylcbiAgICAgICAgICB9LFxuICAgICAgICAgIG9uTm9kZTogKG1lc3NhZ2U6IHN0cmluZywgY3VycmVudFRocmVhZElkOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIC8vIE1vc3RyYXIgbm9tYnJlIHNvbG8gcGFyYSBjcmVhdGVfdGFzaywgZWwgcmVzdG8gbXVlc3RyYSBnZW7DqXJpY29cbiAgICAgICAgICAgIGNvbnN0IGRpc3BsYXlNc2cgPSBtZXNzYWdlLmluY2x1ZGVzKCdjcmVhdGVfdGFzaycpID8gbWVzc2FnZSA6IHQoJ2NoYXQuZXhlY3V0aW5nQWN0aW9uJylcbiAgICAgICAgICAgIHNldEFjdGl2ZUxvYWRpbmdzKHByZXYgPT4gKHtcbiAgICAgICAgICAgICAgLi4ucHJldixcbiAgICAgICAgICAgICAgW2N1cnJlbnRUaHJlYWRJZF06IGRpc3BsYXlNc2csXG4gICAgICAgICAgICB9KSlcbiAgICAgICAgICB9LFxuICAgICAgICAgIG9uQ29tcGxldGU6IChcbiAgICAgICAgICAgIGZpbmFsQ29udGVudDogc3RyaW5nLFxuICAgICAgICAgICAgc291cmNlczogYW55LFxuICAgICAgICAgICAgbWVtb3J5U2Vzc2lvbklkOiBzdHJpbmcsXG4gICAgICAgICAgICBjdXJyZW50VGhyZWFkSWQ6IHN0cmluZyxcbiAgICAgICAgICAgIHN1Z2dlc3Rpb25zPzogc3RyaW5nW10gfCBudWxsXG4gICAgICAgICAgKSA9PiB7XG4gICAgICAgICAgICBoYW5kbGVTdHJlYW1GaW5pc2goZmluYWxDb250ZW50LCBzb3VyY2VzLCBtZW1vcnlTZXNzaW9uSWQsIHN1Z2dlc3Rpb25zKVxuICAgICAgICAgICAgaWYgKHNob3VsZFJlZmV0Y2hBZ2VudHNBZnRlckNvbXBsZXRpb24pIHtcbiAgICAgICAgICAgICAgZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoJ3JlZmV0Y2gtYWdlbnRzLWN1c3RvbScpKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2V0QWN0aXZlTG9hZGluZ3MocHJldiA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IG5ld0xvYWRpbmdzID0geyAuLi5wcmV2IH1cbiAgICAgICAgICAgICAgZGVsZXRlIG5ld0xvYWRpbmdzW2N1cnJlbnRUaHJlYWRJZF1cbiAgICAgICAgICAgICAgcmV0dXJuIG5ld0xvYWRpbmdzXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH0sXG4gICAgICAgICAgb25FcnJvcjogKGVycm9yOiBhbnksIGN1cnJlbnRUaHJlYWRJZDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdTU0UgRXJyb3I6JywgZXJyb3IpXG4gICAgICAgICAgICBoYW5kbGVTdHJlYW1FcnJvcigpXG4gICAgICAgICAgICBzZXRBY3RpdmVMb2FkaW5ncyhwcmV2ID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgbmV3TG9hZGluZ3MgPSB7IC4uLnByZXYgfVxuICAgICAgICAgICAgICBkZWxldGUgbmV3TG9hZGluZ3NbY3VycmVudFRocmVhZElkXVxuICAgICAgICAgICAgICByZXR1cm4gbmV3TG9hZGluZ3NcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfSxcbiAgICAgICAgfSlcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGhhbmRsZVN0cmVhbUVycm9yKClcbiAgICAgICAgLy8gUmVtb3ZlIGxvYWRpbmcgb24gZXJyb3JcbiAgICAgICAgc2V0QWN0aXZlTG9hZGluZ3MocHJldiA9PiB7XG4gICAgICAgICAgY29uc3QgbmV3TG9hZGluZ3MgPSB7IC4uLnByZXYgfVxuICAgICAgICAgIGRlbGV0ZSBuZXdMb2FkaW5nc1t0aHJlYWRJZF1cbiAgICAgICAgICByZXR1cm4gbmV3TG9hZGluZ3NcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIFthdXRoVXNlciwgYWdlbnQsIGFkZE1lc3NhZ2UsIGhhbmRsZVN0cmVhbUVycm9yLCBoYW5kbGVTdHJlYW1VcGRhdGUsIGhhbmRsZVN0cmVhbUZpbmlzaF1cbiAgKVxuXG4gIGNvbnN0IGluaXRpYWxpemVDaGF0ID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIGlmICghZmlyc3RUaW1lUmVmLmN1cnJlbnQpIHtcbiAgICAgIGZpcnN0VGltZVJlZi5jdXJyZW50ID0gdHJ1ZVxuICAgIH1cbiAgICBpZiAoaW5pdGlhbENoYXRJZCkge1xuICAgICAgYXdhaXQgbG9hZE1lc3NhZ2VzKClcbiAgICB9IGVsc2UgaWYgKHVzZXJJbml0aWFsTWVzc2FnZSkge1xuICAgICAgY29uc3QgaGFzSW5pdGlhbE1lc3NhZ2UgPSBCb29sZWFuKHVzZXJJbml0aWFsTWVzc2FnZS5tZXNzYWdlPy50cmltKCkpXG4gICAgICBjb25zdCBoYXNJbml0aWFsQXR0YWNobWVudHMgPSBCb29sZWFuKHVzZXJJbml0aWFsTWVzc2FnZS5hdHRhY2htZW50cz8ubGVuZ3RoKVxuICAgICAgY29uc3QgaGFzSW5pdGlhbEZhcSA9IEJvb2xlYW4odXNlckluaXRpYWxNZXNzYWdlLmZhcUlkKVxuXG4gICAgICBpZiAoIWhhc0luaXRpYWxNZXNzYWdlICYmICFoYXNJbml0aWFsQXR0YWNobWVudHMgJiYgIWhhc0luaXRpYWxGYXEpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGhpc3RvcnkgPSBtZXNzYWdlc1JlZi5jdXJyZW50Lm1hcChoaXN0b3J5TWVzc2FnZSA9PiAoe1xuICAgICAgICBjb250ZW50OiBoaXN0b3J5TWVzc2FnZS5tZXNzYWdlLFxuICAgICAgICByb2xlOiBoaXN0b3J5TWVzc2FnZS51c2VyLmlkID09PSBhdXRoVXNlci5pZC50b1N0cmluZygpID8gQ2hhdEhpc3RvcnlSb2xlLlVTRVIgOiBDaGF0SGlzdG9yeVJvbGUuQVNTSVNUQU5ULFxuICAgICAgfSkpXG5cbiAgICAgIGFza01haWEoe1xuICAgICAgICBtZXNzYWdlOiB1c2VySW5pdGlhbE1lc3NhZ2UubWVzc2FnZSxcbiAgICAgICAgaGlzdG9yeSxcbiAgICAgICAgcHJvamVjdElkOiBwcm9qZWN0Py5pZCB8fCBudWxsLFxuICAgICAgICBsYW5nOiBhdXRoVXNlci5sYW5nLFxuICAgICAgICB1c2VySWQ6IGF1dGhVc2VyLmlkLnRvU3RyaW5nKCksXG4gICAgICAgIGZpcnN0TmFtZTogYXV0aFVzZXIuZmlyc3ROYW1lLFxuICAgICAgICBsYXN0TmFtZTogYXV0aFVzZXIubGFzdE5hbWUsXG4gICAgICAgIGNvbXBhbnlJZDogYXV0aFVzZXIuY29tcGFueV9pZC50b1N0cmluZygpLFxuICAgICAgICBjaGF0SWQ6IGN1cnJlbnRDaGF0SWQuY3VycmVudCxcbiAgICAgICAgbWVzc2FnZUlkOiBjdXJyZW50TWVzc2FnZUlkLmN1cnJlbnQsXG4gICAgICAgIGFnZW50TmFtZTogYWdlbnQ/Lm5hbWUhLFxuICAgICAgICBhZ2VudElkOiBhZ2VudD8uaWQhLFxuICAgICAgICBpc1dlYlNlYXJjaEFjdGl2ZTogaXNXZWJTZWFyY2hBY3RpdmVSZWYuY3VycmVudCxcbiAgICAgICAgaXNEZWVwU2VhcmNoQWN0aXZlOiBpc0RlZXBTZWFyY2hBY3RpdmVSZWYuY3VycmVudCxcbiAgICAgICAgLi4uKGNsaWVudD8uaWQgPyB7IGNsaWVudElkOiBjbGllbnQuaWQgfSA6IHByb2plY3Q/LmNsaWVudD8uaWQgPyB7IGNsaWVudElkOiBwcm9qZWN0LmNsaWVudC5pZCB9IDoge30pLFxuICAgICAgICAuLi4ocHJvamVjdD8ubmFtZSA/IHsgcHJvamVjdE5hbWU6IHByb2plY3QubmFtZSB9IDoge30pLFxuICAgICAgICAuLi4ocHJvamVjdD8uY2xpZW50Py5uYW1lXG4gICAgICAgICAgPyB7IGNsaWVudE5hbWU6IHByb2plY3QuY2xpZW50Lm5hbWUgfVxuICAgICAgICAgIDogY2xpZW50Py5uYW1lXG4gICAgICAgICAgICA/IHsgY2xpZW50TmFtZTogY2xpZW50Lm5hbWUgfVxuICAgICAgICAgICAgOiB7fSksXG4gICAgICAgIC4uLih1c2VySW5pdGlhbE1lc3NhZ2UuYXR0YWNobWVudHMgPyB7IGF0dGFjaG1lbnRzOiB1c2VySW5pdGlhbE1lc3NhZ2UuYXR0YWNobWVudHMgfSA6IHt9KSxcbiAgICAgICAgLi4uKHVzZXJJbml0aWFsTWVzc2FnZS5mYXFJZCA/IHsgZmFxSWQ6IHVzZXJJbml0aWFsTWVzc2FnZS5mYXFJZCB9IDoge30pLFxuICAgICAgICAuLi4oYWdlbnQ/LmVudGl0eSAhPSBudWxsID8geyBhZ2VudEVudGl0eTogYWdlbnQuZW50aXR5IH0gOiB7fSksXG4gICAgICB9KVxuICAgIH1cbiAgfSwgW1xuICAgIGluaXRpYWxDaGF0SWQsXG4gICAgdXNlckluaXRpYWxNZXNzYWdlLFxuICAgIHByb2plY3QsXG4gICAgY2xpZW50LFxuICAgIGF1dGhVc2VyLFxuICAgIGFnZW50LFxuICAgIGFza01haWEsXG4gICAgaXNXZWJTZWFyY2hBY3RpdmUsXG4gICAgaXNEZWVwU2VhcmNoQWN0aXZlLFxuICBdKVxuXG4gIGNvbnN0IHJlc2V0Q2hhdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBjdXJyZW50TWVzc2FnZUlkLmN1cnJlbnQgPSB1dWlkdjQoKVxuICAgIGN1cnJlbnRVc2VyUXVlc3Rpb24uY3VycmVudCA9IG51bGxcbiAgICBjdXJyZW50Q2hhdElkLmN1cnJlbnQgPSB1dWlkdjQoKVxuICAgIHJlcG9ydGVkRXZlbnQuY3VycmVudCA9IGZhbHNlXG4gIH0sIFtdKVxuXG4gIGNvbnN0IHN0b3BHZW5lcmF0aW9uID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHN0b3BTdHJlYW1pbmcoKVxuICAgIGlzUHJvY2Vzc2luZ1JlZi5jdXJyZW50ID0gZmFsc2VcbiAgfSwgW3N0b3BTdHJlYW1pbmddKVxuXG4gIHJldHVybiB7XG4gICAgbWVzc2FnZXMsXG4gICAgbG9hZGluZ01lc3NhZ2VzLFxuICAgIGlzTG9hZGluZ01vcmVNZXNzYWdlcyxcbiAgICB3YWl0aW5nUmVzcG9uc2UsXG4gICAgaXNXcml0aW5nLFxuICAgIGxvYWRpbmdNZXNzYWdlLFxuICAgIGFjdGl2ZUxvYWRpbmdzLFxuICAgIGN1cnJlbnRQcm9qZWN0LFxuICAgIGN1cnJlbnRDaGF0SWQ6IGN1cnJlbnRDaGF0SWQuY3VycmVudCxcbiAgICBjdXJyZW50TWVzc2FnZUlkOiBjdXJyZW50TWVzc2FnZUlkLmN1cnJlbnQsXG5cbiAgICBzZW5kTWVzc2FnZSxcbiAgICBjaGFuZ2VQcm9qZWN0LFxuICAgIGhhbmRsZUZlZWRiYWNrLFxuICAgIGhhbmRsZUFwcHJvdmFsRGVjaXNpb24sXG4gICAgaGFuZGxlU2Nyb2xsLFxuICAgIGluaXRpYWxpemVDaGF0LFxuICAgIHJlc2V0Q2hhdCxcbiAgICBzdG9wR2VuZXJhdGlvbixcblxuICAgIGlzRGlzYWJsZWQ6IHdhaXRpbmdSZXNwb25zZSB8fCBsb2FkaW5nTWVzc2FnZXMsXG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsV0FBVyxFQUFFQyxNQUFNLEVBQUVDLFNBQVMsRUFBRUMsUUFBUSxRQUFRLE9BQU87QUFDaEUsU0FBU0MsRUFBRSxJQUFJQyxNQUFNLFFBQVEsTUFBTTtBQUNuQyxTQUFTQyxlQUFlLFFBQVEsb0JBQW9CO0FBQ3BELFNBQVNDLHFCQUFxQixRQUFRLDBCQUEwQjtBQUNoRSxTQUFTQyxJQUFJLFFBQVEsU0FBUztBQUc5QixTQUFTQyxPQUFPLFFBQWlCLHdCQUF3QjtBQUN6RCxTQUFTQyxnQkFBZ0IsUUFBUSw4QkFBOEI7QUFDL0QsU0FBU0MsTUFBTSxFQUFFQyxRQUFRLFFBQVEsYUFBYTtBQUM5QyxPQUFPQyxJQUFJLE1BQU0scUJBQXFCO0FBQ3RDLFNBQVNDLFFBQVEsUUFBUSw0REFBNEQ7QUFDckYsU0FBdUNDLGVBQWUsUUFBeUIsa0JBQWtCO0FBR2pHLFNBQVNDLFdBQVcsUUFBUSxnQkFBZ0I7QUFDNUMsU0FBU0MsaUJBQWlCLFFBQVEsc0JBQXNCO0FBQ3hELFNBQVNDLHNCQUFzQixRQUFRLDBCQUEwQjtBQUlqRSxJQUFNQyx3QkFBd0IsR0FBRyxTQUEzQkEsd0JBQXdCQSxDQUFJQyxvQkFBMkMsRUFBSztFQUFBLElBQUFDLG9CQUFBO0VBQ2hGLElBQUlDLEtBQUssQ0FBQ0MsT0FBTyxDQUFDSCxvQkFBb0IsQ0FBQyxFQUFFO0lBQ3ZDLE9BQU87TUFBRUksV0FBVyxFQUFFSixvQkFBb0I7TUFBRUssT0FBTyxFQUFFLENBQUM7SUFBd0IsQ0FBQztFQUNqRjtFQUVBLElBQU1BLE9BQTJCLEdBQUdMLG9CQUFvQixhQUFwQkEsb0JBQW9CLGNBQXBCQSxvQkFBb0IsR0FBSSxDQUFDLENBQUM7RUFDOUQsT0FBTztJQUFFSSxXQUFXLEdBQUFILG9CQUFBLEdBQUVJLE9BQU8sQ0FBQ0QsV0FBVyxjQUFBSCxvQkFBQSxjQUFBQSxvQkFBQSxHQUFJLEVBQUU7SUFBRUksT0FBTyxFQUFQQTtFQUFRLENBQUM7QUFDNUQsQ0FBQztBQUVELElBQU1DLGtCQUFrQixHQUFHLFNBQXJCQSxrQkFBa0JBLENBQUlDLFFBQWlCLEVBQUs7RUFDaEQsSUFBTUMsV0FBVyxHQUFHM0IsTUFBTSxDQUFrQjtJQUMxQzRCLEVBQUUsRUFBRUYsUUFBUSxDQUFDRSxFQUFFLENBQUNDLFFBQVEsQ0FBQyxDQUFDO0lBQzFCQyxJQUFJLEVBQUVKLFFBQVEsQ0FBQ0ssU0FBUztJQUN4QkMsTUFBTSxFQUFFTixRQUFRLENBQUNPO0VBQ25CLENBQUMsQ0FBQztFQUVGLElBQ0VOLFdBQVcsQ0FBQ08sT0FBTyxDQUFDTixFQUFFLEtBQUtGLFFBQVEsQ0FBQ0UsRUFBRSxDQUFDQyxRQUFRLENBQUMsQ0FBQyxJQUNqREYsV0FBVyxDQUFDTyxPQUFPLENBQUNKLElBQUksS0FBS0osUUFBUSxDQUFDSyxTQUFTLElBQy9DSixXQUFXLENBQUNPLE9BQU8sQ0FBQ0YsTUFBTSxLQUFLTixRQUFRLENBQUNPLE9BQU8sRUFDL0M7SUFDQU4sV0FBVyxDQUFDTyxPQUFPLEdBQUc7TUFDcEJOLEVBQUUsRUFBRUYsUUFBUSxDQUFDRSxFQUFFLENBQUNDLFFBQVEsQ0FBQyxDQUFDO01BQzFCQyxJQUFJLEVBQUVKLFFBQVEsQ0FBQ0ssU0FBUztNQUN4QkMsTUFBTSxFQUFFTixRQUFRLENBQUNPO0lBQ25CLENBQUM7RUFDSDtFQUNBLE9BQU87SUFDTE4sV0FBVyxFQUFFQSxXQUFXLENBQUNPO0VBQzNCLENBQUM7QUFDSCxDQUFDO0FBRUQsSUFBTUMsWUFBWSxHQUFHLFNBQWZBLFlBQVlBLENBQUlDLElBQVksRUFBa0Q7RUFDbEYsSUFBSSxDQUFDQSxJQUFJLENBQUNDLElBQUksQ0FBQyxDQUFDLEVBQUUsT0FBTyxJQUFJO0VBRTdCLElBQUFDLFdBQUEsR0FBOEJGLElBQUksQ0FBQ0csS0FBSyxDQUFDLElBQUksQ0FBQztJQUFBQyxZQUFBLEdBQUFDLGNBQUEsQ0FBQUgsV0FBQTtJQUF2Q0ksU0FBUyxHQUFBRixZQUFBO0lBQUVHLFFBQVEsR0FBQUgsWUFBQTtFQUMxQixJQUFJLENBQUNFLFNBQVMsSUFBSSxDQUFDQyxRQUFRLEVBQUUsT0FBTyxJQUFJO0VBRXhDLElBQU1DLFNBQVMsR0FBR0YsU0FBUyxDQUFDRyxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDUixJQUFJLENBQUMsQ0FBQztFQUN6RCxJQUFNUyxPQUFPLEdBQUdILFFBQVEsQ0FBQ0UsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQ1IsSUFBSSxDQUFDLENBQUM7RUFFckQsSUFBSTtJQUNGLElBQU1VLElBQUksR0FBR0MsSUFBSSxDQUFDQyxLQUFLLENBQUNILE9BQU8sQ0FBQztJQUNoQyxPQUFPO01BQUVGLFNBQVMsRUFBVEEsU0FBUztNQUFFRyxJQUFJLEVBQUpBO0lBQUssQ0FBQztFQUM1QixDQUFDLENBQUMsT0FBT0csVUFBVSxFQUFFO0lBQ25CQyxPQUFPLENBQUNDLEtBQUssQ0FBQyx5QkFBeUIsRUFBRUYsVUFBVSxFQUFFSixPQUFPLENBQUM7SUFDN0QsT0FBTyxJQUFJO0VBQ2I7QUFDRixDQUFDO0FBRUQsSUFBTU8sZ0JBQWdCO0VBQUEsSUFBQUMsSUFBQSxHQUFBQyxpQkFBQSxjQUFBQyxtQkFBQSxDQUFBQyxJQUFBLENBQUcsU0FBQUMsUUFDdkJDLFFBQWtCLEVBQ2xCQyxRQUFnQixFQUNoQkMsU0FXQztJQUFBLElBQUFDLGNBQUE7SUFBQSxJQUFBQyxNQUFBLEVBQUFDLE9BQUEsRUFBQUMsTUFBQSxFQUFBQyxrQkFBQSxFQUFBQyxnQkFBQSxFQVlRQyxVQUFVLEVBQUFDLGtCQUFBLEVBQUFDLElBQUEsRUFBQUMsS0FBQSxFQUFBQyxLQUFBLEVBQUFDLENBQUE7SUFBQSxPQUFBakIsbUJBQUEsQ0FBQWtCLElBQUEsV0FBQUMsUUFBQTtNQUFBLGtCQUFBQSxRQUFBLENBQUFDLElBQUEsR0FBQUQsUUFBQSxDQUFBRSxJQUFBO1FBQUE7VUFBVlQsVUFBVSxZQUFBVSxZQUFDMUMsSUFBWSxFQUFFO1lBQ2hDLElBQU0yQyxNQUFNLEdBQUc1QyxZQUFZLENBQUNDLElBQUksQ0FBQztZQUNqQyxJQUFJLENBQUMyQyxNQUFNLEVBQUU7WUFFYixJQUFRbkMsU0FBUyxHQUFXbUMsTUFBTSxDQUExQm5DLFNBQVM7Y0FBRUcsSUFBSSxHQUFLZ0MsTUFBTSxDQUFmaEMsSUFBSTtZQUN2QixJQUFNaUMsU0FBUyxHQUFHakMsSUFBK0I7WUFFakQsSUFBSUgsU0FBUyxLQUFLLE9BQU8sRUFBRTtjQUN6QixJQUFNcUMsT0FBTyxHQUFHRCxTQUFTLENBQUNDLE9BQWlCO2NBQzNDZixrQkFBa0IsSUFBSWUsT0FBTztjQUM3QnBCLFNBQVMsQ0FBQ3FCLE9BQU8sQ0FBQ2hCLGtCQUFrQixDQUFDO1lBQ3ZDLENBQUMsTUFBTSxJQUFJdEIsU0FBUyxLQUFLLE1BQU0sRUFBRTtjQUMvQixJQUFJb0MsU0FBUyxDQUFDRyxPQUFPLElBQUksT0FBT0gsU0FBUyxDQUFDRyxPQUFPLEtBQUssUUFBUSxFQUFFO2dCQUM5RHRCLFNBQVMsQ0FBQ3VCLE1BQU0sQ0FBQ0osU0FBUyxDQUFDRyxPQUFPLEVBQUV2QixRQUFRLENBQUM7Y0FDL0M7WUFDRixDQUFDLE1BQU0sSUFBSWhCLFNBQVMsS0FBSyxVQUFVLEVBQUU7Y0FDbkMsSUFBTXlDLFlBQVksR0FBSUwsU0FBUyxDQUFDQyxPQUFPLElBQWVmLGtCQUFrQjtjQUN4RSxJQUFNb0IsT0FBTyxHQUFJTixTQUFTLENBQUNNLE9BQU8sSUFBZ0IsSUFBSTtjQUN0RCxJQUFNQyxlQUFlLEdBQUlQLFNBQVMsQ0FBQ1EsaUJBQWlCLElBQWUsRUFBRTtjQUNyRSxJQUFNQyxXQUFXLEdBQUdwRSxLQUFLLENBQUNDLE9BQU8sQ0FBQzBELFNBQVMsQ0FBQ1MsV0FBVyxDQUFDLEdBQUlULFNBQVMsQ0FBQ1MsV0FBVyxHQUFnQixJQUFJO2NBQ3JHNUIsU0FBUyxDQUFDNkIsVUFBVSxDQUFDTCxZQUFZLEVBQUVDLE9BQU8sRUFBRUMsZUFBZSxFQUFFM0IsUUFBUSxFQUFFNkIsV0FBVyxDQUFDO1lBQ3JGLENBQUMsTUFBTSxJQUFJN0MsU0FBUyxLQUFLLE9BQU8sRUFBRTtjQUNoQ2lCLFNBQVMsQ0FBQzhCLE9BQU8sQ0FBQ1gsU0FBUyxDQUFDNUIsS0FBSyxFQUFFUSxRQUFRLENBQUM7WUFDOUM7VUFDRixDQUFDO1VBbENLRyxNQUFNLElBQUFELGNBQUEsR0FBR0gsUUFBUSxDQUFDaUMsSUFBSSxjQUFBOUIsY0FBQSx1QkFBYkEsY0FBQSxDQUFlK0IsU0FBUyxDQUFDLENBQUM7VUFBQSxJQUNwQzlCLE1BQU07WUFBQVksUUFBQSxDQUFBRSxJQUFBO1lBQUE7VUFBQTtVQUFBLE1BQ0gsSUFBSWlCLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQztRQUFBO1VBR2xDOUIsT0FBTyxHQUFHLElBQUkrQixXQUFXLENBQUMsQ0FBQztVQUM3QjlCLE1BQU0sR0FBRyxFQUFFO1VBQ1hDLGtCQUFrQixHQUFHLEVBQUU7VUFDdkJDLGdCQUFnQixHQUFHLEtBQUs7UUFBQTtVQUFBLElBNEJwQkEsZ0JBQWdCO1lBQUFRLFFBQUEsQ0FBQUUsSUFBQTtZQUFBO1VBQUE7VUFBQUYsUUFBQSxDQUFBRSxJQUFBO1VBQUEsT0FFUWQsTUFBTSxDQUFDaUMsSUFBSSxDQUFDLENBQUM7UUFBQTtVQUFBM0Isa0JBQUEsR0FBQU0sUUFBQSxDQUFBc0IsSUFBQTtVQUFuQzNCLElBQUksR0FBQUQsa0JBQUEsQ0FBSkMsSUFBSTtVQUFFQyxLQUFLLEdBQUFGLGtCQUFBLENBQUxFLEtBQUs7VUFBQSxLQUNmRCxJQUFJO1lBQUFLLFFBQUEsQ0FBQUUsSUFBQTtZQUFBO1VBQUE7VUFDTlYsZ0JBQWdCLEdBQUcsSUFBSTtVQUFBLE9BQUFRLFFBQUEsQ0FBQXVCLE1BQUE7UUFBQTtVQUl6QmpDLE1BQU0sSUFBSUQsT0FBTyxDQUFDbUMsTUFBTSxDQUFDNUIsS0FBSyxFQUFFO1lBQUU2QixNQUFNLEVBQUU7VUFBSyxDQUFDLENBQUM7VUFDM0M1QixLQUFLLEdBQUdQLE1BQU0sQ0FBQzFCLEtBQUssQ0FBQyxNQUFNLENBQUM7VUFDbEMwQixNQUFNLEdBQUdPLEtBQUssQ0FBQzZCLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRTtVQUUxQixLQUFTNUIsQ0FBQyxHQUFHLENBQUMsRUFBRUEsQ0FBQyxHQUFHRCxLQUFLLENBQUM4QixNQUFNLEVBQUU3QixDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3hDTCxVQUFVLENBQUNJLEtBQUssQ0FBQ0MsQ0FBQyxDQUFDLENBQUM7VUFDdEI7VUFBQ0UsUUFBQSxDQUFBRSxJQUFBO1VBQUE7UUFBQTtRQUFBO1VBQUEsT0FBQUYsUUFBQSxDQUFBNEIsSUFBQTtNQUFBO0lBQUEsR0FBQTdDLE9BQUE7RUFBQSxDQUVKO0VBQUEsZ0JBcEVLTCxnQkFBZ0JBLENBQUFtRCxFQUFBLEVBQUFDLEdBQUEsRUFBQUMsR0FBQTtJQUFBLE9BQUFwRCxJQUFBLENBQUFxRCxLQUFBLE9BQUFDLFNBQUE7RUFBQTtBQUFBLEdBb0VyQjtBQUVELE9BQU8sSUFBTUMsY0FBYyxHQUFHLFNBQWpCQSxjQUFjQSxDQUFBQyxLQUFBLEVBS0E7RUFBQSxJQUpqQkMsYUFBYSxHQUFBRCxLQUFBLENBQXJCRSxNQUFNO0lBQ05DLGtCQUFrQixHQUFBSCxLQUFBLENBQWxCRyxrQkFBa0I7SUFDbEJ0QixPQUFPLEdBQUFtQixLQUFBLENBQVBuQixPQUFPO0lBQUF1QixZQUFBLEdBQUFKLEtBQUEsQ0FDUEssTUFBTTtJQUFOQSxNQUFNLEdBQUFELFlBQUEsY0FBRyxFQUFFLEdBQUFBLFlBQUE7RUFFWCxJQUFBRSxLQUFBLEdBQWM3RyxJQUFJLENBQUMsQ0FBQztJQUFaOEcsQ0FBQyxHQUFBRCxLQUFBLENBQURDLENBQUM7RUFDVCxJQUFNM0YsUUFBUSxHQUFHbEIsT0FBTyxDQUFDLENBQUM7RUFDMUIsSUFBQThHLGlCQUFBLEdBVUk3RyxnQkFBZ0IsQ0FBQyxDQUFDO0lBVHBCOEcsT0FBTyxHQUFBRCxpQkFBQSxDQUFQQyxPQUFPO0lBQ1BDLFVBQVUsR0FBQUYsaUJBQUEsQ0FBVkUsVUFBVTtJQUNWQyxNQUFNLEdBQUFILGlCQUFBLENBQU5HLE1BQU07SUFDTkMsU0FBUyxHQUFBSixpQkFBQSxDQUFUSSxTQUFTO0lBQ1RDLEtBQUssR0FBQUwsaUJBQUEsQ0FBTEssS0FBSztJQUNMQyxpQkFBaUIsR0FBQU4saUJBQUEsQ0FBakJNLGlCQUFpQjtJQUNqQkMsa0JBQWtCLEdBQUFQLGlCQUFBLENBQWxCTyxrQkFBa0I7SUFDbEJDLFlBQVksR0FBQVIsaUJBQUEsQ0FBWlEsWUFBWTtJQUNaQyxlQUFlLEdBQUFULGlCQUFBLENBQWZTLGVBQWU7RUFFakIsSUFBTUMsS0FBSyxHQUFHckgsUUFBUSxDQUFDLENBQUM7RUFDeEIsSUFBQXNILFlBQUEsR0FBMEJsSCxXQUFXLENBQUMsQ0FBQztJQUEvQm1ILGFBQWEsR0FBQUQsWUFBQSxDQUFiQyxhQUFhO0VBQ3JCLElBQUFDLG1CQUFBLEdBQXdCMUcsa0JBQWtCLENBQUNDLFFBQVEsQ0FBQztJQUE1Q0MsV0FBVyxHQUFBd0csbUJBQUEsQ0FBWHhHLFdBQVc7RUFDbkIsSUFBQXlHLGtCQUFBLEdBQThCcEgsaUJBQWlCLENBQUMsQ0FBQztJQUF6Q3FILGlCQUFpQixHQUFBRCxrQkFBQSxDQUFqQkMsaUJBQWlCO0VBQ3pCLElBQU1DLGdCQUFnQixHQUFHdEksTUFBTSxDQUFDSSxNQUFNLENBQUMsQ0FBQyxDQUFDO0VBQ3pDLElBQU1tSSxtQkFBbUIsR0FBR3ZJLE1BQU0sQ0FBZ0IsSUFBSSxDQUFDO0VBQ3ZELElBQU13SSxhQUFhLEdBQUd4SSxNQUFNLENBQUMrRyxhQUFhLElBQUkzRyxNQUFNLENBQUMsQ0FBQyxDQUFDO0VBQ3ZELElBQU1xSSxhQUFhLEdBQUd6SSxNQUFNLENBQUMsS0FBSyxDQUFDO0VBQ25DLElBQU0wSSxXQUFXLEdBQUcxSSxNQUFNLENBQWdCLEVBQUUsQ0FBQztFQUM3QyxJQUFNMkksZUFBZSxHQUFHM0ksTUFBTSxDQUFDLEtBQUssQ0FBQztFQUNyQyxJQUFNNEksWUFBWSxHQUFHNUksTUFBTSxDQUFDLEtBQUssQ0FBQztFQUNsQyxJQUFBNkksU0FBQSxHQUE0QzNJLFFBQVEsQ0FBeUIsQ0FBQyxDQUFDLENBQUM7SUFBQTRJLFVBQUEsR0FBQXJHLGNBQUEsQ0FBQW9HLFNBQUE7SUFBekVFLGNBQWMsR0FBQUQsVUFBQTtJQUFFRSxpQkFBaUIsR0FBQUYsVUFBQTtFQUV4QyxJQUFNRyxvQkFBb0IsR0FBR2pKLE1BQU0sQ0FBQzRILGlCQUFpQixDQUFDO0VBQ3RELElBQU1zQixxQkFBcUIsR0FBR2xKLE1BQU0sQ0FBQzZILGtCQUFrQixDQUFDO0VBRXhENUgsU0FBUyxDQUFDLFlBQU07SUFDZGdKLG9CQUFvQixDQUFDL0csT0FBTyxHQUFHMEYsaUJBQWlCO0lBQ2hEc0IscUJBQXFCLENBQUNoSCxPQUFPLEdBQUcyRixrQkFBa0I7RUFDcEQsQ0FBQyxFQUFFLENBQUNELGlCQUFpQixFQUFFQyxrQkFBa0IsQ0FBQyxDQUFDO0VBRTNDLElBQUFzQixnQkFBQSxHQUNFOUksZUFBZSxDQUFDO01BQ2QyRyxNQUFNLEVBQUVELGFBQWEsSUFBSXlCLGFBQWEsQ0FBQ3RHLE9BQU87TUFDOUNQLFdBQVcsRUFBWEEsV0FBVztNQUNYc0Ysa0JBQWtCLEVBQWxCQSxrQkFBa0I7TUFDbEJ0QixPQUFPLEVBQVBBLE9BQU87TUFDUHdCLE1BQU0sRUFBTkE7SUFDRixDQUFDLENBQUM7SUFQSWlDLGVBQWUsR0FBQUQsZ0JBQUEsQ0FBZkMsZUFBZTtJQUFFQyxRQUFRLEdBQUFGLGdCQUFBLENBQVJFLFFBQVE7SUFBRUMscUJBQXFCLEdBQUFILGdCQUFBLENBQXJCRyxxQkFBcUI7SUFBRUMsWUFBWSxHQUFBSixnQkFBQSxDQUFaSSxZQUFZO0lBQUVDLFVBQVUsR0FBQUwsZ0JBQUEsQ0FBVkssVUFBVTtJQUFFQyxhQUFhLEdBQUFOLGdCQUFBLENBQWJNLGFBQWE7SUFBRUMsWUFBWSxHQUFBUCxnQkFBQSxDQUFaTyxZQUFZO0VBUy9HaEIsV0FBVyxDQUFDeEcsT0FBTyxHQUFHbUgsUUFBUTtFQUU5QnBKLFNBQVMsQ0FBQyxZQUFNO0lBQ2QsSUFBTTBKLFdBQVcsR0FBRyxJQUFJQyxXQUFXLENBQUMsK0JBQStCLEVBQUU7TUFDbkVDLE1BQU0sRUFBRTtRQUFFVCxlQUFlLEVBQWZBO01BQWdCO0lBQzVCLENBQUMsQ0FBQztJQUNGVSxRQUFRLENBQUNDLGFBQWEsQ0FBQ0osV0FBVyxDQUFDO0VBQ3JDLENBQUMsRUFBRSxDQUFDUCxlQUFlLENBQUMsQ0FBQztFQUVyQm5KLFNBQVMsQ0FBQyxZQUFNO0lBQ2QsSUFBSThHLGFBQWEsSUFBSUEsYUFBYSxLQUFLeUIsYUFBYSxDQUFDdEcsT0FBTyxFQUFFO01BQzVEO01BQ0FzRixVQUFVLENBQUMsSUFBSSxDQUFDO01BQ2hCRSxTQUFTLGFBQVRBLFNBQVMsZUFBVEEsU0FBUyxDQUFHLElBQUksQ0FBQztNQUNqQkssZUFBZSxDQUFDLElBQUksQ0FBQztNQUVyQlMsYUFBYSxDQUFDdEcsT0FBTyxHQUFHNkUsYUFBYTtNQUNyQ3VCLGdCQUFnQixDQUFDcEcsT0FBTyxHQUFHOUIsTUFBTSxDQUFDLENBQUM7TUFDbkNtSSxtQkFBbUIsQ0FBQ3JHLE9BQU8sR0FBRyxJQUFJO01BQ2xDdUcsYUFBYSxDQUFDdkcsT0FBTyxHQUFHLEtBQUs7TUFDN0J5RyxlQUFlLENBQUN6RyxPQUFPLEdBQUcsS0FBSztNQUUvQnFILFlBQVksQ0FBQyxDQUFDO0lBQ2hCO0VBQ0YsQ0FBQyxFQUFFLENBQUN4QyxhQUFhLEVBQUVRLE9BQU8sRUFBRUMsVUFBVSxFQUFFRSxTQUFTLEVBQUVLLGVBQWUsRUFBRXdCLFlBQVksQ0FBQyxDQUFDOztFQUVsRjtFQUNBdEosU0FBUyxDQUFDLFlBQU07SUFDZCxJQUFJNkgsWUFBWSxJQUFJc0IsZUFBZSxFQUFFO0lBQ3JDLElBQU1ZLGtCQUFrQixHQUFHWCxRQUFRLENBQUNZLE1BQU0sQ0FBQyxVQUFBQyxHQUFHO01BQUEsT0FBSUEsR0FBRyxDQUFDQyxTQUFTO0lBQUEsRUFBQyxDQUFDQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkUsSUFBQUMsS0FBQSxHQUFtQ0wsa0JBQWtCLElBQUksQ0FBQyxDQUFDO01BQW5ERyxTQUFTLEdBQUFFLEtBQUEsQ0FBVEYsU0FBUztNQUFFRyxXQUFXLEdBQUFELEtBQUEsQ0FBWEMsV0FBVztJQUM5QixJQUFJLENBQUNILFNBQVMsRUFBRTtJQUVoQmpDLGFBQWEsQ0FBQ2lDLFNBQVMsQ0FBQyxDQUFDSSxJQUFJLENBQUMsVUFBQUMsUUFBUSxFQUFJO01BQ3hDLElBQU1DLEtBQUssR0FBR0QsUUFBUSxhQUFSQSxRQUFRLHVCQUFSQSxRQUFRLENBQUVFLElBQUksQ0FBQyxVQUFBQyxDQUFDO1FBQUEsT0FBSUMsTUFBTSxDQUFDRCxDQUFDLENBQUMvSSxFQUFFLENBQUMsS0FBS2dKLE1BQU0sQ0FBQ1QsU0FBUyxDQUFDO01BQUEsRUFBQztNQUNyRSxJQUFJTSxLQUFLLEVBQUU7UUFBQSxJQUFBSSxhQUFBO1FBQ1Q5QyxlQUFlLENBQUM7VUFDZHVDLFdBQVcsRUFBRUcsS0FBSyxDQUFDM0ksSUFBSTtVQUN2QmdKLFVBQVUsRUFBRSxFQUFBRCxhQUFBLEdBQUFKLEtBQUssQ0FBQ2hELE1BQU0sY0FBQW9ELGFBQUEsdUJBQVpBLGFBQUEsQ0FBYy9JLElBQUksS0FBSSxFQUFFO1VBQ3BDcUksU0FBUyxFQUFFWSxNQUFNLENBQUNOLEtBQUssQ0FBQzdJLEVBQUU7UUFDNUIsQ0FBQyxDQUFDO1FBQ0Y0RixVQUFVLENBQUNpRCxLQUFLLENBQUM7TUFDbkIsQ0FBQyxNQUFNLElBQUlILFdBQVcsRUFBRTtRQUN0QnZDLGVBQWUsQ0FBQztVQUNkdUMsV0FBVyxFQUFYQSxXQUFXO1VBQ1hRLFVBQVUsRUFBRSxFQUFFO1VBQ2RYLFNBQVMsRUFBRVksTUFBTSxDQUFDWixTQUFTO1FBQzdCLENBQUMsQ0FBQztRQUNGM0MsVUFBVSxDQUFDO1VBQUU1RixFQUFFLEVBQUVnSixNQUFNLENBQUNULFNBQVMsQ0FBQztVQUFFckksSUFBSSxFQUFFd0k7UUFBWSxDQUFDLENBQUM7TUFDMUQ7SUFDRixDQUFDLENBQUM7RUFDSixDQUFDLEVBQUUsQ0FBQ2pCLFFBQVEsRUFBRXZCLFlBQVksRUFBRXNCLGVBQWUsRUFBRWxCLGFBQWEsRUFBRUgsZUFBZSxFQUFFUCxVQUFVLENBQUMsQ0FBQzs7RUFFekY7RUFDQXZILFNBQVMsQ0FBQyxZQUFNO0lBQ2QsSUFBSXdILE1BQU0sSUFBSTJCLGVBQWUsRUFBRTtJQUMvQixJQUFNNEIsaUJBQWlCLEdBQUczQixRQUFRLENBQUNZLE1BQU0sQ0FBQyxVQUFBQyxHQUFHO01BQUEsT0FBSUEsR0FBRyxDQUFDZSxRQUFRLElBQUksSUFBSSxJQUFJZixHQUFHLENBQUNZLFVBQVU7SUFBQSxFQUFDLENBQUNWLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvRixJQUFBYyxLQUFBLEdBQTZERixpQkFBaUIsSUFBSSxDQUFDLENBQUM7TUFBbEVHLFdBQVcsR0FBQUQsS0FBQSxDQUFyQkQsUUFBUTtNQUEyQkcsYUFBYSxHQUFBRixLQUFBLENBQXpCSixVQUFVO0lBQ3pDLElBQUlLLFdBQVcsSUFBSSxJQUFJLElBQUksQ0FBQ0MsYUFBYSxFQUFFO0lBRTNDMUQsU0FBUyxhQUFUQSxTQUFTLGVBQVRBLFNBQVMsQ0FBRztNQUFFOUYsRUFBRSxFQUFFZ0osTUFBTSxDQUFDTyxXQUFXLENBQUM7TUFBRXJKLElBQUksRUFBRXNKO0lBQWMsQ0FBQyxDQUFDO0VBQy9ELENBQUMsRUFBRSxDQUFDL0IsUUFBUSxFQUFFNUIsTUFBTSxFQUFFMkIsZUFBZSxFQUFFMUIsU0FBUyxDQUFDLENBQUM7RUFFbEQsSUFBTTJELGlCQUFpQixHQUFHdEwsV0FBVyxDQUNuQyxVQUFDdUwsWUFBcUIsRUFBSztJQUN6QixJQUFNbkcsT0FBTyxHQUNYbUcsWUFBWSxLQUFLLCtEQUErRCxHQUM1RWpFLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxHQUMzQkEsQ0FBQyxDQUFDLFlBQVksQ0FBQztJQUVyQm1DLFVBQVUsQ0FBQztNQUNUNUgsRUFBRSxZQUFBMkosTUFBQSxDQUFZakQsZ0JBQWdCLENBQUNwRyxPQUFPLENBQUU7TUFDeENpRCxPQUFPLEVBQVBBLE9BQU87TUFDUHFHLE9BQU8sRUFBRSxJQUFJO01BQ2JDLElBQUksRUFBRSxJQUFJQyxJQUFJLENBQUMsQ0FBQztNQUNoQkMsSUFBSSxFQUFFO1FBQUUvSixFQUFFLEVBQUUsV0FBVztRQUFFRSxJQUFJLEVBQUU7TUFBWSxDQUFDO01BQzVDOEosSUFBSSxFQUFFOUssZUFBZSxDQUFDK0s7SUFDeEIsQ0FBQyxDQUFDO0lBQ0ZsRCxlQUFlLENBQUN6RyxPQUFPLEdBQUcsS0FBSztFQUNqQyxDQUFDLEVBQ0QsQ0FBQ3NILFVBQVUsRUFBRW5DLENBQUMsQ0FDaEIsQ0FBQztFQUVELElBQU15RSxrQkFBa0IsR0FBRy9MLFdBQVcsQ0FDcEMsVUFBQ2tGLE9BQWUsRUFBRUssT0FBWSxFQUFFQyxlQUF1QixFQUFLO0lBQzFELElBQU13RyxhQUFhLGFBQUFSLE1BQUEsQ0FBYWpELGdCQUFnQixDQUFDcEcsT0FBTyxlQUFZO0lBRXBFc0gsVUFBVSxDQUFDO01BQ1Q1SCxFQUFFLEVBQUVtSyxhQUFhO01BQ2pCNUcsT0FBTyxFQUFFRixPQUFPO01BQ2hCd0csSUFBSSxFQUFFLElBQUlDLElBQUksQ0FBQyxDQUFDO01BQ2hCQyxJQUFJLEVBQUU7UUFBRS9KLEVBQUUsRUFBRSxXQUFXO1FBQUVFLElBQUksRUFBRTtNQUFZLENBQUM7TUFDNUM4SixJQUFJLEVBQUU5SyxlQUFlLENBQUMrSyxTQUFTO01BQy9CdkcsT0FBTyxFQUFQQSxPQUFPO01BQ1BDLGVBQWUsRUFBZkE7SUFDRixDQUFDLENBQUM7RUFDSixDQUFDLEVBQ0QsQ0FBQ2lFLFVBQVUsQ0FDYixDQUFDO0VBRUQsSUFBTXdDLGtCQUFrQixHQUFHak0sV0FBVztJQUFBLElBQUFrTSxLQUFBLEdBQUExSSxpQkFBQSxjQUFBQyxtQkFBQSxDQUFBQyxJQUFBLENBQ3BDLFNBQUF5SSxTQUFPakgsT0FBZSxFQUFFSyxPQUFZLEVBQUVDLGVBQXVCLEVBQUVFLFdBQTZCO01BQUEsSUFBQTBHLHFCQUFBLEVBQUFDLHNCQUFBO01BQUEsSUFBQUwsYUFBQSxFQUFBTSxZQUFBLEVBQUFDLE9BQUEsRUFBQUMsWUFBQSxFQUFBQyxlQUFBLEVBQUFDLDRCQUFBLEVBQUFDLG1CQUFBLEVBQUFDLGVBQUEsRUFBQUMsZUFBQSxFQUFBQyxXQUFBLEVBQUFDLE9BQUEsRUFBQUMsR0FBQSxFQUFBQyxVQUFBLEVBQUFDLGtCQUFBLEVBQUFDLG1CQUFBLEVBQUFDLGdCQUFBLEVBQUFDLFNBQUEsRUFBQUMsY0FBQSxFQUFBQyxxQkFBQSxFQUFBM0QsV0FBQTtNQUFBLE9BQUFuRyxtQkFBQSxDQUFBa0IsSUFBQSxXQUFBNkksU0FBQTtRQUFBLGtCQUFBQSxTQUFBLENBQUEzSSxJQUFBLEdBQUEySSxTQUFBLENBQUExSSxJQUFBO1VBQUE7WUFDcEZrSCxhQUFhLGFBQUFSLE1BQUEsQ0FBYWpELGdCQUFnQixDQUFDcEcsT0FBTztZQUN4RHVILGFBQWEsQ0FBQ3NDLGFBQWEsQ0FBQzs7WUFFNUI7WUFDTU0sWUFBWSxHQUFHLElBQUltQixNQUFNLENBQUN2TSxzQkFBc0IsRUFBRSxHQUFHLENBQUM7WUFDdERxTCxPQUFPLEdBQUFtQixrQkFBQSxDQUFPeEksT0FBTyxDQUFDeUksUUFBUSxDQUFDckIsWUFBWSxDQUFDO1lBRTlDRSxZQUFZLEdBQUd0SCxPQUFPO1lBQ3BCdUgsZUFBZSxHQUFHOUQsV0FBVyxDQUFDeEcsT0FBTyxDQUFDK0gsTUFBTSxDQUFDLFVBQUEwRCxDQUFDO2NBQUEsT0FBSUEsQ0FBQyxDQUFDL0wsRUFBRSxLQUFLbUssYUFBYTtZQUFBLEVBQUMsQ0FBQzNCLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNoRnFDLDRCQUE0QixHQUFHLENBQUFELGVBQWUsYUFBZkEsZUFBZSx1QkFBZkEsZUFBZSxDQUFFb0IsUUFBUSxLQUFJLElBQUk7WUFDaEVsQixtQkFBbUIsR0FBRyxDQUFDLGFBQWEsRUFBRSxvQkFBb0IsQ0FBQztZQUMzREMsZUFBZSxHQUFHLENBQ3RCLFdBQVcsRUFDWCxrQkFBa0IsRUFDbEIsYUFBYSxFQUNiLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsd0JBQXdCLEVBQ3hCLG1CQUFtQixDQUNwQjtZQUNLQyxlQUFlLEdBQ25CSCw0QkFBNEIsS0FDNUJELGVBQWUsYUFBZkEsZUFBZSxnQkFBQUwscUJBQUEsR0FBZkssZUFBZSxDQUFFb0IsUUFBUSxjQUFBekIscUJBQUEsZ0JBQUFBLHFCQUFBLEdBQXpCQSxxQkFBQSxDQUEyQjBCLGVBQWUsY0FBQTFCLHFCQUFBLHVCQUExQ0EscUJBQUEsQ0FBNEMyQixJQUFJLENBQUMsVUFBQ0MsTUFBVztjQUFBLE9BQzNEckIsbUJBQW1CLENBQUNzQixRQUFRLENBQUNELE1BQU0sQ0FBQ0UsU0FBUyxDQUFDO1lBQUEsQ0FDaEQsQ0FBQztZQUNHcEIsV0FBVyxHQUNmSiw0QkFBNEIsS0FDNUJELGVBQWUsYUFBZkEsZUFBZSxnQkFBQUosc0JBQUEsR0FBZkksZUFBZSxDQUFFb0IsUUFBUSxjQUFBeEIsc0JBQUEsZ0JBQUFBLHNCQUFBLEdBQXpCQSxzQkFBQSxDQUEyQnlCLGVBQWUsY0FBQXpCLHNCQUFBLHVCQUExQ0Esc0JBQUEsQ0FBNEMwQixJQUFJLENBQUMsVUFBQ0MsTUFBVztjQUFBLE9BQUtwQixlQUFlLENBQUNxQixRQUFRLENBQUNELE1BQU0sQ0FBQ0UsU0FBUyxDQUFDO1lBQUEsRUFBQztZQUFBLE1BQzNHM0IsT0FBTyxDQUFDaEcsTUFBTSxHQUFHLENBQUMsSUFBSW1HLDRCQUE0QjtjQUFBYyxTQUFBLENBQUExSSxJQUFBO2NBQUE7WUFBQTtZQUM5Q2lJLE9BQU8sR0FBR1IsT0FBTyxDQUFDNEIsR0FBRyxDQUFDLFVBQUFDLEtBQUs7Y0FBQSxPQUFJQyxRQUFRLENBQUNELEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7WUFBQSxFQUFDO1lBQUFaLFNBQUEsQ0FBQTFJLElBQUE7WUFBQSxPQUMxQ3dELGlCQUFpQixDQUFDeUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1VBQUE7WUFBekNDLEdBQUcsR0FBQVEsU0FBQSxDQUFBdEgsSUFBQTtZQUNIK0csVUFBVSxHQUFHRCxHQUFHLE9BQUF4QixNQUFBLENBQU93QixHQUFHLElBQUssU0FBUztZQUM5Q1IsWUFBWSxHQUFHdEgsT0FBTyxDQUFDcEMsT0FBTyxDQUFDd0osWUFBWSxFQUFFLFVBQUFnQyxHQUFHO2NBQUEsT0FDOUNBLEdBQUcsQ0FBQ3hMLE9BQU8sQ0FBQyx5REFBeUQsRUFBRW1LLFVBQVUsQ0FBQztZQUFBLENBQ3BGLENBQUM7O1lBRUQ7WUFDQSxJQUFJSixlQUFlLEVBQUU7Y0FDYkssa0JBQWtCLEdBQUd2RSxXQUFXLENBQUN4RyxPQUFPLENBQUMrSCxNQUFNLENBQUMsVUFBQUMsR0FBRztnQkFBQSxPQUFJQSxHQUFHLENBQUNDLFNBQVM7Y0FBQSxFQUFDLENBQUNDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztjQUM1RThDLG1CQUFtQixHQUFHLENBQUEzRixPQUFPLGFBQVBBLE9BQU8sdUJBQVBBLE9BQU8sQ0FBRTNGLEVBQUUsTUFBSXFMLGtCQUFrQixhQUFsQkEsa0JBQWtCLHVCQUFsQkEsa0JBQWtCLENBQUU5QyxTQUFTO2NBQ2xFZ0QsZ0JBQWdCLEdBQUdELG1CQUFtQixHQUFHa0IsUUFBUSxDQUFDckQsTUFBTSxDQUFDbUMsbUJBQW1CLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJO2NBQ3pGRSxTQUFTLEdBQUdrQixNQUFNLENBQUNDLFFBQVEsQ0FBQ0MsUUFBUSxDQUFDTCxLQUFLLENBQUMsc0JBQXNCLENBQUM7Y0FDbEVkLGNBQWMsR0FBR0QsU0FBUyxHQUFHZ0IsUUFBUSxDQUFDaEIsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUk7Y0FDcEUsSUFBSUQsZ0JBQWdCLElBQUlFLGNBQWMsSUFBSUYsZ0JBQWdCLEtBQUtFLGNBQWMsRUFBRTtnQkFDN0UsS0FBQUMscUJBQUEsR0FBSWdCLE1BQU0sQ0FBQ0csbUJBQW1CLGNBQUFuQixxQkFBQSxlQUExQkEscUJBQUEsQ0FBNEJvQiwwQkFBMEIsRUFBRTtrQkFDMURKLE1BQU0sQ0FBQ0csbUJBQW1CLENBQUNDLDBCQUEwQixDQUFDNUIsT0FBTyxDQUFDO2dCQUNoRTtjQUNGO1lBQ0YsQ0FBQyxNQUFNLElBQUlELFdBQVcsRUFBRTtjQUN0QjtjQUNBO1lBQUE7VUFDRDtZQUdIckQsVUFBVSxDQUFDO2NBQ1Q1SCxFQUFFLFlBQUEySixNQUFBLENBQVloRyxlQUFlLENBQUU7Y0FDL0JKLE9BQU8sRUFBRW9ILFlBQVk7Y0FDckJkLElBQUksRUFBRSxJQUFJQyxJQUFJLENBQUMsQ0FBQztjQUNoQkMsSUFBSSxFQUFFO2dCQUFFL0osRUFBRSxFQUFFLFdBQVc7Z0JBQUVFLElBQUksRUFBRTtjQUFZLENBQUM7Y0FDNUM4SixJQUFJLEVBQUU5SyxlQUFlLENBQUMrSyxTQUFTO2NBQy9CdkcsT0FBTyxFQUFQQSxPQUFPO2NBQ1BDLGVBQWUsRUFBZkEsZUFBZTtjQUNmRSxXQUFXLEVBQUVBLFdBQVcsSUFBSTtZQUM5QixDQUFDLENBQUM7WUFFRmtELGVBQWUsQ0FBQ3pHLE9BQU8sR0FBRyxLQUFLO1lBQy9CLElBQUkwRyxZQUFZLENBQUMxRyxPQUFPLEVBQUU7Y0FDbEJ5SCxXQUFXLEdBQUcsSUFBSUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDO2NBQ3RERSxRQUFRLENBQUNDLGFBQWEsQ0FBQ0osV0FBVyxDQUFDO2NBQ25DZixZQUFZLENBQUMxRyxPQUFPLEdBQUcsS0FBSztZQUM5QjtVQUFDO1VBQUE7WUFBQSxPQUFBcUwsU0FBQSxDQUFBaEgsSUFBQTtRQUFBO01BQUEsR0FBQTJGLFFBQUE7SUFBQSxDQUNGO0lBQUEsaUJBQUF5QyxHQUFBLEVBQUFDLEdBQUEsRUFBQUMsR0FBQSxFQUFBQyxHQUFBO01BQUEsT0FBQTdDLEtBQUEsQ0FBQXRGLEtBQUEsT0FBQUMsU0FBQTtJQUFBO0VBQUEsS0FDRCxDQUFDNEMsVUFBVSxFQUFFQyxhQUFhLEVBQUVsQyxPQUFPLEVBQUVjLGlCQUFpQixDQUN4RCxDQUFDO0VBRUQsSUFBTTBHLGdCQUFnQixHQUFHaFAsV0FBVyxDQUFDLFlBQU07SUFDekN5SixVQUFVLENBQUM7TUFDVDVILEVBQUUsWUFBQTJKLE1BQUEsQ0FBWWpELGdCQUFnQixDQUFDcEcsT0FBTyxlQUFZO01BQ2xEaUQsT0FBTyxFQUFFa0MsQ0FBQyxDQUFDLGdCQUFnQixDQUFDO01BQzVCb0UsSUFBSSxFQUFFLElBQUlDLElBQUksQ0FBQyxDQUFDO01BQ2hCQyxJQUFJLEVBQUU7UUFBRS9KLEVBQUUsRUFBRSxXQUFXO1FBQUVFLElBQUksRUFBRTtNQUFZLENBQUM7TUFDNUM4SixJQUFJLEVBQUU5SyxlQUFlLENBQUMrSyxTQUFTO01BQy9CbUQsbUJBQW1CLEVBQUU7SUFDdkIsQ0FBQyxDQUFDO0lBQ0ZyRyxlQUFlLENBQUN6RyxPQUFPLEdBQUcsS0FBSztJQUMvQitNLFVBQVUsQ0FBQyxZQUFNO01BQ2YsSUFBTXRGLFdBQVcsR0FBRyxJQUFJQyxXQUFXLENBQUMsaUJBQWlCLENBQUM7TUFDdERFLFFBQVEsQ0FBQ0MsYUFBYSxDQUFDSixXQUFXLENBQUM7SUFDckMsQ0FBQyxFQUFFLEdBQUcsQ0FBQztFQUNULENBQUMsRUFBRSxDQUFDSCxVQUFVLEVBQUVuQyxDQUFDLENBQUMsQ0FBQztFQUVuQixJQUFNNkgsc0JBQXNCLEdBQUduUCxXQUFXLENBQ3hDLFVBQUM2TixRQUF5QixFQUFFMUosa0JBQTBCLEVBQUs7SUFDekQsSUFBTTZILGFBQWEsYUFBQVIsTUFBQSxDQUFhakQsZ0JBQWdCLENBQUNwRyxPQUFPLGVBQVk7SUFDcEV1SCxhQUFhLENBQUNzQyxhQUFhLENBQUM7O0lBRTVCO0lBQ0F2QyxVQUFVLENBQUM7TUFDVDVILEVBQUUsY0FBQTJKLE1BQUEsQ0FBY3FDLFFBQVEsQ0FBQ3VCLGtCQUFrQixDQUFFO01BQzdDaEssT0FBTyxFQUFFakIsa0JBQWtCLElBQUksRUFBRTtNQUNqQ3VILElBQUksRUFBRSxJQUFJQyxJQUFJLENBQUMsQ0FBQztNQUNoQkMsSUFBSSxFQUFFO1FBQUUvSixFQUFFLEVBQUUsV0FBVztRQUFFRSxJQUFJLEVBQUU7TUFBWSxDQUFDO01BQzVDOEosSUFBSSxFQUFFOUssZUFBZSxDQUFDK0ssU0FBUztNQUMvQitCLFFBQVEsRUFBUkEsUUFBUTtNQUNSd0IsY0FBYyxFQUFFO0lBQ2xCLENBQUMsQ0FBQztJQUNGekcsZUFBZSxDQUFDekcsT0FBTyxHQUFHLEtBQUs7RUFDakMsQ0FBQyxFQUNELENBQUNzSCxVQUFVLEVBQUVDLGFBQWEsQ0FDNUIsQ0FBQztFQUVELElBQUE0RixxQkFBQSxHQU1JL08scUJBQXFCLENBQUM7TUFDeEJxRixPQUFPLEVBQUUwRixpQkFBaUI7TUFDMUJpRSxjQUFjLEVBQUV4RCxrQkFBa0I7TUFDbEN5RCxjQUFjLEVBQUV2RCxrQkFBa0I7TUFDbEN3RCxNQUFNLEVBQUVULGdCQUFnQjtNQUN4QlUsa0JBQWtCLEVBQUVQO0lBQ3RCLENBQUMsQ0FBQztJQVhBUSxPQUFPLEdBQUFMLHFCQUFBLENBQVBLLE9BQU87SUFDSUMsZUFBZSxHQUFBTixxQkFBQSxDQUExQk8sU0FBUztJQUNUQyxTQUFTLEdBQUFSLHFCQUFBLENBQVRRLFNBQVM7SUFDVEMsY0FBYyxHQUFBVCxxQkFBQSxDQUFkUyxjQUFjO0lBQ2RDLGFBQWEsR0FBQVYscUJBQUEsQ0FBYlUsYUFBYTtFQVNmLElBQU1DLGNBQWMsR0FBR3pJLE9BQU87RUFFOUIsSUFBTTBJLFdBQVcsR0FBR2xRLFdBQVc7SUFBQSxJQUFBbVEsS0FBQSxHQUFBM00saUJBQUEsY0FBQUMsbUJBQUEsQ0FBQUMsSUFBQSxDQUM3QixTQUFBME0sU0FBT2hMLE9BQWUsRUFBRWhFLG9CQUE0RCxFQUFFaVAsS0FBYztNQUFBLElBQUFDLG9CQUFBLEVBQUFDLGVBQUE7TUFBQSxJQUFBQyxxQkFBQSxFQUFBaFAsV0FBQSxFQUFBQyxPQUFBLEVBQUFnUCxZQUFBLEVBQUFDLHNCQUFBLEVBQUFDLHdCQUFBLEVBQUFDLFlBQUEsRUFBQUMscUJBQUEsRUFBQUMsT0FBQSxFQUFBMUQsZ0JBQUEsRUFBQTJELG9CQUFBLEVBQUFDLGdCQUFBLEVBQUFoTSxNQUFBLEVBQUF5RixRQUFBLEVBQUF3RyxZQUFBLEVBQUFDLFdBQUE7TUFBQSxPQUFBek4sbUJBQUEsQ0FBQWtCLElBQUEsV0FBQXdNLFNBQUE7UUFBQSxrQkFBQUEsU0FBQSxDQUFBdE0sSUFBQSxHQUFBc00sU0FBQSxDQUFBck0sSUFBQTtVQUFBO1lBQUEsTUFDOUY4RCxlQUFlLENBQUN6RyxPQUFPLElBQUl5TixlQUFlLElBQUl2RyxlQUFlO2NBQUE4SCxTQUFBLENBQUFyTSxJQUFBO2NBQUE7WUFBQTtZQUFBLE9BQUFxTSxTQUFBLENBQUFoTCxNQUFBO1VBQUE7WUFBQXFLLHFCQUFBLEdBSWhDclAsd0JBQXdCLENBQUNDLG9CQUFvQixDQUFDLEVBQXZFSSxXQUFXLEdBQUFnUCxxQkFBQSxDQUFYaFAsV0FBVyxFQUFFQyxPQUFPLEdBQUErTyxxQkFBQSxDQUFQL08sT0FBTztZQUU1Qm1ILGVBQWUsQ0FBQ3pHLE9BQU8sR0FBRyxJQUFJO1lBQ3hCc08sWUFBWSxHQUFHcFEsTUFBTSxDQUFDLENBQUM7WUFDN0JrSSxnQkFBZ0IsQ0FBQ3BHLE9BQU8sR0FBR3NPLFlBQVk7WUFDdkNqSSxtQkFBbUIsQ0FBQ3JHLE9BQU8sR0FBR2lELE9BQU87WUFFckMsSUFBSSxDQUFDc0QsYUFBYSxDQUFDdkcsT0FBTyxFQUFFO2NBQzFCOEYsS0FBSyxDQUFDdEgsTUFBTSxDQUFDeVEsYUFBYSxDQUFDO2NBQzNCMUksYUFBYSxDQUFDdkcsT0FBTyxHQUFHLElBQUk7WUFDOUI7O1lBRUE7WUFDTXVPLHNCQUFzQixHQUFHL0gsV0FBVyxDQUFDeEcsT0FBTyxDQUFDK0gsTUFBTSxDQUFDLFVBQUFDLEdBQUc7Y0FBQSxPQUFJQSxHQUFHLENBQUNDLFNBQVM7WUFBQSxFQUFDLENBQUNDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVoRnNHLHdCQUF3QixJQUFBTCxvQkFBQSxHQUFHM0gsV0FBVyxDQUFDeEcsT0FBTyxjQUFBbU8sb0JBQUEsZ0JBQUFBLG9CQUFBLEdBQW5CQSxvQkFBQSxDQUFzQjNILFdBQVcsQ0FBQ3hHLE9BQU8sQ0FBQ29FLE1BQU0sR0FBRyxDQUFDLENBQUMsY0FBQStKLG9CQUFBLHVCQUFyREEsb0JBQUEsQ0FBdURlLE9BQU8sRUFFL0Y7WUFDQTVILFVBQVUsQ0FBQztjQUNUNUgsRUFBRSxjQUFBMkosTUFBQSxDQUFjakQsZ0JBQWdCLENBQUNwRyxPQUFPLENBQUU7Y0FDMUNpRCxPQUFPLEVBQVBBLE9BQU87Y0FDUHNHLElBQUksRUFBRSxJQUFJQyxJQUFJLENBQUMsQ0FBQztjQUNoQkMsSUFBSSxFQUFFaEssV0FBVztjQUNqQmlLLElBQUksRUFBRTlLLGVBQWUsQ0FBQ3VRLElBQUk7Y0FDMUIvTCxPQUFPLEVBQUUvRDtZQUNYLENBQUMsQ0FBQztZQUVGK0csZ0JBQWdCLENBQUNwRyxPQUFPLEdBQUc5QixNQUFNLENBQUMsQ0FBQztZQUMvQnVRLFlBQVksR0FBR3hMLE9BQU87WUFFMUIsSUFBSUEsT0FBTyxLQUFLa0MsQ0FBQyxDQUFDLGdDQUFnQyxDQUFDLEVBQUU7Y0FDbkRzSixZQUFZLFdBQUFwRixNQUFBLENBQVdsRSxDQUFDLENBQUMsZ0NBQWdDLENBQUMsK0JBQUFrRSxNQUFBLENBQ3hELEVBQUFxRixxQkFBQSxHQUFBcFAsT0FBTyxDQUFDOFAsY0FBYyxjQUFBVixxQkFBQSx1QkFBdEJBLHFCQUFBLENBQXdCVyxVQUFVLE1BQUloSyxPQUFPLGFBQVBBLE9BQU8sdUJBQVBBLE9BQU8sQ0FBRWdLLFVBQVUsRUFDekQ7WUFDSjtZQUVNVixPQUFPLEdBQUduSSxXQUFXLENBQUN4RyxPQUFPLENBQUNnTSxHQUFHLENBQUMsVUFBQXNELGNBQWM7Y0FBQSxPQUFLO2dCQUN6RHZNLE9BQU8sRUFBRXVNLGNBQWMsQ0FBQ3JNLE9BQU87Z0JBQy9CeUcsSUFBSSxFQUFFNEYsY0FBYyxDQUFDN0YsSUFBSSxDQUFDL0osRUFBRSxLQUFLRixRQUFRLENBQUNFLEVBQUUsQ0FBQ0MsUUFBUSxDQUFDLENBQUMsR0FBR2YsZUFBZSxDQUFDdVEsSUFBSSxHQUFHdlEsZUFBZSxDQUFDK0s7Y0FDbkcsQ0FBQztZQUFBLENBQUMsQ0FBQyxFQUVIO1lBQ01zQixnQkFBZ0IsR0FBRzVGLE9BQU8sYUFBUEEsT0FBTyx1QkFBUEEsT0FBTyxDQUFFM0YsRUFBRTtZQUM5QmtQLG9CQUFvQixHQUFHTCxzQkFBc0IsYUFBdEJBLHNCQUFzQix1QkFBdEJBLHNCQUFzQixDQUFFdEcsU0FBUztZQUUxRDRHLGdCQUErQixHQUFHLElBQUksRUFFMUM7WUFDQSxJQUFJRCxvQkFBb0IsSUFBSSxJQUFJLEVBQUU7Y0FDMUIvTCxNQUFNLEdBQUc2RixNQUFNLENBQUNrRyxvQkFBb0IsQ0FBQztjQUMzQ0MsZ0JBQWdCLEdBQUduRyxNQUFNLENBQUM2RyxRQUFRLENBQUMxTSxNQUFNLENBQUMsR0FBR0EsTUFBTSxHQUFHLElBQUk7WUFDNUQ7WUFDQTtZQUFBLEtBQ0ssSUFBSW9JLGdCQUFnQixJQUFJLElBQUksRUFBRTtjQUNqQzRELGdCQUFnQixHQUFHNUQsZ0JBQWdCO1lBQ3JDO1lBQUMrRCxTQUFBLENBQUFyTSxJQUFBO1lBQUEsT0FFc0JxRCxhQUFhLENBQUMsQ0FBQzZJLGdCQUFnQixDQUFDLENBQUM7VUFBQTtZQUFsRHZHLFFBQVEsR0FBQTBHLFNBQUEsQ0FBQWpMLElBQUE7WUFFUitLLFlBQVksR0FBR1osS0FBSyxhQUFMQSxLQUFLLGNBQUxBLEtBQUssR0FBSTVPLE9BQU8sQ0FBQzRPLEtBQUs7WUFFckNhLFdBQVcsR0FBQVMsYUFBQSxDQUFBQSxhQUFBLENBQUFBLGFBQUEsQ0FBQUEsYUFBQSxDQUFBQSxhQUFBO2NBQ2Z2TSxPQUFPLEVBQUV3TCxZQUFZO2NBQ3JCRSxPQUFPLEVBQVBBLE9BQU87Y0FDUDFHLFNBQVMsRUFBRTRHLGdCQUFnQjtjQUMzQlksSUFBSSxFQUFFalEsUUFBUSxDQUFDaVEsSUFBSTtjQUNuQkMsTUFBTSxFQUFFbFEsUUFBUSxDQUFDRSxFQUFFLENBQUNDLFFBQVEsQ0FBQyxDQUFDO2NBQzlCRSxTQUFTLEVBQUVMLFFBQVEsQ0FBQ0ssU0FBUztjQUM3QjhQLFFBQVEsRUFBRW5RLFFBQVEsQ0FBQ21RLFFBQVE7Y0FDM0JDLFNBQVMsRUFBRXBRLFFBQVEsQ0FBQ3FRLFVBQVUsQ0FBQ2xRLFFBQVEsQ0FBQyxDQUFDO2NBQ3pDbUYsTUFBTSxFQUFFd0IsYUFBYSxDQUFDdEcsT0FBTztjQUM3QjhQLFNBQVMsRUFBRTFKLGdCQUFnQixDQUFDcEcsT0FBTztjQUNuQytQLFNBQVMsRUFBRSxDQUFBdEssS0FBSyxhQUFMQSxLQUFLLHVCQUFMQSxLQUFLLENBQUU3RixJQUFJLEtBQUksRUFBRTtjQUM1QnNQLE9BQU8sRUFBRVYsd0JBQXdCLEtBQUkvSSxLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRS9GLEVBQUUsQ0FBQztjQUMvQ2dHLGlCQUFpQixFQUFFcUIsb0JBQW9CLENBQUMvRyxPQUFPO2NBQy9DMkYsa0JBQWtCLEVBQUVxQixxQkFBcUIsQ0FBQ2hIO1lBQU8sR0FDN0N1RixNQUFNLGFBQU5BLE1BQU0sZUFBTkEsTUFBTSxDQUFFN0YsRUFBRSxHQUFBOFAsYUFBQTtjQUNSekcsUUFBUSxFQUFFeEQsTUFBTSxDQUFDN0Y7WUFBRSxHQUFNNkYsTUFBTSxDQUFDM0YsSUFBSSxHQUFHO2NBQUVnSixVQUFVLEVBQUVyRCxNQUFNLENBQUMzRjtZQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFDekV5RixPQUFPLGFBQVBBLE9BQU8sZ0JBQUErSSxlQUFBLEdBQVAvSSxPQUFPLENBQUVFLE1BQU0sY0FBQTZJLGVBQUEsZUFBZkEsZUFBQSxDQUFpQjFPLEVBQUUsR0FBQThQLGFBQUE7Y0FDZnpHLFFBQVEsRUFBRTFELE9BQU8sQ0FBQ0UsTUFBTSxDQUFDN0Y7WUFBRSxHQUFNMkYsT0FBTyxDQUFDRSxNQUFNLENBQUMzRixJQUFJLEdBQUc7Y0FBRWdKLFVBQVUsRUFBRXZELE9BQU8sQ0FBQ0UsTUFBTSxDQUFDM0Y7WUFBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQ2pHLENBQUMsQ0FBQyxHQUNKMEksUUFBUSxhQUFSQSxRQUFRLGVBQVJBLFFBQVEsQ0FBRWxFLE1BQU0sR0FBRztjQUFFZ0UsV0FBVyxFQUFFRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMxSTtZQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FDekRQLFdBQVcsQ0FBQytFLE1BQU0sR0FBRyxDQUFDLEdBQUc7Y0FBRS9FLFdBQVcsRUFBWEE7WUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQzdDeVAsWUFBWSxHQUFHO2NBQUVaLEtBQUssRUFBRVk7WUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQzNDLENBQUFySixLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRXVLLE1BQU0sS0FBSSxJQUFJLEdBQUc7Y0FBRUMsV0FBVyxFQUFFeEssS0FBSyxDQUFDdUs7WUFBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBR2hFeEMsT0FBTyxDQUFDdUIsV0FBVyxDQUFDO1VBQUE7VUFBQTtZQUFBLE9BQUFDLFNBQUEsQ0FBQTNLLElBQUE7UUFBQTtNQUFBLEdBQUE0SixRQUFBO0lBQUEsQ0FDckI7SUFBQSxpQkFBQWlDLEdBQUEsRUFBQUMsR0FBQSxFQUFBQyxHQUFBO01BQUEsT0FBQXBDLEtBQUEsQ0FBQXZKLEtBQUEsT0FBQUMsU0FBQTtJQUFBO0VBQUEsS0FDRCxDQUNFNEMsVUFBVSxFQUNWeEIsS0FBSyxFQUNMMEgsT0FBTyxFQUNQbkksT0FBTyxFQUNQRSxNQUFNLEVBQ04vRixRQUFRLEVBQ1JpRyxLQUFLLEVBQ0xOLENBQUMsRUFDRHNJLGVBQWUsRUFDZnZHLGVBQWUsRUFDZnhCLGlCQUFpQixFQUNqQkMsa0JBQWtCLENBRXRCLENBQUM7RUFFRCxJQUFNMEssYUFBYSxHQUFHeFMsV0FBVyxDQUMvQixVQUFDeVMsTUFBZSxFQUFLO0lBQ25CLElBQUksQ0FBQ2pLLG1CQUFtQixDQUFDckcsT0FBTyxFQUFFO0lBRWxDLElBQUlzUSxNQUFNLENBQUM1USxFQUFFLE1BQUsyRixPQUFPLGFBQVBBLE9BQU8sdUJBQVBBLE9BQU8sQ0FBRTNGLEVBQUUsR0FBRTtNQUM3QjRGLFVBQVUsQ0FBQ2dMLE1BQU0sQ0FBQztJQUNwQjtJQUVBLElBQUlqTCxPQUFPLElBQUlnQixtQkFBbUIsQ0FBQ3JHLE9BQU8sRUFBRTtNQUMxQyxJQUFNMk8sT0FBTyxHQUFHbkksV0FBVyxDQUFDeEcsT0FBTyxDQUFDZ00sR0FBRyxDQUFDLFVBQUFzRCxjQUFjO1FBQUEsT0FBSztVQUN6RHZNLE9BQU8sRUFBRXVNLGNBQWMsQ0FBQ3JNLE9BQU87VUFDL0J5RyxJQUFJLEVBQUU0RixjQUFjLENBQUM3RixJQUFJLENBQUMvSixFQUFFLEtBQUtGLFFBQVEsQ0FBQ0UsRUFBRSxDQUFDQyxRQUFRLENBQUMsQ0FBQyxHQUFHZixlQUFlLENBQUN1USxJQUFJLEdBQUd2USxlQUFlLENBQUMrSztRQUNuRyxDQUFDO01BQUEsQ0FBQyxDQUFDO01BRUg2RCxPQUFPLENBQUFnQyxhQUFBO1FBQ0x2TSxPQUFPLEVBQUVvRCxtQkFBbUIsQ0FBQ3JHLE9BQU87UUFDcEMyTyxPQUFPLEVBQVBBLE9BQU87UUFDUDFHLFNBQVMsRUFBRXFJLE1BQU0sQ0FBQzVRLEVBQUU7UUFDcEIrUCxJQUFJLEVBQUVqUSxRQUFRLENBQUNpUSxJQUFJO1FBQ25CQyxNQUFNLEVBQUVsUSxRQUFRLENBQUNFLEVBQUUsQ0FBQ0MsUUFBUSxDQUFDLENBQUM7UUFDOUJFLFNBQVMsRUFBRUwsUUFBUSxDQUFDSyxTQUFTO1FBQzdCOFAsUUFBUSxFQUFFblEsUUFBUSxDQUFDbVEsUUFBUTtRQUMzQkMsU0FBUyxFQUFFcFEsUUFBUSxDQUFDcVEsVUFBVSxDQUFDbFEsUUFBUSxDQUFDLENBQUM7UUFDekNtRixNQUFNLEVBQUV3QixhQUFhLENBQUN0RyxPQUFPO1FBQzdCOFAsU0FBUyxFQUFFMUosZ0JBQWdCLENBQUNwRyxPQUFPO1FBQ25DK1AsU0FBUyxFQUFFLENBQUF0SyxLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRTdGLElBQUksS0FBSSxFQUFFO1FBQzVCc1AsT0FBTyxFQUFFLENBQUF6SixLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRS9GLEVBQUUsS0FBSSxFQUFFO1FBQ3hCZ0csaUJBQWlCLEVBQUVxQixvQkFBb0IsQ0FBQy9HLE9BQU87UUFDL0MyRixrQkFBa0IsRUFBRXFCLHFCQUFxQixDQUFDaEg7TUFBTyxHQUM3QyxDQUFBeUYsS0FBSyxhQUFMQSxLQUFLLHVCQUFMQSxLQUFLLENBQUV1SyxNQUFNLEtBQUksSUFBSSxHQUFHO1FBQUVDLFdBQVcsRUFBRXhLLEtBQUssQ0FBQ3VLO01BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUMvRCxDQUFDO0lBQ0o7RUFDRixDQUFDLEVBQ0QsQ0FBQzNLLE9BQU8sRUFBRUMsVUFBVSxFQUFFa0ksT0FBTyxFQUFFaE8sUUFBUSxFQUFFa0csaUJBQWlCLEVBQUVELEtBQUssQ0FDbkUsQ0FBQztFQUVELElBQU04SyxjQUFjLEdBQUcxUyxXQUFXO0lBQUEsSUFBQTJTLEtBQUEsR0FBQW5QLGlCQUFBLGNBQUFDLG1CQUFBLENBQUFDLElBQUEsQ0FBQyxTQUFBa1AsU0FBT0MsWUFBc0IsRUFBRUMsYUFBcUI7TUFBQSxJQUFBbFAsUUFBQTtNQUFBLE9BQUFILG1CQUFBLENBQUFrQixJQUFBLFdBQUFvTyxTQUFBO1FBQUEsa0JBQUFBLFNBQUEsQ0FBQWxPLElBQUEsR0FBQWtPLFNBQUEsQ0FBQWpPLElBQUE7VUFBQTtZQUFBaU8sU0FBQSxDQUFBak8sSUFBQTtZQUFBLE9BQzlEakUsSUFBSSxDQUFDbVMsS0FBSyxDQUFDQyxjQUFjLENBQUNILGFBQWEsRUFBRUQsWUFBWSxLQUFLL1IsUUFBUSxDQUFDb1MsU0FBUyxDQUFDO1VBQUE7WUFBOUZ0UCxRQUFRLEdBQUFtUCxTQUFBLENBQUE3TSxJQUFBO1lBQ2QsSUFBSXRDLFFBQVEsRUFBRTtjQUNaK0UsV0FBVyxDQUFDeEcsT0FBTyxHQUFHd0csV0FBVyxDQUFDeEcsT0FBTyxDQUFDZ00sR0FBRyxDQUFDLFVBQUEvSSxPQUFPLEVBQUk7Z0JBQ3ZELElBQUlBLE9BQU8sQ0FBQ3ZELEVBQUUsS0FBS2lSLGFBQWEsSUFBSTFOLE9BQU8sQ0FBQ3lHLElBQUksS0FBSyxXQUFXLEVBQUU7a0JBQ2hFLE9BQUE4RixhQUFBLENBQUFBLGFBQUEsS0FBWXZNLE9BQU87b0JBQUUrTixVQUFVLEVBQUVOLFlBQVksS0FBSy9SLFFBQVEsQ0FBQ29TO2tCQUFTO2dCQUN0RTtnQkFDQSxPQUFPOU4sT0FBTztjQUNoQixDQUFDLENBQUM7WUFDSjtVQUFDO1VBQUE7WUFBQSxPQUFBMk4sU0FBQSxDQUFBdk0sSUFBQTtRQUFBO01BQUEsR0FBQW9NLFFBQUE7SUFBQSxDQUNGO0lBQUEsaUJBQUFRLEdBQUEsRUFBQUMsSUFBQTtNQUFBLE9BQUFWLEtBQUEsQ0FBQS9MLEtBQUEsT0FBQUMsU0FBQTtJQUFBO0VBQUEsS0FBRSxFQUFFLENBQUM7RUFFTixJQUFNeU0sc0JBQXNCLEdBQUd0VCxXQUFXO0lBQUEsSUFBQXVULEtBQUEsR0FBQS9QLGlCQUFBLGNBQUFDLG1CQUFBLENBQUFDLElBQUEsQ0FDeEMsU0FBQThQLFNBQ0UzUCxRQUFnQixFQUNoQjRQLFFBQThCLEVBQzlCQyxhQUEyRTtNQUFBLElBQUFDLHFCQUFBO01BQUEsSUFBQUMsbUJBQUEsRUFBQS9GLFFBQUEsRUFBQW9FLFNBQUEsRUFBQTRCLG9CQUFBLEVBQUFDLGtDQUFBLEVBQUFDLGVBQUEsRUFBQUMsU0FBQSxFQUFBcFEsUUFBQSxFQUFBcVEsRUFBQTtNQUFBLE9BQUF4USxtQkFBQSxDQUFBa0IsSUFBQSxXQUFBdVAsU0FBQTtRQUFBLGtCQUFBQSxTQUFBLENBQUFyUCxJQUFBLEdBQUFxUCxTQUFBLENBQUFwUCxJQUFBO1VBQUE7WUFFM0U7WUFDTThPLG1CQUFtQixHQUFHakwsV0FBVyxDQUFDeEcsT0FBTyxDQUFDd0ksSUFBSSxDQUFDLFVBQUFpRCxDQUFDO2NBQUEsSUFBQXVHLFdBQUE7Y0FBQSxRQUFBQSxXQUFBLEdBQ3BEdkcsQ0FBQyxDQUFDQyxRQUFRLGNBQUFzRyxXQUFBLGdCQUFBQSxXQUFBLEdBQVZBLFdBQUEsQ0FBWXJHLGVBQWUsY0FBQXFHLFdBQUEsdUJBQTNCQSxXQUFBLENBQTZCcEcsSUFBSSxDQUFDLFVBQUFDLE1BQU07Z0JBQUEsT0FBSUEsTUFBTSxDQUFDb0csU0FBUyxLQUFLdlEsUUFBUTtjQUFBLEVBQUM7WUFBQSxDQUM1RSxDQUFDO1lBQUEsTUFFRyxDQUFDK1AsbUJBQW1CLElBQUksQ0FBQ0EsbUJBQW1CLENBQUMvRixRQUFRO2NBQUFxRyxTQUFBLENBQUFwUCxJQUFBO2NBQUE7WUFBQTtZQUN2RDFCLE9BQU8sQ0FBQ0MsS0FBSyxDQUFDLHFEQUFxRCxFQUFFUSxRQUFRLENBQUM7WUFBQSxPQUFBcVEsU0FBQSxDQUFBL04sTUFBQTtVQUFBO1lBSXhFMEgsUUFBUSxHQUFLK0YsbUJBQW1CLENBQWhDL0YsUUFBUTtZQUNWb0UsU0FBUyxHQUFHMkIsbUJBQW1CLENBQUMvUixFQUFFO1lBQ2xDZ1Msb0JBQW9CLElBQUFGLHFCQUFBLEdBQUc5RixRQUFRLENBQUNDLGVBQWUsY0FBQTZGLHFCQUFBLHVCQUF4QkEscUJBQUEsQ0FBMEI1RixJQUFJLENBQUMsVUFBQUMsTUFBTTtjQUFBLE9BQUlBLE1BQU0sQ0FBQ0UsU0FBUyxLQUFLLGNBQWM7WUFBQSxFQUFDO1lBQ3BHNEYsa0NBQWtDLEdBQUdMLFFBQVEsS0FBSyxRQUFRLElBQUlJLG9CQUFvQixFQUV4RjtZQUNBbEwsV0FBVyxDQUFDeEcsT0FBTyxHQUFHd0csV0FBVyxDQUFDeEcsT0FBTyxDQUFDZ00sR0FBRyxDQUFDLFVBQUEvSSxPQUFPLEVBQUk7Y0FDdkQsSUFBSUEsT0FBTyxDQUFDdkQsRUFBRSxLQUFLb1EsU0FBUyxFQUFFO2dCQUM1QixJQUFNK0IsU0FBUyxHQUFHUCxRQUFRLEtBQUssU0FBUyxHQUFHLFVBQVUsR0FBRyxVQUFVO2dCQUNsRSxPQUFBOUIsYUFBQSxDQUFBQSxhQUFBLEtBQVl2TSxPQUFPO2tCQUFFaUssY0FBYyxFQUFFMkU7Z0JBQVM7Y0FDaEQ7Y0FDQSxPQUFPNU8sT0FBTztZQUNoQixDQUFDLENBQUM7O1lBRUY7WUFDTTJPLGVBQWUsR0FBR3BMLFdBQVcsQ0FBQ3hHLE9BQU8sQ0FBQ3dJLElBQUksQ0FBQyxVQUFBaUQsQ0FBQztjQUFBLE9BQUlBLENBQUMsQ0FBQy9MLEVBQUUsS0FBS29RLFNBQVM7WUFBQSxFQUFDO1lBQ3pFLElBQUk4QixlQUFlLEVBQUU7Y0FDYkMsU0FBUyxHQUFHUCxRQUFRLEtBQUssU0FBUyxHQUFHLFVBQVUsR0FBRyxVQUFVO2NBQ2xFaEssVUFBVSxDQUFBa0ksYUFBQSxDQUFBQSxhQUFBLEtBQU1vQyxlQUFlO2dCQUFFMUUsY0FBYyxFQUFFMkU7Y0FBUyxFQUFFLENBQUM7WUFDL0Q7O1lBRUE7WUFDQXBMLGVBQWUsQ0FBQ3pHLE9BQU8sR0FBRyxJQUFJO1lBQzlCb0csZ0JBQWdCLENBQUNwRyxPQUFPLEdBQUc5QixNQUFNLENBQUMsQ0FBQzs7WUFFbkM7WUFDQTRJLGlCQUFpQixDQUFDLFVBQUFwRSxJQUFJO2NBQUEsT0FBQThNLGFBQUEsQ0FBQUEsYUFBQSxLQUNqQjlNLElBQUksT0FBQXdQLGVBQUEsS0FDTnhRLFFBQVEsRUFBR3lELENBQUMsQ0FBQyxpQkFBaUIsQ0FBQztZQUFBLENBQ2hDLENBQUM7WUFBQTRNLFNBQUEsQ0FBQXJQLElBQUE7WUFBQXFQLFNBQUEsQ0FBQXBQLElBQUE7WUFBQSxPQUdzQmpFLElBQUksQ0FBQ3lULFlBQVksQ0FBQ0MsY0FBYyxDQUFDO2NBQ3REMVEsUUFBUSxFQUFSQSxRQUFRO2NBQUU7Y0FDVjJRLFNBQVMsRUFBRTNHLFFBQVEsQ0FBQzRHLFVBQVU7Y0FDOUJoQixRQUFRLEVBQUVDLGFBQWEsR0FBRyxNQUFNLEdBQUdELFFBQVE7Y0FDM0NDLGFBQWEsRUFBYkEsYUFBYTtjQUNickMsT0FBTyxFQUFFLENBQUF6SixLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRS9GLEVBQUUsS0FBSSxFQUFFO2NBQ3hCK1AsSUFBSSxFQUFFalEsUUFBUSxDQUFDaVE7WUFDakIsQ0FBQyxDQUFDO1VBQUE7WUFQSWhPLFFBQVEsR0FBQXNRLFNBQUEsQ0FBQWhPLElBQUE7WUFBQSxJQVNUdEMsUUFBUSxDQUFDOFEsRUFBRTtjQUFBUixTQUFBLENBQUFwUCxJQUFBO2NBQUE7WUFBQTtZQUNkd0csaUJBQWlCLENBQUMsQ0FBQztZQUNuQjtZQUNBckMsaUJBQWlCLENBQUMsVUFBQXBFLElBQUksRUFBSTtjQUN4QixJQUFNOFAsV0FBVyxHQUFBaEQsYUFBQSxLQUFROU0sSUFBSSxDQUFFO2NBQy9CLE9BQU84UCxXQUFXLENBQUM5USxRQUFRLENBQUM7Y0FDNUIsT0FBTzhRLFdBQVc7WUFDcEIsQ0FBQyxDQUFDO1lBQUEsT0FBQVQsU0FBQSxDQUFBL04sTUFBQTtVQUFBO1lBQUErTixTQUFBLENBQUFwUCxJQUFBO1lBQUEsT0FLRXhCLGdCQUFnQixDQUFDTSxRQUFRLEVBQUVDLFFBQVEsRUFBRTtjQUN6Q3NCLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFHRCxPQUFlLEVBQUs7Z0JBQzVCNkcsa0JBQWtCLENBQUM3RyxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQztjQUN2QyxDQUFDO2NBQ0RHLE1BQU0sRUFBRSxTQUFSQSxNQUFNQSxDQUFHRCxPQUFlLEVBQUV3UCxlQUF1QixFQUFLO2dCQUNwRDtnQkFDQSxJQUFNQyxVQUFVLEdBQUd6UCxPQUFPLENBQUM2SSxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUc3SSxPQUFPLEdBQUdrQyxDQUFDLENBQUMsc0JBQXNCLENBQUM7Z0JBQ3hGMkIsaUJBQWlCLENBQUMsVUFBQXBFLElBQUk7a0JBQUEsT0FBQThNLGFBQUEsQ0FBQUEsYUFBQSxLQUNqQjlNLElBQUksT0FBQXdQLGVBQUEsS0FDTk8sZUFBZSxFQUFHQyxVQUFVO2dCQUFBLENBQzdCLENBQUM7Y0FDTCxDQUFDO2NBQ0RsUCxVQUFVLEVBQUUsU0FBWkEsVUFBVUEsQ0FDUkwsWUFBb0IsRUFDcEJDLE9BQVksRUFDWkMsZUFBdUIsRUFDdkJvUCxlQUF1QixFQUN2QmxQLFdBQTZCLEVBQzFCO2dCQUNIdUcsa0JBQWtCLENBQUMzRyxZQUFZLEVBQUVDLE9BQU8sRUFBRUMsZUFBZSxFQUFFRSxXQUFXLENBQUM7Z0JBQ3ZFLElBQUlvTyxrQ0FBa0MsRUFBRTtrQkFDdEMvSixRQUFRLENBQUNDLGFBQWEsQ0FBQyxJQUFJSCxXQUFXLENBQUMsdUJBQXVCLENBQUMsQ0FBQztnQkFDbEU7Z0JBQ0FaLGlCQUFpQixDQUFDLFVBQUFwRSxJQUFJLEVBQUk7a0JBQ3hCLElBQU04UCxXQUFXLEdBQUFoRCxhQUFBLEtBQVE5TSxJQUFJLENBQUU7a0JBQy9CLE9BQU84UCxXQUFXLENBQUNDLGVBQWUsQ0FBQztrQkFDbkMsT0FBT0QsV0FBVztnQkFDcEIsQ0FBQyxDQUFDO2NBQ0osQ0FBQztjQUNEL08sT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUd2QyxLQUFVLEVBQUV1UixlQUF1QixFQUFLO2dCQUNoRHhSLE9BQU8sQ0FBQ0MsS0FBSyxDQUFDLFlBQVksRUFBRUEsS0FBSyxDQUFDO2dCQUNsQ2lJLGlCQUFpQixDQUFDLENBQUM7Z0JBQ25CckMsaUJBQWlCLENBQUMsVUFBQXBFLElBQUksRUFBSTtrQkFDeEIsSUFBTThQLFdBQVcsR0FBQWhELGFBQUEsS0FBUTlNLElBQUksQ0FBRTtrQkFDL0IsT0FBTzhQLFdBQVcsQ0FBQ0MsZUFBZSxDQUFDO2tCQUNuQyxPQUFPRCxXQUFXO2dCQUNwQixDQUFDLENBQUM7Y0FDSjtZQUNGLENBQUMsQ0FBQztVQUFBO1lBQUFULFNBQUEsQ0FBQXBQLElBQUE7WUFBQTtVQUFBO1lBQUFvUCxTQUFBLENBQUFyUCxJQUFBO1lBQUFvUCxFQUFBLEdBQUFDLFNBQUE7WUFFRjVJLGlCQUFpQixDQUFDLENBQUM7WUFDbkI7WUFDQXJDLGlCQUFpQixDQUFDLFVBQUFwRSxJQUFJLEVBQUk7Y0FDeEIsSUFBTThQLFdBQVcsR0FBQWhELGFBQUEsS0FBUTlNLElBQUksQ0FBRTtjQUMvQixPQUFPOFAsV0FBVyxDQUFDOVEsUUFBUSxDQUFDO2NBQzVCLE9BQU84USxXQUFXO1lBQ3BCLENBQUMsQ0FBQztVQUFBO1VBQUE7WUFBQSxPQUFBVCxTQUFBLENBQUExTixJQUFBO1FBQUE7TUFBQSxHQUFBZ04sUUFBQTtJQUFBLENBRUw7SUFBQSxpQkFBQXNCLElBQUEsRUFBQUMsSUFBQSxFQUFBQyxJQUFBO01BQUEsT0FBQXpCLEtBQUEsQ0FBQTNNLEtBQUEsT0FBQUMsU0FBQTtJQUFBO0VBQUEsS0FDRCxDQUFDbEYsUUFBUSxFQUFFaUcsS0FBSyxFQUFFNkIsVUFBVSxFQUFFNkIsaUJBQWlCLEVBQUVTLGtCQUFrQixFQUFFRSxrQkFBa0IsQ0FDekYsQ0FBQztFQUVELElBQU1nSixjQUFjLEdBQUdqVixXQUFXLGNBQUF3RCxpQkFBQSxjQUFBQyxtQkFBQSxDQUFBQyxJQUFBLENBQUMsU0FBQXdSLFNBQUE7SUFBQSxJQUFBQyxxQkFBQSxFQUFBQyxxQkFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQUFBQyxpQkFBQSxFQUFBQyxxQkFBQSxFQUFBQyxhQUFBLEVBQUEzRSxPQUFBO0lBQUEsT0FBQXJOLG1CQUFBLENBQUFrQixJQUFBLFdBQUErUSxTQUFBO01BQUEsa0JBQUFBLFNBQUEsQ0FBQTdRLElBQUEsR0FBQTZRLFNBQUEsQ0FBQTVRLElBQUE7UUFBQTtVQUNqQyxJQUFJLENBQUMrRCxZQUFZLENBQUMxRyxPQUFPLEVBQUU7WUFDekIwRyxZQUFZLENBQUMxRyxPQUFPLEdBQUcsSUFBSTtVQUM3QjtVQUFDLEtBQ0c2RSxhQUFhO1lBQUEwTyxTQUFBLENBQUE1USxJQUFBO1lBQUE7VUFBQTtVQUFBNFEsU0FBQSxDQUFBNVEsSUFBQTtVQUFBLE9BQ1QwRSxZQUFZLENBQUMsQ0FBQztRQUFBO1VBQUFrTSxTQUFBLENBQUE1USxJQUFBO1VBQUE7UUFBQTtVQUFBLEtBQ1hvQyxrQkFBa0I7WUFBQXdPLFNBQUEsQ0FBQTVRLElBQUE7WUFBQTtVQUFBO1VBQ3JCeVEsaUJBQWlCLEdBQUdJLE9BQU8sRUFBQVIscUJBQUEsR0FBQ2pPLGtCQUFrQixDQUFDOUIsT0FBTyxjQUFBK1AscUJBQUEsdUJBQTFCQSxxQkFBQSxDQUE0QjdTLElBQUksQ0FBQyxDQUFDLENBQUM7VUFDL0RrVCxxQkFBcUIsR0FBR0csT0FBTyxFQUFBUCxxQkFBQSxHQUFDbE8sa0JBQWtCLENBQUMxRixXQUFXLGNBQUE0VCxxQkFBQSx1QkFBOUJBLHFCQUFBLENBQWdDN08sTUFBTSxDQUFDO1VBQ3ZFa1AsYUFBYSxHQUFHRSxPQUFPLENBQUN6TyxrQkFBa0IsQ0FBQ21KLEtBQUssQ0FBQztVQUFBLE1BRW5ELENBQUNrRixpQkFBaUIsSUFBSSxDQUFDQyxxQkFBcUIsSUFBSSxDQUFDQyxhQUFhO1lBQUFDLFNBQUEsQ0FBQTVRLElBQUE7WUFBQTtVQUFBO1VBQUEsT0FBQTRRLFNBQUEsQ0FBQXZQLE1BQUE7UUFBQTtVQUk1RDJLLE9BQU8sR0FBR25JLFdBQVcsQ0FBQ3hHLE9BQU8sQ0FBQ2dNLEdBQUcsQ0FBQyxVQUFBc0QsY0FBYztZQUFBLE9BQUs7Y0FDekR2TSxPQUFPLEVBQUV1TSxjQUFjLENBQUNyTSxPQUFPO2NBQy9CeUcsSUFBSSxFQUFFNEYsY0FBYyxDQUFDN0YsSUFBSSxDQUFDL0osRUFBRSxLQUFLRixRQUFRLENBQUNFLEVBQUUsQ0FBQ0MsUUFBUSxDQUFDLENBQUMsR0FBR2YsZUFBZSxDQUFDdVEsSUFBSSxHQUFHdlEsZUFBZSxDQUFDK0s7WUFDbkcsQ0FBQztVQUFBLENBQUMsQ0FBQztVQUVINkQsT0FBTyxDQUFBZ0MsYUFBQSxDQUFBQSxhQUFBLENBQUFBLGFBQUEsQ0FBQUEsYUFBQSxDQUFBQSxhQUFBLENBQUFBLGFBQUE7WUFDTHZNLE9BQU8sRUFBRThCLGtCQUFrQixDQUFDOUIsT0FBTztZQUNuQzBMLE9BQU8sRUFBUEEsT0FBTztZQUNQMUcsU0FBUyxFQUFFLENBQUE1QyxPQUFPLGFBQVBBLE9BQU8sdUJBQVBBLE9BQU8sQ0FBRTNGLEVBQUUsS0FBSSxJQUFJO1lBQzlCK1AsSUFBSSxFQUFFalEsUUFBUSxDQUFDaVEsSUFBSTtZQUNuQkMsTUFBTSxFQUFFbFEsUUFBUSxDQUFDRSxFQUFFLENBQUNDLFFBQVEsQ0FBQyxDQUFDO1lBQzlCRSxTQUFTLEVBQUVMLFFBQVEsQ0FBQ0ssU0FBUztZQUM3QjhQLFFBQVEsRUFBRW5RLFFBQVEsQ0FBQ21RLFFBQVE7WUFDM0JDLFNBQVMsRUFBRXBRLFFBQVEsQ0FBQ3FRLFVBQVUsQ0FBQ2xRLFFBQVEsQ0FBQyxDQUFDO1lBQ3pDbUYsTUFBTSxFQUFFd0IsYUFBYSxDQUFDdEcsT0FBTztZQUM3QjhQLFNBQVMsRUFBRTFKLGdCQUFnQixDQUFDcEcsT0FBTztZQUNuQytQLFNBQVMsRUFBRXRLLEtBQUssYUFBTEEsS0FBSyx1QkFBTEEsS0FBSyxDQUFFN0YsSUFBSztZQUN2QnNQLE9BQU8sRUFBRXpKLEtBQUssYUFBTEEsS0FBSyx1QkFBTEEsS0FBSyxDQUFFL0YsRUFBRztZQUNuQmdHLGlCQUFpQixFQUFFcUIsb0JBQW9CLENBQUMvRyxPQUFPO1lBQy9DMkYsa0JBQWtCLEVBQUVxQixxQkFBcUIsQ0FBQ2hIO1VBQU8sR0FDN0N1RixNQUFNLGFBQU5BLE1BQU0sZUFBTkEsTUFBTSxDQUFFN0YsRUFBRSxHQUFHO1lBQUVxSixRQUFRLEVBQUV4RCxNQUFNLENBQUM3RjtVQUFHLENBQUMsR0FBRzJGLE9BQU8sYUFBUEEsT0FBTyxnQkFBQTZOLGdCQUFBLEdBQVA3TixPQUFPLENBQUVFLE1BQU0sY0FBQTJOLGdCQUFBLGVBQWZBLGdCQUFBLENBQWlCeFQsRUFBRSxHQUFHO1lBQUVxSixRQUFRLEVBQUUxRCxPQUFPLENBQUNFLE1BQU0sQ0FBQzdGO1VBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUNqRzJGLE9BQU8sYUFBUEEsT0FBTyxlQUFQQSxPQUFPLENBQUV6RixJQUFJLEdBQUc7WUFBRXdJLFdBQVcsRUFBRS9DLE9BQU8sQ0FBQ3pGO1VBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUNsRHlGLE9BQU8sYUFBUEEsT0FBTyxnQkFBQThOLGdCQUFBLEdBQVA5TixPQUFPLENBQUVFLE1BQU0sY0FBQTROLGdCQUFBLGVBQWZBLGdCQUFBLENBQWlCdlQsSUFBSSxHQUNyQjtZQUFFZ0osVUFBVSxFQUFFdkQsT0FBTyxDQUFDRSxNQUFNLENBQUMzRjtVQUFLLENBQUMsR0FDbkMyRixNQUFNLGFBQU5BLE1BQU0sZUFBTkEsTUFBTSxDQUFFM0YsSUFBSSxHQUNWO1lBQUVnSixVQUFVLEVBQUVyRCxNQUFNLENBQUMzRjtVQUFLLENBQUMsR0FDM0IsQ0FBQyxDQUFDLEdBQ0ptRixrQkFBa0IsQ0FBQzFGLFdBQVcsR0FBRztZQUFFQSxXQUFXLEVBQUUwRixrQkFBa0IsQ0FBQzFGO1VBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUNyRjBGLGtCQUFrQixDQUFDbUosS0FBSyxHQUFHO1lBQUVBLEtBQUssRUFBRW5KLGtCQUFrQixDQUFDbUo7VUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQ25FLENBQUF6SSxLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRXVLLE1BQU0sS0FBSSxJQUFJLEdBQUc7WUFBRUMsV0FBVyxFQUFFeEssS0FBSyxDQUFDdUs7VUFBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQy9ELENBQUM7UUFBQTtRQUFBO1VBQUEsT0FBQXVELFNBQUEsQ0FBQWxQLElBQUE7TUFBQTtJQUFBLEdBQUEwTyxRQUFBO0VBQUEsQ0FFTCxJQUFFLENBQ0RsTyxhQUFhLEVBQ2JFLGtCQUFrQixFQUNsQk0sT0FBTyxFQUNQRSxNQUFNLEVBQ04vRixRQUFRLEVBQ1JpRyxLQUFLLEVBQ0wrSCxPQUFPLEVBQ1A5SCxpQkFBaUIsRUFDakJDLGtCQUFrQixDQUNuQixDQUFDO0VBRUYsSUFBTThOLFNBQVMsR0FBRzVWLFdBQVcsQ0FBQyxZQUFNO0lBQ2xDdUksZ0JBQWdCLENBQUNwRyxPQUFPLEdBQUc5QixNQUFNLENBQUMsQ0FBQztJQUNuQ21JLG1CQUFtQixDQUFDckcsT0FBTyxHQUFHLElBQUk7SUFDbENzRyxhQUFhLENBQUN0RyxPQUFPLEdBQUc5QixNQUFNLENBQUMsQ0FBQztJQUNoQ3FJLGFBQWEsQ0FBQ3ZHLE9BQU8sR0FBRyxLQUFLO0VBQy9CLENBQUMsRUFBRSxFQUFFLENBQUM7RUFFTixJQUFNMFQsY0FBYyxHQUFHN1YsV0FBVyxDQUFDLFlBQU07SUFDdkNnUSxhQUFhLENBQUMsQ0FBQztJQUNmcEgsZUFBZSxDQUFDekcsT0FBTyxHQUFHLEtBQUs7RUFDakMsQ0FBQyxFQUFFLENBQUM2TixhQUFhLENBQUMsQ0FBQztFQUVuQixPQUFPO0lBQ0wxRyxRQUFRLEVBQVJBLFFBQVE7SUFDUkQsZUFBZSxFQUFmQSxlQUFlO0lBQ2ZFLHFCQUFxQixFQUFyQkEscUJBQXFCO0lBQ3JCcUcsZUFBZSxFQUFmQSxlQUFlO0lBQ2ZFLFNBQVMsRUFBVEEsU0FBUztJQUNUQyxjQUFjLEVBQWRBLGNBQWM7SUFDZC9HLGNBQWMsRUFBZEEsY0FBYztJQUNkaUgsY0FBYyxFQUFkQSxjQUFjO0lBQ2R4SCxhQUFhLEVBQUVBLGFBQWEsQ0FBQ3RHLE9BQU87SUFDcENvRyxnQkFBZ0IsRUFBRUEsZ0JBQWdCLENBQUNwRyxPQUFPO0lBRTFDK04sV0FBVyxFQUFYQSxXQUFXO0lBQ1hzQyxhQUFhLEVBQWJBLGFBQWE7SUFDYkUsY0FBYyxFQUFkQSxjQUFjO0lBQ2RZLHNCQUFzQixFQUF0QkEsc0JBQXNCO0lBQ3RCM0osWUFBWSxFQUFaQSxZQUFZO0lBQ1pzTCxjQUFjLEVBQWRBLGNBQWM7SUFDZFcsU0FBUyxFQUFUQSxTQUFTO0lBQ1RDLGNBQWMsRUFBZEEsY0FBYztJQUVkQyxVQUFVLEVBQUVsRyxlQUFlLElBQUl2RztFQUNqQyxDQUFDO0FBQ0gsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
|
|
872
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZVJlZiIsInVzZUVmZmVjdCIsInVzZVN0YXRlIiwidjQiLCJ1dWlkdjQiLCJ1c2VDaGF0TWVzc2FnZXMiLCJ1c2VPcmNoZXN0cmF0b3JTdHJlYW0iLCJ1c2VUIiwidXNlVXNlciIsInVzZUdsb2JhbENvbnRleHQiLCJFVkVOVFMiLCJ1c2VFdmVudCIsIm1haWEiLCJGZWVkYmFjayIsIkNoYXRIaXN0b3J5Um9sZSIsInVzZVByb2plY3RzIiwidXNlVGFiVGFza0RlZmF1bHQiLCJUQVNLX1VSTF9SRUdFWF9QQVRURVJOIiwibm9ybWFsaXplU2VuZE1lc3NhZ2VBcmdzIiwiYXR0YWNobWVudHNPck9wdGlvbnMiLCJfb3B0aW9ucyRhdHRhY2htZW50cyIsIkFycmF5IiwiaXNBcnJheSIsImF0dGFjaG1lbnRzIiwib3B0aW9ucyIsInVzZVN0YWJsZUNhbGxiYWNrcyIsImF1dGhVc2VyIiwiY3VycmVudFVzZXIiLCJpZCIsInRvU3RyaW5nIiwibmFtZSIsImZpcnN0TmFtZSIsImF2YXRhciIsInBpY3R1cmUiLCJjdXJyZW50IiwicGFyc2VTU0VMaW5lIiwibGluZSIsInRyaW0iLCJfbGluZSRzcGxpdCIsInNwbGl0IiwiX2xpbmUkc3BsaXQyIiwiX3NsaWNlZFRvQXJyYXkiLCJldmVudExpbmUiLCJkYXRhTGluZSIsImV2ZW50VHlwZSIsInJlcGxhY2UiLCJkYXRhU3RyIiwiZGF0YSIsIkpTT04iLCJwYXJzZSIsInBhcnNlRXJyb3IiLCJjb25zb2xlIiwiZXJyb3IiLCJwcm9jZXNzU1NFU3RyZWFtIiwiX3JlZiIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwicmVzcG9uc2UiLCJ0aHJlYWRJZCIsImNhbGxiYWNrcyIsIl9yZXNwb25zZSRib2R5IiwicmVhZGVyIiwiZGVjb2RlciIsImJ1ZmZlciIsImFjY3VtdWxhdGVkQ29udGVudCIsImlzU3RyZWFtQ29tcGxldGUiLCJoYW5kbGVMaW5lIiwiX3lpZWxkJHJlYWRlciRyZWFkIiwiZG9uZSIsInZhbHVlIiwibGluZXMiLCJpIiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJfaGFuZGxlTGluZSIsInBhcnNlZCIsImV2ZW50RGF0YSIsImNvbnRlbnQiLCJvblRva2VuIiwibWVzc2FnZSIsIm9uTm9kZSIsImZpbmFsQ29udGVudCIsInNvdXJjZXMiLCJtZW1vcnlTZXNzaW9uSWQiLCJtZW1vcnlfc2Vzc2lvbl9pZCIsInN1Z2dlc3Rpb25zIiwic3VnZ2VzdF9yZXBseSIsIm9uQ29tcGxldGUiLCJvbkVycm9yIiwiYm9keSIsImdldFJlYWRlciIsIkVycm9yIiwiVGV4dERlY29kZXIiLCJyZWFkIiwic2VudCIsImFicnVwdCIsImRlY29kZSIsInN0cmVhbSIsInBvcCIsImxlbmd0aCIsInN0b3AiLCJfeCIsIl94MiIsIl94MyIsImFwcGx5IiwiYXJndW1lbnRzIiwidXNlQ2hhdE1hbmFnZXIiLCJfcmVmMiIsImluaXRpYWxDaGF0SWQiLCJjaGF0SWQiLCJ1c2VySW5pdGlhbE1lc3NhZ2UiLCJfcmVmMiRhZ2VudHMiLCJhZ2VudHMiLCJfdXNlVCIsInQiLCJfdXNlR2xvYmFsQ29udGV4dCIsInByb2plY3QiLCJzZXRQcm9qZWN0IiwiY2xpZW50Iiwic2V0Q2xpZW50IiwiYWdlbnQiLCJpc1dlYlNlYXJjaEFjdGl2ZSIsImlzRGVlcFNlYXJjaEFjdGl2ZSIsImNoaXBzUHJvamVjdCIsInNldENoaXBzUHJvamVjdCIsImV2ZW50IiwiX3VzZVByb2plY3RzIiwiZmV0Y2hQcm9qZWN0cyIsIl91c2VTdGFibGVDYWxsYmFja3MiLCJfdXNlVGFiVGFza0RlZmF1bHQiLCJnZXRUYWJUYXNrRGVmYXVsdCIsImN1cnJlbnRNZXNzYWdlSWQiLCJjdXJyZW50VXNlclF1ZXN0aW9uIiwiY3VycmVudENoYXRJZCIsInJlcG9ydGVkRXZlbnQiLCJtZXNzYWdlc1JlZiIsImlzUHJvY2Vzc2luZ1JlZiIsImZpcnN0VGltZVJlZiIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJhY3RpdmVMb2FkaW5ncyIsInNldEFjdGl2ZUxvYWRpbmdzIiwiaXNXZWJTZWFyY2hBY3RpdmVSZWYiLCJpc0RlZXBTZWFyY2hBY3RpdmVSZWYiLCJfdXNlQ2hhdE1lc3NhZ2VzIiwibG9hZGluZ01lc3NhZ2VzIiwibWVzc2FnZXMiLCJpc0xvYWRpbmdNb3JlTWVzc2FnZXMiLCJsb2FkTWVzc2FnZXMiLCJhZGRNZXNzYWdlIiwicmVtb3ZlTWVzc2FnZSIsImhhbmRsZVNjcm9sbCIsImN1c3RvbUV2ZW50IiwiQ3VzdG9tRXZlbnQiLCJkZXRhaWwiLCJkb2N1bWVudCIsImRpc3BhdGNoRXZlbnQiLCJsYXN0TXNnV2l0aFByb2plY3QiLCJmaWx0ZXIiLCJtc2ciLCJwcm9qZWN0SWQiLCJhdCIsIl9yZWYzIiwicHJvamVjdE5hbWUiLCJ0aGVuIiwicHJvamVjdHMiLCJmb3VuZCIsImZpbmQiLCJwIiwiTnVtYmVyIiwiX2ZvdW5kJGNsaWVudCIsImNsaWVudE5hbWUiLCJTdHJpbmciLCJsYXN0TXNnV2l0aENsaWVudCIsImNsaWVudElkIiwiX3JlZjQiLCJtc2dDbGllbnRJZCIsIm1zZ0NsaWVudE5hbWUiLCJoYW5kbGVTdHJlYW1FcnJvciIsImVycm9yTWVzc2FnZSIsImNvbmNhdCIsImlzRXJyb3IiLCJkYXRlIiwiRGF0ZSIsInVzZXIiLCJyb2xlIiwiQVNTSVNUQU5UIiwiaGFuZGxlU3RyZWFtVXBkYXRlIiwidGVtcE1lc3NhZ2VJZCIsImhhbmRsZVN0cmVhbUZpbmlzaCIsIl9yZWY1IiwiX2NhbGxlZTIiLCJfcHJldmlvdXNNZXNzYWdlJGFwcHIiLCJfcHJldmlvdXNNZXNzYWdlJGFwcHIyIiwidGFza1VybFJlZ2V4IiwibWF0Y2hlcyIsImNvbnRlbnRUb0FkZCIsInByZXZpb3VzTWVzc2FnZSIsImhhc0FwcHJvdmFsSW5QcmV2aW91c01lc3NhZ2UiLCJUQVNLX0NSRUFUSU9OX1RPT0xTIiwiVEFTS19FRElUX1RPT0xTIiwid2FzVGFza0NyZWF0aW9uIiwid2FzVGFza0VkaXQiLCJ0YXNrSWRzIiwidGFiIiwidGFiU2VnbWVudCIsImxhc3RQcm9qZWN0TWVzc2FnZSIsImNvbnRleHRQcm9qZWN0SWRSYXciLCJjb250ZXh0UHJvamVjdElkIiwicGF0aE1hdGNoIiwicm91dGVQcm9qZWN0SWQiLCJfd2luZG93JG5ld1Byb2plY3REYXMiLCJfY29udGV4dDIiLCJSZWdFeHAiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJtYXRjaEFsbCIsIm0iLCJhcHByb3ZhbCIsInBlbmRpbmdfYWN0aW9ucyIsInNvbWUiLCJhY3Rpb24iLCJpbmNsdWRlcyIsInRvb2xfbmFtZSIsIm1hcCIsIm1hdGNoIiwicGFyc2VJbnQiLCJ1cmwiLCJ3aW5kb3ciLCJsb2NhdGlvbiIsInBhdGhuYW1lIiwibmV3UHJvamVjdERhc2hib2FyZCIsImFkZEV4aXN0aW5nVGFza1RvRGFzaGJvYXJkIiwiX3g0IiwiX3g1IiwiX3g2IiwiX3g3IiwiaGFuZGxlU3RyZWFtU3RvcCIsImlzRnJvbnRlbmRDYW5jZWxsZWQiLCJzZXRUaW1lb3V0IiwiaGFuZGxlQXBwcm92YWxSZXF1aXJlZCIsIm9yaWdpbmFsX3RocmVhZF9pZCIsImFwcHJvdmFsU3RhdHVzIiwiX3VzZU9yY2hlc3RyYXRvclN0cmVhIiwib25TdHJlYW1VcGRhdGUiLCJvbkZpbmlzaFN0cmVhbSIsIm9uU3RvcCIsIm9uQXBwcm92YWxSZXF1aXJlZCIsImFza01haWEiLCJ3YWl0aW5nUmVzcG9uc2UiLCJpc0xvYWRpbmciLCJpc1dyaXRpbmciLCJsb2FkaW5nTWVzc2FnZSIsInN0b3BTdHJlYW1pbmciLCJjdXJyZW50UHJvamVjdCIsInNlbmRNZXNzYWdlIiwiX3JlZjYiLCJfY2FsbGVlMyIsImZhcUlkIiwiX21lc3NhZ2VzUmVmJGN1cnJlbnQiLCJfcHJvamVjdCRjbGllbnQiLCJfbm9ybWFsaXplU2VuZE1lc3NhZ2UiLCJuZXdNZXNzYWdlSWQiLCJsYXN0TWVzc2FnZVdpdGhQcm9qZWN0IiwiY3VycmVudEFnZW50RnJvbU1lc3NhZ2VzIiwiZmluYWxNZXNzYWdlIiwiX29wdGlvbnMkcHJvamVjdENoYW5nIiwiaGlzdG9yeSIsImxhc3RNZXNzYWdlUHJvamVjdElkIiwicHJvamVjdFRvUmVxdWVzdCIsInBheWxvYWRGYXFJZCIsInBheWxvYWREYXRhIiwiX2NvbnRleHQzIiwicG1BaVR5cGVkVGV4dCIsImFnZW50SWQiLCJVU0VSIiwicHJvamVjdENoYW5nZWQiLCJpbmNvbWVUeXBlIiwiaGlzdG9yeU1lc3NhZ2UiLCJpc0Zpbml0ZSIsIl9vYmplY3RTcHJlYWQiLCJsYW5nIiwidXNlcklkIiwibGFzdE5hbWUiLCJjb21wYW55SWQiLCJjb21wYW55X2lkIiwibWVzc2FnZUlkIiwiYWdlbnROYW1lIiwiZW50aXR5IiwiYWdlbnRFbnRpdHkiLCJfeDgiLCJfeDkiLCJfeDAiLCJjaGFuZ2VQcm9qZWN0Iiwib3B0aW9uIiwiaGFuZGxlRmVlZGJhY2siLCJfcmVmNyIsIl9jYWxsZWU0IiwiZmVlZGJhY2tQcm9wIiwiY2hhdE1lc3NhZ2VJZCIsIl9jb250ZXh0NCIsIkNoYXRzIiwid2FzSGVscGZ1bENoYXQiLCJUSFVNQlNfVVAiLCJ3YXNIZWxwZnVsIiwiX3gxIiwiX3gxMCIsImhhbmRsZUFwcHJvdmFsRGVjaXNpb24iLCJfcmVmOCIsIl9jYWxsZWU1IiwiZGVjaXNpb24iLCJlZGl0ZWRBY3Rpb25zIiwiX2FwcHJvdmFsJHBlbmRpbmdfYWN0IiwibWVzc2FnZVdpdGhBcHByb3ZhbCIsImhhc0NyZWF0ZUFnZW50QWN0aW9uIiwic2hvdWxkUmVmZXRjaEFnZW50c0FmdGVyQ29tcGxldGlvbiIsImV4aXN0aW5nTWVzc2FnZSIsIm5ld1N0YXR1cyIsIl90IiwiX2NvbnRleHQ1IiwiX20kYXBwcm92YWwiLCJ0aHJlYWRfaWQiLCJfZGVmaW5lUHJvcGVydHkiLCJPcmNoZXN0cmF0b3IiLCJjb250aW51ZVRocmVhZCIsInNlc3Npb25JZCIsInNlc3Npb25faWQiLCJvayIsIm5ld0xvYWRpbmdzIiwiY3VycmVudFRocmVhZElkIiwiZGlzcGxheU1zZyIsIl94MTEiLCJfeDEyIiwiX3gxMyIsImluaXRpYWxpemVDaGF0IiwiX2NhbGxlZTYiLCJfdXNlckluaXRpYWxNZXNzYWdlJG0iLCJfdXNlckluaXRpYWxNZXNzYWdlJGEiLCJfcHJvamVjdCRjbGllbnQyIiwiX3Byb2plY3QkY2xpZW50MyIsImhhc0luaXRpYWxNZXNzYWdlIiwiaGFzSW5pdGlhbEF0dGFjaG1lbnRzIiwiaGFzSW5pdGlhbEZhcSIsIl9jb250ZXh0NiIsIkJvb2xlYW4iLCJyZXNldENoYXQiLCJzdG9wR2VuZXJhdGlvbiIsImlzRGlzYWJsZWQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaG9va3MvdXNlQ2hhdE1hbmFnZXIvdXNlQ2hhdE1hbmFnZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgcmFkaXggKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLW5lc3RlZC10ZXJuYXJ5ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0ZWQtb3B0aW9uYWwtY2hhaW4gKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VSZWYsIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHY0IGFzIHV1aWR2NCB9IGZyb20gJ3V1aWQnXG5pbXBvcnQgeyB1c2VDaGF0TWVzc2FnZXMgfSBmcm9tICcuLi91c2VDaGF0TWVzc2FnZXMnXG5pbXBvcnQgeyB1c2VPcmNoZXN0cmF0b3JTdHJlYW0gfSBmcm9tICcuLi91c2VPcmNoZXN0cmF0b3JTdHJlYW0nXG5pbXBvcnQgeyB1c2VUIH0gZnJvbSAnLi4vdXNlVCdcbmltcG9ydCB7IEF0dGFjaG1lbnRGaWxlIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEZvb3Rlci9DaGF0Rm9vdGVyJ1xuaW1wb3J0IHsgU2VuZE1lc3NhZ2VPcHRpb25zLCBVc2VDaGF0TWFuYWdlclByb3BzIH0gZnJvbSAnLi91c2VDaGF0TWFuYWdlci5pbnRlcmZhY2UnXG5pbXBvcnQgeyB1c2VVc2VyLCBDT1JVc2VyIH0gZnJvbSAnLi4vLi4vY29udGV4dC9jb3ItdXNlcidcbmltcG9ydCB7IHVzZUdsb2JhbENvbnRleHQgfSBmcm9tICcuLi8uLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgRVZFTlRTLCB1c2VFdmVudCB9IGZyb20gJy4uL3VzZUV2ZW50J1xuaW1wb3J0IG1haWEgZnJvbSAnLi4vLi4vc2VydmljZXMvbWFpYSdcbmltcG9ydCB7IEZlZWRiYWNrIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9tb2xlY3VsZXMvTWVzc2FnZUZlZWRiYWNrL01lc3NhZ2VGZWVkYmFjaydcbmltcG9ydCB7IENoYXRNZXNzYWdlLCBDaGF0TWVzc2FnZVVzZXIsIENoYXRIaXN0b3J5Um9sZSwgQXBwcm92YWxSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vdHlwZXMvQ2hhdCdcblxuaW1wb3J0IHsgUHJvamVjdCB9IGZyb20gJy4uLy4uL3R5cGVzL1Byb2plY3QnXG5pbXBvcnQgeyB1c2VQcm9qZWN0cyB9IGZyb20gJy4uL3VzZVByb2plY3RzJ1xuaW1wb3J0IHsgdXNlVGFiVGFza0RlZmF1bHQgfSBmcm9tICcuLi91c2VUYWJUYXNrRGVmYXVsdCdcbmltcG9ydCB7IFRBU0tfVVJMX1JFR0VYX1BBVFRFUk4gfSBmcm9tICcuLi8uLi9jb25zdGFudHMvdGFza1VybHMnXG5cbnR5cGUgQXR0YWNobWVudHNPck9wdGlvbnMgPSBBdHRhY2htZW50RmlsZVtdIHwgU2VuZE1lc3NhZ2VPcHRpb25zXG5cbmNvbnN0IG5vcm1hbGl6ZVNlbmRNZXNzYWdlQXJncyA9IChhdHRhY2htZW50c09yT3B0aW9ucz86IEF0dGFjaG1lbnRzT3JPcHRpb25zKSA9PiB7XG4gIGlmIChBcnJheS5pc0FycmF5KGF0dGFjaG1lbnRzT3JPcHRpb25zKSkge1xuICAgIHJldHVybiB7IGF0dGFjaG1lbnRzOiBhdHRhY2htZW50c09yT3B0aW9ucywgb3B0aW9uczoge30gYXMgU2VuZE1lc3NhZ2VPcHRpb25zIH1cbiAgfVxuXG4gIGNvbnN0IG9wdGlvbnM6IFNlbmRNZXNzYWdlT3B0aW9ucyA9IGF0dGFjaG1lbnRzT3JPcHRpb25zID8/IHt9XG4gIHJldHVybiB7IGF0dGFjaG1lbnRzOiBvcHRpb25zLmF0dGFjaG1lbnRzID8/IFtdLCBvcHRpb25zIH1cbn1cblxuY29uc3QgdXNlU3RhYmxlQ2FsbGJhY2tzID0gKGF1dGhVc2VyOiBDT1JVc2VyKSA9PiB7XG4gIGNvbnN0IGN1cnJlbnRVc2VyID0gdXNlUmVmPENoYXRNZXNzYWdlVXNlcj4oe1xuICAgIGlkOiBhdXRoVXNlci5pZC50b1N0cmluZygpLFxuICAgIG5hbWU6IGF1dGhVc2VyLmZpcnN0TmFtZSxcbiAgICBhdmF0YXI6IGF1dGhVc2VyLnBpY3R1cmUsXG4gIH0pXG5cbiAgaWYgKFxuICAgIGN1cnJlbnRVc2VyLmN1cnJlbnQuaWQgIT09IGF1dGhVc2VyLmlkLnRvU3RyaW5nKCkgfHxcbiAgICBjdXJyZW50VXNlci5jdXJyZW50Lm5hbWUgIT09IGF1dGhVc2VyLmZpcnN0TmFtZSB8fFxuICAgIGN1cnJlbnRVc2VyLmN1cnJlbnQuYXZhdGFyICE9PSBhdXRoVXNlci5waWN0dXJlXG4gICkge1xuICAgIGN1cnJlbnRVc2VyLmN1cnJlbnQgPSB7XG4gICAgICBpZDogYXV0aFVzZXIuaWQudG9TdHJpbmcoKSxcbiAgICAgIG5hbWU6IGF1dGhVc2VyLmZpcnN0TmFtZSxcbiAgICAgIGF2YXRhcjogYXV0aFVzZXIucGljdHVyZSxcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBjdXJyZW50VXNlcjogY3VycmVudFVzZXIuY3VycmVudCxcbiAgfVxufVxuXG5jb25zdCBwYXJzZVNTRUxpbmUgPSAobGluZTogc3RyaW5nKTogeyBldmVudFR5cGU6IHN0cmluZzsgZGF0YTogdW5rbm93biB9IHwgbnVsbCA9PiB7XG4gIGlmICghbGluZS50cmltKCkpIHJldHVybiBudWxsXG5cbiAgY29uc3QgW2V2ZW50TGluZSwgZGF0YUxpbmVdID0gbGluZS5zcGxpdCgnXFxuJylcbiAgaWYgKCFldmVudExpbmUgfHwgIWRhdGFMaW5lKSByZXR1cm4gbnVsbFxuXG4gIGNvbnN0IGV2ZW50VHlwZSA9IGV2ZW50TGluZS5yZXBsYWNlKCdldmVudDogJywgJycpLnRyaW0oKVxuICBjb25zdCBkYXRhU3RyID0gZGF0YUxpbmUucmVwbGFjZSgnZGF0YTogJywgJycpLnRyaW0oKVxuXG4gIHRyeSB7XG4gICAgY29uc3QgZGF0YSA9IEpTT04ucGFyc2UoZGF0YVN0cilcbiAgICByZXR1cm4geyBldmVudFR5cGUsIGRhdGEgfVxuICB9IGNhdGNoIChwYXJzZUVycm9yKSB7XG4gICAgY29uc29sZS5lcnJvcignRXJyb3IgcGFyc2luZyBTU0UgZGF0YTonLCBwYXJzZUVycm9yLCBkYXRhU3RyKVxuICAgIHJldHVybiBudWxsXG4gIH1cbn1cblxuY29uc3QgcHJvY2Vzc1NTRVN0cmVhbSA9IGFzeW5jIChcbiAgcmVzcG9uc2U6IFJlc3BvbnNlLFxuICB0aHJlYWRJZDogc3RyaW5nLFxuICBjYWxsYmFja3M6IHtcbiAgICBvblRva2VuOiAoY29udGVudDogc3RyaW5nKSA9PiB2b2lkXG4gICAgb25Ob2RlOiAobWVzc2FnZTogc3RyaW5nLCB0aHJlYWRJZDogc3RyaW5nKSA9PiB2b2lkXG4gICAgb25Db21wbGV0ZTogKFxuICAgICAgZmluYWxDb250ZW50OiBzdHJpbmcsXG4gICAgICBzb3VyY2VzOiBhbnksXG4gICAgICBtZW1vcnlTZXNzaW9uSWQ6IHN0cmluZyxcbiAgICAgIGN1cnJlbnRUaHJlYWRJZDogc3RyaW5nLFxuICAgICAgc3VnZ2VzdGlvbnM/OiBzdHJpbmdbXSB8IG51bGxcbiAgICApID0+IHZvaWRcbiAgICBvbkVycm9yOiAoZXJyb3I6IGFueSwgdGhyZWFkSWQ6IHN0cmluZykgPT4gdm9pZFxuICB9XG4pOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgY29uc3QgcmVhZGVyID0gcmVzcG9uc2UuYm9keT8uZ2V0UmVhZGVyKClcbiAgaWYgKCFyZWFkZXIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIHJlYWRlciBhdmFpbGFibGUnKVxuICB9XG5cbiAgY29uc3QgZGVjb2RlciA9IG5ldyBUZXh0RGVjb2RlcigpXG4gIGxldCBidWZmZXIgPSAnJ1xuICBsZXQgYWNjdW11bGF0ZWRDb250ZW50ID0gJydcbiAgbGV0IGlzU3RyZWFtQ29tcGxldGUgPSBmYWxzZVxuXG4gIGZ1bmN0aW9uIGhhbmRsZUxpbmUobGluZTogc3RyaW5nKSB7XG4gICAgY29uc3QgcGFyc2VkID0gcGFyc2VTU0VMaW5lKGxpbmUpXG4gICAgaWYgKCFwYXJzZWQpIHJldHVyblxuXG4gICAgY29uc3QgeyBldmVudFR5cGUsIGRhdGEgfSA9IHBhcnNlZFxuICAgIGNvbnN0IGV2ZW50RGF0YSA9IGRhdGEgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj5cblxuICAgIGlmIChldmVudFR5cGUgPT09ICd0b2tlbicpIHtcbiAgICAgIGNvbnN0IGNvbnRlbnQgPSBldmVudERhdGEuY29udGVudCBhcyBzdHJpbmdcbiAgICAgIGFjY3VtdWxhdGVkQ29udGVudCArPSBjb250ZW50XG4gICAgICBjYWxsYmFja3Mub25Ub2tlbihhY2N1bXVsYXRlZENvbnRlbnQpXG4gICAgfSBlbHNlIGlmIChldmVudFR5cGUgPT09ICdub2RlJykge1xuICAgICAgaWYgKGV2ZW50RGF0YS5tZXNzYWdlICYmIHR5cGVvZiBldmVudERhdGEubWVzc2FnZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgY2FsbGJhY2tzLm9uTm9kZShldmVudERhdGEubWVzc2FnZSwgdGhyZWFkSWQpXG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChldmVudFR5cGUgPT09ICdjb21wbGV0ZScpIHtcbiAgICAgIGNvbnN0IGZpbmFsQ29udGVudCA9IChldmVudERhdGEuY29udGVudCBhcyBzdHJpbmcpIHx8IGFjY3VtdWxhdGVkQ29udGVudFxuICAgICAgY29uc3Qgc291cmNlcyA9IChldmVudERhdGEuc291cmNlcyBhcyB1bmtub3duKSB8fCBudWxsXG4gICAgICBjb25zdCBtZW1vcnlTZXNzaW9uSWQgPSAoZXZlbnREYXRhLm1lbW9yeV9zZXNzaW9uX2lkIGFzIHN0cmluZykgfHwgJydcbiAgICAgIGNvbnN0IHN1Z2dlc3Rpb25zID0gQXJyYXkuaXNBcnJheShldmVudERhdGEuc3VnZ2VzdF9yZXBseSlcbiAgICAgICAgPyAoZXZlbnREYXRhLnN1Z2dlc3RfcmVwbHkgYXMgc3RyaW5nW10pXG4gICAgICAgIDogQXJyYXkuaXNBcnJheShldmVudERhdGEuc3VnZ2VzdGlvbnMpXG4gICAgICAgICAgPyAoZXZlbnREYXRhLnN1Z2dlc3Rpb25zIGFzIHN0cmluZ1tdKVxuICAgICAgICAgIDogbnVsbFxuICAgICAgY2FsbGJhY2tzLm9uQ29tcGxldGUoZmluYWxDb250ZW50LCBzb3VyY2VzLCBtZW1vcnlTZXNzaW9uSWQsIHRocmVhZElkLCBzdWdnZXN0aW9ucylcbiAgICB9IGVsc2UgaWYgKGV2ZW50VHlwZSA9PT0gJ2Vycm9yJykge1xuICAgICAgY2FsbGJhY2tzLm9uRXJyb3IoZXZlbnREYXRhLmVycm9yLCB0aHJlYWRJZClcbiAgICB9XG4gIH1cblxuICB3aGlsZSAoIWlzU3RyZWFtQ29tcGxldGUpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tYXdhaXQtaW4tbG9vcFxuICAgIGNvbnN0IHsgZG9uZSwgdmFsdWUgfSA9IGF3YWl0IHJlYWRlci5yZWFkKClcbiAgICBpZiAoZG9uZSkge1xuICAgICAgaXNTdHJlYW1Db21wbGV0ZSA9IHRydWVcbiAgICAgIGJyZWFrXG4gICAgfVxuXG4gICAgYnVmZmVyICs9IGRlY29kZXIuZGVjb2RlKHZhbHVlLCB7IHN0cmVhbTogdHJ1ZSB9KVxuICAgIGNvbnN0IGxpbmVzID0gYnVmZmVyLnNwbGl0KCdcXG5cXG4nKVxuICAgIGJ1ZmZlciA9IGxpbmVzLnBvcCgpIHx8ICcnXG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpbmVzLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICBoYW5kbGVMaW5lKGxpbmVzW2ldKVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY29uc3QgdXNlQ2hhdE1hbmFnZXIgPSAoe1xuICBjaGF0SWQ6IGluaXRpYWxDaGF0SWQsXG4gIHVzZXJJbml0aWFsTWVzc2FnZSxcbiAgb25FcnJvcixcbiAgYWdlbnRzID0gW10sXG59OiBVc2VDaGF0TWFuYWdlclByb3BzKSA9PiB7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVCgpXG4gIGNvbnN0IGF1dGhVc2VyID0gdXNlVXNlcigpXG4gIGNvbnN0IHtcbiAgICBwcm9qZWN0LFxuICAgIHNldFByb2plY3QsXG4gICAgY2xpZW50LFxuICAgIHNldENsaWVudCxcbiAgICBhZ2VudCxcbiAgICBpc1dlYlNlYXJjaEFjdGl2ZSxcbiAgICBpc0RlZXBTZWFyY2hBY3RpdmUsXG4gICAgY2hpcHNQcm9qZWN0LFxuICAgIHNldENoaXBzUHJvamVjdCxcbiAgfSA9IHVzZUdsb2JhbENvbnRleHQoKVxuICBjb25zdCBldmVudCA9IHVzZUV2ZW50KClcbiAgY29uc3QgeyBmZXRjaFByb2plY3RzIH0gPSB1c2VQcm9qZWN0cygpXG4gIGNvbnN0IHsgY3VycmVudFVzZXIgfSA9IHVzZVN0YWJsZUNhbGxiYWNrcyhhdXRoVXNlcilcbiAgY29uc3QgeyBnZXRUYWJUYXNrRGVmYXVsdCB9ID0gdXNlVGFiVGFza0RlZmF1bHQoKVxuICBjb25zdCBjdXJyZW50TWVzc2FnZUlkID0gdXNlUmVmKHV1aWR2NCgpKVxuICBjb25zdCBjdXJyZW50VXNlclF1ZXN0aW9uID0gdXNlUmVmPHN0cmluZyB8IG51bGw+KG51bGwpXG4gIGNvbnN0IGN1cnJlbnRDaGF0SWQgPSB1c2VSZWYoaW5pdGlhbENoYXRJZCB8fCB1dWlkdjQoKSlcbiAgY29uc3QgcmVwb3J0ZWRFdmVudCA9IHVzZVJlZihmYWxzZSlcbiAgY29uc3QgbWVzc2FnZXNSZWYgPSB1c2VSZWY8Q2hhdE1lc3NhZ2VbXT4oW10pXG4gIGNvbnN0IGlzUHJvY2Vzc2luZ1JlZiA9IHVzZVJlZihmYWxzZSlcbiAgY29uc3QgZmlyc3RUaW1lUmVmID0gdXNlUmVmKGZhbHNlKVxuICBjb25zdCBbYWN0aXZlTG9hZGluZ3MsIHNldEFjdGl2ZUxvYWRpbmdzXSA9IHVzZVN0YXRlPFJlY29yZDxzdHJpbmcsIHN0cmluZz4+KHt9KVxuXG4gIGNvbnN0IGlzV2ViU2VhcmNoQWN0aXZlUmVmID0gdXNlUmVmKGlzV2ViU2VhcmNoQWN0aXZlKVxuICBjb25zdCBpc0RlZXBTZWFyY2hBY3RpdmVSZWYgPSB1c2VSZWYoaXNEZWVwU2VhcmNoQWN0aXZlKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaXNXZWJTZWFyY2hBY3RpdmVSZWYuY3VycmVudCA9IGlzV2ViU2VhcmNoQWN0aXZlXG4gICAgaXNEZWVwU2VhcmNoQWN0aXZlUmVmLmN1cnJlbnQgPSBpc0RlZXBTZWFyY2hBY3RpdmVcbiAgfSwgW2lzV2ViU2VhcmNoQWN0aXZlLCBpc0RlZXBTZWFyY2hBY3RpdmVdKVxuXG4gIGNvbnN0IHsgbG9hZGluZ01lc3NhZ2VzLCBtZXNzYWdlcywgaXNMb2FkaW5nTW9yZU1lc3NhZ2VzLCBsb2FkTWVzc2FnZXMsIGFkZE1lc3NhZ2UsIHJlbW92ZU1lc3NhZ2UsIGhhbmRsZVNjcm9sbCB9ID1cbiAgICB1c2VDaGF0TWVzc2FnZXMoe1xuICAgICAgY2hhdElkOiBpbml0aWFsQ2hhdElkIHx8IGN1cnJlbnRDaGF0SWQuY3VycmVudCxcbiAgICAgIGN1cnJlbnRVc2VyLFxuICAgICAgdXNlckluaXRpYWxNZXNzYWdlLFxuICAgICAgb25FcnJvcixcbiAgICAgIGFnZW50cyxcbiAgICB9KVxuXG4gIG1lc3NhZ2VzUmVmLmN1cnJlbnQgPSBtZXNzYWdlc1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgY3VzdG9tRXZlbnQgPSBuZXcgQ3VzdG9tRXZlbnQoJ2NoYXQtbG9hZGluZy1tZXNzYWdlcy1jaGFuZ2VkJywge1xuICAgICAgZGV0YWlsOiB7IGxvYWRpbmdNZXNzYWdlcyB9LFxuICAgIH0pXG4gICAgZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChjdXN0b21FdmVudClcbiAgfSwgW2xvYWRpbmdNZXNzYWdlc10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaW5pdGlhbENoYXRJZCAmJiBpbml0aWFsQ2hhdElkICE9PSBjdXJyZW50Q2hhdElkLmN1cnJlbnQpIHtcbiAgICAgIC8vIExpbXBpYXIgY29udGV4dG8gZ2xvYmFsIGFsIGNhbWJpYXIgZGUgY29udmVyc2FjacOzblxuICAgICAgc2V0UHJvamVjdChudWxsKVxuICAgICAgc2V0Q2xpZW50Py4obnVsbClcbiAgICAgIHNldENoaXBzUHJvamVjdChudWxsKVxuXG4gICAgICBjdXJyZW50Q2hhdElkLmN1cnJlbnQgPSBpbml0aWFsQ2hhdElkXG4gICAgICBjdXJyZW50TWVzc2FnZUlkLmN1cnJlbnQgPSB1dWlkdjQoKVxuICAgICAgY3VycmVudFVzZXJRdWVzdGlvbi5jdXJyZW50ID0gbnVsbFxuICAgICAgcmVwb3J0ZWRFdmVudC5jdXJyZW50ID0gZmFsc2VcbiAgICAgIGlzUHJvY2Vzc2luZ1JlZi5jdXJyZW50ID0gZmFsc2VcblxuICAgICAgbG9hZE1lc3NhZ2VzKClcbiAgICB9XG4gIH0sIFtpbml0aWFsQ2hhdElkLCBwcm9qZWN0LCBzZXRQcm9qZWN0LCBzZXRDbGllbnQsIHNldENoaXBzUHJvamVjdCwgbG9hZE1lc3NhZ2VzXSlcblxuICAvLyBTaW5jcm9uaXphciBjaGlwc1Byb2plY3QgY3VhbmRvIGhheSBtZW5zYWplcyBjb24gcHJvamVjdElkIHBlcm8gY2hpcHNQcm9qZWN0IG5vIHNlIGhhIHNldGVhZG9cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoY2hpcHNQcm9qZWN0IHx8IGxvYWRpbmdNZXNzYWdlcykgcmV0dXJuXG4gICAgY29uc3QgbGFzdE1zZ1dpdGhQcm9qZWN0ID0gbWVzc2FnZXMuZmlsdGVyKG1zZyA9PiBtc2cucHJvamVjdElkKS5hdCgtMSlcbiAgICBjb25zdCB7IHByb2plY3RJZCwgcHJvamVjdE5hbWUgfSA9IGxhc3RNc2dXaXRoUHJvamVjdCB8fCB7fVxuICAgIGlmICghcHJvamVjdElkKSByZXR1cm5cblxuICAgIGZldGNoUHJvamVjdHMocHJvamVjdElkKS50aGVuKHByb2plY3RzID0+IHtcbiAgICAgIGNvbnN0IGZvdW5kID0gcHJvamVjdHM/LmZpbmQocCA9PiBOdW1iZXIocC5pZCkgPT09IE51bWJlcihwcm9qZWN0SWQpKVxuICAgICAgaWYgKGZvdW5kKSB7XG4gICAgICAgIHNldENoaXBzUHJvamVjdCh7XG4gICAgICAgICAgcHJvamVjdE5hbWU6IGZvdW5kLm5hbWUsXG4gICAgICAgICAgY2xpZW50TmFtZTogZm91bmQuY2xpZW50Py5uYW1lIHx8ICcnLFxuICAgICAgICAgIHByb2plY3RJZDogU3RyaW5nKGZvdW5kLmlkKSxcbiAgICAgICAgfSlcbiAgICAgICAgc2V0UHJvamVjdChmb3VuZClcbiAgICAgIH0gZWxzZSBpZiAocHJvamVjdE5hbWUpIHtcbiAgICAgICAgc2V0Q2hpcHNQcm9qZWN0KHtcbiAgICAgICAgICBwcm9qZWN0TmFtZSxcbiAgICAgICAgICBjbGllbnROYW1lOiAnJyxcbiAgICAgICAgICBwcm9qZWN0SWQ6IFN0cmluZyhwcm9qZWN0SWQpLFxuICAgICAgICB9KVxuICAgICAgICBzZXRQcm9qZWN0KHsgaWQ6IE51bWJlcihwcm9qZWN0SWQpLCBuYW1lOiBwcm9qZWN0TmFtZSB9KVxuICAgICAgfVxuICAgIH0pXG4gIH0sIFttZXNzYWdlcywgY2hpcHNQcm9qZWN0LCBsb2FkaW5nTWVzc2FnZXMsIGZldGNoUHJvamVjdHMsIHNldENoaXBzUHJvamVjdCwgc2V0UHJvamVjdF0pXG5cbiAgLy8gU2luY3Jvbml6YXIgY2xpZW50IGN1YW5kbyBoYXkgbWVuc2FqZXMgY29uIGNsaWVudElkIHBlcm8gY2xpZW50IG5vIHNlIGhhIHNldGVhZG9cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoY2xpZW50IHx8IGxvYWRpbmdNZXNzYWdlcykgcmV0dXJuXG4gICAgY29uc3QgbGFzdE1zZ1dpdGhDbGllbnQgPSBtZXNzYWdlcy5maWx0ZXIobXNnID0+IG1zZy5jbGllbnRJZCAhPSBudWxsICYmIG1zZy5jbGllbnROYW1lKS5hdCgtMSlcbiAgICBjb25zdCB7IGNsaWVudElkOiBtc2dDbGllbnRJZCwgY2xpZW50TmFtZTogbXNnQ2xpZW50TmFtZSB9ID0gbGFzdE1zZ1dpdGhDbGllbnQgfHwge31cbiAgICBpZiAobXNnQ2xpZW50SWQgPT0gbnVsbCB8fCAhbXNnQ2xpZW50TmFtZSkgcmV0dXJuXG5cbiAgICBzZXRDbGllbnQ/Lih7IGlkOiBOdW1iZXIobXNnQ2xpZW50SWQpLCBuYW1lOiBtc2dDbGllbnROYW1lIH0pXG4gIH0sIFttZXNzYWdlcywgY2xpZW50LCBsb2FkaW5nTWVzc2FnZXMsIHNldENsaWVudF0pXG5cbiAgY29uc3QgaGFuZGxlU3RyZWFtRXJyb3IgPSB1c2VDYWxsYmFjayhcbiAgICAoZXJyb3JNZXNzYWdlPzogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCBtZXNzYWdlID1cbiAgICAgICAgZXJyb3JNZXNzYWdlID09PSBcIkFjY2VzcyBkZW5pZWQ6IFlvdSBkb24ndCBoYXZlIHBlcm1pc3Npb24gdG8gYWNjZXNzIHRoaXMgYWdlbnRcIlxuICAgICAgICAgID8gdCgnY2hhdC5lcnJvckFjY2Vzc0RlbmllZCcpXG4gICAgICAgICAgOiB0KCdjaGF0LmVycm9yJylcblxuICAgICAgYWRkTWVzc2FnZSh7XG4gICAgICAgIGlkOiBgYW5zd2VyLSR7Y3VycmVudE1lc3NhZ2VJZC5jdXJyZW50fWAsXG4gICAgICAgIG1lc3NhZ2UsXG4gICAgICAgIGlzRXJyb3I6IHRydWUsXG4gICAgICAgIGRhdGU6IG5ldyBEYXRlKCksXG4gICAgICAgIHVzZXI6IHsgaWQ6ICdhc3Npc3RhbnQnLCBuYW1lOiAnQXNzaXN0YW50JyB9LFxuICAgICAgICByb2xlOiBDaGF0SGlzdG9yeVJvbGUuQVNTSVNUQU5ULFxuICAgICAgfSlcbiAgICAgIGlzUHJvY2Vzc2luZ1JlZi5jdXJyZW50ID0gZmFsc2VcbiAgICB9LFxuICAgIFthZGRNZXNzYWdlLCB0XVxuICApXG5cbiAgY29uc3QgaGFuZGxlU3RyZWFtVXBkYXRlID0gdXNlQ2FsbGJhY2soXG4gICAgKGNvbnRlbnQ6IHN0cmluZywgc291cmNlczogYW55LCBtZW1vcnlTZXNzaW9uSWQ6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgdGVtcE1lc3NhZ2VJZCA9IGBhbnN3ZXItJHtjdXJyZW50TWVzc2FnZUlkLmN1cnJlbnR9LXN0cmVhbWluZ2BcblxuICAgICAgYWRkTWVzc2FnZSh7XG4gICAgICAgIGlkOiB0ZW1wTWVzc2FnZUlkLFxuICAgICAgICBtZXNzYWdlOiBjb250ZW50LFxuICAgICAgICBkYXRlOiBuZXcgRGF0ZSgpLFxuICAgICAgICB1c2VyOiB7IGlkOiAnYXNzaXN0YW50JywgbmFtZTogJ0Fzc2lzdGFudCcgfSxcbiAgICAgICAgcm9sZTogQ2hhdEhpc3RvcnlSb2xlLkFTU0lTVEFOVCxcbiAgICAgICAgc291cmNlcyxcbiAgICAgICAgbWVtb3J5U2Vzc2lvbklkLFxuICAgICAgfSlcbiAgICB9LFxuICAgIFthZGRNZXNzYWdlXVxuICApXG5cbiAgY29uc3QgaGFuZGxlU3RyZWFtRmluaXNoID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKGNvbnRlbnQ6IHN0cmluZywgc291cmNlczogYW55LCBtZW1vcnlTZXNzaW9uSWQ6IHN0cmluZywgc3VnZ2VzdGlvbnM/OiBzdHJpbmdbXSB8IG51bGwpID0+IHtcbiAgICAgIGNvbnN0IHRlbXBNZXNzYWdlSWQgPSBgYW5zd2VyLSR7Y3VycmVudE1lc3NhZ2VJZC5jdXJyZW50fS1zdHJlYW1pbmdgXG4gICAgICByZW1vdmVNZXNzYWdlKHRlbXBNZXNzYWdlSWQpXG5cbiAgICAgIC8vIERldGVjdGFyIHRvZGFzIGxhcyBVUkxzIGRlIHRhcmVhcyAoLi4uL3Rhc2tzLzEyMy9kZXRhaWx8bWVzc2FnZXxtZXNzYWdlc3xmaWxlc3xoaXN0b3J5fGhvdXJzKVxuICAgICAgY29uc3QgdGFza1VybFJlZ2V4ID0gbmV3IFJlZ0V4cChUQVNLX1VSTF9SRUdFWF9QQVRURVJOLCAnZycpXG4gICAgICBjb25zdCBtYXRjaGVzID0gWy4uLmNvbnRlbnQubWF0Y2hBbGwodGFza1VybFJlZ2V4KV1cblxuICAgICAgbGV0IGNvbnRlbnRUb0FkZCA9IGNvbnRlbnRcbiAgICAgIGNvbnN0IHByZXZpb3VzTWVzc2FnZSA9IG1lc3NhZ2VzUmVmLmN1cnJlbnQuZmlsdGVyKG0gPT4gbS5pZCAhPT0gdGVtcE1lc3NhZ2VJZCkuYXQoLTEpXG4gICAgICBjb25zdCBoYXNBcHByb3ZhbEluUHJldmlvdXNNZXNzYWdlID0gcHJldmlvdXNNZXNzYWdlPy5hcHByb3ZhbCAhPSBudWxsXG4gICAgICBjb25zdCBUQVNLX0NSRUFUSU9OX1RPT0xTID0gWydjcmVhdGVfdGFzaycsICdjcmVhdGVfdGFza3NfYmF0Y2gnXVxuICAgICAgY29uc3QgVEFTS19FRElUX1RPT0xTID0gW1xuICAgICAgICAnZWRpdF90YXNrJyxcbiAgICAgICAgJ2VkaXRfdGFza3NfYmF0Y2gnLFxuICAgICAgICAndGFza19hc3NpZ24nLFxuICAgICAgICAndGFza191bmFzc2lnbicsXG4gICAgICAgICd1cGRhdGVfdGFza190eXBlJyxcbiAgICAgICAgJ3VwZGF0ZV9lc3RpbWF0ZWRfaG91cnMnLFxuICAgICAgICAnYXNzaWduX3Rhc2tfbGFiZWwnLFxuICAgICAgXVxuICAgICAgY29uc3Qgd2FzVGFza0NyZWF0aW9uID1cbiAgICAgICAgaGFzQXBwcm92YWxJblByZXZpb3VzTWVzc2FnZSAmJlxuICAgICAgICBwcmV2aW91c01lc3NhZ2U/LmFwcHJvdmFsPy5wZW5kaW5nX2FjdGlvbnM/LnNvbWUoKGFjdGlvbjogYW55KSA9PlxuICAgICAgICAgIFRBU0tfQ1JFQVRJT05fVE9PTFMuaW5jbHVkZXMoYWN0aW9uLnRvb2xfbmFtZSlcbiAgICAgICAgKVxuICAgICAgY29uc3Qgd2FzVGFza0VkaXQgPVxuICAgICAgICBoYXNBcHByb3ZhbEluUHJldmlvdXNNZXNzYWdlICYmXG4gICAgICAgIHByZXZpb3VzTWVzc2FnZT8uYXBwcm92YWw/LnBlbmRpbmdfYWN0aW9ucz8uc29tZSgoYWN0aW9uOiBhbnkpID0+IFRBU0tfRURJVF9UT09MUy5pbmNsdWRlcyhhY3Rpb24udG9vbF9uYW1lKSlcbiAgICAgIGlmIChtYXRjaGVzLmxlbmd0aCA+IDAgJiYgaGFzQXBwcm92YWxJblByZXZpb3VzTWVzc2FnZSkge1xuICAgICAgICBjb25zdCB0YXNrSWRzID0gbWF0Y2hlcy5tYXAobWF0Y2ggPT4gcGFyc2VJbnQobWF0Y2hbMV0sIDEwKSlcbiAgICAgICAgY29uc3QgdGFiID0gYXdhaXQgZ2V0VGFiVGFza0RlZmF1bHQodGFza0lkc1swXSlcbiAgICAgICAgY29uc3QgdGFiU2VnbWVudCA9IHRhYiA/IGAvJHt0YWJ9YCA6ICcvZGV0YWlsJ1xuICAgICAgICBjb250ZW50VG9BZGQgPSBjb250ZW50LnJlcGxhY2UodGFza1VybFJlZ2V4LCB1cmwgPT5cbiAgICAgICAgICB1cmwucmVwbGFjZSgvXFwvKGRldGFpbHxtZXNzYWdlfG1lc3NhZ2VzfGZpbGVzfGhpc3Rvcnl8aG91cnMpKD89JHxcXD8pLywgdGFiU2VnbWVudClcbiAgICAgICAgKVxuXG4gICAgICAgIC8vIFNvbG8gYcOxYWRpciBhbCBkYXNoYm9hcmQgY3VhbmRvIGZ1ZSBjcmVhY2nDs24gZGUgdGFyZWEgeSBsYSBydXRhIGFjdHVhbCBjb2luY2lkZSBjb24gZWwgcHJveWVjdG8gZGVsIGNoYXRcbiAgICAgICAgaWYgKHdhc1Rhc2tDcmVhdGlvbikge1xuICAgICAgICAgIGNvbnN0IGxhc3RQcm9qZWN0TWVzc2FnZSA9IG1lc3NhZ2VzUmVmLmN1cnJlbnQuZmlsdGVyKG1zZyA9PiBtc2cucHJvamVjdElkKS5hdCgtMSlcbiAgICAgICAgICBjb25zdCBjb250ZXh0UHJvamVjdElkUmF3ID0gcHJvamVjdD8uaWQgfHwgbGFzdFByb2plY3RNZXNzYWdlPy5wcm9qZWN0SWRcbiAgICAgICAgICBjb25zdCBjb250ZXh0UHJvamVjdElkID0gY29udGV4dFByb2plY3RJZFJhdyA/IHBhcnNlSW50KFN0cmluZyhjb250ZXh0UHJvamVjdElkUmF3KSwgMTApIDogbnVsbFxuICAgICAgICAgIGNvbnN0IHBhdGhNYXRjaCA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5tYXRjaCgvXlxcL3Byb2plY3RzXFwvKFxcZCspXFwvLylcbiAgICAgICAgICBjb25zdCByb3V0ZVByb2plY3RJZCA9IHBhdGhNYXRjaCA/IHBhcnNlSW50KHBhdGhNYXRjaFsxXSwgMTApIDogbnVsbFxuICAgICAgICAgIGlmIChjb250ZXh0UHJvamVjdElkICYmIHJvdXRlUHJvamVjdElkICYmIGNvbnRleHRQcm9qZWN0SWQgPT09IHJvdXRlUHJvamVjdElkKSB7XG4gICAgICAgICAgICBpZiAod2luZG93Lm5ld1Byb2plY3REYXNoYm9hcmQ/LmFkZEV4aXN0aW5nVGFza1RvRGFzaGJvYXJkKSB7XG4gICAgICAgICAgICAgIHdpbmRvdy5uZXdQcm9qZWN0RGFzaGJvYXJkLmFkZEV4aXN0aW5nVGFza1RvRGFzaGJvYXJkKHRhc2tJZHMpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHdhc1Rhc2tFZGl0KSB7XG4gICAgICAgICAgLy8gVE9ETzogQ09SIGRlYmUgaW1wbGVtZW50YXIgd2luZG93Lm5ld1Byb2plY3REYXNoYm9hcmQucmVmcmVzaFRhc2tzT25EYXNoYm9hcmQodGFza0lkcylcbiAgICAgICAgICAvLyBwYXJhIHJlZnJlc2NhciB0YXJlYXMgZWRpdGFkYXMgZW4gZWwgZGFzaGJvYXJkIHNpbiBkdXBsaWNhcmxhc1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGFkZE1lc3NhZ2Uoe1xuICAgICAgICBpZDogYGFuc3dlci0ke21lbW9yeVNlc3Npb25JZH1gLFxuICAgICAgICBtZXNzYWdlOiBjb250ZW50VG9BZGQsXG4gICAgICAgIGRhdGU6IG5ldyBEYXRlKCksXG4gICAgICAgIHVzZXI6IHsgaWQ6ICdhc3Npc3RhbnQnLCBuYW1lOiAnQXNzaXN0YW50JyB9LFxuICAgICAgICByb2xlOiBDaGF0SGlzdG9yeVJvbGUuQVNTSVNUQU5ULFxuICAgICAgICBzb3VyY2VzLFxuICAgICAgICBtZW1vcnlTZXNzaW9uSWQsXG4gICAgICAgIHN1Z2dlc3Rpb25zOiBzdWdnZXN0aW9ucyB8fCBbXSxcbiAgICAgIH0pXG5cbiAgICAgIGlzUHJvY2Vzc2luZ1JlZi5jdXJyZW50ID0gZmFsc2VcbiAgICAgIGlmIChmaXJzdFRpbWVSZWYuY3VycmVudCkge1xuICAgICAgICBjb25zdCBjdXN0b21FdmVudCA9IG5ldyBDdXN0b21FdmVudCgncmVmZXRjaC1zZXNzaW9uJylcbiAgICAgICAgZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChjdXN0b21FdmVudClcbiAgICAgICAgZmlyc3RUaW1lUmVmLmN1cnJlbnQgPSBmYWxzZVxuICAgICAgfVxuICAgIH0sXG4gICAgW2FkZE1lc3NhZ2UsIHJlbW92ZU1lc3NhZ2UsIHByb2plY3QsIGdldFRhYlRhc2tEZWZhdWx0XVxuICApXG5cbiAgY29uc3QgaGFuZGxlU3RyZWFtU3RvcCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBhZGRNZXNzYWdlKHtcbiAgICAgIGlkOiBgYW5zd2VyLSR7Y3VycmVudE1lc3NhZ2VJZC5jdXJyZW50fS1jYW5jZWxsZWRgLFxuICAgICAgbWVzc2FnZTogdCgnY2hhdC5jYW5jZWxsZWQnKSxcbiAgICAgIGRhdGU6IG5ldyBEYXRlKCksXG4gICAgICB1c2VyOiB7IGlkOiAnYXNzaXN0YW50JywgbmFtZTogJ0Fzc2lzdGFudCcgfSxcbiAgICAgIHJvbGU6IENoYXRIaXN0b3J5Um9sZS5BU1NJU1RBTlQsXG4gICAgICBpc0Zyb250ZW5kQ2FuY2VsbGVkOiB0cnVlLFxuICAgIH0pXG4gICAgaXNQcm9jZXNzaW5nUmVmLmN1cnJlbnQgPSBmYWxzZVxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc3QgY3VzdG9tRXZlbnQgPSBuZXcgQ3VzdG9tRXZlbnQoJ3JlZmV0Y2gtc2Vzc2lvbicpXG4gICAgICBkb2N1bWVudC5kaXNwYXRjaEV2ZW50KGN1c3RvbUV2ZW50KVxuICAgIH0sIDUwMClcbiAgfSwgW2FkZE1lc3NhZ2UsIHRdKVxuXG4gIGNvbnN0IGhhbmRsZUFwcHJvdmFsUmVxdWlyZWQgPSB1c2VDYWxsYmFjayhcbiAgICAoYXBwcm92YWw6IEFwcHJvdmFsUmVxdWVzdCwgYWNjdW11bGF0ZWRDb250ZW50OiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IHRlbXBNZXNzYWdlSWQgPSBgYW5zd2VyLSR7Y3VycmVudE1lc3NhZ2VJZC5jdXJyZW50fS1zdHJlYW1pbmdgXG4gICAgICByZW1vdmVNZXNzYWdlKHRlbXBNZXNzYWdlSWQpXG5cbiAgICAgIC8vIEFkZCBhIG1lc3NhZ2Ugd2l0aCB0aGUgYXBwcm92YWwgcmVxdWVzdFxuICAgICAgYWRkTWVzc2FnZSh7XG4gICAgICAgIGlkOiBgYXBwcm92YWwtJHthcHByb3ZhbC5vcmlnaW5hbF90aHJlYWRfaWR9YCxcbiAgICAgICAgbWVzc2FnZTogYWNjdW11bGF0ZWRDb250ZW50IHx8ICcnLFxuICAgICAgICBkYXRlOiBuZXcgRGF0ZSgpLFxuICAgICAgICB1c2VyOiB7IGlkOiAnYXNzaXN0YW50JywgbmFtZTogJ0Fzc2lzdGFudCcgfSxcbiAgICAgICAgcm9sZTogQ2hhdEhpc3RvcnlSb2xlLkFTU0lTVEFOVCxcbiAgICAgICAgYXBwcm92YWwsXG4gICAgICAgIGFwcHJvdmFsU3RhdHVzOiAncGVuZGluZycsXG4gICAgICB9KVxuICAgICAgaXNQcm9jZXNzaW5nUmVmLmN1cnJlbnQgPSBmYWxzZVxuICAgIH0sXG4gICAgW2FkZE1lc3NhZ2UsIHJlbW92ZU1lc3NhZ2VdXG4gIClcblxuICBjb25zdCB7XG4gICAgYXNrTWFpYSxcbiAgICBpc0xvYWRpbmc6IHdhaXRpbmdSZXNwb25zZSxcbiAgICBpc1dyaXRpbmcsXG4gICAgbG9hZGluZ01lc3NhZ2UsXG4gICAgc3RvcFN0cmVhbWluZyxcbiAgfSA9IHVzZU9yY2hlc3RyYXRvclN0cmVhbSh7XG4gICAgb25FcnJvcjogaGFuZGxlU3RyZWFtRXJyb3IsXG4gICAgb25TdHJlYW1VcGRhdGU6IGhhbmRsZVN0cmVhbVVwZGF0ZSxcbiAgICBvbkZpbmlzaFN0cmVhbTogaGFuZGxlU3RyZWFtRmluaXNoLFxuICAgIG9uU3RvcDogaGFuZGxlU3RyZWFtU3RvcCxcbiAgICBvbkFwcHJvdmFsUmVxdWlyZWQ6IGhhbmRsZUFwcHJvdmFsUmVxdWlyZWQsXG4gIH0pXG5cbiAgY29uc3QgY3VycmVudFByb2plY3QgPSBwcm9qZWN0XG5cbiAgY29uc3Qgc2VuZE1lc3NhZ2UgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAobWVzc2FnZTogc3RyaW5nLCBhdHRhY2htZW50c09yT3B0aW9ucz86IEF0dGFjaG1lbnRGaWxlW10gfCBTZW5kTWVzc2FnZU9wdGlvbnMsIGZhcUlkPzogc3RyaW5nKSA9PiB7XG4gICAgICBpZiAoaXNQcm9jZXNzaW5nUmVmLmN1cnJlbnQgfHwgd2FpdGluZ1Jlc3BvbnNlIHx8IGxvYWRpbmdNZXNzYWdlcykge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgY29uc3QgeyBhdHRhY2htZW50cywgb3B0aW9ucyB9ID0gbm9ybWFsaXplU2VuZE1lc3NhZ2VBcmdzKGF0dGFjaG1lbnRzT3JPcHRpb25zKVxuXG4gICAgICBpc1Byb2Nlc3NpbmdSZWYuY3VycmVudCA9IHRydWVcbiAgICAgIGNvbnN0IG5ld01lc3NhZ2VJZCA9IHV1aWR2NCgpXG4gICAgICBjdXJyZW50TWVzc2FnZUlkLmN1cnJlbnQgPSBuZXdNZXNzYWdlSWRcbiAgICAgIGN1cnJlbnRVc2VyUXVlc3Rpb24uY3VycmVudCA9IG1lc3NhZ2VcblxuICAgICAgaWYgKCFyZXBvcnRlZEV2ZW50LmN1cnJlbnQpIHtcbiAgICAgICAgZXZlbnQoRVZFTlRTLnBtQWlUeXBlZFRleHQpXG4gICAgICAgIHJlcG9ydGVkRXZlbnQuY3VycmVudCA9IHRydWVcbiAgICAgIH1cblxuICAgICAgLy8gVmVyaWZpY2FyIHNpIGVsIGNvbnRleHRvIGdsb2JhbCBlc3TDoSBkZXNhY3R1YWxpemFkb1xuICAgICAgY29uc3QgbGFzdE1lc3NhZ2VXaXRoUHJvamVjdCA9IG1lc3NhZ2VzUmVmLmN1cnJlbnQuZmlsdGVyKG1zZyA9PiBtc2cucHJvamVjdElkKS5hdCgtMSlcblxuICAgICAgY29uc3QgY3VycmVudEFnZW50RnJvbU1lc3NhZ2VzID0gbWVzc2FnZXNSZWYuY3VycmVudD8uW21lc3NhZ2VzUmVmLmN1cnJlbnQubGVuZ3RoIC0gMV0/LmFnZW50SWRcblxuICAgICAgLy8gTm8gYWdyZWdhciBwcm9qZWN0SWQgYWwgbWVuc2FqZSBkZWwgdXN1YXJpbyAtIHNlIGRldGVybWluYXLDoSBkZXNwdcOpc1xuICAgICAgYWRkTWVzc2FnZSh7XG4gICAgICAgIGlkOiBgcXVlc3Rpb24tJHtjdXJyZW50TWVzc2FnZUlkLmN1cnJlbnR9YCxcbiAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgZGF0ZTogbmV3IERhdGUoKSxcbiAgICAgICAgdXNlcjogY3VycmVudFVzZXIsXG4gICAgICAgIHJvbGU6IENoYXRIaXN0b3J5Um9sZS5VU0VSLFxuICAgICAgICBzb3VyY2VzOiBhdHRhY2htZW50cyxcbiAgICAgIH0pXG5cbiAgICAgIGN1cnJlbnRNZXNzYWdlSWQuY3VycmVudCA9IHV1aWR2NCgpXG4gICAgICBsZXQgZmluYWxNZXNzYWdlID0gbWVzc2FnZVxuXG4gICAgICBpZiAobWVzc2FnZSA9PT0gdCgncWEuaXRlbXMucmVudGFiaWxpZGFkX3Byb3llY3RvJykpIHtcbiAgICAgICAgZmluYWxNZXNzYWdlID0gYEZBUTogJHt0KCdxYS5pdGVtcy5yZW50YWJpbGlkYWRfcHJveWVjdG8nKX0gLSBUaXBvIGRlIHJlbnRhYmlsaWRhZDogJHtcbiAgICAgICAgICBvcHRpb25zLnByb2plY3RDaGFuZ2VkPy5pbmNvbWVUeXBlIHx8IHByb2plY3Q/LmluY29tZVR5cGVcbiAgICAgICAgfWBcbiAgICAgIH1cblxuICAgICAgY29uc3QgaGlzdG9yeSA9IG1lc3NhZ2VzUmVmLmN1cnJlbnQubWFwKGhpc3RvcnlNZXNzYWdlID0+ICh7XG4gICAgICAgIGNvbnRlbnQ6IGhpc3RvcnlNZXNzYWdlLm1lc3NhZ2UsXG4gICAgICAgIHJvbGU6IGhpc3RvcnlNZXNzYWdlLnVzZXIuaWQgPT09IGF1dGhVc2VyLmlkLnRvU3RyaW5nKCkgPyBDaGF0SGlzdG9yeVJvbGUuVVNFUiA6IENoYXRIaXN0b3J5Um9sZS5BU1NJU1RBTlQsXG4gICAgICB9KSlcblxuICAgICAgLy8gVmVyaWZpY2FyIGNvbnNpc3RlbmNpYSBlbnRyZSBjb250ZXh0byBnbG9iYWwgeSDDumx0aW1vIG1lbnNhamVcbiAgICAgIGNvbnN0IGNvbnRleHRQcm9qZWN0SWQgPSBwcm9qZWN0Py5pZFxuICAgICAgY29uc3QgbGFzdE1lc3NhZ2VQcm9qZWN0SWQgPSBsYXN0TWVzc2FnZVdpdGhQcm9qZWN0Py5wcm9qZWN0SWRcblxuICAgICAgbGV0IHByb2plY3RUb1JlcXVlc3Q6IG51bWJlciB8IG51bGwgPSBudWxsXG5cbiAgICAgIC8vIFNpIGhheSDDumx0aW1vIG1lbnNhamUgY29uIHByb2plY3RJZCwgdXNhcmxvIChtw6FzIGNvbmZpYWJsZSlcbiAgICAgIGlmIChsYXN0TWVzc2FnZVByb2plY3RJZCAhPSBudWxsKSB7XG4gICAgICAgIGNvbnN0IHBhcnNlZCA9IE51bWJlcihsYXN0TWVzc2FnZVByb2plY3RJZClcbiAgICAgICAgcHJvamVjdFRvUmVxdWVzdCA9IE51bWJlci5pc0Zpbml0ZShwYXJzZWQpID8gcGFyc2VkIDogbnVsbFxuICAgICAgfVxuICAgICAgLy8gU2kgbm8gaGF5IMO6bHRpbW8gbWVuc2FqZSwgdXNhciBlbCBjb250ZXh0byBnbG9iYWxcbiAgICAgIGVsc2UgaWYgKGNvbnRleHRQcm9qZWN0SWQgIT0gbnVsbCkge1xuICAgICAgICBwcm9qZWN0VG9SZXF1ZXN0ID0gY29udGV4dFByb2plY3RJZFxuICAgICAgfVxuXG4gICAgICBjb25zdCBwcm9qZWN0cyA9IGF3YWl0IGZldGNoUHJvamVjdHMoW3Byb2plY3RUb1JlcXVlc3RdKVxuXG4gICAgICBjb25zdCBwYXlsb2FkRmFxSWQgPSBmYXFJZCA/PyBvcHRpb25zLmZhcUlkXG5cbiAgICAgIGNvbnN0IHBheWxvYWREYXRhID0ge1xuICAgICAgICBtZXNzYWdlOiBmaW5hbE1lc3NhZ2UsXG4gICAgICAgIGhpc3RvcnksXG4gICAgICAgIHByb2plY3RJZDogcHJvamVjdFRvUmVxdWVzdCxcbiAgICAgICAgbGFuZzogYXV0aFVzZXIubGFuZyxcbiAgICAgICAgdXNlcklkOiBhdXRoVXNlci5pZC50b1N0cmluZygpLFxuICAgICAgICBmaXJzdE5hbWU6IGF1dGhVc2VyLmZpcnN0TmFtZSxcbiAgICAgICAgbGFzdE5hbWU6IGF1dGhVc2VyLmxhc3ROYW1lLFxuICAgICAgICBjb21wYW55SWQ6IGF1dGhVc2VyLmNvbXBhbnlfaWQudG9TdHJpbmcoKSxcbiAgICAgICAgY2hhdElkOiBjdXJyZW50Q2hhdElkLmN1cnJlbnQsXG4gICAgICAgIG1lc3NhZ2VJZDogY3VycmVudE1lc3NhZ2VJZC5jdXJyZW50LFxuICAgICAgICBhZ2VudE5hbWU6IGFnZW50Py5uYW1lIHx8ICcnLFxuICAgICAgICBhZ2VudElkOiBjdXJyZW50QWdlbnRGcm9tTWVzc2FnZXMgfHwgYWdlbnQ/LmlkISxcbiAgICAgICAgaXNXZWJTZWFyY2hBY3RpdmU6IGlzV2ViU2VhcmNoQWN0aXZlUmVmLmN1cnJlbnQsXG4gICAgICAgIGlzRGVlcFNlYXJjaEFjdGl2ZTogaXNEZWVwU2VhcmNoQWN0aXZlUmVmLmN1cnJlbnQsXG4gICAgICAgIC4uLihjbGllbnQ/LmlkXG4gICAgICAgICAgPyB7IGNsaWVudElkOiBjbGllbnQuaWQsIC4uLihjbGllbnQubmFtZSA/IHsgY2xpZW50TmFtZTogY2xpZW50Lm5hbWUgfSA6IHt9KSB9XG4gICAgICAgICAgOiBwcm9qZWN0Py5jbGllbnQ/LmlkXG4gICAgICAgICAgICA/IHsgY2xpZW50SWQ6IHByb2plY3QuY2xpZW50LmlkLCAuLi4ocHJvamVjdC5jbGllbnQubmFtZSA/IHsgY2xpZW50TmFtZTogcHJvamVjdC5jbGllbnQubmFtZSB9IDoge30pIH1cbiAgICAgICAgICAgIDoge30pLFxuICAgICAgICAuLi4ocHJvamVjdHM/Lmxlbmd0aCA/IHsgcHJvamVjdE5hbWU6IHByb2plY3RzWzBdLm5hbWUgfSA6IHt9KSxcbiAgICAgICAgLi4uKGF0dGFjaG1lbnRzLmxlbmd0aCA+IDAgPyB7IGF0dGFjaG1lbnRzIH0gOiB7fSksXG4gICAgICAgIC4uLihwYXlsb2FkRmFxSWQgPyB7IGZhcUlkOiBwYXlsb2FkRmFxSWQgfSA6IHt9KSxcbiAgICAgICAgLi4uKGFnZW50Py5lbnRpdHkgIT0gbnVsbCA/IHsgYWdlbnRFbnRpdHk6IGFnZW50LmVudGl0eSB9IDoge30pLFxuICAgICAgfVxuXG4gICAgICBhc2tNYWlhKHBheWxvYWREYXRhKVxuICAgIH0sXG4gICAgW1xuICAgICAgYWRkTWVzc2FnZSxcbiAgICAgIGV2ZW50LFxuICAgICAgYXNrTWFpYSxcbiAgICAgIHByb2plY3QsXG4gICAgICBjbGllbnQsXG4gICAgICBhdXRoVXNlcixcbiAgICAgIGFnZW50LFxuICAgICAgdCxcbiAgICAgIHdhaXRpbmdSZXNwb25zZSxcbiAgICAgIGxvYWRpbmdNZXNzYWdlcyxcbiAgICAgIGlzV2ViU2VhcmNoQWN0aXZlLFxuICAgICAgaXNEZWVwU2VhcmNoQWN0aXZlLFxuICAgIF1cbiAgKVxuXG4gIGNvbnN0IGNoYW5nZVByb2plY3QgPSB1c2VDYWxsYmFjayhcbiAgICAob3B0aW9uOiBQcm9qZWN0KSA9PiB7XG4gICAgICBpZiAoIWN1cnJlbnRVc2VyUXVlc3Rpb24uY3VycmVudCkgcmV0dXJuXG5cbiAgICAgIGlmIChvcHRpb24uaWQgIT09IHByb2plY3Q/LmlkKSB7XG4gICAgICAgIHNldFByb2plY3Qob3B0aW9uKVxuICAgICAgfVxuXG4gICAgICBpZiAocHJvamVjdCAmJiBjdXJyZW50VXNlclF1ZXN0aW9uLmN1cnJlbnQpIHtcbiAgICAgICAgY29uc3QgaGlzdG9yeSA9IG1lc3NhZ2VzUmVmLmN1cnJlbnQubWFwKGhpc3RvcnlNZXNzYWdlID0+ICh7XG4gICAgICAgICAgY29udGVudDogaGlzdG9yeU1lc3NhZ2UubWVzc2FnZSxcbiAgICAgICAgICByb2xlOiBoaXN0b3J5TWVzc2FnZS51c2VyLmlkID09PSBhdXRoVXNlci5pZC50b1N0cmluZygpID8gQ2hhdEhpc3RvcnlSb2xlLlVTRVIgOiBDaGF0SGlzdG9yeVJvbGUuQVNTSVNUQU5ULFxuICAgICAgICB9KSlcblxuICAgICAgICBhc2tNYWlhKHtcbiAgICAgICAgICBtZXNzYWdlOiBjdXJyZW50VXNlclF1ZXN0aW9uLmN1cnJlbnQsXG4gICAgICAgICAgaGlzdG9yeSxcbiAgICAgICAgICBwcm9qZWN0SWQ6IG9wdGlvbi5pZCxcbiAgICAgICAgICBsYW5nOiBhdXRoVXNlci5sYW5nLFxuICAgICAgICAgIHVzZXJJZDogYXV0aFVzZXIuaWQudG9TdHJpbmcoKSxcbiAgICAgICAgICBmaXJzdE5hbWU6IGF1dGhVc2VyLmZpcnN0TmFtZSxcbiAgICAgICAgICBsYXN0TmFtZTogYXV0aFVzZXIubGFzdE5hbWUsXG4gICAgICAgICAgY29tcGFueUlkOiBhdXRoVXNlci5jb21wYW55X2lkLnRvU3RyaW5nKCksXG4gICAgICAgICAgY2hhdElkOiBjdXJyZW50Q2hhdElkLmN1cnJlbnQsXG4gICAgICAgICAgbWVzc2FnZUlkOiBjdXJyZW50TWVzc2FnZUlkLmN1cnJlbnQsXG4gICAgICAgICAgYWdlbnROYW1lOiBhZ2VudD8ubmFtZSB8fCAnJyxcbiAgICAgICAgICBhZ2VudElkOiBhZ2VudD8uaWQgfHwgJycsXG4gICAgICAgICAgaXNXZWJTZWFyY2hBY3RpdmU6IGlzV2ViU2VhcmNoQWN0aXZlUmVmLmN1cnJlbnQsXG4gICAgICAgICAgaXNEZWVwU2VhcmNoQWN0aXZlOiBpc0RlZXBTZWFyY2hBY3RpdmVSZWYuY3VycmVudCxcbiAgICAgICAgICAuLi4oYWdlbnQ/LmVudGl0eSAhPSBudWxsID8geyBhZ2VudEVudGl0eTogYWdlbnQuZW50aXR5IH0gOiB7fSksXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfSxcbiAgICBbcHJvamVjdCwgc2V0UHJvamVjdCwgYXNrTWFpYSwgYXV0aFVzZXIsIGlzV2ViU2VhcmNoQWN0aXZlLCBhZ2VudF1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZUZlZWRiYWNrID0gdXNlQ2FsbGJhY2soYXN5bmMgKGZlZWRiYWNrUHJvcDogRmVlZGJhY2ssIGNoYXRNZXNzYWdlSWQ6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgbWFpYS5DaGF0cy53YXNIZWxwZnVsQ2hhdChjaGF0TWVzc2FnZUlkLCBmZWVkYmFja1Byb3AgPT09IEZlZWRiYWNrLlRIVU1CU19VUClcbiAgICBpZiAocmVzcG9uc2UpIHtcbiAgICAgIG1lc3NhZ2VzUmVmLmN1cnJlbnQgPSBtZXNzYWdlc1JlZi5jdXJyZW50Lm1hcChtZXNzYWdlID0+IHtcbiAgICAgICAgaWYgKG1lc3NhZ2UuaWQgPT09IGNoYXRNZXNzYWdlSWQgJiYgbWVzc2FnZS5yb2xlID09PSAnYXNzaXN0YW50Jykge1xuICAgICAgICAgIHJldHVybiB7IC4uLm1lc3NhZ2UsIHdhc0hlbHBmdWw6IGZlZWRiYWNrUHJvcCA9PT0gRmVlZGJhY2suVEhVTUJTX1VQIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbWVzc2FnZVxuICAgICAgfSlcbiAgICB9XG4gIH0sIFtdKVxuXG4gIGNvbnN0IGhhbmRsZUFwcHJvdmFsRGVjaXNpb24gPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAoXG4gICAgICB0aHJlYWRJZDogc3RyaW5nLCAvLyBDaGFuZ2VkIGZyb20gYXBwcm92YWw6IEFwcHJvdmFsUmVxdWVzdFxuICAgICAgZGVjaXNpb246ICdhcHByb3ZlJyB8ICdyZWplY3QnLFxuICAgICAgZWRpdGVkQWN0aW9ucz86IEFycmF5PHsgdG9vbF9uYW1lOiBzdHJpbmc7IGFyZ3M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IH0+XG4gICAgKSA9PiB7XG4gICAgICAvLyBCdXNjYXIgZWwgbWVuc2FqZSBxdWUgY29udGllbmUgZXN0ZSB0aHJlYWRJZCBlbiBzdXMgcGVuZGluZ19hY3Rpb25zXG4gICAgICBjb25zdCBtZXNzYWdlV2l0aEFwcHJvdmFsID0gbWVzc2FnZXNSZWYuY3VycmVudC5maW5kKG0gPT5cbiAgICAgICAgbS5hcHByb3ZhbD8ucGVuZGluZ19hY3Rpb25zPy5zb21lKGFjdGlvbiA9PiBhY3Rpb24udGhyZWFkX2lkID09PSB0aHJlYWRJZClcbiAgICAgIClcblxuICAgICAgaWYgKCFtZXNzYWdlV2l0aEFwcHJvdmFsIHx8ICFtZXNzYWdlV2l0aEFwcHJvdmFsLmFwcHJvdmFsKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ05vIHNlIGVuY29udHLDsyBtZW5zYWplIGNvbiBhcHByb3ZhbCBwYXJhIHRocmVhZF9pZDonLCB0aHJlYWRJZClcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHsgYXBwcm92YWwgfSA9IG1lc3NhZ2VXaXRoQXBwcm92YWxcbiAgICAgIGNvbnN0IG1lc3NhZ2VJZCA9IG1lc3NhZ2VXaXRoQXBwcm92YWwuaWRcbiAgICAgIGNvbnN0IGhhc0NyZWF0ZUFnZW50QWN0aW9uID0gYXBwcm92YWwucGVuZGluZ19hY3Rpb25zPy5zb21lKGFjdGlvbiA9PiBhY3Rpb24udG9vbF9uYW1lID09PSAnY3JlYXRlX2FnZW50JylcbiAgICAgIGNvbnN0IHNob3VsZFJlZmV0Y2hBZ2VudHNBZnRlckNvbXBsZXRpb24gPSBkZWNpc2lvbiAhPT0gJ3JlamVjdCcgJiYgaGFzQ3JlYXRlQWdlbnRBY3Rpb25cblxuICAgICAgLy8gVXBkYXRlIG1lc3NhZ2Ugc3RhdHVzIGltbWVkaWF0ZWx5XG4gICAgICBtZXNzYWdlc1JlZi5jdXJyZW50ID0gbWVzc2FnZXNSZWYuY3VycmVudC5tYXAobWVzc2FnZSA9PiB7XG4gICAgICAgIGlmIChtZXNzYWdlLmlkID09PSBtZXNzYWdlSWQpIHtcbiAgICAgICAgICBjb25zdCBuZXdTdGF0dXMgPSBkZWNpc2lvbiA9PT0gJ2FwcHJvdmUnID8gJ2FwcHJvdmVkJyA6ICdyZWplY3RlZCdcbiAgICAgICAgICByZXR1cm4geyAuLi5tZXNzYWdlLCBhcHByb3ZhbFN0YXR1czogbmV3U3RhdHVzIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbWVzc2FnZVxuICAgICAgfSlcblxuICAgICAgLy8gVHJpZ2dlciByZS1yZW5kZXJcbiAgICAgIGNvbnN0IGV4aXN0aW5nTWVzc2FnZSA9IG1lc3NhZ2VzUmVmLmN1cnJlbnQuZmluZChtID0+IG0uaWQgPT09IG1lc3NhZ2VJZClcbiAgICAgIGlmIChleGlzdGluZ01lc3NhZ2UpIHtcbiAgICAgICAgY29uc3QgbmV3U3RhdHVzID0gZGVjaXNpb24gPT09ICdhcHByb3ZlJyA/ICdhcHByb3ZlZCcgOiAncmVqZWN0ZWQnXG4gICAgICAgIGFkZE1lc3NhZ2UoeyAuLi5leGlzdGluZ01lc3NhZ2UsIGFwcHJvdmFsU3RhdHVzOiBuZXdTdGF0dXMgfSlcbiAgICAgIH1cblxuICAgICAgLy8gRm9yIGJvdGggYXBwcm92ZSBhbmQgcmVqZWN0LCBjYWxsIGNvbnRpbnVlLXRocmVhZCBlbmRwb2ludCB3aXRoIHNwZWNpZmljIHRocmVhZF9pZFxuICAgICAgaXNQcm9jZXNzaW5nUmVmLmN1cnJlbnQgPSB0cnVlXG4gICAgICBjdXJyZW50TWVzc2FnZUlkLmN1cnJlbnQgPSB1dWlkdjQoKVxuXG4gICAgICAvLyBBZGQgbG9hZGluZyBmb3IgdGhpcyB0aHJlYWRcbiAgICAgIHNldEFjdGl2ZUxvYWRpbmdzKHByZXYgPT4gKHtcbiAgICAgICAgLi4ucHJldixcbiAgICAgICAgW3RocmVhZElkXTogdCgnY2hhdC5wcm9jZXNzaW5nJyksXG4gICAgICB9KSlcblxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBtYWlhLk9yY2hlc3RyYXRvci5jb250aW51ZVRocmVhZCh7XG4gICAgICAgICAgdGhyZWFkSWQsIC8vIFVzZSBzcGVjaWZpYyBhY3Rpb24gdGhyZWFkX2lkXG4gICAgICAgICAgc2Vzc2lvbklkOiBhcHByb3ZhbC5zZXNzaW9uX2lkLFxuICAgICAgICAgIGRlY2lzaW9uOiBlZGl0ZWRBY3Rpb25zID8gJ2VkaXQnIDogZGVjaXNpb24sXG4gICAgICAgICAgZWRpdGVkQWN0aW9ucyxcbiAgICAgICAgICBhZ2VudElkOiBhZ2VudD8uaWQgfHwgJycsXG4gICAgICAgICAgbGFuZzogYXV0aFVzZXIubGFuZyxcbiAgICAgICAgfSlcblxuICAgICAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICAgICAgaGFuZGxlU3RyZWFtRXJyb3IoKVxuICAgICAgICAgIC8vIFJlbW92ZSBsb2FkaW5nIG9uIGVycm9yXG4gICAgICAgICAgc2V0QWN0aXZlTG9hZGluZ3MocHJldiA9PiB7XG4gICAgICAgICAgICBjb25zdCBuZXdMb2FkaW5ncyA9IHsgLi4ucHJldiB9XG4gICAgICAgICAgICBkZWxldGUgbmV3TG9hZGluZ3NbdGhyZWFkSWRdXG4gICAgICAgICAgICByZXR1cm4gbmV3TG9hZGluZ3NcbiAgICAgICAgICB9KVxuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgLy8gUHJvY2VzcyBTU0UgbWFudWFsbHkgdG8gdHJhY2sgbG9hZGluZyBwZXIgdGhyZWFkXG4gICAgICAgIGF3YWl0IHByb2Nlc3NTU0VTdHJlYW0ocmVzcG9uc2UsIHRocmVhZElkLCB7XG4gICAgICAgICAgb25Ub2tlbjogKGNvbnRlbnQ6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgaGFuZGxlU3RyZWFtVXBkYXRlKGNvbnRlbnQsIG51bGwsICcnKVxuICAgICAgICAgIH0sXG4gICAgICAgICAgb25Ob2RlOiAobWVzc2FnZTogc3RyaW5nLCBjdXJyZW50VGhyZWFkSWQ6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgLy8gTW9zdHJhciBub21icmUgc29sbyBwYXJhIGNyZWF0ZV90YXNrLCBlbCByZXN0byBtdWVzdHJhIGdlbsOpcmljb1xuICAgICAgICAgICAgY29uc3QgZGlzcGxheU1zZyA9IG1lc3NhZ2UuaW5jbHVkZXMoJ2NyZWF0ZV90YXNrJykgPyBtZXNzYWdlIDogdCgnY2hhdC5leGVjdXRpbmdBY3Rpb24nKVxuICAgICAgICAgICAgc2V0QWN0aXZlTG9hZGluZ3MocHJldiA9PiAoe1xuICAgICAgICAgICAgICAuLi5wcmV2LFxuICAgICAgICAgICAgICBbY3VycmVudFRocmVhZElkXTogZGlzcGxheU1zZyxcbiAgICAgICAgICAgIH0pKVxuICAgICAgICAgIH0sXG4gICAgICAgICAgb25Db21wbGV0ZTogKFxuICAgICAgICAgICAgZmluYWxDb250ZW50OiBzdHJpbmcsXG4gICAgICAgICAgICBzb3VyY2VzOiBhbnksXG4gICAgICAgICAgICBtZW1vcnlTZXNzaW9uSWQ6IHN0cmluZyxcbiAgICAgICAgICAgIGN1cnJlbnRUaHJlYWRJZDogc3RyaW5nLFxuICAgICAgICAgICAgc3VnZ2VzdGlvbnM/OiBzdHJpbmdbXSB8IG51bGxcbiAgICAgICAgICApID0+IHtcbiAgICAgICAgICAgIGhhbmRsZVN0cmVhbUZpbmlzaChmaW5hbENvbnRlbnQsIHNvdXJjZXMsIG1lbW9yeVNlc3Npb25JZCwgc3VnZ2VzdGlvbnMpXG4gICAgICAgICAgICBpZiAoc2hvdWxkUmVmZXRjaEFnZW50c0FmdGVyQ29tcGxldGlvbikge1xuICAgICAgICAgICAgICBkb2N1bWVudC5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgncmVmZXRjaC1hZ2VudHMtY3VzdG9tJykpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzZXRBY3RpdmVMb2FkaW5ncyhwcmV2ID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgbmV3TG9hZGluZ3MgPSB7IC4uLnByZXYgfVxuICAgICAgICAgICAgICBkZWxldGUgbmV3TG9hZGluZ3NbY3VycmVudFRocmVhZElkXVxuICAgICAgICAgICAgICByZXR1cm4gbmV3TG9hZGluZ3NcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfSxcbiAgICAgICAgICBvbkVycm9yOiAoZXJyb3I6IGFueSwgY3VycmVudFRocmVhZElkOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1NTRSBFcnJvcjonLCBlcnJvcilcbiAgICAgICAgICAgIGhhbmRsZVN0cmVhbUVycm9yKClcbiAgICAgICAgICAgIHNldEFjdGl2ZUxvYWRpbmdzKHByZXYgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBuZXdMb2FkaW5ncyA9IHsgLi4ucHJldiB9XG4gICAgICAgICAgICAgIGRlbGV0ZSBuZXdMb2FkaW5nc1tjdXJyZW50VGhyZWFkSWRdXG4gICAgICAgICAgICAgIHJldHVybiBuZXdMb2FkaW5nc1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9LFxuICAgICAgICB9KVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaGFuZGxlU3RyZWFtRXJyb3IoKVxuICAgICAgICAvLyBSZW1vdmUgbG9hZGluZyBvbiBlcnJvclxuICAgICAgICBzZXRBY3RpdmVMb2FkaW5ncyhwcmV2ID0+IHtcbiAgICAgICAgICBjb25zdCBuZXdMb2FkaW5ncyA9IHsgLi4ucHJldiB9XG4gICAgICAgICAgZGVsZXRlIG5ld0xvYWRpbmdzW3RocmVhZElkXVxuICAgICAgICAgIHJldHVybiBuZXdMb2FkaW5nc1xuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0sXG4gICAgW2F1dGhVc2VyLCBhZ2VudCwgYWRkTWVzc2FnZSwgaGFuZGxlU3RyZWFtRXJyb3IsIGhhbmRsZVN0cmVhbVVwZGF0ZSwgaGFuZGxlU3RyZWFtRmluaXNoXVxuICApXG5cbiAgY29uc3QgaW5pdGlhbGl6ZUNoYXQgPSB1c2VDYWxsYmFjayhhc3luYyAoKSA9PiB7XG4gICAgaWYgKCFmaXJzdFRpbWVSZWYuY3VycmVudCkge1xuICAgICAgZmlyc3RUaW1lUmVmLmN1cnJlbnQgPSB0cnVlXG4gICAgfVxuICAgIGlmIChpbml0aWFsQ2hhdElkKSB7XG4gICAgICBhd2FpdCBsb2FkTWVzc2FnZXMoKVxuICAgIH0gZWxzZSBpZiAodXNlckluaXRpYWxNZXNzYWdlKSB7XG4gICAgICBjb25zdCBoYXNJbml0aWFsTWVzc2FnZSA9IEJvb2xlYW4odXNlckluaXRpYWxNZXNzYWdlLm1lc3NhZ2U/LnRyaW0oKSlcbiAgICAgIGNvbnN0IGhhc0luaXRpYWxBdHRhY2htZW50cyA9IEJvb2xlYW4odXNlckluaXRpYWxNZXNzYWdlLmF0dGFjaG1lbnRzPy5sZW5ndGgpXG4gICAgICBjb25zdCBoYXNJbml0aWFsRmFxID0gQm9vbGVhbih1c2VySW5pdGlhbE1lc3NhZ2UuZmFxSWQpXG5cbiAgICAgIGlmICghaGFzSW5pdGlhbE1lc3NhZ2UgJiYgIWhhc0luaXRpYWxBdHRhY2htZW50cyAmJiAhaGFzSW5pdGlhbEZhcSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgY29uc3QgaGlzdG9yeSA9IG1lc3NhZ2VzUmVmLmN1cnJlbnQubWFwKGhpc3RvcnlNZXNzYWdlID0+ICh7XG4gICAgICAgIGNvbnRlbnQ6IGhpc3RvcnlNZXNzYWdlLm1lc3NhZ2UsXG4gICAgICAgIHJvbGU6IGhpc3RvcnlNZXNzYWdlLnVzZXIuaWQgPT09IGF1dGhVc2VyLmlkLnRvU3RyaW5nKCkgPyBDaGF0SGlzdG9yeVJvbGUuVVNFUiA6IENoYXRIaXN0b3J5Um9sZS5BU1NJU1RBTlQsXG4gICAgICB9KSlcblxuICAgICAgYXNrTWFpYSh7XG4gICAgICAgIG1lc3NhZ2U6IHVzZXJJbml0aWFsTWVzc2FnZS5tZXNzYWdlLFxuICAgICAgICBoaXN0b3J5LFxuICAgICAgICBwcm9qZWN0SWQ6IHByb2plY3Q/LmlkIHx8IG51bGwsXG4gICAgICAgIGxhbmc6IGF1dGhVc2VyLmxhbmcsXG4gICAgICAgIHVzZXJJZDogYXV0aFVzZXIuaWQudG9TdHJpbmcoKSxcbiAgICAgICAgZmlyc3ROYW1lOiBhdXRoVXNlci5maXJzdE5hbWUsXG4gICAgICAgIGxhc3ROYW1lOiBhdXRoVXNlci5sYXN0TmFtZSxcbiAgICAgICAgY29tcGFueUlkOiBhdXRoVXNlci5jb21wYW55X2lkLnRvU3RyaW5nKCksXG4gICAgICAgIGNoYXRJZDogY3VycmVudENoYXRJZC5jdXJyZW50LFxuICAgICAgICBtZXNzYWdlSWQ6IGN1cnJlbnRNZXNzYWdlSWQuY3VycmVudCxcbiAgICAgICAgYWdlbnROYW1lOiBhZ2VudD8ubmFtZSEsXG4gICAgICAgIGFnZW50SWQ6IGFnZW50Py5pZCEsXG4gICAgICAgIGlzV2ViU2VhcmNoQWN0aXZlOiBpc1dlYlNlYXJjaEFjdGl2ZVJlZi5jdXJyZW50LFxuICAgICAgICBpc0RlZXBTZWFyY2hBY3RpdmU6IGlzRGVlcFNlYXJjaEFjdGl2ZVJlZi5jdXJyZW50LFxuICAgICAgICAuLi4oY2xpZW50Py5pZCA/IHsgY2xpZW50SWQ6IGNsaWVudC5pZCB9IDogcHJvamVjdD8uY2xpZW50Py5pZCA/IHsgY2xpZW50SWQ6IHByb2plY3QuY2xpZW50LmlkIH0gOiB7fSksXG4gICAgICAgIC4uLihwcm9qZWN0Py5uYW1lID8geyBwcm9qZWN0TmFtZTogcHJvamVjdC5uYW1lIH0gOiB7fSksXG4gICAgICAgIC4uLihwcm9qZWN0Py5jbGllbnQ/Lm5hbWVcbiAgICAgICAgICA/IHsgY2xpZW50TmFtZTogcHJvamVjdC5jbGllbnQubmFtZSB9XG4gICAgICAgICAgOiBjbGllbnQ/Lm5hbWVcbiAgICAgICAgICAgID8geyBjbGllbnROYW1lOiBjbGllbnQubmFtZSB9XG4gICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgLi4uKHVzZXJJbml0aWFsTWVzc2FnZS5hdHRhY2htZW50cyA/IHsgYXR0YWNobWVudHM6IHVzZXJJbml0aWFsTWVzc2FnZS5hdHRhY2htZW50cyB9IDoge30pLFxuICAgICAgICAuLi4odXNlckluaXRpYWxNZXNzYWdlLmZhcUlkID8geyBmYXFJZDogdXNlckluaXRpYWxNZXNzYWdlLmZhcUlkIH0gOiB7fSksXG4gICAgICAgIC4uLihhZ2VudD8uZW50aXR5ICE9IG51bGwgPyB7IGFnZW50RW50aXR5OiBhZ2VudC5lbnRpdHkgfSA6IHt9KSxcbiAgICAgIH0pXG4gICAgfVxuICB9LCBbXG4gICAgaW5pdGlhbENoYXRJZCxcbiAgICB1c2VySW5pdGlhbE1lc3NhZ2UsXG4gICAgcHJvamVjdCxcbiAgICBjbGllbnQsXG4gICAgYXV0aFVzZXIsXG4gICAgYWdlbnQsXG4gICAgYXNrTWFpYSxcbiAgICBpc1dlYlNlYXJjaEFjdGl2ZSxcbiAgICBpc0RlZXBTZWFyY2hBY3RpdmUsXG4gIF0pXG5cbiAgY29uc3QgcmVzZXRDaGF0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGN1cnJlbnRNZXNzYWdlSWQuY3VycmVudCA9IHV1aWR2NCgpXG4gICAgY3VycmVudFVzZXJRdWVzdGlvbi5jdXJyZW50ID0gbnVsbFxuICAgIGN1cnJlbnRDaGF0SWQuY3VycmVudCA9IHV1aWR2NCgpXG4gICAgcmVwb3J0ZWRFdmVudC5jdXJyZW50ID0gZmFsc2VcbiAgfSwgW10pXG5cbiAgY29uc3Qgc3RvcEdlbmVyYXRpb24gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc3RvcFN0cmVhbWluZygpXG4gICAgaXNQcm9jZXNzaW5nUmVmLmN1cnJlbnQgPSBmYWxzZVxuICB9LCBbc3RvcFN0cmVhbWluZ10pXG5cbiAgcmV0dXJuIHtcbiAgICBtZXNzYWdlcyxcbiAgICBsb2FkaW5nTWVzc2FnZXMsXG4gICAgaXNMb2FkaW5nTW9yZU1lc3NhZ2VzLFxuICAgIHdhaXRpbmdSZXNwb25zZSxcbiAgICBpc1dyaXRpbmcsXG4gICAgbG9hZGluZ01lc3NhZ2UsXG4gICAgYWN0aXZlTG9hZGluZ3MsXG4gICAgY3VycmVudFByb2plY3QsXG4gICAgY3VycmVudENoYXRJZDogY3VycmVudENoYXRJZC5jdXJyZW50LFxuICAgIGN1cnJlbnRNZXNzYWdlSWQ6IGN1cnJlbnRNZXNzYWdlSWQuY3VycmVudCxcblxuICAgIHNlbmRNZXNzYWdlLFxuICAgIGNoYW5nZVByb2plY3QsXG4gICAgaGFuZGxlRmVlZGJhY2ssXG4gICAgaGFuZGxlQXBwcm92YWxEZWNpc2lvbixcbiAgICBoYW5kbGVTY3JvbGwsXG4gICAgaW5pdGlhbGl6ZUNoYXQsXG4gICAgcmVzZXRDaGF0LFxuICAgIHN0b3BHZW5lcmF0aW9uLFxuXG4gICAgaXNEaXNhYmxlZDogd2FpdGluZ1Jlc3BvbnNlIHx8IGxvYWRpbmdNZXNzYWdlcyxcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSxXQUFXLEVBQUVDLE1BQU0sRUFBRUMsU0FBUyxFQUFFQyxRQUFRLFFBQVEsT0FBTztBQUNoRSxTQUFTQyxFQUFFLElBQUlDLE1BQU0sUUFBUSxNQUFNO0FBQ25DLFNBQVNDLGVBQWUsUUFBUSxvQkFBb0I7QUFDcEQsU0FBU0MscUJBQXFCLFFBQVEsMEJBQTBCO0FBQ2hFLFNBQVNDLElBQUksUUFBUSxTQUFTO0FBRzlCLFNBQVNDLE9BQU8sUUFBaUIsd0JBQXdCO0FBQ3pELFNBQVNDLGdCQUFnQixRQUFRLDhCQUE4QjtBQUMvRCxTQUFTQyxNQUFNLEVBQUVDLFFBQVEsUUFBUSxhQUFhO0FBQzlDLE9BQU9DLElBQUksTUFBTSxxQkFBcUI7QUFDdEMsU0FBU0MsUUFBUSxRQUFRLDREQUE0RDtBQUNyRixTQUF1Q0MsZUFBZSxRQUF5QixrQkFBa0I7QUFHakcsU0FBU0MsV0FBVyxRQUFRLGdCQUFnQjtBQUM1QyxTQUFTQyxpQkFBaUIsUUFBUSxzQkFBc0I7QUFDeEQsU0FBU0Msc0JBQXNCLFFBQVEsMEJBQTBCO0FBSWpFLElBQU1DLHdCQUF3QixHQUFHLFNBQTNCQSx3QkFBd0JBLENBQUlDLG9CQUEyQyxFQUFLO0VBQUEsSUFBQUMsb0JBQUE7RUFDaEYsSUFBSUMsS0FBSyxDQUFDQyxPQUFPLENBQUNILG9CQUFvQixDQUFDLEVBQUU7SUFDdkMsT0FBTztNQUFFSSxXQUFX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
|