@syncfusion/ej2-angular-documenteditor 34.2.7-ngcc → 34.2.7

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.
Files changed (36) hide show
  1. package/CHANGELOG.md +5328 -0
  2. package/README.md +64 -10
  3. package/esm2020/public_api.mjs +2 -0
  4. package/esm2020/src/document-editor/documenteditor-all.module.mjs +134 -0
  5. package/esm2020/src/document-editor/documenteditor.component.mjs +311 -0
  6. package/esm2020/src/document-editor/documenteditor.module.mjs +25 -0
  7. package/esm2020/src/document-editor-container/documenteditorcontainer-all.module.mjs +32 -0
  8. package/esm2020/src/document-editor-container/documenteditorcontainer.component.mjs +73 -0
  9. package/esm2020/src/document-editor-container/documenteditorcontainer.module.mjs +25 -0
  10. package/esm2020/src/index.mjs +8 -0
  11. package/esm2020/syncfusion-ej2-angular-documenteditor.mjs +5 -0
  12. package/fesm2015/syncfusion-ej2-angular-documenteditor.mjs +584 -0
  13. package/fesm2015/syncfusion-ej2-angular-documenteditor.mjs.map +1 -0
  14. package/fesm2020/syncfusion-ej2-angular-documenteditor.mjs +584 -0
  15. package/fesm2020/syncfusion-ej2-angular-documenteditor.mjs.map +1 -0
  16. package/package.json +20 -7
  17. package/public_api.d.ts +1 -1
  18. package/src/document-editor/documenteditor-all.module.d.ts +48 -42
  19. package/src/document-editor/documenteditor.component.d.ts +59 -56
  20. package/src/document-editor/documenteditor.module.d.ts +11 -5
  21. package/src/document-editor-container/documenteditorcontainer-all.module.d.ts +14 -8
  22. package/src/document-editor-container/documenteditorcontainer.component.d.ts +48 -45
  23. package/src/document-editor-container/documenteditorcontainer.module.d.ts +11 -5
  24. package/src/index.d.ts +7 -7
  25. package/syncfusion-ej2-angular-documenteditor.d.ts +5 -0
  26. package/@syncfusion/ej2-angular-documenteditor.es5.js +0 -646
  27. package/@syncfusion/ej2-angular-documenteditor.es5.js.map +0 -1
  28. package/@syncfusion/ej2-angular-documenteditor.js +0 -616
  29. package/@syncfusion/ej2-angular-documenteditor.js.map +0 -1
  30. package/LICENSE +0 -10
  31. package/dist/ej2-angular-documenteditor.umd.js +0 -1565
  32. package/dist/ej2-angular-documenteditor.umd.js.map +0 -1
  33. package/dist/ej2-angular-documenteditor.umd.min.js +0 -11
  34. package/dist/ej2-angular-documenteditor.umd.min.js.map +0 -1
  35. package/ej2-angular-documenteditor.d.ts +0 -6
  36. package/ej2-angular-documenteditor.metadata.json +0 -1
package/README.md CHANGED
@@ -23,6 +23,20 @@ Trusted by the world's leading companies
23
23
  </a>
24
24
  </p>
25
25
 
