tide-design-system 2.0.32 → 2.0.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/css/utilities.css +177 -72
- package/dist/style.css +1 -1
- package/dist/tide-design-system.cjs +2 -2
- package/dist/tide-design-system.esm.d.ts +33 -1
- package/dist/tide-design-system.esm.js +574 -557
- package/package.json +2 -2
- package/src/assets/css/utilities.css +177 -72
- package/src/components/TideInputCheckbox.vue +3 -5
- package/src/components/TideInputRadio.vue +3 -5
- package/src/components/TideInputSelect.vue +3 -5
- package/src/components/TideInputText.vue +3 -4
- package/src/components/TideInputTextarea.vue +3 -4
- package/src/types/Styles.ts +47 -1
- /package/dist/css/realm/{equip.css → equipment.css} +0 -0
- /package/src/assets/css/realm/{equip.css → equipment.css} +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
const
|
|
1
|
+
import { defineComponent as L, openBlock as l, createElementBlock as E, normalizeClass as a, unref as t, ref as R, watch as Y, defineAsyncComponent as Ae, markRaw as ue, createBlock as S, resolveDynamicComponent as j, createCommentVNode as A, toDisplayString as u, onMounted as ie, createElementVNode as c, createVNode as P, renderSlot as B, withCtx as ee, computed as f, Fragment as M, renderList as Q, createTextVNode as Oe, onUnmounted as Ne, onUpdated as Le, normalizeStyle as se, withModifiers as ae, withDirectives as oe, vModelSelect as pe, vModelDynamic as ve, vModelText as Fe, Teleport as _e } from "vue";
|
|
2
|
+
const bt = {
|
|
3
3
|
SM: "sm",
|
|
4
4
|
MD: "md",
|
|
5
5
|
LG: "lg",
|
|
@@ -13,7 +13,8 @@ const yt = {
|
|
|
13
13
|
RIGHT: "tide-text-right"
|
|
14
14
|
},
|
|
15
15
|
Y: {
|
|
16
|
-
MIDDLE: "tide-align-middle"
|
|
16
|
+
MIDDLE: "tide-align-middle",
|
|
17
|
+
INITIAL: "tide-align-initial"
|
|
17
18
|
}
|
|
18
19
|
},
|
|
19
20
|
AXIS1: {
|
|
@@ -30,6 +31,7 @@ const yt = {
|
|
|
30
31
|
START: "tide-axis2-start"
|
|
31
32
|
},
|
|
32
33
|
BG: {
|
|
34
|
+
INITIAL: "tide-bg-initial",
|
|
33
35
|
BLUR: "tide-bg-blur",
|
|
34
36
|
ERROR: "tide-bg-error",
|
|
35
37
|
INFO: "tide-bg-info",
|
|
@@ -53,6 +55,7 @@ const yt = {
|
|
|
53
55
|
},
|
|
54
56
|
BORDER: {
|
|
55
57
|
COLOR: {
|
|
58
|
+
INITIAL: "tide-border-color-initial",
|
|
56
59
|
DEFAULT: "tide-border",
|
|
57
60
|
FLOATING: "tide-border-floating",
|
|
58
61
|
HIGH: "tide-border-high",
|
|
@@ -60,28 +63,34 @@ const yt = {
|
|
|
60
63
|
PRIMARY: "tide-border-primary"
|
|
61
64
|
},
|
|
62
65
|
RADIUS: {
|
|
66
|
+
ZERO: "tide-radius-0",
|
|
63
67
|
QUARTER: "tide-radius-1/4",
|
|
64
68
|
HALF: "tide-radius-1/2",
|
|
65
69
|
ONE: "tide-radius-1",
|
|
66
70
|
FULL: "tide-radius-full"
|
|
67
71
|
},
|
|
68
72
|
BOTTOM: {
|
|
73
|
+
ZERO: "tide-border-bottom-0",
|
|
69
74
|
ONE: "tide-border-bottom-1",
|
|
70
75
|
TWO: "tide-border-bottom-2"
|
|
71
76
|
},
|
|
72
77
|
FULL: {
|
|
78
|
+
ZERO: "tide-border-0",
|
|
73
79
|
ONE: "tide-border-1",
|
|
74
80
|
TWO: "tide-border-2"
|
|
75
81
|
},
|
|
76
82
|
LEFT: {
|
|
83
|
+
ZERO: "tide-border-left-0",
|
|
77
84
|
ONE: "tide-border-left-1",
|
|
78
85
|
TWO: "tide-border-left-2"
|
|
79
86
|
},
|
|
80
87
|
RIGHT: {
|
|
88
|
+
ZERO: "tide-border-right-0",
|
|
81
89
|
ONE: "tide-border-right-1",
|
|
82
90
|
TWO: "tide-border-right-2"
|
|
83
91
|
},
|
|
84
92
|
TOP: {
|
|
93
|
+
ZERO: "tide-border-top-0",
|
|
85
94
|
ONE: "tide-border-top-1",
|
|
86
95
|
TWO: "tide-border-top-2"
|
|
87
96
|
}
|
|
@@ -91,9 +100,11 @@ const yt = {
|
|
|
91
100
|
CONTENT_BOX: "tide-box-content"
|
|
92
101
|
},
|
|
93
102
|
BREAK_WORD: {
|
|
103
|
+
OFF: "tide-break-initial",
|
|
94
104
|
ON: "tide-break-word"
|
|
95
105
|
},
|
|
96
106
|
COLUMNS: {
|
|
107
|
+
INITIAL: "tide-columns-initial",
|
|
97
108
|
ONE: "tide-columns-1",
|
|
98
109
|
TWO: "tide-columns-2",
|
|
99
110
|
THREE: "tide-columns-3",
|
|
@@ -117,6 +128,7 @@ const yt = {
|
|
|
117
128
|
},
|
|
118
129
|
FLEX: {
|
|
119
130
|
BASIS: {
|
|
131
|
+
AUTO: "tide-flex-basis-auto",
|
|
120
132
|
ZERO: "tide-flex-basis-0"
|
|
121
133
|
},
|
|
122
134
|
DIRECTION: {
|
|
@@ -163,6 +175,7 @@ const yt = {
|
|
|
163
175
|
}
|
|
164
176
|
},
|
|
165
177
|
GAP: {
|
|
178
|
+
ZERO: "tide-gap-0",
|
|
166
179
|
QUARTER: "tide-gap-1/4",
|
|
167
180
|
HALF: "tide-gap-1/2",
|
|
168
181
|
ONE: "tide-gap-1",
|
|
@@ -205,7 +218,8 @@ const yt = {
|
|
|
205
218
|
XL: "tide-grid-xl"
|
|
206
219
|
},
|
|
207
220
|
HEIGHT: {
|
|
208
|
-
|
|
221
|
+
AUTO: "tide-height-auto",
|
|
222
|
+
ZERO: "tide-height-0",
|
|
209
223
|
FULL: "tide-height-full"
|
|
210
224
|
},
|
|
211
225
|
ISOLATION: {
|
|
@@ -216,6 +230,7 @@ const yt = {
|
|
|
216
230
|
},
|
|
217
231
|
MARGIN: {
|
|
218
232
|
BOTTOM: {
|
|
233
|
+
ZERO: "tide-margin-bottom-0",
|
|
219
234
|
QUARTER: "tide-margin-bottom-1/4",
|
|
220
235
|
HALF: "tide-margin-bottom-1/2",
|
|
221
236
|
ONE: "tide-margin-bottom-1",
|
|
@@ -223,6 +238,7 @@ const yt = {
|
|
|
223
238
|
FOUR: "tide-margin-bottom-4"
|
|
224
239
|
},
|
|
225
240
|
FULL: {
|
|
241
|
+
ZERO: "tide-margin-0",
|
|
226
242
|
QUARTER: "tide-margin-1/4",
|
|
227
243
|
HALF: "tide-margin-1/2",
|
|
228
244
|
ONE: "tide-margin-1",
|
|
@@ -231,6 +247,7 @@ const yt = {
|
|
|
231
247
|
},
|
|
232
248
|
LEFT: {
|
|
233
249
|
AUTO: "tide-margin-left-auto",
|
|
250
|
+
ZERO: "tide-margin-left-0",
|
|
234
251
|
QUARTER: "tide-margin-left-1/4",
|
|
235
252
|
HALF: "tide-margin-left-1/2",
|
|
236
253
|
ONE: "tide-margin-left-1",
|
|
@@ -239,6 +256,7 @@ const yt = {
|
|
|
239
256
|
},
|
|
240
257
|
RIGHT: {
|
|
241
258
|
AUTO: "tide-margin-right-auto",
|
|
259
|
+
ZERO: "tide-margin-right-0",
|
|
242
260
|
QUARTER: "tide-margin-right-1/4",
|
|
243
261
|
HALF: "tide-margin-right-1/2",
|
|
244
262
|
ONE: "tide-margin-right-1",
|
|
@@ -246,6 +264,7 @@ const yt = {
|
|
|
246
264
|
FOUR: "tide-margin-right-4"
|
|
247
265
|
},
|
|
248
266
|
TOP: {
|
|
267
|
+
ZERO: "tide-margin-top-0",
|
|
249
268
|
QUARTER: "tide-margin-top-1/4",
|
|
250
269
|
HALF: "tide-margin-top-1/2",
|
|
251
270
|
ONE: "tide-margin-top-1",
|
|
@@ -254,6 +273,7 @@ const yt = {
|
|
|
254
273
|
},
|
|
255
274
|
X: {
|
|
256
275
|
AUTO: "tide-margin-x-auto",
|
|
276
|
+
ZERO: "tide-margin-x-0",
|
|
257
277
|
QUARTER: "tide-margin-x-1/4",
|
|
258
278
|
HALF: "tide-margin-x-1/2",
|
|
259
279
|
ONE: "tide-margin-x-1",
|
|
@@ -261,6 +281,7 @@ const yt = {
|
|
|
261
281
|
FOUR: "tide-margin-x-4"
|
|
262
282
|
},
|
|
263
283
|
Y: {
|
|
284
|
+
ZERO: "tide-margin-y-0",
|
|
264
285
|
QUARTER: "tide-margin-y-1/4",
|
|
265
286
|
HALF: "tide-margin-y-1/2",
|
|
266
287
|
ONE: "tide-margin-y-1",
|
|
@@ -295,6 +316,7 @@ const yt = {
|
|
|
295
316
|
},
|
|
296
317
|
PADDING: {
|
|
297
318
|
BOTTOM: {
|
|
319
|
+
ZERO: "tide-padding-bottom-0",
|
|
298
320
|
QUARTER: "tide-padding-bottom-1/4",
|
|
299
321
|
HALF: "tide-padding-bottom-1/2",
|
|
300
322
|
ONE: "tide-padding-bottom-1",
|
|
@@ -302,6 +324,7 @@ const yt = {
|
|
|
302
324
|
FOUR: "tide-padding-bottom-4"
|
|
303
325
|
},
|
|
304
326
|
FULL: {
|
|
327
|
+
ZERO: "tide-padding-0",
|
|
305
328
|
QUARTER: "tide-padding-1/4",
|
|
306
329
|
HALF: "tide-padding-1/2",
|
|
307
330
|
ONE: "tide-padding-1",
|
|
@@ -309,6 +332,7 @@ const yt = {
|
|
|
309
332
|
FOUR: "tide-padding-4"
|
|
310
333
|
},
|
|
311
334
|
LEFT: {
|
|
335
|
+
ZERO: "tide-padding-left-0",
|
|
312
336
|
QUARTER: "tide-padding-left-1/4",
|
|
313
337
|
HALF: "tide-padding-left-1/2",
|
|
314
338
|
ONE: "tide-padding-left-1",
|
|
@@ -316,6 +340,7 @@ const yt = {
|
|
|
316
340
|
FOUR: "tide-padding-left-4"
|
|
317
341
|
},
|
|
318
342
|
RIGHT: {
|
|
343
|
+
ZERO: "tide-padding-right-0",
|
|
319
344
|
QUARTER: "tide-padding-right-1/4",
|
|
320
345
|
HALF: "tide-padding-right-1/2",
|
|
321
346
|
ONE: "tide-padding-right-1",
|
|
@@ -323,6 +348,7 @@ const yt = {
|
|
|
323
348
|
FOUR: "tide-padding-right-4"
|
|
324
349
|
},
|
|
325
350
|
TOP: {
|
|
351
|
+
ZERO: "tide-padding-top-0",
|
|
326
352
|
QUARTER: "tide-padding-top-1/4",
|
|
327
353
|
HALF: "tide-padding-top-1/2",
|
|
328
354
|
ONE: "tide-padding-top-1",
|
|
@@ -330,6 +356,7 @@ const yt = {
|
|
|
330
356
|
FOUR: "tide-padding-top-4"
|
|
331
357
|
},
|
|
332
358
|
X: {
|
|
359
|
+
ZERO: "tide-padding-x-0",
|
|
333
360
|
QUARTER: "tide-padding-x-1/4",
|
|
334
361
|
HALF: "tide-padding-x-1/2",
|
|
335
362
|
ONE: "tide-padding-x-1",
|
|
@@ -337,6 +364,7 @@ const yt = {
|
|
|
337
364
|
FOUR: "tide-padding-x-4"
|
|
338
365
|
},
|
|
339
366
|
Y: {
|
|
367
|
+
ZERO: "tide-padding-y-0",
|
|
340
368
|
QUARTER: "tide-padding-y-1/4",
|
|
341
369
|
HALF: "tide-padding-y-1/2",
|
|
342
370
|
ONE: "tide-padding-y-1",
|
|
@@ -352,6 +380,7 @@ const yt = {
|
|
|
352
380
|
ABSOLUTE: "tide-position-absolute",
|
|
353
381
|
FIXED: "tide-position-fixed",
|
|
354
382
|
RELATIVE: "tide-position-relative",
|
|
383
|
+
STATIC: "tide-static",
|
|
355
384
|
STICKY: "tide-sticky"
|
|
356
385
|
},
|
|
357
386
|
POSITIONING: {
|
|
@@ -364,6 +393,7 @@ const yt = {
|
|
|
364
393
|
OFF: "tide-scrollbar-none"
|
|
365
394
|
},
|
|
366
395
|
SHADOW: {
|
|
396
|
+
INITIAL: "tide-shadow-initial",
|
|
367
397
|
BOTTOM: "tide-shadow-bottom",
|
|
368
398
|
TOP: "tide-shadow-top"
|
|
369
399
|
},
|
|
@@ -391,44 +421,46 @@ const yt = {
|
|
|
391
421
|
OFF: "tide-whitespace-nowrap"
|
|
392
422
|
},
|
|
393
423
|
WIDTH: {
|
|
424
|
+
AUTO: "tide-width-auto",
|
|
394
425
|
ZERO: "tide-width-0",
|
|
395
426
|
FULL: "tide-width-full",
|
|
396
427
|
MAX_FULL: "tide-max-width-full"
|
|
397
428
|
},
|
|
398
429
|
Z_INDEX: {
|
|
430
|
+
INITIAL: "tide-z-index-initial",
|
|
399
431
|
ONE: "tide-z-index-1"
|
|
400
432
|
}
|
|
401
433
|
};
|
|
402
|
-
e.DISPLAY.BLOCK, e.DISPLAY.CONTENTS, e.DISPLAY.FLEX, e.DISPLAY.GRID, e.DISPLAY.NONE, e.DISPLAY.INITIAL, e.DISPLAY.INLINE, e.DISPLAY.INLINE_BLOCK, e.DISPLAY.INLINE_FLEX, e.AXIS1.AROUND, e.AXIS1.BETWEEN, e.AXIS1.CENTER, e.AXIS1.END, e.AXIS1.START, e.AXIS2.AROUND, e.AXIS2.CENTER, e.AXIS2.END, e.AXIS2.START, e.FLEX.DIRECTION.COLUMN, e.FLEX.DIRECTION.COLUMN_REVERSE, e.FLEX.DIRECTION.ROW, e.FLEX.DIRECTION.ROW_REVERSE, e.GAP.ONE, e.GAP.HALF, e.GAP.QUARTER, e.GAP.TWO, e.GAP.FOUR, e.FLEX.BASIS.ZERO, e.FLEX.GROW.ON, e.FLEX.GROW.OFF, e.FLEX.SHRINK.ON, e.FLEX.SHRINK.OFF, e.FLEX.WRAP, e.POSITION.ABSOLUTE, e.POSITION.FIXED, e.POSITION.RELATIVE, e.POSITION.STICKY, e.POSITIONING.TOP, e.POSITIONING.RIGHT, e.POSITIONING.BOTTOM, e.POSITIONING.LEFT, e.BOX_SIZING.BORDER_BOX, e.BOX_SIZING.CONTENT_BOX, e.MARGIN.FULL.ONE, e.MARGIN.FULL.HALF, e.MARGIN.FULL.QUARTER, e.MARGIN.FULL.TWO, e.MARGIN.FULL.FOUR, e.MARGIN.Y.ONE, e.MARGIN.Y.HALF, e.MARGIN.Y.QUARTER, e.MARGIN.Y.TWO, e.MARGIN.Y.FOUR, e.MARGIN.TOP.ONE, e.MARGIN.TOP.HALF, e.MARGIN.TOP.QUARTER, e.MARGIN.TOP.TWO, e.MARGIN.TOP.FOUR, e.MARGIN.X.ONE, e.MARGIN.X.HALF, e.MARGIN.X.QUARTER, e.MARGIN.X.TWO, e.MARGIN.X.FOUR, e.MARGIN.X.AUTO, e.MARGIN.RIGHT.ONE, e.MARGIN.RIGHT.HALF, e.MARGIN.RIGHT.QUARTER, e.MARGIN.RIGHT.TWO, e.MARGIN.RIGHT.FOUR, e.MARGIN.RIGHT.AUTO, e.MARGIN.BOTTOM.ONE, e.MARGIN.BOTTOM.HALF, e.MARGIN.BOTTOM.QUARTER, e.MARGIN.BOTTOM.TWO, e.MARGIN.BOTTOM.FOUR, e.MARGIN.LEFT.ONE, e.MARGIN.LEFT.HALF, e.MARGIN.LEFT.QUARTER, e.MARGIN.LEFT.TWO, e.MARGIN.LEFT.FOUR, e.MARGIN.LEFT.AUTO, e.BORDER.FULL.ONE, e.BORDER.FULL.TWO, e.BORDER.TOP.ONE, e.BORDER.TOP.TWO, e.BORDER.RIGHT.ONE, e.BORDER.RIGHT.TWO, e.BORDER.BOTTOM.ONE, e.BORDER.BOTTOM.TWO, e.BORDER.LEFT.ONE, e.BORDER.LEFT.TWO, e.BORDER.RADIUS.ONE, e.BORDER.RADIUS.HALF, e.BORDER.RADIUS.QUARTER, e.BORDER.RADIUS.FULL, e.PADDING.FULL.ONE, e.PADDING.FULL.HALF, e.PADDING.FULL.QUARTER, e.PADDING.FULL.TWO, e.PADDING.FULL.FOUR, e.PADDING.Y.ONE, e.PADDING.Y.HALF, e.PADDING.Y.QUARTER, e.PADDING.Y.TWO, e.PADDING.Y.FOUR, e.PADDING.TOP.ONE, e.PADDING.TOP.HALF, e.PADDING.TOP.QUARTER, e.PADDING.TOP.TWO, e.PADDING.TOP.FOUR, e.PADDING.X.ONE, e.PADDING.X.HALF, e.PADDING.X.QUARTER, e.PADDING.X.TWO, e.PADDING.X.FOUR, e.PADDING.RIGHT.ONE, e.PADDING.RIGHT.HALF, e.PADDING.RIGHT.QUARTER, e.PADDING.RIGHT.TWO, e.PADDING.RIGHT.FOUR, e.PADDING.BOTTOM.ONE, e.PADDING.BOTTOM.HALF, e.PADDING.BOTTOM.QUARTER, e.PADDING.BOTTOM.TWO, e.PADDING.BOTTOM.FOUR, e.PADDING.LEFT.ONE, e.PADDING.LEFT.HALF, e.PADDING.LEFT.QUARTER, e.PADDING.LEFT.TWO, e.PADDING.LEFT.FOUR, e.WIDTH.MAX_FULL, e.WIDTH.ZERO, e.WIDTH.FULL, e.HEIGHT.ZERO, e.HEIGHT.FULL, e.ALIGN.Y.MIDDLE, e.BREAK_WORD, e.CURSOR.NOT_ALLOWED, e.CURSOR.POINTER, e.CURSOR.TEXT, e.FONT.SIZE.TWELVE, e.FONT.SIZE.FOURTEEN, e.FONT.SIZE.SIXTEEN, e.FONT.SIZE.TWENTY, e.FONT.SIZE.TWENTY_FOUR, e.FONT.SIZE.THIRTY_TWO, e.FONT.WEIGHT.FOUR_HUNDRED, e.FONT.WEIGHT.FIVE_HUNDRED, e.FONT.WEIGHT.SIX_HUNDRED, e.FONT.WEIGHT.SEVEN_HUNDRED, e.LIST_BULLETS.OFF, e.OBJECT.CENTER, e.OBJECT.CONTAIN, e.OBJECT.COVER, e.OBJECT.SCALE_DOWN, e.POINTER_EVENTS.ON, e.POINTER_EVENTS.OFF, e.SCROLLBAR.OFF, e.SHADOW.BOTTOM, e.SHADOW.TOP, e.SNAP.ON, e.SNAP_ALIGN.START, e.ALIGN.X.LEFT, e.ALIGN.X.CENTER, e.ALIGN.X.RIGHT, e.TEXT_TRANSFORM.LOWER, e.TEXT_TRANSFORM.NONE, e.TEXT_TRANSFORM.UPPER, e.UNDERLINE.HOVER, e.UNDERLINE.OFF, e.UNDERLINE.ON, e.VISIBILITY.ON, e.VISIBILITY.OFF, e.WHITESPACE_WRAP.OFF, e.OVERFLOW.XY.AUTO, e.OVERFLOW.XY.HIDDEN, e.OVERFLOW.X.AUTO, e.OVERFLOW.X.HIDDEN, e.OVERFLOW.X.SCROLL, e.OVERFLOW.Y.AUTO, e.OVERFLOW.Y.HIDDEN, e.Z_INDEX.ONE;
|
|
403
|
-
const
|
|
434
|
+
e.DISPLAY.BLOCK, e.DISPLAY.CONTENTS, e.DISPLAY.FLEX, e.DISPLAY.GRID, e.DISPLAY.NONE, e.DISPLAY.INITIAL, e.DISPLAY.INLINE, e.DISPLAY.INLINE_BLOCK, e.DISPLAY.INLINE_FLEX, e.AXIS1.AROUND, e.AXIS1.BETWEEN, e.AXIS1.CENTER, e.AXIS1.END, e.AXIS1.START, e.AXIS2.AROUND, e.AXIS2.CENTER, e.AXIS2.END, e.AXIS2.START, e.FLEX.DIRECTION.COLUMN, e.FLEX.DIRECTION.COLUMN_REVERSE, e.FLEX.DIRECTION.ROW, e.FLEX.DIRECTION.ROW_REVERSE, e.GAP.ONE, e.GAP.HALF, e.GAP.QUARTER, e.GAP.TWO, e.GAP.FOUR, e.FLEX.BASIS.ZERO, e.FLEX.GROW.ON, e.FLEX.GROW.OFF, e.FLEX.SHRINK.ON, e.FLEX.SHRINK.OFF, e.FLEX.WRAP, e.POSITION.ABSOLUTE, e.POSITION.FIXED, e.POSITION.RELATIVE, e.POSITION.STICKY, e.POSITIONING.TOP, e.POSITIONING.RIGHT, e.POSITIONING.BOTTOM, e.POSITIONING.LEFT, e.BOX_SIZING.BORDER_BOX, e.BOX_SIZING.CONTENT_BOX, e.MARGIN.FULL.ZERO, e.MARGIN.FULL.ONE, e.MARGIN.FULL.HALF, e.MARGIN.FULL.QUARTER, e.MARGIN.FULL.TWO, e.MARGIN.FULL.FOUR, e.MARGIN.Y.ZERO, e.MARGIN.Y.ONE, e.MARGIN.Y.HALF, e.MARGIN.Y.QUARTER, e.MARGIN.Y.TWO, e.MARGIN.Y.FOUR, e.MARGIN.TOP.ZERO, e.MARGIN.TOP.ONE, e.MARGIN.TOP.HALF, e.MARGIN.TOP.QUARTER, e.MARGIN.TOP.TWO, e.MARGIN.TOP.FOUR, e.MARGIN.X.ZERO, e.MARGIN.X.ONE, e.MARGIN.X.HALF, e.MARGIN.X.QUARTER, e.MARGIN.X.TWO, e.MARGIN.X.FOUR, e.MARGIN.X.AUTO, e.MARGIN.RIGHT.ZERO, e.MARGIN.RIGHT.ONE, e.MARGIN.RIGHT.HALF, e.MARGIN.RIGHT.QUARTER, e.MARGIN.RIGHT.TWO, e.MARGIN.RIGHT.FOUR, e.MARGIN.RIGHT.AUTO, e.MARGIN.BOTTOM.ZERO, e.MARGIN.BOTTOM.ONE, e.MARGIN.BOTTOM.HALF, e.MARGIN.BOTTOM.QUARTER, e.MARGIN.BOTTOM.TWO, e.MARGIN.BOTTOM.FOUR, e.MARGIN.LEFT.ZERO, e.MARGIN.LEFT.ONE, e.MARGIN.LEFT.HALF, e.MARGIN.LEFT.QUARTER, e.MARGIN.LEFT.TWO, e.MARGIN.LEFT.FOUR, e.MARGIN.LEFT.AUTO, e.BORDER.FULL.ONE, e.BORDER.FULL.TWO, e.BORDER.TOP.ONE, e.BORDER.TOP.TWO, e.BORDER.RIGHT.ONE, e.BORDER.RIGHT.TWO, e.BORDER.BOTTOM.ONE, e.BORDER.BOTTOM.TWO, e.BORDER.LEFT.ONE, e.BORDER.LEFT.TWO, e.BORDER.RADIUS.ONE, e.BORDER.RADIUS.HALF, e.BORDER.RADIUS.QUARTER, e.BORDER.RADIUS.FULL, e.PADDING.FULL.ZERO, e.PADDING.FULL.ONE, e.PADDING.FULL.HALF, e.PADDING.FULL.QUARTER, e.PADDING.FULL.TWO, e.PADDING.FULL.FOUR, e.PADDING.Y.ZERO, e.PADDING.Y.ONE, e.PADDING.Y.HALF, e.PADDING.Y.QUARTER, e.PADDING.Y.TWO, e.PADDING.Y.FOUR, e.PADDING.TOP.ZERO, e.PADDING.TOP.ONE, e.PADDING.TOP.HALF, e.PADDING.TOP.QUARTER, e.PADDING.TOP.TWO, e.PADDING.TOP.FOUR, e.PADDING.X.ZERO, e.PADDING.X.ONE, e.PADDING.X.HALF, e.PADDING.X.QUARTER, e.PADDING.X.TWO, e.PADDING.X.FOUR, e.PADDING.RIGHT.ZERO, e.PADDING.RIGHT.ONE, e.PADDING.RIGHT.HALF, e.PADDING.RIGHT.QUARTER, e.PADDING.RIGHT.TWO, e.PADDING.RIGHT.FOUR, e.PADDING.BOTTOM.ZERO, e.PADDING.BOTTOM.ONE, e.PADDING.BOTTOM.HALF, e.PADDING.BOTTOM.QUARTER, e.PADDING.BOTTOM.TWO, e.PADDING.BOTTOM.FOUR, e.PADDING.LEFT.ZERO, e.PADDING.LEFT.ONE, e.PADDING.LEFT.HALF, e.PADDING.LEFT.QUARTER, e.PADDING.LEFT.TWO, e.PADDING.LEFT.FOUR, e.WIDTH.MAX_FULL, e.WIDTH.ZERO, e.WIDTH.FULL, e.HEIGHT.ZERO, e.HEIGHT.FULL, e.ALIGN.Y.MIDDLE, e.BREAK_WORD, e.CURSOR.NOT_ALLOWED, e.CURSOR.POINTER, e.CURSOR.TEXT, e.FONT.SIZE.TWELVE, e.FONT.SIZE.FOURTEEN, e.FONT.SIZE.SIXTEEN, e.FONT.SIZE.TWENTY, e.FONT.SIZE.TWENTY_FOUR, e.FONT.SIZE.THIRTY_TWO, e.FONT.WEIGHT.FOUR_HUNDRED, e.FONT.WEIGHT.FIVE_HUNDRED, e.FONT.WEIGHT.SIX_HUNDRED, e.FONT.WEIGHT.SEVEN_HUNDRED, e.LIST_BULLETS.OFF, e.OBJECT.CENTER, e.OBJECT.CONTAIN, e.OBJECT.COVER, e.OBJECT.SCALE_DOWN, e.POINTER_EVENTS.ON, e.POINTER_EVENTS.OFF, e.SCROLLBAR.OFF, e.SHADOW.BOTTOM, e.SHADOW.TOP, e.SNAP.ON, e.SNAP_ALIGN.START, e.ALIGN.X.LEFT, e.ALIGN.X.CENTER, e.ALIGN.X.RIGHT, e.TEXT_TRANSFORM.LOWER, e.TEXT_TRANSFORM.NONE, e.TEXT_TRANSFORM.UPPER, e.UNDERLINE.HOVER, e.UNDERLINE.OFF, e.UNDERLINE.ON, e.VISIBILITY.ON, e.VISIBILITY.OFF, e.WHITESPACE_WRAP.OFF, e.OVERFLOW.XY.AUTO, e.OVERFLOW.XY.HIDDEN, e.OVERFLOW.X.AUTO, e.OVERFLOW.X.HIDDEN, e.OVERFLOW.X.SCROLL, e.OVERFLOW.Y.AUTO, e.OVERFLOW.Y.HIDDEN, e.Z_INDEX.ONE;
|
|
435
|
+
const ce = {
|
|
404
436
|
HORIZONTAL: "horizontal",
|
|
405
437
|
VERTICAL: "vertical"
|
|
406
|
-
},
|
|
438
|
+
}, Te = /* @__PURE__ */ L({
|
|
407
439
|
__name: "TideDivider",
|
|
408
440
|
props: {
|
|
409
|
-
orientation: { default:
|
|
441
|
+
orientation: { default: ce.HORIZONTAL }
|
|
410
442
|
},
|
|
411
443
|
setup(o) {
|
|
412
444
|
const i = o;
|
|
413
|
-
return (s, n) => (
|
|
445
|
+
return (s, n) => (l(), E("div", {
|
|
414
446
|
class: a([
|
|
415
447
|
t(e).BORDER.COLOR.LOW,
|
|
416
|
-
i.orientation === t(
|
|
448
|
+
i.orientation === t(ce).HORIZONTAL ? [t(e).MARGIN.Y.HALF, t(e).BORDER.BOTTOM.ONE] : [t(e).MARGIN.X.HALF, t(e).BORDER.RIGHT.ONE]
|
|
417
449
|
])
|
|
418
450
|
}, null, 2));
|
|
419
451
|
}
|
|
420
|
-
}),
|
|
452
|
+
}), De = (o, i) => {
|
|
421
453
|
const s = o[i];
|
|
422
|
-
return s ? typeof s == "function" ? s() : Promise.resolve(s) : new Promise((n,
|
|
423
|
-
(typeof queueMicrotask == "function" ? queueMicrotask : setTimeout)(
|
|
454
|
+
return s ? typeof s == "function" ? s() : Promise.resolve(s) : new Promise((n, d) => {
|
|
455
|
+
(typeof queueMicrotask == "function" ? queueMicrotask : setTimeout)(d.bind(null, new Error("Unknown variable dynamic import: " + i)));
|
|
424
456
|
});
|
|
425
|
-
},
|
|
457
|
+
}, b = {
|
|
426
458
|
LARGE: "large",
|
|
427
459
|
SMALL: "small"
|
|
428
|
-
},
|
|
460
|
+
}, ne = (o) => {
|
|
429
461
|
let i = o && typeof o == "number" ? new Intl.NumberFormat().format(o) : String(o || ""), s = i;
|
|
430
462
|
return o && typeof o == "string" && (s = s.replace(/\D/g, ""), Number(s) ? i = new Intl.NumberFormat().format(Number(s)) : i = "0"), i;
|
|
431
|
-
},
|
|
463
|
+
}, Se = (o) => o && typeof o == "string" ? o.replace(/([a-z]{1})([A-Z]{1})/g, "$1 $2").replace(/[\s_-]/g, " ").toLowerCase().split(" ").map((i) => i.slice(0, 1).toUpperCase() + i.slice(1)).join("") : o, ge = (o) => {
|
|
432
464
|
let i = String(o && typeof o == "number" ? o : o || ""), s = i;
|
|
433
465
|
switch (s = s.replace(/\D/g, ""), s.length) {
|
|
434
466
|
case 7:
|
|
@@ -445,25 +477,25 @@ const Ie = {
|
|
|
445
477
|
break;
|
|
446
478
|
}
|
|
447
479
|
return i;
|
|
448
|
-
},
|
|
480
|
+
}, fe = (o) => `$${o ? ne(o) : String(o || "0")}`, me = /* @__PURE__ */ L({
|
|
449
481
|
__name: "TideIcon",
|
|
450
482
|
props: {
|
|
451
483
|
icon: {},
|
|
452
|
-
size: { default:
|
|
484
|
+
size: { default: b.SMALL }
|
|
453
485
|
},
|
|
454
486
|
setup(o) {
|
|
455
|
-
const i = o, s =
|
|
487
|
+
const i = o, s = R();
|
|
456
488
|
return Y(
|
|
457
489
|
() => i.icon,
|
|
458
490
|
() => {
|
|
459
|
-
const n = i.icon,
|
|
460
|
-
s.value =
|
|
491
|
+
const n = i.icon, d = Se(n), T = Ae(() => De(/* @__PURE__ */ Object.assign({ "../assets/svg/icons/IconAccountBalance.svg": () => import("./IconAccountBalance-ad4f4a95.js"), "../assets/svg/icons/IconAdd.svg": () => import("./IconAdd-917e055b.js"), "../assets/svg/icons/IconAiDescription.svg": () => import("./IconAiDescription-e6f8ed46.js"), "../assets/svg/icons/IconAlignSpace.svg": () => import("./IconAlignSpace-5d64a8e4.js"), "../assets/svg/icons/IconApplePay.svg": () => import("./IconApplePay-7742e162.js"), "../assets/svg/icons/IconArrowBack.svg": () => import("./IconArrowBack-1810092d.js"), "../assets/svg/icons/IconArrowForward.svg": () => import("./IconArrowForward-ddabefc9.js"), "../assets/svg/icons/IconArrowRight.svg": () => import("./IconArrowRight-d93347c3.js"), "../assets/svg/icons/IconAssignment.svg": () => import("./IconAssignment-1983e555.js"), "../assets/svg/icons/IconAwardStar.svg": () => import("./IconAwardStar-8128aca1.js"), "../assets/svg/icons/IconBookmark.svg": () => import("./IconBookmark-7d88d664.js"), "../assets/svg/icons/IconCalendarMonth.svg": () => import("./IconCalendarMonth-2fd1e713.js"), "../assets/svg/icons/IconCall.svg": () => import("./IconCall-8aa582d9.js"), "../assets/svg/icons/IconCheck.svg": () => import("./IconCheck-cf7470ee.js"), "../assets/svg/icons/IconChevronLeft.svg": () => import("./IconChevronLeft-558206bb.js"), "../assets/svg/icons/IconChevronRight.svg": () => import("./IconChevronRight-28930a0b.js"), "../assets/svg/icons/IconClear.svg": () => import("./IconClear-9419bf17.js"), "../assets/svg/icons/IconClose.svg": () => import("./IconClose-abfb6177.js"), "../assets/svg/icons/IconCycle.svg": () => import("./IconCycle-2affec71.js"), "../assets/svg/icons/IconDelete.svg": () => import("./IconDelete-67b69553.js"), "../assets/svg/icons/IconDiamond.svg": () => import("./IconDiamond-93af488a.js"), "../assets/svg/icons/IconDraft.svg": () => import("./IconDraft-6e70e48f.js"), "../assets/svg/icons/IconEdit.svg": () => import("./IconEdit-16d34325.js"), "../assets/svg/icons/IconError.svg": () => import("./IconError-a2922b95.js"), "../assets/svg/icons/IconExpandContent.svg": () => import("./IconExpandContent-7e144d1c.js"), "../assets/svg/icons/IconExpandLess.svg": () => import("./IconExpandLess-3a8a0552.js"), "../assets/svg/icons/IconExpandMore.svg": () => import("./IconExpandMore-c600148e.js"), "../assets/svg/icons/IconFacebook.svg": () => import("./IconFacebook-4658b533.js"), "../assets/svg/icons/IconFavorite.svg": () => import("./IconFavorite-d23faefe.js"), "../assets/svg/icons/IconFavoriteFilled.svg": () => import("./IconFavoriteFilled-aa0d6d5e.js"), "../assets/svg/icons/IconFormatBold.svg": () => import("./IconFormatBold-70a5cacf.js"), "../assets/svg/icons/IconFormatItalic.svg": () => import("./IconFormatItalic-c06504d7.js"), "../assets/svg/icons/IconFormatListBulleted.svg": () => import("./IconFormatListBulleted-9493858a.js"), "../assets/svg/icons/IconForum.svg": () => import("./IconForum-ae4ad63f.js"), "../assets/svg/icons/IconGavel.svg": () => import("./IconGavel-44c29036.js"), "../assets/svg/icons/IconGoogle.svg": () => import("./IconGoogle-febad0d8.js"), "../assets/svg/icons/IconGooglePay.svg": () => import("./IconGooglePay-8cf0286e.js"), "../assets/svg/icons/IconGrid.svg": () => import("./IconGrid-25f665e0.js"), "../assets/svg/icons/IconHeight.svg": () => import("./IconHeight-4fae7545.js"), "../assets/svg/icons/IconHelp.svg": () => import("./IconHelp-340ee4fb.js"), "../assets/svg/icons/IconInfo.svg": () => import("./IconInfo-efead10b.js"), "../assets/svg/icons/IconInsertText.svg": () => import("./IconInsertText-00236a65.js"), "../assets/svg/icons/IconInstagram.svg": () => import("./IconInstagram-57188d29.js"), "../assets/svg/icons/IconIosShare.svg": () => import("./IconIosShare-167aa8c4.js"), "../assets/svg/icons/IconLayout.svg": () => import("./IconLayout-2865e0eb.js"), "../assets/svg/icons/IconLinkedIn.svg": () => import("./IconLinkedIn-f29c217d.js"), "../assets/svg/icons/IconLocalShipping.svg": () => import("./IconLocalShipping-901a3e4c.js"), "../assets/svg/icons/IconLock.svg": () => import("./IconLock-47669e20.js"), "../assets/svg/icons/IconMail.svg": () => import("./IconMail-9b85058a.js"), "../assets/svg/icons/IconMenu.svg": () => import("./IconMenu-4bed57f3.js"), "../assets/svg/icons/IconMoreHoriz.svg": () => import("./IconMoreHoriz-2aabe29f.js"), "../assets/svg/icons/IconNotifications.svg": () => import("./IconNotifications-bcbf1d8c.js"), "../assets/svg/icons/IconOpenInNew.svg": () => import("./IconOpenInNew-78fffcfe.js"), "../assets/svg/icons/IconPalette.svg": () => import("./IconPalette-22865300.js"), "../assets/svg/icons/IconPaypal.svg": () => import("./IconPaypal-c28e6dbe.js"), "../assets/svg/icons/IconPerson.svg": () => import("./IconPerson-7ada8b07.js"), "../assets/svg/icons/IconPhotoCamera.svg": () => import("./IconPhotoCamera-31a58b85.js"), "../assets/svg/icons/IconPinterest.svg": () => import("./IconPinterest-fe5cc414.js"), "../assets/svg/icons/IconPlayArrow.svg": () => import("./IconPlayArrow-1ed5d884.js"), "../assets/svg/icons/IconRemove.svg": () => import("./IconRemove-bab221ba.js"), "../assets/svg/icons/IconRoundedCorners.svg": () => import("./IconRoundedCorners-e21c4321.js"), "../assets/svg/icons/IconRuler.svg": () => import("./IconRuler-0ceea80a.js"), "../assets/svg/icons/IconSearch.svg": () => import("./IconSearch-f8faefb4.js"), "../assets/svg/icons/IconSeating.svg": () => import("./IconSeating-2ca8921d.js"), "../assets/svg/icons/IconSell.svg": () => import("./IconSell-b011ac2d.js"), "../assets/svg/icons/IconShare.svg": () => import("./IconShare-57f28ce3.js"), "../assets/svg/icons/IconShoppingCart.svg": () => import("./IconShoppingCart-b532dab0.js"), "../assets/svg/icons/IconSms.svg": () => import("./IconSms-378f373a.js"), "../assets/svg/icons/IconStar.svg": () => import("./IconStar-1b8ad0f9.js"), "../assets/svg/icons/IconSwapVert.svg": () => import("./IconSwapVert-8085e942.js"), "../assets/svg/icons/IconThreeDRotation.svg": () => import("./IconThreeDRotation-33f086a7.js"), "../assets/svg/icons/IconTrophy.svg": () => import("./IconTrophy-f4be8b54.js"), "../assets/svg/icons/IconTune.svg": () => import("./IconTune-0913ba01.js"), "../assets/svg/icons/IconTwitter.svg": () => import("./IconTwitter-9acefb07.js"), "../assets/svg/icons/IconVideocam.svg": () => import("./IconVideocam-33650e6f.js"), "../assets/svg/icons/IconViewInAr.svg": () => import("./IconViewInAr-d1534ef2.js"), "../assets/svg/icons/IconVisibility.svg": () => import("./IconVisibility-a1c21dd0.js"), "../assets/svg/icons/IconVolumeOff.svg": () => import("./IconVolumeOff-8e121ef3.js"), "../assets/svg/icons/IconVolumeOn.svg": () => import("./IconVolumeOn-992e16dd.js"), "../assets/svg/icons/IconWarning.svg": () => import("./IconWarning-6f490acf.js"), "../assets/svg/icons/IconWeight.svg": () => import("./IconWeight-e3b3daa6.js"), "../assets/svg/icons/IconWidth.svg": () => import("./IconWidth-c81dbc7a.js"), "../assets/svg/icons/IconYoutube.svg": () => import("./IconYoutube-a6224033.js") }), `../assets/svg/icons/Icon${d}.svg`));
|
|
492
|
+
s.value = ue(T);
|
|
461
493
|
},
|
|
462
494
|
{ immediate: !0 }
|
|
463
|
-
), (n,
|
|
495
|
+
), (n, d) => (l(), E("div", {
|
|
464
496
|
class: a(["tide-icon", i.size])
|
|
465
497
|
}, [
|
|
466
|
-
s.value ? (
|
|
498
|
+
s.value ? (l(), S(j(s.value), {
|
|
467
499
|
key: 0,
|
|
468
500
|
class: a([t(e).DISPLAY.BLOCK]),
|
|
469
501
|
"data-icon": n.icon,
|
|
@@ -472,22 +504,22 @@ const Ie = {
|
|
|
472
504
|
], 2));
|
|
473
505
|
}
|
|
474
506
|
});
|
|
475
|
-
const
|
|
507
|
+
const U = (o, i) => {
|
|
476
508
|
const s = o.__vccOpts || o;
|
|
477
|
-
for (const [n,
|
|
478
|
-
s[n] =
|
|
509
|
+
for (const [n, d] of i)
|
|
510
|
+
s[n] = d;
|
|
479
511
|
return s;
|
|
480
|
-
},
|
|
512
|
+
}, g = /* @__PURE__ */ U(me, [["__scopeId", "data-v-52bbe8b5"]]), Ue = {
|
|
481
513
|
key: 0,
|
|
482
514
|
class: /* @__PURE__ */ a(["tide-indicator-label"])
|
|
483
|
-
},
|
|
515
|
+
}, Ce = /* @__PURE__ */ L({
|
|
484
516
|
__name: "TideIndicator",
|
|
485
517
|
props: {
|
|
486
518
|
label: { default: void 0 }
|
|
487
519
|
},
|
|
488
520
|
setup(o) {
|
|
489
521
|
const i = o;
|
|
490
|
-
return (s, n) => (
|
|
522
|
+
return (s, n) => (l(), E("div", {
|
|
491
523
|
class: a([
|
|
492
524
|
"tide-indicator",
|
|
493
525
|
i.label && "tide-indicator-background",
|
|
@@ -504,11 +536,11 @@ const C = (o, i) => {
|
|
|
504
536
|
] : []
|
|
505
537
|
])
|
|
506
538
|
}, [
|
|
507
|
-
i.label ? (
|
|
539
|
+
i.label ? (l(), E("div", Ue, u(i.label), 1)) : A("", !0)
|
|
508
540
|
], 2));
|
|
509
541
|
}
|
|
510
542
|
});
|
|
511
|
-
const
|
|
543
|
+
const Pe = /* @__PURE__ */ U(Ce, [["__scopeId", "data-v-4e56cba5"]]), v = {
|
|
512
544
|
ACCOUNT_BALANCE: "account-balance",
|
|
513
545
|
ADD: "add",
|
|
514
546
|
AI_DESCRIPTION: "ai-description",
|
|
@@ -592,7 +624,7 @@ const he = /* @__PURE__ */ C(Ge, [["__scopeId", "data-v-4e56cba5"]]), v = {
|
|
|
592
624
|
WEIGHT: "weight",
|
|
593
625
|
WIDTH: "width",
|
|
594
626
|
YOUTUBE: "youtube"
|
|
595
|
-
},
|
|
627
|
+
}, Ge = { class: "tide-accordion-item" }, he = /* @__PURE__ */ L({
|
|
596
628
|
__name: "TideAccordionItem",
|
|
597
629
|
props: {
|
|
598
630
|
hasBottomDivider: {
|
|
@@ -627,32 +659,32 @@ const he = /* @__PURE__ */ C(Ge, [["__scopeId", "data-v-4e56cba5"]]), v = {
|
|
|
627
659
|
}
|
|
628
660
|
},
|
|
629
661
|
setup(o) {
|
|
630
|
-
const i = o, s =
|
|
631
|
-
let n =
|
|
632
|
-
const
|
|
662
|
+
const i = o, s = R(i.isExpandedInitial);
|
|
663
|
+
let n = R();
|
|
664
|
+
const d = () => {
|
|
633
665
|
const T = n.value;
|
|
634
666
|
s.value = !s.value, T.style.gridTemplateRows = s.value ? "1fr" : "0fr";
|
|
635
667
|
};
|
|
636
|
-
return
|
|
668
|
+
return ie(() => {
|
|
637
669
|
const T = n.value;
|
|
638
670
|
T.style.gridTemplateRows = s.value ? "1fr" : "0fr";
|
|
639
|
-
}), (T,
|
|
640
|
-
i.hasTopDivider ? (
|
|
671
|
+
}), (T, I) => (l(), E("div", Ge, [
|
|
672
|
+
i.hasTopDivider ? (l(), S(Te, { key: 0 })) : A("", !0),
|
|
641
673
|
c("div", {
|
|
642
674
|
class: a(["tide-accordion-head", t(e).DISPLAY.FLEX, t(e).AXIS1.BETWEEN, t(e).PADDING.Y.HALF, t(e).CURSOR.POINTER]),
|
|
643
|
-
onClick:
|
|
675
|
+
onClick: d
|
|
644
676
|
}, [
|
|
645
677
|
c("div", {
|
|
646
678
|
class: a([t(e).DISPLAY.FLEX, t(e).AXIS2.CENTER, t(e).GAP.HALF, t(e).FONT.WEIGHT.SEVEN_HUNDRED])
|
|
647
679
|
}, [
|
|
648
|
-
c("span", null,
|
|
649
|
-
i.isOptional ? (
|
|
680
|
+
c("span", null, u(i.label), 1),
|
|
681
|
+
i.isOptional ? (l(), E("span", {
|
|
650
682
|
key: 0,
|
|
651
683
|
class: a([t(e).FONT.COLOR.SURFACE.VARIANT])
|
|
652
684
|
}, " (optional) ", 2)) : A("", !0),
|
|
653
|
-
i.isActive ? (
|
|
685
|
+
i.isActive ? (l(), S(Pe, { key: 1 })) : A("", !0)
|
|
654
686
|
], 2),
|
|
655
|
-
P(
|
|
687
|
+
P(g, {
|
|
656
688
|
icon: s.value ? t(v).EXPAND_LESS : t(v).EXPAND_MORE
|
|
657
689
|
}, null, 8, ["icon"])
|
|
658
690
|
], 2),
|
|
@@ -667,22 +699,22 @@ const he = /* @__PURE__ */ C(Ge, [["__scopeId", "data-v-4e56cba5"]]), v = {
|
|
|
667
699
|
c("div", {
|
|
668
700
|
class: a([t(e).MARGIN.Y.ONE, t(e).FONT.WEIGHT.FOUR_HUNDRED, t(e).FONT.COLOR.SURFACE.DEFAULT])
|
|
669
701
|
}, [
|
|
670
|
-
|
|
702
|
+
B(T.$slots, "default", {}, void 0, !0)
|
|
671
703
|
], 2)
|
|
672
704
|
], 2)
|
|
673
705
|
], 2),
|
|
674
|
-
i.hasBottomDivider ? (
|
|
706
|
+
i.hasBottomDivider ? (l(), S(Te, { key: 1 })) : A("", !0)
|
|
675
707
|
]));
|
|
676
708
|
}
|
|
677
709
|
});
|
|
678
|
-
const
|
|
710
|
+
const Ht = /* @__PURE__ */ U(he, [["__scopeId", "data-v-ad283103"]]), _ = {
|
|
679
711
|
BUTTON: "button",
|
|
680
712
|
LINK: "a"
|
|
681
|
-
},
|
|
713
|
+
}, x = {
|
|
682
714
|
BUTTON: "button",
|
|
683
715
|
DIV: "div",
|
|
684
716
|
LINK: "a"
|
|
685
|
-
},
|
|
717
|
+
}, $ = {
|
|
686
718
|
PRIMARY: "primary",
|
|
687
719
|
SECONDARY: "secondary",
|
|
688
720
|
TERTIARY: "tertiary",
|
|
@@ -691,35 +723,35 @@ const Bt = /* @__PURE__ */ C(He, [["__scopeId", "data-v-ad283103"]]), S = {
|
|
|
691
723
|
}, k = {
|
|
692
724
|
BLANK: "_blank",
|
|
693
725
|
SELF: void 0
|
|
694
|
-
}, J = /* @__PURE__ */
|
|
726
|
+
}, J = /* @__PURE__ */ L({
|
|
695
727
|
__name: "TideButtonIcon",
|
|
696
728
|
props: {
|
|
697
729
|
disabled: { type: Boolean, default: !1 },
|
|
698
|
-
element: { default:
|
|
730
|
+
element: { default: _.BUTTON },
|
|
699
731
|
href: { default: void 0 },
|
|
700
732
|
icon: { default: void 0 },
|
|
701
733
|
isNewTab: { type: Boolean, default: !1 },
|
|
702
|
-
priority: { default:
|
|
734
|
+
priority: { default: $.PRIMARY }
|
|
703
735
|
},
|
|
704
736
|
setup(o) {
|
|
705
737
|
const i = o;
|
|
706
|
-
return (s, n) => (
|
|
738
|
+
return (s, n) => (l(), S(j(i.element === t(_).LINK ? "a" : "button"), {
|
|
707
739
|
"aria-label": i.icon,
|
|
708
740
|
class: a([
|
|
709
|
-
i.element === t(
|
|
741
|
+
i.element === t(_).LINK ? "tide-link-as-button-icon" : "tide-button-icon",
|
|
710
742
|
i.priority && `tide-button-${i.priority}`,
|
|
711
743
|
[t(e).DISPLAY.FLEX, t(e).AXIS1.CENTER, t(e).AXIS2.CENTER, t(e).BORDER.RADIUS.FULL, t(e).PADDING.FULL.HALF],
|
|
712
|
-
i.element === t(
|
|
744
|
+
i.element === t(_).LINK ? [t(e).UNDERLINE.OFF] : ""
|
|
713
745
|
]),
|
|
714
|
-
disabled: i.element === t(
|
|
715
|
-
href: i.element === t(
|
|
716
|
-
target: i.element === t(
|
|
746
|
+
disabled: i.element === t(_).BUTTON && i.disabled,
|
|
747
|
+
href: i.element === t(_).LINK && i.href ? i.href : void 0,
|
|
748
|
+
target: i.element === t(_).LINK && i.isNewTab ? t(k).BLANK : t(k).SELF
|
|
717
749
|
}, {
|
|
718
|
-
default:
|
|
719
|
-
i.icon ? (
|
|
750
|
+
default: ee(() => [
|
|
751
|
+
i.icon ? (l(), S(g, {
|
|
720
752
|
key: 0,
|
|
721
753
|
icon: i.icon,
|
|
722
|
-
size: t(
|
|
754
|
+
size: t(b).LARGE
|
|
723
755
|
}, null, 8, ["icon", "size"])) : A("", !0)
|
|
724
756
|
]),
|
|
725
757
|
_: 1
|
|
@@ -730,7 +762,7 @@ const Bt = /* @__PURE__ */ C(He, [["__scopeId", "data-v-ad283103"]]), S = {
|
|
|
730
762
|
INFO: "info",
|
|
731
763
|
SUCCESS: "success",
|
|
732
764
|
WARNING: "warning"
|
|
733
|
-
},
|
|
765
|
+
}, be = /* @__PURE__ */ L({
|
|
734
766
|
__name: "TideAlert",
|
|
735
767
|
props: {
|
|
736
768
|
heading: { default: void 0 },
|
|
@@ -738,7 +770,7 @@ const Bt = /* @__PURE__ */ C(He, [["__scopeId", "data-v-ad283103"]]), S = {
|
|
|
738
770
|
type: { default: y.INFO }
|
|
739
771
|
},
|
|
740
772
|
setup(o) {
|
|
741
|
-
const i = o, s =
|
|
773
|
+
const i = o, s = f(() => {
|
|
742
774
|
let n = v.VIEW_IN_AR;
|
|
743
775
|
switch (i.type) {
|
|
744
776
|
case y.ERROR:
|
|
@@ -757,7 +789,7 @@ const Bt = /* @__PURE__ */ C(He, [["__scopeId", "data-v-ad283103"]]), S = {
|
|
|
757
789
|
}
|
|
758
790
|
return n;
|
|
759
791
|
});
|
|
760
|
-
return (n,
|
|
792
|
+
return (n, d) => (l(), E("div", {
|
|
761
793
|
class: a([
|
|
762
794
|
i.type,
|
|
763
795
|
"tide-alert",
|
|
@@ -774,7 +806,7 @@ const Bt = /* @__PURE__ */ C(He, [["__scopeId", "data-v-ad283103"]]), S = {
|
|
|
774
806
|
c("div", {
|
|
775
807
|
class: a(["tide-alert-icon", t(e).DISPLAY.FLEX, t(e).AXIS2.CENTER])
|
|
776
808
|
}, [
|
|
777
|
-
P(
|
|
809
|
+
P(g, {
|
|
778
810
|
class: a([
|
|
779
811
|
i.type,
|
|
780
812
|
t(e).BORDER.RADIUS.FULL,
|
|
@@ -793,23 +825,23 @@ const Bt = /* @__PURE__ */ C(He, [["__scopeId", "data-v-ad283103"]]), S = {
|
|
|
793
825
|
}, [
|
|
794
826
|
c("h2", {
|
|
795
827
|
class: a([t(e).FONT.SIZE.SIXTEEN, t(e).FONT.WEIGHT.SIX_HUNDRED, t(e).FONT.COLOR.SURFACE.DEFAULT])
|
|
796
|
-
},
|
|
828
|
+
}, u(i.heading), 3)
|
|
797
829
|
], 2),
|
|
798
830
|
P(J, {
|
|
799
831
|
class: a(["tide-alert-close", t(e).AXIS2.CENTER, t(e).FONT.COLOR.SURFACE.DEFAULT]),
|
|
800
832
|
icon: t(v).CLOSE,
|
|
801
|
-
priority: t(
|
|
833
|
+
priority: t($).QUATERNARY,
|
|
802
834
|
"aria-label": "Close alert"
|
|
803
835
|
}, null, 8, ["class", "icon", "priority"]),
|
|
804
836
|
c("div", {
|
|
805
837
|
class: a(["tide-alert-body", t(e).FONT.WEIGHT.FIVE_HUNDRED, t(e).FONT.COLOR.SURFACE.VARIANT])
|
|
806
838
|
}, [
|
|
807
|
-
|
|
839
|
+
B(n.$slots, "default", {}, void 0, !0)
|
|
808
840
|
], 2)
|
|
809
841
|
], 2));
|
|
810
842
|
}
|
|
811
843
|
});
|
|
812
|
-
const
|
|
844
|
+
const yt = /* @__PURE__ */ U(be, [["__scopeId", "data-v-279a5605"]]), He = ["alt", "loading", "src"], ye = /* @__PURE__ */ L({
|
|
813
845
|
__name: "TideBackgroundImage",
|
|
814
846
|
props: {
|
|
815
847
|
alt: { default: "" },
|
|
@@ -817,7 +849,7 @@ const Xt = /* @__PURE__ */ C(ye, [["__scopeId", "data-v-279a5605"]]), Be = ["alt
|
|
|
817
849
|
src: {}
|
|
818
850
|
},
|
|
819
851
|
setup(o) {
|
|
820
|
-
return (i, s) => (
|
|
852
|
+
return (i, s) => (l(), E("div", {
|
|
821
853
|
class: a([t(e).POSITION.RELATIVE, t(e).OVERFLOW.XY.HIDDEN, t(e).ISOLATION.ISOLATE])
|
|
822
854
|
}, [
|
|
823
855
|
c("div", {
|
|
@@ -835,20 +867,20 @@ const Xt = /* @__PURE__ */ C(ye, [["__scopeId", "data-v-279a5605"]]), Be = ["alt
|
|
|
835
867
|
class: a(["tide-background-image", t(e).OBJECT.COVER, t(e).WIDTH.FULL, t(e).HEIGHT.FULL]),
|
|
836
868
|
loading: i.isLazy ? "lazy" : void 0,
|
|
837
869
|
src: i.src
|
|
838
|
-
}, null, 10,
|
|
870
|
+
}, null, 10, He)
|
|
839
871
|
], 2),
|
|
840
|
-
|
|
872
|
+
B(i.$slots, "default", {}, void 0, !0)
|
|
841
873
|
], 2));
|
|
842
874
|
}
|
|
843
875
|
});
|
|
844
|
-
const
|
|
876
|
+
const Bt = /* @__PURE__ */ U(ye, [["__scopeId", "data-v-99ffd814"]]), Xt = /* @__PURE__ */ L({
|
|
845
877
|
__name: "TideBadge",
|
|
846
878
|
props: {
|
|
847
879
|
label: {}
|
|
848
880
|
},
|
|
849
881
|
setup(o) {
|
|
850
882
|
const i = o;
|
|
851
|
-
return (s, n) => (
|
|
883
|
+
return (s, n) => (l(), E("div", {
|
|
852
884
|
class: a([
|
|
853
885
|
"tide-badge",
|
|
854
886
|
t(e).FONT.COLOR.SURFACE.DEFAULT,
|
|
@@ -861,16 +893,16 @@ const Wt = /* @__PURE__ */ C(Xe, [["__scopeId", "data-v-99ffd814"]]), Mt = /* @_
|
|
|
861
893
|
t(e).PADDING.X.HALF,
|
|
862
894
|
t(e).FONT.SIZE.FOURTEEN
|
|
863
895
|
])
|
|
864
|
-
},
|
|
896
|
+
}, u(i.label), 3));
|
|
865
897
|
}
|
|
866
|
-
}),
|
|
898
|
+
}), Wt = /* @__PURE__ */ L({
|
|
867
899
|
__name: "TideBadgePremium",
|
|
868
900
|
props: {
|
|
869
901
|
label: {}
|
|
870
902
|
},
|
|
871
903
|
setup(o) {
|
|
872
904
|
const i = o;
|
|
873
|
-
return (s, n) => (
|
|
905
|
+
return (s, n) => (l(), E("div", {
|
|
874
906
|
class: a([
|
|
875
907
|
"tide-badge",
|
|
876
908
|
t(e).FONT.COLOR.SURFACE.DEFAULT,
|
|
@@ -882,30 +914,30 @@ const Wt = /* @__PURE__ */ C(Xe, [["__scopeId", "data-v-99ffd814"]]), Mt = /* @_
|
|
|
882
914
|
t(e).PADDING.X.HALF,
|
|
883
915
|
t(e).FONT.SIZE.TWELVE
|
|
884
916
|
])
|
|
885
|
-
},
|
|
917
|
+
}, u(i.label), 3));
|
|
886
918
|
}
|
|
887
|
-
}),
|
|
919
|
+
}), Mt = {
|
|
888
920
|
JUST_LISTED: "Just listed",
|
|
889
921
|
NATIONWIDE: "Nationwide",
|
|
890
922
|
REDUCED: "Reduced",
|
|
891
923
|
UPDATED: "Updated"
|
|
892
|
-
},
|
|
924
|
+
}, kt = {
|
|
893
925
|
PREMIUM: "Premium",
|
|
894
926
|
PREMIUM_SELECT: "Premium SELECT"
|
|
895
|
-
},
|
|
927
|
+
}, Be = {
|
|
896
928
|
YEARS_10: "10",
|
|
897
929
|
YEARS_15: "15",
|
|
898
930
|
YEARS_5: "5"
|
|
899
|
-
},
|
|
931
|
+
}, Xe = {
|
|
900
932
|
class: /* @__PURE__ */ a([])
|
|
901
|
-
},
|
|
933
|
+
}, Yt = /* @__PURE__ */ L({
|
|
902
934
|
__name: "TideBadgeTrustedPartner",
|
|
903
935
|
props: {
|
|
904
|
-
years: { default:
|
|
936
|
+
years: { default: Be.YEARS_5 }
|
|
905
937
|
},
|
|
906
938
|
setup(o) {
|
|
907
939
|
const i = o;
|
|
908
|
-
return (s, n) => (
|
|
940
|
+
return (s, n) => (l(), E("div", {
|
|
909
941
|
class: a([
|
|
910
942
|
"tide-badge-trusted-partner",
|
|
911
943
|
t(e).FONT.COLOR.SURFACE.BRAND,
|
|
@@ -917,15 +949,15 @@ const Wt = /* @__PURE__ */ C(Xe, [["__scopeId", "data-v-99ffd814"]]), Mt = /* @_
|
|
|
917
949
|
t(e).FONT.SIZE.FOURTEEN
|
|
918
950
|
])
|
|
919
951
|
}, [
|
|
920
|
-
P(
|
|
952
|
+
P(g, {
|
|
921
953
|
icon: t(v).VIEW_IN_AR
|
|
922
954
|
}, null, 8, ["icon"]),
|
|
923
|
-
c("div",
|
|
924
|
-
c("span", null,
|
|
955
|
+
c("div", Xe, [
|
|
956
|
+
c("span", null, u(i.years) + " year trusted partner", 1)
|
|
925
957
|
])
|
|
926
958
|
], 2));
|
|
927
959
|
}
|
|
928
|
-
}),
|
|
960
|
+
}), We = ["data-track", "href"], Me = ["data-track"], ke = { key: 0 }, Vt = /* @__PURE__ */ L({
|
|
929
961
|
__name: "TideBreadCrumbs",
|
|
930
962
|
props: {
|
|
931
963
|
breadCrumbs: {
|
|
@@ -936,116 +968,116 @@ const Wt = /* @__PURE__ */ C(Xe, [["__scopeId", "data-v-99ffd814"]]), Mt = /* @_
|
|
|
936
968
|
},
|
|
937
969
|
setup(o) {
|
|
938
970
|
const i = o;
|
|
939
|
-
return (s, n) => (
|
|
971
|
+
return (s, n) => (l(), E("ul", {
|
|
940
972
|
class: a(["tide-bread-crumbs", t(e).DISPLAY.FLEX, t(e).AXIS2.CENTER, t(e).GAP.QUARTER, t(e).LIST_BULLETS.OFF])
|
|
941
973
|
}, [
|
|
942
|
-
(
|
|
943
|
-
key:
|
|
974
|
+
(l(!0), E(M, null, Q(i.breadCrumbs, (d, T) => (l(), E(M, {
|
|
975
|
+
key: d.label
|
|
944
976
|
}, [
|
|
945
977
|
c("li", {
|
|
946
978
|
class: a([t(e).FONT.SIZE.FOURTEEN])
|
|
947
979
|
}, [
|
|
948
|
-
|
|
980
|
+
d.url ? (l(), E("a", {
|
|
949
981
|
key: 0,
|
|
950
982
|
class: a([t(e).FONT.WEIGHT.SEVEN_HUNDRED, t(e).FONT.COLOR.SURFACE.DEFAULT]),
|
|
951
|
-
"data-track":
|
|
952
|
-
href:
|
|
953
|
-
},
|
|
983
|
+
"data-track": d.dataTrack || void 0,
|
|
984
|
+
href: d.url
|
|
985
|
+
}, u(d.label), 11, We)) : (l(), E("span", {
|
|
954
986
|
key: 1,
|
|
955
987
|
class: a([t(e).FONT.WEIGHT.FIVE_HUNDRED, t(e).FONT.COLOR.SURFACE.VARIANT]),
|
|
956
|
-
"data-track":
|
|
957
|
-
},
|
|
988
|
+
"data-track": d.dataTrack || void 0
|
|
989
|
+
}, u(d.label), 11, Me))
|
|
958
990
|
], 2),
|
|
959
|
-
i.breadCrumbs && T < i.breadCrumbs.length - 1 ? (
|
|
960
|
-
P(
|
|
991
|
+
i.breadCrumbs && T < i.breadCrumbs.length - 1 ? (l(), E("li", ke, [
|
|
992
|
+
P(g, {
|
|
961
993
|
icon: t(v).ARROW_RIGHT,
|
|
962
|
-
size: t(
|
|
994
|
+
size: t(b).SMALL
|
|
963
995
|
}, null, 8, ["icon", "size"])
|
|
964
996
|
])) : A("", !0)
|
|
965
997
|
], 64))), 128))
|
|
966
998
|
], 2));
|
|
967
999
|
}
|
|
968
|
-
}),
|
|
1000
|
+
}), xt = /* @__PURE__ */ L({
|
|
969
1001
|
__name: "TideButton",
|
|
970
1002
|
props: {
|
|
971
1003
|
disabled: { type: Boolean, default: !1 },
|
|
972
|
-
element: { default:
|
|
1004
|
+
element: { default: _.BUTTON },
|
|
973
1005
|
href: { default: void 0 },
|
|
974
1006
|
iconLeading: { default: void 0 },
|
|
975
1007
|
iconTrailing: { default: void 0 },
|
|
976
1008
|
isNewTab: { type: Boolean, default: !1 },
|
|
977
1009
|
label: { default: void 0 },
|
|
978
|
-
priority: { default:
|
|
1010
|
+
priority: { default: $.PRIMARY }
|
|
979
1011
|
},
|
|
980
1012
|
setup(o) {
|
|
981
1013
|
const i = o;
|
|
982
|
-
return (s, n) => (
|
|
1014
|
+
return (s, n) => (l(), S(j(i.element === t(_).LINK ? t(_).LINK : t(_).BUTTON), {
|
|
983
1015
|
class: a([
|
|
984
|
-
i.element === t(
|
|
1016
|
+
i.element === t(_).LINK ? "tide-link-as-button" : "tide-button",
|
|
985
1017
|
i.priority && `tide-button-${i.priority}`,
|
|
986
|
-
i.element === t(
|
|
1018
|
+
i.element === t(_).LINK ? [t(e).DISPLAY.INLINE_FLEX] : [t(e).DISPLAY.FLEX],
|
|
987
1019
|
[t(e).AXIS1.CENTER, t(e).AXIS2.CENTER, t(e).GAP.HALF, t(e).BORDER.RADIUS.HALF],
|
|
988
|
-
i.element === t(
|
|
1020
|
+
i.element === t(_).LINK ? t(e).UNDERLINE.OFF : "",
|
|
989
1021
|
t(e).PADDING.Y.ONE,
|
|
990
1022
|
t(e).PADDING.X.TWO,
|
|
991
1023
|
t(e).FONT.WEIGHT.SIX_HUNDRED
|
|
992
1024
|
]),
|
|
993
|
-
disabled: i.element === t(
|
|
994
|
-
href: i.element === t(
|
|
995
|
-
target: i.element === t(
|
|
1025
|
+
disabled: i.element === t(_).BUTTON && i.disabled,
|
|
1026
|
+
href: i.element === t(_).LINK && i.href ? i.href : void 0,
|
|
1027
|
+
target: i.element === t(_).LINK && i.isNewTab ? t(k).BLANK : t(k).SELF
|
|
996
1028
|
}, {
|
|
997
|
-
default:
|
|
998
|
-
i.iconLeading ? (
|
|
1029
|
+
default: ee(() => [
|
|
1030
|
+
i.iconLeading ? (l(), S(g, {
|
|
999
1031
|
key: 0,
|
|
1000
1032
|
icon: i.iconLeading,
|
|
1001
|
-
size: t(
|
|
1033
|
+
size: t(b).LARGE
|
|
1002
1034
|
}, null, 8, ["icon", "size"])) : A("", !0),
|
|
1003
|
-
|
|
1004
|
-
i.iconTrailing ? (
|
|
1035
|
+
Oe(" " + u(i.label) + " ", 1),
|
|
1036
|
+
i.iconTrailing ? (l(), S(g, {
|
|
1005
1037
|
key: 1,
|
|
1006
1038
|
icon: i.iconTrailing,
|
|
1007
|
-
size: t(
|
|
1039
|
+
size: t(b).LARGE
|
|
1008
1040
|
}, null, 8, ["icon", "size"])) : A("", !0)
|
|
1009
1041
|
]),
|
|
1010
1042
|
_: 1
|
|
1011
1043
|
}, 8, ["class", "disabled", "href", "target"]));
|
|
1012
1044
|
}
|
|
1013
|
-
}),
|
|
1045
|
+
}), Ye = /* @__PURE__ */ L({
|
|
1014
1046
|
__name: "TideButtonPagination",
|
|
1015
1047
|
props: {
|
|
1016
1048
|
disabled: { type: Boolean, default: !1 },
|
|
1017
|
-
element: { default:
|
|
1049
|
+
element: { default: x.BUTTON },
|
|
1018
1050
|
href: { default: void 0 },
|
|
1019
1051
|
label: { default: void 0 }
|
|
1020
1052
|
},
|
|
1021
1053
|
setup(o) {
|
|
1022
1054
|
const i = o;
|
|
1023
|
-
return (s, n) => (
|
|
1024
|
-
i.element === t(
|
|
1055
|
+
return (s, n) => (l(), S(j(
|
|
1056
|
+
i.element === t(x).LINK ? "a" : i.element === t(x).BUTTON ? "button" : "div"
|
|
1025
1057
|
), {
|
|
1026
1058
|
class: a([
|
|
1027
|
-
i.element === t(
|
|
1059
|
+
i.element === t(x).LINK ? "tide-link-as-button-icon" : "tide-button-icon",
|
|
1028
1060
|
[t(e).DISPLAY.INLINE_BLOCK, t(e).BORDER.RADIUS.FULL, t(e).PADDING.FULL.HALF],
|
|
1029
|
-
i.element === t(
|
|
1030
|
-
i.element === t(
|
|
1061
|
+
i.element === t(x).LINK ? [t(e).UNDERLINE.OFF] : "",
|
|
1062
|
+
i.element === t(x).DIV ? [t(e).CURSOR.POINTER] : "",
|
|
1031
1063
|
[t(e).FONT.WEIGHT.SEVEN_HUNDRED]
|
|
1032
1064
|
]),
|
|
1033
|
-
disabled: i.element === t(
|
|
1034
|
-
href: i.element === t(
|
|
1065
|
+
disabled: i.element === t(x).BUTTON && i.disabled,
|
|
1066
|
+
href: i.element === t(x).LINK && i.href ? i.href : void 0
|
|
1035
1067
|
}, {
|
|
1036
|
-
default:
|
|
1068
|
+
default: ee(() => [
|
|
1037
1069
|
c("span", {
|
|
1038
1070
|
class: a(["label", t(e).DISPLAY.FLEX, t(e).AXIS1.CENTER, t(e).AXIS2.CENTER])
|
|
1039
|
-
},
|
|
1071
|
+
}, u(i.label), 3)
|
|
1040
1072
|
]),
|
|
1041
1073
|
_: 1
|
|
1042
1074
|
}, 8, ["class", "disabled", "href"]));
|
|
1043
1075
|
}
|
|
1044
1076
|
});
|
|
1045
|
-
const
|
|
1077
|
+
const Ve = /* @__PURE__ */ U(Ye, [["__scopeId", "data-v-0710b4ab"]]), $t = /* @__PURE__ */ L({
|
|
1046
1078
|
__name: "TideCard",
|
|
1047
1079
|
setup(o) {
|
|
1048
|
-
return (i, s) => (
|
|
1080
|
+
return (i, s) => (l(), E("div", {
|
|
1049
1081
|
class: a([
|
|
1050
1082
|
"tide-card",
|
|
1051
1083
|
t(e).HEIGHT.FULL,
|
|
@@ -1056,10 +1088,10 @@ const $e = /* @__PURE__ */ C(xe, [["__scopeId", "data-v-0710b4ab"]]), Qt = /* @_
|
|
|
1056
1088
|
t(e).SNAP_ALIGN.START
|
|
1057
1089
|
])
|
|
1058
1090
|
}, [
|
|
1059
|
-
|
|
1091
|
+
B(i.$slots, "default")
|
|
1060
1092
|
], 2));
|
|
1061
1093
|
}
|
|
1062
|
-
}),
|
|
1094
|
+
}), Ie = 16, wt = /* @__PURE__ */ L({
|
|
1063
1095
|
__name: "TideCarousel",
|
|
1064
1096
|
props: {
|
|
1065
1097
|
isTouchscreen: { type: Boolean },
|
|
@@ -1068,74 +1100,74 @@ const $e = /* @__PURE__ */ C(xe, [["__scopeId", "data-v-0710b4ab"]]), Qt = /* @_
|
|
|
1068
1100
|
emits: ["change"],
|
|
1069
1101
|
setup(o, { emit: i }) {
|
|
1070
1102
|
const s = o;
|
|
1071
|
-
let n =
|
|
1072
|
-
const
|
|
1073
|
-
const
|
|
1074
|
-
if (
|
|
1103
|
+
let n = R(), d = R(), T = R(), I = R();
|
|
1104
|
+
const r = R(), O = R(), m = R(), N = R(0), G = () => {
|
|
1105
|
+
const p = Array.from(r.value.children).map((h) => h.offsetLeft);
|
|
1106
|
+
if (p.length === 0)
|
|
1075
1107
|
return;
|
|
1076
|
-
const
|
|
1077
|
-
|
|
1078
|
-
},
|
|
1079
|
-
n.value =
|
|
1080
|
-
},
|
|
1081
|
-
|
|
1082
|
-
},
|
|
1083
|
-
|
|
1108
|
+
const F = p.reduce((h, Z) => Math.abs(Z - O.value.scrollLeft) < Math.abs(h - O.value.scrollLeft) ? Z : h);
|
|
1109
|
+
N.value = p.indexOf(F);
|
|
1110
|
+
}, H = () => {
|
|
1111
|
+
n.value = r.value.scrollWidth, d.value = O.value.clientWidth, T.value = n.value > d.value, I.value = O.value.scrollWidth - O.value.clientWidth, m.value = T.value && !s.isTouchscreen, G();
|
|
1112
|
+
}, w = () => {
|
|
1113
|
+
H();
|
|
1114
|
+
}, V = (p) => {
|
|
1115
|
+
O.value.scrollTo({
|
|
1084
1116
|
behavior: "smooth",
|
|
1085
|
-
left:
|
|
1117
|
+
left: r.value.children[p].offsetLeft
|
|
1086
1118
|
});
|
|
1087
|
-
},
|
|
1088
|
-
const
|
|
1089
|
-
if (
|
|
1090
|
-
|
|
1119
|
+
}, X = () => {
|
|
1120
|
+
const p = r.value.scrollWidth, F = O.value.scrollLeft + O.value.clientWidth;
|
|
1121
|
+
if (F > p)
|
|
1122
|
+
O.value.scrollTo({
|
|
1091
1123
|
behavior: "smooth",
|
|
1092
|
-
left:
|
|
1124
|
+
left: p
|
|
1093
1125
|
});
|
|
1094
1126
|
else {
|
|
1095
|
-
const
|
|
1096
|
-
|
|
1127
|
+
const h = s.offsetX && N.value === 0, C = F === p ? 0 : h ? 2 : N.value + 1;
|
|
1128
|
+
V(C);
|
|
1097
1129
|
}
|
|
1098
|
-
},
|
|
1099
|
-
const
|
|
1100
|
-
|
|
1130
|
+
}, D = () => {
|
|
1131
|
+
const p = s.offsetX ? 1 : 0, F = N.value - 1 === p, Z = N.value <= p ? r.value.children.length - 1 : F ? 0 : N.value - 1;
|
|
1132
|
+
V(Z);
|
|
1101
1133
|
};
|
|
1102
|
-
return
|
|
1103
|
-
|
|
1104
|
-
}),
|
|
1105
|
-
window.removeEventListener("resize",
|
|
1106
|
-
}),
|
|
1107
|
-
|
|
1108
|
-
}), Y(
|
|
1109
|
-
i("change",
|
|
1110
|
-
}), (
|
|
1134
|
+
return ie(() => {
|
|
1135
|
+
H(), window.addEventListener("resize", H);
|
|
1136
|
+
}), Ne(() => {
|
|
1137
|
+
window.removeEventListener("resize", H);
|
|
1138
|
+
}), Le(() => {
|
|
1139
|
+
H();
|
|
1140
|
+
}), Y(N, () => {
|
|
1141
|
+
i("change", N.value);
|
|
1142
|
+
}), (p, F) => (l(), E("section", {
|
|
1111
1143
|
class: a(["tide-carousel", t(e).POSITION.RELATIVE, t(e).DISPLAY.FLEX, t(e).AXIS2.CENTER, t(e).WIDTH.FULL]),
|
|
1112
1144
|
ref: "carouselRef"
|
|
1113
1145
|
}, [
|
|
1114
1146
|
c("div", {
|
|
1115
1147
|
class: a([t(e).SCROLLBAR.OFF, t(e).SNAP.ON, t(e).OVERFLOW.X.SCROLL]),
|
|
1116
1148
|
ref_key: "frameRef",
|
|
1117
|
-
ref:
|
|
1118
|
-
onScroll:
|
|
1149
|
+
ref: O,
|
|
1150
|
+
onScroll: w
|
|
1119
1151
|
}, [
|
|
1120
1152
|
c("ul", {
|
|
1121
1153
|
class: a([s.isTouchscreen ? [t(e).OVERFLOW.X.AUTO] : "", t(e).DISPLAY.FLEX, t(e).GAP.ONE, t(e).LIST_BULLETS.OFF]),
|
|
1122
1154
|
ref_key: "contentRef",
|
|
1123
|
-
ref:
|
|
1155
|
+
ref: r
|
|
1124
1156
|
}, [
|
|
1125
|
-
s.offsetX ? (
|
|
1157
|
+
s.offsetX ? (l(), E("li", {
|
|
1126
1158
|
key: 0,
|
|
1127
1159
|
class: a([t(e).FLEX.SHRINK.OFF, t(e).SNAP_ALIGN.START]),
|
|
1128
|
-
style:
|
|
1160
|
+
style: se({ width: `${s.offsetX - Ie}px` })
|
|
1129
1161
|
}, null, 6)) : A("", !0),
|
|
1130
|
-
|
|
1131
|
-
s.offsetX ? (
|
|
1162
|
+
B(p.$slots, "default"),
|
|
1163
|
+
s.offsetX ? (l(), E("li", {
|
|
1132
1164
|
key: 1,
|
|
1133
1165
|
class: a([t(e).FLEX.SHRINK.OFF, t(e).SNAP_ALIGN.START]),
|
|
1134
|
-
style:
|
|
1166
|
+
style: se({ width: `${s.offsetX - Ie}px` })
|
|
1135
1167
|
}, null, 6)) : A("", !0)
|
|
1136
1168
|
], 2)
|
|
1137
1169
|
], 34),
|
|
1138
|
-
|
|
1170
|
+
m.value ? (l(), E("div", {
|
|
1139
1171
|
key: 0,
|
|
1140
1172
|
class: a([
|
|
1141
1173
|
t(e).POSITION.ABSOLUTE,
|
|
@@ -1150,19 +1182,19 @@ const $e = /* @__PURE__ */ C(xe, [["__scopeId", "data-v-0710b4ab"]]), Qt = /* @_
|
|
|
1150
1182
|
P(J, {
|
|
1151
1183
|
class: a([t(e).MARGIN.LEFT.ONE, t(e).POINTER_EVENTS.ON]),
|
|
1152
1184
|
icon: t(v).CHEVRON_LEFT,
|
|
1153
|
-
priority: t(
|
|
1154
|
-
onClick:
|
|
1185
|
+
priority: t($).QUATERNARY,
|
|
1186
|
+
onClick: D
|
|
1155
1187
|
}, null, 8, ["class", "icon", "priority"]),
|
|
1156
1188
|
P(J, {
|
|
1157
1189
|
class: a([t(e).MARGIN.RIGHT.ONE, t(e).POINTER_EVENTS.ON]),
|
|
1158
1190
|
icon: t(v).CHEVRON_RIGHT,
|
|
1159
|
-
priority: t(
|
|
1160
|
-
onClick:
|
|
1191
|
+
priority: t($).QUATERNARY,
|
|
1192
|
+
onClick: X
|
|
1161
1193
|
}, null, 8, ["class", "icon", "priority"])
|
|
1162
1194
|
], 2)) : A("", !0)
|
|
1163
1195
|
], 2));
|
|
1164
1196
|
}
|
|
1165
|
-
}),
|
|
1197
|
+
}), xe = ["href", "target"], $e = /* @__PURE__ */ L({
|
|
1166
1198
|
__name: "TideChipAction",
|
|
1167
1199
|
props: {
|
|
1168
1200
|
href: {},
|
|
@@ -1171,7 +1203,7 @@ const $e = /* @__PURE__ */ C(xe, [["__scopeId", "data-v-0710b4ab"]]), Qt = /* @_
|
|
|
1171
1203
|
},
|
|
1172
1204
|
setup(o) {
|
|
1173
1205
|
const i = o;
|
|
1174
|
-
return (s, n) => (
|
|
1206
|
+
return (s, n) => (l(), E("a", {
|
|
1175
1207
|
class: a([
|
|
1176
1208
|
"tide-chip-action",
|
|
1177
1209
|
t(e).AXIS2.CENTER,
|
|
@@ -1189,14 +1221,14 @@ const $e = /* @__PURE__ */ C(xe, [["__scopeId", "data-v-0710b4ab"]]), Qt = /* @_
|
|
|
1189
1221
|
href: i.href,
|
|
1190
1222
|
target: i.isNewTab ? t(k).BLANK : t(k).SELF
|
|
1191
1223
|
}, [
|
|
1192
|
-
P(
|
|
1224
|
+
P(g, {
|
|
1193
1225
|
icon: t(v).SEARCH
|
|
1194
1226
|
}, null, 8, ["icon"]),
|
|
1195
|
-
c("span", null,
|
|
1196
|
-
], 10,
|
|
1227
|
+
c("span", null, u(i.label), 1)
|
|
1228
|
+
], 10, xe));
|
|
1197
1229
|
}
|
|
1198
1230
|
});
|
|
1199
|
-
const Zt = /* @__PURE__ */
|
|
1231
|
+
const Zt = /* @__PURE__ */ U($e, [["__scopeId", "data-v-99f83e8d"]]), we = /* @__PURE__ */ L({
|
|
1200
1232
|
__name: "TideChipFilter",
|
|
1201
1233
|
props: {
|
|
1202
1234
|
isActive: { type: Boolean },
|
|
@@ -1204,7 +1236,7 @@ const Zt = /* @__PURE__ */ C(Qe, [["__scopeId", "data-v-99f83e8d"]]), Ke = /* @_
|
|
|
1204
1236
|
},
|
|
1205
1237
|
setup(o) {
|
|
1206
1238
|
const i = o;
|
|
1207
|
-
return (s, n) => (
|
|
1239
|
+
return (s, n) => (l(), E("button", {
|
|
1208
1240
|
class: a([
|
|
1209
1241
|
"tide-chip-filter",
|
|
1210
1242
|
i.isActive ? [t(e).BG.SECONDARY, t(e).FONT.COLOR.SECONDARY] : [t(e).BG.SURFACE.VARIANT, t(e).FONT.COLOR.SURFACE.DEFAULT],
|
|
@@ -1220,25 +1252,25 @@ const Zt = /* @__PURE__ */ C(Qe, [["__scopeId", "data-v-99f83e8d"]]), Ke = /* @_
|
|
|
1220
1252
|
i.isActive ? "active" : ""
|
|
1221
1253
|
])
|
|
1222
1254
|
}, [
|
|
1223
|
-
|
|
1255
|
+
B(s.$slots, "default", {}, void 0, !0),
|
|
1224
1256
|
c("div", {
|
|
1225
1257
|
class: a([t(e).DISPLAY.FLEX, t(e).AXIS1.CENTER, t(e).AXIS2.CENTER, t(e).GAP.HALF])
|
|
1226
1258
|
}, [
|
|
1227
1259
|
c("span", {
|
|
1228
1260
|
class: a([i.isActive ? "" : "icon-spacing", t(e).FONT.WEIGHT.FIVE_HUNDRED, t(e).WHITESPACE_WRAP.OFF])
|
|
1229
|
-
},
|
|
1261
|
+
}, u(i.label), 3)
|
|
1230
1262
|
], 2)
|
|
1231
1263
|
], 2));
|
|
1232
1264
|
}
|
|
1233
1265
|
});
|
|
1234
|
-
const
|
|
1266
|
+
const Qt = /* @__PURE__ */ U(we, [["__scopeId", "data-v-c07faf14"]]), Ze = /* @__PURE__ */ L({
|
|
1235
1267
|
__name: "TideChipInput",
|
|
1236
1268
|
props: {
|
|
1237
1269
|
label: {}
|
|
1238
1270
|
},
|
|
1239
1271
|
setup(o) {
|
|
1240
1272
|
const i = o;
|
|
1241
|
-
return (s, n) => (
|
|
1273
|
+
return (s, n) => (l(), E("button", {
|
|
1242
1274
|
class: a([
|
|
1243
1275
|
"tide-chip-input",
|
|
1244
1276
|
t(e).BG.SURFACE.VARIANT,
|
|
@@ -1254,44 +1286,44 @@ const zt = /* @__PURE__ */ C(Ke, [["__scopeId", "data-v-c07faf14"]]), Ze = /* @_
|
|
|
1254
1286
|
t(e).FONT.WEIGHT.FIVE_HUNDRED
|
|
1255
1287
|
])
|
|
1256
1288
|
}, [
|
|
1257
|
-
c("span", null,
|
|
1258
|
-
P(
|
|
1289
|
+
c("span", null, u(i.label), 1),
|
|
1290
|
+
P(g, {
|
|
1259
1291
|
icon: t(v).CLOSE
|
|
1260
1292
|
}, null, 8, ["icon"])
|
|
1261
1293
|
], 2));
|
|
1262
1294
|
}
|
|
1263
1295
|
});
|
|
1264
|
-
const
|
|
1296
|
+
const Kt = /* @__PURE__ */ U(Ze, [["__scopeId", "data-v-62b9f1c0"]]), Qe = { class: "tide-columns" }, Ke = { class: "tide-columns-column" }, ze = { class: "tide-columns-column" }, qe = { class: "tide-columns-column" }, Je = { class: "tide-columns-column" }, je = /* @__PURE__ */ L({
|
|
1265
1297
|
__name: "TideColumns",
|
|
1266
1298
|
props: {
|
|
1267
1299
|
heading: { default: "" }
|
|
1268
1300
|
},
|
|
1269
1301
|
setup(o) {
|
|
1270
1302
|
const i = o;
|
|
1271
|
-
return (s, n) => (
|
|
1303
|
+
return (s, n) => (l(), E("section", Qe, [
|
|
1272
1304
|
c("h2", {
|
|
1273
1305
|
class: a([t(e).MARGIN.BOTTOM.HALF, t(e).FONT.SIZE.SIXTEEN])
|
|
1274
|
-
},
|
|
1306
|
+
}, u(i.heading), 3),
|
|
1275
1307
|
c("ul", {
|
|
1276
1308
|
class: a([t(e).DISPLAY.FLEX, t(e).FLEX.WRAP, t(e).GAP.TWO, t(e).LIST_BULLETS.OFF])
|
|
1277
1309
|
}, [
|
|
1278
|
-
c("li",
|
|
1279
|
-
|
|
1310
|
+
c("li", Ke, [
|
|
1311
|
+
B(s.$slots, "section1", {}, void 0, !0)
|
|
1280
1312
|
]),
|
|
1281
|
-
c("li",
|
|
1282
|
-
|
|
1313
|
+
c("li", ze, [
|
|
1314
|
+
B(s.$slots, "section2", {}, void 0, !0)
|
|
1283
1315
|
]),
|
|
1284
|
-
c("li",
|
|
1285
|
-
|
|
1316
|
+
c("li", qe, [
|
|
1317
|
+
B(s.$slots, "section3", {}, void 0, !0)
|
|
1286
1318
|
]),
|
|
1287
|
-
c("li",
|
|
1288
|
-
|
|
1319
|
+
c("li", Je, [
|
|
1320
|
+
B(s.$slots, "section4", {}, void 0, !0)
|
|
1289
1321
|
])
|
|
1290
1322
|
], 2)
|
|
1291
1323
|
]));
|
|
1292
1324
|
}
|
|
1293
1325
|
});
|
|
1294
|
-
const
|
|
1326
|
+
const zt = /* @__PURE__ */ U(je, [["__scopeId", "data-v-14ad0455"]]), et = ["alt", "loading", "src"], qt = /* @__PURE__ */ L({
|
|
1295
1327
|
__name: "TideImage",
|
|
1296
1328
|
props: {
|
|
1297
1329
|
alt: { default: "" },
|
|
@@ -1301,20 +1333,20 @@ const Jt = /* @__PURE__ */ C(tt, [["__scopeId", "data-v-14ad0455"]]), st = ["alt
|
|
|
1301
1333
|
src: { default: void 0 }
|
|
1302
1334
|
},
|
|
1303
1335
|
setup(o, { expose: i }) {
|
|
1304
|
-
const s = o, n =
|
|
1305
|
-
n.value.src =
|
|
1336
|
+
const s = o, n = R(), d = `${s.cdn}/image-coming-soon-512.png`, T = () => {
|
|
1337
|
+
n.value.src = d;
|
|
1306
1338
|
};
|
|
1307
|
-
return i(n.value), (
|
|
1308
|
-
alt:
|
|
1339
|
+
return i(n.value), (I, r) => (l(), E("img", {
|
|
1340
|
+
alt: I.alt,
|
|
1309
1341
|
class: a(["tide-image", t(e).OBJECT.CENTER, t(e).OBJECT.COVER]),
|
|
1310
|
-
loading:
|
|
1342
|
+
loading: I.isLazy ? "lazy" : "eager",
|
|
1311
1343
|
ref_key: "tideImage",
|
|
1312
1344
|
ref: n,
|
|
1313
|
-
src:
|
|
1345
|
+
src: I.src ?? d,
|
|
1314
1346
|
onError: T
|
|
1315
|
-
}, null, 42,
|
|
1347
|
+
}, null, 42, et));
|
|
1316
1348
|
}
|
|
1317
|
-
}),
|
|
1349
|
+
}), tt = ["checked", "disabled", "name", "id"], st = ["for"], it = /* @__PURE__ */ L({
|
|
1318
1350
|
__name: "TideInputCheckbox",
|
|
1319
1351
|
props: {
|
|
1320
1352
|
checked: { type: Boolean, default: !1 },
|
|
@@ -1327,43 +1359,40 @@ const Jt = /* @__PURE__ */ C(tt, [["__scopeId", "data-v-14ad0455"]]), st = ["alt
|
|
|
1327
1359
|
number: { default: void 0 }
|
|
1328
1360
|
},
|
|
1329
1361
|
setup(o, { expose: i }) {
|
|
1330
|
-
const s = o, n =
|
|
1331
|
-
|
|
1332
|
-
return s.inputId ? s.inputId : `text-input-${((I = ee()) == null ? void 0 : I.uid) || ""}`;
|
|
1333
|
-
}), E = () => {
|
|
1334
|
-
l.value = !l.value;
|
|
1362
|
+
const s = o, n = R(), d = R(s.checked || s.indeterminate), T = R(s.indeterminate), I = () => {
|
|
1363
|
+
d.value = !d.value;
|
|
1335
1364
|
};
|
|
1336
1365
|
return Y(
|
|
1337
1366
|
() => s.indeterminate,
|
|
1338
|
-
(
|
|
1339
|
-
(
|
|
1367
|
+
(r, O) => {
|
|
1368
|
+
(r !== O || r !== T.value) && n.value && (T.value = r, n.value.indeterminate = T.value, T.value === !0 && (d.value = !0), n.value.checked = d.value);
|
|
1340
1369
|
}
|
|
1341
1370
|
), Y(
|
|
1342
1371
|
() => s.checked,
|
|
1343
|
-
(
|
|
1344
|
-
(
|
|
1372
|
+
(r, O) => {
|
|
1373
|
+
(r !== O || r !== d.value) && (d.value = r);
|
|
1345
1374
|
}
|
|
1346
|
-
), i({ checked:
|
|
1375
|
+
), i({ checked: d, indeterminate: T }), (r, O) => (l(), E("div", {
|
|
1347
1376
|
class: a([
|
|
1348
1377
|
"tide-input-checkbox",
|
|
1349
1378
|
t(e).DISPLAY.FLEX,
|
|
1350
1379
|
t(e).AXIS2.CENTER,
|
|
1351
1380
|
t(e).GAP.HALF,
|
|
1352
1381
|
t(e).FONT.SIZE.FOURTEEN,
|
|
1353
|
-
|
|
1354
|
-
|
|
1382
|
+
r.disabled && "disabled",
|
|
1383
|
+
r.disabled ? t(e).CURSOR.NOT_ALLOWED : t(e).CURSOR.POINTER
|
|
1355
1384
|
])
|
|
1356
1385
|
}, [
|
|
1357
1386
|
c("input", {
|
|
1358
|
-
checked:
|
|
1387
|
+
checked: d.value,
|
|
1359
1388
|
class: a([t(e).DISPLAY.NONE]),
|
|
1360
1389
|
disabled: s.disabled,
|
|
1361
1390
|
name: s.name,
|
|
1362
1391
|
ref_key: "input",
|
|
1363
1392
|
ref: n,
|
|
1364
|
-
id:
|
|
1393
|
+
id: s.inputId,
|
|
1365
1394
|
type: "checkbox"
|
|
1366
|
-
}, null, 10,
|
|
1395
|
+
}, null, 10, tt),
|
|
1367
1396
|
c("div", {
|
|
1368
1397
|
class: a([
|
|
1369
1398
|
"tide-input-checkbox-custom",
|
|
@@ -1373,36 +1402,36 @@ const Jt = /* @__PURE__ */ C(tt, [["__scopeId", "data-v-14ad0455"]]), st = ["alt
|
|
|
1373
1402
|
t(e).AXIS2.CENTER,
|
|
1374
1403
|
t(e).FLEX.SHRINK.OFF,
|
|
1375
1404
|
t(e).BORDER.FULL.ONE,
|
|
1376
|
-
|
|
1405
|
+
d.value ? [t(e).BORDER.COLOR.HIGH, t(e).BG.SECONDARY] : [t(e).BORDER.COLOR.DEFAULT, t(e).BG.SURFACE.DEFAULT],
|
|
1377
1406
|
t(e).BORDER.RADIUS.QUARTER,
|
|
1378
|
-
|
|
1379
|
-
|
|
1407
|
+
d.value && "checked",
|
|
1408
|
+
r.disabled ? t(e).CURSOR.NOT_ALLOWED : t(e).CURSOR.POINTER
|
|
1380
1409
|
]),
|
|
1381
|
-
onClick:
|
|
1410
|
+
onClick: I
|
|
1382
1411
|
}, [
|
|
1383
|
-
|
|
1412
|
+
d.value || T.value ? (l(), S(g, {
|
|
1384
1413
|
key: 0,
|
|
1385
1414
|
class: a([t(e).FONT.COLOR.SECONDARY]),
|
|
1386
1415
|
icon: T.value ? t(v).REMOVE : t(v).CHECK,
|
|
1387
|
-
size: t(
|
|
1416
|
+
size: t(b).SMALL
|
|
1388
1417
|
}, null, 8, ["class", "icon", "size"])) : A("", !0)
|
|
1389
1418
|
], 2),
|
|
1390
|
-
|
|
1419
|
+
r.label ? (l(), E("label", {
|
|
1391
1420
|
key: 0,
|
|
1392
|
-
class: a([t(e).DISPLAY.FLEX, t(e).GAP.HALF,
|
|
1393
|
-
for:
|
|
1394
|
-
onClick:
|
|
1421
|
+
class: a([t(e).DISPLAY.FLEX, t(e).GAP.HALF, r.disabled ? t(e).CURSOR.NOT_ALLOWED : t(e).CURSOR.POINTER]),
|
|
1422
|
+
for: s.inputId,
|
|
1423
|
+
onClick: O[0] || (O[0] = ae((m) => d.value = !d.value, ["prevent"]))
|
|
1395
1424
|
}, [
|
|
1396
|
-
c("span", null,
|
|
1397
|
-
s.number ? (
|
|
1425
|
+
c("span", null, u(r.label), 1),
|
|
1426
|
+
s.number ? (l(), E("span", {
|
|
1398
1427
|
key: 0,
|
|
1399
1428
|
class: a([t(e).FONT.COLOR.SURFACE.VARIANT])
|
|
1400
|
-
}, " (" +
|
|
1401
|
-
], 10,
|
|
1429
|
+
}, " (" + u(t(ne)(s.number)) + ") ", 3)) : A("", !0)
|
|
1430
|
+
], 10, st)) : A("", !0)
|
|
1402
1431
|
], 2));
|
|
1403
1432
|
}
|
|
1404
1433
|
});
|
|
1405
|
-
const
|
|
1434
|
+
const Jt = /* @__PURE__ */ U(it, [["__scopeId", "data-v-0c7f2a7e"]]), at = ["checked", "id"], ot = ["for"], nt = /* @__PURE__ */ L({
|
|
1406
1435
|
__name: "TideInputRadio",
|
|
1407
1436
|
props: {
|
|
1408
1437
|
checked: { type: Boolean, default: !1 },
|
|
@@ -1413,26 +1442,23 @@ const es = /* @__PURE__ */ C(ot, [["__scopeId", "data-v-5b2d91ab"]]), nt = ["che
|
|
|
1413
1442
|
name: {}
|
|
1414
1443
|
},
|
|
1415
1444
|
setup(o) {
|
|
1416
|
-
const i = o, s =
|
|
1417
|
-
var l;
|
|
1418
|
-
return i.inputId ? i.inputId : `text-input-${((l = ee()) == null ? void 0 : l.uid) || ""}`;
|
|
1419
|
-
});
|
|
1445
|
+
const i = o, s = R(i.checked);
|
|
1420
1446
|
return Y(
|
|
1421
1447
|
() => i.checked,
|
|
1422
|
-
(
|
|
1423
|
-
(
|
|
1448
|
+
(n, d) => {
|
|
1449
|
+
(n !== d || n !== s.value) && (s.value = n);
|
|
1424
1450
|
}
|
|
1425
|
-
), (
|
|
1451
|
+
), (n, d) => (l(), E("div", {
|
|
1426
1452
|
class: a(["tide-input-radio", t(e).DISPLAY.FLEX, t(e).AXIS2.CENTER, t(e).GAP.HALF, i.disabled && "disabled"])
|
|
1427
1453
|
}, [
|
|
1428
1454
|
c("input", {
|
|
1429
1455
|
checked: s.value,
|
|
1430
1456
|
class: a([t(e).DISPLAY.NONE]),
|
|
1431
|
-
id:
|
|
1457
|
+
id: i.inputId,
|
|
1432
1458
|
name: "",
|
|
1433
1459
|
type: "radio",
|
|
1434
1460
|
value: ""
|
|
1435
|
-
}, null, 10,
|
|
1461
|
+
}, null, 10, at),
|
|
1436
1462
|
c("div", {
|
|
1437
1463
|
class: a([
|
|
1438
1464
|
"tide-input-radio-custom",
|
|
@@ -1452,63 +1478,63 @@ const es = /* @__PURE__ */ C(ot, [["__scopeId", "data-v-5b2d91ab"]]), nt = ["che
|
|
|
1452
1478
|
], 2),
|
|
1453
1479
|
c("label", {
|
|
1454
1480
|
class: a(t(e).FONT.WEIGHT.FOUR_HUNDRED),
|
|
1455
|
-
for:
|
|
1456
|
-
},
|
|
1481
|
+
for: i.inputId
|
|
1482
|
+
}, u(i.label), 11, ot)
|
|
1457
1483
|
], 2));
|
|
1458
1484
|
}
|
|
1459
1485
|
});
|
|
1460
|
-
const
|
|
1486
|
+
const jt = /* @__PURE__ */ U(nt, [["__scopeId", "data-v-75f2f184"]]), le = "Please enter a valid value.", lt = {
|
|
1461
1487
|
message: "",
|
|
1462
1488
|
valid: !0
|
|
1463
|
-
},
|
|
1464
|
-
let s =
|
|
1489
|
+
}, K = (o) => (i) => {
|
|
1490
|
+
let s = lt;
|
|
1465
1491
|
return i.trim().match(o) || (s = {
|
|
1466
|
-
message:
|
|
1492
|
+
message: le,
|
|
1467
1493
|
valid: !1
|
|
1468
1494
|
}), s;
|
|
1469
|
-
},
|
|
1470
|
-
const
|
|
1471
|
-
return !(!
|
|
1472
|
-
},
|
|
1495
|
+
}, de = (o, i) => typeof o == "string" && o.length > 0 ? o : typeof i == "string" && i.length > 0 ? i : le, re = (o, i) => o !== !1 || i !== !1, dt = ({ maxlength: o, minlength: i, required: s, value: n }) => {
|
|
1496
|
+
const d = n.length === 0 && !s, T = o && n.length > o;
|
|
1497
|
+
return !(!d && i && n.length < i) && !T;
|
|
1498
|
+
}, Re = ({
|
|
1473
1499
|
error: o,
|
|
1474
1500
|
errorFromProps: i,
|
|
1475
1501
|
maxlength: s,
|
|
1476
1502
|
minlength: n,
|
|
1477
|
-
required:
|
|
1503
|
+
required: d = !1,
|
|
1478
1504
|
validators: T,
|
|
1479
|
-
value:
|
|
1505
|
+
value: I
|
|
1480
1506
|
}) => {
|
|
1481
1507
|
if (o.value = i || !1, !o.value && T) {
|
|
1482
|
-
const
|
|
1483
|
-
|
|
1508
|
+
const r = Et(I.value, T);
|
|
1509
|
+
r.valid || (o.value = r.message);
|
|
1484
1510
|
}
|
|
1485
1511
|
if (!o.value && (s || n)) {
|
|
1486
|
-
const
|
|
1512
|
+
const r = rt({
|
|
1487
1513
|
maxlength: s,
|
|
1488
1514
|
minlength: n,
|
|
1489
|
-
required:
|
|
1490
|
-
value:
|
|
1515
|
+
required: d,
|
|
1516
|
+
value: I.value
|
|
1491
1517
|
});
|
|
1492
|
-
|
|
1518
|
+
r.valid || (o.value = r.message);
|
|
1493
1519
|
}
|
|
1494
|
-
},
|
|
1520
|
+
}, rt = ({
|
|
1495
1521
|
maxlength: o,
|
|
1496
1522
|
minlength: i,
|
|
1497
1523
|
required: s = !1,
|
|
1498
1524
|
value: n
|
|
1499
1525
|
}) => {
|
|
1500
|
-
const
|
|
1526
|
+
const d = {
|
|
1501
1527
|
message: "",
|
|
1502
1528
|
valid: !0
|
|
1503
1529
|
};
|
|
1504
|
-
return
|
|
1530
|
+
return d.valid = dt({
|
|
1505
1531
|
maxlength: o,
|
|
1506
1532
|
minlength: i,
|
|
1507
1533
|
required: s,
|
|
1508
1534
|
value: n
|
|
1509
|
-
}),
|
|
1535
|
+
}), d.valid || (d.message = le, o && i ? d.message = `Please enter a value between ${i} and ${o} characters in length.` : o ? d.message = `Please enter a value no more than ${o} characters in length.` : i && (d.message = `Please enter a value no less than ${i} characters in length.`)), d;
|
|
1510
1536
|
};
|
|
1511
|
-
function
|
|
1537
|
+
function Et(o, i) {
|
|
1512
1538
|
for (const s of i) {
|
|
1513
1539
|
const n = s(o);
|
|
1514
1540
|
if (!n.valid)
|
|
@@ -1519,7 +1545,7 @@ function Tt(o, i) {
|
|
|
1519
1545
|
valid: !0
|
|
1520
1546
|
};
|
|
1521
1547
|
}
|
|
1522
|
-
const
|
|
1548
|
+
const ct = ["for"], Tt = ["disabled", "name", "required", "id"], It = ["label"], Ot = ["value"], Rt = ["selected", "value"], At = ["selected", "value"], ut = /* @__PURE__ */ L({
|
|
1523
1549
|
__name: "TideInputSelect",
|
|
1524
1550
|
props: {
|
|
1525
1551
|
inputId: { default: void 0 },
|
|
@@ -1534,31 +1560,28 @@ const It = ["for"], Ot = ["disabled", "name", "required", "id"], Rt = ["label"],
|
|
|
1534
1560
|
value: { default: void 0 }
|
|
1535
1561
|
},
|
|
1536
1562
|
setup(o, { expose: i }) {
|
|
1537
|
-
const s = o, n =
|
|
1538
|
-
var
|
|
1539
|
-
|
|
1540
|
-
|
|
1541
|
-
|
|
1542
|
-
|
|
1543
|
-
|
|
1544
|
-
|
|
1545
|
-
l.value = !0;
|
|
1546
|
-
}, b = () => {
|
|
1547
|
-
l.value = !1;
|
|
1563
|
+
const s = o, n = R(s.error), d = R(!1), T = R(null), I = R(s.required), r = R(s.value), O = f(() => de(s.error, n.value)), m = f(() => s.required ? `${s.label} *` : s.label), N = f(() => s.required && !r.value || re(n.value, s.error)), G = f(() => d.value || !H.value), H = f(() => r.value === void 0), w = () => {
|
|
1564
|
+
var p;
|
|
1565
|
+
const D = new MouseEvent("mousedown");
|
|
1566
|
+
(p = T == null ? void 0 : T.value) == null || p.dispatchEvent(D);
|
|
1567
|
+
}, V = () => {
|
|
1568
|
+
d.value = !0;
|
|
1569
|
+
}, X = () => {
|
|
1570
|
+
d.value = !1;
|
|
1548
1571
|
};
|
|
1549
1572
|
return Y(
|
|
1550
1573
|
() => s.value,
|
|
1551
|
-
(
|
|
1552
|
-
(
|
|
1574
|
+
(D, p) => {
|
|
1575
|
+
(D !== p || D !== r.value) && (r.value = D);
|
|
1553
1576
|
}
|
|
1554
|
-
), i({ error: n, value:
|
|
1577
|
+
), i({ error: n, value: r }), (D, p) => (l(), E("div", {
|
|
1555
1578
|
class: a([
|
|
1556
1579
|
"tide-input-select",
|
|
1557
1580
|
t(e).DISPLAY.FLEX,
|
|
1558
1581
|
t(e).FLEX.DIRECTION.COLUMN,
|
|
1559
1582
|
t(e).GAP.QUARTER,
|
|
1560
|
-
|
|
1561
|
-
|
|
1583
|
+
D.disabled && "disabled",
|
|
1584
|
+
N.value && "error"
|
|
1562
1585
|
])
|
|
1563
1586
|
}, [
|
|
1564
1587
|
c("div", {
|
|
@@ -1572,12 +1595,12 @@ const It = ["for"], Ot = ["disabled", "name", "required", "id"], Rt = ["label"],
|
|
|
1572
1595
|
s.disabled ? t(e).CURSOR.NOT_ALLOWED : "",
|
|
1573
1596
|
t(e).OVERFLOW.XY.HIDDEN
|
|
1574
1597
|
]),
|
|
1575
|
-
onClick:
|
|
1598
|
+
onClick: w
|
|
1576
1599
|
}, [
|
|
1577
1600
|
c("div", {
|
|
1578
1601
|
class: a([t(e).DISPLAY.FLEX, t(e).FLEX.DIRECTION.COLUMN, t(e).WIDTH.FULL])
|
|
1579
1602
|
}, [
|
|
1580
|
-
|
|
1603
|
+
D.label ? (l(), E("label", {
|
|
1581
1604
|
key: 0,
|
|
1582
1605
|
class: a([
|
|
1583
1606
|
G.value ? ["minilabel", t(e).FONT.SIZE.TWELVE] : t(e).FONT.SIZE.SIXTEEN,
|
|
@@ -1585,75 +1608,75 @@ const It = ["for"], Ot = ["disabled", "name", "required", "id"], Rt = ["label"],
|
|
|
1585
1608
|
t(e).POSITIONING.LEFT,
|
|
1586
1609
|
t(e).MARGIN.TOP.HALF,
|
|
1587
1610
|
t(e).MARGIN.LEFT.ONE,
|
|
1588
|
-
!
|
|
1611
|
+
!N.value && t(e).FONT.COLOR.SURFACE.VARIANT,
|
|
1589
1612
|
t(e).FONT.WEIGHT.FIVE_HUNDRED
|
|
1590
1613
|
]),
|
|
1591
|
-
for:
|
|
1592
|
-
},
|
|
1593
|
-
|
|
1594
|
-
class: a([t(e).PADDING.BOTTOM.HALF, t(e).PADDING.X.ONE, t(e).WIDTH.FULL,
|
|
1595
|
-
disabled:
|
|
1596
|
-
name:
|
|
1614
|
+
for: s.inputId
|
|
1615
|
+
}, u(m.value), 11, ct)) : A("", !0),
|
|
1616
|
+
oe(c("select", {
|
|
1617
|
+
class: a([t(e).PADDING.BOTTOM.HALF, t(e).PADDING.X.ONE, t(e).WIDTH.FULL, D.disabled && t(e).CURSOR.NOT_ALLOWED]),
|
|
1618
|
+
disabled: D.disabled,
|
|
1619
|
+
name: D.name,
|
|
1597
1620
|
ref_key: "input",
|
|
1598
1621
|
ref: T,
|
|
1599
|
-
required:
|
|
1600
|
-
onFocus:
|
|
1601
|
-
onFocusout:
|
|
1602
|
-
id:
|
|
1603
|
-
"onUpdate:modelValue":
|
|
1622
|
+
required: I.value,
|
|
1623
|
+
onFocus: V,
|
|
1624
|
+
onFocusout: X,
|
|
1625
|
+
id: s.inputId,
|
|
1626
|
+
"onUpdate:modelValue": p[0] || (p[0] = (F) => r.value = F)
|
|
1604
1627
|
}, [
|
|
1605
|
-
(
|
|
1606
|
-
|
|
1628
|
+
(l(!0), E(M, null, Q(s.optgroups, (F) => (l(), E(M, null, [
|
|
1629
|
+
F.options ? (l(), E("optgroup", {
|
|
1607
1630
|
class: a([t(e).WIDTH.FULL, t(e).BG.SURFACE.DEFAULT]),
|
|
1608
|
-
key:
|
|
1609
|
-
label:
|
|
1631
|
+
key: F.label,
|
|
1632
|
+
label: F.label
|
|
1610
1633
|
}, [
|
|
1611
|
-
(
|
|
1634
|
+
(l(!0), E(M, null, Q(F.options, (h) => (l(), E("option", {
|
|
1612
1635
|
class: a([t(e).WIDTH.FULL, t(e).BG.SURFACE.DEFAULT]),
|
|
1613
|
-
key:
|
|
1614
|
-
value:
|
|
1615
|
-
},
|
|
1616
|
-
], 10,
|
|
1636
|
+
key: h.value,
|
|
1637
|
+
value: h.value
|
|
1638
|
+
}, u(h.label), 11, Ot))), 128))
|
|
1639
|
+
], 10, It)) : (l(), E("option", {
|
|
1617
1640
|
class: a([t(e).WIDTH.FULL, t(e).BG.SURFACE.DEFAULT]),
|
|
1618
|
-
key:
|
|
1619
|
-
selected:
|
|
1620
|
-
value:
|
|
1621
|
-
},
|
|
1641
|
+
key: F.value,
|
|
1642
|
+
selected: r.value === F.value ? !0 : void 0,
|
|
1643
|
+
value: F.value
|
|
1644
|
+
}, u(F.label), 11, Rt))
|
|
1622
1645
|
], 64))), 256)),
|
|
1623
|
-
(
|
|
1646
|
+
(l(!0), E(M, null, Q(D.options, (F) => (l(), E("option", {
|
|
1624
1647
|
class: a([t(e).WIDTH.FULL, t(e).BG.SURFACE.DEFAULT]),
|
|
1625
|
-
key:
|
|
1626
|
-
selected:
|
|
1627
|
-
value:
|
|
1628
|
-
},
|
|
1629
|
-
], 42,
|
|
1630
|
-
[
|
|
1648
|
+
key: F.value,
|
|
1649
|
+
selected: r.value === F.value ? !0 : void 0,
|
|
1650
|
+
value: F.value
|
|
1651
|
+
}, u(F.label), 11, At))), 128))
|
|
1652
|
+
], 42, Tt), [
|
|
1653
|
+
[pe, r.value]
|
|
1631
1654
|
])
|
|
1632
1655
|
], 2),
|
|
1633
|
-
P(
|
|
1656
|
+
P(g, {
|
|
1634
1657
|
class: a([t(e).POSITION.ABSOLUTE, t(e).POSITIONING.RIGHT, t(e).MARGIN.RIGHT.ONE, t(e).POINTER_EVENTS.OFF]),
|
|
1635
1658
|
icon: t(v).EXPAND_MORE,
|
|
1636
|
-
size: t(
|
|
1659
|
+
size: t(b).SMALL
|
|
1637
1660
|
}, null, 8, ["class", "icon", "size"])
|
|
1638
1661
|
], 2),
|
|
1639
|
-
s.supportingText ||
|
|
1662
|
+
s.supportingText || N.value ? (l(), E("div", {
|
|
1640
1663
|
key: 0,
|
|
1641
1664
|
class: a([t(e).DISPLAY.FLEX, t(e).AXIS2.CENTER, t(e).GAP.QUARTER, t(e).MARGIN.LEFT.ONE])
|
|
1642
1665
|
}, [
|
|
1643
|
-
|
|
1666
|
+
N.value ? (l(), S(g, {
|
|
1644
1667
|
key: 0,
|
|
1645
1668
|
class: a([]),
|
|
1646
1669
|
icon: t(v).ERROR,
|
|
1647
|
-
size: t(
|
|
1670
|
+
size: t(b).SMALL
|
|
1648
1671
|
}, null, 8, ["icon", "size"])) : A("", !0),
|
|
1649
1672
|
c("div", {
|
|
1650
1673
|
class: a([t(e).FONT.SIZE.TWELVE, t(e).FONT.WEIGHT.FIVE_HUNDRED])
|
|
1651
|
-
}, N
|
|
1674
|
+
}, u(N.value ? O.value : s.supportingText), 3)
|
|
1652
1675
|
], 2)) : A("", !0)
|
|
1653
1676
|
], 2));
|
|
1654
1677
|
}
|
|
1655
1678
|
});
|
|
1656
|
-
const
|
|
1679
|
+
const es = /* @__PURE__ */ U(ut, [["__scopeId", "data-v-c1ec19a5"]]), z = {
|
|
1657
1680
|
DATE: "date",
|
|
1658
1681
|
DATETIME_LOCAL: "datetime-local",
|
|
1659
1682
|
EMAIL: "email",
|
|
@@ -1666,7 +1689,7 @@ const ss = /* @__PURE__ */ C(Lt, [["__scopeId", "data-v-69a35bcd"]]), z = {
|
|
|
1666
1689
|
TIME: "time",
|
|
1667
1690
|
URL: "url",
|
|
1668
1691
|
WEEK: "week"
|
|
1669
|
-
},
|
|
1692
|
+
}, Nt = ["for"], Lt = ["autocomplete", "data-track", "disabled", "maxlength", "minlength", "name", "required", "type", "id"], pt = /* @__PURE__ */ L({
|
|
1670
1693
|
__name: "TideInputText",
|
|
1671
1694
|
props: {
|
|
1672
1695
|
autocomplete: { type: Boolean, default: !1 },
|
|
@@ -1690,49 +1713,46 @@ const ss = /* @__PURE__ */ C(Lt, [["__scopeId", "data-v-69a35bcd"]]), z = {
|
|
|
1690
1713
|
value: { default: "" }
|
|
1691
1714
|
},
|
|
1692
1715
|
setup(o, { expose: i }) {
|
|
1693
|
-
const s = o, n =
|
|
1694
|
-
() => s.type === z.PASSWORD &&
|
|
1695
|
-
),
|
|
1696
|
-
var
|
|
1697
|
-
|
|
1698
|
-
}
|
|
1699
|
-
|
|
1700
|
-
|
|
1701
|
-
|
|
1702
|
-
|
|
1703
|
-
|
|
1704
|
-
l.value = !1, B();
|
|
1705
|
-
}, _ = () => {
|
|
1706
|
-
var U;
|
|
1716
|
+
const s = o, n = R(s.error), d = R(!1), T = R(null), I = R(!1), r = R(s.value), O = f(() => de(s.error, n.value)), m = f(() => s.required && s.label ? `${s.label} *` : s.label), N = f(() => s.hasClear && r.value), G = f(() => s.required && !r.value || re(n.value, s.error)), H = f(() => d.value || !w.value), w = f(() => r.value === ""), V = f(
|
|
1717
|
+
() => s.type === z.PASSWORD && I.value === !0 ? z.TEXT : s.type
|
|
1718
|
+
), X = () => {
|
|
1719
|
+
var C;
|
|
1720
|
+
r.value = "", (C = T.value) == null || C.focus();
|
|
1721
|
+
}, D = () => {
|
|
1722
|
+
d.value = !0;
|
|
1723
|
+
}, p = () => {
|
|
1724
|
+
d.value = !1, h();
|
|
1725
|
+
}, F = () => {
|
|
1726
|
+
var C;
|
|
1707
1727
|
if (s.transformValue) {
|
|
1708
|
-
const W = ((
|
|
1709
|
-
|
|
1728
|
+
const W = ((C = r.value.match(/\d/g)) == null ? void 0 : C.join("")) || void 0;
|
|
1729
|
+
r.value = W ? s.transformValue(W) : "";
|
|
1710
1730
|
}
|
|
1711
|
-
},
|
|
1712
|
-
|
|
1731
|
+
}, h = () => {
|
|
1732
|
+
Re({
|
|
1713
1733
|
error: n,
|
|
1714
1734
|
errorFromProps: s.error,
|
|
1715
1735
|
maxlength: s.maxlength,
|
|
1716
1736
|
minlength: s.minlength,
|
|
1717
1737
|
required: s.required,
|
|
1718
1738
|
validators: s.validators,
|
|
1719
|
-
value:
|
|
1739
|
+
value: r
|
|
1720
1740
|
});
|
|
1721
|
-
},
|
|
1722
|
-
|
|
1741
|
+
}, Z = (C) => {
|
|
1742
|
+
r.value = C;
|
|
1723
1743
|
};
|
|
1724
1744
|
return Y(
|
|
1725
1745
|
() => s.value,
|
|
1726
|
-
(
|
|
1727
|
-
(
|
|
1746
|
+
(C, W) => {
|
|
1747
|
+
(C !== W || C !== r.value) && (r.value = C);
|
|
1728
1748
|
}
|
|
1729
|
-
), i({ error: n, updateValue:
|
|
1749
|
+
), i({ error: n, updateValue: Z, value: r }), (C, W) => (l(), E("div", {
|
|
1730
1750
|
class: a([
|
|
1731
1751
|
"tide-input-text",
|
|
1732
1752
|
t(e).DISPLAY.FLEX,
|
|
1733
1753
|
t(e).FLEX.DIRECTION.COLUMN,
|
|
1734
1754
|
t(e).GAP.QUARTER,
|
|
1735
|
-
|
|
1755
|
+
C.disabled && "disabled",
|
|
1736
1756
|
G.value && "error"
|
|
1737
1757
|
])
|
|
1738
1758
|
}, [
|
|
@@ -1744,43 +1764,43 @@ const ss = /* @__PURE__ */ C(Lt, [["__scopeId", "data-v-69a35bcd"]]), z = {
|
|
|
1744
1764
|
t(e).GAP.HALF,
|
|
1745
1765
|
t(e).POSITION.RELATIVE,
|
|
1746
1766
|
t(e).BORDER.RADIUS.HALF,
|
|
1747
|
-
|
|
1767
|
+
N.value ? [t(e).PADDING.RIGHT.HALF, t(e).PADDING.LEFT.ONE] : [t(e).PADDING.X.ONE],
|
|
1748
1768
|
t(e).PADDING.Y.HALF,
|
|
1749
1769
|
s.disabled ? t(e).CURSOR.NOT_ALLOWED : t(e).CURSOR.TEXT
|
|
1750
1770
|
])
|
|
1751
1771
|
}, [
|
|
1752
|
-
s.iconLeading ? (
|
|
1772
|
+
s.iconLeading ? (l(), S(g, {
|
|
1753
1773
|
key: 0,
|
|
1754
1774
|
icon: s.iconLeading,
|
|
1755
|
-
size: t(
|
|
1775
|
+
size: t(b).SMALL
|
|
1756
1776
|
}, null, 8, ["icon", "size"])) : A("", !0),
|
|
1757
1777
|
c("div", {
|
|
1758
1778
|
class: a([t(e).DISPLAY.FLEX, t(e).AXIS2.CENTER, t(e).GAP.QUARTER, t(e).WIDTH.FULL])
|
|
1759
1779
|
}, [
|
|
1760
|
-
s.prefix ? (
|
|
1780
|
+
s.prefix ? (l(), E("div", {
|
|
1761
1781
|
key: 0,
|
|
1762
|
-
class: a(["tide-input-text-prefix", !G.value && t(e).FONT.COLOR.SURFACE.VARIANT,
|
|
1763
|
-
},
|
|
1782
|
+
class: a(["tide-input-text-prefix", !G.value && t(e).FONT.COLOR.SURFACE.VARIANT, H.value ? "" : "offset"])
|
|
1783
|
+
}, u(s.prefix), 3)) : A("", !0),
|
|
1764
1784
|
c("div", {
|
|
1765
1785
|
class: a([t(e).DISPLAY.FLEX, t(e).FLEX.DIRECTION.COLUMN, t(e).WIDTH.FULL]),
|
|
1766
|
-
onClick: W[1] || (W[1] =
|
|
1767
|
-
var
|
|
1768
|
-
return (
|
|
1786
|
+
onClick: W[1] || (W[1] = ae((te) => {
|
|
1787
|
+
var Ee;
|
|
1788
|
+
return (Ee = T.value) == null ? void 0 : Ee.focus();
|
|
1769
1789
|
}, ["prevent"]))
|
|
1770
1790
|
}, [
|
|
1771
|
-
|
|
1791
|
+
C.label ? (l(), E("label", {
|
|
1772
1792
|
key: 0,
|
|
1773
1793
|
class: a([
|
|
1774
|
-
|
|
1794
|
+
H.value ? ["minilabel", t(e).FONT.SIZE.TWELVE] : t(e).FONT.SIZE.SIXTEEN,
|
|
1775
1795
|
!G.value && t(e).FONT.COLOR.SURFACE.VARIANT,
|
|
1776
1796
|
t(e).FONT.WEIGHT.FIVE_HUNDRED,
|
|
1777
1797
|
t(e).CURSOR.TEXT
|
|
1778
1798
|
]),
|
|
1779
|
-
for:
|
|
1780
|
-
},
|
|
1781
|
-
|
|
1782
|
-
autocomplete:
|
|
1783
|
-
class: a([t(e).WIDTH.FULL,
|
|
1799
|
+
for: s.inputId
|
|
1800
|
+
}, u(m.value), 11, Nt)) : A("", !0),
|
|
1801
|
+
oe(c("input", {
|
|
1802
|
+
autocomplete: C.autocomplete ? "on" : "off",
|
|
1803
|
+
class: a([t(e).WIDTH.FULL, C.disabled && t(e).CURSOR.NOT_ALLOWED]),
|
|
1784
1804
|
"data-track": s.dataTrack,
|
|
1785
1805
|
disabled: s.disabled,
|
|
1786
1806
|
maxlength: s.maxlength,
|
|
@@ -1789,55 +1809,55 @@ const ss = /* @__PURE__ */ C(Lt, [["__scopeId", "data-v-69a35bcd"]]), z = {
|
|
|
1789
1809
|
ref_key: "input",
|
|
1790
1810
|
ref: T,
|
|
1791
1811
|
required: s.required,
|
|
1792
|
-
type:
|
|
1793
|
-
onChange:
|
|
1794
|
-
onFocus:
|
|
1795
|
-
onFocusout:
|
|
1796
|
-
onInput:
|
|
1797
|
-
id:
|
|
1798
|
-
"onUpdate:modelValue": W[0] || (W[0] = (
|
|
1799
|
-
}, null, 42,
|
|
1800
|
-
[
|
|
1812
|
+
type: V.value,
|
|
1813
|
+
onChange: h,
|
|
1814
|
+
onFocus: D,
|
|
1815
|
+
onFocusout: p,
|
|
1816
|
+
onInput: F,
|
|
1817
|
+
id: s.inputId,
|
|
1818
|
+
"onUpdate:modelValue": W[0] || (W[0] = (te) => r.value = te)
|
|
1819
|
+
}, null, 42, Lt), [
|
|
1820
|
+
[ve, r.value]
|
|
1801
1821
|
])
|
|
1802
1822
|
], 2),
|
|
1803
|
-
s.suffix ? (
|
|
1823
|
+
s.suffix ? (l(), E("div", {
|
|
1804
1824
|
key: 1,
|
|
1805
|
-
class: a(["tide-input-text-suffix", !G.value && t(e).FONT.COLOR.SURFACE.VARIANT,
|
|
1806
|
-
},
|
|
1825
|
+
class: a(["tide-input-text-suffix", !G.value && t(e).FONT.COLOR.SURFACE.VARIANT, H.value ? "" : "offset"])
|
|
1826
|
+
}, u(s.suffix), 3)) : A("", !0)
|
|
1807
1827
|
], 2),
|
|
1808
|
-
|
|
1828
|
+
N.value && s.type !== t(z).PASSWORD ? (l(), S(g, {
|
|
1809
1829
|
key: 1,
|
|
1810
1830
|
class: a([t(e).PADDING.Y.HALF, t(e).PADDING.FULL.HALF, t(e).CURSOR.POINTER]),
|
|
1811
1831
|
icon: t(v).CLOSE,
|
|
1812
|
-
size: t(
|
|
1813
|
-
onClick:
|
|
1832
|
+
size: t(b).SMALL,
|
|
1833
|
+
onClick: X
|
|
1814
1834
|
}, null, 8, ["class", "icon", "size"])) : A("", !0),
|
|
1815
|
-
s.type === t(z).PASSWORD ? (
|
|
1835
|
+
s.type === t(z).PASSWORD ? (l(), S(g, {
|
|
1816
1836
|
key: 2,
|
|
1817
1837
|
class: a([t(e).PADDING.Y.HALF, t(e).PADDING.FULL.HALF, t(e).CURSOR.POINTER]),
|
|
1818
1838
|
icon: t(v).VISIBILITY,
|
|
1819
|
-
size: t(
|
|
1820
|
-
onClick: W[2] || (W[2] = (
|
|
1839
|
+
size: t(b).SMALL,
|
|
1840
|
+
onClick: W[2] || (W[2] = (te) => I.value = !I.value)
|
|
1821
1841
|
}, null, 8, ["class", "icon", "size"])) : A("", !0)
|
|
1822
1842
|
], 2),
|
|
1823
|
-
s.supportingText || G.value ? (
|
|
1843
|
+
s.supportingText || G.value ? (l(), E("div", {
|
|
1824
1844
|
key: 0,
|
|
1825
1845
|
class: a([t(e).DISPLAY.FLEX, t(e).AXIS2.CENTER, t(e).GAP.QUARTER, t(e).MARGIN.LEFT.ONE])
|
|
1826
1846
|
}, [
|
|
1827
|
-
G.value ? (
|
|
1847
|
+
G.value ? (l(), S(g, {
|
|
1828
1848
|
key: 0,
|
|
1829
1849
|
class: a([]),
|
|
1830
1850
|
icon: t(v).ERROR,
|
|
1831
|
-
size: t(
|
|
1851
|
+
size: t(b).SMALL
|
|
1832
1852
|
}, null, 8, ["icon", "size"])) : A("", !0),
|
|
1833
1853
|
c("div", {
|
|
1834
1854
|
class: a([t(e).FONT.SIZE.TWELVE, t(e).FONT.WEIGHT.FIVE_HUNDRED])
|
|
1835
|
-
},
|
|
1855
|
+
}, u(G.value ? O.value : s.supportingText), 3)
|
|
1836
1856
|
], 2)) : A("", !0)
|
|
1837
1857
|
], 2));
|
|
1838
1858
|
}
|
|
1839
1859
|
});
|
|
1840
|
-
const
|
|
1860
|
+
const ts = /* @__PURE__ */ U(pt, [["__scopeId", "data-v-ee86780d"]]), vt = ["for"], Ft = ["data-track", "maxlength", "minlength", "name", "required", "rows", "id"], _t = /* @__PURE__ */ L({
|
|
1841
1861
|
__name: "TideInputTextarea",
|
|
1842
1862
|
props: {
|
|
1843
1863
|
dataTrack: { default: "" },
|
|
@@ -1853,27 +1873,24 @@ const is = /* @__PURE__ */ C(Ft, [["__scopeId", "data-v-9f350711"]]), _t = ["for
|
|
|
1853
1873
|
value: { default: "" }
|
|
1854
1874
|
},
|
|
1855
1875
|
setup(o, { expose: i }) {
|
|
1856
|
-
const s = o, n =
|
|
1857
|
-
|
|
1858
|
-
|
|
1859
|
-
|
|
1860
|
-
|
|
1861
|
-
}, x = () => {
|
|
1862
|
-
l.value = !1;
|
|
1863
|
-
}, $ = () => Ae({
|
|
1876
|
+
const s = o, n = R(s.error), d = R(!1), T = R(null), I = R(s.value), r = f(() => de(s.error, n.value)), O = f(() => s.required ? `${s.label} *` : s.label), m = f(() => s.required && !I.value || re(n.value, s.error)), N = f(() => d.value || !G.value), G = f(() => I.value === ""), H = () => {
|
|
1877
|
+
d.value = !0;
|
|
1878
|
+
}, w = () => {
|
|
1879
|
+
d.value = !1;
|
|
1880
|
+
}, V = () => Re({
|
|
1864
1881
|
error: n,
|
|
1865
1882
|
errorFromProps: s.error,
|
|
1866
1883
|
maxlength: s.maxlength,
|
|
1867
1884
|
minlength: s.minlength,
|
|
1868
|
-
value:
|
|
1885
|
+
value: I
|
|
1869
1886
|
});
|
|
1870
1887
|
return Y(
|
|
1871
1888
|
() => s.value,
|
|
1872
|
-
(
|
|
1873
|
-
(
|
|
1889
|
+
(X, D) => {
|
|
1890
|
+
(X !== D || X !== I.value) && (I.value = X);
|
|
1874
1891
|
}
|
|
1875
|
-
), i({ error: n, value:
|
|
1876
|
-
class: a(["tide-input-textarea", t(e).DISPLAY.FLEX, t(e).FLEX.DIRECTION.COLUMN, t(e).GAP.QUARTER,
|
|
1892
|
+
), i({ error: n, value: I }), (X, D) => (l(), E("div", {
|
|
1893
|
+
class: a(["tide-input-textarea", t(e).DISPLAY.FLEX, t(e).FLEX.DIRECTION.COLUMN, t(e).GAP.QUARTER, m.value && "error"])
|
|
1877
1894
|
}, [
|
|
1878
1895
|
c("div", {
|
|
1879
1896
|
class: a([
|
|
@@ -1886,18 +1903,18 @@ const is = /* @__PURE__ */ C(Ft, [["__scopeId", "data-v-9f350711"]]), _t = ["for
|
|
|
1886
1903
|
t(e).OVERFLOW.XY.HIDDEN
|
|
1887
1904
|
])
|
|
1888
1905
|
}, [
|
|
1889
|
-
|
|
1906
|
+
X.label ? (l(), E("label", {
|
|
1890
1907
|
key: 0,
|
|
1891
1908
|
class: a([
|
|
1892
|
-
|
|
1893
|
-
!
|
|
1909
|
+
N.value ? ["minilabel", t(e).FONT.SIZE.TWELVE] : t(e).FONT.SIZE.SIXTEEN,
|
|
1910
|
+
!m.value && t(e).FONT.COLOR.SURFACE.VARIANT,
|
|
1894
1911
|
t(e).FONT.WEIGHT.FIVE_HUNDRED,
|
|
1895
1912
|
t(e).CURSOR.TEXT
|
|
1896
1913
|
]),
|
|
1897
|
-
for:
|
|
1914
|
+
for: s.inputId,
|
|
1898
1915
|
ref: "label"
|
|
1899
|
-
},
|
|
1900
|
-
|
|
1916
|
+
}, u(O.value), 11, vt)) : A("", !0),
|
|
1917
|
+
oe(c("textarea", {
|
|
1901
1918
|
class: a([t(e).WIDTH.FULL]),
|
|
1902
1919
|
"data-track": s.dataTrack,
|
|
1903
1920
|
maxlength: s.maxlength,
|
|
@@ -1907,35 +1924,35 @@ const is = /* @__PURE__ */ C(Ft, [["__scopeId", "data-v-9f350711"]]), _t = ["for
|
|
|
1907
1924
|
ref: T,
|
|
1908
1925
|
required: s.required,
|
|
1909
1926
|
rows: s.rows,
|
|
1910
|
-
onChange:
|
|
1911
|
-
onFocus:
|
|
1912
|
-
onFocusout:
|
|
1913
|
-
id:
|
|
1914
|
-
"onUpdate:modelValue":
|
|
1915
|
-
}, null, 42,
|
|
1916
|
-
[
|
|
1927
|
+
onChange: V,
|
|
1928
|
+
onFocus: H,
|
|
1929
|
+
onFocusout: w,
|
|
1930
|
+
id: s.inputId,
|
|
1931
|
+
"onUpdate:modelValue": D[0] || (D[0] = (p) => I.value = p)
|
|
1932
|
+
}, null, 42, Ft), [
|
|
1933
|
+
[Fe, I.value]
|
|
1917
1934
|
])
|
|
1918
1935
|
], 2),
|
|
1919
|
-
s.supportingText ||
|
|
1936
|
+
s.supportingText || m.value ? (l(), E("div", {
|
|
1920
1937
|
key: 0,
|
|
1921
1938
|
class: a([t(e).DISPLAY.FLEX, t(e).AXIS2.CENTER, t(e).GAP.QUARTER, t(e).MARGIN.LEFT.ONE])
|
|
1922
1939
|
}, [
|
|
1923
|
-
|
|
1940
|
+
m.value ? (l(), S(g, {
|
|
1924
1941
|
key: 0,
|
|
1925
1942
|
icon: t(v).ERROR,
|
|
1926
|
-
size: t(
|
|
1943
|
+
size: t(b).SMALL
|
|
1927
1944
|
}, null, 8, ["icon", "size"])) : A("", !0),
|
|
1928
1945
|
c("div", {
|
|
1929
1946
|
class: a([t(e).FONT.SIZE.TWELVE, t(e).FONT.WEIGHT.FIVE_HUNDRED])
|
|
1930
|
-
},
|
|
1947
|
+
}, u(m.value ? r.value : s.supportingText), 3)
|
|
1931
1948
|
], 2)) : A("", !0)
|
|
1932
1949
|
], 2));
|
|
1933
1950
|
}
|
|
1934
1951
|
});
|
|
1935
|
-
const
|
|
1952
|
+
const ss = /* @__PURE__ */ U(_t, [["__scopeId", "data-v-fed7aa8a"]]), is = /* @__PURE__ */ L({
|
|
1936
1953
|
__name: "TideLink",
|
|
1937
1954
|
props: {
|
|
1938
|
-
element: { default:
|
|
1955
|
+
element: { default: _.LINK },
|
|
1939
1956
|
href: { default: void 0 },
|
|
1940
1957
|
iconLeading: { default: void 0 },
|
|
1941
1958
|
iconTrailing: { default: void 0 },
|
|
@@ -1943,27 +1960,27 @@ const as = /* @__PURE__ */ C(St, [["__scopeId", "data-v-aff67730"]]), os = /* @_
|
|
|
1943
1960
|
label: { default: void 0 }
|
|
1944
1961
|
},
|
|
1945
1962
|
setup(o) {
|
|
1946
|
-
const i = o, s =
|
|
1947
|
-
return (n,
|
|
1963
|
+
const i = o, s = f(() => i.iconLeading || i.iconTrailing);
|
|
1964
|
+
return (n, d) => (l(), S(j(i.element === t(_).LINK ? t(_).LINK : t(_).BUTTON), {
|
|
1948
1965
|
class: a([
|
|
1949
|
-
i.element === t(
|
|
1966
|
+
i.element === t(_).LINK ? "tide-button-as-link" : "tide-link",
|
|
1950
1967
|
s.value ? [t(e).DISPLAY.INLINE_FLEX, t(e).AXIS2.CENTER, t(e).GAP.HALF] : [t(e).FONT.WEIGHT.SEVEN_HUNDRED, t(e).UNDERLINE.ON]
|
|
1951
1968
|
]),
|
|
1952
1969
|
href: i.href,
|
|
1953
1970
|
target: i.isNewTab ? t(k).BLANK : t(k).SELF
|
|
1954
1971
|
}, {
|
|
1955
|
-
default:
|
|
1956
|
-
i.iconLeading ? (
|
|
1972
|
+
default: ee(() => [
|
|
1973
|
+
i.iconLeading ? (l(), S(g, {
|
|
1957
1974
|
key: 0,
|
|
1958
1975
|
icon: i.iconLeading
|
|
1959
1976
|
}, null, 8, ["icon"])) : A("", !0),
|
|
1960
|
-
s.value ? (
|
|
1977
|
+
s.value ? (l(), E("div", {
|
|
1961
1978
|
key: 1,
|
|
1962
1979
|
class: a([t(e).FONT.WEIGHT.SEVEN_HUNDRED, t(e).UNDERLINE.ON])
|
|
1963
|
-
},
|
|
1964
|
-
|
|
1980
|
+
}, u(i.label), 3)) : (l(), E(M, { key: 2 }, [
|
|
1981
|
+
Oe(u(i.label), 1)
|
|
1965
1982
|
], 64)),
|
|
1966
|
-
i.iconTrailing ? (
|
|
1983
|
+
i.iconTrailing ? (l(), S(g, {
|
|
1967
1984
|
key: 3,
|
|
1968
1985
|
icon: i.iconTrailing
|
|
1969
1986
|
}, null, 8, ["icon"])) : A("", !0)
|
|
@@ -1971,7 +1988,7 @@ const as = /* @__PURE__ */ C(St, [["__scopeId", "data-v-aff67730"]]), os = /* @_
|
|
|
1971
1988
|
_: 1
|
|
1972
1989
|
}, 8, ["class", "href", "target"]));
|
|
1973
1990
|
}
|
|
1974
|
-
}),
|
|
1991
|
+
}), Dt = ["onClick"], St = /* @__PURE__ */ L({
|
|
1975
1992
|
__name: "TideModal",
|
|
1976
1993
|
props: {
|
|
1977
1994
|
isOpen: { type: Boolean },
|
|
@@ -1980,25 +1997,25 @@ const as = /* @__PURE__ */ C(St, [["__scopeId", "data-v-aff67730"]]), os = /* @_
|
|
|
1980
1997
|
},
|
|
1981
1998
|
emits: ["close"],
|
|
1982
1999
|
setup(o, { emit: i }) {
|
|
1983
|
-
const s = o, n =
|
|
1984
|
-
n.value = !1,
|
|
1985
|
-
}, O = () => {
|
|
1986
|
-
n.value ? (l.value = window.scrollY, document.body.style.overflow = "hidden", l.value && window.scrollTo(0, l.value), I()) : (document.body.style.overflow = "", F());
|
|
1987
|
-
}, E = (L) => {
|
|
1988
|
-
L.key === "Escape" && (L.stopPropagation(), T(L));
|
|
2000
|
+
const s = o, n = R(s.isOpen), d = R(null), T = (N) => {
|
|
2001
|
+
n.value = !1, I(), i("close", N);
|
|
1989
2002
|
}, I = () => {
|
|
1990
|
-
window.
|
|
1991
|
-
},
|
|
1992
|
-
|
|
2003
|
+
n.value ? (d.value = window.scrollY, document.body.style.overflow = "hidden", d.value && window.scrollTo(0, d.value), O()) : (document.body.style.overflow = "", m());
|
|
2004
|
+
}, r = (N) => {
|
|
2005
|
+
N.key === "Escape" && (N.stopPropagation(), T(N));
|
|
2006
|
+
}, O = () => {
|
|
2007
|
+
window.addEventListener("keydown", r);
|
|
2008
|
+
}, m = () => {
|
|
2009
|
+
window.removeEventListener("keydown", r);
|
|
1993
2010
|
};
|
|
1994
|
-
return
|
|
1995
|
-
|
|
2011
|
+
return ie(() => {
|
|
2012
|
+
I();
|
|
1996
2013
|
}), Y(
|
|
1997
2014
|
() => s.isOpen,
|
|
1998
|
-
(
|
|
1999
|
-
n.value =
|
|
2015
|
+
(N) => {
|
|
2016
|
+
n.value = N, I();
|
|
2000
2017
|
}
|
|
2001
|
-
), (
|
|
2018
|
+
), (N, G) => (l(), S(_e, { to: "body" }, [
|
|
2002
2019
|
c("div", {
|
|
2003
2020
|
class: a([
|
|
2004
2021
|
"tide-modal-wrapper",
|
|
@@ -2016,9 +2033,9 @@ const as = /* @__PURE__ */ C(St, [["__scopeId", "data-v-aff67730"]]), os = /* @_
|
|
|
2016
2033
|
}, [
|
|
2017
2034
|
c("div", {
|
|
2018
2035
|
class: a(["tide-modal-bg", t(e).POSITION.ABSOLUTE, t(e).WIDTH.FULL, t(e).HEIGHT.FULL]),
|
|
2019
|
-
style:
|
|
2020
|
-
onClick:
|
|
2021
|
-
}, null, 14,
|
|
2036
|
+
style: se({ "--tide-modal-width": s.width }),
|
|
2037
|
+
onClick: ae(T, ["self"])
|
|
2038
|
+
}, null, 14, Dt),
|
|
2022
2039
|
c("div", {
|
|
2023
2040
|
class: a([
|
|
2024
2041
|
"tide-modal",
|
|
@@ -2044,16 +2061,16 @@ const as = /* @__PURE__ */ C(St, [["__scopeId", "data-v-aff67730"]]), os = /* @_
|
|
|
2044
2061
|
t(e).BORDER.COLOR.LOW
|
|
2045
2062
|
])
|
|
2046
2063
|
}, [
|
|
2047
|
-
|
|
2064
|
+
N.title ? (l(), E("div", {
|
|
2048
2065
|
key: 0,
|
|
2049
2066
|
class: a([t(e).FLEX.GROW.ON, t(e).FONT.SIZE.TWENTY, t(e).FONT.WEIGHT.SEVEN_HUNDRED])
|
|
2050
|
-
}, N
|
|
2067
|
+
}, u(N.title), 3)) : A("", !0),
|
|
2051
2068
|
c("button", {
|
|
2052
2069
|
class: a([t(e).POSITION.ABSOLUTE, t(e).POSITIONING.RIGHT, t(e).MARGIN.RIGHT.TWO]),
|
|
2053
2070
|
onClick: T,
|
|
2054
2071
|
title: "Close"
|
|
2055
2072
|
}, [
|
|
2056
|
-
P(
|
|
2073
|
+
P(g, {
|
|
2057
2074
|
icon: t(v).CLOSE
|
|
2058
2075
|
}, null, 8, ["icon"])
|
|
2059
2076
|
], 2)
|
|
@@ -2061,9 +2078,9 @@ const as = /* @__PURE__ */ C(St, [["__scopeId", "data-v-aff67730"]]), os = /* @_
|
|
|
2061
2078
|
c("div", {
|
|
2062
2079
|
class: a(["tide-modal-content", t(e).PADDING.FULL.TWO, t(e).OVERFLOW.Y.AUTO])
|
|
2063
2080
|
}, [
|
|
2064
|
-
|
|
2081
|
+
B(N.$slots, "default", {}, void 0, !0)
|
|
2065
2082
|
], 2),
|
|
2066
|
-
|
|
2083
|
+
N.$slots.footer ? (l(), E("footer", {
|
|
2067
2084
|
key: 0,
|
|
2068
2085
|
class: a([
|
|
2069
2086
|
"tide-bg-surface",
|
|
@@ -2078,14 +2095,14 @@ const as = /* @__PURE__ */ C(St, [["__scopeId", "data-v-aff67730"]]), os = /* @_
|
|
|
2078
2095
|
t(e).SHADOW.TOP
|
|
2079
2096
|
])
|
|
2080
2097
|
}, [
|
|
2081
|
-
|
|
2098
|
+
B(N.$slots, "footer", {}, void 0, !0)
|
|
2082
2099
|
], 2)) : A("", !0)
|
|
2083
2100
|
], 2)
|
|
2084
2101
|
], 2)
|
|
2085
2102
|
]));
|
|
2086
2103
|
}
|
|
2087
2104
|
});
|
|
2088
|
-
const
|
|
2105
|
+
const as = /* @__PURE__ */ U(St, [["__scopeId", "data-v-5e665389"]]), os = /* @__PURE__ */ L({
|
|
2089
2106
|
__name: "TidePagination",
|
|
2090
2107
|
props: {
|
|
2091
2108
|
pageCurrent: { default: 1 },
|
|
@@ -2093,39 +2110,39 @@ const ns = /* @__PURE__ */ C(ft, [["__scopeId", "data-v-5e665389"]]), ls = /* @_
|
|
|
2093
2110
|
},
|
|
2094
2111
|
emits: ["change"],
|
|
2095
2112
|
setup(o, { emit: i }) {
|
|
2096
|
-
const s = o, n =
|
|
2097
|
-
n.value =
|
|
2113
|
+
const s = o, n = R(s.pageCurrent), d = f(() => new Array(s.pageTotal).fill("").map((I, r) => r + 1)), T = (I, r) => {
|
|
2114
|
+
n.value = r, i("change", I, r);
|
|
2098
2115
|
};
|
|
2099
|
-
return (
|
|
2116
|
+
return (I, r) => (l(), E("section", {
|
|
2100
2117
|
class: a(["tide-pagination", t(e).DISPLAY.FLEX, t(e).AXIS1.CENTER, t(e).AXIS2.CENTER, t(e).GAP.QUARTER, t(e).WIDTH.FULL])
|
|
2101
2118
|
}, [
|
|
2102
2119
|
P(J, {
|
|
2103
2120
|
disabled: n.value === 1,
|
|
2104
2121
|
icon: t(v).CHEVRON_LEFT,
|
|
2105
|
-
priority: t(
|
|
2106
|
-
onClick:
|
|
2122
|
+
priority: t($).QUATERNARY,
|
|
2123
|
+
onClick: r[0] || (r[0] = (O) => T(O, n.value - 1))
|
|
2107
2124
|
}, null, 8, ["disabled", "icon", "priority"]),
|
|
2108
2125
|
c("ul", {
|
|
2109
2126
|
class: a([t(e).DISPLAY.FLEX, t(e).AXIS2.CENTER, t(e).GAP.QUARTER, t(e).LIST_BULLETS.OFF])
|
|
2110
2127
|
}, [
|
|
2111
|
-
(
|
|
2112
|
-
P(
|
|
2113
|
-
disabled: n.value ===
|
|
2114
|
-
label:
|
|
2115
|
-
priority: t(
|
|
2116
|
-
onClick: (
|
|
2128
|
+
(l(!0), E(M, null, Q(d.value, (O) => (l(), E("li", { key: O }, [
|
|
2129
|
+
P(Ve, {
|
|
2130
|
+
disabled: n.value === O,
|
|
2131
|
+
label: O,
|
|
2132
|
+
priority: t($).QUATERNARY,
|
|
2133
|
+
onClick: (m) => T(m, O)
|
|
2117
2134
|
}, null, 8, ["disabled", "label", "priority", "onClick"])
|
|
2118
2135
|
]))), 128))
|
|
2119
2136
|
], 2),
|
|
2120
2137
|
P(J, {
|
|
2121
|
-
disabled: n.value ===
|
|
2138
|
+
disabled: n.value === d.value[d.value.length - 1],
|
|
2122
2139
|
icon: t(v).CHEVRON_RIGHT,
|
|
2123
|
-
priority: t(
|
|
2124
|
-
onClick:
|
|
2140
|
+
priority: t($).QUATERNARY,
|
|
2141
|
+
onClick: r[1] || (r[1] = (O) => T(O, n.value + 1))
|
|
2125
2142
|
}, null, 8, ["disabled", "icon", "priority"])
|
|
2126
2143
|
], 2));
|
|
2127
2144
|
}
|
|
2128
|
-
}),
|
|
2145
|
+
}), gt = { class: "tide-seo-links" }, ft = ["href", "target"], mt = /* @__PURE__ */ L({
|
|
2129
2146
|
__name: "TideSeoLinks",
|
|
2130
2147
|
props: {
|
|
2131
2148
|
heading: { default: "" },
|
|
@@ -2133,28 +2150,28 @@ const ns = /* @__PURE__ */ C(ft, [["__scopeId", "data-v-5e665389"]]), ls = /* @_
|
|
|
2133
2150
|
},
|
|
2134
2151
|
setup(o) {
|
|
2135
2152
|
const i = o;
|
|
2136
|
-
return (s, n) => (
|
|
2153
|
+
return (s, n) => (l(), E("section", gt, [
|
|
2137
2154
|
c("h2", {
|
|
2138
2155
|
class: a([t(e).MARGIN.BOTTOM.HALF, t(e).FONT.SIZE.SIXTEEN])
|
|
2139
|
-
},
|
|
2156
|
+
}, u(i.heading), 3),
|
|
2140
2157
|
c("ul", {
|
|
2141
2158
|
class: a([t(e).DISPLAY.FLEX, t(e).FLEX.WRAP, t(e).GAP.TWO, t(e).LIST_BULLETS.OFF])
|
|
2142
2159
|
}, [
|
|
2143
|
-
(
|
|
2160
|
+
(l(!0), E(M, null, Q(i.links, (d) => (l(), E("li", {
|
|
2144
2161
|
class: a(["tide-seo-link", t(e).DISPLAY.FLEX, t(e).FLEX.DIRECTION.COLUMN, t(e).GAP.QUARTER, t(e).FONT.SIZE.FOURTEEN]),
|
|
2145
|
-
key:
|
|
2162
|
+
key: d.label
|
|
2146
2163
|
}, [
|
|
2147
2164
|
c("a", {
|
|
2148
2165
|
class: a([t(e).UNDERLINE.OFF]),
|
|
2149
|
-
href:
|
|
2150
|
-
target:
|
|
2151
|
-
},
|
|
2166
|
+
href: d.url,
|
|
2167
|
+
target: d.isNewTab ? t(k).BLANK : t(k).SELF
|
|
2168
|
+
}, u(d.label), 11, ft)
|
|
2152
2169
|
], 2))), 128))
|
|
2153
2170
|
], 2)
|
|
2154
2171
|
]));
|
|
2155
2172
|
}
|
|
2156
2173
|
});
|
|
2157
|
-
const
|
|
2174
|
+
const ns = /* @__PURE__ */ U(mt, [["__scopeId", "data-v-d62373f1"]]), Ut = ["data-track", "onClick"], Ct = /* @__PURE__ */ L({
|
|
2158
2175
|
__name: "TideTabs",
|
|
2159
2176
|
props: {
|
|
2160
2177
|
activeTabInitial: { default: 0 },
|
|
@@ -2162,10 +2179,10 @@ const ds = /* @__PURE__ */ C(Ct, [["__scopeId", "data-v-d62373f1"]]), Pt = ["dat
|
|
|
2162
2179
|
},
|
|
2163
2180
|
emits: ["change"],
|
|
2164
2181
|
setup(o, { emit: i }) {
|
|
2165
|
-
const s = o, n =
|
|
2166
|
-
n.value =
|
|
2182
|
+
const s = o, n = R(s.activeTabInitial), d = (T, I) => {
|
|
2183
|
+
n.value = I, i("change", T, I);
|
|
2167
2184
|
};
|
|
2168
|
-
return (T,
|
|
2185
|
+
return (T, I) => (l(), E("div", {
|
|
2169
2186
|
class: a([
|
|
2170
2187
|
"tide-tabs",
|
|
2171
2188
|
t(e).BG.SURFACE.VARIANT,
|
|
@@ -2177,10 +2194,10 @@ const ds = /* @__PURE__ */ C(Ct, [["__scopeId", "data-v-d62373f1"]]), Pt = ["dat
|
|
|
2177
2194
|
t(e).WIDTH.FULL
|
|
2178
2195
|
])
|
|
2179
2196
|
}, [
|
|
2180
|
-
(
|
|
2197
|
+
(l(!0), E(M, null, Q(s.tabs, (r, O) => (l(), E("button", {
|
|
2181
2198
|
class: a([
|
|
2182
2199
|
"tide-tabs-tab",
|
|
2183
|
-
|
|
2200
|
+
O === n.value ? [t(e).BG.SURFACE.DEFAULT, t(e).FONT.COLOR.SURFACE.DEFAULT, t(e).SHADOW.BOTTOM] : ["inactive", t(e).FONT.COLOR.SURFACE.VARIANT],
|
|
2184
2201
|
t(e).FLEX.GROW.ON,
|
|
2185
2202
|
t(e).BORDER.RADIUS.QUARTER,
|
|
2186
2203
|
t(e).PADDING.Y.QUARTER,
|
|
@@ -2188,22 +2205,22 @@ const ds = /* @__PURE__ */ C(Ct, [["__scopeId", "data-v-d62373f1"]]), Pt = ["dat
|
|
|
2188
2205
|
t(e).FONT.WEIGHT.SIX_HUNDRED,
|
|
2189
2206
|
t(e).WHITESPACE_WRAP.OFF
|
|
2190
2207
|
]),
|
|
2191
|
-
"data-track":
|
|
2192
|
-
key:
|
|
2193
|
-
onClick: (
|
|
2208
|
+
"data-track": r.dataTrack || void 0,
|
|
2209
|
+
key: r.label,
|
|
2210
|
+
onClick: (m) => d(m, O)
|
|
2194
2211
|
}, [
|
|
2195
2212
|
c("span", {
|
|
2196
2213
|
class: a([t(e).FONT.WEIGHT.SIX_HUNDRED])
|
|
2197
|
-
},
|
|
2198
|
-
|
|
2214
|
+
}, u(r.label), 3),
|
|
2215
|
+
r.count && r.count > 0 ? (l(), E("span", {
|
|
2199
2216
|
key: 0,
|
|
2200
2217
|
class: a([t(e).FONT.WEIGHT.SIX_HUNDRED])
|
|
2201
|
-
}, " (" +
|
|
2202
|
-
], 10,
|
|
2218
|
+
}, " (" + u(r.count) + ") ", 3)) : A("", !0)
|
|
2219
|
+
], 10, Ut))), 128))
|
|
2203
2220
|
], 2));
|
|
2204
2221
|
}
|
|
2205
2222
|
});
|
|
2206
|
-
const
|
|
2223
|
+
const ls = /* @__PURE__ */ U(Ct, [["__scopeId", "data-v-894fc638"]]), Pt = ["disabled"], Gt = /* @__PURE__ */ L({
|
|
2207
2224
|
__name: "TideToggle",
|
|
2208
2225
|
props: {
|
|
2209
2226
|
disabled: {
|
|
@@ -2218,10 +2235,10 @@ const rs = /* @__PURE__ */ C(Gt, [["__scopeId", "data-v-894fc638"]]), ht = ["dis
|
|
|
2218
2235
|
},
|
|
2219
2236
|
emits: ["change"],
|
|
2220
2237
|
setup(o, { emit: i }) {
|
|
2221
|
-
const s = o, n =
|
|
2238
|
+
const s = o, n = R(s.isActive), d = (T) => {
|
|
2222
2239
|
s.disabled || (n.value = !n.value, i("change", T, n.value));
|
|
2223
2240
|
};
|
|
2224
|
-
return (T,
|
|
2241
|
+
return (T, I) => (l(), E("button", {
|
|
2225
2242
|
class: a([
|
|
2226
2243
|
"tide-toggle",
|
|
2227
2244
|
s.isActive ? "active" : "",
|
|
@@ -2234,7 +2251,7 @@ const rs = /* @__PURE__ */ C(Gt, [["__scopeId", "data-v-894fc638"]]), ht = ["dis
|
|
|
2234
2251
|
s.isActive ? t(e).BG.SECONDARY : t(e).BG.SURFACE.DEFAULT
|
|
2235
2252
|
]),
|
|
2236
2253
|
disabled: s.disabled,
|
|
2237
|
-
onClick:
|
|
2254
|
+
onClick: d,
|
|
2238
2255
|
"aria-label": "Toggle"
|
|
2239
2256
|
}, [
|
|
2240
2257
|
c("div", {
|
|
@@ -2248,18 +2265,18 @@ const rs = /* @__PURE__ */ C(Gt, [["__scopeId", "data-v-894fc638"]]), ht = ["dis
|
|
|
2248
2265
|
s.isActive ? t(e).BG.SURFACE.DEFAULT : t(e).BG.SECONDARY
|
|
2249
2266
|
])
|
|
2250
2267
|
}, [
|
|
2251
|
-
P(
|
|
2268
|
+
P(g, {
|
|
2252
2269
|
icon: t(v).CHECK,
|
|
2253
|
-
size: t(
|
|
2270
|
+
size: t(b).LARGE
|
|
2254
2271
|
}, null, 8, ["icon", "size"])
|
|
2255
2272
|
], 2)
|
|
2256
|
-
], 10,
|
|
2273
|
+
], 10, Pt));
|
|
2257
2274
|
}
|
|
2258
2275
|
});
|
|
2259
|
-
const
|
|
2260
|
-
NUMBER:
|
|
2261
|
-
PHONE:
|
|
2262
|
-
PRICE:
|
|
2276
|
+
const ds = /* @__PURE__ */ U(Gt, [["__scopeId", "data-v-59d06131"]]), rs = {
|
|
2277
|
+
NUMBER: ne,
|
|
2278
|
+
PHONE: ge,
|
|
2279
|
+
PRICE: fe
|
|
2263
2280
|
}, q = {
|
|
2264
2281
|
alpha: /^[a-zA-Z]+$/g,
|
|
2265
2282
|
alphaNumberOrEmpty: /^$|^[a-z0-9]+$/i,
|
|
@@ -2268,14 +2285,14 @@ const Es = /* @__PURE__ */ C(bt, [["__scopeId", "data-v-59d06131"]]), cs = {
|
|
|
2268
2285
|
numberFormatted: /^$|(?=.)^\$?(([1-9][0-9]{0,2}(,[0-9]{3})*)|0)?(\.[0-9]{1,2})?$/,
|
|
2269
2286
|
phone: /^(?:\d{3}-\d{3}-\d{4}|\d{1}-\d{3}-\d{3}-\d{4})?$/,
|
|
2270
2287
|
price: /(?=.)^\$?(([1-9][0-9]{0,2}(,[0-9]{3})*)|0)?(\.[0-9]{1,2})?$/
|
|
2271
|
-
},
|
|
2288
|
+
}, Es = {
|
|
2272
2289
|
IMAGE: {
|
|
2273
2290
|
FLOORPLAN: "floorplan",
|
|
2274
2291
|
IMAGE: "image"
|
|
2275
2292
|
},
|
|
2276
2293
|
VIDEO: "video",
|
|
2277
2294
|
VR: "vr"
|
|
2278
|
-
},
|
|
2295
|
+
}, cs = {
|
|
2279
2296
|
AERO: "aero",
|
|
2280
2297
|
ATV: "atv",
|
|
2281
2298
|
BOATMART: "boatmart",
|
|
@@ -2285,63 +2302,63 @@ const Es = /* @__PURE__ */ C(bt, [["__scopeId", "data-v-59d06131"]]), cs = {
|
|
|
2285
2302
|
RV: "rv",
|
|
2286
2303
|
SNOW: "snow",
|
|
2287
2304
|
TRUCK: "truck"
|
|
2288
|
-
},
|
|
2289
|
-
ALPHA_NUMBER_EMPTY:
|
|
2290
|
-
ALPHA_SPACE:
|
|
2291
|
-
EMAIL:
|
|
2292
|
-
NUMBER:
|
|
2293
|
-
PHONE:
|
|
2305
|
+
}, Ts = {
|
|
2306
|
+
ALPHA_NUMBER_EMPTY: K(q.alphaNumberOrEmpty),
|
|
2307
|
+
ALPHA_SPACE: K(q.alphaSpace),
|
|
2308
|
+
EMAIL: K(q.email),
|
|
2309
|
+
NUMBER: K(q.numberFormatted),
|
|
2310
|
+
PHONE: K(q.phone)
|
|
2294
2311
|
};
|
|
2295
2312
|
export {
|
|
2296
2313
|
y as ALERT,
|
|
2297
|
-
|
|
2298
|
-
|
|
2299
|
-
|
|
2300
|
-
|
|
2314
|
+
Mt as BADGE,
|
|
2315
|
+
kt as BADGE_PREMIUM,
|
|
2316
|
+
Be as BADGE_TRUSTED,
|
|
2317
|
+
bt as BREAKPOINT,
|
|
2301
2318
|
e as CSS,
|
|
2302
|
-
|
|
2303
|
-
|
|
2304
|
-
|
|
2319
|
+
_ as ELEMENT,
|
|
2320
|
+
x as ELEMENT_TEXT_AS_ICON,
|
|
2321
|
+
rs as FORMAT,
|
|
2305
2322
|
q as FORMAT_REGEX,
|
|
2306
2323
|
v as ICON,
|
|
2307
|
-
|
|
2308
|
-
|
|
2309
|
-
|
|
2310
|
-
|
|
2311
|
-
|
|
2324
|
+
Es as MEDIA_SLIDE_TYPES,
|
|
2325
|
+
ce as ORIENTATION,
|
|
2326
|
+
$ as PRIORITY,
|
|
2327
|
+
cs as REALM,
|
|
2328
|
+
b as SIZE,
|
|
2312
2329
|
k as TARGET,
|
|
2313
2330
|
z as TEXT_INPUT_TYPE,
|
|
2314
|
-
|
|
2315
|
-
|
|
2316
|
-
|
|
2317
|
-
|
|
2318
|
-
|
|
2319
|
-
|
|
2320
|
-
|
|
2321
|
-
|
|
2331
|
+
Ht as TideAccordionItem,
|
|
2332
|
+
yt as TideAlert,
|
|
2333
|
+
Bt as TideBackgroundImage,
|
|
2334
|
+
Xt as TideBadge,
|
|
2335
|
+
Wt as TideBadgePremium,
|
|
2336
|
+
Yt as TideBadgeTrustedPartner,
|
|
2337
|
+
Vt as TideBreadCrumbs,
|
|
2338
|
+
xt as TideButton,
|
|
2322
2339
|
J as TideButtonIcon,
|
|
2323
|
-
|
|
2324
|
-
|
|
2325
|
-
|
|
2340
|
+
Ve as TideButtonPagination,
|
|
2341
|
+
$t as TideCard,
|
|
2342
|
+
wt as TideCarousel,
|
|
2326
2343
|
Zt as TideChipAction,
|
|
2327
|
-
|
|
2328
|
-
|
|
2329
|
-
|
|
2330
|
-
|
|
2331
|
-
|
|
2332
|
-
|
|
2333
|
-
|
|
2334
|
-
|
|
2335
|
-
|
|
2336
|
-
|
|
2337
|
-
|
|
2338
|
-
|
|
2339
|
-
|
|
2340
|
-
|
|
2341
|
-
|
|
2342
|
-
|
|
2343
|
-
|
|
2344
|
-
|
|
2345
|
-
|
|
2344
|
+
Qt as TideChipFilter,
|
|
2345
|
+
Kt as TideChipInput,
|
|
2346
|
+
zt as TideColumns,
|
|
2347
|
+
Te as TideDivider,
|
|
2348
|
+
g as TideIcon,
|
|
2349
|
+
qt as TideImage,
|
|
2350
|
+
Pe as TideIndicator,
|
|
2351
|
+
Jt as TideInputCheckbox,
|
|
2352
|
+
jt as TideInputRadio,
|
|
2353
|
+
es as TideInputSelect,
|
|
2354
|
+
ts as TideInputText,
|
|
2355
|
+
ss as TideInputTextarea,
|
|
2356
|
+
is as TideLink,
|
|
2357
|
+
as as TideModal,
|
|
2358
|
+
os as TidePagination,
|
|
2359
|
+
ns as TideSeoLinks,
|
|
2360
|
+
ls as TideTabs,
|
|
2361
|
+
ds as TideToggle,
|
|
2362
|
+
Ts as VALIDATOR
|
|
2346
2363
|
};
|
|
2347
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlkZS1kZXNpZ24tc3lzdGVtLmVzbS5qcyIsInNvdXJjZXMiOlsiLi4vc3JjL3R5cGVzL1N0eWxlcy50cyIsIi4uL3NyYy90eXBlcy9PcmllbnRhdGlvbi50cyIsIi4uL3NyYy90eXBlcy9TaXplLnRzIiwiLi4vc3JjL3V0aWxpdGllcy9mb3JtYXQudHMiLCIuLi9zcmMvY29tcG9uZW50cy9UaWRlSWNvbi52dWUiLCIuLi9zcmMvdHlwZXMvSWNvbi50cyIsIi4uL3NyYy9jb21wb25lbnRzL1RpZGVBY2NvcmRpb25JdGVtLnZ1ZSIsIi4uL3NyYy90eXBlcy9FbGVtZW50LnRzIiwiLi4vc3JjL3R5cGVzL1ByaW9yaXR5LnRzIiwiLi4vc3JjL3R5cGVzL1RhcmdldC50cyIsIi4uL3NyYy90eXBlcy9BbGVydC50cyIsIi4uL3NyYy9jb21wb25lbnRzL1RpZGVBbGVydC52dWUiLCIuLi9zcmMvdHlwZXMvQmFkZ2UudHMiLCIuLi9zcmMvY29tcG9uZW50cy9UaWRlQ2Fyb3VzZWwudnVlIiwiLi4vc3JjL2NvbXBvbmVudHMvVGlkZUltYWdlLnZ1ZSIsIi4uL3NyYy9jb21wb25lbnRzL1RpZGVJbnB1dENoZWNrYm94LnZ1ZSIsIi4uL3NyYy9jb21wb25lbnRzL1RpZGVJbnB1dFJhZGlvLnZ1ZSIsIi4uL3NyYy91dGlsaXRpZXMvdmFsaWRhdGlvbi50cyIsIi4uL3NyYy9jb21wb25lbnRzL1RpZGVJbnB1dFNlbGVjdC52dWUiLCIuLi9zcmMvdHlwZXMvVGV4dElucHV0LnRzIiwiLi4vc3JjL2NvbXBvbmVudHMvVGlkZUlucHV0VGV4dC52dWUiLCIuLi9zcmMvY29tcG9uZW50cy9UaWRlSW5wdXRUZXh0YXJlYS52dWUiLCIuLi9zcmMvY29tcG9uZW50cy9UaWRlTGluay52dWUiLCIuLi9zcmMvY29tcG9uZW50cy9UaWRlTW9kYWwudnVlIiwiLi4vc3JjL2NvbXBvbmVudHMvVGlkZVBhZ2luYXRpb24udnVlIiwiLi4vc3JjL2NvbXBvbmVudHMvVGlkZVRhYnMudnVlIiwiLi4vc3JjL2NvbXBvbmVudHMvVGlkZVRvZ2dsZS52dWUiLCIuLi9zcmMvdHlwZXMvRm9ybWF0dGVkLnRzIiwiLi4vc3JjL3R5cGVzL0xpc3RpbmdNZWRpYS50cyIsIi4uL3NyYy90eXBlcy9SZWFsbS50cyIsIi4uL3NyYy90eXBlcy9WYWxpZGF0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHZ1ZS9zb3J0LWtleXMgKi9cblxuZXhwb3J0IGNvbnN0IEJSRUFLUE9JTlQgPSB7XG4gIFNNOiAnc20nLFxuICBNRDogJ21kJyxcbiAgTEc6ICdsZycsXG4gIFhMOiAneGwnLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgQnJlYWtwb2ludCA9ICh0eXBlb2YgQlJFQUtQT0lOVClba2V5b2YgdHlwZW9mIEJSRUFLUE9JTlRdO1xuXG5leHBvcnQgY29uc3QgQ1NTID0ge1xuICB3aXRoQnJlYWtwb2ludDogKHV0aWxpdGllczogc3RyaW5nW10sIGJyZWFrcG9pbnQ6IEJyZWFrcG9pbnQpOiBzdHJpbmdbXSA9PiB7XG4gICAgcmV0dXJuIHV0aWxpdGllcy5tYXAoKHV0aWxpdHkpID0+IGAke2JyZWFrcG9pbnR9LSR7dXRpbGl0eX1gKTtcbiAgfSxcbiAgQUxJR046IHtcbiAgICBYOiB7XG4gICAgICBDRU5URVI6ICd0aWRlLXRleHQtY2VudGVyJyxcbiAgICAgIExFRlQ6ICd0aWRlLXRleHQtbGVmdCcsXG4gICAgICBSSUdIVDogJ3RpZGUtdGV4dC1yaWdodCcsXG4gICAgfSxcbiAgICBZOiB7XG4gICAgICBNSURETEU6ICd0aWRlLWFsaWduLW1pZGRsZScsXG4gICAgfSxcbiAgfSxcbiAgQVhJUzE6IHtcbiAgICBBUk9VTkQ6ICd0aWRlLWF4aXMxLWFyb3VuZCcsXG4gICAgQkVUV0VFTjogJ3RpZGUtYXhpczEtYmV0d2VlbicsXG4gICAgQ0VOVEVSOiAndGlkZS1heGlzMS1jZW50ZXInLFxuICAgIEVORDogJ3RpZGUtYXhpczEtZW5kJyxcbiAgICBTVEFSVDogJ3RpZGUtYXhpczEtc3RhcnQnLFxuICB9LFxuICBBWElTMjoge1xuICAgIEFST1VORDogJ3RpZGUtYXhpczItYXJvdW5kJyxcbiAgICBDRU5URVI6ICd0aWRlLWF4aXMyLWNlbnRlcicsXG4gICAgRU5EOiAndGlkZS1heGlzMi1lbmQnLFxuICAgIFNUQVJUOiAndGlkZS1heGlzMi1zdGFydCcsXG4gIH0sXG4gIEJHOiB7XG4gICAgQkxVUjogJ3RpZGUtYmctYmx1cicsXG4gICAgRVJST1I6ICd0aWRlLWJnLWVycm9yJyxcbiAgICBJTkZPOiAndGlkZS1iZy1pbmZvJyxcbiAgICBQUklNQVJZOiAndGlkZS1iZy1wcmltYXJ5JyxcbiAgICBTRUNPTkRBUlk6ICd0aWRlLWJnLXNlY29uZGFyeScsXG4gICAgU1VDQ0VTUzogJ3RpZGUtYmctc3VjY2VzcycsXG4gICAgU1VSRkFDRToge1xuICAgICAgQUNDRU5UOiAndGlkZS1iZy1zdXJmYWNlLWFjY2VudCcsXG4gICAgICBBQ0NFTlRfVkFSSUFOVDogJ3RpZGUtYmctc3VyZmFjZS1hY2NlbnQtdmFyaWFudCcsXG4gICAgICBCUkFORDogJ3RpZGUtYmctc3VyZmFjZS1icmFuZCcsXG4gICAgICBERUZBVUxUOiAndGlkZS1iZy1zdXJmYWNlJyxcbiAgICAgIEVSUk9SOiAndGlkZS1iZy1zdXJmYWNlLWVycm9yJyxcbiAgICAgIEZMT0FUSU5HOiAndGlkZS1iZy1zdXJmYWNlLWZsb2F0aW5nJyxcbiAgICAgIEdSQURJRU5UOiAndGlkZS1iZy1zdXJmYWNlLWdyYWRpZW50JyxcbiAgICAgIElORk86ICd0aWRlLWJnLXN1cmZhY2UtaW5mbycsXG4gICAgICBTVUNDRVNTOiAndGlkZS1iZy1zdXJmYWNlLXN1Y2Nlc3MnLFxuICAgICAgVkFSSUFOVDogJ3RpZGUtYmctc3VyZmFjZS12YXJpYW50JyxcbiAgICAgIFdBUk5JTkc6ICd0aWRlLWJnLXN1cmZhY2Utd2FybmluZycsXG4gICAgfSxcbiAgICBXQVJOSU5HOiAndGlkZS1iZy13YXJuaW5nJyxcbiAgfSxcbiAgQk9SREVSOiB7XG4gICAgQ09MT1I6IHtcbiAgICAgIERFRkFVTFQ6ICd0aWRlLWJvcmRlcicsXG4gICAgICBGTE9BVElORzogJ3RpZGUtYm9yZGVyLWZsb2F0aW5nJyxcbiAgICAgIEhJR0g6ICd0aWRlLWJvcmRlci1oaWdoJyxcbiAgICAgIExPVzogJ3RpZGUtYm9yZGVyLWxvdycsXG4gICAgICBQUklNQVJZOiAndGlkZS1ib3JkZXItcHJpbWFyeScsXG4gICAgfSxcbiAgICBSQURJVVM6IHtcbiAgICAgIFFVQVJURVI6ICd0aWRlLXJhZGl1cy0xLzQnLFxuICAgICAgSEFMRjogJ3RpZGUtcmFkaXVzLTEvMicsXG4gICAgICBPTkU6ICd0aWRlLXJhZGl1cy0xJyxcbiAgICAgIEZVTEw6ICd0aWRlLXJhZGl1cy1mdWxsJyxcbiAgICB9LFxuICAgIEJPVFRPTToge1xuICAgICAgT05FOiAndGlkZS1ib3JkZXItYm90dG9tLTEnLFxuICAgICAgVFdPOiAndGlkZS1ib3JkZXItYm90dG9tLTInLFxuICAgIH0sXG4gICAgRlVMTDoge1xuICAgICAgT05FOiAndGlkZS1ib3JkZXItMScsXG4gICAgICBUV086ICd0aWRlLWJvcmRlci0yJyxcbiAgICB9LFxuICAgIExFRlQ6IHtcbiAgICAgIE9ORTogJ3RpZGUtYm9yZGVyLWxlZnQtMScsXG4gICAgICBUV086ICd0aWRlLWJvcmRlci1sZWZ0LTInLFxuICAgIH0sXG4gICAgUklHSFQ6IHtcbiAgICAgIE9ORTogJ3RpZGUtYm9yZGVyLXJpZ2h0LTEnLFxuICAgICAgVFdPOiAndGlkZS1ib3JkZXItcmlnaHQtMicsXG4gICAgfSxcbiAgICBUT1A6IHtcbiAgICAgIE9ORTogJ3RpZGUtYm9yZGVyLXRvcC0xJyxcbiAgICAgIFRXTzogJ3RpZGUtYm9yZGVyLXRvcC0yJyxcbiAgICB9LFxuICB9LFxuICBCT1hfU0laSU5HOiB7XG4gICAgQk9SREVSX0JPWDogJ3RpZGUtYm94LWJvcmRlcicsXG4gICAgQ09OVEVOVF9CT1g6ICd0aWRlLWJveC1jb250ZW50JyxcbiAgfSxcbiAgQlJFQUtfV09SRDoge1xuICAgIE9OOiAndGlkZS1icmVhay13b3JkJyxcbiAgfSxcbiAgQ09MVU1OUzoge1xuICAgIE9ORTogJ3RpZGUtY29sdW1ucy0xJyxcbiAgICBUV086ICd0aWRlLWNvbHVtbnMtMicsXG4gICAgVEhSRUU6ICd0aWRlLWNvbHVtbnMtMycsXG4gICAgRk9VUjogJ3RpZGUtY29sdW1ucy00JyxcbiAgfSxcbiAgQ1VSU09SOiB7XG4gICAgTk9UX0FMTE9XRUQ6ICd0aWRlLWN1cnNvci1ub3QtYWxsb3dlZCcsXG4gICAgUE9JTlRFUjogJ3RpZGUtY3Vyc29yLXBvaW50ZXInLFxuICAgIFRFWFQ6ICd0aWRlLWN1cnNvci10ZXh0JyxcbiAgfSxcbiAgRElTUExBWToge1xuICAgIEJMT0NLOiAndGlkZS1kaXNwbGF5LWJsb2NrJyxcbiAgICBDT05URU5UUzogJ3RpZGUtY29udGVudHMnLFxuICAgIEZMRVg6ICd0aWRlLWRpc3BsYXktZmxleCcsXG4gICAgR1JJRDogJ3RpZGUtZGlzcGxheS1ncmlkJyxcbiAgICBJTklUSUFMOiAnaW5pdGlhbCcsXG4gICAgSU5MSU5FOiAndGlkZS1kaXNwbGF5LWlubGluZScsXG4gICAgSU5MSU5FX0JMT0NLOiAndGlkZS1kaXNwbGF5LWlubGluZS1ibG9jaycsXG4gICAgSU5MSU5FX0ZMRVg6ICd0aWRlLWRpc3BsYXktaW5saW5lLWZsZXgnLFxuICAgIE5PTkU6ICd0aWRlLWRpc3BsYXktbm9uZScsXG4gIH0sXG4gIEZMRVg6IHtcbiAgICBCQVNJUzoge1xuICAgICAgWkVSTzogJ3RpZGUtZmxleC1iYXNpcy0wJyxcbiAgICB9LFxuICAgIERJUkVDVElPTjoge1xuICAgICAgQ09MVU1OOiAndGlkZS1mbGV4LWNvbHVtbicsXG4gICAgICBDT0xVTU5fUkVWRVJTRTogJ3RpZGUtZmxleC1jb2x1bW4tcmV2ZXJzZScsXG4gICAgICBST1c6ICd0aWRlLWZsZXgtcm93JyxcbiAgICAgIFJPV19SRVZFUlNFOiAndGlkZS1mbGV4LXJvdy1yZXZlcnNlJyxcbiAgICB9LFxuICAgIEdST1c6IHtcbiAgICAgIE9GRjogJ3RpZGUtZ3Jvdy1ub25lJyxcbiAgICAgIE9OOiAndGlkZS1ncm93JyxcbiAgICB9LFxuICAgIFNIUklOSzoge1xuICAgICAgT0ZGOiAndGlkZS1zaHJpbmstbm9uZScsXG4gICAgICBPTjogJ3RpZGUtc2hyaW5rJyxcbiAgICB9LFxuICAgIFdSQVA6ICd0aWRlLWZsZXgtd3JhcCcsXG4gIH0sXG4gIEZPTlQ6IHtcbiAgICBDT0xPUjoge1xuICAgICAgUFJJTUFSWTogJ3RpZGUtZm9udC1vbi1wcmltYXJ5JyxcbiAgICAgIFNFQ09OREFSWTogJ3RpZGUtZm9udC1vbi1zZWNvbmRhcnknLFxuICAgICAgU1VSRkFDRToge1xuICAgICAgICBCUkFORDogJ3RpZGUtZm9udC1vbi1zdXJmYWNlLWJyYW5kJyxcbiAgICAgICAgREVGQVVMVDogJ3RpZGUtZm9udC1vbi1zdXJmYWNlJyxcbiAgICAgICAgSU5WRVJTRTogJ3RpZGUtZm9udC1vbi1zdXJmYWNlLWludmVyc2UnLFxuICAgICAgICBWQVJJQU5UOiAndGlkZS1mb250LW9uLXN1cmZhY2UtdmFyaWFudCcsXG4gICAgICAgIFZBUklBTlRfSU5WRVJTRTogJ3RpZGUtZm9udC1vbi1zdXJmYWNlLXZhcmlhbnQtaW52ZXJzZScsXG4gICAgICB9LFxuICAgIH0sXG4gICAgU0laRToge1xuICAgICAgVFdFTFZFOiAndGlkZS1mb250LTEyJyxcbiAgICAgIEZPVVJURUVOOiAndGlkZS1mb250LTE0JyxcbiAgICAgIFNJWFRFRU46ICd0aWRlLWZvbnQtMTYnLFxuICAgICAgVFdFTlRZOiAndGlkZS1mb250LTIwJyxcbiAgICAgIFRXRU5UWV9GT1VSOiAndGlkZS1mb250LTI0JyxcbiAgICAgIFRISVJUWV9UV086ICd0aWRlLWZvbnQtMzInLFxuICAgIH0sXG4gICAgV0VJR0hUOiB7XG4gICAgICBGT1VSX0hVTkRSRUQ6ICd0aWRlLWZvbnQtNDAwJyxcbiAgICAgIEZJVkVfSFVORFJFRDogJ3RpZGUtZm9udC01MDAnLFxuICAgICAgU0lYX0hVTkRSRUQ6ICd0aWRlLWZvbnQtNjAwJyxcbiAgICAgIFNFVkVOX0hVTkRSRUQ6ICd0aWRlLWZvbnQtNzAwJyxcbiAgICB9LFxuICB9LFxuICBHQVA6IHtcbiAgICBRVUFSVEVSOiAndGlkZS1nYXAtMS80JyxcbiAgICBIQUxGOiAndGlkZS1nYXAtMS8yJyxcbiAgICBPTkU6ICd0aWRlLWdhcC0xJyxcbiAgICBUV086ICd0aWRlLWdhcC0yJyxcbiAgICBGT1VSOiAndGlkZS1nYXAtNCcsXG4gIH0sXG4gIEdSSUQ6IHtcbiAgICBFTkQ6IHtcbiAgICAgIE9ORTogJ3RpZGUtZW5kLTEnLFxuICAgICAgVFdPOiAndGlkZS1lbmQtMicsXG4gICAgICBUSFJFRTogJ3RpZGUtZW5kLTMnLFxuICAgICAgRk9VUjogJ3RpZGUtZW5kLTQnLFxuICAgICAgRklWRTogJ3RpZGUtZW5kLTUnLFxuICAgICAgU0lYOiAndGlkZS1lbmQtNicsXG4gICAgICBTRVZFTjogJ3RpZGUtZW5kLTcnLFxuICAgICAgRUlHSFQ6ICd0aWRlLWVuZC04JyxcbiAgICAgIE5JTkU6ICd0aWRlLWVuZC05JyxcbiAgICAgIFRFTjogJ3RpZGUtZW5kLTEwJyxcbiAgICAgIEVMRVZFTjogJ3RpZGUtZW5kLTExJyxcbiAgICAgIFRXRUxWRTogJ3RpZGUtZW5kLTEyJyxcbiAgICAgIFRISVJURUVOOiAndGlkZS1lbmQtMTMnLFxuICAgIH0sXG4gICAgRkxVSUQ6ICd0aWRlLWZsdWlkJyxcbiAgICBMQVlPVVQ6ICd0aWRlLWdyaWQtbGF5b3V0JyxcbiAgICBTVEFSVDoge1xuICAgICAgWkVSTzogJ3RpZGUtc3RhcnQtMCcsXG4gICAgICBPTkU6ICd0aWRlLXN0YXJ0LTEnLFxuICAgICAgVFdPOiAndGlkZS1zdGFydC0yJyxcbiAgICAgIFRIUkVFOiAndGlkZS1zdGFydC0zJyxcbiAgICAgIEZPVVI6ICd0aWRlLXN0YXJ0LTQnLFxuICAgICAgRklWRTogJ3RpZGUtc3RhcnQtNScsXG4gICAgICBTSVg6ICd0aWRlLXN0YXJ0LTYnLFxuICAgICAgU0VWRU46ICd0aWRlLXN0YXJ0LTcnLFxuICAgICAgRUlHSFQ6ICd0aWRlLXN0YXJ0LTgnLFxuICAgICAgTklORTogJ3RpZGUtc3RhcnQtOScsXG4gICAgICBURU46ICd0aWRlLXN0YXJ0LTEwJyxcbiAgICAgIEVMRVZFTjogJ3RpZGUtc3RhcnQtMTEnLFxuICAgICAgVFdFTFZFOiAndGlkZS1zdGFydC0xMicsXG4gICAgfSxcbiAgICBYTDogJ3RpZGUtZ3JpZC14bCcsXG4gIH0sXG4gIEhFSUdIVDoge1xuICAgIFpFUk86ICd0aWRlLXdpZHRoLTAnLFxuICAgIEZVTEw6ICd0aWRlLWhlaWdodC1mdWxsJyxcbiAgfSxcbiAgSVNPTEFUSU9OOiB7XG4gICAgSVNPTEFURTogJ3RpZGUtaXNvbGF0ZScsXG4gIH0sXG4gIExJU1RfQlVMTEVUUzoge1xuICAgIE9GRjogJ3RpZGUtbGlzdC1ub25lJyxcbiAgfSxcbiAgTUFSR0lOOiB7XG4gICAgQk9UVE9NOiB7XG4gICAgICBRVUFSVEVSOiAndGlkZS1tYXJnaW4tYm90dG9tLTEvNCcsXG4gICAgICBIQUxGOiAndGlkZS1tYXJnaW4tYm90dG9tLTEvMicsXG4gICAgICBPTkU6ICd0aWRlLW1hcmdpbi1ib3R0b20tMScsXG4gICAgICBUV086ICd0aWRlLW1hcmdpbi1ib3R0b20tMicsXG4gICAgICBGT1VSOiAndGlkZS1tYXJnaW4tYm90dG9tLTQnLFxuICAgIH0sXG4gICAgRlVMTDoge1xuICAgICAgUVVBUlRFUjogJ3RpZGUtbWFyZ2luLTEvNCcsXG4gICAgICBIQUxGOiAndGlkZS1tYXJnaW4tMS8yJyxcbiAgICAgIE9ORTogJ3RpZGUtbWFyZ2luLTEnLFxuICAgICAgVFdPOiAndGlkZS1tYXJnaW4tMicsXG4gICAgICBGT1VSOiAndGlkZS1tYXJnaW4tNCcsXG4gICAgfSxcbiAgICBMRUZUOiB7XG4gICAgICBBVVRPOiAndGlkZS1tYXJnaW4tbGVmdC1hdXRvJyxcbiAgICAgIFFVQVJURVI6ICd0aWRlLW1hcmdpbi1sZWZ0LTEvNCcsXG4gICAgICBIQUxGOiAndGlkZS1tYXJnaW4tbGVmdC0xLzInLFxuICAgICAgT05FOiAndGlkZS1tYXJnaW4tbGVmdC0xJyxcbiAgICAgIFRXTzogJ3RpZGUtbWFyZ2luLWxlZnQtMicsXG4gICAgICBGT1VSOiAndGlkZS1tYXJnaW4tbGVmdC00JyxcbiAgICB9LFxuICAgIFJJR0hUOiB7XG4gICAgICBBVVRPOiAndGlkZS1tYXJnaW4tcmlnaHQtYXV0bycsXG4gICAgICBRVUFSVEVSOiAndGlkZS1tYXJnaW4tcmlnaHQtMS80JyxcbiAgICAgIEhBTEY6ICd0aWRlLW1hcmdpbi1yaWdodC0xLzInLFxuICAgICAgT05FOiAndGlkZS1tYXJnaW4tcmlnaHQtMScsXG4gICAgICBUV086ICd0aWRlLW1hcmdpbi1yaWdodC0yJyxcbiAgICAgIEZPVVI6ICd0aWRlLW1hcmdpbi1yaWdodC00JyxcbiAgICB9LFxuICAgIFRPUDoge1xuICAgICAgUVVBUlRFUjogJ3RpZGUtbWFyZ2luLXRvcC0xLzQnLFxuICAgICAgSEFMRjogJ3RpZGUtbWFyZ2luLXRvcC0xLzInLFxuICAgICAgT05FOiAndGlkZS1tYXJnaW4tdG9wLTEnLFxuICAgICAgVFdPOiAndGlkZS1tYXJnaW4tdG9wLTInLFxuICAgICAgRk9VUjogJ3RpZGUtbWFyZ2luLXRvcC00JyxcbiAgICB9LFxuICAgIFg6IHtcbiAgICAgIEFVVE86ICd0aWRlLW1hcmdpbi14LWF1dG8nLFxuICAgICAgUVVBUlRFUjogJ3RpZGUtbWFyZ2luLXgtMS80JyxcbiAgICAgIEhBTEY6ICd0aWRlLW1hcmdpbi14LTEvMicsXG4gICAgICBPTkU6ICd0aWRlLW1hcmdpbi14LTEnLFxuICAgICAgVFdPOiAndGlkZS1tYXJnaW4teC0yJyxcbiAgICAgIEZPVVI6ICd0aWRlLW1hcmdpbi14LTQnLFxuICAgIH0sXG4gICAgWToge1xuICAgICAgUVVBUlRFUjogJ3RpZGUtbWFyZ2luLXktMS80JyxcbiAgICAgIEhBTEY6ICd0aWRlLW1hcmdpbi15LTEvMicsXG4gICAgICBPTkU6ICd0aWRlLW1hcmdpbi15LTEnLFxuICAgICAgVFdPOiAndGlkZS1tYXJnaW4teS0yJyxcbiAgICAgIEZPVVI6ICd0aWRlLW1hcmdpbi15LTQnLFxuICAgIH0sXG4gIH0sXG4gIE9CSkVDVDoge1xuICAgIENFTlRFUjogJ3RpZGUtb2JqZWN0LWNlbnRlcicsXG4gICAgQ09OVEFJTjogJ3RpZGUtb2JqZWN0LWNvbnRhaW4nLFxuICAgIENPVkVSOiAndGlkZS1vYmplY3QtY292ZXInLFxuICAgIFNDQUxFX0RPV046ICd0aWRlLW9iamVjdC1zY2FsZS1kb3duJyxcbiAgfSxcbiAgT1BBQ0lUWToge1xuICAgIE9GRjogJ3RpZGUtb3BhY2l0eS1ub25lJyxcbiAgICBPTjogJ3RpZGUtb3BhY2l0eScsXG4gIH0sXG4gIE9WRVJGTE9XOiB7XG4gICAgWDoge1xuICAgICAgQVVUTzogJ3RpZGUteC1hdXRvJyxcbiAgICAgIEhJRERFTjogJ3RpZGUteC1oaWRkZW4nLFxuICAgICAgU0NST0xMOiAndGlkZS14LXNjcm9sbCcsXG4gICAgfSxcbiAgICBYWToge1xuICAgICAgQVVUTzogJ3RpZGUteHktYXV0bycsXG4gICAgICBISURERU46ICd0aWRlLXh5LWhpZGRlbicsXG4gICAgfSxcbiAgICBZOiB7XG4gICAgICBBVVRPOiAndGlkZS15LWF1dG8nLFxuICAgICAgSElEREVOOiAndGlkZS15LWhpZGRlbicsXG4gICAgfSxcbiAgfSxcbiAgUEFERElORzoge1xuICAgIEJPVFRPTToge1xuICAgICAgUVVBUlRFUjogJ3RpZGUtcGFkZGluZy1ib3R0b20tMS80JyxcbiAgICAgIEhBTEY6ICd0aWRlLXBhZGRpbmctYm90dG9tLTEvMicsXG4gICAgICBPTkU6ICd0aWRlLXBhZGRpbmctYm90dG9tLTEnLFxuICAgICAgVFdPOiAndGlkZS1wYWRkaW5nLWJvdHRvbS0yJyxcbiAgICAgIEZPVVI6ICd0aWRlLXBhZGRpbmctYm90dG9tLTQnLFxuICAgIH0sXG4gICAgRlVMTDoge1xuICAgICAgUVVBUlRFUjogJ3RpZGUtcGFkZGluZy0xLzQnLFxuICAgICAgSEFMRjogJ3RpZGUtcGFkZGluZy0xLzInLFxuICAgICAgT05FOiAndGlkZS1wYWRkaW5nLTEnLFxuICAgICAgVFdPOiAndGlkZS1wYWRkaW5nLTInLFxuICAgICAgRk9VUjogJ3RpZGUtcGFkZGluZy00JyxcbiAgICB9LFxuICAgIExFRlQ6IHtcbiAgICAgIFFVQVJURVI6ICd0aWRlLXBhZGRpbmctbGVmdC0xLzQnLFxuICAgICAgSEFMRjogJ3RpZGUtcGFkZGluZy1sZWZ0LTEvMicsXG4gICAgICBPTkU6ICd0aWRlLXBhZGRpbmctbGVmdC0xJyxcbiAgICAgIFRXTzogJ3RpZGUtcGFkZGluZy1sZWZ0LTInLFxuICAgICAgRk9VUjogJ3RpZGUtcGFkZGluZy1sZWZ0LTQnLFxuICAgIH0sXG4gICAgUklHSFQ6IHtcbiAgICAgIFFVQVJURVI6ICd0aWRlLXBhZGRpbmctcmlnaHQtMS80JyxcbiAgICAgIEhBTEY6ICd0aWRlLXBhZGRpbmctcmlnaHQtMS8yJyxcbiAgICAgIE9ORTogJ3RpZGUtcGFkZGluZy1yaWdodC0xJyxcbiAgICAgIFRXTzogJ3RpZGUtcGFkZGluZy1yaWdodC0yJyxcbiAgICAgIEZPVVI6ICd0aWRlLXBhZGRpbmctcmlnaHQtNCcsXG4gICAgfSxcbiAgICBUT1A6IHtcbiAgICAgIFFVQVJURVI6ICd0aWRlLXBhZGRpbmctdG9wLTEvNCcsXG4gICAgICBIQUxGOiAndGlkZS1wYWRkaW5nLXRvcC0xLzInLFxuICAgICAgT05FOiAndGlkZS1wYWRkaW5nLXRvcC0xJyxcbiAgICAgIFRXTzogJ3RpZGUtcGFkZGluZy10b3AtMicsXG4gICAgICBGT1VSOiAndGlkZS1wYWRkaW5nLXRvcC00JyxcbiAgICB9LFxuICAgIFg6IHtcbiAgICAgIFFVQVJURVI6ICd0aWRlLXBhZGRpbmcteC0xLzQnLFxuICAgICAgSEFMRjogJ3RpZGUtcGFkZGluZy14LTEvMicsXG4gICAgICBPTkU6ICd0aWRlLXBhZGRpbmcteC0xJyxcbiAgICAgIFRXTzogJ3RpZGUtcGFkZGluZy14LTInLFxuICAgICAgRk9VUjogJ3RpZGUtcGFkZGluZy14LTQnLFxuICAgIH0sXG4gICAgWToge1xuICAgICAgUVVBUlRFUjogJ3RpZGUtcGFkZGluZy15LTEvNCcsXG4gICAgICBIQUxGOiAndGlkZS1wYWRkaW5nLXktMS8yJyxcbiAgICAgIE9ORTogJ3RpZGUtcGFkZGluZy15LTEnLFxuICAgICAgVFdPOiAndGlkZS1wYWRkaW5nLXktMicsXG4gICAgICBGT1VSOiAndGlkZS1wYWRkaW5nLXktNCcsXG4gICAgfSxcbiAgfSxcbiAgUE9JTlRFUl9FVkVOVFM6IHtcbiAgICBPRkY6ICd0aWRlLXBvaW50ZXItZXZlbnRzLW5vbmUnLFxuICAgIE9OOiAndGlkZS1wb2ludGVyLWV2ZW50cycsXG4gIH0sXG4gIFBPU0lUSU9OOiB7XG4gICAgQUJTT0xVVEU6ICd0aWRlLXBvc2l0aW9uLWFic29sdXRlJyxcbiAgICBGSVhFRDogJ3RpZGUtcG9zaXRpb24tZml4ZWQnLFxuICAgIFJFTEFUSVZFOiAndGlkZS1wb3NpdGlvbi1yZWxhdGl2ZScsXG4gICAgU1RJQ0tZOiAndGlkZS1zdGlja3knLFxuICB9LFxuICBQT1NJVElPTklORzoge1xuICAgIEJPVFRPTTogJ3RpZGUtYm90dG9tLTAnLFxuICAgIExFRlQ6ICd0aWRlLWxlZnQtMCcsXG4gICAgUklHSFQ6ICd0aWRlLXJpZ2h0LTAnLFxuICAgIFRPUDogJ3RpZGUtdG9wLTAnLFxuICB9LFxuICBTQ1JPTExCQVI6IHtcbiAgICBPRkY6ICd0aWRlLXNjcm9sbGJhci1ub25lJyxcbiAgfSxcbiAgU0hBRE9XOiB7XG4gICAgQk9UVE9NOiAndGlkZS1zaGFkb3ctYm90dG9tJyxcbiAgICBUT1A6ICd0aWRlLXNoYWRvdy10b3AnLFxuICB9LFxuICBTTkFQOiB7XG4gICAgT046ICd0aWRlLXNuYXAnLFxuICB9LFxuICBTTkFQX0FMSUdOOiB7XG4gICAgU1RBUlQ6ICd0aWRlLXNuYXAtc3RhcnQnLFxuICB9LFxuICBURVhUX1RSQU5TRk9STToge1xuICAgIExPV0VSOiAndGlkZS10ZXh0LXRyYW5zZm9ybS1sb3dlcicsXG4gICAgTk9ORTogJ3RpZGUtdGV4dC10cmFuc2Zvcm0tbm9uZScsXG4gICAgVVBQRVI6ICd0aWRlLXRleHQtdHJhbnNmb3JtLXVwcGVyJyxcbiAgfSxcbiAgVU5ERVJMSU5FOiB7XG4gICAgSE9WRVI6ICd0aWRlLXVuZGVybGluZS1ob3ZlcicsXG4gICAgT0ZGOiAndGlkZS11bmRlcmxpbmUtbm9uZScsXG4gICAgT046ICd0aWRlLXVuZGVybGluZScsXG4gIH0sXG4gIFZJU0lCSUxJVFk6IHtcbiAgICBPRkY6ICd0aWRlLXZpc2libGUtbm9uZScsXG4gICAgT046ICd0aWRlLXZpc2libGUnLFxuICB9LFxuICBXSElURVNQQUNFX1dSQVA6IHtcbiAgICBPRkY6ICd0aWRlLXdoaXRlc3BhY2Utbm93cmFwJyxcbiAgfSxcbiAgV0lEVEg6IHtcbiAgICBaRVJPOiAndGlkZS13aWR0aC0wJyxcbiAgICBGVUxMOiAndGlkZS13aWR0aC1mdWxsJyxcbiAgICBNQVhfRlVMTDogJ3RpZGUtbWF4LXdpZHRoLWZ1bGwnLFxuICB9LFxuICBaX0lOREVYOiB7XG4gICAgT05FOiAndGlkZS16LWluZGV4LTEnLFxuICB9LFxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgQ3NzVXRpbGl0eSA9ICh0eXBlb2YgQ1NTKVtrZXlvZiB0eXBlb2YgQ1NTXTtcblxuZXhwb3J0IGNvbnN0IGNzc1NvcnRPcmRlciA9IFtcbiAgQ1NTLkRJU1BMQVkuQkxPQ0ssXG4gIENTUy5ESVNQTEFZLkNPTlRFTlRTLFxuICBDU1MuRElTUExBWS5GTEVYLFxuICBDU1MuRElTUExBWS5HUklELFxuICBDU1MuRElTUExBWS5OT05FLFxuICBDU1MuRElTUExBWS5JTklUSUFMLFxuICBDU1MuRElTUExBWS5JTkxJTkUsXG4gIENTUy5ESVNQTEFZLklOTElORV9CTE9DSyxcbiAgQ1NTLkRJU1BMQVkuSU5MSU5FX0ZMRVgsXG4gIENTUy5BWElTMS5BUk9VTkQsXG4gIENTUy5BWElTMS5CRVRXRUVOLFxuICBDU1MuQVhJUzEuQ0VOVEVSLFxuICBDU1MuQVhJUzEuRU5ELFxuICBDU1MuQVhJUzEuU1RBUlQsXG4gIENTUy5BWElTMi5BUk9VTkQsXG4gIENTUy5BWElTMi5DRU5URVIsXG4gIENTUy5BWElTMi5FTkQsXG4gIENTUy5BWElTMi5TVEFSVCxcbiAgQ1NTLkZMRVguRElSRUNUSU9OLkNPTFVNTixcbiAgQ1NTLkZMRVguRElSRUNUSU9OLkNPTFVNTl9SRVZFUlNFLFxuICBDU1MuRkxFWC5ESVJFQ1RJT04uUk9XLFxuICBDU1MuRkxFWC5ESVJFQ1RJT04uUk9XX1JFVkVSU0UsXG4gIENTUy5HQVAuT05FLFxuICBDU1MuR0FQLkhBTEYsXG4gIENTUy5HQVAuUVVBUlRFUixcbiAgQ1NTLkdBUC5UV08sXG4gIENTUy5HQVAuRk9VUixcbiAgQ1NTLkZMRVguQkFTSVMuWkVSTyxcbiAgQ1NTLkZMRVguR1JPVy5PTixcbiAgQ1NTLkZMRVguR1JPVy5PRkYsXG4gIENTUy5GTEVYLlNIUklOSy5PTixcbiAgQ1NTLkZMRVguU0hSSU5LLk9GRixcbiAgQ1NTLkZMRVguV1JBUCxcbiAgQ1NTLlBPU0lUSU9OLkFCU09MVVRFLFxuICBDU1MuUE9TSVRJT04uRklYRUQsXG4gIENTUy5QT1NJVElPTi5SRUxBVElWRSxcbiAgQ1NTLlBPU0lUSU9OLlNUSUNLWSxcbiAgQ1NTLlBPU0lUSU9OSU5HLlRPUCxcbiAgQ1NTLlBPU0lUSU9OSU5HLlJJR0hULFxuICBDU1MuUE9TSVRJT05JTkcuQk9UVE9NLFxuICBDU1MuUE9TSVRJT05JTkcuTEVGVCxcbiAgQ1NTLkJPWF9TSVpJTkcuQk9SREVSX0JPWCxcbiAgQ1NTLkJPWF9TSVpJTkcuQ09OVEVOVF9CT1gsXG4gIENTUy5NQVJHSU4uRlVMTC5PTkUsXG4gIENTUy5NQVJHSU4uRlVMTC5IQUxGLFxuICBDU1MuTUFSR0lOLkZVTEwuUVVBUlRFUixcbiAgQ1NTLk1BUkdJTi5GVUxMLlRXTyxcbiAgQ1NTLk1BUkdJTi5GVUxMLkZPVVIsXG4gIENTUy5NQVJHSU4uWS5PTkUsXG4gIENTUy5NQVJHSU4uWS5IQUxGLFxuICBDU1MuTUFSR0lOLlkuUVVBUlRFUixcbiAgQ1NTLk1BUkdJTi5ZLlRXTyxcbiAgQ1NTLk1BUkdJTi5ZLkZPVVIsXG4gIENTUy5NQVJHSU4uVE9QLk9ORSxcbiAgQ1NTLk1BUkdJTi5UT1AuSEFMRixcbiAgQ1NTLk1BUkdJTi5UT1AuUVVBUlRFUixcbiAgQ1NTLk1BUkdJTi5UT1AuVFdPLFxuICBDU1MuTUFSR0lOLlRPUC5GT1VSLFxuICBDU1MuTUFSR0lOLlguT05FLFxuICBDU1MuTUFSR0lOLlguSEFMRixcbiAgQ1NTLk1BUkdJTi5YLlFVQVJURVIsXG4gIENTUy5NQVJHSU4uWC5UV08sXG4gIENTUy5NQVJHSU4uWC5GT1VSLFxuICBDU1MuTUFSR0lOLlguQVVUTyxcbiAgQ1NTLk1BUkdJTi5SSUdIVC5PTkUsXG4gIENTUy5NQVJHSU4uUklHSFQuSEFMRixcbiAgQ1NTLk1BUkdJTi5SSUdIVC5RVUFSVEVSLFxuICBDU1MuTUFSR0lOLlJJR0hULlRXTyxcbiAgQ1NTLk1BUkdJTi5SSUdIVC5GT1VSLFxuICBDU1MuTUFSR0lOLlJJR0hULkFVVE8sXG4gIENTUy5NQVJHSU4uQk9UVE9NLk9ORSxcbiAgQ1NTLk1BUkdJTi5CT1RUT00uSEFMRixcbiAgQ1NTLk1BUkdJTi5CT1RUT00uUVVBUlRFUixcbiAgQ1NTLk1BUkdJTi5CT1RUT00uVFdPLFxuICBDU1MuTUFSR0lOLkJPVFRPTS5GT1VSLFxuICBDU1MuTUFSR0lOLkxFRlQuT05FLFxuICBDU1MuTUFSR0lOLkxFRlQuSEFMRixcbiAgQ1NTLk1BUkdJTi5MRUZULlFVQVJURVIsXG4gIENTUy5NQVJHSU4uTEVGVC5UV08sXG4gIENTUy5NQVJHSU4uTEVGVC5GT1VSLFxuICBDU1MuTUFSR0lOLkxFRlQuQVVUTyxcbiAgQ1NTLkJPUkRFUi5GVUxMLk9ORSxcbiAgQ1NTLkJPUkRFUi5GVUxMLlRXTyxcbiAgQ1NTLkJPUkRFUi5UT1AuT05FLFxuICBDU1MuQk9SREVSLlRPUC5UV08sXG4gIENTUy5CT1JERVIuUklHSFQuT05FLFxuICBDU1MuQk9SREVSLlJJR0hULlRXTyxcbiAgQ1NTLkJPUkRFUi5CT1RUT00uT05FLFxuICBDU1MuQk9SREVSLkJPVFRPTS5UV08sXG4gIENTUy5CT1JERVIuTEVGVC5PTkUsXG4gIENTUy5CT1JERVIuTEVGVC5UV08sXG4gIENTUy5CT1JERVIuUkFESVVTLk9ORSxcbiAgQ1NTLkJPUkRFUi5SQURJVVMuSEFMRixcbiAgQ1NTLkJPUkRFUi5SQURJVVMuUVVBUlRFUixcbiAgQ1NTLkJPUkRFUi5SQURJVVMuRlVMTCxcbiAgQ1NTLlBBRERJTkcuRlVMTC5PTkUsXG4gIENTUy5QQURESU5HLkZVTEwuSEFMRixcbiAgQ1NTLlBBRERJTkcuRlVMTC5RVUFSVEVSLFxuICBDU1MuUEFERElORy5GVUxMLlRXTyxcbiAgQ1NTLlBBRERJTkcuRlVMTC5GT1VSLFxuICBDU1MuUEFERElORy5ZLk9ORSxcbiAgQ1NTLlBBRERJTkcuWS5IQUxGLFxuICBDU1MuUEFERElORy5ZLlFVQVJURVIsXG4gIENTUy5QQURESU5HLlkuVFdPLFxuICBDU1MuUEFERElORy5ZLkZPVVIsXG4gIENTUy5QQURESU5HLlRPUC5PTkUsXG4gIENTUy5QQURESU5HLlRPUC5IQUxGLFxuICBDU1MuUEFERElORy5UT1AuUVVBUlRFUixcbiAgQ1NTLlBBRERJTkcuVE9QLlRXTyxcbiAgQ1NTLlBBRERJTkcuVE9QLkZPVVIsXG4gIENTUy5QQURESU5HLlguT05FLFxuICBDU1MuUEFERElORy5YLkhBTEYsXG4gIENTUy5QQURESU5HLlguUVVBUlRFUixcbiAgQ1NTLlBBRERJTkcuWC5UV08sXG4gIENTUy5QQURESU5HLlguRk9VUixcbiAgQ1NTLlBBRERJTkcuUklHSFQuT05FLFxuICBDU1MuUEFERElORy5SSUdIVC5IQUxGLFxuICBDU1MuUEFERElORy5SSUdIVC5RVUFSVEVSLFxuICBDU1MuUEFERElORy5SSUdIVC5UV08sXG4gIENTUy5QQURESU5HLlJJR0hULkZPVVIsXG4gIENTUy5QQURESU5HLkJPVFRPTS5PTkUsXG4gIENTUy5QQURESU5HLkJPVFRPTS5IQUxGLFxuICBDU1MuUEFERElORy5CT1RUT00uUVVBUlRFUixcbiAgQ1NTLlBBRERJTkcuQk9UVE9NLlRXTyxcbiAgQ1NTLlBBRERJTkcuQk9UVE9NLkZPVVIsXG4gIENTUy5QQURESU5HLkxFRlQuT05FLFxuICBDU1MuUEFERElORy5MRUZULkhBTEYsXG4gIENTUy5QQURESU5HLkxFRlQuUVVBUlRFUixcbiAgQ1NTLlBBRERJTkcuTEVGVC5UV08sXG4gIENTUy5QQURESU5HLkxFRlQuRk9VUixcbiAgQ1NTLldJRFRILk1BWF9GVUxMLFxuICBDU1MuV0lEVEguWkVSTyxcbiAgQ1NTLldJRFRILkZVTEwsXG4gIENTUy5IRUlHSFQuWkVSTyxcbiAgQ1NTLkhFSUdIVC5GVUxMLFxuICBDU1MuQUxJR04uWS5NSURETEUsXG4gIENTUy5CUkVBS19XT1JELFxuICBDU1MuQ1VSU09SLk5PVF9BTExPV0VELFxuICBDU1MuQ1VSU09SLlBPSU5URVIsXG4gIENTUy5DVVJTT1IuVEVYVCxcbiAgQ1NTLkZPTlQuU0laRS5UV0VMVkUsXG4gIENTUy5GT05ULlNJWkUuRk9VUlRFRU4sXG4gIENTUy5GT05ULlNJWkUuU0lYVEVFTixcbiAgQ1NTLkZPTlQuU0laRS5UV0VOVFksXG4gIENTUy5GT05ULlNJWkUuVFdFTlRZX0ZPVVIsXG4gIENTUy5GT05ULlNJWkUuVEhJUlRZX1RXTyxcbiAgQ1NTLkZPTlQuV0VJR0hULkZPVVJfSFVORFJFRCxcbiAgQ1NTLkZPTlQuV0VJR0hULkZJVkVfSFVORFJFRCxcbiAgQ1NTLkZPTlQuV0VJR0hULlNJWF9IVU5EUkVELFxuICBDU1MuRk9OVC5XRUlHSFQuU0VWRU5fSFVORFJFRCxcbiAgQ1NTLkxJU1RfQlVMTEVUUy5PRkYsXG4gIENTUy5PQkpFQ1QuQ0VOVEVSLFxuICBDU1MuT0JKRUNULkNPTlRBSU4sXG4gIENTUy5PQkpFQ1QuQ09WRVIsXG4gIENTUy5PQkpFQ1QuU0NBTEVfRE9XTixcbiAgQ1NTLlBPSU5URVJfRVZFTlRTLk9OLFxuICBDU1MuUE9JTlRFUl9FVkVOVFMuT0ZGLFxuICBDU1MuU0NST0xMQkFSLk9GRixcbiAgQ1NTLlNIQURPVy5CT1RUT00sXG4gIENTUy5TSEFET1cuVE9QLFxuICBDU1MuU05BUC5PTixcbiAgQ1NTLlNOQVBfQUxJR04uU1RBUlQsXG4gIENTUy5BTElHTi5YLkxFRlQsXG4gIENTUy5BTElHTi5YLkNFTlRFUixcbiAgQ1NTLkFMSUdOLlguUklHSFQsXG4gIENTUy5URVhUX1RSQU5TRk9STS5MT1dFUixcbiAgQ1NTLlRFWFRfVFJBTlNGT1JNLk5PTkUsXG4gIENTUy5URVhUX1RSQU5TRk9STS5VUFBFUixcbiAgQ1NTLlVOREVSTElORS5IT1ZFUixcbiAgQ1NTLlVOREVSTElORS5PRkYsXG4gIENTUy5VTkRFUkxJTkUuT04sXG4gIENTUy5WSVNJQklMSVRZLk9OLFxuICBDU1MuVklTSUJJTElUWS5PRkYsXG4gIENTUy5XSElURVNQQUNFX1dSQVAuT0ZGLFxuICBDU1MuT1ZFUkZMT1cuWFkuQVVUTyxcbiAgQ1NTLk9WRVJGTE9XLlhZLkhJRERFTixcbiAgQ1NTLk9WRVJGTE9XLlguQVVUTyxcbiAgQ1NTLk9WRVJGTE9XLlguSElEREVOLFxuICBDU1MuT1ZFUkZMT1cuWC5TQ1JPTEwsXG4gIENTUy5PVkVSRkxPVy5ZLkFVVE8sXG4gIENTUy5PVkVSRkxPVy5ZLkhJRERFTixcbiAgQ1NTLlpfSU5ERVguT05FLFxuXSBhcyBjb25zdDtcbiIsImV4cG9ydCBjb25zdCBPUklFTlRBVElPTiA9IHtcbiAgSE9SSVpPTlRBTDogJ2hvcml6b250YWwnLFxuICBWRVJUSUNBTDogJ3ZlcnRpY2FsJyxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIE9yaWVudGF0aW9uID0gKHR5cGVvZiBPUklFTlRBVElPTilba2V5b2YgdHlwZW9mIE9SSUVOVEFUSU9OXTtcbiIsImV4cG9ydCBjb25zdCBTSVpFID0ge1xuICBMQVJHRTogJ2xhcmdlJyxcbiAgU01BTEw6ICdzbWFsbCcsXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgdHlwZSBTaXplID0gKHR5cGVvZiBTSVpFKVtrZXlvZiB0eXBlb2YgU0laRV07XG4iLCJjb25zdCBjYXBpdGFsaXplRmlyc3QgPSAoc3RyaW5nOiBzdHJpbmcpID0+IHtcbiAgcmV0dXJuIHN0cmluZy5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHN0cmluZy5zbGljZSgxKTtcbn07XG5cbmNvbnN0IGZvcm1hdENhbWVsQ2FzZSA9IChpbnB1dDogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgcmV0dXJuIGlucHV0ICYmIHR5cGVvZiBpbnB1dCA9PT0gJ3N0cmluZydcbiAgICA/IGlucHV0XG4gICAgICAgIC5yZXBsYWNlKC9eW1xcc18tXS8sICcnKVxuICAgICAgICAucmVwbGFjZSgvKFthLXpdezF9KShbQS1aXXsxfSkvZywgJyQxICQyJylcbiAgICAgICAgLnJlcGxhY2UoL1tcXHNfLV0vZywgJyAnKVxuICAgICAgICAudG9Mb3dlckNhc2UoKVxuICAgICAgICAuc3BsaXQoJyAnKVxuICAgICAgICAubWFwKCh3b3JkLCBpbmRleCkgPT4gKGluZGV4ID09PSAwID8gd29yZCA6IHdvcmQuc2xpY2UoMCwgMSkudG9VcHBlckNhc2UoKSArIHdvcmQuc2xpY2UoMSkpKVxuICAgICAgICAuam9pbignJylcbiAgICA6IGlucHV0O1xufTtcblxuY29uc3QgZm9ybWF0S2ViYWJDYXNlID0gKGlucHV0OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICByZXR1cm4gaW5wdXQgJiYgdHlwZW9mIGlucHV0ID09PSAnc3RyaW5nJ1xuICAgID8gaW5wdXRcbiAgICAgICAgLnJlcGxhY2UoLyhbYS16XXsxfSkoW0EtWl17MX0pL2csICckMSAkMicpXG4gICAgICAgIC50b0xvd2VyQ2FzZSgpXG4gICAgICAgIC5yZXBsYWNlKC9bXFxzXy1dL2csICctJylcbiAgICA6IGlucHV0O1xufTtcblxuY29uc3QgZm9ybWF0TGFiZWwgPSAodmFsdWU6IHN0cmluZykgPT4ge1xuICBjb25zdCBsYWJlbE1hcDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtcbiAgICBmYWxzZTogJ05vJyxcbiAgICB0cnVlOiAnWWVzJyxcbiAgfTtcbiAgcmV0dXJuIE9iamVjdC5oYXNPd24obGFiZWxNYXAsIHZhbHVlKSA/IGxhYmVsTWFwW3ZhbHVlXSA6IHZhbHVlO1xufTtcblxuY29uc3QgZm9ybWF0TnVtYmVyID0gKGlucHV0OiBudW1iZXIgfCBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBsZXQgb3V0cHV0ID0gaW5wdXQgJiYgdHlwZW9mIGlucHV0ID09PSAnbnVtYmVyJyA/IG5ldyBJbnRsLk51bWJlckZvcm1hdCgpLmZvcm1hdChpbnB1dCkgOiBTdHJpbmcoaW5wdXQgfHwgJycpO1xuICBsZXQgZGlnaXRzID0gb3V0cHV0O1xuXG4gIGlmIChpbnB1dCAmJiB0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnKSB7XG4gICAgZGlnaXRzID0gZGlnaXRzLnJlcGxhY2UoL1xcRC9nLCAnJyk7XG4gICAgaWYgKE51bWJlcihkaWdpdHMpKSB7XG4gICAgICBvdXRwdXQgPSBuZXcgSW50bC5OdW1iZXJGb3JtYXQoKS5mb3JtYXQoTnVtYmVyKGRpZ2l0cykpO1xuICAgIH0gZWxzZSB7XG4gICAgICBvdXRwdXQgPSAnMCc7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG91dHB1dDtcbn07XG5cbmNvbnN0IGZvcm1hdFBhc2NhbENhc2UgPSAoaW5wdXQ6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIHJldHVybiBpbnB1dCAmJiB0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnXG4gICAgPyBpbnB1dFxuICAgICAgICAucmVwbGFjZSgvKFthLXpdezF9KShbQS1aXXsxfSkvZywgJyQxICQyJylcbiAgICAgICAgLnJlcGxhY2UoL1tcXHNfLV0vZywgJyAnKVxuICAgICAgICAudG9Mb3dlckNhc2UoKVxuICAgICAgICAuc3BsaXQoJyAnKVxuICAgICAgICAubWFwKCh3b3JkKSA9PiB3b3JkLnNsaWNlKDAsIDEpLnRvVXBwZXJDYXNlKCkgKyB3b3JkLnNsaWNlKDEpKVxuICAgICAgICAuam9pbignJylcbiAgICA6IGlucHV0O1xufTtcblxuY29uc3QgZm9ybWF0UGhvbmUgPSAoaW5wdXQ6IG51bWJlciB8IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGxldCBvdXRwdXQgPSBpbnB1dCAmJiB0eXBlb2YgaW5wdXQgPT09ICdudW1iZXInID8gU3RyaW5nKGlucHV0KSA6IFN0cmluZyhpbnB1dCB8fCAnJyk7XG4gIGxldCBkaWdpdHMgPSBvdXRwdXQ7XG4gIGRpZ2l0cyA9IGRpZ2l0cy5yZXBsYWNlKC9cXEQvZywgJycpO1xuXG4gIHN3aXRjaCAoZGlnaXRzLmxlbmd0aCkge1xuICAgIGNhc2UgNzpcbiAgICAgIG91dHB1dCA9IGAke2RpZ2l0cy5zbGljZSgwLCAzKX0tJHtkaWdpdHMuc2xpY2UoMyl9YDtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgMTA6XG4gICAgICBvdXRwdXQgPSBgJHtkaWdpdHMuc2xpY2UoMCwgMyl9LSR7ZGlnaXRzLnNsaWNlKDMsIDYpfS0ke2RpZ2l0cy5zbGljZSg2KX1gO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAxMTpcbiAgICAgIG91dHB1dCA9IGAke2RpZ2l0cy5zbGljZSgwLCAxKX0tJHtkaWdpdHMuc2xpY2UoMSwgNCl9LSR7ZGlnaXRzLnNsaWNlKDQsIDcpfS0ke2RpZ2l0cy5zbGljZSg3KX1gO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIG91dHB1dCA9IGRpZ2l0cztcbiAgICAgIGJyZWFrO1xuICB9XG5cbiAgcmV0dXJuIG91dHB1dDtcbn07XG5cbmNvbnN0IGZvcm1hdFByaWNlID0gKGlucHV0OiBudW1iZXIgfCBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBjb25zdCBvdXRwdXQgPSBpbnB1dCA/IGZvcm1hdE51bWJlcihpbnB1dCkgOiBTdHJpbmcoaW5wdXQgfHwgJzAnKTtcbiAgcmV0dXJuIGAkJHtvdXRwdXR9YDtcbn07XG5cbmNvbnN0IGZvcm1hdFF1b3RlcyA9ICh2YWx1ZTogc3RyaW5nKSA9PiB7XG4gIGlmICh2YWx1ZS5zdGFydHNXaXRoKCdcIicpICYmIHZhbHVlLmVuZHNXaXRoKCdcIicpKSB7XG4gICAgcmV0dXJuIHZhbHVlLnNsaWNlKDEsIC0xKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbn07XG5cbmNvbnN0IGZvcm1hdFNlbnRlbmNlQ2FzZSA9IChpbnB1dDogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgbGV0IHNlbnRlbmNlQ2FzZSA9IGlucHV0O1xuXG4gIGlmIChpbnB1dCAmJiB0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnKSB7XG4gICAgY29uc3QgbG93ZXJDYXNlID0gaW5wdXRcbiAgICAgIC5yZXBsYWNlKC8oW2Etel17MX0pKFtBLVpdezF9KS9nLCAnJDEgJDInKVxuICAgICAgLnRvTG93ZXJDYXNlKClcbiAgICAgIC5yZXBsYWNlKC9bXFxzXy1dL2csICcgJyk7XG5cbiAgICBzZW50ZW5jZUNhc2UgPSBsb3dlckNhc2Uuc2xpY2UoMCwgMSkudG9VcHBlckNhc2UoKSArIGxvd2VyQ2FzZS5zbGljZSgxKTtcbiAgfVxuXG4gIHJldHVybiBzZW50ZW5jZUNhc2U7XG59O1xuXG5jb25zdCBmb3JtYXRTbmFrZUNhc2UgPSAoaW5wdXQ6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIHJldHVybiBpbnB1dCAmJiB0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnXG4gICAgPyBpbnB1dFxuICAgICAgICAucmVwbGFjZSgvKFthLXpdezF9KShbQS1aXXsxfSkvZywgJyQxICQyJylcbiAgICAgICAgLnRvTG93ZXJDYXNlKClcbiAgICAgICAgLnJlcGxhY2UoL1tcXHNfLV0vZywgJ18nKVxuICAgIDogaW5wdXQ7XG59O1xuXG5jb25zdCBmb3JtYXRUaXRsZUNhc2UgPSAoaW5wdXQ6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIHJldHVybiBpbnB1dCAmJiB0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnXG4gICAgPyBpbnB1dFxuICAgICAgICAucmVwbGFjZSgvKFthLXpdezF9KShbQS1aXXsxfSkvZywgJyQxICQyJylcbiAgICAgICAgLnRvTG93ZXJDYXNlKClcbiAgICAgICAgLnJlcGxhY2UoL1tcXHNfLV0vZywgJyAnKVxuICAgICAgICAuc3BsaXQoJyAnKVxuICAgICAgICAubWFwKCh3b3JkKSA9PiB3b3JkLnNsaWNlKDAsIDEpLnRvVXBwZXJDYXNlKCkgKyB3b3JkLnNsaWNlKDEpKVxuICAgICAgICAuam9pbignICcpXG4gICAgOiBpbnB1dDtcbn07XG5cbmNvbnN0IGZvcm1hdFVybEZyb21Sb290ID0gKHVybDogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IHVybEZvcm1hdHRlZCA9IHVybC5zcGxpdCgnLmNvbS8nKTtcblxuICByZXR1cm4gdXJsRm9ybWF0dGVkLmxlbmd0aCA+IDEgPyBgLyR7dXJsRm9ybWF0dGVkWzFdfWAgOiB1cmw7XG59O1xuXG5jb25zdCBmb3JtYXRXZWlnaHQgPSAoaW5wdXQ6IG51bWJlciB8IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IG91dHB1dCA9IGlucHV0ID8gZm9ybWF0TnVtYmVyKGlucHV0KSA6IFN0cmluZyhpbnB1dCB8fCAnMCcpO1xuICByZXR1cm4gYCR7b3V0cHV0fSBsYnNgO1xufTtcblxuY29uc3QgZ2V0QXJ0aWNsZSA9IChub3VuOiBzdHJpbmcsIGlzUGx1cmFsID0gZmFsc2UsIGlzRGVmaW5pdGUgPSBmYWxzZSkgPT4ge1xuICBjb25zdCB2b3dlbHMgPSBbJ2EnLCAnZScsICdpJywgJ28nLCAndSddO1xuICBjb25zdCBpc1Zvd2VsTGVhZGluZyA9IHZvd2Vscy5pbmNsdWRlcyhub3VuLmNoYXJBdCgwKSk7XG5cbiAgcmV0dXJuIGlzRGVmaW5pdGUgPyAndGhlJyA6IGlzUGx1cmFsID8gJ3NvbWUnIDogaXNWb3dlbExlYWRpbmcgPyAnYW4nIDogJ2EnO1xufTtcblxuY29uc3QgcHJpY2VUb051bWJlciA9ICh2YWx1ZTogc3RyaW5nKSA9PiB7XG4gIGlmIChOdW1iZXIuaXNOYU4oTnVtYmVyKHZhbHVlKSkpIHtcbiAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoJyQnLCAnJyk7XG4gICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKC8sL2csICcnKTtcbiAgfVxuICByZXR1cm4gcGFyc2VJbnQodmFsdWUsIDEwKTtcbn07XG5cbmNvbnN0IHVuZm9ybWF0UHJpY2UgPSAoaW5wdXQ6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IG91dHB1dCA9IGlucHV0LnJlcGxhY2UoL1xcJC9nLCAnJykucmVwbGFjZSgvLC9nLCAnJyk7XG4gIHJldHVybiBgJHtvdXRwdXR9YDtcbn07XG5cbmV4cG9ydCB7XG4gIGNhcGl0YWxpemVGaXJzdCxcbiAgZm9ybWF0Q2FtZWxDYXNlLFxuICBmb3JtYXRLZWJhYkNhc2UsXG4gIGZvcm1hdExhYmVsLFxuICBmb3JtYXROdW1iZXIsXG4gIGZvcm1hdFBhc2NhbENhc2UsXG4gIGZvcm1hdFBob25lLFxuICBmb3JtYXRQcmljZSxcbiAgZm9ybWF0UXVvdGVzLFxuICBmb3JtYXRTZW50ZW5jZUNhc2UsXG4gIGZvcm1hdFNuYWtlQ2FzZSxcbiAgZm9ybWF0VGl0bGVDYXNlLFxuICBmb3JtYXRVcmxGcm9tUm9vdCxcbiAgZm9ybWF0V2VpZ2h0LFxuICBnZXRBcnRpY2xlLFxuICBwcmljZVRvTnVtYmVyLFxuICB1bmZvcm1hdFByaWNlLFxufTtcbiIsIjxzY3JpcHQgbGFuZz1cInRzXCIgc2V0dXA+XG4gIGltcG9ydCB7IGRlZmluZUFzeW5jQ29tcG9uZW50LCBtYXJrUmF3LCByZWYsIHdhdGNoIH0gZnJvbSAndnVlJztcblxuICBpbXBvcnQgdHlwZSB7IENvbXBvbmVudCB9IGZyb20gJ3Z1ZSc7XG4gIGltcG9ydCB0eXBlIHsgSWNvbiB9IGZyb20gJ0AvdHlwZXMvSWNvbic7XG4gIGltcG9ydCB0eXBlIHsgU2l6ZSB9IGZyb20gJ0AvdHlwZXMvU2l6ZSc7XG5cbiAgaW1wb3J0IHsgQ1NTIH0gZnJvbSAnQC90eXBlcy9TdHlsZXMnO1xuICBpbXBvcnQgeyBTSVpFIH0gZnJvbSAnQC90eXBlcy9TaXplJztcbiAgaW1wb3J0IHsgZm9ybWF0UGFzY2FsQ2FzZSB9IGZyb20gJ0AvdXRpbGl0aWVzL2Zvcm1hdCc7XG5cbiAgdHlwZSBQcm9wcyA9IHtcbiAgICBpY29uOiBJY29uO1xuICAgIHNpemU/OiBTaXplO1xuICB9O1xuXG4gIGNvbnN0IHByb3BzID0gd2l0aERlZmF1bHRzKGRlZmluZVByb3BzPFByb3BzPigpLCB7XG4gICAgc2l6ZTogU0laRS5TTUFMTCxcbiAgfSk7XG5cbiAgY29uc3QgaW5uZXJTVkcgPSByZWY8Q29tcG9uZW50PigpO1xuXG4gIHdhdGNoKFxuICAgICgpID0+IHByb3BzLmljb24sXG4gICAgKCkgPT4ge1xuICAgICAgY29uc3QgaWQgPSBwcm9wcy5pY29uIGFzIHVua25vd24gYXMgc3RyaW5nO1xuICAgICAgY29uc3QgbmFtZSA9IGZvcm1hdFBhc2NhbENhc2UoaWQpO1xuICAgICAgY29uc3QgY29tcG9uZW50ID0gZGVmaW5lQXN5bmNDb21wb25lbnQoKCkgPT4gaW1wb3J0KGAuLi9hc3NldHMvc3ZnL2ljb25zL0ljb24ke25hbWV9LnN2Z2ApKTtcblxuICAgICAgaW5uZXJTVkcudmFsdWUgPSBtYXJrUmF3KGNvbXBvbmVudCk7XG4gICAgfSxcbiAgICB7IGltbWVkaWF0ZTogdHJ1ZSB9XG4gICk7XG48L3NjcmlwdD5cblxuPHRlbXBsYXRlPlxuICA8ZGl2IDpjbGFzcz1cIlsndGlkZS1pY29uJywgcHJvcHMuc2l6ZV1cIj5cbiAgICA8Q29tcG9uZW50XG4gICAgICA6Y2xhc3M9XCJbQ1NTLkRJU1BMQVkuQkxPQ0tdXCJcbiAgICAgIDpkYXRhLWljb249XCJpY29uXCJcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgOmlzPVwiaW5uZXJTVkdcIlxuICAgICAgdi1pZj1cImlubmVyU1ZHXCJcbiAgICAvPlxuICA8L2Rpdj5cbjwvdGVtcGxhdGU+XG5cbjxzdHlsZSBzY29wZWQ+XG4gIC50aWRlLWljb24gc3ZnIHtcbiAgICB3aWR0aDogMS41cmVtO1xuICAgIGhlaWdodDogMS41cmVtO1xuICB9XG5cbiAgLnRpZGUtaWNvbi5zbWFsbCBzdmcge1xuICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgIGhlaWdodDogMS4yNXJlbTtcbiAgfVxuPC9zdHlsZT5cbiIsImV4cG9ydCBjb25zdCBJQ09OID0ge1xuICBBQ0NPVU5UX0JBTEFOQ0U6ICdhY2NvdW50LWJhbGFuY2UnLFxuICBBREQ6ICdhZGQnLFxuICBBSV9ERVNDUklQVElPTjogJ2FpLWRlc2NyaXB0aW9uJyxcbiAgQUxJR05fU1BBQ0U6ICdhbGlnbi1zcGFjZScsXG4gIEFQUExFX1BBWTogJ2FwcGxlLXBheScsXG4gIEFSUk9XX0JBQ0s6ICdhcnJvdy1iYWNrJyxcbiAgQVJST1dfRk9SV0FSRDogJ2Fycm93LWZvcndhcmQnLFxuICBBUlJPV19SSUdIVDogJ2Fycm93LXJpZ2h0JyxcbiAgQVNTSUdOTUVOVDogJ2Fzc2lnbm1lbnQnLFxuICBBV0FSRF9TVEFSOiAnYXdhcmQtc3RhcicsXG4gIEJPT0tNQVJLOiAnYm9va21hcmsnLFxuICBDQUxFTkRBUl9NT05USDogJ2NhbGVuZGFyLW1vbnRoJyxcbiAgQ0FMTDogJ2NhbGwnLFxuICBDSEVDSzogJ2NoZWNrJyxcbiAgQ0hFVlJPTl9MRUZUOiAnY2hldnJvbi1sZWZ0JyxcbiAgQ0hFVlJPTl9SSUdIVDogJ2NoZXZyb24tcmlnaHQnLFxuICBDTEVBUjogJ2NsZWFyJyxcbiAgQ0xPU0U6ICdjbG9zZScsXG4gIENZQ0xFOiAnY3ljbGUnLFxuICBERUxFVEU6ICdkZWxldGUnLFxuICBESUFNT05EOiAnZGlhbW9uZCcsXG4gIERSQUZUOiAnZHJhZnQnLFxuICBFRElUOiAnZWRpdCcsXG4gIEVSUk9SOiAnZXJyb3InLFxuICBFWFBBTkRfQ09OVEVOVDogJ2V4cGFuZC1jb250ZW50JyxcbiAgRVhQQU5EX0xFU1M6ICdleHBhbmQtbGVzcycsXG4gIEVYUEFORF9NT1JFOiAnZXhwYW5kLW1vcmUnLFxuICBGQUNFQk9PSzogJ2ZhY2Vib29rJyxcbiAgRkFWT1JJVEU6ICdmYXZvcml0ZScsXG4gIEZBVk9SSVRFX0ZJTExFRDogJ2Zhdm9yaXRlLWZpbGxlZCcsXG4gIEZPUk1BVF9CT0xEOiAnZm9ybWF0LWJvbGQnLFxuICBGT1JNQVRfSVRBTElDOiAnZm9ybWF0LWl0YWxpYycsXG4gIEZPUk1BVF9MSVNUX0JVTExFVEVEOiAnZm9ybWF0LWxpc3QtYnVsbGV0ZWQnLFxuICBGT1JVTTogJ2ZvcnVtJyxcbiAgR0FWRUw6ICdnYXZlbCcsXG4gIEdPT0dMRTogJ2dvb2dsZScsXG4gIEdPT0dMRV9QQVk6ICdnb29nbGUtcGF5JyxcbiAgR1JJRDogJ2dyaWQnLFxuICBIRUlHSFQ6ICdoZWlnaHQnLFxuICBIRUxQOiAnaGVscCcsXG4gIElORk86ICdpbmZvJyxcbiAgSU5TRVJUX1RFWFQ6ICdpbnNlcnQtdGV4dCcsXG4gIElOU1RBR1JBTTogJ2luc3RhZ3JhbScsXG4gIElPU19TSEFSRTogJ2lvcy1zaGFyZScsXG4gIExBWU9VVDogJ2xheW91dCcsXG4gIExJTktFRF9JTjogJ2xpbmtlZCBpbicsXG4gIExPQ0FMX1NISVBQSU5HOiAnbG9jYWwtc2hpcHBpbmcnLFxuICBMT0NLOiAnbG9jaycsXG4gIE1BSUw6ICdtYWlsJyxcbiAgTUVOVTogJ21lbnUnLFxuICBNT1JFX0hPUklaOiAnbW9yZS1ob3JpeicsXG4gIE5PVElGSUNBVElPTlM6ICdub3RpZmljYXRpb25zJyxcbiAgT1BFTl9JTl9ORVc6ICdvcGVuLWluLW5ldycsXG4gIFBBTEVUVEU6ICdwYWxldHRlJyxcbiAgUEFZUEFMOiAncGF5cGFsJyxcbiAgUEVSU09OOiAncGVyc29uJyxcbiAgUEhPVE9fQ0FNRVJBOiAncGhvdG8tY2FtZXJhJyxcbiAgUElOVEVSRVNUOiAncGludGVyZXN0JyxcbiAgUExBWV9BUlJPVzogJ3BsYXktYXJyb3cnLFxuICBSRU1PVkU6ICdyZW1vdmUnLFxuICBST1VOREVEX0NPUk5FUlM6ICdyb3VuZGVkLWNvcm5lcnMnLFxuICBSVUxFUjogJ3J1bGVyJyxcbiAgU0VBUkNIOiAnc2VhcmNoJyxcbiAgU0VBVElORzogJ3NlYXRpbmcnLFxuICBTRUxMOiAnc2VsbCcsXG4gIFNIQVJFOiAnc2hhcmUnLFxuICBTSE9QUElOR19DQVJUOiAnc2hvcHBpbmctY2FydCcsXG4gIFNNUzogJ3NtcycsXG4gIFNUQVI6ICdzdGFyJyxcbiAgU1dBUF9WRVJUOiAnc3dhcC12ZXJ0JyxcbiAgVEhSRUVfRF9ST1RBVElPTjogJ3RocmVlLWQtcm90YXRpb24nLFxuICBUUk9QSFk6ICd0cm9waHknLFxuICBUVU5FOiAndHVuZScsXG4gIFRXSVRURVI6ICd0d2l0dGVyJyxcbiAgVklERU9DQU06ICd2aWRlb2NhbScsXG4gIFZJRVdfSU5fQVI6ICd2aWV3LWluLWFyJyxcbiAgVklTSUJJTElUWTogJ3Zpc2liaWxpdHknLFxuICBWT0xVTUVfT0ZGOiAndm9sdW1lLW9mZicsXG4gIFZPTFVNRV9PTjogJ3ZvbHVtZS1vbicsXG4gIFdBUk5JTkc6ICd3YXJuaW5nJyxcbiAgV0VJR0hUOiAnd2VpZ2h0JyxcbiAgV0lEVEg6ICd3aWR0aCcsXG4gIFlPVVRVQkU6ICd5b3V0dWJlJyxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIEljb24gPSAodHlwZW9mIElDT04pW2tleW9mIHR5cGVvZiBJQ09OXTtcbiIsIjxzY3JpcHQgbGFuZz1cInRzXCIgc2V0dXA+XG4gIGltcG9ydCB7IG9uTW91bnRlZCwgcmVmIH0gZnJvbSAndnVlJztcblxuICBpbXBvcnQgVGlkZURpdmlkZXIgZnJvbSAnQC9jb21wb25lbnRzL1RpZGVEaXZpZGVyLnZ1ZSc7XG4gIGltcG9ydCBUaWRlSWNvbiBmcm9tICdAL2NvbXBvbmVudHMvVGlkZUljb24udnVlJztcbiAgaW1wb3J0IFRpZGVJbmRpY2F0b3IgZnJvbSAnQC9jb21wb25lbnRzL1RpZGVJbmRpY2F0b3IudnVlJztcbiAgaW1wb3J0IHsgSUNPTiB9IGZyb20gJ0AvdHlwZXMvSWNvbic7XG4gIGltcG9ydCB7IENTUyB9IGZyb20gJ0AvdHlwZXMvU3R5bGVzJztcblxuICBjb25zdCBwcm9wcyA9IGRlZmluZVByb3BzKHtcbiAgICBoYXNCb3R0b21EaXZpZGVyOiB7XG4gICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgfSxcbiAgICBoYXNUb3BEaXZpZGVyOiB7XG4gICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgfSxcbiAgICBpc0FjdGl2ZToge1xuICAgICAgZGVmYXVsdDogZmFsc2UsXG4gICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICB0eXBlOiBCb29sZWFuLFxuICAgIH0sXG4gICAgaXNFeHBhbmRlZEluaXRpYWw6IHtcbiAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgdHlwZTogQm9vbGVhbixcbiAgICB9LFxuICAgIGlzT3B0aW9uYWw6IHtcbiAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgdHlwZTogQm9vbGVhbixcbiAgICB9LFxuICAgIGxhYmVsOiB7XG4gICAgICBkZWZhdWx0OiAnJyxcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgdHlwZTogU3RyaW5nLFxuICAgIH0sXG4gIH0pO1xuXG4gIGNvbnN0IGlzRXhwYW5kZWQgPSByZWYocHJvcHMuaXNFeHBhbmRlZEluaXRpYWwpO1xuXG4gIGxldCBhY2NvcmRpb25Cb2R5ID0gcmVmKCk7XG5cbiAgY29uc3QgdG9nZ2xlSXNFeHBhbmRlZCA9ICgpID0+IHtcbiAgICBjb25zdCBlbGVtZW50ID0gYWNjb3JkaW9uQm9keS52YWx1ZSBhcyBIVE1MRWxlbWVudDtcblxuICAgIGlzRXhwYW5kZWQudmFsdWUgPSAhaXNFeHBhbmRlZC52YWx1ZTtcblxuICAgIGVsZW1lbnQuc3R5bGUuZ3JpZFRlbXBsYXRlUm93cyA9IGlzRXhwYW5kZWQudmFsdWUgPyAnMWZyJyA6ICcwZnInO1xuICB9O1xuXG4gIG9uTW91bnRlZCgoKSA9PiB7XG4gICAgY29uc3QgZWxlbWVudCA9IGFjY29yZGlvbkJvZHkudmFsdWUgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICBlbGVtZW50LnN0eWxlLmdyaWRUZW1wbGF0ZVJvd3MgPSBpc0V4cGFuZGVkLnZhbHVlID8gJzFmcicgOiAnMGZyJztcbiAgfSk7XG48L3NjcmlwdD5cblxuPHRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwidGlkZS1hY2NvcmRpb24taXRlbVwiPlxuICAgIDxUaWRlRGl2aWRlciB2LWlmPVwicHJvcHMuaGFzVG9wRGl2aWRlclwiIC8+XG5cbiAgICA8ZGl2XG4gICAgICA6Y2xhc3M9XCJbJ3RpZGUtYWNjb3JkaW9uLWhlYWQnLCBDU1MuRElTUExBWS5GTEVYLCBDU1MuQVhJUzEuQkVUV0VFTiwgQ1NTLlBBRERJTkcuWS5IQUxGLCBDU1MuQ1VSU09SLlBPSU5URVJdXCJcbiAgICAgIEBjbGljaz1cInRvZ2dsZUlzRXhwYW5kZWRcIlxuICAgID5cbiAgICAgIDxkaXYgOmNsYXNzPVwiW0NTUy5ESVNQTEFZLkZMRVgsIENTUy5BWElTMi5DRU5URVIsIENTUy5HQVAuSEFMRiwgQ1NTLkZPTlQuV0VJR0hULlNFVkVOX0hVTkRSRURdXCI+XG4gICAgICAgIDxzcGFuPnt7IHByb3BzLmxhYmVsIH19PC9zcGFuPlxuXG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgOmNsYXNzPVwiW0NTUy5GT05ULkNPTE9SLlNVUkZBQ0UuVkFSSUFOVF1cIlxuICAgICAgICAgIHYtaWY9XCJwcm9wcy5pc09wdGlvbmFsXCJcbiAgICAgICAgPlxuICAgICAgICAgIChvcHRpb25hbClcbiAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgIDxUaWRlSW5kaWNhdG9yIHYtaWY9XCJwcm9wcy5pc0FjdGl2ZVwiIC8+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPFRpZGVJY29uIDppY29uPVwiaXNFeHBhbmRlZCA/IElDT04uRVhQQU5EX0xFU1MgOiBJQ09OLkVYUEFORF9NT1JFXCIgLz5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXZcbiAgICAgIDpjbGFzcz1cIlsndGlkZS1hY2NvcmRpb24tYm9keScsIENTUy5ESVNQTEFZLkdSSURdXCJcbiAgICAgIHJlZj1cImFjY29yZGlvbkJvZHlcIlxuICAgID5cbiAgICAgIDxkaXYgOmNsYXNzPVwiW0NTUy5PVkVSRkxPVy5ZLkhJRERFTl1cIj5cbiAgICAgICAgPGRpdiA6Y2xhc3M9XCJbQ1NTLk1BUkdJTi5ZLk9ORSwgQ1NTLkZPTlQuV0VJR0hULkZPVVJfSFVORFJFRCwgQ1NTLkZPTlQuQ09MT1IuU1VSRkFDRS5ERUZBVUxUXVwiPlxuICAgICAgICAgIDxzbG90IC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8VGlkZURpdmlkZXIgdi1pZj1cInByb3BzLmhhc0JvdHRvbURpdmlkZXJcIiAvPlxuICA8L2Rpdj5cbjwvdGVtcGxhdGU+XG5cbjxzdHlsZSBzY29wZWQ+XG4gIC50aWRlLWFjY29yZGlvbi1ib2R5IHtcbiAgICB0cmFuc2l0aW9uOiBncmlkLXRlbXBsYXRlLXJvd3MgdmFyKC0tdGlkZS1hbmltYXRlKTtcbiAgfVxuPC9zdHlsZT5cbiIsImV4cG9ydCBjb25zdCBFTEVNRU5UID0ge1xuICBCVVRUT046ICdidXR0b24nLFxuICBMSU5LOiAnYScsXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgY29uc3QgRUxFTUVOVF9URVhUX0FTX0lDT04gPSB7XG4gIEJVVFRPTjogJ2J1dHRvbicsXG4gIERJVjogJ2RpdicsXG4gIExJTks6ICdhJyxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIEVsZW1lbnQgPSAodHlwZW9mIEVMRU1FTlQpW2tleW9mIHR5cGVvZiBFTEVNRU5UXTtcbmV4cG9ydCB0eXBlIEVsZW1lbnRUZXh0QXNJY29uID0gKHR5cGVvZiBFTEVNRU5UX1RFWFRfQVNfSUNPTilba2V5b2YgdHlwZW9mIEVMRU1FTlRfVEVYVF9BU19JQ09OXTtcbiIsIi8qIGVzbGludC1kaXNhYmxlIHZ1ZS9zb3J0LWtleXMgKi9cblxuZXhwb3J0IGNvbnN0IFBSSU9SSVRZID0ge1xuICBQUklNQVJZOiAncHJpbWFyeScsXG4gIFNFQ09OREFSWTogJ3NlY29uZGFyeScsXG4gIFRFUlRJQVJZOiAndGVydGlhcnknLFxuICBRVUFURVJOQVJZOiAncXVhdGVybmFyeScsXG4gIEZMT0FUSU5HOiAnZmxvYXRpbmcnLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgUHJpb3JpdHkgPSAodHlwZW9mIFBSSU9SSVRZKVtrZXlvZiB0eXBlb2YgUFJJT1JJVFldO1xuIiwiZXhwb3J0IGNvbnN0IFRBUkdFVCA9IHtcbiAgQkxBTks6ICdfYmxhbmsnLFxuICBTRUxGOiB1bmRlZmluZWQsXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgdHlwZSBUYXJnZXQgPSAodHlwZW9mIFRBUkdFVClba2V5b2YgdHlwZW9mIFRBUkdFVF07XG4iLCJleHBvcnQgY29uc3QgQUxFUlQgPSB7XG4gIEVSUk9SOiAnZXJyb3InLFxuICBJTkZPOiAnaW5mbycsXG4gIFNVQ0NFU1M6ICdzdWNjZXNzJyxcbiAgV0FSTklORzogJ3dhcm5pbmcnLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgQWxlcnQgPSAodHlwZW9mIEFMRVJUKVtrZXlvZiB0eXBlb2YgQUxFUlRdO1xuIiwiPHNjcmlwdCBsYW5nPVwidHNcIiBzZXR1cD5cbiAgaW1wb3J0IHsgY29tcHV0ZWQgfSBmcm9tICd2dWUnO1xuXG4gIGltcG9ydCB0eXBlIHsgQWxlcnQgfSBmcm9tICdAL3R5cGVzL0FsZXJ0JztcbiAgaW1wb3J0IHR5cGUgeyBJY29uIH0gZnJvbSAnQC90eXBlcy9JY29uJztcblxuICBpbXBvcnQgVGlkZUljb24gZnJvbSAnQC9jb21wb25lbnRzL1RpZGVJY29uLnZ1ZSc7XG4gIGltcG9ydCBUaWRlQnV0dG9uSWNvbiBmcm9tICdAL2NvbXBvbmVudHMvVGlkZUJ1dHRvbkljb24udnVlJztcbiAgaW1wb3J0IHsgQUxFUlQgfSBmcm9tICdAL3R5cGVzL0FsZXJ0JztcbiAgaW1wb3J0IHsgQ1NTIH0gZnJvbSAnQC90eXBlcy9TdHlsZXMnO1xuICBpbXBvcnQgeyBJQ09OIH0gZnJvbSAnQC90eXBlcy9JY29uJztcbiAgaW1wb3J0IHsgUFJJT1JJVFkgfSBmcm9tICdAL3R5cGVzL1ByaW9yaXR5JztcblxuICB0eXBlIFByb3BzID0ge1xuICAgIGhlYWRpbmc/OiBzdHJpbmc7XG4gICAgaXNUb2FzdD86IGJvb2xlYW47XG4gICAgdHlwZT86IEFsZXJ0O1xuICB9O1xuXG4gIGNvbnN0IHByb3BzID0gd2l0aERlZmF1bHRzKGRlZmluZVByb3BzPFByb3BzPigpLCB7XG4gICAgaGVhZGluZzogdW5kZWZpbmVkLFxuICAgIGlzVG9hc3Q6IGZhbHNlLFxuICAgIHR5cGU6IEFMRVJULklORk8sXG4gIH0pO1xuXG4gIGNvbnN0IGljb24gPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgbGV0IGljb246IEljb24gPSBJQ09OLlZJRVdfSU5fQVI7XG5cbiAgICBzd2l0Y2ggKHByb3BzLnR5cGUpIHtcbiAgICAgIGNhc2UgQUxFUlQuRVJST1I6XG4gICAgICAgIGljb24gPSBJQ09OLkVSUk9SO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICBjYXNlIEFMRVJULklORk86XG4gICAgICAgIGljb24gPSBJQ09OLklORk87XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBBTEVSVC5TVUNDRVNTOlxuICAgICAgICBpY29uID0gSUNPTi5DSEVDSztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEFMRVJULldBUk5JTkc6XG4gICAgICAgIGljb24gPSBJQ09OLldBUk5JTkc7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHJldHVybiBpY29uO1xuICB9KTtcbjwvc2NyaXB0PlxuXG48dGVtcGxhdGU+XG4gIDxkaXZcbiAgICA6Y2xhc3M9XCJbXG4gICAgICBwcm9wcy50eXBlLFxuICAgICAgJ3RpZGUtYWxlcnQnLFxuICAgICAgQ1NTLkRJU1BMQVkuR1JJRCxcbiAgICAgIENTUy5CT1JERVIuUkFESVVTLkhBTEYsXG4gICAgICBDU1MuUEFERElORy5GVUxMLk9ORSxcbiAgICAgIHByb3BzLnR5cGUgPT09IEFMRVJULkVSUk9SICYmIENTUy5CRy5TVVJGQUNFLkVSUk9SLFxuICAgICAgcHJvcHMudHlwZSA9PT0gQUxFUlQuSU5GTyAmJiBDU1MuQkcuU1VSRkFDRS5JTkZPLFxuICAgICAgcHJvcHMudHlwZSA9PT0gQUxFUlQuU1VDQ0VTUyAmJiBDU1MuQkcuU1VSRkFDRS5TVUNDRVNTLFxuICAgICAgcHJvcHMudHlwZSA9PT0gQUxFUlQuV0FSTklORyAmJiBDU1MuQkcuU1VSRkFDRS5XQVJOSU5HLFxuICAgICAgcHJvcHMuaXNUb2FzdCA/IENTUy5TSEFET1cuQk9UVE9NIDogJycsXG4gICAgXVwiXG4gID5cbiAgICA8ZGl2IDpjbGFzcz1cIlsndGlkZS1hbGVydC1pY29uJywgQ1NTLkRJU1BMQVkuRkxFWCwgQ1NTLkFYSVMyLkNFTlRFUl1cIj5cbiAgICAgIDxUaWRlSWNvblxuICAgICAgICA6Y2xhc3M9XCJbXG4gICAgICAgICAgcHJvcHMudHlwZSxcbiAgICAgICAgICBDU1MuQk9SREVSLlJBRElVUy5GVUxMLFxuICAgICAgICAgIENTUy5QQURESU5HLkZVTEwuSEFMRixcbiAgICAgICAgICBDU1MuRk9OVC5DT0xPUi5TVVJGQUNFLklOVkVSU0UsXG4gICAgICAgICAgcHJvcHMudHlwZSA9PT0gQUxFUlQuRVJST1IgJiYgQ1NTLkJHLkVSUk9SLFxuICAgICAgICAgIHByb3BzLnR5cGUgPT09IEFMRVJULklORk8gJiYgQ1NTLkJHLklORk8sXG4gICAgICAgICAgcHJvcHMudHlwZSA9PT0gQUxFUlQuU1VDQ0VTUyAmJiBDU1MuQkcuU1VDQ0VTUyxcbiAgICAgICAgICBwcm9wcy50eXBlID09PSBBTEVSVC5XQVJOSU5HICYmIENTUy5CRy5XQVJOSU5HLFxuICAgICAgICBdXCJcbiAgICAgICAgOmljb249XCJpY29uXCJcbiAgICAgIC8+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IDpjbGFzcz1cIlsndGlkZS1hbGVydC1oZWFkaW5nJywgQ1NTLkRJU1BMQVkuRkxFWCwgQ1NTLkFYSVMyLkNFTlRFUl1cIj5cbiAgICAgIDxoMiA6Y2xhc3M9XCJbQ1NTLkZPTlQuU0laRS5TSVhURUVOLCBDU1MuRk9OVC5XRUlHSFQuU0lYX0hVTkRSRUQsIENTUy5GT05ULkNPTE9SLlNVUkZBQ0UuREVGQVVMVF1cIj5cbiAgICAgICAge3sgcHJvcHMuaGVhZGluZyB9fVxuICAgICAgPC9oMj5cbiAgICA8L2Rpdj5cblxuICAgIDxUaWRlQnV0dG9uSWNvblxuICAgICAgOmNsYXNzPVwiWyd0aWRlLWFsZXJ0LWNsb3NlJywgQ1NTLkFYSVMyLkNFTlRFUiwgQ1NTLkZPTlQuQ09MT1IuU1VSRkFDRS5ERUZBVUxUXVwiXG4gICAgICA6aWNvbj1cIklDT04uQ0xPU0VcIlxuICAgICAgOnByaW9yaXR5PVwiUFJJT1JJVFkuUVVBVEVSTkFSWVwiXG4gICAgICBhcmlhLWxhYmVsPVwiQ2xvc2UgYWxlcnRcIlxuICAgIC8+XG5cbiAgICA8ZGl2IDpjbGFzcz1cIlsndGlkZS1hbGVydC1ib2R5JywgQ1NTLkZPTlQuV0VJR0hULkZJVkVfSFVORFJFRCwgQ1NTLkZPTlQuQ09MT1IuU1VSRkFDRS5WQVJJQU5UXVwiPlxuICAgICAgPHNsb3QgLz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L3RlbXBsYXRlPlxuXG48c3R5bGUgc2NvcGVkPlxuICAudGlkZS1hbGVydCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1hcmVhczpcbiAgICAgICdpY29uIGhlYWRpbmcgY2xvc2UnXG4gICAgICAnLiBib2R5IC4nO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byAxZnIgYXV0bztcbiAgICBncmlkLWNvbHVtbi1nYXA6IDAuNXJlbTtcbiAgICBtYXgtd2lkdGg6IDQwcmVtO1xuICB9XG5cbiAgLnRpZGUtYWxlcnQtaWNvbiB7XG4gICAgZ3JpZC1hcmVhOiBpY29uO1xuICB9XG5cbiAgLnRpZGUtYWxlcnQtaGVhZGluZyB7XG4gICAgZ3JpZC1hcmVhOiBoZWFkaW5nO1xuICB9XG5cbiAgLnRpZGUtYWxlcnQtY2xvc2Uge1xuICAgIGdyaWQtYXJlYTogY2xvc2U7XG4gIH1cblxuICAudGlkZS1hbGVydC1ib2R5IHtcbiAgICBncmlkLWFyZWE6IGJvZHk7XG4gIH1cbjwvc3R5bGU+XG4iLCJleHBvcnQgY29uc3QgQkFER0UgPSB7XG4gIEpVU1RfTElTVEVEOiAnSnVzdCBsaXN0ZWQnLFxuICBOQVRJT05XSURFOiAnTmF0aW9ud2lkZScsXG4gIFJFRFVDRUQ6ICdSZWR1Y2VkJyxcbiAgVVBEQVRFRDogJ1VwZGF0ZWQnLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IGNvbnN0IEJBREdFX1BSRU1JVU0gPSB7XG4gIFBSRU1JVU06ICdQcmVtaXVtJyxcbiAgUFJFTUlVTV9TRUxFQ1Q6ICdQcmVtaXVtIFNFTEVDVCcsXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgY29uc3QgQkFER0VfVFJVU1RFRCA9IHtcbiAgWUVBUlNfMTA6ICcxMCcsXG4gIFlFQVJTXzE1OiAnMTUnLFxuICBZRUFSU181OiAnNScsXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgdHlwZSBCYWRnZSA9ICh0eXBlb2YgQkFER0UpW2tleW9mIHR5cGVvZiBCQURHRV07XG5leHBvcnQgdHlwZSBCYWRnZVByZW1pdW0gPSAodHlwZW9mIEJBREdFX1BSRU1JVU0pW2tleW9mIHR5cGVvZiBCQURHRV9QUkVNSVVNXTtcbmV4cG9ydCB0eXBlIEJhZGdlVHJ1c3RlZFllYXJzID0gKHR5cGVvZiBCQURHRV9UUlVTVEVEKVtrZXlvZiB0eXBlb2YgQkFER0VfVFJVU1RFRF07XG4iLCI8c2NyaXB0IGxhbmc9XCJ0c1wiIHNldHVwPlxuICBpbXBvcnQgeyBvbk1vdW50ZWQsIG9uVW5tb3VudGVkLCBvblVwZGF0ZWQsIHJlZiwgd2F0Y2ggfSBmcm9tICd2dWUnO1xuXG4gIGltcG9ydCBUaWRlQnV0dG9uSWNvbiBmcm9tICdAL2NvbXBvbmVudHMvVGlkZUJ1dHRvbkljb24udnVlJztcbiAgaW1wb3J0IHsgQ1NTIH0gZnJvbSAnQC90eXBlcy9TdHlsZXMnO1xuICBpbXBvcnQgeyBJQ09OIH0gZnJvbSAnQC90eXBlcy9JY29uJztcbiAgaW1wb3J0IHsgUFJJT1JJVFkgfSBmcm9tICdAL3R5cGVzL1ByaW9yaXR5JztcblxuICB0eXBlIFByb3BzID0ge1xuICAgIGlzVG91Y2hzY3JlZW4/OiBib29sZWFuO1xuICAgIG9mZnNldFg/OiBudW1iZXI7XG4gIH07XG5cbiAgY29uc3QgcHJvcHMgPSB3aXRoRGVmYXVsdHMoZGVmaW5lUHJvcHM8UHJvcHM+KCksIHtcbiAgICBvZmZzZXRYOiAwLFxuICB9KTtcblxuICBjb25zdCBlbWl0ID0gZGVmaW5lRW1pdHMoWydjaGFuZ2UnXSk7XG5cbiAgbGV0IGNvbnRlbnRXaWR0aCA9IHJlZigpO1xuICBsZXQgZnJhbWVXaWR0aCA9IHJlZigpO1xuICBsZXQgaGFzT3ZlcmZsb3cgPSByZWYoKTtcbiAgbGV0IGxhc3RQb3NpdGlvbiA9IHJlZigpO1xuXG4gIGNvbnN0IGNvbnRlbnRSZWYgPSByZWYoKTtcbiAgY29uc3QgZnJhbWVSZWYgPSByZWYoKTtcbiAgY29uc3Qgc2hvd0J1dHRvbnMgPSByZWYoKTtcbiAgY29uc3QgY3VycmVudFNsaWRlID0gcmVmKDApO1xuXG4gIGNvbnN0IGdhcCA9IDE2O1xuXG4gIC8qKlxuICAgKiBNZWFzdXJlIHRoZSBjdXJyZW50IHNsaWRlIGJhc2VkIG9uIHRoZSBzY3JvbGxcbiAgICogcG9zaXRpb24gb2YgdGhlIGZyYW1lLiBUaGUgY3VycmVudCBzbGlkZSBpc1xuICAgKiB0aGUgc2xpZGUgdGhhdCBpcyBjbG9zZXN0IHRvIHRoZSBsZWZ0IGVkZ2Ugb2ZcbiAgICogdGhlIGZyYW1lLlxuICAgKi9cbiAgY29uc3QgbWVhc3VyZUN1cnJlbnRTbGlkZSA9ICgpID0+IHtcbiAgICAvLyBnZXQgbGVmdCBvZmZzZXRzIG9mIGVhY2ggc2xpZGVcbiAgICBjb25zdCBzbGlkZU9mZnNldHMgPSBBcnJheS5mcm9tKGNvbnRlbnRSZWYudmFsdWUuY2hpbGRyZW4pLm1hcCgoc2xpZGU6IGFueSkgPT4gc2xpZGUub2Zmc2V0TGVmdCk7XG5cbiAgICBpZiAoc2xpZGVPZmZzZXRzLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuXG4gICAgLy8gZ2V0IHZhbHVlIGNsb3Nlc3QgdG8gY3VycmVudCBzY3JvbGwgcG9zaXRpb25cbiAgICBjb25zdCBjbG9zZXN0U2xpZGVPZmZzZXQgPSBzbGlkZU9mZnNldHMucmVkdWNlKChwcmV2LCBjdXJyKSA9PiB7XG4gICAgICByZXR1cm4gTWF0aC5hYnMoY3VyciAtIGZyYW1lUmVmLnZhbHVlLnNjcm9sbExlZnQpIDwgTWF0aC5hYnMocHJldiAtIGZyYW1lUmVmLnZhbHVlLnNjcm9sbExlZnQpID8gY3VyciA6IHByZXY7XG4gICAgfSk7XG5cbiAgICAvLyBzZXQgY3VycmVudCBzbGlkZSB0byBpbmRleCBvZiBjbG9zZXN0IHNsaWRlXG4gICAgY3VycmVudFNsaWRlLnZhbHVlID0gc2xpZGVPZmZzZXRzLmluZGV4T2YoY2xvc2VzdFNsaWRlT2Zmc2V0KTtcbiAgfTtcblxuICBjb25zdCBtZWFzdXJlRG9tID0gKCkgPT4ge1xuICAgIGNvbnRlbnRXaWR0aC52YWx1ZSA9IGNvbnRlbnRSZWYudmFsdWUuc2Nyb2xsV2lkdGg7XG4gICAgZnJhbWVXaWR0aC52YWx1ZSA9IGZyYW1lUmVmLnZhbHVlLmNsaWVudFdpZHRoO1xuICAgIGhhc092ZXJmbG93LnZhbHVlID0gY29udGVudFdpZHRoLnZhbHVlID4gZnJhbWVXaWR0aC52YWx1ZTtcbiAgICBsYXN0UG9zaXRpb24udmFsdWUgPSBmcmFtZVJlZi52YWx1ZS5zY3JvbGxXaWR0aCAtIGZyYW1lUmVmLnZhbHVlLmNsaWVudFdpZHRoO1xuICAgIHNob3dCdXR0b25zLnZhbHVlID0gaGFzT3ZlcmZsb3cudmFsdWUgJiYgIXByb3BzLmlzVG91Y2hzY3JlZW47XG5cbiAgICBtZWFzdXJlQ3VycmVudFNsaWRlKCk7XG4gIH07XG5cbiAgLy8gVE9ETzogZGVib3VuY2UgdGhpc1xuICBjb25zdCBoYW5kbGVTY3JvbGwgPSAoKSA9PiB7XG4gICAgbWVhc3VyZURvbSgpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBTY3JvbGxzIHRvIHRoZSBzbGlkZSBhdCB0aGUgZ2l2ZW4gaW5kZXgsIG9yXG4gICAqIHRvIHRoZSBmaXJzdCBvciBsYXN0IHNsaWRlIGlmIHRoZSBnaXZlbiBpbmRleFxuICAgKiBpcyBvdXQgb2YgYm91bmRzLlxuICAgKiBAcGFyYW0gc2xpZGVJbmRleCBUaGUgaW5kZXggb2YgdGhlIHNsaWRlIHRvIHNjcm9sbCB0b1xuICAgKi9cbiAgY29uc3Qgc2Nyb2xsVG9TbGlkZSA9IChzbGlkZUluZGV4OiBudW1iZXIpID0+IHtcbiAgICBmcmFtZVJlZi52YWx1ZS5zY3JvbGxUbyh7XG4gICAgICBiZWhhdmlvcjogJ3Ntb290aCcsXG4gICAgICBsZWZ0OiBjb250ZW50UmVmLnZhbHVlLmNoaWxkcmVuW3NsaWRlSW5kZXhdLm9mZnNldExlZnQsXG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3Qgc2hvd05leHRTbGlkZSA9ICgpID0+IHtcbiAgICBjb25zdCBjb250ZW50V2lkdGggPSBjb250ZW50UmVmLnZhbHVlLnNjcm9sbFdpZHRoO1xuICAgIGNvbnN0IGNvbnRlbnRSaWdodEVkZ2UgPSBmcmFtZVJlZi52YWx1ZS5zY3JvbGxMZWZ0ICsgZnJhbWVSZWYudmFsdWUuY2xpZW50V2lkdGg7XG5cbiAgICBpZiAoY29udGVudFJpZ2h0RWRnZSA+IGNvbnRlbnRXaWR0aCkge1xuICAgICAgZnJhbWVSZWYudmFsdWUuc2Nyb2xsVG8oe1xuICAgICAgICBiZWhhdmlvcjogJ3Ntb290aCcsXG4gICAgICAgIGxlZnQ6IGNvbnRlbnRXaWR0aCxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBpc0ZpcnN0U2xpZGVXaXRoT2Zmc2V0ID0gcHJvcHMub2Zmc2V0WCAmJiBjdXJyZW50U2xpZGUudmFsdWUgPT09IDA7XG4gICAgICBjb25zdCBpc0xhc3RTbGlkZSA9IGNvbnRlbnRSaWdodEVkZ2UgPT09IGNvbnRlbnRXaWR0aDtcbiAgICAgIGNvbnN0IG5leHRTbGlkZSA9IGlzTGFzdFNsaWRlID8gMCA6IGlzRmlyc3RTbGlkZVdpdGhPZmZzZXQgPyAyIDogY3VycmVudFNsaWRlLnZhbHVlICsgMTtcblxuICAgICAgc2Nyb2xsVG9TbGlkZShuZXh0U2xpZGUpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBzaG93UHJldmlvdXNTbGlkZSA9ICgpID0+IHtcbiAgICBjb25zdCBmaXJzdFNsaWRlID0gcHJvcHMub2Zmc2V0WCA/IDEgOiAwO1xuICAgIGNvbnN0IGlzRmlyc3RTbGlkZSA9IGN1cnJlbnRTbGlkZS52YWx1ZSAtIDEgPT09IGZpcnN0U2xpZGU7XG4gICAgY29uc3QgaXNTZWNvbmRTbGlkZSA9IGN1cnJlbnRTbGlkZS52YWx1ZSA8PSBmaXJzdFNsaWRlO1xuICAgIGNvbnN0IHByZXZpb3VzU2xpZGUgPSBpc1NlY29uZFNsaWRlXG4gICAgICA/IGNvbnRlbnRSZWYudmFsdWUuY2hpbGRyZW4ubGVuZ3RoIC0gMVxuICAgICAgOiBpc0ZpcnN0U2xpZGVcbiAgICAgID8gMFxuICAgICAgOiBjdXJyZW50U2xpZGUudmFsdWUgLSAxO1xuXG4gICAgc2Nyb2xsVG9TbGlkZShwcmV2aW91c1NsaWRlKTtcbiAgfTtcblxuICBvbk1vdW50ZWQoKCkgPT4ge1xuICAgIG1lYXN1cmVEb20oKTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgbWVhc3VyZURvbSk7XG4gIH0pO1xuXG4gIG9uVW5tb3VudGVkKCgpID0+IHtcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgbWVhc3VyZURvbSk7XG4gIH0pO1xuXG4gIG9uVXBkYXRlZCgoKSA9PiB7XG4gICAgbWVhc3VyZURvbSgpO1xuICB9KTtcblxuICB3YXRjaChjdXJyZW50U2xpZGUsICgpID0+IHtcbiAgICBlbWl0KCdjaGFuZ2UnLCBjdXJyZW50U2xpZGUudmFsdWUpO1xuICB9KTtcbjwvc2NyaXB0PlxuXG48dGVtcGxhdGU+XG4gIDxzZWN0aW9uXG4gICAgOmNsYXNzPVwiWyd0aWRlLWNhcm91c2VsJywgQ1NTLlBPU0lUSU9OLlJFTEFUSVZFLCBDU1MuRElTUExBWS5GTEVYLCBDU1MuQVhJUzIuQ0VOVEVSLCBDU1MuV0lEVEguRlVMTF1cIlxuICAgIHJlZj1cImNhcm91c2VsUmVmXCJcbiAgPlxuICAgIDxkaXZcbiAgICAgIDpjbGFzcz1cIltDU1MuU0NST0xMQkFSLk9GRiwgQ1NTLlNOQVAuT04sIENTUy5PVkVSRkxPVy5YLlNDUk9MTF1cIlxuICAgICAgcmVmPVwiZnJhbWVSZWZcIlxuICAgICAgQHNjcm9sbD1cImhhbmRsZVNjcm9sbFwiXG4gICAgPlxuICAgICAgPHVsXG4gICAgICAgIDpjbGFzcz1cIltwcm9wcy5pc1RvdWNoc2NyZWVuID8gW0NTUy5PVkVSRkxPVy5YLkFVVE9dIDogJycsIENTUy5ESVNQTEFZLkZMRVgsIENTUy5HQVAuT05FLCBDU1MuTElTVF9CVUxMRVRTLk9GRl1cIlxuICAgICAgICByZWY9XCJjb250ZW50UmVmXCJcbiAgICAgID5cbiAgICAgICAgPGxpXG4gICAgICAgICAgOmNsYXNzPVwiW0NTUy5GTEVYLlNIUklOSy5PRkYsIENTUy5TTkFQX0FMSUdOLlNUQVJUXVwiXG4gICAgICAgICAgOnN0eWxlPVwieyB3aWR0aDogYCR7cHJvcHMub2Zmc2V0WCAtIGdhcH1weGAgfVwiXG4gICAgICAgICAgdi1pZj1cInByb3BzLm9mZnNldFhcIlxuICAgICAgICAvPlxuXG4gICAgICAgIDxzbG90IC8+XG5cbiAgICAgICAgPGxpXG4gICAgICAgICAgOmNsYXNzPVwiW0NTUy5GTEVYLlNIUklOSy5PRkYsIENTUy5TTkFQX0FMSUdOLlNUQVJUXVwiXG4gICAgICAgICAgOnN0eWxlPVwieyB3aWR0aDogYCR7cHJvcHMub2Zmc2V0WCAtIGdhcH1weGAgfVwiXG4gICAgICAgICAgdi1pZj1cInByb3BzLm9mZnNldFhcIlxuICAgICAgICAvPlxuICAgICAgPC91bD5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXZcbiAgICAgIDpjbGFzcz1cIltcbiAgICAgICAgQ1NTLlBPU0lUSU9OLkFCU09MVVRFLFxuICAgICAgICBDU1MuRElTUExBWS5GTEVYLFxuICAgICAgICBDU1MuQVhJUzEuQkVUV0VFTixcbiAgICAgICAgQ1NTLkFYSVMyLkNFTlRFUixcbiAgICAgICAgQ1NTLldJRFRILkZVTEwsXG4gICAgICAgIENTUy5IRUlHSFQuRlVMTCxcbiAgICAgICAgQ1NTLlBPSU5URVJfRVZFTlRTLk9GRixcbiAgICAgIF1cIlxuICAgICAgdi1pZj1cInNob3dCdXR0b25zXCJcbiAgICA+XG4gICAgICA8VGlkZUJ1dHRvbkljb25cbiAgICAgICAgOmNsYXNzPVwiW0NTUy5NQVJHSU4uTEVGVC5PTkUsIENTUy5QT0lOVEVSX0VWRU5UUy5PTl1cIlxuICAgICAgICA6aWNvbj1cIklDT04uQ0hFVlJPTl9MRUZUXCJcbiAgICAgICAgOnByaW9yaXR5PVwiUFJJT1JJVFkuUVVBVEVSTkFSWVwiXG4gICAgICAgIEBjbGljaz1cInNob3dQcmV2aW91c1NsaWRlXCJcbiAgICAgIC8+XG5cbiAgICAgIDxUaWRlQnV0dG9uSWNvblxuICAgICAgICA6Y2xhc3M9XCJbQ1NTLk1BUkdJTi5SSUdIVC5PTkUsIENTUy5QT0lOVEVSX0VWRU5UUy5PTl1cIlxuICAgICAgICA6aWNvbj1cIklDT04uQ0hFVlJPTl9SSUdIVFwiXG4gICAgICAgIDpwcmlvcml0eT1cIlBSSU9SSVRZLlFVQVRFUk5BUllcIlxuICAgICAgICBAY2xpY2s9XCJzaG93TmV4dFNsaWRlXCJcbiAgICAgIC8+XG4gICAgPC9kaXY+XG4gIDwvc2VjdGlvbj5cbjwvdGVtcGxhdGU+XG4iLCI8c2NyaXB0IGxhbmc9XCJ0c1wiIHNldHVwPlxuICBpbXBvcnQgeyByZWYgfSBmcm9tICd2dWUnO1xuXG4gIGltcG9ydCB7IENTUyB9IGZyb20gJ0AvdHlwZXMvU3R5bGVzJztcblxuICB0eXBlIFByb3BzID0ge1xuICAgIGFsdD86IHN0cmluZztcbiAgICBjZG4/OiBzdHJpbmc7XG4gICAgaXNMYXp5PzogYm9vbGVhbjtcbiAgICBvZmZzZXQ/OiBudW1iZXI7XG4gICAgc3JjPzogc3RyaW5nO1xuICB9O1xuXG4gIGNvbnN0IHByb3BzID0gd2l0aERlZmF1bHRzKGRlZmluZVByb3BzPFByb3BzPigpLCB7XG4gICAgYWx0OiAnJyxcbiAgICBjZG46IHVuZGVmaW5lZCxcbiAgICBpc0xhenk6IHRydWUsXG4gICAgb2Zmc2V0OiAwLFxuICAgIHNyYzogdW5kZWZpbmVkLFxuICB9KTtcblxuICBjb25zdCB0aWRlSW1hZ2UgPSByZWYoKTtcblxuICBjb25zdCBpbWFnZURlZmF1bHQgPSBgJHtwcm9wcy5jZG59L2ltYWdlLWNvbWluZy1zb29uLTUxMi5wbmdgO1xuXG4gIGNvbnN0IHNldEltYWdlRnJvbURlZmF1bHQgPSAoKSA9PiB7XG4gICAgdGlkZUltYWdlLnZhbHVlLnNyYyA9IGltYWdlRGVmYXVsdDtcbiAgfTtcblxuICBkZWZpbmVFeHBvc2UodGlkZUltYWdlLnZhbHVlKTtcbjwvc2NyaXB0PlxuXG48dGVtcGxhdGU+XG4gIDxpbWdcbiAgICA6YWx0PVwiYWx0XCJcbiAgICA6Y2xhc3M9XCJbJ3RpZGUtaW1hZ2UnLCBDU1MuT0JKRUNULkNFTlRFUiwgQ1NTLk9CSkVDVC5DT1ZFUl1cIlxuICAgIDpsb2FkaW5nPVwiaXNMYXp5ID8gJ2xhenknIDogJ2VhZ2VyJ1wiXG4gICAgcmVmPVwidGlkZUltYWdlXCJcbiAgICA6c3JjPVwic3JjID8/IGltYWdlRGVmYXVsdFwiXG4gICAgQGVycm9yPVwic2V0SW1hZ2VGcm9tRGVmYXVsdFwiXG4gIC8+XG48L3RlbXBsYXRlPlxuXG48c3R5bGUgc2NvcGVkPjwvc3R5bGU+XG4iLCI8c2NyaXB0IGxhbmc9XCJ0c1wiIHNldHVwPlxuICBpbXBvcnQgeyBjb21wdXRlZCwgZ2V0Q3VycmVudEluc3RhbmNlLCByZWYsIHdhdGNoIH0gZnJvbSAndnVlJztcblxuICBpbXBvcnQgVGlkZUljb24gZnJvbSAnQC9jb21wb25lbnRzL1RpZGVJY29uLnZ1ZSc7XG4gIGltcG9ydCB7IENTUyB9IGZyb20gJ0AvdHlwZXMvU3R5bGVzJztcbiAgaW1wb3J0IHsgSUNPTiB9IGZyb20gJ0AvdHlwZXMvSWNvbic7XG4gIGltcG9ydCB7IFNJWkUgfSBmcm9tICdAL3R5cGVzL1NpemUnO1xuICBpbXBvcnQgeyBmb3JtYXROdW1iZXIgfSBmcm9tICdAL3V0aWxpdGllcy9mb3JtYXQnO1xuXG4gIGNvbnN0IGlucHV0ID0gcmVmPEhUTUxJbnB1dEVsZW1lbnQ+KCk7XG5cbiAgdHlwZSBQcm9wcyA9IHtcbiAgICBjaGVja2VkPzogYm9vbGVhbjtcbiAgICBkYXRhVHJhY2s/OiBzdHJpbmc7XG4gICAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICAgIGluZGV0ZXJtaW5hdGU/OiBib29sZWFuO1xuICAgIGlucHV0SWQ/OiBzdHJpbmc7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgbnVtYmVyPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICB9O1xuXG4gIGNvbnN0IHByb3BzID0gd2l0aERlZmF1bHRzKGRlZmluZVByb3BzPFByb3BzPigpLCB7XG4gICAgY2hlY2tlZDogZmFsc2UsXG4gICAgZGF0YVRyYWNrOiAnJyxcbiAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgaW5kZXRlcm1pbmF0ZTogZmFsc2UsXG4gICAgaW5wdXRJZDogdW5kZWZpbmVkLFxuICAgIGxhYmVsOiB1bmRlZmluZWQsXG4gICAgbmFtZTogdW5kZWZpbmVkLFxuICAgIG51bWJlcjogdW5kZWZpbmVkLFxuICB9KTtcblxuICBjb25zdCBjaGVja2VkID0gcmVmKHByb3BzLmNoZWNrZWQgfHwgcHJvcHMuaW5kZXRlcm1pbmF0ZSk7XG4gIGNvbnN0IGluZGV0ZXJtaW5hdGUgPSByZWYocHJvcHMuaW5kZXRlcm1pbmF0ZSk7XG5cbiAgY29uc3QgdW5pcXVlSWQgPSBjb21wdXRlZCgoKSA9PiAocHJvcHMuaW5wdXRJZCA/IHByb3BzLmlucHV0SWQgOiBgdGV4dC1pbnB1dC0ke2dldEN1cnJlbnRJbnN0YW5jZSgpPy51aWQgfHwgJyd9YCkpO1xuXG4gIGNvbnN0IGhhbmRsZUNsaWNrID0gKCkgPT4ge1xuICAgIGNoZWNrZWQudmFsdWUgPSAhY2hlY2tlZC52YWx1ZTtcbiAgfTtcblxuICB3YXRjaChcbiAgICAoKSA9PiBwcm9wcy5pbmRldGVybWluYXRlLFxuICAgIChuZXdWYWx1ZSwgb2xkVmFsdWUpID0+IHtcbiAgICAgIGlmIChuZXdWYWx1ZSAhPT0gb2xkVmFsdWUgfHwgbmV3VmFsdWUgIT09IGluZGV0ZXJtaW5hdGUudmFsdWUpIHtcbiAgICAgICAgaWYgKGlucHV0LnZhbHVlKSB7XG4gICAgICAgICAgaW5kZXRlcm1pbmF0ZS52YWx1ZSA9IG5ld1ZhbHVlO1xuICAgICAgICAgIGlucHV0LnZhbHVlLmluZGV0ZXJtaW5hdGUgPSBpbmRldGVybWluYXRlLnZhbHVlO1xuXG4gICAgICAgICAgaWYgKGluZGV0ZXJtaW5hdGUudmFsdWUgPT09IHRydWUpIHtcbiAgICAgICAgICAgIGNoZWNrZWQudmFsdWUgPSB0cnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlucHV0LnZhbHVlLmNoZWNrZWQgPSBjaGVja2VkLnZhbHVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICApO1xuXG4gIHdhdGNoKFxuICAgICgpID0+IHByb3BzLmNoZWNrZWQsXG4gICAgKG5ld1ZhbHVlLCBvbGRWYWx1ZSkgPT4ge1xuICAgICAgaWYgKG5ld1ZhbHVlICE9PSBvbGRWYWx1ZSB8fCBuZXdWYWx1ZSAhPT0gY2hlY2tlZC52YWx1ZSkge1xuICAgICAgICBjaGVja2VkLnZhbHVlID0gbmV3VmFsdWU7XG4gICAgICB9XG4gICAgfVxuICApO1xuXG4gIGRlZmluZUV4cG9zZSh7IGNoZWNrZWQsIGluZGV0ZXJtaW5hdGUgfSk7XG48L3NjcmlwdD5cblxuPHRlbXBsYXRlPlxuICA8ZGl2XG4gICAgOmNsYXNzPVwiW1xuICAgICAgJ3RpZGUtaW5wdXQtY2hlY2tib3gnLFxuICAgICAgQ1NTLkRJU1BMQVkuRkxFWCxcbiAgICAgIENTUy5BWElTMi5DRU5URVIsXG4gICAgICBDU1MuR0FQLkhBTEYsXG4gICAgICBDU1MuRk9OVC5TSVpFLkZPVVJURUVOLFxuICAgICAgZGlzYWJsZWQgJiYgJ2Rpc2FibGVkJyxcbiAgICAgIGRpc2FibGVkID8gQ1NTLkNVUlNPUi5OT1RfQUxMT1dFRCA6IENTUy5DVVJTT1IuUE9JTlRFUixcbiAgICBdXCJcbiAgPlxuICAgIDxpbnB1dFxuICAgICAgOmNoZWNrZWQ9XCJjaGVja2VkXCJcbiAgICAgIDpjbGFzcz1cIltDU1MuRElTUExBWS5OT05FXVwiXG4gICAgICA6ZGlzYWJsZWQ9XCJwcm9wcy5kaXNhYmxlZFwiXG4gICAgICA6bmFtZT1cInByb3BzLm5hbWVcIlxuICAgICAgcmVmPVwiaW5wdXRcIlxuICAgICAgOmlkPVwidW5pcXVlSWRcIlxuICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAvPlxuXG4gICAgPGRpdlxuICAgICAgOmNsYXNzPVwiW1xuICAgICAgICAndGlkZS1pbnB1dC1jaGVja2JveC1jdXN0b20nLFxuICAgICAgICBDU1MuUE9TSVRJT04uUkVMQVRJVkUsXG4gICAgICAgIENTUy5ESVNQTEFZLkZMRVgsXG4gICAgICAgIENTUy5BWElTMS5DRU5URVIsXG4gICAgICAgIENTUy5BWElTMi5DRU5URVIsXG4gICAgICAgIENTUy5GTEVYLlNIUklOSy5PRkYsXG4gICAgICAgIENTUy5CT1JERVIuRlVMTC5PTkUsXG4gICAgICAgIGNoZWNrZWQgPyBbQ1NTLkJPUkRFUi5DT0xPUi5ISUdILCBDU1MuQkcuU0VDT05EQVJZXSA6IFtDU1MuQk9SREVSLkNPTE9SLkRFRkFVTFQsIENTUy5CRy5TVVJGQUNFLkRFRkFVTFRdLFxuICAgICAgICBDU1MuQk9SREVSLlJBRElVUy5RVUFSVEVSLFxuICAgICAgICBjaGVja2VkICYmICdjaGVja2VkJyxcbiAgICAgICAgZGlzYWJsZWQgPyBDU1MuQ1VSU09SLk5PVF9BTExPV0VEIDogQ1NTLkNVUlNPUi5QT0lOVEVSLFxuICAgICAgXVwiXG4gICAgICBAY2xpY2s9XCJoYW5kbGVDbGlja1wiXG4gICAgPlxuICAgICAgPFRpZGVJY29uXG4gICAgICAgIDpjbGFzcz1cIltDU1MuRk9OVC5DT0xPUi5TRUNPTkRBUlldXCJcbiAgICAgICAgOmljb249XCJpbmRldGVybWluYXRlID8gSUNPTi5SRU1PVkUgOiBJQ09OLkNIRUNLXCJcbiAgICAgICAgOnNpemU9XCJTSVpFLlNNQUxMXCJcbiAgICAgICAgdi1pZj1cImNoZWNrZWQgfHwgaW5kZXRlcm1pbmF0ZVwiXG4gICAgICAvPlxuICAgIDwvZGl2PlxuXG4gICAgPGxhYmVsXG4gICAgICA6Y2xhc3M9XCJbQ1NTLkRJU1BMQVkuRkxFWCwgQ1NTLkdBUC5IQUxGLCBkaXNhYmxlZCA/IENTUy5DVVJTT1IuTk9UX0FMTE9XRUQgOiBDU1MuQ1VSU09SLlBPSU5URVJdXCJcbiAgICAgIDpmb3I9XCJ1bmlxdWVJZFwiXG4gICAgICBAY2xpY2sucHJldmVudD1cImNoZWNrZWQgPSAhY2hlY2tlZFwiXG4gICAgICB2LWlmPVwibGFiZWxcIlxuICAgID5cbiAgICAgIDxzcGFuPnt7IGxhYmVsIH19PC9zcGFuPlxuICAgICAgPHNwYW5cbiAgICAgICAgOmNsYXNzPVwiW0NTUy5GT05ULkNPTE9SLlNVUkZBQ0UuVkFSSUFOVF1cIlxuICAgICAgICB2LWlmPVwicHJvcHMubnVtYmVyXCJcbiAgICAgID5cbiAgICAgICAgKHt7IGZvcm1hdE51bWJlcihwcm9wcy5udW1iZXIpIH19KVxuICAgICAgPC9zcGFuPlxuICAgIDwvbGFiZWw+XG4gIDwvZGl2PlxuPC90ZW1wbGF0ZT5cblxuPHN0eWxlIHNjb3BlZD5cbiAgLnRpZGUtaW5wdXQtY2hlY2tib3guZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IHZhcigtLXRpZGUtZGlzYWJsZWQpO1xuICB9XG5cbiAgLnRpZGUtaW5wdXQtY2hlY2tib3gtY3VzdG9tIHtcbiAgICB3aWR0aDogdmFyKC0tdGlkZS1mb250LTI4KTtcbiAgICBoZWlnaHQ6IHZhcigtLXRpZGUtZm9udC0yOCk7XG4gIH1cbjwvc3R5bGU+XG4iLCI8c2NyaXB0IGxhbmc9XCJ0c1wiIHNldHVwPlxuICBpbXBvcnQgeyBjb21wdXRlZCwgZ2V0Q3VycmVudEluc3RhbmNlLCByZWYsIHdhdGNoIH0gZnJvbSAndnVlJztcblxuICBpbXBvcnQgeyBDU1MgfSBmcm9tICdAL3R5cGVzL1N0eWxlcyc7XG5cbiAgdHlwZSBQcm9wcyA9IHtcbiAgICBjaGVja2VkPzogYm9vbGVhbjtcbiAgICBkYXRhVHJhY2s/OiBzdHJpbmc7XG4gICAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICAgIGlucHV0SWQ/OiBzdHJpbmc7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gIH07XG5cbiAgY29uc3QgcHJvcHMgPSB3aXRoRGVmYXVsdHMoZGVmaW5lUHJvcHM8UHJvcHM+KCksIHtcbiAgICBjaGVja2VkOiBmYWxzZSxcbiAgICBkYXRhVHJhY2s6ICcnLFxuICAgIGRpc2FibGVkOiBmYWxzZSxcbiAgICBpbnB1dElkOiB1bmRlZmluZWQsXG4gICAgbGFiZWw6IHVuZGVmaW5lZCxcbiAgfSk7XG5cbiAgY29uc3QgY2hlY2tlZCA9IHJlZihwcm9wcy5jaGVja2VkKTtcblxuICBjb25zdCB1bmlxdWVJZCA9IGNvbXB1dGVkKCgpID0+IChwcm9wcy5pbnB1dElkID8gcHJvcHMuaW5wdXRJZCA6IGB0ZXh0LWlucHV0LSR7Z2V0Q3VycmVudEluc3RhbmNlKCk/LnVpZCB8fCAnJ31gKSk7XG5cbiAgd2F0Y2goXG4gICAgKCkgPT4gcHJvcHMuY2hlY2tlZCxcbiAgICAobmV3VmFsdWUsIG9sZFZhbHVlKSA9PiB7XG4gICAgICBpZiAobmV3VmFsdWUgIT09IG9sZFZhbHVlIHx8IG5ld1ZhbHVlICE9PSBjaGVja2VkLnZhbHVlKSB7XG4gICAgICAgIGNoZWNrZWQudmFsdWUgPSBuZXdWYWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICk7XG48L3NjcmlwdD5cblxuPHRlbXBsYXRlPlxuICA8ZGl2IDpjbGFzcz1cIlsndGlkZS1pbnB1dC1yYWRpbycsIENTUy5ESVNQTEFZLkZMRVgsIENTUy5BWElTMi5DRU5URVIsIENTUy5HQVAuSEFMRiwgcHJvcHMuZGlzYWJsZWQgJiYgJ2Rpc2FibGVkJ11cIj5cbiAgICA8aW5wdXRcbiAgICAgIDpjaGVja2VkPVwiY2hlY2tlZFwiXG4gICAgICA6Y2xhc3M9XCJbQ1NTLkRJU1BMQVkuTk9ORV1cIlxuICAgICAgOmlkPVwidW5pcXVlSWRcIlxuICAgICAgbmFtZT1cIlwiXG4gICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgdmFsdWU9XCJcIlxuICAgIC8+XG5cbiAgICA8ZGl2XG4gICAgICA6Y2xhc3M9XCJbXG4gICAgICAgICd0aWRlLWlucHV0LXJhZGlvLWN1c3RvbScsXG4gICAgICAgIENTUy5QT1NJVElPTi5SRUxBVElWRSxcbiAgICAgICAgQ1NTLkRJU1BMQVkuRkxFWCxcbiAgICAgICAgQ1NTLkFYSVMxLkNFTlRFUixcbiAgICAgICAgQ1NTLkFYSVMyLkNFTlRFUixcbiAgICAgICAgQ1NTLkJPUkRFUi5GVUxMLk9ORSxcbiAgICAgICAgY2hlY2tlZCA/IENTUy5CT1JERVIuQ09MT1IuSElHSCA6IENTUy5CT1JERVIuQ09MT1IuREVGQVVMVCxcbiAgICAgICAgQ1NTLkJPUkRFUi5SQURJVVMuRlVMTCxcbiAgICAgICAgY2hlY2tlZCAmJiAnY2hlY2tlZCcsXG4gICAgICBdXCJcbiAgICA+XG4gICAgICA8ZGl2IDpjbGFzcz1cIlsndGlkZS1pbnB1dC1yYWRpby1jaGVjaycsIENTUy5CT1JERVIuUkFESVVTLkZVTEwsIHByb3BzLmNoZWNrZWQgJiYgQ1NTLkJHLlNFQ09OREFSWV1cIiAvPlxuICAgIDwvZGl2PlxuXG4gICAgPGxhYmVsXG4gICAgICA6Y2xhc3M9XCJDU1MuRk9OVC5XRUlHSFQuRk9VUl9IVU5EUkVEXCJcbiAgICAgIDpmb3I9XCJ1bmlxdWVJZFwiXG4gICAgPlxuICAgICAge3sgcHJvcHMubGFiZWwgfX1cbiAgICA8L2xhYmVsPlxuICA8L2Rpdj5cbjwvdGVtcGxhdGU+XG5cbjxzdHlsZSBzY29wZWQ+XG4gIC50aWRlLWlucHV0LXJhZGlvLmRpc2FibGVkIHtcbiAgICBvcGFjaXR5OiB2YXIoLS10aWRlLWRpc2FibGVkKTtcbiAgfVxuXG4gIC50aWRlLWlucHV0LXJhZGlvLWN1c3RvbSB7XG4gICAgd2lkdGg6IHZhcigtLXRpZGUtZm9udC0yOCk7XG4gICAgaGVpZ2h0OiB2YXIoLS10aWRlLWZvbnQtMjgpO1xuICB9XG5cbiAgLnRpZGUtaW5wdXQtcmFkaW8tY2hlY2sge1xuICAgIHdpZHRoOiAxcmVtO1xuICAgIGhlaWdodDogMXJlbTtcbiAgfVxuPC9zdHlsZT5cbiIsImltcG9ydCB0eXBlIHsgUmVmIH0gZnJvbSAndnVlJztcblxuaW1wb3J0IHR5cGUgeyBSYW5nZURhdGEgfSBmcm9tICdAL3R5cGVzL0ZhY2V0UmFuZ2UnO1xuaW1wb3J0IHR5cGUgeyBTZWxlY3RPcHRpb24gfSBmcm9tICdAL3R5cGVzL1NlbGVjdCc7XG5pbXBvcnQgdHlwZSB7IFN0cmluZ0lucHV0IH0gZnJvbSAnQC90eXBlcy9Gb3JtJztcbmltcG9ydCB0eXBlIHsgVmFsaWRhdGlvbkVycm9yLCBWYWxpZGF0aW9uTGVuZ3RoLCBWYWxpZGF0aW9uUmVzdWx0LCBWYWxpZGF0b3IgfSBmcm9tICdAL3R5cGVzL1ZhbGlkYXRpb24nO1xuXG5pbXBvcnQgeyBwcmljZVRvTnVtYmVyIH0gZnJvbSAnQC91dGlsaXRpZXMvZm9ybWF0JztcblxuZXhwb3J0IGNvbnN0IGVycm9yTWVzc2FnZURlZmF1bHQgPSAnUGxlYXNlIGVudGVyIGEgdmFsaWQgdmFsdWUuJztcblxuZXhwb3J0IGNvbnN0IG5vRXJyb3IgPSB7XG4gIG1lc3NhZ2U6ICcnLFxuICB2YWxpZDogdHJ1ZSxcbn0gYXMgUmVhZG9ubHk8VmFsaWRhdGlvblJlc3VsdD47XG5cbmV4cG9ydCBjb25zdCBjaGVja0Zvcm1hdCA9IChmb3JtYXQ6IFJlZ0V4cCkgPT4ge1xuICByZXR1cm4gKHZhbHVlOiBzdHJpbmcpOiBWYWxpZGF0aW9uUmVzdWx0ID0+IHtcbiAgICBsZXQgcmVzdWx0ID0gbm9FcnJvcjtcblxuICAgIGlmICghdmFsdWUudHJpbSgpLm1hdGNoKGZvcm1hdCkpIHtcbiAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgbWVzc2FnZTogZXJyb3JNZXNzYWdlRGVmYXVsdCxcbiAgICAgICAgdmFsaWQ6IGZhbHNlLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEVycm9yTWVzc2FnZSA9IChlcnJvckZyb21Qcm9wczogVmFsaWRhdGlvbkVycm9yLCBlcnJvckZyb21SZWY6IFZhbGlkYXRpb25FcnJvcikgPT4ge1xuICAvLyBlcnJvciBpbiBwcm9wcyB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgdmFsaWRhdGlvbiBlcnJvclxuICBpZiAodHlwZW9mIGVycm9yRnJvbVByb3BzID09PSAnc3RyaW5nJyAmJiBlcnJvckZyb21Qcm9wcy5sZW5ndGggPiAwKSByZXR1cm4gZXJyb3JGcm9tUHJvcHM7XG5cbiAgcmV0dXJuIHR5cGVvZiBlcnJvckZyb21SZWYgPT09ICdzdHJpbmcnICYmIGVycm9yRnJvbVJlZi5sZW5ndGggPiAwID8gZXJyb3JGcm9tUmVmIDogZXJyb3JNZXNzYWdlRGVmYXVsdDtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRGaWVsZEhhc0Vycm9yID0gKGVycm9yRnJvbVByb3BzOiBWYWxpZGF0aW9uRXJyb3IsIGVycm9yRnJvbVJlZjogVmFsaWRhdGlvbkVycm9yKSA9PlxuICBlcnJvckZyb21Qcm9wcyAhPT0gZmFsc2UgfHwgZXJyb3JGcm9tUmVmICE9PSBmYWxzZTtcblxuZXhwb3J0IGNvbnN0IGdldEZpZWxkTGVuZ3RoSXNWYWxpZCA9ICh7IG1heGxlbmd0aCwgbWlubGVuZ3RoLCByZXF1aXJlZCwgdmFsdWUgfTogVmFsaWRhdGlvbkxlbmd0aCkgPT4ge1xuICBjb25zdCBpc0VtcHR5QW5kVW5yZXF1aXJlZCA9IHZhbHVlLmxlbmd0aCA9PT0gMCAmJiAhcmVxdWlyZWQ7XG4gIGNvbnN0IGlzVG9vTG9uZyA9IG1heGxlbmd0aCAmJiB2YWx1ZS5sZW5ndGggPiBtYXhsZW5ndGg7XG4gIGNvbnN0IGlzVG9vU2hvcnQgPSAhaXNFbXB0eUFuZFVucmVxdWlyZWQgJiYgbWlubGVuZ3RoICYmIHZhbHVlLmxlbmd0aCA8IG1pbmxlbmd0aDtcblxuICByZXR1cm4gIWlzVG9vU2hvcnQgJiYgIWlzVG9vTG9uZztcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRNYXhSYW5nZUlzVmFsaWQgPSAoeyBtaW4gfTogUGljazxSYW5nZURhdGEsICdtaW4nPiwgdHlwZT86ICdwcmljZScpID0+IHtcbiAgcmV0dXJuICh2YWx1ZTogc3RyaW5nKTogVmFsaWRhdGlvblJlc3VsdCA9PiB7XG4gICAgbGV0IG5ld01heDogbnVtYmVyIHwgbnVsbCA9IHR5cGUgPT09ICdwcmljZScgPyBwcmljZVRvTnVtYmVyKHZhbHVlKSA6IE51bWJlcih2YWx1ZSk7XG4gICAgbmV3TWF4ID0gIWlzTmFOKG5ld01heCkgPyBuZXdNYXggOiBudWxsO1xuICAgIGlmIChtaW4gJiYgbmV3TWF4KSB7XG4gICAgICBpZiAobmV3TWF4ID49IG1pbikge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIG1lc3NhZ2U6ICcnLFxuICAgICAgICAgIHZhbGlkOiB0cnVlLFxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBtZXNzYWdlOiBgTXVzdCBiZSBncmVhdGVyIHRoYW4gbWluYCxcbiAgICAgICAgICB2YWxpZDogZmFsc2UsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBub0Vycm9yO1xuICAgIH1cbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRNaW5SYW5nZUlzVmFsaWQgPSAoeyBtYXggfTogUGljazxSYW5nZURhdGEsICdtYXgnPiwgdHlwZT86ICdwcmljZScpID0+IHtcbiAgcmV0dXJuICh2YWx1ZTogc3RyaW5nKTogVmFsaWRhdGlvblJlc3VsdCA9PiB7XG4gICAgbGV0IG5ld01pbjogbnVtYmVyIHwgbnVsbCA9IHR5cGUgPT09ICdwcmljZScgPyBwcmljZVRvTnVtYmVyKHZhbHVlKSA6IE51bWJlcih2YWx1ZSk7XG4gICAgbmV3TWluID0gIWlzTmFOKG5ld01pbikgPyBuZXdNaW4gOiBudWxsO1xuICAgIGlmIChtYXggJiYgbmV3TWluKSB7XG4gICAgICBpZiAobmV3TWluIDw9IG1heCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIG1lc3NhZ2U6ICcnLFxuICAgICAgICAgIHZhbGlkOiB0cnVlLFxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBtZXNzYWdlOiBgTXVzdCBiZSBsZXNzIHRoYW4gbWF4YCxcbiAgICAgICAgICB2YWxpZDogZmFsc2UsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBub0Vycm9yO1xuICAgIH1cbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRTZWxlY3RPcHRpb25zRnJvbVN0cmluZ3MgPSAoc3RyaW5nczogc3RyaW5nW10pID0+XG4gIHN0cmluZ3MubWFwKFxuICAgIChvcHRpb24pID0+XG4gICAgICAoe1xuICAgICAgICBsYWJlbDogb3B0aW9uLFxuICAgICAgICB2YWx1ZTogb3B0aW9uLFxuICAgICAgfSBhcyBTZWxlY3RPcHRpb24pXG4gICk7XG5cbmV4cG9ydCBjb25zdCBoYW5kbGVGaWVsZFZhbGlkYXRpb24gPSAoe1xuICBlcnJvcixcbiAgZXJyb3JGcm9tUHJvcHMsXG4gIG1heGxlbmd0aCxcbiAgbWlubGVuZ3RoLFxuICByZXF1aXJlZCA9IGZhbHNlLFxuICB2YWxpZGF0b3JzLFxuICB2YWx1ZSxcbn06IHtcbiAgZXJyb3I6IFJlZjxWYWxpZGF0aW9uRXJyb3I+O1xuICBlcnJvckZyb21Qcm9wczogVmFsaWRhdGlvbkVycm9yO1xuICBtYXhsZW5ndGg/OiBudW1iZXI7XG4gIG1pbmxlbmd0aD86IG51bWJlcjtcbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xuICB2YWxpZGF0b3JzPzogVmFsaWRhdG9yW107XG4gIHZhbHVlOiBSZWY8c3RyaW5nPjtcbn0pID0+IHtcbiAgLy8gZXJyb3IgaW4gcHJvcHMgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIHZhbGlkYXRpb24gZXJyb3JcblxuICBlcnJvci52YWx1ZSA9IGVycm9yRnJvbVByb3BzID8gZXJyb3JGcm9tUHJvcHMgOiBmYWxzZTtcblxuICBpZiAoIWVycm9yLnZhbHVlICYmIHZhbGlkYXRvcnMpIHtcbiAgICBjb25zdCB2YWxpZGF0aW9uID0gdmFsaWRhdGVQcm9wZXJ0eSh2YWx1ZS52YWx1ZSwgdmFsaWRhdG9ycyk7XG5cbiAgICBpZiAoIXZhbGlkYXRpb24udmFsaWQpIHtcbiAgICAgIGVycm9yLnZhbHVlID0gdmFsaWRhdGlvbi5tZXNzYWdlO1xuICAgIH1cbiAgfVxuXG4gIGlmICghZXJyb3IudmFsdWUgJiYgKG1heGxlbmd0aCB8fCBtaW5sZW5ndGgpKSB7XG4gICAgY29uc3QgbGVuZ3RoVmFsaWRhdGlvbiA9IHZhbGlkYXRlTGVuZ3RoKHtcbiAgICAgIG1heGxlbmd0aCxcbiAgICAgIG1pbmxlbmd0aCxcbiAgICAgIHJlcXVpcmVkLFxuICAgICAgdmFsdWU6IHZhbHVlLnZhbHVlLFxuICAgIH0pO1xuXG4gICAgaWYgKCFsZW5ndGhWYWxpZGF0aW9uLnZhbGlkKSB7XG4gICAgICBlcnJvci52YWx1ZSA9IGxlbmd0aFZhbGlkYXRpb24ubWVzc2FnZTtcbiAgICB9XG4gIH1cbn07XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZUZpZWxkc0Zyb21SZWZzKGZpZWxkczogeyBba2V5OiBzdHJpbmddOiBSZWY8U3RyaW5nSW5wdXQgfCBudWxsPiB9KSB7XG4gIGxldCB2YWxpZCA9IHRydWU7XG5cbiAgZm9yIChjb25zdCBrZXkgaW4gZmllbGRzKSB7XG4gICAgaWYgKGZpZWxkc1trZXldLnZhbHVlPy5yZXF1aXJlZCkge1xuICAgICAgY29uc3QgdmFsdWUgPSBmaWVsZHNba2V5XS52YWx1ZT8udmFsdWU7XG4gICAgICB2YWxpZCA9IHZhbGlkICYmICEhdmFsdWUgJiYgdmFsdWUudHJpbSgpICE9PSAnJztcbiAgICB9XG5cbiAgICBjb25zdCBlcnJvciA9IGZpZWxkc1trZXldLnZhbHVlPy5lcnJvcjtcbiAgICB2YWxpZCA9IHZhbGlkICYmICFlcnJvcjtcbiAgfVxuXG4gIHJldHVybiB2YWxpZDtcbn1cblxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlTGVuZ3RoID0gKHtcbiAgbWF4bGVuZ3RoLFxuICBtaW5sZW5ndGgsXG4gIHJlcXVpcmVkID0gZmFsc2UsXG4gIHZhbHVlLFxufTogVmFsaWRhdGlvbkxlbmd0aCk6IFZhbGlkYXRpb25SZXN1bHQgPT4ge1xuICBjb25zdCByZXNwb25zZSA9IHtcbiAgICBtZXNzYWdlOiAnJyxcbiAgICB2YWxpZDogdHJ1ZSxcbiAgfTtcblxuICByZXNwb25zZS52YWxpZCA9IGdldEZpZWxkTGVuZ3RoSXNWYWxpZCh7XG4gICAgbWF4bGVuZ3RoLFxuICAgIG1pbmxlbmd0aCxcbiAgICByZXF1aXJlZCxcbiAgICB2YWx1ZSxcbiAgfSk7XG5cbiAgaWYgKHJlc3BvbnNlLnZhbGlkKSByZXR1cm4gcmVzcG9uc2U7XG5cbiAgcmVzcG9uc2UubWVzc2FnZSA9IGVycm9yTWVzc2FnZURlZmF1bHQ7XG5cbiAgaWYgKG1heGxlbmd0aCAmJiBtaW5sZW5ndGgpIHtcbiAgICByZXNwb25zZS5tZXNzYWdlID0gYFBsZWFzZSBlbnRlciBhIHZhbHVlIGJldHdlZW4gJHttaW5sZW5ndGh9IGFuZCAke21heGxlbmd0aH0gY2hhcmFjdGVycyBpbiBsZW5ndGguYDtcbiAgfSBlbHNlIGlmIChtYXhsZW5ndGgpIHtcbiAgICByZXNwb25zZS5tZXNzYWdlID0gYFBsZWFzZSBlbnRlciBhIHZhbHVlIG5vIG1vcmUgdGhhbiAke21heGxlbmd0aH0gY2hhcmFjdGVycyBpbiBsZW5ndGguYDtcbiAgfSBlbHNlIGlmIChtaW5sZW5ndGgpIHtcbiAgICByZXNwb25zZS5tZXNzYWdlID0gYFBsZWFzZSBlbnRlciBhIHZhbHVlIG5vIGxlc3MgdGhhbiAke21pbmxlbmd0aH0gY2hhcmFjdGVycyBpbiBsZW5ndGguYDtcbiAgfVxuXG4gIHJldHVybiByZXNwb25zZTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVByb3BlcnR5KHZhbHVlOiBzdHJpbmcsIHZhbGlkYXRvcnM6ICgodmFsdWU6IHN0cmluZykgPT4gVmFsaWRhdGlvblJlc3VsdClbXSk6IFZhbGlkYXRpb25SZXN1bHQge1xuICBmb3IgKGNvbnN0IHZhbGlkYXRvciBvZiB2YWxpZGF0b3JzKSB7XG4gICAgY29uc3QgdmFsaWRhdGlvbiA9IHZhbGlkYXRvcih2YWx1ZSk7XG4gICAgaWYgKCF2YWxpZGF0aW9uLnZhbGlkKSB7XG4gICAgICByZXR1cm4gdmFsaWRhdGlvbjtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIG1lc3NhZ2U6ICcnLFxuICAgIHZhbGlkOiB0cnVlLFxuICB9O1xufVxuIiwiPHNjcmlwdCBsYW5nPVwidHNcIiBzZXR1cD5cbiAgaW1wb3J0IHsgZ2V0Q3VycmVudEluc3RhbmNlLCBjb21wdXRlZCwgcmVmLCB3YXRjaCB9IGZyb20gJ3Z1ZSc7XG5cbiAgaW1wb3J0IHR5cGUgeyBTZWxlY3RGaWVsZCB9IGZyb20gJ0AvdHlwZXMvRmllbGQnO1xuICBpbXBvcnQgdHlwZSB7IFNlbGVjdE9wdGlvbiwgU2VsZWN0T3B0aW9uR3JvdXAgfSBmcm9tICdAL3R5cGVzL1NlbGVjdCc7XG5cbiAgaW1wb3J0IFRpZGVJY29uIGZyb20gJ0AvY29tcG9uZW50cy9UaWRlSWNvbi52dWUnO1xuICBpbXBvcnQgeyBDU1MgfSBmcm9tICdAL3R5cGVzL1N0eWxlcyc7XG4gIGltcG9ydCB7IElDT04gfSBmcm9tICdAL3R5cGVzL0ljb24nO1xuICBpbXBvcnQgeyBTSVpFIH0gZnJvbSAnQC90eXBlcy9TaXplJztcbiAgaW1wb3J0IHsgZ2V0RmllbGRIYXNFcnJvciwgZ2V0RXJyb3JNZXNzYWdlIH0gZnJvbSAnQC91dGlsaXRpZXMvdmFsaWRhdGlvbic7XG5cbiAgaW50ZXJmYWNlIFByb3BzIGV4dGVuZHMgU2VsZWN0RmllbGQge1xuICAgIGlucHV0SWQ/OiBzdHJpbmc7XG4gICAgc3VwcG9ydGluZ1RleHQ/OiBzdHJpbmc7XG4gIH1cblxuICBjb25zdCBwcm9wcyA9IHdpdGhEZWZhdWx0cyhkZWZpbmVQcm9wczxQcm9wcz4oKSwge1xuICAgIGRpc2FibGVkOiBmYWxzZSxcbiAgICBlcnJvcjogZmFsc2UsXG4gICAgaW5wdXRJZDogdW5kZWZpbmVkLFxuICAgIGxhYmVsOiB1bmRlZmluZWQsXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIHN1cHBvcnRpbmdUZXh0OiB1bmRlZmluZWQsXG4gICAgdmFsdWU6IHVuZGVmaW5lZCxcbiAgfSk7XG5cbiAgY29uc3QgZXJyb3IgPSByZWYocHJvcHMuZXJyb3IpO1xuICBjb25zdCBoYXNGb2N1cyA9IHJlZihmYWxzZSk7XG4gIGNvbnN0IGlucHV0ID0gcmVmPEhUTUxTZWxlY3RFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IHJlcXVpcmVkID0gcmVmKHByb3BzLnJlcXVpcmVkKTtcbiAgY29uc3QgdmFsdWUgPSByZWY8c3RyaW5nIHwgdW5kZWZpbmVkPihwcm9wcy52YWx1ZSk7XG5cbiAgY29uc3QgZXJyb3JNZXNzYWdlID0gY29tcHV0ZWQoKCkgPT4gZ2V0RXJyb3JNZXNzYWdlKHByb3BzLmVycm9yLCBlcnJvci52YWx1ZSkpO1xuICBjb25zdCBmb3JtYXR0ZWRMYWJlbCA9IGNvbXB1dGVkKCgpID0+IChwcm9wcy5yZXF1aXJlZCA/IGAke3Byb3BzLmxhYmVsfSAqYCA6IHByb3BzLmxhYmVsKSk7XG4gIGNvbnN0IGhhc0Vycm9yID0gY29tcHV0ZWQoKCkgPT4gKHByb3BzLnJlcXVpcmVkICYmICF2YWx1ZS52YWx1ZSkgfHwgZ2V0RmllbGRIYXNFcnJvcihlcnJvci52YWx1ZSwgcHJvcHMuZXJyb3IpKTtcbiAgY29uc3QgaGFzTWluaWxhYmVsID0gY29tcHV0ZWQoKCkgPT4gaGFzRm9jdXMudmFsdWUgfHwgIWlzRW1wdHkudmFsdWUpO1xuICBjb25zdCBpc0VtcHR5ID0gY29tcHV0ZWQoKCkgPT4gdmFsdWUudmFsdWUgPT09IHVuZGVmaW5lZCk7XG5cbiAgY29uc3QgdW5pcXVlSWQgPSBjb21wdXRlZCgoKSA9PiAocHJvcHMuaW5wdXRJZCA/IHByb3BzLmlucHV0SWQgOiBgdGV4dC1pbnB1dC0ke2dldEN1cnJlbnRJbnN0YW5jZSgpPy51aWQgfHwgJyd9YCkpO1xuXG4gIGNvbnN0IGV4cGFuZE9wdGlvbnMgPSAoKSA9PiB7XG4gICAgY29uc3QgZXZlbnQgPSBuZXcgTW91c2VFdmVudCgnbW91c2Vkb3duJyk7XG4gICAgaW5wdXQ/LnZhbHVlPy5kaXNwYXRjaEV2ZW50KGV2ZW50KTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVGb2N1cyA9ICgpID0+IHtcbiAgICBoYXNGb2N1cy52YWx1ZSA9IHRydWU7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlRm9jdXNPdXQgPSAoKSA9PiB7XG4gICAgaGFzRm9jdXMudmFsdWUgPSBmYWxzZTtcbiAgfTtcblxuICB3YXRjaChcbiAgICAoKSA9PiBwcm9wcy52YWx1ZSxcbiAgICAobmV3VmFsdWUsIG9sZFZhbHVlKSA9PiB7XG4gICAgICBpZiAobmV3VmFsdWUgIT09IG9sZFZhbHVlIHx8IG5ld1ZhbHVlICE9PSB2YWx1ZS52YWx1ZSkge1xuICAgICAgICB2YWx1ZS52YWx1ZSA9IG5ld1ZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgKTtcblxuICBkZWZpbmVFeHBvc2UoeyBlcnJvciwgdmFsdWUgfSk7XG48L3NjcmlwdD5cblxuPHRlbXBsYXRlPlxuICA8ZGl2XG4gICAgOmNsYXNzPVwiW1xuICAgICAgJ3RpZGUtaW5wdXQtc2VsZWN0JyxcbiAgICAgIENTUy5ESVNQTEFZLkZMRVgsXG4gICAgICBDU1MuRkxFWC5ESVJFQ1RJT04uQ09MVU1OLFxuICAgICAgQ1NTLkdBUC5RVUFSVEVSLFxuICAgICAgZGlzYWJsZWQgJiYgJ2Rpc2FibGVkJyxcbiAgICAgIGhhc0Vycm9yICYmICdlcnJvcicsXG4gICAgXVwiXG4gID5cbiAgICA8ZGl2XG4gICAgICA6Y2xhc3M9XCJbXG4gICAgICAgICd0aWRlLWlucHV0LWJvcmRlcicsXG4gICAgICAgIENTUy5QT1NJVElPTi5SRUxBVElWRSxcbiAgICAgICAgQ1NTLkRJU1BMQVkuRkxFWCxcbiAgICAgICAgQ1NTLkFYSVMyLkNFTlRFUixcbiAgICAgICAgQ1NTLkdBUC5IQUxGLFxuICAgICAgICBDU1MuQk9SREVSLlJBRElVUy5IQUxGLFxuICAgICAgICBwcm9wcy5kaXNhYmxlZCA/IENTUy5DVVJTT1IuTk9UX0FMTE9XRUQgOiAnJyxcbiAgICAgICAgQ1NTLk9WRVJGTE9XLlhZLkhJRERFTixcbiAgICAgIF1cIlxuICAgICAgQGNsaWNrPVwiZXhwYW5kT3B0aW9uc1wiXG4gICAgPlxuICAgICAgPGRpdiA6Y2xhc3M9XCJbQ1NTLkRJU1BMQVkuRkxFWCwgQ1NTLkZMRVguRElSRUNUSU9OLkNPTFVNTiwgQ1NTLldJRFRILkZVTExdXCI+XG4gICAgICAgIDxsYWJlbFxuICAgICAgICAgIDpjbGFzcz1cIltcbiAgICAgICAgICAgIGhhc01pbmlsYWJlbCA/IFsnbWluaWxhYmVsJywgQ1NTLkZPTlQuU0laRS5UV0VMVkVdIDogQ1NTLkZPTlQuU0laRS5TSVhURUVOLFxuICAgICAgICAgICAgQ1NTLlBPU0lUSU9OLkFCU09MVVRFLFxuICAgICAgICAgICAgQ1NTLlBPU0lUSU9OSU5HLkxFRlQsXG4gICAgICAgICAgICBDU1MuTUFSR0lOLlRPUC5IQUxGLFxuICAgICAgICAgICAgQ1NTLk1BUkdJTi5MRUZULk9ORSxcbiAgICAgICAgICAgICFoYXNFcnJvciAmJiBDU1MuRk9OVC5DT0xPUi5TVVJGQUNFLlZBUklBTlQsXG4gICAgICAgICAgICBDU1MuRk9OVC5XRUlHSFQuRklWRV9IVU5EUkVELFxuICAgICAgICAgIF1cIlxuICAgICAgICAgIDpmb3I9XCJ1bmlxdWVJZFwiXG4gICAgICAgICAgdi1pZj1cImxhYmVsXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGZvcm1hdHRlZExhYmVsIH19XG4gICAgICAgIDwvbGFiZWw+XG5cbiAgICAgICAgPHNlbGVjdFxuICAgICAgICAgIDpjbGFzcz1cIltDU1MuUEFERElORy5CT1RUT00uSEFMRiwgQ1NTLlBBRERJTkcuWC5PTkUsIENTUy5XSURUSC5GVUxMLCBkaXNhYmxlZCAmJiBDU1MuQ1VSU09SLk5PVF9BTExPV0VEXVwiXG4gICAgICAgICAgOmRpc2FibGVkPVwiZGlzYWJsZWRcIlxuICAgICAgICAgIDpuYW1lPVwibmFtZVwiXG4gICAgICAgICAgcmVmPVwiaW5wdXRcIlxuICAgICAgICAgIDpyZXF1aXJlZD1cInJlcXVpcmVkXCJcbiAgICAgICAgICBAZm9jdXM9XCJoYW5kbGVGb2N1c1wiXG4gICAgICAgICAgQGZvY3Vzb3V0PVwiaGFuZGxlRm9jdXNPdXRcIlxuICAgICAgICAgIDppZD1cInVuaXF1ZUlkXCJcbiAgICAgICAgICB2LW1vZGVsPVwidmFsdWVcIlxuICAgICAgICA+XG4gICAgICAgICAgPHRlbXBsYXRlIHYtZm9yPVwib3B0Z3JvdXAgaW4gcHJvcHMub3B0Z3JvdXBzXCI+XG4gICAgICAgICAgICA8b3B0Z3JvdXBcbiAgICAgICAgICAgICAgOmNsYXNzPVwiW0NTUy5XSURUSC5GVUxMLCBDU1MuQkcuU1VSRkFDRS5ERUZBVUxUXVwiXG4gICAgICAgICAgICAgIDprZXk9XCIob3B0Z3JvdXAgYXMgU2VsZWN0T3B0aW9uR3JvdXApLmxhYmVsXCJcbiAgICAgICAgICAgICAgOmxhYmVsPVwiKG9wdGdyb3VwIGFzIFNlbGVjdE9wdGlvbkdyb3VwKS5sYWJlbFwiXG4gICAgICAgICAgICAgIHYtaWY9XCIob3B0Z3JvdXAgYXMgU2VsZWN0T3B0aW9uR3JvdXApLm9wdGlvbnNcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8b3B0aW9uXG4gICAgICAgICAgICAgICAgOmNsYXNzPVwiW0NTUy5XSURUSC5GVUxMLCBDU1MuQkcuU1VSRkFDRS5ERUZBVUxUXVwiXG4gICAgICAgICAgICAgICAgOmtleT1cIm9wdGlvbi52YWx1ZVwiXG4gICAgICAgICAgICAgICAgOnZhbHVlPVwib3B0aW9uLnZhbHVlXCJcbiAgICAgICAgICAgICAgICB2LWZvcj1cIm9wdGlvbiBpbiAob3B0Z3JvdXAgYXMgU2VsZWN0T3B0aW9uR3JvdXApLm9wdGlvbnNcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgb3B0aW9uLmxhYmVsIH19XG4gICAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgICAgPC9vcHRncm91cD5cblxuICAgICAgICAgICAgPG9wdGlvblxuICAgICAgICAgICAgICA6Y2xhc3M9XCJbQ1NTLldJRFRILkZVTEwsIENTUy5CRy5TVVJGQUNFLkRFRkFVTFRdXCJcbiAgICAgICAgICAgICAgOmtleT1cIihvcHRncm91cCBhcyBTZWxlY3RPcHRpb24pLnZhbHVlXCJcbiAgICAgICAgICAgICAgOnNlbGVjdGVkPVwidmFsdWUgPT09IChvcHRncm91cCBhcyBTZWxlY3RPcHRpb24pLnZhbHVlID8gdHJ1ZSA6IHVuZGVmaW5lZFwiXG4gICAgICAgICAgICAgIDp2YWx1ZT1cIihvcHRncm91cCBhcyBTZWxlY3RPcHRpb24pLnZhbHVlXCJcbiAgICAgICAgICAgICAgdi1lbHNlXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7IChvcHRncm91cCBhcyBTZWxlY3RPcHRpb24pLmxhYmVsIH19XG4gICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICA8L3RlbXBsYXRlPlxuXG4gICAgICAgICAgPG9wdGlvblxuICAgICAgICAgICAgOmNsYXNzPVwiW0NTUy5XSURUSC5GVUxMLCBDU1MuQkcuU1VSRkFDRS5ERUZBVUxUXVwiXG4gICAgICAgICAgICA6a2V5PVwib3B0aW9uLnZhbHVlXCJcbiAgICAgICAgICAgIDpzZWxlY3RlZD1cInZhbHVlID09PSBvcHRpb24udmFsdWUgPyB0cnVlIDogdW5kZWZpbmVkXCJcbiAgICAgICAgICAgIDp2YWx1ZT1cIm9wdGlvbi52YWx1ZVwiXG4gICAgICAgICAgICB2LWZvcj1cIm9wdGlvbiBpbiBvcHRpb25zXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBvcHRpb24ubGFiZWwgfX1cbiAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgPC9zZWxlY3Q+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPFRpZGVJY29uXG4gICAgICAgIDpjbGFzcz1cIltDU1MuUE9TSVRJT04uQUJTT0xVVEUsIENTUy5QT1NJVElPTklORy5SSUdIVCwgQ1NTLk1BUkdJTi5SSUdIVC5PTkUsIENTUy5QT0lOVEVSX0VWRU5UUy5PRkZdXCJcbiAgICAgICAgOmljb249XCJJQ09OLkVYUEFORF9NT1JFXCJcbiAgICAgICAgOnNpemU9XCJTSVpFLlNNQUxMXCJcbiAgICAgIC8+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2XG4gICAgICA6Y2xhc3M9XCJbQ1NTLkRJU1BMQVkuRkxFWCwgQ1NTLkFYSVMyLkNFTlRFUiwgQ1NTLkdBUC5RVUFSVEVSLCBDU1MuTUFSR0lOLkxFRlQuT05FXVwiXG4gICAgICB2LWlmPVwicHJvcHMuc3VwcG9ydGluZ1RleHQgfHwgaGFzRXJyb3JcIlxuICAgID5cbiAgICAgIDxUaWRlSWNvblxuICAgICAgICA6Y2xhc3M9XCJbXVwiXG4gICAgICAgIDppY29uPVwiSUNPTi5FUlJPUlwiXG4gICAgICAgIDpzaXplPVwiU0laRS5TTUFMTFwiXG4gICAgICAgIHYtaWY9XCJoYXNFcnJvclwiXG4gICAgICAvPlxuXG4gICAgICA8ZGl2IDpjbGFzcz1cIltDU1MuRk9OVC5TSVpFLlRXRUxWRSwgQ1NTLkZPTlQuV0VJR0hULkZJVkVfSFVORFJFRF1cIj5cbiAgICAgICAge3sgaGFzRXJyb3IgPyBlcnJvck1lc3NhZ2UgOiBwcm9wcy5zdXBwb3J0aW5nVGV4dCB9fVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC90ZW1wbGF0ZT5cblxuPHN0eWxlIHNjb3BlZD5cbiAgc2VsZWN0IHtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICB9XG5cbiAgbGFiZWwge1xuICAgIGhlaWdodDogMS4xODc1cmVtO1xuICAgIHRyYW5zaXRpb246IGZvbnQtc2l6ZSB2YXIoLS10aWRlLWFuaW1hdGUpLCB0cmFuc2Zvcm0gdmFyKC0tdGlkZS1hbmltYXRlKTtcbiAgfVxuXG4gIGxhYmVsOm5vdCgubWluaWxhYmVsKSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgY2FsYyg5IC8gMTYgKiAxcmVtKSk7XG4gIH1cblxuICAudGlkZS1pbnB1dC1zZWxlY3QuZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IHZhcigtLXRpZGUtZGlzYWJsZWQpO1xuICB9XG5cbiAgLnRpZGUtaW5wdXQtc2VsZWN0LmVycm9yIC50aWRlLWlucHV0LWJvcmRlciB7XG4gICAgb3V0bGluZS1jb2xvcjogdmFyKC0tdGlkZS1lcnJvci1ib3JkZXIpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRpZGUtZXJyb3Itc3VyZmFjZSk7XG4gIH1cblxuICAudGlkZS1pbnB1dC1zZWxlY3QuZXJyb3I6Zm9jdXMtd2l0aGluIC50aWRlLWlucHV0LWJvcmRlciB7XG4gICAgb3V0bGluZS1jb2xvcjogdmFyKC0tdGlkZS1lcnJvci1ib3JkZXIpO1xuICB9XG5cbiAgLnRpZGUtaW5wdXQtc2VsZWN0OmZvY3VzLXdpdGhpbiAudGlkZS1pbnB1dC1ib3JkZXIge1xuICAgIC0tdGlkZS1pbnB1dC1vdXRsaW5lLXdpZHRoOiB2YXIoLS10aWRlLWJvcmRlci13aWR0aC0yKTtcbiAgICBvdXRsaW5lLWNvbG9yOiB2YXIoLS10aWRlLXN1cmZhY2UtYm9yZGVyLWhpZ2gpO1xuICB9XG5cbiAgLnRpZGUtaW5wdXQtYm9yZGVyIHtcbiAgICAtLXRpZGUtaW5wdXQtb3V0bGluZS13aWR0aDogdmFyKC0tdGlkZS1ib3JkZXItd2lkdGgtMSk7XG4gICAgb3V0bGluZTogdmFyKC0tdGlkZS1pbnB1dC1vdXRsaW5lLXdpZHRoKSBzb2xpZCB2YXIoLS10aWRlLWJvcmRlcik7XG4gICAgb3V0bGluZS1vZmZzZXQ6IGNhbGModmFyKC0tdGlkZS1pbnB1dC1vdXRsaW5lLXdpZHRoKSAqIC0xKTtcbiAgfVxuXG4gIC50aWRlLWlucHV0LXNlbGVjdC5lcnJvciB7XG4gICAgY29sb3I6IHZhcigtLXRpZGUtZXJyb3Itb24tc3VyZmFjZSk7XG4gIH1cblxuICAudGlkZS1pbnB1dC1zZWxlY3QuZXJyb3Igb3B0aW9uIHtcbiAgICBjb2xvcjogdmFyKC0tdGlkZS1vbi1zdXJmYWNlKTtcbiAgfVxuXG4gIHNlbGVjdCB7XG4gICAgcGFkZGluZy10b3A6IDI3cHg7XG4gIH1cbjwvc3R5bGU+XG4iLCJleHBvcnQgY29uc3QgVEVYVF9JTlBVVF9UWVBFID0ge1xuICBEQVRFOiAnZGF0ZScsXG4gIERBVEVUSU1FX0xPQ0FMOiAnZGF0ZXRpbWUtbG9jYWwnLFxuICBFTUFJTDogJ2VtYWlsJyxcbiAgTU9OVEg6ICdtb250aCcsXG4gIE5VTUJFUjogJ251bWJlcicsXG4gIFBBU1NXT1JEOiAncGFzc3dvcmQnLFxuICBTRUFSQ0g6ICdzZWFyY2gnLFxuICBURUw6ICd0ZWwnLFxuICBURVhUOiAndGV4dCcsXG4gIFRJTUU6ICd0aW1lJyxcbiAgVVJMOiAndXJsJyxcbiAgV0VFSzogJ3dlZWsnLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgVGV4dElucHV0VHlwZSA9ICh0eXBlb2YgVEVYVF9JTlBVVF9UWVBFKVtrZXlvZiB0eXBlb2YgVEVYVF9JTlBVVF9UWVBFXTtcbiIsIjxzY3JpcHQgbGFuZz1cInRzXCIgc2V0dXA+XG4gIGltcG9ydCB7IGNvbXB1dGVkLCBnZXRDdXJyZW50SW5zdGFuY2UsIHJlZiwgd2F0Y2ggfSBmcm9tICd2dWUnO1xuXG4gIGltcG9ydCB0eXBlIHsgRm9ybVZhbHVlVHJhbnNmb3JtZXIgfSBmcm9tICdAL3R5cGVzL0Zvcm0nO1xuICBpbXBvcnQgdHlwZSB7IEljb24gfSBmcm9tICdAL3R5cGVzL0ljb24nO1xuICBpbXBvcnQgdHlwZSB7IFRleHRJbnB1dFR5cGUgfSBmcm9tICdAL3R5cGVzL1RleHRJbnB1dCc7XG4gIGltcG9ydCB0eXBlIHsgVmFsaWRhdGlvbkVycm9yLCBWYWxpZGF0b3IgfSBmcm9tICdAL3R5cGVzL1ZhbGlkYXRpb24nO1xuXG4gIGltcG9ydCBUaWRlSWNvbiBmcm9tICdAL2NvbXBvbmVudHMvVGlkZUljb24udnVlJztcbiAgaW1wb3J0IHsgQ1NTIH0gZnJvbSAnQC90eXBlcy9TdHlsZXMnO1xuICBpbXBvcnQgeyBJQ09OIH0gZnJvbSAnQC90eXBlcy9JY29uJztcbiAgaW1wb3J0IHsgU0laRSB9IGZyb20gJ0AvdHlwZXMvU2l6ZSc7XG4gIGltcG9ydCB7IFRFWFRfSU5QVVRfVFlQRSB9IGZyb20gJ0AvdHlwZXMvVGV4dElucHV0JztcbiAgaW1wb3J0IHsgZ2V0RXJyb3JNZXNzYWdlLCBnZXRGaWVsZEhhc0Vycm9yLCBoYW5kbGVGaWVsZFZhbGlkYXRpb24gfSBmcm9tICdAL3V0aWxpdGllcy92YWxpZGF0aW9uJztcblxuICB0eXBlIFByb3BzID0ge1xuICAgIGF1dG9jb21wbGV0ZT86IGJvb2xlYW47XG4gICAgZGF0YVRyYWNrPzogc3RyaW5nO1xuICAgIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgICBlcnJvcj86IFZhbGlkYXRpb25FcnJvcjtcbiAgICBoYXNDbGVhcj86IGJvb2xlYW47XG4gICAgaWNvbkxlYWRpbmc/OiBJY29uO1xuICAgIGlucHV0SWQ/OiBzdHJpbmc7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgICBtYXhsZW5ndGg/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgbWlubGVuZ3RoPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBwcmVmaXg/OiBzdHJpbmc7XG4gICAgcmVxdWlyZWQ/OiBib29sZWFuO1xuICAgIHN1ZmZpeD86IHN0cmluZztcbiAgICBzdXBwb3J0aW5nVGV4dD86IHN0cmluZztcbiAgICB0cmFuc2Zvcm1WYWx1ZT86IEZvcm1WYWx1ZVRyYW5zZm9ybWVyO1xuICAgIHR5cGU/OiBUZXh0SW5wdXRUeXBlO1xuICAgIHZhbGlkYXRvcnM/OiBWYWxpZGF0b3JbXTtcbiAgICB2YWx1ZT86IHN0cmluZztcbiAgfTtcblxuICBjb25zdCBwcm9wcyA9IHdpdGhEZWZhdWx0cyhkZWZpbmVQcm9wczxQcm9wcz4oKSwge1xuICAgIGF1dG9jb21wbGV0ZTogZmFsc2UsXG4gICAgZGF0YVRyYWNrOiAnJyxcbiAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgZXJyb3I6IGZhbHNlLFxuICAgIGhhc0NsZWFyOiBmYWxzZSxcbiAgICBpY29uTGVhZGluZzogdW5kZWZpbmVkLFxuICAgIGlucHV0SWQ6IHVuZGVmaW5lZCxcbiAgICBsYWJlbDogdW5kZWZpbmVkLFxuICAgIG1heGxlbmd0aDogdW5kZWZpbmVkLFxuICAgIG1pbmxlbmd0aDogdW5kZWZpbmVkLFxuICAgIHByZWZpeDogdW5kZWZpbmVkLFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBzdWZmaXg6IHVuZGVmaW5lZCxcbiAgICBzdXBwb3J0aW5nVGV4dDogdW5kZWZpbmVkLFxuICAgIHRyYW5zZm9ybVZhbHVlOiB1bmRlZmluZWQsXG4gICAgdHlwZTogVEVYVF9JTlBVVF9UWVBFLlRFWFQsXG4gICAgdmFsaWRhdG9yczogdW5kZWZpbmVkLFxuICAgIHZhbHVlOiAnJyxcbiAgfSk7XG5cbiAgY29uc3QgZXJyb3IgPSByZWYocHJvcHMuZXJyb3IpO1xuICBjb25zdCBoYXNGb2N1cyA9IHJlZihmYWxzZSk7XG4gIGNvbnN0IGlucHV0ID0gcmVmPEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgY29uc3Qgc2hvd1Bhc3N3b3JkID0gcmVmKGZhbHNlKTtcbiAgY29uc3QgdmFsdWUgPSByZWYocHJvcHMudmFsdWUpO1xuXG4gIGNvbnN0IGVycm9yTWVzc2FnZSA9IGNvbXB1dGVkKCgpID0+IGdldEVycm9yTWVzc2FnZShwcm9wcy5lcnJvciwgZXJyb3IudmFsdWUpKTtcbiAgY29uc3QgZm9ybWF0dGVkTGFiZWwgPSBjb21wdXRlZCgoKSA9PiAocHJvcHMucmVxdWlyZWQgJiYgcHJvcHMubGFiZWwgPyBgJHtwcm9wcy5sYWJlbH0gKmAgOiBwcm9wcy5sYWJlbCkpO1xuICBjb25zdCBoYXNDbGVhciA9IGNvbXB1dGVkKCgpID0+IHByb3BzLmhhc0NsZWFyICYmIHZhbHVlLnZhbHVlKTtcbiAgY29uc3QgaGFzRXJyb3IgPSBjb21wdXRlZCgoKSA9PiAocHJvcHMucmVxdWlyZWQgJiYgIXZhbHVlLnZhbHVlKSB8fCBnZXRGaWVsZEhhc0Vycm9yKGVycm9yLnZhbHVlLCBwcm9wcy5lcnJvcikpO1xuICBjb25zdCBoYXNNaW5pbGFiZWwgPSBjb21wdXRlZCgoKSA9PiBoYXNGb2N1cy52YWx1ZSB8fCAhaXNFbXB0eS52YWx1ZSk7XG4gIGNvbnN0IGlzRW1wdHkgPSBjb21wdXRlZCgoKSA9PiB2YWx1ZS52YWx1ZSA9PT0gJycpO1xuICBjb25zdCB0eXBlID0gY29tcHV0ZWQoKCkgPT5cbiAgICBwcm9wcy50eXBlID09PSBURVhUX0lOUFVUX1RZUEUuUEFTU1dPUkQgJiYgc2hvd1Bhc3N3b3JkLnZhbHVlID09PSB0cnVlID8gVEVYVF9JTlBVVF9UWVBFLlRFWFQgOiBwcm9wcy50eXBlXG4gICk7XG4gIGNvbnN0IHVuaXF1ZUlkID0gY29tcHV0ZWQoKCkgPT4gKHByb3BzLmlucHV0SWQgPyBwcm9wcy5pbnB1dElkIDogYHRleHQtaW5wdXQtJHtnZXRDdXJyZW50SW5zdGFuY2UoKT8udWlkIHx8ICcnfWApKTtcblxuICBjb25zdCBoYW5kbGVDbGVhciA9ICgpID0+IHtcbiAgICB2YWx1ZS52YWx1ZSA9ICcnO1xuICAgIGlucHV0LnZhbHVlPy5mb2N1cygpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUZvY3VzID0gKCkgPT4ge1xuICAgIGhhc0ZvY3VzLnZhbHVlID0gdHJ1ZTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVGb2N1c091dCA9ICgpID0+IHtcbiAgICBoYXNGb2N1cy52YWx1ZSA9IGZhbHNlO1xuICAgIGhhbmRsZVZhbGlkYXRpb24oKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVJbnB1dCA9ICgpID0+IHtcbiAgICBpZiAocHJvcHMudHJhbnNmb3JtVmFsdWUpIHtcbiAgICAgIGNvbnN0IGRpZ2l0cyA9IHZhbHVlLnZhbHVlLm1hdGNoKC9cXGQvZyk/LmpvaW4oJycpIHx8IHVuZGVmaW5lZDtcblxuICAgICAgdmFsdWUudmFsdWUgPSBkaWdpdHMgPyBwcm9wcy50cmFuc2Zvcm1WYWx1ZShkaWdpdHMpIDogJyc7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVZhbGlkYXRpb24gPSAoKSA9PiB7XG4gICAgaGFuZGxlRmllbGRWYWxpZGF0aW9uKHtcbiAgICAgIGVycm9yLFxuICAgICAgZXJyb3JGcm9tUHJvcHM6IHByb3BzLmVycm9yLFxuICAgICAgbWF4bGVuZ3RoOiBwcm9wcy5tYXhsZW5ndGgsXG4gICAgICBtaW5sZW5ndGg6IHByb3BzLm1pbmxlbmd0aCxcbiAgICAgIHJlcXVpcmVkOiBwcm9wcy5yZXF1aXJlZCxcbiAgICAgIHZhbGlkYXRvcnM6IHByb3BzLnZhbGlkYXRvcnMsXG4gICAgICB2YWx1ZSxcbiAgICB9KTtcbiAgfTtcblxuICBjb25zdCB1cGRhdGVWYWx1ZSA9IChuZXdWYWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgdmFsdWUudmFsdWUgPSBuZXdWYWx1ZTtcbiAgfTtcblxuICB3YXRjaChcbiAgICAoKSA9PiBwcm9wcy52YWx1ZSxcbiAgICAobmV3VmFsdWUsIG9sZFZhbHVlKSA9PiB7XG4gICAgICBpZiAobmV3VmFsdWUgIT09IG9sZFZhbHVlIHx8IG5ld1ZhbHVlICE9PSB2YWx1ZS52YWx1ZSkge1xuICAgICAgICB2YWx1ZS52YWx1ZSA9IG5ld1ZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgKTtcblxuICBkZWZpbmVFeHBvc2UoeyBlcnJvciwgdXBkYXRlVmFsdWUsIHZhbHVlIH0pO1xuPC9zY3JpcHQ+XG5cbjx0ZW1wbGF0ZT5cbiAgPGRpdlxuICAgIDpjbGFzcz1cIltcbiAgICAgICd0aWRlLWlucHV0LXRleHQnLFxuICAgICAgQ1NTLkRJU1BMQVkuRkxFWCxcbiAgICAgIENTUy5GTEVYLkRJUkVDVElPTi5DT0xVTU4sXG4gICAgICBDU1MuR0FQLlFVQVJURVIsXG4gICAgICBkaXNhYmxlZCAmJiAnZGlzYWJsZWQnLFxuICAgICAgaGFzRXJyb3IgJiYgJ2Vycm9yJyxcbiAgICBdXCJcbiAgPlxuICAgIDxkaXZcbiAgICAgIDpjbGFzcz1cIltcbiAgICAgICAgJ3RpZGUtaW5wdXQtYm9yZGVyJyxcbiAgICAgICAgQ1NTLkRJU1BMQVkuRkxFWCxcbiAgICAgICAgQ1NTLkFYSVMyLkNFTlRFUixcbiAgICAgICAgQ1NTLkdBUC5IQUxGLFxuICAgICAgICBDU1MuUE9TSVRJT04uUkVMQVRJVkUsXG4gICAgICAgIENTUy5CT1JERVIuUkFESVVTLkhBTEYsXG4gICAgICAgIGhhc0NsZWFyID8gW0NTUy5QQURESU5HLlJJR0hULkhBTEYsIENTUy5QQURESU5HLkxFRlQuT05FXSA6IFtDU1MuUEFERElORy5YLk9ORV0sXG4gICAgICAgIENTUy5QQURESU5HLlkuSEFMRixcbiAgICAgICAgcHJvcHMuZGlzYWJsZWQgPyBDU1MuQ1VSU09SLk5PVF9BTExPV0VEIDogQ1NTLkNVUlNPUi5URVhULFxuICAgICAgXVwiXG4gICAgPlxuICAgICAgPFRpZGVJY29uXG4gICAgICAgIDppY29uPVwicHJvcHMuaWNvbkxlYWRpbmdcIlxuICAgICAgICA6c2l6ZT1cIlNJWkUuU01BTExcIlxuICAgICAgICB2LWlmPVwicHJvcHMuaWNvbkxlYWRpbmdcIlxuICAgICAgLz5cblxuICAgICAgPGRpdiA6Y2xhc3M9XCJbQ1NTLkRJU1BMQVkuRkxFWCwgQ1NTLkFYSVMyLkNFTlRFUiwgQ1NTLkdBUC5RVUFSVEVSLCBDU1MuV0lEVEguRlVMTF1cIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIDpjbGFzcz1cIlsndGlkZS1pbnB1dC10ZXh0LXByZWZpeCcsICFoYXNFcnJvciAmJiBDU1MuRk9OVC5DT0xPUi5TVVJGQUNFLlZBUklBTlQsIGhhc01pbmlsYWJlbCA/ICcnIDogJ29mZnNldCddXCJcbiAgICAgICAgICB2LWlmPVwicHJvcHMucHJlZml4XCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IHByb3BzLnByZWZpeCB9fVxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2XG4gICAgICAgICAgOmNsYXNzPVwiW0NTUy5ESVNQTEFZLkZMRVgsIENTUy5GTEVYLkRJUkVDVElPTi5DT0xVTU4sIENTUy5XSURUSC5GVUxMXVwiXG4gICAgICAgICAgQGNsaWNrLnByZXZlbnQ9XCJpbnB1dD8uZm9jdXMoKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgIDpjbGFzcz1cIltcbiAgICAgICAgICAgICAgaGFzTWluaWxhYmVsID8gWydtaW5pbGFiZWwnLCBDU1MuRk9OVC5TSVpFLlRXRUxWRV0gOiBDU1MuRk9OVC5TSVpFLlNJWFRFRU4sXG4gICAgICAgICAgICAgICFoYXNFcnJvciAmJiBDU1MuRk9OVC5DT0xPUi5TVVJGQUNFLlZBUklBTlQsXG4gICAgICAgICAgICAgIENTUy5GT05ULldFSUdIVC5GSVZFX0hVTkRSRUQsXG4gICAgICAgICAgICAgIENTUy5DVVJTT1IuVEVYVCxcbiAgICAgICAgICAgIF1cIlxuICAgICAgICAgICAgOmZvcj1cInVuaXF1ZUlkXCJcbiAgICAgICAgICAgIHYtaWY9XCJsYWJlbFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgZm9ybWF0dGVkTGFiZWwgfX1cbiAgICAgICAgICA8L2xhYmVsPlxuXG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICA6YXV0b2NvbXBsZXRlPVwiYXV0b2NvbXBsZXRlID8gJ29uJyA6ICdvZmYnXCJcbiAgICAgICAgICAgIDpjbGFzcz1cIltDU1MuV0lEVEguRlVMTCwgZGlzYWJsZWQgJiYgQ1NTLkNVUlNPUi5OT1RfQUxMT1dFRF1cIlxuICAgICAgICAgICAgOmRhdGEtdHJhY2s9XCJwcm9wcy5kYXRhVHJhY2tcIlxuICAgICAgICAgICAgOmRpc2FibGVkPVwicHJvcHMuZGlzYWJsZWRcIlxuICAgICAgICAgICAgOm1heGxlbmd0aD1cInByb3BzLm1heGxlbmd0aFwiXG4gICAgICAgICAgICA6bWlubGVuZ3RoPVwicHJvcHMubWlubGVuZ3RoXCJcbiAgICAgICAgICAgIDpuYW1lPVwicHJvcHMubmFtZVwiXG4gICAgICAgICAgICByZWY9XCJpbnB1dFwiXG4gICAgICAgICAgICA6cmVxdWlyZWQ9XCJwcm9wcy5yZXF1aXJlZFwiXG4gICAgICAgICAgICA6dHlwZT1cInR5cGVcIlxuICAgICAgICAgICAgQGNoYW5nZT1cImhhbmRsZVZhbGlkYXRpb25cIlxuICAgICAgICAgICAgQGZvY3VzPVwiaGFuZGxlRm9jdXNcIlxuICAgICAgICAgICAgQGZvY3Vzb3V0PVwiaGFuZGxlRm9jdXNPdXRcIlxuICAgICAgICAgICAgQGlucHV0PVwiaGFuZGxlSW5wdXRcIlxuICAgICAgICAgICAgOmlkPVwidW5pcXVlSWRcIlxuICAgICAgICAgICAgdi1tb2RlbD1cInZhbHVlXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2XG4gICAgICAgICAgOmNsYXNzPVwiWyd0aWRlLWlucHV0LXRleHQtc3VmZml4JywgIWhhc0Vycm9yICYmIENTUy5GT05ULkNPTE9SLlNVUkZBQ0UuVkFSSUFOVCwgaGFzTWluaWxhYmVsID8gJycgOiAnb2Zmc2V0J11cIlxuICAgICAgICAgIHYtaWY9XCJwcm9wcy5zdWZmaXhcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgcHJvcHMuc3VmZml4IH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxUaWRlSWNvblxuICAgICAgICA6Y2xhc3M9XCJbQ1NTLlBBRERJTkcuWS5IQUxGLCBDU1MuUEFERElORy5GVUxMLkhBTEYsIENTUy5DVVJTT1IuUE9JTlRFUl1cIlxuICAgICAgICA6aWNvbj1cIklDT04uQ0xPU0VcIlxuICAgICAgICA6c2l6ZT1cIlNJWkUuU01BTExcIlxuICAgICAgICBAY2xpY2s9XCJoYW5kbGVDbGVhclwiXG4gICAgICAgIHYtaWY9XCJoYXNDbGVhciAmJiBwcm9wcy50eXBlICE9PSBURVhUX0lOUFVUX1RZUEUuUEFTU1dPUkRcIlxuICAgICAgLz5cblxuICAgICAgPFRpZGVJY29uXG4gICAgICAgIDpjbGFzcz1cIltDU1MuUEFERElORy5ZLkhBTEYsIENTUy5QQURESU5HLkZVTEwuSEFMRiwgQ1NTLkNVUlNPUi5QT0lOVEVSXVwiXG4gICAgICAgIDppY29uPVwiSUNPTi5WSVNJQklMSVRZXCJcbiAgICAgICAgOnNpemU9XCJTSVpFLlNNQUxMXCJcbiAgICAgICAgQGNsaWNrPVwic2hvd1Bhc3N3b3JkID0gIXNob3dQYXNzd29yZFwiXG4gICAgICAgIHYtaWY9XCJwcm9wcy50eXBlID09PSBURVhUX0lOUFVUX1RZUEUuUEFTU1dPUkRcIlxuICAgICAgLz5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXZcbiAgICAgIDpjbGFzcz1cIltDU1MuRElTUExBWS5GTEVYLCBDU1MuQVhJUzIuQ0VOVEVSLCBDU1MuR0FQLlFVQVJURVIsIENTUy5NQVJHSU4uTEVGVC5PTkVdXCJcbiAgICAgIHYtaWY9XCJwcm9wcy5zdXBwb3J0aW5nVGV4dCB8fCBoYXNFcnJvclwiXG4gICAgPlxuICAgICAgPFRpZGVJY29uXG4gICAgICAgIDpjbGFzcz1cIltdXCJcbiAgICAgICAgOmljb249XCJJQ09OLkVSUk9SXCJcbiAgICAgICAgOnNpemU9XCJTSVpFLlNNQUxMXCJcbiAgICAgICAgdi1pZj1cImhhc0Vycm9yXCJcbiAgICAgIC8+XG5cbiAgICAgIDxkaXYgOmNsYXNzPVwiW0NTUy5GT05ULlNJWkUuVFdFTFZFLCBDU1MuRk9OVC5XRUlHSFQuRklWRV9IVU5EUkVEXVwiPlxuICAgICAgICB7eyBoYXNFcnJvciA/IGVycm9yTWVzc2FnZSA6IHByb3BzLnN1cHBvcnRpbmdUZXh0IH19XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L3RlbXBsYXRlPlxuXG48c3R5bGUgc2NvcGVkPlxuICBsYWJlbCB7XG4gICAgaGVpZ2h0OiAxLjE4NzVyZW07XG4gICAgdHJhbnNpdGlvbjogZm9udC1zaXplIHZhcigtLXRpZGUtYW5pbWF0ZSksIHRyYW5zZm9ybSB2YXIoLS10aWRlLWFuaW1hdGUpO1xuICB9XG5cbiAgbGFiZWw6bm90KC5taW5pbGFiZWwpLFxuICAudGlkZS1pbnB1dC10ZXh0LXByZWZpeDpub3QoLm9mZnNldCksXG4gIC50aWRlLWlucHV0LXRleHQtc3VmZml4Om5vdCgub2Zmc2V0KSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgY2FsYyg5IC8gMTYgKiAxcmVtKSk7XG4gIH1cblxuICAudGlkZS1pbnB1dC10ZXh0LXByZWZpeCxcbiAgLnRpZGUtaW5wdXQtdGV4dC1zdWZmaXgge1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSB2YXIoLS10aWRlLWFuaW1hdGUpO1xuICB9XG5cbiAgLnRpZGUtaW5wdXQtdGV4dC5kaXNhYmxlZCB7XG4gICAgb3BhY2l0eTogdmFyKC0tdGlkZS1kaXNhYmxlZCk7XG4gIH1cblxuICAudGlkZS1pbnB1dC10ZXh0LmVycm9yIHtcbiAgICBjb2xvcjogdmFyKC0tdGlkZS1lcnJvci1vbi1zdXJmYWNlKTtcbiAgfVxuXG4gIC50aWRlLWlucHV0LXRleHQuZXJyb3IgLnRpZGUtaW5wdXQtYm9yZGVyIHtcbiAgICBvdXRsaW5lLWNvbG9yOiB2YXIoLS10aWRlLWVycm9yLWJvcmRlcik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGlkZS1lcnJvci1zdXJmYWNlKTtcbiAgfVxuXG4gIC50aWRlLWlucHV0LXRleHQuZXJyb3I6Zm9jdXMtd2l0aGluIC50aWRlLWlucHV0LWJvcmRlciB7XG4gICAgb3V0bGluZS1jb2xvcjogdmFyKC0tdGlkZS1lcnJvci1ib3JkZXIpO1xuICB9XG5cbiAgLnRpZGUtaW5wdXQtdGV4dDpmb2N1cy13aXRoaW4gLnRpZGUtaW5wdXQtYm9yZGVyIHtcbiAgICAtLXRpZGUtaW5wdXQtb3V0bGluZS13aWR0aDogdmFyKC0tdGlkZS1ib3JkZXItd2lkdGgtMik7XG4gICAgb3V0bGluZS1jb2xvcjogdmFyKC0tdGlkZS1zdXJmYWNlLWJvcmRlci1oaWdoKTtcbiAgfVxuXG4gIC50aWRlLWlucHV0LXRleHQgaW5wdXQge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gIH1cblxuICAudGlkZS1pbnB1dC1ib3JkZXIge1xuICAgIC0tdGlkZS1pbnB1dC1vdXRsaW5lLXdpZHRoOiB2YXIoLS10aWRlLWJvcmRlci13aWR0aC0xKTtcbiAgICBvdXRsaW5lOiB2YXIoLS10aWRlLWlucHV0LW91dGxpbmUtd2lkdGgpIHNvbGlkIHZhcigtLXRpZGUtYm9yZGVyKTtcbiAgICBvdXRsaW5lLW9mZnNldDogY2FsYyh2YXIoLS10aWRlLWlucHV0LW91dGxpbmUtd2lkdGgpICogLTEpO1xuICAgIGNvbG9yOiB2YXIoLS10aWRlLXN1cmZhY2UtZm9yZWdyb3VuZCk7XG4gIH1cbjwvc3R5bGU+XG4iLCI8c2NyaXB0IGxhbmc9XCJ0c1wiIHNldHVwPlxuICBpbXBvcnQgeyBjb21wdXRlZCwgZ2V0Q3VycmVudEluc3RhbmNlLCByZWYsIHdhdGNoIH0gZnJvbSAndnVlJztcblxuICBpbXBvcnQgdHlwZSB7IFZhbGlkYXRpb25FcnJvciB9IGZyb20gJ0AvdHlwZXMvVmFsaWRhdGlvbic7XG5cbiAgaW1wb3J0IFRpZGVJY29uIGZyb20gJ0AvY29tcG9uZW50cy9UaWRlSWNvbi52dWUnO1xuICBpbXBvcnQgeyBDU1MgfSBmcm9tICdAL3R5cGVzL1N0eWxlcyc7XG4gIGltcG9ydCB7IElDT04gfSBmcm9tICdAL3R5cGVzL0ljb24nO1xuICBpbXBvcnQgeyBTSVpFIH0gZnJvbSAnQC90eXBlcy9TaXplJztcbiAgaW1wb3J0IHsgZ2V0RXJyb3JNZXNzYWdlLCBnZXRGaWVsZEhhc0Vycm9yLCBoYW5kbGVGaWVsZFZhbGlkYXRpb24gfSBmcm9tICdAL3V0aWxpdGllcy92YWxpZGF0aW9uJztcblxuICB0eXBlIFByb3BzID0ge1xuICAgIGRhdGFUcmFjaz86IHN0cmluZztcbiAgICBlcnJvcj86IFZhbGlkYXRpb25FcnJvcjtcbiAgICBpbnB1dElkPzogc3RyaW5nO1xuICAgIGxhYmVsPzogc3RyaW5nO1xuICAgIG1heGxlbmd0aD86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICBtaW5sZW5ndGg/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgbmFtZT86IHN0cmluZztcbiAgICByZXF1aXJlZD86IGJvb2xlYW47XG4gICAgcm93cz86IG51bWJlcjtcbiAgICBzdXBwb3J0aW5nVGV4dD86IHN0cmluZztcbiAgICB2YWx1ZT86IHN0cmluZztcbiAgfTtcblxuICBjb25zdCBwcm9wcyA9IHdpdGhEZWZhdWx0cyhkZWZpbmVQcm9wczxQcm9wcz4oKSwge1xuICAgIGRhdGFUcmFjazogJycsXG4gICAgZXJyb3I6IGZhbHNlLFxuICAgIGlucHV0SWQ6IHVuZGVmaW5lZCxcbiAgICBsYWJlbDogdW5kZWZpbmVkLFxuICAgIG1heGxlbmd0aDogdW5kZWZpbmVkLFxuICAgIG1pbmxlbmd0aDogdW5kZWZpbmVkLFxuICAgIG5hbWU6IHVuZGVmaW5lZCxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgcm93czogOCxcbiAgICBzdXBwb3J0aW5nVGV4dDogdW5kZWZpbmVkLFxuICAgIHZhbHVlOiAnJyxcbiAgfSk7XG5cbiAgY29uc3QgZXJyb3IgPSByZWYocHJvcHMuZXJyb3IpO1xuICBjb25zdCBoYXNGb2N1cyA9IHJlZihmYWxzZSk7XG4gIGNvbnN0IGlucHV0ID0gcmVmPEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgY29uc3QgdmFsdWUgPSByZWYocHJvcHMudmFsdWUpO1xuXG4gIGNvbnN0IGVycm9yTWVzc2FnZSA9IGNvbXB1dGVkKCgpID0+IGdldEVycm9yTWVzc2FnZShwcm9wcy5lcnJvciwgZXJyb3IudmFsdWUpKTtcbiAgY29uc3QgZm9ybWF0dGVkTGFiZWwgPSBjb21wdXRlZCgoKSA9PiAocHJvcHMucmVxdWlyZWQgPyBgJHtwcm9wcy5sYWJlbH0gKmAgOiBwcm9wcy5sYWJlbCkpO1xuICBjb25zdCBoYXNFcnJvciA9IGNvbXB1dGVkKCgpID0+IChwcm9wcy5yZXF1aXJlZCAmJiAhdmFsdWUudmFsdWUpIHx8IGdldEZpZWxkSGFzRXJyb3IoZXJyb3IudmFsdWUsIHByb3BzLmVycm9yKSk7XG4gIGNvbnN0IGhhc01pbmlsYWJlbCA9IGNvbXB1dGVkKCgpID0+IGhhc0ZvY3VzLnZhbHVlIHx8ICFpc0VtcHR5LnZhbHVlKTtcbiAgY29uc3QgaXNFbXB0eSA9IGNvbXB1dGVkKCgpID0+IHZhbHVlLnZhbHVlID09PSAnJyk7XG4gIGNvbnN0IHVuaXF1ZUlkID0gY29tcHV0ZWQoKCkgPT4gKHByb3BzLmlucHV0SWQgPyBwcm9wcy5pbnB1dElkIDogYHRleHQtaW5wdXQtJHtnZXRDdXJyZW50SW5zdGFuY2UoKT8udWlkIHx8ICcnfWApKTtcblxuICBjb25zdCBoYW5kbGVGb2N1cyA9ICgpID0+IHtcbiAgICBoYXNGb2N1cy52YWx1ZSA9IHRydWU7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlRm9jdXNPdXQgPSAoKSA9PiB7XG4gICAgaGFzRm9jdXMudmFsdWUgPSBmYWxzZTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVWYWxpZGF0aW9uID0gKCkgPT4ge1xuICAgIHJldHVybiBoYW5kbGVGaWVsZFZhbGlkYXRpb24oe1xuICAgICAgZXJyb3IsXG4gICAgICBlcnJvckZyb21Qcm9wczogcHJvcHMuZXJyb3IsXG4gICAgICBtYXhsZW5ndGg6IHByb3BzLm1heGxlbmd0aCxcbiAgICAgIG1pbmxlbmd0aDogcHJvcHMubWlubGVuZ3RoLFxuICAgICAgdmFsdWUsXG4gICAgfSk7XG4gIH07XG5cbiAgd2F0Y2goXG4gICAgKCkgPT4gcHJvcHMudmFsdWUsXG4gICAgKG5ld1ZhbHVlLCBvbGRWYWx1ZSkgPT4ge1xuICAgICAgaWYgKG5ld1ZhbHVlICE9PSBvbGRWYWx1ZSB8fCBuZXdWYWx1ZSAhPT0gdmFsdWUudmFsdWUpIHtcbiAgICAgICAgdmFsdWUudmFsdWUgPSBuZXdWYWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICk7XG5cbiAgZGVmaW5lRXhwb3NlKHsgZXJyb3IsIHZhbHVlIH0pO1xuPC9zY3JpcHQ+XG5cbjx0ZW1wbGF0ZT5cbiAgPGRpdlxuICAgIDpjbGFzcz1cIlsndGlkZS1pbnB1dC10ZXh0YXJlYScsIENTUy5ESVNQTEFZLkZMRVgsIENTUy5GTEVYLkRJUkVDVElPTi5DT0xVTU4sIENTUy5HQVAuUVVBUlRFUiwgaGFzRXJyb3IgJiYgJ2Vycm9yJ11cIlxuICA+XG4gICAgPGRpdlxuICAgICAgOmNsYXNzPVwiW1xuICAgICAgICAndGlkZS1pbnB1dC10ZXh0YXJlYS1maWVsZCcsXG4gICAgICAgIENTUy5HQVAuSEFMRixcbiAgICAgICAgQ1NTLlBPU0lUSU9OLlJFTEFUSVZFLFxuICAgICAgICBDU1MuQk9SREVSLlJBRElVUy5IQUxGLFxuICAgICAgICBDU1MuUEFERElORy5MRUZULk9ORSxcbiAgICAgICAgQ1NTLlBBRERJTkcuVE9QLkhBTEYsXG4gICAgICAgIENTUy5PVkVSRkxPVy5YWS5ISURERU4sXG4gICAgICBdXCJcbiAgICA+XG4gICAgICA8bGFiZWxcbiAgICAgICAgOmNsYXNzPVwiW1xuICAgICAgICAgIGhhc01pbmlsYWJlbCA/IFsnbWluaWxhYmVsJywgQ1NTLkZPTlQuU0laRS5UV0VMVkVdIDogQ1NTLkZPTlQuU0laRS5TSVhURUVOLFxuICAgICAgICAgICFoYXNFcnJvciAmJiBDU1MuRk9OVC5DT0xPUi5TVVJGQUNFLlZBUklBTlQsXG4gICAgICAgICAgQ1NTLkZPTlQuV0VJR0hULkZJVkVfSFVORFJFRCxcbiAgICAgICAgICBDU1MuQ1VSU09SLlRFWFQsXG4gICAgICAgIF1cIlxuICAgICAgICA6Zm9yPVwidW5pcXVlSWRcIlxuICAgICAgICByZWY9XCJsYWJlbFwiXG4gICAgICAgIHYtaWY9XCJsYWJlbFwiXG4gICAgICA+XG4gICAgICAgIHt7IGZvcm1hdHRlZExhYmVsIH19XG4gICAgICA8L2xhYmVsPlxuXG4gICAgICA8dGV4dGFyZWFcbiAgICAgICAgOmNsYXNzPVwiW0NTUy5XSURUSC5GVUxMXVwiXG4gICAgICAgIDpkYXRhLXRyYWNrPVwicHJvcHMuZGF0YVRyYWNrXCJcbiAgICAgICAgOm1heGxlbmd0aD1cInByb3BzLm1heGxlbmd0aFwiXG4gICAgICAgIDptaW5sZW5ndGg9XCJwcm9wcy5taW5sZW5ndGhcIlxuICAgICAgICA6bmFtZT1cInByb3BzLm5hbWVcIlxuICAgICAgICByZWY9XCJpbnB1dFwiXG4gICAgICAgIDpyZXF1aXJlZD1cInByb3BzLnJlcXVpcmVkXCJcbiAgICAgICAgOnJvd3M9XCJwcm9wcy5yb3dzXCJcbiAgICAgICAgQGNoYW5nZT1cImhhbmRsZVZhbGlkYXRpb25cIlxuICAgICAgICBAZm9jdXM9XCJoYW5kbGVGb2N1c1wiXG4gICAgICAgIEBmb2N1c291dD1cImhhbmRsZUZvY3VzT3V0XCJcbiAgICAgICAgOmlkPVwidW5pcXVlSWRcIlxuICAgICAgICB2LW1vZGVsPVwidmFsdWVcIlxuICAgICAgLz5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXZcbiAgICAgIDpjbGFzcz1cIltDU1MuRElTUExBWS5GTEVYLCBDU1MuQVhJUzIuQ0VOVEVSLCBDU1MuR0FQLlFVQVJURVIsIENTUy5NQVJHSU4uTEVGVC5PTkVdXCJcbiAgICAgIHYtaWY9XCJwcm9wcy5zdXBwb3J0aW5nVGV4dCB8fCBoYXNFcnJvclwiXG4gICAgPlxuICAgICAgPFRpZGVJY29uXG4gICAgICAgIDppY29uPVwiSUNPTi5FUlJPUlwiXG4gICAgICAgIDpzaXplPVwiU0laRS5TTUFMTFwiXG4gICAgICAgIHYtaWY9XCJoYXNFcnJvclwiXG4gICAgICAvPlxuXG4gICAgICA8ZGl2IDpjbGFzcz1cIltDU1MuRk9OVC5TSVpFLlRXRUxWRSwgQ1NTLkZPTlQuV0VJR0hULkZJVkVfSFVORFJFRF1cIj5cbiAgICAgICAge3sgaGFzRXJyb3IgPyBlcnJvck1lc3NhZ2UgOiBwcm9wcy5zdXBwb3J0aW5nVGV4dCB9fVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC90ZW1wbGF0ZT5cblxuPHN0eWxlIHNjb3BlZD5cbiAgdGV4dGFyZWEge1xuICAgIHJlc2l6ZTogdmVydGljYWw7XG4gIH1cbjwvc3R5bGU+XG5cbjxzdHlsZSBzY29wZWQ+XG4gIGxhYmVsIHtcbiAgICBoZWlnaHQ6IDEuMTg3NXJlbTtcbiAgICB0cmFuc2l0aW9uOiBmb250LXNpemUgdmFyKC0tdGlkZS1hbmltYXRlKSwgdHJhbnNmb3JtIHZhcigtLXRpZGUtYW5pbWF0ZSk7XG4gIH1cblxuICBsYWJlbDpub3QoLm1pbmlsYWJlbCksXG4gIC50aWRlLWlucHV0LXRleHRhcmVhLXByZWZpeDpub3QoLm9mZnNldCksXG4gIC50aWRlLWlucHV0LXRleHRhcmVhLXN1ZmZpeDpub3QoLm9mZnNldCkge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIGNhbGMoOSAvIDE2ICogMXJlbSkpO1xuICB9XG5cbiAgLnRpZGUtaW5wdXQtdGV4dGFyZWEtcHJlZml4LFxuICAudGlkZS1pbnB1dC10ZXh0YXJlYS1zdWZmaXgge1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSB2YXIoLS10aWRlLWFuaW1hdGUpO1xuICB9XG5cbiAgLnRpZGUtaW5wdXQtdGV4dGFyZWEuZXJyb3Ige1xuICAgIGNvbG9yOiB2YXIoLS10aWRlLWVycm9yLW9uLXN1cmZhY2UpO1xuICB9XG5cbiAgLnRpZGUtaW5wdXQtdGV4dGFyZWEuZXJyb3IgLnRpZGUtaW5wdXQtdGV4dGFyZWEtZmllbGQge1xuICAgIG91dGxpbmUtY29sb3I6IHZhcigtLXRpZGUtZXJyb3ItYm9yZGVyKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10aWRlLWVycm9yLXN1cmZhY2UpO1xuICB9XG5cbiAgLnRpZGUtaW5wdXQtdGV4dGFyZWEuZXJyb3I6Zm9jdXMtd2l0aGluIC50aWRlLWlucHV0LXRleHRhcmVhLWZpZWxkIHtcbiAgICBvdXRsaW5lLWNvbG9yOiB2YXIoLS10aWRlLWVycm9yLWJvcmRlcik7XG4gIH1cblxuICAudGlkZS1pbnB1dC10ZXh0YXJlYTpmb2N1cy13aXRoaW4gLnRpZGUtaW5wdXQtdGV4dGFyZWEtZmllbGQge1xuICAgIC0tdGlkZS1pbnB1dC1vdXRsaW5lLXdpZHRoOiB2YXIoLS10aWRlLWJvcmRlci13aWR0aC0yKTtcbiAgICBvdXRsaW5lLWNvbG9yOiB2YXIoLS10aWRlLXN1cmZhY2UtYm9yZGVyLWhpZ2gpO1xuICB9XG5cbiAgLnRpZGUtaW5wdXQtdGV4dGFyZWEgdGV4dGFyZWEge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gIH1cblxuICAudGlkZS1pbnB1dC10ZXh0YXJlYS1maWVsZCB7XG4gICAgLS10aWRlLWlucHV0LW91dGxpbmUtd2lkdGg6IHZhcigtLXRpZGUtYm9yZGVyLXdpZHRoLTEpO1xuICAgIG91dGxpbmU6IHZhcigtLXRpZGUtaW5wdXQtb3V0bGluZS13aWR0aCkgc29saWQgdmFyKC0tdGlkZS1ib3JkZXIpO1xuICAgIG91dGxpbmUtb2Zmc2V0OiBjYWxjKHZhcigtLXRpZGUtaW5wdXQtb3V0bGluZS13aWR0aCkgKiAtMSk7XG4gICAgY29sb3I6IHZhcigtLXRpZGUtc3VyZmFjZS1mb3JlZ3JvdW5kKTtcbiAgfVxuPC9zdHlsZT5cbiIsIjxzY3JpcHQgbGFuZz1cInRzXCIgc2V0dXA+XG4gIGltcG9ydCB7IGNvbXB1dGVkIH0gZnJvbSAndnVlJztcblxuICBpbXBvcnQgdHlwZSB7IEVsZW1lbnQgfSBmcm9tICdAL3R5cGVzL0VsZW1lbnQnO1xuICBpbXBvcnQgdHlwZSB7IEljb24gfSBmcm9tICdAL3R5cGVzL0ljb24nO1xuXG4gIGltcG9ydCBUaWRlSWNvbiBmcm9tICdAL2NvbXBvbmVudHMvVGlkZUljb24udnVlJztcbiAgaW1wb3J0IHsgQ1NTIH0gZnJvbSAnQC90eXBlcy9TdHlsZXMnO1xuICBpbXBvcnQgeyBFTEVNRU5UIH0gZnJvbSAnQC90eXBlcy9FbGVtZW50JztcbiAgaW1wb3J0IHsgVEFSR0VUIH0gZnJvbSAnQC90eXBlcy9UYXJnZXQnO1xuXG4gIHR5cGUgUHJvcHMgPSB7XG4gICAgZWxlbWVudD86IEVsZW1lbnQ7XG4gICAgaHJlZj86IHN0cmluZztcbiAgICBpY29uTGVhZGluZz86IEljb247XG4gICAgaWNvblRyYWlsaW5nPzogSWNvbjtcbiAgICBpc05ld1RhYj86IGJvb2xlYW47XG4gICAgbGFiZWw6IHN0cmluZztcbiAgfTtcblxuICBjb25zdCBwcm9wcyA9IHdpdGhEZWZhdWx0cyhkZWZpbmVQcm9wczxQcm9wcz4oKSwge1xuICAgIGVsZW1lbnQ6IEVMRU1FTlQuTElOSyxcbiAgICBocmVmOiB1bmRlZmluZWQsXG4gICAgaWNvbkxlYWRpbmc6IHVuZGVmaW5lZCxcbiAgICBpY29uVHJhaWxpbmc6IHVuZGVmaW5lZCxcbiAgICBpc05ld1RhYjogZmFsc2UsXG4gICAgbGFiZWw6IHVuZGVmaW5lZCxcbiAgfSk7XG5cbiAgY29uc3QgaGFzSWNvbiA9IGNvbXB1dGVkKCgpID0+IHByb3BzLmljb25MZWFkaW5nIHx8IHByb3BzLmljb25UcmFpbGluZyk7XG48L3NjcmlwdD5cblxuPHRlbXBsYXRlPlxuICA8Y29tcG9uZW50XG4gICAgOmNsYXNzPVwiW1xuICAgICAgcHJvcHMuZWxlbWVudCA9PT0gRUxFTUVOVC5MSU5LID8gJ3RpZGUtYnV0dG9uLWFzLWxpbmsnIDogJ3RpZGUtbGluaycsXG4gICAgICBoYXNJY29uXG4gICAgICAgID8gW0NTUy5ESVNQTEFZLklOTElORV9GTEVYLCBDU1MuQVhJUzIuQ0VOVEVSLCBDU1MuR0FQLkhBTEZdXG4gICAgICAgIDogW0NTUy5GT05ULldFSUdIVC5TRVZFTl9IVU5EUkVELCBDU1MuVU5ERVJMSU5FLk9OXSxcbiAgICBdXCJcbiAgICA6aHJlZj1cInByb3BzLmhyZWZcIlxuICAgIDp0YXJnZXQ9XCJwcm9wcy5pc05ld1RhYiA/IFRBUkdFVC5CTEFOSyA6IFRBUkdFVC5TRUxGXCJcbiAgICA6aXM9XCJwcm9wcy5lbGVtZW50ID09PSBFTEVNRU5ULkxJTksgPyBFTEVNRU5ULkxJTksgOiBFTEVNRU5ULkJVVFRPTlwiXG4gID5cbiAgICA8VGlkZUljb25cbiAgICAgIDppY29uPVwicHJvcHMuaWNvbkxlYWRpbmdcIlxuICAgICAgdi1pZj1cInByb3BzLmljb25MZWFkaW5nXCJcbiAgICAvPlxuXG4gICAgPGRpdlxuICAgICAgOmNsYXNzPVwiW0NTUy5GT05ULldFSUdIVC5TRVZFTl9IVU5EUkVELCBDU1MuVU5ERVJMSU5FLk9OXVwiXG4gICAgICB2LWlmPVwiaGFzSWNvblwiXG4gICAgPlxuICAgICAge3sgcHJvcHMubGFiZWwgfX1cbiAgICA8L2Rpdj5cblxuICAgIDx0ZW1wbGF0ZSB2LWVsc2U+XG4gICAgICB7eyBwcm9wcy5sYWJlbCB9fVxuICAgIDwvdGVtcGxhdGU+XG5cbiAgICA8VGlkZUljb25cbiAgICAgIDppY29uPVwicHJvcHMuaWNvblRyYWlsaW5nXCJcbiAgICAgIHYtaWY9XCJwcm9wcy5pY29uVHJhaWxpbmdcIlxuICAgIC8+XG4gIDwvY29tcG9uZW50PlxuPC90ZW1wbGF0ZT5cbiIsIjxzY3JpcHQgbGFuZz1cInRzXCIgc2V0dXA+XG4gIGltcG9ydCB7IG9uTW91bnRlZCwgcmVmLCB3YXRjaCB9IGZyb20gJ3Z1ZSc7XG5cbiAgaW1wb3J0IFRpZGVJY29uIGZyb20gJ0AvY29tcG9uZW50cy9UaWRlSWNvbi52dWUnO1xuICBpbXBvcnQgeyBDU1MgfSBmcm9tICdAL3R5cGVzL1N0eWxlcyc7XG4gIGltcG9ydCB7IElDT04gfSBmcm9tICdAL3R5cGVzL0ljb24nO1xuXG4gIHR5cGUgUHJvcHMgPSB7XG4gICAgaXNPcGVuOiBib29sZWFuO1xuICAgIHRpdGxlPzogc3RyaW5nO1xuICAgIHdpZHRoPzogc3RyaW5nO1xuICB9O1xuXG4gIGNvbnN0IHByb3BzID0gZGVmaW5lUHJvcHM8UHJvcHM+KCk7XG5cbiAgY29uc3QgZW1pdCA9IGRlZmluZUVtaXRzKFsnY2xvc2UnXSk7XG5cbiAgY29uc3QgaXNPcGVuID0gcmVmKHByb3BzLmlzT3Blbik7XG4gIGNvbnN0IHNhdmVkU2Nyb2xsUG9zaXRpb24gPSByZWY8bnVtYmVyIHwgbnVsbD4obnVsbCk7IC8vIFRPRE86IHJlcGxhY2UgYm9keSBzY3JvbGwgbG9jayB3aXRoIGdsb2JhbCBzdHJ1Y3R1cmU/XG5cbiAgY29uc3QgaGFuZGxlQ2xvc2UgPSAoZXZlbnQ6IEV2ZW50KSA9PiB7XG4gICAgaXNPcGVuLnZhbHVlID0gZmFsc2U7XG5cbiAgICB1cGRhdGVNb2RhbERpc3BsYXkoKTtcbiAgICBlbWl0KCdjbG9zZScsIGV2ZW50KTtcbiAgfTtcblxuICBjb25zdCB1cGRhdGVNb2RhbERpc3BsYXkgPSAoKSA9PiB7XG4gICAgaWYgKGlzT3Blbi52YWx1ZSkge1xuICAgICAgc2F2ZWRTY3JvbGxQb3NpdGlvbi52YWx1ZSA9IHdpbmRvdy5zY3JvbGxZO1xuICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9ICdoaWRkZW4nO1xuICAgICAgc2F2ZWRTY3JvbGxQb3NpdGlvbi52YWx1ZSAmJiB3aW5kb3cuc2Nyb2xsVG8oMCwgc2F2ZWRTY3JvbGxQb3NpdGlvbi52YWx1ZSk7XG5cbiAgICAgIGFkZE9wZW5MaXN0ZW5lcnMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9ICcnO1xuXG4gICAgICByZW1vdmVPcGVuTGlzdGVuZXJzKCk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUtleURvd24gPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICBoYW5kbGVDbG9zZShldmVudCk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGFkZE9wZW5MaXN0ZW5lcnMgPSAoKSA9PiB7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBoYW5kbGVLZXlEb3duKTtcbiAgfTtcblxuICBjb25zdCByZW1vdmVPcGVuTGlzdGVuZXJzID0gKCkgPT4ge1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgaGFuZGxlS2V5RG93bik7XG4gIH07XG5cbiAgb25Nb3VudGVkKCgpID0+IHtcbiAgICB1cGRhdGVNb2RhbERpc3BsYXkoKTtcbiAgfSk7XG5cbiAgd2F0Y2goXG4gICAgKCkgPT4gcHJvcHMuaXNPcGVuLFxuICAgIChuZXdWYWx1ZSkgPT4ge1xuICAgICAgaXNPcGVuLnZhbHVlID0gbmV3VmFsdWU7XG4gICAgICB1cGRhdGVNb2RhbERpc3BsYXkoKTtcbiAgICB9XG4gICk7XG48L3NjcmlwdD5cblxuPHRlbXBsYXRlPlxuICA8VGVsZXBvcnQgdG89XCJib2R5XCI+XG4gICAgPGRpdlxuICAgICAgOmNsYXNzPVwiW1xuICAgICAgICAndGlkZS1tb2RhbC13cmFwcGVyJyxcbiAgICAgICAgQ1NTLlBPU0lUSU9OLkFCU09MVVRFLFxuICAgICAgICBDU1MuRElTUExBWS5GTEVYLFxuICAgICAgICBDU1MuQVhJUzEuQ0VOVEVSLFxuICAgICAgICBDU1MuQVhJUzIuQ0VOVEVSLFxuICAgICAgICBDU1MuUE9TSVRJT05JTkcuVE9QLFxuICAgICAgICBDU1MuUE9TSVRJT05JTkcuTEVGVCxcbiAgICAgICAgQ1NTLldJRFRILkZVTEwsXG4gICAgICAgIENTUy5IRUlHSFQuRlVMTCxcbiAgICAgICAgcHJvcHMuaXNPcGVuID8gJ2FjdGl2ZScgOiBDU1MuUE9JTlRFUl9FVkVOVFMuT0ZGLFxuICAgICAgICBDU1MuT1ZFUkZMT1cuWS5ISURERU4sXG4gICAgICBdXCJcbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIDpjbGFzcz1cIlsndGlkZS1tb2RhbC1iZycsIENTUy5QT1NJVElPTi5BQlNPTFVURSwgQ1NTLldJRFRILkZVTEwsIENTUy5IRUlHSFQuRlVMTF1cIlxuICAgICAgICA6c3R5bGU9XCJ7ICctLXRpZGUtbW9kYWwtd2lkdGgnOiBwcm9wcy53aWR0aCB9XCJcbiAgICAgICAgQGNsaWNrLnNlbGY9XCJoYW5kbGVDbG9zZVwiXG4gICAgICAvPlxuXG4gICAgICA8ZGl2XG4gICAgICAgIDpjbGFzcz1cIltcbiAgICAgICAgICAndGlkZS1tb2RhbCcsXG4gICAgICAgICAgQ1NTLkJHLlNVUkZBQ0UuREVGQVVMVCxcbiAgICAgICAgICBDU1MuRk9OVC5DT0xPUi5TVVJGQUNFLkRFRkFVTFQsXG4gICAgICAgICAgQ1NTLlBPU0lUSU9OLkFCU09MVVRFLFxuICAgICAgICAgIENTUy5ESVNQTEFZLkZMRVgsXG4gICAgICAgICAgQ1NTLkZMRVguRElSRUNUSU9OLkNPTFVNTixcbiAgICAgICAgICBDU1MuQk9SREVSLlJBRElVUy5PTkUsXG4gICAgICAgICAgQ1NTLk9WRVJGTE9XLlhZLkhJRERFTixcbiAgICAgICAgICBDU1MuU0hBRE9XLkJPVFRPTSxcbiAgICAgICAgXVwiXG4gICAgICA+XG4gICAgICAgIDxoZWFkZXJcbiAgICAgICAgICA6Y2xhc3M9XCJbXG4gICAgICAgICAgICAndGlkZS1tb2RhbC1oZWFkZXInLFxuICAgICAgICAgICAgQ1NTLlBPU0lUSU9OLlJFTEFUSVZFLFxuICAgICAgICAgICAgQ1NTLkRJU1BMQVkuRkxFWCxcbiAgICAgICAgICAgIENTUy5BWElTMi5DRU5URVIsXG4gICAgICAgICAgICBDU1MuUEFERElORy5ZLk9ORSxcbiAgICAgICAgICAgIENTUy5QQURESU5HLlguVFdPLFxuICAgICAgICAgICAgQ1NTLkJPUkRFUi5CT1RUT00uT05FLFxuICAgICAgICAgICAgQ1NTLkJPUkRFUi5DT0xPUi5MT1csXG4gICAgICAgICAgXVwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICA6Y2xhc3M9XCJbQ1NTLkZMRVguR1JPVy5PTiwgQ1NTLkZPTlQuU0laRS5UV0VOVFksIENTUy5GT05ULldFSUdIVC5TRVZFTl9IVU5EUkVEXVwiXG4gICAgICAgICAgICB2LWlmPVwidGl0bGVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IHRpdGxlIH19XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICA6Y2xhc3M9XCJbQ1NTLlBPU0lUSU9OLkFCU09MVVRFLCBDU1MuUE9TSVRJT05JTkcuUklHSFQsIENTUy5NQVJHSU4uUklHSFQuVFdPXVwiXG4gICAgICAgICAgICBAY2xpY2s9XCJoYW5kbGVDbG9zZVwiXG4gICAgICAgICAgICB0aXRsZT1cIkNsb3NlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8VGlkZUljb24gOmljb249XCJJQ09OLkNMT1NFXCIgLz5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9oZWFkZXI+XG5cbiAgICAgICAgPGRpdiA6Y2xhc3M9XCJbJ3RpZGUtbW9kYWwtY29udGVudCcsIENTUy5QQURESU5HLkZVTEwuVFdPLCBDU1MuT1ZFUkZMT1cuWS5BVVRPXVwiPlxuICAgICAgICAgIDxzbG90IC8+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDx0ZW1wbGF0ZSB2LWlmPVwiJHNsb3RzLmZvb3RlclwiPlxuICAgICAgICAgIDxmb290ZXJcbiAgICAgICAgICAgIDpjbGFzcz1cIltcbiAgICAgICAgICAgICAgJ3RpZGUtYmctc3VyZmFjZScsXG4gICAgICAgICAgICAgIENTUy5QT1NJVElPTi5TVElDS1ksXG4gICAgICAgICAgICAgIENTUy5QT1NJVElPTklORy5MRUZULFxuICAgICAgICAgICAgICBDU1MuUE9TSVRJT05JTkcuQk9UVE9NLFxuICAgICAgICAgICAgICBDU1MuRElTUExBWS5GTEVYLFxuICAgICAgICAgICAgICBDU1MuQVhJUzEuRU5ELFxuICAgICAgICAgICAgICBDU1MuR0FQLk9ORSxcbiAgICAgICAgICAgICAgQ1NTLlBBRERJTkcuWC5UV08sXG4gICAgICAgICAgICAgIENTUy5QQURESU5HLlkuT05FLFxuICAgICAgICAgICAgICBDU1MuU0hBRE9XLlRPUCxcbiAgICAgICAgICAgIF1cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxzbG90IG5hbWU9XCJmb290ZXJcIiAvPlxuICAgICAgICAgIDwvZm9vdGVyPlxuICAgICAgICA8L3RlbXBsYXRlPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvVGVsZXBvcnQ+XG48L3RlbXBsYXRlPlxuXG48c3R5bGUgc2NvcGVkPlxuICAudGlkZS1tb2RhbCB7XG4gICAgd2lkdGg6IHZhcigtLXRpZGUtbW9kYWwtd2lkdGgpO1xuICAgIG1heC13aWR0aDogY2FsYygxMDAlIC0gMnJlbSk7XG4gICAgbWF4LWhlaWdodDogY2FsYygxMDAlIC0gMnJlbSk7XG4gICAgYm94LXNoYWRvdzogMHB4IDEwcHggMjVweCAwcHggcmdiYSgxOCwgNDMsIDU4LCAwLjIpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDB2aCk7XG4gICAgdHJhbnNpdGlvbjogdmFyKC0tdGlkZS1hbmltYXRlKTtcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm07XG4gIH1cblxuICAudGlkZS1tb2RhbC1iZyB7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDBweCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwKTtcbiAgICB0cmFuc2l0aW9uOiB2YXIoLS10aWRlLWFuaW1hdGUpO1xuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IGJhY2tkcm9wLWZpbHRlciwgYmFja2dyb3VuZC1jb2xvcjtcbiAgfVxuXG4gIC5hY3RpdmUgLnRpZGUtbW9kYWwge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgfVxuXG4gIC5hY3RpdmUgLnRpZGUtbW9kYWwtYmcge1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cig4cHgpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRpZGUtdHJhbnNwYXJlbnQtNDAwKTtcbiAgfVxuPC9zdHlsZT5cbiIsIjxzY3JpcHQgbGFuZz1cInRzXCIgc2V0dXA+XG4gIGltcG9ydCB7IGNvbXB1dGVkLCByZWYgfSBmcm9tICd2dWUnO1xuXG4gIGltcG9ydCBUaWRlQnV0dG9uSWNvbiBmcm9tICdAL2NvbXBvbmVudHMvVGlkZUJ1dHRvbkljb24udnVlJztcbiAgaW1wb3J0IFRpZGVCdXR0b25QYWdpbmF0aW9uIGZyb20gJ0AvY29tcG9uZW50cy9UaWRlQnV0dG9uUGFnaW5hdGlvbi52dWUnO1xuICBpbXBvcnQgeyBDU1MgfSBmcm9tICdAL3R5cGVzL1N0eWxlcyc7XG4gIGltcG9ydCB7IElDT04gfSBmcm9tICdAL3R5cGVzL0ljb24nO1xuICBpbXBvcnQgeyBQUklPUklUWSB9IGZyb20gJ0AvdHlwZXMvUHJpb3JpdHknO1xuXG4gIHR5cGUgUHJvcHMgPSB7XG4gICAgcGFnZUN1cnJlbnQ/OiBudW1iZXI7XG4gICAgcGFnZVRvdGFsPzogbnVtYmVyO1xuICB9O1xuXG4gIGNvbnN0IHByb3BzID0gd2l0aERlZmF1bHRzKGRlZmluZVByb3BzPFByb3BzPigpLCB7XG4gICAgcGFnZUN1cnJlbnQ6IDEsXG4gICAgcGFnZVRvdGFsOiAxLFxuICB9KTtcblxuICBjb25zdCBlbWl0ID0gZGVmaW5lRW1pdHMoWydjaGFuZ2UnXSk7XG5cbiAgY29uc3QgcGFnZUN1cnJlbnQgPSByZWYocHJvcHMucGFnZUN1cnJlbnQpO1xuXG4gIGNvbnN0IHBhZ2luYXRpb25CdXR0b25zID0gY29tcHV0ZWQoKCkgPT4gbmV3IEFycmF5KHByb3BzLnBhZ2VUb3RhbCkuZmlsbCgnJykubWFwKChlbXB0eSwgaW5kZXgpID0+IGluZGV4ICsgMSkpO1xuXG4gIGNvbnN0IGhhbmRsZUNsaWNrID0gKGV2ZW50OiBFdmVudCwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgIHBhZ2VDdXJyZW50LnZhbHVlID0gaW5kZXg7XG5cbiAgICBlbWl0KCdjaGFuZ2UnLCBldmVudCwgaW5kZXgpO1xuICB9O1xuPC9zY3JpcHQ+XG5cbjx0ZW1wbGF0ZT5cbiAgPHNlY3Rpb25cbiAgICA6Y2xhc3M9XCJbJ3RpZGUtcGFnaW5hdGlvbicsIENTUy5ESVNQTEFZLkZMRVgsIENTUy5BWElTMS5DRU5URVIsIENTUy5BWElTMi5DRU5URVIsIENTUy5HQVAuUVVBUlRFUiwgQ1NTLldJRFRILkZVTExdXCJcbiAgPlxuICAgIDxUaWRlQnV0dG9uSWNvblxuICAgICAgOmRpc2FibGVkPVwicGFnZUN1cnJlbnQgPT09IDFcIlxuICAgICAgOmljb249XCJJQ09OLkNIRVZST05fTEVGVFwiXG4gICAgICA6cHJpb3JpdHk9XCJQUklPUklUWS5RVUFURVJOQVJZXCJcbiAgICAgIEBjbGljaz1cIihldmVudDogRXZlbnQpID0+IGhhbmRsZUNsaWNrKGV2ZW50LCBwYWdlQ3VycmVudCAtIDEpXCJcbiAgICAvPlxuXG4gICAgPHVsIDpjbGFzcz1cIltDU1MuRElTUExBWS5GTEVYLCBDU1MuQVhJUzIuQ0VOVEVSLCBDU1MuR0FQLlFVQVJURVIsIENTUy5MSVNUX0JVTExFVFMuT0ZGXVwiPlxuICAgICAgPGxpXG4gICAgICAgIDprZXk9XCJwYWdpbmF0aW9uQnV0dG9uXCJcbiAgICAgICAgdi1mb3I9XCJwYWdpbmF0aW9uQnV0dG9uIGluIHBhZ2luYXRpb25CdXR0b25zXCJcbiAgICAgID5cbiAgICAgICAgPFRpZGVCdXR0b25QYWdpbmF0aW9uXG4gICAgICAgICAgOmRpc2FibGVkPVwicGFnZUN1cnJlbnQgPT09IHBhZ2luYXRpb25CdXR0b25cIlxuICAgICAgICAgIDpsYWJlbD1cInBhZ2luYXRpb25CdXR0b25cIlxuICAgICAgICAgIDpwcmlvcml0eT1cIlBSSU9SSVRZLlFVQVRFUk5BUllcIlxuICAgICAgICAgIEBjbGljaz1cIihldmVudDogRXZlbnQpID0+IGhhbmRsZUNsaWNrKGV2ZW50LCBwYWdpbmF0aW9uQnV0dG9uKVwiXG4gICAgICAgIC8+XG4gICAgICA8L2xpPlxuICAgIDwvdWw+XG5cbiAgICA8VGlkZUJ1dHRvbkljb25cbiAgICAgIDpkaXNhYmxlZD1cInBhZ2VDdXJyZW50ID09PSBwYWdpbmF0aW9uQnV0dG9uc1twYWdpbmF0aW9uQnV0dG9ucy5sZW5ndGggLSAxXVwiXG4gICAgICA6aWNvbj1cIklDT04uQ0hFVlJPTl9SSUdIVFwiXG4gICAgICA6cHJpb3JpdHk9XCJQUklPUklUWS5RVUFURVJOQVJZXCJcbiAgICAgIEBjbGljaz1cIihldmVudDogRXZlbnQpID0+IGhhbmRsZUNsaWNrKGV2ZW50LCBwYWdlQ3VycmVudCArIDEpXCJcbiAgICAvPlxuICA8L3NlY3Rpb24+XG48L3RlbXBsYXRlPlxuXG48c3R5bGUgc2NvcGVkPjwvc3R5bGU+XG4iLCI8c2NyaXB0IGxhbmc9XCJ0c1wiIHNldHVwPlxuICBpbXBvcnQgeyByZWYgfSBmcm9tICd2dWUnO1xuXG4gIGltcG9ydCB0eXBlIHsgVGFiIH0gZnJvbSAnQC90eXBlcy9UYWInO1xuXG4gIGltcG9ydCB7IENTUyB9IGZyb20gJ0AvdHlwZXMvU3R5bGVzJztcblxuICB0eXBlIFByb3BzID0ge1xuICAgIGFjdGl2ZVRhYkluaXRpYWw/OiBudW1iZXI7XG4gICAgdGFiczogVGFiW107XG4gIH07XG5cbiAgY29uc3QgcHJvcHMgPSB3aXRoRGVmYXVsdHMoZGVmaW5lUHJvcHM8UHJvcHM+KCksIHtcbiAgICBhY3RpdmVUYWJJbml0aWFsOiAwLFxuICB9KTtcblxuICBjb25zdCBlbWl0ID0gZGVmaW5lRW1pdHMoWydjaGFuZ2UnXSk7XG5cbiAgY29uc3QgYWN0aXZlVGFiID0gcmVmKHByb3BzLmFjdGl2ZVRhYkluaXRpYWwpO1xuXG4gIGNvbnN0IGhhbmRsZUNsaWNrID0gKGV2ZW50OiBFdmVudCwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgIGFjdGl2ZVRhYi52YWx1ZSA9IGluZGV4O1xuXG4gICAgZW1pdCgnY2hhbmdlJywgZXZlbnQsIGluZGV4KTtcbiAgfTtcbjwvc2NyaXB0PlxuXG48dGVtcGxhdGU+XG4gIDxkaXZcbiAgICA6Y2xhc3M9XCJbXG4gICAgICAndGlkZS10YWJzJyxcbiAgICAgIENTUy5CRy5TVVJGQUNFLlZBUklBTlQsXG4gICAgICBDU1MuRElTUExBWS5GTEVYLFxuICAgICAgQ1NTLkdBUC5RVUFSVEVSLFxuICAgICAgQ1NTLkJPUkRFUi5SQURJVVMuSEFMRixcbiAgICAgIENTUy5QQURESU5HLkZVTEwuUVVBUlRFUixcbiAgICAgIENTUy5PVkVSRkxPVy5YWS5ISURERU4sXG4gICAgICBDU1MuV0lEVEguRlVMTCxcbiAgICBdXCJcbiAgPlxuICAgIDxidXR0b25cbiAgICAgIDpjbGFzcz1cIltcbiAgICAgICAgJ3RpZGUtdGFicy10YWInLFxuICAgICAgICBpbmRleCA9PT0gYWN0aXZlVGFiXG4gICAgICAgICAgPyBbQ1NTLkJHLlNVUkZBQ0UuREVGQVVMVCwgQ1NTLkZPTlQuQ09MT1IuU1VSRkFDRS5ERUZBVUxULCBDU1MuU0hBRE9XLkJPVFRPTV1cbiAgICAgICAgICA6IFsnaW5hY3RpdmUnLCBDU1MuRk9OVC5DT0xPUi5TVVJGQUNFLlZBUklBTlRdLFxuICAgICAgICBDU1MuRkxFWC5HUk9XLk9OLFxuICAgICAgICBDU1MuQk9SREVSLlJBRElVUy5RVUFSVEVSLFxuICAgICAgICBDU1MuUEFERElORy5ZLlFVQVJURVIsXG4gICAgICAgIENTUy5XSURUSC5GVUxMLFxuICAgICAgICBDU1MuRk9OVC5XRUlHSFQuU0lYX0hVTkRSRUQsXG4gICAgICAgIENTUy5XSElURVNQQUNFX1dSQVAuT0ZGLFxuICAgICAgXVwiXG4gICAgICA6ZGF0YS10cmFjaz1cInRhYi5kYXRhVHJhY2sgfHwgdW5kZWZpbmVkXCJcbiAgICAgIDprZXk9XCJ0YWIubGFiZWxcIlxuICAgICAgQGNsaWNrPVwiKGV2ZW50OiBFdmVudCkgPT4gaGFuZGxlQ2xpY2soZXZlbnQsIGluZGV4KVwiXG4gICAgICB2LWZvcj1cIih0YWIsIGluZGV4KSBpbiBwcm9wcy50YWJzXCJcbiAgICA+XG4gICAgICA8c3BhbiA6Y2xhc3M9XCJbQ1NTLkZPTlQuV0VJR0hULlNJWF9IVU5EUkVEXVwiPlxuICAgICAgICB7eyB0YWIubGFiZWwgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxzcGFuXG4gICAgICAgIDpjbGFzcz1cIltDU1MuRk9OVC5XRUlHSFQuU0lYX0hVTkRSRURdXCJcbiAgICAgICAgdi1pZj1cInRhYi5jb3VudCAmJiB0YWIuY291bnQgPiAwXCJcbiAgICAgID5cbiAgICAgICAgKHt7IHRhYi5jb3VudCB9fSlcbiAgICAgIDwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L3RlbXBsYXRlPlxuXG48c3R5bGUgc2NvcGVkPlxuICAudGlkZS10YWJzIHtcbiAgICBtYXgtd2lkdGg6IDIzLjNyZW07XG4gIH1cblxuICAudGlkZS10YWJzLXRhYiB7XG4gICAgZmxleDogMTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLXRpZGUtYW5pbWF0ZSk7XG4gIH1cblxuICAuaW5hY3RpdmU6bm90KDpob3Zlcikge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXRpZGUtc3VyZmFjZS12YXJpYW50KTtcbiAgfVxuXG4gIC5pbmFjdGl2ZTpob3ZlciB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tdGlkZS1ib3JkZXIpO1xuICB9XG48L3N0eWxlPlxuIiwiPHNjcmlwdCBsYW5nPVwidHNcIiBzZXR1cD5cbiAgaW1wb3J0IHsgcmVmIH0gZnJvbSAndnVlJztcblxuICBpbXBvcnQgVGlkZUljb24gZnJvbSAnQC9jb21wb25lbnRzL1RpZGVJY29uLnZ1ZSc7XG4gIGltcG9ydCB7IENTUyB9IGZyb20gJ0AvdHlwZXMvU3R5bGVzJztcbiAgaW1wb3J0IHsgSUNPTiB9IGZyb20gJ0AvdHlwZXMvSWNvbic7XG4gIGltcG9ydCB7IFNJWkUgfSBmcm9tICdAL3R5cGVzL1NpemUnO1xuXG4gIGNvbnN0IHByb3BzID0gZGVmaW5lUHJvcHMoe1xuICAgIGRpc2FibGVkOiB7XG4gICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgfSxcbiAgICBpc0FjdGl2ZToge1xuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICB0eXBlOiBCb29sZWFuLFxuICAgIH0sXG4gIH0pO1xuXG4gIGNvbnN0IGVtaXQgPSBkZWZpbmVFbWl0cyhbJ2NoYW5nZSddKTtcblxuICBjb25zdCBpc0FjdGl2ZSA9IHJlZihwcm9wcy5pc0FjdGl2ZSk7XG5cbiAgY29uc3QgaGFuZGxlQ2xpY2sgPSAoZXZlbnQ6IEV2ZW50KSA9PiB7XG4gICAgaWYgKCFwcm9wcy5kaXNhYmxlZCkge1xuICAgICAgaXNBY3RpdmUudmFsdWUgPSAhaXNBY3RpdmUudmFsdWU7XG5cbiAgICAgIGVtaXQoJ2NoYW5nZScsIGV2ZW50LCBpc0FjdGl2ZS52YWx1ZSk7XG4gICAgfVxuICB9O1xuPC9zY3JpcHQ+XG5cbjx0ZW1wbGF0ZT5cbiAgPGJ1dHRvblxuICAgIDpjbGFzcz1cIltcbiAgICAgICd0aWRlLXRvZ2dsZScsXG4gICAgICBwcm9wcy5pc0FjdGl2ZSA/ICdhY3RpdmUnIDogJycsXG4gICAgICBDU1MuRElTUExBWS5GTEVYLFxuICAgICAgQ1NTLkFYSVMyLkNFTlRFUixcbiAgICAgIENTUy5CT1JERVIuRlVMTC5PTkUsXG4gICAgICBDU1MuQk9SREVSLlJBRElVUy5GVUxMLFxuICAgICAgcHJvcHMuaXNBY3RpdmUgPyAnJyA6IENTUy5CT1JERVIuQ09MT1IuREVGQVVMVCxcbiAgICAgIENTUy5PVkVSRkxPVy5YWS5ISURERU4sXG4gICAgICBwcm9wcy5pc0FjdGl2ZSA/IENTUy5CRy5TRUNPTkRBUlkgOiBDU1MuQkcuU1VSRkFDRS5ERUZBVUxULFxuICAgIF1cIlxuICAgIDpkaXNhYmxlZD1cInByb3BzLmRpc2FibGVkXCJcbiAgICBAY2xpY2s9XCJoYW5kbGVDbGlja1wiXG4gICAgYXJpYS1sYWJlbD1cIlRvZ2dsZVwiXG4gID5cbiAgICA8ZGl2XG4gICAgICA6Y2xhc3M9XCJbXG4gICAgICAgICd0aWRlLXRvZ2dsZS1pbmRpY2F0b3InLFxuICAgICAgICBDU1MuUE9TSVRJT04uUkVMQVRJVkUsXG4gICAgICAgIENTUy5ESVNQTEFZLkZMRVgsXG4gICAgICAgIENTUy5BWElTMS5DRU5URVIsXG4gICAgICAgIENTUy5BWElTMi5DRU5URVIsXG4gICAgICAgIENTUy5CT1JERVIuUkFESVVTLkZVTEwsXG4gICAgICAgIHByb3BzLmlzQWN0aXZlID8gQ1NTLkJHLlNVUkZBQ0UuREVGQVVMVCA6IENTUy5CRy5TRUNPTkRBUlksXG4gICAgICBdXCJcbiAgICA+XG4gICAgICA8VGlkZUljb25cbiAgICAgICAgOmljb249XCJJQ09OLkNIRUNLXCJcbiAgICAgICAgOnNpemU9XCJTSVpFLkxBUkdFXCJcbiAgICAgIC8+XG4gICAgPC9kaXY+XG4gIDwvYnV0dG9uPlxuPC90ZW1wbGF0ZT5cblxuPHN0eWxlIHNjb3BlZD5cbiAgLnRpZGUtdG9nZ2xlIHtcbiAgICB3aWR0aDogNjRweDtcbiAgICBoZWlnaHQ6IDMycHg7XG4gICAgdHJhbnNpdGlvbjogdmFyKC0tdGlkZS1hbmltYXRlKTtcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBiYWNrZ3JvdW5kLWNvbG9yO1xuICB9XG5cbiAgLnRpZGUtdG9nZ2xlOmRpc2FibGVkIHtcbiAgICBvcGFjaXR5OiAwLjMyO1xuICB9XG5cbiAgLnRpZGUtdG9nZ2xlLmFjdGl2ZSB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS10aWRlLXNlY29uZGFyeSk7XG4gIH1cblxuICAudGlkZS10b2dnbGUuYWN0aXZlIC50aWRlLXRvZ2dsZS1pbmRpY2F0b3Ige1xuICAgIGxlZnQ6IDM2cHg7XG4gIH1cblxuICAudGlkZS10b2dnbGUtaW5kaWNhdG9yIHtcbiAgICBsZWZ0OiA0cHg7XG4gICAgdHJhbnNpdGlvbjogdmFyKC0tdGlkZS1hbmltYXRlKTtcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBsZWZ0LCBib3JkZXItY29sb3IsIGJhY2tncm91bmQtY29sb3I7XG4gIH1cbjwvc3R5bGU+XG4iLCJpbXBvcnQgeyBmb3JtYXROdW1iZXIsIGZvcm1hdFBob25lLCBmb3JtYXRQcmljZSB9IGZyb20gJ0AvdXRpbGl0aWVzL2Zvcm1hdCc7XG5cbmV4cG9ydCB0eXBlIEZvcm1hdHRlZCA9IHtcbiAgW2tleTogc3RyaW5nXTogc3RyaW5nIHwgc3RyaW5nW10gfCBudW1iZXI7XG59O1xuXG5leHBvcnQgY29uc3QgRk9STUFUID0ge1xuICBOVU1CRVI6IGZvcm1hdE51bWJlcixcbiAgUEhPTkU6IGZvcm1hdFBob25lLFxuICBQUklDRTogZm9ybWF0UHJpY2UsXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgY29uc3QgRk9STUFUX1JFR0VYID0ge1xuICBhbHBoYTogL15bYS16QS1aXSskL2csXG4gIGFscGhhTnVtYmVyT3JFbXB0eTogL14kfF5bYS16MC05XSskL2ksXG4gIGFscGhhU3BhY2U6IC9eW2EtekEtWiBdKyQvZyxcbiAgZW1haWw6XG4gICAgL14oKFtePD4oKVtcXF1cXFxcLiw7Olxcc0BcIl0rKFxcLltePD4oKVtcXF1cXFxcLiw7Olxcc0BcIl0rKSopfChcIi4rXCIpKUAoKFxcW1swLTldezEsM31cXC5bMC05XXsxLDN9XFwuWzAtOV17MSwzfVxcLlswLTldezEsM31cXF0pfCgoW2EtekEtWlxcLTAtOV0rXFwuKStbYS16QS1aXXsyLH0pKSQvLFxuICBudW1iZXJGb3JtYXR0ZWQ6IC9eJHwoPz0uKV5cXCQ/KChbMS05XVswLTldezAsMn0oLFswLTldezN9KSopfDApPyhcXC5bMC05XXsxLDJ9KT8kLyxcbiAgcGhvbmU6IC9eKD86XFxkezN9LVxcZHszfS1cXGR7NH18XFxkezF9LVxcZHszfS1cXGR7M30tXFxkezR9KT8kLyxcbiAgcHJpY2U6IC8oPz0uKV5cXCQ/KChbMS05XVswLTldezAsMn0oLFswLTldezN9KSopfDApPyhcXC5bMC05XXsxLDJ9KT8kLyxcbn07XG4iLCIvKipcbiAqIFRoZXNlIHNsaWRlcyBhcmUgdXNlZCBpbiBib3RoIHRoZSBpbmxpbmUgZGV0YWlsIHBhZ2UgcGhvdG8gc2xpZGVyXG4gKiBhbmQgdGhlIGZ1bGxzY3JlZW4gbWVkaWEgZ2FsbGVyeS5cbiAqL1xuXG5leHBvcnQgY29uc3QgTUVESUFfU0xJREVfVFlQRVMgPSB7XG4gIElNQUdFOiB7XG4gICAgRkxPT1JQTEFOOiAnZmxvb3JwbGFuJyxcbiAgICBJTUFHRTogJ2ltYWdlJyxcbiAgfSxcbiAgVklERU86ICd2aWRlbycsXG4gIFZSOiAndnInLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgTWVkaWFTbGlkZVR5cGUgPVxuICB8ICh0eXBlb2YgTUVESUFfU0xJREVfVFlQRVMuSU1BR0UpW2tleW9mIHR5cGVvZiBNRURJQV9TTElERV9UWVBFUy5JTUFHRV1cbiAgfCB0eXBlb2YgTUVESUFfU0xJREVfVFlQRVMuVklERU9cbiAgfCB0eXBlb2YgTUVESUFfU0xJREVfVFlQRVMuVlI7XG5cbmV4cG9ydCB0eXBlIEltYWdlU2xpZGVUeXBlID0gKHR5cGVvZiBNRURJQV9TTElERV9UWVBFUy5JTUFHRSlba2V5b2YgdHlwZW9mIE1FRElBX1NMSURFX1RZUEVTLklNQUdFXTtcblxudHlwZSBJbWFnZVNsaWRlID0ge1xuICBpbWFnZVVybDogc3RyaW5nO1xuICB0eXBlOiBJbWFnZVNsaWRlVHlwZTtcbn07XG5cbmV4cG9ydCB0eXBlIFZpZGVvU2xpZGVUeXBlID0gdHlwZW9mIE1FRElBX1NMSURFX1RZUEVTLlZJREVPO1xuXG50eXBlIFZpZGVvU2xpZGUgPSB7XG4gIGltYWdlVXJsOiBzdHJpbmc7XG4gIHR5cGU6IFZpZGVvU2xpZGVUeXBlO1xuICB2aWRlb1VybDogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgVnJTbGlkZVR5cGUgPSB0eXBlb2YgTUVESUFfU0xJREVfVFlQRVMuVlI7XG5cbnR5cGUgVnJTbGlkZSA9IHtcbiAgaW1hZ2VVcmw6IHN0cmluZztcbiAgdHlwZTogVnJTbGlkZVR5cGU7XG4gIHZyVXJsOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBMaXN0aW5nTWVkaWEgPSBJbWFnZVNsaWRlIHwgVmlkZW9TbGlkZSB8IFZyU2xpZGU7XG4iLCJleHBvcnQgY29uc3QgUkVBTE0gPSB7XG4gIEFFUk86ICdhZXJvJyxcbiAgQVRWOiAnYXR2JyxcbiAgQk9BVE1BUlQ6ICdib2F0bWFydCcsXG4gIENZQ0xFOiAnY3ljbGUnLFxuICBFUVVJUDogJ2VxdWlwJyxcbiAgUFdDOiAncHdjJyxcbiAgUlY6ICdydicsXG4gIFNOT1c6ICdzbm93JyxcbiAgVFJVQ0s6ICd0cnVjaycsXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgdHlwZSBSZWFsbSA9ICh0eXBlb2YgUkVBTE0pW2tleW9mIHR5cGVvZiBSRUFMTV07XG4iLCJpbXBvcnQgeyBGT1JNQVRfUkVHRVggfSBmcm9tICdAL3R5cGVzL0Zvcm1hdHRlZCc7XG5pbXBvcnQgeyBjaGVja0Zvcm1hdCB9IGZyb20gJ0AvdXRpbGl0aWVzL3ZhbGlkYXRpb24nO1xuXG5leHBvcnQgY29uc3QgVkFMSURBVE9SID0ge1xuICBBTFBIQV9OVU1CRVJfRU1QVFk6IGNoZWNrRm9ybWF0KEZPUk1BVF9SRUdFWC5hbHBoYU51bWJlck9yRW1wdHkpLFxuICBBTFBIQV9TUEFDRTogY2hlY2tGb3JtYXQoRk9STUFUX1JFR0VYLmFscGhhU3BhY2UpLFxuICBFTUFJTDogY2hlY2tGb3JtYXQoRk9STUFUX1JFR0VYLmVtYWlsKSxcbiAgTlVNQkVSOiBjaGVja0Zvcm1hdChGT1JNQVRfUkVHRVgubnVtYmVyRm9ybWF0dGVkKSxcbiAgUEhPTkU6IGNoZWNrRm9ybWF0KEZPUk1BVF9SRUdFWC5waG9uZSksXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgdHlwZSBWYWxpZGF0aW9uRXJyb3IgPSBzdHJpbmcgfCBib29sZWFuO1xuZXhwb3J0IHR5cGUgVmFsaWRhdGlvblJlc3VsdCA9IHtcbiAgbWVzc2FnZTogc3RyaW5nO1xuICB2YWxpZDogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIFZhbGlkYXRpb25MZW5ndGggPSB7XG4gIG1heGxlbmd0aD86IG51bWJlcjtcbiAgbWlubGVuZ3RoPzogbnVtYmVyO1xuICByZXF1aXJlZD86IGJvb2xlYW47XG4gIHZhbHVlOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBWYWxpZGF0b3IgPSAodmFsdWU6IHN0cmluZykgPT4gVmFsaWRhdGlvblJlc3VsdDtcbiJdLCJuYW1lcyI6WyJCUkVBS1BPSU5UIiwiQ1NTIiwidXRpbGl0aWVzIiwiYnJlYWtwb2ludCIsInV0aWxpdHkiLCJPUklFTlRBVElPTiIsIlNJWkUiLCJmb3JtYXROdW1iZXIiLCJpbnB1dCIsIm91dHB1dCIsImRpZ2l0cyIsImZvcm1hdFBhc2NhbENhc2UiLCJ3b3JkIiwiZm9ybWF0UGhvbmUiLCJmb3JtYXRQcmljZSIsImlubmVyU1ZHIiwicmVmIiwid2F0Y2giLCJwcm9wcyIsImlkIiwibmFtZSIsImNvbXBvbmVudCIsImRlZmluZUFzeW5jQ29tcG9uZW50IiwiX192YXJpYWJsZUR5bmFtaWNJbXBvcnRSdW50aW1lSGVscGVyIiwibWFya1JhdyIsIklDT04iLCJpc0V4cGFuZGVkIiwiYWNjb3JkaW9uQm9keSIsInRvZ2dsZUlzRXhwYW5kZWQiLCJlbGVtZW50Iiwib25Nb3VudGVkIiwiRUxFTUVOVCIsIkVMRU1FTlRfVEVYVF9BU19JQ09OIiwiUFJJT1JJVFkiLCJUQVJHRVQiLCJBTEVSVCIsImljb24iLCJjb21wdXRlZCIsIkJBREdFIiwiQkFER0VfUFJFTUlVTSIsIkJBREdFX1RSVVNURUQiLCJnYXAiLCJjb250ZW50V2lkdGgiLCJmcmFtZVdpZHRoIiwiaGFzT3ZlcmZsb3ciLCJsYXN0UG9zaXRpb24iLCJjb250ZW50UmVmIiwiZnJhbWVSZWYiLCJzaG93QnV0dG9ucyIsImN1cnJlbnRTbGlkZSIsIm1lYXN1cmVDdXJyZW50U2xpZGUiLCJzbGlkZU9mZnNldHMiLCJzbGlkZSIsImNsb3Nlc3RTbGlkZU9mZnNldCIsInByZXYiLCJjdXJyIiwibWVhc3VyZURvbSIsImhhbmRsZVNjcm9sbCIsInNjcm9sbFRvU2xpZGUiLCJzbGlkZUluZGV4Iiwic2hvd05leHRTbGlkZSIsImNvbnRlbnRSaWdodEVkZ2UiLCJpc0ZpcnN0U2xpZGVXaXRoT2Zmc2V0IiwibmV4dFNsaWRlIiwic2hvd1ByZXZpb3VzU2xpZGUiLCJmaXJzdFNsaWRlIiwiaXNGaXJzdFNsaWRlIiwicHJldmlvdXNTbGlkZSIsIm9uVW5tb3VudGVkIiwib25VcGRhdGVkIiwiZW1pdCIsInRpZGVJbWFnZSIsImltYWdlRGVmYXVsdCIsInNldEltYWdlRnJvbURlZmF1bHQiLCJfX2V4cG9zZSIsImNoZWNrZWQiLCJpbmRldGVybWluYXRlIiwidW5pcXVlSWQiLCJfYSIsImdldEN1cnJlbnRJbnN0YW5jZSIsImhhbmRsZUNsaWNrIiwibmV3VmFsdWUiLCJvbGRWYWx1ZSIsImVycm9yTWVzc2FnZURlZmF1bHQiLCJub0Vycm9yIiwiY2hlY2tGb3JtYXQiLCJmb3JtYXQiLCJ2YWx1ZSIsInJlc3VsdCIsImdldEVycm9yTWVzc2FnZSIsImVycm9yRnJvbVByb3BzIiwiZXJyb3JGcm9tUmVmIiwiZ2V0RmllbGRIYXNFcnJvciIsImdldEZpZWxkTGVuZ3RoSXNWYWxpZCIsIm1heGxlbmd0aCIsIm1pbmxlbmd0aCIsInJlcXVpcmVkIiwiaXNFbXB0eUFuZFVucmVxdWlyZWQiLCJpc1Rvb0xvbmciLCJoYW5kbGVGaWVsZFZhbGlkYXRpb24iLCJlcnJvciIsInZhbGlkYXRvcnMiLCJ2YWxpZGF0aW9uIiwidmFsaWRhdGVQcm9wZXJ0eSIsImxlbmd0aFZhbGlkYXRpb24iLCJ2YWxpZGF0ZUxlbmd0aCIsInJlc3BvbnNlIiwidmFsaWRhdG9yIiwiaGFzRm9jdXMiLCJlcnJvck1lc3NhZ2UiLCJmb3JtYXR0ZWRMYWJlbCIsImhhc0Vycm9yIiwiaGFzTWluaWxhYmVsIiwiaXNFbXB0eSIsImV4cGFuZE9wdGlvbnMiLCJldmVudCIsImhhbmRsZUZvY3VzIiwiaGFuZGxlRm9jdXNPdXQiLCJURVhUX0lOUFVUX1RZUEUiLCJzaG93UGFzc3dvcmQiLCJoYXNDbGVhciIsInR5cGUiLCJoYW5kbGVDbGVhciIsImhhbmRsZVZhbGlkYXRpb24iLCJoYW5kbGVJbnB1dCIsInVwZGF0ZVZhbHVlIiwiaGFzSWNvbiIsImlzT3BlbiIsInNhdmVkU2Nyb2xsUG9zaXRpb24iLCJoYW5kbGVDbG9zZSIsInVwZGF0ZU1vZGFsRGlzcGxheSIsImFkZE9wZW5MaXN0ZW5lcnMiLCJyZW1vdmVPcGVuTGlzdGVuZXJzIiwiaGFuZGxlS2V5RG93biIsInBhZ2VDdXJyZW50IiwicGFnaW5hdGlvbkJ1dHRvbnMiLCJlbXB0eSIsImluZGV4IiwiYWN0aXZlVGFiIiwiaXNBY3RpdmUiLCJGT1JNQVQiLCJGT1JNQVRfUkVHRVgiLCJNRURJQV9TTElERV9UWVBFUyIsIlJFQUxNIiwiVkFMSURBVE9SIl0sIm1hcHBpbmdzIjoiO0FBRU8sTUFBTUEsS0FBYTtBQUFBLEVBQ3hCLElBQUk7QUFBQSxFQUNKLElBQUk7QUFBQSxFQUNKLElBQUk7QUFBQSxFQUNKLElBQUk7QUFDTixHQUlhQyxJQUFNO0FBQUEsRUFDakIsZ0JBQWdCLENBQUNDLEdBQXFCQyxNQUM3QkQsRUFBVSxJQUFJLENBQUNFLE1BQVksR0FBR0QsQ0FBVSxJQUFJQyxDQUFPLEVBQUU7QUFBQSxFQUU5RCxPQUFPO0FBQUEsSUFDTCxHQUFHO0FBQUEsTUFDRCxRQUFRO0FBQUEsTUFDUixNQUFNO0FBQUEsTUFDTixPQUFPO0FBQUEsSUFDVDtBQUFBLElBQ0EsR0FBRztBQUFBLE1BQ0QsUUFBUTtBQUFBLElBQ1Y7QUFBQSxFQUNGO0FBQUEsRUFDQSxPQUFPO0FBQUEsSUFDTCxRQUFRO0FBQUEsSUFDUixTQUFTO0FBQUEsSUFDVCxRQUFRO0FBQUEsSUFDUixLQUFLO0FBQUEsSUFDTCxPQUFPO0FBQUEsRUFDVDtBQUFBLEVBQ0EsT0FBTztBQUFBLElBQ0wsUUFBUTtBQUFBLElBQ1IsUUFBUTtBQUFBLElBQ1IsS0FBSztBQUFBLElBQ0wsT0FBTztBQUFBLEVBQ1Q7QUFBQSxFQUNBLElBQUk7QUFBQSxJQUNGLE1BQU07QUFBQSxJQUNOLE9BQU87QUFBQSxJQUNQLE1BQU07QUFBQSxJQUNOLFNBQVM7QUFBQSxJQUNULFdBQVc7QUFBQSxJQUNYLFNBQVM7QUFBQSxJQUNULFNBQVM7QUFBQSxNQUNQLFFBQVE7QUFBQSxNQUNSLGdCQUFn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S0FBSztBQUFBLElBQ0wsTUFBTTtBQUFBLEVBQ1I7QUFBQSxFQUNBLE1BQU07QUFBQSxJQUNKLEtBQUs7QUFBQSxNQUNILEtBQUs7QUFBQSxNQUNMLEtBQUs7QUFBQSxNQUNMLE9BQU87QUFBQSxNQUNQLE1BQU07QUFBQSxNQUNOLE1BQU07QUFBQSxNQUNOLEtBQUs7QUFBQSxNQUNMLE9BQU87QUFBQSxNQUNQLE9BQU87QUFBQSxNQUNQLE1BQU07QUFBQSxNQUNOLEtBQUs7QUFBQSxNQUNMLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFVBQVU7QUFBQSxJQUNaO0FBQUEsSUFDQSxPQUFPO0FBQUEsSUFDUCxRQUFRO0FBQUEsSUFDUixPQUFPO0FBQUEsTUFDTCxNQUFNO0FBQUEsTUFDTixLQUFLO0FBQUEsTUFDTCxLQUFLO0FBQUEsTUFDTCxPQUFPO0FBQUEsTUFDUCxNQUFNO0FBQUEsTUFDTixNQUFNO0FBQUEsTUFDTixLQUFLO0FBQUEsTUFDTCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxNQUFNO0FBQUEsTUFDTixLQUFLO0FBQUEsTUFDTCxRQUFRO0FBQUEsTUFDUixRQUFRO0FBQUEsSUFDVjtBQUFBLElBQ0EsSUFBSTtBQUFBLEVBQ047QUFBQSxFQUNBLFFBQVE7QUFBQSxJQUNOLE1BQU07QUFBQSxJQUNOLE1BQU07QUFBQSxFQUNSO0FBQUEsRUFDQSxXQUFXO0FBQUEsSUFDVCxTQUFTO0FBQUEsRUFDWDtBQUFBLEVBQ0EsY0FBYztBQUFBLElBQ1osS0FBSztBQUFBLEVBQ1A7QUFBQSxFQUNBLFFBQVE7QUFBQSxJQUNOLFFBQVE7QUFBQSxNQUNOLFNBQVM7QUFBQSxNQUNULE1BQU07QUFBQSxNQUNOLEtBQUs7QUFBQSxNQUNMLEtBQUs7QUFBQSxNQUNMLE1BQU07QUFBQSxJQUNSO0FBQUEsSUFDQSxNQUFNO0FBQUEsTUFDSixTQUFTO0FBQUEsTUFDVCxNQUFNO0FBQUEsTUFDTixLQUFLO0FBQUEsTUFDTCxLQUFLO0FBQUEsTUFDTCxNQUFNO0FBQUEsSUFDUjtBQUFBLElBQ0EsTUFBTTtBQUFBLE1BQ0osTUFBTTtBQUFBLE1BQ04sU0FBUztBQUFBLE1BQ1QsTUFBTTtBQUFBLE1BQ04sS0FBSztBQUFBLE1BQ0wsS0FBSztBQUFBLE1BQ0wsTUFBTTtBQUFBLElBQ1I7QUFBQSxJQUNBLE9BQU87QUFBQSxNQUNMLE1BQU07QUFBQSxNQUNOLFNBQVM7QUFBQSxNQUNULE1BQU07QUFBQSxNQUNOLEtBQUs7QUFBQSxNQUNMLEtBQUs7QUFBQSxNQUNMLE1BQU07QUFBQSxJQUNSO0FBQUEsSUFDQSxLQUFLO0FBQUEsTUFDSCxTQUFTO0FBQUEsTUFDVCxNQUFNO0FBQUEsTUFDTixLQUFLO0FBQUEsTUFDTCxLQUFLO0FBQUEsTUFDTCxNQUFNO0FBQUEsSUFDUjtBQUFBLElBQ0EsR0FBRztBQUFBLE1BQ0QsTUFBTTtBQUFBLE1BQ04sU0FBUztBQUFBLE1BQ1QsTUFBTTtBQUFBLE1BQ04sS0FBSztBQUFBLE1BQ0wsS0FBSztBQUFBLE1BQ0wsTUFBTTtBQUFBLElBQ1I7QUFBQSxJQUNBLEdBQUc7QUFBQSxNQUNELFNBQVM7QUFBQSxNQUNULE1BQU07QUFBQSxNQUNOLEtBQUs7QUFBQSxNQUNMLEtBQUs7QUFBQSxNQUNMLE1BQU07QUFBQSxJQUNSO0FBQUEsRUFDRjtBQUFBLEVBQ0EsUUFBUTtBQUFBLElBQ04sUUFBUTtBQUFBLElBQ1IsU0FBUztBQUFBLElBQ1QsT0FBTztBQUFBLElBQ1AsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBLFNBQVM7QUFBQSxJQUNQLEtBQUs7QUFBQSxJQUNMLElBQUk7QUFBQSxFQUNOO0FBQUEsRUFDQSxVQUFVO0FBQUEsSUFDUixHQUFHO0FBQUEsTUFDRCxNQUFNO0FBQUEsTUFDTixRQUFRO0FBQUEsTUFDUixRQUFRO0FBQUEsSUFDVjtBQUFBLElBQ0EsSUFBSTtBQUFBLE1BQ0YsTUFBTTtBQUFBLE1BQ04sUUFBUTtBQUFBLElBQ1Y7QUFBQSxJQUNBLEdBQUc7QUFBQSxNQUNELE1BQU07QUFBQSxNQUNOLFFBQVE7QUFBQSxJQUNWO0FBQUEsRUFDRjtBQUFBLEVBQ0EsU0FBUztBQUFBLElBQ1AsUUFBUTtBQUFBLE1BQ04sU0FBUztBQUFBLE1BQ1QsTUFBTTtBQUFBLE1BQ04sS0FBSztBQUFBLE1BQ0wsS0FBSztBQUFBLE1BQ0wsTUFBTTtBQUFBLElBQ1I7QUFBQSxJQUNBLE1BQU07QUFBQSxNQUNKLFNBQVM7QUFBQSxNQUNULE1BQU07QUFBQSxNQUNOLEtBQUs7QUFBQSxNQUNMLEtBQUs7QUFBQSxNQUNMLE1BQU07QUFBQSxJQUNSO0FBQUEsSUFDQSxNQUFNO0FBQUEsTUFDSixTQUFTO0FBQUEsTUFDVCxNQUFNO0FBQUEsTUFDTixLQUFLO0FBQUEsTUFDTCxLQUFLO0FBQUEsTUFDTCxNQUFNO0FBQUEsSUFDUjtBQUFBLElBQ0EsT0FBTztBQUFBLE1BQ0wsU0FBUztBQUFBLE1BQ1QsTUFBTTtBQUFBLE1BQ04sS0FBSztBQUFBLE1BQ0wsS0FBSztBQUFBLE1BQ0wsTUFBTTtBQUFBLElBQ1I7QUFBQSxJQUNBLEtBQUs7QUFBQSxNQUNILFNBQVM7QUFBQSxNQUNULE1BQU07QUFBQSxNQUNOLEtBQUs7QUFBQSxNQUNMLEtBQUs7QUFBQSxNQUNMLE1BQU07QUFBQSxJQUNSO0FBQUEsSUFDQSxHQUFHO0FBQUEsTUFDRCxTQUFTO0FBQUEsTUFDVCxNQUFNO0FBQUEsTUFDTixLQUFLO0FBQUEsTUFDTCxLQUFLO0FBQUEsTUFDTCxNQUFNO0FBQUEsSUFDUjtBQUFBLElBQ0EsR0FBRztBQUFBLE1BQ0QsU0FBUztBQUFBLE1BQ1QsTUFBTTtBQUFBLE1BQ04sS0FBSztBQUFBLE1BQ0wsS0FBSztBQUFBLE1BQ0wsTUFBTTtBQUFBLElBQ1I7QUFBQSxFQUNGO0FBQUEsRUFDQSxnQkFBZ0I7QUFBQSxJQUNkLEtBQUs7QUFBQSxJQUNMLElBQUk7QUFBQSxFQUNOO0FBQUEsRUFDQSxVQUFVO0FBQUEsSUFDUixVQUFVO0FBQUEsSUFDVixPQUFPO0FBQUEsSUFDUCxVQUFVO0FBQUEsSUFDVixRQUFRO0FBQUEsRUFDVjtBQUFBLEVBQ0EsYUFBYTtBQUFBLElBQ1gsUUFBUTtBQUFBLElBQ1IsTUFB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QUFNLE1BQ2pCQSxFQUFJLE9BQU8sTUFBTSxTQUNqQkEsRUFBSSxPQUFPLE1BQU0sS0FDakJBLEVBQUksT0FBTyxNQUFNLE1BQ2pCQSxFQUFJLE9BQU8sTUFBTSxNQUNqQkEsRUFBSSxPQUFPLE9BQU8sS0FDbEJBLEVBQUksT0FBTyxPQUFPLE1BQ2xCQSxFQUFJLE9BQU8sT0FBTyxTQUNsQkEsRUFBSSxPQUFPLE9BQU8sS0FDbEJBLEVBQUksT0FBTyxPQUFPLE1BQ2xCQSxFQUFJLE9BQU8sS0FBSyxLQUNoQkEsRUFBSSxPQUFPLEtBQUssTUFDaEJBLEVBQUksT0FBTyxLQUFLLFNBQ2hCQSxFQUFJLE9BQU8sS0FBSyxLQUNoQkEsRUFBSSxPQUFPLEtBQUssTUFDaEJBLEVBQUksT0FBTyxLQUFLLE1BQ2hCQSxFQUFJLE9BQU8sS0FBSyxLQUNoQkEsRUFBSSxPQUFPLEtBQUssS0FDaEJBLEVBQUksT0FBTyxJQUFJLEtBQ2ZBLEVBQUksT0FBTyxJQUFJLEtBQ2ZBLEVBQUksT0FBTyxNQUFNLEtBQ2pCQSxFQUFJLE9BQU8sTUFBTSxLQUNqQkEsRUFBSSxPQUFPLE9BQU8sS0FDbEJBLEVBQUksT0FBTyxPQUFPLEtBQ2xCQSxFQUFJLE9BQU8sS0FBSyxLQUNoQkEsRUFBSSxPQUFPLEtBQUssS0FDaEJBLEVBQUksT0FBTyxPQUFPLEtBQ2xCQSxFQUFJLE9BQU8sT0FBTyxNQUNsQkEsRUFBSSxPQUFPLE9BQU8sU0FDbEJBLEVBQUksT0FBTyxPQUFPLE1BQ2xCQSxFQUFJLFFBQVEsS0FBSyxLQUNqQkEsRUFBSSxRQUFRLEtBQUssTUFDakJBLEVBQUksUUFBUSxLQUFLLFNBQ2pCQSxFQUFJLFFBQVEsS0FBSyxLQUNqQkEsRUFBSSxRQUFRLEtBQUssTUFDakJBLEVBQUksUUFBUSxFQUFFLEtBQ2RBLEVBQUksUUFBUSxFQUFFLE1BQ2RBLEVBQUksUUFBUSxFQUFFLFNBQ2RBLEVBQUksUUFBUSxFQUFFLEtBQ2RBLEVBQUksUUFBUSxFQUFFLE1BQ2RBLEVBQUksUUFBUSxJQUFJLEtBQ2hCQSxFQUFJLFFBQVEsSUFBSSxNQUNoQkEsRUFBSSxRQUFRLElBQUksU0FDaEJBLEVBQUksUUFBUSxJQUFJLEtBQ2hCQSxFQUFJLFFBQVEsSUFBSSxNQUNoQkEsRUFBSSxRQUFRLEVBQUUsS0FDZEEsRUFBSSxRQUFRLEVBQUUsTUFDZEEsRUFBSSxRQUFRLEVBQUUsU0FDZEEsRUFBSSxRQUFRLEVBQUUsS0FDZEEsRUFBSSxRQUFRLEVBQUUsTUFDZEEsRUFBSSxRQUFRLE1BQU0sS0FDbEJBLEVBQUksUUFBUSxNQUFNLE1BQ2xCQSxFQUFJLFFBQVEsTUFBTSxTQUNsQkEsRUFBSSxRQUFRLE1BQU0sS0FDbEJBLEVBQUksUUFBUSxNQUFNLE1BQ2xCQSxFQUFJLFFBQVEsT0FBTyxLQUNuQkEsRUFBSSxRQUFRLE9BQU8sTUFDbkJBLEVBQUksUUFBUSxPQUFPLFNBQ25CQSxFQUFJLFFBQVEsT0FBTyxLQUNuQkEsRUFBSSxRQUFRLE9BQU8sTUFDbkJBLEVBQUksUUFBUSxLQUFLLEtBQ2pCQSxFQUFJLFFBQVEsS0FBSyxNQUNqQkEsRUFBSSxRQUFRLEtBQUssU0FDakJBLEVBQUksUUFBUSxLQUFLLEtBQ2pCQSxFQUFJLFFBQVEsS0FBSyxNQUNqQkEsRUFBSSxNQUFNLFVBQ1ZBLEVBQUksTUFBTSxNQUNWQSxFQUFJLE1BQU0sTUFDVkEsRUFBSSxPQUFPLE1BQ1hBLEVBQUksT0FBTyxNQUNYQSxFQUFJLE1BQU0sRUFBRSxRQUNaQSxFQUFJLFlBQ0pBLEVBQUksT0FBTyxhQUNYQSxFQUFJLE9BQU8sU0FDWEEsRUFBSSxPQUFPLE1BQ1hBLEVBQUksS0FBSyxLQUFLLFFBQ2RBLEVBQUksS0FBSyxLQUFLLFVBQ2RBLEVBQUksS0FBSyxLQUFLLFNBQ2RBLEVBQUksS0FBSyxLQUFLLFFBQ2RBLEVBQUksS0FBSyxLQUFLLGFBQ2RBLEVBQUksS0FBSyxLQUFLLFlBQ2RBLEVBQUksS0FBSyxPQUFPLGNBQ2hCQSxFQUFJLEtBQUssT0FBTyxjQUNoQkEsRUFBSSxLQUFLLE9BQU8sYUFDaEJBLEVBQUksS0FBSyxPQUFPLGVBQ2hCQSxFQUFJLGFBQWEsS0FDakJBLEVBQUksT0FBTyxRQUNYQSxFQUFJLE9BQU8sU0FDWEEsRUFBSSxPQUFPLE9BQ1hBLEVBQUksT0FBTyxZQUNYQSxFQUFJLGVBQWUsSUFDbkJBLEVBQUksZUFBZSxLQUNuQkEsRUFBSSxVQUFVLEtBQ2RBLEVBQUksT0FBTyxRQUNYQSxFQUFJLE9BQU8sS0FDWEEsRUFBSSxLQUFLLElBQ1RBLEVBQUksV0FBVyxPQUNmQSxFQUFJLE1BQU0sRUFBRSxNQUNaQSxFQUFJLE1BQU0sRUFBRSxRQUNaQSxFQUFJLE1BQU0sRUFBRSxPQUNaQSxFQUFJLGVBQWUsT0FDbkJBLEVBQUksZUFBZSxNQUNuQkEsRUFBSSxlQUFlLE9BQ25CQSxFQUFJLFVBQVUsT0FDZEEsRUFBSSxVQUFVLEtBQ2RBLEVBQUksVUFBVSxJQUNkQSxFQUFJLFdBQVcsSUFDZkEsRUFBSSxXQUFXLEtBQ2ZBLEVBQUksZ0JBQWdCLEtBQ3BCQSxFQUFJLFNBQVMsR0FBRyxNQUNoQkEsRUFBSSxTQUFTLEdBQUcsUUFDaEJBLEVBQUksU0FBUyxFQUFFLE1BQ2ZBLEVBQUksU0FBUyxFQUFFLFFBQ2ZBLEVBQUksU0FBUyxFQUFFLFFBQ2ZBLEVBQUksU0FBUyxFQUFFLE1BQ2ZBLEVBQUksU0FBUyxFQUFFLFFBQ2ZBLEVBQUksUUFBUTtBQ2psQlAsTUFBTUksS0FBYztBQUFBLEVBQ3pCLFlBQVk7QUFBQSxFQUNaLFVBQVU7QUFDWjs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQ0hhQyxJQUFPO0FBQUEsRUFDbEIsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUNULEdDK0JNQyxLQUFlLENBQUNDLE1BQW1DO0FBQ3ZELE1BQUlDLElBQVNELEtBQVMsT0FBT0EsS0FBVSxXQUFXLElBQUksS0FBSyxhQUFhLEVBQUUsT0FBT0EsQ0FBSyxJQUFJLE9BQU9BLEtBQVMsRUFBRSxHQUN4R0UsSUFBU0Q7QUFFVCxTQUFBRCxLQUFTLE9BQU9BLEtBQVUsYUFDbkJFLElBQUFBLEVBQU8sUUFBUSxPQUFPLEVBQUUsR0FDN0IsT0FBT0EsQ0FBTSxJQUNmRCxJQUFTLElBQUksS0FBSyxhQUFBLEVBQWUsT0FBTyxPQUFPQyxDQUFNLENBQUMsSUFFN0NELElBQUEsTUFJTkE7QUFDVCxHQUVNRSxLQUFtQixDQUFDSCxNQUNqQkEsS0FBUyxPQUFPQSxLQUFVLFdBQzdCQSxFQUNHLFFBQVEseUJBQXlCLE9BQU8sRUFDeEMsUUFBUSxXQUFXLEdBQUcsRUFDdEIsWUFBQSxFQUNBLE1BQU0sR0FBRyxFQUNULElBQUksQ0FBQ0ksTUFBU0EsRUFBSyxNQUFNLEdBQUcsQ0FBQyxFQUFFLFlBQUEsSUFBZ0JBLEVBQUssTUFBTSxDQUFDLENBQUMsRUFDNUQsS0FBSyxFQUFFLElBQ1ZKLEdBR0FLLEtBQWMsQ0FBQ0wsTUFBbUM7QUFDbEQsTUFBQUMsSUFBOEMsT0FBckNELEtBQVMsT0FBT0EsS0FBVSxXQUFrQkEsSUFBZ0JBLEtBQVMsRUFBcEIsR0FDMURFLElBQVNEO0FBR2IsVUFGU0MsSUFBQUEsRUFBTyxRQUFRLE9BQU8sRUFBRSxHQUV6QkEsRUFBTyxRQUFRO0FBQUEsSUFDckIsS0FBSztBQUNNLE1BQUFELElBQUEsR0FBR0MsRUFBTyxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUlBLEVBQU8sTUFBTSxDQUFDLENBQUM7QUFDakQ7QUFBQSxJQUNGLEtBQUs7QUFDSCxNQUFBRCxJQUFTLEdBQUdDLEVBQU8sTUFBTSxHQUFHLENBQUMsQ0FBQyxJQUFJQSxFQUFPLE1BQU0sR0FBRyxDQUFDLENBQUMsSUFBSUEsRUFBTyxNQUFNLENBQUMsQ0FBQztBQUN2RTtBQUFBLElBQ0YsS0FBSztBQUNNLE1BQUFELElBQUEsR0FBR0MsRUFBTyxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUlBLEVBQU8sTUFBTSxHQUFHLENBQUMsQ0FBQyxJQUFJQSxFQUFPLE1BQU0sR0FBRyxDQUFDLENBQUMsSUFBSUEsRUFBTyxNQUFNLENBQUMsQ0FBQztBQUM3RjtBQUFBLElBQ0Y7QUFDVyxNQUFBRCxJQUFBQztBQUNUO0FBQUEsRUFDSjtBQUVPLFNBQUFEO0FBQ1QsR0FFTUssS0FBYyxDQUFDTixNQUVaLElBRFFBLElBQVFELEdBQWFDLENBQUssSUFBSSxPQUFPQSxLQUFTLEdBQUcsQ0FDL0M7Ozs7Ozs7aUJDbkVYTyxJQUFXQztBQUVqQixXQUFBQztBQUFBLE1BQ0UsTUFBTUMsRUFBTTtBQUFBLE1BQ1osTUFBTTtBQUNKLGNBQU1DLElBQUtELEVBQU0sTUFDWEUsSUFBT1QsR0FBaUJRLENBQUUsR0FDMUJFLElBQVlDLEdBQXFCLE1BQU1DLG8xTkFBNkMsMkJBQUFILENBQUEsTUFBQSxDQUFBO0FBRWpGLFFBQUFMLEVBQUEsUUFBUVMsR0FBUUgsQ0FBUztBQUFBLE1BQ3BDO0FBQUEsTUFDQSxFQUFFLFdBQVcsR0FBSztBQUFBLElBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztzRUMvQlRJLElBQU87QUFBQSxFQUNsQixpQkFBaUI7QUFBQSxFQUNqQixLQUFLO0FBQUEsRUFDTCxnQkFBZ0I7QUFBQSxFQUNoQixhQUFhO0FBQUEsRUFDYixXQUFXO0FBQUEsRUFDWCxZQUFZO0FBQUEsRUFDWixlQUFlO0FBQUEsRUFDZixhQUFhO0FBQUEsRUFDYixZQUFZO0FBQUEsRUFDWixZQUFZO0FBQUEsRUFDWixVQUFVO0FBQUEsRUFDVixnQkFBZ0I7QUFBQSxFQUNoQixNQUFNO0FBQUEsRUFDTixPQUFPO0FBQUEsRUFDUCxjQUFjO0FBQUEsRUFDZCxlQUFlO0FBQUEsRUFDZixPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxRQUFRO0FBQUEsRUFDUixTQUFTO0FBQUEsRUFDVCxPQUFPO0FBQUEsRUFDUCxNQUFNO0FBQUEsRUFDTixPQUFPO0FBQUEsRUFDUCxnQkFBZ0I7QUFBQSxFQUNoQixhQUFhO0FBQUEsRUFDYixhQUFhO0FBQUEsRUFDYixVQUFVO0FBQUEsRUFDVixVQUFVO0FBQUEsRUFDVixpQkFBaUI7QUFBQSxFQUNqQixhQUFhO0FBQUEsRUFDYixlQUFlO0FBQUEsRUFDZixzQkFBc0I7QUFBQSxFQUN0QixPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxRQUFRO0FBQUEsRUFDUixZQUFZO0FBQUEsRUFDWixNQUFNO0FBQUEsRUFDTixRQUFRO0FBQUEsRUFDUixNQUFNO0FBQUEsRUFDTixNQUFNO0FBQUEsRUFDTixhQUFhO0FBQUEsRUFDYixXQUFXO0FBQUEsRUFDWCxXQUFXO0FBQUEsRUFDWCxRQUFRO0FBQUEsRUFDUixXQUFXO0FBQUEsRUFDWCxnQkFBZ0I7QUFBQSxFQUNoQixNQUFNO0FBQUEsRUFDTixNQUFNO0FBQUEsRUFDTixNQUFNO0FBQUEsRUFDTixZQUFZO0FBQUEsRUFDWixlQUFlO0FBQUEsRUFDZixhQUFhO0FBQUEsRUFDYixTQUFTO0FBQUEsRUFDVCxRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixjQUFjO0FBQUEsRUFDZCxXQUFXO0FBQUEsRUFDWCxZQUFZO0FBQUEsRUFDWixRQUFRO0FBQUEsRUFDUixpQkFBaUI7QUFBQSxFQUNqQixPQUFPO0FBQUEsRUFDUCxRQUFRO0FBQUEsRUFDUixTQUFTO0FBQUEsRUFDVCxNQUFNO0FBQUEsRUFDTixPQUFPO0FBQUEsRUFDUCxlQUFlO0FBQUEsRUFDZixLQUFLO0FBQUEsRUFDTCxNQUFNO0FBQUEsRUFDTixXQUFXO0FBQUEsRUFDWCxrQkFBa0I7QUFBQSxFQUNsQixRQUFRO0FBQUEsRUFDUixNQUFNO0FBQUEsRUFDTixTQUFTO0FBQUEsRUFDVCxVQUFVO0FBQUEsRUFDVixZQUFZO0FBQUEsRUFDWixZQUFZO0FBQUEsRUFDWixZQUFZO0FBQUEsRUFDWixXQUFXO0FBQUEsRUFDWCxTQUFTO0FBQUEsRUFDVCxRQUFRO0FBQUEsRUFDUixPQUFPO0FBQUEsRUFDUCxTQUFTO0FBQ1g7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2lCQzFDUUMsSUFBYVYsRUFBSUUsRUFBTSxpQkFBaUI7QUFFOUMsUUFBSVMsSUFBZ0JYO0FBRXBCLFVBQU1ZLElBQW1CLE1BQU07QUFDN0IsWUFBTUMsSUFBVUYsRUFBYztBQUVuQixNQUFBRCxFQUFBLFFBQVEsQ0FBQ0EsRUFBVyxPQUUvQkcsRUFBUSxNQUFNLG1CQUFtQkgsRUFBVyxRQUFRLFFBQVE7QUFBQSxJQUFBO0FBRzlELFdBQUFJLEdBQVUsTUFBTTtBQUNkLFlBQU1ELElBQVVGLEVBQWM7QUFFOUIsTUFBQUUsRUFBUSxNQUFNLG1CQUFtQkgsRUFBVyxRQUFRLFFBQVE7QUFBQSxJQUFBLENBQzdEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7c0VDMURVSyxJQUFVO0FBQUEsRUFDckIsUUFBUTtBQUFBLEVBQ1IsTUFBTTtBQUNSLEdBRWFDLElBQXVCO0FBQUEsRUFDbEMsUUFBUTtBQUFBLEVBQ1IsS0FBSztBQUFBLEVBQ0wsTUFBTTtBQUNSLEdDUGFDLElBQVc7QUFBQSxFQUN0QixTQUFTO0FBQUEsRUFDVCxXQUFXO0FBQUEsRUFDWCxVQUFVO0FBQUEsRUFDVixZQUFZO0FBQUEsRUFDWixVQUFVO0FBQ1osR0NSYUMsSUFBUztBQUFBLEVBQ3BCLE9BQU87QUFBQSxFQUNQLE1BQU07QUFDUjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQ0hhQyxJQUFRO0FBQUEsRUFDbkIsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUFBLEVBQ1QsU0FBUztBQUNYOzs7Ozs7OztpQkNvQlFDLElBQU9DLEVBQVMsTUFBTTtBQUMxQixVQUFJRCxJQUFhWCxFQUFLO0FBRXRCLGNBQVFQLEVBQU0sTUFBTTtBQUFBLFFBQ2xCLEtBQUtpQixFQUFNO0FBQ1RDLFVBQUFBLElBQU9YLEVBQUs7QUFDWjtBQUFBLFFBQ0Y7QUFBQSxRQUNBLEtBQUtVLEVBQU07QUFDVEMsVUFBQUEsSUFBT1gsRUFBSztBQUNaO0FBQUEsUUFDRixLQUFLVSxFQUFNO0FBQ1RDLFVBQUFBLElBQU9YLEVBQUs7QUFDWjtBQUFBLFFBQ0YsS0FBS1UsRUFBTTtBQUNUQyxVQUFBQSxJQUFPWCxFQUFLO0FBQ1o7QUFBQSxNQUNKO0FBRU9XLGFBQUFBO0FBQUFBLElBQUEsQ0FDUjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUM3Q1VFLEtBQVE7QUFBQSxFQUNuQixhQUFhO0FBQUEsRUFDYixZQUFZO0FBQUEsRUFDWixTQUFTO0FBQUEsRUFDVCxTQUFTO0FBQ1gsR0FFYUMsS0FBZ0I7QUFBQSxFQUMzQixTQUFTO0FBQUEsRUFDVCxnQkFBZ0I7QUFDbEIsR0FFYUMsS0FBZ0I7QUFBQSxFQUMzQixVQUFVO0FBQUEsRUFDVixVQUFVO0FBQUEsRUFDVixTQUFTO0FBQ1g7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNhUUMsS0FBTTs7Ozs7Ozs7O0FBVlosUUFBSUMsSUFBZTFCLEtBQ2YyQixJQUFhM0IsS0FDYjRCLElBQWM1QixLQUNkNkIsSUFBZTdCO0FBRW5CLFVBQU04QixJQUFhOUIsS0FDYitCLElBQVcvQixLQUNYZ0MsSUFBY2hDLEtBQ2RpQyxJQUFlakMsRUFBSSxDQUFDLEdBVXBCa0MsSUFBc0IsTUFBTTtBQUUxQixZQUFBQyxJQUFlLE1BQU0sS0FBS0wsRUFBVyxNQUFNLFFBQVEsRUFBRSxJQUFJLENBQUNNLE1BQWVBLEVBQU0sVUFBVTtBQUUvRixVQUFJRCxFQUFhLFdBQVc7QUFBRztBQUcvQixZQUFNRSxJQUFxQkYsRUFBYSxPQUFPLENBQUNHLEdBQU1DLE1BQzdDLEtBQUssSUFBSUEsSUFBT1IsRUFBUyxNQUFNLFVBQVUsSUFBSSxLQUFLLElBQUlPLElBQU9QLEVBQVMsTUFBTSxVQUFVLElBQUlRLElBQU9ELENBQ3pHO0FBR1ksTUFBQUwsRUFBQSxRQUFRRSxFQUFhLFFBQVFFLENBQWtCO0FBQUEsSUFBQSxHQUd4REcsSUFBYSxNQUFNO0FBQ1YsTUFBQWQsRUFBQSxRQUFRSSxFQUFXLE1BQU0sYUFDM0JILEVBQUEsUUFBUUksRUFBUyxNQUFNLGFBQ3RCSCxFQUFBLFFBQVFGLEVBQWEsUUFBUUMsRUFBVyxPQUNwREUsRUFBYSxRQUFRRSxFQUFTLE1BQU0sY0FBY0EsRUFBUyxNQUFNLGFBQ2pFQyxFQUFZLFFBQVFKLEVBQVksU0FBUyxDQUFDMUIsRUFBTSxlQUU1QmdDO0lBQUEsR0FJaEJPLElBQWUsTUFBTTtBQUNkLE1BQUFEO0lBQUEsR0FTUEUsSUFBZ0IsQ0FBQ0MsTUFBdUI7QUFDNUMsTUFBQVosRUFBUyxNQUFNLFNBQVM7QUFBQSxRQUN0QixVQUFVO0FBQUEsUUFDVixNQUFNRCxFQUFXLE1BQU0sU0FBU2EsQ0FBVSxFQUFFO0FBQUEsTUFBQSxDQUM3QztBQUFBLElBQUEsR0FHR0MsSUFBZ0IsTUFBTTtBQUNwQmxCLFlBQUFBLElBQWVJLEVBQVcsTUFBTSxhQUNoQ2UsSUFBbUJkLEVBQVMsTUFBTSxhQUFhQSxFQUFTLE1BQU07QUFFcEUsVUFBSWMsSUFBbUJuQjtBQUNyQixRQUFBSyxFQUFTLE1BQU0sU0FBUztBQUFBLFVBQ3RCLFVBQVU7QUFBQSxVQUNWLE1BQU1MO0FBQUFBLFFBQUEsQ0FDUDtBQUFBLFdBQ0k7QUFDTCxjQUFNb0IsSUFBeUI1QyxFQUFNLFdBQVcrQixFQUFhLFVBQVUsR0FFakVjLEtBRGNGLE1BQXFCbkIsSUFDVCxJQUFJb0IsSUFBeUIsSUFBSWIsRUFBYSxRQUFRO0FBRXRGLFFBQUFTLEVBQWNLLEVBQVM7QUFBQSxNQUN6QjtBQUFBLElBQUEsR0FHSUMsSUFBb0IsTUFBTTtBQUN4QixZQUFBQyxJQUFhL0MsRUFBTSxVQUFVLElBQUksR0FDakNnRCxJQUFlakIsRUFBYSxRQUFRLE1BQU1nQixHQUUxQ0UsSUFEZ0JsQixFQUFhLFNBQVNnQixJQUV4Q25CLEVBQVcsTUFBTSxTQUFTLFNBQVMsSUFDbkNvQixJQUNBLElBQ0FqQixFQUFhLFFBQVE7QUFFekIsTUFBQVMsRUFBY1MsQ0FBYTtBQUFBLElBQUE7QUFHN0IsV0FBQXJDLEdBQVUsTUFBTTtBQUNILE1BQUEwQixLQUNKLE9BQUEsaUJBQWlCLFVBQVVBLENBQVU7QUFBQSxJQUFBLENBQzdDLEdBRURZLEdBQVksTUFBTTtBQUNULGFBQUEsb0JBQW9CLFVBQVVaLENBQVU7QUFBQSxJQUFBLENBQ2hELEdBRURhLEdBQVUsTUFBTTtBQUNILE1BQUFiO0lBQUEsQ0FDWixHQUVEdkMsRUFBTWdDLEdBQWMsTUFBTTtBQUNuQixNQUFBcUIsRUFBQSxVQUFVckIsRUFBYSxLQUFLO0FBQUEsSUFBQSxDQUNsQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7aUJDekdLc0IsSUFBWXZELEtBRVp3RCxJQUFlLEdBQUd0RCxFQUFNLEdBQUcsOEJBRTNCdUQsSUFBc0IsTUFBTTtBQUNoQyxNQUFBRixFQUFVLE1BQU0sTUFBTUM7QUFBQSxJQUFBO0FBR3hCLFdBQUFFLEVBQWFILEVBQVUsS0FBSzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7aUJDcEJ0Qi9ELElBQVFRLEtBd0JSMkQsSUFBVTNELEVBQUlFLEVBQU0sV0FBV0EsRUFBTSxhQUFhLEdBQ2xEMEQsSUFBZ0I1RCxFQUFJRSxFQUFNLGFBQWEsR0FFdkMyRCxJQUFXeEMsRUFBUyxNQUFPOztBQUFBLGFBQUFuQixFQUFNLFVBQVVBLEVBQU0sVUFBVSxnQkFBYzRELElBQUFDLEdBQW1CLE1BQW5CLGdCQUFBRCxFQUFzQixRQUFPLEVBQUU7QUFBQSxLQUFHLEdBRTNHRSxJQUFjLE1BQU07QUFDaEIsTUFBQUwsRUFBQSxRQUFRLENBQUNBLEVBQVE7QUFBQSxJQUFBO0FBRzNCLFdBQUExRDtBQUFBLE1BQ0UsTUFBTUMsRUFBTTtBQUFBLE1BQ1osQ0FBQytELEdBQVVDLE1BQWE7QUFDdEIsU0FBSUQsTUFBYUMsS0FBWUQsTUFBYUwsRUFBYyxVQUNsRHBFLEVBQU0sVUFDUm9FLEVBQWMsUUFBUUssR0FDaEJ6RSxFQUFBLE1BQU0sZ0JBQWdCb0UsRUFBYyxPQUV0Q0EsRUFBYyxVQUFVLE9BQzFCRCxFQUFRLFFBQVEsS0FHWm5FLEVBQUEsTUFBTSxVQUFVbUUsRUFBUTtBQUFBLE1BR3BDO0FBQUEsSUFBQSxHQUdGMUQ7QUFBQSxNQUNFLE1BQU1DLEVBQU07QUFBQSxNQUNaLENBQUMrRCxHQUFVQyxNQUFhO0FBQ3RCLFNBQUlELE1BQWFDLEtBQVlELE1BQWFOLEVBQVEsV0FDaERBLEVBQVEsUUFBUU07QUFBQSxNQUVwQjtBQUFBLElBQUEsR0FHV1AsRUFBQSxFQUFFLFNBQUFDLEdBQVMsZUFBQUMsRUFBQSxDQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2lCQy9DakNELElBQVUzRCxFQUFJRSxFQUFNLE9BQU8sR0FFM0IyRCxJQUFXeEMsRUFBUyxNQUFPOztBQUFBLGFBQUFuQixFQUFNLFVBQVVBLEVBQU0sVUFBVSxnQkFBYzRELElBQUFDLEdBQW1CLE1BQW5CLGdCQUFBRCxFQUFzQixRQUFPLEVBQUU7QUFBQSxLQUFHO0FBRWpILFdBQUE3RDtBQUFBLE1BQ0UsTUFBTUMsRUFBTTtBQUFBLE1BQ1osQ0FBQytELEdBQVVDLE1BQWE7QUFDdEIsU0FBSUQsTUFBYUMsS0FBWUQsTUFBYU4sRUFBUSxXQUNoREEsRUFBUSxRQUFRTTtBQUFBLE1BRXBCO0FBQUEsSUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7c0VDdkJTRSxLQUFzQiwrQkFFdEJDLEtBQVU7QUFBQSxFQUNyQixTQUFTO0FBQUEsRUFDVCxPQUFPO0FBQ1QsR0FFYUMsSUFBYyxDQUFDQyxNQUNuQixDQUFDQyxNQUFvQztBQUMxQyxNQUFJQyxJQUFTSjtBQUViLFNBQUtHLEVBQU0sS0FBTyxFQUFBLE1BQU1ELENBQU0sTUFDbkJFLElBQUE7QUFBQSxJQUNQLFNBQVNMO0FBQUEsSUFDVCxPQUFPO0FBQUEsRUFBQSxJQUlKSztBQUFBLEdBSUVDLEtBQWtCLENBQUNDLEdBQWlDQyxNQUUzRCxPQUFPRCxLQUFtQixZQUFZQSxFQUFlLFNBQVMsSUFBVUEsSUFFckUsT0FBT0MsS0FBaUIsWUFBWUEsRUFBYSxTQUFTLElBQUlBLElBQWVSLElBR3pFUyxLQUFtQixDQUFDRixHQUFpQ0MsTUFDaEVELE1BQW1CLE1BQVNDLE1BQWlCLElBRWxDRSxLQUF3QixDQUFDLEVBQUUsV0FBQUMsR0FBVyxXQUFBQyxHQUFXLFVBQUFDLEdBQVUsT0FBQVQsUUFBOEI7QUFDcEcsUUFBTVUsSUFBdUJWLEVBQU0sV0FBVyxLQUFLLENBQUNTLEdBQzlDRSxJQUFZSixLQUFhUCxFQUFNLFNBQVNPO0FBR3ZDLFNBQUEsRUFGWSxDQUFDRyxLQUF3QkYsS0FBYVIsRUFBTSxTQUFTUSxNQUVsRCxDQUFDRztBQUN6QixHQXVEYUMsS0FBd0IsQ0FBQztBQUFBLEVBQ3BDLE9BQUFDO0FBQUEsRUFDQSxnQkFBQVY7QUFBQSxFQUNBLFdBQUFJO0FBQUEsRUFDQSxXQUFBQztBQUFBLEVBQ0EsVUFBQUMsSUFBVztBQUFBLEVBQ1gsWUFBQUs7QUFBQSxFQUNBLE9BQUFkO0FBQ0YsTUFRTTtBQUtBLE1BRkVhLEVBQUEsUUFBUVYsS0FBa0MsSUFFNUMsQ0FBQ1UsRUFBTSxTQUFTQyxHQUFZO0FBQzlCLFVBQU1DLElBQWFDLEdBQWlCaEIsRUFBTSxPQUFPYyxDQUFVO0FBRXZELElBQUNDLEVBQVcsVUFDZEYsRUFBTSxRQUFRRSxFQUFXO0FBQUEsRUFFN0I7QUFFQSxNQUFJLENBQUNGLEVBQU0sVUFBVU4sS0FBYUMsSUFBWTtBQUM1QyxVQUFNUyxJQUFtQkMsR0FBZTtBQUFBLE1BQ3RDLFdBQUFYO0FBQUEsTUFDQSxXQUFBQztBQUFBLE1BQ0EsVUFBQUM7QUFBQSxNQUNBLE9BQU9ULEVBQU07QUFBQSxJQUFBLENBQ2Q7QUFFRyxJQUFDaUIsRUFBaUIsVUFDcEJKLEVBQU0sUUFBUUksRUFBaUI7QUFBQSxFQUVuQztBQUNGLEdBa0JhQyxLQUFpQixDQUFDO0FBQUEsRUFDN0IsV0FBQVg7QUFBQSxFQUNBLFdBQUFDO0FBQUEsRUFDQSxVQUFBQyxJQUFXO0FBQUEsRUFDWCxPQUFBVDtBQUNGLE1BQTBDO0FBQ3hDLFFBQU1tQixJQUFXO0FBQUEsSUFDZixTQUFTO0FBQUEsSUFDVCxPQUFPO0FBQUEsRUFBQTtBQVVULFNBUEFBLEVBQVMsUUFBUWIsR0FBc0I7QUFBQSxJQUNyQyxXQUFBQztBQUFBLElBQ0EsV0FBQUM7QUFBQSxJQUNBLFVBQUFDO0FBQUEsSUFDQSxPQUFBVDtBQUFBLEVBQUEsQ0FDRCxHQUVHbUIsRUFBUyxVQUViQSxFQUFTLFVBQVV2QixJQUVmVyxLQUFhQyxJQUNmVyxFQUFTLFVBQVUsZ0NBQWdDWCxDQUFTLFFBQVFELENBQVMsMkJBQ3BFQSxJQUNBWSxFQUFBLFVBQVUscUNBQXFDWixDQUFTLDJCQUN4REMsTUFDQVcsRUFBQSxVQUFVLHFDQUFxQ1gsQ0FBUyw0QkFHNURXO0FBQ1Q7QUFFZ0IsU0FBQUgsR0FBaUJoQixHQUFlYyxHQUF1RTtBQUNySCxhQUFXTSxLQUFhTixHQUFZO0FBQzVCLFVBQUFDLElBQWFLLEVBQVVwQixDQUFLO0FBQzlCLFFBQUEsQ0FBQ2UsRUFBVztBQUNQLGFBQUFBO0FBQUEsRUFFWDtBQUVPLFNBQUE7QUFBQSxJQUNMLFNBQVM7QUFBQSxJQUNULE9BQU87QUFBQSxFQUFBO0FBRVg7Ozs7Ozs7Ozs7Ozs7Ozs7aUJDbkxRRixJQUFRcEYsRUFBSUUsRUFBTSxLQUFLLEdBQ3ZCMEYsSUFBVzVGLEVBQUksRUFBSyxHQUNwQlIsSUFBUVEsRUFBOEIsSUFBSSxHQUMxQ2dGLElBQVdoRixFQUFJRSxFQUFNLFFBQVEsR0FDN0JxRSxJQUFRdkUsRUFBd0JFLEVBQU0sS0FBSyxHQUUzQzJGLElBQWV4RSxFQUFTLE1BQU1vRCxHQUFnQnZFLEVBQU0sT0FBT2tGLEVBQU0sS0FBSyxDQUFDLEdBQ3ZFVSxJQUFpQnpFLEVBQVMsTUFBT25CLEVBQU0sV0FBVyxHQUFHQSxFQUFNLEtBQUssT0FBT0EsRUFBTSxLQUFNLEdBQ25GNkYsSUFBVzFFLEVBQVMsTUFBT25CLEVBQU0sWUFBWSxDQUFDcUUsRUFBTSxTQUFVSyxHQUFpQlEsRUFBTSxPQUFPbEYsRUFBTSxLQUFLLENBQUMsR0FDeEc4RixJQUFlM0UsRUFBUyxNQUFNdUUsRUFBUyxTQUFTLENBQUNLLEVBQVEsS0FBSyxHQUM5REEsSUFBVTVFLEVBQVMsTUFBTWtELEVBQU0sVUFBVSxNQUFTLEdBRWxEVixJQUFXeEMsRUFBUyxNQUFPOztBQUFBLGFBQUFuQixFQUFNLFVBQVVBLEVBQU0sVUFBVSxnQkFBYzRELElBQUFDLEdBQW1CLE1BQW5CLGdCQUFBRCxFQUFzQixRQUFPLEVBQUU7QUFBQSxLQUFHLEdBRTNHb0MsSUFBZ0IsTUFBTTs7QUFDcEIsWUFBQUMsSUFBUSxJQUFJLFdBQVcsV0FBVztBQUNqQyxPQUFBckMsSUFBQXRFLEtBQUEsZ0JBQUFBLEVBQUEsVUFBQSxRQUFBc0UsRUFBTyxjQUFjcUM7QUFBQSxJQUFLLEdBRzdCQyxJQUFjLE1BQU07QUFDeEIsTUFBQVIsRUFBUyxRQUFRO0FBQUEsSUFBQSxHQUdiUyxJQUFpQixNQUFNO0FBQzNCLE1BQUFULEVBQVMsUUFBUTtBQUFBLElBQUE7QUFHbkIsV0FBQTNGO0FBQUEsTUFDRSxNQUFNQyxFQUFNO0FBQUEsTUFDWixDQUFDK0QsR0FBVUMsTUFBYTtBQUN0QixTQUFJRCxNQUFhQyxLQUFZRCxNQUFhTSxFQUFNLFdBQzlDQSxFQUFNLFFBQVFOO0FBQUEsTUFFbEI7QUFBQSxJQUFBLEdBR1dQLEVBQUEsRUFBRSxPQUFBMEIsR0FBTyxPQUFBYixFQUFBLENBQU87Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztzRUMvRGxCK0IsSUFBa0I7QUFBQSxFQUM3QixNQUFNO0FBQUEsRUFDTixnQkFBZ0I7QUFBQSxFQUNoQixPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxRQUFRO0FBQUEsRUFDUixVQUFVO0FBQUEsRUFDVixRQUFRO0FBQUEsRUFDUixLQUFLO0FBQUEsRUFDTCxNQUFNO0FBQUEsRUFDTixNQUFNO0FBQUEsRUFDTixLQUFLO0FBQUEsRUFDTCxNQUFNO0FBQ1I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztpQkM2Q1FsQixJQUFRcEYsRUFBSUUsRUFBTSxLQUFLLEdBQ3ZCMEYsSUFBVzVGLEVBQUksRUFBSyxHQUNwQlIsSUFBUVEsRUFBNkIsSUFBSSxHQUN6Q3VHLElBQWV2RyxFQUFJLEVBQUssR0FDeEJ1RSxJQUFRdkUsRUFBSUUsRUFBTSxLQUFLLEdBRXZCMkYsSUFBZXhFLEVBQVMsTUFBTW9ELEdBQWdCdkUsRUFBTSxPQUFPa0YsRUFBTSxLQUFLLENBQUMsR0FDdkVVLElBQWlCekUsRUFBUyxNQUFPbkIsRUFBTSxZQUFZQSxFQUFNLFFBQVEsR0FBR0EsRUFBTSxLQUFLLE9BQU9BLEVBQU0sS0FBTSxHQUNsR3NHLElBQVduRixFQUFTLE1BQU1uQixFQUFNLFlBQVlxRSxFQUFNLEtBQUssR0FDdkR3QixJQUFXMUUsRUFBUyxNQUFPbkIsRUFBTSxZQUFZLENBQUNxRSxFQUFNLFNBQVVLLEdBQWlCUSxFQUFNLE9BQU9sRixFQUFNLEtBQUssQ0FBQyxHQUN4RzhGLElBQWUzRSxFQUFTLE1BQU11RSxFQUFTLFNBQVMsQ0FBQ0ssRUFBUSxLQUFLLEdBQzlEQSxJQUFVNUUsRUFBUyxNQUFNa0QsRUFBTSxVQUFVLEVBQUUsR0FDM0NrQyxJQUFPcEY7QUFBQSxNQUFTLE1BQ3BCbkIsRUFBTSxTQUFTb0csRUFBZ0IsWUFBWUMsRUFBYSxVQUFVLEtBQU9ELEVBQWdCLE9BQU9wRyxFQUFNO0FBQUEsSUFBQSxHQUVsRzJELElBQVd4QyxFQUFTLE1BQU87O0FBQUEsYUFBQW5CLEVBQU0sVUFBVUEsRUFBTSxVQUFVLGdCQUFjNEQsSUFBQUMsR0FBbUIsTUFBbkIsZ0JBQUFELEVBQXNCLFFBQU8sRUFBRTtBQUFBLEtBQUcsR0FFM0c0QyxJQUFjLE1BQU07O0FBQ3hCLE1BQUFuQyxFQUFNLFFBQVEsS0FDZFQsSUFBQXRFLEVBQU0sVUFBTixRQUFBc0UsRUFBYTtBQUFBLElBQU0sR0FHZnNDLElBQWMsTUFBTTtBQUN4QixNQUFBUixFQUFTLFFBQVE7QUFBQSxJQUFBLEdBR2JTLElBQWlCLE1BQU07QUFDM0IsTUFBQVQsRUFBUyxRQUFRLElBQ0FlO0lBQUEsR0FHYkMsSUFBYyxNQUFNOztBQUN4QixVQUFJMUcsRUFBTSxnQkFBZ0I7QUFDbEIsY0FBQVIsTUFBU29FLElBQUFTLEVBQU0sTUFBTSxNQUFNLEtBQUssTUFBdkIsZ0JBQUFULEVBQTBCLEtBQUssUUFBTztBQUVyRCxRQUFBUyxFQUFNLFFBQVE3RSxJQUFTUSxFQUFNLGVBQWVSLENBQU0sSUFBSTtBQUFBLE1BQ3hEO0FBQUEsSUFBQSxHQUdJaUgsSUFBbUIsTUFBTTtBQUNQLE1BQUF4QixHQUFBO0FBQUEsUUFDcEIsT0FBQUM7QUFBQSxRQUNBLGdCQUFnQmxGLEVBQU07QUFBQSxRQUN0QixXQUFXQSxFQUFNO0FBQUEsUUFDakIsV0FBV0EsRUFBTTtBQUFBLFFBQ2pCLFVBQVVBLEVBQU07QUFBQSxRQUNoQixZQUFZQSxFQUFNO0FBQUEsUUFDbEIsT0FBQXFFO0FBQUEsTUFBQSxDQUNEO0FBQUEsSUFBQSxHQUdHc0MsS0FBYyxDQUFDNUMsTUFBcUI7QUFDeEMsTUFBQU0sRUFBTSxRQUFRTjtBQUFBLElBQUE7QUFHaEIsV0FBQWhFO0FBQUEsTUFDRSxNQUFNQyxFQUFNO0FBQUEsTUFDWixDQUFDK0QsR0FBVUMsTUFBYTtBQUN0QixTQUFJRCxNQUFhQyxLQUFZRCxNQUFhTSxFQUFNLFdBQzlDQSxFQUFNLFFBQVFOO0FBQUEsTUFFbEI7QUFBQSxJQUFBLEdBR0ZQLEVBQWEsRUFBRSxPQUFBMEIsR0FBTyxhQUFBeUIsSUFBYSxPQUFBdEMsRUFBTyxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2lCQ25GcENhLElBQVFwRixFQUFJRSxFQUFNLEtBQUssR0FDdkIwRixJQUFXNUYsRUFBSSxFQUFLLEdBQ3BCUixJQUFRUSxFQUE2QixJQUFJLEdBQ3pDdUUsSUFBUXZFLEVBQUlFLEVBQU0sS0FBSyxHQUV2QjJGLElBQWV4RSxFQUFTLE1BQU1vRCxHQUFnQnZFLEVBQU0sT0FBT2tGLEVBQU0sS0FBSyxDQUFDLEdBQ3ZFVSxJQUFpQnpFLEVBQVMsTUFBT25CLEVBQU0sV0FBVyxHQUFHQSxFQUFNLEtBQUssT0FBT0EsRUFBTSxLQUFNLEdBQ25GNkYsSUFBVzFFLEVBQVMsTUFBT25CLEVBQU0sWUFBWSxDQUFDcUUsRUFBTSxTQUFVSyxHQUFpQlEsRUFBTSxPQUFPbEYsRUFBTSxLQUFLLENBQUMsR0FDeEc4RixJQUFlM0UsRUFBUyxNQUFNdUUsRUFBUyxTQUFTLENBQUNLLEVBQVEsS0FBSyxHQUM5REEsSUFBVTVFLEVBQVMsTUFBTWtELEVBQU0sVUFBVSxFQUFFLEdBQzNDVixJQUFXeEMsRUFBUyxNQUFPOztBQUFBLGFBQUFuQixFQUFNLFVBQVVBLEVBQU0sVUFBVSxnQkFBYzRELElBQUFDLEdBQW1CLE1BQW5CLGdCQUFBRCxFQUFzQixRQUFPLEVBQUU7QUFBQSxLQUFHLEdBRTNHc0MsSUFBYyxNQUFNO0FBQ3hCLE1BQUFSLEVBQVMsUUFBUTtBQUFBLElBQUEsR0FHYlMsSUFBaUIsTUFBTTtBQUMzQixNQUFBVCxFQUFTLFFBQVE7QUFBQSxJQUFBLEdBR2JlLElBQW1CLE1BQ2hCeEIsR0FBc0I7QUFBQSxNQUMzQixPQUFBQztBQUFBLE1BQ0EsZ0JBQWdCbEYsRUFBTTtBQUFBLE1BQ3RCLFdBQVdBLEVBQU07QUFBQSxNQUNqQixXQUFXQSxFQUFNO0FBQUEsTUFDakIsT0FBQXFFO0FBQUEsSUFBQSxDQUNEO0FBR0gsV0FBQXRFO0FBQUEsTUFDRSxNQUFNQyxFQUFNO0FBQUEsTUFDWixDQUFDK0QsR0FBVUMsTUFBYTtBQUN0QixTQUFJRCxNQUFhQyxLQUFZRCxNQUFhTSxFQUFNLFdBQzlDQSxFQUFNLFFBQVFOO0FBQUEsTUFFbEI7QUFBQSxJQUFBLEdBR1dQLEVBQUEsRUFBRSxPQUFBMEIsR0FBTyxPQUFBYixFQUFBLENBQU87Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2lCQ2pEdkJ1QyxJQUFVekYsRUFBUyxNQUFNbkIsRUFBTSxlQUFlQSxFQUFNLFlBQVk7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7aUJDWmhFNkcsSUFBUy9HLEVBQUlFLEVBQU0sTUFBTSxHQUN6QjhHLElBQXNCaEgsRUFBbUIsSUFBSSxHQUU3Q2lILElBQWMsQ0FBQ2QsTUFBaUI7QUFDcEMsTUFBQVksRUFBTyxRQUFRLElBRUlHLEtBQ25CNUQsRUFBSyxTQUFTNkMsQ0FBSztBQUFBLElBQUEsR0FHZmUsSUFBcUIsTUFBTTtBQUMvQixNQUFJSCxFQUFPLFNBQ1RDLEVBQW9CLFFBQVEsT0FBTyxTQUMxQixTQUFBLEtBQUssTUFBTSxXQUFXLFVBQy9CQSxFQUFvQixTQUFTLE9BQU8sU0FBUyxHQUFHQSxFQUFvQixLQUFLLEdBRXhERyxRQUVSLFNBQUEsS0FBSyxNQUFNLFdBQVcsSUFFWEM7SUFDdEIsR0FHSUMsSUFBZ0IsQ0FBQ2xCLE1BQXlCO0FBQzFDLE1BQUFBLEVBQU0sUUFBUSxhQUNoQkEsRUFBTSxnQkFBZ0IsR0FDdEJjLEVBQVlkLENBQUs7QUFBQSxJQUNuQixHQUdJZ0IsSUFBbUIsTUFBTTtBQUN0QixhQUFBLGlCQUFpQixXQUFXRSxDQUFhO0FBQUEsSUFBQSxHQUc1Q0QsSUFBc0IsTUFBTTtBQUN6QixhQUFBLG9CQUFvQixXQUFXQyxDQUFhO0FBQUEsSUFBQTtBQUdyRCxXQUFBdkcsR0FBVSxNQUFNO0FBQ0ssTUFBQW9HO0lBQUEsQ0FDcEIsR0FFRGpIO0FBQUEsTUFDRSxNQUFNQyxFQUFNO0FBQUEsTUFDWixDQUFDK0QsTUFBYTtBQUNaLFFBQUE4QyxFQUFPLFFBQVE5QyxHQUNJaUQ7TUFDckI7QUFBQSxJQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztpQkM1Q0lJLElBQWN0SCxFQUFJRSxFQUFNLFdBQVcsR0FFbkNxSCxJQUFvQmxHLEVBQVMsTUFBTSxJQUFJLE1BQU1uQixFQUFNLFNBQVMsRUFBRSxLQUFLLEVBQUUsRUFBRSxJQUFJLENBQUNzSCxHQUFPQyxNQUFVQSxJQUFRLENBQUMsQ0FBQyxHQUV2R3pELElBQWMsQ0FBQ21DLEdBQWNzQixNQUFrQjtBQUNuRCxNQUFBSCxFQUFZLFFBQVFHLEdBRWZuRSxFQUFBLFVBQVU2QyxHQUFPc0IsQ0FBSztBQUFBLElBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7aUJDVnZCQyxJQUFZMUgsRUFBSUUsRUFBTSxnQkFBZ0IsR0FFdEM4RCxJQUFjLENBQUNtQyxHQUFjc0IsTUFBa0I7QUFDbkQsTUFBQUMsRUFBVSxRQUFRRCxHQUVibkUsRUFBQSxVQUFVNkMsR0FBT3NCLENBQUs7QUFBQSxJQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7aUJDRHZCRSxJQUFXM0gsRUFBSUUsRUFBTSxRQUFRLEdBRTdCOEQsSUFBYyxDQUFDbUMsTUFBaUI7QUFDaEMsTUFBQ2pHLEVBQU0sYUFDQXlILEVBQUEsUUFBUSxDQUFDQSxFQUFTLE9BRXRCckUsRUFBQSxVQUFVNkMsR0FBT3dCLEVBQVMsS0FBSztBQUFBLElBQ3RDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7c0VDdkJTQyxLQUFTO0FBQUEsRUFDcEIsUUFBUXJJO0FBQUEsRUFDUixPQUFPTTtBQUFBLEVBQ1AsT0FBT0M7QUFDVCxHQUVhK0gsSUFBZTtBQUFBLEVBQzFCLE9BQU87QUFBQSxFQUNQLG9CQUFvQjtBQUFBLEVBQ3BCLFlBQVk7QUFBQSxFQUNaLE9BQ0U7QUFBQSxFQUNGLGlCQUFpQjtBQUFBLEVBQ2pCLE9BQU87QUFBQSxFQUNQLE9BQU87QUFDVCxHQ2hCYUMsS0FBb0I7QUFBQSxFQUMvQixPQUFPO0FBQUEsSUFDTCxXQUFXO0FBQUEsSUFDWCxPQUFPO0FBQUEsRUFDVDtBQUFBLEVBQ0EsT0FBTztBQUFBLEVBQ1AsSUFBSTtBQUNOLEdDWmFDLEtBQVE7QUFBQSxFQUNuQixNQUFNO0FBQUEsRUFDTixLQUFLO0FBQUEsRUFDTCxVQUFVO0FBQUEsRUFDVixPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxLQUFLO0FBQUEsRUFDTCxJQUFJO0FBQUEsRUFDSixNQUFNO0FBQUEsRUFDTixPQUFPO0FBQ1QsR0NQYUMsS0FBWTtBQUFBLEVBQ3ZCLG9CQUFvQjNELEVBQVl3RCxFQUFhLGtCQUFrQjtBQUFBLEVBQy9ELGFBQWF4RCxFQUFZd0QsRUFBYSxVQUFVO0FBQUEsRUFDaEQsT0FBT3hELEVBQVl3RCxFQUFhLEtBQUs7QUFBQSxFQUNyQyxRQUFReEQsRUFBWXdELEVBQWEsZUFBZTtBQUFBLEVBQ2hELE9BQU94RCxFQUFZd0QsRUFBYSxLQUFLO0FBQ3ZDOyJ9
|
|
2364
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlkZS1kZXNpZ24tc3lzdGVtLmVzbS5qcyIsInNvdXJjZXMiOlsiLi4vc3JjL3R5cGVzL1N0eWxlcy50cyIsIi4uL3NyYy90eXBlcy9PcmllbnRhdGlvbi50cyIsIi4uL3NyYy90eXBlcy9TaXplLnRzIiwiLi4vc3JjL3V0aWxpdGllcy9mb3JtYXQudHMiLCIuLi9zcmMvY29tcG9uZW50cy9UaWRlSWNvbi52dWUiLCIuLi9zcmMvdHlwZXMvSWNvbi50cyIsIi4uL3NyYy9jb21wb25lbnRzL1RpZGVBY2NvcmRpb25JdGVtLnZ1ZSIsIi4uL3NyYy90eXBlcy9FbGVtZW50LnRzIiwiLi4vc3JjL3R5cGVzL1ByaW9yaXR5LnRzIiwiLi4vc3JjL3R5cGVzL1RhcmdldC50cyIsIi4uL3NyYy90eXBlcy9BbGVydC50cyIsIi4uL3NyYy9jb21wb25lbnRzL1RpZGVBbGVydC52dWUiLCIuLi9zcmMvdHlwZXMvQmFkZ2UudHMiLCIuLi9zcmMvY29tcG9uZW50cy9UaWRlQ2Fyb3VzZWwudnVlIiwiLi4vc3JjL2NvbXBvbmVudHMvVGlkZUltYWdlLnZ1ZSIsIi4uL3NyYy9jb21wb25lbnRzL1RpZGVJbnB1dENoZWNrYm94LnZ1ZSIsIi4uL3NyYy9jb21wb25lbnRzL1RpZGVJbnB1dFJhZGlvLnZ1ZSIsIi4uL3NyYy91dGlsaXRpZXMvdmFsaWRhdGlvbi50cyIsIi4uL3NyYy9jb21wb25lbnRzL1RpZGVJbnB1dFNlbGVjdC52dWUiLCIuLi9zcmMvdHlwZXMvVGV4dElucHV0LnRzIiwiLi4vc3JjL2NvbXBvbmVudHMvVGlkZUlucHV0VGV4dC52dWUiLCIuLi9zcmMvY29tcG9uZW50cy9UaWRlSW5wdXRUZXh0YXJlYS52dWUiLCIuLi9zcmMvY29tcG9uZW50cy9UaWRlTGluay52dWUiLCIuLi9zcmMvY29tcG9uZW50cy9UaWRlTW9kYWwudnVlIiwiLi4vc3JjL2NvbXBvbmVudHMvVGlkZVBhZ2luYXRpb24udnVlIiwiLi4vc3JjL2NvbXBvbmVudHMvVGlkZVRhYnMudnVlIiwiLi4vc3JjL2NvbXBvbmVudHMvVGlkZVRvZ2dsZS52dWUiLCIuLi9zcmMvdHlwZXMvRm9ybWF0dGVkLnRzIiwiLi4vc3JjL3R5cGVzL0xpc3RpbmdNZWRpYS50cyIsIi4uL3NyYy90eXBlcy9SZWFsbS50cyIsIi4uL3NyYy90eXBlcy9WYWxpZGF0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHZ1ZS9zb3J0LWtleXMgKi9cblxuZXhwb3J0IGNvbnN0IEJSRUFLUE9JTlQgPSB7XG4gIFNNOiAnc20nLFxuICBNRDogJ21kJyxcbiAgTEc6ICdsZycsXG4gIFhMOiAneGwnLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgQnJlYWtwb2ludCA9ICh0eXBlb2YgQlJFQUtQT0lOVClba2V5b2YgdHlwZW9mIEJSRUFLUE9JTlRdO1xuXG5leHBvcnQgY29uc3QgQ1NTID0ge1xuICB3aXRoQnJlYWtwb2ludDogKHV0aWxpdGllczogc3RyaW5nW10sIGJyZWFrcG9pbnQ6IEJyZWFrcG9pbnQpOiBzdHJpbmdbXSA9PiB7XG4gICAgcmV0dXJuIHV0aWxpdGllcy5tYXAoKHV0aWxpdHkpID0+IGAke2JyZWFrcG9pbnR9LSR7dXRpbGl0eX1gKTtcbiAgfSxcbiAgQUxJR046IHtcbiAgICBYOiB7XG4gICAgICBDRU5URVI6ICd0aWRlLXRleHQtY2VudGVyJyxcbiAgICAgIExFRlQ6ICd0aWRlLXRleHQtbGVmdCcsXG4gICAgICBSSUdIVDogJ3RpZGUtdGV4dC1yaWdodCcsXG4gICAgfSxcbiAgICBZOiB7XG4gICAgICBNSURETEU6ICd0aWRlLWFsaWduLW1pZGRsZScsXG4gICAgICBJTklUSUFMOiAndGlkZS1hbGlnbi1pbml0aWFsJyxcbiAgICB9LFxuICB9LFxuICBBWElTMToge1xuICAgIEFST1VORDogJ3RpZGUtYXhpczEtYXJvdW5kJyxcbiAgICBCRVRXRUVOOiAndGlkZS1heGlzMS1iZXR3ZWVuJyxcbiAgICBDRU5URVI6ICd0aWRlLWF4aXMxLWNlbnRlcicsXG4gICAgRU5EOiAndGlkZS1heGlzMS1lbmQnLFxuICAgIFNUQVJUOiAndGlkZS1heGlzMS1zdGFydCcsXG4gIH0sXG4gIEFYSVMyOiB7XG4gICAgQVJPVU5EOiAndGlkZS1heGlzMi1hcm91bmQnLFxuICAgIENFTlRFUjogJ3RpZGUtYXhpczItY2VudGVyJyxcbiAgICBFTkQ6ICd0aWRlLWF4aXMyLWVuZCcsXG4gICAgU1RBUlQ6ICd0aWRlLWF4aXMyLXN0YXJ0JyxcbiAgfSxcbiAgQkc6IHtcbiAgICBJTklUSUFMOiAndGlkZS1iZy1pbml0aWFsJyxcbiAgICBCTFVSOiAndGlkZS1iZy1ibHVyJyxcbiAgICBFUlJPUjogJ3RpZGUtYmctZXJyb3InLFxuICAgIElORk86ICd0aWRlLWJnLWluZm8nLFxuICAgIFBSSU1BUlk6ICd0aWRlLWJnLXByaW1hcnknLFxuICAgIFNFQ09OREFSWTogJ3RpZGUtYmctc2Vjb25kYXJ5JyxcbiAgICBTVUNDRVNTOiAndGlkZS1iZy1zdWNjZXNzJyxcbiAgICBTVVJGQUNFOiB7XG4gICAgICBBQ0NFTlQ6ICd0aWRlLWJnLXN1cmZhY2UtYWNjZW50JyxcbiAgICAgIEFDQ0VOVF9WQVJJQU5UOiAndGlkZS1iZy1zdXJmYWNlLWFjY2VudC12YXJpYW50JyxcbiAgICAgIEJSQU5EOiAndGlkZS1iZy1zdXJmYWNlLWJyYW5kJyxcbiAgICAgIERFRkFVTFQ6ICd0aWRlLWJnLXN1cmZhY2UnLFxuICAgICAgRVJST1I6ICd0aWRlLWJnLXN1cmZhY2UtZXJyb3InLFxuICAgICAgRkxPQVRJTkc6ICd0aWRlLWJnLXN1cmZhY2UtZmxvYXRpbmcnLFxuICAgICAgR1JBRElFTlQ6ICd0aWRlLWJnLXN1cmZhY2UtZ3JhZGllbnQnLFxuICAgICAgSU5GTzogJ3RpZGUtYmctc3VyZmFjZS1pbmZvJyxcbiAgICAgIFNVQ0NFU1M6ICd0aWRlLWJnLXN1cmZhY2Utc3VjY2VzcycsXG4gICAgICBWQVJJQU5UOiAndGlkZS1iZy1zdXJmYWNlLXZhcmlhbnQnLFxuICAgICAgV0FSTklORzogJ3RpZGUtYmctc3VyZmFjZS13YXJuaW5nJyxcbiAgICB9LFxuICAgIFdBUk5JTkc6ICd0aWRlLWJnLXdhcm5pbmcnLFxuICB9LFxuICBCT1JERVI6IHtcbiAgICBDT0xPUjoge1xuICAgICAgSU5JVElBTDogJ3RpZGUtYm9yZGVyLWNvbG9yLWluaXRpYWwnLFxuICAgICAgREVGQVVMVDogJ3RpZGUtYm9yZGVyJyxcbiAgICAgIEZMT0FUSU5HOiAndGlkZS1ib3JkZXItZmxvYXRpbmcnLFxuICAgICAgSElHSDogJ3RpZGUtYm9yZGVyLWhpZ2gnLFxuICAgICAgTE9XOiAndGlkZS1ib3JkZXItbG93JyxcbiAgICAgIFBSSU1BUlk6ICd0aWRlLWJvcmRlci1wcmltYXJ5JyxcbiAgICB9LFxuICAgIFJBRElVUzoge1xuICAgICAgWkVSTzogJ3RpZGUtcmFkaXVzLTAnLFxuICAgICAgUVVBUlRFUjogJ3RpZGUtcmFkaXVzLTEvNCcsXG4gICAgICBIQUxGOiAndGlkZS1yYWRpdXMtMS8yJyxcbiAgICAgIE9ORTogJ3RpZGUtcmFkaXVzLTEnLFxuICAgICAgRlVMTDogJ3RpZGUtcmFkaXVzLWZ1bGwnLFxuICAgIH0sXG4gICAgQk9UVE9NOiB7XG4gICAgICBaRVJPOiAndGlkZS1ib3JkZXItYm90dG9tLTAnLFxuICAgICAgT05FOiAndGlkZS1ib3JkZXItYm90dG9tLTEnLFxuICAgICAgVFdPOiAndGlkZS1ib3JkZXItYm90dG9tLTInLFxuICAgIH0sXG4gICAgRlVMTDoge1xuICAgICAgWkVSTzogJ3RpZGUtYm9yZGVyLTAnLFxuICAgICAgT05FOiAndGlkZS1ib3JkZXItMScsXG4gICAgICBUV086ICd0aWRlLWJvcmRlci0yJyxcbiAgICB9LFxuICAgIExFRlQ6IHtcbiAgICAgIFpFUk86ICd0aWRlLWJvcmRlci1sZWZ0LTAnLFxuICAgICAgT05FOiAndGlkZS1ib3JkZXItbGVmdC0xJyxcbiAgICAgIFRXTzogJ3RpZGUtYm9yZGVyLWxlZnQtMicsXG4gICAgfSxcbiAgICBSSUdIVDoge1xuICAgICAgWkVSTzogJ3RpZGUtYm9yZGVyLXJpZ2h0LTAnLFxuICAgICAgT05FOiAndGlkZS1ib3JkZXItcmlnaHQtMScsXG4gICAgICBUV086ICd0aWRlLWJvcmRlci1yaWdodC0yJyxcbiAgICB9LFxuICAgIFRPUDoge1xuICAgICAgWkVSTzogJ3RpZGUtYm9yZGVyLXRvcC0wJyxcbiAgICAgIE9ORTogJ3RpZGUtYm9yZGVyLXRvcC0xJyxcbiAgICAgIFRXTzogJ3RpZGUtYm9yZGVyLXRvcC0yJyxcbiAgICB9LFxuICB9LFxuICBCT1hfU0laSU5HOiB7XG4gICAgQk9SREVSX0JPWDogJ3RpZGUtYm94LWJvcmRlcicsXG4gICAgQ09OVEVOVF9CT1g6ICd0aWRlLWJveC1jb250ZW50JyxcbiAgfSxcbiAgQlJFQUtfV09SRDoge1xuICAgIE9GRjogJ3RpZGUtYnJlYWstaW5pdGlhbCcsXG4gICAgT046ICd0aWRlLWJyZWFrLXdvcmQnLFxuICB9LFxuICBDT0xVTU5TOiB7XG4gICAgSU5JVElBTDogJ3RpZGUtY29sdW1ucy1pbml0aWFsJyxcbiAgICBPTkU6ICd0aWRlLWNvbHVtbnMtMScsXG4gICAgVFdPOiAndGlkZS1jb2x1bW5zLTInLFxuICAgIFRIUkVFOiAndGlkZS1jb2x1bW5zLTMnLFxuICAgIEZPVVI6ICd0aWRlLWNvbHVtbnMtNCcsXG4gIH0sXG4gIENVUlNPUjoge1xuICAgIE5PVF9BTExPV0VEOiAndGlkZS1jdXJzb3Itbm90LWFsbG93ZWQnLFxuICAgIFBPSU5URVI6ICd0aWRlLWN1cnNvci1wb2ludGVyJyxcbiAgICBURVhUOiAndGlkZS1jdXJzb3ItdGV4dCcsXG4gIH0sXG4gIERJU1BMQVk6IHtcbiAgICBCTE9DSzogJ3RpZGUtZGlzcGxheS1ibG9jaycsXG4gICAgQ09OVEVOVFM6ICd0aWRlLWNvbnRlbnRzJyxcbiAgICBGTEVYOiAndGlkZS1kaXNwbGF5LWZsZXgnLFxuICAgIEdSSUQ6ICd0aWRlLWRpc3BsYXktZ3JpZCcsXG4gICAgSU5JVElBTDogJ2luaXRpYWwnLFxuICAgIElOTElORTogJ3RpZGUtZGlzcGxheS1pbmxpbmUnLFxuICAgIElOTElORV9CTE9DSzogJ3RpZGUtZGlzcGxheS1pbmxpbmUtYmxvY2snLFxuICAgIElOTElORV9GTEVYOiAndGlkZS1kaXNwbGF5LWlubGluZS1mbGV4JyxcbiAgICBOT05FOiAndGlkZS1kaXNwbGF5LW5vbmUnLFxuICB9LFxuICBGTEVYOiB7XG4gICAgQkFTSVM6IHtcbiAgICAgIEFVVE86ICd0aWRlLWZsZXgtYmFzaXMtYXV0bycsXG4gICAgICBaRVJPOiAndGlkZS1mbGV4LWJhc2lzLTAnLFxuICAgIH0sXG4gICAgRElSRUNUSU9OOiB7XG4gICAgICBDT0xVTU46ICd0aWRlLWZsZXgtY29sdW1uJyxcbiAgICAgIENPTFVNTl9SRVZFUlNFOiAndGlkZS1mbGV4LWNvbHVtbi1yZXZlcnNlJyxcbiAgICAgIFJPVzogJ3RpZGUtZmxleC1yb3cnLFxuICAgICAgUk9XX1JFVkVSU0U6ICd0aWRlLWZsZXgtcm93LXJldmVyc2UnLFxuICAgIH0sXG4gICAgR1JPVzoge1xuICAgICAgT0ZGOiAndGlkZS1ncm93LW5vbmUnLFxuICAgICAgT046ICd0aWRlLWdyb3cnLFxuICAgIH0sXG4gICAgU0hSSU5LOiB7XG4gICAgICBPRkY6ICd0aWRlLXNocmluay1ub25lJyxcbiAgICAgIE9OOiAndGlkZS1zaHJpbmsnLFxuICAgIH0sXG4gICAgV1JBUDogJ3RpZGUtZmxleC13cmFwJyxcbiAgfSxcbiAgRk9OVDoge1xuICAgIENPTE9SOiB7XG4gICAgICBQUklNQVJZOiAndGlkZS1mb250LW9uLXByaW1hcnknLFxuICAgICAgU0VDT05EQVJZOiAndGlkZS1mb250LW9uLXNlY29uZGFyeScsXG4gICAgICBTVVJGQUNFOiB7XG4gICAgICAgIEJSQU5EOiAndGlkZS1mb250LW9uLXN1cmZhY2UtYnJhbmQnLFxuICAgICAgICBERUZBVUxUOiAndGlkZS1mb250LW9uLXN1cmZhY2UnLFxuICAgICAgICBJTlZFUlNFOiAndGlkZS1mb250LW9uLXN1cmZhY2UtaW52ZXJzZScsXG4gICAgICAgIFZBUklBTlQ6ICd0aWRlLWZvbnQtb24tc3VyZmFjZS12YXJpYW50JyxcbiAgICAgICAgVkFSSUFOVF9JTlZFUlNFOiAndGlkZS1mb250LW9uLXN1cmZhY2UtdmFyaWFudC1pbnZlcnNlJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBTSVpFOiB7XG4gICAgICBUV0VMVkU6ICd0aWRlLWZvbnQtMTInLFxuICAgICAgRk9VUlRFRU46ICd0aWRlLWZvbnQtMTQnLFxuICAgICAgU0lYVEVFTjogJ3RpZGUtZm9udC0xNicsXG4gICAgICBUV0VOVFk6ICd0aWRlLWZvbnQtMjAnLFxuICAgICAgVFdFTlRZX0ZPVVI6ICd0aWRlLWZvbnQtMjQnLFxuICAgICAgVEhJUlRZX1RXTzogJ3RpZGUtZm9udC0zMicsXG4gICAgfSxcbiAgICBXRUlHSFQ6IHtcbiAgICAgIEZPVVJfSFVORFJFRDogJ3RpZGUtZm9udC00MDAnLFxuICAgICAgRklWRV9IVU5EUkVEOiAndGlkZS1mb250LTUwMCcsXG4gICAgICBTSVhfSFVORFJFRDogJ3RpZGUtZm9udC02MDAnLFxuICAgICAgU0VWRU5fSFVORFJFRDogJ3RpZGUtZm9udC03MDAnLFxuICAgIH0sXG4gIH0sXG4gIEdBUDoge1xuICAgIFpFUk86ICd0aWRlLWdhcC0wJyxcbiAgICBRVUFSVEVSOiAndGlkZS1nYXAtMS80JyxcbiAgICBIQUxGOiAndGlkZS1nYXAtMS8yJyxcbiAgICBPTkU6ICd0aWRlLWdhcC0xJyxcbiAgICBUV086ICd0aWRlLWdhcC0yJyxcbiAgICBGT1VSOiAndGlkZS1nYXAtNCcsXG4gIH0sXG4gIEdSSUQ6IHtcbiAgICBFTkQ6IHtcbiAgICAgIE9ORTogJ3RpZGUtZW5kLTEnLFxuICAgICAgVFdPOiAndGlkZS1lbmQtMicsXG4gICAgICBUSFJFRTogJ3RpZGUtZW5kLTMnLFxuICAgICAgRk9VUjogJ3RpZGUtZW5kLTQnLFxuICAgICAgRklWRTogJ3RpZGUtZW5kLTUnLFxuICAgICAgU0lYOiAndGlkZS1lbmQtNicsXG4gICAgICBTRVZFTjogJ3RpZGUtZW5kLTcnLFxuICAgICAgRUlHSFQ6ICd0aWRlLWVuZC04JyxcbiAgICAgIE5JTkU6ICd0aWRlLWVuZC05JyxcbiAgICAgIFRFTjogJ3RpZGUtZW5kLTEwJyxcbiAgICAgIEVMRVZFTjogJ3RpZGUtZW5kLTExJyxcbiAgICAgIFRXRUxWRTogJ3RpZGUtZW5kLTEyJyxcbiAgICAgIFRISVJURUVOOiAndGlkZS1lbmQtMTMnLFxuICAgIH0sXG4gICAgRkxVSUQ6ICd0aWRlLWZsdWlkJyxcbiAgICBMQVlPVVQ6ICd0aWRlLWdyaWQtbGF5b3V0JyxcbiAgICBTVEFSVDoge1xuICAgICAgWkVSTzogJ3RpZGUtc3RhcnQtMCcsXG4gICAgICBPTkU6ICd0aWRlLXN0YXJ0LTEnLFxuICAgICAgVFdPOiAndGlkZS1zdGFydC0yJyxcbiAgICAgIFRIUkVFOiAndGlkZS1zdGFydC0zJyxcbiAgICAgIEZPVVI6ICd0aWRlLXN0YXJ0LTQnLFxuICAgICAgRklWRTogJ3RpZGUtc3RhcnQtNScsXG4gICAgICBTSVg6ICd0aWRlLXN0YXJ0LTYnLFxuICAgICAgU0VWRU46ICd0aWRlLXN0YXJ0LTcnLFxuICAgICAgRUlHSFQ6ICd0aWRlLXN0YXJ0LTgnLFxuICAgICAgTklORTogJ3RpZGUtc3RhcnQtOScsXG4gICAgICBURU46ICd0aWRlLXN0YXJ0LTEwJyxcbiAgICAgIEVMRVZFTjogJ3RpZGUtc3RhcnQtMTEnLFxuICAgICAgVFdFTFZFOiAndGlkZS1zdGFydC0xMicsXG4gICAgfSxcbiAgICBYTDogJ3RpZGUtZ3JpZC14bCcsXG4gIH0sXG4gIEhFSUdIVDoge1xuICAgIEFVVE86ICd0aWRlLWhlaWdodC1hdXRvJyxcbiAgICBaRVJPOiAndGlkZS1oZWlnaHQtMCcsXG4gICAgRlVMTDogJ3RpZGUtaGVpZ2h0LWZ1bGwnLFxuICB9LFxuICBJU09MQVRJT046IHtcbiAgICBJU09MQVRFOiAndGlkZS1pc29sYXRlJyxcbiAgfSxcbiAgTElTVF9CVUxMRVRTOiB7XG4gICAgT0ZGOiAndGlkZS1saXN0LW5vbmUnLFxuICB9LFxuICBNQVJHSU46IHtcbiAgICBCT1RUT006IHtcbiAgICAgIFpFUk86ICd0aWRlLW1hcmdpbi1ib3R0b20tMCcsXG4gICAgICBRVUFSVEVSOiAndGlkZS1tYXJnaW4tYm90dG9tLTEvNCcsXG4gICAgICBIQUxGOiAndGlkZS1tYXJnaW4tYm90dG9tLTEvMicsXG4gICAgICBPTkU6ICd0aWRlLW1hcmdpbi1ib3R0b20tMScsXG4gICAgICBUV086ICd0aWRlLW1hcmdpbi1ib3R0b20tMicsXG4gICAgICBGT1VSOiAndGlkZS1tYXJnaW4tYm90dG9tLTQnLFxuICAgIH0sXG4gICAgRlVMTDoge1xuICAgICAgWkVSTzogJ3RpZGUtbWFyZ2luLTAnLFxuICAgICAgUVVBUlRFUjogJ3RpZGUtbWFyZ2luLTEvNCcsXG4gICAgICBIQUxGOiAndGlkZS1tYXJnaW4tMS8yJyxcbiAgICAgIE9ORTogJ3RpZGUtbWFyZ2luLTEnLFxuICAgICAgVFdPOiAndGlkZS1tYXJnaW4tMicsXG4gICAgICBGT1VSOiAndGlkZS1tYXJnaW4tNCcsXG4gICAgfSxcbiAgICBMRUZUOiB7XG4gICAgICBBVVRPOiAndGlkZS1tYXJnaW4tbGVmdC1hdXRvJyxcbiAgICAgIFpFUk86ICd0aWRlLW1hcmdpbi1sZWZ0LTAnLFxuICAgICAgUVVBUlRFUjogJ3RpZGUtbWFyZ2luLWxlZnQtMS80JyxcbiAgICAgIEhBTEY6ICd0aWRlLW1hcmdpbi1sZWZ0LTEvMicsXG4gICAgICBPTkU6ICd0aWRlLW1hcmdpbi1sZWZ0LTEnLFxuICAgICAgVFdPOiAndGlkZS1tYXJnaW4tbGVmdC0yJyxcbiAgICAgIEZPVVI6ICd0aWRlLW1hcmdpbi1sZWZ0LTQnLFxuICAgIH0sXG4gICAgUklHSFQ6IHtcbiAgICAgIEFVVE86ICd0aWRlLW1hcmdpbi1yaWdodC1hdXRvJyxcbiAgICAgIFpFUk86ICd0aWRlLW1hcmdpbi1yaWdodC0wJyxcbiAgICAgIFFVQVJURVI6ICd0aWRlLW1hcmdpbi1yaWdodC0xLzQnLFxuICAgICAgSEFMRjogJ3RpZGUtbWFyZ2luLXJpZ2h0LTEvMicsXG4gICAgICBPTkU6ICd0aWRlLW1hcmdpbi1yaWdodC0xJyxcbiAgICAgIFRXTzogJ3RpZGUtbWFyZ2luLXJpZ2h0LTInLFxuICAgICAgRk9VUjogJ3RpZGUtbWFyZ2luLXJpZ2h0LTQnLFxuICAgIH0sXG4gICAgVE9QOiB7XG4gICAgICBaRVJPOiAndGlkZS1tYXJnaW4tdG9wLTAnLFxuICAgICAgUVVBUlRFUjogJ3RpZGUtbWFyZ2luLXRvcC0xLzQnLFxuICAgICAgSEFMRjogJ3RpZGUtbWFyZ2luLXRvcC0xLzInLFxuICAgICAgT05FOiAndGlkZS1tYXJnaW4tdG9wLTEnLFxuICAgICAgVFdPOiAndGlkZS1tYXJnaW4tdG9wLTInLFxuICAgICAgRk9VUjogJ3RpZGUtbWFyZ2luLXRvcC00JyxcbiAgICB9LFxuICAgIFg6IHtcbiAgICAgIEFVVE86ICd0aWRlLW1hcmdpbi14LWF1dG8nLFxuICAgICAgWkVSTzogJ3RpZGUtbWFyZ2luLXgtMCcsXG4gICAgICBRVUFSVEVSOiAndGlkZS1tYXJnaW4teC0xLzQnLFxuICAgICAgSEFMRjogJ3RpZGUtbWFyZ2luLXgtMS8yJyxcbiAgICAgIE9ORTogJ3RpZGUtbWFyZ2luLXgtMScsXG4gICAgICBUV086ICd0aWRlLW1hcmdpbi14LTInLFxuICAgICAgRk9VUjogJ3RpZGUtbWFyZ2luLXgtNCcsXG4gICAgfSxcbiAgICBZOiB7XG4gICAgICBaRVJPOiAndGlkZS1tYXJnaW4teS0wJyxcbiAgICAgIFFVQVJURVI6ICd0aWRlLW1hcmdpbi15LTEvNCcsXG4gICAgICBIQUxGOiAndGlkZS1tYXJnaW4teS0xLzInLFxuICAgICAgT05FOiAndGlkZS1tYXJnaW4teS0xJyxcbiAgICAgIFRXTzogJ3RpZGUtbWFyZ2luLXktMicsXG4gICAgICBGT1VSOiAndGlkZS1tYXJnaW4teS00JyxcbiAgICB9LFxuICB9LFxuICBPQkpFQ1Q6IHtcbiAgICBDRU5URVI6ICd0aWRlLW9iamVjdC1jZW50ZXInLFxuICAgIENPTlRBSU46ICd0aWRlLW9iamVjdC1jb250YWluJyxcbiAgICBDT1ZFUjogJ3RpZGUtb2JqZWN0LWNvdmVyJyxcbiAgICBTQ0FMRV9ET1dOOiAndGlkZS1vYmplY3Qtc2NhbGUtZG93bicsXG4gIH0sXG4gIE9QQUNJVFk6IHtcbiAgICBPRkY6ICd0aWRlLW9wYWNpdHktbm9uZScsXG4gICAgT046ICd0aWRlLW9wYWNpdHknLFxuICB9LFxuICBPVkVSRkxPVzoge1xuICAgIFg6IHtcbiAgICAgIEFVVE86ICd0aWRlLXgtYXV0bycsXG4gICAgICBISURERU46ICd0aWRlLXgtaGlkZGVuJyxcbiAgICAgIFNDUk9MTDogJ3RpZGUteC1zY3JvbGwnLFxuICAgIH0sXG4gICAgWFk6IHtcbiAgICAgIEFVVE86ICd0aWRlLXh5LWF1dG8nLFxuICAgICAgSElEREVOOiAndGlkZS14eS1oaWRkZW4nLFxuICAgIH0sXG4gICAgWToge1xuICAgICAgQVVUTzogJ3RpZGUteS1hdXRvJyxcbiAgICAgIEhJRERFTjogJ3RpZGUteS1oaWRkZW4nLFxuICAgIH0sXG4gIH0sXG4gIFBBRERJTkc6IHtcbiAgICBCT1RUT006IHtcbiAgICAgIFpFUk86ICd0aWRlLXBhZGRpbmctYm90dG9tLTAnLFxuICAgICAgUVVBUlRFUjogJ3RpZGUtcGFkZGluZy1ib3R0b20tMS80JyxcbiAgICAgIEhBTEY6ICd0aWRlLXBhZGRpbmctYm90dG9tLTEvMicsXG4gICAgICBPTkU6ICd0aWRlLXBhZGRpbmctYm90dG9tLTEnLFxuICAgICAgVFdPOiAndGlkZS1wYWRkaW5nLWJvdHRvbS0yJyxcbiAgICAgIEZPVVI6ICd0aWRlLXBhZGRpbmctYm90dG9tLTQnLFxuICAgIH0sXG4gICAgRlVMTDoge1xuICAgICAgWkVSTzogJ3RpZGUtcGFkZGluZy0wJyxcbiAgICAgIFFVQVJURVI6ICd0aWRlLXBhZGRpbmctMS80JyxcbiAgICAgIEhBTEY6ICd0aWRlLXBhZGRpbmctMS8yJyxcbiAgICAgIE9ORTogJ3RpZGUtcGFkZGluZy0xJyxcbiAgICAgIFRXTzogJ3RpZGUtcGFkZGluZy0yJyxcbiAgICAgIEZPVVI6ICd0aWRlLXBhZGRpbmctNCcsXG4gICAgfSxcbiAgICBMRUZUOiB7XG4gICAgICBaRVJPOiAndGlkZS1wYWRkaW5nLWxlZnQtMCcsXG4gICAgICBRVUFSVEVSOiAndGlkZS1wYWRkaW5nLWxlZnQtMS80JyxcbiAgICAgIEhBTEY6ICd0aWRlLXBhZGRpbmctbGVmdC0xLzInLFxuICAgICAgT05FOiAndGlkZS1wYWRkaW5nLWxlZnQtMScsXG4gICAgICBUV086ICd0aWRlLXBhZGRpbmctbGVmdC0yJyxcbiAgICAgIEZPVVI6ICd0aWRlLXBhZGRpbmctbGVmdC00JyxcbiAgICB9LFxuICAgIFJJR0hUOiB7XG4gICAgICBaRVJPOiAndGlkZS1wYWRkaW5nLXJpZ2h0LTAnLFxuICAgICAgUVVBUlRFUjogJ3RpZGUtcGFkZGluZy1yaWdodC0xLzQnLFxuICAgICAgSEFMRjogJ3RpZGUtcGFkZGluZy1yaWdodC0xLzInLFxuICAgICAgT05FOiAndGlkZS1wYWRkaW5nLXJpZ2h0LTEnLFxuICAgICAgVFdPOiAndGlkZS1wYWRkaW5nLXJpZ2h0LTInLFxuICAgICAgRk9VUjogJ3RpZGUtcGFkZGluZy1yaWdodC00JyxcbiAgICB9LFxuICAgIFRPUDoge1xuICAgICAgWkVSTzogJ3RpZGUtcGFkZGluZy10b3AtMCcsXG4gICAgICBRVUFSVEVSOiAndGlkZS1wYWRkaW5nLXRvcC0xLzQnLFxuICAgICAgSEFMRjogJ3RpZGUtcGFkZGluZy10b3AtMS8yJyxcbiAgICAgIE9ORTogJ3RpZGUtcGFkZGluZy10b3AtMScsXG4gICAgICBUV086ICd0aWRlLXBhZGRpbmctdG9wLTInLFxuICAgICAgRk9VUjogJ3RpZGUtcGFkZGluZy10b3AtNCcsXG4gICAgfSxcbiAgICBYOiB7XG4gICAgICBaRVJPOiAndGlkZS1wYWRkaW5nLXgtMCcsXG4gICAgICBRVUFSVEVSOiAndGlkZS1wYWRkaW5nLXgtMS80JyxcbiAgICAgIEhBTEY6ICd0aWRlLXBhZGRpbmcteC0xLzInLFxuICAgICAgT05FOiAndGlkZS1wYWRkaW5nLXgtMScsXG4gICAgICBUV086ICd0aWRlLXBhZGRpbmcteC0yJyxcbiAgICAgIEZPVVI6ICd0aWRlLXBhZGRpbmcteC00JyxcbiAgICB9LFxuICAgIFk6IHtcbiAgICAgIFpFUk86ICd0aWRlLXBhZGRpbmcteS0wJyxcbiAgICAgIFFVQVJURVI6ICd0aWRlLXBhZGRpbmcteS0xLzQnLFxuICAgICAgSEFMRjogJ3RpZGUtcGFkZGluZy15LTEvMicsXG4gICAgICBPTkU6ICd0aWRlLXBhZGRpbmcteS0xJyxcbiAgICAgIFRXTzogJ3RpZGUtcGFkZGluZy15LTInLFxuICAgICAgRk9VUjogJ3RpZGUtcGFkZGluZy15LTQnLFxuICAgIH0sXG4gIH0sXG4gIFBPSU5URVJfRVZFTlRTOiB7XG4gICAgT0ZGOiAndGlkZS1wb2ludGVyLWV2ZW50cy1ub25lJyxcbiAgICBPTjogJ3RpZGUtcG9pbnRlci1ldmVudHMnLFxuICB9LFxuICBQT1NJVElPTjoge1xuICAgIEFCU09MVVRFOiAndGlkZS1wb3NpdGlvbi1hYnNvbHV0ZScsXG4gICAgRklYRUQ6ICd0aWRlLXBvc2l0aW9uLWZpeGVkJyxcbiAgICBSRUxBVElWRTogJ3RpZGUtcG9zaXRpb24tcmVsYXRpdmUnLFxuICAgIFNUQVRJQzogJ3RpZGUtc3RhdGljJyxcbiAgICBTVElDS1k6ICd0aWRlLXN0aWNreScsXG4gIH0sXG4gIFBPU0lUSU9OSU5HOiB7XG4gICAgQk9UVE9NOiAndGlkZS1ib3R0b20tMCcsXG4gICAgTEVGVDogJ3RpZGUtbGVmdC0wJyxcbiAgICBSSUdIVDogJ3RpZGUtcmlnaHQtMCcsXG4gICAgVE9QOiAndGlkZS10b3AtMCcsXG4gIH0sXG4gIFNDUk9MTEJBUjoge1xuICAgIE9GRjogJ3RpZGUtc2Nyb2xsYmFyLW5vbmUnLFxuICB9LFxuICBTSEFET1c6IHtcbiAgICBJTklUSUFMOiAndGlkZS1zaGFkb3ctaW5pdGlhbCcsXG4gICAgQk9UVE9NOiAndGlkZS1zaGFkb3ctYm90dG9tJyxcbiAgICBUT1A6ICd0aWRlLXNoYWRvdy10b3AnLFxuICB9LFxuICBTTkFQOiB7XG4gICAgT046ICd0aWRlLXNuYXAnLFxuICB9LFxuICBTTkFQX0FMSUdOOiB7XG4gICAgU1RBUlQ6ICd0aWRlLXNuYXAtc3RhcnQnLFxuICB9LFxuICBURVhUX1RSQU5TRk9STToge1xuICAgIExPV0VSOiAndGlkZS10ZXh0LXRyYW5zZm9ybS1sb3dlcicsXG4gICAgTk9ORTogJ3RpZGUtdGV4dC10cmFuc2Zvcm0tbm9uZScsXG4gICAgVVBQRVI6ICd0aWRlLXRleHQtdHJhbnNmb3JtLXVwcGVyJyxcbiAgfSxcbiAgVU5ERVJMSU5FOiB7XG4gICAgSE9WRVI6ICd0aWRlLXVuZGVybGluZS1ob3ZlcicsXG4gICAgT0ZGOiAndGlkZS11bmRlcmxpbmUtbm9uZScsXG4gICAgT046ICd0aWRlLXVuZGVybGluZScsXG4gIH0sXG4gIFZJU0lCSUxJVFk6IHtcbiAgICBPRkY6ICd0aWRlLXZpc2libGUtbm9uZScsXG4gICAgT046ICd0aWRlLXZpc2libGUnLFxuICB9LFxuICBXSElURVNQQUNFX1dSQVA6IHtcbiAgICBPRkY6ICd0aWRlLXdoaXRlc3BhY2Utbm93cmFwJyxcbiAgfSxcbiAgV0lEVEg6IHtcbiAgICBBVVRPOiAndGlkZS13aWR0aC1hdXRvJyxcbiAgICBaRVJPOiAndGlkZS13aWR0aC0wJyxcbiAgICBGVUxMOiAndGlkZS13aWR0aC1mdWxsJyxcbiAgICBNQVhfRlVMTDogJ3RpZGUtbWF4LXdpZHRoLWZ1bGwnLFxuICB9LFxuICBaX0lOREVYOiB7XG4gICAgSU5JVElBTDogJ3RpZGUtei1pbmRleC1pbml0aWFsJyxcbiAgICBPTkU6ICd0aWRlLXotaW5kZXgtMScsXG4gIH0sXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgdHlwZSBDc3NVdGlsaXR5ID0gKHR5cGVvZiBDU1MpW2tleW9mIHR5cGVvZiBDU1NdO1xuXG5leHBvcnQgY29uc3QgY3NzU29ydE9yZGVyID0gW1xuICBDU1MuRElTUExBWS5CTE9DSyxcbiAgQ1NTLkRJU1BMQVkuQ09OVEVOVFMsXG4gIENTUy5ESVNQTEFZLkZMRVgsXG4gIENTUy5ESVNQTEFZLkdSSUQsXG4gIENTUy5ESVNQTEFZLk5PTkUsXG4gIENTUy5ESVNQTEFZLklOSVRJQUwsXG4gIENTUy5ESVNQTEFZLklOTElORSxcbiAgQ1NTLkRJU1BMQVkuSU5MSU5FX0JMT0NLLFxuICBDU1MuRElTUExBWS5JTkxJTkVfRkxFWCxcbiAgQ1NTLkFYSVMxLkFST1VORCxcbiAgQ1NTLkFYSVMxLkJFVFdFRU4sXG4gIENTUy5BWElTMS5DRU5URVIsXG4gIENTUy5BWElTMS5FTkQsXG4gIENTUy5BWElTMS5TVEFSVCxcbiAgQ1NTLkFYSVMyLkFST1VORCxcbiAgQ1NTLkFYSVMyLkNFTlRFUixcbiAgQ1NTLkFYSVMyLkVORCxcbiAgQ1NTLkFYSVMyLlNUQVJULFxuICBDU1MuRkxFWC5ESVJFQ1RJT04uQ09MVU1OLFxuICBDU1MuRkxFWC5ESVJFQ1RJT04uQ09MVU1OX1JFVkVSU0UsXG4gIENTUy5GTEVYLkRJUkVDVElPTi5ST1csXG4gIENTUy5GTEVYLkRJUkVDVElPTi5ST1dfUkVWRVJTRSxcbiAgQ1NTLkdBUC5PTkUsXG4gIENTUy5HQVAuSEFMRixcbiAgQ1NTLkdBUC5RVUFSVEVSLFxuICBDU1MuR0FQLlRXTyxcbiAgQ1NTLkdBUC5GT1VSLFxuICBDU1MuRkxFWC5CQVNJUy5aRVJPLFxuICBDU1MuRkxFWC5HUk9XLk9OLFxuICBDU1MuRkxFWC5HUk9XLk9GRixcbiAgQ1NTLkZMRVguU0hSSU5LLk9OLFxuICBDU1MuRkxFWC5TSFJJTksuT0ZGLFxuICBDU1MuRkxFWC5XUkFQLFxuICBDU1MuUE9TSVRJT04uQUJTT0xVVEUsXG4gIENTUy5QT1NJVElPTi5GSVhFRCxcbiAgQ1NTLlBPU0lUSU9OLlJFTEFUSVZFLFxuICBDU1MuUE9TSVRJT04uU1RJQ0tZLFxuICBDU1MuUE9TSVRJT05JTkcuVE9QLFxuICBDU1MuUE9TSVRJT05JTkcuUklHSFQsXG4gIENTUy5QT1NJVElPTklORy5CT1RUT00sXG4gIENTUy5QT1NJVElPTklORy5MRUZULFxuICBDU1MuQk9YX1NJWklORy5CT1JERVJfQk9YLFxuICBDU1MuQk9YX1NJWklORy5DT05URU5UX0JPWCxcbiAgQ1NTLk1BUkdJTi5GVUxMLlpFUk8sXG4gIENTUy5NQVJHSU4uRlVMTC5PTkUsXG4gIENTUy5NQVJHSU4uRlVMTC5IQUxGLFxuICBDU1MuTUFSR0lOLkZVTEwuUVVBUlRFUixcbiAgQ1NTLk1BUkdJTi5GVUxMLlRXTyxcbiAgQ1NTLk1BUkdJTi5GVUxMLkZPVVIsXG4gIENTUy5NQVJHSU4uWS5aRVJPLFxuICBDU1MuTUFSR0lOLlkuT05FLFxuICBDU1MuTUFSR0lOLlkuSEFMRixcbiAgQ1NTLk1BUkdJTi5ZLlFVQVJURVIsXG4gIENTUy5NQVJHSU4uWS5UV08sXG4gIENTUy5NQVJHSU4uWS5GT1VSLFxuICBDU1MuTUFSR0lOLlRPUC5aRVJPLFxuICBDU1MuTUFSR0lOLlRPUC5PTkUsXG4gIENTUy5NQVJHSU4uVE9QLkhBTEYsXG4gIENTUy5NQVJHSU4uVE9QLlFVQVJURVIsXG4gIENTUy5NQVJHSU4uVE9QLlRXTyxcbiAgQ1NTLk1BUkdJTi5UT1AuRk9VUixcbiAgQ1NTLk1BUkdJTi5YLlpFUk8sXG4gIENTUy5NQVJHSU4uWC5PTkUsXG4gIENTUy5NQVJHSU4uWC5IQUxGLFxuICBDU1MuTUFSR0lOLlguUVVBUlRFUixcbiAgQ1NTLk1BUkdJTi5YLlRXTyxcbiAgQ1NTLk1BUkdJTi5YLkZPVVIsXG4gIENTUy5NQVJHSU4uWC5BVVRPLFxuICBDU1MuTUFSR0lOLlJJR0hULlpFUk8sXG4gIENTUy5NQVJHSU4uUklHSFQuT05FLFxuICBDU1MuTUFSR0lOLlJJR0hULkhBTEYsXG4gIENTUy5NQVJHSU4uUklHSFQuUVVBUlRFUixcbiAgQ1NTLk1BUkdJTi5SSUdIVC5UV08sXG4gIENTUy5NQVJHSU4uUklHSFQuRk9VUixcbiAgQ1NTLk1BUkdJTi5SSUdIVC5BVVRPLFxuICBDU1MuTUFSR0lOLkJPVFRPTS5aRVJPLFxuICBDU1MuTUFSR0lOLkJPVFRPTS5PTkUsXG4gIENTUy5NQVJHSU4uQk9UVE9NLkhBTEYsXG4gIENTUy5NQVJHSU4uQk9UVE9NLlFVQVJURVIsXG4gIENTUy5NQVJHSU4uQk9UVE9NLlRXTyxcbiAgQ1NTLk1BUkdJTi5CT1RUT00uRk9VUixcbiAgQ1NTLk1BUkdJTi5MRUZULlpFUk8sXG4gIENTUy5NQVJHSU4uTEVGVC5PTkUsXG4gIENTUy5NQVJHSU4uTEVGVC5IQUxGLFxuICBDU1MuTUFSR0lOLkxFRlQuUVVBUlRFUixcbiAgQ1NTLk1BUkdJTi5MRUZULlRXTyxcbiAgQ1NTLk1BUkdJTi5MRUZULkZPVVIsXG4gIENTUy5NQVJHSU4uTEVGVC5BVVRPLFxuICBDU1MuQk9SREVSLkZVTEwuT05FLFxuICBDU1MuQk9SREVSLkZVTEwuVFdPLFxuICBDU1MuQk9SREVSLlRPUC5PTkUsXG4gIENTUy5CT1JERVIuVE9QLlRXTyxcbiAgQ1NTLkJPUkRFUi5SSUdIVC5PTkUsXG4gIENTUy5CT1JERVIuUklHSFQuVFdPLFxuICBDU1MuQk9SREVSLkJPVFRPTS5PTkUsXG4gIENTUy5CT1JERVIuQk9UVE9NLlRXTyxcbiAgQ1NTLkJPUkRFUi5MRUZULk9ORSxcbiAgQ1NTLkJPUkRFUi5MRUZULlRXTyxcbiAgQ1NTLkJPUkRFUi5SQURJVVMuT05FLFxuICBDU1MuQk9SREVSLlJBRElVUy5IQUxGLFxuICBDU1MuQk9SREVSLlJBRElVUy5RVUFSVEVSLFxuICBDU1MuQk9SREVSLlJBRElVUy5GVUxMLFxuICBDU1MuUEFERElORy5GVUxMLlpFUk8sXG4gIENTUy5QQURESU5HLkZVTEwuT05FLFxuICBDU1MuUEFERElORy5GVUxMLkhBTEYsXG4gIENTUy5QQURESU5HLkZVTEwuUVVBUlRFUixcbiAgQ1NTLlBBRERJTkcuRlVMTC5UV08sXG4gIENTUy5QQURESU5HLkZVTEwuRk9VUixcbiAgQ1NTLlBBRERJTkcuWS5aRVJPLFxuICBDU1MuUEFERElORy5ZLk9ORSxcbiAgQ1NTLlBBRERJTkcuWS5IQUxGLFxuICBDU1MuUEFERElORy5ZLlFVQVJURVIsXG4gIENTUy5QQURESU5HLlkuVFdPLFxuICBDU1MuUEFERElORy5ZLkZPVVIsXG4gIENTUy5QQURESU5HLlRPUC5aRVJPLFxuICBDU1MuUEFERElORy5UT1AuT05FLFxuICBDU1MuUEFERElORy5UT1AuSEFMRixcbiAgQ1NTLlBBRERJTkcuVE9QLlFVQVJURVIsXG4gIENTUy5QQURESU5HLlRPUC5UV08sXG4gIENTUy5QQURESU5HLlRPUC5GT1VSLFxuICBDU1MuUEFERElORy5YLlpFUk8sXG4gIENTUy5QQURESU5HLlguT05FLFxuICBDU1MuUEFERElORy5YLkhBTEYsXG4gIENTUy5QQURESU5HLlguUVVBUlRFUixcbiAgQ1NTLlBBRERJTkcuWC5UV08sXG4gIENTUy5QQURESU5HLlguRk9VUixcbiAgQ1NTLlBBRERJTkcuUklHSFQuWkVSTyxcbiAgQ1NTLlBBRERJTkcuUklHSFQuT05FLFxuICBDU1MuUEFERElORy5SSUdIVC5IQUxGLFxuICBDU1MuUEFERElORy5SSUdIVC5RVUFSVEVSLFxuICBDU1MuUEFERElORy5SSUdIVC5UV08sXG4gIENTUy5QQURESU5HLlJJR0hULkZPVVIsXG4gIENTUy5QQURESU5HLkJPVFRPTS5aRVJPLFxuICBDU1MuUEFERElORy5CT1RUT00uT05FLFxuICBDU1MuUEFERElORy5CT1RUT00uSEFMRixcbiAgQ1NTLlBBRERJTkcuQk9UVE9NLlFVQVJURVIsXG4gIENTUy5QQURESU5HLkJPVFRPTS5UV08sXG4gIENTUy5QQURESU5HLkJPVFRPTS5GT1VSLFxuICBDU1MuUEFERElORy5MRUZULlpFUk8sXG4gIENTUy5QQURESU5HLkxFRlQuT05FLFxuICBDU1MuUEFERElORy5MRUZULkhBTEYsXG4gIENTUy5QQURESU5HLkxFRlQuUVVBUlRFUixcbiAgQ1NTLlBBRERJTkcuTEVGVC5UV08sXG4gIENTUy5QQURESU5HLkxFRlQuRk9VUixcbiAgQ1NTLldJRFRILk1BWF9GVUxMLFxuICBDU1MuV0lEVEguWkVSTyxcbiAgQ1NTLldJRFRILkZVTEwsXG4gIENTUy5IRUlHSFQuWkVSTyxcbiAgQ1NTLkhFSUdIVC5GVUxMLFxuICBDU1MuQUxJR04uWS5NSURETEUsXG4gIENTUy5CUkVBS19XT1JELFxuICBDU1MuQ1VSU09SLk5PVF9BTExPV0VELFxuICBDU1MuQ1VSU09SLlBPSU5URVIsXG4gIENTUy5DVVJTT1IuVEVYVCxcbiAgQ1NTLkZPTlQuU0laRS5UV0VMVkUsXG4gIENTUy5GT05ULlNJWkUuRk9VUlRFRU4sXG4gIENTUy5GT05ULlNJWkUuU0lYVEVFTixcbiAgQ1NTLkZPTlQuU0laRS5UV0VOVFksXG4gIENTUy5GT05ULlNJWkUuVFdFTlRZX0ZPVVIsXG4gIENTUy5GT05ULlNJWkUuVEhJUlRZX1RXTyxcbiAgQ1NTLkZPTlQuV0VJR0hULkZPVVJfSFVORFJFRCxcbiAgQ1NTLkZPTlQuV0VJR0hULkZJVkVfSFVORFJFRCxcbiAgQ1NTLkZPTlQuV0VJR0hULlNJWF9IVU5EUkVELFxuICBDU1MuRk9OVC5XRUlHSFQuU0VWRU5fSFVORFJFRCxcbiAgQ1NTLkxJU1RfQlVMTEVUUy5PRkYsXG4gIENTUy5PQkpFQ1QuQ0VOVEVSLFxuICBDU1MuT0JKRUNULkNPTlRBSU4sXG4gIENTUy5PQkpFQ1QuQ09WRVIsXG4gIENTUy5PQkpFQ1QuU0NBTEVfRE9XTixcbiAgQ1NTLlBPSU5URVJfRVZFTlRTLk9OLFxuICBDU1MuUE9JTlRFUl9FVkVOVFMuT0ZGLFxuICBDU1MuU0NST0xMQkFSLk9GRixcbiAgQ1NTLlNIQURPVy5CT1RUT00sXG4gIENTUy5TSEFET1cuVE9QLFxuICBDU1MuU05BUC5PTixcbiAgQ1NTLlNOQVBfQUxJR04uU1RBUlQsXG4gIENTUy5BTElHTi5YLkxFRlQsXG4gIENTUy5BTElHTi5YLkNFTlRFUixcbiAgQ1NTLkFMSUdOLlguUklHSFQsXG4gIENTUy5URVhUX1RSQU5TRk9STS5MT1dFUixcbiAgQ1NTLlRFWFRfVFJBTlNGT1JNLk5PTkUsXG4gIENTUy5URVhUX1RSQU5TRk9STS5VUFBFUixcbiAgQ1NTLlVOREVSTElORS5IT1ZFUixcbiAgQ1NTLlVOREVSTElORS5PRkYsXG4gIENTUy5VTkRFUkxJTkUuT04sXG4gIENTUy5WSVNJQklMSVRZLk9OLFxuICBDU1MuVklTSUJJTElUWS5PRkYsXG4gIENTUy5XSElURVNQQUNFX1dSQVAuT0ZGLFxuICBDU1MuT1ZFUkZMT1cuWFkuQVVUTyxcbiAgQ1NTLk9WRVJGTE9XLlhZLkhJRERFTixcbiAgQ1NTLk9WRVJGTE9XLlguQVVUTyxcbiAgQ1NTLk9WRVJGTE9XLlguSElEREVOLFxuICBDU1MuT1ZFUkZMT1cuWC5TQ1JPTEwsXG4gIENTUy5PVkVSRkxPVy5ZLkFVVE8sXG4gIENTUy5PVkVSRkxPVy5ZLkhJRERFTixcbiAgQ1NTLlpfSU5ERVguT05FLFxuXSBhcyBjb25zdDtcbiIsImV4cG9ydCBjb25zdCBPUklFTlRBVElPTiA9IHtcbiAgSE9SSVpPTlRBTDogJ2hvcml6b250YWwnLFxuICBWRVJUSUNBTDogJ3ZlcnRpY2FsJyxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIE9yaWVudGF0aW9uID0gKHR5cGVvZiBPUklFTlRBVElPTilba2V5b2YgdHlwZW9mIE9SSUVOVEFUSU9OXTtcbiIsImV4cG9ydCBjb25zdCBTSVpFID0ge1xuICBMQVJHRTogJ2xhcmdlJyxcbiAgU01BTEw6ICdzbWFsbCcsXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgdHlwZSBTaXplID0gKHR5cGVvZiBTSVpFKVtrZXlvZiB0eXBlb2YgU0laRV07XG4iLCJjb25zdCBjYXBpdGFsaXplRmlyc3QgPSAoc3RyaW5nOiBzdHJpbmcpID0+IHtcbiAgcmV0dXJuIHN0cmluZy5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHN0cmluZy5zbGljZSgxKTtcbn07XG5cbmNvbnN0IGZvcm1hdENhbWVsQ2FzZSA9IChpbnB1dDogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgcmV0dXJuIGlucHV0ICYmIHR5cGVvZiBpbnB1dCA9PT0gJ3N0cmluZydcbiAgICA/IGlucHV0XG4gICAgICAgIC5yZXBsYWNlKC9eW1xcc18tXS8sICcnKVxuICAgICAgICAucmVwbGFjZSgvKFthLXpdezF9KShbQS1aXXsxfSkvZywgJyQxICQyJylcbiAgICAgICAgLnJlcGxhY2UoL1tcXHNfLV0vZywgJyAnKVxuICAgICAgICAudG9Mb3dlckNhc2UoKVxuICAgICAgICAuc3BsaXQoJyAnKVxuICAgICAgICAubWFwKCh3b3JkLCBpbmRleCkgPT4gKGluZGV4ID09PSAwID8gd29yZCA6IHdvcmQuc2xpY2UoMCwgMSkudG9VcHBlckNhc2UoKSArIHdvcmQuc2xpY2UoMSkpKVxuICAgICAgICAuam9pbignJylcbiAgICA6IGlucHV0O1xufTtcblxuY29uc3QgZm9ybWF0S2ViYWJDYXNlID0gKGlucHV0OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICByZXR1cm4gaW5wdXQgJiYgdHlwZW9mIGlucHV0ID09PSAnc3RyaW5nJ1xuICAgID8gaW5wdXRcbiAgICAgICAgLnJlcGxhY2UoLyhbYS16XXsxfSkoW0EtWl17MX0pL2csICckMSAkMicpXG4gICAgICAgIC50b0xvd2VyQ2FzZSgpXG4gICAgICAgIC5yZXBsYWNlKC9bXFxzXy1dL2csICctJylcbiAgICA6IGlucHV0O1xufTtcblxuY29uc3QgZm9ybWF0TGFiZWwgPSAodmFsdWU6IHN0cmluZykgPT4ge1xuICBjb25zdCBsYWJlbE1hcDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtcbiAgICBmYWxzZTogJ05vJyxcbiAgICB0cnVlOiAnWWVzJyxcbiAgfTtcbiAgcmV0dXJuIE9iamVjdC5oYXNPd24obGFiZWxNYXAsIHZhbHVlKSA/IGxhYmVsTWFwW3ZhbHVlXSA6IHZhbHVlO1xufTtcblxuY29uc3QgZm9ybWF0TnVtYmVyID0gKGlucHV0OiBudW1iZXIgfCBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBsZXQgb3V0cHV0ID0gaW5wdXQgJiYgdHlwZW9mIGlucHV0ID09PSAnbnVtYmVyJyA/IG5ldyBJbnRsLk51bWJlckZvcm1hdCgpLmZvcm1hdChpbnB1dCkgOiBTdHJpbmcoaW5wdXQgfHwgJycpO1xuICBsZXQgZGlnaXRzID0gb3V0cHV0O1xuXG4gIGlmIChpbnB1dCAmJiB0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnKSB7XG4gICAgZGlnaXRzID0gZGlnaXRzLnJlcGxhY2UoL1xcRC9nLCAnJyk7XG4gICAgaWYgKE51bWJlcihkaWdpdHMpKSB7XG4gICAgICBvdXRwdXQgPSBuZXcgSW50bC5OdW1iZXJGb3JtYXQoKS5mb3JtYXQoTnVtYmVyKGRpZ2l0cykpO1xuICAgIH0gZWxzZSB7XG4gICAgICBvdXRwdXQgPSAnMCc7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG91dHB1dDtcbn07XG5cbmNvbnN0IGZvcm1hdFBhc2NhbENhc2UgPSAoaW5wdXQ6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIHJldHVybiBpbnB1dCAmJiB0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnXG4gICAgPyBpbnB1dFxuICAgICAgICAucmVwbGFjZSgvKFthLXpdezF9KShbQS1aXXsxfSkvZywgJyQxICQyJylcbiAgICAgICAgLnJlcGxhY2UoL1tcXHNfLV0vZywgJyAnKVxuICAgICAgICAudG9Mb3dlckNhc2UoKVxuICAgICAgICAuc3BsaXQoJyAnKVxuICAgICAgICAubWFwKCh3b3JkKSA9PiB3b3JkLnNsaWNlKDAsIDEpLnRvVXBwZXJDYXNlKCkgKyB3b3JkLnNsaWNlKDEpKVxuICAgICAgICAuam9pbignJylcbiAgICA6IGlucHV0O1xufTtcblxuY29uc3QgZm9ybWF0UGhvbmUgPSAoaW5wdXQ6IG51bWJlciB8IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGxldCBvdXRwdXQgPSBpbnB1dCAmJiB0eXBlb2YgaW5wdXQgPT09ICdudW1iZXInID8gU3RyaW5nKGlucHV0KSA6IFN0cmluZyhpbnB1dCB8fCAnJyk7XG4gIGxldCBkaWdpdHMgPSBvdXRwdXQ7XG4gIGRpZ2l0cyA9IGRpZ2l0cy5yZXBsYWNlKC9cXEQvZywgJycpO1xuXG4gIHN3aXRjaCAoZGlnaXRzLmxlbmd0aCkge1xuICAgIGNhc2UgNzpcbiAgICAgIG91dHB1dCA9IGAke2RpZ2l0cy5zbGljZSgwLCAzKX0tJHtkaWdpdHMuc2xpY2UoMyl9YDtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgMTA6XG4gICAgICBvdXRwdXQgPSBgJHtkaWdpdHMuc2xpY2UoMCwgMyl9LSR7ZGlnaXRzLnNsaWNlKDMsIDYpfS0ke2RpZ2l0cy5zbGljZSg2KX1gO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAxMTpcbiAgICAgIG91dHB1dCA9IGAke2RpZ2l0cy5zbGljZSgwLCAxKX0tJHtkaWdpdHMuc2xpY2UoMSwgNCl9LSR7ZGlnaXRzLnNsaWNlKDQsIDcpfS0ke2RpZ2l0cy5zbGljZSg3KX1gO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIG91dHB1dCA9IGRpZ2l0cztcbiAgICAgIGJyZWFrO1xuICB9XG5cbiAgcmV0dXJuIG91dHB1dDtcbn07XG5cbmNvbnN0IGZvcm1hdFByaWNlID0gKGlucHV0OiBudW1iZXIgfCBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBjb25zdCBvdXRwdXQgPSBpbnB1dCA/IGZvcm1hdE51bWJlcihpbnB1dCkgOiBTdHJpbmcoaW5wdXQgfHwgJzAnKTtcbiAgcmV0dXJuIGAkJHtvdXRwdXR9YDtcbn07XG5cbmNvbnN0IGZvcm1hdFF1b3RlcyA9ICh2YWx1ZTogc3RyaW5nKSA9PiB7XG4gIGlmICh2YWx1ZS5zdGFydHNXaXRoKCdcIicpICYmIHZhbHVlLmVuZHNXaXRoKCdcIicpKSB7XG4gICAgcmV0dXJuIHZhbHVlLnNsaWNlKDEsIC0xKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbn07XG5cbmNvbnN0IGZvcm1hdFNlbnRlbmNlQ2FzZSA9IChpbnB1dDogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgbGV0IHNlbnRlbmNlQ2FzZSA9IGlucHV0O1xuXG4gIGlmIChpbnB1dCAmJiB0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnKSB7XG4gICAgY29uc3QgbG93ZXJDYXNlID0gaW5wdXRcbiAgICAgIC5yZXBsYWNlKC8oW2Etel17MX0pKFtBLVpdezF9KS9nLCAnJDEgJDInKVxuICAgICAgLnRvTG93ZXJDYXNlKClcbiAgICAgIC5yZXBsYWNlKC9bXFxzXy1dL2csICcgJyk7XG5cbiAgICBzZW50ZW5jZUNhc2UgPSBsb3dlckNhc2Uuc2xpY2UoMCwgMSkudG9VcHBlckNhc2UoKSArIGxvd2VyQ2FzZS5zbGljZSgxKTtcbiAgfVxuXG4gIHJldHVybiBzZW50ZW5jZUNhc2U7XG59O1xuXG5jb25zdCBmb3JtYXRTbmFrZUNhc2UgPSAoaW5wdXQ6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIHJldHVybiBpbnB1dCAmJiB0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnXG4gICAgPyBpbnB1dFxuICAgICAgICAucmVwbGFjZSgvKFthLXpdezF9KShbQS1aXXsxfSkvZywgJyQxICQyJylcbiAgICAgICAgLnRvTG93ZXJDYXNlKClcbiAgICAgICAgLnJlcGxhY2UoL1tcXHNfLV0vZywgJ18nKVxuICAgIDogaW5wdXQ7XG59O1xuXG5jb25zdCBmb3JtYXRUaXRsZUNhc2UgPSAoaW5wdXQ6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIHJldHVybiBpbnB1dCAmJiB0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnXG4gICAgPyBpbnB1dFxuICAgICAgICAucmVwbGFjZSgvKFthLXpdezF9KShbQS1aXXsxfSkvZywgJyQxICQyJylcbiAgICAgICAgLnRvTG93ZXJDYXNlKClcbiAgICAgICAgLnJlcGxhY2UoL1tcXHNfLV0vZywgJyAnKVxuICAgICAgICAuc3BsaXQoJyAnKVxuICAgICAgICAubWFwKCh3b3JkKSA9PiB3b3JkLnNsaWNlKDAsIDEpLnRvVXBwZXJDYXNlKCkgKyB3b3JkLnNsaWNlKDEpKVxuICAgICAgICAuam9pbignICcpXG4gICAgOiBpbnB1dDtcbn07XG5cbmNvbnN0IGZvcm1hdFVybEZyb21Sb290ID0gKHVybDogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IHVybEZvcm1hdHRlZCA9IHVybC5zcGxpdCgnLmNvbS8nKTtcblxuICByZXR1cm4gdXJsRm9ybWF0dGVkLmxlbmd0aCA+IDEgPyBgLyR7dXJsRm9ybWF0dGVkWzFdfWAgOiB1cmw7XG59O1xuXG5jb25zdCBmb3JtYXRXZWlnaHQgPSAoaW5wdXQ6IG51bWJlciB8IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IG91dHB1dCA9IGlucHV0ID8gZm9ybWF0TnVtYmVyKGlucHV0KSA6IFN0cmluZyhpbnB1dCB8fCAnMCcpO1xuICByZXR1cm4gYCR7b3V0cHV0fSBsYnNgO1xufTtcblxuY29uc3QgZ2V0QXJ0aWNsZSA9IChub3VuOiBzdHJpbmcsIGlzUGx1cmFsID0gZmFsc2UsIGlzRGVmaW5pdGUgPSBmYWxzZSkgPT4ge1xuICBjb25zdCB2b3dlbHMgPSBbJ2EnLCAnZScsICdpJywgJ28nLCAndSddO1xuICBjb25zdCBpc1Zvd2VsTGVhZGluZyA9IHZvd2Vscy5pbmNsdWRlcyhub3VuLmNoYXJBdCgwKSk7XG5cbiAgcmV0dXJuIGlzRGVmaW5pdGUgPyAndGhlJyA6IGlzUGx1cmFsID8gJ3NvbWUnIDogaXNWb3dlbExlYWRpbmcgPyAnYW4nIDogJ2EnO1xufTtcblxuY29uc3QgcHJpY2VUb051bWJlciA9ICh2YWx1ZTogc3RyaW5nKSA9PiB7XG4gIGlmIChOdW1iZXIuaXNOYU4oTnVtYmVyKHZhbHVlKSkpIHtcbiAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoJyQnLCAnJyk7XG4gICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKC8sL2csICcnKTtcbiAgfVxuICByZXR1cm4gcGFyc2VJbnQodmFsdWUsIDEwKTtcbn07XG5cbmNvbnN0IHVuZm9ybWF0UHJpY2UgPSAoaW5wdXQ6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IG91dHB1dCA9IGlucHV0LnJlcGxhY2UoL1xcJC9nLCAnJykucmVwbGFjZSgvLC9nLCAnJyk7XG4gIHJldHVybiBgJHtvdXRwdXR9YDtcbn07XG5cbmV4cG9ydCB7XG4gIGNhcGl0YWxpemVGaXJzdCxcbiAgZm9ybWF0Q2FtZWxDYXNlLFxuICBmb3JtYXRLZWJhYkNhc2UsXG4gIGZvcm1hdExhYmVsLFxuICBmb3JtYXROdW1iZXIsXG4gIGZvcm1hdFBhc2NhbENhc2UsXG4gIGZvcm1hdFBob25lLFxuICBmb3JtYXRQcmljZSxcbiAgZm9ybWF0UXVvdGVzLFxuICBmb3JtYXRTZW50ZW5jZUNhc2UsXG4gIGZvcm1hdFNuYWtlQ2FzZSxcbiAgZm9ybWF0VGl0bGVDYXNlLFxuICBmb3JtYXRVcmxGcm9tUm9vdCxcbiAgZm9ybWF0V2VpZ2h0LFxuICBnZXRBcnRpY2xlLFxuICBwcmljZVRvTnVtYmVyLFxuICB1bmZvcm1hdFByaWNlLFxufTtcbiIsIjxzY3JpcHQgbGFuZz1cInRzXCIgc2V0dXA+XG4gIGltcG9ydCB7IGRlZmluZUFzeW5jQ29tcG9uZW50LCBtYXJrUmF3LCByZWYsIHdhdGNoIH0gZnJvbSAndnVlJztcblxuICBpbXBvcnQgdHlwZSB7IENvbXBvbmVudCB9IGZyb20gJ3Z1ZSc7XG4gIGltcG9ydCB0eXBlIHsgSWNvbiB9IGZyb20gJ0AvdHlwZXMvSWNvbic7XG4gIGltcG9ydCB0eXBlIHsgU2l6ZSB9IGZyb20gJ0AvdHlwZXMvU2l6ZSc7XG5cbiAgaW1wb3J0IHsgQ1NTIH0gZnJvbSAnQC90eXBlcy9TdHlsZXMnO1xuICBpbXBvcnQgeyBTSVpFIH0gZnJvbSAnQC90eXBlcy9TaXplJztcbiAgaW1wb3J0IHsgZm9ybWF0UGFzY2FsQ2FzZSB9IGZyb20gJ0AvdXRpbGl0aWVzL2Zvcm1hdCc7XG5cbiAgdHlwZSBQcm9wcyA9IHtcbiAgICBpY29uOiBJY29uO1xuICAgIHNpemU/OiBTaXplO1xuICB9O1xuXG4gIGNvbnN0IHByb3BzID0gd2l0aERlZmF1bHRzKGRlZmluZVByb3BzPFByb3BzPigpLCB7XG4gICAgc2l6ZTogU0laRS5TTUFMTCxcbiAgfSk7XG5cbiAgY29uc3QgaW5uZXJTVkcgPSByZWY8Q29tcG9uZW50PigpO1xuXG4gIHdhdGNoKFxuICAgICgpID0+IHByb3BzLmljb24sXG4gICAgKCkgPT4ge1xuICAgICAgY29uc3QgaWQgPSBwcm9wcy5pY29uIGFzIHVua25vd24gYXMgc3RyaW5nO1xuICAgICAgY29uc3QgbmFtZSA9IGZvcm1hdFBhc2NhbENhc2UoaWQpO1xuICAgICAgY29uc3QgY29tcG9uZW50ID0gZGVmaW5lQXN5bmNDb21wb25lbnQoKCkgPT4gaW1wb3J0KGAuLi9hc3NldHMvc3ZnL2ljb25zL0ljb24ke25hbWV9LnN2Z2ApKTtcblxuICAgICAgaW5uZXJTVkcudmFsdWUgPSBtYXJrUmF3KGNvbXBvbmVudCk7XG4gICAgfSxcbiAgICB7IGltbWVkaWF0ZTogdHJ1ZSB9XG4gICk7XG48L3NjcmlwdD5cblxuPHRlbXBsYXRlPlxuICA8ZGl2IDpjbGFzcz1cIlsndGlkZS1pY29uJywgcHJvcHMuc2l6ZV1cIj5cbiAgICA8Q29tcG9uZW50XG4gICAgICA6Y2xhc3M9XCJbQ1NTLkRJU1BMQVkuQkxPQ0tdXCJcbiAgICAgIDpkYXRhLWljb249XCJpY29uXCJcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgOmlzPVwiaW5uZXJTVkdcIlxuICAgICAgdi1pZj1cImlubmVyU1ZHXCJcbiAgICAvPlxuICA8L2Rpdj5cbjwvdGVtcGxhdGU+XG5cbjxzdHlsZSBzY29wZWQ+XG4gIC50aWRlLWljb24gc3ZnIHtcbiAgICB3aWR0aDogMS41cmVtO1xuICAgIGhlaWdodDogMS41cmVtO1xuICB9XG5cbiAgLnRpZGUtaWNvbi5zbWFsbCBzdmcge1xuICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgIGhlaWdodDogMS4yNXJlbTtcbiAgfVxuPC9zdHlsZT5cbiIsImV4cG9ydCBjb25zdCBJQ09OID0ge1xuICBBQ0NPVU5UX0JBTEFOQ0U6ICdhY2NvdW50LWJhbGFuY2UnLFxuICBBREQ6ICdhZGQnLFxuICBBSV9ERVNDUklQVElPTjogJ2FpLWRlc2NyaXB0aW9uJyxcbiAgQUxJR05fU1BBQ0U6ICdhbGlnbi1zcGFjZScsXG4gIEFQUExFX1BBWTogJ2FwcGxlLXBheScsXG4gIEFSUk9XX0JBQ0s6ICdhcnJvdy1iYWNrJyxcbiAgQVJST1dfRk9SV0FSRDogJ2Fycm93LWZvcndhcmQnLFxuICBBUlJPV19SSUdIVDogJ2Fycm93LXJpZ2h0JyxcbiAgQVNTSUdOTUVOVDogJ2Fzc2lnbm1lbnQnLFxuICBBV0FSRF9TVEFSOiAnYXdhcmQtc3RhcicsXG4gIEJPT0tNQVJLOiAnYm9va21hcmsnLFxuICBDQUxFTkRBUl9NT05USDogJ2NhbGVuZGFyLW1vbnRoJyxcbiAgQ0FMTDogJ2NhbGwnLFxuICBDSEVDSzogJ2NoZWNrJyxcbiAgQ0hFVlJPTl9MRUZUOiAnY2hldnJvbi1sZWZ0JyxcbiAgQ0hFVlJPTl9SSUdIVDogJ2NoZXZyb24tcmlnaHQnLFxuICBDTEVBUjogJ2NsZWFyJyxcbiAgQ0xPU0U6ICdjbG9zZScsXG4gIENZQ0xFOiAnY3ljbGUnLFxuICBERUxFVEU6ICdkZWxldGUnLFxuICBESUFNT05EOiAnZGlhbW9uZCcsXG4gIERSQUZUOiAnZHJhZnQnLFxuICBFRElUOiAnZWRpdCcsXG4gIEVSUk9SOiAnZXJyb3InLFxuICBFWFBBTkRfQ09OVEVOVDogJ2V4cGFuZC1jb250ZW50JyxcbiAgRVhQQU5EX0xFU1M6ICdleHBhbmQtbGVzcycsXG4gIEVYUEFORF9NT1JFOiAnZXhwYW5kLW1vcmUnLFxuICBGQUNFQk9PSzogJ2ZhY2Vib29rJyxcbiAgRkFWT1JJVEU6ICdmYXZvcml0ZScsXG4gIEZBVk9SSVRFX0ZJTExFRDogJ2Zhdm9yaXRlLWZpbGxlZCcsXG4gIEZPUk1BVF9CT0xEOiAnZm9ybWF0LWJvbGQnLFxuICBGT1JNQVRfSVRBTElDOiAnZm9ybWF0LWl0YWxpYycsXG4gIEZPUk1BVF9MSVNUX0JVTExFVEVEOiAnZm9ybWF0LWxpc3QtYnVsbGV0ZWQnLFxuICBGT1JVTTogJ2ZvcnVtJyxcbiAgR0FWRUw6ICdnYXZlbCcsXG4gIEdPT0dMRTogJ2dvb2dsZScsXG4gIEdPT0dMRV9QQVk6ICdnb29nbGUtcGF5JyxcbiAgR1JJRDogJ2dyaWQnLFxuICBIRUlHSFQ6ICdoZWlnaHQnLFxuICBIRUxQOiAnaGVscCcsXG4gIElORk86ICdpbmZvJyxcbiAgSU5TRVJUX1RFWFQ6ICdpbnNlcnQtdGV4dCcsXG4gIElOU1RBR1JBTTogJ2luc3RhZ3JhbScsXG4gIElPU19TSEFSRTogJ2lvcy1zaGFyZScsXG4gIExBWU9VVDogJ2xheW91dCcsXG4gIExJTktFRF9JTjogJ2xpbmtlZCBpbicsXG4gIExPQ0FMX1NISVBQSU5HOiAnbG9jYWwtc2hpcHBpbmcnLFxuICBMT0NLOiAnbG9jaycsXG4gIE1BSUw6ICdtYWlsJyxcbiAgTUVOVTogJ21lbnUnLFxuICBNT1JFX0hPUklaOiAnbW9yZS1ob3JpeicsXG4gIE5PVElGSUNBVElPTlM6ICdub3RpZmljYXRpb25zJyxcbiAgT1BFTl9JTl9ORVc6ICdvcGVuLWluLW5ldycsXG4gIFBBTEVUVEU6ICdwYWxldHRlJyxcbiAgUEFZUEFMOiAncGF5cGFsJyxcbiAgUEVSU09OOiAncGVyc29uJyxcbiAgUEhPVE9fQ0FNRVJBOiAncGhvdG8tY2FtZXJhJyxcbiAgUElOVEVSRVNUOiAncGludGVyZXN0JyxcbiAgUExBWV9BUlJPVzogJ3BsYXktYXJyb3cnLFxuICBSRU1PVkU6ICdyZW1vdmUnLFxuICBST1VOREVEX0NPUk5FUlM6ICdyb3VuZGVkLWNvcm5lcnMnLFxuICBSVUxFUjogJ3J1bGVyJyxcbiAgU0VBUkNIOiAnc2VhcmNoJyxcbiAgU0VBVElORzogJ3NlYXRpbmcnLFxuICBTRUxMOiAnc2VsbCcsXG4gIFNIQVJFOiAnc2hhcmUnLFxuICBTSE9QUElOR19DQVJUOiAnc2hvcHBpbmctY2FydCcsXG4gIFNNUzogJ3NtcycsXG4gIFNUQVI6ICdzdGFyJyxcbiAgU1dBUF9WRVJUOiAnc3dhcC12ZXJ0JyxcbiAgVEhSRUVfRF9ST1RBVElPTjogJ3RocmVlLWQtcm90YXRpb24nLFxuICBUUk9QSFk6ICd0cm9waHknLFxuICBUVU5FOiAndHVuZScsXG4gIFRXSVRURVI6ICd0d2l0dGVyJyxcbiAgVklERU9DQU06ICd2aWRlb2NhbScsXG4gIFZJRVdfSU5fQVI6ICd2aWV3LWluLWFyJyxcbiAgVklTSUJJTElUWTogJ3Zpc2liaWxpdHknLFxuICBWT0xVTUVfT0ZGOiAndm9sdW1lLW9mZicsXG4gIFZPTFVNRV9PTjogJ3ZvbHVtZS1vbicsXG4gIFdBUk5JTkc6ICd3YXJuaW5nJyxcbiAgV0VJR0hUOiAnd2VpZ2h0JyxcbiAgV0lEVEg6ICd3aWR0aCcsXG4gIFlPVVRVQkU6ICd5b3V0dWJlJyxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIEljb24gPSAodHlwZW9mIElDT04pW2tleW9mIHR5cGVvZiBJQ09OXTtcbiIsIjxzY3JpcHQgbGFuZz1cInRzXCIgc2V0dXA+XG4gIGltcG9ydCB7IG9uTW91bnRlZCwgcmVmIH0gZnJvbSAndnVlJztcblxuICBpbXBvcnQgVGlkZURpdmlkZXIgZnJvbSAnQC9jb21wb25lbnRzL1RpZGVEaXZpZGVyLnZ1ZSc7XG4gIGltcG9ydCBUaWRlSWNvbiBmcm9tICdAL2NvbXBvbmVudHMvVGlkZUljb24udnVlJztcbiAgaW1wb3J0IFRpZGVJbmRpY2F0b3IgZnJvbSAnQC9jb21wb25lbnRzL1RpZGVJbmRpY2F0b3IudnVlJztcbiAgaW1wb3J0IHsgSUNPTiB9IGZyb20gJ0AvdHlwZXMvSWNvbic7XG4gIGltcG9ydCB7IENTUyB9IGZyb20gJ0AvdHlwZXMvU3R5bGVzJztcblxuICBjb25zdCBwcm9wcyA9IGRlZmluZVByb3BzKHtcbiAgICBoYXNCb3R0b21EaXZpZGVyOiB7XG4gICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgfSxcbiAgICBoYXNUb3BEaXZpZGVyOiB7XG4gICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgfSxcbiAgICBpc0FjdGl2ZToge1xuICAgICAgZGVmYXVsdDogZmFsc2UsXG4gICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICB0eXBlOiBCb29sZWFuLFxuICAgIH0sXG4gICAgaXNFeHBhbmRlZEluaXRpYWw6IHtcbiAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgdHlwZTogQm9vbGVhbixcbiAgICB9LFxuICAgIGlzT3B0aW9uYWw6IHtcbiAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgdHlwZTogQm9vbGVhbixcbiAgICB9LFxuICAgIGxhYmVsOiB7XG4gICAgICBkZWZhdWx0OiAnJyxcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgdHlwZTogU3RyaW5nLFxuICAgIH0sXG4gIH0pO1xuXG4gIGNvbnN0IGlzRXhwYW5kZWQgPSByZWYocHJvcHMuaXNFeHBhbmRlZEluaXRpYWwpO1xuXG4gIGxldCBhY2NvcmRpb25Cb2R5ID0gcmVmKCk7XG5cbiAgY29uc3QgdG9nZ2xlSXNFeHBhbmRlZCA9ICgpID0+IHtcbiAgICBjb25zdCBlbGVtZW50ID0gYWNjb3JkaW9uQm9keS52YWx1ZSBhcyBIVE1MRWxlbWVudDtcblxuICAgIGlzRXhwYW5kZWQudmFsdWUgPSAhaXNFeHBhbmRlZC52YWx1ZTtcblxuICAgIGVsZW1lbnQuc3R5bGUuZ3JpZFRlbXBsYXRlUm93cyA9IGlzRXhwYW5kZWQudmFsdWUgPyAnMWZyJyA6ICcwZnInO1xuICB9O1xuXG4gIG9uTW91bnRlZCgoKSA9PiB7XG4gICAgY29uc3QgZWxlbWVudCA9IGFjY29yZGlvbkJvZHkudmFsdWUgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICBlbGVtZW50LnN0eWxlLmdyaWRUZW1wbGF0ZVJvd3MgPSBpc0V4cGFuZGVkLnZhbHVlID8gJzFmcicgOiAnMGZyJztcbiAgfSk7XG48L3NjcmlwdD5cblxuPHRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwidGlkZS1hY2NvcmRpb24taXRlbVwiPlxuICAgIDxUaWRlRGl2aWRlciB2LWlmPVwicHJvcHMuaGFzVG9wRGl2aWRlclwiIC8+XG5cbiAgICA8ZGl2XG4gICAgICA6Y2xhc3M9XCJbJ3RpZGUtYWNjb3JkaW9uLWhlYWQnLCBDU1MuRElTUExBWS5GTEVYLCBDU1MuQVhJUzEuQkVUV0VFTiwgQ1NTLlBBRERJTkcuWS5IQUxGLCBDU1MuQ1VSU09SLlBPSU5URVJdXCJcbiAgICAgIEBjbGljaz1cInRvZ2dsZUlzRXhwYW5kZWRcIlxuICAgID5cbiAgICAgIDxkaXYgOmNsYXNzPVwiW0NTUy5ESVNQTEFZLkZMRVgsIENTUy5BWElTMi5DRU5URVIsIENTUy5HQVAuSEFMRiwgQ1NTLkZPTlQuV0VJR0hULlNFVkVOX0hVTkRSRURdXCI+XG4gICAgICAgIDxzcGFuPnt7IHByb3BzLmxhYmVsIH19PC9zcGFuPlxuXG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgOmNsYXNzPVwiW0NTUy5GT05ULkNPTE9SLlNVUkZBQ0UuVkFSSUFOVF1cIlxuICAgICAgICAgIHYtaWY9XCJwcm9wcy5pc09wdGlvbmFsXCJcbiAgICAgICAgPlxuICAgICAgICAgIChvcHRpb25hbClcbiAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgIDxUaWRlSW5kaWNhdG9yIHYtaWY9XCJwcm9wcy5pc0FjdGl2ZVwiIC8+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPFRpZGVJY29uIDppY29uPVwiaXNFeHBhbmRlZCA/IElDT04uRVhQQU5EX0xFU1MgOiBJQ09OLkVYUEFORF9NT1JFXCIgLz5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXZcbiAgICAgIDpjbGFzcz1cIlsndGlkZS1hY2NvcmRpb24tYm9keScsIENTUy5ESVNQTEFZLkdSSURdXCJcbiAgICAgIHJlZj1cImFjY29yZGlvbkJvZHlcIlxuICAgID5cbiAgICAgIDxkaXYgOmNsYXNzPVwiW0NTUy5PVkVSRkxPVy5ZLkhJRERFTl1cIj5cbiAgICAgICAgPGRpdiA6Y2xhc3M9XCJbQ1NTLk1BUkdJTi5ZLk9ORSwgQ1NTLkZPTlQuV0VJR0hULkZPVVJfSFVORFJFRCwgQ1NTLkZPTlQuQ09MT1IuU1VSRkFDRS5ERUZBVUxUXVwiPlxuICAgICAgICAgIDxzbG90IC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8VGlkZURpdmlkZXIgdi1pZj1cInByb3BzLmhhc0JvdHRvbURpdmlkZXJcIiAvPlxuICA8L2Rpdj5cbjwvdGVtcGxhdGU+XG5cbjxzdHlsZSBzY29wZWQ+XG4gIC50aWRlLWFjY29yZGlvbi1ib2R5IHtcbiAgICB0cmFuc2l0aW9uOiBncmlkLXRlbXBsYXRlLXJvd3MgdmFyKC0tdGlkZS1hbmltYXRlKTtcbiAgfVxuPC9zdHlsZT5cbiIsImV4cG9ydCBjb25zdCBFTEVNRU5UID0ge1xuICBCVVRUT046ICdidXR0b24nLFxuICBMSU5LOiAnYScsXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgY29uc3QgRUxFTUVOVF9URVhUX0FTX0lDT04gPSB7XG4gIEJVVFRPTjogJ2J1dHRvbicsXG4gIERJVjogJ2RpdicsXG4gIExJTks6ICdhJyxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIEVsZW1lbnQgPSAodHlwZW9mIEVMRU1FTlQpW2tleW9mIHR5cGVvZiBFTEVNRU5UXTtcbmV4cG9ydCB0eXBlIEVsZW1lbnRUZXh0QXNJY29uID0gKHR5cGVvZiBFTEVNRU5UX1RFWFRfQVNfSUNPTilba2V5b2YgdHlwZW9mIEVMRU1FTlRfVEVYVF9BU19JQ09OXTtcbiIsIi8qIGVzbGludC1kaXNhYmxlIHZ1ZS9zb3J0LWtleXMgKi9cblxuZXhwb3J0IGNvbnN0IFBSSU9SSVRZID0ge1xuICBQUklNQVJZOiAncHJpbWFyeScsXG4gIFNFQ09OREFSWTogJ3NlY29uZGFyeScsXG4gIFRFUlRJQVJZOiAndGVydGlhcnknLFxuICBRVUFURVJOQVJZOiAncXVhdGVybmFyeScsXG4gIEZMT0FUSU5HOiAnZmxvYXRpbmcnLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgUHJpb3JpdHkgPSAodHlwZW9mIFBSSU9SSVRZKVtrZXlvZiB0eXBlb2YgUFJJT1JJVFldO1xuIiwiZXhwb3J0IGNvbnN0IFRBUkdFVCA9IHtcbiAgQkxBTks6ICdfYmxhbmsnLFxuICBTRUxGOiB1bmRlZmluZWQsXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgdHlwZSBUYXJnZXQgPSAodHlwZW9mIFRBUkdFVClba2V5b2YgdHlwZW9mIFRBUkdFVF07XG4iLCJleHBvcnQgY29uc3QgQUxFUlQgPSB7XG4gIEVSUk9SOiAnZXJyb3InLFxuICBJTkZPOiAnaW5mbycsXG4gIFNVQ0NFU1M6ICdzdWNjZXNzJyxcbiAgV0FSTklORzogJ3dhcm5pbmcnLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgQWxlcnQgPSAodHlwZW9mIEFMRVJUKVtrZXlvZiB0eXBlb2YgQUxFUlRdO1xuIiwiPHNjcmlwdCBsYW5nPVwidHNcIiBzZXR1cD5cbiAgaW1wb3J0IHsgY29tcHV0ZWQgfSBmcm9tICd2dWUnO1xuXG4gIGltcG9ydCB0eXBlIHsgQWxlcnQgfSBmcm9tICdAL3R5cGVzL0FsZXJ0JztcbiAgaW1wb3J0IHR5cGUgeyBJY29uIH0gZnJvbSAnQC90eXBlcy9JY29uJztcblxuICBpbXBvcnQgVGlkZUljb24gZnJvbSAnQC9jb21wb25lbnRzL1RpZGVJY29uLnZ1ZSc7XG4gIGltcG9ydCBUaWRlQnV0dG9uSWNvbiBmcm9tICdAL2NvbXBvbmVudHMvVGlkZUJ1dHRvbkljb24udnVlJztcbiAgaW1wb3J0IHsgQUxFUlQgfSBmcm9tICdAL3R5cGVzL0FsZXJ0JztcbiAgaW1wb3J0IHsgQ1NTIH0gZnJvbSAnQC90eXBlcy9TdHlsZXMnO1xuICBpbXBvcnQgeyBJQ09OIH0gZnJvbSAnQC90eXBlcy9JY29uJztcbiAgaW1wb3J0IHsgUFJJT1JJVFkgfSBmcm9tICdAL3R5cGVzL1ByaW9yaXR5JztcblxuICB0eXBlIFByb3BzID0ge1xuICAgIGhlYWRpbmc/OiBzdHJpbmc7XG4gICAgaXNUb2FzdD86IGJvb2xlYW47XG4gICAgdHlwZT86IEFsZXJ0O1xuICB9O1xuXG4gIGNvbnN0IHByb3BzID0gd2l0aERlZmF1bHRzKGRlZmluZVByb3BzPFByb3BzPigpLCB7XG4gICAgaGVhZGluZzogdW5kZWZpbmVkLFxuICAgIGlzVG9hc3Q6IGZhbHNlLFxuICAgIHR5cGU6IEFMRVJULklORk8sXG4gIH0pO1xuXG4gIGNvbnN0IGljb24gPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgbGV0IGljb246IEljb24gPSBJQ09OLlZJRVdfSU5fQVI7XG5cbiAgICBzd2l0Y2ggKHByb3BzLnR5cGUpIHtcbiAgICAgIGNhc2UgQUxFUlQuRVJST1I6XG4gICAgICAgIGljb24gPSBJQ09OLkVSUk9SO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICBjYXNlIEFMRVJULklORk86XG4gICAgICAgIGljb24gPSBJQ09OLklORk87XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBBTEVSVC5TVUNDRVNTOlxuICAgICAgICBpY29uID0gSUNPTi5DSEVDSztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEFMRVJULldBUk5JTkc6XG4gICAgICAgIGljb24gPSBJQ09OLldBUk5JTkc7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHJldHVybiBpY29uO1xuICB9KTtcbjwvc2NyaXB0PlxuXG48dGVtcGxhdGU+XG4gIDxkaXZcbiAgICA6Y2xhc3M9XCJbXG4gICAgICBwcm9wcy50eXBlLFxuICAgICAgJ3RpZGUtYWxlcnQnLFxuICAgICAgQ1NTLkRJU1BMQVkuR1JJRCxcbiAgICAgIENTUy5CT1JERVIuUkFESVVTLkhBTEYsXG4gICAgICBDU1MuUEFERElORy5GVUxMLk9ORSxcbiAgICAgIHByb3BzLnR5cGUgPT09IEFMRVJULkVSUk9SICYmIENTUy5CRy5TVVJGQUNFLkVSUk9SLFxuICAgICAgcHJvcHMudHlwZSA9PT0gQUxFUlQuSU5GTyAmJiBDU1MuQkcuU1VSRkFDRS5JTkZPLFxuICAgICAgcHJvcHMudHlwZSA9PT0gQUxFUlQuU1VDQ0VTUyAmJiBDU1MuQkcuU1VSRkFDRS5TVUNDRVNTLFxuICAgICAgcHJvcHMudHlwZSA9PT0gQUxFUlQuV0FSTklORyAmJiBDU1MuQkcuU1VSRkFDRS5XQVJOSU5HLFxuICAgICAgcHJvcHMuaXNUb2FzdCA/IENTUy5TSEFET1cuQk9UVE9NIDogJycsXG4gICAgXVwiXG4gID5cbiAgICA8ZGl2IDpjbGFzcz1cIlsndGlkZS1hbGVydC1pY29uJywgQ1NTLkRJU1BMQVkuRkxFWCwgQ1NTLkFYSVMyLkNFTlRFUl1cIj5cbiAgICAgIDxUaWRlSWNvblxuICAgICAgICA6Y2xhc3M9XCJbXG4gICAgICAgICAgcHJvcHMudHlwZSxcbiAgICAgICAgICBDU1MuQk9SREVSLlJBRElVUy5GVUxMLFxuICAgICAgICAgIENTUy5QQURESU5HLkZVTEwuSEFMRixcbiAgICAgICAgICBDU1MuRk9OVC5DT0xPUi5TVVJGQUNFLklOVkVSU0UsXG4gICAgICAgICAgcHJvcHMudHlwZSA9PT0gQUxFUlQuRVJST1IgJiYgQ1NTLkJHLkVSUk9SLFxuICAgICAgICAgIHByb3BzLnR5cGUgPT09IEFMRVJULklORk8gJiYgQ1NTLkJHLklORk8sXG4gICAgICAgICAgcHJvcHMudHlwZSA9PT0gQUxFUlQuU1VDQ0VTUyAmJiBDU1MuQkcuU1VDQ0VTUyxcbiAgICAgICAgICBwcm9wcy50eXBlID09PSBBTEVSVC5XQVJOSU5HICYmIENTUy5CRy5XQVJOSU5HLFxuICAgICAgICBdXCJcbiAgICAgICAgOmljb249XCJpY29uXCJcbiAgICAgIC8+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IDpjbGFzcz1cIlsndGlkZS1hbGVydC1oZWFkaW5nJywgQ1NTLkRJU1BMQVkuRkxFWCwgQ1NTLkFYSVMyLkNFTlRFUl1cIj5cbiAgICAgIDxoMiA6Y2xhc3M9XCJbQ1NTLkZPTlQuU0laRS5TSVhURUVOLCBDU1MuRk9OVC5XRUlHSFQuU0lYX0hVTkRSRUQsIENTUy5GT05ULkNPTE9SLlNVUkZBQ0UuREVGQVVMVF1cIj5cbiAgICAgICAge3sgcHJvcHMuaGVhZGluZyB9fVxuICAgICAgPC9oMj5cbiAgICA8L2Rpdj5cblxuICAgIDxUaWRlQnV0dG9uSWNvblxuICAgICAgOmNsYXNzPVwiWyd0aWRlLWFsZXJ0LWNsb3NlJywgQ1NTLkFYSVMyLkNFTlRFUiwgQ1NTLkZPTlQuQ09MT1IuU1VSRkFDRS5ERUZBVUxUXVwiXG4gICAgICA6aWNvbj1cIklDT04uQ0xPU0VcIlxuICAgICAgOnByaW9yaXR5PVwiUFJJT1JJVFkuUVVBVEVSTkFSWVwiXG4gICAgICBhcmlhLWxhYmVsPVwiQ2xvc2UgYWxlcnRcIlxuICAgIC8+XG5cbiAgICA8ZGl2IDpjbGFzcz1cIlsndGlkZS1hbGVydC1ib2R5JywgQ1NTLkZPTlQuV0VJR0hULkZJVkVfSFVORFJFRCwgQ1NTLkZPTlQuQ09MT1IuU1VSRkFDRS5WQVJJQU5UXVwiPlxuICAgICAgPHNsb3QgLz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L3RlbXBsYXRlPlxuXG48c3R5bGUgc2NvcGVkPlxuICAudGlkZS1hbGVydCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1hcmVhczpcbiAgICAgICdpY29uIGhlYWRpbmcgY2xvc2UnXG4gICAgICAnLiBib2R5IC4nO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byAxZnIgYXV0bztcbiAgICBncmlkLWNvbHVtbi1nYXA6IDAuNXJlbTtcbiAgICBtYXgtd2lkdGg6IDQwcmVtO1xuICB9XG5cbiAgLnRpZGUtYWxlcnQtaWNvbiB7XG4gICAgZ3JpZC1hcmVhOiBpY29uO1xuICB9XG5cbiAgLnRpZGUtYWxlcnQtaGVhZGluZyB7XG4gICAgZ3JpZC1hcmVhOiBoZWFkaW5nO1xuICB9XG5cbiAgLnRpZGUtYWxlcnQtY2xvc2Uge1xuICAgIGdyaWQtYXJlYTogY2xvc2U7XG4gIH1cblxuICAudGlkZS1hbGVydC1ib2R5IHtcbiAgICBncmlkLWFyZWE6IGJvZHk7XG4gIH1cbjwvc3R5bGU+XG4iLCJleHBvcnQgY29uc3QgQkFER0UgPSB7XG4gIEpVU1RfTElTVEVEOiAnSnVzdCBsaXN0ZWQnLFxuICBOQVRJT05XSURFOiAnTmF0aW9ud2lkZScsXG4gIFJFRFVDRUQ6ICdSZWR1Y2VkJyxcbiAgVVBEQVRFRDogJ1VwZGF0ZWQnLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IGNvbnN0IEJBREdFX1BSRU1JVU0gPSB7XG4gIFBSRU1JVU06ICdQcmVtaXVtJyxcbiAgUFJFTUlVTV9TRUxFQ1Q6ICdQcmVtaXVtIFNFTEVDVCcsXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgY29uc3QgQkFER0VfVFJVU1RFRCA9IHtcbiAgWUVBUlNfMTA6ICcxMCcsXG4gIFlFQVJTXzE1OiAnMTUnLFxuICBZRUFSU181OiAnNScsXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgdHlwZSBCYWRnZSA9ICh0eXBlb2YgQkFER0UpW2tleW9mIHR5cGVvZiBCQURHRV07XG5leHBvcnQgdHlwZSBCYWRnZVByZW1pdW0gPSAodHlwZW9mIEJBREdFX1BSRU1JVU0pW2tleW9mIHR5cGVvZiBCQURHRV9QUkVNSVVNXTtcbmV4cG9ydCB0eXBlIEJhZGdlVHJ1c3RlZFllYXJzID0gKHR5cGVvZiBCQURHRV9UUlVTVEVEKVtrZXlvZiB0eXBlb2YgQkFER0VfVFJVU1RFRF07XG4iLCI8c2NyaXB0IGxhbmc9XCJ0c1wiIHNldHVwPlxuICBpbXBvcnQgeyBvbk1vdW50ZWQsIG9uVW5tb3VudGVkLCBvblVwZGF0ZWQsIHJlZiwgd2F0Y2ggfSBmcm9tICd2dWUnO1xuXG4gIGltcG9ydCBUaWRlQnV0dG9uSWNvbiBmcm9tICdAL2NvbXBvbmVudHMvVGlkZUJ1dHRvbkljb24udnVlJztcbiAgaW1wb3J0IHsgQ1NTIH0gZnJvbSAnQC90eXBlcy9TdHlsZXMnO1xuICBpbXBvcnQgeyBJQ09OIH0gZnJvbSAnQC90eXBlcy9JY29uJztcbiAgaW1wb3J0IHsgUFJJT1JJVFkgfSBmcm9tICdAL3R5cGVzL1ByaW9yaXR5JztcblxuICB0eXBlIFByb3BzID0ge1xuICAgIGlzVG91Y2hzY3JlZW4/OiBib29sZWFuO1xuICAgIG9mZnNldFg/OiBudW1iZXI7XG4gIH07XG5cbiAgY29uc3QgcHJvcHMgPSB3aXRoRGVmYXVsdHMoZGVmaW5lUHJvcHM8UHJvcHM+KCksIHtcbiAgICBvZmZzZXRYOiAwLFxuICB9KTtcblxuICBjb25zdCBlbWl0ID0gZGVmaW5lRW1pdHMoWydjaGFuZ2UnXSk7XG5cbiAgbGV0IGNvbnRlbnRXaWR0aCA9IHJlZigpO1xuICBsZXQgZnJhbWVXaWR0aCA9IHJlZigpO1xuICBsZXQgaGFzT3ZlcmZsb3cgPSByZWYoKTtcbiAgbGV0IGxhc3RQb3NpdGlvbiA9IHJlZigpO1xuXG4gIGNvbnN0IGNvbnRlbnRSZWYgPSByZWYoKTtcbiAgY29uc3QgZnJhbWVSZWYgPSByZWYoKTtcbiAgY29uc3Qgc2hvd0J1dHRvbnMgPSByZWYoKTtcbiAgY29uc3QgY3VycmVudFNsaWRlID0gcmVmKDApO1xuXG4gIGNvbnN0IGdhcCA9IDE2O1xuXG4gIC8qKlxuICAgKiBNZWFzdXJlIHRoZSBjdXJyZW50IHNsaWRlIGJhc2VkIG9uIHRoZSBzY3JvbGxcbiAgICogcG9zaXRpb24gb2YgdGhlIGZyYW1lLiBUaGUgY3VycmVudCBzbGlkZSBpc1xuICAgKiB0aGUgc2xpZGUgdGhhdCBpcyBjbG9zZXN0IHRvIHRoZSBsZWZ0IGVkZ2Ugb2ZcbiAgICogdGhlIGZyYW1lLlxuICAgKi9cbiAgY29uc3QgbWVhc3VyZUN1cnJlbnRTbGlkZSA9ICgpID0+IHtcbiAgICAvLyBnZXQgbGVmdCBvZmZzZXRzIG9mIGVhY2ggc2xpZGVcbiAgICBjb25zdCBzbGlkZU9mZnNldHMgPSBBcnJheS5mcm9tKGNvbnRlbnRSZWYudmFsdWUuY2hpbGRyZW4pLm1hcCgoc2xpZGU6IGFueSkgPT4gc2xpZGUub2Zmc2V0TGVmdCk7XG5cbiAgICBpZiAoc2xpZGVPZmZzZXRzLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuXG4gICAgLy8gZ2V0IHZhbHVlIGNsb3Nlc3QgdG8gY3VycmVudCBzY3JvbGwgcG9zaXRpb25cbiAgICBjb25zdCBjbG9zZXN0U2xpZGVPZmZzZXQgPSBzbGlkZU9mZnNldHMucmVkdWNlKChwcmV2LCBjdXJyKSA9PiB7XG4gICAgICByZXR1cm4gTWF0aC5hYnMoY3VyciAtIGZyYW1lUmVmLnZhbHVlLnNjcm9sbExlZnQpIDwgTWF0aC5hYnMocHJldiAtIGZyYW1lUmVmLnZhbHVlLnNjcm9sbExlZnQpID8gY3VyciA6IHByZXY7XG4gICAgfSk7XG5cbiAgICAvLyBzZXQgY3VycmVudCBzbGlkZSB0byBpbmRleCBvZiBjbG9zZXN0IHNsaWRlXG4gICAgY3VycmVudFNsaWRlLnZhbHVlID0gc2xpZGVPZmZzZXRzLmluZGV4T2YoY2xvc2VzdFNsaWRlT2Zmc2V0KTtcbiAgfTtcblxuICBjb25zdCBtZWFzdXJlRG9tID0gKCkgPT4ge1xuICAgIGNvbnRlbnRXaWR0aC52YWx1ZSA9IGNvbnRlbnRSZWYudmFsdWUuc2Nyb2xsV2lkdGg7XG4gICAgZnJhbWVXaWR0aC52YWx1ZSA9IGZyYW1lUmVmLnZhbHVlLmNsaWVudFdpZHRoO1xuICAgIGhhc092ZXJmbG93LnZhbHVlID0gY29udGVudFdpZHRoLnZhbHVlID4gZnJhbWVXaWR0aC52YWx1ZTtcbiAgICBsYXN0UG9zaXRpb24udmFsdWUgPSBmcmFtZVJlZi52YWx1ZS5zY3JvbGxXaWR0aCAtIGZyYW1lUmVmLnZhbHVlLmNsaWVudFdpZHRoO1xuICAgIHNob3dCdXR0b25zLnZhbHVlID0gaGFzT3ZlcmZsb3cudmFsdWUgJiYgIXByb3BzLmlzVG91Y2hzY3JlZW47XG5cbiAgICBtZWFzdXJlQ3VycmVudFNsaWRlKCk7XG4gIH07XG5cbiAgLy8gVE9ETzogZGVib3VuY2UgdGhpc1xuICBjb25zdCBoYW5kbGVTY3JvbGwgPSAoKSA9PiB7XG4gICAgbWVhc3VyZURvbSgpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBTY3JvbGxzIHRvIHRoZSBzbGlkZSBhdCB0aGUgZ2l2ZW4gaW5kZXgsIG9yXG4gICAqIHRvIHRoZSBmaXJzdCBvciBsYXN0IHNsaWRlIGlmIHRoZSBnaXZlbiBpbmRleFxuICAgKiBpcyBvdXQgb2YgYm91bmRzLlxuICAgKiBAcGFyYW0gc2xpZGVJbmRleCBUaGUgaW5kZXggb2YgdGhlIHNsaWRlIHRvIHNjcm9sbCB0b1xuICAgKi9cbiAgY29uc3Qgc2Nyb2xsVG9TbGlkZSA9IChzbGlkZUluZGV4OiBudW1iZXIpID0+IHtcbiAgICBmcmFtZVJlZi52YWx1ZS5zY3JvbGxUbyh7XG4gICAgICBiZWhhdmlvcjogJ3Ntb290aCcsXG4gICAgICBsZWZ0OiBjb250ZW50UmVmLnZhbHVlLmNoaWxkcmVuW3NsaWRlSW5kZXhdLm9mZnNldExlZnQsXG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3Qgc2hvd05leHRTbGlkZSA9ICgpID0+IHtcbiAgICBjb25zdCBjb250ZW50V2lkdGggPSBjb250ZW50UmVmLnZhbHVlLnNjcm9sbFdpZHRoO1xuICAgIGNvbnN0IGNvbnRlbnRSaWdodEVkZ2UgPSBmcmFtZVJlZi52YWx1ZS5zY3JvbGxMZWZ0ICsgZnJhbWVSZWYudmFsdWUuY2xpZW50V2lkdGg7XG5cbiAgICBpZiAoY29udGVudFJpZ2h0RWRnZSA+IGNvbnRlbnRXaWR0aCkge1xuICAgICAgZnJhbWVSZWYudmFsdWUuc2Nyb2xsVG8oe1xuICAgICAgICBiZWhhdmlvcjogJ3Ntb290aCcsXG4gICAgICAgIGxlZnQ6IGNvbnRlbnRXaWR0aCxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBpc0ZpcnN0U2xpZGVXaXRoT2Zmc2V0ID0gcHJvcHMub2Zmc2V0WCAmJiBjdXJyZW50U2xpZGUudmFsdWUgPT09IDA7XG4gICAgICBjb25zdCBpc0xhc3RTbGlkZSA9IGNvbnRlbnRSaWdodEVkZ2UgPT09IGNvbnRlbnRXaWR0aDtcbiAgICAgIGNvbnN0IG5leHRTbGlkZSA9IGlzTGFzdFNsaWRlID8gMCA6IGlzRmlyc3RTbGlkZVdpdGhPZmZzZXQgPyAyIDogY3VycmVudFNsaWRlLnZhbHVlICsgMTtcblxuICAgICAgc2Nyb2xsVG9TbGlkZShuZXh0U2xpZGUpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBzaG93UHJldmlvdXNTbGlkZSA9ICgpID0+IHtcbiAgICBjb25zdCBmaXJzdFNsaWRlID0gcHJvcHMub2Zmc2V0WCA/IDEgOiAwO1xuICAgIGNvbnN0IGlzRmlyc3RTbGlkZSA9IGN1cnJlbnRTbGlkZS52YWx1ZSAtIDEgPT09IGZpcnN0U2xpZGU7XG4gICAgY29uc3QgaXNTZWNvbmRTbGlkZSA9IGN1cnJlbnRTbGlkZS52YWx1ZSA8PSBmaXJzdFNsaWRlO1xuICAgIGNvbnN0IHByZXZpb3VzU2xpZGUgPSBpc1NlY29uZFNsaWRlXG4gICAgICA/IGNvbnRlbnRSZWYudmFsdWUuY2hpbGRyZW4ubGVuZ3RoIC0gMVxuICAgICAgOiBpc0ZpcnN0U2xpZGVcbiAgICAgID8gMFxuICAgICAgOiBjdXJyZW50U2xpZGUudmFsdWUgLSAxO1xuXG4gICAgc2Nyb2xsVG9TbGlkZShwcmV2aW91c1NsaWRlKTtcbiAgfTtcblxuICBvbk1vdW50ZWQoKCkgPT4ge1xuICAgIG1lYXN1cmVEb20oKTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgbWVhc3VyZURvbSk7XG4gIH0pO1xuXG4gIG9uVW5tb3VudGVkKCgpID0+IHtcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgbWVhc3VyZURvbSk7XG4gIH0pO1xuXG4gIG9uVXBkYXRlZCgoKSA9PiB7XG4gICAgbWVhc3VyZURvbSgpO1xuICB9KTtcblxuICB3YXRjaChjdXJyZW50U2xpZGUsICgpID0+IHtcbiAgICBlbWl0KCdjaGFuZ2UnLCBjdXJyZW50U2xpZGUudmFsdWUpO1xuICB9KTtcbjwvc2NyaXB0PlxuXG48dGVtcGxhdGU+XG4gIDxzZWN0aW9uXG4gICAgOmNsYXNzPVwiWyd0aWRlLWNhcm91c2VsJywgQ1NTLlBPU0lUSU9OLlJFTEFUSVZFLCBDU1MuRElTUExBWS5GTEVYLCBDU1MuQVhJUzIuQ0VOVEVSLCBDU1MuV0lEVEguRlVMTF1cIlxuICAgIHJlZj1cImNhcm91c2VsUmVmXCJcbiAgPlxuICAgIDxkaXZcbiAgICAgIDpjbGFzcz1cIltDU1MuU0NST0xMQkFSLk9GRiwgQ1NTLlNOQVAuT04sIENTUy5PVkVSRkxPVy5YLlNDUk9MTF1cIlxuICAgICAgcmVmPVwiZnJhbWVSZWZcIlxuICAgICAgQHNjcm9sbD1cImhhbmRsZVNjcm9sbFwiXG4gICAgPlxuICAgICAgPHVsXG4gICAgICAgIDpjbGFzcz1cIltwcm9wcy5pc1RvdWNoc2NyZWVuID8gW0NTUy5PVkVSRkxPVy5YLkFVVE9dIDogJycsIENTUy5ESVNQTEFZLkZMRVgsIENTUy5HQVAuT05FLCBDU1MuTElTVF9CVUxMRVRTLk9GRl1cIlxuICAgICAgICByZWY9XCJjb250ZW50UmVmXCJcbiAgICAgID5cbiAgICAgICAgPGxpXG4gICAgICAgICAgOmNsYXNzPVwiW0NTUy5GTEVYLlNIUklOSy5PRkYsIENTUy5TTkFQX0FMSUdOLlNUQVJUXVwiXG4gICAgICAgICAgOnN0eWxlPVwieyB3aWR0aDogYCR7cHJvcHMub2Zmc2V0WCAtIGdhcH1weGAgfVwiXG4gICAgICAgICAgdi1pZj1cInByb3BzLm9mZnNldFhcIlxuICAgICAgICAvPlxuXG4gICAgICAgIDxzbG90IC8+XG5cbiAgICAgICAgPGxpXG4gICAgICAgICAgOmNsYXNzPVwiW0NTUy5GTEVYLlNIUklOSy5PRkYsIENTUy5TTkFQX0FMSUdOLlNUQVJUXVwiXG4gICAgICAgICAgOnN0eWxlPVwieyB3aWR0aDogYCR7cHJvcHMub2Zmc2V0WCAtIGdhcH1weGAgfVwiXG4gICAgICAgICAgdi1pZj1cInByb3BzLm9mZnNldFhcIlxuICAgICAgICAvPlxuICAgICAgPC91bD5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXZcbiAgICAgIDpjbGFzcz1cIltcbiAgICAgICAgQ1NTLlBPU0lUSU9OLkFCU09MVVRFLFxuICAgICAgICBDU1MuRElTUExBWS5GTEVYLFxuICAgICAgICBDU1MuQVhJUzEuQkVUV0VFTixcbiAgICAgICAgQ1NTLkFYSVMyLkNFTlRFUixcbiAgICAgICAgQ1NTLldJRFRILkZVTEwsXG4gICAgICAgIENTUy5IRUlHSFQuRlVMTCxcbiAgICAgICAgQ1NTLlBPSU5URVJfRVZFTlRTLk9GRixcbiAgICAgIF1cIlxuICAgICAgdi1pZj1cInNob3dCdXR0b25zXCJcbiAgICA+XG4gICAgICA8VGlkZUJ1dHRvbkljb25cbiAgICAgICAgOmNsYXNzPVwiW0NTUy5NQVJHSU4uTEVGVC5PTkUsIENTUy5QT0lOVEVSX0VWRU5UUy5PTl1cIlxuICAgICAgICA6aWNvbj1cIklDT04uQ0hFVlJPTl9MRUZUXCJcbiAgICAgICAgOnByaW9yaXR5PVwiUFJJT1JJVFkuUVVBVEVSTkFSWVwiXG4gICAgICAgIEBjbGljaz1cInNob3dQcmV2aW91c1NsaWRlXCJcbiAgICAgIC8+XG5cbiAgICAgIDxUaWRlQnV0dG9uSWNvblxuICAgICAgICA6Y2xhc3M9XCJbQ1NTLk1BUkdJTi5SSUdIVC5PTkUsIENTUy5QT0lOVEVSX0VWRU5UUy5PTl1cIlxuICAgICAgICA6aWNvbj1cIklDT04uQ0hFVlJPTl9SSUdIVFwiXG4gICAgICAgIDpwcmlvcml0eT1cIlBSSU9SSVRZLlFVQVRFUk5BUllcIlxuICAgICAgICBAY2xpY2s9XCJzaG93TmV4dFNsaWRlXCJcbiAgICAgIC8+XG4gICAgPC9kaXY+XG4gIDwvc2VjdGlvbj5cbjwvdGVtcGxhdGU+XG4iLCI8c2NyaXB0IGxhbmc9XCJ0c1wiIHNldHVwPlxuICBpbXBvcnQgeyByZWYgfSBmcm9tICd2dWUnO1xuXG4gIGltcG9ydCB7IENTUyB9IGZyb20gJ0AvdHlwZXMvU3R5bGVzJztcblxuICB0eXBlIFByb3BzID0ge1xuICAgIGFsdD86IHN0cmluZztcbiAgICBjZG4/OiBzdHJpbmc7XG4gICAgaXNMYXp5PzogYm9vbGVhbjtcbiAgICBvZmZzZXQ/OiBudW1iZXI7XG4gICAgc3JjPzogc3RyaW5nO1xuICB9O1xuXG4gIGNvbnN0IHByb3BzID0gd2l0aERlZmF1bHRzKGRlZmluZVByb3BzPFByb3BzPigpLCB7XG4gICAgYWx0OiAnJyxcbiAgICBjZG46IHVuZGVmaW5lZCxcbiAgICBpc0xhenk6IHRydWUsXG4gICAgb2Zmc2V0OiAwLFxuICAgIHNyYzogdW5kZWZpbmVkLFxuICB9KTtcblxuICBjb25zdCB0aWRlSW1hZ2UgPSByZWYoKTtcblxuICBjb25zdCBpbWFnZURlZmF1bHQgPSBgJHtwcm9wcy5jZG59L2ltYWdlLWNvbWluZy1zb29uLTUxMi5wbmdgO1xuXG4gIGNvbnN0IHNldEltYWdlRnJvbURlZmF1bHQgPSAoKSA9PiB7XG4gICAgdGlkZUltYWdlLnZhbHVlLnNyYyA9IGltYWdlRGVmYXVsdDtcbiAgfTtcblxuICBkZWZpbmVFeHBvc2UodGlkZUltYWdlLnZhbHVlKTtcbjwvc2NyaXB0PlxuXG48dGVtcGxhdGU+XG4gIDxpbWdcbiAgICA6YWx0PVwiYWx0XCJcbiAgICA6Y2xhc3M9XCJbJ3RpZGUtaW1hZ2UnLCBDU1MuT0JKRUNULkNFTlRFUiwgQ1NTLk9CSkVDVC5DT1ZFUl1cIlxuICAgIDpsb2FkaW5nPVwiaXNMYXp5ID8gJ2xhenknIDogJ2VhZ2VyJ1wiXG4gICAgcmVmPVwidGlkZUltYWdlXCJcbiAgICA6c3JjPVwic3JjID8/IGltYWdlRGVmYXVsdFwiXG4gICAgQGVycm9yPVwic2V0SW1hZ2VGcm9tRGVmYXVsdFwiXG4gIC8+XG48L3RlbXBsYXRlPlxuXG48c3R5bGUgc2NvcGVkPjwvc3R5bGU+XG4iLCI8c2NyaXB0IGxhbmc9XCJ0c1wiIHNldHVwPlxuICBpbXBvcnQgeyByZWYsIHdhdGNoIH0gZnJvbSAndnVlJztcblxuICBpbXBvcnQgVGlkZUljb24gZnJvbSAnQC9jb21wb25lbnRzL1RpZGVJY29uLnZ1ZSc7XG4gIGltcG9ydCB7IENTUyB9IGZyb20gJ0AvdHlwZXMvU3R5bGVzJztcbiAgaW1wb3J0IHsgSUNPTiB9IGZyb20gJ0AvdHlwZXMvSWNvbic7XG4gIGltcG9ydCB7IFNJWkUgfSBmcm9tICdAL3R5cGVzL1NpemUnO1xuICBpbXBvcnQgeyBmb3JtYXROdW1iZXIgfSBmcm9tICdAL3V0aWxpdGllcy9mb3JtYXQnO1xuXG4gIGNvbnN0IGlucHV0ID0gcmVmPEhUTUxJbnB1dEVsZW1lbnQ+KCk7XG5cbiAgdHlwZSBQcm9wcyA9IHtcbiAgICBjaGVja2VkPzogYm9vbGVhbjtcbiAgICBkYXRhVHJhY2s/OiBzdHJpbmc7XG4gICAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICAgIGluZGV0ZXJtaW5hdGU/OiBib29sZWFuO1xuICAgIGlucHV0SWQ/OiBzdHJpbmc7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgbnVtYmVyPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICB9O1xuXG4gIGNvbnN0IHByb3BzID0gd2l0aERlZmF1bHRzKGRlZmluZVByb3BzPFByb3BzPigpLCB7XG4gICAgY2hlY2tlZDogZmFsc2UsXG4gICAgZGF0YVRyYWNrOiAnJyxcbiAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgaW5kZXRlcm1pbmF0ZTogZmFsc2UsXG4gICAgaW5wdXRJZDogdW5kZWZpbmVkLFxuICAgIGxhYmVsOiB1bmRlZmluZWQsXG4gICAgbmFtZTogdW5kZWZpbmVkLFxuICAgIG51bWJlcjogdW5kZWZpbmVkLFxuICB9KTtcblxuICBjb25zdCBjaGVja2VkID0gcmVmKHByb3BzLmNoZWNrZWQgfHwgcHJvcHMuaW5kZXRlcm1pbmF0ZSk7XG4gIGNvbnN0IGluZGV0ZXJtaW5hdGUgPSByZWYocHJvcHMuaW5kZXRlcm1pbmF0ZSk7XG5cbiAgY29uc3QgaGFuZGxlQ2xpY2sgPSAoKSA9PiB7XG4gICAgY2hlY2tlZC52YWx1ZSA9ICFjaGVja2VkLnZhbHVlO1xuICB9O1xuXG4gIHdhdGNoKFxuICAgICgpID0+IHByb3BzLmluZGV0ZXJtaW5hdGUsXG4gICAgKG5ld1ZhbHVlLCBvbGRWYWx1ZSkgPT4ge1xuICAgICAgaWYgKG5ld1ZhbHVlICE9PSBvbGRWYWx1ZSB8fCBuZXdWYWx1ZSAhPT0gaW5kZXRlcm1pbmF0ZS52YWx1ZSkge1xuICAgICAgICBpZiAoaW5wdXQudmFsdWUpIHtcbiAgICAgICAgICBpbmRldGVybWluYXRlLnZhbHVlID0gbmV3VmFsdWU7XG4gICAgICAgICAgaW5wdXQudmFsdWUuaW5kZXRlcm1pbmF0ZSA9IGluZGV0ZXJtaW5hdGUudmFsdWU7XG5cbiAgICAgICAgICBpZiAoaW5kZXRlcm1pbmF0ZS52YWx1ZSA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgY2hlY2tlZC52YWx1ZSA9IHRydWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaW5wdXQudmFsdWUuY2hlY2tlZCA9IGNoZWNrZWQudmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICk7XG5cbiAgd2F0Y2goXG4gICAgKCkgPT4gcHJvcHMuY2hlY2tlZCxcbiAgICAobmV3VmFsdWUsIG9sZFZhbHVlKSA9PiB7XG4gICAgICBpZiAobmV3VmFsdWUgIT09IG9sZFZhbHVlIHx8IG5ld1ZhbHVlICE9PSBjaGVja2VkLnZhbHVlKSB7XG4gICAgICAgIGNoZWNrZWQudmFsdWUgPSBuZXdWYWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICk7XG5cbiAgZGVmaW5lRXhwb3NlKHsgY2hlY2tlZCwgaW5kZXRlcm1pbmF0ZSB9KTtcbjwvc2NyaXB0PlxuXG48dGVtcGxhdGU+XG4gIDxkaXZcbiAgICA6Y2xhc3M9XCJbXG4gICAgICAndGlkZS1pbnB1dC1jaGVja2JveCcsXG4gICAgICBDU1MuRElTUExBWS5GTEVYLFxuICAgICAgQ1NTLkFYSVMyLkNFTlRFUixcbiAgICAgIENTUy5HQVAuSEFMRixcbiAgICAgIENTUy5GT05ULlNJWkUuRk9VUlRFRU4sXG4gICAgICBkaXNhYmxlZCAmJiAnZGlzYWJsZWQnLFxuICAgICAgZGlzYWJsZWQgPyBDU1MuQ1VSU09SLk5PVF9BTExPV0VEIDogQ1NTLkNVUlNPUi5QT0lOVEVSLFxuICAgIF1cIlxuICA+XG4gICAgPGlucHV0XG4gICAgICA6Y2hlY2tlZD1cImNoZWNrZWRcIlxuICAgICAgOmNsYXNzPVwiW0NTUy5ESVNQTEFZLk5PTkVdXCJcbiAgICAgIDpkaXNhYmxlZD1cInByb3BzLmRpc2FibGVkXCJcbiAgICAgIDpuYW1lPVwicHJvcHMubmFtZVwiXG4gICAgICByZWY9XCJpbnB1dFwiXG4gICAgICA6aWQ9XCJwcm9wcy5pbnB1dElkXCJcbiAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgLz5cblxuICAgIDxkaXZcbiAgICAgIDpjbGFzcz1cIltcbiAgICAgICAgJ3RpZGUtaW5wdXQtY2hlY2tib3gtY3VzdG9tJyxcbiAgICAgICAgQ1NTLlBPU0lUSU9OLlJFTEFUSVZFLFxuICAgICAgICBDU1MuRElTUExBWS5GTEVYLFxuICAgICAgICBDU1MuQVhJUzEuQ0VOVEVSLFxuICAgICAgICBDU1MuQVhJUzIuQ0VOVEVSLFxuICAgICAgICBDU1MuRkxFWC5TSFJJTksuT0ZGLFxuICAgICAgICBDU1MuQk9SREVSLkZVTEwuT05FLFxuICAgICAgICBjaGVja2VkID8gW0NTUy5CT1JERVIuQ09MT1IuSElHSCwgQ1NTLkJHLlNFQ09OREFSWV0gOiBbQ1NTLkJPUkRFUi5DT0xPUi5ERUZBVUxULCBDU1MuQkcuU1VSRkFDRS5ERUZBVUxUXSxcbiAgICAgICAgQ1NTLkJPUkRFUi5SQURJVVMuUVVBUlRFUixcbiAgICAgICAgY2hlY2tlZCAmJiAnY2hlY2tlZCcsXG4gICAgICAgIGRpc2FibGVkID8gQ1NTLkNVUlNPUi5OT1RfQUxMT1dFRCA6IENTUy5DVVJTT1IuUE9JTlRFUixcbiAgICAgIF1cIlxuICAgICAgQGNsaWNrPVwiaGFuZGxlQ2xpY2tcIlxuICAgID5cbiAgICAgIDxUaWRlSWNvblxuICAgICAgICA6Y2xhc3M9XCJbQ1NTLkZPTlQuQ09MT1IuU0VDT05EQVJZXVwiXG4gICAgICAgIDppY29uPVwiaW5kZXRlcm1pbmF0ZSA/IElDT04uUkVNT1ZFIDogSUNPTi5DSEVDS1wiXG4gICAgICAgIDpzaXplPVwiU0laRS5TTUFMTFwiXG4gICAgICAgIHYtaWY9XCJjaGVja2VkIHx8IGluZGV0ZXJtaW5hdGVcIlxuICAgICAgLz5cbiAgICA8L2Rpdj5cblxuICAgIDxsYWJlbFxuICAgICAgOmNsYXNzPVwiW0NTUy5ESVNQTEFZLkZMRVgsIENTUy5HQVAuSEFMRiwgZGlzYWJsZWQgPyBDU1MuQ1VSU09SLk5PVF9BTExPV0VEIDogQ1NTLkNVUlNPUi5QT0lOVEVSXVwiXG4gICAgICA6Zm9yPVwicHJvcHMuaW5wdXRJZFwiXG4gICAgICBAY2xpY2sucHJldmVudD1cImNoZWNrZWQgPSAhY2hlY2tlZFwiXG4gICAgICB2LWlmPVwibGFiZWxcIlxuICAgID5cbiAgICAgIDxzcGFuPnt7IGxhYmVsIH19PC9zcGFuPlxuICAgICAgPHNwYW5cbiAgICAgICAgOmNsYXNzPVwiW0NTUy5GT05ULkNPTE9SLlNVUkZBQ0UuVkFSSUFOVF1cIlxuICAgICAgICB2LWlmPVwicHJvcHMubnVtYmVyXCJcbiAgICAgID5cbiAgICAgICAgKHt7IGZvcm1hdE51bWJlcihwcm9wcy5udW1iZXIpIH19KVxuICAgICAgPC9zcGFuPlxuICAgIDwvbGFiZWw+XG4gIDwvZGl2PlxuPC90ZW1wbGF0ZT5cblxuPHN0eWxlIHNjb3BlZD5cbiAgLnRpZGUtaW5wdXQtY2hlY2tib3guZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IHZhcigtLXRpZGUtZGlzYWJsZWQpO1xuICB9XG5cbiAgLnRpZGUtaW5wdXQtY2hlY2tib3gtY3VzdG9tIHtcbiAgICB3aWR0aDogdmFyKC0tdGlkZS1mb250LTI4KTtcbiAgICBoZWlnaHQ6IHZhcigtLXRpZGUtZm9udC0yOCk7XG4gIH1cbjwvc3R5bGU+XG4iLCI8c2NyaXB0IGxhbmc9XCJ0c1wiIHNldHVwPlxuICBpbXBvcnQgeyByZWYsIHdhdGNoIH0gZnJvbSAndnVlJztcblxuICBpbXBvcnQgeyBDU1MgfSBmcm9tICdAL3R5cGVzL1N0eWxlcyc7XG5cbiAgdHlwZSBQcm9wcyA9IHtcbiAgICBjaGVja2VkPzogYm9vbGVhbjtcbiAgICBkYXRhVHJhY2s/OiBzdHJpbmc7XG4gICAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICAgIGlucHV0SWQ/OiBzdHJpbmc7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gIH07XG5cbiAgY29uc3QgcHJvcHMgPSB3aXRoRGVmYXVsdHMoZGVmaW5lUHJvcHM8UHJvcHM+KCksIHtcbiAgICBjaGVja2VkOiBmYWxzZSxcbiAgICBkYXRhVHJhY2s6ICcnLFxuICAgIGRpc2FibGVkOiBmYWxzZSxcbiAgICBpbnB1dElkOiB1bmRlZmluZWQsXG4gICAgbGFiZWw6IHVuZGVmaW5lZCxcbiAgfSk7XG5cbiAgY29uc3QgY2hlY2tlZCA9IHJlZihwcm9wcy5jaGVja2VkKTtcblxuICB3YXRjaChcbiAgICAoKSA9PiBwcm9wcy5jaGVja2VkLFxuICAgIChuZXdWYWx1ZSwgb2xkVmFsdWUpID0+IHtcbiAgICAgIGlmIChuZXdWYWx1ZSAhPT0gb2xkVmFsdWUgfHwgbmV3VmFsdWUgIT09IGNoZWNrZWQudmFsdWUpIHtcbiAgICAgICAgY2hlY2tlZC52YWx1ZSA9IG5ld1ZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgKTtcbjwvc2NyaXB0PlxuXG48dGVtcGxhdGU+XG4gIDxkaXYgOmNsYXNzPVwiWyd0aWRlLWlucHV0LXJhZGlvJywgQ1NTLkRJU1BMQVkuRkxFWCwgQ1NTLkFYSVMyLkNFTlRFUiwgQ1NTLkdBUC5IQUxGLCBwcm9wcy5kaXNhYmxlZCAmJiAnZGlzYWJsZWQnXVwiPlxuICAgIDxpbnB1dFxuICAgICAgOmNoZWNrZWQ9XCJjaGVja2VkXCJcbiAgICAgIDpjbGFzcz1cIltDU1MuRElTUExBWS5OT05FXVwiXG4gICAgICA6aWQ9XCJwcm9wcy5pbnB1dElkXCJcbiAgICAgIG5hbWU9XCJcIlxuICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgIHZhbHVlPVwiXCJcbiAgICAvPlxuXG4gICAgPGRpdlxuICAgICAgOmNsYXNzPVwiW1xuICAgICAgICAndGlkZS1pbnB1dC1yYWRpby1jdXN0b20nLFxuICAgICAgICBDU1MuUE9TSVRJT04uUkVMQVRJVkUsXG4gICAgICAgIENTUy5ESVNQTEFZLkZMRVgsXG4gICAgICAgIENTUy5BWElTMS5DRU5URVIsXG4gICAgICAgIENTUy5BWElTMi5DRU5URVIsXG4gICAgICAgIENTUy5CT1JERVIuRlVMTC5PTkUsXG4gICAgICAgIGNoZWNrZWQgPyBDU1MuQk9SREVSLkNPTE9SLkhJR0ggOiBDU1MuQk9SREVSLkNPTE9SLkRFRkFVTFQsXG4gICAgICAgIENTUy5CT1JERVIuUkFESVVTLkZVTEwsXG4gICAgICAgIGNoZWNrZWQgJiYgJ2NoZWNrZWQnLFxuICAgICAgXVwiXG4gICAgPlxuICAgICAgPGRpdiA6Y2xhc3M9XCJbJ3RpZGUtaW5wdXQtcmFkaW8tY2hlY2snLCBDU1MuQk9SREVSLlJBRElVUy5GVUxMLCBwcm9wcy5jaGVja2VkICYmIENTUy5CRy5TRUNPTkRBUlldXCIgLz5cbiAgICA8L2Rpdj5cblxuICAgIDxsYWJlbFxuICAgICAgOmNsYXNzPVwiQ1NTLkZPTlQuV0VJR0hULkZPVVJfSFVORFJFRFwiXG4gICAgICA6Zm9yPVwicHJvcHMuaW5wdXRJZFwiXG4gICAgPlxuICAgICAge3sgcHJvcHMubGFiZWwgfX1cbiAgICA8L2xhYmVsPlxuICA8L2Rpdj5cbjwvdGVtcGxhdGU+XG5cbjxzdHlsZSBzY29wZWQ+XG4gIC50aWRlLWlucHV0LXJhZGlvLmRpc2FibGVkIHtcbiAgICBvcGFjaXR5OiB2YXIoLS10aWRlLWRpc2FibGVkKTtcbiAgfVxuXG4gIC50aWRlLWlucHV0LXJhZGlvLWN1c3RvbSB7XG4gICAgd2lkdGg6IHZhcigtLXRpZGUtZm9udC0yOCk7XG4gICAgaGVpZ2h0OiB2YXIoLS10aWRlLWZvbnQtMjgpO1xuICB9XG5cbiAgLnRpZGUtaW5wdXQtcmFkaW8tY2hlY2sge1xuICAgIHdpZHRoOiAxcmVtO1xuICAgIGhlaWdodDogMXJlbTtcbiAgfVxuPC9zdHlsZT5cbiIsImltcG9ydCB0eXBlIHsgUmVmIH0gZnJvbSAndnVlJztcblxuaW1wb3J0IHR5cGUgeyBSYW5nZURhdGEgfSBmcm9tICdAL3R5cGVzL0ZhY2V0UmFuZ2UnO1xuaW1wb3J0IHR5cGUgeyBTZWxlY3RPcHRpb24gfSBmcm9tICdAL3R5cGVzL1NlbGVjdCc7XG5pbXBvcnQgdHlwZSB7IFN0cmluZ0lucHV0IH0gZnJvbSAnQC90eXBlcy9Gb3JtJztcbmltcG9ydCB0eXBlIHsgVmFsaWRhdGlvbkVycm9yLCBWYWxpZGF0aW9uTGVuZ3RoLCBWYWxpZGF0aW9uUmVzdWx0LCBWYWxpZGF0b3IgfSBmcm9tICdAL3R5cGVzL1ZhbGlkYXRpb24nO1xuXG5pbXBvcnQgeyBwcmljZVRvTnVtYmVyIH0gZnJvbSAnQC91dGlsaXRpZXMvZm9ybWF0JztcblxuZXhwb3J0IGNvbnN0IGVycm9yTWVzc2FnZURlZmF1bHQgPSAnUGxlYXNlIGVudGVyIGEgdmFsaWQgdmFsdWUuJztcblxuZXhwb3J0IGNvbnN0IG5vRXJyb3IgPSB7XG4gIG1lc3NhZ2U6ICcnLFxuICB2YWxpZDogdHJ1ZSxcbn0gYXMgUmVhZG9ubHk8VmFsaWRhdGlvblJlc3VsdD47XG5cbmV4cG9ydCBjb25zdCBjaGVja0Zvcm1hdCA9IChmb3JtYXQ6IFJlZ0V4cCkgPT4ge1xuICByZXR1cm4gKHZhbHVlOiBzdHJpbmcpOiBWYWxpZGF0aW9uUmVzdWx0ID0+IHtcbiAgICBsZXQgcmVzdWx0ID0gbm9FcnJvcjtcblxuICAgIGlmICghdmFsdWUudHJpbSgpLm1hdGNoKGZvcm1hdCkpIHtcbiAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgbWVzc2FnZTogZXJyb3JNZXNzYWdlRGVmYXVsdCxcbiAgICAgICAgdmFsaWQ6IGZhbHNlLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEVycm9yTWVzc2FnZSA9IChlcnJvckZyb21Qcm9wczogVmFsaWRhdGlvbkVycm9yLCBlcnJvckZyb21SZWY6IFZhbGlkYXRpb25FcnJvcikgPT4ge1xuICAvLyBlcnJvciBpbiBwcm9wcyB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgdmFsaWRhdGlvbiBlcnJvclxuICBpZiAodHlwZW9mIGVycm9yRnJvbVByb3BzID09PSAnc3RyaW5nJyAmJiBlcnJvckZyb21Qcm9wcy5sZW5ndGggPiAwKSByZXR1cm4gZXJyb3JGcm9tUHJvcHM7XG5cbiAgcmV0dXJuIHR5cGVvZiBlcnJvckZyb21SZWYgPT09ICdzdHJpbmcnICYmIGVycm9yRnJvbVJlZi5sZW5ndGggPiAwID8gZXJyb3JGcm9tUmVmIDogZXJyb3JNZXNzYWdlRGVmYXVsdDtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRGaWVsZEhhc0Vycm9yID0gKGVycm9yRnJvbVByb3BzOiBWYWxpZGF0aW9uRXJyb3IsIGVycm9yRnJvbVJlZjogVmFsaWRhdGlvbkVycm9yKSA9PlxuICBlcnJvckZyb21Qcm9wcyAhPT0gZmFsc2UgfHwgZXJyb3JGcm9tUmVmICE9PSBmYWxzZTtcblxuZXhwb3J0IGNvbnN0IGdldEZpZWxkTGVuZ3RoSXNWYWxpZCA9ICh7IG1heGxlbmd0aCwgbWlubGVuZ3RoLCByZXF1aXJlZCwgdmFsdWUgfTogVmFsaWRhdGlvbkxlbmd0aCkgPT4ge1xuICBjb25zdCBpc0VtcHR5QW5kVW5yZXF1aXJlZCA9IHZhbHVlLmxlbmd0aCA9PT0gMCAmJiAhcmVxdWlyZWQ7XG4gIGNvbnN0IGlzVG9vTG9uZyA9IG1heGxlbmd0aCAmJiB2YWx1ZS5sZW5ndGggPiBtYXhsZW5ndGg7XG4gIGNvbnN0IGlzVG9vU2hvcnQgPSAhaXNFbXB0eUFuZFVucmVxdWlyZWQgJiYgbWlubGVuZ3RoICYmIHZhbHVlLmxlbmd0aCA8IG1pbmxlbmd0aDtcblxuICByZXR1cm4gIWlzVG9vU2hvcnQgJiYgIWlzVG9vTG9uZztcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRNYXhSYW5nZUlzVmFsaWQgPSAoeyBtaW4gfTogUGljazxSYW5nZURhdGEsICdtaW4nPiwgdHlwZT86ICdwcmljZScpID0+IHtcbiAgcmV0dXJuICh2YWx1ZTogc3RyaW5nKTogVmFsaWRhdGlvblJlc3VsdCA9PiB7XG4gICAgbGV0IG5ld01heDogbnVtYmVyIHwgbnVsbCA9IHR5cGUgPT09ICdwcmljZScgPyBwcmljZVRvTnVtYmVyKHZhbHVlKSA6IE51bWJlcih2YWx1ZSk7XG4gICAgbmV3TWF4ID0gIWlzTmFOKG5ld01heCkgPyBuZXdNYXggOiBudWxsO1xuICAgIGlmIChtaW4gJiYgbmV3TWF4KSB7XG4gICAgICBpZiAobmV3TWF4ID49IG1pbikge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIG1lc3NhZ2U6ICcnLFxuICAgICAgICAgIHZhbGlkOiB0cnVlLFxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBtZXNzYWdlOiBgTXVzdCBiZSBncmVhdGVyIHRoYW4gbWluYCxcbiAgICAgICAgICB2YWxpZDogZmFsc2UsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBub0Vycm9yO1xuICAgIH1cbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRNaW5SYW5nZUlzVmFsaWQgPSAoeyBtYXggfTogUGljazxSYW5nZURhdGEsICdtYXgnPiwgdHlwZT86ICdwcmljZScpID0+IHtcbiAgcmV0dXJuICh2YWx1ZTogc3RyaW5nKTogVmFsaWRhdGlvblJlc3VsdCA9PiB7XG4gICAgbGV0IG5ld01pbjogbnVtYmVyIHwgbnVsbCA9IHR5cGUgPT09ICdwcmljZScgPyBwcmljZVRvTnVtYmVyKHZhbHVlKSA6IE51bWJlcih2YWx1ZSk7XG4gICAgbmV3TWluID0gIWlzTmFOKG5ld01pbikgPyBuZXdNaW4gOiBudWxsO1xuICAgIGlmIChtYXggJiYgbmV3TWluKSB7XG4gICAgICBpZiAobmV3TWluIDw9IG1heCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIG1lc3NhZ2U6ICcnLFxuICAgICAgICAgIHZhbGlkOiB0cnVlLFxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBtZXNzYWdlOiBgTXVzdCBiZSBsZXNzIHRoYW4gbWF4YCxcbiAgICAgICAgICB2YWxpZDogZmFsc2UsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBub0Vycm9yO1xuICAgIH1cbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRTZWxlY3RPcHRpb25zRnJvbVN0cmluZ3MgPSAoc3RyaW5nczogc3RyaW5nW10pID0+XG4gIHN0cmluZ3MubWFwKFxuICAgIChvcHRpb24pID0+XG4gICAgICAoe1xuICAgICAgICBsYWJlbDogb3B0aW9uLFxuICAgICAgICB2YWx1ZTogb3B0aW9uLFxuICAgICAgfSBhcyBTZWxlY3RPcHRpb24pXG4gICk7XG5cbmV4cG9ydCBjb25zdCBoYW5kbGVGaWVsZFZhbGlkYXRpb24gPSAoe1xuICBlcnJvcixcbiAgZXJyb3JGcm9tUHJvcHMsXG4gIG1heGxlbmd0aCxcbiAgbWlubGVuZ3RoLFxuICByZXF1aXJlZCA9IGZhbHNlLFxuICB2YWxpZGF0b3JzLFxuICB2YWx1ZSxcbn06IHtcbiAgZXJyb3I6IFJlZjxWYWxpZGF0aW9uRXJyb3I+O1xuICBlcnJvckZyb21Qcm9wczogVmFsaWRhdGlvbkVycm9yO1xuICBtYXhsZW5ndGg/OiBudW1iZXI7XG4gIG1pbmxlbmd0aD86IG51bWJlcjtcbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xuICB2YWxpZGF0b3JzPzogVmFsaWRhdG9yW107XG4gIHZhbHVlOiBSZWY8c3RyaW5nPjtcbn0pID0+IHtcbiAgLy8gZXJyb3IgaW4gcHJvcHMgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIHZhbGlkYXRpb24gZXJyb3JcblxuICBlcnJvci52YWx1ZSA9IGVycm9yRnJvbVByb3BzID8gZXJyb3JGcm9tUHJvcHMgOiBmYWxzZTtcblxuICBpZiAoIWVycm9yLnZhbHVlICYmIHZhbGlkYXRvcnMpIHtcbiAgICBjb25zdCB2YWxpZGF0aW9uID0gdmFsaWRhdGVQcm9wZXJ0eSh2YWx1ZS52YWx1ZSwgdmFsaWRhdG9ycyk7XG5cbiAgICBpZiAoIXZhbGlkYXRpb24udmFsaWQpIHtcbiAgICAgIGVycm9yLnZhbHVlID0gdmFsaWRhdGlvbi5tZXNzYWdlO1xuICAgIH1cbiAgfVxuXG4gIGlmICghZXJyb3IudmFsdWUgJiYgKG1heGxlbmd0aCB8fCBtaW5sZW5ndGgpKSB7XG4gICAgY29uc3QgbGVuZ3RoVmFsaWRhdGlvbiA9IHZhbGlkYXRlTGVuZ3RoKHtcbiAgICAgIG1heGxlbmd0aCxcbiAgICAgIG1pbmxlbmd0aCxcbiAgICAgIHJlcXVpcmVkLFxuICAgICAgdmFsdWU6IHZhbHVlLnZhbHVlLFxuICAgIH0pO1xuXG4gICAgaWYgKCFsZW5ndGhWYWxpZGF0aW9uLnZhbGlkKSB7XG4gICAgICBlcnJvci52YWx1ZSA9IGxlbmd0aFZhbGlkYXRpb24ubWVzc2FnZTtcbiAgICB9XG4gIH1cbn07XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZUZpZWxkc0Zyb21SZWZzKGZpZWxkczogeyBba2V5OiBzdHJpbmddOiBSZWY8U3RyaW5nSW5wdXQgfCBudWxsPiB9KSB7XG4gIGxldCB2YWxpZCA9IHRydWU7XG5cbiAgZm9yIChjb25zdCBrZXkgaW4gZmllbGRzKSB7XG4gICAgaWYgKGZpZWxkc1trZXldLnZhbHVlPy5yZXF1aXJlZCkge1xuICAgICAgY29uc3QgdmFsdWUgPSBmaWVsZHNba2V5XS52YWx1ZT8udmFsdWU7XG4gICAgICB2YWxpZCA9IHZhbGlkICYmICEhdmFsdWUgJiYgdmFsdWUudHJpbSgpICE9PSAnJztcbiAgICB9XG5cbiAgICBjb25zdCBlcnJvciA9IGZpZWxkc1trZXldLnZhbHVlPy5lcnJvcjtcbiAgICB2YWxpZCA9IHZhbGlkICYmICFlcnJvcjtcbiAgfVxuXG4gIHJldHVybiB2YWxpZDtcbn1cblxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlTGVuZ3RoID0gKHtcbiAgbWF4bGVuZ3RoLFxuICBtaW5sZW5ndGgsXG4gIHJlcXVpcmVkID0gZmFsc2UsXG4gIHZhbHVlLFxufTogVmFsaWRhdGlvbkxlbmd0aCk6IFZhbGlkYXRpb25SZXN1bHQgPT4ge1xuICBjb25zdCByZXNwb25zZSA9IHtcbiAgICBtZXNzYWdlOiAnJyxcbiAgICB2YWxpZDogdHJ1ZSxcbiAgfTtcblxuICByZXNwb25zZS52YWxpZCA9IGdldEZpZWxkTGVuZ3RoSXNWYWxpZCh7XG4gICAgbWF4bGVuZ3RoLFxuICAgIG1pbmxlbmd0aCxcbiAgICByZXF1aXJlZCxcbiAgICB2YWx1ZSxcbiAgfSk7XG5cbiAgaWYgKHJlc3BvbnNlLnZhbGlkKSByZXR1cm4gcmVzcG9uc2U7XG5cbiAgcmVzcG9uc2UubWVzc2FnZSA9IGVycm9yTWVzc2FnZURlZmF1bHQ7XG5cbiAgaWYgKG1heGxlbmd0aCAmJiBtaW5sZW5ndGgpIHtcbiAgICByZXNwb25zZS5tZXNzYWdlID0gYFBsZWFzZSBlbnRlciBhIHZhbHVlIGJldHdlZW4gJHttaW5sZW5ndGh9IGFuZCAke21heGxlbmd0aH0gY2hhcmFjdGVycyBpbiBsZW5ndGguYDtcbiAgfSBlbHNlIGlmIChtYXhsZW5ndGgpIHtcbiAgICByZXNwb25zZS5tZXNzYWdlID0gYFBsZWFzZSBlbnRlciBhIHZhbHVlIG5vIG1vcmUgdGhhbiAke21heGxlbmd0aH0gY2hhcmFjdGVycyBpbiBsZW5ndGguYDtcbiAgfSBlbHNlIGlmIChtaW5sZW5ndGgpIHtcbiAgICByZXNwb25zZS5tZXNzYWdlID0gYFBsZWFzZSBlbnRlciBhIHZhbHVlIG5vIGxlc3MgdGhhbiAke21pbmxlbmd0aH0gY2hhcmFjdGVycyBpbiBsZW5ndGguYDtcbiAgfVxuXG4gIHJldHVybiByZXNwb25zZTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVByb3BlcnR5KHZhbHVlOiBzdHJpbmcsIHZhbGlkYXRvcnM6ICgodmFsdWU6IHN0cmluZykgPT4gVmFsaWRhdGlvblJlc3VsdClbXSk6IFZhbGlkYXRpb25SZXN1bHQge1xuICBmb3IgKGNvbnN0IHZhbGlkYXRvciBvZiB2YWxpZGF0b3JzKSB7XG4gICAgY29uc3QgdmFsaWRhdGlvbiA9IHZhbGlkYXRvcih2YWx1ZSk7XG4gICAgaWYgKCF2YWxpZGF0aW9uLnZhbGlkKSB7XG4gICAgICByZXR1cm4gdmFsaWRhdGlvbjtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIG1lc3NhZ2U6ICcnLFxuICAgIHZhbGlkOiB0cnVlLFxuICB9O1xufVxuIiwiPHNjcmlwdCBsYW5nPVwidHNcIiBzZXR1cD5cbiAgaW1wb3J0IHsgY29tcHV0ZWQsIHJlZiwgd2F0Y2ggfSBmcm9tICd2dWUnO1xuXG4gIGltcG9ydCB0eXBlIHsgU2VsZWN0RmllbGQgfSBmcm9tICdAL3R5cGVzL0ZpZWxkJztcbiAgaW1wb3J0IHR5cGUgeyBTZWxlY3RPcHRpb24sIFNlbGVjdE9wdGlvbkdyb3VwIH0gZnJvbSAnQC90eXBlcy9TZWxlY3QnO1xuXG4gIGltcG9ydCBUaWRlSWNvbiBmcm9tICdAL2NvbXBvbmVudHMvVGlkZUljb24udnVlJztcbiAgaW1wb3J0IHsgQ1NTIH0gZnJvbSAnQC90eXBlcy9TdHlsZXMnO1xuICBpbXBvcnQgeyBJQ09OIH0gZnJvbSAnQC90eXBlcy9JY29uJztcbiAgaW1wb3J0IHsgU0laRSB9IGZyb20gJ0AvdHlwZXMvU2l6ZSc7XG4gIGltcG9ydCB7IGdldEZpZWxkSGFzRXJyb3IsIGdldEVycm9yTWVzc2FnZSB9IGZyb20gJ0AvdXRpbGl0aWVzL3ZhbGlkYXRpb24nO1xuXG4gIGludGVyZmFjZSBQcm9wcyBleHRlbmRzIFNlbGVjdEZpZWxkIHtcbiAgICBpbnB1dElkPzogc3RyaW5nO1xuICAgIHN1cHBvcnRpbmdUZXh0Pzogc3RyaW5nO1xuICB9XG5cbiAgY29uc3QgcHJvcHMgPSB3aXRoRGVmYXVsdHMoZGVmaW5lUHJvcHM8UHJvcHM+KCksIHtcbiAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgZXJyb3I6IGZhbHNlLFxuICAgIGlucHV0SWQ6IHVuZGVmaW5lZCxcbiAgICBsYWJlbDogdW5kZWZpbmVkLFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBzdXBwb3J0aW5nVGV4dDogdW5kZWZpbmVkLFxuICAgIHZhbHVlOiB1bmRlZmluZWQsXG4gIH0pO1xuXG4gIGNvbnN0IGVycm9yID0gcmVmKHByb3BzLmVycm9yKTtcbiAgY29uc3QgaGFzRm9jdXMgPSByZWYoZmFsc2UpO1xuICBjb25zdCBpbnB1dCA9IHJlZjxIVE1MU2VsZWN0RWxlbWVudCB8IG51bGw+KG51bGwpO1xuICBjb25zdCByZXF1aXJlZCA9IHJlZihwcm9wcy5yZXF1aXJlZCk7XG4gIGNvbnN0IHZhbHVlID0gcmVmPHN0cmluZyB8IHVuZGVmaW5lZD4ocHJvcHMudmFsdWUpO1xuXG4gIGNvbnN0IGVycm9yTWVzc2FnZSA9IGNvbXB1dGVkKCgpID0+IGdldEVycm9yTWVzc2FnZShwcm9wcy5lcnJvciwgZXJyb3IudmFsdWUpKTtcbiAgY29uc3QgZm9ybWF0dGVkTGFiZWwgPSBjb21wdXRlZCgoKSA9PiAocHJvcHMucmVxdWlyZWQgPyBgJHtwcm9wcy5sYWJlbH0gKmAgOiBwcm9wcy5sYWJlbCkpO1xuICBjb25zdCBoYXNFcnJvciA9IGNvbXB1dGVkKCgpID0+IChwcm9wcy5yZXF1aXJlZCAmJiAhdmFsdWUudmFsdWUpIHx8IGdldEZpZWxkSGFzRXJyb3IoZXJyb3IudmFsdWUsIHByb3BzLmVycm9yKSk7XG4gIGNvbnN0IGhhc01pbmlsYWJlbCA9IGNvbXB1dGVkKCgpID0+IGhhc0ZvY3VzLnZhbHVlIHx8ICFpc0VtcHR5LnZhbHVlKTtcbiAgY29uc3QgaXNFbXB0eSA9IGNvbXB1dGVkKCgpID0+IHZhbHVlLnZhbHVlID09PSB1bmRlZmluZWQpO1xuXG4gIGNvbnN0IGV4cGFuZE9wdGlvbnMgPSAoKSA9PiB7XG4gICAgY29uc3QgZXZlbnQgPSBuZXcgTW91c2VFdmVudCgnbW91c2Vkb3duJyk7XG4gICAgaW5wdXQ/LnZhbHVlPy5kaXNwYXRjaEV2ZW50KGV2ZW50KTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVGb2N1cyA9ICgpID0+IHtcbiAgICBoYXNGb2N1cy52YWx1ZSA9IHRydWU7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlRm9jdXNPdXQgPSAoKSA9PiB7XG4gICAgaGFzRm9jdXMudmFsdWUgPSBmYWxzZTtcbiAgfTtcblxuICB3YXRjaChcbiAgICAoKSA9PiBwcm9wcy52YWx1ZSxcbiAgICAobmV3VmFsdWUsIG9sZFZhbHVlKSA9PiB7XG4gICAgICBpZiAobmV3VmFsdWUgIT09IG9sZFZhbHVlIHx8IG5ld1ZhbHVlICE9PSB2YWx1ZS52YWx1ZSkge1xuICAgICAgICB2YWx1ZS52YWx1ZSA9IG5ld1ZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgKTtcblxuICBkZWZpbmVFeHBvc2UoeyBlcnJvciwgdmFsdWUgfSk7XG48L3NjcmlwdD5cblxuPHRlbXBsYXRlPlxuICA8ZGl2XG4gICAgOmNsYXNzPVwiW1xuICAgICAgJ3RpZGUtaW5wdXQtc2VsZWN0JyxcbiAgICAgIENTUy5ESVNQTEFZLkZMRVgsXG4gICAgICBDU1MuRkxFWC5ESVJFQ1RJT04uQ09MVU1OLFxuICAgICAgQ1NTLkdBUC5RVUFSVEVSLFxuICAgICAgZGlzYWJsZWQgJiYgJ2Rpc2FibGVkJyxcbiAgICAgIGhhc0Vycm9yICYmICdlcnJvcicsXG4gICAgXVwiXG4gID5cbiAgICA8ZGl2XG4gICAgICA6Y2xhc3M9XCJbXG4gICAgICAgICd0aWRlLWlucHV0LWJvcmRlcicsXG4gICAgICAgIENTUy5QT1NJVElPTi5SRUxBVElWRSxcbiAgICAgICAgQ1NTLkRJU1BMQVkuRkxFWCxcbiAgICAgICAgQ1NTLkFYSVMyLkNFTlRFUixcbiAgICAgICAgQ1NTLkdBUC5IQUxGLFxuICAgICAgICBDU1MuQk9SREVSLlJBRElVUy5IQUxGLFxuICAgICAgICBwcm9wcy5kaXNhYmxlZCA/IENTUy5DVVJTT1IuTk9UX0FMTE9XRUQgOiAnJyxcbiAgICAgICAgQ1NTLk9WRVJGTE9XLlhZLkhJRERFTixcbiAgICAgIF1cIlxuICAgICAgQGNsaWNrPVwiZXhwYW5kT3B0aW9uc1wiXG4gICAgPlxuICAgICAgPGRpdiA6Y2xhc3M9XCJbQ1NTLkRJU1BMQVkuRkxFWCwgQ1NTLkZMRVguRElSRUNUSU9OLkNPTFVNTiwgQ1NTLldJRFRILkZVTExdXCI+XG4gICAgICAgIDxsYWJlbFxuICAgICAgICAgIDpjbGFzcz1cIltcbiAgICAgICAgICAgIGhhc01pbmlsYWJlbCA/IFsnbWluaWxhYmVsJywgQ1NTLkZPTlQuU0laRS5UV0VMVkVdIDogQ1NTLkZPTlQuU0laRS5TSVhURUVOLFxuICAgICAgICAgICAgQ1NTLlBPU0lUSU9OLkFCU09MVVRFLFxuICAgICAgICAgICAgQ1NTLlBPU0lUSU9OSU5HLkxFRlQsXG4gICAgICAgICAgICBDU1MuTUFSR0lOLlRPUC5IQUxGLFxuICAgICAgICAgICAgQ1NTLk1BUkdJTi5MRUZULk9ORSxcbiAgICAgICAgICAgICFoYXNFcnJvciAmJiBDU1MuRk9OVC5DT0xPUi5TVVJGQUNFLlZBUklBTlQsXG4gICAgICAgICAgICBDU1MuRk9OVC5XRUlHSFQuRklWRV9IVU5EUkVELFxuICAgICAgICAgIF1cIlxuICAgICAgICAgIDpmb3I9XCJwcm9wcy5pbnB1dElkXCJcbiAgICAgICAgICB2LWlmPVwibGFiZWxcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgZm9ybWF0dGVkTGFiZWwgfX1cbiAgICAgICAgPC9sYWJlbD5cblxuICAgICAgICA8c2VsZWN0XG4gICAgICAgICAgOmNsYXNzPVwiW0NTUy5QQURESU5HLkJPVFRPTS5IQUxGLCBDU1MuUEFERElORy5YLk9ORSwgQ1NTLldJRFRILkZVTEwsIGRpc2FibGVkICYmIENTUy5DVVJTT1IuTk9UX0FMTE9XRURdXCJcbiAgICAgICAgICA6ZGlzYWJsZWQ9XCJkaXNhYmxlZFwiXG4gICAgICAgICAgOm5hbWU9XCJuYW1lXCJcbiAgICAgICAgICByZWY9XCJpbnB1dFwiXG4gICAgICAgICAgOnJlcXVpcmVkPVwicmVxdWlyZWRcIlxuICAgICAgICAgIEBmb2N1cz1cImhhbmRsZUZvY3VzXCJcbiAgICAgICAgICBAZm9jdXNvdXQ9XCJoYW5kbGVGb2N1c091dFwiXG4gICAgICAgICAgOmlkPVwicHJvcHMuaW5wdXRJZFwiXG4gICAgICAgICAgdi1tb2RlbD1cInZhbHVlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDx0ZW1wbGF0ZSB2LWZvcj1cIm9wdGdyb3VwIGluIHByb3BzLm9wdGdyb3Vwc1wiPlxuICAgICAgICAgICAgPG9wdGdyb3VwXG4gICAgICAgICAgICAgIDpjbGFzcz1cIltDU1MuV0lEVEguRlVMTCwgQ1NTLkJHLlNVUkZBQ0UuREVGQVVMVF1cIlxuICAgICAgICAgICAgICA6a2V5PVwiKG9wdGdyb3VwIGFzIFNlbGVjdE9wdGlvbkdyb3VwKS5sYWJlbFwiXG4gICAgICAgICAgICAgIDpsYWJlbD1cIihvcHRncm91cCBhcyBTZWxlY3RPcHRpb25Hcm91cCkubGFiZWxcIlxuICAgICAgICAgICAgICB2LWlmPVwiKG9wdGdyb3VwIGFzIFNlbGVjdE9wdGlvbkdyb3VwKS5vcHRpb25zXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPG9wdGlvblxuICAgICAgICAgICAgICAgIDpjbGFzcz1cIltDU1MuV0lEVEguRlVMTCwgQ1NTLkJHLlNVUkZBQ0UuREVGQVVMVF1cIlxuICAgICAgICAgICAgICAgIDprZXk9XCJvcHRpb24udmFsdWVcIlxuICAgICAgICAgICAgICAgIDp2YWx1ZT1cIm9wdGlvbi52YWx1ZVwiXG4gICAgICAgICAgICAgICAgdi1mb3I9XCJvcHRpb24gaW4gKG9wdGdyb3VwIGFzIFNlbGVjdE9wdGlvbkdyb3VwKS5vcHRpb25zXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IG9wdGlvbi5sYWJlbCB9fVxuICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgIDwvb3B0Z3JvdXA+XG5cbiAgICAgICAgICAgIDxvcHRpb25cbiAgICAgICAgICAgICAgOmNsYXNzPVwiW0NTUy5XSURUSC5GVUxMLCBDU1MuQkcuU1VSRkFDRS5ERUZBVUxUXVwiXG4gICAgICAgICAgICAgIDprZXk9XCIob3B0Z3JvdXAgYXMgU2VsZWN0T3B0aW9uKS52YWx1ZVwiXG4gICAgICAgICAgICAgIDpzZWxlY3RlZD1cInZhbHVlID09PSAob3B0Z3JvdXAgYXMgU2VsZWN0T3B0aW9uKS52YWx1ZSA/IHRydWUgOiB1bmRlZmluZWRcIlxuICAgICAgICAgICAgICA6dmFsdWU9XCIob3B0Z3JvdXAgYXMgU2VsZWN0T3B0aW9uKS52YWx1ZVwiXG4gICAgICAgICAgICAgIHYtZWxzZVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyAob3B0Z3JvdXAgYXMgU2VsZWN0T3B0aW9uKS5sYWJlbCB9fVxuICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgPC90ZW1wbGF0ZT5cblxuICAgICAgICAgIDxvcHRpb25cbiAgICAgICAgICAgIDpjbGFzcz1cIltDU1MuV0lEVEguRlVMTCwgQ1NTLkJHLlNVUkZBQ0UuREVGQVVMVF1cIlxuICAgICAgICAgICAgOmtleT1cIm9wdGlvbi52YWx1ZVwiXG4gICAgICAgICAgICA6c2VsZWN0ZWQ9XCJ2YWx1ZSA9PT0gb3B0aW9uLnZhbHVlID8gdHJ1ZSA6IHVuZGVmaW5lZFwiXG4gICAgICAgICAgICA6dmFsdWU9XCJvcHRpb24udmFsdWVcIlxuICAgICAgICAgICAgdi1mb3I9XCJvcHRpb24gaW4gb3B0aW9uc1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgb3B0aW9uLmxhYmVsIH19XG4gICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgIDwvc2VsZWN0PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxUaWRlSWNvblxuICAgICAgICA6Y2xhc3M9XCJbQ1NTLlBPU0lUSU9OLkFCU09MVVRFLCBDU1MuUE9TSVRJT05JTkcuUklHSFQsIENTUy5NQVJHSU4uUklHSFQuT05FLCBDU1MuUE9JTlRFUl9FVkVOVFMuT0ZGXVwiXG4gICAgICAgIDppY29uPVwiSUNPTi5FWFBBTkRfTU9SRVwiXG4gICAgICAgIDpzaXplPVwiU0laRS5TTUFMTFwiXG4gICAgICAvPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdlxuICAgICAgOmNsYXNzPVwiW0NTUy5ESVNQTEFZLkZMRVgsIENTUy5BWElTMi5DRU5URVIsIENTUy5HQVAuUVVBUlRFUiwgQ1NTLk1BUkdJTi5MRUZULk9ORV1cIlxuICAgICAgdi1pZj1cInByb3BzLnN1cHBvcnRpbmdUZXh0IHx8IGhhc0Vycm9yXCJcbiAgICA+XG4gICAgICA8VGlkZUljb25cbiAgICAgICAgOmNsYXNzPVwiW11cIlxuICAgICAgICA6aWNvbj1cIklDT04uRVJST1JcIlxuICAgICAgICA6c2l6ZT1cIlNJWkUuU01BTExcIlxuICAgICAgICB2LWlmPVwiaGFzRXJyb3JcIlxuICAgICAgLz5cblxuICAgICAgPGRpdiA6Y2xhc3M9XCJbQ1NTLkZPTlQuU0laRS5UV0VMVkUsIENTUy5GT05ULldFSUdIVC5GSVZFX0hVTkRSRURdXCI+XG4gICAgICAgIHt7IGhhc0Vycm9yID8gZXJyb3JNZXNzYWdlIDogcHJvcHMuc3VwcG9ydGluZ1RleHQgfX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvdGVtcGxhdGU+XG5cbjxzdHlsZSBzY29wZWQ+XG4gIHNlbGVjdCB7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgfVxuXG4gIGxhYmVsIHtcbiAgICBoZWlnaHQ6IDEuMTg3NXJlbTtcbiAgICB0cmFuc2l0aW9uOiBmb250LXNpemUgdmFyKC0tdGlkZS1hbmltYXRlKSwgdHJhbnNmb3JtIHZhcigtLXRpZGUtYW5pbWF0ZSk7XG4gIH1cblxuICBsYWJlbDpub3QoLm1pbmlsYWJlbCkge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIGNhbGMoOSAvIDE2ICogMXJlbSkpO1xuICB9XG5cbiAgLnRpZGUtaW5wdXQtc2VsZWN0LmRpc2FibGVkIHtcbiAgICBvcGFjaXR5OiB2YXIoLS10aWRlLWRpc2FibGVkKTtcbiAgfVxuXG4gIC50aWRlLWlucHV0LXNlbGVjdC5lcnJvciAudGlkZS1pbnB1dC1ib3JkZXIge1xuICAgIG91dGxpbmUtY29sb3I6IHZhcigtLXRpZGUtZXJyb3ItYm9yZGVyKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10aWRlLWVycm9yLXN1cmZhY2UpO1xuICB9XG5cbiAgLnRpZGUtaW5wdXQtc2VsZWN0LmVycm9yOmZvY3VzLXdpdGhpbiAudGlkZS1pbnB1dC1ib3JkZXIge1xuICAgIG91dGxpbmUtY29sb3I6IHZhcigtLXRpZGUtZXJyb3ItYm9yZGVyKTtcbiAgfVxuXG4gIC50aWRlLWlucHV0LXNlbGVjdDpmb2N1cy13aXRoaW4gLnRpZGUtaW5wdXQtYm9yZGVyIHtcbiAgICAtLXRpZGUtaW5wdXQtb3V0bGluZS13aWR0aDogdmFyKC0tdGlkZS1ib3JkZXItd2lkdGgtMik7XG4gICAgb3V0bGluZS1jb2xvcjogdmFyKC0tdGlkZS1zdXJmYWNlLWJvcmRlci1oaWdoKTtcbiAgfVxuXG4gIC50aWRlLWlucHV0LWJvcmRlciB7XG4gICAgLS10aWRlLWlucHV0LW91dGxpbmUtd2lkdGg6IHZhcigtLXRpZGUtYm9yZGVyLXdpZHRoLTEpO1xuICAgIG91dGxpbmU6IHZhcigtLXRpZGUtaW5wdXQtb3V0bGluZS13aWR0aCkgc29saWQgdmFyKC0tdGlkZS1ib3JkZXIpO1xuICAgIG91dGxpbmUtb2Zmc2V0OiBjYWxjKHZhcigtLXRpZGUtaW5wdXQtb3V0bGluZS13aWR0aCkgKiAtMSk7XG4gIH1cblxuICAudGlkZS1pbnB1dC1zZWxlY3QuZXJyb3Ige1xuICAgIGNvbG9yOiB2YXIoLS10aWRlLWVycm9yLW9uLXN1cmZhY2UpO1xuICB9XG5cbiAgLnRpZGUtaW5wdXQtc2VsZWN0LmVycm9yIG9wdGlvbiB7XG4gICAgY29sb3I6IHZhcigtLXRpZGUtb24tc3VyZmFjZSk7XG4gIH1cblxuICBzZWxlY3Qge1xuICAgIHBhZGRpbmctdG9wOiAyN3B4O1xuICB9XG48L3N0eWxlPlxuIiwiZXhwb3J0IGNvbnN0IFRFWFRfSU5QVVRfVFlQRSA9IHtcbiAgREFURTogJ2RhdGUnLFxuICBEQVRFVElNRV9MT0NBTDogJ2RhdGV0aW1lLWxvY2FsJyxcbiAgRU1BSUw6ICdlbWFpbCcsXG4gIE1PTlRIOiAnbW9udGgnLFxuICBOVU1CRVI6ICdudW1iZXInLFxuICBQQVNTV09SRDogJ3Bhc3N3b3JkJyxcbiAgU0VBUkNIOiAnc2VhcmNoJyxcbiAgVEVMOiAndGVsJyxcbiAgVEVYVDogJ3RleHQnLFxuICBUSU1FOiAndGltZScsXG4gIFVSTDogJ3VybCcsXG4gIFdFRUs6ICd3ZWVrJyxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIFRleHRJbnB1dFR5cGUgPSAodHlwZW9mIFRFWFRfSU5QVVRfVFlQRSlba2V5b2YgdHlwZW9mIFRFWFRfSU5QVVRfVFlQRV07XG4iLCI8c2NyaXB0IGxhbmc9XCJ0c1wiIHNldHVwPlxuICBpbXBvcnQgeyBjb21wdXRlZCwgcmVmLCB3YXRjaCB9IGZyb20gJ3Z1ZSc7XG5cbiAgaW1wb3J0IHR5cGUgeyBGb3JtVmFsdWVUcmFuc2Zvcm1lciB9IGZyb20gJ0AvdHlwZXMvRm9ybSc7XG4gIGltcG9ydCB0eXBlIHsgSWNvbiB9IGZyb20gJ0AvdHlwZXMvSWNvbic7XG4gIGltcG9ydCB0eXBlIHsgVGV4dElucHV0VHlwZSB9IGZyb20gJ0AvdHlwZXMvVGV4dElucHV0JztcbiAgaW1wb3J0IHR5cGUgeyBWYWxpZGF0aW9uRXJyb3IsIFZhbGlkYXRvciB9IGZyb20gJ0AvdHlwZXMvVmFsaWRhdGlvbic7XG5cbiAgaW1wb3J0IFRpZGVJY29uIGZyb20gJ0AvY29tcG9uZW50cy9UaWRlSWNvbi52dWUnO1xuICBpbXBvcnQgeyBDU1MgfSBmcm9tICdAL3R5cGVzL1N0eWxlcyc7XG4gIGltcG9ydCB7IElDT04gfSBmcm9tICdAL3R5cGVzL0ljb24nO1xuICBpbXBvcnQgeyBTSVpFIH0gZnJvbSAnQC90eXBlcy9TaXplJztcbiAgaW1wb3J0IHsgVEVYVF9JTlBVVF9UWVBFIH0gZnJvbSAnQC90eXBlcy9UZXh0SW5wdXQnO1xuICBpbXBvcnQgeyBnZXRFcnJvck1lc3NhZ2UsIGdldEZpZWxkSGFzRXJyb3IsIGhhbmRsZUZpZWxkVmFsaWRhdGlvbiB9IGZyb20gJ0AvdXRpbGl0aWVzL3ZhbGlkYXRpb24nO1xuXG4gIHR5cGUgUHJvcHMgPSB7XG4gICAgYXV0b2NvbXBsZXRlPzogYm9vbGVhbjtcbiAgICBkYXRhVHJhY2s/OiBzdHJpbmc7XG4gICAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICAgIGVycm9yPzogVmFsaWRhdGlvbkVycm9yO1xuICAgIGhhc0NsZWFyPzogYm9vbGVhbjtcbiAgICBpY29uTGVhZGluZz86IEljb247XG4gICAgaW5wdXRJZD86IHN0cmluZztcbiAgICBsYWJlbDogc3RyaW5nO1xuICAgIG1heGxlbmd0aD86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICBtaW5sZW5ndGg/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHByZWZpeD86IHN0cmluZztcbiAgICByZXF1aXJlZD86IGJvb2xlYW47XG4gICAgc3VmZml4Pzogc3RyaW5nO1xuICAgIHN1cHBvcnRpbmdUZXh0Pzogc3RyaW5nO1xuICAgIHRyYW5zZm9ybVZhbHVlPzogRm9ybVZhbHVlVHJhbnNmb3JtZXI7XG4gICAgdHlwZT86IFRleHRJbnB1dFR5cGU7XG4gICAgdmFsaWRhdG9ycz86IFZhbGlkYXRvcltdO1xuICAgIHZhbHVlPzogc3RyaW5nO1xuICB9O1xuXG4gIGNvbnN0IHByb3BzID0gd2l0aERlZmF1bHRzKGRlZmluZVByb3BzPFByb3BzPigpLCB7XG4gICAgYXV0b2NvbXBsZXRlOiBmYWxzZSxcbiAgICBkYXRhVHJhY2s6ICcnLFxuICAgIGRpc2FibGVkOiBmYWxzZSxcbiAgICBlcnJvcjogZmFsc2UsXG4gICAgaGFzQ2xlYXI6IGZhbHNlLFxuICAgIGljb25MZWFkaW5nOiB1bmRlZmluZWQsXG4gICAgaW5wdXRJZDogdW5kZWZpbmVkLFxuICAgIGxhYmVsOiB1bmRlZmluZWQsXG4gICAgbWF4bGVuZ3RoOiB1bmRlZmluZWQsXG4gICAgbWlubGVuZ3RoOiB1bmRlZmluZWQsXG4gICAgcHJlZml4OiB1bmRlZmluZWQsXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIHN1ZmZpeDogdW5kZWZpbmVkLFxuICAgIHN1cHBvcnRpbmdUZXh0OiB1bmRlZmluZWQsXG4gICAgdHJhbnNmb3JtVmFsdWU6IHVuZGVmaW5lZCxcbiAgICB0eXBlOiBURVhUX0lOUFVUX1RZUEUuVEVYVCxcbiAgICB2YWxpZGF0b3JzOiB1bmRlZmluZWQsXG4gICAgdmFsdWU6ICcnLFxuICB9KTtcblxuICBjb25zdCBlcnJvciA9IHJlZihwcm9wcy5lcnJvcik7XG4gIGNvbnN0IGhhc0ZvY3VzID0gcmVmKGZhbHNlKTtcbiAgY29uc3QgaW5wdXQgPSByZWY8SFRNTElucHV0RWxlbWVudCB8IG51bGw+KG51bGwpO1xuICBjb25zdCBzaG93UGFzc3dvcmQgPSByZWYoZmFsc2UpO1xuICBjb25zdCB2YWx1ZSA9IHJlZihwcm9wcy52YWx1ZSk7XG5cbiAgY29uc3QgZXJyb3JNZXNzYWdlID0gY29tcHV0ZWQoKCkgPT4gZ2V0RXJyb3JNZXNzYWdlKHByb3BzLmVycm9yLCBlcnJvci52YWx1ZSkpO1xuICBjb25zdCBmb3JtYXR0ZWRMYWJlbCA9IGNvbXB1dGVkKCgpID0+IChwcm9wcy5yZXF1aXJlZCAmJiBwcm9wcy5sYWJlbCA/IGAke3Byb3BzLmxhYmVsfSAqYCA6IHByb3BzLmxhYmVsKSk7XG4gIGNvbnN0IGhhc0NsZWFyID0gY29tcHV0ZWQoKCkgPT4gcHJvcHMuaGFzQ2xlYXIgJiYgdmFsdWUudmFsdWUpO1xuICBjb25zdCBoYXNFcnJvciA9IGNvbXB1dGVkKCgpID0+IChwcm9wcy5yZXF1aXJlZCAmJiAhdmFsdWUudmFsdWUpIHx8IGdldEZpZWxkSGFzRXJyb3IoZXJyb3IudmFsdWUsIHByb3BzLmVycm9yKSk7XG4gIGNvbnN0IGhhc01pbmlsYWJlbCA9IGNvbXB1dGVkKCgpID0+IGhhc0ZvY3VzLnZhbHVlIHx8ICFpc0VtcHR5LnZhbHVlKTtcbiAgY29uc3QgaXNFbXB0eSA9IGNvbXB1dGVkKCgpID0+IHZhbHVlLnZhbHVlID09PSAnJyk7XG4gIGNvbnN0IHR5cGUgPSBjb21wdXRlZCgoKSA9PlxuICAgIHByb3BzLnR5cGUgPT09IFRFWFRfSU5QVVRfVFlQRS5QQVNTV09SRCAmJiBzaG93UGFzc3dvcmQudmFsdWUgPT09IHRydWUgPyBURVhUX0lOUFVUX1RZUEUuVEVYVCA6IHByb3BzLnR5cGVcbiAgKTtcblxuICBjb25zdCBoYW5kbGVDbGVhciA9ICgpID0+IHtcbiAgICB2YWx1ZS52YWx1ZSA9ICcnO1xuICAgIGlucHV0LnZhbHVlPy5mb2N1cygpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUZvY3VzID0gKCkgPT4ge1xuICAgIGhhc0ZvY3VzLnZhbHVlID0gdHJ1ZTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVGb2N1c091dCA9ICgpID0+IHtcbiAgICBoYXNGb2N1cy52YWx1ZSA9IGZhbHNlO1xuICAgIGhhbmRsZVZhbGlkYXRpb24oKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVJbnB1dCA9ICgpID0+IHtcbiAgICBpZiAocHJvcHMudHJhbnNmb3JtVmFsdWUpIHtcbiAgICAgIGNvbnN0IGRpZ2l0cyA9IHZhbHVlLnZhbHVlLm1hdGNoKC9cXGQvZyk/LmpvaW4oJycpIHx8IHVuZGVmaW5lZDtcblxuICAgICAgdmFsdWUudmFsdWUgPSBkaWdpdHMgPyBwcm9wcy50cmFuc2Zvcm1WYWx1ZShkaWdpdHMpIDogJyc7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVZhbGlkYXRpb24gPSAoKSA9PiB7XG4gICAgaGFuZGxlRmllbGRWYWxpZGF0aW9uKHtcbiAgICAgIGVycm9yLFxuICAgICAgZXJyb3JGcm9tUHJvcHM6IHByb3BzLmVycm9yLFxuICAgICAgbWF4bGVuZ3RoOiBwcm9wcy5tYXhsZW5ndGgsXG4gICAgICBtaW5sZW5ndGg6IHByb3BzLm1pbmxlbmd0aCxcbiAgICAgIHJlcXVpcmVkOiBwcm9wcy5yZXF1aXJlZCxcbiAgICAgIHZhbGlkYXRvcnM6IHByb3BzLnZhbGlkYXRvcnMsXG4gICAgICB2YWx1ZSxcbiAgICB9KTtcbiAgfTtcblxuICBjb25zdCB1cGRhdGVWYWx1ZSA9IChuZXdWYWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgdmFsdWUudmFsdWUgPSBuZXdWYWx1ZTtcbiAgfTtcblxuICB3YXRjaChcbiAgICAoKSA9PiBwcm9wcy52YWx1ZSxcbiAgICAobmV3VmFsdWUsIG9sZFZhbHVlKSA9PiB7XG4gICAgICBpZiAobmV3VmFsdWUgIT09IG9sZFZhbHVlIHx8IG5ld1ZhbHVlICE9PSB2YWx1ZS52YWx1ZSkge1xuICAgICAgICB2YWx1ZS52YWx1ZSA9IG5ld1ZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgKTtcblxuICBkZWZpbmVFeHBvc2UoeyBlcnJvciwgdXBkYXRlVmFsdWUsIHZhbHVlIH0pO1xuPC9zY3JpcHQ+XG5cbjx0ZW1wbGF0ZT5cbiAgPGRpdlxuICAgIDpjbGFzcz1cIltcbiAgICAgICd0aWRlLWlucHV0LXRleHQnLFxuICAgICAgQ1NTLkRJU1BMQVkuRkxFWCxcbiAgICAgIENTUy5GTEVYLkRJUkVDVElPTi5DT0xVTU4sXG4gICAgICBDU1MuR0FQLlFVQVJURVIsXG4gICAgICBkaXNhYmxlZCAmJiAnZGlzYWJsZWQnLFxuICAgICAgaGFzRXJyb3IgJiYgJ2Vycm9yJyxcbiAgICBdXCJcbiAgPlxuICAgIDxkaXZcbiAgICAgIDpjbGFzcz1cIltcbiAgICAgICAgJ3RpZGUtaW5wdXQtYm9yZGVyJyxcbiAgICAgICAgQ1NTLkRJU1BMQVkuRkxFWCxcbiAgICAgICAgQ1NTLkFYSVMyLkNFTlRFUixcbiAgICAgICAgQ1NTLkdBUC5IQUxGLFxuICAgICAgICBDU1MuUE9TSVRJT04uUkVMQVRJVkUsXG4gICAgICAgIENTUy5CT1JERVIuUkFESVVTLkhBTEYsXG4gICAgICAgIGhhc0NsZWFyID8gW0NTUy5QQURESU5HLlJJR0hULkhBTEYsIENTUy5QQURESU5HLkxFRlQuT05FXSA6IFtDU1MuUEFERElORy5YLk9ORV0sXG4gICAgICAgIENTUy5QQURESU5HLlkuSEFMRixcbiAgICAgICAgcHJvcHMuZGlzYWJsZWQgPyBDU1MuQ1VSU09SLk5PVF9BTExPV0VEIDogQ1NTLkNVUlNPUi5URVhULFxuICAgICAgXVwiXG4gICAgPlxuICAgICAgPFRpZGVJY29uXG4gICAgICAgIDppY29uPVwicHJvcHMuaWNvbkxlYWRpbmdcIlxuICAgICAgICA6c2l6ZT1cIlNJWkUuU01BTExcIlxuICAgICAgICB2LWlmPVwicHJvcHMuaWNvbkxlYWRpbmdcIlxuICAgICAgLz5cblxuICAgICAgPGRpdiA6Y2xhc3M9XCJbQ1NTLkRJU1BMQVkuRkxFWCwgQ1NTLkFYSVMyLkNFTlRFUiwgQ1NTLkdBUC5RVUFSVEVSLCBDU1MuV0lEVEguRlVMTF1cIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIDpjbGFzcz1cIlsndGlkZS1pbnB1dC10ZXh0LXByZWZpeCcsICFoYXNFcnJvciAmJiBDU1MuRk9OVC5DT0xPUi5TVVJGQUNFLlZBUklBTlQsIGhhc01pbmlsYWJlbCA/ICcnIDogJ29mZnNldCddXCJcbiAgICAgICAgICB2LWlmPVwicHJvcHMucHJlZml4XCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IHByb3BzLnByZWZpeCB9fVxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2XG4gICAgICAgICAgOmNsYXNzPVwiW0NTUy5ESVNQTEFZLkZMRVgsIENTUy5GTEVYLkRJUkVDVElPTi5DT0xVTU4sIENTUy5XSURUSC5GVUxMXVwiXG4gICAgICAgICAgQGNsaWNrLnByZXZlbnQ9XCJpbnB1dD8uZm9jdXMoKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgIDpjbGFzcz1cIltcbiAgICAgICAgICAgICAgaGFzTWluaWxhYmVsID8gWydtaW5pbGFiZWwnLCBDU1MuRk9OVC5TSVpFLlRXRUxWRV0gOiBDU1MuRk9OVC5TSVpFLlNJWFRFRU4sXG4gICAgICAgICAgICAgICFoYXNFcnJvciAmJiBDU1MuRk9OVC5DT0xPUi5TVVJGQUNFLlZBUklBTlQsXG4gICAgICAgICAgICAgIENTUy5GT05ULldFSUdIVC5GSVZFX0hVTkRSRUQsXG4gICAgICAgICAgICAgIENTUy5DVVJTT1IuVEVYVCxcbiAgICAgICAgICAgIF1cIlxuICAgICAgICAgICAgOmZvcj1cInByb3BzLmlucHV0SWRcIlxuICAgICAgICAgICAgdi1pZj1cImxhYmVsXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBmb3JtYXR0ZWRMYWJlbCB9fVxuICAgICAgICAgIDwvbGFiZWw+XG5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIDphdXRvY29tcGxldGU9XCJhdXRvY29tcGxldGUgPyAnb24nIDogJ29mZidcIlxuICAgICAgICAgICAgOmNsYXNzPVwiW0NTUy5XSURUSC5GVUxMLCBkaXNhYmxlZCAmJiBDU1MuQ1VSU09SLk5PVF9BTExPV0VEXVwiXG4gICAgICAgICAgICA6ZGF0YS10cmFjaz1cInByb3BzLmRhdGFUcmFja1wiXG4gICAgICAgICAgICA6ZGlzYWJsZWQ9XCJwcm9wcy5kaXNhYmxlZFwiXG4gICAgICAgICAgICA6bWF4bGVuZ3RoPVwicHJvcHMubWF4bGVuZ3RoXCJcbiAgICAgICAgICAgIDptaW5sZW5ndGg9XCJwcm9wcy5taW5sZW5ndGhcIlxuICAgICAgICAgICAgOm5hbWU9XCJwcm9wcy5uYW1lXCJcbiAgICAgICAgICAgIHJlZj1cImlucHV0XCJcbiAgICAgICAgICAgIDpyZXF1aXJlZD1cInByb3BzLnJlcXVpcmVkXCJcbiAgICAgICAgICAgIDp0eXBlPVwidHlwZVwiXG4gICAgICAgICAgICBAY2hhbmdlPVwiaGFuZGxlVmFsaWRhdGlvblwiXG4gICAgICAgICAgICBAZm9jdXM9XCJoYW5kbGVGb2N1c1wiXG4gICAgICAgICAgICBAZm9jdXNvdXQ9XCJoYW5kbGVGb2N1c091dFwiXG4gICAgICAgICAgICBAaW5wdXQ9XCJoYW5kbGVJbnB1dFwiXG4gICAgICAgICAgICA6aWQ9XCJwcm9wcy5pbnB1dElkXCJcbiAgICAgICAgICAgIHYtbW9kZWw9XCJ2YWx1ZVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIDpjbGFzcz1cIlsndGlkZS1pbnB1dC10ZXh0LXN1ZmZpeCcsICFoYXNFcnJvciAmJiBDU1MuRk9OVC5DT0xPUi5TVVJGQUNFLlZBUklBTlQsIGhhc01pbmlsYWJlbCA/ICcnIDogJ29mZnNldCddXCJcbiAgICAgICAgICB2LWlmPVwicHJvcHMuc3VmZml4XCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IHByb3BzLnN1ZmZpeCB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8VGlkZUljb25cbiAgICAgICAgOmNsYXNzPVwiW0NTUy5QQURESU5HLlkuSEFMRiwgQ1NTLlBBRERJTkcuRlVMTC5IQUxGLCBDU1MuQ1VSU09SLlBPSU5URVJdXCJcbiAgICAgICAgOmljb249XCJJQ09OLkNMT1NFXCJcbiAgICAgICAgOnNpemU9XCJTSVpFLlNNQUxMXCJcbiAgICAgICAgQGNsaWNrPVwiaGFuZGxlQ2xlYXJcIlxuICAgICAgICB2LWlmPVwiaGFzQ2xlYXIgJiYgcHJvcHMudHlwZSAhPT0gVEVYVF9JTlBVVF9UWVBFLlBBU1NXT1JEXCJcbiAgICAgIC8+XG5cbiAgICAgIDxUaWRlSWNvblxuICAgICAgICA6Y2xhc3M9XCJbQ1NTLlBBRERJTkcuWS5IQUxGLCBDU1MuUEFERElORy5GVUxMLkhBTEYsIENTUy5DVVJTT1IuUE9JTlRFUl1cIlxuICAgICAgICA6aWNvbj1cIklDT04uVklTSUJJTElUWVwiXG4gICAgICAgIDpzaXplPVwiU0laRS5TTUFMTFwiXG4gICAgICAgIEBjbGljaz1cInNob3dQYXNzd29yZCA9ICFzaG93UGFzc3dvcmRcIlxuICAgICAgICB2LWlmPVwicHJvcHMudHlwZSA9PT0gVEVYVF9JTlBVVF9UWVBFLlBBU1NXT1JEXCJcbiAgICAgIC8+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2XG4gICAgICA6Y2xhc3M9XCJbQ1NTLkRJU1BMQVkuRkxFWCwgQ1NTLkFYSVMyLkNFTlRFUiwgQ1NTLkdBUC5RVUFSVEVSLCBDU1MuTUFSR0lOLkxFRlQuT05FXVwiXG4gICAgICB2LWlmPVwicHJvcHMuc3VwcG9ydGluZ1RleHQgfHwgaGFzRXJyb3JcIlxuICAgID5cbiAgICAgIDxUaWRlSWNvblxuICAgICAgICA6Y2xhc3M9XCJbXVwiXG4gICAgICAgIDppY29uPVwiSUNPTi5FUlJPUlwiXG4gICAgICAgIDpzaXplPVwiU0laRS5TTUFMTFwiXG4gICAgICAgIHYtaWY9XCJoYXNFcnJvclwiXG4gICAgICAvPlxuXG4gICAgICA8ZGl2IDpjbGFzcz1cIltDU1MuRk9OVC5TSVpFLlRXRUxWRSwgQ1NTLkZPTlQuV0VJR0hULkZJVkVfSFVORFJFRF1cIj5cbiAgICAgICAge3sgaGFzRXJyb3IgPyBlcnJvck1lc3NhZ2UgOiBwcm9wcy5zdXBwb3J0aW5nVGV4dCB9fVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC90ZW1wbGF0ZT5cblxuPHN0eWxlIHNjb3BlZD5cbiAgbGFiZWwge1xuICAgIGhlaWdodDogMS4xODc1cmVtO1xuICAgIHRyYW5zaXRpb246IGZvbnQtc2l6ZSB2YXIoLS10aWRlLWFuaW1hdGUpLCB0cmFuc2Zvcm0gdmFyKC0tdGlkZS1hbmltYXRlKTtcbiAgfVxuXG4gIGxhYmVsOm5vdCgubWluaWxhYmVsKSxcbiAgLnRpZGUtaW5wdXQtdGV4dC1wcmVmaXg6bm90KC5vZmZzZXQpLFxuICAudGlkZS1pbnB1dC10ZXh0LXN1ZmZpeDpub3QoLm9mZnNldCkge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIGNhbGMoOSAvIDE2ICogMXJlbSkpO1xuICB9XG5cbiAgLnRpZGUtaW5wdXQtdGV4dC1wcmVmaXgsXG4gIC50aWRlLWlucHV0LXRleHQtc3VmZml4IHtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gdmFyKC0tdGlkZS1hbmltYXRlKTtcbiAgfVxuXG4gIC50aWRlLWlucHV0LXRleHQuZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IHZhcigtLXRpZGUtZGlzYWJsZWQpO1xuICB9XG5cbiAgLnRpZGUtaW5wdXQtdGV4dC5lcnJvciB7XG4gICAgY29sb3I6IHZhcigtLXRpZGUtZXJyb3Itb24tc3VyZmFjZSk7XG4gIH1cblxuICAudGlkZS1pbnB1dC10ZXh0LmVycm9yIC50aWRlLWlucHV0LWJvcmRlciB7XG4gICAgb3V0bGluZS1jb2xvcjogdmFyKC0tdGlkZS1lcnJvci1ib3JkZXIpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRpZGUtZXJyb3Itc3VyZmFjZSk7XG4gIH1cblxuICAudGlkZS1pbnB1dC10ZXh0LmVycm9yOmZvY3VzLXdpdGhpbiAudGlkZS1pbnB1dC1ib3JkZXIge1xuICAgIG91dGxpbmUtY29sb3I6IHZhcigtLXRpZGUtZXJyb3ItYm9yZGVyKTtcbiAgfVxuXG4gIC50aWRlLWlucHV0LXRleHQ6Zm9jdXMtd2l0aGluIC50aWRlLWlucHV0LWJvcmRlciB7XG4gICAgLS10aWRlLWlucHV0LW91dGxpbmUtd2lkdGg6IHZhcigtLXRpZGUtYm9yZGVyLXdpZHRoLTIpO1xuICAgIG91dGxpbmUtY29sb3I6IHZhcigtLXRpZGUtc3VyZmFjZS1ib3JkZXItaGlnaCk7XG4gIH1cblxuICAudGlkZS1pbnB1dC10ZXh0IGlucHV0IHtcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG5cbiAgLnRpZGUtaW5wdXQtYm9yZGVyIHtcbiAgICAtLXRpZGUtaW5wdXQtb3V0bGluZS13aWR0aDogdmFyKC0tdGlkZS1ib3JkZXItd2lkdGgtMSk7XG4gICAgb3V0bGluZTogdmFyKC0tdGlkZS1pbnB1dC1vdXRsaW5lLXdpZHRoKSBzb2xpZCB2YXIoLS10aWRlLWJvcmRlcik7XG4gICAgb3V0bGluZS1vZmZzZXQ6IGNhbGModmFyKC0tdGlkZS1pbnB1dC1vdXRsaW5lLXdpZHRoKSAqIC0xKTtcbiAgICBjb2xvcjogdmFyKC0tdGlkZS1zdXJmYWNlLWZvcmVncm91bmQpO1xuICB9XG48L3N0eWxlPlxuIiwiPHNjcmlwdCBsYW5nPVwidHNcIiBzZXR1cD5cbiAgaW1wb3J0IHsgY29tcHV0ZWQsIHJlZiwgd2F0Y2ggfSBmcm9tICd2dWUnO1xuXG4gIGltcG9ydCB0eXBlIHsgVmFsaWRhdGlvbkVycm9yIH0gZnJvbSAnQC90eXBlcy9WYWxpZGF0aW9uJztcblxuICBpbXBvcnQgVGlkZUljb24gZnJvbSAnQC9jb21wb25lbnRzL1RpZGVJY29uLnZ1ZSc7XG4gIGltcG9ydCB7IENTUyB9IGZyb20gJ0AvdHlwZXMvU3R5bGVzJztcbiAgaW1wb3J0IHsgSUNPTiB9IGZyb20gJ0AvdHlwZXMvSWNvbic7XG4gIGltcG9ydCB7IFNJWkUgfSBmcm9tICdAL3R5cGVzL1NpemUnO1xuICBpbXBvcnQgeyBnZXRFcnJvck1lc3NhZ2UsIGdldEZpZWxkSGFzRXJyb3IsIGhhbmRsZUZpZWxkVmFsaWRhdGlvbiB9IGZyb20gJ0AvdXRpbGl0aWVzL3ZhbGlkYXRpb24nO1xuXG4gIHR5cGUgUHJvcHMgPSB7XG4gICAgZGF0YVRyYWNrPzogc3RyaW5nO1xuICAgIGVycm9yPzogVmFsaWRhdGlvbkVycm9yO1xuICAgIGlucHV0SWQ/OiBzdHJpbmc7XG4gICAgbGFiZWw/OiBzdHJpbmc7XG4gICAgbWF4bGVuZ3RoPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIG1pbmxlbmd0aD86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICBuYW1lPzogc3RyaW5nO1xuICAgIHJlcXVpcmVkPzogYm9vbGVhbjtcbiAgICByb3dzPzogbnVtYmVyO1xuICAgIHN1cHBvcnRpbmdUZXh0Pzogc3RyaW5nO1xuICAgIHZhbHVlPzogc3RyaW5nO1xuICB9O1xuXG4gIGNvbnN0IHByb3BzID0gd2l0aERlZmF1bHRzKGRlZmluZVByb3BzPFByb3BzPigpLCB7XG4gICAgZGF0YVRyYWNrOiAnJyxcbiAgICBlcnJvcjogZmFsc2UsXG4gICAgaW5wdXRJZDogdW5kZWZpbmVkLFxuICAgIGxhYmVsOiB1bmRlZmluZWQsXG4gICAgbWF4bGVuZ3RoOiB1bmRlZmluZWQsXG4gICAgbWlubGVuZ3RoOiB1bmRlZmluZWQsXG4gICAgbmFtZTogdW5kZWZpbmVkLFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICByb3dzOiA4LFxuICAgIHN1cHBvcnRpbmdUZXh0OiB1bmRlZmluZWQsXG4gICAgdmFsdWU6ICcnLFxuICB9KTtcblxuICBjb25zdCBlcnJvciA9IHJlZihwcm9wcy5lcnJvcik7XG4gIGNvbnN0IGhhc0ZvY3VzID0gcmVmKGZhbHNlKTtcbiAgY29uc3QgaW5wdXQgPSByZWY8SFRNTElucHV0RWxlbWVudCB8IG51bGw+KG51bGwpO1xuICBjb25zdCB2YWx1ZSA9IHJlZihwcm9wcy52YWx1ZSk7XG5cbiAgY29uc3QgZXJyb3JNZXNzYWdlID0gY29tcHV0ZWQoKCkgPT4gZ2V0RXJyb3JNZXNzYWdlKHByb3BzLmVycm9yLCBlcnJvci52YWx1ZSkpO1xuICBjb25zdCBmb3JtYXR0ZWRMYWJlbCA9IGNvbXB1dGVkKCgpID0+IChwcm9wcy5yZXF1aXJlZCA/IGAke3Byb3BzLmxhYmVsfSAqYCA6IHByb3BzLmxhYmVsKSk7XG4gIGNvbnN0IGhhc0Vycm9yID0gY29tcHV0ZWQoKCkgPT4gKHByb3BzLnJlcXVpcmVkICYmICF2YWx1ZS52YWx1ZSkgfHwgZ2V0RmllbGRIYXNFcnJvcihlcnJvci52YWx1ZSwgcHJvcHMuZXJyb3IpKTtcbiAgY29uc3QgaGFzTWluaWxhYmVsID0gY29tcHV0ZWQoKCkgPT4gaGFzRm9jdXMudmFsdWUgfHwgIWlzRW1wdHkudmFsdWUpO1xuICBjb25zdCBpc0VtcHR5ID0gY29tcHV0ZWQoKCkgPT4gdmFsdWUudmFsdWUgPT09ICcnKTtcblxuICBjb25zdCBoYW5kbGVGb2N1cyA9ICgpID0+IHtcbiAgICBoYXNGb2N1cy52YWx1ZSA9IHRydWU7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlRm9jdXNPdXQgPSAoKSA9PiB7XG4gICAgaGFzRm9jdXMudmFsdWUgPSBmYWxzZTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVWYWxpZGF0aW9uID0gKCkgPT4ge1xuICAgIHJldHVybiBoYW5kbGVGaWVsZFZhbGlkYXRpb24oe1xuICAgICAgZXJyb3IsXG4gICAgICBlcnJvckZyb21Qcm9wczogcHJvcHMuZXJyb3IsXG4gICAgICBtYXhsZW5ndGg6IHByb3BzLm1heGxlbmd0aCxcbiAgICAgIG1pbmxlbmd0aDogcHJvcHMubWlubGVuZ3RoLFxuICAgICAgdmFsdWUsXG4gICAgfSk7XG4gIH07XG5cbiAgd2F0Y2goXG4gICAgKCkgPT4gcHJvcHMudmFsdWUsXG4gICAgKG5ld1ZhbHVlLCBvbGRWYWx1ZSkgPT4ge1xuICAgICAgaWYgKG5ld1ZhbHVlICE9PSBvbGRWYWx1ZSB8fCBuZXdWYWx1ZSAhPT0gdmFsdWUudmFsdWUpIHtcbiAgICAgICAgdmFsdWUudmFsdWUgPSBuZXdWYWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICk7XG5cbiAgZGVmaW5lRXhwb3NlKHsgZXJyb3IsIHZhbHVlIH0pO1xuPC9zY3JpcHQ+XG5cbjx0ZW1wbGF0ZT5cbiAgPGRpdlxuICAgIDpjbGFzcz1cIlsndGlkZS1pbnB1dC10ZXh0YXJlYScsIENTUy5ESVNQTEFZLkZMRVgsIENTUy5GTEVYLkRJUkVDVElPTi5DT0xVTU4sIENTUy5HQVAuUVVBUlRFUiwgaGFzRXJyb3IgJiYgJ2Vycm9yJ11cIlxuICA+XG4gICAgPGRpdlxuICAgICAgOmNsYXNzPVwiW1xuICAgICAgICAndGlkZS1pbnB1dC10ZXh0YXJlYS1maWVsZCcsXG4gICAgICAgIENTUy5HQVAuSEFMRixcbiAgICAgICAgQ1NTLlBPU0lUSU9OLlJFTEFUSVZFLFxuICAgICAgICBDU1MuQk9SREVSLlJBRElVUy5IQUxGLFxuICAgICAgICBDU1MuUEFERElORy5MRUZULk9ORSxcbiAgICAgICAgQ1NTLlBBRERJTkcuVE9QLkhBTEYsXG4gICAgICAgIENTUy5PVkVSRkxPVy5YWS5ISURERU4sXG4gICAgICBdXCJcbiAgICA+XG4gICAgICA8bGFiZWxcbiAgICAgICAgOmNsYXNzPVwiW1xuICAgICAgICAgIGhhc01pbmlsYWJlbCA/IFsnbWluaWxhYmVsJywgQ1NTLkZPTlQuU0laRS5UV0VMVkVdIDogQ1NTLkZPTlQuU0laRS5TSVhURUVOLFxuICAgICAgICAgICFoYXNFcnJvciAmJiBDU1MuRk9OVC5DT0xPUi5TVVJGQUNFLlZBUklBTlQsXG4gICAgICAgICAgQ1NTLkZPTlQuV0VJR0hULkZJVkVfSFVORFJFRCxcbiAgICAgICAgICBDU1MuQ1VSU09SLlRFWFQsXG4gICAgICAgIF1cIlxuICAgICAgICA6Zm9yPVwicHJvcHMuaW5wdXRJZFwiXG4gICAgICAgIHJlZj1cImxhYmVsXCJcbiAgICAgICAgdi1pZj1cImxhYmVsXCJcbiAgICAgID5cbiAgICAgICAge3sgZm9ybWF0dGVkTGFiZWwgfX1cbiAgICAgIDwvbGFiZWw+XG5cbiAgICAgIDx0ZXh0YXJlYVxuICAgICAgICA6Y2xhc3M9XCJbQ1NTLldJRFRILkZVTExdXCJcbiAgICAgICAgOmRhdGEtdHJhY2s9XCJwcm9wcy5kYXRhVHJhY2tcIlxuICAgICAgICA6bWF4bGVuZ3RoPVwicHJvcHMubWF4bGVuZ3RoXCJcbiAgICAgICAgOm1pbmxlbmd0aD1cInByb3BzLm1pbmxlbmd0aFwiXG4gICAgICAgIDpuYW1lPVwicHJvcHMubmFtZVwiXG4gICAgICAgIHJlZj1cImlucHV0XCJcbiAgICAgICAgOnJlcXVpcmVkPVwicHJvcHMucmVxdWlyZWRcIlxuICAgICAgICA6cm93cz1cInByb3BzLnJvd3NcIlxuICAgICAgICBAY2hhbmdlPVwiaGFuZGxlVmFsaWRhdGlvblwiXG4gICAgICAgIEBmb2N1cz1cImhhbmRsZUZvY3VzXCJcbiAgICAgICAgQGZvY3Vzb3V0PVwiaGFuZGxlRm9jdXNPdXRcIlxuICAgICAgICA6aWQ9XCJwcm9wcy5pbnB1dElkXCJcbiAgICAgICAgdi1tb2RlbD1cInZhbHVlXCJcbiAgICAgIC8+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2XG4gICAgICA6Y2xhc3M9XCJbQ1NTLkRJU1BMQVkuRkxFWCwgQ1NTLkFYSVMyLkNFTlRFUiwgQ1NTLkdBUC5RVUFSVEVSLCBDU1MuTUFSR0lOLkxFRlQuT05FXVwiXG4gICAgICB2LWlmPVwicHJvcHMuc3VwcG9ydGluZ1RleHQgfHwgaGFzRXJyb3JcIlxuICAgID5cbiAgICAgIDxUaWRlSWNvblxuICAgICAgICA6aWNvbj1cIklDT04uRVJST1JcIlxuICAgICAgICA6c2l6ZT1cIlNJWkUuU01BTExcIlxuICAgICAgICB2LWlmPVwiaGFzRXJyb3JcIlxuICAgICAgLz5cblxuICAgICAgPGRpdiA6Y2xhc3M9XCJbQ1NTLkZPTlQuU0laRS5UV0VMVkUsIENTUy5GT05ULldFSUdIVC5GSVZFX0hVTkRSRURdXCI+XG4gICAgICAgIHt7IGhhc0Vycm9yID8gZXJyb3JNZXNzYWdlIDogcHJvcHMuc3VwcG9ydGluZ1RleHQgfX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvdGVtcGxhdGU+XG5cbjxzdHlsZSBzY29wZWQ+XG4gIHRleHRhcmVhIHtcbiAgICByZXNpemU6IHZlcnRpY2FsO1xuICB9XG48L3N0eWxlPlxuXG48c3R5bGUgc2NvcGVkPlxuICBsYWJlbCB7XG4gICAgaGVpZ2h0OiAxLjE4NzVyZW07XG4gICAgdHJhbnNpdGlvbjogZm9udC1zaXplIHZhcigtLXRpZGUtYW5pbWF0ZSksIHRyYW5zZm9ybSB2YXIoLS10aWRlLWFuaW1hdGUpO1xuICB9XG5cbiAgbGFiZWw6bm90KC5taW5pbGFiZWwpLFxuICAudGlkZS1pbnB1dC10ZXh0YXJlYS1wcmVmaXg6bm90KC5vZmZzZXQpLFxuICAudGlkZS1pbnB1dC10ZXh0YXJlYS1zdWZmaXg6bm90KC5vZmZzZXQpIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCBjYWxjKDkgLyAxNiAqIDFyZW0pKTtcbiAgfVxuXG4gIC50aWRlLWlucHV0LXRleHRhcmVhLXByZWZpeCxcbiAgLnRpZGUtaW5wdXQtdGV4dGFyZWEtc3VmZml4IHtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gdmFyKC0tdGlkZS1hbmltYXRlKTtcbiAgfVxuXG4gIC50aWRlLWlucHV0LXRleHRhcmVhLmVycm9yIHtcbiAgICBjb2xvcjogdmFyKC0tdGlkZS1lcnJvci1vbi1zdXJmYWNlKTtcbiAgfVxuXG4gIC50aWRlLWlucHV0LXRleHRhcmVhLmVycm9yIC50aWRlLWlucHV0LXRleHRhcmVhLWZpZWxkIHtcbiAgICBvdXRsaW5lLWNvbG9yOiB2YXIoLS10aWRlLWVycm9yLWJvcmRlcik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGlkZS1lcnJvci1zdXJmYWNlKTtcbiAgfVxuXG4gIC50aWRlLWlucHV0LXRleHRhcmVhLmVycm9yOmZvY3VzLXdpdGhpbiAudGlkZS1pbnB1dC10ZXh0YXJlYS1maWVsZCB7XG4gICAgb3V0bGluZS1jb2xvcjogdmFyKC0tdGlkZS1lcnJvci1ib3JkZXIpO1xuICB9XG5cbiAgLnRpZGUtaW5wdXQtdGV4dGFyZWE6Zm9jdXMtd2l0aGluIC50aWRlLWlucHV0LXRleHRhcmVhLWZpZWxkIHtcbiAgICAtLXRpZGUtaW5wdXQtb3V0bGluZS13aWR0aDogdmFyKC0tdGlkZS1ib3JkZXItd2lkdGgtMik7XG4gICAgb3V0bGluZS1jb2xvcjogdmFyKC0tdGlkZS1zdXJmYWNlLWJvcmRlci1oaWdoKTtcbiAgfVxuXG4gIC50aWRlLWlucHV0LXRleHRhcmVhIHRleHRhcmVhIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG5cbiAgLnRpZGUtaW5wdXQtdGV4dGFyZWEtZmllbGQge1xuICAgIC0tdGlkZS1pbnB1dC1vdXRsaW5lLXdpZHRoOiB2YXIoLS10aWRlLWJvcmRlci13aWR0aC0xKTtcbiAgICBvdXRsaW5lOiB2YXIoLS10aWRlLWlucHV0LW91dGxpbmUtd2lkdGgpIHNvbGlkIHZhcigtLXRpZGUtYm9yZGVyKTtcbiAgICBvdXRsaW5lLW9mZnNldDogY2FsYyh2YXIoLS10aWRlLWlucHV0LW91dGxpbmUtd2lkdGgpICogLTEpO1xuICAgIGNvbG9yOiB2YXIoLS10aWRlLXN1cmZhY2UtZm9yZWdyb3VuZCk7XG4gIH1cbjwvc3R5bGU+XG4iLCI8c2NyaXB0IGxhbmc9XCJ0c1wiIHNldHVwPlxuICBpbXBvcnQgeyBjb21wdXRlZCB9IGZyb20gJ3Z1ZSc7XG5cbiAgaW1wb3J0IHR5cGUgeyBFbGVtZW50IH0gZnJvbSAnQC90eXBlcy9FbGVtZW50JztcbiAgaW1wb3J0IHR5cGUgeyBJY29uIH0gZnJvbSAnQC90eXBlcy9JY29uJztcblxuICBpbXBvcnQgVGlkZUljb24gZnJvbSAnQC9jb21wb25lbnRzL1RpZGVJY29uLnZ1ZSc7XG4gIGltcG9ydCB7IENTUyB9IGZyb20gJ0AvdHlwZXMvU3R5bGVzJztcbiAgaW1wb3J0IHsgRUxFTUVOVCB9IGZyb20gJ0AvdHlwZXMvRWxlbWVudCc7XG4gIGltcG9ydCB7IFRBUkdFVCB9IGZyb20gJ0AvdHlwZXMvVGFyZ2V0JztcblxuICB0eXBlIFByb3BzID0ge1xuICAgIGVsZW1lbnQ/OiBFbGVtZW50O1xuICAgIGhyZWY/OiBzdHJpbmc7XG4gICAgaWNvbkxlYWRpbmc/OiBJY29uO1xuICAgIGljb25UcmFpbGluZz86IEljb247XG4gICAgaXNOZXdUYWI/OiBib29sZWFuO1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gIH07XG5cbiAgY29uc3QgcHJvcHMgPSB3aXRoRGVmYXVsdHMoZGVmaW5lUHJvcHM8UHJvcHM+KCksIHtcbiAgICBlbGVtZW50OiBFTEVNRU5ULkxJTkssXG4gICAgaHJlZjogdW5kZWZpbmVkLFxuICAgIGljb25MZWFkaW5nOiB1bmRlZmluZWQsXG4gICAgaWNvblRyYWlsaW5nOiB1bmRlZmluZWQsXG4gICAgaXNOZXdUYWI6IGZhbHNlLFxuICAgIGxhYmVsOiB1bmRlZmluZWQsXG4gIH0pO1xuXG4gIGNvbnN0IGhhc0ljb24gPSBjb21wdXRlZCgoKSA9PiBwcm9wcy5pY29uTGVhZGluZyB8fCBwcm9wcy5pY29uVHJhaWxpbmcpO1xuPC9zY3JpcHQ+XG5cbjx0ZW1wbGF0ZT5cbiAgPGNvbXBvbmVudFxuICAgIDpjbGFzcz1cIltcbiAgICAgIHByb3BzLmVsZW1lbnQgPT09IEVMRU1FTlQuTElOSyA/ICd0aWRlLWJ1dHRvbi1hcy1saW5rJyA6ICd0aWRlLWxpbmsnLFxuICAgICAgaGFzSWNvblxuICAgICAgICA/IFtDU1MuRElTUExBWS5JTkxJTkVfRkxFWCwgQ1NTLkFYSVMyLkNFTlRFUiwgQ1NTLkdBUC5IQUxGXVxuICAgICAgICA6IFtDU1MuRk9OVC5XRUlHSFQuU0VWRU5fSFVORFJFRCwgQ1NTLlVOREVSTElORS5PTl0sXG4gICAgXVwiXG4gICAgOmhyZWY9XCJwcm9wcy5ocmVmXCJcbiAgICA6dGFyZ2V0PVwicHJvcHMuaXNOZXdUYWIgPyBUQVJHRVQuQkxBTksgOiBUQVJHRVQuU0VMRlwiXG4gICAgOmlzPVwicHJvcHMuZWxlbWVudCA9PT0gRUxFTUVOVC5MSU5LID8gRUxFTUVOVC5MSU5LIDogRUxFTUVOVC5CVVRUT05cIlxuICA+XG4gICAgPFRpZGVJY29uXG4gICAgICA6aWNvbj1cInByb3BzLmljb25MZWFkaW5nXCJcbiAgICAgIHYtaWY9XCJwcm9wcy5pY29uTGVhZGluZ1wiXG4gICAgLz5cblxuICAgIDxkaXZcbiAgICAgIDpjbGFzcz1cIltDU1MuRk9OVC5XRUlHSFQuU0VWRU5fSFVORFJFRCwgQ1NTLlVOREVSTElORS5PTl1cIlxuICAgICAgdi1pZj1cImhhc0ljb25cIlxuICAgID5cbiAgICAgIHt7IHByb3BzLmxhYmVsIH19XG4gICAgPC9kaXY+XG5cbiAgICA8dGVtcGxhdGUgdi1lbHNlPlxuICAgICAge3sgcHJvcHMubGFiZWwgfX1cbiAgICA8L3RlbXBsYXRlPlxuXG4gICAgPFRpZGVJY29uXG4gICAgICA6aWNvbj1cInByb3BzLmljb25UcmFpbGluZ1wiXG4gICAgICB2LWlmPVwicHJvcHMuaWNvblRyYWlsaW5nXCJcbiAgICAvPlxuICA8L2NvbXBvbmVudD5cbjwvdGVtcGxhdGU+XG4iLCI8c2NyaXB0IGxhbmc9XCJ0c1wiIHNldHVwPlxuICBpbXBvcnQgeyBvbk1vdW50ZWQsIHJlZiwgd2F0Y2ggfSBmcm9tICd2dWUnO1xuXG4gIGltcG9ydCBUaWRlSWNvbiBmcm9tICdAL2NvbXBvbmVudHMvVGlkZUljb24udnVlJztcbiAgaW1wb3J0IHsgQ1NTIH0gZnJvbSAnQC90eXBlcy9TdHlsZXMnO1xuICBpbXBvcnQgeyBJQ09OIH0gZnJvbSAnQC90eXBlcy9JY29uJztcblxuICB0eXBlIFByb3BzID0ge1xuICAgIGlzT3BlbjogYm9vbGVhbjtcbiAgICB0aXRsZT86IHN0cmluZztcbiAgICB3aWR0aD86IHN0cmluZztcbiAgfTtcblxuICBjb25zdCBwcm9wcyA9IGRlZmluZVByb3BzPFByb3BzPigpO1xuXG4gIGNvbnN0IGVtaXQgPSBkZWZpbmVFbWl0cyhbJ2Nsb3NlJ10pO1xuXG4gIGNvbnN0IGlzT3BlbiA9IHJlZihwcm9wcy5pc09wZW4pO1xuICBjb25zdCBzYXZlZFNjcm9sbFBvc2l0aW9uID0gcmVmPG51bWJlciB8IG51bGw+KG51bGwpOyAvLyBUT0RPOiByZXBsYWNlIGJvZHkgc2Nyb2xsIGxvY2sgd2l0aCBnbG9iYWwgc3RydWN0dXJlP1xuXG4gIGNvbnN0IGhhbmRsZUNsb3NlID0gKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgIGlzT3Blbi52YWx1ZSA9IGZhbHNlO1xuXG4gICAgdXBkYXRlTW9kYWxEaXNwbGF5KCk7XG4gICAgZW1pdCgnY2xvc2UnLCBldmVudCk7XG4gIH07XG5cbiAgY29uc3QgdXBkYXRlTW9kYWxEaXNwbGF5ID0gKCkgPT4ge1xuICAgIGlmIChpc09wZW4udmFsdWUpIHtcbiAgICAgIHNhdmVkU2Nyb2xsUG9zaXRpb24udmFsdWUgPSB3aW5kb3cuc2Nyb2xsWTtcbiAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3cgPSAnaGlkZGVuJztcbiAgICAgIHNhdmVkU2Nyb2xsUG9zaXRpb24udmFsdWUgJiYgd2luZG93LnNjcm9sbFRvKDAsIHNhdmVkU2Nyb2xsUG9zaXRpb24udmFsdWUpO1xuXG4gICAgICBhZGRPcGVuTGlzdGVuZXJzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3cgPSAnJztcblxuICAgICAgcmVtb3ZlT3Blbkxpc3RlbmVycygpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBoYW5kbGVLZXlEb3duID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgaGFuZGxlQ2xvc2UoZXZlbnQpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBhZGRPcGVuTGlzdGVuZXJzID0gKCkgPT4ge1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgaGFuZGxlS2V5RG93bik7XG4gIH07XG5cbiAgY29uc3QgcmVtb3ZlT3Blbkxpc3RlbmVycyA9ICgpID0+IHtcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIGhhbmRsZUtleURvd24pO1xuICB9O1xuXG4gIG9uTW91bnRlZCgoKSA9PiB7XG4gICAgdXBkYXRlTW9kYWxEaXNwbGF5KCk7XG4gIH0pO1xuXG4gIHdhdGNoKFxuICAgICgpID0+IHByb3BzLmlzT3BlbixcbiAgICAobmV3VmFsdWUpID0+IHtcbiAgICAgIGlzT3Blbi52YWx1ZSA9IG5ld1ZhbHVlO1xuICAgICAgdXBkYXRlTW9kYWxEaXNwbGF5KCk7XG4gICAgfVxuICApO1xuPC9zY3JpcHQ+XG5cbjx0ZW1wbGF0ZT5cbiAgPFRlbGVwb3J0IHRvPVwiYm9keVwiPlxuICAgIDxkaXZcbiAgICAgIDpjbGFzcz1cIltcbiAgICAgICAgJ3RpZGUtbW9kYWwtd3JhcHBlcicsXG4gICAgICAgIENTUy5QT1NJVElPTi5BQlNPTFVURSxcbiAgICAgICAgQ1NTLkRJU1BMQVkuRkxFWCxcbiAgICAgICAgQ1NTLkFYSVMxLkNFTlRFUixcbiAgICAgICAgQ1NTLkFYSVMyLkNFTlRFUixcbiAgICAgICAgQ1NTLlBPU0lUSU9OSU5HLlRPUCxcbiAgICAgICAgQ1NTLlBPU0lUSU9OSU5HLkxFRlQsXG4gICAgICAgIENTUy5XSURUSC5GVUxMLFxuICAgICAgICBDU1MuSEVJR0hULkZVTEwsXG4gICAgICAgIHByb3BzLmlzT3BlbiA/ICdhY3RpdmUnIDogQ1NTLlBPSU5URVJfRVZFTlRTLk9GRixcbiAgICAgICAgQ1NTLk9WRVJGTE9XLlkuSElEREVOLFxuICAgICAgXVwiXG4gICAgPlxuICAgICAgPGRpdlxuICAgICAgICA6Y2xhc3M9XCJbJ3RpZGUtbW9kYWwtYmcnLCBDU1MuUE9TSVRJT04uQUJTT0xVVEUsIENTUy5XSURUSC5GVUxMLCBDU1MuSEVJR0hULkZVTExdXCJcbiAgICAgICAgOnN0eWxlPVwieyAnLS10aWRlLW1vZGFsLXdpZHRoJzogcHJvcHMud2lkdGggfVwiXG4gICAgICAgIEBjbGljay5zZWxmPVwiaGFuZGxlQ2xvc2VcIlxuICAgICAgLz5cblxuICAgICAgPGRpdlxuICAgICAgICA6Y2xhc3M9XCJbXG4gICAgICAgICAgJ3RpZGUtbW9kYWwnLFxuICAgICAgICAgIENTUy5CRy5TVVJGQUNFLkRFRkFVTFQsXG4gICAgICAgICAgQ1NTLkZPTlQuQ09MT1IuU1VSRkFDRS5ERUZBVUxULFxuICAgICAgICAgIENTUy5QT1NJVElPTi5BQlNPTFVURSxcbiAgICAgICAgICBDU1MuRElTUExBWS5GTEVYLFxuICAgICAgICAgIENTUy5GTEVYLkRJUkVDVElPTi5DT0xVTU4sXG4gICAgICAgICAgQ1NTLkJPUkRFUi5SQURJVVMuT05FLFxuICAgICAgICAgIENTUy5PVkVSRkxPVy5YWS5ISURERU4sXG4gICAgICAgICAgQ1NTLlNIQURPVy5CT1RUT00sXG4gICAgICAgIF1cIlxuICAgICAgPlxuICAgICAgICA8aGVhZGVyXG4gICAgICAgICAgOmNsYXNzPVwiW1xuICAgICAgICAgICAgJ3RpZGUtbW9kYWwtaGVhZGVyJyxcbiAgICAgICAgICAgIENTUy5QT1NJVElPTi5SRUxBVElWRSxcbiAgICAgICAgICAgIENTUy5ESVNQTEFZLkZMRVgsXG4gICAgICAgICAgICBDU1MuQVhJUzIuQ0VOVEVSLFxuICAgICAgICAgICAgQ1NTLlBBRERJTkcuWS5PTkUsXG4gICAgICAgICAgICBDU1MuUEFERElORy5YLlRXTyxcbiAgICAgICAgICAgIENTUy5CT1JERVIuQk9UVE9NLk9ORSxcbiAgICAgICAgICAgIENTUy5CT1JERVIuQ09MT1IuTE9XLFxuICAgICAgICAgIF1cIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgOmNsYXNzPVwiW0NTUy5GTEVYLkdST1cuT04sIENTUy5GT05ULlNJWkUuVFdFTlRZLCBDU1MuRk9OVC5XRUlHSFQuU0VWRU5fSFVORFJFRF1cIlxuICAgICAgICAgICAgdi1pZj1cInRpdGxlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyB0aXRsZSB9fVxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgOmNsYXNzPVwiW0NTUy5QT1NJVElPTi5BQlNPTFVURSwgQ1NTLlBPU0lUSU9OSU5HLlJJR0hULCBDU1MuTUFSR0lOLlJJR0hULlRXT11cIlxuICAgICAgICAgICAgQGNsaWNrPVwiaGFuZGxlQ2xvc2VcIlxuICAgICAgICAgICAgdGl0bGU9XCJDbG9zZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFRpZGVJY29uIDppY29uPVwiSUNPTi5DTE9TRVwiIC8+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvaGVhZGVyPlxuXG4gICAgICAgIDxkaXYgOmNsYXNzPVwiWyd0aWRlLW1vZGFsLWNvbnRlbnQnLCBDU1MuUEFERElORy5GVUxMLlRXTywgQ1NTLk9WRVJGTE9XLlkuQVVUT11cIj5cbiAgICAgICAgICA8c2xvdCAvPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8dGVtcGxhdGUgdi1pZj1cIiRzbG90cy5mb290ZXJcIj5cbiAgICAgICAgICA8Zm9vdGVyXG4gICAgICAgICAgICA6Y2xhc3M9XCJbXG4gICAgICAgICAgICAgICd0aWRlLWJnLXN1cmZhY2UnLFxuICAgICAgICAgICAgICBDU1MuUE9TSVRJT04uU1RJQ0tZLFxuICAgICAgICAgICAgICBDU1MuUE9TSVRJT05JTkcuTEVGVCxcbiAgICAgICAgICAgICAgQ1NTLlBPU0lUSU9OSU5HLkJPVFRPTSxcbiAgICAgICAgICAgICAgQ1NTLkRJU1BMQVkuRkxFWCxcbiAgICAgICAgICAgICAgQ1NTLkFYSVMxLkVORCxcbiAgICAgICAgICAgICAgQ1NTLkdBUC5PTkUsXG4gICAgICAgICAgICAgIENTUy5QQURESU5HLlguVFdPLFxuICAgICAgICAgICAgICBDU1MuUEFERElORy5ZLk9ORSxcbiAgICAgICAgICAgICAgQ1NTLlNIQURPVy5UT1AsXG4gICAgICAgICAgICBdXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c2xvdCBuYW1lPVwiZm9vdGVyXCIgLz5cbiAgICAgICAgICA8L2Zvb3Rlcj5cbiAgICAgICAgPC90ZW1wbGF0ZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L1RlbGVwb3J0PlxuPC90ZW1wbGF0ZT5cblxuPHN0eWxlIHNjb3BlZD5cbiAgLnRpZGUtbW9kYWwge1xuICAgIHdpZHRoOiB2YXIoLS10aWRlLW1vZGFsLXdpZHRoKTtcbiAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIDJyZW0pO1xuICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwJSAtIDJyZW0pO1xuICAgIGJveC1zaGFkb3c6IDBweCAxMHB4IDI1cHggMHB4IHJnYmEoMTgsIDQzLCA1OCwgMC4yKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwdmgpO1xuICAgIHRyYW5zaXRpb246IHZhcigtLXRpZGUtYW5pbWF0ZSk7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtO1xuICB9XG5cbiAgLnRpZGUtbW9kYWwtYmcge1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigwcHgpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMCk7XG4gICAgdHJhbnNpdGlvbjogdmFyKC0tdGlkZS1hbmltYXRlKTtcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBiYWNrZHJvcC1maWx0ZXIsIGJhY2tncm91bmQtY29sb3I7XG4gIH1cblxuICAuYWN0aXZlIC50aWRlLW1vZGFsIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIH1cblxuICAuYWN0aXZlIC50aWRlLW1vZGFsLWJnIHtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoOHB4KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10aWRlLXRyYW5zcGFyZW50LTQwMCk7XG4gIH1cbjwvc3R5bGU+XG4iLCI8c2NyaXB0IGxhbmc9XCJ0c1wiIHNldHVwPlxuICBpbXBvcnQgeyBjb21wdXRlZCwgcmVmIH0gZnJvbSAndnVlJztcblxuICBpbXBvcnQgVGlkZUJ1dHRvbkljb24gZnJvbSAnQC9jb21wb25lbnRzL1RpZGVCdXR0b25JY29uLnZ1ZSc7XG4gIGltcG9ydCBUaWRlQnV0dG9uUGFnaW5hdGlvbiBmcm9tICdAL2NvbXBvbmVudHMvVGlkZUJ1dHRvblBhZ2luYXRpb24udnVlJztcbiAgaW1wb3J0IHsgQ1NTIH0gZnJvbSAnQC90eXBlcy9TdHlsZXMnO1xuICBpbXBvcnQgeyBJQ09OIH0gZnJvbSAnQC90eXBlcy9JY29uJztcbiAgaW1wb3J0IHsgUFJJT1JJVFkgfSBmcm9tICdAL3R5cGVzL1ByaW9yaXR5JztcblxuICB0eXBlIFByb3BzID0ge1xuICAgIHBhZ2VDdXJyZW50PzogbnVtYmVyO1xuICAgIHBhZ2VUb3RhbD86IG51bWJlcjtcbiAgfTtcblxuICBjb25zdCBwcm9wcyA9IHdpdGhEZWZhdWx0cyhkZWZpbmVQcm9wczxQcm9wcz4oKSwge1xuICAgIHBhZ2VDdXJyZW50OiAxLFxuICAgIHBhZ2VUb3RhbDogMSxcbiAgfSk7XG5cbiAgY29uc3QgZW1pdCA9IGRlZmluZUVtaXRzKFsnY2hhbmdlJ10pO1xuXG4gIGNvbnN0IHBhZ2VDdXJyZW50ID0gcmVmKHByb3BzLnBhZ2VDdXJyZW50KTtcblxuICBjb25zdCBwYWdpbmF0aW9uQnV0dG9ucyA9IGNvbXB1dGVkKCgpID0+IG5ldyBBcnJheShwcm9wcy5wYWdlVG90YWwpLmZpbGwoJycpLm1hcCgoZW1wdHksIGluZGV4KSA9PiBpbmRleCArIDEpKTtcblxuICBjb25zdCBoYW5kbGVDbGljayA9IChldmVudDogRXZlbnQsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICBwYWdlQ3VycmVudC52YWx1ZSA9IGluZGV4O1xuXG4gICAgZW1pdCgnY2hhbmdlJywgZXZlbnQsIGluZGV4KTtcbiAgfTtcbjwvc2NyaXB0PlxuXG48dGVtcGxhdGU+XG4gIDxzZWN0aW9uXG4gICAgOmNsYXNzPVwiWyd0aWRlLXBhZ2luYXRpb24nLCBDU1MuRElTUExBWS5GTEVYLCBDU1MuQVhJUzEuQ0VOVEVSLCBDU1MuQVhJUzIuQ0VOVEVSLCBDU1MuR0FQLlFVQVJURVIsIENTUy5XSURUSC5GVUxMXVwiXG4gID5cbiAgICA8VGlkZUJ1dHRvbkljb25cbiAgICAgIDpkaXNhYmxlZD1cInBhZ2VDdXJyZW50ID09PSAxXCJcbiAgICAgIDppY29uPVwiSUNPTi5DSEVWUk9OX0xFRlRcIlxuICAgICAgOnByaW9yaXR5PVwiUFJJT1JJVFkuUVVBVEVSTkFSWVwiXG4gICAgICBAY2xpY2s9XCIoZXZlbnQ6IEV2ZW50KSA9PiBoYW5kbGVDbGljayhldmVudCwgcGFnZUN1cnJlbnQgLSAxKVwiXG4gICAgLz5cblxuICAgIDx1bCA6Y2xhc3M9XCJbQ1NTLkRJU1BMQVkuRkxFWCwgQ1NTLkFYSVMyLkNFTlRFUiwgQ1NTLkdBUC5RVUFSVEVSLCBDU1MuTElTVF9CVUxMRVRTLk9GRl1cIj5cbiAgICAgIDxsaVxuICAgICAgICA6a2V5PVwicGFnaW5hdGlvbkJ1dHRvblwiXG4gICAgICAgIHYtZm9yPVwicGFnaW5hdGlvbkJ1dHRvbiBpbiBwYWdpbmF0aW9uQnV0dG9uc1wiXG4gICAgICA+XG4gICAgICAgIDxUaWRlQnV0dG9uUGFnaW5hdGlvblxuICAgICAgICAgIDpkaXNhYmxlZD1cInBhZ2VDdXJyZW50ID09PSBwYWdpbmF0aW9uQnV0dG9uXCJcbiAgICAgICAgICA6bGFiZWw9XCJwYWdpbmF0aW9uQnV0dG9uXCJcbiAgICAgICAgICA6cHJpb3JpdHk9XCJQUklPUklUWS5RVUFURVJOQVJZXCJcbiAgICAgICAgICBAY2xpY2s9XCIoZXZlbnQ6IEV2ZW50KSA9PiBoYW5kbGVDbGljayhldmVudCwgcGFnaW5hdGlvbkJ1dHRvbilcIlxuICAgICAgICAvPlxuICAgICAgPC9saT5cbiAgICA8L3VsPlxuXG4gICAgPFRpZGVCdXR0b25JY29uXG4gICAgICA6ZGlzYWJsZWQ9XCJwYWdlQ3VycmVudCA9PT0gcGFnaW5hdGlvbkJ1dHRvbnNbcGFnaW5hdGlvbkJ1dHRvbnMubGVuZ3RoIC0gMV1cIlxuICAgICAgOmljb249XCJJQ09OLkNIRVZST05fUklHSFRcIlxuICAgICAgOnByaW9yaXR5PVwiUFJJT1JJVFkuUVVBVEVSTkFSWVwiXG4gICAgICBAY2xpY2s9XCIoZXZlbnQ6IEV2ZW50KSA9PiBoYW5kbGVDbGljayhldmVudCwgcGFnZUN1cnJlbnQgKyAxKVwiXG4gICAgLz5cbiAgPC9zZWN0aW9uPlxuPC90ZW1wbGF0ZT5cblxuPHN0eWxlIHNjb3BlZD48L3N0eWxlPlxuIiwiPHNjcmlwdCBsYW5nPVwidHNcIiBzZXR1cD5cbiAgaW1wb3J0IHsgcmVmIH0gZnJvbSAndnVlJztcblxuICBpbXBvcnQgdHlwZSB7IFRhYiB9IGZyb20gJ0AvdHlwZXMvVGFiJztcblxuICBpbXBvcnQgeyBDU1MgfSBmcm9tICdAL3R5cGVzL1N0eWxlcyc7XG5cbiAgdHlwZSBQcm9wcyA9IHtcbiAgICBhY3RpdmVUYWJJbml0aWFsPzogbnVtYmVyO1xuICAgIHRhYnM6IFRhYltdO1xuICB9O1xuXG4gIGNvbnN0IHByb3BzID0gd2l0aERlZmF1bHRzKGRlZmluZVByb3BzPFByb3BzPigpLCB7XG4gICAgYWN0aXZlVGFiSW5pdGlhbDogMCxcbiAgfSk7XG5cbiAgY29uc3QgZW1pdCA9IGRlZmluZUVtaXRzKFsnY2hhbmdlJ10pO1xuXG4gIGNvbnN0IGFjdGl2ZVRhYiA9IHJlZihwcm9wcy5hY3RpdmVUYWJJbml0aWFsKTtcblxuICBjb25zdCBoYW5kbGVDbGljayA9IChldmVudDogRXZlbnQsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICBhY3RpdmVUYWIudmFsdWUgPSBpbmRleDtcblxuICAgIGVtaXQoJ2NoYW5nZScsIGV2ZW50LCBpbmRleCk7XG4gIH07XG48L3NjcmlwdD5cblxuPHRlbXBsYXRlPlxuICA8ZGl2XG4gICAgOmNsYXNzPVwiW1xuICAgICAgJ3RpZGUtdGFicycsXG4gICAgICBDU1MuQkcuU1VSRkFDRS5WQVJJQU5ULFxuICAgICAgQ1NTLkRJU1BMQVkuRkxFWCxcbiAgICAgIENTUy5HQVAuUVVBUlRFUixcbiAgICAgIENTUy5CT1JERVIuUkFESVVTLkhBTEYsXG4gICAgICBDU1MuUEFERElORy5GVUxMLlFVQVJURVIsXG4gICAgICBDU1MuT1ZFUkZMT1cuWFkuSElEREVOLFxuICAgICAgQ1NTLldJRFRILkZVTEwsXG4gICAgXVwiXG4gID5cbiAgICA8YnV0dG9uXG4gICAgICA6Y2xhc3M9XCJbXG4gICAgICAgICd0aWRlLXRhYnMtdGFiJyxcbiAgICAgICAgaW5kZXggPT09IGFjdGl2ZVRhYlxuICAgICAgICAgID8gW0NTUy5CRy5TVVJGQUNFLkRFRkFVTFQsIENTUy5GT05ULkNPTE9SLlNVUkZBQ0UuREVGQVVMVCwgQ1NTLlNIQURPVy5CT1RUT01dXG4gICAgICAgICAgOiBbJ2luYWN0aXZlJywgQ1NTLkZPTlQuQ09MT1IuU1VSRkFDRS5WQVJJQU5UXSxcbiAgICAgICAgQ1NTLkZMRVguR1JPVy5PTixcbiAgICAgICAgQ1NTLkJPUkRFUi5SQURJVVMuUVVBUlRFUixcbiAgICAgICAgQ1NTLlBBRERJTkcuWS5RVUFSVEVSLFxuICAgICAgICBDU1MuV0lEVEguRlVMTCxcbiAgICAgICAgQ1NTLkZPTlQuV0VJR0hULlNJWF9IVU5EUkVELFxuICAgICAgICBDU1MuV0hJVEVTUEFDRV9XUkFQLk9GRixcbiAgICAgIF1cIlxuICAgICAgOmRhdGEtdHJhY2s9XCJ0YWIuZGF0YVRyYWNrIHx8IHVuZGVmaW5lZFwiXG4gICAgICA6a2V5PVwidGFiLmxhYmVsXCJcbiAgICAgIEBjbGljaz1cIihldmVudDogRXZlbnQpID0+IGhhbmRsZUNsaWNrKGV2ZW50LCBpbmRleClcIlxuICAgICAgdi1mb3I9XCIodGFiLCBpbmRleCkgaW4gcHJvcHMudGFic1wiXG4gICAgPlxuICAgICAgPHNwYW4gOmNsYXNzPVwiW0NTUy5GT05ULldFSUdIVC5TSVhfSFVORFJFRF1cIj5cbiAgICAgICAge3sgdGFiLmxhYmVsIH19XG4gICAgICA8L3NwYW4+XG4gICAgICA8c3BhblxuICAgICAgICA6Y2xhc3M9XCJbQ1NTLkZPTlQuV0VJR0hULlNJWF9IVU5EUkVEXVwiXG4gICAgICAgIHYtaWY9XCJ0YWIuY291bnQgJiYgdGFiLmNvdW50ID4gMFwiXG4gICAgICA+XG4gICAgICAgICh7eyB0YWIuY291bnQgfX0pXG4gICAgICA8L3NwYW4+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC90ZW1wbGF0ZT5cblxuPHN0eWxlIHNjb3BlZD5cbiAgLnRpZGUtdGFicyB7XG4gICAgbWF4LXdpZHRoOiAyMy4zcmVtO1xuICB9XG5cbiAgLnRpZGUtdGFicy10YWIge1xuICAgIGZsZXg6IDE7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciB2YXIoLS10aWRlLWFuaW1hdGUpO1xuICB9XG5cbiAgLmluYWN0aXZlOm5vdCg6aG92ZXIpIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS10aWRlLXN1cmZhY2UtdmFyaWFudCk7XG4gIH1cblxuICAuaW5hY3RpdmU6aG92ZXIge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXRpZGUtYm9yZGVyKTtcbiAgfVxuPC9zdHlsZT5cbiIsIjxzY3JpcHQgbGFuZz1cInRzXCIgc2V0dXA+XG4gIGltcG9ydCB7IHJlZiB9IGZyb20gJ3Z1ZSc7XG5cbiAgaW1wb3J0IFRpZGVJY29uIGZyb20gJ0AvY29tcG9uZW50cy9UaWRlSWNvbi52dWUnO1xuICBpbXBvcnQgeyBDU1MgfSBmcm9tICdAL3R5cGVzL1N0eWxlcyc7XG4gIGltcG9ydCB7IElDT04gfSBmcm9tICdAL3R5cGVzL0ljb24nO1xuICBpbXBvcnQgeyBTSVpFIH0gZnJvbSAnQC90eXBlcy9TaXplJztcblxuICBjb25zdCBwcm9wcyA9IGRlZmluZVByb3BzKHtcbiAgICBkaXNhYmxlZDoge1xuICAgICAgZGVmYXVsdDogZmFsc2UsXG4gICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICB0eXBlOiBCb29sZWFuLFxuICAgIH0sXG4gICAgaXNBY3RpdmU6IHtcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgdHlwZTogQm9vbGVhbixcbiAgICB9LFxuICB9KTtcblxuICBjb25zdCBlbWl0ID0gZGVmaW5lRW1pdHMoWydjaGFuZ2UnXSk7XG5cbiAgY29uc3QgaXNBY3RpdmUgPSByZWYocHJvcHMuaXNBY3RpdmUpO1xuXG4gIGNvbnN0IGhhbmRsZUNsaWNrID0gKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgIGlmICghcHJvcHMuZGlzYWJsZWQpIHtcbiAgICAgIGlzQWN0aXZlLnZhbHVlID0gIWlzQWN0aXZlLnZhbHVlO1xuXG4gICAgICBlbWl0KCdjaGFuZ2UnLCBldmVudCwgaXNBY3RpdmUudmFsdWUpO1xuICAgIH1cbiAgfTtcbjwvc2NyaXB0PlxuXG48dGVtcGxhdGU+XG4gIDxidXR0b25cbiAgICA6Y2xhc3M9XCJbXG4gICAgICAndGlkZS10b2dnbGUnLFxuICAgICAgcHJvcHMuaXNBY3RpdmUgPyAnYWN0aXZlJyA6ICcnLFxuICAgICAgQ1NTLkRJU1BMQVkuRkxFWCxcbiAgICAgIENTUy5BWElTMi5DRU5URVIsXG4gICAgICBDU1MuQk9SREVSLkZVTEwuT05FLFxuICAgICAgQ1NTLkJPUkRFUi5SQURJVVMuRlVMTCxcbiAgICAgIHByb3BzLmlzQWN0aXZlID8gJycgOiBDU1MuQk9SREVSLkNPTE9SLkRFRkFVTFQsXG4gICAgICBDU1MuT1ZFUkZMT1cuWFkuSElEREVOLFxuICAgICAgcHJvcHMuaXNBY3RpdmUgPyBDU1MuQkcuU0VDT05EQVJZIDogQ1NTLkJHLlNVUkZBQ0UuREVGQVVMVCxcbiAgICBdXCJcbiAgICA6ZGlzYWJsZWQ9XCJwcm9wcy5kaXNhYmxlZFwiXG4gICAgQGNsaWNrPVwiaGFuZGxlQ2xpY2tcIlxuICAgIGFyaWEtbGFiZWw9XCJUb2dnbGVcIlxuICA+XG4gICAgPGRpdlxuICAgICAgOmNsYXNzPVwiW1xuICAgICAgICAndGlkZS10b2dnbGUtaW5kaWNhdG9yJyxcbiAgICAgICAgQ1NTLlBPU0lUSU9OLlJFTEFUSVZFLFxuICAgICAgICBDU1MuRElTUExBWS5GTEVYLFxuICAgICAgICBDU1MuQVhJUzEuQ0VOVEVSLFxuICAgICAgICBDU1MuQVhJUzIuQ0VOVEVSLFxuICAgICAgICBDU1MuQk9SREVSLlJBRElVUy5GVUxMLFxuICAgICAgICBwcm9wcy5pc0FjdGl2ZSA/IENTUy5CRy5TVVJGQUNFLkRFRkFVTFQgOiBDU1MuQkcuU0VDT05EQVJZLFxuICAgICAgXVwiXG4gICAgPlxuICAgICAgPFRpZGVJY29uXG4gICAgICAgIDppY29uPVwiSUNPTi5DSEVDS1wiXG4gICAgICAgIDpzaXplPVwiU0laRS5MQVJHRVwiXG4gICAgICAvPlxuICAgIDwvZGl2PlxuICA8L2J1dHRvbj5cbjwvdGVtcGxhdGU+XG5cbjxzdHlsZSBzY29wZWQ+XG4gIC50aWRlLXRvZ2dsZSB7XG4gICAgd2lkdGg6IDY0cHg7XG4gICAgaGVpZ2h0OiAzMnB4O1xuICAgIHRyYW5zaXRpb246IHZhcigtLXRpZGUtYW5pbWF0ZSk7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYmFja2dyb3VuZC1jb2xvcjtcbiAgfVxuXG4gIC50aWRlLXRvZ2dsZTpkaXNhYmxlZCB7XG4gICAgb3BhY2l0eTogMC4zMjtcbiAgfVxuXG4gIC50aWRlLXRvZ2dsZS5hY3RpdmUge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tdGlkZS1zZWNvbmRhcnkpO1xuICB9XG5cbiAgLnRpZGUtdG9nZ2xlLmFjdGl2ZSAudGlkZS10b2dnbGUtaW5kaWNhdG9yIHtcbiAgICBsZWZ0OiAzNnB4O1xuICB9XG5cbiAgLnRpZGUtdG9nZ2xlLWluZGljYXRvciB7XG4gICAgbGVmdDogNHB4O1xuICAgIHRyYW5zaXRpb246IHZhcigtLXRpZGUtYW5pbWF0ZSk7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogbGVmdCwgYm9yZGVyLWNvbG9yLCBiYWNrZ3JvdW5kLWNvbG9yO1xuICB9XG48L3N0eWxlPlxuIiwiaW1wb3J0IHsgZm9ybWF0TnVtYmVyLCBmb3JtYXRQaG9uZSwgZm9ybWF0UHJpY2UgfSBmcm9tICdAL3V0aWxpdGllcy9mb3JtYXQnO1xuXG5leHBvcnQgdHlwZSBGb3JtYXR0ZWQgPSB7XG4gIFtrZXk6IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdIHwgbnVtYmVyO1xufTtcblxuZXhwb3J0IGNvbnN0IEZPUk1BVCA9IHtcbiAgTlVNQkVSOiBmb3JtYXROdW1iZXIsXG4gIFBIT05FOiBmb3JtYXRQaG9uZSxcbiAgUFJJQ0U6IGZvcm1hdFByaWNlLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IGNvbnN0IEZPUk1BVF9SRUdFWCA9IHtcbiAgYWxwaGE6IC9eW2EtekEtWl0rJC9nLFxuICBhbHBoYU51bWJlck9yRW1wdHk6IC9eJHxeW2EtejAtOV0rJC9pLFxuICBhbHBoYVNwYWNlOiAvXlthLXpBLVogXSskL2csXG4gIGVtYWlsOlxuICAgIC9eKChbXjw+KClbXFxdXFxcXC4sOzpcXHNAXCJdKyhcXC5bXjw+KClbXFxdXFxcXC4sOzpcXHNAXCJdKykqKXwoXCIuK1wiKSlAKChcXFtbMC05XXsxLDN9XFwuWzAtOV17MSwzfVxcLlswLTldezEsM31cXC5bMC05XXsxLDN9XFxdKXwoKFthLXpBLVpcXC0wLTldK1xcLikrW2EtekEtWl17Mix9KSkkLyxcbiAgbnVtYmVyRm9ybWF0dGVkOiAvXiR8KD89LileXFwkPygoWzEtOV1bMC05XXswLDJ9KCxbMC05XXszfSkqKXwwKT8oXFwuWzAtOV17MSwyfSk/JC8sXG4gIHBob25lOiAvXig/OlxcZHszfS1cXGR7M30tXFxkezR9fFxcZHsxfS1cXGR7M30tXFxkezN9LVxcZHs0fSk/JC8sXG4gIHByaWNlOiAvKD89LileXFwkPygoWzEtOV1bMC05XXswLDJ9KCxbMC05XXszfSkqKXwwKT8oXFwuWzAtOV17MSwyfSk/JC8sXG59O1xuIiwiLyoqXG4gKiBUaGVzZSBzbGlkZXMgYXJlIHVzZWQgaW4gYm90aCB0aGUgaW5saW5lIGRldGFpbCBwYWdlIHBob3RvIHNsaWRlclxuICogYW5kIHRoZSBmdWxsc2NyZWVuIG1lZGlhIGdhbGxlcnkuXG4gKi9cblxuZXhwb3J0IGNvbnN0IE1FRElBX1NMSURFX1RZUEVTID0ge1xuICBJTUFHRToge1xuICAgIEZMT09SUExBTjogJ2Zsb29ycGxhbicsXG4gICAgSU1BR0U6ICdpbWFnZScsXG4gIH0sXG4gIFZJREVPOiAndmlkZW8nLFxuICBWUjogJ3ZyJyxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIE1lZGlhU2xpZGVUeXBlID1cbiAgfCAodHlwZW9mIE1FRElBX1NMSURFX1RZUEVTLklNQUdFKVtrZXlvZiB0eXBlb2YgTUVESUFfU0xJREVfVFlQRVMuSU1BR0VdXG4gIHwgdHlwZW9mIE1FRElBX1NMSURFX1RZUEVTLlZJREVPXG4gIHwgdHlwZW9mIE1FRElBX1NMSURFX1RZUEVTLlZSO1xuXG5leHBvcnQgdHlwZSBJbWFnZVNsaWRlVHlwZSA9ICh0eXBlb2YgTUVESUFfU0xJREVfVFlQRVMuSU1BR0UpW2tleW9mIHR5cGVvZiBNRURJQV9TTElERV9UWVBFUy5JTUFHRV07XG5cbnR5cGUgSW1hZ2VTbGlkZSA9IHtcbiAgaW1hZ2VVcmw6IHN0cmluZztcbiAgdHlwZTogSW1hZ2VTbGlkZVR5cGU7XG59O1xuXG5leHBvcnQgdHlwZSBWaWRlb1NsaWRlVHlwZSA9IHR5cGVvZiBNRURJQV9TTElERV9UWVBFUy5WSURFTztcblxudHlwZSBWaWRlb1NsaWRlID0ge1xuICBpbWFnZVVybDogc3RyaW5nO1xuICB0eXBlOiBWaWRlb1NsaWRlVHlwZTtcbiAgdmlkZW9Vcmw6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFZyU2xpZGVUeXBlID0gdHlwZW9mIE1FRElBX1NMSURFX1RZUEVTLlZSO1xuXG50eXBlIFZyU2xpZGUgPSB7XG4gIGltYWdlVXJsOiBzdHJpbmc7XG4gIHR5cGU6IFZyU2xpZGVUeXBlO1xuICB2clVybDogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgTGlzdGluZ01lZGlhID0gSW1hZ2VTbGlkZSB8IFZpZGVvU2xpZGUgfCBWclNsaWRlO1xuIiwiZXhwb3J0IGNvbnN0IFJFQUxNID0ge1xuICBBRVJPOiAnYWVybycsXG4gIEFUVjogJ2F0dicsXG4gIEJPQVRNQVJUOiAnYm9hdG1hcnQnLFxuICBDWUNMRTogJ2N5Y2xlJyxcbiAgRVFVSVA6ICdlcXVpcCcsXG4gIFBXQzogJ3B3YycsXG4gIFJWOiAncnYnLFxuICBTTk9XOiAnc25vdycsXG4gIFRSVUNLOiAndHJ1Y2snLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgUmVhbG0gPSAodHlwZW9mIFJFQUxNKVtrZXlvZiB0eXBlb2YgUkVBTE1dO1xuIiwiaW1wb3J0IHsgRk9STUFUX1JFR0VYIH0gZnJvbSAnQC90eXBlcy9Gb3JtYXR0ZWQnO1xuaW1wb3J0IHsgY2hlY2tGb3JtYXQgfSBmcm9tICdAL3V0aWxpdGllcy92YWxpZGF0aW9uJztcblxuZXhwb3J0IGNvbnN0IFZBTElEQVRPUiA9IHtcbiAgQUxQSEFfTlVNQkVSX0VNUFRZOiBjaGVja0Zvcm1hdChGT1JNQVRfUkVHRVguYWxwaGFOdW1iZXJPckVtcHR5KSxcbiAgQUxQSEFfU1BBQ0U6IGNoZWNrRm9ybWF0KEZPUk1BVF9SRUdFWC5hbHBoYVNwYWNlKSxcbiAgRU1BSUw6IGNoZWNrRm9ybWF0KEZPUk1BVF9SRUdFWC5lbWFpbCksXG4gIE5VTUJFUjogY2hlY2tGb3JtYXQoRk9STUFUX1JFR0VYLm51bWJlckZvcm1hdHRlZCksXG4gIFBIT05FOiBjaGVja0Zvcm1hdChGT1JNQVRfUkVHRVgucGhvbmUpLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgVmFsaWRhdGlvbkVycm9yID0gc3RyaW5nIHwgYm9vbGVhbjtcbmV4cG9ydCB0eXBlIFZhbGlkYXRpb25SZXN1bHQgPSB7XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgdmFsaWQ6IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBWYWxpZGF0aW9uTGVuZ3RoID0ge1xuICBtYXhsZW5ndGg/OiBudW1iZXI7XG4gIG1pbmxlbmd0aD86IG51bWJlcjtcbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xuICB2YWx1ZTogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgVmFsaWRhdG9yID0gKHZhbHVlOiBzdHJpbmcpID0+IFZhbGlkYXRpb25SZXN1bHQ7XG4iXSwibmFtZXMiOlsiQlJFQUtQT0lOVCIsIkNTUyIsInV0aWxpdGllcyIsImJyZWFrcG9pbnQiLCJ1dGlsaXR5IiwiT1JJRU5UQVRJT04iLCJTSVpFIiwiZm9ybWF0TnVtYmVyIiwiaW5wdXQiLCJvdXRwdXQiLCJkaWdpdHMiLCJmb3JtYXRQYXNjYWxDYXNlIiwid29yZCIsImZvcm1hdFBob25lIiwiZm9ybWF0UHJpY2UiLCJpbm5lclNWRyIsInJlZiIsIndhdGNoIiwicHJvcHMiLCJpZCIsIm5hbWUiLCJjb21wb25lbnQiLCJkZWZpbmVBc3luY0NvbXBvbmVudCIsIl9fdmFyaWFibGVEeW5hbWljSW1wb3J0UnVudGltZUhlbHBlciIsIm1hcmtSYXciLCJJQ09OIiwiaXNFeHBhbmRlZCIsImFjY29yZGlvbkJvZHkiLCJ0b2dnbGVJc0V4cGFuZGVkIiwiZWxlbWVudCIsIm9uTW91bnRlZCIsIkVMRU1FTlQiLCJFTEVNRU5UX1RFWFRfQVNfSUNPTiIsIlBSSU9SSVRZIiwiVEFSR0VUIiwiQUxFUlQiLCJpY29uIiwiY29tcHV0ZWQiLCJCQURHRSIsIkJBREdFX1BSRU1JVU0iLCJCQURHRV9UUlVTVEVEIiwiZ2FwIiwiY29udGVudFdpZHRoIiwiZnJhbWVXaWR0aCIsImhhc092ZXJmbG93IiwibGFzdFBvc2l0aW9uIiwiY29udGVudFJlZiIsImZyYW1lUmVmIiwic2hvd0J1dHRvbnMiLCJjdXJyZW50U2xpZGUiLCJtZWFzdXJlQ3VycmVudFNsaWRlIiwic2xpZGVPZmZzZXRzIiwic2xpZGUiLCJjbG9zZXN0U2xpZGVPZmZzZXQiLCJwcmV2IiwiY3VyciIsIm1lYXN1cmVEb20iLCJoYW5kbGVTY3JvbGwiLCJzY3JvbGxUb1NsaWRlIiwic2xpZGVJbmRleCIsInNob3dOZXh0U2xpZGUiLCJjb250ZW50UmlnaHRFZGdlIiwiaXNGaXJzdFNsaWRlV2l0aE9mZnNldCIsIm5leHRTbGlkZSIsInNob3dQcmV2aW91c1NsaWRlIiwiZmlyc3RTbGlkZSIsImlzRmlyc3RTbGlkZSIsInByZXZpb3VzU2xpZGUiLCJvblVubW91bnRlZCIsIm9uVXBkYXRlZCIsImVtaXQiLCJ0aWRlSW1hZ2UiLCJpbWFnZURlZmF1bHQiLCJzZXRJbWFnZUZyb21EZWZhdWx0IiwiX19leHBvc2UiLCJjaGVja2VkIiwiaW5kZXRlcm1pbmF0ZSIsImhhbmRsZUNsaWNrIiwibmV3VmFsdWUiLCJvbGRWYWx1ZSIsImVycm9yTWVzc2FnZURlZmF1bHQiLCJub0Vycm9yIiwiY2hlY2tGb3JtYXQiLCJmb3JtYXQiLCJ2YWx1ZSIsInJlc3VsdCIsImdldEVycm9yTWVzc2FnZSIsImVycm9yRnJvbVByb3BzIiwiZXJyb3JGcm9tUmVmIiwiZ2V0RmllbGRIYXNFcnJvciIsImdldEZpZWxkTGVuZ3RoSXNWYWxpZCIsIm1heGxlbmd0aCIsIm1pbmxlbmd0aCIsInJlcXVpcmVkIiwiaXNFbXB0eUFuZFVucmVxdWlyZWQiLCJpc1Rvb0xvbmciLCJoYW5kbGVGaWVsZFZhbGlkYXRpb24iLCJlcnJvciIsInZhbGlkYXRvcnMiLCJ2YWxpZGF0aW9uIiwidmFsaWRhdGVQcm9wZXJ0eSIsImxlbmd0aFZhbGlkYXRpb24iLCJ2YWxpZGF0ZUxlbmd0aCIsInJlc3BvbnNlIiwidmFsaWRhdG9yIiwiaGFzRm9jdXMiLCJlcnJvck1lc3NhZ2UiLCJmb3JtYXR0ZWRMYWJlbCIsImhhc0Vycm9yIiwiaGFzTWluaWxhYmVsIiwiaXNFbXB0eSIsImV4cGFuZE9wdGlvbnMiLCJldmVudCIsIl9hIiwiaGFuZGxlRm9jdXMiLCJoYW5kbGVGb2N1c091dCIsIlRFWFRfSU5QVVRfVFlQRSIsInNob3dQYXNzd29yZCIsImhhc0NsZWFyIiwidHlwZSIsImhhbmRsZUNsZWFyIiwiaGFuZGxlVmFsaWRhdGlvbiIsImhhbmRsZUlucHV0IiwidXBkYXRlVmFsdWUiLCJoYXNJY29uIiwiaXNPcGVuIiwic2F2ZWRTY3JvbGxQb3NpdGlvbiIsImhhbmRsZUNsb3NlIiwidXBkYXRlTW9kYWxEaXNwbGF5IiwiYWRkT3Blbkxpc3RlbmVycyIsInJlbW92ZU9wZW5MaXN0ZW5lcnMiLCJoYW5kbGVLZXlEb3duIiwicGFnZUN1cnJlbnQiLCJwYWdpbmF0aW9uQnV0dG9ucyIsImVtcHR5IiwiaW5kZXgiLCJhY3RpdmVUYWIiLCJpc0FjdGl2ZSIsIkZPUk1BVCIsIkZPUk1BVF9SRUdFWCIsIk1FRElBX1NMSURFX1RZUEVTIiwiUkVBTE0iLCJWQUxJREFUT1IiXSwibWFwcGluZ3MiOiI7QUFFTyxNQUFNQSxLQUFhO0FBQUEsRUFDeEIsSUFBSTtBQUFBLEVBQ0osSUFBSTtBQUFBLEVBQ0osSUFBSTtBQUFBLEVBQ0osSUFBSTtBQUNOLEdBSWFDLElBQU07QUFBQSxFQUNqQixnQkFBZ0IsQ0FBQ0MsR0FBcUJDLE1BQzdCRCxFQUFVLElBQUksQ0FBQ0UsTUFBWSxHQUFHRCxDQUFVLElBQUlDLENBQU8sRUFBRTtBQUFBLEVBRTlELE9BQU87QUFBQSxJQUNMLEdBQUc7QUFBQSxNQUNELFFBQVE7QUFBQSxNQUNSLE1BQU07QUFBQSxNQUNOLE9BQU87QUFBQSxJQUNUO0FBQUEsSUFDQSxHQUFHO0FBQUEsTUFDRCxRQUFRO0FBQUEsTUFDUixTQUFTO0FBQUEsSUFDWDtBQUFBLEVBQ0Y7QUFBQSxFQUNBLE9BQU87QUFBQSxJQUNMLFFBQVE7QUFBQSxJQUNSLFNBQVM7QUFBQSxJQUNULFFBQVE7QUFBQSxJQUNSLEtBQUs7QUFBQSxJQUNMLE9BQU87QUFBQSxFQUNUO0FBQUEsRUFDQSxPQUFPO0FBQUEsSUFDTCxRQUFRO0FBQUEsSUFDUixRQUFRO0FBQUEsSUFDUixLQUFLO0FBQUEsSUFDTCxPQUFPO0FBQUEsRUFDVDtBQUFBLEVBQ0EsSUFBSTtBQUFBLElBQ0YsU0FBUztBQUFBLElBQ1QsTUFBTTtBQUFBLElBQ04sT0FBTztBQUFBLElBQ1AsTUFBTTtBQUFBLElBQ04sU0FBUztBQUFBLElBQ1QsV0FBVztBQUFBLElBQ1gsU0FBUztBQUFBLElBQ1QsU0FBUztBQUFBLE1BQ1AsUUFBUTtBQUFBLE1BQ1IsZ0JBQWdCO0FBQUEsTUFDaEIsT0FBTztBQUFBLE1BQ1AsU0FBUztBQUFBLE1BQ1QsT0FBTztBQUFBLE1BQ1AsVUFBVTtBQUFBLE1BQ1YsVUFBVTtBQUFBLE1BQ1YsTUFBTTtBQUFBLE1BQ04sU0FBUztBQUFBLE1BQ1QsU0FBUztBQUFBLE1B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SUFDVCxNQUFNO0FBQUEsSUFDTixLQUFLO0FBQUEsSUFDTCxLQUFLO0FBQUEsSUFDTCxNQUFNO0FBQUEsRUFDUjtBQUFBLEVBQ0EsTUFBTTtBQUFBLElBQ0osS0FBSztBQUFBLE1BQ0gsS0FBSztBQUFBLE1BQ0wsS0FBSztBQUFBLE1BQ0wsT0FBTztBQUFBLE1BQ1AsTUFBTTtBQUFBLE1BQ04sTUFBTTtBQUFBLE1BQ04sS0FBSztBQUFBLE1BQ0wsT0FBTztBQUFBLE1BQ1AsT0FBTztBQUFBLE1BQ1AsTUFBTTtBQUFBLE1BQ04sS0FBSztBQUFBLE1BQ0wsUUFBUTtBQUFBLE1BQ1IsUUFBUTtBQUFBLE1BQ1IsVUFBVTtBQUFBLElBQ1o7QUFBQSxJQUNBLE9BQU87QUFBQSxJQUNQLFFBQVE7QUFBQSxJQUNSLE9BQU87QUFBQSxNQUNMLE1BQU07QUFBQSxNQUNOLEtBQUs7QUFBQSxNQUNMLEtBQUs7QUFBQSxNQUNMLE9BQU87QUFBQSxNQUNQLE1BQU07QUFBQSxNQUNOLE1BQU07QUFBQSxNQUNOLEtBQUs7QUFBQSxNQUNMLE9BQU87QUFBQSxNQUNQLE9BQU87QUFBQSxNQUNQLE1BQU07QUFBQSxNQUNOLEtBQUs7QUFBQSxNQUNMLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxJQUNWO0FBQUEsSUFDQSxJQUFJO0FBQUEsRUFDTjtBQUFBLEVBQ0EsUUFBUTtBQUFBLElBQ04sTUFBTTtBQUFBLElBQ04sTUFBTTtBQUFBLElBQ04sTUFBTTtBQUFBLEVBQ1I7QUFBQSxFQUNBLFdBQVc7QUFBQSxJQUNULFNBQVM7QUFBQSxFQUNYO0FBQUEsRUFDQSxjQUFjO0FBQUEsSUFDWixLQUFLO0FBQUEsRUFDUDtBQUFBLEVBQ0EsUUFBUTtBQUFBLElBQ04sUUFBUTtBQUFBLE1BQ04sTUFBTTtBQUFBLE1BQ04sU0FBUztBQUFBLE1BQ1QsTUFBTTtBQUFBLE1BQ04sS0FBSztBQUFBLE1BQ0wsS0FBSztBQUFBLE1BQ0wsTUFBTTtBQUFBLElBQ1I7QUFBQSxJQUNBLE1BQU07QUFBQSxNQUNKLE1BQU07QUFBQSxNQUNOLFNBQVM7QUFBQSxNQUNULE1BQU07QUFBQSxNQUNOLEtBQUs7QUFBQSxNQUNMLEtBQUs7QUFBQSxNQUNMLE1BQU07QUFBQSxJQUNSO0FBQUEsSUFDQSxNQUFNO0FBQUEsTUFDSixNQUFNO0FBQUEsTUFDTixNQUFNO0FBQUEsTUFDTixTQUFTO0FBQUEsTUFDVCxNQUFNO0FBQUEsTUFDTixLQUFLO0FBQUEsTUFDTCxLQUFLO0FBQUEsTUFDTCxNQUFNO0FBQUEsSUFDUjtBQUFBLElBQ0EsT0FBTztBQUFBLE1BQ0wsTUFBTTtBQUFBLE1BQ04sTUFBTTtBQUFBLE1BQ04sU0FBUztBQUFBLE1BQ1QsTUFBTTtBQUFBLE1BQ04sS0FBSztBQUFBLE1BQ0wsS0FBSztBQUFBLE1BQ0wsTUFBTTtBQUFBLElBQ1I7QUFBQSxJQUNBLEtBQUs7QUFBQSxNQUNILE1BQU07QUFBQSxNQUNOLFNBQVM7QUFBQSxNQUNULE1BQU07QUFBQSxNQUNOLEtBQUs7QUFBQSxNQUNMLEtBQUs7QUFBQSxNQUNMLE1BQU07QUFBQSxJQUNSO0FBQUEsSUFDQSxHQUFHO0FBQUEsTUFDRCxNQUFNO0FBQUEsTUFDTixNQUFNO0FBQUEsTUFDTixTQUFTO0FBQUEsTUFDVCxNQUFNO0FBQUEsTUFDTixLQUFLO0FBQUEsTUFDTCxLQUFLO0FBQUEsTUFDTCxNQUFNO0FBQUEsSUFDUjtBQUFBLElBQ0EsR0FBRztBQUFBLE1BQ0QsTUFBTTtBQUFBLE1BQ04sU0FBUztBQUFBLE1BQ1QsTUFBTTtBQUFBLE1BQ04sS0FBSztBQUFBLE1BQ0wsS0FBSztBQUFBLE1BQ0wsTUFBTTtBQUFBLElBQ1I7QUFBQSxFQUNGO0FBQUEsRUFDQSxRQUFRO0FBQUEsSUFDTixRQUFRO0FBQUEsSUFDUixTQUFTO0FBQUEsSUFDVCxPQUFPO0FBQUEsSUFDUCxZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0EsU0FBUztBQUFBLElBQ1AsS0FBSztBQUFBLElBQ0wsSUFBSTtBQUFBLEVBQ047QUFBQSxFQUNBLFVBQVU7QUFBQSxJQUNSLEdBQUc7QUFBQSxNQUNELE1BQU07QUFBQSxNQUNOLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxJQUNWO0FBQUEsSUFDQSxJQUFJO0FBQUEsTUFDRixNQUFNO0FBQUEsTUFDTixRQUFRO0FBQUEsSUFDVjtBQUFBLElBQ0EsR0FBRztBQUFBLE1BQ0QsTUFBTTtBQUFBLE1BQ04sUUFBUTtBQUFBLElBQ1Y7QUFBQSxFQUNGO0FBQUEsRUFDQSxTQUFTO0FBQUEsSUFDUCxRQUFRO0FBQUEsTUFDTixNQUFNO0FBQUEsTUFDTixTQUFTO0FBQUEsTUFDVCxNQUFNO0FBQUEsTUFDTixLQUFLO0FBQUEsTUFDTCxLQUFLO0FBQUEsTUFDTCxNQUFNO0FBQUEsSUFDUjtBQUFBLElBQ0EsTUFBTTtBQUFBLE1BQ0osTUFBTTtBQUFBLE1BQ04sU0FBUztBQUFBLE1BQ1QsTUFBTTtBQUFBLE1BQ04sS0FBSztBQUFBLE1BQ0wsS0FBSztBQUFBLE1BQ0wsTUFBTTtBQUFBLElBQ1I7QUFBQSxJQUNBLE1BQU07QUFBQSxNQUNKLE1BQU07QUFBQSxNQUNOLFNBQVM7QUFBQSxNQUNULE1BQU07QUFBQSxNQUNOLEtBQUs7QUFBQSxNQUNMLEtBQUs7QUFBQSxNQUNMLE1BQU07QUFBQSxJQUNSO0FBQUEsSUFDQSxPQUFPO0FBQUEsTUFDTCxNQUFNO0FBQUEsTUFDTixTQUFTO0FBQUEsTUFDVCxNQUFNO0FBQUEsTUFDTixLQUFLO0FBQUEsTUFDTCxLQUFLO0FBQUEsTUFDTCxNQUFNO0FBQUEsSUFDUjtBQUFBLElBQ0EsS0FBSztBQUFBLE1BQ0gsTUFBTTtBQUFBLE1BQ04sU0FBUztBQUFBLE1BQ1QsTUFBTTtBQUFBLE1BQ04sS0FBSztBQUFBLE1BQ0wsS0FBSztBQUFBLE1BQ0wsTUFBTTtBQUFBLElBQ1I7QUFBQSxJQUNBLEdBQUc7QUFBQSxNQUNELE1BQU07QUFBQSxNQUNOLFNBQVM7QUFBQSxNQUNULE1BQU07QUFBQSxNQUNOLEtBQUs7QUFBQSxNQUNMLEtBQUs7QUFBQSxNQUNMLE1BQU07QUFBQSxJQUNSO0FBQUEsSUFDQSxHQUFHO0FBQUEsTUFDRCxNQUFNO0FBQUEsTUFDTixTQUFTO0FBQUEs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QUFPLEVBQUUsS0FDYkEsRUFBSSxPQUFPLEVBQUUsTUFDYkEsRUFBSSxPQUFPLEVBQUUsU0FDYkEsRUFBSSxPQUFPLEVBQUUsS0FDYkEsRUFBSSxPQUFPLEVBQUUsTUFDYkEsRUFBSSxPQUFPLElBQUksTUFDZkEsRUFBSSxPQUFPLElBQUksS0FDZkEsRUFBSSxPQUFPLElBQUksTUFDZkEsRUFBSSxPQUFPLElBQUksU0FDZkEsRUFBSSxPQUFPLElBQUksS0FDZkEsRUFBSSxPQUFPLElBQUksTUFDZkEsRUFBSSxPQUFPLEVBQUUsTUFDYkEsRUFBSSxPQUFPLEVBQUUsS0FDYkEsRUFBSSxPQUFPLEVBQUUsTUFDYkEsRUFBSSxPQUFPLEVBQUUsU0FDYkEsRUFBSSxPQUFPLEVBQUUsS0FDYkEsRUFBSSxPQUFPLEVBQUUsTUFDYkEsRUFBSSxPQUFPLEVBQUUsTUFDYkEsRUFBSSxPQUFPLE1BQU0sTUFDakJBLEVBQUksT0FBTyxNQUFNLEtBQ2pCQSxFQUFJLE9BQU8sTUFBTSxNQUNqQkEsRUFBSSxPQUFPLE1BQU0sU0FDakJBLEVBQUksT0FBTyxNQUFNLEtBQ2pCQSxFQUFJLE9BQU8sTUFBTSxNQUNqQkEsRUFBSSxPQUFPLE1BQU0sTUFDakJBLEVBQUksT0FBTyxPQUFPLE1BQ2xCQSxFQUFJLE9BQU8sT0FBTyxLQUNsQkEsRUFBSSxPQUFPLE9BQU8sTUFDbEJBLEVBQUksT0FBTyxPQUFPLFNBQ2xCQSxFQUFJLE9BQU8sT0FBTyxLQUNsQkEsRUFBSSxPQUFPLE9BQU8sTUFDbEJBLEVBQUksT0FBTyxLQUFLLE1BQ2hCQSxFQUFJLE9BQU8sS0FBSyxLQUNoQkEsRUFBSSxPQUFPLEtBQUssTUFDaEJBLEVBQUksT0FBTyxLQUFLLFNBQ2hCQSxFQUFJLE9BQU8sS0FBSyxLQUNoQkEsRUFBSSxPQUFPLEtBQUssTUFDaEJBLEVBQUksT0FBTyxLQUFLLE1BQ2hCQSxFQUFJLE9BQU8sS0FBSyxLQUNoQkEsRUFBSSxPQUFPLEtBQUssS0FDaEJBLEVBQUksT0FBTyxJQUFJLEtBQ2ZBLEVBQUksT0FBTyxJQUFJLEtBQ2ZBLEVBQUksT0FBTyxNQUFNLEtBQ2pCQSxFQUFJLE9BQU8sTUFBTSxLQUNqQkEsRUFBSSxPQUFPLE9BQU8sS0FDbEJBLEVBQUksT0FBTyxPQUFPLEtBQ2xCQSxFQUFJLE9BQU8sS0FBSyxLQUNoQkEsRUFBSSxPQUFPLEtBQUssS0FDaEJBLEVBQUksT0FBTyxPQUFPLEtBQ2xCQSxFQUFJLE9BQU8sT0FBTyxNQUNsQkEsRUFBSSxPQUFPLE9BQU8sU0FDbEJBLEVBQUksT0FBTyxPQUFPLE1BQ2xCQSxFQUFJLFFBQVEsS0FBSyxNQUNqQkEsRUFBSSxRQUFRLEtBQUssS0FDakJBLEVBQUksUUFBUSxLQUFLLE1BQ2pCQSxFQUFJLFFBQVEsS0FBSyxTQUNqQkEsRUFBSSxRQUFRLEtBQUssS0FDakJBLEVBQUksUUFBUSxLQUFLLE1BQ2pCQSxFQUFJLFFBQVEsRUFBRSxNQUNkQSxFQUFJLFFBQVEsRUFBRSxLQUNkQSxFQUFJLFFBQVEsRUFBRSxNQUNkQSxFQUFJLFFBQVEsRUFBRSxTQUNkQSxFQUFJLFFBQVEsRUFBRSxLQUNkQSxFQUFJLFFBQVEsRUFBRSxNQUNkQSxFQUFJLFFBQVEsSUFBSSxNQUNoQkEsRUFBSSxRQUFRLElBQUksS0FDaEJBLEVBQUksUUFBUSxJQUFJLE1BQ2hCQSxFQUFJLFFBQVEsSUFBSSxTQUNoQkEsRUFBSSxRQUFRLElBQUksS0FDaEJBLEVBQUksUUFBUSxJQUFJLE1BQ2hCQSxFQUFJLFFBQVEsRUFBRSxNQUNkQSxFQUFJLFFBQVEsRUFBRSxLQUNkQSxFQUFJLFFBQVEsRUFBRSxNQUNkQSxFQUFJLFFBQVEsRUFBRSxTQUNkQSxFQUFJLFFBQVEsRUFBRSxLQUNkQSxFQUFJLFFBQVEsRUFBRSxNQUNkQSxFQUFJLFFBQVEsTUFBTSxNQUNsQkEsRUFBSSxRQUFRLE1BQU0sS0FDbEJBLEVBQUksUUFBUSxNQUFNLE1BQ2xCQSxFQUFJLFFBQVEsTUFBTSxTQUNsQkEsRUFBSSxRQUFRLE1BQU0sS0FDbEJBLEVBQUksUUFBUSxNQUFNLE1BQ2xCQSxFQUFJLFFBQVEsT0FBTyxNQUNuQkEsRUFBSSxRQUFRLE9BQU8sS0FDbkJBLEVBQUksUUFBUSxPQUFPLE1BQ25CQSxFQUFJLFFBQVEsT0FBTyxTQUNuQkEsRUFBSSxRQUFRLE9BQU8sS0FDbkJBLEVBQUksUUFBUSxPQUFPLE1BQ25CQSxFQUFJLFFBQVEsS0FBSyxNQUNqQkEsRUFBSSxRQUFRLEtBQUssS0FDakJBLEVBQUksUUFBUSxLQUFLLE1BQ2pCQSxFQUFJLFFBQVEsS0FBSyxTQUNqQkEsRUFBSSxRQUFRLEtBQUssS0FDakJBLEVBQUksUUFBUSxLQUFLLE1BQ2pCQSxFQUFJLE1BQU0sVUFDVkEsRUFBSSxNQUFNLE1BQ1ZBLEVBQUksTUFBTSxNQUNWQSxFQUFJLE9BQU8sTUFDWEEsRUFBSSxPQUFPLE1BQ1hBLEVBQUksTUFBTSxFQUFFLFFBQ1pBLEVBQUksWUFDSkEsRUFBSSxPQUFPLGFBQ1hBLEVBQUksT0FBTyxTQUNYQSxFQUFJLE9BQU8sTUFDWEEsRUFBSSxLQUFLLEtBQUssUUFDZEEsRUFBSSxLQUFLLEtBQUssVUFDZEEsRUFBSSxLQUFLLEtBQUssU0FDZEEsRUFBSSxLQUFLLEtBQUssUUFDZEEsRUFBSSxLQUFLLEtBQUssYUFDZEEsRUFBSSxLQUFLLEtBQUssWUFDZEEsRUFBSSxLQUFLLE9BQU8sY0FDaEJBLEVBQUksS0FBSyxPQUFPLGNBQ2hCQSxFQUFJLEtBQUssT0FBTyxhQUNoQkEsRUFBSSxLQUFLLE9BQU8sZUFDaEJBLEVBQUksYUFBYSxLQUNqQkEsRUFBSSxPQUFPLFFBQ1hBLEVBQUksT0FBTyxTQUNYQSxFQUFJLE9BQU8sT0FDWEEsRUFBSSxPQUFPLFlBQ1hBLEVBQUksZUFBZSxJQUNuQkEsRUFBSSxlQUFlLEtBQ25CQSxFQUFJLFVBQVUsS0FDZEEsRUFBSSxPQUFPLFFBQ1hBLEVBQUksT0FBTyxLQUNYQSxFQUFJLEtBQUssSUFDVEEsRUFBSSxXQUFXLE9BQ2ZBLEVBQUksTUFBTSxFQUFFLE1BQ1pBLEVBQUksTUFBTSxFQUFFLFFBQ1pBLEVBQUksTUFBTSxFQUFFLE9BQ1pBLEVBQUksZUFBZSxPQUNuQkEsRUFBSSxlQUFlLE1BQ25CQSxFQUFJ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
|