@rangertechnologies/ngnxt 2.1.253 → 2.1.255-beta
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/fesm2022/rangertechnologies-ngnxt.mjs +258 -433
- package/fesm2022/rangertechnologies-ngnxt.mjs.map +1 -1
- package/lib/components/datatable/datatable.component.d.ts +0 -1
- package/lib/components/pick-location/pick-location.component.d.ts +0 -1
- package/lib/model/bookletWrapper.d.ts +0 -1
- package/lib/pages/booklet/booklet.component.d.ts +0 -2
- package/lib/pages/builder/element/element.component.d.ts +0 -3
- package/lib/pages/builder/properties/properties.component.d.ts +6 -2
- package/lib/pages/pdfDesigner/pdf-designer/pdf-designer.component.d.ts +0 -3
- package/lib/pages/questionbook/questionbook.component.d.ts +0 -1
- package/lib/pages/questionnaire/questionnaire.component.d.ts +0 -1
- package/lib/pipe/custom-translate.pipe.d.ts +1 -1
- package/lib/pipe/svg/svg.pipe.d.ts +10 -0
- package/lib/services/form-builder/form-builder.service.d.ts +1 -0
- package/lib/services/translation/translation.service.d.ts +1 -1
- package/package.json +4 -6
- package/rangertechnologies-ngnxt-2.1.255-beta.tgz +0 -0
- package/esm2022/environments/version.mjs +0 -15
- package/esm2022/lib/components/button/nxt-button.component.mjs +0 -154
- package/esm2022/lib/components/custom-calendar/custom-calendar.component.mjs +0 -360
- package/esm2022/lib/components/custom-dropdown/custom-dropdown.component.mjs +0 -263
- package/esm2022/lib/components/custom-model/custom-model.component.mjs +0 -53
- package/esm2022/lib/components/custom-radio/custom-radio.component.mjs +0 -156
- package/esm2022/lib/components/datatable/datatable.component.mjs +0 -1757
- package/esm2022/lib/components/file-upload/file-upload.component.mjs +0 -292
- package/esm2022/lib/components/icon-selector/icon-selector.component.mjs +0 -105
- package/esm2022/lib/components/image-cropper/component/cropper.state.mjs +0 -208
- package/esm2022/lib/components/image-cropper/component/image-cropper.component.mjs +0 -562
- package/esm2022/lib/components/image-cropper/interfaces/basic-event.interface.mjs +0 -2
- package/esm2022/lib/components/image-cropper/interfaces/cropper-options.interface.mjs +0 -2
- package/esm2022/lib/components/image-cropper/interfaces/cropper-position.interface.mjs +0 -2
- package/esm2022/lib/components/image-cropper/interfaces/dimensions.interface.mjs +0 -2
- package/esm2022/lib/components/image-cropper/interfaces/exif-transform.interface.mjs +0 -2
- package/esm2022/lib/components/image-cropper/interfaces/image-cropped-event.interface.mjs +0 -2
- package/esm2022/lib/components/image-cropper/interfaces/image-transform.interface.mjs +0 -2
- package/esm2022/lib/components/image-cropper/interfaces/index.mjs +0 -2
- package/esm2022/lib/components/image-cropper/interfaces/loaded-image.interface.mjs +0 -2
- package/esm2022/lib/components/image-cropper/interfaces/move-start.interface.mjs +0 -8
- package/esm2022/lib/components/image-cropper/services/crop.service.mjs +0 -139
- package/esm2022/lib/components/image-cropper/services/load-image.service.mjs +0 -194
- package/esm2022/lib/components/image-cropper/utils/cropper-position.utils.mjs +0 -239
- package/esm2022/lib/components/image-cropper/utils/exif.utils.mjs +0 -79
- package/esm2022/lib/components/image-cropper/utils/keyboard.utils.mjs +0 -40
- package/esm2022/lib/components/image-cropper/utils/percentage.utils.mjs +0 -4
- package/esm2022/lib/components/image-cropper/utils/resize.utils.mjs +0 -75
- package/esm2022/lib/components/list-view-filter/list-view-filter.component.mjs +0 -392
- package/esm2022/lib/components/nxt-input/nxt-input.component.mjs +0 -2972
- package/esm2022/lib/components/pagination/pagination.component.mjs +0 -105
- package/esm2022/lib/components/pick-location/pick-location.component.mjs +0 -220
- package/esm2022/lib/components/search-box/search-box.component.mjs +0 -470
- package/esm2022/lib/country.json +0 -43237
- package/esm2022/lib/interfaces/actionMeta.mjs +0 -2
- package/esm2022/lib/interfaces/dependencyMeta.mjs +0 -2
- package/esm2022/lib/model/bookletWrapper.mjs +0 -9
- package/esm2022/lib/model/changeWrapper.mjs +0 -10
- package/esm2022/lib/model/errorWrapper.mjs +0 -6
- package/esm2022/lib/nxt-app.component.mjs +0 -22
- package/esm2022/lib/nxt-app.module.mjs +0 -115
- package/esm2022/lib/nxt-app.service.mjs +0 -14
- package/esm2022/lib/pages/booklet/booklet.component.mjs +0 -658
- package/esm2022/lib/pages/builder/element/element.component.mjs +0 -508
- package/esm2022/lib/pages/builder/form/form.component.mjs +0 -48
- package/esm2022/lib/pages/builder/properties/common-fields.constants.mjs +0 -97
- package/esm2022/lib/pages/builder/properties/properties.component.mjs +0 -1089
- package/esm2022/lib/pages/builder/templates/templates.component.mjs +0 -35
- package/esm2022/lib/pages/pdfDesigner/pdf-designer/pdf-designer.component.mjs +0 -681
- package/esm2022/lib/pages/pdfDesigner/pdf-properties/pdf-properties.component.mjs +0 -1118
- package/esm2022/lib/pages/questionbook/questionbook.component.mjs +0 -801
- package/esm2022/lib/pages/questionnaire/questionnaire.component.mjs +0 -2219
- package/esm2022/lib/pipe/button-styles.pipe.mjs +0 -26
- package/esm2022/lib/pipe/custom-translate.pipe.mjs +0 -36
- package/esm2022/lib/pipe/get-value.pipe.mjs +0 -54
- package/esm2022/lib/pipe/question-by-row.pipe.mjs +0 -51
- package/esm2022/lib/pipe/search-filter/search-filter.pipe.mjs +0 -40
- package/esm2022/lib/sample.mjs +0 -3715
- package/esm2022/lib/services/change/change.service.mjs +0 -46
- package/esm2022/lib/services/country/country.service.mjs +0 -135
- package/esm2022/lib/services/data/data.service.mjs +0 -100
- package/esm2022/lib/services/form-builder/form-builder.service.mjs +0 -500
- package/esm2022/lib/services/pdf-designer/pdf-designer.service.mjs +0 -398
- package/esm2022/lib/services/salesforce/salesforce.service.mjs +0 -41
- package/esm2022/lib/services/shared/shared.service.mjs +0 -100
- package/esm2022/lib/services/storage/storage.service.mjs +0 -59
- package/esm2022/lib/services/template/template.service.mjs +0 -351
- package/esm2022/lib/services/translation/translation.service.mjs +0 -121
- package/esm2022/lib/wrapper.mjs +0 -175
- package/esm2022/public-api.mjs +0 -22
- package/esm2022/rangertechnologies-ngnxt.mjs +0 -5
- package/rangertechnologies-ngnxt-2.1.253.tgz +0 -0
|
@@ -1,2972 +0,0 @@
|
|
|
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/change.service";
|
|
12
|
-
import * as i2 from "../../services/data/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
|
-
const icons = Quill.import('ui/icons');
|
|
30
|
-
icons['save'] = `<svg width="12" height="13" viewBox="0 0 12 13" fill="none"
|
|
31
|
-
xmlns="http://www.w3.org/2000/svg">
|
|
32
|
-
<path
|
|
33
|
-
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"
|
|
34
|
-
fill="#259566" />
|
|
35
|
-
<path
|
|
36
|
-
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"
|
|
37
|
-
fill="white" />
|
|
38
|
-
</svg>`;
|
|
39
|
-
icons['discard'] = `<svg *ngIf="isDiscardHovered" (click)="discardChanges()" width="12" height="13" viewBox="0 0 12 13"
|
|
40
|
-
fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
41
|
-
<path
|
|
42
|
-
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"
|
|
43
|
-
fill="#FF3636" />
|
|
44
|
-
</svg>`;
|
|
45
|
-
function getFormArray(size) {
|
|
46
|
-
const arr = [];
|
|
47
|
-
for (let i = 0; i < size; i++) {
|
|
48
|
-
arr.push(new FormControl(''));
|
|
49
|
-
}
|
|
50
|
-
return new FormArray(arr);
|
|
51
|
-
}
|
|
52
|
-
export class NxtInput {
|
|
53
|
-
renderer;
|
|
54
|
-
elRef;
|
|
55
|
-
elementRef;
|
|
56
|
-
changeService;
|
|
57
|
-
dataService;
|
|
58
|
-
// SKS30JAN25
|
|
59
|
-
label = ''; // Input label
|
|
60
|
-
labelFont = ''; // Input label font
|
|
61
|
-
labelWeight = ''; // Input label Weight
|
|
62
|
-
inputWeight = ''; // Input Weight
|
|
63
|
-
labelSize = ''; // Input label Size
|
|
64
|
-
inputValueSize = ''; //Input value Size
|
|
65
|
-
labelColor = ''; // Input label Color
|
|
66
|
-
showLabel = ''; // Input label Color
|
|
67
|
-
svgHeight = ''; // Input svg height
|
|
68
|
-
svgWidth = ''; // Input svg weight
|
|
69
|
-
type = 'text'; // Input type (text, email, password)
|
|
70
|
-
inputIconRightSrc = ''; // Path to SVG icon
|
|
71
|
-
inputIconLeftSrc = '';
|
|
72
|
-
required = false; // Required validation
|
|
73
|
-
minLength; // Min length validation
|
|
74
|
-
pattern; // Pattern validation (e.g., email regex)
|
|
75
|
-
errorMessages = {}; // Custom error messages
|
|
76
|
-
maxLength = 0; // Maximum length validation
|
|
77
|
-
placeholder = '';
|
|
78
|
-
inputBgColor = ''; // Use this input to set a custom background color for the input.
|
|
79
|
-
inputBorder = ''; // Use this input to set a custom border style for the input.
|
|
80
|
-
placeholderColor = ''; // Use this input to set a custom text color for the input.
|
|
81
|
-
placeholderFont = ''; // Use this input to set a custom placeholder font
|
|
82
|
-
placeholderWeight = ''; // Use this input to set a custom
|
|
83
|
-
placeholderSize = ''; // Use this input to set a custom size
|
|
84
|
-
inputTextColor = ''; // Use this input to set a custom text color for the input value.
|
|
85
|
-
inputHeight = ''; // Use this input to set a custom height for the input.
|
|
86
|
-
inputWidth = ''; // Use this input to set a custom width for the Input.
|
|
87
|
-
inputId = 'default'; // Use this input to set a custom ID for the input. Default is 'default'.
|
|
88
|
-
inputBorderSize = '0px'; // Use this input to set the border size of the input. Default is '0px' for no border.
|
|
89
|
-
inputConfig = ''; // Use this input to pass configuration settings for the input (e.g., styles, actions).
|
|
90
|
-
confPassVal = ''; // Password value to check if the current field matches the confirmed password
|
|
91
|
-
confPass = false; // Set to true to enable password confirmation validation
|
|
92
|
-
mode = 'edit'; // New mode input
|
|
93
|
-
value; // input value
|
|
94
|
-
question = {};
|
|
95
|
-
showSuggestion = false; // showSuggestion the input
|
|
96
|
-
ariaOwns;
|
|
97
|
-
ariaHasPopup;
|
|
98
|
-
isLoading = false; // Set to true to show a loading animation
|
|
99
|
-
options = []; // For radio buttons
|
|
100
|
-
minDate; // For date/datetime picker
|
|
101
|
-
maxDate; // For date/datetime picker
|
|
102
|
-
rows = 3; // For textarea
|
|
103
|
-
from;
|
|
104
|
-
hyperLink;
|
|
105
|
-
rawInputVal;
|
|
106
|
-
set size(size) {
|
|
107
|
-
this.inputs = getFormArray(size);
|
|
108
|
-
this.#size = size;
|
|
109
|
-
}
|
|
110
|
-
valueChange = new EventEmitter(); // Emits input value changes
|
|
111
|
-
inputValue = new EventEmitter();
|
|
112
|
-
onBlur = new EventEmitter();
|
|
113
|
-
onFocus = new EventEmitter();
|
|
114
|
-
toggleEmit = new EventEmitter();
|
|
115
|
-
nativeInputRef = new EventEmitter();
|
|
116
|
-
removeValueEmit = new EventEmitter();
|
|
117
|
-
hyperlinkEmit = new EventEmitter();
|
|
118
|
-
inputEls;
|
|
119
|
-
// Date/Time picker references
|
|
120
|
-
dateTimePicker;
|
|
121
|
-
datePicker;
|
|
122
|
-
timePicker;
|
|
123
|
-
dtPicker;
|
|
124
|
-
dPicker;
|
|
125
|
-
inputRef;
|
|
126
|
-
#size = 4;
|
|
127
|
-
#scheduledFocus = null;
|
|
128
|
-
inputs = getFormArray(this.#size);
|
|
129
|
-
control = new FormControl('');
|
|
130
|
-
isPasswordVisible = false;
|
|
131
|
-
countryCode = '';
|
|
132
|
-
// SKS28FEB25 countries list
|
|
133
|
-
countries = [
|
|
134
|
-
{
|
|
135
|
-
"name": "Afghanistan",
|
|
136
|
-
"flag": "🇦🇫",
|
|
137
|
-
"code": "AF",
|
|
138
|
-
"dial_code": "+93",
|
|
139
|
-
"regex": "^\\+93[0-9]{9}$",
|
|
140
|
-
"placeholder": "+93 70 123 4567"
|
|
141
|
-
},
|
|
142
|
-
{
|
|
143
|
-
"name": "Åland Islands",
|
|
144
|
-
"flag": "🇦🇽",
|
|
145
|
-
"code": "AX",
|
|
146
|
-
"dial_code": "+358",
|
|
147
|
-
"regex": "^\\+358[0-9]{6,12}$",
|
|
148
|
-
"placeholder": "+358 18 123 45"
|
|
149
|
-
},
|
|
150
|
-
{
|
|
151
|
-
"name": "Albania",
|
|
152
|
-
"flag": "🇦🇱",
|
|
153
|
-
"code": "AL",
|
|
154
|
-
"dial_code": "+355",
|
|
155
|
-
"regex": "^\\+355[0-9]{9}$",
|
|
156
|
-
"placeholder": "+355 69 123 4567"
|
|
157
|
-
},
|
|
158
|
-
{
|
|
159
|
-
"name": "Algeria",
|
|
160
|
-
"flag": "🇩🇿",
|
|
161
|
-
"code": "DZ",
|
|
162
|
-
"dial_code": "+213",
|
|
163
|
-
"regex": "^\\+213[0-9]{9}$",
|
|
164
|
-
"placeholder": "+213 551 234 567"
|
|
165
|
-
},
|
|
166
|
-
{
|
|
167
|
-
"name": "American Samoa",
|
|
168
|
-
"flag": "🇦🇸",
|
|
169
|
-
"code": "AS",
|
|
170
|
-
"dial_code": "+1684",
|
|
171
|
-
"regex": "^\\+1684[0-9]{7}$",
|
|
172
|
-
"placeholder": "+1684 123 4567"
|
|
173
|
-
},
|
|
174
|
-
{
|
|
175
|
-
"name": "Andorra",
|
|
176
|
-
"flag": "🇦🇩",
|
|
177
|
-
"code": "AD",
|
|
178
|
-
"dial_code": "+376",
|
|
179
|
-
"regex": "^\\+376[0-9]{6}$",
|
|
180
|
-
"placeholder": "+376 123 456"
|
|
181
|
-
},
|
|
182
|
-
{
|
|
183
|
-
"name": "Angola",
|
|
184
|
-
"flag": "🇦🇴",
|
|
185
|
-
"code": "AO",
|
|
186
|
-
"dial_code": "+244",
|
|
187
|
-
"regex": "^\\+244[0-9]{9}$",
|
|
188
|
-
"placeholder": "+244 923 123 456"
|
|
189
|
-
},
|
|
190
|
-
{
|
|
191
|
-
"name": "Anguilla",
|
|
192
|
-
"flag": "🇦🇮",
|
|
193
|
-
"code": "AI",
|
|
194
|
-
"dial_code": "+1264",
|
|
195
|
-
"regex": "^\\+1264[0-9]{7}$",
|
|
196
|
-
"placeholder": "+1264 235 1234"
|
|
197
|
-
},
|
|
198
|
-
{
|
|
199
|
-
"name": "Antarctica",
|
|
200
|
-
"flag": "🇦🇶",
|
|
201
|
-
"code": "AQ",
|
|
202
|
-
"dial_code": "+672",
|
|
203
|
-
"regex": "^\\+672[0-9]{6,12}$",
|
|
204
|
-
"placeholder": "+672 123 456"
|
|
205
|
-
},
|
|
206
|
-
{
|
|
207
|
-
"name": "Antigua and Barbuda",
|
|
208
|
-
"flag": "🇦🇬",
|
|
209
|
-
"code": "AG",
|
|
210
|
-
"dial_code": "+1268",
|
|
211
|
-
"regex": "^\\+1268[0-9]{7}$",
|
|
212
|
-
"placeholder": "+1268 234 5678"
|
|
213
|
-
},
|
|
214
|
-
{
|
|
215
|
-
"name": "Argentina",
|
|
216
|
-
"flag": "🇦🇷",
|
|
217
|
-
"code": "AR",
|
|
218
|
-
"dial_code": "+54",
|
|
219
|
-
"regex": "^\\+54[0-9]{10,11}$",
|
|
220
|
-
"placeholder": "+54 9 11 1234 5678"
|
|
221
|
-
},
|
|
222
|
-
{
|
|
223
|
-
"name": "Armenia",
|
|
224
|
-
"flag": "🇦🇲",
|
|
225
|
-
"code": "AM",
|
|
226
|
-
"dial_code": "+374",
|
|
227
|
-
"regex": "^\\+374[0-9]{8}$",
|
|
228
|
-
"placeholder": "+374 94 123 456"
|
|
229
|
-
},
|
|
230
|
-
{
|
|
231
|
-
"name": "Aruba",
|
|
232
|
-
"flag": "🇦🇼",
|
|
233
|
-
"code": "AW",
|
|
234
|
-
"dial_code": "+297",
|
|
235
|
-
"regex": "^\\+297[0-9]{7}$",
|
|
236
|
-
"placeholder": "+297 560 1234"
|
|
237
|
-
},
|
|
238
|
-
{
|
|
239
|
-
"name": "Australia",
|
|
240
|
-
"flag": "🇦🇺",
|
|
241
|
-
"code": "AU",
|
|
242
|
-
"dial_code": "+61",
|
|
243
|
-
"regex": "^\\+61[0-9]{9}$",
|
|
244
|
-
"placeholder": "+61 4 1234 5678"
|
|
245
|
-
},
|
|
246
|
-
{
|
|
247
|
-
"name": "Austria",
|
|
248
|
-
"flag": "🇦🇹",
|
|
249
|
-
"code": "AT",
|
|
250
|
-
"dial_code": "+43",
|
|
251
|
-
"regex": "^\\+43[0-9]{10,12}$",
|
|
252
|
-
"placeholder": "+43 664 123 4567"
|
|
253
|
-
},
|
|
254
|
-
{
|
|
255
|
-
"name": "Azerbaijan",
|
|
256
|
-
"flag": "🇦🇿",
|
|
257
|
-
"code": "AZ",
|
|
258
|
-
"dial_code": "+994",
|
|
259
|
-
"regex": "^\\+994[0-9]{9}$",
|
|
260
|
-
"placeholder": "+994 50 123 45 67"
|
|
261
|
-
},
|
|
262
|
-
{
|
|
263
|
-
"name": "Bahamas",
|
|
264
|
-
"flag": "🇧🇸",
|
|
265
|
-
"code": "BS",
|
|
266
|
-
"dial_code": "+1242",
|
|
267
|
-
"regex": "^\\+1242[0-9]{7}$",
|
|
268
|
-
"placeholder": "+1242 323 1234"
|
|
269
|
-
},
|
|
270
|
-
{
|
|
271
|
-
"name": "Bahrain",
|
|
272
|
-
"flag": "🇧🇭",
|
|
273
|
-
"code": "BH",
|
|
274
|
-
"dial_code": "+973",
|
|
275
|
-
"regex": "^\\+973[0-9]{8}$",
|
|
276
|
-
"placeholder": "+973 3123 4567"
|
|
277
|
-
},
|
|
278
|
-
{
|
|
279
|
-
"name": "Bangladesh",
|
|
280
|
-
"flag": "🇧🇩",
|
|
281
|
-
"code": "BD",
|
|
282
|
-
"dial_code": "+880",
|
|
283
|
-
"regex": "^\\+880[0-9]{10}$",
|
|
284
|
-
"placeholder": "+880 1712 345678"
|
|
285
|
-
},
|
|
286
|
-
{
|
|
287
|
-
"name": "Barbados",
|
|
288
|
-
"flag": "🇧🇧",
|
|
289
|
-
"code": "BB",
|
|
290
|
-
"dial_code": "+1246",
|
|
291
|
-
"regex": "^\\+1246[0-9]{7}$",
|
|
292
|
-
"placeholder": "+1246 250 1234"
|
|
293
|
-
},
|
|
294
|
-
{
|
|
295
|
-
"name": "Belarus",
|
|
296
|
-
"flag": "🇧🇾",
|
|
297
|
-
"code": "BY",
|
|
298
|
-
"dial_code": "+375",
|
|
299
|
-
"regex": "^\\+375[0-9]{9}$",
|
|
300
|
-
"placeholder": "+375 29 123 45 67"
|
|
301
|
-
},
|
|
302
|
-
{
|
|
303
|
-
"name": "Belgium",
|
|
304
|
-
"flag": "🇧🇪",
|
|
305
|
-
"code": "BE",
|
|
306
|
-
"dial_code": "+32",
|
|
307
|
-
"regex": "^\\+32[0-9]{9}$",
|
|
308
|
-
"placeholder": "+32 470 12 34 56"
|
|
309
|
-
},
|
|
310
|
-
{
|
|
311
|
-
"name": "Belize",
|
|
312
|
-
"flag": "🇧🇿",
|
|
313
|
-
"code": "BZ",
|
|
314
|
-
"dial_code": "+501",
|
|
315
|
-
"regex": "^\\+501[0-9]{7}$",
|
|
316
|
-
"placeholder": "+501 610 1234"
|
|
317
|
-
},
|
|
318
|
-
{
|
|
319
|
-
"name": "Benin",
|
|
320
|
-
"flag": "🇧🇯",
|
|
321
|
-
"code": "BJ",
|
|
322
|
-
"dial_code": "+229",
|
|
323
|
-
"regex": "^\\+229[0-9]{8}$",
|
|
324
|
-
"placeholder": "+229 90 12 3456"
|
|
325
|
-
},
|
|
326
|
-
{
|
|
327
|
-
"name": "Bermuda",
|
|
328
|
-
"flag": "🇧🇲",
|
|
329
|
-
"code": "BM",
|
|
330
|
-
"dial_code": "+1441",
|
|
331
|
-
"regex": "^\\+1441[0-9]{7}$",
|
|
332
|
-
"placeholder": "+1441 370 1234"
|
|
333
|
-
},
|
|
334
|
-
{
|
|
335
|
-
"name": "Bhutan",
|
|
336
|
-
"flag": "🇧🇹",
|
|
337
|
-
"code": "BT",
|
|
338
|
-
"dial_code": "+975",
|
|
339
|
-
"regex": "^\\+975[0-9]{7,8}$",
|
|
340
|
-
"placeholder": "+975 17 123 456"
|
|
341
|
-
},
|
|
342
|
-
{
|
|
343
|
-
"name": "Bolivia, Plurinational State of bolivia",
|
|
344
|
-
"flag": "🇧🇴",
|
|
345
|
-
"code": "BO",
|
|
346
|
-
"dial_code": "+591",
|
|
347
|
-
"regex": "^\\+591[1-9]\\d{7}$",
|
|
348
|
-
"placeholder": "+591 12345678",
|
|
349
|
-
"example": "+591 70123456"
|
|
350
|
-
},
|
|
351
|
-
{
|
|
352
|
-
"name": "Bosnia and Herzegovina",
|
|
353
|
-
"flag": "🇧🇦",
|
|
354
|
-
"code": "BA",
|
|
355
|
-
"dial_code": "+387",
|
|
356
|
-
"regex": "^\\+387[0-9]{8,9}$",
|
|
357
|
-
"placeholder": "+387 61 123 456"
|
|
358
|
-
},
|
|
359
|
-
{
|
|
360
|
-
"name": "Botswana",
|
|
361
|
-
"flag": "🇧🇼",
|
|
362
|
-
"code": "BW",
|
|
363
|
-
"dial_code": "+267",
|
|
364
|
-
"regex": "^\\+267[0-9]{8}$",
|
|
365
|
-
"placeholder": "+267 71 123 456"
|
|
366
|
-
},
|
|
367
|
-
{
|
|
368
|
-
"name": "Bouvet Island",
|
|
369
|
-
"code": "BV",
|
|
370
|
-
"dial_code": "+47",
|
|
371
|
-
"regex": "^\\+47\\d{8}$",
|
|
372
|
-
"placeholder": "+47 XXXXXXXX",
|
|
373
|
-
"format": "+47 XX XX XX XX",
|
|
374
|
-
"flag": "🇧🇻"
|
|
375
|
-
},
|
|
376
|
-
{
|
|
377
|
-
"name": "Brazil",
|
|
378
|
-
"flag": "🇧🇷",
|
|
379
|
-
"code": "BR",
|
|
380
|
-
"dial_code": "+55",
|
|
381
|
-
"regex": "^\\+55[0-9]{10,11}$",
|
|
382
|
-
"placeholder": "+55 11 91234 5678"
|
|
383
|
-
},
|
|
384
|
-
{
|
|
385
|
-
"name": "British Indian Ocean Territory",
|
|
386
|
-
"flag": "🇮🇴",
|
|
387
|
-
"code": "IO",
|
|
388
|
-
"dial_code": "+246",
|
|
389
|
-
"regex": "^\\+246[0-9]{7}$",
|
|
390
|
-
"placeholder": "+246 380 1234"
|
|
391
|
-
},
|
|
392
|
-
{
|
|
393
|
-
"name": "Brunei Darussalam",
|
|
394
|
-
"flag": "🇧🇳",
|
|
395
|
-
"code": "BN",
|
|
396
|
-
"dial_code": "+673",
|
|
397
|
-
"regex": "^\\+673[0-9]{7}$",
|
|
398
|
-
"placeholder": "+673 712 3456"
|
|
399
|
-
},
|
|
400
|
-
{
|
|
401
|
-
"name": "Bulgaria",
|
|
402
|
-
"flag": "🇧🇬",
|
|
403
|
-
"code": "BG",
|
|
404
|
-
"dial_code": "+359",
|
|
405
|
-
"regex": "^\\+359[0-9]{9}$",
|
|
406
|
-
"placeholder": "+359 87 123 4567"
|
|
407
|
-
},
|
|
408
|
-
{
|
|
409
|
-
"name": "Burkina Faso",
|
|
410
|
-
"flag": "🇧🇫",
|
|
411
|
-
"code": "BF",
|
|
412
|
-
"dial_code": "+226",
|
|
413
|
-
"regex": "^\\+226[0-9]{8}$",
|
|
414
|
-
"placeholder": "+226 70 12 3456"
|
|
415
|
-
},
|
|
416
|
-
{
|
|
417
|
-
"name": "Burundi",
|
|
418
|
-
"flag": "🇧🇮",
|
|
419
|
-
"code": "BI",
|
|
420
|
-
"dial_code": "+257",
|
|
421
|
-
"regex": "^\\+257[0-9]{8}$",
|
|
422
|
-
"placeholder": "+257 79 12 3456"
|
|
423
|
-
},
|
|
424
|
-
{
|
|
425
|
-
"name": "Cambodia",
|
|
426
|
-
"flag": "🇰🇭",
|
|
427
|
-
"code": "KH",
|
|
428
|
-
"dial_code": "+855",
|
|
429
|
-
"regex": "^\\+855[0-9]{8,9}$",
|
|
430
|
-
"placeholder": "+855 91 234 567"
|
|
431
|
-
},
|
|
432
|
-
{
|
|
433
|
-
"name": "Cameroon",
|
|
434
|
-
"flag": "🇨🇲",
|
|
435
|
-
"code": "CM",
|
|
436
|
-
"dial_code": "+237",
|
|
437
|
-
"regex": "^\\+237[0-9]{8}$",
|
|
438
|
-
"placeholder": "+237 6 71 23 45 67"
|
|
439
|
-
},
|
|
440
|
-
{
|
|
441
|
-
"name": "Canada",
|
|
442
|
-
"flag": "🇨🇦",
|
|
443
|
-
"code": "CA",
|
|
444
|
-
"dial_code": "+1",
|
|
445
|
-
"regex": "^\\+1[0-9]{10}$",
|
|
446
|
-
"placeholder": "+1 204 123 4567"
|
|
447
|
-
},
|
|
448
|
-
{
|
|
449
|
-
"name": "Cape Verde",
|
|
450
|
-
"flag": "🇨🇻",
|
|
451
|
-
"code": "CV",
|
|
452
|
-
"dial_code": "+238",
|
|
453
|
-
"regex": "^\\+238[0-9]{7}$",
|
|
454
|
-
"placeholder": "+238 991 2345"
|
|
455
|
-
},
|
|
456
|
-
{
|
|
457
|
-
"name": "Cayman Islands",
|
|
458
|
-
"flag": "🇰🇾",
|
|
459
|
-
"code": "KY",
|
|
460
|
-
"dial_code": "+345",
|
|
461
|
-
"regex": "^\\+345[0-9]{7}$",
|
|
462
|
-
"placeholder": "+345 321 1234"
|
|
463
|
-
},
|
|
464
|
-
{
|
|
465
|
-
"name": "Central African Republic",
|
|
466
|
-
"flag": "🇨🇫",
|
|
467
|
-
"code": "CF",
|
|
468
|
-
"dial_code": "+236",
|
|
469
|
-
"regex": "^\\+236[0-9]{8}$",
|
|
470
|
-
"placeholder": "+236 72 12 3456"
|
|
471
|
-
},
|
|
472
|
-
{
|
|
473
|
-
"name": "Chad",
|
|
474
|
-
"flag": "🇹🇩",
|
|
475
|
-
"code": "TD",
|
|
476
|
-
"dial_code": "+235",
|
|
477
|
-
"regex": "^\\+235[0-9]{8}$",
|
|
478
|
-
"placeholder": "+235 63 12 3456"
|
|
479
|
-
},
|
|
480
|
-
{
|
|
481
|
-
"name": "Chile",
|
|
482
|
-
"flag": "🇨🇱",
|
|
483
|
-
"code": "CL",
|
|
484
|
-
"dial_code": "+56",
|
|
485
|
-
"regex": "^\\+56[0-9]{9}$",
|
|
486
|
-
"placeholder": "+56 9 1234 5678"
|
|
487
|
-
},
|
|
488
|
-
{
|
|
489
|
-
"name": "China",
|
|
490
|
-
"flag": "🇨🇳",
|
|
491
|
-
"code": "CN",
|
|
492
|
-
"dial_code": "+86",
|
|
493
|
-
"regex": "^\\+86[0-9]{11}$",
|
|
494
|
-
"placeholder": "+86 131 2345 6789"
|
|
495
|
-
},
|
|
496
|
-
{
|
|
497
|
-
"name": "Christmas Island",
|
|
498
|
-
"flag": "🇨🇽",
|
|
499
|
-
"code": "CX",
|
|
500
|
-
"dial_code": "+61",
|
|
501
|
-
"regex": "^\\+61[0-9]{9}$",
|
|
502
|
-
"placeholder": "+61 4 1234 5678"
|
|
503
|
-
},
|
|
504
|
-
{
|
|
505
|
-
"name": "Cocos (Keeling) Islands",
|
|
506
|
-
"flag": "🇨🇨",
|
|
507
|
-
"code": "CC",
|
|
508
|
-
"dial_code": "+61",
|
|
509
|
-
"regex": "^\\+61[0-9]{9}$",
|
|
510
|
-
"placeholder": "+61 4 1234 5678"
|
|
511
|
-
},
|
|
512
|
-
{
|
|
513
|
-
"name": "Colombia",
|
|
514
|
-
"flag": "🇨🇴",
|
|
515
|
-
"code": "CO",
|
|
516
|
-
"dial_code": "+57",
|
|
517
|
-
"regex": "^\\+57[0-9]{10}$",
|
|
518
|
-
"placeholder": "+57 312 345 6789"
|
|
519
|
-
},
|
|
520
|
-
{
|
|
521
|
-
"name": "Comoros",
|
|
522
|
-
"flag": "🇰🇲",
|
|
523
|
-
"code": "KM",
|
|
524
|
-
"dial_code": "+269",
|
|
525
|
-
"regex": "^\\+269[0-9]{7}$",
|
|
526
|
-
"placeholder": "+269 321 2345"
|
|
527
|
-
},
|
|
528
|
-
{
|
|
529
|
-
"name": "Congo",
|
|
530
|
-
"flag": "🇨🇬",
|
|
531
|
-
"code": "CG",
|
|
532
|
-
"dial_code": "+242",
|
|
533
|
-
"regex": "^\\+242[0-9]{9}$",
|
|
534
|
-
"placeholder": "+242 06 123 4567"
|
|
535
|
-
},
|
|
536
|
-
{
|
|
537
|
-
"name": "Congo, The Democratic Republic of the Congo",
|
|
538
|
-
"flag": "🇨🇩",
|
|
539
|
-
"code": "CD",
|
|
540
|
-
"dial_code": "+243",
|
|
541
|
-
"regex": "^\\+243[89]\\d{8}$",
|
|
542
|
-
"placeholder": "+243 9XXXXXXXX",
|
|
543
|
-
"example": "+243 991234567"
|
|
544
|
-
},
|
|
545
|
-
{
|
|
546
|
-
"name": "Cook Islands",
|
|
547
|
-
"flag": "🇨🇰",
|
|
548
|
-
"code": "CK",
|
|
549
|
-
"dial_code": "+682",
|
|
550
|
-
"regex": "^\\+682[0-9]{5}$",
|
|
551
|
-
"placeholder": "+682 71 234"
|
|
552
|
-
},
|
|
553
|
-
{
|
|
554
|
-
"name": "Costa Rica",
|
|
555
|
-
"flag": "🇨🇷",
|
|
556
|
-
"code": "CR",
|
|
557
|
-
"dial_code": "+506",
|
|
558
|
-
"regex": "^\\+506[0-9]{8}$",
|
|
559
|
-
"placeholder": "+506 8123 4567"
|
|
560
|
-
},
|
|
561
|
-
{
|
|
562
|
-
"name": "Cote d'Ivoire",
|
|
563
|
-
"flag": "🇨🇮",
|
|
564
|
-
"code": "CI",
|
|
565
|
-
"dial_code": "+225",
|
|
566
|
-
"regex": "^\\+225[0-9]{8}$",
|
|
567
|
-
"placeholder": "+225 01 23 45 67"
|
|
568
|
-
},
|
|
569
|
-
{
|
|
570
|
-
"name": "Croatia",
|
|
571
|
-
"flag": "🇭🇷",
|
|
572
|
-
"code": "HR",
|
|
573
|
-
"dial_code": "+385",
|
|
574
|
-
"regex": "^\\+385[0-9]{8,9}$",
|
|
575
|
-
"placeholder": "+385 98 123 456"
|
|
576
|
-
},
|
|
577
|
-
{
|
|
578
|
-
"name": "Cuba",
|
|
579
|
-
"flag": "🇨🇺",
|
|
580
|
-
"code": "CU",
|
|
581
|
-
"dial_code": "+53",
|
|
582
|
-
"regex": "^\\+53[0-9]{8}$",
|
|
583
|
-
"placeholder": "+53 5 1234 5678"
|
|
584
|
-
},
|
|
585
|
-
{
|
|
586
|
-
"name": "Cyprus",
|
|
587
|
-
"flag": "🇨🇾",
|
|
588
|
-
"code": "CY",
|
|
589
|
-
"dial_code": "+357",
|
|
590
|
-
"regex": "^\\+357[0-9]{8}$",
|
|
591
|
-
"placeholder": "+357 96 123 456"
|
|
592
|
-
},
|
|
593
|
-
{
|
|
594
|
-
"name": "Czech Republic",
|
|
595
|
-
"flag": "🇨🇿",
|
|
596
|
-
"code": "CZ",
|
|
597
|
-
"dial_code": "+420",
|
|
598
|
-
"regex": "^\\+420[0-9]{9}$",
|
|
599
|
-
"placeholder": "+420 601 123 456"
|
|
600
|
-
},
|
|
601
|
-
{
|
|
602
|
-
"name": "Denmark",
|
|
603
|
-
"flag": "🇩🇰",
|
|
604
|
-
"code": "DK",
|
|
605
|
-
"dial_code": "+45",
|
|
606
|
-
"regex": "^\\+45[0-9]{8}$",
|
|
607
|
-
"placeholder": "+45 20 12 34 56"
|
|
608
|
-
},
|
|
609
|
-
{
|
|
610
|
-
"name": "Djibouti",
|
|
611
|
-
"flag": "🇩🇯",
|
|
612
|
-
"code": "DJ",
|
|
613
|
-
"dial_code": "+253",
|
|
614
|
-
"regex": "^\\+253[0-9]{8}$",
|
|
615
|
-
"placeholder": "+253 77 12 34 56"
|
|
616
|
-
},
|
|
617
|
-
{
|
|
618
|
-
"name": "Dominica",
|
|
619
|
-
"flag": "🇩🇲",
|
|
620
|
-
"code": "DM",
|
|
621
|
-
"dial_code": "+1767",
|
|
622
|
-
"regex": "^\\+1767[0-9]{7}$",
|
|
623
|
-
"placeholder": "+1767 235 1234"
|
|
624
|
-
},
|
|
625
|
-
{
|
|
626
|
-
"name": "Dominican Republic",
|
|
627
|
-
"flag": "🇩🇴",
|
|
628
|
-
"code": "DO",
|
|
629
|
-
"dial_code": "+1849",
|
|
630
|
-
"regex": "^\\+1849[0-9]{7}$",
|
|
631
|
-
"placeholder": "+1849 234 5678"
|
|
632
|
-
},
|
|
633
|
-
{
|
|
634
|
-
"name": "Ecuador",
|
|
635
|
-
"flag": "🇪🇨",
|
|
636
|
-
"code": "EC",
|
|
637
|
-
"dial_code": "+593",
|
|
638
|
-
"regex": "^\\+593[0-9]{9}$",
|
|
639
|
-
"placeholder": "+593 99 123 4567"
|
|
640
|
-
},
|
|
641
|
-
{
|
|
642
|
-
"name": "Egypt",
|
|
643
|
-
"flag": "🇪🇬",
|
|
644
|
-
"code": "EG",
|
|
645
|
-
"dial_code": "+20",
|
|
646
|
-
"regex": "^\\+20[0-9]{10}$",
|
|
647
|
-
"placeholder": "+20 100 123 4567"
|
|
648
|
-
},
|
|
649
|
-
{
|
|
650
|
-
"name": "El Salvador",
|
|
651
|
-
"flag": "🇸🇻",
|
|
652
|
-
"code": "SV",
|
|
653
|
-
"dial_code": "+503",
|
|
654
|
-
"regex": "^\\+503[0-9]{8}$",
|
|
655
|
-
"placeholder": "+503 7123 4567"
|
|
656
|
-
},
|
|
657
|
-
{
|
|
658
|
-
"name": "Equatorial Guinea",
|
|
659
|
-
"flag": "🇬🇶",
|
|
660
|
-
"code": "GQ",
|
|
661
|
-
"dial_code": "+240",
|
|
662
|
-
"regex": "^\\+240[0-9]{9}$",
|
|
663
|
-
"placeholder": "+240 222 123 456"
|
|
664
|
-
},
|
|
665
|
-
{
|
|
666
|
-
"name": "Eritrea",
|
|
667
|
-
"flag": "🇪🇷",
|
|
668
|
-
"code": "ER",
|
|
669
|
-
"dial_code": "+291",
|
|
670
|
-
"regex": "^\\+291[0-9]{7}$",
|
|
671
|
-
"placeholder": "+291 7 123 456"
|
|
672
|
-
},
|
|
673
|
-
{
|
|
674
|
-
"name": "Estonia",
|
|
675
|
-
"flag": "🇪🇪",
|
|
676
|
-
"code": "EE",
|
|
677
|
-
"dial_code": "+372",
|
|
678
|
-
"regex": "^\\+372[0-9]{7,8}$",
|
|
679
|
-
"placeholder": "+372 5123 456"
|
|
680
|
-
},
|
|
681
|
-
{
|
|
682
|
-
"name": "Ethiopia",
|
|
683
|
-
"flag": "🇪🇹",
|
|
684
|
-
"code": "ET",
|
|
685
|
-
"dial_code": "+251",
|
|
686
|
-
"regex": "^\\+251[0-9]{9}$",
|
|
687
|
-
"placeholder": "+251 91 123 4567"
|
|
688
|
-
},
|
|
689
|
-
{
|
|
690
|
-
"name": "Falkland Islands (Malvinas)",
|
|
691
|
-
"flag": "🇫🇰",
|
|
692
|
-
"code": "FK",
|
|
693
|
-
"dial_code": "+500",
|
|
694
|
-
"regex": "^\\+500\\d{5}$",
|
|
695
|
-
"placeholder": "+500 XXXXX",
|
|
696
|
-
"example": "+500 12345"
|
|
697
|
-
},
|
|
698
|
-
{
|
|
699
|
-
"name": "Faroe Islands",
|
|
700
|
-
"flag": "🇫🇴",
|
|
701
|
-
"code": "FO",
|
|
702
|
-
"dial_code": "+298",
|
|
703
|
-
"regex": "^\\+298[0-9]{6}$",
|
|
704
|
-
"placeholder": "+298 123 456"
|
|
705
|
-
},
|
|
706
|
-
{
|
|
707
|
-
"name": "Fiji",
|
|
708
|
-
"flag": "🇫🇯",
|
|
709
|
-
"code": "FJ",
|
|
710
|
-
"dial_code": "+679",
|
|
711
|
-
"regex": "^\\+679[0-9]{7,8}$",
|
|
712
|
-
"placeholder": "+679 701 2345"
|
|
713
|
-
},
|
|
714
|
-
{
|
|
715
|
-
"name": "Finland",
|
|
716
|
-
"flag": "🇫🇮",
|
|
717
|
-
"code": "FI",
|
|
718
|
-
"dial_code": "+358",
|
|
719
|
-
"regex": "^\\+358[0-9]{6,12}$",
|
|
720
|
-
"placeholder": "+358 40 123 4567"
|
|
721
|
-
},
|
|
722
|
-
{
|
|
723
|
-
"name": "France",
|
|
724
|
-
"flag": "🇫🇷",
|
|
725
|
-
"code": "FR",
|
|
726
|
-
"dial_code": "+33",
|
|
727
|
-
"regex": "^\\+33[0-9]{9}$",
|
|
728
|
-
"placeholder": "+33 6 12 34 56 78"
|
|
729
|
-
},
|
|
730
|
-
{
|
|
731
|
-
"name": "French Guiana",
|
|
732
|
-
"flag": "🇬🇫",
|
|
733
|
-
"code": "GF",
|
|
734
|
-
"dial_code": "+594",
|
|
735
|
-
"regex": "^\\+594[0-9]{9}$",
|
|
736
|
-
"placeholder": "+594 694 12 34 56"
|
|
737
|
-
},
|
|
738
|
-
{
|
|
739
|
-
"name": "French Polynesia",
|
|
740
|
-
"flag": "🇵🇫",
|
|
741
|
-
"code": "PF",
|
|
742
|
-
"dial_code": "+689",
|
|
743
|
-
"regex": "^\\+689[0-9]{8}$",
|
|
744
|
-
"placeholder": "+689 87 12 34 56"
|
|
745
|
-
},
|
|
746
|
-
{
|
|
747
|
-
"name": "French Southern Territories",
|
|
748
|
-
"flag": "🇹🇫",
|
|
749
|
-
"code": "TF",
|
|
750
|
-
"dial_code": "+262",
|
|
751
|
-
"regex": "^\\+262[0-9]{9}$",
|
|
752
|
-
"placeholder": "+262 639 12 34 56"
|
|
753
|
-
},
|
|
754
|
-
{
|
|
755
|
-
"name": "Gabon",
|
|
756
|
-
"flag": "🇬🇦",
|
|
757
|
-
"code": "GA",
|
|
758
|
-
"dial_code": "+241",
|
|
759
|
-
"regex": "^\\+241[0-9]{8}$",
|
|
760
|
-
"placeholder": "+241 06 12 34 56"
|
|
761
|
-
},
|
|
762
|
-
{
|
|
763
|
-
"name": "Gambia",
|
|
764
|
-
"flag": "🇬🇲",
|
|
765
|
-
"code": "GM",
|
|
766
|
-
"dial_code": "+220",
|
|
767
|
-
"regex": "^\\+220[0-9]{7}$",
|
|
768
|
-
"placeholder": "+220 301 2345"
|
|
769
|
-
},
|
|
770
|
-
{
|
|
771
|
-
"name": "Georgia",
|
|
772
|
-
"flag": "🇬🇪",
|
|
773
|
-
"code": "GE",
|
|
774
|
-
"dial_code": "+995",
|
|
775
|
-
"regex": "^\\+995[0-9]{9}$",
|
|
776
|
-
"placeholder": "+995 555 12 34 56"
|
|
777
|
-
},
|
|
778
|
-
{
|
|
779
|
-
"name": "Germany",
|
|
780
|
-
"flag": "🇩🇪",
|
|
781
|
-
"code": "DE",
|
|
782
|
-
"dial_code": "+49",
|
|
783
|
-
"regex": "^\\+49[0-9]{10,11}$",
|
|
784
|
-
"placeholder": "+49 151 1234 5678"
|
|
785
|
-
},
|
|
786
|
-
{
|
|
787
|
-
"name": "Ghana",
|
|
788
|
-
"flag": "🇬🇭",
|
|
789
|
-
"code": "GH",
|
|
790
|
-
"dial_code": "+233",
|
|
791
|
-
"regex": "^\\+233[0-9]{9}$",
|
|
792
|
-
"placeholder": "+233 24 123 4567"
|
|
793
|
-
},
|
|
794
|
-
{
|
|
795
|
-
"name": "Gibraltar",
|
|
796
|
-
"flag": "🇬🇮",
|
|
797
|
-
"code": "GI",
|
|
798
|
-
"dial_code": "+350",
|
|
799
|
-
"regex": "^\\+350[0-9]{8}$",
|
|
800
|
-
"placeholder": "+350 57123456"
|
|
801
|
-
},
|
|
802
|
-
{
|
|
803
|
-
"name": "Greece",
|
|
804
|
-
"flag": "🇬🇷",
|
|
805
|
-
"code": "GR",
|
|
806
|
-
"dial_code": "+30",
|
|
807
|
-
"regex": "^\\+30[0-9]{10}$",
|
|
808
|
-
"placeholder": "+30 691 234 5678"
|
|
809
|
-
},
|
|
810
|
-
{
|
|
811
|
-
"name": "Greenland",
|
|
812
|
-
"flag": "🇬🇱",
|
|
813
|
-
"code": "GL",
|
|
814
|
-
"dial_code": "+299",
|
|
815
|
-
"regex": "^\\+299[0-9]{6}$",
|
|
816
|
-
"placeholder": "+299 22 12 34"
|
|
817
|
-
},
|
|
818
|
-
{
|
|
819
|
-
"name": "Grenada",
|
|
820
|
-
"flag": "🇬🇩",
|
|
821
|
-
"code": "GD",
|
|
822
|
-
"dial_code": "+1473",
|
|
823
|
-
"regex": "^\\+1473[0-9]{7}$",
|
|
824
|
-
"placeholder": "+1473 403 1234"
|
|
825
|
-
},
|
|
826
|
-
{
|
|
827
|
-
"name": "Guadeloupe",
|
|
828
|
-
"code": "GP",
|
|
829
|
-
"dial_code": "+590",
|
|
830
|
-
"regex": "^\\+590[67]\\d{8}$",
|
|
831
|
-
"placeholder": "+590 6XXXXXXXX",
|
|
832
|
-
"format": "+590 XXX XX XX XX",
|
|
833
|
-
"flag": "🇬🇵"
|
|
834
|
-
},
|
|
835
|
-
{
|
|
836
|
-
"name": "Guam",
|
|
837
|
-
"code": "GU",
|
|
838
|
-
"dial_code": "+1671",
|
|
839
|
-
"regex": "^\\+1671\\d{7}$",
|
|
840
|
-
"placeholder": "+1671 XXXXXXX",
|
|
841
|
-
"format": "+1671 XXX XXXX",
|
|
842
|
-
"flag": "🇬🇺"
|
|
843
|
-
},
|
|
844
|
-
{
|
|
845
|
-
"name": "Guatemala",
|
|
846
|
-
"code": "GT",
|
|
847
|
-
"dial_code": "+502",
|
|
848
|
-
"regex": "^\\+502[2-9]\\d{7}$",
|
|
849
|
-
"placeholder": "+502 8XXXXXXX",
|
|
850
|
-
"format": "+502 XXXX XXXX",
|
|
851
|
-
"flag": "🇬🇹"
|
|
852
|
-
},
|
|
853
|
-
{
|
|
854
|
-
"name": "Guernsey",
|
|
855
|
-
"code": "GG",
|
|
856
|
-
"dial_code": "+44",
|
|
857
|
-
"regex": "^\\+44[1487]\\d{9}$",
|
|
858
|
-
"placeholder": "+44 1481 XXXXXX",
|
|
859
|
-
"format": "+44 1481 XXXXXX",
|
|
860
|
-
"flag": "🇬🇬"
|
|
861
|
-
},
|
|
862
|
-
{
|
|
863
|
-
"name": "Guinea",
|
|
864
|
-
"code": "GN",
|
|
865
|
-
"dial_code": "+224",
|
|
866
|
-
"regex": "^\\+224\\d{9}$",
|
|
867
|
-
"placeholder": "+224 XXXXXXXXX",
|
|
868
|
-
"format": "+224 XXX XXX XXX",
|
|
869
|
-
"flag": "🇬🇳"
|
|
870
|
-
},
|
|
871
|
-
{
|
|
872
|
-
"name": "Guinea-Bissau",
|
|
873
|
-
"code": "GW",
|
|
874
|
-
"dial_code": "+245",
|
|
875
|
-
"regex": "^\\+245\\d{7}$",
|
|
876
|
-
"placeholder": "+245 XXXXXXX",
|
|
877
|
-
"format": "+245 XXX XXXX",
|
|
878
|
-
"flag": "🇬🇼"
|
|
879
|
-
},
|
|
880
|
-
{
|
|
881
|
-
"name": "Guyana",
|
|
882
|
-
"code": "GY",
|
|
883
|
-
"dial_code": "+592",
|
|
884
|
-
"regex": "^\\+592[2-9]\\d{6}$",
|
|
885
|
-
"placeholder": "+592 6XXXXXX",
|
|
886
|
-
"format": "+592 XXX XXXX",
|
|
887
|
-
"flag": "🇬🇾"
|
|
888
|
-
},
|
|
889
|
-
{
|
|
890
|
-
"name": "Haiti",
|
|
891
|
-
"code": "HT",
|
|
892
|
-
"dial_code": "+509",
|
|
893
|
-
"regex": "^\\+509[2-9]\\d{7}$",
|
|
894
|
-
"placeholder": "+509 2XXXXXXX",
|
|
895
|
-
"format": "+509 XXXX XXXX",
|
|
896
|
-
"flag": "🇭🇹"
|
|
897
|
-
},
|
|
898
|
-
{
|
|
899
|
-
"name": "Heard Island and Mcdonald Islands",
|
|
900
|
-
"flag": "🇭🇲",
|
|
901
|
-
"code": "HM",
|
|
902
|
-
"dial_code": "+672",
|
|
903
|
-
"regex": "^\\+672\\d{6}$",
|
|
904
|
-
"placeholder": "+672 XXXXXX",
|
|
905
|
-
"example": "+672 123456"
|
|
906
|
-
},
|
|
907
|
-
{
|
|
908
|
-
"name": "Holy See (Vatican City State)",
|
|
909
|
-
"flag": "🇻🇦",
|
|
910
|
-
"code": "VA",
|
|
911
|
-
"dial_code": "+379",
|
|
912
|
-
"regex": "^\\+379\\d{10}$",
|
|
913
|
-
"placeholder": "+379 XXXXXXXXXX",
|
|
914
|
-
"example": "+379 0612345678"
|
|
915
|
-
},
|
|
916
|
-
{
|
|
917
|
-
"name": "Honduras",
|
|
918
|
-
"code": "HN",
|
|
919
|
-
"dial_code": "+504",
|
|
920
|
-
"regex": "^\\+504[2-9]\\d{7}$",
|
|
921
|
-
"placeholder": "+504 9XXXXXXX",
|
|
922
|
-
"format": "+504 XXXX XXXX",
|
|
923
|
-
"flag": "🇭🇳"
|
|
924
|
-
},
|
|
925
|
-
{
|
|
926
|
-
"name": "Hong Kong",
|
|
927
|
-
"code": "HK",
|
|
928
|
-
"dial_code": "+852",
|
|
929
|
-
"regex": "^\\+852[2-9]\\d{7}$",
|
|
930
|
-
"placeholder": "+852 5XXXXXXX",
|
|
931
|
-
"format": "+852 XXXX XXXX",
|
|
932
|
-
"flag": "🇭🇰"
|
|
933
|
-
},
|
|
934
|
-
{
|
|
935
|
-
"name": "Hungary",
|
|
936
|
-
"code": "HU",
|
|
937
|
-
"dial_code": "+36",
|
|
938
|
-
"regex": "^\\+36[1-9]\\d{7,8}$",
|
|
939
|
-
"placeholder": "+36 30XXXXXXX",
|
|
940
|
-
"format": "+36 XX XXX XXXX",
|
|
941
|
-
"flag": "🇭🇺"
|
|
942
|
-
},
|
|
943
|
-
{
|
|
944
|
-
"name": "Iceland",
|
|
945
|
-
"code": "IS",
|
|
946
|
-
"dial_code": "+354",
|
|
947
|
-
"regex": "^\\+354\\d{7}$",
|
|
948
|
-
"placeholder": "+354 XXXXXXX",
|
|
949
|
-
"format": "+354 XXX XXXX",
|
|
950
|
-
"flag": "🇮🇸"
|
|
951
|
-
},
|
|
952
|
-
{
|
|
953
|
-
"name": "India",
|
|
954
|
-
"code": "IN",
|
|
955
|
-
"dial_code": "+91",
|
|
956
|
-
"regex": "^\\+91[6789]\\d{9}$",
|
|
957
|
-
"placeholder": "+91 9XXXXXXXXX",
|
|
958
|
-
"format": "+91 XXXXX XXXXX",
|
|
959
|
-
"flag": "🇮🇳"
|
|
960
|
-
},
|
|
961
|
-
{
|
|
962
|
-
"name": "Indonesia",
|
|
963
|
-
"code": "ID",
|
|
964
|
-
"dial_code": "+62",
|
|
965
|
-
"regex": "^\\+62[8]\\d{9,10}$",
|
|
966
|
-
"placeholder": "+62 8XXXXXXXXX",
|
|
967
|
-
"format": "+62 8XX XXXX XXXX",
|
|
968
|
-
"flag": "🇮🇩"
|
|
969
|
-
},
|
|
970
|
-
{
|
|
971
|
-
"name": "Iran, Islamic Republic of Persian Gulf",
|
|
972
|
-
"flag": "🇮🇷",
|
|
973
|
-
"code": "IR",
|
|
974
|
-
"dial_code": "+98",
|
|
975
|
-
"regex": "^\\+98[1-9]\\d{9}$",
|
|
976
|
-
"placeholder": "+98 9XXXXXXXXX",
|
|
977
|
-
"example": "+98 9123456789"
|
|
978
|
-
},
|
|
979
|
-
{
|
|
980
|
-
"name": "Iraq",
|
|
981
|
-
"code": "IQ",
|
|
982
|
-
"dial_code": "+964",
|
|
983
|
-
"regex": "^\\+964[7]\\d{9}$",
|
|
984
|
-
"placeholder": "+964 7XXXXXXXXX",
|
|
985
|
-
"format": "+964 7XX XXX XXXX",
|
|
986
|
-
"flag": "🇮🇶"
|
|
987
|
-
},
|
|
988
|
-
{
|
|
989
|
-
"name": "Ireland",
|
|
990
|
-
"code": "IE",
|
|
991
|
-
"dial_code": "+353",
|
|
992
|
-
"regex": "^\\+353[1-9]\\d{8}$",
|
|
993
|
-
"placeholder": "+353 8XXXXXXXX",
|
|
994
|
-
"format": "+353 XX XXX XXXX",
|
|
995
|
-
"flag": "🇮🇪"
|
|
996
|
-
},
|
|
997
|
-
{
|
|
998
|
-
"name": "Isle of Man",
|
|
999
|
-
"code": "IM",
|
|
1000
|
-
"dial_code": "+44",
|
|
1001
|
-
"regex": "^\\+44[1624]\\d{6}$",
|
|
1002
|
-
"placeholder": "+44 1624 XXXXXX",
|
|
1003
|
-
"format": "+44 1624 XXXXXX",
|
|
1004
|
-
"flag": "🇮🇲"
|
|
1005
|
-
},
|
|
1006
|
-
{
|
|
1007
|
-
"name": "Israel",
|
|
1008
|
-
"code": "IL",
|
|
1009
|
-
"dial_code": "+972",
|
|
1010
|
-
"regex": "^\\+972[5-9]\\d{8}$",
|
|
1011
|
-
"placeholder": "+972 5XXXXXXXX",
|
|
1012
|
-
"format": "+972 5X XXX XXXX",
|
|
1013
|
-
"flag": "🇮🇱"
|
|
1014
|
-
},
|
|
1015
|
-
{
|
|
1016
|
-
"name": "Italy",
|
|
1017
|
-
"code": "IT",
|
|
1018
|
-
"dial_code": "+39",
|
|
1019
|
-
"regex": "^\\+39[0-9]\\d{9}$",
|
|
1020
|
-
"placeholder": "+39 3XXXXXXXXX",
|
|
1021
|
-
"format": "+39 3XX XXX XXXX",
|
|
1022
|
-
"flag": "🇮🇹"
|
|
1023
|
-
},
|
|
1024
|
-
{
|
|
1025
|
-
"name": "Jamaica",
|
|
1026
|
-
"code": "JM",
|
|
1027
|
-
"dial_code": "+1876",
|
|
1028
|
-
"regex": "^\\+1876\\d{7}$",
|
|
1029
|
-
"placeholder": "+1876 XXXXXXX",
|
|
1030
|
-
"format": "+1876 XXX XXXX",
|
|
1031
|
-
"flag": "🇯🇲"
|
|
1032
|
-
},
|
|
1033
|
-
{
|
|
1034
|
-
"name": "Japan",
|
|
1035
|
-
"code": "JP",
|
|
1036
|
-
"dial_code": "+81",
|
|
1037
|
-
"regex": "^\\+81[0-9]\\d{9}$",
|
|
1038
|
-
"placeholder": "+81 9XXXXXXXXX",
|
|
1039
|
-
"format": "+81 XX XXXX XXXX",
|
|
1040
|
-
"flag": "🇯🇵"
|
|
1041
|
-
},
|
|
1042
|
-
{
|
|
1043
|
-
"name": "Jersey",
|
|
1044
|
-
"code": "JE",
|
|
1045
|
-
"dial_code": "+44",
|
|
1046
|
-
"regex": "^\\+44[1534]\\d{6}$",
|
|
1047
|
-
"placeholder": "+44 1534 XXXXXX",
|
|
1048
|
-
"format": "+44 1534 XXXXXX",
|
|
1049
|
-
"flag": "🇯🇪"
|
|
1050
|
-
},
|
|
1051
|
-
{
|
|
1052
|
-
"name": "Jordan",
|
|
1053
|
-
"code": "JO",
|
|
1054
|
-
"dial_code": "+962",
|
|
1055
|
-
"regex": "^\\+962[7]\\d{8}$",
|
|
1056
|
-
"placeholder": "+962 7XXXXXXXX",
|
|
1057
|
-
"format": "+962 7 XXXX XXXX",
|
|
1058
|
-
"flag": "🇯🇴"
|
|
1059
|
-
},
|
|
1060
|
-
{
|
|
1061
|
-
"name": "Kazakhstan",
|
|
1062
|
-
"code": "KZ",
|
|
1063
|
-
"dial_code": "+7",
|
|
1064
|
-
"regex": "^\\+7[7]\\d{9}$",
|
|
1065
|
-
"placeholder": "+7 7XXXXXXXXX",
|
|
1066
|
-
"format": "+7 7XX XXX XXXX",
|
|
1067
|
-
"flag": "🇰🇿"
|
|
1068
|
-
},
|
|
1069
|
-
{
|
|
1070
|
-
"name": "Kenya",
|
|
1071
|
-
"code": "KE",
|
|
1072
|
-
"dial_code": "+254",
|
|
1073
|
-
"regex": "^\\+254[7]\\d{8}$",
|
|
1074
|
-
"placeholder": "+254 7XXXXXXXX",
|
|
1075
|
-
"format": "+254 7XX XXX XXX",
|
|
1076
|
-
"flag": "🇰🇪"
|
|
1077
|
-
},
|
|
1078
|
-
{
|
|
1079
|
-
"name": "Kiribati",
|
|
1080
|
-
"code": "KI",
|
|
1081
|
-
"dial_code": "+686",
|
|
1082
|
-
"regex": "^\\+686\\d{5}$",
|
|
1083
|
-
"placeholder": "+686 XXXXX",
|
|
1084
|
-
"format": "+686 XXXXX",
|
|
1085
|
-
"flag": "🇰🇮"
|
|
1086
|
-
},
|
|
1087
|
-
{
|
|
1088
|
-
"name": "Korea, Democratic People's Republic of Korea",
|
|
1089
|
-
"flag": "🇰🇵",
|
|
1090
|
-
"code": "KP",
|
|
1091
|
-
"dial_code": "+850",
|
|
1092
|
-
"regex": "^\\+850\\d{7,10}$",
|
|
1093
|
-
"placeholder": "+850 XXXXXXXXXX",
|
|
1094
|
-
"example": "+850 2123456789"
|
|
1095
|
-
},
|
|
1096
|
-
{
|
|
1097
|
-
"name": "Korea, Republic of South Korea",
|
|
1098
|
-
"flag": "🇰🇷",
|
|
1099
|
-
"code": "KR",
|
|
1100
|
-
"dial_code": "+82",
|
|
1101
|
-
"regex": "^\\+82\\d{9,10}$",
|
|
1102
|
-
"placeholder": "+82 10XXXXXXXX",
|
|
1103
|
-
"example": "+82 1012345678"
|
|
1104
|
-
},
|
|
1105
|
-
{
|
|
1106
|
-
"name": "Kosovo",
|
|
1107
|
-
"code": "XK",
|
|
1108
|
-
"dial_code": "+383",
|
|
1109
|
-
"regex": "^\\+383[4-9]\\d{7}$",
|
|
1110
|
-
"placeholder": "+383 4XXXXXXX",
|
|
1111
|
-
"format": "+383 4X XXX XXX",
|
|
1112
|
-
"flag": "🇽🇰"
|
|
1113
|
-
},
|
|
1114
|
-
{
|
|
1115
|
-
"name": "Kuwait",
|
|
1116
|
-
"code": "KW",
|
|
1117
|
-
"dial_code": "+965",
|
|
1118
|
-
"regex": "^\\+965[5-9]\\d{7}$",
|
|
1119
|
-
"placeholder": "+965 5XXXXXXX",
|
|
1120
|
-
"format": "+965 5XXX XXXX",
|
|
1121
|
-
"flag": "🇰🇼"
|
|
1122
|
-
},
|
|
1123
|
-
{
|
|
1124
|
-
"name": "Kyrgyzstan",
|
|
1125
|
-
"code": "KG",
|
|
1126
|
-
"dial_code": "+996",
|
|
1127
|
-
"regex": "^\\+996[5-9]\\d{8}$",
|
|
1128
|
-
"placeholder": "+996 5XXXXXXXX",
|
|
1129
|
-
"format": "+996 XXX XXX XXX",
|
|
1130
|
-
"flag": "🇰🇬"
|
|
1131
|
-
},
|
|
1132
|
-
{
|
|
1133
|
-
"name": "Laos",
|
|
1134
|
-
"code": "LA",
|
|
1135
|
-
"dial_code": "+856",
|
|
1136
|
-
"regex": "^\\+856[2]\\d{8}$",
|
|
1137
|
-
"placeholder": "+856 2XXXXXXXX",
|
|
1138
|
-
"format": "+856 20 XXX XXX",
|
|
1139
|
-
"flag": "🇱🇦"
|
|
1140
|
-
},
|
|
1141
|
-
{
|
|
1142
|
-
"name": "Latvia",
|
|
1143
|
-
"code": "LV",
|
|
1144
|
-
"dial_code": "+371",
|
|
1145
|
-
"regex": "^\\+371[2]\\d{7}$",
|
|
1146
|
-
"placeholder": "+371 2XXXXXXX",
|
|
1147
|
-
"format": "+371 2XXX XXXX",
|
|
1148
|
-
"flag": "🇱🇻"
|
|
1149
|
-
},
|
|
1150
|
-
{
|
|
1151
|
-
"name": "Lebanon",
|
|
1152
|
-
"code": "LB",
|
|
1153
|
-
"dial_code": "+961",
|
|
1154
|
-
"regex": "^\\+961[3-9]\\d{6,7}$",
|
|
1155
|
-
"placeholder": "+961 3XXXXXX",
|
|
1156
|
-
"format": "+961 3 XXX XXX",
|
|
1157
|
-
"flag": "🇱🇧"
|
|
1158
|
-
},
|
|
1159
|
-
{
|
|
1160
|
-
"name": "Lesotho",
|
|
1161
|
-
"code": "LS",
|
|
1162
|
-
"dial_code": "+266",
|
|
1163
|
-
"regex": "^\\+266[2-9]\\d{7}$",
|
|
1164
|
-
"placeholder": "+266 5XXXXXXX",
|
|
1165
|
-
"format": "+266 5XXX XXXX",
|
|
1166
|
-
"flag": "🇱🇸"
|
|
1167
|
-
},
|
|
1168
|
-
{
|
|
1169
|
-
"name": "Liberia",
|
|
1170
|
-
"code": "LR",
|
|
1171
|
-
"dial_code": "+231",
|
|
1172
|
-
"regex": "^\\+231[4-9]\\d{7}$",
|
|
1173
|
-
"placeholder": "+231 4XXXXXXX",
|
|
1174
|
-
"format": "+231 XX XXX XXX",
|
|
1175
|
-
"flag": "🇱🇷"
|
|
1176
|
-
},
|
|
1177
|
-
{
|
|
1178
|
-
"name": "Libyan Arab Jamahiriya",
|
|
1179
|
-
"flag": "🇱🇾",
|
|
1180
|
-
"code": "LY",
|
|
1181
|
-
"dial_code": "+218",
|
|
1182
|
-
"regex": "^\\+218[89]\\d{8}$",
|
|
1183
|
-
"placeholder": "+218 9XXXXXXXX",
|
|
1184
|
-
"example": "+218 912345678"
|
|
1185
|
-
},
|
|
1186
|
-
{
|
|
1187
|
-
"name": "Liechtenstein",
|
|
1188
|
-
"code": "LI",
|
|
1189
|
-
"dial_code": "+423",
|
|
1190
|
-
"regex": "^\\+423[2-9]\\d{6}$",
|
|
1191
|
-
"placeholder": "+423 6XXXXXX",
|
|
1192
|
-
"format": "+423 XXX XXXX",
|
|
1193
|
-
"flag": "🇱🇮"
|
|
1194
|
-
},
|
|
1195
|
-
{
|
|
1196
|
-
"name": "Lithuania",
|
|
1197
|
-
"code": "LT",
|
|
1198
|
-
"dial_code": "+370",
|
|
1199
|
-
"regex": "^\\+370[6]\\d{7}$",
|
|
1200
|
-
"placeholder": "+370 6XXXXXXX",
|
|
1201
|
-
"format": "+370 6XX XXXXX",
|
|
1202
|
-
"flag": "🇱🇹"
|
|
1203
|
-
},
|
|
1204
|
-
{
|
|
1205
|
-
"name": "Luxembourg",
|
|
1206
|
-
"code": "LU",
|
|
1207
|
-
"dial_code": "+352",
|
|
1208
|
-
"regex": "^\\+352[2689]\\d{7}$",
|
|
1209
|
-
"placeholder": "+352 6XXXXXXX",
|
|
1210
|
-
"format": "+352 XXX XXX XXX",
|
|
1211
|
-
"flag": "🇱🇺"
|
|
1212
|
-
},
|
|
1213
|
-
{
|
|
1214
|
-
"name": "Macao",
|
|
1215
|
-
"code": "MO",
|
|
1216
|
-
"dial_code": "+853",
|
|
1217
|
-
"regex": "^\\+853[6]\\d{7}$",
|
|
1218
|
-
"placeholder": "+853 6XXXXXXX",
|
|
1219
|
-
"format": "+853 XXXX XXXX",
|
|
1220
|
-
"flag": "🇲🇴"
|
|
1221
|
-
},
|
|
1222
|
-
{
|
|
1223
|
-
"name": "Macedonia",
|
|
1224
|
-
"code": "MK",
|
|
1225
|
-
"dial_code": "+389",
|
|
1226
|
-
"regex": "^\\+389[27]\\d{7}$",
|
|
1227
|
-
"placeholder": "+389 7XXXXXXX",
|
|
1228
|
-
"format": "+389 XX XXX XXX",
|
|
1229
|
-
"flag": "🇲🇰"
|
|
1230
|
-
},
|
|
1231
|
-
{
|
|
1232
|
-
"name": "Madagascar",
|
|
1233
|
-
"code": "MG",
|
|
1234
|
-
"dial_code": "+261",
|
|
1235
|
-
"regex": "^\\+261[3]\\d{8}$",
|
|
1236
|
-
"placeholder": "+261 3XXXXXXXX",
|
|
1237
|
-
"format": "+261 3X XXX XXXX",
|
|
1238
|
-
"flag": "🇲🇬"
|
|
1239
|
-
},
|
|
1240
|
-
{
|
|
1241
|
-
"name": "Malawi",
|
|
1242
|
-
"code": "MW",
|
|
1243
|
-
"dial_code": "+265",
|
|
1244
|
-
"regex": "^\\+265[1-9]\\d{7}$",
|
|
1245
|
-
"placeholder": "+265 9XXXXXXX",
|
|
1246
|
-
"format": "+265 9XX XXX XXX",
|
|
1247
|
-
"flag": "🇲🇼"
|
|
1248
|
-
},
|
|
1249
|
-
{
|
|
1250
|
-
"name": "Malaysia",
|
|
1251
|
-
"code": "MY",
|
|
1252
|
-
"dial_code": "+60",
|
|
1253
|
-
"regex": "^\\+60[1-9]\\d{7,9}$",
|
|
1254
|
-
"placeholder": "+60 1XXXXXXXXX",
|
|
1255
|
-
"format": "+60 1X XXXX XXXX",
|
|
1256
|
-
"flag": "🇲🇾"
|
|
1257
|
-
},
|
|
1258
|
-
{
|
|
1259
|
-
"name": "Maldives",
|
|
1260
|
-
"code": "MV",
|
|
1261
|
-
"dial_code": "+960",
|
|
1262
|
-
"regex": "^\\+960[7-9]\\d{6}$",
|
|
1263
|
-
"placeholder": "+960 7XXXXXX",
|
|
1264
|
-
"format": "+960 XXX XXXX",
|
|
1265
|
-
"flag": "🇲🇻"
|
|
1266
|
-
},
|
|
1267
|
-
{
|
|
1268
|
-
"name": "Mali",
|
|
1269
|
-
"code": "ML",
|
|
1270
|
-
"dial_code": "+223",
|
|
1271
|
-
"regex": "^\\+223[6-9]\\d{7}$",
|
|
1272
|
-
"placeholder": "+223 7XXXXXXX",
|
|
1273
|
-
"format": "+223 XX XX XX XX",
|
|
1274
|
-
"flag": "🇲🇱"
|
|
1275
|
-
},
|
|
1276
|
-
{
|
|
1277
|
-
"name": "Malta",
|
|
1278
|
-
"code": "MT",
|
|
1279
|
-
"dial_code": "+356",
|
|
1280
|
-
"regex": "^\\+356[2379]\\d{7}$",
|
|
1281
|
-
"placeholder": "+356 7XXXXXXX",
|
|
1282
|
-
"format": "+356 XXXX XXXX",
|
|
1283
|
-
"flag": "🇲🇹"
|
|
1284
|
-
},
|
|
1285
|
-
{
|
|
1286
|
-
"name": "Marshall Islands",
|
|
1287
|
-
"code": "MH",
|
|
1288
|
-
"dial_code": "+692",
|
|
1289
|
-
"regex": "^\\+692[2-9]\\d{6}$",
|
|
1290
|
-
"placeholder": "+692 2XXXXXX",
|
|
1291
|
-
"format": "+692 XXX XXXX",
|
|
1292
|
-
"flag": "🇲🇭"
|
|
1293
|
-
},
|
|
1294
|
-
{
|
|
1295
|
-
"name": "Martinique",
|
|
1296
|
-
"code": "MQ",
|
|
1297
|
-
"dial_code": "+596",
|
|
1298
|
-
"regex": "^\\+596[6-7]\\d{8}$",
|
|
1299
|
-
"placeholder": "+596 6XXXXXXXX",
|
|
1300
|
-
"format": "+596 XXX XX XX XX",
|
|
1301
|
-
"flag": "🇲🇶"
|
|
1302
|
-
},
|
|
1303
|
-
{
|
|
1304
|
-
"name": "Mauritania",
|
|
1305
|
-
"code": "MR",
|
|
1306
|
-
"dial_code": "+222",
|
|
1307
|
-
"regex": "^\\+222[2-9]\\d{7}$",
|
|
1308
|
-
"placeholder": "+222 4XXXXXXX",
|
|
1309
|
-
"format": "+222 XXXX XXXX",
|
|
1310
|
-
"flag": "🇲🇷"
|
|
1311
|
-
},
|
|
1312
|
-
{
|
|
1313
|
-
"name": "Mauritius",
|
|
1314
|
-
"code": "MU",
|
|
1315
|
-
"dial_code": "+230",
|
|
1316
|
-
"regex": "^\\+230[2-9]\\d{6}$",
|
|
1317
|
-
"placeholder": "+230 5XXXXXX",
|
|
1318
|
-
"format": "+230 XXXX XXXX",
|
|
1319
|
-
"flag": "🇲🇺"
|
|
1320
|
-
},
|
|
1321
|
-
{
|
|
1322
|
-
"name": "Mayotte",
|
|
1323
|
-
"code": "YT",
|
|
1324
|
-
"dial_code": "+262",
|
|
1325
|
-
"regex": "^\\+262[2-9]\\d{7}$",
|
|
1326
|
-
"placeholder": "+262 6XXXXXXX",
|
|
1327
|
-
"format": "+262 XXX XX XX XX",
|
|
1328
|
-
"flag": "🇾🇹"
|
|
1329
|
-
},
|
|
1330
|
-
{
|
|
1331
|
-
"name": "Mexico",
|
|
1332
|
-
"code": "MX",
|
|
1333
|
-
"dial_code": "+52",
|
|
1334
|
-
"regex": "^\\+52[1]\\d{10}$",
|
|
1335
|
-
"placeholder": "+52 1XXXXXXXXXX",
|
|
1336
|
-
"format": "+52 1 XXX XXX XXXX",
|
|
1337
|
-
"flag": "🇲🇽"
|
|
1338
|
-
},
|
|
1339
|
-
{
|
|
1340
|
-
"name": "Micronesia, Federated States of Micronesia",
|
|
1341
|
-
"flag": "🇫🇲",
|
|
1342
|
-
"code": "FM",
|
|
1343
|
-
"dial_code": "+691",
|
|
1344
|
-
"regex": "^\\+691[1-9]\\d{6}$",
|
|
1345
|
-
"placeholder": "+691 XXXXXXX",
|
|
1346
|
-
"example": "+691 3201234"
|
|
1347
|
-
},
|
|
1348
|
-
{
|
|
1349
|
-
"name": "Moldova",
|
|
1350
|
-
"code": "MD",
|
|
1351
|
-
"dial_code": "+373",
|
|
1352
|
-
"regex": "^\\+373[67]\\d{7}$",
|
|
1353
|
-
"placeholder": "+373 6XXXXXXX",
|
|
1354
|
-
"format": "+373 XX XXX XXX",
|
|
1355
|
-
"flag": "🇲🇩"
|
|
1356
|
-
},
|
|
1357
|
-
{
|
|
1358
|
-
"name": "Monaco",
|
|
1359
|
-
"code": "MC",
|
|
1360
|
-
"dial_code": "+377",
|
|
1361
|
-
"regex": "^\\+377[4-9]\\d{7,8}$",
|
|
1362
|
-
"placeholder": "+377 6XXXXXXXX",
|
|
1363
|
-
"format": "+377 6 XX XX XX XX",
|
|
1364
|
-
"flag": "🇲🇨"
|
|
1365
|
-
},
|
|
1366
|
-
{
|
|
1367
|
-
"name": "Mongolia",
|
|
1368
|
-
"code": "MN",
|
|
1369
|
-
"dial_code": "+976",
|
|
1370
|
-
"regex": "^\\+976[5-9]\\d{7}$",
|
|
1371
|
-
"placeholder": "+976 8XXXXXXX",
|
|
1372
|
-
"format": "+976 XX XX XXXX",
|
|
1373
|
-
"flag": "🇲🇳"
|
|
1374
|
-
},
|
|
1375
|
-
{
|
|
1376
|
-
"name": "Montenegro",
|
|
1377
|
-
"code": "ME",
|
|
1378
|
-
"dial_code": "+382",
|
|
1379
|
-
"regex": "^\\+382[2-9]\\d{7,8}$",
|
|
1380
|
-
"placeholder": "+382 6XXXXXXXX",
|
|
1381
|
-
"format": "+382 6X XXX XXX",
|
|
1382
|
-
"flag": "🇲🇪"
|
|
1383
|
-
},
|
|
1384
|
-
{
|
|
1385
|
-
"name": "Montserrat",
|
|
1386
|
-
"code": "MS",
|
|
1387
|
-
"dial_code": "+1664",
|
|
1388
|
-
"regex": "^\\+1664\\d{7}$",
|
|
1389
|
-
"placeholder": "+1664 XXXXXXX",
|
|
1390
|
-
"format": "+1664 XXX XXXX",
|
|
1391
|
-
"flag": "🇲🇸"
|
|
1392
|
-
},
|
|
1393
|
-
{
|
|
1394
|
-
"name": "Morocco",
|
|
1395
|
-
"code": "MA",
|
|
1396
|
-
"dial_code": "+212",
|
|
1397
|
-
"regex": "^\\+212[5-9]\\d{8}$",
|
|
1398
|
-
"placeholder": "+212 6XXXXXXXX",
|
|
1399
|
-
"format": "+212 6XX XXX XXX",
|
|
1400
|
-
"flag": "🇲🇦"
|
|
1401
|
-
},
|
|
1402
|
-
{
|
|
1403
|
-
"name": "Mozambique",
|
|
1404
|
-
"code": "MZ",
|
|
1405
|
-
"dial_code": "+258",
|
|
1406
|
-
"regex": "^\\+258[28]\\d{7}$",
|
|
1407
|
-
"placeholder": "+258 8XXXXXXX",
|
|
1408
|
-
"format": "+258 8X XXX XXXX",
|
|
1409
|
-
"flag": "🇲🇿"
|
|
1410
|
-
},
|
|
1411
|
-
{
|
|
1412
|
-
"name": "Myanmar",
|
|
1413
|
-
"code": "MM",
|
|
1414
|
-
"dial_code": "+95",
|
|
1415
|
-
"regex": "^\\+95[4-9]\\d{8}$",
|
|
1416
|
-
"placeholder": "+95 9XXXXXXXX",
|
|
1417
|
-
"format": "+95 9 XXX XXX XXX",
|
|
1418
|
-
"flag": "🇲🇲"
|
|
1419
|
-
},
|
|
1420
|
-
{
|
|
1421
|
-
"name": "Namibia",
|
|
1422
|
-
"code": "NA",
|
|
1423
|
-
"dial_code": "+264",
|
|
1424
|
-
"regex": "^\\+264[6-8]\\d{7,8}$",
|
|
1425
|
-
"placeholder": "+264 81XXXXXXX",
|
|
1426
|
-
"format": "+264 81 XXX XXXX",
|
|
1427
|
-
"flag": "🇳🇦"
|
|
1428
|
-
},
|
|
1429
|
-
{
|
|
1430
|
-
"name": "Nauru",
|
|
1431
|
-
"code": "NR",
|
|
1432
|
-
"dial_code": "+674",
|
|
1433
|
-
"regex": "^\\+674[0-9]\\d{4}$",
|
|
1434
|
-
"placeholder": "+674 XXXXX",
|
|
1435
|
-
"format": "+674 XXX XXXX",
|
|
1436
|
-
"flag": "🇳🇷"
|
|
1437
|
-
},
|
|
1438
|
-
{
|
|
1439
|
-
"name": "Nepal",
|
|
1440
|
-
"code": "NP",
|
|
1441
|
-
"dial_code": "+977",
|
|
1442
|
-
"regex": "^\\+977[9]\\d{9}$",
|
|
1443
|
-
"placeholder": "+977 9XXXXXXXXX",
|
|
1444
|
-
"format": "+977 98X XXX XXXX",
|
|
1445
|
-
"flag": "🇳🇵"
|
|
1446
|
-
},
|
|
1447
|
-
{
|
|
1448
|
-
"name": "Netherlands",
|
|
1449
|
-
"code": "NL",
|
|
1450
|
-
"dial_code": "+31",
|
|
1451
|
-
"regex": "^\\+31[1-9]\\d{8}$",
|
|
1452
|
-
"placeholder": "+31 6XXXXXXXX",
|
|
1453
|
-
"format": "+31 6 XXXX XXXX",
|
|
1454
|
-
"flag": "🇳🇱"
|
|
1455
|
-
},
|
|
1456
|
-
{
|
|
1457
|
-
"name": "Netherlands Antilles",
|
|
1458
|
-
"code": "AN",
|
|
1459
|
-
"dial_code": "+599",
|
|
1460
|
-
"regex": "^\\+599[9]\\d{6}$",
|
|
1461
|
-
"placeholder": "+599 9XXXXXX",
|
|
1462
|
-
"format": "+599 9XXX XXXX",
|
|
1463
|
-
"flag": ""
|
|
1464
|
-
},
|
|
1465
|
-
{
|
|
1466
|
-
"name": "New Caledonia",
|
|
1467
|
-
"code": "NC",
|
|
1468
|
-
"dial_code": "+687",
|
|
1469
|
-
"regex": "^\\+687\\d{6}$",
|
|
1470
|
-
"placeholder": "+687 XXXXXX",
|
|
1471
|
-
"format": "+687 XX XX XX",
|
|
1472
|
-
"flag": "🇳🇨"
|
|
1473
|
-
},
|
|
1474
|
-
{
|
|
1475
|
-
"name": "New Zealand",
|
|
1476
|
-
"code": "NZ",
|
|
1477
|
-
"dial_code": "+64",
|
|
1478
|
-
"regex": "^\\+64[2-9]\\d{7,9}$",
|
|
1479
|
-
"placeholder": "+64 21XXXXXXX",
|
|
1480
|
-
"format": "+64 21 XXX XXXX",
|
|
1481
|
-
"flag": "🇳🇿"
|
|
1482
|
-
},
|
|
1483
|
-
{
|
|
1484
|
-
"name": "Nicaragua",
|
|
1485
|
-
"code": "NI",
|
|
1486
|
-
"dial_code": "+505",
|
|
1487
|
-
"regex": "^\\+505[5-8]\\d{7}$",
|
|
1488
|
-
"placeholder": "+505 8XXXXXXX",
|
|
1489
|
-
"format": "+505 XXXX XXXX",
|
|
1490
|
-
"flag": "🇳🇮"
|
|
1491
|
-
},
|
|
1492
|
-
{
|
|
1493
|
-
"name": "Niger",
|
|
1494
|
-
"code": "NE",
|
|
1495
|
-
"dial_code": "+227",
|
|
1496
|
-
"regex": "^\\+227[0-9]\\d{7}$",
|
|
1497
|
-
"placeholder": "+227 9XXXXXXX",
|
|
1498
|
-
"format": "+227 XX XX XX XX",
|
|
1499
|
-
"flag": "🇳🇪"
|
|
1500
|
-
},
|
|
1501
|
-
{
|
|
1502
|
-
"name": "Nigeria",
|
|
1503
|
-
"code": "NG",
|
|
1504
|
-
"dial_code": "+234",
|
|
1505
|
-
"regex": "^\\+234[789]\\d{9}$",
|
|
1506
|
-
"placeholder": "+234 8XXXXXXXXX",
|
|
1507
|
-
"format": "+234 8XX XXX XXXX",
|
|
1508
|
-
"flag": "🇳🇬"
|
|
1509
|
-
},
|
|
1510
|
-
{
|
|
1511
|
-
"name": "Niue",
|
|
1512
|
-
"code": "NU",
|
|
1513
|
-
"dial_code": "+683",
|
|
1514
|
-
"regex": "^\\+683\\d{4}$",
|
|
1515
|
-
"placeholder": "+683 XXXX",
|
|
1516
|
-
"format": "+683 XXXX",
|
|
1517
|
-
"flag": "🇳🇺"
|
|
1518
|
-
},
|
|
1519
|
-
{
|
|
1520
|
-
"name": "Norfolk Island",
|
|
1521
|
-
"code": "NF",
|
|
1522
|
-
"dial_code": "+672",
|
|
1523
|
-
"regex": "^\\+672[3]\\d{5}$",
|
|
1524
|
-
"placeholder": "+672 3XXXXX",
|
|
1525
|
-
"format": "+672 3 XX XXX",
|
|
1526
|
-
"flag": "🇳🇫"
|
|
1527
|
-
},
|
|
1528
|
-
{
|
|
1529
|
-
"name": "Northern Mariana Islands",
|
|
1530
|
-
"code": "MP",
|
|
1531
|
-
"dial_code": "+1670",
|
|
1532
|
-
"regex": "^\\+1670\\d{7}$",
|
|
1533
|
-
"placeholder": "+1670 XXXXXXX",
|
|
1534
|
-
"format": "+1670 XXX XXXX",
|
|
1535
|
-
"flag": "🇲🇵"
|
|
1536
|
-
},
|
|
1537
|
-
{
|
|
1538
|
-
"name": "Norway",
|
|
1539
|
-
"code": "NO",
|
|
1540
|
-
"dial_code": "+47",
|
|
1541
|
-
"regex": "^\\+47[2-9]\\d{7}$",
|
|
1542
|
-
"placeholder": "+47 4XXXXXXX",
|
|
1543
|
-
"format": "+47 XXX XX XXX",
|
|
1544
|
-
"flag": "🇳🇴"
|
|
1545
|
-
},
|
|
1546
|
-
{
|
|
1547
|
-
"name": "Oman",
|
|
1548
|
-
"code": "OM",
|
|
1549
|
-
"dial_code": "+968",
|
|
1550
|
-
"regex": "^\\+968[79]\\d{7}$",
|
|
1551
|
-
"placeholder": "+968 9XXXXXXX",
|
|
1552
|
-
"format": "+968 9XXX XXXX",
|
|
1553
|
-
"flag": "🇴🇲"
|
|
1554
|
-
},
|
|
1555
|
-
{
|
|
1556
|
-
"name": "Pakistan",
|
|
1557
|
-
"code": "PK",
|
|
1558
|
-
"dial_code": "+92",
|
|
1559
|
-
"regex": "^\\+92[3]\\d{9}$",
|
|
1560
|
-
"placeholder": "+92 3XXXXXXXXX",
|
|
1561
|
-
"format": "+92 3XX XXX XXXX",
|
|
1562
|
-
"flag": "🇵🇰"
|
|
1563
|
-
},
|
|
1564
|
-
{
|
|
1565
|
-
"name": "Palau",
|
|
1566
|
-
"code": "PW",
|
|
1567
|
-
"dial_code": "+680",
|
|
1568
|
-
"regex": "^\\+680\\d{7}$",
|
|
1569
|
-
"placeholder": "+680 XXXXXXX",
|
|
1570
|
-
"format": "+680 XXX XXXX",
|
|
1571
|
-
"flag": "🇵🇼"
|
|
1572
|
-
},
|
|
1573
|
-
{
|
|
1574
|
-
"name": "Palestinian Territory, Occupied",
|
|
1575
|
-
"flag": "🇵🇸",
|
|
1576
|
-
"code": "PS",
|
|
1577
|
-
"dial_code": "+970",
|
|
1578
|
-
"regex": "^\\+970[59]\\d{8}$",
|
|
1579
|
-
"placeholder": "+970 5XXXXXXXX",
|
|
1580
|
-
"example": "+970 599123456"
|
|
1581
|
-
},
|
|
1582
|
-
{
|
|
1583
|
-
"name": "Panama",
|
|
1584
|
-
"code": "PA",
|
|
1585
|
-
"dial_code": "+507",
|
|
1586
|
-
"regex": "^\\+507[1-9]\\d{6}$",
|
|
1587
|
-
"placeholder": "+507 6XXXXXX",
|
|
1588
|
-
"format": "+507 XXXX XXXX",
|
|
1589
|
-
"flag": "🇵🇦"
|
|
1590
|
-
},
|
|
1591
|
-
{
|
|
1592
|
-
"name": "Papua New Guinea",
|
|
1593
|
-
"code": "PG",
|
|
1594
|
-
"dial_code": "+675",
|
|
1595
|
-
"regex": "^\\+675[7]\\d{7}$",
|
|
1596
|
-
"placeholder": "+675 7XXXXXXX",
|
|
1597
|
-
"format": "+675 7XXX XXXX",
|
|
1598
|
-
"flag": "🇵🇬"
|
|
1599
|
-
},
|
|
1600
|
-
{
|
|
1601
|
-
"name": "Paraguay",
|
|
1602
|
-
"code": "PY",
|
|
1603
|
-
"dial_code": "+595",
|
|
1604
|
-
"regex": "^\\+595[9]\\d{8}$",
|
|
1605
|
-
"placeholder": "+595 9XXXXXXXX",
|
|
1606
|
-
"format": "+595 9XX XXX XXX",
|
|
1607
|
-
"flag": "🇵🇾"
|
|
1608
|
-
},
|
|
1609
|
-
{
|
|
1610
|
-
"name": "Peru",
|
|
1611
|
-
"code": "PE",
|
|
1612
|
-
"dial_code": "+51",
|
|
1613
|
-
"regex": "^\\+51[9]\\d{8}$",
|
|
1614
|
-
"placeholder": "+51 9XXXXXXXX",
|
|
1615
|
-
"format": "+51 9XX XXX XXX",
|
|
1616
|
-
"flag": "🇵🇪"
|
|
1617
|
-
},
|
|
1618
|
-
{
|
|
1619
|
-
"name": "Philippines",
|
|
1620
|
-
"code": "PH",
|
|
1621
|
-
"dial_code": "+63",
|
|
1622
|
-
"regex": "^\\+63[9]\\d{9}$",
|
|
1623
|
-
"placeholder": "+63 9XXXXXXXXX",
|
|
1624
|
-
"format": "+63 9XX XXX XXXX",
|
|
1625
|
-
"flag": "🇵🇭"
|
|
1626
|
-
},
|
|
1627
|
-
{
|
|
1628
|
-
"name": "Pitcairn",
|
|
1629
|
-
"code": "PN",
|
|
1630
|
-
"dial_code": "+64",
|
|
1631
|
-
"regex": "^\\+64\\d{10}$",
|
|
1632
|
-
"placeholder": "+64 XXXXXXXXXX",
|
|
1633
|
-
"format": "+64 XXX XXX XXXX",
|
|
1634
|
-
"flag": "🇵🇳"
|
|
1635
|
-
},
|
|
1636
|
-
{
|
|
1637
|
-
"name": "Poland",
|
|
1638
|
-
"code": "PL",
|
|
1639
|
-
"dial_code": "+48",
|
|
1640
|
-
"regex": "^\\+48[1-9]\\d{8}$",
|
|
1641
|
-
"placeholder": "+48 5XXXXXXXX",
|
|
1642
|
-
"format": "+48 5XX XXX XXX",
|
|
1643
|
-
"flag": "🇵🇱"
|
|
1644
|
-
},
|
|
1645
|
-
{
|
|
1646
|
-
"name": "Portugal",
|
|
1647
|
-
"code": "PT",
|
|
1648
|
-
"dial_code": "+351",
|
|
1649
|
-
"regex": "^\\+351[1-9]\\d{8}$",
|
|
1650
|
-
"placeholder": "+351 9XXXXXXXX",
|
|
1651
|
-
"format": "+351 9XX XXX XXX",
|
|
1652
|
-
"flag": "🇵🇹"
|
|
1653
|
-
},
|
|
1654
|
-
{
|
|
1655
|
-
"name": "Puerto Rico",
|
|
1656
|
-
"code": "PR",
|
|
1657
|
-
"dial_code": "+1939",
|
|
1658
|
-
"regex": "^\\+1939\\d{7}$",
|
|
1659
|
-
"placeholder": "+1939 XXXXXXX",
|
|
1660
|
-
"format": "+1939 XXX XXXX",
|
|
1661
|
-
"flag": "🇵🇷"
|
|
1662
|
-
},
|
|
1663
|
-
{
|
|
1664
|
-
"name": "Qatar",
|
|
1665
|
-
"code": "QA",
|
|
1666
|
-
"dial_code": "+974",
|
|
1667
|
-
"regex": "^\\+974[3-7]\\d{7}$",
|
|
1668
|
-
"placeholder": "+974 3XXXXXXX",
|
|
1669
|
-
"format": "+974 XXXX XXXX",
|
|
1670
|
-
"flag": "🇶🇦"
|
|
1671
|
-
},
|
|
1672
|
-
{
|
|
1673
|
-
"name": "Romania",
|
|
1674
|
-
"code": "RO",
|
|
1675
|
-
"dial_code": "+40",
|
|
1676
|
-
"regex": "^\\+40[7]\\d{8}$",
|
|
1677
|
-
"placeholder": "+40 7XXXXXXXX",
|
|
1678
|
-
"format": "+40 7XX XXX XXX",
|
|
1679
|
-
"flag": "🇷🇴"
|
|
1680
|
-
},
|
|
1681
|
-
{
|
|
1682
|
-
"name": "Russia",
|
|
1683
|
-
"code": "RU",
|
|
1684
|
-
"dial_code": "+7",
|
|
1685
|
-
"regex": "^\\+7[9]\\d{9}$",
|
|
1686
|
-
"placeholder": "+7 9XXXXXXXXX",
|
|
1687
|
-
"format": "+7 9XX XXX XX XX",
|
|
1688
|
-
"flag": "🇷🇺"
|
|
1689
|
-
},
|
|
1690
|
-
{
|
|
1691
|
-
"name": "Rwanda",
|
|
1692
|
-
"code": "RW",
|
|
1693
|
-
"dial_code": "+250",
|
|
1694
|
-
"regex": "^\\+250[7]\\d{8}$",
|
|
1695
|
-
"placeholder": "+250 7XXXXXXXX",
|
|
1696
|
-
"format": "+250 7XX XXX XXX",
|
|
1697
|
-
"flag": "🇷🇼"
|
|
1698
|
-
},
|
|
1699
|
-
{
|
|
1700
|
-
"name": "Reunion",
|
|
1701
|
-
"code": "RE",
|
|
1702
|
-
"dial_code": "+262",
|
|
1703
|
-
"regex": "^\\+262[6-7]\\d{8}$",
|
|
1704
|
-
"placeholder": "+262 6XXXXXXXX",
|
|
1705
|
-
"format": "+262 6XX XX XX XX",
|
|
1706
|
-
"flag": "🇷🇪"
|
|
1707
|
-
},
|
|
1708
|
-
{
|
|
1709
|
-
"name": "Saint Barthelemy",
|
|
1710
|
-
"code": "BL",
|
|
1711
|
-
"dial_code": "+590",
|
|
1712
|
-
"regex": "^\\+590[6-7]\\d{8}$",
|
|
1713
|
-
"placeholder": "+590 6XXXXXXXX",
|
|
1714
|
-
"format": "+590 6XX XX XX XX",
|
|
1715
|
-
"flag": "🇧🇱"
|
|
1716
|
-
},
|
|
1717
|
-
{
|
|
1718
|
-
"name": "Saint Helena, Ascension and Tristan Da Cunha",
|
|
1719
|
-
"flag": "🇸🇭",
|
|
1720
|
-
"code": "SH",
|
|
1721
|
-
"dial_code": "+290",
|
|
1722
|
-
"regex": "^\\+290\\d{4}$",
|
|
1723
|
-
"placeholder": "+290 XXXX",
|
|
1724
|
-
"example": "+290 2380"
|
|
1725
|
-
},
|
|
1726
|
-
{
|
|
1727
|
-
"name": "Saint Kitts and Nevis",
|
|
1728
|
-
"code": "KN",
|
|
1729
|
-
"dial_code": "+1869",
|
|
1730
|
-
"regex": "^\\+1869\\d{7}$",
|
|
1731
|
-
"placeholder": "+1869 XXXXXXX",
|
|
1732
|
-
"format": "+1869 XXX XXXX",
|
|
1733
|
-
"flag": "🇰🇳"
|
|
1734
|
-
},
|
|
1735
|
-
{
|
|
1736
|
-
"name": "Saint Lucia",
|
|
1737
|
-
"code": "LC",
|
|
1738
|
-
"dial_code": "+1758",
|
|
1739
|
-
"regex": "^\\+1758\\d{7}$",
|
|
1740
|
-
"placeholder": "+1758 XXXXXXX",
|
|
1741
|
-
"format": "+1758 XXX XXXX",
|
|
1742
|
-
"flag": "🇱🇨"
|
|
1743
|
-
},
|
|
1744
|
-
{
|
|
1745
|
-
"name": "Saint Martin",
|
|
1746
|
-
"code": "MF",
|
|
1747
|
-
"dial_code": "+590",
|
|
1748
|
-
"regex": "^\\+590[6-7]\\d{8}$",
|
|
1749
|
-
"placeholder": "+590 6XXXXXXXX",
|
|
1750
|
-
"format": "+590 6XX XX XX XX",
|
|
1751
|
-
"flag": "🇲🇫"
|
|
1752
|
-
},
|
|
1753
|
-
{
|
|
1754
|
-
"name": "Saint Pierre and Miquelon",
|
|
1755
|
-
"code": "PM",
|
|
1756
|
-
"dial_code": "+508",
|
|
1757
|
-
"regex": "^\\+508\\d{6}$",
|
|
1758
|
-
"placeholder": "+508 XXXXXX",
|
|
1759
|
-
"example": "+508 412345",
|
|
1760
|
-
"flag": "🇵🇲"
|
|
1761
|
-
},
|
|
1762
|
-
{
|
|
1763
|
-
"name": "Saint Vincent and the Grenadines",
|
|
1764
|
-
"code": "VC",
|
|
1765
|
-
"dial_code": "+1784",
|
|
1766
|
-
"regex": "^\\+1784\\d{7}$",
|
|
1767
|
-
"placeholder": "+1784 XXXXXXX",
|
|
1768
|
-
"example": "+1784 4561234",
|
|
1769
|
-
"flag": "🇻🇨"
|
|
1770
|
-
},
|
|
1771
|
-
{
|
|
1772
|
-
"name": "Samoa",
|
|
1773
|
-
"code": "WS",
|
|
1774
|
-
"dial_code": "+685",
|
|
1775
|
-
"regex": "^\\+685\\d{5,7}$",
|
|
1776
|
-
"placeholder": "+685 XXXXXX",
|
|
1777
|
-
"example": "+685 721234",
|
|
1778
|
-
"flag": "🇼🇸"
|
|
1779
|
-
},
|
|
1780
|
-
{
|
|
1781
|
-
"name": "San Marino",
|
|
1782
|
-
"code": "SM",
|
|
1783
|
-
"dial_code": "+378",
|
|
1784
|
-
"regex": "^\\+378\\d{6,10}$",
|
|
1785
|
-
"placeholder": "+378 XXXXXXXX",
|
|
1786
|
-
"example": "+378 0549123456",
|
|
1787
|
-
"flag": "🇸🇲"
|
|
1788
|
-
},
|
|
1789
|
-
{
|
|
1790
|
-
"name": "Sao Tome and Principe",
|
|
1791
|
-
"code": "ST",
|
|
1792
|
-
"dial_code": "+239",
|
|
1793
|
-
"regex": "^\\+239\\d{7}$",
|
|
1794
|
-
"placeholder": "+239 XXXXXXX",
|
|
1795
|
-
"example": "+239 9912345",
|
|
1796
|
-
"flag": "🇸🇹"
|
|
1797
|
-
},
|
|
1798
|
-
{
|
|
1799
|
-
"name": "Saudi Arabia",
|
|
1800
|
-
"code": "SA",
|
|
1801
|
-
"dial_code": "+966",
|
|
1802
|
-
"regex": "^\\+966\\d{9}$",
|
|
1803
|
-
"placeholder": "+966 5XXXXXXXX",
|
|
1804
|
-
"example": "+966 512345678",
|
|
1805
|
-
"flag": "🇸🇦"
|
|
1806
|
-
},
|
|
1807
|
-
{
|
|
1808
|
-
"name": "Senegal",
|
|
1809
|
-
"code": "SN",
|
|
1810
|
-
"dial_code": "+221",
|
|
1811
|
-
"regex": "^\\+221\\d{9}$",
|
|
1812
|
-
"placeholder": "+221 7XXXXXXXX",
|
|
1813
|
-
"example": "+221 771234567",
|
|
1814
|
-
"flag": "🇸🇳"
|
|
1815
|
-
},
|
|
1816
|
-
{
|
|
1817
|
-
"name": "Serbia",
|
|
1818
|
-
"code": "RS",
|
|
1819
|
-
"dial_code": "+381",
|
|
1820
|
-
"regex": "^\\+381\\d{8,9}$",
|
|
1821
|
-
"placeholder": "+381 6XXXXXXXX",
|
|
1822
|
-
"example": "+381 601234567",
|
|
1823
|
-
"flag": "🇷🇸"
|
|
1824
|
-
},
|
|
1825
|
-
{
|
|
1826
|
-
"name": "Seychelles",
|
|
1827
|
-
"code": "SC",
|
|
1828
|
-
"dial_code": "+248",
|
|
1829
|
-
"regex": "^\\+248\\d{7}$",
|
|
1830
|
-
"placeholder": "+248 XXXXXXX",
|
|
1831
|
-
"example": "+248 2512345",
|
|
1832
|
-
"flag": "🇸🇨"
|
|
1833
|
-
},
|
|
1834
|
-
{
|
|
1835
|
-
"name": "Sierra Leone",
|
|
1836
|
-
"code": "SL",
|
|
1837
|
-
"dial_code": "+232",
|
|
1838
|
-
"regex": "^\\+232\\d{8}$",
|
|
1839
|
-
"placeholder": "+232 7XXXXXXX",
|
|
1840
|
-
"example": "+232 76123456",
|
|
1841
|
-
"flag": "🇸🇱"
|
|
1842
|
-
},
|
|
1843
|
-
{
|
|
1844
|
-
"name": "Singapore",
|
|
1845
|
-
"code": "SG",
|
|
1846
|
-
"dial_code": "+65",
|
|
1847
|
-
"regex": "^\\+65\\d{8}$",
|
|
1848
|
-
"placeholder": "+65 8XXXXXXX",
|
|
1849
|
-
"example": "+65 81234567",
|
|
1850
|
-
"flag": "🇸🇬"
|
|
1851
|
-
},
|
|
1852
|
-
{
|
|
1853
|
-
"name": "Slovakia",
|
|
1854
|
-
"code": "SK",
|
|
1855
|
-
"dial_code": "+421",
|
|
1856
|
-
"regex": "^\\+421\\d{9}$",
|
|
1857
|
-
"placeholder": "+421 9XXXXXXXX",
|
|
1858
|
-
"example": "+421 912345678",
|
|
1859
|
-
"flag": "🇸🇰"
|
|
1860
|
-
},
|
|
1861
|
-
{
|
|
1862
|
-
"name": "Slovenia",
|
|
1863
|
-
"code": "SI",
|
|
1864
|
-
"dial_code": "+386",
|
|
1865
|
-
"regex": "^\\+386\\d{8}$",
|
|
1866
|
-
"placeholder": "+386 3XXXXXXX",
|
|
1867
|
-
"example": "+386 31234567",
|
|
1868
|
-
"flag": "🇸🇮"
|
|
1869
|
-
},
|
|
1870
|
-
{
|
|
1871
|
-
"name": "Solomon Islands",
|
|
1872
|
-
"code": "SB",
|
|
1873
|
-
"dial_code": "+677",
|
|
1874
|
-
"regex": "^\\+677\\d{5,7}$",
|
|
1875
|
-
"placeholder": "+677 7XXXXX",
|
|
1876
|
-
"example": "+677 7123456",
|
|
1877
|
-
"flag": "🇸🇧"
|
|
1878
|
-
},
|
|
1879
|
-
{
|
|
1880
|
-
"name": "Somalia",
|
|
1881
|
-
"code": "SO",
|
|
1882
|
-
"dial_code": "+252",
|
|
1883
|
-
"regex": "^\\+252\\d{8}$",
|
|
1884
|
-
"placeholder": "+252 6XXXXXXX",
|
|
1885
|
-
"example": "+252 61234567",
|
|
1886
|
-
"flag": "🇸🇴"
|
|
1887
|
-
},
|
|
1888
|
-
{
|
|
1889
|
-
"name": "South Africa",
|
|
1890
|
-
"code": "ZA",
|
|
1891
|
-
"dial_code": "+27",
|
|
1892
|
-
"regex": "^\\+27\\d{9}$",
|
|
1893
|
-
"placeholder": "+27 8XXXXXXXX",
|
|
1894
|
-
"example": "+27 831234567",
|
|
1895
|
-
"flag": "🇿🇦"
|
|
1896
|
-
},
|
|
1897
|
-
{
|
|
1898
|
-
"name": "South Sudan",
|
|
1899
|
-
"code": "SS",
|
|
1900
|
-
"dial_code": "+211",
|
|
1901
|
-
"regex": "^\\+211\\d{9}$",
|
|
1902
|
-
"placeholder": "+211 9XXXXXXXX",
|
|
1903
|
-
"example": "+211 977123456",
|
|
1904
|
-
"flag": "🇸🇸"
|
|
1905
|
-
},
|
|
1906
|
-
{
|
|
1907
|
-
"name": "South Georgia and the South Sandwich Islands",
|
|
1908
|
-
"flag": "🇬🇸",
|
|
1909
|
-
"code": "GS",
|
|
1910
|
-
"dial_code": "+500",
|
|
1911
|
-
"regex": "^\\+500\\d{5}$",
|
|
1912
|
-
"placeholder": "+500 XXXXX",
|
|
1913
|
-
"example": "+500 12345"
|
|
1914
|
-
},
|
|
1915
|
-
{
|
|
1916
|
-
"name": "Spain",
|
|
1917
|
-
"code": "ES",
|
|
1918
|
-
"dial_code": "+34",
|
|
1919
|
-
"regex": "^\\+34\\d{9}$",
|
|
1920
|
-
"placeholder": "+34 6XXXXXXXX",
|
|
1921
|
-
"example": "+34 612345678",
|
|
1922
|
-
"flag": "🇪🇸"
|
|
1923
|
-
},
|
|
1924
|
-
{
|
|
1925
|
-
"name": "Sri Lanka",
|
|
1926
|
-
"code": "LK",
|
|
1927
|
-
"dial_code": "+94",
|
|
1928
|
-
"regex": "^\\+94\\d{9}$",
|
|
1929
|
-
"placeholder": "+94 7XXXXXXXX",
|
|
1930
|
-
"example": "+94 712345678",
|
|
1931
|
-
"flag": "🇱🇰"
|
|
1932
|
-
},
|
|
1933
|
-
{
|
|
1934
|
-
"name": "Sudan",
|
|
1935
|
-
"code": "SD",
|
|
1936
|
-
"dial_code": "+249",
|
|
1937
|
-
"regex": "^\\+249\\d{9}$",
|
|
1938
|
-
"placeholder": "+249 9XXXXXXXX",
|
|
1939
|
-
"example": "+249 912345678",
|
|
1940
|
-
"flag": "🇸🇩"
|
|
1941
|
-
},
|
|
1942
|
-
{
|
|
1943
|
-
"name": "Suriname",
|
|
1944
|
-
"code": "SR",
|
|
1945
|
-
"dial_code": "+597",
|
|
1946
|
-
"regex": "^\\+597\\d{6,7}$",
|
|
1947
|
-
"placeholder": "+597 XXXXXXX",
|
|
1948
|
-
"example": "+597 8123456",
|
|
1949
|
-
"flag": "🇸🇷"
|
|
1950
|
-
},
|
|
1951
|
-
{
|
|
1952
|
-
"name": "Svalbard and Jan Mayen",
|
|
1953
|
-
"code": "SJ",
|
|
1954
|
-
"dial_code": "+47",
|
|
1955
|
-
"regex": "^\\+47\\d{8}$",
|
|
1956
|
-
"placeholder": "+47 XXXXXXXX",
|
|
1957
|
-
"example": "+47 41234567",
|
|
1958
|
-
"flag": "🇸🇯"
|
|
1959
|
-
},
|
|
1960
|
-
{
|
|
1961
|
-
"name": "Eswatini",
|
|
1962
|
-
"code": "SZ",
|
|
1963
|
-
"dial_code": "+268",
|
|
1964
|
-
"regex": "^\\+268\\d{8}$",
|
|
1965
|
-
"placeholder": "+268 7XXXXXXX",
|
|
1966
|
-
"example": "+268 76123456",
|
|
1967
|
-
"flag": "🇸🇿"
|
|
1968
|
-
},
|
|
1969
|
-
{
|
|
1970
|
-
"name": "Sweden",
|
|
1971
|
-
"code": "SE",
|
|
1972
|
-
"dial_code": "+46",
|
|
1973
|
-
"regex": "^\\+46\\d{7,10}$",
|
|
1974
|
-
"placeholder": "+46 7XXXXXXXX",
|
|
1975
|
-
"example": "+46 701234567",
|
|
1976
|
-
"flag": "🇸🇪"
|
|
1977
|
-
},
|
|
1978
|
-
{
|
|
1979
|
-
"name": "Switzerland",
|
|
1980
|
-
"code": "CH",
|
|
1981
|
-
"dial_code": "+41",
|
|
1982
|
-
"regex": "^\\+41\\d{9}$",
|
|
1983
|
-
"placeholder": "+41 7XXXXXXXX",
|
|
1984
|
-
"example": "+41 781234567",
|
|
1985
|
-
"flag": "🇨🇭"
|
|
1986
|
-
},
|
|
1987
|
-
{
|
|
1988
|
-
"name": "Syrian Arab Republic",
|
|
1989
|
-
"flag": "🇸🇾",
|
|
1990
|
-
"code": "SY",
|
|
1991
|
-
"dial_code": "+963",
|
|
1992
|
-
"regex": "^\\+963[9]\\d{8}$",
|
|
1993
|
-
"placeholder": "+963 9XXXXXXXX",
|
|
1994
|
-
"example": "+963 991234567"
|
|
1995
|
-
},
|
|
1996
|
-
{
|
|
1997
|
-
"name": "Taiwan",
|
|
1998
|
-
"code": "TW",
|
|
1999
|
-
"dial_code": "+886",
|
|
2000
|
-
"regex": "^\\+886\\d{8,9}$",
|
|
2001
|
-
"placeholder": "+886 9XXXXXXXX",
|
|
2002
|
-
"example": "+886 912345678",
|
|
2003
|
-
"flag": "🇹🇼"
|
|
2004
|
-
},
|
|
2005
|
-
{
|
|
2006
|
-
"name": "Tajikistan",
|
|
2007
|
-
"code": "TJ",
|
|
2008
|
-
"dial_code": "+992",
|
|
2009
|
-
"regex": "^\\+992\\d{9}$",
|
|
2010
|
-
"placeholder": "+992 9XXXXXXXX",
|
|
2011
|
-
"example": "+992 917123456",
|
|
2012
|
-
"flag": "🇹🇯"
|
|
2013
|
-
},
|
|
2014
|
-
{
|
|
2015
|
-
"name": "Tanzania, United Republic of Tanzania",
|
|
2016
|
-
"flag": "🇹🇿",
|
|
2017
|
-
"code": "TZ",
|
|
2018
|
-
"dial_code": "+255",
|
|
2019
|
-
"regex": "^\\+255[67]\\d{8}$",
|
|
2020
|
-
"placeholder": "+255 7XXXXXXXX",
|
|
2021
|
-
"example": "+255 712345678"
|
|
2022
|
-
},
|
|
2023
|
-
{
|
|
2024
|
-
"name": "Thailand",
|
|
2025
|
-
"code": "TH",
|
|
2026
|
-
"dial_code": "+66",
|
|
2027
|
-
"regex": "^\\+66\\d{8,9}$",
|
|
2028
|
-
"placeholder": "+66 8XXXXXXXX",
|
|
2029
|
-
"example": "+66 812345678",
|
|
2030
|
-
"flag": "🇹🇭"
|
|
2031
|
-
},
|
|
2032
|
-
{
|
|
2033
|
-
"name": "Timor-Leste",
|
|
2034
|
-
"code": "TL",
|
|
2035
|
-
"dial_code": "+670",
|
|
2036
|
-
"regex": "^\\+670\\d{8}$",
|
|
2037
|
-
"placeholder": "+670 7XXXXXXX",
|
|
2038
|
-
"example": "+670 77123456",
|
|
2039
|
-
"flag": "🇹🇱"
|
|
2040
|
-
},
|
|
2041
|
-
{
|
|
2042
|
-
"name": "Togo",
|
|
2043
|
-
"code": "TG",
|
|
2044
|
-
"dial_code": "+228",
|
|
2045
|
-
"regex": "^\\+228\\d{8}$",
|
|
2046
|
-
"placeholder": "+228 9XXXXXXX",
|
|
2047
|
-
"example": "+228 91234567",
|
|
2048
|
-
"flag": "🇹🇬"
|
|
2049
|
-
},
|
|
2050
|
-
{
|
|
2051
|
-
"name": "Tokelau",
|
|
2052
|
-
"code": "TK",
|
|
2053
|
-
"dial_code": "+690",
|
|
2054
|
-
"regex": "^\\+690\\d{4}$",
|
|
2055
|
-
"placeholder": "+690 XXXX",
|
|
2056
|
-
"example": "+690 1234",
|
|
2057
|
-
"flag": "🇹🇰"
|
|
2058
|
-
},
|
|
2059
|
-
{
|
|
2060
|
-
"name": "Tonga",
|
|
2061
|
-
"code": "TO",
|
|
2062
|
-
"dial_code": "+676",
|
|
2063
|
-
"regex": "^\\+676\\d{5}$",
|
|
2064
|
-
"placeholder": "+676 XXXXX",
|
|
2065
|
-
"example": "+676 71234",
|
|
2066
|
-
"flag": "🇹🇴"
|
|
2067
|
-
},
|
|
2068
|
-
{
|
|
2069
|
-
"name": "Trinidad and Tobago",
|
|
2070
|
-
"code": "TT",
|
|
2071
|
-
"dial_code": "+1868",
|
|
2072
|
-
"regex": "^\\+1868\\d{7}$",
|
|
2073
|
-
"placeholder": "+1868 XXXXXXX",
|
|
2074
|
-
"example": "+1868 2841234",
|
|
2075
|
-
"flag": "🇹🇹"
|
|
2076
|
-
},
|
|
2077
|
-
{
|
|
2078
|
-
"name": "Tunisia",
|
|
2079
|
-
"code": "TN",
|
|
2080
|
-
"dial_code": "+216",
|
|
2081
|
-
"regex": "^\\+216\\d{8}$",
|
|
2082
|
-
"placeholder": "+216 XXXXXXXX",
|
|
2083
|
-
"example": "+216 20123456",
|
|
2084
|
-
"flag": "🇹🇳"
|
|
2085
|
-
},
|
|
2086
|
-
{
|
|
2087
|
-
"name": "Turkey",
|
|
2088
|
-
"code": "TR",
|
|
2089
|
-
"dial_code": "+90",
|
|
2090
|
-
"regex": "^\\+90\\d{10}$",
|
|
2091
|
-
"placeholder": "+90 5XXXXXXXXX",
|
|
2092
|
-
"example": "+90 5312345678",
|
|
2093
|
-
"flag": "🇹🇷"
|
|
2094
|
-
},
|
|
2095
|
-
{
|
|
2096
|
-
"name": "Turkmenistan",
|
|
2097
|
-
"code": "TM",
|
|
2098
|
-
"dial_code": "+993",
|
|
2099
|
-
"regex": "^\\+993\\d{8}$",
|
|
2100
|
-
"placeholder": "+993 6XXXXXXX",
|
|
2101
|
-
"example": "+993 61234567",
|
|
2102
|
-
"flag": "🇹🇲"
|
|
2103
|
-
},
|
|
2104
|
-
{
|
|
2105
|
-
"name": "Turks and Caicos Islands",
|
|
2106
|
-
"code": "TC",
|
|
2107
|
-
"dial_code": "+1649",
|
|
2108
|
-
"regex": "^\\+1649\\d{7}$",
|
|
2109
|
-
"placeholder": "+1649 XXXXXXX",
|
|
2110
|
-
"example": "+1649 2311234",
|
|
2111
|
-
"flag": "🇹🇨"
|
|
2112
|
-
},
|
|
2113
|
-
{
|
|
2114
|
-
"name": "Tuvalu",
|
|
2115
|
-
"code": "TV",
|
|
2116
|
-
"dial_code": "+688",
|
|
2117
|
-
"regex": "^\\+688\\d{5}$",
|
|
2118
|
-
"placeholder": "+688 XXXXX",
|
|
2119
|
-
"example": "+688 20123",
|
|
2120
|
-
"flag": "🇹🇻"
|
|
2121
|
-
},
|
|
2122
|
-
{
|
|
2123
|
-
"name": "Uganda",
|
|
2124
|
-
"code": "UG",
|
|
2125
|
-
"dial_code": "+256",
|
|
2126
|
-
"regex": "^\\+256\\d{9}$",
|
|
2127
|
-
"placeholder": "+256 7XXXXXXXX",
|
|
2128
|
-
"example": "+256 712345678",
|
|
2129
|
-
"flag": "🇺🇬"
|
|
2130
|
-
},
|
|
2131
|
-
{
|
|
2132
|
-
"name": "Ukraine",
|
|
2133
|
-
"code": "UA",
|
|
2134
|
-
"dial_code": "+380",
|
|
2135
|
-
"regex": "^\\+380\\d{9}$",
|
|
2136
|
-
"placeholder": "+380 9XXXXXXXX",
|
|
2137
|
-
"example": "+380 931234567",
|
|
2138
|
-
"flag": "🇺🇦"
|
|
2139
|
-
},
|
|
2140
|
-
{
|
|
2141
|
-
"name": "United Arab Emirates",
|
|
2142
|
-
"code": "AE",
|
|
2143
|
-
"dial_code": "+971",
|
|
2144
|
-
"regex": "^\\+971\\d{9}$",
|
|
2145
|
-
"placeholder": "+971 5XXXXXXXX",
|
|
2146
|
-
"example": "+971 501234567",
|
|
2147
|
-
"flag": "🇦🇪"
|
|
2148
|
-
},
|
|
2149
|
-
{
|
|
2150
|
-
"name": "United Kingdom",
|
|
2151
|
-
"flag": "🇬🇧",
|
|
2152
|
-
"code": "GB",
|
|
2153
|
-
"dial_code": "+44",
|
|
2154
|
-
"regex": "^\\+44[0-9]{10}$",
|
|
2155
|
-
"placeholder": "+44 7123 456 789"
|
|
2156
|
-
},
|
|
2157
|
-
{
|
|
2158
|
-
"name": "United States",
|
|
2159
|
-
"flag": "🇺🇸",
|
|
2160
|
-
"code": "US",
|
|
2161
|
-
"dial_code": "+1",
|
|
2162
|
-
"regex": "^\\+1[0-9]{10}$",
|
|
2163
|
-
"placeholder": "+1 213 123 4567"
|
|
2164
|
-
},
|
|
2165
|
-
{
|
|
2166
|
-
"name": "Uruguay",
|
|
2167
|
-
"code": "UY",
|
|
2168
|
-
"dial_code": "+598",
|
|
2169
|
-
"regex": "^\\+598\\d{8}$",
|
|
2170
|
-
"placeholder": "+598 9XXXXXXX",
|
|
2171
|
-
"example": "+598 91234567",
|
|
2172
|
-
"flag": "🇺🇾"
|
|
2173
|
-
},
|
|
2174
|
-
{
|
|
2175
|
-
"name": "Uzbekistan",
|
|
2176
|
-
"code": "UZ",
|
|
2177
|
-
"dial_code": "+998",
|
|
2178
|
-
"regex": "^\\+998\\d{9}$",
|
|
2179
|
-
"placeholder": "+998 9XXXXXXXX",
|
|
2180
|
-
"example": "+998 901234567",
|
|
2181
|
-
"flag": "🇺🇿"
|
|
2182
|
-
},
|
|
2183
|
-
{
|
|
2184
|
-
"name": "Vanuatu",
|
|
2185
|
-
"code": "VU",
|
|
2186
|
-
"dial_code": "+678",
|
|
2187
|
-
"regex": "^\\+678\\d{5,7}$",
|
|
2188
|
-
"placeholder": "+678 XXXXXX",
|
|
2189
|
-
"example": "+678 591234",
|
|
2190
|
-
"flag": "🇻🇺"
|
|
2191
|
-
},
|
|
2192
|
-
{
|
|
2193
|
-
"name": "Venezuela, Bolivarian Republic of Venezuela",
|
|
2194
|
-
"flag": "🇻🇪",
|
|
2195
|
-
"code": "VE",
|
|
2196
|
-
"dial_code": "+58",
|
|
2197
|
-
"regex": "^\\+58[24]\\d{9}$",
|
|
2198
|
-
"placeholder": "+58 4XXXXXXXXX",
|
|
2199
|
-
"example": "+58 4121234567"
|
|
2200
|
-
},
|
|
2201
|
-
{
|
|
2202
|
-
"name": "Vietnam",
|
|
2203
|
-
"code": "VN",
|
|
2204
|
-
"dial_code": "+84",
|
|
2205
|
-
"regex": "^\\+84\\d{9,10}$",
|
|
2206
|
-
"placeholder": "+84 9XXXXXXXX",
|
|
2207
|
-
"example": "+84 912345678",
|
|
2208
|
-
"flag": "🇻🇳"
|
|
2209
|
-
},
|
|
2210
|
-
{
|
|
2211
|
-
"name": "Virgin Islands, British",
|
|
2212
|
-
"flag": "🇻🇬",
|
|
2213
|
-
"code": "VG",
|
|
2214
|
-
"dial_code": "+1284",
|
|
2215
|
-
"regex": "^\\+1284\\d{7}$",
|
|
2216
|
-
"placeholder": "+1284 XXXXXXX",
|
|
2217
|
-
"example": "+1284 3001234"
|
|
2218
|
-
},
|
|
2219
|
-
{
|
|
2220
|
-
"name": "Virgin Islands, U.S.",
|
|
2221
|
-
"flag": "🇻🇮",
|
|
2222
|
-
"code": "VI",
|
|
2223
|
-
"dial_code": "+1340",
|
|
2224
|
-
"regex": "^\\+1340\\d{7}$",
|
|
2225
|
-
"placeholder": "+1340 XXXXXXX",
|
|
2226
|
-
"example": "+1340 7741234"
|
|
2227
|
-
},
|
|
2228
|
-
{
|
|
2229
|
-
"name": "Wallis and Futuna",
|
|
2230
|
-
"code": "WF",
|
|
2231
|
-
"dial_code": "+681",
|
|
2232
|
-
"regex": "^\\+681\\d{6}$",
|
|
2233
|
-
"placeholder": "+681 XXXXXX",
|
|
2234
|
-
"example": "+681 501234",
|
|
2235
|
-
"flag": "🇼🇫"
|
|
2236
|
-
},
|
|
2237
|
-
{
|
|
2238
|
-
"name": "Yemen",
|
|
2239
|
-
"code": "YE",
|
|
2240
|
-
"dial_code": "+967",
|
|
2241
|
-
"regex": "^\\+967\\d{8,9}$",
|
|
2242
|
-
"placeholder": "+967 7XXXXXXXX",
|
|
2243
|
-
"example": "+967 712345678",
|
|
2244
|
-
"flag": "🇾🇪"
|
|
2245
|
-
},
|
|
2246
|
-
{
|
|
2247
|
-
"name": "Zambia",
|
|
2248
|
-
"code": "ZM",
|
|
2249
|
-
"dial_code": "+260",
|
|
2250
|
-
"regex": "^\\+260\\d{9}$",
|
|
2251
|
-
"placeholder": "+260 9XXXXXXXX",
|
|
2252
|
-
"example": "+260 971234567",
|
|
2253
|
-
"flag": "🇿🇲"
|
|
2254
|
-
},
|
|
2255
|
-
{
|
|
2256
|
-
"name": "Zimbabwe",
|
|
2257
|
-
"flag": "🇿🇼",
|
|
2258
|
-
"code": "ZW",
|
|
2259
|
-
"dial_code": "+263",
|
|
2260
|
-
"regex": "^\\+263[0-9]{9}$",
|
|
2261
|
-
"placeholder": "+263 71 234 5678"
|
|
2262
|
-
}
|
|
2263
|
-
];
|
|
2264
|
-
filteredCountries;
|
|
2265
|
-
selectedCountry;
|
|
2266
|
-
showCountryDropdown = false;
|
|
2267
|
-
countrySearch = '';
|
|
2268
|
-
subscription;
|
|
2269
|
-
// Internal state
|
|
2270
|
-
viewEdit = false;
|
|
2271
|
-
originalValue; // To store the original value when entering view edit mode
|
|
2272
|
-
isSaveHovered = false;
|
|
2273
|
-
isDiscardHovered = false;
|
|
2274
|
-
lastClickTime = 0;
|
|
2275
|
-
cachedInputList = [];
|
|
2276
|
-
constructor(renderer, elRef, elementRef, changeService, dataService) {
|
|
2277
|
-
this.renderer = renderer;
|
|
2278
|
-
this.elRef = elRef;
|
|
2279
|
-
this.elementRef = elementRef;
|
|
2280
|
-
this.changeService = changeService;
|
|
2281
|
-
this.dataService = dataService;
|
|
2282
|
-
}
|
|
2283
|
-
hasEmittedRef = false;
|
|
2284
|
-
ngAfterViewInit() {
|
|
2285
|
-
if (this.type === 'location' &&
|
|
2286
|
-
this.inputRef &&
|
|
2287
|
-
!this.hasEmittedRef) {
|
|
2288
|
-
this.nativeInputRef.emit(this.inputRef);
|
|
2289
|
-
this.hasEmittedRef = true;
|
|
2290
|
-
}
|
|
2291
|
-
this.renderer.listen('document', 'click', (event) => {
|
|
2292
|
-
if (!this.elRef.nativeElement.contains(event.target)) {
|
|
2293
|
-
this.showCountryDropdown = false;
|
|
2294
|
-
}
|
|
2295
|
-
});
|
|
2296
|
-
}
|
|
2297
|
-
ngOnChanges(changes) {
|
|
2298
|
-
if (changes['mode']) {
|
|
2299
|
-
this.viewEdit = false;
|
|
2300
|
-
this.updateControlState();
|
|
2301
|
-
}
|
|
2302
|
-
if (changes['value']) {
|
|
2303
|
-
this.writeValue(changes['value'].currentValue);
|
|
2304
|
-
}
|
|
2305
|
-
if (this.confPass && changes['confPassVal'] && !changes['confPassVal'].firstChange) {
|
|
2306
|
-
this.value = ''; // Reset input value
|
|
2307
|
-
}
|
|
2308
|
-
if (changes['type']) {
|
|
2309
|
-
this.setupValidators();
|
|
2310
|
-
}
|
|
2311
|
-
if (changes['type'] && changes['type'].currentValue === 'location') {
|
|
2312
|
-
this.hasEmittedRef = false;
|
|
2313
|
-
}
|
|
2314
|
-
this.updateInputList();
|
|
2315
|
-
}
|
|
2316
|
-
ngOnInit() {
|
|
2317
|
-
// SKS28FEB25 default country set
|
|
2318
|
-
this.selectedCountry = this.countries.find(c => c.code === 'IN') || this.countries[0];
|
|
2319
|
-
this.filteredCountries = [...this.countries];
|
|
2320
|
-
const validators = [];
|
|
2321
|
-
if (this.required)
|
|
2322
|
-
validators.push(Validators.required);
|
|
2323
|
-
if (this.minLength)
|
|
2324
|
-
validators.push(Validators.minLength(this.minLength));
|
|
2325
|
-
if (this.pattern)
|
|
2326
|
-
validators.push(Validators.pattern(this.pattern));
|
|
2327
|
-
if (this.maxLength)
|
|
2328
|
-
validators.push(Validators.maxLength(this.maxLength));
|
|
2329
|
-
if (this.confPass)
|
|
2330
|
-
validators.push(this.passwordMatchValidator());
|
|
2331
|
-
this.control.setValidators(validators);
|
|
2332
|
-
if (this.type === 'otp') {
|
|
2333
|
-
this.inputs.controls.forEach((control) => {
|
|
2334
|
-
control.setValidators(validators);
|
|
2335
|
-
});
|
|
2336
|
-
}
|
|
2337
|
-
else if (this.type === 'tel') {
|
|
2338
|
-
this.control.setValidators([
|
|
2339
|
-
Validators.pattern(this.removeDialCodeFromRegex(this.selectedCountry.regex, this.selectedCountry.dial_code))
|
|
2340
|
-
]);
|
|
2341
|
-
}
|
|
2342
|
-
//AP-01JUL25 - Disable the field unless in 'edit' mode and question is not marked as read-only
|
|
2343
|
-
this.setDisabledState(this.mode === 'edit' ? (this.question?.isReadOnly === true || this.question?.isReadOnly === 'true') : true);
|
|
2344
|
-
if (typeof this.question?.subText === 'string') {
|
|
2345
|
-
if (this.question.subText.trim() === '') {
|
|
2346
|
-
this.question.subText = null;
|
|
2347
|
-
}
|
|
2348
|
-
else {
|
|
2349
|
-
try {
|
|
2350
|
-
this.question.subText = JSON.parse(this.question.subText);
|
|
2351
|
-
}
|
|
2352
|
-
catch (e) {
|
|
2353
|
-
this.question.subText = null; // Or handle differently
|
|
2354
|
-
}
|
|
2355
|
-
}
|
|
2356
|
-
}
|
|
2357
|
-
if (this.question?.subText != undefined) {
|
|
2358
|
-
// this.disabled = true;
|
|
2359
|
-
let dependencyObj = this.question?.subText;
|
|
2360
|
-
if (dependencyObj.disabled && dependencyObj.disabled == "false") {
|
|
2361
|
-
// this.disabled = false;
|
|
2362
|
-
}
|
|
2363
|
-
else {
|
|
2364
|
-
// this.disabled = true;
|
|
2365
|
-
}
|
|
2366
|
-
// Subscribe for the changes
|
|
2367
|
-
this.subscription = this.changeService.changeAnnounced$.subscribe((changeValue) => {
|
|
2368
|
-
if (changeValue != undefined) {
|
|
2369
|
-
if (changeValue.fromQuestionId && changeValue.valueObj !== undefined && (Array.isArray(dependencyObj.sourceQuestionId) ? dependencyObj.sourceQuestionId.includes(changeValue.fromQuestionId) : changeValue.fromQuestionId === dependencyObj.sourceQuestionId)) {
|
|
2370
|
-
// VD 20Aug24 handling the multiple object
|
|
2371
|
-
if (dependencyObj.valueField) {
|
|
2372
|
-
this.value = this.dataService.getValue(changeValue.valueObj, dependencyObj.valueField);
|
|
2373
|
-
let change = {};
|
|
2374
|
-
change['fromQuestionId'] = this.question.id;
|
|
2375
|
-
change['valueObj'] = this.value;
|
|
2376
|
-
change['referenceField'] = this.question.referenceField;
|
|
2377
|
-
this.inputValue.emit({ question: this.question, value: change });
|
|
2378
|
-
}
|
|
2379
|
-
}
|
|
2380
|
-
this.changeService.confirmChange(changeValue.fromQuestionId);
|
|
2381
|
-
}
|
|
2382
|
-
});
|
|
2383
|
-
}
|
|
2384
|
-
document.addEventListener('quill-save', this.saveChanges.bind(this));
|
|
2385
|
-
document.addEventListener('quill-discard', this.discardChanges.bind(this));
|
|
2386
|
-
this.updateInputList();
|
|
2387
|
-
}
|
|
2388
|
-
ngOnDestroy() {
|
|
2389
|
-
document.removeEventListener('quill-save', this.saveChanges.bind(this));
|
|
2390
|
-
document.removeEventListener('quill-discard', this.discardChanges.bind(this));
|
|
2391
|
-
}
|
|
2392
|
-
updateInputList() {
|
|
2393
|
-
this.cachedInputList = this.type !== 'otp' ? this.inputs.controls.slice(0, 1) : this.inputs.controls;
|
|
2394
|
-
}
|
|
2395
|
-
// SKS14JUN25 Dynamically load Quill editor toolbar
|
|
2396
|
-
getQuillModules(questionId) {
|
|
2397
|
-
if (this.viewEdit) {
|
|
2398
|
-
return {
|
|
2399
|
-
imageResizor: {},
|
|
2400
|
-
toolbar: {
|
|
2401
|
-
container: [
|
|
2402
|
-
[{ 'font': fontFamilyArr }], //RS 17JAN2025 Added font family dropdown
|
|
2403
|
-
['bold', 'italic', 'underline', 'strike'],
|
|
2404
|
-
['blockquote', 'code-block'],
|
|
2405
|
-
[{ header: [1, 2, 3, 4, 5, 6, false] }],
|
|
2406
|
-
[{ list: 'ordered' }, { list: 'bullet' }],
|
|
2407
|
-
[{ color: [] }, { background: [] }],
|
|
2408
|
-
[{ align: [] }],
|
|
2409
|
-
['link', 'image', 'video'],
|
|
2410
|
-
['formula'],
|
|
2411
|
-
['clean'],
|
|
2412
|
-
['save', 'discard']
|
|
2413
|
-
],
|
|
2414
|
-
handlers: {
|
|
2415
|
-
save: function () {
|
|
2416
|
-
const event = new CustomEvent('quill-save', {
|
|
2417
|
-
detail: { id: questionId } // You inject the correct ID directly here
|
|
2418
|
-
});
|
|
2419
|
-
document.dispatchEvent(event);
|
|
2420
|
-
},
|
|
2421
|
-
discard: function () {
|
|
2422
|
-
const event = new CustomEvent('quill-discard', {
|
|
2423
|
-
detail: { id: questionId }
|
|
2424
|
-
});
|
|
2425
|
-
document.dispatchEvent(event);
|
|
2426
|
-
}
|
|
2427
|
-
}
|
|
2428
|
-
},
|
|
2429
|
-
mention: {
|
|
2430
|
-
allowedChars: /^[A-Za-z\sÅÄÖåäö]*$/,
|
|
2431
|
-
mentionDenotationChars: ['@', '#'],
|
|
2432
|
-
source: function (searchTerm, renderList) {
|
|
2433
|
-
const values = [
|
|
2434
|
-
{ id: 1, value: 'User 1' },
|
|
2435
|
-
{ id: 2, value: 'User 2' },
|
|
2436
|
-
];
|
|
2437
|
-
if (searchTerm.length === 0) {
|
|
2438
|
-
renderList(values, searchTerm);
|
|
2439
|
-
}
|
|
2440
|
-
else {
|
|
2441
|
-
const matches = values.filter((item) => item.value.toLowerCase().includes(searchTerm.toLowerCase()));
|
|
2442
|
-
renderList(matches, searchTerm);
|
|
2443
|
-
}
|
|
2444
|
-
},
|
|
2445
|
-
},
|
|
2446
|
-
};
|
|
2447
|
-
}
|
|
2448
|
-
else {
|
|
2449
|
-
return {
|
|
2450
|
-
imageResizor: {},
|
|
2451
|
-
toolbar: {
|
|
2452
|
-
container: [
|
|
2453
|
-
[{ 'font': fontFamilyArr }], //RS 17JAN2025 Added font family dropdown
|
|
2454
|
-
['bold', 'italic', 'underline', 'strike'],
|
|
2455
|
-
['blockquote', 'code-block'],
|
|
2456
|
-
[{ header: [1, 2, 3, 4, 5, 6, false] }],
|
|
2457
|
-
[{ list: 'ordered' }, { list: 'bullet' }],
|
|
2458
|
-
[{ color: [] }, { background: [] }],
|
|
2459
|
-
[{ align: [] }],
|
|
2460
|
-
['link', 'image', 'video'],
|
|
2461
|
-
['formula'],
|
|
2462
|
-
['clean'],
|
|
2463
|
-
],
|
|
2464
|
-
},
|
|
2465
|
-
mention: {
|
|
2466
|
-
allowedChars: /^[A-Za-z\sÅÄÖåäö]*$/,
|
|
2467
|
-
mentionDenotationChars: ['@', '#'],
|
|
2468
|
-
source: function (searchTerm, renderList) {
|
|
2469
|
-
const values = [
|
|
2470
|
-
{ id: 1, value: 'User 1' },
|
|
2471
|
-
{ id: 2, value: 'User 2' },
|
|
2472
|
-
];
|
|
2473
|
-
if (searchTerm.length === 0) {
|
|
2474
|
-
renderList(values, searchTerm);
|
|
2475
|
-
}
|
|
2476
|
-
else {
|
|
2477
|
-
const matches = values.filter((item) => item.value.toLowerCase().includes(searchTerm.toLowerCase()));
|
|
2478
|
-
renderList(matches, searchTerm);
|
|
2479
|
-
}
|
|
2480
|
-
},
|
|
2481
|
-
},
|
|
2482
|
-
};
|
|
2483
|
-
}
|
|
2484
|
-
}
|
|
2485
|
-
setupValidators() {
|
|
2486
|
-
const validators = [];
|
|
2487
|
-
if (this.required)
|
|
2488
|
-
validators.push(Validators.required);
|
|
2489
|
-
if (this.minLength)
|
|
2490
|
-
validators.push(Validators.minLength(this.minLength));
|
|
2491
|
-
if (this.maxLength)
|
|
2492
|
-
validators.push(Validators.maxLength(this.maxLength));
|
|
2493
|
-
if (this.pattern)
|
|
2494
|
-
validators.push(Validators.pattern(this.pattern));
|
|
2495
|
-
this.control.setValidators(validators);
|
|
2496
|
-
}
|
|
2497
|
-
// SKS28FEB25 Country Dropdown close
|
|
2498
|
-
closeDropdown(event) {
|
|
2499
|
-
const now = Date.now();
|
|
2500
|
-
if (now - this.lastClickTime < 100)
|
|
2501
|
-
return; // throttle repeated calls
|
|
2502
|
-
this.lastClickTime = now;
|
|
2503
|
-
if (!this.elementRef.nativeElement.contains(event.target)) {
|
|
2504
|
-
this.showCountryDropdown = false;
|
|
2505
|
-
}
|
|
2506
|
-
}
|
|
2507
|
-
onChange = () => { };
|
|
2508
|
-
onTouched = () => { };
|
|
2509
|
-
registerOnTouched(fn) {
|
|
2510
|
-
this.onTouched = fn;
|
|
2511
|
-
}
|
|
2512
|
-
onInputChange(event) {
|
|
2513
|
-
if (this.type === 'datetime' || this.type === 'date') {
|
|
2514
|
-
this.value = event.value;
|
|
2515
|
-
}
|
|
2516
|
-
else if (this.type === 'richtext') {
|
|
2517
|
-
this.value = event;
|
|
2518
|
-
}
|
|
2519
|
-
else if (this.type === 'checkbox') { // SKS23JUN25 handel checkbox event
|
|
2520
|
-
const isChecked = event.target.checked;
|
|
2521
|
-
this.value = isChecked;
|
|
2522
|
-
}
|
|
2523
|
-
else {
|
|
2524
|
-
const inputElement = event.target;
|
|
2525
|
-
this.rawInputVal = inputElement.value;
|
|
2526
|
-
if (this.type === 'tel') {
|
|
2527
|
-
this.value = this.selectedCountry.dial_code + " " + inputElement.value;
|
|
2528
|
-
}
|
|
2529
|
-
else {
|
|
2530
|
-
this.value = inputElement.value;
|
|
2531
|
-
}
|
|
2532
|
-
}
|
|
2533
|
-
this.onChange(this.value);
|
|
2534
|
-
this.onTouched();
|
|
2535
|
-
// SKS11JUN25 Only emit the value if not in view edit mode
|
|
2536
|
-
if (!this.viewEdit || this.type === 'list') {
|
|
2537
|
-
let change = {};
|
|
2538
|
-
change['fromQuestionId'] = this.question?.id;
|
|
2539
|
-
change['valueObj'] = this.value;
|
|
2540
|
-
change['referenceField'] = this.question?.referenceField;
|
|
2541
|
-
this.inputValue.emit({ question: this.question, value: change });
|
|
2542
|
-
}
|
|
2543
|
-
}
|
|
2544
|
-
togglePasswordVisibility() {
|
|
2545
|
-
this.isPasswordVisible = !this.isPasswordVisible;
|
|
2546
|
-
}
|
|
2547
|
-
passwordMatchValidator() {
|
|
2548
|
-
return (control) => {
|
|
2549
|
-
const confirmPassword = control.value; // Get confirm password field value
|
|
2550
|
-
if (this.confPassVal === '') {
|
|
2551
|
-
return { passwordMismatch: true };
|
|
2552
|
-
}
|
|
2553
|
-
return this.confPassVal === confirmPassword ? null : { passwordMismatch: true };
|
|
2554
|
-
};
|
|
2555
|
-
}
|
|
2556
|
-
getErrorMessage() {
|
|
2557
|
-
if (this.control.hasError('required'))
|
|
2558
|
-
return this.errorMessages['required'] || 'This field is required';
|
|
2559
|
-
if (this.control.hasError('minlength'))
|
|
2560
|
-
return this.errorMessages['minlength'] || `Minimum ${this.minLength} characters required`;
|
|
2561
|
-
if (this.control.hasError('pattern'))
|
|
2562
|
-
return this.errorMessages['pattern'] || (this.type === 'tel' ? `Invalid ${this.selectedCountry.name} phone number format` : 'Invalid format');
|
|
2563
|
-
if (this.control.hasError('maxlength'))
|
|
2564
|
-
return this.errorMessages['maxlength'] || `Maximum ${this.maxLength} characters allowed`;
|
|
2565
|
-
if (this.control.hasError('passwordMismatch'))
|
|
2566
|
-
return this.errorMessages['confPass'] || `Passwords do not match`;
|
|
2567
|
-
return '';
|
|
2568
|
-
}
|
|
2569
|
-
writeValue(value) {
|
|
2570
|
-
if (this.type === 'otp') {
|
|
2571
|
-
const values = value.split('').slice(0, this.#size);
|
|
2572
|
-
values.forEach((val, index) => this.inputs.controls[index].setValue(val));
|
|
2573
|
-
}
|
|
2574
|
-
else if (this.type === 'datetime' || this.type === 'date') {
|
|
2575
|
-
if (value instanceof Date) {
|
|
2576
|
-
this.value = value;
|
|
2577
|
-
}
|
|
2578
|
-
else if (value && typeof value !== 'string') {
|
|
2579
|
-
this.value = new Date(value);
|
|
2580
|
-
}
|
|
2581
|
-
this.control.setValue(this.value);
|
|
2582
|
-
}
|
|
2583
|
-
else {
|
|
2584
|
-
this.control.setValue(value);
|
|
2585
|
-
this.value = value;
|
|
2586
|
-
}
|
|
2587
|
-
}
|
|
2588
|
-
registerOnChange(fn) {
|
|
2589
|
-
this.onChange = fn;
|
|
2590
|
-
if (this.type === 'otp') {
|
|
2591
|
-
this.inputs.valueChanges.subscribe(() => {
|
|
2592
|
-
const value = this.inputs.value.join('');
|
|
2593
|
-
this.onChange(value);
|
|
2594
|
-
});
|
|
2595
|
-
}
|
|
2596
|
-
else {
|
|
2597
|
-
this.control.valueChanges.subscribe((value) => {
|
|
2598
|
-
this.onChange(value);
|
|
2599
|
-
});
|
|
2600
|
-
}
|
|
2601
|
-
}
|
|
2602
|
-
setDisabledState(isDisabled) {
|
|
2603
|
-
if (this.type === 'otp') {
|
|
2604
|
-
if (isDisabled) {
|
|
2605
|
-
this.inputs.disable();
|
|
2606
|
-
}
|
|
2607
|
-
else {
|
|
2608
|
-
this.inputs.enable();
|
|
2609
|
-
}
|
|
2610
|
-
}
|
|
2611
|
-
else {
|
|
2612
|
-
if (isDisabled) {
|
|
2613
|
-
this.control.disable();
|
|
2614
|
-
}
|
|
2615
|
-
else {
|
|
2616
|
-
this.control.enable();
|
|
2617
|
-
}
|
|
2618
|
-
}
|
|
2619
|
-
}
|
|
2620
|
-
updateControlState() {
|
|
2621
|
-
//AP-01JUL25 - Determine if the field should be disabled based on mode and question's read-only status
|
|
2622
|
-
const shouldDisable = this.mode === 'edit' ? (this.question?.isReadOnly === true || this.question?.isReadOnly === 'true') : true;
|
|
2623
|
-
this.setDisabledState(shouldDisable);
|
|
2624
|
-
}
|
|
2625
|
-
validate(control) {
|
|
2626
|
-
if (this.type === 'otp') {
|
|
2627
|
-
if (!control.value || control.value.length < this.#size) {
|
|
2628
|
-
return { otpInput: 'Value is incorrect' };
|
|
2629
|
-
}
|
|
2630
|
-
}
|
|
2631
|
-
else {
|
|
2632
|
-
if (this.control.invalid) {
|
|
2633
|
-
return this.control.errors;
|
|
2634
|
-
}
|
|
2635
|
-
}
|
|
2636
|
-
return null;
|
|
2637
|
-
}
|
|
2638
|
-
handleKeyDown(e, idx) {
|
|
2639
|
-
if (e.key === 'Backspace' || e.key === 'Delete') {
|
|
2640
|
-
if (idx > 0) {
|
|
2641
|
-
this.#scheduledFocus = idx - 1;
|
|
2642
|
-
}
|
|
2643
|
-
else {
|
|
2644
|
-
this.#scheduledFocus = null;
|
|
2645
|
-
}
|
|
2646
|
-
}
|
|
2647
|
-
}
|
|
2648
|
-
// Due to iOS/iPadOS Safari bug/special behavior we are forced to
|
|
2649
|
-
// schedule focus transition during keypress/keydown event and only
|
|
2650
|
-
// after input event happened - execute the transition
|
|
2651
|
-
// otherwise inputs don't get their values filled
|
|
2652
|
-
handleInput() {
|
|
2653
|
-
this.#updateWiredValue();
|
|
2654
|
-
if (this.#scheduledFocus !== null) {
|
|
2655
|
-
this.#focusInput(this.#scheduledFocus);
|
|
2656
|
-
this.#scheduledFocus = null; // Reset to null after focusing
|
|
2657
|
-
}
|
|
2658
|
-
}
|
|
2659
|
-
handleKeyPress(e, idx) {
|
|
2660
|
-
const isDigit = /\d/.test(e.key);
|
|
2661
|
-
if (e.key === 'v' && e.metaKey) {
|
|
2662
|
-
return true;
|
|
2663
|
-
}
|
|
2664
|
-
if (isDigit && idx + 1 < this.#size) {
|
|
2665
|
-
this.#scheduledFocus = idx + 1;
|
|
2666
|
-
}
|
|
2667
|
-
else {
|
|
2668
|
-
this.#scheduledFocus = null; // Ensure it's null if not moving focus
|
|
2669
|
-
}
|
|
2670
|
-
if (isDigit && this.inputs.controls[idx].value) {
|
|
2671
|
-
this.inputs.controls[idx].setValue('');
|
|
2672
|
-
}
|
|
2673
|
-
return isDigit;
|
|
2674
|
-
}
|
|
2675
|
-
handlePaste(e, idx) {
|
|
2676
|
-
e.preventDefault();
|
|
2677
|
-
if (idx !== 0) {
|
|
2678
|
-
// If the target input is not the first one - ignore
|
|
2679
|
-
return;
|
|
2680
|
-
}
|
|
2681
|
-
const pasteData = e.clipboardData?.getData('text');
|
|
2682
|
-
const regex = new RegExp(`\\d{${this.#size}}`);
|
|
2683
|
-
if (!pasteData || !regex.test(pasteData)) {
|
|
2684
|
-
// If there is nothing to be pasted or the pasted data does not
|
|
2685
|
-
// comply with the required format - ignore the event
|
|
2686
|
-
return;
|
|
2687
|
-
}
|
|
2688
|
-
for (let i = 0; i < pasteData.length; i++) {
|
|
2689
|
-
this.inputs.controls[i].setValue(pasteData[i]);
|
|
2690
|
-
}
|
|
2691
|
-
this.#focusInput(this.inputEls.length - 1);
|
|
2692
|
-
this.#updateWiredValue();
|
|
2693
|
-
this.onTouched();
|
|
2694
|
-
}
|
|
2695
|
-
handleFocus(e) {
|
|
2696
|
-
// Select previously entered value to replace with a new input
|
|
2697
|
-
e.target.select();
|
|
2698
|
-
}
|
|
2699
|
-
#focusInput(idx) {
|
|
2700
|
-
// In order not to interfere with the input we setTimeout
|
|
2701
|
-
// before advancing the focus
|
|
2702
|
-
setTimeout(() => this.inputEls.get(idx)?.nativeElement.focus());
|
|
2703
|
-
}
|
|
2704
|
-
#updateWiredValue() {
|
|
2705
|
-
// We want to expose the value as a plain string
|
|
2706
|
-
//
|
|
2707
|
-
// In order not to interfere with the input we setTimeout
|
|
2708
|
-
// before advancing the focus
|
|
2709
|
-
setTimeout(() => this.onChange?.(this.inputs.value.join('')));
|
|
2710
|
-
}
|
|
2711
|
-
// SKS28FEB25 toggle Country Dropdown
|
|
2712
|
-
toggleCountryDropdown() {
|
|
2713
|
-
this.showCountryDropdown = !this.showCountryDropdown;
|
|
2714
|
-
}
|
|
2715
|
-
// SKS28FEB25 Country Dropdown search filter
|
|
2716
|
-
filterCountries(event) {
|
|
2717
|
-
const inputElement = event.target;
|
|
2718
|
-
this.countrySearch = inputElement.value;
|
|
2719
|
-
this.filteredCountries = this.countries.filter(country => country.name.toLowerCase().includes(this.countrySearch.toLowerCase()) ||
|
|
2720
|
-
country.dial_code.includes(this.countrySearch));
|
|
2721
|
-
}
|
|
2722
|
-
// SKS28FEB25 Country Dropdown select function
|
|
2723
|
-
selectCountry(country) {
|
|
2724
|
-
this.selectedCountry = country;
|
|
2725
|
-
this.showCountryDropdown = false;
|
|
2726
|
-
this.control.setValidators([
|
|
2727
|
-
Validators.required,
|
|
2728
|
-
Validators.pattern(this.removeDialCodeFromRegex(this.selectedCountry.regex, this.selectedCountry.dial_code))
|
|
2729
|
-
]);
|
|
2730
|
-
// SKS28FEB25 Update the control's value with the new dial code
|
|
2731
|
-
this.control.setValue(this.rawInputVal);
|
|
2732
|
-
// SKS28FEB25 Immediately update validity status
|
|
2733
|
-
this.control.updateValueAndValidity();
|
|
2734
|
-
// SKS28FEB25 Trigger change detection if needed
|
|
2735
|
-
this.control.markAsTouched();
|
|
2736
|
-
this.value = this.selectedCountry.dial_code + " " + this.rawInputVal;
|
|
2737
|
-
this.onChange(this.value);
|
|
2738
|
-
}
|
|
2739
|
-
// SKS28FEB25 remove DialCode From Regex
|
|
2740
|
-
removeDialCodeFromRegex(originalRegex, dialCode) {
|
|
2741
|
-
const escapedDialCode = dialCode.replace(/\+/g, "\\+");
|
|
2742
|
-
return originalRegex.replace(`^${escapedDialCode}`, '^');
|
|
2743
|
-
}
|
|
2744
|
-
// SKS28FEB25 remove DialCode From Regex for show in input
|
|
2745
|
-
removeDialCode(placeholder) {
|
|
2746
|
-
return placeholder.replace(/^\+\d+\s*/, '');
|
|
2747
|
-
}
|
|
2748
|
-
blurEmit() {
|
|
2749
|
-
this.onBlur.emit(this.value);
|
|
2750
|
-
}
|
|
2751
|
-
focusinEmit(event) {
|
|
2752
|
-
this.onFocus.emit(event);
|
|
2753
|
-
}
|
|
2754
|
-
toggle(event) {
|
|
2755
|
-
this.toggleEmit.emit(event);
|
|
2756
|
-
}
|
|
2757
|
-
onEditorFocusOut() {
|
|
2758
|
-
const currentValue = this.value || '';
|
|
2759
|
-
this.valueChange.emit(currentValue);
|
|
2760
|
-
}
|
|
2761
|
-
viewEditClick(ques) {
|
|
2762
|
-
this.originalValue = this.value; // Store the original value
|
|
2763
|
-
this.viewEdit = true; // Enter view edit mode
|
|
2764
|
-
this.mode = 'edit';
|
|
2765
|
-
this.updateControlState(); // Update control state
|
|
2766
|
-
}
|
|
2767
|
-
saveChanges = (event) => {
|
|
2768
|
-
// SKS14JUN25 Emit save/discard event only if the current question was changed
|
|
2769
|
-
if (event)
|
|
2770
|
-
if (event.detail?.id !== this.question?.id)
|
|
2771
|
-
return;
|
|
2772
|
-
let ques = this.question;
|
|
2773
|
-
ques['singleFieldChange'] = true;
|
|
2774
|
-
let change;
|
|
2775
|
-
change['fromQuestionId'] = this.question?.id;
|
|
2776
|
-
change['valueObj'] = this.value;
|
|
2777
|
-
change['referenceField'] = this.question?.referenceField;
|
|
2778
|
-
this.inputValue.emit({ question: ques, value: change }); // Emit the updated value
|
|
2779
|
-
this.viewEdit = false; // Exit view edit mode
|
|
2780
|
-
this.mode = 'view'; // Switch back to view mode
|
|
2781
|
-
this.updateControlState(); // Update control state
|
|
2782
|
-
};
|
|
2783
|
-
discardChanges = (event) => {
|
|
2784
|
-
// SKS14JUN25 Emit save/discard event only if the current question was changed
|
|
2785
|
-
if (event)
|
|
2786
|
-
if (event.detail?.id !== this.question?.id)
|
|
2787
|
-
return;
|
|
2788
|
-
this.writeValue(this.originalValue); // Revert to original value
|
|
2789
|
-
this.viewEdit = false; // Exit view edit mode
|
|
2790
|
-
this.mode = 'view'; // Switch back to view mode
|
|
2791
|
-
this.updateControlState(); // Update control state
|
|
2792
|
-
};
|
|
2793
|
-
openDatePicker(type) {
|
|
2794
|
-
if (type === 'datetime') {
|
|
2795
|
-
this.dtPicker.open();
|
|
2796
|
-
}
|
|
2797
|
-
else if (type === 'date') {
|
|
2798
|
-
this.dPicker.open();
|
|
2799
|
-
}
|
|
2800
|
-
}
|
|
2801
|
-
removeValue() {
|
|
2802
|
-
this.removeValueEmit.emit();
|
|
2803
|
-
}
|
|
2804
|
-
onClickHyperlink(event) {
|
|
2805
|
-
if (this.hyperLink) {
|
|
2806
|
-
this.hyperlinkEmit.emit(event);
|
|
2807
|
-
}
|
|
2808
|
-
}
|
|
2809
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NxtInput, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ElementRef }, { token: i1.ChangeService }, { token: i2.DataService }], target: i0.ɵɵFactoryTarget.Component });
|
|
2810
|
-
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", from: "from", hyperLink: "hyperLink", size: "size" }, outputs: { valueChange: "valueChange", inputValue: "inputValue", onBlur: "onBlur", onFocus: "onFocus", toggleEmit: "toggleEmit", nativeInputRef: "nativeInputRef", removeValueEmit: "removeValueEmit", hyperlinkEmit: "hyperlinkEmit" }, host: { listeners: { "document:click": "closeDropdown($event)" } }, providers: [
|
|
2811
|
-
{
|
|
2812
|
-
provide: NG_VALUE_ACCESSOR,
|
|
2813
|
-
useExisting: forwardRef(() => NxtInput),
|
|
2814
|
-
multi: true
|
|
2815
|
-
},
|
|
2816
|
-
{
|
|
2817
|
-
provide: NG_VALIDATORS,
|
|
2818
|
-
useExisting: forwardRef(() => NxtInput),
|
|
2819
|
-
multi: true,
|
|
2820
|
-
},
|
|
2821
|
-
], viewQueries: [{ propertyName: "dtPicker", first: true, predicate: ["dt"], descendants: true }, { propertyName: "dPicker", first: true, predicate: ["dt2"], descendants: true }, { 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=\"label && type != 'checkbox' && showLabel\" [ngStyle]=\"{\n 'padding-top': type === 'label' ? '10px' : '',\n 'padding-bottom': type === 'label' ? '10px' : ''\n }\" [style.font-weight]=\"labelWeight || type === 'label' ? 'bold' : 'normal'\" [style.font-size]=\"labelSize || type === 'label' ? '16px' : '14px'\"\n style=\"display: flex; gap: 5px;\"> {{ 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' ? from === 'nxtTable' ? '' : inputBgColor : ''\"\n [class.invalid]=\"control.invalid && control.touched\"\n [style.border-radius]=\"mode !== 'edit' && from === 'nxtTable' ? 'none': ''\"\n [style.padding-left]=\"mode !== 'edit' && from === 'nxtTable' ? '0px' : ''\"\n [style.padding-right]=\"mode !== 'edit' && from === 'nxtTable' ? '0px' : ''\"\n [style.margin-top]=\"showLabel && label ? '' : from === 'nxtTable' || from === 'normalDropDown' ? '' : '21px !important'\"\n [style.border]=\"mode === 'edit' ? from === 'nxtTable' ? '1px solid #d2d2d2' : inputBorder === 'none' ? ('1px solid ' + inputBgColor) : inputBorder : 'none'\"\n style=\"position: relative; width: 100%;\">\n <img *ngIf=\"inputIconLeftSrc && mode === 'edit'\" [src]=\"inputIconLeftSrc\" alt=\"icon\" class=\"icon left-icon\"\n [style.height]=\"svgHeight\" [style.width]=\"svgWidth\" />\n <div *ngIf=\"mode === 'edit' && type === 'list'\">\n <!-- Inline search icon SVG -->\n <svg width=\"18\" height=\"18\" fill=\"none\" stroke=\"#434555\" stroke-opacity=\"0.65\" stroke-width=\"1.5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 18 18\">\n <circle cx=\"8.25\" cy=\"8.25\" r=\"5.25\" />\n <path d=\"M15 15L12.75 12.75\" stroke-linecap=\"round\" />\n </svg>\n </div>\n <!-- SKS28FEB25 mobile number input -->\n <div *ngIf=\"type === 'tel'\" class=\"phone-input-container\">\n <div 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=\"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' && type !== 'date' && type !== 'time'){\n <input *ngFor=\"let input of cachedInputList; 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]=\"{'fcOtp': type === 'otp','custom-input': type !== 'otp','hyperlink-input': hyperLink,'from-nxt-table': from === 'nxtTable' }\"\n [formControl]=\"type === 'otp' ? $any(input) : control\"\n [style.backgroundColor]=\"type === 'otp'|| mode !== 'edit' ? '' : from === 'nxtTable' ? '' : inputBgColor\"\n [style.color]=\"type === 'otp' || mode !== 'edit' ? '' : inputTextColor\"\n [style.border]=\"type === 'otp' || mode !== 'edit' ? '' : from === 'nxtTable' ? 'none' : inputBorder\"\n [style.height]=\"type === 'otp' ? '' : inputHeight\" [style.width]=\"type === 'otp' ? '' : type === 'checkbox' ? 'auto' : inputWidth\"\n [style.padding]=\"from === 'nxtTable' ? '0px' : ''\"\n [value]=\"type === 'tel' ? rawInputVal : value\"\n (input)=\"type === 'otp' ? handleInput() : onInputChange($event)\"\n [checked]=\"type === 'checkbox' ? value : ''\"\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) : from === 'normalDropDown' ? $event.preventDefault() : 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'\" \n [readonly]=\"from === 'normalDropDown'\" \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 }\n @else if(type === 'time'){\n <input #inputEl [id]=\"inputId\"\n [type]=\"type\"\n [attr.placeholder]=\"mode !== 'edit' ? '' : placeholder || 'HH:MM'\"\n [ngClass]=\"'nxt-custom-input'\" [ngClass]=\"{'hyperlink-input': hyperLink,'from-nxt-table': from === 'nxtTable'}\"\n [formControl]=\"control\"\n [style.backgroundColor]=\"mode !== 'edit' ? '' : from === 'nxtTable' ? '' : inputBgColor\"\n [style.color]=\"mode !== 'edit' ? '' : inputTextColor\" [style.border]=\"mode !== 'edit' ? 'none' : from === 'nxtTable' ? 'none' : inputBorder\"\n [style.height]=\"inputHeight\"\n [style.padding]=\"from === 'nxtTable' ? '0px' : '10px 10px 10px 5px'\"\n [style.font-size]=\"inputValueSize\" (blur)=\" blurEmit()\" (focusin)=\"focusinEmit($event)\"\n (input)=\"onInputChange($event)\"\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 }\" style=\"\n width: 100% !important;\n padding: 10px;\n padding-left: 5px;\n border-radius: 5px;\n border: none !important;\n font-size: 14px;\" \n />\n }\n @else if(type === 'datetime' || type === 'date'){\n <input #inputEl [id]=\"inputId\"\n [owlDateTimeTrigger]=\"type === 'datetime' ? dt : type === 'date' ? dt2 : dt\"\n [owlDateTime]=\"type === 'datetime' ? dt : type === 'date' ? dt2 : dt\"\n [attr.placeholder]=\"mode !== 'edit' ? '' : placeholder || type === 'datetime' ? 'DD/MM/YYYY HH:MM' : type === 'date' ? 'DD/MM/YYYY' : 'DD/MM/YYYY HH:MM'\"\n [ngClass]=\"'nxt-custom-input'\" [ngClass]=\"{'hyperlink-input': hyperLink,'from-nxt-table': from === 'nxtTable'}\"\n [formControl]=\"control\"\n [style.backgroundColor]=\"mode !== 'edit' ? '' : from === 'nxtTable' ? '' : inputBgColor\"\n [style.color]=\"mode !== 'edit' ? '' : inputTextColor\" [style.border]=\"mode !== 'edit' ? 'none' : from === 'nxtTable' ? 'none' : inputBorder\"\n [style.height]=\"inputHeight\"\n [style.padding]=\"from === 'nxtTable' ? '0px' : '10px 10px 10px 5px'\"\n [style.font-size]=\"inputValueSize\" (blur)=\" blurEmit()\" (focusin)=\"focusinEmit($event)\"\n (dateTimeInput)=\"onInputChange($event)\"\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 }\" style=\"\n width: 100% !important;\n padding: 10px;\n padding-left: 5px;\n border-radius: 5px;\n border: none !important;\n font-size: 14px;\" \n />\n <owl-date-time #dt></owl-date-time>\n <owl-date-time [pickerType]=\"'calendar'\" #dt2></owl-date-time>\n }\n <div *ngIf=\"mode !== 'edit'\" class=\"hyperlink-overlay\" (click)=\"hyperLink ? onClickHyperlink($event) : ''\"\n style=\" position: absolute; top: 0; left: 0; width: 94%; height: 100%; z-index: 5; \"></div> \n <div *ngIf=\"mode === 'edit' && (type === 'datetime' || type === 'date')\" (click)=\"openDatePicker(type)\"\n style=\"cursor: pointer;\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\">\n <path d=\"M2.32031 7.05285H15.6883\" stroke=\"#292D32\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M12.3322 9.98254H12.3392\" stroke=\"#292D32\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M9.00408 9.98254H9.01103\" stroke=\"#292D32\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M5.66815 9.98254H5.67509\" stroke=\"#292D32\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M12.3322 12.8976H12.3392\" stroke=\"#292D32\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M9.00408 12.8976H9.01103\" stroke=\"#292D32\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M5.66815 12.8976H5.67509\" stroke=\"#292D32\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M12.0329 1.5V3.96809\" stroke=\"#292D32\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M5.97435 1.5V3.96809\" stroke=\"#292D32\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12.1787 2.68457H5.82822C3.6257 2.68457 2.25 3.91152 2.25 6.16684V12.9541C2.25 15.2449 3.6257 16.5002 5.82822 16.5002H12.1718C14.3812 16.5002 15.75 15.2661 15.75 13.0108V6.16684C15.7569 3.91152 14.3882 2.68457 12.1787 2.68457Z\" stroke=\"#292D32\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </div>\n <div *ngIf=\"mode === 'edit' && type === 'list'\">\n <!-- Minimal Dotted Loader -->\n <div *ngIf=\"isLoading\" 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 <svg *ngIf=\"!isLoading\" (click)=\"removeValue()\" (keydown.enter)=\"removeValue()\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" style=\"cursor: pointer;\">\n <path d=\"M9.16992 14.8299L14.8299 9.16992\" stroke=\"#292D32\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M14.8299 14.8299L9.16992 9.16992\" stroke=\"#292D32\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\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\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg> \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; width: 100% !important;\"> {{ label }}\n <div *ngIf=\"label && type === 'checkbox' && required && showLabel\" style=\"color: red;\">*</div>\n </label> \n <!-- Always Show Dropdown Icon -->\n <svg *ngIf=\"mode === 'edit' && type === 'dropdown'\" style=\"margin-right: 5px;\" (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\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' && !question.isReadOnly && from !== 'nxtTable' \" 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 <!-- SKS14JUN25 Show save and cancel icons only when the input value is edited -->\n <div *ngIf=\"viewEdit && originalValue !== value\" (mouseenter)=\"isSaveHovered = true\" (mouseleave)=\"isSaveHovered = false\"\n style=\"padding-right: 5px; display: flex; align-items: center;\">\n <svg *ngIf=\"!isSaveHovered\" width=\"16\" height=\"16\" 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=\"16\" height=\"16\" 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 && originalValue !== value\" (mouseenter)=\"isDiscardHovered = true\" (mouseleave)=\"isDiscardHovered = false\"\n style=\" display: flex; align-items: center;\">\n <svg *ngIf=\"!isDiscardHovered\" width=\"16\" height=\"16\" 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=\"16\" height=\"16\" viewBox=\"0 0 12 13\"\n fill=\"none\" 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 </div>\n <div *ngIf=\"type !== 'label' && type !== 'checkbox' && (type === 'richtext' || type === 'textarea')\" style=\"display: flex;\">\n <div class=\"input-container\"\n [style.margin-top]=\"showLabel && label ? '' : from === 'nxtTable' || from === 'normalDropDown' ? '' : '21px !important'\"\n [style.border-radius]=\"mode !== 'edit' && from === 'nxtTable' ? 'none': ''\"\n [style.padding-left]=\"mode !== 'edit' && from === 'nxtTable' ? '0px' : ''\"\n [style.padding-right]=\"mode !== 'edit' && from === 'nxtTable' ? '0px' : ''\"\n [style.backgroundColor]=\"mode === 'edit' ? from === 'nxtTable' ? '' : inputBgColor : ''\"\n [class.invalid]=\"control.invalid && control.touched\"\n [style.border]=\"mode === 'edit' ? from === 'nxtTable' ? '1px solid #d2d2d2' : inputBorder === 'none' ? ('1px solid ' + inputBgColor) : inputBorder : 'none'\">\n <!-- SKS14JUN25 Dynamically load Quill editor toolbar -->\n <quill-editor *ngIf=\"mode === 'edit' && type === 'richtext'\" [(ngModel)]=\"value\" (ngModelChange)=\"onInputChange($event)\" [placeholder]=\"placeholder\"\n [readOnly]=\"mode !== 'edit' || question.isReadOnly\"\n (focusout)=\"onEditorFocusOut()\" [class.error]=\"control.invalid && (control.touched || control.dirty)\"\n [modules]=\"getQuillModules(question.id)\"\n [style.padding]=\"from === 'nxtTable' ? '0px' : '10px 10px 10px 5px'\"\n style=\"width: 100%;\n border-radius: 5px;\n border: none;\n font-size: 14px;\">\n </quill-editor>\n <!-- View mode -->\n <div *ngIf=\"mode !== 'edit' && type === 'richtext'\" class=\"quill-view-content\" [innerHTML]=\"value\"\n [style.padding]=\"from === 'nxtTable' ? '0px' : '10px 10px 10px 5px'\"\n style=\"width: 100%;\n border-radius: 5px;\n border: none;\n font-size: 14px;\">\n </div>\n <textarea *ngIf=\"type === 'textarea'\" [id]=\"inputId\" [rows]=\"from === 'nxtTable' ? 1 : rows\"\n [attr.placeholder]=\"mode !== 'edit' ? '' : placeholder\" [ngClass]=\"'custom-input'\"\n [ngClass]=\"{ 'hyperlink-input': hyperLink,'from-nxt-table': from === 'nxtTable'}\" [formControl]=\"control\"\n [style.backgroundColor]=\"mode !== 'edit' ? '' : from === 'nxtTable' ? '' : inputBgColor\"\n [style.color]=\"mode !== 'edit' ? '' : inputTextColor\" [style.border]=\"mode !== 'edit' ? 'none' : from === 'nxtTable' ? '1px solid #d2d2d2' : inputBorder\"\n [style.height]=\"inputHeight\" [value]=\"value\" (input)=\" onInputChange($event)\"\n [style.font-size]=\"inputValueSize\" (blur)=\" blurEmit()\" (focusin)=\"focusinEmit($event)\"\n [readOnly]=\"mode !== 'edit' || question.isReadOnly\" [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 }\" \n [style.padding]=\"from === 'nxtTable' ? '0px' : '10px 10px 10px 5px'\"\n style=\"\n width: 100%;\n border-radius: 5px;\n border: none !important;\n font-size: 14px;\"\n >\n </textarea>\n <svg *ngIf=\"mode !== 'edit' && !viewEdit && from !== 'nxtTable' && (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 </div>\n </div>\n <!-- SKS23APR25 Use control.invalid to show error on submit click -->\n <div *ngIf=\"type != 'checkbox' && type !== 'label' && 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=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}input.nxt-custom-input{width:100%!important;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,.nxt-custom-input:-webkit-autofill,.nxt-custom-input:-webkit-autofill:hover,.nxt-custom-input:-webkit-autofill:focus,.nxt-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:5px}.icon-container{right:15px;padding-right:5px;pointer-events:auto;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{margin-top:20px!important;padding:13px!important;width:100%!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}textarea: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}.quill-view-content{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;overflow:hidden}.quill-view-content *{max-width:100%;box-sizing:border-box;word-wrap:break-word}.edit-icon{display:none;cursor:pointer}.hover-wrapper:hover .edit-icon{display:block}input:disabled,textarea:disabled,.quill-view-content{color:#999!important}input:disabled.from-nxt-table,textarea:disabled.from-nxt-table,.quill-view-content.from-nxt-table{color:#2c3137!important}.owl-dt-container-disabled,.owl-dt-trigger-disabled{opacity:unset!important}.input-wrapper{position:relative}.hyperlink-input{color:inherit;text-decoration:none;cursor:default;width:200px;border:1px solid #888}.hyperlink-overlay{position:absolute;top:0;left:0;width:100%;height:100%;cursor:pointer;z-index:2}.input-wrapper:hover .hyperlink-input{color:#00f!important;text-decoration:underline!important;cursor:pointer}.input-container{pointer-events:auto!important;position:relative;z-index:1}.custom-input,.nxt-custom-input{pointer-events:auto!important}\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 });
|
|
2822
|
-
}
|
|
2823
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NxtInput, decorators: [{
|
|
2824
|
-
type: Component,
|
|
2825
|
-
args: [{ standalone: true, imports: [CommonModule, ReactiveFormsModule, OwlDateTimeModule, OwlNativeDateTimeModule, QuillEditorComponent, FormsModule], selector: 'nxt-input', providers: [
|
|
2826
|
-
{
|
|
2827
|
-
provide: NG_VALUE_ACCESSOR,
|
|
2828
|
-
useExisting: forwardRef(() => NxtInput),
|
|
2829
|
-
multi: true
|
|
2830
|
-
},
|
|
2831
|
-
{
|
|
2832
|
-
provide: NG_VALIDATORS,
|
|
2833
|
-
useExisting: forwardRef(() => NxtInput),
|
|
2834
|
-
multi: true,
|
|
2835
|
-
},
|
|
2836
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- SKS31JAN25 -->\n<div class=\"hover-wrapper input-wrapper\" (document:click)=\"closeDropdown($event)\">\n <div>\n <div *ngIf=\"label && type != 'checkbox' && showLabel\" [ngStyle]=\"{\n 'padding-top': type === 'label' ? '10px' : '',\n 'padding-bottom': type === 'label' ? '10px' : ''\n }\" [style.font-weight]=\"labelWeight || type === 'label' ? 'bold' : 'normal'\" [style.font-size]=\"labelSize || type === 'label' ? '16px' : '14px'\"\n style=\"display: flex; gap: 5px;\"> {{ 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' ? from === 'nxtTable' ? '' : inputBgColor : ''\"\n [class.invalid]=\"control.invalid && control.touched\"\n [style.border-radius]=\"mode !== 'edit' && from === 'nxtTable' ? 'none': ''\"\n [style.padding-left]=\"mode !== 'edit' && from === 'nxtTable' ? '0px' : ''\"\n [style.padding-right]=\"mode !== 'edit' && from === 'nxtTable' ? '0px' : ''\"\n [style.margin-top]=\"showLabel && label ? '' : from === 'nxtTable' || from === 'normalDropDown' ? '' : '21px !important'\"\n [style.border]=\"mode === 'edit' ? from === 'nxtTable' ? '1px solid #d2d2d2' : inputBorder === 'none' ? ('1px solid ' + inputBgColor) : inputBorder : 'none'\"\n style=\"position: relative; width: 100%;\">\n <img *ngIf=\"inputIconLeftSrc && mode === 'edit'\" [src]=\"inputIconLeftSrc\" alt=\"icon\" class=\"icon left-icon\"\n [style.height]=\"svgHeight\" [style.width]=\"svgWidth\" />\n <div *ngIf=\"mode === 'edit' && type === 'list'\">\n <!-- Inline search icon SVG -->\n <svg width=\"18\" height=\"18\" fill=\"none\" stroke=\"#434555\" stroke-opacity=\"0.65\" stroke-width=\"1.5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 18 18\">\n <circle cx=\"8.25\" cy=\"8.25\" r=\"5.25\" />\n <path d=\"M15 15L12.75 12.75\" stroke-linecap=\"round\" />\n </svg>\n </div>\n <!-- SKS28FEB25 mobile number input -->\n <div *ngIf=\"type === 'tel'\" class=\"phone-input-container\">\n <div 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=\"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' && type !== 'date' && type !== 'time'){\n <input *ngFor=\"let input of cachedInputList; 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]=\"{'fcOtp': type === 'otp','custom-input': type !== 'otp','hyperlink-input': hyperLink,'from-nxt-table': from === 'nxtTable' }\"\n [formControl]=\"type === 'otp' ? $any(input) : control\"\n [style.backgroundColor]=\"type === 'otp'|| mode !== 'edit' ? '' : from === 'nxtTable' ? '' : inputBgColor\"\n [style.color]=\"type === 'otp' || mode !== 'edit' ? '' : inputTextColor\"\n [style.border]=\"type === 'otp' || mode !== 'edit' ? '' : from === 'nxtTable' ? 'none' : inputBorder\"\n [style.height]=\"type === 'otp' ? '' : inputHeight\" [style.width]=\"type === 'otp' ? '' : type === 'checkbox' ? 'auto' : inputWidth\"\n [style.padding]=\"from === 'nxtTable' ? '0px' : ''\"\n [value]=\"type === 'tel' ? rawInputVal : value\"\n (input)=\"type === 'otp' ? handleInput() : onInputChange($event)\"\n [checked]=\"type === 'checkbox' ? value : ''\"\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) : from === 'normalDropDown' ? $event.preventDefault() : 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'\" \n [readonly]=\"from === 'normalDropDown'\" \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 }\n @else if(type === 'time'){\n <input #inputEl [id]=\"inputId\"\n [type]=\"type\"\n [attr.placeholder]=\"mode !== 'edit' ? '' : placeholder || 'HH:MM'\"\n [ngClass]=\"'nxt-custom-input'\" [ngClass]=\"{'hyperlink-input': hyperLink,'from-nxt-table': from === 'nxtTable'}\"\n [formControl]=\"control\"\n [style.backgroundColor]=\"mode !== 'edit' ? '' : from === 'nxtTable' ? '' : inputBgColor\"\n [style.color]=\"mode !== 'edit' ? '' : inputTextColor\" [style.border]=\"mode !== 'edit' ? 'none' : from === 'nxtTable' ? 'none' : inputBorder\"\n [style.height]=\"inputHeight\"\n [style.padding]=\"from === 'nxtTable' ? '0px' : '10px 10px 10px 5px'\"\n [style.font-size]=\"inputValueSize\" (blur)=\" blurEmit()\" (focusin)=\"focusinEmit($event)\"\n (input)=\"onInputChange($event)\"\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 }\" style=\"\n width: 100% !important;\n padding: 10px;\n padding-left: 5px;\n border-radius: 5px;\n border: none !important;\n font-size: 14px;\" \n />\n }\n @else if(type === 'datetime' || type === 'date'){\n <input #inputEl [id]=\"inputId\"\n [owlDateTimeTrigger]=\"type === 'datetime' ? dt : type === 'date' ? dt2 : dt\"\n [owlDateTime]=\"type === 'datetime' ? dt : type === 'date' ? dt2 : dt\"\n [attr.placeholder]=\"mode !== 'edit' ? '' : placeholder || type === 'datetime' ? 'DD/MM/YYYY HH:MM' : type === 'date' ? 'DD/MM/YYYY' : 'DD/MM/YYYY HH:MM'\"\n [ngClass]=\"'nxt-custom-input'\" [ngClass]=\"{'hyperlink-input': hyperLink,'from-nxt-table': from === 'nxtTable'}\"\n [formControl]=\"control\"\n [style.backgroundColor]=\"mode !== 'edit' ? '' : from === 'nxtTable' ? '' : inputBgColor\"\n [style.color]=\"mode !== 'edit' ? '' : inputTextColor\" [style.border]=\"mode !== 'edit' ? 'none' : from === 'nxtTable' ? 'none' : inputBorder\"\n [style.height]=\"inputHeight\"\n [style.padding]=\"from === 'nxtTable' ? '0px' : '10px 10px 10px 5px'\"\n [style.font-size]=\"inputValueSize\" (blur)=\" blurEmit()\" (focusin)=\"focusinEmit($event)\"\n (dateTimeInput)=\"onInputChange($event)\"\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 }\" style=\"\n width: 100% !important;\n padding: 10px;\n padding-left: 5px;\n border-radius: 5px;\n border: none !important;\n font-size: 14px;\" \n />\n <owl-date-time #dt></owl-date-time>\n <owl-date-time [pickerType]=\"'calendar'\" #dt2></owl-date-time>\n }\n <div *ngIf=\"mode !== 'edit'\" class=\"hyperlink-overlay\" (click)=\"hyperLink ? onClickHyperlink($event) : ''\"\n style=\" position: absolute; top: 0; left: 0; width: 94%; height: 100%; z-index: 5; \"></div> \n <div *ngIf=\"mode === 'edit' && (type === 'datetime' || type === 'date')\" (click)=\"openDatePicker(type)\"\n style=\"cursor: pointer;\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\">\n <path d=\"M2.32031 7.05285H15.6883\" stroke=\"#292D32\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M12.3322 9.98254H12.3392\" stroke=\"#292D32\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M9.00408 9.98254H9.01103\" stroke=\"#292D32\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M5.66815 9.98254H5.67509\" stroke=\"#292D32\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M12.3322 12.8976H12.3392\" stroke=\"#292D32\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M9.00408 12.8976H9.01103\" stroke=\"#292D32\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M5.66815 12.8976H5.67509\" stroke=\"#292D32\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M12.0329 1.5V3.96809\" stroke=\"#292D32\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M5.97435 1.5V3.96809\" stroke=\"#292D32\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12.1787 2.68457H5.82822C3.6257 2.68457 2.25 3.91152 2.25 6.16684V12.9541C2.25 15.2449 3.6257 16.5002 5.82822 16.5002H12.1718C14.3812 16.5002 15.75 15.2661 15.75 13.0108V6.16684C15.7569 3.91152 14.3882 2.68457 12.1787 2.68457Z\" stroke=\"#292D32\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </div>\n <div *ngIf=\"mode === 'edit' && type === 'list'\">\n <!-- Minimal Dotted Loader -->\n <div *ngIf=\"isLoading\" 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 <svg *ngIf=\"!isLoading\" (click)=\"removeValue()\" (keydown.enter)=\"removeValue()\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" style=\"cursor: pointer;\">\n <path d=\"M9.16992 14.8299L14.8299 9.16992\" stroke=\"#292D32\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M14.8299 14.8299L9.16992 9.16992\" stroke=\"#292D32\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\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\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg> \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; width: 100% !important;\"> {{ label }}\n <div *ngIf=\"label && type === 'checkbox' && required && showLabel\" style=\"color: red;\">*</div>\n </label> \n <!-- Always Show Dropdown Icon -->\n <svg *ngIf=\"mode === 'edit' && type === 'dropdown'\" style=\"margin-right: 5px;\" (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\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' && !question.isReadOnly && from !== 'nxtTable' \" 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 <!-- SKS14JUN25 Show save and cancel icons only when the input value is edited -->\n <div *ngIf=\"viewEdit && originalValue !== value\" (mouseenter)=\"isSaveHovered = true\" (mouseleave)=\"isSaveHovered = false\"\n style=\"padding-right: 5px; display: flex; align-items: center;\">\n <svg *ngIf=\"!isSaveHovered\" width=\"16\" height=\"16\" 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=\"16\" height=\"16\" 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 && originalValue !== value\" (mouseenter)=\"isDiscardHovered = true\" (mouseleave)=\"isDiscardHovered = false\"\n style=\" display: flex; align-items: center;\">\n <svg *ngIf=\"!isDiscardHovered\" width=\"16\" height=\"16\" 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=\"16\" height=\"16\" viewBox=\"0 0 12 13\"\n fill=\"none\" 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 </div>\n <div *ngIf=\"type !== 'label' && type !== 'checkbox' && (type === 'richtext' || type === 'textarea')\" style=\"display: flex;\">\n <div class=\"input-container\"\n [style.margin-top]=\"showLabel && label ? '' : from === 'nxtTable' || from === 'normalDropDown' ? '' : '21px !important'\"\n [style.border-radius]=\"mode !== 'edit' && from === 'nxtTable' ? 'none': ''\"\n [style.padding-left]=\"mode !== 'edit' && from === 'nxtTable' ? '0px' : ''\"\n [style.padding-right]=\"mode !== 'edit' && from === 'nxtTable' ? '0px' : ''\"\n [style.backgroundColor]=\"mode === 'edit' ? from === 'nxtTable' ? '' : inputBgColor : ''\"\n [class.invalid]=\"control.invalid && control.touched\"\n [style.border]=\"mode === 'edit' ? from === 'nxtTable' ? '1px solid #d2d2d2' : inputBorder === 'none' ? ('1px solid ' + inputBgColor) : inputBorder : 'none'\">\n <!-- SKS14JUN25 Dynamically load Quill editor toolbar -->\n <quill-editor *ngIf=\"mode === 'edit' && type === 'richtext'\" [(ngModel)]=\"value\" (ngModelChange)=\"onInputChange($event)\" [placeholder]=\"placeholder\"\n [readOnly]=\"mode !== 'edit' || question.isReadOnly\"\n (focusout)=\"onEditorFocusOut()\" [class.error]=\"control.invalid && (control.touched || control.dirty)\"\n [modules]=\"getQuillModules(question.id)\"\n [style.padding]=\"from === 'nxtTable' ? '0px' : '10px 10px 10px 5px'\"\n style=\"width: 100%;\n border-radius: 5px;\n border: none;\n font-size: 14px;\">\n </quill-editor>\n <!-- View mode -->\n <div *ngIf=\"mode !== 'edit' && type === 'richtext'\" class=\"quill-view-content\" [innerHTML]=\"value\"\n [style.padding]=\"from === 'nxtTable' ? '0px' : '10px 10px 10px 5px'\"\n style=\"width: 100%;\n border-radius: 5px;\n border: none;\n font-size: 14px;\">\n </div>\n <textarea *ngIf=\"type === 'textarea'\" [id]=\"inputId\" [rows]=\"from === 'nxtTable' ? 1 : rows\"\n [attr.placeholder]=\"mode !== 'edit' ? '' : placeholder\" [ngClass]=\"'custom-input'\"\n [ngClass]=\"{ 'hyperlink-input': hyperLink,'from-nxt-table': from === 'nxtTable'}\" [formControl]=\"control\"\n [style.backgroundColor]=\"mode !== 'edit' ? '' : from === 'nxtTable' ? '' : inputBgColor\"\n [style.color]=\"mode !== 'edit' ? '' : inputTextColor\" [style.border]=\"mode !== 'edit' ? 'none' : from === 'nxtTable' ? '1px solid #d2d2d2' : inputBorder\"\n [style.height]=\"inputHeight\" [value]=\"value\" (input)=\" onInputChange($event)\"\n [style.font-size]=\"inputValueSize\" (blur)=\" blurEmit()\" (focusin)=\"focusinEmit($event)\"\n [readOnly]=\"mode !== 'edit' || question.isReadOnly\" [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 }\" \n [style.padding]=\"from === 'nxtTable' ? '0px' : '10px 10px 10px 5px'\"\n style=\"\n width: 100%;\n border-radius: 5px;\n border: none !important;\n font-size: 14px;\"\n >\n </textarea>\n <svg *ngIf=\"mode !== 'edit' && !viewEdit && from !== 'nxtTable' && (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 </div>\n </div>\n <!-- SKS23APR25 Use control.invalid to show error on submit click -->\n <div *ngIf=\"type != 'checkbox' && type !== 'label' && 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=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}input.nxt-custom-input{width:100%!important;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,.nxt-custom-input:-webkit-autofill,.nxt-custom-input:-webkit-autofill:hover,.nxt-custom-input:-webkit-autofill:focus,.nxt-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:5px}.icon-container{right:15px;padding-right:5px;pointer-events:auto;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{margin-top:20px!important;padding:13px!important;width:100%!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}textarea: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}.quill-view-content{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;overflow:hidden}.quill-view-content *{max-width:100%;box-sizing:border-box;word-wrap:break-word}.edit-icon{display:none;cursor:pointer}.hover-wrapper:hover .edit-icon{display:block}input:disabled,textarea:disabled,.quill-view-content{color:#999!important}input:disabled.from-nxt-table,textarea:disabled.from-nxt-table,.quill-view-content.from-nxt-table{color:#2c3137!important}.owl-dt-container-disabled,.owl-dt-trigger-disabled{opacity:unset!important}.input-wrapper{position:relative}.hyperlink-input{color:inherit;text-decoration:none;cursor:default;width:200px;border:1px solid #888}.hyperlink-overlay{position:absolute;top:0;left:0;width:100%;height:100%;cursor:pointer;z-index:2}.input-wrapper:hover .hyperlink-input{color:#00f!important;text-decoration:underline!important;cursor:pointer}.input-container{pointer-events:auto!important;position:relative;z-index:1}.custom-input,.nxt-custom-input{pointer-events:auto!important}\n"] }]
|
|
2837
|
-
}], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ElementRef }, { type: i1.ChangeService }, { type: i2.DataService }], propDecorators: { label: [{
|
|
2838
|
-
type: Input
|
|
2839
|
-
}], labelFont: [{
|
|
2840
|
-
type: Input
|
|
2841
|
-
}], labelWeight: [{
|
|
2842
|
-
type: Input
|
|
2843
|
-
}], inputWeight: [{
|
|
2844
|
-
type: Input
|
|
2845
|
-
}], labelSize: [{
|
|
2846
|
-
type: Input
|
|
2847
|
-
}], inputValueSize: [{
|
|
2848
|
-
type: Input
|
|
2849
|
-
}], labelColor: [{
|
|
2850
|
-
type: Input
|
|
2851
|
-
}], showLabel: [{
|
|
2852
|
-
type: Input
|
|
2853
|
-
}], svgHeight: [{
|
|
2854
|
-
type: Input
|
|
2855
|
-
}], svgWidth: [{
|
|
2856
|
-
type: Input
|
|
2857
|
-
}], type: [{
|
|
2858
|
-
type: Input
|
|
2859
|
-
}], inputIconRightSrc: [{
|
|
2860
|
-
type: Input
|
|
2861
|
-
}], inputIconLeftSrc: [{
|
|
2862
|
-
type: Input
|
|
2863
|
-
}], required: [{
|
|
2864
|
-
type: Input
|
|
2865
|
-
}], minLength: [{
|
|
2866
|
-
type: Input
|
|
2867
|
-
}], pattern: [{
|
|
2868
|
-
type: Input
|
|
2869
|
-
}], errorMessages: [{
|
|
2870
|
-
type: Input
|
|
2871
|
-
}], maxLength: [{
|
|
2872
|
-
type: Input
|
|
2873
|
-
}], placeholder: [{
|
|
2874
|
-
type: Input
|
|
2875
|
-
}], inputBgColor: [{
|
|
2876
|
-
type: Input
|
|
2877
|
-
}], inputBorder: [{
|
|
2878
|
-
type: Input
|
|
2879
|
-
}], placeholderColor: [{
|
|
2880
|
-
type: Input
|
|
2881
|
-
}], placeholderFont: [{
|
|
2882
|
-
type: Input
|
|
2883
|
-
}], placeholderWeight: [{
|
|
2884
|
-
type: Input
|
|
2885
|
-
}], placeholderSize: [{
|
|
2886
|
-
type: Input
|
|
2887
|
-
}], inputTextColor: [{
|
|
2888
|
-
type: Input
|
|
2889
|
-
}], inputHeight: [{
|
|
2890
|
-
type: Input
|
|
2891
|
-
}], inputWidth: [{
|
|
2892
|
-
type: Input
|
|
2893
|
-
}], inputId: [{
|
|
2894
|
-
type: Input
|
|
2895
|
-
}], inputBorderSize: [{
|
|
2896
|
-
type: Input
|
|
2897
|
-
}], inputConfig: [{
|
|
2898
|
-
type: Input
|
|
2899
|
-
}], confPassVal: [{
|
|
2900
|
-
type: Input
|
|
2901
|
-
}], confPass: [{
|
|
2902
|
-
type: Input
|
|
2903
|
-
}], mode: [{
|
|
2904
|
-
type: Input
|
|
2905
|
-
}], value: [{
|
|
2906
|
-
type: Input
|
|
2907
|
-
}], question: [{
|
|
2908
|
-
type: Input
|
|
2909
|
-
}], showSuggestion: [{
|
|
2910
|
-
type: Input
|
|
2911
|
-
}], ariaOwns: [{
|
|
2912
|
-
type: Input
|
|
2913
|
-
}], ariaHasPopup: [{
|
|
2914
|
-
type: Input
|
|
2915
|
-
}], isLoading: [{
|
|
2916
|
-
type: Input
|
|
2917
|
-
}], options: [{
|
|
2918
|
-
type: Input
|
|
2919
|
-
}], minDate: [{
|
|
2920
|
-
type: Input
|
|
2921
|
-
}], maxDate: [{
|
|
2922
|
-
type: Input
|
|
2923
|
-
}], rows: [{
|
|
2924
|
-
type: Input
|
|
2925
|
-
}], from: [{
|
|
2926
|
-
type: Input
|
|
2927
|
-
}], hyperLink: [{
|
|
2928
|
-
type: Input
|
|
2929
|
-
}], size: [{
|
|
2930
|
-
type: Input
|
|
2931
|
-
}], valueChange: [{
|
|
2932
|
-
type: Output
|
|
2933
|
-
}], inputValue: [{
|
|
2934
|
-
type: Output
|
|
2935
|
-
}], onBlur: [{
|
|
2936
|
-
type: Output
|
|
2937
|
-
}], onFocus: [{
|
|
2938
|
-
type: Output
|
|
2939
|
-
}], toggleEmit: [{
|
|
2940
|
-
type: Output
|
|
2941
|
-
}], nativeInputRef: [{
|
|
2942
|
-
type: Output
|
|
2943
|
-
}], removeValueEmit: [{
|
|
2944
|
-
type: Output
|
|
2945
|
-
}], hyperlinkEmit: [{
|
|
2946
|
-
type: Output
|
|
2947
|
-
}], inputEls: [{
|
|
2948
|
-
type: ViewChildren,
|
|
2949
|
-
args: ['inputEl']
|
|
2950
|
-
}], dateTimePicker: [{
|
|
2951
|
-
type: ViewChildren,
|
|
2952
|
-
args: ['dt']
|
|
2953
|
-
}], datePicker: [{
|
|
2954
|
-
type: ViewChildren,
|
|
2955
|
-
args: ['dt1']
|
|
2956
|
-
}], timePicker: [{
|
|
2957
|
-
type: ViewChildren,
|
|
2958
|
-
args: ['dt2']
|
|
2959
|
-
}], dtPicker: [{
|
|
2960
|
-
type: ViewChild,
|
|
2961
|
-
args: ['dt']
|
|
2962
|
-
}], dPicker: [{
|
|
2963
|
-
type: ViewChild,
|
|
2964
|
-
args: ['dt2']
|
|
2965
|
-
}], inputRef: [{
|
|
2966
|
-
type: ViewChild,
|
|
2967
|
-
args: ['inputRef', { static: false }]
|
|
2968
|
-
}], closeDropdown: [{
|
|
2969
|
-
type: HostListener,
|
|
2970
|
-
args: ['document:click', ['$event']]
|
|
2971
|
-
}] } });
|
|
2972
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnh0LWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL254dC1hcHAvc3JjL2xpYi9jb21wb25lbnRzL254dC1pbnB1dC9ueHQtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvbnh0LWlucHV0L254dC1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBQ1osT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLHVCQUF1QixFQUFFLFlBQVksRUFBd0MsWUFBWSxFQUFFLFNBQVMsRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFDbk4sT0FBTyxFQUFtQixTQUFTLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQWlDLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhMLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxSCxPQUFPLEVBQUUsb0JBQW9CLEVBQWdCLE1BQU0sV0FBVyxDQUFDO0FBQy9ELE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sWUFBWSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7O0FBSS9DLGtHQUFrRztBQUNsRyxNQUFNLGFBQWEsR0FBRyxDQUFDLFFBQVEsRUFBRSxrQkFBa0IsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxjQUFjO0lBQy9GLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxh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QUFJO2dCQUNHLFVBQVU7c0JBQTlCLFlBQVk7dUJBQUMsS0FBSztnQkFDRSxVQUFVO3NCQUE5QixZQUFZO3VCQUFDLEtBQUs7Z0JBQ0YsUUFBUTtzQkFBeEIsU0FBUzt1QkFBQyxJQUFJO2dCQUNHLE9BQU87c0JBQXhCLFNBQVM7dUJBQUMsS0FBSztnQkFDMEIsUUFBUTtzQkFBakQsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQWswRXhDLGFBQWE7c0JBRFosWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vU0tTMzFKQU4yNVxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgVmlld0NoaWxkcmVuLCBRdWVyeUxpc3QsIEVsZW1lbnRSZWYsIFNpbXBsZUNoYW5nZXMsIEhvc3RMaXN0ZW5lciwgVmlld0NoaWxkLCBBZnRlclZpZXdJbml0LCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUFycmF5LCBGb3JtQ29udHJvbCwgRm9ybXNNb2R1bGUsIE5HX1ZBTElEQVRPUlMsIE5HX1ZBTFVFX0FDQ0VTU09SLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0b3JGbiwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgT3dsRGF0ZVRpbWVDb21wb25lbnQsIE93bERhdGVUaW1lTW9kdWxlLCBPd2xOYXRpdmVEYXRlVGltZU1vZHVsZSB9IGZyb20gJ0BkYW5pZWxtb25jYWRhL2FuZ3VsYXItZGF0ZXRpbWUtcGlja2VyJztcbmltcG9ydCB7IFF1aWxsRWRpdG9yQ29tcG9uZW50LCBRdWlsbE1vZHVsZXMgfSBmcm9tICduZ3gtcXVpbGwnO1xuaW1wb3J0IFF1aWxsIGZyb20gJ3F1aWxsJztcbmltcG9ydCB7IE1lbnRpb24gfSBmcm9tICdxdWlsbC1tZW50aW9uJztcbmltcG9ydCBJbWFnZVJlc2l6b3IgZnJvbSAncXVpbGwtaW1hZ2UtcmVzaXpvcic7XG5pbXBvcnQgeyBDaGFuZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2hhbmdlL2NoYW5nZS5zZXJ2aWNlJztcbmltcG9ydCB7IERhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGF0YS9kYXRhLnNlcnZpY2UnO1xuXG4vLyBTS1MxMUpVTjI1IEFuIGFycmF5IGZvbnRGYW1pbHlBcnIgaXMgY3JlYXRlZCBjb250YWluaW5nIGEgbGlzdCBvZiBmb250IGZhbWlseSBuYW1lcyBhcyBzdHJpbmdzLlxuY29uc3QgZm9udEZhbWlseUFyciA9IFtcIlJvYm90b1wiLCBcIlJvYm90byBDb25kZW5zZWRcIiwgXCJBcmlhbFwiLCBcIlZlcmRhbmFcIiwgXCJUYWhvbWFcIiwgXCJUcmVidWNoZXQgTVNcIixcbiAgXCJHZW9yZ2lhXCIsIFwiVGltZXMgTmV3IFJvbWFuXCIsIFwiQ291cmllciBOZXdcIiwgXCJQYWxhdGlubyBMaW5vdHlwZVwiLFxuICBcIlNlZ29lIFVJXCIsIFwiQ2FsaWJyaVwiLCBcIkNhbGlicmkgTGlnaHRcIiwgXCJTYW5zLVNlcmlmXCIsIFwiSGVsdmV0aWNhXCIsXG4gIFwiSW1wYWN0XCIsIFwiR2FyYW1vbmRcIiwgXCJDb21pYyBTYW5zIE1TXCIsIFwiTHVjaWRhIENvbnNvbGVcIiwgXCJGcmFua2xpbiBHb3RoaWMgTWVkaXVtXCJdO1xuLy8gU0tTMTFKVU4yNSBSZWdpc3RlciBRdWlsbCBtb2R1bGVzXG5RdWlsbC5yZWdpc3RlcignbW9kdWxlcy9tZW50aW9uJywgTWVudGlvbik7XG5JbWFnZVJlc2l6b3IuUXVpbGwgPSBRdWlsbDtcblF1aWxsLnJlZ2lzdGVyKCdtb2R1bGVzL2ltYWdlUmVzaXpvcicsIEltYWdlUmVzaXpvcik7XG5cbi8vIFNLUzExSlVOMjUgVGhlIFF1aWxsIGZvbnQgc3R5bGUgYXR0cmlidXRvciBpcyBpbXBvcnRlZCBhbmQgaXQgaXMgcmVnaXN0ZXJlZCB3aXRoIFF1aWxcbmxldCBmb250czogYW55ID0gUXVpbGwuaW1wb3J0KFwiYXR0cmlidXRvcnMvc3R5bGUvZm9udFwiKTtcbmZvbnRzLndoaXRlbGlzdCA9IGZvbnRGYW1pbHlBcnI7XG5RdWlsbC5yZWdpc3Rlcihmb250cywgdHJ1ZSk7XG5jb25zdCBpY29ucyA9IFF1aWxsLmltcG9ydCgndWkvaWNvbnMnKTtcbmljb25zWydzYXZlJ10gPSBgPHN2ZyB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTNcIiB2aWV3Qm94PVwiMCAwIDEyIDEzXCIgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgZD1cIk01Ljk1IDEyLjgwMDRDOS4yMzYwOSAxMi44MDA0IDExLjkgMTAuMTM2NSAxMS45IDYuODUwMzlDMTEuOSAzLjU2NDMgOS4yMzYwOSAwLjkwMDM5MSA1Ljk1IDAuOTAwMzkxQzIuNjYzOTEgMC45MDAzOTEgMCAzLjU2NDMgMCA2Ljg1MDM5QzAgMTAuMTM2NSAyLjY2MzkxIDEyLjgwMDQgNS45NSAxMi44MDA0WlwiXG4gICAgICAgICAgICAgIGZpbGw9XCIjMjU5NTY2XCIgLz5cbiAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgIGQ9XCJNOC44ODExMSA0Ljc0NjIyQzguODMyNjkgNC42OTc1OSA4Ljc3NTEzIDQuNjU4OTkgOC43MTE3NiA0LjYzMjY2QzguNjQ4MzggNC42MDYzMyA4LjU4MDQzIDQuNTkyNzcgOC41MTE4IDQuNTkyNzdDOC40NDMxNyA0LjU5Mjc3IDguMzc1MjEgNC42MDYzMyA4LjMxMTg0IDQuNjMyNjZDOC4yNDg0NiA0LjY1ODk5IDguMTkwOTEgNC42OTc1OSA4LjE0MjQ5IDQuNzQ2MjJMNC44MjY5IDguMDYzODZMMy4zNTI1MyA2LjU4OTQ5QzMuMzA0MDMgNi41NDA5OSAzLjI0NjQ2IDYuNTAyNTIgMy4xODMwOSA2LjQ3NjI3QzMuMTE5NzIgNi40NTAwMyAzLjA1MTgxIDYuNDM2NTIgMi45ODMyMiA2LjQzNjUyQzIuOTE0NjMgNi40MzY1MiAyLjg0NjcyIDYuNDUwMDMgMi43ODMzNSA2LjQ3NjI3QzIuNzE5OTkgNi41MDI1MiAyLjY2MjQxIDYuNTQwOTkgMi42MTM5MSA2LjU4OTQ5QzIuNTY1NDEgNi42Mzc5OSAyLjUyNjk0IDYuNjk1NTcgMi41MDA2OSA2Ljc1ODkzQzIuNDc0NDUgNi44MjIzIDIuNDYwOTQgNi44OTAyMiAyLjQ2MDk0IDYuOTU4OEMyLjQ2MDk0IDcuMDI3MzkgMi40NzQ0NSA3LjA5NTMxIDIuNTAwNjkgNy4xNTg2N0MyLjUyNjk0IDcuMjIyMDQgMi41NjU0MSA3LjI3OTYxIDIuNjEzOTEgNy4zMjgxMUw0LjQ1Njc3IDkuMTcwOTdDNC41MDUxOSA5LjIxOTYxIDQuNTYyNzQgOS4yNTgyIDQuNjI2MTIgOS4yODQ1M0M0LjY4OTUgOS4zMTA4NiA0Ljc1NzQ1IDkuMzI0NDIgNC44MjYwOCA5LjMyNDQyQzQuODk0NzEgOS4zMjQ0MiA0Ljk2MjY2IDkuMzEwODYgNS4wMjYwNCA5LjI4NDUzQzUuMDg5NDIgOS4yNTgyIDUuMTQ2OTcgOS4yMTk2MSA1LjE5NTM5IDkuMTcwOTdMOC44ODExMSA1LjQ4NDg0QzguOTI5NzQgNS40MzY0MiA4Ljk2ODM0IDUuMzc4ODcgOC45OTQ2NyA1LjMxNTQ5QzkuMDIxIDUuMjUyMTIgOS4wMzQ1NiA1LjE4NDE2IDkuMDM0NTYgNS4xMTU1M0M5LjAzNDU2IDUuMDQ2OSA5LjAyMSA0Ljk3ODk1IDguOTk0NjcgNC45MTU1N0M4Ljk2ODM0IDQuODUyMiA4LjkyOTc0IDQuNzk0NjUgOC44ODExMSA0Ljc0NjIyWlwiXG4gICAgICAgICAgICAgIGZpbGw9XCJ3aGl0ZVwiIC8+XG4gICAgICAgICAgPC9zdmc+YDtcbmljb25zWydkaXNjYXJkJ10gPSBgPHN2ZyAqbmdJZj1cImlzRGlzY2FyZEhvdmVyZWRcIiAoY2xpY2spPVwiZGlzY2FyZENoYW5nZXMoKVwiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxM1wiIHZpZXdCb3g9XCIwIDAgMTIgMTNcIlxuICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICBkPVwiTTcuMDU1NTUgNC45NzQ3MUw1Ljk0IDYuMDkwMjZMNC44MjQ0NSA0Ljk3NDcxQzQuNTc4NjEgNC43Mjg4NyA0LjE4MTkxIDQuNzI4ODcgMy45MzYwNyA0Ljk3NDcxQzMuNjkwMjMgNS4yMjA1NSAzLjY5MDIzIDUuNjE3MjUgMy45MzYwNyA1Ljg2MzA5TDUuMDUxNjIgNi45Nzg2NEwzLjkzNjA3IDguMDk0MTlDMy42OTAyMyA4LjM0MDAzIDMuNjkwMjMgOC43MzY3MyAzLjkzNjA3IDguOTgyNTdDNC4xODE5MSA5LjIyODQxIDQuNTc4NjEgOS4yMjg0MSA0LjgyNDQ1IDguOTgyNTdMNS45NCA3Ljg2NzAyTDcuMDU1NTUgOC45ODI1N0M3LjMwMTM5IDkuMjI4NDEgNy42OTgwOSA5LjIyODQxIDcuOTQzOTMgOC45ODI1N0M4LjE4OTc3IDguNzM2NzMgOC4xODk3NyA4LjM0MDAzIDcuOTQzOTMgOC4wOTQxOUw2LjgyODM4IDYuOTc4NjRMNy45NDM5MyA1Ljg2MzA5QzguMTg5NzcgNS42MTcyNSA4LjE4OTc3IDUuMjIwNTUgNy45NDM5MyA0Ljk3NDcxQzcuNjk4MDkgNC43Mzg3MyA3LjMwMDIxIDQuNzM4NzMgNy4wNTU1NSA0Ljk3NDcxWk01Ljk0IDEuMDYwNjJDMi43MDAxNyAxLjA2MDYyIDAuMDgwODU5NCAzLjY3OTkzIDAuMDgwODU5NCA2LjkxOTc3QzAuMDgwODU5NCAxMC4xNTk2IDIuNzAwMTcgMTIuNzc4OSA1Ljk0IDEyLjc3ODlDOS4xNzk4MyAxMi43Nzg5IDExLjc5OTEgMTAuMTU5NiAxMS43OTkxIDYuOTE5NzdDMTEuNzk5MSAzLjY3OTkzIDkuMTc5ODMgMS4wNjA2MiA1Ljk0IDEuMDYwNjJaTTUuOTQgMTEuNjE1M0MzLjM1NDI2IDExLjYxNTMgMS4yNDQyMiA5LjUwNTI1IDEuMjQ0MjIgNi45MTk3N0MxLjI0NDIyIDQuMzM0MTIgMy4zNTQyNiAyLjIyNDA4IDUuOTQgMi4yMjQwOEM4LjUyNTU4IDIuMjI0MDggMTAuNjM1NiA0LjMzNDEyIDEwLjYzNTYgNi45MTk3N0MxMC42MzU2IDkuNTA1MjUgOC41MjU1OCAxMS42MTUzIDUuOTQgMTEuNjE1M1pcIlxuICAgICAgICAgICAgICAgICAgZmlsbD1cIiNGRjM2MzZcIiAvPlxuICAgICAgICAgICAgICAgIDwvc3ZnPmA7XG5cbmZ1bmN0aW9uIGdldEZvcm1BcnJheShzaXplOiBudW1iZXIpOiBGb3JtQXJyYXkge1xuICBjb25zdCBhcnIgPSBbXTtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNpemU7IGkrKykge1xuICAgIGFyci5wdXNoKG5ldyBGb3JtQ29udHJvbCgnJykpO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBGb3JtQXJyYXkoYXJyKTtcbn1cblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIE93bERhdGVUaW1lTW9kdWxlLCBPd2xOYXRpdmVEYXRlVGltZU1vZHVsZSwgUXVpbGxFZGl0b3JDb21wb25lbnQsIEZvcm1zTW9kdWxlXSxcbiAgc2VsZWN0b3I6ICdueHQtaW5wdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vbnh0LWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbnh0LWlucHV0LmNvbXBvbmVudC5jc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBOeHRJbnB1dCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE54dElucHV0KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBOeHRJbnB1dCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAvLyBTS1MzMEpBTjI1XG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgPSAnJzsgIC8vIElucHV0IGxhYmVsXG4gIEBJbnB1dCgpIGxhYmVsRm9udDogc3RyaW5nID0gJyc7ICAvLyBJbnB1dCBsYWJlbCBmb250XG4gIEBJbnB1dCgpIGxhYmVsV2VpZ2h0OiBzdHJpbmcgPSAnJzsgIC8vIElucHV0IGxhYmVsIFdlaWdodFxuICBASW5wdXQoKSBpbnB1dFdlaWdodDogc3RyaW5nID0gJyc7ICAvLyBJbnB1dCBXZWlnaHRcbiAgQElucHV0KCkgbGFiZWxTaXplOiBzdHJpbmcgPSAnJzsgIC8vIElucHV0IGxhYmVsIFNpemVcbiAgQElucHV0KCkgaW5wdXRWYWx1ZVNpemU6IHN0cmluZyA9ICcnOyAvL0lucHV0IHZhbHVlIFNpemVcbiAgQElucHV0KCkgbGFiZWxDb2xvcjogc3RyaW5nID0gJyc7ICAvLyBJbnB1dCBsYWJlbCBDb2xvclxuICBASW5wdXQoKSBzaG93TGFiZWw6IHN0cmluZyA9ICcnOyAgLy8gSW5wdXQgbGFiZWwgQ29sb3JcbiAgQElucHV0KCkgc3ZnSGVpZ2h0OiBzdHJpbmcgPSAnJzsgIC8vIElucHV0IHN2ZyBoZWlnaHRcbiAgQElucHV0KCkgc3ZnV2lkdGg6IHN0cmluZyA9ICcnOyAgLy8gSW5wdXQgc3ZnIHdlaWdodFxuICBASW5wdXQoKSB0eXBlOiBzdHJpbmcgPSAndGV4dCc7ICAvLyBJbnB1dCB0eXBlICh0ZXh0LCBlbWFpbCwgcGFzc3dvcmQpXG4gIEBJbnB1dCgpIGlucHV0SWNvblJpZ2h0U3JjOiBzdHJpbmcgPSAnJzsgIC8vIFBhdGggdG8gU1ZHIGljb25cbiAgQElucHV0KCkgaW5wdXRJY29uTGVmdFNyYzogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHJlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7ICAvLyBSZXF1aXJlZCB2YWxpZGF0aW9uXG4gIEBJbnB1dCgpIG1pbkxlbmd0aD86IG51bWJlcjsgIC8vIE1pbiBsZW5ndGggdmFsaWRhdGlvblxuICBASW5wdXQoKSBwYXR0ZXJuPzogYW55OyAgLy8gUGF0dGVybiB2YWxpZGF0aW9uIChlLmcuLCBlbWFpbCByZWdleClcbiAgQElucHV0KCkgZXJyb3JNZXNzYWdlczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9OyAgIC8vIEN1c3RvbSBlcnJvciBtZXNzYWdlc1xuICBASW5wdXQoKSBtYXhMZW5ndGg6IG51bWJlciA9IDA7IC8vIE1heGltdW0gbGVuZ3RoIHZhbGlkYXRpb25cbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBpbnB1dEJnQ29sb3I6IHN0cmluZyA9ICcnOyAvLyBVc2UgdGhpcyBpbnB1dCB0byBzZXQgYSBjdXN0b20gYmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIGlucHV0LlxuICBASW5wdXQoKSBpbnB1dEJvcmRlcjogc3RyaW5nID0gJyc7IC8vIFVzZSB0aGlzIGlucHV0IHRvIHNldCBhIGN1c3RvbSBib3JkZXIgc3R5bGUgZm9yIHRoZSBpbnB1dC5cbiAgQElucHV0KCkgcGxhY2Vob2xkZXJDb2xvcjogc3RyaW5nID0gJyc7IC8vIFVzZSB0aGlzIGlucHV0IHRvIHNldCBhIGN1c3RvbSB0ZXh0IGNvbG9yIGZvciB0aGUgaW5wdXQuXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyRm9udDogc3RyaW5nID0gJyc7IC8vIFVzZSB0aGlzIGlucHV0IHRvIHNldCBhIGN1c3RvbSBwbGFjZWhvbGRlciBmb250XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyV2VpZ2h0OiBzdHJpbmcgPSAnJzsgLy8gVXNlIHRoaXMgaW5wdXQgdG8gc2V0IGEgY3VzdG9tXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyU2l6ZTogc3RyaW5nID0gJyc7IC8vIFVzZSB0aGlzIGlucHV0IHRvIHNldCBhIGN1c3RvbSBzaXplXG4gIEBJbnB1dCgpIGlucHV0VGV4dENvbG9yOiBzdHJpbmcgPSAnJzsgLy8gVXNlIHRoaXMgaW5wdXQgdG8gc2V0IGEgY3VzdG9tIHRleHQgY29sb3IgZm9yIHRoZSBpbnB1dCB2YWx1ZS5cbiAgQElucHV0KCkgaW5wdXRIZWlnaHQ6IHN0cmluZyA9ICcnOyAvLyBVc2UgdGhpcyBpbnB1dCB0byBzZXQgYSBjdXN0b20gaGVpZ2h0IGZvciB0aGUgaW5wdXQuXG4gIEBJbnB1dCgpIGlucHV0V2lkdGg6IHN0cmluZyA9ICcnOyAvLyBVc2UgdGhpcyBpbnB1dCB0byBzZXQgYSBjdXN0b20gd2lkdGggZm9yIHRoZSBJbnB1dC5cbiAgQElucHV0KCkgaW5wdXRJZDogc3RyaW5nID0gJ2RlZmF1bHQnOyAvLyBVc2UgdGhpcyBpbnB1dCB0byBzZXQgYSBjdXN0b20gSUQgZm9yIHRoZSBpbnB1dC4gRGVmYXVsdCBpcyAnZGVmYXVsdCcuXG4gIEBJbnB1dCgpIGlucHV0Qm9yZGVyU2l6ZTogc3RyaW5nID0gJzBweCc7IC8vIFVzZSB0aGlzIGlucHV0IHRvIHNldCB0aGUgYm9yZGVyIHNpemUgb2YgdGhlIGlucHV0LiBEZWZhdWx0IGlzICcwcHgnIGZvciBubyBib3JkZXIuXG4gIEBJbnB1dCgpIGlucHV0Q29uZmlnOiBhbnkgPSAnJzsgLy8gVXNlIHRoaXMgaW5wdXQgdG8gcGFzcyBjb25maWd1cmF0aW9uIHNldHRpbmdzIGZvciB0aGUgaW5wdXQgKGUuZy4sIHN0eWxlcywgYWN0aW9ucykuXG4gIEBJbnB1dCgpIGNvbmZQYXNzVmFsOiBhbnkgPSAnJzsgLy8gUGFzc3dvcmQgdmFsdWUgdG8gY2hlY2sgaWYgdGhlIGN1cnJlbnQgZmllbGQgbWF0Y2hlcyB0aGUgY29uZmlybWVkIHBhc3N3b3JkXG4gIEBJbnB1dCgpIGNvbmZQYXNzOiBib29sZWFuID0gZmFsc2U7IC8vIFNldCB0byB0cnVlIHRvIGVuYWJsZSBwYXNzd29yZCBjb25maXJtYXRpb24gdmFsaWRhdGlvblxuICBASW5wdXQoKSBtb2RlOiAndmlldycgfCAnZWRpdCcgfCAncHJpbnQnID0gJ2VkaXQnOyAvLyBOZXcgbW9kZSBpbnB1dFxuICBASW5wdXQoKSB2YWx1ZTogYW55IDsgLy8gaW5wdXQgdmFsdWVcbiAgQElucHV0KCkgcXVlc3Rpb246IGFueSA9IHt9XG4gIEBJbnB1dCgpIHNob3dTdWdnZXN0aW9uOiBib29sZWFuID0gZmFsc2U7IC8vIHNob3dTdWdnZXN0aW9uIHRoZSBpbnB1dFxuICBASW5wdXQoKSBhcmlhT3ducz86IHN0cmluZztcbiAgQElucHV0KCkgYXJpYUhhc1BvcHVwPzogc3RyaW5nO1xuICBASW5wdXQoKSBpc0xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTsgLy8gU2V0IHRvIHRydWUgdG8gc2hvdyBhIGxvYWRpbmcgYW5pbWF0aW9uXG4gIEBJbnB1dCgpIG9wdGlvbnM6IGFueVtdID0gW107IC8vIEZvciByYWRpbyBidXR0b25zXG4gIEBJbnB1dCgpIG1pbkRhdGU6IGFueTsgLy8gRm9yIGRhdGUvZGF0ZXRpbWUgcGlja2VyXG4gIEBJbnB1dCgpIG1heERhdGU6IGFueTsgLy8gRm9yIGRhdGUvZGF0ZXRpbWUgcGlja2VyXG4gIEBJbnB1dCgpIHJvd3M6IG51bWJlciA9IDM7IC8vIEZvciB0ZXh0YXJlYVxuICBASW5wdXQoKSBmcm9tOiBhbnk7XG4gIEBJbnB1dCgpIGh5cGVyTGluazogYW55O1xuXG4gIHJhd0lucHV0VmFsOiBhbnk7XG4gIEBJbnB1dCgpIC8vb3RwIGJveCBzaXplXG4gIHNldCBzaXplKHNpemU6IG51bWJlcikge1xuICAgIHRoaXMuaW5wdXRzID0gZ2V0Rm9ybUFycmF5KHNpemUpO1xuICAgIHRoaXMuI3NpemUgPSBzaXplO1xuICB9XG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpOyAgLy8gRW1pdHMgaW5wdXQgdmFsdWUgY2hhbmdlc1xuICBAT3V0cHV0KCkgaW5wdXRWYWx1ZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpOyBcbiAgQE91dHB1dCgpIG9uQmx1ciA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgb25Gb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgdG9nZ2xlRW1pdCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgbmF0aXZlSW5wdXRSZWYgPSBuZXcgRXZlbnRFbWl0dGVyPEVsZW1lbnRSZWY+KCk7XG4gIEBPdXRwdXQoKSByZW1vdmVWYWx1ZUVtaXQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIGh5cGVybGlua0VtaXQgPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xuICBcbiAgQFZpZXdDaGlsZHJlbignaW5wdXRFbCcpIGlucHV0RWxzITogUXVlcnlMaXN0PEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4+O1xuICAvLyBEYXRlL1RpbWUgcGlja2VyIHJlZmVyZW5jZXNcbiAgQFZpZXdDaGlsZHJlbignZHQnKSBkYXRlVGltZVBpY2tlcjogYW55O1xuICBAVmlld0NoaWxkcmVuKCdkdDEnKSBkYXRlUGlja2VyOiBhbnk7XG4gIEBWaWV3Q2hpbGRyZW4oJ2R0MicpIHRpbWVQaWNrZXI6IGFueTtcbiAgQFZpZXdDaGlsZCgnZHQnKSBkdFBpY2tlcjogT3dsRGF0ZVRpbWVDb21wb25lbnQ8RGF0ZT47XG4gIEBWaWV3Q2hpbGQoJ2R0MicpIGRQaWNrZXI6IE93bERhdGVUaW1lQ29tcG9uZW50PERhdGU+O1xuICBAVmlld0NoaWxkKCdpbnB1dFJlZicsIHsgc3RhdGljOiBmYWxzZSB9KSBpbnB1dFJlZjogRWxlbWVudFJlZjtcblxuICAjc2l6ZSA9IDQ7XG4gICNzY2hlZHVsZWRGb2N1czogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgaW5wdXRzID0gZ2V0Rm9ybUFycmF5KHRoaXMuI3NpemUpO1xuICBjb250cm9sOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgnJyk7XG4gIGlzUGFzc3dvcmRWaXNpYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIGNvdW50cnlDb2RlOiBzdHJpbmcgPSAnJztcbiAgLy8gU0tTMjhGRUIyNSBjb3VudHJpZXMgbGlzdFxuICBjb3VudHJpZXMgPSBbXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiQWZnaGFuaXN0YW5cIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6bwn4erXCIsXG4gICAgICBcImNvZGVcIjogXCJBRlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrOTNcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs5M1swLTldezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis5MyA3MCAxMjMgNDU2N1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCLDhWxhbmQgSXNsYW5kc1wiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HpvCfh71cIixcbiAgICAgIFwiY29kZVwiOiBcIkFYXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIiszNThcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCszNThbMC05XXs2LDEyfSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMzU4IDE4IDEyMyA0NVwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJBbGJhbmlhXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4em8J+HsVwiLFxuICAgICAgXCJjb2RlXCI6IFwiQUxcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzM1NVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzM1NVswLTldezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIiszNTUgNjkgMTIzIDQ1NjdcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiQWxnZXJpYVwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HqfCfh79cIixcbiAgICAgIFwiY29kZVwiOiBcIkRaXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisyMTNcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsyMTNbMC05XXs5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMjEzIDU1MSAyMzQgNTY3XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkFtZXJpY2FuIFNhbW9hXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4em8J+HuFwiLFxuICAgICAgXCJjb2RlXCI6IFwiQVNcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzE2ODRcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsxNjg0WzAtOV17N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzE2ODQgMTIzIDQ1NjdcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiQW5kb3JyYVwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HpvCfh6lcIixcbiAgICAgIFwiY29kZVwiOiBcIkFEXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIiszNzZcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCszNzZbMC05XXs2fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMzc2IDEyMyA0NTZcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiQW5nb2xhXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4em8J+HtFwiLFxuICAgICAgXCJjb2RlXCI6IFwiQU9cIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzI0NFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzI0NFswLTldezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyNDQgOTIzIDEyMyA0NTZcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiQW5ndWlsbGFcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6bwn4euXCIsXG4gICAgICBcImNvZGVcIjogXCJBSVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMTI2NFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzEyNjRbMC05XXs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMTI2NCAyMzUgMTIzNFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJBbnRhcmN0aWNhXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4em8J+HtlwiLFxuICAgICAgXCJjb2RlXCI6IFwiQVFcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzY3MlwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzY3MlswLTldezYsMTJ9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis2NzIgMTIzIDQ1NlwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJBbnRpZ3VhIGFuZCBCYXJidWRhXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4em8J+HrFwiLFxuICAgICAgXCJjb2RlXCI6IFwiQUdcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzEyNjhcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsxMjY4WzAtOV17N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzEyNjggMjM0IDU2NzhcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiQXJnZW50aW5hXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4em8J+Ht1wiLFxuICAgICAgXCJjb2RlXCI6IFwiQVJcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzU0XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNTRbMC05XXsxMCwxMX0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzU0IDkgMTEgMTIzNCA1Njc4XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkFybWVuaWFcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6bwn4eyXCIsXG4gICAgICBcImNvZGVcIjogXCJBTVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMzc0XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMzc0WzAtOV17OH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzM3NCA5NCAxMjMgNDU2XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkFydWJhXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4em8J+HvFwiLFxuICAgICAgXCJjb2RlXCI6IFwiQVdcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzI5N1wiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzI5N1swLTldezd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyOTcgNTYwIDEyMzRcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiQXVzdHJhbGlhXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4em8J+HulwiLFxuICAgICAgXCJjb2RlXCI6IFwiQVVcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzYxXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNjFbMC05XXs5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNjEgNCAxMjM0IDU2NzhcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiQXVzdHJpYVwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HpvCfh7lcIixcbiAgICAgIFwiY29kZVwiOiBcIkFUXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis0M1wiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzQzWzAtOV17MTAsMTJ9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis0MyA2NjQgMTIzIDQ1NjdcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiQXplcmJhaWphblwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HpvCfh79cIixcbiAgICAgIFwiY29kZVwiOiBcIkFaXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis5OTRcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs5OTRbMC05XXs5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrOTk0IDUwIDEyMyA0NSA2N1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJCYWhhbWFzXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4en8J+HuFwiLFxuICAgICAgXCJjb2RlXCI6IFwiQlNcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzEyNDJcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsxMjQyWzAtOV17N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzEyNDIgMzIzIDEyMzRcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiQmFocmFpblwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+Hp/Cfh61cIixcbiAgICAgIFwiY29kZVwiOiBcIkJIXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis5NzNcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs5NzNbMC05XXs4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrOTczIDMxMjMgNDU2N1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJCYW5nbGFkZXNoXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4en8J+HqVwiLFxuICAgICAgXCJjb2RlXCI6IFwiQkRcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzg4MFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzg4MFswLTldezEwfSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrODgwIDE3MTIgMzQ1Njc4XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkJhcmJhZG9zXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4en8J+Hp1wiLFxuICAgICAgXCJjb2RlXCI6IFwiQkJcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzEyNDZcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsxMjQ2WzAtOV17N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzEyNDYgMjUwIDEyMzRcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiQmVsYXJ1c1wiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+Hp/Cfh75cIixcbiAgICAgIFwiY29kZVwiOiBcIkJZXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIiszNzVcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCszNzVbMC05XXs5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMzc1IDI5IDEyMyA0NSA2N1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJCZWxnaXVtXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4en8J+HqlwiLFxuICAgICAgXCJjb2RlXCI6IFwiQkVcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzMyXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMzJbMC05XXs5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMzIgNDcwIDEyIDM0IDU2XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkJlbGl6ZVwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+Hp/Cfh79cIixcbiAgICAgIFwiY29kZVwiOiBcIkJaXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis1MDFcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs1MDFbMC05XXs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNTAxIDYxMCAxMjM0XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkJlbmluXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4en8J+Hr1wiLFxuICAgICAgXCJjb2RlXCI6IFwiQkpcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzIyOVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzIyOVswLTldezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyMjkgOTAgMTIgMzQ1NlwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJCZXJtdWRhXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4en8J+HslwiLFxuICAgICAgXCJjb2RlXCI6IFwiQk1cIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzE0NDFcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsxNDQxWzAtOV17N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzE0NDEgMzcwIDEyMzRcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiQmh1dGFuXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4en8J+HuVwiLFxuICAgICAgXCJjb2RlXCI6IFwiQlRcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzk3NVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzk3NVswLTldezcsOH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzk3NSAxNyAxMjMgNDU2XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkJvbGl2aWEsIFBsdXJpbmF0aW9uYWwgU3RhdGUgb2YgYm9saXZpYVwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+Hp/Cfh7RcIixcbiAgICAgIFwiY29kZVwiOiBcIkJPXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis1OTFcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs1OTFbMS05XVxcXFxkezd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis1OTEgMTIzNDU2NzhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIis1OTEgNzAxMjM0NTZcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiQm9zbmlhIGFuZCBIZXJ6ZWdvdmluYVwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+Hp/Cfh6ZcIixcbiAgICAgIFwiY29kZVwiOiBcIkJBXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIiszODdcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCszODdbMC05XXs4LDl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIiszODcgNjEgMTIzIDQ1NlwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJCb3Rzd2FuYVwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+Hp/Cfh7xcIixcbiAgICAgIFwiY29kZVwiOiBcIkJXXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisyNjdcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsyNjdbMC05XXs4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMjY3IDcxIDEyMyA0NTZcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiQm91dmV0IElzbGFuZFwiLFxuICAgICAgXCJjb2RlXCI6IFwiQlZcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzQ3XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNDdcXFxcZHs4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNDcgWFhYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzQ3IFhYIFhYIFhYIFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4en8J+Hu1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJCcmF6aWxcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6fwn4e3XCIsXG4gICAgICBcImNvZGVcIjogXCJCUlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNTVcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs1NVswLTldezEwLDExfSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNTUgMTEgOTEyMzQgNTY3OFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJCcml0aXNoIEluZGlhbiBPY2VhbiBUZXJyaXRvcnlcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh67wn4e0XCIsXG4gICAgICBcImNvZGVcIjogXCJJT1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjQ2XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMjQ2WzAtOV17N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzI0NiAzODAgMTIzNFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJCcnVuZWkgRGFydXNzYWxhbVwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+Hp/Cfh7NcIixcbiAgICAgIFwiY29kZVwiOiBcIkJOXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis2NzNcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs2NzNbMC05XXs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNjczIDcxMiAzNDU2XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkJ1bGdhcmlhXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4en8J+HrFwiLFxuICAgICAgXCJjb2RlXCI6IFwiQkdcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzM1OVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzM1OVswLTldezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIiszNTkgODcgMTIzIDQ1NjdcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiQnVya2luYSBGYXNvXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4en8J+Hq1wiLFxuICAgICAgXCJjb2RlXCI6IFwiQkZcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzIyNlwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzIyNlswLTldezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyMjYgNzAgMTIgMzQ1NlwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJCdXJ1bmRpXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4en8J+HrlwiLFxuICAgICAgXCJjb2RlXCI6IFwiQklcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzI1N1wiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzI1N1swLTldezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyNTcgNzkgMTIgMzQ1NlwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJDYW1ib2RpYVwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HsPCfh61cIixcbiAgICAgIFwiY29kZVwiOiBcIktIXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis4NTVcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs4NTVbMC05XXs4LDl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis4NTUgOTEgMjM0IDU2N1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJDYW1lcm9vblwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HqPCfh7JcIixcbiAgICAgIFwiY29kZVwiOiBcIkNNXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisyMzdcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsyMzdbMC05XXs4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMjM3IDYgNzEgMjMgNDUgNjdcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiQ2FuYWRhXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4eo8J+HplwiLFxuICAgICAgXCJjb2RlXCI6IFwiQ0FcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzFcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsxWzAtOV17MTB9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisxIDIwNCAxMjMgNDU2N1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJDYXBlIFZlcmRlXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4eo8J+Hu1wiLFxuICAgICAgXCJjb2RlXCI6IFwiQ1ZcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzIzOFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzIzOFswLTldezd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyMzggOTkxIDIzNDVcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiQ2F5bWFuIElzbGFuZHNcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Dwn4e+XCIsXG4gICAgICBcImNvZGVcIjogXCJLWVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMzQ1XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMzQ1WzAtOV17N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzM0NSAzMjEgMTIzNFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJDZW50cmFsIEFmcmljYW4gUmVwdWJsaWNcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6jwn4erXCIsXG4gICAgICBcImNvZGVcIjogXCJDRlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjM2XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMjM2WzAtOV17OH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzIzNiA3MiAxMiAzNDU2XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkNoYWRcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7nwn4epXCIsXG4gICAgICBcImNvZGVcIjogXCJURFwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjM1XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMjM1WzAtOV17OH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzIzNSA2MyAxMiAzNDU2XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkNoaWxlXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4eo8J+HsVwiLFxuICAgICAgXCJjb2RlXCI6IFwiQ0xcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzU2XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNTZbMC05XXs5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNTYgOSAxMjM0IDU2NzhcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiQ2hpbmFcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6jwn4ezXCIsXG4gICAgICBcImNvZGVcIjogXCJDTlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrODZcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs4NlswLTldezExfSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrODYgMTMxIDIzNDUgNjc4OVwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJDaHJpc3RtYXMgSXNsYW5kXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4eo8J+HvVwiLFxuICAgICAgXCJjb2RlXCI6IFwiQ1hcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzYxXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNjFbMC05XXs5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNjEgNCAxMjM0IDU2NzhcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiQ29jb3MgKEtlZWxpbmcpIElzbGFuZHNcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6jwn4eoXCIsXG4gICAgICBcImNvZGVcIjogXCJDQ1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNjFcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs2MVswLTldezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis2MSA0IDEyMzQgNTY3OFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJDb2xvbWJpYVwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HqPCfh7RcIixcbiAgICAgIFwiY29kZVwiOiBcIkNPXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis1N1wiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzU3WzAtOV17MTB9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis1NyAzMTIgMzQ1IDY3ODlcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiQ29tb3Jvc1wiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HsPCfh7JcIixcbiAgICAgIFwiY29kZVwiOiBcIktNXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisyNjlcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsyNjlbMC05XXs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMjY5IDMyMSAyMzQ1XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkNvbmdvXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4eo8J+HrFwiLFxuICAgICAgXCJjb2RlXCI6IFwiQ0dcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzI0MlwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzI0MlswLTldezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyNDIgMDYgMTIzIDQ1NjdcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiQ29uZ28sIFRoZSBEZW1vY3JhdGljIFJlcHVibGljIG9mIHRoZSBDb25nb1wiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HqPCfh6lcIixcbiAgICAgIFwiY29kZVwiOiBcIkNEXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisyNDNcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsyNDNbODldXFxcXGR7OH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzI0MyA5WFhYWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIisyNDMgOTkxMjM0NTY3XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkNvb2sgSXNsYW5kc1wiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HqPCfh7BcIixcbiAgICAgIFwiY29kZVwiOiBcIkNLXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis2ODJcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs2ODJbMC05XXs1fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNjgyIDcxIDIzNFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJDb3N0YSBSaWNhXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4eo8J+Ht1wiLFxuICAgICAgXCJjb2RlXCI6IFwiQ1JcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzUwNlwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzUwNlswLTldezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis1MDYgODEyMyA0NTY3XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkNvdGUgZCdJdm9pcmVcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6jwn4euXCIsXG4gICAgICBcImNvZGVcIjogXCJDSVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjI1XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMjI1WzAtOV17OH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzIyNSAwMSAyMyA0NSA2N1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJDcm9hdGlhXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4et8J+Ht1wiLFxuICAgICAgXCJjb2RlXCI6IFwiSFJcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzM4NVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzM4NVswLTldezgsOX0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzM4NSA5OCAxMjMgNDU2XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkN1YmFcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6jwn4e6XCIsXG4gICAgICBcImNvZGVcIjogXCJDVVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNTNcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs1M1swLTldezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis1MyA1IDEyMzQgNTY3OFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJDeXBydXNcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6jwn4e+XCIsXG4gICAgICBcImNvZGVcIjogXCJDWVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMzU3XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMzU3WzAtOV17OH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzM1NyA5NiAxMjMgNDU2XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkN6ZWNoIFJlcHVibGljXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4eo8J+Hv1wiLFxuICAgICAgXCJjb2RlXCI6IFwiQ1pcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzQyMFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzQyMFswLTldezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis0MjAgNjAxIDEyMyA0NTZcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiRGVubWFya1wiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HqfCfh7BcIixcbiAgICAgIFwiY29kZVwiOiBcIkRLXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis0NVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzQ1WzAtOV17OH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzQ1IDIwIDEyIDM0IDU2XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkRqaWJvdXRpXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ep8J+Hr1wiLFxuICAgICAgXCJjb2RlXCI6IFwiREpcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzI1M1wiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzI1M1swLTldezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyNTMgNzcgMTIgMzQgNTZcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiRG9taW5pY2FcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6nwn4eyXCIsXG4gICAgICBcImNvZGVcIjogXCJETVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMTc2N1wiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzE3NjdbMC05XXs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMTc2NyAyMzUgMTIzNFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJEb21pbmljYW4gUmVwdWJsaWNcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6nwn4e0XCIsXG4gICAgICBcImNvZGVcIjogXCJET1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMTg0OVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzE4NDlbMC05XXs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMTg0OSAyMzQgNTY3OFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJFY3VhZG9yXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4eq8J+HqFwiLFxuICAgICAgXCJjb2RlXCI6IFwiRUNcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzU5M1wiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzU5M1swLTldezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis1OTMgOTkgMTIzIDQ1NjdcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiRWd5cHRcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6rwn4esXCIsXG4gICAgICBcImNvZGVcIjogXCJFR1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjBcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsyMFswLTldezEwfSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMjAgMTAwIDEyMyA0NTY3XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkVsIFNhbHZhZG9yXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e48J+Hu1wiLFxuICAgICAgXCJjb2RlXCI6IFwiU1ZcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzUwM1wiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzUwM1swLTldezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis1MDMgNzEyMyA0NTY3XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkVxdWF0b3JpYWwgR3VpbmVhXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4es8J+HtlwiLFxuICAgICAgXCJjb2RlXCI6IFwiR1FcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzI0MFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzI0MFswLTldezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyNDAgMjIyIDEyMyA0NTZcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiRXJpdHJlYVwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HqvCfh7dcIixcbiAgICAgIFwiY29kZVwiOiBcIkVSXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisyOTFcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsyOTFbMC05XXs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMjkxIDcgMTIzIDQ1NlwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJFc3RvbmlhXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4eq8J+HqlwiLFxuICAgICAgXCJjb2RlXCI6IFwiRUVcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzM3MlwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzM3MlswLTldezcsOH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzM3MiA1MTIzIDQ1NlwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJFdGhpb3BpYVwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HqvCfh7lcIixcbiAgICAgIFwiY29kZVwiOiBcIkVUXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisyNTFcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsyNTFbMC05XXs5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMjUxIDkxIDEyMyA0NTY3XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkZhbGtsYW5kIElzbGFuZHMgKE1hbHZpbmFzKVwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+Hq/Cfh7BcIixcbiAgICAgIFwiY29kZVwiOiBcIkZLXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis1MDBcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs1MDBcXFxcZHs1fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNTAwIFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrNTAwIDEyMzQ1XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkZhcm9lIElzbGFuZHNcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6vwn4e0XCIsXG4gICAgICBcImNvZGVcIjogXCJGT1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjk4XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMjk4WzAtOV17Nn0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzI5OCAxMjMgNDU2XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkZpamlcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6vwn4evXCIsXG4gICAgICBcImNvZGVcIjogXCJGSlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNjc5XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNjc5WzAtOV17Nyw4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNjc5IDcwMSAyMzQ1XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkZpbmxhbmRcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6vwn4euXCIsXG4gICAgICBcImNvZGVcIjogXCJGSVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMzU4XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMzU4WzAtOV17NiwxMn0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzM1OCA0MCAxMjMgNDU2N1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJGcmFuY2VcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6vwn4e3XCIsXG4gICAgICBcImNvZGVcIjogXCJGUlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMzNcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCszM1swLTldezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIiszMyA2IDEyIDM0IDU2IDc4XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkZyZW5jaCBHdWlhbmFcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6zwn4erXCIsXG4gICAgICBcImNvZGVcIjogXCJHRlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNTk0XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNTk0WzAtOV17OX0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzU5NCA2OTQgMTIgMzQgNTZcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiRnJlbmNoIFBvbHluZXNpYVwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HtfCfh6tcIixcbiAgICAgIFwiY29kZVwiOiBcIlBGXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis2ODlcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs2ODlbMC05XXs4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNjg5IDg3IDEyIDM0IDU2XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkZyZW5jaCBTb3V0aGVybiBUZXJyaXRvcmllc1wiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HufCfh6tcIixcbiAgICAgIFwiY29kZVwiOiBcIlRGXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisyNjJcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsyNjJbMC05XXs5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMjYyIDYzOSAxMiAzNCA1NlwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJHYWJvblwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HrPCfh6ZcIixcbiAgICAgIFwiY29kZVwiOiBcIkdBXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisyNDFcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsyNDFbMC05XXs4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMjQxIDA2IDEyIDM0IDU2XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkdhbWJpYVwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HrPCfh7JcIixcbiAgICAgIFwiY29kZVwiOiBcIkdNXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisyMjBcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsyMjBbMC05XXs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMjIwIDMwMSAyMzQ1XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkdlb3JnaWFcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6zwn4eqXCIsXG4gICAgICBcImNvZGVcIjogXCJHRVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrOTk1XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrOTk1WzAtOV17OX0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzk5NSA1NTUgMTIgMzQgNTZcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiR2VybWFueVwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HqfCfh6pcIixcbiAgICAgIFwiY29kZVwiOiBcIkRFXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis0OVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzQ5WzAtOV17MTAsMTF9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis0OSAxNTEgMTIzNCA1Njc4XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkdoYW5hXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4es8J+HrVwiLFxuICAgICAgXCJjb2RlXCI6IFwiR0hcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzIzM1wiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzIzM1swLTldezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyMzMgMjQgMTIzIDQ1NjdcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiR2licmFsdGFyXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4es8J+HrlwiLFxuICAgICAgXCJjb2RlXCI6IFwiR0lcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzM1MFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzM1MFswLTldezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIiszNTAgNTcxMjM0NTZcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiR3JlZWNlXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4es8J+Ht1wiLFxuICAgICAgXCJjb2RlXCI6IFwiR1JcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzMwXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMzBbMC05XXsxMH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzMwIDY5MSAyMzQgNTY3OFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJHcmVlbmxhbmRcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6zwn4exXCIsXG4gICAgICBcImNvZGVcIjogXCJHTFwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjk5XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMjk5WzAtOV17Nn0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzI5OSAyMiAxMiAzNFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJHcmVuYWRhXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4es8J+HqVwiLFxuICAgICAgXCJjb2RlXCI6IFwiR0RcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzE0NzNcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsxNDczWzAtOV17N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzE0NzMgNDAzIDEyMzRcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiR3VhZGVsb3VwZVwiLFxuICAgICAgXCJjb2RlXCI6IFwiR1BcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzU5MFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzU5MFs2N11cXFxcZHs4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNTkwIDZYWFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrNTkwIFhYWCBYWCBYWCBYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HrPCfh7VcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiR3VhbVwiLFxuICAgICAgXCJjb2RlXCI6IFwiR1VcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzE2NzFcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsxNjcxXFxcXGR7N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzE2NzEgWFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrMTY3MSBYWFggWFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HrPCfh7pcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiR3VhdGVtYWxhXCIsXG4gICAgICBcImNvZGVcIjogXCJHVFwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNTAyXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNTAyWzItOV1cXFxcZHs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNTAyIDhYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis1MDIgWFhYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4es8J+HuVwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJHdWVybnNleVwiLFxuICAgICAgXCJjb2RlXCI6IFwiR0dcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzQ0XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNDRbMTQ4N11cXFxcZHs5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNDQgMTQ4MSBYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzQ0IDE0ODEgWFhYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4es8J+HrFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJHdWluZWFcIixcbiAgICAgIFwiY29kZVwiOiBcIkdOXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisyMjRcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsyMjRcXFxcZHs5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMjI0IFhYWFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrMjI0IFhYWCBYWFggWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4es8J+Hs1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJHdWluZWEtQmlzc2F1XCIsXG4gICAgICBcImNvZGVcIjogXCJHV1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjQ1XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMjQ1XFxcXGR7N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzI0NSBYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIisyNDUgWFhYIFhYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6zwn4e8XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkd1eWFuYVwiLFxuICAgICAgXCJjb2RlXCI6IFwiR1lcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzU5MlwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzU5MlsyLTldXFxcXGR7Nn0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzU5MiA2WFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis1OTIgWFhYIFhYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6zwn4e+XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkhhaXRpXCIsXG4gICAgICBcImNvZGVcIjogXCJIVFwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNTA5XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNTA5WzItOV1cXFxcZHs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNTA5IDJYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis1MDkgWFhYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4et8J+HuVwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJIZWFyZCBJc2xhbmQgYW5kIE1jZG9uYWxkIElzbGFuZHNcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh63wn4eyXCIsXG4gICAgICBcImNvZGVcIjogXCJITVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNjcyXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNjcyXFxcXGR7Nn0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzY3MiBYWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIis2NzIgMTIzNDU2XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkhvbHkgU2VlIChWYXRpY2FuIENpdHkgU3RhdGUpXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e78J+HplwiLFxuICAgICAgXCJjb2RlXCI6IFwiVkFcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzM3OVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzM3OVxcXFxkezEwfSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMzc5IFhYWFhYWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIiszNzkgMDYxMjM0NTY3OFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJIb25kdXJhc1wiLFxuICAgICAgXCJjb2RlXCI6IFwiSE5cIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzUwNFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzUwNFsyLTldXFxcXGR7N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzUwNCA5WFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrNTA0IFhYWFggWFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HrfCfh7NcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiSG9uZyBLb25nXCIsXG4gICAgICBcImNvZGVcIjogXCJIS1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrODUyXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrODUyWzItOV1cXFxcZHs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrODUyIDVYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis4NTIgWFhYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4et8J+HsFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJIdW5nYXJ5XCIsXG4gICAgICBcImNvZGVcIjogXCJIVVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMzZcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCszNlsxLTldXFxcXGR7Nyw4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMzYgMzBYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIiszNiBYWCBYWFggWFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HrfCfh7pcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiSWNlbGFuZFwiLFxuICAgICAgXCJjb2RlXCI6IFwiSVNcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzM1NFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzM1NFxcXFxkezd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIiszNTQgWFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrMzU0IFhYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4eu8J+HuFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJJbmRpYVwiLFxuICAgICAgXCJjb2RlXCI6IFwiSU5cIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzkxXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrOTFbNjc4OV1cXFxcZHs5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrOTEgOVhYWFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrOTEgWFhYWFggWFhYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh67wn4ezXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkluZG9uZXNpYVwiLFxuICAgICAgXCJjb2RlXCI6IFwiSURcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzYyXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNjJbOF1cXFxcZHs5LDEwfSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNjIgOFhYWFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrNjIgOFhYIFhYWFggWFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HrvCfh6lcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiSXJhbiwgSXNsYW1pYyBSZXB1YmxpYyBvZiBQZXJzaWFuIEd1bGZcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh67wn4e3XCIsXG4gICAgICBcImNvZGVcIjogXCJJUlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrOThcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs5OFsxLTldXFxcXGR7OX0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzk4IDlYWFhYWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIis5OCA5MTIzNDU2Nzg5XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIklyYXFcIixcbiAgICAgIFwiY29kZVwiOiBcIklRXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis5NjRcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs5NjRbN11cXFxcZHs5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrOTY0IDdYWFhYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzk2NCA3WFggWFhYIFhYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh67wn4e2XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIklyZWxhbmRcIixcbiAgICAgIFwiY29kZVwiOiBcIklFXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIiszNTNcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCszNTNbMS05XVxcXFxkezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIiszNTMgOFhYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIiszNTMgWFggWFhYIFhYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh67wn4eqXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIklzbGUgb2YgTWFuXCIsXG4gICAgICBcImNvZGVcIjogXCJJTVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNDRcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs0NFsxNjI0XVxcXFxkezZ9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis0NCAxNjI0IFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrNDQgMTYyNCBYWFhYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh67wn4eyXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIklzcmFlbFwiLFxuICAgICAgXCJjb2RlXCI6IFwiSUxcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzk3MlwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzk3Mls1LTldXFxcXGR7OH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzk3MiA1WFhYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzk3MiA1WCBYWFggWFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HrvCfh7FcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiSXRhbHlcIixcbiAgICAgIFwiY29kZVwiOiBcIklUXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIiszOVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzM5WzAtOV1cXFxcZHs5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMzkgM1hYWFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrMzkgM1hYIFhYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4eu8J+HuVwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJKYW1haWNhXCIsXG4gICAgICBcImNvZGVcIjogXCJKTVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMTg3NlwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzE4NzZcXFxcZHs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMTg3NiBYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIisxODc2IFhYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ev8J+HslwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJKYXBhblwiLFxuICAgICAgXCJjb2RlXCI6IFwiSlBcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzgxXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrODFbMC05XVxcXFxkezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis4MSA5WFhYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis4MSBYWCBYWFhYIFhYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6/wn4e1XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkplcnNleVwiLFxuICAgICAgXCJjb2RlXCI6IFwiSkVcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzQ0XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNDRbMTUzNF1cXFxcZHs2fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNDQgMTUzNCBYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzQ0IDE1MzQgWFhYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ev8J+HqlwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJKb3JkYW5cIixcbiAgICAgIFwiY29kZVwiOiBcIkpPXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis5NjJcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs5NjJbN11cXFxcZHs4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrOTYyIDdYWFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrOTYyIDcgWFhYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ev8J+HtFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJLYXpha2hzdGFuXCIsXG4gICAgICBcImNvZGVcIjogXCJLWlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrN1wiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzdbN11cXFxcZHs5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNyA3WFhYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis3IDdYWCBYWFggWFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HsPCfh79cIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiS2VueWFcIixcbiAgICAgIFwiY29kZVwiOiBcIktFXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisyNTRcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsyNTRbN11cXFxcZHs4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMjU0IDdYWFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrMjU0IDdYWCBYWFggWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ew8J+HqlwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJLaXJpYmF0aVwiLFxuICAgICAgXCJjb2RlXCI6IFwiS0lcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzY4NlwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzY4NlxcXFxkezV9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis2ODYgWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzY4NiBYWFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HsPCfh65cIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiS29yZWEsIERlbW9jcmF0aWMgUGVvcGxlJ3MgUmVwdWJsaWMgb2YgS29yZWFcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Dwn4e1XCIsXG4gICAgICBcImNvZGVcIjogXCJLUFwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrODUwXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrODUwXFxcXGR7NywxMH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzg1MCBYWFhYWFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrODUwIDIxMjM0NTY3ODlcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiS29yZWEsIFJlcHVibGljIG9mIFNvdXRoIEtvcmVhXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ew8J+Ht1wiLFxuICAgICAgXCJjb2RlXCI6IFwiS1JcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzgyXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrODJcXFxcZHs5LDEwfSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrODIgMTBYWFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzgyIDEwMTIzNDU2NzhcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiS29zb3ZvXCIsXG4gICAgICBcImNvZGVcIjogXCJYS1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMzgzXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMzgzWzQtOV1cXFxcZHs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMzgzIDRYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIiszODMgNFggWFhYIFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HvfCfh7BcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiS3V3YWl0XCIsXG4gICAgICBcImNvZGVcIjogXCJLV1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrOTY1XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrOTY1WzUtOV1cXFxcZHs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrOTY1IDVYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis5NjUgNVhYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ew8J+HvFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJLeXJneXpzdGFuXCIsXG4gICAgICBcImNvZGVcIjogXCJLR1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrOTk2XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrOTk2WzUtOV1cXFxcZHs4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrOTk2IDVYWFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrOTk2IFhYWCBYWFggWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ew8J+HrFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJMYW9zXCIsXG4gICAgICBcImNvZGVcIjogXCJMQVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrODU2XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrODU2WzJdXFxcXGR7OH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzg1NiAyWFhYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzg1NiAyMCBYWFggWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ex8J+HplwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJMYXR2aWFcIixcbiAgICAgIFwiY29kZVwiOiBcIkxWXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIiszNzFcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCszNzFbMl1cXFxcZHs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMzcxIDJYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIiszNzEgMlhYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ex8J+Hu1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJMZWJhbm9uXCIsXG4gICAgICBcImNvZGVcIjogXCJMQlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrOTYxXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrOTYxWzMtOV1cXFxcZHs2LDd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis5NjEgM1hYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrOTYxIDMgWFhYIFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HsfCfh6dcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiTGVzb3Rob1wiLFxuICAgICAgXCJjb2RlXCI6IFwiTFNcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzI2NlwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzI2NlsyLTldXFxcXGR7N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzI2NiA1WFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrMjY2IDVYWFggWFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HsfCfh7hcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiTGliZXJpYVwiLFxuICAgICAgXCJjb2RlXCI6IFwiTFJcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzIzMVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzIzMVs0LTldXFxcXGR7N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzIzMSA0WFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrMjMxIFhYIFhYWCBYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Hwn4e3XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkxpYnlhbiBBcmFiIEphbWFoaXJpeWFcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Hwn4e+XCIsXG4gICAgICBcImNvZGVcIjogXCJMWVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjE4XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMjE4Wzg5XVxcXFxkezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyMTggOVhYWFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrMjE4IDkxMjM0NTY3OFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJMaWVjaHRlbnN0ZWluXCIsXG4gICAgICBcImNvZGVcIjogXCJMSVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNDIzXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNDIzWzItOV1cXFxcZHs2fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNDIzIDZYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzQyMyBYWFggWFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HsfCfh65cIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiTGl0aHVhbmlhXCIsXG4gICAgICBcImNvZGVcIjogXCJMVFwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMzcwXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMzcwWzZdXFxcXGR7N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzM3MCA2WFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrMzcwIDZYWCBYWFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HsfCfh7lcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiTHV4ZW1ib3VyZ1wiLFxuICAgICAgXCJjb2RlXCI6IFwiTFVcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzM1MlwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzM1MlsyNjg5XVxcXFxkezd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIiszNTIgNlhYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzM1MiBYWFggWFhYIFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HsfCfh7pcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiTWFjYW9cIixcbiAgICAgIFwiY29kZVwiOiBcIk1PXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis4NTNcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs4NTNbNl1cXFxcZHs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrODUzIDZYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis4NTMgWFhYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ey8J+HtFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJNYWNlZG9uaWFcIixcbiAgICAgIFwiY29kZVwiOiBcIk1LXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIiszODlcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCszODlbMjddXFxcXGR7N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzM4OSA3WFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrMzg5IFhYIFhYWCBYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Lwn4ewXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIk1hZGFnYXNjYXJcIixcbiAgICAgIFwiY29kZVwiOiBcIk1HXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisyNjFcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsyNjFbM11cXFxcZHs4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMjYxIDNYWFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrMjYxIDNYIFhYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ey8J+HrFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJNYWxhd2lcIixcbiAgICAgIFwiY29kZVwiOiBcIk1XXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisyNjVcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsyNjVbMS05XVxcXFxkezd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyNjUgOVhYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzI2NSA5WFggWFhYIFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HsvCfh7xcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiTWFsYXlzaWFcIixcbiAgICAgIFwiY29kZVwiOiBcIk1ZXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis2MFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzYwWzEtOV1cXFxcZHs3LDl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis2MCAxWFhYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis2MCAxWCBYWFhYIFhYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Lwn4e+XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIk1hbGRpdmVzXCIsXG4gICAgICBcImNvZGVcIjogXCJNVlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrOTYwXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrOTYwWzctOV1cXFxcZHs2fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrOTYwIDdYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzk2MCBYWFggWFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HsvCfh7tcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiTWFsaVwiLFxuICAgICAgXCJjb2RlXCI6IFwiTUxcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzIyM1wiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzIyM1s2LTldXFxcXGR7N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzIyMyA3WFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrMjIzIFhYIFhYIFhYIFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ey8J+HsVwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJNYWx0YVwiLFxuICAgICAgXCJjb2RlXCI6IFwiTVRcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzM1NlwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzM1NlsyMzc5XVxcXFxkezd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIiszNTYgN1hYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzM1NiBYWFhYIFhYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Lwn4e5XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIk1hcnNoYWxsIElzbGFuZHNcIixcbiAgICAgIFwiY29kZVwiOiBcIk1IXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis2OTJcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs2OTJbMi05XVxcXFxkezZ9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis2OTIgMlhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrNjkyIFhYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ey8J+HrVwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJNYXJ0aW5pcXVlXCIsXG4gICAgICBcImNvZGVcIjogXCJNUVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNTk2XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNTk2WzYtN11cXFxcZHs4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNTk2IDZYWFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrNTk2IFhYWCBYWCBYWCBYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HsvCfh7ZcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiTWF1cml0YW5pYVwiLFxuICAgICAgXCJjb2RlXCI6IFwiTVJcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzIyMlwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzIyMlsyLTldXFxcXGR7N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzIyMiA0WFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrMjIyIFhYWFggWFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HsvCfh7dcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiTWF1cml0aXVzXCIsXG4gICAgICBcImNvZGVcIjogXCJNVVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjMwXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMjMwWzItOV1cXFxcZHs2fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMjMwIDVYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzIzMCBYWFhYIFhYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Lwn4e6XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIk1heW90dGVcIixcbiAgICAgIFwiY29kZVwiOiBcIllUXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisyNjJcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsyNjJbMi05XVxcXFxkezd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyNjIgNlhYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzI2MiBYWFggWFggWFggWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh77wn4e5XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIk1leGljb1wiLFxuICAgICAgXCJjb2RlXCI6IFwiTVhcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzUyXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNTJbMV1cXFxcZHsxMH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzUyIDFYWFhYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis1MiAxIFhYWCBYWFggWFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HsvCfh71cIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiTWljcm9uZXNpYSwgRmVkZXJhdGVkIFN0YXRlcyBvZiBNaWNyb25lc2lhXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4er8J+HslwiLFxuICAgICAgXCJjb2RlXCI6IFwiRk1cIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzY5MVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzY5MVsxLTldXFxcXGR7Nn0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzY5MSBYWFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrNjkxIDMyMDEyMzRcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiTW9sZG92YVwiLFxuICAgICAgXCJjb2RlXCI6IFwiTURcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzM3M1wiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzM3M1s2N11cXFxcZHs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMzczIDZYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIiszNzMgWFggWFhYIFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HsvCfh6lcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiTW9uYWNvXCIsXG4gICAgICBcImNvZGVcIjogXCJNQ1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMzc3XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMzc3WzQtOV1cXFxcZHs3LDh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIiszNzcgNlhYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIiszNzcgNiBYWCBYWCBYWCBYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HsvCfh6hcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiTW9uZ29saWFcIixcbiAgICAgIFwiY29kZVwiOiBcIk1OXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis5NzZcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs5NzZbNS05XVxcXFxkezd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis5NzYgOFhYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzk3NiBYWCBYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ey8J+Hs1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJNb250ZW5lZ3JvXCIsXG4gICAgICBcImNvZGVcIjogXCJNRVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMzgyXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMzgyWzItOV1cXFxcZHs3LDh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIiszODIgNlhYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIiszODIgNlggWFhYIFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HsvCfh6pcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiTW9udHNlcnJhdFwiLFxuICAgICAgXCJjb2RlXCI6IFwiTVNcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzE2NjRcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsxNjY0XFxcXGR7N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzE2NjQgWFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrMTY2NCBYWFggWFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HsvCfh7hcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiTW9yb2Njb1wiLFxuICAgICAgXCJjb2RlXCI6IFwiTUFcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzIxMlwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzIxMls1LTldXFxcXGR7OH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzIxMiA2WFhYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzIxMiA2WFggWFhYIFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HsvCfh6ZcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiTW96YW1iaXF1ZVwiLFxuICAgICAgXCJjb2RlXCI6IFwiTVpcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzI1OFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzI1OFsyOF1cXFxcZHs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMjU4IDhYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIisyNTggOFggWFhYIFhYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Lwn4e/XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIk15YW5tYXJcIixcbiAgICAgIFwiY29kZVwiOiBcIk1NXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis5NVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzk1WzQtOV1cXFxcZHs4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrOTUgOVhYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis5NSA5IFhYWCBYWFggWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ey8J+HslwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJOYW1pYmlhXCIsXG4gICAgICBcImNvZGVcIjogXCJOQVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjY0XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMjY0WzYtOF1cXFxcZHs3LDh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyNjQgODFYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIisyNjQgODEgWFhYIFhYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Pwn4emXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIk5hdXJ1XCIsXG4gICAgICBcImNvZGVcIjogXCJOUlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNjc0XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNjc0WzAtOV1cXFxcZHs0fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNjc0IFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis2NzQgWFhYIFhYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Pwn4e3XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIk5lcGFsXCIsXG4gICAgICBcImNvZGVcIjogXCJOUFwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrOTc3XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrOTc3WzldXFxcXGR7OX0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzk3NyA5WFhYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis5NzcgOThYIFhYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ez8J+HtVwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJOZXRoZXJsYW5kc1wiLFxuICAgICAgXCJjb2RlXCI6IFwiTkxcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzMxXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMzFbMS05XVxcXFxkezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIiszMSA2WFhYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzMxIDYgWFhYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ez8J+HsVwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJOZXRoZXJsYW5kcyBBbnRpbGxlc1wiLFxuICAgICAgXCJjb2RlXCI6IFwiQU5cIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzU5OVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzU5OVs5XVxcXFxkezZ9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis1OTkgOVhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrNTk5IDlYWFggWFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwiXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIk5ldyBDYWxlZG9uaWFcIixcbiAgICAgIFwiY29kZVwiOiBcIk5DXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis2ODdcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs2ODdcXFxcZHs2fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNjg3IFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrNjg3IFhYIFhYIFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ez8J+HqFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJOZXcgWmVhbGFuZFwiLFxuICAgICAgXCJjb2RlXCI6IFwiTlpcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzY0XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNjRbMi05XVxcXFxkezcsOX0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzY0IDIxWFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrNjQgMjEgWFhYIFhYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Pwn4e/XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIk5pY2FyYWd1YVwiLFxuICAgICAgXCJjb2RlXCI6IFwiTklcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzUwNVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzUwNVs1LThdXFxcXGR7N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzUwNSA4WFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrNTA1IFhYWFggWFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+Hs/Cfh65cIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiTmlnZXJcIixcbiAgICAgIFwiY29kZVwiOiBcIk5FXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisyMjdcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsyMjdbMC05XVxcXFxkezd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyMjcgOVhYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzIyNyBYWCBYWCBYWCBYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+Hs/Cfh6pcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiTmlnZXJpYVwiLFxuICAgICAgXCJjb2RlXCI6IFwiTkdcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzIzNFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzIzNFs3ODldXFxcXGR7OX0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzIzNCA4WFhYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIisyMzQgOFhYIFhYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ez8J+HrFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJOaXVlXCIsXG4gICAgICBcImNvZGVcIjogXCJOVVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNjgzXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNjgzXFxcXGR7NH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzY4MyBYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis2ODMgWFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+Hs/Cfh7pcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiTm9yZm9sayBJc2xhbmRcIixcbiAgICAgIFwiY29kZVwiOiBcIk5GXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis2NzJcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs2NzJbM11cXFxcZHs1fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNjcyIDNYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrNjcyIDMgWFggWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ez8J+Hq1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJOb3J0aGVybiBNYXJpYW5hIElzbGFuZHNcIixcbiAgICAgIFwiY29kZVwiOiBcIk1QXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisxNjcwXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMTY3MFxcXFxkezd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisxNjcwIFhYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzE2NzAgWFhYIFhYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Lwn4e1XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIk5vcndheVwiLFxuICAgICAgXCJjb2RlXCI6IFwiTk9cIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzQ3XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNDdbMi05XVxcXFxkezd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis0NyA0WFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrNDcgWFhYIFhYIFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+Hs/Cfh7RcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiT21hblwiLFxuICAgICAgXCJjb2RlXCI6IFwiT01cIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzk2OFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzk2OFs3OV1cXFxcZHs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrOTY4IDlYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis5NjggOVhYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e08J+HslwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJQYWtpc3RhblwiLFxuICAgICAgXCJjb2RlXCI6IFwiUEtcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzkyXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrOTJbM11cXFxcZHs5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrOTIgM1hYWFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrOTIgM1hYIFhYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e18J+HsFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJQYWxhdVwiLFxuICAgICAgXCJjb2RlXCI6IFwiUFdcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzY4MFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzY4MFxcXFxkezd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis2ODAgWFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrNjgwIFhYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e18J+HvFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJQYWxlc3RpbmlhbiBUZXJyaXRvcnksIE9jY3VwaWVkXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e18J+HuFwiLFxuICAgICAgXCJjb2RlXCI6IFwiUFNcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzk3MFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzk3MFs1OV1cXFxcZHs4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrOTcwIDVYWFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzk3MCA1OTkxMjM0NTZcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiUGFuYW1hXCIsXG4gICAgICBcImNvZGVcIjogXCJQQVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNTA3XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNTA3WzEtOV1cXFxcZHs2fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNTA3IDZYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzUwNyBYWFhYIFhYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Xwn4emXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlBhcHVhIE5ldyBHdWluZWFcIixcbiAgICAgIFwiY29kZVwiOiBcIlBHXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis2NzVcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs2NzVbN11cXFxcZHs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNjc1IDdYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis2NzUgN1hYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e18J+HrFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJQYXJhZ3VheVwiLFxuICAgICAgXCJjb2RlXCI6IFwiUFlcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzU5NVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzU5NVs5XVxcXFxkezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis1OTUgOVhYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis1OTUgOVhYIFhYWCBYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Xwn4e+XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlBlcnVcIixcbiAgICAgIFwiY29kZVwiOiBcIlBFXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis1MVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzUxWzldXFxcXGR7OH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzUxIDlYWFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrNTEgOVhYIFhYWCBYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Xwn4eqXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlBoaWxpcHBpbmVzXCIsXG4gICAgICBcImNvZGVcIjogXCJQSFwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNjNcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs2M1s5XVxcXFxkezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis2MyA5WFhYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis2MyA5WFggWFhYIFhYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Xwn4etXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlBpdGNhaXJuXCIsXG4gICAgICBcImNvZGVcIjogXCJQTlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNjRcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs2NFxcXFxkezEwfSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNjQgWFhYWFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrNjQgWFhYIFhYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e18J+Hs1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJQb2xhbmRcIixcbiAgICAgIFwiY29kZVwiOiBcIlBMXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis0OFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzQ4WzEtOV1cXFxcZHs4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNDggNVhYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis0OCA1WFggWFhYIFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HtfCfh7FcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiUG9ydHVnYWxcIixcbiAgICAgIFwiY29kZVwiOiBcIlBUXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIiszNTFcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCszNTFbMS05XVxcXFxkezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIiszNTEgOVhYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIiszNTEgOVhYIFhYWCBYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Xwn4e5XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlB1ZXJ0byBSaWNvXCIsXG4gICAgICBcImNvZGVcIjogXCJQUlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMTkzOVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzE5MzlcXFxcZHs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMTkzOSBYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIisxOTM5IFhYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e18J+Ht1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJRYXRhclwiLFxuICAgICAgXCJjb2RlXCI6IFwiUUFcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzk3NFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzk3NFszLTddXFxcXGR7N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzk3NCAzWFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrOTc0IFhYWFggWFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HtvCfh6ZcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiUm9tYW5pYVwiLFxuICAgICAgXCJjb2RlXCI6IFwiUk9cIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzQwXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNDBbN11cXFxcZHs4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNDAgN1hYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis0MCA3WFggWFhYIFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+Ht/Cfh7RcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiUnVzc2lhXCIsXG4gICAgICBcImNvZGVcIjogXCJSVVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrN1wiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzdbOV1cXFxcZHs5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNyA5WFhYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis3IDlYWCBYWFggWFggWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7fwn4e6XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlJ3YW5kYVwiLFxuICAgICAgXCJjb2RlXCI6IFwiUldcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzI1MFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzI1MFs3XVxcXFxkezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyNTAgN1hYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIisyNTAgN1hYIFhYWCBYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7fwn4e8XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlJldW5pb25cIixcbiAgICAgIFwiY29kZVwiOiBcIlJFXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisyNjJcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsyNjJbNi03XVxcXFxkezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyNjIgNlhYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIisyNjIgNlhYIFhYIFhYIFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e38J+HqlwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJTYWludCBCYXJ0aGVsZW15XCIsXG4gICAgICBcImNvZGVcIjogXCJCTFwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNTkwXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNTkwWzYtN11cXFxcZHs4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNTkwIDZYWFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrNTkwIDZYWCBYWCBYWCBYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+Hp/Cfh7FcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiU2FpbnQgSGVsZW5hLCBBc2NlbnNpb24gYW5kIFRyaXN0YW4gRGEgQ3VuaGFcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7jwn4etXCIsXG4gICAgICBcImNvZGVcIjogXCJTSFwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjkwXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMjkwXFxcXGR7NH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzI5MCBYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrMjkwIDIzODBcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiU2FpbnQgS2l0dHMgYW5kIE5ldmlzXCIsXG4gICAgICBcImNvZGVcIjogXCJLTlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMTg2OVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzE4NjlcXFxcZHs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMTg2OSBYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIisxODY5IFhYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ew8J+Hs1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJTYWludCBMdWNpYVwiLFxuICAgICAgXCJjb2RlXCI6IFwiTENcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzE3NThcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsxNzU4XFxcXGR7N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzE3NTggWFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrMTc1OCBYWFggWFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HsfCfh6hcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiU2FpbnQgTWFydGluXCIsXG4gICAgICBcImNvZGVcIjogXCJNRlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNTkwXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNTkwWzYtN11cXFxcZHs4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNTkwIDZYWFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrNTkwIDZYWCBYWCBYWCBYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HsvCfh6tcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiU2FpbnQgUGllcnJlIGFuZCBNaXF1ZWxvblwiLFxuICAgICAgXCJjb2RlXCI6IFwiUE1cIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzUwOFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzUwOFxcXFxkezZ9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis1MDggWFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrNTA4IDQxMjM0NVwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HtfCfh7JcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiU2FpbnQgVmluY2VudCBhbmQgdGhlIEdyZW5hZGluZXNcIixcbiAgICAgIFwiY29kZVwiOiBcIlZDXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisxNzg0XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMTc4NFxcXFxkezd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisxNzg0IFhYWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIisxNzg0IDQ1NjEyMzRcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7vwn4eoXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlNhbW9hXCIsXG4gICAgICBcImNvZGVcIjogXCJXU1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNjg1XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNjg1XFxcXGR7NSw3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNjg1IFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzY4NSA3MjEyMzRcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7zwn4e4XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlNhbiBNYXJpbm9cIixcbiAgICAgIFwiY29kZVwiOiBcIlNNXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIiszNzhcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCszNzhcXFxcZHs2LDEwfSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMzc4IFhYWFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrMzc4IDA1NDkxMjM0NTZcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7jwn4eyXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlNhbyBUb21lIGFuZCBQcmluY2lwZVwiLFxuICAgICAgXCJjb2RlXCI6IFwiU1RcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzIzOVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzIzOVxcXFxkezd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyMzkgWFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzIzOSA5OTEyMzQ1XCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e48J+HuVwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJTYXVkaSBBcmFiaWFcIixcbiAgICAgIFwiY29kZVwiOiBcIlNBXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis5NjZcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs5NjZcXFxcZHs5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrOTY2IDVYWFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzk2NiA1MTIzNDU2NzhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7jwn4emXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlNlbmVnYWxcIixcbiAgICAgIFwiY29kZVwiOiBcIlNOXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisyMjFcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsyMjFcXFxcZHs5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMjIxIDdYWFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzIyMSA3NzEyMzQ1NjdcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7jwn4ezXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlNlcmJpYVwiLFxuICAgICAgXCJjb2RlXCI6IFwiUlNcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzM4MVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzM4MVxcXFxkezgsOX0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzM4MSA2WFhYWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIiszODEgNjAxMjM0NTY3XCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e38J+HuFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJTZXljaGVsbGVzXCIsXG4gICAgICBcImNvZGVcIjogXCJTQ1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjQ4XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMjQ4XFxcXGR7N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzI0OCBYWFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrMjQ4IDI1MTIzNDVcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7jwn4eoXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlNpZXJyYSBMZW9uZVwiLFxuICAgICAgXCJjb2RlXCI6IFwiU0xcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzIzMlwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzIzMlxcXFxkezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyMzIgN1hYWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIisyMzIgNzYxMjM0NTZcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7jwn4exXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlNpbmdhcG9yZVwiLFxuICAgICAgXCJjb2RlXCI6IFwiU0dcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzY1XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNjVcXFxcZHs4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNjUgOFhYWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIis2NSA4MTIzNDU2N1wiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HuPCfh6xcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiU2xvdmFraWFcIixcbiAgICAgIFwiY29kZVwiOiBcIlNLXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis0MjFcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs0MjFcXFxcZHs5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNDIxIDlYWFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzQyMSA5MTIzNDU2NzhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7jwn4ewXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlNsb3ZlbmlhXCIsXG4gICAgICBcImNvZGVcIjogXCJTSVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMzg2XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMzg2XFxcXGR7OH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzM4NiAzWFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzM4NiAzMTIzNDU2N1wiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HuPCfh65cIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiU29sb21vbiBJc2xhbmRzXCIsXG4gICAgICBcImNvZGVcIjogXCJTQlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNjc3XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNjc3XFxcXGR7NSw3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNjc3IDdYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzY3NyA3MTIzNDU2XCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e48J+Hp1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJTb21hbGlhXCIsXG4gICAgICBcImNvZGVcIjogXCJTT1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjUyXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMjUyXFxcXGR7OH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzI1MiA2WFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzI1MiA2MTIzNDU2N1wiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HuPCfh7RcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiU291dGggQWZyaWNhXCIsXG4gICAgICBcImNvZGVcIjogXCJaQVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjdcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsyN1xcXFxkezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyNyA4WFhYWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIisyNyA4MzEyMzQ1NjdcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7/wn4emXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlNvdXRoIFN1ZGFuXCIsXG4gICAgICBcImNvZGVcIjogXCJTU1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjExXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMjExXFxcXGR7OX0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzIxMSA5WFhYWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIisyMTEgOTc3MTIzNDU2XCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e48J+HuFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJTb3V0aCBHZW9yZ2lhIGFuZCB0aGUgU291dGggU2FuZHdpY2ggSXNsYW5kc1wiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HrPCfh7hcIixcbiAgICAgIFwiY29kZVwiOiBcIkdTXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis1MDBcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs1MDBcXFxcZHs1fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNTAwIFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrNTAwIDEyMzQ1XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlNwYWluXCIsXG4gICAgICBcImNvZGVcIjogXCJFU1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMzRcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCszNFxcXFxkezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIiszNCA2WFhYWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIiszNCA2MTIzNDU2NzhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6rwn4e4XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlNyaSBMYW5rYVwiLFxuICAgICAgXCJjb2RlXCI6IFwiTEtcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzk0XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrOTRcXFxcZHs5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrOTQgN1hYWFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrOTQgNzEyMzQ1Njc4XCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ex8J+HsFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJTdWRhblwiLFxuICAgICAgXCJjb2RlXCI6IFwiU0RcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzI0OVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzI0OVxcXFxkezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyNDkgOVhYWFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrMjQ5IDkxMjM0NTY3OFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HuPCfh6lcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiU3VyaW5hbWVcIixcbiAgICAgIFwiY29kZVwiOiBcIlNSXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis1OTdcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs1OTdcXFxcZHs2LDd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis1OTcgWFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzU5NyA4MTIzNDU2XCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e48J+Ht1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJTdmFsYmFyZCBhbmQgSmFuIE1heWVuXCIsXG4gICAgICBcImNvZGVcIjogXCJTSlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNDdcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs0N1xcXFxkezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis0NyBYWFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzQ3IDQxMjM0NTY3XCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e48J+Hr1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJFc3dhdGluaVwiLFxuICAgICAgXCJjb2RlXCI6IFwiU1pcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzI2OFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzI2OFxcXFxkezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyNjggN1hYWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIisyNjggNzYxMjM0NTZcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7jwn4e/XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlN3ZWRlblwiLFxuICAgICAgXCJjb2RlXCI6IFwiU0VcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzQ2XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNDZcXFxcZHs3LDEwfSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNDYgN1hYWFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrNDYgNzAxMjM0NTY3XCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e48J+HqlwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJTd2l0emVybGFuZFwiLFxuICAgICAgXCJjb2RlXCI6IFwiQ0hcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzQxXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNDFcXFxcZHs5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNDEgN1hYWFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrNDEgNzgxMjM0NTY3XCIsXG4gICAgICBcImZsYWdcIjogXCLwn4eo8J+HrVwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJTeXJpYW4gQXJhYiBSZXB1YmxpY1wiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HuPCfh75cIixcbiAgICAgIFwiY29kZVwiOiBcIlNZXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis5NjNcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs5NjNbOV1cXFxcZHs4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrOTYzIDlYWFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzk2MyA5OTEyMzQ1NjdcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiVGFpd2FuXCIsXG4gICAgICBcImNvZGVcIjogXCJUV1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrODg2XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrODg2XFxcXGR7OCw5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrODg2IDlYWFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzg4NiA5MTIzNDU2NzhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7nwn4e8XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlRhamlraXN0YW5cIixcbiAgICAgIFwiY29kZVwiOiBcIlRKXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis5OTJcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs5OTJcXFxcZHs5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrOTkyIDlYWFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzk5MiA5MTcxMjM0NTZcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7nwn4evXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlRhbnphbmlhLCBVbml0ZWQgUmVwdWJsaWMgb2YgVGFuemFuaWFcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7nwn4e/XCIsXG4gICAgICBcImNvZGVcIjogXCJUWlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjU1XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMjU1WzY3XVxcXFxkezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyNTUgN1hYWFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrMjU1IDcxMjM0NTY3OFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJUaGFpbGFuZFwiLFxuICAgICAgXCJjb2RlXCI6IFwiVEhcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzY2XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNjZcXFxcZHs4LDl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis2NiA4WFhYWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIis2NiA4MTIzNDU2NzhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7nwn4etXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlRpbW9yLUxlc3RlXCIsXG4gICAgICBcImNvZGVcIjogXCJUTFwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNjcwXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNjcwXFxcXGR7OH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzY3MCA3WFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzY3MCA3NzEyMzQ1NlwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HufCfh7FcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiVG9nb1wiLFxuICAgICAgXCJjb2RlXCI6IFwiVEdcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzIyOFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzIyOFxcXFxkezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyMjggOVhYWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIisyMjggOTEyMzQ1NjdcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7nwn4esXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlRva2VsYXVcIixcbiAgICAgIFwiY29kZVwiOiBcIlRLXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis2OTBcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs2OTBcXFxcZHs0fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNjkwIFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIis2OTAgMTIzNFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HufCfh7BcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiVG9uZ2FcIixcbiAgICAgIFwiY29kZVwiOiBcIlRPXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis2NzZcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs2NzZcXFxcZHs1fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNjc2IFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrNjc2IDcxMjM0XCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e58J+HtFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJUcmluaWRhZCBhbmQgVG9iYWdvXCIsXG4gICAgICBcImNvZGVcIjogXCJUVFwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMTg2OFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzE4NjhcXFxcZHs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMTg2OCBYWFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrMTg2OCAyODQxMjM0XCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e58J+HuVwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJUdW5pc2lhXCIsXG4gICAgICBcImNvZGVcIjogXCJUTlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjE2XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMjE2XFxcXGR7OH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzIxNiBYWFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzIxNiAyMDEyMzQ1NlwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HufCfh7NcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiVHVya2V5XCIsXG4gICAgICBcImNvZGVcIjogXCJUUlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrOTBcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs5MFxcXFxkezEwfSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrOTAgNVhYWFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzkwIDUzMTIzNDU2NzhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7nwn4e3XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlR1cmttZW5pc3RhblwiLFxuICAgICAgXCJjb2RlXCI6IFwiVE1cIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzk5M1wiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzk5M1xcXFxkezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis5OTMgNlhYWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIis5OTMgNjEyMzQ1NjdcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7nwn4eyXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlR1cmtzIGFuZCBDYWljb3MgSXNsYW5kc1wiLFxuICAgICAgXCJjb2RlXCI6IFwiVENcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzE2NDlcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsxNjQ5XFxcXGR7N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzE2NDkgWFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzE2NDkgMjMxMTIzNFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HufCfh6hcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiVHV2YWx1XCIsXG4gICAgICBcImNvZGVcIjogXCJUVlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNjg4XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNjg4XFxcXGR7NX0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzY4OCBYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzY4OCAyMDEyM1wiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HufCfh7tcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiVWdhbmRhXCIsXG4gICAgICBcImNvZGVcIjogXCJVR1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjU2XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMjU2XFxcXGR7OX0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzI1NiA3WFhYWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIisyNTYgNzEyMzQ1Njc4XCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e68J+HrFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJVa3JhaW5lXCIsXG4gICAgICBcImNvZGVcIjogXCJVQVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMzgwXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMzgwXFxcXGR7OX0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzM4MCA5WFhYWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIiszODAgOTMxMjM0NTY3XCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e68J+HplwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJVbml0ZWQgQXJhYiBFbWlyYXRlc1wiLFxuICAgICAgXCJjb2RlXCI6IFwiQUVcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzk3MVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzk3MVxcXFxkezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis5NzEgNVhYWFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrOTcxIDUwMTIzNDU2N1wiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HpvCfh6pcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiVW5pdGVkIEtpbmdkb21cIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6zwn4enXCIsXG4gICAgICBcImNvZGVcIjogXCJHQlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNDRcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs0NFswLTldezEwfSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNDQgNzEyMyA0NTYgNzg5XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlVuaXRlZCBTdGF0ZXNcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7rwn4e4XCIsXG4gICAgICBcImNvZGVcIjogXCJVU1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzFbMC05XXsxMH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzEgMjEzIDEyMyA0NTY3XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlVydWd1YXlcIixcbiAgICAgIFwiY29kZVwiOiBcIlVZXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis1OThcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs1OThcXFxcZHs4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNTk4IDlYWFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrNTk4IDkxMjM0NTY3XCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e68J+HvlwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJVemJla2lzdGFuXCIsXG4gICAgICBcImNvZGVcIjogXCJVWlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrOTk4XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrOTk4XFxcXGR7OX0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzk5OCA5WFhYWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIis5OTggOTAxMjM0NTY3XCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e68J+Hv1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJWYW51YXR1XCIsXG4gICAgICBcImNvZGVcIjogXCJWVVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNjc4XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNjc4XFxcXGR7NSw3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNjc4IFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzY3OCA1OTEyMzRcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7vwn4e6XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlZlbmV6dWVsYSwgQm9saXZhcmlhbiBSZXB1YmxpYyBvZiBWZW5lenVlbGFcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7vwn4eqXCIsXG4gICAgICBcImNvZGVcIjogXCJWRVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNThcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs1OFsyNF1cXFxcZHs5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNTggNFhYWFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzU4IDQxMjEyMzQ1NjdcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiVmlldG5hbVwiLFxuICAgICAgXCJjb2RlXCI6IFwiVk5cIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzg0XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrODRcXFxcZHs5LDEwfSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrODQgOVhYWFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrODQgOTEyMzQ1Njc4XCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e78J+Hs1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJWaXJnaW4gSXNsYW5kcywgQnJpdGlzaFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+Hu/Cfh6xcIixcbiAgICAgIFwiY29kZVwiOiBcIlZHXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisxMjg0XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMTI4NFxcXFxkezd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisxMjg0IFhYWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIisxMjg0IDMwMDEyMzRcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiVmlyZ2luIElzbGFuZHMsIFUuUy5cIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7vwn4euXCIsXG4gICAgICBcImNvZGVcIjogXCJWSVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMTM0MFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzEzNDBcXFxcZHs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMTM0MCBYWFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrMTM0MCA3NzQxMjM0XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIldhbGxpcyBhbmQgRnV0dW5hXCIsXG4gICAgICBcImNvZGVcIjogXCJXRlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNjgxXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNjgxXFxcXGR7Nn0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzY4MSBYWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIis2ODEgNTAxMjM0XCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e88J+Hq1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJZZW1lblwiLFxuICAgICAgXCJjb2RlXCI6IFwiWUVcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzk2N1wiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzk2N1xcXFxkezgsOX0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzk2NyA3WFhYWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIis5NjcgNzEyMzQ1Njc4XCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e+8J+HqlwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJaYW1iaWFcIixcbiAgICAgIFwiY29kZVwiOiBcIlpNXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisyNjBcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsyNjBcXFxcZHs5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMjYwIDlYWFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzI2MCA5NzEyMzQ1NjdcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7/wn4eyXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlppbWJhYndlXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e/8J+HvFwiLFxuICAgICAgXCJjb2RlXCI6IFwiWldcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzI2M1wiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzI2M1swLTldezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyNjMgNzEgMjM0IDU2NzhcIlxuICAgIH1cbiAgXTtcbiAgZmlsdGVyZWRDb3VudHJpZXM6IGFueVxuICBzZWxlY3RlZENvdW50cnkhOiBhbnk7XG4gIHNob3dDb3VudHJ5RHJvcGRvd24gPSBmYWxzZTtcbiAgY291bnRyeVNlYXJjaCA9ICcnO1xuICBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgLy8gSW50ZXJuYWwgc3RhdGVcbiAgdmlld0VkaXQ6IGJvb2xlYW4gPSBmYWxzZSBcbiAgb3JpZ2luYWxWYWx1ZTogYW55OyAvLyBUbyBzdG9yZSB0aGUgb3JpZ2luYWwgdmFsdWUgd2hlbiBlbnRlcmluZyB2aWV3IGVkaXQgbW9kZVxuICBpc1NhdmVIb3ZlcmVkID0gZmFsc2U7XG4gIGlzRGlzY2FyZEhvdmVyZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBsYXN0Q2xpY2tUaW1lID0gMDtcbiAgcHVibGljIGNhY2hlZElucHV0TGlzdDogYW55W10gPSBbXTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsIHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWYscHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBwcml2YXRlIGNoYW5nZVNlcnZpY2U6IENoYW5nZVNlcnZpY2UscHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UpIHt9XG4gIGhhc0VtaXR0ZWRSZWYgPSBmYWxzZTtcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIHRoaXMudHlwZSA9PT0gJ2xvY2F0aW9uJyAmJlxuICAgICAgdGhpcy5pbnB1dFJlZiAmJlxuICAgICAgIXRoaXMuaGFzRW1pdHRlZFJlZlxuICAgICkge1xuICAgICAgdGhpcy5uYXRpdmVJbnB1dFJlZi5lbWl0KHRoaXMuaW5wdXRSZWYpO1xuICAgICAgdGhpcy5oYXNFbWl0dGVkUmVmID0gdHJ1ZTtcbiAgICB9XG4gICAgdGhpcy5yZW5kZXJlci5saXN0ZW4oJ2RvY3VtZW50JywgJ2NsaWNrJywgKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkge1xuICAgICAgICB0aGlzLnNob3dDb3VudHJ5RHJvcGRvd24gPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1snbW9kZSddKSB7XG4gICAgICB0aGlzLnZpZXdFZGl0ID0gZmFsc2VcbiAgICAgIHRoaXMudXBkYXRlQ29udHJvbFN0YXRlKCk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzWyd2YWx1ZSddKSB7XG4gICAgICB0aGlzLndyaXRlVmFsdWUoY2hhbmdlc1sndmFsdWUnXS5jdXJyZW50VmFsdWUpO1xuICAgIH1cbiAgICBpZiAodGhpcy5jb25mUGFzcyAmJiBjaGFuZ2VzWydjb25mUGFzc1ZhbCddICYmICFjaGFuZ2VzWydjb25mUGFzc1ZhbCddLmZpcnN0Q2hhbmdlKSB7XG4gICAgICB0aGlzLnZhbHVlID0gJyc7IC8vIFJlc2V0IGlucHV0IHZhbHVlXG4gICAgfVxuICAgIGlmIChjaGFuZ2VzWyd0eXBlJ10pIHtcbiAgICAgIHRoaXMuc2V0dXBWYWxpZGF0b3JzKCk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzWyd0eXBlJ10gJiYgY2hhbmdlc1sndHlwZSddLmN1cnJlbnRWYWx1ZSA9PT0gJ2xvY2F0aW9uJykge1xuICAgICAgdGhpcy5oYXNFbWl0dGVkUmVmID0gZmFsc2U7XG4gICAgfVxuICAgIHRoaXMudXBkYXRlSW5wdXRMaXN0KCk7XG4gIH1cbiAgbmdPbkluaXQoKSB7ICAgIFxuICAgIC8vIFNLUzI4RkVCMjUgZGVmYXVsdCBjb3VudHJ5IHNldCBcbiAgICB0aGlzLnNlbGVjdGVkQ291bnRyeSA9IHRoaXMuY291bnRyaWVzLmZpbmQoYyA9PiBjLmNvZGUgPT09ICdJTicpIHx8IHRoaXMuY291bnRyaWVzWzBdO1xuICAgIHRoaXMuZmlsdGVyZWRDb3VudHJpZXMgPSBbLi4udGhpcy5jb3VudHJpZXNdO1xuICAgIGNvbnN0IHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuIHwgVmFsaWRhdG9yRm5bXSB8IG51bGwgPSBbXTtcbiAgICBpZiAodGhpcy5yZXF1aXJlZCkgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgIGlmICh0aGlzLm1pbkxlbmd0aCkgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWluTGVuZ3RoKHRoaXMubWluTGVuZ3RoKSk7XG4gICAgaWYgKHRoaXMucGF0dGVybikgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucGF0dGVybih0aGlzLnBhdHRlcm4pKTtcbiAgICBpZiAodGhpcy5tYXhMZW5ndGgpIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm1heExlbmd0aCh0aGlzLm1heExlbmd0aCkpO1xuICAgIGlmICh0aGlzLmNvbmZQYXNzKSB2YWxpZGF0b3JzLnB1c2godGhpcy5wYXNzd29yZE1hdGNoVmFsaWRhdG9yKCkpO1xuICAgIHRoaXMuY29udHJvbC5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcnMpO1xuICBcbiAgICBpZiAodGhpcy50eXBlID09PSAnb3RwJykge1xuICAgICAgdGhpcy5pbnB1dHMuY29udHJvbHMuZm9yRWFjaCgoY29udHJvbCkgPT4ge1xuICAgICAgICBjb250cm9sLnNldFZhbGlkYXRvcnModmFsaWRhdG9ycyk7XG4gICAgICB9KTtcbiAgICB9ZWxzZSBpZiAodGhpcy50eXBlID09PSAndGVsJykge1xuICAgICAgdGhpcy5jb250cm9sLnNldFZhbGlkYXRvcnMoW1xuICAgICAgICBWYWxpZGF0b3JzLnBhdHRlcm4odGhpcy5yZW1vdmVEaWFsQ29kZUZyb21SZWdleCh0aGlzLnNlbGVjdGVkQ291bnRyeS5yZWdleCwgdGhpcy5zZWxlY3RlZENvdW50cnkuZGlhbF9jb2RlKSlcbiAgICAgIF0pO1xuICAgIH1cbiAgICAvL0FQLTAxSlVMMjUgLSBEaXNhYmxlIHRoZSBmaWVsZCB1bmxlc3MgaW4gJ2VkaXQnIG1vZGUgYW5kIHF1ZXN0aW9uIGlzIG5vdCBtYXJrZWQgYXMgcmVhZC1vbmx5XG4gICAgdGhpcy5zZXREaXNhYmxlZFN0YXRlKHRoaXMubW9kZSA9PT0gJ2VkaXQnID8gKHRoaXMucXVlc3Rpb24/LmlzUmVhZE9ubHkgPT09IHRydWUgfHwgdGhpcy5xdWVzdGlvbj8uaXNSZWFkT25seSA9PT0gJ3RydWUnKSA6IHRydWUpO1xuICAgIGlmICh0eXBlb2YgdGhpcy5xdWVzdGlvbj8uc3ViVGV4dCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGlmICh0aGlzLnF1ZXN0aW9uLnN1YlRleHQudHJpbSgpID09PSAnJykge1xuICAgICAgICB0aGlzLnF1ZXN0aW9uLnN1YlRleHQgPSBudWxsO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICB0aGlzLnF1ZXN0aW9uLnN1YlRleHQgPSBKU09OLnBhcnNlKHRoaXMucXVlc3Rpb24uc3ViVGV4dCk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICB0aGlzLnF1ZXN0aW9uLnN1YlRleHQgPSBudWxsOyAvLyBPciBoYW5kbGUgZGlmZmVyZW50bHlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAgIFxuICAgIGlmKHRoaXMucXVlc3Rpb24/LnN1YlRleHQgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyB0aGlzLmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgIGxldCBkZXBlbmRlbmN5T2JqOiBhbnkgPSB0aGlzLnF1ZXN0aW9uPy5zdWJUZXh0O1xuICAgICAgaWYoZGVwZW5kZW5jeU9iai5kaXNhYmxlZCAmJiBkZXBlbmRlbmN5T2JqLmRpc2FibGVkID09IFwiZmFsc2VcIil7XG4gICAgICAgIC8vIHRoaXMuZGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgIH1lbHNle1xuICAgICAgICAvLyB0aGlzLmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIC8vIFN1YnNjcmliZSBmb3IgdGhlIGNoYW5nZXNcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5jaGFuZ2VTZXJ2aWNlLmNoYW5nZUFubm91bmNlZCQuc3Vic2NyaWJlKFxuICAgICAgICAoY2hhbmdlVmFsdWUpID0+IHtcbiAgICAgICAgICBpZihjaGFuZ2VWYWx1ZSAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGlmKGNoYW5nZVZhbHVlLmZyb21RdWVzdGlvbklkICYmIGNoYW5nZVZhbHVlLnZhbHVlT2JqICE9PSB1bmRlZmluZWQgJiYgKCBBcnJheS5pc0FycmF5KGRlcGVuZGVuY3lPYmouc291cmNlUXVlc3Rpb25JZCk/IGRlcGVuZGVuY3lPYmouc291cmNlUXVlc3Rpb25JZC5pbmNsdWRlcyhjaGFuZ2VWYWx1ZS5mcm9tUXVlc3Rpb25JZCkgOiBjaGFuZ2VWYWx1ZS5mcm9tUXVlc3Rpb25JZCA9PT0gZGVwZW5kZW5jeU9iai5zb3VyY2VRdWVzdGlvbklkKSkge1xuICAgICAgICAgICAgICAvLyBWRCAyMEF1ZzI0IGhhbmRsaW5nIHRoZSBtdWx0aXBsZSBvYmplY3RcbiAgICAgICAgICAgICAgaWYoZGVwZW5kZW5jeU9iai52YWx1ZUZpZWxkKXtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5kYXRhU2VydmljZS5nZXRWYWx1ZShjaGFuZ2VWYWx1ZS52YWx1ZU9iaixkZXBlbmRlbmN5T2JqLnZhbHVlRmllbGQpO1xuICAgICAgICAgICAgICAgIGxldCBjaGFuZ2U6IGFueT17fTtcbiAgICAgICAgICAgICAgICBjaGFuZ2VbJ2Zyb21RdWVzdGlvbklkJ10gPSB0aGlzLnF1ZXN0aW9uLmlkO1xuICAgICAgICAgICAgICAgIGNoYW5nZVsndmFsdWVPYmonXSA9IHRoaXMudmFsdWU7XG4gICAgICAgICAgICAgICAgY2hhbmdlWydyZWZlcmVuY2VGaWVsZCddID0gdGhpcy5xdWVzdGlvbi5yZWZlcmVuY2VGaWVsZDtcbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0VmFsdWUuZW1pdCh7cXVlc3Rpb24gOiB0aGlzLnF1ZXN0aW9uLCB2YWx1ZTogY2hhbmdlfSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuY2hhbmdlU2VydmljZS5jb25maXJtQ2hhbmdlKGNoYW5nZVZhbHVlLmZyb21RdWVzdGlvbklkKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3F1aWxsLXNhdmUnLCB0aGlzLnNhdmVDaGFuZ2VzLmJpbmQodGhpcykpO1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3F1aWxsLWRpc2NhcmQnLCB0aGlzLmRpc2NhcmRDaGFuZ2VzLmJpbmQodGhpcykpO1xuICAgIHRoaXMudXBkYXRlSW5wdXRMaXN0KCk7XG4gIH1cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigncXVpbGwtc2F2ZScsIHRoaXMuc2F2ZUNoYW5nZXMuYmluZCh0aGlzKSk7XG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigncXVpbGwtZGlzY2FyZCcsIHRoaXMuZGlzY2FyZENoYW5nZXMuYmluZCh0aGlzKSk7XG4gIH1cbiAgcHJpdmF0ZSB1cGRhdGVJbnB1dExpc3QoKSB7XG4gICAgdGhpcy5jYWNoZWRJbnB1dExpc3QgPSB0aGlzLnR5cGUgIT09ICdvdHAnID8gdGhpcy5pbnB1dHMuY29udHJvbHMuc2xpY2UoMCwgMSkgOiB0aGlzLmlucHV0cy5jb250cm9scztcbiAgfVxuICAvLyBTS1MxNEpVTjI1ICBEeW5hbWljYWxseSBsb2FkIFF1aWxsIGVkaXRvciB0b29sYmFyXG4gIGdldFF1aWxsTW9kdWxlcyhxdWVzdGlvbklkOiBzdHJpbmcpOiBRdWlsbE1vZHVsZXMge1xuICAgIGlmKHRoaXMudmlld0VkaXQpe1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaW1hZ2VSZXNpem9yOiB7fSxcbiAgICAgICAgdG9vbGJhcjoge1xuICAgICAgICAgIGNvbnRhaW5lcjogW1xuICAgICAgICAgICAgW3sgJ2ZvbnQnOiBmb250RmFtaWx5QXJyIH1dLCAgLy9SUyAxN0pBTjIwMjUgIEFkZGVkIGZvbnQgZmFtaWx5IGRyb3Bkb3duXG4gICAgICAgICAgICBbJ2JvbGQnLCAnaXRhbGljJywgJ3VuZGVybGluZScsICdzdHJpa2UnXSxcbiAgICAgICAgICAgIFsnYmxvY2txdW90ZScsICdjb2RlLWJsb2NrJ10sXG4gICAgICAgICAgICBbeyBoZWFkZXI6IFsxLCAyLCAzLCA0LCA1LCA2LCBmYWxzZV0gfV0sXG4gICAgICAgICAgICBbeyBsaXN0OiAnb3JkZXJlZCcgfSwgeyBsaXN0OiAnYnVsbGV0JyB9XSxcbiAgICAgICAgICAgIFt7IGNvbG9yOiBbXSB9LCB7IGJhY2tncm91bmQ6IFtdIH1dLFxuICAgICAgICAgICAgW3sgYWxpZ246IFtdIH1dLFxuICAgICAgICAgICAgWydsaW5rJywgJ2ltYWdlJywgJ3ZpZGVvJ10sXG4gICAgICAgICAgICBbJ2Zvcm11bGEnXSxcbiAgICAgICAgICAgIFsnY2xlYW4nXSxcbiAgICAgICAgICAgIFsnc2F2ZScsICdkaXNjYXJkJ11cbiAgICAgICAgICBdLFxuICAgICAgICAgIGhhbmRsZXJzOiB7XG4gICAgICAgICAgICBzYXZlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGV2ZW50ID0gbmV3IEN1c3RvbUV2ZW50KCdxdWlsbC1zYXZlJywge1xuICAgICAgICAgICAgICAgIGRldGFpbDogeyBpZDogcXVlc3Rpb25JZCB9ICAvLyBZb3UgaW5qZWN0IHRoZSBjb3JyZWN0IElEIGRpcmVjdGx5IGhlcmVcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQoZXZlbnQpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGRpc2NhcmQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgY29uc3QgZXZlbnQgPSBuZXcgQ3VzdG9tRXZlbnQoJ3F1aWxsLWRpc2NhcmQnLCB7XG4gICAgICAgICAgICAgICAgZGV0YWlsOiB7IGlkOiBxdWVzdGlvbklkIH1cbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQoZXZlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbWVudGlvbjoge1xuICAgICAgICAgIGFsbG93ZWRDaGFyczogL15bQS1aYS16XFxzw4XDhMOWw6XDpMO2XSokLyxcbiAgICAgICAgICBtZW50aW9uRGVub3RhdGlvbkNoYXJzOiBbJ0AnLCAnIyddLFxuICAgICAgICAgIHNvdXJjZTogZnVuY3Rpb24gKHNlYXJjaFRlcm06IHN0cmluZywgcmVuZGVyTGlzdDogYW55KSB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZXMgPSBbXG4gICAgICAgICAgICAgIHsgaWQ6IDEsIHZhbHVlOiAnVXNlciAxJyB9LFxuICAgICAgICAgICAgICB7IGlkOiAyLCB2YWx1ZTogJ1VzZXIgMicgfSxcbiAgICAgICAgICAgIF07XG4gICAgICBcbiAgICAgICAgICAgIGlmIChzZWFyY2hUZXJtLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICByZW5kZXJMaXN0KHZhbHVlcywgc2VhcmNoVGVybSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBjb25zdCBtYXRjaGVzID0gdmFsdWVzLmZpbHRlcigoaXRlbSkgPT5cbiAgICAgICAgICAgICAgICBpdGVtLnZhbHVlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVGVybS50b0xvd2VyQ2FzZSgpKVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICByZW5kZXJMaXN0KG1hdGNoZXMsIHNlYXJjaFRlcm0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9XG4gICAgfWVsc2Uge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaW1hZ2VSZXNpem9yOiB7fSxcbiAgICAgICAgdG9vbGJhcjoge1xuICAgICAgICAgIGNvbnRhaW5lcjogW1xuICAgICAgICAgICAgW3sgJ2ZvbnQnOiBmb250RmFtaWx5QXJyIH1dLCAgLy9SUyAxN0pBTjIwMjUgIEFkZGVkIGZvbnQgZmFtaWx5IGRyb3Bkb3duXG4gICAgICAgICAgICBbJ2JvbGQnLCAnaXRhbGljJywgJ3VuZGVybGluZScsICdzdHJpa2UnXSxcbiAgICAgICAgICAgIFsnYmxvY2txdW90ZScsICdjb2RlLWJsb2NrJ10sXG4gICAgICAgICAgICBbeyBoZWFkZXI6IFsxLCAyLCAzLCA0LCA1LCA2LCBmYWxzZV0gfV0sXG4gICAgICAgICAgICBbeyBsaXN0OiAnb3JkZXJlZCcgfSwgeyBsaXN0OiAnYnVsbGV0JyB9XSxcbiAgICAgICAgICAgIFt7IGNvbG9yOiBbXSB9LCB7IGJhY2tncm91bmQ6IFtdIH1dLFxuICAgICAgICAgICAgW3sgYWxpZ246IFtdIH1dLFxuICAgICAgICAgICAgWydsaW5rJywgJ2ltYWdlJywgJ3ZpZGVvJ10sXG4gICAgICAgICAgICBbJ2Zvcm11bGEnXSxcbiAgICAgICAgICAgIFsnY2xlYW4nXSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgICBtZW50aW9uOiB7XG4gICAgICAgICAgYWxsb3dlZENoYXJzOiAvXltBLVphLXpcXHPDhcOEw5bDpcOkw7ZdKiQvLFxuICAgICAgICAgIG1lbnRpb25EZW5vdGF0aW9uQ2hhcnM6IFsnQCcsICcjJ10sXG4gICAgICAgICAgc291cmNlOiBmdW5jdGlvbiAoc2VhcmNoVGVybTogc3RyaW5nLCByZW5kZXJMaXN0OiBhbnkpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlcyA9IFtcbiAgICAgICAgICAgICAgeyBpZDogMSwgdmFsdWU6ICdVc2VyIDEnIH0sXG4gICAgICAgICAgICAgIHsgaWQ6IDIsIHZhbHVlOiAnVXNlciAyJyB9LFxuICAgICAgICAgICAgXTtcbiAgICAgICAgXG4gICAgICAgICAgICBpZiAoc2VhcmNoVGVybS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgcmVuZGVyTGlzdCh2YWx1ZXMsIHNlYXJjaFRlcm0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgY29uc3QgbWF0Y2hlcyA9IHZhbHVlcy5maWx0ZXIoKGl0ZW0pID0+XG4gICAgICAgICAgICAgICAgaXRlbS52YWx1ZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFRlcm0udG9Mb3dlckNhc2UoKSlcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgcmVuZGVyTGlzdChtYXRjaGVzLCBzZWFyY2hUZXJtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfVxuICAgIH1cbiAgfVxuICBwcml2YXRlIHNldHVwVmFsaWRhdG9ycygpIHtcbiAgICBjb25zdCB2YWxpZGF0b3JzOiBWYWxpZGF0b3JGbltdID0gW107XG4gICAgXG4gICAgaWYgKHRoaXMucmVxdWlyZWQpIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICBpZiAodGhpcy5taW5MZW5ndGgpIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm1pbkxlbmd0aCh0aGlzLm1pbkxlbmd0aCkpO1xuICAgIGlmICh0aGlzLm1heExlbmd0aCkgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWF4TGVuZ3RoKHRoaXMubWF4TGVuZ3RoKSk7XG4gICAgaWYgKHRoaXMucGF0dGVybikgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucGF0dGVybih0aGlzLnBhdHRlcm4pKTtcbiAgICBcbiAgICB0aGlzLmNvbnRyb2wuc2V0VmFsaWRhdG9ycyh2YWxpZGF0b3JzKTtcbiAgfVxuICAvLyBTS1MyOEZFQjI1IENvdW50cnkgRHJvcGRvd24gY2xvc2UgXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcbiAgY2xvc2VEcm9wZG93bihldmVudDogRXZlbnQpIHtcbiAgICBjb25zdCBub3cgPSBEYXRlLm5vdygpO1xuICAgIGlmIChub3cgLSB0aGlzLmxhc3RDbGlja1RpbWUgPCAxMDApIHJldHVybjsgLy8gdGhyb3R0bGUgcmVwZWF0ZWQgY2FsbHNcbiAgICB0aGlzLmxhc3RDbGlja1RpbWUgPSBub3c7XG5cbiAgICBpZiAoIXRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkpIHtcbiAgICAgIHRoaXMuc2hvd0NvdW50cnlEcm9wZG93biA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIG9uQ2hhbmdlOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZCA9ICgpID0+IHt9O1xuICBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB7fTtcblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIG9uSW5wdXRDaGFuZ2UoZXZlbnQ6IGFueSkge1xuICAgIGlmKHRoaXMudHlwZSA9PT0gJ2RhdGV0aW1lJyB8fCB0aGlzLnR5cGUgPT09ICdkYXRlJyl7XG4gICAgICB0aGlzLnZhbHVlID0gZXZlbnQudmFsdWVcbiAgICB9IGVsc2UgaWYodGhpcy50eXBlID09PSAncmljaHRleHQnKXtcbiAgICAgIHRoaXMudmFsdWUgPSBldmVudDtcbiAgICB9ZWxzZSBpZih0aGlzLnR5cGUgPT09ICdjaGVja2JveCcpeyAvLyBTS1MyM0pVTjI1IGhhbmRlbCBjaGVja2JveCBldmVudFxuICAgICAgY29uc3QgaXNDaGVja2VkID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS5jaGVja2VkO1xuICAgICAgdGhpcy52YWx1ZSA9IGlzQ2hlY2tlZDtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgaW5wdXRFbGVtZW50ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgICB0aGlzLnJhd0lucHV0VmFsID0gaW5wdXRFbGVtZW50LnZhbHVlO1xuICAgICAgaWYodGhpcy50eXBlID09PSAndGVsJykge1xuICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5zZWxlY3RlZENvdW50cnkuZGlhbF9jb2RlKyBcIiBcIiArIGlucHV0RWxlbWVudC52YWx1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSBpbnB1dEVsZW1lbnQudmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XG4gICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICAvLyBTS1MxMUpVTjI1IE9ubHkgZW1pdCB0aGUgdmFsdWUgaWYgbm90IGluIHZpZXcgZWRpdCBtb2RlXG4gICAgaWYgKCF0aGlzLnZpZXdFZGl0IHx8IHRoaXMudHlwZSA9PT0gJ2xpc3QnKSB7XG4gICAgICBsZXQgY2hhbmdlOiBhbnk9e307XG4gICAgICBjaGFuZ2VbJ2Zyb21RdWVzdGlvbklkJ10gPSB0aGlzLnF1ZXN0aW9uPy5pZDtcbiAgICAgIGNoYW5nZVsndmFsdWVPYmonXSA9IHRoaXMudmFsdWU7XG4gICAgICBjaGFuZ2VbJ3JlZmVyZW5jZUZpZWxkJ10gPSB0aGlzLnF1ZXN0aW9uPy5yZWZlcmVuY2VGaWVsZDtcbiAgICAgIHRoaXMuaW5wdXRWYWx1ZS5lbWl0KHtxdWVzdGlvbiA6IHRoaXMucXVlc3Rpb24sIHZhbHVlOiBjaGFuZ2V9KTtcbiAgICB9XG4gIH1cblxuICB0b2dnbGVQYXNzd29yZFZpc2liaWxpdHkoKSB7XG4gICAgdGhpcy5pc1Bhc3N3b3JkVmlzaWJsZSA9ICF0aGlzLmlzUGFzc3dvcmRWaXNpYmxlO1xuICB9XG4gIHBhc3N3b3JkTWF0Y2hWYWxpZGF0b3IoKTogVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xuICAgICAgY29uc3QgY29uZmlybVBhc3N3b3JkID0gY29udHJvbC52YWx1ZTsgLy8gR2V0IGNvbmZpcm0gcGFzc3dvcmQgZmllbGQgdmFsdWVcbiAgICAgIGlmKHRoaXMuY29uZlBhc3NWYWwgPT09ICcnKXtcbiAgICAgICAgcmV0dXJuIHsgcGFzc3dvcmRNaXNtYXRjaDogdHJ1ZSB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMuY29uZlBhc3NWYWwgPT09IGNvbmZpcm1QYXNzd29yZCA/IG51bGwgOiB7IHBhc3N3b3JkTWlzbWF0Y2g6IHRydWUgfTtcbiAgICB9O1xuICB9XG4gIGdldEVycm9yTWVzc2FnZSgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmNvbnRyb2wuaGFzRXJyb3IoJ3JlcXVpcmVkJykpIHJldHVybiB0aGlzLmVycm9yTWVzc2FnZXNbJ3JlcXVpcmVkJ10gfHwgJ1RoaXMgZmllbGQgaXMgcmVxdWlyZWQnO1xuICAgIGlmICh0aGlzLmNvbnRyb2wuaGFzRXJyb3IoJ21pbmxlbmd0aCcpKSByZXR1cm4gdGhpcy5lcnJvck1lc3NhZ2VzWydtaW5sZW5ndGgnXSB8fCBgTWluaW11bSAke3RoaXMubWluTGVuZ3RofSBjaGFyYWN0ZXJzIHJlcXVpcmVkYDtcbiAgICBpZiAodGhpcy5jb250cm9sLmhhc0Vycm9yKCdwYXR0ZXJuJykpIHJldHVybiB0aGlzLmVycm9yTWVzc2FnZXNbJ3BhdHRlcm4nXSB8fCAodGhpcy50eXBlID09PSAndGVsJyA/IGBJbnZhbGlkICR7dGhpcy5zZWxlY3RlZENvdW50cnkubmFtZX0gcGhvbmUgbnVtYmVyIGZvcm1hdGAgOiAnSW52YWxpZCBmb3JtYXQnKTtcbiAgICBpZiAodGhpcy5jb250cm9sLmhhc0Vycm9yKCdtYXhsZW5ndGgnKSkgcmV0dXJuIHRoaXMuZXJyb3JNZXNzYWdlc1snbWF4bGVuZ3RoJ10gfHwgYE1heGltdW0gJHt0aGlzLm1heExlbmd0aH0gY2hhcmFjdGVycyBhbGxvd2VkYDtcbiAgICBpZiAodGhpcy5jb250cm9sLmhhc0Vycm9yKCdwYXNzd29yZE1pc21hdGNoJykpIHJldHVybiB0aGlzLmVycm9yTWVzc2FnZXNbJ2NvbmZQYXNzJ10gfHwgYFBhc3N3b3JkcyBkbyBub3QgbWF0Y2hgO1xuICAgIHJldHVybiAnJztcbiAgfVxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAodGhpcy50eXBlID09PSAnb3RwJykge1xuICAgICAgY29uc3QgdmFsdWVzID0gdmFsdWUuc3BsaXQoJycpLnNsaWNlKDAsIHRoaXMuI3NpemUpO1xuICAgICAgdmFsdWVzLmZvckVhY2goKHZhbCwgaW5kZXgpID0+IHRoaXMuaW5wdXRzLmNvbnRyb2xzW2luZGV4XS5zZXRWYWx1ZSh2YWwpKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gJ2RhdGV0aW1lJyB8fCB0aGlzLnR5cGUgPT09ICdkYXRlJykge1xuICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWVcbiAgICAgIH0gZWxzZSBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJykge1xuICAgICAgICB0aGlzLnZhbHVlID0gbmV3IERhdGUodmFsdWUpXG4gICAgICB9XG4gICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUodGhpcy52YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICAgIGlmICh0aGlzLnR5cGUgPT09ICdvdHAnKSB7XG4gICAgICB0aGlzLmlucHV0cy52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmlucHV0cy52YWx1ZS5qb2luKCcnKTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmICh0aGlzLnR5cGUgPT09ICdvdHAnKSB7XG4gICAgICAgIGlmIChpc0Rpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLmlucHV0cy5kaXNhYmxlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmlucHV0cy5lbmFibGUoKTtcbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChpc0Rpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wuZGlzYWJsZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jb250cm9sLmVuYWJsZSgpO1xuICAgICAgICB9XG4gICAgfVxufVxucHJpdmF0ZSB1cGRhdGVDb250cm9sU3RhdGUoKSB7XG4gIC8vQVAtMDFKVUwyNSAtIERldGVybWluZSBpZiB0aGUgZmllbGQgc2hvdWxkIGJlIGRpc2FibGVkIGJhc2VkIG9uIG1vZGUgYW5kIHF1ZXN0aW9uJ3MgcmVhZC1vbmx5IHN0YXR1c1xuICBjb25zdCBzaG91bGREaXNhYmxlID0gdGhpcy5tb2RlID09PSAnZWRpdCcgPyAodGhpcy5xdWVzdGlvbj8uaXNSZWFkT25seSA9PT0gdHJ1ZSB8fCB0aGlzLnF1ZXN0aW9uPy5pc1JlYWRPbmx5ID09PSAndHJ1ZScpIDogdHJ1ZTtcbiAgdGhpcy5zZXREaXNhYmxlZFN0YXRlKHNob3VsZERpc2FibGUpO1xufVxuICB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2w8c3RyaW5nLCBzdHJpbmc+KTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGlmICh0aGlzLnR5cGUgPT09ICdvdHAnKSB7XG4gICAgICBpZiAoIWNvbnRyb2wudmFsdWUgfHwgY29udHJvbC52YWx1ZS5sZW5ndGggPCB0aGlzLiNzaXplKSB7XG4gICAgICAgIHJldHVybiB7IG90cElucHV0OiAnVmFsdWUgaXMgaW5jb3JyZWN0JyB9O1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5jb250cm9sLmludmFsaWQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udHJvbC5lcnJvcnM7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaGFuZGxlS2V5RG93bihlOiBLZXlib2FyZEV2ZW50LCBpZHg6IG51bWJlcikge1xuICAgIGlmIChlLmtleSA9PT0gJ0JhY2tzcGFjZScgfHwgZS5rZXkgPT09ICdEZWxldGUnKSB7XG4gICAgICBpZiAoaWR4ID4gMCkge1xuICAgICAgICB0aGlzLiNzY2hlZHVsZWRGb2N1cyA9IGlkeCAtIDE7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLiNzY2hlZHVsZWRGb2N1cyA9IG51bGw7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gRHVlIHRvIGlPUy9pUGFkT1MgU2FmYXJpIGJ1Zy9zcGVjaWFsIGJlaGF2aW9yIHdlIGFyZSBmb3JjZWQgdG9cbiAgLy8gc2NoZWR1bGUgZm9jdXMgdHJhbnNpdGlvbiBkdXJpbmcga2V5cHJlc3Mva2V5ZG93biBldmVudCBhbmQgb25seVxuICAvLyBhZnRlciBpbnB1dCBldmVudCBoYXBwZW5lZCAtIGV4ZWN1dGUgdGhlIHRyYW5zaXRpb25cbiAgLy8gb3RoZXJ3aXNlIGlucHV0cyBkb24ndCBnZXQgdGhlaXIgdmFsdWVzIGZpbGxlZFxuICBoYW5kbGVJbnB1dCgpIHtcbiAgICB0aGlzLiN1cGRhdGVXaXJlZFZhbHVlKCk7XG4gICAgaWYgKHRoaXMuI3NjaGVkdWxlZEZvY3VzICE9PSBudWxsKSB7XG4gICAgICB0aGlzLiNmb2N1c0lucHV0KHRoaXMuI3NjaGVkdWxlZEZvY3VzKTtcbiAgICAgIHRoaXMuI3NjaGVkdWxlZEZvY3VzID0gbnVsbDsgLy8gUmVzZXQgdG8gbnVsbCBhZnRlciBmb2N1c2luZ1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZUtleVByZXNzKGU6IEtleWJvYXJkRXZlbnQsIGlkeDogbnVtYmVyKSB7XG4gICAgY29uc3QgaXNEaWdpdCA9IC9cXGQvLnRlc3QoZS5rZXkpO1xuICBcbiAgICBpZiAoZS5rZXkgPT09ICd2JyAmJiBlLm1ldGFLZXkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgXG4gICAgaWYgKGlzRGlnaXQgJiYgaWR4ICsgMSA8IHRoaXMuI3NpemUpIHtcbiAgICAgIHRoaXMuI3NjaGVkdWxlZEZvY3VzID0gaWR4ICsgMTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy4jc2NoZWR1bGVkRm9jdXMgPSBudWxsOyAvLyBFbnN1cmUgaXQncyBudWxsIGlmIG5vdCBtb3ZpbmcgZm9jdXNcbiAgICB9XG4gIFxuICAgIGlmIChpc0RpZ2l0ICYmIHRoaXMuaW5wdXRzLmNvbnRyb2xzW2lkeF0udmFsdWUpIHtcbiAgICAgIHRoaXMuaW5wdXRzLmNvbnRyb2xzW2lkeF0uc2V0VmFsdWUoJycpO1xuICAgIH1cbiAgXG4gICAgcmV0dXJuIGlzRGlnaXQ7XG4gIH1cblxuICBoYW5kbGVQYXN0ZShlOiBDbGlwYm9hcmRFdmVudCwgaWR4OiBudW1iZXIpIHtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICBpZiAoaWR4ICE9PSAwKSB7XG4gICAgICAvLyBJZiB0aGUgdGFyZ2V0IGlucHV0IGlzIG5vdCB0aGUgZmlyc3Qgb25lIC0gaWdub3JlXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcGFzdGVEYXRhID0gZS5jbGlwYm9hcmREYXRhPy5nZXREYXRhKCd0ZXh0Jyk7XG4gICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKGBcXFxcZHske3RoaXMuI3NpemV9fWApO1xuXG4gICAgaWYgKCFwYXN0ZURhdGEgfHwgIXJlZ2V4LnRlc3QocGFzdGVEYXRhKSkge1xuICAgICAgLy8gSWYgdGhlcmUgaXMgbm90aGluZyB0byBiZSBwYXN0ZWQgb3IgdGhlIHBhc3RlZCBkYXRhIGRvZXMgbm90XG4gICAgICAvLyBjb21wbHkgd2l0aCB0aGUgcmVxdWlyZWQgZm9ybWF0IC0gaWdub3JlIHRoZSBldmVudFxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcGFzdGVEYXRhLmxlbmd0aDsgaSsrKSB7XG4gICAgICB0aGlzLmlucHV0cy5jb250cm9sc1tpXS5zZXRWYWx1ZShwYXN0ZURhdGFbaV0pO1xuICAgIH1cblxuICAgIHRoaXMuI2ZvY3VzSW5wdXQodGhpcy5pbnB1dEVscy5sZW5ndGggLSAxKTtcbiAgICB0aGlzLiN1cGRhdGVXaXJlZFZhbHVlKCk7XG4gICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgfVxuXG4gIGhhbmRsZUZvY3VzKGU6IEZvY3VzRXZlbnQpIHtcbiAgICAvLyBTZWxlY3QgcHJldmlvdXNseSBlbnRlcmVkIHZhbHVlIHRvIHJlcGxhY2Ugd2l0aCBhIG5ldyBpbnB1dFxuICAgIChlLnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS5zZWxlY3QoKTtcbiAgfVxuXG4gICNmb2N1c0lucHV0KGlkeDogbnVtYmVyKSB7XG4gICAgLy8gSW4gb3JkZXIgbm90IHRvIGludGVyZmVyZSB3aXRoIHRoZSBpbnB1dCB3ZSBzZXRUaW1lb3V0XG4gICAgLy8gYmVmb3JlIGFkdmFuY2luZyB0aGUgZm9jdXNcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuaW5wdXRFbHMuZ2V0KGlkeCk/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKSk7XG4gIH1cblxuICAjdXBkYXRlV2lyZWRWYWx1ZSgpIHtcbiAgICAvLyBXZSB3YW50IHRvIGV4cG9zZSB0aGUgdmFsdWUgYXMgYSBwbGFpbiBzdHJpbmdcbiAgICAvL1xuICAgIC8vIEluIG9yZGVyIG5vdCB0byBpbnRlcmZlcmUgd2l0aCB0aGUgaW5wdXQgd2Ugc2V0VGltZW91dFxuICAgIC8vIGJlZm9yZSBhZHZhbmNpbmcgdGhlIGZvY3VzXG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLm9uQ2hhbmdlPy4odGhpcy5pbnB1dHMudmFsdWUuam9pbignJykpKTtcbiAgfVxuICAvLyBTS1MyOEZFQjI1IHRvZ2dsZSBDb3VudHJ5IERyb3Bkb3duXG4gIHRvZ2dsZUNvdW50cnlEcm9wZG93bigpIHtcbiAgICB0aGlzLnNob3dDb3VudHJ5RHJvcGRvd24gPSAhdGhpcy5zaG93Q291bnRyeURyb3Bkb3duO1xuICB9XG5cbiAgLy8gU0tTMjhGRUIyNSBDb3VudHJ5IERyb3Bkb3duIHNlYXJjaCBmaWx0ZXJcbiAgZmlsdGVyQ291bnRyaWVzKGV2ZW50IDogYW55KSB7XG4gICAgY29uc3QgaW5wdXRFbGVtZW50ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgdGhpcy5jb3VudHJ5U2VhcmNoID0gaW5wdXRFbGVtZW50LnZhbHVlO1xuICAgIHRoaXMuZmlsdGVyZWRDb3VudHJpZXMgPSB0aGlzLmNvdW50cmllcy5maWx0ZXIoY291bnRyeSA9PlxuICAgICAgY291bnRyeS5uYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy5jb3VudHJ5U2VhcmNoLnRvTG93ZXJDYXNlKCkpIHx8XG4gICAgICBjb3VudHJ5LmRpYWxfY29kZS5pbmNsdWRlcyh0aGlzLmNvdW50cnlTZWFyY2gpXG4gICAgKTtcbiAgfVxuXG4gIC8vIFNLUzI4RkVCMjUgQ291bnRyeSBEcm9wZG93biBzZWxlY3QgZnVuY3Rpb25cbiAgc2VsZWN0Q291bnRyeShjb3VudHJ5OiBhbnkpIHtcbiAgICB0aGlzLnNlbGVjdGVkQ291bnRyeSA9IGNvdW50cnk7XG4gICAgdGhpcy5zaG93Q291bnRyeURyb3Bkb3duID0gZmFsc2U7XG4gICAgdGhpcy5jb250cm9sLnNldFZhbGlkYXRvcnMoW1xuICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcbiAgICAgIFZhbGlkYXRvcnMucGF0dGVybih0aGlzLnJlbW92ZURpYWxDb2RlRnJvbVJlZ2V4KHRoaXMuc2VsZWN0ZWRDb3VudHJ5LnJlZ2V4LCB0aGlzLnNlbGVjdGVkQ291bnRyeS5kaWFsX2NvZGUpKVxuICAgIF0pO1xuICAgIC8vIFNLUzI4RkVCMjUgVXBkYXRlIHRoZSBjb250cm9sJ3MgdmFsdWUgd2l0aCB0aGUgbmV3IGRpYWwgY29kZVxuICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZSh0aGlzLnJhd0lucHV0VmFsKTtcblxuICAgIC8vIFNLUzI4RkVCMjUgSW1tZWRpYXRlbHkgdXBkYXRlIHZhbGlkaXR5IHN0YXR1c1xuICAgIHRoaXMuY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG5cbiAgICAvLyBTS1MyOEZFQjI1IFRyaWdnZXIgY2hhbmdlIGRldGVjdGlvbiBpZiBuZWVkZWRcbiAgICB0aGlzLmNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICAgIHRoaXMudmFsdWUgPSB0aGlzLnNlbGVjdGVkQ291bnRyeS5kaWFsX2NvZGUrIFwiIFwiICsgdGhpcy5yYXdJbnB1dFZhbDtcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuICB9XG4gIC8vIFNLUzI4RkVCMjUgcmVtb3ZlIERpYWxDb2RlIEZyb20gUmVnZXhcbiAgcmVtb3ZlRGlhbENvZGVGcm9tUmVnZXgob3JpZ2luYWxSZWdleDogc3RyaW5nLCBkaWFsQ29kZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBlc2NhcGVkRGlhbENvZGUgPSBkaWFsQ29kZS5yZXBsYWNlKC9cXCsvZywgXCJcXFxcK1wiKTtcbiAgICByZXR1cm4gb3JpZ2luYWxSZWdleC5yZXBsYWNlKGBeJHtlc2NhcGVkRGlhbENvZGV9YCwgJ14nKTtcbiAgfVxuXG4gIC8vIFNLUzI4RkVCMjUgcmVtb3ZlIERpYWxDb2RlIEZyb20gUmVnZXggZm9yIHNob3cgaW4gaW5wdXRcbiAgcmVtb3ZlRGlhbENvZGUocGxhY2Vob2xkZXI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHBsYWNlaG9sZGVyLnJlcGxhY2UoL15cXCtcXGQrXFxzKi8sICcnKTtcbiAgfVxuICBibHVyRW1pdCgpe1xuICAgIHRoaXMub25CbHVyLmVtaXQodGhpcy52YWx1ZSk7XG4gIH1cbiAgZm9jdXNpbkVtaXQoZXZlbnQ6IGFueSl7XG4gICAgdGhpcy5vbkZvY3VzLmVtaXQoZXZlbnQpO1xuICB9XG4gIHRvZ2dsZShldmVudDogYW55KXtcbiAgICB0aGlzLnRvZ2dsZUVtaXQuZW1pdChldmVudCk7XG4gIH1cbiAgb25FZGl0b3JGb2N1c091dCgpOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50VmFsdWUgPSB0aGlzLnZhbHVlIHx8ICcnO1xuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdChjdXJyZW50VmFsdWUpO1xuICB9XG4gIHZpZXdFZGl0Q2xpY2socXVlczogYW55KSB7XG4gICAgdGhpcy5vcmlnaW5hbFZhbHVlID0gdGhpcy52YWx1ZTsgLy8gU3RvcmUgdGhlIG9yaWdpbmFsIHZhbHVlXG4gICAgdGhpcy52aWV3RWRpdCA9IHRydWU7IC8vIEVudGVyIHZpZXcgZWRpdCBtb2RlXG4gICAgdGhpcy5tb2RlID0gJ2VkaXQnO1xuICAgIHRoaXMudXBkYXRlQ29udHJvbFN0YXRlKCk7IC8vIFVwZGF0ZSBjb250cm9sIHN0YXRlXG4gIH1cbiAgc2F2ZUNoYW5nZXMgPSAoZXZlbnQ/OiBDdXN0b21FdmVudCkgPT4ge1xuICAgIC8vIFNLUzE0SlVOMjUgRW1pdCBzYXZlL2Rpc2NhcmQgZXZlbnQgb25seSBpZiB0aGUgY3VycmVudCBxdWVzdGlvbiB3YXMgY2hhbmdlZFxuICAgIGlmKGV2ZW50KSBpZiAoZXZlbnQuZGV0YWlsPy5pZCAhPT0gdGhpcy5xdWVzdGlvbj8uaWQpIHJldHVybjtcbiAgICBsZXQgcXVlcyA9IHRoaXMucXVlc3Rpb25cbiAgICBxdWVzWydzaW5nbGVGaWVsZENoYW5nZSddID0gdHJ1ZVxuICAgIGxldCBjaGFuZ2U6IGFueTtcbiAgICBjaGFuZ2VbJ2Zyb21RdWVzdGlvbklkJ10gPSB0aGlzLnF1ZXN0aW9uPy5pZDtcbiAgICBjaGFuZ2VbJ3ZhbHVlT2JqJ10gPSB0aGlzLnZhbHVlO1xuICAgIGNoYW5nZVsncmVmZXJlbmNlRmllbGQnXSA9IHRoaXMucXVlc3Rpb24/LnJlZmVyZW5jZUZpZWxkO1xuICAgIHRoaXMuaW5wdXRWYWx1ZS5lbWl0KHtxdWVzdGlvbiA6IHF1ZXMsIHZhbHVlOiBjaGFuZ2V9KTsgLy8gRW1pdCB0aGUgdXBkYXRlZCB2YWx1ZVxuICAgIHRoaXMudmlld0VkaXQgPSBmYWxzZTsgLy8gRXhpdCB2aWV3IGVkaXQgbW9kZVxuICAgIHRoaXMubW9kZSA9ICd2aWV3JzsgLy8gU3dpdGNoIGJhY2sgdG8gdmlldyBtb2RlXG4gICAgdGhpcy51cGRhdGVDb250cm9sU3RhdGUoKTsgLy8gVXBkYXRlIGNvbnRyb2wgc3RhdGVcbiAgfVxuICBkaXNjYXJkQ2hhbmdlcyA9IChldmVudD86IEN1c3RvbUV2ZW50KSA9PiB7XG4gICAgLy8gU0tTMTRKVU4yNSBFbWl0IHNhdmUvZGlzY2FyZCBldmVudCBvbmx5IGlmIHRoZSBjdXJyZW50IHF1ZXN0aW9uIHdhcyBjaGFuZ2VkXG4gICAgaWYoZXZlbnQpIGlmIChldmVudC5kZXRhaWw/LmlkICE9PSB0aGlzLnF1ZXN0aW9uPy5pZCkgcmV0dXJuO1xuICAgIHRoaXMud3JpdGVWYWx1ZSh0aGlzLm9yaWdpbmFsVmFsdWUpOyAvLyBSZXZlcnQgdG8gb3JpZ2luYWwgdmFsdWVcbiAgICB0aGlzLnZpZXdFZGl0ID0gZmFsc2U7IC8vIEV4aXQgdmlldyBlZGl0IG1vZGVcbiAgICB0aGlzLm1vZGUgPSAndmlldyc7IC8vIFN3aXRjaCBiYWNrIHRvIHZpZXcgbW9kZVxuICAgIHRoaXMudXBkYXRlQ29udHJvbFN0YXRlKCk7IC8vIFVwZGF0ZSBjb250cm9sIHN0YXRlXG4gIH1cbiAgb3BlbkRhdGVQaWNrZXIodHlwZTogc3RyaW5nKSB7XG4gICAgaWYgKHR5cGUgPT09ICdkYXRldGltZScpIHtcbiAgICAgIHRoaXMuZHRQaWNrZXIub3BlbigpO1xuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2RhdGUnKSB7XG4gICAgICB0aGlzLmRQaWNrZXIub3BlbigpO1xuICAgIH1cbiAgfVxuICByZW1vdmVWYWx1ZSgpe1xuICAgIHRoaXMucmVtb3ZlVmFsdWVFbWl0LmVtaXQoKVxuICB9XG4gIG9uQ2xpY2tIeXBlcmxpbmsoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaHlwZXJMaW5rKSB7XG4gICAgICB0aGlzLmh5cGVybGlua0VtaXQuZW1pdChldmVudCk7XG4gICAgfVxuICB9XG59XG4iLCI8IS0tIFNLUzMxSkFOMjUgLS0+XG48ZGl2IGNsYXNzPVwiaG92ZXItd3JhcHBlciBpbnB1dC13cmFwcGVyXCIgKGRvY3VtZW50OmNsaWNrKT1cImNsb3NlRHJvcGRvd24oJGV2ZW50KVwiPlxuICA8ZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJsYWJlbCAmJiB0eXBlICE9ICdjaGVja2JveCcgJiYgc2hvd0xhYmVsXCIgW25nU3R5bGVdPVwie1xuICAgICAgICAncGFkZGluZy10b3AnOiB0eXBlID09PSAnbGFiZWwnID8gJzEwcHgnIDogJycsXG4gICAgICAgICdwYWRkaW5nLWJvdHRvbSc6IHR5cGUgPT09ICdsYWJlbCcgPyAnMTBweCcgOiAnJ1xuICAgICAgfVwiICBbc3R5bGUuZm9udC13ZWlnaHRdPVwibGFiZWxXZWlnaHQgfHwgIHR5cGUgPT09ICdsYWJlbCcgPyAnYm9sZCcgOiAnbm9ybWFsJ1wiIFtzdHlsZS5mb250LXNpemVdPVwibGFiZWxTaXplIHx8IHR5cGUgPT09ICdsYWJlbCcgPyAnMTZweCcgOiAnMTRweCdcIlxuICAgICAgIHN0eWxlPVwiZGlzcGxheTogZmxleDsgZ2FwOiA1cHg7XCI+IHt7IGxhYmVsXG4gICAgICB9fVxuICAgICAgPGRpdiAqbmdJZj1cImxhYmVsICYmIHR5cGUgIT0gJ2NoZWNrYm94JyAmJiByZXF1aXJlZCAmJiBzaG93TGFiZWwgJiYgbW9kZSA9PT0gJ2VkaXQnXCIgc3R5bGU9XCJjb2xvcjogcmVkO1wiPio8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwidHlwZSAhPT0gJ2xhYmVsJyAmJiB0eXBlICE9PSAncmljaHRleHQnICYmIHR5cGUgIT09ICd0ZXh0YXJlYSdcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtY29udGFpbmVyXCIgW25nQ2xhc3NdPVwieydjaGVja2JveC1wYWRkaW5nJzogdHlwZSA9PT0gJ2NoZWNrYm94JyB8fCB0eXBlID09PSAnb3RwJ31cIlxuICAgICAgICBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cIm1vZGUgPT09ICdlZGl0JyA/IGZyb20gPT09ICdueHRUYWJsZScgPyAnJyA6IGlucHV0QmdDb2xvciA6ICcnXCJcbiAgICAgICAgW2NsYXNzLmludmFsaWRdPVwiY29udHJvbC5pbnZhbGlkICYmIGNvbnRyb2wudG91Y2hlZFwiXG4gICAgICAgIFtzdHlsZS5ib3JkZXItcmFkaXVzXT1cIm1vZGUgIT09ICdlZGl0JyAmJiBmcm9tID09PSAnbnh0VGFibGUnID8gJ25vbmUnOiAnJ1wiXG4gICAgICAgIFtzdHlsZS5wYWRkaW5nLWxlZnRdPVwibW9kZSAhPT0gJ2VkaXQnICYmIGZyb20gPT09ICdueHRUYWJsZScgPyAnMHB4JyA6ICcnXCJcbiAgICAgICAgW3N0eWxlLnBhZGRpbmctcmlnaHRdPVwibW9kZSAhPT0gJ2VkaXQnICYmIGZyb20gPT09ICdueHRUYWJsZScgPyAnMHB4JyA6ICcnXCJcbiAgICAgICAgW3N0eWxlLm1hcmdpbi10b3BdPVwic2hvd0xhYmVsICYmIGxhYmVsID8gJycgOiBmcm9tID09PSAnbnh0VGFibGUnIHx8IGZyb20gPT09ICdub3JtYWxEcm9wRG93bicgPyAnJyA6ICcyMXB4ICFpbXBvcnRhbnQnXCJcbiAgICAgICAgW3N0eWxlLmJvcmRlcl09XCJtb2RlID09PSAnZWRpdCcgPyBmcm9tID09PSAnbnh0VGFibGUnID8gJzFweCBzb2xpZCAjZDJkMmQyJyA6IGlucHV0Qm9yZGVyID09PSAnbm9uZScgPyAoJzFweCBzb2xpZCAnICsgaW5wdXRCZ0NvbG9yKSA6IGlucHV0Qm9yZGVyIDogJ25vbmUnXCJcbiAgICAgICAgc3R5bGU9XCJwb3NpdGlvbjogcmVsYXRpdmU7IHdpZHRoOiAxMDAlO1wiPlxuICAgICAgICA8aW1nICpuZ0lmPVwiaW5wdXRJY29uTGVmdFNyYyAmJiBtb2RlID09PSAnZWRpdCdcIiBbc3JjXT1cImlucHV0SWNvbkxlZnRTcmNcIiBhbHQ9XCJpY29uXCIgY2xhc3M9XCJpY29uIGxlZnQtaWNvblwiXG4gICAgICAgICAgW3N0eWxlLmhlaWdodF09XCJzdmdIZWlnaHRcIiBbc3R5bGUud2lkdGhdPVwic3ZnV2lkdGhcIiAvPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwibW9kZSA9PT0gJ2VkaXQnICYmIHR5cGUgPT09ICdsaXN0J1wiPlxuICAgICAgICAgIDwhLS0gSW5saW5lIHNlYXJjaCBpY29uIFNWRyAtLT5cbiAgICAgICAgICA8c3ZnIHdpZHRoPVwiMThcIiBoZWlnaHQ9XCIxOFwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiIzQzNDU1NVwiIHN0cm9rZS1vcGFjaXR5PVwiMC42NVwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE4IDE4XCI+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PVwiOC4yNVwiIGN5PVwiOC4yNVwiIHI9XCI1LjI1XCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTUgMTVMMTIuNzUgMTIuNzVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgLz5cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwhLS0gU0tTMjhGRUIyNSBtb2JpbGUgbnVtYmVyIGlucHV0IC0tPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwidHlwZSA9PT0gJ3RlbCdcIiBjbGFzcz1cInBob25lLWlucHV0LWNvbnRhaW5lclwiPlxuICAgICAgICAgIDxkaXYgIGNsYXNzPVwiY291bnRyeS1zZWxlY3RvclwiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiAxMHB4O1wiXG4gICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlQ291bnRyeURyb3Bkb3duKClcIj5cbiAgICAgICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9XCJmbGFnXCI+e3sgc2VsZWN0ZWRDb3VudHJ5LmZsYWcgfX08L3NwYW4+IC0tPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkaWFsLWNvZGVcIiBbc3R5bGUuZm9udC1zaXplXT1cImlucHV0VmFsdWVTaXplXCI+e3sgc2VsZWN0ZWRDb3VudHJ5LmRpYWxfY29kZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJhcnJvd1wiIHdpZHRoPVwiOVwiIGhlaWdodD1cIjZcIiB2aWV3Qm94PVwiMCAwIDkgNlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgICAgICAgICAgZD1cIk0wLjY4NDEzNiAwLjc2NzQ3N0MwLjkyMjk5OSAwLjUzNzggMS4zMDI4MiAwLjU0NTI0OCAxLjUzMjUgMC43ODQxMTFMNC41IDMuOTM0MzFMNy40Njc1IDAuNzg0MTExQzcuNjk3MTggMC41NDUyNDggOC4wNzcgMC41Mzc4IDguMzE1ODcgMC43Njc0NzdDOC41NTQ3MyAwLjk5NzE1MyA4LjU2MjE4IDEuMzc2OTggOC4zMzI1IDEuNjE1ODRMNC45MzI1IDUuMjE1ODRDNC44MTkzOCA1LjMzMzQ5IDQuNjYzMjEgNS4zOTk5OCA0LjUgNS4zOTk5OEM0LjMzNjc5IDUuMzk5OTggNC4xODA2MiA1LjMzMzQ5IDQuMDY3NSA1LjIxNTg0TDAuNjY3NTAxIDEuNjE1ODRDMC40Mzc4MjUgMS4zNzY5OCAwLjQ0NTI3MiAwLjk5NzE1MyAwLjY4NDEzNiAwLjc2NzQ3N1pcIlxuICAgICAgICAgICAgICAgIGZpbGw9XCIjNjI2MjYyXCIgLz5cbiAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJzaG93Q291bnRyeURyb3Bkb3duXCIgY2xhc3M9XCJjb3VudHJ5LWRyb3Bkb3duXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLWJveFwiPlxuICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBbcmVhZE9ubHldPVwibW9kZSAhPT0gJ2VkaXQnXCIgcGxhY2Vob2xkZXI9XCJTZWFyY2ggY291bnRyeS4uLlwiIFt2YWx1ZV09XCJjb3VudHJ5U2VhcmNoXCJcbiAgICAgICAgICAgICAgICAoaW5wdXQpPVwiZmlsdGVyQ291bnRyaWVzKCRldmVudClcIj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvdW50cnktbGlzdFwiPlxuICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBjb3VudHJ5IG9mIGZpbHRlcmVkQ291bnRyaWVzXCIgY2xhc3M9XCJjb3VudHJ5LWl0ZW1cIiAoY2xpY2spPVwic2VsZWN0Q291bnRyeShjb3VudHJ5KVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmxhZ1wiPnt7IGNvdW50cnkuZmxhZyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm5hbWVcIj57eyBjb3VudHJ5Lm5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkaWFsLWNvZGVcIj57eyBjb3VudHJ5LmRpYWxfY29kZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIEBpZih0eXBlICE9PSAnZGF0ZXRpbWUnICYmIHR5cGUgIT09ICdkYXRlJyAmJiB0eXBlICE9PSAndGltZScpe1xuICAgICAgICA8aW5wdXQgKm5nRm9yPVwibGV0IGlucHV0IG9mIGNhY2hlZElucHV0TGlzdDsgbGV0IGkgPSBpbmRleFwiICNpbnB1dEVsICNpbnB1dFJlZiBbaWRdPVwiaW5wdXRJZFwiXG4gICAgICAgICAgW3R5cGVdPVwiaXNQYXNzd29yZFZpc2libGUgPyAndGV4dCcgOiB0eXBlID09PSAnb3RwJyB8fCB0eXBlID09PSAnZHJvcGRvd24nID8gJ3RleHQnIDogdHlwZVwiXG4gICAgICAgICAgW2F0dHIucGxhY2Vob2xkZXJdPVwidHlwZSA9PT0gJ290cCcgfHwgbW9kZSAhPT0gJ2VkaXQnID8gJycgOiBwbGFjZWhvbGRlciB8fCAodHlwZSA9PT0gJ3RlbCcgPyByZW1vdmVEaWFsQ29kZShzZWxlY3RlZENvdW50cnkucGxhY2Vob2xkZXIpIDogbGFiZWwpXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7J2ZjT3RwJzogdHlwZSA9PT0gJ290cCcsJ2N1c3RvbS1pbnB1dCc6IHR5cGUgIT09ICdvdHAnLCdoeXBlcmxpbmstaW5wdXQnOiBoeXBlckxpbmssJ2Zyb20tbnh0LXRhYmxlJzogZnJvbSA9PT0gJ254dFRhYmxlJyB9XCJcbiAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwidHlwZSA9PT0gJ290cCcgPyAkYW55KGlucHV0KSA6IGNvbnRyb2xcIlxuICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kQ29sb3JdPVwidHlwZSA9PT0gJ290cCd8fCBtb2RlICE9PSAnZWRpdCcgPyAnJyA6IGZyb20gPT09ICdueHRUYWJsZScgPyAnJyA6IGlucHV0QmdDb2xvclwiXG4gICAgICAgICAgW3N0eWxlLmNvbG9yXT1cInR5cGUgPT09ICdvdHAnIHx8IG1vZGUgIT09ICdlZGl0JyA/ICcnIDogaW5wdXRUZXh0Q29sb3JcIlxuICAgICAgICAgIFtzdHlsZS5ib3JkZXJdPVwidHlwZSA9PT0gJ290cCcgfHwgbW9kZSAhPT0gJ2VkaXQnID8gJycgOiBmcm9tID09PSAnbnh0VGFibGUnID8gJ25vbmUnIDogaW5wdXRCb3JkZXJcIlxuICAgICAgICAgIFtzdHlsZS5oZWlnaHRdPVwidHlwZSA9PT0gJ290cCcgPyAnJyA6IGlucHV0SGVpZ2h0XCIgW3N0eWxlLndpZHRoXT1cInR5cGUgPT09ICdvdHAnID8gJycgOiB0eXBlID09PSAnY2hlY2tib3gnID8gJ2F1dG8nIDogaW5wdXRXaWR0aFwiXG4gICAgICAgICAgW3N0eWxlLnBhZGRpbmddPVwiZnJvbSA9PT0gJ254dFRhYmxlJyA/ICcwcHgnIDogJydcIlxuICAgICAgICAgIFt2YWx1ZV09XCJ0eXBlID09PSAndGVsJyA/IHJhd0lucHV0VmFsIDogdmFsdWVcIlxuICAgICAgICAgIChpbnB1dCk9XCJ0eXBlID09PSAnb3RwJyA/IGhhbmRsZUlucHV0KCkgOiBvbklucHV0Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAgIFtjaGVja2VkXT1cInR5cGUgPT09ICdjaGVja2JveCcgPyB2YWx1ZSA6ICcnXCJcbiAgICAgICAgICBbc3R5bGUuZm9udC1zaXplXT1cInR5cGUgPT09ICdvdHAnID8gJycgOiBpbnB1dFZhbHVlU2l6ZVwiIChmb2N1cyk9XCJ0eXBlID09PSAnb3RwJyA/IGhhbmRsZUZvY3VzKCRldmVudCkgOiBudWxsXCJcbiAgICAgICAgICAoYmx1cik9XCJ0eXBlID09PSAnb3RwJyA/IG9uVG91Y2hlZCgpIDogYmx1ckVtaXQoKVwiXG4gICAgICAgICAgKGtleXByZXNzKT1cInR5cGUgPT09ICdvdHAnID8gaGFuZGxlS2V5UHJlc3MoJGV2ZW50LCBpKSA6IG51bGxcIlxuICAgICAgICAgIChrZXlkb3duKT1cInR5cGUgPT09ICdvdHAnID8gaGFuZGxlS2V5RG93bigkZXZlbnQsIGkpIDogZnJvbSA9PT0gJ25vcm1hbERyb3BEb3duJyA/ICRldmVudC5wcmV2ZW50RGVmYXVsdCgpIDogbnVsbFwiXG4gICAgICAgICAgKHBhc3RlKT1cInR5cGUgPT09ICdvdHAnID8gaGFuZGxlUGFzdGUoJGV2ZW50LCBpKSA6IG51bGxcIiBpbnB1dG1vZGU9XCJ0eXBlID09PSAnb3RwJyA/IG51bWVyaWMgOiBudWxsXCJcbiAgICAgICAgICBbYXR0ci5hdXRvY29tcGxldGVdPVwidHlwZSA9PT0gJ290cCcgJiYgaSA9PT0gMCA/ICdvbmUtdGltZS1jb2RlJyA6IHR5cGUgPT09ICdsaXN0JyA/ICdsaXN0JyA6ICdvZmYnXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cInR5cGUgPT09ICdsaXN0JyA/IHNob3dTdWdnZXN0aW9uIDogJ29mZidcIlxuICAgICAgICAgIFthdHRyLmlucHV0bW9kZV09XCJ0eXBlID09PSAnb3RwJyA/ICdudW1lcmljJyA6IG51bGxcIiBbYXR0ci5uYW1lXT1cInR5cGUgPT09ICdvdHAnICYmIGkgPT09IDAgPyAnb3RwJyA6IG51bGxcIlxuICAgICAgICAgIChmb2N1c2luKT1cImZvY3VzaW5FbWl0KCRldmVudClcIiBbYXR0ci5hcmlhLW93bnNdPVwidHlwZSA9PT0gJ2xpc3QnID8gYXJpYU93bnMgOiAnb2ZmJ1wiXG4gICAgICAgICAgW2F0dHIuYXJpYS1oYXNwb3B1cF09XCJ0eXBlID09PSAnbGlzdCcgPyBhcmlhSGFzUG9wdXAgOiAnb2ZmJ1wiIFxuICAgICAgICAgIFtyZWFkb25seV09XCJmcm9tID09PSAnbm9ybWFsRHJvcERvd24nXCIgXG4gICAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgICAgICAnLS1wbGFjZWhvbGRlci1mb250JzogbW9kZSA9PT0gJ2VkaXQnID8gcGxhY2Vob2xkZXJGb250IHx8IGxhYmVsRm9udCA6ICcnLFxuICAgICAgICAgICAgICAnLS1wbGFjZWhvbGRlci1jb2xvcic6IG1vZGUgPT09ICdlZGl0JyA/IHBsYWNlaG9sZGVyQ29sb3IgfHwgJyM5YTlhOWEnIDogJycsXG4gICAgICAgICAgICAgICctLXBsYWNlaG9sZGVyLXNpemUnOiBtb2RlID09PSAnZWRpdCcgPyBwbGFjZWhvbGRlclNpemUgfHwgaW5wdXRWYWx1ZVNpemUgOiAnJyxcbiAgICAgICAgICAgICAgJy0tcGxhY2Vob2xkZXItd2VpZ2h0JzogbW9kZSA9PT0gJ2VkaXQnID8gcGxhY2Vob2xkZXJXZWlnaHQgfHwgbGFiZWxXZWlnaHQgOiAnJ1xuICAgICAgICAgICAgfVwiIChrZXlkb3duLmVudGVyKT1cInR5cGUgPT09ICdsb2NhdGlvbicgPyAkZXZlbnQucHJldmVudERlZmF1bHQoKSA6ICcnXCJcbiAgICAgICAgICBhdXRvY29ycmVjdD1cInR5cGUgPT09ICdsb2NhdGlvbicgPyAnb2ZmJyA6ICcnXCIgYXV0b2NhcGl0YWxpemU9XCJ0eXBlID09PSAnbG9jYXRpb24nID8gJ29mZicgOiAnJ1wiXG4gICAgICAgICAgc3BlbGxjaGVjaz1cInR5cGUgPT09ICdsb2NhdGlvbicgPyAnb2ZmJyA6ICcnXCIgXG4gICAgICAgICAvPlxuICAgICAgICB9XG4gICAgICAgIEBlbHNlIGlmKHR5cGUgPT09ICd0aW1lJyl7XG4gICAgICAgICAgPGlucHV0ICNpbnB1dEVsIFtpZF09XCJpbnB1dElkXCJcbiAgICAgICAgICAgIFt0eXBlXT1cInR5cGVcIlxuICAgICAgICAgICAgW2F0dHIucGxhY2Vob2xkZXJdPVwibW9kZSAhPT0gJ2VkaXQnID8gJycgOiBwbGFjZWhvbGRlciB8fCAnSEg6TU0nXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIidueHQtY3VzdG9tLWlucHV0J1wiIFtuZ0NsYXNzXT1cInsnaHlwZXJsaW5rLWlucHV0JzogaHlwZXJMaW5rLCdmcm9tLW54dC10YWJsZSc6IGZyb20gPT09ICdueHRUYWJsZSd9XCJcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcbiAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kQ29sb3JdPVwibW9kZSAhPT0gJ2VkaXQnID8gJycgOiBmcm9tID09PSAnbnh0VGFibGUnID8gJycgOiBpbnB1dEJnQ29sb3JcIlxuICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cIm1vZGUgIT09ICdlZGl0JyA/ICcnIDogaW5wdXRUZXh0Q29sb3JcIiBbc3R5bGUuYm9yZGVyXT1cIm1vZGUgIT09ICdlZGl0JyA/ICdub25lJyA6IGZyb20gPT09ICdueHRUYWJsZScgPyAnbm9uZScgOiBpbnB1dEJvcmRlclwiXG4gICAgICAgICAgICBbc3R5bGUuaGVpZ2h0XT1cImlucHV0SGVpZ2h0XCJcbiAgICAgICAgICAgIFtzdHlsZS5wYWRkaW5nXT1cImZyb20gPT09ICdueHRUYWJsZScgPyAnMHB4JyA6ICcxMHB4IDEwcHggMTBweCA1cHgnXCJcbiAgICAgICAgICAgIFtzdHlsZS5mb250LXNpemVdPVwiaW5wdXRWYWx1ZVNpemVcIiAoYmx1cik9XCIgYmx1ckVtaXQoKVwiIChmb2N1c2luKT1cImZvY3VzaW5FbWl0KCRldmVudClcIlxuICAgICAgICAgICAgKGlucHV0KT1cIm9uSW5wdXRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgICAgICctLXBsYWNlaG9sZGVyLWZvbnQnOiBtb2RlID09PSAnZWRpdCcgPyBwbGFjZWhvbGRlckZvbnQgfHwgbGFiZWxGb250IDogJycsXG4gICAgICAgICAgICAgICctLXBsYWNlaG9sZGVyLWNvbG9yJzogbW9kZSA9PT0gJ2VkaXQnID8gcGxhY2Vob2xkZXJDb2xvciB8fCAnIzlhOWE5YScgOiAnJyxcbiAgICAgICAgICAgICAgJy0tcGxhY2Vob2xkZXItc2l6ZSc6IG1vZGUgPT09ICdlZGl0JyA/IHBsYWNlaG9sZGVyU2l6ZSB8fCBpbnB1dFZhbHVlU2l6ZSA6ICcnLFxuICAgICAgICAgICAgICAnLS1wbGFjZWhvbGRlci13ZWlnaHQnOiBtb2RlID09PSAnZWRpdCcgPyBwbGFjZWhvbGRlcldlaWdodCB8fCBsYWJlbFdlaWdodCA6ICcnXG4gICAgICAgICAgICB9XCIgc3R5bGU9XCJcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcIiBcbiAgICAgICAgICAvPlxuICAgICAgICB9XG4gICAgICAgIEBlbHNlIGlmKHR5cGUgPT09ICdkYXRldGltZScgfHwgdHlwZSA9PT0gJ2RhdGUnKXtcbiAgICAgICAgPGlucHV0ICNpbnB1dEVsIFtpZF09XCJpbnB1dElkXCJcbiAgICAgICAgICBbb3dsRGF0ZVRpbWVUcmlnZ2VyXT1cInR5cGUgPT09ICdkYXRldGltZScgPyBkdCA6IHR5cGUgPT09ICdkYXRlJyA/IGR0MiA6IGR0XCJcbiAgICAgICAgICBbb3dsRGF0ZVRpbWVdPVwidHlwZSA9PT0gJ2RhdGV0aW1lJyA/IGR0IDogdHlwZSA9PT0gJ2RhdGUnID8gZHQyIDogZHRcIlxuICAgICAgICAgIFthdHRyLnBsYWNlaG9sZGVyXT1cIm1vZGUgIT09ICdlZGl0JyA/ICcnIDogcGxhY2Vob2xkZXIgfHwgdHlwZSA9PT0gJ2RhdGV0aW1lJyA/ICdERC9NTS9ZWVlZIEhIOk1NJyA6IHR5cGUgPT09ICdkYXRlJyA/ICdERC9NTS9ZWVlZJyA6ICdERC9NTS9ZWVlZIEhIOk1NJ1wiXG4gICAgICAgICAgW25nQ2xhc3NdPVwiJ254dC1jdXN0b20taW5wdXQnXCIgW25nQ2xhc3NdPVwieydoeXBlcmxpbmstaW5wdXQnOiBoeXBlckxpbmssJ2Zyb20tbnh0LXRhYmxlJzogZnJvbSA9PT0gJ254dFRhYmxlJ31cIlxuICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcbiAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cIm1vZGUgIT09ICdlZGl0JyA/ICcnIDogZnJvbSA9PT0gJ254dFRhYmxlJyA/ICcnIDogaW5wdXRCZ0NvbG9yXCJcbiAgICAgICAgICBbc3R5bGUuY29sb3JdPVwibW9kZSAhPT0gJ2VkaXQnID8gJycgOiBpbnB1dFRleHRDb2xvclwiIFtzdHlsZS5ib3JkZXJdPVwibW9kZSAhPT0gJ2VkaXQnID8gJ25vbmUnIDogZnJvbSA9PT0gJ254dFRhYmxlJyA/ICdub25lJyA6IGlucHV0Qm9yZGVyXCJcbiAgICAgICAgICBbc3R5bGUuaGVpZ2h0XT1cImlucHV0SGVpZ2h0XCJcbiAgICAgICAgICBbc3R5bGUucGFkZGluZ109XCJmcm9tID09PSAnbnh0VGFibGUnID8gJzBweCcgOiAnMTBweCAxMHB4IDEwcHggNXB4J1wiXG4gICAgICAgICAgW3N0eWxlLmZvbnQtc2l6ZV09XCJpbnB1dFZhbHVlU2l6ZVwiIChibHVyKT1cIiBibHVyRW1pdCgpXCIgKGZvY3VzaW4pPVwiZm9jdXNpbkVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgKGRhdGVUaW1lSW5wdXQpPVwib25JbnB1dENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgICAnLS1wbGFjZWhvbGRlci1mb250JzogbW9kZSA9PT0gJ2VkaXQnID8gcGxhY2Vob2xkZXJGb250IHx8IGxhYmVsRm9udCA6ICcnLFxuICAgICAgICAgICAgJy0tcGxhY2Vob2xkZXItY29sb3InOiBtb2RlID09PSAnZWRpdCcgPyBwbGFjZWhvbGRlckNvbG9yIHx8ICcjOWE5YTlhJyA6ICcnLFxuICAgICAgICAgICAgJy0tcGxhY2Vob2xkZXItc2l6ZSc6IG1vZGUgPT09ICdlZGl0JyA/IHBsYWNlaG9sZGVyU2l6ZSB8fCBpbnB1dFZhbHVlU2l6ZSA6ICcnLFxuICAgICAgICAgICAgJy0tcGxhY2Vob2xkZXItd2VpZ2h0JzogbW9kZSA9PT0gJ2VkaXQnID8gcGxhY2Vob2xkZXJXZWlnaHQgfHwgbGFiZWxXZWlnaHQgOiAnJ1xuICAgICAgICAgIH1cIiBzdHlsZT1cIlxuICAgICAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICBwYWRkaW5nOiAxMHB4O1xuICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgICAgICAgICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1wiIFxuICAgICAgICAvPlxuICAgICAgICA8b3dsLWRhdGUtdGltZSAjZHQ+PC9vd2wtZGF0ZS10aW1lPlxuICAgICAgICA8b3dsLWRhdGUtdGltZSBbcGlja2VyVHlwZV09XCInY2FsZW5kYXInXCIgI2R0Mj48L293bC1kYXRlLXRpbWU+XG4gICAgICAgIH1cbiAgICAgICAgPGRpdiAqbmdJZj1cIm1vZGUgIT09ICdlZGl0J1wiIGNsYXNzPVwiaHlwZXJsaW5rLW92ZXJsYXlcIiAoY2xpY2spPVwiaHlwZXJMaW5rID8gb25DbGlja0h5cGVybGluaygkZXZlbnQpIDogJydcIlxuICAgICAgICBzdHlsZT1cIiBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgbGVmdDogMDsgd2lkdGg6IDk0JTsgaGVpZ2h0OiAxMDAlOyB6LWluZGV4OiA1OyBcIj48L2Rpdj4gICAgICBcbiAgICAgICAgPGRpdiAqbmdJZj1cIm1vZGUgPT09ICdlZGl0JyAmJiAodHlwZSA9PT0gJ2RhdGV0aW1lJyB8fCB0eXBlID09PSAnZGF0ZScpXCIgKGNsaWNrKT1cIm9wZW5EYXRlUGlja2VyKHR5cGUpXCJcbiAgICAgICAgc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXI7XCI+XG4gICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxOFwiIGhlaWdodD1cIjE4XCIgdmlld0JveD1cIjAgMCAxOCAxOFwiIGZpbGw9XCJub25lXCI+XG4gICAgICAgICAgICA8cGF0aCBkPVwiTTIuMzIwMzEgNy4wNTI4NUgxNS42ODgzXCIgc3Ryb2tlPVwiIzI5MkQzMlwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTIuMzMyMiA5Ljk4MjU0SDEyLjMzOTJcIiBzdHJva2U9XCIjMjkyRDMyXCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICAgICAgPHBhdGggZD1cIk05LjAwNDA4IDkuOTgyNTRIOS4wMTEwM1wiIHN0cm9rZT1cIiMyOTJEMzJcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICAgICAgICA8cGF0aCBkPVwiTTUuNjY4MTUgOS45ODI1NEg1LjY3NTA5XCIgc3Ryb2tlPVwiIzI5MkQzMlwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTIuMzMyMiAxMi44OTc2SDEyLjMzOTJcIiBzdHJva2U9XCIjMjkyRDMyXCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICAgICAgPHBhdGggZD1cIk05LjAwNDA4IDEyLjg5NzZIOS4wMTEwM1wiIHN0cm9rZT1cIiMyOTJEMzJcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICAgICAgICA8cGF0aCBkPVwiTTUuNjY4MTUgMTIuODk3Nkg1LjY3NTA5XCIgc3Ryb2tlPVwiIzI5MkQzMlwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTIuMDMyOSAxLjVWMy45NjgwOVwiIHN0cm9rZT1cIiMyOTJEMzJcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICAgICAgICA8cGF0aCBkPVwiTTUuOTc0MzUgMS41VjMuOTY4MDlcIiBzdHJva2U9XCIjMjkyRDMyXCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICAgICAgPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEyLjE3ODcgMi42ODQ1N0g1LjgyODIyQzMuNjI1NyAyLjY4NDU3IDIuMjUgMy45MTE1MiAyLjI1IDYuMTY2ODRWMTIuOTU0MUMyLjI1IDE1LjI0NDkgMy42MjU3IDE2LjUwMDIgNS44MjgyMiAxNi41MDAySDEyLjE3MThDMTQuMzgxMiAxNi41MDAyIDE1Ljc1IDE1LjI2NjEgMTUuNzUgMTMuMDEwOFY2LjE2Njg0QzE1Ljc1NjkgMy45MTE1MiAxNC4zODgyIDIuNjg0NTcgMTIuMTc4NyAyLjY4NDU3WlwiIHN0cm9rZT1cIiMyOTJEMzJcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICAgICAgPC9zdmc+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwibW9kZSA9PT0gJ2VkaXQnICYmIHR5cGUgPT09ICdsaXN0J1wiPlxuICAgICAgICAgIDwhLS0gTWluaW1hbCBEb3R0ZWQgTG9hZGVyIC0tPlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJpc0xvYWRpbmdcIiBjbGFzcz1cImRvdHRlZC1sb2FkZXJcIiBhcmlhLWxhYmVsPVwiTG9hZGluZ1wiIHJvbGU9XCJzdGF0dXNcIj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0Zvcj1cImxldCBkb3Qgb2YgW10uY29uc3RydWN0b3IoNik7IGxldCBpID0gaW5kZXhcIiBjbGFzcz1cImRvdFwiIFtzdHlsZS4tLWldPVwiaVwiPjwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8c3ZnICpuZ0lmPVwiIWlzTG9hZGluZ1wiIChjbGljayk9XCJyZW1vdmVWYWx1ZSgpXCIgKGtleWRvd24uZW50ZXIpPVwicmVtb3ZlVmFsdWUoKVwiIHdpZHRoPVwiMThcIiBoZWlnaHQ9XCIxOFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBzdHlsZT1cImN1cnNvcjogcG9pbnRlcjtcIj5cbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNOS4xNjk5MiAxNC44Mjk5TDE0LjgyOTkgOS4xNjk5MlwiIHN0cm9rZT1cIiMyOTJEMzJcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICAgICAgICA8cGF0aCBkPVwiTTE0LjgyOTkgMTQuODI5OUw5LjE2OTkyIDkuMTY5OTJcIiBzdHJva2U9XCIjMjkyRDMyXCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICAgICAgPHBhdGggZD1cIk05IDIySDE1QzIwIDIyIDIyIDIwIDIyIDE1VjlDMjIgNCAyMCAyIDE1IDJIOUM0IDIgMiA0IDIgOVYxNUMyIDIwIDQgMjIgOSAyMlpcIiBzdHJva2U9XCIjMjkyRDMyXCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICAgIDwvc3ZnPiAgICAgICAgICAgIFxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiY2hlY2tib3hMYWJcIiAqbmdJZj1cImxhYmVsICYmIHR5cGUgPT09ICdjaGVja2JveCcgJiYgc2hvd0xhYmVsXCIgW3N0eWxlLmZvbnQtd2VpZ2h0XT1cImxhYmVsV2VpZ2h0XCJcbiAgICAgICAgICBbc3R5bGUuZm9udC1zaXplXT1cImxhYmVsU2l6ZVwiIFtzdHlsZS5jb2xvcl09XCJsYWJlbENvbG9yIHx8ICcjOWE5YTlhJ1wiXG4gICAgICAgICAgc3R5bGU9XCJtYXJnaW4tYm90dG9tOiAwOyBwYWRkaW5nLWxlZnQ6IDEwcHg7IHBhZGRpbmctcmlnaHQ6IDEwcHg7IHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XCI+IHt7IGxhYmVsIH19XG4gICAgICAgICAgPGRpdiAqbmdJZj1cImxhYmVsICYmIHR5cGUgPT09ICdjaGVja2JveCcgJiYgcmVxdWlyZWQgJiYgc2hvd0xhYmVsXCIgc3R5bGU9XCJjb2xvcjogcmVkO1wiPio8L2Rpdj5cbiAgICAgICAgPC9sYWJlbD4gICAgIFxuICAgICAgICA8IS0tIEFsd2F5cyBTaG93IERyb3Bkb3duIEljb24gLS0+XG4gICAgICAgIDxzdmcgKm5nSWY9XCJtb2RlID09PSAnZWRpdCcgJiYgdHlwZSA9PT0gJ2Ryb3Bkb3duJ1wiIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiA1cHg7XCIgIChtb3VzZWRvd24pPVwidG9nZ2xlKCRldmVudCk7ICRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCJcbiAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCI+XG4gICAgICAgICAgPHBhdGggZD1cIk05IDIySDE1QzIwIDIyIDIyIDIwIDIyIDE1VjlDMjIgNCAyMCAyIDE1IDJIOUM0IDIgMiA0IDIgOVYxNUMyIDIwIDQgMjIgOSAyMlpcIiBzdHJva2U9XCIjMjkyRDMyXCJcbiAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XG4gICAgICAgICAgPHBhdGggZD1cIk04LjQ2OTk3IDEwLjY0TDEyIDE0LjE2TDE1LjUzIDEwLjY0XCIgc3Ryb2tlPVwiIzI5MkQzMlwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxuICAgICAgICA8L3N2Zz5cblxuICAgICAgICA8aW1nICpuZ0lmPVwibW9kZSA9PT0gJ2VkaXQnICYmIGlucHV0SWNvblJpZ2h0U3JjXCIgW3NyY109XCJpbnB1dEljb25SaWdodFNyY1wiIGNsYXNzPVwiaWNvbiByaWdodC1pY29uXCJcbiAgICAgICAgICBbc3R5bGUuaGVpZ2h0XT1cInN2Z0hlaWdodFwiIFtzdHlsZS53aWR0aF09XCJzdmdXaWR0aFwiPlxuICAgICAgICA8aW1nICpuZ0lmPVwibW9kZSA9PT0gJ2VkaXQnICYmIHR5cGUgPT09ICdwYXNzd29yZCdcIiBjbGFzcz1cInRvZ2dsZS1pY29uXCIgKGNsaWNrKT1cInRvZ2dsZVBhc3N3b3JkVmlzaWJpbGl0eSgpXCJcbiAgICAgICAgICBbc3JjXT1cIiFpc1Bhc3N3b3JkVmlzaWJsZSA/ICcvYXNzZXRzL2ltYWdlcy9pY29ucy9nZW5lcmFsL0hpZGUtUGFzc3dvcmQuc3ZnJyA6ICcvYXNzZXRzL2ltYWdlcy9pY29ucy9nZW5lcmFsL1Nob3ctUGFzc3dvcmQuc3ZnJ1wiIC8+XG4gICAgICAgIDxzdmcgKm5nSWY9XCJtb2RlICE9PSAnZWRpdCcgJiYgIXF1ZXN0aW9uLmlzUmVhZE9ubHkgJiYgZnJvbSAhPT0gJ254dFRhYmxlJyBcIiBjbGFzcz1cImVkaXQtaWNvblwiIFxuICAgICAgICAgIChjbGljayk9XCJ2aWV3RWRpdENsaWNrKHF1ZXN0aW9uKVwiIHdpZHRoPVwiMTNcIiBoZWlnaHQ9XCIxNFwiIHZpZXdCb3g9XCIwIDAgMTMgMTRcIiBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICAgIGQ9XCJNMS45OTk4NyA5LjAwMTdMNC4zOTYwMiAxMS4zOTc5QzQuNTAzNzEgMTEuNTA1NSA0LjY2NTI1IDExLjUwNTUgNC43NzI5NCAxMS4zOTc5TDEwLjc0OTkgNS4zOTQwMUMxMC44NTc2IDUuMjg2MzEgMTAuODU3NiA1LjEyNDc3IDEwLjc0OTkgNS4wMTcwOEw4LjM4MDY0IDIuNjQ3ODVDOC4yNzI5NCAyLjU0MDE2IDguMTExNDEgMi41NDAxNiA4LjAwMzcxIDIuNjQ3ODVMMS45OTk4NyA4LjY1MTdDMS44OTIxNyA4Ljc1OTM5IDEuODkyMTcgOC45MjA5MyAxLjk5OTg3IDkuMDAxN1pNOS4xNjE0IDEuNTQ0MDFDOS4wNTM3MSAxLjY1MTcgOS4wNTM3MSAxLjgxMzI0IDkuMTYxNCAxLjkyMDkzTDExLjUzMDYgNC4yOTAxNkMxMS42MzgzIDQuMzk3ODUgMTEuNzk5OSA0LjM5Nzg1IDExLjkwNzYgNC4yOTAxNkwxMi41ODA2IDMuNjE3MDhDMTMuMDExNCAzLjIxMzI0IDEzLjAxMTQgMi41NjcwOCAxMi41ODA2IDIuMTM2MzFMMTEuMzE1MyAwLjg3MDkyOEMxMC44ODQ1IDAuNDQwMTU5IDEwLjIxMTQgMC40NDAxNTkgOS43ODA2MyAwLjg3MDkyOEw5LjE2MTQgMS41NDQwMVpNMC4wMDc1NTg2MiAxMi45ODYzQy0wLjA0NjI4NzUgMTMuMjU1NSAwLjE5NjAyIDEzLjQ5NzkgMC40NjUyNTEgMTMuNDQ0TDMuMzk5ODcgMTIuNzQ0QzMuNTA3NTYgMTIuNzE3MSAzLjU4ODMzIDEyLjY2MzIgMy42NDIxNyAxMi42MDk0TDMuNjk2MDIgMTIuNTU1NUMzLjc0OTg3IDEyLjUwMTcgMy43NzY3OSAxMi4zMTMyIDMuNjY5MSAxMi4yMDU1TDEuMjQ2MDIgOS43ODI0N0MxLjEzODMzIDkuNjc0NzggMC45NDk4NjYgOS43MDE3IDAuODk2MDIgOS43NTU1NEwwLjg0MjE3NCA5LjgwOTM5QzAuNzYxNDA1IDkuODkwMTYgMC43MzQ0ODIgOS45NzA5MyAwLjcwNzU1OSAxMC4wNTE3TDAuMDA3NTU4NjIgMTIuOTg2M1pcIlxuICAgICAgICAgICAgZmlsbD1cIiNCMEFEQUJcIiAvPlxuICAgICAgICA8L3N2Zz5cbiAgICAgICAgPCEtLSBTS1MxNEpVTjI1IFNob3cgc2F2ZSBhbmQgY2FuY2VsIGljb25zIG9ubHkgd2hlbiB0aGUgaW5wdXQgdmFsdWUgaXMgZWRpdGVkIC0tPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwidmlld0VkaXQgJiYgb3JpZ2luYWxWYWx1ZSAhPT0gdmFsdWVcIiAobW91c2VlbnRlcik9XCJpc1NhdmVIb3ZlcmVkID0gdHJ1ZVwiIChtb3VzZWxlYXZlKT1cImlzU2F2ZUhvdmVyZWQgPSBmYWxzZVwiXG4gICAgICAgICAgc3R5bGU9XCJwYWRkaW5nLXJpZ2h0OiA1cHg7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7XCI+XG4gICAgICAgICAgPHN2ZyAqbmdJZj1cIiFpc1NhdmVIb3ZlcmVkXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgIGQ9XCJNNS45NTAyIDAuNUM4Ljk2MDA2IDAuNTAwMTA2IDExLjQwMDQgMi45NDAzMSAxMS40MDA0IDUuOTUwMkMxMS40MDAzIDguOTU5OTkgOC45NTk5OSAxMS40MDAzIDUuOTUwMiAxMS40MDA0QzIuOTQwMzEgMTEuNDAwNCAwLjUwMDEwNiA4Ljk2MDA2IDAuNSA1Ljk1MDJDMC41IDIuOTQwMjQgMi45NDAyNCAwLjUgNS45NTAyIDAuNVpcIlxuICAgICAgICAgICAgICBzdHJva2U9XCIjODM3RjhFXCIgLz5cbiAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgIGQ9XCJNOC44ODExMSAzLjg0NTgzQzguODMyNjkgMy43OTcyIDguNzc1MTMgMy43NTg2IDguNzExNzYgMy43MzIyN0M4LjY0ODM4IDMuNzA1OTQgOC41ODA0MyAzLjY5MjM4IDguNTExOCAzLjY5MjM4QzguNDQzMTcgMy42OTIzOCA4LjM3NTIxIDMuNzA1OTQgOC4zMTE4NCAzLjczMjI3QzguMjQ4NDYgMy43NTg2IDguMTkwOTEgMy43OTcyIDguMTQyNDkgMy44NDU4M0w0LjgyNjkgNy4xNjM0N0wzLjM1MjUzIDUuNjg5MUMzLjMwNDAzIDUuNjQwNiAzLjI0NjQ2IDUuNjAyMTMgMy4xODMwOSA1LjU3NTg4QzMuMTE5NzIgNS41NDk2NCAzLjA1MTgxIDUuNTM2MTMgMi45ODMyMiA1LjUzNjEzQzIuOTE0NjMgNS41MzYxMyAyLjg0NjcyIDUuNTQ5NjQgMi43ODMzNSA1LjU3NTg4QzIuNzE5OTkgNS42MDIxMyAyLjY2MjQxIDUuNjQwNiAyLjYxMzkxIDUuNjg5MUMyLjU2NTQxIDUuNzM3NiAyLjUyNjk0IDUuNzk1MTggMi41MDA2OSA1Ljg1ODU0QzIuNDc0NDUgNS45MjE5MSAyLjQ2MDk0IDUuOTg5ODIgMi40NjA5NCA2LjA1ODQxQzIuNDYwOTQgNi4xMjcgMi40NzQ0NSA2LjE5NDkxIDIuNTAwNjkgNi4yNTgyOEMyLjUyNjk0IDYuMzIxNjUgMi41NjU0MSA2LjM3OTIyIDIuNjEzOTEgNi40Mjc3Mkw0LjQ1Njc3IDguMjcwNThDNC41MDUxOSA4LjMxOTIyIDQuNTYyNzQgOC4zNTc4MSA0LjYyNjEyIDguMzg0MTRDNC42ODk1IDguNDEwNDcgNC43NTc0NSA4LjQyNDAzIDQuODI2MDggOC40MjQwM0M0Ljg5NDcxIDguNDI0MDMgNC45NjI2NiA4LjQxMDQ3IDUuMDI2MDQgOC4zODQxNEM1LjA4OTQyIDguMzU3ODEgNS4xNDY5NyA4LjMxOTIyIDUuMTk1MzkgOC4yNzA1OEw4Ljg4MTExIDQuNTg0NDVDOC45Mjk3NCA0LjUzNjAzIDguOTY4MzQgNC40Nzg0OCA4Ljk5NDY3IDQuNDE1MUM5LjAyMSA0LjM1MTczIDkuMDM0NTYgNC4yODM3NyA5LjAzNDU2IDQuMjE1MTRDOS4wMzQ1NiA0LjE0NjUxIDkuMDIxIDQuMDc4NTYgOC45OTQ2NyA0LjAxNTE4QzguOTY4MzQgMy45NTE4IDguOTI5NzQgMy44OTQyNSA4Ljg4MTExIDMuODQ1ODNaXCJcbiAgICAgICAgICAgICAgZmlsbD1cIiM4MzdGOEVcIiAvPlxuICAgICAgICAgIDwvc3ZnPlxuXG4gICAgICAgICAgPHN2ZyAqbmdJZj1cImlzU2F2ZUhvdmVyZWRcIiAoY2xpY2spPVwic2F2ZUNoYW5nZXMoKVwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTIgMTNcIiBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICBkPVwiTTUuOTUgMTIuODAwNEM5LjIzNjA5IDEyLjgwMDQgMTEuOSAxMC4xMzY1IDExLjkgNi44NTAzOUMxMS45IDMuNTY0MyA5LjIzNjA5IDAuOTAwMzkxIDUuOTUgMC45MDAzOTFDMi42NjM5MSAwLjkwMDM5MSAwIDMuNTY0MyAwIDYuODUwMzlDMCAxMC4xMzY1IDIuNjYzOTEgMTIuODAwNCA1Ljk1IDEyLjgwMDRaXCJcbiAgICAgICAgICAgICAgZmlsbD1cIiMyNTk1NjZcIiAvPlxuICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgZD1cIk04Ljg4MTExIDQuNzQ2MjJDOC44MzI2OSA0LjY5NzU5IDguNzc1MTMgNC42NTg5OSA4LjcxMTc2IDQuNjMyNjZDOC42NDgzOCA0LjYwNjMzIDguNTgwNDMgNC41OTI3NyA4LjUxMTggNC41OTI3N0M4LjQ0MzE3IDQuNTkyNzcgOC4zNzUyMSA0LjYwNjMzIDguMzExODQgNC42MzI2NkM4LjI0ODQ2IDQuNjU4OTkgOC4xOTA5MSA0LjY5NzU5IDguMTQyNDkgNC43NDYyMkw0LjgyNjkgOC4wNjM4NkwzLjM1MjUzIDYuNTg5NDlDMy4zMDQwMyA2LjU0MDk5IDMuMjQ2NDYgNi41MDI1MiAzLjE4MzA5IDYuNDc2MjdDMy4xMTk3MiA2LjQ1MDAzIDMuMDUxODEgNi40MzY1MiAyLjk4MzIyIDYuNDM2NTJDMi45MTQ2MyA2LjQzNjUyIDIuODQ2NzIgNi40NTAwMyAyLjc4MzM1IDYuNDc2MjdDMi43MTk5OSA2LjUwMjUyIDIuNjYyNDEgNi41NDA5OSAyLjYxMzkxIDYuNTg5NDlDMi41NjU0MSA2LjYzNzk5IDIuNTI2OTQgNi42OTU1NyAyLjUwMDY5IDYuNzU4OTNDMi40NzQ0NSA2LjgyMjMgMi40NjA5NCA2Ljg5MDIyIDIuNDYwOTQgNi45NTg4QzIuNDYwOTQgNy4wMjczOSAyLjQ3NDQ1IDcuMDk1MzEgMi41MDA2OSA3LjE1ODY3QzIuNTI2OTQgNy4yMjIwNCAyLjU2NTQxIDcuMjc5NjEgMi42MTM5MSA3LjMyODExTDQuNDU2NzcgOS4xNzA5N0M0LjUwNTE5IDkuMjE5NjEgNC41NjI3NCA5LjI1ODIgNC42MjYxMiA5LjI4NDUzQzQuNjg5NSA5LjMxMDg2IDQuNzU3NDUgOS4zMjQ0MiA0LjgyNjA4IDkuMzI0NDJDNC44OTQ3MSA5LjMyNDQyIDQuOTYyNjYgOS4zMTA4NiA1LjAyNjA0IDkuMjg0NTNDNS4wODk0MiA5LjI1ODIgNS4xNDY5NyA5LjIxOTYxIDUuMTk1MzkgOS4xNzA5N0w4Ljg4MTExIDUuNDg0ODRDOC45Mjk3NCA1LjQzNjQyIDguOTY4MzQgNS4zNzg4NyA4Ljk5NDY3IDUuMzE1NDlDOS4wMjEgNS4yNTIxMiA5LjAzNDU2IDUuMTg0MTYgOS4wMzQ1NiA1LjExNTUzQzkuMDM0NTYgNS4wNDY5IDkuMDIxIDQuOTc4OTUgOC45OTQ2NyA0LjkxNTU3QzguOTY4MzQgNC44NTIyIDguOTI5NzQgNC43OTQ2NSA4Ljg4MTExIDQuNzQ2MjJaXCJcbiAgICAgICAgICAgICAgZmlsbD1cIndoaXRlXCIgLz5cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJ2aWV3RWRpdCAmJiBvcmlnaW5hbFZhbHVlICE9PSB2YWx1ZVwiIChtb3VzZWVudGVyKT1cImlzRGlzY2FyZEhvdmVyZWQgPSB0cnVlXCIgKG1vdXNlbGVhdmUpPVwiaXNEaXNjYXJkSG92ZXJlZCA9IGZhbHNlXCJcbiAgICAgICAgICBzdHlsZT1cIiBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyO1wiPlxuICAgICAgICAgIDxzdmcgKm5nSWY9XCIhaXNEaXNjYXJkSG92ZXJlZFwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICBkPVwiTTcuMDU1NTUgNC4wMDg4M0w1Ljk0IDUuMTI0MzhMNC44MjQ0NSA0LjAwODgzQzQuNTc4NjEgMy43NjI5OSA0LjE4MTkxIDMuNzYyOTkgMy45MzYwNyA0LjAwODgzQzMuNjkwMjMgNC4yNTQ2NyAzLjY5MDIzIDQuNjUxMzcgMy45MzYwNyA0Ljg5NzIxTDUuMDUxNjIgNi4wMTI3NkwzLjkzNjA3IDcuMTI4MzFDMy42OTAyMyA3LjM3NDE1IDMuNjkwMjMgNy43NzA4NSAzLjkzNjA3IDguMDE2NjlDNC4xODE5MSA4LjI2MjUzIDQuNTc4NjEgOC4yNjI1MyA0LjgyNDQ1IDguMDE2NjlMNS45NCA2LjkwMTE0TDcuMDU1NTUgOC4wMTY2OUM3LjMwMTM5IDguMjYyNTMgNy42OTgwOSA4LjI2MjUzIDcuOTQzOTMgOC4wMTY2OUM4LjE4OTc3IDcuNzcwODUgOC4xODk3NyA3LjM3NDE1IDcuOTQzOTMgNy4xMjgzMUw2LjgyODM4IDYuMDEyNzZMNy45NDM5MyA0Ljg5NzIxQzguMTg5NzcgNC42NTEzNyA4LjE4OTc3IDQuMjU0NjcgNy45NDM5MyA0LjAwODgzQzcuNjk4MDkgMy43NzI4NSA3LjMwMDIxIDMuNzcyODUgNy4wNTU1NSA0LjAwODgzWk01Ljk0IDAuMDgyMDMxMkMyLjcwMDE3IDAuMDgyMDMxMiAwLjA4MDg1OTQgMi43MDEzNCAwLjA4MDg1OTQgNS45NDExOEMwLjA4MDg1OTQgOS4xODEwMSAyLjcwMDE3IDExLjgwMDMgNS45NCAxMS44MDAzQzkuMTc5ODMgMTEuODAwMyAxMS43OTkxIDkuMTgxMDEgMTEuNzk5MSA1Ljk0MTE4QzExLjc5OTEgMi43MDEzNCA5LjE3OTgzIDAuMDgyMDMxMiA1Ljk0IDAuMDgyMDMxMlpNNS45NCAxMC42MzY3QzMuMzU0MjYgMTAuNjM2NyAxLjI0NDIyIDguNTI2NjcgMS4yNDQyMiA1Ljk0MTE4QzEuMjQ0MjIgMy4zNTU1MyAzLjM1NDI2IDEuMjQ1NDkgNS45NCAxLjI0NTQ5QzguNTI1NTggMS4yNDU0OSAxMC42MzU2IDMuMzU1NTMgMTAuNjM1NiA1Ljk0MTE4QzEwLjYzNTYgOC41MjY2NyA4LjUyNTU4IDEwLjYzNjcgNS45NCAxMC42MzY3WlwiXG4gICAgICAgICAgICAgIGZpbGw9XCIjQjBBREFCXCIgLz5cbiAgICAgICAgICA8L3N2Zz5cblxuICAgICAgICAgIDxzdmcgKm5nSWY9XCJpc0Rpc2NhcmRIb3ZlcmVkXCIgKGNsaWNrKT1cImRpc2NhcmRDaGFuZ2VzKClcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDEyIDEzXCJcbiAgICAgICAgICAgIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgZD1cIk03LjA1NTU1IDQuOTc0NzFMNS45NCA2LjA5MDI2TDQuODI0NDUgNC45NzQ3MUM0LjU3ODYxIDQuNzI4ODcgNC4xODE5MSA0LjcyODg3IDMuOTM2MDcgNC45NzQ3MUMzLjY5MDIzIDUuMjIwNTUgMy42OTAyMyA1LjYxNzI1IDMuOTM2MDcgNS44NjMwOUw1LjA1MTYyIDYuOTc4NjRMMy45MzYwNyA4LjA5NDE5QzMuNjkwMjMgOC4zNDAwMyAzLjY5MDIzIDguNzM2NzMgMy45MzYwNyA4Ljk4MjU3QzQuMTgxOTEgOS4yMjg0MSA0LjU3ODYxIDkuMjI4NDEgNC44MjQ0NSA4Ljk4MjU3TDUuOTQgNy44NjcwMkw3LjA1NTU1IDguOTgyNTdDNy4zMDEzOSA5LjIyODQxIDcuNjk4MDkgOS4yMjg0MSA3Ljk0MzkzIDguOTgyNTdDOC4xODk3NyA4LjczNjczIDguMTg5NzcgOC4zNDAwMyA3Ljk0MzkzIDguMDk0MTlMNi44MjgzOCA2Ljk3ODY0TDcuOTQzOTMgNS44NjMwOUM4LjE4OTc3IDUuNjE3MjUgOC4xODk3NyA1LjIyMDU1IDcuOTQzOTMgNC45NzQ3MUM3LjY5ODA5IDQuNzM4NzMgNy4zMDAyMSA0LjczODczIDcuMDU1NTUgNC45NzQ3MVpNNS45NCAxLjA2MDYyQzIuNzAwMTcgMS4wNjA2MiAwLjA4MDg1OTQgMy42Nzk5MyAwLjA4MDg1OTQgNi45MTk3N0MwLjA4MDg1OTQgMTAuMTU5NiAyLjcwMDE3IDEyLjc3ODkgNS45NCAxMi43Nzg5QzkuMTc5ODMgMTIuNzc4OSAxMS43OTkxIDEwLjE1OTYgMTEuNzk5MSA2LjkxOTc3QzExLjc5OTEgMy42Nzk5MyA5LjE3OTgzIDEuMDYwNjIgNS45NCAxLjA2MDYyWk01Ljk0IDExLjYxNTNDMy4zNTQyNiAxMS42MTUzIDEuMjQ0MjIgOS41MDUyNSAxLjI0NDIyIDYuOTE5NzdDMS4yNDQyMiA0LjMzNDEyIDMuMzU0MjYgMi4yMjQwOCA1Ljk0IDIuMjI0MDhDOC41MjU1OCAyLjIyNDA4IDEwLjYzNTYgNC4zMzQxMiAxMC42MzU2IDYuOTE5NzdDMTAuNjM1NiA5LjUwNTI1IDguNTI1NTggMTEuNjE1MyA1Ljk0IDExLjYxNTNaXCJcbiAgICAgICAgICAgICAgZmlsbD1cIiNGRjM2MzZcIiAvPlxuICAgICAgICAgIDwvc3ZnPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJ0eXBlICE9PSAnbGFiZWwnICYmIHR5cGUgIT09ICdjaGVja2JveCcgJiYgKHR5cGUgPT09ICdyaWNodGV4dCcgfHwgdHlwZSA9PT0gJ3RleHRhcmVhJylcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtY29udGFpbmVyXCJcbiAgICAgICAgW3N0eWxlLm1hcmdpbi10b3BdPVwic2hvd0xhYmVsICYmIGxhYmVsID8gJycgOiBmcm9tID09PSAnbnh0VGFibGUnIHx8IGZyb20gPT09ICdub3JtYWxEcm9wRG93bicgPyAnJyA6ICcyMXB4ICFpbXBvcnRhbnQnXCJcbiAgICAgICAgW3N0eWxlLmJvcmRlci1yYWRpdXNdPVwibW9kZSAhPT0gJ2VkaXQnICYmIGZyb20gPT09ICdueHRUYWJsZScgPyAnbm9uZSc6ICcnXCJcbiAgICAgICAgW3N0eWxlLnBhZGRpbmctbGVmdF09XCJtb2RlICE9PSAnZWRpdCcgJiYgZnJvbSA9PT0gJ254dFRhYmxlJyA/ICcwcHgnIDogJydcIlxuICAgICAgICBbc3R5bGUucGFkZGluZy1yaWdodF09XCJtb2RlICE9PSAnZWRpdCcgJiYgZnJvbSA9PT0gJ254dFRhYmxlJyA/ICcwcHgnIDogJydcIlxuICAgICAgICBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cIm1vZGUgPT09ICdlZGl0JyA/IGZyb20gPT09ICdueHRUYWJsZScgPyAnJyA6IGlucHV0QmdDb2xvciA6ICcnXCJcbiAgICAgICAgW2NsYXNzLmludmFsaWRdPVwiY29udHJvbC5pbnZhbGlkICYmIGNvbnRyb2wudG91Y2hlZFwiXG4gICAgICAgIFtzdHlsZS5ib3JkZXJdPVwibW9kZSA9PT0gJ2VkaXQnID8gZnJvbSA9PT0gJ254dFRhYmxlJyA/ICcxcHggc29saWQgI2QyZDJkMicgOiBpbnB1dEJvcmRlciA9PT0gJ25vbmUnID8gKCcxcHggc29saWQgJyArIGlucHV0QmdDb2xvcikgOiBpbnB1dEJvcmRlciA6ICdub25lJ1wiPlxuICAgICAgICA8IS0tIFNLUzE0SlVOMjUgIER5bmFtaWNhbGx5IGxvYWQgUXVpbGwgZWRpdG9yIHRvb2xiYXIgLS0+XG4gICAgICAgIDxxdWlsbC1lZGl0b3IgKm5nSWY9XCJtb2RlID09PSAnZWRpdCcgJiYgdHlwZSA9PT0gJ3JpY2h0ZXh0J1wiIFsobmdNb2RlbCldPVwidmFsdWVcIiAobmdNb2RlbENoYW5nZSk9XCJvbklucHV0Q2hhbmdlKCRldmVudClcIiBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICAgIFtyZWFkT25seV09XCJtb2RlICE9PSAnZWRpdCcgfHwgcXVlc3Rpb24uaXNSZWFkT25seVwiXG4gICAgICAgICAgKGZvY3Vzb3V0KT1cIm9uRWRpdG9yRm9jdXNPdXQoKVwiIFtjbGFzcy5lcnJvcl09XCJjb250cm9sLmludmFsaWQgJiYgKGNvbnRyb2wudG91Y2hlZCB8fCBjb250cm9sLmRpcnR5KVwiXG4gICAgICAgICAgW21vZHVsZXNdPVwiZ2V0UXVpbGxNb2R1bGVzKHF1ZXN0aW9uLmlkKVwiXG4gICAgICAgICAgW3N0eWxlLnBhZGRpbmddPVwiZnJvbSA9PT0gJ254dFRhYmxlJyA/ICcwcHgnIDogJzEwcHggMTBweCAxMHB4IDVweCdcIlxuICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDEwMCU7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICBmb250LXNpemU6IDE0cHg7XCI+XG4gICAgICAgIDwvcXVpbGwtZWRpdG9yPlxuICAgICAgICA8IS0tIFZpZXcgbW9kZSAtLT5cbiAgICAgICAgPGRpdiAqbmdJZj1cIm1vZGUgIT09ICdlZGl0JyAmJiB0eXBlID09PSAncmljaHRleHQnXCIgY2xhc3M9XCJxdWlsbC12aWV3LWNvbnRlbnRcIiBbaW5uZXJIVE1MXT1cInZhbHVlXCJcbiAgICAgICAgW3N0eWxlLnBhZGRpbmddPVwiZnJvbSA9PT0gJ254dFRhYmxlJyA/ICcwcHgnIDogJzEwcHggMTBweCAxMHB4IDVweCdcIlxuICAgICAgICBzdHlsZT1cIndpZHRoOiAxMDAlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1wiPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHRleHRhcmVhICpuZ0lmPVwidHlwZSA9PT0gJ3RleHRhcmVhJ1wiIFtpZF09XCJpbnB1dElkXCIgW3Jvd3NdPVwiZnJvbSA9PT0gJ254dFRhYmxlJyA/IDEgOiByb3dzXCJcbiAgICAgICAgICBbYXR0ci5wbGFjZWhvbGRlcl09XCJtb2RlICE9PSAnZWRpdCcgPyAnJyA6IHBsYWNlaG9sZGVyXCIgW25nQ2xhc3NdPVwiJ2N1c3RvbS1pbnB1dCdcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2h5cGVybGluay1pbnB1dCc6IGh5cGVyTGluaywnZnJvbS1ueHQtdGFibGUnOiBmcm9tID09PSAnbnh0VGFibGUnfVwiIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcbiAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cIm1vZGUgIT09ICdlZGl0JyA/ICcnIDogZnJvbSA9PT0gJ254dFRhYmxlJyA/ICcnIDogaW5wdXRCZ0NvbG9yXCJcbiAgICAgICAgICBbc3R5bGUuY29sb3JdPVwibW9kZSAhPT0gJ2VkaXQnID8gJycgOiBpbnB1dFRleHRDb2xvclwiIFtzdHlsZS5ib3JkZXJdPVwibW9kZSAhPT0gJ2VkaXQnID8gJ25vbmUnIDogZnJvbSA9PT0gJ254dFRhYmxlJyA/ICcxcHggc29saWQgI2QyZDJkMicgOiBpbnB1dEJvcmRlclwiXG4gICAgICAgICAgW3N0eWxlLmhlaWdodF09XCJpbnB1dEhlaWdodFwiIFt2YWx1ZV09XCJ2YWx1ZVwiIChpbnB1dCk9XCIgb25JbnB1dENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICBbc3R5bGUuZm9udC1zaXplXT1cImlucHV0VmFsdWVTaXplXCIgKGJsdXIpPVwiIGJsdXJFbWl0KClcIiAoZm9jdXNpbik9XCJmb2N1c2luRW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICBbcmVhZE9ubHldPVwibW9kZSAhPT0gJ2VkaXQnIHx8IHF1ZXN0aW9uLmlzUmVhZE9ubHlcIiBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgICAnLS1wbGFjZWhvbGRlci1mb250JzogbW9kZSA9PT0gJ2VkaXQnID8gcGxhY2Vob2xkZXJGb250IHx8IGxhYmVsRm9udCA6ICcnLFxuICAgICAgICAgICAgJy0tcGxhY2Vob2xkZXItY29sb3InOiBtb2RlID09PSAnZWRpdCcgPyBwbGFjZWhvbGRlckNvbG9yIHx8ICcjOWE5YTlhJyA6ICcnLFxuICAgICAgICAgICAgJy0tcGxhY2Vob2xkZXItc2l6ZSc6IG1vZGUgPT09ICdlZGl0JyA/IHBsYWNlaG9sZGVyU2l6ZSB8fCBpbnB1dFZhbHVlU2l6ZSA6ICcnLFxuICAgICAgICAgICAgJy0tcGxhY2Vob2xkZXItd2VpZ2h0JzogbW9kZSA9PT0gJ2VkaXQnID8gcGxhY2Vob2xkZXJXZWlnaHQgfHwgbGFiZWxXZWlnaHQgOiAnJ1xuICAgICAgICAgIH1cIiBcbiAgICAgICAgICBbc3R5bGUucGFkZGluZ109XCJmcm9tID09PSAnbnh0VGFibGUnID8gJzBweCcgOiAnMTBweCAxMHB4IDEwcHggNXB4J1wiXG4gICAgICAgICAgc3R5bGU9XCJcbiAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgICAgICAgICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L3RleHRhcmVhPlxuICAgICAgICA8c3ZnICpuZ0lmPVwibW9kZSAhPT0gJ2VkaXQnICYmICF2aWV3RWRpdCAmJiBmcm9tICE9PSAnbnh0VGFibGUnICYmICh0eXBlID09PSAncmljaHRleHQnIHx8IHR5cGUgPT09ICd0ZXh0YXJlYScpICYmICFxdWVzdGlvbi5pc1JlYWRPbmx5XCJcbiAgICAgICAgICBjbGFzcz1cImVkaXQtaWNvblwiIChjbGljayk9XCJ2aWV3RWRpdENsaWNrKHF1ZXN0aW9uKVwiIHdpZHRoPVwiMTNcIiBoZWlnaHQ9XCIxNFwiIHZpZXdCb3g9XCIwIDAgMTMgMTRcIiBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICAgIGQ9XCJNMS45OTk4NyA5LjAwMTdMNC4zOTYwMiAxMS4zOTc5QzQuNTAzNzEgMTEuNTA1NSA0LjY2NTI1IDExLjUwNTUgNC43NzI5NCAxMS4zOTc5TDEwLjc0OTkgNS4zOTQwMUMxMC44NTc2IDUuMjg2MzEgMTAuODU3NiA1LjEyNDc3IDEwLjc0OTkgNS4wMTcwOEw4LjM4MDY0IDIuNjQ3ODVDOC4yNzI5NCAyLjU0MDE2IDguMTExNDEgMi41NDAxNiA4LjAwMzcxIDIuNjQ3ODVMMS45OTk4NyA4LjY1MTdDMS44OTIxNyA4Ljc1OTM5IDEuODkyMTcgOC45MjA5MyAxLjk5OTg3IDkuMDAxN1pNOS4xNjE0IDEuNTQ0MDFDOS4wNTM3MSAxLjY1MTcgOS4wNTM3MSAxLjgxMzI0IDkuMTYxNCAxLjkyMDkzTDExLjUzMDYgNC4yOTAxNkMxMS42MzgzIDQuMzk3ODUgMTEuNzk5OSA0LjM5Nzg1IDExLjkwNzYgNC4yOTAxNkwxMi41ODA2IDMuNjE3MDhDMTMuMDExNCAzLjIxMzI0IDEzLjAxMTQgMi41NjcwOCAxMi41ODA2IDIuMTM2MzFMMTEuMzE1MyAwLjg3MDkyOEMxMC44ODQ1IDAuNDQwMTU5IDEwLjIxMTQgMC40NDAxNTkgOS43ODA2MyAwLjg3MDkyOEw5LjE2MTQgMS41NDQwMVpNMC4wMDc1NTg2MiAxMi45ODYzQy0wLjA0NjI4NzUgMTMuMjU1NSAwLjE5NjAyIDEzLjQ5NzkgMC40NjUyNTEgMTMuNDQ0TDMuMzk5ODcgMTIuNzQ0QzMuNTA3NTYgMTIuNzE3MSAzLjU4ODMzIDEyLjY2MzIgMy42NDIxNyAxMi42MDk0TDMuNjk2MDIgMTIuNTU1NUMzLjc0OTg3IDEyLjUwMTcgMy43NzY3OSAxMi4zMTMyIDMuNjY5MSAxMi4yMDU1TDEuMjQ2MDIgOS43ODI0N0MxLjEzODMzIDkuNjc0NzggMC45NDk4NjYgOS43MDE3IDAuODk2MDIgOS43NTU1NEwwLjg0MjE3NCA5LjgwOTM5QzAuNzYxNDA1IDkuODkwMTYgMC43MzQ0ODIgOS45NzA5MyAwLjcwNzU1OSAxMC4wNTE3TDAuMDA3NTU4NjIgMTIuOTg2M1pcIlxuICAgICAgICAgICAgZmlsbD1cIiNCMEFEQUJcIiAvPlxuICAgICAgICA8L3N2Zz5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDwhLS0gU0tTMjNBUFIyNSBVc2UgY29udHJvbC5pbnZhbGlkIHRvIHNob3cgZXJyb3Igb24gc3VibWl0IGNsaWNrIC0tPlxuICAgIDxkaXYgKm5nSWY9XCJ0eXBlICE9ICdjaGVja2JveCcgJiYgdHlwZSAhPT0gJ2xhYmVsJyAmJiBjb250cm9sLmludmFsaWQgJiYgKGNvbnRyb2wudG91Y2hlZCB8fCBjb250cm9sLmRpcnR5KVwiIHN0eWxlPVwiaGVpZ2h0OiAyMHB4O1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIj5cbiAgICAgICAge3sgZ2V0RXJyb3JNZXNzYWdlKCkgfX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PiJdfQ==
|