@rangertechnologies/ngnxt 2.1.173 → 2.1.176

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 (85) hide show
  1. package/esm2022/environments/version.mjs +2 -2
  2. package/esm2022/lib/components/button/nxt-button.component.mjs +42 -39
  3. package/esm2022/lib/components/custom-dropdown/custom-dropdown.component.mjs +48 -7
  4. package/esm2022/lib/components/custom-radio/custom-radio.component.mjs +41 -4
  5. package/esm2022/lib/components/datatable/datatable.component.mjs +6 -3
  6. package/esm2022/lib/components/file-upload/file-upload.component.mjs +24 -59
  7. package/esm2022/lib/components/nxt-input/nxt-input.component.mjs +2822 -0
  8. package/esm2022/lib/components/pick-location/pick-location.component.mjs +19 -5
  9. package/esm2022/lib/components/search-box/search-box.component.mjs +19 -13
  10. package/esm2022/lib/nxt-app.module.mjs +13 -292
  11. package/esm2022/lib/pages/booklet/booklet.component.mjs +20 -7
  12. package/esm2022/lib/pages/builder/element/element.component.mjs +9 -12
  13. package/esm2022/lib/pages/builder/form/form.component.mjs +6 -5
  14. package/esm2022/lib/pages/builder/properties/properties.component.mjs +29 -5
  15. package/esm2022/lib/pages/pdfDesigner/pdf-designer/pdf-designer.component.mjs +4 -5
  16. package/esm2022/lib/pages/pdfDesigner/pdf-properties/pdf-properties.component.mjs +2 -2
  17. package/esm2022/lib/pages/questionbook/questionbook.component.mjs +14 -30
  18. package/esm2022/lib/pages/questionnaire/questionnaire.component.mjs +21 -40
  19. package/esm2022/lib/services/form-builder.service.mjs +1 -1
  20. package/esm2022/public-api.mjs +2 -11
  21. package/fesm2022/rangertechnologies-ngnxt.mjs +15838 -14645
  22. package/fesm2022/rangertechnologies-ngnxt.mjs.map +1 -1
  23. package/lib/components/button/nxt-button.component.d.ts +13 -12
  24. package/lib/components/custom-dropdown/custom-dropdown.component.d.ts +11 -4
  25. package/lib/components/custom-radio/custom-radio.component.d.ts +14 -3
  26. package/lib/components/datatable/datatable.component.d.ts +2 -1
  27. package/lib/components/file-upload/file-upload.component.d.ts +6 -5
  28. package/lib/components/nxt-input/nxt-input.component.d.ts +159 -0
  29. package/lib/components/pick-location/pick-location.component.d.ts +5 -3
  30. package/lib/components/search-box/search-box.component.d.ts +3 -2
  31. package/lib/nxt-app.module.d.ts +30 -55
  32. package/lib/pages/booklet/booklet.component.d.ts +3 -1
  33. package/lib/pages/builder/element/element.component.d.ts +1 -1
  34. package/lib/pages/builder/form/form.component.d.ts +1 -1
  35. package/lib/pages/builder/properties/properties.component.d.ts +93 -1
  36. package/lib/pages/questionbook/questionbook.component.d.ts +3 -3
  37. package/lib/pages/questionnaire/questionnaire.component.d.ts +6 -10
  38. package/lib/services/form-builder.service.d.ts +12 -22
  39. package/package.json +1 -1
  40. package/public-api.d.ts +1 -9
  41. package/rangertechnologies-ngnxt-2.1.176.tgz +0 -0
  42. package/src/lib/style.css +0 -1
  43. package/esm2022/lib/components/cards/group-card/group-card.component.mjs +0 -36
  44. package/esm2022/lib/components/cards/group-info/group-info.component.mjs +0 -102
  45. package/esm2022/lib/components/cards/image-card/image-card.component.mjs +0 -83
  46. package/esm2022/lib/components/cards/info-card/info-card.component.mjs +0 -109
  47. package/esm2022/lib/components/custom-button/custom-button.component.mjs +0 -42
  48. package/esm2022/lib/components/custom-date/custom-date.component.mjs +0 -48
  49. package/esm2022/lib/components/custom-date-picker/custom-date-picker.component.mjs +0 -53
  50. package/esm2022/lib/components/custom-image/custom-image.component.mjs +0 -34
  51. package/esm2022/lib/components/custom-input/custom-input.component.mjs +0 -101
  52. package/esm2022/lib/components/custom-label/custom-label.component.mjs +0 -24
  53. package/esm2022/lib/components/custom-rich-text/custom-rich-text.component.mjs +0 -182
  54. package/esm2022/lib/components/custom-table/custom-table.component.mjs +0 -252
  55. package/esm2022/lib/components/custom-text-area/custom-text-area.component.mjs +0 -71
  56. package/esm2022/lib/components/custom-time/custom-time.component.mjs +0 -66
  57. package/esm2022/lib/components/dependent-table/dependent-table.component.mjs +0 -45
  58. package/esm2022/lib/components/dropdown-with-flag/dropdown-with-flag.component.mjs +0 -44
  59. package/esm2022/lib/components/file-view/file-view.component.mjs +0 -49
  60. package/esm2022/lib/components/loader/loader.component.mjs +0 -23
  61. package/esm2022/lib/components/table-appendix/table-appendix.component.mjs +0 -128
  62. package/esm2022/lib/model/tableWrapper.mjs +0 -20
  63. package/esm2022/lib/pages/summary-page/summary-page.component.mjs +0 -79
  64. package/lib/components/cards/group-card/group-card.component.d.ts +0 -13
  65. package/lib/components/cards/group-info/group-info.component.d.ts +0 -47
  66. package/lib/components/cards/image-card/image-card.component.d.ts +0 -34
  67. package/lib/components/cards/info-card/info-card.component.d.ts +0 -39
  68. package/lib/components/custom-button/custom-button.component.d.ts +0 -16
  69. package/lib/components/custom-date/custom-date.component.d.ts +0 -16
  70. package/lib/components/custom-date-picker/custom-date-picker.component.d.ts +0 -20
  71. package/lib/components/custom-image/custom-image.component.d.ts +0 -13
  72. package/lib/components/custom-input/custom-input.component.d.ts +0 -28
  73. package/lib/components/custom-label/custom-label.component.d.ts +0 -10
  74. package/lib/components/custom-rich-text/custom-rich-text.component.d.ts +0 -29
  75. package/lib/components/custom-table/custom-table.component.d.ts +0 -53
  76. package/lib/components/custom-text-area/custom-text-area.component.d.ts +0 -22
  77. package/lib/components/custom-time/custom-time.component.d.ts +0 -18
  78. package/lib/components/dependent-table/dependent-table.component.d.ts +0 -15
  79. package/lib/components/dropdown-with-flag/dropdown-with-flag.component.d.ts +0 -16
  80. package/lib/components/file-view/file-view.component.d.ts +0 -16
  81. package/lib/components/loader/loader.component.d.ts +0 -11
  82. package/lib/components/table-appendix/table-appendix.component.d.ts +0 -30
  83. package/lib/model/tableWrapper.d.ts +0 -18
  84. package/lib/pages/summary-page/summary-page.component.d.ts +0 -20
  85. package/rangertechnologies-ngnxt-2.1.173.tgz +0 -0
@@ -0,0 +1,2822 @@
1
+ //SKS31JAN25
2
+ import { CommonModule } from '@angular/common';
3
+ import { Component, Input, Output, EventEmitter, forwardRef, ChangeDetectionStrategy, ViewChildren, HostListener, ViewChild } from '@angular/core';
4
+ import { FormArray, FormControl, FormsModule, NG_VALIDATORS, NG_VALUE_ACCESSOR, ReactiveFormsModule, Validators } from '@angular/forms';
5
+ import { OwlDateTimeModule, OwlNativeDateTimeModule } from '@danielmoncada/angular-datetime-picker';
6
+ import { QuillEditorComponent } from 'ngx-quill';
7
+ import Quill from 'quill';
8
+ import { Mention } from 'quill-mention';
9
+ import ImageResizor from 'quill-image-resizor';
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "../../services/change.service";
12
+ import * as i2 from "../../services/data.service";
13
+ import * as i3 from "@angular/common";
14
+ import * as i4 from "@angular/forms";
15
+ import * as i5 from "@danielmoncada/angular-datetime-picker";
16
+ // SKS11JUN25 An array fontFamilyArr is created containing a list of font family names as strings.
17
+ const fontFamilyArr = ["Roboto", "Roboto Condensed", "Arial", "Verdana", "Tahoma", "Trebuchet MS",
18
+ "Georgia", "Times New Roman", "Courier New", "Palatino Linotype",
19
+ "Segoe UI", "Calibri", "Calibri Light", "Sans-Serif", "Helvetica",
20
+ "Impact", "Garamond", "Comic Sans MS", "Lucida Console", "Franklin Gothic Medium"];
21
+ // SKS11JUN25 Register Quill modules
22
+ Quill.register('modules/mention', Mention);
23
+ ImageResizor.Quill = Quill;
24
+ Quill.register('modules/imageResizor', ImageResizor);
25
+ // SKS11JUN25 The Quill font style attributor is imported and it is registered with Quil
26
+ let fonts = Quill.import("attributors/style/font");
27
+ fonts.whitelist = fontFamilyArr;
28
+ Quill.register(fonts, true);
29
+ export const QuillConfiguration = {
30
+ imageResizor: {},
31
+ toolbar: {
32
+ container: [
33
+ [{ 'font': fontFamilyArr }], //RS 17JAN2025 Added font family dropdown
34
+ ['bold', 'italic', 'underline', 'strike'],
35
+ ['blockquote', 'code-block'],
36
+ [{ header: [1, 2, 3, 4, 5, 6, false] }],
37
+ [{ list: 'ordered' }, { list: 'bullet' }],
38
+ [{ color: [] }, { background: [] }],
39
+ [{ align: [] }],
40
+ ['link', 'image', 'video'],
41
+ ['formula'],
42
+ ['clean'],
43
+ ],
44
+ },
45
+ mention: {
46
+ allowedChars: /^[A-Za-z\sÅÄÖåäö]*$/,
47
+ mentionDenotationChars: ['@', '#'],
48
+ source: function (searchTerm, renderList) {
49
+ const values = [
50
+ { id: 1, value: 'User 1' },
51
+ { id: 2, value: 'User 2' },
52
+ ];
53
+ if (searchTerm.length === 0) {
54
+ renderList(values, searchTerm);
55
+ }
56
+ else {
57
+ const matches = values.filter((item) => item.value.toLowerCase().includes(searchTerm.toLowerCase()));
58
+ renderList(matches, searchTerm);
59
+ }
60
+ },
61
+ },
62
+ };
63
+ const EmptyQuillModules = {
64
+ toolbar: false, // no toolbar
65
+ clipboard: {
66
+ matchVisual: false
67
+ },
68
+ history: {
69
+ delay: 1000,
70
+ maxStack: 100,
71
+ userOnly: true
72
+ }
73
+ };
74
+ function getFormArray(size) {
75
+ const arr = [];
76
+ for (let i = 0; i < size; i++) {
77
+ arr.push(new FormControl(''));
78
+ }
79
+ return new FormArray(arr);
80
+ }
81
+ export class NxtInput {
82
+ elementRef;
83
+ changeService;
84
+ dataService;
85
+ // SKS30JAN25
86
+ label = ''; // Input label
87
+ labelFont = ''; // Input label font
88
+ labelWeight = ''; // Input label Weight
89
+ inputWeight = ''; // Input Weight
90
+ labelSize = ''; // Input label Size
91
+ inputValueSize = ''; //Input value Size
92
+ labelColor = ''; // Input label Color
93
+ showLabel = ''; // Input label Color
94
+ svgHeight = ''; // Input svg height
95
+ svgWidth = ''; // Input svg weight
96
+ type = 'text'; // Input type (text, email, password)
97
+ inputIconRightSrc = ''; // Path to SVG icon
98
+ inputIconLeftSrc = '';
99
+ required = false; // Required validation
100
+ minLength; // Min length validation
101
+ pattern; // Pattern validation (e.g., email regex)
102
+ errorMessages = {}; // Custom error messages
103
+ maxLength = 0; // Maximum length validation
104
+ placeholder = '';
105
+ inputBgColor = ''; // Use this input to set a custom background color for the input.
106
+ inputBorder = ''; // Use this input to set a custom border style for the input.
107
+ placeholderColor = ''; // Use this input to set a custom text color for the input.
108
+ placeholderFont = ''; // Use this input to set a custom placeholder font
109
+ placeholderWeight = ''; // Use this input to set a custom
110
+ placeholderSize = ''; // Use this input to set a custom size
111
+ inputTextColor = ''; // Use this input to set a custom text color for the input value.
112
+ inputHeight = ''; // Use this input to set a custom height for the input.
113
+ inputWidth = ''; // Use this input to set a custom width for the Input.
114
+ inputId = 'default'; // Use this input to set a custom ID for the input. Default is 'default'.
115
+ inputBorderSize = '0px'; // Use this input to set the border size of the input. Default is '0px' for no border.
116
+ inputConfig = ''; // Use this input to pass configuration settings for the input (e.g., styles, actions).
117
+ confPassVal = ''; // Password value to check if the current field matches the confirmed password
118
+ confPass = false; // Set to true to enable password confirmation validation
119
+ mode = 'edit'; // New mode input
120
+ value; // input value
121
+ question = {};
122
+ showSuggestion = false; // showSuggestion the input
123
+ ariaOwns;
124
+ ariaHasPopup;
125
+ isLoading = false; // Set to true to show a loading animation
126
+ options = []; // For radio buttons
127
+ minDate; // For date/datetime picker
128
+ maxDate; // For date/datetime picker
129
+ rows = 3; // For textarea
130
+ rawInputVal;
131
+ set size(size) {
132
+ this.inputs = getFormArray(size);
133
+ this.#size = size;
134
+ }
135
+ valueChange = new EventEmitter(); // Emits input value changes
136
+ inputValue = new EventEmitter();
137
+ onBlur = new EventEmitter();
138
+ onFocus = new EventEmitter();
139
+ toggleEmit = new EventEmitter();
140
+ clearInputEmit = new EventEmitter();
141
+ nativeInputRef = new EventEmitter();
142
+ inputEls;
143
+ // Date/Time picker references
144
+ dateTimePicker;
145
+ datePicker;
146
+ timePicker;
147
+ inputRef;
148
+ #size = 4;
149
+ #scheduledFocus = null;
150
+ inputs = getFormArray(this.#size);
151
+ control = new FormControl('');
152
+ isPasswordVisible = false;
153
+ countryCode = '';
154
+ // SKS28FEB25 countries list
155
+ countries = [
156
+ {
157
+ "name": "Afghanistan",
158
+ "flag": "🇦🇫",
159
+ "code": "AF",
160
+ "dial_code": "+93",
161
+ "regex": "^\\+93[0-9]{9}$",
162
+ "placeholder": "+93 70 123 4567"
163
+ },
164
+ {
165
+ "name": "Åland Islands",
166
+ "flag": "🇦🇽",
167
+ "code": "AX",
168
+ "dial_code": "+358",
169
+ "regex": "^\\+358[0-9]{6,12}$",
170
+ "placeholder": "+358 18 123 45"
171
+ },
172
+ {
173
+ "name": "Albania",
174
+ "flag": "🇦🇱",
175
+ "code": "AL",
176
+ "dial_code": "+355",
177
+ "regex": "^\\+355[0-9]{9}$",
178
+ "placeholder": "+355 69 123 4567"
179
+ },
180
+ {
181
+ "name": "Algeria",
182
+ "flag": "🇩🇿",
183
+ "code": "DZ",
184
+ "dial_code": "+213",
185
+ "regex": "^\\+213[0-9]{9}$",
186
+ "placeholder": "+213 551 234 567"
187
+ },
188
+ {
189
+ "name": "American Samoa",
190
+ "flag": "🇦🇸",
191
+ "code": "AS",
192
+ "dial_code": "+1684",
193
+ "regex": "^\\+1684[0-9]{7}$",
194
+ "placeholder": "+1684 123 4567"
195
+ },
196
+ {
197
+ "name": "Andorra",
198
+ "flag": "🇦🇩",
199
+ "code": "AD",
200
+ "dial_code": "+376",
201
+ "regex": "^\\+376[0-9]{6}$",
202
+ "placeholder": "+376 123 456"
203
+ },
204
+ {
205
+ "name": "Angola",
206
+ "flag": "🇦🇴",
207
+ "code": "AO",
208
+ "dial_code": "+244",
209
+ "regex": "^\\+244[0-9]{9}$",
210
+ "placeholder": "+244 923 123 456"
211
+ },
212
+ {
213
+ "name": "Anguilla",
214
+ "flag": "🇦🇮",
215
+ "code": "AI",
216
+ "dial_code": "+1264",
217
+ "regex": "^\\+1264[0-9]{7}$",
218
+ "placeholder": "+1264 235 1234"
219
+ },
220
+ {
221
+ "name": "Antarctica",
222
+ "flag": "🇦🇶",
223
+ "code": "AQ",
224
+ "dial_code": "+672",
225
+ "regex": "^\\+672[0-9]{6,12}$",
226
+ "placeholder": "+672 123 456"
227
+ },
228
+ {
229
+ "name": "Antigua and Barbuda",
230
+ "flag": "🇦🇬",
231
+ "code": "AG",
232
+ "dial_code": "+1268",
233
+ "regex": "^\\+1268[0-9]{7}$",
234
+ "placeholder": "+1268 234 5678"
235
+ },
236
+ {
237
+ "name": "Argentina",
238
+ "flag": "🇦🇷",
239
+ "code": "AR",
240
+ "dial_code": "+54",
241
+ "regex": "^\\+54[0-9]{10,11}$",
242
+ "placeholder": "+54 9 11 1234 5678"
243
+ },
244
+ {
245
+ "name": "Armenia",
246
+ "flag": "🇦🇲",
247
+ "code": "AM",
248
+ "dial_code": "+374",
249
+ "regex": "^\\+374[0-9]{8}$",
250
+ "placeholder": "+374 94 123 456"
251
+ },
252
+ {
253
+ "name": "Aruba",
254
+ "flag": "🇦🇼",
255
+ "code": "AW",
256
+ "dial_code": "+297",
257
+ "regex": "^\\+297[0-9]{7}$",
258
+ "placeholder": "+297 560 1234"
259
+ },
260
+ {
261
+ "name": "Australia",
262
+ "flag": "🇦🇺",
263
+ "code": "AU",
264
+ "dial_code": "+61",
265
+ "regex": "^\\+61[0-9]{9}$",
266
+ "placeholder": "+61 4 1234 5678"
267
+ },
268
+ {
269
+ "name": "Austria",
270
+ "flag": "🇦🇹",
271
+ "code": "AT",
272
+ "dial_code": "+43",
273
+ "regex": "^\\+43[0-9]{10,12}$",
274
+ "placeholder": "+43 664 123 4567"
275
+ },
276
+ {
277
+ "name": "Azerbaijan",
278
+ "flag": "🇦🇿",
279
+ "code": "AZ",
280
+ "dial_code": "+994",
281
+ "regex": "^\\+994[0-9]{9}$",
282
+ "placeholder": "+994 50 123 45 67"
283
+ },
284
+ {
285
+ "name": "Bahamas",
286
+ "flag": "🇧🇸",
287
+ "code": "BS",
288
+ "dial_code": "+1242",
289
+ "regex": "^\\+1242[0-9]{7}$",
290
+ "placeholder": "+1242 323 1234"
291
+ },
292
+ {
293
+ "name": "Bahrain",
294
+ "flag": "🇧🇭",
295
+ "code": "BH",
296
+ "dial_code": "+973",
297
+ "regex": "^\\+973[0-9]{8}$",
298
+ "placeholder": "+973 3123 4567"
299
+ },
300
+ {
301
+ "name": "Bangladesh",
302
+ "flag": "🇧🇩",
303
+ "code": "BD",
304
+ "dial_code": "+880",
305
+ "regex": "^\\+880[0-9]{10}$",
306
+ "placeholder": "+880 1712 345678"
307
+ },
308
+ {
309
+ "name": "Barbados",
310
+ "flag": "🇧🇧",
311
+ "code": "BB",
312
+ "dial_code": "+1246",
313
+ "regex": "^\\+1246[0-9]{7}$",
314
+ "placeholder": "+1246 250 1234"
315
+ },
316
+ {
317
+ "name": "Belarus",
318
+ "flag": "🇧🇾",
319
+ "code": "BY",
320
+ "dial_code": "+375",
321
+ "regex": "^\\+375[0-9]{9}$",
322
+ "placeholder": "+375 29 123 45 67"
323
+ },
324
+ {
325
+ "name": "Belgium",
326
+ "flag": "🇧🇪",
327
+ "code": "BE",
328
+ "dial_code": "+32",
329
+ "regex": "^\\+32[0-9]{9}$",
330
+ "placeholder": "+32 470 12 34 56"
331
+ },
332
+ {
333
+ "name": "Belize",
334
+ "flag": "🇧🇿",
335
+ "code": "BZ",
336
+ "dial_code": "+501",
337
+ "regex": "^\\+501[0-9]{7}$",
338
+ "placeholder": "+501 610 1234"
339
+ },
340
+ {
341
+ "name": "Benin",
342
+ "flag": "🇧🇯",
343
+ "code": "BJ",
344
+ "dial_code": "+229",
345
+ "regex": "^\\+229[0-9]{8}$",
346
+ "placeholder": "+229 90 12 3456"
347
+ },
348
+ {
349
+ "name": "Bermuda",
350
+ "flag": "🇧🇲",
351
+ "code": "BM",
352
+ "dial_code": "+1441",
353
+ "regex": "^\\+1441[0-9]{7}$",
354
+ "placeholder": "+1441 370 1234"
355
+ },
356
+ {
357
+ "name": "Bhutan",
358
+ "flag": "🇧🇹",
359
+ "code": "BT",
360
+ "dial_code": "+975",
361
+ "regex": "^\\+975[0-9]{7,8}$",
362
+ "placeholder": "+975 17 123 456"
363
+ },
364
+ {
365
+ "name": "Bolivia, Plurinational State of bolivia",
366
+ "flag": "🇧🇴",
367
+ "code": "BO",
368
+ "dial_code": "+591",
369
+ "regex": "^\\+591[1-9]\\d{7}$",
370
+ "placeholder": "+591 12345678",
371
+ "example": "+591 70123456"
372
+ },
373
+ {
374
+ "name": "Bosnia and Herzegovina",
375
+ "flag": "🇧🇦",
376
+ "code": "BA",
377
+ "dial_code": "+387",
378
+ "regex": "^\\+387[0-9]{8,9}$",
379
+ "placeholder": "+387 61 123 456"
380
+ },
381
+ {
382
+ "name": "Botswana",
383
+ "flag": "🇧🇼",
384
+ "code": "BW",
385
+ "dial_code": "+267",
386
+ "regex": "^\\+267[0-9]{8}$",
387
+ "placeholder": "+267 71 123 456"
388
+ },
389
+ {
390
+ "name": "Bouvet Island",
391
+ "code": "BV",
392
+ "dial_code": "+47",
393
+ "regex": "^\\+47\\d{8}$",
394
+ "placeholder": "+47 XXXXXXXX",
395
+ "format": "+47 XX XX XX XX",
396
+ "flag": "🇧🇻"
397
+ },
398
+ {
399
+ "name": "Brazil",
400
+ "flag": "🇧🇷",
401
+ "code": "BR",
402
+ "dial_code": "+55",
403
+ "regex": "^\\+55[0-9]{10,11}$",
404
+ "placeholder": "+55 11 91234 5678"
405
+ },
406
+ {
407
+ "name": "British Indian Ocean Territory",
408
+ "flag": "🇮🇴",
409
+ "code": "IO",
410
+ "dial_code": "+246",
411
+ "regex": "^\\+246[0-9]{7}$",
412
+ "placeholder": "+246 380 1234"
413
+ },
414
+ {
415
+ "name": "Brunei Darussalam",
416
+ "flag": "🇧🇳",
417
+ "code": "BN",
418
+ "dial_code": "+673",
419
+ "regex": "^\\+673[0-9]{7}$",
420
+ "placeholder": "+673 712 3456"
421
+ },
422
+ {
423
+ "name": "Bulgaria",
424
+ "flag": "🇧🇬",
425
+ "code": "BG",
426
+ "dial_code": "+359",
427
+ "regex": "^\\+359[0-9]{9}$",
428
+ "placeholder": "+359 87 123 4567"
429
+ },
430
+ {
431
+ "name": "Burkina Faso",
432
+ "flag": "🇧🇫",
433
+ "code": "BF",
434
+ "dial_code": "+226",
435
+ "regex": "^\\+226[0-9]{8}$",
436
+ "placeholder": "+226 70 12 3456"
437
+ },
438
+ {
439
+ "name": "Burundi",
440
+ "flag": "🇧🇮",
441
+ "code": "BI",
442
+ "dial_code": "+257",
443
+ "regex": "^\\+257[0-9]{8}$",
444
+ "placeholder": "+257 79 12 3456"
445
+ },
446
+ {
447
+ "name": "Cambodia",
448
+ "flag": "🇰🇭",
449
+ "code": "KH",
450
+ "dial_code": "+855",
451
+ "regex": "^\\+855[0-9]{8,9}$",
452
+ "placeholder": "+855 91 234 567"
453
+ },
454
+ {
455
+ "name": "Cameroon",
456
+ "flag": "🇨🇲",
457
+ "code": "CM",
458
+ "dial_code": "+237",
459
+ "regex": "^\\+237[0-9]{8}$",
460
+ "placeholder": "+237 6 71 23 45 67"
461
+ },
462
+ {
463
+ "name": "Canada",
464
+ "flag": "🇨🇦",
465
+ "code": "CA",
466
+ "dial_code": "+1",
467
+ "regex": "^\\+1[0-9]{10}$",
468
+ "placeholder": "+1 204 123 4567"
469
+ },
470
+ {
471
+ "name": "Cape Verde",
472
+ "flag": "🇨🇻",
473
+ "code": "CV",
474
+ "dial_code": "+238",
475
+ "regex": "^\\+238[0-9]{7}$",
476
+ "placeholder": "+238 991 2345"
477
+ },
478
+ {
479
+ "name": "Cayman Islands",
480
+ "flag": "🇰🇾",
481
+ "code": "KY",
482
+ "dial_code": "+345",
483
+ "regex": "^\\+345[0-9]{7}$",
484
+ "placeholder": "+345 321 1234"
485
+ },
486
+ {
487
+ "name": "Central African Republic",
488
+ "flag": "🇨🇫",
489
+ "code": "CF",
490
+ "dial_code": "+236",
491
+ "regex": "^\\+236[0-9]{8}$",
492
+ "placeholder": "+236 72 12 3456"
493
+ },
494
+ {
495
+ "name": "Chad",
496
+ "flag": "🇹🇩",
497
+ "code": "TD",
498
+ "dial_code": "+235",
499
+ "regex": "^\\+235[0-9]{8}$",
500
+ "placeholder": "+235 63 12 3456"
501
+ },
502
+ {
503
+ "name": "Chile",
504
+ "flag": "🇨🇱",
505
+ "code": "CL",
506
+ "dial_code": "+56",
507
+ "regex": "^\\+56[0-9]{9}$",
508
+ "placeholder": "+56 9 1234 5678"
509
+ },
510
+ {
511
+ "name": "China",
512
+ "flag": "🇨🇳",
513
+ "code": "CN",
514
+ "dial_code": "+86",
515
+ "regex": "^\\+86[0-9]{11}$",
516
+ "placeholder": "+86 131 2345 6789"
517
+ },
518
+ {
519
+ "name": "Christmas Island",
520
+ "flag": "🇨🇽",
521
+ "code": "CX",
522
+ "dial_code": "+61",
523
+ "regex": "^\\+61[0-9]{9}$",
524
+ "placeholder": "+61 4 1234 5678"
525
+ },
526
+ {
527
+ "name": "Cocos (Keeling) Islands",
528
+ "flag": "🇨🇨",
529
+ "code": "CC",
530
+ "dial_code": "+61",
531
+ "regex": "^\\+61[0-9]{9}$",
532
+ "placeholder": "+61 4 1234 5678"
533
+ },
534
+ {
535
+ "name": "Colombia",
536
+ "flag": "🇨🇴",
537
+ "code": "CO",
538
+ "dial_code": "+57",
539
+ "regex": "^\\+57[0-9]{10}$",
540
+ "placeholder": "+57 312 345 6789"
541
+ },
542
+ {
543
+ "name": "Comoros",
544
+ "flag": "🇰🇲",
545
+ "code": "KM",
546
+ "dial_code": "+269",
547
+ "regex": "^\\+269[0-9]{7}$",
548
+ "placeholder": "+269 321 2345"
549
+ },
550
+ {
551
+ "name": "Congo",
552
+ "flag": "🇨🇬",
553
+ "code": "CG",
554
+ "dial_code": "+242",
555
+ "regex": "^\\+242[0-9]{9}$",
556
+ "placeholder": "+242 06 123 4567"
557
+ },
558
+ {
559
+ "name": "Congo, The Democratic Republic of the Congo",
560
+ "flag": "🇨🇩",
561
+ "code": "CD",
562
+ "dial_code": "+243",
563
+ "regex": "^\\+243[89]\\d{8}$",
564
+ "placeholder": "+243 9XXXXXXXX",
565
+ "example": "+243 991234567"
566
+ },
567
+ {
568
+ "name": "Cook Islands",
569
+ "flag": "🇨🇰",
570
+ "code": "CK",
571
+ "dial_code": "+682",
572
+ "regex": "^\\+682[0-9]{5}$",
573
+ "placeholder": "+682 71 234"
574
+ },
575
+ {
576
+ "name": "Costa Rica",
577
+ "flag": "🇨🇷",
578
+ "code": "CR",
579
+ "dial_code": "+506",
580
+ "regex": "^\\+506[0-9]{8}$",
581
+ "placeholder": "+506 8123 4567"
582
+ },
583
+ {
584
+ "name": "Cote d'Ivoire",
585
+ "flag": "🇨🇮",
586
+ "code": "CI",
587
+ "dial_code": "+225",
588
+ "regex": "^\\+225[0-9]{8}$",
589
+ "placeholder": "+225 01 23 45 67"
590
+ },
591
+ {
592
+ "name": "Croatia",
593
+ "flag": "🇭🇷",
594
+ "code": "HR",
595
+ "dial_code": "+385",
596
+ "regex": "^\\+385[0-9]{8,9}$",
597
+ "placeholder": "+385 98 123 456"
598
+ },
599
+ {
600
+ "name": "Cuba",
601
+ "flag": "🇨🇺",
602
+ "code": "CU",
603
+ "dial_code": "+53",
604
+ "regex": "^\\+53[0-9]{8}$",
605
+ "placeholder": "+53 5 1234 5678"
606
+ },
607
+ {
608
+ "name": "Cyprus",
609
+ "flag": "🇨🇾",
610
+ "code": "CY",
611
+ "dial_code": "+357",
612
+ "regex": "^\\+357[0-9]{8}$",
613
+ "placeholder": "+357 96 123 456"
614
+ },
615
+ {
616
+ "name": "Czech Republic",
617
+ "flag": "🇨🇿",
618
+ "code": "CZ",
619
+ "dial_code": "+420",
620
+ "regex": "^\\+420[0-9]{9}$",
621
+ "placeholder": "+420 601 123 456"
622
+ },
623
+ {
624
+ "name": "Denmark",
625
+ "flag": "🇩🇰",
626
+ "code": "DK",
627
+ "dial_code": "+45",
628
+ "regex": "^\\+45[0-9]{8}$",
629
+ "placeholder": "+45 20 12 34 56"
630
+ },
631
+ {
632
+ "name": "Djibouti",
633
+ "flag": "🇩🇯",
634
+ "code": "DJ",
635
+ "dial_code": "+253",
636
+ "regex": "^\\+253[0-9]{8}$",
637
+ "placeholder": "+253 77 12 34 56"
638
+ },
639
+ {
640
+ "name": "Dominica",
641
+ "flag": "🇩🇲",
642
+ "code": "DM",
643
+ "dial_code": "+1767",
644
+ "regex": "^\\+1767[0-9]{7}$",
645
+ "placeholder": "+1767 235 1234"
646
+ },
647
+ {
648
+ "name": "Dominican Republic",
649
+ "flag": "🇩🇴",
650
+ "code": "DO",
651
+ "dial_code": "+1849",
652
+ "regex": "^\\+1849[0-9]{7}$",
653
+ "placeholder": "+1849 234 5678"
654
+ },
655
+ {
656
+ "name": "Ecuador",
657
+ "flag": "🇪🇨",
658
+ "code": "EC",
659
+ "dial_code": "+593",
660
+ "regex": "^\\+593[0-9]{9}$",
661
+ "placeholder": "+593 99 123 4567"
662
+ },
663
+ {
664
+ "name": "Egypt",
665
+ "flag": "🇪🇬",
666
+ "code": "EG",
667
+ "dial_code": "+20",
668
+ "regex": "^\\+20[0-9]{10}$",
669
+ "placeholder": "+20 100 123 4567"
670
+ },
671
+ {
672
+ "name": "El Salvador",
673
+ "flag": "🇸🇻",
674
+ "code": "SV",
675
+ "dial_code": "+503",
676
+ "regex": "^\\+503[0-9]{8}$",
677
+ "placeholder": "+503 7123 4567"
678
+ },
679
+ {
680
+ "name": "Equatorial Guinea",
681
+ "flag": "🇬🇶",
682
+ "code": "GQ",
683
+ "dial_code": "+240",
684
+ "regex": "^\\+240[0-9]{9}$",
685
+ "placeholder": "+240 222 123 456"
686
+ },
687
+ {
688
+ "name": "Eritrea",
689
+ "flag": "🇪🇷",
690
+ "code": "ER",
691
+ "dial_code": "+291",
692
+ "regex": "^\\+291[0-9]{7}$",
693
+ "placeholder": "+291 7 123 456"
694
+ },
695
+ {
696
+ "name": "Estonia",
697
+ "flag": "🇪🇪",
698
+ "code": "EE",
699
+ "dial_code": "+372",
700
+ "regex": "^\\+372[0-9]{7,8}$",
701
+ "placeholder": "+372 5123 456"
702
+ },
703
+ {
704
+ "name": "Ethiopia",
705
+ "flag": "🇪🇹",
706
+ "code": "ET",
707
+ "dial_code": "+251",
708
+ "regex": "^\\+251[0-9]{9}$",
709
+ "placeholder": "+251 91 123 4567"
710
+ },
711
+ {
712
+ "name": "Falkland Islands (Malvinas)",
713
+ "flag": "🇫🇰",
714
+ "code": "FK",
715
+ "dial_code": "+500",
716
+ "regex": "^\\+500\\d{5}$",
717
+ "placeholder": "+500 XXXXX",
718
+ "example": "+500 12345"
719
+ },
720
+ {
721
+ "name": "Faroe Islands",
722
+ "flag": "🇫🇴",
723
+ "code": "FO",
724
+ "dial_code": "+298",
725
+ "regex": "^\\+298[0-9]{6}$",
726
+ "placeholder": "+298 123 456"
727
+ },
728
+ {
729
+ "name": "Fiji",
730
+ "flag": "🇫🇯",
731
+ "code": "FJ",
732
+ "dial_code": "+679",
733
+ "regex": "^\\+679[0-9]{7,8}$",
734
+ "placeholder": "+679 701 2345"
735
+ },
736
+ {
737
+ "name": "Finland",
738
+ "flag": "🇫🇮",
739
+ "code": "FI",
740
+ "dial_code": "+358",
741
+ "regex": "^\\+358[0-9]{6,12}$",
742
+ "placeholder": "+358 40 123 4567"
743
+ },
744
+ {
745
+ "name": "France",
746
+ "flag": "🇫🇷",
747
+ "code": "FR",
748
+ "dial_code": "+33",
749
+ "regex": "^\\+33[0-9]{9}$",
750
+ "placeholder": "+33 6 12 34 56 78"
751
+ },
752
+ {
753
+ "name": "French Guiana",
754
+ "flag": "🇬🇫",
755
+ "code": "GF",
756
+ "dial_code": "+594",
757
+ "regex": "^\\+594[0-9]{9}$",
758
+ "placeholder": "+594 694 12 34 56"
759
+ },
760
+ {
761
+ "name": "French Polynesia",
762
+ "flag": "🇵🇫",
763
+ "code": "PF",
764
+ "dial_code": "+689",
765
+ "regex": "^\\+689[0-9]{8}$",
766
+ "placeholder": "+689 87 12 34 56"
767
+ },
768
+ {
769
+ "name": "French Southern Territories",
770
+ "flag": "🇹🇫",
771
+ "code": "TF",
772
+ "dial_code": "+262",
773
+ "regex": "^\\+262[0-9]{9}$",
774
+ "placeholder": "+262 639 12 34 56"
775
+ },
776
+ {
777
+ "name": "Gabon",
778
+ "flag": "🇬🇦",
779
+ "code": "GA",
780
+ "dial_code": "+241",
781
+ "regex": "^\\+241[0-9]{8}$",
782
+ "placeholder": "+241 06 12 34 56"
783
+ },
784
+ {
785
+ "name": "Gambia",
786
+ "flag": "🇬🇲",
787
+ "code": "GM",
788
+ "dial_code": "+220",
789
+ "regex": "^\\+220[0-9]{7}$",
790
+ "placeholder": "+220 301 2345"
791
+ },
792
+ {
793
+ "name": "Georgia",
794
+ "flag": "🇬🇪",
795
+ "code": "GE",
796
+ "dial_code": "+995",
797
+ "regex": "^\\+995[0-9]{9}$",
798
+ "placeholder": "+995 555 12 34 56"
799
+ },
800
+ {
801
+ "name": "Germany",
802
+ "flag": "🇩🇪",
803
+ "code": "DE",
804
+ "dial_code": "+49",
805
+ "regex": "^\\+49[0-9]{10,11}$",
806
+ "placeholder": "+49 151 1234 5678"
807
+ },
808
+ {
809
+ "name": "Ghana",
810
+ "flag": "🇬🇭",
811
+ "code": "GH",
812
+ "dial_code": "+233",
813
+ "regex": "^\\+233[0-9]{9}$",
814
+ "placeholder": "+233 24 123 4567"
815
+ },
816
+ {
817
+ "name": "Gibraltar",
818
+ "flag": "🇬🇮",
819
+ "code": "GI",
820
+ "dial_code": "+350",
821
+ "regex": "^\\+350[0-9]{8}$",
822
+ "placeholder": "+350 57123456"
823
+ },
824
+ {
825
+ "name": "Greece",
826
+ "flag": "🇬🇷",
827
+ "code": "GR",
828
+ "dial_code": "+30",
829
+ "regex": "^\\+30[0-9]{10}$",
830
+ "placeholder": "+30 691 234 5678"
831
+ },
832
+ {
833
+ "name": "Greenland",
834
+ "flag": "🇬🇱",
835
+ "code": "GL",
836
+ "dial_code": "+299",
837
+ "regex": "^\\+299[0-9]{6}$",
838
+ "placeholder": "+299 22 12 34"
839
+ },
840
+ {
841
+ "name": "Grenada",
842
+ "flag": "🇬🇩",
843
+ "code": "GD",
844
+ "dial_code": "+1473",
845
+ "regex": "^\\+1473[0-9]{7}$",
846
+ "placeholder": "+1473 403 1234"
847
+ },
848
+ {
849
+ "name": "Guadeloupe",
850
+ "code": "GP",
851
+ "dial_code": "+590",
852
+ "regex": "^\\+590[67]\\d{8}$",
853
+ "placeholder": "+590 6XXXXXXXX",
854
+ "format": "+590 XXX XX XX XX",
855
+ "flag": "🇬🇵"
856
+ },
857
+ {
858
+ "name": "Guam",
859
+ "code": "GU",
860
+ "dial_code": "+1671",
861
+ "regex": "^\\+1671\\d{7}$",
862
+ "placeholder": "+1671 XXXXXXX",
863
+ "format": "+1671 XXX XXXX",
864
+ "flag": "🇬🇺"
865
+ },
866
+ {
867
+ "name": "Guatemala",
868
+ "code": "GT",
869
+ "dial_code": "+502",
870
+ "regex": "^\\+502[2-9]\\d{7}$",
871
+ "placeholder": "+502 8XXXXXXX",
872
+ "format": "+502 XXXX XXXX",
873
+ "flag": "🇬🇹"
874
+ },
875
+ {
876
+ "name": "Guernsey",
877
+ "code": "GG",
878
+ "dial_code": "+44",
879
+ "regex": "^\\+44[1487]\\d{9}$",
880
+ "placeholder": "+44 1481 XXXXXX",
881
+ "format": "+44 1481 XXXXXX",
882
+ "flag": "🇬🇬"
883
+ },
884
+ {
885
+ "name": "Guinea",
886
+ "code": "GN",
887
+ "dial_code": "+224",
888
+ "regex": "^\\+224\\d{9}$",
889
+ "placeholder": "+224 XXXXXXXXX",
890
+ "format": "+224 XXX XXX XXX",
891
+ "flag": "🇬🇳"
892
+ },
893
+ {
894
+ "name": "Guinea-Bissau",
895
+ "code": "GW",
896
+ "dial_code": "+245",
897
+ "regex": "^\\+245\\d{7}$",
898
+ "placeholder": "+245 XXXXXXX",
899
+ "format": "+245 XXX XXXX",
900
+ "flag": "🇬🇼"
901
+ },
902
+ {
903
+ "name": "Guyana",
904
+ "code": "GY",
905
+ "dial_code": "+592",
906
+ "regex": "^\\+592[2-9]\\d{6}$",
907
+ "placeholder": "+592 6XXXXXX",
908
+ "format": "+592 XXX XXXX",
909
+ "flag": "🇬🇾"
910
+ },
911
+ {
912
+ "name": "Haiti",
913
+ "code": "HT",
914
+ "dial_code": "+509",
915
+ "regex": "^\\+509[2-9]\\d{7}$",
916
+ "placeholder": "+509 2XXXXXXX",
917
+ "format": "+509 XXXX XXXX",
918
+ "flag": "🇭🇹"
919
+ },
920
+ {
921
+ "name": "Heard Island and Mcdonald Islands",
922
+ "flag": "🇭🇲",
923
+ "code": "HM",
924
+ "dial_code": "+672",
925
+ "regex": "^\\+672\\d{6}$",
926
+ "placeholder": "+672 XXXXXX",
927
+ "example": "+672 123456"
928
+ },
929
+ {
930
+ "name": "Holy See (Vatican City State)",
931
+ "flag": "🇻🇦",
932
+ "code": "VA",
933
+ "dial_code": "+379",
934
+ "regex": "^\\+379\\d{10}$",
935
+ "placeholder": "+379 XXXXXXXXXX",
936
+ "example": "+379 0612345678"
937
+ },
938
+ {
939
+ "name": "Honduras",
940
+ "code": "HN",
941
+ "dial_code": "+504",
942
+ "regex": "^\\+504[2-9]\\d{7}$",
943
+ "placeholder": "+504 9XXXXXXX",
944
+ "format": "+504 XXXX XXXX",
945
+ "flag": "🇭🇳"
946
+ },
947
+ {
948
+ "name": "Hong Kong",
949
+ "code": "HK",
950
+ "dial_code": "+852",
951
+ "regex": "^\\+852[2-9]\\d{7}$",
952
+ "placeholder": "+852 5XXXXXXX",
953
+ "format": "+852 XXXX XXXX",
954
+ "flag": "🇭🇰"
955
+ },
956
+ {
957
+ "name": "Hungary",
958
+ "code": "HU",
959
+ "dial_code": "+36",
960
+ "regex": "^\\+36[1-9]\\d{7,8}$",
961
+ "placeholder": "+36 30XXXXXXX",
962
+ "format": "+36 XX XXX XXXX",
963
+ "flag": "🇭🇺"
964
+ },
965
+ {
966
+ "name": "Iceland",
967
+ "code": "IS",
968
+ "dial_code": "+354",
969
+ "regex": "^\\+354\\d{7}$",
970
+ "placeholder": "+354 XXXXXXX",
971
+ "format": "+354 XXX XXXX",
972
+ "flag": "🇮🇸"
973
+ },
974
+ {
975
+ "name": "India",
976
+ "code": "IN",
977
+ "dial_code": "+91",
978
+ "regex": "^\\+91[6789]\\d{9}$",
979
+ "placeholder": "+91 9XXXXXXXXX",
980
+ "format": "+91 XXXXX XXXXX",
981
+ "flag": "🇮🇳"
982
+ },
983
+ {
984
+ "name": "Indonesia",
985
+ "code": "ID",
986
+ "dial_code": "+62",
987
+ "regex": "^\\+62[8]\\d{9,10}$",
988
+ "placeholder": "+62 8XXXXXXXXX",
989
+ "format": "+62 8XX XXXX XXXX",
990
+ "flag": "🇮🇩"
991
+ },
992
+ {
993
+ "name": "Iran, Islamic Republic of Persian Gulf",
994
+ "flag": "🇮🇷",
995
+ "code": "IR",
996
+ "dial_code": "+98",
997
+ "regex": "^\\+98[1-9]\\d{9}$",
998
+ "placeholder": "+98 9XXXXXXXXX",
999
+ "example": "+98 9123456789"
1000
+ },
1001
+ {
1002
+ "name": "Iraq",
1003
+ "code": "IQ",
1004
+ "dial_code": "+964",
1005
+ "regex": "^\\+964[7]\\d{9}$",
1006
+ "placeholder": "+964 7XXXXXXXXX",
1007
+ "format": "+964 7XX XXX XXXX",
1008
+ "flag": "🇮🇶"
1009
+ },
1010
+ {
1011
+ "name": "Ireland",
1012
+ "code": "IE",
1013
+ "dial_code": "+353",
1014
+ "regex": "^\\+353[1-9]\\d{8}$",
1015
+ "placeholder": "+353 8XXXXXXXX",
1016
+ "format": "+353 XX XXX XXXX",
1017
+ "flag": "🇮🇪"
1018
+ },
1019
+ {
1020
+ "name": "Isle of Man",
1021
+ "code": "IM",
1022
+ "dial_code": "+44",
1023
+ "regex": "^\\+44[1624]\\d{6}$",
1024
+ "placeholder": "+44 1624 XXXXXX",
1025
+ "format": "+44 1624 XXXXXX",
1026
+ "flag": "🇮🇲"
1027
+ },
1028
+ {
1029
+ "name": "Israel",
1030
+ "code": "IL",
1031
+ "dial_code": "+972",
1032
+ "regex": "^\\+972[5-9]\\d{8}$",
1033
+ "placeholder": "+972 5XXXXXXXX",
1034
+ "format": "+972 5X XXX XXXX",
1035
+ "flag": "🇮🇱"
1036
+ },
1037
+ {
1038
+ "name": "Italy",
1039
+ "code": "IT",
1040
+ "dial_code": "+39",
1041
+ "regex": "^\\+39[0-9]\\d{9}$",
1042
+ "placeholder": "+39 3XXXXXXXXX",
1043
+ "format": "+39 3XX XXX XXXX",
1044
+ "flag": "🇮🇹"
1045
+ },
1046
+ {
1047
+ "name": "Jamaica",
1048
+ "code": "JM",
1049
+ "dial_code": "+1876",
1050
+ "regex": "^\\+1876\\d{7}$",
1051
+ "placeholder": "+1876 XXXXXXX",
1052
+ "format": "+1876 XXX XXXX",
1053
+ "flag": "🇯🇲"
1054
+ },
1055
+ {
1056
+ "name": "Japan",
1057
+ "code": "JP",
1058
+ "dial_code": "+81",
1059
+ "regex": "^\\+81[0-9]\\d{9}$",
1060
+ "placeholder": "+81 9XXXXXXXXX",
1061
+ "format": "+81 XX XXXX XXXX",
1062
+ "flag": "🇯🇵"
1063
+ },
1064
+ {
1065
+ "name": "Jersey",
1066
+ "code": "JE",
1067
+ "dial_code": "+44",
1068
+ "regex": "^\\+44[1534]\\d{6}$",
1069
+ "placeholder": "+44 1534 XXXXXX",
1070
+ "format": "+44 1534 XXXXXX",
1071
+ "flag": "🇯🇪"
1072
+ },
1073
+ {
1074
+ "name": "Jordan",
1075
+ "code": "JO",
1076
+ "dial_code": "+962",
1077
+ "regex": "^\\+962[7]\\d{8}$",
1078
+ "placeholder": "+962 7XXXXXXXX",
1079
+ "format": "+962 7 XXXX XXXX",
1080
+ "flag": "🇯🇴"
1081
+ },
1082
+ {
1083
+ "name": "Kazakhstan",
1084
+ "code": "KZ",
1085
+ "dial_code": "+7",
1086
+ "regex": "^\\+7[7]\\d{9}$",
1087
+ "placeholder": "+7 7XXXXXXXXX",
1088
+ "format": "+7 7XX XXX XXXX",
1089
+ "flag": "🇰🇿"
1090
+ },
1091
+ {
1092
+ "name": "Kenya",
1093
+ "code": "KE",
1094
+ "dial_code": "+254",
1095
+ "regex": "^\\+254[7]\\d{8}$",
1096
+ "placeholder": "+254 7XXXXXXXX",
1097
+ "format": "+254 7XX XXX XXX",
1098
+ "flag": "🇰🇪"
1099
+ },
1100
+ {
1101
+ "name": "Kiribati",
1102
+ "code": "KI",
1103
+ "dial_code": "+686",
1104
+ "regex": "^\\+686\\d{5}$",
1105
+ "placeholder": "+686 XXXXX",
1106
+ "format": "+686 XXXXX",
1107
+ "flag": "🇰🇮"
1108
+ },
1109
+ {
1110
+ "name": "Korea, Democratic People's Republic of Korea",
1111
+ "flag": "🇰🇵",
1112
+ "code": "KP",
1113
+ "dial_code": "+850",
1114
+ "regex": "^\\+850\\d{7,10}$",
1115
+ "placeholder": "+850 XXXXXXXXXX",
1116
+ "example": "+850 2123456789"
1117
+ },
1118
+ {
1119
+ "name": "Korea, Republic of South Korea",
1120
+ "flag": "🇰🇷",
1121
+ "code": "KR",
1122
+ "dial_code": "+82",
1123
+ "regex": "^\\+82\\d{9,10}$",
1124
+ "placeholder": "+82 10XXXXXXXX",
1125
+ "example": "+82 1012345678"
1126
+ },
1127
+ {
1128
+ "name": "Kosovo",
1129
+ "code": "XK",
1130
+ "dial_code": "+383",
1131
+ "regex": "^\\+383[4-9]\\d{7}$",
1132
+ "placeholder": "+383 4XXXXXXX",
1133
+ "format": "+383 4X XXX XXX",
1134
+ "flag": "🇽🇰"
1135
+ },
1136
+ {
1137
+ "name": "Kuwait",
1138
+ "code": "KW",
1139
+ "dial_code": "+965",
1140
+ "regex": "^\\+965[5-9]\\d{7}$",
1141
+ "placeholder": "+965 5XXXXXXX",
1142
+ "format": "+965 5XXX XXXX",
1143
+ "flag": "🇰🇼"
1144
+ },
1145
+ {
1146
+ "name": "Kyrgyzstan",
1147
+ "code": "KG",
1148
+ "dial_code": "+996",
1149
+ "regex": "^\\+996[5-9]\\d{8}$",
1150
+ "placeholder": "+996 5XXXXXXXX",
1151
+ "format": "+996 XXX XXX XXX",
1152
+ "flag": "🇰🇬"
1153
+ },
1154
+ {
1155
+ "name": "Laos",
1156
+ "code": "LA",
1157
+ "dial_code": "+856",
1158
+ "regex": "^\\+856[2]\\d{8}$",
1159
+ "placeholder": "+856 2XXXXXXXX",
1160
+ "format": "+856 20 XXX XXX",
1161
+ "flag": "🇱🇦"
1162
+ },
1163
+ {
1164
+ "name": "Latvia",
1165
+ "code": "LV",
1166
+ "dial_code": "+371",
1167
+ "regex": "^\\+371[2]\\d{7}$",
1168
+ "placeholder": "+371 2XXXXXXX",
1169
+ "format": "+371 2XXX XXXX",
1170
+ "flag": "🇱🇻"
1171
+ },
1172
+ {
1173
+ "name": "Lebanon",
1174
+ "code": "LB",
1175
+ "dial_code": "+961",
1176
+ "regex": "^\\+961[3-9]\\d{6,7}$",
1177
+ "placeholder": "+961 3XXXXXX",
1178
+ "format": "+961 3 XXX XXX",
1179
+ "flag": "🇱🇧"
1180
+ },
1181
+ {
1182
+ "name": "Lesotho",
1183
+ "code": "LS",
1184
+ "dial_code": "+266",
1185
+ "regex": "^\\+266[2-9]\\d{7}$",
1186
+ "placeholder": "+266 5XXXXXXX",
1187
+ "format": "+266 5XXX XXXX",
1188
+ "flag": "🇱🇸"
1189
+ },
1190
+ {
1191
+ "name": "Liberia",
1192
+ "code": "LR",
1193
+ "dial_code": "+231",
1194
+ "regex": "^\\+231[4-9]\\d{7}$",
1195
+ "placeholder": "+231 4XXXXXXX",
1196
+ "format": "+231 XX XXX XXX",
1197
+ "flag": "🇱🇷"
1198
+ },
1199
+ {
1200
+ "name": "Libyan Arab Jamahiriya",
1201
+ "flag": "🇱🇾",
1202
+ "code": "LY",
1203
+ "dial_code": "+218",
1204
+ "regex": "^\\+218[89]\\d{8}$",
1205
+ "placeholder": "+218 9XXXXXXXX",
1206
+ "example": "+218 912345678"
1207
+ },
1208
+ {
1209
+ "name": "Liechtenstein",
1210
+ "code": "LI",
1211
+ "dial_code": "+423",
1212
+ "regex": "^\\+423[2-9]\\d{6}$",
1213
+ "placeholder": "+423 6XXXXXX",
1214
+ "format": "+423 XXX XXXX",
1215
+ "flag": "🇱🇮"
1216
+ },
1217
+ {
1218
+ "name": "Lithuania",
1219
+ "code": "LT",
1220
+ "dial_code": "+370",
1221
+ "regex": "^\\+370[6]\\d{7}$",
1222
+ "placeholder": "+370 6XXXXXXX",
1223
+ "format": "+370 6XX XXXXX",
1224
+ "flag": "🇱🇹"
1225
+ },
1226
+ {
1227
+ "name": "Luxembourg",
1228
+ "code": "LU",
1229
+ "dial_code": "+352",
1230
+ "regex": "^\\+352[2689]\\d{7}$",
1231
+ "placeholder": "+352 6XXXXXXX",
1232
+ "format": "+352 XXX XXX XXX",
1233
+ "flag": "🇱🇺"
1234
+ },
1235
+ {
1236
+ "name": "Macao",
1237
+ "code": "MO",
1238
+ "dial_code": "+853",
1239
+ "regex": "^\\+853[6]\\d{7}$",
1240
+ "placeholder": "+853 6XXXXXXX",
1241
+ "format": "+853 XXXX XXXX",
1242
+ "flag": "🇲🇴"
1243
+ },
1244
+ {
1245
+ "name": "Macedonia",
1246
+ "code": "MK",
1247
+ "dial_code": "+389",
1248
+ "regex": "^\\+389[27]\\d{7}$",
1249
+ "placeholder": "+389 7XXXXXXX",
1250
+ "format": "+389 XX XXX XXX",
1251
+ "flag": "🇲🇰"
1252
+ },
1253
+ {
1254
+ "name": "Madagascar",
1255
+ "code": "MG",
1256
+ "dial_code": "+261",
1257
+ "regex": "^\\+261[3]\\d{8}$",
1258
+ "placeholder": "+261 3XXXXXXXX",
1259
+ "format": "+261 3X XXX XXXX",
1260
+ "flag": "🇲🇬"
1261
+ },
1262
+ {
1263
+ "name": "Malawi",
1264
+ "code": "MW",
1265
+ "dial_code": "+265",
1266
+ "regex": "^\\+265[1-9]\\d{7}$",
1267
+ "placeholder": "+265 9XXXXXXX",
1268
+ "format": "+265 9XX XXX XXX",
1269
+ "flag": "🇲🇼"
1270
+ },
1271
+ {
1272
+ "name": "Malaysia",
1273
+ "code": "MY",
1274
+ "dial_code": "+60",
1275
+ "regex": "^\\+60[1-9]\\d{7,9}$",
1276
+ "placeholder": "+60 1XXXXXXXXX",
1277
+ "format": "+60 1X XXXX XXXX",
1278
+ "flag": "🇲🇾"
1279
+ },
1280
+ {
1281
+ "name": "Maldives",
1282
+ "code": "MV",
1283
+ "dial_code": "+960",
1284
+ "regex": "^\\+960[7-9]\\d{6}$",
1285
+ "placeholder": "+960 7XXXXXX",
1286
+ "format": "+960 XXX XXXX",
1287
+ "flag": "🇲🇻"
1288
+ },
1289
+ {
1290
+ "name": "Mali",
1291
+ "code": "ML",
1292
+ "dial_code": "+223",
1293
+ "regex": "^\\+223[6-9]\\d{7}$",
1294
+ "placeholder": "+223 7XXXXXXX",
1295
+ "format": "+223 XX XX XX XX",
1296
+ "flag": "🇲🇱"
1297
+ },
1298
+ {
1299
+ "name": "Malta",
1300
+ "code": "MT",
1301
+ "dial_code": "+356",
1302
+ "regex": "^\\+356[2379]\\d{7}$",
1303
+ "placeholder": "+356 7XXXXXXX",
1304
+ "format": "+356 XXXX XXXX",
1305
+ "flag": "🇲🇹"
1306
+ },
1307
+ {
1308
+ "name": "Marshall Islands",
1309
+ "code": "MH",
1310
+ "dial_code": "+692",
1311
+ "regex": "^\\+692[2-9]\\d{6}$",
1312
+ "placeholder": "+692 2XXXXXX",
1313
+ "format": "+692 XXX XXXX",
1314
+ "flag": "🇲🇭"
1315
+ },
1316
+ {
1317
+ "name": "Martinique",
1318
+ "code": "MQ",
1319
+ "dial_code": "+596",
1320
+ "regex": "^\\+596[6-7]\\d{8}$",
1321
+ "placeholder": "+596 6XXXXXXXX",
1322
+ "format": "+596 XXX XX XX XX",
1323
+ "flag": "🇲🇶"
1324
+ },
1325
+ {
1326
+ "name": "Mauritania",
1327
+ "code": "MR",
1328
+ "dial_code": "+222",
1329
+ "regex": "^\\+222[2-9]\\d{7}$",
1330
+ "placeholder": "+222 4XXXXXXX",
1331
+ "format": "+222 XXXX XXXX",
1332
+ "flag": "🇲🇷"
1333
+ },
1334
+ {
1335
+ "name": "Mauritius",
1336
+ "code": "MU",
1337
+ "dial_code": "+230",
1338
+ "regex": "^\\+230[2-9]\\d{6}$",
1339
+ "placeholder": "+230 5XXXXXX",
1340
+ "format": "+230 XXXX XXXX",
1341
+ "flag": "🇲🇺"
1342
+ },
1343
+ {
1344
+ "name": "Mayotte",
1345
+ "code": "YT",
1346
+ "dial_code": "+262",
1347
+ "regex": "^\\+262[2-9]\\d{7}$",
1348
+ "placeholder": "+262 6XXXXXXX",
1349
+ "format": "+262 XXX XX XX XX",
1350
+ "flag": "🇾🇹"
1351
+ },
1352
+ {
1353
+ "name": "Mexico",
1354
+ "code": "MX",
1355
+ "dial_code": "+52",
1356
+ "regex": "^\\+52[1]\\d{10}$",
1357
+ "placeholder": "+52 1XXXXXXXXXX",
1358
+ "format": "+52 1 XXX XXX XXXX",
1359
+ "flag": "🇲🇽"
1360
+ },
1361
+ {
1362
+ "name": "Micronesia, Federated States of Micronesia",
1363
+ "flag": "🇫🇲",
1364
+ "code": "FM",
1365
+ "dial_code": "+691",
1366
+ "regex": "^\\+691[1-9]\\d{6}$",
1367
+ "placeholder": "+691 XXXXXXX",
1368
+ "example": "+691 3201234"
1369
+ },
1370
+ {
1371
+ "name": "Moldova",
1372
+ "code": "MD",
1373
+ "dial_code": "+373",
1374
+ "regex": "^\\+373[67]\\d{7}$",
1375
+ "placeholder": "+373 6XXXXXXX",
1376
+ "format": "+373 XX XXX XXX",
1377
+ "flag": "🇲🇩"
1378
+ },
1379
+ {
1380
+ "name": "Monaco",
1381
+ "code": "MC",
1382
+ "dial_code": "+377",
1383
+ "regex": "^\\+377[4-9]\\d{7,8}$",
1384
+ "placeholder": "+377 6XXXXXXXX",
1385
+ "format": "+377 6 XX XX XX XX",
1386
+ "flag": "🇲🇨"
1387
+ },
1388
+ {
1389
+ "name": "Mongolia",
1390
+ "code": "MN",
1391
+ "dial_code": "+976",
1392
+ "regex": "^\\+976[5-9]\\d{7}$",
1393
+ "placeholder": "+976 8XXXXXXX",
1394
+ "format": "+976 XX XX XXXX",
1395
+ "flag": "🇲🇳"
1396
+ },
1397
+ {
1398
+ "name": "Montenegro",
1399
+ "code": "ME",
1400
+ "dial_code": "+382",
1401
+ "regex": "^\\+382[2-9]\\d{7,8}$",
1402
+ "placeholder": "+382 6XXXXXXXX",
1403
+ "format": "+382 6X XXX XXX",
1404
+ "flag": "🇲🇪"
1405
+ },
1406
+ {
1407
+ "name": "Montserrat",
1408
+ "code": "MS",
1409
+ "dial_code": "+1664",
1410
+ "regex": "^\\+1664\\d{7}$",
1411
+ "placeholder": "+1664 XXXXXXX",
1412
+ "format": "+1664 XXX XXXX",
1413
+ "flag": "🇲🇸"
1414
+ },
1415
+ {
1416
+ "name": "Morocco",
1417
+ "code": "MA",
1418
+ "dial_code": "+212",
1419
+ "regex": "^\\+212[5-9]\\d{8}$",
1420
+ "placeholder": "+212 6XXXXXXXX",
1421
+ "format": "+212 6XX XXX XXX",
1422
+ "flag": "🇲🇦"
1423
+ },
1424
+ {
1425
+ "name": "Mozambique",
1426
+ "code": "MZ",
1427
+ "dial_code": "+258",
1428
+ "regex": "^\\+258[28]\\d{7}$",
1429
+ "placeholder": "+258 8XXXXXXX",
1430
+ "format": "+258 8X XXX XXXX",
1431
+ "flag": "🇲🇿"
1432
+ },
1433
+ {
1434
+ "name": "Myanmar",
1435
+ "code": "MM",
1436
+ "dial_code": "+95",
1437
+ "regex": "^\\+95[4-9]\\d{8}$",
1438
+ "placeholder": "+95 9XXXXXXXX",
1439
+ "format": "+95 9 XXX XXX XXX",
1440
+ "flag": "🇲🇲"
1441
+ },
1442
+ {
1443
+ "name": "Namibia",
1444
+ "code": "NA",
1445
+ "dial_code": "+264",
1446
+ "regex": "^\\+264[6-8]\\d{7,8}$",
1447
+ "placeholder": "+264 81XXXXXXX",
1448
+ "format": "+264 81 XXX XXXX",
1449
+ "flag": "🇳🇦"
1450
+ },
1451
+ {
1452
+ "name": "Nauru",
1453
+ "code": "NR",
1454
+ "dial_code": "+674",
1455
+ "regex": "^\\+674[0-9]\\d{4}$",
1456
+ "placeholder": "+674 XXXXX",
1457
+ "format": "+674 XXX XXXX",
1458
+ "flag": "🇳🇷"
1459
+ },
1460
+ {
1461
+ "name": "Nepal",
1462
+ "code": "NP",
1463
+ "dial_code": "+977",
1464
+ "regex": "^\\+977[9]\\d{9}$",
1465
+ "placeholder": "+977 9XXXXXXXXX",
1466
+ "format": "+977 98X XXX XXXX",
1467
+ "flag": "🇳🇵"
1468
+ },
1469
+ {
1470
+ "name": "Netherlands",
1471
+ "code": "NL",
1472
+ "dial_code": "+31",
1473
+ "regex": "^\\+31[1-9]\\d{8}$",
1474
+ "placeholder": "+31 6XXXXXXXX",
1475
+ "format": "+31 6 XXXX XXXX",
1476
+ "flag": "🇳🇱"
1477
+ },
1478
+ {
1479
+ "name": "Netherlands Antilles",
1480
+ "code": "AN",
1481
+ "dial_code": "+599",
1482
+ "regex": "^\\+599[9]\\d{6}$",
1483
+ "placeholder": "+599 9XXXXXX",
1484
+ "format": "+599 9XXX XXXX",
1485
+ "flag": ""
1486
+ },
1487
+ {
1488
+ "name": "New Caledonia",
1489
+ "code": "NC",
1490
+ "dial_code": "+687",
1491
+ "regex": "^\\+687\\d{6}$",
1492
+ "placeholder": "+687 XXXXXX",
1493
+ "format": "+687 XX XX XX",
1494
+ "flag": "🇳🇨"
1495
+ },
1496
+ {
1497
+ "name": "New Zealand",
1498
+ "code": "NZ",
1499
+ "dial_code": "+64",
1500
+ "regex": "^\\+64[2-9]\\d{7,9}$",
1501
+ "placeholder": "+64 21XXXXXXX",
1502
+ "format": "+64 21 XXX XXXX",
1503
+ "flag": "🇳🇿"
1504
+ },
1505
+ {
1506
+ "name": "Nicaragua",
1507
+ "code": "NI",
1508
+ "dial_code": "+505",
1509
+ "regex": "^\\+505[5-8]\\d{7}$",
1510
+ "placeholder": "+505 8XXXXXXX",
1511
+ "format": "+505 XXXX XXXX",
1512
+ "flag": "🇳🇮"
1513
+ },
1514
+ {
1515
+ "name": "Niger",
1516
+ "code": "NE",
1517
+ "dial_code": "+227",
1518
+ "regex": "^\\+227[0-9]\\d{7}$",
1519
+ "placeholder": "+227 9XXXXXXX",
1520
+ "format": "+227 XX XX XX XX",
1521
+ "flag": "🇳🇪"
1522
+ },
1523
+ {
1524
+ "name": "Nigeria",
1525
+ "code": "NG",
1526
+ "dial_code": "+234",
1527
+ "regex": "^\\+234[789]\\d{9}$",
1528
+ "placeholder": "+234 8XXXXXXXXX",
1529
+ "format": "+234 8XX XXX XXXX",
1530
+ "flag": "🇳🇬"
1531
+ },
1532
+ {
1533
+ "name": "Niue",
1534
+ "code": "NU",
1535
+ "dial_code": "+683",
1536
+ "regex": "^\\+683\\d{4}$",
1537
+ "placeholder": "+683 XXXX",
1538
+ "format": "+683 XXXX",
1539
+ "flag": "🇳🇺"
1540
+ },
1541
+ {
1542
+ "name": "Norfolk Island",
1543
+ "code": "NF",
1544
+ "dial_code": "+672",
1545
+ "regex": "^\\+672[3]\\d{5}$",
1546
+ "placeholder": "+672 3XXXXX",
1547
+ "format": "+672 3 XX XXX",
1548
+ "flag": "🇳🇫"
1549
+ },
1550
+ {
1551
+ "name": "Northern Mariana Islands",
1552
+ "code": "MP",
1553
+ "dial_code": "+1670",
1554
+ "regex": "^\\+1670\\d{7}$",
1555
+ "placeholder": "+1670 XXXXXXX",
1556
+ "format": "+1670 XXX XXXX",
1557
+ "flag": "🇲🇵"
1558
+ },
1559
+ {
1560
+ "name": "Norway",
1561
+ "code": "NO",
1562
+ "dial_code": "+47",
1563
+ "regex": "^\\+47[2-9]\\d{7}$",
1564
+ "placeholder": "+47 4XXXXXXX",
1565
+ "format": "+47 XXX XX XXX",
1566
+ "flag": "🇳🇴"
1567
+ },
1568
+ {
1569
+ "name": "Oman",
1570
+ "code": "OM",
1571
+ "dial_code": "+968",
1572
+ "regex": "^\\+968[79]\\d{7}$",
1573
+ "placeholder": "+968 9XXXXXXX",
1574
+ "format": "+968 9XXX XXXX",
1575
+ "flag": "🇴🇲"
1576
+ },
1577
+ {
1578
+ "name": "Pakistan",
1579
+ "code": "PK",
1580
+ "dial_code": "+92",
1581
+ "regex": "^\\+92[3]\\d{9}$",
1582
+ "placeholder": "+92 3XXXXXXXXX",
1583
+ "format": "+92 3XX XXX XXXX",
1584
+ "flag": "🇵🇰"
1585
+ },
1586
+ {
1587
+ "name": "Palau",
1588
+ "code": "PW",
1589
+ "dial_code": "+680",
1590
+ "regex": "^\\+680\\d{7}$",
1591
+ "placeholder": "+680 XXXXXXX",
1592
+ "format": "+680 XXX XXXX",
1593
+ "flag": "🇵🇼"
1594
+ },
1595
+ {
1596
+ "name": "Palestinian Territory, Occupied",
1597
+ "flag": "🇵🇸",
1598
+ "code": "PS",
1599
+ "dial_code": "+970",
1600
+ "regex": "^\\+970[59]\\d{8}$",
1601
+ "placeholder": "+970 5XXXXXXXX",
1602
+ "example": "+970 599123456"
1603
+ },
1604
+ {
1605
+ "name": "Panama",
1606
+ "code": "PA",
1607
+ "dial_code": "+507",
1608
+ "regex": "^\\+507[1-9]\\d{6}$",
1609
+ "placeholder": "+507 6XXXXXX",
1610
+ "format": "+507 XXXX XXXX",
1611
+ "flag": "🇵🇦"
1612
+ },
1613
+ {
1614
+ "name": "Papua New Guinea",
1615
+ "code": "PG",
1616
+ "dial_code": "+675",
1617
+ "regex": "^\\+675[7]\\d{7}$",
1618
+ "placeholder": "+675 7XXXXXXX",
1619
+ "format": "+675 7XXX XXXX",
1620
+ "flag": "🇵🇬"
1621
+ },
1622
+ {
1623
+ "name": "Paraguay",
1624
+ "code": "PY",
1625
+ "dial_code": "+595",
1626
+ "regex": "^\\+595[9]\\d{8}$",
1627
+ "placeholder": "+595 9XXXXXXXX",
1628
+ "format": "+595 9XX XXX XXX",
1629
+ "flag": "🇵🇾"
1630
+ },
1631
+ {
1632
+ "name": "Peru",
1633
+ "code": "PE",
1634
+ "dial_code": "+51",
1635
+ "regex": "^\\+51[9]\\d{8}$",
1636
+ "placeholder": "+51 9XXXXXXXX",
1637
+ "format": "+51 9XX XXX XXX",
1638
+ "flag": "🇵🇪"
1639
+ },
1640
+ {
1641
+ "name": "Philippines",
1642
+ "code": "PH",
1643
+ "dial_code": "+63",
1644
+ "regex": "^\\+63[9]\\d{9}$",
1645
+ "placeholder": "+63 9XXXXXXXXX",
1646
+ "format": "+63 9XX XXX XXXX",
1647
+ "flag": "🇵🇭"
1648
+ },
1649
+ {
1650
+ "name": "Pitcairn",
1651
+ "code": "PN",
1652
+ "dial_code": "+64",
1653
+ "regex": "^\\+64\\d{10}$",
1654
+ "placeholder": "+64 XXXXXXXXXX",
1655
+ "format": "+64 XXX XXX XXXX",
1656
+ "flag": "🇵🇳"
1657
+ },
1658
+ {
1659
+ "name": "Poland",
1660
+ "code": "PL",
1661
+ "dial_code": "+48",
1662
+ "regex": "^\\+48[1-9]\\d{8}$",
1663
+ "placeholder": "+48 5XXXXXXXX",
1664
+ "format": "+48 5XX XXX XXX",
1665
+ "flag": "🇵🇱"
1666
+ },
1667
+ {
1668
+ "name": "Portugal",
1669
+ "code": "PT",
1670
+ "dial_code": "+351",
1671
+ "regex": "^\\+351[1-9]\\d{8}$",
1672
+ "placeholder": "+351 9XXXXXXXX",
1673
+ "format": "+351 9XX XXX XXX",
1674
+ "flag": "🇵🇹"
1675
+ },
1676
+ {
1677
+ "name": "Puerto Rico",
1678
+ "code": "PR",
1679
+ "dial_code": "+1939",
1680
+ "regex": "^\\+1939\\d{7}$",
1681
+ "placeholder": "+1939 XXXXXXX",
1682
+ "format": "+1939 XXX XXXX",
1683
+ "flag": "🇵🇷"
1684
+ },
1685
+ {
1686
+ "name": "Qatar",
1687
+ "code": "QA",
1688
+ "dial_code": "+974",
1689
+ "regex": "^\\+974[3-7]\\d{7}$",
1690
+ "placeholder": "+974 3XXXXXXX",
1691
+ "format": "+974 XXXX XXXX",
1692
+ "flag": "🇶🇦"
1693
+ },
1694
+ {
1695
+ "name": "Romania",
1696
+ "code": "RO",
1697
+ "dial_code": "+40",
1698
+ "regex": "^\\+40[7]\\d{8}$",
1699
+ "placeholder": "+40 7XXXXXXXX",
1700
+ "format": "+40 7XX XXX XXX",
1701
+ "flag": "🇷🇴"
1702
+ },
1703
+ {
1704
+ "name": "Russia",
1705
+ "code": "RU",
1706
+ "dial_code": "+7",
1707
+ "regex": "^\\+7[9]\\d{9}$",
1708
+ "placeholder": "+7 9XXXXXXXXX",
1709
+ "format": "+7 9XX XXX XX XX",
1710
+ "flag": "🇷🇺"
1711
+ },
1712
+ {
1713
+ "name": "Rwanda",
1714
+ "code": "RW",
1715
+ "dial_code": "+250",
1716
+ "regex": "^\\+250[7]\\d{8}$",
1717
+ "placeholder": "+250 7XXXXXXXX",
1718
+ "format": "+250 7XX XXX XXX",
1719
+ "flag": "🇷🇼"
1720
+ },
1721
+ {
1722
+ "name": "Reunion",
1723
+ "code": "RE",
1724
+ "dial_code": "+262",
1725
+ "regex": "^\\+262[6-7]\\d{8}$",
1726
+ "placeholder": "+262 6XXXXXXXX",
1727
+ "format": "+262 6XX XX XX XX",
1728
+ "flag": "🇷🇪"
1729
+ },
1730
+ {
1731
+ "name": "Saint Barthelemy",
1732
+ "code": "BL",
1733
+ "dial_code": "+590",
1734
+ "regex": "^\\+590[6-7]\\d{8}$",
1735
+ "placeholder": "+590 6XXXXXXXX",
1736
+ "format": "+590 6XX XX XX XX",
1737
+ "flag": "🇧🇱"
1738
+ },
1739
+ {
1740
+ "name": "Saint Helena, Ascension and Tristan Da Cunha",
1741
+ "flag": "🇸🇭",
1742
+ "code": "SH",
1743
+ "dial_code": "+290",
1744
+ "regex": "^\\+290\\d{4}$",
1745
+ "placeholder": "+290 XXXX",
1746
+ "example": "+290 2380"
1747
+ },
1748
+ {
1749
+ "name": "Saint Kitts and Nevis",
1750
+ "code": "KN",
1751
+ "dial_code": "+1869",
1752
+ "regex": "^\\+1869\\d{7}$",
1753
+ "placeholder": "+1869 XXXXXXX",
1754
+ "format": "+1869 XXX XXXX",
1755
+ "flag": "🇰🇳"
1756
+ },
1757
+ {
1758
+ "name": "Saint Lucia",
1759
+ "code": "LC",
1760
+ "dial_code": "+1758",
1761
+ "regex": "^\\+1758\\d{7}$",
1762
+ "placeholder": "+1758 XXXXXXX",
1763
+ "format": "+1758 XXX XXXX",
1764
+ "flag": "🇱🇨"
1765
+ },
1766
+ {
1767
+ "name": "Saint Martin",
1768
+ "code": "MF",
1769
+ "dial_code": "+590",
1770
+ "regex": "^\\+590[6-7]\\d{8}$",
1771
+ "placeholder": "+590 6XXXXXXXX",
1772
+ "format": "+590 6XX XX XX XX",
1773
+ "flag": "🇲🇫"
1774
+ },
1775
+ {
1776
+ "name": "Saint Pierre and Miquelon",
1777
+ "code": "PM",
1778
+ "dial_code": "+508",
1779
+ "regex": "^\\+508\\d{6}$",
1780
+ "placeholder": "+508 XXXXXX",
1781
+ "example": "+508 412345",
1782
+ "flag": "🇵🇲"
1783
+ },
1784
+ {
1785
+ "name": "Saint Vincent and the Grenadines",
1786
+ "code": "VC",
1787
+ "dial_code": "+1784",
1788
+ "regex": "^\\+1784\\d{7}$",
1789
+ "placeholder": "+1784 XXXXXXX",
1790
+ "example": "+1784 4561234",
1791
+ "flag": "🇻🇨"
1792
+ },
1793
+ {
1794
+ "name": "Samoa",
1795
+ "code": "WS",
1796
+ "dial_code": "+685",
1797
+ "regex": "^\\+685\\d{5,7}$",
1798
+ "placeholder": "+685 XXXXXX",
1799
+ "example": "+685 721234",
1800
+ "flag": "🇼🇸"
1801
+ },
1802
+ {
1803
+ "name": "San Marino",
1804
+ "code": "SM",
1805
+ "dial_code": "+378",
1806
+ "regex": "^\\+378\\d{6,10}$",
1807
+ "placeholder": "+378 XXXXXXXX",
1808
+ "example": "+378 0549123456",
1809
+ "flag": "🇸🇲"
1810
+ },
1811
+ {
1812
+ "name": "Sao Tome and Principe",
1813
+ "code": "ST",
1814
+ "dial_code": "+239",
1815
+ "regex": "^\\+239\\d{7}$",
1816
+ "placeholder": "+239 XXXXXXX",
1817
+ "example": "+239 9912345",
1818
+ "flag": "🇸🇹"
1819
+ },
1820
+ {
1821
+ "name": "Saudi Arabia",
1822
+ "code": "SA",
1823
+ "dial_code": "+966",
1824
+ "regex": "^\\+966\\d{9}$",
1825
+ "placeholder": "+966 5XXXXXXXX",
1826
+ "example": "+966 512345678",
1827
+ "flag": "🇸🇦"
1828
+ },
1829
+ {
1830
+ "name": "Senegal",
1831
+ "code": "SN",
1832
+ "dial_code": "+221",
1833
+ "regex": "^\\+221\\d{9}$",
1834
+ "placeholder": "+221 7XXXXXXXX",
1835
+ "example": "+221 771234567",
1836
+ "flag": "🇸🇳"
1837
+ },
1838
+ {
1839
+ "name": "Serbia",
1840
+ "code": "RS",
1841
+ "dial_code": "+381",
1842
+ "regex": "^\\+381\\d{8,9}$",
1843
+ "placeholder": "+381 6XXXXXXXX",
1844
+ "example": "+381 601234567",
1845
+ "flag": "🇷🇸"
1846
+ },
1847
+ {
1848
+ "name": "Seychelles",
1849
+ "code": "SC",
1850
+ "dial_code": "+248",
1851
+ "regex": "^\\+248\\d{7}$",
1852
+ "placeholder": "+248 XXXXXXX",
1853
+ "example": "+248 2512345",
1854
+ "flag": "🇸🇨"
1855
+ },
1856
+ {
1857
+ "name": "Sierra Leone",
1858
+ "code": "SL",
1859
+ "dial_code": "+232",
1860
+ "regex": "^\\+232\\d{8}$",
1861
+ "placeholder": "+232 7XXXXXXX",
1862
+ "example": "+232 76123456",
1863
+ "flag": "🇸🇱"
1864
+ },
1865
+ {
1866
+ "name": "Singapore",
1867
+ "code": "SG",
1868
+ "dial_code": "+65",
1869
+ "regex": "^\\+65\\d{8}$",
1870
+ "placeholder": "+65 8XXXXXXX",
1871
+ "example": "+65 81234567",
1872
+ "flag": "🇸🇬"
1873
+ },
1874
+ {
1875
+ "name": "Slovakia",
1876
+ "code": "SK",
1877
+ "dial_code": "+421",
1878
+ "regex": "^\\+421\\d{9}$",
1879
+ "placeholder": "+421 9XXXXXXXX",
1880
+ "example": "+421 912345678",
1881
+ "flag": "🇸🇰"
1882
+ },
1883
+ {
1884
+ "name": "Slovenia",
1885
+ "code": "SI",
1886
+ "dial_code": "+386",
1887
+ "regex": "^\\+386\\d{8}$",
1888
+ "placeholder": "+386 3XXXXXXX",
1889
+ "example": "+386 31234567",
1890
+ "flag": "🇸🇮"
1891
+ },
1892
+ {
1893
+ "name": "Solomon Islands",
1894
+ "code": "SB",
1895
+ "dial_code": "+677",
1896
+ "regex": "^\\+677\\d{5,7}$",
1897
+ "placeholder": "+677 7XXXXX",
1898
+ "example": "+677 7123456",
1899
+ "flag": "🇸🇧"
1900
+ },
1901
+ {
1902
+ "name": "Somalia",
1903
+ "code": "SO",
1904
+ "dial_code": "+252",
1905
+ "regex": "^\\+252\\d{8}$",
1906
+ "placeholder": "+252 6XXXXXXX",
1907
+ "example": "+252 61234567",
1908
+ "flag": "🇸🇴"
1909
+ },
1910
+ {
1911
+ "name": "South Africa",
1912
+ "code": "ZA",
1913
+ "dial_code": "+27",
1914
+ "regex": "^\\+27\\d{9}$",
1915
+ "placeholder": "+27 8XXXXXXXX",
1916
+ "example": "+27 831234567",
1917
+ "flag": "🇿🇦"
1918
+ },
1919
+ {
1920
+ "name": "South Sudan",
1921
+ "code": "SS",
1922
+ "dial_code": "+211",
1923
+ "regex": "^\\+211\\d{9}$",
1924
+ "placeholder": "+211 9XXXXXXXX",
1925
+ "example": "+211 977123456",
1926
+ "flag": "🇸🇸"
1927
+ },
1928
+ {
1929
+ "name": "South Georgia and the South Sandwich Islands",
1930
+ "flag": "🇬🇸",
1931
+ "code": "GS",
1932
+ "dial_code": "+500",
1933
+ "regex": "^\\+500\\d{5}$",
1934
+ "placeholder": "+500 XXXXX",
1935
+ "example": "+500 12345"
1936
+ },
1937
+ {
1938
+ "name": "Spain",
1939
+ "code": "ES",
1940
+ "dial_code": "+34",
1941
+ "regex": "^\\+34\\d{9}$",
1942
+ "placeholder": "+34 6XXXXXXXX",
1943
+ "example": "+34 612345678",
1944
+ "flag": "🇪🇸"
1945
+ },
1946
+ {
1947
+ "name": "Sri Lanka",
1948
+ "code": "LK",
1949
+ "dial_code": "+94",
1950
+ "regex": "^\\+94\\d{9}$",
1951
+ "placeholder": "+94 7XXXXXXXX",
1952
+ "example": "+94 712345678",
1953
+ "flag": "🇱🇰"
1954
+ },
1955
+ {
1956
+ "name": "Sudan",
1957
+ "code": "SD",
1958
+ "dial_code": "+249",
1959
+ "regex": "^\\+249\\d{9}$",
1960
+ "placeholder": "+249 9XXXXXXXX",
1961
+ "example": "+249 912345678",
1962
+ "flag": "🇸🇩"
1963
+ },
1964
+ {
1965
+ "name": "Suriname",
1966
+ "code": "SR",
1967
+ "dial_code": "+597",
1968
+ "regex": "^\\+597\\d{6,7}$",
1969
+ "placeholder": "+597 XXXXXXX",
1970
+ "example": "+597 8123456",
1971
+ "flag": "🇸🇷"
1972
+ },
1973
+ {
1974
+ "name": "Svalbard and Jan Mayen",
1975
+ "code": "SJ",
1976
+ "dial_code": "+47",
1977
+ "regex": "^\\+47\\d{8}$",
1978
+ "placeholder": "+47 XXXXXXXX",
1979
+ "example": "+47 41234567",
1980
+ "flag": "🇸🇯"
1981
+ },
1982
+ {
1983
+ "name": "Eswatini",
1984
+ "code": "SZ",
1985
+ "dial_code": "+268",
1986
+ "regex": "^\\+268\\d{8}$",
1987
+ "placeholder": "+268 7XXXXXXX",
1988
+ "example": "+268 76123456",
1989
+ "flag": "🇸🇿"
1990
+ },
1991
+ {
1992
+ "name": "Sweden",
1993
+ "code": "SE",
1994
+ "dial_code": "+46",
1995
+ "regex": "^\\+46\\d{7,10}$",
1996
+ "placeholder": "+46 7XXXXXXXX",
1997
+ "example": "+46 701234567",
1998
+ "flag": "🇸🇪"
1999
+ },
2000
+ {
2001
+ "name": "Switzerland",
2002
+ "code": "CH",
2003
+ "dial_code": "+41",
2004
+ "regex": "^\\+41\\d{9}$",
2005
+ "placeholder": "+41 7XXXXXXXX",
2006
+ "example": "+41 781234567",
2007
+ "flag": "🇨🇭"
2008
+ },
2009
+ {
2010
+ "name": "Syrian Arab Republic",
2011
+ "flag": "🇸🇾",
2012
+ "code": "SY",
2013
+ "dial_code": "+963",
2014
+ "regex": "^\\+963[9]\\d{8}$",
2015
+ "placeholder": "+963 9XXXXXXXX",
2016
+ "example": "+963 991234567"
2017
+ },
2018
+ {
2019
+ "name": "Taiwan",
2020
+ "code": "TW",
2021
+ "dial_code": "+886",
2022
+ "regex": "^\\+886\\d{8,9}$",
2023
+ "placeholder": "+886 9XXXXXXXX",
2024
+ "example": "+886 912345678",
2025
+ "flag": "🇹🇼"
2026
+ },
2027
+ {
2028
+ "name": "Tajikistan",
2029
+ "code": "TJ",
2030
+ "dial_code": "+992",
2031
+ "regex": "^\\+992\\d{9}$",
2032
+ "placeholder": "+992 9XXXXXXXX",
2033
+ "example": "+992 917123456",
2034
+ "flag": "🇹🇯"
2035
+ },
2036
+ {
2037
+ "name": "Tanzania, United Republic of Tanzania",
2038
+ "flag": "🇹🇿",
2039
+ "code": "TZ",
2040
+ "dial_code": "+255",
2041
+ "regex": "^\\+255[67]\\d{8}$",
2042
+ "placeholder": "+255 7XXXXXXXX",
2043
+ "example": "+255 712345678"
2044
+ },
2045
+ {
2046
+ "name": "Thailand",
2047
+ "code": "TH",
2048
+ "dial_code": "+66",
2049
+ "regex": "^\\+66\\d{8,9}$",
2050
+ "placeholder": "+66 8XXXXXXXX",
2051
+ "example": "+66 812345678",
2052
+ "flag": "🇹🇭"
2053
+ },
2054
+ {
2055
+ "name": "Timor-Leste",
2056
+ "code": "TL",
2057
+ "dial_code": "+670",
2058
+ "regex": "^\\+670\\d{8}$",
2059
+ "placeholder": "+670 7XXXXXXX",
2060
+ "example": "+670 77123456",
2061
+ "flag": "🇹🇱"
2062
+ },
2063
+ {
2064
+ "name": "Togo",
2065
+ "code": "TG",
2066
+ "dial_code": "+228",
2067
+ "regex": "^\\+228\\d{8}$",
2068
+ "placeholder": "+228 9XXXXXXX",
2069
+ "example": "+228 91234567",
2070
+ "flag": "🇹🇬"
2071
+ },
2072
+ {
2073
+ "name": "Tokelau",
2074
+ "code": "TK",
2075
+ "dial_code": "+690",
2076
+ "regex": "^\\+690\\d{4}$",
2077
+ "placeholder": "+690 XXXX",
2078
+ "example": "+690 1234",
2079
+ "flag": "🇹🇰"
2080
+ },
2081
+ {
2082
+ "name": "Tonga",
2083
+ "code": "TO",
2084
+ "dial_code": "+676",
2085
+ "regex": "^\\+676\\d{5}$",
2086
+ "placeholder": "+676 XXXXX",
2087
+ "example": "+676 71234",
2088
+ "flag": "🇹🇴"
2089
+ },
2090
+ {
2091
+ "name": "Trinidad and Tobago",
2092
+ "code": "TT",
2093
+ "dial_code": "+1868",
2094
+ "regex": "^\\+1868\\d{7}$",
2095
+ "placeholder": "+1868 XXXXXXX",
2096
+ "example": "+1868 2841234",
2097
+ "flag": "🇹🇹"
2098
+ },
2099
+ {
2100
+ "name": "Tunisia",
2101
+ "code": "TN",
2102
+ "dial_code": "+216",
2103
+ "regex": "^\\+216\\d{8}$",
2104
+ "placeholder": "+216 XXXXXXXX",
2105
+ "example": "+216 20123456",
2106
+ "flag": "🇹🇳"
2107
+ },
2108
+ {
2109
+ "name": "Turkey",
2110
+ "code": "TR",
2111
+ "dial_code": "+90",
2112
+ "regex": "^\\+90\\d{10}$",
2113
+ "placeholder": "+90 5XXXXXXXXX",
2114
+ "example": "+90 5312345678",
2115
+ "flag": "🇹🇷"
2116
+ },
2117
+ {
2118
+ "name": "Turkmenistan",
2119
+ "code": "TM",
2120
+ "dial_code": "+993",
2121
+ "regex": "^\\+993\\d{8}$",
2122
+ "placeholder": "+993 6XXXXXXX",
2123
+ "example": "+993 61234567",
2124
+ "flag": "🇹🇲"
2125
+ },
2126
+ {
2127
+ "name": "Turks and Caicos Islands",
2128
+ "code": "TC",
2129
+ "dial_code": "+1649",
2130
+ "regex": "^\\+1649\\d{7}$",
2131
+ "placeholder": "+1649 XXXXXXX",
2132
+ "example": "+1649 2311234",
2133
+ "flag": "🇹🇨"
2134
+ },
2135
+ {
2136
+ "name": "Tuvalu",
2137
+ "code": "TV",
2138
+ "dial_code": "+688",
2139
+ "regex": "^\\+688\\d{5}$",
2140
+ "placeholder": "+688 XXXXX",
2141
+ "example": "+688 20123",
2142
+ "flag": "🇹🇻"
2143
+ },
2144
+ {
2145
+ "name": "Uganda",
2146
+ "code": "UG",
2147
+ "dial_code": "+256",
2148
+ "regex": "^\\+256\\d{9}$",
2149
+ "placeholder": "+256 7XXXXXXXX",
2150
+ "example": "+256 712345678",
2151
+ "flag": "🇺🇬"
2152
+ },
2153
+ {
2154
+ "name": "Ukraine",
2155
+ "code": "UA",
2156
+ "dial_code": "+380",
2157
+ "regex": "^\\+380\\d{9}$",
2158
+ "placeholder": "+380 9XXXXXXXX",
2159
+ "example": "+380 931234567",
2160
+ "flag": "🇺🇦"
2161
+ },
2162
+ {
2163
+ "name": "United Arab Emirates",
2164
+ "code": "AE",
2165
+ "dial_code": "+971",
2166
+ "regex": "^\\+971\\d{9}$",
2167
+ "placeholder": "+971 5XXXXXXXX",
2168
+ "example": "+971 501234567",
2169
+ "flag": "🇦🇪"
2170
+ },
2171
+ {
2172
+ "name": "United Kingdom",
2173
+ "flag": "🇬🇧",
2174
+ "code": "GB",
2175
+ "dial_code": "+44",
2176
+ "regex": "^\\+44[0-9]{10}$",
2177
+ "placeholder": "+44 7123 456 789"
2178
+ },
2179
+ {
2180
+ "name": "United States",
2181
+ "flag": "🇺🇸",
2182
+ "code": "US",
2183
+ "dial_code": "+1",
2184
+ "regex": "^\\+1[0-9]{10}$",
2185
+ "placeholder": "+1 213 123 4567"
2186
+ },
2187
+ {
2188
+ "name": "Uruguay",
2189
+ "code": "UY",
2190
+ "dial_code": "+598",
2191
+ "regex": "^\\+598\\d{8}$",
2192
+ "placeholder": "+598 9XXXXXXX",
2193
+ "example": "+598 91234567",
2194
+ "flag": "🇺🇾"
2195
+ },
2196
+ {
2197
+ "name": "Uzbekistan",
2198
+ "code": "UZ",
2199
+ "dial_code": "+998",
2200
+ "regex": "^\\+998\\d{9}$",
2201
+ "placeholder": "+998 9XXXXXXXX",
2202
+ "example": "+998 901234567",
2203
+ "flag": "🇺🇿"
2204
+ },
2205
+ {
2206
+ "name": "Vanuatu",
2207
+ "code": "VU",
2208
+ "dial_code": "+678",
2209
+ "regex": "^\\+678\\d{5,7}$",
2210
+ "placeholder": "+678 XXXXXX",
2211
+ "example": "+678 591234",
2212
+ "flag": "🇻🇺"
2213
+ },
2214
+ {
2215
+ "name": "Venezuela, Bolivarian Republic of Venezuela",
2216
+ "flag": "🇻🇪",
2217
+ "code": "VE",
2218
+ "dial_code": "+58",
2219
+ "regex": "^\\+58[24]\\d{9}$",
2220
+ "placeholder": "+58 4XXXXXXXXX",
2221
+ "example": "+58 4121234567"
2222
+ },
2223
+ {
2224
+ "name": "Vietnam",
2225
+ "code": "VN",
2226
+ "dial_code": "+84",
2227
+ "regex": "^\\+84\\d{9,10}$",
2228
+ "placeholder": "+84 9XXXXXXXX",
2229
+ "example": "+84 912345678",
2230
+ "flag": "🇻🇳"
2231
+ },
2232
+ {
2233
+ "name": "Virgin Islands, British",
2234
+ "flag": "🇻🇬",
2235
+ "code": "VG",
2236
+ "dial_code": "+1284",
2237
+ "regex": "^\\+1284\\d{7}$",
2238
+ "placeholder": "+1284 XXXXXXX",
2239
+ "example": "+1284 3001234"
2240
+ },
2241
+ {
2242
+ "name": "Virgin Islands, U.S.",
2243
+ "flag": "🇻🇮",
2244
+ "code": "VI",
2245
+ "dial_code": "+1340",
2246
+ "regex": "^\\+1340\\d{7}$",
2247
+ "placeholder": "+1340 XXXXXXX",
2248
+ "example": "+1340 7741234"
2249
+ },
2250
+ {
2251
+ "name": "Wallis and Futuna",
2252
+ "code": "WF",
2253
+ "dial_code": "+681",
2254
+ "regex": "^\\+681\\d{6}$",
2255
+ "placeholder": "+681 XXXXXX",
2256
+ "example": "+681 501234",
2257
+ "flag": "🇼🇫"
2258
+ },
2259
+ {
2260
+ "name": "Yemen",
2261
+ "code": "YE",
2262
+ "dial_code": "+967",
2263
+ "regex": "^\\+967\\d{8,9}$",
2264
+ "placeholder": "+967 7XXXXXXXX",
2265
+ "example": "+967 712345678",
2266
+ "flag": "🇾🇪"
2267
+ },
2268
+ {
2269
+ "name": "Zambia",
2270
+ "code": "ZM",
2271
+ "dial_code": "+260",
2272
+ "regex": "^\\+260\\d{9}$",
2273
+ "placeholder": "+260 9XXXXXXXX",
2274
+ "example": "+260 971234567",
2275
+ "flag": "🇿🇲"
2276
+ },
2277
+ {
2278
+ "name": "Zimbabwe",
2279
+ "flag": "🇿🇼",
2280
+ "code": "ZW",
2281
+ "dial_code": "+263",
2282
+ "regex": "^\\+263[0-9]{9}$",
2283
+ "placeholder": "+263 71 234 5678"
2284
+ }
2285
+ ];
2286
+ filteredCountries;
2287
+ selectedCountry;
2288
+ showCountryDropdown = false;
2289
+ countrySearch = '';
2290
+ subscription;
2291
+ // Internal state
2292
+ dateSelected;
2293
+ timeSelected;
2294
+ quillConfiguration = QuillConfiguration;
2295
+ emptyQuillModules = EmptyQuillModules;
2296
+ viewEdit = false;
2297
+ originalValue; // To store the original value when entering view edit mode
2298
+ isSaveHovered = false;
2299
+ isDiscardHovered = false;
2300
+ constructor(elementRef, changeService, dataService) {
2301
+ this.elementRef = elementRef;
2302
+ this.changeService = changeService;
2303
+ this.dataService = dataService;
2304
+ }
2305
+ hasEmittedRef = false;
2306
+ ngAfterViewInit() {
2307
+ if (this.type === 'location' &&
2308
+ this.inputRef &&
2309
+ !this.hasEmittedRef) {
2310
+ this.nativeInputRef.emit(this.inputRef);
2311
+ this.hasEmittedRef = true;
2312
+ }
2313
+ }
2314
+ ngOnChanges(changes) {
2315
+ if (changes['mode']) {
2316
+ this.viewEdit = false;
2317
+ this.updateControlState();
2318
+ }
2319
+ if (changes['value']) {
2320
+ this.writeValue(changes['value'].currentValue);
2321
+ }
2322
+ if (this.confPass && changes['confPassVal'] && !changes['confPassVal'].firstChange) {
2323
+ this.value = ''; // Reset input value
2324
+ }
2325
+ if (changes['type']) {
2326
+ this.setupValidators();
2327
+ }
2328
+ if (changes['type'] && changes['type'].currentValue === 'location') {
2329
+ this.hasEmittedRef = false;
2330
+ }
2331
+ }
2332
+ ngOnInit() {
2333
+ // SKS28FEB25 default country set
2334
+ this.selectedCountry = this.countries.find(c => c.code === 'IN') || this.countries[0];
2335
+ this.filteredCountries = [...this.countries];
2336
+ const validators = [];
2337
+ if (this.required)
2338
+ validators.push(Validators.required);
2339
+ if (this.minLength)
2340
+ validators.push(Validators.minLength(this.minLength));
2341
+ if (this.pattern)
2342
+ validators.push(Validators.pattern(this.pattern));
2343
+ if (this.maxLength)
2344
+ validators.push(Validators.maxLength(this.maxLength));
2345
+ if (this.confPass)
2346
+ validators.push(this.passwordMatchValidator());
2347
+ this.control.setValidators(validators);
2348
+ if (this.type === 'otp') {
2349
+ this.inputs.controls.forEach((control) => {
2350
+ control.setValidators(validators);
2351
+ });
2352
+ }
2353
+ else if (this.type === 'tel') {
2354
+ this.control.setValidators([
2355
+ Validators.pattern(this.removeDialCodeFromRegex(this.selectedCountry.regex, this.selectedCountry.dial_code))
2356
+ ]);
2357
+ }
2358
+ if (this.type === 'date' || this.type === 'datetime') {
2359
+ this.dateSelected = this.value ? new Date(this.value) : null;
2360
+ }
2361
+ if (this.type === 'time') {
2362
+ this.timeSelected = this.value ? new Date(this.value) : null;
2363
+ }
2364
+ this.setDisabledState(this.mode !== 'edit');
2365
+ this.question['subText'] = this.question?.subText !== null && typeof this.question['subText'] === 'string' ? JSON.parse(this.question['subText']) : {};
2366
+ if (this.question?.subText != undefined) {
2367
+ // this.disabled = true;
2368
+ let dependencyObj = this.question?.subText;
2369
+ if (dependencyObj.disabled && dependencyObj.disabled == "false") {
2370
+ // this.disabled = false;
2371
+ }
2372
+ else {
2373
+ // this.disabled = true;
2374
+ }
2375
+ // Subscribe for the changes
2376
+ this.subscription = this.changeService.changeAnnounced$.subscribe((changeValue) => {
2377
+ if (changeValue != undefined) {
2378
+ // console.log('inside subscription for the change');
2379
+ if (changeValue.valueObj != undefined && changeValue.fromQuestionId == dependencyObj.sourceQuestionId) {
2380
+ // VD 20Aug24 handling the multiple object
2381
+ this.value = this.dataService.getValue(changeValue.valueObj, dependencyObj.valueField);
2382
+ this.inputValue.emit({ question: this.question, value: this.value });
2383
+ }
2384
+ this.changeService.confirmChange(dependencyObj.sourceQuestionId);
2385
+ }
2386
+ });
2387
+ }
2388
+ }
2389
+ setupValidators() {
2390
+ const validators = [];
2391
+ if (this.required)
2392
+ validators.push(Validators.required);
2393
+ if (this.minLength)
2394
+ validators.push(Validators.minLength(this.minLength));
2395
+ if (this.maxLength)
2396
+ validators.push(Validators.maxLength(this.maxLength));
2397
+ if (this.pattern)
2398
+ validators.push(Validators.pattern(this.pattern));
2399
+ this.control.setValidators(validators);
2400
+ }
2401
+ // SKS28FEB25 Country Dropdown close
2402
+ closeDropdown(event) {
2403
+ if (!this.elementRef.nativeElement.contains(event.target)) {
2404
+ this.showCountryDropdown = false;
2405
+ }
2406
+ }
2407
+ onChange = () => { };
2408
+ onTouched = () => { };
2409
+ registerOnTouched(fn) {
2410
+ this.onTouched = fn;
2411
+ }
2412
+ onInputChange(event) {
2413
+ const inputElement = event.target;
2414
+ this.rawInputVal = inputElement.value;
2415
+ if (this.type === 'tel') {
2416
+ this.value = this.selectedCountry.dial_code + " " + inputElement.value;
2417
+ }
2418
+ else {
2419
+ this.value = inputElement.value;
2420
+ }
2421
+ this.onChange(this.value);
2422
+ this.onTouched();
2423
+ // SKS11JUN25 Only emit the value if not in view edit mode
2424
+ if (!this.viewEdit) {
2425
+ this.inputValue.emit({ question: this.question, value: this.value });
2426
+ }
2427
+ }
2428
+ togglePasswordVisibility() {
2429
+ this.isPasswordVisible = !this.isPasswordVisible;
2430
+ }
2431
+ passwordMatchValidator() {
2432
+ return (control) => {
2433
+ const confirmPassword = control.value; // Get confirm password field value
2434
+ if (this.confPassVal === '') {
2435
+ return { passwordMismatch: true };
2436
+ }
2437
+ return this.confPassVal === confirmPassword ? null : { passwordMismatch: true };
2438
+ };
2439
+ }
2440
+ getErrorMessage() {
2441
+ if (this.control.hasError('required'))
2442
+ return this.errorMessages['required'] || 'This field is required';
2443
+ if (this.control.hasError('minlength'))
2444
+ return this.errorMessages['minlength'] || `Minimum ${this.minLength} characters required`;
2445
+ if (this.control.hasError('pattern'))
2446
+ return this.errorMessages['pattern'] || (this.type === 'tel' ? `Invalid ${this.selectedCountry.name} phone number format` : 'Invalid format');
2447
+ if (this.control.hasError('maxlength'))
2448
+ return this.errorMessages['maxlength'] || `Maximum ${this.maxLength} characters allowed`;
2449
+ if (this.control.hasError('passwordMismatch'))
2450
+ return this.errorMessages['confPass'] || `Passwords do not match`;
2451
+ return '';
2452
+ }
2453
+ writeValue(value) {
2454
+ if (this.type === 'otp') {
2455
+ // For OTP inputs, split the value into individual characters
2456
+ const values = value.split('').slice(0, this.#size);
2457
+ values.forEach((val, index) => this.inputs.controls[index].setValue(val));
2458
+ }
2459
+ else {
2460
+ // For regular inputs, set the value directly
2461
+ this.control.setValue(value);
2462
+ }
2463
+ this.value = value;
2464
+ this.control.setValue(value);
2465
+ if (this.type === 'date' || this.type === 'datetime') {
2466
+ this.dateSelected = value ? new Date(value) : null;
2467
+ }
2468
+ if (this.type === 'time') {
2469
+ this.timeSelected = value ? new Date(value) : null;
2470
+ }
2471
+ }
2472
+ registerOnChange(fn) {
2473
+ this.onChange = fn;
2474
+ if (this.type === 'otp') {
2475
+ this.inputs.valueChanges.subscribe(() => {
2476
+ const value = this.inputs.value.join('');
2477
+ this.onChange(value);
2478
+ });
2479
+ }
2480
+ else {
2481
+ this.control.valueChanges.subscribe((value) => {
2482
+ this.onChange(value);
2483
+ });
2484
+ }
2485
+ }
2486
+ setDisabledState(isDisabled) {
2487
+ if (this.type === 'otp') {
2488
+ if (isDisabled) {
2489
+ this.inputs.disable();
2490
+ }
2491
+ else {
2492
+ this.inputs.enable();
2493
+ }
2494
+ }
2495
+ else {
2496
+ if (isDisabled) {
2497
+ this.control.disable();
2498
+ }
2499
+ else {
2500
+ this.control.enable();
2501
+ }
2502
+ }
2503
+ }
2504
+ updateControlState() {
2505
+ const shouldDisable = this.mode !== 'edit' && !this.viewEdit;
2506
+ this.setDisabledState(shouldDisable);
2507
+ }
2508
+ validate(control) {
2509
+ if (this.type === 'otp') {
2510
+ if (!control.value || control.value.length < this.#size) {
2511
+ return { otpInput: 'Value is incorrect' };
2512
+ }
2513
+ }
2514
+ else {
2515
+ if (this.control.invalid) {
2516
+ return this.control.errors;
2517
+ }
2518
+ }
2519
+ return null;
2520
+ }
2521
+ handleKeyDown(e, idx) {
2522
+ if (e.key === 'Backspace' || e.key === 'Delete') {
2523
+ if (idx > 0) {
2524
+ this.#scheduledFocus = idx - 1;
2525
+ }
2526
+ else {
2527
+ this.#scheduledFocus = null;
2528
+ }
2529
+ }
2530
+ }
2531
+ // Due to iOS/iPadOS Safari bug/special behavior we are forced to
2532
+ // schedule focus transition during keypress/keydown event and only
2533
+ // after input event happened - execute the transition
2534
+ // otherwise inputs don't get their values filled
2535
+ handleInput() {
2536
+ this.#updateWiredValue();
2537
+ if (this.#scheduledFocus !== null) {
2538
+ this.#focusInput(this.#scheduledFocus);
2539
+ this.#scheduledFocus = null; // Reset to null after focusing
2540
+ }
2541
+ }
2542
+ handleKeyPress(e, idx) {
2543
+ const isDigit = /\d/.test(e.key);
2544
+ if (e.key === 'v' && e.metaKey) {
2545
+ return true;
2546
+ }
2547
+ if (isDigit && idx + 1 < this.#size) {
2548
+ this.#scheduledFocus = idx + 1;
2549
+ }
2550
+ else {
2551
+ this.#scheduledFocus = null; // Ensure it's null if not moving focus
2552
+ }
2553
+ if (isDigit && this.inputs.controls[idx].value) {
2554
+ this.inputs.controls[idx].setValue('');
2555
+ }
2556
+ return isDigit;
2557
+ }
2558
+ handlePaste(e, idx) {
2559
+ e.preventDefault();
2560
+ if (idx !== 0) {
2561
+ // If the target input is not the first one - ignore
2562
+ return;
2563
+ }
2564
+ const pasteData = e.clipboardData?.getData('text');
2565
+ const regex = new RegExp(`\\d{${this.#size}}`);
2566
+ if (!pasteData || !regex.test(pasteData)) {
2567
+ // If there is nothing to be pasted or the pasted data does not
2568
+ // comply with the required format - ignore the event
2569
+ return;
2570
+ }
2571
+ for (let i = 0; i < pasteData.length; i++) {
2572
+ this.inputs.controls[i].setValue(pasteData[i]);
2573
+ }
2574
+ this.#focusInput(this.inputEls.length - 1);
2575
+ this.#updateWiredValue();
2576
+ this.onTouched();
2577
+ }
2578
+ handleFocus(e) {
2579
+ // Select previously entered value to replace with a new input
2580
+ e.target.select();
2581
+ }
2582
+ #focusInput(idx) {
2583
+ // In order not to interfere with the input we setTimeout
2584
+ // before advancing the focus
2585
+ setTimeout(() => this.inputEls.get(idx)?.nativeElement.focus());
2586
+ }
2587
+ #updateWiredValue() {
2588
+ // We want to expose the value as a plain string
2589
+ //
2590
+ // In order not to interfere with the input we setTimeout
2591
+ // before advancing the focus
2592
+ setTimeout(() => this.onChange?.(this.inputs.value.join('')));
2593
+ }
2594
+ // SKS28FEB25 toggle Country Dropdown
2595
+ toggleCountryDropdown() {
2596
+ this.showCountryDropdown = !this.showCountryDropdown;
2597
+ }
2598
+ // SKS28FEB25 Country Dropdown search filter
2599
+ filterCountries(event) {
2600
+ const inputElement = event.target;
2601
+ this.countrySearch = inputElement.value;
2602
+ this.filteredCountries = this.countries.filter(country => country.name.toLowerCase().includes(this.countrySearch.toLowerCase()) ||
2603
+ country.dial_code.includes(this.countrySearch));
2604
+ }
2605
+ // SKS28FEB25 Country Dropdown select function
2606
+ selectCountry(country) {
2607
+ this.selectedCountry = country;
2608
+ this.showCountryDropdown = false;
2609
+ this.control.setValidators([
2610
+ Validators.required,
2611
+ Validators.pattern(this.removeDialCodeFromRegex(this.selectedCountry.regex, this.selectedCountry.dial_code))
2612
+ ]);
2613
+ // SKS28FEB25 Update the control's value with the new dial code
2614
+ this.control.setValue(this.rawInputVal);
2615
+ // SKS28FEB25 Immediately update validity status
2616
+ this.control.updateValueAndValidity();
2617
+ // SKS28FEB25 Trigger change detection if needed
2618
+ this.control.markAsTouched();
2619
+ console.log("vall check3", this.value);
2620
+ this.value = this.selectedCountry.dial_code + " " + this.rawInputVal;
2621
+ this.onChange(this.value);
2622
+ }
2623
+ // SKS28FEB25 remove DialCode From Regex
2624
+ removeDialCodeFromRegex(originalRegex, dialCode) {
2625
+ const escapedDialCode = dialCode.replace(/\+/g, "\\+");
2626
+ return originalRegex.replace(`^${escapedDialCode}`, '^');
2627
+ }
2628
+ // SKS28FEB25 remove DialCode From Regex for show in input
2629
+ removeDialCode(placeholder) {
2630
+ return placeholder.replace(/^\+\d+\s*/, '');
2631
+ }
2632
+ get inputList() {
2633
+ return this.type !== 'otp' ? this.inputs.controls.slice(0, 1) : this.inputs.controls;
2634
+ }
2635
+ blurEmit() {
2636
+ this.onBlur.emit(this.value);
2637
+ }
2638
+ focusinEmit(event) {
2639
+ this.onFocus.emit(event);
2640
+ }
2641
+ toggle(event) {
2642
+ this.toggleEmit.emit(event);
2643
+ }
2644
+ clearEmit(event) {
2645
+ this.clearInputEmit.emit(event);
2646
+ }
2647
+ onEditorFocusOut() {
2648
+ const currentValue = this.value || '';
2649
+ this.valueChange.emit(currentValue);
2650
+ }
2651
+ viewEditClick(ques) {
2652
+ this.originalValue = this.value; // Store the original value
2653
+ this.viewEdit = true; // Enter view edit mode
2654
+ this.mode = 'edit';
2655
+ this.updateControlState(); // Update control state
2656
+ }
2657
+ saveChanges() {
2658
+ let ques = this.question;
2659
+ ques['singleFieldChange'] = true;
2660
+ this.inputValue.emit({ question: ques, value: this.value }); // Emit the updated value
2661
+ this.viewEdit = false; // Exit view edit mode
2662
+ this.mode = 'view'; // Switch back to view mode
2663
+ this.updateControlState(); // Update control state
2664
+ }
2665
+ discardChanges() {
2666
+ this.writeValue(this.originalValue); // Revert to original value
2667
+ this.viewEdit = false; // Exit view edit mode
2668
+ this.mode = 'view'; // Switch back to view mode
2669
+ this.updateControlState(); // Update control state
2670
+ }
2671
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NxtInput, deps: [{ token: i0.ElementRef }, { token: i1.ChangeService }, { token: i2.DataService }], target: i0.ɵɵFactoryTarget.Component });
2672
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: NxtInput, isStandalone: true, selector: "nxt-input", inputs: { label: "label", labelFont: "labelFont", labelWeight: "labelWeight", inputWeight: "inputWeight", labelSize: "labelSize", inputValueSize: "inputValueSize", labelColor: "labelColor", showLabel: "showLabel", svgHeight: "svgHeight", svgWidth: "svgWidth", type: "type", inputIconRightSrc: "inputIconRightSrc", inputIconLeftSrc: "inputIconLeftSrc", required: "required", minLength: "minLength", pattern: "pattern", errorMessages: "errorMessages", maxLength: "maxLength", placeholder: "placeholder", inputBgColor: "inputBgColor", inputBorder: "inputBorder", placeholderColor: "placeholderColor", placeholderFont: "placeholderFont", placeholderWeight: "placeholderWeight", placeholderSize: "placeholderSize", inputTextColor: "inputTextColor", inputHeight: "inputHeight", inputWidth: "inputWidth", inputId: "inputId", inputBorderSize: "inputBorderSize", inputConfig: "inputConfig", confPassVal: "confPassVal", confPass: "confPass", mode: "mode", value: "value", question: "question", showSuggestion: "showSuggestion", ariaOwns: "ariaOwns", ariaHasPopup: "ariaHasPopup", isLoading: "isLoading", options: "options", minDate: "minDate", maxDate: "maxDate", rows: "rows", size: "size" }, outputs: { valueChange: "valueChange", inputValue: "inputValue", onBlur: "onBlur", onFocus: "onFocus", toggleEmit: "toggleEmit", clearInputEmit: "clearInputEmit", nativeInputRef: "nativeInputRef" }, host: { listeners: { "document:click": "closeDropdown($event)" } }, providers: [
2673
+ {
2674
+ provide: NG_VALUE_ACCESSOR,
2675
+ useExisting: forwardRef(() => NxtInput),
2676
+ multi: true
2677
+ },
2678
+ {
2679
+ provide: NG_VALIDATORS,
2680
+ useExisting: forwardRef(() => NxtInput),
2681
+ multi: true,
2682
+ },
2683
+ ], viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["inputRef"], descendants: true }, { propertyName: "inputEls", predicate: ["inputEl"], descendants: true }, { propertyName: "dateTimePicker", predicate: ["dt"], descendants: true }, { propertyName: "datePicker", predicate: ["dt1"], descendants: true }, { propertyName: "timePicker", predicate: ["dt2"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<!-- SKS31JAN25 -->\n<div class=\"hover-wrapper input-wrapper\" (document:click)=\"closeDropdown($event)\">\n <div>\n <div *ngIf=\"type === 'label' ? placeholder : label && type != 'checkbox' && showLabel\" [ngStyle]=\"{\n 'padding-top': type === 'label' ? '10px' : '',\n 'padding-bottom': type === 'label' ? '10px' : ''\n }\" [style.font-weight]=\"labelWeight\" [style.font-size]=\"labelSize || type === 'label' ? '16px' : '14px'\"\n [style.color]=\"labelColor || type === 'label' ? 'black' : '#9a9a9a'\" style=\"display: flex; gap: 5px;\"> {{ type ===\n 'label' ? placeholder : label\n }}\n <div *ngIf=\"label && type != 'checkbox' && required && showLabel && mode === 'edit'\" style=\"color: red;\">*</div>\n </div>\n <div *ngIf=\"type !== 'label' && type !== 'richtext' && type !== 'textarea'\" style=\"display: flex;\">\n <div class=\"input-container\" [ngClass]=\"{'checkbox-padding': type === 'checkbox' || type === 'otp'}\"\n [style.backgroundColor]=\"mode === 'edit' ? inputBgColor : ''\"\n [class.invalid]=\"control.invalid && control.touched\"\n [style.border]=\"mode === 'edit' ? inputBorder === 'none' ? ('1px solid ' + inputBgColor) : inputBorder : 'none'\">\n <img *ngIf=\"inputIconLeftSrc && mode === 'edit'\" [src]=\"inputIconLeftSrc\" alt=\"icon\" class=\"icon left-icon\"\n [style.height]=\"svgHeight\" [style.width]=\"svgWidth\" />\n <!-- SKS28FEB25 mobile number input -->\n <div class=\"phone-input-container\">\n <div *ngIf=\"type === 'tel'\" class=\"country-selector\" style=\"padding-left: 10px;\"\n (click)=\"toggleCountryDropdown()\">\n <!-- <span class=\"flag\">{{ selectedCountry.flag }}</span> -->\n <span class=\"dial-code\" [style.font-size]=\"inputValueSize\">{{ selectedCountry.dial_code }}</span>\n <svg class=\"arrow\" width=\"9\" height=\"6\" viewBox=\"0 0 9 6\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M0.684136 0.767477C0.922999 0.5378 1.30282 0.545248 1.5325 0.784111L4.5 3.93431L7.4675 0.784111C7.69718 0.545248 8.077 0.5378 8.31587 0.767477C8.55473 0.997153 8.56218 1.37698 8.3325 1.61584L4.9325 5.21584C4.81938 5.33349 4.66321 5.39998 4.5 5.39998C4.33679 5.39998 4.18062 5.33349 4.0675 5.21584L0.667501 1.61584C0.437825 1.37698 0.445272 0.997153 0.684136 0.767477Z\"\n fill=\"#626262\" />\n </svg>\n </div>\n <div *ngIf=\"type === 'tel' && showCountryDropdown\" class=\"country-dropdown\">\n <div class=\"search-box\">\n <input type=\"text\" [readOnly]=\"mode !== 'edit'\" placeholder=\"Search country...\" [value]=\"countrySearch\"\n (input)=\"filterCountries($event)\">\n </div>\n <div class=\"country-list\">\n <div *ngFor=\"let country of filteredCountries\" class=\"country-item\" (click)=\"selectCountry(country)\">\n <span class=\"flag\">{{ country.flag }}</span>\n <span class=\"name\">{{ country.name }}</span>\n <span class=\"dial-code\">{{ country.dial_code }}</span>\n </div>\n </div>\n </div>\n </div>\n @if(type !== 'datetime'){\n <input *ngFor=\"let input of inputList; let i = index\" #inputEl #inputRef [id]=\"inputId\"\n [type]=\"isPasswordVisible ? 'text' : type === 'otp' || type === 'dropdown' ? 'text' : type\"\n [attr.placeholder]=\"type === 'otp' || mode !== 'edit' ? '' : placeholder || (type === 'tel' ? removeDialCode(selectedCountry.placeholder) : label)\"\n [ngClass]=\"type === 'otp' ? 'fcOtp' : 'custom-input'\" [formControl]=\"type === 'otp' ? $any(input) : control\"\n [style.backgroundColor]=\"type === 'otp'|| mode !== 'edit' ? '' : inputBgColor\"\n [style.color]=\"type === 'otp' || mode !== 'edit' ? '' : inputTextColor\"\n [style.border]=\"type === 'otp' || mode !== 'edit' ? '' : inputBorder\"\n [style.height]=\"type === 'otp' ? '' : inputHeight\" [style.width]=\"type === 'otp' ? '' : inputWidth\"\n [value]=\"type === 'tel' ? rawInputVal : value\"\n (input)=\"type === 'otp' ? handleInput() : onInputChange($event)\"\n [style.font-size]=\"type === 'otp' ? '' : inputValueSize\" (focus)=\"type === 'otp' ? handleFocus($event) : null\"\n (blur)=\"type === 'otp' ? onTouched() : blurEmit()\"\n (keypress)=\"type === 'otp' ? handleKeyPress($event, i) : null\"\n (keydown)=\"type === 'otp' ? handleKeyDown($event, i) : null\"\n (paste)=\"type === 'otp' ? handlePaste($event, i) : null\" inputmode=\"type === 'otp' ? numeric : null\"\n [attr.autocomplete]=\"type === 'otp' && i === 0 ? 'one-time-code' : type === 'list' ? 'list' : 'off'\"\n [attr.aria-expanded]=\"type === 'list' ? showSuggestion : 'off'\"\n [attr.inputmode]=\"type === 'otp' ? 'numeric' : null\" [attr.name]=\"type === 'otp' && i === 0 ? 'otp' : null\"\n (focusin)=\"focusinEmit($event)\" [attr.aria-owns]=\"type === 'list' ? ariaOwns : 'off'\"\n [attr.aria-haspopup]=\"type === 'list' ? ariaHasPopup : 'off'\" [readOnly]=\"mode !== 'edit' && !viewEdit\"\n [ngStyle]=\"{\n '--placeholder-font': mode === 'edit' ? placeholderFont || labelFont : '',\n '--placeholder-color': mode === 'edit' ? placeholderColor || '#9a9a9a' : '',\n '--placeholder-size': mode === 'edit' ? placeholderSize || inputValueSize : '',\n '--placeholder-weight': mode === 'edit' ? placeholderWeight || labelWeight : ''\n }\" (keydown.enter)=\"type === 'location' ? $event.preventDefault() : ''\"\n autocorrect=\"type === 'location' ? 'off' : ''\" autocapitalize=\"type === 'location' ? 'off' : ''\"\n spellcheck=\"type === 'location' ? 'off' : ''\" />\n }\n @else if(type === 'datetime'){\n <input #inputEl [id]=\"inputId\"\n [owlDateTimeTrigger]=\"type === 'datetime' ? dt : type === 'date' ? dt2 : type === 'time' ? dt3 : dt\"\n [owlDateTime]=\"type === 'datetime' ? dt : type === 'date' ? dt2 : type === 'time' ? dt3 : dt\"\n [attr.placeholder]=\"mode !== 'edit' ? '' : placeholder || type === 'datetime' ? 'DD/MM/YYYY HH:MM' : type === 'date' ? 'DD/MM/YYYY' : type === 'time' ? 'HH:MM' : 'DD/MM/YYYY HH:MM'\"\n [ngClass]=\"'custom-input'\" [formControl]=\"control\"\n [style.backgroundColor]=\"mode !== 'edit' ? '' : inputBgColor\"\n [style.color]=\"mode !== 'edit' ? '' : inputTextColor\" [style.border]=\"mode !== 'edit' ? 'none' : inputBorder\"\n [style.height]=\"inputHeight\" [style.width]=\"inputWidth\" [value]=\"value\" (input)=\" onInputChange($event)\"\n [style.font-size]=\"inputValueSize\" (blur)=\" blurEmit()\" (focusin)=\"focusinEmit($event)\"\n [readOnly]=\"mode !== 'edit' && !viewEdit\" [ngStyle]=\"{\n '--placeholder-font': mode === 'edit' ? placeholderFont || labelFont : '',\n '--placeholder-color': mode === 'edit' ? placeholderColor || '#9a9a9a' : '',\n '--placeholder-size': mode === 'edit' ? placeholderSize || inputValueSize : '',\n '--placeholder-weight': mode === 'edit' ? placeholderWeight || labelWeight : ''\n }\" style=\"\n width: 100%;\n padding: 10px;\n padding-left: 5px;\n border-radius: 5px;\n border: none !important;\n font-size: 14px;\" />\n <owl-date-time #dt></owl-date-time>\n <owl-date-time [pickerType]=\"'calendar'\" #dt2></owl-date-time>\n <owl-date-time [pickerType]=\"'timer'\" #dt3></owl-date-time>\n }\n <div *ngIf=\"mode === 'edit' && type === 'list'\" class=\"icon-container\">\n <ng-container *ngIf=\"isLoading; else searchIcon\">\n <!-- Minimal Dotted Loader -->\n <div class=\"dotted-loader\" aria-label=\"Loading\" role=\"status\">\n <span *ngFor=\"let dot of [].constructor(6); let i = index\" class=\"dot\" [style.--i]=\"i\"></span>\n </div>\n </ng-container>\n <ng-template #searchIcon>\n <!-- Inline search icon SVG -->\n <svg width=\"24\" height=\"24\" fill=\"none\" stroke=\"#434555\" stroke-opacity=\"0.65\" stroke-width=\"2\"\n xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <circle cx=\"11\" cy=\"11\" r=\"7\" />\n <path d=\"M20 20L17 17\" stroke-linecap=\"round\" />\n </svg>\n </ng-template>\n </div>\n \n <!-- Always Show Dropdown Icon -->\n <svg *ngIf=\"mode === 'edit' && type === 'dropdown'\" (mousedown)=\"toggle($event); $event.preventDefault()\"\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\">\n <path d=\"M9 22H15C20 22 22 20 22 15V9C22 4 20 2 15 2H9C4 2 2 4 2 9V15C2 20 4 22 9 22Z\" stroke=\"#292D32\"\n stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n <path d=\"M8.46997 10.64L12 14.16L15.53 10.64\" stroke=\"#292D32\" stroke-width=\"1.5\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg>\n <!-- Cancel Icon -->\n <svg *ngIf=\"value && mode === 'edit' && type === 'dropdown' \" (click)=\"clearEmit($event)\"\n class=\"icon cancel-icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\n fill=\"none\">\n <path d=\"M6 6L18 18M6 18L18 6\" stroke=\"#292D32\" stroke-width=\"2\" stroke-linecap=\"round\" />\n </svg>\n\n <img *ngIf=\"mode === 'edit' && inputIconRightSrc\" [src]=\"inputIconRightSrc\" class=\"icon right-icon\"\n [style.height]=\"svgHeight\" [style.width]=\"svgWidth\">\n <img *ngIf=\"mode === 'edit' && type === 'password'\" class=\"toggle-icon\" (click)=\"togglePasswordVisibility()\"\n [src]=\"!isPasswordVisible ? '/assets/images/icons/general/Hide-Password.svg' : '/assets/images/icons/general/Show-Password.svg'\" />\n <svg *ngIf=\"mode !== 'edit' && !viewEdit && !question.isReadOnly\" class=\"edit-icon\"\n (click)=\"viewEditClick(question)\" width=\"13\" height=\"14\" viewBox=\"0 0 13 14\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M1.99987 9.0017L4.39602 11.3979C4.50371 11.5055 4.66525 11.5055 4.77294 11.3979L10.7499 5.39401C10.8576 5.28631 10.8576 5.12477 10.7499 5.01708L8.38064 2.64785C8.27294 2.54016 8.11141 2.54016 8.00371 2.64785L1.99987 8.6517C1.89217 8.75939 1.89217 8.92093 1.99987 9.0017ZM9.1614 1.54401C9.05371 1.6517 9.05371 1.81324 9.1614 1.92093L11.5306 4.29016C11.6383 4.39785 11.7999 4.39785 11.9076 4.29016L12.5806 3.61708C13.0114 3.21324 13.0114 2.56708 12.5806 2.13631L11.3153 0.870928C10.8845 0.440159 10.2114 0.440159 9.78063 0.870928L9.1614 1.54401ZM0.00755862 12.9863C-0.0462875 13.2555 0.19602 13.4979 0.465251 13.444L3.39987 12.744C3.50756 12.7171 3.58833 12.6632 3.64217 12.6094L3.69602 12.5555C3.74987 12.5017 3.77679 12.3132 3.6691 12.2055L1.24602 9.78247C1.13833 9.67478 0.949866 9.7017 0.89602 9.75554L0.842174 9.80939C0.761405 9.89016 0.734482 9.97093 0.707559 10.0517L0.00755862 12.9863Z\"\n fill=\"#B0ADAB\" />\n </svg>\n\n <div *ngIf=\"viewEdit\" (mouseenter)=\"isSaveHovered = true\" (mouseleave)=\"isSaveHovered = false\" style=\"padding-right: 5px;\">\n <svg *ngIf=\"!isSaveHovered\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M5.9502 0.5C8.96006 0.500106 11.4004 2.94031 11.4004 5.9502C11.4003 8.95999 8.95999 11.4003 5.9502 11.4004C2.94031 11.4004 0.500106 8.96006 0.5 5.9502C0.5 2.94024 2.94024 0.5 5.9502 0.5Z\"\n stroke=\"#837F8E\" />\n <path\n d=\"M8.88111 3.84583C8.83269 3.7972 8.77513 3.7586 8.71176 3.73227C8.64838 3.70594 8.58043 3.69238 8.5118 3.69238C8.44317 3.69238 8.37521 3.70594 8.31184 3.73227C8.24846 3.7586 8.19091 3.7972 8.14249 3.84583L4.8269 7.16347L3.35253 5.6891C3.30403 5.6406 3.24646 5.60213 3.18309 5.57588C3.11972 5.54964 3.05181 5.53613 2.98322 5.53613C2.91463 5.53613 2.84672 5.54964 2.78335 5.57588C2.71999 5.60213 2.66241 5.6406 2.61391 5.6891C2.56541 5.7376 2.52694 5.79518 2.50069 5.85854C2.47445 5.92191 2.46094 5.98982 2.46094 6.05841C2.46094 6.127 2.47445 6.19491 2.50069 6.25828C2.52694 6.32165 2.56541 6.37922 2.61391 6.42772L4.45677 8.27058C4.50519 8.31922 4.56274 8.35781 4.62612 8.38414C4.6895 8.41047 4.75745 8.42403 4.82608 8.42403C4.89471 8.42403 4.96266 8.41047 5.02604 8.38414C5.08942 8.35781 5.14697 8.31922 5.19539 8.27058L8.88111 4.58445C8.92974 4.53603 8.96834 4.47848 8.99467 4.4151C9.021 4.35173 9.03456 4.28377 9.03456 4.21514C9.03456 4.14651 9.021 4.07856 8.99467 4.01518C8.96834 3.9518 8.92974 3.89425 8.88111 3.84583Z\"\n fill=\"#837F8E\" />\n </svg>\n\n <svg *ngIf=\"isSaveHovered\" (click)=\"saveChanges()\" width=\"12\" height=\"13\" viewBox=\"0 0 12 13\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M5.95 12.8004C9.23609 12.8004 11.9 10.1365 11.9 6.85039C11.9 3.5643 9.23609 0.900391 5.95 0.900391C2.66391 0.900391 0 3.5643 0 6.85039C0 10.1365 2.66391 12.8004 5.95 12.8004Z\"\n fill=\"#259566\" />\n <path\n d=\"M8.88111 4.74622C8.83269 4.69759 8.77513 4.65899 8.71176 4.63266C8.64838 4.60633 8.58043 4.59277 8.5118 4.59277C8.44317 4.59277 8.37521 4.60633 8.31184 4.63266C8.24846 4.65899 8.19091 4.69759 8.14249 4.74622L4.8269 8.06386L3.35253 6.58949C3.30403 6.54099 3.24646 6.50252 3.18309 6.47627C3.11972 6.45003 3.05181 6.43652 2.98322 6.43652C2.91463 6.43652 2.84672 6.45003 2.78335 6.47627C2.71999 6.50252 2.66241 6.54099 2.61391 6.58949C2.56541 6.63799 2.52694 6.69557 2.50069 6.75893C2.47445 6.8223 2.46094 6.89022 2.46094 6.9588C2.46094 7.02739 2.47445 7.09531 2.50069 7.15867C2.52694 7.22204 2.56541 7.27961 2.61391 7.32811L4.45677 9.17097C4.50519 9.21961 4.56274 9.2582 4.62612 9.28453C4.6895 9.31086 4.75745 9.32442 4.82608 9.32442C4.89471 9.32442 4.96266 9.31086 5.02604 9.28453C5.08942 9.2582 5.14697 9.21961 5.19539 9.17097L8.88111 5.48484C8.92974 5.43642 8.96834 5.37887 8.99467 5.31549C9.021 5.25212 9.03456 5.18416 9.03456 5.11553C9.03456 5.0469 9.021 4.97895 8.99467 4.91557C8.96834 4.8522 8.92974 4.79465 8.88111 4.74622Z\"\n fill=\"white\" />\n </svg>\n </div>\n <div *ngIf=\"viewEdit\" (mouseenter)=\"isDiscardHovered = true\" (mouseleave)=\"isDiscardHovered = false\">\n <svg *ngIf=\"!isDiscardHovered\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.05555 4.00883L5.94 5.12438L4.82445 4.00883C4.57861 3.76299 4.18191 3.76299 3.93607 4.00883C3.69023 4.25467 3.69023 4.65137 3.93607 4.89721L5.05162 6.01276L3.93607 7.12831C3.69023 7.37415 3.69023 7.77085 3.93607 8.01669C4.18191 8.26253 4.57861 8.26253 4.82445 8.01669L5.94 6.90114L7.05555 8.01669C7.30139 8.26253 7.69809 8.26253 7.94393 8.01669C8.18977 7.77085 8.18977 7.37415 7.94393 7.12831L6.82838 6.01276L7.94393 4.89721C8.18977 4.65137 8.18977 4.25467 7.94393 4.00883C7.69809 3.77285 7.30021 3.77285 7.05555 4.00883ZM5.94 0.0820312C2.70017 0.0820312 0.0808594 2.70134 0.0808594 5.94118C0.0808594 9.18101 2.70017 11.8003 5.94 11.8003C9.17983 11.8003 11.7991 9.18101 11.7991 5.94118C11.7991 2.70134 9.17983 0.0820312 5.94 0.0820312ZM5.94 10.6367C3.35426 10.6367 1.24422 8.52667 1.24422 5.94118C1.24422 3.35553 3.35426 1.24549 5.94 1.24549C8.52558 1.24549 10.6356 3.35553 10.6356 5.94118C10.6356 8.52667 8.52558 10.6367 5.94 10.6367Z\"\n fill=\"#B0ADAB\" />\n </svg>\n\n <svg *ngIf=\"isDiscardHovered\" (click)=\"discardChanges()\" width=\"12\" height=\"13\" viewBox=\"0 0 12 13\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.05555 4.97471L5.94 6.09026L4.82445 4.97471C4.57861 4.72887 4.18191 4.72887 3.93607 4.97471C3.69023 5.22055 3.69023 5.61725 3.93607 5.86309L5.05162 6.97864L3.93607 8.09419C3.69023 8.34003 3.69023 8.73673 3.93607 8.98257C4.18191 9.22841 4.57861 9.22841 4.82445 8.98257L5.94 7.86702L7.05555 8.98257C7.30139 9.22841 7.69809 9.22841 7.94393 8.98257C8.18977 8.73673 8.18977 8.34003 7.94393 8.09419L6.82838 6.97864L7.94393 5.86309C8.18977 5.61725 8.18977 5.22055 7.94393 4.97471C7.69809 4.73873 7.30021 4.73873 7.05555 4.97471ZM5.94 1.06062C2.70017 1.06062 0.0808594 3.67993 0.0808594 6.91977C0.0808594 10.1596 2.70017 12.7789 5.94 12.7789C9.17983 12.7789 11.7991 10.1596 11.7991 6.91977C11.7991 3.67993 9.17983 1.06062 5.94 1.06062ZM5.94 11.6153C3.35426 11.6153 1.24422 9.50525 1.24422 6.91977C1.24422 4.33412 3.35426 2.22408 5.94 2.22408C8.52558 2.22408 10.6356 4.33412 10.6356 6.91977C10.6356 9.50525 8.52558 11.6153 5.94 11.6153Z\"\n fill=\"#FF3636\" />\n </svg>\n </div>\n </div>\n <label class=\"checkboxLab\" *ngIf=\"label && type === 'checkbox' && showLabel\" [style.font-weight]=\"labelWeight\"\n [style.font-size]=\"labelSize\" [style.color]=\"labelColor || '#9a9a9a'\"\n style=\"margin-bottom: 0; padding-left: 10px; padding-right: 10px;\"> {{ label }}\n <div *ngIf=\"label && type === 'checkbox' && required && showLabel\" style=\"color: red;\">*</div>\n </label>\n </div>\n <quill-editor *ngIf=\"mode === 'edit' && type === 'richtext'\" [(ngModel)]=\"value\" [placeholder]=\"placeholder\"\n [modules]=\"mode === 'edit' ? quillConfiguration : emptyQuillModules\" [readOnly]=\"mode !== 'edit' && !viewEdit\"\n (focusout)=\"onEditorFocusOut()\" [class.error]=\"control.invalid && (control.touched || control.dirty)\">\n </quill-editor>\n <!-- View mode -->\n <div *ngIf=\"mode !== 'edit' && type === 'richtext'\" class=\"quill-view-content\" [innerHTML]=\"value\">\n </div>\n <textarea *ngIf=\"type === 'textarea'\" [id]=\"inputId\" [rows]=\"rows\"\n [attr.placeholder]=\"mode !== 'edit' ? '' : placeholder\" [ngClass]=\"'custom-input'\" [formControl]=\"control\"\n [style.backgroundColor]=\"mode !== 'edit' ? '' : inputBgColor\"\n [style.color]=\"mode !== 'edit' ? '' : inputTextColor\" [style.border]=\"mode !== 'edit' ? 'none' : inputBorder\"\n [style.height]=\"inputHeight\" [style.width]=\"inputWidth\" [value]=\"value\" (input)=\" onInputChange($event)\"\n [style.font-size]=\"inputValueSize\" (blur)=\" blurEmit()\" (focusin)=\"focusinEmit($event)\"\n [readOnly]=\"mode !== 'edit' && !viewEdit\" [ngStyle]=\"{\n '--placeholder-font': mode === 'edit' ? placeholderFont || labelFont : '',\n '--placeholder-color': mode === 'edit' ? placeholderColor || '#9a9a9a' : '',\n '--placeholder-size': mode === 'edit' ? placeholderSize || inputValueSize : '',\n '--placeholder-weight': mode === 'edit' ? placeholderWeight || labelWeight : ''\n }\" style=\"\n width: 100%;\n padding: 10px;\n padding-left: 5px;\n border-radius: 5px;\n border: none !important;\n font-size: 14px;\"></textarea>\n <svg *ngIf=\"mode !== 'edit' && !viewEdit && (type === 'richtext' || type === 'textarea') && !question.isReadOnly\"\n class=\"edit-icon\" (click)=\"viewEditClick(question)\" width=\"13\" height=\"14\" viewBox=\"0 0 13 14\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M1.99987 9.0017L4.39602 11.3979C4.50371 11.5055 4.66525 11.5055 4.77294 11.3979L10.7499 5.39401C10.8576 5.28631 10.8576 5.12477 10.7499 5.01708L8.38064 2.64785C8.27294 2.54016 8.11141 2.54016 8.00371 2.64785L1.99987 8.6517C1.89217 8.75939 1.89217 8.92093 1.99987 9.0017ZM9.1614 1.54401C9.05371 1.6517 9.05371 1.81324 9.1614 1.92093L11.5306 4.29016C11.6383 4.39785 11.7999 4.39785 11.9076 4.29016L12.5806 3.61708C13.0114 3.21324 13.0114 2.56708 12.5806 2.13631L11.3153 0.870928C10.8845 0.440159 10.2114 0.440159 9.78063 0.870928L9.1614 1.54401ZM0.00755862 12.9863C-0.0462875 13.2555 0.19602 13.4979 0.465251 13.444L3.39987 12.744C3.50756 12.7171 3.58833 12.6632 3.64217 12.6094L3.69602 12.5555C3.74987 12.5017 3.77679 12.3132 3.6691 12.2055L1.24602 9.78247C1.13833 9.67478 0.949866 9.7017 0.89602 9.75554L0.842174 9.80939C0.761405 9.89016 0.734482 9.97093 0.707559 10.0517L0.00755862 12.9863Z\"\n fill=\"#B0ADAB\" />\n </svg>\n <!-- SKS23APR25 Use control.invalid to show error on submit click -->\n <div *ngIf=\"type != 'checkbox' && control.invalid && (control.touched || control.dirty)\" style=\"height: 20px;\">\n <div class=\"error-message\">\n {{ getErrorMessage() }}\n </div>\n </div>\n </div>\n</div>", styles: ["label{font-size:14px;margin-bottom:10px;color:color-mix(in srgb,black,rgb(0,0,0) 80%)}.toggle-icon{width:20px;height:20px;cursor:pointer;fill:#666}.error-message{color:red;font-size:12px}input[type=text].custom-input,input[type=password].custom-input,input[type=number].custom-input,input[type=email].custom-input,input[type=date].custom-input,input[type=tel].custom-input,input[type=list].custom-input,input[type=dropdown].custom-input,input[type=location].custom-input{width:100%;padding:10px 10px 10px 5px;border-radius:5px;border:none;font-size:14px}.custom-input:-webkit-autofill,.custom-input:-webkit-autofill:hover,.custom-input:-webkit-autofill:focus,.custom-input:-webkit-autofill:active{transition:background-color 5000s ease-in-out 0s!important;-webkit-text-fill-color:inherit!important}.phone-input-container{display:flex;align-items:center;position:relative}.country-selector{display:flex;align-items:center;cursor:pointer;padding-right:12px;border-right:#ccc;margin-right:12px}.flag{margin-right:8px;font-size:20px}.dial-code{margin-right:8px;font-weight:500}.country-dropdown{position:absolute;top:100%;left:0;width:300px;background:#fff;border:1px solid #ccc;border-radius:4px;box-shadow:0 2px 4px #0000001a;z-index:1000;margin-top:4px}.search-box{padding:8px;border-bottom:1px solid #ccc}.search-box input{width:100%;padding:8px;border:1px solid #ccc;border-radius:4px}.country-list{max-height:200px;overflow-y:auto}.country-item{display:flex;align-items:center;padding:8px 12px;cursor:pointer}.country-item:hover{background-color:color-mix(in srgb,#fff,rgba(0,0,0,0) 30%)}.country-item .name{flex:1;margin:0 12px}.fcOtp{width:40px;height:40px;text-align:center;font-size:18px;border:1px solid #ccc;border-radius:5px;margin:5px;outline:none;transition:border-color .2s ease-in-out}input:focus{outline:none;border-color:transparent;box-shadow:none}.input-container{display:flex;align-items:center;width:100%;border-radius:5px;border:1px solid #ccc;padding-left:5px;padding-right:10px}.input-container .icon-container{right:15px;pointer-events:none;width:22px;height:22px;display:flex;align-items:center;justify-content:center}.input-container.invalid{border:1px solid #DC3545!important;border-radius:5px}.checkbox-padding{padding:0!important;width:auto!important;border:none!important}.view-mode{font-size:14px;color:#333}@media print{.view-mode{font-size:12pt;color:#000}}input::placeholder{font-family:var(--placeholder-font);color:var(--placeholder-color);font-size:var(--placeholder-size);font-weight:var(--placeholder-weight)}.dotted-loader{position:relative;width:10px;height:10px}.dotted-loader .dot{--i: 0;position:absolute;top:50%;left:50%;width:3px;height:3px;margin:-2px 0 0 -2px;border-radius:50%;background-color:#696969;transform:rotate(calc(var(--i) * 60deg)) translate(8px) rotate(calc(var(--i) * -60deg));animation:spinDot 1s linear infinite;animation-delay:calc(var(--i) * .1s)}@keyframes spinDot{0%{opacity:.3;transform:rotate(calc(var(--i) * 60deg)) translate(8px) rotate(calc(var(--i) * -60deg)) scale(.9)}50%{opacity:1;transform:rotate(calc(var(--i) * 60deg)) translate(8px) rotate(calc(var(--i) * -60deg)) scale(1.3)}to{opacity:.3;transform:rotate(calc(var(--i) * 60deg)) translate(8px) rotate(calc(var(--i) * -60deg)) scale(.9)}}input:disabled{cursor:default;background-color:light-dark(rgba(239,239,239,0),rgba(59,59,59,0))!important;color:light-dark(rgb(84,84,84),rgb(170,170,170))!important}:is() .ql-editor img{cursor:pointer}:is() .image-resizer{display:block!important;visibility:visible!important}:is() .ql-editor .image-resizer{border:1px dashed #000;position:absolute}:is() .ql-editor .image-resizer .handle{background-color:#000;border:1px solid #fff;border-radius:50%;height:12px;width:12px;position:absolute}quill-editor{width:100%}.quill-view-content{border:none;padding:0;font-size:14px;line-height:1.6;color:#333}.edit-icon{display:none;cursor:pointer}.hover-wrapper:hover .edit-icon{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: OwlDateTimeModule }, { kind: "directive", type: i5.OwlDateTimeTriggerDirective, selector: "[owlDateTimeTrigger]", inputs: ["owlDateTimeTrigger", "disabled"] }, { kind: "directive", type: i5.OwlDateTimeInputDirective, selector: "input[owlDateTime]", inputs: ["required", "owlDateTime", "owlDateTimeFilter", "_disabled", "min", "max", "selectMode", "rangeSeparator", "value", "values"], outputs: ["dateTimeChange", "dateTimeInput"], exportAs: ["owlDateTimeInput"] }, { kind: "component", type: i5.OwlDateTimeComponent, selector: "owl-date-time", inputs: ["backdropClass", "panelClass", "startAt", "endAt", "pickerType", "pickerMode", "disabled", "opened", "scrollStrategy"], outputs: ["afterPickerClosed", "beforePickerOpen", "afterPickerOpen", "yearSelected", "monthSelected", "dateSelected"], exportAs: ["owlDateTime"] }, { kind: "ngmodule", type: OwlNativeDateTimeModule }, { kind: "component", type: QuillEditorComponent, selector: "quill-editor" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2684
+ }
2685
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NxtInput, decorators: [{
2686
+ type: Component,
2687
+ args: [{ standalone: true, imports: [CommonModule, ReactiveFormsModule, OwlDateTimeModule, OwlNativeDateTimeModule, QuillEditorComponent, FormsModule], selector: 'nxt-input', providers: [
2688
+ {
2689
+ provide: NG_VALUE_ACCESSOR,
2690
+ useExisting: forwardRef(() => NxtInput),
2691
+ multi: true
2692
+ },
2693
+ {
2694
+ provide: NG_VALIDATORS,
2695
+ useExisting: forwardRef(() => NxtInput),
2696
+ multi: true,
2697
+ },
2698
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- SKS31JAN25 -->\n<div class=\"hover-wrapper input-wrapper\" (document:click)=\"closeDropdown($event)\">\n <div>\n <div *ngIf=\"type === 'label' ? placeholder : label && type != 'checkbox' && showLabel\" [ngStyle]=\"{\n 'padding-top': type === 'label' ? '10px' : '',\n 'padding-bottom': type === 'label' ? '10px' : ''\n }\" [style.font-weight]=\"labelWeight\" [style.font-size]=\"labelSize || type === 'label' ? '16px' : '14px'\"\n [style.color]=\"labelColor || type === 'label' ? 'black' : '#9a9a9a'\" style=\"display: flex; gap: 5px;\"> {{ type ===\n 'label' ? placeholder : label\n }}\n <div *ngIf=\"label && type != 'checkbox' && required && showLabel && mode === 'edit'\" style=\"color: red;\">*</div>\n </div>\n <div *ngIf=\"type !== 'label' && type !== 'richtext' && type !== 'textarea'\" style=\"display: flex;\">\n <div class=\"input-container\" [ngClass]=\"{'checkbox-padding': type === 'checkbox' || type === 'otp'}\"\n [style.backgroundColor]=\"mode === 'edit' ? inputBgColor : ''\"\n [class.invalid]=\"control.invalid && control.touched\"\n [style.border]=\"mode === 'edit' ? inputBorder === 'none' ? ('1px solid ' + inputBgColor) : inputBorder : 'none'\">\n <img *ngIf=\"inputIconLeftSrc && mode === 'edit'\" [src]=\"inputIconLeftSrc\" alt=\"icon\" class=\"icon left-icon\"\n [style.height]=\"svgHeight\" [style.width]=\"svgWidth\" />\n <!-- SKS28FEB25 mobile number input -->\n <div class=\"phone-input-container\">\n <div *ngIf=\"type === 'tel'\" class=\"country-selector\" style=\"padding-left: 10px;\"\n (click)=\"toggleCountryDropdown()\">\n <!-- <span class=\"flag\">{{ selectedCountry.flag }}</span> -->\n <span class=\"dial-code\" [style.font-size]=\"inputValueSize\">{{ selectedCountry.dial_code }}</span>\n <svg class=\"arrow\" width=\"9\" height=\"6\" viewBox=\"0 0 9 6\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M0.684136 0.767477C0.922999 0.5378 1.30282 0.545248 1.5325 0.784111L4.5 3.93431L7.4675 0.784111C7.69718 0.545248 8.077 0.5378 8.31587 0.767477C8.55473 0.997153 8.56218 1.37698 8.3325 1.61584L4.9325 5.21584C4.81938 5.33349 4.66321 5.39998 4.5 5.39998C4.33679 5.39998 4.18062 5.33349 4.0675 5.21584L0.667501 1.61584C0.437825 1.37698 0.445272 0.997153 0.684136 0.767477Z\"\n fill=\"#626262\" />\n </svg>\n </div>\n <div *ngIf=\"type === 'tel' && showCountryDropdown\" class=\"country-dropdown\">\n <div class=\"search-box\">\n <input type=\"text\" [readOnly]=\"mode !== 'edit'\" placeholder=\"Search country...\" [value]=\"countrySearch\"\n (input)=\"filterCountries($event)\">\n </div>\n <div class=\"country-list\">\n <div *ngFor=\"let country of filteredCountries\" class=\"country-item\" (click)=\"selectCountry(country)\">\n <span class=\"flag\">{{ country.flag }}</span>\n <span class=\"name\">{{ country.name }}</span>\n <span class=\"dial-code\">{{ country.dial_code }}</span>\n </div>\n </div>\n </div>\n </div>\n @if(type !== 'datetime'){\n <input *ngFor=\"let input of inputList; let i = index\" #inputEl #inputRef [id]=\"inputId\"\n [type]=\"isPasswordVisible ? 'text' : type === 'otp' || type === 'dropdown' ? 'text' : type\"\n [attr.placeholder]=\"type === 'otp' || mode !== 'edit' ? '' : placeholder || (type === 'tel' ? removeDialCode(selectedCountry.placeholder) : label)\"\n [ngClass]=\"type === 'otp' ? 'fcOtp' : 'custom-input'\" [formControl]=\"type === 'otp' ? $any(input) : control\"\n [style.backgroundColor]=\"type === 'otp'|| mode !== 'edit' ? '' : inputBgColor\"\n [style.color]=\"type === 'otp' || mode !== 'edit' ? '' : inputTextColor\"\n [style.border]=\"type === 'otp' || mode !== 'edit' ? '' : inputBorder\"\n [style.height]=\"type === 'otp' ? '' : inputHeight\" [style.width]=\"type === 'otp' ? '' : inputWidth\"\n [value]=\"type === 'tel' ? rawInputVal : value\"\n (input)=\"type === 'otp' ? handleInput() : onInputChange($event)\"\n [style.font-size]=\"type === 'otp' ? '' : inputValueSize\" (focus)=\"type === 'otp' ? handleFocus($event) : null\"\n (blur)=\"type === 'otp' ? onTouched() : blurEmit()\"\n (keypress)=\"type === 'otp' ? handleKeyPress($event, i) : null\"\n (keydown)=\"type === 'otp' ? handleKeyDown($event, i) : null\"\n (paste)=\"type === 'otp' ? handlePaste($event, i) : null\" inputmode=\"type === 'otp' ? numeric : null\"\n [attr.autocomplete]=\"type === 'otp' && i === 0 ? 'one-time-code' : type === 'list' ? 'list' : 'off'\"\n [attr.aria-expanded]=\"type === 'list' ? showSuggestion : 'off'\"\n [attr.inputmode]=\"type === 'otp' ? 'numeric' : null\" [attr.name]=\"type === 'otp' && i === 0 ? 'otp' : null\"\n (focusin)=\"focusinEmit($event)\" [attr.aria-owns]=\"type === 'list' ? ariaOwns : 'off'\"\n [attr.aria-haspopup]=\"type === 'list' ? ariaHasPopup : 'off'\" [readOnly]=\"mode !== 'edit' && !viewEdit\"\n [ngStyle]=\"{\n '--placeholder-font': mode === 'edit' ? placeholderFont || labelFont : '',\n '--placeholder-color': mode === 'edit' ? placeholderColor || '#9a9a9a' : '',\n '--placeholder-size': mode === 'edit' ? placeholderSize || inputValueSize : '',\n '--placeholder-weight': mode === 'edit' ? placeholderWeight || labelWeight : ''\n }\" (keydown.enter)=\"type === 'location' ? $event.preventDefault() : ''\"\n autocorrect=\"type === 'location' ? 'off' : ''\" autocapitalize=\"type === 'location' ? 'off' : ''\"\n spellcheck=\"type === 'location' ? 'off' : ''\" />\n }\n @else if(type === 'datetime'){\n <input #inputEl [id]=\"inputId\"\n [owlDateTimeTrigger]=\"type === 'datetime' ? dt : type === 'date' ? dt2 : type === 'time' ? dt3 : dt\"\n [owlDateTime]=\"type === 'datetime' ? dt : type === 'date' ? dt2 : type === 'time' ? dt3 : dt\"\n [attr.placeholder]=\"mode !== 'edit' ? '' : placeholder || type === 'datetime' ? 'DD/MM/YYYY HH:MM' : type === 'date' ? 'DD/MM/YYYY' : type === 'time' ? 'HH:MM' : 'DD/MM/YYYY HH:MM'\"\n [ngClass]=\"'custom-input'\" [formControl]=\"control\"\n [style.backgroundColor]=\"mode !== 'edit' ? '' : inputBgColor\"\n [style.color]=\"mode !== 'edit' ? '' : inputTextColor\" [style.border]=\"mode !== 'edit' ? 'none' : inputBorder\"\n [style.height]=\"inputHeight\" [style.width]=\"inputWidth\" [value]=\"value\" (input)=\" onInputChange($event)\"\n [style.font-size]=\"inputValueSize\" (blur)=\" blurEmit()\" (focusin)=\"focusinEmit($event)\"\n [readOnly]=\"mode !== 'edit' && !viewEdit\" [ngStyle]=\"{\n '--placeholder-font': mode === 'edit' ? placeholderFont || labelFont : '',\n '--placeholder-color': mode === 'edit' ? placeholderColor || '#9a9a9a' : '',\n '--placeholder-size': mode === 'edit' ? placeholderSize || inputValueSize : '',\n '--placeholder-weight': mode === 'edit' ? placeholderWeight || labelWeight : ''\n }\" style=\"\n width: 100%;\n padding: 10px;\n padding-left: 5px;\n border-radius: 5px;\n border: none !important;\n font-size: 14px;\" />\n <owl-date-time #dt></owl-date-time>\n <owl-date-time [pickerType]=\"'calendar'\" #dt2></owl-date-time>\n <owl-date-time [pickerType]=\"'timer'\" #dt3></owl-date-time>\n }\n <div *ngIf=\"mode === 'edit' && type === 'list'\" class=\"icon-container\">\n <ng-container *ngIf=\"isLoading; else searchIcon\">\n <!-- Minimal Dotted Loader -->\n <div class=\"dotted-loader\" aria-label=\"Loading\" role=\"status\">\n <span *ngFor=\"let dot of [].constructor(6); let i = index\" class=\"dot\" [style.--i]=\"i\"></span>\n </div>\n </ng-container>\n <ng-template #searchIcon>\n <!-- Inline search icon SVG -->\n <svg width=\"24\" height=\"24\" fill=\"none\" stroke=\"#434555\" stroke-opacity=\"0.65\" stroke-width=\"2\"\n xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <circle cx=\"11\" cy=\"11\" r=\"7\" />\n <path d=\"M20 20L17 17\" stroke-linecap=\"round\" />\n </svg>\n </ng-template>\n </div>\n \n <!-- Always Show Dropdown Icon -->\n <svg *ngIf=\"mode === 'edit' && type === 'dropdown'\" (mousedown)=\"toggle($event); $event.preventDefault()\"\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\">\n <path d=\"M9 22H15C20 22 22 20 22 15V9C22 4 20 2 15 2H9C4 2 2 4 2 9V15C2 20 4 22 9 22Z\" stroke=\"#292D32\"\n stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n <path d=\"M8.46997 10.64L12 14.16L15.53 10.64\" stroke=\"#292D32\" stroke-width=\"1.5\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg>\n <!-- Cancel Icon -->\n <svg *ngIf=\"value && mode === 'edit' && type === 'dropdown' \" (click)=\"clearEmit($event)\"\n class=\"icon cancel-icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\n fill=\"none\">\n <path d=\"M6 6L18 18M6 18L18 6\" stroke=\"#292D32\" stroke-width=\"2\" stroke-linecap=\"round\" />\n </svg>\n\n <img *ngIf=\"mode === 'edit' && inputIconRightSrc\" [src]=\"inputIconRightSrc\" class=\"icon right-icon\"\n [style.height]=\"svgHeight\" [style.width]=\"svgWidth\">\n <img *ngIf=\"mode === 'edit' && type === 'password'\" class=\"toggle-icon\" (click)=\"togglePasswordVisibility()\"\n [src]=\"!isPasswordVisible ? '/assets/images/icons/general/Hide-Password.svg' : '/assets/images/icons/general/Show-Password.svg'\" />\n <svg *ngIf=\"mode !== 'edit' && !viewEdit && !question.isReadOnly\" class=\"edit-icon\"\n (click)=\"viewEditClick(question)\" width=\"13\" height=\"14\" viewBox=\"0 0 13 14\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M1.99987 9.0017L4.39602 11.3979C4.50371 11.5055 4.66525 11.5055 4.77294 11.3979L10.7499 5.39401C10.8576 5.28631 10.8576 5.12477 10.7499 5.01708L8.38064 2.64785C8.27294 2.54016 8.11141 2.54016 8.00371 2.64785L1.99987 8.6517C1.89217 8.75939 1.89217 8.92093 1.99987 9.0017ZM9.1614 1.54401C9.05371 1.6517 9.05371 1.81324 9.1614 1.92093L11.5306 4.29016C11.6383 4.39785 11.7999 4.39785 11.9076 4.29016L12.5806 3.61708C13.0114 3.21324 13.0114 2.56708 12.5806 2.13631L11.3153 0.870928C10.8845 0.440159 10.2114 0.440159 9.78063 0.870928L9.1614 1.54401ZM0.00755862 12.9863C-0.0462875 13.2555 0.19602 13.4979 0.465251 13.444L3.39987 12.744C3.50756 12.7171 3.58833 12.6632 3.64217 12.6094L3.69602 12.5555C3.74987 12.5017 3.77679 12.3132 3.6691 12.2055L1.24602 9.78247C1.13833 9.67478 0.949866 9.7017 0.89602 9.75554L0.842174 9.80939C0.761405 9.89016 0.734482 9.97093 0.707559 10.0517L0.00755862 12.9863Z\"\n fill=\"#B0ADAB\" />\n </svg>\n\n <div *ngIf=\"viewEdit\" (mouseenter)=\"isSaveHovered = true\" (mouseleave)=\"isSaveHovered = false\" style=\"padding-right: 5px;\">\n <svg *ngIf=\"!isSaveHovered\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M5.9502 0.5C8.96006 0.500106 11.4004 2.94031 11.4004 5.9502C11.4003 8.95999 8.95999 11.4003 5.9502 11.4004C2.94031 11.4004 0.500106 8.96006 0.5 5.9502C0.5 2.94024 2.94024 0.5 5.9502 0.5Z\"\n stroke=\"#837F8E\" />\n <path\n d=\"M8.88111 3.84583C8.83269 3.7972 8.77513 3.7586 8.71176 3.73227C8.64838 3.70594 8.58043 3.69238 8.5118 3.69238C8.44317 3.69238 8.37521 3.70594 8.31184 3.73227C8.24846 3.7586 8.19091 3.7972 8.14249 3.84583L4.8269 7.16347L3.35253 5.6891C3.30403 5.6406 3.24646 5.60213 3.18309 5.57588C3.11972 5.54964 3.05181 5.53613 2.98322 5.53613C2.91463 5.53613 2.84672 5.54964 2.78335 5.57588C2.71999 5.60213 2.66241 5.6406 2.61391 5.6891C2.56541 5.7376 2.52694 5.79518 2.50069 5.85854C2.47445 5.92191 2.46094 5.98982 2.46094 6.05841C2.46094 6.127 2.47445 6.19491 2.50069 6.25828C2.52694 6.32165 2.56541 6.37922 2.61391 6.42772L4.45677 8.27058C4.50519 8.31922 4.56274 8.35781 4.62612 8.38414C4.6895 8.41047 4.75745 8.42403 4.82608 8.42403C4.89471 8.42403 4.96266 8.41047 5.02604 8.38414C5.08942 8.35781 5.14697 8.31922 5.19539 8.27058L8.88111 4.58445C8.92974 4.53603 8.96834 4.47848 8.99467 4.4151C9.021 4.35173 9.03456 4.28377 9.03456 4.21514C9.03456 4.14651 9.021 4.07856 8.99467 4.01518C8.96834 3.9518 8.92974 3.89425 8.88111 3.84583Z\"\n fill=\"#837F8E\" />\n </svg>\n\n <svg *ngIf=\"isSaveHovered\" (click)=\"saveChanges()\" width=\"12\" height=\"13\" viewBox=\"0 0 12 13\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M5.95 12.8004C9.23609 12.8004 11.9 10.1365 11.9 6.85039C11.9 3.5643 9.23609 0.900391 5.95 0.900391C2.66391 0.900391 0 3.5643 0 6.85039C0 10.1365 2.66391 12.8004 5.95 12.8004Z\"\n fill=\"#259566\" />\n <path\n d=\"M8.88111 4.74622C8.83269 4.69759 8.77513 4.65899 8.71176 4.63266C8.64838 4.60633 8.58043 4.59277 8.5118 4.59277C8.44317 4.59277 8.37521 4.60633 8.31184 4.63266C8.24846 4.65899 8.19091 4.69759 8.14249 4.74622L4.8269 8.06386L3.35253 6.58949C3.30403 6.54099 3.24646 6.50252 3.18309 6.47627C3.11972 6.45003 3.05181 6.43652 2.98322 6.43652C2.91463 6.43652 2.84672 6.45003 2.78335 6.47627C2.71999 6.50252 2.66241 6.54099 2.61391 6.58949C2.56541 6.63799 2.52694 6.69557 2.50069 6.75893C2.47445 6.8223 2.46094 6.89022 2.46094 6.9588C2.46094 7.02739 2.47445 7.09531 2.50069 7.15867C2.52694 7.22204 2.56541 7.27961 2.61391 7.32811L4.45677 9.17097C4.50519 9.21961 4.56274 9.2582 4.62612 9.28453C4.6895 9.31086 4.75745 9.32442 4.82608 9.32442C4.89471 9.32442 4.96266 9.31086 5.02604 9.28453C5.08942 9.2582 5.14697 9.21961 5.19539 9.17097L8.88111 5.48484C8.92974 5.43642 8.96834 5.37887 8.99467 5.31549C9.021 5.25212 9.03456 5.18416 9.03456 5.11553C9.03456 5.0469 9.021 4.97895 8.99467 4.91557C8.96834 4.8522 8.92974 4.79465 8.88111 4.74622Z\"\n fill=\"white\" />\n </svg>\n </div>\n <div *ngIf=\"viewEdit\" (mouseenter)=\"isDiscardHovered = true\" (mouseleave)=\"isDiscardHovered = false\">\n <svg *ngIf=\"!isDiscardHovered\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.05555 4.00883L5.94 5.12438L4.82445 4.00883C4.57861 3.76299 4.18191 3.76299 3.93607 4.00883C3.69023 4.25467 3.69023 4.65137 3.93607 4.89721L5.05162 6.01276L3.93607 7.12831C3.69023 7.37415 3.69023 7.77085 3.93607 8.01669C4.18191 8.26253 4.57861 8.26253 4.82445 8.01669L5.94 6.90114L7.05555 8.01669C7.30139 8.26253 7.69809 8.26253 7.94393 8.01669C8.18977 7.77085 8.18977 7.37415 7.94393 7.12831L6.82838 6.01276L7.94393 4.89721C8.18977 4.65137 8.18977 4.25467 7.94393 4.00883C7.69809 3.77285 7.30021 3.77285 7.05555 4.00883ZM5.94 0.0820312C2.70017 0.0820312 0.0808594 2.70134 0.0808594 5.94118C0.0808594 9.18101 2.70017 11.8003 5.94 11.8003C9.17983 11.8003 11.7991 9.18101 11.7991 5.94118C11.7991 2.70134 9.17983 0.0820312 5.94 0.0820312ZM5.94 10.6367C3.35426 10.6367 1.24422 8.52667 1.24422 5.94118C1.24422 3.35553 3.35426 1.24549 5.94 1.24549C8.52558 1.24549 10.6356 3.35553 10.6356 5.94118C10.6356 8.52667 8.52558 10.6367 5.94 10.6367Z\"\n fill=\"#B0ADAB\" />\n </svg>\n\n <svg *ngIf=\"isDiscardHovered\" (click)=\"discardChanges()\" width=\"12\" height=\"13\" viewBox=\"0 0 12 13\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.05555 4.97471L5.94 6.09026L4.82445 4.97471C4.57861 4.72887 4.18191 4.72887 3.93607 4.97471C3.69023 5.22055 3.69023 5.61725 3.93607 5.86309L5.05162 6.97864L3.93607 8.09419C3.69023 8.34003 3.69023 8.73673 3.93607 8.98257C4.18191 9.22841 4.57861 9.22841 4.82445 8.98257L5.94 7.86702L7.05555 8.98257C7.30139 9.22841 7.69809 9.22841 7.94393 8.98257C8.18977 8.73673 8.18977 8.34003 7.94393 8.09419L6.82838 6.97864L7.94393 5.86309C8.18977 5.61725 8.18977 5.22055 7.94393 4.97471C7.69809 4.73873 7.30021 4.73873 7.05555 4.97471ZM5.94 1.06062C2.70017 1.06062 0.0808594 3.67993 0.0808594 6.91977C0.0808594 10.1596 2.70017 12.7789 5.94 12.7789C9.17983 12.7789 11.7991 10.1596 11.7991 6.91977C11.7991 3.67993 9.17983 1.06062 5.94 1.06062ZM5.94 11.6153C3.35426 11.6153 1.24422 9.50525 1.24422 6.91977C1.24422 4.33412 3.35426 2.22408 5.94 2.22408C8.52558 2.22408 10.6356 4.33412 10.6356 6.91977C10.6356 9.50525 8.52558 11.6153 5.94 11.6153Z\"\n fill=\"#FF3636\" />\n </svg>\n </div>\n </div>\n <label class=\"checkboxLab\" *ngIf=\"label && type === 'checkbox' && showLabel\" [style.font-weight]=\"labelWeight\"\n [style.font-size]=\"labelSize\" [style.color]=\"labelColor || '#9a9a9a'\"\n style=\"margin-bottom: 0; padding-left: 10px; padding-right: 10px;\"> {{ label }}\n <div *ngIf=\"label && type === 'checkbox' && required && showLabel\" style=\"color: red;\">*</div>\n </label>\n </div>\n <quill-editor *ngIf=\"mode === 'edit' && type === 'richtext'\" [(ngModel)]=\"value\" [placeholder]=\"placeholder\"\n [modules]=\"mode === 'edit' ? quillConfiguration : emptyQuillModules\" [readOnly]=\"mode !== 'edit' && !viewEdit\"\n (focusout)=\"onEditorFocusOut()\" [class.error]=\"control.invalid && (control.touched || control.dirty)\">\n </quill-editor>\n <!-- View mode -->\n <div *ngIf=\"mode !== 'edit' && type === 'richtext'\" class=\"quill-view-content\" [innerHTML]=\"value\">\n </div>\n <textarea *ngIf=\"type === 'textarea'\" [id]=\"inputId\" [rows]=\"rows\"\n [attr.placeholder]=\"mode !== 'edit' ? '' : placeholder\" [ngClass]=\"'custom-input'\" [formControl]=\"control\"\n [style.backgroundColor]=\"mode !== 'edit' ? '' : inputBgColor\"\n [style.color]=\"mode !== 'edit' ? '' : inputTextColor\" [style.border]=\"mode !== 'edit' ? 'none' : inputBorder\"\n [style.height]=\"inputHeight\" [style.width]=\"inputWidth\" [value]=\"value\" (input)=\" onInputChange($event)\"\n [style.font-size]=\"inputValueSize\" (blur)=\" blurEmit()\" (focusin)=\"focusinEmit($event)\"\n [readOnly]=\"mode !== 'edit' && !viewEdit\" [ngStyle]=\"{\n '--placeholder-font': mode === 'edit' ? placeholderFont || labelFont : '',\n '--placeholder-color': mode === 'edit' ? placeholderColor || '#9a9a9a' : '',\n '--placeholder-size': mode === 'edit' ? placeholderSize || inputValueSize : '',\n '--placeholder-weight': mode === 'edit' ? placeholderWeight || labelWeight : ''\n }\" style=\"\n width: 100%;\n padding: 10px;\n padding-left: 5px;\n border-radius: 5px;\n border: none !important;\n font-size: 14px;\"></textarea>\n <svg *ngIf=\"mode !== 'edit' && !viewEdit && (type === 'richtext' || type === 'textarea') && !question.isReadOnly\"\n class=\"edit-icon\" (click)=\"viewEditClick(question)\" width=\"13\" height=\"14\" viewBox=\"0 0 13 14\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M1.99987 9.0017L4.39602 11.3979C4.50371 11.5055 4.66525 11.5055 4.77294 11.3979L10.7499 5.39401C10.8576 5.28631 10.8576 5.12477 10.7499 5.01708L8.38064 2.64785C8.27294 2.54016 8.11141 2.54016 8.00371 2.64785L1.99987 8.6517C1.89217 8.75939 1.89217 8.92093 1.99987 9.0017ZM9.1614 1.54401C9.05371 1.6517 9.05371 1.81324 9.1614 1.92093L11.5306 4.29016C11.6383 4.39785 11.7999 4.39785 11.9076 4.29016L12.5806 3.61708C13.0114 3.21324 13.0114 2.56708 12.5806 2.13631L11.3153 0.870928C10.8845 0.440159 10.2114 0.440159 9.78063 0.870928L9.1614 1.54401ZM0.00755862 12.9863C-0.0462875 13.2555 0.19602 13.4979 0.465251 13.444L3.39987 12.744C3.50756 12.7171 3.58833 12.6632 3.64217 12.6094L3.69602 12.5555C3.74987 12.5017 3.77679 12.3132 3.6691 12.2055L1.24602 9.78247C1.13833 9.67478 0.949866 9.7017 0.89602 9.75554L0.842174 9.80939C0.761405 9.89016 0.734482 9.97093 0.707559 10.0517L0.00755862 12.9863Z\"\n fill=\"#B0ADAB\" />\n </svg>\n <!-- SKS23APR25 Use control.invalid to show error on submit click -->\n <div *ngIf=\"type != 'checkbox' && control.invalid && (control.touched || control.dirty)\" style=\"height: 20px;\">\n <div class=\"error-message\">\n {{ getErrorMessage() }}\n </div>\n </div>\n </div>\n</div>", styles: ["label{font-size:14px;margin-bottom:10px;color:color-mix(in srgb,black,rgb(0,0,0) 80%)}.toggle-icon{width:20px;height:20px;cursor:pointer;fill:#666}.error-message{color:red;font-size:12px}input[type=text].custom-input,input[type=password].custom-input,input[type=number].custom-input,input[type=email].custom-input,input[type=date].custom-input,input[type=tel].custom-input,input[type=list].custom-input,input[type=dropdown].custom-input,input[type=location].custom-input{width:100%;padding:10px 10px 10px 5px;border-radius:5px;border:none;font-size:14px}.custom-input:-webkit-autofill,.custom-input:-webkit-autofill:hover,.custom-input:-webkit-autofill:focus,.custom-input:-webkit-autofill:active{transition:background-color 5000s ease-in-out 0s!important;-webkit-text-fill-color:inherit!important}.phone-input-container{display:flex;align-items:center;position:relative}.country-selector{display:flex;align-items:center;cursor:pointer;padding-right:12px;border-right:#ccc;margin-right:12px}.flag{margin-right:8px;font-size:20px}.dial-code{margin-right:8px;font-weight:500}.country-dropdown{position:absolute;top:100%;left:0;width:300px;background:#fff;border:1px solid #ccc;border-radius:4px;box-shadow:0 2px 4px #0000001a;z-index:1000;margin-top:4px}.search-box{padding:8px;border-bottom:1px solid #ccc}.search-box input{width:100%;padding:8px;border:1px solid #ccc;border-radius:4px}.country-list{max-height:200px;overflow-y:auto}.country-item{display:flex;align-items:center;padding:8px 12px;cursor:pointer}.country-item:hover{background-color:color-mix(in srgb,#fff,rgba(0,0,0,0) 30%)}.country-item .name{flex:1;margin:0 12px}.fcOtp{width:40px;height:40px;text-align:center;font-size:18px;border:1px solid #ccc;border-radius:5px;margin:5px;outline:none;transition:border-color .2s ease-in-out}input:focus{outline:none;border-color:transparent;box-shadow:none}.input-container{display:flex;align-items:center;width:100%;border-radius:5px;border:1px solid #ccc;padding-left:5px;padding-right:10px}.input-container .icon-container{right:15px;pointer-events:none;width:22px;height:22px;display:flex;align-items:center;justify-content:center}.input-container.invalid{border:1px solid #DC3545!important;border-radius:5px}.checkbox-padding{padding:0!important;width:auto!important;border:none!important}.view-mode{font-size:14px;color:#333}@media print{.view-mode{font-size:12pt;color:#000}}input::placeholder{font-family:var(--placeholder-font);color:var(--placeholder-color);font-size:var(--placeholder-size);font-weight:var(--placeholder-weight)}.dotted-loader{position:relative;width:10px;height:10px}.dotted-loader .dot{--i: 0;position:absolute;top:50%;left:50%;width:3px;height:3px;margin:-2px 0 0 -2px;border-radius:50%;background-color:#696969;transform:rotate(calc(var(--i) * 60deg)) translate(8px) rotate(calc(var(--i) * -60deg));animation:spinDot 1s linear infinite;animation-delay:calc(var(--i) * .1s)}@keyframes spinDot{0%{opacity:.3;transform:rotate(calc(var(--i) * 60deg)) translate(8px) rotate(calc(var(--i) * -60deg)) scale(.9)}50%{opacity:1;transform:rotate(calc(var(--i) * 60deg)) translate(8px) rotate(calc(var(--i) * -60deg)) scale(1.3)}to{opacity:.3;transform:rotate(calc(var(--i) * 60deg)) translate(8px) rotate(calc(var(--i) * -60deg)) scale(.9)}}input:disabled{cursor:default;background-color:light-dark(rgba(239,239,239,0),rgba(59,59,59,0))!important;color:light-dark(rgb(84,84,84),rgb(170,170,170))!important}:is() .ql-editor img{cursor:pointer}:is() .image-resizer{display:block!important;visibility:visible!important}:is() .ql-editor .image-resizer{border:1px dashed #000;position:absolute}:is() .ql-editor .image-resizer .handle{background-color:#000;border:1px solid #fff;border-radius:50%;height:12px;width:12px;position:absolute}quill-editor{width:100%}.quill-view-content{border:none;padding:0;font-size:14px;line-height:1.6;color:#333}.edit-icon{display:none;cursor:pointer}.hover-wrapper:hover .edit-icon{display:block}\n"] }]
2699
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.ChangeService }, { type: i2.DataService }], propDecorators: { label: [{
2700
+ type: Input
2701
+ }], labelFont: [{
2702
+ type: Input
2703
+ }], labelWeight: [{
2704
+ type: Input
2705
+ }], inputWeight: [{
2706
+ type: Input
2707
+ }], labelSize: [{
2708
+ type: Input
2709
+ }], inputValueSize: [{
2710
+ type: Input
2711
+ }], labelColor: [{
2712
+ type: Input
2713
+ }], showLabel: [{
2714
+ type: Input
2715
+ }], svgHeight: [{
2716
+ type: Input
2717
+ }], svgWidth: [{
2718
+ type: Input
2719
+ }], type: [{
2720
+ type: Input
2721
+ }], inputIconRightSrc: [{
2722
+ type: Input
2723
+ }], inputIconLeftSrc: [{
2724
+ type: Input
2725
+ }], required: [{
2726
+ type: Input
2727
+ }], minLength: [{
2728
+ type: Input
2729
+ }], pattern: [{
2730
+ type: Input
2731
+ }], errorMessages: [{
2732
+ type: Input
2733
+ }], maxLength: [{
2734
+ type: Input
2735
+ }], placeholder: [{
2736
+ type: Input
2737
+ }], inputBgColor: [{
2738
+ type: Input
2739
+ }], inputBorder: [{
2740
+ type: Input
2741
+ }], placeholderColor: [{
2742
+ type: Input
2743
+ }], placeholderFont: [{
2744
+ type: Input
2745
+ }], placeholderWeight: [{
2746
+ type: Input
2747
+ }], placeholderSize: [{
2748
+ type: Input
2749
+ }], inputTextColor: [{
2750
+ type: Input
2751
+ }], inputHeight: [{
2752
+ type: Input
2753
+ }], inputWidth: [{
2754
+ type: Input
2755
+ }], inputId: [{
2756
+ type: Input
2757
+ }], inputBorderSize: [{
2758
+ type: Input
2759
+ }], inputConfig: [{
2760
+ type: Input
2761
+ }], confPassVal: [{
2762
+ type: Input
2763
+ }], confPass: [{
2764
+ type: Input
2765
+ }], mode: [{
2766
+ type: Input
2767
+ }], value: [{
2768
+ type: Input
2769
+ }], question: [{
2770
+ type: Input
2771
+ }], showSuggestion: [{
2772
+ type: Input
2773
+ }], ariaOwns: [{
2774
+ type: Input
2775
+ }], ariaHasPopup: [{
2776
+ type: Input
2777
+ }], isLoading: [{
2778
+ type: Input
2779
+ }], options: [{
2780
+ type: Input
2781
+ }], minDate: [{
2782
+ type: Input
2783
+ }], maxDate: [{
2784
+ type: Input
2785
+ }], rows: [{
2786
+ type: Input
2787
+ }], size: [{
2788
+ type: Input
2789
+ }], valueChange: [{
2790
+ type: Output
2791
+ }], inputValue: [{
2792
+ type: Output
2793
+ }], onBlur: [{
2794
+ type: Output
2795
+ }], onFocus: [{
2796
+ type: Output
2797
+ }], toggleEmit: [{
2798
+ type: Output
2799
+ }], clearInputEmit: [{
2800
+ type: Output
2801
+ }], nativeInputRef: [{
2802
+ type: Output
2803
+ }], inputEls: [{
2804
+ type: ViewChildren,
2805
+ args: ['inputEl']
2806
+ }], dateTimePicker: [{
2807
+ type: ViewChildren,
2808
+ args: ['dt']
2809
+ }], datePicker: [{
2810
+ type: ViewChildren,
2811
+ args: ['dt1']
2812
+ }], timePicker: [{
2813
+ type: ViewChildren,
2814
+ args: ['dt2']
2815
+ }], inputRef: [{
2816
+ type: ViewChild,
2817
+ args: ['inputRef', { static: false }]
2818
+ }], closeDropdown: [{
2819
+ type: HostListener,
2820
+ args: ['document:click', ['$event']]
2821
+ }] } });
2822
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnh0LWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL254dC1hcHAvc3JjL2xpYi9jb21wb25lbnRzL254dC1pbnB1dC9ueHQtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvbnh0LWlucHV0L254dC1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBQ1osT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLHVCQUF1QixFQUFFLFlBQVksRUFBd0MsWUFBWSxFQUFFLFNBQVMsRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDeE0sT0FBTyxFQUFtQixTQUFTLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQWlDLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSXhMLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxvQkFBb0IsRUFBZ0IsTUFBTSxXQUFXLENBQUM7QUFDL0QsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxZQUFZLE1BQU0scUJBQXFCLENBQUM7Ozs7Ozs7QUFFL0Msa0dBQWtHO0FBQ2xHLE1BQU0sYUFBYSxHQUFHLENBQUMsUUFBUSxFQUFFLGtCQUFrQixFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLGNBQWM7SUFDL0YsU0FBUyxFQUFFLGlCQUFpQixFQUFFLGFB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Y0FBYztzQkFBakMsWUFBWTt1QkFBQyxJQUFJO2dCQUNHLFVBQVU7c0JBQTlCLFlBQVk7dUJBQUMsS0FBSztnQkFDRSxVQUFVO3NCQUE5QixZQUFZO3VCQUFDLEtBQUs7Z0JBQ3VCLFFBQVE7c0JBQWpELFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkE0c0V4QyxhQUFhO3NCQURaLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvL1NLUzMxSkFOMjVcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIFZpZXdDaGlsZHJlbiwgUXVlcnlMaXN0LCBFbGVtZW50UmVmLCBTaW1wbGVDaGFuZ2VzLCBIb3N0TGlzdGVuZXIsIFZpZXdDaGlsZCwgQWZ0ZXJWaWV3SW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQXJyYXksIEZvcm1Db250cm9sLCBGb3Jtc01vZHVsZSwgTkdfVkFMSURBVE9SUywgTkdfVkFMVUVfQUNDRVNTT1IsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvckZuLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ2hhbmdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NoYW5nZS5zZXJ2aWNlJztcbmltcG9ydCB7IERhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGF0YS5zZXJ2aWNlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgT3dsRGF0ZVRpbWVNb2R1bGUsIE93bE5hdGl2ZURhdGVUaW1lTW9kdWxlIH0gZnJvbSAnQGRhbmllbG1vbmNhZGEvYW5ndWxhci1kYXRldGltZS1waWNrZXInO1xuaW1wb3J0IHsgUXVpbGxFZGl0b3JDb21wb25lbnQsIFF1aWxsTW9kdWxlcyB9IGZyb20gJ25neC1xdWlsbCc7XG5pbXBvcnQgUXVpbGwgZnJvbSAncXVpbGwnO1xuaW1wb3J0IHsgTWVudGlvbiB9IGZyb20gJ3F1aWxsLW1lbnRpb24nO1xuaW1wb3J0IEltYWdlUmVzaXpvciBmcm9tICdxdWlsbC1pbWFnZS1yZXNpem9yJztcblxuLy8gU0tTMTFKVU4yNSBBbiBhcnJheSBmb250RmFtaWx5QXJyIGlzIGNyZWF0ZWQgY29udGFpbmluZyBhIGxpc3Qgb2YgZm9udCBmYW1pbHkgbmFtZXMgYXMgc3RyaW5ncy5cbmNvbnN0IGZvbnRGYW1pbHlBcnIgPSBbXCJSb2JvdG9cIiwgXCJSb2JvdG8gQ29uZGVuc2VkXCIsIFwiQXJpYWxcIiwgXCJWZXJkYW5hXCIsIFwiVGFob21hXCIsIFwiVHJlYnVjaGV0IE1TXCIsXG4gIFwiR2VvcmdpYVwiLCBcIlRpbWVzIE5ldyBSb21hblwiLCBcIkNvdXJpZXIgTmV3XCIsIFwiUGFsYXRpbm8gTGlub3R5cGVcIixcbiAgXCJTZWdvZSBVSVwiLCBcIkNhbGlicmlcIiwgXCJDYWxpYnJpIExpZ2h0XCIsIFwiU2Fucy1TZXJpZlwiLCBcIkhlbHZldGljYVwiLFxuICBcIkltcGFjdFwiLCBcIkdhcmFtb25kXCIsIFwiQ29taWMgU2FucyBNU1wiLCBcIkx1Y2lkYSBDb25zb2xlXCIsIFwiRnJhbmtsaW4gR290aGljIE1lZGl1bVwiXTtcbi8vIFNLUzExSlVOMjUgUmVnaXN0ZXIgUXVpbGwgbW9kdWxlc1xuUXVpbGwucmVnaXN0ZXIoJ21vZHVsZXMvbWVudGlvbicsIE1lbnRpb24pO1xuSW1hZ2VSZXNpem9yLlF1aWxsID0gUXVpbGw7XG5RdWlsbC5yZWdpc3RlcignbW9kdWxlcy9pbWFnZVJlc2l6b3InLCBJbWFnZVJlc2l6b3IpO1xuXG4vLyBTS1MxMUpVTjI1IFRoZSBRdWlsbCBmb250IHN0eWxlIGF0dHJpYnV0b3IgaXMgaW1wb3J0ZWQgYW5kIGl0IGlzIHJlZ2lzdGVyZWQgd2l0aCBRdWlsXG5sZXQgZm9udHM6IGFueSA9IFF1aWxsLmltcG9ydChcImF0dHJpYnV0b3JzL3N0eWxlL2ZvbnRcIik7XG5mb250cy53aGl0ZWxpc3QgPSBmb250RmFtaWx5QXJyO1xuUXVpbGwucmVnaXN0ZXIoZm9udHMsIHRydWUpO1xuXG5leHBvcnQgY29uc3QgUXVpbGxDb25maWd1cmF0aW9uOiBRdWlsbE1vZHVsZXMgPSB7XG4gICAgaW1hZ2VSZXNpem9yOiB7fSxcbiAgdG9vbGJhcjoge1xuICAgIGNvbnRhaW5lcjogW1xuICAgICAgW3sgJ2ZvbnQnOiBmb250RmFtaWx5QXJyIH1dLCAgLy9SUyAxN0pBTjIwMjUgIEFkZGVkIGZvbnQgZmFtaWx5IGRyb3Bkb3duXG4gICAgICBbJ2JvbGQnLCAnaXRhbGljJywgJ3VuZGVybGluZScsICdzdHJpa2UnXSxcbiAgICAgIFsnYmxvY2txdW90ZScsICdjb2RlLWJsb2NrJ10sXG4gICAgICBbeyBoZWFkZXI6IFsxLCAyLCAzLCA0LCA1LCA2LCBmYWxzZV0gfV0sXG4gICAgICBbeyBsaXN0OiAnb3JkZXJlZCcgfSwgeyBsaXN0OiAnYnVsbGV0JyB9XSxcbiAgICAgIFt7IGNvbG9yOiBbXSB9LCB7IGJhY2tncm91bmQ6IFtdIH1dLFxuICAgICAgW3sgYWxpZ246IFtdIH1dLFxuICAgICAgWydsaW5rJywgJ2ltYWdlJywgJ3ZpZGVvJ10sXG4gICAgICBbJ2Zvcm11bGEnXSxcbiAgICAgIFsnY2xlYW4nXSxcbiAgICBdLFxuICB9LFxuICBtZW50aW9uOiB7XG4gICAgYWxsb3dlZENoYXJzOiAvXltBLVphLXpcXHPDhcOEw5bDpcOkw7ZdKiQvLFxuICAgIG1lbnRpb25EZW5vdGF0aW9uQ2hhcnM6IFsnQCcsICcjJ10sXG4gICAgc291cmNlOiBmdW5jdGlvbiAoc2VhcmNoVGVybTogc3RyaW5nLCByZW5kZXJMaXN0OiBhbnkpIHtcbiAgICAgIGNvbnN0IHZhbHVlcyA9IFtcbiAgICAgICAgeyBpZDogMSwgdmFsdWU6ICdVc2VyIDEnIH0sXG4gICAgICAgIHsgaWQ6IDIsIHZhbHVlOiAnVXNlciAyJyB9LFxuICAgICAgXTtcblxuICAgICAgaWYgKHNlYXJjaFRlcm0ubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJlbmRlckxpc3QodmFsdWVzLCBzZWFyY2hUZXJtKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IG1hdGNoZXMgPSB2YWx1ZXMuZmlsdGVyKChpdGVtKSA9PlxuICAgICAgICAgIGl0ZW0udmFsdWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hUZXJtLnRvTG93ZXJDYXNlKCkpXG4gICAgICAgICk7XG4gICAgICAgIHJlbmRlckxpc3QobWF0Y2hlcywgc2VhcmNoVGVybSk7XG4gICAgICB9XG4gICAgfSxcbiAgfSxcbn07XG5jb25zdCBFbXB0eVF1aWxsTW9kdWxlcyA6IFF1aWxsTW9kdWxlcz0ge1xuICB0b29sYmFyOiBmYWxzZSwgLy8gbm8gdG9vbGJhclxuICBjbGlwYm9hcmQ6IHtcbiAgICBtYXRjaFZpc3VhbDogZmFsc2VcbiAgfSxcbiAgaGlzdG9yeToge1xuICAgIGRlbGF5OiAxMDAwLFxuICAgIG1heFN0YWNrOiAxMDAsXG4gICAgdXNlck9ubHk6IHRydWVcbiAgfVxufTtcblxuXG5mdW5jdGlvbiBnZXRGb3JtQXJyYXkoc2l6ZTogbnVtYmVyKTogRm9ybUFycmF5IHtcbiAgY29uc3QgYXJyID0gW107XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBzaXplOyBpKyspIHtcbiAgICBhcnIucHVzaChuZXcgRm9ybUNvbnRyb2woJycpKTtcbiAgfVxuXG4gIHJldHVybiBuZXcgRm9ybUFycmF5KGFycik7XG59XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBPd2xEYXRlVGltZU1vZHVsZSwgT3dsTmF0aXZlRGF0ZVRpbWVNb2R1bGUsIFF1aWxsRWRpdG9yQ29tcG9uZW50LCBGb3Jtc01vZHVsZV0sXG4gIHNlbGVjdG9yOiAnbnh0LWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL254dC1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL254dC1pbnB1dC5jb21wb25lbnQuY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTnh0SW5wdXQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBOeHRJbnB1dCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTnh0SW5wdXQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgLy8gU0tTMzBKQU4yNVxuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nID0gJyc7ICAvLyBJbnB1dCBsYWJlbFxuICBASW5wdXQoKSBsYWJlbEZvbnQ6IHN0cmluZyA9ICcnOyAgLy8gSW5wdXQgbGFiZWwgZm9udFxuICBASW5wdXQoKSBsYWJlbFdlaWdodDogc3RyaW5nID0gJyc7ICAvLyBJbnB1dCBsYWJlbCBXZWlnaHRcbiAgQElucHV0KCkgaW5wdXRXZWlnaHQ6IHN0cmluZyA9ICcnOyAgLy8gSW5wdXQgV2VpZ2h0XG4gIEBJbnB1dCgpIGxhYmVsU2l6ZTogc3RyaW5nID0gJyc7ICAvLyBJbnB1dCBsYWJlbCBTaXplXG4gIEBJbnB1dCgpIGlucHV0VmFsdWVTaXplOiBzdHJpbmcgPSAnJzsgLy9JbnB1dCB2YWx1ZSBTaXplXG4gIEBJbnB1dCgpIGxhYmVsQ29sb3I6IHN0cmluZyA9ICcnOyAgLy8gSW5wdXQgbGFiZWwgQ29sb3JcbiAgQElucHV0KCkgc2hvd0xhYmVsOiBzdHJpbmcgPSAnJzsgIC8vIElucHV0IGxhYmVsIENvbG9yXG4gIEBJbnB1dCgpIHN2Z0hlaWdodDogc3RyaW5nID0gJyc7ICAvLyBJbnB1dCBzdmcgaGVpZ2h0XG4gIEBJbnB1dCgpIHN2Z1dpZHRoOiBzdHJpbmcgPSAnJzsgIC8vIElucHV0IHN2ZyB3ZWlnaHRcbiAgQElucHV0KCkgdHlwZTogc3RyaW5nID0gJ3RleHQnOyAgLy8gSW5wdXQgdHlwZSAodGV4dCwgZW1haWwsIHBhc3N3b3JkKVxuICBASW5wdXQoKSBpbnB1dEljb25SaWdodFNyYzogc3RyaW5nID0gJyc7ICAvLyBQYXRoIHRvIFNWRyBpY29uXG4gIEBJbnB1dCgpIGlucHV0SWNvbkxlZnRTcmM6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSByZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlOyAgLy8gUmVxdWlyZWQgdmFsaWRhdGlvblxuICBASW5wdXQoKSBtaW5MZW5ndGg/OiBudW1iZXI7ICAvLyBNaW4gbGVuZ3RoIHZhbGlkYXRpb25cbiAgQElucHV0KCkgcGF0dGVybj86IGFueTsgIC8vIFBhdHRlcm4gdmFsaWRhdGlvbiAoZS5nLiwgZW1haWwgcmVnZXgpXG4gIEBJbnB1dCgpIGVycm9yTWVzc2FnZXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTsgICAvLyBDdXN0b20gZXJyb3IgbWVzc2FnZXNcbiAgQElucHV0KCkgbWF4TGVuZ3RoOiBudW1iZXIgPSAwOyAvLyBNYXhpbXVtIGxlbmd0aCB2YWxpZGF0aW9uXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgaW5wdXRCZ0NvbG9yOiBzdHJpbmcgPSAnJzsgLy8gVXNlIHRoaXMgaW5wdXQgdG8gc2V0IGEgY3VzdG9tIGJhY2tncm91bmQgY29sb3IgZm9yIHRoZSBpbnB1dC5cbiAgQElucHV0KCkgaW5wdXRCb3JkZXI6IHN0cmluZyA9ICcnOyAvLyBVc2UgdGhpcyBpbnB1dCB0byBzZXQgYSBjdXN0b20gYm9yZGVyIHN0eWxlIGZvciB0aGUgaW5wdXQuXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyQ29sb3I6IHN0cmluZyA9ICcnOyAvLyBVc2UgdGhpcyBpbnB1dCB0byBzZXQgYSBjdXN0b20gdGV4dCBjb2xvciBmb3IgdGhlIGlucHV0LlxuICBASW5wdXQoKSBwbGFjZWhvbGRlckZvbnQ6IHN0cmluZyA9ICcnOyAvLyBVc2UgdGhpcyBpbnB1dCB0byBzZXQgYSBjdXN0b20gcGxhY2Vob2xkZXIgZm9udFxuICBASW5wdXQoKSBwbGFjZWhvbGRlcldlaWdodDogc3RyaW5nID0gJyc7IC8vIFVzZSB0aGlzIGlucHV0IHRvIHNldCBhIGN1c3RvbVxuICBASW5wdXQoKSBwbGFjZWhvbGRlclNpemU6IHN0cmluZyA9ICcnOyAvLyBVc2UgdGhpcyBpbnB1dCB0byBzZXQgYSBjdXN0b20gc2l6ZVxuICBASW5wdXQoKSBpbnB1dFRleHRDb2xvcjogc3RyaW5nID0gJyc7IC8vIFVzZSB0aGlzIGlucHV0IHRvIHNldCBhIGN1c3RvbSB0ZXh0IGNvbG9yIGZvciB0aGUgaW5wdXQgdmFsdWUuXG4gIEBJbnB1dCgpIGlucHV0SGVpZ2h0OiBzdHJpbmcgPSAnJzsgLy8gVXNlIHRoaXMgaW5wdXQgdG8gc2V0IGEgY3VzdG9tIGhlaWdodCBmb3IgdGhlIGlucHV0LlxuICBASW5wdXQoKSBpbnB1dFdpZHRoOiBzdHJpbmcgPSAnJzsgLy8gVXNlIHRoaXMgaW5wdXQgdG8gc2V0IGEgY3VzdG9tIHdpZHRoIGZvciB0aGUgSW5wdXQuXG4gIEBJbnB1dCgpIGlucHV0SWQ6IHN0cmluZyA9ICdkZWZhdWx0JzsgLy8gVXNlIHRoaXMgaW5wdXQgdG8gc2V0IGEgY3VzdG9tIElEIGZvciB0aGUgaW5wdXQuIERlZmF1bHQgaXMgJ2RlZmF1bHQnLlxuICBASW5wdXQoKSBpbnB1dEJvcmRlclNpemU6IHN0cmluZyA9ICcwcHgnOyAvLyBVc2UgdGhpcyBpbnB1dCB0byBzZXQgdGhlIGJvcmRlciBzaXplIG9mIHRoZSBpbnB1dC4gRGVmYXVsdCBpcyAnMHB4JyBmb3Igbm8gYm9yZGVyLlxuICBASW5wdXQoKSBpbnB1dENvbmZpZzogYW55ID0gJyc7IC8vIFVzZSB0aGlzIGlucHV0IHRvIHBhc3MgY29uZmlndXJhdGlvbiBzZXR0aW5ncyBmb3IgdGhlIGlucHV0IChlLmcuLCBzdHlsZXMsIGFjdGlvbnMpLlxuICBASW5wdXQoKSBjb25mUGFzc1ZhbDogYW55ID0gJyc7IC8vIFBhc3N3b3JkIHZhbHVlIHRvIGNoZWNrIGlmIHRoZSBjdXJyZW50IGZpZWxkIG1hdGNoZXMgdGhlIGNvbmZpcm1lZCBwYXNzd29yZFxuICBASW5wdXQoKSBjb25mUGFzczogYm9vbGVhbiA9IGZhbHNlOyAvLyBTZXQgdG8gdHJ1ZSB0byBlbmFibGUgcGFzc3dvcmQgY29uZmlybWF0aW9uIHZhbGlkYXRpb25cbiAgQElucHV0KCkgbW9kZTogJ3ZpZXcnIHwgJ2VkaXQnIHwgJ3ByaW50JyA9ICdlZGl0JzsgLy8gTmV3IG1vZGUgaW5wdXRcbiAgQElucHV0KCkgdmFsdWU6IGFueSA7IC8vIGlucHV0IHZhbHVlXG4gIEBJbnB1dCgpIHF1ZXN0aW9uOiBhbnkgPSB7fVxuICBASW5wdXQoKSBzaG93U3VnZ2VzdGlvbjogYm9vbGVhbiA9IGZhbHNlOyAvLyBzaG93U3VnZ2VzdGlvbiB0aGUgaW5wdXRcbiAgQElucHV0KCkgYXJpYU93bnM/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGFyaWFIYXNQb3B1cD86IHN0cmluZztcbiAgQElucHV0KCkgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7IC8vIFNldCB0byB0cnVlIHRvIHNob3cgYSBsb2FkaW5nIGFuaW1hdGlvblxuICBASW5wdXQoKSBvcHRpb25zOiBhbnlbXSA9IFtdOyAvLyBGb3IgcmFkaW8gYnV0dG9uc1xuICBASW5wdXQoKSBtaW5EYXRlOiBhbnk7IC8vIEZvciBkYXRlL2RhdGV0aW1lIHBpY2tlclxuICBASW5wdXQoKSBtYXhEYXRlOiBhbnk7IC8vIEZvciBkYXRlL2RhdGV0aW1lIHBpY2tlclxuICBASW5wdXQoKSByb3dzOiBudW1iZXIgPSAzOyAvLyBGb3IgdGV4dGFyZWFcblxuICByYXdJbnB1dFZhbDogYW55O1xuICBASW5wdXQoKSAvL290cCBib3ggc2l6ZVxuICBzZXQgc2l6ZShzaXplOiBudW1iZXIpIHtcbiAgICB0aGlzLmlucHV0cyA9IGdldEZvcm1BcnJheShzaXplKTtcbiAgICB0aGlzLiNzaXplID0gc2l6ZTtcbiAgfVxuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTsgIC8vIEVtaXRzIGlucHV0IHZhbHVlIGNoYW5nZXNcbiAgQE91dHB1dCgpIGlucHV0VmFsdWUgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTsgXG4gIEBPdXRwdXQoKSBvbkJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIG9uRm9jdXMgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIHRvZ2dsZUVtaXQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIGNsZWFySW5wdXRFbWl0ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBuYXRpdmVJbnB1dFJlZiA9IG5ldyBFdmVudEVtaXR0ZXI8RWxlbWVudFJlZj4oKTtcbiAgXG4gIEBWaWV3Q2hpbGRyZW4oJ2lucHV0RWwnKSBpbnB1dEVscyE6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+PjtcbiAgLy8gRGF0ZS9UaW1lIHBpY2tlciByZWZlcmVuY2VzXG4gIEBWaWV3Q2hpbGRyZW4oJ2R0JykgZGF0ZVRpbWVQaWNrZXI6IGFueTtcbiAgQFZpZXdDaGlsZHJlbignZHQxJykgZGF0ZVBpY2tlcjogYW55O1xuICBAVmlld0NoaWxkcmVuKCdkdDInKSB0aW1lUGlja2VyOiBhbnk7XG4gIEBWaWV3Q2hpbGQoJ2lucHV0UmVmJywgeyBzdGF0aWM6IGZhbHNlIH0pIGlucHV0UmVmOiBFbGVtZW50UmVmO1xuXG4gICNzaXplID0gNDtcbiAgI3NjaGVkdWxlZEZvY3VzOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICBpbnB1dHMgPSBnZXRGb3JtQXJyYXkodGhpcy4jc2l6ZSk7XG4gIGNvbnRyb2w6IEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCcnKTtcbiAgaXNQYXNzd29yZFZpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgY291bnRyeUNvZGU6IHN0cmluZyA9ICcnO1xuICAvLyBTS1MyOEZFQjI1IGNvdW50cmllcyBsaXN0XG4gIGNvdW50cmllcyA9IFtcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJBZmdoYW5pc3RhblwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HpvCfh6tcIixcbiAgICAgIFwiY29kZVwiOiBcIkFGXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis5M1wiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzkzWzAtOV17OX0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzkzIDcwIDEyMyA0NTY3XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIsOFbGFuZCBJc2xhbmRzXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4em8J+HvVwiLFxuICAgICAgXCJjb2RlXCI6IFwiQVhcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzM1OFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzM1OFswLTldezYsMTJ9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIiszNTggMTggMTIzIDQ1XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkFsYmFuaWFcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6bwn4exXCIsXG4gICAgICBcImNvZGVcIjogXCJBTFwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMzU1XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMzU1WzAtOV17OX0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzM1NSA2OSAxMjMgNDU2N1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJBbGdlcmlhXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ep8J+Hv1wiLFxuICAgICAgXCJjb2RlXCI6IFwiRFpcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzIxM1wiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzIxM1swLTldezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyMTMgNTUxIDIzNCA1NjdcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiQW1lcmljYW4gU2Ftb2FcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6bwn4e4XCIsXG4gICAgICBcImNvZGVcIjogXCJBU1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMTY4NFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzE2ODRbMC05XXs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMTY4NCAxMjMgNDU2N1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJBbmRvcnJhXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4em8J+HqVwiLFxuICAgICAgXCJjb2RlXCI6IFwiQURcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzM3NlwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzM3NlswLTldezZ9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIiszNzYgMTIzIDQ1NlwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJBbmdvbGFcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6bwn4e0XCIsXG4gICAgICBcImNvZGVcIjogXCJBT1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjQ0XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMjQ0WzAtOV17OX0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzI0NCA5MjMgMTIzIDQ1NlwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJBbmd1aWxsYVwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HpvCfh65cIixcbiAgICAgIFwiY29kZVwiOiBcIkFJXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisxMjY0XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMTI2NFswLTldezd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisxMjY0IDIzNSAxMjM0XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkFudGFyY3RpY2FcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6bwn4e2XCIsXG4gICAgICBcImNvZGVcIjogXCJBUVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNjcyXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNjcyWzAtOV17NiwxMn0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzY3MiAxMjMgNDU2XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkFudGlndWEgYW5kIEJhcmJ1ZGFcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6bwn4esXCIsXG4gICAgICBcImNvZGVcIjogXCJBR1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMTI2OFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzEyNjhbMC05XXs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMTI2OCAyMzQgNTY3OFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJBcmdlbnRpbmFcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6bwn4e3XCIsXG4gICAgICBcImNvZGVcIjogXCJBUlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNTRcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs1NFswLTldezEwLDExfSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNTQgOSAxMSAxMjM0IDU2NzhcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiQXJtZW5pYVwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HpvCfh7JcIixcbiAgICAgIFwiY29kZVwiOiBcIkFNXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIiszNzRcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCszNzRbMC05XXs4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMzc0IDk0IDEyMyA0NTZcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiQXJ1YmFcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6bwn4e8XCIsXG4gICAgICBcImNvZGVcIjogXCJBV1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjk3XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMjk3WzAtOV17N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzI5NyA1NjAgMTIzNFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJBdXN0cmFsaWFcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6bwn4e6XCIsXG4gICAgICBcImNvZGVcIjogXCJBVVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNjFcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs2MVswLTldezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis2MSA0IDEyMzQgNTY3OFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJBdXN0cmlhXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4em8J+HuVwiLFxuICAgICAgXCJjb2RlXCI6IFwiQVRcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzQzXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNDNbMC05XXsxMCwxMn0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzQzIDY2NCAxMjMgNDU2N1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJBemVyYmFpamFuXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4em8J+Hv1wiLFxuICAgICAgXCJjb2RlXCI6IFwiQVpcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzk5NFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzk5NFswLTldezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis5OTQgNTAgMTIzIDQ1IDY3XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkJhaGFtYXNcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6fwn4e4XCIsXG4gICAgICBcImNvZGVcIjogXCJCU1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMTI0MlwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzEyNDJbMC05XXs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMTI0MiAzMjMgMTIzNFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJCYWhyYWluXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4en8J+HrVwiLFxuICAgICAgXCJjb2RlXCI6IFwiQkhcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzk3M1wiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzk3M1swLTldezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis5NzMgMzEyMyA0NTY3XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkJhbmdsYWRlc2hcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6fwn4epXCIsXG4gICAgICBcImNvZGVcIjogXCJCRFwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrODgwXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrODgwWzAtOV17MTB9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis4ODAgMTcxMiAzNDU2NzhcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiQmFyYmFkb3NcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6fwn4enXCIsXG4gICAgICBcImNvZGVcIjogXCJCQlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMTI0NlwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzEyNDZbMC05XXs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMTI0NiAyNTAgMTIzNFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJCZWxhcnVzXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4en8J+HvlwiLFxuICAgICAgXCJjb2RlXCI6IFwiQllcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzM3NVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzM3NVswLTldezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIiszNzUgMjkgMTIzIDQ1IDY3XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkJlbGdpdW1cIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6fwn4eqXCIsXG4gICAgICBcImNvZGVcIjogXCJCRVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMzJcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCszMlswLTldezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIiszMiA0NzAgMTIgMzQgNTZcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiQmVsaXplXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4en8J+Hv1wiLFxuICAgICAgXCJjb2RlXCI6IFwiQlpcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzUwMVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzUwMVswLTldezd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis1MDEgNjEwIDEyMzRcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiQmVuaW5cIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6fwn4evXCIsXG4gICAgICBcImNvZGVcIjogXCJCSlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjI5XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMjI5WzAtOV17OH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzIyOSA5MCAxMiAzNDU2XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkJlcm11ZGFcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6fwn4eyXCIsXG4gICAgICBcImNvZGVcIjogXCJCTVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMTQ0MVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzE0NDFbMC05XXs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMTQ0MSAzNzAgMTIzNFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJCaHV0YW5cIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6fwn4e5XCIsXG4gICAgICBcImNvZGVcIjogXCJCVFwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrOTc1XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrOTc1WzAtOV17Nyw4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrOTc1IDE3IDEyMyA0NTZcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiQm9saXZpYSwgUGx1cmluYXRpb25hbCBTdGF0ZSBvZiBib2xpdmlhXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4en8J+HtFwiLFxuICAgICAgXCJjb2RlXCI6IFwiQk9cIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzU5MVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzU5MVsxLTldXFxcXGR7N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzU5MSAxMjM0NTY3OFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzU5MSA3MDEyMzQ1NlwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJCb3NuaWEgYW5kIEhlcnplZ292aW5hXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4en8J+HplwiLFxuICAgICAgXCJjb2RlXCI6IFwiQkFcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzM4N1wiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzM4N1swLTldezgsOX0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzM4NyA2MSAxMjMgNDU2XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkJvdHN3YW5hXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4en8J+HvFwiLFxuICAgICAgXCJjb2RlXCI6IFwiQldcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzI2N1wiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzI2N1swLTldezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyNjcgNzEgMTIzIDQ1NlwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJCb3V2ZXQgSXNsYW5kXCIsXG4gICAgICBcImNvZGVcIjogXCJCVlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNDdcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs0N1xcXFxkezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis0NyBYWFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrNDcgWFggWFggWFggWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6fwn4e7XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkJyYXppbFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+Hp/Cfh7dcIixcbiAgICAgIFwiY29kZVwiOiBcIkJSXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis1NVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzU1WzAtOV17MTAsMTF9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis1NSAxMSA5MTIzNCA1Njc4XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkJyaXRpc2ggSW5kaWFuIE9jZWFuIFRlcnJpdG9yeVwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HrvCfh7RcIixcbiAgICAgIFwiY29kZVwiOiBcIklPXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisyNDZcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsyNDZbMC05XXs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMjQ2IDM4MCAxMjM0XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkJydW5laSBEYXJ1c3NhbGFtXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4en8J+Hs1wiLFxuICAgICAgXCJjb2RlXCI6IFwiQk5cIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzY3M1wiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzY3M1swLTldezd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis2NzMgNzEyIDM0NTZcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiQnVsZ2FyaWFcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6fwn4esXCIsXG4gICAgICBcImNvZGVcIjogXCJCR1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMzU5XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMzU5WzAtOV17OX0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzM1OSA4NyAxMjMgNDU2N1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJCdXJraW5hIEZhc29cIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6fwn4erXCIsXG4gICAgICBcImNvZGVcIjogXCJCRlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjI2XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMjI2WzAtOV17OH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzIyNiA3MCAxMiAzNDU2XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkJ1cnVuZGlcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6fwn4euXCIsXG4gICAgICBcImNvZGVcIjogXCJCSVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjU3XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMjU3WzAtOV17OH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzI1NyA3OSAxMiAzNDU2XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkNhbWJvZGlhXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ew8J+HrVwiLFxuICAgICAgXCJjb2RlXCI6IFwiS0hcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzg1NVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzg1NVswLTldezgsOX0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzg1NSA5MSAyMzQgNTY3XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkNhbWVyb29uXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4eo8J+HslwiLFxuICAgICAgXCJjb2RlXCI6IFwiQ01cIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzIzN1wiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzIzN1swLTldezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyMzcgNiA3MSAyMyA0NSA2N1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJDYW5hZGFcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6jwn4emXCIsXG4gICAgICBcImNvZGVcIjogXCJDQVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzFbMC05XXsxMH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzEgMjA0IDEyMyA0NTY3XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkNhcGUgVmVyZGVcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6jwn4e7XCIsXG4gICAgICBcImNvZGVcIjogXCJDVlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjM4XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMjM4WzAtOV17N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzIzOCA5OTEgMjM0NVwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJDYXltYW4gSXNsYW5kc1wiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HsPCfh75cIixcbiAgICAgIFwiY29kZVwiOiBcIktZXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIiszNDVcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCszNDVbMC05XXs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMzQ1IDMyMSAxMjM0XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkNlbnRyYWwgQWZyaWNhbiBSZXB1YmxpY1wiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HqPCfh6tcIixcbiAgICAgIFwiY29kZVwiOiBcIkNGXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisyMzZcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsyMzZbMC05XXs4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMjM2IDcyIDEyIDM0NTZcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiQ2hhZFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HufCfh6lcIixcbiAgICAgIFwiY29kZVwiOiBcIlREXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisyMzVcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsyMzVbMC05XXs4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMjM1IDYzIDEyIDM0NTZcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiQ2hpbGVcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6jwn4exXCIsXG4gICAgICBcImNvZGVcIjogXCJDTFwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNTZcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs1NlswLTldezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis1NiA5IDEyMzQgNTY3OFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJDaGluYVwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HqPCfh7NcIixcbiAgICAgIFwiY29kZVwiOiBcIkNOXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis4NlwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzg2WzAtOV17MTF9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis4NiAxMzEgMjM0NSA2Nzg5XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkNocmlzdG1hcyBJc2xhbmRcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6jwn4e9XCIsXG4gICAgICBcImNvZGVcIjogXCJDWFwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNjFcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs2MVswLTldezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis2MSA0IDEyMzQgNTY3OFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJDb2NvcyAoS2VlbGluZykgSXNsYW5kc1wiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HqPCfh6hcIixcbiAgICAgIFwiY29kZVwiOiBcIkNDXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis2MVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzYxWzAtOV17OX0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzYxIDQgMTIzNCA1Njc4XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkNvbG9tYmlhXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4eo8J+HtFwiLFxuICAgICAgXCJjb2RlXCI6IFwiQ09cIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzU3XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNTdbMC05XXsxMH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzU3IDMxMiAzNDUgNjc4OVwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJDb21vcm9zXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ew8J+HslwiLFxuICAgICAgXCJjb2RlXCI6IFwiS01cIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzI2OVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzI2OVswLTldezd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyNjkgMzIxIDIzNDVcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiQ29uZ29cIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6jwn4esXCIsXG4gICAgICBcImNvZGVcIjogXCJDR1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjQyXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMjQyWzAtOV17OX0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzI0MiAwNiAxMjMgNDU2N1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJDb25nbywgVGhlIERlbW9jcmF0aWMgUmVwdWJsaWMgb2YgdGhlIENvbmdvXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4eo8J+HqVwiLFxuICAgICAgXCJjb2RlXCI6IFwiQ0RcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzI0M1wiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzI0M1s4OV1cXFxcZHs4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMjQzIDlYWFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzI0MyA5OTEyMzQ1NjdcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiQ29vayBJc2xhbmRzXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4eo8J+HsFwiLFxuICAgICAgXCJjb2RlXCI6IFwiQ0tcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzY4MlwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzY4MlswLTldezV9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis2ODIgNzEgMjM0XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkNvc3RhIFJpY2FcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6jwn4e3XCIsXG4gICAgICBcImNvZGVcIjogXCJDUlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNTA2XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNTA2WzAtOV17OH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzUwNiA4MTIzIDQ1NjdcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiQ290ZSBkJ0l2b2lyZVwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HqPCfh65cIixcbiAgICAgIFwiY29kZVwiOiBcIkNJXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisyMjVcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsyMjVbMC05XXs4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMjI1IDAxIDIzIDQ1IDY3XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkNyb2F0aWFcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh63wn4e3XCIsXG4gICAgICBcImNvZGVcIjogXCJIUlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMzg1XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMzg1WzAtOV17OCw5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMzg1IDk4IDEyMyA0NTZcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiQ3ViYVwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HqPCfh7pcIixcbiAgICAgIFwiY29kZVwiOiBcIkNVXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis1M1wiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzUzWzAtOV17OH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzUzIDUgMTIzNCA1Njc4XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkN5cHJ1c1wiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HqPCfh75cIixcbiAgICAgIFwiY29kZVwiOiBcIkNZXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIiszNTdcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCszNTdbMC05XXs4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMzU3IDk2IDEyMyA0NTZcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiQ3plY2ggUmVwdWJsaWNcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6jwn4e/XCIsXG4gICAgICBcImNvZGVcIjogXCJDWlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNDIwXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNDIwWzAtOV17OX0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzQyMCA2MDEgMTIzIDQ1NlwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJEZW5tYXJrXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ep8J+HsFwiLFxuICAgICAgXCJjb2RlXCI6IFwiREtcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzQ1XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNDVbMC05XXs4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNDUgMjAgMTIgMzQgNTZcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiRGppYm91dGlcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6nwn4evXCIsXG4gICAgICBcImNvZGVcIjogXCJESlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjUzXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMjUzWzAtOV17OH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzI1MyA3NyAxMiAzNCA1NlwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJEb21pbmljYVwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HqfCfh7JcIixcbiAgICAgIFwiY29kZVwiOiBcIkRNXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisxNzY3XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMTc2N1swLTldezd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisxNzY3IDIzNSAxMjM0XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkRvbWluaWNhbiBSZXB1YmxpY1wiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HqfCfh7RcIixcbiAgICAgIFwiY29kZVwiOiBcIkRPXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisxODQ5XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMTg0OVswLTldezd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisxODQ5IDIzNCA1Njc4XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkVjdWFkb3JcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6rwn4eoXCIsXG4gICAgICBcImNvZGVcIjogXCJFQ1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNTkzXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNTkzWzAtOV17OX0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzU5MyA5OSAxMjMgNDU2N1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJFZ3lwdFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HqvCfh6xcIixcbiAgICAgIFwiY29kZVwiOiBcIkVHXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisyMFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzIwWzAtOV17MTB9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyMCAxMDAgMTIzIDQ1NjdcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiRWwgU2FsdmFkb3JcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7jwn4e7XCIsXG4gICAgICBcImNvZGVcIjogXCJTVlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNTAzXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNTAzWzAtOV17OH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzUwMyA3MTIzIDQ1NjdcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiRXF1YXRvcmlhbCBHdWluZWFcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6zwn4e2XCIsXG4gICAgICBcImNvZGVcIjogXCJHUVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjQwXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMjQwWzAtOV17OX0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzI0MCAyMjIgMTIzIDQ1NlwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJFcml0cmVhXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4eq8J+Ht1wiLFxuICAgICAgXCJjb2RlXCI6IFwiRVJcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzI5MVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzI5MVswLTldezd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyOTEgNyAxMjMgNDU2XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkVzdG9uaWFcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6rwn4eqXCIsXG4gICAgICBcImNvZGVcIjogXCJFRVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMzcyXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMzcyWzAtOV17Nyw4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMzcyIDUxMjMgNDU2XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkV0aGlvcGlhXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4eq8J+HuVwiLFxuICAgICAgXCJjb2RlXCI6IFwiRVRcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzI1MVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzI1MVswLTldezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyNTEgOTEgMTIzIDQ1NjdcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiRmFsa2xhbmQgSXNsYW5kcyAoTWFsdmluYXMpXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4er8J+HsFwiLFxuICAgICAgXCJjb2RlXCI6IFwiRktcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzUwMFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzUwMFxcXFxkezV9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis1MDAgWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIis1MDAgMTIzNDVcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiRmFyb2UgSXNsYW5kc1wiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+Hq/Cfh7RcIixcbiAgICAgIFwiY29kZVwiOiBcIkZPXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisyOThcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsyOThbMC05XXs2fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMjk4IDEyMyA0NTZcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiRmlqaVwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+Hq/Cfh69cIixcbiAgICAgIFwiY29kZVwiOiBcIkZKXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis2NzlcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs2NzlbMC05XXs3LDh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis2NzkgNzAxIDIzNDVcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiRmlubGFuZFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+Hq/Cfh65cIixcbiAgICAgIFwiY29kZVwiOiBcIkZJXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIiszNThcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCszNThbMC05XXs2LDEyfSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMzU4IDQwIDEyMyA0NTY3XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkZyYW5jZVwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+Hq/Cfh7dcIixcbiAgICAgIFwiY29kZVwiOiBcIkZSXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIiszM1wiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzMzWzAtOV17OX0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzMzIDYgMTIgMzQgNTYgNzhcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiRnJlbmNoIEd1aWFuYVwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HrPCfh6tcIixcbiAgICAgIFwiY29kZVwiOiBcIkdGXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis1OTRcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs1OTRbMC05XXs5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNTk0IDY5NCAxMiAzNCA1NlwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJGcmVuY2ggUG9seW5lc2lhXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e18J+Hq1wiLFxuICAgICAgXCJjb2RlXCI6IFwiUEZcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzY4OVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzY4OVswLTldezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis2ODkgODcgMTIgMzQgNTZcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiRnJlbmNoIFNvdXRoZXJuIFRlcnJpdG9yaWVzXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e58J+Hq1wiLFxuICAgICAgXCJjb2RlXCI6IFwiVEZcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzI2MlwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzI2MlswLTldezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyNjIgNjM5IDEyIDM0IDU2XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkdhYm9uXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4es8J+HplwiLFxuICAgICAgXCJjb2RlXCI6IFwiR0FcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzI0MVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzI0MVswLTldezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyNDEgMDYgMTIgMzQgNTZcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiR2FtYmlhXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4es8J+HslwiLFxuICAgICAgXCJjb2RlXCI6IFwiR01cIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzIyMFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzIyMFswLTldezd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyMjAgMzAxIDIzNDVcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiR2VvcmdpYVwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HrPCfh6pcIixcbiAgICAgIFwiY29kZVwiOiBcIkdFXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis5OTVcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs5OTVbMC05XXs5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrOTk1IDU1NSAxMiAzNCA1NlwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJHZXJtYW55XCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ep8J+HqlwiLFxuICAgICAgXCJjb2RlXCI6IFwiREVcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzQ5XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNDlbMC05XXsxMCwxMX0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzQ5IDE1MSAxMjM0IDU2NzhcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiR2hhbmFcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6zwn4etXCIsXG4gICAgICBcImNvZGVcIjogXCJHSFwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjMzXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMjMzWzAtOV17OX0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzIzMyAyNCAxMjMgNDU2N1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJHaWJyYWx0YXJcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6zwn4euXCIsXG4gICAgICBcImNvZGVcIjogXCJHSVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMzUwXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMzUwWzAtOV17OH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzM1MCA1NzEyMzQ1NlwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJHcmVlY2VcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6zwn4e3XCIsXG4gICAgICBcImNvZGVcIjogXCJHUlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMzBcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCszMFswLTldezEwfSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMzAgNjkxIDIzNCA1Njc4XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkdyZWVubGFuZFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HrPCfh7FcIixcbiAgICAgIFwiY29kZVwiOiBcIkdMXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisyOTlcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsyOTlbMC05XXs2fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMjk5IDIyIDEyIDM0XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkdyZW5hZGFcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6zwn4epXCIsXG4gICAgICBcImNvZGVcIjogXCJHRFwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMTQ3M1wiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzE0NzNbMC05XXs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMTQ3MyA0MDMgMTIzNFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJHdWFkZWxvdXBlXCIsXG4gICAgICBcImNvZGVcIjogXCJHUFwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNTkwXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNTkwWzY3XVxcXFxkezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis1OTAgNlhYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis1OTAgWFhYIFhYIFhYIFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4es8J+HtVwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJHdWFtXCIsXG4gICAgICBcImNvZGVcIjogXCJHVVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMTY3MVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzE2NzFcXFxcZHs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMTY3MSBYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIisxNjcxIFhYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4es8J+HulwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJHdWF0ZW1hbGFcIixcbiAgICAgIFwiY29kZVwiOiBcIkdUXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis1MDJcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs1MDJbMi05XVxcXFxkezd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis1MDIgOFhYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzUwMiBYWFhYIFhYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6zwn4e5XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkd1ZXJuc2V5XCIsXG4gICAgICBcImNvZGVcIjogXCJHR1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNDRcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs0NFsxNDg3XVxcXFxkezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis0NCAxNDgxIFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrNDQgMTQ4MSBYWFhYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6zwn4esXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkd1aW5lYVwiLFxuICAgICAgXCJjb2RlXCI6IFwiR05cIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzIyNFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzIyNFxcXFxkezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyMjQgWFhYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIisyMjQgWFhYIFhYWCBYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6zwn4ezXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkd1aW5lYS1CaXNzYXVcIixcbiAgICAgIFwiY29kZVwiOiBcIkdXXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisyNDVcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsyNDVcXFxcZHs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMjQ1IFhYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzI0NSBYWFggWFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HrPCfh7xcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiR3V5YW5hXCIsXG4gICAgICBcImNvZGVcIjogXCJHWVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNTkyXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNTkyWzItOV1cXFxcZHs2fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNTkyIDZYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzU5MiBYWFggWFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HrPCfh75cIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiSGFpdGlcIixcbiAgICAgIFwiY29kZVwiOiBcIkhUXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis1MDlcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs1MDlbMi05XVxcXFxkezd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis1MDkgMlhYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzUwOSBYWFhYIFhYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh63wn4e5XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkhlYXJkIElzbGFuZCBhbmQgTWNkb25hbGQgSXNsYW5kc1wiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HrfCfh7JcIixcbiAgICAgIFwiY29kZVwiOiBcIkhNXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis2NzJcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs2NzJcXFxcZHs2fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNjcyIFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzY3MiAxMjM0NTZcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiSG9seSBTZWUgKFZhdGljYW4gQ2l0eSBTdGF0ZSlcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7vwn4emXCIsXG4gICAgICBcImNvZGVcIjogXCJWQVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMzc5XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMzc5XFxcXGR7MTB9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIiszNzkgWFhYWFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzM3OSAwNjEyMzQ1Njc4XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkhvbmR1cmFzXCIsXG4gICAgICBcImNvZGVcIjogXCJITlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNTA0XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNTA0WzItOV1cXFxcZHs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNTA0IDlYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis1MDQgWFhYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4et8J+Hs1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJIb25nIEtvbmdcIixcbiAgICAgIFwiY29kZVwiOiBcIkhLXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis4NTJcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs4NTJbMi05XVxcXFxkezd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis4NTIgNVhYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzg1MiBYWFhYIFhYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh63wn4ewXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkh1bmdhcnlcIixcbiAgICAgIFwiY29kZVwiOiBcIkhVXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIiszNlwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzM2WzEtOV1cXFxcZHs3LDh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIiszNiAzMFhYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzM2IFhYIFhYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4et8J+HulwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJJY2VsYW5kXCIsXG4gICAgICBcImNvZGVcIjogXCJJU1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMzU0XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMzU0XFxcXGR7N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzM1NCBYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIiszNTQgWFhYIFhYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh67wn4e4XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkluZGlhXCIsXG4gICAgICBcImNvZGVcIjogXCJJTlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrOTFcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs5MVs2Nzg5XVxcXFxkezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis5MSA5WFhYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis5MSBYWFhYWCBYWFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HrvCfh7NcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiSW5kb25lc2lhXCIsXG4gICAgICBcImNvZGVcIjogXCJJRFwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNjJcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs2Mls4XVxcXFxkezksMTB9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis2MiA4WFhYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis2MiA4WFggWFhYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4eu8J+HqVwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJJcmFuLCBJc2xhbWljIFJlcHVibGljIG9mIFBlcnNpYW4gR3VsZlwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HrvCfh7dcIixcbiAgICAgIFwiY29kZVwiOiBcIklSXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis5OFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzk4WzEtOV1cXFxcZHs5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrOTggOVhYWFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzk4IDkxMjM0NTY3ODlcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiSXJhcVwiLFxuICAgICAgXCJjb2RlXCI6IFwiSVFcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzk2NFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzk2NFs3XVxcXFxkezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis5NjQgN1hYWFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrOTY0IDdYWCBYWFggWFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HrvCfh7ZcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiSXJlbGFuZFwiLFxuICAgICAgXCJjb2RlXCI6IFwiSUVcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzM1M1wiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzM1M1sxLTldXFxcXGR7OH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzM1MyA4WFhYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzM1MyBYWCBYWFggWFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HrvCfh6pcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiSXNsZSBvZiBNYW5cIixcbiAgICAgIFwiY29kZVwiOiBcIklNXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis0NFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzQ0WzE2MjRdXFxcXGR7Nn0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzQ0IDE2MjQgWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis0NCAxNjI0IFhYWFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HrvCfh7JcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiSXNyYWVsXCIsXG4gICAgICBcImNvZGVcIjogXCJJTFwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrOTcyXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrOTcyWzUtOV1cXFxcZHs4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrOTcyIDVYWFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrOTcyIDVYIFhYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4eu8J+HsVwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJJdGFseVwiLFxuICAgICAgXCJjb2RlXCI6IFwiSVRcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzM5XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMzlbMC05XVxcXFxkezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIiszOSAzWFhYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIiszOSAzWFggWFhYIFhYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh67wn4e5XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkphbWFpY2FcIixcbiAgICAgIFwiY29kZVwiOiBcIkpNXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisxODc2XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMTg3NlxcXFxkezd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisxODc2IFhYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzE4NzYgWFhYIFhYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6/wn4eyXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkphcGFuXCIsXG4gICAgICBcImNvZGVcIjogXCJKUFwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrODFcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs4MVswLTldXFxcXGR7OX0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzgxIDlYWFhYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzgxIFhYIFhYWFggWFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+Hr/Cfh7VcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiSmVyc2V5XCIsXG4gICAgICBcImNvZGVcIjogXCJKRVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNDRcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs0NFsxNTM0XVxcXFxkezZ9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis0NCAxNTM0IFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrNDQgMTUzNCBYWFhYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6/wn4eqXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkpvcmRhblwiLFxuICAgICAgXCJjb2RlXCI6IFwiSk9cIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzk2MlwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzk2Mls3XVxcXFxkezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis5NjIgN1hYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis5NjIgNyBYWFhYIFhYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6/wn4e0XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkthemFraHN0YW5cIixcbiAgICAgIFwiY29kZVwiOiBcIktaXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis3XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrN1s3XVxcXFxkezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis3IDdYWFhYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzcgN1hYIFhYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ew8J+Hv1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJLZW55YVwiLFxuICAgICAgXCJjb2RlXCI6IFwiS0VcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzI1NFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzI1NFs3XVxcXFxkezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyNTQgN1hYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIisyNTQgN1hYIFhYWCBYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Dwn4eqXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIktpcmliYXRpXCIsXG4gICAgICBcImNvZGVcIjogXCJLSVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNjg2XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNjg2XFxcXGR7NX0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzY4NiBYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrNjg2IFhYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ew8J+HrlwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJLb3JlYSwgRGVtb2NyYXRpYyBQZW9wbGUncyBSZXB1YmxpYyBvZiBLb3JlYVwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HsPCfh7VcIixcbiAgICAgIFwiY29kZVwiOiBcIktQXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis4NTBcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs4NTBcXFxcZHs3LDEwfSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrODUwIFhYWFhYWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIis4NTAgMjEyMzQ1Njc4OVwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJLb3JlYSwgUmVwdWJsaWMgb2YgU291dGggS29yZWFcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Dwn4e3XCIsXG4gICAgICBcImNvZGVcIjogXCJLUlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrODJcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs4MlxcXFxkezksMTB9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis4MiAxMFhYWFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrODIgMTAxMjM0NTY3OFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJLb3Nvdm9cIixcbiAgICAgIFwiY29kZVwiOiBcIlhLXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIiszODNcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCszODNbNC05XVxcXFxkezd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIiszODMgNFhYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzM4MyA0WCBYWFggWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e98J+HsFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJLdXdhaXRcIixcbiAgICAgIFwiY29kZVwiOiBcIktXXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis5NjVcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs5NjVbNS05XVxcXFxkezd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis5NjUgNVhYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzk2NSA1WFhYIFhYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Dwn4e8XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkt5cmd5enN0YW5cIixcbiAgICAgIFwiY29kZVwiOiBcIktHXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis5OTZcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs5OTZbNS05XVxcXFxkezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis5OTYgNVhYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis5OTYgWFhYIFhYWCBYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Dwn4esXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkxhb3NcIixcbiAgICAgIFwiY29kZVwiOiBcIkxBXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis4NTZcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs4NTZbMl1cXFxcZHs4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrODU2IDJYWFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrODU2IDIwIFhYWCBYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Hwn4emXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkxhdHZpYVwiLFxuICAgICAgXCJjb2RlXCI6IFwiTFZcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzM3MVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzM3MVsyXVxcXFxkezd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIiszNzEgMlhYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzM3MSAyWFhYIFhYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Hwn4e7XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkxlYmFub25cIixcbiAgICAgIFwiY29kZVwiOiBcIkxCXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis5NjFcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs5NjFbMy05XVxcXFxkezYsN30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzk2MSAzWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis5NjEgMyBYWFggWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ex8J+Hp1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJMZXNvdGhvXCIsXG4gICAgICBcImNvZGVcIjogXCJMU1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjY2XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMjY2WzItOV1cXFxcZHs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMjY2IDVYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIisyNjYgNVhYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ex8J+HuFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJMaWJlcmlhXCIsXG4gICAgICBcImNvZGVcIjogXCJMUlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjMxXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMjMxWzQtOV1cXFxcZHs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMjMxIDRYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIisyMzEgWFggWFhYIFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HsfCfh7dcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiTGlieWFuIEFyYWIgSmFtYWhpcml5YVwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HsfCfh75cIixcbiAgICAgIFwiY29kZVwiOiBcIkxZXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisyMThcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsyMThbODldXFxcXGR7OH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzIxOCA5WFhYWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIisyMTggOTEyMzQ1Njc4XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkxpZWNodGVuc3RlaW5cIixcbiAgICAgIFwiY29kZVwiOiBcIkxJXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis0MjNcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs0MjNbMi05XVxcXFxkezZ9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis0MjMgNlhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrNDIzIFhYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ex8J+HrlwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJMaXRodWFuaWFcIixcbiAgICAgIFwiY29kZVwiOiBcIkxUXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIiszNzBcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCszNzBbNl1cXFxcZHs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMzcwIDZYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIiszNzAgNlhYIFhYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ex8J+HuVwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJMdXhlbWJvdXJnXCIsXG4gICAgICBcImNvZGVcIjogXCJMVVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMzUyXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMzUyWzI2ODldXFxcXGR7N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzM1MiA2WFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrMzUyIFhYWCBYWFggWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ex8J+HulwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJNYWNhb1wiLFxuICAgICAgXCJjb2RlXCI6IFwiTU9cIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzg1M1wiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzg1M1s2XVxcXFxkezd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis4NTMgNlhYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzg1MyBYWFhYIFhYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Lwn4e0XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIk1hY2Vkb25pYVwiLFxuICAgICAgXCJjb2RlXCI6IFwiTUtcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzM4OVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzM4OVsyN11cXFxcZHs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMzg5IDdYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIiszODkgWFggWFhYIFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HsvCfh7BcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiTWFkYWdhc2NhclwiLFxuICAgICAgXCJjb2RlXCI6IFwiTUdcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzI2MVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzI2MVszXVxcXFxkezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyNjEgM1hYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIisyNjEgM1ggWFhYIFhYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Lwn4esXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIk1hbGF3aVwiLFxuICAgICAgXCJjb2RlXCI6IFwiTVdcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzI2NVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzI2NVsxLTldXFxcXGR7N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzI2NSA5WFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrMjY1IDlYWCBYWFggWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ey8J+HvFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJNYWxheXNpYVwiLFxuICAgICAgXCJjb2RlXCI6IFwiTVlcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzYwXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNjBbMS05XVxcXFxkezcsOX0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzYwIDFYWFhYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzYwIDFYIFhYWFggWFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HsvCfh75cIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiTWFsZGl2ZXNcIixcbiAgICAgIFwiY29kZVwiOiBcIk1WXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis5NjBcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs5NjBbNy05XVxcXFxkezZ9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis5NjAgN1hYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrOTYwIFhYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ey8J+Hu1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJNYWxpXCIsXG4gICAgICBcImNvZGVcIjogXCJNTFwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjIzXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMjIzWzYtOV1cXFxcZHs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMjIzIDdYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIisyMjMgWFggWFggWFggWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Lwn4exXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIk1hbHRhXCIsXG4gICAgICBcImNvZGVcIjogXCJNVFwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMzU2XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMzU2WzIzNzldXFxcXGR7N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzM1NiA3WFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrMzU2IFhYWFggWFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HsvCfh7lcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiTWFyc2hhbGwgSXNsYW5kc1wiLFxuICAgICAgXCJjb2RlXCI6IFwiTUhcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzY5MlwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzY5MlsyLTldXFxcXGR7Nn0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzY5MiAyWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis2OTIgWFhYIFhYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Lwn4etXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIk1hcnRpbmlxdWVcIixcbiAgICAgIFwiY29kZVwiOiBcIk1RXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis1OTZcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs1OTZbNi03XVxcXFxkezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis1OTYgNlhYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis1OTYgWFhYIFhYIFhYIFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ey8J+HtlwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJNYXVyaXRhbmlhXCIsXG4gICAgICBcImNvZGVcIjogXCJNUlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjIyXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMjIyWzItOV1cXFxcZHs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMjIyIDRYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIisyMjIgWFhYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ey8J+Ht1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJNYXVyaXRpdXNcIixcbiAgICAgIFwiY29kZVwiOiBcIk1VXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisyMzBcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsyMzBbMi05XVxcXFxkezZ9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyMzAgNVhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrMjMwIFhYWFggWFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HsvCfh7pcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiTWF5b3R0ZVwiLFxuICAgICAgXCJjb2RlXCI6IFwiWVRcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzI2MlwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzI2MlsyLTldXFxcXGR7N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzI2MiA2WFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrMjYyIFhYWCBYWCBYWCBYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HvvCfh7lcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiTWV4aWNvXCIsXG4gICAgICBcImNvZGVcIjogXCJNWFwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNTJcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs1MlsxXVxcXFxkezEwfSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNTIgMVhYWFhYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzUyIDEgWFhYIFhYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ey8J+HvVwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJNaWNyb25lc2lhLCBGZWRlcmF0ZWQgU3RhdGVzIG9mIE1pY3JvbmVzaWFcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6vwn4eyXCIsXG4gICAgICBcImNvZGVcIjogXCJGTVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNjkxXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNjkxWzEtOV1cXFxcZHs2fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNjkxIFhYWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIis2OTEgMzIwMTIzNFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJNb2xkb3ZhXCIsXG4gICAgICBcImNvZGVcIjogXCJNRFwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMzczXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMzczWzY3XVxcXFxkezd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIiszNzMgNlhYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzM3MyBYWCBYWFggWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ey8J+HqVwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJNb25hY29cIixcbiAgICAgIFwiY29kZVwiOiBcIk1DXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIiszNzdcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCszNzdbNC05XVxcXFxkezcsOH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzM3NyA2WFhYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzM3NyA2IFhYIFhYIFhYIFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ey8J+HqFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJNb25nb2xpYVwiLFxuICAgICAgXCJjb2RlXCI6IFwiTU5cIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzk3NlwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzk3Nls1LTldXFxcXGR7N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzk3NiA4WFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrOTc2IFhYIFhYIFhYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Lwn4ezXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIk1vbnRlbmVncm9cIixcbiAgICAgIFwiY29kZVwiOiBcIk1FXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIiszODJcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCszODJbMi05XVxcXFxkezcsOH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzM4MiA2WFhYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzM4MiA2WCBYWFggWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ey8J+HqlwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJNb250c2VycmF0XCIsXG4gICAgICBcImNvZGVcIjogXCJNU1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMTY2NFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzE2NjRcXFxcZHs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMTY2NCBYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIisxNjY0IFhYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ey8J+HuFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJNb3JvY2NvXCIsXG4gICAgICBcImNvZGVcIjogXCJNQVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjEyXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMjEyWzUtOV1cXFxcZHs4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMjEyIDZYWFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrMjEyIDZYWCBYWFggWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ey8J+HplwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJNb3phbWJpcXVlXCIsXG4gICAgICBcImNvZGVcIjogXCJNWlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjU4XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMjU4WzI4XVxcXFxkezd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyNTggOFhYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzI1OCA4WCBYWFggWFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HsvCfh79cIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiTXlhbm1hclwiLFxuICAgICAgXCJjb2RlXCI6IFwiTU1cIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzk1XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrOTVbNC05XVxcXFxkezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis5NSA5WFhYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzk1IDkgWFhYIFhYWCBYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Lwn4eyXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIk5hbWliaWFcIixcbiAgICAgIFwiY29kZVwiOiBcIk5BXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisyNjRcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsyNjRbNi04XVxcXFxkezcsOH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzI2NCA4MVhYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzI2NCA4MSBYWFggWFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+Hs/Cfh6ZcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiTmF1cnVcIixcbiAgICAgIFwiY29kZVwiOiBcIk5SXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis2NzRcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs2NzRbMC05XVxcXFxkezR9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis2NzQgWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzY3NCBYWFggWFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+Hs/Cfh7dcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiTmVwYWxcIixcbiAgICAgIFwiY29kZVwiOiBcIk5QXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis5NzdcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs5NzdbOV1cXFxcZHs5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrOTc3IDlYWFhYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzk3NyA5OFggWFhYIFhYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Pwn4e1XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIk5ldGhlcmxhbmRzXCIsXG4gICAgICBcImNvZGVcIjogXCJOTFwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMzFcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCszMVsxLTldXFxcXGR7OH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzMxIDZYWFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrMzEgNiBYWFhYIFhYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Pwn4exXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIk5ldGhlcmxhbmRzIEFudGlsbGVzXCIsXG4gICAgICBcImNvZGVcIjogXCJBTlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNTk5XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNTk5WzldXFxcXGR7Nn0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzU5OSA5WFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis1OTkgOVhYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCJcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiTmV3IENhbGVkb25pYVwiLFxuICAgICAgXCJjb2RlXCI6IFwiTkNcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzY4N1wiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzY4N1xcXFxkezZ9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis2ODcgWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis2ODcgWFggWFggWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Pwn4eoXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIk5ldyBaZWFsYW5kXCIsXG4gICAgICBcImNvZGVcIjogXCJOWlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNjRcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs2NFsyLTldXFxcXGR7Nyw5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNjQgMjFYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis2NCAyMSBYWFggWFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+Hs/Cfh79cIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiTmljYXJhZ3VhXCIsXG4gICAgICBcImNvZGVcIjogXCJOSVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNTA1XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNTA1WzUtOF1cXFxcZHs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNTA1IDhYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis1MDUgWFhYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ez8J+HrlwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJOaWdlclwiLFxuICAgICAgXCJjb2RlXCI6IFwiTkVcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzIyN1wiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzIyN1swLTldXFxcXGR7N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzIyNyA5WFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrMjI3IFhYIFhYIFhYIFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ez8J+HqlwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJOaWdlcmlhXCIsXG4gICAgICBcImNvZGVcIjogXCJOR1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjM0XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMjM0Wzc4OV1cXFxcZHs5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMjM0IDhYWFhYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzIzNCA4WFggWFhYIFhYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Pwn4esXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIk5pdWVcIixcbiAgICAgIFwiY29kZVwiOiBcIk5VXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis2ODNcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs2ODNcXFxcZHs0fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNjgzIFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzY4MyBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ez8J+HulwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJOb3Jmb2xrIElzbGFuZFwiLFxuICAgICAgXCJjb2RlXCI6IFwiTkZcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzY3MlwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzY3MlszXVxcXFxkezV9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis2NzIgM1hYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis2NzIgMyBYWCBYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Pwn4erXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIk5vcnRoZXJuIE1hcmlhbmEgSXNsYW5kc1wiLFxuICAgICAgXCJjb2RlXCI6IFwiTVBcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzE2NzBcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsxNjcwXFxcXGR7N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzE2NzAgWFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrMTY3MCBYWFggWFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HsvCfh7VcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiTm9yd2F5XCIsXG4gICAgICBcImNvZGVcIjogXCJOT1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNDdcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs0N1syLTldXFxcXGR7N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzQ3IDRYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis0NyBYWFggWFggWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ez8J+HtFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJPbWFuXCIsXG4gICAgICBcImNvZGVcIjogXCJPTVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrOTY4XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrOTY4Wzc5XVxcXFxkezd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis5NjggOVhYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzk2OCA5WFhYIFhYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Twn4eyXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlBha2lzdGFuXCIsXG4gICAgICBcImNvZGVcIjogXCJQS1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrOTJcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs5MlszXVxcXFxkezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis5MiAzWFhYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis5MiAzWFggWFhYIFhYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Xwn4ewXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlBhbGF1XCIsXG4gICAgICBcImNvZGVcIjogXCJQV1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNjgwXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNjgwXFxcXGR7N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzY4MCBYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis2ODAgWFhYIFhYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Xwn4e8XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlBhbGVzdGluaWFuIFRlcnJpdG9yeSwgT2NjdXBpZWRcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Xwn4e4XCIsXG4gICAgICBcImNvZGVcIjogXCJQU1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrOTcwXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrOTcwWzU5XVxcXFxkezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis5NzAgNVhYWFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrOTcwIDU5OTEyMzQ1NlwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJQYW5hbWFcIixcbiAgICAgIFwiY29kZVwiOiBcIlBBXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis1MDdcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs1MDdbMS05XVxcXFxkezZ9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis1MDcgNlhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrNTA3IFhYWFggWFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HtfCfh6ZcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiUGFwdWEgTmV3IEd1aW5lYVwiLFxuICAgICAgXCJjb2RlXCI6IFwiUEdcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzY3NVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzY3NVs3XVxcXFxkezd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis2NzUgN1hYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzY3NSA3WFhYIFhYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Xwn4esXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlBhcmFndWF5XCIsXG4gICAgICBcImNvZGVcIjogXCJQWVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNTk1XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNTk1WzldXFxcXGR7OH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzU5NSA5WFhYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzU5NSA5WFggWFhYIFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HtfCfh75cIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiUGVydVwiLFxuICAgICAgXCJjb2RlXCI6IFwiUEVcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzUxXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNTFbOV1cXFxcZHs4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNTEgOVhYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis1MSA5WFggWFhYIFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HtfCfh6pcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiUGhpbGlwcGluZXNcIixcbiAgICAgIFwiY29kZVwiOiBcIlBIXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis2M1wiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzYzWzldXFxcXGR7OX0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzYzIDlYWFhYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzYzIDlYWCBYWFggWFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HtfCfh61cIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiUGl0Y2Fpcm5cIixcbiAgICAgIFwiY29kZVwiOiBcIlBOXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis2NFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzY0XFxcXGR7MTB9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis2NCBYWFhYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis2NCBYWFggWFhYIFhYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Xwn4ezXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlBvbGFuZFwiLFxuICAgICAgXCJjb2RlXCI6IFwiUExcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzQ4XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNDhbMS05XVxcXFxkezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis0OCA1WFhYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzQ4IDVYWCBYWFggWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e18J+HsVwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJQb3J0dWdhbFwiLFxuICAgICAgXCJjb2RlXCI6IFwiUFRcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzM1MVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzM1MVsxLTldXFxcXGR7OH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzM1MSA5WFhYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzM1MSA5WFggWFhYIFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HtfCfh7lcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiUHVlcnRvIFJpY29cIixcbiAgICAgIFwiY29kZVwiOiBcIlBSXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisxOTM5XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMTkzOVxcXFxkezd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisxOTM5IFhYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzE5MzkgWFhYIFhYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Xwn4e3XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlFhdGFyXCIsXG4gICAgICBcImNvZGVcIjogXCJRQVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrOTc0XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrOTc0WzMtN11cXFxcZHs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrOTc0IDNYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis5NzQgWFhYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e28J+HplwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJSb21hbmlhXCIsXG4gICAgICBcImNvZGVcIjogXCJST1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNDBcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs0MFs3XVxcXFxkezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis0MCA3WFhYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzQwIDdYWCBYWFggWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e38J+HtFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJSdXNzaWFcIixcbiAgICAgIFwiY29kZVwiOiBcIlJVXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis3XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrN1s5XVxcXFxkezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis3IDlYWFhYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzcgOVhYIFhYWCBYWCBYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+Ht/Cfh7pcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiUndhbmRhXCIsXG4gICAgICBcImNvZGVcIjogXCJSV1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjUwXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMjUwWzddXFxcXGR7OH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzI1MCA3WFhYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzI1MCA3WFggWFhYIFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+Ht/Cfh7xcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiUmV1bmlvblwiLFxuICAgICAgXCJjb2RlXCI6IFwiUkVcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzI2MlwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzI2Mls2LTddXFxcXGR7OH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzI2MiA2WFhYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzI2MiA2WFggWFggWFggWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7fwn4eqXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlNhaW50IEJhcnRoZWxlbXlcIixcbiAgICAgIFwiY29kZVwiOiBcIkJMXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis1OTBcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs1OTBbNi03XVxcXFxkezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis1OTAgNlhYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis1OTAgNlhYIFhYIFhYIFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4en8J+HsVwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJTYWludCBIZWxlbmEsIEFzY2Vuc2lvbiBhbmQgVHJpc3RhbiBEYSBDdW5oYVwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HuPCfh61cIixcbiAgICAgIFwiY29kZVwiOiBcIlNIXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisyOTBcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsyOTBcXFxcZHs0fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMjkwIFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIisyOTAgMjM4MFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJTYWludCBLaXR0cyBhbmQgTmV2aXNcIixcbiAgICAgIFwiY29kZVwiOiBcIktOXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisxODY5XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMTg2OVxcXFxkezd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisxODY5IFhYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzE4NjkgWFhYIFhYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Dwn4ezXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlNhaW50IEx1Y2lhXCIsXG4gICAgICBcImNvZGVcIjogXCJMQ1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMTc1OFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzE3NThcXFxcZHs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMTc1OCBYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIisxNzU4IFhYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ex8J+HqFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJTYWludCBNYXJ0aW5cIixcbiAgICAgIFwiY29kZVwiOiBcIk1GXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis1OTBcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs1OTBbNi03XVxcXFxkezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis1OTAgNlhYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis1OTAgNlhYIFhYIFhYIFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ey8J+Hq1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJTYWludCBQaWVycmUgYW5kIE1pcXVlbG9uXCIsXG4gICAgICBcImNvZGVcIjogXCJQTVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNTA4XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNTA4XFxcXGR7Nn0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzUwOCBYWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIis1MDggNDEyMzQ1XCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e18J+HslwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJTYWludCBWaW5jZW50IGFuZCB0aGUgR3JlbmFkaW5lc1wiLFxuICAgICAgXCJjb2RlXCI6IFwiVkNcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzE3ODRcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsxNzg0XFxcXGR7N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzE3ODQgWFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzE3ODQgNDU2MTIzNFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+Hu/Cfh6hcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiU2Ftb2FcIixcbiAgICAgIFwiY29kZVwiOiBcIldTXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis2ODVcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs2ODVcXFxcZHs1LDd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis2ODUgWFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrNjg1IDcyMTIzNFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HvPCfh7hcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiU2FuIE1hcmlub1wiLFxuICAgICAgXCJjb2RlXCI6IFwiU01cIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzM3OFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzM3OFxcXFxkezYsMTB9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIiszNzggWFhYWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIiszNzggMDU0OTEyMzQ1NlwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HuPCfh7JcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiU2FvIFRvbWUgYW5kIFByaW5jaXBlXCIsXG4gICAgICBcImNvZGVcIjogXCJTVFwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjM5XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMjM5XFxcXGR7N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzIzOSBYWFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrMjM5IDk5MTIzNDVcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7jwn4e5XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlNhdWRpIEFyYWJpYVwiLFxuICAgICAgXCJjb2RlXCI6IFwiU0FcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzk2NlwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzk2NlxcXFxkezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis5NjYgNVhYWFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrOTY2IDUxMjM0NTY3OFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HuPCfh6ZcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiU2VuZWdhbFwiLFxuICAgICAgXCJjb2RlXCI6IFwiU05cIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzIyMVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzIyMVxcXFxkezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyMjEgN1hYWFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrMjIxIDc3MTIzNDU2N1wiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HuPCfh7NcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiU2VyYmlhXCIsXG4gICAgICBcImNvZGVcIjogXCJSU1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMzgxXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMzgxXFxcXGR7OCw5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMzgxIDZYWFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzM4MSA2MDEyMzQ1NjdcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7fwn4e4XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlNleWNoZWxsZXNcIixcbiAgICAgIFwiY29kZVwiOiBcIlNDXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisyNDhcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsyNDhcXFxcZHs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMjQ4IFhYWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIisyNDggMjUxMjM0NVwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HuPCfh6hcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiU2llcnJhIExlb25lXCIsXG4gICAgICBcImNvZGVcIjogXCJTTFwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjMyXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMjMyXFxcXGR7OH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzIzMiA3WFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzIzMiA3NjEyMzQ1NlwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HuPCfh7FcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiU2luZ2Fwb3JlXCIsXG4gICAgICBcImNvZGVcIjogXCJTR1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNjVcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs2NVxcXFxkezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis2NSA4WFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzY1IDgxMjM0NTY3XCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e48J+HrFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJTbG92YWtpYVwiLFxuICAgICAgXCJjb2RlXCI6IFwiU0tcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzQyMVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzQyMVxcXFxkezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis0MjEgOVhYWFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrNDIxIDkxMjM0NTY3OFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HuPCfh7BcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiU2xvdmVuaWFcIixcbiAgICAgIFwiY29kZVwiOiBcIlNJXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIiszODZcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCszODZcXFxcZHs4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMzg2IDNYWFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrMzg2IDMxMjM0NTY3XCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e48J+HrlwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJTb2xvbW9uIElzbGFuZHNcIixcbiAgICAgIFwiY29kZVwiOiBcIlNCXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis2NzdcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs2NzdcXFxcZHs1LDd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis2NzcgN1hYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrNjc3IDcxMjM0NTZcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7jwn4enXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlNvbWFsaWFcIixcbiAgICAgIFwiY29kZVwiOiBcIlNPXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisyNTJcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsyNTJcXFxcZHs4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMjUyIDZYWFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrMjUyIDYxMjM0NTY3XCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e48J+HtFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJTb3V0aCBBZnJpY2FcIixcbiAgICAgIFwiY29kZVwiOiBcIlpBXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisyN1wiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzI3XFxcXGR7OX0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzI3IDhYWFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzI3IDgzMTIzNDU2N1wiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+Hv/Cfh6ZcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiU291dGggU3VkYW5cIixcbiAgICAgIFwiY29kZVwiOiBcIlNTXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisyMTFcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsyMTFcXFxcZHs5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMjExIDlYWFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzIxMSA5NzcxMjM0NTZcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7jwn4e4XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlNvdXRoIEdlb3JnaWEgYW5kIHRoZSBTb3V0aCBTYW5kd2ljaCBJc2xhbmRzXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4es8J+HuFwiLFxuICAgICAgXCJjb2RlXCI6IFwiR1NcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzUwMFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzUwMFxcXFxkezV9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis1MDAgWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIis1MDAgMTIzNDVcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiU3BhaW5cIixcbiAgICAgIFwiY29kZVwiOiBcIkVTXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIiszNFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzM0XFxcXGR7OX0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzM0IDZYWFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzM0IDYxMjM0NTY3OFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HqvCfh7hcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiU3JpIExhbmthXCIsXG4gICAgICBcImNvZGVcIjogXCJMS1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrOTRcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs5NFxcXFxkezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis5NCA3WFhYWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIis5NCA3MTIzNDU2NzhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Hwn4ewXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlN1ZGFuXCIsXG4gICAgICBcImNvZGVcIjogXCJTRFwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjQ5XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMjQ5XFxcXGR7OX0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzI0OSA5WFhYWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIisyNDkgOTEyMzQ1Njc4XCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e48J+HqVwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJTdXJpbmFtZVwiLFxuICAgICAgXCJjb2RlXCI6IFwiU1JcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzU5N1wiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzU5N1xcXFxkezYsN30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzU5NyBYWFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrNTk3IDgxMjM0NTZcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7jwn4e3XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlN2YWxiYXJkIGFuZCBKYW4gTWF5ZW5cIixcbiAgICAgIFwiY29kZVwiOiBcIlNKXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis0N1wiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzQ3XFxcXGR7OH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzQ3IFhYWFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrNDcgNDEyMzQ1NjdcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7jwn4evXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkVzd2F0aW5pXCIsXG4gICAgICBcImNvZGVcIjogXCJTWlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjY4XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMjY4XFxcXGR7OH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzI2OCA3WFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzI2OCA3NjEyMzQ1NlwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HuPCfh79cIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiU3dlZGVuXCIsXG4gICAgICBcImNvZGVcIjogXCJTRVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNDZcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs0NlxcXFxkezcsMTB9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis0NiA3WFhYWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIis0NiA3MDEyMzQ1NjdcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7jwn4eqXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlN3aXR6ZXJsYW5kXCIsXG4gICAgICBcImNvZGVcIjogXCJDSFwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNDFcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs0MVxcXFxkezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis0MSA3WFhYWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIis0MSA3ODEyMzQ1NjdcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6jwn4etXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlN5cmlhbiBBcmFiIFJlcHVibGljXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e48J+HvlwiLFxuICAgICAgXCJjb2RlXCI6IFwiU1lcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzk2M1wiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzk2M1s5XVxcXFxkezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis5NjMgOVhYWFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrOTYzIDk5MTIzNDU2N1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJUYWl3YW5cIixcbiAgICAgIFwiY29kZVwiOiBcIlRXXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis4ODZcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs4ODZcXFxcZHs4LDl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis4ODYgOVhYWFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrODg2IDkxMjM0NTY3OFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HufCfh7xcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiVGFqaWtpc3RhblwiLFxuICAgICAgXCJjb2RlXCI6IFwiVEpcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzk5MlwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzk5MlxcXFxkezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis5OTIgOVhYWFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrOTkyIDkxNzEyMzQ1NlwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HufCfh69cIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiVGFuemFuaWEsIFVuaXRlZCBSZXB1YmxpYyBvZiBUYW56YW5pYVwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HufCfh79cIixcbiAgICAgIFwiY29kZVwiOiBcIlRaXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisyNTVcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsyNTVbNjddXFxcXGR7OH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzI1NSA3WFhYWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIisyNTUgNzEyMzQ1Njc4XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlRoYWlsYW5kXCIsXG4gICAgICBcImNvZGVcIjogXCJUSFwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNjZcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs2NlxcXFxkezgsOX0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzY2IDhYWFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzY2IDgxMjM0NTY3OFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HufCfh61cIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiVGltb3ItTGVzdGVcIixcbiAgICAgIFwiY29kZVwiOiBcIlRMXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis2NzBcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs2NzBcXFxcZHs4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNjcwIDdYWFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrNjcwIDc3MTIzNDU2XCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e58J+HsVwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJUb2dvXCIsXG4gICAgICBcImNvZGVcIjogXCJUR1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjI4XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMjI4XFxcXGR7OH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzIyOCA5WFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzIyOCA5MTIzNDU2N1wiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HufCfh6xcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiVG9rZWxhdVwiLFxuICAgICAgXCJjb2RlXCI6IFwiVEtcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzY5MFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzY5MFxcXFxkezR9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis2OTAgWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzY5MCAxMjM0XCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e58J+HsFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJUb25nYVwiLFxuICAgICAgXCJjb2RlXCI6IFwiVE9cIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzY3NlwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzY3NlxcXFxkezV9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis2NzYgWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIis2NzYgNzEyMzRcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7nwn4e0XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlRyaW5pZGFkIGFuZCBUb2JhZ29cIixcbiAgICAgIFwiY29kZVwiOiBcIlRUXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisxODY4XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMTg2OFxcXFxkezd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisxODY4IFhYWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIisxODY4IDI4NDEyMzRcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7nwn4e5XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlR1bmlzaWFcIixcbiAgICAgIFwiY29kZVwiOiBcIlROXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisyMTZcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsyMTZcXFxcZHs4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMjE2IFhYWFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrMjE2IDIwMTIzNDU2XCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e58J+Hs1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJUdXJrZXlcIixcbiAgICAgIFwiY29kZVwiOiBcIlRSXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis5MFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzkwXFxcXGR7MTB9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis5MCA1WFhYWFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrOTAgNTMxMjM0NTY3OFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HufCfh7dcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiVHVya21lbmlzdGFuXCIsXG4gICAgICBcImNvZGVcIjogXCJUTVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrOTkzXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrOTkzXFxcXGR7OH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzk5MyA2WFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzk5MyA2MTIzNDU2N1wiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HufCfh7JcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiVHVya3MgYW5kIENhaWNvcyBJc2xhbmRzXCIsXG4gICAgICBcImNvZGVcIjogXCJUQ1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMTY0OVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzE2NDlcXFxcZHs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMTY0OSBYWFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrMTY0OSAyMzExMjM0XCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e58J+HqFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJUdXZhbHVcIixcbiAgICAgIFwiY29kZVwiOiBcIlRWXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis2ODhcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs2ODhcXFxcZHs1fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNjg4IFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrNjg4IDIwMTIzXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e58J+Hu1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJVZ2FuZGFcIixcbiAgICAgIFwiY29kZVwiOiBcIlVHXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisyNTZcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsyNTZcXFxcZHs5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMjU2IDdYWFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzI1NiA3MTIzNDU2NzhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7rwn4esXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlVrcmFpbmVcIixcbiAgICAgIFwiY29kZVwiOiBcIlVBXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIiszODBcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCszODBcXFxcZHs5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMzgwIDlYWFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzM4MCA5MzEyMzQ1NjdcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7rwn4emXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlVuaXRlZCBBcmFiIEVtaXJhdGVzXCIsXG4gICAgICBcImNvZGVcIjogXCJBRVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrOTcxXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrOTcxXFxcXGR7OX0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzk3MSA1WFhYWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIis5NzEgNTAxMjM0NTY3XCIsXG4gICAgICBcImZsYWdcIjogXCLwn4em8J+HqlwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJVbml0ZWQgS2luZ2RvbVwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HrPCfh6dcIixcbiAgICAgIFwiY29kZVwiOiBcIkdCXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis0NFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzQ0WzAtOV17MTB9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis0NCA3MTIzIDQ1NiA3ODlcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiVW5pdGVkIFN0YXRlc1wiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HuvCfh7hcIixcbiAgICAgIFwiY29kZVwiOiBcIlVTXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisxXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMVswLTldezEwfSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMSAyMTMgMTIzIDQ1NjdcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiVXJ1Z3VheVwiLFxuICAgICAgXCJjb2RlXCI6IFwiVVlcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzU5OFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzU5OFxcXFxkezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis1OTggOVhYWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIis1OTggOTEyMzQ1NjdcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7rwn4e+XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlV6YmVraXN0YW5cIixcbiAgICAgIFwiY29kZVwiOiBcIlVaXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis5OThcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs5OThcXFxcZHs5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrOTk4IDlYWFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzk5OCA5MDEyMzQ1NjdcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7rwn4e/XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlZhbnVhdHVcIixcbiAgICAgIFwiY29kZVwiOiBcIlZVXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis2NzhcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs2NzhcXFxcZHs1LDd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis2NzggWFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrNjc4IDU5MTIzNFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+Hu/Cfh7pcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiVmVuZXp1ZWxhLCBCb2xpdmFyaWFuIFJlcHVibGljIG9mIFZlbmV6dWVsYVwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+Hu/Cfh6pcIixcbiAgICAgIFwiY29kZVwiOiBcIlZFXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis1OFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzU4WzI0XVxcXFxkezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis1OCA0WFhYWFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrNTggNDEyMTIzNDU2N1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJWaWV0bmFtXCIsXG4gICAgICBcImNvZGVcIjogXCJWTlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrODRcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs4NFxcXFxkezksMTB9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis4NCA5WFhYWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIis4NCA5MTIzNDU2NzhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7vwn4ezXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlZpcmdpbiBJc2xhbmRzLCBCcml0aXNoXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e78J+HrFwiLFxuICAgICAgXCJjb2RlXCI6IFwiVkdcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzEyODRcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsxMjg0XFxcXGR7N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzEyODQgWFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzEyODQgMzAwMTIzNFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJWaXJnaW4gSXNsYW5kcywgVS5TLlwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+Hu/Cfh65cIixcbiAgICAgIFwiY29kZVwiOiBcIlZJXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisxMzQwXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMTM0MFxcXFxkezd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisxMzQwIFhYWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIisxMzQwIDc3NDEyMzRcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiV2FsbGlzIGFuZCBGdXR1bmFcIixcbiAgICAgIFwiY29kZVwiOiBcIldGXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis2ODFcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs2ODFcXFxcZHs2fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNjgxIFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzY4MSA1MDEyMzRcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7zwn4erXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlllbWVuXCIsXG4gICAgICBcImNvZGVcIjogXCJZRVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrOTY3XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrOTY3XFxcXGR7OCw5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrOTY3IDdYWFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzk2NyA3MTIzNDU2NzhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh77wn4eqXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlphbWJpYVwiLFxuICAgICAgXCJjb2RlXCI6IFwiWk1cIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzI2MFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzI2MFxcXFxkezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyNjAgOVhYWFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrMjYwIDk3MTIzNDU2N1wiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+Hv/Cfh7JcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiWmltYmFid2VcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7/wn4e8XCIsXG4gICAgICBcImNvZGVcIjogXCJaV1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjYzXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMjYzWzAtOV17OX0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzI2MyA3MSAyMzQgNTY3OFwiXG4gICAgfVxuICBdO1xuICBmaWx0ZXJlZENvdW50cmllczogYW55XG4gIHNlbGVjdGVkQ291bnRyeSE6IGFueTtcbiAgc2hvd0NvdW50cnlEcm9wZG93biA9IGZhbHNlO1xuICBjb3VudHJ5U2VhcmNoID0gJyc7XG4gIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICAvLyBJbnRlcm5hbCBzdGF0ZVxuICBkYXRlU2VsZWN0ZWQ6IGFueTtcbiAgdGltZVNlbGVjdGVkOiBhbnk7XG4gIHF1aWxsQ29uZmlndXJhdGlvbjogUXVpbGxNb2R1bGVzID0gUXVpbGxDb25maWd1cmF0aW9uO1xuICBlbXB0eVF1aWxsTW9kdWxlcyA6IFF1aWxsTW9kdWxlcyA9IEVtcHR5UXVpbGxNb2R1bGVzO1xuICB2aWV3RWRpdDogYm9vbGVhbiA9IGZhbHNlIFxuICBvcmlnaW5hbFZhbHVlOiBhbnk7IC8vIFRvIHN0b3JlIHRoZSBvcmlnaW5hbCB2YWx1ZSB3aGVuIGVudGVyaW5nIHZpZXcgZWRpdCBtb2RlXG4gIGlzU2F2ZUhvdmVyZWQgPSBmYWxzZTtcbiAgaXNEaXNjYXJkSG92ZXJlZCA9IGZhbHNlO1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgY2hhbmdlU2VydmljZTogQ2hhbmdlU2VydmljZSxwcml2YXRlIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZSkge31cbiAgaGFzRW1pdHRlZFJlZiA9IGZhbHNlO1xuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgdGhpcy50eXBlID09PSAnbG9jYXRpb24nICYmXG4gICAgICB0aGlzLmlucHV0UmVmICYmXG4gICAgICAhdGhpcy5oYXNFbWl0dGVkUmVmXG4gICAgKSB7XG4gICAgICB0aGlzLm5hdGl2ZUlucHV0UmVmLmVtaXQodGhpcy5pbnB1dFJlZik7XG4gICAgICB0aGlzLmhhc0VtaXR0ZWRSZWYgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1snbW9kZSddKSB7XG4gICAgICB0aGlzLnZpZXdFZGl0ID0gZmFsc2VcbiAgICAgIHRoaXMudXBkYXRlQ29udHJvbFN0YXRlKCk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzWyd2YWx1ZSddKSB7XG4gICAgICB0aGlzLndyaXRlVmFsdWUoY2hhbmdlc1sndmFsdWUnXS5jdXJyZW50VmFsdWUpO1xuICAgIH1cbiAgICBpZiAodGhpcy5jb25mUGFzcyAmJiBjaGFuZ2VzWydjb25mUGFzc1ZhbCddICYmICFjaGFuZ2VzWydjb25mUGFzc1ZhbCddLmZpcnN0Q2hhbmdlKSB7XG4gICAgICB0aGlzLnZhbHVlID0gJyc7IC8vIFJlc2V0IGlucHV0IHZhbHVlXG4gICAgfVxuICAgIGlmIChjaGFuZ2VzWyd0eXBlJ10pIHtcbiAgICAgIHRoaXMuc2V0dXBWYWxpZGF0b3JzKCk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzWyd0eXBlJ10gJiYgY2hhbmdlc1sndHlwZSddLmN1cnJlbnRWYWx1ZSA9PT0gJ2xvY2F0aW9uJykge1xuICAgICAgdGhpcy5oYXNFbWl0dGVkUmVmID0gZmFsc2U7XG4gICAgfVxuICB9XG4gIG5nT25Jbml0KCkgeyAgICBcbiAgICAvLyBTS1MyOEZFQjI1IGRlZmF1bHQgY291bnRyeSBzZXQgXG4gICAgdGhpcy5zZWxlY3RlZENvdW50cnkgPSB0aGlzLmNvdW50cmllcy5maW5kKGMgPT4gYy5jb2RlID09PSAnSU4nKSB8fCB0aGlzLmNvdW50cmllc1swXTtcbiAgICB0aGlzLmZpbHRlcmVkQ291bnRyaWVzID0gWy4uLnRoaXMuY291bnRyaWVzXTtcbiAgICBjb25zdCB2YWxpZGF0b3JzOiBWYWxpZGF0b3JGbiB8IFZhbGlkYXRvckZuW10gfCBudWxsID0gW107XG4gICAgaWYgKHRoaXMucmVxdWlyZWQpIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICBpZiAodGhpcy5taW5MZW5ndGgpIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm1pbkxlbmd0aCh0aGlzLm1pbkxlbmd0aCkpO1xuICAgIGlmICh0aGlzLnBhdHRlcm4pIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLnBhdHRlcm4odGhpcy5wYXR0ZXJuKSk7XG4gICAgaWYgKHRoaXMubWF4TGVuZ3RoKSB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5tYXhMZW5ndGgodGhpcy5tYXhMZW5ndGgpKTtcbiAgICBpZiAodGhpcy5jb25mUGFzcykgdmFsaWRhdG9ycy5wdXNoKHRoaXMucGFzc3dvcmRNYXRjaFZhbGlkYXRvcigpKTtcbiAgICB0aGlzLmNvbnRyb2wuc2V0VmFsaWRhdG9ycyh2YWxpZGF0b3JzKTtcbiAgXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ290cCcpIHtcbiAgICAgIHRoaXMuaW5wdXRzLmNvbnRyb2xzLmZvckVhY2goKGNvbnRyb2wpID0+IHtcbiAgICAgICAgY29udHJvbC5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcnMpO1xuICAgICAgfSk7XG4gICAgfWVsc2UgaWYgKHRoaXMudHlwZSA9PT0gJ3RlbCcpIHtcbiAgICAgIHRoaXMuY29udHJvbC5zZXRWYWxpZGF0b3JzKFtcbiAgICAgICAgVmFsaWRhdG9ycy5wYXR0ZXJuKHRoaXMucmVtb3ZlRGlhbENvZGVGcm9tUmVnZXgodGhpcy5zZWxlY3RlZENvdW50cnkucmVnZXgsIHRoaXMuc2VsZWN0ZWRDb3VudHJ5LmRpYWxfY29kZSkpXG4gICAgICBdKTtcbiAgICB9XG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ2RhdGUnIHx8IHRoaXMudHlwZSA9PT0gJ2RhdGV0aW1lJykge1xuICAgICAgdGhpcy5kYXRlU2VsZWN0ZWQgPSB0aGlzLnZhbHVlID8gbmV3IERhdGUodGhpcy52YWx1ZSkgOiBudWxsO1xuICAgIH1cbiAgICBpZiAodGhpcy50eXBlID09PSAndGltZScpIHtcbiAgICAgIHRoaXMudGltZVNlbGVjdGVkID0gdGhpcy52YWx1ZSA/IG5ldyBEYXRlKHRoaXMudmFsdWUpIDogbnVsbDtcbiAgICB9XG4gICAgdGhpcy5zZXREaXNhYmxlZFN0YXRlKHRoaXMubW9kZSAhPT0gJ2VkaXQnKTtcbiAgICB0aGlzLnF1ZXN0aW9uWydzdWJUZXh0J10gPSB0aGlzLnF1ZXN0aW9uPy5zdWJUZXh0ICE9PSBudWxsICYmIHR5cGVvZiB0aGlzLnF1ZXN0aW9uWydzdWJUZXh0J10gPT09ICdzdHJpbmcnID8gSlNPTi5wYXJzZSh0aGlzLnF1ZXN0aW9uWydzdWJUZXh0J10pIDoge307XG4gIFxuICAgIGlmKHRoaXMucXVlc3Rpb24/LnN1YlRleHQgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyB0aGlzLmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgIGxldCBkZXBlbmRlbmN5T2JqOiBhbnkgPSB0aGlzLnF1ZXN0aW9uPy5zdWJUZXh0O1xuICAgICAgaWYoZGVwZW5kZW5jeU9iai5kaXNhYmxlZCAmJiBkZXBlbmRlbmN5T2JqLmRpc2FibGVkID09IFwiZmFsc2VcIil7XG4gICAgICAgIC8vIHRoaXMuZGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgIH1lbHNle1xuICAgICAgICAvLyB0aGlzLmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIC8vIFN1YnNjcmliZSBmb3IgdGhlIGNoYW5nZXNcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5jaGFuZ2VTZXJ2aWNlLmNoYW5nZUFubm91bmNlZCQuc3Vic2NyaWJlKFxuICAgICAgICAoY2hhbmdlVmFsdWUpID0+IHtcbiAgICAgICAgICBpZihjaGFuZ2VWYWx1ZSAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdpbnNpZGUgc3Vic2NyaXB0aW9uIGZvciB0aGUgY2hhbmdlJyk7XG4gICAgICAgICAgICBpZihjaGFuZ2VWYWx1ZS52YWx1ZU9iaiAhPSB1bmRlZmluZWQgJiYgY2hhbmdlVmFsdWUuZnJvbVF1ZXN0aW9uSWQgPT0gZGVwZW5kZW5jeU9iai5zb3VyY2VRdWVzdGlvbklkKSB7XG4gICAgICAgICAgICAgIC8vIFZEIDIwQXVnMjQgaGFuZGxpbmcgdGhlIG11bHRpcGxlIG9iamVjdFxuICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5kYXRhU2VydmljZS5nZXRWYWx1ZShjaGFuZ2VWYWx1ZS52YWx1ZU9iaixkZXBlbmRlbmN5T2JqLnZhbHVlRmllbGQpO1xuICAgICAgICAgICAgICB0aGlzLmlucHV0VmFsdWUuZW1pdCh7cXVlc3Rpb24gOiB0aGlzLnF1ZXN0aW9uLCB2YWx1ZTogdGhpcy52YWx1ZX0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5jaGFuZ2VTZXJ2aWNlLmNvbmZpcm1DaGFuZ2UoZGVwZW5kZW5jeU9iai5zb3VyY2VRdWVzdGlvbklkKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgc2V0dXBWYWxpZGF0b3JzKCkge1xuICAgIGNvbnN0IHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10gPSBbXTtcbiAgICBcbiAgICBpZiAodGhpcy5yZXF1aXJlZCkgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgIGlmICh0aGlzLm1pbkxlbmd0aCkgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWluTGVuZ3RoKHRoaXMubWluTGVuZ3RoKSk7XG4gICAgaWYgKHRoaXMubWF4TGVuZ3RoKSB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5tYXhMZW5ndGgodGhpcy5tYXhMZW5ndGgpKTtcbiAgICBpZiAodGhpcy5wYXR0ZXJuKSB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5wYXR0ZXJuKHRoaXMucGF0dGVybikpO1xuICAgIFxuICAgIHRoaXMuY29udHJvbC5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcnMpO1xuICB9XG4gIC8vIFNLUzI4RkVCMjUgQ291bnRyeSBEcm9wZG93biBjbG9zZSBcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCddKVxuICBjbG9zZURyb3Bkb3duKGV2ZW50OiBFdmVudCkge1xuICAgIGlmICghdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkge1xuICAgICAgdGhpcy5zaG93Q291bnRyeURyb3Bkb3duID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgb25DaGFuZ2U6ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkID0gKCkgPT4ge307XG4gIG9uVG91Y2hlZDogKCkgPT4gdm9pZCA9ICgpID0+IHt9O1xuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgb25JbnB1dENoYW5nZShldmVudDogRXZlbnQpIHtcbiAgICBjb25zdCBpbnB1dEVsZW1lbnQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICB0aGlzLnJhd0lucHV0VmFsID0gaW5wdXRFbGVtZW50LnZhbHVlO1xuICAgIGlmKHRoaXMudHlwZSA9PT0gJ3RlbCcpIHtcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLnNlbGVjdGVkQ291bnRyeS5kaWFsX2NvZGUrIFwiIFwiICsgaW5wdXRFbGVtZW50LnZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnZhbHVlID0gaW5wdXRFbGVtZW50LnZhbHVlO1xuICAgIH1cbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgLy8gU0tTMTFKVU4yNSBPbmx5IGVtaXQgdGhlIHZhbHVlIGlmIG5vdCBpbiB2aWV3IGVkaXQgbW9kZVxuICAgIGlmICghdGhpcy52aWV3RWRpdCkge1xuICAgICAgdGhpcy5pbnB1dFZhbHVlLmVtaXQoe3F1ZXN0aW9uIDogdGhpcy5xdWVzdGlvbiwgdmFsdWU6IHRoaXMudmFsdWV9KTtcbiAgICB9XG4gIH1cblxuICB0b2dnbGVQYXNzd29yZFZpc2liaWxpdHkoKSB7XG4gICAgdGhpcy5pc1Bhc3N3b3JkVmlzaWJsZSA9ICF0aGlzLmlzUGFzc3dvcmRWaXNpYmxlO1xuICB9XG4gIHBhc3N3b3JkTWF0Y2hWYWxpZGF0b3IoKTogVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xuICAgICAgY29uc3QgY29uZmlybVBhc3N3b3JkID0gY29udHJvbC52YWx1ZTsgLy8gR2V0IGNvbmZpcm0gcGFzc3dvcmQgZmllbGQgdmFsdWVcbiAgICAgIGlmKHRoaXMuY29uZlBhc3NWYWwgPT09ICcnKXtcbiAgICAgICAgcmV0dXJuIHsgcGFzc3dvcmRNaXNtYXRjaDogdHJ1ZSB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMuY29uZlBhc3NWYWwgPT09IGNvbmZpcm1QYXNzd29yZCA/IG51bGwgOiB7IHBhc3N3b3JkTWlzbWF0Y2g6IHRydWUgfTtcbiAgICB9O1xuICB9XG4gIGdldEVycm9yTWVzc2FnZSgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmNvbnRyb2wuaGFzRXJyb3IoJ3JlcXVpcmVkJykpIHJldHVybiB0aGlzLmVycm9yTWVzc2FnZXNbJ3JlcXVpcmVkJ10gfHwgJ1RoaXMgZmllbGQgaXMgcmVxdWlyZWQnO1xuICAgIGlmICh0aGlzLmNvbnRyb2wuaGFzRXJyb3IoJ21pbmxlbmd0aCcpKSByZXR1cm4gdGhpcy5lcnJvck1lc3NhZ2VzWydtaW5sZW5ndGgnXSB8fCBgTWluaW11bSAke3RoaXMubWluTGVuZ3RofSBjaGFyYWN0ZXJzIHJlcXVpcmVkYDtcbiAgICBpZiAodGhpcy5jb250cm9sLmhhc0Vycm9yKCdwYXR0ZXJuJykpIHJldHVybiB0aGlzLmVycm9yTWVzc2FnZXNbJ3BhdHRlcm4nXSB8fCAodGhpcy50eXBlID09PSAndGVsJyA/IGBJbnZhbGlkICR7dGhpcy5zZWxlY3RlZENvdW50cnkubmFtZX0gcGhvbmUgbnVtYmVyIGZvcm1hdGAgOiAnSW52YWxpZCBmb3JtYXQnKTtcbiAgICBpZiAodGhpcy5jb250cm9sLmhhc0Vycm9yKCdtYXhsZW5ndGgnKSkgcmV0dXJuIHRoaXMuZXJyb3JNZXNzYWdlc1snbWF4bGVuZ3RoJ10gfHwgYE1heGltdW0gJHt0aGlzLm1heExlbmd0aH0gY2hhcmFjdGVycyBhbGxvd2VkYDtcbiAgICBpZiAodGhpcy5jb250cm9sLmhhc0Vycm9yKCdwYXNzd29yZE1pc21hdGNoJykpIHJldHVybiB0aGlzLmVycm9yTWVzc2FnZXNbJ2NvbmZQYXNzJ10gfHwgYFBhc3N3b3JkcyBkbyBub3QgbWF0Y2hgO1xuICAgIHJldHVybiAnJztcbiAgfVxuICB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodGhpcy50eXBlID09PSAnb3RwJykge1xuICAgICAgLy8gRm9yIE9UUCBpbnB1dHMsIHNwbGl0IHRoZSB2YWx1ZSBpbnRvIGluZGl2aWR1YWwgY2hhcmFjdGVyc1xuICAgICAgY29uc3QgdmFsdWVzID0gdmFsdWUuc3BsaXQoJycpLnNsaWNlKDAsIHRoaXMuI3NpemUpO1xuICAgICAgdmFsdWVzLmZvckVhY2goKHZhbCwgaW5kZXgpID0+IHRoaXMuaW5wdXRzLmNvbnRyb2xzW2luZGV4XS5zZXRWYWx1ZSh2YWwpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gRm9yIHJlZ3VsYXIgaW5wdXRzLCBzZXQgdGhlIHZhbHVlIGRpcmVjdGx5XG4gICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUodmFsdWUpO1xuICAgIH1cbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5jb250cm9sLnNldFZhbHVlKHZhbHVlKTtcbiAgICBcbiAgICBpZiAodGhpcy50eXBlID09PSAnZGF0ZScgfHwgdGhpcy50eXBlID09PSAnZGF0ZXRpbWUnKSB7XG4gICAgICB0aGlzLmRhdGVTZWxlY3RlZCA9IHZhbHVlID8gbmV3IERhdGUodmFsdWUpIDogbnVsbDtcbiAgICB9XG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ3RpbWUnKSB7XG4gICAgICB0aGlzLnRpbWVTZWxlY3RlZCA9IHZhbHVlID8gbmV3IERhdGUodmFsdWUpIDogbnVsbDtcbiAgICB9XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ290cCcpIHtcbiAgICAgIHRoaXMuaW5wdXRzLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuaW5wdXRzLnZhbHVlLmpvaW4oJycpO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ290cCcpIHtcbiAgICAgICAgaWYgKGlzRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuaW5wdXRzLmRpc2FibGUoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaW5wdXRzLmVuYWJsZSgpO1xuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGlzRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY29udHJvbC5kaXNhYmxlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wuZW5hYmxlKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5wcml2YXRlIHVwZGF0ZUNvbnRyb2xTdGF0ZSgpIHtcbiAgY29uc3Qgc2hvdWxkRGlzYWJsZSA9IHRoaXMubW9kZSAhPT0gJ2VkaXQnICYmICF0aGlzLnZpZXdFZGl0O1xuICB0aGlzLnNldERpc2FibGVkU3RhdGUoc2hvdWxkRGlzYWJsZSk7XG59XG4gIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDxzdHJpbmcsIHN0cmluZz4pOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ290cCcpIHtcbiAgICAgIGlmICghY29udHJvbC52YWx1ZSB8fCBjb250cm9sLnZhbHVlLmxlbmd0aCA8IHRoaXMuI3NpemUpIHtcbiAgICAgICAgcmV0dXJuIHsgb3RwSW5wdXQ6ICdWYWx1ZSBpcyBpbmNvcnJlY3QnIH07XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLmNvbnRyb2wuaW52YWxpZCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250cm9sLmVycm9ycztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBoYW5kbGVLZXlEb3duKGU6IEtleWJvYXJkRXZlbnQsIGlkeDogbnVtYmVyKSB7XG4gICAgaWYgKGUua2V5ID09PSAnQmFja3NwYWNlJyB8fCBlLmtleSA9PT0gJ0RlbGV0ZScpIHtcbiAgICAgIGlmIChpZHggPiAwKSB7XG4gICAgICAgIHRoaXMuI3NjaGVkdWxlZEZvY3VzID0gaWR4IC0gMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuI3NjaGVkdWxlZEZvY3VzID0gbnVsbDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBEdWUgdG8gaU9TL2lQYWRPUyBTYWZhcmkgYnVnL3NwZWNpYWwgYmVoYXZpb3Igd2UgYXJlIGZvcmNlZCB0b1xuICAvLyBzY2hlZHVsZSBmb2N1cyB0cmFuc2l0aW9uIGR1cmluZyBrZXlwcmVzcy9rZXlkb3duIGV2ZW50IGFuZCBvbmx5XG4gIC8vIGFmdGVyIGlucHV0IGV2ZW50IGhhcHBlbmVkIC0gZXhlY3V0ZSB0aGUgdHJhbnNpdGlvblxuICAvLyBvdGhlcndpc2UgaW5wdXRzIGRvbid0IGdldCB0aGVpciB2YWx1ZXMgZmlsbGVkXG4gIGhhbmRsZUlucHV0KCkge1xuICAgIHRoaXMuI3VwZGF0ZVdpcmVkVmFsdWUoKTtcbiAgICBpZiAodGhpcy4jc2NoZWR1bGVkRm9jdXMgIT09IG51bGwpIHtcbiAgICAgIHRoaXMuI2ZvY3VzSW5wdXQodGhpcy4jc2NoZWR1bGVkRm9jdXMpO1xuICAgICAgdGhpcy4jc2NoZWR1bGVkRm9jdXMgPSBudWxsOyAvLyBSZXNldCB0byBudWxsIGFmdGVyIGZvY3VzaW5nXG4gICAgfVxuICB9XG5cbiAgaGFuZGxlS2V5UHJlc3MoZTogS2V5Ym9hcmRFdmVudCwgaWR4OiBudW1iZXIpIHtcbiAgICBjb25zdCBpc0RpZ2l0ID0gL1xcZC8udGVzdChlLmtleSk7XG4gIFxuICAgIGlmIChlLmtleSA9PT0gJ3YnICYmIGUubWV0YUtleSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICBcbiAgICBpZiAoaXNEaWdpdCAmJiBpZHggKyAxIDwgdGhpcy4jc2l6ZSkge1xuICAgICAgdGhpcy4jc2NoZWR1bGVkRm9jdXMgPSBpZHggKyAxO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLiNzY2hlZHVsZWRGb2N1cyA9IG51bGw7IC8vIEVuc3VyZSBpdCdzIG51bGwgaWYgbm90IG1vdmluZyBmb2N1c1xuICAgIH1cbiAgXG4gICAgaWYgKGlzRGlnaXQgJiYgdGhpcy5pbnB1dHMuY29udHJvbHNbaWR4XS52YWx1ZSkge1xuICAgICAgdGhpcy5pbnB1dHMuY29udHJvbHNbaWR4XS5zZXRWYWx1ZSgnJyk7XG4gICAgfVxuICBcbiAgICByZXR1cm4gaXNEaWdpdDtcbiAgfVxuXG4gIGhhbmRsZVBhc3RlKGU6IENsaXBib2FyZEV2ZW50LCBpZHg6IG51bWJlcikge1xuICAgIGUucHJldmVudERlZmF1bHQoKTtcblxuICAgIGlmIChpZHggIT09IDApIHtcbiAgICAgIC8vIElmIHRoZSB0YXJnZXQgaW5wdXQgaXMgbm90IHRoZSBmaXJzdCBvbmUgLSBpZ25vcmVcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBwYXN0ZURhdGEgPSBlLmNsaXBib2FyZERhdGE/LmdldERhdGEoJ3RleHQnKTtcbiAgICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAoYFxcXFxkeyR7dGhpcy4jc2l6ZX19YCk7XG5cbiAgICBpZiAoIXBhc3RlRGF0YSB8fCAhcmVnZXgudGVzdChwYXN0ZURhdGEpKSB7XG4gICAgICAvLyBJZiB0aGVyZSBpcyBub3RoaW5nIHRvIGJlIHBhc3RlZCBvciB0aGUgcGFzdGVkIGRhdGEgZG9lcyBub3RcbiAgICAgIC8vIGNvbXBseSB3aXRoIHRoZSByZXF1aXJlZCBmb3JtYXQgLSBpZ25vcmUgdGhlIGV2ZW50XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwYXN0ZURhdGEubGVuZ3RoOyBpKyspIHtcbiAgICAgIHRoaXMuaW5wdXRzLmNvbnRyb2xzW2ldLnNldFZhbHVlKHBhc3RlRGF0YVtpXSk7XG4gICAgfVxuXG4gICAgdGhpcy4jZm9jdXNJbnB1dCh0aGlzLmlucHV0RWxzLmxlbmd0aCAtIDEpO1xuICAgIHRoaXMuI3VwZGF0ZVdpcmVkVmFsdWUoKTtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICB9XG5cbiAgaGFuZGxlRm9jdXMoZTogRm9jdXNFdmVudCkge1xuICAgIC8vIFNlbGVjdCBwcmV2aW91c2x5IGVudGVyZWQgdmFsdWUgdG8gcmVwbGFjZSB3aXRoIGEgbmV3IGlucHV0XG4gICAgKGUudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnNlbGVjdCgpO1xuICB9XG5cbiAgI2ZvY3VzSW5wdXQoaWR4OiBudW1iZXIpIHtcbiAgICAvLyBJbiBvcmRlciBub3QgdG8gaW50ZXJmZXJlIHdpdGggdGhlIGlucHV0IHdlIHNldFRpbWVvdXRcbiAgICAvLyBiZWZvcmUgYWR2YW5jaW5nIHRoZSBmb2N1c1xuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5pbnB1dEVscy5nZXQoaWR4KT8ubmF0aXZlRWxlbWVudC5mb2N1cygpKTtcbiAgfVxuXG4gICN1cGRhdGVXaXJlZFZhbHVlKCkge1xuICAgIC8vIFdlIHdhbnQgdG8gZXhwb3NlIHRoZSB2YWx1ZSBhcyBhIHBsYWluIHN0cmluZ1xuICAgIC8vXG4gICAgLy8gSW4gb3JkZXIgbm90IHRvIGludGVyZmVyZSB3aXRoIHRoZSBpbnB1dCB3ZSBzZXRUaW1lb3V0XG4gICAgLy8gYmVmb3JlIGFkdmFuY2luZyB0aGUgZm9jdXNcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMub25DaGFuZ2U/Lih0aGlzLmlucHV0cy52YWx1ZS5qb2luKCcnKSkpO1xuICB9XG4gIC8vIFNLUzI4RkVCMjUgdG9nZ2xlIENvdW50cnkgRHJvcGRvd25cbiAgdG9nZ2xlQ291bnRyeURyb3Bkb3duKCkge1xuICAgIHRoaXMuc2hvd0NvdW50cnlEcm9wZG93biA9ICF0aGlzLnNob3dDb3VudHJ5RHJvcGRvd247XG4gIH1cblxuICAvLyBTS1MyOEZFQjI1IENvdW50cnkgRHJvcGRvd24gc2VhcmNoIGZpbHRlclxuICBmaWx0ZXJDb3VudHJpZXMoZXZlbnQgOiBhbnkpIHtcbiAgICBjb25zdCBpbnB1dEVsZW1lbnQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICB0aGlzLmNvdW50cnlTZWFyY2ggPSBpbnB1dEVsZW1lbnQudmFsdWU7XG4gICAgdGhpcy5maWx0ZXJlZENvdW50cmllcyA9IHRoaXMuY291bnRyaWVzLmZpbHRlcihjb3VudHJ5ID0+XG4gICAgICBjb3VudHJ5Lm5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0aGlzLmNvdW50cnlTZWFyY2gudG9Mb3dlckNhc2UoKSkgfHxcbiAgICAgIGNvdW50cnkuZGlhbF9jb2RlLmluY2x1ZGVzKHRoaXMuY291bnRyeVNlYXJjaClcbiAgICApO1xuICB9XG5cbiAgLy8gU0tTMjhGRUIyNSBDb3VudHJ5IERyb3Bkb3duIHNlbGVjdCBmdW5jdGlvblxuICBzZWxlY3RDb3VudHJ5KGNvdW50cnk6IGFueSkge1xuICAgIHRoaXMuc2VsZWN0ZWRDb3VudHJ5ID0gY291bnRyeTtcbiAgICB0aGlzLnNob3dDb3VudHJ5RHJvcGRvd24gPSBmYWxzZTtcbiAgICB0aGlzLmNvbnRyb2wuc2V0VmFsaWRhdG9ycyhbXG4gICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgVmFsaWRhdG9ycy5wYXR0ZXJuKHRoaXMucmVtb3ZlRGlhbENvZGVGcm9tUmVnZXgodGhpcy5zZWxlY3RlZENvdW50cnkucmVnZXgsIHRoaXMuc2VsZWN0ZWRDb3VudHJ5LmRpYWxfY29kZSkpXG4gICAgXSk7XG4gICAgLy8gU0tTMjhGRUIyNSBVcGRhdGUgdGhlIGNvbnRyb2wncyB2YWx1ZSB3aXRoIHRoZSBuZXcgZGlhbCBjb2RlXG4gICAgdGhpcy5jb250cm9sLnNldFZhbHVlKHRoaXMucmF3SW5wdXRWYWwpO1xuXG4gICAgLy8gU0tTMjhGRUIyNSBJbW1lZGlhdGVseSB1cGRhdGUgdmFsaWRpdHkgc3RhdHVzXG4gICAgdGhpcy5jb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcblxuICAgIC8vIFNLUzI4RkVCMjUgVHJpZ2dlciBjaGFuZ2UgZGV0ZWN0aW9uIGlmIG5lZWRlZFxuICAgIHRoaXMuY29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgY29uc29sZS5sb2coXCJ2YWxsIGNoZWNrM1wiLCB0aGlzLnZhbHVlKVxuICAgIHRoaXMudmFsdWUgPSB0aGlzLnNlbGVjdGVkQ291bnRyeS5kaWFsX2NvZGUrIFwiIFwiICsgdGhpcy5yYXdJbnB1dFZhbDtcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuICB9XG4gIC8vIFNLUzI4RkVCMjUgcmVtb3ZlIERpYWxDb2RlIEZyb20gUmVnZXhcbiAgcmVtb3ZlRGlhbENvZGVGcm9tUmVnZXgob3JpZ2luYWxSZWdleDogc3RyaW5nLCBkaWFsQ29kZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBlc2NhcGVkRGlhbENvZGUgPSBkaWFsQ29kZS5yZXBsYWNlKC9cXCsvZywgXCJcXFxcK1wiKTtcbiAgICByZXR1cm4gb3JpZ2luYWxSZWdleC5yZXBsYWNlKGBeJHtlc2NhcGVkRGlhbENvZGV9YCwgJ14nKTtcbiAgfVxuXG4gIC8vIFNLUzI4RkVCMjUgcmVtb3ZlIERpYWxDb2RlIEZyb20gUmVnZXggZm9yIHNob3cgaW4gaW5wdXRcbiAgcmVtb3ZlRGlhbENvZGUocGxhY2Vob2xkZXI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHBsYWNlaG9sZGVyLnJlcGxhY2UoL15cXCtcXGQrXFxzKi8sICcnKTtcbiAgfVxuICBnZXQgaW5wdXRMaXN0KCkge1xuICAgIHJldHVybiB0aGlzLnR5cGUgIT09ICdvdHAnID8gdGhpcy5pbnB1dHMuY29udHJvbHMuc2xpY2UoMCwxKSA6IHRoaXMuaW5wdXRzLmNvbnRyb2xzO1xuICB9XG4gIGJsdXJFbWl0KCl7XG4gICAgdGhpcy5vbkJsdXIuZW1pdCh0aGlzLnZhbHVlKTtcbiAgfVxuICBmb2N1c2luRW1pdChldmVudDogYW55KXtcbiAgICB0aGlzLm9uRm9jdXMuZW1pdChldmVudCk7XG4gIH1cbiAgdG9nZ2xlKGV2ZW50OiBhbnkpe1xuICAgIHRoaXMudG9nZ2xlRW1pdC5lbWl0KGV2ZW50KTtcbiAgfVxuICBjbGVhckVtaXQoZXZlbnQ6IGFueSl7XG4gICAgdGhpcy5jbGVhcklucHV0RW1pdC5lbWl0KGV2ZW50KTtcbiAgfVxuICBvbkVkaXRvckZvY3VzT3V0KCk6IHZvaWQge1xuICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IHRoaXMudmFsdWUgfHwgJyc7XG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KGN1cnJlbnRWYWx1ZSk7XG4gIH1cbiAgdmlld0VkaXRDbGljayhxdWVzOiBhbnkpIHtcbiAgICB0aGlzLm9yaWdpbmFsVmFsdWUgPSB0aGlzLnZhbHVlOyAvLyBTdG9yZSB0aGUgb3JpZ2luYWwgdmFsdWVcbiAgICB0aGlzLnZpZXdFZGl0ID0gdHJ1ZTsgLy8gRW50ZXIgdmlldyBlZGl0IG1vZGVcbiAgICB0aGlzLm1vZGUgPSAnZWRpdCc7XG4gICAgdGhpcy51cGRhdGVDb250cm9sU3RhdGUoKTsgLy8gVXBkYXRlIGNvbnRyb2wgc3RhdGVcbiAgfVxuICBzYXZlQ2hhbmdlcygpIHtcbiAgICBsZXQgcXVlcyA9IHRoaXMucXVlc3Rpb25cbiAgICBxdWVzWydzaW5nbGVGaWVsZENoYW5nZSddID0gdHJ1ZVxuICAgIHRoaXMuaW5wdXRWYWx1ZS5lbWl0KHtxdWVzdGlvbiA6IHF1ZXMsIHZhbHVlOiB0aGlzLnZhbHVlfSk7IC8vIEVtaXQgdGhlIHVwZGF0ZWQgdmFsdWVcbiAgICB0aGlzLnZpZXdFZGl0ID0gZmFsc2U7IC8vIEV4aXQgdmlldyBlZGl0IG1vZGVcbiAgICB0aGlzLm1vZGUgPSAndmlldyc7IC8vIFN3aXRjaCBiYWNrIHRvIHZpZXcgbW9kZVxuICAgIHRoaXMudXBkYXRlQ29udHJvbFN0YXRlKCk7IC8vIFVwZGF0ZSBjb250cm9sIHN0YXRlXG4gIH1cbiAgZGlzY2FyZENoYW5nZXMoKSB7XG4gICAgdGhpcy53cml0ZVZhbHVlKHRoaXMub3JpZ2luYWxWYWx1ZSk7IC8vIFJldmVydCB0byBvcmlnaW5hbCB2YWx1ZVxuICAgIHRoaXMudmlld0VkaXQgPSBmYWxzZTsgLy8gRXhpdCB2aWV3IGVkaXQgbW9kZVxuICAgIHRoaXMubW9kZSA9ICd2aWV3JzsgLy8gU3dpdGNoIGJhY2sgdG8gdmlldyBtb2RlXG4gICAgdGhpcy51cGRhdGVDb250cm9sU3RhdGUoKTsgLy8gVXBkYXRlIGNvbnRyb2wgc3RhdGVcbiAgfVxufVxuIiwiPCEtLSBTS1MzMUpBTjI1IC0tPlxuPGRpdiBjbGFzcz1cImhvdmVyLXdyYXBwZXIgaW5wdXQtd3JhcHBlclwiIChkb2N1bWVudDpjbGljayk9XCJjbG9zZURyb3Bkb3duKCRldmVudClcIj5cbiAgPGRpdj5cbiAgICA8ZGl2ICpuZ0lmPVwidHlwZSA9PT0gJ2xhYmVsJyA/IHBsYWNlaG9sZGVyIDogbGFiZWwgJiYgdHlwZSAhPSAnY2hlY2tib3gnICYmIHNob3dMYWJlbFwiIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgJ3BhZGRpbmctdG9wJzogdHlwZSA9PT0gJ2xhYmVsJyA/ICcxMHB4JyA6ICcnLFxuICAgICAgICAncGFkZGluZy1ib3R0b20nOiB0eXBlID09PSAnbGFiZWwnID8gJzEwcHgnIDogJydcbiAgICAgIH1cIiBbc3R5bGUuZm9udC13ZWlnaHRdPVwibGFiZWxXZWlnaHRcIiBbc3R5bGUuZm9udC1zaXplXT1cImxhYmVsU2l6ZSB8fCB0eXBlID09PSAnbGFiZWwnID8gJzE2cHgnIDogJzE0cHgnXCJcbiAgICAgIFtzdHlsZS5jb2xvcl09XCJsYWJlbENvbG9yIHx8IHR5cGUgPT09ICdsYWJlbCcgPyAnYmxhY2snIDogJyM5YTlhOWEnXCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBnYXA6IDVweDtcIj4ge3sgdHlwZSA9PT1cbiAgICAgICdsYWJlbCcgPyBwbGFjZWhvbGRlciA6IGxhYmVsXG4gICAgICB9fVxuICAgICAgPGRpdiAqbmdJZj1cImxhYmVsICYmIHR5cGUgIT0gJ2NoZWNrYm94JyAmJiByZXF1aXJlZCAmJiBzaG93TGFiZWwgJiYgbW9kZSA9PT0gJ2VkaXQnXCIgc3R5bGU9XCJjb2xvcjogcmVkO1wiPio8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwidHlwZSAhPT0gJ2xhYmVsJyAmJiB0eXBlICE9PSAncmljaHRleHQnICYmIHR5cGUgIT09ICd0ZXh0YXJlYSdcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtY29udGFpbmVyXCIgW25nQ2xhc3NdPVwieydjaGVja2JveC1wYWRkaW5nJzogdHlwZSA9PT0gJ2NoZWNrYm94JyB8fCB0eXBlID09PSAnb3RwJ31cIlxuICAgICAgICBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cIm1vZGUgPT09ICdlZGl0JyA/IGlucHV0QmdDb2xvciA6ICcnXCJcbiAgICAgICAgW2NsYXNzLmludmFsaWRdPVwiY29udHJvbC5pbnZhbGlkICYmIGNvbnRyb2wudG91Y2hlZFwiXG4gICAgICAgIFtzdHlsZS5ib3JkZXJdPVwibW9kZSA9PT0gJ2VkaXQnID8gaW5wdXRCb3JkZXIgPT09ICdub25lJyA/ICgnMXB4IHNvbGlkICcgKyBpbnB1dEJnQ29sb3IpIDogaW5wdXRCb3JkZXIgOiAnbm9uZSdcIj5cbiAgICAgICAgPGltZyAqbmdJZj1cImlucHV0SWNvbkxlZnRTcmMgJiYgbW9kZSA9PT0gJ2VkaXQnXCIgW3NyY109XCJpbnB1dEljb25MZWZ0U3JjXCIgYWx0PVwiaWNvblwiIGNsYXNzPVwiaWNvbiBsZWZ0LWljb25cIlxuICAgICAgICAgIFtzdHlsZS5oZWlnaHRdPVwic3ZnSGVpZ2h0XCIgW3N0eWxlLndpZHRoXT1cInN2Z1dpZHRoXCIgLz5cbiAgICAgICAgPCEtLSBTS1MyOEZFQjI1IG1vYmlsZSBudW1iZXIgaW5wdXQgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwaG9uZS1pbnB1dC1jb250YWluZXJcIj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwidHlwZSA9PT0gJ3RlbCdcIiBjbGFzcz1cImNvdW50cnktc2VsZWN0b3JcIiBzdHlsZT1cInBhZGRpbmctbGVmdDogMTBweDtcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUNvdW50cnlEcm9wZG93bigpXCI+XG4gICAgICAgICAgICA8IS0tIDxzcGFuIGNsYXNzPVwiZmxhZ1wiPnt7IHNlbGVjdGVkQ291bnRyeS5mbGFnIH19PC9zcGFuPiAtLT5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGlhbC1jb2RlXCIgW3N0eWxlLmZvbnQtc2l6ZV09XCJpbnB1dFZhbHVlU2l6ZVwiPnt7IHNlbGVjdGVkQ291bnRyeS5kaWFsX2NvZGUgfX08L3NwYW4+XG4gICAgICAgICAgICA8c3ZnIGNsYXNzPVwiYXJyb3dcIiB3aWR0aD1cIjlcIiBoZWlnaHQ9XCI2XCIgdmlld0JveD1cIjAgMCA5IDZcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICAgICAgPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgICAgICAgIGQ9XCJNMC42ODQxMzYgMC43Njc0NzdDMC45MjI5OTkgMC41Mzc4IDEuMzAyODIgMC41NDUyNDggMS41MzI1IDAuNzg0MTExTDQuNSAzLjkzNDMxTDcuNDY3NSAwLjc4NDExMUM3LjY5NzE4IDAuNTQ1MjQ4IDguMDc3IDAuNTM3OCA4LjMxNTg3IDAuNzY3NDc3QzguNTU0NzMgMC45OTcxNTMgOC41NjIxOCAxLjM3Njk4IDguMzMyNSAxLjYxNTg0TDQuOTMyNSA1LjIxNTg0QzQuODE5MzggNS4zMzM0OSA0LjY2MzIxIDUuMzk5OTggNC41IDUuMzk5OThDNC4zMzY3OSA1LjM5OTk4IDQuMTgwNjIgNS4zMzM0OSA0LjA2NzUgNS4yMTU4NEwwLjY2NzUwMSAxLjYxNTg0QzAuNDM3ODI1IDEuMzc2OTggMC40NDUyNzIgMC45OTcxNTMgMC42ODQxMzYgMC43Njc0NzdaXCJcbiAgICAgICAgICAgICAgICBmaWxsPVwiIzYyNjI2MlwiIC8+XG4gICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwidHlwZSA9PT0gJ3RlbCcgJiYgc2hvd0NvdW50cnlEcm9wZG93blwiIGNsYXNzPVwiY291bnRyeS1kcm9wZG93blwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlYXJjaC1ib3hcIj5cbiAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgW3JlYWRPbmx5XT1cIm1vZGUgIT09ICdlZGl0J1wiIHBsYWNlaG9sZGVyPVwiU2VhcmNoIGNvdW50cnkuLi5cIiBbdmFsdWVdPVwiY291bnRyeVNlYXJjaFwiXG4gICAgICAgICAgICAgICAgKGlucHV0KT1cImZpbHRlckNvdW50cmllcygkZXZlbnQpXCI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb3VudHJ5LWxpc3RcIj5cbiAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgY291bnRyeSBvZiBmaWx0ZXJlZENvdW50cmllc1wiIGNsYXNzPVwiY291bnRyeS1pdGVtXCIgKGNsaWNrKT1cInNlbGVjdENvdW50cnkoY291bnRyeSlcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZsYWdcIj57eyBjb3VudHJ5LmZsYWcgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJuYW1lXCI+e3sgY291bnRyeS5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGlhbC1jb2RlXCI+e3sgY291bnRyeS5kaWFsX2NvZGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICBAaWYodHlwZSAhPT0gJ2RhdGV0aW1lJyl7XG4gICAgICAgIDxpbnB1dCAqbmdGb3I9XCJsZXQgaW5wdXQgb2YgaW5wdXRMaXN0OyBsZXQgaSA9IGluZGV4XCIgI2lucHV0RWwgI2lucHV0UmVmIFtpZF09XCJpbnB1dElkXCJcbiAgICAgICAgICBbdHlwZV09XCJpc1Bhc3N3b3JkVmlzaWJsZSA/ICd0ZXh0JyA6IHR5cGUgPT09ICdvdHAnIHx8IHR5cGUgPT09ICdkcm9wZG93bicgPyAndGV4dCcgOiB0eXBlXCJcbiAgICAgICAgICBbYXR0ci5wbGFjZWhvbGRlcl09XCJ0eXBlID09PSAnb3RwJyB8fCBtb2RlICE9PSAnZWRpdCcgPyAnJyA6IHBsYWNlaG9sZGVyIHx8ICh0eXBlID09PSAndGVsJyA/IHJlbW92ZURpYWxDb2RlKHNlbGVjdGVkQ291bnRyeS5wbGFjZWhvbGRlcikgOiBsYWJlbClcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cInR5cGUgPT09ICdvdHAnID8gJ2ZjT3RwJyA6ICdjdXN0b20taW5wdXQnXCIgW2Zvcm1Db250cm9sXT1cInR5cGUgPT09ICdvdHAnID8gJGFueShpbnB1dCkgOiBjb250cm9sXCJcbiAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cInR5cGUgPT09ICdvdHAnfHwgbW9kZSAhPT0gJ2VkaXQnID8gJycgOiBpbnB1dEJnQ29sb3JcIlxuICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJ0eXBlID09PSAnb3RwJyB8fCBtb2RlICE9PSAnZWRpdCcgPyAnJyA6IGlucHV0VGV4dENvbG9yXCJcbiAgICAgICAgICBbc3R5bGUuYm9yZGVyXT1cInR5cGUgPT09ICdvdHAnIHx8IG1vZGUgIT09ICdlZGl0JyA/ICcnIDogaW5wdXRCb3JkZXJcIlxuICAgICAgICAgIFtzdHlsZS5oZWlnaHRdPVwidHlwZSA9PT0gJ290cCcgPyAnJyA6IGlucHV0SGVpZ2h0XCIgW3N0eWxlLndpZHRoXT1cInR5cGUgPT09ICdvdHAnID8gJycgOiBpbnB1dFdpZHRoXCJcbiAgICAgICAgICBbdmFsdWVdPVwidHlwZSA9PT0gJ3RlbCcgPyByYXdJbnB1dFZhbCA6IHZhbHVlXCJcbiAgICAgICAgICAoaW5wdXQpPVwidHlwZSA9PT0gJ290cCcgPyBoYW5kbGVJbnB1dCgpIDogb25JbnB1dENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICBbc3R5bGUuZm9udC1zaXplXT1cInR5cGUgPT09ICdvdHAnID8gJycgOiBpbnB1dFZhbHVlU2l6ZVwiIChmb2N1cyk9XCJ0eXBlID09PSAnb3RwJyA/IGhhbmRsZUZvY3VzKCRldmVudCkgOiBudWxsXCJcbiAgICAgICAgICAoYmx1cik9XCJ0eXBlID09PSAnb3RwJyA/IG9uVG91Y2hlZCgpIDogYmx1ckVtaXQoKVwiXG4gICAgICAgICAgKGtleXByZXNzKT1cInR5cGUgPT09ICdvdHAnID8gaGFuZGxlS2V5UHJlc3MoJGV2ZW50LCBpKSA6IG51bGxcIlxuICAgICAgICAgIChrZXlkb3duKT1cInR5cGUgPT09ICdvdHAnID8gaGFuZGxlS2V5RG93bigkZXZlbnQsIGkpIDogbnVsbFwiXG4gICAgICAgICAgKHBhc3RlKT1cInR5cGUgPT09ICdvdHAnID8gaGFuZGxlUGFzdGUoJGV2ZW50LCBpKSA6IG51bGxcIiBpbnB1dG1vZGU9XCJ0eXBlID09PSAnb3RwJyA/IG51bWVyaWMgOiBudWxsXCJcbiAgICAgICAgICBbYXR0ci5hdXRvY29tcGxldGVdPVwidHlwZSA9PT0gJ290cCcgJiYgaSA9PT0gMCA/ICdvbmUtdGltZS1jb2RlJyA6IHR5cGUgPT09ICdsaXN0JyA/ICdsaXN0JyA6ICdvZmYnXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cInR5cGUgPT09ICdsaXN0JyA/IHNob3dTdWdnZXN0aW9uIDogJ29mZidcIlxuICAgICAgICAgIFthdHRyLmlucHV0bW9kZV09XCJ0eXBlID09PSAnb3RwJyA/ICdudW1lcmljJyA6IG51bGxcIiBbYXR0ci5uYW1lXT1cInR5cGUgPT09ICdvdHAnICYmIGkgPT09IDAgPyAnb3RwJyA6IG51bGxcIlxuICAgICAgICAgIChmb2N1c2luKT1cImZvY3VzaW5FbWl0KCRldmVudClcIiBbYXR0ci5hcmlhLW93bnNdPVwidHlwZSA9PT0gJ2xpc3QnID8gYXJpYU93bnMgOiAnb2ZmJ1wiXG4gICAgICAgICAgW2F0dHIuYXJpYS1oYXNwb3B1cF09XCJ0eXBlID09PSAnbGlzdCcgPyBhcmlhSGFzUG9wdXAgOiAnb2ZmJ1wiIFtyZWFkT25seV09XCJtb2RlICE9PSAnZWRpdCcgJiYgIXZpZXdFZGl0XCJcbiAgICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgICAgICctLXBsYWNlaG9sZGVyLWZvbnQnOiBtb2RlID09PSAnZWRpdCcgPyBwbGFjZWhvbGRlckZvbnQgfHwgbGFiZWxGb250IDogJycsXG4gICAgICAgICAgICAgICctLXBsYWNlaG9sZGVyLWNvbG9yJzogbW9kZSA9PT0gJ2VkaXQnID8gcGxhY2Vob2xkZXJDb2xvciB8fCAnIzlhOWE5YScgOiAnJyxcbiAgICAgICAgICAgICAgJy0tcGxhY2Vob2xkZXItc2l6ZSc6IG1vZGUgPT09ICdlZGl0JyA/IHBsYWNlaG9sZGVyU2l6ZSB8fCBpbnB1dFZhbHVlU2l6ZSA6ICcnLFxuICAgICAgICAgICAgICAnLS1wbGFjZWhvbGRlci13ZWlnaHQnOiBtb2RlID09PSAnZWRpdCcgPyBwbGFjZWhvbGRlcldlaWdodCB8fCBsYWJlbFdlaWdodCA6ICcnXG4gICAgICAgICAgICB9XCIgKGtleWRvd24uZW50ZXIpPVwidHlwZSA9PT0gJ2xvY2F0aW9uJyA/ICRldmVudC5wcmV2ZW50RGVmYXVsdCgpIDogJydcIlxuICAgICAgICAgIGF1dG9jb3JyZWN0PVwidHlwZSA9PT0gJ2xvY2F0aW9uJyA/ICdvZmYnIDogJydcIiBhdXRvY2FwaXRhbGl6ZT1cInR5cGUgPT09ICdsb2NhdGlvbicgPyAnb2ZmJyA6ICcnXCJcbiAgICAgICAgICBzcGVsbGNoZWNrPVwidHlwZSA9PT0gJ2xvY2F0aW9uJyA/ICdvZmYnIDogJydcIiAvPlxuICAgICAgICB9XG4gICAgICAgIEBlbHNlIGlmKHR5cGUgPT09ICdkYXRldGltZScpe1xuICAgICAgICA8aW5wdXQgI2lucHV0RWwgW2lkXT1cImlucHV0SWRcIlxuICAgICAgICAgIFtvd2xEYXRlVGltZVRyaWdnZXJdPVwidHlwZSA9PT0gJ2RhdGV0aW1lJyA/IGR0IDogdHlwZSA9PT0gJ2RhdGUnID8gZHQyIDogdHlwZSA9PT0gJ3RpbWUnID8gZHQzIDogZHRcIlxuICAgICAgICAgIFtvd2xEYXRlVGltZV09XCJ0eXBlID09PSAnZGF0ZXRpbWUnID8gZHQgOiB0eXBlID09PSAnZGF0ZScgPyBkdDIgOiB0eXBlID09PSAndGltZScgPyBkdDMgOiBkdFwiXG4gICAgICAgICAgW2F0dHIucGxhY2Vob2xkZXJdPVwibW9kZSAhPT0gJ2VkaXQnID8gJycgOiBwbGFjZWhvbGRlciB8fCB0eXBlID09PSAnZGF0ZXRpbWUnID8gJ0REL01NL1lZWVkgSEg6TU0nIDogdHlwZSA9PT0gJ2RhdGUnID8gJ0REL01NL1lZWVknIDogdHlwZSA9PT0gJ3RpbWUnID8gJ0hIOk1NJyA6ICdERC9NTS9ZWVlZIEhIOk1NJ1wiXG4gICAgICAgICAgW25nQ2xhc3NdPVwiJ2N1c3RvbS1pbnB1dCdcIiBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiXG4gICAgICAgICAgW3N0eWxlLmJhY2tncm91bmRDb2xvcl09XCJtb2RlICE9PSAnZWRpdCcgPyAnJyA6IGlucHV0QmdDb2xvclwiXG4gICAgICAgICAgW3N0eWxlLmNvbG9yXT1cIm1vZGUgIT09ICdlZGl0JyA/ICcnIDogaW5wdXRUZXh0Q29sb3JcIiBbc3R5bGUuYm9yZGVyXT1cIm1vZGUgIT09ICdlZGl0JyA/ICdub25lJyA6IGlucHV0Qm9yZGVyXCJcbiAgICAgICAgICBbc3R5bGUuaGVpZ2h0XT1cImlucHV0SGVpZ2h0XCIgW3N0eWxlLndpZHRoXT1cImlucHV0V2lkdGhcIiBbdmFsdWVdPVwidmFsdWVcIiAoaW5wdXQpPVwiIG9uSW5wdXRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgW3N0eWxlLmZvbnQtc2l6ZV09XCJpbnB1dFZhbHVlU2l6ZVwiIChibHVyKT1cIiBibHVyRW1pdCgpXCIgKGZvY3VzaW4pPVwiZm9jdXNpbkVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgW3JlYWRPbmx5XT1cIm1vZGUgIT09ICdlZGl0JyAmJiAhdmlld0VkaXRcIiBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgICAnLS1wbGFjZWhvbGRlci1mb250JzogbW9kZSA9PT0gJ2VkaXQnID8gcGxhY2Vob2xkZXJGb250IHx8IGxhYmVsRm9udCA6ICcnLFxuICAgICAgICAgICAgJy0tcGxhY2Vob2xkZXItY29sb3InOiBtb2RlID09PSAnZWRpdCcgPyBwbGFjZWhvbGRlckNvbG9yIHx8ICcjOWE5YTlhJyA6ICcnLFxuICAgICAgICAgICAgJy0tcGxhY2Vob2xkZXItc2l6ZSc6IG1vZGUgPT09ICdlZGl0JyA/IHBsYWNlaG9sZGVyU2l6ZSB8fCBpbnB1dFZhbHVlU2l6ZSA6ICcnLFxuICAgICAgICAgICAgJy0tcGxhY2Vob2xkZXItd2VpZ2h0JzogbW9kZSA9PT0gJ2VkaXQnID8gcGxhY2Vob2xkZXJXZWlnaHQgfHwgbGFiZWxXZWlnaHQgOiAnJ1xuICAgICAgICAgIH1cIiBzdHlsZT1cIlxuICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgICAgICAgICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcIiAvPlxuICAgICAgICA8b3dsLWRhdGUtdGltZSAjZHQ+PC9vd2wtZGF0ZS10aW1lPlxuICAgICAgICA8b3dsLWRhdGUtdGltZSBbcGlja2VyVHlwZV09XCInY2FsZW5kYXInXCIgI2R0Mj48L293bC1kYXRlLXRpbWU+XG4gICAgICAgIDxvd2wtZGF0ZS10aW1lIFtwaWNrZXJUeXBlXT1cIid0aW1lcidcIiAjZHQzPjwvb3dsLWRhdGUtdGltZT5cbiAgICAgICAgfVxuICAgICAgICA8ZGl2ICpuZ0lmPVwibW9kZSA9PT0gJ2VkaXQnICYmIHR5cGUgPT09ICdsaXN0J1wiIGNsYXNzPVwiaWNvbi1jb250YWluZXJcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNMb2FkaW5nOyBlbHNlIHNlYXJjaEljb25cIj5cbiAgICAgICAgICAgIDwhLS0gTWluaW1hbCBEb3R0ZWQgTG9hZGVyIC0tPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRvdHRlZC1sb2FkZXJcIiBhcmlhLWxhYmVsPVwiTG9hZGluZ1wiIHJvbGU9XCJzdGF0dXNcIj5cbiAgICAgICAgICAgICAgPHNwYW4gKm5nRm9yPVwibGV0IGRvdCBvZiBbXS5jb25zdHJ1Y3Rvcig2KTsgbGV0IGkgPSBpbmRleFwiIGNsYXNzPVwiZG90XCIgW3N0eWxlLi0taV09XCJpXCI+PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNzZWFyY2hJY29uPlxuICAgICAgICAgICAgPCEtLSBJbmxpbmUgc2VhcmNoIGljb24gU1ZHIC0tPlxuICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiBmaWxsPVwibm9uZVwiIHN0cm9rZT1cIiM0MzQ1NTVcIiBzdHJva2Utb3BhY2l0eT1cIjAuNjVcIiBzdHJva2Utd2lkdGg9XCIyXCJcbiAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjExXCIgY3k9XCIxMVwiIHI9XCI3XCIgLz5cbiAgICAgICAgICAgICAgPHBhdGggZD1cIk0yMCAyMEwxNyAxN1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiAvPlxuICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIFxuICAgICAgICA8IS0tIEFsd2F5cyBTaG93IERyb3Bkb3duIEljb24gLS0+XG4gICAgICAgIDxzdmcgKm5nSWY9XCJtb2RlID09PSAnZWRpdCcgJiYgdHlwZSA9PT0gJ2Ryb3Bkb3duJ1wiIChtb3VzZWRvd24pPVwidG9nZ2xlKCRldmVudCk7ICRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCJcbiAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCI+XG4gICAgICAgICAgPHBhdGggZD1cIk05IDIySDE1QzIwIDIyIDIyIDIwIDIyIDE1VjlDMjIgNCAyMCAyIDE1IDJIOUM0IDIgMiA0IDIgOVYxNUMyIDIwIDQgMjIgOSAyMlpcIiBzdHJva2U9XCIjMjkyRDMyXCJcbiAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XG4gICAgICAgICAgPHBhdGggZD1cIk04LjQ2OTk3IDEwLjY0TDEyIDE0LjE2TDE1LjUzIDEwLjY0XCIgc3Ryb2tlPVwiIzI5MkQzMlwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxuICAgICAgICA8L3N2Zz5cbiAgICAgICAgPCEtLSBDYW5jZWwgSWNvbiAtLT5cbiAgICAgICAgPHN2ZyAqbmdJZj1cInZhbHVlICYmIG1vZGUgPT09ICdlZGl0JyAmJiB0eXBlID09PSAnZHJvcGRvd24nIFwiIChjbGljayk9XCJjbGVhckVtaXQoJGV2ZW50KVwiXG4gICAgICAgIGNsYXNzPVwiaWNvbiBjYW5jZWwtaWNvblwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCJcbiAgICAgICAgZmlsbD1cIm5vbmVcIj5cbiAgICAgICAgPHBhdGggZD1cIk02IDZMMTggMThNNiAxOEwxOCA2XCIgc3Ryb2tlPVwiIzI5MkQzMlwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgLz5cbiAgICAgICAgPC9zdmc+XG5cbiAgICAgICAgPGltZyAqbmdJZj1cIm1vZGUgPT09ICdlZGl0JyAmJiBpbnB1dEljb25SaWdodFNyY1wiIFtzcmNdPVwiaW5wdXRJY29uUmlnaHRTcmNcIiBjbGFzcz1cImljb24gcmlnaHQtaWNvblwiXG4gICAgICAgICAgW3N0eWxlLmhlaWdodF09XCJzdmdIZWlnaHRcIiBbc3R5bGUud2lkdGhdPVwic3ZnV2lkdGhcIj5cbiAgICAgICAgPGltZyAqbmdJZj1cIm1vZGUgPT09ICdlZGl0JyAmJiB0eXBlID09PSAncGFzc3dvcmQnXCIgY2xhc3M9XCJ0b2dnbGUtaWNvblwiIChjbGljayk9XCJ0b2dnbGVQYXNzd29yZFZpc2liaWxpdHkoKVwiXG4gICAgICAgICAgW3NyY109XCIhaXNQYXNzd29yZFZpc2libGUgPyAnL2Fzc2V0cy9pbWFnZXMvaWNvbnMvZ2VuZXJhbC9IaWRlLVBhc3N3b3JkLnN2ZycgOiAnL2Fzc2V0cy9pbWFnZXMvaWNvbnMvZ2VuZXJhbC9TaG93LVBhc3N3b3JkLnN2ZydcIiAvPlxuICAgICAgICA8c3ZnICpuZ0lmPVwibW9kZSAhPT0gJ2VkaXQnICYmICF2aWV3RWRpdCAmJiAhcXVlc3Rpb24uaXNSZWFkT25seVwiIGNsYXNzPVwiZWRpdC1pY29uXCJcbiAgICAgICAgICAoY2xpY2spPVwidmlld0VkaXRDbGljayhxdWVzdGlvbilcIiB3aWR0aD1cIjEzXCIgaGVpZ2h0PVwiMTRcIiB2aWV3Qm94PVwiMCAwIDEzIDE0XCIgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgICAgICBkPVwiTTEuOTk5ODcgOS4wMDE3TDQuMzk2MDIgMTEuMzk3OUM0LjUwMzcxIDExLjUwNTUgNC42NjUyNSAxMS41MDU1IDQuNzcyOTQgMTEuMzk3OUwxMC43NDk5IDUuMzk0MDFDMTAuODU3NiA1LjI4NjMxIDEwLjg1NzYgNS4xMjQ3NyAxMC43NDk5IDUuMDE3MDhMOC4zODA2NCAyLjY0Nzg1QzguMjcyOTQgMi41NDAxNiA4LjExMTQxIDIuNTQwMTYgOC4wMDM3MSAyLjY0Nzg1TDEuOTk5ODcgOC42NTE3QzEuODkyMTcgOC43NTkzOSAxLjg5MjE3IDguOTIwOTMgMS45OTk4NyA5LjAwMTdaTTkuMTYxNCAxLjU0NDAxQzkuMDUzNzEgMS42NTE3IDkuMDUzNzEgMS44MTMyNCA5LjE2MTQgMS45MjA5M0wxMS41MzA2IDQuMjkwMTZDMTEuNjM4MyA0LjM5Nzg1IDExLjc5OTkgNC4zOTc4NSAxMS45MDc2IDQuMjkwMTZMMTIuNTgwNiAzLjYxNzA4QzEzLjAxMTQgMy4yMTMyNCAxMy4wMTE0IDIuNTY3MDggMTIuNTgwNiAyLjEzNjMxTDExLjMxNTMgMC44NzA5MjhDMTAuODg0NSAwLjQ0MDE1OSAxMC4yMTE0IDAuNDQwMTU5IDkuNzgwNjMgMC44NzA5MjhMOS4xNjE0IDEuNTQ0MDFaTTAuMDA3NTU4NjIgMTIuOTg2M0MtMC4wNDYyODc1IDEzLjI1NTUgMC4xOTYwMiAxMy40OTc5IDAuNDY1MjUxIDEzLjQ0NEwzLjM5OTg3IDEyLjc0NEMzLjUwNzU2IDEyLjcxNzEgMy41ODgzMyAxMi42NjMyIDMuNjQyMTcgMTIuNjA5NEwzLjY5NjAyIDEyLjU1NTVDMy43NDk4NyAxMi41MDE3IDMuNzc2NzkgMTIuMzEzMiAzLjY2OTEgMTIuMjA1NUwxLjI0NjAyIDkuNzgyNDdDMS4xMzgzMyA5LjY3NDc4IDAuOTQ5ODY2IDkuNzAxNyAwLjg5NjAyIDkuNzU1NTRMMC44NDIxNzQgOS44MDkzOUMwLjc2MTQwNSA5Ljg5MDE2IDAuNzM0NDgyIDkuOTcwOTMgMC43MDc1NTkgMTAuMDUxN0wwLjAwNzU1ODYyIDEyLjk4NjNaXCJcbiAgICAgICAgICAgIGZpbGw9XCIjQjBBREFCXCIgLz5cbiAgICAgICAgPC9zdmc+XG5cbiAgICAgICAgPGRpdiAqbmdJZj1cInZpZXdFZGl0XCIgKG1vdXNlZW50ZXIpPVwiaXNTYXZlSG92ZXJlZCA9IHRydWVcIiAobW91c2VsZWF2ZSk9XCJpc1NhdmVIb3ZlcmVkID0gZmFsc2VcIiBzdHlsZT1cInBhZGRpbmctcmlnaHQ6IDVweDtcIj5cbiAgICAgICAgICA8c3ZnICpuZ0lmPVwiIWlzU2F2ZUhvdmVyZWRcIiB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgZD1cIk01Ljk1MDIgMC41QzguOTYwMDYgMC41MDAxMDYgMTEuNDAwNCAyLjk0MDMxIDExLjQwMDQgNS45NTAyQzExLjQwMDMgOC45NTk5OSA4Ljk1OTk5IDExLjQwMDMgNS45NTAyIDExLjQwMDRDMi45NDAzMSAxMS40MDA0IDAuNTAwMTA2IDguOTYwMDYgMC41IDUuOTUwMkMwLjUgMi45NDAyNCAyLjk0MDI0IDAuNSA1Ljk1MDIgMC41WlwiXG4gICAgICAgICAgICAgIHN0cm9rZT1cIiM4MzdGOEVcIiAvPlxuICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgZD1cIk04Ljg4MTExIDMuODQ1ODNDOC44MzI2OSAzLjc5NzIgOC43NzUxMyAzLjc1ODYgOC43MTE3NiAzLjczMjI3QzguNjQ4MzggMy43MDU5NCA4LjU4MDQzIDMuNjkyMzggOC41MTE4IDMuNjkyMzhDOC40NDMxNyAzLjY5MjM4IDguMzc1MjEgMy43MDU5NCA4LjMxMTg0IDMuNzMyMjdDOC4yNDg0NiAzLjc1ODYgOC4xOTA5MSAzLjc5NzIgOC4xNDI0OSAzLjg0NTgzTDQuODI2OSA3LjE2MzQ3TDMuMzUyNTMgNS42ODkxQzMuMzA0MDMgNS42NDA2IDMuMjQ2NDYgNS42MDIxMyAzLjE4MzA5IDUuNTc1ODhDMy4xMTk3MiA1LjU0OTY0IDMuMDUxODEgNS41MzYxMyAyLjk4MzIyIDUuNTM2MTNDMi45MTQ2MyA1LjUzNjEzIDIuODQ2NzIgNS41NDk2NCAyLjc4MzM1IDUuNTc1ODhDMi43MTk5OSA1LjYwMjEzIDIuNjYyNDEgNS42NDA2IDIuNjEzOTEgNS42ODkxQzIuNTY1NDEgNS43Mzc2IDIuNTI2OTQgNS43OTUxOCAyLjUwMDY5IDUuODU4NTRDMi40NzQ0NSA1LjkyMTkxIDIuNDYwOTQgNS45ODk4MiAyLjQ2MDk0IDYuMDU4NDFDMi40NjA5NCA2LjEyNyAyLjQ3NDQ1IDYuMTk0OTEgMi41MDA2OSA2LjI1ODI4QzIuNTI2OTQgNi4zMjE2NSAyLjU2NTQxIDYuMzc5MjIgMi42MTM5MSA2LjQyNzcyTDQuNDU2NzcgOC4yNzA1OEM0LjUwNTE5IDguMzE5MjIgNC41NjI3NCA4LjM1NzgxIDQuNjI2MTIgOC4zODQxNEM0LjY4OTUgOC40MTA0NyA0Ljc1NzQ1IDguNDI0MDMgNC44MjYwOCA4LjQyNDAzQzQuODk0NzEgOC40MjQwMyA0Ljk2MjY2IDguNDEwNDcgNS4wMjYwNCA4LjM4NDE0QzUuMDg5NDIgOC4zNTc4MSA1LjE0Njk3IDguMzE5MjIgNS4xOTUzOSA4LjI3MDU4TDguODgxMTEgNC41ODQ0NUM4LjkyOTc0IDQuNTM2MDMgOC45NjgzNCA0LjQ3ODQ4IDguOTk0NjcgNC40MTUxQzkuMDIxIDQuMzUxNzMgOS4wMzQ1NiA0LjI4Mzc3IDkuMDM0NTYgNC4yMTUxNEM5LjAzNDU2IDQuMTQ2NTEgOS4wMjEgNC4wNzg1NiA4Ljk5NDY3IDQuMDE1MThDOC45NjgzNCAzLjk1MTggOC45Mjk3NCAzLjg5NDI1IDguODgxMTEgMy44NDU4M1pcIlxuICAgICAgICAgICAgICBmaWxsPVwiIzgzN0Y4RVwiIC8+XG4gICAgICAgICAgPC9zdmc+XG5cbiAgICAgICAgICA8c3ZnICpuZ0lmPVwiaXNTYXZlSG92ZXJlZFwiIChjbGljayk9XCJzYXZlQ2hhbmdlcygpXCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEzXCIgdmlld0JveD1cIjAgMCAxMiAxM1wiIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgIGQ9XCJNNS45NSAxMi44MDA0QzkuMjM2MDkgMTIuODAwNCAxMS45IDEwLjEzNjUgMTEuOSA2Ljg1MDM5QzExLjkgMy41NjQzIDkuMjM2MDkgMC45MDAzOTEgNS45NSAwLjkwMDM5MUMyLjY2MzkxIDAuOTAwMzkxIDAgMy41NjQzIDAgNi44NTAzOUMwIDEwLjEzNjUgMi42NjM5MSAxMi44MDA0IDUuOTUgMTIuODAwNFpcIlxuICAgICAgICAgICAgICBmaWxsPVwiIzI1OTU2NlwiIC8+XG4gICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICBkPVwiTTguODgxMTEgNC43NDYyMkM4LjgzMjY5IDQuNjk3NTkgOC43NzUxMyA0LjY1ODk5IDguNzExNzYgNC42MzI2NkM4LjY0ODM4IDQuNjA2MzMgOC41ODA0MyA0LjU5Mjc3IDguNTExOCA0LjU5Mjc3QzguNDQzMTcgNC41OTI3NyA4LjM3NTIxIDQuNjA2MzMgOC4zMTE4NCA0LjYzMjY2QzguMjQ4NDYgNC42NTg5OSA4LjE5MDkxIDQuNjk3NTkgOC4xNDI0OSA0Ljc0NjIyTDQuODI2OSA4LjA2Mzg2TDMuMzUyNTMgNi41ODk0OUMzLjMwNDAzIDYuNTQwOTkgMy4yNDY0NiA2LjUwMjUyIDMuMTgzMDkgNi40NzYyN0MzLjExOTcyIDYuNDUwMDMgMy4wNTE4MSA2LjQzNjUyIDIuOTgzMjIgNi40MzY1MkMyLjkxNDYzIDYuNDM2NTIgMi44NDY3MiA2LjQ1MDAzIDIuNzgzMzUgNi40NzYyN0MyLjcxOTk5IDYuNTAyNTIgMi42NjI0MSA2LjU0MDk5IDIuNjEzOTEgNi41ODk0OUMyLjU2NTQxIDYuNjM3OTkgMi41MjY5NCA2LjY5NTU3IDIuNTAwNjkgNi43NTg5M0MyLjQ3NDQ1IDYuODIyMyAyLjQ2MDk0IDYuODkwMjIgMi40NjA5NCA2Ljk1ODhDMi40NjA5NCA3LjAyNzM5IDIuNDc0NDUgNy4wOTUzMSAyLjUwMDY5IDcuMTU4NjdDMi41MjY5NCA3LjIyMjA0IDIuNTY1NDEgNy4yNzk2MSAyLjYxMzkxIDcuMzI4MTFMNC40NTY3NyA5LjE3MDk3QzQuNTA1MTkgOS4yMTk2MSA0LjU2Mjc0IDkuMjU4MiA0LjYyNjEyIDkuMjg0NTNDNC42ODk1IDkuMzEwODYgNC43NTc0NSA5LjMyNDQyIDQuODI2MDggOS4zMjQ0MkM0Ljg5NDcxIDkuMzI0NDIgNC45NjI2NiA5LjMxMDg2IDUuMDI2MDQgOS4yODQ1M0M1LjA4OTQyIDkuMjU4MiA1LjE0Njk3IDkuMjE5NjEgNS4xOTUzOSA5LjE3MDk3TDguODgxMTEgNS40ODQ4NEM4LjkyOTc0IDUuNDM2NDIgOC45NjgzNCA1LjM3ODg3IDguOTk0NjcgNS4zMTU0OUM5LjAyMSA1LjI1MjEyIDkuMDM0NTYgNS4xODQxNiA5LjAzNDU2IDUuMTE1NTNDOS4wMzQ1NiA1LjA0NjkgOS4wMjEgNC45Nzg5NSA4Ljk5NDY3IDQuOTE1NTdDOC45NjgzNCA0Ljg1MjIgOC45Mjk3NCA0Ljc5NDY1IDguODgxMTEgNC43NDYyMlpcIlxuICAgICAgICAgICAgICBmaWxsPVwid2hpdGVcIiAvPlxuICAgICAgICAgIDwvc3ZnPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiAqbmdJZj1cInZpZXdFZGl0XCIgKG1vdXNlZW50ZXIpPVwiaXNEaXNjYXJkSG92ZXJlZCA9IHRydWVcIiAobW91c2VsZWF2ZSk9XCJpc0Rpc2NhcmRIb3ZlcmVkID0gZmFsc2VcIj5cbiAgICAgICAgICA8c3ZnICpuZ0lmPVwiIWlzRGlzY2FyZEhvdmVyZWRcIiB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgZD1cIk03LjA1NTU1IDQuMDA4ODNMNS45NCA1LjEyNDM4TDQuODI0NDUgNC4wMDg4M0M0LjU3ODYxIDMuNzYyOTkgNC4xODE5MSAzLjc2Mjk5IDMuOTM2MDcgNC4wMDg4M0MzLjY5MDIzIDQuMjU0NjcgMy42OTAyMyA0LjY1MTM3IDMuOTM2MDcgNC44OTcyMUw1LjA1MTYyIDYuMDEyNzZMMy45MzYwNyA3LjEyODMxQzMuNjkwMjMgNy4zNzQxNSAzLjY5MDIzIDcuNzcwODUgMy45MzYwNyA4LjAxNjY5QzQuMTgxOTEgOC4yNjI1MyA0LjU3ODYxIDguMjYyNTMgNC44MjQ0NSA4LjAxNjY5TDUuOTQgNi45MDExNEw3LjA1NTU1IDguMDE2NjlDNy4zMDEzOSA4LjI2MjUzIDcuNjk4MDkgOC4yNjI1MyA3Ljk0MzkzIDguMDE2NjlDOC4xODk3NyA3Ljc3MDg1IDguMTg5NzcgNy4zNzQxNSA3Ljk0MzkzIDcuMTI4MzFMNi44MjgzOCA2LjAxMjc2TDcuOTQzOTMgNC44OTcyMUM4LjE4OTc3IDQuNjUxMzcgOC4xODk3NyA0LjI1NDY3IDcuOTQzOTMgNC4wMDg4M0M3LjY5ODA5IDMuNzcyODUgNy4zMDAyMSAzLjc3Mjg1IDcuMDU1NTUgNC4wMDg4M1pNNS45NCAwLjA4MjAzMTJDMi43MDAxNyAwLjA4MjAzMTIgMC4wODA4NTk0IDIuNzAxMzQgMC4wODA4NTk0IDUuOTQxMThDMC4wODA4NTk0IDkuMTgxMDEgMi43MDAxNyAxMS44MDAzIDUuOTQgMTEuODAwM0M5LjE3OTgzIDExLjgwMDMgMTEuNzk5MSA5LjE4MTAxIDExLjc5OTEgNS45NDExOEMxMS43OTkxIDIuNzAxMzQgOS4xNzk4MyAwLjA4MjAzMTIgNS45NCAwLjA4MjAzMTJaTTUuOTQgMTAuNjM2N0MzLjM1NDI2IDEwLjYzNjcgMS4yNDQyMiA4LjUyNjY3IDEuMjQ0MjIgNS45NDExOEMxLjI0NDIyIDMuMzU1NTMgMy4zNTQyNiAxLjI0NTQ5IDUuOTQgMS4yNDU0OUM4LjUyNTU4IDEuMjQ1NDkgMTAuNjM1NiAzLjM1NTUzIDEwLjYzNTYgNS45NDExOEMxMC42MzU2IDguNTI2NjcgOC41MjU1OCAxMC42MzY3IDUuOTQgMTAuNjM2N1pcIlxuICAgICAgICAgICAgICBmaWxsPVwiI0IwQURBQlwiIC8+XG4gICAgICAgICAgPC9zdmc+XG5cbiAgICAgICAgICA8c3ZnICpuZ0lmPVwiaXNEaXNjYXJkSG92ZXJlZFwiIChjbGljayk9XCJkaXNjYXJkQ2hhbmdlcygpXCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEzXCIgdmlld0JveD1cIjAgMCAxMiAxM1wiIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgIGQ9XCJNNy4wNTU1NSA0Ljk3NDcxTDUuOTQgNi4wOTAyNkw0LjgyNDQ1IDQuOTc0NzFDNC41Nzg2MSA0LjcyODg3IDQuMTgxOTEgNC43Mjg4NyAzLjkzNjA3IDQuOTc0NzFDMy42OTAyMyA1LjIyMDU1IDMuNjkwMjMgNS42MTcyNSAzLjkzNjA3IDUuODYzMDlMNS4wNTE2MiA2Ljk3ODY0TDMuOTM2MDcgOC4wOTQxOUMzLjY5MDIzIDguMzQwMDMgMy42OTAyMyA4LjczNjczIDMuOTM2MDcgOC45ODI1N0M0LjE4MTkxIDkuMjI4NDEgNC41Nzg2MSA5LjIyODQxIDQuODI0NDUgOC45ODI1N0w1Ljk0IDcuODY3MDJMNy4wNTU1NSA4Ljk4MjU3QzcuMzAxMzkgOS4yMjg0MSA3LjY5ODA5IDkuMjI4NDEgNy45NDM5MyA4Ljk4MjU3QzguMTg5NzcgOC43MzY3MyA4LjE4OTc3IDguMzQwMDMgNy45NDM5MyA4LjA5NDE5TDYuODI4MzggNi45Nzg2NEw3Ljk0MzkzIDUuODYzMDlDOC4xODk3NyA1LjYxNzI1IDguMTg5NzcgNS4yMjA1NSA3Ljk0MzkzIDQuOTc0NzFDNy42OTgwOSA0LjczODczIDcuMzAwMjEgNC43Mzg3MyA3LjA1NTU1IDQuOTc0NzFaTTUuOTQgMS4wNjA2MkMyLjcwMDE3IDEuMDYwNjIgMC4wODA4NTk0IDMuNjc5OTMgMC4wODA4NTk0IDYuOTE5NzdDMC4wODA4NTk0IDEwLjE1OTYgMi43MDAxNyAxMi43Nzg5IDUuOTQgMTIuNzc4OUM5LjE3OTgzIDEyLjc3ODkgMTEuNzk5MSAxMC4xNTk2IDExLjc5OTEgNi45MTk3N0MxMS43OTkxIDMuNjc5OTMgOS4xNzk4MyAxLjA2MDYyIDUuOTQgMS4wNjA2MlpNNS45NCAxMS42MTUzQzMuMzU0MjYgMTEuNjE1MyAxLjI0NDIyIDkuNTA1MjUgMS4yNDQyMiA2LjkxOTc3QzEuMjQ0MjIgNC4zMzQxMiAzLjM1NDI2IDIuMjI0MDggNS45NCAyLjIyNDA4QzguNTI1NTggMi4yMjQwOCAxMC42MzU2IDQuMzM0MTIgMTAuNjM1NiA2LjkxOTc3QzEwLjYzNTYgOS41MDUyNSA4LjUyNTU4IDExLjYxNTMgNS45NCAxMS42MTUzWlwiXG4gICAgICAgICAgICAgIGZpbGw9XCIjRkYzNjM2XCIgLz5cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxsYWJlbCBjbGFzcz1cImNoZWNrYm94TGFiXCIgKm5nSWY9XCJsYWJlbCAmJiB0eXBlID09PSAnY2hlY2tib3gnICYmIHNob3dMYWJlbFwiIFtzdHlsZS5mb250LXdlaWdodF09XCJsYWJlbFdlaWdodFwiXG4gICAgICAgIFtzdHlsZS5mb250LXNpemVdPVwibGFiZWxTaXplXCIgW3N0eWxlLmNvbG9yXT1cImxhYmVsQ29sb3IgfHwgJyM5YTlhOWEnXCJcbiAgICAgICAgc3R5bGU9XCJtYXJnaW4tYm90dG9tOiAwOyBwYWRkaW5nLWxlZnQ6IDEwcHg7IHBhZGRpbmctcmlnaHQ6IDEwcHg7XCI+IHt7IGxhYmVsIH19XG4gICAgICAgIDxkaXYgKm5nSWY9XCJsYWJlbCAmJiB0eXBlID09PSAnY2hlY2tib3gnICYmIHJlcXVpcmVkICYmIHNob3dMYWJlbFwiIHN0eWxlPVwiY29sb3I6IHJlZDtcIj4qPC9kaXY+XG4gICAgICA8L2xhYmVsPlxuICAgIDwvZGl2PlxuICAgIDxxdWlsbC1lZGl0b3IgKm5nSWY9XCJtb2RlID09PSAnZWRpdCcgJiYgdHlwZSA9PT0gJ3JpY2h0ZXh0J1wiIFsobmdNb2RlbCldPVwidmFsdWVcIiBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgW21vZHVsZXNdPVwibW9kZSA9PT0gJ2VkaXQnID8gcXVpbGxDb25maWd1cmF0aW9uIDogZW1wdHlRdWlsbE1vZHVsZXNcIiBbcmVhZE9ubHldPVwibW9kZSAhPT0gJ2VkaXQnICYmICF2aWV3RWRpdFwiXG4gICAgICAoZm9jdXNvdXQpPVwib25FZGl0b3JGb2N1c091dCgpXCIgW2NsYXNzLmVycm9yXT1cImNvbnRyb2wuaW52YWxpZCAmJiAoY29udHJvbC50b3VjaGVkIHx8IGNvbnRyb2wuZGlydHkpXCI+XG4gICAgPC9xdWlsbC1lZGl0b3I+XG4gICAgPCEtLSBWaWV3IG1vZGUgLS0+XG4gICAgPGRpdiAqbmdJZj1cIm1vZGUgIT09ICdlZGl0JyAmJiB0eXBlID09PSAncmljaHRleHQnXCIgY2xhc3M9XCJxdWlsbC12aWV3LWNvbnRlbnRcIiBbaW5uZXJIVE1MXT1cInZhbHVlXCI+XG4gICAgPC9kaXY+XG4gICAgPHRleHRhcmVhICpuZ0lmPVwidHlwZSA9PT0gJ3RleHRhcmVhJ1wiIFtpZF09XCJpbnB1dElkXCIgW3Jvd3NdPVwicm93c1wiXG4gICAgICBbYXR0ci5wbGFjZWhvbGRlcl09XCJtb2RlICE9PSAnZWRpdCcgPyAnJyA6IHBsYWNlaG9sZGVyXCIgW25nQ2xhc3NdPVwiJ2N1c3RvbS1pbnB1dCdcIiBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiXG4gICAgICBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cIm1vZGUgIT09ICdlZGl0JyA/ICcnIDogaW5wdXRCZ0NvbG9yXCJcbiAgICAgIFtzdHlsZS5jb2xvcl09XCJtb2RlICE9PSAnZWRpdCcgPyAnJyA6IGlucHV0VGV4dENvbG9yXCIgW3N0eWxlLmJvcmRlcl09XCJtb2RlICE9PSAnZWRpdCcgPyAnbm9uZScgOiBpbnB1dEJvcmRlclwiXG4gICAgICBbc3R5bGUuaGVpZ2h0XT1cImlucHV0SGVpZ2h0XCIgW3N0eWxlLndpZHRoXT1cImlucHV0V2lkdGhcIiBbdmFsdWVdPVwidmFsdWVcIiAoaW5wdXQpPVwiIG9uSW5wdXRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICBbc3R5bGUuZm9udC1zaXplXT1cImlucHV0VmFsdWVTaXplXCIgKGJsdXIpPVwiIGJsdXJFbWl0KClcIiAoZm9jdXNpbik9XCJmb2N1c2luRW1pdCgkZXZlbnQpXCJcbiAgICAgIFtyZWFkT25seV09XCJtb2RlICE9PSAnZWRpdCcgJiYgIXZpZXdFZGl0XCIgW25nU3R5bGVdPVwie1xuICAgICAgICAgICAgJy0tcGxhY2Vob2xkZXItZm9udCc6IG1vZGUgPT09ICdlZGl0JyA/IHBsYWNlaG9sZGVyRm9udCB8fCBsYWJlbEZvbnQgOiAnJyxcbiAgICAgICAgICAgICctLXBsYWNlaG9sZGVyLWNvbG9yJzogbW9kZSA9PT0gJ2VkaXQnID8gcGxhY2Vob2xkZXJDb2xvciB8fCAnIzlhOWE5YScgOiAnJyxcbiAgICAgICAgICAgICctLXBsYWNlaG9sZGVyLXNpemUnOiBtb2RlID09PSAnZWRpdCcgPyBwbGFjZWhvbGRlclNpemUgfHwgaW5wdXRWYWx1ZVNpemUgOiAnJyxcbiAgICAgICAgICAgICctLXBsYWNlaG9sZGVyLXdlaWdodCc6IG1vZGUgPT09ICdlZGl0JyA/IHBsYWNlaG9sZGVyV2VpZ2h0IHx8IGxhYmVsV2VpZ2h0IDogJydcbiAgICAgICAgICB9XCIgc3R5bGU9XCJcbiAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogNXB4O1xuICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICAgICAgICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XCI+PC90ZXh0YXJlYT5cbiAgICA8c3ZnICpuZ0lmPVwibW9kZSAhPT0gJ2VkaXQnICYmICF2aWV3RWRpdCAmJiAodHlwZSA9PT0gJ3JpY2h0ZXh0JyB8fCB0eXBlID09PSAndGV4dGFyZWEnKSAmJiAhcXVlc3Rpb24uaXNSZWFkT25seVwiXG4gICAgICBjbGFzcz1cImVkaXQtaWNvblwiIChjbGljayk9XCJ2aWV3RWRpdENsaWNrKHF1ZXN0aW9uKVwiIHdpZHRoPVwiMTNcIiBoZWlnaHQ9XCIxNFwiIHZpZXdCb3g9XCIwIDAgMTMgMTRcIiBmaWxsPVwibm9uZVwiXG4gICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgIGQ9XCJNMS45OTk4NyA5LjAwMTdMNC4zOTYwMiAxMS4zOTc5QzQuNTAzNzEgMTEuNTA1NSA0LjY2NTI1IDExLjUwNTUgNC43NzI5NCAxMS4zOTc5TDEwLjc0OTkgNS4zOTQwMUMxMC44NTc2IDUuMjg2MzEgMTAuODU3NiA1LjEyNDc3IDEwLjc0OTkgNS4wMTcwOEw4LjM4MDY0IDIuNjQ3ODVDOC4yNzI5NCAyLjU0MDE2IDguMTExNDEgMi41NDAxNiA4LjAwMzcxIDIuNjQ3ODVMMS45OTk4NyA4LjY1MTdDMS44OTIxNyA4Ljc1OTM5IDEuODkyMTcgOC45MjA5MyAxLjk5OTg3IDkuMDAxN1pNOS4xNjE0IDEuNTQ0MDFDOS4wNTM3MSAxLjY1MTcgOS4wNTM3MSAxLjgxMzI0IDkuMTYxNCAxLjkyMDkzTDExLjUzMDYgNC4yOTAxNkMxMS42MzgzIDQuMzk3ODUgMTEuNzk5OSA0LjM5Nzg1IDExLjkwNzYgNC4yOTAxNkwxMi41ODA2IDMuNjE3MDhDMTMuMDExNCAzLjIxMzI0IDEzLjAxMTQgMi41NjcwOCAxMi41ODA2IDIuMTM2MzFMMTEuMzE1MyAwLjg3MDkyOEMxMC44ODQ1IDAuNDQwMTU5IDEwLjIxMTQgMC40NDAxNTkgOS43ODA2MyAwLjg3MDkyOEw5LjE2MTQgMS41NDQwMVpNMC4wMDc1NTg2MiAxMi45ODYzQy0wLjA0NjI4NzUgMTMuMjU1NSAwLjE5NjAyIDEzLjQ5NzkgMC40NjUyNTEgMTMuNDQ0TDMuMzk5ODcgMTIuNzQ0QzMuNTA3NTYgMTIuNzE3MSAzLjU4ODMzIDEyLjY2MzIgMy42NDIxNyAxMi42MDk0TDMuNjk2MDIgMTIuNTU1NUMzLjc0OTg3IDEyLjUwMTcgMy43NzY3OSAxMi4zMTMyIDMuNjY5MSAxMi4yMDU1TDEuMjQ2MDIgOS43ODI0N0MxLjEzODMzIDkuNjc0NzggMC45NDk4NjYgOS43MDE3IDAuODk2MDIgOS43NTU1NEwwLjg0MjE3NCA5LjgwOTM5QzAuNzYxNDA1IDkuODkwMTYgMC43MzQ0ODIgOS45NzA5MyAwLjcwNzU1OSAxMC4wNTE3TDAuMDA3NTU4NjIgMTIuOTg2M1pcIlxuICAgICAgICBmaWxsPVwiI0IwQURBQlwiIC8+XG4gICAgPC9zdmc+XG4gICAgPCEtLSBTS1MyM0FQUjI1IFVzZSBjb250cm9sLmludmFsaWQgdG8gc2hvdyBlcnJvciBvbiBzdWJtaXQgY2xpY2sgLS0+XG4gICAgPGRpdiAqbmdJZj1cInR5cGUgIT0gJ2NoZWNrYm94JyAmJiBjb250cm9sLmludmFsaWQgJiYgKGNvbnRyb2wudG91Y2hlZCB8fCBjb250cm9sLmRpcnR5KVwiIHN0eWxlPVwiaGVpZ2h0OiAyMHB4O1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIj5cbiAgICAgICAge3sgZ2V0RXJyb3JNZXNzYWdlKCkgfX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PiJdfQ==