@syncfusion/ej2-angular-treegrid 25.2.6 → 26.1.35
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/CHANGELOG.md +214 -0
- package/esm2020/public_api.mjs +1 -2
- package/esm2020/src/treegrid/columns.directive.mjs +1 -1
- package/esm2020/src/treegrid/stacked-column.directive.mjs +1 -1
- package/fesm2015/syncfusion-ej2-angular-treegrid.mjs +0 -2
- package/fesm2015/syncfusion-ej2-angular-treegrid.mjs.map +1 -1
- package/fesm2020/syncfusion-ej2-angular-treegrid.mjs +0 -2
- package/fesm2020/syncfusion-ej2-angular-treegrid.mjs.map +1 -1
- package/package.json +9 -9
- package/schematics/utils/lib-details.js +2 -2
- package/schematics/utils/lib-details.ts +2 -2
- package/src/treegrid/columns.directive.d.ts +1 -3
- package/src/treegrid/stacked-column.directive.d.ts +1 -3
- package/styles/bootstrap-dark.css +484 -1
- package/styles/bootstrap.css +490 -1
- package/styles/bootstrap4.css +538 -1
- package/styles/bootstrap5-dark.css +527 -1
- package/styles/bootstrap5.css +527 -1
- package/styles/fabric-dark.css +465 -1
- package/styles/fabric.css +458 -1
- package/styles/fluent-dark.css +524 -1
- package/styles/fluent.css +524 -1
- package/styles/fluent2.css +1721 -0
- package/styles/fluent2.scss +1 -0
- package/styles/highcontrast-light.css +456 -1
- package/styles/highcontrast.css +462 -1
- package/styles/material-dark.css +529 -1
- package/styles/material.css +574 -1
- package/styles/material3-dark.css +673 -1
- package/styles/material3.css +785 -1
- package/styles/tailwind-dark.css +481 -1
- package/styles/tailwind.css +481 -1
- package/styles/treegrid/bootstrap-dark.css +484 -1
- package/styles/treegrid/bootstrap.css +490 -1
- package/styles/treegrid/bootstrap4.css +538 -1
- package/styles/treegrid/bootstrap5-dark.css +527 -1
- package/styles/treegrid/bootstrap5.css +527 -1
- package/styles/treegrid/fabric-dark.css +465 -1
- package/styles/treegrid/fabric.css +458 -1
- package/styles/treegrid/fluent-dark.css +524 -1
- package/styles/treegrid/fluent.css +524 -1
- package/styles/treegrid/fluent2.css +1721 -0
- package/styles/treegrid/fluent2.scss +1 -0
- package/styles/treegrid/highcontrast-light.css +456 -1
- package/styles/treegrid/highcontrast.css +462 -1
- package/styles/treegrid/material-dark.css +529 -1
- package/styles/treegrid/material.css +574 -1
- package/styles/treegrid/material3-dark.css +673 -1
- package/styles/treegrid/material3.css +785 -1
- package/styles/treegrid/tailwind-dark.css +481 -1
- package/styles/treegrid/tailwind.css +481 -1
- package/license +0 -10
- package/postinstall/tagchange.js +0 -18
package/CHANGELOG.md
ADDED
@@ -0,0 +1,214 @@
|
|
1
|
+
# Changelog
|
2
|
+
|
3
|
+
## [Unreleased]
|
4
|
+
|
5
|
+
### Tree Grid
|
6
|
+
|
7
|
+
#### Features
|
8
|
+
|
9
|
+
- `#I341079` - Provided support for exporting data to PDF, CSV, and Excel formats using server-side functionality. Please find the demo [here](https://ej2.syncfusion.com/aspnetcore/TreeGrid/ServerSideExporting#/material3).
|
10
|
+
|
11
|
+
- Added support for the new `fixed` mode within the `freeze` property of column settings. When a column is set as `fixed`, it will stay within the viewport during horizontal scrolling, enhancing the user experience with improved visibility and efficiency.
|
12
|
+
|
13
|
+
- Provided support for inline editing with virtualization enabled. Please find the demo [here](https://ej2.syncfusion.com/angular/demos/#/bootstrap5/treegrid/virtual-scrolling).
|
14
|
+
- `#I323425`, `#I332700`, `#I344742`, `#I375307` - Provided support for frozen column with virtualization enabled.
|
15
|
+
- `#F166825` - Provided support for infinite scrolling with observable binding.
|
16
|
+
|
17
|
+
#### Breaking Changes
|
18
|
+
|
19
|
+
- Optimized the frozen columns feature in Tree Grid and thus changed the dom structure of tree grid from two table to single table architecture. Also, the following methods have been removed, and it's recommended to use the following alternatives instead.
|
20
|
+
|
21
|
+
| Removed methods | Suggested to use alternative methods |
|
22
|
+
|----------|----------|
|
23
|
+
| `getMoavableRows`, `getFrozenRightRows` | `getRows` |
|
24
|
+
| `getMovableRowByIndex`, `getFrozenRowByIndex`, `getFrozenRightRowByIndex` | `getRowByIndex` |
|
25
|
+
| `getMovableCellFromIndex`, `getFrozenRightCellFromIndex` | `getCellFromIndex` |
|
26
|
+
| `getMovableDataRows`, `getFrozenRightDataRows`, `getFrozenDataRows` | `getDataRows` |
|
27
|
+
| `getAllMovableDataRows`, `getAllFrozenDataRows`, `getAllFrozenRightDataRows` | `getAllDataRows` |
|
28
|
+
| `getMovableColumnHeaderByIndex`, `getFrozenRightColumnHeaderByIndex`, `getFrozenLeftColumnHeaderByIndex` | `getColumnHeaderByIndex` |
|
29
|
+
| `getFrozenRightHeader`, `getMovableHeader` | `getHeaderContent` |
|
30
|
+
| `getFrozenRightRowsObject`, `getMovableRwsObject` | `getRowsObject` |
|
31
|
+
| `getFrozenRightHeaderTbody`, `getMovableHeaderTbody`, `getFrozenHeaderTbody` | `getContent().querySelector(‘tbody’)` |
|
32
|
+
| `getFrozenLeftContentTbody`, `getFrozenRightContentTbody`, `getMovableContentTbody` | `getHeaderContent().querySelector(‘tbody’)` |
|
33
|
+
| `getFrozenRightContent`, `getMovableContent` | `getContent` |
|
34
|
+
|
35
|
+
## 20.2.36 (2022-06-30)
|
36
|
+
|
37
|
+
### Tree Grid
|
38
|
+
|
39
|
+
#### Features
|
40
|
+
|
41
|
+
- Provided support for inline editing with virtualization enabled. Please find the demo [here](https://ej2.syncfusion.com/demos/#/bootstrap5/tree-grid/virtual-scrolling.html).
|
42
|
+
- `#I323425`, `#I332700`, `#I344742`, `#I375307` - Provided support for frozen column with virtualization enabled.
|
43
|
+
|
44
|
+
- `#I334966`, `#I373929`, `#I332693`, `#I342835`, `#F172606`, `#F171250`, `#F171248` - Provided row drag and drop support with virtualization feature enabled.
|
45
|
+
- `#I367483` - Provided support for row indent and outdent functionality. Please find the demo link [here](https://ej2.syncfusion.com/angular/demos/#/bootstrap5/treegrid/inlineediting).
|
46
|
+
|
47
|
+
## 19.2.44 (2021-06-30)
|
48
|
+
|
49
|
+
### Tree Grid
|
50
|
+
|
51
|
+
#### Bug Fixes
|
52
|
+
|
53
|
+
- `#332604` - Resolved white space issue while using less number of records with Virtualization.
|
54
|
+
|
55
|
+
- `#I329350` - Immutable mode works fine for date values and row reordering.
|
56
|
+
- `#I329988`, `#I331155` - Editing a newly added child record works fine with self referential data.
|
57
|
+
|
58
|
+
## 18.4.30 (2020-12-17)
|
59
|
+
|
60
|
+
### Tree Grid
|
61
|
+
|
62
|
+
#### New Features
|
63
|
+
|
64
|
+
- `#294082` - Provided Immutable Support to refresh specific rows while perform Tree Grid actions.
|
65
|
+
- `#283491` - Provided error handling support to easily rectify errors in sample side.
|
66
|
+
- `#298682`, `#299561` - Added getVisibleRecords API to get the visible records based on collapsed rows state.
|
67
|
+
|
68
|
+
#### Bug Fixes
|
69
|
+
|
70
|
+
- `#F157882`- After editing the row using `updateRow` method, `getCurrentViewRecords` method updated properly.
|
71
|
+
- `#F157882`- When editing with a double click, it works fine when we only have one record.
|
72
|
+
- `#289600` - Records get expanded properly after collapsing all records using `collapseAtLevel` method in observable binding.
|
73
|
+
- `#F157099` - Virtualization with Aggregates works fine with large number of records.
|
74
|
+
- `#296233` - Row Drag and Drop within treegrid works fine.
|
75
|
+
- `#297986` - Row Drag and drop within treegrid works fine with checkbox enabled.
|
76
|
+
- `#F158886` - Cell editing with frozen columns works fine.
|
77
|
+
- `#299761` - Treegrid column width renders fine in Internet Explorer when Virtualization is enabled.
|
78
|
+
- `#301861` - Tree Grid dataSource updated properly while using setCellValue method.
|
79
|
+
- `#F159697` - Order of child records are displayed correctly after editing in remote data binding.
|
80
|
+
- `292453` - Treegrid refresh method works fine after updating the data.
|
81
|
+
|
82
|
+
- `#289600` - Records get expanded properly after collapsing all records using `collapseAtLevel` method in observable binding.
|
83
|
+
- `#F157099` - Virtualization with Aggregates works fine with large number of records.
|
84
|
+
- `#297986` - Row Drag and drop within treegrid works fine with checkbox enabled.
|
85
|
+
- `#F158886` - Cell editing with frozen columns works fine.
|
86
|
+
- `#F159697` - Order of child records are displayed correctly after editing in remote data binding.
|
87
|
+
|
88
|
+
## 18.3.35 (2020-10-01)
|
89
|
+
|
90
|
+
### TreeGrid
|
91
|
+
|
92
|
+
#### Bug Fixes
|
93
|
+
|
94
|
+
- `#F157258` - `updateRow` method works fine for updating collapsed data.
|
95
|
+
- `#292933` - checkbox rendered properly while using the template column.
|
96
|
+
- `#289685` - Aggregate Column Formatting is working fine
|
97
|
+
- `#288542` - The Expand / Collapse icon has been rendered properly while enabling expand state mapping and adding a new record.
|
98
|
+
- `#287235` - While enabling expand state mapping the Expand / Collapse icon works fine at nested child levels.
|
99
|
+
- `#285434`- Column SortComparer function works fine with null values for RemoteSaveAdaptor datasource.
|
100
|
+
- `#284987`- Records rendered properly while using remote save adaptor in created event.
|
101
|
+
- `#285434`- Column SortComparer function works fine with null values in datasource.
|
102
|
+
- `#F155077`- Records rendered properly while using remote data with jQuery unobtrusive library.
|
103
|
+
|
104
|
+
- `#F157258` - `updateRow` method works fine for updating collapsed data.
|
105
|
+
|
106
|
+
## 18.2.44 (2020-07-07)
|
107
|
+
|
108
|
+
### TreeGrid
|
109
|
+
|
110
|
+
#### Bug Fixes
|
111
|
+
|
112
|
+
- `#279109` - Checkbox checked properly for child records in remote data.
|
113
|
+
- `#277364`, `#279732` - Checkbox with `allowRowDragAndDrop` property rendered properly after editing and cancelling in cell edit mode.
|
114
|
+
- `#277364` - Checkbox with `autoCheckHierarchy` property rendered properly after editing and cancelling in cell edit mode.
|
115
|
+
- `#278266` - Edit type `dropdownedit` is working properly in cell edit mode when enter key is pressed.
|
116
|
+
- `#272026` - `updateRow` method works fine for updating treegrid data source.
|
117
|
+
- `#273309` - Editing the zeroth level added record works fine in Batch mode.
|
118
|
+
- `#277361` - Auto generated columns work fine when two treegrids are rendered on the same page.
|
119
|
+
|
120
|
+
- `F153495` - Sorting after editing is working fine with cell edit mode.
|
121
|
+
- `#266963`- Drag and drop works fine in unordered list of data.
|
122
|
+
- `#F151795` - Localization support works fine in Add row, Above, Below Context Menu Items.
|
123
|
+
- `#F151795`- In Drag and drop, while dropping at first row, its border color is changed properly.
|
124
|
+
|
125
|
+
#### New Features
|
126
|
+
|
127
|
+
- `#258863`, `#271677` - Expand & Collapse child rows support has been provided in Excel Export.
|
128
|
+
- Columnchooser support has been provided that allows user to show or hide columns dynamically.
|
129
|
+
- Provided support for Editing with Virtualization feature.
|
130
|
+
|
131
|
+
#### Breaking Changes
|
132
|
+
|
133
|
+
- Now `data`, `row` these Tree Grid selection event arguments are get array values only when we perform multi selection. Please find modified event arguments and it types from the below table,
|
134
|
+
|
135
|
+
`Properties` |`Type`
|
136
|
+
-----|-----
|
137
|
+
`data` | `Object or Object[]`
|
138
|
+
`rowIndex` | `number`
|
139
|
+
`rowIndexes` | `number[]`
|
140
|
+
`row` | `Element or Element[]`
|
141
|
+
|
142
|
+
## 17.4.39 (2019-12-17)
|
143
|
+
|
144
|
+
### TreeGrid
|
145
|
+
|
146
|
+
#### New Features
|
147
|
+
|
148
|
+
- AutoFill support has been provided that allows users to copy the data of selected cells and paste it to another cells by dragging.
|
149
|
+
|
150
|
+
#### Breaking Changes
|
151
|
+
|
152
|
+
- Default value of column's `disableHtmlEncode` is set to true, so the HTML tags can be displayed in the Grid header and content by default. To display it as html content `disableHtmlEncode` need to be set as false.
|
153
|
+
|
154
|
+
#### Bug Fixes
|
155
|
+
|
156
|
+
- `#148913` - Expand icon displays properly for the nested records in Custom Data Binding.
|
157
|
+
|
158
|
+
## 17.2.48-beta (2019-08-28)
|
159
|
+
|
160
|
+
### TreeGrid
|
161
|
+
|
162
|
+
#### New Features
|
163
|
+
|
164
|
+
- Checkbox selection support has been provided that allows users to select rows using checkbox.
|
165
|
+
- Checkbox Column support has been provided that allows users to check rows using checkbox in treegrid column.
|
166
|
+
|
167
|
+
#### Bug Fixes
|
168
|
+
|
169
|
+
- Change detection for properties `dataSource` and `query` were handled for remote data.
|
170
|
+
- Edited records can be searched/filtered.
|
171
|
+
- Inner level records will be collapsed/expanded after filtering/searching actions.
|
172
|
+
|
173
|
+
## 17.1.1-beta (2019-01-29)
|
174
|
+
|
175
|
+
### TreeGrid
|
176
|
+
|
177
|
+
#### Bug Fixes
|
178
|
+
|
179
|
+
- `Query` maintenance support provided for `refresh` method after expanding any child rows.
|
180
|
+
- Property change support for `height` property has been provided.
|
181
|
+
- Expand icon is prevented from displaying for the root/zeroth level record which has `hasChildMapping` field as false.
|
182
|
+
- Child records of third level or its successor displays properly based on their hierarchy relation in self reference data binding.
|
183
|
+
|
184
|
+
- Expand icon is prevented from displaying for the root/zeroth level record which has `hasChildMapping` field as false.
|
185
|
+
|
186
|
+
#### New Features
|
187
|
+
|
188
|
+
- `Excel-Like Filtering` support is provided that allows users to create complex filter criteria for a column by allowing users to select possible filter values from a checkbox list. The advanced filter can be used to build complex filter criteria.
|
189
|
+
|
190
|
+
## 16.4.45 (2019-01-02)
|
191
|
+
|
192
|
+
### TreeGrid
|
193
|
+
|
194
|
+
#### Bug Fixes
|
195
|
+
|
196
|
+
- Added events for the column menu feature and added `columnMenuItems` API to modify the column menu items in column menu.
|
197
|
+
- Added `sortComparer` API to perform custom sorting in TreeGrid.
|
198
|
+
|
199
|
+
## 16.4.44 (2018-12-24)
|
200
|
+
|
201
|
+
### TreeGrid
|
202
|
+
|
203
|
+
#### Bug Fixes
|
204
|
+
|
205
|
+
- Expanding and Collapsing records is working fine when `pageSizeMode` is set as `All`.
|
206
|
+
- `expandAtLevel`, `collapseAtLevel`, `expandAll` and `collapseAll` methods are working fine when `pageSizeMode` is set as `All`.- `actionBegin`, `actionComplete` and `actionFailure` events are triggered properly.
|
207
|
+
- Additional parameters that are added using the `query` property of TreeGrid are passed to the server side when a parent record is expanded.## 19.1.54 (2021-03-30)
|
208
|
+
|
209
|
+
### Tree Grid
|
210
|
+
|
211
|
+
#### Bug Fixes
|
212
|
+
|
213
|
+
- `#332604` - Resolved white space issue while using less number of records with Virtualization.
|
214
|
+
|
package/esm2020/public_api.mjs
CHANGED
@@ -1,3 +1,2 @@
|
|
1
|
-
// Mapping root file for package generation
|
2
1
|
export * from './src/index';
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NyYy9pbmRleCc7Il19
|
@@ -97,4 +97,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
97
97
|
},
|
98
98
|
}]
|
99
99
|
}], ctorParameters: function () { return []; } });
|
100
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1ucy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHJlZWdyaWQvY29sdW1ucy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQW9CLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0YsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3hELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQUVyRSxJQUFJLEtBQUssR0FBYSxDQUFDLGNBQWMsRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixFQUFFLGNBQWMsRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLHFCQUFxQixFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN4cEIsSUFBSSxPQUFPLEdBQWEsRUFBRSxDQUFDO0FBQzNCOzs7Ozs7Ozs7OztHQVdHO0FBU0gsTUFBTSxPQUFPLGVBQWdCLFNBQVEsV0FBNEI7SUErVTdELFlBQW9CLGdCQUFpQztRQUNqRCxLQUFLLEVBQUUsQ0FBQztRQURRLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUI7UUEzVTlDLFNBQUksR0FBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBNlVoQyxRQUFRLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztJQUNuQyxDQUFDOzs0R0FwVlEsZUFBZTtnR0FBZixlQUFlLHMzREFIVyx1QkFBdUI7QUFrVDFEO0lBREMsUUFBUSxFQUFFO2lEQUNVO0FBUXJCO0lBREMsUUFBUSxFQUFFO3VEQUNnQjtBQUczQjtJQURDLFFBQVEsRUFBRTs0REFDcUI7QUFRaEM7SUFEQyxRQUFRLEVBQUU7dURBQ2dCO0FBRzNCO0lBREMsUUFBUSxFQUFFO3lEQUNrQjtBQVE3QjtJQURDLFFBQVEsRUFBRTtxREFDYzsyRkE3VWhCLGVBQWU7a0JBUjNCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGlDQUFpQztvQkFDM0MsTUFBTSxFQUFFLEtBQUs7b0JBQ2IsT0FBTyxFQUFFLE9BQU87b0JBQ2hCLE9BQU8sRUFBRTt3QkFDTCxZQUFZLEVBQUUsSUFBSSxZQUFZLENBQUMsdUJBQXVCLENBQUM7cUJBQzFEO2lCQUNKO3VHQWdUVSxRQUFRO3NCQUZkLFlBQVk7dUJBQUMsVUFBVTtnQkFVakIsY0FBYztzQkFGcEIsWUFBWTt1QkFBQyxnQkFBZ0I7Z0JBS3ZCLG1CQUFtQjtzQkFGekIsWUFBWTt1QkFBQyxvQkFBb0I7Z0JBVTNCLGNBQWM7c0JBRnBCLFlBQVk7dUJBQUMsZ0JBQWdCO2dCQUt2QixnQkFBZ0I7c0JBRnRCLFlBQVk7dUJBQUMsa0JBQWtCO2dCQVV6QixZQUFZO3NCQUZsQixZQUFZO3VCQUFDLGNBQWM7O0FBWWhDOzs7R0FHRztBQU9ILE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxTQUEyQjtJQUM3RDtRQUNJLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNyQixDQUFDOzs2R0FIUSxnQkFBZ0I7aUdBQWhCLGdCQUFnQix1RkFIUyxlQUFlOzJGQUd4QyxnQkFBZ0I7a0JBTjVCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsT0FBTyxFQUFFO3dCQUNMLFFBQVEsRUFBRSxJQUFJLGVBQWUsQ0FBQyxlQUFlLENBQUM7cUJBQ2pEO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBWaWV3Q29udGFpbmVyUmVmLCBDb250ZW50Q2hpbGRyZW4sIENvbnRlbnRDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tcGxleEJhc2UsIEFycmF5QmFzZSwgc2V0VmFsdWUgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItYW5ndWxhci1iYXNlJztcbmltcG9ydCB7IFRlbXBsYXRlIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItYmFzZSc7XG5pbXBvcnQgeyBTdGFja2VkQ29sdW1uc0RpcmVjdGl2ZSB9IGZyb20gJy4vc3RhY2tlZC1jb2x1bW4uZGlyZWN0aXZlJztcblxubGV0IGlucHV0OiBzdHJpbmdbXSA9IFsnYWxsb3dFZGl0aW5nJywgJ2FsbG93RmlsdGVyaW5nJywgJ2FsbG93UmVvcmRlcmluZycsICdhbGxvd1Jlc2l6aW5nJywgJ2FsbG93U29ydGluZycsICdjbGlwTW9kZScsICdjb2x1bW5zJywgJ2NvbW1hbmRzJywgJ2N1c3RvbUF0dHJpYnV0ZXMnLCAnZGVmYXVsdFZhbHVlJywgJ2Rpc2FibGVIdG1sRW5jb2RlJywgJ2Rpc3BsYXlBc0NoZWNrQm94JywgJ2VkaXQnLCAnZWRpdFRlbXBsYXRlJywgJ2VkaXRUeXBlJywgJ2ZpZWxkJywgJ2ZpbHRlcicsICdmaWx0ZXJCYXJUZW1wbGF0ZScsICdmaWx0ZXJUZW1wbGF0ZScsICdmb3JtYXQnLCAnZm9ybWF0dGVyJywgJ2ZyZWV6ZScsICdoZWFkZXJUZW1wbGF0ZScsICdoZWFkZXJUZXh0JywgJ2hlYWRlclRleHRBbGlnbicsICdoaWRlQXRNZWRpYScsICdpc0Zyb3plbicsICdpc0lkZW50aXR5JywgJ2lzUHJpbWFyeUtleScsICdsb2NrQ29sdW1uJywgJ21heFdpZHRoJywgJ21pbldpZHRoJywgJ3Nob3dDaGVja2JveCcsICdzaG93Q29sdW1uTWVudScsICdzaG93SW5Db2x1bW5DaG9vc2VyJywgJ3NvcnRDb21wYXJlcicsICd0ZW1wbGF0ZScsICd0ZXh0QWxpZ24nLCAndHlwZScsICd1aWQnLCAndmFsaWRhdGlvblJ1bGVzJywgJ3ZhbHVlQWNjZXNzb3InLCAndmlzaWJsZScsICd3aWR0aCddO1xubGV0IG91dHB1dHM6IHN0cmluZ1tdID0gW107XG4vKipcbiAqIGBlLWNvbHVtbmAgZGlyZWN0aXZlIHJlcHJlc2VudCBhIGNvbHVtbiBvZiB0aGUgQW5ndWxhciBUcmVlR3JpZC4gXG4gKiBJdCBtdXN0IGJlIGNvbnRhaW5lZCBpbiBhIFRyZWVHcmlkIGNvbXBvbmVudChgZWpzLXRyZWVncmlkYCkuIFxuICogYGBgaHRtbFxuICogPGVqcy10cmVlZ3JpZCBbZGF0YVNvdXJjZV09J2RhdGEnIGFsbG93UGFnaW5nPSd0cnVlJyBhbGxvd1NvcnRpbmc9J3RydWUnPiBcbiAqICAgPGUtY29sdW1ucz5cbiAqICAgIDxlLWNvbHVtbiBmaWVsZD0nSUQnIHdpZHRoPScxMDAnPjwvZS1jb2x1bW4+XG4gKiAgICA8ZS1jb2x1bW4gZmllbGQ9J25hbWUnIGhlYWRlclRleHQ9J05hbWUnIHdpZHRoPScxMDAnPjwvZS1jb2x1bW4+XG4gKiAgIDwvZS1jb2x1bW5zPlxuICogPC9lanMtdHJlZWdyaWQ+XG4gKiBgYGBcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdlanMtdHJlZWdyaWQ+ZS1jb2x1bW5zPmUtY29sdW1uJyxcbiAgICBpbnB1dHM6IGlucHV0LFxuICAgIG91dHB1dHM6IG91dHB1dHMsICAgIFxuICAgIHF1ZXJpZXM6IHtcbiAgICAgICAgY2hpbGRDb2x1bW5zOiBuZXcgQ29udGVudENoaWxkKFN0YWNrZWRDb2x1bW5zRGlyZWN0aXZlKVxuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgQ29sdW1uRGlyZWN0aXZlIGV4dGVuZHMgQ29tcGxleEJhc2U8Q29sdW1uRGlyZWN0aXZlPiB7XG4gICAgcHVibGljIGRpcmVjdGl2ZVByb3BMaXN0OiBhbnk7XG5cdFxuICAgIHB1YmxpYyBjaGlsZENvbHVtbnM6IGFueTtcbiAgICBwdWJsaWMgdGFnczogc3RyaW5nW10gPSBbJ2NvbHVtbnMnXTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgZGF0YSB0eXBlIG9mIHRoZSBjb2x1bW4uXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyB0eXBlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIElmIGBhbGxvd0VkaXRpbmdgIHNldCB0byBmYWxzZSwgdGhlbiBpdCBkaXNhYmxlcyBlZGl0aW5nIG9mIGEgcGFydGljdWxhciBjb2x1bW4uIFxuICAgICAqIEJ5IGRlZmF1bHQgYWxsIGNvbHVtbnMgYXJlIGVkaXRhYmxlLlxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICBwdWJsaWMgYWxsb3dFZGl0aW5nOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIElmIGBhbGxvd0ZpbHRlcmluZ2Agc2V0IHRvIGZhbHNlLCB0aGVuIGl0IGRpc2FibGVzIGZpbHRlcmluZyBvcHRpb24gYW5kIGZpbHRlciBiYXIgZWxlbWVudCBvZiBhIHBhcnRpY3VsYXIgY29sdW1uLiBcbiAgICAgKiBCeSBkZWZhdWx0IGFsbCBjb2x1bW5zIGFyZSBmaWx0ZXJhYmxlLlxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICBwdWJsaWMgYWxsb3dGaWx0ZXJpbmc6IGFueTtcbiAgICAvKiogXG4gICAgICogSWYgYGFsbG93UmVvcmRlcmluZ2Agc2V0IHRvIGZhbHNlLCB0aGVuIGl0IGRpc2FibGVzIHJlb3JkZXIgb2YgYSBwYXJ0aWN1bGFyIGNvbHVtbi4gXG4gICAgICogQnkgZGVmYXVsdCBhbGwgY29sdW1ucyBjYW4gYmUgcmVvcmRlci5cbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgcHVibGljIGFsbG93UmVvcmRlcmluZzogYW55O1xuICAgIC8qKiBcbiAgICAgKiBJZiBgYWxsb3dSZXNpemluZ2Agc2V0IHRvIGZhbHNlLCBpdCBkaXNhYmxlcyByZXNpemUgb3B0aW9uIG9mIGEgcGFydGljdWxhciBjb2x1bW4uXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIHB1YmxpYyBhbGxvd1Jlc2l6aW5nOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIElmIGBhbGxvd1NvcnRpbmdgIHNldCB0byBmYWxzZSwgdGhlbiBpdCBkaXNhYmxlcyBzb3J0aW5nIG9wdGlvbiBvZiBhIHBhcnRpY3VsYXIgY29sdW1uLiBcbiAgICAgKiBCeSBkZWZhdWx0IGFsbCBjb2x1bW5zIGFyZSBzb3J0YWJsZS5cbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgcHVibGljIGFsbG93U29ydGluZzogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHRoZSBjZWxsIGNvbnRlbnQncyBvdmVyZmxvdyBtb2RlLiBUaGUgYXZhaWxhYmxlIG1vZGVzIGFyZSBcbiAgICAgKiAgXG4gICAgICogYWxzbyBpdCB3aWxsIGRpc3BsYXkgdG9vbHRpcCB3aGlsZSBob3ZlciBvbiBlbGxpcHNpcyBhcHBsaWVkIGNlbGwuXG4gICAgICogQGRlZmF1bHQgU3luY2Z1c2lvbi5FSjIuR3JpZHMuQ2xpcE1vZGUuRWxsaXBzaXNcbiAgICAgKiBAaXNlbnVtZXJhdGlvbiB0cnVlXG4gICAgICogQGFzcHR5cGUgU3luY2Z1c2lvbi5FSjIuR3JpZHMuQ2xpcE1vZGVcbiAgICAgKi9cbiAgICBwdWJsaWMgY2xpcE1vZGU6IGFueTtcbiAgICAvKiogXG4gICAgICogVXNlZCB0byByZW5kZXIgbXVsdGlwbGUgaGVhZGVyIHJvd3Moc3RhY2tlZCBoZWFkZXJzKSBvbiBUcmVlR3JpZCBoZWFkZXIuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyBjb2x1bW5zOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIGBjb21tYW5kc2AgcHJvdmlkZXMgYW4gb3B0aW9uIHRvIGRpc3BsYXkgY29tbWFuZCBidXR0b25zIGluIGV2ZXJ5IGNlbGwuIFxuICAgICAqIFRoZSBhdmFpbGFibGUgYnVpbHQtaW4gY29tbWFuZCBidXR0b25zIGFyZSBcbiAgICAgKiAqIEVkaXQgLSBFZGl0IHRoZSByZWNvcmQuIFxuICAgICAqICogRGVsZXRlIC0gRGVsZXRlIHRoZSByZWNvcmQuIFxuICAgICAqICogU2F2ZSAtIFNhdmUgdGhlIHJlY29yZC4gXG4gICAgICogKiBDYW5jZWwgLSBDYW5jZWwgdGhlIGVkaXQgc3RhdGUuXG4gICAgICogXG4gICAgICogVGhlIGZvbGxvd2luZyBjb2RlIGV4YW1wbGUgaW1wbGVtZW50cyB0aGUgY3VzdG9tIGNvbW1hbmQgY29sdW1uLlxuICAgICAqYGBgaHRtbFxuICAgICAqPHN0eWxlIHR5cGU9XCJ0ZXh0L2Nzc1wiIGNsYXNzPVwiY3NzU3R5bGVzXCI+XG4gICAgICouZGV0YWlscy1pY29uOmJlZm9yZVxuICAgICAqe1xuICAgICAqICAgY29udGVudDpcIlxcZTc0ZFwiO1xuICAgICAqfVxuICAgICAqPC9zdHlsZT5cbiAgICAgKjxkaXYgaWQ9XCJUcmVlR3JpZFwiPjwvZGl2PlxuICAgICAqYGBgXG4gICAgICpgYGB0eXBlc2NyaXB0XG4gICAgICp2YXIgZ3JpZE9iaiA9IG5ldyBUcmVlR3JpZCh7XG4gICAgICpkYXRhc291cmNlOiB3aW5kb3cuZ3JpZERhdGEsXG4gICAgICpjb2x1bW5zIDogW1xuICAgICAqIHsgZmllbGQ6ICdDdXN0b21lcklEJywgaGVhZGVyVGV4dDogJ0N1c3RvbWVyIElEJyB9LFxuICAgICAqIHsgZmllbGQ6ICdDdXN0b21lck5hbWUnLCBoZWFkZXJUZXh0OiAnQ3VzdG9tZXIgTmFtZScgfSxcbiAgICAgKiB7Y29tbWFuZHM6IFt7YnV0dG9uT3B0aW9uOntjb250ZW50OiAnRGV0YWlscycsIGNsaWNrOiBvbkNsaWNrLCBjc3NDbGFzczogZGV0YWlscy1pY29ufX1dLCBoZWFkZXJUZXh0OiAnQ3VzdG9tZXIgRGV0YWlscyd9XG4gICAgICpdXG4gICAgICpncmlkT2JqLmFwcGVuZFRvKFwiI1RyZWVHcmlkXCIpO1xuICAgICAqYGBgXG4gICAgICogICAgIFxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKi9cbiAgICBwdWJsaWMgY29tbWFuZHM6IGFueTtcbiAgICAvKiogXG4gICAgICogVGhlIENTUyBzdHlsZXMgYW5kIGF0dHJpYnV0ZXMgb2YgdGhlIGNvbnRlbnQgY2VsbHMgb2YgYSBwYXJ0aWN1bGFyIGNvbHVtbiBjYW4gYmUgY3VzdG9taXplZC5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICovXG4gICAgcHVibGljIGN1c3RvbUF0dHJpYnV0ZXM6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyBkZWZhdWx0IHZhbHVlcyBmb3IgdGhlIGNvbXBvbmVudCB3aGVuIGFkZGluZyBhIG5ldyByZWNvcmQgdG8gdGhlIFRyZWVHcmlkLlxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKi9cbiAgICBwdWJsaWMgZGVmYXVsdFZhbHVlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIElmIGBkaXNhYmxlSHRtbEVuY29kZWAgaXMgc2V0IHRvIHRydWUsIGl0IGVuY29kZXMgdGhlIEhUTUwgb2YgdGhlIGhlYWRlciBhbmQgY29udGVudCBjZWxscy5cbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgcHVibGljIGRpc2FibGVIdG1sRW5jb2RlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIElmIGBkaXNwbGF5QXNDaGVja0JveGAgaXMgc2V0IHRvIHRydWUsIGl0IGRpc3BsYXlzIHRoZSBjb2x1bW4gdmFsdWUgYXMgYSBjaGVjayBib3ggaW5zdGVhZCBvZiBCb29sZWFuIHZhbHVlLlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgcHVibGljIGRpc3BsYXlBc0NoZWNrQm94OiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgdGhlIGBJRWRpdENlbGxgIG9iamVjdCB0byBjdXN0b21pemUgZGVmYXVsdCBlZGl0IGNlbGwuXG4gICAgICogQGRlZmF1bHQge31cbiAgICAgKi9cbiAgICBwdWJsaWMgZWRpdDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHRoZSB0eXBlIG9mIGNvbXBvbmVudCBmb3IgZWRpdGluZy5cbiAgICAgKiBAZGVmYXVsdCAnc3RyaW5nZWRpdCdcbiAgICAgKi9cbiAgICBwdWJsaWMgZWRpdFR5cGU6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgZmllbGQgbmFtZSBvZiBjb2x1bW4gd2hpY2ggaXMgbWFwcGVkIHdpdGggbWFwcGluZyBuYW1lIG9mIERhdGFTb3VyY2UuIFxuICAgICAqIFRoZSBib3VuZGVkIGNvbHVtbnMgY2FuIGJlIHNvcnQsIGZpbHRlciBldGMuLCBcbiAgICAgKiBUaGUgYGZpZWxkYCBuYW1lIG11c3QgYmUgYSB2YWxpZCBKYXZhU2NyaXB0IGlkZW50aWZpZXIsIFxuICAgICAqIHRoZSBmaXJzdCBjaGFyYWN0ZXIgbXVzdCBiZSBhbiBhbHBoYWJldCBhbmQgc2hvdWxkIG5vdCBjb250YWluIHNwYWNlcyBhbmQgc3BlY2lhbCBjaGFyYWN0ZXJzLlxuICAgICAqIEBkZWZhdWx0ICd1bmRlZmluZWQnXG4gICAgICovXG4gICAgcHVibGljIGZpZWxkOiBhbnk7XG4gICAgLyoqIFxuICAgICAqICBEZWZpbmVzIHRoZSBmaWx0ZXIgb3B0aW9ucyB0byBjdXN0b21pemUgZmlsdGVyaW5nIGZvciB0aGUgcGFydGljdWxhciBjb2x1bW4uXG4gICAgICogXG4gICAgICogIEBkZWZhdWx0IG51bGxcbiAgICAgKiAgICAgXG4gICAgICovXG4gICAgcHVibGljIGZpbHRlcjogYW55O1xuICAgIC8qKiBcbiAgICAgKiBUaGUgYGZpbHRlckJhclRlbXBsYXRlYCBpcyB1c2VkIHRvIGFkZCBhIGN1c3RvbSBjb21wb25lbnQgaW5zdGVhZCBvZiBkZWZhdWx0IGlucHV0IGNvbXBvbmVudCBmb3IgZmlsdGVyIGJhci4gXG4gICAgICogSXQgaGF2ZSBjcmVhdGUgYW5kIHJlYWQgZnVuY3Rpb25zLiBcbiAgICAgKiAqIGNyZWF0ZTogSXQgaXMgdXNlZCBmb3IgY3JlYXRpbmcgY3VzdG9tIGNvbXBvbmVudHMuIFxuICAgICAqICogcmVhZDogSXQgaXMgdXNlZCB0byBwZXJmb3JtIGN1c3RvbSBmaWx0ZXIgYWN0aW9uLlxuICAgICAqIFxuICAgICAqIGBgYGh0bWxcbiAgICAgKjxkaXYgaWQ9XCJUcmVlR3JpZFwiPjwvZGl2PlxuICAgICAqYGBgXG4gICAgICpgYGB0eXBlc2NyaXB0XG4gICAgICpsZXQgZ3JpZE9iajogVHJlZUdyaWQgPSBuZXcgVHJlZUdyaWQoe1xuICAgICAqZGF0YVNvdXJjZTogZmlsdGVyRGF0YSxcbiAgICAgKmNvbHVtbnM6IFtcbiAgICAgKiAgeyBmaWVsZDogJ09yZGVySUQnLCBoZWFkZXJUZXh0OiAnT3JkZXIgSUQnIH0sXG4gICAgICogIHtcbiAgICAgKiAgICAgZmllbGQ6ICdFbXBsb3llZUlEJywgZmlsdGVyQmFyVGVtcGxhdGU6IHtcbiAgICAgKiAgICAgICAgY3JlYXRlOiAoYXJnczogeyBlbGVtZW50OiBFbGVtZW50LCBjb2x1bW46IENvbHVtbiB9KSA9PiB7XG4gICAgICogICAgICAgICAgICAgbGV0IGlucHV0OiBIVE1MSW5wdXRFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcbiAgICAgKiAgICAgICAgICAgICBpbnB1dC5pZCA9ICdFbXBsb3llZUlEJztcbiAgICAgKiAgICAgICAgICAgICBpbnB1dC50eXBlID0gJ3RleHQnO1xuICAgICAqICAgICAgICAgICAgIHJldHVybiBpbnB1dDtcbiAgICAgKiAgICAgICAgfSxcbiAgICAgKiAgICAgICAgd3JpdGU6IChhcmdzOiB7IGVsZW1lbnQ6IEVsZW1lbnQsIGNvbHVtbjogQ29sdW1uIH0pID0+IHtcbiAgICAgKiAgICAgICAgICAgIGFyZ3MuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsIGFyZ3MuY29sdW1uLmZpbHRlckJhclRlbXBsYXRlLnJlYWQgYXMgRXZlbnRMaXN0ZW5lcik7XG4gICAgICogICAgICAgIH0sXG4gICAgICogICAgICAgIHJlYWQ6IChhcmdzOiB7IGVsZW1lbnQ6IEhUTUxJbnB1dEVsZW1lbnQsIGNvbHVtbkluZGV4OiBudW1iZXIsIGNvbHVtbjogQ29sdW1uIH0pID0+IHtcbiAgICAgKiAgICAgICAgICAgIGdyaWRPYmouZmlsdGVyQnlDb2x1bW4oYXJncy5lbGVtZW50LmlkLCAnZXF1YWwnLCBhcmdzLmVsZW1lbnQudmFsdWUpO1xuICAgICAqICAgICAgIH1cbiAgICAgKiAgICB9XG4gICAgICogfV0sXG4gICAgICogIGFsbG93RmlsdGVyaW5nOiB0cnVlXG4gICAgICp9KTtcbiAgICAgKmdyaWRPYmouYXBwZW5kVG8oJyNUcmVlR3JpZCcpO1xuICAgICAqYGBgXG4gICAgICogICAgIFxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKi9cbiAgICBwdWJsaWMgZmlsdGVyQmFyVGVtcGxhdGU6IGFueTtcbiAgICAvKiogXG4gICAgICogSXQgaXMgdXNlZCB0byBjaGFuZ2UgZGlzcGxheSB2YWx1ZSB3aXRoIHRoZSBnaXZlbiBmb3JtYXQgYW5kIGRvZXMgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgZGF0YS4gXG4gICAgICogR2V0cyB0aGUgZm9ybWF0IGZyb20gdGhlIHVzZXIgd2hpY2ggY2FuIGJlIHN0YW5kYXJkIG9yIGN1c3RvbSBcbiAgICAgKiBbYG51bWJlcmBdKGh0dHBzOi8vZWoyLnN5bmNmdXNpb24uY29tL2RvY3VtZW50YXRpb24vY29tbW9uL2ludGVybmF0aW9uYWxpemF0aW9uLyNzdXBwb3J0ZWQtZm9ybWF0LXN0cmluZykgXG4gICAgICogYW5kIFtgZGF0ZWBdKGh0dHBzOi8vZWoyLnN5bmNmdXNpb24uY29tL2RvY3VtZW50YXRpb24vY29tbW9uL2ludGVybmF0aW9uYWxpemF0aW9uLyNzdXBwb3J0ZWQtZm9ybWF0LXN0cmluZy0xKSBmb3JtYXRzLlxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKiBAYXNwdHlwZSBzdHJpbmdcbiAgICAgKi9cbiAgICBwdWJsaWMgZm9ybWF0OiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgdGhlIG1ldGhvZCB3aGljaCBpcyB1c2VkIHRvIGFjaGlldmUgY3VzdG9tIGZvcm1hdHRpbmcgZnJvbSBhbiBleHRlcm5hbCBmdW5jdGlvbi4gXG4gICAgICogVGhpcyBmdW5jdGlvbiB0cmlnZ2VycyBiZWZvcmUgcmVuZGVyaW5nIG9mIGVhY2ggY2VsbC5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICovXG4gICAgcHVibGljIGZvcm1hdHRlcjogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHdoaWNoIHNpZGUgdGhlIGNvbHVtbiBuZWVkIHRvIGZyZWV6ZVxuICAgICAqIEBkZWZhdWx0IFN5bmNmdXNpb24uRUoyLkdyaWRzLkZyZWV6ZURpcmVjdGlvbi5Ob25lXG4gICAgICogQGlzZW51bWVyYXRpb24gdHJ1ZVxuICAgICAqIEBhc3B0eXBlIFN5bmNmdXNpb24uRUoyLkdyaWRzLkZyZWV6ZURpcmVjdGlvblxuICAgICAqL1xuICAgIHB1YmxpYyBmcmVlemU6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgaGVhZGVyIHRleHQgb2YgY29sdW1uIHdoaWNoIGlzIHVzZWQgdG8gZGlzcGxheSBpbiBjb2x1bW4gaGVhZGVyLiBcbiAgICAgKiBJZiBgaGVhZGVyVGV4dGAgaXMgbm90IGRlZmluZWQsIHRoZW4gZmllbGQgbmFtZSB2YWx1ZSB3aWxsIGJlIGFzc2lnbmVkIHRvIGhlYWRlciB0ZXh0LlxuICAgICAqIEBkZWZhdWx0ICd1bmRlZmluZWQnXG4gICAgICovXG4gICAgcHVibGljIGhlYWRlclRleHQ6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lIHRoZSBhbGlnbm1lbnQgb2YgY29sdW1uIGhlYWRlciB3aGljaCBpcyB1c2VkIHRvIGFsaWduIHRoZSB0ZXh0IG9mIGNvbHVtbiBoZWFkZXIuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqIEBhc3BkZWZhdWx0dmFsdWVpZ25vcmUgXG4gICAgICogQGlzZW51bWVyYXRpb24gdHJ1ZVxuICAgICAqIEBhc3B0eXBlIFN5bmNmdXNpb24uRUoyLkdyaWRzLlRleHRBbGlnblxuICAgICAqL1xuICAgIHB1YmxpYyBoZWFkZXJUZXh0QWxpZ246IGFueTtcbiAgICAvKiogXG4gICAgICogQ29sdW1uIHZpc2liaWxpdHkgY2FuIGNoYW5nZSBiYXNlZCBvbiBbYE1lZGlhIFF1ZXJpZXNgXShodHRwOi8vY3NzbWVkaWFxdWVyaWVzLmNvbS93aGF0LWFyZS1jc3MtbWVkaWEtcXVlcmllcy5odG1sKS4gXG4gICAgICogYGhpZGVBdE1lZGlhYCBhY2NlcHRzIG9ubHkgdmFsaWQgTWVkaWEgUXVlcmllcy5cbiAgICAgKiBAZGVmYXVsdCAndW5kZWZpbmVkJ1xuICAgICAqL1xuICAgIHB1YmxpYyBoaWRlQXRNZWRpYTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBZb3UgY2FuIHVzZSB0aGlzIHByb3BlcnR5IHRvIGZyZWV6ZSBzZWxlY3RlZCBjb2x1bW5zIGluIGdyaWQuXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBwdWJsaWMgaXNGcm96ZW46IGFueTtcbiAgICAvKiogXG4gICAgICogSWYgYGlzSWRlbnRpdHlgIGlzIHNldCB0byB0cnVlLCB0aGVuIHRoaXMgY29sdW1uIGlzIGNvbnNpZGVyZWQgYXMgaWRlbnRpdHkgY29sdW1uLlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgcHVibGljIGlzSWRlbnRpdHk6IGFueTtcbiAgICAvKiogXG4gICAgICogSWYgYGlzUHJpbWFyeUtleWAgaXMgc2V0IHRvIHRydWUsIGNvbnNpZGVycyB0aGlzIGNvbHVtbiBhcyB0aGUgcHJpbWFyeSBrZXkgY29uc3RyYWludC5cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIHB1YmxpYyBpc1ByaW1hcnlLZXk6IGFueTtcbiAgICAvKiogXG4gICAgICogSWYgYGxvY2tDb2x1bW5gIHNldCB0byB0cnVlLCB0aGVuIGl0IGRpc2FibGVzIFJlb3JkZXJpbmcgb2YgYSBwYXJ0aWN1bGFyIGNvbHVtbi4gXG4gICAgICogVGhlIGxvY2tlZCBjb2x1bW4gd2lsbCBiZSBtb3ZlZCB0byBmaXJzdCBwb3NpdGlvbi5cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIHB1YmxpYyBsb2NrQ29sdW1uOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgdGhlIG1heGltdW0gd2lkdGggb2YgdGhlIGNvbHVtbiBpbiBwaXhlbHMgb3IgcGVyY2VudGFnZSwgd2hpY2ggd2lsbCByZXN0cmljdCByZXNpemluZyBiZXlvbmQgdGhpcyBwaXhlbHMgb3IgcGVyY2VudGFnZS5cbiAgICAgKiBAZGVmYXVsdCAndW5kZWZpbmVkJ1xuICAgICAqL1xuICAgIHB1YmxpYyBtYXhXaWR0aDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHRoZSBtaW5pbXVtIHdpZHRoIG9mIHRoZSBjb2x1bW4gaW4gcGl4ZWxzIG9yIHBlcmNlbnRhZ2UuXG4gICAgICogQGRlZmF1bHQgJ3VuZGVmaW5lZCdcbiAgICAgKi9cbiAgICBwdWJsaWMgbWluV2lkdGg6IGFueTtcbiAgICAvKiogXG4gICAgICogSWYgYHNob3dDaGVja2JveGAgc2V0IHRvIHRydWUsIHRoZW4gdGhlIGNoZWNrYm94ZXMgd2lsbCBiZSBkaXNwbGF5ZWQgaW4gcGFydGljdWxhciBjb2x1bW4uXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBwdWJsaWMgc2hvd0NoZWNrYm94OiBhbnk7XG4gICAgLyoqIFxuICAgICAqIElmIGBzaG93Q29sdW1uTWVudWAgc2V0IHRvIGZhbHNlLCB0aGVuIGl0IGRpc2FibGUgdGhlIGNvbHVtbiBtZW51IG9mIGEgcGFydGljdWxhciBjb2x1bW4uIFxuICAgICAqIEJ5IGRlZmF1bHQgY29sdW1uIG1lbnUgd2lsbCBzaG93IGZvciBhbGwgY29sdW1uc1xuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICBwdWJsaWMgc2hvd0NvbHVtbk1lbnU6IGFueTtcbiAgICAvKiogXG4gICAgICogSWYgYHNob3dJbkNvbHVtbkNob29zZXJgIHNldCB0byBmYWxzZSwgdGhlbiBoaWRlIHRoZSBwYXJ0aWN1bGFyIGNvbHVtbiBpbiBjb2x1bW4gY2hvb3Nlci4gXG4gICAgICogIEJ5IGRlZmF1bHQgYWxsIGNvbHVtbnMgYXJlIGRpc3BsYXllZCBpbiBjb2x1bW4gQ2hvb3Nlci5cbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgcHVibGljIHNob3dJbkNvbHVtbkNob29zZXI6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgc29ydCBjb21wYXJlciBwcm9wZXJ0eS5cbiAgICAgKiBAZGVmYXVsdCAndW5kZWZpbmVkJ1xuICAgICAqL1xuICAgIHB1YmxpYyBzb3J0Q29tcGFyZXI6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgYWxpZ25tZW50IG9mIHRoZSBjb2x1bW4gaW4gYm90aCBoZWFkZXIgYW5kIGNvbnRlbnQgY2VsbHMuXG4gICAgICogQGRlZmF1bHQgU3luY2Z1c2lvbi5FSjIuR3JpZHMuVGV4dEFsaWduLkxlZnRcbiAgICAgKiBAaXNlbnVtZXJhdGlvbiB0cnVlXG4gICAgICogQGFzcHR5cGUgU3luY2Z1c2lvbi5FSjIuR3JpZHMuVGV4dEFsaWduXG4gICAgICovXG4gICAgcHVibGljIHRleHRBbGlnbjogYW55O1xuICAgIC8qKiBcbiAgICAgKiBHZXRzIHRoZSB1bmlxdWUgaWRlbnRpZmllciB2YWx1ZSBvZiB0aGUgY29sdW1uLiBJdCBpcyB1c2VkIHRvIGdldCB0aGUgb2JqZWN0LlxuICAgICAqIEBkZWZhdWx0ICd1bmRlZmluZWQnXG4gICAgICovXG4gICAgcHVibGljIHVpZDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHJ1bGVzIHRvIHZhbGlkYXRlIGRhdGEgYmVmb3JlIGNyZWF0aW5nIGFuZCB1cGRhdGluZy5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICovXG4gICAgcHVibGljIHZhbGlkYXRpb25SdWxlczogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHRoZSBtZXRob2QgdXNlZCB0byBhcHBseSBjdXN0b20gY2VsbCB2YWx1ZXMgZnJvbSBleHRlcm5hbCBmdW5jdGlvbiBhbmQgZGlzcGxheSB0aGlzIG9uIGVhY2ggY2VsbCByZW5kZXJlZC5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICovXG4gICAgcHVibGljIHZhbHVlQWNjZXNzb3I6IGFueTtcbiAgICAvKiogXG4gICAgICogSWYgYHZpc2libGVgIGlzIHNldCB0byBmYWxzZSwgaGlkZXMgdGhlIHBhcnRpY3VsYXIgY29sdW1uLiBCeSBkZWZhdWx0LCBjb2x1bW5zIGFyZSBkaXNwbGF5ZWQuXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIHB1YmxpYyB2aXNpYmxlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgdGhlIHdpZHRoIG9mIHRoZSBjb2x1bW4gaW4gcGl4ZWxzIG9yIHBlcmNlbnRhZ2UuXG4gICAgICogQGRlZmF1bHQgJ3VuZGVmaW5lZCdcbiAgICAgKi9cbiAgICBwdWJsaWMgd2lkdGg6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgY29sdW1uIHRlbXBsYXRlIHRoYXQgcmVuZGVycyBjdXN0b21pemVkIGVsZW1lbnQgaW4gZWFjaCBjZWxsIG9mIHRoZSBjb2x1bW4uIFxuICAgICAqIEl0IGFjY2VwdHMgZWl0aGVyIFt0ZW1wbGF0ZSBzdHJpbmddKGh0dHBzOi8vZWoyLnN5bmNmdXNpb24uY29tL2RvY3VtZW50YXRpb24vY29tbW9uL3RlbXBsYXRlLWVuZ2luZS8pIG9yIEhUTUwgZWxlbWVudCBJRC5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICogQGFzcHR5cGUgc3RyaW5nXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgndGVtcGxhdGUnKVxuICAgIEBUZW1wbGF0ZSgpXG4gICAgcHVibGljIHRlbXBsYXRlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgdGhlIGhlYWRlciB0ZW1wbGF0ZSBhcyBzdHJpbmcgb3IgSFRNTCBlbGVtZW50IElEIHdoaWNoIGlzIHVzZWQgdG8gYWRkIGN1c3RvbWl6ZWQgZWxlbWVudCBpbiB0aGUgY29sdW1uIGhlYWRlci5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICogQGFzcHR5cGUgc3RyaW5nXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgnaGVhZGVyVGVtcGxhdGUnKVxuICAgIEBUZW1wbGF0ZSgpXG4gICAgcHVibGljIGhlYWRlclRlbXBsYXRlOiBhbnk7XG4gICAgQENvbnRlbnRDaGlsZCgnZmlsdGVySXRlbVRlbXBsYXRlJylcbiAgICBAVGVtcGxhdGUoKVxuICAgIHB1YmxpYyBmaWx0ZXJfaXRlbVRlbXBsYXRlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgdGhlIGZpbHRlciB0ZW1wbGF0ZS9VSSB0aGF0IGlzIHVzZWQgYXMgZmlsdGVyIGZvciBhIHBhcnRpY3VsYXIgY29sdW1uLiBcbiAgICAgKiBJdCBhY2NlcHRzIGVpdGhlciB0ZW1wbGF0ZSBzdHJpbmcgb3IgSFRNTCBlbGVtZW50IElELlxuICAgICAqIEBhc3BpZ25vcmUgXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgnZmlsdGVyVGVtcGxhdGUnKVxuICAgIEBUZW1wbGF0ZSgpXG4gICAgcHVibGljIGZpbHRlclRlbXBsYXRlOiBhbnk7XG4gICAgQENvbnRlbnRDaGlsZCgnY29tbWFuZHNUZW1wbGF0ZScpXG4gICAgQFRlbXBsYXRlKClcbiAgICBwdWJsaWMgY29tbWFuZHNUZW1wbGF0ZTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHRoZSBjZWxsIGVkaXQgdGVtcGxhdGUgdGhhdCB1c2VkIGFzIGVkaXRvciBmb3IgYSBwYXJ0aWN1bGFyIGNvbHVtbi4gXG4gICAgICogSXQgYWNjZXB0cyBlaXRoZXIgdGVtcGxhdGUgc3RyaW5nIG9yIEhUTUwgZWxlbWVudCBJRC5cbiAgICAgKiBAYXNwaWdub3JlIFxuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ2VkaXRUZW1wbGF0ZScpXG4gICAgQFRlbXBsYXRlKClcbiAgICBwdWJsaWMgZWRpdFRlbXBsYXRlOiBhbnk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHZpZXdDb250YWluZXJSZWY6Vmlld0NvbnRhaW5lclJlZikge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBzZXRWYWx1ZSgnY3VycmVudEluc3RhbmNlJywgdGhpcywgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcbiAgICAgICAgdGhpcy5yZWdpc3RlckV2ZW50cyhvdXRwdXRzKTtcbiAgICAgICAgdGhpcy5kaXJlY3RpdmVQcm9wTGlzdCA9IGlucHV0O1xuICAgIH1cbn1cblxuLyoqXG4gKiBDb2x1bW4gQXJyYXkgRGlyZWN0aXZlXG4gKiBAcHJpdmF0ZVxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ2Vqcy10cmVlZ3JpZD5lLWNvbHVtbnMnLFxuICAgIHF1ZXJpZXM6IHtcbiAgICAgICAgY2hpbGRyZW46IG5ldyBDb250ZW50Q2hpbGRyZW4oQ29sdW1uRGlyZWN0aXZlKVxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIENvbHVtbnNEaXJlY3RpdmUgZXh0ZW5kcyBBcnJheUJhc2U8Q29sdW1uc0RpcmVjdGl2ZT4ge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcignY29sdW1ucycpO1xuICAgIH1cbn0iXX0=
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1ucy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHJlZWdyaWQvY29sdW1ucy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQW9CLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0YsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3hELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQUVyRSxJQUFJLEtBQUssR0FBYSxDQUFDLGNBQWMsRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixFQUFFLGNBQWMsRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLHFCQUFxQixFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN4cEIsSUFBSSxPQUFPLEdBQWEsRUFBRSxDQUFDO0FBQzNCOzs7Ozs7Ozs7OztHQVdHO0FBU0gsTUFBTSxPQUFPLGVBQWdCLFNBQVEsV0FBNEI7SUE2VTdELFlBQW9CLGdCQUFpQztRQUNqRCxLQUFLLEVBQUUsQ0FBQztRQURRLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUI7UUF6VTlDLFNBQUksR0FBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBMlVoQyxRQUFRLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztJQUNuQyxDQUFDOzs0R0FsVlEsZUFBZTtnR0FBZixlQUFlLHMzREFIVyx1QkFBdUI7QUFnVDFEO0lBREMsUUFBUSxFQUFFO2lEQUNVO0FBUXJCO0lBREMsUUFBUSxFQUFFO3VEQUNnQjtBQUczQjtJQURDLFFBQVEsRUFBRTs0REFDcUI7QUFRaEM7SUFEQyxRQUFRLEVBQUU7dURBQ2dCO0FBRzNCO0lBREMsUUFBUSxFQUFFO3lEQUNrQjtBQVE3QjtJQURDLFFBQVEsRUFBRTtxREFDYzsyRkEzVWhCLGVBQWU7a0JBUjNCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGlDQUFpQztvQkFDM0MsTUFBTSxFQUFFLEtBQUs7b0JBQ2IsT0FBTyxFQUFFLE9BQU87b0JBQ2hCLE9BQU8sRUFBRTt3QkFDTCxZQUFZLEVBQUUsSUFBSSxZQUFZLENBQUMsdUJBQXVCLENBQUM7cUJBQzFEO2lCQUNKO3VHQThTVSxRQUFRO3NCQUZkLFlBQVk7dUJBQUMsVUFBVTtnQkFVakIsY0FBYztzQkFGcEIsWUFBWTt1QkFBQyxnQkFBZ0I7Z0JBS3ZCLG1CQUFtQjtzQkFGekIsWUFBWTt1QkFBQyxvQkFBb0I7Z0JBVTNCLGNBQWM7c0JBRnBCLFlBQVk7dUJBQUMsZ0JBQWdCO2dCQUt2QixnQkFBZ0I7c0JBRnRCLFlBQVk7dUJBQUMsa0JBQWtCO2dCQVV6QixZQUFZO3NCQUZsQixZQUFZO3VCQUFDLGNBQWM7O0FBWWhDOzs7R0FHRztBQU9ILE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxTQUEyQjtJQUM3RDtRQUNJLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNyQixDQUFDOzs2R0FIUSxnQkFBZ0I7aUdBQWhCLGdCQUFnQix1RkFIUyxlQUFlOzJGQUd4QyxnQkFBZ0I7a0JBTjVCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsT0FBTyxFQUFFO3dCQUNMLFFBQVEsRUFBRSxJQUFJLGVBQWUsQ0FBQyxlQUFlLENBQUM7cUJBQ2pEO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBWaWV3Q29udGFpbmVyUmVmLCBDb250ZW50Q2hpbGRyZW4sIENvbnRlbnRDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tcGxleEJhc2UsIEFycmF5QmFzZSwgc2V0VmFsdWUgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItYW5ndWxhci1iYXNlJztcbmltcG9ydCB7IFRlbXBsYXRlIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItYmFzZSc7XG5pbXBvcnQgeyBTdGFja2VkQ29sdW1uc0RpcmVjdGl2ZSB9IGZyb20gJy4vc3RhY2tlZC1jb2x1bW4uZGlyZWN0aXZlJztcblxubGV0IGlucHV0OiBzdHJpbmdbXSA9IFsnYWxsb3dFZGl0aW5nJywgJ2FsbG93RmlsdGVyaW5nJywgJ2FsbG93UmVvcmRlcmluZycsICdhbGxvd1Jlc2l6aW5nJywgJ2FsbG93U29ydGluZycsICdjbGlwTW9kZScsICdjb2x1bW5zJywgJ2NvbW1hbmRzJywgJ2N1c3RvbUF0dHJpYnV0ZXMnLCAnZGVmYXVsdFZhbHVlJywgJ2Rpc2FibGVIdG1sRW5jb2RlJywgJ2Rpc3BsYXlBc0NoZWNrQm94JywgJ2VkaXQnLCAnZWRpdFRlbXBsYXRlJywgJ2VkaXRUeXBlJywgJ2ZpZWxkJywgJ2ZpbHRlcicsICdmaWx0ZXJCYXJUZW1wbGF0ZScsICdmaWx0ZXJUZW1wbGF0ZScsICdmb3JtYXQnLCAnZm9ybWF0dGVyJywgJ2ZyZWV6ZScsICdoZWFkZXJUZW1wbGF0ZScsICdoZWFkZXJUZXh0JywgJ2hlYWRlclRleHRBbGlnbicsICdoaWRlQXRNZWRpYScsICdpc0Zyb3plbicsICdpc0lkZW50aXR5JywgJ2lzUHJpbWFyeUtleScsICdsb2NrQ29sdW1uJywgJ21heFdpZHRoJywgJ21pbldpZHRoJywgJ3Nob3dDaGVja2JveCcsICdzaG93Q29sdW1uTWVudScsICdzaG93SW5Db2x1bW5DaG9vc2VyJywgJ3NvcnRDb21wYXJlcicsICd0ZW1wbGF0ZScsICd0ZXh0QWxpZ24nLCAndHlwZScsICd1aWQnLCAndmFsaWRhdGlvblJ1bGVzJywgJ3ZhbHVlQWNjZXNzb3InLCAndmlzaWJsZScsICd3aWR0aCddO1xubGV0IG91dHB1dHM6IHN0cmluZ1tdID0gW107XG4vKipcbiAqIGBlLWNvbHVtbmAgZGlyZWN0aXZlIHJlcHJlc2VudCBhIGNvbHVtbiBvZiB0aGUgQW5ndWxhciBUcmVlR3JpZC4gXG4gKiBJdCBtdXN0IGJlIGNvbnRhaW5lZCBpbiBhIFRyZWVHcmlkIGNvbXBvbmVudChgZWpzLXRyZWVncmlkYCkuIFxuICogYGBgaHRtbFxuICogPGVqcy10cmVlZ3JpZCBbZGF0YVNvdXJjZV09J2RhdGEnIGFsbG93UGFnaW5nPSd0cnVlJyBhbGxvd1NvcnRpbmc9J3RydWUnPiBcbiAqICAgPGUtY29sdW1ucz5cbiAqICAgIDxlLWNvbHVtbiBmaWVsZD0nSUQnIHdpZHRoPScxMDAnPjwvZS1jb2x1bW4+XG4gKiAgICA8ZS1jb2x1bW4gZmllbGQ9J25hbWUnIGhlYWRlclRleHQ9J05hbWUnIHdpZHRoPScxMDAnPjwvZS1jb2x1bW4+XG4gKiAgIDwvZS1jb2x1bW5zPlxuICogPC9lanMtdHJlZWdyaWQ+XG4gKiBgYGBcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdlanMtdHJlZWdyaWQ+ZS1jb2x1bW5zPmUtY29sdW1uJyxcbiAgICBpbnB1dHM6IGlucHV0LFxuICAgIG91dHB1dHM6IG91dHB1dHMsICAgIFxuICAgIHF1ZXJpZXM6IHtcbiAgICAgICAgY2hpbGRDb2x1bW5zOiBuZXcgQ29udGVudENoaWxkKFN0YWNrZWRDb2x1bW5zRGlyZWN0aXZlKVxuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgQ29sdW1uRGlyZWN0aXZlIGV4dGVuZHMgQ29tcGxleEJhc2U8Q29sdW1uRGlyZWN0aXZlPiB7XG4gICAgcHVibGljIGRpcmVjdGl2ZVByb3BMaXN0OiBhbnk7XG5cdFxuICAgIHB1YmxpYyBjaGlsZENvbHVtbnM6IGFueTtcbiAgICBwdWJsaWMgdGFnczogc3RyaW5nW10gPSBbJ2NvbHVtbnMnXTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgZGF0YSB0eXBlIG9mIHRoZSBjb2x1bW4uXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyB0eXBlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIElmIGBhbGxvd0VkaXRpbmdgIHNldCB0byBmYWxzZSwgdGhlbiBpdCBkaXNhYmxlcyBlZGl0aW5nIG9mIGEgcGFydGljdWxhciBjb2x1bW4uIFxuICAgICAqIEJ5IGRlZmF1bHQgYWxsIGNvbHVtbnMgYXJlIGVkaXRhYmxlLlxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICBwdWJsaWMgYWxsb3dFZGl0aW5nOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIElmIGBhbGxvd0ZpbHRlcmluZ2Agc2V0IHRvIGZhbHNlLCB0aGVuIGl0IGRpc2FibGVzIGZpbHRlcmluZyBvcHRpb24gYW5kIGZpbHRlciBiYXIgZWxlbWVudCBvZiBhIHBhcnRpY3VsYXIgY29sdW1uLiBcbiAgICAgKiBCeSBkZWZhdWx0IGFsbCBjb2x1bW5zIGFyZSBmaWx0ZXJhYmxlLlxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICBwdWJsaWMgYWxsb3dGaWx0ZXJpbmc6IGFueTtcbiAgICAvKiogXG4gICAgICogSWYgYGFsbG93UmVvcmRlcmluZ2Agc2V0IHRvIGZhbHNlLCB0aGVuIGl0IGRpc2FibGVzIHJlb3JkZXIgb2YgYSBwYXJ0aWN1bGFyIGNvbHVtbi4gXG4gICAgICogQnkgZGVmYXVsdCBhbGwgY29sdW1ucyBjYW4gYmUgcmVvcmRlci5cbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgcHVibGljIGFsbG93UmVvcmRlcmluZzogYW55O1xuICAgIC8qKiBcbiAgICAgKiBJZiBgYWxsb3dSZXNpemluZ2Agc2V0IHRvIGZhbHNlLCBpdCBkaXNhYmxlcyByZXNpemUgb3B0aW9uIG9mIGEgcGFydGljdWxhciBjb2x1bW4uXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIHB1YmxpYyBhbGxvd1Jlc2l6aW5nOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIElmIGBhbGxvd1NvcnRpbmdgIHNldCB0byBmYWxzZSwgdGhlbiBpdCBkaXNhYmxlcyBzb3J0aW5nIG9wdGlvbiBvZiBhIHBhcnRpY3VsYXIgY29sdW1uLiBcbiAgICAgKiBCeSBkZWZhdWx0IGFsbCBjb2x1bW5zIGFyZSBzb3J0YWJsZS5cbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgcHVibGljIGFsbG93U29ydGluZzogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHRoZSBjZWxsIGNvbnRlbnQncyBvdmVyZmxvdyBtb2RlLiBUaGUgYXZhaWxhYmxlIG1vZGVzIGFyZSBcbiAgICAgKiAgXG4gICAgICogYWxzbyBpdCB3aWxsIGRpc3BsYXkgdG9vbHRpcCB3aGlsZSBob3ZlciBvbiBlbGxpcHNpcyBhcHBsaWVkIGNlbGwuXG4gICAgICogQGRlZmF1bHQgU3luY2Z1c2lvbi5FSjIuR3JpZHMuQ2xpcE1vZGUuRWxsaXBzaXNcbiAgICAgKiBAaXNlbnVtZXJhdGlvbiB0cnVlXG4gICAgICogQGFzcHR5cGUgU3luY2Z1c2lvbi5FSjIuR3JpZHMuQ2xpcE1vZGVcbiAgICAgKi9cbiAgICBwdWJsaWMgY2xpcE1vZGU6IGFueTtcbiAgICAvKiogXG4gICAgICogVXNlZCB0byByZW5kZXIgbXVsdGlwbGUgaGVhZGVyIHJvd3Moc3RhY2tlZCBoZWFkZXJzKSBvbiBUcmVlR3JpZCBoZWFkZXIuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyBjb2x1bW5zOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIGBjb21tYW5kc2AgcHJvdmlkZXMgYW4gb3B0aW9uIHRvIGRpc3BsYXkgY29tbWFuZCBidXR0b25zIGluIGV2ZXJ5IGNlbGwuIFxuICAgICAqIFRoZSBhdmFpbGFibGUgYnVpbHQtaW4gY29tbWFuZCBidXR0b25zIGFyZSBcbiAgICAgKiAqIEVkaXQgLSBFZGl0IHRoZSByZWNvcmQuIFxuICAgICAqICogRGVsZXRlIC0gRGVsZXRlIHRoZSByZWNvcmQuIFxuICAgICAqICogU2F2ZSAtIFNhdmUgdGhlIHJlY29yZC4gXG4gICAgICogKiBDYW5jZWwgLSBDYW5jZWwgdGhlIGVkaXQgc3RhdGUuXG4gICAgICogXG4gICAgICogVGhlIGZvbGxvd2luZyBjb2RlIGV4YW1wbGUgaW1wbGVtZW50cyB0aGUgY3VzdG9tIGNvbW1hbmQgY29sdW1uLlxuICAgICAqYGBgaHRtbFxuICAgICAqPHN0eWxlIHR5cGU9XCJ0ZXh0L2Nzc1wiIGNsYXNzPVwiY3NzU3R5bGVzXCI+XG4gICAgICouZGV0YWlscy1pY29uOmJlZm9yZVxuICAgICAqe1xuICAgICAqICAgY29udGVudDpcIlxcZTc0ZFwiO1xuICAgICAqfVxuICAgICAqPC9zdHlsZT5cbiAgICAgKjxkaXYgaWQ9XCJUcmVlR3JpZFwiPjwvZGl2PlxuICAgICAqYGBgXG4gICAgICpgYGB0eXBlc2NyaXB0XG4gICAgICp2YXIgZ3JpZE9iaiA9IG5ldyBUcmVlR3JpZCh7XG4gICAgICpkYXRhc291cmNlOiB3aW5kb3cuZ3JpZERhdGEsXG4gICAgICpjb2x1bW5zIDogW1xuICAgICAqIHsgZmllbGQ6ICdDdXN0b21lcklEJywgaGVhZGVyVGV4dDogJ0N1c3RvbWVyIElEJyB9LFxuICAgICAqIHsgZmllbGQ6ICdDdXN0b21lck5hbWUnLCBoZWFkZXJUZXh0OiAnQ3VzdG9tZXIgTmFtZScgfSxcbiAgICAgKiB7Y29tbWFuZHM6IFt7YnV0dG9uT3B0aW9uOntjb250ZW50OiAnRGV0YWlscycsIGNsaWNrOiBvbkNsaWNrLCBjc3NDbGFzczogZGV0YWlscy1pY29ufX1dLCBoZWFkZXJUZXh0OiAnQ3VzdG9tZXIgRGV0YWlscyd9XG4gICAgICpdXG4gICAgICpncmlkT2JqLmFwcGVuZFRvKFwiI1RyZWVHcmlkXCIpO1xuICAgICAqYGBgXG4gICAgICogICAgIFxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKi9cbiAgICBwdWJsaWMgY29tbWFuZHM6IGFueTtcbiAgICAvKiogXG4gICAgICogVGhlIENTUyBzdHlsZXMgYW5kIGF0dHJpYnV0ZXMgb2YgdGhlIGNvbnRlbnQgY2VsbHMgb2YgYSBwYXJ0aWN1bGFyIGNvbHVtbiBjYW4gYmUgY3VzdG9taXplZC5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICovXG4gICAgcHVibGljIGN1c3RvbUF0dHJpYnV0ZXM6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyBkZWZhdWx0IHZhbHVlcyBmb3IgdGhlIGNvbXBvbmVudCB3aGVuIGFkZGluZyBhIG5ldyByZWNvcmQgdG8gdGhlIFRyZWVHcmlkLlxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKi9cbiAgICBwdWJsaWMgZGVmYXVsdFZhbHVlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIElmIGBkaXNhYmxlSHRtbEVuY29kZWAgaXMgc2V0IHRvIHRydWUsIGl0IGVuY29kZXMgdGhlIEhUTUwgb2YgdGhlIGhlYWRlciBhbmQgY29udGVudCBjZWxscy5cbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgcHVibGljIGRpc2FibGVIdG1sRW5jb2RlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIElmIGBkaXNwbGF5QXNDaGVja0JveGAgaXMgc2V0IHRvIHRydWUsIGl0IGRpc3BsYXlzIHRoZSBjb2x1bW4gdmFsdWUgYXMgYSBjaGVjayBib3ggaW5zdGVhZCBvZiBCb29sZWFuIHZhbHVlLlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgcHVibGljIGRpc3BsYXlBc0NoZWNrQm94OiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgdGhlIGBJRWRpdENlbGxgIG9iamVjdCB0byBjdXN0b21pemUgZGVmYXVsdCBlZGl0IGNlbGwuXG4gICAgICogQGRlZmF1bHQge31cbiAgICAgKi9cbiAgICBwdWJsaWMgZWRpdDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHRoZSB0eXBlIG9mIGNvbXBvbmVudCBmb3IgZWRpdGluZy5cbiAgICAgKiBAZGVmYXVsdCAnc3RyaW5nZWRpdCdcbiAgICAgKi9cbiAgICBwdWJsaWMgZWRpdFR5cGU6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgZmllbGQgbmFtZSBvZiBjb2x1bW4gd2hpY2ggaXMgbWFwcGVkIHdpdGggbWFwcGluZyBuYW1lIG9mIERhdGFTb3VyY2UuIFxuICAgICAqIFRoZSBib3VuZGVkIGNvbHVtbnMgY2FuIGJlIHNvcnQsIGZpbHRlciBldGMuLCBcbiAgICAgKiBUaGUgYGZpZWxkYCBuYW1lIG11c3QgYmUgYSB2YWxpZCBKYXZhU2NyaXB0IGlkZW50aWZpZXIsIFxuICAgICAqIHRoZSBmaXJzdCBjaGFyYWN0ZXIgbXVzdCBiZSBhbiBhbHBoYWJldCBhbmQgc2hvdWxkIG5vdCBjb250YWluIHNwYWNlcyBhbmQgc3BlY2lhbCBjaGFyYWN0ZXJzLlxuICAgICAqIEBkZWZhdWx0ICd1bmRlZmluZWQnXG4gICAgICovXG4gICAgcHVibGljIGZpZWxkOiBhbnk7XG4gICAgLyoqIFxuICAgICAqICBEZWZpbmVzIHRoZSBmaWx0ZXIgb3B0aW9ucyB0byBjdXN0b21pemUgZmlsdGVyaW5nIGZvciB0aGUgcGFydGljdWxhciBjb2x1bW4uXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyBmaWx0ZXI6IGFueTtcbiAgICAvKiogXG4gICAgICogVGhlIGBmaWx0ZXJCYXJUZW1wbGF0ZWAgaXMgdXNlZCB0byBhZGQgYSBjdXN0b20gY29tcG9uZW50IGluc3RlYWQgb2YgZGVmYXVsdCBpbnB1dCBjb21wb25lbnQgZm9yIGZpbHRlciBiYXIuIFxuICAgICAqIEl0IGhhdmUgY3JlYXRlIGFuZCByZWFkIGZ1bmN0aW9ucy4gXG4gICAgICogKiBjcmVhdGU6IEl0IGlzIHVzZWQgZm9yIGNyZWF0aW5nIGN1c3RvbSBjb21wb25lbnRzLiBcbiAgICAgKiAqIHJlYWQ6IEl0IGlzIHVzZWQgdG8gcGVyZm9ybSBjdXN0b20gZmlsdGVyIGFjdGlvbi5cbiAgICAgKiBcbiAgICAgKiBgYGBodG1sXG4gICAgICo8ZGl2IGlkPVwiVHJlZUdyaWRcIj48L2Rpdj5cbiAgICAgKmBgYFxuICAgICAqYGBgdHlwZXNjcmlwdFxuICAgICAqbGV0IGdyaWRPYmo6IFRyZWVHcmlkID0gbmV3IFRyZWVHcmlkKHtcbiAgICAgKmRhdGFTb3VyY2U6IGZpbHRlckRhdGEsXG4gICAgICpjb2x1bW5zOiBbXG4gICAgICogIHsgZmllbGQ6ICdPcmRlcklEJywgaGVhZGVyVGV4dDogJ09yZGVyIElEJyB9LFxuICAgICAqICB7XG4gICAgICogICAgIGZpZWxkOiAnRW1wbG95ZWVJRCcsIGZpbHRlckJhclRlbXBsYXRlOiB7XG4gICAgICogICAgICAgIGNyZWF0ZTogKGFyZ3M6IHsgZWxlbWVudDogRWxlbWVudCwgY29sdW1uOiBDb2x1bW4gfSkgPT4ge1xuICAgICAqICAgICAgICAgICAgIGxldCBpbnB1dDogSFRNTElucHV0RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XG4gICAgICogICAgICAgICAgICAgaW5wdXQuaWQgPSAnRW1wbG95ZWVJRCc7XG4gICAgICogICAgICAgICAgICAgaW5wdXQudHlwZSA9ICd0ZXh0JztcbiAgICAgKiAgICAgICAgICAgICByZXR1cm4gaW5wdXQ7XG4gICAgICogICAgICAgIH0sXG4gICAgICogICAgICAgIHdyaXRlOiAoYXJnczogeyBlbGVtZW50OiBFbGVtZW50LCBjb2x1bW46IENvbHVtbiB9KSA9PiB7XG4gICAgICogICAgICAgICAgICBhcmdzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignaW5wdXQnLCBhcmdzLmNvbHVtbi5maWx0ZXJCYXJUZW1wbGF0ZS5yZWFkIGFzIEV2ZW50TGlzdGVuZXIpO1xuICAgICAqICAgICAgICB9LFxuICAgICAqICAgICAgICByZWFkOiAoYXJnczogeyBlbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50LCBjb2x1bW5JbmRleDogbnVtYmVyLCBjb2x1bW46IENvbHVtbiB9KSA9PiB7XG4gICAgICogICAgICAgICAgICBncmlkT2JqLmZpbHRlckJ5Q29sdW1uKGFyZ3MuZWxlbWVudC5pZCwgJ2VxdWFsJywgYXJncy5lbGVtZW50LnZhbHVlKTtcbiAgICAgKiAgICAgICB9XG4gICAgICogICAgfVxuICAgICAqIH1dLFxuICAgICAqICBhbGxvd0ZpbHRlcmluZzogdHJ1ZVxuICAgICAqfSk7XG4gICAgICpncmlkT2JqLmFwcGVuZFRvKCcjVHJlZUdyaWQnKTtcbiAgICAgKmBgYFxuICAgICAqICAgICBcbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICovXG4gICAgcHVibGljIGZpbHRlckJhclRlbXBsYXRlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIEl0IGlzIHVzZWQgdG8gY2hhbmdlIGRpc3BsYXkgdmFsdWUgd2l0aCB0aGUgZ2l2ZW4gZm9ybWF0IGFuZCBkb2VzIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIGRhdGEuIFxuICAgICAqIEdldHMgdGhlIGZvcm1hdCBmcm9tIHRoZSB1c2VyIHdoaWNoIGNhbiBiZSBzdGFuZGFyZCBvciBjdXN0b20gXG4gICAgICogW2BudW1iZXJgXShodHRwczovL2VqMi5zeW5jZnVzaW9uLmNvbS9kb2N1bWVudGF0aW9uL2NvbW1vbi9pbnRlcm5hdGlvbmFsaXphdGlvbi8jc3VwcG9ydGVkLWZvcm1hdC1zdHJpbmcpIFxuICAgICAqIGFuZCBbYGRhdGVgXShodHRwczovL2VqMi5zeW5jZnVzaW9uLmNvbS9kb2N1bWVudGF0aW9uL2NvbW1vbi9pbnRlcm5hdGlvbmFsaXphdGlvbi8jc3VwcG9ydGVkLWZvcm1hdC1zdHJpbmctMSkgZm9ybWF0cy5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICogQGFzcHR5cGUgc3RyaW5nXG4gICAgICovXG4gICAgcHVibGljIGZvcm1hdDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHRoZSBtZXRob2Qgd2hpY2ggaXMgdXNlZCB0byBhY2hpZXZlIGN1c3RvbSBmb3JtYXR0aW5nIGZyb20gYW4gZXh0ZXJuYWwgZnVuY3Rpb24uIFxuICAgICAqIFRoaXMgZnVuY3Rpb24gdHJpZ2dlcnMgYmVmb3JlIHJlbmRlcmluZyBvZiBlYWNoIGNlbGwuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyBmb3JtYXR0ZXI6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB3aGljaCBzaWRlIHRoZSBjb2x1bW4gbmVlZCB0byBmcmVlemVcbiAgICAgKiBAZGVmYXVsdCBTeW5jZnVzaW9uLkVKMi5Hcmlkcy5GcmVlemVEaXJlY3Rpb24uTm9uZVxuICAgICAqIEBpc2VudW1lcmF0aW9uIHRydWVcbiAgICAgKiBAYXNwdHlwZSBTeW5jZnVzaW9uLkVKMi5Hcmlkcy5GcmVlemVEaXJlY3Rpb25cbiAgICAgKi9cbiAgICBwdWJsaWMgZnJlZXplOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgdGhlIGhlYWRlciB0ZXh0IG9mIGNvbHVtbiB3aGljaCBpcyB1c2VkIHRvIGRpc3BsYXkgaW4gY29sdW1uIGhlYWRlci4gXG4gICAgICogSWYgYGhlYWRlclRleHRgIGlzIG5vdCBkZWZpbmVkLCB0aGVuIGZpZWxkIG5hbWUgdmFsdWUgd2lsbCBiZSBhc3NpZ25lZCB0byBoZWFkZXIgdGV4dC5cbiAgICAgKiBAZGVmYXVsdCAndW5kZWZpbmVkJ1xuICAgICAqL1xuICAgIHB1YmxpYyBoZWFkZXJUZXh0OiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZSB0aGUgYWxpZ25tZW50IG9mIGNvbHVtbiBoZWFkZXIgd2hpY2ggaXMgdXNlZCB0byBhbGlnbiB0aGUgdGV4dCBvZiBjb2x1bW4gaGVhZGVyLlxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKiBAYXNwZGVmYXVsdHZhbHVlaWdub3JlIFxuICAgICAqIEBpc2VudW1lcmF0aW9uIHRydWVcbiAgICAgKiBAYXNwdHlwZSBTeW5jZnVzaW9uLkVKMi5Hcmlkcy5UZXh0QWxpZ25cbiAgICAgKi9cbiAgICBwdWJsaWMgaGVhZGVyVGV4dEFsaWduOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIENvbHVtbiB2aXNpYmlsaXR5IGNhbiBjaGFuZ2UgYmFzZWQgb24gW2BNZWRpYSBRdWVyaWVzYF0oaHR0cDovL2Nzc21lZGlhcXVlcmllcy5jb20vd2hhdC1hcmUtY3NzLW1lZGlhLXF1ZXJpZXMuaHRtbCkuIFxuICAgICAqIGBoaWRlQXRNZWRpYWAgYWNjZXB0cyBvbmx5IHZhbGlkIE1lZGlhIFF1ZXJpZXMuXG4gICAgICogQGRlZmF1bHQgJ3VuZGVmaW5lZCdcbiAgICAgKi9cbiAgICBwdWJsaWMgaGlkZUF0TWVkaWE6IGFueTtcbiAgICAvKiogXG4gICAgICogWW91IGNhbiB1c2UgdGhpcyBwcm9wZXJ0eSB0byBmcmVlemUgc2VsZWN0ZWQgY29sdW1ucyBpbiBncmlkLlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgcHVibGljIGlzRnJvemVuOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIElmIGBpc0lkZW50aXR5YCBpcyBzZXQgdG8gdHJ1ZSwgdGhlbiB0aGlzIGNvbHVtbiBpcyBjb25zaWRlcmVkIGFzIGlkZW50aXR5IGNvbHVtbi5cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIHB1YmxpYyBpc0lkZW50aXR5OiBhbnk7XG4gICAgLyoqIFxuICAgICAqIElmIGBpc1ByaW1hcnlLZXlgIGlzIHNldCB0byB0cnVlLCBjb25zaWRlcnMgdGhpcyBjb2x1bW4gYXMgdGhlIHByaW1hcnkga2V5IGNvbnN0cmFpbnQuXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBwdWJsaWMgaXNQcmltYXJ5S2V5OiBhbnk7XG4gICAgLyoqIFxuICAgICAqIElmIGBsb2NrQ29sdW1uYCBzZXQgdG8gdHJ1ZSwgdGhlbiBpdCBkaXNhYmxlcyBSZW9yZGVyaW5nIG9mIGEgcGFydGljdWxhciBjb2x1bW4uIFxuICAgICAqIFRoZSBsb2NrZWQgY29sdW1uIHdpbGwgYmUgbW92ZWQgdG8gZmlyc3QgcG9zaXRpb24uXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBwdWJsaWMgbG9ja0NvbHVtbjogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHRoZSBtYXhpbXVtIHdpZHRoIG9mIHRoZSBjb2x1bW4gaW4gcGl4ZWxzIG9yIHBlcmNlbnRhZ2UsIHdoaWNoIHdpbGwgcmVzdHJpY3QgcmVzaXppbmcgYmV5b25kIHRoaXMgcGl4ZWxzIG9yIHBlcmNlbnRhZ2UuXG4gICAgICogQGRlZmF1bHQgJ3VuZGVmaW5lZCdcbiAgICAgKi9cbiAgICBwdWJsaWMgbWF4V2lkdGg6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgbWluaW11bSB3aWR0aCBvZiB0aGUgY29sdW1uIGluIHBpeGVscyBvciBwZXJjZW50YWdlLlxuICAgICAqIEBkZWZhdWx0ICd1bmRlZmluZWQnXG4gICAgICovXG4gICAgcHVibGljIG1pbldpZHRoOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIElmIGBzaG93Q2hlY2tib3hgIHNldCB0byB0cnVlLCB0aGVuIHRoZSBjaGVja2JveGVzIHdpbGwgYmUgZGlzcGxheWVkIGluIHBhcnRpY3VsYXIgY29sdW1uLlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgcHVibGljIHNob3dDaGVja2JveDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBJZiBgc2hvd0NvbHVtbk1lbnVgIHNldCB0byBmYWxzZSwgdGhlbiBpdCBkaXNhYmxlIHRoZSBjb2x1bW4gbWVudSBvZiBhIHBhcnRpY3VsYXIgY29sdW1uLiBcbiAgICAgKiBCeSBkZWZhdWx0IGNvbHVtbiBtZW51IHdpbGwgc2hvdyBmb3IgYWxsIGNvbHVtbnNcbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgcHVibGljIHNob3dDb2x1bW5NZW51OiBhbnk7XG4gICAgLyoqIFxuICAgICAqIElmIGBzaG93SW5Db2x1bW5DaG9vc2VyYCBzZXQgdG8gZmFsc2UsIHRoZW4gaGlkZSB0aGUgcGFydGljdWxhciBjb2x1bW4gaW4gY29sdW1uIGNob29zZXIuIFxuICAgICAqICBCeSBkZWZhdWx0IGFsbCBjb2x1bW5zIGFyZSBkaXNwbGF5ZWQgaW4gY29sdW1uIENob29zZXIuXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIHB1YmxpYyBzaG93SW5Db2x1bW5DaG9vc2VyOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgdGhlIHNvcnQgY29tcGFyZXIgcHJvcGVydHkuXG4gICAgICogQGRlZmF1bHQgJ3VuZGVmaW5lZCdcbiAgICAgKi9cbiAgICBwdWJsaWMgc29ydENvbXBhcmVyOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgdGhlIGFsaWdubWVudCBvZiB0aGUgY29sdW1uIGluIGJvdGggaGVhZGVyIGFuZCBjb250ZW50IGNlbGxzLlxuICAgICAqIEBkZWZhdWx0IFN5bmNmdXNpb24uRUoyLkdyaWRzLlRleHRBbGlnbi5MZWZ0XG4gICAgICogQGlzZW51bWVyYXRpb24gdHJ1ZVxuICAgICAqIEBhc3B0eXBlIFN5bmNmdXNpb24uRUoyLkdyaWRzLlRleHRBbGlnblxuICAgICAqL1xuICAgIHB1YmxpYyB0ZXh0QWxpZ246IGFueTtcbiAgICAvKiogXG4gICAgICogR2V0cyB0aGUgdW5pcXVlIGlkZW50aWZpZXIgdmFsdWUgb2YgdGhlIGNvbHVtbi4gSXQgaXMgdXNlZCB0byBnZXQgdGhlIG9iamVjdC5cbiAgICAgKiBAZGVmYXVsdCAndW5kZWZpbmVkJ1xuICAgICAqL1xuICAgIHB1YmxpYyB1aWQ6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyBydWxlcyB0byB2YWxpZGF0ZSBkYXRhIGJlZm9yZSBjcmVhdGluZyBhbmQgdXBkYXRpbmcuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyB2YWxpZGF0aW9uUnVsZXM6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgbWV0aG9kIHVzZWQgdG8gYXBwbHkgY3VzdG9tIGNlbGwgdmFsdWVzIGZyb20gZXh0ZXJuYWwgZnVuY3Rpb24gYW5kIGRpc3BsYXkgdGhpcyBvbiBlYWNoIGNlbGwgcmVuZGVyZWQuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyB2YWx1ZUFjY2Vzc29yOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIElmIGB2aXNpYmxlYCBpcyBzZXQgdG8gZmFsc2UsIGhpZGVzIHRoZSBwYXJ0aWN1bGFyIGNvbHVtbi4gQnkgZGVmYXVsdCwgY29sdW1ucyBhcmUgZGlzcGxheWVkLlxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICBwdWJsaWMgdmlzaWJsZTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHRoZSB3aWR0aCBvZiB0aGUgY29sdW1uIGluIHBpeGVscyBvciBwZXJjZW50YWdlLlxuICAgICAqIEBkZWZhdWx0ICd1bmRlZmluZWQnXG4gICAgICovXG4gICAgcHVibGljIHdpZHRoOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgdGhlIGNvbHVtbiB0ZW1wbGF0ZSB0aGF0IHJlbmRlcnMgY3VzdG9taXplZCBlbGVtZW50IGluIGVhY2ggY2VsbCBvZiB0aGUgY29sdW1uLiBcbiAgICAgKiBJdCBhY2NlcHRzIGVpdGhlciBbdGVtcGxhdGUgc3RyaW5nXShodHRwczovL2VqMi5zeW5jZnVzaW9uLmNvbS9kb2N1bWVudGF0aW9uL2NvbW1vbi90ZW1wbGF0ZS1lbmdpbmUvKSBvciBIVE1MIGVsZW1lbnQgSUQuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqIEBhc3B0eXBlIHN0cmluZ1xuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ3RlbXBsYXRlJylcbiAgICBAVGVtcGxhdGUoKVxuICAgIHB1YmxpYyB0ZW1wbGF0ZTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHRoZSBoZWFkZXIgdGVtcGxhdGUgYXMgc3RyaW5nIG9yIEhUTUwgZWxlbWVudCBJRCB3aGljaCBpcyB1c2VkIHRvIGFkZCBjdXN0b21pemVkIGVsZW1lbnQgaW4gdGhlIGNvbHVtbiBoZWFkZXIuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqIEBhc3B0eXBlIHN0cmluZ1xuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ2hlYWRlclRlbXBsYXRlJylcbiAgICBAVGVtcGxhdGUoKVxuICAgIHB1YmxpYyBoZWFkZXJUZW1wbGF0ZTogYW55O1xuICAgIEBDb250ZW50Q2hpbGQoJ2ZpbHRlckl0ZW1UZW1wbGF0ZScpXG4gICAgQFRlbXBsYXRlKClcbiAgICBwdWJsaWMgZmlsdGVyX2l0ZW1UZW1wbGF0ZTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHRoZSBmaWx0ZXIgdGVtcGxhdGUvVUkgdGhhdCBpcyB1c2VkIGFzIGZpbHRlciBmb3IgYSBwYXJ0aWN1bGFyIGNvbHVtbi4gXG4gICAgICogSXQgYWNjZXB0cyBlaXRoZXIgdGVtcGxhdGUgc3RyaW5nIG9yIEhUTUwgZWxlbWVudCBJRC5cbiAgICAgKiBAYXNwaWdub3JlIFxuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ2ZpbHRlclRlbXBsYXRlJylcbiAgICBAVGVtcGxhdGUoKVxuICAgIHB1YmxpYyBmaWx0ZXJUZW1wbGF0ZTogYW55O1xuICAgIEBDb250ZW50Q2hpbGQoJ2NvbW1hbmRzVGVtcGxhdGUnKVxuICAgIEBUZW1wbGF0ZSgpXG4gICAgcHVibGljIGNvbW1hbmRzVGVtcGxhdGU6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgY2VsbCBlZGl0IHRlbXBsYXRlIHRoYXQgdXNlZCBhcyBlZGl0b3IgZm9yIGEgcGFydGljdWxhciBjb2x1bW4uIFxuICAgICAqIEl0IGFjY2VwdHMgZWl0aGVyIHRlbXBsYXRlIHN0cmluZyBvciBIVE1MIGVsZW1lbnQgSUQuXG4gICAgICogQGFzcGlnbm9yZSBcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKCdlZGl0VGVtcGxhdGUnKVxuICAgIEBUZW1wbGF0ZSgpXG4gICAgcHVibGljIGVkaXRUZW1wbGF0ZTogYW55O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOlZpZXdDb250YWluZXJSZWYpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgc2V0VmFsdWUoJ2N1cnJlbnRJbnN0YW5jZScsIHRoaXMsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJFdmVudHMob3V0cHV0cyk7XG4gICAgICAgIHRoaXMuZGlyZWN0aXZlUHJvcExpc3QgPSBpbnB1dDtcbiAgICB9XG59XG5cbi8qKlxuICogQ29sdW1uIEFycmF5IERpcmVjdGl2ZVxuICogQHByaXZhdGVcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdlanMtdHJlZWdyaWQ+ZS1jb2x1bW5zJyxcbiAgICBxdWVyaWVzOiB7XG4gICAgICAgIGNoaWxkcmVuOiBuZXcgQ29udGVudENoaWxkcmVuKENvbHVtbkRpcmVjdGl2ZSlcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBDb2x1bW5zRGlyZWN0aXZlIGV4dGVuZHMgQXJyYXlCYXNlPENvbHVtbnNEaXJlY3RpdmU+IHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoJ2NvbHVtbnMnKTtcbiAgICB9XG59Il19
|
@@ -97,4 +97,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
97
97
|
},
|
98
98
|
}]
|
99
99
|
}], ctorParameters: function () { return []; } });
|
100
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2tlZC1jb2x1bW4uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RyZWVncmlkL3N0YWNrZWQtY29sdW1uLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBb0IsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBR3hELElBQUksS0FBSyxHQUFhLENBQUMsY0FBYyxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLG1CQUFtQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUscUJBQXFCLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3hwQixJQUFJLE9BQU8sR0FBYSxFQUFFLENBQUM7QUFDM0I7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBU0gsTUFBTSxPQUFPLHNCQUF1QixTQUFRLFdBQW1DO0lBK1UzRSxZQUFvQixnQkFBaUM7UUFDakQsS0FBSyxFQUFFLENBQUM7UUFEUSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlCO1FBRWpELFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO0lBQ25DLENBQUM7O21IQXBWUSxzQkFBc0I7dUdBQXRCLHNCQUFzQjtBQStTL0I7SUFEQyxRQUFRLEVBQUU7d0RBQ1U7QUFRckI7SUFEQyxRQUFRLEVBQUU7OERBQ2dCO0FBRzNCO0lBREMsUUFBUSxFQUFFO21FQUNxQjtBQVFoQztJQURDLFFBQVEsRUFBRTs4REFDZ0I7QUFHM0I7SUFEQyxRQUFRLEVBQUU7Z0VBQ2tCO0FBUTdCO0lBREMsUUFBUSxFQUFFOzREQUNjOzJGQTdVaEIsc0JBQXNCO2tCQVJsQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxvRUFBb0U7b0JBQzlFLE1BQU0sRUFBRSxLQUFLO29CQUNiLE9BQU8sRUFBRSxPQUFPO29CQUNoQixPQUFPLEVBQUUsRUFFUjtpQkFDSjt1R0FnVFUsUUFBUTtzQkFGZCxZQUFZO3VCQUFDLFVBQVU7Z0JBVWpCLGNBQWM7c0JBRnBCLFlBQVk7dUJBQUMsZ0JBQWdCO2dCQUt2QixtQkFBbUI7c0JBRnpCLFlBQVk7dUJBQUMsb0JBQW9CO2dCQVUzQixjQUFjO3NCQUZwQixZQUFZO3VCQUFDLGdCQUFnQjtnQkFLdkIsZ0JBQWdCO3NCQUZ0QixZQUFZO3VCQUFDLGtCQUFrQjtnQkFVekIsWUFBWTtzQkFGbEIsWUFBWTt1QkFBQyxjQUFjOztBQVloQzs7O0dBR0c7QUFPSCxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsU0FBa0M7SUFDM0U7UUFDSSxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDckIsQ0FBQzs7b0hBSFEsdUJBQXVCO3dHQUF2Qix1QkFBdUIsa0hBSEUsc0JBQXNCOzJGQUcvQyx1QkFBdUI7a0JBTm5DLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG1EQUFtRDtvQkFDN0QsT0FBTyxFQUFFO3dCQUNMLFFBQVEsRUFBRSxJQUFJLGVBQWUsQ0FBQyxzQkFBc0IsQ0FBQztxQkFDeEQ7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIFZpZXdDb250YWluZXJSZWYsIENvbnRlbnRDaGlsZHJlbiwgQ29udGVudENoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21wbGV4QmFzZSwgQXJyYXlCYXNlLCBzZXRWYWx1ZSB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLWJhc2UnO1xuaW1wb3J0IHsgVGVtcGxhdGUgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItYW5ndWxhci1iYXNlJztcblxuXG5sZXQgaW5wdXQ6IHN0cmluZ1tdID0gWydhbGxvd0VkaXRpbmcnLCAnYWxsb3dGaWx0ZXJpbmcnLCAnYWxsb3dSZW9yZGVyaW5nJywgJ2FsbG93UmVzaXppbmcnLCAnYWxsb3dTb3J0aW5nJywgJ2NsaXBNb2RlJywgJ2NvbHVtbnMnLCAnY29tbWFuZHMnLCAnY3VzdG9tQXR0cmlidXRlcycsICdkZWZhdWx0VmFsdWUnLCAnZGlzYWJsZUh0bWxFbmNvZGUnLCAnZGlzcGxheUFzQ2hlY2tCb3gnLCAnZWRpdCcsICdlZGl0VGVtcGxhdGUnLCAnZWRpdFR5cGUnLCAnZmllbGQnLCAnZmlsdGVyJywgJ2ZpbHRlckJhclRlbXBsYXRlJywgJ2ZpbHRlclRlbXBsYXRlJywgJ2Zvcm1hdCcsICdmb3JtYXR0ZXInLCAnZnJlZXplJywgJ2hlYWRlclRlbXBsYXRlJywgJ2hlYWRlclRleHQnLCAnaGVhZGVyVGV4dEFsaWduJywgJ2hpZGVBdE1lZGlhJywgJ2lzRnJvemVuJywgJ2lzSWRlbnRpdHknLCAnaXNQcmltYXJ5S2V5JywgJ2xvY2tDb2x1bW4nLCAnbWF4V2lkdGgnLCAnbWluV2lkdGgnLCAnc2hvd0NoZWNrYm94JywgJ3Nob3dDb2x1bW5NZW51JywgJ3Nob3dJbkNvbHVtbkNob29zZXInLCAnc29ydENvbXBhcmVyJywgJ3RlbXBsYXRlJywgJ3RleHRBbGlnbicsICd0eXBlJywgJ3VpZCcsICd2YWxpZGF0aW9uUnVsZXMnLCAndmFsdWVBY2Nlc3NvcicsICd2aXNpYmxlJywgJ3dpZHRoJ107XG5sZXQgb3V0cHV0czogc3RyaW5nW10gPSBbXTtcbi8qKlxuICogYGUtc3RhY2tlZC1jb2x1bW5gIGRpcmVjdGl2ZSByZXByZXNlbnQgdGhlIHN0YWNrZWQgY29sdW1uIG9mIHRoZSBBbmd1bGFyIFRyZWVHcmlkLlxuICogSXQgbXVzdCBiZSBjb250YWluZWQgaW4gYSBTdGFja2VkQ29sdW1ucyBjb21wb25lbnQoYGUtc3RhY2tlZC1jb2x1bW5zYCkuIFxuICogYGBgaHRtbFxuICogPGVqcy10cmVlZ3JpZCBbZGF0YVNvdXJjZV09J2RhdGEnIGFsbG93UGFnaW5nPSd0cnVlJyBhbGxvd1NvcnRpbmc9J3RydWUnPiBcbiAqICAgPGUtY29sdW1ucz5cbiAqICAgICA8ZS1jb2x1bW4gZmllbGQ9J0lEJyB3aWR0aD0nMTAwJz48L2UtY29sdW1uPlxuICogICAgIDxlLWNvbHVtbiBoZWFkZXJUZXh0PSdEZXRhaWxzJyB3aWR0aD0nMTAwJz5cbiAqICAgICAgIDxlLXN0YWNrZWQtY29sdW1ucz5cbiAqICAgICAgICAgPGUtc3RhY2tlZC1jb2x1bW4gZmllbGQ9J05hbWUnIHdpZHRoPScxNDAnPjwvZS1zdGFja2VkLWNvbHVtbj5cbiAqICAgICAgIDwvZS1zdGFja2VkLWNvbHVtbnM+XG4gKiAgICAgPC9lLWNvbHVtbj5cbiAqICAgPC9lLWNvbHVtbnM+XG4gKiA8L2Vqcy10cmVlZ3JpZD5cbiAqIGBgYFxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ2Vqcy10cmVlZ3JpZD5lLWNvbHVtbnM+ZS1jb2x1bW4+ZS1zdGFja2VkLWNvbHVtbnM+ZS1zdGFja2VkLWNvbHVtbicsXG4gICAgaW5wdXRzOiBpbnB1dCxcbiAgICBvdXRwdXRzOiBvdXRwdXRzLCAgICBcbiAgICBxdWVyaWVzOiB7XG5cbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIFN0YWNrZWRDb2x1bW5EaXJlY3RpdmUgZXh0ZW5kcyBDb21wbGV4QmFzZTxTdGFja2VkQ29sdW1uRGlyZWN0aXZlPiB7XG4gICAgcHVibGljIGRpcmVjdGl2ZVByb3BMaXN0OiBhbnk7XG5cdFxuXG5cbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgZGF0YSB0eXBlIG9mIHRoZSBjb2x1bW4uXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyB0eXBlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIElmIGBhbGxvd0VkaXRpbmdgIHNldCB0byBmYWxzZSwgdGhlbiBpdCBkaXNhYmxlcyBlZGl0aW5nIG9mIGEgcGFydGljdWxhciBjb2x1bW4uIFxuICAgICAqIEJ5IGRlZmF1bHQgYWxsIGNvbHVtbnMgYXJlIGVkaXRhYmxlLlxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICBwdWJsaWMgYWxsb3dFZGl0aW5nOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIElmIGBhbGxvd0ZpbHRlcmluZ2Agc2V0IHRvIGZhbHNlLCB0aGVuIGl0IGRpc2FibGVzIGZpbHRlcmluZyBvcHRpb24gYW5kIGZpbHRlciBiYXIgZWxlbWVudCBvZiBhIHBhcnRpY3VsYXIgY29sdW1uLiBcbiAgICAgKiBCeSBkZWZhdWx0IGFsbCBjb2x1bW5zIGFyZSBmaWx0ZXJhYmxlLlxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICBwdWJsaWMgYWxsb3dGaWx0ZXJpbmc6IGFueTtcbiAgICAvKiogXG4gICAgICogSWYgYGFsbG93UmVvcmRlcmluZ2Agc2V0IHRvIGZhbHNlLCB0aGVuIGl0IGRpc2FibGVzIHJlb3JkZXIgb2YgYSBwYXJ0aWN1bGFyIGNvbHVtbi4gXG4gICAgICogQnkgZGVmYXVsdCBhbGwgY29sdW1ucyBjYW4gYmUgcmVvcmRlci5cbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgcHVibGljIGFsbG93UmVvcmRlcmluZzogYW55O1xuICAgIC8qKiBcbiAgICAgKiBJZiBgYWxsb3dSZXNpemluZ2Agc2V0IHRvIGZhbHNlLCBpdCBkaXNhYmxlcyByZXNpemUgb3B0aW9uIG9mIGEgcGFydGljdWxhciBjb2x1bW4uXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIHB1YmxpYyBhbGxvd1Jlc2l6aW5nOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIElmIGBhbGxvd1NvcnRpbmdgIHNldCB0byBmYWxzZSwgdGhlbiBpdCBkaXNhYmxlcyBzb3J0aW5nIG9wdGlvbiBvZiBhIHBhcnRpY3VsYXIgY29sdW1uLiBcbiAgICAgKiBCeSBkZWZhdWx0IGFsbCBjb2x1bW5zIGFyZSBzb3J0YWJsZS5cbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgcHVibGljIGFsbG93U29ydGluZzogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHRoZSBjZWxsIGNvbnRlbnQncyBvdmVyZmxvdyBtb2RlLiBUaGUgYXZhaWxhYmxlIG1vZGVzIGFyZSBcbiAgICAgKiAgXG4gICAgICogYWxzbyBpdCB3aWxsIGRpc3BsYXkgdG9vbHRpcCB3aGlsZSBob3ZlciBvbiBlbGxpcHNpcyBhcHBsaWVkIGNlbGwuXG4gICAgICogQGRlZmF1bHQgU3luY2Z1c2lvbi5FSjIuR3JpZHMuQ2xpcE1vZGUuRWxsaXBzaXNcbiAgICAgKiBAaXNlbnVtZXJhdGlvbiB0cnVlXG4gICAgICogQGFzcHR5cGUgU3luY2Z1c2lvbi5FSjIuR3JpZHMuQ2xpcE1vZGVcbiAgICAgKi9cbiAgICBwdWJsaWMgY2xpcE1vZGU6IGFueTtcbiAgICAvKiogXG4gICAgICogVXNlZCB0byByZW5kZXIgbXVsdGlwbGUgaGVhZGVyIHJvd3Moc3RhY2tlZCBoZWFkZXJzKSBvbiBUcmVlR3JpZCBoZWFkZXIuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyBjb2x1bW5zOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIGBjb21tYW5kc2AgcHJvdmlkZXMgYW4gb3B0aW9uIHRvIGRpc3BsYXkgY29tbWFuZCBidXR0b25zIGluIGV2ZXJ5IGNlbGwuIFxuICAgICAqIFRoZSBhdmFpbGFibGUgYnVpbHQtaW4gY29tbWFuZCBidXR0b25zIGFyZSBcbiAgICAgKiAqIEVkaXQgLSBFZGl0IHRoZSByZWNvcmQuIFxuICAgICAqICogRGVsZXRlIC0gRGVsZXRlIHRoZSByZWNvcmQuIFxuICAgICAqICogU2F2ZSAtIFNhdmUgdGhlIHJlY29yZC4gXG4gICAgICogKiBDYW5jZWwgLSBDYW5jZWwgdGhlIGVkaXQgc3RhdGUuXG4gICAgICogXG4gICAgICogVGhlIGZvbGxvd2luZyBjb2RlIGV4YW1wbGUgaW1wbGVtZW50cyB0aGUgY3VzdG9tIGNvbW1hbmQgY29sdW1uLlxuICAgICAqYGBgaHRtbFxuICAgICAqPHN0eWxlIHR5cGU9XCJ0ZXh0L2Nzc1wiIGNsYXNzPVwiY3NzU3R5bGVzXCI+XG4gICAgICouZGV0YWlscy1pY29uOmJlZm9yZVxuICAgICAqe1xuICAgICAqICAgY29udGVudDpcIlxcZTc0ZFwiO1xuICAgICAqfVxuICAgICAqPC9zdHlsZT5cbiAgICAgKjxkaXYgaWQ9XCJUcmVlR3JpZFwiPjwvZGl2PlxuICAgICAqYGBgXG4gICAgICpgYGB0eXBlc2NyaXB0XG4gICAgICp2YXIgZ3JpZE9iaiA9IG5ldyBUcmVlR3JpZCh7XG4gICAgICpkYXRhc291cmNlOiB3aW5kb3cuZ3JpZERhdGEsXG4gICAgICpjb2x1bW5zIDogW1xuICAgICAqIHsgZmllbGQ6ICdDdXN0b21lcklEJywgaGVhZGVyVGV4dDogJ0N1c3RvbWVyIElEJyB9LFxuICAgICAqIHsgZmllbGQ6ICdDdXN0b21lck5hbWUnLCBoZWFkZXJUZXh0OiAnQ3VzdG9tZXIgTmFtZScgfSxcbiAgICAgKiB7Y29tbWFuZHM6IFt7YnV0dG9uT3B0aW9uOntjb250ZW50OiAnRGV0YWlscycsIGNsaWNrOiBvbkNsaWNrLCBjc3NDbGFzczogZGV0YWlscy1pY29ufX1dLCBoZWFkZXJUZXh0OiAnQ3VzdG9tZXIgRGV0YWlscyd9XG4gICAgICpdXG4gICAgICpncmlkT2JqLmFwcGVuZFRvKFwiI1RyZWVHcmlkXCIpO1xuICAgICAqYGBgXG4gICAgICogICAgIFxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKi9cbiAgICBwdWJsaWMgY29tbWFuZHM6IGFueTtcbiAgICAvKiogXG4gICAgICogVGhlIENTUyBzdHlsZXMgYW5kIGF0dHJpYnV0ZXMgb2YgdGhlIGNvbnRlbnQgY2VsbHMgb2YgYSBwYXJ0aWN1bGFyIGNvbHVtbiBjYW4gYmUgY3VzdG9taXplZC5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICovXG4gICAgcHVibGljIGN1c3RvbUF0dHJpYnV0ZXM6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyBkZWZhdWx0IHZhbHVlcyBmb3IgdGhlIGNvbXBvbmVudCB3aGVuIGFkZGluZyBhIG5ldyByZWNvcmQgdG8gdGhlIFRyZWVHcmlkLlxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKi9cbiAgICBwdWJsaWMgZGVmYXVsdFZhbHVlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIElmIGBkaXNhYmxlSHRtbEVuY29kZWAgaXMgc2V0IHRvIHRydWUsIGl0IGVuY29kZXMgdGhlIEhUTUwgb2YgdGhlIGhlYWRlciBhbmQgY29udGVudCBjZWxscy5cbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgcHVibGljIGRpc2FibGVIdG1sRW5jb2RlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIElmIGBkaXNwbGF5QXNDaGVja0JveGAgaXMgc2V0IHRvIHRydWUsIGl0IGRpc3BsYXlzIHRoZSBjb2x1bW4gdmFsdWUgYXMgYSBjaGVjayBib3ggaW5zdGVhZCBvZiBCb29sZWFuIHZhbHVlLlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgcHVibGljIGRpc3BsYXlBc0NoZWNrQm94OiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgdGhlIGBJRWRpdENlbGxgIG9iamVjdCB0byBjdXN0b21pemUgZGVmYXVsdCBlZGl0IGNlbGwuXG4gICAgICogQGRlZmF1bHQge31cbiAgICAgKi9cbiAgICBwdWJsaWMgZWRpdDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHRoZSB0eXBlIG9mIGNvbXBvbmVudCBmb3IgZWRpdGluZy5cbiAgICAgKiBAZGVmYXVsdCAnc3RyaW5nZWRpdCdcbiAgICAgKi9cbiAgICBwdWJsaWMgZWRpdFR5cGU6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgZmllbGQgbmFtZSBvZiBjb2x1bW4gd2hpY2ggaXMgbWFwcGVkIHdpdGggbWFwcGluZyBuYW1lIG9mIERhdGFTb3VyY2UuIFxuICAgICAqIFRoZSBib3VuZGVkIGNvbHVtbnMgY2FuIGJlIHNvcnQsIGZpbHRlciBldGMuLCBcbiAgICAgKiBUaGUgYGZpZWxkYCBuYW1lIG11c3QgYmUgYSB2YWxpZCBKYXZhU2NyaXB0IGlkZW50aWZpZXIsIFxuICAgICAqIHRoZSBmaXJzdCBjaGFyYWN0ZXIgbXVzdCBiZSBhbiBhbHBoYWJldCBhbmQgc2hvdWxkIG5vdCBjb250YWluIHNwYWNlcyBhbmQgc3BlY2lhbCBjaGFyYWN0ZXJzLlxuICAgICAqIEBkZWZhdWx0ICd1bmRlZmluZWQnXG4gICAgICovXG4gICAgcHVibGljIGZpZWxkOiBhbnk7XG4gICAgLyoqIFxuICAgICAqICBEZWZpbmVzIHRoZSBmaWx0ZXIgb3B0aW9ucyB0byBjdXN0b21pemUgZmlsdGVyaW5nIGZvciB0aGUgcGFydGljdWxhciBjb2x1bW4uXG4gICAgICogXG4gICAgICogIEBkZWZhdWx0IG51bGxcbiAgICAgKiAgICAgXG4gICAgICovXG4gICAgcHVibGljIGZpbHRlcjogYW55O1xuICAgIC8qKiBcbiAgICAgKiBUaGUgYGZpbHRlckJhclRlbXBsYXRlYCBpcyB1c2VkIHRvIGFkZCBhIGN1c3RvbSBjb21wb25lbnQgaW5zdGVhZCBvZiBkZWZhdWx0IGlucHV0IGNvbXBvbmVudCBmb3IgZmlsdGVyIGJhci4gXG4gICAgICogSXQgaGF2ZSBjcmVhdGUgYW5kIHJlYWQgZnVuY3Rpb25zLiBcbiAgICAgKiAqIGNyZWF0ZTogSXQgaXMgdXNlZCBmb3IgY3JlYXRpbmcgY3VzdG9tIGNvbXBvbmVudHMuIFxuICAgICAqICogcmVhZDogSXQgaXMgdXNlZCB0byBwZXJmb3JtIGN1c3RvbSBmaWx0ZXIgYWN0aW9uLlxuICAgICAqIFxuICAgICAqIGBgYGh0bWxcbiAgICAgKjxkaXYgaWQ9XCJUcmVlR3JpZFwiPjwvZGl2PlxuICAgICAqYGBgXG4gICAgICpgYGB0eXBlc2NyaXB0XG4gICAgICpsZXQgZ3JpZE9iajogVHJlZUdyaWQgPSBuZXcgVHJlZUdyaWQoe1xuICAgICAqZGF0YVNvdXJjZTogZmlsdGVyRGF0YSxcbiAgICAgKmNvbHVtbnM6IFtcbiAgICAgKiAgeyBmaWVsZDogJ09yZGVySUQnLCBoZWFkZXJUZXh0OiAnT3JkZXIgSUQnIH0sXG4gICAgICogIHtcbiAgICAgKiAgICAgZmllbGQ6ICdFbXBsb3llZUlEJywgZmlsdGVyQmFyVGVtcGxhdGU6IHtcbiAgICAgKiAgICAgICAgY3JlYXRlOiAoYXJnczogeyBlbGVtZW50OiBFbGVtZW50LCBjb2x1bW46IENvbHVtbiB9KSA9PiB7XG4gICAgICogICAgICAgICAgICAgbGV0IGlucHV0OiBIVE1MSW5wdXRFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcbiAgICAgKiAgICAgICAgICAgICBpbnB1dC5pZCA9ICdFbXBsb3llZUlEJztcbiAgICAgKiAgICAgICAgICAgICBpbnB1dC50eXBlID0gJ3RleHQnO1xuICAgICAqICAgICAgICAgICAgIHJldHVybiBpbnB1dDtcbiAgICAgKiAgICAgICAgfSxcbiAgICAgKiAgICAgICAgd3JpdGU6IChhcmdzOiB7IGVsZW1lbnQ6IEVsZW1lbnQsIGNvbHVtbjogQ29sdW1uIH0pID0+IHtcbiAgICAgKiAgICAgICAgICAgIGFyZ3MuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsIGFyZ3MuY29sdW1uLmZpbHRlckJhclRlbXBsYXRlLnJlYWQgYXMgRXZlbnRMaXN0ZW5lcik7XG4gICAgICogICAgICAgIH0sXG4gICAgICogICAgICAgIHJlYWQ6IChhcmdzOiB7IGVsZW1lbnQ6IEhUTUxJbnB1dEVsZW1lbnQsIGNvbHVtbkluZGV4OiBudW1iZXIsIGNvbHVtbjogQ29sdW1uIH0pID0+IHtcbiAgICAgKiAgICAgICAgICAgIGdyaWRPYmouZmlsdGVyQnlDb2x1bW4oYXJncy5lbGVtZW50LmlkLCAnZXF1YWwnLCBhcmdzLmVsZW1lbnQudmFsdWUpO1xuICAgICAqICAgICAgIH1cbiAgICAgKiAgICB9XG4gICAgICogfV0sXG4gICAgICogIGFsbG93RmlsdGVyaW5nOiB0cnVlXG4gICAgICp9KTtcbiAgICAgKmdyaWRPYmouYXBwZW5kVG8oJyNUcmVlR3JpZCcpO1xuICAgICAqYGBgXG4gICAgICogICAgIFxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKi9cbiAgICBwdWJsaWMgZmlsdGVyQmFyVGVtcGxhdGU6IGFueTtcbiAgICAvKiogXG4gICAgICogSXQgaXMgdXNlZCB0byBjaGFuZ2UgZGlzcGxheSB2YWx1ZSB3aXRoIHRoZSBnaXZlbiBmb3JtYXQgYW5kIGRvZXMgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgZGF0YS4gXG4gICAgICogR2V0cyB0aGUgZm9ybWF0IGZyb20gdGhlIHVzZXIgd2hpY2ggY2FuIGJlIHN0YW5kYXJkIG9yIGN1c3RvbSBcbiAgICAgKiBbYG51bWJlcmBdKGh0dHBzOi8vZWoyLnN5bmNmdXNpb24uY29tL2RvY3VtZW50YXRpb24vY29tbW9uL2ludGVybmF0aW9uYWxpemF0aW9uLyNzdXBwb3J0ZWQtZm9ybWF0LXN0cmluZykgXG4gICAgICogYW5kIFtgZGF0ZWBdKGh0dHBzOi8vZWoyLnN5bmNmdXNpb24uY29tL2RvY3VtZW50YXRpb24vY29tbW9uL2ludGVybmF0aW9uYWxpemF0aW9uLyNzdXBwb3J0ZWQtZm9ybWF0LXN0cmluZy0xKSBmb3JtYXRzLlxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKiBAYXNwdHlwZSBzdHJpbmdcbiAgICAgKi9cbiAgICBwdWJsaWMgZm9ybWF0OiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgdGhlIG1ldGhvZCB3aGljaCBpcyB1c2VkIHRvIGFjaGlldmUgY3VzdG9tIGZvcm1hdHRpbmcgZnJvbSBhbiBleHRlcm5hbCBmdW5jdGlvbi4gXG4gICAgICogVGhpcyBmdW5jdGlvbiB0cmlnZ2VycyBiZWZvcmUgcmVuZGVyaW5nIG9mIGVhY2ggY2VsbC5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICovXG4gICAgcHVibGljIGZvcm1hdHRlcjogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHdoaWNoIHNpZGUgdGhlIGNvbHVtbiBuZWVkIHRvIGZyZWV6ZVxuICAgICAqIEBkZWZhdWx0IFN5bmNmdXNpb24uRUoyLkdyaWRzLkZyZWV6ZURpcmVjdGlvbi5Ob25lXG4gICAgICogQGlzZW51bWVyYXRpb24gdHJ1ZVxuICAgICAqIEBhc3B0eXBlIFN5bmNmdXNpb24uRUoyLkdyaWRzLkZyZWV6ZURpcmVjdGlvblxuICAgICAqL1xuICAgIHB1YmxpYyBmcmVlemU6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgaGVhZGVyIHRleHQgb2YgY29sdW1uIHdoaWNoIGlzIHVzZWQgdG8gZGlzcGxheSBpbiBjb2x1bW4gaGVhZGVyLiBcbiAgICAgKiBJZiBgaGVhZGVyVGV4dGAgaXMgbm90IGRlZmluZWQsIHRoZW4gZmllbGQgbmFtZSB2YWx1ZSB3aWxsIGJlIGFzc2lnbmVkIHRvIGhlYWRlciB0ZXh0LlxuICAgICAqIEBkZWZhdWx0ICd1bmRlZmluZWQnXG4gICAgICovXG4gICAgcHVibGljIGhlYWRlclRleHQ6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lIHRoZSBhbGlnbm1lbnQgb2YgY29sdW1uIGhlYWRlciB3aGljaCBpcyB1c2VkIHRvIGFsaWduIHRoZSB0ZXh0IG9mIGNvbHVtbiBoZWFkZXIuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqIEBhc3BkZWZhdWx0dmFsdWVpZ25vcmUgXG4gICAgICogQGlzZW51bWVyYXRpb24gdHJ1ZVxuICAgICAqIEBhc3B0eXBlIFN5bmNmdXNpb24uRUoyLkdyaWRzLlRleHRBbGlnblxuICAgICAqL1xuICAgIHB1YmxpYyBoZWFkZXJUZXh0QWxpZ246IGFueTtcbiAgICAvKiogXG4gICAgICogQ29sdW1uIHZpc2liaWxpdHkgY2FuIGNoYW5nZSBiYXNlZCBvbiBbYE1lZGlhIFF1ZXJpZXNgXShodHRwOi8vY3NzbWVkaWFxdWVyaWVzLmNvbS93aGF0LWFyZS1jc3MtbWVkaWEtcXVlcmllcy5odG1sKS4gXG4gICAgICogYGhpZGVBdE1lZGlhYCBhY2NlcHRzIG9ubHkgdmFsaWQgTWVkaWEgUXVlcmllcy5cbiAgICAgKiBAZGVmYXVsdCAndW5kZWZpbmVkJ1xuICAgICAqL1xuICAgIHB1YmxpYyBoaWRlQXRNZWRpYTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBZb3UgY2FuIHVzZSB0aGlzIHByb3BlcnR5IHRvIGZyZWV6ZSBzZWxlY3RlZCBjb2x1bW5zIGluIGdyaWQuXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBwdWJsaWMgaXNGcm96ZW46IGFueTtcbiAgICAvKiogXG4gICAgICogSWYgYGlzSWRlbnRpdHlgIGlzIHNldCB0byB0cnVlLCB0aGVuIHRoaXMgY29sdW1uIGlzIGNvbnNpZGVyZWQgYXMgaWRlbnRpdHkgY29sdW1uLlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgcHVibGljIGlzSWRlbnRpdHk6IGFueTtcbiAgICAvKiogXG4gICAgICogSWYgYGlzUHJpbWFyeUtleWAgaXMgc2V0IHRvIHRydWUsIGNvbnNpZGVycyB0aGlzIGNvbHVtbiBhcyB0aGUgcHJpbWFyeSBrZXkgY29uc3RyYWludC5cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIHB1YmxpYyBpc1ByaW1hcnlLZXk6IGFueTtcbiAgICAvKiogXG4gICAgICogSWYgYGxvY2tDb2x1bW5gIHNldCB0byB0cnVlLCB0aGVuIGl0IGRpc2FibGVzIFJlb3JkZXJpbmcgb2YgYSBwYXJ0aWN1bGFyIGNvbHVtbi4gXG4gICAgICogVGhlIGxvY2tlZCBjb2x1bW4gd2lsbCBiZSBtb3ZlZCB0byBmaXJzdCBwb3NpdGlvbi5cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIHB1YmxpYyBsb2NrQ29sdW1uOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgdGhlIG1heGltdW0gd2lkdGggb2YgdGhlIGNvbHVtbiBpbiBwaXhlbHMgb3IgcGVyY2VudGFnZSwgd2hpY2ggd2lsbCByZXN0cmljdCByZXNpemluZyBiZXlvbmQgdGhpcyBwaXhlbHMgb3IgcGVyY2VudGFnZS5cbiAgICAgKiBAZGVmYXVsdCAndW5kZWZpbmVkJ1xuICAgICAqL1xuICAgIHB1YmxpYyBtYXhXaWR0aDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHRoZSBtaW5pbXVtIHdpZHRoIG9mIHRoZSBjb2x1bW4gaW4gcGl4ZWxzIG9yIHBlcmNlbnRhZ2UuXG4gICAgICogQGRlZmF1bHQgJ3VuZGVmaW5lZCdcbiAgICAgKi9cbiAgICBwdWJsaWMgbWluV2lkdGg6IGFueTtcbiAgICAvKiogXG4gICAgICogSWYgYHNob3dDaGVja2JveGAgc2V0IHRvIHRydWUsIHRoZW4gdGhlIGNoZWNrYm94ZXMgd2lsbCBiZSBkaXNwbGF5ZWQgaW4gcGFydGljdWxhciBjb2x1bW4uXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBwdWJsaWMgc2hvd0NoZWNrYm94OiBhbnk7XG4gICAgLyoqIFxuICAgICAqIElmIGBzaG93Q29sdW1uTWVudWAgc2V0IHRvIGZhbHNlLCB0aGVuIGl0IGRpc2FibGUgdGhlIGNvbHVtbiBtZW51IG9mIGEgcGFydGljdWxhciBjb2x1bW4uIFxuICAgICAqIEJ5IGRlZmF1bHQgY29sdW1uIG1lbnUgd2lsbCBzaG93IGZvciBhbGwgY29sdW1uc1xuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICBwdWJsaWMgc2hvd0NvbHVtbk1lbnU6IGFueTtcbiAgICAvKiogXG4gICAgICogSWYgYHNob3dJbkNvbHVtbkNob29zZXJgIHNldCB0byBmYWxzZSwgdGhlbiBoaWRlIHRoZSBwYXJ0aWN1bGFyIGNvbHVtbiBpbiBjb2x1bW4gY2hvb3Nlci4gXG4gICAgICogIEJ5IGRlZmF1bHQgYWxsIGNvbHVtbnMgYXJlIGRpc3BsYXllZCBpbiBjb2x1bW4gQ2hvb3Nlci5cbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgcHVibGljIHNob3dJbkNvbHVtbkNob29zZXI6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgc29ydCBjb21wYXJlciBwcm9wZXJ0eS5cbiAgICAgKiBAZGVmYXVsdCAndW5kZWZpbmVkJ1xuICAgICAqL1xuICAgIHB1YmxpYyBzb3J0Q29tcGFyZXI6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgYWxpZ25tZW50IG9mIHRoZSBjb2x1bW4gaW4gYm90aCBoZWFkZXIgYW5kIGNvbnRlbnQgY2VsbHMuXG4gICAgICogQGRlZmF1bHQgU3luY2Z1c2lvbi5FSjIuR3JpZHMuVGV4dEFsaWduLkxlZnRcbiAgICAgKiBAaXNlbnVtZXJhdGlvbiB0cnVlXG4gICAgICogQGFzcHR5cGUgU3luY2Z1c2lvbi5FSjIuR3JpZHMuVGV4dEFsaWduXG4gICAgICovXG4gICAgcHVibGljIHRleHRBbGlnbjogYW55O1xuICAgIC8qKiBcbiAgICAgKiBHZXRzIHRoZSB1bmlxdWUgaWRlbnRpZmllciB2YWx1ZSBvZiB0aGUgY29sdW1uLiBJdCBpcyB1c2VkIHRvIGdldCB0aGUgb2JqZWN0LlxuICAgICAqIEBkZWZhdWx0ICd1bmRlZmluZWQnXG4gICAgICovXG4gICAgcHVibGljIHVpZDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHJ1bGVzIHRvIHZhbGlkYXRlIGRhdGEgYmVmb3JlIGNyZWF0aW5nIGFuZCB1cGRhdGluZy5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICovXG4gICAgcHVibGljIHZhbGlkYXRpb25SdWxlczogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHRoZSBtZXRob2QgdXNlZCB0byBhcHBseSBjdXN0b20gY2VsbCB2YWx1ZXMgZnJvbSBleHRlcm5hbCBmdW5jdGlvbiBhbmQgZGlzcGxheSB0aGlzIG9uIGVhY2ggY2VsbCByZW5kZXJlZC5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICovXG4gICAgcHVibGljIHZhbHVlQWNjZXNzb3I6IGFueTtcbiAgICAvKiogXG4gICAgICogSWYgYHZpc2libGVgIGlzIHNldCB0byBmYWxzZSwgaGlkZXMgdGhlIHBhcnRpY3VsYXIgY29sdW1uLiBCeSBkZWZhdWx0LCBjb2x1bW5zIGFyZSBkaXNwbGF5ZWQuXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIHB1YmxpYyB2aXNpYmxlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgdGhlIHdpZHRoIG9mIHRoZSBjb2x1bW4gaW4gcGl4ZWxzIG9yIHBlcmNlbnRhZ2UuXG4gICAgICogQGRlZmF1bHQgJ3VuZGVmaW5lZCdcbiAgICAgKi9cbiAgICBwdWJsaWMgd2lkdGg6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgY29sdW1uIHRlbXBsYXRlIHRoYXQgcmVuZGVycyBjdXN0b21pemVkIGVsZW1lbnQgaW4gZWFjaCBjZWxsIG9mIHRoZSBjb2x1bW4uIFxuICAgICAqIEl0IGFjY2VwdHMgZWl0aGVyIFt0ZW1wbGF0ZSBzdHJpbmddKGh0dHBzOi8vZWoyLnN5bmNmdXNpb24uY29tL2RvY3VtZW50YXRpb24vY29tbW9uL3RlbXBsYXRlLWVuZ2luZS8pIG9yIEhUTUwgZWxlbWVudCBJRC5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICogQGFzcHR5cGUgc3RyaW5nXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgndGVtcGxhdGUnKVxuICAgIEBUZW1wbGF0ZSgpXG4gICAgcHVibGljIHRlbXBsYXRlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgdGhlIGhlYWRlciB0ZW1wbGF0ZSBhcyBzdHJpbmcgb3IgSFRNTCBlbGVtZW50IElEIHdoaWNoIGlzIHVzZWQgdG8gYWRkIGN1c3RvbWl6ZWQgZWxlbWVudCBpbiB0aGUgY29sdW1uIGhlYWRlci5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICogQGFzcHR5cGUgc3RyaW5nXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgnaGVhZGVyVGVtcGxhdGUnKVxuICAgIEBUZW1wbGF0ZSgpXG4gICAgcHVibGljIGhlYWRlclRlbXBsYXRlOiBhbnk7XG4gICAgQENvbnRlbnRDaGlsZCgnZmlsdGVySXRlbVRlbXBsYXRlJylcbiAgICBAVGVtcGxhdGUoKVxuICAgIHB1YmxpYyBmaWx0ZXJfaXRlbVRlbXBsYXRlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgdGhlIGZpbHRlciB0ZW1wbGF0ZS9VSSB0aGF0IGlzIHVzZWQgYXMgZmlsdGVyIGZvciBhIHBhcnRpY3VsYXIgY29sdW1uLiBcbiAgICAgKiBJdCBhY2NlcHRzIGVpdGhlciB0ZW1wbGF0ZSBzdHJpbmcgb3IgSFRNTCBlbGVtZW50IElELlxuICAgICAqIEBhc3BpZ25vcmUgXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgnZmlsdGVyVGVtcGxhdGUnKVxuICAgIEBUZW1wbGF0ZSgpXG4gICAgcHVibGljIGZpbHRlclRlbXBsYXRlOiBhbnk7XG4gICAgQENvbnRlbnRDaGlsZCgnY29tbWFuZHNUZW1wbGF0ZScpXG4gICAgQFRlbXBsYXRlKClcbiAgICBwdWJsaWMgY29tbWFuZHNUZW1wbGF0ZTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHRoZSBjZWxsIGVkaXQgdGVtcGxhdGUgdGhhdCB1c2VkIGFzIGVkaXRvciBmb3IgYSBwYXJ0aWN1bGFyIGNvbHVtbi4gXG4gICAgICogSXQgYWNjZXB0cyBlaXRoZXIgdGVtcGxhdGUgc3RyaW5nIG9yIEhUTUwgZWxlbWVudCBJRC5cbiAgICAgKiBAYXNwaWdub3JlIFxuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ2VkaXRUZW1wbGF0ZScpXG4gICAgQFRlbXBsYXRlKClcbiAgICBwdWJsaWMgZWRpdFRlbXBsYXRlOiBhbnk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHZpZXdDb250YWluZXJSZWY6Vmlld0NvbnRhaW5lclJlZikge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBzZXRWYWx1ZSgnY3VycmVudEluc3RhbmNlJywgdGhpcywgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcbiAgICAgICAgdGhpcy5yZWdpc3RlckV2ZW50cyhvdXRwdXRzKTtcbiAgICAgICAgdGhpcy5kaXJlY3RpdmVQcm9wTGlzdCA9IGlucHV0O1xuICAgIH1cbn1cblxuLyoqXG4gKiBTdGFja2VkQ29sdW1uIEFycmF5IERpcmVjdGl2ZVxuICogQHByaXZhdGVcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdlanMtdHJlZWdyaWQ+ZS1jb2x1bW5zPmUtY29sdW1uPmUtc3RhY2tlZC1jb2x1bW5zJyxcbiAgICBxdWVyaWVzOiB7XG4gICAgICAgIGNoaWxkcmVuOiBuZXcgQ29udGVudENoaWxkcmVuKFN0YWNrZWRDb2x1bW5EaXJlY3RpdmUpXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgU3RhY2tlZENvbHVtbnNEaXJlY3RpdmUgZXh0ZW5kcyBBcnJheUJhc2U8U3RhY2tlZENvbHVtbnNEaXJlY3RpdmU+IHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoJ2NvbHVtbnMnKTtcbiAgICB9XG59Il19
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2tlZC1jb2x1bW4uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RyZWVncmlkL3N0YWNrZWQtY29sdW1uLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBb0IsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBR3hELElBQUksS0FBSyxHQUFhLENBQUMsY0FBYyxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLG1CQUFtQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUscUJBQXFCLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3hwQixJQUFJLE9BQU8sR0FBYSxFQUFFLENBQUM7QUFDM0I7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBU0gsTUFBTSxPQUFPLHNCQUF1QixTQUFRLFdBQW1DO0lBNlUzRSxZQUFvQixnQkFBaUM7UUFDakQsS0FBSyxFQUFFLENBQUM7UUFEUSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlCO1FBRWpELFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO0lBQ25DLENBQUM7O21IQWxWUSxzQkFBc0I7dUdBQXRCLHNCQUFzQjtBQTZTL0I7SUFEQyxRQUFRLEVBQUU7d0RBQ1U7QUFRckI7SUFEQyxRQUFRLEVBQUU7OERBQ2dCO0FBRzNCO0lBREMsUUFBUSxFQUFFO21FQUNxQjtBQVFoQztJQURDLFFBQVEsRUFBRTs4REFDZ0I7QUFHM0I7SUFEQyxRQUFRLEVBQUU7Z0VBQ2tCO0FBUTdCO0lBREMsUUFBUSxFQUFFOzREQUNjOzJGQTNVaEIsc0JBQXNCO2tCQVJsQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxvRUFBb0U7b0JBQzlFLE1BQU0sRUFBRSxLQUFLO29CQUNiLE9BQU8sRUFBRSxPQUFPO29CQUNoQixPQUFPLEVBQUUsRUFFUjtpQkFDSjt1R0E4U1UsUUFBUTtzQkFGZCxZQUFZO3VCQUFDLFVBQVU7Z0JBVWpCLGNBQWM7c0JBRnBCLFlBQVk7dUJBQUMsZ0JBQWdCO2dCQUt2QixtQkFBbUI7c0JBRnpCLFlBQVk7dUJBQUMsb0JBQW9CO2dCQVUzQixjQUFjO3NCQUZwQixZQUFZO3VCQUFDLGdCQUFnQjtnQkFLdkIsZ0JBQWdCO3NCQUZ0QixZQUFZO3VCQUFDLGtCQUFrQjtnQkFVekIsWUFBWTtzQkFGbEIsWUFBWTt1QkFBQyxjQUFjOztBQVloQzs7O0dBR0c7QUFPSCxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsU0FBa0M7SUFDM0U7UUFDSSxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDckIsQ0FBQzs7b0hBSFEsdUJBQXVCO3dHQUF2Qix1QkFBdUIsa0hBSEUsc0JBQXNCOzJGQUcvQyx1QkFBdUI7a0JBTm5DLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG1EQUFtRDtvQkFDN0QsT0FBTyxFQUFFO3dCQUNMLFFBQVEsRUFBRSxJQUFJLGVBQWUsQ0FBQyxzQkFBc0IsQ0FBQztxQkFDeEQ7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIFZpZXdDb250YWluZXJSZWYsIENvbnRlbnRDaGlsZHJlbiwgQ29udGVudENoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21wbGV4QmFzZSwgQXJyYXlCYXNlLCBzZXRWYWx1ZSB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLWJhc2UnO1xuaW1wb3J0IHsgVGVtcGxhdGUgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItYW5ndWxhci1iYXNlJztcblxuXG5sZXQgaW5wdXQ6IHN0cmluZ1tdID0gWydhbGxvd0VkaXRpbmcnLCAnYWxsb3dGaWx0ZXJpbmcnLCAnYWxsb3dSZW9yZGVyaW5nJywgJ2FsbG93UmVzaXppbmcnLCAnYWxsb3dTb3J0aW5nJywgJ2NsaXBNb2RlJywgJ2NvbHVtbnMnLCAnY29tbWFuZHMnLCAnY3VzdG9tQXR0cmlidXRlcycsICdkZWZhdWx0VmFsdWUnLCAnZGlzYWJsZUh0bWxFbmNvZGUnLCAnZGlzcGxheUFzQ2hlY2tCb3gnLCAnZWRpdCcsICdlZGl0VGVtcGxhdGUnLCAnZWRpdFR5cGUnLCAnZmllbGQnLCAnZmlsdGVyJywgJ2ZpbHRlckJhclRlbXBsYXRlJywgJ2ZpbHRlclRlbXBsYXRlJywgJ2Zvcm1hdCcsICdmb3JtYXR0ZXInLCAnZnJlZXplJywgJ2hlYWRlclRlbXBsYXRlJywgJ2hlYWRlclRleHQnLCAnaGVhZGVyVGV4dEFsaWduJywgJ2hpZGVBdE1lZGlhJywgJ2lzRnJvemVuJywgJ2lzSWRlbnRpdHknLCAnaXNQcmltYXJ5S2V5JywgJ2xvY2tDb2x1bW4nLCAnbWF4V2lkdGgnLCAnbWluV2lkdGgnLCAnc2hvd0NoZWNrYm94JywgJ3Nob3dDb2x1bW5NZW51JywgJ3Nob3dJbkNvbHVtbkNob29zZXInLCAnc29ydENvbXBhcmVyJywgJ3RlbXBsYXRlJywgJ3RleHRBbGlnbicsICd0eXBlJywgJ3VpZCcsICd2YWxpZGF0aW9uUnVsZXMnLCAndmFsdWVBY2Nlc3NvcicsICd2aXNpYmxlJywgJ3dpZHRoJ107XG5sZXQgb3V0cHV0czogc3RyaW5nW10gPSBbXTtcbi8qKlxuICogYGUtc3RhY2tlZC1jb2x1bW5gIGRpcmVjdGl2ZSByZXByZXNlbnQgdGhlIHN0YWNrZWQgY29sdW1uIG9mIHRoZSBBbmd1bGFyIFRyZWVHcmlkLlxuICogSXQgbXVzdCBiZSBjb250YWluZWQgaW4gYSBTdGFja2VkQ29sdW1ucyBjb21wb25lbnQoYGUtc3RhY2tlZC1jb2x1bW5zYCkuIFxuICogYGBgaHRtbFxuICogPGVqcy10cmVlZ3JpZCBbZGF0YVNvdXJjZV09J2RhdGEnIGFsbG93UGFnaW5nPSd0cnVlJyBhbGxvd1NvcnRpbmc9J3RydWUnPiBcbiAqICAgPGUtY29sdW1ucz5cbiAqICAgICA8ZS1jb2x1bW4gZmllbGQ9J0lEJyB3aWR0aD0nMTAwJz48L2UtY29sdW1uPlxuICogICAgIDxlLWNvbHVtbiBoZWFkZXJUZXh0PSdEZXRhaWxzJyB3aWR0aD0nMTAwJz5cbiAqICAgICAgIDxlLXN0YWNrZWQtY29sdW1ucz5cbiAqICAgICAgICAgPGUtc3RhY2tlZC1jb2x1bW4gZmllbGQ9J05hbWUnIHdpZHRoPScxNDAnPjwvZS1zdGFja2VkLWNvbHVtbj5cbiAqICAgICAgIDwvZS1zdGFja2VkLWNvbHVtbnM+XG4gKiAgICAgPC9lLWNvbHVtbj5cbiAqICAgPC9lLWNvbHVtbnM+XG4gKiA8L2Vqcy10cmVlZ3JpZD5cbiAqIGBgYFxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ2Vqcy10cmVlZ3JpZD5lLWNvbHVtbnM+ZS1jb2x1bW4+ZS1zdGFja2VkLWNvbHVtbnM+ZS1zdGFja2VkLWNvbHVtbicsXG4gICAgaW5wdXRzOiBpbnB1dCxcbiAgICBvdXRwdXRzOiBvdXRwdXRzLCAgICBcbiAgICBxdWVyaWVzOiB7XG5cbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIFN0YWNrZWRDb2x1bW5EaXJlY3RpdmUgZXh0ZW5kcyBDb21wbGV4QmFzZTxTdGFja2VkQ29sdW1uRGlyZWN0aXZlPiB7XG4gICAgcHVibGljIGRpcmVjdGl2ZVByb3BMaXN0OiBhbnk7XG5cdFxuXG5cbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgZGF0YSB0eXBlIG9mIHRoZSBjb2x1bW4uXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyB0eXBlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIElmIGBhbGxvd0VkaXRpbmdgIHNldCB0byBmYWxzZSwgdGhlbiBpdCBkaXNhYmxlcyBlZGl0aW5nIG9mIGEgcGFydGljdWxhciBjb2x1bW4uIFxuICAgICAqIEJ5IGRlZmF1bHQgYWxsIGNvbHVtbnMgYXJlIGVkaXRhYmxlLlxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICBwdWJsaWMgYWxsb3dFZGl0aW5nOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIElmIGBhbGxvd0ZpbHRlcmluZ2Agc2V0IHRvIGZhbHNlLCB0aGVuIGl0IGRpc2FibGVzIGZpbHRlcmluZyBvcHRpb24gYW5kIGZpbHRlciBiYXIgZWxlbWVudCBvZiBhIHBhcnRpY3VsYXIgY29sdW1uLiBcbiAgICAgKiBCeSBkZWZhdWx0IGFsbCBjb2x1bW5zIGFyZSBmaWx0ZXJhYmxlLlxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICBwdWJsaWMgYWxsb3dGaWx0ZXJpbmc6IGFueTtcbiAgICAvKiogXG4gICAgICogSWYgYGFsbG93UmVvcmRlcmluZ2Agc2V0IHRvIGZhbHNlLCB0aGVuIGl0IGRpc2FibGVzIHJlb3JkZXIgb2YgYSBwYXJ0aWN1bGFyIGNvbHVtbi4gXG4gICAgICogQnkgZGVmYXVsdCBhbGwgY29sdW1ucyBjYW4gYmUgcmVvcmRlci5cbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgcHVibGljIGFsbG93UmVvcmRlcmluZzogYW55O1xuICAgIC8qKiBcbiAgICAgKiBJZiBgYWxsb3dSZXNpemluZ2Agc2V0IHRvIGZhbHNlLCBpdCBkaXNhYmxlcyByZXNpemUgb3B0aW9uIG9mIGEgcGFydGljdWxhciBjb2x1bW4uXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIHB1YmxpYyBhbGxvd1Jlc2l6aW5nOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIElmIGBhbGxvd1NvcnRpbmdgIHNldCB0byBmYWxzZSwgdGhlbiBpdCBkaXNhYmxlcyBzb3J0aW5nIG9wdGlvbiBvZiBhIHBhcnRpY3VsYXIgY29sdW1uLiBcbiAgICAgKiBCeSBkZWZhdWx0IGFsbCBjb2x1bW5zIGFyZSBzb3J0YWJsZS5cbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgcHVibGljIGFsbG93U29ydGluZzogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHRoZSBjZWxsIGNvbnRlbnQncyBvdmVyZmxvdyBtb2RlLiBUaGUgYXZhaWxhYmxlIG1vZGVzIGFyZSBcbiAgICAgKiAgXG4gICAgICogYWxzbyBpdCB3aWxsIGRpc3BsYXkgdG9vbHRpcCB3aGlsZSBob3ZlciBvbiBlbGxpcHNpcyBhcHBsaWVkIGNlbGwuXG4gICAgICogQGRlZmF1bHQgU3luY2Z1c2lvbi5FSjIuR3JpZHMuQ2xpcE1vZGUuRWxsaXBzaXNcbiAgICAgKiBAaXNlbnVtZXJhdGlvbiB0cnVlXG4gICAgICogQGFzcHR5cGUgU3luY2Z1c2lvbi5FSjIuR3JpZHMuQ2xpcE1vZGVcbiAgICAgKi9cbiAgICBwdWJsaWMgY2xpcE1vZGU6IGFueTtcbiAgICAvKiogXG4gICAgICogVXNlZCB0byByZW5kZXIgbXVsdGlwbGUgaGVhZGVyIHJvd3Moc3RhY2tlZCBoZWFkZXJzKSBvbiBUcmVlR3JpZCBoZWFkZXIuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyBjb2x1bW5zOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIGBjb21tYW5kc2AgcHJvdmlkZXMgYW4gb3B0aW9uIHRvIGRpc3BsYXkgY29tbWFuZCBidXR0b25zIGluIGV2ZXJ5IGNlbGwuIFxuICAgICAqIFRoZSBhdmFpbGFibGUgYnVpbHQtaW4gY29tbWFuZCBidXR0b25zIGFyZSBcbiAgICAgKiAqIEVkaXQgLSBFZGl0IHRoZSByZWNvcmQuIFxuICAgICAqICogRGVsZXRlIC0gRGVsZXRlIHRoZSByZWNvcmQuIFxuICAgICAqICogU2F2ZSAtIFNhdmUgdGhlIHJlY29yZC4gXG4gICAgICogKiBDYW5jZWwgLSBDYW5jZWwgdGhlIGVkaXQgc3RhdGUuXG4gICAgICogXG4gICAgICogVGhlIGZvbGxvd2luZyBjb2RlIGV4YW1wbGUgaW1wbGVtZW50cyB0aGUgY3VzdG9tIGNvbW1hbmQgY29sdW1uLlxuICAgICAqYGBgaHRtbFxuICAgICAqPHN0eWxlIHR5cGU9XCJ0ZXh0L2Nzc1wiIGNsYXNzPVwiY3NzU3R5bGVzXCI+XG4gICAgICouZGV0YWlscy1pY29uOmJlZm9yZVxuICAgICAqe1xuICAgICAqICAgY29udGVudDpcIlxcZTc0ZFwiO1xuICAgICAqfVxuICAgICAqPC9zdHlsZT5cbiAgICAgKjxkaXYgaWQ9XCJUcmVlR3JpZFwiPjwvZGl2PlxuICAgICAqYGBgXG4gICAgICpgYGB0eXBlc2NyaXB0XG4gICAgICp2YXIgZ3JpZE9iaiA9IG5ldyBUcmVlR3JpZCh7XG4gICAgICpkYXRhc291cmNlOiB3aW5kb3cuZ3JpZERhdGEsXG4gICAgICpjb2x1bW5zIDogW1xuICAgICAqIHsgZmllbGQ6ICdDdXN0b21lcklEJywgaGVhZGVyVGV4dDogJ0N1c3RvbWVyIElEJyB9LFxuICAgICAqIHsgZmllbGQ6ICdDdXN0b21lck5hbWUnLCBoZWFkZXJUZXh0OiAnQ3VzdG9tZXIgTmFtZScgfSxcbiAgICAgKiB7Y29tbWFuZHM6IFt7YnV0dG9uT3B0aW9uOntjb250ZW50OiAnRGV0YWlscycsIGNsaWNrOiBvbkNsaWNrLCBjc3NDbGFzczogZGV0YWlscy1pY29ufX1dLCBoZWFkZXJUZXh0OiAnQ3VzdG9tZXIgRGV0YWlscyd9XG4gICAgICpdXG4gICAgICpncmlkT2JqLmFwcGVuZFRvKFwiI1RyZWVHcmlkXCIpO1xuICAgICAqYGBgXG4gICAgICogICAgIFxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKi9cbiAgICBwdWJsaWMgY29tbWFuZHM6IGFueTtcbiAgICAvKiogXG4gICAgICogVGhlIENTUyBzdHlsZXMgYW5kIGF0dHJpYnV0ZXMgb2YgdGhlIGNvbnRlbnQgY2VsbHMgb2YgYSBwYXJ0aWN1bGFyIGNvbHVtbiBjYW4gYmUgY3VzdG9taXplZC5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICovXG4gICAgcHVibGljIGN1c3RvbUF0dHJpYnV0ZXM6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyBkZWZhdWx0IHZhbHVlcyBmb3IgdGhlIGNvbXBvbmVudCB3aGVuIGFkZGluZyBhIG5ldyByZWNvcmQgdG8gdGhlIFRyZWVHcmlkLlxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKi9cbiAgICBwdWJsaWMgZGVmYXVsdFZhbHVlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIElmIGBkaXNhYmxlSHRtbEVuY29kZWAgaXMgc2V0IHRvIHRydWUsIGl0IGVuY29kZXMgdGhlIEhUTUwgb2YgdGhlIGhlYWRlciBhbmQgY29udGVudCBjZWxscy5cbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgcHVibGljIGRpc2FibGVIdG1sRW5jb2RlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIElmIGBkaXNwbGF5QXNDaGVja0JveGAgaXMgc2V0IHRvIHRydWUsIGl0IGRpc3BsYXlzIHRoZSBjb2x1bW4gdmFsdWUgYXMgYSBjaGVjayBib3ggaW5zdGVhZCBvZiBCb29sZWFuIHZhbHVlLlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgcHVibGljIGRpc3BsYXlBc0NoZWNrQm94OiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgdGhlIGBJRWRpdENlbGxgIG9iamVjdCB0byBjdXN0b21pemUgZGVmYXVsdCBlZGl0IGNlbGwuXG4gICAgICogQGRlZmF1bHQge31cbiAgICAgKi9cbiAgICBwdWJsaWMgZWRpdDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHRoZSB0eXBlIG9mIGNvbXBvbmVudCBmb3IgZWRpdGluZy5cbiAgICAgKiBAZGVmYXVsdCAnc3RyaW5nZWRpdCdcbiAgICAgKi9cbiAgICBwdWJsaWMgZWRpdFR5cGU6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgZmllbGQgbmFtZSBvZiBjb2x1bW4gd2hpY2ggaXMgbWFwcGVkIHdpdGggbWFwcGluZyBuYW1lIG9mIERhdGFTb3VyY2UuIFxuICAgICAqIFRoZSBib3VuZGVkIGNvbHVtbnMgY2FuIGJlIHNvcnQsIGZpbHRlciBldGMuLCBcbiAgICAgKiBUaGUgYGZpZWxkYCBuYW1lIG11c3QgYmUgYSB2YWxpZCBKYXZhU2NyaXB0IGlkZW50aWZpZXIsIFxuICAgICAqIHRoZSBmaXJzdCBjaGFyYWN0ZXIgbXVzdCBiZSBhbiBhbHBoYWJldCBhbmQgc2hvdWxkIG5vdCBjb250YWluIHNwYWNlcyBhbmQgc3BlY2lhbCBjaGFyYWN0ZXJzLlxuICAgICAqIEBkZWZhdWx0ICd1bmRlZmluZWQnXG4gICAgICovXG4gICAgcHVibGljIGZpZWxkOiBhbnk7XG4gICAgLyoqIFxuICAgICAqICBEZWZpbmVzIHRoZSBmaWx0ZXIgb3B0aW9ucyB0byBjdXN0b21pemUgZmlsdGVyaW5nIGZvciB0aGUgcGFydGljdWxhciBjb2x1bW4uXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyBmaWx0ZXI6IGFueTtcbiAgICAvKiogXG4gICAgICogVGhlIGBmaWx0ZXJCYXJUZW1wbGF0ZWAgaXMgdXNlZCB0byBhZGQgYSBjdXN0b20gY29tcG9uZW50IGluc3RlYWQgb2YgZGVmYXVsdCBpbnB1dCBjb21wb25lbnQgZm9yIGZpbHRlciBiYXIuIFxuICAgICAqIEl0IGhhdmUgY3JlYXRlIGFuZCByZWFkIGZ1bmN0aW9ucy4gXG4gICAgICogKiBjcmVhdGU6IEl0IGlzIHVzZWQgZm9yIGNyZWF0aW5nIGN1c3RvbSBjb21wb25lbnRzLiBcbiAgICAgKiAqIHJlYWQ6IEl0IGlzIHVzZWQgdG8gcGVyZm9ybSBjdXN0b20gZmlsdGVyIGFjdGlvbi5cbiAgICAgKiBcbiAgICAgKiBgYGBodG1sXG4gICAgICo8ZGl2IGlkPVwiVHJlZUdyaWRcIj48L2Rpdj5cbiAgICAgKmBgYFxuICAgICAqYGBgdHlwZXNjcmlwdFxuICAgICAqbGV0IGdyaWRPYmo6IFRyZWVHcmlkID0gbmV3IFRyZWVHcmlkKHtcbiAgICAgKmRhdGFTb3VyY2U6IGZpbHRlckRhdGEsXG4gICAgICpjb2x1bW5zOiBbXG4gICAgICogIHsgZmllbGQ6ICdPcmRlcklEJywgaGVhZGVyVGV4dDogJ09yZGVyIElEJyB9LFxuICAgICAqICB7XG4gICAgICogICAgIGZpZWxkOiAnRW1wbG95ZWVJRCcsIGZpbHRlckJhclRlbXBsYXRlOiB7XG4gICAgICogICAgICAgIGNyZWF0ZTogKGFyZ3M6IHsgZWxlbWVudDogRWxlbWVudCwgY29sdW1uOiBDb2x1bW4gfSkgPT4ge1xuICAgICAqICAgICAgICAgICAgIGxldCBpbnB1dDogSFRNTElucHV0RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XG4gICAgICogICAgICAgICAgICAgaW5wdXQuaWQgPSAnRW1wbG95ZWVJRCc7XG4gICAgICogICAgICAgICAgICAgaW5wdXQudHlwZSA9ICd0ZXh0JztcbiAgICAgKiAgICAgICAgICAgICByZXR1cm4gaW5wdXQ7XG4gICAgICogICAgICAgIH0sXG4gICAgICogICAgICAgIHdyaXRlOiAoYXJnczogeyBlbGVtZW50OiBFbGVtZW50LCBjb2x1bW46IENvbHVtbiB9KSA9PiB7XG4gICAgICogICAgICAgICAgICBhcmdzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignaW5wdXQnLCBhcmdzLmNvbHVtbi5maWx0ZXJCYXJUZW1wbGF0ZS5yZWFkIGFzIEV2ZW50TGlzdGVuZXIpO1xuICAgICAqICAgICAgICB9LFxuICAgICAqICAgICAgICByZWFkOiAoYXJnczogeyBlbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50LCBjb2x1bW5JbmRleDogbnVtYmVyLCBjb2x1bW46IENvbHVtbiB9KSA9PiB7XG4gICAgICogICAgICAgICAgICBncmlkT2JqLmZpbHRlckJ5Q29sdW1uKGFyZ3MuZWxlbWVudC5pZCwgJ2VxdWFsJywgYXJncy5lbGVtZW50LnZhbHVlKTtcbiAgICAgKiAgICAgICB9XG4gICAgICogICAgfVxuICAgICAqIH1dLFxuICAgICAqICBhbGxvd0ZpbHRlcmluZzogdHJ1ZVxuICAgICAqfSk7XG4gICAgICpncmlkT2JqLmFwcGVuZFRvKCcjVHJlZUdyaWQnKTtcbiAgICAgKmBgYFxuICAgICAqICAgICBcbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICovXG4gICAgcHVibGljIGZpbHRlckJhclRlbXBsYXRlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIEl0IGlzIHVzZWQgdG8gY2hhbmdlIGRpc3BsYXkgdmFsdWUgd2l0aCB0aGUgZ2l2ZW4gZm9ybWF0IGFuZCBkb2VzIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIGRhdGEuIFxuICAgICAqIEdldHMgdGhlIGZvcm1hdCBmcm9tIHRoZSB1c2VyIHdoaWNoIGNhbiBiZSBzdGFuZGFyZCBvciBjdXN0b20gXG4gICAgICogW2BudW1iZXJgXShodHRwczovL2VqMi5zeW5jZnVzaW9uLmNvbS9kb2N1bWVudGF0aW9uL2NvbW1vbi9pbnRlcm5hdGlvbmFsaXphdGlvbi8jc3VwcG9ydGVkLWZvcm1hdC1zdHJpbmcpIFxuICAgICAqIGFuZCBbYGRhdGVgXShodHRwczovL2VqMi5zeW5jZnVzaW9uLmNvbS9kb2N1bWVudGF0aW9uL2NvbW1vbi9pbnRlcm5hdGlvbmFsaXphdGlvbi8jc3VwcG9ydGVkLWZvcm1hdC1zdHJpbmctMSkgZm9ybWF0cy5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICogQGFzcHR5cGUgc3RyaW5nXG4gICAgICovXG4gICAgcHVibGljIGZvcm1hdDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHRoZSBtZXRob2Qgd2hpY2ggaXMgdXNlZCB0byBhY2hpZXZlIGN1c3RvbSBmb3JtYXR0aW5nIGZyb20gYW4gZXh0ZXJuYWwgZnVuY3Rpb24uIFxuICAgICAqIFRoaXMgZnVuY3Rpb24gdHJpZ2dlcnMgYmVmb3JlIHJlbmRlcmluZyBvZiBlYWNoIGNlbGwuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyBmb3JtYXR0ZXI6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB3aGljaCBzaWRlIHRoZSBjb2x1bW4gbmVlZCB0byBmcmVlemVcbiAgICAgKiBAZGVmYXVsdCBTeW5jZnVzaW9uLkVKMi5Hcmlkcy5GcmVlemVEaXJlY3Rpb24uTm9uZVxuICAgICAqIEBpc2VudW1lcmF0aW9uIHRydWVcbiAgICAgKiBAYXNwdHlwZSBTeW5jZnVzaW9uLkVKMi5Hcmlkcy5GcmVlemVEaXJlY3Rpb25cbiAgICAgKi9cbiAgICBwdWJsaWMgZnJlZXplOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgdGhlIGhlYWRlciB0ZXh0IG9mIGNvbHVtbiB3aGljaCBpcyB1c2VkIHRvIGRpc3BsYXkgaW4gY29sdW1uIGhlYWRlci4gXG4gICAgICogSWYgYGhlYWRlclRleHRgIGlzIG5vdCBkZWZpbmVkLCB0aGVuIGZpZWxkIG5hbWUgdmFsdWUgd2lsbCBiZSBhc3NpZ25lZCB0byBoZWFkZXIgdGV4dC5cbiAgICAgKiBAZGVmYXVsdCAndW5kZWZpbmVkJ1xuICAgICAqL1xuICAgIHB1YmxpYyBoZWFkZXJUZXh0OiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZSB0aGUgYWxpZ25tZW50IG9mIGNvbHVtbiBoZWFkZXIgd2hpY2ggaXMgdXNlZCB0byBhbGlnbiB0aGUgdGV4dCBvZiBjb2x1bW4gaGVhZGVyLlxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKiBAYXNwZGVmYXVsdHZhbHVlaWdub3JlIFxuICAgICAqIEBpc2VudW1lcmF0aW9uIHRydWVcbiAgICAgKiBAYXNwdHlwZSBTeW5jZnVzaW9uLkVKMi5Hcmlkcy5UZXh0QWxpZ25cbiAgICAgKi9cbiAgICBwdWJsaWMgaGVhZGVyVGV4dEFsaWduOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIENvbHVtbiB2aXNpYmlsaXR5IGNhbiBjaGFuZ2UgYmFzZWQgb24gW2BNZWRpYSBRdWVyaWVzYF0oaHR0cDovL2Nzc21lZGlhcXVlcmllcy5jb20vd2hhdC1hcmUtY3NzLW1lZGlhLXF1ZXJpZXMuaHRtbCkuIFxuICAgICAqIGBoaWRlQXRNZWRpYWAgYWNjZXB0cyBvbmx5IHZhbGlkIE1lZGlhIFF1ZXJpZXMuXG4gICAgICogQGRlZmF1bHQgJ3VuZGVmaW5lZCdcbiAgICAgKi9cbiAgICBwdWJsaWMgaGlkZUF0TWVkaWE6IGFueTtcbiAgICAvKiogXG4gICAgICogWW91IGNhbiB1c2UgdGhpcyBwcm9wZXJ0eSB0byBmcmVlemUgc2VsZWN0ZWQgY29sdW1ucyBpbiBncmlkLlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgcHVibGljIGlzRnJvemVuOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIElmIGBpc0lkZW50aXR5YCBpcyBzZXQgdG8gdHJ1ZSwgdGhlbiB0aGlzIGNvbHVtbiBpcyBjb25zaWRlcmVkIGFzIGlkZW50aXR5IGNvbHVtbi5cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIHB1YmxpYyBpc0lkZW50aXR5OiBhbnk7XG4gICAgLyoqIFxuICAgICAqIElmIGBpc1ByaW1hcnlLZXlgIGlzIHNldCB0byB0cnVlLCBjb25zaWRlcnMgdGhpcyBjb2x1bW4gYXMgdGhlIHByaW1hcnkga2V5IGNvbnN0cmFpbnQuXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBwdWJsaWMgaXNQcmltYXJ5S2V5OiBhbnk7XG4gICAgLyoqIFxuICAgICAqIElmIGBsb2NrQ29sdW1uYCBzZXQgdG8gdHJ1ZSwgdGhlbiBpdCBkaXNhYmxlcyBSZW9yZGVyaW5nIG9mIGEgcGFydGljdWxhciBjb2x1bW4uIFxuICAgICAqIFRoZSBsb2NrZWQgY29sdW1uIHdpbGwgYmUgbW92ZWQgdG8gZmlyc3QgcG9zaXRpb24uXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBwdWJsaWMgbG9ja0NvbHVtbjogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHRoZSBtYXhpbXVtIHdpZHRoIG9mIHRoZSBjb2x1bW4gaW4gcGl4ZWxzIG9yIHBlcmNlbnRhZ2UsIHdoaWNoIHdpbGwgcmVzdHJpY3QgcmVzaXppbmcgYmV5b25kIHRoaXMgcGl4ZWxzIG9yIHBlcmNlbnRhZ2UuXG4gICAgICogQGRlZmF1bHQgJ3VuZGVmaW5lZCdcbiAgICAgKi9cbiAgICBwdWJsaWMgbWF4V2lkdGg6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgbWluaW11bSB3aWR0aCBvZiB0aGUgY29sdW1uIGluIHBpeGVscyBvciBwZXJjZW50YWdlLlxuICAgICAqIEBkZWZhdWx0ICd1bmRlZmluZWQnXG4gICAgICovXG4gICAgcHVibGljIG1pbldpZHRoOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIElmIGBzaG93Q2hlY2tib3hgIHNldCB0byB0cnVlLCB0aGVuIHRoZSBjaGVja2JveGVzIHdpbGwgYmUgZGlzcGxheWVkIGluIHBhcnRpY3VsYXIgY29sdW1uLlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgcHVibGljIHNob3dDaGVja2JveDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBJZiBgc2hvd0NvbHVtbk1lbnVgIHNldCB0byBmYWxzZSwgdGhlbiBpdCBkaXNhYmxlIHRoZSBjb2x1bW4gbWVudSBvZiBhIHBhcnRpY3VsYXIgY29sdW1uLiBcbiAgICAgKiBCeSBkZWZhdWx0IGNvbHVtbiBtZW51IHdpbGwgc2hvdyBmb3IgYWxsIGNvbHVtbnNcbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgcHVibGljIHNob3dDb2x1bW5NZW51OiBhbnk7XG4gICAgLyoqIFxuICAgICAqIElmIGBzaG93SW5Db2x1bW5DaG9vc2VyYCBzZXQgdG8gZmFsc2UsIHRoZW4gaGlkZSB0aGUgcGFydGljdWxhciBjb2x1bW4gaW4gY29sdW1uIGNob29zZXIuIFxuICAgICAqICBCeSBkZWZhdWx0IGFsbCBjb2x1bW5zIGFyZSBkaXNwbGF5ZWQgaW4gY29sdW1uIENob29zZXIuXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIHB1YmxpYyBzaG93SW5Db2x1bW5DaG9vc2VyOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgdGhlIHNvcnQgY29tcGFyZXIgcHJvcGVydHkuXG4gICAgICogQGRlZmF1bHQgJ3VuZGVmaW5lZCdcbiAgICAgKi9cbiAgICBwdWJsaWMgc29ydENvbXBhcmVyOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgdGhlIGFsaWdubWVudCBvZiB0aGUgY29sdW1uIGluIGJvdGggaGVhZGVyIGFuZCBjb250ZW50IGNlbGxzLlxuICAgICAqIEBkZWZhdWx0IFN5bmNmdXNpb24uRUoyLkdyaWRzLlRleHRBbGlnbi5MZWZ0XG4gICAgICogQGlzZW51bWVyYXRpb24gdHJ1ZVxuICAgICAqIEBhc3B0eXBlIFN5bmNmdXNpb24uRUoyLkdyaWRzLlRleHRBbGlnblxuICAgICAqL1xuICAgIHB1YmxpYyB0ZXh0QWxpZ246IGFueTtcbiAgICAvKiogXG4gICAgICogR2V0cyB0aGUgdW5pcXVlIGlkZW50aWZpZXIgdmFsdWUgb2YgdGhlIGNvbHVtbi4gSXQgaXMgdXNlZCB0byBnZXQgdGhlIG9iamVjdC5cbiAgICAgKiBAZGVmYXVsdCAndW5kZWZpbmVkJ1xuICAgICAqL1xuICAgIHB1YmxpYyB1aWQ6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyBydWxlcyB0byB2YWxpZGF0ZSBkYXRhIGJlZm9yZSBjcmVhdGluZyBhbmQgdXBkYXRpbmcuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyB2YWxpZGF0aW9uUnVsZXM6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgbWV0aG9kIHVzZWQgdG8gYXBwbHkgY3VzdG9tIGNlbGwgdmFsdWVzIGZyb20gZXh0ZXJuYWwgZnVuY3Rpb24gYW5kIGRpc3BsYXkgdGhpcyBvbiBlYWNoIGNlbGwgcmVuZGVyZWQuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyB2YWx1ZUFjY2Vzc29yOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIElmIGB2aXNpYmxlYCBpcyBzZXQgdG8gZmFsc2UsIGhpZGVzIHRoZSBwYXJ0aWN1bGFyIGNvbHVtbi4gQnkgZGVmYXVsdCwgY29sdW1ucyBhcmUgZGlzcGxheWVkLlxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICBwdWJsaWMgdmlzaWJsZTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHRoZSB3aWR0aCBvZiB0aGUgY29sdW1uIGluIHBpeGVscyBvciBwZXJjZW50YWdlLlxuICAgICAqIEBkZWZhdWx0ICd1bmRlZmluZWQnXG4gICAgICovXG4gICAgcHVibGljIHdpZHRoOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgdGhlIGNvbHVtbiB0ZW1wbGF0ZSB0aGF0IHJlbmRlcnMgY3VzdG9taXplZCBlbGVtZW50IGluIGVhY2ggY2VsbCBvZiB0aGUgY29sdW1uLiBcbiAgICAgKiBJdCBhY2NlcHRzIGVpdGhlciBbdGVtcGxhdGUgc3RyaW5nXShodHRwczovL2VqMi5zeW5jZnVzaW9uLmNvbS9kb2N1bWVudGF0aW9uL2NvbW1vbi90ZW1wbGF0ZS1lbmdpbmUvKSBvciBIVE1MIGVsZW1lbnQgSUQuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqIEBhc3B0eXBlIHN0cmluZ1xuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ3RlbXBsYXRlJylcbiAgICBAVGVtcGxhdGUoKVxuICAgIHB1YmxpYyB0ZW1wbGF0ZTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHRoZSBoZWFkZXIgdGVtcGxhdGUgYXMgc3RyaW5nIG9yIEhUTUwgZWxlbWVudCBJRCB3aGljaCBpcyB1c2VkIHRvIGFkZCBjdXN0b21pemVkIGVsZW1lbnQgaW4gdGhlIGNvbHVtbiBoZWFkZXIuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqIEBhc3B0eXBlIHN0cmluZ1xuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ2hlYWRlclRlbXBsYXRlJylcbiAgICBAVGVtcGxhdGUoKVxuICAgIHB1YmxpYyBoZWFkZXJUZW1wbGF0ZTogYW55O1xuICAgIEBDb250ZW50Q2hpbGQoJ2ZpbHRlckl0ZW1UZW1wbGF0ZScpXG4gICAgQFRlbXBsYXRlKClcbiAgICBwdWJsaWMgZmlsdGVyX2l0ZW1UZW1wbGF0ZTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHRoZSBmaWx0ZXIgdGVtcGxhdGUvVUkgdGhhdCBpcyB1c2VkIGFzIGZpbHRlciBmb3IgYSBwYXJ0aWN1bGFyIGNvbHVtbi4gXG4gICAgICogSXQgYWNjZXB0cyBlaXRoZXIgdGVtcGxhdGUgc3RyaW5nIG9yIEhUTUwgZWxlbWVudCBJRC5cbiAgICAgKiBAYXNwaWdub3JlIFxuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ2ZpbHRlclRlbXBsYXRlJylcbiAgICBAVGVtcGxhdGUoKVxuICAgIHB1YmxpYyBmaWx0ZXJUZW1wbGF0ZTogYW55O1xuICAgIEBDb250ZW50Q2hpbGQoJ2NvbW1hbmRzVGVtcGxhdGUnKVxuICAgIEBUZW1wbGF0ZSgpXG4gICAgcHVibGljIGNvbW1hbmRzVGVtcGxhdGU6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgY2VsbCBlZGl0IHRlbXBsYXRlIHRoYXQgdXNlZCBhcyBlZGl0b3IgZm9yIGEgcGFydGljdWxhciBjb2x1bW4uIFxuICAgICAqIEl0IGFjY2VwdHMgZWl0aGVyIHRlbXBsYXRlIHN0cmluZyBvciBIVE1MIGVsZW1lbnQgSUQuXG4gICAgICogQGFzcGlnbm9yZSBcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKCdlZGl0VGVtcGxhdGUnKVxuICAgIEBUZW1wbGF0ZSgpXG4gICAgcHVibGljIGVkaXRUZW1wbGF0ZTogYW55O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOlZpZXdDb250YWluZXJSZWYpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgc2V0VmFsdWUoJ2N1cnJlbnRJbnN0YW5jZScsIHRoaXMsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJFdmVudHMob3V0cHV0cyk7XG4gICAgICAgIHRoaXMuZGlyZWN0aXZlUHJvcExpc3QgPSBpbnB1dDtcbiAgICB9XG59XG5cbi8qKlxuICogU3RhY2tlZENvbHVtbiBBcnJheSBEaXJlY3RpdmVcbiAqIEBwcml2YXRlXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnZWpzLXRyZWVncmlkPmUtY29sdW1ucz5lLWNvbHVtbj5lLXN0YWNrZWQtY29sdW1ucycsXG4gICAgcXVlcmllczoge1xuICAgICAgICBjaGlsZHJlbjogbmV3IENvbnRlbnRDaGlsZHJlbihTdGFja2VkQ29sdW1uRGlyZWN0aXZlKVxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFN0YWNrZWRDb2x1bW5zRGlyZWN0aXZlIGV4dGVuZHMgQXJyYXlCYXNlPFN0YWNrZWRDb2x1bW5zRGlyZWN0aXZlPiB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCdjb2x1bW5zJyk7XG4gICAgfVxufSJdfQ==
|