@colijnit/sharedcomponents 255.1.4 → 255.1.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/bundles/colijnit-sharedcomponents.umd.js +65 -54
- package/bundles/colijnit-sharedcomponents.umd.js.map +1 -1
- package/colijnit-sharedcomponents.metadata.json +1 -1
- package/esm2015/lib/components/modify-task-form/modify-task-form.component.js +2 -1
- package/esm2015/lib/components/role-email-selector/role-email-selector.component.js +3 -3
- package/esm2015/lib/components/task-creator/task-creator.component.js +79 -37
- package/esm2015/lib/service/shared-connector.service.js +8 -11
- package/fesm2015/colijnit-sharedcomponents.js +88 -48
- package/fesm2015/colijnit-sharedcomponents.js.map +1 -1
- package/index.html +2 -2
- package/lib/components/open-activity-list/style/_layout.scss +7 -1
- package/lib/components/task-creator/style/_layout.scss +45 -0
- package/lib/components/task-creator/task-creator.component.d.ts +9 -2
- package/{main.80c54da58e4b053fdd1e.js → main.2396a36c81daedb9fd1f.js} +1 -1
- package/package.json +1 -1
- package/{styles.2f5ba4f7c6fe9f5b1c3f.css → styles.7699734a9d860ab3b86f.css} +1 -1
|
@@ -27,6 +27,7 @@ export class ModifyTaskFormComponent {
|
|
|
27
27
|
this.table = TableName.Tasks;
|
|
28
28
|
this.expandActivities = false;
|
|
29
29
|
this.showTagPopup = false;
|
|
30
|
+
this.allTags = [];
|
|
30
31
|
}
|
|
31
32
|
/* @ViewChild(ActivityActivitiesComponent, { static: true })
|
|
32
33
|
public activityActivities: ActivityActivitiesComponent;*/
|
|
@@ -281,4 +282,4 @@ ModifyTaskFormComponent.propDecorators = {
|
|
|
281
282
|
__decorate([
|
|
282
283
|
InputBoolean()
|
|
283
284
|
], ModifyTaskFormComponent.prototype, "forceReadonly", null);
|
|
284
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kaWZ5LXRhc2stZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWRjb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9tb2RpZnktdGFzay1mb3JtL21vZGlmeS10YXNrLWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdEcsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQ25FLE9BQU8sRUFDTCxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFDbkMsOENBQThDLEVBRS9DLE1BQU0sOEJBQThCLENBQUM7QUFDdEMsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBR3ZFLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLCtEQUErRCxDQUFDO0FBQ3BHLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUNyRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdEQUFnRCxDQUFDO0FBMkgzRSxNQUFNLE9BQU8sdUJBQXVCO0lBbUZsQyxZQUNVLFVBQWlDLEVBQ2pDLGFBQTRCLEVBQzdCLGdCQUFrQztJQUN6Qyw2Q0FBNkM7SUFDN0MsNkNBQTZDOztRQUpyQyxlQUFVLEdBQVYsVUFBVSxDQUF1QjtRQUNqQyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM3QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBckYzQyxnRUFBZ0U7UUFDaEQsZUFBVSxHQUFxQixTQUFTLENBQUM7UUE0QmxELGFBQVEsR0FBWSxLQUFLLENBQUM7UUFHMUIsaUJBQVksR0FB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QUVyQixhQUFhO1lBVEEsZ0JBQWdCOzs7dUJBNElsQyxLQUFLO3dCQU1MLFdBQVcsU0FBQywyQkFBMkI7c0NBYXZDLEtBQUs7dUJBR0wsS0FBSzsyQkFHTCxLQUFLOzRCQUdMLEtBQUs7cUJBTUwsV0FBVyxTQUFDLGNBQWM7NkJBRzFCLE1BQU07MkJBR04sTUFBTTswQkFHTixNQUFNOztBQWJQO0lBREMsWUFBWSxFQUFFOzREQUdkIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkluaXQsIE91dHB1dH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtBY3Rpdml0eX0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL2FjdGl2aXR5LmJvXCI7XHJcbmltcG9ydCB7XHJcbiAgRm9ybU1hc3RlclNlcnZpY2UsIEljb25DYWNoZVNlcnZpY2UsXHJcbiAgU0NSRUVOX0NPTkZJR19BREFQVEVSX0NPTVBPTkVOVF9JTlRFUkZBQ0VfTkFNRSxcclxuICBTY3JlZW5Db25maWdBZGFwdGVyQ29tcG9uZW50XHJcbn0gZnJvbSBcIkBjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTJcIjtcclxuaW1wb3J0IHtUYWJsZU5hbWV9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9lbnVtL3RhYmxlLW5hbWUuZW51bVwiO1xyXG5pbXBvcnQge0NvRG9jdW1lbnR9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9jby1kb2N1bWVudFwiO1xyXG5pbXBvcnQge0FjdGl2aXRpZXNUYXNrQ29uZmlnTmFtZXN9IGZyb20gXCIuLi8uLi9pbnRlcmZhY2UvYWN0aXZpdGllcy10YXNrLWNvbmZpZy1uYW1lc1wiO1xyXG5pbXBvcnQge0J1c2luZXNzT2JqZWN0RmFjdG9yeX0gZnJvbSBcIkBjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL3NlcnZpY2UvYnVzaW5lc3Mtb2JqZWN0LWZhY3RvcnlcIjtcclxuaW1wb3J0IHtJbnB1dEJvb2xlYW59IGZyb20gXCIuLi8uLi9kZWNvcmF0b3IvaW5wdXQtYm9vbGVhbi5kZWNvcmF0b3JcIjtcclxuaW1wb3J0IHtTaGFyZWRTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS9zaGFyZWQuc2VydmljZVwiO1xyXG5pbXBvcnQge1RhZ0NhdGVnb3J5fSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvZW51bS90YWItY2F0ZWdvcnkuZW51bVwiO1xyXG5pbXBvcnQge1RhZ1RyZWVJdGVtfSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvdGFnLXRyZWUtaXRlbS5ib1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiY28tbW9kaWZ5LXRhc2stZm9ybVwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibW9kaWZ5LXRhc2staGVhZGVyLXdyYXBwZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kaWZ5LXRhc2staGVhZGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoZWFkZXItbWVudVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJzZWxlY3RlZE1lbnUgPT09ICdjb250ZW50LW1lbnUxJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3RleHRDb250ZW50XT1cIidUQVNLX0RFVEFJTFMnIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzaG93Q29udGVudCgnY29udGVudC1tZW51MScpXCI+PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJoZWFkZXItbWVudVwiXHJcbiAgICAgICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cInNlbGVjdGVkTWVudSA9PT0gJ2NvbnRlbnQtbWVudTInXCJcclxuICAgICAgICAgICAgICAgIFt0ZXh0Q29udGVudF09XCInVEFTS19JTkZPUk1BVElPTicgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic2hvd0NvbnRlbnQoJ2NvbnRlbnQtbWVudTInKVwiPjwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGVhZGVyLW1lbnVcIlxyXG4gICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJzZWxlY3RlZE1lbnUgPT09ICdjb250ZW50LW1lbnUzJ1wiXHJcbiAgICAgICAgICAgICAgICBbdGV4dENvbnRlbnRdPVwiJ1BMQU5OSU5HJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzaG93Q29udGVudCgnY29udGVudC1tZW51MycpXCI+PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtbWVudS13cmFwcGVyIG5hcnJvdy1zY3JvbGxiYXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1tZW51XCIgW2hpZGRlbl09XCJzZWxlY3RlZE1lbnUgIT09ICdjb250ZW50LW1lbnUxJ1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtcm93LXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtbGVmdFwiPlxyXG4gICAgICAgICAgICAgIDxjby10YXNrLWRldGFpbHMgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0YWJsZV09XCJUYWJsZU5hbWVzLlRhc2tzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtrZXldPVwia2V5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsoYWN0aXZpdHkpXT1cImFjdGl2aXR5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhY3Rpdml0eUNoYW5nZSk9XCJhY3Rpdml0eUNoYW5nZS5lbWl0KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNob3dXb3JrTG9nKT1cImhhbmRsZVNob3dXb3JrTG93KClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9Cb3JkZXJcclxuICAgICAgICAgICAgICA+PC9jby10YXNrLWRldGFpbHM+XHJcbiAgICAgICAgICAgICAgPGNvLWlucHV0LWNoZWNrYm94XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImludm9pY2UtY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIidNQVJLRUQnIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgWyhtb2RlbCldPVwiYWN0aXZpdHkudGFzay5pc0ludm9pY2VkXCI+XHJcbiAgICAgICAgICAgICAgPC9jby1pbnB1dC1jaGVja2JveD5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFya2VkLXRpbWUtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgPGNvLWlucHV0LWNoZWNrYm94XHJcbiAgICAgICAgICAgICAgICAgIFsobW9kZWwpXT1cImFjdGl2aXR5LnRhc2sud29ya01hbmRhdG9yeVwiXHJcbiAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInVElNRVJFR0lTVFJBVElPTl9NQU5EQVRPUlknIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICBub01vZHVsZVNlcnZpY2U+XHJcbiAgICAgICAgICAgICAgICA8L2NvLWlucHV0LWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgICAgPCEtLSBUT0RPIGltcGxlbWVudCBiYWNrIGxhdGVyLS0+XHJcbiAgICAgICAgICAgICAgICA8IS0tIDxhcnJvdy1saW5rICpuZ0lmPVwiIXJlYWRvbmx5XCIgbGFiZWw9XCJSRUdJU1RFUl9USU1FX0hFUkVcIiAoY2xpY2spPVwiaGFuZGxlUmVnaXN0ZXJXb3JrKClcIj48L2Fycm93LWxpbms+LS0+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtcmlnaHRcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aXZpdHktY29udGVudC1oZWFkZXJcIiBbdGV4dENvbnRlbnRdPVwiJ1BFUlNPTlMnIHwgbG9jYWxpemVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICA8Y28tZXhlY3V0aXZlLXN1bW1hcnktYmxvY2tcclxuICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgICAgICAgICAgICAgICBbKGFjdGl2aXR5KV09XCJhY3Rpdml0eVwiXHJcbiAgICAgICAgICAgICAgICAoYWN0aXZpdHlDaGFuZ2UpPVwiYWN0aXZpdHlDaGFuZ2UuZW1pdCgkZXZlbnQpXCIgbm9Cb3JkZXJcclxuICAgICAgICAgICAgICA+PC9jby1leGVjdXRpdmUtc3VtbWFyeS1ibG9jaz5cclxuXHJcbiAgICAgICAgICAgICAgPCEtLVRPRE8gaW1wbGVtZW50IG5ldyBmaWxlIHVwbG9hZCBoZXJlLS0+XHJcbiAgICAgICAgICAgICAgPCEtLSA8YWN0aXZpdHktYXR0YWNobWVudHNcclxuICAgICAgICAgICAgICAgICAgICAgICBbKGFjdGl2aXR5KV09XCJhY3Rpdml0eVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICBba2V5XT1cImFjdGl2aXR5LnRhc2suaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtub0ZvcmNlSW5wdXRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgKGFjdGl2aXR5Q2hhbmdlKT1cImFjdGl2aXR5Q2hhbmdlLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgbm9Cb3JkZXJcclxuICAgICAgICAgICAgICAgPjwvYWN0aXZpdHktYXR0YWNobWVudHM+LS0+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aXZpdGllcy13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgIDxjby1hY3Rpdml0eS1saXN0IFthY3Rpdml0aWVzXT1cImFjdGl2aXRpZXNcIj5cclxuXHJcbiAgICAgICAgICAgIDwvY28tYWN0aXZpdHktbGlzdD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LW1lbnVcIiBbaGlkZGVuXT1cInNlbGVjdGVkTWVudSAhPT0gJ2NvbnRlbnQtbWVudTInXCI+XHJcbiAgICAgICAgICA8Y28tc3RhdHVzLXN1bW1hcnktYmxvY2tcclxuICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgICAgICAgWyhhY3Rpdml0eSldPVwiYWN0aXZpdHlcIlxyXG4gICAgICAgICAgICBbdGFibGVdPVwiVGFibGVOYW1lcy5UYXNrc1wiXHJcbiAgICAgICAgICAgIFtrZXldPVwia2V5XCJcclxuICAgICAgICAgICAgKGFjdGl2aXR5Q2hhbmdlKT1cImFjdGl2aXR5Q2hhbmdlLmVtaXQoJGV2ZW50KVwiIG5vQm9yZGVyXHJcbiAgICAgICAgICA+PC9jby1zdGF0dXMtc3VtbWFyeS1ibG9jaz5cclxuICAgICAgICAgIDxjby1jcmVhdGlvbi1zdW1tYXJ5LWJsb2NrXHJcbiAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgICAgICAgICAgIFsoYWN0aXZpdHkpXT1cImFjdGl2aXR5XCJcclxuICAgICAgICAgICAgKGFjdGl2aXR5Q2hhbmdlKT1cImFjdGl2aXR5Q2hhbmdlLmVtaXQoJGV2ZW50KVwiIG5vQm9yZGVyXHJcbiAgICAgICAgICA+PC9jby1jcmVhdGlvbi1zdW1tYXJ5LWJsb2NrPlxyXG4gICAgICAgICAgPCEtLTxwbGFubmluZy1zdW1tYXJ5LWJsb2NrXHJcbiAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgICAgICAgICAgICAgICAgIFsoYWN0aXZpdHkpXT1cImFjdGl2aXR5XCJcclxuICAgICAgICAgICAgICAgICAgKGFjdGl2aXR5Q2hhbmdlKT1cImFjdGl2aXR5Q2hhbmdlLmVtaXQoJGV2ZW50KVwiIG5vQm9yZGVyXHJcbiAgICAgICAgICA+PC9wbGFubmluZy1zdW1tYXJ5LWJsb2NrPi0tPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LW1lbnVcIiBbaGlkZGVuXT1cInNlbGVjdGVkTWVudSAhPT0gJ2NvbnRlbnQtbWVudTMnXCI+XHJcbiAgICAgICAgICA8Y28tbm90aWZpY2F0aW9uLXN1bW1hcnktYmxvY2tcclxuICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgICAgICAgWyhhY3Rpdml0eSldPVwiYWN0aXZpdHlcIlxyXG4gICAgICAgICAgICAoYWN0aXZpdHlDaGFuZ2UpPVwiYWN0aXZpdHlDaGFuZ2UuZW1pdCgkZXZlbnQpXCIgbm9Cb3JkZXJcclxuICAgICAgICAgID48L2NvLW5vdGlmaWNhdGlvbi1zdW1tYXJ5LWJsb2NrPlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJlZGl0LXRhZ3Mtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICA8Y28tc2ltcGxlLXRhZ3MtZm9ybSBbdGFnc109XCJhbGxUYWdzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmtlZFRhZ3NdPVwiYWN0aXZpdHkudGFzay50YWdzXCI+XHJcbiAgICAgICAgICAgIDwvY28tc2ltcGxlLXRhZ3MtZm9ybT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLXRhZy13cmFwcGVyXCIgKm5nRm9yPVwibGV0IHRhZyBvZiBhY3Rpdml0eS50YXNrLnRhZ3NcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhZ1wiIFt0ZXh0Q29udGVudF09XCJ0YWcuZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICA8L2Rpdj5cclxuICBgLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgRm9ybU1hc3RlclNlcnZpY2UsXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IFNDUkVFTl9DT05GSUdfQURBUFRFUl9DT01QT05FTlRfSU5URVJGQUNFX05BTUUsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE1vZGlmeVRhc2tGb3JtQ29tcG9uZW50KVxyXG4gICAgfVxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNb2RpZnlUYXNrRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgU2NyZWVuQ29uZmlnQWRhcHRlckNvbXBvbmVudCB7XHJcbiAgLy9wdWJsaWMgcmVhZG9ubHkgVGFnQ2F0ZWdvcnk6IHR5cGVvZiBUYWdDYXRlZ29yeSA9IFRhZ0NhdGVnb3J5O1xyXG4gIHB1YmxpYyByZWFkb25seSBUYWJsZU5hbWVzOiB0eXBlb2YgVGFibGVOYW1lID0gVGFibGVOYW1lO1xyXG5cclxuICAvKiBAVmlld0NoaWxkKEFjdGl2aXR5QWN0aXZpdGllc0NvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSlcclxuICAgcHVibGljIGFjdGl2aXR5QWN0aXZpdGllczogQWN0aXZpdHlBY3Rpdml0aWVzQ29tcG9uZW50OyovXHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBhY3Rpdml0eSh2YWx1ZTogQWN0aXZpdHkpIHtcclxuICAgIHRoaXMuX2FjdGl2aXR5ID0gdmFsdWU7XHJcbiAgICB0aGlzLmtleSA9IHRoaXMuX2FjdGl2aXR5LnRhc2sudGFza0lkICsgXCJcIjtcclxuICB9XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmNvLW1vZGlmeS10YXNrLWZvcm1cIilcclxuICBwdWJsaWMgc2hvd0NsYXNzKCkge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGFjdGl2aXR5KCk6IEFjdGl2aXR5IHtcclxuICAgIHJldHVybiB0aGlzLl9hY3Rpdml0eTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgaGFzRG9jdW1lbnRzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICh0aGlzLl9hY3Rpdml0eT8udGFzaz8uZG9jdW1lbnRzPy5sZW5ndGggPiAwKTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGFjdGl2aXR5VGFza0NvbmZpZ05hbWVzOiBBY3Rpdml0aWVzVGFza0NvbmZpZ05hbWVzO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyByZWFkb25seTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBwb3B1cENvbnRleHQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBASW5wdXRCb29sZWFuKClcclxuICBwdWJsaWMgc2V0IGZvcmNlUmVhZG9ubHkodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMucmVhZG9ubHkgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmhpZGRlblwiKVxyXG4gIHB1YmxpYyBoaWRkZW46IGJvb2xlYW47XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBhY3Rpdml0eUNoYW5nZTogRXZlbnRFbWl0dGVyPEFjdGl2aXR5PiA9IG5ldyBFdmVudEVtaXR0ZXI8QWN0aXZpdHk+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBzdGF0dXNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHNob3dXb3JrTG9nOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIHB1YmxpYyBzZWxlY3RlZE1lbnU6IHN0cmluZyA9ICdjb250ZW50LW1lbnUxJ1xyXG4gIHB1YmxpYyBhY3Rpdml0aWVzOiBBY3Rpdml0eVtdID0gW107XHJcbiAgcHVibGljIHRhYmxlOiBUYWJsZU5hbWUgPSBUYWJsZU5hbWUuVGFza3M7XHJcbiAgcHVibGljIGtleTogc3RyaW5nO1xyXG4gIHB1YmxpYyBleHBhbmRBY3Rpdml0aWVzOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBvYmplY3RDb25maWdOYW1lOiBzdHJpbmc7XHJcbiAgcHVibGljIHJlcXVpcmVkOiBib29sZWFuO1xyXG4gIHB1YmxpYyBtYXhMZW5ndGg6IG51bWJlcjtcclxuICBwdWJsaWMgZGVjaW1hbHM6IG51bWJlcjtcclxuICBwdWJsaWMgcmVkRXJyb3JCYWNrZ3JvdW5kOiBib29sZWFuO1xyXG5cclxuICBwdWJsaWMgc2hvd1RhZ1BvcHVwOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGFsbFRhZ3M6IFRhZ1RyZWVJdGVtW107XHJcbiAgLy9wdWJsaWMgZWRpdGluZ1RhZ3M6IFRhZ1RyZWVJdGVtW10gPSBbXTtcclxuXHJcbiAgLypwdWJsaWMgZ2V0IG1vYmlsZSgpOiBib29sZWFuIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX21lZGlhTW9uaXRvci5pc0V4dHJhU21hbGwoKTtcclxuICB9Ki9cclxuXHJcbiAgcHJpdmF0ZSBfYWN0aXZpdHk6IEFjdGl2aXR5O1xyXG5cclxuICBwdWJsaWMgaGFuZGxlQWRkRG9jdW1lbnRzKGRvY3M6IENvRG9jdW1lbnRbXSk6IHZvaWQge1xyXG4gICAgZG9jcy5mb3JFYWNoKGRvYyA9PiB0aGlzLmFjdGl2aXR5LnRhc2suZG9jdW1lbnRzLnB1c2goZG9jKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlQWRkRG9jdW1lbnQoZG9jOiBDb0RvY3VtZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLmFjdGl2aXR5LnRhc2suZG9jdW1lbnRzLnB1c2goZG9jKTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfYm9GYWN0b3J5OiBCdXNpbmVzc09iamVjdEZhY3RvcnksXHJcbiAgICBwcml2YXRlIHNoYXJlZFNlcnZpY2U6IFNoYXJlZFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgaWNvbkNhY2hlU2VydmljZTogSWNvbkNhY2hlU2VydmljZVxyXG4gICAgLy9wcml2YXRlIF9tZWRpYU1vbml0b3I6IE1lZGlhTW9uaXRvclNlcnZpY2UsXHJcbiAgICAvKnByaXZhdGUgX2FjdGl2aXR5U2VydmljZTogQWN0aXZpdHlTZXJ2aWNlKi9cclxuICApIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2dldEFjdGl2aXRpZXMoKTtcclxuICAgIHRoaXMuX2dldFRhZ3MoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzaG93Q29udGVudChtZW51OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRNZW51ID0gbWVudTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVSZWdpc3RlcldvcmsoKTogdm9pZCB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgLyppZiAodGhpcy5hY3Rpdml0eUFjdGl2aXRpZXMpIHtcclxuICAgICAgICAgIHRoaXMuZXhwYW5kQWN0aXZpdGllcyA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmFjdGl2aXR5QWN0aXZpdGllcy5zaG93UmVnaXN0ZXJXb3JrTGVhZigpO1xyXG4gICAgICB9Ki9cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVNhdmVBY3Rpdml0eShhY3Rpdml0eTogQWN0aXZpdHkpOiB2b2lkIHtcclxuICAgIHRoaXMuX3VwZGF0ZVRhc2tPYmplY3QoYWN0aXZpdHksIGFjdGl2aXR5LklzV29yayA/IFwid29ya0xvZ1wiIDogXCJyZW1hcmtzXCIpO1xyXG4gICAgY29uc3QgaW5kZXg6IG51bWJlciA9IHRoaXMuYWN0aXZpdGllcy5maW5kSW5kZXgoKHNyYykgPT4ge1xyXG4gICAgICByZXR1cm4gc3JjLmdldElkKCkgPT09IGFjdGl2aXR5LmdldElkKCk7XHJcbiAgICB9KTtcclxuICAgIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgICAgIHRoaXMuYWN0aXZpdGllc1tpbmRleF0gPSBhY3Rpdml0eTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuYWN0aXZpdGllcy5wdXNoKGFjdGl2aXR5KTtcclxuICAgIH1cclxuICAgIHRoaXMuYWN0aXZpdGllcyA9IHRoaXMuYWN0aXZpdGllcy5zbGljZSgwKTsgLy8gcmVzZXQgdmlld1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZURlbGV0ZUFjdGl2aXR5KGFjdGl2aXR5OiBBY3Rpdml0eSk6IHZvaWQge1xyXG4gICAgaWYgKGFjdGl2aXR5LklzV29yaykge1xyXG4gICAgICB0aGlzLmFjdGl2aXR5LnRhc2suZGVsZXRlV29ya0xvZyhhY3Rpdml0eS53b3JrKTtcclxuICAgIH0gZWxzZSBpZiAoYWN0aXZpdHkuSXNSZW1hcmspIHtcclxuICAgICAgdGhpcy5hY3Rpdml0eS50YXNrLmRlbGV0ZVJlbWFyayhhY3Rpdml0eS5yZW1hcmspO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVNob3dXb3JrTG93KCk6IHZvaWQge1xyXG4gICAgdGhpcy5leHBhbmRBY3Rpdml0aWVzID0gdHJ1ZTtcclxuICAgIHRoaXMuc2hvd1dvcmtMb2cuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUVkaXRUYWdzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZ2V0VGFncygpO1xyXG4gICAgdGhpcy5zaG93VGFnUG9wdXAgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVNhdmVUYWdzKHRhZ3M6IFRhZ1RyZWVJdGVtW10pOiB2b2lkIHtcclxuICAgIHRoaXMuYWN0aXZpdHkudGFzay50YWdzID0gdGFncztcclxuICB9XHJcblxyXG5cclxuXHJcbiAgcHJpdmF0ZSBfdXBkYXRlVGFza09iamVjdChhY3Rpdml0eTogQWN0aXZpdHksIHByb3A6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3QgY2xvbmVBY3Rpdml0eSA9IHRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKEFjdGl2aXR5LCBhY3Rpdml0eSk7XHJcbiAgICBpZiAoKGNsb25lQWN0aXZpdHkgYXMgQWN0aXZpdHkpLmlzTmV3KSB7XHJcbiAgICAgIHRoaXMuYWN0aXZpdHkudGFza1twcm9wXS5wdXNoKGFjdGl2aXR5LmdldEJhc2VDb250ZW50KCkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgaW5kZXg6IG51bWJlciA9IHRoaXMuYWN0aXZpdHkudGFza1twcm9wXS5maW5kSW5kZXgoKHNyYykgPT4ge1xyXG4gICAgICAgIHJldHVybiBzcmMuZ2V0SWQoKSA9PT0gYWN0aXZpdHkuZ2V0QmFzZUNvbnRlbnQoKS5nZXRJZCgpO1xyXG4gICAgICB9KTtcclxuICAgICAgaWYgKGluZGV4ID4gLTEpIHtcclxuICAgICAgICB0aGlzLmFjdGl2aXR5LnRhc2tbcHJvcF1baW5kZXhdID0gYWN0aXZpdHkuZ2V0QmFzZUNvbnRlbnQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgYWN0aXZpdHkuZWRpdHRpbmcgPSBmYWxzZTtcclxuICAgIGFjdGl2aXR5LmlzTmV3ID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIF9nZXRBY3Rpdml0aWVzKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKCF0aGlzLmtleSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmFjdGl2aXRpZXMgPSBhd2FpdCB0aGlzLnNoYXJlZFNlcnZpY2UuZ2V0QWN0aXZpdGllcyh0aGlzLnRhYmxlLCB0aGlzLmtleS50b1N0cmluZygpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgX2dldFRhZ3MoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLmFsbFRhZ3MgPSBhd2FpdCB0aGlzLnNoYXJlZFNlcnZpY2UuZ2V0VGFnc0Z1bGxUcmVlKFRhZ0NhdGVnb3J5LnRhc2tzLCB0cnVlKTtcclxuXHJcbiAgICAvKmlmICghdGhpcy5rZXkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5lZGl0aW5nVGFncyA9IGF3YWl0IHRoaXMuc2hhcmVkU2VydmljZS5nZXRKb2luZWRUYWdzKHRoaXMudGFibGUsIHRoaXMua2V5LnRvU3RyaW5nKCkpO1xyXG4gICAgfSovLyppZiAoIXRoaXMua2V5KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZWRpdGluZ1RhZ3MgPSBhd2FpdCB0aGlzLnNoYXJlZFNlcnZpY2UuZ2V0Sm9pbmVkVGFncyh0aGlzLnRhYmxlLCB0aGlzLmtleS50b1N0cmluZygpKTtcclxuICAgIH0qL1xyXG4gIH1cclxuXHJcbn1cclxuIl19
|
|
285
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kaWZ5LXRhc2stZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWRjb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9tb2RpZnktdGFzay1mb3JtL21vZGlmeS10YXNrLWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdEcsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQ25FLE9BQU8sRUFDTCxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFDbkMsOENBQThDLEVBRS9DLE1BQU0sOEJBQThCLENBQUM7QUFDdEMsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBR3ZFLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLCtEQUErRCxDQUFDO0FBQ3BHLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUNyRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdEQUFnRCxDQUFDO0FBMkgzRSxNQUFNLE9BQU8sdUJBQXVCO0lBbUZsQyxZQUNVLFVBQWlDLEVBQ2pDLGFBQTRCLEVBQzdCLGdCQUFrQztJQUN6Qyw2Q0FBNkM7SUFDN0MsNkNBQTZDOztRQUpyQyxlQUFVLEdBQVYsVUFBVSxDQUF1QjtRQUNqQyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM3QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBckYzQyxnRUFBZ0U7UUFDaEQsZUFBVSxHQUFxQixTQUFTLENBQUM7UUE0QmxELGFBQVEsR0FBWSxLQUFLLENBQUM7UUFHMUIsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFZOUIsbUJBQWMsR0FBMkIsSUFBSSxZQUFZLEVBQVksQ0FBQztRQUd0RSxpQkFBWSxHQUEwQixJQUFJLFlBQVksRUFBVyxDQUFDO1FBR2xFLGdCQUFXLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFFM0QsaUJBQVksR0FBVyxlQUFlLENBQUE7UUFDdEMsZUFBVSxHQUFlLEVBQUUsQ0FBQztRQUM1QixVQUFLLEdBQWMsU0FBUyxDQUFDLEtBQUssQ0FBQztRQUVuQyxxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFRbEMsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFDOUIsWUFBTyxHQUFrQixFQUFFLENBQUM7SUF3Qm5DLENBQUM7SUF0RkQ7OERBQzBEO0lBRTFELElBQ1csUUFBUSxDQUFDLEtBQWU7UUFDakMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO0lBQzdDLENBQUM7SUFHTSxTQUFTO1FBQ2QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBVyxZQUFZOztRQUNyQixPQUFPLENBQUMsQ0FBQSxNQUFBLE1BQUEsTUFBQSxJQUFJLENBQUMsU0FBUywwQ0FBRSxJQUFJLDBDQUFFLFNBQVMsMENBQUUsTUFBTSxJQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFhRCxJQUFXLGFBQWEsQ0FBQyxLQUFjO1FBQ3JDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ3hCLENBQUM7SUFvQ00sa0JBQWtCLENBQUMsSUFBa0I7UUFDMUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRU0saUJBQWlCLENBQUMsR0FBZTtRQUN0QyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFXTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRU0sV0FBVyxDQUFDLElBQVk7UUFDN0IsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7SUFDM0IsQ0FBQztJQUVNLGtCQUFrQjtRQUN2QixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2Q7OztlQUdHO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sa0JBQWtCLENBQUMsUUFBa0I7UUFDMUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzFFLE1BQU0sS0FBSyxHQUFXLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDdEQsT0FBTyxHQUFHLENBQUMsS0FBSyxFQUFFLEtBQUssUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzFDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUU7WUFDZCxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLFFBQVEsQ0FBQztTQUNuQzthQUFNO1lBQ0wsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDaEM7UUFDRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYTtJQUMzRCxDQUFDO0lBRU0sb0JBQW9CLENBQUMsUUFBa0I7UUFDNUMsSUFBSSxRQUFRLENBQUMsTUFBTSxFQUFFO1lBQ25CLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDakQ7YUFBTSxJQUFJLFFBQVEsQ0FBQyxRQUFRLEVBQUU7WUFDNUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNsRDtJQUNILENBQUM7SUFFTSxpQkFBaUI7UUFDdEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTSxjQUFjO1FBQ25CLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztJQUMzQixDQUFDO0lBRU0sY0FBYyxDQUFDLElBQW1CO1FBQ3ZDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDakMsQ0FBQztJQUlPLGlCQUFpQixDQUFDLFFBQWtCLEVBQUUsSUFBWTtRQUN4RCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNqRixJQUFLLGFBQTBCLENBQUMsS0FBSyxFQUFFO1lBQ3JDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztTQUMxRDthQUFNO1lBQ0wsTUFBTSxLQUFLLEdBQVcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQy9ELE9BQU8sR0FBRyxDQUFDLEtBQUssRUFBRSxLQUFLLFFBQVEsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUMzRCxDQUFDLENBQUMsQ0FBQztZQUNILElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFO2dCQUNkLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLFFBQVEsQ0FBQyxjQUFjLEVBQUUsQ0FBQzthQUM3RDtTQUNGO1FBQ0QsUUFBUSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDMUIsUUFBUSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDekIsQ0FBQztJQUVhLGNBQWM7O1lBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUNiLE9BQU87YUFDUjtZQUNELElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUM1RixDQUFDO0tBQUE7SUFFYSxRQUFROztZQUNwQixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztZQUVqRjs7OztlQUlHLENBQUE7Ozs7ZUFJQTtRQUNMLENBQUM7S0FBQTs7O1lBOVNGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUscUJBQXFCO2dCQUMvQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E2R1Q7Z0JBQ0QsU0FBUyxFQUFFO29CQUNULGlCQUFpQjtvQkFDakI7d0JBQ0UsT0FBTyxFQUFFLDhDQUE4Qzt3QkFDdkQsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztxQkFDdkQ7aUJBQ0Y7YUFDRjs7O1lBN0hPLHFCQUFxQjtZQUVyQixhQUFhO1lBVEEsZ0JBQWdCOzs7dUJBNElsQyxLQUFLO3dCQU1MLFdBQVcsU0FBQywyQkFBMkI7c0NBYXZDLEtBQUs7dUJBR0wsS0FBSzsyQkFHTCxLQUFLOzRCQUdMLEtBQUs7cUJBTUwsV0FBVyxTQUFDLGNBQWM7NkJBRzFCLE1BQU07MkJBR04sTUFBTTswQkFHTixNQUFNOztBQWJQO0lBREMsWUFBWSxFQUFFOzREQUdkIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkluaXQsIE91dHB1dH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtBY3Rpdml0eX0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL2FjdGl2aXR5LmJvXCI7XHJcbmltcG9ydCB7XHJcbiAgRm9ybU1hc3RlclNlcnZpY2UsIEljb25DYWNoZVNlcnZpY2UsXHJcbiAgU0NSRUVOX0NPTkZJR19BREFQVEVSX0NPTVBPTkVOVF9JTlRFUkZBQ0VfTkFNRSxcclxuICBTY3JlZW5Db25maWdBZGFwdGVyQ29tcG9uZW50XHJcbn0gZnJvbSBcIkBjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTJcIjtcclxuaW1wb3J0IHtUYWJsZU5hbWV9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9lbnVtL3RhYmxlLW5hbWUuZW51bVwiO1xyXG5pbXBvcnQge0NvRG9jdW1lbnR9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9jby1kb2N1bWVudFwiO1xyXG5pbXBvcnQge0FjdGl2aXRpZXNUYXNrQ29uZmlnTmFtZXN9IGZyb20gXCIuLi8uLi9pbnRlcmZhY2UvYWN0aXZpdGllcy10YXNrLWNvbmZpZy1uYW1lc1wiO1xyXG5pbXBvcnQge0J1c2luZXNzT2JqZWN0RmFjdG9yeX0gZnJvbSBcIkBjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL3NlcnZpY2UvYnVzaW5lc3Mtb2JqZWN0LWZhY3RvcnlcIjtcclxuaW1wb3J0IHtJbnB1dEJvb2xlYW59IGZyb20gXCIuLi8uLi9kZWNvcmF0b3IvaW5wdXQtYm9vbGVhbi5kZWNvcmF0b3JcIjtcclxuaW1wb3J0IHtTaGFyZWRTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS9zaGFyZWQuc2VydmljZVwiO1xyXG5pbXBvcnQge1RhZ0NhdGVnb3J5fSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvZW51bS90YWItY2F0ZWdvcnkuZW51bVwiO1xyXG5pbXBvcnQge1RhZ1RyZWVJdGVtfSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvdGFnLXRyZWUtaXRlbS5ib1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiY28tbW9kaWZ5LXRhc2stZm9ybVwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibW9kaWZ5LXRhc2staGVhZGVyLXdyYXBwZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kaWZ5LXRhc2staGVhZGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoZWFkZXItbWVudVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJzZWxlY3RlZE1lbnUgPT09ICdjb250ZW50LW1lbnUxJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3RleHRDb250ZW50XT1cIidUQVNLX0RFVEFJTFMnIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzaG93Q29udGVudCgnY29udGVudC1tZW51MScpXCI+PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJoZWFkZXItbWVudVwiXHJcbiAgICAgICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cInNlbGVjdGVkTWVudSA9PT0gJ2NvbnRlbnQtbWVudTInXCJcclxuICAgICAgICAgICAgICAgIFt0ZXh0Q29udGVudF09XCInVEFTS19JTkZPUk1BVElPTicgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic2hvd0NvbnRlbnQoJ2NvbnRlbnQtbWVudTInKVwiPjwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGVhZGVyLW1lbnVcIlxyXG4gICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJzZWxlY3RlZE1lbnUgPT09ICdjb250ZW50LW1lbnUzJ1wiXHJcbiAgICAgICAgICAgICAgICBbdGV4dENvbnRlbnRdPVwiJ1BMQU5OSU5HJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzaG93Q29udGVudCgnY29udGVudC1tZW51MycpXCI+PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtbWVudS13cmFwcGVyIG5hcnJvdy1zY3JvbGxiYXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1tZW51XCIgW2hpZGRlbl09XCJzZWxlY3RlZE1lbnUgIT09ICdjb250ZW50LW1lbnUxJ1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtcm93LXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtbGVmdFwiPlxyXG4gICAgICAgICAgICAgIDxjby10YXNrLWRldGFpbHMgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0YWJsZV09XCJUYWJsZU5hbWVzLlRhc2tzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtrZXldPVwia2V5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsoYWN0aXZpdHkpXT1cImFjdGl2aXR5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhY3Rpdml0eUNoYW5nZSk9XCJhY3Rpdml0eUNoYW5nZS5lbWl0KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNob3dXb3JrTG9nKT1cImhhbmRsZVNob3dXb3JrTG93KClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9Cb3JkZXJcclxuICAgICAgICAgICAgICA+PC9jby10YXNrLWRldGFpbHM+XHJcbiAgICAgICAgICAgICAgPGNvLWlucHV0LWNoZWNrYm94XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImludm9pY2UtY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIidNQVJLRUQnIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgWyhtb2RlbCldPVwiYWN0aXZpdHkudGFzay5pc0ludm9pY2VkXCI+XHJcbiAgICAgICAgICAgICAgPC9jby1pbnB1dC1jaGVja2JveD5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFya2VkLXRpbWUtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgPGNvLWlucHV0LWNoZWNrYm94XHJcbiAgICAgICAgICAgICAgICAgIFsobW9kZWwpXT1cImFjdGl2aXR5LnRhc2sud29ya01hbmRhdG9yeVwiXHJcbiAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInVElNRVJFR0lTVFJBVElPTl9NQU5EQVRPUlknIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICBub01vZHVsZVNlcnZpY2U+XHJcbiAgICAgICAgICAgICAgICA8L2NvLWlucHV0LWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgICAgPCEtLSBUT0RPIGltcGxlbWVudCBiYWNrIGxhdGVyLS0+XHJcbiAgICAgICAgICAgICAgICA8IS0tIDxhcnJvdy1saW5rICpuZ0lmPVwiIXJlYWRvbmx5XCIgbGFiZWw9XCJSRUdJU1RFUl9USU1FX0hFUkVcIiAoY2xpY2spPVwiaGFuZGxlUmVnaXN0ZXJXb3JrKClcIj48L2Fycm93LWxpbms+LS0+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtcmlnaHRcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aXZpdHktY29udGVudC1oZWFkZXJcIiBbdGV4dENvbnRlbnRdPVwiJ1BFUlNPTlMnIHwgbG9jYWxpemVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICA8Y28tZXhlY3V0aXZlLXN1bW1hcnktYmxvY2tcclxuICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgICAgICAgICAgICAgICBbKGFjdGl2aXR5KV09XCJhY3Rpdml0eVwiXHJcbiAgICAgICAgICAgICAgICAoYWN0aXZpdHlDaGFuZ2UpPVwiYWN0aXZpdHlDaGFuZ2UuZW1pdCgkZXZlbnQpXCIgbm9Cb3JkZXJcclxuICAgICAgICAgICAgICA+PC9jby1leGVjdXRpdmUtc3VtbWFyeS1ibG9jaz5cclxuXHJcbiAgICAgICAgICAgICAgPCEtLVRPRE8gaW1wbGVtZW50IG5ldyBmaWxlIHVwbG9hZCBoZXJlLS0+XHJcbiAgICAgICAgICAgICAgPCEtLSA8YWN0aXZpdHktYXR0YWNobWVudHNcclxuICAgICAgICAgICAgICAgICAgICAgICBbKGFjdGl2aXR5KV09XCJhY3Rpdml0eVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICBba2V5XT1cImFjdGl2aXR5LnRhc2suaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtub0ZvcmNlSW5wdXRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgKGFjdGl2aXR5Q2hhbmdlKT1cImFjdGl2aXR5Q2hhbmdlLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgbm9Cb3JkZXJcclxuICAgICAgICAgICAgICAgPjwvYWN0aXZpdHktYXR0YWNobWVudHM+LS0+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aXZpdGllcy13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgIDxjby1hY3Rpdml0eS1saXN0IFthY3Rpdml0aWVzXT1cImFjdGl2aXRpZXNcIj5cclxuXHJcbiAgICAgICAgICAgIDwvY28tYWN0aXZpdHktbGlzdD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LW1lbnVcIiBbaGlkZGVuXT1cInNlbGVjdGVkTWVudSAhPT0gJ2NvbnRlbnQtbWVudTInXCI+XHJcbiAgICAgICAgICA8Y28tc3RhdHVzLXN1bW1hcnktYmxvY2tcclxuICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgICAgICAgWyhhY3Rpdml0eSldPVwiYWN0aXZpdHlcIlxyXG4gICAgICAgICAgICBbdGFibGVdPVwiVGFibGVOYW1lcy5UYXNrc1wiXHJcbiAgICAgICAgICAgIFtrZXldPVwia2V5XCJcclxuICAgICAgICAgICAgKGFjdGl2aXR5Q2hhbmdlKT1cImFjdGl2aXR5Q2hhbmdlLmVtaXQoJGV2ZW50KVwiIG5vQm9yZGVyXHJcbiAgICAgICAgICA+PC9jby1zdGF0dXMtc3VtbWFyeS1ibG9jaz5cclxuICAgICAgICAgIDxjby1jcmVhdGlvbi1zdW1tYXJ5LWJsb2NrXHJcbiAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgICAgICAgICAgIFsoYWN0aXZpdHkpXT1cImFjdGl2aXR5XCJcclxuICAgICAgICAgICAgKGFjdGl2aXR5Q2hhbmdlKT1cImFjdGl2aXR5Q2hhbmdlLmVtaXQoJGV2ZW50KVwiIG5vQm9yZGVyXHJcbiAgICAgICAgICA+PC9jby1jcmVhdGlvbi1zdW1tYXJ5LWJsb2NrPlxyXG4gICAgICAgICAgPCEtLTxwbGFubmluZy1zdW1tYXJ5LWJsb2NrXHJcbiAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgICAgICAgICAgICAgICAgIFsoYWN0aXZpdHkpXT1cImFjdGl2aXR5XCJcclxuICAgICAgICAgICAgICAgICAgKGFjdGl2aXR5Q2hhbmdlKT1cImFjdGl2aXR5Q2hhbmdlLmVtaXQoJGV2ZW50KVwiIG5vQm9yZGVyXHJcbiAgICAgICAgICA+PC9wbGFubmluZy1zdW1tYXJ5LWJsb2NrPi0tPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LW1lbnVcIiBbaGlkZGVuXT1cInNlbGVjdGVkTWVudSAhPT0gJ2NvbnRlbnQtbWVudTMnXCI+XHJcbiAgICAgICAgICA8Y28tbm90aWZpY2F0aW9uLXN1bW1hcnktYmxvY2tcclxuICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgICAgICAgWyhhY3Rpdml0eSldPVwiYWN0aXZpdHlcIlxyXG4gICAgICAgICAgICAoYWN0aXZpdHlDaGFuZ2UpPVwiYWN0aXZpdHlDaGFuZ2UuZW1pdCgkZXZlbnQpXCIgbm9Cb3JkZXJcclxuICAgICAgICAgID48L2NvLW5vdGlmaWNhdGlvbi1zdW1tYXJ5LWJsb2NrPlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJlZGl0LXRhZ3Mtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICA8Y28tc2ltcGxlLXRhZ3MtZm9ybSBbdGFnc109XCJhbGxUYWdzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmtlZFRhZ3NdPVwiYWN0aXZpdHkudGFzay50YWdzXCI+XHJcbiAgICAgICAgICAgIDwvY28tc2ltcGxlLXRhZ3MtZm9ybT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLXRhZy13cmFwcGVyXCIgKm5nRm9yPVwibGV0IHRhZyBvZiBhY3Rpdml0eS50YXNrLnRhZ3NcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhZ1wiIFt0ZXh0Q29udGVudF09XCJ0YWcuZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICA8L2Rpdj5cclxuICBgLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgRm9ybU1hc3RlclNlcnZpY2UsXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IFNDUkVFTl9DT05GSUdfQURBUFRFUl9DT01QT05FTlRfSU5URVJGQUNFX05BTUUsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE1vZGlmeVRhc2tGb3JtQ29tcG9uZW50KVxyXG4gICAgfVxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNb2RpZnlUYXNrRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgU2NyZWVuQ29uZmlnQWRhcHRlckNvbXBvbmVudCB7XHJcbiAgLy9wdWJsaWMgcmVhZG9ubHkgVGFnQ2F0ZWdvcnk6IHR5cGVvZiBUYWdDYXRlZ29yeSA9IFRhZ0NhdGVnb3J5O1xyXG4gIHB1YmxpYyByZWFkb25seSBUYWJsZU5hbWVzOiB0eXBlb2YgVGFibGVOYW1lID0gVGFibGVOYW1lO1xyXG5cclxuICAvKiBAVmlld0NoaWxkKEFjdGl2aXR5QWN0aXZpdGllc0NvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSlcclxuICAgcHVibGljIGFjdGl2aXR5QWN0aXZpdGllczogQWN0aXZpdHlBY3Rpdml0aWVzQ29tcG9uZW50OyovXHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBhY3Rpdml0eSh2YWx1ZTogQWN0aXZpdHkpIHtcclxuICAgIHRoaXMuX2FjdGl2aXR5ID0gdmFsdWU7XHJcbiAgICB0aGlzLmtleSA9IHRoaXMuX2FjdGl2aXR5LnRhc2sudGFza0lkICsgXCJcIjtcclxuICB9XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmNvLW1vZGlmeS10YXNrLWZvcm1cIilcclxuICBwdWJsaWMgc2hvd0NsYXNzKCkge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGFjdGl2aXR5KCk6IEFjdGl2aXR5IHtcclxuICAgIHJldHVybiB0aGlzLl9hY3Rpdml0eTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgaGFzRG9jdW1lbnRzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICh0aGlzLl9hY3Rpdml0eT8udGFzaz8uZG9jdW1lbnRzPy5sZW5ndGggPiAwKTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGFjdGl2aXR5VGFza0NvbmZpZ05hbWVzOiBBY3Rpdml0aWVzVGFza0NvbmZpZ05hbWVzO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyByZWFkb25seTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBwb3B1cENvbnRleHQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBASW5wdXRCb29sZWFuKClcclxuICBwdWJsaWMgc2V0IGZvcmNlUmVhZG9ubHkodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMucmVhZG9ubHkgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmhpZGRlblwiKVxyXG4gIHB1YmxpYyBoaWRkZW46IGJvb2xlYW47XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBhY3Rpdml0eUNoYW5nZTogRXZlbnRFbWl0dGVyPEFjdGl2aXR5PiA9IG5ldyBFdmVudEVtaXR0ZXI8QWN0aXZpdHk+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBzdGF0dXNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHNob3dXb3JrTG9nOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIHB1YmxpYyBzZWxlY3RlZE1lbnU6IHN0cmluZyA9ICdjb250ZW50LW1lbnUxJ1xyXG4gIHB1YmxpYyBhY3Rpdml0aWVzOiBBY3Rpdml0eVtdID0gW107XHJcbiAgcHVibGljIHRhYmxlOiBUYWJsZU5hbWUgPSBUYWJsZU5hbWUuVGFza3M7XHJcbiAgcHVibGljIGtleTogc3RyaW5nO1xyXG4gIHB1YmxpYyBleHBhbmRBY3Rpdml0aWVzOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBvYmplY3RDb25maWdOYW1lOiBzdHJpbmc7XHJcbiAgcHVibGljIHJlcXVpcmVkOiBib29sZWFuO1xyXG4gIHB1YmxpYyBtYXhMZW5ndGg6IG51bWJlcjtcclxuICBwdWJsaWMgZGVjaW1hbHM6IG51bWJlcjtcclxuICBwdWJsaWMgcmVkRXJyb3JCYWNrZ3JvdW5kOiBib29sZWFuO1xyXG5cclxuICBwdWJsaWMgc2hvd1RhZ1BvcHVwOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGFsbFRhZ3M6IFRhZ1RyZWVJdGVtW10gPSBbXTtcclxuICAvL3B1YmxpYyBlZGl0aW5nVGFnczogVGFnVHJlZUl0ZW1bXSA9IFtdO1xyXG5cclxuICAvKnB1YmxpYyBnZXQgbW9iaWxlKCk6IGJvb2xlYW4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5fbWVkaWFNb25pdG9yLmlzRXh0cmFTbWFsbCgpO1xyXG4gIH0qL1xyXG5cclxuICBwcml2YXRlIF9hY3Rpdml0eTogQWN0aXZpdHk7XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVBZGREb2N1bWVudHMoZG9jczogQ29Eb2N1bWVudFtdKTogdm9pZCB7XHJcbiAgICBkb2NzLmZvckVhY2goZG9jID0+IHRoaXMuYWN0aXZpdHkudGFzay5kb2N1bWVudHMucHVzaChkb2MpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVBZGREb2N1bWVudChkb2M6IENvRG9jdW1lbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuYWN0aXZpdHkudGFzay5kb2N1bWVudHMucHVzaChkb2MpO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9ib0ZhY3Rvcnk6IEJ1c2luZXNzT2JqZWN0RmFjdG9yeSxcclxuICAgIHByaXZhdGUgc2hhcmVkU2VydmljZTogU2hhcmVkU2VydmljZSxcclxuICAgIHB1YmxpYyBpY29uQ2FjaGVTZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlXHJcbiAgICAvL3ByaXZhdGUgX21lZGlhTW9uaXRvcjogTWVkaWFNb25pdG9yU2VydmljZSxcclxuICAgIC8qcHJpdmF0ZSBfYWN0aXZpdHlTZXJ2aWNlOiBBY3Rpdml0eVNlcnZpY2UqL1xyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZ2V0QWN0aXZpdGllcygpO1xyXG4gICAgdGhpcy5fZ2V0VGFncygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3dDb250ZW50KG1lbnU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZE1lbnUgPSBtZW51O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVJlZ2lzdGVyV29yaygpOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAvKmlmICh0aGlzLmFjdGl2aXR5QWN0aXZpdGllcykge1xyXG4gICAgICAgICAgdGhpcy5leHBhbmRBY3Rpdml0aWVzID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuYWN0aXZpdHlBY3Rpdml0aWVzLnNob3dSZWdpc3RlcldvcmtMZWFmKCk7XHJcbiAgICAgIH0qL1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlU2F2ZUFjdGl2aXR5KGFjdGl2aXR5OiBBY3Rpdml0eSk6IHZvaWQge1xyXG4gICAgdGhpcy5fdXBkYXRlVGFza09iamVjdChhY3Rpdml0eSwgYWN0aXZpdHkuSXNXb3JrID8gXCJ3b3JrTG9nXCIgOiBcInJlbWFya3NcIik7XHJcbiAgICBjb25zdCBpbmRleDogbnVtYmVyID0gdGhpcy5hY3Rpdml0aWVzLmZpbmRJbmRleCgoc3JjKSA9PiB7XHJcbiAgICAgIHJldHVybiBzcmMuZ2V0SWQoKSA9PT0gYWN0aXZpdHkuZ2V0SWQoKTtcclxuICAgIH0pO1xyXG4gICAgaWYgKGluZGV4ID4gLTEpIHtcclxuICAgICAgdGhpcy5hY3Rpdml0aWVzW2luZGV4XSA9IGFjdGl2aXR5O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5hY3Rpdml0aWVzLnB1c2goYWN0aXZpdHkpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5hY3Rpdml0aWVzID0gdGhpcy5hY3Rpdml0aWVzLnNsaWNlKDApOyAvLyByZXNldCB2aWV3XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlRGVsZXRlQWN0aXZpdHkoYWN0aXZpdHk6IEFjdGl2aXR5KTogdm9pZCB7XHJcbiAgICBpZiAoYWN0aXZpdHkuSXNXb3JrKSB7XHJcbiAgICAgIHRoaXMuYWN0aXZpdHkudGFzay5kZWxldGVXb3JrTG9nKGFjdGl2aXR5LndvcmspO1xyXG4gICAgfSBlbHNlIGlmIChhY3Rpdml0eS5Jc1JlbWFyaykge1xyXG4gICAgICB0aGlzLmFjdGl2aXR5LnRhc2suZGVsZXRlUmVtYXJrKGFjdGl2aXR5LnJlbWFyayk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlU2hvd1dvcmtMb3coKTogdm9pZCB7XHJcbiAgICB0aGlzLmV4cGFuZEFjdGl2aXRpZXMgPSB0cnVlO1xyXG4gICAgdGhpcy5zaG93V29ya0xvZy5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlRWRpdFRhZ3MoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9nZXRUYWdzKCk7XHJcbiAgICB0aGlzLnNob3dUYWdQb3B1cCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlU2F2ZVRhZ3ModGFnczogVGFnVHJlZUl0ZW1bXSk6IHZvaWQge1xyXG4gICAgdGhpcy5hY3Rpdml0eS50YXNrLnRhZ3MgPSB0YWdzO1xyXG4gIH1cclxuXHJcblxyXG5cclxuICBwcml2YXRlIF91cGRhdGVUYXNrT2JqZWN0KGFjdGl2aXR5OiBBY3Rpdml0eSwgcHJvcDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBjbG9uZUFjdGl2aXR5ID0gdGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoQWN0aXZpdHksIGFjdGl2aXR5KTtcclxuICAgIGlmICgoY2xvbmVBY3Rpdml0eSBhcyBBY3Rpdml0eSkuaXNOZXcpIHtcclxuICAgICAgdGhpcy5hY3Rpdml0eS50YXNrW3Byb3BdLnB1c2goYWN0aXZpdHkuZ2V0QmFzZUNvbnRlbnQoKSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBpbmRleDogbnVtYmVyID0gdGhpcy5hY3Rpdml0eS50YXNrW3Byb3BdLmZpbmRJbmRleCgoc3JjKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHNyYy5nZXRJZCgpID09PSBhY3Rpdml0eS5nZXRCYXNlQ29udGVudCgpLmdldElkKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgICBpZiAoaW5kZXggPiAtMSkge1xyXG4gICAgICAgIHRoaXMuYWN0aXZpdHkudGFza1twcm9wXVtpbmRleF0gPSBhY3Rpdml0eS5nZXRCYXNlQ29udGVudCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBhY3Rpdml0eS5lZGl0dGluZyA9IGZhbHNlO1xyXG4gICAgYWN0aXZpdHkuaXNOZXcgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgX2dldEFjdGl2aXRpZXMoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAoIXRoaXMua2V5KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuYWN0aXZpdGllcyA9IGF3YWl0IHRoaXMuc2hhcmVkU2VydmljZS5nZXRBY3Rpdml0aWVzKHRoaXMudGFibGUsIHRoaXMua2V5LnRvU3RyaW5nKCkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBfZ2V0VGFncygpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMuYWxsVGFncyA9IGF3YWl0IHRoaXMuc2hhcmVkU2VydmljZS5nZXRUYWdzRnVsbFRyZWUoVGFnQ2F0ZWdvcnkudGFza3MsIHRydWUpO1xyXG5cclxuICAgIC8qaWYgKCF0aGlzLmtleSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmVkaXRpbmdUYWdzID0gYXdhaXQgdGhpcy5zaGFyZWRTZXJ2aWNlLmdldEpvaW5lZFRhZ3ModGhpcy50YWJsZSwgdGhpcy5rZXkudG9TdHJpbmcoKSk7XHJcbiAgICB9Ki8vKmlmICghdGhpcy5rZXkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5lZGl0aW5nVGFncyA9IGF3YWl0IHRoaXMuc2hhcmVkU2VydmljZS5nZXRKb2luZWRUYWdzKHRoaXMudGFibGUsIHRoaXMua2V5LnRvU3RyaW5nKCkpO1xyXG4gICAgfSovXHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
|
|
@@ -74,7 +74,7 @@ export class RoleEmailSelectorComponent {
|
|
|
74
74
|
}
|
|
75
75
|
removeOptionFromModel(email) {
|
|
76
76
|
if (this.model.indexOf(email) > -1) {
|
|
77
|
-
this.model.splice(
|
|
77
|
+
this.model.splice(this.model.indexOf(email), 1);
|
|
78
78
|
}
|
|
79
79
|
}
|
|
80
80
|
}
|
|
@@ -87,7 +87,7 @@ RoleEmailSelectorComponent.decorators = [
|
|
|
87
87
|
(modelChange)="roleChosen($event)">
|
|
88
88
|
</co-list-of-values>
|
|
89
89
|
<co-input-text #inp [placeholder]="extraLabel | localize"
|
|
90
|
-
[rightIconData]="iconService.getIcon(icons.
|
|
90
|
+
[rightIconData]="iconService.getIcon(icons.CheckSolid)"
|
|
91
91
|
(rightIconClick)="addEmail(inp.model)"></co-input-text>
|
|
92
92
|
|
|
93
93
|
<div class="chips-wrapper">
|
|
@@ -113,4 +113,4 @@ RoleEmailSelectorComponent.propDecorators = {
|
|
|
113
113
|
modelChange: [{ type: Output }],
|
|
114
114
|
showClass: [{ type: HostBinding, args: ["class.co-role-email-selector",] }]
|
|
115
115
|
};
|
|
116
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
116
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZS1lbWFpbC1zZWxlY3Rvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWRjb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9yb2xlLWVtYWlsLXNlbGVjdG9yL3JvbGUtZW1haWwtc2VsZWN0b3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUNyRyxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDMUMsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFHbEUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzNELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxrREFBa0QsQ0FBQztBQXNCN0UsTUFBTSxPQUFPLDBCQUEwQjtJQW9EckMsWUFBbUIsV0FBNkIsRUFDN0IsYUFBNEI7UUFENUIsZ0JBQVcsR0FBWCxXQUFXLENBQWtCO1FBQzdCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBcEQvQixVQUFLLEdBQWdCLElBQUksQ0FBQztRQUduQyxtQkFBYyxHQUFXLFlBQVksQ0FBQztRQUd0QyxlQUFVLEdBQVcsdUJBQXVCLENBQUU7UUFnQ3JDLGdCQUFXLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFFbEUsNEJBQXVCLEdBQXVCLEVBQUUsQ0FBQztRQUVoRCxXQUFNLEdBQWEsRUFBRSxDQUFDO0lBWTlCLENBQUM7SUE5Q0QsSUFDVyxLQUFLLENBQUMsS0FBZTtRQUM5QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBVyxLQUFLO1FBQ2QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JC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SztrQkFTTCxLQUFLO21DQVVMLEtBQUs7MEJBVUwsTUFBTTt3QkFTTixXQUFXLFNBQUMsOEJBQThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0ljb259IGZyb20gXCIuLi8uLi9lbnVtL2ljb24uZW51bVwiO1xyXG5pbXBvcnQge0ljb25DYWNoZVNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL2ljb24tY2FjaGUuc2VydmljZVwiO1xyXG5pbXBvcnQge1dvcmtmbG93Q2F0ZWdvcnlUeXBlfSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvZW51bS93b3JrZmxvdy1jYXRlZ29yeS5lbnVtXCI7XHJcbmltcG9ydCB7Um9sZUVtYWlsYWRkcmVzc30gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3JvbGUtZW1haWwtYWRkcmVzc1wiO1xyXG5pbXBvcnQge1NoYXJlZFNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL3NoYXJlZC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7U3RyaW5nVXRpbHN9IGZyb20gXCJAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC91dGlscy9zdHJpbmctdXRpbHNcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwiY28tcm9sZS1lbWFpbC1zZWxlY3RvclwiLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuICAgICAgPGNvLWxpc3Qtb2YtdmFsdWVzIFttdWx0aXNlbGVjdF09XCJmYWxzZVwiIFtsYWJlbF09XCJyZWNpcGllbnRMYWJlbCB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtjb2xsZWN0aW9uXT1cImVtYWlsQWRkcmVzc2VzQXZhaWxhYmxlXCIgW2Rpc3BsYXlGaWVsZF09XCIncm9sZSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cInJvbGVDaG9zZW4oJGV2ZW50KVwiPlxyXG4gICAgICA8L2NvLWxpc3Qtb2YtdmFsdWVzPlxyXG4gICAgICA8Y28taW5wdXQtdGV4dCAjaW5wIFtwbGFjZWhvbGRlcl09XCJleHRyYUxhYmVsIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbcmlnaHRJY29uRGF0YV09XCJpY29uU2VydmljZS5nZXRJY29uKGljb25zLkNoZWNrU29saWQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgKHJpZ2h0SWNvbkNsaWNrKT1cImFkZEVtYWlsKGlucC5tb2RlbClcIj48L2NvLWlucHV0LXRleHQ+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY2hpcHMtd3JhcHBlclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjaGlwc1wiICpuZ0Zvcj1cImxldCBlbWFpbCBvZiBtb2RlbFwiPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGlwcy1kZXNjcmlwdGlvblwiIFt0ZXh0Q29udGVudF09XCJlbWFpbFwiPjwvc3Bhbj5cclxuICAgICAgICAgIDxjby1pY29uIGNsYXNzPVwicmVtb3ZlLWNoaXAtaWNvblwiIFtpY29uRGF0YV09XCJpY29uU2VydmljZS5nZXRJY29uKGljb25zLkNyb3NzU2tpbm55KVwiIChjbGljayk9XCJyZW1vdmVPcHRpb25Gcm9tTW9kZWwoZW1haWwpXCI+PC9jby1pY29uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICBgLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUm9sZUVtYWlsU2VsZWN0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXR7XHJcbiAgcHVibGljIHJlYWRvbmx5IGljb25zOiB0eXBlb2YgSWNvbiA9IEljb247XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHJlY2lwaWVudExhYmVsOiBzdHJpbmcgPSAnUkVDSVBJRU5UUyc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGV4dHJhTGFiZWw6IHN0cmluZyA9ICdFWFRSQV9FTUFJTF9BRERSRVNTRVMnIDtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IG1vZGVsKHZhbHVlOiBzdHJpbmdbXSkge1xyXG4gICAgdGhpcy5fbW9kZWwgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgbW9kZWwoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fbW9kZWw7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQga2V5KHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX2tleSA9IHZhbHVlO1xyXG4gICAgdGhpcy5mZXRjaFJvbGVFbWFpbEFkZHJlc3NlcygpO1xyXG4gIH07XHJcblxyXG4gIHB1YmxpYyBnZXQga2V5KCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fa2V5O1xyXG4gIH07XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCB3b3JrZmxvd0NhdGVnb3J5VHlwZSh2YWx1ZTogV29ya2Zsb3dDYXRlZ29yeVR5cGUpIHtcclxuICAgIHRoaXMuX3dvcmtmbG93Q2F0ZWdvcnlUeXBlID0gdmFsdWU7XHJcbiAgICB0aGlzLmZldGNoUm9sZUVtYWlsQWRkcmVzc2VzKCk7XHJcbiAgfTtcclxuXHJcbiAgcHVibGljIGdldCB3b3JrZmxvd0NhdGVnb3J5VHlwZSgpOiBXb3JrZmxvd0NhdGVnb3J5VHlwZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fd29ya2Zsb3dDYXRlZ29yeVR5cGU7XHJcbiAgfTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHJlYWRvbmx5IG1vZGVsQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBwdWJsaWMgZW1haWxBZGRyZXNzZXNBdmFpbGFibGU6IFJvbGVFbWFpbGFkZHJlc3NbXSA9IFtdO1xyXG5cclxuICBwcml2YXRlIF9tb2RlbDogc3RyaW5nW10gPSBbXTtcclxuICBwcml2YXRlIF9rZXk6IHN0cmluZztcclxuICBwcml2YXRlIF93b3JrZmxvd0NhdGVnb3J5VHlwZTogV29ya2Zsb3dDYXRlZ29yeVR5cGU7XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmNvLXJvbGUtZW1haWwtc2VsZWN0b3JcIilcclxuICBwdWJsaWMgc2hvd0NsYXNzKCkge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgaWNvblNlcnZpY2U6IEljb25DYWNoZVNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHVibGljIHNoYXJlZFNlcnZpY2U6IFNoYXJlZFNlcnZpY2VcclxuICApIHtcclxuICB9XHJcblxyXG4gIGFzeW5jIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5mZXRjaFJvbGVFbWFpbEFkZHJlc3NlcygpXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZmV0Y2hSb2xlRW1haWxBZGRyZXNzZXMoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZih0aGlzLndvcmtmbG93Q2F0ZWdvcnlUeXBlICE9PSB1bmRlZmluZWQgJiYgdGhpcy5rZXkgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLmVtYWlsQWRkcmVzc2VzQXZhaWxhYmxlID0gYXdhaXQgdGhpcy5zaGFyZWRTZXJ2aWNlLmdldFJvbGVFbWFpbEFkZHJlc3Nlc0J5V29ya2Zsb3dDYXRlZ29yeUFuZEtleSh0aGlzLl93b3JrZmxvd0NhdGVnb3J5VHlwZSwgdGhpcy5fa2V5KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyByb2xlQ2hvc2VuKHJvbGU6IFJvbGVFbWFpbGFkZHJlc3MpOiB2b2lkIHtcclxuICAgIGlmICghcm9sZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBsZW46IG51bWJlciA9IHJvbGUuZW1haWxBZGRyZXNzZXMubGVuZ3RoO1xyXG4gICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IGxlbjsgaSsrKSB7XHJcbiAgICAgIGlmICh0aGlzLm1vZGVsLmluZGV4T2Yocm9sZS5lbWFpbEFkZHJlc3Nlc1tpXSkgPT09IC0xICYmIFN0cmluZ1V0aWxzLklzVmFsaWRFbWFpbChyb2xlLmVtYWlsQWRkcmVzc2VzW2ldKSkge1xyXG4gICAgICAgIHRoaXMubW9kZWwucHVzaChyb2xlLmVtYWlsQWRkcmVzc2VzW2ldKTtcclxuICAgICAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQodGhpcy5tb2RlbCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhZGRFbWFpbChlbWFpbDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5tb2RlbC5pbmRleE9mKGVtYWlsKSA9PT0gLTEgJiYgU3RyaW5nVXRpbHMuSXNWYWxpZEVtYWlsKGVtYWlsKSkge1xyXG4gICAgICAgIHRoaXMubW9kZWwucHVzaChlbWFpbCk7XHJcbiAgICAgICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KHRoaXMubW9kZWwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlbW92ZU9wdGlvbkZyb21Nb2RlbChlbWFpbDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5tb2RlbC5pbmRleE9mKGVtYWlsKSA+IC0xKSB7XHJcbiAgICAgIHRoaXMubW9kZWwuc3BsaWNlKHRoaXMubW9kZWwuaW5kZXhPZihlbWFpbCksIDEpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -32,10 +32,13 @@ export class TaskCreatorComponent {
|
|
|
32
32
|
];
|
|
33
33
|
this.showFilesDialog = false;
|
|
34
34
|
this.documents = [];
|
|
35
|
+
this.oldDocuments = [];
|
|
35
36
|
this.showEmailDialog = false;
|
|
36
37
|
this.senderAddress = '';
|
|
37
38
|
this.emailAddresses = [];
|
|
38
39
|
this.bccEmailAddresses = [];
|
|
40
|
+
this.oldEmailAddresses = [];
|
|
41
|
+
this.oldBccEmailAddresses = [];
|
|
39
42
|
this.emailRequest = null;
|
|
40
43
|
this.remarkText = "";
|
|
41
44
|
this.workDescription = "";
|
|
@@ -54,6 +57,17 @@ export class TaskCreatorComponent {
|
|
|
54
57
|
itemSelected(item) {
|
|
55
58
|
this.chosenActivityType = item;
|
|
56
59
|
}
|
|
60
|
+
openAttachmentDialog() {
|
|
61
|
+
this.oldDocuments = this.documents.slice();
|
|
62
|
+
this.showFilesDialog = true;
|
|
63
|
+
}
|
|
64
|
+
attachmentDialogClosed() {
|
|
65
|
+
this.showFilesDialog = false;
|
|
66
|
+
}
|
|
67
|
+
attachmentDialogCancelled() {
|
|
68
|
+
this.documents = this.oldDocuments.slice();
|
|
69
|
+
this.showFilesDialog = false;
|
|
70
|
+
}
|
|
57
71
|
addedDocument(docs) {
|
|
58
72
|
return __awaiter(this, void 0, void 0, function* () {
|
|
59
73
|
this.documents = this.documents.concat(docs);
|
|
@@ -64,20 +78,10 @@ export class TaskCreatorComponent {
|
|
|
64
78
|
ArrayUtils.RemoveElement(doc, this.documents);
|
|
65
79
|
});
|
|
66
80
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
let remark = this.createRemark();
|
|
72
|
-
let activity = new Activity();
|
|
73
|
-
activity.activityType = ActivityType.Remark;
|
|
74
|
-
activity.remark = remark;
|
|
75
|
-
this.createdRemark = yield this.sharedService.insertRemark(activity);
|
|
76
|
-
if (this.createdRemark) {
|
|
77
|
-
this.handleAfterCreation();
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
});
|
|
81
|
+
openEmailDialog() {
|
|
82
|
+
this.showEmailDialog = true;
|
|
83
|
+
this.oldEmailAddresses = this.emailAddresses.slice();
|
|
84
|
+
this.oldBccEmailAddresses = this.bccEmailAddresses.slice();
|
|
81
85
|
}
|
|
82
86
|
emailDialogClosed() {
|
|
83
87
|
if (this.emailAddresses.length >= 0) {
|
|
@@ -93,6 +97,26 @@ export class TaskCreatorComponent {
|
|
|
93
97
|
}
|
|
94
98
|
this.showEmailDialog = false;
|
|
95
99
|
}
|
|
100
|
+
emailDialogCancelled() {
|
|
101
|
+
this.emailAddresses = this.oldEmailAddresses.slice();
|
|
102
|
+
this.bccEmailAddresses = this.oldBccEmailAddresses.slice();
|
|
103
|
+
this.showEmailDialog = false;
|
|
104
|
+
}
|
|
105
|
+
createRemarkClicked() {
|
|
106
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
107
|
+
this._formMasterService.submitSlaves();
|
|
108
|
+
if (this.createForm.isValid()) {
|
|
109
|
+
let remark = this.createRemark();
|
|
110
|
+
let activity = new Activity();
|
|
111
|
+
activity.activityType = ActivityType.Remark;
|
|
112
|
+
activity.remark = remark;
|
|
113
|
+
this.createdRemark = yield this.sharedService.insertRemark(activity);
|
|
114
|
+
if (this.createdRemark) {
|
|
115
|
+
yield this.handleAfterCreation();
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
}
|
|
96
120
|
createWorkClicked() {
|
|
97
121
|
return __awaiter(this, void 0, void 0, function* () {
|
|
98
122
|
this._formMasterService.submitSlaves();
|
|
@@ -103,9 +127,7 @@ export class TaskCreatorComponent {
|
|
|
103
127
|
activity.work = work;
|
|
104
128
|
this.createdWork = yield this.sharedService.insertWork(activity);
|
|
105
129
|
if (this.createdWork) {
|
|
106
|
-
this.
|
|
107
|
-
yield this.sendEmailIfNeccesary();
|
|
108
|
-
this.clearFields();
|
|
130
|
+
yield this.handleAfterCreation();
|
|
109
131
|
}
|
|
110
132
|
}
|
|
111
133
|
});
|
|
@@ -120,9 +142,7 @@ export class TaskCreatorComponent {
|
|
|
120
142
|
activity.task = task;
|
|
121
143
|
this.createdTask = yield this.sharedService.insertTask(activity);
|
|
122
144
|
if (this.createdTask) {
|
|
123
|
-
this.
|
|
124
|
-
yield this.sendEmailIfNeccesary();
|
|
125
|
-
this.clearFields();
|
|
145
|
+
yield this.handleAfterCreation();
|
|
126
146
|
}
|
|
127
147
|
}
|
|
128
148
|
});
|
|
@@ -215,7 +235,7 @@ export class TaskCreatorComponent {
|
|
|
215
235
|
}
|
|
216
236
|
startEmailing(template) {
|
|
217
237
|
return __awaiter(this, void 0, void 0, function* () {
|
|
218
|
-
const emailsSent = yield this.sharedService.emailViaTemplate(template, this.createEmailAddressString(this.emailAddresses), this.createEmailAddressString(this.bccEmailAddresses), this.senderAddress, this.createEmailSubject(), "",
|
|
238
|
+
const emailsSent = yield this.sharedService.emailViaTemplate(template, this.createEmailAddressString(this.emailAddresses), this.createEmailAddressString(this.bccEmailAddresses), this.senderAddress, this.createEmailSubject(), "", [], this.createEmailParams());
|
|
219
239
|
if (emailsSent) {
|
|
220
240
|
let history = new ActivityEmailHistory();
|
|
221
241
|
history.emailAddresses = this.createEmailAddressString(this.emailAddresses);
|
|
@@ -233,15 +253,6 @@ export class TaskCreatorComponent {
|
|
|
233
253
|
}
|
|
234
254
|
});
|
|
235
255
|
}
|
|
236
|
-
registerSentEmails() {
|
|
237
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
238
|
-
let history = new ActivityEmailHistory();
|
|
239
|
-
history.emailAddresses = this.createEmailAddressString(this.emailAddresses) + ';' + this.createEmailAddressString(this.bccEmailAddresses);
|
|
240
|
-
//history.attachments = this.createAttachmentsStringArray();
|
|
241
|
-
history.message = '';
|
|
242
|
-
history.emailDateTime = new Date();
|
|
243
|
-
});
|
|
244
|
-
}
|
|
245
256
|
createEmailAddressString(addresses) {
|
|
246
257
|
if (addresses.length === 0) {
|
|
247
258
|
return '';
|
|
@@ -330,16 +341,47 @@ TaskCreatorComponent.decorators = [
|
|
|
330
341
|
</div>
|
|
331
342
|
</co-form>
|
|
332
343
|
<div class="extras-buttons">
|
|
333
|
-
<co-button [iconData]="iconService.getIcon(icons.EmailRegular)" (click)="
|
|
334
|
-
<co-button [iconData]="iconService.getIcon(icons.PaperclipRegular)" (click)="
|
|
344
|
+
<co-button [iconData]="iconService.getIcon(icons.EmailRegular)" (click)="openEmailDialog()"></co-button>
|
|
345
|
+
<co-button [iconData]="iconService.getIcon(icons.PaperclipRegular)" (click)="openAttachmentDialog()"
|
|
335
346
|
[label]="documents.length === 0 ? '' : documents.length.toString()" ></co-button>
|
|
336
347
|
</div>
|
|
337
348
|
|
|
338
|
-
<co-dialog *ngIf="showFilesDialog" (closeClick)="
|
|
349
|
+
<co-dialog *ngIf="showFilesDialog" (closeClick)="attachmentDialogCancelled()"
|
|
350
|
+
[headerTemplate]="attachmentHeaderTemplate"
|
|
351
|
+
[footerTemplate]="attachmentFooterTemplate">
|
|
352
|
+
|
|
353
|
+
<ng-template #attachmentHeaderTemplate>
|
|
354
|
+
<div class="co-dialog-wrapper-popup-title">
|
|
355
|
+
<co-icon [iconData]="iconService.getIcon(icons.PaperclipRegular)"></co-icon>
|
|
356
|
+
<div class="co-dialog-header-title" [textContent]="'ATTACHMENTS' | localize"></div>
|
|
357
|
+
</div>
|
|
358
|
+
</ng-template>
|
|
339
359
|
<co-files-upload (documentsAdded)="addedDocument($event)" (documentDeleted)="deletedDocument"
|
|
340
360
|
[documents]="documents" [useWithoutSettingProps]="true"></co-files-upload>
|
|
341
361
|
</co-dialog>
|
|
342
|
-
|
|
362
|
+
|
|
363
|
+
|
|
364
|
+
<ng-template #attachmentFooterTemplate>
|
|
365
|
+
<div class="co-dialog-footer-button-wrapper">
|
|
366
|
+
<co-button class="save-button"
|
|
367
|
+
[iconData]="iconService.getIcon(icons.CheckDuotone)"
|
|
368
|
+
(click)="attachmentDialogClosed()"></co-button>
|
|
369
|
+
<co-button class="close-button"
|
|
370
|
+
[iconData]="iconService.getIcon(icons.CrossSkinny)"
|
|
371
|
+
(click)="attachmentDialogCancelled()"></co-button>
|
|
372
|
+
</div>
|
|
373
|
+
</ng-template>
|
|
374
|
+
|
|
375
|
+
|
|
376
|
+
<co-dialog *ngIf="showEmailDialog" (closeClick)="emailDialogClosed()"
|
|
377
|
+
[footerTemplate]="emailFooterTemplate"
|
|
378
|
+
[headerTemplate]="emailheaderTemplate">
|
|
379
|
+
<ng-template #emailheaderTemplate>
|
|
380
|
+
<div class="co-dialog-wrapper-popup-title">
|
|
381
|
+
<co-icon [iconData]="iconService.getIcon(icons.EmailRegular)"></co-icon>
|
|
382
|
+
<div class="co-dialog-header-title" [textContent]="'SEND_EMAIL' | localize"></div>
|
|
383
|
+
</div>
|
|
384
|
+
</ng-template>
|
|
343
385
|
<co-role-email-selector [(model)]="emailAddresses" [key]="remarkAndWorkKey" [workflowCategoryType]="workflowCategoryType"></co-role-email-selector>
|
|
344
386
|
<co-role-email-selector [(model)]="bccEmailAddresses" [key]="remarkAndWorkKey" [workflowCategoryType]="workflowCategoryType" [recipientLabel]="'BCC_RECIPIENT'" [extraLabel]="'BCC_EXTRA_EMAIL_ADDRESSES'"></co-role-email-selector>
|
|
345
387
|
<!--TODO: reimplement once we have the backend functionality for this-->
|
|
@@ -347,14 +389,14 @@ TaskCreatorComponent.decorators = [
|
|
|
347
389
|
|
|
348
390
|
</co-dialog>
|
|
349
391
|
|
|
350
|
-
<ng-template #
|
|
392
|
+
<ng-template #emailFooterTemplate>
|
|
351
393
|
<div class="co-dialog-footer-button-wrapper">
|
|
352
394
|
<co-button class="save-button"
|
|
353
395
|
[iconData]="iconService.getIcon(icons.CheckDuotone)"
|
|
354
396
|
(click)="emailDialogClosed()"></co-button>
|
|
355
397
|
<co-button class="close-button"
|
|
356
398
|
[iconData]="iconService.getIcon(icons.CrossSkinny)"
|
|
357
|
-
(click)="
|
|
399
|
+
(click)="emailDialogCancelled()"></co-button>
|
|
358
400
|
</div>
|
|
359
401
|
</ng-template>
|
|
360
402
|
`,
|
|
@@ -381,4 +423,4 @@ TaskCreatorComponent.propDecorators = {
|
|
|
381
423
|
activityCreated: [{ type: Output }],
|
|
382
424
|
showClass: [{ type: HostBinding, args: ["class.co-task-creator",] }]
|
|
383
425
|
};
|
|
384
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1jcmVhdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZGNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3Rhc2stY3JlYXRvci90YXNrLWNyZWF0b3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDckcsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzFDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xFLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFDeEUsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBRS9ELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUN2RSxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDM0QsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBRzNELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUVuRCxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUNuRyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLCtDQUErQyxDQUFDO0FBRXpFLE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUVqRyxPQUFPLEVBQUMsaUJB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dEJpbmRpbmcsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0ljb259IGZyb20gXCIuLi8uLi9lbnVtL2ljb24uZW51bVwiO1xyXG5pbXBvcnQge0ljb25DYWNoZVNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL2ljb24tY2FjaGUuc2VydmljZVwiO1xyXG5pbXBvcnQge0FjdGl2aXR5fSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvYWN0aXZpdHkuYm9cIjtcclxuaW1wb3J0IHtBY3Rpdml0eVR5cGV9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9lbnVtL2FjdGl2aXR5LXR5cGVcIjtcclxuaW1wb3J0IHtSZW1hcmt9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9yZW1hcmsuYm9cIjtcclxuaW1wb3J0IHtSZWxhdGlvblNtYWxsT2JqZWN0fSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvcmVsYXRpb24tc21hbGwtb2JqZWN0LmJvXCI7XHJcbmltcG9ydCB7VGFibGVOYW1lfSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvZW51bS90YWJsZS1uYW1lLmVudW1cIjtcclxuaW1wb3J0IHtXb3JrfSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvd29yay5ib1wiO1xyXG5pbXBvcnQge1Rhc2t9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC90YXNrLmJvXCI7XHJcbmltcG9ydCB7V29ya2Zsb3dDYXRlZ29yeVR5cGV9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9lbnVtL3dvcmtmbG93LWNhdGVnb3J5LmVudW1cIjtcclxuaW1wb3J0IHtDb0RvY3VtZW50fSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvY28tZG9jdW1lbnRcIjtcclxuaW1wb3J0IHtBcnJheVV0aWxzfSBmcm9tIFwiLi4vLi4vdXRpbHMvYXJyYXktdXRpbHNcIjtcclxuaW1wb3J0IHtSb2xlRW1haWxhZGRyZXNzfSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvcm9sZS1lbWFpbC1hZGRyZXNzXCI7XHJcbmltcG9ydCB7YWN0aXZpdHlFbWFpbFJlcXVlc3REYXRhfSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvYWN0aXZpdHktZW1haWwtcmVxdWVzdC1kYXRhXCI7XHJcbmltcG9ydCB7U2hhcmVkU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2Uvc2hhcmVkLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtSZXBvcnRUeXBlfSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvZW51bS9yZXBvcnQtdHlwZS5lbnVtXCI7XHJcbmltcG9ydCB7UmVwb3J0fSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvcmVwb3J0LmJvXCI7XHJcbmltcG9ydCB7Q29yZURpYWxvZ1NlcnZpY2UsIEZvcm1Db21wb25lbnQsIEZvcm1NYXN0ZXJTZXJ2aWNlfSBmcm9tIFwiQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMlwiO1xyXG5pbXBvcnQge0ljb25MaXN0SXRlbX0gZnJvbSBcIkBjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTIvbGliL21vZGVsL2ljb24tbGlzdC1pdGVtXCI7XHJcbmltcG9ydCB7RGljdGlvbmFyeVNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL2RpY3Rpb25hcnkuc2VydmljZVwiO1xyXG5pbXBvcnQge0FjdGl2aXR5RW1haWxIaXN0b3J5fSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvYWN0aXZpdHktZW1haWwtaGlzdG9yeS5ib1wiO1xyXG5pbXBvcnQge0NvRW1haWxBdHRhY2htZW50fSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvY28tZW1haWwtYXR0YWNobWVudC5ib1wiO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwiY28tdGFzay1jcmVhdG9yXCIsXHJcbiAgICB0ZW1wbGF0ZTogYFxyXG4gICAgICA8Y28tZm9ybSAjY3JlYXRlRm9ybSBjbGFzcz1cImlucHV0LWZpZWxkc1wiPlxyXG4gICAgICAgIDxjby1saXN0LW9mLWljb25zIFtjb2xsZWN0aW9uXT1cIm9wdGlvbkNvbGxlY3Rpb25cIiAoaXRlbVNlbGVjdGVkKT1cIml0ZW1TZWxlY3RlZCgkZXZlbnQpXCI+PC9jby1saXN0LW9mLWljb25zPlxyXG4gICAgICAgIDxjby1pbnB1dC10ZXh0ICpuZ0lmPVwiY2hvc2VuQWN0aXZpdHlUeXBlID09PSBvcHRpb25Db2xsZWN0aW9uWzBdXCIgW3JlcXVpcmVkXT1cImNob3NlbkFjdGl2aXR5VHlwZSA9PT0gb3B0aW9uQ29sbGVjdGlvblswXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidSRU1BUksnIHwgbG9jYWxpemVcIiBbKG1vZGVsKV09XCJyZW1hcmtUZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbcmlnaHRJY29uRGF0YV09XCJpY29uU2VydmljZS5nZXRJY29uKGljb25zLlBhcGVyUGxhbmVUb3BTb2xpZClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIChyaWdodEljb25DbGljayk9XCJjcmVhdGVSZW1hcmtDbGlja2VkKClcIj48L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgICAgPGNvLWlucHV0LXRleHQgKm5nSWY9XCJjaG9zZW5BY3Rpdml0eVR5cGUgPT09IG9wdGlvbkNvbGxlY3Rpb25bMV1cIiBbcmVxdWlyZWRdPVwiY2hvc2VuQWN0aXZpdHlUeXBlID09PSBvcHRpb25Db2xsZWN0aW9uWzFdXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0RFU0NSSVBUSU9OJyB8IGxvY2FsaXplXCIgWyhtb2RlbCldPVwid29ya0Rlc2NyaXB0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbcmlnaHRJY29uRGF0YV09XCJpY29uU2VydmljZS5nZXRJY29uKGljb25zLlBhcGVyUGxhbmVUb3BTb2xpZClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIChyaWdodEljb25DbGljayk9XCJjcmVhdGVXb3JrQ2xpY2tlZCgpXCI+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0YXNrLWlucHV0LWZpZWxkc1wiICpuZ0lmPVwiY2hvc2VuQWN0aXZpdHlUeXBlID09PSBvcHRpb25Db2xsZWN0aW9uWzJdXCI+XHJcbiAgICAgICAgICA8Y28taW5wdXQtdGV4dCBbKG1vZGVsKV09XCJ0YXNrTmFtZVwiIFtwbGFjZWhvbGRlcl09XCInTkFNRScgfCBsb2NhbGl6ZVwiICBbcmVxdWlyZWRdPVwiY2hvc2VuQWN0aXZpdHlUeXBlID09PSBvcHRpb25Db2xsZWN0aW9uWzJdXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtyaWdodEljb25EYXRhXT1cImljb25TZXJ2aWNlLmdldEljb24oaWNvbnMuUGFwZXJQbGFuZVRvcFNvbGlkKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAocmlnaHRJY29uQ2xpY2spPVwiY3JlYXRlVGFza0NsaWNrZWQoKVwiPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICAgIDxjby1pbnB1dC10ZXh0IFsobW9kZWwpXT1cInRhc2tEZXNjcmlwdGlvblwiIFtwbGFjZWhvbGRlcl09XCInREVTQ1JJUFRJT04nIHwgbG9jYWxpemVcIiBbcmVxdWlyZWRdPVwiY2hvc2VuQWN0aXZpdHlUeXBlID09PSBvcHRpb25Db2xsZWN0aW9uWzJdXCI+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2NvLWZvcm0+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJleHRyYXMtYnV0dG9uc1wiPlxyXG4gICAgICAgIDxjby1idXR0b24gW2ljb25EYXRhXT1cImljb25TZXJ2aWNlLmdldEljb24oaWNvbnMuRW1haWxSZWd1bGFyKVwiICAoY2xpY2spPVwic2hvd0VtYWlsRGlhbG9nID0gdHJ1ZVwiPjwvY28tYnV0dG9uPlxyXG4gICAgICAgIDxjby1idXR0b24gW2ljb25EYXRhXT1cImljb25TZXJ2aWNlLmdldEljb24oaWNvbnMuUGFwZXJjbGlwUmVndWxhcilcIiAgKGNsaWNrKT1cInNob3dGaWxlc0RpYWxvZyA9IHRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cImRvY3VtZW50cy5sZW5ndGggPT09IDAgPyAnJyA6IGRvY3VtZW50cy5sZW5ndGgudG9TdHJpbmcoKVwiID48L2NvLWJ1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8Y28tZGlhbG9nICpuZ0lmPVwic2hvd0ZpbGVzRGlhbG9nXCIgKGNsb3NlQ2xpY2spPVwic2hvd0ZpbGVzRGlhbG9nID0gZmFsc2VcIj5cclxuICAgICAgICA8Y28tZmlsZXMtdXBsb2FkIChkb2N1bWVudHNBZGRlZCk9XCJhZGRlZERvY3VtZW50KCRldmVudClcIiAoZG9jdW1lbnREZWxldGVkKT1cImRlbGV0ZWREb2N1bWVudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbZG9jdW1lbnRzXT1cImRvY3VtZW50c1wiIFt1c2VXaXRob3V0U2V0dGluZ1Byb3BzXT1cInRydWVcIj48L2NvLWZpbGVzLXVwbG9hZD5cclxuICAgICAgPC9jby1kaWFsb2c+XHJcbiAgICAgIDxjby1kaWFsb2cgKm5nSWY9XCJzaG93RW1haWxEaWFsb2dcIiAoY2xvc2VDbGljayk9XCJlbWFpbERpYWxvZ0Nsb3NlZCgpXCIgW2Zvb3RlclRlbXBsYXRlXT1cImZvb3RlclRlbXBsYXRlXCI+XHJcbiAgICAgICAgPGNvLXJvbGUtZW1haWwtc2VsZWN0b3IgWyhtb2RlbCldPVwiZW1haWxBZGRyZXNzZXNcIiBba2V5XT1cInJlbWFya0FuZFdvcmtLZXlcIiBbd29ya2Zsb3dDYXRlZ29yeVR5cGVdPVwid29ya2Zsb3dDYXRlZ29yeVR5cGVcIj48L2NvLXJvbGUtZW1haWwtc2VsZWN0b3I+XHJcbiAgICAgICAgPGNvLXJvbGUtZW1haWwtc2VsZWN0b3IgWyhtb2RlbCldPVwiYmNjRW1haWxBZGRyZXNzZXNcIiBba2V5XT1cInJlbWFya0FuZFdvcmtLZXlcIiBbd29ya2Zsb3dDYXRlZ29yeVR5cGVdPVwid29ya2Zsb3dDYXRlZ29yeVR5cGVcIiBbcmVjaXBpZW50TGFiZWxdPVwiJ0JDQ19SRUNJUElFTlQnXCIgW2V4dHJhTGFiZWxdPVwiJ0JDQ19FWFRSQV9FTUFJTF9BRERSRVNTRVMnXCI+PC9jby1yb2xlLWVtYWlsLXNlbGVjdG9yPlxyXG4gICAgICAgIDwhLS1UT0RPOiByZWltcGxlbWVudCBvbmNlIHdlIGhhdmUgdGhlIGJhY2tlbmQgZnVuY3Rpb25hbGl0eSBmb3IgdGhpcy0tPlxyXG4gICAgICAgPCEtLTxjby1pbnB1dC10ZXh0IFtyZWFkb25seV09XCJmYWxzZVwiIFtsYWJlbF09XCInU0VOREVSJyB8IGxvY2FsaXplXCIgWyhtb2RlbCldPVwic2VuZGVyQWRkcmVzc1wiPjwvY28taW5wdXQtdGV4dD4tLT5cclxuXHJcbiAgICAgIDwvY28tZGlhbG9nPlxyXG5cclxuICAgICAgPG5nLXRlbXBsYXRlICNmb290ZXJUZW1wbGF0ZT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY28tZGlhbG9nLWZvb3Rlci1idXR0b24td3JhcHBlclwiPlxyXG4gICAgICAgICAgPGNvLWJ1dHRvbiBjbGFzcz1cInNhdmUtYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgW2ljb25EYXRhXT1cImljb25TZXJ2aWNlLmdldEljb24oaWNvbnMuQ2hlY2tEdW90b25lKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJlbWFpbERpYWxvZ0Nsb3NlZCgpXCI+PC9jby1idXR0b24+XHJcbiAgICAgICAgICA8Y28tYnV0dG9uIGNsYXNzPVwiY2xvc2UtYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgW2ljb25EYXRhXT1cImljb25TZXJ2aWNlLmdldEljb24oaWNvbnMuQ3Jvc3NTa2lubnkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImVtYWlsRGlhbG9nQ2xvc2VkKClcIj48L2NvLWJ1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIGAsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBGb3JtTWFzdGVyU2VydmljZVxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYXNrQ3JlYXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdHtcclxuICBwdWJsaWMgcmVhZG9ubHkgaWNvbnM6IHR5cGVvZiBJY29uID0gSWNvbjtcclxuXHJcbiAgQFZpZXdDaGlsZChGb3JtQ29tcG9uZW50KVxyXG4gIHB1YmxpYyBjcmVhdGVGb3JtOiBGb3JtQ29tcG9uZW50O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBhdXRob3I6IFJlbGF0aW9uU21hbGxPYmplY3Q7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGJyYW5jaE5vOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHRhYmxlOiBUYWJsZU5hbWUgPSBUYWJsZU5hbWUuVHJhbnNhY3Rpb25zO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyByZW1hcmtBbmRXb3JrS2V5OiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHRhc2tLZXk6IHN0cmluZztcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgd29ya2Zsb3dDYXRlZ29yeVR5cGU6IFdvcmtmbG93Q2F0ZWdvcnlUeXBlO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgYWN0aXZpdHlDcmVhdGVkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmNvLXRhc2stY3JlYXRvclwiKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3MoKSB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvcHRpb25Db2xsZWN0aW9uOiBJY29uTGlzdEl0ZW1bXSA9IFtcclxuICAgIHsgaWNvbjogdGhpcy5pY29uU2VydmljZS5nZXRJY29uKHRoaXMuaWNvbnMuQ29tbWVudFJlZ3VsYXIpLGxhYmVsOiB0aGlzLmRpY3Rpb25hcnlTZXJ2aWNlLmdldCgnUkVNQVJLJywgdHJ1ZSkgfSxcclxuICAgIHsgaWNvbjogdGhpcy5pY29uU2VydmljZS5nZXRJY29uKHRoaXMuaWNvbnMuUGVyc29uRGlnZ2luZ1JlZ3VsYXIpLCBsYWJlbDogdGhpcy5kaWN0aW9uYXJ5U2VydmljZS5nZXQoJ1dPUksnLCB0cnVlKSB9LFxyXG4gICAgeyBpY29uOiB0aGlzLmljb25TZXJ2aWNlLmdldEljb24odGhpcy5pY29ucy5UYXNrKSwgbGFiZWw6IHRoaXMuZGljdGlvbmFyeVNlcnZpY2UuZ2V0KCdUQVNLJywgdHJ1ZSkgfSxcclxuICBdO1xyXG5cclxuICBwdWJsaWMgc2hvd0ZpbGVzRGlhbG9nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGRvY3VtZW50czogQ29Eb2N1bWVudFtdID0gW107XHJcblxyXG4gIHB1YmxpYyBzaG93RW1haWxEaWFsb2c6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2VuZGVyQWRkcmVzczogc3RyaW5nID0gJyc7XHJcbiAgcHVibGljIGVtYWlsQWRkcmVzc2VzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIHB1YmxpYyBiY2NFbWFpbEFkZHJlc3Nlczogc3RyaW5nW10gPSBbXTtcclxuICBwdWJsaWMgZW1haWxSZXF1ZXN0OiBhY3Rpdml0eUVtYWlsUmVxdWVzdERhdGEgPSBudWxsO1xyXG5cclxuICBwdWJsaWMgY3JlYXRlZFRhc2s6IFRhc2s7XHJcbiAgcHVibGljIGNyZWF0ZWRSZW1hcms6IFJlbWFyaztcclxuICBwdWJsaWMgY3JlYXRlZFdvcms6IFdvcms7XHJcbiAgcHVibGljIGNob3NlbkFjdGl2aXR5VHlwZTogSWNvbkxpc3RJdGVtO1xyXG5cclxuICBwdWJsaWMgcmVtYXJrVGV4dDogc3RyaW5nID0gXCJcIjtcclxuICBwdWJsaWMgd29ya0Rlc2NyaXB0aW9uOiBzdHJpbmcgPSBcIlwiO1xyXG4gIHB1YmxpYyB0YXNrTmFtZTogc3RyaW5nID0gXCJcIjtcclxuICBwdWJsaWMgdGFza0Rlc2NyaXB0aW9uOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgaWNvblNlcnZpY2U6IEljb25DYWNoZVNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHVibGljIGRpY3Rpb25hcnlTZXJ2aWNlOiBEaWN0aW9uYXJ5U2VydmljZSxcclxuICAgICAgICAgICAgICBwdWJsaWMgc2hhcmVkU2VydmljZTogU2hhcmVkU2VydmljZSxcclxuICAgICAgICAgICAgICBwcml2YXRlIF9kaWFsb2dTZXJ2aWNlOiBDb3JlRGlhbG9nU2VydmljZSxcclxuICAgICAgICAgICAgICBwcml2YXRlIF9mb3JtTWFzdGVyU2VydmljZTogRm9ybU1hc3RlclNlcnZpY2UsXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBhc3luYyBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuY2hvc2VuQWN0aXZpdHlUeXBlID0gdGhpcy5vcHRpb25Db2xsZWN0aW9uWzBdO1xyXG4gICAgdGhpcy5zZW5kZXJBZGRyZXNzID0gYXdhaXQgdGhpcy5zaGFyZWRTZXJ2aWNlLmdldEVtYWlsU2VuZGVyQnlXb3JrZmxvd0NhdGVnb3J5QW5kS2V5KCdTRVJWSUNFX09SREVSJywgdGhpcy5yZW1hcmtBbmRXb3JrS2V5KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpdGVtU2VsZWN0ZWQoaXRlbTogSWNvbkxpc3RJdGVtKTogdm9pZCB7XHJcbiAgICB0aGlzLmNob3NlbkFjdGl2aXR5VHlwZSA9IGl0ZW07XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgYWRkZWREb2N1bWVudChkb2NzOiBDb0RvY3VtZW50W10pOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMuZG9jdW1lbnRzID0gdGhpcy5kb2N1bWVudHMuY29uY2F0KGRvY3MpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGRlbGV0ZWREb2N1bWVudChkb2M6IENvRG9jdW1lbnQpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIEFycmF5VXRpbHMuUmVtb3ZlRWxlbWVudChkb2MsIHRoaXMuZG9jdW1lbnRzKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBjcmVhdGVSZW1hcmtDbGlja2VkKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy5fZm9ybU1hc3RlclNlcnZpY2Uuc3VibWl0U2xhdmVzKCk7XHJcbiAgICBpZiAodGhpcy5jcmVhdGVGb3JtLmlzVmFsaWQoKSkge1xyXG4gICAgICBsZXQgcmVtYXJrOiBSZW1hcmsgPSB0aGlzLmNyZWF0ZVJlbWFyaygpO1xyXG5cclxuICAgICAgbGV0IGFjdGl2aXR5OiBBY3Rpdml0eSA9IG5ldyBBY3Rpdml0eSgpO1xyXG4gICAgICBhY3Rpdml0eS5hY3Rpdml0eVR5cGUgPSBBY3Rpdml0eVR5cGUuUmVtYXJrO1xyXG4gICAgICBhY3Rpdml0eS5yZW1hcmsgPSByZW1hcms7XHJcblxyXG4gICAgICB0aGlzLmNyZWF0ZWRSZW1hcmsgPSBhd2FpdCB0aGlzLnNoYXJlZFNlcnZpY2UuaW5zZXJ0UmVtYXJrKGFjdGl2aXR5KTtcclxuICAgICAgaWYgKHRoaXMuY3JlYXRlZFJlbWFyaykge1xyXG4gICAgICAgIHRoaXMuaGFuZGxlQWZ0ZXJDcmVhdGlvbigpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZW1haWxEaWFsb2dDbG9zZWQoKTogdm9pZCB7XHJcbiAgICBpZih0aGlzLmVtYWlsQWRkcmVzc2VzLmxlbmd0aCA+PSAwKXtcclxuICAgICAgdGhpcy5lbWFpbFJlcXVlc3QgPSBuZXcgYWN0aXZpdHlFbWFpbFJlcXVlc3REYXRhO1xyXG4gICAgICB0aGlzLmVtYWlsUmVxdWVzdC50YWJsZSA9IHRoaXMudGFibGU7XHJcbiAgICAgIHRoaXMuZW1haWxSZXF1ZXN0LmtleSA9IHRoaXMucmVtYXJrQW5kV29ya0tleTtcclxuICAgICAgdGhpcy5lbWFpbFJlcXVlc3Quc2VuZGVyQWRkcmVzcyA9IHRoaXMuc2VuZGVyQWRkcmVzcztcclxuICAgICAgdGhpcy5lbWFpbFJlcXVlc3Quc2VuZEFkZHJlc3NlcyA9IHRoaXMuZW1haWxBZGRyZXNzZXM7XHJcbiAgICAgIHRoaXMuZW1haWxSZXF1ZXN0LmNjQWRkcmVzc2VzID0gdGhpcy5iY2NFbWFpbEFkZHJlc3NlcztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZW1haWxSZXF1ZXN0ID0gbnVsbDtcclxuICAgIH1cclxuICAgIHRoaXMuc2hvd0VtYWlsRGlhbG9nID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgY3JlYXRlV29ya0NsaWNrZWQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLl9mb3JtTWFzdGVyU2VydmljZS5zdWJtaXRTbGF2ZXMoKTtcclxuICAgIGlmICh0aGlzLmNyZWF0ZUZvcm0uaXNWYWxpZCgpKSB7XHJcbiAgICAgIGxldCB3b3JrOiBXb3JrID0gdGhpcy5jcmVhdGVXb3JrKCk7XHJcblxyXG4gICAgICBsZXQgYWN0aXZpdHk6IEFjdGl2aXR5ID0gbmV3IEFjdGl2aXR5KCk7XHJcbiAgICAgIGFjdGl2aXR5LmFjdGl2aXR5VHlwZSA9IEFjdGl2aXR5VHlwZS5Xb3JrO1xyXG4gICAgICBhY3Rpdml0eS53b3JrID0gd29yaztcclxuXHJcbiAgICAgIHRoaXMuY3JlYXRlZFdvcmsgPSBhd2FpdCB0aGlzLnNoYXJlZFNlcnZpY2UuaW5zZXJ0V29yayhhY3Rpdml0eSk7XHJcbiAgICAgIGlmICh0aGlzLmNyZWF0ZWRXb3JrKSB7XHJcbiAgICAgICAgdGhpcy5hY3Rpdml0eUNyZWF0ZWQuZW1pdCgpO1xyXG4gICAgICAgIGF3YWl0IHRoaXMuc2VuZEVtYWlsSWZOZWNjZXNhcnkoKTtcclxuICAgICAgICB0aGlzLmNsZWFyRmllbGRzKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgcHVibGljIGFzeW5jIGNyZWF0ZVRhc2tDbGlja2VkKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy5fZm9ybU1hc3RlclNlcnZpY2Uuc3VibWl0U2xhdmVzKCk7XHJcbiAgICBpZiAodGhpcy5jcmVhdGVGb3JtLmlzVmFsaWQoKSkge1xyXG4gICAgICBjb25zdCB0YXNrID0gdGhpcy5jcmVhdGVUYXNrKCk7XHJcblxyXG4gICAgICBsZXQgYWN0aXZpdHk6IEFjdGl2aXR5ID0gbmV3IEFjdGl2aXR5KCk7XHJcbiAgICAgIGFjdGl2aXR5LmFjdGl2aXR5VHlwZSA9IEFjdGl2aXR5VHlwZS5UYXNrO1xyXG4gICAgICBhY3Rpdml0eS50YXNrID0gdGFzaztcclxuXHJcbiAgICAgIHRoaXMuY3JlYXRlZFRhc2sgPSBhd2FpdCB0aGlzLnNoYXJlZFNlcnZpY2UuaW5zZXJ0VGFzayhhY3Rpdml0eSk7XHJcbiAgICAgIGlmICh0aGlzLmNyZWF0ZWRUYXNrKSB7XHJcbiAgICAgICAgdGhpcy5hY3Rpdml0eUNyZWF0ZWQuZW1pdCgpO1xyXG4gICAgICAgIGF3YWl0IHRoaXMuc2VuZEVtYWlsSWZOZWNjZXNhcnkoKTtcclxuICAgICAgICB0aGlzLmNsZWFyRmllbGRzKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlUmVtYXJrKCk6IFJlbWFyayB7XHJcbiAgICBsZXQgcmVtYXJrOiBSZW1hcmsgPSBuZXcgUmVtYXJrKCk7XHJcbiAgICByZW1hcmsuYXV0aG9yID0gdGhpcy5hdXRob3I7XHJcbiAgICByZW1hcmsuYXV0aG9yLmltYWdlID0gdW5kZWZpbmVkO1xyXG4gICAgcmVtYXJrLmRvY3VtZW50cyA9IHRoaXMuZG9jdW1lbnRzO1xyXG4gICAgcmVtYXJrLnJlbWFyayA9IHRoaXMucmVtYXJrVGV4dDtcclxuICAgIHJlbWFyay5kYXRlVGltZSA9IG5ldyBEYXRlKCk7XHJcbiAgICByZW1hcmsudGFibGUgPSB0aGlzLnRhYmxlO1xyXG4gICAgcmVtYXJrLmtleSA9IHRoaXMucmVtYXJrQW5kV29ya0tleTtcclxuICAgIHJlbWFyay5yZWFkID0gZmFsc2U7XHJcbiAgICByZW1hcmsuY3VycmVudCA9IHRydWU7XHJcblxyXG4gICAgcmV0dXJuIHJlbWFyaztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlV29yaygpOiBXb3JrIHtcclxuICAgIGxldCB3b3JrOiBXb3JrID0gbmV3IFdvcmsoKTtcclxuICAgIHdvcmsuZXhlY3V0aXZlID0gdGhpcy5hdXRob3I7XHJcbiAgICB3b3JrLmV4ZWN1dGl2ZS5pbWFnZSA9IHVuZGVmaW5lZDtcclxuICAgIHdvcmsuZG9jdW1lbnRzID0gdGhpcy5kb2N1bWVudHM7XHJcbiAgICB3b3JrLndvcmtlZFRpbWUgPSAwO1xyXG4gICAgd29yay53b3JrRGVzY3JpcHRpb24gPSB0aGlzLndvcmtEZXNjcmlwdGlvblxyXG4gICAgd29yay5kYXRlVGltZSA9IG5ldyBEYXRlKCk7XHJcbiAgICB3b3JrLnRhYmxlID0gdGhpcy50YWJsZTtcclxuICAgIHdvcmsua2V5ID0gdGhpcy5yZW1hcmtBbmRXb3JrS2V5O1xyXG5cclxuICAgIHJldHVybiB3b3JrO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVUYXNrKCk6IFRhc2sge1xyXG4gICAgbGV0IHRhc2s6IFRhc2sgPSBuZXcgVGFzaygpO1xyXG4gICAgdGFzay5leGVjdXRpdmUgPSB0aGlzLmF1dGhvcjtcclxuICAgIHRhc2suZXhlY3V0aXZlLmltYWdlID0gdW5kZWZpbmVkO1xyXG4gICAgdGFzay5yZXBvcnRlciA9IHRoaXMuYXV0aG9yO1xyXG4gICAgdGFzay5yZXBvcnRlci5pbWFnZSA9IHVuZGVmaW5lZDtcclxuICAgIHRhc2suZG9jdW1lbnRzID0gdGhpcy5kb2N1bWVudHM7XHJcbiAgICB0YXNrLm5hbWUgPSB0aGlzLnRhc2tOYW1lO1xyXG4gICAgdGFzay5kZXNjcmlwdGlvbiA9IHRoaXMudGFza0Rlc2NyaXB0aW9uO1xyXG4gICAgdGFzay5jcmVhdGlvbkRhdGVUaW1lID0gbmV3IERhdGUoKTtcclxuICAgIHRhc2suZGF0ZURlZmluYXRlID0gZmFsc2U7XHJcbiAgICB0YXNrLm5lZWRzUGxhbm5pbmcgPSB0cnVlO1xyXG4gICAgdGFzay5wcmlvcml0eSA9IDA7XHJcbiAgICB0YXNrLndvcmtmbG93Q2F0ZWdvcnkgPSB0aGlzLndvcmtmbG93Q2F0ZWdvcnlUeXBlO1xyXG4gICAgdGFzay5yZWZlcmVuY2UgPSB0aGlzLnRhc2tLZXk7XHJcbiAgICB0YXNrLmVtYWlsQWRkcmVzc2VzID0gdGhpcy5lbWFpbEFkZHJlc3NlcztcclxuXHJcbiAgICByZXR1cm4gdGFzaztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgaGFuZGxlQWZ0ZXJDcmVhdGlvbigpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMuYWN0aXZpdHlDcmVhdGVkLmVtaXQoKTtcclxuICAgIGF3YWl0IHRoaXMuc2VuZEVtYWlsSWZOZWNjZXNhcnkoKTtcclxuICAgIHRoaXMuY2xlYXJGaWVsZHMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgc2VuZEVtYWlsSWZOZWNjZXNhcnkoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAodGhpcy5lbWFpbEFkZHJlc3Nlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGxldCB0ZW1wbGF0ZXM6IFJlcG9ydFtdID0gYXdhaXQgdGhpcy5zaGFyZWRTZXJ2aWNlLmdldERlZmF1bHRFbWFpbFJlcG9ydFRlbXBsYXRlc0ZvckJyYW5jaCh0aGlzLmJyYW5jaE5vLCB0aGlzLmZpbmRSZXBvcnRUeXBlKCkpO1xyXG4gICAgICBpZiAodGVtcGxhdGVzLmxlbmd0aCAhPSAwKSB7XHJcbiAgICAgICAgbGV0IHRlbXBsYXRlOiBSZXBvcnQgPSB0aGlzLmZpbmREZWZhdWx0KHRlbXBsYXRlcyk7XHJcbiAgICAgICAgaWYgKHRlbXBsYXRlKSB7XHJcbiAgICAgICAgICBhd2FpdCB0aGlzLnN0YXJ0RW1haWxpbmcodGVtcGxhdGUpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLl9kaWFsb2dTZXJ2aWNlLnNob3dFcnJvcignTk9fREVGQVVMVF9FTUFJTF9URU1QTEFURV9GT1JfUkVQT1JUJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpbmRSZXBvcnRUeXBlKCk6IFJlcG9ydFR5cGUge1xyXG4gICAgaWYgKHRoaXMuY2hvc2VuQWN0aXZpdHlUeXBlID09PSB0aGlzLm9wdGlvbkNvbGxlY3Rpb25bMF0pIHtcclxuICAgICAgcmV0dXJuIFJlcG9ydFR5cGUuUmVtYXJrTWVzc2FnZTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5jaG9zZW5BY3Rpdml0eVR5cGUgPT09IHRoaXMub3B0aW9uQ29sbGVjdGlvblsxXSkge1xyXG4gICAgICByZXR1cm4gUmVwb3J0VHlwZS5Xb3JrTWVzc2FnZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBSZXBvcnRUeXBlLlRhc2tNZXNzYWdlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmaW5kRGVmYXVsdChyZXBvcnRMaXN0OiBSZXBvcnRbXSk6IFJlcG9ydCB7XHJcbiAgICBsZXQgZGVmYXVsdFRlbXBsYXRlOiBSZXBvcnQgPSBudWxsO1xyXG4gICAgcmVwb3J0TGlzdC5mb3JFYWNoKHIgPT4ge1xyXG4gICAgICBpZihyLmlzRGVmYXVsdCkge1xyXG4gICAgICAgIGRlZmF1bHRUZW1wbGF0ZSA9ICByO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBkZWZhdWx0VGVtcGxhdGU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIHN0YXJ0RW1haWxpbmcodGVtcGxhdGU6IFJlcG9ydCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgY29uc3QgZW1haWxzU2VudDpib29sZWFuID0gYXdhaXQgdGhpcy5zaGFyZWRTZXJ2aWNlLmVtYWlsVmlhVGVtcGxhdGUodGVtcGxhdGUsIHRoaXMuY3JlYXRlRW1haWxBZGRyZXNzU3RyaW5nKHRoaXMuZW1haWxBZGRyZXNzZXMpLCB0aGlzLmNyZWF0ZUVtYWlsQWRkcmVzc1N0cmluZyh0aGlzLmJjY0VtYWlsQWRkcmVzc2VzKSxcclxuICAgICAgdGhpcy5zZW5kZXJBZGRyZXNzLCB0aGlzLmNyZWF0ZUVtYWlsU3ViamVjdCgpLCBcIlwiLCBudWxsLyp0aGlzLmNyZWF0ZUF0dGFjaG1lbnRzU3RyaW5nQXJyYXkoKSovLCB0aGlzLmNyZWF0ZUVtYWlsUGFyYW1zKCkpO1xyXG4gICAgaWYoZW1haWxzU2VudCkge1xyXG4gICAgICBsZXQgaGlzdG9yeTogQWN0aXZpdHlFbWFpbEhpc3RvcnkgPSBuZXcgQWN0aXZpdHlFbWFpbEhpc3RvcnkoKTtcclxuICAgICAgaGlzdG9yeS5lbWFpbEFkZHJlc3NlcyA9IHRoaXMuY3JlYXRlRW1haWxBZGRyZXNzU3RyaW5nKHRoaXMuZW1haWxBZGRyZXNzZXMpO1xyXG4gICAgICBoaXN0b3J5LmVtYWlsRGF0ZVRpbWUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgICBoaXN0b3J5Lm1lc3NhZ2UgPSAnRW1haWwgQ29udGVudCBjcmVhdGVkIHZpYSBSZXBvcnQnO1xyXG4gICAgICBpZiAodGhpcy5jaG9zZW5BY3Rpdml0eVR5cGUgPT09IHRoaXMub3B0aW9uQ29sbGVjdGlvblswXSkge1xyXG4gICAgICAgIGF3YWl0IHRoaXMuc2hhcmVkU2VydmljZS5pbnNlcnRFbWFpbEhpc3RvcnlGb3JSZW1hcmsodGhpcy5jcmVhdGVkUmVtYXJrLnJlbWFya0lkLCBoaXN0b3J5KTtcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLmNob3NlbkFjdGl2aXR5VHlwZSA9PT0gdGhpcy5vcHRpb25Db2xsZWN0aW9uWzFdKSB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5zaGFyZWRTZXJ2aWNlLmluc2VydEVtYWlsSGlzdG9yeUZvcldvcmsodGhpcy5jcmVhdGVkV29yay53b3JrSWQsIGhpc3RvcnkpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGF3YWl0IHRoaXMuc2hhcmVkU2VydmljZS5pbnNlcnRFbWFpbEhpc3RvcnlGb3JUYXNrKHRoaXMuY3JlYXRlZFRhc2sudGFza0lkLCBoaXN0b3J5KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyByZWdpc3RlclNlbnRFbWFpbHMoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBsZXQgaGlzdG9yeTogQWN0aXZpdHlFbWFpbEhpc3RvcnkgPSBuZXcgQWN0aXZpdHlFbWFpbEhpc3RvcnkoKTtcclxuICAgIGhpc3RvcnkuZW1haWxBZGRyZXNzZXMgPSB0aGlzLmNyZWF0ZUVtYWlsQWRkcmVzc1N0cmluZyh0aGlzLmVtYWlsQWRkcmVzc2VzKSArICc7JyArICB0aGlzLmNyZWF0ZUVtYWlsQWRkcmVzc1N0cmluZyh0aGlzLmJjY0VtYWlsQWRkcmVzc2VzKTtcclxuICAgIC8vaGlzdG9yeS5hdHRhY2htZW50cyA9ICB0aGlzLmNyZWF0ZUF0dGFjaG1lbnRzU3RyaW5nQXJyYXkoKTtcclxuICAgIGhpc3RvcnkubWVzc2FnZSA9ICcnO1xyXG4gICAgaGlzdG9yeS5lbWFpbERhdGVUaW1lID0gbmV3IERhdGUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlRW1haWxBZGRyZXNzU3RyaW5nKGFkZHJlc3Nlczogc3RyaW5nW10gKTogc3RyaW5nIHtcclxuICAgIGlmIChhZGRyZXNzZXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBhZGRyZXNzZXMuam9pbignOycpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVFbWFpbFN1YmplY3QoKTogc3RyaW5nIHtcclxuICAgIGxldCBzdWJqZWN0OiBzdHJpbmcgPSBcIi0gXCI7XHJcbiAgICBpZiAodGhpcy5jcmVhdGVkUmVtYXJrKSB7XHJcbiAgICAgIHN1YmplY3QgKz0gdGhpcy5kaWN0aW9uYXJ5U2VydmljZS5nZXQoXCJSRU1BUktcIikgKyBcIiBcIiArIHRoaXMuY3JlYXRlZFJlbWFyay5yZW1hcmtJZDtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5jcmVhdGVkV29yaykge1xyXG4gICAgICBzdWJqZWN0ICs9IHRoaXMuZGljdGlvbmFyeVNlcnZpY2UuZ2V0KFwiV09SS1wiKSArIFwiIFwiICsgdGhpcy5jcmVhdGVkV29yay53b3JrSWQ7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuY3JlYXRlZFRhc2spIHtcclxuICAgICAgc3ViamVjdCArPSAodGhpcy5jcmVhdGVkVGFzay53b3JrZmxvd0NhdGVnb3J5ID8gdGhpcy5jcmVhdGVkVGFzay53b3JrZmxvd0NhdGVnb3J5IDogdGhpcy5kaWN0aW9uYXJ5U2VydmljZS5nZXQoXCJUQVNLXCIpKSArIFwiIFwiICtcclxuICAgICAgICAodGhpcy5jcmVhdGVkVGFzay53b3JrZmxvd0NhdGVnb3J5ID90aGlzLmNyZWF0ZWRUYXNrLnJlZmVyZW5jZSA6IHRoaXMuY3JlYXRlZFRhc2sudGFza0lkKTtcclxuICAgIH1cclxuICAgIHJldHVybiBzdWJqZWN0O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVBdHRhY2htZW50c0FycmF5KCk6IENvRW1haWxBdHRhY2htZW50W10ge1xyXG4gICAgbGV0IGF0dGFjaG1lbnRzOiBDb0VtYWlsQXR0YWNobWVudFtdID0gW107XHJcbiAgICBpZiAodGhpcy5kb2N1bWVudHMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZG9jdW1lbnRzLmZvckVhY2goZCA9PiB7XHJcbiAgICAgICAgLypsZXQgYXR0YWNobWVudDogQ29FbWFpbEF0dGFjaG1lbnQgPSBuZXcgQ29FbWFpbEF0dGFjaG1lbnQoKTtcclxuICAgICAgICBhdHRhY2htZW50LmZpbGVuYW1lID0gZC5maWxlTmFtZTtcclxuICAgICAgICBpZiAoZC5maWxlTmFtZS5zcGxpdChcIi5cIikubGVuZ3RoID4gMSkge1xyXG4gICAgICAgICAgY29uc3Qgc3RyOiBzdHJpbmdbXSA9IGQuZmlsZU5hbWUuc3BsaXQoXCIuXCIpO1xyXG4gICAgICAgICAgYXR0YWNobWVudC5leHRlbnNpb24gPSBzdHJbc3RyLmxlbmd0aCAtIDFdO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCB0ZXh0RW5jb2RlciA9IG5ldyBUZXh0RW5jb2RlcigpO1xyXG4gICAgICAgIGF0dGFjaG1lbnQuYm9keSA9IHRleHRFbmNvZGVyLmVuY29kZShcIllvdXIgc3RyaW5nIGhlcmVcIik7Ki9cclxuICAgICAgfSlcclxuICAgICAgcmV0dXJuIGF0dGFjaG1lbnRzO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVFbWFpbFBhcmFtcygpOiBvYmplY3Qge1xyXG4gICAgaWYgKHRoaXMuY3JlYXRlZFJlbWFyaykge1xyXG4gICAgICByZXR1cm4ge29wbWVya2luZ19pZDogdGhpcy5jcmVhdGVkUmVtYXJrLnJlbWFya0lkICsgXCJcIn07XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuY3JlYXRlZFdvcmspIHtcclxuICAgICAgcmV0dXJuIHt3ZXJremhfaWQ6IHRoaXMuY3JlYXRlZFdvcmsud29ya0lkICsgXCJcIn07XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuY3JlYXRlZFRhc2spIHtcclxuICAgICAgcmV0dXJuIHt0YWFrX2lkOiB0aGlzLmNyZWF0ZWRUYXNrLnRhc2tJZCArIFwiXCJ9O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjbGVhckZpZWxkcygpOiB2b2lkIHtcclxuICAgIHRoaXMucmVtYXJrVGV4dCA9IFwiXCI7XHJcbiAgICB0aGlzLndvcmtEZXNjcmlwdGlvbiA9IFwiXCI7XHJcbiAgICB0aGlzLnRhc2tOYW1lID0gXCJcIjtcclxuICAgIHRoaXMudGFza0Rlc2NyaXB0aW9uID0gXCJcIjtcclxuXHJcbiAgICB0aGlzLnNlbmRlckFkZHJlc3MgPSBcIlwiO1xyXG4gICAgdGhpcy5lbWFpbEFkZHJlc3NlcyA9IFtdO1xyXG4gICAgdGhpcy5iY2NFbWFpbEFkZHJlc3NlcyA9IFtdO1xyXG4gICAgdGhpcy5lbWFpbFJlcXVlc3QgPSBudWxsO1xyXG5cclxuICAgIHRoaXMuY3JlYXRlZFdvcmsgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLmNyZWF0ZWRSZW1hcmsgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLmNyZWF0ZWRUYXNrID0gdW5kZWZpbmVkO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
426
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1jcmVhdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZGNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3Rhc2stY3JlYXRvci90YXNrLWNyZWF0b3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDckcsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzFDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xFLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFDeEUsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBRS9ELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUN2RSxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDM0QsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBRzNELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUVuRCxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUNuRyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLCtDQUErQyxDQUFDO0FBRXpFLE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUVqRyxPQUFPLEVBQUMsaUJB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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBNkVUO2dCQUNILFNBQVMsRUFBRTtvQkFDVCxpQkFBaUI7aUJBQ2xCO2FBQ0Y7OztZQTFHTyxnQkFBZ0I7WUFrQmhCLGlCQUFpQjtZQUxqQixhQUFhO1lBR2IsaUJBQWlCO1lBQWlCLGlCQUFpQjs7O3lCQThGeEQsU0FBUyxTQUFDLGFBQWE7cUJBR3ZCLEtBQUs7dUJBR0wsS0FBSztvQkFHTCxLQUFLOytCQUdMLEtBQUs7c0JBR0wsS0FBSzttQ0FHTCxLQUFLOzhCQUdMLE1BQU07d0JBR04sV0FBVyxTQUFDLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtJY29ufSBmcm9tIFwiLi4vLi4vZW51bS9pY29uLmVudW1cIjtcclxuaW1wb3J0IHtJY29uQ2FjaGVTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS9pY29uLWNhY2hlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtBY3Rpdml0eX0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL2FjdGl2aXR5LmJvXCI7XHJcbmltcG9ydCB7QWN0aXZpdHlUeXBlfSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvZW51bS9hY3Rpdml0eS10eXBlXCI7XHJcbmltcG9ydCB7UmVtYXJrfSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvcmVtYXJrLmJvXCI7XHJcbmltcG9ydCB7UmVsYXRpb25TbWFsbE9iamVjdH0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3JlbGF0aW9uLXNtYWxsLW9iamVjdC5ib1wiO1xyXG5pbXBvcnQge1RhYmxlTmFtZX0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL2VudW0vdGFibGUtbmFtZS5lbnVtXCI7XHJcbmltcG9ydCB7V29ya30gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3dvcmsuYm9cIjtcclxuaW1wb3J0IHtUYXNrfSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvdGFzay5ib1wiO1xyXG5pbXBvcnQge1dvcmtmbG93Q2F0ZWdvcnlUeXBlfSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvZW51bS93b3JrZmxvdy1jYXRlZ29yeS5lbnVtXCI7XHJcbmltcG9ydCB7Q29Eb2N1bWVudH0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL2NvLWRvY3VtZW50XCI7XHJcbmltcG9ydCB7QXJyYXlVdGlsc30gZnJvbSBcIi4uLy4uL3V0aWxzL2FycmF5LXV0aWxzXCI7XHJcbmltcG9ydCB7Um9sZUVtYWlsYWRkcmVzc30gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3JvbGUtZW1haWwtYWRkcmVzc1wiO1xyXG5pbXBvcnQge2FjdGl2aXR5RW1haWxSZXF1ZXN0RGF0YX0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL2FjdGl2aXR5LWVtYWlsLXJlcXVlc3QtZGF0YVwiO1xyXG5pbXBvcnQge1NoYXJlZFNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL3NoYXJlZC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7UmVwb3J0VHlwZX0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL2VudW0vcmVwb3J0LXR5cGUuZW51bVwiO1xyXG5pbXBvcnQge1JlcG9ydH0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3JlcG9ydC5ib1wiO1xyXG5pbXBvcnQge0NvcmVEaWFsb2dTZXJ2aWNlLCBGb3JtQ29tcG9uZW50LCBGb3JtTWFzdGVyU2VydmljZX0gZnJvbSBcIkBjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTJcIjtcclxuaW1wb3J0IHtJY29uTGlzdEl0ZW19IGZyb20gXCJAY29saWpuaXQvY29yZWNvbXBvbmVudHNfdjEyL2xpYi9tb2RlbC9pY29uLWxpc3QtaXRlbVwiO1xyXG5pbXBvcnQge0RpY3Rpb25hcnlTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS9kaWN0aW9uYXJ5LnNlcnZpY2VcIjtcclxuaW1wb3J0IHtBY3Rpdml0eUVtYWlsSGlzdG9yeX0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL2FjdGl2aXR5LWVtYWlsLWhpc3RvcnkuYm9cIjtcclxuaW1wb3J0IHtDb0VtYWlsQXR0YWNobWVudH0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL2NvLWVtYWlsLWF0dGFjaG1lbnQuYm9cIjtcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcImNvLXRhc2stY3JlYXRvclwiLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuICAgICAgPGNvLWZvcm0gI2NyZWF0ZUZvcm0gY2xhc3M9XCJpbnB1dC1maWVsZHNcIj5cclxuICAgICAgICA8Y28tbGlzdC1vZi1pY29ucyBbY29sbGVjdGlvbl09XCJvcHRpb25Db2xsZWN0aW9uXCIgKGl0ZW1TZWxlY3RlZCk9XCJpdGVtU2VsZWN0ZWQoJGV2ZW50KVwiPjwvY28tbGlzdC1vZi1pY29ucz5cclxuICAgICAgICA8Y28taW5wdXQtdGV4dCAqbmdJZj1cImNob3NlbkFjdGl2aXR5VHlwZSA9PT0gb3B0aW9uQ29sbGVjdGlvblswXVwiIFtyZXF1aXJlZF09XCJjaG9zZW5BY3Rpdml0eVR5cGUgPT09IG9wdGlvbkNvbGxlY3Rpb25bMF1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInUkVNQVJLJyB8IGxvY2FsaXplXCIgWyhtb2RlbCldPVwicmVtYXJrVGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW3JpZ2h0SWNvbkRhdGFdPVwiaWNvblNlcnZpY2UuZ2V0SWNvbihpY29ucy5QYXBlclBsYW5lVG9wU29saWQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAocmlnaHRJY29uQ2xpY2spPVwiY3JlYXRlUmVtYXJrQ2xpY2tlZCgpXCI+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgIDxjby1pbnB1dC10ZXh0ICpuZ0lmPVwiY2hvc2VuQWN0aXZpdHlUeXBlID09PSBvcHRpb25Db2xsZWN0aW9uWzFdXCIgW3JlcXVpcmVkXT1cImNob3NlbkFjdGl2aXR5VHlwZSA9PT0gb3B0aW9uQ29sbGVjdGlvblsxXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidERVNDUklQVElPTicgfCBsb2NhbGl6ZVwiIFsobW9kZWwpXT1cIndvcmtEZXNjcmlwdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW3JpZ2h0SWNvbkRhdGFdPVwiaWNvblNlcnZpY2UuZ2V0SWNvbihpY29ucy5QYXBlclBsYW5lVG9wU29saWQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAocmlnaHRJY29uQ2xpY2spPVwiY3JlYXRlV29ya0NsaWNrZWQoKVwiPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGFzay1pbnB1dC1maWVsZHNcIiAqbmdJZj1cImNob3NlbkFjdGl2aXR5VHlwZSA9PT0gb3B0aW9uQ29sbGVjdGlvblsyXVwiPlxyXG4gICAgICAgICAgPGNvLWlucHV0LXRleHQgWyhtb2RlbCldPVwidGFza05hbWVcIiBbcGxhY2Vob2xkZXJdPVwiJ05BTUUnIHwgbG9jYWxpemVcIiAgW3JlcXVpcmVkXT1cImNob3NlbkFjdGl2aXR5VHlwZSA9PT0gb3B0aW9uQ29sbGVjdGlvblsyXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbcmlnaHRJY29uRGF0YV09XCJpY29uU2VydmljZS5nZXRJY29uKGljb25zLlBhcGVyUGxhbmVUb3BTb2xpZClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgKHJpZ2h0SWNvbkNsaWNrKT1cImNyZWF0ZVRhc2tDbGlja2VkKClcIj48L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgICAgICA8Y28taW5wdXQtdGV4dCBbKG1vZGVsKV09XCJ0YXNrRGVzY3JpcHRpb25cIiBbcGxhY2Vob2xkZXJdPVwiJ0RFU0NSSVBUSU9OJyB8IGxvY2FsaXplXCIgW3JlcXVpcmVkXT1cImNob3NlbkFjdGl2aXR5VHlwZSA9PT0gb3B0aW9uQ29sbGVjdGlvblsyXVwiPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9jby1mb3JtPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZXh0cmFzLWJ1dHRvbnNcIj5cclxuICAgICAgICA8Y28tYnV0dG9uIFtpY29uRGF0YV09XCJpY29uU2VydmljZS5nZXRJY29uKGljb25zLkVtYWlsUmVndWxhcilcIiAgKGNsaWNrKT1cIm9wZW5FbWFpbERpYWxvZygpXCI+PC9jby1idXR0b24+XHJcbiAgICAgICAgPGNvLWJ1dHRvbiBbaWNvbkRhdGFdPVwiaWNvblNlcnZpY2UuZ2V0SWNvbihpY29ucy5QYXBlcmNsaXBSZWd1bGFyKVwiICAoY2xpY2spPVwib3BlbkF0dGFjaG1lbnREaWFsb2coKVwiXHJcbiAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiZG9jdW1lbnRzLmxlbmd0aCA9PT0gMCA/ICcnIDogZG9jdW1lbnRzLmxlbmd0aC50b1N0cmluZygpXCIgPjwvY28tYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxjby1kaWFsb2cgKm5nSWY9XCJzaG93RmlsZXNEaWFsb2dcIiAoY2xvc2VDbGljayk9XCJhdHRhY2htZW50RGlhbG9nQ2FuY2VsbGVkKClcIlxyXG4gICAgICAgICAgICAgICAgIFtoZWFkZXJUZW1wbGF0ZV09XCJhdHRhY2htZW50SGVhZGVyVGVtcGxhdGVcIlxyXG4gICAgICAgICAgICAgICAgIFtmb290ZXJUZW1wbGF0ZV09XCJhdHRhY2htZW50Rm9vdGVyVGVtcGxhdGVcIj5cclxuXHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNhdHRhY2htZW50SGVhZGVyVGVtcGxhdGU+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY28tZGlhbG9nLXdyYXBwZXItcG9wdXAtdGl0bGVcIj5cclxuICAgICAgICAgICAgPGNvLWljb24gW2ljb25EYXRhXT1cImljb25TZXJ2aWNlLmdldEljb24oaWNvbnMuUGFwZXJjbGlwUmVndWxhcilcIj48L2NvLWljb24+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjby1kaWFsb2ctaGVhZGVyLXRpdGxlXCIgW3RleHRDb250ZW50XT1cIidBVFRBQ0hNRU5UUycgfCBsb2NhbGl6ZVwiPjwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8Y28tZmlsZXMtdXBsb2FkIChkb2N1bWVudHNBZGRlZCk9XCJhZGRlZERvY3VtZW50KCRldmVudClcIiAoZG9jdW1lbnREZWxldGVkKT1cImRlbGV0ZWREb2N1bWVudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbZG9jdW1lbnRzXT1cImRvY3VtZW50c1wiIFt1c2VXaXRob3V0U2V0dGluZ1Byb3BzXT1cInRydWVcIj48L2NvLWZpbGVzLXVwbG9hZD5cclxuICAgICAgPC9jby1kaWFsb2c+XHJcblxyXG5cclxuICAgICAgPG5nLXRlbXBsYXRlICNhdHRhY2htZW50Rm9vdGVyVGVtcGxhdGU+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvLWRpYWxvZy1mb290ZXItYnV0dG9uLXdyYXBwZXJcIj5cclxuICAgICAgICAgIDxjby1idXR0b24gY2xhc3M9XCJzYXZlLWJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uU2VydmljZS5nZXRJY29uKGljb25zLkNoZWNrRHVvdG9uZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYXR0YWNobWVudERpYWxvZ0Nsb3NlZCgpXCI+PC9jby1idXR0b24+XHJcbiAgICAgICAgICA8Y28tYnV0dG9uIGNsYXNzPVwiY2xvc2UtYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgW2ljb25EYXRhXT1cImljb25TZXJ2aWNlLmdldEljb24oaWNvbnMuQ3Jvc3NTa2lubnkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImF0dGFjaG1lbnREaWFsb2dDYW5jZWxsZWQoKVwiPjwvY28tYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuXHJcbiAgICAgIDxjby1kaWFsb2cgKm5nSWY9XCJzaG93RW1haWxEaWFsb2dcIiAoY2xvc2VDbGljayk9XCJlbWFpbERpYWxvZ0Nsb3NlZCgpXCJcclxuICAgICAgICAgICAgICAgICBbZm9vdGVyVGVtcGxhdGVdPVwiZW1haWxGb290ZXJUZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgW2hlYWRlclRlbXBsYXRlXT1cImVtYWlsaGVhZGVyVGVtcGxhdGVcIj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI2VtYWlsaGVhZGVyVGVtcGxhdGU+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY28tZGlhbG9nLXdyYXBwZXItcG9wdXAtdGl0bGVcIj5cclxuICAgICAgICAgICAgPGNvLWljb24gW2ljb25EYXRhXT1cImljb25TZXJ2aWNlLmdldEljb24oaWNvbnMuRW1haWxSZWd1bGFyKVwiPjwvY28taWNvbj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvLWRpYWxvZy1oZWFkZXItdGl0bGVcIiBbdGV4dENvbnRlbnRdPVwiJ1NFTkRfRU1BSUwnIHwgbG9jYWxpemVcIj48L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPGNvLXJvbGUtZW1haWwtc2VsZWN0b3IgWyhtb2RlbCldPVwiZW1haWxBZGRyZXNzZXNcIiBba2V5XT1cInJlbWFya0FuZFdvcmtLZXlcIiBbd29ya2Zsb3dDYXRlZ29yeVR5cGVdPVwid29ya2Zsb3dDYXRlZ29yeVR5cGVcIj48L2NvLXJvbGUtZW1haWwtc2VsZWN0b3I+XHJcbiAgICAgICAgPGNvLXJvbGUtZW1haWwtc2VsZWN0b3IgWyhtb2RlbCldPVwiYmNjRW1haWxBZGRyZXNzZXNcIiBba2V5XT1cInJlbWFya0FuZFdvcmtLZXlcIiBbd29ya2Zsb3dDYXRlZ29yeVR5cGVdPVwid29ya2Zsb3dDYXRlZ29yeVR5cGVcIiBbcmVjaXBpZW50TGFiZWxdPVwiJ0JDQ19SRUNJUElFTlQnXCIgW2V4dHJhTGFiZWxdPVwiJ0JDQ19FWFRSQV9FTUFJTF9BRERSRVNTRVMnXCI+PC9jby1yb2xlLWVtYWlsLXNlbGVjdG9yPlxyXG4gICAgICAgIDwhLS1UT0RPOiByZWltcGxlbWVudCBvbmNlIHdlIGhhdmUgdGhlIGJhY2tlbmQgZnVuY3Rpb25hbGl0eSBmb3IgdGhpcy0tPlxyXG4gICAgICAgPCEtLTxjby1pbnB1dC10ZXh0IFtyZWFkb25seV09XCJmYWxzZVwiIFtsYWJlbF09XCInU0VOREVSJyB8IGxvY2FsaXplXCIgWyhtb2RlbCldPVwic2VuZGVyQWRkcmVzc1wiPjwvY28taW5wdXQtdGV4dD4tLT5cclxuXHJcbiAgICAgIDwvY28tZGlhbG9nPlxyXG5cclxuICAgICAgPG5nLXRlbXBsYXRlICNlbWFpbEZvb3RlclRlbXBsYXRlPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjby1kaWFsb2ctZm9vdGVyLWJ1dHRvbi13cmFwcGVyXCI+XHJcbiAgICAgICAgICA8Y28tYnV0dG9uIGNsYXNzPVwic2F2ZS1idXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICBbaWNvbkRhdGFdPVwiaWNvblNlcnZpY2UuZ2V0SWNvbihpY29ucy5DaGVja0R1b3RvbmUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImVtYWlsRGlhbG9nQ2xvc2VkKClcIj48L2NvLWJ1dHRvbj5cclxuICAgICAgICAgIDxjby1idXR0b24gY2xhc3M9XCJjbG9zZS1idXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICBbaWNvbkRhdGFdPVwiaWNvblNlcnZpY2UuZ2V0SWNvbihpY29ucy5Dcm9zc1NraW5ueSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZW1haWxEaWFsb2dDYW5jZWxsZWQoKVwiPjwvY28tYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgYCxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIEZvcm1NYXN0ZXJTZXJ2aWNlXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRhc2tDcmVhdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0e1xyXG4gIHB1YmxpYyByZWFkb25seSBpY29uczogdHlwZW9mIEljb24gPSBJY29uO1xyXG5cclxuICBAVmlld0NoaWxkKEZvcm1Db21wb25lbnQpXHJcbiAgcHVibGljIGNyZWF0ZUZvcm06IEZvcm1Db21wb25lbnQ7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGF1dGhvcjogUmVsYXRpb25TbWFsbE9iamVjdDtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgYnJhbmNoTm86IHN0cmluZztcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgdGFibGU6IFRhYmxlTmFtZSA9IFRhYmxlTmFtZS5UcmFuc2FjdGlvbnM7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHJlbWFya0FuZFdvcmtLZXk6IHN0cmluZztcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgdGFza0tleTogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyB3b3JrZmxvd0NhdGVnb3J5VHlwZTogV29ya2Zsb3dDYXRlZ29yeVR5cGU7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBhY3Rpdml0eUNyZWF0ZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuY28tdGFzay1jcmVhdG9yXCIpXHJcbiAgcHVibGljIHNob3dDbGFzcygpIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9wdGlvbkNvbGxlY3Rpb246IEljb25MaXN0SXRlbVtdID0gW1xyXG4gICAgeyBpY29uOiB0aGlzLmljb25TZXJ2aWNlLmdldEljb24odGhpcy5pY29ucy5Db21tZW50UmVndWxhciksbGFiZWw6IHRoaXMuZGljdGlvbmFyeVNlcnZpY2UuZ2V0KCdSRU1BUksnLCB0cnVlKSB9LFxyXG4gICAgeyBpY29uOiB0aGlzLmljb25TZXJ2aWNlLmdldEljb24odGhpcy5pY29ucy5QZXJzb25EaWdnaW5nUmVndWxhciksIGxhYmVsOiB0aGlzLmRpY3Rpb25hcnlTZXJ2aWNlLmdldCgnV09SSycsIHRydWUpIH0sXHJcbiAgICB7IGljb246IHRoaXMuaWNvblNlcnZpY2UuZ2V0SWNvbih0aGlzLmljb25zLlRhc2spLCBsYWJlbDogdGhpcy5kaWN0aW9uYXJ5U2VydmljZS5nZXQoJ1RBU0snLCB0cnVlKSB9LFxyXG4gIF07XHJcblxyXG4gIHB1YmxpYyBzaG93RmlsZXNEaWFsb2c6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgZG9jdW1lbnRzOiBDb0RvY3VtZW50W10gPSBbXTtcclxuICBwdWJsaWMgb2xkRG9jdW1lbnRzOiBDb0RvY3VtZW50W10gPSBbXTtcclxuXHJcblxyXG4gIHB1YmxpYyBzaG93RW1haWxEaWFsb2c6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2VuZGVyQWRkcmVzczogc3RyaW5nID0gJyc7XHJcbiAgcHVibGljIGVtYWlsQWRkcmVzc2VzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIHB1YmxpYyBiY2NFbWFpbEFkZHJlc3Nlczogc3RyaW5nW10gPSBbXTtcclxuICBwdWJsaWMgb2xkRW1haWxBZGRyZXNzZXM6IHN0cmluZ1tdID0gW107XHJcbiAgcHVibGljIG9sZEJjY0VtYWlsQWRkcmVzc2VzOiBzdHJpbmdbXSA9IFtdO1xyXG5cclxuICBwdWJsaWMgZW1haWxSZXF1ZXN0OiBhY3Rpdml0eUVtYWlsUmVxdWVzdERhdGEgPSBudWxsO1xyXG5cclxuICBwdWJsaWMgY3JlYXRlZFRhc2s6IFRhc2s7XHJcbiAgcHVibGljIGNyZWF0ZWRSZW1hcms6IFJlbWFyaztcclxuICBwdWJsaWMgY3JlYXRlZFdvcms6IFdvcms7XHJcbiAgcHVibGljIGNob3NlbkFjdGl2aXR5VHlwZTogSWNvbkxpc3RJdGVtO1xyXG5cclxuICBwdWJsaWMgcmVtYXJrVGV4dDogc3RyaW5nID0gXCJcIjtcclxuICBwdWJsaWMgd29ya0Rlc2NyaXB0aW9uOiBzdHJpbmcgPSBcIlwiO1xyXG4gIHB1YmxpYyB0YXNrTmFtZTogc3RyaW5nID0gXCJcIjtcclxuICBwdWJsaWMgdGFza0Rlc2NyaXB0aW9uOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgaWNvblNlcnZpY2U6IEljb25DYWNoZVNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHVibGljIGRpY3Rpb25hcnlTZXJ2aWNlOiBEaWN0aW9uYXJ5U2VydmljZSxcclxuICAgICAgICAgICAgICBwdWJsaWMgc2hhcmVkU2VydmljZTogU2hhcmVkU2VydmljZSxcclxuICAgICAgICAgICAgICBwcml2YXRlIF9kaWFsb2dTZXJ2aWNlOiBDb3JlRGlhbG9nU2VydmljZSxcclxuICAgICAgICAgICAgICBwcml2YXRlIF9mb3JtTWFzdGVyU2VydmljZTogRm9ybU1hc3RlclNlcnZpY2UsXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBhc3luYyBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuY2hvc2VuQWN0aXZpdHlUeXBlID0gdGhpcy5vcHRpb25Db2xsZWN0aW9uWzBdO1xyXG4gICAgdGhpcy5zZW5kZXJBZGRyZXNzID0gYXdhaXQgdGhpcy5zaGFyZWRTZXJ2aWNlLmdldEVtYWlsU2VuZGVyQnlXb3JrZmxvd0NhdGVnb3J5QW5kS2V5KCdTRVJWSUNFX09SREVSJywgdGhpcy5yZW1hcmtBbmRXb3JrS2V5KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpdGVtU2VsZWN0ZWQoaXRlbTogSWNvbkxpc3RJdGVtKTogdm9pZCB7XHJcbiAgICB0aGlzLmNob3NlbkFjdGl2aXR5VHlwZSA9IGl0ZW07XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb3BlbkF0dGFjaG1lbnREaWFsb2coKTogdm9pZCB7XHJcbiAgICB0aGlzLm9sZERvY3VtZW50cyA9IHRoaXMuZG9jdW1lbnRzLnNsaWNlKCk7XHJcbiAgICB0aGlzLnNob3dGaWxlc0RpYWxvZyA9IHRydWVcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhdHRhY2htZW50RGlhbG9nQ2xvc2VkKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93RmlsZXNEaWFsb2cgPSBmYWxzZVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGF0dGFjaG1lbnREaWFsb2dDYW5jZWxsZWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRvY3VtZW50cyA9IHRoaXMub2xkRG9jdW1lbnRzLnNsaWNlKCk7XHJcbiAgICB0aGlzLnNob3dGaWxlc0RpYWxvZyA9IGZhbHNlXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgYWRkZWREb2N1bWVudChkb2NzOiBDb0RvY3VtZW50W10pOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMuZG9jdW1lbnRzID0gdGhpcy5kb2N1bWVudHMuY29uY2F0KGRvY3MpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGRlbGV0ZWREb2N1bWVudChkb2M6IENvRG9jdW1lbnQpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIEFycmF5VXRpbHMuUmVtb3ZlRWxlbWVudChkb2MsIHRoaXMuZG9jdW1lbnRzKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvcGVuRW1haWxEaWFsb2coKTogdm9pZCB7XHJcbiAgICB0aGlzLnNob3dFbWFpbERpYWxvZyA9IHRydWU7XHJcbiAgICB0aGlzLm9sZEVtYWlsQWRkcmVzc2VzID0gdGhpcy5lbWFpbEFkZHJlc3Nlcy5zbGljZSgpO1xyXG4gICAgdGhpcy5vbGRCY2NFbWFpbEFkZHJlc3NlcyA9IHRoaXMuYmNjRW1haWxBZGRyZXNzZXMuc2xpY2UoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBlbWFpbERpYWxvZ0Nsb3NlZCgpOiB2b2lkIHtcclxuICAgIGlmKHRoaXMuZW1haWxBZGRyZXNzZXMubGVuZ3RoID49IDApe1xyXG4gICAgICB0aGlzLmVtYWlsUmVxdWVzdCA9IG5ldyBhY3Rpdml0eUVtYWlsUmVxdWVzdERhdGE7XHJcbiAgICAgIHRoaXMuZW1haWxSZXF1ZXN0LnRhYmxlID0gdGhpcy50YWJsZTtcclxuICAgICAgdGhpcy5lbWFpbFJlcXVlc3Qua2V5ID0gdGhpcy5yZW1hcmtBbmRXb3JrS2V5O1xyXG4gICAgICB0aGlzLmVtYWlsUmVxdWVzdC5zZW5kZXJBZGRyZXNzID0gdGhpcy5zZW5kZXJBZGRyZXNzO1xyXG4gICAgICB0aGlzLmVtYWlsUmVxdWVzdC5zZW5kQWRkcmVzc2VzID0gdGhpcy5lbWFpbEFkZHJlc3NlcztcclxuICAgICAgdGhpcy5lbWFpbFJlcXVlc3QuY2NBZGRyZXNzZXMgPSB0aGlzLmJjY0VtYWlsQWRkcmVzc2VzO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5lbWFpbFJlcXVlc3QgPSBudWxsO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zaG93RW1haWxEaWFsb2cgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBlbWFpbERpYWxvZ0NhbmNlbGxlZCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZW1haWxBZGRyZXNzZXMgPSB0aGlzLm9sZEVtYWlsQWRkcmVzc2VzLnNsaWNlKCk7XHJcbiAgICB0aGlzLmJjY0VtYWlsQWRkcmVzc2VzID0gdGhpcy5vbGRCY2NFbWFpbEFkZHJlc3Nlcy5zbGljZSgpO1xyXG4gICAgdGhpcy5zaG93RW1haWxEaWFsb2cgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBjcmVhdGVSZW1hcmtDbGlja2VkKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy5fZm9ybU1hc3RlclNlcnZpY2Uuc3VibWl0U2xhdmVzKCk7XHJcbiAgICBpZiAodGhpcy5jcmVhdGVGb3JtLmlzVmFsaWQoKSkge1xyXG4gICAgICBsZXQgcmVtYXJrOiBSZW1hcmsgPSB0aGlzLmNyZWF0ZVJlbWFyaygpO1xyXG5cclxuICAgICAgbGV0IGFjdGl2aXR5OiBBY3Rpdml0eSA9IG5ldyBBY3Rpdml0eSgpO1xyXG4gICAgICBhY3Rpdml0eS5hY3Rpdml0eVR5cGUgPSBBY3Rpdml0eVR5cGUuUmVtYXJrO1xyXG4gICAgICBhY3Rpdml0eS5yZW1hcmsgPSByZW1hcms7XHJcblxyXG4gICAgICB0aGlzLmNyZWF0ZWRSZW1hcmsgPSBhd2FpdCB0aGlzLnNoYXJlZFNlcnZpY2UuaW5zZXJ0UmVtYXJrKGFjdGl2aXR5KTtcclxuICAgICAgaWYgKHRoaXMuY3JlYXRlZFJlbWFyaykge1xyXG4gICAgICAgIGF3YWl0IHRoaXMuaGFuZGxlQWZ0ZXJDcmVhdGlvbigpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgY3JlYXRlV29ya0NsaWNrZWQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLl9mb3JtTWFzdGVyU2VydmljZS5zdWJtaXRTbGF2ZXMoKTtcclxuICAgIGlmICh0aGlzLmNyZWF0ZUZvcm0uaXNWYWxpZCgpKSB7XHJcbiAgICAgIGxldCB3b3JrOiBXb3JrID0gdGhpcy5jcmVhdGVXb3JrKCk7XHJcblxyXG4gICAgICBsZXQgYWN0aXZpdHk6IEFjdGl2aXR5ID0gbmV3IEFjdGl2aXR5KCk7XHJcbiAgICAgIGFjdGl2aXR5LmFjdGl2aXR5VHlwZSA9IEFjdGl2aXR5VHlwZS5Xb3JrO1xyXG4gICAgICBhY3Rpdml0eS53b3JrID0gd29yaztcclxuXHJcbiAgICAgIHRoaXMuY3JlYXRlZFdvcmsgPSBhd2FpdCB0aGlzLnNoYXJlZFNlcnZpY2UuaW5zZXJ0V29yayhhY3Rpdml0eSk7XHJcbiAgICAgIGlmICh0aGlzLmNyZWF0ZWRXb3JrKSB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5oYW5kbGVBZnRlckNyZWF0aW9uKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBjcmVhdGVUYXNrQ2xpY2tlZCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMuX2Zvcm1NYXN0ZXJTZXJ2aWNlLnN1Ym1pdFNsYXZlcygpO1xyXG4gICAgaWYgKHRoaXMuY3JlYXRlRm9ybS5pc1ZhbGlkKCkpIHtcclxuICAgICAgY29uc3QgdGFzayA9IHRoaXMuY3JlYXRlVGFzaygpO1xyXG5cclxuICAgICAgbGV0IGFjdGl2aXR5OiBBY3Rpdml0eSA9IG5ldyBBY3Rpdml0eSgpO1xyXG4gICAgICBhY3Rpdml0eS5hY3Rpdml0eVR5cGUgPSBBY3Rpdml0eVR5cGUuVGFzaztcclxuICAgICAgYWN0aXZpdHkudGFzayA9IHRhc2s7XHJcblxyXG4gICAgICB0aGlzLmNyZWF0ZWRUYXNrID0gYXdhaXQgdGhpcy5zaGFyZWRTZXJ2aWNlLmluc2VydFRhc2soYWN0aXZpdHkpO1xyXG4gICAgICBpZiAodGhpcy5jcmVhdGVkVGFzaykge1xyXG4gICAgICAgIGF3YWl0IHRoaXMuaGFuZGxlQWZ0ZXJDcmVhdGlvbigpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZVJlbWFyaygpOiBSZW1hcmsge1xyXG4gICAgbGV0IHJlbWFyazogUmVtYXJrID0gbmV3IFJlbWFyaygpO1xyXG4gICAgcmVtYXJrLmF1dGhvciA9IHRoaXMuYXV0aG9yO1xyXG4gICAgcmVtYXJrLmF1dGhvci5pbWFnZSA9IHVuZGVmaW5lZDtcclxuICAgIHJlbWFyay5kb2N1bWVudHMgPSB0aGlzLmRvY3VtZW50cztcclxuICAgIHJlbWFyay5yZW1hcmsgPSB0aGlzLnJlbWFya1RleHQ7XHJcbiAgICByZW1hcmsuZGF0ZVRpbWUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgcmVtYXJrLnRhYmxlID0gdGhpcy50YWJsZTtcclxuICAgIHJlbWFyay5rZXkgPSB0aGlzLnJlbWFya0FuZFdvcmtLZXk7XHJcbiAgICByZW1hcmsucmVhZCA9IGZhbHNlO1xyXG4gICAgcmVtYXJrLmN1cnJlbnQgPSB0cnVlO1xyXG5cclxuICAgIHJldHVybiByZW1hcms7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZVdvcmsoKTogV29yayB7XHJcbiAgICBsZXQgd29yazogV29yayA9IG5ldyBXb3JrKCk7XHJcbiAgICB3b3JrLmV4ZWN1dGl2ZSA9IHRoaXMuYXV0aG9yO1xyXG4gICAgd29yay5leGVjdXRpdmUuaW1hZ2UgPSB1bmRlZmluZWQ7XHJcbiAgICB3b3JrLmRvY3VtZW50cyA9IHRoaXMuZG9jdW1lbnRzO1xyXG4gICAgd29yay53b3JrZWRUaW1lID0gMDtcclxuICAgIHdvcmsud29ya0Rlc2NyaXB0aW9uID0gdGhpcy53b3JrRGVzY3JpcHRpb25cclxuICAgIHdvcmsuZGF0ZVRpbWUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgd29yay50YWJsZSA9IHRoaXMudGFibGU7XHJcbiAgICB3b3JrLmtleSA9IHRoaXMucmVtYXJrQW5kV29ya0tleTtcclxuXHJcbiAgICByZXR1cm4gd29yaztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlVGFzaygpOiBUYXNrIHtcclxuICAgIGxldCB0YXNrOiBUYXNrID0gbmV3IFRhc2soKTtcclxuICAgIHRhc2suZXhlY3V0aXZlID0gdGhpcy5hdXRob3I7XHJcbiAgICB0YXNrLmV4ZWN1dGl2ZS5pbWFnZSA9IHVuZGVmaW5lZDtcclxuICAgIHRhc2sucmVwb3J0ZXIgPSB0aGlzLmF1dGhvcjtcclxuICAgIHRhc2sucmVwb3J0ZXIuaW1hZ2UgPSB1bmRlZmluZWQ7XHJcbiAgICB0YXNrLmRvY3VtZW50cyA9IHRoaXMuZG9jdW1lbnRzO1xyXG4gICAgdGFzay5uYW1lID0gdGhpcy50YXNrTmFtZTtcclxuICAgIHRhc2suZGVzY3JpcHRpb24gPSB0aGlzLnRhc2tEZXNjcmlwdGlvbjtcclxuICAgIHRhc2suY3JlYXRpb25EYXRlVGltZSA9IG5ldyBEYXRlKCk7XHJcbiAgICB0YXNrLmRhdGVEZWZpbmF0ZSA9IGZhbHNlO1xyXG4gICAgdGFzay5uZWVkc1BsYW5uaW5nID0gdHJ1ZTtcclxuICAgIHRhc2sucHJpb3JpdHkgPSAwO1xyXG4gICAgdGFzay53b3JrZmxvd0NhdGVnb3J5ID0gdGhpcy53b3JrZmxvd0NhdGVnb3J5VHlwZTtcclxuICAgIHRhc2sucmVmZXJlbmNlID0gdGhpcy50YXNrS2V5O1xyXG4gICAgdGFzay5lbWFpbEFkZHJlc3NlcyA9IHRoaXMuZW1haWxBZGRyZXNzZXM7XHJcblxyXG4gICAgcmV0dXJuIHRhc2s7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIGhhbmRsZUFmdGVyQ3JlYXRpb24oKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLmFjdGl2aXR5Q3JlYXRlZC5lbWl0KCk7XHJcbiAgICBhd2FpdCB0aGlzLnNlbmRFbWFpbElmTmVjY2VzYXJ5KCk7XHJcbiAgICB0aGlzLmNsZWFyRmllbGRzKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIHNlbmRFbWFpbElmTmVjY2VzYXJ5KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKHRoaXMuZW1haWxBZGRyZXNzZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICBsZXQgdGVtcGxhdGVzOiBSZXBvcnRbXSA9IGF3YWl0IHRoaXMuc2hhcmVkU2VydmljZS5nZXREZWZhdWx0RW1haWxSZXBvcnRUZW1wbGF0ZXNGb3JCcmFuY2godGhpcy5icmFuY2hObywgdGhpcy5maW5kUmVwb3J0VHlwZSgpKTtcclxuICAgICAgaWYgKHRlbXBsYXRlcy5sZW5ndGggIT0gMCkge1xyXG4gICAgICAgIGxldCB0ZW1wbGF0ZTogUmVwb3J0ID0gdGhpcy5maW5kRGVmYXVsdCh0ZW1wbGF0ZXMpO1xyXG4gICAgICAgIGlmICh0ZW1wbGF0ZSkge1xyXG4gICAgICAgICAgYXdhaXQgdGhpcy5zdGFydEVtYWlsaW5nKHRlbXBsYXRlKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5fZGlhbG9nU2VydmljZS5zaG93RXJyb3IoJ05PX0RFRkFVTFRfRU1BSUxfVEVNUExBVEVfRk9SX1JFUE9SVCcpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmaW5kUmVwb3J0VHlwZSgpOiBSZXBvcnRUeXBlIHtcclxuICAgIGlmICh0aGlzLmNob3NlbkFjdGl2aXR5VHlwZSA9PT0gdGhpcy5vcHRpb25Db2xsZWN0aW9uWzBdKSB7XHJcbiAgICAgIHJldHVybiBSZXBvcnRUeXBlLlJlbWFya01lc3NhZ2U7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuY2hvc2VuQWN0aXZpdHlUeXBlID09PSB0aGlzLm9wdGlvbkNvbGxlY3Rpb25bMV0pIHtcclxuICAgICAgcmV0dXJuIFJlcG9ydFR5cGUuV29ya01lc3NhZ2U7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gUmVwb3J0VHlwZS5UYXNrTWVzc2FnZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZmluZERlZmF1bHQocmVwb3J0TGlzdDogUmVwb3J0W10pOiBSZXBvcnQge1xyXG4gICAgbGV0IGRlZmF1bHRUZW1wbGF0ZTogUmVwb3J0ID0gbnVsbDtcclxuICAgIHJlcG9ydExpc3QuZm9yRWFjaChyID0+IHtcclxuICAgICAgaWYoci5pc0RlZmF1bHQpIHtcclxuICAgICAgICBkZWZhdWx0VGVtcGxhdGUgPSAgcjtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gZGVmYXVsdFRlbXBsYXRlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBzdGFydEVtYWlsaW5nKHRlbXBsYXRlOiBSZXBvcnQpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGNvbnN0IGVtYWlsc1NlbnQ6Ym9vbGVhbiA9IGF3YWl0IHRoaXMuc2hhcmVkU2VydmljZS5lbWFpbFZpYVRlbXBsYXRlKHRlbXBsYXRlLCB0aGlzLmNyZWF0ZUVtYWlsQWRkcmVzc1N0cmluZyh0aGlzLmVtYWlsQWRkcmVzc2VzKSwgdGhpcy5jcmVhdGVFbWFpbEFkZHJlc3NTdHJpbmcodGhpcy5iY2NFbWFpbEFkZHJlc3NlcyksXHJcbiAgICAgIHRoaXMuc2VuZGVyQWRkcmVzcywgdGhpcy5jcmVhdGVFbWFpbFN1YmplY3QoKSwgXCJcIiwgW10sIHRoaXMuY3JlYXRlRW1haWxQYXJhbXMoKSk7XHJcbiAgICBpZihlbWFpbHNTZW50KSB7XHJcbiAgICAgIGxldCBoaXN0b3J5OiBBY3Rpdml0eUVtYWlsSGlzdG9yeSA9IG5ldyBBY3Rpdml0eUVtYWlsSGlzdG9yeSgpO1xyXG4gICAgICBoaXN0b3J5LmVtYWlsQWRkcmVzc2VzID0gdGhpcy5jcmVhdGVFbWFpbEFkZHJlc3NTdHJpbmcodGhpcy5lbWFpbEFkZHJlc3Nlcyk7XHJcbiAgICAgIGhpc3RvcnkuZW1haWxEYXRlVGltZSA9IG5ldyBEYXRlKCk7XHJcbiAgICAgIGhpc3RvcnkubWVzc2FnZSA9ICdFbWFpbCBDb250ZW50IGNyZWF0ZWQgdmlhIFJlcG9ydCc7XHJcbiAgICAgIGlmICh0aGlzLmNob3NlbkFjdGl2aXR5VHlwZSA9PT0gdGhpcy5vcHRpb25Db2xsZWN0aW9uWzBdKSB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5zaGFyZWRTZXJ2aWNlLmluc2VydEVtYWlsSGlzdG9yeUZvclJlbWFyayh0aGlzLmNyZWF0ZWRSZW1hcmsucmVtYXJrSWQsIGhpc3RvcnkpO1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMuY2hvc2VuQWN0aXZpdHlUeXBlID09PSB0aGlzLm9wdGlvbkNvbGxlY3Rpb25bMV0pIHtcclxuICAgICAgICBhd2FpdCB0aGlzLnNoYXJlZFNlcnZpY2UuaW5zZXJ0RW1haWxIaXN0b3J5Rm9yV29yayh0aGlzLmNyZWF0ZWRXb3JrLndvcmtJZCwgaGlzdG9yeSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5zaGFyZWRTZXJ2aWNlLmluc2VydEVtYWlsSGlzdG9yeUZvclRhc2sodGhpcy5jcmVhdGVkVGFzay50YXNrSWQsIGhpc3RvcnkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZUVtYWlsQWRkcmVzc1N0cmluZyhhZGRyZXNzZXM6IHN0cmluZ1tdICk6IHN0cmluZyB7XHJcbiAgICBpZiAoYWRkcmVzc2VzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gYWRkcmVzc2VzLmpvaW4oJzsnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlRW1haWxTdWJqZWN0KCk6IHN0cmluZyB7XHJcbiAgICBsZXQgc3ViamVjdDogc3RyaW5nID0gXCItIFwiO1xyXG4gICAgaWYgKHRoaXMuY3JlYXRlZFJlbWFyaykge1xyXG4gICAgICBzdWJqZWN0ICs9IHRoaXMuZGljdGlvbmFyeVNlcnZpY2UuZ2V0KFwiUkVNQVJLXCIpICsgXCIgXCIgKyB0aGlzLmNyZWF0ZWRSZW1hcmsucmVtYXJrSWQ7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuY3JlYXRlZFdvcmspIHtcclxuICAgICAgc3ViamVjdCArPSB0aGlzLmRpY3Rpb25hcnlTZXJ2aWNlLmdldChcIldPUktcIikgKyBcIiBcIiArIHRoaXMuY3JlYXRlZFdvcmsud29ya0lkO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmNyZWF0ZWRUYXNrKSB7XHJcbiAgICAgIHN1YmplY3QgKz0gKHRoaXMuY3JlYXRlZFRhc2sud29ya2Zsb3dDYXRlZ29yeSA/IHRoaXMuY3JlYXRlZFRhc2sud29ya2Zsb3dDYXRlZ29yeSA6IHRoaXMuZGljdGlvbmFyeVNlcnZpY2UuZ2V0KFwiVEFTS1wiKSkgKyBcIiBcIiArXHJcbiAgICAgICAgKHRoaXMuY3JlYXRlZFRhc2sud29ya2Zsb3dDYXRlZ29yeSA/dGhpcy5jcmVhdGVkVGFzay5yZWZlcmVuY2UgOiB0aGlzLmNyZWF0ZWRUYXNrLnRhc2tJZCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gc3ViamVjdDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlQXR0YWNobWVudHNBcnJheSgpOiBDb0VtYWlsQXR0YWNobWVudFtdIHtcclxuICAgIGxldCBhdHRhY2htZW50czogQ29FbWFpbEF0dGFjaG1lbnRbXSA9IFtdO1xyXG4gICAgaWYgKHRoaXMuZG9jdW1lbnRzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmRvY3VtZW50cy5mb3JFYWNoKGQgPT4ge1xyXG4gICAgICAgIC8qbGV0IGF0dGFjaG1lbnQ6IENvRW1haWxBdHRhY2htZW50ID0gbmV3IENvRW1haWxBdHRhY2htZW50KCk7XHJcbiAgICAgICAgYXR0YWNobWVudC5maWxlbmFtZSA9IGQuZmlsZU5hbWU7XHJcbiAgICAgICAgaWYgKGQuZmlsZU5hbWUuc3BsaXQoXCIuXCIpLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICAgIGNvbnN0IHN0cjogc3RyaW5nW10gPSBkLmZpbGVOYW1lLnNwbGl0KFwiLlwiKTtcclxuICAgICAgICAgIGF0dGFjaG1lbnQuZXh0ZW5zaW9uID0gc3RyW3N0ci5sZW5ndGggLSAxXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgdGV4dEVuY29kZXIgPSBuZXcgVGV4dEVuY29kZXIoKTtcclxuICAgICAgICBhdHRhY2htZW50LmJvZHkgPSB0ZXh0RW5jb2Rlci5lbmNvZGUoXCJZb3VyIHN0cmluZyBoZXJlXCIpOyovXHJcbiAgICAgIH0pXHJcbiAgICAgIHJldHVybiBhdHRhY2htZW50cztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlRW1haWxQYXJhbXMoKTogb2JqZWN0IHtcclxuICAgIGlmICh0aGlzLmNyZWF0ZWRSZW1hcmspIHtcclxuICAgICAgcmV0dXJuIHtvcG1lcmtpbmdfaWQ6IHRoaXMuY3JlYXRlZFJlbWFyay5yZW1hcmtJZCArIFwiXCJ9O1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmNyZWF0ZWRXb3JrKSB7XHJcbiAgICAgIHJldHVybiB7d2Vya3poX2lkOiB0aGlzLmNyZWF0ZWRXb3JrLndvcmtJZCArIFwiXCJ9O1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmNyZWF0ZWRUYXNrKSB7XHJcbiAgICAgIHJldHVybiB7dGFha19pZDogdGhpcy5jcmVhdGVkVGFzay50YXNrSWQgKyBcIlwifTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2xlYXJGaWVsZHMoKTogdm9pZCB7XHJcbiAgICB0aGlzLnJlbWFya1RleHQgPSBcIlwiO1xyXG4gICAgdGhpcy53b3JrRGVzY3JpcHRpb24gPSBcIlwiO1xyXG4gICAgdGhpcy50YXNrTmFtZSA9IFwiXCI7XHJcbiAgICB0aGlzLnRhc2tEZXNjcmlwdGlvbiA9IFwiXCI7XHJcblxyXG4gICAgdGhpcy5zZW5kZXJBZGRyZXNzID0gXCJcIjtcclxuICAgIHRoaXMuZW1haWxBZGRyZXNzZXMgPSBbXTtcclxuICAgIHRoaXMuYmNjRW1haWxBZGRyZXNzZXMgPSBbXTtcclxuICAgIHRoaXMuZW1haWxSZXF1ZXN0ID0gbnVsbDtcclxuXHJcbiAgICB0aGlzLmNyZWF0ZWRXb3JrID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5jcmVhdGVkUmVtYXJrID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5jcmVhdGVkVGFzayA9IHVuZGVmaW5lZDtcclxuICB9XHJcbn1cclxuIl19
|