26
+ > **Using this package with an AI coding agent**
27
+ >
28
+ > Before generating Syncfusion® code, ask your AI coding agent to run the Syncfusion® setup using the following prompt:
29
+ >
30
+ > ```text
31
+ > Set up this project for Syncfusion® before generating code. Fetch
32
+ > and follow the official instructions at https://ai.syncfusion.com/,
33
+ > then report the detected platform, installed skill pack, MCP
34
+ > status, and any required licensing action.
35
+ > ```
36
+ > The setup detects your project’s platform and loads the appropriate Syncfusion® skill pack. No Syncfusion® account or MCP key is required to install or read Syncfusion® agent skills.
37
+ >
38
+ > **Platform reference:** [https://ai.syncfusion.com/docx-editor-sdk/llms.txt](https://ai.syncfusion.com/docx-editor-sdk/llms.txt)
39
+
26
40
  ## Setup
27
41
 
28
42
  ### Create an Angular Application
@@ -45,18 +59,17 @@ npm install @syncfusion/ej2-angular-documenteditor --save
45
59
 
46
60
  ### Adding CSS references for DOCX Editor
47
61
 
48
- Add CSS references needed for Document editor in the **src/styles/styles.css** file.
62
+ Install the styles package from npm using the following command:
63
+
64
+ ```bash
65
+ npm install @syncfusion/ej2-tailwind3-theme
66
+ ```
67
+
68
+ The Tailwind 3 theme package includes an `index.css` file that automatically imports all required DOCX Editor styles. Add the required DOCX Editor theme style reference to **src/styles/styles.css** file.
49
69
 
50
70
  ```html
51
- @import '../../node_modules/@syncfusion/ej2-base/styles/material.css';
52
- @import '../../node_modules/@syncfusion/ej2-buttons/styles/material.css';
53
- @import '../../node_modules/@syncfusion/ej2-inputs/styles/material.css';
54
- @import '../../node_modules/@syncfusion/ej2-popups/styles/material.css';
55
- @import '../../node_modules/@syncfusion/ej2-lists/styles/material.css';
56
- @import '../../node_modules/@syncfusion/ej2-navigations/styles/material.css';
57
- @import '../../node_modules/@syncfusion/ej2-splitbuttons/styles/material.css';
58
- @import '../../node_modules/@syncfusion/ej2-dropdowns/styles/material.css';
59
- @import '../../node_modules/@syncfusion/ej2-angular-documenteditor/styles/material.css';
71
+ @import "../node_modules/@syncfusion/ej2-tailwind3-theme/styles/document-editor/index.css";
72
+ @import "../node_modules/@syncfusion/ej2-tailwind3-theme/styles/document-editor-container/index.css";
60
73
  ```
61
74
 
62
75
  ### Registering DocumentEditorContainer module
@@ -158,6 +171,47 @@ Product support is available through the following mediums.
158
171
  * [Request feature or report bug](https://www.syncfusion.com/feedback/angular?utm_source=npm&utm_medium=listing&utm_campaign=angular-word-processor-npm)
159
172
  * Live chat
160
173
 
174
+ ## Other Popular Angular Components
175
+
176
+ Explore other popular Syncfusion<sup>®</sup> Angular components curated from UI components, standalone SDKs, and document solution suites.
177
+
178
+ <table>
179
+ <tr>
180
+ <td align="center">
181
+ <a href="https://www.syncfusion.com/angular-components/angular-data-grid">Angular DataGrid</a>
182
+ </td>
183
+ <td align="center">
184
+ <a href="https://www.syncfusion.com/angular-components/angular-charts">Angular Charts</a>
185
+ </td>
186
+ <td align="center">
187
+ <a href="https://www.syncfusion.com/angular-components/angular-file-manager">Angular File Manager</a>
188
+ </td>
189
+ <td align="center">
190
+ <a href="https://www.syncfusion.com/gantt-sdk/angular-gantt-chart">Angular Gantt Chart</a>
191
+ </td>
192
+ <td align="center">
193
+ <a href="https://www.syncfusion.com/diagram-sdk/angular-diagram">Angular Diagram</a>
194
+ </td>
195
+ </tr>
196
+ <tr>
197
+ <td align="center">
198
+ <a href="https://www.syncfusion.com/scheduler-sdk/angular-scheduler">Angular Scheduler</a>
199
+ </td>
200
+ <td align="center">
201
+ <a href="https://www.syncfusion.com/spreadsheet-editor-sdk/angular-spreadsheet-editor">Angular Spreadsheet Editor</a>
202
+ </td>
203
+ <td align="center">
204
+ <a href="https://www.syncfusion.com/pdf-viewer-sdk/angular-pdf-viewer">Angular PDF Viewer</a>
205
+ </td>
206
+ <td align="center">
207
+ <a href="https://www.syncfusion.com/rich-text-editor-sdk/angular-rich-text-editor">Angular Rich Text Editor</a>
208
+ </td>
209
+ <td align="center">
210
+ <a href="https://www.syncfusion.com/angular-components/angular-maps-library">Angular Maps</a>
211
+ </td>
212
+ </tr>
213
+ </table>
214
+
161
215
  ## Changelog
162
216
 
163
217
  Check the changelog [here](https://github.com/syncfusion/ej2-angular-ui-components/blob/master/components/documenteditor/CHANGELOG.md?utm_source=npm&utm_medium=listing&utm_campaign=angular-word-processor-npm). Get minor improvements and bug fixes every week to stay up to date with frequent updates.
@@ -0,0 +1,2 @@
1
+ export * from './src/index';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NyYy9pbmRleCc7Il19
@@ -0,0 +1,134 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { DocumentEditorModule } from './documenteditor.module';
4
+ import { Print, SfdtExport, WordExport, TextExport, Selection, Search, Editor, EditorHistory, OptionsPane, ContextMenu, ImageResizer, HyperlinkDialog, TableDialog, BookmarkDialog, TableOfContentsDialog, PageSetupDialog, ParagraphDialog, ListDialog, StyleDialog, StylesDialog, BulletsAndNumberingDialog, FontDialog, TablePropertiesDialog, BordersAndShadingDialog, TableOptionsDialog, CellOptionsDialog, SpellChecker, SpellCheckDialog, CollaborativeEditing, ColumnsDialog, CollaborativeEditingHandler, Optimized, TabDialog, TextFormFieldDialog, DropDownFormFieldDialog, CheckBoxFormFieldDialog } from '@syncfusion/ej2-documenteditor';
5
+ import * as i0 from "@angular/core";
6
+ export const PrintService = { provide: 'DocumentEditorPrint', useValue: Print };
7
+ export const SfdtExportService = { provide: 'DocumentEditorSfdtExport', useValue: SfdtExport };
8
+ export const WordExportService = { provide: 'DocumentEditorWordExport', useValue: WordExport };
9
+ export const TextExportService = { provide: 'DocumentEditorTextExport', useValue: TextExport };
10
+ export const SelectionService = { provide: 'DocumentEditorSelection', useValue: Selection };
11
+ export const SearchService = { provide: 'DocumentEditorSearch', useValue: Search };
12
+ export const EditorService = { provide: 'DocumentEditorEditor', useValue: Editor };
13
+ export const EditorHistoryService = { provide: 'DocumentEditorEditorHistory', useValue: EditorHistory };
14
+ export const OptionsPaneService = { provide: 'DocumentEditorOptionsPane', useValue: OptionsPane };
15
+ export const ContextMenuService = { provide: 'DocumentEditorContextMenu', useValue: ContextMenu };
16
+ export const ImageResizerService = { provide: 'DocumentEditorImageResizer', useValue: ImageResizer };
17
+ export const HyperlinkDialogService = { provide: 'DocumentEditorHyperlinkDialog', useValue: HyperlinkDialog };
18
+ export const TableDialogService = { provide: 'DocumentEditorTableDialog', useValue: TableDialog };
19
+ export const BookmarkDialogService = { provide: 'DocumentEditorBookmarkDialog', useValue: BookmarkDialog };
20
+ export const TableOfContentsDialogService = { provide: 'DocumentEditorTableOfContentsDialog', useValue: TableOfContentsDialog };
21
+ export const PageSetupDialogService = { provide: 'DocumentEditorPageSetupDialog', useValue: PageSetupDialog };
22
+ export const ParagraphDialogService = { provide: 'DocumentEditorParagraphDialog', useValue: ParagraphDialog };
23
+ export const ListDialogService = { provide: 'DocumentEditorListDialog', useValue: ListDialog };
24
+ export const StyleDialogService = { provide: 'DocumentEditorStyleDialog', useValue: StyleDialog };
25
+ export const StylesDialogService = { provide: 'DocumentEditorStylesDialog', useValue: StylesDialog };
26
+ export const BulletsAndNumberingDialogService = { provide: 'DocumentEditorBulletsAndNumberingDialog', useValue: BulletsAndNumberingDialog };
27
+ export const FontDialogService = { provide: 'DocumentEditorFontDialog', useValue: FontDialog };
28
+ export const TablePropertiesDialogService = { provide: 'DocumentEditorTablePropertiesDialog', useValue: TablePropertiesDialog };
29
+ export const BordersAndShadingDialogService = { provide: 'DocumentEditorBordersAndShadingDialog', useValue: BordersAndShadingDialog };
30
+ export const TableOptionsDialogService = { provide: 'DocumentEditorTableOptionsDialog', useValue: TableOptionsDialog };
31
+ export const CellOptionsDialogService = { provide: 'DocumentEditorCellOptionsDialog', useValue: CellOptionsDialog };
32
+ export const SpellCheckerService = { provide: 'DocumentEditorSpellChecker', useValue: SpellChecker };
33
+ export const SpellCheckDialogService = { provide: 'DocumentEditorSpellCheckDialog', useValue: SpellCheckDialog };
34
+ export const CollaborativeEditingService = { provide: 'DocumentEditorCollaborativeEditing', useValue: CollaborativeEditing };
35
+ export const ColumnsDialogService = { provide: 'DocumentEditorColumnsDialog', useValue: ColumnsDialog };
36
+ export const CollaborativeEditingHandlerService = { provide: 'DocumentEditorCollaborativeEditingHandler', useValue: CollaborativeEditingHandler };
37
+ export const OptimizedService = { provide: 'DocumentEditorOptimized', useValue: Optimized };
38
+ export const TabDialogService = { provide: 'DocumentEditorTabDialog', useValue: TabDialog };
39
+ export const TextFormFieldDialogService = { provide: 'DocumentEditorTextFormFieldDialog', useValue: TextFormFieldDialog };
40
+ export const DropDownFormFieldDialogService = { provide: 'DocumentEditorDropDownFormFieldDialog', useValue: DropDownFormFieldDialog };
41
+ export const CheckBoxFormFieldDialogService = { provide: 'DocumentEditorCheckBoxFormFieldDialog', useValue: CheckBoxFormFieldDialog };
42
+ /**
43
+ * NgModule definition for the DocumentEditor component with providers.
44
+ */
45
+ export class DocumentEditorAllModule {
46
+ }
47
+ DocumentEditorAllModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: DocumentEditorAllModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
48
+ DocumentEditorAllModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: DocumentEditorAllModule, imports: [CommonModule, DocumentEditorModule], exports: [DocumentEditorModule] });
49
+ DocumentEditorAllModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: DocumentEditorAllModule, providers: [
50
+ PrintService,
51
+ SfdtExportService,
52
+ WordExportService,
53
+ TextExportService,
54
+ SelectionService,
55
+ SearchService,
56
+ EditorService,
57
+ EditorHistoryService,
58
+ OptionsPaneService,
59
+ ContextMenuService,
60
+ ImageResizerService,
61
+ HyperlinkDialogService,
62
+ TableDialogService,
63
+ BookmarkDialogService,
64
+ TableOfContentsDialogService,
65
+ PageSetupDialogService,
66
+ ParagraphDialogService,
67
+ ListDialogService,
68
+ StyleDialogService,
69
+ StylesDialogService,
70
+ BulletsAndNumberingDialogService,
71
+ FontDialogService,
72
+ TablePropertiesDialogService,
73
+ BordersAndShadingDialogService,
74
+ TableOptionsDialogService,
75
+ CellOptionsDialogService,
76
+ SpellCheckerService,
77
+ SpellCheckDialogService,
78
+ CollaborativeEditingService,
79
+ ColumnsDialogService,
80
+ CollaborativeEditingHandlerService,
81
+ OptimizedService,
82
+ TabDialogService,
83
+ TextFormFieldDialogService,
84
+ DropDownFormFieldDialogService,
85
+ CheckBoxFormFieldDialogService
86
+ ], imports: [[CommonModule, DocumentEditorModule], DocumentEditorModule] });
87
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: DocumentEditorAllModule, decorators: [{
88
+ type: NgModule,
89
+ args: [{
90
+ imports: [CommonModule, DocumentEditorModule],
91
+ exports: [
92
+ DocumentEditorModule
93
+ ],
94
+ providers: [
95
+ PrintService,
96
+ SfdtExportService,
97
+ WordExportService,
98
+ TextExportService,
99
+ SelectionService,
100
+ SearchService,
101
+ EditorService,
102
+ EditorHistoryService,
103
+ OptionsPaneService,
104
+ ContextMenuService,
105
+ ImageResizerService,
106
+ HyperlinkDialogService,
107
+ TableDialogService,
108
+ BookmarkDialogService,
109
+ TableOfContentsDialogService,
110
+ PageSetupDialogService,
111
+ ParagraphDialogService,
112
+ ListDialogService,
113
+ StyleDialogService,
114
+ StylesDialogService,
115
+ BulletsAndNumberingDialogService,
116
+ FontDialogService,
117
+ TablePropertiesDialogService,
118
+ BordersAndShadingDialogService,
119
+ TableOptionsDialogService,
120
+ CellOptionsDialogService,
121
+ SpellCheckerService,
122
+ SpellCheckDialogService,
123
+ CollaborativeEditingService,
124
+ ColumnsDialogService,
125
+ CollaborativeEditingHandlerService,
126
+ OptimizedService,
127
+ TabDialogService,
128
+ TextFormFieldDialogService,
129
+ DropDownFormFieldDialogService,
130
+ CheckBoxFormFieldDialogService
131
+ ]
132
+ }]
133
+ }] });
134
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnRlZGl0b3ItYWxsLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb2N1bWVudC1lZGl0b3IvZG9jdW1lbnRlZGl0b3ItYWxsLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUN4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxFQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUscUJBQXFCLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSx5QkFBeUIsRUFBRSxVQUFVLEVBQUUscUJBQXFCLEVBQUUsdUJBQXVCLEVBQUUsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLG9CQUFvQixFQUFFLGFBQWEsRUFBRSwyQkFBMkIsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLHVCQUF1QixFQUFFLHVCQUF1QixFQUFDLE1BQU0sZ0NBQWdDLENBQUE7O0FBR3JuQixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQWtCLEVBQUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUMsQ0FBQztBQUM5RixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBa0IsRUFBRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBQyxDQUFDO0FBQzdHLE1BQU0sQ0FBQyxN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QU8sRUFBRSxDQUFDLFlBQVksRUFBRSxvQkFBb0IsQ0FBQztvQkFDN0MsT0FBTyxFQUFFO3dCQUNMLG9CQUFvQjtxQkFDdkI7b0JBQ0QsU0FBUyxFQUFDO3dCQUNOLFlBQVk7d0JBQ1osaUJBQWlCO3dCQUNqQixpQkFBaUI7d0JBQ2pCLGlCQUFpQjt3QkFDakIsZ0JBQWdCO3dCQUNoQixhQUFhO3dCQUNiLGFBQWE7d0JBQ2Isb0JBQW9CO3dCQUNwQixrQkFBa0I7d0JBQ2xCLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3dCQUNuQixzQkFBc0I7d0JBQ3RCLGtCQUFrQjt3QkFDbEIscUJBQXFCO3dCQUNyQiw0QkFBNEI7d0JBQzVCLHNCQUFzQjt3QkFDdEIsc0JBQXNCO3dCQUN0QixpQkFBaUI7d0JBQ2pCLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3dCQUNuQixnQ0FBZ0M7d0JBQ2hDLGlCQUFpQjt3QkFDakIsNEJBQTRCO3dCQUM1Qiw4QkFBOEI7d0JBQzlCLHlCQUF5Qjt3QkFDekIsd0JBQXdCO3dCQUN4QixtQkFBbUI7d0JBQ25CLHVCQUF1Qjt3QkFDdkIsMkJBQTJCO3dCQUMzQixvQkFBb0I7d0JBQ3BCLGtDQUFrQzt3QkFDbEMsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7d0JBQ2hCLDBCQUEwQjt3QkFDMUIsOEJBQThCO3dCQUM5Qiw4QkFBOEI7cUJBQ2pDO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUsIFZhbHVlUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBEb2N1bWVudEVkaXRvckNvbXBvbmVudCB9IGZyb20gJy4vZG9jdW1lbnRlZGl0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IERvY3VtZW50RWRpdG9yTW9kdWxlIH0gZnJvbSAnLi9kb2N1bWVudGVkaXRvci5tb2R1bGUnO1xuaW1wb3J0IHtQcmludCwgU2ZkdEV4cG9ydCwgV29yZEV4cG9ydCwgVGV4dEV4cG9ydCwgU2VsZWN0aW9uLCBTZWFyY2gsIEVkaXRvciwgRWRpdG9ySGlzdG9yeSwgT3B0aW9uc1BhbmUsIENvbnRleHRNZW51LCBJbWFnZVJlc2l6ZXIsIEh5cGVybGlua0RpYWxvZywgVGFibGVEaWFsb2csIEJvb2ttYXJrRGlhbG9nLCBUYWJsZU9mQ29udGVudHNEaWFsb2csIFBhZ2VTZXR1cERpYWxvZywgUGFyYWdyYXBoRGlhbG9nLCBMaXN0RGlhbG9nLCBTdHlsZURpYWxvZywgU3R5bGVzRGlhbG9nLCBCdWxsZXRzQW5kTnVtYmVyaW5nRGlhbG9nLCBGb250RGlhbG9nLCBUYWJsZVByb3BlcnRpZXNEaWFsb2csIEJvcmRlcnNBbmRTaGFkaW5nRGlhbG9nLCBUYWJsZU9wdGlvbnNEaWFsb2csIENlbGxPcHRpb25zRGlhbG9nLCBTcGVsbENoZWNrZXIsIFNwZWxsQ2hlY2tEaWFsb2csIENvbGxhYm9yYXRpdmVFZGl0aW5nLCBDb2x1bW5zRGlhbG9nLCBDb2xsYWJvcmF0aXZlRWRpdGluZ0hhbmRsZXIsIE9wdGltaXplZCwgVGFiRGlhbG9nLCBUZXh0Rm9ybUZpZWxkRGlhbG9nLCBEcm9wRG93bkZvcm1GaWVsZERpYWxvZywgQ2hlY2tCb3hGb3JtRmllbGREaWFsb2d9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1kb2N1bWVudGVkaXRvcidcblxuXG5leHBvcnQgY29uc3QgUHJpbnRTZXJ2aWNlOiBWYWx1ZVByb3ZpZGVyID0geyBwcm92aWRlOiAnRG9jdW1lbnRFZGl0b3JQcmludCcsIHVzZVZhbHVlOiBQcmludH07XG5leHBvcnQgY29uc3QgU2ZkdEV4cG9ydFNlcnZpY2U6IFZhbHVlUHJvdmlkZXIgPSB7IHByb3ZpZGU6ICdEb2N1bWVudEVkaXRvclNmZHRFeHBvcnQnLCB1c2VWYWx1ZTogU2ZkdEV4cG9ydH07XG5leHBvcnQgY29uc3QgV29yZEV4cG9ydFNlcnZpY2U6IFZhbHVlUHJvdmlkZXIgPSB7IHByb3ZpZGU6ICdEb2N1bWVudEVkaXRvcldvcmRFeHBvcnQnLCB1c2VWYWx1ZTogV29yZEV4cG9ydH07XG5leHBvcnQgY29uc3QgVGV4dEV4cG9ydFNlcnZpY2U6IFZhbHVlUHJvdmlkZXIgPSB7IHByb3ZpZGU6ICdEb2N1bWVudEVkaXRvclRleHRFeHBvcnQnLCB1c2VWYWx1ZTogVGV4dEV4cG9ydH07XG5leHBvcnQgY29uc3QgU2VsZWN0aW9uU2VydmljZTogVmFsdWVQcm92aWRlciA9IHsgcHJvdmlkZTogJ0RvY3VtZW50RWRpdG9yU2VsZWN0aW9uJywgdXNlVmFsdWU6IFNlbGVjdGlvbn07XG5leHBvcnQgY29uc3QgU2VhcmNoU2VydmljZTogVmFsdWVQcm92aWRlciA9IHsgcHJvdmlkZTogJ0RvY3VtZW50RWRpdG9yU2VhcmNoJywgdXNlVmFsdWU6IFNlYXJjaH07XG5leHBvcnQgY29uc3QgRWRpdG9yU2VydmljZTogVmFsdWVQcm92aWRlciA9IHsgcHJvdmlkZTogJ0RvY3VtZW50RWRpdG9yRWRpdG9yJywgdXNlVmFsdWU6IEVkaXRvcn07XG5leHBvcnQgY29uc3QgRWRpdG9ySGlzdG9yeVNlcnZpY2U6IFZhbHVlUHJvdmlkZXIgPSB7IHByb3ZpZGU6ICdEb2N1bWVudEVkaXRvckVkaXRvckhpc3RvcnknLCB1c2VWYWx1ZTogRWRpdG9ySGlzdG9yeX07XG5leHBvcnQgY29uc3QgT3B0aW9uc1BhbmVTZXJ2aWNlOiBWYWx1ZVByb3ZpZGVyID0geyBwcm92aWRlOiAnRG9jdW1lbnRFZGl0b3JPcHRpb25zUGFuZScsIHVzZVZhbHVlOiBPcHRpb25zUGFuZX07XG5leHBvcnQgY29uc3QgQ29udGV4dE1lbnVTZXJ2aWNlOiBWYWx1ZVByb3ZpZGVyID0geyBwcm92aWRlOiAnRG9jdW1lbnRFZGl0b3JDb250ZXh0TWVudScsIHVzZVZhbHVlOiBDb250ZXh0TWVudX07XG5leHBvcnQgY29uc3QgSW1hZ2VSZXNpemVyU2VydmljZTogVmFsdWVQcm92aWRlciA9IHsgcHJvdmlkZTogJ0RvY3VtZW50RWRpdG9ySW1hZ2VSZXNpemVyJywgdXNlVmFsdWU6IEltYWdlUmVzaXplcn07XG5leHBvcnQgY29uc3QgSHlwZXJsaW5rRGlhbG9nU2VydmljZTogVmFsdWVQcm92aWRlciA9IHsgcHJvdmlkZTogJ0RvY3VtZW50RWRpdG9ySHlwZXJsaW5rRGlhbG9nJywgdXNlVmFsdWU6IEh5cGVybGlua0RpYWxvZ307XG5leHBvcnQgY29uc3QgVGFibGVEaWFsb2dTZXJ2aWNlOiBWYWx1ZVByb3ZpZGVyID0geyBwcm92aWRlOiAnRG9jdW1lbnRFZGl0b3JUYWJsZURpYWxvZycsIHVzZVZhbHVlOiBUYWJsZURpYWxvZ307XG5leHBvcnQgY29uc3QgQm9va21hcmtEaWFsb2dTZXJ2aWNlOiBWYWx1ZVByb3ZpZGVyID0geyBwcm92aWRlOiAnRG9jdW1lbnRFZGl0b3JCb29rbWFya0RpYWxvZycsIHVzZVZhbHVlOiBCb29rbWFya0RpYWxvZ307XG5leHBvcnQgY29uc3QgVGFibGVPZkNvbnRlbnRzRGlhbG9nU2VydmljZTogVmFsdWVQcm92aWRlciA9IHsgcHJvdmlkZTogJ0RvY3VtZW50RWRpdG9yVGFibGVPZkNvbnRlbnRzRGlhbG9nJywgdXNlVmFsdWU6IFRhYmxlT2ZDb250ZW50c0RpYWxvZ307XG5leHBvcnQgY29uc3QgUGFnZVNldHVwRGlhbG9nU2VydmljZTogVmFsdWVQcm92aWRlciA9IHsgcHJvdmlkZTogJ0RvY3VtZW50RWRpdG9yUGFnZVNldHVwRGlhbG9nJywgdXNlVmFsdWU6IFBhZ2VTZXR1cERpYWxvZ307XG5leHBvcnQgY29uc3QgUGFyYWdyYXBoRGlhbG9nU2VydmljZTogVmFsdWVQcm92aWRlciA9IHsgcHJvdmlkZTogJ0RvY3VtZW50RWRpdG9yUGFyYWdyYXBoRGlhbG9nJywgdXNlVmFsdWU6IFBhcmFncmFwaERpYWxvZ307XG5leHBvcnQgY29uc3QgTGlzdERpYWxvZ1NlcnZpY2U6IFZhbHVlUHJvdmlkZXIgPSB7IHByb3ZpZGU6ICdEb2N1bWVudEVkaXRvckxpc3REaWFsb2cnLCB1c2VWYWx1ZTogTGlzdERpYWxvZ307XG5leHBvcnQgY29uc3QgU3R5bGVEaWFsb2dTZXJ2aWNlOiBWYWx1ZVByb3ZpZGVyID0geyBwcm92aWRlOiAnRG9jdW1lbnRFZGl0b3JTdHlsZURpYWxvZycsIHVzZVZhbHVlOiBTdHlsZURpYWxvZ307XG5leHBvcnQgY29uc3QgU3R5bGVzRGlhbG9nU2VydmljZTogVmFsdWVQcm92aWRlciA9IHsgcHJvdmlkZTogJ0RvY3VtZW50RWRpdG9yU3R5bGVzRGlhbG9nJywgdXNlVmFsdWU6IFN0eWxlc0RpYWxvZ307XG5leHBvcnQgY29uc3QgQnVsbGV0c0FuZE51bWJlcmluZ0RpYWxvZ1NlcnZpY2U6IFZhbHVlUHJvdmlkZXIgPSB7IHByb3ZpZGU6ICdEb2N1bWVudEVkaXRvckJ1bGxldHNBbmROdW1iZXJpbmdEaWFsb2cnLCB1c2VWYWx1ZTogQnVsbGV0c0FuZE51bWJlcmluZ0RpYWxvZ307XG5leHBvcnQgY29uc3QgRm9udERpYWxvZ1NlcnZpY2U6IFZhbHVlUHJvdmlkZXIgPSB7IHByb3ZpZGU6ICdEb2N1bWVudEVkaXRvckZvbnREaWFsb2cnLCB1c2VWYWx1ZTogRm9udERpYWxvZ307XG5leHBvcnQgY29uc3QgVGFibGVQcm9wZXJ0aWVzRGlhbG9nU2VydmljZTogVmFsdWVQcm92aWRlciA9IHsgcHJvdmlkZTogJ0RvY3VtZW50RWRpdG9yVGFibGVQcm9wZXJ0aWVzRGlhbG9nJywgdXNlVmFsdWU6IFRhYmxlUHJvcGVydGllc0RpYWxvZ307XG5leHBvcnQgY29uc3QgQm9yZGVyc0FuZFNoYWRpbmdEaWFsb2dTZXJ2aWNlOiBWYWx1ZVByb3ZpZGVyID0geyBwcm92aWRlOiAnRG9jdW1lbnRFZGl0b3JCb3JkZXJzQW5kU2hhZGluZ0RpYWxvZycsIHVzZVZhbHVlOiBCb3JkZXJzQW5kU2hhZGluZ0RpYWxvZ307XG5leHBvcnQgY29uc3QgVGFibGVPcHRpb25zRGlhbG9nU2VydmljZTogVmFsdWVQcm92aWRlciA9IHsgcHJvdmlkZTogJ0RvY3VtZW50RWRpdG9yVGFibGVPcHRpb25zRGlhbG9nJywgdXNlVmFsdWU6IFRhYmxlT3B0aW9uc0RpYWxvZ307XG5leHBvcnQgY29uc3QgQ2VsbE9wdGlvbnNEaWFsb2dTZXJ2aWNlOiBWYWx1ZVByb3ZpZGVyID0geyBwcm92aWRlOiAnRG9jdW1lbnRFZGl0b3JDZWxsT3B0aW9uc0RpYWxvZycsIHVzZVZhbHVlOiBDZWxsT3B0aW9uc0RpYWxvZ307XG5leHBvcnQgY29uc3QgU3BlbGxDaGVja2VyU2VydmljZTogVmFsdWVQcm92aWRlciA9IHsgcHJvdmlkZTogJ0RvY3VtZW50RWRpdG9yU3BlbGxDaGVja2VyJywgdXNlVmFsdWU6IFNwZWxsQ2hlY2tlcn07XG5leHBvcnQgY29uc3QgU3BlbGxDaGVja0RpYWxvZ1NlcnZpY2U6IFZhbHVlUHJvdmlkZXIgPSB7IHByb3ZpZGU6ICdEb2N1bWVudEVkaXRvclNwZWxsQ2hlY2tEaWFsb2cnLCB1c2VWYWx1ZTogU3BlbGxDaGVja0RpYWxvZ307XG5leHBvcnQgY29uc3QgQ29sbGFib3JhdGl2ZUVkaXRpbmdTZXJ2aWNlOiBWYWx1ZVByb3ZpZGVyID0geyBwcm92aWRlOiAnRG9jdW1lbnRFZGl0b3JDb2xsYWJvcmF0aXZlRWRpdGluZycsIHVzZVZhbHVlOiBDb2xsYWJvcmF0aXZlRWRpdGluZ307XG5leHBvcnQgY29uc3QgQ29sdW1uc0RpYWxvZ1NlcnZpY2U6IFZhbHVlUHJvdmlkZXIgPSB7IHByb3ZpZGU6ICdEb2N1bWVudEVkaXRvckNvbHVtbnNEaWFsb2cnLCB1c2VWYWx1ZTogQ29sdW1uc0RpYWxvZ307XG5leHBvcnQgY29uc3QgQ29sbGFib3JhdGl2ZUVkaXRpbmdIYW5kbGVyU2VydmljZTogVmFsdWVQcm92aWRlciA9IHsgcHJvdmlkZTogJ0RvY3VtZW50RWRpdG9yQ29sbGFib3JhdGl2ZUVkaXRpbmdIYW5kbGVyJywgdXNlVmFsdWU6IENvbGxhYm9yYXRpdmVFZGl0aW5nSGFuZGxlcn07XG5leHBvcnQgY29uc3QgT3B0aW1pemVkU2VydmljZTogVmFsdWVQcm92aWRlciA9IHsgcHJvdmlkZTogJ0RvY3VtZW50RWRpdG9yT3B0aW1pemVkJywgdXNlVmFsdWU6IE9wdGltaXplZH07XG5leHBvcnQgY29uc3QgVGFiRGlhbG9nU2VydmljZTogVmFsdWVQcm92aWRlciA9IHsgcHJvdmlkZTogJ0RvY3VtZW50RWRpdG9yVGFiRGlhbG9nJywgdXNlVmFsdWU6IFRhYkRpYWxvZ307XG5leHBvcnQgY29uc3QgVGV4dEZvcm1GaWVsZERpYWxvZ1NlcnZpY2U6IFZhbHVlUHJvdmlkZXIgPSB7IHByb3ZpZGU6ICdEb2N1bWVudEVkaXRvclRleHRGb3JtRmllbGREaWFsb2cnLCB1c2VWYWx1ZTogVGV4dEZvcm1GaWVsZERpYWxvZ307XG5leHBvcnQgY29uc3QgRHJvcERvd25Gb3JtRmllbGREaWFsb2dTZXJ2aWNlOiBWYWx1ZVByb3ZpZGVyID0geyBwcm92aWRlOiAnRG9jdW1lbnRFZGl0b3JEcm9wRG93bkZvcm1GaWVsZERpYWxvZycsIHVzZVZhbHVlOiBEcm9wRG93bkZvcm1GaWVsZERpYWxvZ307XG5leHBvcnQgY29uc3QgQ2hlY2tCb3hGb3JtRmllbGREaWFsb2dTZXJ2aWNlOiBWYWx1ZVByb3ZpZGVyID0geyBwcm92aWRlOiAnRG9jdW1lbnRFZGl0b3JDaGVja0JveEZvcm1GaWVsZERpYWxvZycsIHVzZVZhbHVlOiBDaGVja0JveEZvcm1GaWVsZERpYWxvZ307XG5cbi8qKlxuICogTmdNb2R1bGUgZGVmaW5pdGlvbiBmb3IgdGhlIERvY3VtZW50RWRpdG9yIGNvbXBvbmVudCB3aXRoIHByb3ZpZGVycy5cbiAqL1xuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBEb2N1bWVudEVkaXRvck1vZHVsZV0sXG4gICAgZXhwb3J0czogW1xuICAgICAgICBEb2N1bWVudEVkaXRvck1vZHVsZVxuICAgIF0sXG4gICAgcHJvdmlkZXJzOltcbiAgICAgICAgUHJpbnRTZXJ2aWNlLFxuICAgICAgICBTZmR0RXhwb3J0U2VydmljZSxcbiAgICAgICAgV29yZEV4cG9ydFNlcnZpY2UsXG4gICAgICAgIFRleHRFeHBvcnRTZXJ2aWNlLFxuICAgICAgICBTZWxlY3Rpb25TZXJ2aWNlLFxuICAgICAgICBTZWFyY2hTZXJ2aWNlLFxuICAgICAgICBFZGl0b3JTZXJ2aWNlLFxuICAgICAgICBFZGl0b3JIaXN0b3J5U2VydmljZSxcbiAgICAgICAgT3B0aW9uc1BhbmVTZXJ2aWNlLFxuICAgICAgICBDb250ZXh0TWVudVNlcnZpY2UsXG4gICAgICAgIEltYWdlUmVzaXplclNlcnZpY2UsXG4gICAgICAgIEh5cGVybGlua0RpYWxvZ1NlcnZpY2UsXG4gICAgICAgIFRhYmxlRGlhbG9nU2VydmljZSxcbiAgICAgICAgQm9va21hcmtEaWFsb2dTZXJ2aWNlLFxuICAgICAgICBUYWJsZU9mQ29udGVudHNEaWFsb2dTZXJ2aWNlLFxuICAgICAgICBQYWdlU2V0dXBEaWFsb2dTZXJ2aWNlLFxuICAgICAgICBQYXJhZ3JhcGhEaWFsb2dTZXJ2aWNlLFxuICAgICAgICBMaXN0RGlhbG9nU2VydmljZSxcbiAgICAgICAgU3R5bGVEaWFsb2dTZXJ2aWNlLFxuICAgICAgICBTdHlsZXNEaWFsb2dTZXJ2aWNlLFxuICAgICAgICBCdWxsZXRzQW5kTnVtYmVyaW5nRGlhbG9nU2VydmljZSxcbiAgICAgICAgRm9udERpYWxvZ1NlcnZpY2UsXG4gICAgICAgIFRhYmxlUHJvcGVydGllc0RpYWxvZ1NlcnZpY2UsXG4gICAgICAgIEJvcmRlcnNBbmRTaGFkaW5nRGlhbG9nU2VydmljZSxcbiAgICAgICAgVGFibGVPcHRpb25zRGlhbG9nU2VydmljZSxcbiAgICAgICAgQ2VsbE9wdGlvbnNEaWFsb2dTZXJ2aWNlLFxuICAgICAgICBTcGVsbENoZWNrZXJTZXJ2aWNlLFxuICAgICAgICBTcGVsbENoZWNrRGlhbG9nU2VydmljZSxcbiAgICAgICAgQ29sbGFib3JhdGl2ZUVkaXRpbmdTZXJ2aWNlLFxuICAgICAgICBDb2x1bW5zRGlhbG9nU2VydmljZSxcbiAgICAgICAgQ29sbGFib3JhdGl2ZUVkaXRpbmdIYW5kbGVyU2VydmljZSxcbiAgICAgICAgT3B0aW1pemVkU2VydmljZSxcbiAgICAgICAgVGFiRGlhbG9nU2VydmljZSxcbiAgICAgICAgVGV4dEZvcm1GaWVsZERpYWxvZ1NlcnZpY2UsXG4gICAgICAgIERyb3BEb3duRm9ybUZpZWxkRGlhbG9nU2VydmljZSxcbiAgICAgICAgQ2hlY2tCb3hGb3JtRmllbGREaWFsb2dTZXJ2aWNlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBEb2N1bWVudEVkaXRvckFsbE1vZHVsZSB7IH0iXX0=