@citolab/qti-components 6.9.1-beta.9 → 7.0.2

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.
@@ -1,1506 +0,0 @@
1
- import{d as i,e as n,f as s}from"../chunk-E7TLXHQH.js";var b=`@layer qti-base, qti-components, qti-utilities, qti-variants, qti-extended;
2
-
3
- :root,
4
- :host {
5
- --qti-primary-light: #ffbebe;
6
- --qti-primary: #f86d70;
7
- --qti-primary-dark: #a1616a;
8
-
9
- --qti-secondary-light: #bed4ff;
10
- --qti-secondary: #6daef8;
11
- --qti-secondary-dark: #3a449d;
12
-
13
- --qti-border-thickness: 1.5px;
14
- --qti-border-style: solid;
15
- --qti-border-color-gray: #c6cad0; /* Corresponding to border-gray-400 */
16
- --qti-border-radius-md: 0.375rem;
17
- --qti-border-radius-lg: 0.5rem;
18
- --qti-border-radius-full: 9999px;
19
-
20
- --qti-bg-gray-50: #f9fafb;
21
- --qti-bg-primary: var(--qti-primary);
22
- --qti-bg-gray-100: #f3f4f6;
23
-
24
- --qti-text-gray-500: #6b7280;
25
- --qti-text-white: white;
26
-
27
- --qti-padding-sm: 0.125rem; /* py-0.5 */
28
- --qti-padding-md: 0.5rem; /* py-2 */
29
- --qti-padding-lg: 0.75rem; /* p-3 */
30
- --qti-padding-xl: 1rem; /* pl-4 */
31
-
32
- --qti-font-weight-semibold: 600;
33
-
34
- --qti-active: blue;
35
- --qti-focus-color: #bddcff7e;
36
- --qti-focus-border-width: 5px;
37
-
38
- --qti-correct: rgb(74 222 128);
39
- --qti-correct-light: rgb(220 252 231);
40
- --qti-incorrect: rgb(248 113 113);
41
- --qti-incorrect-light: rgb(254 226 226);
42
-
43
- --qti-form-size: 1rem;
44
- --qti-gap-size: 0.5rem;
45
- }
46
-
47
- .chevron {
48
- background: url("data:image/svg+xml,%3Csvg fill='currentColor' width='22' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' aria-hidden='true'%3E%3Cpath clip-rule='evenodd' fill-rule='evenodd' d='M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z'%3E%3C/path%3E%3C/svg%3E")
49
- no-repeat center right 6px;
50
- }
51
-
52
- .handle {
53
- background-image: radial-gradient(
54
- circle at center,
55
- rgba(0, 0, 0, 0.1) 0,
56
- rgb(0, 0, 0, 0.1) 2px,
57
- white 2px,
58
- white 100%
59
- );
60
- background-repeat: repeat-y;
61
- background-position: left 2px;
62
- background-size: 14px 8px;
63
- }
64
-
65
- .check-mask {
66
- -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='currentColor' width='100%' height='100%' viewBox='0 0 24 24'%3E%3Cpath d='M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z'/%3E%3C/svg%3E");
67
- mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='currentColor' width='100%' height='100%' viewBox='0 0 24 24'%3E%3Cpath d='M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z'/%3E%3C/svg%3E");
68
- }
69
-
70
- .bordered {
71
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
72
- outline: none;
73
- }
74
-
75
- .borderinvisible {
76
- border-color: transparent;
77
- }
78
-
79
- .form {
80
- width: var(--qti-form-size);
81
- height: var(--qti-form-size);
82
- align-self: 1;
83
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
84
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
85
- outline: none;
86
- }
87
-
88
- .p-lg {
89
- padding: var(--qti-padding-md) var(--qti-padding-lg) var(--qti-padding-md) var(--qti-padding-xl); /* Padding shorthand */
90
- }
91
-
92
- .button {
93
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
94
- outline: none;
95
- border-radius: var(--qti-border-radius-md);
96
- padding: var(--qti-padding-sm) var(--qti-padding-md); /* Padding shorthand */
97
- font-weight: var(--qti-font-weight-semibold);
98
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
99
- outline: none;
100
- }
101
-
102
- .select {
103
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
104
- outline: none;
105
- border-radius: var(--qti-border-radius-md);
106
- position: relative;
107
- -webkit-appearance: none;
108
- -moz-appearance: none;
109
- appearance: none;
110
- padding: var(--qti-padding-md) 1.75rem var(--qti-padding-md) var(--qti-padding-lg); /* Padding shorthand */ border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray); outline: none; background: url("data:image/svg+xml,%3Csvg fill='currentColor' width='22' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' aria-hidden='true'%3E%3Cpath clip-rule='evenodd' fill-rule='evenodd' d='M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z'%3E%3C/path%3E%3C/svg%3E")
111
- no-repeat center right 6px;
112
- }
113
-
114
- .text {
115
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
116
- outline: none;
117
- border-radius: 0;
118
- cursor: text;
119
- padding: var(--qti-padding-lg); /* Equal padding on all sides */
120
- background: unset;
121
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
122
- outline: none;
123
- }
124
-
125
- .spot {
126
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
127
- outline: none;
128
- width: 100%;
129
- height: 100%;
130
- background-color: transparent;
131
- padding: 0;
132
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
133
- outline: none;
134
- }
135
-
136
- /* qti-select-point-interaction */
137
-
138
- .point {
139
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
140
- border-radius: var(--qti-border-radius-full);
141
- outline: none;
142
- width: 1.5rem; /* w-6 */
143
- height: 1.5rem;
144
- background-color: transparent;
145
- padding: 0;
146
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
147
- outline: none;
148
- }
149
-
150
- .drag {
151
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
152
- outline: none;
153
- padding: var(--qti-padding-md) var(--qti-padding-lg) var(--qti-padding-md) var(--qti-padding-xl); /* Padding shorthand */
154
- border-radius: var(--qti-border-radius-md);
155
-
156
- cursor: grab;
157
- background-color: white;
158
- font-weight: var(--qti-font-weight-semibold);
159
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
160
- outline: none;
161
- background-image: radial-gradient(
162
- circle at center,
163
- rgba(0, 0, 0, 0.1) 0,
164
- rgb(0, 0, 0, 0.1) 2px,
165
- white 2px,
166
- white 100%
167
- );
168
- background-repeat: repeat-y;
169
- background-position: left 2px;
170
- background-size: 14px 8px;
171
- }
172
-
173
- .drop {
174
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
175
- outline: none;
176
- border-radius: var(--qti-border-radius-lg);
177
- position: relative;
178
- background-color: var(--qti-bg-gray-50);
179
- margin: 1px; /* m-px */ border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray); outline: none;
180
- }
181
-
182
- .order {
183
- background-color: var(--qti-bg-primary);
184
- border-radius: var(--qti-border-radius-full);
185
- width: 1.5rem; /* w-6 */
186
- height: 1.5rem;
187
- color: var(--qti-text-white);
188
- }
189
-
190
- .check-size {
191
- width: calc(var(--qti-form-size) - 4px);
192
- height: calc(var(--qti-form-size) - 4px);
193
- }
194
-
195
- .check {
196
- /* display: flex; */
197
- /* align-items: center; */
198
- gap: 0.5rem;
199
- padding: var(--qti-padding-md) var(--qti-padding-md); /* Padding shorthand */
200
- outline: none;
201
- border-radius: var(--qti-border-radius-md);
202
- cursor: pointer;
203
- }
204
-
205
- .check-radio {
206
- border-radius: var(--qti-border-radius-full);
207
- width: var(--qti-form-size);
208
- height: var(--qti-form-size);
209
- align-self: 1;
210
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
211
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
212
- outline: none;
213
- }
214
-
215
- .check-radio-checked {
216
- background-color: var(--qti-bg-primary);
217
- border-radius: var(--qti-border-radius-full);
218
- }
219
-
220
- .check-checkbox {
221
- border-radius: var(--qti-border-radius-md);
222
- width: var(--qti-form-size);
223
- height: var(--qti-form-size);
224
- align-self: 1;
225
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
226
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
227
- outline: none;
228
- }
229
-
230
- .check-checkbox-checked {
231
- background-color: var(--qti-bg-primary);
232
- -webkit-mask-image: var(--check-mask);
233
- mask-image: var(--check-mask); /* check-mask */ -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='currentColor' width='100%' height='100%' viewBox='0 0 24 24'%3E%3Cpath d='M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z'/%3E%3C/svg%3E"); mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='currentColor' width='100%' height='100%' viewBox='0 0 24 24'%3E%3Cpath d='M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z'/%3E%3C/svg%3E");
234
- }
235
-
236
- .hov {
237
- background-color: var(--qti-bg-gray-50);
238
- }
239
-
240
- .foc {
241
- outline: var(--qti-focus-border-width) solid var(--qti-focus-color);
242
- }
243
-
244
- .act {
245
- border-color: var(--qti-bg-primary); /* border-primary */
246
- }
247
-
248
- .rdo {
249
- cursor: pointer;
250
- background-color: white;
251
- outline: 0;
252
- border: none;
253
- }
254
-
255
- .dis {
256
- cursor: not-allowed;
257
- background-color: var(--qti-bg-gray-100);
258
- color: var(--qti-text-gray-500);
259
- border-color: var(--qti-border-color-gray);
260
- }
261
-
262
- /* base */
263
-
264
- @layer qti-base {
265
- .qti-layout-row {
266
- display: flex;
267
- flex-wrap: wrap;
268
- width: 100%;
269
- gap: 2.1276595745%;
270
- }
271
-
272
- .qti-layout-row [class*='qti-layout-col'] {
273
- box-sizing: border-box;
274
- }
275
-
276
- .qti-layout-col1 {
277
- width: 6.3829787234%;
278
- }
279
- .qti-layout-col2 {
280
- width: 14.8936170213%;
281
- }
282
- .qti-layout-col3 {
283
- width: 23.4042553191%;
284
- }
285
- .qti-layout-col4 {
286
- width: 31.914893617%;
287
- }
288
- .qti-layout-col5 {
289
- width: 40.4255319149%;
290
- }
291
- .qti-layout-col6 {
292
- width: 48.9361702128%;
293
- }
294
- .qti-layout-col7 {
295
- width: 57.4468085106%;
296
- }
297
- .qti-layout-col8 {
298
- width: 65.9574468085%;
299
- }
300
- .qti-layout-col9 {
301
- width: 74.4680851064%;
302
- }
303
- .qti-layout-col10 {
304
- width: 82.9787234043%;
305
- }
306
- .qti-layout-col11 {
307
- width: 91.4893617021%;
308
- }
309
- .qti-layout-col12 {
310
- width: 100%;
311
- }
312
-
313
- .qti-layout-offset1 {
314
- margin-left: 8.5106382979%;
315
- }
316
- .qti-layout-offset2 {
317
- margin-left: 17.0212765957%;
318
- }
319
- .qti-layout-offset3 {
320
- margin-left: 25.5319148936%;
321
- }
322
- .qti-layout-offset4 {
323
- margin-left: 34.0425531915%;
324
- }
325
- .qti-layout-offset5 {
326
- margin-left: 42.5531914894%;
327
- }
328
- .qti-layout-offset6 {
329
- margin-left: 51.0638297872%;
330
- }
331
- .qti-layout-offset7 {
332
- margin-left: 59.5744680851%;
333
- }
334
- .qti-layout-offset8 {
335
- margin-left: 68.085106383%;
336
- }
337
- .qti-layout-offset9 {
338
- margin-left: 76.5957446809%;
339
- }
340
- .qti-layout-offset10 {
341
- margin-left: 85.1063829787%;
342
- }
343
- .qti-layout-offset11 {
344
- margin-left: 93.6170212766%;
345
- }
346
- .qti-layout-offset12 {
347
- margin-left: 102.1276595745%;
348
- }
349
-
350
- @media (max-width: 767px) {
351
- [class*='qti-layout-col'] {
352
- width: 100%;
353
- }
354
- }
355
- }
356
-
357
- [view],
358
- qti-outcome-declaration,
359
- qti-response-declaration {
360
- display: none;
361
- }
362
-
363
- [view].show {
364
- display: block;
365
- }
366
-
367
- :host {
368
- box-sizing: border-box;
369
- }
370
-
371
- *,
372
- *:before,
373
- *:after {
374
- box-sizing: inherit;
375
- }
376
-
377
- [popover] {
378
- position: fixed;
379
- inset: 0;
380
- margin: auto;
381
- border: solid;
382
- padding: 0.25em;
383
- overflow: auto;
384
- color: CanvasText;
385
- background-color: Canvas;
386
- }
387
-
388
- [popovertarget] {
389
- all: unset;
390
- cursor: pointer;
391
- }
392
-
393
- /* components */
394
-
395
- @layer qti-components {
396
- qti-choice-interaction {
397
- &.qti-input-control-hidden {
398
- & qti-simple-choice {
399
- &:hover {
400
- background-color: var(--qti-bg-gray-50);
401
- }
402
- &:focus {
403
- outline: var(--qti-focus-border-width) solid var(--qti-focus-color);
404
- }
405
- &::part(ch) {
406
- display: none;
407
- }
408
- &[aria-checked='true'] {
409
- border-color: var(--qti-bg-primary);
410
- }
411
- &[aria-readonly='true'] {
412
- cursor: pointer;
413
- background-color: white;
414
- outline: 0;
415
- border: none;
416
- }
417
- &[aria-disabled='true'] {
418
- cursor: not-allowed;
419
- background-color: var(--qti-bg-gray-100);
420
- color: var(--qti-text-gray-500);
421
- border-color: var(--qti-border-color-gray);
422
- }
423
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
424
- outline: none;
425
- border-radius: var(--qti-border-radius-md);
426
- padding: var(--qti-padding-sm) var(--qti-padding-md);
427
- font-weight: var(--qti-font-weight-semibold);
428
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
429
- outline: none
430
- }
431
- }
432
- &:not(.qti-input-control-hidden) {
433
- & qti-simple-choice {
434
- &:hover {
435
- background-color: var(--qti-bg-gray-50);
436
- }
437
- &:focus {
438
- outline: var(--qti-focus-border-width) solid var(--qti-focus-color);
439
- }
440
- &[aria-checked='true'] {
441
- border-color: var(--qti-bg-primary);
442
- }
443
- &[aria-readonly='true'] {
444
- cursor: pointer;
445
- background-color: white;
446
- outline: 0;
447
- border: none;
448
- }
449
- &[aria-disabled='true'] {
450
- cursor: not-allowed;
451
- background-color: var(--qti-bg-gray-100);
452
- color: var(--qti-text-gray-500);
453
- border-color: var(--qti-border-color-gray);
454
- }
455
-
456
- &::part(cha) {
457
- width: calc(var(--qti-form-size) - 4px);
458
- height: calc(var(--qti-form-size) - 4px);
459
- }
460
- &[role='radio']::part(ch) {
461
- border-radius: var(--qti-border-radius-full);
462
- width: var(--qti-form-size);
463
- height: var(--qti-form-size);
464
- align-self: 1;
465
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
466
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
467
- outline: none;
468
- }
469
- &[role='radio'][aria-checked='true']::part(cha) {
470
- background-color: var(--qti-bg-primary);
471
- border-radius: var(--qti-border-radius-full);
472
- }
473
- &[role='checkbox']::part(ch) {
474
- border-radius: var(--qti-border-radius-md);
475
- width: var(--qti-form-size);
476
- height: var(--qti-form-size);
477
- align-self: 1;
478
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
479
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
480
- outline: none;
481
- }
482
- &[role='checkbox'][aria-checked='true']::part(cha) {
483
- background-color: var(--qti-bg-primary);
484
- -webkit-mask-image: var(--check-mask);
485
- mask-image: var(--check-mask);
486
- -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='currentColor' width='100%' height='100%' viewBox='0 0 24 24'%3E%3Cpath d='M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z'/%3E%3C/svg%3E");
487
- mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='currentColor' width='100%' height='100%' viewBox='0 0 24 24'%3E%3Cpath d='M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z'/%3E%3C/svg%3E");
488
- }
489
- gap: 0.5rem;
490
- padding: var(--qti-padding-md) var(--qti-padding-md);
491
- outline: none;
492
- border-radius: var(--qti-border-radius-md);
493
- cursor: pointer
494
- }
495
- }
496
- & qti-simple-choice {
497
- &[data-correct-response='true'] {
498
- &::after {
499
- content: '\\02714';
500
- color: #16a34a; /* text-green-600 */
501
- }
502
- }
503
- }
504
-
505
- & qti-simple-choice > p {
506
- margin: 0;
507
- padding: 0;
508
- }
509
- }
510
-
511
- qti-text-entry-interaction {
512
- &:hover {
513
- background-color: var(--qti-bg-gray-50);
514
- }
515
- &:focus-within {
516
- outline: var(--qti-focus-border-width) solid var(--qti-focus-color);
517
- }
518
- &::part(input) {
519
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
520
- outline: none;
521
- border-radius: 0;
522
- cursor: text;
523
- padding: var(--qti-padding-lg);
524
- background: unset;
525
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
526
- outline: none;
527
- }
528
- }
529
-
530
- qti-extended-text-interaction {
531
- &::part(textarea) {
532
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
533
- outline: none;
534
- border-radius: 0;
535
- cursor: text;
536
- padding: var(--qti-padding-lg);
537
- background: unset;
538
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
539
- outline: none;
540
- }
541
- &:hover {
542
- background-color: var(--qti-bg-gray-50);
543
- }
544
- &:focus-within {
545
- outline: var(--qti-focus-border-width) solid var(--qti-focus-color);
546
- }
547
- }
548
-
549
- qti-gap-match-interaction {
550
- & qti-gap-text {
551
-
552
- &:hover {
553
- background-color: var(--qti-bg-gray-50);
554
- }
555
- &:focus {
556
- outline: var(--qti-focus-border-width) solid var(--qti-focus-color);
557
- }
558
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
559
- outline: none;
560
- padding: var(--qti-padding-md) var(--qti-padding-lg) var(--qti-padding-md) var(--qti-padding-xl);
561
- border-radius: var(--qti-border-radius-md);
562
- cursor: grab;
563
- background-color: white;
564
- font-weight: var(--qti-font-weight-semibold);
565
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
566
- outline: none;
567
- background-image: radial-gradient(
568
- circle at center,
569
- rgba(0, 0, 0, 0.1) 0,
570
- rgb(0, 0, 0, 0.1) 2px,
571
- white 2px,
572
- white 100%
573
- );
574
- background-repeat: repeat-y;
575
- background-position: left 2px;
576
- background-size: 14px 8px
577
- }
578
- & qti-gap {
579
- display: inline-flex;
580
- width: 8rem; /* w-32 */
581
- &:empty:after {
582
- padding: var(--qti-padding-md) var(--qti-padding-lg); /* Padding shorthand */
583
- content: '\\0000a0'; /* when empty, put a space in it */
584
- }
585
- &:not(:empty) {
586
- display: inline-flex;
587
- padding: 0;
588
- width: auto;
589
- }
590
- &:not(:empty) > * {
591
- flex: 1;
592
- transform: rotate(0); /* rotate-0 */
593
- box-shadow: 0 0 0 1px #e5e7eb; /* ring-gray-200 */
594
- }
595
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
596
- outline: none;
597
- border-radius: var(--qti-border-radius-lg);
598
- position: relative;
599
- background-color: var(--qti-bg-gray-50);
600
- margin: 1px;
601
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
602
- outline: none
603
- }
604
- }
605
-
606
- qti-hotspot-interaction {
607
- & qti-hotspot-choice {
608
- &[shape='circle'] {
609
- &:hover {
610
- background-color: var(--qti-bg-gray-50);
611
- }
612
- &:focus {
613
- outline: var(--qti-focus-border-width) solid var(--qti-focus-color);
614
- }
615
- &[aria-checked='true'] {
616
- border-color: var(--qti-bg-primary);
617
- }
618
- &[aria-readonly='true'] {
619
- cursor: pointer;
620
- background-color: white;
621
- outline: 0;
622
- border: none;
623
- }
624
- &[aria-disabled='true'] {
625
- cursor: not-allowed;
626
- background-color: var(--qti-bg-gray-100);
627
- color: var(--qti-text-gray-500);
628
- border-color: var(--qti-border-color-gray);
629
- }
630
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
631
- outline: none;
632
- width: 100%;
633
- height: 100%;
634
- background-color: transparent;
635
- padding: 0;
636
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
637
- outline: none
638
- }
639
- &[shape='rect'] {
640
- &:hover {
641
- background-color: var(--qti-bg-gray-50);
642
- }
643
- &:focus {
644
- outline: var(--qti-focus-border-width) solid var(--qti-focus-color);
645
- }
646
- &[aria-checked='true'] {
647
- border-color: var(--qti-bg-primary);
648
- }
649
- &[aria-readonly='true'] {
650
- cursor: pointer;
651
- background-color: white;
652
- outline: 0;
653
- border: none;
654
- }
655
- &[aria-disabled='true'] {
656
- cursor: not-allowed;
657
- background-color: var(--qti-bg-gray-100);
658
- color: var(--qti-text-gray-500);
659
- border-color: var(--qti-border-color-gray);
660
- }
661
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
662
- outline: none;
663
- width: 100%;
664
- height: 100%;
665
- background-color: transparent;
666
- padding: 0;
667
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
668
- outline: none
669
- }
670
- &[shape='poly'] {
671
- &:hover::after {
672
- content: '';
673
- width: 100%;
674
- height: 100%;
675
- background: repeating-linear-gradient(
676
- 45deg,
677
- var(--qti-primary),
678
- var(--qti-primary) 5px,
679
- transparent 5px,
680
- transparent 10px
681
- );
682
- display: block;
683
- border-color: var(--qti-bg-primary);
684
- }
685
-
686
- &[aria-checked='true']:after {
687
- content: '';
688
- width: 100%;
689
- height: 100%;
690
- background: repeating-linear-gradient(
691
- 45deg,
692
- transparent,
693
- transparent 5px,
694
- var(--qti-primary) 5px,
695
- var(--qti-primary) 10px
696
- );
697
- display: block;
698
- border-color: var(--qti-bg-primary);
699
- }
700
-
701
- &[aria-checked='true'] {
702
- border-color: var(--qti-bg-primary);
703
- }
704
- &[aria-readonly='true'] {
705
- cursor: pointer;
706
- background-color: white;
707
- outline: 0;
708
- border: none;
709
- }
710
- &[aria-disabled='true'] {
711
- cursor: not-allowed;
712
- background-color: var(--qti-bg-gray-100);
713
- color: var(--qti-text-gray-500);
714
- border-color: var(--qti-border-color-gray);
715
- }
716
- }
717
- }
718
- }
719
-
720
- qti-hottext-interaction {
721
- qti-hottext {
722
- display: inline-flex;
723
- align-items: center;
724
- }
725
- /* &:not(.qti-input-control-hidden),
726
- &:not(.qti-unselected-hidden) { */
727
- qti-hottext {
728
- &:hover {
729
- background-color: var(--qti-bg-gray-50);
730
- }
731
- &:focus {
732
- outline: var(--qti-focus-border-width) solid var(--qti-focus-color);
733
- }
734
- &::part(cha) {
735
- width: calc(var(--qti-form-size) - 4px);
736
- height: calc(var(--qti-form-size) - 4px);
737
- }
738
- &[role='radio']::part(ch) {
739
- border-radius: var(--qti-border-radius-full);
740
- width: var(--qti-form-size);
741
- height: var(--qti-form-size);
742
- align-self: 1;
743
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
744
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
745
- outline: none;
746
- }
747
- &[role='radio'][aria-checked='true']::part(cha) {
748
- background-color: var(--qti-bg-primary);
749
- border-radius: var(--qti-border-radius-full);
750
- }
751
- &[role='checkbox']::part(ch) {
752
- border-radius: var(--qti-border-radius-md);
753
- width: var(--qti-form-size);
754
- height: var(--qti-form-size);
755
- align-self: 1;
756
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
757
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
758
- outline: none;
759
- }
760
- &[role='checkbox'][aria-checked='true']::part(cha) {
761
- background-color: var(--qti-bg-primary);
762
- -webkit-mask-image: var(--check-mask);
763
- mask-image: var(--check-mask);
764
- -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='currentColor' width='100%' height='100%' viewBox='0 0 24 24'%3E%3Cpath d='M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z'/%3E%3C/svg%3E");
765
- mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='currentColor' width='100%' height='100%' viewBox='0 0 24 24'%3E%3Cpath d='M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z'/%3E%3C/svg%3E");
766
- }
767
- gap: 0.5rem;
768
- padding: var(--qti-padding-md) var(--qti-padding-md);
769
- outline: none;
770
- border-radius: var(--qti-border-radius-md);
771
- cursor: pointer
772
- }
773
- /* } */
774
-
775
- &.qti-input-control-hidden {
776
- qti-hottext {
777
- /* --qti-padding-md: 0.1rem;
778
- --qti-padding-lg: 0.2rem;
779
- --qti-border-radius-md: 0.3rem;
780
- --qti-border-thickness: 1px;
781
- --qti-font-weight-semibold: 400; */
782
- &:hover {
783
- background-color: var(--qti-bg-gray-50);
784
- }
785
- &:focus {
786
- outline: var(--qti-focus-border-width) solid var(--qti-focus-color);
787
- }
788
- /* @layer qti-variants { */
789
- &::part(ch) {
790
- display: none;
791
- }
792
- &[aria-checked='true'] {
793
- border-color: var(--qti-bg-primary);
794
- }
795
- &[aria-readonly='true'] {
796
- cursor: pointer;
797
- background-color: white;
798
- outline: 0;
799
- border: none;
800
- }
801
- &[aria-disabled='true'] {
802
- cursor: not-allowed;
803
- background-color: var(--qti-bg-gray-100);
804
- color: var(--qti-text-gray-500);
805
- border-color: var(--qti-border-color-gray);
806
- }
807
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
808
- outline: none;
809
- border-radius: var(--qti-border-radius-md);
810
- padding: var(--qti-padding-sm) var(--qti-padding-md);
811
- font-weight: var(--qti-font-weight-semibold);
812
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
813
- outline: none
814
- }
815
- /* } */
816
- }
817
-
818
- &.qti-unselected-hidden {
819
- qti-hottext {
820
- &:hover {
821
- background-color: var(--qti-bg-gray-50);
822
- }
823
- &:focus {
824
- outline: var(--qti-focus-border-width) solid var(--qti-focus-color);
825
- }
826
- cursor: pointer;
827
- &::part(ch) {
828
- display: none;
829
- }
830
- &[aria-checked='true'] {
831
- background-color: var(--qti-primary-light); /* bg-blue-200 */
832
- }
833
- &[aria-readonly='true'] {
834
- cursor: pointer;
835
- background-color: white;
836
- outline: 0;
837
- border: none;
838
- }
839
- &[aria-disabled='true'] {
840
- cursor: not-allowed;
841
- background-color: var(--qti-bg-gray-100);
842
- color: var(--qti-text-gray-500);
843
- border-color: var(--qti-border-color-gray);
844
- }
845
- }
846
- }
847
- }
848
-
849
- qti-inline-choice-interaction {
850
- &::part(select) {
851
- &:hover {
852
- background-color: var(--qti-bg-gray-50);
853
- }
854
- &:focus {
855
- outline: var(--qti-focus-border-width) solid var(--qti-focus-color);
856
- }
857
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
858
- outline: none;
859
- border-radius: var(--qti-border-radius-md);
860
- position: relative;
861
- -webkit-appearance: none;
862
- -moz-appearance: none;
863
- appearance: none;
864
- padding: var(--qti-padding-md) 1.75rem var(--qti-padding-md) var(--qti-padding-lg);
865
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
866
- outline: none;
867
- background: url("data:image/svg+xml,%3Csvg fill='currentColor' width='22' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' aria-hidden='true'%3E%3Cpath clip-rule='evenodd' fill-rule='evenodd' d='M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z'%3E%3C/path%3E%3C/svg%3E")
868
- no-repeat center right 6px
869
- }
870
- }
871
-
872
- qti-match-interaction:not(.qti-match-tabular) {
873
- & qti-simple-match-set:first-of-type {
874
- display: flex;
875
- flex-wrap: wrap;
876
- gap: var(--qti-gap-size); /* gap-2 */
877
- padding-bottom: 1rem; /* pb-4 */
878
-
879
- & qti-simple-associable-choice {
880
- &:hover {
881
- background-color: var(--qti-bg-gray-50);
882
- }
883
- &:focus {
884
- outline: var(--qti-focus-border-width) solid var(--qti-focus-color);
885
- }
886
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
887
- outline: none;
888
- padding: var(--qti-padding-md) var(--qti-padding-lg) var(--qti-padding-md) var(--qti-padding-xl);
889
- border-radius: var(--qti-border-radius-md);
890
- cursor: grab;
891
- background-color: white;
892
- font-weight: var(--qti-font-weight-semibold);
893
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
894
- outline: none;
895
- background-image: radial-gradient(
896
- circle at center,
897
- rgba(0, 0, 0, 0.1) 0,
898
- rgb(0, 0, 0, 0.1) 2px,
899
- white 2px,
900
- white 100%
901
- );
902
- background-repeat: repeat-y;
903
- background-position: left 2px;
904
- background-size: 14px 8px
905
- }
906
- }
907
-
908
- & qti-simple-match-set:last-of-type {
909
- display: grid;
910
- grid-auto-columns: 1fr; /* auto-cols-fr */
911
- grid-auto-flow: column; /* grid-flow-col */
912
- gap: var(--qti-gap-size); /* gap-2 */
913
- width: 100%; /* w-full */
914
-
915
- & qti-simple-associable-choice {
916
- display: flex;
917
- flex-direction: column;
918
- }
919
-
920
- & qti-simple-associable-choice[enabled] {
921
- outline: var(--qti-focus-border-width) solid var(--qti-focus-color);
922
- }
923
-
924
- & qti-simple-associable-choice[active] {
925
- border-color: var(--qti-bg-primary);
926
- }
927
-
928
- & qti-simple-associable-choice::part(dropslot) {
929
- &:hover {
930
- background-color: var(--qti-bg-gray-50);
931
- }
932
- &:focus {
933
- outline: var(--qti-focus-border-width) solid var(--qti-focus-color);
934
- }
935
- display: flex;
936
- flex-direction: column;
937
- min-height: 6rem;
938
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
939
- outline: none;
940
- border-radius: var(--qti-border-radius-lg);
941
- position: relative;
942
- background-color: var(--qti-bg-gray-50);
943
- margin: 1px;
944
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
945
- outline: none;
946
- }
947
-
948
- & qti-simple-associable-choice > qti-simple-associable-choice::part(dropslot) {
949
- display: none;
950
- }
951
-
952
- & qti-simple-associable-choice > *:not(qti-simple-associable-choice) {
953
- pointer-events: none;
954
- }
955
-
956
- & qti-simple-associable-choice > qti-simple-associable-choice {
957
- &:hover {
958
- background-color: var(--qti-bg-gray-50);
959
- }
960
- &:focus {
961
- outline: var(--qti-focus-border-width) solid var(--qti-focus-color);
962
- }
963
- flex-basis: fit-content;
964
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
965
- outline: none;
966
- padding: var(--qti-padding-md) var(--qti-padding-lg) var(--qti-padding-md) var(--qti-padding-xl);
967
- border-radius: var(--qti-border-radius-md);
968
- cursor: grab;
969
- background-color: white;
970
- font-weight: var(--qti-font-weight-semibold);
971
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
972
- outline: none;
973
- background-image: radial-gradient(
974
- circle at center,
975
- rgba(0, 0, 0, 0.1) 0,
976
- rgb(0, 0, 0, 0.1) 2px,
977
- white 2px,
978
- white 100%
979
- );
980
- background-repeat: repeat-y;
981
- background-position: left 2px;
982
- background-size: 14px 8px;
983
- }
984
- }
985
- }
986
-
987
- qti-order-interaction {
988
- &::part(qti-simple-choice),
989
- & qti-simple-choice {
990
- &:hover {
991
- background-color: var(--qti-bg-gray-50);
992
- }
993
- &:focus {
994
- outline: var(--qti-focus-border-width) solid var(--qti-focus-color);
995
- }
996
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
997
- outline: none;
998
- padding: var(--qti-padding-md) var(--qti-padding-lg) var(--qti-padding-md) var(--qti-padding-xl);
999
- border-radius: var(--qti-border-radius-md);
1000
- cursor: grab;
1001
- background-color: white;
1002
- font-weight: var(--qti-font-weight-semibold);
1003
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
1004
- outline: none;
1005
- background-image: radial-gradient(
1006
- circle at center,
1007
- rgba(0, 0, 0, 0.1) 0,
1008
- rgb(0, 0, 0, 0.1) 2px,
1009
- white 2px,
1010
- white 100%
1011
- );
1012
- background-repeat: repeat-y;
1013
- background-position: left 2px;
1014
- background-size: 14px 8px
1015
- }
1016
- &::part(qti-simple-choice) {
1017
- display: flex;
1018
- overflow: hidden;
1019
- align-items: center;
1020
- width: 100%;
1021
- text-overflow: ellipsis;
1022
- }
1023
- &::part(drops) {
1024
- gap: 0.5rem; /* gap-2 */
1025
- }
1026
- &::part(drags) {
1027
- gap: 0.5rem; /* gap-2 */
1028
- }
1029
- &::part(drop-list) {
1030
- &:hover {
1031
- background-color: var(--qti-bg-gray-50);
1032
- }
1033
- &:focus {
1034
- outline: var(--qti-focus-border-width) solid var(--qti-focus-color);
1035
- }
1036
- display: flex;
1037
- min-height: 4rem;
1038
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
1039
- outline: none;
1040
- border-radius: var(--qti-border-radius-lg);
1041
- position: relative;
1042
- background-color: var(--qti-bg-gray-50);
1043
- margin: 1px;
1044
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
1045
- outline: none;
1046
- }
1047
- &::part(active) {
1048
- border-color: var(--qti-bg-primary);
1049
- }
1050
- }
1051
-
1052
- qti-associate-interaction {
1053
- &::part(qti-simple-associable-choice),
1054
- & qti-simple-associable-choice {
1055
- /* drags in drops */
1056
- display: flex;
1057
- overflow: hidden;
1058
- align-items: center;
1059
- text-overflow: ellipsis;
1060
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
1061
- outline: none;
1062
- padding: var(--qti-padding-md) var(--qti-padding-lg) var(--qti-padding-md) var(--qti-padding-xl);
1063
- border-radius: var(--qti-border-radius-md);
1064
- cursor: grab;
1065
- background-color: white;
1066
- font-weight: var(--qti-font-weight-semibold);
1067
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
1068
- outline: none;
1069
- background-image: radial-gradient(
1070
- circle at center,
1071
- rgba(0, 0, 0, 0.1) 0,
1072
- rgb(0, 0, 0, 0.1) 2px,
1073
- white 2px,
1074
- white 100%
1075
- );
1076
- background-repeat: repeat-y;
1077
- background-position: left 2px;
1078
- background-size: 14px 8px;
1079
- }
1080
- &::part(associables-container) {
1081
- display: flex;
1082
- justify-content: space-between;
1083
- background: linear-gradient(
1084
- 180deg,
1085
- rgb(0 0 0 / 0%) calc(50% - 1px),
1086
- var(--qti-border-color-gray) calc(50%),
1087
- rgb(0 0 0 / 0%) calc(50% + 1px)
1088
- );
1089
- }
1090
- &::part(active) {
1091
- border-color: var(--qti-bg-primary);
1092
- }
1093
- &::part(drop-container) {
1094
- display: flex;
1095
- flex-direction: column;
1096
- gap: var(--qti-gap-size);
1097
- }
1098
- &::part(drop-list) {
1099
- &:focus {
1100
- outline: var(--qti-focus-border-width) solid var(--qti-focus-color);
1101
- }
1102
- display: grid;
1103
- height: 3rem;
1104
- min-width: 10rem;
1105
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
1106
- outline: none;
1107
- border-radius: var(--qti-border-radius-lg);
1108
- position: relative;
1109
- background-color: var(--qti-bg-gray-50);
1110
- margin: 1px;
1111
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
1112
- outline: none;
1113
- }
1114
- }
1115
-
1116
- qti-graphic-order-interaction {
1117
- & qti-hotspot-choice {
1118
- &:hover {
1119
- background-color: var(--qti-bg-gray-50);
1120
- }
1121
- &:focus {
1122
- outline: var(--qti-focus-border-width) solid var(--qti-focus-color);
1123
- }
1124
- &[aria-checked='true'] {
1125
- border-color: var(--qti-bg-primary);
1126
- }
1127
- &[aria-readonly='true'] {
1128
- cursor: pointer;
1129
- background-color: white;
1130
- outline: 0;
1131
- border: none;
1132
- }
1133
- &[aria-disabled='true'] {
1134
- cursor: not-allowed;
1135
- background-color: var(--qti-bg-gray-100);
1136
- color: var(--qti-text-gray-500);
1137
- border-color: var(--qti-border-color-gray);
1138
- }
1139
- &[aria-ordervalue] {
1140
- display: flex;
1141
- justify-content: center;
1142
- align-items: center;
1143
- background-color: var(--qti-bg-primary);
1144
- border-radius: var(--qti-border-radius-full);
1145
- width: 1.5rem;
1146
- height: 1.5rem;
1147
- color: var(--qti-text-white);
1148
- }
1149
- &[aria-ordervalue]::after {
1150
- content: attr(aria-ordervalue) !important;
1151
- }
1152
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
1153
- outline: none;
1154
- width: 100%;
1155
- height: 100%;
1156
- background-color: transparent;
1157
- padding: 0;
1158
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
1159
- outline: none
1160
- }
1161
- }
1162
-
1163
- qti-graphic-associate-interaction {
1164
- position: relative;
1165
- display: block;
1166
-
1167
- & qti-associable-hotspot {
1168
- &[shape='circle'] {
1169
- &:hover {
1170
- background-color: var(--qti-bg-gray-50);
1171
- }
1172
- &:focus {
1173
- outline: var(--qti-focus-border-width) solid var(--qti-focus-color);
1174
- }
1175
- &[aria-checked='true'] {
1176
- border-color: var(--qti-bg-primary);
1177
- }
1178
- &[aria-readonly='true'] {
1179
- cursor: pointer;
1180
- background-color: white;
1181
- outline: 0;
1182
- border: none;
1183
- }
1184
- &[aria-disabled='true'] {
1185
- cursor: not-allowed;
1186
- background-color: var(--qti-bg-gray-100);
1187
- color: var(--qti-text-gray-500);
1188
- border-color: var(--qti-border-color-gray);
1189
- }
1190
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
1191
- outline: none;
1192
- width: 100%;
1193
- height: 100%;
1194
- background-color: transparent;
1195
- padding: 0;
1196
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
1197
- outline: none
1198
- }
1199
-
1200
- &[shape='square'] {
1201
- &:hover {
1202
- background-color: var(--qti-bg-gray-50);
1203
- }
1204
- &:focus {
1205
- outline: var(--qti-focus-border-width) solid var(--qti-focus-color);
1206
- }
1207
- &[aria-checked='true'] {
1208
- border-color: var(--qti-bg-primary);
1209
- }
1210
- &[aria-readonly='true'] {
1211
- cursor: pointer;
1212
- background-color: white;
1213
- outline: 0;
1214
- border: none;
1215
- }
1216
- &[aria-disabled='true'] {
1217
- cursor: not-allowed;
1218
- background-color: var(--qti-bg-gray-100);
1219
- color: var(--qti-text-gray-500);
1220
- border-color: var(--qti-border-color-gray);
1221
- }
1222
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
1223
- outline: none;
1224
- width: 100%;
1225
- height: 100%;
1226
- background-color: transparent;
1227
- padding: 0;
1228
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
1229
- outline: none
1230
- }
1231
- }
1232
- }
1233
-
1234
- qti-graphic-gap-match-interaction {
1235
- position: relative;
1236
- & img {
1237
- margin: 0;
1238
- padding: 0;
1239
- }
1240
- }
1241
-
1242
- qti-slider-interaction {
1243
- display: block;
1244
-
1245
- --qti-tick-color: rgb(229 231 235 / 1);
1246
- --qti-tick-width: 1px;
1247
-
1248
- &::part(slider) {
1249
- margin-left: 2rem; /* mx-8 */
1250
- margin-right: 2rem;
1251
- padding-bottom: 1rem; /* pb-4 */
1252
- padding-top: 1.25rem; /* pt-5 */
1253
- }
1254
-
1255
- --show-bounds: true;
1256
- &::part(bounds) {
1257
- display: flex;
1258
- width: 100%;
1259
- justify-content: space-between;
1260
- margin-bottom: 0.5rem; /* mb-2 */
1261
- }
1262
-
1263
- --show-ticks: true;
1264
- &::part(ticks) {
1265
- margin-left: 0.125rem; /* mx-0.5 */
1266
- margin-right: 0.125rem;
1267
- margin-bottom: 0.25rem; /* mb-1 */
1268
- height: 0.5rem; /* h-2 */
1269
- background-position: 0 center;
1270
- background: linear-gradient(to right, var(--qti-tick-color) var(--qti-tick-width), transparent 1px) repeat-x;
1271
- background-size: calc(calc(100% - var(--qti-tick-width)) / ((var(--max) - var(--min)) / var(--step))) 100%;
1272
- }
1273
-
1274
- &::part(rail) {
1275
- display: flex;
1276
- align-items: center;
1277
- box-sizing: border-box;
1278
- height: 0.375rem; /* h-1.5 */
1279
- width: 100%;
1280
- cursor: pointer;
1281
- border-radius: 9999px; /* rounded-full */
1282
- border: 1px solid #d1d5db; /* border-gray-300 */
1283
- background-color: #e5e7eb; /* bg-gray-200 */
1284
- }
1285
-
1286
- &::part(knob) {
1287
- background-color: var(--qti-primary);
1288
- position: relative;
1289
- height: 1rem; /* h-4 */
1290
- width: 1rem; /* w-4 */
1291
- transform-origin: center;
1292
- transform: translateX(-50%);
1293
- cursor: pointer;
1294
- border-radius: 9999px; /* rounded-full */
1295
- left: var(--value-percentage);
1296
- }
1297
-
1298
- --show-value: true;
1299
- &::part(value) {
1300
- position: absolute;
1301
- bottom: 2rem; /* bottom-8 */
1302
- left: 0.5rem; /* left-2 */
1303
- transform: translateX(-50%);
1304
- cursor: pointer;
1305
- border-radius: 0.25rem; /* rounded */
1306
- background-color: #f3f4f6; /* bg-gray-100 */
1307
- padding: 0.25rem 0.5rem; /* px-2 py-1 */
1308
- text-align: center;
1309
- color: #6b7280; /* text-gray-500 */
1310
- }
1311
- }
1312
-
1313
- qti-select-point-interaction {
1314
- &::part(point) {
1315
- &:hover {
1316
- background-color: var(--qti-bg-gray-50);
1317
- }
1318
- &:focus {
1319
- outline: var(--qti-focus-border-width) solid var(--qti-focus-color);
1320
- }
1321
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
1322
- border-radius: var(--qti-border-radius-full);
1323
- outline: none;
1324
- width: 1.5rem;
1325
- height: 1.5rem;
1326
- background-color: transparent;
1327
- padding: 0;
1328
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
1329
- outline: none;
1330
- }
1331
- }
1332
-
1333
- qti-position-object-stage {
1334
- & qti-position-object-interaction {
1335
- /* no styles necessary, only layout styles, defined in the component */
1336
- }
1337
- }
1338
-
1339
- qti-prompt {
1340
- margin: 0.5rem 0; /* my-2 */
1341
- display: block;
1342
- width: 100%;
1343
- }
1344
- }
1345
-
1346
- /* utilities */
1347
-
1348
- @layer qti-utilities {
1349
- .qti-underline {
1350
- text-decoration: underline;
1351
- }
1352
-
1353
- .qti-align-left {
1354
- text-align: left;
1355
- }
1356
-
1357
- .qti-align-center {
1358
- text-align: center;
1359
- }
1360
-
1361
- .qti-align-right {
1362
- text-align: right;
1363
- }
1364
-
1365
- .qti-valign-top {
1366
- vertical-align: top;
1367
- }
1368
-
1369
- .qti-valign-middle {
1370
- vertical-align: middle;
1371
- }
1372
-
1373
- .qti-valign-baseline {
1374
- vertical-align: baseline;
1375
- }
1376
-
1377
- .qti-valign-bottom {
1378
- vertical-align: bottom;
1379
- }
1380
-
1381
- .qti-fullwidth {
1382
- width: 100%;
1383
- }
1384
-
1385
- .qti-hidden {
1386
- display: none;
1387
- }
1388
-
1389
- .qti-visually-hidden {
1390
- position: fixed !important;
1391
- overflow: hidden;
1392
- width: 1px;
1393
- height: 1px;
1394
- border: 0;
1395
- margin: -1px;
1396
- clip: rect(1px 1px 1px 1px);
1397
- }
1398
-
1399
- .qti-bordered {
1400
- padding: 2px;
1401
- border: 1px solid #888;
1402
- }
1403
-
1404
- .qti-well {
1405
- display: inline-block;
1406
- padding-top: 0.5rem;
1407
- padding-bottom: 0.5rem;
1408
- padding-left: 0.75rem;
1409
- padding-right: 0.75rem;
1410
- border-radius: 0.25rem;
1411
- border-width: 1px;
1412
- border-color: #d1d5db;
1413
- color: #4b5563;
1414
- background-color: #f3f4f6;
1415
- }
1416
- }
1417
-
1418
- /* variants */
1419
-
1420
- @layer qti-variants {
1421
- .qti-input-width-1 {
1422
- width: 1ch;
1423
- min-width: 1ch;
1424
- }
1425
- .qti-input-width-2 {
1426
- width: 2ch;
1427
- min-width: 2ch;
1428
- }
1429
- .qti-input-width-3 {
1430
- width: 3ch;
1431
- min-width: 3ch;
1432
- }
1433
- .qti-input-width-4 {
1434
- width: 4ch;
1435
- min-width: 4ch;
1436
- }
1437
- .qti-input-width-6 {
1438
- width: 6ch;
1439
- min-width: 6ch;
1440
- }
1441
- .qti-input-width-10 {
1442
- width: 10ch;
1443
- min-width: 10ch;
1444
- }
1445
- .qti-input-width-15 {
1446
- width: 15ch;
1447
- min-width: 15ch;
1448
- }
1449
- .qti-input-width-20 {
1450
- width: 20ch;
1451
- min-width: 20ch;
1452
- }
1453
- .qti-input-width-72 {
1454
- width: 72ch;
1455
- min-width: 72ch;
1456
- }
1457
- }
1458
-
1459
- @layer qti-variants {
1460
- qti-choice-interaction {
1461
- &.qti-choices-stacking-2 {
1462
- .grid {
1463
- display: grid; /* grid */
1464
- }
1465
- grid-template-columns: repeat(2, minmax(0, 1fr)); /* grid-cols-2 */
1466
- qti-prompt {
1467
- grid-column: span 2 / span 2; /* col-span-2 */
1468
- }
1469
- }
1470
- &.qti-choices-stacking-3 {
1471
- .grid {
1472
- display: grid;
1473
- }
1474
- grid-template-columns: repeat(3, minmax(0, 1fr));
1475
- qti-prompt {
1476
- grid-column: span 3 / span 3;
1477
- }
1478
- }
1479
- &.qti-choices-stacking-4 {
1480
- .grid {
1481
- display: grid;
1482
- }
1483
- grid-template-columns: repeat(4, minmax(0, 1fr));
1484
- qti-prompt {
1485
- grid-column: span 4 / span 4;
1486
- }
1487
- }
1488
- &.qti-choices-stacking-5 {
1489
- .grid {
1490
- display: grid;
1491
- }
1492
- grid-template-columns: repeat(5, minmax(0, 1fr));
1493
- qti-prompt {
1494
- grid-column: span 5 / span 5;
1495
- }
1496
- }
1497
- &.qti-orientation-horizontal {
1498
- /* is the default layout */
1499
- }
1500
- &[orientation='horizontal'] {
1501
- flex-direction: row;
1502
- }
1503
- }
1504
- }
1505
- `;var o,e,a,d,l=class extends HTMLElement{constructor(){super(...arguments);n(this,e);n(this,o,null);n(this,d,r=>{r.stopImmediatePropagation(),r.stopPropagation(),this.dispatchEvent(new CustomEvent("qti-item-variables-changed",{bubbles:!1,detail:{variables:i(this,e,a).variables}}))})}set xmlDoc(r){if(!i(this,o)){s(this,o,this.attachShadow({mode:"open"}));let t=new CSSStyleSheet;t.replaceSync(b),i(this,o).adoptedStyleSheets=[t],i(this,o).innerHTML="",i(this,o).addEventListener("qti-interaction-changed",i(this,d)),i(this,o).addEventListener("qti-outcome-changed",i(this,d))}i(this,o).innerHTML="",i(this,o).appendChild(r.cloneNode(!0))}processResponse(){var r,t;(t=(r=i(this,e,a))==null?void 0:r.variables)!=null&&t.processResponse()||console.warn("No qti-assessment-item found")}get variables(){var r;return((r=i(this,e,a))==null?void 0:r.variables)||console.warn("No qti-assessment-item found")}set variables(r){i(this,e,a).variables=r}attributeChangedCallback(r,t,c){switch(r){case"view":break;default:t!==c&&(this[r]=c);break}}};o=new WeakMap,e=new WeakSet,a=function(){return i(this,o).querySelector("qti-assessment-item")||console.warn("No qti-assessment-item found")},d=new WeakMap;customElements.define("qti-item",l);
1506
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiaW5saW5lOi4uLy4uL2l0ZW0uY3NzP2lubGluZSIsICIuLi8uLi9zcmMvbGliL3F0aS1pdGVtL3F0aS1pdGVtLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJAbGF5ZXIgcXRpLWJhc2UsIHF0aS1jb21wb25lbnRzLCBxdGktdXRpbGl0aWVzLCBxdGktdmFyaWFudHMsIHF0aS1leHRlbmRlZDtcblxuOnJvb3QsXG46aG9zdCB7XG4gIC0tcXRpLXByaW1hcnktbGlnaHQ6ICNmZmJlYmU7XG4gIC0tcXRpLXByaW1hcnk6ICNmODZkNzA7XG4gIC0tcXRpLXByaW1hcnktZGFyazogI2ExNjE2YTtcblxuICAtLXF0aS1zZWNvbmRhcnktbGlnaHQ6ICNiZWQ0ZmY7XG4gIC0tcXRpLXNlY29uZGFyeTogIzZkYWVmODtcbiAgLS1xdGktc2Vjb25kYXJ5LWRhcms6ICMzYTQ0OWQ7XG5cbiAgLS1xdGktYm9yZGVyLXRoaWNrbmVzczogMS41cHg7XG4gIC0tcXRpLWJvcmRlci1zdHlsZTogc29saWQ7XG4gIC0tcXRpLWJvcmRlci1jb2xvci1ncmF5OiAjYzZjYWQwOyAvKiBDb3JyZXNwb25kaW5nIHRvIGJvcmRlci1ncmF5LTQwMCAqL1xuICAtLXF0aS1ib3JkZXItcmFkaXVzLW1kOiAwLjM3NXJlbTtcbiAgLS1xdGktYm9yZGVyLXJhZGl1cy1sZzogMC41cmVtO1xuICAtLXF0aS1ib3JkZXItcmFkaXVzLWZ1bGw6IDk5OTlweDtcblxuICAtLXF0aS1iZy1ncmF5LTUwOiAjZjlmYWZiO1xuICAtLXF0aS1iZy1wcmltYXJ5OiB2YXIoLS1xdGktcHJpbWFyeSk7XG4gIC0tcXRpLWJnLWdyYXktMTAwOiAjZjNmNGY2O1xuXG4gIC0tcXRpLXRleHQtZ3JheS01MDA6ICM2YjcyODA7XG4gIC0tcXRpLXRleHQtd2hpdGU6IHdoaXRlO1xuXG4gIC0tcXRpLXBhZGRpbmctc206IDAuMTI1cmVtOyAvKiBweS0wLjUgKi9cbiAgLS1xdGktcGFkZGluZy1tZDogMC41cmVtOyAvKiBweS0yICovXG4gIC0tcXRpLXBhZGRpbmctbGc6IDAuNzVyZW07IC8qIHAtMyAqL1xuICAtLXF0aS1wYWRkaW5nLXhsOiAxcmVtOyAvKiBwbC00ICovXG5cbiAgLS1xdGktZm9udC13ZWlnaHQtc2VtaWJvbGQ6IDYwMDtcblxuICAtLXF0aS1hY3RpdmU6IGJsdWU7XG4gIC0tcXRpLWZvY3VzLWNvbG9yOiAjYmRkY2ZmN2U7XG4gIC0tcXRpLWZvY3VzLWJvcmRlci13aWR0aDogNXB4O1xuXG4gIC0tcXRpLWNvcnJlY3Q6IHJnYig3NCAyMjIgMTI4KTtcbiAgLS1xdGktY29ycmVjdC1saWdodDogcmdiKDIyMCAyNTIgMjMxKTtcbiAgLS1xdGktaW5jb3JyZWN0OiByZ2IoMjQ4IDExMyAxMTMpO1xuICAtLXF0aS1pbmNvcnJlY3QtbGlnaHQ6IHJnYigyNTQgMjI2IDIyNik7XG5cbiAgLS1xdGktZm9ybS1zaXplOiAxcmVtO1xuICAtLXF0aS1nYXAtc2l6ZTogMC41cmVtO1xufVxuXG4uY2hldnJvbiB7XG4gIGJhY2tncm91bmQ6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgZmlsbD0nY3VycmVudENvbG9yJyB3aWR0aD0nMjInIHZpZXdCb3g9JzAgMCAyMCAyMCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyBhcmlhLWhpZGRlbj0ndHJ1ZSclM0UlM0NwYXRoIGNsaXAtcnVsZT0nZXZlbm9kZCcgZmlsbC1ydWxlPSdldmVub2RkJyBkPSdNNS4yMyA3LjIxYS43NS43NSAwIDAxMS4wNi4wMkwxMCAxMS4xNjhsMy43MS0zLjkzOGEuNzUuNzUgMCAxMTEuMDggMS4wNGwtNC4yNSA0LjVhLjc1Ljc1IDAgMDEtMS4wOCAwbC00LjI1LTQuNWEuNzUuNzUgMCAwMS4wMi0xLjA2eiclM0UlM0MvcGF0aCUzRSUzQy9zdmclM0VcIilcbiAgICBuby1yZXBlYXQgY2VudGVyIHJpZ2h0IDZweDtcbn1cblxuLmhhbmRsZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudChcbiAgICBjaXJjbGUgYXQgY2VudGVyLFxuICAgIHJnYmEoMCwgMCwgMCwgMC4xKSAwLFxuICAgIHJnYigwLCAwLCAwLCAwLjEpIDJweCxcbiAgICB3aGl0ZSAycHgsXG4gICAgd2hpdGUgMTAwJVxuICApO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXk7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgMnB4O1xuICBiYWNrZ3JvdW5kLXNpemU6IDE0cHggOHB4O1xufVxuXG4uY2hlY2stbWFzayB7XG4gIC13ZWJraXQtbWFzazogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIGZpbGw9J2N1cnJlbnRDb2xvcicgd2lkdGg9JzEwMCUnIGhlaWdodD0nMTAwJScgdmlld0JveD0nMCAwIDI0IDI0JyUzRSUzQ3BhdGggZD0nTTIwLjI4NSAybC0xMS4yODUgMTEuNTY3LTUuMjg2LTUuMDExLTMuNzE0IDMuNzE2IDkgOC43MjggMTUtMTUuMjg1eicvJTNFJTNDL3N2ZyUzRVwiKTtcbiAgICAgICAgICBtYXNrOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgZmlsbD0nY3VycmVudENvbG9yJyB3aWR0aD0nMTAwJScgaGVpZ2h0PScxMDAlJyB2aWV3Qm94PScwIDAgMjQgMjQnJTNFJTNDcGF0aCBkPSdNMjAuMjg1IDJsLTExLjI4NSAxMS41NjctNS4yODYtNS4wMTEtMy43MTQgMy43MTYgOSA4LjcyOCAxNS0xNS4yODV6Jy8lM0UlM0Mvc3ZnJTNFXCIpO1xufVxuXG4uYm9yZGVyZWQge1xuICBib3JkZXI6IHZhcigtLXF0aS1ib3JkZXItdGhpY2tuZXNzKSB2YXIoLS1xdGktYm9yZGVyLXN0eWxlKSB2YXIoLS1xdGktYm9yZGVyLWNvbG9yLWdyYXkpO1xuICBvdXRsaW5lOiBub25lO1xufVxuXG4uYm9yZGVyaW52aXNpYmxlIHtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLmZvcm0ge1xuICB3aWR0aDogdmFyKC0tcXRpLWZvcm0tc2l6ZSk7XG4gIGhlaWdodDogdmFyKC0tcXRpLWZvcm0tc2l6ZSk7XG4gIGFsaWduLXNlbGY6IDE7XG4gIGJvcmRlcjogdmFyKC0tcXRpLWJvcmRlci10aGlja25lc3MpIHZhcigtLXF0aS1ib3JkZXItc3R5bGUpIHZhcigtLXF0aS1ib3JkZXItY29sb3ItZ3JheSk7XG4gIGJvcmRlcjogdmFyKC0tcXRpLWJvcmRlci10aGlja25lc3MpIHZhcigtLXF0aS1ib3JkZXItc3R5bGUpIHZhcigtLXF0aS1ib3JkZXItY29sb3ItZ3JheSk7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbi5wLWxnIHtcbiAgcGFkZGluZzogdmFyKC0tcXRpLXBhZGRpbmctbWQpIHZhcigtLXF0aS1wYWRkaW5nLWxnKSB2YXIoLS1xdGktcGFkZGluZy1tZCkgdmFyKC0tcXRpLXBhZGRpbmcteGwpOyAvKiBQYWRkaW5nIHNob3J0aGFuZCAqL1xufVxuXG4uYnV0dG9uIHtcbiAgYm9yZGVyOiB2YXIoLS1xdGktYm9yZGVyLXRoaWNrbmVzcykgdmFyKC0tcXRpLWJvcmRlci1zdHlsZSkgdmFyKC0tcXRpLWJvcmRlci1jb2xvci1ncmF5KTtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcXRpLWJvcmRlci1yYWRpdXMtbWQpO1xuICBwYWRkaW5nOiB2YXIoLS1xdGktcGFkZGluZy1zbSkgdmFyKC0tcXRpLXBhZGRpbmctbWQpOyAvKiBQYWRkaW5nIHNob3J0aGFuZCAqL1xuICBmb250LXdlaWdodDogdmFyKC0tcXRpLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgYm9yZGVyOiB2YXIoLS1xdGktYm9yZGVyLXRoaWNrbmVzcykgdmFyKC0tcXRpLWJvcmRlci1zdHlsZSkgdmFyKC0tcXRpLWJvcmRlci1jb2xvci1ncmF5KTtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuLnNlbGVjdCB7XG4gIGJvcmRlcjogdmFyKC0tcXRpLWJvcmRlci10aGlja25lc3MpIHZhcigtLXF0aS1ib3JkZXItc3R5bGUpIHZhcigtLXF0aS1ib3JkZXItY29sb3ItZ3JheSk7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXF0aS1ib3JkZXItcmFkaXVzLW1kKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuICBwYWRkaW5nOiB2YXIoLS1xdGktcGFkZGluZy1tZCkgMS43NXJlbSB2YXIoLS1xdGktcGFkZGluZy1tZCkgdmFyKC0tcXRpLXBhZGRpbmctbGcpOyAvKiBQYWRkaW5nIHNob3J0aGFuZCAqLyBib3JkZXI6IHZhcigtLXF0aS1ib3JkZXItdGhpY2tuZXNzKSB2YXIoLS1xdGktYm9yZGVyLXN0eWxlKSB2YXIoLS1xdGktYm9yZGVyLWNvbG9yLWdyYXkpOyBvdXRsaW5lOiBub25lOyBiYWNrZ3JvdW5kOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIGZpbGw9J2N1cnJlbnRDb2xvcicgd2lkdGg9JzIyJyB2aWV3Qm94PScwIDAgMjAgMjAnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgYXJpYS1oaWRkZW49J3RydWUnJTNFJTNDcGF0aCBjbGlwLXJ1bGU9J2V2ZW5vZGQnIGZpbGwtcnVsZT0nZXZlbm9kZCcgZD0nTTUuMjMgNy4yMWEuNzUuNzUgMCAwMTEuMDYuMDJMMTAgMTEuMTY4bDMuNzEtMy45MzhhLjc1Ljc1IDAgMTExLjA4IDEuMDRsLTQuMjUgNC41YS43NS43NSAwIDAxLTEuMDggMGwtNC4yNS00LjVhLjc1Ljc1IDAgMDEuMDItMS4wNnonJTNFJTNDL3BhdGglM0UlM0Mvc3ZnJTNFXCIpXG4gICAgbm8tcmVwZWF0IGNlbnRlciByaWdodCA2cHg7XG59XG5cbi50ZXh0IHtcbiAgYm9yZGVyOiB2YXIoLS1xdGktYm9yZGVyLXRoaWNrbmVzcykgdmFyKC0tcXRpLWJvcmRlci1zdHlsZSkgdmFyKC0tcXRpLWJvcmRlci1jb2xvci1ncmF5KTtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgY3Vyc29yOiB0ZXh0O1xuICBwYWRkaW5nOiB2YXIoLS1xdGktcGFkZGluZy1sZyk7IC8qIEVxdWFsIHBhZGRpbmcgb24gYWxsIHNpZGVzICovXG4gIGJhY2tncm91bmQ6IHVuc2V0O1xuICBib3JkZXI6IHZhcigtLXF0aS1ib3JkZXItdGhpY2tuZXNzKSB2YXIoLS1xdGktYm9yZGVyLXN0eWxlKSB2YXIoLS1xdGktYm9yZGVyLWNvbG9yLWdyYXkpO1xuICBvdXRsaW5lOiBub25lO1xufVxuXG4uc3BvdCB7XG4gIGJvcmRlcjogdmFyKC0tcXRpLWJvcmRlci10aGlja25lc3MpIHZhcigtLXF0aS1ib3JkZXItc3R5bGUpIHZhcigtLXF0aS1ib3JkZXItY29sb3ItZ3JheSk7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IHZhcigtLXF0aS1ib3JkZXItdGhpY2tuZXNzKSB2YXIoLS1xdGktYm9yZGVyLXN0eWxlKSB2YXIoLS1xdGktYm9yZGVyLWNvbG9yLWdyYXkpO1xuICBvdXRsaW5lOiBub25lO1xufVxuXG4vKiBxdGktc2VsZWN0LXBvaW50LWludGVyYWN0aW9uICovXG5cbi5wb2ludCB7XG4gIGJvcmRlcjogdmFyKC0tcXRpLWJvcmRlci10aGlja25lc3MpIHZhcigtLXF0aS1ib3JkZXItc3R5bGUpIHZhcigtLXF0aS1ib3JkZXItY29sb3ItZ3JheSk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXF0aS1ib3JkZXItcmFkaXVzLWZ1bGwpO1xuICBvdXRsaW5lOiBub25lO1xuICB3aWR0aDogMS41cmVtOyAvKiB3LTYgKi9cbiAgaGVpZ2h0OiAxLjVyZW07XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IHZhcigtLXF0aS1ib3JkZXItdGhpY2tuZXNzKSB2YXIoLS1xdGktYm9yZGVyLXN0eWxlKSB2YXIoLS1xdGktYm9yZGVyLWNvbG9yLWdyYXkpO1xuICBvdXRsaW5lOiBub25lO1xufVxuXG4uZHJhZyB7XG4gIGJvcmRlcjogdmFyKC0tcXRpLWJvcmRlci10aGlja25lc3MpIHZhcigtLXF0aS1ib3JkZXItc3R5bGUpIHZhcigtLXF0aS1ib3JkZXItY29sb3ItZ3JheSk7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHBhZGRpbmc6IHZhcigtLXF0aS1wYWRkaW5nLW1kKSB2YXIoLS1xdGktcGFkZGluZy1sZykgdmFyKC0tcXRpLXBhZGRpbmctbWQpIHZhcigtLXF0aS1wYWRkaW5nLXhsKTsgLyogUGFkZGluZyBzaG9ydGhhbmQgKi9cbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcXRpLWJvcmRlci1yYWRpdXMtbWQpO1xuXG4gIGN1cnNvcjogZ3JhYjtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1xdGktZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICBib3JkZXI6IHZhcigtLXF0aS1ib3JkZXItdGhpY2tuZXNzKSB2YXIoLS1xdGktYm9yZGVyLXN0eWxlKSB2YXIoLS1xdGktYm9yZGVyLWNvbG9yLWdyYXkpO1xuICBvdXRsaW5lOiBub25lO1xuICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQoXG4gICAgY2lyY2xlIGF0IGNlbnRlcixcbiAgICByZ2JhKDAsIDAsIDAsIDAuMSkgMCxcbiAgICByZ2IoMCwgMCwgMCwgMC4xKSAycHgsXG4gICAgd2hpdGUgMnB4LFxuICAgIHdoaXRlIDEwMCVcbiAgKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC15O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IDJweDtcbiAgYmFja2dyb3VuZC1zaXplOiAxNHB4IDhweDtcbn1cblxuLmRyb3Age1xuICBib3JkZXI6IHZhcigtLXF0aS1ib3JkZXItdGhpY2tuZXNzKSB2YXIoLS1xdGktYm9yZGVyLXN0eWxlKSB2YXIoLS1xdGktYm9yZGVyLWNvbG9yLWdyYXkpO1xuICBvdXRsaW5lOiBub25lO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1xdGktYm9yZGVyLXJhZGl1cy1sZyk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcXRpLWJnLWdyYXktNTApO1xuICBtYXJnaW46IDFweDsgLyogbS1weCAqLyBib3JkZXI6IHZhcigtLXF0aS1ib3JkZXItdGhpY2tuZXNzKSB2YXIoLS1xdGktYm9yZGVyLXN0eWxlKSB2YXIoLS1xdGktYm9yZGVyLWNvbG9yLWdyYXkpOyBvdXRsaW5lOiBub25lO1xufVxuXG4ub3JkZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1xdGktYmctcHJpbWFyeSk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXF0aS1ib3JkZXItcmFkaXVzLWZ1bGwpO1xuICB3aWR0aDogMS41cmVtOyAvKiB3LTYgKi9cbiAgaGVpZ2h0OiAxLjVyZW07XG4gIGNvbG9yOiB2YXIoLS1xdGktdGV4dC13aGl0ZSk7XG59XG5cbi5jaGVjay1zaXplIHtcbiAgd2lkdGg6IGNhbGModmFyKC0tcXRpLWZvcm0tc2l6ZSkgLSA0cHgpO1xuICBoZWlnaHQ6IGNhbGModmFyKC0tcXRpLWZvcm0tc2l6ZSkgLSA0cHgpO1xufVxuXG4uY2hlY2sge1xuICAvKiBkaXNwbGF5OiBmbGV4OyAqL1xuICAvKiBhbGlnbi1pdGVtczogY2VudGVyOyAqL1xuICBnYXA6IDAuNXJlbTtcbiAgcGFkZGluZzogdmFyKC0tcXRpLXBhZGRpbmctbWQpIHZhcigtLXF0aS1wYWRkaW5nLW1kKTsgLyogUGFkZGluZyBzaG9ydGhhbmQgKi9cbiAgb3V0bGluZTogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcXRpLWJvcmRlci1yYWRpdXMtbWQpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5jaGVjay1yYWRpbyB7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXF0aS1ib3JkZXItcmFkaXVzLWZ1bGwpO1xuICB3aWR0aDogdmFyKC0tcXRpLWZvcm0tc2l6ZSk7XG4gIGhlaWdodDogdmFyKC0tcXRpLWZvcm0tc2l6ZSk7XG4gIGFsaWduLXNlbGY6IDE7XG4gIGJvcmRlcjogdmFyKC0tcXRpLWJvcmRlci10aGlja25lc3MpIHZhcigtLXF0aS1ib3JkZXItc3R5bGUpIHZhcigtLXF0aS1ib3JkZXItY29sb3ItZ3JheSk7XG4gIGJvcmRlcjogdmFyKC0tcXRpLWJvcmRlci10aGlja25lc3MpIHZhcigtLXF0aS1ib3JkZXItc3R5bGUpIHZhcigtLXF0aS1ib3JkZXItY29sb3ItZ3JheSk7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbi5jaGVjay1yYWRpby1jaGVja2VkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcXRpLWJnLXByaW1hcnkpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1xdGktYm9yZGVyLXJhZGl1cy1mdWxsKTtcbn1cblxuLmNoZWNrLWNoZWNrYm94IHtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcXRpLWJvcmRlci1yYWRpdXMtbWQpO1xuICB3aWR0aDogdmFyKC0tcXRpLWZvcm0tc2l6ZSk7XG4gIGhlaWdodDogdmFyKC0tcXRpLWZvcm0tc2l6ZSk7XG4gIGFsaWduLXNlbGY6IDE7XG4gIGJvcmRlcjogdmFyKC0tcXRpLWJvcmRlci10aGlja25lc3MpIHZhcigtLXF0aS1ib3JkZXItc3R5bGUpIHZhcigtLXF0aS1ib3JkZXItY29sb3ItZ3JheSk7XG4gIGJvcmRlcjogdmFyKC0tcXRpLWJvcmRlci10aGlja25lc3MpIHZhcigtLXF0aS1ib3JkZXItc3R5bGUpIHZhcigtLXF0aS1ib3JkZXItY29sb3ItZ3JheSk7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbi5jaGVjay1jaGVja2JveC1jaGVja2VkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcXRpLWJnLXByaW1hcnkpO1xuICAtd2Via2l0LW1hc2staW1hZ2U6IHZhcigtLWNoZWNrLW1hc2spO1xuICAgICAgICAgIG1hc2staW1hZ2U6IHZhcigtLWNoZWNrLW1hc2spOyAvKiBjaGVjay1tYXNrICovIC13ZWJraXQtbWFzazogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIGZpbGw9J2N1cnJlbnRDb2xvcicgd2lkdGg9JzEwMCUnIGhlaWdodD0nMTAwJScgdmlld0JveD0nMCAwIDI0IDI0JyUzRSUzQ3BhdGggZD0nTTIwLjI4NSAybC0xMS4yODUgMTEuNTY3LTUuMjg2LTUuMDExLTMuNzE0IDMuNzE2IDkgOC43MjggMTUtMTUuMjg1eicvJTNFJTNDL3N2ZyUzRVwiKTsgbWFzazogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIGZpbGw9J2N1cnJlbnRDb2xvcicgd2lkdGg9JzEwMCUnIGhlaWdodD0nMTAwJScgdmlld0JveD0nMCAwIDI0IDI0JyUzRSUzQ3BhdGggZD0nTTIwLjI4NSAybC0xMS4yODUgMTEuNTY3LTUuMjg2LTUuMDExLTMuNzE0IDMuNzE2IDkgOC43MjggMTUtMTUuMjg1eicvJTNFJTNDL3N2ZyUzRVwiKTtcbn1cblxuLmhvdiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXF0aS1iZy1ncmF5LTUwKTtcbn1cblxuLmZvYyB7XG4gIG91dGxpbmU6IHZhcigtLXF0aS1mb2N1cy1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLXF0aS1mb2N1cy1jb2xvcik7XG59XG5cbi5hY3Qge1xuICBib3JkZXItY29sb3I6IHZhcigtLXF0aS1iZy1wcmltYXJ5KTsgLyogYm9yZGVyLXByaW1hcnkgKi9cbn1cblxuLnJkbyB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIG91dGxpbmU6IDA7XG4gIGJvcmRlcjogbm9uZTtcbn1cblxuLmRpcyB7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXF0aS1iZy1ncmF5LTEwMCk7XG4gIGNvbG9yOiB2YXIoLS1xdGktdGV4dC1ncmF5LTUwMCk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tcXRpLWJvcmRlci1jb2xvci1ncmF5KTtcbn1cblxuLyogYmFzZSAqL1xuXG5AbGF5ZXIgcXRpLWJhc2Uge1xuICAucXRpLWxheW91dC1yb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGdhcDogMi4xMjc2NTk1NzQ1JTtcbiAgfVxuXG4gIC5xdGktbGF5b3V0LXJvdyBbY2xhc3MqPSdxdGktbGF5b3V0LWNvbCddIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG5cbiAgLnF0aS1sYXlvdXQtY29sMSB7XG4gICAgd2lkdGg6IDYuMzgyOTc4NzIzNCU7XG4gIH1cbiAgLnF0aS1sYXlvdXQtY29sMiB7XG4gICAgd2lkdGg6IDE0Ljg5MzYxNzAyMTMlO1xuICB9XG4gIC5xdGktbGF5b3V0LWNvbDMge1xuICAgIHdpZHRoOiAyMy40MDQyNTUzMTkxJTtcbiAgfVxuICAucXRpLWxheW91dC1jb2w0IHtcbiAgICB3aWR0aDogMzEuOTE0ODkzNjE3JTtcbiAgfVxuICAucXRpLWxheW91dC1jb2w1IHtcbiAgICB3aWR0aDogNDAuNDI1NTMxOTE0OSU7XG4gIH1cbiAgLnF0aS1sYXlvdXQtY29sNiB7XG4gICAgd2lkdGg6IDQ4LjkzNjE3MDIxMjglO1xuICB9XG4gIC5xdGktbGF5b3V0LWNvbDcge1xuICAgIHdpZHRoOiA1Ny40NDY4MDg1MTA2JTtcbiAgfVxuICAucXRpLWxheW91dC1jb2w4IHtcbiAgICB3aWR0aDogNjUuOTU3NDQ2ODA4NSU7XG4gIH1cbiAgLnF0aS1sYXlvdXQtY29sOSB7XG4gICAgd2lkdGg6IDc0LjQ2ODA4NTEwNjQlO1xuICB9XG4gIC5xdGktbGF5b3V0LWNvbDEwIHtcbiAgICB3aWR0aDogODIuOTc4NzIzNDA0MyU7XG4gIH1cbiAgLnF0aS1sYXlvdXQtY29sMTEge1xuICAgIHdpZHRoOiA5MS40ODkzNjE3MDIxJTtcbiAgfVxuICAucXRpLWxheW91dC1jb2wxMiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAucXRpLWxheW91dC1vZmZzZXQxIHtcbiAgICBtYXJnaW4tbGVmdDogOC41MTA2MzgyOTc5JTtcbiAgfVxuICAucXRpLWxheW91dC1vZmZzZXQyIHtcbiAgICBtYXJnaW4tbGVmdDogMTcuMDIxMjc2NTk1NyU7XG4gIH1cbiAgLnF0aS1sYXlvdXQtb2Zmc2V0MyB7XG4gICAgbWFyZ2luLWxlZnQ6IDI1LjUzMTkxNDg5MzYlO1xuICB9XG4gIC5xdGktbGF5b3V0LW9mZnNldDQge1xuICAgIG1hcmdpbi1sZWZ0OiAzNC4wNDI1NTMxOTE1JTtcbiAgfVxuICAucXRpLWxheW91dC1vZmZzZXQ1IHtcbiAgICBtYXJnaW4tbGVmdDogNDIuNTUzMTkxNDg5NCU7XG4gIH1cbiAgLnF0aS1sYXlvdXQtb2Zmc2V0NiB7XG4gICAgbWFyZ2luLWxlZnQ6IDUxLjA2MzgyOTc4NzIlO1xuICB9XG4gIC5xdGktbGF5b3V0LW9mZnNldDcge1xuICAgIG1hcmdpbi1sZWZ0OiA1OS41NzQ0NjgwODUxJTtcbiAgfVxuICAucXRpLWxheW91dC1vZmZzZXQ4IHtcbiAgICBtYXJnaW4tbGVmdDogNjguMDg1MTA2MzgzJTtcbiAgfVxuICAucXRpLWxheW91dC1vZmZzZXQ5IHtcbiAgICBtYXJnaW4tbGVmdDogNzYuNTk1NzQ0NjgwOSU7XG4gIH1cbiAgLnF0aS1sYXlvdXQtb2Zmc2V0MTAge1xuICAgIG1hcmdpbi1sZWZ0OiA4NS4xMDYzODI5Nzg3JTtcbiAgfVxuICAucXRpLWxheW91dC1vZmZzZXQxMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDkzLjYxNzAyMTI3NjYlO1xuICB9XG4gIC5xdGktbGF5b3V0LW9mZnNldDEyIHtcbiAgICBtYXJnaW4tbGVmdDogMTAyLjEyNzY1OTU3NDUlO1xuICB9XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgW2NsYXNzKj0ncXRpLWxheW91dC1jb2wnXSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbn1cblxuW3ZpZXddLFxucXRpLW91dGNvbWUtZGVjbGFyYXRpb24sXG5xdGktcmVzcG9uc2UtZGVjbGFyYXRpb24ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5bdmlld10uc2hvdyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG46aG9zdCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbiosXG4qOmJlZm9yZSxcbio6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBpbmhlcml0O1xufVxuXG5bcG9wb3Zlcl0ge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGluc2V0OiAwO1xuICBtYXJnaW46IGF1dG87XG4gIGJvcmRlcjogc29saWQ7XG4gIHBhZGRpbmc6IDAuMjVlbTtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIGNvbG9yOiBDYW52YXNUZXh0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBDYW52YXM7XG59XG5cbltwb3BvdmVydGFyZ2V0XSB7XG4gIGFsbDogdW5zZXQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLyogY29tcG9uZW50cyAqL1xuXG5AbGF5ZXIgcXRpLWNvbXBvbmVudHMge1xuICBxdGktY2hvaWNlLWludGVyYWN0aW9uIHtcbiAgICAmLnF0aS1pbnB1dC1jb250cm9sLWhpZGRlbiB7XG4gICAgICAmIHF0aS1zaW1wbGUtY2hvaWNlIHtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcXRpLWJnLWdyYXktNTApO1xuICAgICAgICB9XG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgIG91dGxpbmU6IHZhcigtLXF0aS1mb2N1cy1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLXF0aS1mb2N1cy1jb2xvcik7XG4gICAgICAgIH1cbiAgICAgICAgJjo6cGFydChjaCkge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgJlthcmlhLWNoZWNrZWQ9J3RydWUnXSB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1xdGktYmctcHJpbWFyeSk7XG4gICAgICAgIH1cbiAgICAgICAgJlthcmlhLXJlYWRvbmx5PSd0cnVlJ10ge1xuICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICBvdXRsaW5lOiAwO1xuICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICAmW2FyaWEtZGlzYWJsZWQ9J3RydWUnXSB7XG4gICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1xdGktYmctZ3JheS0xMDApO1xuICAgICAgICAgIGNvbG9yOiB2YXIoLS1xdGktdGV4dC1ncmF5LTUwMCk7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1xdGktYm9yZGVyLWNvbG9yLWdyYXkpO1xuICAgICAgICB9XG4gICAgICAgIGJvcmRlcjogdmFyKC0tcXRpLWJvcmRlci10aGlja25lc3MpIHZhcigtLXF0aS1ib3JkZXItc3R5bGUpIHZhcigtLXF0aS1ib3JkZXItY29sb3ItZ3JheSk7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXF0aS1ib3JkZXItcmFkaXVzLW1kKTtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcXRpLXBhZGRpbmctc20pIHZhcigtLXF0aS1wYWRkaW5nLW1kKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXF0aS1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgIGJvcmRlcjogdmFyKC0tcXRpLWJvcmRlci10aGlja25lc3MpIHZhcigtLXF0aS1ib3JkZXItc3R5bGUpIHZhcigtLXF0aS1ib3JkZXItY29sb3ItZ3JheSk7XG4gICAgICAgIG91dGxpbmU6IG5vbmVcbiAgICAgIH1cbiAgICB9XG4gICAgJjpub3QoLnF0aS1pbnB1dC1jb250cm9sLWhpZGRlbikge1xuICAgICAgJiBxdGktc2ltcGxlLWNob2ljZSB7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXF0aS1iZy1ncmF5LTUwKTtcbiAgICAgICAgfVxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICBvdXRsaW5lOiB2YXIoLS1xdGktZm9jdXMtYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1xdGktZm9jdXMtY29sb3IpO1xuICAgICAgICB9XG4gICAgICAgICZbYXJpYS1jaGVja2VkPSd0cnVlJ10ge1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcXRpLWJnLXByaW1hcnkpO1xuICAgICAgICB9XG4gICAgICAgICZbYXJpYS1yZWFkb25seT0ndHJ1ZSddIHtcbiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICAgICAgb3V0bGluZTogMDtcbiAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgJlthcmlhLWRpc2FibGVkPSd0cnVlJ10ge1xuICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcXRpLWJnLWdyYXktMTAwKTtcbiAgICAgICAgICBjb2xvcjogdmFyKC0tcXRpLXRleHQtZ3JheS01MDApO1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcXRpLWJvcmRlci1jb2xvci1ncmF5KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBhcnQoY2hhKSB7XG4gICAgICAgICAgd2lkdGg6IGNhbGModmFyKC0tcXRpLWZvcm0tc2l6ZSkgLSA0cHgpO1xuICAgICAgICAgIGhlaWdodDogY2FsYyh2YXIoLS1xdGktZm9ybS1zaXplKSAtIDRweCk7XG4gICAgICAgIH1cbiAgICAgICAgJltyb2xlPSdyYWRpbyddOjpwYXJ0KGNoKSB7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcXRpLWJvcmRlci1yYWRpdXMtZnVsbCk7XG4gICAgICAgICAgd2lkdGg6IHZhcigtLXF0aS1mb3JtLXNpemUpO1xuICAgICAgICAgIGhlaWdodDogdmFyKC0tcXRpLWZvcm0tc2l6ZSk7XG4gICAgICAgICAgYWxpZ24tc2VsZjogMTtcbiAgICAgICAgICBib3JkZXI6IHZhcigtLXF0aS1ib3JkZXItdGhpY2tuZXNzKSB2YXIoLS1xdGktYm9yZGVyLXN0eWxlKSB2YXIoLS1xdGktYm9yZGVyLWNvbG9yLWdyYXkpO1xuICAgICAgICAgIGJvcmRlcjogdmFyKC0tcXRpLWJvcmRlci10aGlja25lc3MpIHZhcigtLXF0aS1ib3JkZXItc3R5bGUpIHZhcigtLXF0aS1ib3JkZXItY29sb3ItZ3JheSk7XG4gICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICAmW3JvbGU9J3JhZGlvJ11bYXJpYS1jaGVja2VkPSd0cnVlJ106OnBhcnQoY2hhKSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcXRpLWJnLXByaW1hcnkpO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXF0aS1ib3JkZXItcmFkaXVzLWZ1bGwpO1xuICAgICAgICB9XG4gICAgICAgICZbcm9sZT0nY2hlY2tib3gnXTo6cGFydChjaCkge1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXF0aS1ib3JkZXItcmFkaXVzLW1kKTtcbiAgICAgICAgICB3aWR0aDogdmFyKC0tcXRpLWZvcm0tc2l6ZSk7XG4gICAgICAgICAgaGVpZ2h0OiB2YXIoLS1xdGktZm9ybS1zaXplKTtcbiAgICAgICAgICBhbGlnbi1zZWxmOiAxO1xuICAgICAgICAgIGJvcmRlcjogdmFyKC0tcXRpLWJvcmRlci10aGlja25lc3MpIHZhcigtLXF0aS1ib3JkZXItc3R5bGUpIHZhcigtLXF0aS1ib3JkZXItY29sb3ItZ3JheSk7XG4gICAgICAgICAgYm9yZGVyOiB2YXIoLS1xdGktYm9yZGVyLXRoaWNrbmVzcykgdmFyKC0tcXRpLWJvcmRlci1zdHlsZSkgdmFyKC0tcXRpLWJvcmRlci1jb2xvci1ncmF5KTtcbiAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICB9XG4gICAgICAgICZbcm9sZT0nY2hlY2tib3gnXVthcmlhLWNoZWNrZWQ9J3RydWUnXTo6cGFydChjaGEpIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1xdGktYmctcHJpbWFyeSk7XG4gICAgICAgICAgLXdlYmtpdC1tYXNrLWltYWdlOiB2YXIoLS1jaGVjay1tYXNrKTtcbiAgICAgICAgICAgICAgICAgIG1hc2staW1hZ2U6IHZhcigtLWNoZWNrLW1hc2spO1xuICAgICAgICAgIC13ZWJraXQtbWFzazogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIGZpbGw9J2N1cnJlbnRDb2xvcicgd2lkdGg9JzEwMCUnIGhlaWdodD0nMTAwJScgdmlld0JveD0nMCAwIDI0IDI0JyUzRSUzQ3BhdGggZD0nTTIwLjI4NSAybC0xMS4yODUgMTEuNTY3LTUuMjg2LTUuMDExLTMuNzE0IDMuNzE2IDkgOC43MjggMTUtMTUuMjg1eicvJTNFJTNDL3N2ZyUzRVwiKTtcbiAgICAgICAgICAgICAgICAgIG1hc2s6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyBmaWxsPSdjdXJyZW50Q29sb3InIHdpZHRoPScxMDAlJyBoZWlnaHQ9JzEwMCUnIHZpZXdCb3g9JzAgMCAyNCAyNCclM0UlM0NwYXRoIGQ9J00yMC4yODUgMmwtMTEuMjg1IDExLjU2Ny01LjI4Ni01LjAxMS0zLjcxNCAzLjcxNiA5IDguNzI4IDE1LTE1LjI4NXonLyUzRSUzQy9zdmclM0VcIik7XG4gICAgICAgIH1cbiAgICAgICAgZ2FwOiAwLjVyZW07XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXF0aS1wYWRkaW5nLW1kKSB2YXIoLS1xdGktcGFkZGluZy1tZCk7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXF0aS1ib3JkZXItcmFkaXVzLW1kKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyXG4gICAgICB9XG4gICAgfVxuICAgICYgcXRpLXNpbXBsZS1jaG9pY2Uge1xuICAgICAgJltkYXRhLWNvcnJlY3QtcmVzcG9uc2U9J3RydWUnXSB7XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBjb250ZW50OiAnXFwwMjcxNCc7XG4gICAgICAgICAgY29sb3I6ICMxNmEzNGE7IC8qIHRleHQtZ3JlZW4tNjAwICovXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmIHF0aS1zaW1wbGUtY2hvaWNlID4gcCB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgIH1cbiAgfVxuXG4gIHF0aS10ZXh0LWVudHJ5LWludGVyYWN0aW9uIHtcbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXF0aS1iZy1ncmF5LTUwKTtcbiAgICB9XG4gICAgJjpmb2N1cy13aXRoaW4ge1xuICAgICAgb3V0bGluZTogdmFyKC0tcXRpLWZvY3VzLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tcXRpLWZvY3VzLWNvbG9yKTtcbiAgICB9XG4gICAgJjo6cGFydChpbnB1dCkge1xuICAgICAgYm9yZGVyOiB2YXIoLS1xdGktYm9yZGVyLXRoaWNrbmVzcykgdmFyKC0tcXRpLWJvcmRlci1zdHlsZSkgdmFyKC0tcXRpLWJvcmRlci1jb2xvci1ncmF5KTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgY3Vyc29yOiB0ZXh0O1xuICAgICAgcGFkZGluZzogdmFyKC0tcXRpLXBhZGRpbmctbGcpO1xuICAgICAgYmFja2dyb3VuZDogdW5zZXQ7XG4gICAgICBib3JkZXI6IHZhcigtLXF0aS1ib3JkZXItdGhpY2tuZXNzKSB2YXIoLS1xdGktYm9yZGVyLXN0eWxlKSB2YXIoLS1xdGktYm9yZGVyLWNvbG9yLWdyYXkpO1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG4gIH1cblxuICBxdGktZXh0ZW5kZWQtdGV4dC1pbnRlcmFjdGlvbiB7XG4gICAgJjo6cGFydCh0ZXh0YXJlYSkge1xuICAgICAgYm9yZGVyOiB2YXIoLS1xdGktYm9yZGVyLXRoaWNrbmVzcykgdmFyKC0tcXRpLWJvcmRlci1zdHlsZSkgdmFyKC0tcXRpLWJvcmRlci1jb2xvci1ncmF5KTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgY3Vyc29yOiB0ZXh0O1xuICAgICAgcGFkZGluZzogdmFyKC0tcXRpLXBhZGRpbmctbGcpO1xuICAgICAgYmFja2dyb3VuZDogdW5zZXQ7XG4gICAgICBib3JkZXI6IHZhcigtLXF0aS1ib3JkZXItdGhpY2tuZXNzKSB2YXIoLS1xdGktYm9yZGVyLXN0eWxlKSB2YXIoLS1xdGktYm9yZGVyLWNvbG9yLWdyYXkpO1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1xdGktYmctZ3JheS01MCk7XG4gICAgfVxuICAgICY6Zm9jdXMtd2l0aGluIHtcbiAgICAgIG91dGxpbmU6IHZhcigtLXF0aS1mb2N1cy1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLXF0aS1mb2N1cy1jb2xvcik7XG4gICAgfVxuICB9XG5cbiAgcXRpLWdhcC1tYXRjaC1pbnRlcmFjdGlvbiB7XG4gICAgJiBxdGktZ2FwLXRleHQge1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcXRpLWJnLWdyYXktNTApO1xuICAgICAgfVxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IHZhcigtLXF0aS1mb2N1cy1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLXF0aS1mb2N1cy1jb2xvcik7XG4gICAgICB9XG4gICAgICBib3JkZXI6IHZhcigtLXF0aS1ib3JkZXItdGhpY2tuZXNzKSB2YXIoLS1xdGktYm9yZGVyLXN0eWxlKSB2YXIoLS1xdGktYm9yZGVyLWNvbG9yLWdyYXkpO1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIHBhZGRpbmc6IHZhcigtLXF0aS1wYWRkaW5nLW1kKSB2YXIoLS1xdGktcGFkZGluZy1sZykgdmFyKC0tcXRpLXBhZGRpbmctbWQpIHZhcigtLXF0aS1wYWRkaW5nLXhsKTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXF0aS1ib3JkZXItcmFkaXVzLW1kKTtcbiAgICAgIGN1cnNvcjogZ3JhYjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXF0aS1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICBib3JkZXI6IHZhcigtLXF0aS1ib3JkZXItdGhpY2tuZXNzKSB2YXIoLS1xdGktYm9yZGVyLXN0eWxlKSB2YXIoLS1xdGktYm9yZGVyLWNvbG9yLWdyYXkpO1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudChcbiAgICBjaXJjbGUgYXQgY2VudGVyLFxuICAgIHJnYmEoMCwgMCwgMCwgMC4xKSAwLFxuICAgIHJnYigwLCAwLCAwLCAwLjEpIDJweCxcbiAgICB3aGl0ZSAycHgsXG4gICAgd2hpdGUgMTAwJVxuICApO1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC15O1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdCAycHg7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDE0cHggOHB4XG4gICAgfVxuICAgICYgcXRpLWdhcCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgIHdpZHRoOiA4cmVtOyAvKiB3LTMyICovXG4gICAgICAmOmVtcHR5OmFmdGVyIHtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcXRpLXBhZGRpbmctbWQpIHZhcigtLXF0aS1wYWRkaW5nLWxnKTsgLyogUGFkZGluZyBzaG9ydGhhbmQgKi9cbiAgICAgICAgY29udGVudDogJ1xcMDAwMGEwJzsgLyogd2hlbiBlbXB0eSwgcHV0IGEgc3BhY2UgaW4gaXQgKi9cbiAgICAgIH1cbiAgICAgICY6bm90KDplbXB0eSkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICB9XG4gICAgICAmOm5vdCg6ZW1wdHkpID4gKiB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDApOyAvKiByb3RhdGUtMCAqL1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggI2U1ZTdlYjsgLyogcmluZy1ncmF5LTIwMCAqL1xuICAgICAgfVxuICAgICAgYm9yZGVyOiB2YXIoLS1xdGktYm9yZGVyLXRoaWNrbmVzcykgdmFyKC0tcXRpLWJvcmRlci1zdHlsZSkgdmFyKC0tcXRpLWJvcmRlci1jb2xvci1ncmF5KTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1xdGktYm9yZGVyLXJhZGl1cy1sZyk7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1xdGktYmctZ3JheS01MCk7XG4gICAgICBtYXJnaW46IDFweDtcbiAgICAgIGJvcmRlcjogdmFyKC0tcXRpLWJvcmRlci10aGlja25lc3MpIHZhcigtLXF0aS1ib3JkZXItc3R5bGUpIHZhcigtLXF0aS1ib3JkZXItY29sb3ItZ3JheSk7XG4gICAgICBvdXRsaW5lOiBub25lXG4gICAgfVxuICB9XG5cbiAgcXRpLWhvdHNwb3QtaW50ZXJhY3Rpb24ge1xuICAgICYgcXRpLWhvdHNwb3QtY2hvaWNlIHtcbiAgICAgICZbc2hhcGU9J2NpcmNsZSddIHtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcXRpLWJnLWdyYXktNTApO1xuICAgICAgICB9XG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgIG91dGxpbmU6IHZhcigtLXF0aS1mb2N1cy1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLXF0aS1mb2N1cy1jb2xvcik7XG4gICAgICAgIH1cbiAgICAgICAgJlthcmlhLWNoZWNrZWQ9J3RydWUnXSB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1xdGktYmctcHJpbWFyeSk7XG4gICAgICAgIH1cbiAgICAgICAgJlthcmlhLXJlYWRvbmx5PSd0cnVlJ10ge1xuICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICBvdXRsaW5lOiAwO1xuICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICAmW2FyaWEtZGlzYWJsZWQ9J3RydWUnXSB7XG4gICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1xdGktYmctZ3JheS0xMDApO1xuICAgICAgICAgIGNvbG9yOiB2YXIoLS1xdGktdGV4dC1ncmF5LTUwMCk7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1xdGktYm9yZGVyLWNvbG9yLWdyYXkpO1xuICAgICAgICB9XG4gICAgICAgIGJvcmRlcjogdmFyKC0tcXRpLWJvcmRlci10aGlja25lc3MpIHZhcigtLXF0aS1ib3JkZXItc3R5bGUpIHZhcigtLXF0aS1ib3JkZXItY29sb3ItZ3JheSk7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBib3JkZXI6IHZhcigtLXF0aS1ib3JkZXItdGhpY2tuZXNzKSB2YXIoLS1xdGktYm9yZGVyLXN0eWxlKSB2YXIoLS1xdGktYm9yZGVyLWNvbG9yLWdyYXkpO1xuICAgICAgICBvdXRsaW5lOiBub25lXG4gICAgICB9XG4gICAgICAmW3NoYXBlPSdyZWN0J10ge1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1xdGktYmctZ3JheS01MCk7XG4gICAgICAgIH1cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgb3V0bGluZTogdmFyKC0tcXRpLWZvY3VzLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tcXRpLWZvY3VzLWNvbG9yKTtcbiAgICAgICAgfVxuICAgICAgICAmW2FyaWEtY2hlY2tlZD0ndHJ1ZSddIHtcbiAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXF0aS1iZy1wcmltYXJ5KTtcbiAgICAgICAgfVxuICAgICAgICAmW2FyaWEtcmVhZG9ubHk9J3RydWUnXSB7XG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgICAgIG91dGxpbmU6IDA7XG4gICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG4gICAgICAgICZbYXJpYS1kaXNhYmxlZD0ndHJ1ZSddIHtcbiAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXF0aS1iZy1ncmF5LTEwMCk7XG4gICAgICAgICAgY29sb3I6IHZhcigtLXF0aS10ZXh0LWdyYXktNTAwKTtcbiAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXF0aS1ib3JkZXItY29sb3ItZ3JheSk7XG4gICAgICAgIH1cbiAgICAgICAgYm9yZGVyOiB2YXIoLS1xdGktYm9yZGVyLXRoaWNrbmVzcykgdmFyKC0tcXRpLWJvcmRlci1zdHlsZSkgdmFyKC0tcXRpLWJvcmRlci1jb2xvci1ncmF5KTtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGJvcmRlcjogdmFyKC0tcXRpLWJvcmRlci10aGlja25lc3MpIHZhcigtLXF0aS1ib3JkZXItc3R5bGUpIHZhcigtLXF0aS1ib3JkZXItY29sb3ItZ3JheSk7XG4gICAgICAgIG91dGxpbmU6IG5vbmVcbiAgICAgIH1cbiAgICAgICZbc2hhcGU9J3BvbHknXSB7XG4gICAgICAgICY6aG92ZXI6OmFmdGVyIHtcbiAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgYmFja2dyb3VuZDogcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgIDQ1ZGVnLFxuICAgICAgICAgICAgdmFyKC0tcXRpLXByaW1hcnkpLFxuICAgICAgICAgICAgdmFyKC0tcXRpLXByaW1hcnkpIDVweCxcbiAgICAgICAgICAgIHRyYW5zcGFyZW50IDVweCxcbiAgICAgICAgICAgIHRyYW5zcGFyZW50IDEwcHhcbiAgICAgICAgICApO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcXRpLWJnLXByaW1hcnkpO1xuICAgICAgICB9XG5cbiAgICAgICAgJlthcmlhLWNoZWNrZWQ9J3RydWUnXTphZnRlciB7XG4gICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgIGJhY2tncm91bmQ6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICA0NWRlZyxcbiAgICAgICAgICAgIHRyYW5zcGFyZW50LFxuICAgICAgICAgICAgdHJhbnNwYXJlbnQgNXB4LFxuICAgICAgICAgICAgdmFyKC0tcXRpLXByaW1hcnkpIDVweCxcbiAgICAgICAgICAgIHZhcigtLXF0aS1wcmltYXJ5KSAxMHB4XG4gICAgICAgICAgKTtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXF0aS1iZy1wcmltYXJ5KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbYXJpYS1jaGVja2VkPSd0cnVlJ10ge1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcXRpLWJnLXByaW1hcnkpO1xuICAgICAgICB9XG4gICAgICAgICZbYXJpYS1yZWFkb25seT0ndHJ1ZSddIHtcbiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICAgICAgb3V0bGluZTogMDtcbiAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgJlthcmlhLWRpc2FibGVkPSd0cnVlJ10ge1xuICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcXRpLWJnLWdyYXktMTAwKTtcbiAgICAgICAgICBjb2xvcjogdmFyKC0tcXRpLXRleHQtZ3JheS01MDApO1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcXRpLWJvcmRlci1jb2xvci1ncmF5KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHF0aS1ob3R0ZXh0LWludGVyYWN0aW9uIHtcbiAgICBxdGktaG90dGV4dCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuICAgIC8qICY6bm90KC5xdGktaW5wdXQtY29udHJvbC1oaWRkZW4pLFxuICAgICY6bm90KC5xdGktdW5zZWxlY3RlZC1oaWRkZW4pIHsgKi9cbiAgICBxdGktaG90dGV4dCB7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcXRpLWJnLWdyYXktNTApO1xuICAgICAgfVxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IHZhcigtLXF0aS1mb2N1cy1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLXF0aS1mb2N1cy1jb2xvcik7XG4gICAgICB9XG4gICAgICAmOjpwYXJ0KGNoYSkge1xuICAgICAgICB3aWR0aDogY2FsYyh2YXIoLS1xdGktZm9ybS1zaXplKSAtIDRweCk7XG4gICAgICAgIGhlaWdodDogY2FsYyh2YXIoLS1xdGktZm9ybS1zaXplKSAtIDRweCk7XG4gICAgICB9XG4gICAgICAmW3JvbGU9J3JhZGlvJ106OnBhcnQoY2gpIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcXRpLWJvcmRlci1yYWRpdXMtZnVsbCk7XG4gICAgICAgIHdpZHRoOiB2YXIoLS1xdGktZm9ybS1zaXplKTtcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS1xdGktZm9ybS1zaXplKTtcbiAgICAgICAgYWxpZ24tc2VsZjogMTtcbiAgICAgICAgYm9yZGVyOiB2YXIoLS1xdGktYm9yZGVyLXRoaWNrbmVzcykgdmFyKC0tcXRpLWJvcmRlci1zdHlsZSkgdmFyKC0tcXRpLWJvcmRlci1jb2xvci1ncmF5KTtcbiAgICAgICAgYm9yZGVyOiB2YXIoLS1xdGktYm9yZGVyLXRoaWNrbmVzcykgdmFyKC0tcXRpLWJvcmRlci1zdHlsZSkgdmFyKC0tcXRpLWJvcmRlci1jb2xvci1ncmF5KTtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIH1cbiAgICAgICZbcm9sZT0ncmFkaW8nXVthcmlhLWNoZWNrZWQ9J3RydWUnXTo6cGFydChjaGEpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcXRpLWJnLXByaW1hcnkpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1xdGktYm9yZGVyLXJhZGl1cy1mdWxsKTtcbiAgICAgIH1cbiAgICAgICZbcm9sZT0nY2hlY2tib3gnXTo6cGFydChjaCkge1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1xdGktYm9yZGVyLXJhZGl1cy1tZCk7XG4gICAgICAgIHdpZHRoOiB2YXIoLS1xdGktZm9ybS1zaXplKTtcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS1xdGktZm9ybS1zaXplKTtcbiAgICAgICAgYWxpZ24tc2VsZjogMTtcbiAgICAgICAgYm9yZGVyOiB2YXIoLS1xdGktYm9yZGVyLXRoaWNrbmVzcykgdmFyKC0tcXRpLWJvcmRlci1zdHlsZSkgdmFyKC0tcXRpLWJvcmRlci1jb2xvci1ncmF5KTtcbiAgICAgICAgYm9yZGVyOiB2YXIoLS1xdGktYm9yZGVyLXRoaWNrbmVzcykgdmFyKC0tcXRpLWJvcmRlci1zdHlsZSkgdmFyKC0tcXRpLWJvcmRlci1jb2xvci1ncmF5KTtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIH1cbiAgICAgICZbcm9sZT0nY2hlY2tib3gnXVthcmlhLWNoZWNrZWQ9J3RydWUnXTo6cGFydChjaGEpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcXRpLWJnLXByaW1hcnkpO1xuICAgICAgICAtd2Via2l0LW1hc2staW1hZ2U6IHZhcigtLWNoZWNrLW1hc2spO1xuICAgICAgICAgICAgICAgIG1hc2staW1hZ2U6IHZhcigtLWNoZWNrLW1hc2spO1xuICAgICAgICAtd2Via2l0LW1hc2s6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyBmaWxsPSdjdXJyZW50Q29sb3InIHdpZHRoPScxMDAlJyBoZWlnaHQ9JzEwMCUnIHZpZXdCb3g9JzAgMCAyNCAyNCclM0UlM0NwYXRoIGQ9J00yMC4yODUgMmwtMTEuMjg1IDExLjU2Ny01LjI4Ni01LjAxMS0zLjcxNCAzLjcxNiA5IDguNzI4IDE1LTE1LjI4NXonLyUzRSUzQy9zdmclM0VcIik7XG4gICAgICAgICAgICAgICAgbWFzazogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIGZpbGw9J2N1cnJlbnRDb2xvcicgd2lkdGg9JzEwMCUnIGhlaWdodD0nMTAwJScgdmlld0JveD0nMCAwIDI0IDI0JyUzRSUzQ3BhdGggZD0nTTIwLjI4NSAybC0xMS4yODUgMTEuNTY3LTUuMjg2LTUuMDExLTMuNzE0IDMuNzE2IDkgOC43MjggMTUtMTUuMjg1eicvJTNFJTNDL3N2ZyUzRVwiKTtcbiAgICAgIH1cbiAgICAgIGdhcDogMC41cmVtO1xuICAgICAgcGFkZGluZzogdmFyKC0tcXRpLXBhZGRpbmctbWQpIHZhcigtLXF0aS1wYWRkaW5nLW1kKTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1xdGktYm9yZGVyLXJhZGl1cy1tZCk7XG4gICAgICBjdXJzb3I6IHBvaW50ZXJcbiAgICB9XG4gICAgLyogfSAqL1xuXG4gICAgJi5xdGktaW5wdXQtY29udHJvbC1oaWRkZW4ge1xuICAgICAgcXRpLWhvdHRleHQge1xuICAgICAgICAvKiAtLXF0aS1wYWRkaW5nLW1kOiAwLjFyZW07XG4gICAgICAgIC0tcXRpLXBhZGRpbmctbGc6IDAuMnJlbTtcbiAgICAgICAgLS1xdGktYm9yZGVyLXJhZGl1cy1tZDogMC4zcmVtO1xuICAgICAgICAtLXF0aS1ib3JkZXItdGhpY2tuZXNzOiAxcHg7XG4gICAgICAgIC0tcXRpLWZvbnQtd2VpZ2h0LXNlbWlib2xkOiA0MDA7ICovXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXF0aS1iZy1ncmF5LTUwKTtcbiAgICAgICAgfVxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICBvdXRsaW5lOiB2YXIoLS1xdGktZm9jdXMtYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1xdGktZm9jdXMtY29sb3IpO1xuICAgICAgICB9XG4gICAgICAgIC8qIEBsYXllciBxdGktdmFyaWFudHMgeyAqL1xuICAgICAgICAmOjpwYXJ0KGNoKSB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICAmW2FyaWEtY2hlY2tlZD0ndHJ1ZSddIHtcbiAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXF0aS1iZy1wcmltYXJ5KTtcbiAgICAgICAgfVxuICAgICAgICAmW2FyaWEtcmVhZG9ubHk9J3RydWUnXSB7XG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgICAgIG91dGxpbmU6IDA7XG4gICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG4gICAgICAgICZbYXJpYS1kaXNhYmxlZD0ndHJ1ZSddIHtcbiAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXF0aS1iZy1ncmF5LTEwMCk7XG4gICAgICAgICAgY29sb3I6IHZhcigtLXF0aS10ZXh0LWdyYXktNTAwKTtcbiAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXF0aS1ib3JkZXItY29sb3ItZ3JheSk7XG4gICAgICAgIH1cbiAgICAgICAgYm9yZGVyOiB2YXIoLS1xdGktYm9yZGVyLXRoaWNrbmVzcykgdmFyKC0tcXRpLWJvcmRlci1zdHlsZSkgdmFyKC0tcXRpLWJvcmRlci1jb2xvci1ncmF5KTtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcXRpLWJvcmRlci1yYWRpdXMtbWQpO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1xdGktcGFkZGluZy1zbSkgdmFyKC0tcXRpLXBhZGRpbmctbWQpO1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tcXRpLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgYm9yZGVyOiB2YXIoLS1xdGktYm9yZGVyLXRoaWNrbmVzcykgdmFyKC0tcXRpLWJvcmRlci1zdHlsZSkgdmFyKC0tcXRpLWJvcmRlci1jb2xvci1ncmF5KTtcbiAgICAgICAgb3V0bGluZTogbm9uZVxuICAgICAgfVxuICAgICAgLyogfSAqL1xuICAgIH1cblxuICAgICYucXRpLXVuc2VsZWN0ZWQtaGlkZGVuIHtcbiAgICAgIHF0aS1ob3R0ZXh0IHtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcXRpLWJnLWdyYXktNTApO1xuICAgICAgICB9XG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgIG91dGxpbmU6IHZhcigtLXF0aS1mb2N1cy1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLXF0aS1mb2N1cy1jb2xvcik7XG4gICAgICAgIH1cbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAmOjpwYXJ0KGNoKSB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICAmW2FyaWEtY2hlY2tlZD0ndHJ1ZSddIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1xdGktcHJpbWFyeS1saWdodCk7IC8qIGJnLWJsdWUtMjAwICovXG4gICAgICAgIH1cbiAgICAgICAgJlthcmlhLXJlYWRvbmx5PSd0cnVlJ10ge1xuICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICBvdXRsaW5lOiAwO1xuICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICAmW2FyaWEtZGlzYWJsZWQ9J3RydWUnXSB7XG4gICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1xdGktYmctZ3JheS0xMDApO1xuICAgICAgICAgIGNvbG9yOiB2YXIoLS1xdGktdGV4dC1ncmF5LTUwMCk7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1xdGktYm9yZGVyLWNvbG9yLWdyYXkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcXRpLWlubGluZS1jaG9pY2UtaW50ZXJhY3Rpb24ge1xuICAgICY6OnBhcnQoc2VsZWN0KSB7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcXRpLWJnLWdyYXktNTApO1xuICAgICAgfVxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IHZhcigtLXF0aS1mb2N1cy1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLXF0aS1mb2N1cy1jb2xvcik7XG4gICAgICB9XG4gICAgICBib3JkZXI6IHZhcigtLXF0aS1ib3JkZXItdGhpY2tuZXNzKSB2YXIoLS1xdGktYm9yZGVyLXN0eWxlKSB2YXIoLS1xdGktYm9yZGVyLWNvbG9yLWdyYXkpO1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXF0aS1ib3JkZXItcmFkaXVzLW1kKTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgIHBhZGRpbmc6IHZhcigtLXF0aS1wYWRkaW5nLW1kKSAxLjc1cmVtIHZhcigtLXF0aS1wYWRkaW5nLW1kKSB2YXIoLS1xdGktcGFkZGluZy1sZyk7XG4gICAgICBib3JkZXI6IHZhcigtLXF0aS1ib3JkZXItdGhpY2tuZXNzKSB2YXIoLS1xdGktYm9yZGVyLXN0eWxlKSB2YXIoLS1xdGktYm9yZGVyLWNvbG9yLWdyYXkpO1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIGJhY2tncm91bmQ6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgZmlsbD0nY3VycmVudENvbG9yJyB3aWR0aD0nMjInIHZpZXdCb3g9JzAgMCAyMCAyMCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyBhcmlhLWhpZGRlbj0ndHJ1ZSclM0UlM0NwYXRoIGNsaXAtcnVsZT0nZXZlbm9kZCcgZmlsbC1ydWxlPSdldmVub2RkJyBkPSdNNS4yMyA3LjIxYS43NS43NSAwIDAxMS4wNi4wMkwxMCAxMS4xNjhsMy43MS0zLjkzOGEuNzUuNzUgMCAxMTEuMDggMS4wNGwtNC4yNSA0LjVhLjc1Ljc1IDAgMDEtMS4wOCAwbC00LjI1LTQuNWEuNzUuNzUgMCAwMS4wMi0xLjA2eiclM0UlM0MvcGF0aCUzRSUzQy9zdmclM0VcIilcbiAgICBuby1yZXBlYXQgY2VudGVyIHJpZ2h0IDZweFxuICAgIH1cbiAgfVxuXG4gIHF0aS1tYXRjaC1pbnRlcmFjdGlvbjpub3QoLnF0aS1tYXRjaC10YWJ1bGFyKSB7XG4gICAgJiBxdGktc2ltcGxlLW1hdGNoLXNldDpmaXJzdC1vZi10eXBlIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBnYXA6IHZhcigtLXF0aS1nYXAtc2l6ZSk7IC8qIGdhcC0yICovXG4gICAgICBwYWRkaW5nLWJvdHRvbTogMXJlbTsgLyogcGItNCAqL1xuXG4gICAgICAmIHF0aS1zaW1wbGUtYXNzb2NpYWJsZS1jaG9pY2Uge1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1xdGktYmctZ3JheS01MCk7XG4gICAgICAgIH1cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgb3V0bGluZTogdmFyKC0tcXRpLWZvY3VzLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tcXRpLWZvY3VzLWNvbG9yKTtcbiAgICAgICAgfVxuICAgICAgICBib3JkZXI6IHZhcigtLXF0aS1ib3JkZXItdGhpY2tuZXNzKSB2YXIoLS1xdGktYm9yZGVyLXN0eWxlKSB2YXIoLS1xdGktYm9yZGVyLWNvbG9yLWdyYXkpO1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1xdGktcGFkZGluZy1tZCkgdmFyKC0tcXRpLXBhZGRpbmctbGcpIHZhcigtLXF0aS1wYWRkaW5nLW1kKSB2YXIoLS1xdGktcGFkZGluZy14bCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXF0aS1ib3JkZXItcmFkaXVzLW1kKTtcbiAgICAgICAgY3Vyc29yOiBncmFiO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXF0aS1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgIGJvcmRlcjogdmFyKC0tcXRpLWJvcmRlci10aGlja25lc3MpIHZhcigtLXF0aS1ib3JkZXItc3R5bGUpIHZhcigtLXF0aS1ib3JkZXItY29sb3ItZ3JheSk7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudChcbiAgICBjaXJjbGUgYXQgY2VudGVyLFxuICAgIHJnYmEoMCwgMCwgMCwgMC4xKSAwLFxuICAgIHJnYigwLCAwLCAwLCAwLjEpIDJweCxcbiAgICB3aGl0ZSAycHgsXG4gICAgd2hpdGUgMTAwJVxuICApO1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXk7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgMnB4O1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDE0cHggOHB4XG4gICAgICB9XG4gICAgfVxuXG4gICAgJiBxdGktc2ltcGxlLW1hdGNoLXNldDpsYXN0LW9mLXR5cGUge1xuICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIGdyaWQtYXV0by1jb2x1bW5zOiAxZnI7IC8qIGF1dG8tY29scy1mciAqL1xuICAgICAgZ3JpZC1hdXRvLWZsb3c6IGNvbHVtbjsgLyogZ3JpZC1mbG93LWNvbCAqL1xuICAgICAgZ2FwOiB2YXIoLS1xdGktZ2FwLXNpemUpOyAvKiBnYXAtMiAqL1xuICAgICAgd2lkdGg6IDEwMCU7IC8qIHctZnVsbCAqL1xuXG4gICAgICAmIHF0aS1zaW1wbGUtYXNzb2NpYWJsZS1jaG9pY2Uge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgfVxuXG4gICAgICAmIHF0aS1zaW1wbGUtYXNzb2NpYWJsZS1jaG9pY2VbZW5hYmxlZF0ge1xuICAgICAgICBvdXRsaW5lOiB2YXIoLS1xdGktZm9jdXMtYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1xdGktZm9jdXMtY29sb3IpO1xuICAgICAgfVxuXG4gICAgICAmIHF0aS1zaW1wbGUtYXNzb2NpYWJsZS1jaG9pY2VbYWN0aXZlXSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcXRpLWJnLXByaW1hcnkpO1xuICAgICAgfVxuXG4gICAgICAmIHF0aS1zaW1wbGUtYXNzb2NpYWJsZS1jaG9pY2U6OnBhcnQoZHJvcHNsb3QpIHtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcXRpLWJnLWdyYXktNTApO1xuICAgICAgICB9XG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgIG91dGxpbmU6IHZhcigtLXF0aS1mb2N1cy1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLXF0aS1mb2N1cy1jb2xvcik7XG4gICAgICAgIH1cbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgbWluLWhlaWdodDogNnJlbTtcbiAgICAgICAgYm9yZGVyOiB2YXIoLS1xdGktYm9yZGVyLXRoaWNrbmVzcykgdmFyKC0tcXRpLWJvcmRlci1zdHlsZSkgdmFyKC0tcXRpLWJvcmRlci1jb2xvci1ncmF5KTtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcXRpLWJvcmRlci1yYWRpdXMtbGcpO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXF0aS1iZy1ncmF5LTUwKTtcbiAgICAgICAgbWFyZ2luOiAxcHg7XG4gICAgICAgIGJvcmRlcjogdmFyKC0tcXRpLWJvcmRlci10aGlja25lc3MpIHZhcigtLXF0aS1ib3JkZXItc3R5bGUpIHZhcigtLXF0aS1ib3JkZXItY29sb3ItZ3JheSk7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgICYgcXRpLXNpbXBsZS1hc3NvY2lhYmxlLWNob2ljZSA+IHF0aS1zaW1wbGUtYXNzb2NpYWJsZS1jaG9pY2U6OnBhcnQoZHJvcHNsb3QpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgJiBxdGktc2ltcGxlLWFzc29jaWFibGUtY2hvaWNlID4gKjpub3QocXRpLXNpbXBsZS1hc3NvY2lhYmxlLWNob2ljZSkge1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIH1cblxuICAgICAgJiBxdGktc2ltcGxlLWFzc29jaWFibGUtY2hvaWNlID4gcXRpLXNpbXBsZS1hc3NvY2lhYmxlLWNob2ljZSB7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXF0aS1iZy1ncmF5LTUwKTtcbiAgICAgICAgfVxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICBvdXRsaW5lOiB2YXIoLS1xdGktZm9jdXMtYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1xdGktZm9jdXMtY29sb3IpO1xuICAgICAgICB9XG4gICAgICAgIGZsZXgtYmFzaXM6IGZpdC1jb250ZW50O1xuICAgICAgICBib3JkZXI6IHZhcigtLXF0aS1ib3JkZXItdGhpY2tuZXNzKSB2YXIoLS1xdGktYm9yZGVyLXN0eWxlKSB2YXIoLS1xdGktYm9yZGVyLWNvbG9yLWdyYXkpO1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1xdGktcGFkZGluZy1tZCkgdmFyKC0tcXRpLXBhZGRpbmctbGcpIHZhcigtLXF0aS1wYWRkaW5nLW1kKSB2YXIoLS1xdGktcGFkZGluZy14bCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXF0aS1ib3JkZXItcmFkaXVzLW1kKTtcbiAgICAgICAgY3Vyc29yOiBncmFiO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXF0aS1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgIGJvcmRlcjogdmFyKC0tcXRpLWJvcmRlci10aGlja25lc3MpIHZhcigtLXF0aS1ib3JkZXItc3R5bGUpIHZhcigtLXF0aS1ib3JkZXItY29sb3ItZ3JheSk7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudChcbiAgICBjaXJjbGUgYXQgY2VudGVyLFxuICAgIHJnYmEoMCwgMCwgMCwgMC4xKSAwLFxuICAgIHJnYigwLCAwLCAwLCAwLjEpIDJweCxcbiAgICB3aGl0ZSAycHgsXG4gICAgd2hpdGUgMTAwJVxuICApO1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXk7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgMnB4O1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDE0cHggOHB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHF0aS1vcmRlci1pbnRlcmFjdGlvbiB7XG4gICAgJjo6cGFydChxdGktc2ltcGxlLWNob2ljZSksXG4gICAgJiBxdGktc2ltcGxlLWNob2ljZSB7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcXRpLWJnLWdyYXktNTApO1xuICAgICAgfVxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IHZhcigtLXF0aS1mb2N1cy1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLXF0aS1mb2N1cy1jb2xvcik7XG4gICAgICB9XG4gICAgICBib3JkZXI6IHZhcigtLXF0aS1ib3JkZXItdGhpY2tuZXNzKSB2YXIoLS1xdGktYm9yZGVyLXN0eWxlKSB2YXIoLS1xdGktYm9yZGVyLWNvbG9yLWdyYXkpO1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIHBhZGRpbmc6IHZhcigtLXF0aS1wYWRkaW5nLW1kKSB2YXIoLS1xdGktcGFkZGluZy1sZykgdmFyKC0tcXRpLXBhZGRpbmctbWQpIHZhcigtLXF0aS1wYWRkaW5nLXhsKTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXF0aS1ib3JkZXItcmFkaXVzLW1kKTtcbiAgICAgIGN1cnNvcjogZ3JhYjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXF0aS1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICBib3JkZXI6IHZhcigtLXF0aS1ib3JkZXItdGhpY2tuZXNzKSB2YXIoLS1xdGktYm9yZGVyLXN0eWxlKSB2YXIoLS1xdGktYm9yZGVyLWNvbG9yLWdyYXkpO1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudChcbiAgICBjaXJjbGUgYXQgY2VudGVyLFxuICAgIHJnYmEoMCwgMCwgMCwgMC4xKSAwLFxuICAgIHJnYigwLCAwLCAwLCAwLjEpIDJweCxcbiAgICB3aGl0ZSAycHgsXG4gICAgd2hpdGUgMTAwJVxuICApO1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC15O1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdCAycHg7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDE0cHggOHB4XG4gICAgfVxuICAgICY6OnBhcnQocXRpLXNpbXBsZS1jaG9pY2UpIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgfVxuICAgICY6OnBhcnQoZHJvcHMpIHtcbiAgICAgIGdhcDogMC41cmVtOyAvKiBnYXAtMiAqL1xuICAgIH1cbiAgICAmOjpwYXJ0KGRyYWdzKSB7XG4gICAgICBnYXA6IDAuNXJlbTsgLyogZ2FwLTIgKi9cbiAgICB9XG4gICAgJjo6cGFydChkcm9wLWxpc3QpIHtcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1xdGktYmctZ3JheS01MCk7XG4gICAgICB9XG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogdmFyKC0tcXRpLWZvY3VzLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tcXRpLWZvY3VzLWNvbG9yKTtcbiAgICAgIH1cbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBtaW4taGVpZ2h0OiA0cmVtO1xuICAgICAgYm9yZGVyOiB2YXIoLS1xdGktYm9yZGVyLXRoaWNrbmVzcykgdmFyKC0tcXRpLWJvcmRlci1zdHlsZSkgdmFyKC0tcXRpLWJvcmRlci1jb2xvci1ncmF5KTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1xdGktYm9yZGVyLXJhZGl1cy1sZyk7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1xdGktYmctZ3JheS01MCk7XG4gICAgICBtYXJnaW46IDFweDtcbiAgICAgIGJvcmRlcjogdmFyKC0tcXRpLWJvcmRlci10aGlja25lc3MpIHZhcigtLXF0aS1ib3JkZXItc3R5bGUpIHZhcigtLXF0aS1ib3JkZXItY29sb3ItZ3JheSk7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cbiAgICAmOjpwYXJ0KGFjdGl2ZSkge1xuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1xdGktYmctcHJpbWFyeSk7XG4gICAgfVxuICB9XG5cbiAgcXRpLWFzc29jaWF0ZS1pbnRlcmFjdGlvbiB7XG4gICAgJjo6cGFydChxdGktc2ltcGxlLWFzc29jaWFibGUtY2hvaWNlKSxcbiAgICAmIHF0aS1zaW1wbGUtYXNzb2NpYWJsZS1jaG9pY2Uge1xuICAgICAgLyogZHJhZ3MgaW4gZHJvcHMgKi9cbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgYm9yZGVyOiB2YXIoLS1xdGktYm9yZGVyLXRoaWNrbmVzcykgdmFyKC0tcXRpLWJvcmRlci1zdHlsZSkgdmFyKC0tcXRpLWJvcmRlci1jb2xvci1ncmF5KTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICBwYWRkaW5nOiB2YXIoLS1xdGktcGFkZGluZy1tZCkgdmFyKC0tcXRpLXBhZGRpbmctbGcpIHZhcigtLXF0aS1wYWRkaW5nLW1kKSB2YXIoLS1xdGktcGFkZGluZy14bCk7XG4gICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1xdGktYm9yZGVyLXJhZGl1cy1tZCk7XG4gICAgICBjdXJzb3I6IGdyYWI7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1xdGktZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgYm9yZGVyOiB2YXIoLS1xdGktYm9yZGVyLXRoaWNrbmVzcykgdmFyKC0tcXRpLWJvcmRlci1zdHlsZSkgdmFyKC0tcXRpLWJvcmRlci1jb2xvci1ncmF5KTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQoXG4gICAgY2lyY2xlIGF0IGNlbnRlcixcbiAgICByZ2JhKDAsIDAsIDAsIDAuMSkgMCxcbiAgICByZ2IoMCwgMCwgMCwgMC4xKSAycHgsXG4gICAgd2hpdGUgMnB4LFxuICAgIHdoaXRlIDEwMCVcbiAgKTtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteTtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgMnB4O1xuICAgICAgYmFja2dyb3VuZC1zaXplOiAxNHB4IDhweDtcbiAgICB9XG4gICAgJjo6cGFydChhc3NvY2lhYmxlcy1jb250YWluZXIpIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgIDE4MGRlZyxcbiAgICAgICAgcmdiKDAgMCAwIC8gMCUpIGNhbGMoNTAlIC0gMXB4KSxcbiAgICAgICAgdmFyKC0tcXRpLWJvcmRlci1jb2xvci1ncmF5KSBjYWxjKDUwJSksXG4gICAgICAgIHJnYigwIDAgMCAvIDAlKSBjYWxjKDUwJSArIDFweClcbiAgICAgICk7XG4gICAgfVxuICAgICY6OnBhcnQoYWN0aXZlKSB7XG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLXF0aS1iZy1wcmltYXJ5KTtcbiAgICB9XG4gICAgJjo6cGFydChkcm9wLWNvbnRhaW5lcikge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBnYXA6IHZhcigtLXF0aS1nYXAtc2l6ZSk7XG4gICAgfVxuICAgICY6OnBhcnQoZHJvcC1saXN0KSB7XG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogdmFyKC0tcXRpLWZvY3VzLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tcXRpLWZvY3VzLWNvbG9yKTtcbiAgICAgIH1cbiAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICBtaW4td2lkdGg6IDEwcmVtO1xuICAgICAgYm9yZGVyOiB2YXIoLS1xdGktYm9yZGVyLXRoaWNrbmVzcykgdmFyKC0tcXRpLWJvcmRlci1zdHlsZSkgdmFyKC0tcXRpLWJvcmRlci1jb2xvci1ncmF5KTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1xdGktYm9yZGVyLXJhZGl1cy1sZyk7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1xdGktYmctZ3JheS01MCk7XG4gICAgICBtYXJnaW46IDFweDtcbiAgICAgIGJvcmRlcjogdmFyKC0tcXRpLWJvcmRlci10aGlja25lc3MpIHZhcigtLXF0aS1ib3JkZXItc3R5bGUpIHZhcigtLXF0aS1ib3JkZXItY29sb3ItZ3JheSk7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIHF0aS1ncmFwaGljLW9yZGVyLWludGVyYWN0aW9uIHtcbiAgICAmIHF0aS1ob3RzcG90LWNob2ljZSB7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcXRpLWJnLWdyYXktNTApO1xuICAgICAgfVxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IHZhcigtLXF0aS1mb2N1cy1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLXF0aS1mb2N1cy1jb2xvcik7XG4gICAgICB9XG4gICAgICAmW2FyaWEtY2hlY2tlZD0ndHJ1ZSddIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1xdGktYmctcHJpbWFyeSk7XG4gICAgICB9XG4gICAgICAmW2FyaWEtcmVhZG9ubHk9J3RydWUnXSB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICAgIG91dGxpbmU6IDA7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIH1cbiAgICAgICZbYXJpYS1kaXNhYmxlZD0ndHJ1ZSddIHtcbiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcXRpLWJnLWdyYXktMTAwKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXF0aS10ZXh0LWdyYXktNTAwKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1xdGktYm9yZGVyLWNvbG9yLWdyYXkpO1xuICAgICAgfVxuICAgICAgJlthcmlhLW9yZGVydmFsdWVdIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXF0aS1iZy1wcmltYXJ5KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcXRpLWJvcmRlci1yYWRpdXMtZnVsbCk7XG4gICAgICAgIHdpZHRoOiAxLjVyZW07XG4gICAgICAgIGhlaWdodDogMS41cmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0tcXRpLXRleHQtd2hpdGUpO1xuICAgICAgfVxuICAgICAgJlthcmlhLW9yZGVydmFsdWVdOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IGF0dHIoYXJpYS1vcmRlcnZhbHVlKSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgICAgYm9yZGVyOiB2YXIoLS1xdGktYm9yZGVyLXRoaWNrbmVzcykgdmFyKC0tcXRpLWJvcmRlci1zdHlsZSkgdmFyKC0tcXRpLWJvcmRlci1jb2xvci1ncmF5KTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGJvcmRlcjogdmFyKC0tcXRpLWJvcmRlci10aGlja25lc3MpIHZhcigtLXF0aS1ib3JkZXItc3R5bGUpIHZhcigtLXF0aS1ib3JkZXItY29sb3ItZ3JheSk7XG4gICAgICBvdXRsaW5lOiBub25lXG4gICAgfVxuICB9XG5cbiAgcXRpLWdyYXBoaWMtYXNzb2NpYXRlLWludGVyYWN0aW9uIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAmIHF0aS1hc3NvY2lhYmxlLWhvdHNwb3Qge1xuICAgICAgJltzaGFwZT0nY2lyY2xlJ10ge1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1xdGktYmctZ3JheS01MCk7XG4gICAgICAgIH1cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgb3V0bGluZTogdmFyKC0tcXRpLWZvY3VzLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tcXRpLWZvY3VzLWNvbG9yKTtcbiAgICAgICAgfVxuICAgICAgICAmW2FyaWEtY2hlY2tlZD0ndHJ1ZSddIHtcbiAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXF0aS1iZy1wcmltYXJ5KTtcbiAgICAgICAgfVxuICAgICAgICAmW2FyaWEtcmVhZG9ubHk9J3RydWUnXSB7XG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgICAgIG91dGxpbmU6IDA7XG4gICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG4gICAgICAgICZbYXJpYS1kaXNhYmxlZD0ndHJ1ZSddIHtcbiAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXF0aS1iZy1ncmF5LTEwMCk7XG4gICAgICAgICAgY29sb3I6IHZhcigtLXF0aS10ZXh0LWdyYXktNTAwKTtcbiAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXF0aS1ib3JkZXItY29sb3ItZ3JheSk7XG4gICAgICAgIH1cbiAgICAgICAgYm9yZGVyOiB2YXIoLS1xdGktYm9yZGVyLXRoaWNrbmVzcykgdmFyKC0tcXRpLWJvcmRlci1zdHlsZSkgdmFyKC0tcXRpLWJvcmRlci1jb2xvci1ncmF5KTtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGJvcmRlcjogdmFyKC0tcXRpLWJvcmRlci10aGlja25lc3MpIHZhcigtLXF0aS1ib3JkZXItc3R5bGUpIHZhcigtLXF0aS1ib3JkZXItY29sb3ItZ3JheSk7XG4gICAgICAgIG91dGxpbmU6IG5vbmVcbiAgICAgIH1cblxuICAgICAgJltzaGFwZT0nc3F1YXJlJ10ge1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1xdGktYmctZ3JheS01MCk7XG4gICAgICAgIH1cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgb3V0bGluZTogdmFyKC0tcXRpLWZvY3VzLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tcXRpLWZvY3VzLWNvbG9yKTtcbiAgICAgICAgfVxuICAgICAgICAmW2FyaWEtY2hlY2tlZD0ndHJ1ZSddIHtcbiAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXF0aS1iZy1wcmltYXJ5KTtcbiAgICAgICAgfVxuICAgICAgICAmW2FyaWEtcmVhZG9ubHk9J3RydWUnXSB7XG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgICAgIG91dGxpbmU6IDA7XG4gICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG4gICAgICAgICZbYXJpYS1kaXNhYmxlZD0ndHJ1ZSddIHtcbiAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXF0aS1iZy1ncmF5LTEwMCk7XG4gICAgICAgICAgY29sb3I6IHZhcigtLXF0aS10ZXh0LWdyYXktNTAwKTtcbiAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXF0aS1ib3JkZXItY29sb3ItZ3JheSk7XG4gICAgICAgIH1cbiAgICAgICAgYm9yZGVyOiB2YXIoLS1xdGktYm9yZGVyLXRoaWNrbmVzcykgdmFyKC0tcXRpLWJvcmRlci1zdHlsZSkgdmFyKC0tcXRpLWJvcmRlci1jb2xvci1ncmF5KTtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGJvcmRlcjogdmFyKC0tcXRpLWJvcmRlci10aGlja25lc3MpIHZhcigtLXF0aS1ib3JkZXItc3R5bGUpIHZhcigtLXF0aS1ib3JkZXItY29sb3ItZ3JheSk7XG4gICAgICAgIG91dGxpbmU6IG5vbmVcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBxdGktZ3JhcGhpYy1nYXAtbWF0Y2gtaW50ZXJhY3Rpb24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAmIGltZyB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgIH1cbiAgfVxuXG4gIHF0aS1zbGlkZXItaW50ZXJhY3Rpb24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgLS1xdGktdGljay1jb2xvcjogcmdiKDIyOSAyMzEgMjM1IC8gMSk7XG4gICAgLS1xdGktdGljay13aWR0aDogMXB4O1xuXG4gICAgJjo6cGFydChzbGlkZXIpIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAycmVtOyAvKiBteC04ICovXG4gICAgICBtYXJnaW4tcmlnaHQ6IDJyZW07XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMXJlbTsgLyogcGItNCAqL1xuICAgICAgcGFkZGluZy10b3A6IDEuMjVyZW07IC8qIHB0LTUgKi9cbiAgICB9XG5cbiAgICAtLXNob3ctYm91bmRzOiB0cnVlO1xuICAgICY6OnBhcnQoYm91bmRzKSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07IC8qIG1iLTIgKi9cbiAgICB9XG5cbiAgICAtLXNob3ctdGlja3M6IHRydWU7XG4gICAgJjo6cGFydCh0aWNrcykge1xuICAgICAgbWFyZ2luLWxlZnQ6IDAuMTI1cmVtOyAvKiBteC0wLjUgKi9cbiAgICAgIG1hcmdpbi1yaWdodDogMC4xMjVyZW07XG4gICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtOyAvKiBtYi0xICovXG4gICAgICBoZWlnaHQ6IDAuNXJlbTsgLyogaC0yICovXG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIGNlbnRlcjtcbiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgdmFyKC0tcXRpLXRpY2stY29sb3IpIHZhcigtLXF0aS10aWNrLXdpZHRoKSwgdHJhbnNwYXJlbnQgMXB4KSByZXBlYXQteDtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogY2FsYyhjYWxjKDEwMCUgLSB2YXIoLS1xdGktdGljay13aWR0aCkpIC8gKCh2YXIoLS1tYXgpIC0gdmFyKC0tbWluKSkgLyB2YXIoLS1zdGVwKSkpIDEwMCU7XG4gICAgfVxuXG4gICAgJjo6cGFydChyYWlsKSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICBoZWlnaHQ6IDAuMzc1cmVtOyAvKiBoLTEuNSAqL1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBib3JkZXItcmFkaXVzOiA5OTk5cHg7IC8qIHJvdW5kZWQtZnVsbCAqL1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2QxZDVkYjsgLyogYm9yZGVyLWdyYXktMzAwICovXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTVlN2ViOyAvKiBiZy1ncmF5LTIwMCAqL1xuICAgIH1cblxuICAgICY6OnBhcnQoa25vYikge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcXRpLXByaW1hcnkpO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgaGVpZ2h0OiAxcmVtOyAvKiBoLTQgKi9cbiAgICAgIHdpZHRoOiAxcmVtOyAvKiB3LTQgKi9cbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDk5OTlweDsgLyogcm91bmRlZC1mdWxsICovXG4gICAgICBsZWZ0OiB2YXIoLS12YWx1ZS1wZXJjZW50YWdlKTtcbiAgICB9XG5cbiAgICAtLXNob3ctdmFsdWU6IHRydWU7XG4gICAgJjo6cGFydCh2YWx1ZSkge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiAycmVtOyAvKiBib3R0b20tOCAqL1xuICAgICAgbGVmdDogMC41cmVtOyAvKiBsZWZ0LTIgKi9cbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDAuMjVyZW07IC8qIHJvdW5kZWQgKi9cbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmM2Y0ZjY7IC8qIGJnLWdyYXktMTAwICovXG4gICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTsgLyogcHgtMiBweS0xICovXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBjb2xvcjogIzZiNzI4MDsgLyogdGV4dC1ncmF5LTUwMCAqL1xuICAgIH1cbiAgfVxuXG4gIHF0aS1zZWxlY3QtcG9pbnQtaW50ZXJhY3Rpb24ge1xuICAgICY6OnBhcnQocG9pbnQpIHtcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1xdGktYmctZ3JheS01MCk7XG4gICAgICB9XG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogdmFyKC0tcXRpLWZvY3VzLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tcXRpLWZvY3VzLWNvbG9yKTtcbiAgICAgIH1cbiAgICAgIGJvcmRlcjogdmFyKC0tcXRpLWJvcmRlci10aGlja25lc3MpIHZhcigtLXF0aS1ib3JkZXItc3R5bGUpIHZhcigtLXF0aS1ib3JkZXItY29sb3ItZ3JheSk7XG4gICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1xdGktYm9yZGVyLXJhZGl1cy1mdWxsKTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB3aWR0aDogMS41cmVtO1xuICAgICAgaGVpZ2h0OiAxLjVyZW07XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBib3JkZXI6IHZhcigtLXF0aS1ib3JkZXItdGhpY2tuZXNzKSB2YXIoLS1xdGktYm9yZGVyLXN0eWxlKSB2YXIoLS1xdGktYm9yZGVyLWNvbG9yLWdyYXkpO1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG4gIH1cblxuICBxdGktcG9zaXRpb24tb2JqZWN0LXN0YWdlIHtcbiAgICAmIHF0aS1wb3NpdGlvbi1vYmplY3QtaW50ZXJhY3Rpb24ge1xuICAgICAgLyogbm8gc3R5bGVzIG5lY2Vzc2FyeSwgb25seSBsYXlvdXQgc3R5bGVzLCBkZWZpbmVkIGluIHRoZSBjb21wb25lbnQgKi9cbiAgICB9XG4gIH1cblxuICBxdGktcHJvbXB0IHtcbiAgICBtYXJnaW46IDAuNXJlbSAwOyAvKiBteS0yICovXG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuLyogdXRpbGl0aWVzICovXG5cbkBsYXllciBxdGktdXRpbGl0aWVzIHtcbiAgLnF0aS11bmRlcmxpbmUge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB9XG5cbiAgLnF0aS1hbGlnbi1sZWZ0IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG5cbiAgLnF0aS1hbGlnbi1jZW50ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gIC5xdGktYWxpZ24tcmlnaHQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICB9XG5cbiAgLnF0aS12YWxpZ24tdG9wIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICB9XG5cbiAgLnF0aS12YWxpZ24tbWlkZGxlIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG5cbiAgLnF0aS12YWxpZ24tYmFzZWxpbmUge1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgfVxuXG4gIC5xdGktdmFsaWduLWJvdHRvbSB7XG4gICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgfVxuXG4gIC5xdGktZnVsbHdpZHRoIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIC5xdGktaGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLnF0aS12aXN1YWxseS1oaWRkZW4ge1xuICAgIHBvc2l0aW9uOiBmaXhlZCAhaW1wb3J0YW50O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2lkdGg6IDFweDtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBib3JkZXI6IDA7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIGNsaXA6IHJlY3QoMXB4IDFweCAxcHggMXB4KTtcbiAgfVxuXG4gIC5xdGktYm9yZGVyZWQge1xuICAgIHBhZGRpbmc6IDJweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjODg4O1xuICB9XG5cbiAgLnF0aS13ZWxsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC43NXJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjc1cmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDAuMjVyZW07XG4gICAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gICAgYm9yZGVyLWNvbG9yOiAjZDFkNWRiO1xuICAgIGNvbG9yOiAjNGI1NTYzO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmM2Y0ZjY7XG4gIH1cbn1cblxuLyogdmFyaWFudHMgKi9cblxuQGxheWVyIHF0aS12YXJpYW50cyB7XG4gIC5xdGktaW5wdXQtd2lkdGgtMSB7XG4gICAgd2lkdGg6IDFjaDtcbiAgICBtaW4td2lkdGg6IDFjaDtcbiAgfVxuICAucXRpLWlucHV0LXdpZHRoLTIge1xuICAgIHdpZHRoOiAyY2g7XG4gICAgbWluLXdpZHRoOiAyY2g7XG4gIH1cbiAgLnF0aS1pbnB1dC13aWR0aC0zIHtcbiAgICB3aWR0aDogM2NoO1xuICAgIG1pbi13aWR0aDogM2NoO1xuICB9XG4gIC5xdGktaW5wdXQtd2lkdGgtNCB7XG4gICAgd2lkdGg6IDRjaDtcbiAgICBtaW4td2lkdGg6IDRjaDtcbiAgfVxuICAucXRpLWlucHV0LXdpZHRoLTYge1xuICAgIHdpZHRoOiA2Y2g7XG4gICAgbWluLXdpZHRoOiA2Y2g7XG4gIH1cbiAgLnF0aS1pbnB1dC13aWR0aC0xMCB7XG4gICAgd2lkdGg6IDEwY2g7XG4gICAgbWluLXdpZHRoOiAxMGNoO1xuICB9XG4gIC5xdGktaW5wdXQtd2lkdGgtMTUge1xuICAgIHdpZHRoOiAxNWNoO1xuICAgIG1pbi13aWR0aDogMTVjaDtcbiAgfVxuICAucXRpLWlucHV0LXdpZHRoLTIwIHtcbiAgICB3aWR0aDogMjBjaDtcbiAgICBtaW4td2lkdGg6IDIwY2g7XG4gIH1cbiAgLnF0aS1pbnB1dC13aWR0aC03MiB7XG4gICAgd2lkdGg6IDcyY2g7XG4gICAgbWluLXdpZHRoOiA3MmNoO1xuICB9XG59XG5cbkBsYXllciBxdGktdmFyaWFudHMge1xuICBxdGktY2hvaWNlLWludGVyYWN0aW9uIHtcbiAgICAmLnF0aS1jaG9pY2VzLXN0YWNraW5nLTIge1xuICAgICAgLmdyaWQge1xuICAgICAgICBkaXNwbGF5OiBncmlkOyAvKiBncmlkICovXG4gICAgICB9XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMCwgMWZyKSk7IC8qIGdyaWQtY29scy0yICovXG4gICAgICBxdGktcHJvbXB0IHtcbiAgICAgICAgZ3JpZC1jb2x1bW46IHNwYW4gMiAvIHNwYW4gMjsgLyogY29sLXNwYW4tMiAqL1xuICAgICAgfVxuICAgIH1cbiAgICAmLnF0aS1jaG9pY2VzLXN0YWNraW5nLTMge1xuICAgICAgLmdyaWQge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgfVxuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgbWlubWF4KDAsIDFmcikpO1xuICAgICAgcXRpLXByb21wdCB7XG4gICAgICAgIGdyaWQtY29sdW1uOiBzcGFuIDMgLyBzcGFuIDM7XG4gICAgICB9XG4gICAgfVxuICAgICYucXRpLWNob2ljZXMtc3RhY2tpbmctNCB7XG4gICAgICAuZ3JpZCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICB9XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCBtaW5tYXgoMCwgMWZyKSk7XG4gICAgICBxdGktcHJvbXB0IHtcbiAgICAgICAgZ3JpZC1jb2x1bW46IHNwYW4gNCAvIHNwYW4gNDtcbiAgICAgIH1cbiAgICB9XG4gICAgJi5xdGktY2hvaWNlcy1zdGFja2luZy01IHtcbiAgICAgIC5ncmlkIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIH1cbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDUsIG1pbm1heCgwLCAxZnIpKTtcbiAgICAgIHF0aS1wcm9tcHQge1xuICAgICAgICBncmlkLWNvbHVtbjogc3BhbiA1IC8gc3BhbiA1O1xuICAgICAgfVxuICAgIH1cbiAgICAmLnF0aS1vcmllbnRhdGlvbi1ob3Jpem9udGFsIHtcbiAgICAgIC8qIGlzIHRoZSBkZWZhdWx0IGxheW91dCAqL1xuICAgIH1cbiAgICAmW29yaWVudGF0aW9uPSdob3Jpem9udGFsJ10ge1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICB9XG4gIH1cbn1cbiIsICJpbXBvcnQgc3R5bGVzIGZyb20gJy4uLy4uL2l0ZW0uY3NzP2lubGluZSc7XG5pbXBvcnQgeyBWYXJpYWJsZVZhbHVlIH0gZnJvbSAnLi4vcXRpLWNvbXBvbmVudHMnO1xuXG5jbGFzcyBRdGlJdGVtIGV4dGVuZHMgSFRNTEVsZW1lbnQge1xuICB2aWV3Pzogc3RyaW5nO1xuXG4gICNyZW5kZXJSb290ID0gbnVsbDtcblxuICBzZXQgeG1sRG9jKHhtbDogRG9jdW1lbnRGcmFnbWVudCkge1xuICAgIGlmICghdGhpcy4jcmVuZGVyUm9vdCkge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHdjL2F0dGFjaC1zaGFkb3ctY29uc3RydWN0b3IsIHdjL25vLWNsb3NlZC1zaGFkb3ctcm9vdFxuICAgICAgdGhpcy4jcmVuZGVyUm9vdCA9IHRoaXMuYXR0YWNoU2hhZG93KHsgbW9kZTogJ29wZW4nIH0pOyAvLyBjYW4gbm90IGJlIGNsb3NlZCwgZWxzZSBkcmFnIGFuZCBkcm9wcyB3aWxsIG5vdCB3b3JrXG4gICAgICBjb25zdCBzdHlsZSA9IG5ldyBDU1NTdHlsZVNoZWV0KCk7XG4gICAgICBzdHlsZS5yZXBsYWNlU3luYyhzdHlsZXMpO1xuICAgICAgdGhpcy4jcmVuZGVyUm9vdC5hZG9wdGVkU3R5bGVTaGVldHMgPSBbc3R5bGVdO1xuICAgICAgdGhpcy4jcmVuZGVyUm9vdC5pbm5lckhUTUwgPSAnJzsgLy8gQ2xlYXIgYW55IGV4aXN0aW5nIGNvbnRlbnRcblxuICAgICAgdGhpcy4jcmVuZGVyUm9vdC5hZGRFdmVudExpc3RlbmVyKCdxdGktaW50ZXJhY3Rpb24tY2hhbmdlZCcsIHRoaXMuI3ZhcmlhYmxlc0NoYW5nZWQpO1xuICAgICAgdGhpcy4jcmVuZGVyUm9vdC5hZGRFdmVudExpc3RlbmVyKCdxdGktb3V0Y29tZS1jaGFuZ2VkJywgdGhpcy4jdmFyaWFibGVzQ2hhbmdlZCk7XG4gICAgfVxuXG4gICAgdGhpcy4jcmVuZGVyUm9vdC5pbm5lckhUTUwgPSBgYDtcbiAgICB0aGlzLiNyZW5kZXJSb290LmFwcGVuZENoaWxkKHhtbC5jbG9uZU5vZGUodHJ1ZSkpO1xuICB9XG5cbiAgcHJvY2Vzc1Jlc3BvbnNlKCkge1xuICAgIHRoaXMuI2Fzc2Vzc21lbnRJdGVtPy52YXJpYWJsZXM/LnByb2Nlc3NSZXNwb25zZSgpIHx8IGNvbnNvbGUud2FybignTm8gcXRpLWFzc2Vzc21lbnQtaXRlbSBmb3VuZCcpO1xuICB9XG5cbiAgZ2V0IHZhcmlhYmxlcygpOiBWYXJpYWJsZVZhbHVlPHN0cmluZyB8IHN0cmluZ1tdIHwgbnVsbD5bXSB7XG4gICAgcmV0dXJuIHRoaXMuI2Fzc2Vzc21lbnRJdGVtPy52YXJpYWJsZXMgfHwgY29uc29sZS53YXJuKCdObyBxdGktYXNzZXNzbWVudC1pdGVtIGZvdW5kJyk7XG4gIH1cblxuICBzZXQgdmFyaWFibGVzKHZhcmlhYmxlczogVmFyaWFibGVWYWx1ZTxzdHJpbmcgfCBzdHJpbmdbXSB8IG51bGw+W10pIHtcbiAgICB0aGlzLiNhc3Nlc3NtZW50SXRlbS52YXJpYWJsZXMgPSB2YXJpYWJsZXM7XG4gIH1cblxuICBhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sobmFtZTogc3RyaW5nLCBvbGRWYWx1ZTogc3RyaW5nLCBuZXdWYWx1ZTogc3RyaW5nKSB7XG4gICAgc3dpdGNoIChuYW1lKSB7XG4gICAgICBjYXNlICd2aWV3JzpcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGlmIChvbGRWYWx1ZSAhPT0gbmV3VmFsdWUpIHtcbiAgICAgICAgICB0aGlzW25hbWUgYXMgJ3ZpZXcnXSA9IG5ld1ZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIC8qIFByaXZhdGUgbWV0aG9kcyAqL1xuICBnZXQgI2Fzc2Vzc21lbnRJdGVtKCkge1xuICAgIHJldHVybiB0aGlzLiNyZW5kZXJSb290LnF1ZXJ5U2VsZWN0b3IoJ3F0aS1hc3Nlc3NtZW50LWl0ZW0nKSB8fCBjb25zb2xlLndhcm4oJ05vIHF0aS1hc3Nlc3NtZW50LWl0ZW0gZm91bmQnKTtcbiAgfVxuXG4gICN2YXJpYWJsZXNDaGFuZ2VkID0gKGU6IEN1c3RvbUV2ZW50PGFueT4pID0+IHtcbiAgICBlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KFxuICAgICAgbmV3IEN1c3RvbUV2ZW50KCdxdGktaXRlbS12YXJpYWJsZXMtY2hhbmdlZCcsIHtcbiAgICAgICAgYnViYmxlczogZmFsc2UsXG4gICAgICAgIGRldGFpbDoge1xuICAgICAgICAgIHZhcmlhYmxlczogdGhpcy4jYXNzZXNzbWVudEl0ZW0udmFyaWFibGVzXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfTtcbn1cblxuY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdxdGktaXRlbScsIFF0aUl0ZW0pO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgICdxdGktaXRlbSc6IFF0aUl0ZW07XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICJ1REFBQSxJQUFBQSxFQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VDQUEsSUFBQUMsRUFBQUMsRUFBQUMsRUFBQUMsRUFHTUMsRUFBTixjQUFzQixXQUFZLENBQWxDLGtDQUFBQyxFQUFBLEtBQUFKLEdBR0VJLEVBQUEsS0FBQUwsRUFBYyxNQWlEZEssRUFBQSxLQUFBRixFQUFxQkcsR0FBd0IsQ0FDM0NBLEVBQUUseUJBQXlCLEVBQzNCQSxFQUFFLGdCQUFnQixFQUNsQixLQUFLLGNBQ0gsSUFBSSxZQUFZLDZCQUE4QixDQUM1QyxRQUFTLEdBQ1QsT0FBUSxDQUNOLFVBQVdDLEVBQUEsS0FBS04sRUFBQUMsR0FBZ0IsU0FDbEMsQ0FDRixDQUFDLENBQ0gsQ0FDRixHQTFEQSxJQUFJLE9BQU9NLEVBQXVCLENBQ2hDLEdBQUksQ0FBQ0QsRUFBQSxLQUFLUCxHQUFhLENBRXJCUyxFQUFBLEtBQUtULEVBQWMsS0FBSyxhQUFhLENBQUUsS0FBTSxNQUFPLENBQUMsR0FDckQsSUFBTVUsRUFBUSxJQUFJLGNBQ2xCQSxFQUFNLFlBQVlDLENBQU0sRUFDeEJKLEVBQUEsS0FBS1AsR0FBWSxtQkFBcUIsQ0FBQ1UsQ0FBSyxFQUM1Q0gsRUFBQSxLQUFLUCxHQUFZLFVBQVksR0FFN0JPLEVBQUEsS0FBS1AsR0FBWSxpQkFBaUIsMEJBQTJCTyxFQUFBLEtBQUtKLEVBQWlCLEVBQ25GSSxFQUFBLEtBQUtQLEdBQVksaUJBQWlCLHNCQUF1Qk8sRUFBQSxLQUFLSixFQUFpQixDQUNqRixDQUVBSSxFQUFBLEtBQUtQLEdBQVksVUFBWSxHQUM3Qk8sRUFBQSxLQUFLUCxHQUFZLFlBQVlRLEVBQUksVUFBVSxFQUFJLENBQUMsQ0FDbEQsQ0FFQSxpQkFBa0IsQ0F6QnBCLElBQUFJLEVBQUFDLEdBMEJJQSxHQUFBRCxFQUFBTCxFQUFBLEtBQUtOLEVBQUFDLEtBQUwsWUFBQVUsRUFBc0IsWUFBdEIsTUFBQUMsRUFBaUMsbUJBQXFCLFFBQVEsS0FBSyw4QkFBOEIsQ0FDbkcsQ0FFQSxJQUFJLFdBQXVELENBN0I3RCxJQUFBRCxFQThCSSxRQUFPQSxFQUFBTCxFQUFBLEtBQUtOLEVBQUFDLEtBQUwsWUFBQVUsRUFBc0IsWUFBYSxRQUFRLEtBQUssOEJBQThCLENBQ3ZGLENBRUEsSUFBSSxVQUFVRSxFQUFzRCxDQUNsRVAsRUFBQSxLQUFLTixFQUFBQyxHQUFnQixVQUFZWSxDQUNuQyxDQUVBLHlCQUF5QkMsRUFBY0MsRUFBa0JDLEVBQWtCLENBQ3pFLE9BQVFGLEVBQU0sQ0FDWixJQUFLLE9BQ0gsTUFFRixRQUNNQyxJQUFhQyxJQUNmLEtBQUtGLENBQWMsRUFBSUUsR0FFekIsS0FDSixDQUNGLENBbUJGLEVBN0RFakIsRUFBQSxZQUhGQyxFQUFBLFlBZ0RNQyxFQUFlLFVBQUcsQ0FDcEIsT0FBT0ssRUFBQSxLQUFLUCxHQUFZLGNBQWMscUJBQXFCLEdBQUssUUFBUSxLQUFLLDhCQUE4QixDQUM3RyxFQUVBRyxFQUFBLFlBY0YsZUFBZSxPQUFPLFdBQVlDLENBQU8iLAogICJuYW1lcyI6IFsiaXRlbV9kZWZhdWx0IiwgIl9yZW5kZXJSb290IiwgIl9RdGlJdGVtX2luc3RhbmNlcyIsICJhc3Nlc3NtZW50SXRlbV9nZXQiLCAiX3ZhcmlhYmxlc0NoYW5nZWQiLCAiUXRpSXRlbSIsICJfX3ByaXZhdGVBZGQiLCAiZSIsICJfX3ByaXZhdGVHZXQiLCAieG1sIiwgIl9fcHJpdmF0ZVNldCIsICJzdHlsZSIsICJpdGVtX2RlZmF1bHQiLCAiX2EiLCAiX2IiLCAidmFyaWFibGVzIiwgIm5hbWUiLCAib2xkVmFsdWUiLCAibmV3VmFsdWUiXQp9Cg==