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