@fundamental-ngx/i18n 0.43.21 → 0.43.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/esm2020/lib/languages/albanian.mjs +103 -154
  2. package/esm2020/lib/languages/arabic.mjs +581 -0
  3. package/esm2020/lib/languages/bulgarian.mjs +367 -500
  4. package/esm2020/lib/languages/chinese.mjs +292 -365
  5. package/esm2020/lib/languages/chinese_traditional.mjs +574 -0
  6. package/esm2020/lib/languages/croatian.mjs +585 -0
  7. package/esm2020/lib/languages/czech.mjs +274 -336
  8. package/esm2020/lib/languages/danish.mjs +578 -0
  9. package/esm2020/lib/languages/dutch.mjs +580 -0
  10. package/esm2020/lib/languages/english.mjs +83 -149
  11. package/esm2020/lib/languages/finnish.mjs +581 -0
  12. package/esm2020/lib/languages/french.mjs +287 -347
  13. package/esm2020/lib/languages/georgian.mjs +88 -152
  14. package/esm2020/lib/languages/german.mjs +128 -196
  15. package/esm2020/lib/languages/greek.mjs +583 -0
  16. package/esm2020/lib/languages/hebrew.mjs +574 -0
  17. package/esm2020/lib/languages/hindi.mjs +90 -159
  18. package/esm2020/lib/languages/hungarian.mjs +586 -0
  19. package/esm2020/lib/languages/index.mjs +22 -1
  20. package/esm2020/lib/languages/italian.mjs +251 -325
  21. package/esm2020/lib/languages/japanese.mjs +578 -0
  22. package/esm2020/lib/languages/kazakh.mjs +583 -0
  23. package/esm2020/lib/languages/korean.mjs +574 -0
  24. package/esm2020/lib/languages/malay.mjs +583 -0
  25. package/esm2020/lib/languages/norwegian.mjs +578 -0
  26. package/esm2020/lib/languages/polish.mjs +325 -386
  27. package/esm2020/lib/languages/portuguese.mjs +88 -155
  28. package/esm2020/lib/languages/romanian.mjs +583 -0
  29. package/esm2020/lib/languages/russian.mjs +510 -352
  30. package/esm2020/lib/languages/serbian.mjs +583 -0
  31. package/esm2020/lib/languages/slovak.mjs +583 -0
  32. package/esm2020/lib/languages/slovenian.mjs +583 -0
  33. package/esm2020/lib/languages/spanish.mjs +583 -0
  34. package/esm2020/lib/languages/swedish.mjs +581 -0
  35. package/esm2020/lib/languages/thai.mjs +580 -0
  36. package/esm2020/lib/languages/turkish.mjs +319 -385
  37. package/esm2020/lib/languages/ukrainian.mjs +527 -358
  38. package/fesm2015/fundamental-ngx-i18n.mjs +15993 -4386
  39. package/fesm2015/fundamental-ngx-i18n.mjs.map +1 -1
  40. package/fesm2020/fundamental-ngx-i18n.mjs +15993 -4386
  41. package/fesm2020/fundamental-ngx-i18n.mjs.map +1 -1
  42. package/fundamental-ngx-i18n-v0.43.22.tgz +0 -0
  43. package/lib/languages/albanian.d.ts +0 -3
  44. package/lib/languages/arabic.d.ts +2 -0
  45. package/lib/languages/bulgarian.d.ts +0 -3
  46. package/lib/languages/chinese.d.ts +0 -3
  47. package/lib/languages/chinese_traditional.d.ts +2 -0
  48. package/lib/languages/croatian.d.ts +2 -0
  49. package/lib/languages/czech.d.ts +0 -3
  50. package/lib/languages/danish.d.ts +2 -0
  51. package/lib/languages/dutch.d.ts +2 -0
  52. package/lib/languages/english.d.ts +0 -3
  53. package/lib/languages/finnish.d.ts +2 -0
  54. package/lib/languages/french.d.ts +0 -3
  55. package/lib/languages/georgian.d.ts +0 -3
  56. package/lib/languages/german.d.ts +1 -1
  57. package/lib/languages/greek.d.ts +2 -0
  58. package/lib/languages/hebrew.d.ts +2 -0
  59. package/lib/languages/hindi.d.ts +0 -3
  60. package/lib/languages/hungarian.d.ts +2 -0
  61. package/lib/languages/index.d.ts +21 -0
  62. package/lib/languages/italian.d.ts +0 -3
  63. package/lib/languages/japanese.d.ts +2 -0
  64. package/lib/languages/kazakh.d.ts +2 -0
  65. package/lib/languages/korean.d.ts +2 -0
  66. package/lib/languages/malay.d.ts +2 -0
  67. package/lib/languages/norwegian.d.ts +2 -0
  68. package/lib/languages/polish.d.ts +0 -3
  69. package/lib/languages/portuguese.d.ts +1 -1
  70. package/lib/languages/romanian.d.ts +2 -0
  71. package/lib/languages/russian.d.ts +0 -3
  72. package/lib/languages/serbian.d.ts +2 -0
  73. package/lib/languages/slovak.d.ts +2 -0
  74. package/lib/languages/slovenian.d.ts +2 -0
  75. package/lib/languages/spanish.d.ts +2 -0
  76. package/lib/languages/swedish.d.ts +2 -0
  77. package/lib/languages/thai.d.ts +2 -0
  78. package/lib/languages/turkish.d.ts +0 -3
  79. package/lib/languages/ukrainian.d.ts +0 -3
  80. package/package.json +1 -1
  81. package/fundamental-ngx-i18n-v0.43.21.tgz +0 -0
@@ -1,8 +1,5 @@
1
1
  import { PluralizationSet1 } from './pluralization/set1';
2
2
  const pluralization = new PluralizationSet1();
3
- /**
4
- * Default set of translations of Fundamental UI libarary for Ukrainian language
5
- */
6
3
  export const FD_LANGUAGE_UKRAINIAN = {
7
4
  coreCalendar: {
8
5
  yearSelectionLabel: 'Оберіть рік',
@@ -50,24 +47,22 @@ export const FD_LANGUAGE_UKRAINIAN = {
50
47
  datetimeOkLabel: 'OK',
51
48
  datetimeCancelLabel: 'Відмінити'
52
49
  },
53
- coreFeedListItem: {
54
- moreLabel: 'Більше',
55
- lessLabel: 'Менше'
56
- },
50
+ coreFeedListItem: { moreLabel: 'Більше', lessLabel: 'Менше' },
57
51
  coreGridList: {
58
52
  filterBarCancelButtonTitle: 'Скасувати',
59
- listItemStatusAriaLabel: 'Елемент має статус. Статус: {{ status }}.',
53
+ listItemStatusAriaLabel: 'Елемент має статус. Статус: {{status}}.',
60
54
  listItemCounterAriaLabel: (params) => {
61
- const count = params['count'];
62
- const option = pluralization.process(count);
63
- switch (option) {
64
- case 'one':
65
- return `Елемент має 1 дочірній елемент.`;
66
- case 'few':
67
- return `Елемент має ${count} дочірніх елемента.`;
68
- default:
69
- return `Елемент має ${count} дочірніх елементів.`;
70
- }
55
+ return `Елемент має ${(() => {
56
+ if (params['count'] === 1) {
57
+ return `один дочірній елемент`;
58
+ }
59
+ if (pluralization.process(params['count']) === 'few') {
60
+ return `${params['count']} дочірніх елемента`;
61
+ }
62
+ else {
63
+ return `${params['count']} дочірніх елементів`;
64
+ }
65
+ })()}.`;
71
66
  },
72
67
  listItemButtonDetailsTitle: 'Подробиці',
73
68
  listItemButtonDeleteTitle: 'Видалити',
@@ -75,131 +70,116 @@ export const FD_LANGUAGE_UKRAINIAN = {
75
70
  listItemStatusLocked: 'Заблоковано',
76
71
  listItemStatusDraft: 'Чернетка'
77
72
  },
78
- coreMessageStrip: {
79
- dismissLabel: 'Закрити'
80
- },
73
+ coreMessageStrip: { dismissLabel: 'Закрити' },
81
74
  coreMultiInput: {
82
75
  multiInputAriaLabel: 'Multi Value Input',
83
- noResults: 'No results.',
84
- navigateSelectionsWithArrows: 'Navigate selections with the up and down arrows.',
76
+ noResults: 'Немає результатів.',
77
+ navigateSelectionsWithArrows: 'Навігація здійснюється за допомогою клавіш зі стрілками "вгору" та "вниз"',
85
78
  countListResultsSingular: '1 елемент.',
86
79
  countListResultsPlural: (params) => {
87
- const count = params['count'];
88
- const option = pluralization.process(count);
89
- switch (option) {
90
- case 'one':
80
+ return `${(() => {
81
+ if (params['count'] === 1) {
91
82
  return `1 елемент.`;
92
- case 'few':
93
- return `${count} елементи.`;
94
- default:
95
- return `${count || 0} елементів.`;
96
- }
83
+ }
84
+ if (pluralization.process(params['count']) === 'few') {
85
+ return `${params['count']} елементи.`;
86
+ }
87
+ else {
88
+ return `${params['count']} елементів.`;
89
+ }
90
+ })()}`;
97
91
  },
98
- escapeNavigateTokens: 'Press escape to exit the input field and use the left and right arrow keys to navigate through the selected options.',
99
- tokensCountText: ({ length }) => {
100
- const option = pluralization.process(length);
101
- switch (option) {
102
- case 'zero':
103
- return 'Немає вибраних варіантів.';
104
- case 'one':
105
- return `Обрано 1 варіант.`;
106
- case 'few':
107
- return `Обрано ${length} варіанти.`;
108
- default:
109
- return `Обрано ${length} варіантів.`;
110
- }
92
+ escapeNavigateTokens: 'Натисніть клавішу "Escape\\ щоб вийти з поля введення, і використовуйте клавіші зі стрілками "вліво" та "вправо" для навігації між вибраними параметрами.',
93
+ tokensCountText: (params) => {
94
+ return `${(() => {
95
+ if (params['length'] == 0) {
96
+ return `Немає вибраних`;
97
+ }
98
+ else {
99
+ return `Обрано ${params['length']}`;
100
+ }
101
+ })()} ${(() => {
102
+ if (params['length'] === 1) {
103
+ return `варіант`;
104
+ }
105
+ if (pluralization.process(params['length']) === 'few') {
106
+ return `варіанти`;
107
+ }
108
+ else {
109
+ return `варіантів`;
110
+ }
111
+ })()}.`;
111
112
  }
112
113
  },
113
- coreNavigation: {
114
- mainNavigation: 'Main Navigation',
115
- navigationPath: 'Navigation Path'
116
- },
114
+ coreNavigation: { mainNavigation: 'Main Navigation', navigationPath: 'Navigation Path' },
117
115
  coreNestedList: {
118
- linkItemAriaLabel: 'Елемент дерева {{ itemDetails }}, {{ index }} із {{ total }}{{ selectedDescription }}'
116
+ linkItemAriaLabel: 'Елемент дерева {{itemDetails}}, {{index}} із {{total}}{{selectedDescription}}'
119
117
  },
120
118
  coreOverflowLayout: {
121
119
  moreItemsButton: (params) => {
122
- const count = params['count'];
123
- const option = pluralization.process(count);
124
- switch (option) {
125
- case 'one':
126
- return `Ще 1 елемент`;
127
- case 'few':
128
- return `Ще ${count} елемента`;
129
- default:
130
- return `Ще ${count} елементів`;
131
- }
120
+ return `Ще ${(() => {
121
+ if (params['count'] === 1) {
122
+ return `елемент`;
123
+ }
124
+ if (pluralization.process(params['count']) === 'few') {
125
+ return `елемента`;
126
+ }
127
+ else {
128
+ return `елементів`;
129
+ }
130
+ })()}`;
132
131
  }
133
132
  },
134
133
  corePagination: {
135
- pageLabel: 'Сторінка {{ pageNumber }}',
136
- currentPageAriaLabel: 'Сторінка {{ pageNumber }} є активною',
134
+ pageLabel: 'Сторінка {{pageNumber}}',
135
+ currentPageAriaLabel: 'Сторінка {{pageNumber}} є активною',
137
136
  labelBeforeInputMobile: 'Сторінка:',
138
- labelAfterInputMobile: 'із {{ totalCount }}',
139
- inputAriaLabel: 'Поле вводу сторінки, Поточна сторінка, Сторінка {{ pageNumber }} із {{ totalCount }}',
137
+ labelAfterInputMobile: 'із {{totalCount}}',
138
+ inputAriaLabel: 'Поле вводу сторінки, Поточна сторінка, Сторінка {{pageNumber}} із {{totalCount}}',
140
139
  itemsPerPageLabel: 'Результатів на сторінці:',
141
140
  firstLabel: 'Перейти до першої',
142
141
  previousLabel: 'Перейти до попердньої',
143
142
  nextLabel: 'Перейти до наступної',
144
143
  lastLabel: 'Перейти до останньої',
145
144
  ariaLabel: 'Нумерація сторінок',
146
- totalResultsLabel: '{{ totalCount }} результатів'
147
- },
148
- coreProductSwitch: {
149
- ariaLabel: 'Перемикач'
150
- },
151
- coreShellbar: {
152
- collapsedItemMenuLabel: 'Згорнуте меню елементів',
153
- cancel: 'Відміна',
154
- search: 'Пошук'
145
+ totalResultsLabel: '{{totalCount}} результатів'
155
146
  },
147
+ coreProductSwitch: { ariaLabel: 'Перемикач' },
148
+ coreShellbar: { collapsedItemMenuLabel: 'Згорнуте меню елементів', cancel: 'Відміна', search: 'Пошук' },
156
149
  coreSlider: {
157
- singleMinMaxDetails: 'Мінімальне значення слайдера {{min}}, максимальне значення {{ max }}',
158
- singleValueminDetails: 'Поточне значення: {{ value }}',
159
- singleValuemaxDetails: 'Поточне значення: {{ value }}',
160
- singleValueNowDetails: 'Поточне значення: {{ value }}',
161
- multipleHandle1MinMaxDetails: 'Мінімальне значення слайдера {{ min }}, максимальне значення {{ max }}',
162
- multipleHandle1ValueminDetails: 'Поточне значення: {{ value }}',
163
- multipleHandle1ValuemaxDetails: 'Поточне значення: {{ value }}',
164
- multipleHandle1ValueNowDetails: 'Поточне значення: {{ value }}',
165
- multipleHandle2MinMaxDetails: 'Мінімальне значення слайдера {{ min }}, максимальне значення {{ max }}',
166
- multipleHandle2ValueminDetails: 'Поточне значення: {{ value }}',
167
- multipleHandle2ValuemaxDetails: 'Поточне значення: {{ value }}',
168
- multipleHandle2ValueNowDetails: 'Поточне значення: {{ value }}'
169
- },
170
- coreSplitButton: {
171
- expandButtonAriaLabel: 'Більше дій',
172
- arialLabel: 'Кнопка розділення'
173
- },
174
- coreSplitter: {
175
- paginationItemAriaLabel: 'Секція'
150
+ singleMinMaxDetails: 'Мінімальне значення слайдера {{min}}, максимальне значення {{max}}',
151
+ singleValueminDetails: 'Поточне значення: {{value}}',
152
+ singleValuemaxDetails: 'Поточне значення: {{value}}',
153
+ singleValueNowDetails: 'Поточне значення: {{value}}',
154
+ multipleHandle1MinMaxDetails: 'Мінімальне значення слайдера {{min}}, максимальне значення {{max}}',
155
+ multipleHandle1ValueminDetails: 'Поточне значення: {{value}}',
156
+ multipleHandle1ValuemaxDetails: 'Поточне значення: {{value}}',
157
+ multipleHandle1ValueNowDetails: 'Поточне значення: {{value}}',
158
+ multipleHandle2MinMaxDetails: 'Мінімальне значення слайдера {{min}}, максимальне значення {{max}}',
159
+ multipleHandle2ValueminDetails: 'Поточне значення: {{value}}',
160
+ multipleHandle2ValuemaxDetails: 'Поточне значення: {{value}}',
161
+ multipleHandle2ValueNowDetails: 'Поточне значення: {{value}}'
176
162
  },
163
+ coreSplitButton: { expandButtonAriaLabel: 'Більше дій', arialLabel: 'Кнопка розділення' },
164
+ coreSplitter: { paginationItemAriaLabel: 'Секція' },
177
165
  coreStepInput: {
178
166
  incrementButtonTitle: 'Збільшити',
179
167
  decrementButtonTitle: 'Зменшити',
180
168
  ariaRoleDescription: 'Крок вводу'
181
169
  },
182
- coreSwitch: {
183
- semanticAcceptLabel: 'Прийняти',
184
- semanticDeclineLabel: 'Відхилити'
185
- },
186
- coreTabs: {
187
- tabListExpandButtonText: 'Більше'
188
- },
189
- coreText: {
190
- moreLabel: 'Більше',
191
- lessLabel: 'Менше'
192
- },
170
+ coreSwitch: { semanticAcceptLabel: 'Прийняти', semanticDeclineLabel: 'Відхилити' },
171
+ coreTabs: { tabListExpandButtonText: 'Більше' },
172
+ coreText: { moreLabel: 'Більше', lessLabel: 'Менше' },
193
173
  coreTime: {
194
174
  componentAriaName: 'Вибір часу',
195
175
  increaseHoursLabel: 'Збільшити години',
196
176
  hrsLabel: 'Год',
197
- decreaseHoursLabel: 'Зменшити години',
198
- increaseMinutesLabel: 'Збільшити хвилини',
199
- minLabel: 'Хв',
200
- decreaseMinutesLabel: 'Зменшити хвилини',
201
- increaseSecondsLabel: 'Збільшити секунди',
202
- secLabel: 'Сек',
177
+ decreaseHoursLabel: 'Decrease hours',
178
+ increaseMinutesLabel: 'Increase minutes',
179
+ minLabel: 'Min',
180
+ decreaseMinutesLabel: 'Decrease minutes',
181
+ increaseSecondsLabel: 'Increase seconds',
182
+ secLabel: 'Sec',
203
183
  hoursLabel: 'Hours',
204
184
  minutesLabel: 'Minutes',
205
185
  secondsLabel: 'Seconds',
@@ -207,29 +187,23 @@ export const FD_LANGUAGE_UKRAINIAN = {
207
187
  increasePeriodLabel: 'Збільшити період',
208
188
  periodLabel: 'Період',
209
189
  decreasePeriodLabel: 'Зменшити період',
210
- navigationInstruction: 'Щоб переміщатися між елементами в цьому списку, використовуйте стрілку вверх або вниз. ' +
211
- 'Для переключення між списками використовуйте стрілку вліво або вправо.'
212
- },
213
- coreTimePicker: {
214
- timePickerInputLabel: 'Поле вводу часу',
215
- timePickerButtonLabel: 'Відкрити вікно вибору'
216
- },
217
- coreToken: {
218
- deleteButtonLabel: 'Може бути видаленим',
219
- ariaRoleDescription: 'токен'
190
+ navigationInstruction: 'Щоб переміщатися між елементами в цьому списку, використовуйте стрілку вверх або вниз. Для переключення між списками використовуйте стрілку вліво або вправо.'
220
191
  },
192
+ coreTimePicker: { timePickerInputLabel: 'Поле вводу часу', timePickerButtonLabel: 'Відкрити вікно вибору' },
193
+ coreToken: { deleteButtonLabel: 'Може бути видаленим', ariaRoleDescription: 'токен' },
221
194
  coreTokenizer: {
222
195
  moreLabel: (params) => {
223
- const count = params['count'];
224
- const option = pluralization.process(count);
225
- switch (option) {
226
- case 'one':
227
- return `Ще 1 елемент`;
228
- case 'few':
229
- return `Ще ${count} елемента`;
230
- default:
231
- return `Ще ${count} елементів`;
232
- }
196
+ return `Ще ${(() => {
197
+ if (params['count'] === 1) {
198
+ return `${params['count']} елемент`;
199
+ }
200
+ if (pluralization.process(params['count']) === 'few') {
201
+ return `${params['count']} елемента`;
202
+ }
203
+ else {
204
+ return `${params['count']} елементів`;
205
+ }
206
+ })()}`;
233
207
  },
234
208
  tokenizerLabel: 'Tokenizer'
235
209
  },
@@ -242,15 +216,9 @@ export const FD_LANGUAGE_UKRAINIAN = {
242
216
  menuCancelAriaLabel: 'Відминити',
243
217
  formItemPlaceholder: "Ім'я файлу"
244
218
  },
245
- coreWizard: {
246
- ariaLabel: 'Майстер'
247
- },
248
- coreBreadcrumb: {
249
- overflowTitleMore: 'Більше'
250
- },
251
- platformActionBar: {
252
- backButtonLabel: 'Повернутися назад'
253
- },
219
+ coreWizard: { ariaLabel: 'Майстер' },
220
+ coreBreadcrumb: { overflowTitleMore: 'Більше' },
221
+ platformActionBar: { backButtonLabel: 'Повернутися назад' },
254
222
  platformApprovalFlow: {
255
223
  addNodeButtonTitle: 'Додати',
256
224
  nodeMenuButtonTitle: 'Меню',
@@ -294,42 +262,45 @@ export const FD_LANGUAGE_UKRAINIAN = {
294
262
  messagesErrorBuildGraph: 'Під час спроби побудувати графік сталася помилка. Перевірте вхідні дані.',
295
263
  messagesUndoAction: 'Скасувати',
296
264
  nodeMembersCount: (params) => {
297
- const count = params['count'];
298
- const option = pluralization.process(count);
299
- switch (option) {
300
- case 'one':
301
- return `1 член команди`;
302
- case 'few':
303
- return `${count} члена команди`;
304
- default:
305
- return `${count || 0} членів команди`;
306
- }
265
+ return `${(() => {
266
+ if (params['count'] === 1) {
267
+ return `1 член`;
268
+ }
269
+ if (pluralization.process(params['count']) === 'few') {
270
+ return `${params['count']} члена`;
271
+ }
272
+ else {
273
+ return `${params['count']} членів`;
274
+ }
275
+ })()} команди`;
307
276
  },
308
277
  nodeVariousTeams: 'Різні команди',
309
278
  nodeStatusDueToday: 'Термін виконання сьогодні',
310
279
  nodeStatusDueInXDays: (params) => {
311
- const count = params['count'];
312
- const option = pluralization.process(count);
313
- switch (option) {
314
- case 'one':
315
- return `Термін виконання через 1 день`;
316
- case 'few':
317
- return `Термін виконання через ${count} дні`;
318
- default:
319
- return `Термін виконання через ${count || 0} днів`;
320
- }
280
+ return `Термін виконання через ${(() => {
281
+ if (params['count'] === 1) {
282
+ return `1 день`;
283
+ }
284
+ if (pluralization.process(params['count']) === 'few') {
285
+ return `${params['count']} дні`;
286
+ }
287
+ else {
288
+ return `${params['count']} днів`;
289
+ }
290
+ })()}`;
321
291
  },
322
292
  nodeStatusXDaysOverdue: (params) => {
323
- const count = params['count'];
324
- const option = pluralization.process(count);
325
- switch (option) {
326
- case 'one':
327
- return `Прострочено на 1 день`;
328
- case 'few':
329
- return `Прострочено на ${count} дні`;
330
- default:
331
- return `Прострочено на ${count || 0} днів`;
332
- }
293
+ return `Прострочено на ${(() => {
294
+ if (params['count'] === 1) {
295
+ return `1 день`;
296
+ }
297
+ if (pluralization.process(params['count']) === 'few') {
298
+ return `${params['count']} дні`;
299
+ }
300
+ else {
301
+ return `${params['count']} днів`;
302
+ }
303
+ })()}`;
333
304
  },
334
305
  nodeActionAddApproversBefore: 'Додати стверджувача до',
335
306
  nodeActionAddApproversAfter: 'Додати стверджувача після',
@@ -352,25 +323,24 @@ export const FD_LANGUAGE_UKRAINIAN = {
352
323
  watchersInputPlaceholder: 'Пошук',
353
324
  userListSelectedItemsCountSingular: 'Вибрано 1 елемент',
354
325
  userListSelectedItemsCountPlural: (params) => {
355
- const count = params['count'];
356
- const option = pluralization.process(count);
357
- switch (option) {
358
- case 'one':
359
- return `Вибрано 1 елемент`;
360
- case 'few':
361
- return `Вибрано ${count} елементи`;
362
- default:
363
- return `Вибрано ${count || 0} елементів`;
364
- }
326
+ return `Вибрано ${(() => {
327
+ if (params['count'] === 1) {
328
+ return `1 елемент`;
329
+ }
330
+ if (pluralization.process(params['count']) === 'few') {
331
+ return `${params['count']} елемента`;
332
+ }
333
+ else {
334
+ return `${params['count']} елементів`;
335
+ }
336
+ })()}`;
365
337
  },
366
338
  statusApproved: 'затверджено',
367
339
  statusRejected: 'відхилено',
368
340
  statusInProgress: 'в процесі',
369
341
  statusNotStarted: 'не розпочато'
370
342
  },
371
- platformFeedInput: {
372
- userTitle: 'Користувач'
373
- },
343
+ platformFeedInput: { userTitle: 'Користувач' },
374
344
  platformVHD: {
375
345
  selectionBarLabel: 'Вибрані елементи та умови',
376
346
  selectedAndConditionLabel: 'Вибрані елементи та умови',
@@ -386,45 +356,37 @@ export const FD_LANGUAGE_UKRAINIAN = {
386
356
  searchHideAdvancedSearchLabel: 'Сховати фільтри',
387
357
  searchShowAllAdvancedSearchLabel: 'Показати всі фільтри',
388
358
  searchHideAllAdvancedSearchLabel: 'Сховати всі фільтри',
389
- selectTabDisplayCountLabel: 'Елементи ({{ count }})',
359
+ selectTabDisplayCountLabel: 'Елементи ({{count}})',
390
360
  selectTabMoreBtnLabel: 'Більше',
391
361
  selectTabCountHiddenA11yLabel: (params) => {
392
- const rowCount = params['rowCount'];
393
- const rowOption = pluralization.process(rowCount);
394
- let rowPart;
395
- switch (rowOption) {
396
- case 'one':
397
- rowPart = 'містить 1 ряд';
398
- break;
399
- case 'few':
400
- rowPart = `містить ${rowCount} ряди`;
401
- break;
402
- default:
403
- rowPart = `містить ${rowCount} рядів`;
404
- break;
405
- }
406
- const colCount = params['colCount'];
407
- const colOption = pluralization.process(colCount);
408
- let colPart;
409
- switch (colOption) {
410
- case 'one':
411
- colPart = '1 колонку';
412
- break;
413
- case 'few':
414
- colPart = `${colCount} колонки`;
415
- break;
416
- default:
417
- colPart = `${colCount} колонок`;
418
- break;
419
- }
420
- return `${rowPart} і ${colPart}`;
362
+ return `містить ${(() => {
363
+ if (params['rowCount'] === 1) {
364
+ return `1 ряд`;
365
+ }
366
+ if (pluralization.process(params['rowCount']) === 'few') {
367
+ return `${params['rowCount']} ряди`;
368
+ }
369
+ else {
370
+ return `${params['rowCount']} рядів`;
371
+ }
372
+ })()} і ${(() => {
373
+ if (params['colCount'] === 1) {
374
+ return `1 колонку`;
375
+ }
376
+ if (pluralization.process(params['colCount']) === 'few') {
377
+ return `${params['colCount']} колонки`;
378
+ }
379
+ else {
380
+ return `${params['colCount']} колонок`;
381
+ }
382
+ })()}`;
421
383
  },
422
384
  selectMobileTabBackBtnTitle: 'Назад',
423
385
  selectMobileTabBtnOpenDialogLabel: 'Відкрити діалогове вікно',
424
- selectMobileTabTitle: '{{ title }} вкладка',
386
+ selectMobileTabTitle: '{{title}} вкладка',
425
387
  selectMobileConditionEmpty: 'Пусто',
426
388
  defineConditionTitle: 'Продукт',
427
- defineConditionSelectedValueHiddenA11yLabel: 'вибране значення {{ value }}',
389
+ defineConditionSelectedValueHiddenA11yLabel: 'вибране значення {{value}}',
428
390
  defineConditionConditionsGroupHeaderInclude: 'Включні умови',
429
391
  defineConditionConditionsGroupHeaderExclude: 'Виключні умови',
430
392
  defineConditionFromPlaceholder: 'від',
@@ -446,14 +408,17 @@ export const FD_LANGUAGE_UKRAINIAN = {
446
408
  defineConditionConditionStrategyLabelNotEqualTo: 'не дорівнює',
447
409
  defineConditionConditionStrategyLabelNotEmpty: 'не порожнє',
448
410
  defineConditionMaxCountError: (params) => {
449
- const count = params['count'];
450
- const option = pluralization.process(count);
451
- switch (option) {
452
- case 'one':
453
- return `Введіть значення не більше ніж 1 символу`;
454
- default:
455
- return `Введіть значення не більше ніж ${count || 0} символів`;
456
- }
411
+ return `Введіть значення не більше ніж ${(() => {
412
+ if (params['count'] === 1) {
413
+ return `1 символ`;
414
+ }
415
+ if (pluralization.process(params['count']) === 'few') {
416
+ return `${params['count']} символи`;
417
+ }
418
+ else {
419
+ return `${params['count']} символів`;
420
+ }
421
+ })()}`;
457
422
  },
458
423
  selectTabTitle: 'Вибрати зі списку',
459
424
  searchTableEmptyMessage: 'Використовуйте пошук, щоб отримати результати',
@@ -462,16 +427,17 @@ export const FD_LANGUAGE_UKRAINIAN = {
462
427
  platformCombobox: {
463
428
  countListResultsSingular: '1 елемент',
464
429
  countListResultsPlural: (params) => {
465
- const count = params['count'];
466
- const option = pluralization.process(count);
467
- switch (option) {
468
- case 'one':
430
+ return `${(() => {
431
+ if (params['count'] === 1) {
469
432
  return `1 елемент`;
470
- case 'few':
471
- return `${count} елементи`;
472
- default:
473
- return `${count || 0} елементів`;
474
- }
433
+ }
434
+ if (pluralization.process(params['count']) === 'few') {
435
+ return `${params['count']} елементи`;
436
+ }
437
+ else {
438
+ return `${params['count']} елементів`;
439
+ }
440
+ })()}`;
475
441
  }
476
442
  },
477
443
  platformMultiCombobox: {
@@ -483,68 +449,61 @@ export const FD_LANGUAGE_UKRAINIAN = {
483
449
  platformTextarea: {
484
450
  counterMessageCharactersOverTheLimitSingular: 'Перевищено ліміт на 1 символ',
485
451
  counterMessageCharactersOverTheLimitPlural: (params) => {
486
- const count = params['count'];
487
- const option = pluralization.process(count);
488
- switch (option) {
489
- case 'one':
490
- return `Перевищено ліміт на 1 символ`;
491
- case 'few':
492
- return `Перевищено ліміт на ${count} символи`;
493
- default:
494
- return `Перевищено ліміт на ${count || 0} символів`;
495
- }
452
+ return `Перевищено ліміт на ${(() => {
453
+ if (params['count'] === 1) {
454
+ return `1 символ`;
455
+ }
456
+ if (pluralization.process(params['count']) === 'few') {
457
+ return `${params['count']} символи`;
458
+ }
459
+ else {
460
+ return `${params['count']} символів`;
461
+ }
462
+ })()}`;
496
463
  },
497
464
  counterMessageCharactersRemainingSingular: 'Залишився 1 символ',
498
465
  counterMessageCharactersRemainingPlural: (params) => {
499
- const count = params['count'];
500
- const option = pluralization.process(count);
501
- switch (option) {
502
- case 'one':
503
- return `Залишилось 1 символ`;
504
- case 'few':
505
- return `Залишилось ${count} символи`;
506
- default:
507
- return `Залишилось ${count || 0} символів`;
508
- }
466
+ return `Залишилось ${(() => {
467
+ if (params['count'] === 1) {
468
+ return `1 символ`;
469
+ }
470
+ if (pluralization.process(params['count']) === 'few') {
471
+ return `${params['count']} символи`;
472
+ }
473
+ else {
474
+ return `${params['count']} символів`;
475
+ }
476
+ })()}`;
509
477
  }
510
478
  },
511
- platformLink: {
512
- roleDescriptionWithMedia: 'Медіа: {{ media }}'
513
- },
514
- platformList: {
515
- loadingAriaLabel: 'завантаження'
516
- },
517
- platformObjectListItem: {
518
- detailsActionAriaLabel: 'деталі',
519
- deleteActionAriaLabel: 'видалити'
520
- },
521
- platformStandardListItem: {
522
- detailsActionAriaLabel: 'деталі',
523
- deleteActionAriaLabel: 'видалити'
524
- },
479
+ platformLink: { roleDescriptionWithMedia: 'Медіа: {{media}}' },
480
+ platformList: { loadingAriaLabel: 'завантаження' },
481
+ platformObjectListItem: { detailsActionAriaLabel: 'деталі', deleteActionAriaLabel: 'видалити' },
482
+ platformStandardListItem: { detailsActionAriaLabel: 'деталі', deleteActionAriaLabel: 'видалити' },
525
483
  platformSearchField: {
526
484
  clearButtonTitle: 'Очистити',
527
485
  submitButtonTitle: 'Пошук',
528
486
  searchInputLabel: 'Пошук',
529
487
  synchronizeButtonTitle: 'Синхронізувати',
530
488
  searchSuggestionMessage: (params) => {
531
- const count = params['count'];
532
- const option = pluralization.process(count);
533
- switch (option) {
534
- case 'one':
535
- return `Знайдено 1 варіант`;
536
- case 'few':
537
- return `Знайдено ${count} варіанти`;
538
- default:
539
- return `Знайдено ${count || 0} варіантів`;
540
- }
489
+ return `Знайдено ${(() => {
490
+ if (params['count'] === 1) {
491
+ return `1 варіант`;
492
+ }
493
+ if (pluralization.process(params['count']) === 'few') {
494
+ return `${params['count']} варіанти`;
495
+ }
496
+ else {
497
+ return `${params['count']} варіантів`;
498
+ }
499
+ })()}`;
541
500
  },
542
501
  searchSuggestionNavigateMessage: 'використовуйте стрілки вгору та вниз для навігації'
543
502
  },
544
503
  platformSmartFilterBar: {
545
504
  searchPlaceholder: 'Пошук',
546
505
  submitButtonLabel: 'Перейти',
547
- filtersButtonLabel: 'Фільтри ({{ filtersCount }})',
506
+ filtersButtonLabel: 'Фільтри ({{filtersCount}})',
548
507
  showFiltersButtonLabel: 'Показати фільтри',
549
508
  hideFiltersButtonLabel: 'Сховати фільтри',
550
509
  defineConditionsRemoveConditionButtonTitle: 'Видалити умову',
@@ -600,7 +559,7 @@ export const FD_LANGUAGE_UKRAINIAN = {
600
559
  P13ColumnsDialogSearchPlaceholder: 'Пошук',
601
560
  P13ColumnsDialogsShowSelected: 'Показати вибране',
602
561
  P13ColumnsDialogShowAll: 'Показати все',
603
- P13ColumnsDialogSelectAll: 'Вибрати всі ({{ selectedColumnsCount }}/{{ selectableColumnsCount }})',
562
+ P13ColumnsDialogSelectAll: 'Вибрати всі ({{selectedColumnsCount}}/{{selectableColumnsCount}})',
604
563
  P13ColumnsDialogConfirmationBtnLabel: 'OK',
605
564
  P13ColumnsDialogCancelBtnLabel: 'Скасувати',
606
565
  P13ColumnsDialogMoveToTopBtn: 'Перемістити вгору',
@@ -621,13 +580,13 @@ export const FD_LANGUAGE_UKRAINIAN = {
621
580
  P13FilterStrategyLabelBefore: 'до',
622
581
  P13FilterStrategyLabelBeforeOrOn: 'до або дорівнює',
623
582
  P13FilterStrategyLabelNotDefined: 'Не визначено',
624
- P13FilterBooleanOptionNotDefined: ' ',
583
+ P13FilterBooleanOptionNotDefined: '',
625
584
  P13FilterBooleanOptionTrue: 'Так',
626
585
  P13FilterBooleanOptionFalse: 'Ні',
627
586
  P13FilterDialogHeader: 'Фільтрувати за',
628
- P13FilterDialogIncludePanelTitleWithCount: 'Включні умови ({{ count }})',
587
+ P13FilterDialogIncludePanelTitleWithCount: 'Включні умови ({{count}})',
629
588
  P13FilterDialogIncludePanelTitleWithoutCount: 'Включні умови',
630
- P13FilterDialogExcludePanelTitleWithCount: 'Виключні умови ({{ count }})',
589
+ P13FilterDialogExcludePanelTitleWithCount: 'Виключні умови ({{count}})',
631
590
  P13FilterDialogExcludePanelTitleWithoutCount: 'Виключні умови',
632
591
  P13FilterDialogRemoveFilterBtnTitle: 'Видалити фільтр',
633
592
  P13FilterDialoAddFilterBtnTitle: 'Додати фільтр',
@@ -660,7 +619,7 @@ export const FD_LANGUAGE_UKRAINIAN = {
660
619
  toolbarActionExpandAllButtonTitle: 'Expand all',
661
620
  toolbarActionCollapseAllButtonTitle: 'Collapse all',
662
621
  filterDialogNotFilteredLabel: '(Не відфільтровано)',
663
- filterDialogFilterByLabel: 'Фільтрувати за: {{ filterLabel }}',
622
+ filterDialogFilterByLabel: 'Фільтрувати за: {{filterLabel}}',
664
623
  filterDialogFilterTitle: 'Фільтр',
665
624
  filterDialogFilterBy: 'Фільтрувати за',
666
625
  filterDialogConfirmBtnLabel: 'OK',
@@ -747,28 +706,292 @@ export const FD_LANGUAGE_UKRAINIAN = {
747
706
  messageUpdateVersionSuccess: 'Версія {{ folderName }} оновлена.',
748
707
  messageFileRenameFailed: 'Не вдалося перейменувати "{{ from }}" на "{{ to }}."',
749
708
  messageFileRenameSuccess: '{{ from }}" перейменовано на "{{ to }}".',
750
- messageRemoveFoldersAndFilesFailed: (params) => `Не вдалося видалити ${folderNamePluralization(params)} і ${fileNamePluralization(params)}.`,
751
- messageRemoveFoldersAndFilesSuccess: (params) => `${folderNamePluralization(params)} і ${fileNamePluralization(params)} видалено.`,
752
- messageRemoveFoldersFailed: (params) => `Не вдалося видалити ${folderNamePluralization(params)}.`,
753
- messageRemoveFoldersSuccess: (params) => `Видалено ${folderNamePluralization(params)}.`,
754
- messageRemoveFilesFailed: (params) => `Не вдалося видалити ${fileNamePluralization(params)}.`,
755
- messageRemoveFilesSuccess: (params) => `Видалено ${fileNamePluralization(params)}.`,
709
+ messageRemoveFoldersAndFilesFailed: (params) => `Не вдалося видалити ${(() => {
710
+ const foldersCount = params['foldersCount'];
711
+ const foldersCountOption = pluralization.process(foldersCount);
712
+ switch (foldersCountOption) {
713
+ case 'one':
714
+ return '1 папку';
715
+ case 'few':
716
+ return `${foldersCount} папки`;
717
+ default:
718
+ return `${foldersCount || 0} папок`;
719
+ }
720
+ })()} і ${(() => {
721
+ const filesCount = params['filesCount'];
722
+ const filesCountOption = pluralization.process(filesCount);
723
+ switch (filesCountOption) {
724
+ case 'one':
725
+ return '1 файл';
726
+ case 'few':
727
+ return `${filesCount} файли`;
728
+ default:
729
+ return `${filesCount || 0} файлів`;
730
+ }
731
+ })()}.`,
732
+ messageRemoveFoldersAndFilesSuccess: (params) => `${(() => {
733
+ const foldersCount = params['foldersCount'];
734
+ const foldersCountOption = pluralization.process(foldersCount);
735
+ switch (foldersCountOption) {
736
+ case 'one':
737
+ return '1 папку';
738
+ case 'few':
739
+ return `${foldersCount} папки`;
740
+ default:
741
+ return `${foldersCount || 0} папок`;
742
+ }
743
+ })()} і ${(() => {
744
+ const filesCount = params['filesCount'];
745
+ const filesCountOption = pluralization.process(filesCount);
746
+ switch (filesCountOption) {
747
+ case 'one':
748
+ return '1 файл';
749
+ case 'few':
750
+ return `${filesCount} файли`;
751
+ default:
752
+ return `${filesCount || 0} файлів`;
753
+ }
754
+ })()} видалено.`,
755
+ messageRemoveFoldersFailed: (params) => `Не вдалося видалити ${(() => {
756
+ const foldersCount = params['foldersCount'];
757
+ const foldersCountOption = pluralization.process(foldersCount);
758
+ switch (foldersCountOption) {
759
+ case 'one':
760
+ return '1 папку';
761
+ case 'few':
762
+ return `${foldersCount} папки`;
763
+ default:
764
+ return `${foldersCount || 0} папок`;
765
+ }
766
+ })()}.`,
767
+ messageRemoveFoldersSuccess: (params) => `Видалено ${(() => {
768
+ const foldersCount = params['foldersCount'];
769
+ const foldersCountOption = pluralization.process(foldersCount);
770
+ switch (foldersCountOption) {
771
+ case 'one':
772
+ return '1 папку';
773
+ case 'few':
774
+ return `${foldersCount} папки`;
775
+ default:
776
+ return `${foldersCount || 0} папок`;
777
+ }
778
+ })()}.`,
779
+ messageRemoveFilesFailed: (params) => `Не вдалося видалити ${(() => {
780
+ const filesCount = params['filesCount'];
781
+ const filesCountOption = pluralization.process(filesCount);
782
+ switch (filesCountOption) {
783
+ case 'one':
784
+ return '1 файл';
785
+ case 'few':
786
+ return `${filesCount} файли`;
787
+ default:
788
+ return `${filesCount || 0} файлів`;
789
+ }
790
+ })()}.`,
791
+ messageRemoveFilesSuccess: (params) => `Видалено ${(() => {
792
+ const filesCount = params['filesCount'];
793
+ const filesCountOption = pluralization.process(filesCount);
794
+ switch (filesCountOption) {
795
+ case 'one':
796
+ return '1 файл';
797
+ case 'few':
798
+ return `${filesCount} файли`;
799
+ default:
800
+ return `${filesCount || 0} файлів`;
801
+ }
802
+ })()}.`,
756
803
  messageRemoveFileOrFolderFailed: 'Не вдалося видалити {{ name }}.',
757
804
  messageRemoveFileOrFolderSuccess: '{{ name }} видалено.',
758
- messageMoveFoldersAndFilesFailed: (params) => `Не вдалося перемістити ${folderNamePluralization(params)} і ${fileNamePluralization(params)} до {{ to }}.`,
759
- messageMoveFoldersAndFilesSuccess: (params) => `${folderNamePluralization(params)} і ${fileNamePluralization(params)} переміщено в {{ to }}.`,
760
- messageMoveFoldersFailed: (params) => `Не вдалося перемістити ${folderNamePluralization(params)} до {{ to }}.`,
761
- messageMoveFoldersSuccess: (params) => `${folderNamePluralization(params)} переміщено до {{ to }}.`,
762
- messageMoveFilesFailed: (params) => `Не вдалося перемістити ${fileNamePluralization(params)} до {{ to }}.`,
763
- messageMoveFilesSuccess: (params) => `${fileNamePluralization(params)} переміщено до {{ to }}.`,
805
+ messageMoveFoldersAndFilesFailed: (params) => `Не вдалося перемістити ${(() => {
806
+ const foldersCount = params['foldersCount'];
807
+ const foldersCountOption = pluralization.process(foldersCount);
808
+ switch (foldersCountOption) {
809
+ case 'one':
810
+ return '1 папку';
811
+ case 'few':
812
+ return `${foldersCount} папки`;
813
+ default:
814
+ return `${foldersCount || 0} папок`;
815
+ }
816
+ })()} і ${(() => {
817
+ const filesCount = params['filesCount'];
818
+ const filesCountOption = pluralization.process(filesCount);
819
+ switch (filesCountOption) {
820
+ case 'one':
821
+ return '1 файл';
822
+ case 'few':
823
+ return `${filesCount} файли`;
824
+ default:
825
+ return `${filesCount || 0} файлів`;
826
+ }
827
+ })()} до {{ to }}.`,
828
+ messageMoveFoldersAndFilesSuccess: (params) => `${(() => {
829
+ const foldersCount = params['foldersCount'];
830
+ const foldersCountOption = pluralization.process(foldersCount);
831
+ switch (foldersCountOption) {
832
+ case 'one':
833
+ return '1 папку';
834
+ case 'few':
835
+ return `${foldersCount} папки`;
836
+ default:
837
+ return `${foldersCount || 0} папок`;
838
+ }
839
+ })()} і ${(() => {
840
+ const filesCount = params['filesCount'];
841
+ const filesCountOption = pluralization.process(filesCount);
842
+ switch (filesCountOption) {
843
+ case 'one':
844
+ return '1 файл';
845
+ case 'few':
846
+ return `${filesCount} файли`;
847
+ default:
848
+ return `${filesCount || 0} файлів`;
849
+ }
850
+ })()} переміщено в {{ to }}.`,
851
+ messageMoveFoldersFailed: (params) => `Не вдалося перемістити ${(() => {
852
+ const foldersCount = params['foldersCount'];
853
+ const foldersCountOption = pluralization.process(foldersCount);
854
+ switch (foldersCountOption) {
855
+ case 'one':
856
+ return '1 папку';
857
+ case 'few':
858
+ return `${foldersCount} папки`;
859
+ default:
860
+ return `${foldersCount || 0} папок`;
861
+ }
862
+ })()} до {{ to }}.`,
863
+ messageMoveFoldersSuccess: (params) => `${(() => {
864
+ const foldersCount = params['foldersCount'];
865
+ const foldersCountOption = pluralization.process(foldersCount);
866
+ switch (foldersCountOption) {
867
+ case 'one':
868
+ return '1 папку';
869
+ case 'few':
870
+ return `${foldersCount} папки`;
871
+ default:
872
+ return `${foldersCount || 0} папок`;
873
+ }
874
+ })()} переміщено до {{ to }}.`,
875
+ messageMoveFilesFailed: (params) => `Не вдалося перемістити ${(() => {
876
+ const filesCount = params['filesCount'];
877
+ const filesCountOption = pluralization.process(filesCount);
878
+ switch (filesCountOption) {
879
+ case 'one':
880
+ return '1 файл';
881
+ case 'few':
882
+ return `${filesCount} файли`;
883
+ default:
884
+ return `${filesCount || 0} файлів`;
885
+ }
886
+ })()} до {{ to }}.`,
887
+ messageMoveFilesSuccess: (params) => `${(() => {
888
+ const filesCount = params['filesCount'];
889
+ const filesCountOption = pluralization.process(filesCount);
890
+ switch (filesCountOption) {
891
+ case 'one':
892
+ return '1 файл';
893
+ case 'few':
894
+ return `${filesCount} файли`;
895
+ default:
896
+ return `${filesCount || 0} файлів`;
897
+ }
898
+ })()} переміщено до {{ to }}.`,
764
899
  messageMoveFileOrFolderFailed: 'Не вдалося перемістити {{ name }} до {{ to }}.',
765
900
  messageMoveFileOrFolderSuccess: '{{ name }} переміщено в {{ to }}.',
766
- messageMoveRootFoldersAndFilesFailed: (params) => `Не вдалося перемістити ${folderNamePluralization(params)} і ${fileNamePluralization(params)} до всіх файлів.`,
767
- messageMoveRootFoldersAndFilesSuccess: (params) => `${folderNamePluralization(params)} і ${fileNamePluralization(params)} переміщено до всіх файлів.`,
768
- messageMoveRootFoldersFailed: (params) => `Не вдалося перемістити ${folderNamePluralization(params)} до всіх файлів.`,
769
- messageMoveRootFoldersSuccess: (params) => `${folderNamePluralization(params)} переміщено до всіх файлів.`,
770
- messageMoveRootFilesFailed: (params) => `Не вдалося перемістити ${fileNamePluralization(params)} до всіх файлів.`,
771
- messageMoveRootFilesSuccess: (params) => `${fileNamePluralization(params)} переміщено до всіх файлів.`,
901
+ messageMoveRootFoldersAndFilesFailed: (params) => `Не вдалося перемістити ${(() => {
902
+ const foldersCount = params['foldersCount'];
903
+ const foldersCountOption = pluralization.process(foldersCount);
904
+ switch (foldersCountOption) {
905
+ case 'one':
906
+ return '1 папку';
907
+ case 'few':
908
+ return `${foldersCount} папки`;
909
+ default:
910
+ return `${foldersCount || 0} папок`;
911
+ }
912
+ })()} і ${(() => {
913
+ const filesCount = params['filesCount'];
914
+ const filesCountOption = pluralization.process(filesCount);
915
+ switch (filesCountOption) {
916
+ case 'one':
917
+ return '1 файл';
918
+ case 'few':
919
+ return `${filesCount} файли`;
920
+ default:
921
+ return `${filesCount || 0} файлів`;
922
+ }
923
+ })()} до всіх файлів.`,
924
+ messageMoveRootFoldersAndFilesSuccess: (params) => `${(() => {
925
+ const foldersCount = params['foldersCount'];
926
+ const foldersCountOption = pluralization.process(foldersCount);
927
+ switch (foldersCountOption) {
928
+ case 'one':
929
+ return '1 папку';
930
+ case 'few':
931
+ return `${foldersCount} папки`;
932
+ default:
933
+ return `${foldersCount || 0} папок`;
934
+ }
935
+ })()} і ${(() => {
936
+ const filesCount = params['filesCount'];
937
+ const filesCountOption = pluralization.process(filesCount);
938
+ switch (filesCountOption) {
939
+ case 'one':
940
+ return '1 файл';
941
+ case 'few':
942
+ return `${filesCount} файли`;
943
+ default:
944
+ return `${filesCount || 0} файлів`;
945
+ }
946
+ })()} переміщено до всіх файлів.`,
947
+ messageMoveRootFoldersFailed: (params) => `Не вдалося перемістити ${(() => {
948
+ const foldersCount = params['foldersCount'];
949
+ const foldersCountOption = pluralization.process(foldersCount);
950
+ switch (foldersCountOption) {
951
+ case 'one':
952
+ return '1 папку';
953
+ case 'few':
954
+ return `${foldersCount} папки`;
955
+ default:
956
+ return `${foldersCount || 0} папок`;
957
+ }
958
+ })()} до всіх файлів.`,
959
+ messageMoveRootFoldersSuccess: (params) => `${(() => {
960
+ const foldersCount = params['foldersCount'];
961
+ const foldersCountOption = pluralization.process(foldersCount);
962
+ switch (foldersCountOption) {
963
+ case 'one':
964
+ return '1 папку';
965
+ case 'few':
966
+ return `${foldersCount} папки`;
967
+ default:
968
+ return `${foldersCount || 0} папок`;
969
+ }
970
+ })()} переміщено до всіх файлів.`,
971
+ messageMoveRootFilesFailed: (params) => `Не вдалося перемістити ${(() => {
972
+ const filesCount = params['filesCount'];
973
+ const filesCountOption = pluralization.process(filesCount);
974
+ switch (filesCountOption) {
975
+ case 'one':
976
+ return '1 файл';
977
+ case 'few':
978
+ return `${filesCount} файли`;
979
+ default:
980
+ return `${filesCount || 0} файлів`;
981
+ }
982
+ })()} до всіх файлів.`,
983
+ messageMoveRootFilesSuccess: (params) => `${(() => {
984
+ const filesCount = params['filesCount'];
985
+ const filesCountOption = pluralization.process(filesCount);
986
+ switch (filesCountOption) {
987
+ case 'one':
988
+ return '1 файл';
989
+ case 'few':
990
+ return `${filesCount} файли`;
991
+ default:
992
+ return `${filesCount || 0} файлів`;
993
+ }
994
+ })()} переміщено до всіх файлів.`,
772
995
  messageMoveRootFileOrFolderFailed: 'Не вдалося перемістити {{ name }} до всіх файлів.',
773
996
  messageMoveRootFileOrFolderSuccess: '{{ name }} переміщено до всіх файлів.',
774
997
  messageFileTypeMismatchPlural: (params) => {
@@ -811,9 +1034,7 @@ export const FD_LANGUAGE_UKRAINIAN = {
811
1034
  },
812
1035
  messageFileNameLengthExceededSingular: 'Назва "{{ fileName }}" перевищує максимальну довжину імені файлу. Дозволена довжина імені файлу: {{ maxFilenameLength }} символів.'
813
1036
  },
814
- platformWizardGenerator: {
815
- summarySectionEditStep: 'Редагувати'
816
- },
1037
+ platformWizardGenerator: { summarySectionEditStep: 'Редагувати' },
817
1038
  platformMessagePopover: {
818
1039
  allErrors: 'Всі',
819
1040
  defaultErrors: {
@@ -847,68 +1068,16 @@ export const FD_LANGUAGE_UKRAINIAN = {
847
1068
  createdBy: 'Створив(ла)',
848
1069
  removeVariant: 'Видалити вид',
849
1070
  search: 'Пошук',
850
- access: {
851
- public: 'Публічне',
852
- private: 'Приватне'
853
- }
854
- },
855
- platformSelect: {
856
- selectOptionLabel: 'Виберіть опцію'
1071
+ access: { public: 'Публічне', private: 'Приватне' }
857
1072
  },
1073
+ platformSelect: { selectOptionLabel: 'Виберіть опцію' },
858
1074
  fnSlider: {
859
1075
  minMaxDetails: 'Мінімальне значення слайдера {{min}}, максимальне значення {{ max }}',
860
1076
  valueminDetails: 'Поточне значення: {{ value }}',
861
1077
  valuemaxDetails: 'Поточне значення: {{ value }}',
862
1078
  valueNowDetails: 'Поточне значення: {{ value }}'
863
1079
  },
864
- fnSwitch: {
865
- semanticAcceptLabel: 'Прийняти',
866
- semanticDeclineLabel: 'Відхилити'
867
- },
868
- coreTree: {
869
- expand: 'Розгорнути вузол',
870
- collapse: 'Згорнути вузол',
871
- noData: 'Немає даних'
872
- }
1080
+ fnSwitch: { semanticAcceptLabel: 'Прийняти', semanticDeclineLabel: 'Відхилити' },
1081
+ coreTree: { expand: 'Розгорнути вузол', collapse: 'Згорнути вузол', noData: 'Немає даних' }
873
1082
  };
874
- /**
875
- * Pluralization for "file" word in ukrainian language
876
- *
877
- * Output samples:
878
- * * 1 файл
879
- * * 2 файли
880
- * * 10 файлів
881
- */
882
- function fileNamePluralization(params) {
883
- const filesCount = params['filesCount'];
884
- const filesCountOption = pluralization.process(filesCount);
885
- switch (filesCountOption) {
886
- case 'one':
887
- return '1 файл';
888
- case 'few':
889
- return `${filesCount} файли`;
890
- default:
891
- return `${filesCount || 0} файлів`;
892
- }
893
- }
894
- /**
895
- * Pluralization for "folder" word in ukrainian language
896
- *
897
- * Outputs samples:
898
- * * 1 папку
899
- * * 2 папки
900
- * * 10 папок
901
- */
902
- function folderNamePluralization(params) {
903
- const foldersCount = params['foldersCount'];
904
- const foldersCountOption = pluralization.process(foldersCount);
905
- switch (foldersCountOption) {
906
- case 'one':
907
- return '1 папку';
908
- case 'few':
909
- return `${foldersCount} папки`;
910
- default:
911
- return `${foldersCount || 0} папок`;
912
- }
913
- }
914
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWtyYWluaWFuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9pMThuL3NyYy9saWIvbGFuZ3VhZ2VzL3VrcmFpbmlhbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV6RCxNQUFNLGFBQWEsR0FBRyxJQUFJLGlCQUFpQixFQUFFLENBQUM7QUFDOUM7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBZTtJQUM3QyxZQUFZLEVBQUU7UUFDVixrQkFBa0IsRUFBRSxhQUFhO1FBQ2pDLHdCQUF3QixFQUFFLHdCQUF3QjtRQUNsRCxtQkFBbUIsRUFBRSxnQkFBZ0I7UUFDckMsa0JBQWtCLEVBQUUsY0FBYztRQUNsQyxpQkFBaUIsRUFBRSxnQkFBZ0I7UUFDbkMsYUFBYSxFQUFFLGVBQWU7UUFDOUIsa0JBQWtCLEVBQUUsbUJBQW1CO1FBQ3ZDLGNBQWMsRUFBRSxrQkFBa0I7UUFDbEMsZUFBZSxFQUFFLG1CQUFtQjtRQUNwQyxpQkFBaUIsRUFBRSxjQUFjO1FBQ2pDLFVBQVUsRUFBRSxVQUFVO1FBQ3RCLGVBQWUsRUFBRSxtQkFBbUI7UUFDcEMsYUFBYSxFQUFFLGtCQUFrQjtRQUNqQyxjQUFjLEVBQUUsWUFBWTtRQUM1QixrQkFBa0IsRUFBRSxrQkFBa0I7UUFDdEMsMEJBQTBCLEVBQUUsVUFBVTtRQUN0Qyw0QkFBNEIsRUFBRSxjQUFjO1FBQzVDLDRCQUE0QixFQUFFLFlBQVk7UUFDMUMsaUNBQWlDLEVBQUUsdUJBQXVCO0tBQzdEO0lBQ0QsaUJBQWlCLEVBQUU7UUFDZixzQkFBc0IsRUFBRSw4QkFBOEI7UUFDdEQsY0FBYyxFQUFFLGtEQUFrRDtLQUNyRTtJQUNELFlBQVksRUFBRTtRQUNWLHNCQUFzQixFQUFFLGtDQUFrQztRQUMxRCx1QkFBdUIsRUFBRSxnQ0FBZ0M7S0FDNUQ7SUFDRCxjQUFjLEVBQUU7UUFD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O0tBQ25EO0lBQ0QsUUFBUSxFQUFFO1FBQ04sbUJBQW1CLEVBQUUsVUFBVTtRQUMvQixvQkFBb0IsRUFBRSxXQUFXO0tBQ3BDO0lBQ0QsUUFBUSxFQUFFO1FBQ04sTUFBTSxFQUFFLGtCQUFrQjtRQUMxQixRQUFRLEVBQUUsZ0JBQWdCO1FBQzFCLE1BQU0sRUFBRSxhQUFhO0tBQ3hCO0NBQ0osQ0FBQztBQUVGOzs7Ozs7O0dBT0c7QUFDSCxTQUFTLHFCQUFxQixDQUFDLE1BQXlCO0lBQ3BELE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN4QyxNQUFNLGdCQUFnQixHQUFHLGFBQWEsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDM0QsUUFBUSxnQkFBZ0IsRUFBRTtRQUN0QixLQUFLLEtBQUs7WUFDTixPQUFPLFFBQVEsQ0FBQztRQUNwQixLQUFLLEtBQUs7WUFDTixPQUFPLEdBQUcsVUFBVSxRQUFRLENBQUM7UUFDakM7WUFDSSxPQUFPLEdBQUcsVUFBVSxJQUFJLENBQUMsU0FBUyxDQUFDO0tBQzFDO0FBQ0wsQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxTQUFTLHVCQUF1QixDQUFDLE1BQXlCO0lBQ3RELE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUM1QyxNQUFNLGtCQUFrQixHQUFHLGFBQWEsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDL0QsUUFBUSxrQkFBa0IsRUFBRTtRQUN4QixLQUFLLEtBQUs7WUFDTixPQUFPLFNBQVMsQ0FBQztRQUNyQixLQUFLLEtBQUs7WUFDTixPQUFPLEdBQUcsWUFBWSxRQUFRLENBQUM7UUFDbkM7WUFDSSxPQUFPLEdBQUcsWUFBWSxJQUFJLENBQUMsUUFBUSxDQUFDO0tBQzNDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZkTGFuZ3VhZ2UsIEZkTGFuZ3VhZ2VLZXlBcmdzIH0gZnJvbSAnLi4vbW9kZWxzL2xhbmcnO1xuaW1wb3J0IHsgUGx1cmFsaXphdGlvblNldDEgfSBmcm9tICcuL3BsdXJhbGl6YXRpb24vc2V0MSc7XG5cbmNvbnN0IHBsdXJhbGl6YXRpb24gPSBuZXcgUGx1cmFsaXphdGlvblNldDEoKTtcbi8qKlxuICogRGVmYXVsdCBzZXQgb2YgdHJhbnNsYXRpb25zIG9mIEZ1bmRhbWVudGFsIFVJIGxpYmFyYXJ5IGZvciBVa3JhaW5pYW4gbGFuZ3VhZ2VcbiAqL1xuZXhwb3J0IGNvbnN0IEZEX0xBTkdVQUdFX1VLUkFJTklBTjogRmRMYW5ndWFnZSA9IHtcbiAgICBjb3JlQ2FsZW5kYXI6IHtcbiAgICAgICAgeWVhclNlbGVjdGlvbkxhYmVsOiAn0J7QsdC10YDRltGC0Ywg0YDRltC6JyxcbiAgICAgICAgeWVhcnNSYW5nZVNlbGVjdGlvbkxhYmVsOiAn0J7QsdC10YDRltGC0Ywg0LTRltCw0L/QsNC30L7QvSDRgNC+0LrRltCyJyxcbiAgICAgICAgbW9udGhTZWxlY3Rpb25MYWJlbDogJ9Ce0LHQtdGA0ZbRgtGMINC80ZbRgdGP0YbRjCcsXG4gICAgICAgIGRhdGVTZWxlY3Rpb25MYWJlbDogJ9Ce0LHQtdGA0ZbRgtGMINC00LDRgtGDJyxcbiAgICAgICAgcHJldmlvdXNZZWFyTGFiZWw6ICfQn9C+0L/QtdGA0LXQtNC90ZbQuSDRgNGW0LonLFxuICAgICAgICBuZXh0WWVhckxhYmVsOiAn0J3QsNGB0YLRg9C/0L3QuNC5INGA0ZbQuicsXG4gICAgICAgIHByZXZpb3VzTW9udGhMYWJlbDogJ9Cf0L7Qv9C10YDQtdC00L3RltC5INC80ZbRgdGP0YbRjCcsXG4gICAgICAgIG5leHRNb250aExhYmVsOiAn0J3QsNGB0YLRg9C/0L3QuNC5INC80ZbRgdGP0YbRjCcsXG4gICAgICAgIHdlZWtDb2x1bW5MYWJlbDogJ9Ci0LjQttC00LXQvdGMINC60LDQu9C10L3QtNCw0YDRjycsXG4gICAgICAgIGRhdGVTZWxlY3RlZExhYmVsOiAn0JLQuNCx0YDQsNC90LAg0LTQsNGC0LAnLFxuICAgICAgICB0b2RheUxhYmVsOiAn0KHRjNC+0LPQvtC00L3RlicsXG4gICAgICAgIHJhbmdlU3RhcnRMYWJlbDogJ9Cf0L7Rh9Cw0YLQvtC6INC00ZbQsNC/0LDQt9C+0L3RgycsXG4gICAgICAgIHJhbmdlRW5kTGFiZWw6ICfQmtGW0L3QtdGG0Ywg0LTRltCw0L/QsNC30L7QvdGDJyxcbiAgICAgICAgZGF5SW5QYXN0TGFiZWw6ICfQnNC40L3Rg9C70ZYg0LTQvdGWJyxcbiAgICAgICAgY2xvc2VDYWxlbmRhckxhYmVsOiAn0JfQsNC60YDQuNGC0Lgg0LrQsNC70LXQvdC00LDRgCcsXG4gICAgICAgIGNhbGVuZGFyRGF5Vmlld0Rlc2NyaXB0aW9uOiAn0JrQsNC70LXQvdC00LDRgCcsXG4gICAgICAgIGNhbGVuZGFyTW9udGhWaWV3RGVzY3JpcHRpb246ICfQktC40LHRltGAINC80ZbRgdGP0YbRjycsXG4gICAgICAgIGNhbGVuZGFyWWVhcnNWaWV3RGVzY3JpcHRpb246ICfQktC40LHRltGAINGA0L7QutGDJyxcbiAgICAgICAgY2FsZW5kYXJZZWFyc1JhbmdlVmlld0Rlc2NyaXB0aW9uOiAn0JLQuNCx0ZbRgCDQtNGW0LDQv9Cw0LfQvtC90YMg0YDQvtC60ZbQsidcbiAgICB9LFxuICAgIGNvcmVNdWx0aUNvbWJvQm94OiB7XG4gICAgICAgIG11bHRpQ29tYm9Cb3hBcmlhTGFiZWw6ICfQkdCw0LPQsNGC0L7Qt9C90LDRh9C90LUg0L/QvtC70LUg0LfRliDRgdC/0LjRgdC60L7QvCcsXG4gICAgICAgIHNlbGVjdEFsbExhYmVsOiAn0JLQuNCx0YDQsNGC0Lgg0LLRgdC1ICh7e3NlbGVjdGVkSXRlbXN9fSDQtyB7e3RvdGFsSXRlbXN9fSknXG4gICAgfSxcbiAgICBjb3JlQ2Fyb3VzZWw6IHtcbiAgICAgICAgbGVmdE5hdmlnYXRpb25CdG5MYWJlbDogJ9Cf0LXRgNC10LnRgtC4INC00L4g0L/QvtC/0LXRgNC10LTQvdGM0L7Qs9C+INC10LvQtdC80LXQvdGC0LAnLFxuICAgICAgICByaWdodE5hdmlnYXRpb25CdG5MYWJlbDogJ9Cf0LXRgNC10LnRgtC4INC00L4g0L3QsNGB0YLRg9C/0L3QvtCz0L4g0LXQu9C10LzQtdC90YLQsCdcbiAgICB9LFxuICAgIGNvcmVEYXRlUGlja2VyOiB7XG4gICAgICAgIGRhdGVJbnB1dExhYmVsOiAn0J/QvtC70LUg0LLQstC+0LTRgyDQtNCw0YLQuCcsXG4gICAgICAgIGRhdGVSYW5nZUlucHV0TGFiZWw6ICfQn9C+0LvQtSDQstCy0LXQtNC10L3QvdGPINC00ZbQsNC/0LDQt9C+0L3RgyDQtNCw0YInLFxuICAgICAgICBkaXNwbGF5Q2FsZW5kYXJUb2dnbGVMYWJlbDogJ9CS0ZbQtNC60YDQuNGC0Lgg0LfQsNGB0ZbQsSDQstC40LHQvtGA0YMnLFxuICAgICAgICB2YWx1ZVN0YXRlU3VjY2Vzc01lc3NhZ2U6ICfQl9C90LDRh9C10L3QvdGPINGB0YLQsNC90YM6INCj0YHQv9GW0YUnLFxuICAgICAgICB2YWx1ZVN0YXRlSW5mb3JtYXRpb25NZXNzYWdlOiAn0JfQvdCw0YfQtdC90L3RjyDRgdGC0LDQvdGDOiDQhtC90YTQvtGA0LzQsNGG0ZbQudC90LjQuScsXG4gICAgICAgIHZhbHVlU3RhdGVXYXJuaW5nTWVzc2FnZTogJ9CX0L3QsNGH0LXQvdC90Y8g0YHRgtCw0L3Rgzog0J/QvtC/0LXRgNC10LTQttC10L3QvdGPJyxcbiAgICAgICAgdmFsdWVTdGF0ZUVycm9yTWVzc2FnZTogJ9CX0L3QsNGH0LXQvdC90Y8g0YHRgtCw0L3Rgzog0J/QvtC80LjQu9C60LAnXG4gICAgfSxcbiAgICBjb3JlRGF0ZXRpbWVQaWNrZXI6IHtcbiAgICAgICAgZGF0ZXRpbWVJbnB1dExhYmVsOiAn0J/QvtC70LUg0LLQstC+0LTRgyDQtNCw0YLQuCDRgtCwINGH0LDRgdGDJyxcbiAgICAgICAgZGlzcGxheURhdGV0aW1lVG9nZ2xlTGFiZWw6ICfQn9C+0LrQsNC30LDRgtC4INC60LDQu9C10L3QtNCw0YAnLFxuICAgICAgICBkaXNwbGF5VHlwZURhdGVMYWJlbDogJ9CU0LDRgtCwJyxcbiAgICAgICAgZGlzcGxheVR5cGVUaW1lTGFiZWw6ICfQp9Cw0YEnLFxuICAgICAgICBkYXRldGltZU9rTGFiZWw6ICdPSycsXG4gICAgICAgIGRhdGV0aW1lQ2FuY2VsTGFiZWw6ICfQktGW0LTQvNGW0L3QuNGC0LgnXG4gICAgfSxcbiAgICBjb3JlRmVlZExpc3RJdGVtOiB7XG4gICAgICAgIG1vcmVMYWJlbDogJ9CR0ZbQu9GM0YjQtScsXG4gICAgICAgIGxlc3NMYWJlbDogJ9Cc0LXQvdGI0LUnXG4gICAgfSxcbiAgICBjb3JlR3JpZExpc3Q6IHtcbiAgICAgICAgZmlsdGVyQmFyQ2FuY2VsQnV0dG9uVGl0bGU6ICfQodC60LDRgdGD0LLQsNGC0LgnLFxuICAgICAgICBsaXN0SXRlbVN0YXR1c0FyaWFMYWJlbDogJ9CV0LvQtdC80LXQvdGCINC80LDRlCDRgdGC0LDRgtGD0YEuINCh0YLQsNGC0YPRgToge3sgc3RhdHVzIH19LicsXG4gICAgICAgIGxpc3RJdGVtQ291bnRlckFyaWFMYWJlbDogKHBhcmFtcykgPT4ge1xuICAgICAgICAgICAgY29uc3QgY291bnQgPSBwYXJhbXNbJ2NvdW50J107XG4gICAgICAgICAgICBjb25zdCBvcHRpb24gPSBwbHVyYWxpemF0aW9uLnByb2Nlc3MoY291bnQpO1xuICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHtcbiAgICAgICAgICAgICAgICBjYXNlICdvbmUnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYNCV0LvQtdC80LXQvdGCINC80LDRlCAxINC00L7Rh9GW0YDQvdGW0Lkg0LXQu9C10LzQtdC90YIuYDtcbiAgICAgICAgICAgICAgICBjYXNlICdmZXcnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYNCV0LvQtdC80LXQvdGCINC80LDRlCAke2NvdW50fSDQtNC+0YfRltGA0L3RltGFINC10LvQtdC80LXQvdGC0LAuYDtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYNCV0LvQtdC80LXQvdGCINC80LDRlCAke2NvdW50fSDQtNC+0YfRltGA0L3RltGFINC10LvQtdC80LXQvdGC0ZbQsi5gO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBsaXN0SXRlbUJ1dHRvbkRldGFpbHNUaXRsZTogJ9Cf0L7QtNGA0L7QsdC40YbRlicsXG4gICAgICAgIGxpc3RJdGVtQnV0dG9uRGVsZXRlVGl0bGU6ICfQktC40LTQsNC70LjRgtC4JyxcbiAgICAgICAgbGlzdEl0ZW1TdGF0dXNDb250YWluc0Vycm9yczogJ9Cc0ZbRgdGC0LjRgtGMINC/0L7QvNC40LvQutC4JyxcbiAgICAgICAgbGlzdEl0ZW1TdGF0dXNMb2NrZWQ6ICfQl9Cw0LHQu9C+0LrQvtCy0LDQvdC+JyxcbiAgICAgICAgbGlzdEl0ZW1TdGF0dXNEcmFmdDogJ9Cn0LXRgNC90LXRgtC60LAnXG4gICAgfSxcbiAgICBjb3JlTWVzc2FnZVN0cmlwOiB7XG4gICAgICAgIGRpc21pc3NMYWJlbDogJ9CX0LDQutGA0LjRgtC4J1xuICAgIH0sXG4gICAgY29yZU11bHRpSW5wdXQ6IHtcbiAgICAgICAgbXVsdGlJbnB1dEFyaWFMYWJlbDogJ011bHRpIFZhbHVlIElucHV0JyxcbiAgICAgICAgbm9SZXN1bHRzOiAnTm8gcmVzdWx0cy4nLFxuICAgICAgICBuYXZpZ2F0ZVNlbGVjdGlvbnNXaXRoQXJyb3dzOiAnTmF2aWdhdGUgc2VsZWN0aW9ucyB3aXRoIHRoZSB1cCBhbmQgZG93biBhcnJvd3MuJyxcbiAgICAgICAgY291bnRMaXN0UmVzdWx0c1Npbmd1bGFyOiAnMSDQtdC70LXQvNC10L3Rgi4nLFxuICAgICAgICBjb3VudExpc3RSZXN1bHRzUGx1cmFsOiAocGFyYW1zKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb3VudCA9IHBhcmFtc1snY291bnQnXTtcbiAgICAgICAgICAgIGNvbnN0IG9wdGlvbiA9IHBsdXJhbGl6YXRpb24ucHJvY2Vzcyhjb3VudCk7XG4gICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikge1xuICAgICAgICAgICAgICAgIGNhc2UgJ29uZSc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgMSDQtdC70LXQvNC10L3Rgi5gO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2Zldyc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtjb3VudH0g0LXQu9C10LzQtdC90YLQuC5gO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtjb3VudCB8fCAwfSDQtdC70LXQvNC10L3RgtGW0LIuYDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZXNjYXBlTmF2aWdhdGVUb2tlbnM6XG4gICAgICAgICAgICAnUHJlc3MgZXNjYXBlIHRvIGV4aXQgdGhlIGlucHV0IGZpZWxkIGFuZCB1c2UgdGhlIGxlZnQgYW5kIHJpZ2h0IGFycm93IGtleXMgdG8gbmF2aWdhdGUgdGhyb3VnaCB0aGUgc2VsZWN0ZWQgb3B0aW9ucy4nLFxuICAgICAgICB0b2tlbnNDb3VudFRleHQ6ICh7IGxlbmd0aCB9KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBvcHRpb24gPSBwbHVyYWxpemF0aW9uLnByb2Nlc3MobGVuZ3RoKTtcbiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnemVybyc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAn0J3QtdC80LDRlCDQstC40LHRgNCw0L3QuNGFINCy0LDRgNGW0LDQvdGC0ZbQsi4nO1xuICAgICAgICAgICAgICAgIGNhc2UgJ29uZSc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBg0J7QsdGA0LDQvdC+IDEg0LLQsNGA0ZbQsNC90YIuYDtcbiAgICAgICAgICAgICAgICBjYXNlICdmZXcnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYNCe0LHRgNCw0L3QviAke2xlbmd0aH0g0LLQsNGA0ZbQsNC90YLQuC5gO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBg0J7QsdGA0LDQvdC+ICR7bGVuZ3RofSDQstCw0YDRltCw0L3RgtGW0LIuYDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sXG4gICAgY29yZU5hdmlnYXRpb246IHtcbiAgICAgICAgbWFpbk5hdmlnYXRpb246ICdNYWluIE5hdmlnYXRpb24nLFxuICAgICAgICBuYXZpZ2F0aW9uUGF0aDogJ05hdmlnYXRpb24gUGF0aCdcbiAgICB9LFxuICAgIGNvcmVOZXN0ZWRMaXN0OiB7XG4gICAgICAgIGxpbmtJdGVtQXJpYUxhYmVsOiAn0JXQu9C10LzQtdC90YIg0LTQtdGA0LXQstCwIHt7IGl0ZW1EZXRhaWxzIH19LCB7eyBpbmRleCB9fSDRltC3IHt7IHRvdGFsIH19e3sgc2VsZWN0ZWREZXNjcmlwdGlvbiB9fSdcbiAgICB9LFxuICAgIGNvcmVPdmVyZmxvd0xheW91dDoge1xuICAgICAgICBtb3JlSXRlbXNCdXR0b246IChwYXJhbXMpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvdW50ID0gcGFyYW1zWydjb3VudCddO1xuICAgICAgICAgICAgY29uc3Qgb3B0aW9uID0gcGx1cmFsaXphdGlvbi5wcm9jZXNzKGNvdW50KTtcbiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnb25lJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGDQqdC1IDEg0LXQu9C10LzQtdC90YJgO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2Zldyc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBg0KnQtSAke2NvdW50fSDQtdC70LXQvNC10L3RgtCwYDtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYNCp0LUgJHtjb3VudH0g0LXQu9C10LzQtdC90YLRltCyYDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sXG4gICAgY29yZVBhZ2luYXRpb246IHtcbiAgICAgICAgcGFnZUxhYmVsOiAn0KHRgtC+0YDRltC90LrQsCB7eyBwYWdlTnVtYmVyIH19JyxcbiAgICAgICAgY3VycmVudFBhZ2VBcmlhTGFiZWw6ICfQodGC0L7RgNGW0L3QutCwIHt7IHBhZ2VOdW1iZXIgfX0g0ZQg0LDQutGC0LjQstC90L7RjicsXG4gICAgICAgIGxhYmVsQmVmb3JlSW5wdXRNb2JpbGU6ICfQodGC0L7RgNGW0L3QutCwOicsXG4gICAgICAgIGxhYmVsQWZ0ZXJJbnB1dE1vYmlsZTogJ9GW0Lcge3sgdG90YWxDb3VudCB9fScsXG4gICAgICAgIGlucHV0QXJpYUxhYmVsOiAn0J/QvtC70LUg0LLQstC+0LTRgyDRgdGC0L7RgNGW0L3QutC4LCDQn9C+0YLQvtGH0L3QsCDRgdGC0L7RgNGW0L3QutCwLCDQodGC0L7RgNGW0L3QutCwIHt7IHBhZ2VOdW1iZXIgfX0g0ZbQtyB7eyB0b3RhbENvdW50IH19JyxcbiAgICAgICAgaXRlbXNQZXJQYWdlTGFiZWw6ICfQoNC10LfRg9C70YzRgtCw0YLRltCyINC90LAg0YHRgtC+0YDRltC90YbRljonLFxuICAgICAgICBmaXJzdExhYmVsOiAn0J/QtdGA0LXQudGC0Lgg0LTQviDQv9C10YDRiNC+0ZcnLFxuICAgICAgICBwcmV2aW91c0xhYmVsOiAn0J/QtdGA0LXQudGC0Lgg0LTQviDQv9C+0L/QtdGA0LTQvdGM0L7RlycsXG4gICAgICAgIG5leHRMYWJlbDogJ9Cf0LXRgNC10LnRgtC4INC00L4g0L3QsNGB0YLRg9C/0L3QvtGXJyxcbiAgICAgICAgbGFzdExhYmVsOiAn0J/QtdGA0LXQudGC0Lgg0LTQviDQvtGB0YLQsNC90L3RjNC+0ZcnLFxuICAgICAgICBhcmlhTGFiZWw6ICfQndGD0LzQtdGA0LDRhtGW0Y8g0YHRgtC+0YDRltC90L7QuicsXG4gICAgICAgIHRvdGFsUmVzdWx0c0xhYmVsOiAne3sgdG90YWxDb3VudCB9fSDRgNC10LfRg9C70YzRgtCw0YLRltCyJ1xuICAgIH0sXG4gICAgY29yZVByb2R1Y3RTd2l0Y2g6IHtcbiAgICAgICAgYXJpYUxhYmVsOiAn0J/QtdGA0LXQvNC40LrQsNGHJ1xuICAgIH0sXG4gICAgY29yZVNoZWxsYmFyOiB7XG4gICAgICAgIGNvbGxhcHNlZEl0ZW1NZW51TGFiZWw6ICfQl9Cz0L7RgNC90YPRgtC1INC80LXQvdGOINC10LvQtdC80LXQvdGC0ZbQsicsXG4gICAgICAgIGNhbmNlbDogJ9CS0ZbQtNC80ZbQvdCwJyxcbiAgICAgICAgc2VhcmNoOiAn0J/QvtGI0YPQuidcbiAgICB9LFxuICAgIGNvcmVTbGlkZXI6IHtcbiAgICAgICAgc2luZ2xlTWluTWF4RGV0YWlsczogJ9Cc0ZbQvdGW0LzQsNC70YzQvdC1INC30L3QsNGH0LXQvdC90Y8g0YHQu9Cw0LnQtNC10YDQsCB7e21pbn19LCDQvNCw0LrRgdC40LzQsNC70YzQvdC1INC30L3QsNGH0LXQvdC90Y8ge3sgbWF4IH19JyxcbiAgICAgICAgc2luZ2xlVmFsdWVtaW5EZXRhaWxzOiAn0J/QvtGC0L7Rh9C90LUg0LfQvdCw0YfQtdC90L3Rjzoge3sgdmFsdWUgfX0nLFxuICAgICAgICBzaW5nbGVWYWx1ZW1heERldGFpbHM6ICfQn9C+0YLQvtGH0L3QtSDQt9C90LDRh9C10L3QvdGPOiB7eyB2YWx1ZSB9fScsXG4gICAgICAgIHNpbmdsZVZhbHVlTm93RGV0YWlsczogJ9Cf0L7RgtC+0YfQvdC1INC30L3QsNGH0LXQvdC90Y86IHt7IHZhbHVlIH19JyxcbiAgICAgICAgbXVsdGlwbGVIYW5kbGUxTWluTWF4RGV0YWlsczogJ9Cc0ZbQvdGW0LzQsNC70YzQvdC1INC30L3QsNGH0LXQvdC90Y8g0YHQu9Cw0LnQtNC10YDQsCB7eyBtaW4gfX0sINC80LDQutGB0LjQvNCw0LvRjNC90LUg0LfQvdCw0YfQtdC90L3RjyB7eyBtYXggfX0nLFxuICAgICAgICBtdWx0aXBsZUhhbmRsZTFWYWx1ZW1pbkRldGFpbHM6ICfQn9C+0YLQvtGH0L3QtSDQt9C90LDRh9C10L3QvdGPOiB7eyB2YWx1ZSB9fScsXG4gICAgICAgIG11bHRpcGxlSGFuZGxlMVZhbHVlbWF4RGV0YWlsczogJ9Cf0L7RgtC+0YfQvdC1INC30L3QsNGH0LXQvdC90Y86IHt7IHZhbHVlIH19JyxcbiAgICAgICAgbXVsdGlwbGVIYW5kbGUxVmFsdWVOb3dEZXRhaWxzOiAn0J/QvtGC0L7Rh9C90LUg0LfQvdCw0YfQtdC90L3Rjzoge3sgdmFsdWUgfX0nLFxuICAgICAgICBtdWx0aXBsZUhhbmRsZTJNaW5NYXhEZXRhaWxzOiAn0JzRltC90ZbQvNCw0LvRjNC90LUg0LfQvdCw0YfQtdC90L3RjyDRgdC70LDQudC00LXRgNCwIHt7IG1pbiB9fSwg0LzQsNC60YHQuNC80LDQu9GM0L3QtSDQt9C90LDRh9C10L3QvdGPIHt7IG1heCB9fScsXG4gICAgICAgIG11bHRpcGxlSGFuZGxlMlZhbHVlbWluRGV0YWlsczogJ9Cf0L7RgtC+0YfQvdC1INC30L3QsNGH0LXQvdC90Y86IHt7IHZhbHVlIH19JyxcbiAgICAgICAgbXVsdGlwbGVIYW5kbGUyVmFsdWVtYXhEZXRhaWxzOiAn0J/QvtGC0L7Rh9C90LUg0LfQvdCw0YfQtdC90L3Rjzoge3sgdmFsdWUgfX0nLFxuICAgICAgICBtdWx0aXBsZUhhbmRsZTJWYWx1ZU5vd0RldGFpbHM6ICfQn9C+0YLQvtGH0L3QtSDQt9C90LDRh9C10L3QvdGPOiB7eyB2YWx1ZSB9fSdcbiAgICB9LFxuICAgIGNvcmVTcGxpdEJ1dHRvbjoge1xuICAgICAgICBleHBhbmRCdXR0b25BcmlhTGFiZWw6ICfQkdGW0LvRjNGI0LUg0LTRltC5JyxcbiAgICAgICAgYXJpYWxMYWJlbDogJ9Ca0L3QvtC/0LrQsCDRgNC+0LfQtNGW0LvQtdC90L3RjydcbiAgICB9LFxuICAgIGNvcmVTcGxpdHRlcjoge1xuICAgICAgICBwYWdpbmF0aW9uSXRlbUFyaWFMYWJlbDogJ9Ch0LXQutGG0ZbRjydcbiAgICB9LFxuICAgIGNvcmVTdGVwSW5wdXQ6IHtcbiAgICAgICAgaW5jcmVtZW50QnV0dG9uVGl0bGU6ICfQl9Cx0ZbQu9GM0YjQuNGC0LgnLFxuICAgICAgICBkZWNyZW1lbnRCdXR0b25UaXRsZTogJ9CX0LzQtdC90YjQuNGC0LgnLFxuICAgICAgICBhcmlhUm9sZURlc2NyaXB0aW9uOiAn0JrRgNC+0Log0LLQstC+0LTRgydcbiAgICB9LFxuICAgIGNvcmVTd2l0Y2g6IHtcbiAgICAgICAgc2VtYW50aWNBY2NlcHRMYWJlbDogJ9Cf0YDQuNC50L3Rj9GC0LgnLFxuICAgICAgICBzZW1hbnRpY0RlY2xpbmVMYWJlbDogJ9CS0ZbQtNGF0LjQu9C40YLQuCdcbiAgICB9LFxuICAgIGNvcmVUYWJzOiB7XG4gICAgICAgIHRhYkxpc3RFeHBhbmRCdXR0b25UZXh0OiAn0JHRltC70YzRiNC1J1xuICAgIH0sXG4gICAgY29yZVRleHQ6IHtcbiAgICAgICAgbW9yZUxhYmVsOiAn0JHRltC70YzRiNC1JyxcbiAgICAgICAgbGVzc0xhYmVsOiAn0JzQtdC90YjQtSdcbiAgICB9LFxuICAgIGNvcmVUaW1lOiB7XG4gICAgICAgIGNvbXBvbmVudEFyaWFOYW1lOiAn0JLQuNCx0ZbRgCDRh9Cw0YHRgycsXG4gICAgICAgIGluY3JlYXNlSG91cnNMYWJlbDogJ9CX0LHRltC70YzRiNC40YLQuCDQs9C+0LTQuNC90LgnLFxuICAgICAgICBocnNMYWJlbDogJ9CT0L7QtCcsXG4gICAgICAgIGRlY3JlYXNlSG91cnNMYWJlbDogJ9CX0LzQtdC90YjQuNGC0Lgg0LPQvtC00LjQvdC4JyxcbiAgICAgICAgaW5jcmVhc2VNaW51dGVzTGFiZWw6ICfQl9Cx0ZbQu9GM0YjQuNGC0Lgg0YXQstC40LvQuNC90LgnLFxuICAgICAgICBtaW5MYWJlbDogJ9Cl0LInLFxuICAgICAgICBkZWNyZWFzZU1pbnV0ZXNMYWJlbDogJ9CX0LzQtdC90YjQuNGC0Lgg0YXQstC40LvQuNC90LgnLFxuICAgICAgICBpbmNyZWFzZVNlY29uZHNMYWJlbDogJ9CX0LHRltC70YzRiNC40YLQuCDRgdC10LrRg9C90LTQuCcsXG4gICAgICAgIHNlY0xhYmVsOiAn0KHQtdC6JyxcbiAgICAgICAgaG91cnNMYWJlbDogJ0hvdXJzJyxcbiAgICAgICAgbWludXRlc0xhYmVsOiAnTWludXRlcycsXG4gICAgICAgIHNlY29uZHNMYWJlbDogJ1NlY29uZHMnLFxuICAgICAgICBkZWNyZWFzZVNlY29uZHNMYWJlbDogJ9CX0LzQtdC90YjQuNGC0Lgg0YHQtdC60YPQvdC00LgnLFxuICAgICAgICBpbmNyZWFzZVBlcmlvZExhYmVsOiAn0JfQsdGW0LvRjNGI0LjRgtC4INC/0LXRgNGW0L7QtCcsXG4gICAgICAgIHBlcmlvZExhYmVsOiAn0J/QtdGA0ZbQvtC0JyxcbiAgICAgICAgZGVjcmVhc2VQZXJpb2RMYWJlbDogJ9CX0LzQtdC90YjQuNGC0Lgg0L/QtdGA0ZbQvtC0JyxcbiAgICAgICAgbmF2aWdhdGlvbkluc3RydWN0aW9uOlxuICAgICAgICAgICAgJ9Cp0L7QsSDQv9C10YDQtdC80ZbRidCw0YLQuNGB0Y8g0LzRltC2INC10LvQtdC80LXQvdGC0LDQvNC4INCyINGG0YzQvtC80YMg0YHQv9C40YHQutGDLCDQstC40LrQvtGA0LjRgdGC0L7QstGD0LnRgtC1INGB0YLRgNGW0LvQutGDINCy0LLQtdGA0YUg0LDQsdC+INCy0L3QuNC3LiAnICtcbiAgICAgICAgICAgICfQlNC70Y8g0L/QtdGA0LXQutC70Y7Rh9C10L3QvdGPINC80ZbQtiDRgdC/0LjRgdC60LDQvNC4INCy0LjQutC+0YDQuNGB0YLQvtCy0YPQudGC0LUg0YHRgtGA0ZbQu9C60YMg0LLQu9GW0LLQviDQsNCx0L4g0LLQv9GA0LDQstC+LidcbiAgICB9LFxuICAgIGNvcmVUaW1lUGlja2VyOiB7XG4gICAgICAgIHRpbWVQaWNrZXJJbnB1dExhYmVsOiAn0J/QvtC70LUg0LLQstC+0LTRgyDRh9Cw0YHRgycsXG4gICAgICAgIHRpbWVQaWNrZXJCdXR0b25MYWJlbDogJ9CS0ZbQtNC60YDQuNGC0Lgg0LLRltC60L3QviDQstC40LHQvtGA0YMnXG4gICAgfSxcbiAgICBjb3JlVG9rZW46IHtcbiAgICAgICAgZGVsZXRlQnV0dG9uTGFiZWw6ICfQnNC+0LbQtSDQsdGD0YLQuCDQstC40LTQsNC70LXQvdC40LwnLFxuICAgICAgICBhcmlhUm9sZURlc2NyaXB0aW9uOiAn0YLQvtC60LXQvSdcbiAgICB9LFxuICAgIGNvcmVUb2tlbml6ZXI6IHtcbiAgICAgICAgbW9yZUxhYmVsOiAocGFyYW1zKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb3VudCA9IHBhcmFtc1snY291bnQnXTtcbiAgICAgICAgICAgIGNvbnN0IG9wdGlvbiA9IHBsdXJhbGl6YXRpb24ucHJvY2Vzcyhjb3VudCk7XG4gICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikge1xuICAgICAgICAgICAgICAgIGNhc2UgJ29uZSc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBg0KnQtSAxINC10LvQtdC80LXQvdGCYDtcbiAgICAgICAgICAgICAgICBjYXNlICdmZXcnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYNCp0LUgJHtjb3VudH0g0LXQu9C10LzQtdC90YLQsGA7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGDQqdC1ICR7Y291bnR9INC10LvQtdC80LXQvdGC0ZbQsmA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHRva2VuaXplckxhYmVsOiAnVG9rZW5pemVyJ1xuICAgIH0sXG4gICAgY29yZVVwbG9hZENvbGxlY3Rpb246IHtcbiAgICAgICAgbWVudU9rVGV4dDogJ9Ce0JonLFxuICAgICAgICBtZW51Q2FuY2VsVGV4dDogJ9CS0ZbQtNC80ZbQvdC40YLQuCcsXG4gICAgICAgIG1lbnVFZGl0QXJpYUxhYmVsOiAn0KDQtdC00LDQs9GD0LLQsNGC0LgnLFxuICAgICAgICBtZW51RGVsZXRlQXJpYUxhYmVsOiAn0JLQuNC00LDQu9C40YLQuCcsXG4gICAgICAgIG1lbnVPa0FyaWFMYWJlbDogJ9Cg0LXQtNCw0LPRg9Cy0LDRgtC4JyxcbiAgICAgICAgbWVudUNhbmNlbEFyaWFMYWJlbDogJ9CS0ZbQtNC80LjQvdC40YLQuCcsXG4gICAgICAgIGZvcm1JdGVtUGxhY2Vob2xkZXI6IFwi0IbQvCfRjyDRhNCw0LnQu9GDXCJcbiAgICB9LFxuICAgIGNvcmVXaXphcmQ6IHtcbiAgICAgICAgYXJpYUxhYmVsOiAn0JzQsNC50YHRgtC10YAnXG4gICAgfSxcbiAgICBjb3JlQnJlYWRjcnVtYjoge1xuICAgICAgICBvdmVyZmxvd1RpdGxlTW9yZTogJ9CR0ZbQu9GM0YjQtSdcbiAgICB9LFxuICAgIHBsYXRmb3JtQWN0aW9uQmFyOiB7XG4gICAgICAgIGJhY2tCdXR0b25MYWJlbDogJ9Cf0L7QstC10YDQvdGD0YLQuNGB0Y8g0L3QsNC30LDQtCdcbiAgICB9LFxuICAgIHBsYXRmb3JtQXBwcm92YWxGbG93OiB7XG4gICAgICAgIGFkZE5vZGVCdXR0b25UaXRsZTogJ9CU0L7QtNCw0YLQuCcsXG4gICAgICAgIG5vZGVNZW51QnV0dG9uVGl0bGU6ICfQnNC10L3RjicsXG4gICAgICAgIGRlZmF1bHRXYXRjaGVyc0xhYmVsOiAn0KHQv9C+0YHRgtC10YDRltCz0LDRh9GWJyxcbiAgICAgICAgZGVmYXVsdFRpdGxlOiAn0J/RgNC+0YbQtdGBINC30LDRgtCy0LXRgNC00LbQtdC90L3RjycsXG4gICAgICAgIG5leHRCdXR0b25BcmlhTGFiZWw6ICfQn9C10YDQtdC50YLQuCDQtNC+INC90LDRgdGC0YPQv9C90L7Qs9C+INGB0LvQsNC50LTRgycsXG4gICAgICAgIHByZXZCdXR0b25BcmlhTGFiZWw6ICfQn9C10YDQtdC50YLQuCDQtNC+INC/0L7Qv9C10YDQtdC00L3RjNC+0LPQviDRgdC70LDQudC00YMnLFxuICAgICAgICBlZGl0TW9kZVNhdmVCdXR0b25MYWJlbDogJ9CX0LHQtdGA0LXQs9GC0LgnLFxuICAgICAgICBlZGl0TW9kZUV4aXRCdXR0b25MYWJlbDogJ9CS0LjQudGC0LgnLFxuICAgICAgICBlbXB0eVRpdGxlOiAn0J/QvtGH0LDRgtC4INC00L7QtNCw0LLQsNGC0Lgg0YHRgtCy0LXRgNC00LbRg9Cy0LDRh9GW0LIg0ZYg0YHQv9C+0YHRgtC10YDRltCz0LDRh9GW0LInLFxuICAgICAgICBlbXB0eUhpbnQ6XG4gICAgICAgICAgICAn0KnQvtCxINC00L7QtNCw0YLQuCDRgdGC0LLQtdGA0LTQttGD0LLQsNGH0ZbQsiwg0L3QsNGC0LjRgdC90ZbRgtGMIFwi0JTQvtC00LDRgtC4INC60YDQvtC6XCIuINCp0L7QsSDQtNC+0LTQsNGC0Lgg0YHQv9C+0YHRgtC10YDRltCz0LDRh9GW0LIsINC90LDRgtC40YHQvdGW0YLRjCDQv9C+0LvQtSDQodC/0L7RgdGC0LXRgNGW0LPQsNGH0ZYuJyxcbiAgICAgICAgYWRkTm9kZURpYWxvZ0hlYWRlckFkZEFwcHJvdmVyczogJ9CU0L7QtNCw0YLQuCDRgdGC0LLQtdGA0LTQttGD0LLQsNGH0ZbQsicsXG4gICAgICAgIGFkZE5vZGVEaWFsb2dIZWFkZXJFZGl0QXBwcm92ZXI6ICfQoNC10LTQsNCz0YPQstCw0YLQuCDRgdGC0LLQtdGA0LTQttGD0LLQsNGH0LAnLFxuICAgICAgICBhZGROb2RlRGlhbG9nSGVhZGVyQWRkQXBwcm92ZXJUZWFtOiAn0JrQvtGA0LjRgdGC0YPQstCw0Ycv0JrQvtC80LDQvdC00LAnLFxuICAgICAgICBhZGROb2RlRGlhbG9nSGVhZGVyRGV0YWlsOiAn0JTQtdGC0LDQu9GWJyxcbiAgICAgICAgYWRkTm9kZURpYWxvZ05vZGVUeXBlOiAn0J/QsNGA0LDQu9C10LvRjNC90LjQuSDQsNCx0L4g0L/QvtGB0LvRltC00L7QstC90LjQuScsXG4gICAgICAgIGFkZE5vZGVEaWFsb2dOb2RlVHlwZVNlcmlhbDogJ9Cf0L7RgdC70ZbQtNC+0LLQvdC40LknLFxuICAgICAgICBhZGROb2RlRGlhbG9nTm9kZVR5cGVQYXJhbGxlbDogJ9Cf0LDRgNCw0LvQtdC70YzQvdC40LknLFxuICAgICAgICBhZGROb2RlRGlhbG9nQXBwcm92ZXJUeXBlOiAn0KLQuNC/INGB0YLQstC10YDQtNC20YPQstCw0YfQsCcsXG4gICAgICAgIGFkZE5vZGVEaWFsb2dBcHByb3ZlclR5cGVVc2VyOiAn0JrQvtGA0LjRgdGC0YPQstCw0YcnLFxuICAgICAgICBhZGROb2RlRGlhbG9nQXBwcm92ZXJUeXBlVGVhbUFueW9uZTogJ9CR0YPQtNGMLdGF0YLQviDQsiDQutC+0LzQsNC90LTRlicsXG4gICAgICAgIGFkZE5vZGVEaWFsb2dBcHByb3ZlclR5cGVUZWFtRXZlcnlvbmU6ICfQo9GB0ZYg0LIg0LrQvtC80LDQvdC00ZYnLFxuICAgICAgICBhZGROb2RlRGlhbG9nVXNlck9yVGVhbTogJ9Ca0L7RgNC40YHRgtGD0LLQsNGHL9Ca0L7QvNCw0L3QtNCwJyxcbiAgICAgICAgYWRkTm9kZURpYWxvZ0FkZFRvTmV4dDogJ9CU0L7QtNCw0YLQuCDQtNC+INC90LDRgdGC0YPQv9C90L7Qs9C+INC/0L7RgdC70ZbQtNC+0LLQvdC+0LPQviDQstGD0LfQu9CwJyxcbiAgICAgICAgYWRkTm9kZURpYWxvZ0R1ZURhdGU6ICfQlNCw0YLQsCDQstC40LrQvtC90LDQvdC90Y8nLFxuICAgICAgICBhZGROb2RlU2VhcmNoUGxhY2Vob2xkZXI6ICfQn9C+0YjRg9C6JyxcbiAgICAgICAgYWRkTm9kZUFkZEFjdGlvbkJ0bkxhYmVsOiAn0JTQvtC00LDRgtC4JyxcbiAgICAgICAgYWRkTm9kZUNhbmNlbEFjdGlvbkJ0bkxhYmVsOiAn0KHQutCw0YHRg9Cy0LDRgtC4JyxcbiAgICAgICAgYWRkTm9kZVNlbGVjdEFwcHJvdmVyQWN0aW9uQnRuTGFiZWw6ICfQktC40LHRgNCw0YLQuCcsXG4gICAgICAgIGFkZE5vZGVDYW5jZWxBcHByb3ZlclNlbGVjdGlvbkFjdGlvbkJ0bkxhYmVsOiAn0JLQuNC50YLQuCcsXG4gICAgICAgIGFkZE5vZGVBcHByb3Zlck9yVGVhbURldGFpbHNDbG9zZUFjdGlvbkJ0bkxhYmVsOiAn0JfQsNC60YDQuNGC0LgnLFxuICAgICAgICB1c2VyRGV0YWlsc0hlYWRlcjogJ9CU0LXRgtCw0LvRlicsXG4gICAgICAgIHVzZXJEZXRhaWxzU2VuZFJlbWluZGVyQnRuTGFiZWw6ICfQndCw0LTRltGB0LvQsNGC0Lgg0L3QsNCz0LDQtNGD0LLQsNC90L3RjycsXG4gICAgICAgIHVzZXJEZXRhaWxzQ2FuY2VsQnRuTGFiZWw6ICfQodC60LDRgdGD0LLQsNGC0LgnLFxuICAgICAgICBtZXNzYWdlc0FwcHJvdmVyQWRkZWRTdWNjZXNzOiAnMSDRgdGC0LLQtdGA0LTQttGD0LLQsNGHINC00L7QtNCw0L3QuNC5JyxcbiAgICAgICAgbWVzc2FnZXNUZWFtQWRkZWRTdWNjZXNzOiAnMSDQutC+0LzQsNC90LTQsCDQtNC+0LTQsNC90LAnLFxuICAgICAgICBtZXNzYWdlc05vZGVFZGl0ZWQ6ICcxINGB0YLQstC10YDQtNC20YPQstCw0Ycg0LLRltC00YDQtdC00LDQs9C+0LLQsNC90LjQuScsXG4gICAgICAgIG1lc3NhZ2VzTm9kZVJlbW92ZWRTaW5ndWxhcjogJzEg0YHRgtCy0LXRgNC00LbRg9Cy0LDRhyDQstC40LTQsNC70LXQvdC40LknLFxuICAgICAgICBtZXNzYWdlc05vZGVSZW1vdmVkUGx1cmFsOiAn0KHRgtCy0LXRgNC00LbRg9Cy0LDRh9GWINCy0LjQtNCw0LvQtdC90ZYnLFxuICAgICAgICBtZXNzYWdlc1RlYW1SZW1vdmVkOiAnMSDQutC+0LzQsNC90LTRgyDQstC40LTQsNC70LXQvdC+JyxcbiAgICAgICAgbWVzc2FnZXNFcnJvckJ1aWxkR3JhcGg6ICfQn9GW0LQg0YfQsNGBINGB0L/RgNC+0LHQuCDQv9C+0LHRg9C00YPQstCw0YLQuCDQs9GA0LDRhNGW0Log0YHRgtCw0LvQsNGB0Y8g0L/QvtC80LjQu9C60LAuINCf0LXRgNC10LLRltGA0YLQtSDQstGF0ZbQtNC90ZYg0LTQsNC90ZYuJyxcbiAgICAgICAgbWVzc2FnZXNVbmRvQWN0aW9uOiAn0KHQutCw0YHRg9Cy0LDRgtC4JyxcbiAgICAgICAgbm9kZU1lbWJlcnNDb3VudDogKHBhcmFtcykgPT4ge1xuICAgICAgICAgICAgY29uc3QgY291bnQgPSBwYXJhbXNbJ2NvdW50J107XG4gICAgICAgICAgICBjb25zdCBvcHRpb24gPSBwbHVyYWxpemF0aW9uLnByb2Nlc3MoY291bnQpO1xuICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHtcbiAgICAgICAgICAgICAgICBjYXNlICdvbmUnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYDEg0YfQu9C10L0g0LrQvtC80LDQvdC00LhgO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2Zldyc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtjb3VudH0g0YfQu9C10L3QsCDQutC+0LzQsNC90LTQuGA7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke2NvdW50IHx8IDB9INGH0LvQtdC90ZbQsiDQutC+0LzQsNC90LTQuGA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG5vZGVWYXJpb3VzVGVhbXM6ICfQoNGW0LfQvdGWINC60L7QvNCw0L3QtNC4JyxcbiAgICAgICAgbm9kZVN0YXR1c0R1ZVRvZGF5OiAn0KLQtdGA0LzRltC9INCy0LjQutC+0L3QsNC90L3RjyDRgdGM0L7Qs9C+0LTQvdGWJyxcbiAgICAgICAgbm9kZVN0YXR1c0R1ZUluWERheXM6IChwYXJhbXMpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvdW50ID0gcGFyYW1zWydjb3VudCddO1xuICAgICAgICAgICAgY29uc3Qgb3B0aW9uID0gcGx1cmFsaXphdGlvbi5wcm9jZXNzKGNvdW50KTtcbiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnb25lJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGDQotC10YDQvNGW0L0g0LLQuNC60L7QvdCw0L3QvdGPINGH0LXRgNC10LcgMSDQtNC10L3RjGA7XG4gICAgICAgICAgICAgICAgY2FzZSAnZmV3JzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGDQotC10YDQvNGW0L0g0LLQuNC60L7QvdCw0L3QvdGPINGH0LXRgNC10LcgJHtjb3VudH0g0LTQvdGWYDtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYNCi0LXRgNC80ZbQvSDQstC40LrQvtC90LDQvdC90Y8g0YfQtdGA0LXQtyAke2NvdW50IHx8IDB9INC00L3RltCyYDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbm9kZVN0YXR1c1hEYXlzT3ZlcmR1ZTogKHBhcmFtcykgPT4ge1xuICAgICAgICAgICAgY29uc3QgY291bnQgPSBwYXJhbXNbJ2NvdW50J107XG4gICAgICAgICAgICBjb25zdCBvcHRpb24gPSBwbHVyYWxpemF0aW9uLnByb2Nlc3MoY291bnQpO1xuICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHtcbiAgICAgICAgICAgICAgICBjYXNlICdvbmUnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYNCf0YDQvtGB0YLRgNC+0YfQtdC90L4g0L3QsCAxINC00LXQvdGMYDtcbiAgICAgICAgICAgICAgICBjYXNlICdmZXcnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYNCf0YDQvtGB0YLRgNC+0YfQtdC90L4g0L3QsCAke2NvdW50fSDQtNC90ZZgO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBg0J/RgNC+0YHRgtGA0L7Rh9C10L3QviDQvdCwICR7Y291bnQgfHwgMH0g0LTQvdGW0LJgO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBub2RlQWN0aW9uQWRkQXBwcm92ZXJzQmVmb3JlOiAn0JTQvtC00LDRgtC4INGB0YLQstC10YDQtNC20YPQstCw0YfQsCDQtNC+JyxcbiAgICAgICAgbm9kZUFjdGlvbkFkZEFwcHJvdmVyc0FmdGVyOiAn0JTQvtC00LDRgtC4INGB0YLQstC10YDQtNC20YPQstCw0YfQsCDQv9GW0YHQu9GPJyxcbiAgICAgICAgbm9kZUFjdGlvbkFkZEFwcHJvdmVyc1BhcmFsbGVsOiAn0JTQvtC00LDRgtC4INC/0LDRgNCw0LvQtdC70YzQvdC40YUg0YHRgtCy0LXRgNC00LbRg9Cy0LDRh9GW0LInLFxuICAgICAgICBub2RlQWN0aW9uRWRpdEFwcHJvdmVyOiAn0KDQtdC00LDQs9GD0LLQsNGC0Lgg0YHRgtCy0LXRgNC00LbRg9Cy0LDRh9CwJyxcbiAgICAgICAgbm9kZUFjdGlvblJlbW92ZTogJ9CS0LjQtNCw0LvQuNGC0LgnLFxuICAgICAgICBzZWxlY3RUeXBlRGlhbG9nTW92ZUFwcHJvdmVyQXM6ICfQn9C10YDQtdC80ZbRgdGC0LjRgtC4INGB0YLQstC10YDQtNC20YPQstCw0YfQsCDRj9C6JyxcbiAgICAgICAgc2VsZWN0VHlwZURpYWxvZ1BhcmFsbGVsT3JTZXJpYWw6ICfQn9Cw0YDQsNC70LXQu9GM0L3QuNC5INCw0LHQviDQv9C+0YHQu9GW0LTQvtCy0L3QuNC5JyxcbiAgICAgICAgc2VsZWN0VHlwZURpYWxvZ05vZGVUeXBlUGFyYWxsZWw6ICfQn9Cw0YDQsNC70LXQu9GM0L3QuNC5INGB0YLQstC10YDQtNC20YPQstCw0YcnLFxuICAgICAgICBzZWxlY3RUeXBlRGlhbG9nTm9kZVR5cGVTZXJpYWw6ICfQn9C+0YHQu9GW0LTQvtCy0L3QuNC5INGB0YLQstC10YDQtNC20YPQstCw0YcnLFxuICAgICAgICBzZWxlY3RUeXBlRGlhbG9nQ29uZmlybUJ1dHRvbjogJ9Cf0ZbQtNGC0LLQtdGA0LTQuNGC0LgnLFxuICAgICAgICBzZWxlY3RUeXBlRGlhbG9nQ2FuY2VsQnV0dG9uOiAn0KHQutCw0YHRg9Cy0LDRgtC4JyxcbiAgICAgICAgdG9vbGJhckFkZFN0ZXBCdXR0b246ICfQlNC+0LTQsNGC0Lgg0LrRgNC+0LonLFxuICAgICAgICB0b29sYmFyRWRpdEJ1dHRvbjogJ9Cg0LXQtNCw0LPRg9Cy0LDRgtC4JyxcbiAgICAgICAgdG9vbGJhckFkZEFwcHJvdmVyc0JlZm9yZTogJ9CU0L7QtNCw0YLQuCDRgdGC0LLQtdGA0LTQttGD0LLQsNGH0ZbQsiDQtNC+JyxcbiAgICAgICAgdG9vbGJhckFkZEFwcHJvdmVyc0FmdGVyOiAn0JTQvtC00LDRgtC4INGB0YLQstC10YDQtNC20YPQstCw0YfRltCyINC/0ZbRgdC70Y8nLFxuICAgICAgICB0b29sYmFyQWRkQXBwcm92ZXJzUGFyYWxsZWw6ICfQlNC+0LTQsNGC0Lgg0L/QsNGA0LDQu9C10LvRjNC90LjRhSDRgdGC0LLQtdGA0LTQttGD0LLQsNGH0ZbQsicsXG4gICAgICAgIHRvb2xiYXJSZW1vdmU6ICfQktC40LTQsNC70LjRgtC4JyxcbiAgICAgICAgdG9vbGJhckVkaXRBcHByb3ZlcjogJ9Cg0LXQtNCw0LPRg9Cy0LDRgtC4INGB0YLQstC10YDQtNC20YPQstCw0YfQsCcsXG4gICAgICAgIHdhdGNoZXJzSW5wdXRQbGFjZWhvbGRlcjogJ9Cf0L7RiNGD0LonLFxuICAgICAgICB1c2VyTGlzdFNlbGVjdGVkSXRlbXNDb3VudFNpbmd1bGFyOiAn0JLQuNCx0YDQsNC90L4gMSDQtdC70LXQvNC10L3RgicsXG4gICAgICAgIHVzZXJMaXN0U2VsZWN0ZWRJdGVtc0NvdW50UGx1cmFsOiAocGFyYW1zKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb3VudCA9IHBhcmFtc1snY291bnQnXTtcbiAgICAgICAgICAgIGNvbnN0IG9wdGlvbiA9IHBsdXJhbGl6YXRpb24ucHJvY2Vzcyhjb3VudCk7XG4gICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikge1xuICAgICAgICAgICAgICAgIGNhc2UgJ29uZSc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBg0JLQuNCx0YDQsNC90L4gMSDQtdC70LXQvNC10L3RgmA7XG4gICAgICAgICAgICAgICAgY2FzZSAnZmV3JzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGDQktC40LHRgNCw0L3QviAke2NvdW50fSDQtdC70LXQvNC10L3RgtC4YDtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYNCS0LjQsdGA0LDQvdC+ICR7Y291bnQgfHwgMH0g0LXQu9C10LzQtdC90YLRltCyYDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgc3RhdHVzQXBwcm92ZWQ6ICfQt9Cw0YLQstC10YDQtNC20LXQvdC+JyxcbiAgICAgICAgc3RhdHVzUmVqZWN0ZWQ6ICfQstGW0LTRhdC40LvQtdC90L4nLFxuICAgICAgICBzdGF0dXNJblByb2dyZXNzOiAn0LIg0L/RgNC+0YbQtdGB0ZYnLFxuICAgICAgICBzdGF0dXNOb3RTdGFydGVkOiAn0L3QtSDRgNC+0LfQv9C+0YfQsNGC0L4nXG4gICAgfSxcbiAgICBwbGF0Zm9ybUZlZWRJbnB1dDoge1xuICAgICAgICB1c2VyVGl0bGU6ICfQmtC+0YDQuNGB0YLRg9Cy0LDRhydcbiAgICB9LFxuICAgIHBsYXRmb3JtVkhEOiB7XG4gICAgICAgIHNlbGVjdGlvbkJhckxhYmVsOiAn0JLQuNCx0YDQsNC90ZYg0LXQu9C10LzQtdC90YLQuCDRgtCwINGD0LzQvtCy0LgnLFxuICAgICAgICBzZWxlY3RlZEFuZENvbmRpdGlvbkxhYmVsOiAn0JLQuNCx0YDQsNC90ZYg0LXQu9C10LzQtdC90YLQuCDRgtCwINGD0LzQvtCy0LgnLFxuICAgICAgICBmb290ZXJDbGVhclNlbGVjdGVkVGl0bGU6ICfQvtGH0LjRgdGC0LjRgtC4INCy0LjQsdGA0LDQvdGWINC10LvQtdC80LXQvdGC0LgnLFxuICAgICAgICBmb290ZXJDbGVhclNlbGVjdGVkQXJpYUxhYmVsOiAn0L7Rh9C40YHRgtC40YLQuCDQstC40LHRgNCw0L3RliDQtdC70LXQvNC10L3RgtC4JyxcbiAgICAgICAgc2VhcmNoQnV0dG9uTGFiZWw6ICfQn9C+0YjRg9C6JyxcbiAgICAgICAgc3VjY2Vzc0J1dHRvbkxhYmVsOiAnT0snLFxuICAgICAgICBjYW5jZWxCdXR0b25MYWJlbDogJ9Ch0LrQsNGB0YPQstCw0YLQuCcsXG4gICAgICAgIHNlbGVjdGVkRW1wdHlMYWJlbDogJ9Cd0LUg0LLQuNCx0YDQsNC90L4g0LbQvtC00L3QuNGFINC10LvQtdC80LXQvdGC0ZbQsiDQsNCx0L4g0YPQvNC+0LInLFxuICAgICAgICBzZWFyY2hQbGFjZWhvbGRlcjogJ9Cf0L7RiNGD0LonLFxuICAgICAgICBzZWFyY2hBZHZhbmNlZFNlYXJjaExhYmVsOiAn0KTRltC70YzRgtGA0LgnLFxuICAgICAgICBzZWFyY2hTaG93QWR2YW5jZWRTZWFyY2hMYWJlbDogJ9Cf0L7QutCw0LfQsNGC0Lgg0YTRltC70YzRgtGA0LgnLFxuICAgICAgICBzZWFyY2hIaWRlQWR2YW5jZWRTZWFyY2hMYWJlbDogJ9Ch0YXQvtCy0LDRgtC4INGE0ZbQu9GM0YLRgNC4JyxcbiAgICAgICAgc2VhcmNoU2hvd0FsbEFkdmFuY2VkU2VhcmNoTGFiZWw6ICfQn9C+0LrQsNC30LDRgtC4INCy0YHRliDRhNGW0LvRjNGC0YDQuCcsXG4gICAgICAgIHNlYXJjaEhpZGVBbGxBZHZhbmNlZFNlYXJjaExhYmVsOiAn0KHRhdC+0LLQsNGC0Lgg0LLRgdGWINGE0ZbQu9GM0YLRgNC4JyxcbiAgICAgICAgc2VsZWN0VGFiRGlzcGxheUNvdW50TGFiZWw6ICfQldC70LXQvNC10L3RgtC4ICh7eyBjb3VudCB9fSknLFxuICAgICAgICBzZWxlY3RUYWJNb3JlQnRuTGFiZWw6ICfQkdGW0LvRjNGI0LUnLFxuICAgICAgICBzZWxlY3RUYWJDb3VudEhpZGRlbkExMXlMYWJlbDogKHBhcmFtcykgPT4ge1xuICAgICAgICAgICAgY29uc3Qgcm93Q291bnQgPSBwYXJhbXNbJ3Jvd0NvdW50J107XG4gICAgICAgICAgICBjb25zdCByb3dPcHRpb24gPSBwbHVyYWxpemF0aW9uLnByb2Nlc3Mocm93Q291bnQpO1xuICAgICAgICAgICAgbGV0IHJvd1BhcnQ6IHN0cmluZztcbiAgICAgICAgICAgIHN3aXRjaCAocm93T3B0aW9uKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnb25lJzpcbiAgICAgICAgICAgICAgICAgICAgcm93UGFydCA9ICfQvNGW0YHRgtC40YLRjCAxINGA0Y/QtCc7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2Zldyc6XG4gICAgICAgICAgICAgICAgICAgIHJvd1BhcnQgPSBg0LzRltGB0YLQuNGC0YwgJHtyb3dDb3VudH0g0YDRj9C00LhgO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICByb3dQYXJ0ID0gYNC80ZbRgdGC0LjRgtGMICR7cm93Q291bnR9INGA0Y/QtNGW0LJgO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGNvbENvdW50ID0gcGFyYW1zWydjb2xDb3VudCddO1xuICAgICAgICAgICAgY29uc3QgY29sT3B0aW9uID0gcGx1cmFsaXphdGlvbi5wcm9jZXNzKGNvbENvdW50KTtcbiAgICAgICAgICAgIGxldCBjb2xQYXJ0OiBzdHJpbmc7XG4gICAgICAgICAgICBzd2l0Y2ggKGNvbE9wdGlvbikge1xuICAgICAgICAgICAgICAgIGNhc2UgJ29uZSc6XG4gICAgICAgICAgICAgICAgICAgIGNvbFBhcnQgPSAnMSDQutC+0LvQvtC90LrRgyc7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2Zldyc6XG4gICAgICAgICAgICAgICAgICAgIGNvbFBhcnQgPSBgJHtjb2xDb3VudH0g0LrQvtC70L7QvdC60LhgO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBjb2xQYXJ0ID0gYCR7Y29sQ291bnR9INC60L7Qu9C+0L3QvtC6YDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gYCR7cm93UGFydH0g0ZYgJHtjb2xQYXJ0fWA7XG4gICAgICAgIH0sXG4gICAgICAgIHNlbGVjdE1vYmlsZVRhYkJhY2tCdG5UaXRsZTogJ9Cd0LDQt9Cw0LQnLFxuICAgICAgICBzZWxlY3RNb2JpbGVUYWJCdG5PcGVuRGlhbG9nTGFiZWw6ICfQktGW0LTQutGA0LjRgtC4INC00ZbQsNC70L7Qs9C+0LLQtSDQstGW0LrQvdC+JyxcbiAgICAgICAgc2VsZWN0TW9iaWxlVGFiVGl0bGU6ICd7eyB0aXRsZSB9fSDQstC60LvQsNC00LrQsCcsXG4gICAgICAgIHNlbGVjdE1vYmlsZUNvbmRpdGlvbkVtcHR5OiAn0J/Rg9GB0YLQvicsXG4gICAgICAgIGRlZmluZUNvbmRpdGlvblRpdGxlOiAn0J/RgNC+0LTRg9C60YInLFxuICAgICAgICBkZWZpbmVDb25kaXRpb25TZWxlY3RlZFZhbHVlSGlkZGVuQTExeUxhYmVsOiAn0LLQuNCx0YDQsNC90LUg0LfQvdCw0YfQtdC90L3RjyB7eyB2YWx1ZSB9fScsXG4gICAgICAgIGRlZmluZUNvbmRpdGlvbkNvbmRpdGlvbnNHcm91cEhlYWRlckluY2x1ZGU6ICfQktC60LvRjtGH0L3RliDRg9C80L7QstC4JyxcbiAgICAgICAgZGVmaW5lQ29uZGl0aW9uQ29uZGl0aW9uc0dyb3VwSGVhZGVyRXhjbHVkZTogJ9CS0LjQutC70Y7Rh9C90ZYg0YPQvNC+0LLQuCcsXG4gICAgICAgIGRlZmluZUNvbmRpdGlvbkZyb21QbGFjZWhvbGRlcjogJ9Cy0ZbQtCcsXG4gICAgICAgIGRlZmluZUNvbmRpdGlvblRvUGxhY2Vob2xkZXI6ICfQtNC+JyxcbiAgICAgICAgZGVmaW5lQ29uZGl0aW9uVmFsdWVQbGFjZWhvbGRlcjogJ9C30L3QsNGH0LXQvdC90Y8nLFxuICAgICAgICBkZWZpbmVDb25kaXRpb25SZW1vdmVDb25kaXRpb25CdXR0b25UaXRsZTogJ9CS0LjQtNCw0LvQuNGC0Lgg0YPQvNC+0LLRgycsXG4gICAgICAgIGRlZmluZUNvbmRpdGlvbkFkZENvbmRpdGlvbkJ1dHRvbkxhYmVsOiAn0JTQvtC00LDRgtC4JyxcbiAgICAgICAgZGVmaW5lQ29uZGl0aW9uQWRkQ29uZGl0aW9uQnV0dG9uVGl0bGU6ICfQlNC+0LTQsNGC0Lgg0YPQvNC+0LLRgycsXG4gICAgICAgIGRlZmluZUNvbmRpdGlvbkNvbmRpdGlvblN0cmF0ZWd5TGFiZWxDb250YWluczogJ9C80ZbRgdGC0LjRgtGMJyxcbiAgICAgICAgZGVmaW5lQ29uZGl0aW9uQ29uZGl0aW9uU3RyYXRlZ3lMYWJlbEVxdWFsVG86ICfQtNC+0YDRltCy0L3RjtGUJyxcbiAgICAgICAgZGVmaW5lQ29uZGl0aW9uQ29uZGl0aW9uU3RyYXRlZ3lMYWJlbEJldHdlZW46ICfQvNGW0LYnLFxuICAgICAgICBkZWZpbmVDb25kaXRpb25Db25kaXRpb25TdHJhdGVneUxhYmVsU3RhcnRzV2l0aDogJ9C/0L7Rh9C40L3QsNGU0YLRjNGB0Y8g0LcnLFxuICAgICAgICBkZWZpbmVDb25kaXRpb25Db25kaXRpb25TdHJhdGVneUxhYmVsRW5kc1dpdGg6ICfQt9Cw0LrRltC90YfRg9GU0YLRjNGB0Y8g0L3QsCcsXG4gICAgICAgIGRlZmluZUNvbmRpdGlvbkNvbmRpdGlvblN0cmF0ZWd5TGFiZWxMZXNzVGhhbjogJ9C80LXQvdGI0LUg0L3RltC2JyxcbiAgICAgICAgZGVmaW5lQ29uZGl0aW9uQ29uZGl0aW9uU3RyYXRlZ3lMYWJlbExlc3NUaGFuRXF1YWw6ICfQvNC10L3RiNC1INC90ZbQtiDQsNCx0L4g0LTQvtGA0ZbQstC90Y7RlCcsXG4gICAgICAgIGRlZmluZUNvbmRpdGlvbkNvbmRpdGlvblN0cmF0ZWd5TGFiZWxHcmVhdGVyVGhhbjogJ9Cx0ZbQu9GM0YjQtSDQvdGW0LYnLFxuICAgICAgICBkZWZpbmVDb25kaXRpb25Db25kaXRpb25TdHJhdGVneUxhYmVsR3JlYXRlclRoYW5FcXVhbDogJ9Cx0ZbQu9GM0YjQtSDQvdGW0LYg0LDQsdC+INC00L7RgNGW0LLQvdGO0ZQnLFxuICAgICAgICBkZWZpbmVDb25kaXRpb25Db25kaXRpb25TdHJhdGVneUxhYmVsRW1wdHk6ICfQv9C+0YDQvtC20L3RlCcsXG4gICAgICAgIGRlZmluZUNvbmRpdGlvbkNvbmRpdGlvblN0cmF0ZWd5TGFiZWxOb3RFcXVhbFRvOiAn0L3QtSDQtNC+0YDRltCy0L3RjtGUJyxcbiAgICAgICAgZGVmaW5lQ29uZGl0aW9uQ29uZGl0aW9uU3RyYXRlZ3lMYWJlbE5vdEVtcHR5OiAn0L3QtSDQv9C+0YDQvtC20L3RlCcsXG4gICAgICAgIGRlZmluZUNvbmRpdGlvbk1heENvdW50RXJyb3I6IChwYXJhbXMpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvdW50ID0gcGFyYW1zWydjb3VudCddO1xuICAgICAgICAgICAgY29uc3Qgb3B0aW9uID0gcGx1cmFsaXphdGlvbi5wcm9jZXNzKGNvdW50KTtcbiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnb25lJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGDQktCy0LXQtNGW0YLRjCDQt9C90LDRh9C10L3QvdGPINC90LUg0LHRltC70YzRiNC1INC90ZbQtiAxINGB0LjQvNCy0L7Qu9GDYDtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYNCS0LLQtdC00ZbRgtGMINC30L3QsNGH0LXQvdC90Y8g0L3QtSDQsdGW0LvRjNGI0LUg0L3RltC2ICR7Y291bnQgfHwgMH0g0YHQuNC80LLQvtC70ZbQsmA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHNlbGVjdFRhYlRpdGxlOiAn0JLQuNCx0YDQsNGC0Lgg0LfRliDRgdC/0LjRgdC60YMnLFxuICAgICAgICBzZWFyY2hUYWJsZUVtcHR5TWVzc2FnZTogJ9CS0LjQutC+0YDQuNGB0YLQvtCy0YPQudGC0LUg0L/QvtGI0YPQuiwg0YnQvtCxINC+0YLRgNC40LzQsNGC0Lgg0YDQtdC30YPQu9GM0YLQsNGC0LgnLFxuICAgICAgICBkZWZpbmVUYWJUaXRsZTogJ9CS0LjQt9C90LDRh9C40YLQuCDRg9C80L7QstC4J1xuICAgIH0sXG4gICAgcGxhdGZvcm1Db21ib2JveDoge1xuICAgICAgICBjb3VudExpc3RSZXN1bHRzU2luZ3VsYXI6ICcxINC10LvQtdC80LXQvdGCJyxcbiAgICAgICAgY291bnRMaXN0UmVzdWx0c1BsdXJhbDogKHBhcmFtcykgPT4ge1xuICAgICAgICAgICAgY29uc3QgY291bnQgPSBwYXJhbXNbJ2NvdW50J107XG4gICAgICAgICAgICBjb25zdCBvcHRpb24gPSBwbHVyYWxpemF0aW9uLnByb2Nlc3MoY291bnQpO1xuICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHtcbiAgICAgICAgICAgICAgICBjYXNlICdvbmUnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYDEg0LXQu9C10LzQtdC90YJgO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2Zldyc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtjb3VudH0g0LXQu9C10LzQtdC90YLQuGA7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke2NvdW50IHx8IDB9INC10LvQtdC80LXQvdGC0ZbQsmA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LFxuICAgIHBsYXRmb3JtTXVsdGlDb21ib2JveDoge1xuICAgICAgICBpbnB1dEdseXBoQXJpYUxhYmVsOiAn0JLQuNCx0YDQsNGC0Lgg0L7Qv9GG0ZbRlycsXG4gICAgICAgIGlucHV0SWNvblRpdGxlOiAn0JLQuNCx0YDQsNGC0Lgg0L7Qv9GG0ZbRlycsXG4gICAgICAgIG1vYmlsZVNob3dBbGxJdGVtc0J1dHRvbjogJ9Cf0L7QutCw0LfQsNGC0Lgg0LLRgdGWINC10LvQtdC80LXQvdGC0LgnLFxuICAgICAgICBtb2JpbGVTaG93U2VsZWN0ZWRJdGVtc0J1dHRvbjogJ9Cf0L7QutCw0LfQsNGC0Lgg0LLQuNCx0YDQsNC90ZYg0LXQu9C10LzQtdC90YLQuCdcbiAgICB9LFxuICAgIHBsYXRmb3JtVGV4dGFyZWE6IHtcbiAgICAgICAgY291bnRlck1lc3NhZ2VDaGFyYWN0ZXJzT3ZlclRoZUxpbWl0U2luZ3VsYXI6ICfQn9C10YDQtdCy0LjRidC10L3QviDQu9GW0LzRltGCINC90LAgMSDRgdC40LzQstC+0LsnLFxuICAgICAgICBjb3VudGVyTWVzc2FnZUNoYXJhY3RlcnNPdmVyVGhlTGltaXRQbHVyYWw6IChwYXJhbXMpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvdW50ID0gcGFyYW1zWydjb3VudCddO1xuICAgICAgICAgICAgY29uc3Qgb3B0aW9uID0gcGx1cmFsaXphdGlvbi5wcm9jZXNzKGNvdW50KTtcbiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnb25lJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGDQn9C10YDQtdCy0LjRidC10L3QviDQu9GW0LzRltGCINC90LAgMSDRgdC40LzQstC+0LtgO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2Zldyc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBg0J/QtdGA0LXQstC40YnQtdC90L4g0LvRltC80ZbRgiDQvdCwICR7Y291bnR9INGB0LjQvNCy0L7Qu9C4YDtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYNCf0LXRgNC10LLQuNGJ0LXQvdC+INC70ZbQvNGW0YIg0L3QsCAke2NvdW50IHx8IDB9INGB0LjQvNCy0L7Qu9GW0LJgO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBjb3VudGVyTWVzc2FnZUNoYXJhY3RlcnNSZW1haW5pbmdTaW5ndWxhcjogJ9CX0LDQu9C40YjQuNCy0YHRjyAxINGB0LjQvNCy0L7QuycsXG4gICAgICAgIGNvdW50ZXJNZXNzYWdlQ2hhcmFjdGVyc1JlbWFpbmluZ1BsdXJhbDogKHBhcmFtcykgPT4ge1xuICAgICAgICAgICAgY29uc3QgY291bnQgPSBwYXJhbXNbJ2NvdW50J107XG4gICAgICAgICAgICBjb25zdCBvcHRpb24gPSBwbHVyYWxpemF0aW9uLnByb2Nlc3MoY291bnQpO1xuICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHtcbiAgICAgICAgICAgICAgICBjYXNlICdvbmUnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYNCX0LDQu9C40YjQuNC70L7RgdGMIDEg0YHQuNC80LLQvtC7YDtcbiAgICAgICAgICAgICAgICBjYXNlICdmZXcnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYNCX0LDQu9C40YjQuNC70L7RgdGMICR7Y291bnR9INGB0LjQvNCy0L7Qu9C4YDtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYNCX0LDQu9C40YjQuNC70L7RgdGMICR7Y291bnQgfHwgMH0g0YHQuNC80LLQvtC70ZbQsmA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LFxuICAgIHBsYXRmb3JtTGluazoge1xuICAgICAgICByb2xlRGVzY3JpcHRpb25XaXRoTWVkaWE6ICfQnNC10LTRltCwOiB7eyBtZWRpYSB9fSdcbiAgICB9LFxuICAgIHBsYXRmb3JtTGlzdDoge1xuICAgICAgICBsb2FkaW5nQXJpYUxhYmVsOiAn0LfQsNCy0LDQvdGC0LDQttC10L3QvdGPJ1xuICAgIH0sXG4gICAgcGxhdGZvcm1PYmplY3RMaXN0SXRlbToge1xuICAgICAgICBkZXRhaWxzQWN0aW9uQXJpYUxhYmVsOiAn0LTQtdGC0LDQu9GWJyxcbiAgICAgICAgZGVsZXRlQWN0aW9uQXJpYUxhYmVsOiAn0LLQuNC00LDQu9C40YLQuCdcbiAgICB9LFxuICAgIHBsYXRmb3JtU3RhbmRhcmRMaXN0SXRlbToge1xuICAgICAgICBkZXRhaWxzQWN0aW9uQXJpYUxhYmVsOiAn0LTQtdGC0LDQu9GWJyxcbiAgICAgICAgZGVsZXRlQWN0aW9uQXJpYUxhYmVsOiAn0LLQuNC00LDQu9C40YLQuCdcbiAgICB9LFxuICAgIHBsYXRmb3JtU2VhcmNoRmllbGQ6IHtcbiAgICAgICAgY2xlYXJCdXR0b25UaXRsZTogJ9Ce0YfQuNGB0YLQuNGC0LgnLFxuICAgICAgICBzdWJtaXRCdXR0b25UaXRsZTogJ9Cf0L7RiNGD0LonLFxuICAgICAgICBzZWFyY2hJbnB1dExhYmVsOiAn0J/QvtGI0YPQuicsXG4gICAgICAgIHN5bmNocm9uaXplQnV0dG9uVGl0bGU6ICfQodC40L3RhdGA0L7QvdGW0LfRg9Cy0LDRgtC4JyxcbiAgICAgICAgc2VhcmNoU3VnZ2VzdGlvbk1lc3NhZ2U6IChwYXJhbXMpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvdW50ID0gcGFyYW1zWydjb3VudCddO1xuICAgICAgICAgICAgY29uc3Qgb3B0aW9uID0gcGx1cmFsaXphdGlvbi5wcm9jZXNzKGNvdW50KTtcbiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnb25lJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGDQl9C90LDQudC00LXQvdC+IDEg0LLQsNGA0ZbQsNC90YJgO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2Zldyc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBg0JfQvdCw0LnQtNC10L3QviAke2NvdW50fSDQstCw0YDRltCw0L3RgtC4YDtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYNCX0L3QsNC50LTQtdC90L4gJHtjb3VudCB8fCAwfSDQstCw0YDRltCw0L3RgtGW0LJgO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBzZWFyY2hTdWdnZXN0aW9uTmF2aWdhdGVNZXNzYWdlOiAn0LLQuNC60L7RgNC40YHRgtC+0LLRg9C50YLQtSDRgdGC0YDRltC70LrQuCDQstCz0L7RgNGDINGC0LAg0LLQvdC40Lcg0LTQu9GPINC90LDQstGW0LPQsNGG0ZbRlydcbiAgICB9LFxuICAgIHBsYXRmb3JtU21hcnRGaWx0ZXJCYXI6IHtcbiAgICAgICAgc2VhcmNoUGxhY2Vob2xkZXI6ICfQn9C+0YjRg9C6JyxcbiAgICAgICAgc3VibWl0QnV0dG9uTGFiZWw6ICfQn9C10YDQtdC50YLQuCcsXG4gICAgICAgIGZpbHRlcnNCdXR0b25MYWJlbDogJ9Ck0ZbQu9GM0YLRgNC4ICh7eyBmaWx0ZXJzQ291bnQgfX0pJyxcbiAgICAgICAgc2hvd0ZpbHRlcnNCdXR0b25MYWJlbDogJ9Cf0L7QutCw0LfQsNGC0Lgg0YTRltC70YzRgtGA0LgnLFxuICAgICAgICBoaWRlRmlsdGVyc0J1dHRvbkxhYmVsOiAn0KHRhdC+0LLQsNGC0Lgg0YTRltC70YzRgtGA0LgnLFxuICAgICAgICBkZWZpbmVDb25kaXRpb25zUmVtb3ZlQ29uZGl0aW9uQnV0dG9uVGl0bGU6ICfQktC40LTQsNC70LjRgtC4INGD0LzQvtCy0YMnLFxuICAgICAgICBkZWZpbmVDb25kaXRpb25zQWRkQ29uZGl0aW9uQnV0dG9uTGFiZWw6ICfQlNC+0LTQsNGC0Lgg0YPQvNC+0LLRgycsXG4gICAgICAgIGRlZmluZUNvbmRpdGlvbnNTdWJtaXRCdXR0b25MYWJlbDogJ9Cf0LXRgNC10LnRgtC4JyxcbiAgICAgICAgZGVmaW5lQ29uZGl0aW9uc0NhbmNlbEJ1dHRvbjogJ9Ch0LrQsNGB0YPQstCw0YLQuCcsXG4gICAgICAgIHNlbGVjdEZpbHRlcnNIZWFkZXI6ICfQpNGW0LvRjNGC0YDQuCcsXG4gICAgICAgIHNlbGVjdEZpbHRlcnNBdmFpbGFibGVGaWx0ZXJzVGV4dDogJ9CU0L7RgdGC0YPQv9C90ZYg0YTRltC70YzRgtGA0LgnLFxuICAgICAgICBzZWxlY3RGaWx0ZXJzRmlsdGVyQ29sdW1uTGFiZWw6ICfQpNGW0LvRjNGC0YAnLFxuICAgICAgICBzZWxlY3RGaWx0ZXJzQWN0aXZlQ29sdW1uTGFiZWw6ICfQkNC60YLQuNCy0L3QuNC5JyxcbiAgICAgICAgc2VsZWN0RmlsdGVyc1N1Ym1pdEJ1dHRvbkxhYmVsOiAn0J/QtdGA0LXQudGC0LgnLFxuICAgICAgICBzZWxlY3RGaWx0ZXJzQ2FuY2VsQnV0dG9uOiAn0KHQutCw0YHRg9Cy0LDRgtC4JyxcbiAgICAgICAgZmlsdGVyQ29uZGl0aW9uQ29udGFpbnM6ICfQvNGW0YHRgtC40YLRjCcsXG4gICAgICAgIGZpbHRlckNvbmRpdGlvbkVxdWFsVG86ICfQtNC+0YDRltCy0L3RjtGUJyxcbiAgICAgICAgZmlsdGVyQ29uZGl0aW9uQmV0d2VlbjogJ9C80ZbQticsXG4gICAgICAgIGZpbHRlckNvbmRpdGlvbkJlZ2luc1dpdGg6ICfQv9C+0YfQuNC90LDRlNGC0YzRgdGPINC3JyxcbiAgICAgICAgZmlsdGVyQ29uZGl0aW9uRW5kc1dpdGg6ICfQt9Cw0LrRltC90YfRg9GU0YLRjNGB0Y8nLFxuICAgICAgICBmaWx0ZXJDb25kaXRpb25MZXNzVGhhbjogJ9C80LXQvdGI0LUg0L3RltC2JyxcbiAgICAgICAgZmlsdGVyQ29uZGl0aW9uTGVzc1RoYW5PckVxdWFsVG86ICfQvNC10L3RiNC1INCw0LHQviDQvtC00L3QvicsXG4gICAgICAgIGZpbHRlckNvbmRpdGlvbkdyZWF0ZXJUaGFuOiAn0LHRltC70YzRiNC1INC90ZbQticsXG4gICAgICAgIGZpbHRlckNvbmRpdGlvbkdyZWF0ZXJUaGFuT3JFcXVhbFRvOiAn0LHRltC70YzRiNC1INCw0LHQviDQtNC+0YDRltCy0L3RjtGUJyxcbiAgICAgICAgZmlsdGVyQ29uZGl0aW9uQWZ0ZXI6ICfQv9GW0YHQu9GPJyxcbiAgICAgICAgZmlsdGVyQ29uZGl0aW9uT25PckFmdGVyOiAn0LTQvtGA0ZbQstC90Y7RlCDQsNCx0L4g0L/RltGB0LvRjycsXG4gICAgICAgIGZpbHRlckNvbmRpdGlvbkJlZm9yZTogJ9C00L4nLFxuICAgICAgICBmaWx0ZXJDb25kaXRpb25CZWZvcmVPck9uOiAn0LTQviDQsNCx0L4g0LTQvtGA0ZbQstC90Y7RlCcsXG4gICAgICAgIGZpbHRlckNvbmRpdGlvblZhbHVlUGxhY2Vob2xkZXI6ICfQt9C90LDRh9C10L3QvdGPJyxcbiAgICAgICAgZmlsdGVyQ29uZGl0aW9uVmFsdWVGcm9tUGxhY2Vob2xkZXI6ICfQstGW0LQnLFxuICAgICAgICBmaWx0ZXJDb25kaXRpb25WYWx1ZVRvUGxhY2Vob2xkZXI6ICfQtNC+JyxcbiAgICAgICAgc2V0dGluZ3NDYXRlZ29yeUFsbDogJ9CS0YHRlicsXG4gICAgICAgIHNldHRpbmdzQ2F0ZWdvcnlWaXNpYmxlOiAn0JLQuNC00LjQvNGWJyxcbiAgICAgICAgc2V0dGluZ3NDYXRlZ29yeUFjdGl2ZTogJ9CQ0LrRgtC40LLQvdGWJyxcbiAgICAgICAgc2V0dGluZ3NDYXRlZ29yeVZpc2libGVBbmRBY3RpdmU6ICfQktC40LTQuNC80ZYg0YLQsCDQsNC60YLQuNCy0L3RlicsXG4gICAgICAgIHNldHRpbmdzQ2F0ZWdvcnlNYW5kYXRvcnk6IFwi0J7QsdC+0LIn0Y/Qt9C60L7QstGWXCIsXG4gICAgICAgIG1hbmFnZUZpZWxkQ29uZGl0aW9uczogJ9Cf0L7QutCw0LfQsNGC0Lgg0YPQvNC+0LLQuCDQtNC70Y8g0L/QvtC70Y8nLFxuICAgICAgICByZWZyZXNoQnV0dG9uQXJpYUxhYmVsOiAn0J7QvdC+0LLQuNGC0LgnXG4gICAgfSxcbiAgICBwbGF0Zm9ybVRhYmxlOiB7XG4gICAgICAgIGhlYWRlck1lbnVTb3J0QXNjOiAn0KHQvtGA0YLRg9Cy0LDRgtC4INC30LAg0LfRgNC+0YHRgtCw0L3QvdGP0LwnLFxuICAgICAgICBoZWFkZXJNZW51U29ydERlc2M6ICfQodC+0YDRgtGD0LLQsNGC0Lgg0LfQsCDRgdC/0LDQtNCw0L3QvdGP0LwnLFxuICAgICAgICBoZWFkZXJNZW51R3JvdXA6ICfQodCz0YDRg9C/0YPQstCw0YLQuCcsXG4gICAgICAgIGhlYWRlck1lbnVGcmVlemU6ICfQl9Cw0LzQvtGA0L7Qt9C40YLQuCcsXG4gICAgICAgIGhlYWRlck1lbnVFbmRGcmVlemU6ICdGcmVlemUgdG8gRW5kJyxcbiAgICAgICAgaGVhZGVyTWVudVVuZnJlZXplOiAn0KDQvtC30LzQvtGA0L7Qt9C40YLQuCcsXG4gICAgICAgIGhlYWRlck1lbnVGaWx0ZXI6ICfQpNGW0LvRjNGC0YAnLFxuICAgICAgICBkZWZhdWx0RW1wdHlNZXNzYWdlOiAn0J3RltGH0L7Qs9C+INC90LUg0LfQvdCw0LnQtNC10L3QvicsXG4gICAgICAgIGVtcHR5Q2VsbDogJ0VtcHR5JyxcbiAgICAgICAgbm9WaXNpYmxlQ29sdW1uc01lc3NhZ2U6XG4gICAgICAgICAgICAn0J3QsCDQtNCw0L3QuNC5INC80L7QvNC10L3RgiDRgyDRgtCw0LHQu9C40YbRliDQvdC10LzQsNGUINCy0LjQtNC40LzQuNGFINGB0YLQvtCy0L/RhtGW0LIuINCS0LjQsdC10YDRltGC0Ywg0L/QvtGC0YDRltCx0L3RliDRgdGC0L7QstC/0YbRliDQsiDQvdCw0LvQsNGI0YLRg9Cy0LDQvdC90Y/RhSDRgtCw0LHQu9C40YbRli4nLFxuICAgICAgICByZXNldENoYW5nZXNCdXR0b25MYWJlbDogJ9Ch0LrQuNC90YPRgtC4JyxcbiAgICAgICAgZWRpdGFibGVDZWxsTnVtYmVyUGxhY2Vob2xkZXI6ICfQktCy0LXQtNGW0YLRjCDQt9C90LDRh9C10L3QvdGPJyxcbiAgICAgICAgZWRpdGFibGVDZWxsRGF0ZVBsYWNlaG9sZGVyOiAn0JLQstC10LTRltGC0Ywg0LfQvdCw0YfQtdC90L3RjycsXG4gICAgICAgIGVkaXRhYmxlQ2VsbFN0cmluZ1BsYWNlaG9sZGVyOiAn0JLQstC10LTRltGC0Ywg0LfQvdCw0YfQtdC90L3RjycsXG4gICAgICAgIFAxM0NvbHVtbnNEaWFsb2dIZWFkZXI6ICfQodGC0L7QstC/0YbRlicsXG4gICAgICAgIFAxM0NvbHVtbnNEaWFsb2dTZWFyY2hQbGFjZWhvbGRlcjogJ9Cf0L7RiNGD0LonLFxuICAgICAgICBQMTNDb2x1bW5zRGlhbG9nc1Nob3dTZWxlY3RlZDogJ9Cf0L7QutCw0LfQsNGC0Lgg0LLQuNCx0YDQsNC90LUnLFxuICAgICAgICBQMTNDb2x1bW5zRGlhbG9nU2hvd0FsbDogJ9Cf0L7QutCw0LfQsNGC0Lgg0LLRgdC1JyxcbiAgICAgICAgUDEzQ29sdW1uc0RpYWxvZ1NlbGVjdEFsbDogJ9CS0LjQsdGA0LDRgtC4INCy0YHRliAoe3sgc2VsZWN0ZWRDb2x1bW5zQ291bnQgfX0ve3sgc2VsZWN0YWJsZUNvbHVtbnNDb3VudCB9fSknLFxuICAgICAgICBQMTNDb2x1bW5zRGlhbG9nQ29uZmlybWF0aW9uQnRuTGFiZWw6ICdPSycsXG4gICAgICAgIFAxM0NvbHVtbnNEaWFsb2dDYW5jZWxCdG5MYWJlbDogJ9Ch0LrQsNGB0YPQstCw0YLQuCcsXG4gICAgICAgIFAxM0NvbHVtbnNEaWFsb2dNb3ZlVG9Ub3BCdG46ICfQn9C10YDQtdC80ZbRgdGC0LjRgtC4INCy0LPQvtGA0YMnLFxuICAgICAgICBQMTNDb2x1bW5zRGlhbG9nTW92ZVVwQnRuOiAn0J/QtdGA0LXQvNGW0YHRgtC40YLQuCDQstC40YnQtScsXG4gICAgICAgIFAxM0NvbHVtbnNEaWFsb2dNb3ZlRG93bkJ0bjogJ9Cf0LXRgNC10LzRltGB0YLQuNGC0Lgg0L3QuNC20YfQtScsXG4gICAgICAgIFAxM0NvbHVtbnNEaWFsb2dNb3ZlVG9Cb3R0b21CdG46ICfQn9C10YDQtdC80ZbRgdGC0LjRgtC4INCy0L3QuNC3JyxcbiAgICAgICAgUDEzRmlsdGVyU3RyYXRlZ3lMYWJlbEJldHdlZW46ICfQvNGW0LYnLFxuICAgICAgICBQMTNGaWx0ZXJTdHJhdGVneUxhYmVsQ29udGFpbnM6ICfQvNGW0YHRgtC40YLRjCcsXG4gICAgICAgIFAxM0ZpbHRlclN0cmF0ZWd5TGFiZWxCZWdpbnNXaXRoOiAn0L/QvtGH0LjQvdCw0ZTRgtGM0YHRjyDQtycsXG4gICAgICAgIFAxM0ZpbHRlclN0cmF0ZWd5TGFiZWxFbmRzV2l0aDogJ9C30LDQutGW0L3Rh9GD0ZTRgtGM0YHRjyDQvdCwJyxcbiAgICAgICAgUDEzRmlsdGVyU3RyYXRlZ3lMYWJlbEVxdWFsVG86ICfQtNC+0YDRltCy0L3RjtGUJyxcbiAgICAgICAgUDEzRmlsdGVyU3RyYXRlZ3lMYWJlbEdyZWF0ZXJUaGFuOiAn0LHRltC70YzRiNC1INC90ZbQticsXG4gICAgICAgIFAxM0ZpbHRlclN0cmF0ZWd5TGFiZWxHcmVhdGVyVGhhbk9yRXF1YWxUbzogJ9Cx0ZbQu9GM0YjQtSDQsNCx0L4g0LTQvtGA0ZbQstC90Y7RlCcsXG4gICAgICAgIFAxM0ZpbHRlclN0cmF0ZWd5TGFiZWxMZXNzVGhhbjogJ9C80LXQvdGI0LUg0L3RltC2JyxcbiAgICAgICAgUDEzRmlsdGVyU3RyYXRlZ3lMYWJlbExlc3NUaGFuT3JFcXVhbFRvOiAn0LzQtdC90YjQtSDQsNCx0L4g0LTQvtGA0ZbQstC90Y7RlCcsXG4gICAgICAgIFAxM0ZpbHRlclN0cmF0ZWd5TGFiZWxBZnRlcjogJ9C/0ZbRgdC70Y8nLFxuICAgICAgICBQMTNGaWx0ZXJTdHJhdGVneUxhYmVsT25PckFmdGVyOiAn0LTQvtGA0ZbQstC90Y7RlCDQsNCx0L4g0L/RltGB0LvRjycsXG4gICAgICAgIFAxM0ZpbHRlclN0cmF0ZWd5TGFiZWxCZWZvcmU6ICfQtNC+JyxcbiAgICAgICAgUDEzRmlsdGVyU3RyYXRlZ3lMYWJlbEJlZm9yZU9yT246ICfQtNC+INCw0LHQviDQtNC+0YDRltCy0L3RjtGUJyxcbiAgICAgICAgUDEzRmlsdGVyU3RyYXRlZ3lMYWJlbE5vdERlZmluZWQ6ICfQndC1INCy0LjQt9C90LDRh9C10L3QvicsXG4gICAgICAgIFAxM0ZpbHRlckJvb2xlYW5PcHRpb25Ob3REZWZpbmVkOiAnICcsXG4gICAgICAgIFAxM0ZpbHRlckJvb2xlYW5PcHRpb25UcnVlOiAn0KLQsNC6JyxcbiAgICAgICAgUDEzRmlsdGVyQm9vbGVhbk9wdGlvbkZhbHNlOiAn0J3RlicsXG4gICAgICAgIFAxM0ZpbHRlckRpYWxvZ0hlYWRlcjogJ9Ck0ZbQu9GM0YLRgNGD0LLQsNGC0Lgg0LfQsCcsXG4gICAgICAgIFAxM0ZpbHRlckRpYWxvZ0luY2x1ZGVQYW5lbFRpdGxlV2l0aENvdW50OiAn0JLQutC70Y7Rh9C90ZYg0YPQvNC+0LLQuCAoe3sgY291bnQgfX0pJyxcbiAgICAgICAgUDEzRmlsdGVyRGlhbG9nSW5jbHVkZVBhbmVsVGl0bGVXaXRob3V0Q291bnQ6ICfQktC60LvRjtGH0L3RliDRg9C80L7QstC4JyxcbiAgICAgICAgUDEzRmlsdGVyRGlhbG9nRXhjbHVkZVBhbmVsVGl0bGVXaXRoQ291bnQ6ICfQktC40LrQu9GO0YfQvdGWINGD0LzQvtCy0LggKHt7IGNvdW50IH19KScsXG4gICAgICAgIFAxM0ZpbHRlckRpYWxvZ0V4Y2x1ZGVQYW5lbFRpdGxlV2l0aG91dENvdW50OiAn0JLQuNC60LvRjtGH0L3RliDRg9C80L7QstC4JyxcbiAgICAgICAgUDEzRmlsdGVyRGlhbG9nUmVtb3ZlRmlsdGVyQnRuVGl0bGU6ICfQktC40LTQsNC70LjRgtC4INGE0ZbQu9GM0YLRgCcsXG4gICAgICAgIFAxM0ZpbHRlckRpYWxvQWRkRmlsdGVyQnRuVGl0bGU6ICfQlNC+0LTQsNGC0Lgg0YTRltC70YzRgtGAJyxcbiAgICAgICAgUDEzRmlsdGVyRGlhbG9nQ29uZmlybWF0aW9uQnRuTGFiZWw6ICdPSycsXG4gICAgICAgIFAxM0ZpbHRlckRpYWxvZ0NhbmNlbEJ0bkxhYmVsOiAn0KHQutCw0YHRg9Cy0LDRgtC4JyxcbiAgICAgICAgUDEzR3JvdXBEaWFsb2dIZWFkZXI6ICfQk9GA0YPQv9GD0LLQsNC90L3RjycsXG4gICAgICAgIFAxM0dyb3VwRGlhbG9nTm9uZVNlbGVjdGVkQ29sdW1uU2VsZWN0UGxhY2Vob2xkZXI6ICco0L3QtdC80LDRlCknLFxuICAgICAgICBQMTNHcm91cERpYWxvZ1Nob3dGaWVsZEFzQ29sdW1uQ2hlY2tib3hMYWJlbDogJ9Cf0L7QutCw0LfQsNGC0Lgg0L/QvtC70LUg0Y/QuiDRgdGC0L7QstC/0LXRhtGMJyxcbiAgICAgICAgUDEzR3JvdXBEaWFsb2dSZW1vdmVHcm91cEJ0blRpdGxlOiAn0JLQuNC00LDQu9C40YLQuCcsXG4gICAgICAgIFAxM0dyb3VwRGlhbG9nQWRkTmV3R3JvdXBCdG5UaXRsZTogJ9CU0L7QtNCw0YLQuCDQvdC+0LLQuNC5JyxcbiAgICAgICAgUDEzR3JvdXBEaWFsb2dDb25maXJtYXRpb25CdG5MYWJlbDogJ09LJyxcbiAgICAgICAgUDEzR3JvdXBEaWFsb2dDYW5jZWxCdG5MYWJlbDogJ9Ch0LrQsNGB0YPQstCw0YLQuCcsXG4gICAgICAgIFAxM1NvcnREaWFsb2dIZWFkZXI6ICfQodC+0YDRgtGD0LLQsNC90L3RjycsXG4gICAgICAgIFAxM1NvcnREaWFsb2dOb25lU2VsZWN0ZWRDb2x1bW46ICco0L3QtdC80LDRlCknLFxuICAgICAgICBQMTNTb3J0RGlhbG9nTm9uZVNlbGVjdGVkU29ydGluZzogJyjQvdC10LzQsNGUKScsXG4gICAgICAgIFAxM1NvcnREaWFsb2dTb3J0T3JkZXJTZWxlY3RPcHRpb25Bc2M6ICfQl9CwINC30YDQvtGB0YLQsNC90L3Rj9C8JyxcbiAgICAgICAgUDEzU29ydERpYWxvZ1NvcnRPcmRlclNlbGVjdE9wdGlvbkRlc2M6ICfQl9CwINGB0L/QsNC00LDQvdC90Y/QvCcsXG4gICAgICAgIFAxM1NvcnREaWFsb2dSZW1vdmVTb3J0QnRuVGl0bGU6ICfQktC40LTQsNC70LjRgtC4JyxcbiAgICAgICAgUDEzU29ydERpYWxvZ0FkZE5ld1NvcnRCdG5UaXRsZTogJ9CU0L7QtNCw0YLQuCDQvdC+0LLQtScsXG4gICAgICAgIFAxM1NvcnREaWFsb2dDb25maXJtYXRpb25CdG5MYWJlbDogJ09LJyxcbiAgICAgICAgUDEzU29ydERpYWxvZ0NhbmNlbEJ0bkxhYmVsOiAn0KHQutCw0YHRg9Cy0LDRgtC4JyxcbiAgICAgICAgdG9vbGJhclNlYXJjaFBsYWNlaG9sZGVyOiAn0J/QvtGI0YPQuicsXG4gICAgICAgIHRvb2xiYXJBY3Rpb25DcmVhdGVCdXR0b25MYWJlbDogJ9Ch0YLQstC+0YDQuNGC0LgnLFxuICAgICAgICB0b29sYmFyQWN0aW9uU2F2ZUJ1dHRvbkxhYmVsOiAn0JfQsdC10YDQtdCz0YLQuCcsXG4gICAgICAgIHRvb2xiYXJBY3Rpb25DYW5jZWxCdXR0b25MYWJlbDogJ9Ch0LrQsNGB0YPQstCw0YLQuCcsXG4gICAgICAgIHRvb2xiYXJBY3Rpb25Tb3J0QnV0dG9uVGl0bGU6ICfQodC+0YDRgtGD0LLQsNGC0LgnLFxuICAgICAgICB0b29sYmFyQWN0aW9uRmlsdGVyQnV0dG9uVGl0bGU6ICfQpNGW0LvRjNGC0YAnLFxuICAgICAgICB0b29sYmFyQWN0aW9uR3JvdXBCdXR0b25UaXRsZTogJ9Ch0LPRgNGD0L/Rg9Cy0LDRgtC4JyxcbiAgICAgICAgdG9vbGJhckFjdGlvbkNvbHVtbnNCdXR0b25UaXRsZTogJ9Ch0YLQvtCy0L/RhtGWJyxcbiAgICAgICAgdG9vbGJhckFjdGlvbkV4cGFuZEFsbEJ1dHRvblRpdGxlOiAnRXhwYW5kIGFsbCcsXG4gICAgICAgIHRvb2xiYXJBY3Rpb25Db2xsYXBzZUFsbEJ1dHRvblRpdGxlOiAnQ29sbGFwc2UgYWxsJyxcbiAgICAgICAgZmlsdGVyRGlhbG9nTm90RmlsdGVyZWRMYWJlbDogJyjQndC1INCy0ZbQtNGE0ZbQu9GM0YLRgNC+0LLQsNC90L4pJyxcbiAgICAgICAgZmlsdGVyRGlhbG9nRmlsdGVyQnlMYWJlbDogJ9Ck0ZbQu9GM0YLRgNGD0LLQsNGC0Lgg0LfQsDoge3sgZmlsdGVyTGFiZWwgfX0nLFxuICAgICAgICBmaWx0ZXJEaWFsb2dGaWx0ZXJUaXRsZTogJ9Ck0ZbQu9GM0YLRgCcsXG4gICAgICAgIGZpbHRlckRpYWxvZ0ZpbHRlckJ5OiAn0KTRltC70YzRgtGA0YPQstCw0YLQuCDQt9CwJyxcbiAgICAgICAgZmlsdGVyRGlhbG9nQ29uZmlybUJ0bkxhYmVsOiAnT0snLFxuICAgICAgICBmaWx0ZXJEaWFsb2dDYW5jZWxCdG5MYWJlbDogJ9Ch0LrQsNGB0YPQstCw0YLQuCcsXG4gICAgICAgIGdyb3VwRGlhbG9nSGVhZGVyOiAn0KHQs9GA0YPQv9GD0LLQsNGC0LgnLFxuICAgICAgICBncm91cERpYWxvZ0dyb3VwT3JkZXJIZWFkZXI6ICfQn9C+0YDRj9C00L7QuiDQs9GA0YPQv9GD0LLQsNC90L3RjycsXG4gICAgICAgIGdyb3VwRGlhbG9nR3JvdXBPcmRlckFzYzogJ9CX0LAg0LfRgNC+0YHRgtCw0L3QvdGP0LwnLFxuICAgICAgICBncm91cERpYWxvZ0dyb3VwT3JkZXJEZXNjOiAn0JfQsCDRgdC/0LDQtNCw0L3QvdGP0LwnLFxuICAgICAgICBncm91cERpYWxvZ0dyb3VwQnlIZWFkZXI6ICfQk9GA0YPQv9GD0LLQsNGC0Lgg0LfQsCcsXG4gICAgICAgIGdyb3VwRGlhbG9nTm90R3JvdXBlZExhYmVsOiAnKNCd0LUg0LfQs9GA0YPQv9C+0LLQsNC90L4pJyxcbiAgICAgICAgZ3JvdXBEaWFsb2dDb25maXJtQnRuTGFiZWw6ICdPSycsXG4gICAgICAgIGdyb3VwRGlhbG9nQ2FuY2VsQnRuTGFiZWw6ICfQodC60LDRgdGD0LLQsNGC0LgnLFxuICAgICAgICBzb3J0RGlhbG9nSGVhZGVyOiAn0KHQvtGA0YLRg9Cy0LDRgtC4JyxcbiAgICAgICAgc29ydERpYWxvZ1NvcnRPcmRlckhlYWRlcjogJ9Cf0L7RgNGP0LTQvtC6INGB0L7RgNGC0YPQstCw0L3QvdGPJyxcbiAgICAgICAgc29ydERpYWxvZ1NvcnRPcmRlckFzYzogJ9CX0LAg0LfRgNC+0YHRgtCw0L3QvdGP0LwnLFxuICAgICAgICBzb3J0RGlhbG9nU29ydE9yZGVyRGVzYzogJ9C30LAg0YHQv9Cw0LTQsNC90L3Rj9C8JyxcbiAgICAgICAgc29ydERpYWxvZ1NvcnRCeUhlYWRlcjogJ9Ch0L7RgNGC0YPQstCw0YLQuCDQt9CwJyxcbiAgICAgICAgc29ydERpYWxvZ05vdFNvcnRlZExhYmVsOiAnKNCd0LUg0LLRltC00YHQvtGA0YLQvtCy0LDQvdC+KScsXG4gICAgICAgIHNvcnREaWFsb2dDb25maXJtQnRuTGFiZWw6ICdPSycsXG4gICAgICAgIHNvcnREaWFsb2dDYW5jZWxCdG5MYWJlbDogJ9Ch0LrQsNGB0YPQstCw0YLQuCcsXG4gICAgICAgIHNlbGVjdEFsbENoZWNrYm94TGFiZWw6ICfQktC40LHRgNCw0YLQuCDQstGB0LUnLFxuICAgICAgICBkZXNlbGVjdEFsbENoZWNrYm94TGFiZWw6ICdEZXNlbGVjdCBhbGwnLFxuICAgICAgICBkZXNlbGVjdFNpbmdsZVJvdzogJ9Cp0L7QsSDRgdC60LDRgdGD0LLQsNGC0Lgg0LLQuNCx0ZbRgCwg0L3QsNGC0LjRgdC90ZbRgtGMINC/0YDQvtCx0ZbQuycsXG4gICAgICAgIHNlbGVjdFNpbmdsZVJvdzogJ9Cp0L7QsSDQstC40LHRgNCw0YLQuCDRgNGP0LTQvtC6LCDQvdCw0YLQuNGB0L3RltGC0Ywg0L/RgNC+0LHRltC7J1xuICAgIH0sXG4gICAgcGxhdGZvcm1UaHVtYm5haWw6IHtcbiAgICAgICAgZGV0YWlsc0dvdG9QcmV2aW91c0J1dHRvblRpdGxlOiAn0J/QtdGA0LXQudGC0Lgg0LTQviDQv9C+0L/QtdGA0LXQtNC90YzQvtCz0L4nLFxuICAgICAgICBkZXRhaWxzR290b05leHRCdXR0b25UaXRsZTogJ9Cf0LXRgNC10LnRgtC4INC00L4g0L3QsNGB0YLRg9C/0L3QvtCz0L4nLFxuICAgICAgICBkZXRhaWxzRGlhbG9nQ2xvc2VCdG5MYWJlbDogJ9CX0LDQutGA0LjRgtC4JyxcbiAgICAgICAgcm9sZURlc2NyaXB0aW9uOiAn0JfQvtCx0YDQsNC20LXQvdC90Y8nXG4gICAgfSxcbiAgICBwbGF0Zm9ybVVwbG9hZENvbGxlY3Rpb246IHtcbiAgICAgICAgbW92ZVRvVGl0bGU6ICfQn9C10YDQtdC80ZbRgdGC0LjRgtC4INC00L4nLFxuICAgICAgICBtb3ZlVG9UaXRsZUZvbGRlcjogJ9Cf0LDQv9C60LAnLFxuICAgICAgICBtb3ZlVG9OZXdGb2xkZXJCdG5MYWJlbDogJ9Cd0L7QstCwINC/0LDQv9C60LAnLFxuICAgICAgICBtb3ZlVG9BbGxGaWxlc1N1YkhlYWRlckxhYmVsOiAn0KPRgdGWINGE0LDQudC70LgnLFxuICAgICAgICBtb3ZlVG9Db25maXJtQnRuOiAn0J/QtdGA0LXQvNGW0YHRgtC40YLQuCcsXG4gICAgICAgIG1vdmVUb0Nsb3NlQnRuOiAn0KHQutCw0YHRg9Cy0LDRgtC4JyxcbiAgICAgICAgbmV3Rm9sZGVyVGl0bGU6ICfQndC+0LLQsCDQv9Cw0L/QutCwJyxcbiAgICAgICAgbmV3Rm9sZGVyQXRSb290SW5wdXRMYWJlbDogJ9Cd0LDQt9Cy0LAg0L3QvtCy0L7RlyDQv9Cw0L/QutC4JyxcbiAgICAgICAgbmV3Rm9sZGVyQXRGb2xkZXJJbnB1dExhYmVsOiAn0J3QsNC30LLQsCDQvdC+0LLQvtGXINC/0LDQv9C60Lgg0YPRgdC10YDQtdC00LjQvdGWIHt7IGZvbGRlck5hbWUgfScsXG4gICAgICAgIG5ld0ZvbGRlcklucHV0UGxhY2Vob2xkZXI6ICfQktCy0LXQtNGW0YLRjCDQvdCw0LfQstGDLi4nLFxuICAgICAgICBuZXdGb2xkZXJJbnB1dEVycm9yTGFiZWw6IChwYXJhbXMpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvdW50ID0gcGFyYW1zWydjb3VudCddO1xuICAgICAgICAgICAgY29uc3Qgb3B0aW9uID0gcGx1cmFsaXphdGlvbi5wcm9jZXNzKGNvdW50KTtcbiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnb25lJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGDQnNCw0LrRgdC40LzQsNC70YzQvdC+INC00L7Qt9Cy0L7Qu9C10L3QviAxINGB0LjQvNCy0L7Qu2A7XG4gICAgICAgICAgICAgICAgY2FzZSAnZmV3JzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGDQnNCw0LrRgdC40LzQsNC70YzQvdC+INC00L7Qt9Cy0L7Qu9C10L3QviAke2NvdW50fSDRgdC40LzQstC+0LvQuGA7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGDQnNCw0LrRgdC40LzQsNC70YzQvdC+INC00L7Qt9Cy0L7Qu9C10L3QviAke2NvdW50fSDRgdC40LzQstC+0LvRltCyYDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbmV3Rm9sZGVyRGlhbG9nQ3JlYXRlQnRuTGFiZWw6ICfQodGC0LLQvtGA0LjRgtC4JyxcbiAgICAgICAgbmV3Rm9sZGVyRGlhbG9nQ2FuY2VsQnRuTGFiZWw6ICfQodC60LDRgdGD0LLQsNGC0LgnLFxuICAgICAgICBicmVhZGNydW1iTGFiZWxBbGxGaWxlczogJ9Cj0YHRliDRhNCw0LnQu9C4JyxcbiAgICAgICAgYnJlYWRjcnVtYkxhYmVsQWxsRmlsZXNXaXRoVG90YWw6ICfQo9GB0ZYg0YTQsNC50LvQuCAoe3sgdG90YWwgfX0pJyxcbiAgICAgICAgc2VhcmNoUGxhY2Vob2xkZXI6ICfQn9C+0YjRg9C6JyxcbiAgICAgICAgYWRkQnRuTGFiZWw6ICfQlNC+0LTQsNGC0LgnLFxuICAgICAgICBuZXdGb2xkZXJCdG5MYWJlbDogJ9Cd0L7QstCwINC/0LDQv9C60LAnLFxuICAgICAgICBtb3ZlVG9CdG5MYWJlbDogJ9Cf0LXRgNC10LzRltGB0YLQuNGC0Lgg0LTQvicsXG4gICAgICAgIGRvd25sb2FkQnRuTGFiZWw6ICfQl9Cw0LLQsNC90YLQsNC20LjRgtC4JyxcbiAgICAgICAgdXBkYXRlVmVyc2lvbkJ0bkxhYmVsOiAn0J7QvdC+0LLQuNGC0Lgg0LLQtdGA0YHRltGOJyxcbiAgICAgICAgcmVtb3ZlQnRuTGFiZWw6ICfQktC40LTQsNC70LjRgtC4JyxcbiAgICAgICAgZm9sZGVySWNvblRpdGxlOiAn0JfQvdCw0YfQvtC6INC/0LDQv9C60LgnLFxuICAgICAgICBmaWxlSWNvblRpdGxlOiAn0JfQvdCw0YfQvtC6INGE0LDQudC70YMnLFxuICAgICAgICBlZGl0RmlsZU5hbWVJbnB1dFBsYWNlaG9sZGVyOiAn0JLQstC10LTRltGC0Ywg0L3QsNC30LLRgycsXG4gICAgICAgIGVkaXRGaWxlTmFtZUZpbGVBbHJlYWR5RXhpc3RzRXJyb3I6ICfQpNCw0LnQuyDQtyDRgtCw0LrQvtGOINC90LDQt9Cy0L7RjiDQstC20LUg0ZbRgdC90YPRlCcsXG4gICAgICAgIGVkaXRGaWxlTmFtZUZvbGRlckFscmVhZHlFeGlzdHNFcnJvcjogJ9Cf0LDQv9C60LAg0Lcg0YLQsNC60L7RjiDQvdCw0LfQstC+0Y4g0LLQttC1INGW0YHQvdGD0ZQnLFxuICAgICAgICBpdGVtU3RhdHVzU3VjY2Vzc2Z1bDogJ9Cj0YHQv9GW0YjQvdC+JyxcbiAgICAgICAgaXRlbVN0YXR1c1Vuc3VjY2Vzc2Z1bDogJ9Cd0LXQstC00LDQu9C+JyxcbiAgICAgICAgdXBsb2FkTmV3RmlsZUFmdGVyRmFpbEFjdGlvbjogJ9CS0LjQutC+0L3QsNGC0LgnLFxuICAgICAgICBjYW5jZWxVcGxvYWROZXdGaWxlQWN0aW9uOiAn0KHQutCw0YHRg9Cy0LDRgtC4JyxcbiAgICAgICAgaXRlbU1lbnVCdG5UaXRsZTogJ9CR0ZbQu9GM0YjQtScsXG4gICAgICAgIGRyYWdEcm9wQXJlYVRleHQ6ICfQn9C10YDQtdGC0Y/Qs9C90ZbRgtGMINGE0LDQudC70Lgg0LTQu9GPINC30LDQstCw0L3RgtCw0LbQtdC90L3RjycsXG4gICAgICAgIG5vRGF0YVRleHQ6ICfQpNCw0LnQu9GW0LIg0L3QtSDQt9C90LDQudC00LXQvdC+JyxcbiAgICAgICAgbm9EYXRhRGVzY3JpcHRpb246ICfQn9C10YDQtdGC0Y/Qs9C90ZbRgtGMINGE0LDQudC70Lgg0LTQu9GPINC30LDQstCw0L3RgtCw0LbQtdC90L3RjyDQsNCx0L4g0YHQutC+0YDQuNGB0YLQsNC50YLQtdGB0Y8g0LrQvdC+0L/QutC+0Y4gwqvQlNC+0LTQsNGC0LjCuy4nLFxuICAgICAgICBwYWdpbmF0aW9uVG90YWw6ICfQn9C+0LrQsNC30LDQvdC+IHt7IGZyb20gfX0te3sgdG8gfX0g0ZbQtyB7eyB0b3RhbCB9fScsXG4gICAgICAgIHJlc3VsdHNQZXJQYWdlOiAn0KDQtdC30YPQu9GM0YLQsNGC0ZbQsiDQvdCwINGB0YLQvtGA0ZbQvdGG0ZYnLFxuICAgICAgICBtZXNzYWdlQ3JlYXRlRmFpbGVkOiAn0J3QtSDQstC00LDQu9C+0YHRjyDRgdGC0LLQvtGA0LjRgtC4IHt7IGZvbGRlck5hbWUgfX0uJyxcbiAgICAgICAgbWVzc2FnZUNyZWF0ZVN1Y2Nlc3M6ICd7eyBmb2xkZXJOYW1lIH19INGD0YHQv9GW0YjQvdC+INGB0YLQstC+0YDQtdC90L4uJyxcbiAgICAgICAgbWVzc2FnZVVwZGF0ZVZlcnNpb25GYWlsZWQ6ICfQndC1INCy0LTQsNC70L7RgdGPINC+0L3QvtCy0LjRgtC4INCy0LXRgNGB0ZbRjiB7eyBmb2xkZXJOYW1lIH19LicsXG4gICAgICAgIG1lc3NhZ2VVcGRhdGVWZXJzaW9uU3VjY2VzczogJ9CS0LXRgNGB0ZbRjyB7eyBmb2xkZXJOYW1lIH19INC+0L3QvtCy0LvQtdC90LAuJyxcbiAgICAgICAgbWVzc2FnZUZpbGVSZW5hbWVGYWlsZWQ6ICfQndC1INCy0LTQsNC70L7RgdGPINC/0LXRgNC10LnQvNC10L3Rg9Cy0LDRgtC4IFwie3sgZnJvbSB9fVwiINC90LAgXCJ7eyB0byB9fS5cIicsXG4gICAgICAgIG1lc3NhZ2VGaWxlUmVuYW1lU3VjY2VzczogJ3t7IGZyb20gfX1cIiDQv9C10YDQtdC50LzQtdC90L7QstCw0L3QviDQvdCwIFwie3sgdG8gfX1cIi4nLFxuICAgICAgICBtZXNzYWdlUmVtb3ZlRm9sZGVyc0FuZEZpbGVzRmFpbGVkOiAocGFyYW1zKSA9PlxuICAgICAgICAgICAgYNCd0LUg0LLQtNCw0LvQvtGB0Y8g0LLQuNC00LDQu9C40YLQuCAke2ZvbGRlck5hbWVQbHVyYWxpemF0aW9uKHBhcmFtcyl9INGWICR7ZmlsZU5hbWVQbHVyYWxpemF0aW9uKHBhcmFtcyl9LmAsXG4gICAgICAgIG1lc3NhZ2VSZW1vdmVGb2xkZXJzQW5kRmlsZXNTdWNjZXNzOiAocGFyYW1zKSA9PlxuICAgICAgICAgICAgYCR7Zm9sZGVyTmFtZVBsdXJhbGl6YXRpb24ocGFyYW1zKX0g0ZYgJHtmaWxlTmFtZVBsdXJhbGl6YXRpb24ocGFyYW1zKX0g0LLQuNC00LDQu9C10L3Qvi5gLFxuICAgICAgICBtZXNzYWdlUmVtb3ZlRm9sZGVyc0ZhaWxlZDogKHBhcmFtcykgPT4gYNCd0LUg0LLQtNCw0LvQvtGB0Y8g0LLQuNC00LDQu9C40YLQuCAke2ZvbGRlck5hbWVQbHVyYWxpemF0aW9uKHBhcmFtcyl9LmAsXG4gICAgICAgIG1lc3NhZ2VSZW1vdmVGb2xkZXJzU3VjY2VzczogKHBhcmFtcykgPT4gYNCS0LjQtNCw0LvQtdC90L4gJHtmb2xkZXJOYW1lUGx1cmFsaXphdGlvbihwYXJhbXMpfS5gLFxuICAgICAgICBtZXNzYWdlUmVtb3ZlRmlsZXNGYWlsZWQ6IChwYXJhbXMpID0+IGDQndC1INCy0LTQsNC70L7RgdGPINCy0LjQtNCw0LvQuNGC0LggJHtmaWxlTmFtZVBsdXJhbGl6YXRpb24ocGFyYW1zKX0uYCxcbiAgICAgICAgbWVzc2FnZVJlbW92ZUZpbGVzU3VjY2VzczogKHBhcmFtcykgPT4gYNCS0LjQtNCw0LvQtdC90L4gJHtmaWxlTmFtZVBsdXJhbGl6YXRpb24ocGFyYW1zKX0uYCxcbiAgICAgICAgbWVzc2FnZVJlbW92ZUZpbGVPckZvbGRlckZhaWxlZDogJ9Cd0LUg0LLQtNCw0LvQvtGB0Y8g0LLQuNC00LDQu9C40YLQuCB7eyBuYW1lIH19LicsXG4gICAgICAgIG1lc3NhZ2VSZW1vdmVGaWxlT3JGb2xkZXJTdWNjZXNzOiAne3sgbmFtZSB9fSDQstC40LTQsNC70LXQvdC+LicsXG4gICAgICAgIG1lc3NhZ2VNb3ZlRm9sZGVyc0FuZEZpbGVzRmFpbGVkOiAocGFyYW1zKSA9PlxuICAgICAgICAgICAgYNCd0LUg0LLQtNCw0LvQvtGB0Y8g0L/QtdGA0LXQvNGW0YHRgtC40YLQuCAke2ZvbGRlck5hbWVQbHVyYWxpemF0aW9uKHBhcmFtcyl9INGWICR7ZmlsZU5hbWVQbHVyYWxpemF0aW9uKHBhcmFtcyl9INC00L4ge3sgdG8gfX0uYCxcbiAgICAgICAgbWVzc2FnZU1vdmVGb2xkZXJzQW5kRmlsZXNTdWNjZXNzOiAocGFyYW1zKSA9PlxuICAgICAgICAgICAgYCR7Zm9sZGVyTmFtZVBsdXJhbGl6YXRpb24ocGFyYW1zKX0g0ZYgJHtmaWxlTmFtZVBsdXJhbGl6YXRpb24ocGFyYW1zKX0g0L/QtdGA0LXQvNGW0YnQtdC90L4g0LIge3sgdG8gfX0uYCxcbiAgICAgICAgbWVzc2FnZU1vdmVGb2xkZXJzRmFpbGVkOiAocGFyYW1zKSA9PiBg0J3QtSDQstC00LDQu9C+0YHRjyDQv9C10YDQtdC80ZbRgdGC0LjRgtC4ICR7Zm9sZGVyTmFtZVBsdXJhbGl6YXRpb24ocGFyYW1zKX0g0LTQviB7eyB0byB9fS5gLFxuICAgICAgICBtZXNzYWdlTW92ZUZvbGRlcnNTdWNjZXNzOiAocGFyYW1zKSA9PiBgJHtmb2xkZXJOYW1lUGx1cmFsaXphdGlvbihwYXJhbXMpfSDQv9C10YDQtdC80ZbRidC10L3QviDQtNC+IHt7IHRvIH19LmAsXG4gICAgICAgIG1lc3NhZ2VNb3ZlRmlsZXNGYWlsZWQ6IChwYXJhbXMpID0+IGDQndC1INCy0LTQsNC70L7RgdGPINC/0LXRgNC10LzRltGB0YLQuNGC0LggJHtmaWxlTmFtZVBsdXJhbGl6YXRpb24ocGFyYW1zKX0g0LTQviB7eyB0byB9fS5gLFxuICAgICAgICBtZXNzYWdlTW92ZUZpbGVzU3VjY2VzczogKHBhcmFtcykgPT4gYCR7ZmlsZU5hbWVQbHVyYWxpemF0aW9uKHBhcmFtcyl9INC/0LXRgNC10LzRltGJ0LXQvdC+INC00L4ge3sgdG8gfX0uYCxcbiAgICAgICAgbWVzc2FnZU1vdmVGaWxlT3JGb2xkZXJGYWlsZWQ6ICfQndC1INCy0LTQsNC70L7RgdGPINC/0LXRgNC10LzRltGB0YLQuNGC0Lgge3sgbmFtZSB9fSDQtNC+IHt7IHRvIH19LicsXG4gICAgICAgIG1lc3NhZ2VNb3ZlRmlsZU9yRm9sZGVyU3VjY2VzczogJ3t7IG5hbWUgfX0g0L/QtdGA0LXQvNGW0YnQtdC90L4g0LIge3sgdG8gfX0uJyxcbiAgICAgICAgbWVzc2FnZU1vdmVSb290Rm9sZGVyc0FuZEZpbGVzRmFpbGVkOiAocGFyYW1zKSA9PlxuICAgICAgICAgICAgYNCd0LUg0LLQtNCw0LvQvtGB0Y8g0L/QtdGA0LXQvNGW0YHRgtC40YLQuCAke2ZvbGRlck5hbWVQbHVyYWxpemF0aW9uKHBhcmFtcyl9INGWICR7ZmlsZU5hbWVQbHVyYWxpemF0aW9uKFxuICAgICAgICAgICAgICAgIHBhcmFtc1xuICAgICAgICAgICAgKX0g0LTQviDQstGB0ZbRhSDRhNCw0LnQu9GW0LIuYCxcbiAgICAgICAgbWVzc2FnZU1vdmVSb290Rm9sZGVyc0FuZEZpbGVzU3VjY2VzczogKHBhcmFtcykgPT5cbiAgICAgICAgICAgIGAke2ZvbGRlck5hbWVQbHVyYWxpemF0aW9uKHBhcmFtcyl9INGWICR7ZmlsZU5hbWVQbHVyYWxpemF0aW9uKHBhcmFtcyl9INC/0LXRgNC10LzRltGJ0LXQvdC+INC00L4g0LLRgdGW0YUg0YTQsNC50LvRltCyLmAsXG4gICAgICAgIG1lc3NhZ2VNb3ZlUm9vdEZvbGRlcnNGYWlsZWQ6IChwYXJhbXMpID0+XG4gICAgICAgICAgICBg0J3QtSDQstC00LDQu9C+0YHRjyDQv9C10YDQtdC80ZbRgdGC0LjRgtC4ICR7Zm9sZGVyTmFtZVBsdXJhbGl6YXRpb24ocGFyYW1zKX0g0LTQviDQstGB0ZbRhSDRhNCw0LnQu9GW0LIuYCxcbiAgICAgICAgbWVzc2FnZU1vdmVSb290Rm9sZGVyc1N1Y2Nlc3M6IChwYXJhbXMpID0+IGAke2ZvbGRlck5hbWVQbHVyYWxpemF0aW9uKHBhcmFtcyl9INC/0LXRgNC10LzRltGJ0LXQvdC+INC00L4g0LLRgdGW0YUg0YTQsNC50LvRltCyLmAsXG4gICAgICAgIG1lc3NhZ2VNb3ZlUm9vdEZpbGVzRmFpbGVkOiAocGFyYW1zKSA9PlxuICAgICAgICAgICAgYNCd0LUg0LLQtNCw0LvQvtGB0Y8g0L/QtdGA0LXQvNGW0YHRgtC40YLQuCAke2ZpbGVOYW1lUGx1cmFsaXphdGlvbihwYXJhbXMpfSDQtNC+INCy0YHRltGFINGE0LDQudC70ZbQsi5gLFxuICAgICAgICBtZXNzYWdlTW92ZVJvb3RGaWxlc1N1Y2Nlc3M6IChwYXJhbXMpID0+IGAke2ZpbGVOYW1lUGx1cmFsaXphdGlvbihwYXJhbXMpfSDQv9C10YDQtdC80ZbRidC10L3QviDQtNC+INCy0YHRltGFINGE0LDQudC70ZbQsi5gLFxuICAgICAgICBtZXNzYWdlTW92ZVJvb3RGaWxlT3JGb2xkZXJGYWlsZWQ6ICfQndC1INCy0LTQsNC70L7RgdGPINC/0LXRgNC10LzRltGB0YLQuNGC0Lgge3sgbmFtZSB9fSDQtNC+INCy0YHRltGFINGE0LDQudC70ZbQsi4nLFxuICAgICAgICBtZXNzYWdlTW92ZVJvb3RGaWxlT3JGb2xkZXJTdWNjZXNzOiAne3sgbmFtZSB9fSDQv9C10YDQtdC80ZbRidC10L3QviDQtNC+INCy0YHRltGFINGE0LDQudC70ZbQsi4nLFxuICAgICAgICBtZXNzYWdlRmlsZVR5cGVNaXNtYXRjaFBsdXJhbDogKHBhcmFtcykgPT4ge1xuICAgICAgICAgICAgY29uc3QgZmlsZXNDb3VudCA9IHBhcmFtc1snZmlsZXNDb3VudCddO1xuICAgICAgICAgICAgY29uc3QgZm9sZGVyc0NvdW50T3B0aW9uID0gcGx1cmFsaXphdGlvbi5wcm9jZXNzKGZpbGVzQ291bnQpO1xuICAgICAgICAgICAgc3dpdGNoIChmb2xkZXJzQ291bnRPcHRpb24pIHtcbiAgICAgICAgICAgICAgICBjYXNlICdvbmUnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJzEg0YTQsNC50Lsg0LzQsNGUINC90LXQv9GA0LDQstC40LvRjNC90LjQuSDRgtC40L8uINCU0L7Qt9Cy0L7Qu9C10L3RliDRgtC40L/QuDoge3sgYWxsb3dlZFR5cGVzIH19Lic7XG4gICAgICAgICAgICAgICAgY2FzZSAnZmV3JzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke2ZpbGVzQ291bnR9INGE0LDQudC70Lgg0LzQsNGO0YLRjCDQvdC10L/RgNCw0LLQuNC70YzQvdC40Lkg0YLQuNC/LiDQlNC+0LfQstC+0LvQtdC90ZYg0YLQuNC/0Lg6IHt7IGFsbG93ZWRUeXBlcyB9fS5gO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtmaWxlc0NvdW50IHx8IDB9INGE0LDQudC70ZbQsiDQvNCw0Y7RgtGMINC90LXQv9GA0LDQstC40LvRjNC90LjQuSDRgtC40L8uINCU0L7Qt9Cy0L7Qu9C10L3RliDRgtC40L/QuDoge3sgYWxsb3dlZFR5cGVzIH19LmA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG1lc3NhZ2VGaWxlVHlwZU1pc21hdGNoU2luZ3VsYXI6XG4gICAgICAgICAgICAn0KTQsNC50LsgXCJ7eyBmaWxlTmFtZSB9fVwiINC80LDRlCDQvdC10L/RgNCw0LLQuNC70YzQvdC40Lkg0YLQuNC/LiDQlNC+0LfQstC+0LvQtdC90ZYg0YLQuNC/0Lg6IHt7IGFsbG93ZWRUeXBlcyB9fS4nLFxuICAgICAgICBtZXNzYWdlRmlsZVNpemVFeGNlZWRlZFBsdXJhbDogKHBhcmFtcykgPT4ge1xuICAgICAgICAgICAgY29uc3QgZmlsZXNDb3VudCA9IHBhcmFtc1snZmlsZXNDb3VudCddO1xuICAgICAgICAgICAgY29uc3QgZm9sZGVyc0NvdW50T3B0aW9uID0gcGx1cmFsaXphdGlvbi5wcm9jZXNzKGZpbGVzQ291bnQpO1xuICAgICAgICAgICAgc3dpdGNoIChmb2xkZXJzQ291bnRPcHRpb24pIHtcbiAgICAgICAgICAgICAgICBjYXNlICdvbmUnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJzEg0YTQsNC50Lsg0L/QtdGA0LXQstC40YnRg9GUINC80LDQutGB0LjQvNCw0LvRjNC90LjQuSDRgNC+0LfQvNGW0YAg0YTQsNC50LvRgy4g0JTQvtC30LLQvtC70LXQvdC40Lkg0LzQsNC60YHQuNC80LDQu9GM0L3QuNC5INGA0L7Qt9C80ZbRgCDRhNCw0LnQu9GDOiB7eyBtYXhGaWxlU2l6ZSB9fS4nO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2Zldyc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtmaWxlc0NvdW50fSDRhNCw0LnQu9C4INC/0LXRgNC10LLQuNGJ0YPRjtGC0Ywg0LzQsNC60YHQuNC80LDQu9GM0L3QuNC5INGA0L7Qt9C80ZbRgCDRhNCw0LnQu9GDLiDQlNC+0LfQstC+0LvQtdC90LjQuSDQvNCw0LrRgdC40LzQsNC70YzQvdC40Lkg0YDQvtC30LzRltGAINGE0LDQudC70YM6IHt7IG1heEZpbGVTaXplIH19LmA7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsZXNDb3VudCB8fCAwXG4gICAgICAgICAgICAgICAgICAgIH0g0YTQsNC50LvRltCyINC/0LXRgNC10LLQuNGJ0YPRjtGC0Ywg0LzQsNC60YHQuNC80LDQu9GM0L3QuNC5INGA0L7Qt9C80ZbRgCDRhNCw0LnQu9GDLiDQlNC+0LfQstC+0LvQtdC90LjQuSDQvNCw0LrRgdC40LzQsNC70YzQvdC40Lkg0YDQvtC30LzRltGAINGE0LDQudC70YM6IHt7IG1heEZpbGVTaXplIH19LmA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG1lc3NhZ2VGaWxlU2l6ZUV4Y2VlZGVkU2luZ3VsYXI6XG4gICAgICAgICAgICAn0KTQsNC50LsgXCJ7eyBmaWxlTmFtZSB9fVwiINC/0LXRgNC10LLQuNGJ0YPRlCDQvNCw0LrRgdC40LzQsNC70YzQvdC40Lkg0YDQvtC30LzRltGAINGE0LDQudC70YMuINCU0L7Qt9Cy0L7Qu9C10L3QuNC5INC80LDQutGB0LjQvNCw0LvRjNC90LjQuSDRgNC+0LfQvNGW0YAg0YTQsNC50LvRgzoge3sgbWF4RmlsZVNpemUgfX0uJyxcbiAgICAgICAgbWVzc2FnZUZpbGVOYW1lTGVuZ3RoRXhjZWVkZWRQbHVyYWw6IChwYXJhbXMpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZpbGVzQ291bnQgPSBwYXJhbXNbJ2ZpbGVzQ291bnQnXTtcbiAgICAgICAgICAgIGNvbnN0IGZvbGRlcnNDb3VudE9wdGlvbiA9IHBsdXJhbGl6YXRpb24ucHJvY2VzcyhmaWxlc0NvdW50KTtcbiAgICAgICAgICAgIHN3aXRjaCAoZm9sZGVyc0NvdW50T3B0aW9uKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnb25lJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICcxINGE0LDQudC7INC/0LXRgNC10LLQuNGJ0LjQsiDQvNCw0LrRgdC40LzQsNC70YzQvdGDINC00L7QstC20LjQvdGDINGW0LzQtdC90ZYg0YTQsNC50LvRgy4g0JTQvtC30LLQvtC70LXQvdCwINC00L7QstC20LjQvdCwINGW0LzQtdC90ZYg0YTQsNC50LvRgzoge3sgbWF4RmlsZW5hbWVMZW5ndGggfX0g0YHQuNC80LLQvtC70ZbQsi4nO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2Zldyc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtmaWxlc0NvdW50fSDRhNCw0LnQu9C4INC/0LXRgNC10LLQuNGJ0LjQu9C4INC80LDQutGB0LjQvNCw0LvRjNC90YMg0LTQvtCy0LbQuNC90YMg0ZbQvNC10L3RliDRhNCw0LnQu9GDLiDQlNC+0LfQstC+0LvQtdC90LAg0LTQvtCy0LbQuNC90LAg0ZbQvNC10L3RliDRhNCw0LnQu9GDOiB7eyBtYXhGaWxlbmFtZUxlbmd0aCB9fSDRgdC40LzQstC+0LvRltCyLmA7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsZXNDb3VudCB8fCAwXG4gICAgICAgICAgICAgICAgICAgIH0g0YTQsNC50LvRltCyINC/0LXRgNC10LLQuNGJ0LjQu9C4INC80LDQutGB0LjQvNCw0LvRjNC90YMg0LTQvtCy0LbQuNC90YMg0ZbQvNC10L3RliDRhNCw0LnQu9GDLiDQlNC+0LfQstC+0LvQtdC90LAg0LTQvtCy0LbQuNC90LAg0ZbQvNC10L3RliDRhNCw0LnQu9GDOiB7eyBtYXhGaWxlbmFtZUxlbmd0aCB9fSDRgdC40LzQstC+0LvRltCyLmA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG1lc3NhZ2VGaWxlTmFtZUxlbmd0aEV4Y2VlZGVkU2luZ3VsYXI6XG4gICAgICAgICAgICAn0J3QsNC30LLQsCBcInt7IGZpbGVOYW1lIH19XCIg0L/QtdGA0LXQstC40YnRg9GUINC80LDQutGB0LjQvNCw0LvRjNC90YMg0LTQvtCy0LbQuNC90YMg0ZbQvNC10L3RliDRhNCw0LnQu9GDLiDQlNC+0LfQstC+0LvQtdC90LAg0LTQvtCy0LbQuNC90LAg0ZbQvNC10L3RliDRhNCw0LnQu9GDOiB7eyBtYXhGaWxlbmFtZUxlbmd0aCB9fSDRgdC40LzQstC+0LvRltCyLidcbiAgICB9LFxuICAgIHBsYXRmb3JtV2l6YXJkR2VuZXJhdG9yOiB7XG4gICAgICAgIHN1bW1hcnlTZWN0aW9uRWRpdFN0ZXA6ICfQoNC10LTQsNCz0YPQstCw0YLQuCdcbiAgICB9LFxuICAgIHBsYXRmb3JtTWVzc2FnZVBvcG92ZXI6IHtcbiAgICAgICAgYWxsRXJyb3JzOiAn0JLRgdGWJyxcbiAgICAgICAgZGVmYXVsdEVycm9yczoge1xuICAgICAgICAgICAgZW1haWw6ICfQl9C90LDRh9C10L3QvdGPINC/0L7Qu9GPINC90LUg0LLRltC00L/QvtCy0ZbQtNCw0ZQg0YTQvtGA0LzQsNGC0YMgRS1tYWlsJyxcbiAgICAgICAgICAgIG1heDogJ9CX0L3QsNGH0LXQvdC90Y8g0L/QvtC70Y8g0L/QtdGA0LXQstC40YnRg9GUINC80LDQutGB0LjQvNCw0LvRjNC90L4g0LTQvtC/0YPRgdGC0LjQvNC1JyxcbiAgICAgICAgICAgIG1heExlbmd0aDogJ9CU0L7QstC20LjQvdCwINC30L3QsNGH0LXQvdC90Y8g0L/QvtC70Y8g0L/QtdGA0LXQstC40YnRg9GUINC80LDQutGB0LjQvNCw0LvRjNC90L4g0LTQvtC/0YPRgdGC0LjQvNC1JyxcbiAgICAgICAgICAgIG1pbjogJ9CX0L3QsNGH0LXQvdC90Y8g0L/QvtC70Y8g0LzQtdC90YjQtSDQvNGW0L3RltC80LDQu9GM0L3QviDQtNC+0L/Rg9GB0YLQuNC80L7Qs9C+JyxcbiAgICAgICAgICAgIG1pbkxlbmd0aDogJ9CU0L7QstC20LjQvdCwINC30L3QsNGH0LXQvdC90Y8g0L/QvtC70Y8g0LzQtdC90YjQtSDQvNCw0LrRgdC40LzQsNC70YzQvdC+INC00L7Qv9GD0YHRgtC40LzQvtCz0L4nLFxuICAgICAgICAgICAgcGF0dGVybjogJ9Cf0L7Qu9C1INC90LUg0LLRltC00L/QvtCy0ZbQtNCw0ZQg0YTQvtGA0LzQsNGC0YMnLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IFwi0J7QsdC+0LIn0Y/Qt9C60L7QstC1INC/0L7Qu9C1XCIsXG4gICAgICAgICAgICByZXF1aXJlZFRydWU6IFwi0J7QsdC+0LIn0Y/Qt9C60L7QstC1INC/0L7Qu9C1XCJcbiAgICAgICAgfVxuICAgIH0sXG4gICAgcGxhdGZvcm1WYXJpYW50TWFuYWdlbWVudDoge1xuICAgICAgICBtYW5hZ2U6ICfQo9C/0YDQsNCy0LvRltC90L3RjycsXG4gICAgICAgIHNhdmVBczogJ9CX0LHQtdGA0LXQs9GC0Lgg0Y/QuicsXG4gICAgICAgIHNhdmVWaWV3OiAn0JfQsdC10YDQtdCz0YLQuCDQktC40LQnLFxuICAgICAgICBzYXZlOiAn0JfQsdC10YDQtdCz0YLQuCcsXG4gICAgICAgIG15Vmlld3M6ICfQnNC+0Zcg0JLQuNC00LgnLFxuICAgICAgICB2aWV3OiAn0JLQuNC0JyxcbiAgICAgICAgc2V0QXNEZWZhdWx0OiAn0JLRgdGC0LDQvdC+0LLQuNGC0Lgg0LfQsCDQt9Cw0LzQvtCy0YfRg9Cy0LDQvdC90Y/QvCcsXG4gICAgICAgIHB1YmxpYzogJ9Cf0YPQsdC70ZbRh9C90LjQuScsXG4gICAgICAgIGFwcGx5QXV0b21hdGljYWxseTogJ9CX0LDRgdGC0L7RgdC+0LLRg9Cy0LDRgtC4INCw0LLRgtC+0LzQsNGC0LjRh9C90L4nLFxuICAgICAgICByZXF1aXJlZEZpZWxkRXJyb3I6IFwi0J7QsdC+0LIn0Y/Qt9C60L7QstC1INC/0L7Qu9C1LlwiLFxuICAgICAgICBuYW1lVGFrZW5GaWVsZEVycm9yOiBcItCS0LjQtCDQtyDRgtCw0LrQuNC8INGW0Lwn0Y/QvCDQstC20LUg0ZbRgdC90YPRlC4g0JLQstC10LTRltGC0Ywg0ZbQvdGI0LUg0ZbQvCfRjy5cIixcbiAgICAgICAgY2FuY2VsOiAn0KHQutCw0YHRg9Cy0LDRgtC4JyxcbiAgICAgICAgbWFuYWdlVmlld3M6ICfQo9C/0YDQsNCy0LvRltC90L3RjyDQstC40LTQsNC80LgnLFxuICAgICAgICBtYXJrQXNGYXZvdXJpdGU6ICfQn9C+0LfQvdCw0YfQuNGC0Lgg0Y/QuiDQvtCx0YDQsNC90LUnLFxuICAgICAgICBzaGFyaW5nOiAn0KHQv9GW0LvRjNC90LUg0LLQuNC60L7RgNC40YHRgtCw0L3QvdGPJyxcbiAgICAgICAgZGVmYXVsdDogJ9CX0LAg0LfQsNC80L7QstGH0YPQstCw0L3QvdGP0LwnLFxuICAgICAgICBjcmVhdGVkQnk6ICfQodGC0LLQvtGA0LjQsijQu9CwKScsXG4gICAgICAgIHJlbW92ZVZhcmlhbnQ6ICfQktC40LTQsNC70LjRgtC4INCy0LjQtCcsXG4gICAgICAgIHNlYXJjaDogJ9Cf0L7RiNGD0LonLFxuICAgICAgICBhY2Nlc3M6IHtcbiAgICAgICAgICAgIHB1YmxpYzogJ9Cf0YPQsdC70ZbRh9C90LUnLFxuICAgICAgICAgICAgcHJpdmF0ZTogJ9Cf0YDQuNCy0LDRgtC90LUnXG4gICAgICAgIH1cbiAgICB9LFxuICAgIHBsYXRmb3JtU2VsZWN0OiB7XG4gICAgICAgIHNlbGVjdE9wdGlvbkxhYmVsOiAn0JLQuNCx0LXRgNGW0YLRjCDQvtC/0YbRltGOJ1xuICAgIH0sXG4gICAgZm5TbGlkZXI6IHtcbiAgICAgICAgbWluTWF4RGV0YWlsczogJ9Cc0ZbQvdGW0LzQsNC70YzQvdC1INC30L3QsNGH0LXQvdC90Y8g0YHQu9Cw0LnQtNC10YDQsCB7e21pbn19LCDQvNCw0LrRgdC40LzQsNC70YzQvdC1INC30L3QsNGH0LXQvdC90Y8ge3sgbWF4IH19JyxcbiAgICAgICAgdmFsdWVtaW5EZXRhaWxzOiAn0J/QvtGC0L7Rh9C90LUg0LfQvdCw0YfQtdC90L3Rjzoge3sgdmFsdWUgfX0nLFxuICAgICAgICB2YWx1ZW1heERldGFpbHM6ICfQn9C+0YLQvtGH0L3QtSDQt9C90LDRh9C10L3QvdGPOiB7eyB2YWx1ZSB9fScsXG4gICAgICAgIHZhbHVlTm93RGV0YWlsczogJ9Cf0L7RgtC+0YfQvdC1INC30L3QsNGH0LXQvdC90Y86IHt7IHZhbHVlIH19J1xuICAgIH0sXG4gICAgZm5Td2l0Y2g6IHtcbiAgICAgICAgc2VtYW50aWNBY2NlcHRMYWJlbDogJ9Cf0YDQuNC50L3Rj9GC0LgnLFxuICAgICAgICBzZW1hbnRpY0RlY2xpbmVMYWJlbDogJ9CS0ZbQtNGF0LjQu9C40YLQuCdcbiAgICB9LFxuICAgIGNvcmVUcmVlOiB7XG4gICAgICAgIGV4cGFuZDogJ9Cg0L7Qt9Cz0L7RgNC90YPRgtC4INCy0YPQt9C+0LsnLFxuICAgICAgICBjb2xsYXBzZTogJ9CX0LPQvtGA0L3Rg9GC0Lgg0LLRg9C30L7QuycsXG4gICAgICAgIG5vRGF0YTogJ9Cd0LXQvNCw0ZQg0LTQsNC90LjRhSdcbiAgICB9XG59O1xuXG4vKipcbiAqIFBsdXJhbGl6YXRpb24gZm9yIFwiZmlsZVwiIHdvcmQgaW4gdWtyYWluaWFuIGxhbmd1YWdlXG4gKlxuICogT3V0cHV0IHNhbXBsZXM6XG4gKiAqIDEg0YTQsNC50LtcbiAqICogMiDRhNCw0LnQu9C4XG4gKiAqIDEwINGE0LDQudC70ZbQslxuICovXG5mdW5jdGlvbiBmaWxlTmFtZVBsdXJhbGl6YXRpb24ocGFyYW1zOiBGZExhbmd1YWdlS2V5QXJncyk6IHN0cmluZyB7XG4gICAgY29uc3QgZmlsZXNDb3VudCA9IHBhcmFtc1snZmlsZXNDb3VudCddO1xuICAgIGNvbnN0IGZpbGVzQ291bnRPcHRpb24gPSBwbHVyYWxpemF0aW9uLnByb2Nlc3MoZmlsZXNDb3VudCk7XG4gICAgc3dpdGNoIChmaWxlc0NvdW50T3B0aW9uKSB7XG4gICAgICAgIGNhc2UgJ29uZSc6XG4gICAgICAgICAgICByZXR1cm4gJzEg0YTQsNC50LsnO1xuICAgICAgICBjYXNlICdmZXcnOlxuICAgICAgICAgICAgcmV0dXJuIGAke2ZpbGVzQ291bnR9INGE0LDQudC70LhgO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIGAke2ZpbGVzQ291bnQgfHwgMH0g0YTQsNC50LvRltCyYDtcbiAgICB9XG59XG5cbi8qKlxuICogUGx1cmFsaXphdGlvbiBmb3IgXCJmb2xkZXJcIiB3b3JkIGluIHVrcmFpbmlhbiBsYW5ndWFnZVxuICpcbiAqIE91dHB1dHMgc2FtcGxlczpcbiAqICogMSDQv9Cw0L/QutGDXG4gKiAqIDIg0L/QsNC/0LrQuFxuICogKiAxMCDQv9Cw0L/QvtC6XG4gKi9cbmZ1bmN0aW9uIGZvbGRlck5hbWVQbHVyYWxpemF0aW9uKHBhcmFtczogRmRMYW5ndWFnZUtleUFyZ3MpOiBzdHJpbmcge1xuICAgIGNvbnN0IGZvbGRlcnNDb3VudCA9IHBhcmFtc1snZm9sZGVyc0NvdW50J107XG4gICAgY29uc3QgZm9sZGVyc0NvdW50T3B0aW9uID0gcGx1cmFsaXphdGlvbi5wcm9jZXNzKGZvbGRlcnNDb3VudCk7XG4gICAgc3dpdGNoIChmb2xkZXJzQ291bnRPcHRpb24pIHtcbiAgICAgICAgY2FzZSAnb25lJzpcbiAgICAgICAgICAgIHJldHVybiAnMSDQv9Cw0L/QutGDJztcbiAgICAgICAgY2FzZSAnZmV3JzpcbiAgICAgICAgICAgIHJldHVybiBgJHtmb2xkZXJzQ291bnR9INC/0LDQv9C60LhgO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIGAke2ZvbGRlcnNDb3VudCB8fCAwfSDQv9Cw0L/QvtC6YDtcbiAgICB9XG59XG4iXX0=
1083
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWtyYWluaWFuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9pMThuL3NyYy9saWIvbGFuZ3VhZ2VzL3VrcmFpbmlhbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxNQUFNLGFBQWEsR0FBRyxJQUFJLGlCQUFpQixFQUFFLENBQUM7QUFFOUMsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQWU7SUFDN0MsWUFBWSxFQUFFO1FBQ1Ysa0JBQWtCLEVBQUUsYUFBYTtRQUNqQyx3QkFBd0IsRUFBRSx3QkFBd0I7UUFDbEQsbUJBQW1CLEVBQUUsZ0JBQWdCO1FBQ3JDLGtCQUFrQixFQUFFLGNBQWM7UUFDbEMsaUJBQWlCLEVBQUUsZ0JBQWdCO1FBQ25DLGFBQWEsRUFBRSxlQUFlO1FBQzlCLGtCQUFrQixFQUFFLG1CQUFtQjtRQUN2QyxjQUFjLEVBQUUsa0JBQWtCO1FBQ2xDLGVBQWUsRUFBRSxtQkFBbUI7UUFDcEMsaUJBQWlCLEVBQUUsY0FBYztRQUNqQyxVQUFVLEVBQUUsVUFBVTtRQUN0QixlQUFlLEVBQUUsbUJBQW1CO1FBQ3BDLGFBQWEsRUFBRSxrQkFBa0I7UUFDakMsY0FBYyxFQUFFLFlBQVk7UUFDNUIsa0JBQWtCLEVBQUUsa0JBQWtCO1FBQ3RDLDBCQUEwQixFQUFFLFVBQVU7UUFDdEMsNEJBQTRCLEVBQUUsY0FBYztRQUM1Qyw0QkFBNEIsRUFBRSxZQUFZO1FBQzFDLGlDQUFpQyxFQUFFLHVCQUF1QjtLQUM3RDtJQUNELGlCQUFpQixFQUFFO1FBQ2Ysc0JBQXNCLEVBQUUsOEJBQThCO1FBQ3RELGNBQWMsRUFBRSxrREFBa0Q7S0FDckU7SUFDRCxZQUFZLEVBQUU7UUFDVixzQkFBc0IsRUFBRSxrQ0FBa0M7UUFDMUQsdUJBQXVCLEVBQUUsZ0NBQWdDO0tBQzVEO0lBQ0QsY0FBYyxFQUFFO1FBQ1osY0FBYyxFQUFF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RSxNQUFNLEVBQUUsV0FBVztRQUNuQixXQUFXLEVBQUUsbUJBQW1CO1FBQ2hDLGVBQWUsRUFBRSxxQkFBcUI7UUFDdEMsT0FBTyxFQUFFLHNCQUFzQjtRQUMvQixPQUFPLEVBQUUsa0JBQWtCO1FBQzNCLFNBQVMsRUFBRSxhQUFhO1FBQ3hCLGFBQWEsRUFBRSxjQUFjO1FBQzdCLE1BQU0sRUFBRSxPQUFPO1FBQ2YsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFO0tBQ3REO0lBQ0QsY0FBYyxFQUFFLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUU7SUFDdkQsUUFBUSxFQUFFO1FBQ04sYUFBYSxFQUFFLHNFQUFzRTtRQUNyRixlQUFlLEVBQUUsK0JBQStCO1FBQ2hELGVBQWUsRUFBRSwrQkFBK0I7UUFDaEQsZUFBZSxFQUFFLCtCQUErQjtLQUNuRDtJQUNELFFBQVEsRUFBRSxFQUFFLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxvQkFBb0IsRUFBRSxXQUFXLEVBQUU7SUFDaEYsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFO0NBQzlGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSAqL1xuaW1wb3J0IHsgRmRMYW5ndWFnZSB9IGZyb20gJy4uL21vZGVscy9sYW5nJztcbmltcG9ydCB7IFBsdXJhbGl6YXRpb25TZXQxIH0gZnJvbSAnLi9wbHVyYWxpemF0aW9uL3NldDEnO1xuY29uc3QgcGx1cmFsaXphdGlvbiA9IG5ldyBQbHVyYWxpemF0aW9uU2V0MSgpO1xuXG5leHBvcnQgY29uc3QgRkRfTEFOR1VBR0VfVUtSQUlOSUFOOiBGZExhbmd1YWdlID0ge1xuICAgIGNvcmVDYWxlbmRhcjoge1xuICAgICAgICB5ZWFyU2VsZWN0aW9uTGFiZWw6ICfQntCx0LXRgNGW0YLRjCDRgNGW0LonLFxuICAgICAgICB5ZWFyc1JhbmdlU2VsZWN0aW9uTGFiZWw6ICfQntCx0LXRgNGW0YLRjCDQtNGW0LDQv9Cw0LfQvtC9INGA0L7QutGW0LInLFxuICAgICAgICBtb250aFNlbGVjdGlvbkxhYmVsOiAn0J7QsdC10YDRltGC0Ywg0LzRltGB0Y/RhtGMJyxcbiAgICAgICAgZGF0ZVNlbGVjdGlvbkxhYmVsOiAn0J7QsdC10YDRltGC0Ywg0LTQsNGC0YMnLFxuICAgICAgICBwcmV2aW91c1llYXJMYWJlbDogJ9Cf0L7Qv9C10YDQtdC00L3RltC5INGA0ZbQuicsXG4gICAgICAgIG5leHRZZWFyTGFiZWw6ICfQndCw0YHRgtGD0L/QvdC40Lkg0YDRltC6JyxcbiAgICAgICAgcHJldmlvdXNNb250aExhYmVsOiAn0J/QvtC/0LXRgNC10LTQvdGW0Lkg0LzRltGB0Y/RhtGMJyxcbiAgICAgICAgbmV4dE1vbnRoTGFiZWw6ICfQndCw0YHRgtGD0L/QvdC40Lkg0LzRltGB0Y/RhtGMJyxcbiAgICAgICAgd2Vla0NvbHVtbkxhYmVsOiAn0KLQuNC20LTQtdC90Ywg0LrQsNC70LXQvdC00LDRgNGPJyxcbiAgICAgICAgZGF0ZVNlbGVjdGVkTGFiZWw6ICfQktC40LHRgNCw0L3QsCDQtNCw0YLQsCcsXG4gICAgICAgIHRvZGF5TGFiZWw6ICfQodGM0L7Qs9C+0LTQvdGWJyxcbiAgICAgICAgcmFuZ2VTdGFydExhYmVsOiAn0J/QvtGH0LDRgtC+0Log0LTRltCw0L/QsNC30L7QvdGDJyxcbiAgICAgICAgcmFuZ2VFbmRMYWJlbDogJ9Ca0ZbQvdC10YbRjCDQtNGW0LDQv9Cw0LfQvtC90YMnLFxuICAgICAgICBkYXlJblBhc3RMYWJlbDogJ9Cc0LjQvdGD0LvRliDQtNC90ZYnLFxuICAgICAgICBjbG9zZUNhbGVuZGFyTGFiZWw6ICfQl9Cw0LrRgNC40YLQuCDQutCw0LvQtdC90LTQsNGAJyxcbiAgICAgICAgY2FsZW5kYXJEYXlWaWV3RGVzY3JpcHRpb246ICfQmtCw0LvQtdC90LTQsNGAJyxcbiAgICAgICAgY2FsZW5kYXJNb250aFZpZXdEZXNjcmlwdGlvbjogJ9CS0LjQsdGW0YAg0LzRltGB0Y/RhtGPJyxcbiAgICAgICAgY2FsZW5kYXJZZWFyc1ZpZXdEZXNjcmlwdGlvbjogJ9CS0LjQsdGW0YAg0YDQvtC60YMnLFxuICAgICAgICBjYWxlbmRhclllYXJzUmFuZ2VWaWV3RGVzY3JpcHRpb246ICfQktC40LHRltGAINC00ZbQsNC/0LDQt9C+0L3RgyDRgNC+0LrRltCyJ1xuICAgIH0sXG4gICAgY29yZU11bHRpQ29tYm9Cb3g6IHtcbiAgICAgICAgbXVsdGlDb21ib0JveEFyaWFMYWJlbDogJ9CR0LDQs9Cw0YLQvtC30L3QsNGH0L3QtSDQv9C+0LvQtSDQt9GWINGB0L/QuNGB0LrQvtC8JyxcbiAgICAgICAgc2VsZWN0QWxsTGFiZWw6ICfQktC40LHRgNCw0YLQuCDQstGB0LUgKHt7c2VsZWN0ZWRJdGVtc319INC3IHt7dG90YWxJdGVtc319KSdcbiAgICB9LFxuICAgIGNvcmVDYXJvdXNlbDoge1xuICAgICAgICBsZWZ0TmF2aWdhdGlvbkJ0bkxhYmVsOiAn0J/QtdGA0LXQudGC0Lgg0LTQviDQv9C+0L/QtdGA0LXQtNC90YzQvtCz0L4g0LXQu9C10LzQtdC90YLQsCcsXG4gICAgICAgIHJpZ2h0TmF2aWdhdGlvbkJ0bkxhYmVsOiAn0J/QtdGA0LXQudGC0Lgg0LTQviDQvdCw0YHRgtGD0L/QvdC+0LPQviDQtdC70LXQvNC10L3RgtCwJ1xuICAgIH0sXG4gICAgY29yZURhdGVQaWNrZXI6IHtcbiAgICAgICAgZGF0ZUlucHV0TGFiZWw6ICfQn9C+0LvQtSDQstCy0L7QtNGDINC00LDRgtC4JyxcbiAgICAgICAgZGF0ZVJhbmdlSW5wdXRMYWJlbDogJ9Cf0L7Qu9C1INCy0LLQtdC00LXQvdC90Y8g0LTRltCw0L/QsNC30L7QvdGDINC00LDRgicsXG4gICAgICAgIGRpc3BsYXlDYWxlbmRhclRvZ2dsZUxhYmVsOiAn0JLRltC00LrRgNC40YLQuCDQt9Cw0YHRltCxINCy0LjQsdC+0YDRgycsXG4gICAgICAgIHZhbHVlU3RhdGVTdWNjZXNzTWVzc2FnZTogJ9CX0L3QsNGH0LXQvdC90Y8g0YHRgtCw0L3Rgzog0KPRgdC/0ZbRhScsXG4gICAgICAgIHZhbHVlU3RhdGVJbmZvcm1hdGlvbk1lc3NhZ2U6ICfQl9C90LDRh9C10L3QvdGPINGB0YLQsNC90YM6INCG0L3RhNC+0YDQvNCw0YbRltC50L3QuNC5JyxcbiAgICAgICAgdmFsdWVTdGF0ZVdhcm5pbmdNZXNzYWdlOiAn0JfQvdCw0YfQtdC90L3RjyDRgdGC0LDQvdGDOiDQn9C+0L/QtdGA0LXQtNC20LXQvdC90Y8nLFxuICAgICAgICB2YWx1ZVN0YXRlRXJyb3JNZXNzYWdlOiAn0JfQvdCw0YfQtdC90L3RjyDRgdGC0LDQvdGDOiDQn9C+0LzQuNC70LrQsCdcbiAgICB9LFxuICAgIGNvcmVEYXRldGltZVBpY2tlcjoge1xuICAgICAgICBkYXRldGltZUlucHV0TGFiZWw6ICfQn9C+0LvQtSDQstCy0L7QtNGDINC00LDRgtC4INGC0LAg0YfQsNGB0YMnLFxuICAgICAgICBkaXNwbGF5RGF0ZXRpbWVUb2dnbGVMYWJlbDogJ9Cf0L7QutCw0LfQsNGC0Lgg0LrQsNC70LXQvdC00LDRgCcsXG4gICAgICAgIGRpc3BsYXlUeXBlRGF0ZUxhYmVsOiAn0JTQsNGC0LAnLFxuICAgICAgICBkaXNwbGF5VHlwZVRpbWVMYWJlbDogJ9Cn0LDRgScsXG4gICAgICAgIGRhdGV0aW1lT2tMYWJlbDogJ09LJyxcbiAgICAgICAgZGF0ZXRpbWVDYW5jZWxMYWJlbDogJ9CS0ZbQtNC80ZbQvdC40YLQuCdcbiAgICB9LFxuICAgIGNvcmVGZWVkTGlzdEl0ZW06IHsgbW9yZUxhYmVsOiAn0JHRltC70YzRiNC1JywgbGVzc0xhYmVsOiAn0JzQtdC90YjQtScgfSxcbiAgICBjb3JlR3JpZExpc3Q6IHtcbiAgICAgICAgZmlsdGVyQmFyQ2FuY2VsQnV0dG9uVGl0bGU6ICfQodC60LDRgdGD0LLQsNGC0LgnLFxuICAgICAgICBsaXN0SXRlbVN0YXR1c0FyaWFMYWJlbDogJ9CV0LvQtdC80LXQvdGCINC80LDRlCDRgdGC0LDRgtGD0YEuINCh0YLQsNGC0YPRgToge3tzdGF0dXN9fS4nLFxuICAgICAgICBsaXN0SXRlbUNvdW50ZXJBcmlhTGFiZWw6IChwYXJhbXMpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBg0JXQu9C10LzQtdC90YIg0LzQsNGUICR7KCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocGFyYW1zWydjb3VudCddID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBg0L7QtNC40L0g0LTQvtGH0ZbRgNC90ZbQuSDQtdC70LXQvNC10L3RgmA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChwbHVyYWxpemF0aW9uLnByb2Nlc3MocGFyYW1zWydjb3VudCddKSA9PT0gJ2ZldycpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke3BhcmFtc1snY291bnQnXX0g0LTQvtGH0ZbRgNC90ZbRhSDQtdC70LXQvNC10L3RgtCwYDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7cGFyYW1zWydjb3VudCddfSDQtNC+0YfRltGA0L3RltGFINC10LvQtdC80LXQvdGC0ZbQsmA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkoKX0uYDtcbiAgICAgICAgfSxcbiAgICAgICAgbGlzdEl0ZW1CdXR0b25EZXRhaWxzVGl0bGU6ICfQn9C+0LTRgNC+0LHQuNGG0ZYnLFxuICAgICAgICBsaXN0SXRlbUJ1dHRvbkRlbGV0ZVRpdGxlOiAn0JLQuNC00LDQu9C40YLQuCcsXG4gICAgICAgIGxpc3RJdGVtU3RhdHVzQ29udGFpbnNFcnJvcnM6ICfQnNGW0YHRgtC40YLRjCDQv9C+0LzQuNC70LrQuCcsXG4gICAgICAgIGxpc3RJdGVtU3RhdHVzTG9ja2VkOiAn0JfQsNCx0LvQvtC60L7QstCw0L3QvicsXG4gICAgICAgIGxpc3RJdGVtU3RhdHVzRHJhZnQ6ICfQp9C10YDQvdC10YLQutCwJ1xuICAgIH0sXG4gICAgY29yZU1lc3NhZ2VTdHJpcDogeyBkaXNtaXNzTGFiZWw6ICfQl9Cw0LrRgNC40YLQuCcgfSxcbiAgICBjb3JlTXVsdGlJbnB1dDoge1xuICAgICAgICBtdWx0aUlucHV0QXJpYUxhYmVsOiAnTXVsdGkgVmFsdWUgSW5wdXQnLFxuICAgICAgICBub1Jlc3VsdHM6ICfQndC10LzQsNGUINGA0LXQt9GD0LvRjNGC0LDRgtGW0LIuJyxcbiAgICAgICAgbmF2aWdhdGVTZWxlY3Rpb25zV2l0aEFycm93czogJ9Cd0LDQstGW0LPQsNGG0ZbRjyDQt9C00ZbQudGB0L3RjtGU0YLRjNGB0Y8g0LfQsCDQtNC+0L/QvtC80L7Qs9C+0Y4g0LrQu9Cw0LLRltGIINC30ZYg0YHRgtGA0ZbQu9C60LDQvNC4IFwi0LLQs9C+0YDRg1wiINGC0LAgXCLQstC90LjQt1wiJyxcbiAgICAgICAgY291bnRMaXN0UmVzdWx0c1Npbmd1bGFyOiAnMSDQtdC70LXQvNC10L3Rgi4nLFxuICAgICAgICBjb3VudExpc3RSZXN1bHRzUGx1cmFsOiAocGFyYW1zKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gYCR7KCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocGFyYW1zWydjb3VudCddID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgMSDQtdC70LXQvNC10L3Rgi5gO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAocGx1cmFsaXphdGlvbi5wcm9jZXNzKHBhcmFtc1snY291bnQnXSkgPT09ICdmZXcnKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtwYXJhbXNbJ2NvdW50J119INC10LvQtdC80LXQvdGC0LguYDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7cGFyYW1zWydjb3VudCddfSDQtdC70LXQvNC10L3RgtGW0LIuYDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSgpfWA7XG4gICAgICAgIH0sXG4gICAgICAgIGVzY2FwZU5hdmlnYXRlVG9rZW5zOlxuICAgICAgICAgICAgJ9Cd0LDRgtC40YHQvdGW0YLRjCDQutC70LDQstGW0YjRgyBcIkVzY2FwZVxcXFwg0YnQvtCxINCy0LjQudGC0Lgg0Lcg0L/QvtC70Y8g0LLQstC10LTQtdC90L3Rjywg0ZYg0LLQuNC60L7RgNC40YHRgtC+0LLRg9C50YLQtSDQutC70LDQstGW0YjRliDQt9GWINGB0YLRgNGW0LvQutCw0LzQuCBcItCy0LvRltCy0L5cIiDRgtCwIFwi0LLQv9GA0LDQstC+XCIg0LTQu9GPINC90LDQstGW0LPQsNGG0ZbRlyDQvNGW0LYg0LLQuNCx0YDQsNC90LjQvNC4INC/0LDRgNCw0LzQtdGC0YDQsNC80LguJyxcbiAgICAgICAgdG9rZW5zQ291bnRUZXh0OiAocGFyYW1zKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gYCR7KCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocGFyYW1zWydsZW5ndGgnXSA9PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBg0J3QtdC80LDRlCDQstC40LHRgNCw0L3QuNGFYDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYNCe0LHRgNCw0L3QviAke3BhcmFtc1snbGVuZ3RoJ119YDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSgpfSAkeygoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHBhcmFtc1snbGVuZ3RoJ10gPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGDQstCw0YDRltCw0L3RgmA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChwbHVyYWxpemF0aW9uLnByb2Nlc3MocGFyYW1zWydsZW5ndGgnXSkgPT09ICdmZXcnKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBg0LLQsNGA0ZbQsNC90YLQuGA7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGDQstCw0YDRltCw0L3RgtGW0LJgO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pKCl9LmA7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGNvcmVOYXZpZ2F0aW9uOiB7IG1haW5OYXZpZ2F0aW9uOiAnTWFpbiBOYXZpZ2F0aW9uJywgbmF2aWdhdGlvblBhdGg6ICdOYXZpZ2F0aW9uIFBhdGgnIH0sXG4gICAgY29yZU5lc3RlZExpc3Q6IHtcbiAgICAgICAgbGlua0l0ZW1BcmlhTGFiZWw6ICfQldC70LXQvNC10L3RgiDQtNC10YDQtdCy0LAge3tpdGVtRGV0YWlsc319LCB7e2luZGV4fX0g0ZbQtyB7e3RvdGFsfX17e3NlbGVjdGVkRGVzY3JpcHRpb259fSdcbiAgICB9LFxuICAgIGNvcmVPdmVyZmxvd0xheW91dDoge1xuICAgICAgICBtb3JlSXRlbXNCdXR0b246IChwYXJhbXMpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBg0KnQtSAkeygoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHBhcmFtc1snY291bnQnXSA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYNC10LvQtdC80LXQvdGCYDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHBsdXJhbGl6YXRpb24ucHJvY2VzcyhwYXJhbXNbJ2NvdW50J10pID09PSAnZmV3Jykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYNC10LvQtdC80LXQvdGC0LBgO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBg0LXQu9C10LzQtdC90YLRltCyYDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSgpfWA7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGNvcmVQYWdpbmF0aW9uOiB7XG4gICAgICAgIHBhZ2VMYWJlbDogJ9Ch0YLQvtGA0ZbQvdC60LAge3twYWdlTnVtYmVyfX0nLFxuICAgICAgICBjdXJyZW50UGFnZUFyaWFMYWJlbDogJ9Ch0YLQvtGA0ZbQvdC60LAge3twYWdlTnVtYmVyfX0g0ZQg0LDQutGC0LjQstC90L7RjicsXG4gICAgICAgIGxhYmVsQmVmb3JlSW5wdXRNb2JpbGU6ICfQodGC0L7RgNGW0L3QutCwOicsXG4gICAgICAgIGxhYmVsQWZ0ZXJJbnB1dE1vYmlsZTogJ9GW0Lcge3t0b3RhbENvdW50fX0nLFxuICAgICAgICBpbnB1dEFyaWFMYWJlbDogJ9Cf0L7Qu9C1INCy0LLQvtC00YMg0YHRgtC+0YDRltC90LrQuCwg0J/QvtGC0L7Rh9C90LAg0YHRgtC+0YDRltC90LrQsCwg0KHRgtC+0YDRltC90LrQsCB7e3BhZ2VOdW1iZXJ9fSDRltC3IHt7dG90YWxDb3VudH19JyxcbiAgICAgICAgaXRlbXNQZXJQYWdlTGFiZWw6ICfQoNC10LfRg9C70YzRgtCw0YLRltCyINC90LAg0YHRgtC+0YDRltC90YbRljonLFxuICAgICAgICBmaXJzdExhYmVsOiAn0J/QtdGA0LXQudGC0Lgg0LTQviDQv9C10YDRiNC+0ZcnLFxuICAgICAgICBwcmV2aW91c0xhYmVsOiAn0J/QtdGA0LXQudGC0Lgg0LTQviDQv9C+0L/QtdGA0LTQvdGM0L7RlycsXG4gICAgICAgIG5leHRMYWJlbDogJ9Cf0LXRgNC10LnRgtC4INC00L4g0L3QsNGB0YLRg9C/0L3QvtGXJyxcbiAgICAgICAgbGFzdExhYmVsOiAn0J/QtdGA0LXQudGC0Lgg0LTQviDQvtGB0YLQsNC90L3RjNC+0ZcnLFxuICAgICAgICBhcmlhTGFiZWw6ICfQndGD0LzQtdGA0LDRhtGW0Y8g0YHRgtC+0YDRltC90L7QuicsXG4gICAgICAgIHRvdGFsUmVzdWx0c0xhYmVsOiAne3t0b3RhbENvdW50fX0g0YDQtdC30YPQu9GM0YLQsNGC0ZbQsidcbiAgICB9LFxuICAgIGNvcmVQcm9kdWN0U3dpdGNoOiB7IGFyaWFMYWJlbDogJ9Cf0LXRgNC10LzQuNC60LDRhycgfSxcbiAgICBjb3JlU2hlbGxiYXI6IHsgY29sbGFwc2VkSXRlbU1lbnVMYWJlbDogJ9CX0LPQvtGA0L3Rg9GC0LUg0LzQtdC90Y4g0LXQu9C10LzQtdC90YLRltCyJywgY2FuY2VsOiAn0JLRltC00LzRltC90LAnLCBzZWFyY2g6ICfQn9C+0YjRg9C6JyB9LFxuICAgIGNvcmVTbGlkZXI6IHtcbiAgICAgICAgc2luZ2xlTWluTWF4RGV0YWlsczogJ9Cc0ZbQvdGW0LzQsNC70YzQvdC1INC30L3QsNGH0LXQvdC90Y8g0YHQu9Cw0LnQtNC10YDQsCB7e21pbn19LCDQvNCw0LrRgdC40LzQsNC70YzQvdC1INC30L3QsNGH0LXQvdC90Y8ge3ttYXh9fScsXG4gICAgICAgIHNpbmdsZVZhbHVlbWluRGV0YWlsczogJ9Cf0L7RgtC+0YfQvdC1INC30L3QsNGH0LXQvdC90Y86IHt7dmFsdWV9fScsXG4gICAgICAgIHNpbmdsZVZhbHVlbWF4RGV0YWlsczogJ9Cf0L7RgtC+0YfQvdC1INC30L3QsNGH0LXQvdC90Y86IHt7dmFsdWV9fScsXG4gICAgICAgIHNpbmdsZVZhbHVlTm93RGV0YWlsczogJ9Cf0L7RgtC+0YfQvdC1INC30L3QsNGH0LXQvdC90Y86IHt7dmFsdWV9fScsXG4gICAgICAgIG11bHRpcGxlSGFuZGxlMU1pbk1heERldGFpbHM6ICfQnNGW0L3RltC80LDQu9GM0L3QtSDQt9C90LDRh9C10L3QvdGPINGB0LvQsNC50LTQtdGA0LAge3ttaW59fSwg0LzQsNC60YHQuNC80LDQu9GM0L3QtSDQt9C90LDRh9C10L3QvdGPIHt7bWF4fX0nLFxuICAgICAgICBtdWx0aXBsZUhhbmRsZTFWYWx1ZW1pbkRldGFpbHM6ICfQn9C+0YLQvtGH0L3QtSDQt9C90LDRh9C10L3QvdGPOiB7e3ZhbHVlfX0nLFxuICAgICAgICBtdWx0aXBsZUhhbmRsZTFWYWx1ZW1heERldGFpbHM6ICfQn9C+0YLQvtGH0L3QtSDQt9C90LDRh9C10L3QvdGPOiB7e3ZhbHVlfX0nLFxuICAgICAgICBtdWx0aXBsZUhhbmRsZTFWYWx1ZU5vd0RldGFpbHM6ICfQn9C+0YLQvtGH0L3QtSDQt9C90LDRh9C10L3QvdGPOiB7e3ZhbHVlfX0nLFxuICAgICAgICBtdWx0aXBsZUhhbmRsZTJNaW5NYXhEZXRhaWxzOiAn0JzRltC90ZbQvNCw0LvRjNC90LUg0LfQvdCw0YfQtdC90L3RjyDRgdC70LDQudC00LXRgNCwIHt7bWlufX0sINC80LDQutGB0LjQvNCw0LvRjNC90LUg0LfQvdCw0YfQtdC90L3RjyB7e21heH19JyxcbiAgICAgICAgbXVsdGlwbGVIYW5kbGUyVmFsdWVtaW5EZXRhaWxzOiAn0J/QvtGC0L7Rh9C90LUg0LfQvdCw0YfQtdC90L3Rjzoge3t2YWx1ZX19JyxcbiAgICAgICAgbXVsdGlwbGVIYW5kbGUyVmFsdWVtYXhEZXRhaWxzOiAn0J/QvtGC0L7Rh9C90LUg0LfQvdCw0YfQtdC90L3Rjzoge3t2YWx1ZX19JyxcbiAgICAgICAgbXVsdGlwbGVIYW5kbGUyVmFsdWVOb3dEZXRhaWxzOiAn0J/QvtGC0L7Rh9C90LUg0LfQvdCw0YfQtdC90L3Rjzoge3t2YWx1ZX19J1xuICAgIH0sXG4gICAgY29yZVNwbGl0QnV0dG9uOiB7IGV4cGFuZEJ1dHRvbkFyaWFMYWJlbDogJ9CR0ZbQu9GM0YjQtSDQtNGW0LknLCBhcmlhbExhYmVsOiAn0JrQvdC+0L/QutCwINGA0L7Qt9C00ZbQu9C10L3QvdGPJyB9LFxuICAgIGNvcmVTcGxpdHRlcjogeyBwYWdpbmF0aW9uSXRlbUFyaWFMYWJlbDogJ9Ch0LXQutGG0ZbRjycgfSxcbiAgICBjb3JlU3RlcElucHV0OiB7XG4gICAgICAgIGluY3JlbWVudEJ1dHRvblRpdGxlOiAn0JfQsdGW0LvRjNGI0LjRgtC4JyxcbiAgICAgICAgZGVjcmVtZW50QnV0dG9uVGl0bGU6ICfQl9C80LXQvdGI0LjRgtC4JyxcbiAgICAgICAgYXJpYVJvbGVEZXNjcmlwdGlvbjogJ9Ca0YDQvtC6INCy0LLQvtC00YMnXG4gICAgfSxcbiAgICBjb3JlU3dpdGNoOiB7IHNlbWFudGljQWNjZXB0TGFiZWw6ICfQn9GA0LjQudC90Y/RgtC4Jywgc2VtYW50aWNEZWNsaW5lTGFiZWw6ICfQktGW0LTRhdC40LvQuNGC0LgnIH0sXG4gICAgY29yZVRhYnM6IHsgdGFiTGlzdEV4cGFuZEJ1dHRvblRleHQ6ICfQkdGW0LvRjNGI0LUnIH0sXG4gICAgY29yZVRleHQ6IHsgbW9yZUxhYmVsOiAn0JHRltC70YzRiNC1JywgbGVzc0xhYmVsOiAn0JzQtdC90YjQtScgfSxcbiAgICBjb3JlVGltZToge1xuICAgICAgICBjb21wb25lbnRBcmlhTmFtZTogJ9CS0LjQsdGW0YAg0YfQsNGB0YMnLFxuICAgICAgICBpbmNyZWFzZUhvdXJzTGFiZWw6ICfQl9Cx0ZbQu9GM0YjQuNGC0Lgg0LPQvtC00LjQvdC4JyxcbiAgICAgICAgaHJzTGFiZWw6ICfQk9C+0LQnLFxuICAgICAgICBkZWNyZWFzZUhvdXJzTGFiZWw6ICdEZWNyZWFzZSBob3VycycsXG4gICAgICAgIGluY3JlYXNlTWludXRlc0xhYmVsOiAnSW5jcmVhc2UgbWludXRlcycsXG4gICAgICAgIG1pbkxhYmVsOiAnTWluJyxcbiAgICAgICAgZGVjcmVhc2VNaW51dGVzTGFiZWw6ICdEZWNyZWFzZSBtaW51dGVzJyxcbiAgICAgICAgaW5jcmVhc2VTZWNvbmRzTGFiZWw6ICdJbmNyZWFzZSBzZWNvbmRzJyxcbiAgICAgICAgc2VjTGFiZWw6ICdTZWMnLFxuICAgICAgICBob3Vyc0xhYmVsOiAnSG91cnMnLFxuICAgICAgICBtaW51dGVzTGFiZWw6ICdNaW51dGVzJyxcbiAgICAgICAgc2Vjb25kc0xhYmVsOiAnU2Vjb25kcycsXG4gICAgICAgIGRlY3JlYXNlU2Vjb25kc0xhYmVsOiAn0JfQvNC10L3RiNC40YLQuCDRgdC10LrRg9C90LTQuCcsXG4gICAgICAgIGluY3JlYXNlUGVyaW9kTGFiZWw6ICfQl9Cx0ZbQu9GM0YjQuNGC0Lgg0L/QtdGA0ZbQvtC0JyxcbiAgICAgICAgcGVyaW9kTGFiZWw6ICfQn9C10YDRltC+0LQnLFxuICAgICAgICBkZWNyZWFzZVBlcmlvZExhYmVsOiAn0JfQvNC10L3RiNC40YLQuCDQv9C10YDRltC+0LQnLFxuICAgICAgICBuYXZpZ2F0aW9uSW5zdHJ1Y3Rpb246XG4gICAgICAgICAgICAn0KnQvtCxINC/0LXRgNC10LzRltGJ0LDRgtC40YHRjyDQvNGW0LYg0LXQu9C10LzQtdC90YLQsNC80Lgg0LIg0YbRjNC+0LzRgyDRgdC/0LjRgdC60YMsINCy0LjQutC+0YDQuNGB0YLQvtCy0YPQudGC0LUg0YHRgtGA0ZbQu9C60YMg0LLQstC10YDRhSDQsNCx0L4g0LLQvdC40LcuINCU0LvRjyDQv9C10YDQtdC60LvRjtGH0LXQvdC90Y8g0LzRltC2INGB0L/QuNGB0LrQsNC80Lgg0LLQuNC60L7RgNC40YHRgtC+0LLRg9C50YLQtSDRgdGC0YDRltC70LrRgyDQstC70ZbQstC+INCw0LHQviDQstC/0YDQsNCy0L4uJ1xuICAgIH0sXG4gICAgY29yZVRpbWVQaWNrZXI6IHsgdGltZVBpY2tlcklucHV0TGFiZWw6ICfQn9C+0LvQtSDQstCy0L7QtNGDINGH0LDRgdGDJywgdGltZVBpY2tlckJ1dHRvbkxhYmVsOiAn0JLRltC00LrRgNC40YLQuCDQstGW0LrQvdC+INCy0LjQsdC+0YDRgycgfSxcbiAgICBjb3JlVG9rZW46IHsgZGVsZXRlQnV0dG9uTGFiZWw6ICfQnNC+0LbQtSDQsdGD0YLQuCDQstC40LTQsNC70LXQvdC40LwnLCBhcmlhUm9sZURlc2NyaXB0aW9uOiAn0YLQvtC60LXQvScgfSxcbiAgICBjb3JlVG9rZW5pemVyOiB7XG4gICAgICAgIG1vcmVMYWJlbDogKHBhcmFtcykgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGDQqdC1ICR7KCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocGFyYW1zWydjb3VudCddID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtwYXJhbXNbJ2NvdW50J119INC10LvQtdC80LXQvdGCYDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHBsdXJhbGl6YXRpb24ucHJvY2VzcyhwYXJhbXNbJ2NvdW50J10pID09PSAnZmV3Jykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7cGFyYW1zWydjb3VudCddfSDQtdC70LXQvNC10L3RgtCwYDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7cGFyYW1zWydjb3VudCddfSDQtdC70LXQvNC10L3RgtGW0LJgO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pKCl9YDtcbiAgICAgICAgfSxcbiAgICAgICAgdG9rZW5pemVyTGFiZWw6ICdUb2tlbml6ZXInXG4gICAgfSxcbiAgICBjb3JlVXBsb2FkQ29sbGVjdGlvbjoge1xuICAgICAgICBtZW51T2tUZXh0OiAn0J7QmicsXG4gICAgICAgIG1lbnVDYW5jZWxUZXh0OiAn0JLRltC00LzRltC90LjRgtC4JyxcbiAgICAgICAgbWVudUVkaXRBcmlhTGFiZWw6ICfQoNC10LTQsNCz0YPQstCw0YLQuCcsXG4gICAgICAgIG1lbnVEZWxldGVBcmlhTGFiZWw6ICfQktC40LTQsNC70LjRgtC4JyxcbiAgICAgICAgbWVudU9rQXJpYUxhYmVsOiAn0KDQtdC00LDQs9GD0LLQsNGC0LgnLFxuICAgICAgICBtZW51Q2FuY2VsQXJpYUxhYmVsOiAn0JLRltC00LzQuNC90LjRgtC4JyxcbiAgICAgICAgZm9ybUl0ZW1QbGFjZWhvbGRlcjogXCLQhtC8J9GPINGE0LDQudC70YNcIlxuICAgIH0sXG4gICAgY29yZVdpemFyZDogeyBhcmlhTGFiZWw6ICfQnNCw0LnRgdGC0LXRgCcgfSxcbiAgICBjb3JlQnJlYWRjcnVtYjogeyBvdmVyZmxvd1RpdGxlTW9yZTogJ9CR0ZbQu9GM0YjQtScgfSxcbiAgICBwbGF0Zm9ybUFjdGlvbkJhcjogeyBiYWNrQnV0dG9uTGFiZWw6ICfQn9C+0LLQtdGA0L3Rg9GC0LjRgdGPINC90LDQt9Cw0LQnIH0sXG4gICAgcGxhdGZvcm1BcHByb3ZhbEZsb3c6IHtcbiAgICAgICAgYWRkTm9kZUJ1dHRvblRpdGxlOiAn0JTQvtC00LDRgtC4JyxcbiAgICAgICAgbm9kZU1lbnVCdXR0b25UaXRsZTogJ9Cc0LXQvdGOJyxcbiAgICAgICAgZGVmYXVsdFdhdGNoZXJzTGFiZWw6ICfQodC/0L7RgdGC0LXRgNGW0LPQsNGH0ZYnLFxuICAgICAgICBkZWZhdWx0VGl0bGU6ICfQn9GA0L7RhtC10YEg0LfQsNGC0LLQtdGA0LTQttC10L3QvdGPJyxcbiAgICAgICAgbmV4dEJ1dHRvbkFyaWFMYWJlbDogJ9Cf0LXRgNC10LnRgtC4INC00L4g0L3QsNGB0YLRg9C/0L3QvtCz0L4g0YHQu9Cw0LnQtNGDJyxcbiAgICAgICAgcHJldkJ1dHRvbkFyaWFMYWJlbDogJ9Cf0LXRgNC10LnRgtC4INC00L4g0L/QvtC/0LXRgNC10LTQvdGM0L7Qs9C+INGB0LvQsNC50LTRgycsXG4gICAgICAgIGVkaXRNb2RlU2F2ZUJ1dHRvbkxhYmVsOiAn0JfQsdC10YDQtdCz0YLQuCcsXG4gICAgICAgIGVkaXRNb2RlRXhpdEJ1dHRvbkxhYmVsOiAn0JLQuNC50YLQuCcsXG4gICAgICAgIGVtcHR5VGl0bGU6ICfQn9C+0YfQsNGC0Lgg0LTQvtC00LDQstCw0YLQuCDRgdGC0LLQtdGA0LTQttGD0LLQsNGH0ZbQsiDRliDRgdC/0L7RgdGC0LXRgNGW0LPQsNGH0ZbQsicsXG4gICAgICAgIGVtcHR5SGludDpcbiAgICAgICAgICAgICfQqdC+0LEg0LTQvtC00LDRgtC4INGB0YLQstC10YDQtNC20YPQstCw0YfRltCyLCDQvdCw0YLQuNGB0L3RltGC0YwgXCLQlNC+0LTQsNGC0Lgg0LrRgNC+0LpcIi4g0KnQvtCxINC00L7QtNCw0YLQuCDRgdC/0L7RgdGC0LXRgNGW0LPQsNGH0ZbQsiwg0L3QsNGC0LjRgdC90ZbRgtGMINC/0L7Qu9C1INCh0L/QvtGB0YLQtdGA0ZbQs9Cw0YfRli4nLFxuICAgICAgICBhZGROb2RlRGlhbG9nSGVhZGVyQWRkQXBwcm92ZXJzOiAn0JTQvtC00LDRgtC4INGB0YLQstC10YDQtNC20YPQstCw0YfRltCyJyxcbiAgICAgICAgYWRkTm9kZURpYWxvZ0hlYWRlckVkaXRBcHByb3ZlcjogJ9Cg0LXQtNCw0LPRg9Cy0LDRgtC4INGB0YLQstC10YDQtNC20YPQstCw0YfQsCcsXG4gICAgICAgIGFkZE5vZGVEaWFsb2dIZWFkZXJBZGRBcHByb3ZlclRlYW06ICfQmtC+0YDQuNGB0YLRg9Cy0LDRhy/QmtC+0LzQsNC90LTQsCcsXG4gICAgICAgIGFkZE5vZGVEaWFsb2dIZWFkZXJEZXRhaWw6ICfQlNC10YLQsNC70ZYnLFxuICAgICAgICBhZGROb2RlRGlhbG9nTm9kZVR5cGU6ICfQn9Cw0YDQsNC70LXQu9GM0L3QuNC5INCw0LHQviDQv9C+0YHQu9GW0LTQvtCy0L3QuNC5JyxcbiAgICAgICAgYWRkTm9kZURpYWxvZ05vZGVUeXBlU2VyaWFsOiAn0J/QvtGB0LvRltC00L7QstC90LjQuScsXG4gICAgICAgIGFkZE5vZGVEaWFsb2dOb2RlVHlwZVBhcmFsbGVsOiAn0J/QsNGA0LDQu9C10LvRjNC90LjQuScsXG4gICAgICAgIGFkZE5vZGVEaWFsb2dBcHByb3ZlclR5cGU6ICfQotC40L8g0YHRgtCy0LXRgNC00LbRg9Cy0LDRh9CwJyxcbiAgICAgICAgYWRkTm9kZURpYWxvZ0FwcHJvdmVyVHlwZVVzZXI6ICfQmtC+0YDQuNGB0YLRg9Cy0LDRhycsXG4gICAgICAgIGFkZE5vZGVEaWFsb2dBcHByb3ZlclR5cGVUZWFtQW55b25lOiAn0JHRg9C00Ywt0YXRgtC+INCyINC60L7QvNCw0L3QtNGWJyxcbiAgICAgICAgYWRkTm9kZURpYWxvZ0FwcHJvdmVyVHlwZVRlYW1FdmVyeW9uZTogJ9Cj0YHRliDQsiDQutC+0LzQsNC90LTRlicsXG4gICAgICAgIGFkZE5vZGVEaWFsb2dVc2VyT3JUZWFtOiAn0JrQvtGA0LjRgdGC0YPQstCw0Ycv0JrQvtC80LDQvdC00LAnLFxuICAgICAgICBhZGROb2RlRGlhbG9nQWRkVG9OZXh0OiAn0JTQvtC00LDRgtC4INC00L4g0L3QsNGB0YLRg9C/0L3QvtCz0L4g0L/QvtGB0LvRltC00L7QstC90L7Qs9C+INCy0YPQt9C70LAnLFxuICAgICAgICBhZGROb2RlRGlhbG9nRHVlRGF0ZTogJ9CU0LDRgtCwINCy0LjQutC+0L3QsNC90L3RjycsXG4gICAgICAgIGFkZE5vZGVTZWFyY2hQbGFjZWhvbGRlcjogJ9Cf0L7RiNGD0LonLFxuICAgICAgICBhZGROb2RlQWRkQWN0aW9uQnRuTGFiZWw6ICfQlNC+0LTQsNGC0LgnLFxuICAgICAgICBhZGROb2RlQ2FuY2VsQWN0aW9uQnRuTGFiZWw6ICfQodC60LDRgdGD0LLQsNGC0LgnLFxuICAgICAgICBhZGROb2RlU2VsZWN0QXBwcm92ZXJBY3Rpb25CdG5MYWJlbDogJ9CS0LjQsdGA0LDRgtC4JyxcbiAgICAgICAgYWRkTm9kZUNhbmNlbEFwcHJvdmVyU2VsZWN0aW9uQWN0aW9uQnRuTGFiZWw6ICfQktC40LnRgtC4JyxcbiAgICAgICAgYWRkTm9kZUFwcHJvdmVyT3JUZWFtRGV0YWlsc0Nsb3NlQWN0aW9uQnRuTGFiZWw6ICfQl9Cw0LrRgNC40YLQuCcsXG4gICAgICAgIHVzZXJEZXRhaWxzSGVhZGVyOiAn0JTQtdGC0LDQu9GWJyxcbiAgICAgICAgdXNlckRldGFpbHNTZW5kUmVtaW5kZXJCdG5MYWJlbDogJ9Cd0LDQtNGW0YHQu9Cw0YLQuCDQvdCw0LPQsNC00YPQstCw0L3QvdGPJyxcbiAgICAgICAgdXNlckRldGFpbHNDYW5jZWxCdG5MYWJlbDogJ9Ch0LrQsNGB0YPQstCw0YLQuCcsXG4gICAgICAgIG1lc3NhZ2VzQXBwcm92ZXJBZGRlZFN1Y2Nlc3M6ICcxINGB0YLQstC10YDQtNC20YPQstCw0Ycg0LTQvtC00LDQvdC40LknLFxuICAgICAgICBtZXNzYWdlc1RlYW1BZGRlZFN1Y2Nlc3M6ICcxINC60L7QvNCw0L3QtNCwINC00L7QtNCw0L3QsCcsXG4gICAgICAgIG1lc3NhZ2VzTm9kZUVkaXRlZDogJzEg0YHRgtCy0LXRgNC00LbRg9Cy0LDRhyDQstGW0LTRgNC10LTQsNCz0L7QstCw0L3QuNC5JyxcbiAgICAgICAgbWVzc2FnZXNOb2RlUmVtb3ZlZFNpbmd1bGFyOiAnMSDRgdGC0LLQtdGA0LTQttGD0LLQsNGHINCy0LjQtNCw0LvQtdC90LjQuScsXG4gICAgICAgIG1lc3NhZ2VzTm9kZVJlbW92ZWRQbHVyYWw6ICfQodGC0LLQtdGA0LTQttGD0LLQsNGH0ZYg0LLQuNC00LDQu9C10L3RlicsXG4gICAgICAgIG1lc3NhZ2VzVGVhbVJlbW92ZWQ6ICcxINC60L7QvNCw0L3QtNGDINCy0LjQtNCw0LvQtdC90L4nLFxuICAgICAgICBtZXNzYWdlc0Vycm9yQnVpbGRHcmFwaDogJ9Cf0ZbQtCDRh9Cw0YEg0YHQv9GA0L7QsdC4INC/0L7QsdGD0LTRg9Cy0LDRgtC4INCz0YDQsNGE0ZbQuiDRgdGC0LDQu9Cw0YHRjyDQv9C+0LzQuNC70LrQsC4g0J/QtdGA0LXQstGW0YDRgtC1INCy0YXRltC00L3RliDQtNCw0L3Rli4nLFxuICAgICAgICBtZXNzYWdlc1VuZG9BY3Rpb246ICfQodC60LDRgdGD0LLQsNGC0LgnLFxuICAgICAgICBub2RlTWVtYmVyc0NvdW50OiAocGFyYW1zKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gYCR7KCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocGFyYW1zWydjb3VudCddID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgMSDRh9C70LXQvWA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChwbHVyYWxpemF0aW9uLnByb2Nlc3MocGFyYW1zWydjb3VudCddKSA9PT0gJ2ZldycpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke3BhcmFtc1snY291bnQnXX0g0YfQu9C10L3QsGA7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke3BhcmFtc1snY291bnQnXX0g0YfQu9C10L3RltCyYDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSgpfSDQutC+0LzQsNC90LTQuGA7XG4gICAgICAgIH0sXG4gICAgICAgIG5vZGVWYXJpb3VzVGVhbXM6ICfQoNGW0LfQvdGWINC60L7QvNCw0L3QtNC4JyxcbiAgICAgICAgbm9kZVN0YXR1c0R1ZVRvZGF5OiAn0KLQtdGA0LzRltC9INCy0LjQutC+0L3QsNC90L3RjyDRgdGM0L7Qs9C+0LTQvdGWJyxcbiAgICAgICAgbm9kZVN0YXR1c0R1ZUluWERheXM6IChwYXJhbXMpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBg0KLQtdGA0LzRltC9INCy0LjQutC+0L3QsNC90L3RjyDRh9C10YDQtdC3ICR7KCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocGFyYW1zWydjb3VudCddID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgMSDQtNC10L3RjGA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChwbHVyYWxpemF0aW9uLnByb2Nlc3MocGFyYW1zWydjb3VudCddKSA9PT0gJ2ZldycpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke3BhcmFtc1snY291bnQnXX0g0LTQvdGWYDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7cGFyYW1zWydjb3VudCddfSDQtNC90ZbQsmA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkoKX1gO1xuICAgICAgICB9LFxuICAgICAgICBub2RlU3RhdHVzWERheXNPdmVyZHVlOiAocGFyYW1zKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gYNCf0YDQvtGB0YLRgNC+0YfQtdC90L4g0L3QsCAkeygoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHBhcmFtc1snY291bnQnXSA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYDEg0LTQtdC90YxgO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAocGx1cmFsaXphdGlvbi5wcm9jZXNzKHBhcmFtc1snY291bnQnXSkgPT09ICdmZXcnKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtwYXJhbXNbJ2NvdW50J119INC00L3RlmA7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke3BhcmFtc1snY291bnQnXX0g0LTQvdGW0LJgO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pKCl9YDtcbiAgICAgICAgfSxcbiAgICAgICAgbm9kZUFjdGlvbkFkZEFwcHJvdmVyc0JlZm9yZTogJ9CU0L7QtNCw0YLQuCDRgdGC0LLQtdGA0LTQttGD0LLQsNGH0LAg0LTQvicsXG4gICAgICAgIG5vZGVBY3Rpb25BZGRBcHByb3ZlcnNBZnRlcjogJ9CU0L7QtNCw0YLQuCDRgdGC0LLQtdGA0LTQttGD0LLQsNGH0LAg0L/RltGB0LvRjycsXG4gICAgICAgIG5vZGVBY3Rpb25BZGRBcHByb3ZlcnNQYXJhbGxlbDogJ9CU0L7QtNCw0YLQuCDQv9Cw0YDQsNC70LXQu9GM0L3QuNGFINGB0YLQstC10YDQtNC20YPQstCw0YfRltCyJyxcbiAgICAgICAgbm9kZUFjdGlvbkVkaXRBcHByb3ZlcjogJ9Cg0LXQtNCw0LPRg9Cy0LDRgtC4INGB0YLQstC10YDQtNC20YPQstCw0YfQsCcsXG4gICAgICAgIG5vZGVBY3Rpb25SZW1vdmU6ICfQktC40LTQsNC70LjRgtC4JyxcbiAgICAgICAgc2VsZWN0VHlwZURpYWxvZ01vdmVBcHByb3ZlckFzOiAn0J/QtdGA0LXQvNGW0YHRgtC40YLQuCDRgdGC0LLQtdGA0LTQttGD0LLQsNGH0LAg0Y/QuicsXG4gICAgICAgIHNlbGVjdFR5cGVEaWFsb2dQYXJhbGxlbE9yU2VyaWFsOiAn0J/QsNGA0LDQu9C10LvRjNC90LjQuSDQsNCx0L4g0L/QvtGB0LvRltC00L7QstC90LjQuScsXG4gICAgICAgIHNlbGVjdFR5cGVEaWFsb2dOb2RlVHlwZVBhcmFsbGVsOiAn0J/QsNGA0LDQu9C10LvRjNC90LjQuSDRgdGC0LLQtdGA0LTQttGD0LLQsNGHJyxcbiAgICAgICAgc2VsZWN0VHlwZURpYWxvZ05vZGVUeXBlU2VyaWFsOiAn0J/QvtGB0LvRltC00L7QstC90LjQuSDRgdGC0LLQtdGA0LTQttGD0LLQsNGHJyxcbiAgICAgICAgc2VsZWN0VHlwZURpYWxvZ0NvbmZpcm1CdXR0b246ICfQn9GW0LTRgtCy0LXRgNC00LjRgtC4JyxcbiAgICAgICAgc2VsZWN0VHlwZURpYWxvZ0NhbmNlbEJ1dHRvbjogJ9Ch0LrQsNGB0YPQstCw0YLQuCcsXG4gICAgICAgIHRvb2xiYXJBZGRTdGVwQnV0dG9uOiAn0JTQvtC00LDRgtC4INC60YDQvtC6JyxcbiAgICAgICAgdG9vbGJhckVkaXRCdXR0b246ICfQoNC10LTQsNCz0YPQstCw0YLQuCcsXG4gICAgICAgIHRvb2xiYXJBZGRBcHByb3ZlcnNCZWZvcmU6ICfQlNC+0LTQsNGC0Lgg0YHRgtCy0LXRgNC00LbRg9Cy0LDRh9GW0LIg0LTQvicsXG4gICAgICAgIHRvb2xiYXJBZGRBcHByb3ZlcnNBZnRlcjogJ9CU0L7QtNCw0YLQuCDRgdGC0LLQtdGA0LTQttGD0LLQsNGH0ZbQsiDQv9GW0YHQu9GPJyxcbiAgICAgICAgdG9vbGJhckFkZEFwcHJvdmVyc1BhcmFsbGVsOiAn0JTQvtC00LDRgtC4INC/0LDRgNCw0LvQtdC70YzQvdC40YUg0YHRgtCy0LXRgNC00LbRg9Cy0LDRh9GW0LInLFxuICAgICAgICB0b29sYmFyUmVtb3ZlOiAn0JLQuNC00LDQu9C40YLQuCcsXG4gICAgICAgIHRvb2xiYXJFZGl0QXBwcm92ZXI6ICfQoNC10LTQsNCz0YPQstCw0YLQuCDRgdGC0LLQtdGA0LTQttGD0LLQsNGH0LAnLFxuICAgICAgICB3YXRjaGVyc0lucHV0UGxhY2Vob2xkZXI6ICfQn9C+0YjRg9C6JyxcbiAgICAgICAgdXNlckxpc3RTZWxlY3RlZEl0ZW1zQ291bnRTaW5ndWxhcjogJ9CS0LjQsdGA0LDQvdC+IDEg0LXQu9C10LzQtdC90YInLFxuICAgICAgICB1c2VyTGlzdFNlbGVjdGVkSXRlbXNDb3VudFBsdXJhbDogKHBhcmFtcykgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGDQktC40LHRgNCw0L3QviAkeygoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHBhcmFtc1snY291bnQnXSA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYDEg0LXQu9C10LzQtdC90YJgO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAocGx1cmFsaXphdGlvbi5wcm9jZXNzKHBhcmFtc1snY291bnQnXSkgPT09ICdmZXcnKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtwYXJhbXNbJ2NvdW50J119INC10LvQtdC80LXQvdGC0LBgO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtwYXJhbXNbJ2NvdW50J119INC10LvQtdC80LXQvdGC0ZbQsmA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkoKX1gO1xuICAgICAgICB9LFxuICAgICAgICBzdGF0dXNBcHByb3ZlZDogJ9C30LDRgtCy0LXRgNC00LbQtdC90L4nLFxuICAgICAgICBzdGF0dXNSZWplY3RlZDogJ9Cy0ZbQtNGF0LjQu9C10L3QvicsXG4gICAgICAgIHN0YXR1c0luUHJvZ3Jlc3M6ICfQsiDQv9GA0L7RhtC10YHRlicsXG4gICAgICAgIHN0YXR1c05vdFN0YXJ0ZWQ6ICfQvdC1INGA0L7Qt9C/0L7Rh9Cw0YLQvidcbiAgICB9LFxuICAgIHBsYXRmb3JtRmVlZElucHV0OiB7IHVzZXJUaXRsZTogJ9Ca0L7RgNC40YHRgtGD0LLQsNGHJyB9LFxuICAgIHBsYXRmb3JtVkhEOiB7XG4gICAgICAgIHNlbGVjdGlvbkJhckxhYmVsOiAn0JLQuNCx0YDQsNC90ZYg0LXQu9C10LzQtdC90YLQuCDRgtCwINGD0LzQvtCy0LgnLFxuICAgICAgICBzZWxlY3RlZEFuZENvbmRpdGlvbkxhYmVsOiAn0JLQuNCx0YDQsNC90ZYg0LXQu9C10LzQtdC90YLQuCDRgtCwINGD0LzQvtCy0LgnLFxuICAgICAgICBmb290ZXJDbGVhclNlbGVjdGVkVGl0bGU6ICfQvtGH0LjRgdGC0LjRgtC4INCy0LjQsdGA0LDQvdGWINC10LvQtdC80LXQvdGC0LgnLFxuICAgICAgICBmb290ZXJDbGVhclNlbGVjdGVkQXJpYUxhYmVsOiAn0L7Rh9C40YHRgtC40YLQuCDQstC40LHRgNCw0L3RliDQtdC70LXQvNC10L3RgtC4JyxcbiAgICAgICAgc2VhcmNoQnV0dG9uTGFiZWw6ICfQn9C+0YjRg9C6JyxcbiAgICAgICAgc3VjY2Vzc0J1dHRvbkxhYmVsOiAnT0snLFxuICAgICAgICBjYW5jZWxCdXR0b25MYWJlbDogJ9Ch0LrQsNGB0YPQstCw0YLQuCcsXG4gICAgICAgIHNlbGVjdGVkRW1wdHlMYWJlbDogJ9Cd0LUg0LLQuNCx0YDQsNC90L4g0LbQvtC00L3QuNGFINC10LvQtdC80LXQvdGC0ZbQsiDQsNCx0L4g0YPQvNC+0LInLFxuICAgICAgICBzZWFyY2hQbGFjZWhvbGRlcjogJ9Cf0L7RiNGD0LonLFxuICAgICAgICBzZWFyY2hBZHZhbmNlZFNlYXJjaExhYmVsOiAn0KTRltC70YzRgtGA0LgnLFxuICAgICAgICBzZWFyY2hTaG93QWR2YW5jZWRTZWFyY2hMYWJlbDogJ9Cf0L7QutCw0LfQsNGC0Lgg0YTRltC70YzRgtGA0LgnLFxuICAgICAgICBzZWFyY2hIaWRlQWR2YW5jZWRTZWFyY2hMYWJlbDogJ9Ch0YXQvtCy0LDRgtC4INGE0ZbQu9GM0YLRgNC4JyxcbiAgICAgICAgc2VhcmNoU2hvd0FsbEFkdmFuY2VkU2VhcmNoTGFiZWw6ICfQn9C+0LrQsNC30LDRgtC4INCy0YHRliDRhNGW0LvRjNGC0YDQuCcsXG4gICAgICAgIHNlYXJjaEhpZGVBbGxBZHZhbmNlZFNlYXJjaExhYmVsOiAn0KHRhdC+0LLQsNGC0Lgg0LLRgdGWINGE0ZbQu9GM0YLRgNC4JyxcbiAgICAgICAgc2VsZWN0VGFiRGlzcGxheUNvdW50TGFiZWw6ICfQldC70LXQvNC10L3RgtC4ICh7e2NvdW50fX0pJyxcbiAgICAgICAgc2VsZWN0VGFiTW9yZUJ0bkxhYmVsOiAn0JHRltC70YzRiNC1JyxcbiAgICAgICAgc2VsZWN0VGFiQ291bnRIaWRkZW5BMTF5TGFiZWw6IChwYXJhbXMpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBg0LzRltGB0YLQuNGC0YwgJHsoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChwYXJhbXNbJ3Jvd0NvdW50J10gPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAxINGA0Y/QtGA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChwbHVyYWxpemF0aW9uLnByb2Nlc3MocGFyYW1zWydyb3dDb3VudCddKSA9PT0gJ2ZldycpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke3BhcmFtc1sncm93Q291bnQnXX0g0YDRj9C00LhgO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtwYXJhbXNbJ3Jvd0NvdW50J119INGA0Y/QtNGW0LJgO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pKCl9INGWICR7KCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocGFyYW1zWydjb2xDb3VudCddID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgMSDQutC+0LvQvtC90LrRg2A7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChwbHVyYWxpemF0aW9uLnByb2Nlc3MocGFyYW1zWydjb2xDb3VudCddKSA9PT0gJ2ZldycpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke3BhcmFtc1snY29sQ291bnQnXX0g0LrQvtC70L7QvdC60LhgO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtwYXJhbXNbJ2NvbENvdW50J119INC60L7Qu9C+0L3QvtC6YDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSgpfWA7XG4gICAgICAgIH0sXG4gICAgICAgIHNlbGVjdE1vYmlsZVRhYkJhY2tCdG5UaXRsZTogJ9Cd0LDQt9Cw0LQnLFxuICAgICAgICBzZWxlY3RNb2JpbGVUYWJCdG5PcGVuRGlhbG9nTGFiZWw6ICfQktGW0LTQutGA0LjRgtC4INC00ZbQsNC70L7Qs9C+0LLQtSDQstGW0LrQvdC+JyxcbiAgICAgICAgc2VsZWN0TW9iaWxlVGFiVGl0bGU6ICd7e3RpdGxlfX0g0LLQutC70LDQtNC60LAnLFxuICAgICAgICBzZWxlY3RNb2JpbGVDb25kaXRpb25FbXB0eTogJ9Cf0YPRgdGC0L4nLFxuICAgICAgICBkZWZpbmVDb25kaXRpb25UaXRsZTogJ9Cf0YDQvtC00YPQutGCJyxcbiAgICAgICAgZGVmaW5lQ29uZGl0aW9uU2VsZWN0ZWRWYWx1ZUhpZGRlbkExMXlMYWJlbDogJ9Cy0LjQsdGA0LDQvdC1INC30L3QsNGH0LXQvdC90Y8ge3t2YWx1ZX19JyxcbiAgICAgICAgZGVmaW5lQ29uZGl0aW9uQ29uZGl0aW9uc0dyb3VwSGVhZGVySW5jbHVkZTogJ9CS0LrQu9GO0YfQvdGWINGD0LzQvtCy0LgnLFxuICAgICAgICBkZWZpbmVDb25kaXRpb25Db25kaXRpb25zR3JvdXBIZWFkZXJFeGNsdWRlOiAn0JLQuNC60LvRjtGH0L3RliDRg9C80L7QstC4JyxcbiAgICAgICAgZGVmaW5lQ29uZGl0aW9uRnJvbVBsYWNlaG9sZGVyOiAn0LLRltC0JyxcbiAgICAgICAgZGVmaW5lQ29uZGl0aW9uVG9QbGFjZWhvbGRlcjogJ9C00L4nLFxuICAgICAgICBkZWZpbmVDb25kaXRpb25WYWx1ZVBsYWNlaG9sZGVyOiAn0LfQvdCw0YfQtdC90L3RjycsXG4gICAgICAgIGRlZmluZUNvbmRpdGlvblJlbW92ZUNvbmRpdGlvbkJ1dHRvblRpdGxlOiAn0JLQuNC00LDQu9C40YLQuCDRg9C80L7QstGDJyxcbiAgICAgICAgZGVmaW5lQ29uZGl0aW9uQWRkQ29uZGl0aW9uQnV0dG9uTGFiZWw6ICfQlNC+0LTQsNGC0LgnLFxuICAgICAgICBkZWZpbmVDb25kaXRpb25BZGRDb25kaXRpb25CdXR0b25UaXRsZTogJ9CU0L7QtNCw0YLQuCDRg9C80L7QstGDJyxcbiAgICAgICAgZGVmaW5lQ29uZGl0aW9uQ29uZGl0aW9uU3RyYXRlZ3lMYWJlbENvbnRhaW5zOiAn0LzRltGB0YLQuNGC0YwnLFxuICAgICAgICBkZWZpbmVDb25kaXRpb25Db25kaXRpb25TdHJhdGVneUxhYmVsRXF1YWxUbzogJ9C00L7RgNGW0LLQvdGO0ZQnLFxuICAgICAgICBkZWZpbmVDb25kaXRpb25Db25kaXRpb25TdHJhdGVneUxhYmVsQmV0d2VlbjogJ9C80ZbQticsXG4gICAgICAgIGRlZmluZUNvbmRpdGlvbkNvbmRpdGlvblN0cmF0ZWd5TGFiZWxTdGFydHNXaXRoOiAn0L/QvtGH0LjQvdCw0ZTRgtGM0YHRjyDQtycsXG4gICAgICAgIGRlZmluZUNvbmRpdGlvbkNvbmRpdGlvblN0cmF0ZWd5TGFiZWxFbmRzV2l0aDogJ9C30LDQutGW0L3Rh9GD0ZTRgtGM0YHRjyDQvdCwJyxcbiAgICAgICAgZGVmaW5lQ29uZGl0aW9uQ29uZGl0aW9uU3RyYXRlZ3lMYWJlbExlc3NUaGFuOiAn0LzQtdC90YjQtSDQvdGW0LYnLFxuICAgICAgICBkZWZpbmVDb25kaXRpb25Db25kaXRpb25TdHJhdGVneUxhYmVsTGVzc1RoYW5FcXVhbDogJ9C80LXQvdGI0LUg0L3RltC2INCw0LHQviDQtNC+0YDRltCy0L3RjtGUJyxcbiAgICAgICAgZGVmaW5lQ29uZGl0aW9uQ29uZGl0aW9uU3RyYXRlZ3lMYWJlbEdyZWF0ZXJUaGFuOiAn0LHRltC70YzRiNC1INC90ZbQticsXG4gICAgICAgIGRlZmluZUNvbmRpdGlvbkNvbmRpdGlvblN0cmF0ZWd5TGFiZWxHcmVhdGVyVGhhbkVxdWFsOiAn0LHRltC70YzRiNC1INC90ZbQtiDQsNCx0L4g0LTQvtGA0ZbQstC90Y7RlCcsXG4gICAgICAgIGRlZmluZUNvbmRpdGlvbkNvbmRpdGlvblN0cmF0ZWd5TGFiZWxFbXB0eTogJ9C/0L7RgNC+0LbQvdGUJyxcbiAgICAgICAgZGVmaW5lQ29uZGl0aW9uQ29uZGl0aW9uU3RyYXRlZ3lMYWJlbE5vdEVxdWFsVG86ICfQvdC1INC00L7RgNGW0LLQvdGO0ZQnLFxuICAgICAgICBkZWZpbmVDb25kaXRpb25Db25kaXRpb25TdHJhdGVneUxhYmVsTm90RW1wdHk6ICfQvdC1INC/0L7RgNC+0LbQvdGUJyxcbiAgICAgICAgZGVmaW5lQ29uZGl0aW9uTWF4Q291bnRFcnJvcjogKHBhcmFtcykgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGDQktCy0LXQtNGW0YLRjCDQt9C90LDRh9C10L3QvdGPINC90LUg0LHRltC70YzRiNC1INC90ZbQtiAkeygoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHBhcmFtc1snY291bnQnXSA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYDEg0YHQuNC80LLQvtC7YDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHBsdXJhbGl6YXRpb24ucHJvY2VzcyhwYXJhbXNbJ2NvdW50J10pID09PSAnZmV3Jykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7cGFyYW1zWydjb3VudCddfSDRgdC40LzQstC+0LvQuGA7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke3BhcmFtc1snY291bnQnXX0g0YHQuNC80LLQvtC70ZbQsmA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkoKX1gO1xuICAgICAgICB9LFxuICAgICAgICBzZWxlY3RUYWJUaXRsZTogJ9CS0LjQsdGA0LDRgtC4INC30ZYg0YHQv9C40YHQutGDJyxcbiAgICAgICAgc2VhcmNoVGFibGVFbXB0eU1lc3NhZ2U6ICfQktC40LrQvtGA0LjRgdGC0L7QstGD0LnRgtC1INC/0L7RiNGD0LosINGJ0L7QsSDQvtGC0YDQuNC80LDRgtC4INGA0LXQt9GD0LvRjNGC0LDRgtC4JyxcbiAgICAgICAgZGVmaW5lVGFiVGl0bGU6ICfQktC40LfQvdCw0YfQuNGC0Lgg0YPQvNC+0LLQuCdcbiAgICB9LFxuICAgIHBsYXRmb3JtQ29tYm9ib3g6IHtcbiAgICAgICAgY291bnRMaXN0UmVzdWx0c1Npbmd1bGFyOiAnMSDQtdC70LXQvNC10L3RgicsXG4gICAgICAgIGNvdW50TGlzdFJlc3VsdHNQbHVyYWw6IChwYXJhbXMpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBgJHsoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChwYXJhbXNbJ2NvdW50J10gPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAxINC10LvQtdC80LXQvdGCYDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHBsdXJhbGl6YXRpb24ucHJvY2VzcyhwYXJhbXNbJ2NvdW50J10pID09PSAnZmV3Jykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7cGFyYW1zWydjb3VudCddfSDQtdC70LXQvNC10L3RgtC4YDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7cGFyYW1zWydjb3VudCddfSDQtdC70LXQvNC10L3RgtGW0LJgO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pKCl9YDtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgcGxhdGZvcm1NdWx0aUNvbWJvYm94OiB7XG4gICAgICAgIGlucHV0R2x5cGhBcmlhTGFiZWw6ICfQktC40LHRgNCw0YLQuCDQvtC/0YbRltGXJyxcbiAgICAgICAgaW5wdXRJY29uVGl0bGU6ICfQktC40LHRgNCw0YLQuCDQvtC/0YbRltGXJyxcbiAgICAgICAgbW9iaWxlU2hvd0FsbEl0ZW1zQnV0dG9uOiAn0J/QvtC60LDQt9Cw0YLQuCDQstGB0ZYg0LXQu9C10LzQtdC90YLQuCcsXG4gICAgICAgIG1vYmlsZVNob3dTZWxlY3RlZEl0ZW1zQnV0dG9uOiAn0J/QvtC60LDQt9Cw0YLQuCDQstC40LHRgNCw0L3RliDQtdC70LXQvNC10L3RgtC4J1xuICAgIH0sXG4gICAgcGxhdGZvcm1UZXh0YXJlYToge1xuICAgICAgICBjb3VudGVyTWVzc2FnZUNoYXJhY3RlcnNPdmVyVGhlTGltaXRTaW5ndWxhcjogJ9Cf0LXRgNC10LLQuNGJ0LXQvdC+INC70ZbQvNGW0YIg0L3QsCAxINGB0LjQvNCy0L7QuycsXG4gICAgICAgIGNvdW50ZXJNZXNzYWdlQ2hhcmFjdGVyc092ZXJUaGVMaW1pdFBsdXJhbDogKHBhcmFtcykgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGDQn9C10YDQtdCy0LjRidC10L3QviDQu9GW0LzRltGCINC90LAgJHsoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChwYXJhbXNbJ2NvdW50J10gPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAxINGB0LjQvNCy0L7Qu2A7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChwbHVyYWxpemF0aW9uLnByb2Nlc3MocGFyYW1zWydjb3VudCddKSA9PT0gJ2ZldycpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke3BhcmFtc1snY291bnQnXX0g0YHQuNC80LLQvtC70LhgO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtwYXJhbXNbJ2NvdW50J119INGB0LjQvNCy0L7Qu9GW0LJgO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pKCl9YDtcbiAgICAgICAgfSxcbiAgICAgICAgY291bnRlck1lc3NhZ2VDaGFyYWN0ZXJzUmVtYWluaW5nU2luZ3VsYXI6ICfQl9Cw0LvQuNGI0LjQstGB0Y8gMSDRgdC40LzQstC+0LsnLFxuICAgICAgICBjb3VudGVyTWVzc2FnZUNoYXJhY3RlcnNSZW1haW5pbmdQbHVyYWw6IChwYXJhbXMpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBg0JfQsNC70LjRiNC40LvQvtGB0YwgJHsoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChwYXJhbXNbJ2NvdW50J10gPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAxINGB0LjQvNCy0L7Qu2A7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChwbHVyYWxpemF0aW9uLnByb2Nlc3MocGFyYW1zWydjb3VudCddKSA9PT0gJ2ZldycpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke3BhcmFtc1snY291bnQnXX0g0YHQuNC80LLQvtC70LhgO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtwYXJhbXNbJ2NvdW50J119INGB0LjQvNCy0L7Qu9GW0LJgO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pKCl9YDtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgcGxhdGZvcm1MaW5rOiB7IHJvbGVEZXNjcmlwdGlvbldpdGhNZWRpYTogJ9Cc0LXQtNGW0LA6IHt7bWVkaWF9fScgfSxcbiAgICBwbGF0Zm9ybUxpc3Q6IHsgbG9hZGluZ0FyaWFMYWJlbDogJ9C30LDQstCw0L3RgtCw0LbQtdC90L3RjycgfSxcbiAgICBwbGF0Zm9ybU9iamVjdExpc3RJdGVtOiB7IGRldGFpbHNBY3Rpb25BcmlhTGFiZWw6ICfQtNC10YLQsNC70ZYnLCBkZWxldGVBY3Rpb25BcmlhTGFiZWw6ICfQstC40LTQsNC70LjRgtC4JyB9LFxuICAgIHBsYXRmb3JtU3RhbmRhcmRMaXN0SXRlbTogeyBkZXRhaWxzQWN0aW9uQXJpYUxhYmVsOiAn0LTQtdGC0LDQu9GWJywgZGVsZXRlQWN0aW9uQXJpYUxhYmVsOiAn0LLQuNC00LDQu9C40YLQuCcgfSxcbiAgICBwbGF0Zm9ybVNlYXJjaEZpZWxkOiB7XG4gICAgICAgIGNsZWFyQnV0dG9uVGl0bGU6ICfQntGH0LjRgdGC0LjRgtC4JyxcbiAgICAgICAgc3VibWl0QnV0dG9uVGl0bGU6ICfQn9C+0YjRg9C6JyxcbiAgICAgICAgc2VhcmNoSW5wdXRMYWJlbDogJ9Cf0L7RiNGD0LonLFxuICAgICAgICBzeW5jaHJvbml6ZUJ1dHRvblRpdGxlOiAn0KHQuNC90YXRgNC+0L3RltC30YPQstCw0YLQuCcsXG4gICAgICAgIHNlYXJjaFN1Z2dlc3Rpb25NZXNzYWdlOiAocGFyYW1zKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gYNCX0L3QsNC50LTQtdC90L4gJHsoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChwYXJhbXNbJ2NvdW50J10gPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAxINCy0LDRgNGW0LDQvdGCYDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHBsdXJhbGl6YXRpb24ucHJvY2VzcyhwYXJhbXNbJ2NvdW50J10pID09PSAnZmV3Jykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7cGFyYW1zWydjb3VudCddfSDQstCw0YDRltCw0L3RgtC4YDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7cGFyYW1zWydjb3VudCddfSDQstCw0YDRltCw0L3RgtGW0LJgO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pKCl9YDtcbiAgICAgICAgfSxcbiAgICAgICAgc2VhcmNoU3VnZ2VzdGlvbk5hdmlnYXRlTWVzc2FnZTogJ9Cy0LjQutC+0YDQuNGB0YLQvtCy0YPQudGC0LUg0YHRgtGA0ZbQu9C60Lgg0LLQs9C+0YDRgyDRgtCwINCy0L3QuNC3INC00LvRjyDQvdCw0LLRltCz0LDRhtGW0ZcnXG4gICAgfSxcbiAgICBwbGF0Zm9ybVNtYXJ0RmlsdGVyQmFyOiB7XG4gICAgICAgIHNlYXJjaFBsYWNlaG9sZGVyOiAn0J/QvtGI0YPQuicsXG4gICAgICAgIHN1Ym1pdEJ1dHRvbkxhYmVsOiAn0J/QtdGA0LXQudGC0LgnLFxuICAgICAgICBmaWx0ZXJzQnV0dG9uTGFiZWw6ICfQpNGW0LvRjNGC0YDQuCAoe3tmaWx0ZXJzQ291bnR9fSknLFxuICAgICAgICBzaG93RmlsdGVyc0J1dHRvbkxhYmVsOiAn0J/QvtC60LDQt9Cw0YLQuCDRhNGW0LvRjNGC0YDQuCcsXG4gICAgICAgIGhpZGVGaWx0ZXJzQnV0dG9uTGFiZWw6ICfQodGF0L7QstCw0YLQuCDRhNGW0LvRjNGC0YDQuCcsXG4gICAgICAgIGRlZmluZUNvbmRpdGlvbnNSZW1vdmVDb25kaXRpb25CdXR0b25UaXRsZTogJ9CS0LjQtNCw0LvQuNGC0Lgg0YPQvNC+0LLRgycsXG4gICAgICAgIGRlZmluZUNvbmRpdGlvbnNBZGRDb25kaXRpb25CdXR0b25MYWJlbDogJ9CU0L7QtNCw0YLQuCDRg9C80L7QstGDJyxcbiAgICAgICAgZGVmaW5lQ29uZGl0aW9uc1N1Ym1pdEJ1dHRvbkxhYmVsOiAn0J/QtdGA0LXQudGC0LgnLFxuICAgICAgICBkZWZpbmVDb25kaXRpb25zQ2FuY2VsQnV0dG9uOiAn0KHQutCw0YHRg9Cy0LDRgtC4JyxcbiAgICAgICAgc2VsZWN0RmlsdGVyc0hlYWRlcjogJ9Ck0ZbQu9GM0YLRgNC4JyxcbiAgICAgICAgc2VsZWN0RmlsdGVyc0F2YWlsYWJsZUZpbHRlcnNUZXh0OiAn0JTQvtGB0YLRg9C/0L3RliDRhNGW0LvRjNGC0YDQuCcsXG4gICAgICAgIHNlbGVjdEZpbHRlcnNGaWx0ZXJDb2x1bW5MYWJlbDogJ9Ck0ZbQu9GM0YLRgCcsXG4gICAgICAgIHNlbGVjdEZpbHRlcnNBY3RpdmVDb2x1bW5MYWJlbDogJ9CQ0LrRgtC40LLQvdC40LknLFxuICAgICAgICBzZWxlY3RGaWx0ZXJzU3VibWl0QnV0dG9uTGFiZWw6ICfQn9C10YDQtdC50YLQuCcsXG4gICAgICAgIHNlbGVjdEZpbHRlcnNDYW5jZWxCdXR0b246ICfQodC60LDRgdGD0LLQsNGC0LgnLFxuICAgICAgICBmaWx0ZXJDb25kaXRpb25Db250YWluczogJ9C80ZbRgdGC0LjRgtGMJyxcbiAgICAgICAgZmlsdGVyQ29uZGl0aW9uRXF1YWxUbzogJ9C00L7RgNGW0LLQvdGO0ZQnLFxuICAgICAgICBmaWx0ZXJDb25kaXRpb25CZXR3ZWVuOiAn0LzRltC2JyxcbiAgICAgICAgZmlsdGVyQ29uZGl0aW9uQmVnaW5zV2l0aDogJ9C/0L7Rh9C40L3QsNGU0YLRjNGB0Y8g0LcnLFxuICAgICAgICBmaWx0ZXJDb25kaXRpb25FbmRzV2l0aDogJ9C30LDQutGW0L3Rh9GD0ZTRgtGM0YHRjycsXG4gICAgICAgIGZpbHRlckNvbmRpdGlvbkxlc3NUaGFuOiAn0LzQtdC90YjQtSDQvdGW0LYnLFxuICAgICAgICBmaWx0ZXJDb25kaXRpb25MZXNzVGhhbk9yRXF1YWxUbzogJ9C80LXQvdGI0LUg0LDQsdC+INC+0LTQvdC+JyxcbiAgICAgICAgZmlsdGVyQ29uZGl0aW9uR3JlYXRlclRoYW46ICfQsdGW0LvRjNGI0LUg0L3RltC2JyxcbiAgICAgICAgZmlsdGVyQ29uZGl0aW9uR3JlYXRlclRoYW5PckVxdWFsVG86ICfQsdGW0LvRjNGI0LUg0LDQsdC+INC00L7RgNGW0LLQvdGO0ZQnLFxuICAgICAgICBmaWx0ZXJDb25kaXRpb25BZnRlcjogJ9C/0ZbRgdC70Y8nLFxuICAgICAgICBmaWx0ZXJDb25kaXRpb25Pbk9yQWZ0ZXI6ICfQtNC+0YDRltCy0L3RjtGUINCw0LHQviDQv9GW0YHQu9GPJyxcbiAgICAgICAgZmlsdGVyQ29uZGl0aW9uQmVmb3JlOiAn0LTQvicsXG4gICAgICAgIGZpbHRlckNvbmRpdGlvbkJlZm9yZU9yT246ICfQtNC+INCw0LHQviDQtNC+0YDRltCy0L3RjtGUJyxcbiAgICAgICAgZmlsdGVyQ29uZGl0aW9uVmFsdWVQbGFjZWhvbGRlcjogJ9C30L3QsNGH0LXQvdC90Y8nLFxuICAgICAgICBmaWx0ZXJDb25kaXRpb25WYWx1ZUZyb21QbGFjZWhvbGRlcjogJ9Cy0ZbQtCcsXG4gICAgICAgIGZpbHRlckNvbmRpdGlvblZhbHVlVG9QbGFjZWhvbGRlcjogJ9C00L4nLFxuICAgICAgICBzZXR0aW5nc0NhdGVnb3J5QWxsOiAn0JLRgdGWJyxcbiAgICAgICAgc2V0dGluZ3NDYXRlZ29yeVZpc2libGU6ICfQktC40LTQuNC80ZYnLFxuICAgICAgICBzZXR0aW5nc0NhdGVnb3J5QWN0aXZlOiAn0JDQutGC0LjQstC90ZYnLFxuICAgICAgICBzZXR0aW5nc0NhdGVnb3J5VmlzaWJsZUFuZEFjdGl2ZTogJ9CS0LjQtNC40LzRliDRgtCwINCw0LrRgtC40LLQvdGWJyxcbiAgICAgICAgc2V0dGluZ3NDYXRlZ29yeU1hbmRhdG9yeTogXCLQntCx0L7QsifRj9C30LrQvtCy0ZZcIixcbiAgICAgICAgbWFuYWdlRmllbGRDb25kaXRpb25zOiAn0J/QvtC60LDQt9Cw0YLQuCDRg9C80L7QstC4INC00LvRjyDQv9C+0LvRjycsXG4gICAgICAgIHJlZnJlc2hCdXR0b25BcmlhTGFiZWw6ICfQntC90L7QstC40YLQuCdcbiAgICB9LFxuICAgIHBsYXRmb3JtVGFibGU6IHtcbiAgICAgICAgaGVhZGVyTWVudVNvcnRBc2M6ICfQodC+0YDRgtGD0LLQsNGC0Lgg0LfQsCDQt9GA0L7RgdGC0LDQvdC90Y/QvCcsXG4gICAgICAgIGhlYWRlck1lbnVTb3J0RGVzYzogJ9Ch0L7RgNGC0YPQstCw0YLQuCDQt9CwINGB0L/QsNC00LDQvdC90Y/QvCcsXG4gICAgICAgIGhlYWRlck1lbnVHcm91cDogJ9Ch0LPRgNGD0L/Rg9Cy0LDRgtC4JyxcbiAgICAgICAgaGVhZGVyTWVudUZyZWV6ZTogJ9CX0LDQvNC+0YDQvtC30LjRgtC4JyxcbiAgICAgICAgaGVhZGVyTWVudUVuZEZyZWV6ZTogJ0ZyZWV6ZSB0byBFbmQnLFxuICAgICAgICBoZWFkZXJNZW51VW5mcmVlemU6ICfQoNC+0LfQvNC+0YDQvtC30LjRgtC4JyxcbiAgICAgICAgaGVhZGVyTWVudUZpbHRlcjogJ9Ck0ZbQu9GM0YLRgCcsXG4gICAgICAgIGRlZmF1bHRFbXB0eU1lc3NhZ2U6ICfQndGW0YfQvtCz0L4g0L3QtSDQt9C90LDQudC00LXQvdC+JyxcbiAgICAgICAgZW1wdHlDZWxsOiAnRW1wdHknLFxuICAgICAgICBub1Zpc2libGVDb2x1bW5zTWVzc2FnZTpcbiAgICAgICAgICAgICfQndCwINC00LDQvdC40Lkg0LzQvtC80LXQvdGCINGDINGC0LDQsdC70LjRhtGWINC90LXQvNCw0ZQg0LLQuNC00LjQvNC40YUg0YHRgtC+0LLQv9GG0ZbQsi4g0JLQuNCx0LXRgNGW0YLRjCDQv9C+0YLRgNGW0LHQvdGWINGB0YLQvtCy0L/RhtGWINCyINC90LDQu9Cw0YjRgtGD0LLQsNC90L3Rj9GFINGC0LDQsdC70LjRhtGWLicsXG4gICAgICAgIHJlc2V0Q2hhbmdlc0J1dHRvbkxhYmVsOiAn0KHQutC40L3Rg9GC0LgnLFxuICAgICAgICBlZGl0YWJsZUNlbGxOdW1iZXJQbGFjZWhvbGRlcjogJ9CS0LLQtdC00ZbRgtGMINC30L3QsNGH0LXQvdC90Y8nLFxuICAgICAgICBlZGl0YWJsZUNlbGxEYXRlUGxhY2Vob2xkZXI6ICfQktCy0LXQtNGW0YLRjCDQt9C90LDRh9C10L3QvdGPJyxcbiAgICAgICAgZWRpdGFibGVDZWxsU3RyaW5nUGxhY2Vob2xkZXI6ICfQktCy0LXQtNGW0YLRjCDQt9C90LDRh9C10L3QvdGPJyxcbiAgICAgICAgUDEzQ29sdW1uc0RpYWxvZ0hlYWRlcjogJ9Ch0YLQvtCy0L/RhtGWJyxcbiAgICAgICAgUDEzQ29sdW1uc0RpYWxvZ1NlYXJjaFBsYWNlaG9sZGVyOiAn0J/QvtGI0YPQuicsXG4gICAgICAgIFAxM0NvbHVtbnNEaWFsb2dzU2hvd1NlbGVjdGVkOiAn0J/QvtC60LDQt9Cw0YLQuCDQstC40LHRgNCw0L3QtScsXG4gICAgICAgIFAxM0NvbHVtbnNEaWFsb2dTaG93QWxsOiAn0J/QvtC60LDQt9Cw0YLQuCDQstGB0LUnLFxuICAgICAgICBQMTNDb2x1bW5zRGlhbG9nU2VsZWN0QWxsOiAn0JLQuNCx0YDQsNGC0Lgg0LLRgdGWICh7e3NlbGVjdGVkQ29sdW1uc0NvdW50fX0ve3tzZWxlY3RhYmxlQ29sdW1uc0NvdW50fX0pJyxcbiAgICAgICAgUDEzQ29sdW1uc0RpYWxvZ0NvbmZpcm1hdGlvbkJ0bkxhYmVsOiAnT0snLFxuICAgICAgICBQMTNDb2x1bW5zRGlhbG9nQ2FuY2VsQnRuTGFiZWw6ICfQodC60LDRgdGD0LLQsNGC0LgnLFxuICAgICAgICBQMTNDb2x1bW5zRGlhbG9nTW92ZVRvVG9wQnRuOiAn0J/QtdGA0LXQvNGW0YHRgtC40YLQuCDQstCz0L7RgNGDJyxcbiAgICAgICAgUDEzQ29sdW1uc0RpYWxvZ01vdmVVcEJ0bjogJ9Cf0LXRgNC10LzRltGB0YLQuNGC0Lgg0LLQuNGJ0LUnLFxuICAgICAgICBQMTNDb2x1bW5zRGlhbG9nTW92ZURvd25CdG46ICfQn9C10YDQtdC80ZbRgdGC0LjRgtC4INC90LjQttGH0LUnLFxuICAgICAgICBQMTNDb2x1bW5zRGlhbG9nTW92ZVRvQm90dG9tQnRuOiAn0J/QtdGA0LXQvNGW0YHRgtC40YLQuCDQstC90LjQtycsXG4gICAgICAgIFAxM0ZpbHRlclN0cmF0ZWd5TGFiZWxCZXR3ZWVuOiAn0LzRltC2JyxcbiAgICAgICAgUDEzRmlsdGVyU3RyYXRlZ3lMYWJlbENvbnRhaW5zOiAn0LzRltGB0YLQuNGC0YwnLFxuICAgICAgICBQMTNGaWx0ZXJTdHJhdGVneUxhYmVsQmVnaW5zV2l0aDogJ9C/0L7Rh9C40L3QsNGU0YLRjNGB0Y8g0LcnLFxuICAgICAgICBQMTNGaWx0ZXJTdHJhdGVneUxhYmVsRW5kc1dpdGg6ICfQt9Cw0LrRltC90YfRg9GU0YLRjNGB0Y8g0L3QsCcsXG4gICAgICAgIFAxM0ZpbHRlclN0cmF0ZWd5TGFiZWxFcXVhbFRvOiAn0LTQvtGA0ZbQstC90Y7RlCcsXG4gICAgICAgIFAxM0ZpbHRlclN0cmF0ZWd5TGFiZWxHcmVhdGVyVGhhbjogJ9Cx0ZbQu9GM0YjQtSDQvdGW0LYnLFxuICAgICAgICBQMTNGaWx0ZXJTdHJhdGVneUxhYmVsR3JlYXRlclRoYW5PckVxdWFsVG86ICfQsdGW0LvRjNGI0LUg0LDQsdC+INC00L7RgNGW0LLQvdGO0ZQnLFxuICAgICAgICBQMTNGaWx0ZXJTdHJhdGVneUxhYmVsTGVzc1RoYW46ICfQvNC10L3RiNC1INC90ZbQticsXG4gICAgICAgIFAxM0ZpbHRlclN0cmF0ZWd5TGFiZWxMZXNzVGhhbk9yRXF1YWxUbzogJ9C80LXQvdGI0LUg0LDQsdC+INC00L7RgNGW0LLQvdGO0ZQnLFxuICAgICAgICBQMTNGaWx0ZXJTdHJhdGVneUxhYmVsQWZ0ZXI6ICfQv9GW0YHQu9GPJyxcbiAgICAgICAgUDEzRmlsdGVyU3RyYXRlZ3lMYWJlbE9uT3JBZnRlcjogJ9C00L7RgNGW0LLQvdGO0ZQg0LDQsdC+INC/0ZbRgdC70Y8nLFxuICAgICAgICBQMTNGaWx0ZXJTdHJhdGVneUxhYmVsQmVmb3JlOiAn0LTQvicsXG4gICAgICAgIFAxM0ZpbHRlclN0cmF0ZWd5TGFiZWxCZWZvcmVPck9uOiAn0LTQviDQsNCx0L4g0LTQvtGA0ZbQstC90Y7RlCcsXG4gICAgICAgIFAxM0ZpbHRlclN0cmF0ZWd5TGFiZWxOb3REZWZpbmVkOiAn0J3QtSDQstC40LfQvdCw0YfQtdC90L4nLFxuICAgICAgICBQMTNGaWx0ZXJCb29sZWFuT3B0aW9uTm90RGVmaW5lZDogJycsXG4gICAgICAgIFAxM0ZpbHRlckJvb2xlYW5PcHRpb25UcnVlOiAn0KLQsNC6JyxcbiAgICAgICAgUDEzRmlsdGVyQm9vbGVhbk9wdGlvbkZhbHNlOiAn0J3RlicsXG4gICAgICAgIFAxM0ZpbHRlckRpYWxvZ0hlYWRlcjogJ9Ck0ZbQu9GM0YLRgNGD0LLQsNGC0Lgg0LfQsCcsXG4gICAgICAgIFAxM0ZpbHRlckRpYWxvZ0luY2x1ZGVQYW5lbFRpdGxlV2l0aENvdW50OiAn0JLQutC70Y7Rh9C90ZYg0YPQvNC+0LLQuCAoe3tjb3VudH19KScsXG4gICAgICAgIFAxM0ZpbHRlckRpYWxvZ0luY2x1ZGVQYW5lbFRpdGxlV2l0aG91dENvdW50OiAn0JLQutC70Y7Rh9C90ZYg0YPQvNC+0LLQuCcsXG4gICAgICAgIFAxM0ZpbHRlckRpYWxvZ0V4Y2x1ZGVQYW5lbFRpdGxlV2l0aENvdW50OiAn0JLQuNC60LvRjtGH0L3RliDRg9C80L7QstC4ICh7e2NvdW50fX0pJyxcbiAgICAgICAgUDEzRmlsdGVyRGlhbG9nRXhjbHVkZVBhbmVsVGl0bGVXaXRob3V0Q291bnQ6ICfQktC40LrQu9GO0YfQvdGWINGD0LzQvtCy0LgnLFxuICAgICAgICBQMTNGaWx0ZXJEaWFsb2dSZW1vdmVGaWx0ZXJCdG5UaXRsZTogJ9CS0LjQtNCw0LvQuNGC0Lgg0YTRltC70YzRgtGAJyxcbiAgICAgICAgUDEzRmlsdGVyRGlhbG9BZGRGaWx0ZXJCdG5UaXRsZTogJ9CU0L7QtNCw0YLQuCDRhNGW0LvRjNGC0YAnLFxuICAgICAgICBQMTNGaWx0ZXJEaWFsb2dDb25maXJtYXRpb25CdG5MYWJlbDogJ09LJyxcbiAgICAgICAgUDEzRmlsdGVyRGlhbG9nQ2FuY2VsQnRuTGFiZWw6ICfQodC60LDRgdGD0LLQsNGC0LgnLFxuICAgICAgICBQMTNHcm91cERpYWxvZ0hlYWRlcjogJ9CT0YDRg9C/0YPQstCw0L3QvdGPJyxcbiAgICAgICAgUDEzR3JvdXBEaWFsb2dOb25lU2VsZWN0ZWRDb2x1bW5TZWxlY3RQbGFjZWhvbGRlcjogJyjQvdC10LzQsNGUKScsXG4gICAgICAgIFAxM0dyb3VwRGlhbG9nU2hvd0ZpZWxkQXNDb2x1bW5DaGVja2JveExhYmVsOiAn0J/QvtC60LDQt9Cw0YLQuCDQv9C+0LvQtSDRj9C6INGB0YLQvtCy0L/QtdGG0YwnLFxuICAgICAgICBQMTNHcm91cERpYWxvZ1JlbW92ZUdyb3VwQnRuVGl0bGU6ICfQktC40LTQsNC70LjRgtC4JyxcbiAgICAgICAgUDEzR3JvdXBEaWFsb2dBZGROZXdHcm91cEJ0blRpdGxlOiAn0JTQvtC00LDRgtC4INC90L7QstC40LknLFxuICAgICAgICBQMTNHcm91cERpYWxvZ0NvbmZpcm1hdGlvbkJ0bkxhYmVsOiAnT0snLFxuICAgICAgICBQMTNHcm91cERpYWxvZ0NhbmNlbEJ0bkxhYmVsOiAn0KHQutCw0YHRg9Cy0LDRgtC4JyxcbiAgICAgICAgUDEzU29ydERpYWxvZ0hlYWRlcjogJ9Ch0L7RgNGC0YPQstCw0L3QvdGPJyxcbiAgICAgICAgUDEzU29ydERpYWxvZ05vbmVTZWxlY3RlZENvbHVtbjogJyjQvdC10LzQsNGUKScsXG4gICAgICAgIFAxM1NvcnREaWFsb2dOb25lU2VsZWN0ZWRTb3J0aW5nOiAnKNC90LXQvNCw0ZQpJyxcbiAgICAgICAgUDEzU29ydERpYWxvZ1NvcnRPcmRlclNlbGVjdE9wdGlvbkFzYzogJ9CX0LAg0LfRgNC+0YHRgtCw0L3QvdGP0LwnLFxuICAgICAgICBQMTNTb3J0RGlhbG9nU29ydE9yZGVyU2VsZWN0T3B0aW9uRGVzYzogJ9CX0LAg0YHQv9Cw0LTQsNC90L3Rj9C8JyxcbiAgICAgICAgUDEzU29ydERpYWxvZ1JlbW92ZVNvcnRCdG5UaXRsZTogJ9CS0LjQtNCw0LvQuNGC0LgnLFxuICAgICAgICBQMTNTb3J0RGlhbG9nQWRkTmV3U29ydEJ0blRpdGxlOiAn0JTQvtC00LDRgtC4INC90L7QstC1JyxcbiAgICAgICAgUDEzU29ydERpYWxvZ0NvbmZpcm1hdGlvbkJ0bkxhYmVsOiAnT0snLFxuICAgICAgICBQMTNTb3J0RGlhbG9nQ2FuY2VsQnRuTGFiZWw6ICfQodC60LDRgdGD0LLQsNGC0LgnLFxuICAgICAgICB0b29sYmFyU2VhcmNoUGxhY2Vob2xkZXI6ICfQn9C+0YjRg9C6JyxcbiAgICAgICAgdG9vbGJhckFjdGlvbkNyZWF0ZUJ1dHRvbkxhYmVsOiAn0KHRgtCy0L7RgNC40YLQuCcsXG4gICAgICAgIHRvb2xiYXJBY3Rpb25TYXZlQnV0dG9uTGFiZWw6ICfQl9Cx0LXRgNC10LPRgtC4JyxcbiAgICAgICAgdG9vbGJhckFjdGlvbkNhbmNlbEJ1dHRvbkxhYmVsOiAn0KHQutCw0YHRg9Cy0LDRgtC4JyxcbiAgICAgICAgdG9vbGJhckFjdGlvblNvcnRCdXR0b25UaXRsZTogJ9Ch0L7RgNGC0YPQstCw0YLQuCcsXG4gICAgICAgIHRvb2xiYXJBY3Rpb25GaWx0ZXJCdXR0b25UaXRsZTogJ9Ck0ZbQu9GM0YLRgCcsXG4gICAgICAgIHRvb2xiYXJBY3Rpb25Hcm91cEJ1dHRvblRpdGxlOiAn0KHQs9GA0YPQv9GD0LLQsNGC0LgnLFxuICAgICAgICB0b29sYmFyQWN0aW9uQ29sdW1uc0J1dHRvblRpdGxlOiAn0KHRgtC+0LLQv9GG0ZYnLFxuICAgICAgICB0b29sYmFyQWN0aW9uRXhwYW5kQWxsQnV0dG9uVGl0bGU6ICdFeHBhbmQgYWxsJyxcbiAgICAgICAgdG9vbGJhckFjdGlvbkNvbGxhcHNlQWxsQnV0dG9uVGl0bGU6ICdDb2xsYXBzZSBhbGwnLFxuICAgICAgICBmaWx0ZXJEaWFsb2dOb3RGaWx0ZXJlZExhYmVsOiAnKNCd0LUg0LLRltC00YTRltC70YzRgtGA0L7QstCw0L3QviknLFxuICAgICAgICBmaWx0ZXJEaWFsb2dGaWx0ZXJCeUxhYmVsOiAn0KTRltC70YzRgtGA0YPQstCw0YLQuCDQt9CwOiB7e2ZpbHRlckxhYmVsfX0nLFxuICAgICAgICBmaWx0ZXJEaWFsb2dGaWx0ZXJUaXRsZTogJ9Ck0ZbQu9GM0YLRgCcsXG4gICAgICAgIGZpbHRlckRpYWxvZ0ZpbHRlckJ5OiAn0KTRltC70YzRgtGA0YPQstCw0YLQuCDQt9CwJyxcbiAgICAgICAgZmlsdGVyRGlhbG9nQ29uZmlybUJ0bkxhYmVsOiAnT0snLFxuICAgICAgICBmaWx0ZXJEaWFsb2dDYW5jZWxCdG5MYWJlbDogJ9Ch0LrQsNGB0YPQstCw0YLQuCcsXG4gICAgICAgIGdyb3VwRGlhbG9nSGVhZGVyOiAn0KHQs9GA0YPQv9GD0LLQsNGC0LgnLFxuICAgICAgICBncm91cERpYWxvZ0dyb3VwT3JkZXJIZWFkZXI6ICfQn9C+0YDRj9C00L7QuiDQs9GA0YPQv9GD0LLQsNC90L3RjycsXG4gICAgICAgIGdyb3VwRGlhbG9nR3JvdXBPcmRlckFzYzogJ9CX0LAg0LfRgNC+0YHRgtCw0L3QvdGP0LwnLFxuICAgICAgICBncm91cERpYWxvZ0dyb3VwT3JkZXJEZXNjOiAn0JfQsCDRgdC/0LDQtNCw0L3QvdGP0LwnLFxuICAgICAgICBncm91cERpYWxvZ0dyb3VwQnlIZWFkZXI6ICfQk9GA0YPQv9GD0LLQsNGC0Lgg0LfQsCcsXG4gICAgICAgIGdyb3VwRGlhbG9nTm90R3JvdXBlZExhYmVsOiAnKNCd0LUg0LfQs9GA0YPQv9C+0LLQsNC90L4pJyxcbiAgICAgICAgZ3JvdXBEaWFsb2dDb25maXJtQnRuTGFiZWw6ICdPSycsXG4gICAgICAgIGdyb3VwRGlhbG9nQ2FuY2VsQnRuTGFiZWw6ICfQodC60LDRgdGD0LLQsNGC0LgnLFxuICAgICAgICBzb3J0RGlhbG9nSGVhZGVyOiAn0KHQvtGA0YLRg9Cy0LDRgtC4JyxcbiAgICAgICAgc29ydERpYWxvZ1NvcnRPcmRlckhlYWRlcjogJ9Cf0L7RgNGP0LTQvtC6INGB0L7RgNGC0YPQstCw0L3QvdGPJyxcbiAgICAgICAgc29ydERpYWxvZ1NvcnRPcmRlckFzYzogJ9CX0LAg0LfRgNC+0YHRgtCw0L3QvdGP0LwnLFxuICAgICAgICBzb3J0RGlhbG9nU29ydE9yZGVyRGVzYzogJ9C30LAg0YHQv9Cw0LTQsNC90L3Rj9C8JyxcbiAgICAgICAgc29ydERpYWxvZ1NvcnRCeUhlYWRlcjogJ9Ch0L7RgNGC0YPQstCw0YLQuCDQt9CwJyxcbiAgICAgICAgc29ydERpYWxvZ05vdFNvcnRlZExhYmVsOiAnKNCd0LUg0LLRltC00YHQvtGA0YLQvtCy0LDQvdC+KScsXG4gICAgICAgIHNvcnREaWFsb2dDb25maXJtQnRuTGFiZWw6ICdPSycsXG4gICAgICAgIHNvcnREaWFsb2dDYW5jZWxCdG5MYWJlbDogJ9Ch0LrQsNGB0YPQstCw0YLQuCcsXG4gICAgICAgIHNlbGVjdEFsbENoZWNrYm94TGFiZWw6ICfQktC40LHRgNCw0YLQuCDQstGB0LUnLFxuICAgICAgICBkZXNlbGVjdEFsbENoZWNrYm94TGFiZWw6ICdEZXNlbGVjdCBhbGwnLFxuICAgICAgICBkZXNlbGVjdFNpbmdsZVJvdzogJ9Cp0L7QsSDRgdC60LDRgdGD0LLQsNGC0Lgg0LLQuNCx0ZbRgCwg0L3QsNGC0LjRgdC90ZbRgtGMINC/0YDQvtCx0ZbQuycsXG4gICAgICAgIHNlbGVjdFNpbmdsZVJvdzogJ9Cp0L7QsSDQstC40LHRgNCw0YLQuCDRgNGP0LTQvtC6LCDQvdCw0YLQuNGB0L3RltGC0Ywg0L/RgNC+0LHRltC7J1xuICAgIH0sXG4gICAgcGxhdGZvcm1UaHVtYm5haWw6IHtcbiAgICAgICAgZGV0YWlsc0dvdG9QcmV2aW91c0J1dHRvblRpdGxlOiAn0J/QtdGA0LXQudGC0Lgg0LTQviDQv9C+0L/QtdGA0LXQtNC90YzQvtCz0L4nLFxuICAgICAgICBkZXRhaWxzR290b05leHRCdXR0b25UaXRsZTogJ9Cf0LXRgNC10LnRgtC4INC00L4g0L3QsNGB0YLRg9C/0L3QvtCz0L4nLFxuICAgICAgICBkZXRhaWxzRGlhbG9nQ2xvc2VCdG5MYWJlbDogJ9CX0LDQutGA0LjRgtC4JyxcbiAgICAgICAgcm9sZURlc2NyaXB0aW9uOiAn0JfQvtCx0YDQsNC20LXQvdC90Y8nXG4gICAgfSxcbiAgICBwbGF0Zm9ybVVwbG9hZENvbGxlY3Rpb246IHtcbiAgICAgICAgbW92ZVRvVGl0bGU6ICfQn9C10YDQtdC80ZbRgdGC0LjRgtC4INC00L4nLFxuICAgICAgICBtb3ZlVG9UaXRsZUZvbGRlcjogJ9Cf0LDQv9C60LAnLFxuICAgICAgICBtb3ZlVG9OZXdGb2xkZXJCdG5MYWJlbDogJ9Cd0L7QstCwINC/0LDQv9C60LAnLFxuICAgICAgICBtb3ZlVG9BbGxGaWxlc1N1YkhlYWRlckxhYmVsOiAn0KPRgdGWINGE0LDQudC70LgnLFxuICAgICAgICBtb3ZlVG9Db25maXJtQnRuOiAn0J/QtdGA0LXQvNGW0YHRgtC40YLQuCcsXG4gICAgICAgIG1vdmVUb0Nsb3NlQnRuOiAn0KHQutCw0YHRg9Cy0LDRgtC4JyxcbiAgICAgICAgbmV3Rm9sZGVyVGl0bGU6ICfQndC+0LLQsCDQv9Cw0L/QutCwJyxcbiAgICAgICAgbmV3Rm9sZGVyQXRSb290SW5wdXRMYWJlbDogJ9Cd0LDQt9Cy0LAg0L3QvtCy0L7RlyDQv9Cw0L/QutC4JyxcbiAgICAgICAgbmV3Rm9sZGVyQXRGb2xkZXJJbnB1dExhYmVsOiAn0J3QsNC30LLQsCDQvdC+0LLQvtGXINC/0LDQv9C60Lgg0YPRgdC10YDQtdC00LjQvdGWIHt7IGZvbGRlck5hbWUgfScsXG4gICAgICAgIG5ld0ZvbGRlcklucHV0UGxhY2Vob2xkZXI6ICfQktCy0LXQtNGW0YLRjCDQvdCw0LfQstGDLi4nLFxuICAgICAgICBuZXdGb2xkZXJJbnB1dEVycm9yTGFiZWw6IChwYXJhbXMpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvdW50ID0gcGFyYW1zWydjb3VudCddO1xuICAgICAgICAgICAgY29uc3Qgb3B0aW9uID0gcGx1cmFsaXphdGlvbi5wcm9jZXNzKGNvdW50KTtcbiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnb25lJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGDQnNCw0LrRgdC40LzQsNC70YzQvdC+INC00L7Qt9Cy0L7Qu9C10L3QviAxINGB0LjQvNCy0L7Qu2A7XG4gICAgICAgICAgICAgICAgY2FzZSAnZmV3JzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGDQnNCw0LrRgdC40LzQsNC70YzQvdC+INC00L7Qt9Cy0L7Qu9C10L3QviAke2NvdW50fSDRgdC40LzQstC+0LvQuGA7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGDQnNCw0LrRgdC40LzQsNC70YzQvdC+INC00L7Qt9Cy0L7Qu9C10L3QviAke2NvdW50fSDRgdC40LzQstC+0LvRltCyYDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbmV3Rm9sZGVyRGlhbG9nQ3JlYXRlQnRuTGFiZWw6ICfQodGC0LLQvtGA0LjRgtC4JyxcbiAgICAgICAgbmV3Rm9sZGVyRGlhbG9nQ2FuY2VsQnRuTGFiZWw6ICfQodC60LDRgdGD0LLQsNGC0LgnLFxuICAgICAgICBicmVhZGNydW1iTGFiZWxBbGxGaWxlczogJ9Cj0YHRliDRhNCw0LnQu9C4JyxcbiAgICAgICAgYnJlYWRjcnVtYkxhYmVsQWxsRmlsZXNXaXRoVG90YWw6ICfQo9GB0ZYg0YTQsNC50LvQuCAoe3sgdG90YWwgfX0pJyxcbiAgICAgICAgc2VhcmNoUGxhY2Vob2xkZXI6ICfQn9C+0YjRg9C6JyxcbiAgICAgICAgYWRkQnRuTGFiZWw6ICfQlNC+0LTQsNGC0LgnLFxuICAgICAgICBuZXdGb2xkZXJCdG5MYWJlbDogJ9Cd0L7QstCwINC/0LDQv9C60LAnLFxuICAgICAgICBtb3ZlVG9CdG5MYWJlbDogJ9Cf0LXRgNC10LzRltGB0YLQuNGC0Lgg0LTQvicsXG4gICAgICAgIGRvd25sb2FkQnRuTGFiZWw6ICfQl9Cw0LLQsNC90YLQsNC20LjRgtC4JyxcbiAgICAgICAgdXBkYXRlVmVyc2lvbkJ0bkxhYmVsOiAn0J7QvdC+0LLQuNGC0Lgg0LLQtdGA0YHRltGOJyxcbiAgICAgICAgcmVtb3ZlQnRuTGFiZWw6ICfQktC40LTQsNC70LjRgtC4JyxcbiAgICAgICAgZm9sZGVySWNvblRpdGxlOiAn0JfQvdCw0YfQvtC6INC/0LDQv9C60LgnLFxuICAgICAgICBmaWxlSWNvblRpdGxlOiAn0JfQvdCw0YfQvtC6INGE0LDQudC70YMnLFxuICAgICAgICBlZGl0RmlsZU5hbWVJbnB1dFBsYWNlaG9sZGVyOiAn0JLQstC10LTRltGC0Ywg0L3QsNC30LLRgycsXG4gICAgICAgIGVkaXRGaWxlTmFtZUZpbGVBbHJlYWR5RXhpc3RzRXJyb3I6ICfQpNCw0LnQuyDQtyDRgtCw0LrQvtGOINC90LDQt9Cy0L7RjiDQstC20LUg0ZbRgdC90YPRlCcsXG4gICAgICAgIGVkaXRGaWxlTmFtZUZvbGRlckFscmVhZHlFeGlzdHNFcnJvcjogJ9Cf0LDQv9C60LAg0Lcg0YLQsNC60L7RjiDQvdCw0LfQstC+0Y4g0LLQttC1INGW0YHQvdGD0ZQnLFxuICAgICAgICBpdGVtU3RhdHVzU3VjY2Vzc2Z1bDogJ9Cj0YHQv9GW0YjQvdC+JyxcbiAgICAgICAgaXRlbVN0YXR1c1Vuc3VjY2Vzc2Z1bDogJ9Cd0LXQstC00LDQu9C+JyxcbiAgICAgICAgdXBsb2FkTmV3RmlsZUFmdGVyRmFpbEFjdGlvbjogJ9CS0LjQutC+0L3QsNGC0LgnLFxuICAgICAgICBjYW5jZWxVcGxvYWROZXdGaWxlQWN0aW9uOiAn0KHQutCw0YHRg9Cy0LDRgtC4JyxcbiAgICAgICAgaXRlbU1lbnVCdG5UaXRsZTogJ9CR0ZbQu9GM0YjQtScsXG4gICAgICAgIGRyYWdEcm9wQXJlYVRleHQ6ICfQn9C10YDQtdGC0Y/Qs9C90ZbRgtGMINGE0LDQudC70Lgg0LTQu9GPINC30LDQstCw0L3RgtCw0LbQtdC90L3RjycsXG4gICAgICAgIG5vRGF0YVRleHQ6ICfQpNCw0LnQu9GW0LIg0L3QtSDQt9C90LDQudC00LXQvdC+JyxcbiAgICAgICAgbm9EYXRhRGVzY3JpcHRpb246ICfQn9C10YDQtdGC0Y/Qs9C90ZbRgtGMINGE0LDQudC70Lgg0LTQu9GPINC30LDQstCw0L3RgtCw0LbQtdC90L3RjyDQsNCx0L4g0YHQutC+0YDQuNGB0YLQsNC50YLQtdGB0Y8g0LrQvdC+0L/QutC+0Y4gwqvQlNC+0LTQsNGC0LjCuy4nLFxuICAgICAgICBwYWdpbmF0aW9uVG90YWw6ICfQn9C+0LrQsNC30LDQvdC+IHt7IGZyb20gfX0te3sgdG8gfX0g0ZbQtyB7eyB0b3RhbCB9fScsXG4gICAgICAgIHJlc3VsdHNQZXJQYWdlOiAn0KDQtdC30YPQu9GM0YLQsNGC0ZbQsiDQvdCwINGB0YLQvtGA0ZbQvdGG0ZYnLFxuICAgICAgICBtZXNzYWdlQ3JlYXRlRmFpbGVkOiAn0J3QtSDQstC00LDQu9C+0YHRjyDRgdGC0LLQvtGA0LjRgtC4IHt7IGZvbGRlck5hbWUgfX0uJyxcbiAgICAgICAgbWVzc2FnZUNyZWF0ZVN1Y2Nlc3M6ICd7eyBmb2xkZXJOYW1lIH19INGD0YHQv9GW0YjQvdC+INGB0YLQstC+0YDQtdC90L4uJyxcbiAgICAgICAgbWVzc2FnZVVwZGF0ZVZlcnNpb25GYWlsZWQ6ICfQndC1INCy0LTQsNC70L7RgdGPINC+0L3QvtCy0LjRgtC4INCy0LXRgNGB0ZbRjiB7eyBmb2xkZXJOYW1lIH19LicsXG4gICAgICAgIG1lc3NhZ2VVcGRhdGVWZXJzaW9uU3VjY2VzczogJ9CS0LXRgNGB0ZbRjyB7eyBmb2xkZXJOYW1lIH19INC+0L3QvtCy0LvQtdC90LAuJyxcbiAgICAgICAgbWVzc2FnZUZpbGVSZW5hbWVGYWlsZWQ6ICfQndC1INCy0LTQsNC70L7RgdGPINC/0LXRgNC10LnQvNC10L3Rg9Cy0LDRgtC4IFwie3sgZnJvbSB9fVwiINC90LAgXCJ7eyB0byB9fS5cIicsXG4gICAgICAgIG1lc3NhZ2VGaWxlUmVuYW1lU3VjY2VzczogJ3t7IGZyb20gfX1cIiDQv9C10YDQtdC50LzQtdC90L7QstCw0L3QviDQvdCwIFwie3sgdG8gfX1cIi4nLFxuICAgICAgICBtZXNzYWdlUmVtb3ZlRm9sZGVyc0FuZEZpbGVzRmFpbGVkOiAocGFyYW1zKSA9PlxuICAgICAgICAgICAgYNCd0LUg0LLQtNCw0LvQvtGB0Y8g0LLQuNC00LDQu9C40YLQuCAkeygoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZm9sZGVyc0NvdW50ID0gcGFyYW1zWydmb2xkZXJzQ291bnQnXTtcbiAgICAgICAgICAgICAgICBjb25zdCBmb2xkZXJzQ291bnRPcHRpb24gPSBwbHVyYWxpemF0aW9uLnByb2Nlc3MoZm9sZGVyc0NvdW50KTtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGZvbGRlcnNDb3VudE9wdGlvbikge1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdvbmUnOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICcxINC/0LDQv9C60YMnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdmZXcnOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke2ZvbGRlcnNDb3VudH0g0L/QsNC/0LrQuGA7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7Zm9sZGVyc0NvdW50IHx8IDB9INC/0LDQv9C+0LpgO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pKCl9INGWICR7KCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWxlc0NvdW50ID0gcGFyYW1zWydmaWxlc0NvdW50J107XG4gICAgICAgICAgICAgICAgY29uc3QgZmlsZXNDb3VudE9wdGlvbiA9IHBsdXJhbGl6YXRpb24ucHJvY2VzcyhmaWxlc0NvdW50KTtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGZpbGVzQ291bnRPcHRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnb25lJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnMSDRhNCw0LnQuyc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2Zldyc6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7ZmlsZXNDb3VudH0g0YTQsNC50LvQuGA7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7ZmlsZXNDb3VudCB8fCAwfSDRhNCw0LnQu9GW0LJgO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pKCl9LmAsXG4gICAgICAgIG1lc3NhZ2VSZW1vdmVGb2xkZXJzQW5kRmlsZXNTdWNjZXNzOiAocGFyYW1zKSA9PlxuICAgICAgICAgICAgYCR7KCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBmb2xkZXJzQ291bnQgPSBwYXJhbXNbJ2ZvbGRlcnNDb3VudCddO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZvbGRlcnNDb3VudE9wdGlvbiA9IHBsdXJhbGl6YXRpb24ucHJvY2Vzcyhmb2xkZXJzQ291bnQpO1xuICAgICAgICAgICAgICAgIHN3aXRjaCAoZm9sZGVyc0NvdW50T3B0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ29uZSc6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJzEg0L/QsNC/0LrRgyc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2Zldyc6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7Zm9sZGVyc0NvdW50fSDQv9Cw0L/QutC4YDtcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtmb2xkZXJzQ291bnQgfHwgMH0g0L/QsNC/0L7QumA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkoKX0g0ZYgJHsoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpbGVzQ291bnQgPSBwYXJhbXNbJ2ZpbGVzQ291bnQnXTtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWxlc0NvdW50T3B0aW9uID0gcGx1cmFsaXphdGlvbi5wcm9jZXNzKGZpbGVzQ291bnQpO1xuICAgICAgICAgICAgICAgIHN3aXRjaCAoZmlsZXNDb3VudE9wdGlvbikge1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdvbmUnOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICcxINGE0LDQudC7JztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnZmV3JzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtmaWxlc0NvdW50fSDRhNCw0LnQu9C4YDtcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtmaWxlc0NvdW50IHx8IDB9INGE0LDQudC70ZbQsmA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkoKX0g0LLQuNC00LDQu9C10L3Qvi5gLFxuICAgICAgICBtZXNzYWdlUmVtb3ZlRm9sZGVyc0ZhaWxlZDogKHBhcmFtcykgPT5cbiAgICAgICAgICAgIGDQndC1INCy0LTQsNC70L7RgdGPINCy0LjQtNCw0LvQuNGC0LggJHsoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZvbGRlcnNDb3VudCA9IHBhcmFtc1snZm9sZGVyc0NvdW50J107XG4gICAgICAgICAgICAgICAgY29uc3QgZm9sZGVyc0NvdW50T3B0aW9uID0gcGx1cmFsaXphdGlvbi5wcm9jZXNzKGZvbGRlcnNDb3VudCk7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChmb2xkZXJzQ291bnRPcHRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnb25lJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnMSDQv9Cw0L/QutGDJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnZmV3JzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtmb2xkZXJzQ291bnR9INC/0LDQv9C60LhgO1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke2ZvbGRlcnNDb3VudCB8fCAwfSDQv9Cw0L/QvtC6YDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSgpfS5gLFxuICAgICAgICBtZXNzYWdlUmVtb3ZlRm9sZGVyc1N1Y2Nlc3M6IChwYXJhbXMpID0+XG4gICAgICAgICAgICBg0JLQuNC00LDQu9C10L3QviAkeygoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZm9sZGVyc0NvdW50ID0gcGFyYW1zWydmb2xkZXJzQ291bnQnXTtcbiAgICAgICAgICAgICAgICBjb25zdCBmb2xkZXJzQ291bnRPcHRpb24gPSBwbHVyYWxpemF0aW9uLnByb2Nlc3MoZm9sZGVyc0NvdW50KTtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGZvbGRlcnNDb3VudE9wdGlvbikge1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdvbmUnOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICcxINC/0LDQv9C60YMnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdmZXcnOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke2ZvbGRlcnNDb3VudH0g0L/QsNC/0LrQuGA7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7Zm9sZGVyc0NvdW50IHx8IDB9INC/0LDQv9C+0LpgO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pKCl9LmAsXG4gICAgICAgIG1lc3NhZ2VSZW1vdmVGaWxlc0ZhaWxlZDogKHBhcmFtcykgPT5cbiAgICAgICAgICAgIGDQndC1INCy0LTQsNC70L7RgdGPINCy0LjQtNCw0LvQuNGC0LggJHsoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpbGVzQ291bnQgPSBwYXJhbXNbJ2ZpbGVzQ291bnQnXTtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWxlc0NvdW50T3B0aW9uID0gcGx1cmFsaXphdGlvbi5wcm9jZXNzKGZpbGVzQ291bnQpO1xuICAgICAgICAgICAgICAgIHN3aXRjaCAoZmlsZXNDb3VudE9wdGlvbikge1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdvbmUnOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICcxINGE0LDQudC7JztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnZmV3JzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtmaWxlc0NvdW50fSDRhNCw0LnQu9C4YDtcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtmaWxlc0NvdW50IHx8IDB9INGE0LDQudC70ZbQsmA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkoKX0uYCxcbiAgICAgICAgbWVzc2FnZVJlbW92ZUZpbGVzU3VjY2VzczogKHBhcmFtcykgPT5cbiAgICAgICAgICAgIGDQktC40LTQsNC70LXQvdC+ICR7KCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWxlc0NvdW50ID0gcGFyYW1zWydmaWxlc0NvdW50J107XG4gICAgICAgICAgICAgICAgY29uc3QgZmlsZXNDb3VudE9wdGlvbiA9IHBsdXJhbGl6YXRpb24ucHJvY2VzcyhmaWxlc0NvdW50KTtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGZpbGVzQ291bnRPcHRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnb25lJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnMSDRhNCw0LnQuyc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2Zldyc6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7ZmlsZXNDb3VudH0g0YTQsNC50LvQuGA7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7ZmlsZXNDb3VudCB8fCAwfSDRhNCw0LnQu9GW0LJgO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pKCl9LmAsXG4gICAgICAgIG1lc3NhZ2VSZW1vdmVGaWxlT3JGb2xkZXJGYWlsZWQ6ICfQndC1INCy0LTQsNC70L7RgdGPINCy0LjQtNCw0LvQuNGC0Lgge3sgbmFtZSB9fS4nLFxuICAgICAgICBtZXNzYWdlUmVtb3ZlRmlsZU9yRm9sZGVyU3VjY2VzczogJ3t7IG5hbWUgfX0g0LLQuNC00LDQu9C10L3Qvi4nLFxuICAgICAgICBtZXNzYWdlTW92ZUZvbGRlcnNBbmRGaWxlc0ZhaWxlZDogKHBhcmFtcykgPT5cbiAgICAgICAgICAgIGDQndC1INCy0LTQsNC70L7RgdGPINC/0LXRgNC10LzRltGB0YLQuNGC0LggJHsoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZvbGRlcnNDb3VudCA9IHBhcmFtc1snZm9sZGVyc0NvdW50J107XG4gICAgICAgICAgICAgICAgY29uc3QgZm9sZGVyc0NvdW50T3B0aW9uID0gcGx1cmFsaXphdGlvbi5wcm9jZXNzKGZvbGRlcnNDb3VudCk7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChmb2xkZXJzQ291bnRPcHRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnb25lJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnMSDQv9Cw0L/QutGDJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnZmV3JzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtmb2xkZXJzQ291bnR9INC/0LDQv9C60LhgO1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke2ZvbGRlcnNDb3VudCB8fCAwfSDQv9Cw0L/QvtC6YDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSgpfSDRliAkeygoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmlsZXNDb3VudCA9IHBhcmFtc1snZmlsZXNDb3VudCddO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpbGVzQ291bnRPcHRpb24gPSBwbHVyYWxpemF0aW9uLnByb2Nlc3MoZmlsZXNDb3VudCk7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChmaWxlc0NvdW50T3B0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ29uZSc6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJzEg0YTQsNC50LsnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdmZXcnOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke2ZpbGVzQ291bnR9INGE0LDQudC70LhgO1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke2ZpbGVzQ291bnQgfHwgMH0g0YTQsNC50LvRltCyYDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSgpfSDQtNC+IHt7IHRvIH19LmAsXG4gICAgICAgIG1lc3NhZ2VNb3ZlRm9sZGVyc0FuZEZpbGVzU3VjY2VzczogKHBhcmFtcykgPT5cbiAgICAgICAgICAgIGAkeygoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZm9sZGVyc0NvdW50ID0gcGFyYW1zWydmb2xkZXJzQ291bnQnXTtcbiAgICAgICAgICAgICAgICBjb25zdCBmb2xkZXJzQ291bnRPcHRpb24gPSBwbHVyYWxpemF0aW9uLnByb2Nlc3MoZm9sZGVyc0NvdW50KTtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGZvbGRlcnNDb3VudE9wdGlvbikge1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdvbmUnOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICcxINC/0LDQv9C60YMnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdmZXcnOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke2ZvbGRlcnNDb3VudH0g0L/QsNC/0LrQuGA7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7Zm9sZGVyc0NvdW50IHx8IDB9INC/0LDQv9C+0LpgO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pKCl9INGWICR7KCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWxlc0NvdW50ID0gcGFyYW1zWydmaWxlc0NvdW50J107XG4gICAgICAgICAgICAgICAgY29uc3QgZmlsZXNDb3VudE9wdGlvbiA9IHBsdXJhbGl6YXRpb24ucHJvY2VzcyhmaWxlc0NvdW50KTtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGZpbGVzQ291bnRPcHRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnb25lJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnMSDRhNCw0LnQuyc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2Zldyc6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7ZmlsZXNDb3VudH0g0YTQsNC50LvQuGA7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7ZmlsZXNDb3VudCB8fCAwfSDRhNCw0LnQu9GW0LJgO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pKCl9INC/0LXRgNC10LzRltGJ0LXQvdC+INCyIHt7IHRvIH19LmAsXG4gICAgICAgIG1lc3NhZ2VNb3ZlRm9sZGVyc0ZhaWxlZDogKHBhcmFtcykgPT5cbiAgICAgICAgICAgIGDQndC1INCy0LTQsNC70L7RgdGPINC/0LXRgNC10LzRltGB0YLQuNGC0LggJHsoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZvbGRlcnNDb3VudCA9IHBhcmFtc1snZm9sZGVyc0NvdW50J107XG4gICAgICAgICAgICAgICAgY29uc3QgZm9sZGVyc0NvdW50T3B0aW9uID0gcGx1cmFsaXphdGlvbi5wcm9jZXNzKGZvbGRlcnNDb3VudCk7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChmb2xkZXJzQ291bnRPcHRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnb25lJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnMSDQv9Cw0L/QutGDJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnZmV3JzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtmb2xkZXJzQ291bnR9INC/0LDQv9C60LhgO1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke2ZvbGRlcnNDb3VudCB8fCAwfSDQv9Cw0L/QvtC6YDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSgpfSDQtNC+IHt7IHRvIH19LmAsXG4gICAgICAgIG1lc3NhZ2VNb3ZlRm9sZGVyc1N1Y2Nlc3M6IChwYXJhbXMpID0+XG4gICAgICAgICAgICBgJHsoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZvbGRlcnNDb3VudCA9IHBhcmFtc1snZm9sZGVyc0NvdW50J107XG4gICAgICAgICAgICAgICAgY29uc3QgZm9sZGVyc0NvdW50T3B0aW9uID0gcGx1cmFsaXphdGlvbi5wcm9jZXNzKGZvbGRlcnNDb3VudCk7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChmb2xkZXJzQ291bnRPcHRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnb25lJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnMSDQv9Cw0L/QutGDJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnZmV3JzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtmb2xkZXJzQ291bnR9INC/0LDQv9C60LhgO1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke2ZvbGRlcnNDb3VudCB8fCAwfSDQv9Cw0L/QvtC6YDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSgpfSDQv9C10YDQtdC80ZbRidC10L3QviDQtNC+IHt7IHRvIH19LmAsXG4gICAgICAgIG1lc3NhZ2VNb3ZlRmlsZXNGYWlsZWQ6IChwYXJhbXMpID0+XG4gICAgICAgICAgICBg0J3QtSDQstC00LDQu9C+0YHRjyDQv9C10YDQtdC80ZbRgdGC0LjRgtC4ICR7KCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWxlc0NvdW50ID0gcGFyYW1zWydmaWxlc0NvdW50J107XG4gICAgICAgICAgICAgICAgY29uc3QgZmlsZXNDb3VudE9wdGlvbiA9IHBsdXJhbGl6YXRpb24ucHJvY2VzcyhmaWxlc0NvdW50KTtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGZpbGVzQ291bnRPcHRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnb25lJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnMSDRhNCw0LnQuyc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2Zldyc6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7ZmlsZXNDb3VudH0g0YTQsNC50LvQuGA7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7ZmlsZXNDb3VudCB8fCAwfSDRhNCw0LnQu9GW0LJgO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pKCl9INC00L4ge3sgdG8gfX0uYCxcbiAgICAgICAgbWVzc2FnZU1vdmVGaWxlc1N1Y2Nlc3M6IChwYXJhbXMpID0+XG4gICAgICAgICAgICBgJHsoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpbGVzQ291bnQgPSBwYXJhbXNbJ2ZpbGVzQ291bnQnXTtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWxlc0NvdW50T3B0aW9uID0gcGx1cmFsaXphdGlvbi5wcm9jZXNzKGZpbGVzQ291bnQpO1xuICAgICAgICAgICAgICAgIHN3aXRjaCAoZmlsZXNDb3VudE9wdGlvbikge1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdvbmUnOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICcxINGE0LDQudC7JztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnZmV3JzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtmaWxlc0NvdW50fSDRhNCw0LnQu9C4YDtcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtmaWxlc0NvdW50IHx8IDB9INGE0LDQudC70ZbQsmA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkoKX0g0L/QtdGA0LXQvNGW0YnQtdC90L4g0LTQviB7eyB0byB9fS5gLFxuICAgICAgICBtZXNzYWdlTW92ZUZpbGVPckZvbGRlckZhaWxlZDogJ9Cd0LUg0LLQtNCw0LvQvtGB0Y8g0L/QtdGA0LXQvNGW0YHRgtC40YLQuCB7eyBuYW1lIH19INC00L4ge3sgdG8gfX0uJyxcbiAgICAgICAgbWVzc2FnZU1vdmVGaWxlT3JGb2xkZXJTdWNjZXNzOiAne3sgbmFtZSB9fSDQv9C10YDQtdC80ZbRidC10L3QviDQsiB7eyB0byB9fS4nLFxuICAgICAgICBtZXNzYWdlTW92ZVJvb3RGb2xkZXJzQW5kRmlsZXNGYWlsZWQ6IChwYXJhbXMpID0+XG4gICAgICAgICAgICBg0J3QtSDQstC00LDQu9C+0YHRjyDQv9C10YDQtdC80ZbRgdGC0LjRgtC4ICR7KCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBmb2xkZXJzQ291bnQgPSBwYXJhbXNbJ2ZvbGRlcnNDb3VudCddO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZvbGRlcnNDb3VudE9wdGlvbiA9IHBsdXJhbGl6YXRpb24ucHJvY2Vzcyhmb2xkZXJzQ291bnQpO1xuICAgICAgICAgICAgICAgIHN3aXRjaCAoZm9sZGVyc0NvdW50T3B0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ29uZSc6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJzEg0L/QsNC/0LrRgyc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2Zldyc6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7Zm9sZGVyc0NvdW50fSDQv9Cw0L/QutC4YDtcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtmb2xkZXJzQ291bnQgfHwgMH0g0L/QsNC/0L7QumA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkoKX0g0ZYgJHsoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpbGVzQ291bnQgPSBwYXJhbXNbJ2ZpbGVzQ291bnQnXTtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWxlc0NvdW50T3B0aW9uID0gcGx1cmFsaXphdGlvbi5wcm9jZXNzKGZpbGVzQ291bnQpO1xuICAgICAgICAgICAgICAgIHN3aXRjaCAoZmlsZXNDb3VudE9wdGlvbikge1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdvbmUnOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICcxINGE0LDQudC7JztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnZmV3JzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtmaWxlc0NvdW50fSDRhNCw0LnQu9C4YDtcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtmaWxlc0NvdW50IHx8IDB9INGE0LDQudC70ZbQsmA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkoKX0g0LTQviDQstGB0ZbRhSDRhNCw0LnQu9GW0LIuYCxcbiAgICAgICAgbWVzc2FnZU1vdmVSb290Rm9sZGVyc0FuZEZpbGVzU3VjY2VzczogKHBhcmFtcykgPT5cbiAgICAgICAgICAgIGAkeygoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZm9sZGVyc0NvdW50ID0gcGFyYW1zWydmb2xkZXJzQ291bnQnXTtcbiAgICAgICAgICAgICAgICBjb25zdCBmb2xkZXJzQ291bnRPcHRpb24gPSBwbHVyYWxpemF0aW9uLnByb2Nlc3MoZm9sZGVyc0NvdW50KTtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGZvbGRlcnNDb3VudE9wdGlvbikge1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdvbmUnOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICcxINC/0LDQv9C60YMnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdmZXcnOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke2ZvbGRlcnNDb3VudH0g0L/QsNC/0LrQuGA7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7Zm9sZGVyc0NvdW50IHx8IDB9INC/0LDQv9C+0LpgO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pKCl9INGWICR7KCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWxlc0NvdW50ID0gcGFyYW1zWydmaWxlc0NvdW50J107XG4gICAgICAgICAgICAgICAgY29uc3QgZmlsZXNDb3VudE9wdGlvbiA9IHBsdXJhbGl6YXRpb24ucHJvY2VzcyhmaWxlc0NvdW50KTtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGZpbGVzQ291bnRPcHRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnb25lJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnMSDRhNCw0LnQuyc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2Zldyc6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7ZmlsZXNDb3VudH0g0YTQsNC50LvQuGA7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7ZmlsZXNDb3VudCB8fCAwfSDRhNCw0LnQu9GW0LJgO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pKCl9INC/0LXRgNC10LzRltGJ0LXQvdC+INC00L4g0LLRgdGW0YUg0YTQsNC50LvRltCyLmAsXG4gICAgICAgIG1lc3NhZ2VNb3ZlUm9vdEZvbGRlcnNGYWlsZWQ6IChwYXJhbXMpID0+XG4gICAgICAgICAgICBg0J3QtSDQstC00LDQu9C+0YHRjyDQv9C10YDQtdC80ZbRgdGC0LjRgtC4ICR7KCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBmb2xkZXJzQ291bnQgPSBwYXJhbXNbJ2ZvbGRlcnNDb3VudCddO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZvbGRlcnNDb3VudE9wdGlvbiA9IHBsdXJhbGl6YXRpb24ucHJvY2Vzcyhmb2xkZXJzQ291bnQpO1xuICAgICAgICAgICAgICAgIHN3aXRjaCAoZm9sZGVyc0NvdW50T3B0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ29uZSc6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJzEg0L/QsNC/0LrRgyc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2Zldyc6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7Zm9sZGVyc0NvdW50fSDQv9Cw0L/QutC4YDtcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtmb2xkZXJzQ291bnQgfHwgMH0g0L/QsNC/0L7QumA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkoKX0g0LTQviDQstGB0ZbRhSDRhNCw0LnQu9GW0LIuYCxcbiAgICAgICAgbWVzc2FnZU1vdmVSb290Rm9sZGVyc1N1Y2Nlc3M6IChwYXJhbXMpID0+XG4gICAgICAgICAgICBgJHsoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZvbGRlcnNDb3VudCA9IHBhcmFtc1snZm9sZGVyc0NvdW50J107XG4gICAgICAgICAgICAgICAgY29uc3QgZm9sZGVyc0NvdW50T3B0aW9uID0gcGx1cmFsaXphdGlvbi5wcm9jZXNzKGZvbGRlcnNDb3VudCk7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChmb2xkZXJzQ291bnRPcHRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnb25lJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnMSDQv9Cw0L/QutGDJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnZmV3JzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtmb2xkZXJzQ291bnR9INC/0LDQv9C60LhgO1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke2ZvbGRlcnNDb3VudCB8fCAwfSDQv9Cw0L/QvtC6YDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSgpfSDQv9C10YDQtdC80ZbRidC10L3QviDQtNC+INCy0YHRltGFINGE0LDQudC70ZbQsi5gLFxuICAgICAgICBtZXNzYWdlTW92ZVJvb3RGaWxlc0ZhaWxlZDogKHBhcmFtcykgPT5cbiAgICAgICAgICAgIGDQndC1INCy0LTQsNC70L7RgdGPINC/0LXRgNC10LzRltGB0YLQuNGC0LggJHsoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpbGVzQ291bnQgPSBwYXJhbXNbJ2ZpbGVzQ291bnQnXTtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWxlc0NvdW50T3B0aW9uID0gcGx1cmFsaXphdGlvbi5wcm9jZXNzKGZpbGVzQ291bnQpO1xuICAgICAgICAgICAgICAgIHN3aXRjaCAoZmlsZXNDb3VudE9wdGlvbikge1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdvbmUnOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICcxINGE0LDQudC7JztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnZmV3JzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtmaWxlc0NvdW50fSDRhNCw0LnQu9C4YDtcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtmaWxlc0NvdW50IHx8IDB9INGE0LDQudC70ZbQsmA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkoKX0g0LTQviDQstGB0ZbRhSDRhNCw0LnQu9GW0LIuYCxcbiAgICAgICAgbWVzc2FnZU1vdmVSb290RmlsZXNTdWNjZXNzOiAocGFyYW1zKSA9PlxuICAgICAgICAgICAgYCR7KCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWxlc0NvdW50ID0gcGFyYW1zWydmaWxlc0NvdW50J107XG4gICAgICAgICAgICAgICAgY29uc3QgZmlsZXNDb3VudE9wdGlvbiA9IHBsdXJhbGl6YXRpb24ucHJvY2VzcyhmaWxlc0NvdW50KTtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGZpbGVzQ291bnRPcHRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnb25lJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnMSDRhNCw0LnQuyc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2Zldyc6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7ZmlsZXNDb3VudH0g0YTQsNC50LvQuGA7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7ZmlsZXNDb3VudCB8fCAwfSDRhNCw0LnQu9GW0LJgO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pKCl9INC/0LXRgNC10LzRltGJ0LXQvdC+INC00L4g0LLRgdGW0YUg0YTQsNC50LvRltCyLmAsXG4gICAgICAgIG1lc3NhZ2VNb3ZlUm9vdEZpbGVPckZvbGRlckZhaWxlZDogJ9Cd0LUg0LLQtNCw0LvQvtGB0Y8g0L/QtdGA0LXQvNGW0YHRgtC40YLQuCB7eyBuYW1lIH19INC00L4g0LLRgdGW0YUg0YTQsNC50LvRltCyLicsXG4gICAgICAgIG1lc3NhZ2VNb3ZlUm9vdEZpbGVPckZvbGRlclN1Y2Nlc3M6ICd7eyBuYW1lIH19INC/0LXRgNC10LzRltGJ0LXQvdC+INC00L4g0LLRgdGW0YUg0YTQsNC50LvRltCyLicsXG4gICAgICAgIG1lc3NhZ2VGaWxlVHlwZU1pc21hdGNoUGx1cmFsOiAocGFyYW1zKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmaWxlc0NvdW50ID0gcGFyYW1zWydmaWxlc0NvdW50J107XG4gICAgICAgICAgICBjb25zdCBmb2xkZXJzQ291bnRPcHRpb24gPSBwbHVyYWxpemF0aW9uLnByb2Nlc3MoZmlsZXNDb3VudCk7XG4gICAgICAgICAgICBzd2l0Y2ggKGZvbGRlcnNDb3VudE9wdGlvbikge1xuICAgICAgICAgICAgICAgIGNhc2UgJ29uZSc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnMSDRhNCw0LnQuyDQvNCw0ZQg0L3QtdC/0YDQsNCy0LjQu9GM0L3QuNC5INGC0LjQvy4g0JTQvtC30LLQvtC70LXQvdGWINGC0LjQv9C4OiB7eyBhbGxvd2VkVHlwZXMgfX0uJztcbiAgICAgICAgICAgICAgICBjYXNlICdmZXcnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7ZmlsZXNDb3VudH0g0YTQsNC50LvQuCDQvNCw0Y7RgtGMINC90LXQv9GA0LDQstC40LvRjNC90LjQuSDRgtC40L8uINCU0L7Qt9Cy0L7Qu9C10L3RliDRgtC40L/QuDoge3sgYWxsb3dlZFR5cGVzIH19LmA7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke2ZpbGVzQ291bnQgfHwgMH0g0YTQsNC50LvRltCyINC80LDRjtGC0Ywg0L3QtdC/0YDQsNCy0LjQu9GM0L3QuNC5INGC0LjQvy4g0JTQvtC30LLQvtC70LXQvdGWINGC0LjQv9C4OiB7eyBhbGxvd2VkVHlwZXMgfX0uYDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbWVzc2FnZUZpbGVUeXBlTWlzbWF0Y2hTaW5ndWxhcjpcbiAgICAgICAgICAgICfQpNCw0LnQuyBcInt7IGZpbGVOYW1lIH19XCIg0LzQsNGUINC90LXQv9GA0LDQstC40LvRjNC90LjQuSDRgtC40L8uINCU0L7Qt9Cy0L7Qu9C10L3RliDRgtC40L/QuDoge3sgYWxsb3dlZFR5cGVzIH19LicsXG4gICAgICAgIG1lc3NhZ2VGaWxlU2l6ZUV4Y2VlZGVkUGx1cmFsOiAocGFyYW1zKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmaWxlc0NvdW50ID0gcGFyYW1zWydmaWxlc0NvdW50J107XG4gICAgICAgICAgICBjb25zdCBmb2xkZXJzQ291bnRPcHRpb24gPSBwbHVyYWxpemF0aW9uLnByb2Nlc3MoZmlsZXNDb3VudCk7XG4gICAgICAgICAgICBzd2l0Y2ggKGZvbGRlcnNDb3VudE9wdGlvbikge1xuICAgICAgICAgICAgICAgIGNhc2UgJ29uZSc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnMSDRhNCw0LnQuyDQv9C10YDQtdCy0LjRidGD0ZQg0LzQsNC60YHQuNC80LDQu9GM0L3QuNC5INGA0L7Qt9C80ZbRgCDRhNCw0LnQu9GDLiDQlNC+0LfQstC+0LvQtdC90LjQuSDQvNCw0LrRgdC40LzQsNC70YzQvdC40Lkg0YDQvtC30LzRltGAINGE0LDQudC70YM6IHt7IG1heEZpbGVTaXplIH19Lic7XG4gICAgICAgICAgICAgICAgY2FzZSAnZmV3JzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke2ZpbGVzQ291bnR9INGE0LDQudC70Lgg0L/QtdGA0LXQstC40YnRg9GO0YLRjCDQvNCw0LrRgdC40LzQsNC70YzQvdC40Lkg0YDQvtC30LzRltGAINGE0LDQudC70YMuINCU0L7Qt9Cy0L7Qu9C10L3QuNC5INC80LDQutGB0LjQvNCw0LvRjNC90LjQuSDRgNC+0LfQvNGW0YAg0YTQsNC50LvRgzoge3sgbWF4RmlsZVNpemUgfX0uYDtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlc0NvdW50IHx8IDBcbiAgICAgICAgICAgICAgICAgICAgfSDRhNCw0LnQu9GW0LIg0L/QtdGA0LXQstC40YnRg9GO0YLRjCDQvNCw0LrRgdC40LzQsNC70YzQvdC40Lkg0YDQvtC30LzRltGAINGE0LDQudC70YMuINCU0L7Qt9Cy0L7Qu9C10L3QuNC5INC80LDQutGB0LjQvNCw0LvRjNC90LjQuSDRgNC+0LfQvNGW0YAg0YTQsNC50LvRgzoge3sgbWF4RmlsZVNpemUgfX0uYDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbWVzc2FnZUZpbGVTaXplRXhjZWVkZWRTaW5ndWxhcjpcbiAgICAgICAgICAgICfQpNCw0LnQuyBcInt7IGZpbGVOYW1lIH19XCIg0L/QtdGA0LXQstC40YnRg9GUINC80LDQutGB0LjQvNCw0LvRjNC90LjQuSDRgNC+0LfQvNGW0YAg0YTQsNC50LvRgy4g0JTQvtC30LLQvtC70LXQvdC40Lkg0LzQsNC60YHQuNC80LDQu9GM0L3QuNC5INGA0L7Qt9C80ZbRgCDRhNCw0LnQu9GDOiB7eyBtYXhGaWxlU2l6ZSB9fS4nLFxuICAgICAgICBtZXNzYWdlRmlsZU5hbWVMZW5ndGhFeGNlZWRlZFBsdXJhbDogKHBhcmFtcykgPT4ge1xuICAgICAgICAgICAgY29uc3QgZmlsZXNDb3VudCA9IHBhcmFtc1snZmlsZXNDb3VudCddO1xuICAgICAgICAgICAgY29uc3QgZm9sZGVyc0NvdW50T3B0aW9uID0gcGx1cmFsaXphdGlvbi5wcm9jZXNzKGZpbGVzQ291bnQpO1xuICAgICAgICAgICAgc3dpdGNoIChmb2xkZXJzQ291bnRPcHRpb24pIHtcbiAgICAgICAgICAgICAgICBjYXNlICdvbmUnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJzEg0YTQsNC50Lsg0L/QtdGA0LXQstC40YnQuNCyINC80LDQutGB0LjQvNCw0LvRjNC90YMg0LTQvtCy0LbQuNC90YMg0ZbQvNC10L3RliDRhNCw0LnQu9GDLiDQlNC+0LfQstC+0LvQtdC90LAg0LTQvtCy0LbQuNC90LAg0ZbQvNC10L3RliDRhNCw0LnQu9GDOiB7eyBtYXhGaWxlbmFtZUxlbmd0aCB9fSDRgdC40LzQstC+0LvRltCyLic7XG4gICAgICAgICAgICAgICAgY2FzZSAnZmV3JzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke2ZpbGVzQ291bnR9INGE0LDQudC70Lgg0L/QtdGA0LXQstC40YnQuNC70Lgg0LzQsNC60YHQuNC80LDQu9GM0L3RgyDQtNC+0LLQttC40L3RgyDRltC80LXQvdGWINGE0LDQudC70YMuINCU0L7Qt9Cy0L7Qu9C10L3QsCDQtNC+0LLQttC40L3QsCDRltC80LXQvdGWINGE0LDQudC70YM6IHt7IG1heEZpbGVuYW1lTGVuZ3RoIH19INGB0LjQvNCy0L7Qu9GW0LIuYDtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlc0NvdW50IHx8IDBcbiAgICAgICAgICAgICAgICAgICAgfSDRhNCw0LnQu9GW0LIg0L/QtdGA0LXQstC40YnQuNC70Lgg0LzQsNC60YHQuNC80LDQu9GM0L3RgyDQtNC+0LLQttC40L3RgyDRltC80LXQvdGWINGE0LDQudC70YMuINCU0L7Qt9Cy0L7Qu9C10L3QsCDQtNC+0LLQttC40L3QsCDRltC80LXQvdGWINGE0LDQudC70YM6IHt7IG1heEZpbGVuYW1lTGVuZ3RoIH19INGB0LjQvNCy0L7Qu9GW0LIuYDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbWVzc2FnZUZpbGVOYW1lTGVuZ3RoRXhjZWVkZWRTaW5ndWxhcjpcbiAgICAgICAgICAgICfQndCw0LfQstCwIFwie3sgZmlsZU5hbWUgfX1cIiDQv9C10YDQtdCy0LjRidGD0ZQg0LzQsNC60YHQuNC80LDQu9GM0L3RgyDQtNC+0LLQttC40L3RgyDRltC80LXQvdGWINGE0LDQudC70YMuINCU0L7Qt9Cy0L7Qu9C10L3QsCDQtNC+0LLQttC40L3QsCDRltC80LXQvdGWINGE0LDQudC70YM6IHt7IG1heEZpbGVuYW1lTGVuZ3RoIH19INGB0LjQvNCy0L7Qu9GW0LIuJ1xuICAgIH0sXG4gICAgcGxhdGZvcm1XaXphcmRHZW5lcmF0b3I6IHsgc3VtbWFyeVNlY3Rpb25FZGl0U3RlcDogJ9Cg0LXQtNCw0LPRg9Cy0LDRgtC4JyB9LFxuICAgIHBsYXRmb3JtTWVzc2FnZVBvcG92ZXI6IHtcbiAgICAgICAgYWxsRXJyb3JzOiAn0JLRgdGWJyxcbiAgICAgICAgZGVmYXVsdEVycm9yczoge1xuICAgICAgICAgICAgZW1haWw6ICfQl9C90LDRh9C10L3QvdGPINC/0L7Qu9GPINC90LUg0LLRltC00L/QvtCy0ZbQtNCw0ZQg0YTQvtGA0LzQsNGC0YMgRS1tYWlsJyxcbiAgICAgICAgICAgIG1heDogJ9CX0L3QsNGH0LXQvdC90Y8g0L/QvtC70Y8g0L/QtdGA0LXQstC40YnRg9GUINC80LDQutGB0LjQvNCw0LvRjNC90L4g0LTQvtC/0YPRgdGC0LjQvNC1JyxcbiAgICAgICAgICAgIG1heExlbmd0aDogJ9CU0L7QstC20LjQvdCwINC30L3QsNGH0LXQvdC90Y8g0L/QvtC70Y8g0L/QtdGA0LXQstC40YnRg9GUINC80LDQutGB0LjQvNCw0LvRjNC90L4g0LTQvtC/0YPRgdGC0LjQvNC1JyxcbiAgICAgICAgICAgIG1pbjogJ9CX0L3QsNGH0LXQvdC90Y8g0L/QvtC70Y8g0LzQtdC90YjQtSDQvNGW0L3RltC80LDQu9GM0L3QviDQtNC+0L/Rg9GB0YLQuNC80L7Qs9C+JyxcbiAgICAgICAgICAgIG1pbkxlbmd0aDogJ9CU0L7QstC20LjQvdCwINC30L3QsNGH0LXQvdC90Y8g0L/QvtC70Y8g0LzQtdC90YjQtSDQvNCw0LrRgdC40LzQsNC70YzQvdC+INC00L7Qv9GD0YHRgtC40LzQvtCz0L4nLFxuICAgICAgICAgICAgcGF0dGVybjogJ9Cf0L7Qu9C1INC90LUg0LLRltC00L/QvtCy0ZbQtNCw0ZQg0YTQvtGA0LzQsNGC0YMnLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IFwi0J7QsdC+0LIn0Y/Qt9C60L7QstC1INC/0L7Qu9C1XCIsXG4gICAgICAgICAgICByZXF1aXJlZFRydWU6IFwi0J7QsdC+0LIn0Y/Qt9C60L7QstC1INC/0L7Qu9C1XCJcbiAgICAgICAgfVxuICAgIH0sXG4gICAgcGxhdGZvcm1WYXJpYW50TWFuYWdlbWVudDoge1xuICAgICAgICBtYW5hZ2U6ICfQo9C/0YDQsNCy0LvRltC90L3RjycsXG4gICAgICAgIHNhdmVBczogJ9CX0LHQtdGA0LXQs9GC0Lgg0Y/QuicsXG4gICAgICAgIHNhdmVWaWV3OiAn0JfQsdC10YDQtdCz0YLQuCDQktC40LQnLFxuICAgICAgICBzYXZlOiAn0JfQsdC10YDQtdCz0YLQuCcsXG4gICAgICAgIG15Vmlld3M6ICfQnNC+0Zcg0JLQuNC00LgnLFxuICAgICAgICB2aWV3OiAn0JLQuNC0JyxcbiAgICAgICAgc2V0QXNEZWZhdWx0OiAn0JLRgdGC0LDQvdC+0LLQuNGC0Lgg0LfQsCDQt9Cw0LzQvtCy0YfRg9Cy0LDQvdC90Y/QvCcsXG4gICAgICAgIHB1YmxpYzogJ9Cf0YPQsdC70ZbRh9C90LjQuScsXG4gICAgICAgIGFwcGx5QXV0b21hdGljYWxseTogJ9CX0LDRgdGC0L7RgdC+0LLRg9Cy0LDRgtC4INCw0LLRgtC+0LzQsNGC0LjRh9C90L4nLFxuICAgICAgICByZXF1aXJlZEZpZWxkRXJyb3I6IFwi0J7QsdC+0LIn0Y/Qt9C60L7QstC1INC/0L7Qu9C1LlwiLFxuICAgICAgICBuYW1lVGFrZW5GaWVsZEVycm9yOiBcItCS0LjQtCDQtyDRgtCw0LrQuNC8INGW0Lwn0Y/QvCDQstC20LUg0ZbRgdC90YPRlC4g0JLQstC10LTRltGC0Ywg0ZbQvdGI0LUg0ZbQvCfRjy5cIixcbiAgICAgICAgY2FuY2VsOiAn0KHQutCw0YHRg9Cy0LDRgtC4JyxcbiAgICAgICAgbWFuYWdlVmlld3M6ICfQo9C/0YDQsNCy0LvRltC90L3RjyDQstC40LTQsNC80LgnLFxuICAgICAgICBtYXJrQXNGYXZvdXJpdGU6ICfQn9C+0LfQvdCw0YfQuNGC0Lgg0Y/QuiDQvtCx0YDQsNC90LUnLFxuICAgICAgICBzaGFyaW5nOiAn0KHQv9GW0LvRjNC90LUg0LLQuNC60L7RgNC40YHRgtCw0L3QvdGPJyxcbiAgICAgICAgZGVmYXVsdDogJ9CX0LAg0LfQsNC80L7QstGH0YPQstCw0L3QvdGP0LwnLFxuICAgICAgICBjcmVhdGVkQnk6ICfQodGC0LLQvtGA0LjQsijQu9CwKScsXG4gICAgICAgIHJlbW92ZVZhcmlhbnQ6ICfQktC40LTQsNC70LjRgtC4INCy0LjQtCcsXG4gICAgICAgIHNlYXJjaDogJ9Cf0L7RiNGD0LonLFxuICAgICAgICBhY2Nlc3M6IHsgcHVibGljOiAn0J/Rg9Cx0LvRltGH0L3QtScsIHByaXZhdGU6ICfQn9GA0LjQstCw0YLQvdC1JyB9XG4gICAgfSxcbiAgICBwbGF0Zm9ybVNlbGVjdDogeyBzZWxlY3RPcHRpb25MYWJlbDogJ9CS0LjQsdC10YDRltGC0Ywg0L7Qv9GG0ZbRjicgfSxcbiAgICBmblNsaWRlcjoge1xuICAgICAgICBtaW5NYXhEZXRhaWxzOiAn0JzRltC90ZbQvNCw0LvRjNC90LUg0LfQvdCw0YfQtdC90L3RjyDRgdC70LDQudC00LXRgNCwIHt7bWlufX0sINC80LDQutGB0LjQvNCw0LvRjNC90LUg0LfQvdCw0YfQtdC90L3RjyB7eyBtYXggfX0nLFxuICAgICAgICB2YWx1ZW1pbkRldGFpbHM6ICfQn9C+0YLQvtGH0L3QtSDQt9C90LDRh9C10L3QvdGPOiB7eyB2YWx1ZSB9fScsXG4gICAgICAgIHZhbHVlbWF4RGV0YWlsczogJ9Cf0L7RgtC+0YfQvdC1INC30L3QsNGH0LXQvdC90Y86IHt7IHZhbHVlIH19JyxcbiAgICAgICAgdmFsdWVOb3dEZXRhaWxzOiAn0J/QvtGC0L7Rh9C90LUg0LfQvdCw0YfQtdC90L3Rjzoge3sgdmFsdWUgfX0nXG4gICAgfSxcbiAgICBmblN3aXRjaDogeyBzZW1hbnRpY0FjY2VwdExhYmVsOiAn0J/RgNC40LnQvdGP0YLQuCcsIHNlbWFudGljRGVjbGluZUxhYmVsOiAn0JLRltC00YXQuNC70LjRgtC4JyB9LFxuICAgIGNvcmVUcmVlOiB7IGV4cGFuZDogJ9Cg0L7Qt9Cz0L7RgNC90YPRgtC4INCy0YPQt9C+0LsnLCBjb2xsYXBzZTogJ9CX0LPQvtGA0L3Rg9GC0Lgg0LLRg9C30L7QuycsIG5vRGF0YTogJ9Cd0LXQvNCw0ZQg0LTQsNC90LjRhScgfVxufTtcbiJdfQ==