@nurihaus/web-design-system 1.1.2 → 1.1.4

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/index.js CHANGED
@@ -1,1754 +1,6 @@
1
- /******/ var __webpack_modules__ = ({
2
-
3
- /***/ 38:
4
- /***/ ((module, __webpack_exports__, __webpack_require__) => {
5
-
6
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
7
- /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
8
- /* harmony export */ });
9
- /* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(354);
10
- /* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
11
- /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(314);
12
- /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
13
- // Imports
14
-
15
-
16
- var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
17
- // Module
18
- ___CSS_LOADER_EXPORT___.push([module.id, `.avatar {
19
- position: relative;
20
- & div {
21
- position: relative;
22
- display: flex;
23
- align-items: center;
24
- justify-content: center;
25
- overflow: hidden;
26
- }
27
-
28
- border-radius: 50%;
29
-
30
- &:where(.xl) {
31
- width: 124px;
32
- height: 124px;
33
- }
34
-
35
- &:where(.l) {
36
- width: 74px;
37
- height: 74px;
38
- }
39
-
40
- &:where(.m) {
41
- width: 58px;
42
- height: 58px;
43
- }
44
-
45
- &:where(.s) {
46
- width: 40px;
47
- height: 40px;
48
- }
49
-
50
- .avatar-skeleton {
51
- position: absolute;
52
- top: 0;
53
- left: 0;
54
- width: 100%;
55
- height: 100%;
56
- background-color: #e0e0e0;
57
- border-radius: 50%;
58
- width: 100%;
59
- height: 100%;
60
-
61
- .skeleton-animation {
62
- width: 100%;
63
- height: 100%;
64
- background: linear-gradient(
65
- 90deg,
66
- rgba(255, 255, 255, 0) 0%,
67
- rgba(255, 255, 255, 0.4) 50%,
68
- rgba(255, 255, 255, 0) 100%
69
- );
70
- animation: shimmer 1.5s infinite;
71
- }
72
- }
73
- }
74
-
75
- @keyframes shimmer {
76
- 0% {
77
- transform: translateX(-100%);
78
- }
79
- 100% {
80
- transform: translateX(100%);
81
- }
82
- }
83
- `, "",{"version":3,"sources":["webpack://./components/avatar/avatar-style.css"],"names":[],"mappings":"AAAA;EACE,kBAAkB;EAClB;IACE,kBAAkB;IAClB,aAAa;IACb,mBAAmB;IACnB,uBAAuB;IACvB,gBAAgB;EAClB;;EAEA,kBAAkB;;EAElB;IACE,YAAY;IACZ,aAAa;EACf;;EAEA;IACE,WAAW;IACX,YAAY;EACd;;EAEA;IACE,WAAW;IACX,YAAY;EACd;;EAEA;IACE,WAAW;IACX,YAAY;EACd;;EAEA;IACE,kBAAkB;IAClB,MAAM;IACN,OAAO;IACP,WAAW;IACX,YAAY;IACZ,yBAAyB;IACzB,kBAAkB;IAClB,WAAW;IACX,YAAY;;IAEZ;MACE,WAAW;MACX,YAAY;MACZ;;;;;OAKC;MACD,gCAAgC;IAClC;EACF;AACF;;AAEA;EACE;IACE,4BAA4B;EAC9B;EACA;IACE,2BAA2B;EAC7B;AACF","sourcesContent":[".avatar {\n position: relative;\n & div {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n }\n\n border-radius: 50%;\n\n &:where(.xl) {\n width: 124px;\n height: 124px;\n }\n\n &:where(.l) {\n width: 74px;\n height: 74px;\n }\n\n &:where(.m) {\n width: 58px;\n height: 58px;\n }\n\n &:where(.s) {\n width: 40px;\n height: 40px;\n }\n\n .avatar-skeleton {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: #e0e0e0;\n border-radius: 50%;\n width: 100%;\n height: 100%;\n\n .skeleton-animation {\n width: 100%;\n height: 100%;\n background: linear-gradient(\n 90deg,\n rgba(255, 255, 255, 0) 0%,\n rgba(255, 255, 255, 0.4) 50%,\n rgba(255, 255, 255, 0) 100%\n );\n animation: shimmer 1.5s infinite;\n }\n }\n}\n\n@keyframes shimmer {\n 0% {\n transform: translateX(-100%);\n }\n 100% {\n transform: translateX(100%);\n }\n}\n"],"sourceRoot":""}]);
84
- // Exports
85
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
86
-
87
-
88
- /***/ }),
89
-
90
- /***/ 506:
91
- /***/ ((module, __webpack_exports__, __webpack_require__) => {
92
-
93
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
94
- /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
95
- /* harmony export */ });
96
- /* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(354);
97
- /* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
98
- /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(314);
99
- /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
100
- // Imports
101
-
102
-
103
- var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
104
- // Module
105
- ___CSS_LOADER_EXPORT___.push([module.id, `.base-badge {
106
- display: flex;
107
- align-items: center;
108
- justify-content: center;
109
- gap: 4px;
110
-
111
- border-radius: 40px;
112
-
113
- &:where(.l) {
114
- height: 48px;
115
-
116
- font-size: var(--font-size-sm);
117
- line-height: var(--line-height-sm);
118
- font-weight: var(--font-weight-semibold);
119
- }
120
-
121
- &:where(.m) {
122
- height: 40px;
123
-
124
- font-size: var(--font-size-sm);
125
- line-height: var(--line-height-sm);
126
- font-weight: var(--font-weight-semibold);
127
- }
128
-
129
- &:where(.r) {
130
- height: 36px;
131
-
132
- font-size: var(--font-size-sm);
133
- line-height: var(--line-height-sm);
134
- font-weight: var(--font-weight-semibold);
135
- }
136
-
137
- &:where(.s) {
138
- height: 32px;
139
-
140
- font-size: var(--font-size-sm);
141
- line-height: var(--line-height-sm);
142
- font-weight: var(--font-weight-bold);
143
- }
144
-
145
- &:where(.sm) {
146
- height: 28px;
147
-
148
- font-size: var(--font-size-xsm);
149
- line-height: var(--line-height-xsm);
150
- font-weight: var(--font-weight-bold);
151
- }
152
-
153
- &[class*="background-"] {
154
- &.background-black {
155
- background-color: var(--color-primary-black);
156
- }
157
- &.background-white {
158
- background-color: var(--color-primary-white);
159
- }
160
- &.background-grayFa {
161
- background-color: var(--color-primary-gray-fa);
162
- }
163
- &.background-purple39 {
164
- background-color: var(--color-point-purple-39);
165
- }
166
- }
167
-
168
- &[class*="text-"] {
169
- &.text-black {
170
- color: var(--color-primary-black);
171
- }
172
- &.text-white {
173
- color: var(--color-primary-white);
174
- }
175
- &.text-grayFa {
176
- color: var(--color-primary-gray-fa);
177
- }
178
- &.text-purple39 {
179
- color: var(--color-point-purple-39);
180
- }
181
- }
182
-
183
- &[class*="border-"] {
184
- &.border-black {
185
- border: 1px solid var(--color-primary-black);
186
- }
187
- &.border-white {
188
- border: 1px solid var(--color-primary-white);
189
- }
190
- &.border-grayFa {
191
- border: 1px solid var(--color-primary-gray-fa);
192
- }
193
- &.border-purple39 {
194
- border: 1px solid var(--color-point-purple-39);
195
- }
196
- }
197
-
198
- &.icon-text-option {
199
- display: flex;
200
- align-items: center;
201
- justify-content: space-between;
202
-
203
- padding: 0 20px;
204
- }
205
-
206
- &.icon-text-option > span {
207
- display: flex;
208
- align-items: center;
209
- gap: 4px;
210
- }
211
- }
212
- `, "",{"version":3,"sources":["webpack://./components/badge/badge-style.css"],"names":[],"mappings":"AAAA;EACE,aAAa;EACb,mBAAmB;EACnB,uBAAuB;EACvB,QAAQ;;EAER,mBAAmB;;EAEnB;IACE,YAAY;;IAEZ,8BAA8B;IAC9B,kCAAkC;IAClC,wCAAwC;EAC1C;;EAEA;IACE,YAAY;;IAEZ,8BAA8B;IAC9B,kCAAkC;IAClC,wCAAwC;EAC1C;;EAEA;IACE,YAAY;;IAEZ,8BAA8B;IAC9B,kCAAkC;IAClC,wCAAwC;EAC1C;;EAEA;IACE,YAAY;;IAEZ,8BAA8B;IAC9B,kCAAkC;IAClC,oCAAoC;EACtC;;EAEA;IACE,YAAY;;IAEZ,+BAA+B;IAC/B,mCAAmC;IACnC,oCAAoC;EACtC;;EAEA;IACE;MACE,4CAA4C;IAC9C;IACA;MACE,4CAA4C;IAC9C;IACA;MACE,8CAA8C;IAChD;IACA;MACE,8CAA8C;IAChD;EACF;;EAEA;IACE;MACE,iCAAiC;IACnC;IACA;MACE,iCAAiC;IACnC;IACA;MACE,mCAAmC;IACrC;IACA;MACE,mCAAmC;IACrC;EACF;;EAEA;IACE;MACE,4CAA4C;IAC9C;IACA;MACE,4CAA4C;IAC9C;IACA;MACE,8CAA8C;IAChD;IACA;MACE,8CAA8C;IAChD;EACF;;EAEA;IACE,aAAa;IACb,mBAAmB;IACnB,8BAA8B;;IAE9B,eAAe;EACjB;;EAEA;IACE,aAAa;IACb,mBAAmB;IACnB,QAAQ;EACV;AACF","sourcesContent":[".base-badge {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n\n border-radius: 40px;\n\n &:where(.l) {\n height: 48px;\n\n font-size: var(--font-size-sm);\n line-height: var(--line-height-sm);\n font-weight: var(--font-weight-semibold);\n }\n\n &:where(.m) {\n height: 40px;\n\n font-size: var(--font-size-sm);\n line-height: var(--line-height-sm);\n font-weight: var(--font-weight-semibold);\n }\n\n &:where(.r) {\n height: 36px;\n\n font-size: var(--font-size-sm);\n line-height: var(--line-height-sm);\n font-weight: var(--font-weight-semibold);\n }\n\n &:where(.s) {\n height: 32px;\n\n font-size: var(--font-size-sm);\n line-height: var(--line-height-sm);\n font-weight: var(--font-weight-bold);\n }\n\n &:where(.sm) {\n height: 28px;\n\n font-size: var(--font-size-xsm);\n line-height: var(--line-height-xsm);\n font-weight: var(--font-weight-bold);\n }\n\n &[class*=\"background-\"] {\n &.background-black {\n background-color: var(--color-primary-black);\n }\n &.background-white {\n background-color: var(--color-primary-white);\n }\n &.background-grayFa {\n background-color: var(--color-primary-gray-fa);\n }\n &.background-purple39 {\n background-color: var(--color-point-purple-39);\n }\n }\n\n &[class*=\"text-\"] {\n &.text-black {\n color: var(--color-primary-black);\n }\n &.text-white {\n color: var(--color-primary-white);\n }\n &.text-grayFa {\n color: var(--color-primary-gray-fa);\n }\n &.text-purple39 {\n color: var(--color-point-purple-39);\n }\n }\n\n &[class*=\"border-\"] {\n &.border-black {\n border: 1px solid var(--color-primary-black);\n }\n &.border-white {\n border: 1px solid var(--color-primary-white);\n }\n &.border-grayFa {\n border: 1px solid var(--color-primary-gray-fa);\n }\n &.border-purple39 {\n border: 1px solid var(--color-point-purple-39);\n }\n }\n\n &.icon-text-option {\n display: flex;\n align-items: center;\n justify-content: space-between;\n\n padding: 0 20px;\n }\n\n &.icon-text-option > span {\n display: flex;\n align-items: center;\n gap: 4px;\n }\n}\n"],"sourceRoot":""}]);
213
- // Exports
214
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
215
-
216
-
217
- /***/ }),
218
-
219
- /***/ 432:
220
- /***/ ((module, __webpack_exports__, __webpack_require__) => {
221
-
222
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
223
- /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
224
- /* harmony export */ });
225
- /* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(354);
226
- /* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
227
- /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(314);
228
- /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
229
- // Imports
230
-
231
-
232
- var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
233
- // Module
234
- ___CSS_LOADER_EXPORT___.push([module.id, `.base-button {
235
- display: flex;
236
- justify-content: center;
237
- align-items: center;
238
- gap: 10px;
239
- border-radius: 6px;
240
- border: none;
241
- cursor: pointer;
242
- }
243
-
244
- .cta-button {
245
- border-radius: 6px;
246
-
247
- &:where(.primary) {
248
- background-color: var(--color-point-purple-39);
249
- color: var(--color-primary-white);
250
- }
251
- &:where(.secondary) {
252
- background-color: var(--color-point-purple-f4);
253
- color: var(--color-point-purple-39);
254
- }
255
- &:where(.ghost) {
256
- background-color: var(--color-primary-white);
257
- border: 1px solid var(--color-primary-gray-d4);
258
- color: var(--color-point-purple-39);
259
- }
260
- &:where(.white) {
261
- background-color: var(--color-primary-white);
262
- color: var(--color-point-purple-39);
263
- }
264
- &:where(.disabled) {
265
- background-color: var(--color-primary-gray-e4);
266
- color: var(--color-primary-white);
267
- }
268
-
269
- &:where(.xl) {
270
- height: 60px;
271
-
272
- font-size: var(--font-size-lg);
273
- line-height: var(--line-height-lg);
274
- font-weight: var(--font-weight-bold);
275
- }
276
- &:where(.l) {
277
- height: 54px;
278
-
279
- font-size: var(--font-size-base);
280
- line-height: var(--line-height-base);
281
- font-weight: var(--font-weight-bold);
282
- }
283
- &:where(.r) {
284
- height: 50px;
285
-
286
- font-size: var(--font-size-sm);
287
- line-height: var(--line-height-sm);
288
- font-weight: var(--font-weight-semibold);
289
- }
290
- &:where(.m) {
291
- height: 48px;
292
-
293
- font-size: var(--font-size-sm);
294
- line-height: var(--line-height-sm);
295
- font-weight: var(--font-weight-semibold);
296
- }
297
- &:where(.s) {
298
- height: 40px;
299
-
300
- font-size: var(--font-size-xsm);
301
- line-height: var(--line-height-xsm);
302
- font-weight: var(--font-weight-semibold);
303
- }
304
- &:where(.xs) {
305
- height: 30px;
306
-
307
- font-size: var(--font-size-xsm);
308
- line-height: var(--line-height-xsm);
309
- font-weight: var(--font-weight-semibold);
310
- }
311
- }
312
- `, "",{"version":3,"sources":["webpack://./components/button/button-style.css"],"names":[],"mappings":"AAAA;EACE,aAAa;EACb,uBAAuB;EACvB,mBAAmB;EACnB,SAAS;EACT,kBAAkB;EAClB,YAAY;EACZ,eAAe;AACjB;;AAEA;EACE,kBAAkB;;EAElB;IACE,8CAA8C;IAC9C,iCAAiC;EACnC;EACA;IACE,8CAA8C;IAC9C,mCAAmC;EACrC;EACA;IACE,4CAA4C;IAC5C,8CAA8C;IAC9C,mCAAmC;EACrC;EACA;IACE,4CAA4C;IAC5C,mCAAmC;EACrC;EACA;IACE,8CAA8C;IAC9C,iCAAiC;EACnC;;EAEA;IACE,YAAY;;IAEZ,8BAA8B;IAC9B,kCAAkC;IAClC,oCAAoC;EACtC;EACA;IACE,YAAY;;IAEZ,gCAAgC;IAChC,oCAAoC;IACpC,oCAAoC;EACtC;EACA;IACE,YAAY;;IAEZ,8BAA8B;IAC9B,kCAAkC;IAClC,wCAAwC;EAC1C;EACA;IACE,YAAY;;IAEZ,8BAA8B;IAC9B,kCAAkC;IAClC,wCAAwC;EAC1C;EACA;IACE,YAAY;;IAEZ,+BAA+B;IAC/B,mCAAmC;IACnC,wCAAwC;EAC1C;EACA;IACE,YAAY;;IAEZ,+BAA+B;IAC/B,mCAAmC;IACnC,wCAAwC;EAC1C;AACF","sourcesContent":[".base-button {\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 10px;\n border-radius: 6px;\n border: none;\n cursor: pointer;\n}\n\n.cta-button {\n border-radius: 6px;\n\n &:where(.primary) {\n background-color: var(--color-point-purple-39);\n color: var(--color-primary-white);\n }\n &:where(.secondary) {\n background-color: var(--color-point-purple-f4);\n color: var(--color-point-purple-39);\n }\n &:where(.ghost) {\n background-color: var(--color-primary-white);\n border: 1px solid var(--color-primary-gray-d4);\n color: var(--color-point-purple-39);\n }\n &:where(.white) {\n background-color: var(--color-primary-white);\n color: var(--color-point-purple-39);\n }\n &:where(.disabled) {\n background-color: var(--color-primary-gray-e4);\n color: var(--color-primary-white);\n }\n\n &:where(.xl) {\n height: 60px;\n\n font-size: var(--font-size-lg);\n line-height: var(--line-height-lg);\n font-weight: var(--font-weight-bold);\n }\n &:where(.l) {\n height: 54px;\n\n font-size: var(--font-size-base);\n line-height: var(--line-height-base);\n font-weight: var(--font-weight-bold);\n }\n &:where(.r) {\n height: 50px;\n\n font-size: var(--font-size-sm);\n line-height: var(--line-height-sm);\n font-weight: var(--font-weight-semibold);\n }\n &:where(.m) {\n height: 48px;\n\n font-size: var(--font-size-sm);\n line-height: var(--line-height-sm);\n font-weight: var(--font-weight-semibold);\n }\n &:where(.s) {\n height: 40px;\n\n font-size: var(--font-size-xsm);\n line-height: var(--line-height-xsm);\n font-weight: var(--font-weight-semibold);\n }\n &:where(.xs) {\n height: 30px;\n\n font-size: var(--font-size-xsm);\n line-height: var(--line-height-xsm);\n font-weight: var(--font-weight-semibold);\n }\n}\n"],"sourceRoot":""}]);
313
- // Exports
314
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
315
-
316
-
317
- /***/ }),
318
-
319
- /***/ 174:
320
- /***/ ((module, __webpack_exports__, __webpack_require__) => {
321
-
322
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
323
- /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
324
- /* harmony export */ });
325
- /* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(354);
326
- /* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
327
- /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(314);
328
- /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
329
- // Imports
330
-
331
-
332
- var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
333
- // Module
334
- ___CSS_LOADER_EXPORT___.push([module.id, `.component-loading-container {
335
- display: flex;
336
- width: 20px;
337
- height: 20px;
338
- align-items: center;
339
- justify-content: center;
340
- }
341
-
342
- .loading-indicator-ring {
343
- position: relative;
344
- width: 20px;
345
- height: 20px;
346
- }
347
-
348
- .loading-indicator-single-ring {
349
- box-sizing: border-box;
350
- display: block;
351
- position: absolute;
352
- width: 20px;
353
- height: 20px;
354
- border: 3px solid;
355
- border-radius: 50%;
356
- animation: lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;
357
- border-color: var(--color-primary-white) transparent transparent transparent;
358
- }
359
-
360
- .loading-indicator-single-ring:nth-child(1) {
361
- animation-delay: -0.45s;
362
- }
363
-
364
- .loading-indicator-single-ring:nth-child(2) {
365
- animation-delay: -0.3s;
366
- }
367
-
368
- .loading-indicator-single-ring:nth-child(3) {
369
- animation-delay: -0.15s;
370
- }
371
-
372
- .loading-indicator-single-ring:nth-child(4) {
373
- animation-delay: 0s;
374
- }
375
-
376
- @keyframes lds-ring {
377
- 0% {
378
- transform: rotate(0deg);
379
- }
380
- 100% {
381
- transform: rotate(360deg);
382
- }
383
- }
384
- `, "",{"version":3,"sources":["webpack://./components/loading/loading-style.css"],"names":[],"mappings":"AAAA;EACE,aAAa;EACb,WAAW;EACX,YAAY;EACZ,mBAAmB;EACnB,uBAAuB;AACzB;;AAEA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;AACd;;AAEA;EACE,sBAAsB;EACtB,cAAc;EACd,kBAAkB;EAClB,WAAW;EACX,YAAY;EACZ,iBAAiB;EACjB,kBAAkB;EAClB,8DAA8D;EAC9D,4EAA4E;AAC9E;;AAEA;EACE,uBAAuB;AACzB;;AAEA;EACE,sBAAsB;AACxB;;AAEA;EACE,uBAAuB;AACzB;;AAEA;EACE,mBAAmB;AACrB;;AAEA;EACE;IACE,uBAAuB;EACzB;EACA;IACE,yBAAyB;EAC3B;AACF","sourcesContent":[".component-loading-container {\n display: flex;\n width: 20px;\n height: 20px;\n align-items: center;\n justify-content: center;\n}\n\n.loading-indicator-ring {\n position: relative;\n width: 20px;\n height: 20px;\n}\n\n.loading-indicator-single-ring {\n box-sizing: border-box;\n display: block;\n position: absolute;\n width: 20px;\n height: 20px;\n border: 3px solid;\n border-radius: 50%;\n animation: lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;\n border-color: var(--color-primary-white) transparent transparent transparent;\n}\n\n.loading-indicator-single-ring:nth-child(1) {\n animation-delay: -0.45s;\n}\n\n.loading-indicator-single-ring:nth-child(2) {\n animation-delay: -0.3s;\n}\n\n.loading-indicator-single-ring:nth-child(3) {\n animation-delay: -0.15s;\n}\n\n.loading-indicator-single-ring:nth-child(4) {\n animation-delay: 0s;\n}\n\n@keyframes lds-ring {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n"],"sourceRoot":""}]);
385
- // Exports
386
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
387
-
388
-
389
- /***/ }),
390
-
391
- /***/ 406:
392
- /***/ ((module, __webpack_exports__, __webpack_require__) => {
393
-
394
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
395
- /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
396
- /* harmony export */ });
397
- /* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(354);
398
- /* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
399
- /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(314);
400
- /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
401
- // Imports
402
-
403
-
404
- var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
405
- // Module
406
- ___CSS_LOADER_EXPORT___.push([module.id, `.base-table {
407
- .hide {
408
- display: none;
409
- }
410
-
411
- &.table-root {
412
- width: 100%;
413
- border-collapse: collapse;
414
- }
415
-
416
- .table-header {
417
- width: 100%;
418
-
419
- &:where(.center) {
420
- .table-cell {
421
- text-align: center;
422
- }
423
- }
424
- &:where(.start) {
425
- .table-cell {
426
- text-align: left;
427
- }
428
- }
429
- &:where(.end) {
430
- .table-cell {
431
- text-align: right;
432
- }
433
- }
434
- }
435
-
436
- .table-body {
437
- width: 100%;
438
- }
439
-
440
- .table-row {
441
- }
442
-
443
- .table-cell {
444
- padding: 8px;
445
- text-align: center;
446
- vertical-align: middle;
447
- }
448
- }
449
- `, "",{"version":3,"sources":["webpack://./components/table/table-style.css"],"names":[],"mappings":"AAAA;EACE;IACE,aAAa;EACf;;EAEA;IACE,WAAW;IACX,yBAAyB;EAC3B;;EAEA;IACE,WAAW;;IAEX;MACE;QACE,kBAAkB;MACpB;IACF;IACA;MACE;QACE,gBAAgB;MAClB;IACF;IACA;MACE;QACE,iBAAiB;MACnB;IACF;EACF;;EAEA;IACE,WAAW;EACb;;EAEA;EACA;;EAEA;IACE,YAAY;IACZ,kBAAkB;IAClB,sBAAsB;EACxB;AACF","sourcesContent":[".base-table {\n .hide {\n display: none;\n }\n\n &.table-root {\n width: 100%;\n border-collapse: collapse;\n }\n\n .table-header {\n width: 100%;\n\n &:where(.center) {\n .table-cell {\n text-align: center;\n }\n }\n &:where(.start) {\n .table-cell {\n text-align: left;\n }\n }\n &:where(.end) {\n .table-cell {\n text-align: right;\n }\n }\n }\n\n .table-body {\n width: 100%;\n }\n\n .table-row {\n }\n\n .table-cell {\n padding: 8px;\n text-align: center;\n vertical-align: middle;\n }\n}\n"],"sourceRoot":""}]);
450
- // Exports
451
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
452
-
453
-
454
- /***/ }),
455
-
456
- /***/ 890:
457
- /***/ ((module, __webpack_exports__, __webpack_require__) => {
458
-
459
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
460
- /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
461
- /* harmony export */ });
462
- /* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(354);
463
- /* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
464
- /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(314);
465
- /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
466
- // Imports
467
-
468
-
469
- var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
470
- // Module
471
- ___CSS_LOADER_EXPORT___.push([module.id, `.nuri-theme {
472
- --color-primary-black: #000000;
473
- --color-primary-white: #ffffff;
474
- --color-primary-gray-fa: #fafafa;
475
- --color-primary-gray-f4: #f4f4f5;
476
- --color-primary-gray-e4: #e4e4e7;
477
- --color-primary-gray-d4: #d4d4d8;
478
- --color-primary-gray-a1: #a1a1aa;
479
- --color-primary-gray-71: #71717a;
480
- --color-primary-gray-52: #52525b;
481
- --color-primary-gray-3f: #3f3f46;
482
- --color-primary-gray-27: #27272a;
483
- --color-primary-gray-18: #18181b;
484
-
485
- --color-point-purple-39: #391d5d;
486
- --color-point-purple-4c: #4c277c;
487
- --color-point-purple-dd: #ddd1f0;
488
- --color-point-purple-e9: #e9e0f5;
489
- --color-point-purple-f4: #f4effa;
490
- --color-point-purple-41: #4c1d88;
491
- --color-point-purple-95: #957eb4;
492
-
493
- --color-accent-red-df: #df535c;
494
- --color-accent-magenta-b0: #b02e4c;
495
- --color-accent-green-28: #289a3a;
496
-
497
- --color-etc-skeleton-e4: #e4e4e7;
498
- --color-etc-skeleton-f7: #f7f7f8;
499
- --color-etc-skeleton-ff: #ffffff;
500
-
501
- --color-etc-hover-ee: #eeeeee;
502
- }
503
- `, "",{"version":3,"sources":["webpack://./styles/token/color.css"],"names":[],"mappings":"AAAA;EACE,8BAA8B;EAC9B,8BAA8B;EAC9B,gCAAgC;EAChC,gCAAgC;EAChC,gCAAgC;EAChC,gCAAgC;EAChC,gCAAgC;EAChC,gCAAgC;EAChC,gCAAgC;EAChC,gCAAgC;EAChC,gCAAgC;EAChC,gCAAgC;;EAEhC,gCAAgC;EAChC,gCAAgC;EAChC,gCAAgC;EAChC,gCAAgC;EAChC,gCAAgC;EAChC,gCAAgC;EAChC,gCAAgC;;EAEhC,8BAA8B;EAC9B,kCAAkC;EAClC,gCAAgC;;EAEhC,gCAAgC;EAChC,gCAAgC;EAChC,gCAAgC;;EAEhC,6BAA6B;AAC/B","sourcesContent":[".nuri-theme {\n --color-primary-black: #000000;\n --color-primary-white: #ffffff;\n --color-primary-gray-fa: #fafafa;\n --color-primary-gray-f4: #f4f4f5;\n --color-primary-gray-e4: #e4e4e7;\n --color-primary-gray-d4: #d4d4d8;\n --color-primary-gray-a1: #a1a1aa;\n --color-primary-gray-71: #71717a;\n --color-primary-gray-52: #52525b;\n --color-primary-gray-3f: #3f3f46;\n --color-primary-gray-27: #27272a;\n --color-primary-gray-18: #18181b;\n\n --color-point-purple-39: #391d5d;\n --color-point-purple-4c: #4c277c;\n --color-point-purple-dd: #ddd1f0;\n --color-point-purple-e9: #e9e0f5;\n --color-point-purple-f4: #f4effa;\n --color-point-purple-41: #4c1d88;\n --color-point-purple-95: #957eb4;\n\n --color-accent-red-df: #df535c;\n --color-accent-magenta-b0: #b02e4c;\n --color-accent-green-28: #289a3a;\n\n --color-etc-skeleton-e4: #e4e4e7;\n --color-etc-skeleton-f7: #f7f7f8;\n --color-etc-skeleton-ff: #ffffff;\n\n --color-etc-hover-ee: #eeeeee;\n}\n"],"sourceRoot":""}]);
504
- // Exports
505
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
506
-
507
-
508
- /***/ }),
509
-
510
- /***/ 476:
511
- /***/ ((module, __webpack_exports__, __webpack_require__) => {
512
-
513
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
514
- /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
515
- /* harmony export */ });
516
- /* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(354);
517
- /* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
518
- /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(314);
519
- /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
520
- // Imports
521
-
522
-
523
- var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
524
- // Module
525
- ___CSS_LOADER_EXPORT___.push([module.id, `.nuri-theme {
526
- --font-size-xsm: 12px;
527
- --font-size-sm: 14px;
528
- --font-size-base: 16px;
529
- --font-size-lg: 18px;
530
- --font-size-xl: 20px;
531
- --font-size-2xl: 24px;
532
- --font-size-3xl: 30px;
533
- --font-size-4xl: 36px;
534
- --font-size-5xl: 48px;
535
- --font-size-6xl: 60px;
536
-
537
- --line-height-xsm: 18px;
538
- --line-height-sm: 18px;
539
- --line-height-base: 22px;
540
- --line-height-lg: 24px;
541
- --line-height-xl: 28px;
542
- --line-height-2xl: 32px;
543
- --line-height-3xl: 36px;
544
- --line-height-4xl: 43px;
545
- --line-height-5xl: 66px;
546
- --line-height-6xl: 82px;
547
-
548
- --font-weight-regular: 400;
549
- --font-weight-medium: 500;
550
- --font-weight-semibold: 600;
551
- --font-weight-bold: 700;
552
- --font-weight-extrabold: 800;
553
- }
554
- `, "",{"version":3,"sources":["webpack://./styles/token/font.css"],"names":[],"mappings":"AAAA;EACE,qBAAqB;EACrB,oBAAoB;EACpB,sBAAsB;EACtB,oBAAoB;EACpB,oBAAoB;EACpB,qBAAqB;EACrB,qBAAqB;EACrB,qBAAqB;EACrB,qBAAqB;EACrB,qBAAqB;;EAErB,uBAAuB;EACvB,sBAAsB;EACtB,wBAAwB;EACxB,sBAAsB;EACtB,sBAAsB;EACtB,uBAAuB;EACvB,uBAAuB;EACvB,uBAAuB;EACvB,uBAAuB;EACvB,uBAAuB;;EAEvB,0BAA0B;EAC1B,yBAAyB;EACzB,2BAA2B;EAC3B,uBAAuB;EACvB,4BAA4B;AAC9B","sourcesContent":[".nuri-theme {\n --font-size-xsm: 12px;\n --font-size-sm: 14px;\n --font-size-base: 16px;\n --font-size-lg: 18px;\n --font-size-xl: 20px;\n --font-size-2xl: 24px;\n --font-size-3xl: 30px;\n --font-size-4xl: 36px;\n --font-size-5xl: 48px;\n --font-size-6xl: 60px;\n\n --line-height-xsm: 18px;\n --line-height-sm: 18px;\n --line-height-base: 22px;\n --line-height-lg: 24px;\n --line-height-xl: 28px;\n --line-height-2xl: 32px;\n --line-height-3xl: 36px;\n --line-height-4xl: 43px;\n --line-height-5xl: 66px;\n --line-height-6xl: 82px;\n\n --font-weight-regular: 400;\n --font-weight-medium: 500;\n --font-weight-semibold: 600;\n --font-weight-bold: 700;\n --font-weight-extrabold: 800;\n}\n"],"sourceRoot":""}]);
555
- // Exports
556
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
557
-
558
-
559
- /***/ }),
560
-
561
- /***/ 314:
562
- /***/ ((module) => {
563
-
564
-
565
-
566
- /*
567
- MIT License http://www.opensource.org/licenses/mit-license.php
568
- Author Tobias Koppers @sokra
569
- */
570
- module.exports = function (cssWithMappingToString) {
571
- var list = [];
572
-
573
- // return the list of modules as css string
574
- list.toString = function toString() {
575
- return this.map(function (item) {
576
- var content = "";
577
- var needLayer = typeof item[5] !== "undefined";
578
- if (item[4]) {
579
- content += "@supports (".concat(item[4], ") {");
580
- }
581
- if (item[2]) {
582
- content += "@media ".concat(item[2], " {");
583
- }
584
- if (needLayer) {
585
- content += "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {");
586
- }
587
- content += cssWithMappingToString(item);
588
- if (needLayer) {
589
- content += "}";
590
- }
591
- if (item[2]) {
592
- content += "}";
593
- }
594
- if (item[4]) {
595
- content += "}";
596
- }
597
- return content;
598
- }).join("");
599
- };
600
-
601
- // import a list of modules into the list
602
- list.i = function i(modules, media, dedupe, supports, layer) {
603
- if (typeof modules === "string") {
604
- modules = [[null, modules, undefined]];
605
- }
606
- var alreadyImportedModules = {};
607
- if (dedupe) {
608
- for (var k = 0; k < this.length; k++) {
609
- var id = this[k][0];
610
- if (id != null) {
611
- alreadyImportedModules[id] = true;
612
- }
613
- }
614
- }
615
- for (var _k = 0; _k < modules.length; _k++) {
616
- var item = [].concat(modules[_k]);
617
- if (dedupe && alreadyImportedModules[item[0]]) {
618
- continue;
619
- }
620
- if (typeof layer !== "undefined") {
621
- if (typeof item[5] === "undefined") {
622
- item[5] = layer;
623
- } else {
624
- item[1] = "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {").concat(item[1], "}");
625
- item[5] = layer;
626
- }
627
- }
628
- if (media) {
629
- if (!item[2]) {
630
- item[2] = media;
631
- } else {
632
- item[1] = "@media ".concat(item[2], " {").concat(item[1], "}");
633
- item[2] = media;
634
- }
635
- }
636
- if (supports) {
637
- if (!item[4]) {
638
- item[4] = "".concat(supports);
639
- } else {
640
- item[1] = "@supports (".concat(item[4], ") {").concat(item[1], "}");
641
- item[4] = supports;
642
- }
643
- }
644
- list.push(item);
645
- }
646
- };
647
- return list;
648
- };
649
-
650
- /***/ }),
651
-
652
- /***/ 354:
653
- /***/ ((module) => {
654
-
655
-
656
-
657
- module.exports = function (item) {
658
- var content = item[1];
659
- var cssMapping = item[3];
660
- if (!cssMapping) {
661
- return content;
662
- }
663
- if (typeof btoa === "function") {
664
- var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));
665
- var data = "sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(base64);
666
- var sourceMapping = "/*# ".concat(data, " */");
667
- return [content].concat([sourceMapping]).join("\n");
668
- }
669
- return [content].join("\n");
670
- };
671
-
672
- /***/ }),
673
-
674
- /***/ 20:
675
- /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
676
-
677
- /**
678
- * @license React
679
- * react-jsx-runtime.production.min.js
680
- *
681
- * Copyright (c) Facebook, Inc. and its affiliates.
682
- *
683
- * This source code is licensed under the MIT license found in the
684
- * LICENSE file in the root directory of this source tree.
685
- */
686
- var f=__webpack_require__(540),k=Symbol.for("react.element"),l=Symbol.for("react.fragment"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};
687
- function q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=""+g);void 0!==a.key&&(e=""+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;
688
-
689
-
690
- /***/ }),
691
-
692
- /***/ 287:
693
- /***/ ((__unused_webpack_module, exports) => {
694
-
695
- /**
696
- * @license React
697
- * react.production.min.js
698
- *
699
- * Copyright (c) Facebook, Inc. and its affiliates.
700
- *
701
- * This source code is licensed under the MIT license found in the
702
- * LICENSE file in the root directory of this source tree.
703
- */
704
- var l=Symbol.for("react.element"),n=Symbol.for("react.portal"),p=Symbol.for("react.fragment"),q=Symbol.for("react.strict_mode"),r=Symbol.for("react.profiler"),t=Symbol.for("react.provider"),u=Symbol.for("react.context"),v=Symbol.for("react.forward_ref"),w=Symbol.for("react.suspense"),x=Symbol.for("react.memo"),y=Symbol.for("react.lazy"),z=Symbol.iterator;function A(a){if(null===a||"object"!==typeof a)return null;a=z&&a[z]||a["@@iterator"];return"function"===typeof a?a:null}
705
- var B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};
706
- E.prototype.setState=function(a,b){if("object"!==typeof a&&"function"!==typeof a&&null!=a)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,a,b,"setState")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,"forceUpdate")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;
707
- H.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};
708
- function M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=""+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1<g){for(var f=Array(g),m=0;m<g;m++)f[m]=arguments[m+2];c.children=f}if(a&&a.defaultProps)for(d in g=a.defaultProps,g)void 0===c[d]&&(c[d]=g[d]);return{$$typeof:l,type:a,key:k,ref:h,props:c,_owner:K.current}}
709
- function N(a,b){return{$$typeof:l,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return"object"===typeof a&&null!==a&&a.$$typeof===l}function escape(a){var b={"=":"=0",":":"=2"};return"$"+a.replace(/[=:]/g,function(a){return b[a]})}var P=/\/+/g;function Q(a,b){return"object"===typeof a&&null!==a&&null!=a.key?escape(""+a.key):b.toString(36)}
710
- function R(a,b,e,d,c){var k=typeof a;if("undefined"===k||"boolean"===k)a=null;var h=!1;if(null===a)h=!0;else switch(k){case "string":case "number":h=!0;break;case "object":switch(a.$$typeof){case l:case n:h=!0}}if(h)return h=a,c=c(h),a=""===d?"."+Q(h,0):d,I(c)?(e="",null!=a&&(e=a.replace(P,"$&/")+"/"),R(c,b,e,"",function(a){return a})):null!=c&&(O(c)&&(c=N(c,e+(!c.key||h&&h.key===c.key?"":(""+c.key).replace(P,"$&/")+"/")+a)),b.push(c)),1;h=0;d=""===d?".":d+":";if(I(a))for(var g=0;g<a.length;g++){k=
711
- a[g];var f=d+Q(k,g);h+=R(k,b,e,f,c)}else if(f=A(a),"function"===typeof f)for(a=f.call(a),g=0;!(k=a.next()).done;)k=k.value,f=d+Q(k,g++),h+=R(k,b,e,f,c);else if("object"===k)throw b=String(a),Error("Objects are not valid as a React child (found: "+("[object Object]"===b?"object with keys {"+Object.keys(a).join(", ")+"}":b)+"). If you meant to render a collection of children, use an array instead.");return h}
712
- function S(a,b,e){if(null==a)return a;var d=[],c=0;R(a,d,"","",function(a){return b.call(e,a,c++)});return d}function T(a){if(-1===a._status){var b=a._result;b=b();b.then(function(b){if(0===a._status||-1===a._status)a._status=1,a._result=b},function(b){if(0===a._status||-1===a._status)a._status=2,a._result=b});-1===a._status&&(a._status=0,a._result=b)}if(1===a._status)return a._result.default;throw a._result;}
713
- var U={current:null},V={transition:null},W={ReactCurrentDispatcher:U,ReactCurrentBatchConfig:V,ReactCurrentOwner:K};function X(){throw Error("act(...) is not supported in production builds of React.");}
714
- exports.Children={map:S,forEach:function(a,b,e){S(a,function(){b.apply(this,arguments)},e)},count:function(a){var b=0;S(a,function(){b++});return b},toArray:function(a){return S(a,function(a){return a})||[]},only:function(a){if(!O(a))throw Error("React.Children.only expected to receive a single React element child.");return a}};exports.Component=E;exports.Fragment=p;exports.Profiler=r;exports.PureComponent=G;exports.StrictMode=q;exports.Suspense=w;
715
- exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=W;exports.act=X;
716
- exports.cloneElement=function(a,b,e){if(null===a||void 0===a)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+a+".");var d=C({},a.props),c=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=K.current);void 0!==b.key&&(c=""+b.key);if(a.type&&a.type.defaultProps)var g=a.type.defaultProps;for(f in b)J.call(b,f)&&!L.hasOwnProperty(f)&&(d[f]=void 0===b[f]&&void 0!==g?g[f]:b[f])}var f=arguments.length-2;if(1===f)d.children=e;else if(1<f){g=Array(f);
717
- for(var m=0;m<f;m++)g[m]=arguments[m+2];d.children=g}return{$$typeof:l,type:a.type,key:c,ref:k,props:d,_owner:h}};exports.createContext=function(a){a={$$typeof:u,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};a.Provider={$$typeof:t,_context:a};return a.Consumer=a};exports.createElement=M;exports.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};
718
- exports.forwardRef=function(a){return{$$typeof:v,render:a}};exports.isValidElement=O;exports.lazy=function(a){return{$$typeof:y,_payload:{_status:-1,_result:a},_init:T}};exports.memo=function(a,b){return{$$typeof:x,type:a,compare:void 0===b?null:b}};exports.startTransition=function(a){var b=V.transition;V.transition={};try{a()}finally{V.transition=b}};exports.unstable_act=X;exports.useCallback=function(a,b){return U.current.useCallback(a,b)};exports.useContext=function(a){return U.current.useContext(a)};
719
- exports.useDebugValue=function(){};exports.useDeferredValue=function(a){return U.current.useDeferredValue(a)};exports.useEffect=function(a,b){return U.current.useEffect(a,b)};exports.useId=function(){return U.current.useId()};exports.useImperativeHandle=function(a,b,e){return U.current.useImperativeHandle(a,b,e)};exports.useInsertionEffect=function(a,b){return U.current.useInsertionEffect(a,b)};exports.useLayoutEffect=function(a,b){return U.current.useLayoutEffect(a,b)};
720
- exports.useMemo=function(a,b){return U.current.useMemo(a,b)};exports.useReducer=function(a,b,e){return U.current.useReducer(a,b,e)};exports.useRef=function(a){return U.current.useRef(a)};exports.useState=function(a){return U.current.useState(a)};exports.useSyncExternalStore=function(a,b,e){return U.current.useSyncExternalStore(a,b,e)};exports.useTransition=function(){return U.current.useTransition()};exports.version="18.3.1";
721
-
722
-
723
- /***/ }),
724
-
725
- /***/ 540:
726
- /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
727
-
728
-
729
-
730
- if (true) {
731
- module.exports = __webpack_require__(287);
732
- } else {}
733
-
734
-
735
- /***/ }),
736
-
737
- /***/ 848:
738
- /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
739
-
740
-
741
-
742
- if (true) {
743
- module.exports = __webpack_require__(20);
744
- } else {}
745
-
746
-
747
- /***/ }),
748
-
749
- /***/ 72:
750
- /***/ ((module) => {
751
-
752
-
753
-
754
- var stylesInDOM = [];
755
- function getIndexByIdentifier(identifier) {
756
- var result = -1;
757
- for (var i = 0; i < stylesInDOM.length; i++) {
758
- if (stylesInDOM[i].identifier === identifier) {
759
- result = i;
760
- break;
761
- }
762
- }
763
- return result;
764
- }
765
- function modulesToDom(list, options) {
766
- var idCountMap = {};
767
- var identifiers = [];
768
- for (var i = 0; i < list.length; i++) {
769
- var item = list[i];
770
- var id = options.base ? item[0] + options.base : item[0];
771
- var count = idCountMap[id] || 0;
772
- var identifier = "".concat(id, " ").concat(count);
773
- idCountMap[id] = count + 1;
774
- var indexByIdentifier = getIndexByIdentifier(identifier);
775
- var obj = {
776
- css: item[1],
777
- media: item[2],
778
- sourceMap: item[3],
779
- supports: item[4],
780
- layer: item[5]
781
- };
782
- if (indexByIdentifier !== -1) {
783
- stylesInDOM[indexByIdentifier].references++;
784
- stylesInDOM[indexByIdentifier].updater(obj);
785
- } else {
786
- var updater = addElementStyle(obj, options);
787
- options.byIndex = i;
788
- stylesInDOM.splice(i, 0, {
789
- identifier: identifier,
790
- updater: updater,
791
- references: 1
792
- });
793
- }
794
- identifiers.push(identifier);
795
- }
796
- return identifiers;
797
- }
798
- function addElementStyle(obj, options) {
799
- var api = options.domAPI(options);
800
- api.update(obj);
801
- var updater = function updater(newObj) {
802
- if (newObj) {
803
- if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {
804
- return;
805
- }
806
- api.update(obj = newObj);
807
- } else {
808
- api.remove();
809
- }
810
- };
811
- return updater;
812
- }
813
- module.exports = function (list, options) {
814
- options = options || {};
815
- list = list || [];
816
- var lastIdentifiers = modulesToDom(list, options);
817
- return function update(newList) {
818
- newList = newList || [];
819
- for (var i = 0; i < lastIdentifiers.length; i++) {
820
- var identifier = lastIdentifiers[i];
821
- var index = getIndexByIdentifier(identifier);
822
- stylesInDOM[index].references--;
823
- }
824
- var newLastIdentifiers = modulesToDom(newList, options);
825
- for (var _i = 0; _i < lastIdentifiers.length; _i++) {
826
- var _identifier = lastIdentifiers[_i];
827
- var _index = getIndexByIdentifier(_identifier);
828
- if (stylesInDOM[_index].references === 0) {
829
- stylesInDOM[_index].updater();
830
- stylesInDOM.splice(_index, 1);
831
- }
832
- }
833
- lastIdentifiers = newLastIdentifiers;
834
- };
835
- };
836
-
837
- /***/ }),
838
-
839
- /***/ 659:
840
- /***/ ((module) => {
841
-
842
-
843
-
844
- var memo = {};
845
-
846
- /* istanbul ignore next */
847
- function getTarget(target) {
848
- if (typeof memo[target] === "undefined") {
849
- var styleTarget = document.querySelector(target);
850
-
851
- // Special case to return head of iframe instead of iframe itself
852
- if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {
853
- try {
854
- // This will throw an exception if access to iframe is blocked
855
- // due to cross-origin restrictions
856
- styleTarget = styleTarget.contentDocument.head;
857
- } catch (e) {
858
- // istanbul ignore next
859
- styleTarget = null;
860
- }
861
- }
862
- memo[target] = styleTarget;
863
- }
864
- return memo[target];
865
- }
866
-
867
- /* istanbul ignore next */
868
- function insertBySelector(insert, style) {
869
- var target = getTarget(insert);
870
- if (!target) {
871
- throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");
872
- }
873
- target.appendChild(style);
874
- }
875
- module.exports = insertBySelector;
876
-
877
- /***/ }),
878
-
879
- /***/ 159:
880
- /***/ ((module) => {
881
-
882
-
883
-
884
- /* istanbul ignore next */
885
- function insertStyleElement(options) {
886
- var element = document.createElement("style");
887
- options.setAttributes(element, options.attributes);
888
- options.insert(element, options.options);
889
- return element;
890
- }
891
- module.exports = insertStyleElement;
892
-
893
- /***/ }),
894
-
895
- /***/ 56:
896
- /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
897
-
898
-
899
-
900
- /* istanbul ignore next */
901
- function setAttributesWithoutAttributes(styleElement) {
902
- var nonce = true ? __webpack_require__.nc : 0;
903
- if (nonce) {
904
- styleElement.setAttribute("nonce", nonce);
905
- }
906
- }
907
- module.exports = setAttributesWithoutAttributes;
908
-
909
- /***/ }),
910
-
911
- /***/ 825:
912
- /***/ ((module) => {
913
-
914
-
915
-
916
- /* istanbul ignore next */
917
- function apply(styleElement, options, obj) {
918
- var css = "";
919
- if (obj.supports) {
920
- css += "@supports (".concat(obj.supports, ") {");
921
- }
922
- if (obj.media) {
923
- css += "@media ".concat(obj.media, " {");
924
- }
925
- var needLayer = typeof obj.layer !== "undefined";
926
- if (needLayer) {
927
- css += "@layer".concat(obj.layer.length > 0 ? " ".concat(obj.layer) : "", " {");
928
- }
929
- css += obj.css;
930
- if (needLayer) {
931
- css += "}";
932
- }
933
- if (obj.media) {
934
- css += "}";
935
- }
936
- if (obj.supports) {
937
- css += "}";
938
- }
939
- var sourceMap = obj.sourceMap;
940
- if (sourceMap && typeof btoa !== "undefined") {
941
- css += "\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), " */");
942
- }
943
-
944
- // For old IE
945
- /* istanbul ignore if */
946
- options.styleTagTransform(css, styleElement, options.options);
947
- }
948
- function removeStyleElement(styleElement) {
949
- // istanbul ignore if
950
- if (styleElement.parentNode === null) {
951
- return false;
952
- }
953
- styleElement.parentNode.removeChild(styleElement);
954
- }
955
-
956
- /* istanbul ignore next */
957
- function domAPI(options) {
958
- if (typeof document === "undefined") {
959
- return {
960
- update: function update() {},
961
- remove: function remove() {}
962
- };
963
- }
964
- var styleElement = options.insertStyleElement(options);
965
- return {
966
- update: function update(obj) {
967
- apply(styleElement, options, obj);
968
- },
969
- remove: function remove() {
970
- removeStyleElement(styleElement);
971
- }
972
- };
973
- }
974
- module.exports = domAPI;
975
-
976
- /***/ }),
977
-
978
- /***/ 113:
979
- /***/ ((module) => {
980
-
981
-
982
-
983
- /* istanbul ignore next */
984
- function styleTagTransform(css, styleElement) {
985
- if (styleElement.styleSheet) {
986
- styleElement.styleSheet.cssText = css;
987
- } else {
988
- while (styleElement.firstChild) {
989
- styleElement.removeChild(styleElement.firstChild);
990
- }
991
- styleElement.appendChild(document.createTextNode(css));
992
- }
993
- }
994
- module.exports = styleTagTransform;
995
-
996
- /***/ })
997
-
998
- /******/ });
999
- /************************************************************************/
1000
- /******/ // The module cache
1001
- /******/ var __webpack_module_cache__ = {};
1002
- /******/
1003
- /******/ // The require function
1004
- /******/ function __webpack_require__(moduleId) {
1005
- /******/ // Check if module is in cache
1006
- /******/ var cachedModule = __webpack_module_cache__[moduleId];
1007
- /******/ if (cachedModule !== undefined) {
1008
- /******/ return cachedModule.exports;
1009
- /******/ }
1010
- /******/ // Create a new module (and put it into the cache)
1011
- /******/ var module = __webpack_module_cache__[moduleId] = {
1012
- /******/ id: moduleId,
1013
- /******/ // no module.loaded needed
1014
- /******/ exports: {}
1015
- /******/ };
1016
- /******/
1017
- /******/ // Execute the module function
1018
- /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
1019
- /******/
1020
- /******/ // Return the exports of the module
1021
- /******/ return module.exports;
1022
- /******/ }
1023
- /******/
1024
- /************************************************************************/
1025
- /******/ /* webpack/runtime/compat get default export */
1026
- /******/ (() => {
1027
- /******/ // getDefaultExport function for compatibility with non-harmony modules
1028
- /******/ __webpack_require__.n = (module) => {
1029
- /******/ var getter = module && module.__esModule ?
1030
- /******/ () => (module['default']) :
1031
- /******/ () => (module);
1032
- /******/ __webpack_require__.d(getter, { a: getter });
1033
- /******/ return getter;
1034
- /******/ };
1035
- /******/ })();
1036
- /******/
1037
- /******/ /* webpack/runtime/define property getters */
1038
- /******/ (() => {
1039
- /******/ // define getter functions for harmony exports
1040
- /******/ __webpack_require__.d = (exports, definition) => {
1041
- /******/ for(var key in definition) {
1042
- /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
1043
- /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
1044
- /******/ }
1045
- /******/ }
1046
- /******/ };
1047
- /******/ })();
1048
- /******/
1049
- /******/ /* webpack/runtime/hasOwnProperty shorthand */
1050
- /******/ (() => {
1051
- /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
1052
- /******/ })();
1053
- /******/
1054
- /******/ /* webpack/runtime/nonce */
1055
- /******/ (() => {
1056
- /******/ __webpack_require__.nc = undefined;
1057
- /******/ })();
1058
- /******/
1059
- /************************************************************************/
1060
- var __webpack_exports__ = {};
1061
-
1062
- // EXPORTS
1063
- __webpack_require__.d(__webpack_exports__, {
1064
- eu: () => (/* reexport */ avatar),
1065
- $J: () => (/* reexport */ cta_button),
1066
- bQ: () => (/* reexport */ data_table),
1067
- c: () => (/* reexport */ icon_text_badge),
1068
- x_: () => (/* reexport */ icon_text_option_badge),
1069
- zw: () => (/* reexport */ option_badge)
1070
- });
1071
-
1072
- // EXTERNAL MODULE: ./node_modules/react/jsx-runtime.js
1073
- var jsx_runtime = __webpack_require__(848);
1074
- // EXTERNAL MODULE: ./node_modules/react/index.js
1075
- var react = __webpack_require__(540);
1076
- // EXTERNAL MODULE: ./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js
1077
- var injectStylesIntoStyleTag = __webpack_require__(72);
1078
- var injectStylesIntoStyleTag_default = /*#__PURE__*/__webpack_require__.n(injectStylesIntoStyleTag);
1079
- // EXTERNAL MODULE: ./node_modules/style-loader/dist/runtime/styleDomAPI.js
1080
- var styleDomAPI = __webpack_require__(825);
1081
- var styleDomAPI_default = /*#__PURE__*/__webpack_require__.n(styleDomAPI);
1082
- // EXTERNAL MODULE: ./node_modules/style-loader/dist/runtime/insertBySelector.js
1083
- var insertBySelector = __webpack_require__(659);
1084
- var insertBySelector_default = /*#__PURE__*/__webpack_require__.n(insertBySelector);
1085
- // EXTERNAL MODULE: ./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js
1086
- var setAttributesWithoutAttributes = __webpack_require__(56);
1087
- var setAttributesWithoutAttributes_default = /*#__PURE__*/__webpack_require__.n(setAttributesWithoutAttributes);
1088
- // EXTERNAL MODULE: ./node_modules/style-loader/dist/runtime/insertStyleElement.js
1089
- var insertStyleElement = __webpack_require__(159);
1090
- var insertStyleElement_default = /*#__PURE__*/__webpack_require__.n(insertStyleElement);
1091
- // EXTERNAL MODULE: ./node_modules/style-loader/dist/runtime/styleTagTransform.js
1092
- var styleTagTransform = __webpack_require__(113);
1093
- var styleTagTransform_default = /*#__PURE__*/__webpack_require__.n(styleTagTransform);
1094
- // EXTERNAL MODULE: ./node_modules/css-loader/dist/cjs.js!./components/avatar/avatar-style.css
1095
- var avatar_style = __webpack_require__(38);
1096
- ;// ./components/avatar/avatar-style.css
1097
-
1098
-
1099
-
1100
-
1101
-
1102
-
1103
-
1104
-
1105
-
1106
-
1107
-
1108
- var options = {};
1109
-
1110
- options.styleTagTransform = (styleTagTransform_default());
1111
- options.setAttributes = (setAttributesWithoutAttributes_default());
1112
- options.insert = insertBySelector_default().bind(null, "head");
1113
- options.domAPI = (styleDomAPI_default());
1114
- options.insertStyleElement = (insertStyleElement_default());
1115
-
1116
- var update = injectStylesIntoStyleTag_default()(avatar_style/* default */.A, options);
1117
-
1118
-
1119
-
1120
-
1121
- /* harmony default export */ const avatar_avatar_style = (avatar_style/* default */.A && avatar_style/* default */.A.locals ? avatar_style/* default */.A.locals : undefined);
1122
-
1123
- ;// ./components/core/composer/index.tsx
1124
- var __assign = undefined && undefined.__assign || function () {
1125
- __assign = Object.assign || function (t) {
1126
- for (var s, i = 1, n = arguments.length; i < n; i++) {
1127
- s = arguments[i];
1128
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
1129
- }
1130
- return t;
1131
- };
1132
- return __assign.apply(this, arguments);
1133
- };
1134
- var __rest = undefined && undefined.__rest || function (s, e) {
1135
- var t = {};
1136
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
1137
- if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
1138
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
1139
- }
1140
- return t;
1141
- };
1142
-
1143
- function composeRefs() {
1144
- var refs = [];
1145
- for (var _i = 0; _i < arguments.length; _i++) {
1146
- refs[_i] = arguments[_i];
1147
- }
1148
- return function (node) {
1149
- refs.forEach(function (ref) {
1150
- if (ref) {
1151
- if (typeof ref === "function") {
1152
- ref(node);
1153
- } else {
1154
- ref.current = node;
1155
- }
1156
- }
1157
- });
1158
- };
1159
- }
1160
- var Composer = /*#__PURE__*/(0,react.forwardRef)(function (_a, ref) {
1161
- var children = _a.children,
1162
- composerProps = __rest(_a, ["children"]);
1163
- var childArray = react.Children.toArray(children);
1164
- if (childArray.length > 1) {
1165
- throw new Error("Composer can only have one child");
1166
- }
1167
- var isValidChild = /*#__PURE__*/(0,react.isValidElement)(childArray[0]);
1168
- if (!isValidChild) {
1169
- throw new Error("child should be React node!");
1170
- }
1171
- var child = childArray[0];
1172
- var childRef = getElementRef(child);
1173
- var mergedProps = mergeProps(composerProps, child.props);
1174
- return /*#__PURE__*/(0,react.cloneElement)(child, __assign(__assign({}, mergedProps), {
1175
- ref: ref ? composeRefs(ref, childRef) : childRef
1176
- }));
1177
- });
1178
- Composer.displayName = "Composer";
1179
- function mergeProps(composerProps, childProps) {
1180
- var overrideProps = __assign({}, childProps);
1181
- var _loop_1 = function _loop_1(propName) {
1182
- var composerPropValue = composerProps[propName];
1183
- var childPropValue = childProps[propName];
1184
- var isHandler = /^on[A-Z]/.test(propName);
1185
- if (isHandler) {
1186
- if (composerPropValue && childPropValue) {
1187
- overrideProps[propName] = function () {
1188
- var args = [];
1189
- for (var _i = 0; _i < arguments.length; _i++) {
1190
- args[_i] = arguments[_i];
1191
- }
1192
- childPropValue.apply(void 0, args);
1193
- composerPropValue.apply(void 0, args);
1194
- };
1195
- } else if (composerPropValue) {
1196
- overrideProps[propName] = composerPropValue;
1197
- }
1198
- } else if (propName === "style") {
1199
- overrideProps[propName] = __assign(__assign({}, composerPropValue), childPropValue);
1200
- } else if (propName === "className") {
1201
- overrideProps[propName] = [composerPropValue, childPropValue].filter(Boolean).join(" ");
1202
- }
1203
- };
1204
- for (var propName in composerProps) {
1205
- _loop_1(propName);
1206
- }
1207
- return __assign(__assign({}, composerProps), overrideProps);
1208
- }
1209
- function getElementRef(element) {
1210
- var _a, _b;
1211
- var getter = (_a = Object.getOwnPropertyDescriptor(element.props, "ref")) === null || _a === void 0 ? void 0 : _a.get;
1212
- var mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
1213
- if (mayWarn) {
1214
- return element.ref;
1215
- }
1216
- getter = (_b = Object.getOwnPropertyDescriptor(element, "ref")) === null || _b === void 0 ? void 0 : _b.get;
1217
- mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
1218
- if (mayWarn) {
1219
- return element.props.ref;
1220
- }
1221
- return element.props.ref || element.ref;
1222
- }
1223
- /* harmony default export */ const composer = (Composer);
1224
- ;// ./components/badge/base-badge.tsx
1225
-
1226
-
1227
- var BaseBadge = function BaseBadge(props) {
1228
- var _a = props.asChild,
1229
- asChild = _a === void 0 ? false : _a,
1230
- borderColor = props.borderColor,
1231
- _b = props.textColor,
1232
- textColor = _b === void 0 ? "black" : _b,
1233
- backgroundColor = props.backgroundColor,
1234
- _c = props.size,
1235
- size = _c === void 0 ? "l" : _c,
1236
- style = props.style,
1237
- children = props.children,
1238
- className = props.className;
1239
- var Comp = asChild ? composer : "div";
1240
- var composedClassName = "nuri-theme base-badge ".concat(size, " border-").concat(borderColor, " text-").concat(textColor, " background-").concat(backgroundColor, " ").concat(className);
1241
- return (0,jsx_runtime.jsx)(Comp, {
1242
- style: style,
1243
- className: composedClassName,
1244
- children: children
1245
- });
1246
- };
1247
- ;// ./components/avatar/avatar.tsx
1248
-
1249
-
1250
-
1251
-
1252
- var Avatar = function Avatar(props) {
1253
- var size = props.size,
1254
- src = props.src,
1255
- alt = props.alt,
1256
- badgeOption = props.badgeOption;
1257
- var _a = (0,react.useState)(false),
1258
- isImageDownload = _a[0],
1259
- setIsImageDownload = _a[1];
1260
- return (0,jsx_runtime.jsxs)("div", {
1261
- className: "avatar ".concat(size),
1262
- children: [(0,jsx_runtime.jsx)("img", {
1263
- src: src,
1264
- alt: alt !== null && alt !== void 0 ? alt : "avatar",
1265
- className: "avatar ".concat(size, " ").concat(!isImageDownload ? "hidden" : ""),
1266
- onLoad: function onLoad() {
1267
- return setIsImageDownload(true);
1268
- }
1269
- }), !isImageDownload && (0,jsx_runtime.jsx)("div", {
1270
- className: "avatar avatar-skeleton ".concat(size),
1271
- children: (0,jsx_runtime.jsx)("div", {
1272
- className: "avatar skeleton-animation"
1273
- })
1274
- }), (0,jsx_runtime.jsx)(BaseBadge, {
1275
- asChild: true,
1276
- style: {
1277
- position: "absolute",
1278
- right: "0",
1279
- bottom: "0"
1280
- },
1281
- children: badgeOption
1282
- })]
1283
- });
1284
- };
1285
- /* harmony default export */ const avatar = (Avatar);
1286
- // EXTERNAL MODULE: ./node_modules/css-loader/dist/cjs.js!./components/button/button-style.css
1287
- var button_style = __webpack_require__(432);
1288
- ;// ./components/button/button-style.css
1289
-
1290
-
1291
-
1292
-
1293
-
1294
-
1295
-
1296
-
1297
-
1298
-
1299
-
1300
- var button_style_options = {};
1301
-
1302
- button_style_options.styleTagTransform = (styleTagTransform_default());
1303
- button_style_options.setAttributes = (setAttributesWithoutAttributes_default());
1304
- button_style_options.insert = insertBySelector_default().bind(null, "head");
1305
- button_style_options.domAPI = (styleDomAPI_default());
1306
- button_style_options.insertStyleElement = (insertStyleElement_default());
1307
-
1308
- var button_style_update = injectStylesIntoStyleTag_default()(button_style/* default */.A, button_style_options);
1309
-
1310
-
1311
-
1312
-
1313
- /* harmony default export */ const button_button_style = (button_style/* default */.A && button_style/* default */.A.locals ? button_style/* default */.A.locals : undefined);
1314
-
1315
- // EXTERNAL MODULE: ./node_modules/css-loader/dist/cjs.js!./styles/token/color.css
1316
- var color = __webpack_require__(890);
1317
- ;// ./styles/token/color.css
1318
-
1319
-
1320
-
1321
-
1322
-
1323
-
1324
-
1325
-
1326
-
1327
-
1328
-
1329
- var color_options = {};
1330
-
1331
- color_options.styleTagTransform = (styleTagTransform_default());
1332
- color_options.setAttributes = (setAttributesWithoutAttributes_default());
1333
- color_options.insert = insertBySelector_default().bind(null, "head");
1334
- color_options.domAPI = (styleDomAPI_default());
1335
- color_options.insertStyleElement = (insertStyleElement_default());
1336
-
1337
- var color_update = injectStylesIntoStyleTag_default()(color/* default */.A, color_options);
1338
-
1339
-
1340
-
1341
-
1342
- /* harmony default export */ const token_color = (color/* default */.A && color/* default */.A.locals ? color/* default */.A.locals : undefined);
1343
-
1344
- // EXTERNAL MODULE: ./node_modules/css-loader/dist/cjs.js!./styles/token/font.css
1345
- var font = __webpack_require__(476);
1346
- ;// ./styles/token/font.css
1347
-
1348
-
1349
-
1350
-
1351
-
1352
-
1353
-
1354
-
1355
-
1356
-
1357
-
1358
- var font_options = {};
1359
-
1360
- font_options.styleTagTransform = (styleTagTransform_default());
1361
- font_options.setAttributes = (setAttributesWithoutAttributes_default());
1362
- font_options.insert = insertBySelector_default().bind(null, "head");
1363
- font_options.domAPI = (styleDomAPI_default());
1364
- font_options.insertStyleElement = (insertStyleElement_default());
1365
-
1366
- var font_update = injectStylesIntoStyleTag_default()(font/* default */.A, font_options);
1367
-
1368
-
1369
-
1370
-
1371
- /* harmony default export */ const token_font = (font/* default */.A && font/* default */.A.locals ? font/* default */.A.locals : undefined);
1372
-
1373
- ;// ./components/button/base-button.tsx
1374
- var base_button_assign = undefined && undefined.__assign || function () {
1375
- base_button_assign = Object.assign || function (t) {
1376
- for (var s, i = 1, n = arguments.length; i < n; i++) {
1377
- s = arguments[i];
1378
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
1379
- }
1380
- return t;
1381
- };
1382
- return base_button_assign.apply(this, arguments);
1383
- };
1384
- var base_button_rest = undefined && undefined.__rest || function (s, e) {
1385
- var t = {};
1386
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
1387
- if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
1388
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
1389
- }
1390
- return t;
1391
- };
1392
-
1393
-
1394
-
1395
-
1396
-
1397
-
1398
- var BaseButton = /*#__PURE__*/(0,react.forwardRef)(function (_a, ref) {
1399
- var children = _a.children,
1400
- _b = _a.asChild,
1401
- asChild = _b === void 0 ? false : _b,
1402
- className = _a.className,
1403
- props = base_button_rest(_a, ["children", "asChild", "className"]);
1404
- var Comp = asChild ? composer : "button";
1405
- return (0,jsx_runtime.jsx)(Comp, base_button_assign({
1406
- ref: ref,
1407
- className: "base-button ".concat(className),
1408
- onClick: function onClick() {
1409
- return console.log("base");
1410
- }
1411
- }, props, {
1412
- children: children
1413
- }));
1414
- });
1415
- /* harmony default export */ const base_button = (BaseButton);
1416
- // EXTERNAL MODULE: ./node_modules/css-loader/dist/cjs.js!./components/loading/loading-style.css
1417
- var loading_style = __webpack_require__(174);
1418
- ;// ./components/loading/loading-style.css
1419
-
1420
-
1421
-
1422
-
1423
-
1424
-
1425
-
1426
-
1427
-
1428
-
1429
-
1430
- var loading_style_options = {};
1431
-
1432
- loading_style_options.styleTagTransform = (styleTagTransform_default());
1433
- loading_style_options.setAttributes = (setAttributesWithoutAttributes_default());
1434
- loading_style_options.insert = insertBySelector_default().bind(null, "head");
1435
- loading_style_options.domAPI = (styleDomAPI_default());
1436
- loading_style_options.insertStyleElement = (insertStyleElement_default());
1437
-
1438
- var loading_style_update = injectStylesIntoStyleTag_default()(loading_style/* default */.A, loading_style_options);
1439
-
1440
-
1441
-
1442
-
1443
- /* harmony default export */ const loading_loading_style = (loading_style/* default */.A && loading_style/* default */.A.locals ? loading_style/* default */.A.locals : undefined);
1444
-
1445
- ;// ./components/loading/loading.tsx
1446
-
1447
-
1448
- var Loading = function Loading() {
1449
- return (0,jsx_runtime.jsx)("div", {
1450
- className: "component-loading-container",
1451
- children: (0,jsx_runtime.jsxs)("div", {
1452
- className: "loading-indicator-ring",
1453
- children: [(0,jsx_runtime.jsx)("div", {
1454
- className: "loading-indicator-single-ring"
1455
- }), (0,jsx_runtime.jsx)("div", {
1456
- className: "loading-indicator-single-ring"
1457
- }), (0,jsx_runtime.jsx)("div", {
1458
- className: "loading-indicator-single-ring"
1459
- }), (0,jsx_runtime.jsx)("div", {
1460
- className: "loading-indicator-single-ring"
1461
- })]
1462
- })
1463
- });
1464
- };
1465
- /* harmony default export */ const loading_loading = (Loading);
1466
- ;// ./components/button/cta-button.tsx
1467
- var cta_button_assign = undefined && undefined.__assign || function () {
1468
- cta_button_assign = Object.assign || function (t) {
1469
- for (var s, i = 1, n = arguments.length; i < n; i++) {
1470
- s = arguments[i];
1471
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
1472
- }
1473
- return t;
1474
- };
1475
- return cta_button_assign.apply(this, arguments);
1476
- };
1477
-
1478
-
1479
-
1480
- var CTAButton = function CTAButton(props) {
1481
- var text = props.text,
1482
- _a = props.variant,
1483
- variant = _a === void 0 ? "primary" : _a,
1484
- _b = props.size,
1485
- size = _b === void 0 ? "m" : _b,
1486
- _c = props.disabled,
1487
- disabled = _c === void 0 ? false : _c,
1488
- icon = props.icon,
1489
- _d = props.loading,
1490
- loading = _d === void 0 ? false : _d;
1491
- return (0,jsx_runtime.jsx)(base_button, cta_button_assign({}, props, {
1492
- className: "nuri-theme cta-button ".concat(disabled ? "disabled" : variant, " ").concat(size),
1493
- children: loading ? (0,jsx_runtime.jsx)(loading_loading, {}) : (0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {
1494
- children: [icon, text]
1495
- })
1496
- }));
1497
- };
1498
- /* harmony default export */ const cta_button = (CTAButton);
1499
- ;// ./components/badge/option-badge.tsx
1500
- var option_badge_assign = undefined && undefined.__assign || function () {
1501
- option_badge_assign = Object.assign || function (t) {
1502
- for (var s, i = 1, n = arguments.length; i < n; i++) {
1503
- s = arguments[i];
1504
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
1505
- }
1506
- return t;
1507
- };
1508
- return option_badge_assign.apply(this, arguments);
1509
- };
1510
-
1511
-
1512
- var OptionBadge = function OptionBadge(props) {
1513
- var option = props.option;
1514
- return (0,jsx_runtime.jsx)(BaseBadge, option_badge_assign({}, props, {
1515
- children: option
1516
- }));
1517
- };
1518
- /* harmony default export */ const option_badge = (OptionBadge);
1519
- ;// ./components/badge/icon-text-badge.tsx
1520
- var icon_text_badge_assign = undefined && undefined.__assign || function () {
1521
- icon_text_badge_assign = Object.assign || function (t) {
1522
- for (var s, i = 1, n = arguments.length; i < n; i++) {
1523
- s = arguments[i];
1524
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
1525
- }
1526
- return t;
1527
- };
1528
- return icon_text_badge_assign.apply(this, arguments);
1529
- };
1530
-
1531
-
1532
- var IconTextBadge = function IconTextBadge(props) {
1533
- var icon = props.icon,
1534
- text = props.text;
1535
- return (0,jsx_runtime.jsxs)(BaseBadge, icon_text_badge_assign({}, props, {
1536
- children: [icon, (0,jsx_runtime.jsx)("span", {
1537
- children: text
1538
- })]
1539
- }));
1540
- };
1541
- /* harmony default export */ const icon_text_badge = (IconTextBadge);
1542
- // EXTERNAL MODULE: ./node_modules/css-loader/dist/cjs.js!./components/badge/badge-style.css
1543
- var badge_style = __webpack_require__(506);
1544
- ;// ./components/badge/badge-style.css
1545
-
1546
-
1547
-
1548
-
1549
-
1550
-
1551
-
1552
-
1553
-
1554
-
1555
-
1556
- var badge_style_options = {};
1557
-
1558
- badge_style_options.styleTagTransform = (styleTagTransform_default());
1559
- badge_style_options.setAttributes = (setAttributesWithoutAttributes_default());
1560
- badge_style_options.insert = insertBySelector_default().bind(null, "head");
1561
- badge_style_options.domAPI = (styleDomAPI_default());
1562
- badge_style_options.insertStyleElement = (insertStyleElement_default());
1563
-
1564
- var badge_style_update = injectStylesIntoStyleTag_default()(badge_style/* default */.A, badge_style_options);
1565
-
1566
-
1567
-
1568
-
1569
- /* harmony default export */ const badge_badge_style = (badge_style/* default */.A && badge_style/* default */.A.locals ? badge_style/* default */.A.locals : undefined);
1570
-
1571
- ;// ./components/badge/icon-text-option-badge.tsx
1572
- var icon_text_option_badge_assign = undefined && undefined.__assign || function () {
1573
- icon_text_option_badge_assign = Object.assign || function (t) {
1574
- for (var s, i = 1, n = arguments.length; i < n; i++) {
1575
- s = arguments[i];
1576
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
1577
- }
1578
- return t;
1579
- };
1580
- return icon_text_option_badge_assign.apply(this, arguments);
1581
- };
1582
-
1583
-
1584
-
1585
- var IconTextOptionBadge = function IconTextOptionBadge(props) {
1586
- var icon = props.icon,
1587
- text = props.text,
1588
- option = props.option;
1589
- return (0,jsx_runtime.jsxs)(BaseBadge, icon_text_option_badge_assign({}, props, {
1590
- className: "icon-text-option",
1591
- children: [(0,jsx_runtime.jsxs)("span", {
1592
- children: [icon, (0,jsx_runtime.jsx)("span", {
1593
- children: text
1594
- })]
1595
- }), option]
1596
- }));
1597
- };
1598
- /* harmony default export */ const icon_text_option_badge = (IconTextOptionBadge);
1599
- // EXTERNAL MODULE: ./node_modules/css-loader/dist/cjs.js!./components/table/table-style.css
1600
- var table_style = __webpack_require__(406);
1601
- ;// ./components/table/table-style.css
1602
-
1603
-
1604
-
1605
-
1606
-
1607
-
1608
-
1609
-
1610
-
1611
-
1612
-
1613
- var table_style_options = {};
1614
-
1615
- table_style_options.styleTagTransform = (styleTagTransform_default());
1616
- table_style_options.setAttributes = (setAttributesWithoutAttributes_default());
1617
- table_style_options.insert = insertBySelector_default().bind(null, "head");
1618
- table_style_options.domAPI = (styleDomAPI_default());
1619
- table_style_options.insertStyleElement = (insertStyleElement_default());
1620
-
1621
- var table_style_update = injectStylesIntoStyleTag_default()(table_style/* default */.A, table_style_options);
1622
-
1623
-
1624
-
1625
-
1626
- /* harmony default export */ const table_table_style = (table_style/* default */.A && table_style/* default */.A.locals ? table_style/* default */.A.locals : undefined);
1627
-
1628
- ;// ./components/table/base-table.tsx
1629
- var base_table_assign = undefined && undefined.__assign || function () {
1630
- base_table_assign = Object.assign || function (t) {
1631
- for (var s, i = 1, n = arguments.length; i < n; i++) {
1632
- s = arguments[i];
1633
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
1634
- }
1635
- return t;
1636
- };
1637
- return base_table_assign.apply(this, arguments);
1638
- };
1639
- var base_table_rest = undefined && undefined.__rest || function (s, e) {
1640
- var t = {};
1641
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
1642
- if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
1643
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
1644
- }
1645
- return t;
1646
- };
1647
-
1648
-
1649
- var TableRoot = function TableRoot(props) {
1650
- return (0,jsx_runtime.jsx)("table", {
1651
- className: "base-table table-root",
1652
- children: props.children
1653
- });
1654
- };
1655
- var TableHeader = function TableHeader(props) {
1656
- var _a = props.justify,
1657
- justify = _a === void 0 ? "center" : _a;
1658
- return (0,jsx_runtime.jsx)("thead", {
1659
- className: "base-table table-header ".concat(justify),
1660
- children: props.children
1661
- });
1662
- };
1663
- var TableRow = function TableRow(props) {
1664
- return (0,jsx_runtime.jsx)("tr", {
1665
- className: "base-table table-row",
1666
- children: props.children
1667
- });
1668
- };
1669
- var TableBody = function TableBody(props) {
1670
- return (0,jsx_runtime.jsx)("tbody", {
1671
- className: "base-table table-body",
1672
- children: props.children
1673
- });
1674
- };
1675
- var TableCell = function TableCell(props) {
1676
- var className = props.className,
1677
- rest = base_table_rest(props, ["className"]);
1678
- var classNames = ["base-table", "table-cell", className].join(" ");
1679
- return (0,jsx_runtime.jsx)("td", base_table_assign({
1680
- className: classNames
1681
- }, rest, {
1682
- children: props.children
1683
- }));
1684
- };
1685
- TableRoot.Header = TableHeader;
1686
- TableRoot.Body = TableBody;
1687
- TableRoot.Row = TableRow;
1688
- TableRoot.Cell = TableCell;
1689
- /* harmony default export */ const base_table = (TableRoot);
1690
- ;// ./components/table/data-table.tsx
1691
-
1692
-
1693
-
1694
- var DataTable = function DataTable(props) {
1695
- var rows = props.rows,
1696
- columns = props.columns;
1697
- var displayRows = (0,react.useRef)(rows.map(function (row) {
1698
- return {
1699
- row: row,
1700
- hide: false
1701
- };
1702
- }));
1703
- (0,react.useLayoutEffect)(function () {
1704
- displayRows.current = rows.map(function (row) {
1705
- var _a, _b;
1706
- return {
1707
- row: row,
1708
- hide: (_b = (_a = displayRows.current.find(function (item) {
1709
- return item.row.id === row.id;
1710
- })) === null || _a === void 0 ? void 0 : _a.hide) !== null && _b !== void 0 ? _b : false
1711
- };
1712
- });
1713
- }, [rows]);
1714
- return (0,jsx_runtime.jsxs)(base_table, {
1715
- children: [(0,jsx_runtime.jsx)(base_table.Header, {
1716
- children: (0,jsx_runtime.jsx)(base_table.Row, {
1717
- children: displayRows.current.map(function (item) {
1718
- return (0,jsx_runtime.jsx)(base_table.Cell, {
1719
- className: item.hide ? "hide" : "",
1720
- children: item.row.value
1721
- }, item.row.id);
1722
- })
1723
- })
1724
- }), (0,jsx_runtime.jsx)(base_table.Body, {
1725
- children: columns.map(function (column) {
1726
- return (0,jsx_runtime.jsx)(base_table.Row, {
1727
- children: displayRows.current.map(function (item) {
1728
- return (0,jsx_runtime.jsx)(base_table.Cell, {
1729
- className: item.hide ? "hide" : "",
1730
- children: column[item.row.id]
1731
- }, item.row.id);
1732
- })
1733
- });
1734
- })
1735
- })]
1736
- });
1737
- };
1738
- /* harmony default export */ const data_table = (DataTable);
1739
- ;// ./index.tsx
1740
-
1741
-
1742
-
1743
-
1744
-
1745
-
1746
- var __webpack_exports__Avatar = __webpack_exports__.eu;
1747
- var __webpack_exports__CTAButton = __webpack_exports__.$J;
1748
- var __webpack_exports__DataTable = __webpack_exports__.bQ;
1749
- var __webpack_exports__IconTextBadge = __webpack_exports__.c;
1750
- var __webpack_exports__IconTextOptionBadge = __webpack_exports__.x_;
1751
- var __webpack_exports__OptionBadge = __webpack_exports__.zw;
1752
- export { __webpack_exports__Avatar as Avatar, __webpack_exports__CTAButton as CTAButton, __webpack_exports__DataTable as DataTable, __webpack_exports__IconTextBadge as IconTextBadge, __webpack_exports__IconTextOptionBadge as IconTextOptionBadge, __webpack_exports__OptionBadge as OptionBadge };
1753
-
1754
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,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TyxDQUFDRSxHQUFHLENBQUMsVUFBVU8sTUFBTSxFQUFFO1FBQ3pFLE9BQVFyRSxtQkFBSSxDQUFDNEMsVUFBUyxDQUFDVSxHQUFHLEVBQUU7VUFBRXZGLFFBQVEsRUFBRThGLFdBQVcsQ0FBQ2pHLE9BQU8sQ0FBQ2tHLEdBQUcsQ0FBQyxVQUFVSSxJQUFJLEVBQUU7WUFBRSxPQUFRbEUsbUJBQUksQ0FBQzRDLFVBQVMsQ0FBQ1csSUFBSSxFQUFFO2NBQUU5QyxTQUFTLEVBQUV5RCxJQUFJLENBQUNGLElBQUksR0FBRyxNQUFNLEdBQUcsRUFBRTtjQUFFakcsUUFBUSxFQUFFc0csTUFBTSxDQUFDSCxJQUFJLENBQUNILEdBQUcsQ0FBQ0ksRUFBRTtZQUFFLENBQUMsRUFBRUQsSUFBSSxDQUFDSCxHQUFHLENBQUNJLEVBQUUsQ0FBQztVQUFHLENBQUM7UUFBRSxDQUFDLENBQUM7TUFDOU0sQ0FBQztJQUFFLENBQUMsQ0FBQztFQUFFLENBQUMsQ0FBQztBQUN6QixDQUFDO0FBQ0QsaURBQWVULFNBQVM7O0FDckJ1QztBQUNPO0FBQ0c7QUFDSztBQUNhIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9hdmF0YXIvYXZhdGFyLXN0eWxlLmNzcyIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL2JhZGdlL2JhZGdlLXN0eWxlLmNzcyIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL2J1dHRvbi9idXR0b24tc3R5bGUuY3NzIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvbG9hZGluZy9sb2FkaW5nLXN0eWxlLmNzcyIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL3RhYmxlL3RhYmxlLXN0eWxlLmNzcyIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9zdHlsZXMvdG9rZW4vY29sb3IuY3NzIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL3N0eWxlcy90b2tlbi9mb250LmNzcyIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL25vZGVfbW9kdWxlcy9yZWFjdC9janMvcmVhY3QtanN4LXJ1bnRpbWUucHJvZHVjdGlvbi5taW4uanMiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vbm9kZV9tb2R1bGVzL3JlYWN0L2Nqcy9yZWFjdC5wcm9kdWN0aW9uLm1pbi5qcyIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9ub2RlX21vZHVsZXMvcmVhY3QvaW5kZXguanMiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vbm9kZV9tb2R1bGVzL3JlYWN0L2pzeC1ydW50aW1lLmpzIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qcyIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRCeVNlbGVjdG9yLmpzIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydFN0eWxlRWxlbWVudC5qcyIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXMuanMiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVEb21BUEkuanMiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVUYWdUcmFuc2Zvcm0uanMiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtL3dlYnBhY2svYm9vdHN0cmFwIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS93ZWJwYWNrL3J1bnRpbWUvY29tcGF0IGdldCBkZWZhdWx0IGV4cG9ydCIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vd2VicGFjay9ydW50aW1lL2RlZmluZSBwcm9wZXJ0eSBnZXR0ZXJzIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS93ZWJwYWNrL3J1bnRpbWUvaGFzT3duUHJvcGVydHkgc2hvcnRoYW5kIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS93ZWJwYWNrL3J1bnRpbWUvbm9uY2UiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9hdmF0YXIvYXZhdGFyLXN0eWxlLmNzcz83NjAxIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvY29yZS9jb21wb3Nlci9pbmRleC50c3giLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9iYWRnZS9iYXNlLWJhZGdlLnRzeCIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL2F2YXRhci9hdmF0YXIudHN4Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvYnV0dG9uL2J1dHRvbi1zdHlsZS5jc3M/ZTlmNyIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9zdHlsZXMvdG9rZW4vY29sb3IuY3NzPzY2Y2EiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vc3R5bGVzL3Rva2VuL2ZvbnQuY3NzPzc2YmIiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9idXR0b24vYmFzZS1idXR0b24udHN4Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvbG9hZGluZy9sb2FkaW5nLXN0eWxlLmNzcz9iMzk5Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvbG9hZGluZy9sb2FkaW5nLnRzeCIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL2J1dHRvbi9jdGEtYnV0dG9uLnRzeCIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL2JhZGdlL29wdGlvbi1iYWRnZS50c3giLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9iYWRnZS9pY29uLXRleHQtYmFkZ2UudHN4Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvYmFkZ2UvYmFkZ2Utc3R5bGUuY3NzPzRhODciLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9iYWRnZS9pY29uLXRleHQtb3B0aW9uLWJhZGdlLnRzeCIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL3RhYmxlL3RhYmxlLXN0eWxlLmNzcz9iNzJlIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvdGFibGUvYmFzZS10YWJsZS50c3giLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy90YWJsZS9kYXRhLXRhYmxlLnRzeCIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgYC5hdmF0YXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICYgZGl2IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICBib3JkZXItcmFkaXVzOiA1MCU7XG5cbiAgJjp3aGVyZSgueGwpIHtcbiAgICB3aWR0aDogMTI0cHg7XG4gICAgaGVpZ2h0OiAxMjRweDtcbiAgfVxuXG4gICY6d2hlcmUoLmwpIHtcbiAgICB3aWR0aDogNzRweDtcbiAgICBoZWlnaHQ6IDc0cHg7XG4gIH1cblxuICAmOndoZXJlKC5tKSB7XG4gICAgd2lkdGg6IDU4cHg7XG4gICAgaGVpZ2h0OiA1OHB4O1xuICB9XG5cbiAgJjp3aGVyZSgucykge1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGhlaWdodDogNDBweDtcbiAgfVxuXG4gIC5hdmF0YXItc2tlbGV0b24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2UwZTBlMDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgLnNrZWxldG9uLWFuaW1hdGlvbiB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgOTBkZWcsXG4gICAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgMCUsXG4gICAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KSA1MCUsXG4gICAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgMTAwJVxuICAgICAgKTtcbiAgICAgIGFuaW1hdGlvbjogc2hpbW1lciAxLjVzIGluZmluaXRlO1xuICAgIH1cbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHNoaW1tZXIge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XG4gIH1cbn1cbmAsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vY29tcG9uZW50cy9hdmF0YXIvYXZhdGFyLXN0eWxlLmNzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFBQTtFQUNFLGtCQUFrQjtFQUNsQjtJQUNFLGtCQUFrQjtJQUNsQixhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLHVCQUF1QjtJQUN2QixnQkFBZ0I7RUFDbEI7O0VBRUEsa0JBQWtCOztFQUVsQjtJQUNFLFlBQVk7SUFDWixhQUFhO0VBQ2Y7O0VBRUE7SUFDRSxXQUFXO0lBQ1gsWUFBWTtFQUNkOztFQUVBO0lBQ0UsV0FBVztJQUNYLFlBQVk7RUFDZDs7RUFFQTtJQUNFLFdBQVc7SUFDWCxZQUFZO0VBQ2Q7O0VBRUE7SUFDRSxrQkFBa0I7SUFDbEIsTUFBTTtJQUNOLE9BQU87SUFDUCxXQUFXO0lBQ1gsWUFBWTtJQUNaLHlCQUF5QjtJQUN6QixrQkFBa0I7SUFDbEIsV0FBVztJQUNYLFlBQVk7O0lBRVo7TUFDRSxXQUFXO01BQ1gsWUFBWTtNQUNaOzs7OztPQUtDO01BQ0QsZ0NBQWdDO0lBQ2xDO0VBQ0Y7QUFDRjs7QUFFQTtFQUNFO0lBQ0UsNEJBQTRCO0VBQzlCO0VBQ0E7SUFDRSwyQkFBMkI7RUFDN0I7QUFDRlwiLFwic291cmNlc0NvbnRlbnRcIjpbXCIuYXZhdGFyIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICYgZGl2IHtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIH1cXG5cXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG5cXG4gICY6d2hlcmUoLnhsKSB7XFxuICAgIHdpZHRoOiAxMjRweDtcXG4gICAgaGVpZ2h0OiAxMjRweDtcXG4gIH1cXG5cXG4gICY6d2hlcmUoLmwpIHtcXG4gICAgd2lkdGg6IDc0cHg7XFxuICAgIGhlaWdodDogNzRweDtcXG4gIH1cXG5cXG4gICY6d2hlcmUoLm0pIHtcXG4gICAgd2lkdGg6IDU4cHg7XFxuICAgIGhlaWdodDogNThweDtcXG4gIH1cXG5cXG4gICY6d2hlcmUoLnMpIHtcXG4gICAgd2lkdGg6IDQwcHg7XFxuICAgIGhlaWdodDogNDBweDtcXG4gIH1cXG5cXG4gIC5hdmF0YXItc2tlbGV0b24ge1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHRvcDogMDtcXG4gICAgbGVmdDogMDtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICAgIGhlaWdodDogMTAwJTtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2UwZTBlMDtcXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgICB3aWR0aDogMTAwJTtcXG4gICAgaGVpZ2h0OiAxMDAlO1xcblxcbiAgICAuc2tlbGV0b24tYW5pbWF0aW9uIHtcXG4gICAgICB3aWR0aDogMTAwJTtcXG4gICAgICBoZWlnaHQ6IDEwMCU7XFxuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxcbiAgICAgICAgOTBkZWcsXFxuICAgICAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDApIDAlLFxcbiAgICAgICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpIDUwJSxcXG4gICAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgMTAwJVxcbiAgICAgICk7XFxuICAgICAgYW5pbWF0aW9uOiBzaGltbWVyIDEuNXMgaW5maW5pdGU7XFxuICAgIH1cXG4gIH1cXG59XFxuXFxuQGtleWZyYW1lcyBzaGltbWVyIHtcXG4gIDAlIHtcXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcXG4gIH1cXG4gIDEwMCUge1xcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XFxuICB9XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBgLmJhc2UtYmFkZ2Uge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZ2FwOiA0cHg7XG5cbiAgYm9yZGVyLXJhZGl1czogNDBweDtcblxuICAmOndoZXJlKC5sKSB7XG4gICAgaGVpZ2h0OiA0OHB4O1xuXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtc20pO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1zbSk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgfVxuXG4gICY6d2hlcmUoLm0pIHtcbiAgICBoZWlnaHQ6IDQwcHg7XG5cbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zbSk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXNtKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICB9XG5cbiAgJjp3aGVyZSgucikge1xuICAgIGhlaWdodDogMzZweDtcblxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtc20pO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gIH1cblxuICAmOndoZXJlKC5zKSB7XG4gICAgaGVpZ2h0OiAzMnB4O1xuXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtc20pO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1zbSk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuICB9XG5cbiAgJjp3aGVyZSguc20pIHtcbiAgICBoZWlnaHQ6IDI4cHg7XG5cbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS14c20pO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC14c20pO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcbiAgfVxuXG4gICZbY2xhc3MqPVwiYmFja2dyb3VuZC1cIl0ge1xuICAgICYuYmFja2dyb3VuZC1ibGFjayB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWJsYWNrKTtcbiAgICB9XG4gICAgJi5iYWNrZ3JvdW5kLXdoaXRlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktd2hpdGUpO1xuICAgIH1cbiAgICAmLmJhY2tncm91bmQtZ3JheUZhIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1mYSk7XG4gICAgfVxuICAgICYuYmFja2dyb3VuZC1wdXJwbGUzOSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtMzkpO1xuICAgIH1cbiAgfVxuXG4gICZbY2xhc3MqPVwidGV4dC1cIl0ge1xuICAgICYudGV4dC1ibGFjayB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ibGFjayk7XG4gICAgfVxuICAgICYudGV4dC13aGl0ZSB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS13aGl0ZSk7XG4gICAgfVxuICAgICYudGV4dC1ncmF5RmEge1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1mYSk7XG4gICAgfVxuICAgICYudGV4dC1wdXJwbGUzOSB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTM5KTtcbiAgICB9XG4gIH1cblxuICAmW2NsYXNzKj1cImJvcmRlci1cIl0ge1xuICAgICYuYm9yZGVyLWJsYWNrIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLXByaW1hcnktYmxhY2spO1xuICAgIH1cbiAgICAmLmJvcmRlci13aGl0ZSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1wcmltYXJ5LXdoaXRlKTtcbiAgICB9XG4gICAgJi5ib3JkZXItZ3JheUZhIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1mYSk7XG4gICAgfVxuICAgICYuYm9yZGVyLXB1cnBsZTM5IHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS0zOSk7XG4gICAgfVxuICB9XG5cbiAgJi5pY29uLXRleHQtb3B0aW9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG4gICAgcGFkZGluZzogMCAyMHB4O1xuICB9XG5cbiAgJi5pY29uLXRleHQtb3B0aW9uID4gc3BhbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNHB4O1xuICB9XG59XG5gLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uL2NvbXBvbmVudHMvYmFkZ2UvYmFkZ2Utc3R5bGUuY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUFBO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQix1QkFBdUI7RUFDdkIsUUFBUTs7RUFFUixtQkFBbUI7O0VBRW5CO0lBQ0UsWUFBWTs7SUFFWiw4QkFBOEI7SUFDOUIsa0NBQWtDO0lBQ2xDLHdDQUF3QztFQUMxQzs7RUFFQTtJQUNFLFlBQVk7O0lBRVosOEJBQThCO0lBQzlCLGtDQUFrQztJQUNsQyx3Q0FBd0M7RUFDMUM7O0VBRUE7SUFDRSxZQUFZOztJQUVaLDhCQUE4QjtJQUM5QixrQ0FBa0M7SUFDbEMsd0NBQXdDO0VBQzFDOztFQUVBO0lBQ0UsWUFBWTs7SUFFWiw4QkFBOEI7SUFDOUIsa0NBQWtDO0lBQ2xDLG9DQUFvQztFQUN0Qzs7RUFFQTtJQUNFLFlBQVk7O0lBRVosK0JBQStCO0lBQy9CLG1DQUFtQztJQUNuQyxvQ0FBb0M7RUFDdEM7O0VBRUE7SUFDRTtNQUNFLDRDQUE0QztJQUM5QztJQUNBO01BQ0UsNENBQTRDO0lBQzlDO0lBQ0E7TUFDRSw4Q0FBOEM7SUFDaEQ7SUFDQTtNQUNFLDhDQUE4QztJQUNoRDtFQUNGOztFQUVBO0lBQ0U7TUFDRSxpQ0FBaUM7SUFDbkM7SUFDQTtNQUNFLGlDQUFpQztJQUNuQztJQUNBO01BQ0UsbUNBQW1DO0lBQ3JDO0lBQ0E7TUFDRSxtQ0FBbUM7SUFDckM7RUFDRjs7RUFFQTtJQUNFO01BQ0UsNENBQTRDO0lBQzlDO0lBQ0E7TUFDRSw0Q0FBNEM7SUFDOUM7SUFDQTtNQUNFLDhDQUE4QztJQUNoRDtJQUNBO01BQ0UsOENBQThDO0lBQ2hEO0VBQ0Y7O0VBRUE7SUFDRSxhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLDhCQUE4Qjs7SUFFOUIsZUFBZTtFQUNqQjs7RUFFQTtJQUNFLGFBQWE7SUFDYixtQkFBbUI7SUFDbkIsUUFBUTtFQUNWO0FBQ0ZcIixcInNvdXJjZXNDb250ZW50XCI6W1wiLmJhc2UtYmFkZ2Uge1xcbiAgZGlzcGxheTogZmxleDtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gIGdhcDogNHB4O1xcblxcbiAgYm9yZGVyLXJhZGl1czogNDBweDtcXG5cXG4gICY6d2hlcmUoLmwpIHtcXG4gICAgaGVpZ2h0OiA0OHB4O1xcblxcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zbSk7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1zbSk7XFxuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1zZW1pYm9sZCk7XFxuICB9XFxuXFxuICAmOndoZXJlKC5tKSB7XFxuICAgIGhlaWdodDogNDBweDtcXG5cXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtc20pO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtc20pO1xcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xcbiAgfVxcblxcbiAgJjp3aGVyZSgucikge1xcbiAgICBoZWlnaHQ6IDM2cHg7XFxuXFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXNtKTtcXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcXG4gIH1cXG5cXG4gICY6d2hlcmUoLnMpIHtcXG4gICAgaGVpZ2h0OiAzMnB4O1xcblxcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zbSk7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1zbSk7XFxuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcXG4gIH1cXG5cXG4gICY6d2hlcmUoLnNtKSB7XFxuICAgIGhlaWdodDogMjhweDtcXG5cXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUteHNtKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXhzbSk7XFxuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcXG4gIH1cXG5cXG4gICZbY2xhc3MqPVxcXCJiYWNrZ3JvdW5kLVxcXCJdIHtcXG4gICAgJi5iYWNrZ3JvdW5kLWJsYWNrIHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWJsYWNrKTtcXG4gICAgfVxcbiAgICAmLmJhY2tncm91bmQtd2hpdGUge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktd2hpdGUpO1xcbiAgICB9XFxuICAgICYuYmFja2dyb3VuZC1ncmF5RmEge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1mYSk7XFxuICAgIH1cXG4gICAgJi5iYWNrZ3JvdW5kLXB1cnBsZTM5IHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtMzkpO1xcbiAgICB9XFxuICB9XFxuXFxuICAmW2NsYXNzKj1cXFwidGV4dC1cXFwiXSB7XFxuICAgICYudGV4dC1ibGFjayB7XFxuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktYmxhY2spO1xcbiAgICB9XFxuICAgICYudGV4dC13aGl0ZSB7XFxuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktd2hpdGUpO1xcbiAgICB9XFxuICAgICYudGV4dC1ncmF5RmEge1xcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZmEpO1xcbiAgICB9XFxuICAgICYudGV4dC1wdXJwbGUzOSB7XFxuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS0zOSk7XFxuICAgIH1cXG4gIH1cXG5cXG4gICZbY2xhc3MqPVxcXCJib3JkZXItXFxcIl0ge1xcbiAgICAmLmJvcmRlci1ibGFjayB7XFxuICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItcHJpbWFyeS1ibGFjayk7XFxuICAgIH1cXG4gICAgJi5ib3JkZXItd2hpdGUge1xcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLXByaW1hcnktd2hpdGUpO1xcbiAgICB9XFxuICAgICYuYm9yZGVyLWdyYXlGYSB7XFxuICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWZhKTtcXG4gICAgfVxcbiAgICAmLmJvcmRlci1wdXJwbGUzOSB7XFxuICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTM5KTtcXG4gICAgfVxcbiAgfVxcblxcbiAgJi5pY29uLXRleHQtb3B0aW9uIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xcblxcbiAgICBwYWRkaW5nOiAwIDIwcHg7XFxuICB9XFxuXFxuICAmLmljb24tdGV4dC1vcHRpb24gPiBzcGFuIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgZ2FwOiA0cHg7XFxuICB9XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBgLmJhc2UtYnV0dG9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMTBweDtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBib3JkZXI6IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmN0YS1idXR0b24ge1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG5cbiAgJjp3aGVyZSgucHJpbWFyeSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS0zOSk7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktd2hpdGUpO1xuICB9XG4gICY6d2hlcmUoLnNlY29uZGFyeSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS1mNCk7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS0zOSk7XG4gIH1cbiAgJjp3aGVyZSguZ2hvc3QpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LXdoaXRlKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZDQpO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtMzkpO1xuICB9XG4gICY6d2hlcmUoLndoaXRlKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS13aGl0ZSk7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS0zOSk7XG4gIH1cbiAgJjp3aGVyZSguZGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZTQpO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LXdoaXRlKTtcbiAgfVxuXG4gICY6d2hlcmUoLnhsKSB7XG4gICAgaGVpZ2h0OiA2MHB4O1xuXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtbGcpO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1sZyk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuICB9XG4gICY6d2hlcmUoLmwpIHtcbiAgICBoZWlnaHQ6IDU0cHg7XG5cbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1iYXNlKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtYmFzZSk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuICB9XG4gICY6d2hlcmUoLnIpIHtcbiAgICBoZWlnaHQ6IDUwcHg7XG5cbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zbSk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXNtKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICB9XG4gICY6d2hlcmUoLm0pIHtcbiAgICBoZWlnaHQ6IDQ4cHg7XG5cbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zbSk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXNtKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICB9XG4gICY6d2hlcmUoLnMpIHtcbiAgICBoZWlnaHQ6IDQwcHg7XG5cbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS14c20pO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC14c20pO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gIH1cbiAgJjp3aGVyZSgueHMpIHtcbiAgICBoZWlnaHQ6IDMwcHg7XG5cbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS14c20pO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC14c20pO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gIH1cbn1cbmAsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vY29tcG9uZW50cy9idXR0b24vYnV0dG9uLXN0eWxlLmNzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFBQTtFQUNFLGFBQWE7RUFDYix1QkFBdUI7RUFDdkIsbUJBQW1CO0VBQ25CLFNBQVM7RUFDVCxrQkFBa0I7RUFDbEIsWUFBWTtFQUNaLGVBQWU7QUFDakI7O0FBRUE7RUFDRSxrQkFBa0I7O0VBRWxCO0lBQ0UsOENBQThDO0lBQzlDLGlDQUFpQztFQUNuQztFQUNBO0lBQ0UsOENBQThDO0lBQzlDLG1DQUFtQztFQUNyQztFQUNBO0lBQ0UsNENBQTRDO0lBQzVDLDhDQUE4QztJQUM5QyxtQ0FBbUM7RUFDckM7RUFDQTtJQUNFLDRDQUE0QztJQUM1QyxtQ0FBbUM7RUFDckM7RUFDQTtJQUNFLDhDQUE4QztJQUM5QyxpQ0FBaUM7RUFDbkM7O0VBRUE7SUFDRSxZQUFZOztJQUVaLDhCQUE4QjtJQUM5QixrQ0FBa0M7SUFDbEMsb0NBQW9DO0VBQ3RDO0VBQ0E7SUFDRSxZQUFZOztJQUVaLGdDQUFnQztJQUNoQyxvQ0FBb0M7SUFDcEMsb0NBQW9DO0VBQ3RDO0VBQ0E7SUFDRSxZQUFZOztJQUVaLDhCQUE4QjtJQUM5QixrQ0FBa0M7SUFDbEMsd0NBQXdDO0VBQzFDO0VBQ0E7SUFDRSxZQUFZOztJQUVaLDhCQUE4QjtJQUM5QixrQ0FBa0M7SUFDbEMsd0NBQXdDO0VBQzFDO0VBQ0E7SUFDRSxZQUFZOztJQUVaLCtCQUErQjtJQUMvQixtQ0FBbUM7SUFDbkMsd0NBQXdDO0VBQzFDO0VBQ0E7SUFDRSxZQUFZOztJQUVaLCtCQUErQjtJQUMvQixtQ0FBbUM7SUFDbkMsd0NBQXdDO0VBQzFDO0FBQ0ZcIixcInNvdXJjZXNDb250ZW50XCI6W1wiLmJhc2UtYnV0dG9uIHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBnYXA6IDEwcHg7XFxuICBib3JkZXItcmFkaXVzOiA2cHg7XFxuICBib3JkZXI6IG5vbmU7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxufVxcblxcbi5jdGEtYnV0dG9uIHtcXG4gIGJvcmRlci1yYWRpdXM6IDZweDtcXG5cXG4gICY6d2hlcmUoLnByaW1hcnkpIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTM5KTtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktd2hpdGUpO1xcbiAgfVxcbiAgJjp3aGVyZSguc2Vjb25kYXJ5KSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS1mNCk7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtMzkpO1xcbiAgfVxcbiAgJjp3aGVyZSguZ2hvc3QpIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS13aGl0ZSk7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1kNCk7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtMzkpO1xcbiAgfVxcbiAgJjp3aGVyZSgud2hpdGUpIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS13aGl0ZSk7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtMzkpO1xcbiAgfVxcbiAgJjp3aGVyZSguZGlzYWJsZWQpIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWU0KTtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktd2hpdGUpO1xcbiAgfVxcblxcbiAgJjp3aGVyZSgueGwpIHtcXG4gICAgaGVpZ2h0OiA2MHB4O1xcblxcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1sZyk7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1sZyk7XFxuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcXG4gIH1cXG4gICY6d2hlcmUoLmwpIHtcXG4gICAgaGVpZ2h0OiA1NHB4O1xcblxcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1iYXNlKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LWJhc2UpO1xcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XFxuICB9XFxuICAmOndoZXJlKC5yKSB7XFxuICAgIGhlaWdodDogNTBweDtcXG5cXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtc20pO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtc20pO1xcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xcbiAgfVxcbiAgJjp3aGVyZSgubSkge1xcbiAgICBoZWlnaHQ6IDQ4cHg7XFxuXFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXNtKTtcXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcXG4gIH1cXG4gICY6d2hlcmUoLnMpIHtcXG4gICAgaGVpZ2h0OiA0MHB4O1xcblxcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS14c20pO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQteHNtKTtcXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcXG4gIH1cXG4gICY6d2hlcmUoLnhzKSB7XFxuICAgIGhlaWdodDogMzBweDtcXG5cXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUteHNtKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXhzbSk7XFxuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1zZW1pYm9sZCk7XFxuICB9XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBgLmNvbXBvbmVudC1sb2FkaW5nLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4ubG9hZGluZy1pbmRpY2F0b3ItcmluZyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbn1cblxuLmxvYWRpbmctaW5kaWNhdG9yLXNpbmdsZS1yaW5nIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbiAgYm9yZGVyOiAzcHggc29saWQ7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYW5pbWF0aW9uOiBsZHMtcmluZyAxLjJzIGN1YmljLWJlemllcigwLjUsIDAsIDAuNSwgMSkgaW5maW5pdGU7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS13aGl0ZSkgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG59XG5cbi5sb2FkaW5nLWluZGljYXRvci1zaW5nbGUtcmluZzpudGgtY2hpbGQoMSkge1xuICBhbmltYXRpb24tZGVsYXk6IC0wLjQ1cztcbn1cblxuLmxvYWRpbmctaW5kaWNhdG9yLXNpbmdsZS1yaW5nOm50aC1jaGlsZCgyKSB7XG4gIGFuaW1hdGlvbi1kZWxheTogLTAuM3M7XG59XG5cbi5sb2FkaW5nLWluZGljYXRvci1zaW5nbGUtcmluZzpudGgtY2hpbGQoMykge1xuICBhbmltYXRpb24tZGVsYXk6IC0wLjE1cztcbn1cblxuLmxvYWRpbmctaW5kaWNhdG9yLXNpbmdsZS1yaW5nOm50aC1jaGlsZCg0KSB7XG4gIGFuaW1hdGlvbi1kZWxheTogMHM7XG59XG5cbkBrZXlmcmFtZXMgbGRzLXJpbmcge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgfVxufVxuYCwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi9jb21wb25lbnRzL2xvYWRpbmcvbG9hZGluZy1zdHlsZS5jc3NcIl0sXCJuYW1lc1wiOltdLFwibWFwcGluZ3NcIjpcIkFBQUE7RUFDRSxhQUFhO0VBQ2IsV0FBVztFQUNYLFlBQVk7RUFDWixtQkFBbUI7RUFDbkIsdUJBQXVCO0FBQ3pCOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLFdBQVc7RUFDWCxZQUFZO0FBQ2Q7O0FBRUE7RUFDRSxzQkFBc0I7RUFDdEIsY0FBYztFQUNkLGtCQUFrQjtFQUNsQixXQUFXO0VBQ1gsWUFBWTtFQUNaLGlCQUFpQjtFQUNqQixrQkFBa0I7RUFDbEIsOERBQThEO0VBQzlELDRFQUE0RTtBQUM5RTs7QUFFQTtFQUNFLHVCQUF1QjtBQUN6Qjs7QUFFQTtFQUNFLHNCQUFzQjtBQUN4Qjs7QUFFQTtFQUNFLHVCQUF1QjtBQUN6Qjs7QUFFQTtFQUNFLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFO0lBQ0UsdUJBQXVCO0VBQ3pCO0VBQ0E7SUFDRSx5QkFBeUI7RUFDM0I7QUFDRlwiLFwic291cmNlc0NvbnRlbnRcIjpbXCIuY29tcG9uZW50LWxvYWRpbmctY29udGFpbmVyIHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICB3aWR0aDogMjBweDtcXG4gIGhlaWdodDogMjBweDtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG59XFxuXFxuLmxvYWRpbmctaW5kaWNhdG9yLXJpbmcge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgd2lkdGg6IDIwcHg7XFxuICBoZWlnaHQ6IDIwcHg7XFxufVxcblxcbi5sb2FkaW5nLWluZGljYXRvci1zaW5nbGUtcmluZyB7XFxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB3aWR0aDogMjBweDtcXG4gIGhlaWdodDogMjBweDtcXG4gIGJvcmRlcjogM3B4IHNvbGlkO1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgYW5pbWF0aW9uOiBsZHMtcmluZyAxLjJzIGN1YmljLWJlemllcigwLjUsIDAsIDAuNSwgMSkgaW5maW5pdGU7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktd2hpdGUpIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xcbn1cXG5cXG4ubG9hZGluZy1pbmRpY2F0b3Itc2luZ2xlLXJpbmc6bnRoLWNoaWxkKDEpIHtcXG4gIGFuaW1hdGlvbi1kZWxheTogLTAuNDVzO1xcbn1cXG5cXG4ubG9hZGluZy1pbmRpY2F0b3Itc2luZ2xlLXJpbmc6bnRoLWNoaWxkKDIpIHtcXG4gIGFuaW1hdGlvbi1kZWxheTogLTAuM3M7XFxufVxcblxcbi5sb2FkaW5nLWluZGljYXRvci1zaW5nbGUtcmluZzpudGgtY2hpbGQoMykge1xcbiAgYW5pbWF0aW9uLWRlbGF5OiAtMC4xNXM7XFxufVxcblxcbi5sb2FkaW5nLWluZGljYXRvci1zaW5nbGUtcmluZzpudGgtY2hpbGQoNCkge1xcbiAgYW5pbWF0aW9uLWRlbGF5OiAwcztcXG59XFxuXFxuQGtleWZyYW1lcyBsZHMtcmluZyB7XFxuICAwJSB7XFxuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XFxuICB9XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBgLmJhc2UtdGFibGUge1xuICAuaGlkZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gICYudGFibGUtcm9vdCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgfVxuXG4gIC50YWJsZS1oZWFkZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgJjp3aGVyZSguY2VudGVyKSB7XG4gICAgICAudGFibGUtY2VsbCB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cbiAgICB9XG4gICAgJjp3aGVyZSguc3RhcnQpIHtcbiAgICAgIC50YWJsZS1jZWxsIHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIH1cbiAgICB9XG4gICAgJjp3aGVyZSguZW5kKSB7XG4gICAgICAudGFibGUtY2VsbCB7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC50YWJsZS1ib2R5IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIC50YWJsZS1yb3cge1xuICB9XG5cbiAgLnRhYmxlLWNlbGwge1xuICAgIHBhZGRpbmc6IDhweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxufVxuYCwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi9jb21wb25lbnRzL3RhYmxlL3RhYmxlLXN0eWxlLmNzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFBQTtFQUNFO0lBQ0UsYUFBYTtFQUNmOztFQUVBO0lBQ0UsV0FBVztJQUNYLHlCQUF5QjtFQUMzQjs7RUFFQTtJQUNFLFdBQVc7O0lBRVg7TUFDRTtRQUNFLGtCQUFrQjtNQUNwQjtJQUNGO0lBQ0E7TUFDRTtRQUNFLGdCQUFnQjtNQUNsQjtJQUNGO0lBQ0E7TUFDRTtRQUNFLGlCQUFpQjtNQUNuQjtJQUNGO0VBQ0Y7O0VBRUE7SUFDRSxXQUFXO0VBQ2I7O0VBRUE7RUFDQTs7RUFFQTtJQUNFLFlBQVk7SUFDWixrQkFBa0I7SUFDbEIsc0JBQXNCO0VBQ3hCO0FBQ0ZcIixcInNvdXJjZXNDb250ZW50XCI6W1wiLmJhc2UtdGFibGUge1xcbiAgLmhpZGUge1xcbiAgICBkaXNwbGF5OiBub25lO1xcbiAgfVxcblxcbiAgJi50YWJsZS1yb290IHtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XFxuICB9XFxuXFxuICAudGFibGUtaGVhZGVyIHtcXG4gICAgd2lkdGg6IDEwMCU7XFxuXFxuICAgICY6d2hlcmUoLmNlbnRlcikge1xcbiAgICAgIC50YWJsZS1jZWxsIHtcXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gICAgICB9XFxuICAgIH1cXG4gICAgJjp3aGVyZSguc3RhcnQpIHtcXG4gICAgICAudGFibGUtY2VsbCB7XFxuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xcbiAgICAgIH1cXG4gICAgfVxcbiAgICAmOndoZXJlKC5lbmQpIHtcXG4gICAgICAudGFibGUtY2VsbCB7XFxuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcXG4gICAgICB9XFxuICAgIH1cXG4gIH1cXG5cXG4gIC50YWJsZS1ib2R5IHtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICB9XFxuXFxuICAudGFibGUtcm93IHtcXG4gIH1cXG5cXG4gIC50YWJsZS1jZWxsIHtcXG4gICAgcGFkZGluZzogOHB4O1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICB9XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBgLm51cmktdGhlbWUge1xuICAtLWNvbG9yLXByaW1hcnktYmxhY2s6ICMwMDAwMDA7XG4gIC0tY29sb3ItcHJpbWFyeS13aGl0ZTogI2ZmZmZmZjtcbiAgLS1jb2xvci1wcmltYXJ5LWdyYXktZmE6ICNmYWZhZmE7XG4gIC0tY29sb3ItcHJpbWFyeS1ncmF5LWY0OiAjZjRmNGY1O1xuICAtLWNvbG9yLXByaW1hcnktZ3JheS1lNDogI2U0ZTRlNztcbiAgLS1jb2xvci1wcmltYXJ5LWdyYXktZDQ6ICNkNGQ0ZDg7XG4gIC0tY29sb3ItcHJpbWFyeS1ncmF5LWExOiAjYTFhMWFhO1xuICAtLWNvbG9yLXByaW1hcnktZ3JheS03MTogIzcxNzE3YTtcbiAgLS1jb2xvci1wcmltYXJ5LWdyYXktNTI6ICM1MjUyNWI7XG4gIC0tY29sb3ItcHJpbWFyeS1ncmF5LTNmOiAjM2YzZjQ2O1xuICAtLWNvbG9yLXByaW1hcnktZ3JheS0yNzogIzI3MjcyYTtcbiAgLS1jb2xvci1wcmltYXJ5LWdyYXktMTg6ICMxODE4MWI7XG5cbiAgLS1jb2xvci1wb2ludC1wdXJwbGUtMzk6ICMzOTFkNWQ7XG4gIC0tY29sb3ItcG9pbnQtcHVycGxlLTRjOiAjNGMyNzdjO1xuICAtLWNvbG9yLXBvaW50LXB1cnBsZS1kZDogI2RkZDFmMDtcbiAgLS1jb2xvci1wb2ludC1wdXJwbGUtZTk6ICNlOWUwZjU7XG4gIC0tY29sb3ItcG9pbnQtcHVycGxlLWY0OiAjZjRlZmZhO1xuICAtLWNvbG9yLXBvaW50LXB1cnBsZS00MTogIzRjMWQ4ODtcbiAgLS1jb2xvci1wb2ludC1wdXJwbGUtOTU6ICM5NTdlYjQ7XG5cbiAgLS1jb2xvci1hY2NlbnQtcmVkLWRmOiAjZGY1MzVjO1xuICAtLWNvbG9yLWFjY2VudC1tYWdlbnRhLWIwOiAjYjAyZTRjO1xuICAtLWNvbG9yLWFjY2VudC1ncmVlbi0yODogIzI4OWEzYTtcblxuICAtLWNvbG9yLWV0Yy1za2VsZXRvbi1lNDogI2U0ZTRlNztcbiAgLS1jb2xvci1ldGMtc2tlbGV0b24tZjc6ICNmN2Y3Zjg7XG4gIC0tY29sb3ItZXRjLXNrZWxldG9uLWZmOiAjZmZmZmZmO1xuXG4gIC0tY29sb3ItZXRjLWhvdmVyLWVlOiAjZWVlZWVlO1xufVxuYCwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi9zdHlsZXMvdG9rZW4vY29sb3IuY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUFBO0VBQ0UsOEJBQThCO0VBQzlCLDhCQUE4QjtFQUM5QixnQ0FBZ0M7RUFDaEMsZ0NBQWdDO0VBQ2hDLGdDQUFnQztFQUNoQyxnQ0FBZ0M7RUFDaEMsZ0NBQWdDO0VBQ2hDLGdDQUFnQztFQUNoQyxnQ0FBZ0M7RUFDaEMsZ0NBQWdDO0VBQ2hDLGdDQUFnQztFQUNoQyxnQ0FBZ0M7O0VBRWhDLGdDQUFnQztFQUNoQyxnQ0FBZ0M7RUFDaEMsZ0NBQWdDO0VBQ2hDLGdDQUFnQztFQUNoQyxnQ0FBZ0M7RUFDaEMsZ0NBQWdDO0VBQ2hDLGdDQUFnQzs7RUFFaEMsOEJBQThCO0VBQzlCLGtDQUFrQztFQUNsQyxnQ0FBZ0M7O0VBRWhDLGdDQUFnQztFQUNoQyxnQ0FBZ0M7RUFDaEMsZ0NBQWdDOztFQUVoQyw2QkFBNkI7QUFDL0JcIixcInNvdXJjZXNDb250ZW50XCI6W1wiLm51cmktdGhlbWUge1xcbiAgLS1jb2xvci1wcmltYXJ5LWJsYWNrOiAjMDAwMDAwO1xcbiAgLS1jb2xvci1wcmltYXJ5LXdoaXRlOiAjZmZmZmZmO1xcbiAgLS1jb2xvci1wcmltYXJ5LWdyYXktZmE6ICNmYWZhZmE7XFxuICAtLWNvbG9yLXByaW1hcnktZ3JheS1mNDogI2Y0ZjRmNTtcXG4gIC0tY29sb3ItcHJpbWFyeS1ncmF5LWU0OiAjZTRlNGU3O1xcbiAgLS1jb2xvci1wcmltYXJ5LWdyYXktZDQ6ICNkNGQ0ZDg7XFxuICAtLWNvbG9yLXByaW1hcnktZ3JheS1hMTogI2ExYTFhYTtcXG4gIC0tY29sb3ItcHJpbWFyeS1ncmF5LTcxOiAjNzE3MTdhO1xcbiAgLS1jb2xvci1wcmltYXJ5LWdyYXktNTI6ICM1MjUyNWI7XFxuICAtLWNvbG9yLXByaW1hcnktZ3JheS0zZjogIzNmM2Y0NjtcXG4gIC0tY29sb3ItcHJpbWFyeS1ncmF5LTI3OiAjMjcyNzJhO1xcbiAgLS1jb2xvci1wcmltYXJ5LWdyYXktMTg6ICMxODE4MWI7XFxuXFxuICAtLWNvbG9yLXBvaW50LXB1cnBsZS0zOTogIzM5MWQ1ZDtcXG4gIC0tY29sb3ItcG9pbnQtcHVycGxlLTRjOiAjNGMyNzdjO1xcbiAgLS1jb2xvci1wb2ludC1wdXJwbGUtZGQ6ICNkZGQxZjA7XFxuICAtLWNvbG9yLXBvaW50LXB1cnBsZS1lOTogI2U5ZTBmNTtcXG4gIC0tY29sb3ItcG9pbnQtcHVycGxlLWY0OiAjZjRlZmZhO1xcbiAgLS1jb2xvci1wb2ludC1wdXJwbGUtNDE6ICM0YzFkODg7XFxuICAtLWNvbG9yLXBvaW50LXB1cnBsZS05NTogIzk1N2ViNDtcXG5cXG4gIC0tY29sb3ItYWNjZW50LXJlZC1kZjogI2RmNTM1YztcXG4gIC0tY29sb3ItYWNjZW50LW1hZ2VudGEtYjA6ICNiMDJlNGM7XFxuICAtLWNvbG9yLWFjY2VudC1ncmVlbi0yODogIzI4OWEzYTtcXG5cXG4gIC0tY29sb3ItZXRjLXNrZWxldG9uLWU0OiAjZTRlNGU3O1xcbiAgLS1jb2xvci1ldGMtc2tlbGV0b24tZjc6ICNmN2Y3Zjg7XFxuICAtLWNvbG9yLWV0Yy1za2VsZXRvbi1mZjogI2ZmZmZmZjtcXG5cXG4gIC0tY29sb3ItZXRjLWhvdmVyLWVlOiAjZWVlZWVlO1xcbn1cXG5cIl0sXCJzb3VyY2VSb290XCI6XCJcIn1dKTtcbi8vIEV4cG9ydHNcbmV4cG9ydCBkZWZhdWx0IF9fX0NTU19MT0FERVJfRVhQT1JUX19fO1xuIiwiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgYC5udXJpLXRoZW1lIHtcbiAgLS1mb250LXNpemUteHNtOiAxMnB4O1xuICAtLWZvbnQtc2l6ZS1zbTogMTRweDtcbiAgLS1mb250LXNpemUtYmFzZTogMTZweDtcbiAgLS1mb250LXNpemUtbGc6IDE4cHg7XG4gIC0tZm9udC1zaXplLXhsOiAyMHB4O1xuICAtLWZvbnQtc2l6ZS0yeGw6IDI0cHg7XG4gIC0tZm9udC1zaXplLTN4bDogMzBweDtcbiAgLS1mb250LXNpemUtNHhsOiAzNnB4O1xuICAtLWZvbnQtc2l6ZS01eGw6IDQ4cHg7XG4gIC0tZm9udC1zaXplLTZ4bDogNjBweDtcblxuICAtLWxpbmUtaGVpZ2h0LXhzbTogMThweDtcbiAgLS1saW5lLWhlaWdodC1zbTogMThweDtcbiAgLS1saW5lLWhlaWdodC1iYXNlOiAyMnB4O1xuICAtLWxpbmUtaGVpZ2h0LWxnOiAyNHB4O1xuICAtLWxpbmUtaGVpZ2h0LXhsOiAyOHB4O1xuICAtLWxpbmUtaGVpZ2h0LTJ4bDogMzJweDtcbiAgLS1saW5lLWhlaWdodC0zeGw6IDM2cHg7XG4gIC0tbGluZS1oZWlnaHQtNHhsOiA0M3B4O1xuICAtLWxpbmUtaGVpZ2h0LTV4bDogNjZweDtcbiAgLS1saW5lLWhlaWdodC02eGw6IDgycHg7XG5cbiAgLS1mb250LXdlaWdodC1yZWd1bGFyOiA0MDA7XG4gIC0tZm9udC13ZWlnaHQtbWVkaXVtOiA1MDA7XG4gIC0tZm9udC13ZWlnaHQtc2VtaWJvbGQ6IDYwMDtcbiAgLS1mb250LXdlaWdodC1ib2xkOiA3MDA7XG4gIC0tZm9udC13ZWlnaHQtZXh0cmFib2xkOiA4MDA7XG59XG5gLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uL3N0eWxlcy90b2tlbi9mb250LmNzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFBQTtFQUNFLHFCQUFxQjtFQUNyQixvQkFBb0I7RUFDcEIsc0JBQXNCO0VBQ3RCLG9CQUFvQjtFQUNwQixvQkFBb0I7RUFDcEIscUJBQXFCO0VBQ3JCLHFCQUFxQjtFQUNyQixxQkFBcUI7RUFDckIscUJBQXFCO0VBQ3JCLHFCQUFxQjs7RUFFckIsdUJBQXVCO0VBQ3ZCLHNCQUFzQjtFQUN0Qix3QkFBd0I7RUFDeEIsc0JBQXNCO0VBQ3RCLHNCQUFzQjtFQUN0Qix1QkFBdUI7RUFDdkIsdUJBQXVCO0VBQ3ZCLHVCQUF1QjtFQUN2Qix1QkFBdUI7RUFDdkIsdUJBQXVCOztFQUV2QiwwQkFBMEI7RUFDMUIseUJBQXlCO0VBQ3pCLDJCQUEyQjtFQUMzQix1QkFBdUI7RUFDdkIsNEJBQTRCO0FBQzlCXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIi5udXJpLXRoZW1lIHtcXG4gIC0tZm9udC1zaXplLXhzbTogMTJweDtcXG4gIC0tZm9udC1zaXplLXNtOiAxNHB4O1xcbiAgLS1mb250LXNpemUtYmFzZTogMTZweDtcXG4gIC0tZm9udC1zaXplLWxnOiAxOHB4O1xcbiAgLS1mb250LXNpemUteGw6IDIwcHg7XFxuICAtLWZvbnQtc2l6ZS0yeGw6IDI0cHg7XFxuICAtLWZvbnQtc2l6ZS0zeGw6IDMwcHg7XFxuICAtLWZvbnQtc2l6ZS00eGw6IDM2cHg7XFxuICAtLWZvbnQtc2l6ZS01eGw6IDQ4cHg7XFxuICAtLWZvbnQtc2l6ZS02eGw6IDYwcHg7XFxuXFxuICAtLWxpbmUtaGVpZ2h0LXhzbTogMThweDtcXG4gIC0tbGluZS1oZWlnaHQtc206IDE4cHg7XFxuICAtLWxpbmUtaGVpZ2h0LWJhc2U6IDIycHg7XFxuICAtLWxpbmUtaGVpZ2h0LWxnOiAyNHB4O1xcbiAgLS1saW5lLWhlaWdodC14bDogMjhweDtcXG4gIC0tbGluZS1oZWlnaHQtMnhsOiAzMnB4O1xcbiAgLS1saW5lLWhlaWdodC0zeGw6IDM2cHg7XFxuICAtLWxpbmUtaGVpZ2h0LTR4bDogNDNweDtcXG4gIC0tbGluZS1oZWlnaHQtNXhsOiA2NnB4O1xcbiAgLS1saW5lLWhlaWdodC02eGw6IDgycHg7XFxuXFxuICAtLWZvbnQtd2VpZ2h0LXJlZ3VsYXI6IDQwMDtcXG4gIC0tZm9udC13ZWlnaHQtbWVkaXVtOiA1MDA7XFxuICAtLWZvbnQtd2VpZ2h0LXNlbWlib2xkOiA2MDA7XFxuICAtLWZvbnQtd2VpZ2h0LWJvbGQ6IDcwMDtcXG4gIC0tZm9udC13ZWlnaHQtZXh0cmFib2xkOiA4MDA7XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCJcInVzZSBzdHJpY3RcIjtcblxuLypcbiAgTUlUIExpY2Vuc2UgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHBcbiAgQXV0aG9yIFRvYmlhcyBLb3BwZXJzIEBzb2tyYVxuKi9cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGNzc1dpdGhNYXBwaW5nVG9TdHJpbmcpIHtcbiAgdmFyIGxpc3QgPSBbXTtcblxuICAvLyByZXR1cm4gdGhlIGxpc3Qgb2YgbW9kdWxlcyBhcyBjc3Mgc3RyaW5nXG4gIGxpc3QudG9TdHJpbmcgPSBmdW5jdGlvbiB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgIHZhciBjb250ZW50ID0gXCJcIjtcbiAgICAgIHZhciBuZWVkTGF5ZXIgPSB0eXBlb2YgaXRlbVs1XSAhPT0gXCJ1bmRlZmluZWRcIjtcbiAgICAgIGlmIChpdGVtWzRdKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJAc3VwcG9ydHMgKFwiLmNvbmNhdChpdGVtWzRdLCBcIikge1wiKTtcbiAgICAgIH1cbiAgICAgIGlmIChpdGVtWzJdKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJAbWVkaWEgXCIuY29uY2F0KGl0ZW1bMl0sIFwiIHtcIik7XG4gICAgICB9XG4gICAgICBpZiAobmVlZExheWVyKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJAbGF5ZXJcIi5jb25jYXQoaXRlbVs1XS5sZW5ndGggPiAwID8gXCIgXCIuY29uY2F0KGl0ZW1bNV0pIDogXCJcIiwgXCIge1wiKTtcbiAgICAgIH1cbiAgICAgIGNvbnRlbnQgKz0gY3NzV2l0aE1hcHBpbmdUb1N0cmluZyhpdGVtKTtcbiAgICAgIGlmIChuZWVkTGF5ZXIpIHtcbiAgICAgICAgY29udGVudCArPSBcIn1cIjtcbiAgICAgIH1cbiAgICAgIGlmIChpdGVtWzJdKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJ9XCI7XG4gICAgICB9XG4gICAgICBpZiAoaXRlbVs0XSkge1xuICAgICAgICBjb250ZW50ICs9IFwifVwiO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNvbnRlbnQ7XG4gICAgfSkuam9pbihcIlwiKTtcbiAgfTtcblxuICAvLyBpbXBvcnQgYSBsaXN0IG9mIG1vZHVsZXMgaW50byB0aGUgbGlzdFxuICBsaXN0LmkgPSBmdW5jdGlvbiBpKG1vZHVsZXMsIG1lZGlhLCBkZWR1cGUsIHN1cHBvcnRzLCBsYXllcikge1xuICAgIGlmICh0eXBlb2YgbW9kdWxlcyA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgbW9kdWxlcyA9IFtbbnVsbCwgbW9kdWxlcywgdW5kZWZpbmVkXV07XG4gICAgfVxuICAgIHZhciBhbHJlYWR5SW1wb3J0ZWRNb2R1bGVzID0ge307XG4gICAgaWYgKGRlZHVwZSkge1xuICAgICAgZm9yICh2YXIgayA9IDA7IGsgPCB0aGlzLmxlbmd0aDsgaysrKSB7XG4gICAgICAgIHZhciBpZCA9IHRoaXNba11bMF07XG4gICAgICAgIGlmIChpZCAhPSBudWxsKSB7XG4gICAgICAgICAgYWxyZWFkeUltcG9ydGVkTW9kdWxlc1tpZF0gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGZvciAodmFyIF9rID0gMDsgX2sgPCBtb2R1bGVzLmxlbmd0aDsgX2srKykge1xuICAgICAgdmFyIGl0ZW0gPSBbXS5jb25jYXQobW9kdWxlc1tfa10pO1xuICAgICAgaWYgKGRlZHVwZSAmJiBhbHJlYWR5SW1wb3J0ZWRNb2R1bGVzW2l0ZW1bMF1dKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBsYXllciAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICBpZiAodHlwZW9mIGl0ZW1bNV0gPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICBpdGVtWzVdID0gbGF5ZXI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXRlbVsxXSA9IFwiQGxheWVyXCIuY29uY2F0KGl0ZW1bNV0ubGVuZ3RoID4gMCA/IFwiIFwiLmNvbmNhdChpdGVtWzVdKSA6IFwiXCIsIFwiIHtcIikuY29uY2F0KGl0ZW1bMV0sIFwifVwiKTtcbiAgICAgICAgICBpdGVtWzVdID0gbGF5ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChtZWRpYSkge1xuICAgICAgICBpZiAoIWl0ZW1bMl0pIHtcbiAgICAgICAgICBpdGVtWzJdID0gbWVkaWE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXRlbVsxXSA9IFwiQG1lZGlhIFwiLmNvbmNhdChpdGVtWzJdLCBcIiB7XCIpLmNvbmNhdChpdGVtWzFdLCBcIn1cIik7XG4gICAgICAgICAgaXRlbVsyXSA9IG1lZGlhO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoc3VwcG9ydHMpIHtcbiAgICAgICAgaWYgKCFpdGVtWzRdKSB7XG4gICAgICAgICAgaXRlbVs0XSA9IFwiXCIuY29uY2F0KHN1cHBvcnRzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpdGVtWzFdID0gXCJAc3VwcG9ydHMgKFwiLmNvbmNhdChpdGVtWzRdLCBcIikge1wiKS5jb25jYXQoaXRlbVsxXSwgXCJ9XCIpO1xuICAgICAgICAgIGl0ZW1bNF0gPSBzdXBwb3J0cztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbGlzdC5wdXNoKGl0ZW0pO1xuICAgIH1cbiAgfTtcbiAgcmV0dXJuIGxpc3Q7XG59OyIsIlwidXNlIHN0cmljdFwiO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdGVtKSB7XG4gIHZhciBjb250ZW50ID0gaXRlbVsxXTtcbiAgdmFyIGNzc01hcHBpbmcgPSBpdGVtWzNdO1xuICBpZiAoIWNzc01hcHBpbmcpIHtcbiAgICByZXR1cm4gY29udGVudDtcbiAgfVxuICBpZiAodHlwZW9mIGJ0b2EgPT09IFwiZnVuY3Rpb25cIikge1xuICAgIHZhciBiYXNlNjQgPSBidG9hKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShjc3NNYXBwaW5nKSkpKTtcbiAgICB2YXIgZGF0YSA9IFwic291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsXCIuY29uY2F0KGJhc2U2NCk7XG4gICAgdmFyIHNvdXJjZU1hcHBpbmcgPSBcIi8qIyBcIi5jb25jYXQoZGF0YSwgXCIgKi9cIik7XG4gICAgcmV0dXJuIFtjb250ZW50XS5jb25jYXQoW3NvdXJjZU1hcHBpbmddKS5qb2luKFwiXFxuXCIpO1xuICB9XG4gIHJldHVybiBbY29udGVudF0uam9pbihcIlxcblwiKTtcbn07IiwiLyoqXG4gKiBAbGljZW5zZSBSZWFjdFxuICogcmVhY3QtanN4LXJ1bnRpbWUucHJvZHVjdGlvbi5taW4uanNcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIEZhY2Vib29rLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuJ3VzZSBzdHJpY3QnO3ZhciBmPXJlcXVpcmUoXCJyZWFjdFwiKSxrPVN5bWJvbC5mb3IoXCJyZWFjdC5lbGVtZW50XCIpLGw9U3ltYm9sLmZvcihcInJlYWN0LmZyYWdtZW50XCIpLG09T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxuPWYuX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQuUmVhY3RDdXJyZW50T3duZXIscD17a2V5OiEwLHJlZjohMCxfX3NlbGY6ITAsX19zb3VyY2U6ITB9O1xuZnVuY3Rpb24gcShjLGEsZyl7dmFyIGIsZD17fSxlPW51bGwsaD1udWxsO3ZvaWQgMCE9PWcmJihlPVwiXCIrZyk7dm9pZCAwIT09YS5rZXkmJihlPVwiXCIrYS5rZXkpO3ZvaWQgMCE9PWEucmVmJiYoaD1hLnJlZik7Zm9yKGIgaW4gYSltLmNhbGwoYSxiKSYmIXAuaGFzT3duUHJvcGVydHkoYikmJihkW2JdPWFbYl0pO2lmKGMmJmMuZGVmYXVsdFByb3BzKWZvcihiIGluIGE9Yy5kZWZhdWx0UHJvcHMsYSl2b2lkIDA9PT1kW2JdJiYoZFtiXT1hW2JdKTtyZXR1cm57JCR0eXBlb2Y6ayx0eXBlOmMsa2V5OmUscmVmOmgscHJvcHM6ZCxfb3duZXI6bi5jdXJyZW50fX1leHBvcnRzLkZyYWdtZW50PWw7ZXhwb3J0cy5qc3g9cTtleHBvcnRzLmpzeHM9cTtcbiIsIi8qKlxuICogQGxpY2Vuc2UgUmVhY3RcbiAqIHJlYWN0LnByb2R1Y3Rpb24ubWluLmpzXG4gKlxuICogQ29weXJpZ2h0IChjKSBGYWNlYm9vaywgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cbid1c2Ugc3RyaWN0Jzt2YXIgbD1TeW1ib2wuZm9yKFwicmVhY3QuZWxlbWVudFwiKSxuPVN5bWJvbC5mb3IoXCJyZWFjdC5wb3J0YWxcIikscD1TeW1ib2wuZm9yKFwicmVhY3QuZnJhZ21lbnRcIikscT1TeW1ib2wuZm9yKFwicmVhY3Quc3RyaWN0X21vZGVcIikscj1TeW1ib2wuZm9yKFwicmVhY3QucHJvZmlsZXJcIiksdD1TeW1ib2wuZm9yKFwicmVhY3QucHJvdmlkZXJcIiksdT1TeW1ib2wuZm9yKFwicmVhY3QuY29udGV4dFwiKSx2PVN5bWJvbC5mb3IoXCJyZWFjdC5mb3J3YXJkX3JlZlwiKSx3PVN5bWJvbC5mb3IoXCJyZWFjdC5zdXNwZW5zZVwiKSx4PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vXCIpLHk9U3ltYm9sLmZvcihcInJlYWN0LmxhenlcIiksej1TeW1ib2wuaXRlcmF0b3I7ZnVuY3Rpb24gQShhKXtpZihudWxsPT09YXx8XCJvYmplY3RcIiE9PXR5cGVvZiBhKXJldHVybiBudWxsO2E9eiYmYVt6XXx8YVtcIkBAaXRlcmF0b3JcIl07cmV0dXJuXCJmdW5jdGlvblwiPT09dHlwZW9mIGE/YTpudWxsfVxudmFyIEI9e2lzTW91bnRlZDpmdW5jdGlvbigpe3JldHVybiExfSxlbnF1ZXVlRm9yY2VVcGRhdGU6ZnVuY3Rpb24oKXt9LGVucXVldWVSZXBsYWNlU3RhdGU6ZnVuY3Rpb24oKXt9LGVucXVldWVTZXRTdGF0ZTpmdW5jdGlvbigpe319LEM9T2JqZWN0LmFzc2lnbixEPXt9O2Z1bmN0aW9uIEUoYSxiLGUpe3RoaXMucHJvcHM9YTt0aGlzLmNvbnRleHQ9Yjt0aGlzLnJlZnM9RDt0aGlzLnVwZGF0ZXI9ZXx8Qn1FLnByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50PXt9O1xuRS5wcm90b3R5cGUuc2V0U3RhdGU9ZnVuY3Rpb24oYSxiKXtpZihcIm9iamVjdFwiIT09dHlwZW9mIGEmJlwiZnVuY3Rpb25cIiE9PXR5cGVvZiBhJiZudWxsIT1hKXRocm93IEVycm9yKFwic2V0U3RhdGUoLi4uKTogdGFrZXMgYW4gb2JqZWN0IG9mIHN0YXRlIHZhcmlhYmxlcyB0byB1cGRhdGUgb3IgYSBmdW5jdGlvbiB3aGljaCByZXR1cm5zIGFuIG9iamVjdCBvZiBzdGF0ZSB2YXJpYWJsZXMuXCIpO3RoaXMudXBkYXRlci5lbnF1ZXVlU2V0U3RhdGUodGhpcyxhLGIsXCJzZXRTdGF0ZVwiKX07RS5wcm90b3R5cGUuZm9yY2VVcGRhdGU9ZnVuY3Rpb24oYSl7dGhpcy51cGRhdGVyLmVucXVldWVGb3JjZVVwZGF0ZSh0aGlzLGEsXCJmb3JjZVVwZGF0ZVwiKX07ZnVuY3Rpb24gRigpe31GLnByb3RvdHlwZT1FLnByb3RvdHlwZTtmdW5jdGlvbiBHKGEsYixlKXt0aGlzLnByb3BzPWE7dGhpcy5jb250ZXh0PWI7dGhpcy5yZWZzPUQ7dGhpcy51cGRhdGVyPWV8fEJ9dmFyIEg9Ry5wcm90b3R5cGU9bmV3IEY7XG5ILmNvbnN0cnVjdG9yPUc7QyhILEUucHJvdG90eXBlKTtILmlzUHVyZVJlYWN0Q29tcG9uZW50PSEwO3ZhciBJPUFycmF5LmlzQXJyYXksSj1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LEs9e2N1cnJlbnQ6bnVsbH0sTD17a2V5OiEwLHJlZjohMCxfX3NlbGY6ITAsX19zb3VyY2U6ITB9O1xuZnVuY3Rpb24gTShhLGIsZSl7dmFyIGQsYz17fSxrPW51bGwsaD1udWxsO2lmKG51bGwhPWIpZm9yKGQgaW4gdm9pZCAwIT09Yi5yZWYmJihoPWIucmVmKSx2b2lkIDAhPT1iLmtleSYmKGs9XCJcIitiLmtleSksYilKLmNhbGwoYixkKSYmIUwuaGFzT3duUHJvcGVydHkoZCkmJihjW2RdPWJbZF0pO3ZhciBnPWFyZ3VtZW50cy5sZW5ndGgtMjtpZigxPT09ZyljLmNoaWxkcmVuPWU7ZWxzZSBpZigxPGcpe2Zvcih2YXIgZj1BcnJheShnKSxtPTA7bTxnO20rKylmW21dPWFyZ3VtZW50c1ttKzJdO2MuY2hpbGRyZW49Zn1pZihhJiZhLmRlZmF1bHRQcm9wcylmb3IoZCBpbiBnPWEuZGVmYXVsdFByb3BzLGcpdm9pZCAwPT09Y1tkXSYmKGNbZF09Z1tkXSk7cmV0dXJueyQkdHlwZW9mOmwsdHlwZTphLGtleTprLHJlZjpoLHByb3BzOmMsX293bmVyOksuY3VycmVudH19XG5mdW5jdGlvbiBOKGEsYil7cmV0dXJueyQkdHlwZW9mOmwsdHlwZTphLnR5cGUsa2V5OmIscmVmOmEucmVmLHByb3BzOmEucHJvcHMsX293bmVyOmEuX293bmVyfX1mdW5jdGlvbiBPKGEpe3JldHVyblwib2JqZWN0XCI9PT10eXBlb2YgYSYmbnVsbCE9PWEmJmEuJCR0eXBlb2Y9PT1sfWZ1bmN0aW9uIGVzY2FwZShhKXt2YXIgYj17XCI9XCI6XCI9MFwiLFwiOlwiOlwiPTJcIn07cmV0dXJuXCIkXCIrYS5yZXBsYWNlKC9bPTpdL2csZnVuY3Rpb24oYSl7cmV0dXJuIGJbYV19KX12YXIgUD0vXFwvKy9nO2Z1bmN0aW9uIFEoYSxiKXtyZXR1cm5cIm9iamVjdFwiPT09dHlwZW9mIGEmJm51bGwhPT1hJiZudWxsIT1hLmtleT9lc2NhcGUoXCJcIithLmtleSk6Yi50b1N0cmluZygzNil9XG5mdW5jdGlvbiBSKGEsYixlLGQsYyl7dmFyIGs9dHlwZW9mIGE7aWYoXCJ1bmRlZmluZWRcIj09PWt8fFwiYm9vbGVhblwiPT09aylhPW51bGw7dmFyIGg9ITE7aWYobnVsbD09PWEpaD0hMDtlbHNlIHN3aXRjaChrKXtjYXNlIFwic3RyaW5nXCI6Y2FzZSBcIm51bWJlclwiOmg9ITA7YnJlYWs7Y2FzZSBcIm9iamVjdFwiOnN3aXRjaChhLiQkdHlwZW9mKXtjYXNlIGw6Y2FzZSBuOmg9ITB9fWlmKGgpcmV0dXJuIGg9YSxjPWMoaCksYT1cIlwiPT09ZD9cIi5cIitRKGgsMCk6ZCxJKGMpPyhlPVwiXCIsbnVsbCE9YSYmKGU9YS5yZXBsYWNlKFAsXCIkJi9cIikrXCIvXCIpLFIoYyxiLGUsXCJcIixmdW5jdGlvbihhKXtyZXR1cm4gYX0pKTpudWxsIT1jJiYoTyhjKSYmKGM9TihjLGUrKCFjLmtleXx8aCYmaC5rZXk9PT1jLmtleT9cIlwiOihcIlwiK2Mua2V5KS5yZXBsYWNlKFAsXCIkJi9cIikrXCIvXCIpK2EpKSxiLnB1c2goYykpLDE7aD0wO2Q9XCJcIj09PWQ/XCIuXCI6ZCtcIjpcIjtpZihJKGEpKWZvcih2YXIgZz0wO2c8YS5sZW5ndGg7ZysrKXtrPVxuYVtnXTt2YXIgZj1kK1EoayxnKTtoKz1SKGssYixlLGYsYyl9ZWxzZSBpZihmPUEoYSksXCJmdW5jdGlvblwiPT09dHlwZW9mIGYpZm9yKGE9Zi5jYWxsKGEpLGc9MDshKGs9YS5uZXh0KCkpLmRvbmU7KWs9ay52YWx1ZSxmPWQrUShrLGcrKyksaCs9UihrLGIsZSxmLGMpO2Vsc2UgaWYoXCJvYmplY3RcIj09PWspdGhyb3cgYj1TdHJpbmcoYSksRXJyb3IoXCJPYmplY3RzIGFyZSBub3QgdmFsaWQgYXMgYSBSZWFjdCBjaGlsZCAoZm91bmQ6IFwiKyhcIltvYmplY3QgT2JqZWN0XVwiPT09Yj9cIm9iamVjdCB3aXRoIGtleXMge1wiK09iamVjdC5rZXlzKGEpLmpvaW4oXCIsIFwiKStcIn1cIjpiKStcIikuIElmIHlvdSBtZWFudCB0byByZW5kZXIgYSBjb2xsZWN0aW9uIG9mIGNoaWxkcmVuLCB1c2UgYW4gYXJyYXkgaW5zdGVhZC5cIik7cmV0dXJuIGh9XG5mdW5jdGlvbiBTKGEsYixlKXtpZihudWxsPT1hKXJldHVybiBhO3ZhciBkPVtdLGM9MDtSKGEsZCxcIlwiLFwiXCIsZnVuY3Rpb24oYSl7cmV0dXJuIGIuY2FsbChlLGEsYysrKX0pO3JldHVybiBkfWZ1bmN0aW9uIFQoYSl7aWYoLTE9PT1hLl9zdGF0dXMpe3ZhciBiPWEuX3Jlc3VsdDtiPWIoKTtiLnRoZW4oZnVuY3Rpb24oYil7aWYoMD09PWEuX3N0YXR1c3x8LTE9PT1hLl9zdGF0dXMpYS5fc3RhdHVzPTEsYS5fcmVzdWx0PWJ9LGZ1bmN0aW9uKGIpe2lmKDA9PT1hLl9zdGF0dXN8fC0xPT09YS5fc3RhdHVzKWEuX3N0YXR1cz0yLGEuX3Jlc3VsdD1ifSk7LTE9PT1hLl9zdGF0dXMmJihhLl9zdGF0dXM9MCxhLl9yZXN1bHQ9Yil9aWYoMT09PWEuX3N0YXR1cylyZXR1cm4gYS5fcmVzdWx0LmRlZmF1bHQ7dGhyb3cgYS5fcmVzdWx0O31cbnZhciBVPXtjdXJyZW50Om51bGx9LFY9e3RyYW5zaXRpb246bnVsbH0sVz17UmVhY3RDdXJyZW50RGlzcGF0Y2hlcjpVLFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnOlYsUmVhY3RDdXJyZW50T3duZXI6S307ZnVuY3Rpb24gWCgpe3Rocm93IEVycm9yKFwiYWN0KC4uLikgaXMgbm90IHN1cHBvcnRlZCBpbiBwcm9kdWN0aW9uIGJ1aWxkcyBvZiBSZWFjdC5cIik7fVxuZXhwb3J0cy5DaGlsZHJlbj17bWFwOlMsZm9yRWFjaDpmdW5jdGlvbihhLGIsZSl7UyhhLGZ1bmN0aW9uKCl7Yi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LGUpfSxjb3VudDpmdW5jdGlvbihhKXt2YXIgYj0wO1MoYSxmdW5jdGlvbigpe2IrK30pO3JldHVybiBifSx0b0FycmF5OmZ1bmN0aW9uKGEpe3JldHVybiBTKGEsZnVuY3Rpb24oYSl7cmV0dXJuIGF9KXx8W119LG9ubHk6ZnVuY3Rpb24oYSl7aWYoIU8oYSkpdGhyb3cgRXJyb3IoXCJSZWFjdC5DaGlsZHJlbi5vbmx5IGV4cGVjdGVkIHRvIHJlY2VpdmUgYSBzaW5nbGUgUmVhY3QgZWxlbWVudCBjaGlsZC5cIik7cmV0dXJuIGF9fTtleHBvcnRzLkNvbXBvbmVudD1FO2V4cG9ydHMuRnJhZ21lbnQ9cDtleHBvcnRzLlByb2ZpbGVyPXI7ZXhwb3J0cy5QdXJlQ29tcG9uZW50PUc7ZXhwb3J0cy5TdHJpY3RNb2RlPXE7ZXhwb3J0cy5TdXNwZW5zZT13O1xuZXhwb3J0cy5fX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRD1XO2V4cG9ydHMuYWN0PVg7XG5leHBvcnRzLmNsb25lRWxlbWVudD1mdW5jdGlvbihhLGIsZSl7aWYobnVsbD09PWF8fHZvaWQgMD09PWEpdGhyb3cgRXJyb3IoXCJSZWFjdC5jbG9uZUVsZW1lbnQoLi4uKTogVGhlIGFyZ3VtZW50IG11c3QgYmUgYSBSZWFjdCBlbGVtZW50LCBidXQgeW91IHBhc3NlZCBcIithK1wiLlwiKTt2YXIgZD1DKHt9LGEucHJvcHMpLGM9YS5rZXksaz1hLnJlZixoPWEuX293bmVyO2lmKG51bGwhPWIpe3ZvaWQgMCE9PWIucmVmJiYoaz1iLnJlZixoPUsuY3VycmVudCk7dm9pZCAwIT09Yi5rZXkmJihjPVwiXCIrYi5rZXkpO2lmKGEudHlwZSYmYS50eXBlLmRlZmF1bHRQcm9wcyl2YXIgZz1hLnR5cGUuZGVmYXVsdFByb3BzO2ZvcihmIGluIGIpSi5jYWxsKGIsZikmJiFMLmhhc093blByb3BlcnR5KGYpJiYoZFtmXT12b2lkIDA9PT1iW2ZdJiZ2b2lkIDAhPT1nP2dbZl06YltmXSl9dmFyIGY9YXJndW1lbnRzLmxlbmd0aC0yO2lmKDE9PT1mKWQuY2hpbGRyZW49ZTtlbHNlIGlmKDE8Zil7Zz1BcnJheShmKTtcbmZvcih2YXIgbT0wO208ZjttKyspZ1ttXT1hcmd1bWVudHNbbSsyXTtkLmNoaWxkcmVuPWd9cmV0dXJueyQkdHlwZW9mOmwsdHlwZTphLnR5cGUsa2V5OmMscmVmOmsscHJvcHM6ZCxfb3duZXI6aH19O2V4cG9ydHMuY3JlYXRlQ29udGV4dD1mdW5jdGlvbihhKXthPXskJHR5cGVvZjp1LF9jdXJyZW50VmFsdWU6YSxfY3VycmVudFZhbHVlMjphLF90aHJlYWRDb3VudDowLFByb3ZpZGVyOm51bGwsQ29uc3VtZXI6bnVsbCxfZGVmYXVsdFZhbHVlOm51bGwsX2dsb2JhbE5hbWU6bnVsbH07YS5Qcm92aWRlcj17JCR0eXBlb2Y6dCxfY29udGV4dDphfTtyZXR1cm4gYS5Db25zdW1lcj1hfTtleHBvcnRzLmNyZWF0ZUVsZW1lbnQ9TTtleHBvcnRzLmNyZWF0ZUZhY3Rvcnk9ZnVuY3Rpb24oYSl7dmFyIGI9TS5iaW5kKG51bGwsYSk7Yi50eXBlPWE7cmV0dXJuIGJ9O2V4cG9ydHMuY3JlYXRlUmVmPWZ1bmN0aW9uKCl7cmV0dXJue2N1cnJlbnQ6bnVsbH19O1xuZXhwb3J0cy5mb3J3YXJkUmVmPWZ1bmN0aW9uKGEpe3JldHVybnskJHR5cGVvZjp2LHJlbmRlcjphfX07ZXhwb3J0cy5pc1ZhbGlkRWxlbWVudD1PO2V4cG9ydHMubGF6eT1mdW5jdGlvbihhKXtyZXR1cm57JCR0eXBlb2Y6eSxfcGF5bG9hZDp7X3N0YXR1czotMSxfcmVzdWx0OmF9LF9pbml0OlR9fTtleHBvcnRzLm1lbW89ZnVuY3Rpb24oYSxiKXtyZXR1cm57JCR0eXBlb2Y6eCx0eXBlOmEsY29tcGFyZTp2b2lkIDA9PT1iP251bGw6Yn19O2V4cG9ydHMuc3RhcnRUcmFuc2l0aW9uPWZ1bmN0aW9uKGEpe3ZhciBiPVYudHJhbnNpdGlvbjtWLnRyYW5zaXRpb249e307dHJ5e2EoKX1maW5hbGx5e1YudHJhbnNpdGlvbj1ifX07ZXhwb3J0cy51bnN0YWJsZV9hY3Q9WDtleHBvcnRzLnVzZUNhbGxiYWNrPWZ1bmN0aW9uKGEsYil7cmV0dXJuIFUuY3VycmVudC51c2VDYWxsYmFjayhhLGIpfTtleHBvcnRzLnVzZUNvbnRleHQ9ZnVuY3Rpb24oYSl7cmV0dXJuIFUuY3VycmVudC51c2VDb250ZXh0KGEpfTtcbmV4cG9ydHMudXNlRGVidWdWYWx1ZT1mdW5jdGlvbigpe307ZXhwb3J0cy51c2VEZWZlcnJlZFZhbHVlPWZ1bmN0aW9uKGEpe3JldHVybiBVLmN1cnJlbnQudXNlRGVmZXJyZWRWYWx1ZShhKX07ZXhwb3J0cy51c2VFZmZlY3Q9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gVS5jdXJyZW50LnVzZUVmZmVjdChhLGIpfTtleHBvcnRzLnVzZUlkPWZ1bmN0aW9uKCl7cmV0dXJuIFUuY3VycmVudC51c2VJZCgpfTtleHBvcnRzLnVzZUltcGVyYXRpdmVIYW5kbGU9ZnVuY3Rpb24oYSxiLGUpe3JldHVybiBVLmN1cnJlbnQudXNlSW1wZXJhdGl2ZUhhbmRsZShhLGIsZSl9O2V4cG9ydHMudXNlSW5zZXJ0aW9uRWZmZWN0PWZ1bmN0aW9uKGEsYil7cmV0dXJuIFUuY3VycmVudC51c2VJbnNlcnRpb25FZmZlY3QoYSxiKX07ZXhwb3J0cy51c2VMYXlvdXRFZmZlY3Q9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gVS5jdXJyZW50LnVzZUxheW91dEVmZmVjdChhLGIpfTtcbmV4cG9ydHMudXNlTWVtbz1mdW5jdGlvbihhLGIpe3JldHVybiBVLmN1cnJlbnQudXNlTWVtbyhhLGIpfTtleHBvcnRzLnVzZVJlZHVjZXI9ZnVuY3Rpb24oYSxiLGUpe3JldHVybiBVLmN1cnJlbnQudXNlUmVkdWNlcihhLGIsZSl9O2V4cG9ydHMudXNlUmVmPWZ1bmN0aW9uKGEpe3JldHVybiBVLmN1cnJlbnQudXNlUmVmKGEpfTtleHBvcnRzLnVzZVN0YXRlPWZ1bmN0aW9uKGEpe3JldHVybiBVLmN1cnJlbnQudXNlU3RhdGUoYSl9O2V4cG9ydHMudXNlU3luY0V4dGVybmFsU3RvcmU9ZnVuY3Rpb24oYSxiLGUpe3JldHVybiBVLmN1cnJlbnQudXNlU3luY0V4dGVybmFsU3RvcmUoYSxiLGUpfTtleHBvcnRzLnVzZVRyYW5zaXRpb249ZnVuY3Rpb24oKXtyZXR1cm4gVS5jdXJyZW50LnVzZVRyYW5zaXRpb24oKX07ZXhwb3J0cy52ZXJzaW9uPVwiMTguMy4xXCI7XG4iLCIndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QucHJvZHVjdGlvbi5taW4uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QuZGV2ZWxvcG1lbnQuanMnKTtcbn1cbiIsIid1c2Ugc3RyaWN0JztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1qc3gtcnVudGltZS5wcm9kdWN0aW9uLm1pbi5qcycpO1xufSBlbHNlIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1qc3gtcnVudGltZS5kZXZlbG9wbWVudC5qcycpO1xufVxuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciBzdHlsZXNJbkRPTSA9IFtdO1xuZnVuY3Rpb24gZ2V0SW5kZXhCeUlkZW50aWZpZXIoaWRlbnRpZmllcikge1xuICB2YXIgcmVzdWx0ID0gLTE7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgc3R5bGVzSW5ET00ubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoc3R5bGVzSW5ET01baV0uaWRlbnRpZmllciA9PT0gaWRlbnRpZmllcikge1xuICAgICAgcmVzdWx0ID0gaTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuZnVuY3Rpb24gbW9kdWxlc1RvRG9tKGxpc3QsIG9wdGlvbnMpIHtcbiAgdmFyIGlkQ291bnRNYXAgPSB7fTtcbiAgdmFyIGlkZW50aWZpZXJzID0gW107XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKykge1xuICAgIHZhciBpdGVtID0gbGlzdFtpXTtcbiAgICB2YXIgaWQgPSBvcHRpb25zLmJhc2UgPyBpdGVtWzBdICsgb3B0aW9ucy5iYXNlIDogaXRlbVswXTtcbiAgICB2YXIgY291bnQgPSBpZENvdW50TWFwW2lkXSB8fCAwO1xuICAgIHZhciBpZGVudGlmaWVyID0gXCJcIi5jb25jYXQoaWQsIFwiIFwiKS5jb25jYXQoY291bnQpO1xuICAgIGlkQ291bnRNYXBbaWRdID0gY291bnQgKyAxO1xuICAgIHZhciBpbmRleEJ5SWRlbnRpZmllciA9IGdldEluZGV4QnlJZGVudGlmaWVyKGlkZW50aWZpZXIpO1xuICAgIHZhciBvYmogPSB7XG4gICAgICBjc3M6IGl0ZW1bMV0sXG4gICAgICBtZWRpYTogaXRlbVsyXSxcbiAgICAgIHNvdXJjZU1hcDogaXRlbVszXSxcbiAgICAgIHN1cHBvcnRzOiBpdGVtWzRdLFxuICAgICAgbGF5ZXI6IGl0ZW1bNV1cbiAgICB9O1xuICAgIGlmIChpbmRleEJ5SWRlbnRpZmllciAhPT0gLTEpIHtcbiAgICAgIHN0eWxlc0luRE9NW2luZGV4QnlJZGVudGlmaWVyXS5yZWZlcmVuY2VzKys7XG4gICAgICBzdHlsZXNJbkRPTVtpbmRleEJ5SWRlbnRpZmllcl0udXBkYXRlcihvYmopO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgdXBkYXRlciA9IGFkZEVsZW1lbnRTdHlsZShvYmosIG9wdGlvbnMpO1xuICAgICAgb3B0aW9ucy5ieUluZGV4ID0gaTtcbiAgICAgIHN0eWxlc0luRE9NLnNwbGljZShpLCAwLCB7XG4gICAgICAgIGlkZW50aWZpZXI6IGlkZW50aWZpZXIsXG4gICAgICAgIHVwZGF0ZXI6IHVwZGF0ZXIsXG4gICAgICAgIHJlZmVyZW5jZXM6IDFcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZGVudGlmaWVycy5wdXNoKGlkZW50aWZpZXIpO1xuICB9XG4gIHJldHVybiBpZGVudGlmaWVycztcbn1cbmZ1bmN0aW9uIGFkZEVsZW1lbnRTdHlsZShvYmosIG9wdGlvbnMpIHtcbiAgdmFyIGFwaSA9IG9wdGlvbnMuZG9tQVBJKG9wdGlvbnMpO1xuICBhcGkudXBkYXRlKG9iaik7XG4gIHZhciB1cGRhdGVyID0gZnVuY3Rpb24gdXBkYXRlcihuZXdPYmopIHtcbiAgICBpZiAobmV3T2JqKSB7XG4gICAgICBpZiAobmV3T2JqLmNzcyA9PT0gb2JqLmNzcyAmJiBuZXdPYmoubWVkaWEgPT09IG9iai5tZWRpYSAmJiBuZXdPYmouc291cmNlTWFwID09PSBvYmouc291cmNlTWFwICYmIG5ld09iai5zdXBwb3J0cyA9PT0gb2JqLnN1cHBvcnRzICYmIG5ld09iai5sYXllciA9PT0gb2JqLmxheWVyKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGFwaS51cGRhdGUob2JqID0gbmV3T2JqKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXBpLnJlbW92ZSgpO1xuICAgIH1cbiAgfTtcbiAgcmV0dXJuIHVwZGF0ZXI7XG59XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChsaXN0LCBvcHRpb25zKSB7XG4gIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICBsaXN0ID0gbGlzdCB8fCBbXTtcbiAgdmFyIGxhc3RJZGVudGlmaWVycyA9IG1vZHVsZXNUb0RvbShsaXN0LCBvcHRpb25zKTtcbiAgcmV0dXJuIGZ1bmN0aW9uIHVwZGF0ZShuZXdMaXN0KSB7XG4gICAgbmV3TGlzdCA9IG5ld0xpc3QgfHwgW107XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsYXN0SWRlbnRpZmllcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBpZGVudGlmaWVyID0gbGFzdElkZW50aWZpZXJzW2ldO1xuICAgICAgdmFyIGluZGV4ID0gZ2V0SW5kZXhCeUlkZW50aWZpZXIoaWRlbnRpZmllcik7XG4gICAgICBzdHlsZXNJbkRPTVtpbmRleF0ucmVmZXJlbmNlcy0tO1xuICAgIH1cbiAgICB2YXIgbmV3TGFzdElkZW50aWZpZXJzID0gbW9kdWxlc1RvRG9tKG5ld0xpc3QsIG9wdGlvbnMpO1xuICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBsYXN0SWRlbnRpZmllcnMubGVuZ3RoOyBfaSsrKSB7XG4gICAgICB2YXIgX2lkZW50aWZpZXIgPSBsYXN0SWRlbnRpZmllcnNbX2ldO1xuICAgICAgdmFyIF9pbmRleCA9IGdldEluZGV4QnlJZGVudGlmaWVyKF9pZGVudGlmaWVyKTtcbiAgICAgIGlmIChzdHlsZXNJbkRPTVtfaW5kZXhdLnJlZmVyZW5jZXMgPT09IDApIHtcbiAgICAgICAgc3R5bGVzSW5ET01bX2luZGV4XS51cGRhdGVyKCk7XG4gICAgICAgIHN0eWxlc0luRE9NLnNwbGljZShfaW5kZXgsIDEpO1xuICAgICAgfVxuICAgIH1cbiAgICBsYXN0SWRlbnRpZmllcnMgPSBuZXdMYXN0SWRlbnRpZmllcnM7XG4gIH07XG59OyIsIlwidXNlIHN0cmljdFwiO1xuXG52YXIgbWVtbyA9IHt9O1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cbmZ1bmN0aW9uIGdldFRhcmdldCh0YXJnZXQpIHtcbiAgaWYgKHR5cGVvZiBtZW1vW3RhcmdldF0gPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICB2YXIgc3R5bGVUYXJnZXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHRhcmdldCk7XG5cbiAgICAvLyBTcGVjaWFsIGNhc2UgdG8gcmV0dXJuIGhlYWQgb2YgaWZyYW1lIGluc3RlYWQgb2YgaWZyYW1lIGl0c2VsZlxuICAgIGlmICh3aW5kb3cuSFRNTElGcmFtZUVsZW1lbnQgJiYgc3R5bGVUYXJnZXQgaW5zdGFuY2VvZiB3aW5kb3cuSFRNTElGcmFtZUVsZW1lbnQpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIC8vIFRoaXMgd2lsbCB0aHJvdyBhbiBleGNlcHRpb24gaWYgYWNjZXNzIHRvIGlmcmFtZSBpcyBibG9ja2VkXG4gICAgICAgIC8vIGR1ZSB0byBjcm9zcy1vcmlnaW4gcmVzdHJpY3Rpb25zXG4gICAgICAgIHN0eWxlVGFyZ2V0ID0gc3R5bGVUYXJnZXQuY29udGVudERvY3VtZW50LmhlYWQ7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIC8vIGlzdGFuYnVsIGlnbm9yZSBuZXh0XG4gICAgICAgIHN0eWxlVGFyZ2V0ID0gbnVsbDtcbiAgICAgIH1cbiAgICB9XG4gICAgbWVtb1t0YXJnZXRdID0gc3R5bGVUYXJnZXQ7XG4gIH1cbiAgcmV0dXJuIG1lbW9bdGFyZ2V0XTtcbn1cblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgICovXG5mdW5jdGlvbiBpbnNlcnRCeVNlbGVjdG9yKGluc2VydCwgc3R5bGUpIHtcbiAgdmFyIHRhcmdldCA9IGdldFRhcmdldChpbnNlcnQpO1xuICBpZiAoIXRhcmdldCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIkNvdWxkbid0IGZpbmQgYSBzdHlsZSB0YXJnZXQuIFRoaXMgcHJvYmFibHkgbWVhbnMgdGhhdCB0aGUgdmFsdWUgZm9yIHRoZSAnaW5zZXJ0JyBwYXJhbWV0ZXIgaXMgaW52YWxpZC5cIik7XG4gIH1cbiAgdGFyZ2V0LmFwcGVuZENoaWxkKHN0eWxlKTtcbn1cbm1vZHVsZS5leHBvcnRzID0gaW5zZXJ0QnlTZWxlY3RvcjsiLCJcInVzZSBzdHJpY3RcIjtcblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgICovXG5mdW5jdGlvbiBpbnNlcnRTdHlsZUVsZW1lbnQob3B0aW9ucykge1xuICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzdHlsZVwiKTtcbiAgb3B0aW9ucy5zZXRBdHRyaWJ1dGVzKGVsZW1lbnQsIG9wdGlvbnMuYXR0cmlidXRlcyk7XG4gIG9wdGlvbnMuaW5zZXJ0KGVsZW1lbnQsIG9wdGlvbnMub3B0aW9ucyk7XG4gIHJldHVybiBlbGVtZW50O1xufVxubW9kdWxlLmV4cG9ydHMgPSBpbnNlcnRTdHlsZUVsZW1lbnQ7IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICAqL1xuZnVuY3Rpb24gc2V0QXR0cmlidXRlc1dpdGhvdXRBdHRyaWJ1dGVzKHN0eWxlRWxlbWVudCkge1xuICB2YXIgbm9uY2UgPSB0eXBlb2YgX193ZWJwYWNrX25vbmNlX18gIT09IFwidW5kZWZpbmVkXCIgPyBfX3dlYnBhY2tfbm9uY2VfXyA6IG51bGw7XG4gIGlmIChub25jZSkge1xuICAgIHN0eWxlRWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJub25jZVwiLCBub25jZSk7XG4gIH1cbn1cbm1vZHVsZS5leHBvcnRzID0gc2V0QXR0cmlidXRlc1dpdGhvdXRBdHRyaWJ1dGVzOyIsIlwidXNlIHN0cmljdFwiO1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cbmZ1bmN0aW9uIGFwcGx5KHN0eWxlRWxlbWVudCwgb3B0aW9ucywgb2JqKSB7XG4gIHZhciBjc3MgPSBcIlwiO1xuICBpZiAob2JqLnN1cHBvcnRzKSB7XG4gICAgY3NzICs9IFwiQHN1cHBvcnRzIChcIi5jb25jYXQob2JqLnN1cHBvcnRzLCBcIikge1wiKTtcbiAgfVxuICBpZiAob2JqLm1lZGlhKSB7XG4gICAgY3NzICs9IFwiQG1lZGlhIFwiLmNvbmNhdChvYmoubWVkaWEsIFwiIHtcIik7XG4gIH1cbiAgdmFyIG5lZWRMYXllciA9IHR5cGVvZiBvYmoubGF5ZXIgIT09IFwidW5kZWZpbmVkXCI7XG4gIGlmIChuZWVkTGF5ZXIpIHtcbiAgICBjc3MgKz0gXCJAbGF5ZXJcIi5jb25jYXQob2JqLmxheWVyLmxlbmd0aCA+IDAgPyBcIiBcIi5jb25jYXQob2JqLmxheWVyKSA6IFwiXCIsIFwiIHtcIik7XG4gIH1cbiAgY3NzICs9IG9iai5jc3M7XG4gIGlmIChuZWVkTGF5ZXIpIHtcbiAgICBjc3MgKz0gXCJ9XCI7XG4gIH1cbiAgaWYgKG9iai5tZWRpYSkge1xuICAgIGNzcyArPSBcIn1cIjtcbiAgfVxuICBpZiAob2JqLnN1cHBvcnRzKSB7XG4gICAgY3NzICs9IFwifVwiO1xuICB9XG4gIHZhciBzb3VyY2VNYXAgPSBvYmouc291cmNlTWFwO1xuICBpZiAoc291cmNlTWFwICYmIHR5cGVvZiBidG9hICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgY3NzICs9IFwiXFxuLyojIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxcIi5jb25jYXQoYnRvYSh1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoc291cmNlTWFwKSkpKSwgXCIgKi9cIik7XG4gIH1cblxuICAvLyBGb3Igb2xkIElFXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAgKi9cbiAgb3B0aW9ucy5zdHlsZVRhZ1RyYW5zZm9ybShjc3MsIHN0eWxlRWxlbWVudCwgb3B0aW9ucy5vcHRpb25zKTtcbn1cbmZ1bmN0aW9uIHJlbW92ZVN0eWxlRWxlbWVudChzdHlsZUVsZW1lbnQpIHtcbiAgLy8gaXN0YW5idWwgaWdub3JlIGlmXG4gIGlmIChzdHlsZUVsZW1lbnQucGFyZW50Tm9kZSA9PT0gbnVsbCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBzdHlsZUVsZW1lbnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChzdHlsZUVsZW1lbnQpO1xufVxuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cbmZ1bmN0aW9uIGRvbUFQSShvcHRpb25zKSB7XG4gIGlmICh0eXBlb2YgZG9jdW1lbnQgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdXBkYXRlOiBmdW5jdGlvbiB1cGRhdGUoKSB7fSxcbiAgICAgIHJlbW92ZTogZnVuY3Rpb24gcmVtb3ZlKCkge31cbiAgICB9O1xuICB9XG4gIHZhciBzdHlsZUVsZW1lbnQgPSBvcHRpb25zLmluc2VydFN0eWxlRWxlbWVudChvcHRpb25zKTtcbiAgcmV0dXJuIHtcbiAgICB1cGRhdGU6IGZ1bmN0aW9uIHVwZGF0ZShvYmopIHtcbiAgICAgIGFwcGx5KHN0eWxlRWxlbWVudCwgb3B0aW9ucywgb2JqKTtcbiAgICB9LFxuICAgIHJlbW92ZTogZnVuY3Rpb24gcmVtb3ZlKCkge1xuICAgICAgcmVtb3ZlU3R5bGVFbGVtZW50KHN0eWxlRWxlbWVudCk7XG4gICAgfVxuICB9O1xufVxubW9kdWxlLmV4cG9ydHMgPSBkb21BUEk7IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICAqL1xuZnVuY3Rpb24gc3R5bGVUYWdUcmFuc2Zvcm0oY3NzLCBzdHlsZUVsZW1lbnQpIHtcbiAgaWYgKHN0eWxlRWxlbWVudC5zdHlsZVNoZWV0KSB7XG4gICAgc3R5bGVFbGVtZW50LnN0eWxlU2hlZXQuY3NzVGV4dCA9IGNzcztcbiAgfSBlbHNlIHtcbiAgICB3aGlsZSAoc3R5bGVFbGVtZW50LmZpcnN0Q2hpbGQpIHtcbiAgICAgIHN0eWxlRWxlbWVudC5yZW1vdmVDaGlsZChzdHlsZUVsZW1lbnQuZmlyc3RDaGlsZCk7XG4gICAgfVxuICAgIHN0eWxlRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShjc3MpKTtcbiAgfVxufVxubW9kdWxlLmV4cG9ydHMgPSBzdHlsZVRhZ1RyYW5zZm9ybTsiLCIvLyBUaGUgbW9kdWxlIGNhY2hlXG52YXIgX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fID0ge307XG5cbi8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG5mdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuXHR2YXIgY2FjaGVkTW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXTtcblx0aWYgKGNhY2hlZE1vZHVsZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0cmV0dXJuIGNhY2hlZE1vZHVsZS5leHBvcnRzO1xuXHR9XG5cdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG5cdHZhciBtb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdID0ge1xuXHRcdGlkOiBtb2R1bGVJZCxcblx0XHQvLyBubyBtb2R1bGUubG9hZGVkIG5lZWRlZFxuXHRcdGV4cG9ydHM6IHt9XG5cdH07XG5cblx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG5cdF9fd2VicGFja19tb2R1bGVzX19bbW9kdWxlSWRdKG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG5cdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG5cdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbn1cblxuIiwiLy8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbl9fd2VicGFja19yZXF1aXJlX18ubiA9IChtb2R1bGUpID0+IHtcblx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG5cdFx0KCkgPT4gKG1vZHVsZVsnZGVmYXVsdCddKSA6XG5cdFx0KCkgPT4gKG1vZHVsZSk7XG5cdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsIHsgYTogZ2V0dGVyIH0pO1xuXHRyZXR1cm4gZ2V0dGVyO1xufTsiLCIvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9ucyBmb3IgaGFybW9ueSBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSAoZXhwb3J0cywgZGVmaW5pdGlvbikgPT4ge1xuXHRmb3IodmFyIGtleSBpbiBkZWZpbml0aW9uKSB7XG5cdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKGRlZmluaXRpb24sIGtleSkgJiYgIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBrZXkpKSB7XG5cdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywga2V5LCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZGVmaW5pdGlvbltrZXldIH0pO1xuXHRcdH1cblx0fVxufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSAob2JqLCBwcm9wKSA9PiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCkpIiwiX193ZWJwYWNrX3JlcXVpcmVfXy5uYyA9IHVuZGVmaW5lZDsiLCJcbiAgICAgIGltcG9ydCBBUEkgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIjtcbiAgICAgIGltcG9ydCBkb21BUEkgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZURvbUFQSS5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydEZuIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0QnlTZWxlY3Rvci5qc1wiO1xuICAgICAgaW1wb3J0IHNldEF0dHJpYnV0ZXMgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXMuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRTdHlsZUVsZW1lbnQgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRTdHlsZUVsZW1lbnQuanNcIjtcbiAgICAgIGltcG9ydCBzdHlsZVRhZ1RyYW5zZm9ybUZuIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVUYWdUcmFuc2Zvcm0uanNcIjtcbiAgICAgIGltcG9ydCBjb250ZW50LCAqIGFzIG5hbWVkRXhwb3J0IGZyb20gXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vYXZhdGFyLXN0eWxlLmNzc1wiO1xuICAgICAgXG4gICAgICBcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5zdHlsZVRhZ1RyYW5zZm9ybSA9IHN0eWxlVGFnVHJhbnNmb3JtRm47XG5vcHRpb25zLnNldEF0dHJpYnV0ZXMgPSBzZXRBdHRyaWJ1dGVzO1xub3B0aW9ucy5pbnNlcnQgPSBpbnNlcnRGbi5iaW5kKG51bGwsIFwiaGVhZFwiKTtcbm9wdGlvbnMuZG9tQVBJID0gZG9tQVBJO1xub3B0aW9ucy5pbnNlcnRTdHlsZUVsZW1lbnQgPSBpbnNlcnRTdHlsZUVsZW1lbnQ7XG5cbnZhciB1cGRhdGUgPSBBUEkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuXG5leHBvcnQgKiBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL2F2YXRhci1zdHlsZS5jc3NcIjtcbiAgICAgICBleHBvcnQgZGVmYXVsdCBjb250ZW50ICYmIGNvbnRlbnQubG9jYWxzID8gY29udGVudC5sb2NhbHMgOiB1bmRlZmluZWQ7XG4iLCJ2YXIgX19hc3NpZ24gPSAodGhpcyAmJiB0aGlzLl9fYXNzaWduKSB8fCBmdW5jdGlvbiAoKSB7XG4gICAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uKHQpIHtcbiAgICAgICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgICAgICBzID0gYXJndW1lbnRzW2ldO1xuICAgICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKVxuICAgICAgICAgICAgICAgIHRbcF0gPSBzW3BdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0O1xuICAgIH07XG4gICAgcmV0dXJuIF9fYXNzaWduLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59O1xudmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsgQ2hpbGRyZW4sIGNsb25lRWxlbWVudCwgZm9yd2FyZFJlZiwgaXNWYWxpZEVsZW1lbnQsIH0gZnJvbSBcInJlYWN0XCI7XG5mdW5jdGlvbiBjb21wb3NlUmVmcygpIHtcbiAgICB2YXIgcmVmcyA9IFtdO1xuICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7XG4gICAgICAgIHJlZnNbX2ldID0gYXJndW1lbnRzW19pXTtcbiAgICB9XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChub2RlKSB7XG4gICAgICAgIHJlZnMuZm9yRWFjaChmdW5jdGlvbiAocmVmKSB7XG4gICAgICAgICAgICBpZiAocmVmKSB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiByZWYgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgICAgICByZWYobm9kZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZWYuY3VycmVudCA9IG5vZGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9O1xufVxudmFyIENvbXBvc2VyID0gZm9yd2FyZFJlZihmdW5jdGlvbiAoX2EsIHJlZikge1xuICAgIHZhciBjaGlsZHJlbiA9IF9hLmNoaWxkcmVuLCBjb21wb3NlclByb3BzID0gX19yZXN0KF9hLCBbXCJjaGlsZHJlblwiXSk7XG4gICAgdmFyIGNoaWxkQXJyYXkgPSBDaGlsZHJlbi50b0FycmF5KGNoaWxkcmVuKTtcbiAgICBpZiAoY2hpbGRBcnJheS5sZW5ndGggPiAxKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNvbXBvc2VyIGNhbiBvbmx5IGhhdmUgb25lIGNoaWxkXCIpO1xuICAgIH1cbiAgICB2YXIgaXNWYWxpZENoaWxkID0gaXNWYWxpZEVsZW1lbnQoY2hpbGRBcnJheVswXSk7XG4gICAgaWYgKCFpc1ZhbGlkQ2hpbGQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiY2hpbGQgc2hvdWxkIGJlIFJlYWN0IG5vZGUhXCIpO1xuICAgIH1cbiAgICB2YXIgY2hpbGQgPSBjaGlsZEFycmF5WzBdO1xuICAgIHZhciBjaGlsZFJlZiA9IGdldEVsZW1lbnRSZWYoY2hpbGQpO1xuICAgIHZhciBtZXJnZWRQcm9wcyA9IG1lcmdlUHJvcHMoY29tcG9zZXJQcm9wcywgY2hpbGQucHJvcHMpO1xuICAgIHJldHVybiBjbG9uZUVsZW1lbnQoY2hpbGQsIF9fYXNzaWduKF9fYXNzaWduKHt9LCBtZXJnZWRQcm9wcyksIHsgcmVmOiByZWYgPyBjb21wb3NlUmVmcyhyZWYsIGNoaWxkUmVmKSA6IGNoaWxkUmVmIH0pKTtcbn0pO1xuQ29tcG9zZXIuZGlzcGxheU5hbWUgPSBcIkNvbXBvc2VyXCI7XG5mdW5jdGlvbiBtZXJnZVByb3BzKGNvbXBvc2VyUHJvcHMsIGNoaWxkUHJvcHMpIHtcbiAgICB2YXIgb3ZlcnJpZGVQcm9wcyA9IF9fYXNzaWduKHt9LCBjaGlsZFByb3BzKTtcbiAgICB2YXIgX2xvb3BfMSA9IGZ1bmN0aW9uIChwcm9wTmFtZSkge1xuICAgICAgICB2YXIgY29tcG9zZXJQcm9wVmFsdWUgPSBjb21wb3NlclByb3BzW3Byb3BOYW1lXTtcbiAgICAgICAgdmFyIGNoaWxkUHJvcFZhbHVlID0gY2hpbGRQcm9wc1twcm9wTmFtZV07XG4gICAgICAgIHZhciBpc0hhbmRsZXIgPSAvXm9uW0EtWl0vLnRlc3QocHJvcE5hbWUpO1xuICAgICAgICBpZiAoaXNIYW5kbGVyKSB7XG4gICAgICAgICAgICBpZiAoY29tcG9zZXJQcm9wVmFsdWUgJiYgY2hpbGRQcm9wVmFsdWUpIHtcbiAgICAgICAgICAgICAgICBvdmVycmlkZVByb3BzW3Byb3BOYW1lXSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGFyZ3MgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3NbX2ldID0gYXJndW1lbnRzW19pXTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjaGlsZFByb3BWYWx1ZS5hcHBseSh2b2lkIDAsIGFyZ3MpO1xuICAgICAgICAgICAgICAgICAgICBjb21wb3NlclByb3BWYWx1ZS5hcHBseSh2b2lkIDAsIGFyZ3MpO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChjb21wb3NlclByb3BWYWx1ZSkge1xuICAgICAgICAgICAgICAgIG92ZXJyaWRlUHJvcHNbcHJvcE5hbWVdID0gY29tcG9zZXJQcm9wVmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAocHJvcE5hbWUgPT09IFwic3R5bGVcIikge1xuICAgICAgICAgICAgb3ZlcnJpZGVQcm9wc1twcm9wTmFtZV0gPSBfX2Fzc2lnbihfX2Fzc2lnbih7fSwgY29tcG9zZXJQcm9wVmFsdWUpLCBjaGlsZFByb3BWYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAocHJvcE5hbWUgPT09IFwiY2xhc3NOYW1lXCIpIHtcbiAgICAgICAgICAgIG92ZXJyaWRlUHJvcHNbcHJvcE5hbWVdID0gW2NvbXBvc2VyUHJvcFZhbHVlLCBjaGlsZFByb3BWYWx1ZV1cbiAgICAgICAgICAgICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgICAgICAgICAgICAgLmpvaW4oXCIgXCIpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBmb3IgKHZhciBwcm9wTmFtZSBpbiBjb21wb3NlclByb3BzKSB7XG4gICAgICAgIF9sb29wXzEocHJvcE5hbWUpO1xuICAgIH1cbiAgICByZXR1cm4gX19hc3NpZ24oX19hc3NpZ24oe30sIGNvbXBvc2VyUHJvcHMpLCBvdmVycmlkZVByb3BzKTtcbn1cbmZ1bmN0aW9uIGdldEVsZW1lbnRSZWYoZWxlbWVudCkge1xuICAgIHZhciBfYSwgX2I7XG4gICAgdmFyIGdldHRlciA9IChfYSA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZWxlbWVudC5wcm9wcywgXCJyZWZcIikpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5nZXQ7XG4gICAgdmFyIG1heVdhcm4gPSBnZXR0ZXIgJiYgXCJpc1JlYWN0V2FybmluZ1wiIGluIGdldHRlciAmJiBnZXR0ZXIuaXNSZWFjdFdhcm5pbmc7XG4gICAgaWYgKG1heVdhcm4pIHtcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQucmVmO1xuICAgIH1cbiAgICBnZXR0ZXIgPSAoX2IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGVsZW1lbnQsIFwicmVmXCIpKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuZ2V0O1xuICAgIG1heVdhcm4gPSBnZXR0ZXIgJiYgXCJpc1JlYWN0V2FybmluZ1wiIGluIGdldHRlciAmJiBnZXR0ZXIuaXNSZWFjdFdhcm5pbmc7XG4gICAgaWYgKG1heVdhcm4pIHtcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQucHJvcHMucmVmO1xuICAgIH1cbiAgICByZXR1cm4gKGVsZW1lbnQucHJvcHMucmVmIHx8IGVsZW1lbnQucmVmKTtcbn1cbmV4cG9ydCBkZWZhdWx0IENvbXBvc2VyO1xuIiwiaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBDb21wb3NlciBmcm9tIFwiLi4vY29yZS9jb21wb3NlclwiO1xuZXhwb3J0IHZhciBCYXNlQmFkZ2UgPSBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICB2YXIgX2EgPSBwcm9wcy5hc0NoaWxkLCBhc0NoaWxkID0gX2EgPT09IHZvaWQgMCA/IGZhbHNlIDogX2EsIGJvcmRlckNvbG9yID0gcHJvcHMuYm9yZGVyQ29sb3IsIF9iID0gcHJvcHMudGV4dENvbG9yLCB0ZXh0Q29sb3IgPSBfYiA9PT0gdm9pZCAwID8gXCJibGFja1wiIDogX2IsIGJhY2tncm91bmRDb2xvciA9IHByb3BzLmJhY2tncm91bmRDb2xvciwgX2MgPSBwcm9wcy5zaXplLCBzaXplID0gX2MgPT09IHZvaWQgMCA/IFwibFwiIDogX2MsIHN0eWxlID0gcHJvcHMuc3R5bGUsIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW4sIGNsYXNzTmFtZSA9IHByb3BzLmNsYXNzTmFtZTtcbiAgICB2YXIgQ29tcCA9IGFzQ2hpbGQgPyBDb21wb3NlciA6IFwiZGl2XCI7XG4gICAgdmFyIGNvbXBvc2VkQ2xhc3NOYW1lID0gXCJudXJpLXRoZW1lIGJhc2UtYmFkZ2UgXCIuY29uY2F0KHNpemUsIFwiIGJvcmRlci1cIikuY29uY2F0KGJvcmRlckNvbG9yLCBcIiB0ZXh0LVwiKS5jb25jYXQodGV4dENvbG9yLCBcIiBiYWNrZ3JvdW5kLVwiKS5jb25jYXQoYmFja2dyb3VuZENvbG9yLCBcIiBcIikuY29uY2F0KGNsYXNzTmFtZSk7XG4gICAgcmV0dXJuIChfanN4KENvbXAsIHsgc3R5bGU6IHN0eWxlLCBjbGFzc05hbWU6IGNvbXBvc2VkQ2xhc3NOYW1lLCBjaGlsZHJlbjogY2hpbGRyZW4gfSkpO1xufTtcbiIsImltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFwiLi9hdmF0YXItc3R5bGUuY3NzXCI7XG5pbXBvcnQgeyBCYXNlQmFkZ2UgfSBmcm9tIFwiLi4vYmFkZ2UvYmFzZS1iYWRnZVwiO1xudmFyIEF2YXRhciA9IGZ1bmN0aW9uIChwcm9wcykge1xuICAgIHZhciBzaXplID0gcHJvcHMuc2l6ZSwgc3JjID0gcHJvcHMuc3JjLCBhbHQgPSBwcm9wcy5hbHQsIGJhZGdlT3B0aW9uID0gcHJvcHMuYmFkZ2VPcHRpb247XG4gICAgdmFyIF9hID0gdXNlU3RhdGUoZmFsc2UpLCBpc0ltYWdlRG93bmxvYWQgPSBfYVswXSwgc2V0SXNJbWFnZURvd25sb2FkID0gX2FbMV07XG4gICAgcmV0dXJuIChfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogXCJhdmF0YXIgXCIuY29uY2F0KHNpemUpLCBjaGlsZHJlbjogW19qc3goXCJpbWdcIiwgeyBzcmM6IHNyYywgYWx0OiBhbHQgIT09IG51bGwgJiYgYWx0ICE9PSB2b2lkIDAgPyBhbHQgOiBcImF2YXRhclwiLCBjbGFzc05hbWU6IFwiYXZhdGFyIFwiLmNvbmNhdChzaXplLCBcIiBcIikuY29uY2F0KCFpc0ltYWdlRG93bmxvYWQgPyBcImhpZGRlblwiIDogXCJcIiksIG9uTG9hZDogZnVuY3Rpb24gKCkgeyByZXR1cm4gc2V0SXNJbWFnZURvd25sb2FkKHRydWUpOyB9IH0pLCAhaXNJbWFnZURvd25sb2FkICYmIChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBcImF2YXRhciBhdmF0YXItc2tlbGV0b24gXCIuY29uY2F0KHNpemUpLCBjaGlsZHJlbjogX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogXCJhdmF0YXIgc2tlbGV0b24tYW5pbWF0aW9uXCIgfSkgfSkpLCBfanN4KEJhc2VCYWRnZSwgeyBhc0NoaWxkOiB0cnVlLCBzdHlsZToge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgICAgICAgICAgICAgICByaWdodDogXCIwXCIsXG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogXCIwXCIsXG4gICAgICAgICAgICAgICAgfSwgY2hpbGRyZW46IGJhZGdlT3B0aW9uIH0pXSB9KSk7XG59O1xuZXhwb3J0IGRlZmF1bHQgQXZhdGFyO1xuIiwiXG4gICAgICBpbXBvcnQgQVBJIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCI7XG4gICAgICBpbXBvcnQgZG9tQVBJIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVEb21BUEkuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRGbiBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydEJ5U2VsZWN0b3IuanNcIjtcbiAgICAgIGltcG9ydCBzZXRBdHRyaWJ1dGVzIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc2V0QXR0cmlidXRlc1dpdGhvdXRBdHRyaWJ1dGVzLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0U3R5bGVFbGVtZW50IGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0U3R5bGVFbGVtZW50LmpzXCI7XG4gICAgICBpbXBvcnQgc3R5bGVUYWdUcmFuc2Zvcm1GbiBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlVGFnVHJhbnNmb3JtLmpzXCI7XG4gICAgICBpbXBvcnQgY29udGVudCwgKiBhcyBuYW1lZEV4cG9ydCBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL2J1dHRvbi1zdHlsZS5jc3NcIjtcbiAgICAgIFxuICAgICAgXG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuc3R5bGVUYWdUcmFuc2Zvcm0gPSBzdHlsZVRhZ1RyYW5zZm9ybUZuO1xub3B0aW9ucy5zZXRBdHRyaWJ1dGVzID0gc2V0QXR0cmlidXRlcztcbm9wdGlvbnMuaW5zZXJ0ID0gaW5zZXJ0Rm4uYmluZChudWxsLCBcImhlYWRcIik7XG5vcHRpb25zLmRvbUFQSSA9IGRvbUFQSTtcbm9wdGlvbnMuaW5zZXJ0U3R5bGVFbGVtZW50ID0gaW5zZXJ0U3R5bGVFbGVtZW50O1xuXG52YXIgdXBkYXRlID0gQVBJKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cblxuZXhwb3J0ICogZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9idXR0b24tc3R5bGUuY3NzXCI7XG4gICAgICAgZXhwb3J0IGRlZmF1bHQgY29udGVudCAmJiBjb250ZW50LmxvY2FscyA/IGNvbnRlbnQubG9jYWxzIDogdW5kZWZpbmVkO1xuIiwiXG4gICAgICBpbXBvcnQgQVBJIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCI7XG4gICAgICBpbXBvcnQgZG9tQVBJIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVEb21BUEkuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRGbiBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydEJ5U2VsZWN0b3IuanNcIjtcbiAgICAgIGltcG9ydCBzZXRBdHRyaWJ1dGVzIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc2V0QXR0cmlidXRlc1dpdGhvdXRBdHRyaWJ1dGVzLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0U3R5bGVFbGVtZW50IGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0U3R5bGVFbGVtZW50LmpzXCI7XG4gICAgICBpbXBvcnQgc3R5bGVUYWdUcmFuc2Zvcm1GbiBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlVGFnVHJhbnNmb3JtLmpzXCI7XG4gICAgICBpbXBvcnQgY29udGVudCwgKiBhcyBuYW1lZEV4cG9ydCBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL2NvbG9yLmNzc1wiO1xuICAgICAgXG4gICAgICBcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5zdHlsZVRhZ1RyYW5zZm9ybSA9IHN0eWxlVGFnVHJhbnNmb3JtRm47XG5vcHRpb25zLnNldEF0dHJpYnV0ZXMgPSBzZXRBdHRyaWJ1dGVzO1xub3B0aW9ucy5pbnNlcnQgPSBpbnNlcnRGbi5iaW5kKG51bGwsIFwiaGVhZFwiKTtcbm9wdGlvbnMuZG9tQVBJID0gZG9tQVBJO1xub3B0aW9ucy5pbnNlcnRTdHlsZUVsZW1lbnQgPSBpbnNlcnRTdHlsZUVsZW1lbnQ7XG5cbnZhciB1cGRhdGUgPSBBUEkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuXG5leHBvcnQgKiBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL2NvbG9yLmNzc1wiO1xuICAgICAgIGV4cG9ydCBkZWZhdWx0IGNvbnRlbnQgJiYgY29udGVudC5sb2NhbHMgPyBjb250ZW50LmxvY2FscyA6IHVuZGVmaW5lZDtcbiIsIlxuICAgICAgaW1wb3J0IEFQSSBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1wiO1xuICAgICAgaW1wb3J0IGRvbUFQSSBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlRG9tQVBJLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0Rm4gZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRCeVNlbGVjdG9yLmpzXCI7XG4gICAgICBpbXBvcnQgc2V0QXR0cmlidXRlcyBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3NldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlcy5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydFN0eWxlRWxlbWVudCBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydFN0eWxlRWxlbWVudC5qc1wiO1xuICAgICAgaW1wb3J0IHN0eWxlVGFnVHJhbnNmb3JtRm4gZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZVRhZ1RyYW5zZm9ybS5qc1wiO1xuICAgICAgaW1wb3J0IGNvbnRlbnQsICogYXMgbmFtZWRFeHBvcnQgZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9mb250LmNzc1wiO1xuICAgICAgXG4gICAgICBcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5zdHlsZVRhZ1RyYW5zZm9ybSA9IHN0eWxlVGFnVHJhbnNmb3JtRm47XG5vcHRpb25zLnNldEF0dHJpYnV0ZXMgPSBzZXRBdHRyaWJ1dGVzO1xub3B0aW9ucy5pbnNlcnQgPSBpbnNlcnRGbi5iaW5kKG51bGwsIFwiaGVhZFwiKTtcbm9wdGlvbnMuZG9tQVBJID0gZG9tQVBJO1xub3B0aW9ucy5pbnNlcnRTdHlsZUVsZW1lbnQgPSBpbnNlcnRTdHlsZUVsZW1lbnQ7XG5cbnZhciB1cGRhdGUgPSBBUEkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuXG5leHBvcnQgKiBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL2ZvbnQuY3NzXCI7XG4gICAgICAgZXhwb3J0IGRlZmF1bHQgY29udGVudCAmJiBjb250ZW50LmxvY2FscyA/IGNvbnRlbnQubG9jYWxzIDogdW5kZWZpbmVkO1xuIiwidmFyIF9fYXNzaWduID0gKHRoaXMgJiYgdGhpcy5fX2Fzc2lnbikgfHwgZnVuY3Rpb24gKCkge1xuICAgIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbih0KSB7XG4gICAgICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSlcbiAgICAgICAgICAgICAgICB0W3BdID0gc1twXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdDtcbiAgICB9O1xuICAgIHJldHVybiBfX2Fzc2lnbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufTtcbnZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBmb3J3YXJkUmVmIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgQ29tcG9zZXIgZnJvbSBcIi4uL2NvcmUvY29tcG9zZXJcIjtcbmltcG9ydCBcIi4vYnV0dG9uLXN0eWxlLmNzc1wiO1xuaW1wb3J0IFwiLi4vLi4vc3R5bGVzL3Rva2VuL2NvbG9yLmNzc1wiO1xuaW1wb3J0IFwiLi4vLi4vc3R5bGVzL3Rva2VuL2ZvbnQuY3NzXCI7XG52YXIgQmFzZUJ1dHRvbiA9IGZvcndhcmRSZWYoZnVuY3Rpb24gKF9hLCByZWYpIHtcbiAgICB2YXIgY2hpbGRyZW4gPSBfYS5jaGlsZHJlbiwgX2IgPSBfYS5hc0NoaWxkLCBhc0NoaWxkID0gX2IgPT09IHZvaWQgMCA/IGZhbHNlIDogX2IsIGNsYXNzTmFtZSA9IF9hLmNsYXNzTmFtZSwgcHJvcHMgPSBfX3Jlc3QoX2EsIFtcImNoaWxkcmVuXCIsIFwiYXNDaGlsZFwiLCBcImNsYXNzTmFtZVwiXSk7XG4gICAgdmFyIENvbXAgPSBhc0NoaWxkID8gQ29tcG9zZXIgOiBcImJ1dHRvblwiO1xuICAgIHJldHVybiAoX2pzeChDb21wLCBfX2Fzc2lnbih7IHJlZjogcmVmLCBjbGFzc05hbWU6IFwiYmFzZS1idXR0b24gXCIuY29uY2F0KGNsYXNzTmFtZSksIG9uQ2xpY2s6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGNvbnNvbGUubG9nKFwiYmFzZVwiKTsgfSB9LCBwcm9wcywgeyBjaGlsZHJlbjogY2hpbGRyZW4gfSkpKTtcbn0pO1xuZXhwb3J0IGRlZmF1bHQgQmFzZUJ1dHRvbjtcbiIsIlxuICAgICAgaW1wb3J0IEFQSSBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1wiO1xuICAgICAgaW1wb3J0IGRvbUFQSSBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlRG9tQVBJLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0Rm4gZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRCeVNlbGVjdG9yLmpzXCI7XG4gICAgICBpbXBvcnQgc2V0QXR0cmlidXRlcyBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3NldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlcy5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydFN0eWxlRWxlbWVudCBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydFN0eWxlRWxlbWVudC5qc1wiO1xuICAgICAgaW1wb3J0IHN0eWxlVGFnVHJhbnNmb3JtRm4gZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZVRhZ1RyYW5zZm9ybS5qc1wiO1xuICAgICAgaW1wb3J0IGNvbnRlbnQsICogYXMgbmFtZWRFeHBvcnQgZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9sb2FkaW5nLXN0eWxlLmNzc1wiO1xuICAgICAgXG4gICAgICBcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5zdHlsZVRhZ1RyYW5zZm9ybSA9IHN0eWxlVGFnVHJhbnNmb3JtRm47XG5vcHRpb25zLnNldEF0dHJpYnV0ZXMgPSBzZXRBdHRyaWJ1dGVzO1xub3B0aW9ucy5pbnNlcnQgPSBpbnNlcnRGbi5iaW5kKG51bGwsIFwiaGVhZFwiKTtcbm9wdGlvbnMuZG9tQVBJID0gZG9tQVBJO1xub3B0aW9ucy5pbnNlcnRTdHlsZUVsZW1lbnQgPSBpbnNlcnRTdHlsZUVsZW1lbnQ7XG5cbnZhciB1cGRhdGUgPSBBUEkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuXG5leHBvcnQgKiBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL2xvYWRpbmctc3R5bGUuY3NzXCI7XG4gICAgICAgZXhwb3J0IGRlZmF1bHQgY29udGVudCAmJiBjb250ZW50LmxvY2FscyA/IGNvbnRlbnQubG9jYWxzIDogdW5kZWZpbmVkO1xuIiwiaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBcIi4vbG9hZGluZy1zdHlsZS5jc3NcIjtcbnZhciBMb2FkaW5nID0gZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogXCJjb21wb25lbnQtbG9hZGluZy1jb250YWluZXJcIiwgY2hpbGRyZW46IF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBcImxvYWRpbmctaW5kaWNhdG9yLXJpbmdcIiwgY2hpbGRyZW46IFtfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBcImxvYWRpbmctaW5kaWNhdG9yLXNpbmdsZS1yaW5nXCIgfSksIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IFwibG9hZGluZy1pbmRpY2F0b3Itc2luZ2xlLXJpbmdcIiB9KSwgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogXCJsb2FkaW5nLWluZGljYXRvci1zaW5nbGUtcmluZ1wiIH0pLCBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBcImxvYWRpbmctaW5kaWNhdG9yLXNpbmdsZS1yaW5nXCIgfSldIH0pIH0pKTtcbn07XG5leHBvcnQgZGVmYXVsdCBMb2FkaW5nO1xuIiwidmFyIF9fYXNzaWduID0gKHRoaXMgJiYgdGhpcy5fX2Fzc2lnbikgfHwgZnVuY3Rpb24gKCkge1xuICAgIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbih0KSB7XG4gICAgICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSlcbiAgICAgICAgICAgICAgICB0W3BdID0gc1twXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdDtcbiAgICB9O1xuICAgIHJldHVybiBfX2Fzc2lnbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBGcmFnbWVudCBhcyBfRnJhZ21lbnQsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBCYXNlQnV0dG9uIGZyb20gXCIuL2Jhc2UtYnV0dG9uXCI7XG5pbXBvcnQgTG9hZGluZyBmcm9tIFwiLi4vbG9hZGluZy9sb2FkaW5nXCI7XG52YXIgQ1RBQnV0dG9uID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgdmFyIHRleHQgPSBwcm9wcy50ZXh0LCBfYSA9IHByb3BzLnZhcmlhbnQsIHZhcmlhbnQgPSBfYSA9PT0gdm9pZCAwID8gXCJwcmltYXJ5XCIgOiBfYSwgX2IgPSBwcm9wcy5zaXplLCBzaXplID0gX2IgPT09IHZvaWQgMCA/IFwibVwiIDogX2IsIF9jID0gcHJvcHMuZGlzYWJsZWQsIGRpc2FibGVkID0gX2MgPT09IHZvaWQgMCA/IGZhbHNlIDogX2MsIGljb24gPSBwcm9wcy5pY29uLCBfZCA9IHByb3BzLmxvYWRpbmcsIGxvYWRpbmcgPSBfZCA9PT0gdm9pZCAwID8gZmFsc2UgOiBfZDtcbiAgICByZXR1cm4gKF9qc3goQmFzZUJ1dHRvbiwgX19hc3NpZ24oe30sIHByb3BzLCB7IGNsYXNzTmFtZTogXCJudXJpLXRoZW1lIGN0YS1idXR0b24gXCIuY29uY2F0KGRpc2FibGVkID8gXCJkaXNhYmxlZFwiIDogdmFyaWFudCwgXCIgXCIpLmNvbmNhdChzaXplKSwgY2hpbGRyZW46IGxvYWRpbmcgPyAoX2pzeChMb2FkaW5nLCB7fSkpIDogKF9qc3hzKF9GcmFnbWVudCwgeyBjaGlsZHJlbjogW2ljb24sIHRleHRdIH0pKSB9KSkpO1xufTtcbmV4cG9ydCBkZWZhdWx0IENUQUJ1dHRvbjtcbiIsInZhciBfX2Fzc2lnbiA9ICh0aGlzICYmIHRoaXMuX19hc3NpZ24pIHx8IGZ1bmN0aW9uICgpIHtcbiAgICBfX2Fzc2lnbiA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24odCkge1xuICAgICAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcbiAgICAgICAgICAgIHMgPSBhcmd1bWVudHNbaV07XG4gICAgICAgICAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkpXG4gICAgICAgICAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHQ7XG4gICAgfTtcbiAgICByZXR1cm4gX19hc3NpZ24uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgQmFzZUJhZGdlIH0gZnJvbSBcIi4vYmFzZS1iYWRnZVwiO1xudmFyIE9wdGlvbkJhZGdlID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgdmFyIG9wdGlvbiA9IHByb3BzLm9wdGlvbjtcbiAgICByZXR1cm4gX2pzeChCYXNlQmFkZ2UsIF9fYXNzaWduKHt9LCBwcm9wcywgeyBjaGlsZHJlbjogb3B0aW9uIH0pKTtcbn07XG5leHBvcnQgZGVmYXVsdCBPcHRpb25CYWRnZTtcbiIsInZhciBfX2Fzc2lnbiA9ICh0aGlzICYmIHRoaXMuX19hc3NpZ24pIHx8IGZ1bmN0aW9uICgpIHtcbiAgICBfX2Fzc2lnbiA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24odCkge1xuICAgICAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcbiAgICAgICAgICAgIHMgPSBhcmd1bWVudHNbaV07XG4gICAgICAgICAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkpXG4gICAgICAgICAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHQ7XG4gICAgfTtcbiAgICByZXR1cm4gX19hc3NpZ24uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgQmFzZUJhZGdlIH0gZnJvbSBcIi4vYmFzZS1iYWRnZVwiO1xudmFyIEljb25UZXh0QmFkZ2UgPSBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICB2YXIgaWNvbiA9IHByb3BzLmljb24sIHRleHQgPSBwcm9wcy50ZXh0O1xuICAgIHJldHVybiAoX2pzeHMoQmFzZUJhZGdlLCBfX2Fzc2lnbih7fSwgcHJvcHMsIHsgY2hpbGRyZW46IFtpY29uLCBfanN4KFwic3BhblwiLCB7IGNoaWxkcmVuOiB0ZXh0IH0pXSB9KSkpO1xufTtcbmV4cG9ydCBkZWZhdWx0IEljb25UZXh0QmFkZ2U7XG4iLCJcbiAgICAgIGltcG9ydCBBUEkgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIjtcbiAgICAgIGltcG9ydCBkb21BUEkgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZURvbUFQSS5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydEZuIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0QnlTZWxlY3Rvci5qc1wiO1xuICAgICAgaW1wb3J0IHNldEF0dHJpYnV0ZXMgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXMuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRTdHlsZUVsZW1lbnQgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRTdHlsZUVsZW1lbnQuanNcIjtcbiAgICAgIGltcG9ydCBzdHlsZVRhZ1RyYW5zZm9ybUZuIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVUYWdUcmFuc2Zvcm0uanNcIjtcbiAgICAgIGltcG9ydCBjb250ZW50LCAqIGFzIG5hbWVkRXhwb3J0IGZyb20gXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vYmFkZ2Utc3R5bGUuY3NzXCI7XG4gICAgICBcbiAgICAgIFxuXG52YXIgb3B0aW9ucyA9IHt9O1xuXG5vcHRpb25zLnN0eWxlVGFnVHJhbnNmb3JtID0gc3R5bGVUYWdUcmFuc2Zvcm1Gbjtcbm9wdGlvbnMuc2V0QXR0cmlidXRlcyA9IHNldEF0dHJpYnV0ZXM7XG5vcHRpb25zLmluc2VydCA9IGluc2VydEZuLmJpbmQobnVsbCwgXCJoZWFkXCIpO1xub3B0aW9ucy5kb21BUEkgPSBkb21BUEk7XG5vcHRpb25zLmluc2VydFN0eWxlRWxlbWVudCA9IGluc2VydFN0eWxlRWxlbWVudDtcblxudmFyIHVwZGF0ZSA9IEFQSShjb250ZW50LCBvcHRpb25zKTtcblxuXG5cbmV4cG9ydCAqIGZyb20gXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vYmFkZ2Utc3R5bGUuY3NzXCI7XG4gICAgICAgZXhwb3J0IGRlZmF1bHQgY29udGVudCAmJiBjb250ZW50LmxvY2FscyA/IGNvbnRlbnQubG9jYWxzIDogdW5kZWZpbmVkO1xuIiwidmFyIF9fYXNzaWduID0gKHRoaXMgJiYgdGhpcy5fX2Fzc2lnbikgfHwgZnVuY3Rpb24gKCkge1xuICAgIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbih0KSB7XG4gICAgICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSlcbiAgICAgICAgICAgICAgICB0W3BdID0gc1twXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdDtcbiAgICB9O1xuICAgIHJldHVybiBfX2Fzc2lnbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgXCIuL2JhZGdlLXN0eWxlLmNzc1wiO1xuaW1wb3J0IHsgQmFzZUJhZGdlIH0gZnJvbSBcIi4vYmFzZS1iYWRnZVwiO1xudmFyIEljb25UZXh0T3B0aW9uQmFkZ2UgPSBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICB2YXIgaWNvbiA9IHByb3BzLmljb24sIHRleHQgPSBwcm9wcy50ZXh0LCBvcHRpb24gPSBwcm9wcy5vcHRpb247XG4gICAgcmV0dXJuIChfanN4cyhCYXNlQmFkZ2UsIF9fYXNzaWduKHt9LCBwcm9wcywgeyBjbGFzc05hbWU6IFwiaWNvbi10ZXh0LW9wdGlvblwiLCBjaGlsZHJlbjogW19qc3hzKFwic3BhblwiLCB7IGNoaWxkcmVuOiBbaWNvbiwgX2pzeChcInNwYW5cIiwgeyBjaGlsZHJlbjogdGV4dCB9KV0gfSksIG9wdGlvbl0gfSkpKTtcbn07XG5leHBvcnQgZGVmYXVsdCBJY29uVGV4dE9wdGlvbkJhZGdlO1xuIiwiXG4gICAgICBpbXBvcnQgQVBJIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCI7XG4gICAgICBpbXBvcnQgZG9tQVBJIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVEb21BUEkuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRGbiBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydEJ5U2VsZWN0b3IuanNcIjtcbiAgICAgIGltcG9ydCBzZXRBdHRyaWJ1dGVzIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc2V0QXR0cmlidXRlc1dpdGhvdXRBdHRyaWJ1dGVzLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0U3R5bGVFbGVtZW50IGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0U3R5bGVFbGVtZW50LmpzXCI7XG4gICAgICBpbXBvcnQgc3R5bGVUYWdUcmFuc2Zvcm1GbiBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlVGFnVHJhbnNmb3JtLmpzXCI7XG4gICAgICBpbXBvcnQgY29udGVudCwgKiBhcyBuYW1lZEV4cG9ydCBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3RhYmxlLXN0eWxlLmNzc1wiO1xuICAgICAgXG4gICAgICBcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5zdHlsZVRhZ1RyYW5zZm9ybSA9IHN0eWxlVGFnVHJhbnNmb3JtRm47XG5vcHRpb25zLnNldEF0dHJpYnV0ZXMgPSBzZXRBdHRyaWJ1dGVzO1xub3B0aW9ucy5pbnNlcnQgPSBpbnNlcnRGbi5iaW5kKG51bGwsIFwiaGVhZFwiKTtcbm9wdGlvbnMuZG9tQVBJID0gZG9tQVBJO1xub3B0aW9ucy5pbnNlcnRTdHlsZUVsZW1lbnQgPSBpbnNlcnRTdHlsZUVsZW1lbnQ7XG5cbnZhciB1cGRhdGUgPSBBUEkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuXG5leHBvcnQgKiBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3RhYmxlLXN0eWxlLmNzc1wiO1xuICAgICAgIGV4cG9ydCBkZWZhdWx0IGNvbnRlbnQgJiYgY29udGVudC5sb2NhbHMgPyBjb250ZW50LmxvY2FscyA6IHVuZGVmaW5lZDtcbiIsInZhciBfX2Fzc2lnbiA9ICh0aGlzICYmIHRoaXMuX19hc3NpZ24pIHx8IGZ1bmN0aW9uICgpIHtcbiAgICBfX2Fzc2lnbiA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24odCkge1xuICAgICAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcbiAgICAgICAgICAgIHMgPSBhcmd1bWVudHNbaV07XG4gICAgICAgICAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkpXG4gICAgICAgICAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHQ7XG4gICAgfTtcbiAgICByZXR1cm4gX19hc3NpZ24uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn07XG52YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IFwiLi90YWJsZS1zdHlsZS5jc3NcIjtcbnZhciBUYWJsZVJvb3QgPSBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICByZXR1cm4gX2pzeChcInRhYmxlXCIsIHsgY2xhc3NOYW1lOiBcImJhc2UtdGFibGUgdGFibGUtcm9vdFwiLCBjaGlsZHJlbjogcHJvcHMuY2hpbGRyZW4gfSk7XG59O1xudmFyIFRhYmxlSGVhZGVyID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgdmFyIF9hID0gcHJvcHMuanVzdGlmeSwganVzdGlmeSA9IF9hID09PSB2b2lkIDAgPyBcImNlbnRlclwiIDogX2E7XG4gICAgcmV0dXJuIChfanN4KFwidGhlYWRcIiwgeyBjbGFzc05hbWU6IFwiYmFzZS10YWJsZSB0YWJsZS1oZWFkZXIgXCIuY29uY2F0KGp1c3RpZnkpLCBjaGlsZHJlbjogcHJvcHMuY2hpbGRyZW4gfSkpO1xufTtcbnZhciBUYWJsZVJvdyA9IGZ1bmN0aW9uIChwcm9wcykge1xuICAgIHJldHVybiBfanN4KFwidHJcIiwgeyBjbGFzc05hbWU6IFwiYmFzZS10YWJsZSB0YWJsZS1yb3dcIiwgY2hpbGRyZW46IHByb3BzLmNoaWxkcmVuIH0pO1xufTtcbnZhciBUYWJsZUJvZHkgPSBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICByZXR1cm4gX2pzeChcInRib2R5XCIsIHsgY2xhc3NOYW1lOiBcImJhc2UtdGFibGUgdGFibGUtYm9keVwiLCBjaGlsZHJlbjogcHJvcHMuY2hpbGRyZW4gfSk7XG59O1xudmFyIFRhYmxlQ2VsbCA9IGZ1bmN0aW9uIChwcm9wcykge1xuICAgIHZhciBjbGFzc05hbWUgPSBwcm9wcy5jbGFzc05hbWUsIHJlc3QgPSBfX3Jlc3QocHJvcHMsIFtcImNsYXNzTmFtZVwiXSk7XG4gICAgdmFyIGNsYXNzTmFtZXMgPSBbXCJiYXNlLXRhYmxlXCIsIFwidGFibGUtY2VsbFwiLCBjbGFzc05hbWVdLmpvaW4oXCIgXCIpO1xuICAgIHJldHVybiAoX2pzeChcInRkXCIsIF9fYXNzaWduKHsgY2xhc3NOYW1lOiBjbGFzc05hbWVzIH0sIHJlc3QsIHsgY2hpbGRyZW46IHByb3BzLmNoaWxkcmVuIH0pKSk7XG59O1xuVGFibGVSb290LkhlYWRlciA9IFRhYmxlSGVhZGVyO1xuVGFibGVSb290LkJvZHkgPSBUYWJsZUJvZHk7XG5UYWJsZVJvb3QuUm93ID0gVGFibGVSb3c7XG5UYWJsZVJvb3QuQ2VsbCA9IFRhYmxlQ2VsbDtcbmV4cG9ydCBkZWZhdWx0IFRhYmxlUm9vdDtcbiIsImltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyB1c2VMYXlvdXRFZmZlY3QsIHVzZVJlZiB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFRhYmxlUm9vdCBmcm9tIFwiLi9iYXNlLXRhYmxlXCI7XG52YXIgRGF0YVRhYmxlID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgdmFyIHJvd3MgPSBwcm9wcy5yb3dzLCBjb2x1bW5zID0gcHJvcHMuY29sdW1ucztcbiAgICB2YXIgZGlzcGxheVJvd3MgPSB1c2VSZWYocm93cy5tYXAoZnVuY3Rpb24gKHJvdykgeyByZXR1cm4gKHsgcm93OiByb3csIGhpZGU6IGZhbHNlIH0pOyB9KSk7XG4gICAgdXNlTGF5b3V0RWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgZGlzcGxheVJvd3MuY3VycmVudCA9IHJvd3MubWFwKGZ1bmN0aW9uIChyb3cpIHtcbiAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICByZXR1cm4gKHtcbiAgICAgICAgICAgICAgICByb3c6IHJvdyxcbiAgICAgICAgICAgICAgICBoaWRlOiAoX2IgPSAoX2EgPSBkaXNwbGF5Um93cy5jdXJyZW50LmZpbmQoZnVuY3Rpb24gKGl0ZW0pIHsgcmV0dXJuIGl0ZW0ucm93LmlkID09PSByb3cuaWQ7IH0pKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuaGlkZSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogZmFsc2UsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfSwgW3Jvd3NdKTtcbiAgICByZXR1cm4gKF9qc3hzKFRhYmxlUm9vdCwgeyBjaGlsZHJlbjogW19qc3goVGFibGVSb290LkhlYWRlciwgeyBjaGlsZHJlbjogX2pzeChUYWJsZVJvb3QuUm93LCB7IGNoaWxkcmVuOiBkaXNwbGF5Um93cy5jdXJyZW50Lm1hcChmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChfanN4KFRhYmxlUm9vdC5DZWxsLCB7IGNsYXNzTmFtZTogaXRlbS5oaWRlID8gXCJoaWRlXCIgOiBcIlwiLCBjaGlsZHJlbjogaXRlbS5yb3cudmFsdWUgfSwgaXRlbS5yb3cuaWQpKTtcbiAgICAgICAgICAgICAgICAgICAgfSkgfSkgfSksIF9qc3goVGFibGVSb290LkJvZHksIHsgY2hpbGRyZW46IGNvbHVtbnMubWFwKGZ1bmN0aW9uIChjb2x1bW4pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChfanN4KFRhYmxlUm9vdC5Sb3csIHsgY2hpbGRyZW46IGRpc3BsYXlSb3dzLmN1cnJlbnQubWFwKGZ1bmN0aW9uIChpdGVtKSB7IHJldHVybiAoX2pzeChUYWJsZVJvb3QuQ2VsbCwgeyBjbGFzc05hbWU6IGl0ZW0uaGlkZSA/IFwiaGlkZVwiIDogXCJcIiwgY2hpbGRyZW46IGNvbHVtbltpdGVtLnJvdy5pZF0gfSwgaXRlbS5yb3cuaWQpKTsgfSkgfSkpO1xuICAgICAgICAgICAgICAgIH0pIH0pXSB9KSk7XG59O1xuZXhwb3J0IGRlZmF1bHQgRGF0YVRhYmxlO1xuIiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBBdmF0YXIgfSBmcm9tIFwiLi9jb21wb25lbnRzL2F2YXRhci9hdmF0YXJcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ1RBQnV0dG9uIH0gZnJvbSBcIi4vY29tcG9uZW50cy9idXR0b24vY3RhLWJ1dHRvblwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBPcHRpb25CYWRnZSB9IGZyb20gXCIuL2NvbXBvbmVudHMvYmFkZ2Uvb3B0aW9uLWJhZGdlXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEljb25UZXh0QmFkZ2UgfSBmcm9tIFwiLi9jb21wb25lbnRzL2JhZGdlL2ljb24tdGV4dC1iYWRnZVwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBJY29uVGV4dE9wdGlvbkJhZGdlIH0gZnJvbSBcIi4vY29tcG9uZW50cy9iYWRnZS9pY29uLXRleHQtb3B0aW9uLWJhZGdlXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIERhdGFUYWJsZSB9IGZyb20gXCIuL2NvbXBvbmVudHMvdGFibGUvZGF0YS10YWJsZVwiO1xuIl0sIm5hbWVzIjpbIl9fYXNzaWduIiwiT2JqZWN0IiwiYXNzaWduIiwidCIsInMiLCJpIiwibiIsImFyZ3VtZW50cyIsImxlbmd0aCIsInAiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJhcHBseSIsIl9fcmVzdCIsImUiLCJpbmRleE9mIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJDaGlsZHJlbiIsImNsb25lRWxlbWVudCIsImZvcndhcmRSZWYiLCJpc1ZhbGlkRWxlbWVudCIsImNvbXBvc2VSZWZzIiwicmVmcyIsIl9pIiwibm9kZSIsImZvckVhY2giLCJyZWYiLCJjdXJyZW50IiwiQ29tcG9zZXIiLCJfYSIsImNoaWxkcmVuIiwiY29tcG9zZXJQcm9wcyIsImNoaWxkQXJyYXkiLCJ0b0FycmF5IiwiRXJyb3IiLCJpc1ZhbGlkQ2hpbGQiLCJjaGlsZCIsImNoaWxkUmVmIiwiZ2V0RWxlbWVudFJlZiIsIm1lcmdlZFByb3BzIiwibWVyZ2VQcm9wcyIsInByb3BzIiwiZGlzcGxheU5hbWUiLCJjaGlsZFByb3BzIiwib3ZlcnJpZGVQcm9wcyIsIl9sb29wXzEiLCJwcm9wTmFtZSIsImNvbXBvc2VyUHJvcFZhbHVlIiwiY2hpbGRQcm9wVmFsdWUiLCJpc0hhbmRsZXIiLCJ0ZXN0IiwiYXJncyIsImZpbHRlciIsIkJvb2xlYW4iLCJqb2luIiwiZWxlbWVudCIsIl9iIiwiZ2V0dGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZ2V0IiwibWF5V2FybiIsImlzUmVhY3RXYXJuaW5nIiwianN4IiwiX2pzeCIsIkJhc2VCYWRnZSIsImFzQ2hpbGQiLCJib3JkZXJDb2xvciIsInRleHRDb2xvciIsImJhY2tncm91bmRDb2xvciIsIl9jIiwic2l6ZSIsInN0eWxlIiwiY2xhc3NOYW1lIiwiQ29tcCIsImNvbXBvc2VkQ2xhc3NOYW1lIiwiY29uY2F0IiwianN4cyIsIl9qc3hzIiwidXNlU3RhdGUiLCJBdmF0YXIiLCJzcmMiLCJhbHQiLCJiYWRnZU9wdGlvbiIsImlzSW1hZ2VEb3dubG9hZCIsInNldElzSW1hZ2VEb3dubG9hZCIsIm9uTG9hZCIsInBvc2l0aW9uIiwicmlnaHQiLCJib3R0b20iLCJCYXNlQnV0dG9uIiwib25DbGljayIsImNvbnNvbGUiLCJsb2ciLCJMb2FkaW5nIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJDVEFCdXR0b24iLCJ0ZXh0IiwidmFyaWFudCIsImRpc2FibGVkIiwiaWNvbiIsIl9kIiwibG9hZGluZyIsIk9wdGlvbkJhZGdlIiwib3B0aW9uIiwiSWNvblRleHRCYWRnZSIsIkljb25UZXh0T3B0aW9uQmFkZ2UiLCJUYWJsZVJvb3QiLCJUYWJsZUhlYWRlciIsImp1c3RpZnkiLCJUYWJsZVJvdyIsIlRhYmxlQm9keSIsIlRhYmxlQ2VsbCIsInJlc3QiLCJjbGFzc05hbWVzIiwiSGVhZGVyIiwiQm9keSIsIlJvdyIsIkNlbGwiLCJ1c2VMYXlvdXRFZmZlY3QiLCJ1c2VSZWYiLCJEYXRhVGFibGUiLCJyb3dzIiwiY29sdW1ucyIsImRpc3BsYXlSb3dzIiwibWFwIiwicm93IiwiaGlkZSIsImZpbmQiLCJpdGVtIiwiaWQiLCJ2YWx1ZSIsImNvbHVtbiIsImRlZmF1bHQiXSwic291cmNlUm9vdCI6IiJ9
1
+ export { default as Avatar } from "./components/avatar/avatar";
2
+ export { default as CTAButton } from "./components/button/cta-button";
3
+ export { default as OptionBadge } from "./components/badge/option-badge";
4
+ export { default as IconTextBadge } from "./components/badge/icon-text-badge";
5
+ export { default as IconTextOptionBadge } from "./components/badge/icon-text-option-badge";
6
+ export { default as DataTable } from "./components/table/data-table";