@copilotkitnext/angular 0.0.4 → 0.0.6
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/dist/components/chat/copilot-chat-assistant-message.component.d.ts +1 -0
- package/dist/core/copilotkit.providers.d.ts +1 -1
- package/dist/core/copilotkit.service.d.ts +5 -5
- package/dist/core/copilotkit.types.d.ts +8 -10
- package/dist/directives/copilotkit-frontend-tool.directive.d.ts +1 -1
- package/dist/esm2022/components/chat/copilot-chat-assistant-message.component.mjs +11 -5
- package/dist/esm2022/components/chat/copilot-chat-input.component.mjs +2 -2
- package/dist/esm2022/components/chat/copilot-chat-textarea.component.mjs +2 -2
- package/dist/esm2022/components/chat/copilot-chat-tool-calls-view.component.mjs +14 -8
- package/dist/esm2022/components/chat/copilot-chat.component.mjs +10 -3
- package/dist/esm2022/components/copilotkit-tool-render.component.mjs +7 -10
- package/dist/esm2022/core/copilotkit.providers.mjs +1 -1
- package/dist/esm2022/core/copilotkit.service.mjs +6 -22
- package/dist/esm2022/core/copilotkit.types.mjs +2 -1
- package/dist/esm2022/directives/copilotkit-frontend-tool.directive.mjs +1 -3
- package/dist/esm2022/directives/copilotkit-human-in-the-loop.directive.mjs +1 -2
- package/dist/esm2022/lib/slots/copilot-slot.component.mjs +15 -5
- package/dist/esm2022/lib/slots/slot.utils.mjs +14 -5
- package/dist/esm2022/utils/frontend-tool.utils.mjs +1 -5
- package/dist/esm2022/utils/human-in-the-loop.utils.mjs +4 -7
- package/dist/fesm2022/copilotkitnext-angular.mjs +76 -65
- package/dist/fesm2022/copilotkitnext-angular.mjs.map +1 -1
- package/dist/utils/frontend-tool.utils.d.ts +1 -1
- package/package.json +3 -3
|
@@ -131,13 +131,19 @@ export class CopilotChatToolCallsViewComponent {
|
|
|
131
131
|
// Create the component
|
|
132
132
|
const componentRef = this.container.createComponent(componentClass);
|
|
133
133
|
this.componentRefs.set(toolCallId, componentRef);
|
|
134
|
-
//
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
134
|
+
// Determine declared inputs to avoid Angular NG0303 console errors
|
|
135
|
+
const cmpDef = componentClass.ɵcmp;
|
|
136
|
+
const declaredInputs = new Set(Object.keys(cmpDef?.inputs ?? {}));
|
|
137
|
+
// Prefer a single 'props' input if declared
|
|
138
|
+
if (declaredInputs.has('props')) {
|
|
139
|
+
componentRef.setInput('props', props);
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
// Otherwise, set only inputs that the component actually declares
|
|
143
|
+
for (const [key, value] of Object.entries(props)) {
|
|
144
|
+
if (declaredInputs.has(key)) {
|
|
145
|
+
componentRef.setInput(key, value);
|
|
146
|
+
}
|
|
141
147
|
}
|
|
142
148
|
}
|
|
143
149
|
// Trigger change detection
|
|
@@ -213,4 +219,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
213
219
|
type: ViewChild,
|
|
214
220
|
args: ["dynamicContainer", { read: ViewContainerRef }]
|
|
215
221
|
}] } });
|
|
216
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29waWxvdC1jaGF0LXRvb2wtY2FsbHMtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9jaGF0L2NvcGlsb3QtY2hhdC10b29sLWNhbGxzLXZpZXcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLGdCQUFnQixFQUVoQixNQUFNLEVBQ04sU0FBUyxFQUlULFdBQVcsRUFFWCx1QkFBdUIsRUFDdkIsTUFBTSxHQUdQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQU8vQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7OztBQU0xRDs7OztHQUlHO0FBc0JILE1BQU0sT0FBTyxpQ0FBaUM7SUFHakIsT0FBTyxDQUFvQjtJQUM3QyxRQUFRLEdBQWMsRUFBRSxDQUFDO0lBQ3pCLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFHbkIsU0FBUyxDQUFvQjtJQUU3QixVQUFVLEdBQTZCLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRTtRQUN2RSxRQUFRLEVBQUUsSUFBSTtLQUNmLENBQUMsQ0FBQztJQUNLLGFBQWEsR0FBbUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUMxRCxhQUFhLEdBR2pCLElBQUksR0FBRyxFQUFFLENBQUM7SUFFZCw2QkFBNkI7SUFDckIsYUFBYSxHQUFHLE1BQU0sQ0FBMEIsSUFBSSxDQUFDLENBQUM7SUFDdEQsY0FBYyxHQUFHLE1BQU0sQ0FBWSxFQUFFLENBQUMsQ0FBQztJQUN2QyxlQUFlLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRXhDLGVB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Qy9DLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7R0FjVDtpQkFDRjs4QkFJNEIsT0FBTztzQkFBakMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ2hCLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFHRSxTQUFTO3NCQURoQixTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgVmlld0NvbnRhaW5lclJlZixcbiAgQ29tcG9uZW50UmVmLFxuICBpbmplY3QsXG4gIFZpZXdDaGlsZCxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgT25DaGFuZ2VzLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBUZW1wbGF0ZVJlZixcbiAgVHlwZSxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIHNpZ25hbCxcbiAgY29tcHV0ZWQsXG4gIE9uRGVzdHJveSxcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB0eXBlIHtcbiAgQXNzaXN0YW50TWVzc2FnZSxcbiAgTWVzc2FnZSxcbiAgVG9vbENhbGwsXG4gIFRvb2xNZXNzYWdlLFxufSBmcm9tIFwiQGFnLXVpL2NvcmVcIjtcbmltcG9ydCB7IFRvb2xDYWxsU3RhdHVzIH0gZnJvbSBcIkBjb3BpbG90a2l0bmV4dC9jb3JlXCI7XG5pbXBvcnQgeyBDb3BpbG90S2l0U2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL2NvcGlsb3RraXQuc2VydmljZVwiO1xuaW1wb3J0IHsgcGFydGlhbEpTT05QYXJzZSB9IGZyb20gXCJAY29waWxvdGtpdG5leHQvc2hhcmVkXCI7XG5pbXBvcnQgdHlwZSB7XG4gIFRvb2xDYWxsUHJvcHMsXG4gIFRvb2xDYWxsUmVuZGVyLFxufSBmcm9tIFwiLi4vLi4vY29yZS9jb3BpbG90a2l0LnR5cGVzXCI7XG5cbi8qKlxuICogQ29tcG9uZW50IGZvciByZW5kZXJpbmcgYWxsIHRvb2wgY2FsbHMgZm9yIGFuIGFzc2lzdGFudCBtZXNzYWdlLlxuICogVGhpcyBjb21wb25lbnQgaXRlcmF0ZXMgdGhyb3VnaCB0aGUgbWVzc2FnZSdzIHRvb2wgY2FsbHMgYW5kIHJlbmRlcnMgZWFjaCBvbmVcbiAqIHVzaW5nIHRoZSByZWdpc3RlcmVkIHJlbmRlciBmdW5jdGlvbnMgaW4gQ29waWxvdEtpdFNlcnZpY2UuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJjb3BpbG90LWNoYXQtdG9vbC1jYWxscy12aWV3XCIsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6IGBcbiAgICBAZm9yICh0b29sQ2FsbCBvZiBtZXNzYWdlPy50b29sQ2FsbHMgPz8gW107IHRyYWNrIHRvb2xDYWxsLmlkKSB7XG4gICAgICA8bmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICNkeW5hbWljQ29udGFpbmVyPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZ2V0VGVtcGxhdGVGb3JUb29sQ2FsbCh0b29sQ2FsbCkgYXMgdGVtcGxhdGVEYXRhXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgdGVtcGxhdGVEYXRhLnRlbXBsYXRlO1xuICAgICAgICAgICAgICBjb250ZXh0OiB0ZW1wbGF0ZURhdGEuY29udGV4dFxuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgfVxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBDb3BpbG90Q2hhdFRvb2xDYWxsc1ZpZXdDb21wb25lbnRcbiAgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveVxue1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBtZXNzYWdlITogQXNzaXN0YW50TWVzc2FnZTtcbiAgQElucHV0KCkgbWVzc2FnZXM6IE1lc3NhZ2VbXSA9IFtdO1xuICBASW5wdXQoKSBpc0xvYWRpbmcgPSBmYWxzZTtcblxuICBAVmlld0NoaWxkKFwiZHluYW1pY0NvbnRhaW5lclwiLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSlcbiAgcHJpdmF0ZSBjb250YWluZXI/OiBWaWV3Q29udGFpbmVyUmVmO1xuXG4gIHByaXZhdGUgY29waWxvdGtpdDogQ29waWxvdEtpdFNlcnZpY2UgfCBudWxsID0gaW5qZWN0KENvcGlsb3RLaXRTZXJ2aWNlLCB7XG4gICAgb3B0aW9uYWw6IHRydWUsXG4gIH0pO1xuICBwcml2YXRlIGNvbXBvbmVudFJlZnM6IE1hcDxzdHJpbmcsIENvbXBvbmVudFJlZjxhbnk+PiA9IG5ldyBNYXAoKTtcbiAgcHJpdmF0ZSB0ZW1wbGF0ZUNhY2hlOiBNYXA8XG4gICAgc3RyaW5nLFxuICAgIHsgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47IGNvbnRleHQ6IGFueSB9XG4gID4gPSBuZXcgTWFwKCk7XG5cbiAgLy8gU2lnbmFscyBmb3IgcmVhY3RpdmUgc3RhdGVcbiAgcHJpdmF0ZSBtZXNzYWdlU2lnbmFsID0gc2lnbmFsPEFzc2lzdGFudE1lc3NhZ2UgfCBudWxsPihudWxsKTtcbiAgcHJpdmF0ZSBtZXNzYWdlc1NpZ25hbCA9IHNpZ25hbDxNZXNzYWdlW10+KFtdKTtcbiAgcHJpdmF0ZSBpc0xvYWRpbmdTaWduYWwgPSBzaWduYWwoZmFsc2UpO1xuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlbmRlckFsbFRvb2xDYWxscygpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzW1wibWVzc2FnZVwiXSkge1xuICAgICAgdGhpcy5tZXNzYWdlU2lnbmFsLnNldCh0aGlzLm1lc3NhZ2UpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlc1tcIm1lc3NhZ2VzXCJdKSB7XG4gICAgICB0aGlzLm1lc3NhZ2VzU2lnbmFsLnNldCh0aGlzLm1lc3NhZ2VzKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbXCJpc0xvYWRpbmdcIl0pIHtcbiAgICAgIHRoaXMuaXNMb2FkaW5nU2lnbmFsLnNldCh0aGlzLmlzTG9hZGluZyk7XG4gICAgfVxuXG4gICAgdGhpcy5yZW5kZXJBbGxUb29sQ2FsbHMoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIC8vIENsZWFuIHVwIGFsbCBjb21wb25lbnQgcmVmc1xuICAgIHRoaXMuY29tcG9uZW50UmVmcy5mb3JFYWNoKChyZWYpID0+IHJlZi5kZXN0cm95KCkpO1xuICAgIHRoaXMuY29tcG9uZW50UmVmcy5jbGVhcigpO1xuICAgIHRoaXMudGVtcGxhdGVDYWNoZS5jbGVhcigpO1xuICB9XG5cbiAgZ2V0VGVtcGxhdGVGb3JUb29sQ2FsbChcbiAgICB0b29sQ2FsbDogVG9vbENhbGxcbiAgKTogeyB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjsgY29udGV4dDogYW55IH0gfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy50ZW1wbGF0ZUNhY2hlLmdldCh0b29sQ2FsbC5pZCkgfHwgbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyQWxsVG9vbENhbGxzKCk6IHZvaWQge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLm1lc3NhZ2VTaWduYWwoKTtcbiAgICBpZiAoIW1lc3NhZ2UgfHwgIW1lc3NhZ2UudG9vbENhbGxzIHx8IG1lc3NhZ2UudG9vbENhbGxzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIENsZWFyIGV4aXN0aW5nIHJlbmRlcnNcbiAgICB0aGlzLmNvbXBvbmVudFJlZnMuZm9yRWFjaCgocmVmKSA9PiByZWYuZGVzdHJveSgpKTtcbiAgICB0aGlzLmNvbXBvbmVudFJlZnMuY2xlYXIoKTtcbiAgICB0aGlzLnRlbXBsYXRlQ2FjaGUuY2xlYXIoKTtcblxuICAgIGlmICghdGhpcy5jb3BpbG90a2l0IHx8ICF0aGlzLmNvbnRhaW5lcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG1lc3NhZ2VzID0gdGhpcy5tZXNzYWdlc1NpZ25hbCgpO1xuICAgIGNvbnN0IGlzTG9hZGluZyA9IHRoaXMuaXNMb2FkaW5nU2lnbmFsKCk7XG5cbiAgICAvLyBSZW5kZXIgZWFjaCB0b29sIGNhbGxcbiAgICBtZXNzYWdlLnRvb2xDYWxscy5mb3JFYWNoKCh0b29sQ2FsbCkgPT4ge1xuICAgICAgY29uc3QgdG9vbE1lc3NhZ2UgPSBtZXNzYWdlcy5maW5kKFxuICAgICAgICAobSkgPT5cbiAgICAgICAgICBtLnJvbGUgPT09IFwidG9vbFwiICYmIChtIGFzIFRvb2xNZXNzYWdlKS50b29sQ2FsbElkID09PSB0b29sQ2FsbC5pZFxuICAgICAgKSBhcyBUb29sTWVzc2FnZSB8IHVuZGVmaW5lZDtcblxuICAgICAgdGhpcy5yZW5kZXJTaW5nbGVUb29sQ2FsbCh0b29sQ2FsbCwgdG9vbE1lc3NhZ2UsIGlzTG9hZGluZyk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlclNpbmdsZVRvb2xDYWxsKFxuICAgIHRvb2xDYWxsOiBUb29sQ2FsbCxcbiAgICB0b29sTWVzc2FnZTogVG9vbE1lc3NhZ2UgfCB1bmRlZmluZWQsXG4gICAgaXNMb2FkaW5nOiBib29sZWFuXG4gICk6IHZvaWQge1xuICAgIGlmICghdGhpcy5jb3BpbG90a2l0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gR2V0IGN1cnJlbnQgcmVuZGVyIHRvb2wgY2FsbHNcbiAgICBjb25zdCBjdXJyZW50UmVuZGVyVG9vbENhbGxzID0gdGhpcy5jb3BpbG90a2l0LmN1cnJlbnRSZW5kZXJUb29sQ2FsbHMoKTtcblxuICAgIC8vIEZpbmQgdGhlIHJlbmRlciBjb25maWcgZm9yIHRoaXMgdG9vbCBjYWxsIGJ5IG5hbWVcbiAgICAvLyBBbHNvIGNoZWNrIGZvciB3aWxkY2FyZCAoKikgcmVuZGVycyBpZiBubyBleGFjdCBtYXRjaFxuICAgIGNvbnN0IHJlbmRlckNvbmZpZyA9XG4gICAgICBjdXJyZW50UmVuZGVyVG9vbENhbGxzLmZpbmQoXG4gICAgICAgIChyYzogVG9vbENhbGxSZW5kZXIpID0+IHJjLm5hbWUgPT09IHRvb2xDYWxsLmZ1bmN0aW9uLm5hbWVcbiAgICAgICkgfHwgY3VycmVudFJlbmRlclRvb2xDYWxscy5maW5kKChyYzogVG9vbENhbGxSZW5kZXIpID0+IHJjLm5hbWUgPT09IFwiKlwiKTtcblxuICAgIGlmICghcmVuZGVyQ29uZmlnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gUGFyc2UgdGhlIGFyZ3VtZW50cyBpZiB0aGV5J3JlIGEgc3RyaW5nXG4gICAgY29uc3QgYXJncyA9IHBhcnRpYWxKU09OUGFyc2UodG9vbENhbGwuZnVuY3Rpb24uYXJndW1lbnRzKTtcblxuICAgIC8vIERldGVybWluZSBzdGF0dXNcbiAgICBsZXQgc3RhdHVzOiBUb29sQ2FsbFN0YXR1cztcbiAgICBpZiAodG9vbE1lc3NhZ2UpIHtcbiAgICAgIHN0YXR1cyA9IFRvb2xDYWxsU3RhdHVzLkNvbXBsZXRlO1xuICAgIH0gZWxzZSBpZiAoaXNMb2FkaW5nKSB7XG4gICAgICBzdGF0dXMgPSBUb29sQ2FsbFN0YXR1cy5JblByb2dyZXNzO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdGF0dXMgPSBUb29sQ2FsbFN0YXR1cy5Db21wbGV0ZTtcbiAgICB9XG5cbiAgICAvLyBDcmVhdGUgcHJvcHMgYmFzZWQgb24gc3RhdHVzIC0gdXNlIGRpc2NyaW1pbmF0ZWQgdW5pb24gcHJvcGVybHlcbiAgICBsZXQgcHJvcHM6IFRvb2xDYWxsUHJvcHM7XG4gICAgaWYgKHN0YXR1cyA9PT0gVG9vbENhbGxTdGF0dXMuSW5Qcm9ncmVzcykge1xuICAgICAgcHJvcHMgPSB7XG4gICAgICAgIG5hbWU6IHRvb2xDYWxsLmZ1bmN0aW9uLm5hbWUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIlwiLFxuICAgICAgICBhcmdzOiBhcmdzLCAvLyBQYXJ0aWFsIGFyZ3MgZm9yIEluUHJvZ3Jlc3NcbiAgICAgICAgc3RhdHVzOiBUb29sQ2FsbFN0YXR1cy5JblByb2dyZXNzLFxuICAgICAgICByZXN1bHQ6IHVuZGVmaW5lZCxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIENvbXBsZXRlIHN0YXR1c1xuICAgICAgcHJvcHMgPSB7XG4gICAgICAgIG5hbWU6IHRvb2xDYWxsLmZ1bmN0aW9uLm5hbWUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIlwiLFxuICAgICAgICBhcmdzOiBhcmdzLCAvLyBGdWxsIGFyZ3MgZm9yIENvbXBsZXRlXG4gICAgICAgIHN0YXR1czogVG9vbENhbGxTdGF0dXMuQ29tcGxldGUsXG4gICAgICAgIHJlc3VsdDogdG9vbE1lc3NhZ2U/LmNvbnRlbnQgfHwgXCJcIixcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gQ2hlY2sgaWYgcmVuZGVyIGlzIGEgQ29tcG9uZW50IGNsYXNzIG9yIFRlbXBsYXRlUmVmXG4gICAgaWYgKHRoaXMuaXNDb21wb25lbnRDbGFzcyhyZW5kZXJDb25maWcucmVuZGVyKSkge1xuICAgICAgLy8gQ3JlYXRlIGNvbXBvbmVudCBkeW5hbWljYWxseVxuICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnQodG9vbENhbGwuaWQsIHJlbmRlckNvbmZpZy5yZW5kZXIsIHByb3BzKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNUZW1wbGF0ZVJlZihyZW5kZXJDb25maWcucmVuZGVyKSkge1xuICAgICAgLy8gVXNlIHRlbXBsYXRlXG4gICAgICB0aGlzLnJlbmRlclRlbXBsYXRlKHRvb2xDYWxsLmlkLCByZW5kZXJDb25maWcucmVuZGVyLCBwcm9wcyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJDb21wb25lbnQoXG4gICAgdG9vbENhbGxJZDogc3RyaW5nLFxuICAgIGNvbXBvbmVudENsYXNzOiBUeXBlPGFueT4sXG4gICAgcHJvcHM6IFRvb2xDYWxsUHJvcHNcbiAgKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmNvbnRhaW5lcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIENyZWF0ZSB0aGUgY29tcG9uZW50XG4gICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy5jb250YWluZXIuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudENsYXNzKTtcbiAgICB0aGlzLmNvbXBvbmVudFJlZnMuc2V0KHRvb2xDYWxsSWQsIGNvbXBvbmVudFJlZik7XG5cbiAgICAvLyBTZXQgaW5wdXRzIG9uIHRoZSBjb21wb25lbnRcbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhwcm9wcykpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbXBvbmVudFJlZi5zZXRJbnB1dChrZXksIHZhbHVlKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgLy8gSW5wdXQgbWlnaHQgbm90IGV4aXN0IG9uIHRoZSBjb21wb25lbnQsIHdoaWNoIGlzIGZpbmVcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUcmlnZ2VyIGNoYW5nZSBkZXRlY3Rpb25cbiAgICBjb21wb25lbnRSZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJUZW1wbGF0ZShcbiAgICB0b29sQ2FsbElkOiBzdHJpbmcsXG4gICAgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4sXG4gICAgcHJvcHM6IFRvb2xDYWxsUHJvcHNcbiAgKTogdm9pZCB7XG4gICAgdGhpcy50ZW1wbGF0ZUNhY2hlLnNldCh0b29sQ2FsbElkLCB7XG4gICAgICB0ZW1wbGF0ZSxcbiAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgJGltcGxpY2l0OiBwcm9wcyxcbiAgICAgICAgbmFtZTogcHJvcHMubmFtZSxcbiAgICAgICAgZGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uLFxuICAgICAgICBhcmdzOiBwcm9wcy5hcmdzLFxuICAgICAgICBzdGF0dXM6IHByb3BzLnN0YXR1cyxcbiAgICAgICAgcmVzdWx0OiBwcm9wcy5yZXN1bHQsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0NvbXBvbmVudENsYXNzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBUeXBlPGFueT4ge1xuICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09IFwiZnVuY3Rpb25cIiAmJiB2YWx1ZS5wcm90b3R5cGU7XG4gIH1cblxuICBwcml2YXRlIGlzVGVtcGxhdGVSZWYodmFsdWU6IGFueSk6IHZhbHVlIGlzIFRlbXBsYXRlUmVmPGFueT4ge1xuICAgIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmO1xuICB9XG59XG4iXX0=
|
|
222
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29waWxvdC1jaGF0LXRvb2wtY2FsbHMtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9jaGF0L2NvcGlsb3QtY2hhdC10b29sLWNhbGxzLXZpZXcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLGdCQUFnQixFQUVoQixNQUFNLEVBQ04sU0FBUyxFQUlULFdBQVcsRUFFWCx1QkFBdUIsRUFDdkIsTUFBTSxHQUdQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQU8vQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7OztBQU0xRDs7OztHQUlHO0FBc0JILE1BQU0sT0FBTyxpQ0FBaUM7SUFHakIsT0FBTyxDQUFvQjtJQUM3QyxRQUFRLEdBQWMsRUFBRSxDQUFDO0lBQ3pCLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFHbkIsU0FBUyxDQUFvQjtJQUU3QixVQUFVLEdBQTZCLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRTtRQUN2RSxRQUFRLEVBQUUsSUFBSTtLQUNmLENBQUMsQ0FBQztJQUNLLGFBQWEsR0FBbUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUMxRCxhQUFhLEdBR2pCLElBQUksR0FBRyxFQUFFLENBQUM7SUFFZCw2QkFBNkI7SUFDckIsYUFBYSxHQUFHLE1BQU0sQ0FBMEIsSUFBSSxDQUFDLENBQUM7SUFDdEQsY0FBYyxHQUFHLE1BQU0sQ0FBWSxFQUFFLENBQUMsQ0FBQztJQUN2QyxlQUFlLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRXhDLGVB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TyxhQUFhLENBQUMsS0FBVTtRQUM5QixPQUFPLEtBQUssWUFBWSxXQUFXLENBQUM7SUFDdEMsQ0FBQzt3R0FsTlUsaUNBQWlDOzRGQUFqQyxpQ0FBaUMsZ1FBT0wsZ0JBQWdCLGtEQXZCN0M7Ozs7Ozs7Ozs7Ozs7O0dBY1QsMkRBaEJTLFlBQVk7OzRGQWtCWCxpQ0FBaUM7a0JBckI3QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSw4QkFBOEI7b0JBQ3hDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7O0dBY1Q7aUJBQ0Y7OEJBSTRCLE9BQU87c0JBQWpDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUNoQixRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0UsU0FBUztzQkFEaEIsU0FBUzt1QkFBQyxrQkFBa0IsRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIENvbXBvbmVudFJlZixcbiAgaW5qZWN0LFxuICBWaWV3Q2hpbGQsXG4gIEFmdGVyVmlld0luaXQsXG4gIE9uQ2hhbmdlcyxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIFR5cGUsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBzaWduYWwsXG4gIGNvbXB1dGVkLFxuICBPbkRlc3Ryb3ksXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgdHlwZSB7XG4gIEFzc2lzdGFudE1lc3NhZ2UsXG4gIE1lc3NhZ2UsXG4gIFRvb2xDYWxsLFxuICBUb29sTWVzc2FnZSxcbn0gZnJvbSBcIkBhZy11aS9jb3JlXCI7XG5pbXBvcnQgeyBUb29sQ2FsbFN0YXR1cyB9IGZyb20gXCJAY29waWxvdGtpdG5leHQvY29yZVwiO1xuaW1wb3J0IHsgQ29waWxvdEtpdFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS9jb3BpbG90a2l0LnNlcnZpY2VcIjtcbmltcG9ydCB7IHBhcnRpYWxKU09OUGFyc2UgfSBmcm9tIFwiQGNvcGlsb3RraXRuZXh0L3NoYXJlZFwiO1xuaW1wb3J0IHR5cGUge1xuICBUb29sQ2FsbFByb3BzLFxuICBUb29sQ2FsbFJlbmRlcixcbn0gZnJvbSBcIi4uLy4uL2NvcmUvY29waWxvdGtpdC50eXBlc1wiO1xuXG4vKipcbiAqIENvbXBvbmVudCBmb3IgcmVuZGVyaW5nIGFsbCB0b29sIGNhbGxzIGZvciBhbiBhc3Npc3RhbnQgbWVzc2FnZS5cbiAqIFRoaXMgY29tcG9uZW50IGl0ZXJhdGVzIHRocm91Z2ggdGhlIG1lc3NhZ2UncyB0b29sIGNhbGxzIGFuZCByZW5kZXJzIGVhY2ggb25lXG4gKiB1c2luZyB0aGUgcmVnaXN0ZXJlZCByZW5kZXIgZnVuY3Rpb25zIGluIENvcGlsb3RLaXRTZXJ2aWNlLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiY29waWxvdC1jaGF0LXRvb2wtY2FsbHMtdmlld1wiLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiBgXG4gICAgQGZvciAodG9vbENhbGwgb2YgbWVzc2FnZT8udG9vbENhbGxzID8/IFtdOyB0cmFjayB0b29sQ2FsbC5pZCkge1xuICAgICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAjZHluYW1pY0NvbnRhaW5lcj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImdldFRlbXBsYXRlRm9yVG9vbENhbGwodG9vbENhbGwpIGFzIHRlbXBsYXRlRGF0YVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgIHRlbXBsYXRlRGF0YS50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgY29udGV4dDogdGVtcGxhdGVEYXRhLmNvbnRleHRcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIH1cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgQ29waWxvdENoYXRUb29sQ2FsbHNWaWV3Q29tcG9uZW50XG4gIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3lcbntcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgbWVzc2FnZSE6IEFzc2lzdGFudE1lc3NhZ2U7XG4gIEBJbnB1dCgpIG1lc3NhZ2VzOiBNZXNzYWdlW10gPSBbXTtcbiAgQElucHV0KCkgaXNMb2FkaW5nID0gZmFsc2U7XG5cbiAgQFZpZXdDaGlsZChcImR5bmFtaWNDb250YWluZXJcIiwgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pXG4gIHByaXZhdGUgY29udGFpbmVyPzogVmlld0NvbnRhaW5lclJlZjtcblxuICBwcml2YXRlIGNvcGlsb3RraXQ6IENvcGlsb3RLaXRTZXJ2aWNlIHwgbnVsbCA9IGluamVjdChDb3BpbG90S2l0U2VydmljZSwge1xuICAgIG9wdGlvbmFsOiB0cnVlLFxuICB9KTtcbiAgcHJpdmF0ZSBjb21wb25lbnRSZWZzOiBNYXA8c3RyaW5nLCBDb21wb25lbnRSZWY8YW55Pj4gPSBuZXcgTWFwKCk7XG4gIHByaXZhdGUgdGVtcGxhdGVDYWNoZTogTWFwPFxuICAgIHN0cmluZyxcbiAgICB7IHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+OyBjb250ZXh0OiBhbnkgfVxuICA+ID0gbmV3IE1hcCgpO1xuXG4gIC8vIFNpZ25hbHMgZm9yIHJlYWN0aXZlIHN0YXRlXG4gIHByaXZhdGUgbWVzc2FnZVNpZ25hbCA9IHNpZ25hbDxBc3Npc3RhbnRNZXNzYWdlIHwgbnVsbD4obnVsbCk7XG4gIHByaXZhdGUgbWVzc2FnZXNTaWduYWwgPSBzaWduYWw8TWVzc2FnZVtdPihbXSk7XG4gIHByaXZhdGUgaXNMb2FkaW5nU2lnbmFsID0gc2lnbmFsKGZhbHNlKTtcblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yZW5kZXJBbGxUb29sQ2FsbHMoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1tcIm1lc3NhZ2VcIl0pIHtcbiAgICAgIHRoaXMubWVzc2FnZVNpZ25hbC5zZXQodGhpcy5tZXNzYWdlKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbXCJtZXNzYWdlc1wiXSkge1xuICAgICAgdGhpcy5tZXNzYWdlc1NpZ25hbC5zZXQodGhpcy5tZXNzYWdlcyk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzW1wiaXNMb2FkaW5nXCJdKSB7XG4gICAgICB0aGlzLmlzTG9hZGluZ1NpZ25hbC5zZXQodGhpcy5pc0xvYWRpbmcpO1xuICAgIH1cblxuICAgIHRoaXMucmVuZGVyQWxsVG9vbENhbGxzKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAvLyBDbGVhbiB1cCBhbGwgY29tcG9uZW50IHJlZnNcbiAgICB0aGlzLmNvbXBvbmVudFJlZnMuZm9yRWFjaCgocmVmKSA9PiByZWYuZGVzdHJveSgpKTtcbiAgICB0aGlzLmNvbXBvbmVudFJlZnMuY2xlYXIoKTtcbiAgICB0aGlzLnRlbXBsYXRlQ2FjaGUuY2xlYXIoKTtcbiAgfVxuXG4gIGdldFRlbXBsYXRlRm9yVG9vbENhbGwoXG4gICAgdG9vbENhbGw6IFRvb2xDYWxsXG4gICk6IHsgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47IGNvbnRleHQ6IGFueSB9IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMudGVtcGxhdGVDYWNoZS5nZXQodG9vbENhbGwuaWQpIHx8IG51bGw7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlckFsbFRvb2xDYWxscygpOiB2b2lkIHtcbiAgICBjb25zdCBtZXNzYWdlID0gdGhpcy5tZXNzYWdlU2lnbmFsKCk7XG4gICAgaWYgKCFtZXNzYWdlIHx8ICFtZXNzYWdlLnRvb2xDYWxscyB8fCBtZXNzYWdlLnRvb2xDYWxscy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBDbGVhciBleGlzdGluZyByZW5kZXJzXG4gICAgdGhpcy5jb21wb25lbnRSZWZzLmZvckVhY2goKHJlZikgPT4gcmVmLmRlc3Ryb3koKSk7XG4gICAgdGhpcy5jb21wb25lbnRSZWZzLmNsZWFyKCk7XG4gICAgdGhpcy50ZW1wbGF0ZUNhY2hlLmNsZWFyKCk7XG5cbiAgICBpZiAoIXRoaXMuY29waWxvdGtpdCB8fCAhdGhpcy5jb250YWluZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBtZXNzYWdlcyA9IHRoaXMubWVzc2FnZXNTaWduYWwoKTtcbiAgICBjb25zdCBpc0xvYWRpbmcgPSB0aGlzLmlzTG9hZGluZ1NpZ25hbCgpO1xuXG4gICAgLy8gUmVuZGVyIGVhY2ggdG9vbCBjYWxsXG4gICAgbWVzc2FnZS50b29sQ2FsbHMuZm9yRWFjaCgodG9vbENhbGwpID0+IHtcbiAgICAgIGNvbnN0IHRvb2xNZXNzYWdlID0gbWVzc2FnZXMuZmluZChcbiAgICAgICAgKG0pID0+XG4gICAgICAgICAgbS5yb2xlID09PSBcInRvb2xcIiAmJiAobSBhcyBUb29sTWVzc2FnZSkudG9vbENhbGxJZCA9PT0gdG9vbENhbGwuaWRcbiAgICAgICkgYXMgVG9vbE1lc3NhZ2UgfCB1bmRlZmluZWQ7XG5cbiAgICAgIHRoaXMucmVuZGVyU2luZ2xlVG9vbENhbGwodG9vbENhbGwsIHRvb2xNZXNzYWdlLCBpc0xvYWRpbmcpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJTaW5nbGVUb29sQ2FsbChcbiAgICB0b29sQ2FsbDogVG9vbENhbGwsXG4gICAgdG9vbE1lc3NhZ2U6IFRvb2xNZXNzYWdlIHwgdW5kZWZpbmVkLFxuICAgIGlzTG9hZGluZzogYm9vbGVhblxuICApOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuY29waWxvdGtpdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIEdldCBjdXJyZW50IHJlbmRlciB0b29sIGNhbGxzXG4gICAgY29uc3QgY3VycmVudFJlbmRlclRvb2xDYWxscyA9IHRoaXMuY29waWxvdGtpdC5jdXJyZW50UmVuZGVyVG9vbENhbGxzKCk7XG5cbiAgICAvLyBGaW5kIHRoZSByZW5kZXIgY29uZmlnIGZvciB0aGlzIHRvb2wgY2FsbCBieSBuYW1lXG4gICAgLy8gQWxzbyBjaGVjayBmb3Igd2lsZGNhcmQgKCopIHJlbmRlcnMgaWYgbm8gZXhhY3QgbWF0Y2hcbiAgICBjb25zdCByZW5kZXJDb25maWcgPVxuICAgICAgY3VycmVudFJlbmRlclRvb2xDYWxscy5maW5kKFxuICAgICAgICAocmM6IFRvb2xDYWxsUmVuZGVyKSA9PiByYy5uYW1lID09PSB0b29sQ2FsbC5mdW5jdGlvbi5uYW1lXG4gICAgICApIHx8IGN1cnJlbnRSZW5kZXJUb29sQ2FsbHMuZmluZCgocmM6IFRvb2xDYWxsUmVuZGVyKSA9PiByYy5uYW1lID09PSBcIipcIik7XG5cbiAgICBpZiAoIXJlbmRlckNvbmZpZykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFBhcnNlIHRoZSBhcmd1bWVudHMgaWYgdGhleSdyZSBhIHN0cmluZ1xuICAgIGNvbnN0IGFyZ3MgPSBwYXJ0aWFsSlNPTlBhcnNlKHRvb2xDYWxsLmZ1bmN0aW9uLmFyZ3VtZW50cyk7XG5cbiAgICAvLyBEZXRlcm1pbmUgc3RhdHVzXG4gICAgbGV0IHN0YXR1czogVG9vbENhbGxTdGF0dXM7XG4gICAgaWYgKHRvb2xNZXNzYWdlKSB7XG4gICAgICBzdGF0dXMgPSBUb29sQ2FsbFN0YXR1cy5Db21wbGV0ZTtcbiAgICB9IGVsc2UgaWYgKGlzTG9hZGluZykge1xuICAgICAgc3RhdHVzID0gVG9vbENhbGxTdGF0dXMuSW5Qcm9ncmVzcztcbiAgICB9IGVsc2Uge1xuICAgICAgc3RhdHVzID0gVG9vbENhbGxTdGF0dXMuQ29tcGxldGU7XG4gICAgfVxuXG4gICAgLy8gQ3JlYXRlIHByb3BzIGJhc2VkIG9uIHN0YXR1cyAtIHVzZSBkaXNjcmltaW5hdGVkIHVuaW9uIHByb3Blcmx5XG4gICAgbGV0IHByb3BzOiBUb29sQ2FsbFByb3BzO1xuICAgIGlmIChzdGF0dXMgPT09IFRvb2xDYWxsU3RhdHVzLkluUHJvZ3Jlc3MpIHtcbiAgICAgIHByb3BzID0ge1xuICAgICAgICBuYW1lOiB0b29sQ2FsbC5mdW5jdGlvbi5uYW1lLFxuICAgICAgICBkZXNjcmlwdGlvbjogXCJcIixcbiAgICAgICAgYXJnczogYXJncywgLy8gUGFydGlhbCBhcmdzIGZvciBJblByb2dyZXNzXG4gICAgICAgIHN0YXR1czogVG9vbENhbGxTdGF0dXMuSW5Qcm9ncmVzcyxcbiAgICAgICAgcmVzdWx0OiB1bmRlZmluZWQsXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBDb21wbGV0ZSBzdGF0dXNcbiAgICAgIHByb3BzID0ge1xuICAgICAgICBuYW1lOiB0b29sQ2FsbC5mdW5jdGlvbi5uYW1lLFxuICAgICAgICBkZXNjcmlwdGlvbjogXCJcIixcbiAgICAgICAgYXJnczogYXJncywgLy8gRnVsbCBhcmdzIGZvciBDb21wbGV0ZVxuICAgICAgICBzdGF0dXM6IFRvb2xDYWxsU3RhdHVzLkNvbXBsZXRlLFxuICAgICAgICByZXN1bHQ6IHRvb2xNZXNzYWdlPy5jb250ZW50IHx8IFwiXCIsXG4gICAgICB9O1xuICAgIH1cblxuICAgIC8vIENoZWNrIGlmIHJlbmRlciBpcyBhIENvbXBvbmVudCBjbGFzcyBvciBUZW1wbGF0ZVJlZlxuICAgIGlmICh0aGlzLmlzQ29tcG9uZW50Q2xhc3MocmVuZGVyQ29uZmlnLnJlbmRlcikpIHtcbiAgICAgIC8vIENyZWF0ZSBjb21wb25lbnQgZHluYW1pY2FsbHlcbiAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50KHRvb2xDYWxsLmlkLCByZW5kZXJDb25maWcucmVuZGVyLCBwcm9wcyk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmlzVGVtcGxhdGVSZWYocmVuZGVyQ29uZmlnLnJlbmRlcikpIHtcbiAgICAgIC8vIFVzZSB0ZW1wbGF0ZVxuICAgICAgdGhpcy5yZW5kZXJUZW1wbGF0ZSh0b29sQ2FsbC5pZCwgcmVuZGVyQ29uZmlnLnJlbmRlciwgcHJvcHMpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyQ29tcG9uZW50KFxuICAgIHRvb2xDYWxsSWQ6IHN0cmluZyxcbiAgICBjb21wb25lbnRDbGFzczogVHlwZTxhbnk+LFxuICAgIHByb3BzOiBUb29sQ2FsbFByb3BzXG4gICk6IHZvaWQge1xuICAgIGlmICghdGhpcy5jb250YWluZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBDcmVhdGUgdGhlIGNvbXBvbmVudFxuICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMuY29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudChjb21wb25lbnRDbGFzcyk7XG4gICAgdGhpcy5jb21wb25lbnRSZWZzLnNldCh0b29sQ2FsbElkLCBjb21wb25lbnRSZWYpO1xuXG4gICAgLy8gRGV0ZXJtaW5lIGRlY2xhcmVkIGlucHV0cyB0byBhdm9pZCBBbmd1bGFyIE5HMDMwMyBjb25zb2xlIGVycm9yc1xuICAgIGNvbnN0IGNtcERlZjogYW55ID0gKGNvbXBvbmVudENsYXNzIGFzIGFueSkuybVjbXA7XG4gICAgY29uc3QgZGVjbGFyZWRJbnB1dHMgPSBuZXcgU2V0PHN0cmluZz4oXG4gICAgICBPYmplY3Qua2V5cyhjbXBEZWY/LmlucHV0cyA/PyB7fSlcbiAgICApO1xuXG4gICAgLy8gUHJlZmVyIGEgc2luZ2xlICdwcm9wcycgaW5wdXQgaWYgZGVjbGFyZWRcbiAgICBpZiAoZGVjbGFyZWRJbnB1dHMuaGFzKCdwcm9wcycpKSB7XG4gICAgICBjb21wb25lbnRSZWYuc2V0SW5wdXQoJ3Byb3BzJywgcHJvcHMpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBPdGhlcndpc2UsIHNldCBvbmx5IGlucHV0cyB0aGF0IHRoZSBjb21wb25lbnQgYWN0dWFsbHkgZGVjbGFyZXNcbiAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHByb3BzKSkge1xuICAgICAgICBpZiAoZGVjbGFyZWRJbnB1dHMuaGFzKGtleSkpIHtcbiAgICAgICAgICBjb21wb25lbnRSZWYuc2V0SW5wdXQoa2V5LCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUcmlnZ2VyIGNoYW5nZSBkZXRlY3Rpb25cbiAgICBjb21wb25lbnRSZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJUZW1wbGF0ZShcbiAgICB0b29sQ2FsbElkOiBzdHJpbmcsXG4gICAgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4sXG4gICAgcHJvcHM6IFRvb2xDYWxsUHJvcHNcbiAgKTogdm9pZCB7XG4gICAgdGhpcy50ZW1wbGF0ZUNhY2hlLnNldCh0b29sQ2FsbElkLCB7XG4gICAgICB0ZW1wbGF0ZSxcbiAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgJGltcGxpY2l0OiBwcm9wcyxcbiAgICAgICAgbmFtZTogcHJvcHMubmFtZSxcbiAgICAgICAgZGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uLFxuICAgICAgICBhcmdzOiBwcm9wcy5hcmdzLFxuICAgICAgICBzdGF0dXM6IHByb3BzLnN0YXR1cyxcbiAgICAgICAgcmVzdWx0OiBwcm9wcy5yZXN1bHQsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0NvbXBvbmVudENsYXNzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBUeXBlPGFueT4ge1xuICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09IFwiZnVuY3Rpb25cIiAmJiB2YWx1ZS5wcm90b3R5cGU7XG4gIH1cblxuICBwcml2YXRlIGlzVGVtcGxhdGVSZWYodmFsdWU6IGFueSk6IHZhbHVlIGlzIFRlbXBsYXRlUmVmPGFueT4ge1xuICAgIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmO1xuICB9XG59XG4iXX0=
|
|
@@ -38,9 +38,16 @@ export class CopilotChatComponent {
|
|
|
38
38
|
a.threadId = this.threadId || this.generatedThreadId;
|
|
39
39
|
if (!this.hasConnectedOnce) {
|
|
40
40
|
this.hasConnectedOnce = true;
|
|
41
|
-
|
|
41
|
+
if ('isCopilotKitAgent' in a) {
|
|
42
|
+
this.connectToAgent(a);
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
// Not a CopilotKit agent: ensure UI not showing loading cursor
|
|
46
|
+
this.showCursor.set(false);
|
|
47
|
+
this.cdr.markForCheck();
|
|
48
|
+
}
|
|
42
49
|
}
|
|
43
|
-
});
|
|
50
|
+
}, { allowSignalWrites: true });
|
|
44
51
|
}
|
|
45
52
|
// Signals from watchAgent - using direct references instead of assignment
|
|
46
53
|
agent = signal(undefined).asReadonly();
|
|
@@ -211,4 +218,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
211
218
|
}], threadId: [{
|
|
212
219
|
type: Input
|
|
213
220
|
}] } });
|
|
214
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29waWxvdC1jaGF0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2NoYXQvY29waWxvdC1jaGF0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFLTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLE1BQU0sRUFDTixNQUFNLEVBSU4scUJBQXFCLEVBQ3JCLFFBQVEsRUFDUixRQUFRLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQzNHLE9BQU8sRUFDTCwyQkFBMkIsR0FFNUIsTUFBTSx3REFBd0QsQ0FBQztBQUNoRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7QUFHdEU7Ozs7Ozs7O0dBUUc7QUE4QkgsTUFBTSxPQUFPLG9CQUFvQjtJQUtUO0lBQ1o7SUFDQTtJQU5ELE9BQU8sQ0FBVTtJQUNqQixRQUFRLENBQVU7SUFFM0IsWUFDc0IsVUFBa0QsRUFDOUQsR0FBc0IsRUFDdEIsUUFBa0I7UUFGTixlQUFVLEdBQVYsVUFBVSxDQUF3QztRQUM5RCxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBRTFCLHdFQUF3RTtRQUN4RSxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxJQUFJLGdCQUFnQixDQUFDO1FBQ25ELElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFOUIsNENBQTRDO1FBQzVD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QkFDRSxPQUFPLEVBQUUsK0JBQStCOzRCQUN4QyxJQUFJLEVBQUU7Z0NBQ0osQ0FBQyxJQUFJLFFBQVEsRUFBRSxFQUFFLElBQUksUUFBUSxFQUFFLEVBQUUsK0JBQStCLENBQUM7Z0NBQ2pFLENBQUMsSUFBSSxRQUFRLEVBQUUsRUFBRSwyQkFBMkIsQ0FBQzs2QkFDOUM7NEJBQ0QsVUFBVSxFQUFFLENBQ1YsTUFBOEMsRUFDOUMsT0FBd0MsRUFDeEMsRUFBRSxDQUFDLE1BQU0sSUFBSSxJQUFJLCtCQUErQixDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUM7eUJBQ3BFO3FCQUNGO29CQUNELFFBQVEsRUFBRTs7Ozs7Ozs7R0FRVDtpQkFDRjs7MEJBTUksUUFBUTtnR0FKRixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIFNpbXBsZUNoYW5nZXMsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgc2lnbmFsLFxuICBlZmZlY3QsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBTaWduYWwsXG4gIEluamVjdG9yLFxuICBydW5JbkluamVjdGlvbkNvbnRleHQsXG4gIE9wdGlvbmFsLFxuICBTa2lwU2VsZixcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IENvcGlsb3RDaGF0Vmlld0NvbXBvbmVudCB9IGZyb20gXCIuL2NvcGlsb3QtY2hhdC12aWV3LmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgQ29waWxvdENoYXRDb25maWd1cmF0aW9uU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL2NoYXQtY29uZmlndXJhdGlvbi9jaGF0LWNvbmZpZ3VyYXRpb24uc2VydmljZVwiO1xuaW1wb3J0IHtcbiAgQ09QSUxPVF9DSEFUX0lOSVRJQUxfQ09ORklHLFxuICBDb3BpbG90Q2hhdENvbmZpZ3VyYXRpb24sXG59IGZyb20gXCIuLi8uLi9jb3JlL2NoYXQtY29uZmlndXJhdGlvbi9jaGF0LWNvbmZpZ3VyYXRpb24udHlwZXNcIjtcbmltcG9ydCB7IHdhdGNoQWdlbnQgfSBmcm9tIFwiLi4vLi4vdXRpbHMvYWdlbnQudXRpbHNcIjtcbmltcG9ydCB7IEFnZW50V2F0Y2hSZXN1bHQgfSBmcm9tIFwiLi4vLi4vY29yZS9jb3BpbG90a2l0LnR5cGVzXCI7XG5pbXBvcnQgeyBERUZBVUxUX0FHRU5UX0lELCByYW5kb21VVUlEIH0gZnJvbSBcIkBjb3BpbG90a2l0bmV4dC9zaGFyZWRcIjtcbmltcG9ydCB7IE1lc3NhZ2UsIEFic3RyYWN0QWdlbnQgfSBmcm9tIFwiQGFnLXVpL2NsaWVudFwiO1xuXG4vKipcbiAqIENvcGlsb3RDaGF0IGNvbXBvbmVudCAtIEFuZ3VsYXIgZXF1aXZhbGVudCBvZiBSZWFjdCdzIDxDb3BpbG90Q2hhdD5cbiAqIFByb3ZpZGVzIGEgY29tcGxldGUgY2hhdCBpbnRlcmZhY2UgdGhhdCB3aXJlcyBhbiBhZ2VudCB0byB0aGUgY2hhdCB2aWV3XG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGh0bWxcbiAqIDxjb3BpbG90LWNoYXQgW2FnZW50SWRdPVwiJ2RlZmF1bHQnXCIgW3RocmVhZElkXT1cIidhYmMxMjMnXCI+PC9jb3BpbG90LWNoYXQ+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImNvcGlsb3QtY2hhdFwiLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBDb3BpbG90Q2hhdFZpZXdDb21wb25lbnRdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogQ29waWxvdENoYXRDb25maWd1cmF0aW9uU2VydmljZSxcbiAgICAgIGRlcHM6IFtcbiAgICAgICAgW25ldyBPcHRpb25hbCgpLCBuZXcgU2tpcFNlbGYoKSwgQ29waWxvdENoYXRDb25maWd1cmF0aW9uU2VydmljZV0sXG4gICAgICAgIFtuZXcgT3B0aW9uYWwoKSwgQ09QSUxPVF9DSEFUX0lOSVRJQUxfQ09ORklHXSxcbiAgICAgIF0sXG4gICAgICB1c2VGYWN0b3J5OiAoXG4gICAgICAgIHBhcmVudDogQ29waWxvdENoYXRDb25maWd1cmF0aW9uU2VydmljZSB8IG51bGwsXG4gICAgICAgIGluaXRpYWw6IENvcGlsb3RDaGF0Q29uZmlndXJhdGlvbiB8IG51bGxcbiAgICAgICkgPT4gcGFyZW50ID8/IG5ldyBDb3BpbG90Q2hhdENvbmZpZ3VyYXRpb25TZXJ2aWNlKGluaXRpYWwgPz8gbnVsbCksXG4gICAgfSxcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8Y29waWxvdC1jaGF0LXZpZXdcbiAgICAgIFttZXNzYWdlc109XCJtZXNzYWdlcygpXCJcbiAgICAgIFthdXRvU2Nyb2xsXT1cInRydWVcIlxuICAgICAgW21lc3NhZ2VWaWV3Q2xhc3NdPVwiJ3ctZnVsbCdcIlxuICAgICAgW3Nob3dDdXJzb3JdPVwic2hvd0N1cnNvcigpXCJcbiAgICA+XG4gICAgPC9jb3BpbG90LWNoYXQtdmlldz5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgQ29waWxvdENoYXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgQElucHV0KCkgYWdlbnRJZD86IHN0cmluZztcbiAgQElucHV0KCkgdGhyZWFkSWQ/OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBjaGF0Q29uZmlnOiBDb3BpbG90Q2hhdENvbmZpZ3VyYXRpb25TZXJ2aWNlIHwgbnVsbCxcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3JcbiAgKSB7XG4gICAgLy8gQ3JlYXRlIGluaXRpYWwgd2F0Y2hlciBvbmNlIChjb25zdHJ1Y3RvciBpcyBhIHNhZmUgaW5qZWN0aW9uIGNvbnRleHQpXG4gICAgY29uc3QgaW5pdGlhbElkID0gdGhpcy5hZ2VudElkID8/IERFRkFVTFRfQUdFTlRfSUQ7XG4gICAgdGhpcy5jcmVhdGVXYXRjaGVyKGluaXRpYWxJZCk7XG5cbiAgICAvLyBDb25uZWN0IG9uY2Ugd2hlbiBhZ2VudCBiZWNvbWVzIGF2YWlsYWJsZVxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBhID0gdGhpcy5hZ2VudCgpO1xuICAgICAgaWYgKCFhKSByZXR1cm47XG4gICAgICAvLyBBcHBseSB0aHJlYWQgaWQgd2hlbiBhZ2VudCBpcyBhdmFpbGFibGVcbiAgICAgIGEudGhyZWFkSWQgPSB0aGlzLnRocmVhZElkIHx8IHRoaXMuZ2VuZXJhdGVkVGhyZWFkSWQ7XG4gICAgICBpZiAoIXRoaXMuaGFzQ29ubmVjdGVkT25jZSkge1xuICAgICAgICB0aGlzLmhhc0Nvbm5lY3RlZE9uY2UgPSB0cnVlO1xuICAgICAgICB0aGlzLmNvbm5lY3RUb0FnZW50KGEpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLy8gU2lnbmFscyBmcm9tIHdhdGNoQWdlbnQgLSB1c2luZyBkaXJlY3QgcmVmZXJlbmNlcyBpbnN0ZWFkIG9mIGFzc2lnbm1lbnRcbiAgcHJvdGVjdGVkIGFnZW50OiBTaWduYWw8QWJzdHJhY3RBZ2VudCB8IHVuZGVmaW5lZD4gPSBzaWduYWw8XG4gICAgQWJzdHJhY3RBZ2VudCB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCkuYXNSZWFkb25seSgpIGFzIHVua25vd24gYXMgU2lnbmFsPEFic3RyYWN0QWdlbnQgfCB1bmRlZmluZWQ+O1xuICBwcm90ZWN0ZWQgbWVzc2FnZXM6IFNpZ25hbDxNZXNzYWdlW10+ID0gc2lnbmFsPE1lc3NhZ2VbXT4oXG4gICAgW11cbiAgKS5hc1JlYWRvbmx5KCkgYXMgdW5rbm93biBhcyBTaWduYWw8TWVzc2FnZVtdPjtcbiAgcHJvdGVjdGVkIGlzUnVubmluZzogU2lnbmFsPGJvb2xlYW4+ID0gc2lnbmFsPGJvb2xlYW4+KFxuICAgIGZhbHNlXG4gICkuYXNSZWFkb25seSgpIGFzIHVua25vd24gYXMgU2lnbmFsPGJvb2xlYW4+O1xuICBwcm90ZWN0ZWQgc2hvd0N1cnNvciA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZWRUaHJlYWRJZDogc3RyaW5nID0gcmFuZG9tVVVJRCgpO1xuICBwcml2YXRlIGFnZW50V2F0Y2hlcj86IEFnZW50V2F0Y2hSZXN1bHQ7XG4gIHByaXZhdGUgaGFzQ29ubmVjdGVkT25jZSA9IGZhbHNlO1xuICBwcml2YXRlIGxhc3RBZ2VudElkPzogc3RyaW5nO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0dXBDaGF0SGFuZGxlcnMoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1tcImFnZW50SWRcIl0gJiYgIWNoYW5nZXNbXCJhZ2VudElkXCJdLmZpcnN0Q2hhbmdlKSB7XG4gICAgICBjb25zdCBuZXdJZCA9IHRoaXMuYWdlbnRJZCA/PyBERUZBVUxUX0FHRU5UX0lEO1xuICAgICAgdGhpcy5jcmVhdGVXYXRjaGVyKG5ld0lkKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbXCJ0aHJlYWRJZFwiXSAmJiAhY2hhbmdlc1tcInRocmVhZElkXCJdLmZpcnN0Q2hhbmdlKSB7XG4gICAgICBjb25zdCBhID0gdGhpcy5hZ2VudCgpO1xuICAgICAgaWYgKGEpIHtcbiAgICAgICAgYS50aHJlYWRJZCA9IHRoaXMudGhyZWFkSWQgfHwgdGhpcy5nZW5lcmF0ZWRUaHJlYWRJZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGNvbm5lY3RUb0FnZW50KGFnZW50OiBBYnN0cmFjdEFnZW50KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCFhZ2VudCkgcmV0dXJuO1xuXG4gICAgdGhpcy5zaG93Q3Vyc29yLnNldCh0cnVlKTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCBhZ2VudC5ydW5BZ2VudChcbiAgICAgICAgeyBmb3J3YXJkZWRQcm9wczogeyBfX2NvcGlsb3RraXRDb25uZWN0OiB0cnVlIH0gfSxcbiAgICAgICAge1xuICAgICAgICAgIG9uVGV4dE1lc3NhZ2VTdGFydEV2ZW50OiAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNob3dDdXJzb3Iuc2V0KGZhbHNlKTtcbiAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIG9uVG9vbENhbGxTdGFydEV2ZW50OiAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNob3dDdXJzb3Iuc2V0KGZhbHNlKTtcbiAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICB9LFxuICAgICAgICB9XG4gICAgICApO1xuICAgICAgdGhpcy5zaG93Q3Vyc29yLnNldChmYWxzZSk7XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcihcIkZhaWxlZCB0byBjb25uZWN0IHRvIGFnZW50OlwiLCBlcnJvcik7XG4gICAgICB0aGlzLnNob3dDdXJzb3Iuc2V0KGZhbHNlKTtcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBDaGF0SGFuZGxlcnMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmNoYXRDb25maWcpIHJldHVybjtcblxuICAgIC8vIEhhbmRsZSBpbnB1dCBzdWJtaXNzaW9uXG4gICAgdGhpcy5jaGF0Q29uZmlnLnNldFN1Ym1pdEhhbmRsZXIoYXN5bmMgKHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IGFnZW50ID0gdGhpcy5hZ2VudCgpO1xuICAgICAgaWYgKCFhZ2VudCB8fCAhdmFsdWUudHJpbSgpKSByZXR1cm47XG5cbiAgICAgIC8vIEFkZCB1c2VyIG1lc3NhZ2VcbiAgICAgIGNvbnN0IHVzZXJNZXNzYWdlOiBNZXNzYWdlID0ge1xuICAgICAgICBpZDogcmFuZG9tVVVJRCgpLFxuICAgICAgICByb2xlOiBcInVzZXJcIixcbiAgICAgICAgY29udGVudDogdmFsdWUsXG4gICAgICB9O1xuICAgICAgYWdlbnQuYWRkTWVzc2FnZSh1c2VyTWVzc2FnZSk7XG5cbiAgICAgIC8vIENsZWFyIHRoZSBpbnB1dFxuICAgICAgdGhpcy5jaGF0Q29uZmlnIS5zZXRJbnB1dFZhbHVlKFwiXCIpO1xuXG4gICAgICAvLyBTaG93IGN1cnNvciB3aGlsZSBwcm9jZXNzaW5nXG4gICAgICB0aGlzLnNob3dDdXJzb3Iuc2V0KHRydWUpO1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG5cbiAgICAgIC8vIFJ1biB0aGUgYWdlbnQgd2l0aCBuYW1lZCBzdWJzY3JpYmVyIGNhbGxiYWNrc1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgYWdlbnQucnVuQWdlbnQoXG4gICAgICAgICAge30sXG4gICAgICAgICAge1xuICAgICAgICAgICAgb25UZXh0TWVzc2FnZVN0YXJ0RXZlbnQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5zaG93Q3Vyc29yLnNldChmYWxzZSk7XG4gICAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvblRvb2xDYWxsU3RhcnRFdmVudDogKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnNob3dDdXJzb3Iuc2V0KGZhbHNlKTtcbiAgICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKFwiQWdlbnQgcnVuIGVycm9yOlwiLCBlcnJvcik7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICB0aGlzLnNob3dDdXJzb3Iuc2V0KGZhbHNlKTtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBIYW5kbGUgaW5wdXQgdmFsdWUgY2hhbmdlcyAob3B0aW9uYWwpXG4gICAgdGhpcy5jaGF0Q29uZmlnLnNldENoYW5nZUhhbmRsZXIoKCkgPT4ge1xuICAgICAgLy8gS2VlcCBpbnB1dCBzdGF0ZSBpZiBuZWVkZWRcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmFnZW50V2F0Y2hlcj8udW5zdWJzY3JpYmUpIHtcbiAgICAgIHRoaXMuYWdlbnRXYXRjaGVyLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVXYXRjaGVyKGRlc2lyZWRBZ2VudElkOiBzdHJpbmcpIHtcbiAgICAvLyBUZWFyIGRvd24gcHJldmlvdXMgd2F0Y2hlciBpZiBpdCBleGlzdHNcbiAgICBpZiAodGhpcy5hZ2VudFdhdGNoZXI/LnVuc3Vic2NyaWJlKSB7XG4gICAgICB0aGlzLmFnZW50V2F0Y2hlci51bnN1YnNjcmliZSgpO1xuICAgICAgdGhpcy5hZ2VudFdhdGNoZXIgPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIC8vIFNldHVwIHdhdGNoZXIgZm9yIGRlc2lyZWQgYWdlbnQgLSBlbnN1cmUgaW5qZWN0aW9uIGNvbnRleHRcbiAgICB0aGlzLmFnZW50V2F0Y2hlciA9IHJ1bkluSW5qZWN0aW9uQ29udGV4dCh0aGlzLmluamVjdG9yLCAoKSA9PlxuICAgICAgd2F0Y2hBZ2VudCh7IGFnZW50SWQ6IGRlc2lyZWRBZ2VudElkIH0pXG4gICAgKTtcbiAgICB0aGlzLmFnZW50ID0gdGhpcy5hZ2VudFdhdGNoZXIuYWdlbnQ7XG4gICAgdGhpcy5tZXNzYWdlcyA9IHRoaXMuYWdlbnRXYXRjaGVyLm1lc3NhZ2VzO1xuICAgIHRoaXMuaXNSdW5uaW5nID0gdGhpcy5hZ2VudFdhdGNoZXIuaXNSdW5uaW5nO1xuICAgIHRoaXMuaGFzQ29ubmVjdGVkT25jZSA9IGZhbHNlO1xuICAgIHRoaXMubGFzdEFnZW50SWQgPSBkZXNpcmVkQWdlbnRJZDtcbiAgfVxufVxuIl19
|
|
221
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29waWxvdC1jaGF0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2NoYXQvY29waWxvdC1jaGF0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFLTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLE1BQU0sRUFDTixNQUFNLEVBSU4scUJBQXFCLEVBQ3JCLFFBQVEsRUFDUixRQUFRLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQzNHLE9BQU8sRUFDTCwyQkFBMkIsR0FFNUIsTUFBTSx3REFBd0QsQ0FBQztBQUNoRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7QUFHdEU7Ozs7Ozs7O0dBUUc7QUE4QkgsTUFBTSxPQUFPLG9CQUFvQjtJQUtUO0lBQ1o7SUFDQTtJQU5ELE9BQU8sQ0FBVTtJQUNqQixRQUFRLENBQVU7SUFFM0IsWUFDc0IsVUFBa0QsRUFDOUQsR0FBc0IsRUFDdEIsUUFBa0I7UUFGTixlQUFVLEdBQVYsVUFBVSxDQUF3QztRQUM5RCxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBRTFCLHdFQUF3RTtRQUN4RSxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxJQUFJLGdCQUFnQixDQUFDO1FBQ25ELElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFOUIsNENBQTRDO1FBQzVD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NEZBMEJyQyxvQkFBb0I7a0JBN0JoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxjQUFjO29CQUN4QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLHdCQUF3QixDQUFDO29CQUNqRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQ3JDLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsK0JBQStCOzRCQUN4QyxJQUFJLEVBQUU7Z0NBQ0osQ0FBQyxJQUFJLFFBQVEsRUFBRSxFQUFFLElBQUksUUFBUSxFQUFFLEVBQUUsK0JBQStCLENBQUM7Z0NBQ2pFLENBQUMsSUFBSSxRQUFRLEVBQUUsRUFBRSwyQkFBMkIsQ0FBQzs2QkFDOUM7NEJBQ0QsVUFBVSxFQUFFLENBQ1YsTUFBOEMsRUFDOUMsT0FBd0MsRUFDeEMsRUFBRSxDQUFDLE1BQU0sSUFBSSxJQUFJLCtCQUErQixDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUM7eUJBQ3BFO3FCQUNGO29CQUNELFFBQVEsRUFBRTs7Ozs7Ozs7R0FRVDtpQkFDRjs7MEJBTUksUUFBUTtnR0FKRixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIFNpbXBsZUNoYW5nZXMsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgc2lnbmFsLFxuICBlZmZlY3QsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBTaWduYWwsXG4gIEluamVjdG9yLFxuICBydW5JbkluamVjdGlvbkNvbnRleHQsXG4gIE9wdGlvbmFsLFxuICBTa2lwU2VsZixcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IENvcGlsb3RDaGF0Vmlld0NvbXBvbmVudCB9IGZyb20gXCIuL2NvcGlsb3QtY2hhdC12aWV3LmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgQ29waWxvdENoYXRDb25maWd1cmF0aW9uU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL2NoYXQtY29uZmlndXJhdGlvbi9jaGF0LWNvbmZpZ3VyYXRpb24uc2VydmljZVwiO1xuaW1wb3J0IHtcbiAgQ09QSUxPVF9DSEFUX0lOSVRJQUxfQ09ORklHLFxuICBDb3BpbG90Q2hhdENvbmZpZ3VyYXRpb24sXG59IGZyb20gXCIuLi8uLi9jb3JlL2NoYXQtY29uZmlndXJhdGlvbi9jaGF0LWNvbmZpZ3VyYXRpb24udHlwZXNcIjtcbmltcG9ydCB7IHdhdGNoQWdlbnQgfSBmcm9tIFwiLi4vLi4vdXRpbHMvYWdlbnQudXRpbHNcIjtcbmltcG9ydCB7IEFnZW50V2F0Y2hSZXN1bHQgfSBmcm9tIFwiLi4vLi4vY29yZS9jb3BpbG90a2l0LnR5cGVzXCI7XG5pbXBvcnQgeyBERUZBVUxUX0FHRU5UX0lELCByYW5kb21VVUlEIH0gZnJvbSBcIkBjb3BpbG90a2l0bmV4dC9zaGFyZWRcIjtcbmltcG9ydCB7IE1lc3NhZ2UsIEFic3RyYWN0QWdlbnQgfSBmcm9tIFwiQGFnLXVpL2NsaWVudFwiO1xuXG4vKipcbiAqIENvcGlsb3RDaGF0IGNvbXBvbmVudCAtIEFuZ3VsYXIgZXF1aXZhbGVudCBvZiBSZWFjdCdzIDxDb3BpbG90Q2hhdD5cbiAqIFByb3ZpZGVzIGEgY29tcGxldGUgY2hhdCBpbnRlcmZhY2UgdGhhdCB3aXJlcyBhbiBhZ2VudCB0byB0aGUgY2hhdCB2aWV3XG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGh0bWxcbiAqIDxjb3BpbG90LWNoYXQgW2FnZW50SWRdPVwiJ2RlZmF1bHQnXCIgW3RocmVhZElkXT1cIidhYmMxMjMnXCI+PC9jb3BpbG90LWNoYXQ+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImNvcGlsb3QtY2hhdFwiLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBDb3BpbG90Q2hhdFZpZXdDb21wb25lbnRdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogQ29waWxvdENoYXRDb25maWd1cmF0aW9uU2VydmljZSxcbiAgICAgIGRlcHM6IFtcbiAgICAgICAgW25ldyBPcHRpb25hbCgpLCBuZXcgU2tpcFNlbGYoKSwgQ29waWxvdENoYXRDb25maWd1cmF0aW9uU2VydmljZV0sXG4gICAgICAgIFtuZXcgT3B0aW9uYWwoKSwgQ09QSUxPVF9DSEFUX0lOSVRJQUxfQ09ORklHXSxcbiAgICAgIF0sXG4gICAgICB1c2VGYWN0b3J5OiAoXG4gICAgICAgIHBhcmVudDogQ29waWxvdENoYXRDb25maWd1cmF0aW9uU2VydmljZSB8IG51bGwsXG4gICAgICAgIGluaXRpYWw6IENvcGlsb3RDaGF0Q29uZmlndXJhdGlvbiB8IG51bGxcbiAgICAgICkgPT4gcGFyZW50ID8/IG5ldyBDb3BpbG90Q2hhdENvbmZpZ3VyYXRpb25TZXJ2aWNlKGluaXRpYWwgPz8gbnVsbCksXG4gICAgfSxcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8Y29waWxvdC1jaGF0LXZpZXdcbiAgICAgIFttZXNzYWdlc109XCJtZXNzYWdlcygpXCJcbiAgICAgIFthdXRvU2Nyb2xsXT1cInRydWVcIlxuICAgICAgW21lc3NhZ2VWaWV3Q2xhc3NdPVwiJ3ctZnVsbCdcIlxuICAgICAgW3Nob3dDdXJzb3JdPVwic2hvd0N1cnNvcigpXCJcbiAgICA+XG4gICAgPC9jb3BpbG90LWNoYXQtdmlldz5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgQ29waWxvdENoYXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgQElucHV0KCkgYWdlbnRJZD86IHN0cmluZztcbiAgQElucHV0KCkgdGhyZWFkSWQ/OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBjaGF0Q29uZmlnOiBDb3BpbG90Q2hhdENvbmZpZ3VyYXRpb25TZXJ2aWNlIHwgbnVsbCxcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3JcbiAgKSB7XG4gICAgLy8gQ3JlYXRlIGluaXRpYWwgd2F0Y2hlciBvbmNlIChjb25zdHJ1Y3RvciBpcyBhIHNhZmUgaW5qZWN0aW9uIGNvbnRleHQpXG4gICAgY29uc3QgaW5pdGlhbElkID0gdGhpcy5hZ2VudElkID8/IERFRkFVTFRfQUdFTlRfSUQ7XG4gICAgdGhpcy5jcmVhdGVXYXRjaGVyKGluaXRpYWxJZCk7XG5cbiAgICAvLyBDb25uZWN0IG9uY2Ugd2hlbiBhZ2VudCBiZWNvbWVzIGF2YWlsYWJsZVxuICAgIGVmZmVjdChcbiAgICAgICgpID0+IHtcbiAgICAgICAgY29uc3QgYSA9IHRoaXMuYWdlbnQoKTtcbiAgICAgICAgaWYgKCFhKSByZXR1cm47XG4gICAgICAgIC8vIEFwcGx5IHRocmVhZCBpZCB3aGVuIGFnZW50IGlzIGF2YWlsYWJsZVxuICAgICAgICBhLnRocmVhZElkID0gdGhpcy50aHJlYWRJZCB8fCB0aGlzLmdlbmVyYXRlZFRocmVhZElkO1xuICAgICAgICBpZiAoIXRoaXMuaGFzQ29ubmVjdGVkT25jZSkge1xuICAgICAgICAgIHRoaXMuaGFzQ29ubmVjdGVkT25jZSA9IHRydWU7XG4gICAgICAgICAgaWYgKCdpc0NvcGlsb3RLaXRBZ2VudCcgaW4gKGEgYXMgYW55KSkge1xuICAgICAgICAgICAgdGhpcy5jb25uZWN0VG9BZ2VudChhKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gTm90IGEgQ29waWxvdEtpdCBhZ2VudDogZW5zdXJlIFVJIG5vdCBzaG93aW5nIGxvYWRpbmcgY3Vyc29yXG4gICAgICAgICAgICB0aGlzLnNob3dDdXJzb3Iuc2V0KGZhbHNlKTtcbiAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfVxuICAgICk7XG4gIH1cblxuICAvLyBTaWduYWxzIGZyb20gd2F0Y2hBZ2VudCAtIHVzaW5nIGRpcmVjdCByZWZlcmVuY2VzIGluc3RlYWQgb2YgYXNzaWdubWVudFxuICBwcm90ZWN0ZWQgYWdlbnQ6IFNpZ25hbDxBYnN0cmFjdEFnZW50IHwgdW5kZWZpbmVkPiA9IHNpZ25hbDxcbiAgICBBYnN0cmFjdEFnZW50IHwgdW5kZWZpbmVkXG4gID4odW5kZWZpbmVkKS5hc1JlYWRvbmx5KCkgYXMgdW5rbm93biBhcyBTaWduYWw8QWJzdHJhY3RBZ2VudCB8IHVuZGVmaW5lZD47XG4gIHByb3RlY3RlZCBtZXNzYWdlczogU2lnbmFsPE1lc3NhZ2VbXT4gPSBzaWduYWw8TWVzc2FnZVtdPihcbiAgICBbXVxuICApLmFzUmVhZG9ubHkoKSBhcyB1bmtub3duIGFzIFNpZ25hbDxNZXNzYWdlW10+O1xuICBwcm90ZWN0ZWQgaXNSdW5uaW5nOiBTaWduYWw8Ym9vbGVhbj4gPSBzaWduYWw8Ym9vbGVhbj4oXG4gICAgZmFsc2VcbiAgKS5hc1JlYWRvbmx5KCkgYXMgdW5rbm93biBhcyBTaWduYWw8Ym9vbGVhbj47XG4gIHByb3RlY3RlZCBzaG93Q3Vyc29yID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcblxuICBwcml2YXRlIGdlbmVyYXRlZFRocmVhZElkOiBzdHJpbmcgPSByYW5kb21VVUlEKCk7XG4gIHByaXZhdGUgYWdlbnRXYXRjaGVyPzogQWdlbnRXYXRjaFJlc3VsdDtcbiAgcHJpdmF0ZSBoYXNDb25uZWN0ZWRPbmNlID0gZmFsc2U7XG4gIHByaXZhdGUgbGFzdEFnZW50SWQ/OiBzdHJpbmc7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXR1cENoYXRIYW5kbGVycygpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzW1wiYWdlbnRJZFwiXSAmJiAhY2hhbmdlc1tcImFnZW50SWRcIl0uZmlyc3RDaGFuZ2UpIHtcbiAgICAgIGNvbnN0IG5ld0lkID0gdGhpcy5hZ2VudElkID8/IERFRkFVTFRfQUdFTlRfSUQ7XG4gICAgICB0aGlzLmNyZWF0ZVdhdGNoZXIobmV3SWQpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlc1tcInRocmVhZElkXCJdICYmICFjaGFuZ2VzW1widGhyZWFkSWRcIl0uZmlyc3RDaGFuZ2UpIHtcbiAgICAgIGNvbnN0IGEgPSB0aGlzLmFnZW50KCk7XG4gICAgICBpZiAoYSkge1xuICAgICAgICBhLnRocmVhZElkID0gdGhpcy50aHJlYWRJZCB8fCB0aGlzLmdlbmVyYXRlZFRocmVhZElkO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY29ubmVjdFRvQWdlbnQoYWdlbnQ6IEFic3RyYWN0QWdlbnQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIWFnZW50KSByZXR1cm47XG5cbiAgICB0aGlzLnNob3dDdXJzb3Iuc2V0KHRydWUpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGFnZW50LnJ1bkFnZW50KFxuICAgICAgICB7IGZvcndhcmRlZFByb3BzOiB7IF9fY29waWxvdGtpdENvbm5lY3Q6IHRydWUgfSB9LFxuICAgICAgICB7XG4gICAgICAgICAgb25UZXh0TWVzc2FnZVN0YXJ0RXZlbnQ6ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2hvd0N1cnNvci5zZXQoZmFsc2UpO1xuICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgb25Ub29sQ2FsbFN0YXJ0RXZlbnQ6ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2hvd0N1cnNvci5zZXQoZmFsc2UpO1xuICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgIH0sXG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgICB0aGlzLnNob3dDdXJzb3Iuc2V0KGZhbHNlKTtcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFwiRmFpbGVkIHRvIGNvbm5lY3QgdG8gYWdlbnQ6XCIsIGVycm9yKTtcbiAgICAgIHRoaXMuc2hvd0N1cnNvci5zZXQoZmFsc2UpO1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cENoYXRIYW5kbGVycygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuY2hhdENvbmZpZykgcmV0dXJuO1xuXG4gICAgLy8gSGFuZGxlIGlucHV0IHN1Ym1pc3Npb25cbiAgICB0aGlzLmNoYXRDb25maWcuc2V0U3VibWl0SGFuZGxlcihhc3luYyAodmFsdWU6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgYWdlbnQgPSB0aGlzLmFnZW50KCk7XG4gICAgICBpZiAoIWFnZW50IHx8ICF2YWx1ZS50cmltKCkpIHJldHVybjtcblxuICAgICAgLy8gQWRkIHVzZXIgbWVzc2FnZVxuICAgICAgY29uc3QgdXNlck1lc3NhZ2U6IE1lc3NhZ2UgPSB7XG4gICAgICAgIGlkOiByYW5kb21VVUlEKCksXG4gICAgICAgIHJvbGU6IFwidXNlclwiLFxuICAgICAgICBjb250ZW50OiB2YWx1ZSxcbiAgICAgIH07XG4gICAgICBhZ2VudC5hZGRNZXNzYWdlKHVzZXJNZXNzYWdlKTtcblxuICAgICAgLy8gQ2xlYXIgdGhlIGlucHV0XG4gICAgICB0aGlzLmNoYXRDb25maWchLnNldElucHV0VmFsdWUoXCJcIik7XG5cbiAgICAgIC8vIFNob3cgY3Vyc29yIHdoaWxlIHByb2Nlc3NpbmdcbiAgICAgIHRoaXMuc2hvd0N1cnNvci5zZXQodHJ1ZSk7XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcblxuICAgICAgLy8gUnVuIHRoZSBhZ2VudCB3aXRoIG5hbWVkIHN1YnNjcmliZXIgY2FsbGJhY2tzXG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBhZ2VudC5ydW5BZ2VudChcbiAgICAgICAgICB7fSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBvblRleHRNZXNzYWdlU3RhcnRFdmVudDogKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnNob3dDdXJzb3Iuc2V0KGZhbHNlKTtcbiAgICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG9uVG9vbENhbGxTdGFydEV2ZW50OiAoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuc2hvd0N1cnNvci5zZXQoZmFsc2UpO1xuICAgICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXCJBZ2VudCBydW4gZXJyb3I6XCIsIGVycm9yKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHRoaXMuc2hvd0N1cnNvci5zZXQoZmFsc2UpO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIEhhbmRsZSBpbnB1dCB2YWx1ZSBjaGFuZ2VzIChvcHRpb25hbClcbiAgICB0aGlzLmNoYXRDb25maWcuc2V0Q2hhbmdlSGFuZGxlcigoKSA9PiB7XG4gICAgICAvLyBLZWVwIGlucHV0IHN0YXRlIGlmIG5lZWRlZFxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYWdlbnRXYXRjaGVyPy51bnN1YnNjcmliZSkge1xuICAgICAgdGhpcy5hZ2VudFdhdGNoZXIudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVdhdGNoZXIoZGVzaXJlZEFnZW50SWQ6IHN0cmluZykge1xuICAgIC8vIFRlYXIgZG93biBwcmV2aW91cyB3YXRjaGVyIGlmIGl0IGV4aXN0c1xuICAgIGlmICh0aGlzLmFnZW50V2F0Y2hlcj8udW5zdWJzY3JpYmUpIHtcbiAgICAgIHRoaXMuYWdlbnRXYXRjaGVyLnVuc3Vic2NyaWJlKCk7XG4gICAgICB0aGlzLmFnZW50V2F0Y2hlciA9IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgLy8gU2V0dXAgd2F0Y2hlciBmb3IgZGVzaXJlZCBhZ2VudCAtIGVuc3VyZSBpbmplY3Rpb24gY29udGV4dFxuICAgIHRoaXMuYWdlbnRXYXRjaGVyID0gcnVuSW5JbmplY3Rpb25Db250ZXh0KHRoaXMuaW5qZWN0b3IsICgpID0+XG4gICAgICB3YXRjaEFnZW50KHsgYWdlbnRJZDogZGVzaXJlZEFnZW50SWQgfSlcbiAgICApO1xuICAgIHRoaXMuYWdlbnQgPSB0aGlzLmFnZW50V2F0Y2hlci5hZ2VudDtcbiAgICB0aGlzLm1lc3NhZ2VzID0gdGhpcy5hZ2VudFdhdGNoZXIubWVzc2FnZXM7XG4gICAgdGhpcy5pc1J1bm5pbmcgPSB0aGlzLmFnZW50V2F0Y2hlci5pc1J1bm5pbmc7XG4gICAgdGhpcy5oYXNDb25uZWN0ZWRPbmNlID0gZmFsc2U7XG4gICAgdGhpcy5sYXN0QWdlbnRJZCA9IGRlc2lyZWRBZ2VudElkO1xuICB9XG59XG4iXX0=
|
|
@@ -70,20 +70,17 @@ export class CopilotKitToolRenderComponent {
|
|
|
70
70
|
this.container.clear();
|
|
71
71
|
// Create the component
|
|
72
72
|
this.componentRef = this.container.createComponent(componentClass);
|
|
73
|
-
//
|
|
74
|
-
|
|
75
|
-
|
|
73
|
+
// Determine declared inputs to avoid NG0303 logs
|
|
74
|
+
const cmpDef = componentClass.ɵcmp;
|
|
75
|
+
const declaredInputs = new Set(Object.keys(cmpDef?.inputs ?? {}));
|
|
76
|
+
if (declaredInputs.has('props')) {
|
|
76
77
|
this.componentRef.setInput('props', props);
|
|
77
78
|
}
|
|
78
|
-
|
|
79
|
-
// If props input doesn't exist, try setting individual inputs
|
|
79
|
+
else {
|
|
80
80
|
for (const [key, value] of Object.entries(props)) {
|
|
81
|
-
|
|
81
|
+
if (declaredInputs.has(key)) {
|
|
82
82
|
this.componentRef.setInput(key, value);
|
|
83
83
|
}
|
|
84
|
-
catch (inputError) {
|
|
85
|
-
// Input might not exist on the component, skip it
|
|
86
|
-
}
|
|
87
84
|
}
|
|
88
85
|
}
|
|
89
86
|
// Trigger change detection
|
|
@@ -150,4 +147,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
150
147
|
type: ViewChild,
|
|
151
148
|
args: ["dynamicContainer", { read: ViewContainerRef, static: true }]
|
|
152
149
|
}] } });
|
|
153
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29waWxvdGtpdC10b29sLXJlbmRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9jb3BpbG90a2l0LXRvb2wtcmVuZGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxnQkFBZ0IsRUFDaEIsV0FBVyxFQUtYLE1BQU0sRUFDTixTQUFTLEdBRVYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBSy9ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7O0FBZTFELE1BQU0sT0FBTyw2QkFBNkI7SUFDL0IsUUFBUSxDQUFVO0lBQ2xCLElBQUksQ0FBTTtJQUNWLE1BQU0sR0FBbUIsY0FBYyxDQUFDLFVBQVUsQ0FBQztJQUNuRCxNQUFNLENBQU87SUFDYixXQUFXLENBQVU7SUFHdEIsU0FBUyxDQUFvQjtJQUU3QixVQUFVLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDdkMsWUFBWSxDQUFxQjtJQUV6QyxXQUFXLENBQW9CO0lBQy9CLGVBQWUsQ0FBTztJQUV0QixlQUFlO1FBQ2IsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFDRSxPQUFPLENBQUMsVUFBVSxDQUFDO1lBQ25CLE9BQU8sQ0FBQyxNQUFNLENBQUM7WUFDZixPQUFPLENBQUMsUUFBUSxDQUFDO1lBQ2pCLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFDakIsQ0FBQztZQUNELElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNwQixDQUFDO0lBQ0gsQ0FBQztJQUVPLFVBQVU7UUFDaEIsMkJBQTJCO1FBQzNC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OlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgVmlld0NvbnRhaW5lclJlZixcbiAgVGVtcGxhdGVSZWYsXG4gIFR5cGUsXG4gIE9uQ2hhbmdlcyxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgQ29tcG9uZW50UmVmLFxuICBpbmplY3QsXG4gIFZpZXdDaGlsZCxcbiAgQWZ0ZXJWaWV3SW5pdCxcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IENvcGlsb3RLaXRTZXJ2aWNlIH0gZnJvbSBcIi4uL2NvcmUvY29waWxvdGtpdC5zZXJ2aWNlXCI7XG5pbXBvcnQgdHlwZSB7XG4gIFRvb2xDYWxsUHJvcHMsXG4gIEFuZ3VsYXJUb29sQ2FsbFJlbmRlcixcbn0gZnJvbSBcIi4uL2NvcmUvY29waWxvdGtpdC50eXBlc1wiO1xuaW1wb3J0IHsgVG9vbENhbGxTdGF0dXMgfSBmcm9tIFwiLi4vY29yZS9jb3BpbG90a2l0LnR5cGVzXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJjb3BpbG90a2l0LXRvb2wtcmVuZGVyXCIsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxuZy1jb250YWluZXIgI2R5bmFtaWNDb250YWluZXI+PC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRlbXBsYXRlUmVmICYmIHRlbXBsYXRlQ29udGV4dFwiPlxuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlUmVmOyBjb250ZXh0OiB0ZW1wbGF0ZUNvbnRleHRcIlxuICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBDb3BpbG90S2l0VG9vbFJlbmRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpIHRvb2xOYW1lITogc3RyaW5nO1xuICBASW5wdXQoKSBhcmdzOiBhbnk7XG4gIEBJbnB1dCgpIHN0YXR1czogVG9vbENhbGxTdGF0dXMgPSBUb29sQ2FsbFN0YXR1cy5JblByb2dyZXNzO1xuICBASW5wdXQoKSByZXN1bHQ/OiBhbnk7XG4gIEBJbnB1dCgpIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIEBWaWV3Q2hpbGQoXCJkeW5hbWljQ29udGFpbmVyXCIsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiB0cnVlIH0pXG4gIHByaXZhdGUgY29udGFpbmVyITogVmlld0NvbnRhaW5lclJlZjtcblxuICBwcml2YXRlIGNvcGlsb3RraXQgPSBpbmplY3QoQ29waWxvdEtpdFNlcnZpY2UpO1xuICBwcml2YXRlIGNvbXBvbmVudFJlZj86IENvbXBvbmVudFJlZjxhbnk+O1xuXG4gIHRlbXBsYXRlUmVmPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgdGVtcGxhdGVDb250ZXh0PzogYW55O1xuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlbmRlclRvb2woKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICBjaGFuZ2VzW1widG9vbE5hbWVcIl0gfHxcbiAgICAgIGNoYW5nZXNbXCJhcmdzXCJdIHx8XG4gICAgICBjaGFuZ2VzW1wic3RhdHVzXCJdIHx8XG4gICAgICBjaGFuZ2VzW1wicmVzdWx0XCJdXG4gICAgKSB7XG4gICAgICB0aGlzLnJlbmRlclRvb2woKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlbmRlclRvb2woKTogdm9pZCB7XG4gICAgLy8gQ2xlYXIgZXhpc3RpbmcgY29tcG9uZW50XG4gICAgaWYgKHRoaXMuY29tcG9uZW50UmVmKSB7XG4gICAgICB0aGlzLmNvbXBvbmVudFJlZi5kZXN0cm95KCk7XG4gICAgICB0aGlzLmNvbXBvbmVudFJlZiA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvLyBDbGVhciB0ZW1wbGF0ZVxuICAgIHRoaXMudGVtcGxhdGVSZWYgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy50ZW1wbGF0ZUNvbnRleHQgPSB1bmRlZmluZWQ7XG5cbiAgICBpZiAoIXRoaXMudG9vbE5hbWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBHZXQgdGhlIHRvb2wgcmVuZGVyIGNvbmZpZ3VyYXRpb25cbiAgICBjb25zdCB0b29sUmVuZGVyID0gdGhpcy5jb3BpbG90a2l0LmdldFRvb2xSZW5kZXIodGhpcy50b29sTmFtZSkgYXNcbiAgICAgIHwgQW5ndWxhclRvb2xDYWxsUmVuZGVyXG4gICAgICB8IHVuZGVmaW5lZDtcblxuICAgIGlmICghdG9vbFJlbmRlcikge1xuICAgICAgY29uc29sZS53YXJuKGBObyByZW5kZXIgZm91bmQgZm9yIHRvb2w6ICR7dGhpcy50b29sTmFtZX1gKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBQcmVwYXJlIHByb3BzIHRvIHBhc3MgdG8gdGhlIGNvbXBvbmVudFxuICAgIGNvbnN0IHByb3BzOiBUb29sQ2FsbFByb3BzPGFueT4gPSB7XG4gICAgICBuYW1lOiB0aGlzLnRvb2xOYW1lLFxuICAgICAgZGVzY3JpcHRpb246IHRoaXMuZGVzY3JpcHRpb24gfHwgXCJcIixcbiAgICAgIGFyZ3M6IHRoaXMuYXJncyxcbiAgICAgIHN0YXR1czogdGhpcy5zdGF0dXMsXG4gICAgICByZXN1bHQ6IHRoaXMucmVzdWx0LFxuICAgIH07XG5cbiAgICAvLyBDaGVjayBpZiByZW5kZXIgaXMgYSBDb21wb25lbnQgY2xhc3Mgb3IgVGVtcGxhdGVSZWZcbiAgICBpZiAodGhpcy5pc0NvbXBvbmVudENsYXNzKHRvb2xSZW5kZXIucmVuZGVyKSkge1xuICAgICAgLy8gQ3JlYXRlIGNvbXBvbmVudCBkeW5hbWljYWxseVxuICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnQodG9vbFJlbmRlci5yZW5kZXIsIHByb3BzKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNUZW1wbGF0ZVJlZih0b29sUmVuZGVyLnJlbmRlcikpIHtcbiAgICAgIC8vIFVzZSB0ZW1wbGF0ZVxuICAgICAgdGhpcy5yZW5kZXJUZW1wbGF0ZSh0b29sUmVuZGVyLnJlbmRlciwgcHJvcHMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBJbnZhbGlkIHJlbmRlciB0eXBlIGZvciB0b29sOiAke3RoaXMudG9vbE5hbWV9YCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJDb21wb25lbnQoXG4gICAgY29tcG9uZW50Q2xhc3M6IFR5cGU8YW55PixcbiAgICBwcm9wczogVG9vbENhbGxQcm9wc1xuICApOiB2b2lkIHtcbiAgICAvLyBDbGVhciB0aGUgY29udGFpbmVyXG4gICAgdGhpcy5jb250YWluZXIuY2xlYXIoKTtcblxuICAgIC8vIENyZWF0ZSB0aGUgY29tcG9uZW50XG4gICAgdGhpcy5jb21wb25lbnRSZWYgPSB0aGlzLmNvbnRhaW5lci5jcmVhdGVDb21wb25lbnQoY29tcG9uZW50Q2xhc3MpO1xuXG4gICAgLy8gU2V0IGlucHV0cyBvbiB0aGUgY29tcG9uZW50IHVzaW5nIHNldElucHV0XG4gICAgLy8gVHJ5IHNldHRpbmcgYSBzaW5nbGUgJ3Byb3BzJyBpbnB1dCBmaXJzdFxuICAgIHRyeSB7XG4gICAgICB0aGlzLmNvbXBvbmVudFJlZi5zZXRJbnB1dCgncHJvcHMnLCBwcm9wcyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLy8gSWYgcHJvcHMgaW5wdXQgZG9lc24ndCBleGlzdCwgdHJ5IHNldHRpbmcgaW5kaXZpZHVhbCBpbnB1dHNcbiAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHByb3BzKSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLnNldElucHV0KGtleSwgdmFsdWUpO1xuICAgICAgICB9IGNhdGNoIChpbnB1dEVycm9yKSB7XG4gICAgICAgICAgLy8gSW5wdXQgbWlnaHQgbm90IGV4aXN0IG9uIHRoZSBjb21wb25lbnQsIHNraXAgaXRcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRyaWdnZXIgY2hhbmdlIGRldGVjdGlvblxuICAgIHRoaXMuY29tcG9uZW50UmVmLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyVGVtcGxhdGUoXG4gICAgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4sXG4gICAgcHJvcHM6IFRvb2xDYWxsUHJvcHNcbiAgKTogdm9pZCB7XG4gICAgdGhpcy50ZW1wbGF0ZVJlZiA9IHRlbXBsYXRlO1xuICAgIHRoaXMudGVtcGxhdGVDb250ZXh0ID0ge1xuICAgICAgJGltcGxpY2l0OiBwcm9wcyxcbiAgICAgIG5hbWU6IHByb3BzLm5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogcHJvcHMuZGVzY3JpcHRpb24sXG4gICAgICBhcmdzOiBwcm9wcy5hcmdzLFxuICAgICAgc3RhdHVzOiBwcm9wcy5zdGF0dXMsXG4gICAgICByZXN1bHQ6IHByb3BzLnJlc3VsdCxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBpc0NvbXBvbmVudENsYXNzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBUeXBlPGFueT4ge1xuICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09IFwiZnVuY3Rpb25cIiAmJiB2YWx1ZS5wcm90b3R5cGU7XG4gIH1cblxuICBwcml2YXRlIGlzVGVtcGxhdGVSZWYodmFsdWU6IGFueSk6IHZhbHVlIGlzIFRlbXBsYXRlUmVmPGFueT4ge1xuICAgIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY29tcG9uZW50UmVmKSB7XG4gICAgICB0aGlzLmNvbXBvbmVudFJlZi5kZXN0cm95KCk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
150
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29waWxvdGtpdC10b29sLXJlbmRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9jb3BpbG90a2l0LXRvb2wtcmVuZGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxnQkFBZ0IsRUFDaEIsV0FBVyxFQUtYLE1BQU0sRUFDTixTQUFTLEdBRVYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBSy9ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7O0FBZTFELE1BQU0sT0FBTyw2QkFBNkI7SUFDL0IsUUFBUSxDQUFVO0lBQ2xCLElBQUksQ0FBTTtJQUNWLE1BQU0sR0FBbUIsY0FBYyxDQUFDLFVBQVUsQ0FBQztJQUNuRCxNQUFNLENBQU87SUFDYixXQUFXLENBQVU7SUFHdEIsU0FBUyxDQUFvQjtJQUU3QixVQUFVLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDdkMsWUFBWSxDQUFxQjtJQUV6QyxXQUFXLENBQW9CO0lBQy9CLGVBQWUsQ0FBTztJQUV0QixlQUFlO1FBQ2IsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFDRSxPQUFPLENBQUMsVUFBVSxDQUFDO1lBQ25CLE9BQU8sQ0FBQyxNQUFNLENBQUM7WUFDZixPQUFPLENBQUMsUUFBUSxDQUFDO1lBQ2pCLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFDakIsQ0FBQztZQUNELElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNwQixDQUFDO0lBQ0gsQ0FBQztJQUVPLFVBQVU7UUFDaEIsMkJBQTJCO1FBQzNC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c0JBQW5CLEtBQUs7Z0JBR0UsU0FBUztzQkFEaEIsU0FBUzt1QkFBQyxrQkFBa0IsRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgVmlld0NvbnRhaW5lclJlZixcbiAgVGVtcGxhdGVSZWYsXG4gIFR5cGUsXG4gIE9uQ2hhbmdlcyxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgQ29tcG9uZW50UmVmLFxuICBpbmplY3QsXG4gIFZpZXdDaGlsZCxcbiAgQWZ0ZXJWaWV3SW5pdCxcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IENvcGlsb3RLaXRTZXJ2aWNlIH0gZnJvbSBcIi4uL2NvcmUvY29waWxvdGtpdC5zZXJ2aWNlXCI7XG5pbXBvcnQgdHlwZSB7XG4gIFRvb2xDYWxsUHJvcHMsXG4gIEFuZ3VsYXJUb29sQ2FsbFJlbmRlcixcbn0gZnJvbSBcIi4uL2NvcmUvY29waWxvdGtpdC50eXBlc1wiO1xuaW1wb3J0IHsgVG9vbENhbGxTdGF0dXMgfSBmcm9tIFwiLi4vY29yZS9jb3BpbG90a2l0LnR5cGVzXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJjb3BpbG90a2l0LXRvb2wtcmVuZGVyXCIsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxuZy1jb250YWluZXIgI2R5bmFtaWNDb250YWluZXI+PC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRlbXBsYXRlUmVmICYmIHRlbXBsYXRlQ29udGV4dFwiPlxuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlUmVmOyBjb250ZXh0OiB0ZW1wbGF0ZUNvbnRleHRcIlxuICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBDb3BpbG90S2l0VG9vbFJlbmRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpIHRvb2xOYW1lITogc3RyaW5nO1xuICBASW5wdXQoKSBhcmdzOiBhbnk7XG4gIEBJbnB1dCgpIHN0YXR1czogVG9vbENhbGxTdGF0dXMgPSBUb29sQ2FsbFN0YXR1cy5JblByb2dyZXNzO1xuICBASW5wdXQoKSByZXN1bHQ/OiBhbnk7XG4gIEBJbnB1dCgpIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIEBWaWV3Q2hpbGQoXCJkeW5hbWljQ29udGFpbmVyXCIsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiB0cnVlIH0pXG4gIHByaXZhdGUgY29udGFpbmVyITogVmlld0NvbnRhaW5lclJlZjtcblxuICBwcml2YXRlIGNvcGlsb3RraXQgPSBpbmplY3QoQ29waWxvdEtpdFNlcnZpY2UpO1xuICBwcml2YXRlIGNvbXBvbmVudFJlZj86IENvbXBvbmVudFJlZjxhbnk+O1xuXG4gIHRlbXBsYXRlUmVmPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgdGVtcGxhdGVDb250ZXh0PzogYW55O1xuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlbmRlclRvb2woKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICBjaGFuZ2VzW1widG9vbE5hbWVcIl0gfHxcbiAgICAgIGNoYW5nZXNbXCJhcmdzXCJdIHx8XG4gICAgICBjaGFuZ2VzW1wic3RhdHVzXCJdIHx8XG4gICAgICBjaGFuZ2VzW1wicmVzdWx0XCJdXG4gICAgKSB7XG4gICAgICB0aGlzLnJlbmRlclRvb2woKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlbmRlclRvb2woKTogdm9pZCB7XG4gICAgLy8gQ2xlYXIgZXhpc3RpbmcgY29tcG9uZW50XG4gICAgaWYgKHRoaXMuY29tcG9uZW50UmVmKSB7XG4gICAgICB0aGlzLmNvbXBvbmVudFJlZi5kZXN0cm95KCk7XG4gICAgICB0aGlzLmNvbXBvbmVudFJlZiA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvLyBDbGVhciB0ZW1wbGF0ZVxuICAgIHRoaXMudGVtcGxhdGVSZWYgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy50ZW1wbGF0ZUNvbnRleHQgPSB1bmRlZmluZWQ7XG5cbiAgICBpZiAoIXRoaXMudG9vbE5hbWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBHZXQgdGhlIHRvb2wgcmVuZGVyIGNvbmZpZ3VyYXRpb25cbiAgICBjb25zdCB0b29sUmVuZGVyID0gdGhpcy5jb3BpbG90a2l0LmdldFRvb2xSZW5kZXIodGhpcy50b29sTmFtZSkgYXNcbiAgICAgIHwgQW5ndWxhclRvb2xDYWxsUmVuZGVyXG4gICAgICB8IHVuZGVmaW5lZDtcblxuICAgIGlmICghdG9vbFJlbmRlcikge1xuICAgICAgY29uc29sZS53YXJuKGBObyByZW5kZXIgZm91bmQgZm9yIHRvb2w6ICR7dGhpcy50b29sTmFtZX1gKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBQcmVwYXJlIHByb3BzIHRvIHBhc3MgdG8gdGhlIGNvbXBvbmVudFxuICAgIGNvbnN0IHByb3BzOiBUb29sQ2FsbFByb3BzPGFueT4gPSB7XG4gICAgICBuYW1lOiB0aGlzLnRvb2xOYW1lLFxuICAgICAgZGVzY3JpcHRpb246IHRoaXMuZGVzY3JpcHRpb24gfHwgXCJcIixcbiAgICAgIGFyZ3M6IHRoaXMuYXJncyxcbiAgICAgIHN0YXR1czogdGhpcy5zdGF0dXMsXG4gICAgICByZXN1bHQ6IHRoaXMucmVzdWx0LFxuICAgIH07XG5cbiAgICAvLyBDaGVjayBpZiByZW5kZXIgaXMgYSBDb21wb25lbnQgY2xhc3Mgb3IgVGVtcGxhdGVSZWZcbiAgICBpZiAodGhpcy5pc0NvbXBvbmVudENsYXNzKHRvb2xSZW5kZXIucmVuZGVyKSkge1xuICAgICAgLy8gQ3JlYXRlIGNvbXBvbmVudCBkeW5hbWljYWxseVxuICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnQodG9vbFJlbmRlci5yZW5kZXIsIHByb3BzKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNUZW1wbGF0ZVJlZih0b29sUmVuZGVyLnJlbmRlcikpIHtcbiAgICAgIC8vIFVzZSB0ZW1wbGF0ZVxuICAgICAgdGhpcy5yZW5kZXJUZW1wbGF0ZSh0b29sUmVuZGVyLnJlbmRlciwgcHJvcHMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBJbnZhbGlkIHJlbmRlciB0eXBlIGZvciB0b29sOiAke3RoaXMudG9vbE5hbWV9YCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJDb21wb25lbnQoXG4gICAgY29tcG9uZW50Q2xhc3M6IFR5cGU8YW55PixcbiAgICBwcm9wczogVG9vbENhbGxQcm9wc1xuICApOiB2b2lkIHtcbiAgICAvLyBDbGVhciB0aGUgY29udGFpbmVyXG4gICAgdGhpcy5jb250YWluZXIuY2xlYXIoKTtcblxuICAgIC8vIENyZWF0ZSB0aGUgY29tcG9uZW50XG4gICAgdGhpcy5jb21wb25lbnRSZWYgPSB0aGlzLmNvbnRhaW5lci5jcmVhdGVDb21wb25lbnQoY29tcG9uZW50Q2xhc3MpO1xuXG4gICAgLy8gRGV0ZXJtaW5lIGRlY2xhcmVkIGlucHV0cyB0byBhdm9pZCBORzAzMDMgbG9nc1xuICAgIGNvbnN0IGNtcERlZjogYW55ID0gKGNvbXBvbmVudENsYXNzIGFzIGFueSkuybVjbXA7XG4gICAgY29uc3QgZGVjbGFyZWRJbnB1dHMgPSBuZXcgU2V0PHN0cmluZz4oT2JqZWN0LmtleXMoY21wRGVmPy5pbnB1dHMgPz8ge30pKTtcblxuICAgIGlmIChkZWNsYXJlZElucHV0cy5oYXMoJ3Byb3BzJykpIHtcbiAgICAgIHRoaXMuY29tcG9uZW50UmVmLnNldElucHV0KCdwcm9wcycsIHByb3BzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMocHJvcHMpKSB7XG4gICAgICAgIGlmIChkZWNsYXJlZElucHV0cy5oYXMoa2V5KSkge1xuICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLnNldElucHV0KGtleSwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gVHJpZ2dlciBjaGFuZ2UgZGV0ZWN0aW9uXG4gICAgdGhpcy5jb21wb25lbnRSZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJUZW1wbGF0ZShcbiAgICB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PixcbiAgICBwcm9wczogVG9vbENhbGxQcm9wc1xuICApOiB2b2lkIHtcbiAgICB0aGlzLnRlbXBsYXRlUmVmID0gdGVtcGxhdGU7XG4gICAgdGhpcy50ZW1wbGF0ZUNvbnRleHQgPSB7XG4gICAgICAkaW1wbGljaXQ6IHByb3BzLFxuICAgICAgbmFtZTogcHJvcHMubmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBwcm9wcy5kZXNjcmlwdGlvbixcbiAgICAgIGFyZ3M6IHByb3BzLmFyZ3MsXG4gICAgICBzdGF0dXM6IHByb3BzLnN0YXR1cyxcbiAgICAgIHJlc3VsdDogcHJvcHMucmVzdWx0LFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGlzQ29tcG9uZW50Q2xhc3ModmFsdWU6IGFueSk6IHZhbHVlIGlzIFR5cGU8YW55PiB7XG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gXCJmdW5jdGlvblwiICYmIHZhbHVlLnByb3RvdHlwZTtcbiAgfVxuXG4gIHByaXZhdGUgaXNUZW1wbGF0ZVJlZih2YWx1ZTogYW55KTogdmFsdWUgaXMgVGVtcGxhdGVSZWY8YW55PiB7XG4gICAgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgVGVtcGxhdGVSZWY7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jb21wb25lbnRSZWYpIHtcbiAgICAgIHRoaXMuY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -31,4 +31,4 @@ export function provideCopilotKit(options = {}) {
|
|
|
31
31
|
},
|
|
32
32
|
];
|
|
33
33
|
}
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29waWxvdGtpdC5wcm92aWRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29yZS9jb3BpbG90a2l0LnByb3ZpZGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLGtCQUFrQixFQUNsQixxQkFBcUIsRUFDckIsaUJBQWlCLEVBQ2pCLDRCQUE0QixFQUM1Qix5QkFBeUIsRUFDekIsNEJBQTRCLEdBSTdCLE1BQU0sb0JBQW9CLENBQUM7QUFhNUIsTUFBTSxVQUFVLGlCQUFpQixDQUMvQixVQUFvQyxFQUFFO0lBRXRDLE9BQU87UUFDTDtZQUNFLE9BQU8sRUFBRSxzQkFBc0I7WUFDL0IsUUFBUSxFQUFFLE9BQU8sQ0FBQyxVQUFVO1NBQzdCO1FBQ0Q7WUFDRSxPQUFPLEVBQUUsa0JBQWtCO1lBQzNCLFFBQVEsRUFBRSxPQUFPLENBQUMsT0FBTyxJQUFJLEVBQUU7U0FDaEM7UUFDRDtZQUNFLE9BQU8sRUFBRSxxQkFBcUI7WUFDOUIsUUFBUSxFQUFFLE9BQU8sQ0FBQyxVQUFVLElBQUksRUFBRTtTQUNuQztRQUNEO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixRQUFRLEVBQUUsT0FBTyxDQUFDLE1BQU0sSUFBSSxFQUFFO1NBQy9CO1FBQ0Q7WUFDRSxPQUFPLEVBQUUsNEJBQTRCO1lBQ3JDLFFBQVEsRUFBRSxPQUFPLENBQUMsZUFBZSxJQUFJLEVBQUU7U0FDeEM7UUFDRDtZQUNFLE9BQU8sRUFBRSx5QkFBeUI7WUFDbEMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxhQUFhLElBQUksRUFBRTtTQUN0QztRQUNEO1lBQ0UsT0FBTyxFQUFFLDRCQUE0QjtZQUNyQyxRQUFRLEVBQUUsT0FBTyxDQUFDLGNBQWMsSUFBSSxFQUFFO1NBQ3ZDO0tBQ0YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcm92aWRlciB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge1xuICBDT1BJTE9US0lUX1JVTlRJTUVfVVJMLFxuICBDT1BJTE9US0lUX0hFQURFUlMsXG4gIENPUElMT1RLSVRfUFJPUEVSVElFUyxcbiAgQ09QSUxPVEtJVF9BR0VOVFMsXG4gIENPUElMT1RLSVRfUkVOREVSX1RPT0xfQ0FMTFMsXG4gIENPUElMT1RLSVRfRlJPTlRFTkRfVE9PTFMsXG4gIENPUElMT1RLSVRfSFVNQU5fSU5fVEhFX0xPT1AsXG4gIFRvb2xDYWxsUmVuZGVyLFxuICBBbmd1bGFyRnJvbnRlbmRUb29sLFxuICBBbmd1bGFySHVtYW5JblRoZUxvb3AsXG59IGZyb20gXCIuL2NvcGlsb3RraXQudHlwZXNcIjtcbmltcG9ydCB7IEFic3RyYWN0QWdlbnQgfSBmcm9tIFwiQGFnLXVpL2NsaWVudFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFByb3ZpZGVDb3BpbG90S2l0T3B0aW9ucyB7XG4gIHJ1bnRpbWVVcmw/OiBzdHJpbmc7XG4gIGhlYWRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICBwcm9wZXJ0aWVzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIGFnZW50cz86IFJlY29yZDxzdHJpbmcsIEFic3RyYWN0QWdlbnQ+O1xuICByZW5kZXJUb29sQ2FsbHM/
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29waWxvdGtpdC5wcm92aWRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29yZS9jb3BpbG90a2l0LnByb3ZpZGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLGtCQUFrQixFQUNsQixxQkFBcUIsRUFDckIsaUJBQWlCLEVBQ2pCLDRCQUE0QixFQUM1Qix5QkFBeUIsRUFDekIsNEJBQTRCLEdBSTdCLE1BQU0sb0JBQW9CLENBQUM7QUFhNUIsTUFBTSxVQUFVLGlCQUFpQixDQUMvQixVQUFvQyxFQUFFO0lBRXRDLE9BQU87UUFDTDtZQUNFLE9BQU8sRUFBRSxzQkFBc0I7WUFDL0IsUUFBUSxFQUFFLE9BQU8sQ0FBQyxVQUFVO1NBQzdCO1FBQ0Q7WUFDRSxPQUFPLEVBQUUsa0JBQWtCO1lBQzNCLFFBQVEsRUFBRSxPQUFPLENBQUMsT0FBTyxJQUFJLEVBQUU7U0FDaEM7UUFDRDtZQUNFLE9BQU8sRUFBRSxxQkFBcUI7WUFDOUIsUUFBUSxFQUFFLE9BQU8sQ0FBQyxVQUFVLElBQUksRUFBRTtTQUNuQztRQUNEO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixRQUFRLEVBQUUsT0FBTyxDQUFDLE1BQU0sSUFBSSxFQUFFO1NBQy9CO1FBQ0Q7WUFDRSxPQUFPLEVBQUUsNEJBQTRCO1lBQ3JDLFFBQVEsRUFBRSxPQUFPLENBQUMsZUFBZSxJQUFJLEVBQUU7U0FDeEM7UUFDRDtZQUNFLE9BQU8sRUFBRSx5QkFBeUI7WUFDbEMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxhQUFhLElBQUksRUFBRTtTQUN0QztRQUNEO1lBQ0UsT0FBTyxFQUFFLDRCQUE0QjtZQUNyQyxRQUFRLEVBQUUsT0FBTyxDQUFDLGNBQWMsSUFBSSxFQUFFO1NBQ3ZDO0tBQ0YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcm92aWRlciB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge1xuICBDT1BJTE9US0lUX1JVTlRJTUVfVVJMLFxuICBDT1BJTE9US0lUX0hFQURFUlMsXG4gIENPUElMT1RLSVRfUFJPUEVSVElFUyxcbiAgQ09QSUxPVEtJVF9BR0VOVFMsXG4gIENPUElMT1RLSVRfUkVOREVSX1RPT0xfQ0FMTFMsXG4gIENPUElMT1RLSVRfRlJPTlRFTkRfVE9PTFMsXG4gIENPUElMT1RLSVRfSFVNQU5fSU5fVEhFX0xPT1AsXG4gIFRvb2xDYWxsUmVuZGVyLFxuICBBbmd1bGFyRnJvbnRlbmRUb29sLFxuICBBbmd1bGFySHVtYW5JblRoZUxvb3AsXG59IGZyb20gXCIuL2NvcGlsb3RraXQudHlwZXNcIjtcbmltcG9ydCB7IEFic3RyYWN0QWdlbnQgfSBmcm9tIFwiQGFnLXVpL2NsaWVudFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFByb3ZpZGVDb3BpbG90S2l0T3B0aW9ucyB7XG4gIHJ1bnRpbWVVcmw/OiBzdHJpbmc7XG4gIGhlYWRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICBwcm9wZXJ0aWVzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIGFnZW50cz86IFJlY29yZDxzdHJpbmcsIEFic3RyYWN0QWdlbnQ+O1xuICByZW5kZXJUb29sQ2FsbHM/OiBUb29sQ2FsbFJlbmRlcltdO1xuICBmcm9udGVuZFRvb2xzPzogQW5ndWxhckZyb250ZW5kVG9vbDxhbnk+W107XG4gIGh1bWFuSW5UaGVMb29wPzogQW5ndWxhckh1bWFuSW5UaGVMb29wPGFueT5bXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVDb3BpbG90S2l0KFxuICBvcHRpb25zOiBQcm92aWRlQ29waWxvdEtpdE9wdGlvbnMgPSB7fVxuKTogUHJvdmlkZXJbXSB7XG4gIHJldHVybiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogQ09QSUxPVEtJVF9SVU5USU1FX1VSTCxcbiAgICAgIHVzZVZhbHVlOiBvcHRpb25zLnJ1bnRpbWVVcmwsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBDT1BJTE9US0lUX0hFQURFUlMsXG4gICAgICB1c2VWYWx1ZTogb3B0aW9ucy5oZWFkZXJzID8/IHt9LFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogQ09QSUxPVEtJVF9QUk9QRVJUSUVTLFxuICAgICAgdXNlVmFsdWU6IG9wdGlvbnMucHJvcGVydGllcyA/PyB7fSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IENPUElMT1RLSVRfQUdFTlRTLFxuICAgICAgdXNlVmFsdWU6IG9wdGlvbnMuYWdlbnRzID8/IHt9LFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogQ09QSUxPVEtJVF9SRU5ERVJfVE9PTF9DQUxMUyxcbiAgICAgIHVzZVZhbHVlOiBvcHRpb25zLnJlbmRlclRvb2xDYWxscyA/PyBbXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IENPUElMT1RLSVRfRlJPTlRFTkRfVE9PTFMsXG4gICAgICB1c2VWYWx1ZTogb3B0aW9ucy5mcm9udGVuZFRvb2xzID8/IFtdLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogQ09QSUxPVEtJVF9IVU1BTl9JTl9USEVfTE9PUCxcbiAgICAgIHVzZVZhbHVlOiBvcHRpb25zLmh1bWFuSW5UaGVMb29wID8/IFtdLFxuICAgIH0sXG4gIF07XG59XG4iXX0=
|
|
@@ -104,10 +104,9 @@ export class CopilotKitService {
|
|
|
104
104
|
const combined = [...this._renderToolCalls()];
|
|
105
105
|
// Add render components from frontend tools
|
|
106
106
|
this._frontendTools().forEach((tool) => {
|
|
107
|
-
if (tool.render
|
|
107
|
+
if (tool.render) {
|
|
108
108
|
combined.push({
|
|
109
109
|
name: tool.name,
|
|
110
|
-
args: tool.parameters,
|
|
111
110
|
render: tool.render,
|
|
112
111
|
...(tool.agentId && { agentId: tool.agentId }),
|
|
113
112
|
});
|
|
@@ -115,10 +114,9 @@ export class CopilotKitService {
|
|
|
115
114
|
});
|
|
116
115
|
// Add render components from human-in-the-loop tools
|
|
117
116
|
this._humanInTheLoop().forEach((tool) => {
|
|
118
|
-
if (tool.render
|
|
117
|
+
if (tool.render) {
|
|
119
118
|
combined.push({
|
|
120
119
|
name: tool.name,
|
|
121
|
-
args: tool.parameters,
|
|
122
120
|
render: tool.render,
|
|
123
121
|
...(tool.agentId && { agentId: tool.agentId }),
|
|
124
122
|
});
|
|
@@ -173,10 +171,9 @@ export class CopilotKitService {
|
|
|
173
171
|
frontendTools.forEach((tool) => {
|
|
174
172
|
allTools[tool.name] = tool;
|
|
175
173
|
// Add render component if provided
|
|
176
|
-
if (tool.render
|
|
174
|
+
if (tool.render) {
|
|
177
175
|
allRenderToolCalls.push({
|
|
178
176
|
name: tool.name,
|
|
179
|
-
args: tool.parameters,
|
|
180
177
|
render: tool.render,
|
|
181
178
|
...(tool.agentId && { agentId: tool.agentId }),
|
|
182
179
|
});
|
|
@@ -199,10 +196,9 @@ export class CopilotKitService {
|
|
|
199
196
|
};
|
|
200
197
|
allTools[tool.name] = frontendTool;
|
|
201
198
|
// Add the render component
|
|
202
|
-
if (tool.render
|
|
199
|
+
if (tool.render) {
|
|
203
200
|
allRenderToolCalls.push({
|
|
204
201
|
name: tool.name,
|
|
205
|
-
args: tool.parameters,
|
|
206
202
|
render: tool.render,
|
|
207
203
|
...(tool.agentId && { agentId: tool.agentId }),
|
|
208
204
|
});
|
|
@@ -234,16 +230,7 @@ export class CopilotKitService {
|
|
|
234
230
|
});
|
|
235
231
|
}
|
|
236
232
|
});
|
|
237
|
-
//
|
|
238
|
-
effect(() => {
|
|
239
|
-
const current = this._renderToolCalls();
|
|
240
|
-
if (current !== this.initialRenderToolCalls &&
|
|
241
|
-
this.initialRenderToolCalls.length > 0) {
|
|
242
|
-
untracked(() => {
|
|
243
|
-
console.error("renderToolCalls must be a stable object. To add/remove tools dynamically, use dynamic tool registration.");
|
|
244
|
-
});
|
|
245
|
-
}
|
|
246
|
-
});
|
|
233
|
+
// Previously warned if renderToolCalls reference changed; removed per UX feedback
|
|
247
234
|
}
|
|
248
235
|
/**
|
|
249
236
|
* Setup effects to sync runtime configuration with CopilotKitCore
|
|
@@ -341,9 +328,6 @@ export class CopilotKitService {
|
|
|
341
328
|
* Update render tool calls (warns if object reference changes)
|
|
342
329
|
*/
|
|
343
330
|
setRenderToolCalls(renderToolCalls) {
|
|
344
|
-
if (renderToolCalls !== this.initialRenderToolCalls) {
|
|
345
|
-
console.error("renderToolCalls must be a stable object. To add/remove tools dynamically, use dynamic tool registration.");
|
|
346
|
-
}
|
|
347
331
|
this._renderToolCalls.set(renderToolCalls);
|
|
348
332
|
}
|
|
349
333
|
/**
|
|
@@ -427,4 +411,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
427
411
|
type: Inject,
|
|
428
412
|
args: [COPILOTKIT_HUMAN_IN_THE_LOOP]
|
|
429
413
|
}] }] });
|
|
430
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29waWxvdGtpdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvcmUvY29waWxvdGtpdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxVQUFVLEVBQ1YsTUFBTSxFQUNOLE1BQU0sRUFDTixRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUNMLHNCQUFzQixFQUN0QixrQkFBa0IsRUFDbEIscUJBQXFCLEVBQ3JCLGlCQUFpQixFQUNqQiw0QkFBNEIsRUFDNUIseUJBQXlCLEVBQ3pCLDRCQUE0QixHQUs3QixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFDTCxjQUFjLEdBR2YsTUFBTSxzQkFBc0IsQ0FBQzs7QUFHOUI7OztHQUdHO0FBRUgsTUFBTSxPQUFPLGlCQUFpQjtJQUM1Qix3Q0FBd0M7SUFDdkIsb0JBQW9CLENBQTZCO0lBQ2pELHFCQUFxQixDQUErQjtJQUNwRCxzQkFBc0IsQ0FBNEI7SUFFbkUsK0JBQStCO0lBQ3RCLFVBQVUsQ0FBaUI7SUFFcEMsZ0JBQWdCO0lBQ0MsZ0JBQWdCLENBRS9CO0lBQ2UsdUJBQXVCLENBRXRDO0lBQ2UsV0FBVyxDQUFnRDtJQUMzRCxRQUFRLENBQW9EO0lBQzVELFdBQVcsQ0FFMUI7SUFDZSxPQUFPLENBRXRCO0lBQ2UsY0FBYyxDQUU3QjtJQUNlLGVBQWUsQ0FFOUI7SUFFRiwyQ0FBMkM7SUFDMUIsb0JBQW9CLENBQW9DO0lBRXpFLHdDQUF3QztJQUN2QixTQUFTLENBRXhCO0lBQ2UsbUJBQW1CLENBRWxDO0lBRUYsK0RBQStEO0lBQ3RELGVBQWUsQ0FBTTtJQUNyQixzQkFBc0IsQ0FBTTtJQUM1QixVQUFVLENBQU07SUFDaEIsT0FBTyxDQUFNO0lBQ2IsVUFBVSxDQUFNO0lBQ2hCLE1B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QUM7UUFDL0MsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQztRQUN4RCxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0MsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILGFBQWEsQ0FBQyxJQUFZO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDO0lBQ3JFLENBQUM7d0dBMWZVLGlCQUFpQixrQkFvRWxCLHNCQUFzQixhQUN0QixrQkFBa0IsYUFDbEIscUJBQXFCLGFBQ3JCLGlCQUFpQixhQUNqQiw0QkFBNEIsYUFFNUIseUJBQXlCLGFBRXpCLDRCQUE0Qjs0R0E1RTNCLGlCQUFpQixjQURKLE1BQU07OzRGQUNuQixpQkFBaUI7a0JBRDdCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzswQkFxRTdCLE1BQU07MkJBQUMsc0JBQXNCOzswQkFDN0IsTUFBTTsyQkFBQyxrQkFBa0I7OzBCQUN6QixNQUFNOzJCQUFDLHFCQUFxQjs7MEJBQzVCLE1BQU07MkJBQUMsaUJBQWlCOzswQkFDeEIsTUFBTTsyQkFBQyw0QkFBNEI7OzBCQUVuQyxNQUFNOzJCQUFDLHlCQUF5Qjs7MEJBRWhDLE1BQU07MkJBQUMsNEJBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSW5qZWN0YWJsZSxcbiAgSW5qZWN0LFxuICBzaWduYWwsXG4gIGNvbXB1dGVkLFxuICBlZmZlY3QsXG4gIHVudHJhY2tlZCxcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IHRvT2JzZXJ2YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcFwiO1xuaW1wb3J0IHtcbiAgQ09QSUxPVEtJVF9SVU5USU1FX1VSTCxcbiAgQ09QSUxPVEtJVF9IRUFERVJTLFxuICBDT1BJTE9US0lUX1BST1BFUlRJRVMsXG4gIENPUElMT1RLSVRfQUdFTlRTLFxuICBDT1BJTE9US0lUX1JFTkRFUl9UT09MX0NBTExTLFxuICBDT1BJTE9US0lUX0ZST05URU5EX1RPT0xTLFxuICBDT1BJTE9US0lUX0hVTUFOX0lOX1RIRV9MT09QLFxuICBDb3BpbG90S2l0Q29udGV4dFZhbHVlLFxuICBUb29sQ2FsbFJlbmRlcixcbiAgQW5ndWxhckZyb250ZW5kVG9vbCxcbiAgQW5ndWxhckh1bWFuSW5UaGVMb29wLFxufSBmcm9tIFwiLi9jb3BpbG90a2l0LnR5cGVzXCI7XG5pbXBvcnQge1xuICBDb3BpbG90S2l0Q29yZSxcbiAgQ29waWxvdEtpdENvcmVDb25maWcsXG4gIEZyb250ZW5kVG9vbCxcbn0gZnJvbSBcIkBjb3BpbG90a2l0bmV4dC9jb3JlXCI7XG5pbXBvcnQgeyBBYnN0cmFjdEFnZW50IH0gZnJvbSBcIkBhZy11aS9jbGllbnRcIjtcblxuLyoqXG4gKiBBbmd1bGFyIHNlcnZpY2UgZm9yIG1hbmFnaW5nIENvcGlsb3RLaXQgc3RhdGUgYW5kIGludGVyYWN0aW9ucy5cbiAqIFByb3ZpZGVzIHJlYWN0aXZlIHN0YXRlIG1hbmFnZW1lbnQgdXNpbmcgQW5ndWxhciBzaWduYWxzIGFuZCBvYnNlcnZhYmxlcy5cbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiBcInJvb3RcIiB9KVxuZXhwb3J0IGNsYXNzIENvcGlsb3RLaXRTZXJ2aWNlIHtcbiAgLy8gSW5pdGlhbCB2YWx1ZXMgZm9yIHN0YWJpbGl0eSB0cmFja2luZ1xuICBwcml2YXRlIHJlYWRvbmx5IGluaXRpYWxGcm9udGVuZFRvb2xzOiBBbmd1bGFyRnJvbnRlbmRUb29sPGFueT5bXTtcbiAgcHJpdmF0ZSByZWFkb25seSBpbml0aWFsSHVtYW5JblRoZUxvb3A6IEFuZ3VsYXJIdW1hbkluVGhlTG9vcDxhbnk+W107XG4gIHByaXZhdGUgcmVhZG9ubHkgaW5pdGlhbFJlbmRlclRvb2xDYWxsczogVG9vbENhbGxSZW5kZXI8dW5rbm93bj5bXTtcblxuICAvLyBDb3JlIGluc3RhbmNlIC0gY3JlYXRlZCBvbmNlXG4gIHJlYWRvbmx5IGNvcGlsb3RraXQ6IENvcGlsb3RLaXRDb3JlO1xuXG4gIC8vIFN0YXRlIHNpZ25hbHNcbiAgcHJpdmF0ZSByZWFkb25seSBfcmVuZGVyVG9vbENhbGxzOiBSZXR1cm5UeXBlPFxuICAgIHR5cGVvZiBzaWduYWw8VG9vbENhbGxSZW5kZXI8dW5rbm93bj5bXT5cbiAgPjtcbiAgcHJpdmF0ZSByZWFkb25seSBfY3VycmVudFJlbmRlclRvb2xDYWxsczogUmV0dXJuVHlwZTxcbiAgICB0eXBlb2Ygc2lnbmFsPFRvb2xDYWxsUmVuZGVyPHVua25vd24+W10+XG4gID47XG4gIHByaXZhdGUgcmVhZG9ubHkgX3J1bnRpbWVVcmw6IFJldHVyblR5cGU8dHlwZW9mIHNpZ25hbDxzdHJpbmcgfCB1bmRlZmluZWQ+PjtcbiAgcHJpdmF0ZSByZWFkb25seSBfaGVhZGVyczogUmV0dXJuVHlwZTx0eXBlb2Ygc2lnbmFsPFJlY29yZDxzdHJpbmcsIHN0cmluZz4+PjtcbiAgcHJpdmF0ZSByZWFkb25seSBfcHJvcGVydGllczogUmV0dXJuVHlwZTxcbiAgICB0eXBlb2Ygc2lnbmFsPFJlY29yZDxzdHJpbmcsIHVua25vd24+PlxuICA+O1xuICBwcml2YXRlIHJlYWRvbmx5IF9hZ2VudHM6IFJldHVyblR5cGU8XG4gICAgdHlwZW9mIHNpZ25hbDxSZWNvcmQ8c3RyaW5nLCBBYnN0cmFjdEFnZW50Pj5cbiAgPjtcbiAgcHJpdmF0ZSByZWFkb25seSBfZnJvbnRlbmRUb29sczogUmV0dXJuVHlwZTxcbiAgICB0eXBlb2Ygc2lnbmFsPEFuZ3VsYXJGcm9udGVuZFRvb2w8YW55PltdPlxuICA+O1xuICBwcml2YXRlIHJlYWRvbmx5IF9odW1hbkluVGhlTG9vcDogUmV0dXJuVHlwZTxcbiAgICB0eXBlb2Ygc2lnbmFsPEFuZ3VsYXJIdW1hbkluVGhlTG9vcDxhbnk+W10+XG4gID47XG5cbiAgLy8gUnVudGltZSBzdGF0ZSBjaGFuZ2Ugbm90aWZpY2F0aW9uIHNpZ25hbFxuICBwcml2YXRlIHJlYWRvbmx5IF9ydW50aW1lU3RhdGVWZXJzaW9uOiBSZXR1cm5UeXBlPHR5cGVvZiBzaWduYWw8bnVtYmVyPj47XG5cbiAgLy8gQ29tcHV0ZWQgc2lnbmFscyBmb3IgcHJvY2Vzc2VkIHZhbHVlc1xuICBwcml2YXRlIHJlYWRvbmx5IF9hbGxUb29sczogUmV0dXJuVHlwZTxcbiAgICB0eXBlb2YgY29tcHV0ZWQ8UmVjb3JkPHN0cmluZywgRnJvbnRlbmRUb29sPGFueT4+PlxuICA+O1xuICBwcml2YXRlIHJlYWRvbmx5IF9hbGxSZW5kZXJUb29sQ2FsbHM6IFJldHVyblR5cGU8XG4gICAgdHlwZW9mIGNvbXB1dGVkPFRvb2xDYWxsUmVuZGVyPHVua25vd24+W10+XG4gID47XG5cbiAgLy8gUHVibGljIHJlYWRvbmx5IHNpZ25hbHMgLSB3aWxsIGJlIGluaXRpYWxpemVkIGluIGNvbnN0cnVjdG9yXG4gIHJlYWRvbmx5IHJlbmRlclRvb2xDYWxsczogYW55O1xuICByZWFkb25seSBjdXJyZW50UmVuZGVyVG9vbENhbGxzOiBhbnk7XG4gIHJlYWRvbmx5IHJ1bnRpbWVVcmw6IGFueTtcbiAgcmVhZG9ubHkgaGVhZGVyczogYW55O1xuICByZWFkb25seSBwcm9wZXJ0aWVzOiBhbnk7XG4gIHJlYWRvbmx5IGFnZW50czogYW55O1xuICByZWFkb25seSBmcm9udGVuZFRvb2xzOiBhbnk7XG4gIHJlYWRvbmx5IGh1bWFuSW5UaGVMb29wOiBhbnk7XG4gIHJlYWRvbmx5IHJ1bnRpbWVTdGF0ZVZlcnNpb246IGFueTtcblxuICAvLyBPYnNlcnZhYmxlIEFQSXMgZm9yIFJ4SlMgdXNlcnMgLSB3aWxsIGJlIGluaXRpYWxpemVkIGluIGNvbnN0cnVjdG9yXG4gIHJlYWRvbmx5IHJlbmRlclRvb2xDYWxscyQ6IGFueTtcbiAgcmVhZG9ubHkgY3VycmVudFJlbmRlclRvb2xDYWxscyQ6IGFueTtcbiAgcmVhZG9ubHkgcnVudGltZVVybCQ6IGFueTtcbiAgcmVhZG9ubHkgaGVhZGVycyQ6IGFueTtcbiAgcmVhZG9ubHkgcHJvcGVydGllcyQ6IGFueTtcbiAgcmVhZG9ubHkgYWdlbnRzJDogYW55O1xuICByZWFkb25seSBmcm9udGVuZFRvb2xzJDogYW55O1xuICByZWFkb25seSBodW1hbkluVGhlTG9vcCQ6IGFueTtcblxuICAvLyBDb250ZXh0IHZhbHVlIGFzIGNvbXB1dGVkIHNpZ25hbCAtIHdpbGwgYmUgaW5pdGlhbGl6ZWQgaW4gY29uc3RydWN0b3JcbiAgcmVhZG9ubHkgY29udGV4dDogYW55O1xuICByZWFkb25seSBjb250ZXh0JDogYW55O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoQ09QSUxPVEtJVF9SVU5USU1FX1VSTCkgcnVudGltZVVybDogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIEBJbmplY3QoQ09QSUxPVEtJVF9IRUFERVJTKSBoZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuICAgIEBJbmplY3QoQ09QSUxPVEtJVF9QUk9QRVJUSUVTKSBwcm9wZXJ0aWVzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgICBASW5qZWN0KENPUElMT1RLSVRfQUdFTlRTKSBhZ2VudHM6IFJlY29yZDxzdHJpbmcsIEFic3RyYWN0QWdlbnQ+LFxuICAgIEBJbmplY3QoQ09QSUxPVEtJVF9SRU5ERVJfVE9PTF9DQUxMUylcbiAgICByZW5kZXJUb29sQ2FsbHM6IFRvb2xDYWxsUmVuZGVyPHVua25vd24+W10sXG4gICAgQEluamVjdChDT1BJTE9US0lUX0ZST05URU5EX1RPT0xTKVxuICAgIGZyb250ZW5kVG9vbHM6IEFuZ3VsYXJGcm9udGVuZFRvb2w8YW55PltdLFxuICAgIEBJbmplY3QoQ09QSUxPVEtJVF9IVU1BTl9JTl9USEVfTE9PUClcbiAgICBodW1hbkluVGhlTG9vcDogQW5ndWxhckh1bWFuSW5UaGVMb29wPGFueT5bXVxuICApIHtcbiAgICAvLyBTdG9yZSBpbml0aWFsIHZhbHVlcyBmb3Igc3RhYmlsaXR5IGNoZWNraW5nXG4gICAgdGhpcy5pbml0aWFsRnJvbnRlbmRUb29scyA9IGZyb250ZW5kVG9vbHM7XG4gICAgdGhpcy5pbml0aWFsSHVtYW5JblRoZUxvb3AgPSBodW1hbkluVGhlTG9vcDtcbiAgICB0aGlzLmluaXRpYWxSZW5kZXJUb29sQ2FsbHMgPSByZW5kZXJUb29sQ2FsbHM7XG5cbiAgICAvLyBQcm9jZXNzIHRvb2xzIGFuZCBodW1hbkluVGhlTG9vcFxuICAgIGNvbnN0IHsgYWxsVG9vbHMsIGFsbFJlbmRlclRvb2xDYWxscyB9ID0gdGhpcy5wcm9jZXNzVG9vbHMoXG4gICAgICBmcm9udGVuZFRvb2xzLFxuICAgICAgaHVtYW5JblRoZUxvb3AsXG4gICAgICByZW5kZXJUb29sQ2FsbHNcbiAgICApO1xuXG4gICAgLy8gSW5pdGlhbGl6ZSBjb3JlIGluc3RhbmNlIHdpdGggcHJvY2Vzc2VkIHRvb2xzXG4gICAgdGhpcy5jb3BpbG90a2l0ID0gbmV3IENvcGlsb3RLaXRDb3JlKHtcbiAgICAgIHJ1bnRpbWVVcmw6IHVuZGVmaW5lZCwgLy8gUHJldmVudCBzZXJ2ZXItc2lkZSBmZXRjaGluZ1xuICAgICAgaGVhZGVycyxcbiAgICAgIHByb3BlcnRpZXMsXG4gICAgICBhZ2VudHMsXG4gICAgICB0b29sczogYWxsVG9vbHMsXG4gICAgfSBhcyBDb3BpbG90S2l0Q29yZUNvbmZpZyk7XG5cbiAgICAvLyBJbml0aWFsaXplIHN0YXRlIHNpZ25hbHNcbiAgICB0aGlzLl9yZW5kZXJUb29sQ2FsbHMgPVxuICAgICAgc2lnbmFsPFRvb2xDYWxsUmVuZGVyPHVua25vd24+W10+KGFsbFJlbmRlclRvb2xDYWxscyk7XG4gICAgdGhpcy5fY3VycmVudFJlbmRlclRvb2xDYWxscyA9XG4gICAgICBzaWduYWw8VG9vbENhbGxSZW5kZXI8dW5rbm93bj5bXT4oYWxsUmVuZGVyVG9vbENhbGxzKTtcbiAgICB0aGlzLl9ydW50aW1lVXJsID0gc2lnbmFsPHN0cmluZyB8IHVuZGVmaW5lZD4ocnVudGltZVVybCk7XG4gICAgdGhpcy5faGVhZGVycyA9IHNpZ25hbDxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PihoZWFkZXJzKTtcbiAgICB0aGlzLl9wcm9wZXJ0aWVzID0gc2lnbmFsPFJlY29yZDxzdHJpbmcsIHVua25vd24+Pihwcm9wZXJ0aWVzKTtcbiAgICB0aGlzLl9hZ2VudHMgPSBzaWduYWw8UmVjb3JkPHN0cmluZywgQWJzdHJhY3RBZ2VudD4+KGFnZW50cyk7XG4gICAgdGhpcy5fZnJvbnRlbmRUb29scyA9IHNpZ25hbDxBbmd1bGFyRnJvbnRlbmRUb29sPGFueT5bXT4oZnJvbnRlbmRUb29scyk7XG4gICAgdGhpcy5faHVtYW5JblRoZUxvb3AgPSBzaWduYWw8QW5ndWxhckh1bWFuSW5UaGVMb29wPGFueT5bXT4oaHVtYW5JblRoZUxvb3ApO1xuICAgIHRoaXMuX3J1bnRpbWVTdGF0ZVZlcnNpb24gPSBzaWduYWw8bnVtYmVyPigwKTtcblxuICAgIC8vIEluaXRpYWxpemUgY29tcHV0ZWQgc2lnbmFscyBmb3IgcHJvY2Vzc2VkIHZhbHVlc1xuICAgIHRoaXMuX2FsbFRvb2xzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgY29uc3QgdG9vbHM6IFJlY29yZDxzdHJpbmcsIEZyb250ZW5kVG9vbDxhbnk+PiA9IHt9O1xuXG4gICAgICAvLyBBZGQgZnJvbnRlbmQgdG9vbHNcbiAgICAgIHRoaXMuX2Zyb250ZW5kVG9vbHMoKS5mb3JFYWNoKCh0b29sKSA9PiB7XG4gICAgICAgIHRvb2xzW3Rvb2wubmFtZV0gPSB0b29sIGFzIEZyb250ZW5kVG9vbDxhbnk+O1xuICAgICAgfSk7XG5cbiAgICAgIC8vIFByb2Nlc3MgaHVtYW4taW4tdGhlLWxvb3AgdG9vbHNcbiAgICAgIHRoaXMuX2h1bWFuSW5UaGVMb29wKCkuZm9yRWFjaCgodG9vbCkgPT4ge1xuICAgICAgICBjb25zdCBmcm9udGVuZFRvb2w6IEZyb250ZW5kVG9vbDxhbnk+ID0ge1xuICAgICAgICAgIG5hbWU6IHRvb2wubmFtZSxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogdG9vbC5kZXNjcmlwdGlvbixcbiAgICAgICAgICBwYXJhbWV0ZXJzOiB0b29sLnBhcmFtZXRlcnMsXG4gICAgICAgICAgZm9sbG93VXA6IHRvb2wuZm9sbG93VXAsXG4gICAgICAgICAgaGFuZGxlcjogYXN5bmMgKGFyZ3M6IGFueSkgPT4ge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICBgSHVtYW4taW4tdGhlLWxvb3AgdG9vbCAnJHt0b29sLm5hbWV9JyBjYWxsZWQgYnV0IG5vIGludGVyYWN0aXZlIGhhbmRsZXIgaXMgc2V0IHVwLmBcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICAgIHRvb2xzW3Rvb2wubmFtZV0gPSBmcm9udGVuZFRvb2w7XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIHRvb2xzO1xuICAgIH0pO1xuXG4gICAgdGhpcy5fYWxsUmVuZGVyVG9vbENhbGxzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgY29uc3QgY29tYmluZWQ6IFRvb2xDYWxsUmVuZGVyPHVua25vd24+W10gPSBbLi4udGhpcy5fcmVuZGVyVG9vbENhbGxzKCldO1xuXG4gICAgICAvLyBBZGQgcmVuZGVyIGNvbXBvbmVudHMgZnJvbSBmcm9udGVuZCB0b29sc1xuICAgICAgdGhpcy5fZnJvbnRlbmRUb29scygpLmZvckVhY2goKHRvb2wpID0+IHtcbiAgICAgICAgaWYgKHRvb2wucmVuZGVyICYmIHRvb2wucGFyYW1ldGVycykge1xuICAgICAgICAgIGNvbWJpbmVkLnB1c2goe1xuICAgICAgICAgICAgbmFtZTogdG9vbC5uYW1lLFxuICAgICAgICAgICAgYXJnczogdG9vbC5wYXJhbWV0ZXJzLFxuICAgICAgICAgICAgcmVuZGVyOiB0b29sLnJlbmRlcixcbiAgICAgICAgICAgIC4uLih0b29sLmFnZW50SWQgJiYgeyBhZ2VudElkOiB0b29sLmFnZW50SWQgfSksXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICAvLyBBZGQgcmVuZGVyIGNvbXBvbmVudHMgZnJvbSBodW1hbi1pbi10aGUtbG9vcCB0b29sc1xuICAgICAgdGhpcy5faHVtYW5JblRoZUxvb3AoKS5mb3JFYWNoKCh0b29sKSA9PiB7XG4gICAgICAgIGlmICh0b29sLnJlbmRlciAmJiB0b29sLnBhcmFtZXRlcnMpIHtcbiAgICAgICAgICBjb21iaW5lZC5wdXNoKHtcbiAgICAgICAgICAgIG5hbWU6IHRvb2wubmFtZSxcbiAgICAgICAgICAgIGFyZ3M6IHRvb2wucGFyYW1ldGVycyxcbiAgICAgICAgICAgIHJlbmRlcjogdG9vbC5yZW5kZXIsXG4gICAgICAgICAgICAuLi4odG9vbC5hZ2VudElkICYmIHsgYWdlbnRJZDogdG9vbC5hZ2VudElkIH0pLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIGNvbWJpbmVkO1xuICAgIH0pO1xuXG4gICAgLy8gSW5pdGlhbGl6ZSBwdWJsaWMgcmVhZG9ubHkgc2lnbmFsc1xuICAgIHRoaXMucmVuZGVyVG9vbENhbGxzID0gdGhpcy5fYWxsUmVuZGVyVG9vbENhbGxzO1xuICAgIHRoaXMuY3VycmVudFJlbmRlclRvb2xDYWxscyA9IHRoaXMuX2N1cnJlbnRSZW5kZXJUb29sQ2FsbHMuYXNSZWFkb25seSgpO1xuICAgIHRoaXMucnVudGltZVVybCA9IHRoaXMuX3J1bnRpbWVVcmwuYXNSZWFkb25seSgpO1xuICAgIHRoaXMuaGVhZGVycyA9IHRoaXMuX2hlYWRlcnMuYXNSZWFkb25seSgpO1xuICAgIHRoaXMucHJvcGVydGllcyA9IHRoaXMuX3Byb3BlcnRpZXMuYXNSZWFkb25seSgpO1xuICAgIHRoaXMuYWdlbnRzID0gdGhpcy5fYWdlbnRzLmFzUmVhZG9ubHkoKTtcbiAgICB0aGlzLmZyb250ZW5kVG9vbHMgPSB0aGlzLl9mcm9udGVuZFRvb2xzLmFzUmVhZG9ubHkoKTtcbiAgICB0aGlzLmh1bWFuSW5UaGVMb29wID0gdGhpcy5faHVtYW5JblRoZUxvb3AuYXNSZWFkb25seSgpO1xuICAgIHRoaXMucnVudGltZVN0YXRlVmVyc2lvbiA9IHRoaXMuX3J1bnRpbWVTdGF0ZVZlcnNpb24uYXNSZWFkb25seSgpO1xuXG4gICAgLy8gSW5pdGlhbGl6ZSBPYnNlcnZhYmxlIEFQSXNcbiAgICB0aGlzLnJlbmRlclRvb2xDYWxscyQgPSB0b09ic2VydmFibGUodGhpcy5yZW5kZXJUb29sQ2FsbHMpO1xuICAgIHRoaXMuY3VycmVudFJlbmRlclRvb2xDYWxscyQgPSB0b09ic2VydmFibGUodGhpcy5jdXJyZW50UmVuZGVyVG9vbENhbGxzKTtcbiAgICB0aGlzLnJ1bnRpbWVVcmwkID0gdG9PYnNlcnZhYmxlKHRoaXMucnVudGltZVVybCk7XG4gICAgdGhpcy5oZWFkZXJzJCA9IHRvT2JzZXJ2YWJsZSh0aGlzLmhlYWRlcnMpO1xuICAgIHRoaXMucHJvcGVydGllcyQgPSB0b09ic2VydmFibGUodGhpcy5wcm9wZXJ0aWVzKTtcbiAgICB0aGlzLmFnZW50cyQgPSB0b09ic2VydmFibGUodGhpcy5hZ2VudHMpO1xuICAgIHRoaXMuZnJvbnRlbmRUb29scyQgPSB0b09ic2VydmFibGUodGhpcy5mcm9udGVuZFRvb2xzKTtcbiAgICB0aGlzLmh1bWFuSW5UaGVMb29wJCA9IHRvT2JzZXJ2YWJsZSh0aGlzLmh1bWFuSW5UaGVMb29wKTtcblxuICAgIC8vIEluaXRpYWxpemUgY29udGV4dCB2YWx1ZSBhcyBjb21wdXRlZCBzaWduYWxcbiAgICB0aGlzLmNvbnRleHQgPSBjb21wdXRlZDxDb3BpbG90S2l0Q29udGV4dFZhbHVlPigoKSA9PiB7XG4gICAgICAvLyBUb3VjaCB0aGUgcnVudGltZSBzdGF0ZSB2ZXJzaW9uIHRvIGVuc3VyZSB0aGlzIGNvbXB1dGVkIHVwZGF0ZXNcbiAgICAgIC8vIHdoZW4gcnVudGltZSBldmVudHMgb2NjdXIgKGxvYWRlZC9lcnJvcilcbiAgICAgIHRoaXMucnVudGltZVN0YXRlVmVyc2lvbigpO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBjb3BpbG90a2l0OiB0aGlzLmNvcGlsb3RraXQsXG4gICAgICAgIHJlbmRlclRvb2xDYWxsczogdGhpcy5yZW5kZXJUb29sQ2FsbHMoKSxcbiAgICAgICAgY3VycmVudFJlbmRlclRvb2xDYWxsczogdGhpcy5jdXJyZW50UmVuZGVyVG9vbENhbGxzKCksXG4gICAgICAgIHNldEN1cnJlbnRSZW5kZXJUb29sQ2FsbHM6ICh2KSA9PiB0aGlzLnNldEN1cnJlbnRSZW5kZXJUb29sQ2FsbHModiksXG4gICAgICB9O1xuICAgIH0pO1xuXG4gICAgdGhpcy5jb250ZXh0JCA9IHRvT2JzZXJ2YWJsZSh0aGlzLmNvbnRleHQpO1xuXG4gICAgLy8gRWZmZWN0cyBtdXN0IGJlIGNyZWF0ZWQgaW4gaW5qZWN0aW9uIGNvbnRleHQgKGNvbnN0cnVjdG9yKVxuICAgIHRoaXMuc2V0dXBSdW50aW1lU3luY0VmZmVjdHMoKTtcbiAgICB0aGlzLnNldHVwU3RhYmlsaXR5V2FybmluZ3MoKTtcbiAgICB0aGlzLnNldHVwRXZlbnRTdWJzY3JpcHRpb24oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm9jZXNzIGZyb250ZW5kIHRvb2xzIGFuZCBodW1hbi1pbi10aGUtbG9vcCB0b29sc1xuICAgKi9cbiAgcHJpdmF0ZSBwcm9jZXNzVG9vbHMoXG4gICAgZnJvbnRlbmRUb29sczogQW5ndWxhckZyb250ZW5kVG9vbDxhbnk+W10sXG4gICAgaHVtYW5JblRoZUxvb3A6IEFuZ3VsYXJIdW1hbkluVGhlTG9vcDxhbnk+W10sXG4gICAgcmVuZGVyVG9vbENhbGxzOiBUb29sQ2FsbFJlbmRlcjx1bmtub3duPltdXG4gICk6IHtcbiAgICBhbGxUb29sczogUmVjb3JkPHN0cmluZywgRnJvbnRlbmRUb29sPGFueT4+O1xuICAgIGFsbFJlbmRlclRvb2xDYWxsczogVG9vbENhbGxSZW5kZXI8dW5rbm93bj5bXTtcbiAgfSB7XG4gICAgY29uc3QgYWxsVG9vbHM6IFJlY29yZDxzdHJpbmcsIEZyb250ZW5kVG9vbDxhbnk+PiA9IHt9O1xuICAgIGNvbnN0IGFsbFJlbmRlclRvb2xDYWxsczogVG9vbENhbGxSZW5kZXI8dW5rbm93bj5bXSA9IFsuLi5yZW5kZXJUb29sQ2FsbHNdO1xuXG4gICAgLy8gQWRkIGZyb250ZW5kIHRvb2xzXG4gICAgZnJvbnRlbmRUb29scy5mb3JFYWNoKCh0b29sKSA9PiB7XG4gICAgICBhbGxUb29sc1t0b29sLm5hbWVdID0gdG9vbCBhcyBGcm9udGVuZFRvb2w8YW55PjtcblxuICAgICAgLy8gQWRkIHJlbmRlciBjb21wb25lbnQgaWYgcHJvdmlkZWRcbiAgICAgIGlmICh0b29sLnJlbmRlciAmJiB0b29sLnBhcmFtZXRlcnMpIHtcbiAgICAgICAgYWxsUmVuZGVyVG9vbENhbGxzLnB1c2goe1xuICAgICAgICAgIG5hbWU6IHRvb2wubmFtZSxcbiAgICAgICAgICBhcmdzOiB0b29sLnBhcmFtZXRlcnMsXG4gICAgICAgICAgcmVuZGVyOiB0b29sLnJlbmRlcixcbiAgICAgICAgICAuLi4odG9vbC5hZ2VudElkICYmIHsgYWdlbnRJZDogdG9vbC5hZ2VudElkIH0pLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIFByb2Nlc3MgaHVtYW4taW4tdGhlLWxvb3AgdG9vbHNcbiAgICBodW1hbkluVGhlTG9vcC5mb3JFYWNoKCh0b29sKSA9PiB7XG4gICAgICAvLyBDcmVhdGUgYSBmcm9udGVuZCB0b29sIHdpdGggcGxhY2Vob2xkZXIgaGFuZGxlclxuICAgICAgY29uc3QgZnJvbnRlbmRUb29sOiBGcm9udGVuZFRvb2w8YW55PiA9IHtcbiAgICAgICAgbmFtZTogdG9vbC5uYW1lLFxuICAgICAgICBkZXNjcmlwdGlvbjogdG9vbC5kZXNjcmlwdGlvbixcbiAgICAgICAgcGFyYW1ldGVyczogdG9vbC5wYXJhbWV0ZXJzLFxuICAgICAgICBmb2xsb3dVcDogdG9vbC5mb2xsb3dVcCxcbiAgICAgICAgLi4uKHRvb2wuYWdlbnRJZCAmJiB7IGFnZW50SWQ6IHRvb2wuYWdlbnRJZCB9KSxcbiAgICAgICAgaGFuZGxlcjogYXN5bmMgKGFyZ3M6IGFueSkgPT4ge1xuICAgICAgICAgIC8vIFBsYWNlaG9sZGVyIGhhbmRsZXIgLSBhY3R1YWwgaW1wbGVtZW50YXRpb24gd2lsbCBiZSBoYW5kbGVkIGJ5IHRoZSByZW5kZXIgY29tcG9uZW50XG4gICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgYEh1bWFuLWluLXRoZS1sb29wIHRvb2wgJyR7dG9vbC5uYW1lfScgY2FsbGVkIGJ1dCBubyBpbnRlcmFjdGl2ZSBoYW5kbGVyIGlzIHNldCB1cC5gXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9LFxuICAgICAgfTtcbiAgICAgIGFsbFRvb2xzW3Rvb2wubmFtZV0gPSBmcm9udGVuZFRvb2w7XG5cbiAgICAgIC8vIEFkZCB0aGUgcmVuZGVyIGNvbXBvbmVudFxuICAgICAgaWYgKHRvb2wucmVuZGVyICYmIHRvb2wucGFyYW1ldGVycykge1xuICAgICAgICBhbGxSZW5kZXJUb29sQ2FsbHMucHVzaCh7XG4gICAgICAgICAgbmFtZTogdG9vbC5uYW1lLFxuICAgICAgICAgIGFyZ3M6IHRvb2wucGFyYW1ldGVycyxcbiAgICAgICAgICByZW5kZXI6IHRvb2wucmVuZGVyLFxuICAgICAgICAgIC4uLih0b29sLmFnZW50SWQgJiYgeyBhZ2VudElkOiB0b29sLmFnZW50SWQgfSksXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHsgYWxsVG9vbHMsIGFsbFJlbmRlclRvb2xDYWxscyB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHVwIHN0YWJpbGl0eSB3YXJuaW5nIGVmZmVjdHNcbiAgICovXG4gIHByaXZhdGUgc2V0dXBTdGFiaWxpdHlXYXJuaW5ncygpOiB2b2lkIHtcbiAgICAvLyBXYXJuIGlmIGZyb250ZW5kVG9vbHMgY2hhbmdlc1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBjdXJyZW50ID0gdGhpcy5fZnJvbnRlbmRUb29scygpO1xuICAgICAgaWYgKFxuICAgICAgICBjdXJyZW50ICE9PSB0aGlzLmluaXRpYWxGcm9udGVuZFRvb2xzICYmXG4gICAgICAgIHRoaXMuaW5pdGlhbEZyb250ZW5kVG9vbHMubGVuZ3RoID4gMFxuICAgICAgKSB7XG4gICAgICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIFwiZnJvbnRlbmRUb29scyBtdXN0IGJlIGEgc3RhYmxlIGFycmF5LiBUbyBhZGQvcmVtb3ZlIHRvb2xzIGR5bmFtaWNhbGx5LCB1c2UgZHluYW1pYyB0b29sIHJlZ2lzdHJhdGlvbi5cIlxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gV2FybiBpZiBodW1hbkluVGhlTG9vcCBjaGFuZ2VzXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLl9odW1hbkluVGhlTG9vcCgpO1xuICAgICAgaWYgKFxuICAgICAgICBjdXJyZW50ICE9PSB0aGlzLmluaXRpYWxIdW1hbkluVGhlTG9vcCAmJlxuICAgICAgICB0aGlzLmluaXRpYWxIdW1hbkluVGhlTG9vcC5sZW5ndGggPiAwXG4gICAgICApIHtcbiAgICAgICAgdW50cmFja2VkKCgpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgXCJodW1hbkluVGhlTG9vcCBtdXN0IGJlIGEgc3RhYmxlIGFycmF5LiBUbyBhZGQvcmVtb3ZlIGh1bWFuLWluLXRoZS1sb29wIHRvb2xzIGR5bmFtaWNhbGx5LCB1c2UgZHluYW1pYyB0b29sIHJlZ2lzdHJhdGlvbi5cIlxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gV2FybiBpZiByZW5kZXJUb29sQ2FsbHMgY2hhbmdlc1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBjdXJyZW50ID0gdGhpcy5fcmVuZGVyVG9vbENhbGxzKCk7XG4gICAgICBpZiAoXG4gICAgICAgIGN1cnJlbnQgIT09IHRoaXMuaW5pdGlhbFJlbmRlclRvb2xDYWxscyAmJlxuICAgICAgICB0aGlzLmluaXRpYWxSZW5kZXJUb29sQ2FsbHMubGVuZ3RoID4gMFxuICAgICAgKSB7XG4gICAgICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIFwicmVuZGVyVG9vbENhbGxzIG11c3QgYmUgYSBzdGFibGUgb2JqZWN0LiBUbyBhZGQvcmVtb3ZlIHRvb2xzIGR5bmFtaWNhbGx5LCB1c2UgZHluYW1pYyB0b29sIHJlZ2lzdHJhdGlvbi5cIlxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHVwIGVmZmVjdHMgdG8gc3luYyBydW50aW1lIGNvbmZpZ3VyYXRpb24gd2l0aCBDb3BpbG90S2l0Q29yZVxuICAgKi9cbiAgcHJpdmF0ZSBzZXR1cFJ1bnRpbWVTeW5jRWZmZWN0cygpOiB2b2lkIHtcbiAgICAvLyBTeW5jIHJ1bnRpbWUgVVJMXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IHVybCA9IHRoaXMucnVudGltZVVybCgpO1xuICAgICAgdW50cmFja2VkKCgpID0+IHRoaXMuY29waWxvdGtpdC5zZXRSdW50aW1lVXJsKHVybCkpO1xuICAgIH0pO1xuXG4gICAgLy8gU3luYyBoZWFkZXJzXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGhlYWRlcnMgPSB0aGlzLmhlYWRlcnMoKTtcbiAgICAgIHVudHJhY2tlZCgoKSA9PiB0aGlzLmNvcGlsb3RraXQuc2V0SGVhZGVycyhoZWFkZXJzKSk7XG4gICAgfSk7XG5cbiAgICAvLyBTeW5jIHByb3BlcnRpZXNcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgcHJvcGVydGllcyA9IHRoaXMucHJvcGVydGllcygpO1xuICAgICAgdW50cmFja2VkKCgpID0+IHRoaXMuY29waWxvdGtpdC5zZXRQcm9wZXJ0aWVzKHByb3BlcnRpZXMpKTtcbiAgICB9KTtcblxuICAgIC8vIFN5bmMgYWdlbnRzXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGFnZW50cyA9IHRoaXMuYWdlbnRzKCk7XG4gICAgICB1bnRyYWNrZWQoKCkgPT4gdGhpcy5jb3BpbG90a2l0LnNldEFnZW50cyhhZ2VudHMpKTtcbiAgICB9KTtcblxuICAgIC8vIFN5bmMgdG9vbHMgLSBjb21wdXRlZCBmcm9tIGZyb250ZW5kIHRvb2xzIGFuZCBodW1hbi1pbi10aGUtbG9vcFxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCB0b29scyA9IHRoaXMuX2FsbFRvb2xzKCk7XG4gICAgICAvLyBVcGRhdGUgY29waWxvdGtpdC50b29scyBkaXJlY3RseSBzaW5jZSB0aGVyZSdzIG5vIHNldFRvb2xzIG1ldGhvZFxuICAgICAgdW50cmFja2VkKCgpID0+IHtcbiAgICAgICAgdGhpcy5jb3BpbG90a2l0LnRvb2xzID0gdG9vbHM7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdWJzY3JpYmUgdG8gQ29waWxvdEtpdCBydW50aW1lIGV2ZW50c1xuICAgKi9cbiAgcHJpdmF0ZSBzZXR1cEV2ZW50U3Vic2NyaXB0aW9uKCk6IHZvaWQge1xuICAgIGNvbnN0IHVuc3Vic2NyaWJlID0gdGhpcy5jb3BpbG90a2l0LnN1YnNjcmliZSh7XG4gICAgICBvblJ1bnRpbWVMb2FkZWQ6ICgpID0+IHtcbiAgICAgICAgLy8gSW5jcmVtZW50IHZlcnNpb24gdG8gbm90aWZ5IGFsbCBjb25zdW1lcnMgdGhhdCBydW50aW1lIHN0YXRlIGhhcyBjaGFuZ2VkXG4gICAgICAgIC8vIFRoaXMgdHJpZ2dlcnMgcmUtZXZhbHVhdGlvbiBvZiBjb21wdXRlZCBzaWduYWxzIHRoYXQgZGVwZW5kIG9uIHJ1bnRpbWUgc3RhdGVcbiAgICAgICAgdGhpcy5ub3RpZnlSdW50aW1lU3RhdGVDaGFuZ2UoKTtcbiAgICAgIH0sXG4gICAgICBvblJ1bnRpbWVMb2FkRXJyb3I6ICgpID0+IHtcbiAgICAgICAgLy8gSW5jcmVtZW50IHZlcnNpb24gdG8gbm90aWZ5IGFsbCBjb25zdW1lcnMgdGhhdCBydW50aW1lIHN0YXRlIGhhcyBjaGFuZ2VkXG4gICAgICAgIC8vIFRoaXMgdHJpZ2dlcnMgcmUtZXZhbHVhdGlvbiBvZiBjb21wdXRlZCBzaWduYWxzIHRoYXQgZGVwZW5kIG9uIHJ1bnRpbWUgc3RhdGVcbiAgICAgICAgdGhpcy5ub3RpZnlSdW50aW1lU3RhdGVDaGFuZ2UoKTtcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvLyBSb290IHNlcnZpY2UgbGl2ZXMgZm9yIGFwcCBsaWZldGltZTsgdW5zdWJzY3JpYmUgbm90IG5lZWRlZC5cbiAgfVxuXG4gIC8qKlxuICAgKiBOb3RpZnkgY29uc3VtZXJzIHRoYXQgdGhlIHJ1bnRpbWUgc3RhdGUgaGFzIGNoYW5nZWQuXG4gICAqIFRoaXMgaXMgc2ltaWxhciB0byBSZWFjdCdzIGZvcmNlVXBkYXRlIC0gaXQgdHJpZ2dlcnMgY2hhbmdlIGRldGVjdGlvblxuICAgKiBmb3IgYW55IGNvbXB1dGVkIHNpZ25hbHMgb3IgZWZmZWN0cyB0aGF0IGRlcGVuZCBvbiBydW50aW1lIHN0YXRlLlxuICAgKi9cbiAgcHJpdmF0ZSBub3RpZnlSdW50aW1lU3RhdGVDaGFuZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5fcnVudGltZVN0YXRlVmVyc2lvbi51cGRhdGUoKHZlcnNpb24pID0+IHZlcnNpb24gKyAxKTtcbiAgfVxuXG4gIC8vIFB1YmxpYyBtdXRhdGlvbiBtZXRob2RzXG5cbiAgLyoqXG4gICAqIFVwZGF0ZSB0aGUgcnVudGltZSBVUkxcbiAgICovXG4gIHNldFJ1bnRpbWVVcmwodXJsPzogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5fcnVudGltZVVybC5zZXQodXJsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgcmVxdWVzdCBoZWFkZXJzXG4gICAqL1xuICBzZXRIZWFkZXJzKGhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pOiB2b2lkIHtcbiAgICB0aGlzLl9oZWFkZXJzLnNldChoZWFkZXJzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgcnVudGltZSBwcm9wZXJ0aWVzXG4gICAqL1xuICBzZXRQcm9wZXJ0aWVzKHByb3BlcnRpZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogdm9pZCB7XG4gICAgdGhpcy5fcHJvcGVydGllcy5zZXQocHJvcGVydGllcyk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIGFnZW50cyBjb25maWd1cmF0aW9uXG4gICAqL1xuICBzZXRBZ2VudHMoYWdlbnRzOiBSZWNvcmQ8c3RyaW5nLCBBYnN0cmFjdEFnZW50Pik6IHZvaWQge1xuICAgIHRoaXMuX2FnZW50cy5zZXQoYWdlbnRzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYW4gYWdlbnQgYnkgSURcbiAgICogQHBhcmFtIGFnZW50SWQgLSBUaGUgYWdlbnQgSUQgdG8gcmV0cmlldmVcbiAgICogQHJldHVybnMgVGhlIGFnZW50IG9yIHVuZGVmaW5lZCBpZiBub3QgZm91bmRcbiAgICovXG4gIGdldEFnZW50KGFnZW50SWQ6IHN0cmluZyk6IEFic3RyYWN0QWdlbnQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmNvcGlsb3RraXQuZ2V0QWdlbnQoYWdlbnRJZCk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIHJlbmRlciB0b29sIGNhbGxzICh3YXJucyBpZiBvYmplY3QgcmVmZXJlbmNlIGNoYW5nZXMpXG4gICAqL1xuICBzZXRSZW5kZXJUb29sQ2FsbHMocmVuZGVyVG9vbENhbGxzOiBUb29sQ2FsbFJlbmRlcjx1bmtub3duPltdKTogdm9pZCB7XG4gICAgaWYgKHJlbmRlclRvb2xDYWxscyAhPT0gdGhpcy5pbml0aWFsUmVuZGVyVG9vbENhbGxzKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICBcInJlbmRlclRvb2xDYWxscyBtdXN0IGJlIGEgc3RhYmxlIG9iamVjdC4gVG8gYWRkL3JlbW92ZSB0b29scyBkeW5hbWljYWxseSwgdXNlIGR5bmFtaWMgdG9vbCByZWdpc3RyYXRpb24uXCJcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuX3JlbmRlclRvb2xDYWxscy5zZXQocmVuZGVyVG9vbENhbGxzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgZnJvbnRlbmQgdG9vbHMgYXJyYXlcbiAgICovXG4gIHNldEZyb250ZW5kVG9vbHMoZnJvbnRlbmRUb29sczogQW5ndWxhckZyb250ZW5kVG9vbDxhbnk+W10pOiB2b2lkIHtcbiAgICBpZiAoZnJvbnRlbmRUb29scyAhPT0gdGhpcy5pbml0aWFsRnJvbnRlbmRUb29scykge1xuICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgXCJmcm9udGVuZFRvb2xzIG11c3QgYmUgYSBzdGFibGUgYXJyYXkuIFRvIGFkZC9yZW1vdmUgdG9vbHMgZHluYW1pY2FsbHksIHVzZSBkeW5hbWljIHRvb2wgcmVnaXN0cmF0aW9uLlwiXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLl9mcm9udGVuZFRvb2xzLnNldChmcm9udGVuZFRvb2xzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgaHVtYW4taW4tdGhlLWxvb3AgYXJyYXlcbiAgICovXG4gIHNldEh1bWFuSW5UaGVMb29wKGh1bWFuSW5UaGVMb29wOiBBbmd1bGFySHVtYW5JblRoZUxvb3A8YW55PltdKTogdm9pZCB7XG4gICAgaWYgKGh1bWFuSW5UaGVMb29wICE9PSB0aGlzLmluaXRpYWxIdW1hbkluVGhlTG9vcCkge1xuICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgXCJodW1hbkluVGhlTG9vcCBtdXN0IGJlIGEgc3RhYmxlIGFycmF5LiBUbyBhZGQvcmVtb3ZlIGh1bWFuLWluLXRoZS1sb29wIHRvb2xzIGR5bmFtaWNhbGx5LCB1c2UgZHluYW1pYyB0b29sIHJlZ2lzdHJhdGlvbi5cIlxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy5faHVtYW5JblRoZUxvb3Auc2V0KGh1bWFuSW5UaGVMb29wKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgY3VycmVudCByZW5kZXIgdG9vbCBjYWxsc1xuICAgKi9cbiAgc2V0Q3VycmVudFJlbmRlclRvb2xDYWxscyhyZW5kZXJUb29sQ2FsbHM6IFRvb2xDYWxsUmVuZGVyPHVua25vd24+W10pOiB2b2lkIHtcbiAgICB0aGlzLl9jdXJyZW50UmVuZGVyVG9vbENhbGxzLnNldChyZW5kZXJUb29sQ2FsbHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVyIGEgdG9vbCByZW5kZXJcbiAgICovXG4gIHJlZ2lzdGVyVG9vbFJlbmRlcihuYW1lOiBzdHJpbmcsIHJlbmRlcjogVG9vbENhbGxSZW5kZXI8dW5rbm93bj4pOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50ID0gdGhpcy5fY3VycmVudFJlbmRlclRvb2xDYWxscygpO1xuICAgIGlmIChjdXJyZW50LmZpbmQoKHIpID0+IHIubmFtZSA9PT0gbmFtZSkpIHtcbiAgICAgIGNvbnNvbGUud2FybihgVG9vbCByZW5kZXIgZm9yICcke25hbWV9JyBpcyBiZWluZyBvdmVyd3JpdHRlbmApO1xuICAgIH1cbiAgICB0aGlzLl9jdXJyZW50UmVuZGVyVG9vbENhbGxzLnNldChbXG4gICAgICAuLi5jdXJyZW50LmZpbHRlcigocikgPT4gci5uYW1lICE9PSBuYW1lKSxcbiAgICAgIHJlbmRlcixcbiAgICBdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVbnJlZ2lzdGVyIGEgdG9vbCByZW5kZXJcbiAgICovXG4gIHVucmVnaXN0ZXJUb29sUmVuZGVyKG5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLl9jdXJyZW50UmVuZGVyVG9vbENhbGxzKCk7XG4gICAgY29uc3QgZmlsdGVyZWQgPSBjdXJyZW50LmZpbHRlcigocikgPT4gci5uYW1lICE9PSBuYW1lKTtcbiAgICBpZiAoZmlsdGVyZWQubGVuZ3RoICE9PSBjdXJyZW50Lmxlbmd0aCkge1xuICAgICAgdGhpcy5fY3VycmVudFJlbmRlclRvb2xDYWxscy5zZXQoZmlsdGVyZWQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYSBzcGVjaWZpYyB0b29sIHJlbmRlclxuICAgKi9cbiAgZ2V0VG9vbFJlbmRlcihuYW1lOiBzdHJpbmcpOiBUb29sQ2FsbFJlbmRlcjx1bmtub3duPiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRSZW5kZXJUb29sQ2FsbHMoKS5maW5kKChyKSA9PiByLm5hbWUgPT09IG5hbWUpO1xuICB9XG59XG4iXX0=
|
|
414
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29waWxvdGtpdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvcmUvY29waWxvdGtpdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxVQUFVLEVBQ1YsTUFBTSxFQUNOLE1BQU0sRUFDTixRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUNMLHNCQUFzQixFQUN0QixrQkFBa0IsRUFDbEIscUJBQXFCLEVBQ3JCLGlCQUFpQixFQUNqQiw0QkFBNEIsRUFDNUIseUJBQXlCLEVBQ3pCLDRCQUE0QixHQUs3QixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFDTCxjQUFjLEdBR2YsTUFBTSxzQkFBc0IsQ0FBQzs7QUFHOUI7OztHQUdHO0FBRUgsTUFBTSxPQUFPLGlCQUFpQjtJQUM1Qix3Q0FBd0M7SUFDdkIsb0JBQW9CLENBQTZCO0lBQ2pELHFCQUFxQixDQUErQjtJQUNwRCxzQkFBc0IsQ0FBbUI7SUFFMUQsK0JBQStCO0lBQ3RCLFVBQVUsQ0FBaUI7SUFFcEMsZ0JBQWdCO0lBQ0MsZ0JBQWdCLENBRS9CO0lBQ2UsdUJBQXVCLENBRXRDO0lBQ2UsV0FBVyxDQUFnRDtJQUMzRCxRQUFRLENBQW9EO0lBQzVELFdBQVcsQ0FFMUI7SUFDZSxPQUFPLENBRXRCO0lBQ2UsY0FBYyxDQUU3QjtJQUNlLGVBQWUsQ0FFOUI7SUFFRiwyQ0FBMkM7SUFDMUIsb0JBQW9CLENBQW9DO0lBRXpFLHdDQUF3QztJQUN2QixTQUFTLENBRXhCO0lBQ2UsbUJBQW1CLENBRWxDO0lBRUYsK0RBQStEO0lBQ3RELGVBQWUsQ0FBTTtJQUNyQixzQkFBc0IsQ0FBTTtJQUM1QixVQUFVLENBQU07SUFDaEIsT0FBTyxDQUFNO0lBQ2IsVUFBVSxDQUFNO0lBQ2hCLE1BQU0sQ0FBTTtJQUNaLGFBQWEsQ0FBTTtJQUNuQixjQUFjLENBQU07SUFDcEIsbUJBQW1CLENBQU07SUFFbEMsc0VBQXNFO0lBQzdELGdCQUFnQixDQUFNO0lBQ3RCLHVCQUF1QixDQUFNO0lBQzdCLFdBQVcsQ0FBTTtJQUNqQixRQUFRLENBQU07SUFDZCxXQUFXLENBQU07SUFDakIsT0FBTyxDQUFNO0lBQ2IsY0FBYyxDQUFNO0lBQ3BCLGVBQWUsQ0FBTTtJQUU5Qix3RUFBd0U7SUFDL0QsT0FBTyxDQUFNO0lBQ2IsUUFBUSxDQUFNO0lBRXZCLFlBQ2tDLFVBQThCLEVBQ2xDLE9BQStCLEVBQzVCLFVBQW1DLEVBQ3ZDLE1BQXFDLEVBRWhFLGVBQWlDLEVBRWpDLGFBQXlDLEVBRXpDLGNBQTRDO1FBRTVDLDhDQUE4QztRQUM5QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsYUFBYSxDQUFDO1FBQzFDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxjQUFjLENBQUM7UUFDNUMsSUFBSSxDQUFDLHNCQUFzQixHQUFHLGVBQWUsQ0FBQztRQUU5QyxtQ0FBbUM7UUFDbkMsTUFBTSxFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQ3hELGFBQWEsRUFDYixjQUFjLEVBQ2QsZUFBZSxDQUNoQixDQUFDO1FBRUYsZ0RBQWdEO1FBQ2hELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxjQUFjLENBQUM7WUFDbkMsVUFBVSxFQUFFLFNBQVMsRUFBRSwrQkFBK0I7WUFDdEQsT0FBTztZQUNQLFVBQVU7WUFDVixNQUFNO1lBQ04sS0FBSyxFQUFFLFFBQVE7U0FDUSxDQUFDLENBQUM7UUFFM0IsMkJBQTJCO1FBQzNCLElBQUksQ0FBQyxnQkFBZ0I7WUFDbkIsTUFBTSxDQUFtQixrQkFBa0IsQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyx1QkFBdUI7WUFDMUIsTUFBTSxDQUFtQixrQkFBa0IsQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFxQixVQUFVLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBeUIsT0FBTyxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQTBCLFVBQVUsQ0FBQyxDQUFDO1FBQy9ELElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFnQyxNQUFNLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBNkIsYUFBYSxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLGVBQWUsR0FBRyxNQUFNLENBQStCLGNBQWMsQ0FBQyxDQUFDO1FBQzVFLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxNQUFNLENBQVMsQ0FBQyxDQUFDLENBQUM7UUFFOUMsbURBQW1EO1FBQ25ELElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUM3QixNQUFNLEtBQUssR0FBc0MsRUFBRSxDQUFDO1lBRXBELHFCQUFxQjtZQUNyQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ3JDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBeUIsQ0FBQztZQUMvQyxDQUFDLENBQUMsQ0FBQztZQUVILGtDQUFrQztZQUNsQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ3RDLE1BQU0sWUFBWSxHQUFzQjtvQkFDdEMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO29CQUNmLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztvQkFDN0IsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO29CQUMzQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7b0JBQ3ZCLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBUyxFQUFFLEVBQUU7d0JBQzNCLE9BQU8sQ0FBQyxJQUFJLENBQ1YsMkJBQTJCLElBQUksQ0FBQyxJQUFJLGdEQUFnRCxDQUNyRixDQUFDO3dCQUNGLE9BQU8sU0FBUyxDQUFDO29CQUNuQixDQUFDO2lCQUNGLENBQUM7Z0JBQ0YsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxZQUFZLENBQUM7WUFDbEMsQ0FBQyxDQUFDLENBQUM7WUFFSCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLG1CQUFtQixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDdkMsTUFBTSxRQUFRLEdBQXFCLENBQUMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO1lBRWhFLDRDQUE0QztZQUM1QyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ3JDLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUNoQixRQUFRLENBQUMsSUFBSSxDQUFDO3dCQUNaLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTt3QkFDZixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07d0JBQ25CLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztxQkFDL0MsQ0FBQyxDQUFDO2dCQUNMLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztZQUVILHFEQUFxRDtZQUNyRCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ3RDLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUNoQixRQUFRLENBQUMsSUFBSSxDQUFDO3dCQUNaLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTt3QkFDZixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07d0JBQ25CLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztxQkFDL0MsQ0FBQyxDQUFDO2dCQUNMLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztZQUVILE9BQU8sUUFBUSxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxDQUFDO1FBRUgscUNBQXFDO1FBQ3JDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDO1FBQ2hELElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDeEUsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2hELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMxQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDaEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN0RCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDeEQsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUVsRSw2QkFBNkI7UUFDN0IsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLHVCQUF1QixHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsV0FBVyxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLFFBQVEsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxXQUFXLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsT0FBTyxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLGNBQWMsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxlQUFlLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUV6RCw4Q0FBOEM7UUFDOUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxRQUFRLENBQXlCLEdBQUcsRUFBRTtZQUNuRCxrRUFBa0U7WUFDbEUsMkNBQTJDO1lBQzNDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBRTNCLE9BQU87Z0JBQ0wsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO2dCQUMzQixlQUFlLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRTtnQkFDdkMsc0JBQXNCLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixFQUFFO2dCQUNyRCx5QkFBeUIsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLENBQUMsQ0FBQzthQUNwRSxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsUUFBUSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFM0MsNkRBQTZEO1FBQzdELElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1FBQy9CLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7T0FFRztJQUNLLFlBQVksQ0FDbEIsYUFBeUMsRUFDekMsY0FBNEMsRUFDNUMsZUFBaUM7UUFLakMsTUFBTSxRQUFRLEdBQXNDLEVBQUUsQ0FBQztRQUN2RCxNQUFNLGtCQUFrQixHQUFxQixDQUFDLEdBQUcsZUFBZSxDQUFDLENBQUM7UUFFbEUscUJBQXFCO1FBQ3JCLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUM3QixRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQXlCLENBQUM7WUFFaEQsbUNBQW1DO1lBQ25DLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNoQixrQkFBa0IsQ0FBQyxJQUFJLENBQUM7b0JBQ3RCLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtvQkFDZixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07b0JBQ25CLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztpQkFDL0MsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsa0NBQWtDO1FBQ2xDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUM5QixrREFBa0Q7WUFDbEQsTUFBTSxZQUFZLEdBQXNCO2dCQUN0QyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7Z0JBQ2YsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO2dCQUM3QixVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7Z0JBQzNCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtnQkFDdkIsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUM5QyxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQVMsRUFBRSxFQUFFO29CQUMzQixzRkFBc0Y7b0JBQ3RGLE9BQU8sQ0FBQyxJQUFJLENBQ1YsMkJBQTJCLElBQUksQ0FBQyxJQUFJLGdEQUFnRCxDQUNyRixDQUFDO29CQUNGLE9BQU8sU0FBUyxDQUFDO2dCQUNuQixDQUFDO2FBQ0YsQ0FBQztZQUNGLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsWUFBWSxDQUFDO1lBRW5DLDJCQUEyQjtZQUMzQixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDaEIsa0JBQWtCLENBQUMsSUFBSSxDQUFDO29CQUN0QixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7b0JBQ2YsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO29CQUNuQixHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7aUJBQy9DLENBQUMsQ0FBQztZQUNMLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sRUFBRSxRQUFRLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7O09BRUc7SUFDSyxzQkFBc0I7UUFDNUIsZ0NBQWdDO1FBQ2hDLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDVixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdEMsSUFDRSxPQUFPLEtBQUssSUFBSSxDQUFDLG9CQUFvQjtnQkFDckMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQ3BDLENBQUM7Z0JBQ0QsU0FBUyxDQUFDLEdBQUcsRUFBRTtvQkFDYixPQUFPLENBQUMsS0FBSyxDQUNYLHVHQUF1RyxDQUN4RyxDQUFDO2dCQUNKLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsaUNBQWlDO1FBQ2pDLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDVixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDdkMsSUFDRSxPQUFPLEtBQUssSUFBSSxDQUFDLHFCQUFxQjtnQkFDdEMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQ3JDLENBQUM7Z0JBQ0QsU0FBUyxDQUFDLEdBQUcsRUFBRTtvQkFDYixPQUFPLENBQUMsS0FBSyxDQUNYLDBIQUEwSCxDQUMzSCxDQUFDO2dCQUNKLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsa0ZBQWtGO0lBQ3BGLENBQUM7SUFFRDs7T0FFRztJQUNLLHVCQUF1QjtRQUM3QixtQkFBbUI7UUFDbkIsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNWLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUM5QixTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN0RCxDQUFDLENBQUMsQ0FBQztRQUVILGVBQWU7UUFDZixNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQy9CLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ3ZELENBQUMsQ0FBQyxDQUFDO1FBRUgsa0JBQWtCO1FBQ2xCLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDVixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDckMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDN0QsQ0FBQyxDQUFDLENBQUM7UUFFSCxjQUFjO1FBQ2QsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNWLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM3QixTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNyRCxDQUFDLENBQUMsQ0FBQztRQUVILGtFQUFrRTtRQUNsRSxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQy9CLG9FQUFvRTtZQUNwRSxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNiLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUNoQyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ssc0JBQXNCO1FBQzVCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDO1lBQzVDLGVBQWUsRUFBRSxHQUFHLEVBQUU7Z0JBQ3BCLDJFQUEyRTtnQkFDM0UsK0VBQStFO2dCQUMvRSxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztZQUNsQyxDQUFDO1lBQ0Qsa0JBQWtCLEVBQUUsR0FBRyxFQUFFO2dCQUN2QiwyRUFBMkU7Z0JBQzNFLCtFQUErRTtnQkFDL0UsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7WUFDbEMsQ0FBQztTQUNGLENBQUMsQ0FBQztRQUVILCtEQUErRDtJQUNqRSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLHdCQUF3QjtRQUM5QixJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELDBCQUEwQjtJQUUxQjs7T0FFRztJQUNILGFBQWEsQ0FBQyxHQUFZO1FBQ3hCLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRDs7T0FFRztJQUNILFVBQVUsQ0FBQyxPQUErQjtRQUN4QyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxhQUFhLENBQUMsVUFBbUM7UUFDL0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsU0FBUyxDQUFDLE1BQXFDO1FBQzdDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsUUFBUSxDQUFDLE9BQWU7UUFDdEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxrQkFBa0IsQ0FBQyxlQUFpQztRQUNsRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7T0FFRztJQUNILGdCQUFnQixDQUFDLGFBQXlDO1FBQ3hELElBQUksYUFBYSxLQUFLLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQ2hELE9BQU8sQ0FBQyxLQUFLLENBQ1gsdUdBQXVHLENBQ3hHLENBQUM7UUFDSixDQUFDO1FBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsaUJBQWlCLENBQUMsY0FBNEM7UUFDNUQsSUFBSSxjQUFjLEtBQUssSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDbEQsT0FBTyxDQUFDLEtBQUssQ0FDWCwwSEFBMEgsQ0FDM0gsQ0FBQztRQUNKLENBQUM7UUFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCx5QkFBeUIsQ0FBQyxlQUFpQztRQUN6RCxJQUFJLENBQUMsdUJBQXVCLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRDs7T0FFRztJQUNILGtCQUFrQixDQUFDLElBQVksRUFBRSxNQUFzQjtRQUNyRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztRQUMvQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUN6QyxPQUFPLENBQUMsSUFBSSxDQUFDLG9CQUFvQixJQUFJLHdCQUF3QixDQUFDLENBQUM7UUFDakUsQ0FBQztRQUNELElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLENBQUM7WUFDL0IsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQztZQUN6QyxNQUFNO1NBQ1AsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsb0JBQW9CLENBQUMsSUFBWTtRQUMvQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztRQUMvQyxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDO1FBQ3hELElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDdkMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM3QyxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsYUFBYSxDQUFDLElBQVk7UUFDeEIsT0FBTyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUM7SUFDckUsQ0FBQzt3R0FwZVUsaUJBQWlCLGtCQW9FbEIsc0JBQXNCLGFBQ3RCLGtCQUFrQixhQUNsQixxQkFBcUIsYUFDckIsaUJBQWlCLGFBQ2pCLDRCQUE0QixhQUU1Qix5QkFBeUIsYUFFekIsNEJBQTRCOzRHQTVFM0IsaUJBQWlCLGNBREosTUFBTTs7NEZBQ25CLGlCQUFpQjtrQkFEN0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7OzBCQXFFN0IsTUFBTTsyQkFBQyxzQkFBc0I7OzBCQUM3QixNQUFNOzJCQUFDLGtCQUFrQjs7MEJBQ3pCLE1BQU07MkJBQUMscUJBQXFCOzswQkFDNUIsTUFBTTsyQkFBQyxpQkFBaUI7OzBCQUN4QixNQUFNOzJCQUFDLDRCQUE0Qjs7MEJBRW5DLE1BQU07MkJBQUMseUJBQXlCOzswQkFFaEMsTUFBTTsyQkFBQyw0QkFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBJbmplY3RhYmxlLFxuICBJbmplY3QsXG4gIHNpZ25hbCxcbiAgY29tcHV0ZWQsXG4gIGVmZmVjdCxcbiAgdW50cmFja2VkLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgdG9PYnNlcnZhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wXCI7XG5pbXBvcnQge1xuICBDT1BJTE9US0lUX1JVTlRJTUVfVVJMLFxuICBDT1BJTE9US0lUX0hFQURFUlMsXG4gIENPUElMT1RLSVRfUFJPUEVSVElFUyxcbiAgQ09QSUxPVEtJVF9BR0VOVFMsXG4gIENPUElMT1RLSVRfUkVOREVSX1RPT0xfQ0FMTFMsXG4gIENPUElMT1RLSVRfRlJPTlRFTkRfVE9PTFMsXG4gIENPUElMT1RLSVRfSFVNQU5fSU5fVEhFX0xPT1AsXG4gIENvcGlsb3RLaXRDb250ZXh0VmFsdWUsXG4gIFRvb2xDYWxsUmVuZGVyLFxuICBBbmd1bGFyRnJvbnRlbmRUb29sLFxuICBBbmd1bGFySHVtYW5JblRoZUxvb3AsXG59IGZyb20gXCIuL2NvcGlsb3RraXQudHlwZXNcIjtcbmltcG9ydCB7XG4gIENvcGlsb3RLaXRDb3JlLFxuICBDb3BpbG90S2l0Q29yZUNvbmZpZyxcbiAgRnJvbnRlbmRUb29sLFxufSBmcm9tIFwiQGNvcGlsb3RraXRuZXh0L2NvcmVcIjtcbmltcG9ydCB7IEFic3RyYWN0QWdlbnQgfSBmcm9tIFwiQGFnLXVpL2NsaWVudFwiO1xuXG4vKipcbiAqIEFuZ3VsYXIgc2VydmljZSBmb3IgbWFuYWdpbmcgQ29waWxvdEtpdCBzdGF0ZSBhbmQgaW50ZXJhY3Rpb25zLlxuICogUHJvdmlkZXMgcmVhY3RpdmUgc3RhdGUgbWFuYWdlbWVudCB1c2luZyBBbmd1bGFyIHNpZ25hbHMgYW5kIG9ic2VydmFibGVzLlxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46IFwicm9vdFwiIH0pXG5leHBvcnQgY2xhc3MgQ29waWxvdEtpdFNlcnZpY2Uge1xuICAvLyBJbml0aWFsIHZhbHVlcyBmb3Igc3RhYmlsaXR5IHRyYWNraW5nXG4gIHByaXZhdGUgcmVhZG9ubHkgaW5pdGlhbEZyb250ZW5kVG9vbHM6IEFuZ3VsYXJGcm9udGVuZFRvb2w8YW55PltdO1xuICBwcml2YXRlIHJlYWRvbmx5IGluaXRpYWxIdW1hbkluVGhlTG9vcDogQW5ndWxhckh1bWFuSW5UaGVMb29wPGFueT5bXTtcbiAgcHJpdmF0ZSByZWFkb25seSBpbml0aWFsUmVuZGVyVG9vbENhbGxzOiBUb29sQ2FsbFJlbmRlcltdO1xuXG4gIC8vIENvcmUgaW5zdGFuY2UgLSBjcmVhdGVkIG9uY2VcbiAgcmVhZG9ubHkgY29waWxvdGtpdDogQ29waWxvdEtpdENvcmU7XG5cbiAgLy8gU3RhdGUgc2lnbmFsc1xuICBwcml2YXRlIHJlYWRvbmx5IF9yZW5kZXJUb29sQ2FsbHM6IFJldHVyblR5cGU8XG4gICAgdHlwZW9mIHNpZ25hbDxUb29sQ2FsbFJlbmRlcltdPlxuICA+O1xuICBwcml2YXRlIHJlYWRvbmx5IF9jdXJyZW50UmVuZGVyVG9vbENhbGxzOiBSZXR1cm5UeXBlPFxuICAgIHR5cGVvZiBzaWduYWw8VG9vbENhbGxSZW5kZXJbXT5cbiAgPjtcbiAgcHJpdmF0ZSByZWFkb25seSBfcnVudGltZVVybDogUmV0dXJuVHlwZTx0eXBlb2Ygc2lnbmFsPHN0cmluZyB8IHVuZGVmaW5lZD4+O1xuICBwcml2YXRlIHJlYWRvbmx5IF9oZWFkZXJzOiBSZXR1cm5UeXBlPHR5cGVvZiBzaWduYWw8UmVjb3JkPHN0cmluZywgc3RyaW5nPj4+O1xuICBwcml2YXRlIHJlYWRvbmx5IF9wcm9wZXJ0aWVzOiBSZXR1cm5UeXBlPFxuICAgIHR5cGVvZiBzaWduYWw8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+XG4gID47XG4gIHByaXZhdGUgcmVhZG9ubHkgX2FnZW50czogUmV0dXJuVHlwZTxcbiAgICB0eXBlb2Ygc2lnbmFsPFJlY29yZDxzdHJpbmcsIEFic3RyYWN0QWdlbnQ+PlxuICA+O1xuICBwcml2YXRlIHJlYWRvbmx5IF9mcm9udGVuZFRvb2xzOiBSZXR1cm5UeXBlPFxuICAgIHR5cGVvZiBzaWduYWw8QW5ndWxhckZyb250ZW5kVG9vbDxhbnk+W10+XG4gID47XG4gIHByaXZhdGUgcmVhZG9ubHkgX2h1bWFuSW5UaGVMb29wOiBSZXR1cm5UeXBlPFxuICAgIHR5cGVvZiBzaWduYWw8QW5ndWxhckh1bWFuSW5UaGVMb29wPGFueT5bXT5cbiAgPjtcblxuICAvLyBSdW50aW1lIHN0YXRlIGNoYW5nZSBub3RpZmljYXRpb24gc2lnbmFsXG4gIHByaXZhdGUgcmVhZG9ubHkgX3J1bnRpbWVTdGF0ZVZlcnNpb246IFJldHVyblR5cGU8dHlwZW9mIHNpZ25hbDxudW1iZXI+PjtcblxuICAvLyBDb21wdXRlZCBzaWduYWxzIGZvciBwcm9jZXNzZWQgdmFsdWVzXG4gIHByaXZhdGUgcmVhZG9ubHkgX2FsbFRvb2xzOiBSZXR1cm5UeXBlPFxuICAgIHR5cGVvZiBjb21wdXRlZDxSZWNvcmQ8c3RyaW5nLCBGcm9udGVuZFRvb2w8YW55Pj4+XG4gID47XG4gIHByaXZhdGUgcmVhZG9ubHkgX2FsbFJlbmRlclRvb2xDYWxsczogUmV0dXJuVHlwZTxcbiAgICB0eXBlb2YgY29tcHV0ZWQ8VG9vbENhbGxSZW5kZXJbXT5cbiAgPjtcblxuICAvLyBQdWJsaWMgcmVhZG9ubHkgc2lnbmFscyAtIHdpbGwgYmUgaW5pdGlhbGl6ZWQgaW4gY29uc3RydWN0b3JcbiAgcmVhZG9ubHkgcmVuZGVyVG9vbENhbGxzOiBhbnk7XG4gIHJlYWRvbmx5IGN1cnJlbnRSZW5kZXJUb29sQ2FsbHM6IGFueTtcbiAgcmVhZG9ubHkgcnVudGltZVVybDogYW55O1xuICByZWFkb25seSBoZWFkZXJzOiBhbnk7XG4gIHJlYWRvbmx5IHByb3BlcnRpZXM6IGFueTtcbiAgcmVhZG9ubHkgYWdlbnRzOiBhbnk7XG4gIHJlYWRvbmx5IGZyb250ZW5kVG9vbHM6IGFueTtcbiAgcmVhZG9ubHkgaHVtYW5JblRoZUxvb3A6IGFueTtcbiAgcmVhZG9ubHkgcnVudGltZVN0YXRlVmVyc2lvbjogYW55O1xuXG4gIC8vIE9ic2VydmFibGUgQVBJcyBmb3IgUnhKUyB1c2VycyAtIHdpbGwgYmUgaW5pdGlhbGl6ZWQgaW4gY29uc3RydWN0b3JcbiAgcmVhZG9ubHkgcmVuZGVyVG9vbENhbGxzJDogYW55O1xuICByZWFkb25seSBjdXJyZW50UmVuZGVyVG9vbENhbGxzJDogYW55O1xuICByZWFkb25seSBydW50aW1lVXJsJDogYW55O1xuICByZWFkb25seSBoZWFkZXJzJDogYW55O1xuICByZWFkb25seSBwcm9wZXJ0aWVzJDogYW55O1xuICByZWFkb25seSBhZ2VudHMkOiBhbnk7XG4gIHJlYWRvbmx5IGZyb250ZW5kVG9vbHMkOiBhbnk7XG4gIHJlYWRvbmx5IGh1bWFuSW5UaGVMb29wJDogYW55O1xuXG4gIC8vIENvbnRleHQgdmFsdWUgYXMgY29tcHV0ZWQgc2lnbmFsIC0gd2lsbCBiZSBpbml0aWFsaXplZCBpbiBjb25zdHJ1Y3RvclxuICByZWFkb25seSBjb250ZXh0OiBhbnk7XG4gIHJlYWRvbmx5IGNvbnRleHQkOiBhbnk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChDT1BJTE9US0lUX1JVTlRJTUVfVVJMKSBydW50aW1lVXJsOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgQEluamVjdChDT1BJTE9US0lUX0hFQURFUlMpIGhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4gICAgQEluamVjdChDT1BJTE9US0lUX1BST1BFUlRJRVMpIHByb3BlcnRpZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICAgIEBJbmplY3QoQ09QSUxPVEtJVF9BR0VOVFMpIGFnZW50czogUmVjb3JkPHN0cmluZywgQWJzdHJhY3RBZ2VudD4sXG4gICAgQEluamVjdChDT1BJTE9US0lUX1JFTkRFUl9UT09MX0NBTExTKVxuICAgIHJlbmRlclRvb2xDYWxsczogVG9vbENhbGxSZW5kZXJbXSxcbiAgICBASW5qZWN0KENPUElMT1RLSVRfRlJPTlRFTkRfVE9PTFMpXG4gICAgZnJvbnRlbmRUb29sczogQW5ndWxhckZyb250ZW5kVG9vbDxhbnk+W10sXG4gICAgQEluamVjdChDT1BJTE9US0lUX0hVTUFOX0lOX1RIRV9MT09QKVxuICAgIGh1bWFuSW5UaGVMb29wOiBBbmd1bGFySHVtYW5JblRoZUxvb3A8YW55PltdXG4gICkge1xuICAgIC8vIFN0b3JlIGluaXRpYWwgdmFsdWVzIGZvciBzdGFiaWxpdHkgY2hlY2tpbmdcbiAgICB0aGlzLmluaXRpYWxGcm9udGVuZFRvb2xzID0gZnJvbnRlbmRUb29scztcbiAgICB0aGlzLmluaXRpYWxIdW1hbkluVGhlTG9vcCA9IGh1bWFuSW5UaGVMb29wO1xuICAgIHRoaXMuaW5pdGlhbFJlbmRlclRvb2xDYWxscyA9IHJlbmRlclRvb2xDYWxscztcblxuICAgIC8vIFByb2Nlc3MgdG9vbHMgYW5kIGh1bWFuSW5UaGVMb29wXG4gICAgY29uc3QgeyBhbGxUb29scywgYWxsUmVuZGVyVG9vbENhbGxzIH0gPSB0aGlzLnByb2Nlc3NUb29scyhcbiAgICAgIGZyb250ZW5kVG9vbHMsXG4gICAgICBodW1hbkluVGhlTG9vcCxcbiAgICAgIHJlbmRlclRvb2xDYWxsc1xuICAgICk7XG5cbiAgICAvLyBJbml0aWFsaXplIGNvcmUgaW5zdGFuY2Ugd2l0aCBwcm9jZXNzZWQgdG9vbHNcbiAgICB0aGlzLmNvcGlsb3RraXQgPSBuZXcgQ29waWxvdEtpdENvcmUoe1xuICAgICAgcnVudGltZVVybDogdW5kZWZpbmVkLCAvLyBQcmV2ZW50IHNlcnZlci1zaWRlIGZldGNoaW5nXG4gICAgICBoZWFkZXJzLFxuICAgICAgcHJvcGVydGllcyxcbiAgICAgIGFnZW50cyxcbiAgICAgIHRvb2xzOiBhbGxUb29scyxcbiAgICB9IGFzIENvcGlsb3RLaXRDb3JlQ29uZmlnKTtcblxuICAgIC8vIEluaXRpYWxpemUgc3RhdGUgc2lnbmFsc1xuICAgIHRoaXMuX3JlbmRlclRvb2xDYWxscyA9XG4gICAgICBzaWduYWw8VG9vbENhbGxSZW5kZXJbXT4oYWxsUmVuZGVyVG9vbENhbGxzKTtcbiAgICB0aGlzLl9jdXJyZW50UmVuZGVyVG9vbENhbGxzID1cbiAgICAgIHNpZ25hbDxUb29sQ2FsbFJlbmRlcltdPihhbGxSZW5kZXJUb29sQ2FsbHMpO1xuICAgIHRoaXMuX3J1bnRpbWVVcmwgPSBzaWduYWw8c3RyaW5nIHwgdW5kZWZpbmVkPihydW50aW1lVXJsKTtcbiAgICB0aGlzLl9oZWFkZXJzID0gc2lnbmFsPFJlY29yZDxzdHJpbmcsIHN0cmluZz4+KGhlYWRlcnMpO1xuICAgIHRoaXMuX3Byb3BlcnRpZXMgPSBzaWduYWw8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+KHByb3BlcnRpZXMpO1xuICAgIHRoaXMuX2FnZW50cyA9IHNpZ25hbDxSZWNvcmQ8c3RyaW5nLCBBYnN0cmFjdEFnZW50Pj4oYWdlbnRzKTtcbiAgICB0aGlzLl9mcm9udGVuZFRvb2xzID0gc2lnbmFsPEFuZ3VsYXJGcm9udGVuZFRvb2w8YW55PltdPihmcm9udGVuZFRvb2xzKTtcbiAgICB0aGlzLl9odW1hbkluVGhlTG9vcCA9IHNpZ25hbDxBbmd1bGFySHVtYW5JblRoZUxvb3A8YW55PltdPihodW1hbkluVGhlTG9vcCk7XG4gICAgdGhpcy5fcnVudGltZVN0YXRlVmVyc2lvbiA9IHNpZ25hbDxudW1iZXI+KDApO1xuXG4gICAgLy8gSW5pdGlhbGl6ZSBjb21wdXRlZCBzaWduYWxzIGZvciBwcm9jZXNzZWQgdmFsdWVzXG4gICAgdGhpcy5fYWxsVG9vbHMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICBjb25zdCB0b29sczogUmVjb3JkPHN0cmluZywgRnJvbnRlbmRUb29sPGFueT4+ID0ge307XG5cbiAgICAgIC8vIEFkZCBmcm9udGVuZCB0b29sc1xuICAgICAgdGhpcy5fZnJvbnRlbmRUb29scygpLmZvckVhY2goKHRvb2wpID0+IHtcbiAgICAgICAgdG9vbHNbdG9vbC5uYW1lXSA9IHRvb2wgYXMgRnJvbnRlbmRUb29sPGFueT47XG4gICAgICB9KTtcblxuICAgICAgLy8gUHJvY2VzcyBodW1hbi1pbi10aGUtbG9vcCB0b29sc1xuICAgICAgdGhpcy5faHVtYW5JblRoZUxvb3AoKS5mb3JFYWNoKCh0b29sKSA9PiB7XG4gICAgICAgIGNvbnN0IGZyb250ZW5kVG9vbDogRnJvbnRlbmRUb29sPGFueT4gPSB7XG4gICAgICAgICAgbmFtZTogdG9vbC5uYW1lLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiB0b29sLmRlc2NyaXB0aW9uLFxuICAgICAgICAgIHBhcmFtZXRlcnM6IHRvb2wucGFyYW1ldGVycyxcbiAgICAgICAgICBmb2xsb3dVcDogdG9vbC5mb2xsb3dVcCxcbiAgICAgICAgICBoYW5kbGVyOiBhc3luYyAoYXJnczogYW55KSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgIGBIdW1hbi1pbi10aGUtbG9vcCB0b29sICcke3Rvb2wubmFtZX0nIGNhbGxlZCBidXQgbm8gaW50ZXJhY3RpdmUgaGFuZGxlciBpcyBzZXQgdXAuYFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgICAgdG9vbHNbdG9vbC5uYW1lXSA9IGZyb250ZW5kVG9vbDtcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gdG9vbHM7XG4gICAgfSk7XG5cbiAgICB0aGlzLl9hbGxSZW5kZXJUb29sQ2FsbHMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICBjb25zdCBjb21iaW5lZDogVG9vbENhbGxSZW5kZXJbXSA9IFsuLi50aGlzLl9yZW5kZXJUb29sQ2FsbHMoKV07XG5cbiAgICAgIC8vIEFkZCByZW5kZXIgY29tcG9uZW50cyBmcm9tIGZyb250ZW5kIHRvb2xzXG4gICAgICB0aGlzLl9mcm9udGVuZFRvb2xzKCkuZm9yRWFjaCgodG9vbCkgPT4ge1xuICAgICAgICBpZiAodG9vbC5yZW5kZXIpIHtcbiAgICAgICAgICBjb21iaW5lZC5wdXNoKHtcbiAgICAgICAgICAgIG5hbWU6IHRvb2wubmFtZSxcbiAgICAgICAgICAgIHJlbmRlcjogdG9vbC5yZW5kZXIsXG4gICAgICAgICAgICAuLi4odG9vbC5hZ2VudElkICYmIHsgYWdlbnRJZDogdG9vbC5hZ2VudElkIH0pLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgLy8gQWRkIHJlbmRlciBjb21wb25lbnRzIGZyb20gaHVtYW4taW4tdGhlLWxvb3AgdG9vbHNcbiAgICAgIHRoaXMuX2h1bWFuSW5UaGVMb29wKCkuZm9yRWFjaCgodG9vbCkgPT4ge1xuICAgICAgICBpZiAodG9vbC5yZW5kZXIpIHtcbiAgICAgICAgICBjb21iaW5lZC5wdXNoKHtcbiAgICAgICAgICAgIG5hbWU6IHRvb2wubmFtZSxcbiAgICAgICAgICAgIHJlbmRlcjogdG9vbC5yZW5kZXIsXG4gICAgICAgICAgICAuLi4odG9vbC5hZ2VudElkICYmIHsgYWdlbnRJZDogdG9vbC5hZ2VudElkIH0pLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIGNvbWJpbmVkO1xuICAgIH0pO1xuXG4gICAgLy8gSW5pdGlhbGl6ZSBwdWJsaWMgcmVhZG9ubHkgc2lnbmFsc1xuICAgIHRoaXMucmVuZGVyVG9vbENhbGxzID0gdGhpcy5fYWxsUmVuZGVyVG9vbENhbGxzO1xuICAgIHRoaXMuY3VycmVudFJlbmRlclRvb2xDYWxscyA9IHRoaXMuX2N1cnJlbnRSZW5kZXJUb29sQ2FsbHMuYXNSZWFkb25seSgpO1xuICAgIHRoaXMucnVudGltZVVybCA9IHRoaXMuX3J1bnRpbWVVcmwuYXNSZWFkb25seSgpO1xuICAgIHRoaXMuaGVhZGVycyA9IHRoaXMuX2hlYWRlcnMuYXNSZWFkb25seSgpO1xuICAgIHRoaXMucHJvcGVydGllcyA9IHRoaXMuX3Byb3BlcnRpZXMuYXNSZWFkb25seSgpO1xuICAgIHRoaXMuYWdlbnRzID0gdGhpcy5fYWdlbnRzLmFzUmVhZG9ubHkoKTtcbiAgICB0aGlzLmZyb250ZW5kVG9vbHMgPSB0aGlzLl9mcm9udGVuZFRvb2xzLmFzUmVhZG9ubHkoKTtcbiAgICB0aGlzLmh1bWFuSW5UaGVMb29wID0gdGhpcy5faHVtYW5JblRoZUxvb3AuYXNSZWFkb25seSgpO1xuICAgIHRoaXMucnVudGltZVN0YXRlVmVyc2lvbiA9IHRoaXMuX3J1bnRpbWVTdGF0ZVZlcnNpb24uYXNSZWFkb25seSgpO1xuXG4gICAgLy8gSW5pdGlhbGl6ZSBPYnNlcnZhYmxlIEFQSXNcbiAgICB0aGlzLnJlbmRlclRvb2xDYWxscyQgPSB0b09ic2VydmFibGUodGhpcy5yZW5kZXJUb29sQ2FsbHMpO1xuICAgIHRoaXMuY3VycmVudFJlbmRlclRvb2xDYWxscyQgPSB0b09ic2VydmFibGUodGhpcy5jdXJyZW50UmVuZGVyVG9vbENhbGxzKTtcbiAgICB0aGlzLnJ1bnRpbWVVcmwkID0gdG9PYnNlcnZhYmxlKHRoaXMucnVudGltZVVybCk7XG4gICAgdGhpcy5oZWFkZXJzJCA9IHRvT2JzZXJ2YWJsZSh0aGlzLmhlYWRlcnMpO1xuICAgIHRoaXMucHJvcGVydGllcyQgPSB0b09ic2VydmFibGUodGhpcy5wcm9wZXJ0aWVzKTtcbiAgICB0aGlzLmFnZW50cyQgPSB0b09ic2VydmFibGUodGhpcy5hZ2VudHMpO1xuICAgIHRoaXMuZnJvbnRlbmRUb29scyQgPSB0b09ic2VydmFibGUodGhpcy5mcm9udGVuZFRvb2xzKTtcbiAgICB0aGlzLmh1bWFuSW5UaGVMb29wJCA9IHRvT2JzZXJ2YWJsZSh0aGlzLmh1bWFuSW5UaGVMb29wKTtcblxuICAgIC8vIEluaXRpYWxpemUgY29udGV4dCB2YWx1ZSBhcyBjb21wdXRlZCBzaWduYWxcbiAgICB0aGlzLmNvbnRleHQgPSBjb21wdXRlZDxDb3BpbG90S2l0Q29udGV4dFZhbHVlPigoKSA9PiB7XG4gICAgICAvLyBUb3VjaCB0aGUgcnVudGltZSBzdGF0ZSB2ZXJzaW9uIHRvIGVuc3VyZSB0aGlzIGNvbXB1dGVkIHVwZGF0ZXNcbiAgICAgIC8vIHdoZW4gcnVudGltZSBldmVudHMgb2NjdXIgKGxvYWRlZC9lcnJvcilcbiAgICAgIHRoaXMucnVudGltZVN0YXRlVmVyc2lvbigpO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBjb3BpbG90a2l0OiB0aGlzLmNvcGlsb3RraXQsXG4gICAgICAgIHJlbmRlclRvb2xDYWxsczogdGhpcy5yZW5kZXJUb29sQ2FsbHMoKSxcbiAgICAgICAgY3VycmVudFJlbmRlclRvb2xDYWxsczogdGhpcy5jdXJyZW50UmVuZGVyVG9vbENhbGxzKCksXG4gICAgICAgIHNldEN1cnJlbnRSZW5kZXJUb29sQ2FsbHM6ICh2KSA9PiB0aGlzLnNldEN1cnJlbnRSZW5kZXJUb29sQ2FsbHModiksXG4gICAgICB9O1xuICAgIH0pO1xuXG4gICAgdGhpcy5jb250ZXh0JCA9IHRvT2JzZXJ2YWJsZSh0aGlzLmNvbnRleHQpO1xuXG4gICAgLy8gRWZmZWN0cyBtdXN0IGJlIGNyZWF0ZWQgaW4gaW5qZWN0aW9uIGNvbnRleHQgKGNvbnN0cnVjdG9yKVxuICAgIHRoaXMuc2V0dXBSdW50aW1lU3luY0VmZmVjdHMoKTtcbiAgICB0aGlzLnNldHVwU3RhYmlsaXR5V2FybmluZ3MoKTtcbiAgICB0aGlzLnNldHVwRXZlbnRTdWJzY3JpcHRpb24oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm9jZXNzIGZyb250ZW5kIHRvb2xzIGFuZCBodW1hbi1pbi10aGUtbG9vcCB0b29sc1xuICAgKi9cbiAgcHJpdmF0ZSBwcm9jZXNzVG9vbHMoXG4gICAgZnJvbnRlbmRUb29sczogQW5ndWxhckZyb250ZW5kVG9vbDxhbnk+W10sXG4gICAgaHVtYW5JblRoZUxvb3A6IEFuZ3VsYXJIdW1hbkluVGhlTG9vcDxhbnk+W10sXG4gICAgcmVuZGVyVG9vbENhbGxzOiBUb29sQ2FsbFJlbmRlcltdXG4gICk6IHtcbiAgICBhbGxUb29sczogUmVjb3JkPHN0cmluZywgRnJvbnRlbmRUb29sPGFueT4+O1xuICAgIGFsbFJlbmRlclRvb2xDYWxsczogVG9vbENhbGxSZW5kZXJbXTtcbiAgfSB7XG4gICAgY29uc3QgYWxsVG9vbHM6IFJlY29yZDxzdHJpbmcsIEZyb250ZW5kVG9vbDxhbnk+PiA9IHt9O1xuICAgIGNvbnN0IGFsbFJlbmRlclRvb2xDYWxsczogVG9vbENhbGxSZW5kZXJbXSA9IFsuLi5yZW5kZXJUb29sQ2FsbHNdO1xuXG4gICAgLy8gQWRkIGZyb250ZW5kIHRvb2xzXG4gICAgZnJvbnRlbmRUb29scy5mb3JFYWNoKCh0b29sKSA9PiB7XG4gICAgICBhbGxUb29sc1t0b29sLm5hbWVdID0gdG9vbCBhcyBGcm9udGVuZFRvb2w8YW55PjtcblxuICAgICAgLy8gQWRkIHJlbmRlciBjb21wb25lbnQgaWYgcHJvdmlkZWRcbiAgICAgIGlmICh0b29sLnJlbmRlcikge1xuICAgICAgICBhbGxSZW5kZXJUb29sQ2FsbHMucHVzaCh7XG4gICAgICAgICAgbmFtZTogdG9vbC5uYW1lLFxuICAgICAgICAgIHJlbmRlcjogdG9vbC5yZW5kZXIsXG4gICAgICAgICAgLi4uKHRvb2wuYWdlbnRJZCAmJiB7IGFnZW50SWQ6IHRvb2wuYWdlbnRJZCB9KSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBQcm9jZXNzIGh1bWFuLWluLXRoZS1sb29wIHRvb2xzXG4gICAgaHVtYW5JblRoZUxvb3AuZm9yRWFjaCgodG9vbCkgPT4ge1xuICAgICAgLy8gQ3JlYXRlIGEgZnJvbnRlbmQgdG9vbCB3aXRoIHBsYWNlaG9sZGVyIGhhbmRsZXJcbiAgICAgIGNvbnN0IGZyb250ZW5kVG9vbDogRnJvbnRlbmRUb29sPGFueT4gPSB7XG4gICAgICAgIG5hbWU6IHRvb2wubmFtZSxcbiAgICAgICAgZGVzY3JpcHRpb246IHRvb2wuZGVzY3JpcHRpb24sXG4gICAgICAgIHBhcmFtZXRlcnM6IHRvb2wucGFyYW1ldGVycyxcbiAgICAgICAgZm9sbG93VXA6IHRvb2wuZm9sbG93VXAsXG4gICAgICAgIC4uLih0b29sLmFnZW50SWQgJiYgeyBhZ2VudElkOiB0b29sLmFnZW50SWQgfSksXG4gICAgICAgIGhhbmRsZXI6IGFzeW5jIChhcmdzOiBhbnkpID0+IHtcbiAgICAgICAgICAvLyBQbGFjZWhvbGRlciBoYW5kbGVyIC0gYWN0dWFsIGltcGxlbWVudGF0aW9uIHdpbGwgYmUgaGFuZGxlZCBieSB0aGUgcmVuZGVyIGNvbXBvbmVudFxuICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgIGBIdW1hbi1pbi10aGUtbG9vcCB0b29sICcke3Rvb2wubmFtZX0nIGNhbGxlZCBidXQgbm8gaW50ZXJhY3RpdmUgaGFuZGxlciBpcyBzZXQgdXAuYFxuICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgICBhbGxUb29sc1t0b29sLm5hbWVdID0gZnJvbnRlbmRUb29sO1xuXG4gICAgICAvLyBBZGQgdGhlIHJlbmRlciBjb21wb25lbnRcbiAgICAgIGlmICh0b29sLnJlbmRlcikge1xuICAgICAgICBhbGxSZW5kZXJUb29sQ2FsbHMucHVzaCh7XG4gICAgICAgICAgbmFtZTogdG9vbC5uYW1lLFxuICAgICAgICAgIHJlbmRlcjogdG9vbC5yZW5kZXIsXG4gICAgICAgICAgLi4uKHRvb2wuYWdlbnRJZCAmJiB7IGFnZW50SWQ6IHRvb2wuYWdlbnRJZCB9KSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4geyBhbGxUb29scywgYWxsUmVuZGVyVG9vbENhbGxzIH07XG4gIH1cblxuICAvKipcbiAgICogU2V0dXAgc3RhYmlsaXR5IHdhcm5pbmcgZWZmZWN0c1xuICAgKi9cbiAgcHJpdmF0ZSBzZXR1cFN0YWJpbGl0eVdhcm5pbmdzKCk6IHZvaWQge1xuICAgIC8vIFdhcm4gaWYgZnJvbnRlbmRUb29scyBjaGFuZ2VzXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLl9mcm9udGVuZFRvb2xzKCk7XG4gICAgICBpZiAoXG4gICAgICAgIGN1cnJlbnQgIT09IHRoaXMuaW5pdGlhbEZyb250ZW5kVG9vbHMgJiZcbiAgICAgICAgdGhpcy5pbml0aWFsRnJvbnRlbmRUb29scy5sZW5ndGggPiAwXG4gICAgICApIHtcbiAgICAgICAgdW50cmFja2VkKCgpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgXCJmcm9udGVuZFRvb2xzIG11c3QgYmUgYSBzdGFibGUgYXJyYXkuIFRvIGFkZC9yZW1vdmUgdG9vbHMgZHluYW1pY2FsbHksIHVzZSBkeW5hbWljIHRvb2wgcmVnaXN0cmF0aW9uLlwiXG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBXYXJuIGlmIGh1bWFuSW5UaGVMb29wIGNoYW5nZXNcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgY3VycmVudCA9IHRoaXMuX2h1bWFuSW5UaGVMb29wKCk7XG4gICAgICBpZiAoXG4gICAgICAgIGN1cnJlbnQgIT09IHRoaXMuaW5pdGlhbEh1bWFuSW5UaGVMb29wICYmXG4gICAgICAgIHRoaXMuaW5pdGlhbEh1bWFuSW5UaGVMb29wLmxlbmd0aCA+IDBcbiAgICAgICkge1xuICAgICAgICB1bnRyYWNrZWQoKCkgPT4ge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcImh1bWFuSW5UaGVMb29wIG11c3QgYmUgYSBzdGFibGUgYXJyYXkuIFRvIGFkZC9yZW1vdmUgaHVtYW4taW4tdGhlLWxvb3AgdG9vbHMgZHluYW1pY2FsbHksIHVzZSBkeW5hbWljIHRvb2wgcmVnaXN0cmF0aW9uLlwiXG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBQcmV2aW91c2x5IHdhcm5lZCBpZiByZW5kZXJUb29sQ2FsbHMgcmVmZXJlbmNlIGNoYW5nZWQ7IHJlbW92ZWQgcGVyIFVYIGZlZWRiYWNrXG4gIH1cblxuICAvKipcbiAgICogU2V0dXAgZWZmZWN0cyB0byBzeW5jIHJ1bnRpbWUgY29uZmlndXJhdGlvbiB3aXRoIENvcGlsb3RLaXRDb3JlXG4gICAqL1xuICBwcml2YXRlIHNldHVwUnVudGltZVN5bmNFZmZlY3RzKCk6IHZvaWQge1xuICAgIC8vIFN5bmMgcnVudGltZSBVUkxcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgdXJsID0gdGhpcy5ydW50aW1lVXJsKCk7XG4gICAgICB1bnRyYWNrZWQoKCkgPT4gdGhpcy5jb3BpbG90a2l0LnNldFJ1bnRpbWVVcmwodXJsKSk7XG4gICAgfSk7XG5cbiAgICAvLyBTeW5jIGhlYWRlcnNcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgaGVhZGVycyA9IHRoaXMuaGVhZGVycygpO1xuICAgICAgdW50cmFja2VkKCgpID0+IHRoaXMuY29waWxvdGtpdC5zZXRIZWFkZXJzKGhlYWRlcnMpKTtcbiAgICB9KTtcblxuICAgIC8vIFN5bmMgcHJvcGVydGllc1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBwcm9wZXJ0aWVzID0gdGhpcy5wcm9wZXJ0aWVzKCk7XG4gICAgICB1bnRyYWNrZWQoKCkgPT4gdGhpcy5jb3BpbG90a2l0LnNldFByb3BlcnRpZXMocHJvcGVydGllcykpO1xuICAgIH0pO1xuXG4gICAgLy8gU3luYyBhZ2VudHNcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgYWdlbnRzID0gdGhpcy5hZ2VudHMoKTtcbiAgICAgIHVudHJhY2tlZCgoKSA9PiB0aGlzLmNvcGlsb3RraXQuc2V0QWdlbnRzKGFnZW50cykpO1xuICAgIH0pO1xuXG4gICAgLy8gU3luYyB0b29scyAtIGNvbXB1dGVkIGZyb20gZnJvbnRlbmQgdG9vbHMgYW5kIGh1bWFuLWluLXRoZS1sb29wXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IHRvb2xzID0gdGhpcy5fYWxsVG9vbHMoKTtcbiAgICAgIC8vIFVwZGF0ZSBjb3BpbG90a2l0LnRvb2xzIGRpcmVjdGx5IHNpbmNlIHRoZXJlJ3Mgbm8gc2V0VG9vbHMgbWV0aG9kXG4gICAgICB1bnRyYWNrZWQoKCkgPT4ge1xuICAgICAgICB0aGlzLmNvcGlsb3RraXQudG9vbHMgPSB0b29scztcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFN1YnNjcmliZSB0byBDb3BpbG90S2l0IHJ1bnRpbWUgZXZlbnRzXG4gICAqL1xuICBwcml2YXRlIHNldHVwRXZlbnRTdWJzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgY29uc3QgdW5zdWJzY3JpYmUgPSB0aGlzLmNvcGlsb3RraXQuc3Vic2NyaWJlKHtcbiAgICAgIG9uUnVudGltZUxvYWRlZDogKCkgPT4ge1xuICAgICAgICAvLyBJbmNyZW1lbnQgdmVyc2lvbiB0byBub3RpZnkgYWxsIGNvbnN1bWVycyB0aGF0IHJ1bnRpbWUgc3RhdGUgaGFzIGNoYW5nZWRcbiAgICAgICAgLy8gVGhpcyB0cmlnZ2VycyByZS1ldmFsdWF0aW9uIG9mIGNvbXB1dGVkIHNpZ25hbHMgdGhhdCBkZXBlbmQgb24gcnVudGltZSBzdGF0ZVxuICAgICAgICB0aGlzLm5vdGlmeVJ1bnRpbWVTdGF0ZUNoYW5nZSgpO1xuICAgICAgfSxcbiAgICAgIG9uUnVudGltZUxvYWRFcnJvcjogKCkgPT4ge1xuICAgICAgICAvLyBJbmNyZW1lbnQgdmVyc2lvbiB0byBub3RpZnkgYWxsIGNvbnN1bWVycyB0aGF0IHJ1bnRpbWUgc3RhdGUgaGFzIGNoYW5nZWRcbiAgICAgICAgLy8gVGhpcyB0cmlnZ2VycyByZS1ldmFsdWF0aW9uIG9mIGNvbXB1dGVkIHNpZ25hbHMgdGhhdCBkZXBlbmQgb24gcnVudGltZSBzdGF0ZVxuICAgICAgICB0aGlzLm5vdGlmeVJ1bnRpbWVTdGF0ZUNoYW5nZSgpO1xuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIFJvb3Qgc2VydmljZSBsaXZlcyBmb3IgYXBwIGxpZmV0aW1lOyB1bnN1YnNjcmliZSBub3QgbmVlZGVkLlxuICB9XG5cbiAgLyoqXG4gICAqIE5vdGlmeSBjb25zdW1lcnMgdGhhdCB0aGUgcnVudGltZSBzdGF0ZSBoYXMgY2hhbmdlZC5cbiAgICogVGhpcyBpcyBzaW1pbGFyIHRvIFJlYWN0J3MgZm9yY2VVcGRhdGUgLSBpdCB0cmlnZ2VycyBjaGFuZ2UgZGV0ZWN0aW9uXG4gICAqIGZvciBhbnkgY29tcHV0ZWQgc2lnbmFscyBvciBlZmZlY3RzIHRoYXQgZGVwZW5kIG9uIHJ1bnRpbWUgc3RhdGUuXG4gICAqL1xuICBwcml2YXRlIG5vdGlmeVJ1bnRpbWVTdGF0ZUNoYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9ydW50aW1lU3RhdGVWZXJzaW9uLnVwZGF0ZSgodmVyc2lvbikgPT4gdmVyc2lvbiArIDEpO1xuICB9XG5cbiAgLy8gUHVibGljIG11dGF0aW9uIG1ldGhvZHNcblxuICAvKipcbiAgICogVXBkYXRlIHRoZSBydW50aW1lIFVSTFxuICAgKi9cbiAgc2V0UnVudGltZVVybCh1cmw/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLl9ydW50aW1lVXJsLnNldCh1cmwpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSByZXF1ZXN0IGhlYWRlcnNcbiAgICovXG4gIHNldEhlYWRlcnMoaGVhZGVyczogUmVjb3JkPHN0cmluZywgc3RyaW5nPik6IHZvaWQge1xuICAgIHRoaXMuX2hlYWRlcnMuc2V0KGhlYWRlcnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBydW50aW1lIHByb3BlcnRpZXNcbiAgICovXG4gIHNldFByb3BlcnRpZXMocHJvcGVydGllczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiB2b2lkIHtcbiAgICB0aGlzLl9wcm9wZXJ0aWVzLnNldChwcm9wZXJ0aWVzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgYWdlbnRzIGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIHNldEFnZW50cyhhZ2VudHM6IFJlY29yZDxzdHJpbmcsIEFic3RyYWN0QWdlbnQ+KTogdm9pZCB7XG4gICAgdGhpcy5fYWdlbnRzLnNldChhZ2VudHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhbiBhZ2VudCBieSBJRFxuICAgKiBAcGFyYW0gYWdlbnRJZCAtIFRoZSBhZ2VudCBJRCB0byByZXRyaWV2ZVxuICAgKiBAcmV0dXJucyBUaGUgYWdlbnQgb3IgdW5kZWZpbmVkIGlmIG5vdCBmb3VuZFxuICAgKi9cbiAgZ2V0QWdlbnQoYWdlbnRJZDogc3RyaW5nKTogQWJzdHJhY3RBZ2VudCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuY29waWxvdGtpdC5nZXRBZ2VudChhZ2VudElkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgcmVuZGVyIHRvb2wgY2FsbHMgKHdhcm5zIGlmIG9iamVjdCByZWZlcmVuY2UgY2hhbmdlcylcbiAgICovXG4gIHNldFJlbmRlclRvb2xDYWxscyhyZW5kZXJUb29sQ2FsbHM6IFRvb2xDYWxsUmVuZGVyW10pOiB2b2lkIHtcbiAgICB0aGlzLl9yZW5kZXJUb29sQ2FsbHMuc2V0KHJlbmRlclRvb2xDYWxscyk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIGZyb250ZW5kIHRvb2xzIGFycmF5XG4gICAqL1xuICBzZXRGcm9udGVuZFRvb2xzKGZyb250ZW5kVG9vbHM6IEFuZ3VsYXJGcm9udGVuZFRvb2w8YW55PltdKTogdm9pZCB7XG4gICAgaWYgKGZyb250ZW5kVG9vbHMgIT09IHRoaXMuaW5pdGlhbEZyb250ZW5kVG9vbHMpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgIFwiZnJvbnRlbmRUb29scyBtdXN0IGJlIGEgc3RhYmxlIGFycmF5LiBUbyBhZGQvcmVtb3ZlIHRvb2xzIGR5bmFtaWNhbGx5LCB1c2UgZHluYW1pYyB0b29sIHJlZ2lzdHJhdGlvbi5cIlxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy5fZnJvbnRlbmRUb29scy5zZXQoZnJvbnRlbmRUb29scyk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIGh1bWFuLWluLXRoZS1sb29wIGFycmF5XG4gICAqL1xuICBzZXRIdW1hbkluVGhlTG9vcChodW1hbkluVGhlTG9vcDogQW5ndWxhckh1bWFuSW5UaGVMb29wPGFueT5bXSk6IHZvaWQge1xuICAgIGlmIChodW1hbkluVGhlTG9vcCAhPT0gdGhpcy5pbml0aWFsSHVtYW5JblRoZUxvb3ApIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgIFwiaHVtYW5JblRoZUxvb3AgbXVzdCBiZSBhIHN0YWJsZSBhcnJheS4gVG8gYWRkL3JlbW92ZSBodW1hbi1pbi10aGUtbG9vcCB0b29scyBkeW5hbWljYWxseSwgdXNlIGR5bmFtaWMgdG9vbCByZWdpc3RyYXRpb24uXCJcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuX2h1bWFuSW5UaGVMb29wLnNldChodW1hbkluVGhlTG9vcCk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIGN1cnJlbnQgcmVuZGVyIHRvb2wgY2FsbHNcbiAgICovXG4gIHNldEN1cnJlbnRSZW5kZXJUb29sQ2FsbHMocmVuZGVyVG9vbENhbGxzOiBUb29sQ2FsbFJlbmRlcltdKTogdm9pZCB7XG4gICAgdGhpcy5fY3VycmVudFJlbmRlclRvb2xDYWxscy5zZXQocmVuZGVyVG9vbENhbGxzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlciBhIHRvb2wgcmVuZGVyXG4gICAqL1xuICByZWdpc3RlclRvb2xSZW5kZXIobmFtZTogc3RyaW5nLCByZW5kZXI6IFRvb2xDYWxsUmVuZGVyKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudCA9IHRoaXMuX2N1cnJlbnRSZW5kZXJUb29sQ2FsbHMoKTtcbiAgICBpZiAoY3VycmVudC5maW5kKChyKSA9PiByLm5hbWUgPT09IG5hbWUpKSB7XG4gICAgICBjb25zb2xlLndhcm4oYFRvb2wgcmVuZGVyIGZvciAnJHtuYW1lfScgaXMgYmVpbmcgb3ZlcndyaXR0ZW5gKTtcbiAgICB9XG4gICAgdGhpcy5fY3VycmVudFJlbmRlclRvb2xDYWxscy5zZXQoW1xuICAgICAgLi4uY3VycmVudC5maWx0ZXIoKHIpID0+IHIubmFtZSAhPT0gbmFtZSksXG4gICAgICByZW5kZXIsXG4gICAgXSk7XG4gIH1cblxuICAvKipcbiAgICogVW5yZWdpc3RlciBhIHRvb2wgcmVuZGVyXG4gICAqL1xuICB1bnJlZ2lzdGVyVG9vbFJlbmRlcihuYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50ID0gdGhpcy5fY3VycmVudFJlbmRlclRvb2xDYWxscygpO1xuICAgIGNvbnN0IGZpbHRlcmVkID0gY3VycmVudC5maWx0ZXIoKHIpID0+IHIubmFtZSAhPT0gbmFtZSk7XG4gICAgaWYgKGZpbHRlcmVkLmxlbmd0aCAhPT0gY3VycmVudC5sZW5ndGgpIHtcbiAgICAgIHRoaXMuX2N1cnJlbnRSZW5kZXJUb29sQ2FsbHMuc2V0KGZpbHRlcmVkKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0IGEgc3BlY2lmaWMgdG9vbCByZW5kZXJcbiAgICovXG4gIGdldFRvb2xSZW5kZXIobmFtZTogc3RyaW5nKTogVG9vbENhbGxSZW5kZXIgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9jdXJyZW50UmVuZGVyVG9vbENhbGxzKCkuZmluZCgocikgPT4gci5uYW1lID09PSBuYW1lKTtcbiAgfVxufVxuIl19
|