stream-chat-angular 4.58.0 → 4.58.1
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/assets/version.d.ts +1 -1
- package/bundles/stream-chat-angular.umd.js +22 -4
- package/bundles/stream-chat-angular.umd.js.map +1 -1
- package/esm2015/assets/version.js +2 -2
- package/esm2015/lib/message-reactions/message-reactions.component.js +7 -4
- package/fesm2015/stream-chat-angular.js +7 -4
- package/fesm2015/stream-chat-angular.js.map +1 -1
- package/lib/message-reactions/message-reactions.component.d.ts +1 -1
- package/package.json +1 -1
- package/src/assets/styles/v2/css/index.css +1 -1
- package/src/assets/styles/v2/css/index.layout.css +1 -1
- package/src/assets/styles/v2/scss/MessageReactions/MessageReactions-layout.scss +3 -0
- package/src/assets/version.ts +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const version = '4.58.
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export const version = '4.58.1';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3N0cmVhbS1jaGF0LWFuZ3VsYXIvc3JjL2Fzc2V0cy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgdmVyc2lvbiA9ICc0LjU4LjEnO1xuIl19
|
|
@@ -179,9 +179,12 @@ export class MessageReactionsComponent {
|
|
|
179
179
|
return item.id;
|
|
180
180
|
}
|
|
181
181
|
react(type) {
|
|
182
|
-
this
|
|
183
|
-
|
|
184
|
-
|
|
182
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
183
|
+
this.ownReactions.find((r) => r.type === type)
|
|
184
|
+
? yield this.channelService.removeReaction(this.messageId, type)
|
|
185
|
+
: yield this.channelService.addReaction(this.messageId, type);
|
|
186
|
+
this.isSelectorOpenChange.emit(false);
|
|
187
|
+
});
|
|
185
188
|
}
|
|
186
189
|
isOwnReaction(reactionType) {
|
|
187
190
|
return !!this.ownReactions.find((r) => r.type === reactionType);
|
|
@@ -261,4 +264,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImpor
|
|
|
261
264
|
type: ViewChild,
|
|
262
265
|
args: ['selectorTooltip']
|
|
263
266
|
}] } });
|
|
264
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1yZWFjdGlvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3RyZWFtLWNoYXQtYW5ndWxhci9zcmMvbGliL21lc3NhZ2UtcmVhY3Rpb25zL21lc3NhZ2UtcmVhY3Rpb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N0cmVhbS1jaGF0LWFuZ3VsYXIvc3JjL2xpYi9tZXNzYWdlLXJlYWN0aW9ucy9tZXNzYWdlLXJlYWN0aW9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUlMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUlMLE1BQU0sRUFFTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXBELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7Ozs7OztBQU0xRTs7R0FFRztBQU1ILE1BQU0sT0FBTyx5QkFBeUI7SUFpRHBDLFlBQ1UsS0FBd0IsRUFDeEIsY0FBOEIsRUFDOUIsdUJBQWdELEVBQ2pELHNCQUE4QyxFQUM3QyxZQUEwQjtRQUoxQixVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQUN4QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF5QjtRQUNqRCwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQzdDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBL0NwQzs7V0FFRztRQUNNLDBCQUFxQixHQUM1QixFQUFFLENBQUM7UUFDTDs7V0FFRztRQUNNLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBQ3pDOztXQUVHO1FBQ00sb0JBQWUsR0FBa0QsRUFBRSxDQUFDO1FBQzdFOztXQUVHO1FBQ00saUJBQVksR0FBa0QsRUFBRSxD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R0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUNqRCxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsRUFBRSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsUUFBUSxDQUFFLEVBQ2xFLENBQUMsQ0FDRixDQUFDO0lBQ0osQ0FBQzs7c0hBblJVLHlCQUF5QjswR0FBekIseUJBQXlCLHFpQkNoQ3RDLDZuT0FzT0E7MkZEdE1hLHlCQUF5QjtrQkFMckMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsMEJBQTBCO29CQUNwQyxXQUFXLEVBQUUsb0NBQW9DO29CQUNqRCxNQUFNLEVBQUUsQ0FBQyxzREFBc0QsQ0FBQztpQkFDakU7Mk9BT1UsU0FBUztzQkFBakIsS0FBSztnQkFJRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBS0csY0FBYztzQkFBdEIsS0FBSztnQkFJRyxlQUFlO3NCQUF2QixLQUFLO2dCQUlHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBSWEsb0JBQW9CO3NCQUF0QyxNQUFNO2dCQUdpQyxpQkFBaUI7c0JBQXhELFNBQVM7dUJBQUMsbUJBQW1CO2dCQUdRLGVBQWU7c0JBQXBELFNBQVM7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3Q2hlY2tlZCxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVhY3Rpb25SZXNwb25zZSwgVXNlclJlc3BvbnNlIH0gZnJvbSAnc3RyZWFtLWNoYXQnO1xuaW1wb3J0IHsgQ2hhbm5lbFNlcnZpY2UgfSBmcm9tICcuLi9jaGFubmVsLnNlcnZpY2UnO1xuaW1wb3J0IHsgTWVzc2FnZVJlYWN0aW9uVHlwZSwgRGVmYXVsdFN0cmVhbUNoYXRHZW5lcmljcyB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IE5neFBvcHBlcmpzVHJpZ2dlcnMsIE5neFBvcHBlcmpzUGxhY2VtZW50cyB9IGZyb20gJ25neC1wb3BwZXJqcyc7XG5pbXBvcnQgeyBNZXNzYWdlUmVhY3Rpb25zU2VydmljZSB9IGZyb20gJy4uL21lc3NhZ2UtcmVhY3Rpb25zLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ3VzdG9tVGVtcGxhdGVzU2VydmljZSB9IGZyb20gJy4uL2N1c3RvbS10ZW1wbGF0ZXMuc2VydmljZSc7XG5pbXBvcnQgeyBUaGVtZVNlcnZpY2UgfSBmcm9tICcuLi90aGVtZS5zZXJ2aWNlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIFRoZSBgTWVzc2FnZVJlYWN0aW9uc2AgY29tcG9uZW50IGRpc3BsYXlzIHRoZSByZWFjdGlvbnMgb2YgYSBtZXNzYWdlLCB0aGUgY3VycmVudCB1c2VyIGNhbiBhZGQgYW5kIHJlbW92ZSByZWFjdGlvbnMuIFlvdSBjYW4gcmVhZCBtb3JlIGFib3V0IFttZXNzYWdlIHJlYWN0aW9uc10oaHR0cHM6Ly9nZXRzdHJlYW0uaW8vY2hhdC9kb2NzL2phdmFzY3JpcHQvc2VuZF9yZWFjdGlvbi8/bGFuZ3VhZ2U9amF2YXNjcmlwdCkgaW4gdGhlIHBsYXRmb3JtIGRvY3VtZW50YXRpb24uXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0cmVhbS1tZXNzYWdlLXJlYWN0aW9ucycsXG4gIHRlbXBsYXRlVXJsOiAnLi9tZXNzYWdlLXJlYWN0aW9ucy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlczogWycuZW1vamkge3Bvc2l0aW9uOiByZWxhdGl2ZTsgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9J10sXG59KVxuZXhwb3J0IGNsYXNzIE1lc3NhZ2VSZWFjdGlvbnNDb21wb25lbnRcbiAgaW1wbGVtZW50cyBBZnRlclZpZXdDaGVja2VkLCBPbkNoYW5nZXMsIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95XG57XG4gIC8qKlxuICAgKiBUaGUgaWQgb2YgdGhlIG1lc3NhZ2UgdGhlIHJlYWN0aW9ucyBiZWxvbmcgdG9cbiAgICovXG4gIEBJbnB1dCgpIG1lc3NhZ2VJZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAvKipcbiAgICogVGhlIG51bWJlciBvZiByZWFjdGlvbnMgZ3JvdXBlZCBieSBbcmVhY3Rpb24gdHlwZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9HZXRTdHJlYW0vc3RyZWFtLWNoYXQtYW5ndWxhci90cmVlL21hc3Rlci9wcm9qZWN0cy9zdHJlYW0tY2hhdC1hbmd1bGFyL3NyYy9saWIvbWVzc2FnZS1yZWFjdGlvbnMvbWVzc2FnZS1yZWFjdGlvbnMuY29tcG9uZW50LnRzKVxuICAgKi9cbiAgQElucHV0KCkgbWVzc2FnZVJlYWN0aW9uQ291bnRzOiB7IFtrZXkgaW4gTWVzc2FnZVJlYWN0aW9uVHlwZV0/OiBudW1iZXIgfSA9XG4gICAge307XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgaWYgdGhlIHNlbGVjdG9yIHNob3VsZCBiZSBvcGVuZWQgb3IgY2xvc2VkLiBBZGRpbmcgYSBVSSBlbGVtZW50IHRvIG9wZW4gYW5kIGNsb3NlIHRoZSBzZWxlY3RvciBpcyB0aGUgcGFyZW50J3MgY29tcG9uZW50IHJlc3BvbnNpYmlsaXR5LlxuICAgKi9cbiAgQElucHV0KCkgaXNTZWxlY3Rvck9wZW46IGJvb2xlYW4gPSBmYWxzZTtcbiAgLyoqXG4gICAqIExpc3Qgb2YgcmVhY3Rpb25zIG9mIGEgW21lc3NhZ2VdKC4uL3R5cGVzL3N0cmVhbS1tZXNzYWdlLm1keCksIHVzZWQgdG8gZGlzcGxheSB0aGUgdXNlcnMgb2YgYSByZWFjdGlvbiB0eXBlLlxuICAgKi9cbiAgQElucHV0KCkgbGF0ZXN0UmVhY3Rpb25zOiBSZWFjdGlvblJlc3BvbnNlPERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3M+W10gPSBbXTtcbiAgLyoqXG4gICAqIExpc3Qgb2YgdGhlIHVzZXIncyBvd24gcmVhY3Rpb25zIG9mIGEgW21lc3NhZ2VdKC4uL3R5cGVzL3N0cmVhbS1tZXNzYWdlLm1keCksIHVzZWQgdG8gZGlzcGxheSB0aGUgdXNlcnMgb2YgYSByZWFjdGlvbiB0eXBlLlxuICAgKi9cbiAgQElucHV0KCkgb3duUmVhY3Rpb25zOiBSZWFjdGlvblJlc3BvbnNlPERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3M+W10gPSBbXTtcbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiB0aGUgc2VsZWN0b3Igc2hvdWxkIGJlIG9wZW5lZCBvciBjbG9zZWQuIEFkZGluZyBhIFVJIGVsZW1lbnQgdG8gb3BlbiBhbmQgY2xvc2UgdGhlIHNlbGVjdG9yIGlzIHRoZSBwYXJlbnQncyBjb21wb25lbnQgcmVzcG9uc2liaWxpdHkuXG4gICAqL1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgaXNTZWxlY3Rvck9wZW5DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIHRvb2x0aXBQb3NpdGlvbnM6IHsgYXJyb3c6IG51bWJlcjsgdG9vbHRpcDogbnVtYmVyIH0gfCB1bmRlZmluZWQ7XG4gIHRvb2x0aXBUZXh0OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIEBWaWV3Q2hpbGQoJ3NlbGVjdG9yQ29udGFpbmVyJykgcHJpdmF0ZSBzZWxlY3RvckNvbnRhaW5lcjpcbiAgICB8IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+XG4gICAgfCB1bmRlZmluZWQ7XG4gIEBWaWV3Q2hpbGQoJ3NlbGVjdG9yVG9vbHRpcCcpIHByaXZhdGUgc2VsZWN0b3JUb29sdGlwOlxuICAgIHwgRWxlbWVudFJlZjxIVE1MRWxlbWVudD5cbiAgICB8IHVuZGVmaW5lZDtcbiAgY3VycmVudFRvb2x0aXBUYXJnZXQ6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkO1xuICBwb3BwZXJUcmlnZ2VySG92ZXIgPSBOZ3hQb3BwZXJqc1RyaWdnZXJzLmhvdmVyO1xuICBwb3BwZXJQbGFjZW1lbnRBdXRvID0gTmd4UG9wcGVyanNQbGFjZW1lbnRzLkFVVE87XG4gIHNlbGVjdGVkUmVhY3Rpb25UeXBlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIGlzTG9hZGluZyA9IHRydWU7XG4gIHJlYWN0aW9uczogUmVhY3Rpb25SZXNwb25zZVtdID0gW107XG4gIHNob3VsZEhhbmRsZVJlYWN0aW9uQ2xpY2sgPSB0cnVlO1xuICBleGlzdGluZ1JlYWN0aW9uczogc3RyaW5nW10gPSBbXTtcbiAgcmVhY3Rpb25zQ291bnQ6IG51bWJlciA9IDA7XG4gIHJlYWN0aW9uT3B0aW9uczogc3RyaW5nW10gPSBbXTtcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuICBwcml2YXRlIGlzVmlld0luaXRlZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgY2hhbm5lbFNlcnZpY2U6IENoYW5uZWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgbWVzc2FnZVJlYWN0aW9uc1NlcnZpY2U6IE1lc3NhZ2VSZWFjdGlvbnNTZXJ2aWNlLFxuICAgIHB1YmxpYyBjdXN0b21UZW1wbGF0ZXNTZXJ2aWNlOiBDdXN0b21UZW1wbGF0ZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgdGhlbWVTZXJ2aWNlOiBUaGVtZVNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy5tZXNzYWdlUmVhY3Rpb25zU2VydmljZS5yZWFjdGlvbnMkLnN1YnNjcmliZSgocmVhY3Rpb25zKSA9PiB7XG4gICAgICAgIHRoaXMucmVhY3Rpb25PcHRpb25zID0gT2JqZWN0LmtleXMocmVhY3Rpb25zKTtcbiAgICAgICAgdGhpcy5zZXRFeGlzdGluZ1JlYWN0aW9ucygpO1xuICAgICAgICBpZiAodGhpcy5pc1ZpZXdJbml0ZWQpIHtcbiAgICAgICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzLmlzU2VsZWN0b3JPcGVuKSB7XG4gICAgICB0aGlzLmlzU2VsZWN0b3JPcGVuXG4gICAgICAgID8gc2V0VGltZW91dCgoKSA9PiB0aGlzLndhdGNoRm9yT3V0c2lkZUNsaWNrcygpKSAvLyBzZXRUaW1lb3V0OiB3YWl0IGZvciBjdXJyZW50IGNsaWNrIHRvIGJ1YmJsZSB1cCwgYW5kIG9ubHkgd2F0Y2ggZm9yIGNsaWNrcyBhZnRlciB0aGF0XG4gICAgICAgIDogdGhpcy5zdG9wV2F0Y2hGb3JPdXRzaWRlQ2xpY2tzKCk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzLm1lc3NhZ2VSZWFjdGlvbkNvdW50cykge1xuICAgICAgdGhpcy5zZXRFeGlzdGluZ1JlYWN0aW9ucygpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlcy5tZXNzYWdlUmVhY3Rpb25Db3VudHMgJiYgdGhpcy5tZXNzYWdlUmVhY3Rpb25Db3VudHMpIHtcbiAgICAgIGNvbnN0IHJlYWN0aW9uc0NvdW50ID0gT2JqZWN0LmtleXModGhpcy5tZXNzYWdlUmVhY3Rpb25Db3VudHMpLnJlZHVjZShcbiAgICAgICAgKGFjYywga2V5KSA9PiBhY2MgKyAodGhpcy5tZXNzYWdlUmVhY3Rpb25Db3VudHNba2V5XSB8fCAwKSxcbiAgICAgICAgMFxuICAgICAgKTtcbiAgICAgIHRoaXMuc2hvdWxkSGFuZGxlUmVhY3Rpb25DbGljayA9XG4gICAgICAgIHJlYWN0aW9uc0NvdW50IDw9IENoYW5uZWxTZXJ2aWNlLk1BWF9NRVNTQUdFX1JFQUNUSU9OU19UT19GRVRDSCB8fFxuICAgICAgICAhIXRoaXMubWVzc2FnZVJlYWN0aW9uc1NlcnZpY2UuY3VzdG9tUmVhY3Rpb25DbGlja0hhbmRsZXI7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaXNWaWV3SW5pdGVkID0gdHJ1ZTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy50b29sdGlwVGV4dCAmJiAhdGhpcy50b29sdGlwUG9zaXRpb25zKSB7XG4gICAgICB0aGlzLnNldFRvb2x0aXBQb3NpdGlvbigpO1xuICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goKHMpID0+IHMudW5zdWJzY3JpYmUoKSk7XG4gIH1cblxuICBnZXRMYXRlc3RVc2VyQnlSZWFjdGlvbihyZWFjdGlvblR5cGU6IE1lc3NhZ2VSZWFjdGlvblR5cGUpIHtcbiAgICByZXR1cm4gdGhpcy5sYXRlc3RSZWFjdGlvbnMuZmluZCgocikgPT4gci50eXBlID09PSByZWFjdGlvblR5cGUgJiYgci51c2VyKVxuICAgICAgPy51c2VyO1xuICB9XG5cbiAgZ2V0RW1vamlCeVJlYWN0aW9uKHJlYWN0aW9uVHlwZTogTWVzc2FnZVJlYWN0aW9uVHlwZSkge1xuICAgIHJldHVybiB0aGlzLm1lc3NhZ2VSZWFjdGlvbnNTZXJ2aWNlLnJlYWN0aW9uc1tyZWFjdGlvblR5cGVdO1xuICB9XG5cbiAgcmVhY3Rpb25TZWxlY3RlZChyZWFjdGlvblR5cGU6IHN0cmluZykge1xuICAgIGlmICghdGhpcy5zaG91bGRIYW5kbGVSZWFjdGlvbkNsaWNrKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLnRoZW1lU2VydmljZS50aGVtZVZlcnNpb24gPT09ICcxJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIXRoaXMubWVzc2FnZUlkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLm1lc3NhZ2VSZWFjdGlvbnNTZXJ2aWNlLmN1c3RvbVJlYWN0aW9uQ2xpY2tIYW5kbGVyKSB7XG4gICAgICB0aGlzLm1lc3NhZ2VSZWFjdGlvbnNTZXJ2aWNlLmN1c3RvbVJlYWN0aW9uQ2xpY2tIYW5kbGVyKHtcbiAgICAgICAgbWVzc2FnZUlkOiB0aGlzLm1lc3NhZ2VJZCxcbiAgICAgICAgcmVhY3Rpb25UeXBlOiByZWFjdGlvblR5cGUsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZFJlYWN0aW9uVHlwZSA9IHJlYWN0aW9uVHlwZTtcbiAgICAgIHZvaWQgdGhpcy5mZXRjaEFsbFJlYWN0aW9ucygpO1xuICAgIH1cbiAgfVxuXG4gIGdldFVzZXJzQnlSZWFjdGlvbihyZWFjdGlvblR5cGU6IE1lc3NhZ2VSZWFjdGlvblR5cGUpIHtcbiAgICByZXR1cm4gdGhpcy5sYXRlc3RSZWFjdGlvbnNcbiAgICAgIC5maWx0ZXIoKHIpID0+IHIudHlwZSA9PT0gcmVhY3Rpb25UeXBlKVxuICAgICAgLm1hcCgocikgPT4gci51c2VyPy5uYW1lIHx8IHIudXNlcj8uaWQpXG4gICAgICAuZmlsdGVyKChpKSA9PiAhIWkpXG4gICAgICAuam9pbignLCAnKTtcbiAgfVxuXG4gIGdldEFsbFVzZXJzQnlSZWFjdGlvbihcbiAgICByZWFjdGlvblR5cGU/OiBNZXNzYWdlUmVhY3Rpb25UeXBlXG4gICk6IFVzZXJSZXNwb25zZTxEZWZhdWx0U3RyZWFtQ2hhdEdlbmVyaWNzPltdIHtcbiAgICBpZiAoIXJlYWN0aW9uVHlwZSkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGNvbnN0IHVzZXJzID0gdGhpcy5yZWFjdGlvbnNcbiAgICAgIC5maWx0ZXIoKHIpID0+IHIudHlwZSA9PT0gcmVhY3Rpb25UeXBlKVxuICAgICAgLm1hcCgocikgPT4gci51c2VyKVxuICAgICAgLmZpbHRlcigoaSkgPT4gISFpKSBhcyBVc2VyUmVzcG9uc2VbXTtcblxuICAgIHVzZXJzLnNvcnQoKHUxLCB1MikgPT4ge1xuICAgICAgY29uc3QgbmFtZTEgPSB1MS5uYW1lPy50b0xvd2VyQ2FzZSgpO1xuICAgICAgY29uc3QgbmFtZTIgPSB1Mi5uYW1lPy50b0xvd2VyQ2FzZSgpO1xuXG4gICAgICBpZiAoIW5hbWUxKSB7XG4gICAgICAgIHJldHVybiAxO1xuICAgICAgfVxuXG4gICAgICBpZiAoIW5hbWUyKSB7XG4gICAgICAgIHJldHVybiAtMTtcbiAgICAgIH1cblxuICAgICAgaWYgKG5hbWUxID09PSBuYW1lMikge1xuICAgICAgICByZXR1cm4gMDtcbiAgICAgIH1cblxuICAgICAgaWYgKG5hbWUxIDwgbmFtZTIpIHtcbiAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIDE7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gdXNlcnM7XG4gIH1cblxuICBzaG93VG9vbHRpcChldmVudDogRXZlbnQsIHJlYWN0aW9uVHlwZTogTWVzc2FnZVJlYWN0aW9uVHlwZSkge1xuICAgIHRoaXMuY3VycmVudFRvb2x0aXBUYXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgdGhpcy50b29sdGlwVGV4dCA9IHRoaXMuZ2V0VXNlcnNCeVJlYWN0aW9uKHJlYWN0aW9uVHlwZSk7XG4gIH1cblxuICBoaWRlVG9vbHRpcCgpIHtcbiAgICB0aGlzLnRvb2x0aXBUZXh0ID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuY3VycmVudFRvb2x0aXBUYXJnZXQgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy50b29sdGlwUG9zaXRpb25zID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgdHJhY2tCeU1lc3NhZ2VSZWFjdGlvbihpbmRleDogbnVtYmVyLCBpdGVtOiBNZXNzYWdlUmVhY3Rpb25UeXBlKSB7XG4gICAgcmV0dXJuIGl0ZW07XG4gIH1cblxuICB0cmFja0J5VXNlcklkKGluZGV4OiBudW1iZXIsIGl0ZW06IFVzZXJSZXNwb25zZSkge1xuICAgIHJldHVybiBpdGVtLmlkO1xuICB9XG5cbiAgcmVhY3QodHlwZTogTWVzc2FnZVJlYWN0aW9uVHlwZSkge1xuICAgIHRoaXMub3duUmVhY3Rpb25zLmZpbmQoKHIpID0+IHIudHlwZSA9PT0gdHlwZSlcbiAgICAgID8gdm9pZCB0aGlzLmNoYW5uZWxTZXJ2aWNlLnJlbW92ZVJlYWN0aW9uKHRoaXMubWVzc2FnZUlkISwgdHlwZSlcbiAgICAgIDogdm9pZCB0aGlzLmNoYW5uZWxTZXJ2aWNlLmFkZFJlYWN0aW9uKHRoaXMubWVzc2FnZUlkISwgdHlwZSk7XG4gIH1cblxuICBpc093blJlYWN0aW9uKHJlYWN0aW9uVHlwZTogTWVzc2FnZVJlYWN0aW9uVHlwZSkge1xuICAgIHJldHVybiAhIXRoaXMub3duUmVhY3Rpb25zLmZpbmQoKHIpID0+IHIudHlwZSA9PT0gcmVhY3Rpb25UeXBlKTtcbiAgfVxuXG4gIGlzT3BlbkNoYW5nZSA9IChpc09wZW46IGJvb2xlYW4pID0+IHtcbiAgICB0aGlzLnNlbGVjdGVkUmVhY3Rpb25UeXBlID0gaXNPcGVuID8gdGhpcy5zZWxlY3RlZFJlYWN0aW9uVHlwZSA6IHVuZGVmaW5lZDtcbiAgfTtcblxuICBwcml2YXRlIGV2ZW50SGFuZGxlciA9IChldmVudDogRXZlbnQpID0+IHtcbiAgICBpZiAoIXRoaXMuc2VsZWN0b3JDb250YWluZXI/Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIE5vZGUpKSB7XG4gICAgICB0aGlzLmlzU2VsZWN0b3JPcGVuQ2hhbmdlLmVtaXQoZmFsc2UpO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIHdhdGNoRm9yT3V0c2lkZUNsaWNrcygpIHtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLmV2ZW50SGFuZGxlcik7XG4gIH1cblxuICBwcml2YXRlIHN0b3BXYXRjaEZvck91dHNpZGVDbGlja3MoKSB7XG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5ldmVudEhhbmRsZXIpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRUb29sdGlwUG9zaXRpb24oKSB7XG4gICAgY29uc3QgdG9vbHRpcCA9IHRoaXMuc2VsZWN0b3JUb29sdGlwPy5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IHRhcmdldCA9IHRoaXMuY3VycmVudFRvb2x0aXBUYXJnZXQ/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgY29uc3QgY29udGFpbmVyID1cbiAgICAgIHRoaXMuc2VsZWN0b3JDb250YWluZXI/Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICBpZiAoIXRvb2x0aXAgfHwgIXRhcmdldCB8fCAhY29udGFpbmVyKSByZXR1cm47XG5cbiAgICBjb25zdCB0b29sdGlwUG9zaXRpb24gPVxuICAgICAgdG9vbHRpcC53aWR0aCA9PT0gY29udGFpbmVyLndpZHRoIHx8IHRvb2x0aXAueCA8IGNvbnRhaW5lci54XG4gICAgICAgID8gMFxuICAgICAgICA6IHRhcmdldC5sZWZ0ICsgdGFyZ2V0LndpZHRoIC8gMiAtIGNvbnRhaW5lci5sZWZ0IC0gdG9vbHRpcC53aWR0aCAvIDI7XG5cbiAgICBjb25zdCBhcnJvd1Bvc2l0aW9uID1cbiAgICAgIHRhcmdldC54IC0gdG9vbHRpcC54ICsgdGFyZ2V0LndpZHRoIC8gMiAtIHRvb2x0aXBQb3NpdGlvbjtcblxuICAgIHRoaXMudG9vbHRpcFBvc2l0aW9ucyA9IHtcbiAgICAgIHRvb2x0aXA6IHRvb2x0aXBQb3NpdGlvbixcbiAgICAgIGFycm93OiBhcnJvd1Bvc2l0aW9uLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGZldGNoQWxsUmVhY3Rpb25zKCkge1xuICAgIGlmICghdGhpcy5tZXNzYWdlSWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgIHRyeSB7XG4gICAgICB0aGlzLnJlYWN0aW9ucyA9IGF3YWl0IHRoaXMuY2hhbm5lbFNlcnZpY2UuZ2V0TWVzc2FnZVJlYWN0aW9ucyhcbiAgICAgICAgdGhpcy5tZXNzYWdlSWRcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRSZWFjdGlvblR5cGUgPSB1bmRlZmluZWQ7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldEV4aXN0aW5nUmVhY3Rpb25zKCkge1xuICAgIHRoaXMuZXhpc3RpbmdSZWFjdGlvbnMgPSBPYmplY3Qua2V5cyh0aGlzLm1lc3NhZ2VSZWFjdGlvbkNvdW50cylcbiAgICAgIC5maWx0ZXIoKGspID0+IHRoaXMucmVhY3Rpb25PcHRpb25zLmluZGV4T2YoaykgIT09IC0xKVxuICAgICAgLmZpbHRlcigoaykgPT4gdGhpcy5tZXNzYWdlUmVhY3Rpb25Db3VudHNba10hID4gMCk7XG4gICAgdGhpcy5yZWFjdGlvbnNDb3VudCA9IHRoaXMuZXhpc3RpbmdSZWFjdGlvbnMucmVkdWNlKFxuICAgICAgKHRvdGFsLCByZWFjdGlvbikgPT4gdG90YWwgKyB0aGlzLm1lc3NhZ2VSZWFjdGlvbkNvdW50c1tyZWFjdGlvbl0hLFxuICAgICAgMFxuICAgICk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgKm5nSWY9XCJleGlzdGluZ1JlYWN0aW9ucy5sZW5ndGggPiAwXCJcbiAgY2xhc3M9XCJzdHItY2hhdF9fcmVhY3Rpb24tbGlzdCBzdHItY2hhdF9fbWVzc2FnZS1yZWFjdGlvbnMtY29udGFpbmVyXCJcbiAgW2NsYXNzLnN0ci1jaGF0X19yZWFjdGlvbi1saXN0LS1yZXZlcnNlXT1cInRydWVcIlxuICBbY2xhc3Muc3RyLWNoYXRfX3JlYWN0aW9uLWxpc3QtaGlkZGVuXT1cImlzU2VsZWN0b3JPcGVuXCJcbiAgZGF0YS10ZXN0aWQ9XCJyZWFjdGlvbi1saXN0XCJcbj5cbiAgPHVsIGNsYXNzPVwic3RyLWNoYXRfX21lc3NhZ2UtcmVhY3Rpb25zXCI+XG4gICAgPGxpXG4gICAgICBjbGFzcz1cInN0ci1jaGF0X19tZXNzYWdlLXJlYWN0aW9uXCJcbiAgICAgICpuZ0Zvcj1cIlxuICAgICAgICBsZXQgcmVhY3Rpb25UeXBlIG9mIGV4aXN0aW5nUmVhY3Rpb25zO1xuICAgICAgICB0cmFja0J5OiB0cmFja0J5TWVzc2FnZVJlYWN0aW9uXG4gICAgICBcIlxuICAgICAgW25nU3R5bGVdPVwieyBjdXJzb3I6IHNob3VsZEhhbmRsZVJlYWN0aW9uQ2xpY2sgPyAncG9pbnRlcicgOiAnZGVmYXVsdCcgfVwiXG4gICAgICBbY2xhc3Muc3RyLWNoYXRfX21lc3NhZ2UtcmVhY3Rpb24tb3duXT1cImlzT3duUmVhY3Rpb24ocmVhY3Rpb25UeXBlKVwiXG4gICAgICBkYXRhLXRlc3RjbGFzcz1cImVtb2ppXCJcbiAgICAgIChjbGljayk9XCJyZWFjdGlvblNlbGVjdGVkKHJlYWN0aW9uVHlwZSlcIlxuICAgICAgKGtleXVwLmVudGVyKT1cInJlYWN0aW9uU2VsZWN0ZWQocmVhY3Rpb25UeXBlKVwiXG4gICAgPlxuICAgICAgPHNwYW4gY2xhc3M9XCJlbW9qaSBzdHItY2hhdF9fbWVzc2FnZS1yZWFjdGlvbi1lbW9qaVwiPlxuICAgICAgICB7eyBnZXRFbW9qaUJ5UmVhY3Rpb24ocmVhY3Rpb25UeXBlKSB9fSZuYnNwO1xuICAgICAgPC9zcGFuPlxuICAgICAgPHNwYW5cbiAgICAgICAgZGF0YS10ZXN0Y2xhc3M9XCJyZWFjdGlvbi1saXN0LXJlYWN0aW9uLWNvdW50XCJcbiAgICAgICAgY2xhc3M9XCJzdHItY2hhdF9fbWVzc2FnZS1yZWFjdGlvbi1jb3VudFwiXG4gICAgICA+XG4gICAgICAgIHt7IG1lc3NhZ2VSZWFjdGlvbkNvdW50c1tyZWFjdGlvblR5cGVdIH19XG4gICAgICA8L3NwYW4+XG4gICAgPC9saT5cbiAgICA8bGk+XG4gICAgICA8c3BhblxuICAgICAgICBkYXRhLXRlc3RpZD1cInJlYWN0aW9ucy1jb3VudFwiXG4gICAgICAgIGNsYXNzPVwic3RyLWNoYXRfX3JlYWN0aW9uLWxpc3QtLWNvdW50ZXJcIlxuICAgICAgICA+e3sgcmVhY3Rpb25zQ291bnQgfX08L3NwYW5cbiAgICAgID5cbiAgICA8L2xpPlxuICA8L3VsPlxuPC9kaXY+XG5cbjxkaXZcbiAgI3NlbGVjdG9yQ29udGFpbmVyXG4gIGNsYXNzPVwic3RyLWNoYXRfX3JlYWN0aW9uLXNlbGVjdG9yIHN0ci1jaGF0X19tZXNzYWdlLXJlYWN0aW9uLXNlbGVjdG9yXCJcbiAgKm5nSWY9XCJpc1NlbGVjdG9yT3BlblwiXG4gIGRhdGEtdGVzdGlkPVwicmVhY3Rpb24tc2VsZWN0b3JcIlxuPlxuICA8ZGl2XG4gICAgKm5nSWY9XCJ0b29sdGlwVGV4dFwiXG4gICAgZGF0YS10ZXN0aWQ9XCJ0b29sdGlwXCJcbiAgICAjc2VsZWN0b3JUb29sdGlwXG4gICAgY2xhc3M9XCJzdHItY2hhdF9fcmVhY3Rpb24tc2VsZWN0b3ItdG9vbHRpcFwiXG4gICAgW25nU3R5bGVdPVwie1xuICAgICAgbGVmdDogdG9vbHRpcFBvc2l0aW9ucz8udG9vbHRpcCArICdweCcsXG4gICAgICB2aXNpYmlsaXR5OiB0b29sdGlwUG9zaXRpb25zID8gJ3Zpc2libGUnIDogJ2hpZGRlbidcbiAgICB9XCJcbiAgPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiYXJyb3dcIlxuICAgICAgW25nU3R5bGVdPVwieyBsZWZ0OiB0b29sdGlwUG9zaXRpb25zPy5hcnJvdyArICdweCcgfVwiXG4gICAgPjwvZGl2PlxuICAgIDxzcGFuIGNsYXNzPVwibGF0ZXN0LXVzZXItdXNlcm5hbWVcIj5cbiAgICAgIHt7IHRvb2x0aXBUZXh0IH19XG4gICAgPC9zcGFuPlxuICA8L2Rpdj5cbiAgPHVsXG4gICAgY2xhc3M9XCJzdHItY2hhdF9fbWVzc2FnZS1yZWFjdGlvbnMtbGlzdCBzdHItY2hhdF9fbWVzc2FnZS1yZWFjdGlvbnMtb3B0aW9uc1wiXG4gID5cbiAgICA8bGlcbiAgICAgIGNsYXNzPVwiXG4gICAgICAgIHN0ci1jaGF0X19tZXNzYWdlLXJlYWN0aW9ucy1vcHRpb25cbiAgICAgICAgc3RyLWNoYXRfX21lc3NhZ2UtcmVhY3Rpb25zLWxpc3QtaXRlbVxuICAgICAgICBzdHItY2hhdF9fZW1vamlcbiAgICAgIFwiXG4gICAgICAqbmdGb3I9XCJcbiAgICAgICAgbGV0IHJlYWN0aW9uVHlwZSBvZiByZWFjdGlvbk9wdGlvbnM7XG4gICAgICAgIHRyYWNrQnk6IHRyYWNrQnlNZXNzYWdlUmVhY3Rpb25cbiAgICAgIFwiXG4gICAgICBbY2xhc3Muc3RyLWNoYXRfX21lc3NhZ2UtcmVhY3Rpb25zLW9wdGlvbi1zZWxlY3RlZF09XCJcbiAgICAgICAgaXNPd25SZWFjdGlvbihyZWFjdGlvblR5cGUpXG4gICAgICBcIlxuICAgICAgZGF0YS10ZXN0Y2xhc3M9XCJlbW9qaS1vcHRpb25cIlxuICAgICAgKGNsaWNrKT1cInJlYWN0KHJlYWN0aW9uVHlwZSlcIlxuICAgICAgKGtleXVwLmVudGVyKT1cInJlYWN0KHJlYWN0aW9uVHlwZSlcIlxuICAgID5cbiAgICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCJnZXRMYXRlc3RVc2VyQnlSZWFjdGlvbihyZWFjdGlvblR5cGUpIGFzIHVzZXJcIlxuICAgICAgICBjbGFzcz1cImxhdGVzdC11c2VyIHN0ci1jaGF0X19tZXNzYWdlLXJlYWN0aW9ucy1sYXN0LXVzZXJcIlxuICAgICAgICAoY2xpY2spPVwiaGlkZVRvb2x0aXAoKVwiXG4gICAgICAgIChrZXl1cC5lbnRlcik9XCJoaWRlVG9vbHRpcCgpXCJcbiAgICAgICAgKG1vdXNlZW50ZXIpPVwic2hvd1Rvb2x0aXAoJGV2ZW50LCByZWFjdGlvblR5cGUpXCJcbiAgICAgICAgKG1vdXNlbGVhdmUpPVwiaGlkZVRvb2x0aXAoKVwiXG4gICAgICAgIGF0dHIuZGF0YS10ZXN0aWQ9XCJ7eyByZWFjdGlvblR5cGUgfX0tbGFzdC11c2VyXCJcbiAgICAgID5cbiAgICAgICAgPHN0cmVhbS1hdmF0YXItcGxhY2Vob2xkZXJcbiAgICAgICAgICBhdHRyLmRhdGEtdGVzdGlkPVwie3sgcmVhY3Rpb25UeXBlIH19LWF2YXRhclwiXG4gICAgICAgICAgW2ltYWdlVXJsXT1cInVzZXIuaW1hZ2VcIlxuICAgICAgICAgIFtuYW1lXT1cInVzZXIubmFtZSB8fCB1c2VyLmlkXCJcbiAgICAgICAgICBbc2l6ZV09XCIyMFwiXG4gICAgICAgICAgbG9jYXRpb249XCJyZWFjdGlvblwiXG4gICAgICAgID48L3N0cmVhbS1hdmF0YXItcGxhY2Vob2xkZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxzcGFuXG4gICAgICAgIGNsYXNzPVwiXG4gICAgICAgICAgZW1vamlcbiAgICAgICAgICBzdHItY2hhdF9fZW1vamktc2VsZWN0b3ItZW1vamktYW5ndWxhclxuICAgICAgICAgIHN0ci1jaGF0X19tZXNzYWdlLXJlYWN0aW9uLWVtb2ppXG4gICAgICAgIFwiXG4gICAgICA+XG4gICAgICAgIHt7IGdldEVtb2ppQnlSZWFjdGlvbihyZWFjdGlvblR5cGUpIH19XG4gICAgICA8L3NwYW4+XG4gICAgICA8c3BhblxuICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgIG1lc3NhZ2VSZWFjdGlvbkNvdW50c1tyZWFjdGlvblR5cGVdICYmXG4gICAgICAgICAgbWVzc2FnZVJlYWN0aW9uQ291bnRzW3JlYWN0aW9uVHlwZV0hID4gMFxuICAgICAgICBcIlxuICAgICAgICBjbGFzcz1cInN0ci1jaGF0X19tZXNzYWdlLXJlYWN0aW9ucy1saXN0LWl0ZW1fX2NvdW50XCJcbiAgICAgICAgYXR0ci5kYXRhLXRlc3RpZD1cInt7IHJlYWN0aW9uVHlwZSB9fS1yZWFjdGlvbi1jb3VudFwiXG4gICAgICA+XG4gICAgICAgIHt7IG1lc3NhZ2VSZWFjdGlvbkNvdW50c1tyZWFjdGlvblR5cGVdIH19XG4gICAgICA8L3NwYW4+XG4gICAgPC9saT5cbiAgPC91bD5cbjwvZGl2PlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0ZWRSZWFjdGlvblR5cGVcIj5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAoY3VzdG9tVGVtcGxhdGVzU2VydmljZS5tb2RhbFRlbXBsYXRlJCB8IGFzeW5jKSB8fCBkZWZhdWx0TW9kYWw7XG4gICAgICBjb250ZXh0OiB7XG4gICAgICAgIGlzT3BlbjogISFzZWxlY3RlZFJlYWN0aW9uVHlwZSxcbiAgICAgICAgbWVzc2FnZUlkOiBtZXNzYWdlSWQsXG4gICAgICAgIHJlYWN0aW9uVHlwZTogc2VsZWN0ZWRSZWFjdGlvblR5cGUsXG4gICAgICAgIGlzT3BlbkNoYW5nZUhhbmRsZXI6IGlzT3BlbkNoYW5nZSxcbiAgICAgICAgY29udGVudDogbW9kYWxDb250ZW50XG4gICAgICB9XG4gICAgXCJcbiAgPjwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZVxuICAjZGVmYXVsdE1vZGFsXG4gIGxldC1pc09wZW49XCJpc09wZW5cIlxuICBsZXQtbWVzc2FnZUlkPVwibWVzc2FnZUlkXCJcbiAgbGV0LXJlYWN0aW9uVHlwZT1cInJlYWN0aW9uVHlwZVwiXG4gIGxldC1pc09wZW5DaGFuZ2VIYW5kbGVyPVwiaXNPcGVuQ2hhbmdlSGFuZGxlclwiXG4gIGxldC1jb250ZW50PVwiY29udGVudFwiXG4+XG4gIDxzdHJlYW0tbW9kYWxcbiAgICBjbGFzcz1cInN0ci1jaGF0X19tZXNzYWdlLXJlYWN0aW9ucy1kZXRhaWxzLW1vZGFsXCJcbiAgICBbaXNPcGVuXT1cImlzT3BlblwiXG4gICAgKGlzT3BlbkNoYW5nZSk9XCJpc09wZW5DaGFuZ2VIYW5kbGVyKCRldmVudClcIlxuICAgIFtjb250ZW50XT1cImNvbnRlbnRcIlxuICA+XG4gIDwvc3RyZWFtLW1vZGFsPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNtb2RhbENvbnRlbnQ+XG4gIDxkaXYgY2xhc3M9XCJzdHItY2hhdF9fbWVzc2FnZS1yZWFjdGlvbnMtZGV0YWlsc1wiPlxuICAgIDxkaXYgY2xhc3M9XCJzdHItY2hhdF9fbWVzc2FnZS1yZWFjdGlvbnMtZGV0YWlscy1yZWFjdGlvbi10eXBlc1wiPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInN0ci1jaGF0X19tZXNzYWdlLXJlYWN0aW9ucy1kZXRhaWxzLXJlYWN0aW9uLXR5cGVcIlxuICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICBsZXQgcmVhY3Rpb25UeXBlIG9mIGV4aXN0aW5nUmVhY3Rpb25zO1xuICAgICAgICAgIHRyYWNrQnk6IHRyYWNrQnlNZXNzYWdlUmVhY3Rpb25cbiAgICAgICAgXCJcbiAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgIGN1cnNvcjogc2hvdWxkSGFuZGxlUmVhY3Rpb25DbGljayA/ICdwb2ludGVyJyA6ICdkZWZhdWx0J1xuICAgICAgICB9XCJcbiAgICAgICAgYXR0ci5kYXRhLXRlc3RpZD1cInJlYWN0aW9uLWRldGFpbHMtc2VsZWN0b3Ite3sgcmVhY3Rpb25UeXBlIH19XCJcbiAgICAgICAgW2NsYXNzLnN0ci1jaGF0X19tZXNzYWdlLXJlYWN0aW9ucy1kZXRhaWxzLXJlYWN0aW9uLXR5cGUtLXNlbGVjdGVkXT1cIlxuICAgICAgICAgIHJlYWN0aW9uVHlwZSA9PT0gc2VsZWN0ZWRSZWFjdGlvblR5cGVcbiAgICAgICAgXCJcbiAgICAgICAgKGNsaWNrKT1cInNlbGVjdGVkUmVhY3Rpb25UeXBlID0gcmVhY3Rpb25UeXBlOyBhbGxVc2Vycy5zY3JvbGxUb3AgPSAwXCJcbiAgICAgICAgKGtleXVwLmVudGVyKT1cIlxuICAgICAgICAgIHNlbGVjdGVkUmVhY3Rpb25UeXBlID0gcmVhY3Rpb25UeXBlOyBhbGxVc2Vycy5zY3JvbGxUb3AgPSAwXG4gICAgICAgIFwiXG4gICAgICA+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZW1vamkgc3RyLWNoYXRfX21lc3NhZ2UtcmVhY3Rpb24tZW1vamlcIj5cbiAgICAgICAgICB7eyBnZXRFbW9qaUJ5UmVhY3Rpb24ocmVhY3Rpb25UeXBlKSB9fSZuYnNwO1xuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic3RyLWNoYXRfX21lc3NhZ2UtcmVhY3Rpb24tY291bnRcIj5cbiAgICAgICAgICB7eyBtZXNzYWdlUmVhY3Rpb25Db3VudHNbcmVhY3Rpb25UeXBlXSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cIlxuICAgICAgICBlbW9qaVxuICAgICAgICBzdHItY2hhdF9fbWVzc2FnZS1yZWFjdGlvbi1lbW9qaSBzdHItY2hhdF9fbWVzc2FnZS1yZWFjdGlvbi1lbW9qaS1iaWdcbiAgICAgIFwiXG4gICAgPlxuICAgICAge3sgZ2V0RW1vamlCeVJlYWN0aW9uKHNlbGVjdGVkUmVhY3Rpb25UeXBlISkgfX1cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICAjYWxsVXNlcnNcbiAgICAgIGRhdGEtdGVzdGlkPVwiYWxsLXJlYWN0aW5nLXVzZXJzXCJcbiAgICAgIGNsYXNzPVwic3RyLWNoYXRfX21lc3NhZ2UtcmVhY3Rpb25zLWRldGFpbHMtcmVhY3RpbmctdXNlcnNcIlxuICAgID5cbiAgICAgIDxzdHJlYW0tbG9hZGluZy1pbmRpY2F0b3JcbiAgICAgICAgKm5nSWY9XCJpc0xvYWRpbmc7IGVsc2UgcmVhY3Rpb25zXCJcbiAgICAgID48L3N0cmVhbS1sb2FkaW5nLWluZGljYXRvcj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjcmVhY3Rpb25zPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJzdHItY2hhdF9fbWVzc2FnZS1yZWFjdGlvbnMtZGV0YWlscy1yZWFjdGluZy11c2VyXCJcbiAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgIGxldCB1c2VyIG9mIGdldEFsbFVzZXJzQnlSZWFjdGlvbihzZWxlY3RlZFJlYWN0aW9uVHlwZSk7XG4gICAgICAgICAgICB0cmFja0J5OiB0cmFja0J5VXNlcklkXG4gICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxzdHJlYW0tYXZhdGFyLXBsYWNlaG9sZGVyXG4gICAgICAgICAgICBkYXRhLXRlc3RjbGFzcz1cImF2YXRhclwiXG4gICAgICAgICAgICBjbGFzcz1cInN0ci1jaGF0X19hdmF0YXIgc3RyLWNoYXRfX2F2YXRhci0tY2lyY2xlXCJcbiAgICAgICAgICAgIHN0eWxlPVwibWF4LWhlaWdodDogMTAwJTsgb3ZlcmZsb3cteTogaGlkZGVuXCJcbiAgICAgICAgICAgIFtzaXplXT1cIjMwXCJcbiAgICAgICAgICAgIFtpbWFnZVVybF09XCJ1c2VyLmltYWdlXCJcbiAgICAgICAgICAgIFtuYW1lXT1cInVzZXIubmFtZVwiXG4gICAgICAgICAgICB0eXBlPVwidXNlclwiXG4gICAgICAgICAgICBsb2NhdGlvbj1cInJlYWN0aW9uXCJcbiAgICAgICAgICAgIFt1c2VyXT1cInVzZXJcIlxuICAgICAgICAgID48L3N0cmVhbS1hdmF0YXItcGxhY2Vob2xkZXI+XG4gICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGRhdGEtdGVzdGNsYXNzPVwicmVhY3Rpb24tdXNlci11c2VybmFtZVwiXG4gICAgICAgICAgICBjbGFzcz1cInN0ci1jaGF0X191c2VyLWl0ZW0tLW5hbWVcIlxuICAgICAgICAgICAgPnt7IHVzZXIubmFtZSB9fTwvc3BhblxuICAgICAgICAgID5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
267
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1yZWFjdGlvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3RyZWFtLWNoYXQtYW5ndWxhci9zcmMvbGliL21lc3NhZ2UtcmVhY3Rpb25zL21lc3NhZ2UtcmVhY3Rpb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N0cmVhbS1jaGF0LWFuZ3VsYXIvc3JjL2xpYi9tZXNzYWdlLXJlYWN0aW9ucy9tZXNzYWdlLXJlYWN0aW9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUlMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUlMLE1BQU0sRUFFTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXBELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7Ozs7OztBQU0xRTs7R0FFRztBQU1ILE1BQU0sT0FBTyx5QkFBeUI7SUFpRHBDLFlBQ1UsS0FBd0IsRUFDeEIsY0FBOEIsRUFDOUIsdUJBQWdELEVBQ2pELHNCQUE4QyxFQUM3QyxZQUEwQjtRQUoxQixVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQUN4QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF5QjtRQUNqRCwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQzdDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBL0NwQzs7V0FFRztRQUNNLDBCQUFxQixHQUM1QixFQUFFLENBQUM7UUFDTDs7V0FFRztRQUNNLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBQ3pDOztXQUVHO1FBQ00sb0JBQWUsR0FBa0QsRUFBRSxDQUFDO1FBQzdFOztXQUVHO1FBQ00saUJBQVksR0FBa0QsRUFBRSxD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QUFxQixDQUFDLENBQUMsQ0FBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FDakQsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FBRSxFQUNsRSxDQUFDLENBQ0YsQ0FBQztJQUNKLENBQUM7O3NIQXBSVSx5QkFBeUI7MEdBQXpCLHlCQUF5QixxaUJDaEN0Qyw2bk9Bc09BOzJGRHRNYSx5QkFBeUI7a0JBTHJDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDBCQUEwQjtvQkFDcEMsV0FBVyxFQUFFLG9DQUFvQztvQkFDakQsTUFBTSxFQUFFLENBQUMsc0RBQXNELENBQUM7aUJBQ2pFOzJPQU9VLFNBQVM7c0JBQWpCLEtBQUs7Z0JBSUcscUJBQXFCO3NCQUE3QixLQUFLO2dCQUtHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBSUcsZUFBZTtzQkFBdkIsS0FBSztnQkFJRyxZQUFZO3NCQUFwQixLQUFLO2dCQUlhLG9CQUFvQjtzQkFBdEMsTUFBTTtnQkFHaUMsaUJBQWlCO3NCQUF4RCxTQUFTO3VCQUFDLG1CQUFtQjtnQkFHUSxlQUFlO3NCQUFwRCxTQUFTO3VCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0NoZWNrZWQsXG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlYWN0aW9uUmVzcG9uc2UsIFVzZXJSZXNwb25zZSB9IGZyb20gJ3N0cmVhbS1jaGF0JztcbmltcG9ydCB7IENoYW5uZWxTZXJ2aWNlIH0gZnJvbSAnLi4vY2hhbm5lbC5zZXJ2aWNlJztcbmltcG9ydCB7IE1lc3NhZ2VSZWFjdGlvblR5cGUsIERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3MgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBOZ3hQb3BwZXJqc1RyaWdnZXJzLCBOZ3hQb3BwZXJqc1BsYWNlbWVudHMgfSBmcm9tICduZ3gtcG9wcGVyanMnO1xuaW1wb3J0IHsgTWVzc2FnZVJlYWN0aW9uc1NlcnZpY2UgfSBmcm9tICcuLi9tZXNzYWdlLXJlYWN0aW9ucy5zZXJ2aWNlJztcbmltcG9ydCB7IEN1c3RvbVRlbXBsYXRlc1NlcnZpY2UgfSBmcm9tICcuLi9jdXN0b20tdGVtcGxhdGVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGhlbWVTZXJ2aWNlIH0gZnJvbSAnLi4vdGhlbWUuc2VydmljZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiBUaGUgYE1lc3NhZ2VSZWFjdGlvbnNgIGNvbXBvbmVudCBkaXNwbGF5cyB0aGUgcmVhY3Rpb25zIG9mIGEgbWVzc2FnZSwgdGhlIGN1cnJlbnQgdXNlciBjYW4gYWRkIGFuZCByZW1vdmUgcmVhY3Rpb25zLiBZb3UgY2FuIHJlYWQgbW9yZSBhYm91dCBbbWVzc2FnZSByZWFjdGlvbnNdKGh0dHBzOi8vZ2V0c3RyZWFtLmlvL2NoYXQvZG9jcy9qYXZhc2NyaXB0L3NlbmRfcmVhY3Rpb24vP2xhbmd1YWdlPWphdmFzY3JpcHQpIGluIHRoZSBwbGF0Zm9ybSBkb2N1bWVudGF0aW9uLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHJlYW0tbWVzc2FnZS1yZWFjdGlvbnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vbWVzc2FnZS1yZWFjdGlvbnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZXM6IFsnLmVtb2ppIHtwb3NpdGlvbjogcmVsYXRpdmU7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgfSddLFxufSlcbmV4cG9ydCBjbGFzcyBNZXNzYWdlUmVhY3Rpb25zQ29tcG9uZW50XG4gIGltcGxlbWVudHMgQWZ0ZXJWaWV3Q2hlY2tlZCwgT25DaGFuZ2VzLCBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveVxue1xuICAvKipcbiAgICogVGhlIGlkIG9mIHRoZSBtZXNzYWdlIHRoZSByZWFjdGlvbnMgYmVsb25nIHRvXG4gICAqL1xuICBASW5wdXQoKSBtZXNzYWdlSWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgcmVhY3Rpb25zIGdyb3VwZWQgYnkgW3JlYWN0aW9uIHR5cGVzXShodHRwczovL2dpdGh1Yi5jb20vR2V0U3RyZWFtL3N0cmVhbS1jaGF0LWFuZ3VsYXIvdHJlZS9tYXN0ZXIvcHJvamVjdHMvc3RyZWFtLWNoYXQtYW5ndWxhci9zcmMvbGliL21lc3NhZ2UtcmVhY3Rpb25zL21lc3NhZ2UtcmVhY3Rpb25zLmNvbXBvbmVudC50cylcbiAgICovXG4gIEBJbnB1dCgpIG1lc3NhZ2VSZWFjdGlvbkNvdW50czogeyBba2V5IGluIE1lc3NhZ2VSZWFjdGlvblR5cGVdPzogbnVtYmVyIH0gPVxuICAgIHt9O1xuICAvKipcbiAgICogSW5kaWNhdGVzIGlmIHRoZSBzZWxlY3RvciBzaG91bGQgYmUgb3BlbmVkIG9yIGNsb3NlZC4gQWRkaW5nIGEgVUkgZWxlbWVudCB0byBvcGVuIGFuZCBjbG9zZSB0aGUgc2VsZWN0b3IgaXMgdGhlIHBhcmVudCdzIGNvbXBvbmVudCByZXNwb25zaWJpbGl0eS5cbiAgICovXG4gIEBJbnB1dCgpIGlzU2VsZWN0b3JPcGVuOiBib29sZWFuID0gZmFsc2U7XG4gIC8qKlxuICAgKiBMaXN0IG9mIHJlYWN0aW9ucyBvZiBhIFttZXNzYWdlXSguLi90eXBlcy9zdHJlYW0tbWVzc2FnZS5tZHgpLCB1c2VkIHRvIGRpc3BsYXkgdGhlIHVzZXJzIG9mIGEgcmVhY3Rpb24gdHlwZS5cbiAgICovXG4gIEBJbnB1dCgpIGxhdGVzdFJlYWN0aW9uczogUmVhY3Rpb25SZXNwb25zZTxEZWZhdWx0U3RyZWFtQ2hhdEdlbmVyaWNzPltdID0gW107XG4gIC8qKlxuICAgKiBMaXN0IG9mIHRoZSB1c2VyJ3Mgb3duIHJlYWN0aW9ucyBvZiBhIFttZXNzYWdlXSguLi90eXBlcy9zdHJlYW0tbWVzc2FnZS5tZHgpLCB1c2VkIHRvIGRpc3BsYXkgdGhlIHVzZXJzIG9mIGEgcmVhY3Rpb24gdHlwZS5cbiAgICovXG4gIEBJbnB1dCgpIG93blJlYWN0aW9uczogUmVhY3Rpb25SZXNwb25zZTxEZWZhdWx0U3RyZWFtQ2hhdEdlbmVyaWNzPltdID0gW107XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgaWYgdGhlIHNlbGVjdG9yIHNob3VsZCBiZSBvcGVuZWQgb3IgY2xvc2VkLiBBZGRpbmcgYSBVSSBlbGVtZW50IHRvIG9wZW4gYW5kIGNsb3NlIHRoZSBzZWxlY3RvciBpcyB0aGUgcGFyZW50J3MgY29tcG9uZW50IHJlc3BvbnNpYmlsaXR5LlxuICAgKi9cbiAgQE91dHB1dCgpIHJlYWRvbmx5IGlzU2VsZWN0b3JPcGVuQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICB0b29sdGlwUG9zaXRpb25zOiB7IGFycm93OiBudW1iZXI7IHRvb2x0aXA6IG51bWJlciB9IHwgdW5kZWZpbmVkO1xuICB0b29sdGlwVGV4dDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBAVmlld0NoaWxkKCdzZWxlY3RvckNvbnRhaW5lcicpIHByaXZhdGUgc2VsZWN0b3JDb250YWluZXI6XG4gICAgfCBFbGVtZW50UmVmPEhUTUxFbGVtZW50PlxuICAgIHwgdW5kZWZpbmVkO1xuICBAVmlld0NoaWxkKCdzZWxlY3RvclRvb2x0aXAnKSBwcml2YXRlIHNlbGVjdG9yVG9vbHRpcDpcbiAgICB8IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+XG4gICAgfCB1bmRlZmluZWQ7XG4gIGN1cnJlbnRUb29sdGlwVGFyZ2V0OiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZDtcbiAgcG9wcGVyVHJpZ2dlckhvdmVyID0gTmd4UG9wcGVyanNUcmlnZ2Vycy5ob3ZlcjtcbiAgcG9wcGVyUGxhY2VtZW50QXV0byA9IE5neFBvcHBlcmpzUGxhY2VtZW50cy5BVVRPO1xuICBzZWxlY3RlZFJlYWN0aW9uVHlwZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBpc0xvYWRpbmcgPSB0cnVlO1xuICByZWFjdGlvbnM6IFJlYWN0aW9uUmVzcG9uc2VbXSA9IFtdO1xuICBzaG91bGRIYW5kbGVSZWFjdGlvbkNsaWNrID0gdHJ1ZTtcbiAgZXhpc3RpbmdSZWFjdGlvbnM6IHN0cmluZ1tdID0gW107XG4gIHJlYWN0aW9uc0NvdW50OiBudW1iZXIgPSAwO1xuICByZWFjdGlvbk9wdGlvbnM6IHN0cmluZ1tdID0gW107XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcbiAgcHJpdmF0ZSBpc1ZpZXdJbml0ZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIGNoYW5uZWxTZXJ2aWNlOiBDaGFubmVsU2VydmljZSxcbiAgICBwcml2YXRlIG1lc3NhZ2VSZWFjdGlvbnNTZXJ2aWNlOiBNZXNzYWdlUmVhY3Rpb25zU2VydmljZSxcbiAgICBwdWJsaWMgY3VzdG9tVGVtcGxhdGVzU2VydmljZTogQ3VzdG9tVGVtcGxhdGVzU2VydmljZSxcbiAgICBwcml2YXRlIHRoZW1lU2VydmljZTogVGhlbWVTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMubWVzc2FnZVJlYWN0aW9uc1NlcnZpY2UucmVhY3Rpb25zJC5zdWJzY3JpYmUoKHJlYWN0aW9ucykgPT4ge1xuICAgICAgICB0aGlzLnJlYWN0aW9uT3B0aW9ucyA9IE9iamVjdC5rZXlzKHJlYWN0aW9ucyk7XG4gICAgICAgIHRoaXMuc2V0RXhpc3RpbmdSZWFjdGlvbnMoKTtcbiAgICAgICAgaWYgKHRoaXMuaXNWaWV3SW5pdGVkKSB7XG4gICAgICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlcy5pc1NlbGVjdG9yT3Blbikge1xuICAgICAgdGhpcy5pc1NlbGVjdG9yT3BlblxuICAgICAgICA/IHNldFRpbWVvdXQoKCkgPT4gdGhpcy53YXRjaEZvck91dHNpZGVDbGlja3MoKSkgLy8gc2V0VGltZW91dDogd2FpdCBmb3IgY3VycmVudCBjbGljayB0byBidWJibGUgdXAsIGFuZCBvbmx5IHdhdGNoIGZvciBjbGlja3MgYWZ0ZXIgdGhhdFxuICAgICAgICA6IHRoaXMuc3RvcFdhdGNoRm9yT3V0c2lkZUNsaWNrcygpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlcy5tZXNzYWdlUmVhY3Rpb25Db3VudHMpIHtcbiAgICAgIHRoaXMuc2V0RXhpc3RpbmdSZWFjdGlvbnMoKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXMubWVzc2FnZVJlYWN0aW9uQ291bnRzICYmIHRoaXMubWVzc2FnZVJlYWN0aW9uQ291bnRzKSB7XG4gICAgICBjb25zdCByZWFjdGlvbnNDb3VudCA9IE9iamVjdC5rZXlzKHRoaXMubWVzc2FnZVJlYWN0aW9uQ291bnRzKS5yZWR1Y2UoXG4gICAgICAgIChhY2MsIGtleSkgPT4gYWNjICsgKHRoaXMubWVzc2FnZVJlYWN0aW9uQ291bnRzW2tleV0gfHwgMCksXG4gICAgICAgIDBcbiAgICAgICk7XG4gICAgICB0aGlzLnNob3VsZEhhbmRsZVJlYWN0aW9uQ2xpY2sgPVxuICAgICAgICByZWFjdGlvbnNDb3VudCA8PSBDaGFubmVsU2VydmljZS5NQVhfTUVTU0FHRV9SRUFDVElPTlNfVE9fRkVUQ0ggfHxcbiAgICAgICAgISF0aGlzLm1lc3NhZ2VSZWFjdGlvbnNTZXJ2aWNlLmN1c3RvbVJlYWN0aW9uQ2xpY2tIYW5kbGVyO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmlzVmlld0luaXRlZCA9IHRydWU7XG4gIH1cblxuICBuZ0FmdGVyVmlld0NoZWNrZWQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudG9vbHRpcFRleHQgJiYgIXRoaXMudG9vbHRpcFBvc2l0aW9ucykge1xuICAgICAgdGhpcy5zZXRUb29sdGlwUG9zaXRpb24oKTtcbiAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKChzKSA9PiBzLnVuc3Vic2NyaWJlKCkpO1xuICB9XG5cbiAgZ2V0TGF0ZXN0VXNlckJ5UmVhY3Rpb24ocmVhY3Rpb25UeXBlOiBNZXNzYWdlUmVhY3Rpb25UeXBlKSB7XG4gICAgcmV0dXJuIHRoaXMubGF0ZXN0UmVhY3Rpb25zLmZpbmQoKHIpID0+IHIudHlwZSA9PT0gcmVhY3Rpb25UeXBlICYmIHIudXNlcilcbiAgICAgID8udXNlcjtcbiAgfVxuXG4gIGdldEVtb2ppQnlSZWFjdGlvbihyZWFjdGlvblR5cGU6IE1lc3NhZ2VSZWFjdGlvblR5cGUpIHtcbiAgICByZXR1cm4gdGhpcy5tZXNzYWdlUmVhY3Rpb25zU2VydmljZS5yZWFjdGlvbnNbcmVhY3Rpb25UeXBlXTtcbiAgfVxuXG4gIHJlYWN0aW9uU2VsZWN0ZWQocmVhY3Rpb25UeXBlOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMuc2hvdWxkSGFuZGxlUmVhY3Rpb25DbGljaykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy50aGVtZVNlcnZpY2UudGhlbWVWZXJzaW9uID09PSAnMScpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCF0aGlzLm1lc3NhZ2VJZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5tZXNzYWdlUmVhY3Rpb25zU2VydmljZS5jdXN0b21SZWFjdGlvbkNsaWNrSGFuZGxlcikge1xuICAgICAgdGhpcy5tZXNzYWdlUmVhY3Rpb25zU2VydmljZS5jdXN0b21SZWFjdGlvbkNsaWNrSGFuZGxlcih7XG4gICAgICAgIG1lc3NhZ2VJZDogdGhpcy5tZXNzYWdlSWQsXG4gICAgICAgIHJlYWN0aW9uVHlwZTogcmVhY3Rpb25UeXBlLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRSZWFjdGlvblR5cGUgPSByZWFjdGlvblR5cGU7XG4gICAgICB2b2lkIHRoaXMuZmV0Y2hBbGxSZWFjdGlvbnMoKTtcbiAgICB9XG4gIH1cblxuICBnZXRVc2Vyc0J5UmVhY3Rpb24ocmVhY3Rpb25UeXBlOiBNZXNzYWdlUmVhY3Rpb25UeXBlKSB7XG4gICAgcmV0dXJuIHRoaXMubGF0ZXN0UmVhY3Rpb25zXG4gICAgICAuZmlsdGVyKChyKSA9PiByLnR5cGUgPT09IHJlYWN0aW9uVHlwZSlcbiAgICAgIC5tYXAoKHIpID0+IHIudXNlcj8ubmFtZSB8fCByLnVzZXI/LmlkKVxuICAgICAgLmZpbHRlcigoaSkgPT4gISFpKVxuICAgICAgLmpvaW4oJywgJyk7XG4gIH1cblxuICBnZXRBbGxVc2Vyc0J5UmVhY3Rpb24oXG4gICAgcmVhY3Rpb25UeXBlPzogTWVzc2FnZVJlYWN0aW9uVHlwZVxuICApOiBVc2VyUmVzcG9uc2U8RGVmYXVsdFN0cmVhbUNoYXRHZW5lcmljcz5bXSB7XG4gICAgaWYgKCFyZWFjdGlvblR5cGUpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBjb25zdCB1c2VycyA9IHRoaXMucmVhY3Rpb25zXG4gICAgICAuZmlsdGVyKChyKSA9PiByLnR5cGUgPT09IHJlYWN0aW9uVHlwZSlcbiAgICAgIC5tYXAoKHIpID0+IHIudXNlcilcbiAgICAgIC5maWx0ZXIoKGkpID0+ICEhaSkgYXMgVXNlclJlc3BvbnNlW107XG5cbiAgICB1c2Vycy5zb3J0KCh1MSwgdTIpID0+IHtcbiAgICAgIGNvbnN0IG5hbWUxID0gdTEubmFtZT8udG9Mb3dlckNhc2UoKTtcbiAgICAgIGNvbnN0IG5hbWUyID0gdTIubmFtZT8udG9Mb3dlckNhc2UoKTtcblxuICAgICAgaWYgKCFuYW1lMSkge1xuICAgICAgICByZXR1cm4gMTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFuYW1lMikge1xuICAgICAgICByZXR1cm4gLTE7XG4gICAgICB9XG5cbiAgICAgIGlmIChuYW1lMSA9PT0gbmFtZTIpIHtcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgICB9XG5cbiAgICAgIGlmIChuYW1lMSA8IG5hbWUyKSB7XG4gICAgICAgIHJldHVybiAtMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiAxO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHVzZXJzO1xuICB9XG5cbiAgc2hvd1Rvb2x0aXAoZXZlbnQ6IEV2ZW50LCByZWFjdGlvblR5cGU6IE1lc3NhZ2VSZWFjdGlvblR5cGUpIHtcbiAgICB0aGlzLmN1cnJlbnRUb29sdGlwVGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgIHRoaXMudG9vbHRpcFRleHQgPSB0aGlzLmdldFVzZXJzQnlSZWFjdGlvbihyZWFjdGlvblR5cGUpO1xuICB9XG5cbiAgaGlkZVRvb2x0aXAoKSB7XG4gICAgdGhpcy50b29sdGlwVGV4dCA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLmN1cnJlbnRUb29sdGlwVGFyZ2V0ID0gdW5kZWZpbmVkO1xuICAgIHRoaXMudG9vbHRpcFBvc2l0aW9ucyA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHRyYWNrQnlNZXNzYWdlUmVhY3Rpb24oaW5kZXg6IG51bWJlciwgaXRlbTogTWVzc2FnZVJlYWN0aW9uVHlwZSkge1xuICAgIHJldHVybiBpdGVtO1xuICB9XG5cbiAgdHJhY2tCeVVzZXJJZChpbmRleDogbnVtYmVyLCBpdGVtOiBVc2VyUmVzcG9uc2UpIHtcbiAgICByZXR1cm4gaXRlbS5pZDtcbiAgfVxuXG4gIGFzeW5jIHJlYWN0KHR5cGU6IE1lc3NhZ2VSZWFjdGlvblR5cGUpIHtcbiAgICB0aGlzLm93blJlYWN0aW9ucy5maW5kKChyKSA9PiByLnR5cGUgPT09IHR5cGUpXG4gICAgICA/IGF3YWl0IHRoaXMuY2hhbm5lbFNlcnZpY2UucmVtb3ZlUmVhY3Rpb24odGhpcy5tZXNzYWdlSWQhLCB0eXBlKVxuICAgICAgOiBhd2FpdCB0aGlzLmNoYW5uZWxTZXJ2aWNlLmFkZFJlYWN0aW9uKHRoaXMubWVzc2FnZUlkISwgdHlwZSk7XG4gICAgdGhpcy5pc1NlbGVjdG9yT3BlbkNoYW5nZS5lbWl0KGZhbHNlKTtcbiAgfVxuXG4gIGlzT3duUmVhY3Rpb24ocmVhY3Rpb25UeXBlOiBNZXNzYWdlUmVhY3Rpb25UeXBlKSB7XG4gICAgcmV0dXJuICEhdGhpcy5vd25SZWFjdGlvbnMuZmluZCgocikgPT4gci50eXBlID09PSByZWFjdGlvblR5cGUpO1xuICB9XG5cbiAgaXNPcGVuQ2hhbmdlID0gKGlzT3BlbjogYm9vbGVhbikgPT4ge1xuICAgIHRoaXMuc2VsZWN0ZWRSZWFjdGlvblR5cGUgPSBpc09wZW4gPyB0aGlzLnNlbGVjdGVkUmVhY3Rpb25UeXBlIDogdW5kZWZpbmVkO1xuICB9O1xuXG4gIHByaXZhdGUgZXZlbnRIYW5kbGVyID0gKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgIGlmICghdGhpcy5zZWxlY3RvckNvbnRhaW5lcj8ubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQgYXMgTm9kZSkpIHtcbiAgICAgIHRoaXMuaXNTZWxlY3Rvck9wZW5DaGFuZ2UuZW1pdChmYWxzZSk7XG4gICAgfVxuICB9O1xuXG4gIHByaXZhdGUgd2F0Y2hGb3JPdXRzaWRlQ2xpY2tzKCkge1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuZXZlbnRIYW5kbGVyKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RvcFdhdGNoRm9yT3V0c2lkZUNsaWNrcygpIHtcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLmV2ZW50SGFuZGxlcik7XG4gIH1cblxuICBwcml2YXRlIHNldFRvb2x0aXBQb3NpdGlvbigpIHtcbiAgICBjb25zdCB0b29sdGlwID0gdGhpcy5zZWxlY3RvclRvb2x0aXA/Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgdGFyZ2V0ID0gdGhpcy5jdXJyZW50VG9vbHRpcFRhcmdldD8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICBjb25zdCBjb250YWluZXIgPVxuICAgICAgdGhpcy5zZWxlY3RvckNvbnRhaW5lcj8ubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgIGlmICghdG9vbHRpcCB8fCAhdGFyZ2V0IHx8ICFjb250YWluZXIpIHJldHVybjtcblxuICAgIGNvbnN0IHRvb2x0aXBQb3NpdGlvbiA9XG4gICAgICB0b29sdGlwLndpZHRoID09PSBjb250YWluZXIud2lkdGggfHwgdG9vbHRpcC54IDwgY29udGFpbmVyLnhcbiAgICAgICAgPyAwXG4gICAgICAgIDogdGFyZ2V0LmxlZnQgKyB0YXJnZXQud2lkdGggLyAyIC0gY29udGFpbmVyLmxlZnQgLSB0b29sdGlwLndpZHRoIC8gMjtcblxuICAgIGNvbnN0IGFycm93UG9zaXRpb24gPVxuICAgICAgdGFyZ2V0LnggLSB0b29sdGlwLnggKyB0YXJnZXQud2lkdGggLyAyIC0gdG9vbHRpcFBvc2l0aW9uO1xuXG4gICAgdGhpcy50b29sdGlwUG9zaXRpb25zID0ge1xuICAgICAgdG9vbHRpcDogdG9vbHRpcFBvc2l0aW9uLFxuICAgICAgYXJyb3c6IGFycm93UG9zaXRpb24sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZmV0Y2hBbGxSZWFjdGlvbnMoKSB7XG4gICAgaWYgKCF0aGlzLm1lc3NhZ2VJZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMucmVhY3Rpb25zID0gYXdhaXQgdGhpcy5jaGFubmVsU2VydmljZS5nZXRNZXNzYWdlUmVhY3Rpb25zKFxuICAgICAgICB0aGlzLm1lc3NhZ2VJZFxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhpcy5zZWxlY3RlZFJlYWN0aW9uVHlwZSA9IHVuZGVmaW5lZDtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0RXhpc3RpbmdSZWFjdGlvbnMoKSB7XG4gICAgdGhpcy5leGlzdGluZ1JlYWN0aW9ucyA9IE9iamVjdC5rZXlzKHRoaXMubWVzc2FnZVJlYWN0aW9uQ291bnRzKVxuICAgICAgLmZpbHRlcigoaykgPT4gdGhpcy5yZWFjdGlvbk9wdGlvbnMuaW5kZXhPZihrKSAhPT0gLTEpXG4gICAgICAuZmlsdGVyKChrKSA9PiB0aGlzLm1lc3NhZ2VSZWFjdGlvbkNvdW50c1trXSEgPiAwKTtcbiAgICB0aGlzLnJlYWN0aW9uc0NvdW50ID0gdGhpcy5leGlzdGluZ1JlYWN0aW9ucy5yZWR1Y2UoXG4gICAgICAodG90YWwsIHJlYWN0aW9uKSA9PiB0b3RhbCArIHRoaXMubWVzc2FnZVJlYWN0aW9uQ291bnRzW3JlYWN0aW9uXSEsXG4gICAgICAwXG4gICAgKTtcbiAgfVxufVxuIiwiPGRpdlxuICAqbmdJZj1cImV4aXN0aW5nUmVhY3Rpb25zLmxlbmd0aCA+IDBcIlxuICBjbGFzcz1cInN0ci1jaGF0X19yZWFjdGlvbi1saXN0IHN0ci1jaGF0X19tZXNzYWdlLXJlYWN0aW9ucy1jb250YWluZXJcIlxuICBbY2xhc3Muc3RyLWNoYXRfX3JlYWN0aW9uLWxpc3QtLXJldmVyc2VdPVwidHJ1ZVwiXG4gIFtjbGFzcy5zdHItY2hhdF9fcmVhY3Rpb24tbGlzdC1oaWRkZW5dPVwiaXNTZWxlY3Rvck9wZW5cIlxuICBkYXRhLXRlc3RpZD1cInJlYWN0aW9uLWxpc3RcIlxuPlxuICA8dWwgY2xhc3M9XCJzdHItY2hhdF9fbWVzc2FnZS1yZWFjdGlvbnNcIj5cbiAgICA8bGlcbiAgICAgIGNsYXNzPVwic3RyLWNoYXRfX21lc3NhZ2UtcmVhY3Rpb25cIlxuICAgICAgKm5nRm9yPVwiXG4gICAgICAgIGxldCByZWFjdGlvblR5cGUgb2YgZXhpc3RpbmdSZWFjdGlvbnM7XG4gICAgICAgIHRyYWNrQnk6IHRyYWNrQnlNZXNzYWdlUmVhY3Rpb25cbiAgICAgIFwiXG4gICAgICBbbmdTdHlsZV09XCJ7IGN1cnNvcjogc2hvdWxkSGFuZGxlUmVhY3Rpb25DbGljayA/ICdwb2ludGVyJyA6ICdkZWZhdWx0JyB9XCJcbiAgICAgIFtjbGFzcy5zdHItY2hhdF9fbWVzc2FnZS1yZWFjdGlvbi1vd25dPVwiaXNPd25SZWFjdGlvbihyZWFjdGlvblR5cGUpXCJcbiAgICAgIGRhdGEtdGVzdGNsYXNzPVwiZW1vamlcIlxuICAgICAgKGNsaWNrKT1cInJlYWN0aW9uU2VsZWN0ZWQocmVhY3Rpb25UeXBlKVwiXG4gICAgICAoa2V5dXAuZW50ZXIpPVwicmVhY3Rpb25TZWxlY3RlZChyZWFjdGlvblR5cGUpXCJcbiAgICA+XG4gICAgICA8c3BhbiBjbGFzcz1cImVtb2ppIHN0ci1jaGF0X19tZXNzYWdlLXJlYWN0aW9uLWVtb2ppXCI+XG4gICAgICAgIHt7IGdldEVtb2ppQnlSZWFjdGlvbihyZWFjdGlvblR5cGUpIH19Jm5ic3A7XG4gICAgICA8L3NwYW4+XG4gICAgICA8c3BhblxuICAgICAgICBkYXRhLXRlc3RjbGFzcz1cInJlYWN0aW9uLWxpc3QtcmVhY3Rpb24tY291bnRcIlxuICAgICAgICBjbGFzcz1cInN0ci1jaGF0X19tZXNzYWdlLXJlYWN0aW9uLWNvdW50XCJcbiAgICAgID5cbiAgICAgICAge3sgbWVzc2FnZVJlYWN0aW9uQ291bnRzW3JlYWN0aW9uVHlwZV0gfX1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2xpPlxuICAgIDxsaT5cbiAgICAgIDxzcGFuXG4gICAgICAgIGRhdGEtdGVzdGlkPVwicmVhY3Rpb25zLWNvdW50XCJcbiAgICAgICAgY2xhc3M9XCJzdHItY2hhdF9fcmVhY3Rpb24tbGlzdC0tY291bnRlclwiXG4gICAgICAgID57eyByZWFjdGlvbnNDb3VudCB9fTwvc3BhblxuICAgICAgPlxuICAgIDwvbGk+XG4gIDwvdWw+XG48L2Rpdj5cblxuPGRpdlxuICAjc2VsZWN0b3JDb250YWluZXJcbiAgY2xhc3M9XCJzdHItY2hhdF9fcmVhY3Rpb24tc2VsZWN0b3Igc3RyLWNoYXRfX21lc3NhZ2UtcmVhY3Rpb24tc2VsZWN0b3JcIlxuICAqbmdJZj1cImlzU2VsZWN0b3JPcGVuXCJcbiAgZGF0YS10ZXN0aWQ9XCJyZWFjdGlvbi1zZWxlY3RvclwiXG4+XG4gIDxkaXZcbiAgICAqbmdJZj1cInRvb2x0aXBUZXh0XCJcbiAgICBkYXRhLXRlc3RpZD1cInRvb2x0aXBcIlxuICAgICNzZWxlY3RvclRvb2x0aXBcbiAgICBjbGFzcz1cInN0ci1jaGF0X19yZWFjdGlvbi1zZWxlY3Rvci10b29sdGlwXCJcbiAgICBbbmdTdHlsZV09XCJ7XG4gICAgICBsZWZ0OiB0b29sdGlwUG9zaXRpb25zPy50b29sdGlwICsgJ3B4JyxcbiAgICAgIHZpc2liaWxpdHk6IHRvb2x0aXBQb3NpdGlvbnMgPyAndmlzaWJsZScgOiAnaGlkZGVuJ1xuICAgIH1cIlxuICA+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJhcnJvd1wiXG4gICAgICBbbmdTdHlsZV09XCJ7IGxlZnQ6IHRvb2x0aXBQb3NpdGlvbnM/LmFycm93ICsgJ3B4JyB9XCJcbiAgICA+PC9kaXY+XG4gICAgPHNwYW4gY2xhc3M9XCJsYXRlc3QtdXNlci11c2VybmFtZVwiPlxuICAgICAge3sgdG9vbHRpcFRleHQgfX1cbiAgICA8L3NwYW4+XG4gIDwvZGl2PlxuICA8dWxcbiAgICBjbGFzcz1cInN0ci1jaGF0X19tZXNzYWdlLXJlYWN0aW9ucy1saXN0IHN0ci1jaGF0X19tZXNzYWdlLXJlYWN0aW9ucy1vcHRpb25zXCJcbiAgPlxuICAgIDxsaVxuICAgICAgY2xhc3M9XCJcbiAgICAgICAgc3RyLWNoYXRfX21lc3NhZ2UtcmVhY3Rpb25zLW9wdGlvblxuICAgICAgICBzdHItY2hhdF9fbWVzc2FnZS1yZWFjdGlvbnMtbGlzdC1pdGVtXG4gICAgICAgIHN0ci1jaGF0X19lbW9qaVxuICAgICAgXCJcbiAgICAgICpuZ0Zvcj1cIlxuICAgICAgICBsZXQgcmVhY3Rpb25UeXBlIG9mIHJlYWN0aW9uT3B0aW9ucztcbiAgICAgICAgdHJhY2tCeTogdHJhY2tCeU1lc3NhZ2VSZWFjdGlvblxuICAgICAgXCJcbiAgICAgIFtjbGFzcy5zdHItY2hhdF9fbWVzc2FnZS1yZWFjdGlvbnMtb3B0aW9uLXNlbGVjdGVkXT1cIlxuICAgICAgICBpc093blJlYWN0aW9uKHJlYWN0aW9uVHlwZSlcbiAgICAgIFwiXG4gICAgICBkYXRhLXRlc3RjbGFzcz1cImVtb2ppLW9wdGlvblwiXG4gICAgICAoY2xpY2spPVwicmVhY3QocmVhY3Rpb25UeXBlKVwiXG4gICAgICAoa2V5dXAuZW50ZXIpPVwicmVhY3QocmVhY3Rpb25UeXBlKVwiXG4gICAgPlxuICAgICAgPGRpdlxuICAgICAgICAqbmdJZj1cImdldExhdGVzdFVzZXJCeVJlYWN0aW9uKHJlYWN0aW9uVHlwZSkgYXMgdXNlclwiXG4gICAgICAgIGNsYXNzPVwibGF0ZXN0LXVzZXIgc3RyLWNoYXRfX21lc3NhZ2UtcmVhY3Rpb25zLWxhc3QtdXNlclwiXG4gICAgICAgIChjbGljayk9XCJoaWRlVG9vbHRpcCgpXCJcbiAgICAgICAgKGtleXVwLmVudGVyKT1cImhpZGVUb29sdGlwKClcIlxuICAgICAgICAobW91c2VlbnRlcik9XCJzaG93VG9vbHRpcCgkZXZlbnQsIHJlYWN0aW9uVHlwZSlcIlxuICAgICAgICAobW91c2VsZWF2ZSk9XCJoaWRlVG9vbHRpcCgpXCJcbiAgICAgICAgYXR0ci5kYXRhLXRlc3RpZD1cInt7IHJlYWN0aW9uVHlwZSB9fS1sYXN0LXVzZXJcIlxuICAgICAgPlxuICAgICAgICA8c3RyZWFtLWF2YXRhci1wbGFjZWhvbGRlclxuICAgICAgICAgIGF0dHIuZGF0YS10ZXN0aWQ9XCJ7eyByZWFjdGlvblR5cGUgfX0tYXZhdGFyXCJcbiAgICAgICAgICBbaW1hZ2VVcmxdPVwidXNlci5pbWFnZVwiXG4gICAgICAgICAgW25hbWVdPVwidXNlci5uYW1lIHx8IHVzZXIuaWRcIlxuICAgICAgICAgIFtzaXplXT1cIjIwXCJcbiAgICAgICAgICBsb2NhdGlvbj1cInJlYWN0aW9uXCJcbiAgICAgICAgPjwvc3RyZWFtLWF2YXRhci1wbGFjZWhvbGRlcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPHNwYW5cbiAgICAgICAgY2xhc3M9XCJcbiAgICAgICAgICBlbW9qaVxuICAgICAgICAgIHN0ci1jaGF0X19lbW9qaS1zZWxlY3Rvci1lbW9qaS1hbmd1bGFyXG4gICAgICAgICAgc3RyLWNoYXRfX21lc3NhZ2UtcmVhY3Rpb24tZW1vamlcbiAgICAgICAgXCJcbiAgICAgID5cbiAgICAgICAge3sgZ2V0RW1vamlCeVJlYWN0aW9uKHJlYWN0aW9uVHlwZSkgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxzcGFuXG4gICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgbWVzc2FnZVJlYWN0aW9uQ291bnRzW3JlYWN0aW9uVHlwZV0gJiZcbiAgICAgICAgICBtZXNzYWdlUmVhY3Rpb25Db3VudHNbcmVhY3Rpb25UeXBlXSEgPiAwXG4gICAgICAgIFwiXG4gICAgICAgIGNsYXNzPVwic3RyLWNoYXRfX21lc3NhZ2UtcmVhY3Rpb25zLWxpc3QtaXRlbV9fY291bnRcIlxuICAgICAgICBhdHRyLmRhdGEtdGVzdGlkPVwie3sgcmVhY3Rpb25UeXBlIH19LXJlYWN0aW9uLWNvdW50XCJcbiAgICAgID5cbiAgICAgICAge3sgbWVzc2FnZVJlYWN0aW9uQ291bnRzW3JlYWN0aW9uVHlwZV0gfX1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2xpPlxuICA8L3VsPlxuPC9kaXY+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3RlZFJlYWN0aW9uVHlwZVwiPlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgIChjdXN0b21UZW1wbGF0ZXNTZXJ2aWNlLm1vZGFsVGVtcGxhdGUkIHwgYXN5bmMpIHx8IGRlZmF1bHRNb2RhbDtcbiAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgaXNPcGVuOiAhIXNlbGVjdGVkUmVhY3Rpb25UeXBlLFxuICAgICAgICBtZXNzYWdlSWQ6IG1lc3NhZ2VJZCxcbiAgICAgICAgcmVhY3Rpb25UeXBlOiBzZWxlY3RlZFJlYWN0aW9uVHlwZSxcbiAgICAgICAgaXNPcGVuQ2hhbmdlSGFuZGxlcjogaXNPcGVuQ2hhbmdlLFxuICAgICAgICBjb250ZW50OiBtb2RhbENvbnRlbnRcbiAgICAgIH1cbiAgICBcIlxuICA+PC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlXG4gICNkZWZhdWx0TW9kYWxcbiAgbGV0LWlzT3Blbj1cImlzT3BlblwiXG4gIGxldC1tZXNzYWdlSWQ9XCJtZXNzYWdlSWRcIlxuICBsZXQtcmVhY3Rpb25UeXBlPVwicmVhY3Rpb25UeXBlXCJcbiAgbGV0LWlzT3BlbkNoYW5nZUhhbmRsZXI9XCJpc09wZW5DaGFuZ2VIYW5kbGVyXCJcbiAgbGV0LWNvbnRlbnQ9XCJjb250ZW50XCJcbj5cbiAgPHN0cmVhbS1tb2RhbFxuICAgIGNsYXNzPVwic3RyLWNoYXRfX21lc3NhZ2UtcmVhY3Rpb25zLWRldGFpbHMtbW9kYWxcIlxuICAgIFtpc09wZW5dPVwiaXNPcGVuXCJcbiAgICAoaXNPcGVuQ2hhbmdlKT1cImlzT3BlbkNoYW5nZUhhbmRsZXIoJGV2ZW50KVwiXG4gICAgW2NvbnRlbnRdPVwiY29udGVudFwiXG4gID5cbiAgPC9zdHJlYW0tbW9kYWw+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI21vZGFsQ29udGVudD5cbiAgPGRpdiBjbGFzcz1cInN0ci1jaGF0X19tZXNzYWdlLXJlYWN0aW9ucy1kZXRhaWxzXCI+XG4gICAgPGRpdiBjbGFzcz1cInN0ci1jaGF0X19tZXNzYWdlLXJlYWN0aW9ucy1kZXRhaWxzLXJlYWN0aW9uLXR5cGVzXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwic3RyLWNoYXRfX21lc3NhZ2UtcmVhY3Rpb25zLWRldGFpbHMtcmVhY3Rpb24tdHlwZVwiXG4gICAgICAgICpuZ0Zvcj1cIlxuICAgICAgICAgIGxldCByZWFjdGlvblR5cGUgb2YgZXhpc3RpbmdSZWFjdGlvbnM7XG4gICAgICAgICAgdHJhY2tCeTogdHJhY2tCeU1lc3NhZ2VSZWFjdGlvblxuICAgICAgICBcIlxuICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgY3Vyc29yOiBzaG91bGRIYW5kbGVSZWFjdGlvbkNsaWNrID8gJ3BvaW50ZXInIDogJ2RlZmF1bHQnXG4gICAgICAgIH1cIlxuICAgICAgICBhdHRyLmRhdGEtdGVzdGlkPVwicmVhY3Rpb24tZGV0YWlscy1zZWxlY3Rvci17eyByZWFjdGlvblR5cGUgfX1cIlxuICAgICAgICBbY2xhc3Muc3RyLWNoYXRfX21lc3NhZ2UtcmVhY3Rpb25zLWRldGFpbHMtcmVhY3Rpb24tdHlwZS0tc2VsZWN0ZWRdPVwiXG4gICAgICAgICAgcmVhY3Rpb25UeXBlID09PSBzZWxlY3RlZFJlYWN0aW9uVHlwZVxuICAgICAgICBcIlxuICAgICAgICAoY2xpY2spPVwic2VsZWN0ZWRSZWFjdGlvblR5cGUgPSByZWFjdGlvblR5cGU7IGFsbFVzZXJzLnNjcm9sbFRvcCA9IDBcIlxuICAgICAgICAoa2V5dXAuZW50ZXIpPVwiXG4gICAgICAgICAgc2VsZWN0ZWRSZWFjdGlvblR5cGUgPSByZWFjdGlvblR5cGU7IGFsbFVzZXJzLnNjcm9sbFRvcCA9IDBcbiAgICAgICAgXCJcbiAgICAgID5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJlbW9qaSBzdHItY2hhdF9fbWVzc2FnZS1yZWFjdGlvbi1lbW9qaVwiPlxuICAgICAgICAgIHt7IGdldEVtb2ppQnlSZWFjdGlvbihyZWFjdGlvblR5cGUpIH19Jm5ic3A7XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzdHItY2hhdF9fbWVzc2FnZS1yZWFjdGlvbi1jb3VudFwiPlxuICAgICAgICAgIHt7IG1lc3NhZ2VSZWFjdGlvbkNvdW50c1tyZWFjdGlvblR5cGVdIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiXG4gICAgICAgIGVtb2ppXG4gICAgICAgIHN0ci1jaGF0X19tZXNzYWdlLXJlYWN0aW9uLWVtb2ppIHN0ci1jaGF0X19tZXNzYWdlLXJlYWN0aW9uLWVtb2ppLWJpZ1xuICAgICAgXCJcbiAgICA+XG4gICAgICB7eyBnZXRFbW9qaUJ5UmVhY3Rpb24oc2VsZWN0ZWRSZWFjdGlvblR5cGUhKSB9fVxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgICNhbGxVc2Vyc1xuICAgICAgZGF0YS10ZXN0aWQ9XCJhbGwtcmVhY3RpbmctdXNlcnNcIlxuICAgICAgY2xhc3M9XCJzdHItY2hhdF9fbWVzc2FnZS1yZWFjdGlvbnMtZGV0YWlscy1yZWFjdGluZy11c2Vyc1wiXG4gICAgPlxuICAgICAgPHN0cmVhbS1sb2FkaW5nLWluZGljYXRvclxuICAgICAgICAqbmdJZj1cImlzTG9hZGluZzsgZWxzZSByZWFjdGlvbnNcIlxuICAgICAgPjwvc3RyZWFtLWxvYWRpbmctaW5kaWNhdG9yPlxuICAgICAgPG5nLXRlbXBsYXRlICNyZWFjdGlvbnM+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cInN0ci1jaGF0X19tZXNzYWdlLXJlYWN0aW9ucy1kZXRhaWxzLXJlYWN0aW5nLXVzZXJcIlxuICAgICAgICAgICpuZ0Zvcj1cIlxuICAgICAgICAgICAgbGV0IHVzZXIgb2YgZ2V0QWxsVXNlcnNCeVJlYWN0aW9uKHNlbGVjdGVkUmVhY3Rpb25UeXBlKTtcbiAgICAgICAgICAgIHRyYWNrQnk6IHRyYWNrQnlVc2VySWRcbiAgICAgICAgICBcIlxuICAgICAgICA+XG4gICAgICAgICAgPHN0cmVhbS1hdmF0YXItcGxhY2Vob2xkZXJcbiAgICAgICAgICAgIGRhdGEtdGVzdGNsYXNzPVwiYXZhdGFyXCJcbiAgICAgICAgICAgIGNsYXNzPVwic3RyLWNoYXRfX2F2YXRhciBzdHItY2hhdF9fYXZhdGFyLS1jaXJjbGVcIlxuICAgICAgICAgICAgc3R5bGU9XCJtYXgtaGVpZ2h0OiAxMDAlOyBvdmVyZmxvdy15OiBoaWRkZW5cIlxuICAgICAgICAgICAgW3NpemVdPVwiMzBcIlxuICAgICAgICAgICAgW2ltYWdlVXJsXT1cInVzZXIuaW1hZ2VcIlxuICAgICAgICAgICAgW25hbWVdPVwidXNlci5uYW1lXCJcbiAgICAgICAgICAgIHR5cGU9XCJ1c2VyXCJcbiAgICAgICAgICAgIGxvY2F0aW9uPVwicmVhY3Rpb25cIlxuICAgICAgICAgICAgW3VzZXJdPVwidXNlclwiXG4gICAgICAgICAgPjwvc3RyZWFtLWF2YXRhci1wbGFjZWhvbGRlcj5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgZGF0YS10ZXN0Y2xhc3M9XCJyZWFjdGlvbi11c2VyLXVzZXJuYW1lXCJcbiAgICAgICAgICAgIGNsYXNzPVwic3RyLWNoYXRfX3VzZXItaXRlbS0tbmFtZVwiXG4gICAgICAgICAgICA+e3sgdXNlci5uYW1lIH19PC9zcGFuXG4gICAgICAgICAgPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -20,7 +20,7 @@ import transliterate from '@stream-io/transliterate';
|
|
|
20
20
|
import * as i8 from 'angular-mentions';
|
|
21
21
|
import { MentionModule } from 'angular-mentions';
|
|
22
22
|
|
|
23
|
-
const version = '4.58.
|
|
23
|
+
const version = '4.58.1';
|
|
24
24
|
|
|
25
25
|
/**
|
|
26
26
|
* The `NotificationService` can be used to add or remove notifications. By default the [`NotificationList`](../components/NotificationListComponent.mdx) component displays the currently active notifications.
|
|
@@ -4834,9 +4834,12 @@ class MessageReactionsComponent {
|
|
|
4834
4834
|
return item.id;
|
|
4835
4835
|
}
|
|
4836
4836
|
react(type) {
|
|
4837
|
-
this
|
|
4838
|
-
|
|
4839
|
-
|
|
4837
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
4838
|
+
this.ownReactions.find((r) => r.type === type)
|
|
4839
|
+
? yield this.channelService.removeReaction(this.messageId, type)
|
|
4840
|
+
: yield this.channelService.addReaction(this.messageId, type);
|
|
4841
|
+
this.isSelectorOpenChange.emit(false);
|
|
4842
|
+
});
|
|
4840
4843
|
}
|
|
4841
4844
|
isOwnReaction(reactionType) {
|
|
4842
4845
|
return !!this.ownReactions.find((r) => r.type === reactionType);
|