@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.
- package/esm2022/environments/version.mjs +2 -2
- package/esm2022/lib/components/button/nxt-button.component.mjs +42 -39
- package/esm2022/lib/components/custom-dropdown/custom-dropdown.component.mjs +48 -7
- package/esm2022/lib/components/custom-radio/custom-radio.component.mjs +41 -4
- package/esm2022/lib/components/datatable/datatable.component.mjs +6 -3
- package/esm2022/lib/components/file-upload/file-upload.component.mjs +24 -59
- package/esm2022/lib/components/nxt-input/nxt-input.component.mjs +2822 -0
- package/esm2022/lib/components/pick-location/pick-location.component.mjs +19 -5
- package/esm2022/lib/components/search-box/search-box.component.mjs +19 -13
- package/esm2022/lib/nxt-app.module.mjs +13 -292
- package/esm2022/lib/pages/booklet/booklet.component.mjs +20 -7
- package/esm2022/lib/pages/builder/element/element.component.mjs +9 -12
- package/esm2022/lib/pages/builder/form/form.component.mjs +6 -5
- package/esm2022/lib/pages/builder/properties/properties.component.mjs +29 -5
- package/esm2022/lib/pages/pdfDesigner/pdf-designer/pdf-designer.component.mjs +4 -5
- package/esm2022/lib/pages/pdfDesigner/pdf-properties/pdf-properties.component.mjs +2 -2
- package/esm2022/lib/pages/questionbook/questionbook.component.mjs +14 -30
- package/esm2022/lib/pages/questionnaire/questionnaire.component.mjs +21 -40
- package/esm2022/lib/services/form-builder.service.mjs +1 -1
- package/esm2022/public-api.mjs +2 -11
- package/fesm2022/rangertechnologies-ngnxt.mjs +15838 -14645
- package/fesm2022/rangertechnologies-ngnxt.mjs.map +1 -1
- package/lib/components/button/nxt-button.component.d.ts +13 -12
- package/lib/components/custom-dropdown/custom-dropdown.component.d.ts +11 -4
- package/lib/components/custom-radio/custom-radio.component.d.ts +14 -3
- package/lib/components/datatable/datatable.component.d.ts +2 -1
- package/lib/components/file-upload/file-upload.component.d.ts +6 -5
- package/lib/components/nxt-input/nxt-input.component.d.ts +159 -0
- package/lib/components/pick-location/pick-location.component.d.ts +5 -3
- package/lib/components/search-box/search-box.component.d.ts +3 -2
- package/lib/nxt-app.module.d.ts +30 -55
- package/lib/pages/booklet/booklet.component.d.ts +3 -1
- package/lib/pages/builder/element/element.component.d.ts +1 -1
- package/lib/pages/builder/form/form.component.d.ts +1 -1
- package/lib/pages/builder/properties/properties.component.d.ts +93 -1
- package/lib/pages/questionbook/questionbook.component.d.ts +3 -3
- package/lib/pages/questionnaire/questionnaire.component.d.ts +6 -10
- package/lib/services/form-builder.service.d.ts +12 -22
- package/package.json +1 -1
- package/public-api.d.ts +1 -9
- package/rangertechnologies-ngnxt-2.1.176.tgz +0 -0
- package/src/lib/style.css +0 -1
- package/esm2022/lib/components/cards/group-card/group-card.component.mjs +0 -36
- package/esm2022/lib/components/cards/group-info/group-info.component.mjs +0 -102
- package/esm2022/lib/components/cards/image-card/image-card.component.mjs +0 -83
- package/esm2022/lib/components/cards/info-card/info-card.component.mjs +0 -109
- package/esm2022/lib/components/custom-button/custom-button.component.mjs +0 -42
- package/esm2022/lib/components/custom-date/custom-date.component.mjs +0 -48
- package/esm2022/lib/components/custom-date-picker/custom-date-picker.component.mjs +0 -53
- package/esm2022/lib/components/custom-image/custom-image.component.mjs +0 -34
- package/esm2022/lib/components/custom-input/custom-input.component.mjs +0 -101
- package/esm2022/lib/components/custom-label/custom-label.component.mjs +0 -24
- package/esm2022/lib/components/custom-rich-text/custom-rich-text.component.mjs +0 -182
- package/esm2022/lib/components/custom-table/custom-table.component.mjs +0 -252
- package/esm2022/lib/components/custom-text-area/custom-text-area.component.mjs +0 -71
- package/esm2022/lib/components/custom-time/custom-time.component.mjs +0 -66
- package/esm2022/lib/components/dependent-table/dependent-table.component.mjs +0 -45
- package/esm2022/lib/components/dropdown-with-flag/dropdown-with-flag.component.mjs +0 -44
- package/esm2022/lib/components/file-view/file-view.component.mjs +0 -49
- package/esm2022/lib/components/loader/loader.component.mjs +0 -23
- package/esm2022/lib/components/table-appendix/table-appendix.component.mjs +0 -128
- package/esm2022/lib/model/tableWrapper.mjs +0 -20
- package/esm2022/lib/pages/summary-page/summary-page.component.mjs +0 -79
- package/lib/components/cards/group-card/group-card.component.d.ts +0 -13
- package/lib/components/cards/group-info/group-info.component.d.ts +0 -47
- package/lib/components/cards/image-card/image-card.component.d.ts +0 -34
- package/lib/components/cards/info-card/info-card.component.d.ts +0 -39
- package/lib/components/custom-button/custom-button.component.d.ts +0 -16
- package/lib/components/custom-date/custom-date.component.d.ts +0 -16
- package/lib/components/custom-date-picker/custom-date-picker.component.d.ts +0 -20
- package/lib/components/custom-image/custom-image.component.d.ts +0 -13
- package/lib/components/custom-input/custom-input.component.d.ts +0 -28
- package/lib/components/custom-label/custom-label.component.d.ts +0 -10
- package/lib/components/custom-rich-text/custom-rich-text.component.d.ts +0 -29
- package/lib/components/custom-table/custom-table.component.d.ts +0 -53
- package/lib/components/custom-text-area/custom-text-area.component.d.ts +0 -22
- package/lib/components/custom-time/custom-time.component.d.ts +0 -18
- package/lib/components/dependent-table/dependent-table.component.d.ts +0 -15
- package/lib/components/dropdown-with-flag/dropdown-with-flag.component.d.ts +0 -16
- package/lib/components/file-view/file-view.component.d.ts +0 -16
- package/lib/components/loader/loader.component.d.ts +0 -11
- package/lib/components/table-appendix/table-appendix.component.d.ts +0 -30
- package/lib/model/tableWrapper.d.ts +0 -18
- package/lib/pages/summary-page/summary-page.component.d.ts +0 -20
- 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==
|