@secrecy/lib 1.0.0-dev.7 → 1.0.0

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.
Files changed (115) hide show
  1. package/README.md +1 -1
  2. package/{lib → dist}/BaseClient.d.ts +62 -69
  3. package/dist/BaseClient.js +1124 -0
  4. package/{lib → dist}/PopupTools.d.ts +1 -1
  5. package/dist/PopupTools.js +212 -0
  6. package/{lib → dist}/ZeusThunder.d.ts +0 -0
  7. package/dist/ZeusThunder.js +79 -0
  8. package/dist/cache.d.ts +6 -0
  9. package/dist/cache.js +4 -0
  10. package/dist/client/admin/index.d.ts +11 -0
  11. package/dist/client/admin/index.js +110 -0
  12. package/{lib → dist}/client/convert/file.d.ts +3 -3
  13. package/dist/client/convert/file.js +34 -0
  14. package/{lib → dist}/client/convert/mail.d.ts +0 -0
  15. package/dist/client/convert/mail.js +46 -0
  16. package/dist/client/convert/node.d.ts +9 -0
  17. package/dist/client/convert/node.js +101 -0
  18. package/{lib → dist}/client/helpers.d.ts +1 -1
  19. package/dist/client/helpers.js +114 -0
  20. package/dist/client/index.d.ts +164 -0
  21. package/dist/client/index.js +3206 -0
  22. package/{lib → dist}/client/storage.d.ts +0 -0
  23. package/dist/client/storage.js +12 -0
  24. package/dist/client/types/File.d.ts +14 -0
  25. package/dist/client/types/File.js +3 -0
  26. package/{lib → dist}/client/types/Inputs.d.ts +2 -7
  27. package/dist/client/types/Inputs.js +3 -0
  28. package/dist/client/types/Node.d.ts +49 -0
  29. package/dist/client/types/Node.js +3 -0
  30. package/{lib → dist}/client/types/UserAppNotifications.d.ts +1 -1
  31. package/dist/client/types/UserAppNotifications.js +3 -0
  32. package/{lib → dist}/client/types/UserAppSettings.d.ts +0 -1
  33. package/dist/client/types/UserAppSettings.js +3 -0
  34. package/{lib → dist}/client/types/index.d.ts +7 -13
  35. package/dist/client/types/index.js +8 -0
  36. package/dist/client/types/selectors.d.ts +476 -0
  37. package/dist/client/types/selectors.js +125 -0
  38. package/{lib → dist}/crypto/file.d.ts +0 -0
  39. package/dist/crypto/file.js +210 -0
  40. package/{lib → dist}/crypto/index.d.ts +0 -0
  41. package/dist/crypto/index.js +47 -0
  42. package/dist/error.d.ts +30 -0
  43. package/dist/error.js +3 -0
  44. package/{lib → dist}/index.d.ts +4 -3
  45. package/dist/index.js +10 -0
  46. package/{lib → dist}/minify/index.d.ts +0 -0
  47. package/dist/minify/index.js +28 -0
  48. package/{lib → dist}/minify/lz4.d.ts +0 -0
  49. package/dist/minify/lz4.js +627 -0
  50. package/{lib → dist}/sodium.d.ts +0 -0
  51. package/dist/sodium.js +6 -0
  52. package/{lib → dist}/utils/store-buddy.d.ts +0 -0
  53. package/dist/utils/store-buddy.js +65 -0
  54. package/{lib → dist}/utils/time.d.ts +0 -0
  55. package/dist/utils/time.js +14 -0
  56. package/{lib → dist/utils}/utils.d.ts +0 -0
  57. package/dist/utils/utils.js +57 -0
  58. package/{lib → dist}/worker/__mock__/sodium.worker.d.ts +0 -0
  59. package/dist/worker/__mock__/sodium.worker.js +49 -0
  60. package/{lib → dist}/worker/md5.d.ts +0 -0
  61. package/dist/worker/md5.js +25 -0
  62. package/{lib → dist}/worker/sodium.d.ts +0 -0
  63. package/dist/worker/sodium.js +120 -0
  64. package/{lib → dist}/worker/workerCodes.d.ts +0 -0
  65. package/dist/worker/workerCodes.js +3 -0
  66. package/{lib → dist}/zeus/const.d.ts +5 -0
  67. package/dist/zeus/const.js +1230 -0
  68. package/dist/zeus/index.d.ts +4069 -0
  69. package/dist/zeus/index.js +657 -0
  70. package/package.json +64 -57
  71. package/lib/BaseClient.js +0 -1332
  72. package/lib/PopupTools.js +0 -213
  73. package/lib/ZeusThunder.js +0 -112
  74. package/lib/cache.d.ts +0 -7
  75. package/lib/cache.js +0 -5
  76. package/lib/client/convert/file.js +0 -39
  77. package/lib/client/convert/folder.d.ts +0 -8
  78. package/lib/client/convert/folder.js +0 -264
  79. package/lib/client/convert/mail.js +0 -46
  80. package/lib/client/convert/vFile.d.ts +0 -5
  81. package/lib/client/convert/vFile.js +0 -164
  82. package/lib/client/helpers.js +0 -116
  83. package/lib/client/index.d.ts +0 -167
  84. package/lib/client/index.js +0 -3746
  85. package/lib/client/storage.js +0 -12
  86. package/lib/client/types/File.d.ts +0 -21
  87. package/lib/client/types/File.js +0 -2
  88. package/lib/client/types/FilesOnUsersOnApplications.d.ts +0 -9
  89. package/lib/client/types/FilesOnUsersOnApplications.js +0 -2
  90. package/lib/client/types/Folder.d.ts +0 -68
  91. package/lib/client/types/Folder.js +0 -7
  92. package/lib/client/types/Inputs.js +0 -2
  93. package/lib/client/types/UserAppNotifications.js +0 -2
  94. package/lib/client/types/UserAppSettings.js +0 -2
  95. package/lib/client/types/VFile.d.ts +0 -62
  96. package/lib/client/types/VFile.js +0 -4
  97. package/lib/client/types/index.js +0 -9
  98. package/lib/client/types/queries.d.ts +0 -535
  99. package/lib/client/types/queries.js +0 -192
  100. package/lib/crypto/file.js +0 -291
  101. package/lib/crypto/index.js +0 -37
  102. package/lib/index.js +0 -40
  103. package/lib/minify/index.js +0 -28
  104. package/lib/minify/lz4.js +0 -633
  105. package/lib/sodium.js +0 -28
  106. package/lib/utils/store-buddy.js +0 -69
  107. package/lib/utils/time.js +0 -22
  108. package/lib/utils.js +0 -188
  109. package/lib/worker/__mock__/sodium.worker.js +0 -57
  110. package/lib/worker/md5.js +0 -43
  111. package/lib/worker/sodium.js +0 -155
  112. package/lib/worker/workerCodes.js +0 -3
  113. package/lib/zeus/const.js +0 -1643
  114. package/lib/zeus/index.d.ts +0 -26220
  115. package/lib/zeus/index.js +0 -552
package/lib/zeus/index.js DELETED
@@ -1,552 +0,0 @@
1
- import _construct from "@babel/runtime/helpers/construct";
2
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
- import _inheritsLoose from "@babel/runtime/helpers/inheritsLoose";
4
- import _wrapNativeSuper from "@babel/runtime/helpers/wrapNativeSuper";
5
-
6
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
7
-
8
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
9
-
10
- function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
11
-
12
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
13
-
14
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
15
-
16
- /* eslint-disable */
17
- import { AllTypesProps, ReturnTypes } from './const.js';
18
- export var Lang;
19
-
20
- (function (Lang) {
21
- Lang["fr"] = "fr";
22
- Lang["en"] = "en";
23
- Lang["it"] = "it";
24
- Lang["de"] = "de";
25
- Lang["pt"] = "pt";
26
- Lang["ja"] = "ja";
27
- Lang["es"] = "es";
28
- Lang["nl"] = "nl";
29
- Lang["pl"] = "pl";
30
- Lang["ru"] = "ru";
31
- Lang["zh"] = "zh";
32
- Lang["ar"] = "ar";
33
- Lang["he"] = "he";
34
- Lang["hi"] = "hi";
35
- Lang["ko"] = "ko";
36
- })(Lang || (Lang = {}));
37
-
38
- export var PlanKind;
39
-
40
- (function (PlanKind) {
41
- PlanKind["free"] = "free";
42
- PlanKind["basic"] = "basic";
43
- PlanKind["advanced"] = "advanced";
44
- PlanKind["pro"] = "pro";
45
- })(PlanKind || (PlanKind = {}));
46
-
47
- export var UserRole;
48
-
49
- (function (UserRole) {
50
- UserRole["user"] = "user";
51
- UserRole["admin"] = "admin";
52
- })(UserRole || (UserRole = {}));
53
-
54
- export var MailType;
55
-
56
- (function (MailType) {
57
- MailType["sent"] = "sent";
58
- MailType["received"] = "received";
59
- })(MailType || (MailType = {}));
60
-
61
- export var Rights;
62
-
63
- (function (Rights) {
64
- Rights["admin"] = "admin";
65
- Rights["write"] = "write";
66
- Rights["read"] = "read";
67
- })(Rights || (Rights = {}));
68
-
69
- export var FileContentType;
70
-
71
- (function (FileContentType) {
72
- FileContentType["cloud"] = "cloud";
73
- FileContentType["sent_mail"] = "sent_mail";
74
- FileContentType["received_mail"] = "received_mail";
75
- })(FileContentType || (FileContentType = {}));
76
-
77
- export var PayInputType;
78
-
79
- (function (PayInputType) {
80
- PayInputType["secure"] = "secure";
81
- PayInputType["classic"] = "classic";
82
- })(PayInputType || (PayInputType = {}));
83
-
84
- export var GraphQLError = /*#__PURE__*/function (_Error) {
85
- _inheritsLoose(GraphQLError, _Error);
86
-
87
- function GraphQLError(response) {
88
- var _this;
89
-
90
- _this = _Error.call(this, "") || this;
91
- _this.response = response;
92
- console.error(response);
93
- return _this;
94
- }
95
-
96
- var _proto = GraphQLError.prototype;
97
-
98
- _proto.toString = function toString() {
99
- return "GraphQL Response Error";
100
- };
101
-
102
- return GraphQLError;
103
- }( /*#__PURE__*/_wrapNativeSuper(Error));
104
- export var ZeusSelect = function ZeusSelect() {
105
- return function (t) {
106
- return t;
107
- };
108
- };
109
- export var ScalarResolver = function ScalarResolver(scalar, value) {
110
- switch (scalar) {
111
- case 'String':
112
- return "" + JSON.stringify(value);
113
-
114
- case 'Int':
115
- return "" + value;
116
-
117
- case 'Float':
118
- return "" + value;
119
-
120
- case 'Boolean':
121
- return "" + value;
122
-
123
- case 'ID':
124
- return "\"" + value + "\"";
125
-
126
- case 'enum':
127
- return "" + value;
128
-
129
- case 'scalar':
130
- return "" + value;
131
-
132
- default:
133
- return false;
134
- }
135
- };
136
- export var TypesPropsResolver = function TypesPropsResolver(_ref) {
137
- var value = _ref.value,
138
- type = _ref.type,
139
- name = _ref.name,
140
- key = _ref.key,
141
- blockArrays = _ref.blockArrays;
142
-
143
- if (value === null) {
144
- return "null";
145
- }
146
-
147
- var resolvedValue = AllTypesProps[type][name];
148
-
149
- if (key) {
150
- resolvedValue = resolvedValue[key];
151
- }
152
-
153
- if (!resolvedValue) {
154
- throw new Error("Cannot resolve " + type + " " + name + (key ? " " + key : ''));
155
- }
156
-
157
- var typeResolved = resolvedValue.type;
158
- var isArray = resolvedValue.array;
159
- var isArrayRequired = resolvedValue.arrayRequired;
160
-
161
- if (typeof value === 'string' && value.startsWith("ZEUS_VAR$")) {
162
- var isRequired = resolvedValue.required ? '!' : '';
163
-
164
- var _t = "" + typeResolved;
165
-
166
- if (isArray) {
167
- if (isRequired) {
168
- _t = _t + "!";
169
- }
170
-
171
- _t = "[" + _t + "]";
172
-
173
- if (isArrayRequired) {
174
- _t = _t + "!";
175
- }
176
- } else {
177
- if (isRequired) {
178
- _t = _t + "!";
179
- }
180
- }
181
-
182
- return "$" + value.split("ZEUS_VAR$")[1] + "__ZEUS_VAR__" + _t;
183
- }
184
-
185
- if (isArray && !blockArrays) {
186
- return "[" + value.map(function (v) {
187
- return TypesPropsResolver({
188
- value: v,
189
- type: type,
190
- name: name,
191
- key: key,
192
- blockArrays: true
193
- });
194
- }).join(',') + "]";
195
- }
196
-
197
- var reslovedScalar = ScalarResolver(typeResolved, value);
198
-
199
- if (!reslovedScalar) {
200
- var resolvedType = AllTypesProps[typeResolved];
201
-
202
- if (typeof resolvedType === 'object') {
203
- var argsKeys = Object.keys(resolvedType);
204
- return "{" + argsKeys.filter(function (ak) {
205
- return value[ak] !== undefined;
206
- }).map(function (ak) {
207
- return ak + ":" + TypesPropsResolver({
208
- value: value[ak],
209
- type: typeResolved,
210
- name: ak
211
- });
212
- }) + "}";
213
- }
214
-
215
- return ScalarResolver(AllTypesProps[typeResolved], value);
216
- }
217
-
218
- return reslovedScalar;
219
- };
220
-
221
- var isArrayFunction = function isArrayFunction(parent, a) {
222
- var values = a[0],
223
- r = a[1];
224
- var mainKey = parent[0],
225
- key = parent[1],
226
- keys = parent.slice(2);
227
- var keyValues = Object.keys(values).filter(function (k) {
228
- return typeof values[k] !== 'undefined';
229
- });
230
-
231
- if (!keys.length) {
232
- return keyValues.length > 0 ? "(" + keyValues.map(function (v) {
233
- return v + ":" + TypesPropsResolver({
234
- value: values[v],
235
- type: mainKey,
236
- name: key,
237
- key: v
238
- });
239
- }).join(',') + ")" + (r ? traverseToSeekArrays(parent, r) : '') : traverseToSeekArrays(parent, r);
240
- }
241
-
242
- var _keys$splice = keys.splice(keys.length - 1, 1),
243
- typeResolverKey = _keys$splice[0];
244
-
245
- var valueToResolve = ReturnTypes[mainKey][key];
246
-
247
- for (var _iterator = _createForOfIteratorHelperLoose(keys), _step; !(_step = _iterator()).done;) {
248
- var k = _step.value;
249
- valueToResolve = ReturnTypes[valueToResolve][k];
250
- }
251
-
252
- var argumentString = keyValues.length > 0 ? "(" + keyValues.map(function (v) {
253
- return v + ":" + TypesPropsResolver({
254
- value: values[v],
255
- type: valueToResolve,
256
- name: typeResolverKey,
257
- key: v
258
- });
259
- }).join(',') + ")" + (r ? traverseToSeekArrays(parent, r) : '') : traverseToSeekArrays(parent, r);
260
- return argumentString;
261
- };
262
-
263
- var resolveKV = function resolveKV(k, v) {
264
- return typeof v === 'boolean' ? k : typeof v === 'object' ? k + "{" + objectToTree(v) + "}" : "" + k + v;
265
- };
266
-
267
- var objectToTree = function objectToTree(o) {
268
- return "{" + Object.keys(o).map(function (k) {
269
- return "" + resolveKV(k, o[k]);
270
- }).join(' ') + "}";
271
- };
272
-
273
- var traverseToSeekArrays = function traverseToSeekArrays(parent, a) {
274
- if (!a) return '';
275
-
276
- if (Object.keys(a).length === 0) {
277
- return '';
278
- }
279
-
280
- var b = {};
281
-
282
- if (Array.isArray(a)) {
283
- return isArrayFunction([].concat(parent), a);
284
- } else {
285
- if (typeof a === 'object') {
286
- Object.keys(a).filter(function (k) {
287
- return typeof a[k] !== 'undefined';
288
- }).forEach(function (k) {
289
- if (k === '__alias') {
290
- Object.keys(a[k]).forEach(function (aliasKey) {
291
- var aliasOperations = a[k][aliasKey];
292
- var aliasOperationName = Object.keys(aliasOperations)[0];
293
- var aliasOperation = aliasOperations[aliasOperationName];
294
- b[aliasOperationName + "__alias__" + aliasKey + ": " + aliasOperationName] = traverseToSeekArrays([].concat(parent, [aliasOperationName]), aliasOperation);
295
- });
296
- } else {
297
- b[k] = traverseToSeekArrays([].concat(parent, [k]), a[k]);
298
- }
299
- });
300
- } else {
301
- return '';
302
- }
303
- }
304
-
305
- return objectToTree(b);
306
- };
307
-
308
- var buildQuery = function buildQuery(type, a) {
309
- return traverseToSeekArrays([type], a);
310
- };
311
-
312
- var inspectVariables = function inspectVariables(query) {
313
- var regex = /\$\b\w*__ZEUS_VAR__\[?[^!^\]^\s^,^\)^\}]*[!]?[\]]?[!]?/g;
314
- var result;
315
- var AllVariables = [];
316
-
317
- while (result = regex.exec(query)) {
318
- if (AllVariables.includes(result[0])) {
319
- continue;
320
- }
321
-
322
- AllVariables.push(result[0]);
323
- }
324
-
325
- if (!AllVariables.length) {
326
- return query;
327
- }
328
-
329
- var filteredQuery = query;
330
- AllVariables.forEach(function (variable) {
331
- while (filteredQuery.includes(variable)) {
332
- filteredQuery = filteredQuery.replace(variable, variable.split('__ZEUS_VAR__')[0]);
333
- }
334
- });
335
- return "(" + AllVariables.map(function (a) {
336
- return a.split('__ZEUS_VAR__');
337
- }).map(function (_ref2) {
338
- var variableName = _ref2[0],
339
- variableType = _ref2[1];
340
- return variableName + ":" + variableType;
341
- }).join(', ') + ")" + filteredQuery;
342
- };
343
-
344
- export var queryConstruct = function queryConstruct(t, tName, operationName) {
345
- return function (o) {
346
- return "" + t.toLowerCase() + (operationName ? ' ' + operationName : '') + inspectVariables(buildQuery(tName, o));
347
- };
348
- };
349
-
350
- var fullChainConstruct = function fullChainConstruct(fn) {
351
- return function (t, tName) {
352
- return function (o, options) {
353
- return fn(queryConstruct(t, tName, options == null ? void 0 : options.operationName)(o), options == null ? void 0 : options.variables).then(function (r) {
354
- seekForAliases(r);
355
- return r;
356
- });
357
- };
358
- };
359
- };
360
-
361
- export var fullChainConstructor = function fullChainConstructor(fn, operation, key) {
362
- return function (o, options) {
363
- return fullChainConstruct(fn)(operation, key)(o, options);
364
- };
365
- };
366
-
367
- var fullSubscriptionConstruct = function fullSubscriptionConstruct(fn) {
368
- return function (t, tName) {
369
- return function (o, options) {
370
- return fn(queryConstruct(t, tName, options == null ? void 0 : options.operationName)(o));
371
- };
372
- };
373
- };
374
-
375
- export var fullSubscriptionConstructor = function fullSubscriptionConstructor(fn, operation, key) {
376
- return function (o, options) {
377
- return fullSubscriptionConstruct(fn)(operation, key)(o, options);
378
- };
379
- };
380
-
381
- var seekForAliases = function seekForAliases(response) {
382
- var traverseAlias = function traverseAlias(value) {
383
- if (Array.isArray(value)) {
384
- value.forEach(seekForAliases);
385
- } else {
386
- if (typeof value === 'object') {
387
- seekForAliases(value);
388
- }
389
- }
390
- };
391
-
392
- if (typeof response === 'object' && response) {
393
- var keys = Object.keys(response);
394
-
395
- if (keys.length < 1) {
396
- return;
397
- }
398
-
399
- keys.forEach(function (k) {
400
- var value = response[k];
401
-
402
- if (k.indexOf('__alias__') !== -1) {
403
- var _response$alias;
404
-
405
- var _k$split = k.split('__alias__'),
406
- operation = _k$split[0],
407
- alias = _k$split[1];
408
-
409
- response[alias] = (_response$alias = {}, _response$alias[operation] = value, _response$alias);
410
- delete response[k];
411
- }
412
-
413
- traverseAlias(value);
414
- });
415
- }
416
- };
417
-
418
- export var $ = function $(t) {
419
- return "ZEUS_VAR$" + t.join('');
420
- };
421
- export var resolverFor = function resolverFor(fn) {
422
- return fn;
423
- };
424
-
425
- var handleFetchResponse = function handleFetchResponse(response) {
426
- if (!response.ok) {
427
- return new Promise(function (_, reject) {
428
- response.text().then(function (text) {
429
- try {
430
- reject(JSON.parse(text));
431
- } catch (err) {
432
- reject(text);
433
- }
434
- }).catch(reject);
435
- });
436
- }
437
-
438
- return response.json();
439
- };
440
-
441
- export var apiFetch = function apiFetch(options) {
442
- return function (query, variables) {
443
- if (variables === void 0) {
444
- variables = {};
445
- }
446
-
447
- var fetchFunction = fetch;
448
- var queryString = query;
449
- var fetchOptions = options[1] || {};
450
-
451
- if (fetchOptions.method && fetchOptions.method === 'GET') {
452
- queryString = encodeURIComponent(query);
453
- return fetchFunction(options[0] + "?query=" + queryString, fetchOptions).then(handleFetchResponse).then(function (response) {
454
- if (response.errors) {
455
- throw new GraphQLError(response);
456
- }
457
-
458
- return response.data;
459
- });
460
- }
461
-
462
- return fetchFunction("" + options[0], _objectSpread({
463
- body: JSON.stringify({
464
- query: queryString,
465
- variables: variables
466
- }),
467
- method: 'POST',
468
- headers: {
469
- 'Content-Type': 'application/json'
470
- }
471
- }, fetchOptions)).then(handleFetchResponse).then(function (response) {
472
- if (response.errors) {
473
- throw new GraphQLError(response);
474
- }
475
-
476
- return response.data;
477
- });
478
- };
479
- };
480
- export var apiSubscription = function apiSubscription(options) {
481
- return function (query) {
482
- try {
483
- var _options$, _options$$websocket, _options$2;
484
-
485
- var queryString = options[0] + '?query=' + encodeURIComponent(query);
486
- var wsString = queryString.replace('http', 'ws');
487
- var host = options.length > 1 && ((_options$ = options[1]) == null ? void 0 : (_options$$websocket = _options$.websocket) == null ? void 0 : _options$$websocket[0]) || wsString;
488
- var webSocketOptions = ((_options$2 = options[1]) == null ? void 0 : _options$2.websocket) || [host];
489
-
490
- var ws = _construct(WebSocket, webSocketOptions);
491
-
492
- return {
493
- ws: ws,
494
- on: function on(e) {
495
- ws.onmessage = function (event) {
496
- if (event.data) {
497
- var parsed = JSON.parse(event.data);
498
- var data = parsed.data;
499
-
500
- if (data) {
501
- seekForAliases(data);
502
- }
503
-
504
- return e(data);
505
- }
506
- };
507
- },
508
- off: function off(e) {
509
- ws.onclose = e;
510
- },
511
- error: function error(e) {
512
- ws.onerror = e;
513
- },
514
- open: function open(e) {
515
- ws.onopen = e;
516
- }
517
- };
518
- } catch (_unused) {
519
- throw new Error('No websockets implemented');
520
- }
521
- };
522
- };
523
- export var Thunder = function Thunder(fn) {
524
- return {
525
- query: fullChainConstructor(fn, 'query', 'Query'),
526
- mutation: fullChainConstructor(fn, 'mutation', 'Mutation')
527
- };
528
- };
529
- export var Chain = function Chain() {
530
- for (var _len = arguments.length, options = new Array(_len), _key = 0; _key < _len; _key++) {
531
- options[_key] = arguments[_key];
532
- }
533
-
534
- return {
535
- query: fullChainConstructor(apiFetch(options), 'query', 'Query'),
536
- mutation: fullChainConstructor(apiFetch(options), 'mutation', 'Mutation')
537
- };
538
- };
539
- export var Zeus = {
540
- query: function query(o, operationName) {
541
- return queryConstruct('query', 'Query', operationName)(o);
542
- },
543
- mutation: function mutation(o, operationName) {
544
- return queryConstruct('mutation', 'Mutation', operationName)(o);
545
- }
546
- };
547
- export var Selectors = {
548
- query: ZeusSelect(),
549
- mutation: ZeusSelect()
550
- };
551
- export var Gql = Chain('https://api.dev.secrecy.me/graphql');
552
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy96ZXVzL2luZGV4LnRzIl0sIm5hbWVzIjpbIkFsbFR5cGVzUHJvcHMiLCJSZXR1cm5UeXBlcyIsIkxhbmciLCJQbGFuS2luZCIsIlVzZXJSb2xlIiwiTWFpbFR5cGUiLCJSaWdodHMiLCJGaWxlQ29udGVudFR5cGUiLCJQYXlJbnB1dFR5cGUiLCJHcmFwaFFMRXJyb3IiLCJyZXNwb25zZSIsImNvbnNvbGUiLCJlcnJvciIsInRvU3RyaW5nIiwiRXJyb3IiLCJaZXVzU2VsZWN0IiwidCIsIlNjYWxhclJlc29sdmVyIiwic2NhbGFyIiwidmFsdWUiLCJKU09OIiwic3RyaW5naWZ5IiwiVHlwZXNQcm9wc1Jlc29sdmVyIiwidHlwZSIsIm5hbWUiLCJrZXkiLCJibG9ja0FycmF5cyIsInJlc29sdmVkVmFsdWUiLCJ0eXBlUmVzb2x2ZWQiLCJpc0FycmF5IiwiYXJyYXkiLCJpc0FycmF5UmVxdWlyZWQiLCJhcnJheVJlcXVpcmVkIiwic3RhcnRzV2l0aCIsImlzUmVxdWlyZWQiLCJyZXF1aXJlZCIsInNwbGl0IiwibWFwIiwidiIsImpvaW4iLCJyZXNsb3ZlZFNjYWxhciIsInJlc29sdmVkVHlwZSIsImFyZ3NLZXlzIiwiT2JqZWN0Iiwia2V5cyIsImZpbHRlciIsImFrIiwidW5kZWZpbmVkIiwiaXNBcnJheUZ1bmN0aW9uIiwicGFyZW50IiwiYSIsInZhbHVlcyIsInIiLCJtYWluS2V5Iiwia2V5VmFsdWVzIiwiayIsImxlbmd0aCIsInRyYXZlcnNlVG9TZWVrQXJyYXlzIiwic3BsaWNlIiwidHlwZVJlc29sdmVyS2V5IiwidmFsdWVUb1Jlc29sdmUiLCJhcmd1bWVudFN0cmluZyIsInJlc29sdmVLViIsIm9iamVjdFRvVHJlZSIsIm8iLCJiIiwiQXJyYXkiLCJmb3JFYWNoIiwiYWxpYXNLZXkiLCJhbGlhc09wZXJhdGlvbnMiLCJhbGlhc09wZXJhdGlvbk5hbWUiLCJhbGlhc09wZXJhdGlvbiIsImJ1aWxkUXVlcnkiLCJpbnNwZWN0VmFyaWFibGVzIiwicXVlcnkiLCJyZWdleCIsInJlc3VsdCIsIkFsbFZhcmlhYmxlcyIsImV4ZWMiLCJpbmNsdWRlcyIsInB1c2giLCJmaWx0ZXJlZFF1ZXJ5IiwidmFyaWFibGUiLCJyZXBsYWNlIiwidmFyaWFibGVOYW1lIiwidmFyaWFibGVUeXBlIiwicXVlcnlDb25zdHJ1Y3QiLCJ0TmFtZSIsIm9wZXJhdGlvbk5hbWUiLCJ0b0xvd2VyQ2FzZSIsImZ1bGxDaGFpbkNvbnN0cnVjdCIsImZuIiwib3B0aW9ucyIsInZhcmlhYmxlcyIsInRoZW4iLCJzZWVrRm9yQWxpYXNlcyIsImZ1bGxDaGFpbkNvbnN0cnVjdG9yIiwib3BlcmF0aW9uIiwiZnVsbFN1YnNjcmlwdGlvbkNvbnN0cnVjdCIsImZ1bGxTdWJzY3JpcHRpb25Db25zdHJ1Y3RvciIsInRyYXZlcnNlQWxpYXMiLCJpbmRleE9mIiwiYWxpYXMiLCIkIiwicmVzb2x2ZXJGb3IiLCJoYW5kbGVGZXRjaFJlc3BvbnNlIiwib2siLCJQcm9taXNlIiwiXyIsInJlamVjdCIsInRleHQiLCJwYXJzZSIsImVyciIsImNhdGNoIiwianNvbiIsImFwaUZldGNoIiwiZmV0Y2hGdW5jdGlvbiIsImZldGNoIiwicXVlcnlTdHJpbmciLCJmZXRjaE9wdGlvbnMiLCJtZXRob2QiLCJlbmNvZGVVUklDb21wb25lbnQiLCJlcnJvcnMiLCJkYXRhIiwiYm9keSIsImhlYWRlcnMiLCJhcGlTdWJzY3JpcHRpb24iLCJ3c1N0cmluZyIsImhvc3QiLCJ3ZWJzb2NrZXQiLCJ3ZWJTb2NrZXRPcHRpb25zIiwid3MiLCJXZWJTb2NrZXQiLCJvbiIsImUiLCJvbm1lc3NhZ2UiLCJldmVudCIsInBhcnNlZCIsIm9mZiIsIm9uY2xvc2UiLCJvbmVycm9yIiwib3BlbiIsIm9ub3BlbiIsIlRodW5kZXIiLCJtdXRhdGlvbiIsIkNoYWluIiwiWmV1cyIsIlNlbGVjdG9ycyIsIkdxbCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFFQSxTQUFTQSxhQUFULEVBQXdCQyxXQUF4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QixPQUFELENBQVQsRUFBbUIsVUFBbkIsRUFBK0IsVUFBL0I7QUFGc0IsR0FBL0I7QUFBQSxDQUFkO0FBSVAsT0FBTyxJQUFNc0QsSUFBSSxHQUFHO0FBQ2xCeEUsRUFBQUEsS0FBSyxFQUFFLGVBQUNWLENBQUQsRUFBd0J3QixhQUF4QjtBQUFBLFdBQW1ERixjQUFjLENBQUMsT0FBRCxFQUFVLE9BQVYsRUFBbUJFLGFBQW5CLENBQWQsQ0FBZ0R4QixDQUFoRCxDQUFuRDtBQUFBLEdBRFc7QUFFcEJnRixFQUFBQSxRQUFRLEVBQUUsa0JBQUNoRixDQUFELEVBQTJCd0IsYUFBM0I7QUFBQSxXQUFzREYsY0FBYyxDQUFDLFVBQUQsRUFBYSxVQUFiLEVBQXlCRSxhQUF6QixDQUFkLENBQXNEeEIsQ0FBdEQsQ0FBdEQ7QUFBQTtBQUZVLENBQWI7QUFJUCxPQUFPLElBQU1tRixTQUFTLEdBQUc7QUFDdkJ6RSxFQUFBQSxLQUFLLEVBQUUzRCxVQUFVLEVBRE07QUFFekJpSSxFQUFBQSxRQUFRLEVBQUVqSSxVQUFVO0FBRkssQ0FBbEI7QUFNUCxPQUFPLElBQU1xSSxHQUFHLEdBQUdILEtBQUssQ0FBQyxvQ0FBRCxDQUFqQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlICovXG5cbmltcG9ydCB7IEFsbFR5cGVzUHJvcHMsIFJldHVyblR5cGVzIH0gZnJvbSAnLi9jb25zdC5qcyc7XG50eXBlIFpFVVNfSU5URVJGQUNFUyA9IEdyYXBoUUxUeXBlc1tcIkZpbGVDb250ZW50QmFzZVwiXVxudHlwZSBaRVVTX1VOSU9OUyA9IEdyYXBoUUxUeXBlc1tcIkZpbGVDb250ZW50XCJdXG5cbmV4cG9ydCB0eXBlIFZhbHVlVHlwZXMgPSB7XG4gICAgLyoqIFRoZSBgQmlnSW50YCBzY2FsYXIgdHlwZSByZXByZXNlbnRzIG5vbi1mcmFjdGlvbmFsIHNpZ25lZCB3aG9sZSBudW1lcmljIHZhbHVlcy5cbkBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvQmlnSW50ICovXG5bXCJCaWdJbnRcIl06dW5rbm93bjtcblx0LyoqIFRoZSBgQnl0ZWAgc2NhbGFyIHR5cGUgcmVwcmVzZW50cyBieXRlIHZhbHVlIGFzIGEgQnVmZmVyICovXG5bXCJCeXRlc1wiXTp1bmtub3duO1xuXHQvKiogQSBkYXRlLXRpbWUgc3RyaW5nIGF0IFVUQywgc3VjaCBhcyAyMDA3LTEyLTAzVDEwOjE1OjMwWiwgY29tcGxpYW50IHdpdGggdGhlIGBkYXRlLXRpbWVgIGZvcm1hdCBvdXRsaW5lZCBpbiBzZWN0aW9uIDUuNiBvZiB0aGUgUkZDIDMzMzkgcHJvZmlsZSBvZiB0aGUgSVNPIDg2MDEgc3RhbmRhcmQgZm9yIHJlcHJlc2VudGF0aW9uIG9mIGRhdGVzIGFuZCB0aW1lcyB1c2luZyB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyLiAqL1xuW1wiRGF0ZVRpbWVcIl06dW5rbm93bjtcblx0LyoqIEFuIGFyYml0cmFyeS1wcmVjaXNpb24gRGVjaW1hbCB0eXBlICovXG5bXCJEZWNpbWFsXCJdOnVua25vd247XG5cdC8qKiBUaGUgYEpTT05PYmplY3RgIHNjYWxhciB0eXBlIHJlcHJlc2VudHMgSlNPTiBvYmplY3RzIGFzIHNwZWNpZmllZCBieSBbRUNNQS00MDRdKGh0dHA6Ly93d3cuZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9wdWJsaWNhdGlvbnMvZmlsZXMvRUNNQS1TVC9FQ01BLTQwNC5wZGYpLiAqL1xuW1wiSnNvblwiXTp1bmtub3duO1xuXHRbXCJMYW5nXCJdOkxhbmc7XG5cdFtcIlBsYW5LaW5kXCJdOlBsYW5LaW5kO1xuXHRbXCJVc2VyUm9sZVwiXTpVc2VyUm9sZTtcblx0W1wiTWFpbFR5cGVcIl06TWFpbFR5cGU7XG5cdFtcIlJpZ2h0c1wiXTpSaWdodHM7XG5cdFtcIkZpbGVcIl06IEFsaWFzVHlwZTx7XG5cdGlkPzp0cnVlLFxuXHRzaXplPzp0cnVlLFxuXHRzaXplQmVmb3JlPzp0cnVlLFxuXHRjcmVhdGVkQXQ/OnRydWUsXG5cdHZGaWxlcz86VmFsdWVUeXBlc1tcIlZGaWxlXCJdLFxuXHR2RmlsZXNDdXJyZW50PzpWYWx1ZVR5cGVzW1wiVkZpbGVcIl0sXG5cdHVzZXJzPzpWYWx1ZVR5cGVzW1wiRmlsZXNPblVzZXJzT25BcHBsaWNhdGlvbnNcIl0sXG5cdG1kNT86dHJ1ZSxcblx0bWQ1RW5jcnlwdGVkPzp0cnVlLFxuXHRkZWxldGVkQXQ/OnRydWUsXG5cdHVzZXJBcHA/OlZhbHVlVHlwZXNbXCJBcHBsaWNhdGlvbnNPblVzZXJzXCJdLFxuXHRtYWlscz86VmFsdWVUeXBlc1tcIkZpbGVzT25NYWlsc1wiXSxcblx0dmFsaWRhdGVkQXQ/OnRydWUsXG5cdHVzZXI/OlZhbHVlVHlwZXNbXCJGaWxlc09uVXNlcnNPbkFwcGxpY2F0aW9uc1wiXSxcblx0XHRfX3R5cGVuYW1lPzogdHJ1ZVxufT47XG5cdFtcIkZpbGVQYXJ0XCJdOiBBbGlhc1R5cGU8e1xuXHRpZD86dHJ1ZSxcblx0ZmlsZT86VmFsdWVUeXBlc1tcIkZpbGVcIl0sXG5cdGZpbGVJZD86dHJ1ZSxcblx0c2l6ZT86dHJ1ZSxcblx0b3JkZXI/OnRydWUsXG5cdG1kNT86dHJ1ZSxcblx0dmFsaWRhdGVkQXQ/OnRydWUsXG5cdFx0X190eXBlbmFtZT86IHRydWVcbn0+O1xuXHRbXCJGaWxlQ29udGVudFR5cGVcIl06RmlsZUNvbnRlbnRUeXBlO1xuXHRbXCJGaWxlQ29udGVudFBhcnRcIl06IEFsaWFzVHlwZTx7XG5cdGNvbnRlbnRVcmw/OnRydWUsXG5cdG9yZGVyPzp0cnVlLFxuXHRtZDU/OnRydWUsXG5cdFx0X190eXBlbmFtZT86IHRydWVcbn0+O1xuXHRbXCJGaWxlQ29udGVudEJhc2VcIl06QWxpYXNUeXBlPHtcblx0XHRwYXJ0cz86VmFsdWVUeXBlc1tcIkZpbGVDb250ZW50UGFydFwiXSxcblx0a2V5Pzp0cnVlLFxuXHRtZDU/OnRydWUsXG5cdG1kNUVuY3J5cHRlZD86dHJ1ZSxcblx0dG90YWxTaXplPzp0cnVlLFxuXHR0eXBlPzp0cnVlO1xuXHRcdFsnLi4ub24gRmlsZUNvbnRlbnRDbG91ZCddPzogT21pdDxWYWx1ZVR5cGVzW1wiRmlsZUNvbnRlbnRDbG91ZFwiXSxrZXlvZiBWYWx1ZVR5cGVzW1wiRmlsZUNvbnRlbnRCYXNlXCJdPjtcblx0XHRbJy4uLm9uIEZpbGVDb250ZW50U2VudE1haWwnXT86IE9taXQ8VmFsdWVUeXBlc1tcIkZpbGVDb250ZW50U2VudE1haWxcIl0sa2V5b2YgVmFsdWVUeXBlc1tcIkZpbGVDb250ZW50QmFzZVwiXT47XG5cdFx0WycuLi5vbiBGaWxlQ29udGVudFJlY2VpdmVkTWFpbCddPzogT21pdDxWYWx1ZVR5cGVzW1wiRmlsZUNvbnRlbnRSZWNlaXZlZE1haWxcIl0sa2V5b2YgVmFsdWVUeXBlc1tcIkZpbGVDb250ZW50QmFzZVwiXT47XG5cdFx0X190eXBlbmFtZT86IHRydWVcbn0+O1xuXHRbXCJGaWxlQ29udGVudENsb3VkXCJdOiBBbGlhc1R5cGU8e1xuXHRwYXJ0cz86VmFsdWVUeXBlc1tcIkZpbGVDb250ZW50UGFydFwiXSxcblx0a2V5Pzp0cnVlLFxuXHRtZDU/OnRydWUsXG5cdG1kNUVuY3J5cHRlZD86dHJ1ZSxcblx0dG90YWxTaXplPzp0cnVlLFxuXHR0eXBlPzp0cnVlLFxuXHRwdWJsaWNLZXk/OnRydWUsXG5cdFx0X190eXBlbmFtZT86IHRydWVcbn0+O1xuXHRbXCJGaWxlQ29udGVudFNlbnRNYWlsXCJdOiBBbGlhc1R5cGU8e1xuXHRwYXJ0cz86VmFsdWVUeXBlc1tcIkZpbGVDb250ZW50UGFydFwiXSxcblx0a2V5Pzp0cnVlLFxuXHRtZDU/OnRydWUsXG5cdG1kNUVuY3J5cHRlZD86dHJ1ZSxcblx0dG90YWxTaXplPzp0cnVlLFxuXHR0eXBlPzp0cnVlLFxuXHRcdF9fdHlwZW5hbWU/OiB0cnVlXG59Pjtcblx0W1wiRmlsZUNvbnRlbnRSZWNlaXZlZE1haWxcIl06IEFsaWFzVHlwZTx7XG5cdHBhcnRzPzpWYWx1ZVR5cGVzW1wiRmlsZUNvbnRlbnRQYXJ0XCJdLFxuXHRrZXk/OnRydWUsXG5cdG1kNT86dHJ1ZSxcblx0bWQ1RW5jcnlwdGVkPzp0cnVlLFxuXHR0b3RhbFNpemU/OnRydWUsXG5cdHR5cGU/OnRydWUsXG5cdHNlbmRlclB1YmxpY0tleT86dHJ1ZSxcblx0XHRfX3R5cGVuYW1lPzogdHJ1ZVxufT47XG5cdFtcIkZpbGVDb250ZW50XCJdOiBBbGlhc1R5cGU8e1x0XHRbXCIuLi5vbiBGaWxlQ29udGVudENsb3VkXCJdIDogVmFsdWVUeXBlc1tcIkZpbGVDb250ZW50Q2xvdWRcIl0sXG5cdFx0W1wiLi4ub24gRmlsZUNvbnRlbnRSZWNlaXZlZE1haWxcIl0gOiBWYWx1ZVR5cGVzW1wiRmlsZUNvbnRlbnRSZWNlaXZlZE1haWxcIl0sXG5cdFx0W1wiLi4ub24gRmlsZUNvbnRlbnRTZW50TWFpbFwiXSA6IFZhbHVlVHlwZXNbXCJGaWxlQ29udGVudFNlbnRNYWlsXCJdXG5cdFx0X190eXBlbmFtZT86IHRydWVcbn0+O1xuXHRbXCJGaWxlUmVzcG9uc2VcIl06IEFsaWFzVHlwZTx7XG5cdGZpbGVJZD86dHJ1ZSxcblx0cGFydHM/OlZhbHVlVHlwZXNbXCJGaWxlUGFydFJlc3BvbnNlXCJdLFxuXHRmaWxlUGFydFNpemU/OnRydWUsXG5cdFx0X190eXBlbmFtZT86IHRydWVcbn0+O1xuXHRbXCJGaWxlUGFydFJlc3BvbnNlXCJdOiBBbGlhc1R5cGU8e1xuXHRmaWVsZHM/OnRydWUsXG5cdHVybD86dHJ1ZSxcblx0b3JkZXI/OnRydWUsXG5cdFx0X190eXBlbmFtZT86IHRydWVcbn0+O1xuXHRbXCJGaWxlU2hhcmVkXCJdOiBBbGlhc1R5cGU8e1xuXHR1c2VySWQ/OnRydWUsXG5cdG1lc3NhZ2U/OnRydWUsXG5cdGFwcElkPzp0cnVlLFxuXHRpZD86dHJ1ZSxcblx0ZmlsZW5hbWU/OnRydWUsXG5cdHNpemU/OnRydWUsXG5cdHNpemVCZWZvcmU/OnRydWUsXG5cdFx0X190eXBlbmFtZT86IHRydWVcbn0+O1xuXHRbXCJGaWxlU2hhcmVkQ29udGVudFwiXTogQWxpYXNUeXBlPHtcblx0b3duZXJJZD86dHJ1ZSxcblx0cHViS2V5Pzp0cnVlLFxuXHRtZXNzYWdlPzp0cnVlLFxuXHRhcHBJZD86dHJ1ZSxcblx0aWQ/OnRydWUsXG5cdHR5cGU/OnRydWUsXG5cdGZpbGVuYW1lPzp0cnVlLFxuXHRjb250ZW50VXJsPzp0cnVlLFxuXHRrZXk/OnRydWUsXG5cdHNpemU/OnRydWUsXG5cdHNpemVCZWZvcmU/OnRydWUsXG5cdFx0X190eXBlbmFtZT86IHRydWVcbn0+O1xuXHRbXCJDbG91ZExpbWl0c1wiXTogQWxpYXNUeXBlPHtcblx0c2l6ZT86dHJ1ZSxcblx0bWF4U2l6ZT86dHJ1ZSxcblx0Y291bnQ/OnRydWUsXG5cdG1heENvdW50Pzp0cnVlLFxuXHRcdF9fdHlwZW5hbWU/OiB0cnVlXG59Pjtcblx0W1wiTWFpbExpbWl0c1ZhbHVlc1wiXTogQWxpYXNUeXBlPHtcblx0Y291bnQ/OnRydWUsXG5cdG1heENvdW50Pzp0cnVlLFxuXHRmaWxlQ291bnQ/OnRydWUsXG5cdG1heEZpbGVDb3VudD86dHJ1ZSxcblx0ZmlsZVNpemU/OnRydWUsXG5cdG1heEZpbGVTaXplPzp0cnVlLFxuXHRcdF9fdHlwZW5hbWU/OiB0cnVlXG59Pjtcblx0W1wiVXNlck1haWxMaW1pdHNcIl06IEFsaWFzVHlwZTx7XG5cdHNlbnQ/OlZhbHVlVHlwZXNbXCJNYWlsTGltaXRzVmFsdWVzXCJdLFxuXHRyZWNlaXZlZD86VmFsdWVUeXBlc1tcIk1haWxMaW1pdHNWYWx1ZXNcIl0sXG5cdFx0X190eXBlbmFtZT86IHRydWVcbn0+O1xuXHRbXCJRdWVyeUxpbWl0c1wiXTogQWxpYXNUeXBlPHtcblx0Y2xvdWQ/OlZhbHVlVHlwZXNbXCJDbG91ZExpbWl0c1wiXSxcblx0bWFpbD86VmFsdWVUeXBlc1tcIlVzZXJNYWlsTGltaXRzXCJdLFxuXHRcdF9fdHlwZW5hbWU/OiB0cnVlXG59Pjtcblx0W1wiTGltaXRzXCJdOiBBbGlhc1R5cGU8e1xuXHRkb3dubG9hZEJhbmR3aWR0aD86dHJ1ZSxcblx0ZG93bmxvYWRDb3VudD86dHJ1ZSxcblx0aGFyZEZpbGVDb3VudD86dHJ1ZSxcblx0aGFyZEZpbGVTaXplPzp0cnVlLFxuXHRwZXJGaWxlU2l6ZT86dHJ1ZSxcblx0cmVjZWl2ZWRNYWlscz86VmFsdWVUeXBlc1tcIk1haWxMaW1pdHNcIl0sXG5cdHNlbnRNYWlscz86VmFsdWVUeXBlc1tcIk1haWxMaW1pdHNcIl0sXG5cdHVwbG9hZEJhbmR3aWR0aD86dHJ1ZSxcblx0dXBsb2FkQ291bnQ/OnRydWUsXG5cdFx0X190eXBlbmFtZT86IHRydWVcbn0+O1xuXHRbXCJNYWlsTGltaXRzXCJdOiBBbGlhc1R5cGU8e1xuXHRjb3VudD86dHJ1ZSxcblx0ZmlsZUNvdW50Pzp0cnVlLFxuXHRmaWxlU2l6ZT86dHJ1ZSxcblx0aGFyZENvdW50Pzp0cnVlLFxuXHRoYXJkRmlsZUNvdW50Pzp0cnVlLFxuXHRoYXJkRmlsZVNpemU/OnRydWUsXG5cdHBlckZpbGVTaXplPzp0cnVlLFxuXHRcdF9fdHlwZW5hbWU/OiB0cnVlXG59Pjtcblx0W1wiVXNlclwiXTogQWxpYXNUeXBlPHtcblx0aWQ/OnRydWUsXG5cdGRlbGV0ZWRBdD86dHJ1ZSxcblx0bGFuZz86dHJ1ZSxcblx0cmVwb3J0U2VudD86VmFsdWVUeXBlc1tcIlJlcG9ydFwiXSxcblx0Z29kRmF0aGVyPzpWYWx1ZVR5cGVzW1wiVXNlclwiXSxcblx0Z29kQ2hpbGRyZW4/OlZhbHVlVHlwZXNbXCJVc2VyXCJdLFxuXHRmaXJzdG5hbWU/OnRydWUsXG5cdGxhc3RuYW1lPzp0cnVlLFxuXHRlbWFpbD86dHJ1ZSxcblx0cGhvbmU/OnRydWUsXG5cdGxhc3RMb2dpbj86dHJ1ZSxcblx0cm9sZT86dHJ1ZSxcblx0c2Vzc2lvbnM/OlZhbHVlVHlwZXNbXCJVc2VyU2Vzc2lvblwiXSxcblx0Y3JlYXRlZEF0Pzp0cnVlLFxuXHRyZWNlaXZlZE1haWxzPzpWYWx1ZVR5cGVzW1wiTWFpbFwiXSxcblx0d2FpdGluZ1JlY2VpdmVkTWFpbHM/OlZhbHVlVHlwZXNbXCJXYWl0aW5nUmVjZWl2ZWRNYWlsXCJdLFxuXHRzZW50TWFpbHM/OlZhbHVlVHlwZXNbXCJNYWlsXCJdLFxuXHRkcmFmdE1haWxzPzpWYWx1ZVR5cGVzW1wiTWFpbFwiXSxcblx0YXBwU2V0dGluZ3M/OlZhbHVlVHlwZXNbXCJVc2VyQXBwU2V0dGluZ3NcIl0sXG5cdGFwcGxpY2F0aW9ucz86VmFsdWVUeXBlc1tcIkFwcGxpY2F0aW9uc09uVXNlcnNcIl0sXG5cdHB1YmxpY0tleT86dHJ1ZSxcblx0XHRfX3R5cGVuYW1lPzogdHJ1ZVxufT47XG5cdFtcIk1haWxcIl06IEFsaWFzVHlwZTx7XG5cdGlkPzp0cnVlLFxuXHRhcHA/OlZhbHVlVHlwZXNbXCJBcHBsaWNhdGlvblwiXSxcblx0Ym9keT86dHJ1ZSxcblx0Y3JlYXRlZEF0Pzp0cnVlLFxuXHRkZWxldGVkQXQ/OnRydWUsXG5cdGZpbGVzPzpWYWx1ZVR5cGVzW1wiRmlsZXNPbk1haWxzXCJdLFxuXHRtYWlsSW50ZWdyaXR5PzpWYWx1ZVR5cGVzW1wiTWFpbEludGVncml0eVwiXSxcblx0bWFpbEludGVncml0eURyYWZ0PzpWYWx1ZVR5cGVzW1wiTWFpbEludGVncml0eURyYWZ0XCJdLFxuXHRvcGVuZWRBdD86dHJ1ZSxcblx0cmVjaXBpZW50PzpWYWx1ZVR5cGVzW1wiVXNlclwiXSxcblx0c2VuZGVyPzpWYWx1ZVR5cGVzW1wiVXNlclwiXSxcblx0c3ViamVjdD86dHJ1ZSxcblx0dHlwZT86dHJ1ZSxcblx0cmVjaXBpZW50cz86VmFsdWVUeXBlc1tcIlVzZXJcIl0sXG5cdFx0X190eXBlbmFtZT86IHRydWVcbn0+O1xuXHRbXCJNYWlsSW50ZWdyaXR5XCJdOiBBbGlhc1R5cGU8e1xuXHRpZD86dHJ1ZSxcblx0aGFzaD86dHJ1ZSxcblx0aGFzaEtleT86dHJ1ZSxcblx0YW5zd2Vycz86VmFsdWVUeXBlc1tcIk1haWxJbnRlZ3JpdHlcIl0sXG5cdGFwcD86VmFsdWVUeXBlc1tcIkFwcGxpY2F0aW9uXCJdLFxuXHRtYWlscz86VmFsdWVUeXBlc1tcIk1haWxcIl0sXG5cdHJlY2lwaWVudHM/OlZhbHVlVHlwZXNbXCJVc2VyXCJdLFxuXHR0ZW1wb3JhcnlSZWNpcGllbnRzPzpWYWx1ZVR5cGVzW1wiVGVtcG9yYXJ5VXNlclwiXSxcblx0cmVwbHlUbz86VmFsdWVUeXBlc1tcIk1haWxJbnRlZ3JpdHlcIl0sXG5cdFx0X190eXBlbmFtZT86IHRydWVcbn0+O1xuXHRbXCJGaWxlc09uTWFpbHNcIl06IEFsaWFzVHlwZTx7XG5cdGZpbGU/OlZhbHVlVHlwZXNbXCJGaWxlXCJdLFxuXHRmaWxlS2V5Pzp0cnVlLFxuXHRmaWxlbmFtZT86dHJ1ZSxcblx0bWFpbD86VmFsdWVUeXBlc1tcIk1haWxcIl0sXG5cdFx0X190eXBlbmFtZT86IHRydWVcbn0+O1xuXHRbXCJGaWxlc09uVXNlcnNPbkFwcGxpY2F0aW9uc1wiXTogQWxpYXNUeXBlPHtcblx0ZmlsZT86VmFsdWVUeXBlc1tcIkZpbGVcIl0sXG5cdHVzZXJBcHA/OlZhbHVlVHlwZXNbXCJBcHBsaWNhdGlvbnNPblVzZXJzXCJdLFxuXHQvKiogRW5jcnlwdGVkIHdpdGggVXNlckFwcCBrZXlzICovXG5cdGtleT86dHJ1ZSxcblx0XHRfX3R5cGVuYW1lPzogdHJ1ZVxufT47XG5cdFtcIlZGaWxlXCJdOiBBbGlhc1R5cGU8e1xuXHRpZD86dHJ1ZSxcblx0aXNGYXZvcml0ZT86dHJ1ZSxcblx0Y3JlYXRlZEF0Pzp0cnVlLFxuXHRkZWxldGVkQXQ/OnRydWUsXG5cdGZpbGVuYW1lPzp0cnVlLFxuXHR1c2VyQXBwcz86VmFsdWVUeXBlc1tcIlZGaWxlc09uVXNlcnNPbkFwcGxpY2F0aW9uc1wiXSxcblx0Y3JlYXRlZEJ5PzpWYWx1ZVR5cGVzW1wiQXBwbGljYXRpb25zT25Vc2Vyc1wiXSxcblx0dXNlckFwcD86VmFsdWVUeXBlc1tcIlZGaWxlc09uVXNlcnNPbkFwcGxpY2F0aW9uc1wiXSxcblx0Zm9sZGVyPzpWYWx1ZVR5cGVzW1wiRm9sZGVyXCJdLFxuXHRoaXN0b3J5PzpWYWx1ZVR5cGVzW1wiRmlsZVwiXSxcblx0Y3VycmVudD86VmFsdWVUeXBlc1tcIkZpbGVcIl0sXG5cdHVwZGF0ZWRBdD86dHJ1ZSxcblx0XHRfX3R5cGVuYW1lPzogdHJ1ZVxufT47XG5cdFtcIkZvbGRlckJyZWFkY3J1bWJJdGVtXCJdOiBBbGlhc1R5cGU8e1xuXHRpZD86dHJ1ZSxcblx0bmFtZT86dHJ1ZSxcblx0cHViS2V5Pzp0cnVlLFxuXHRuYW1lS2V5Pzp0cnVlLFxuXHRcdF9fdHlwZW5hbWU/OiB0cnVlXG59Pjtcblx0W1wiRm9sZGVyXCJdOiBBbGlhc1R5cGU8e1xuXHRpZD86dHJ1ZSxcblx0aXNGYXZvcml0ZT86dHJ1ZSxcblx0Y3JlYXRlZEF0Pzp0cnVlLFxuXHRkZWxldGVkQXQ/OnRydWUsXG5cdHVwZGF0ZWRBdD86dHJ1ZSxcblx0Y3JlYXRlZEJ5PzpWYWx1ZVR5cGVzW1wiQXBwbGljYXRpb25zT25Vc2Vyc1wiXSxcblx0dXNlckFwcHM/OlZhbHVlVHlwZXNbXCJGb2xkZXJzT25Vc2Vyc09uQXBwbGljYXRpb25zXCJdLFxuXHR1c2VyQXBwPzpWYWx1ZVR5cGVzW1wiRm9sZGVyc09uVXNlcnNPbkFwcGxpY2F0aW9uc1wiXSxcblx0bmFtZT86dHJ1ZSxcblx0cGFyZW50Rm9sZGVyPzpWYWx1ZVR5cGVzW1wiRm9sZGVyXCJdLFxuXHRzdWJmb2xkZXJzPzpWYWx1ZVR5cGVzW1wiRm9sZGVyXCJdLFxuXHR2RmlsZXM/OlZhbHVlVHlwZXNbXCJWRmlsZVwiXSxcblx0YnJlYWRjcnVtYj86VmFsdWVUeXBlc1tcIkZvbGRlckJyZWFkY3J1bWJJdGVtXCJdLFxuXHRcdF9fdHlwZW5hbWU/OiB0cnVlXG59Pjtcblx0W1wiQXBwbGljYXRpb25cIl06IEFsaWFzVHlwZTx7XG5cdGlkPzp0cnVlLFxuXHRuYW1lPzp0cnVlLFxuXHRcdF9fdHlwZW5hbWU/OiB0cnVlXG59Pjtcblx0W1wiQXBwbGljYXRpb25zT25Vc2Vyc1wiXTogQWxpYXNUeXBlPHtcblx0ZmFrZVVzZXJJZD86dHJ1ZSxcblx0a2V5UGFpcj86VmFsdWVUeXBlc1tcIkFwcEtleVBhaXJcIl0sXG5cdHNlc3Npb25zPzpWYWx1ZVR5cGVzW1wiQXBwU2Vzc2lvblwiXSxcblx0YXBwPzpWYWx1ZVR5cGVzW1wiQXBwbGljYXRpb25cIl0sXG5cdHVzZXI/OlZhbHVlVHlwZXNbXCJVc2VyXCJdLFxuXHRmb2xkZXJzPzpWYWx1ZVR5cGVzW1wiRm9sZGVyc09uVXNlcnNPbkFwcGxpY2F0aW9uc1wiXSxcblx0c2V0dGluZ3M/OlZhbHVlVHlwZXNbXCJVc2VyQXBwU2V0dGluZ3NcIl0sXG5cdFx0X190eXBlbmFtZT86IHRydWVcbn0+O1xuXHRbXCJBcHBLZXlQYWlyXCJdOiBBbGlhc1R5cGU8e1xuXHRwdWI/OnRydWUsXG5cdFx0X190eXBlbmFtZT86IHRydWVcbn0+O1xuXHRbXCJGb2xkZXJTaXplXCJdOiBBbGlhc1R5cGU8e1xuXHRzaXplPzp0cnVlLFxuXHRzaXplQmVmb3JlPzp0cnVlLFxuXHRcdF9fdHlwZW5hbWU/OiB0cnVlXG59Pjtcblx0W1wiVXNlclNlc3Npb25cIl06IEFsaWFzVHlwZTx7XG5cdGlkPzp0cnVlLFxuXHRhcHBTZXNzaW9ucz86VmFsdWVUeXBlc1tcIkFwcFNlc3Npb25cIl0sXG5cdGxhc3RBY3Rpdml0eT86dHJ1ZSxcblx0dXNlckFnZW50Pzp0cnVlLFxuXHRpcD86dHJ1ZSxcblx0Y2l0eT86dHJ1ZSxcblx0Y291bnRyeT86dHJ1ZSxcblx0Y3JlYXRlZEF0Pzp0cnVlLFxuXHRcdF9fdHlwZW5hbWU/OiB0cnVlXG59Pjtcblx0W1wiQXBwU2Vzc2lvblwiXTogQWxpYXNUeXBlPHtcblx0aWQ/OnRydWUsXG5cdGxhc3RBY3Rpdml0eT86dHJ1ZSxcblx0dXNlckFnZW50Pzp0cnVlLFxuXHRpcD86dHJ1ZSxcblx0Y2l0eT86dHJ1ZSxcblx0Y291bnRyeT86dHJ1ZSxcblx0dXNlclNlc3Npb24/OlZhbHVlVHlwZXNbXCJVc2VyU2Vzc2lvblwiXSxcblx0dXNlckFwcD86VmFsdWVUeXBlc1tcIkFwcGxpY2F0aW9uc09uVXNlcnNcIl0sXG5cdGNyZWF0ZWRBdD86dHJ1ZSxcblx0XHRfX3R5cGVuYW1lPzogdHJ1ZVxufT47XG5cdFtcIlVzZXJBcHBTZXR0aW5nc1wiXTogQWxpYXNUeXBlPHtcblx0aWQ/OnRydWUsXG5cdGNsb3VkRmlsZURheXNGb3JEZWxldGU/OnRydWUsXG5cdGNsb3VkRm9sZGVyRGF5c0ZvckRlbGV0ZT86dHJ1ZSxcblx0aGlzdG9yeUZpbGVEYXlzRm9yRGVsZXRlPzp0cnVlLFxuXHRoaXN0b3J5TWF4RmlsZUNvdW50Pzp0cnVlLFxuXHRhdXRvRGlzY29ubmVjdERlbGF5Pzp0cnVlLFxuXHRcdF9fdHlwZW5hbWU/OiB0cnVlXG59Pjtcblx0W1wiTWFpbEZpbGVJbnB1dFwiXToge1xuXHRpZDpzdHJpbmcsXG5cdG5hbWU6c3RyaW5nLFxuXHRmaWxlS2V5OnN0cmluZ1xufTtcblx0W1wiTWFpbFJlY2lwaWVudElucHV0XCJdOiB7XG5cdGJvZHk6c3RyaW5nLFxuXHRzdWJqZWN0OnN0cmluZyxcblx0cmVjaXBpZW50SWQ6c3RyaW5nLFxuXHRmaWxlczpWYWx1ZVR5cGVzW1wiTWFpbEZpbGVJbnB1dFwiXVtdXG59O1xuXHRbXCJTaGFyZUZpbGVLZXlJbnB1dFwiXToge1xuXHRpZDpzdHJpbmcsXG5cdGtleTpzdHJpbmdcbn07XG5cdFtcIk5hbWVLZXlJbnB1dFwiXToge1xuXHRpZDpzdHJpbmcsXG5cdG5hbWVLZXk6c3RyaW5nLFxuXHRmaWxlczpWYWx1ZVR5cGVzW1wiU2hhcmVGaWxlS2V5SW5wdXRcIl1bXVxufTtcblx0W1wiTmFtZUtleUlucHV0Rm9sZGVyc1wiXToge1xuXHRpZDpzdHJpbmcsXG5cdG5hbWVLZXk6c3RyaW5nXG59O1xuXHRbXCJTaGFyZUZvbGRlcnNJbnB1dFwiXToge1xuXHRmb2xkZXJzOlZhbHVlVHlwZXNbXCJOYW1lS2V5SW5wdXRGb2xkZXJzXCJdW10sXG5cdHZGaWxlczpWYWx1ZVR5cGVzW1wiTmFtZUtleUlucHV0XCJdW11cbn07XG5cdFtcIlNoYXJlRmlsZUluSGlzdG9yeUlucHV0XCJdOiB7XG5cdGZpbGVJZDpzdHJpbmcsXG5cdHVzZXJzOlZhbHVlVHlwZXNbXCJTaGFyZUZpbGVLZXlJbnB1dFwiXVtdXG59O1xuXHRbXCJQYXlJbnB1dFR5cGVcIl06UGF5SW5wdXRUeXBlO1xuXHRbXCJQYXlJbnB1dFwiXToge1xuXHR0eXBlOlZhbHVlVHlwZXNbXCJQYXlJbnB1dFR5cGVcIl0sXG5cdHRva2VuOnN0cmluZyxcblx0Zmlyc3ROYW1lOnN0cmluZyxcblx0bGFzdE5hbWU6c3RyaW5nLFxuXHRzdHJlZXQ6c3RyaW5nLFxuXHRwb3N0YWxDb2RlOnN0cmluZyxcblx0Y2l0eTpzdHJpbmcsXG5cdGNvdW50cnk6c3RyaW5nLFxuXHRudW1iZXI6c3RyaW5nLFxuXHRtb250aDpzdHJpbmcsXG5cdHllYXI6c3RyaW5nLFxuXHRjdnY6c3RyaW5nXG59O1xuXHRbXCJXYWl0aW5nUmVjZWl2ZWRNYWlsXCJdOiBBbGlhc1R5cGU8e1xuXHRzZW5kZXI/OlZhbHVlVHlwZXNbXCJVc2VyXCJdLFxuXHRkYXRlPzp0cnVlLFxuXHRyZWNpcGllbnRzPzpWYWx1ZVR5cGVzW1wiVXNlclwiXSxcblx0dGVtcG9yYXJ5UmVjaXBpZW50cz86VmFsdWVUeXBlc1tcIlRlbXBvcmFyeVVzZXJcIl0sXG5cdGF0dGFjaG1lbnRzQ291bnQ/OnRydWUsXG5cdFx0X190eXBlbmFtZT86IHRydWVcbn0+O1xuXHRbXCJUZW1wb3JhcnlVc2VyXCJdOiBBbGlhc1R5cGU8e1xuXHRpZD86dHJ1ZSxcblx0bWFpbHM/OlZhbHVlVHlwZXNbXCJNYWlsSW50ZWdyaXR5XCJdLFxuXHRkcmFmdE1haWxzPzpWYWx1ZVR5cGVzW1wiTWFpbEludGVncml0eURyYWZ0XCJdLFxuXHRlbWFpbD86dHJ1ZSxcblx0XHRfX3R5cGVuYW1lPzogdHJ1ZVxufT47XG5cdFtcIk1haWxJbnRlZ3JpdHlEcmFmdFwiXTogQWxpYXNUeXBlPHtcblx0aWQ/OnRydWUsXG5cdGhhc2g/OnRydWUsXG5cdGhhc2hLZXk/OnRydWUsXG5cdGFwcD86VmFsdWVUeXBlc1tcIkFwcGxpY2F0aW9uXCJdLFxuXHRtYWlsPzpWYWx1ZVR5cGVzW1wiTWFpbFwiXSxcblx0cmVjaXBpZW50cz86VmFsdWVUeXBlc1tcIlVzZXJcIl0sXG5cdHRlbXBvcmFyeVJlY2lwaWVudHM/OlZhbHVlVHlwZXNbXCJUZW1wb3JhcnlVc2VyXCJdLFxuXHRyZXBseVRvPzpWYWx1ZVR5cGVzW1wiTWFpbEludGVncml0eVwiXSxcblx0XHRfX3R5cGVuYW1lPzogdHJ1ZVxufT47XG5cdFtcIkZhcVwiXTogQWxpYXNUeXBlPHtcblx0aWQ/OnRydWUsXG5cdG9yZGVyPzp0cnVlLFxuXHRlbnRyaWVzPzpWYWx1ZVR5cGVzW1wiRmFxRW50cnlcIl0sXG5cdFx0X190eXBlbmFtZT86IHRydWVcbn0+O1xuXHRbXCJGYXFFbnRyeVwiXTogQWxpYXNUeXBlPHtcblx0aWQ/OnRydWUsXG5cdGxhbmc/OnRydWUsXG5cdHF1ZXN0aW9uPzp0cnVlLFxuXHRhbnN3ZXI/OnRydWUsXG5cdGZhcT86VmFsdWVUeXBlc1tcIkZhcVwiXSxcblx0XHRfX3R5cGVuYW1lPzogdHJ1ZVxufT47XG5cdFtcIlBsYW5cIl06IEFsaWFzVHlwZTx7XG5cdGlkPzp0cnVlLFxuXHRraW5kPzp0cnVlLFxuXHRjb2Rlcz86dHJ1ZSxcblx0bGltaXRzPzpWYWx1ZVR5cGVzW1wiTGltaXRzXCJdLFxuXHRcdF9fdHlwZW5hbWU/OiB0cnVlXG59Pjtcblx0W1wiUmVwb3J0XCJdOiBBbGlhc1R5cGU8e1xuXHRpZD86dHJ1ZSxcblx0dXNlcj86VmFsdWVUeXBlc1tcIlVzZXJcIl0sXG5cdHJlcG9ydGVkVXNlcj86VmFsdWVUeXBlc1tcIlVzZXJcIl0sXG5cdGN1c3RvbU1lc3NhZ2U/OnRydWUsXG5cdFx0X190eXBlbmFtZT86IHRydWVcbn0+O1xuXHRbXCJGb2xkZXJzT25Vc2Vyc09uQXBwbGljYXRpb25zXCJdOiBBbGlhc1R5cGU8e1xuXHRmb2xkZXI/OlZhbHVlVHlwZXNbXCJGb2xkZXJcIl0sXG5cdHVzZXJBcHA/OlZhbHVlVHlwZXNbXCJBcHBsaWNhdGlvbnNPblVzZXJzXCJdLFxuXHRyaWdodHM/OnRydWUsXG5cdG5hbWVLZXk/OnRydWUsXG5cdGlzUm9vdD86dHJ1ZSxcblx0XHRfX3R5cGVuYW1lPzogdHJ1ZVxufT47XG5cdFtcIlZGaWxlc09uVXNlcnNPbkFwcGxpY2F0aW9uc1wiXTogQWxpYXNUeXBlPHtcblx0dkZpbGU/OlZhbHVlVHlwZXNbXCJWRmlsZVwiXSxcblx0dXNlckFwcD86VmFsdWVUeXBlc1tcIkFwcGxpY2F0aW9uc09uVXNlcnNcIl0sXG5cdHJpZ2h0cz86dHJ1ZSxcblx0bmFtZUtleT86dHJ1ZSxcblx0aXNSb290Pzp0cnVlLFxuXHRcdF9fdHlwZW5hbWU/OiB0cnVlXG59Pjtcblx0W1wiRmFxSXRlbVwiXTogQWxpYXNUeXBlPHtcblx0b3JkZXI/OnRydWUsXG5cdHF1ZXN0aW9uPzp0cnVlLFxuXHRhbnN3ZXI/OnRydWUsXG5cdFx0X190eXBlbmFtZT86IHRydWVcbn0+O1xuXHRbXCJCbG9nXCJdOiBBbGlhc1R5cGU8e1xuXHRpZD86dHJ1ZSxcblx0b3JkZXI/OnRydWUsXG5cdGVudHJpZXM/OlZhbHVlVHlwZXNbXCJCbG9nRW50cnlcIl0sXG5cdFx0X190eXBlbmFtZT86IHRydWVcbn0+O1xuXHRbXCJCbG9nRW50cnlcIl06IEFsaWFzVHlwZTx7XG5cdGlkPzp0cnVlLFxuXHRsYW5nPzp0cnVlLFxuXHRhdXRob3I/OnRydWUsXG5cdGJvZHk/OnRydWUsXG5cdGRhdGU/OnRydWUsXG5cdGltYWdlPzp0cnVlLFxuXHRzdW1tYXJ5Pzp0cnVlLFxuXHR0aXRsZT86dHJ1ZSxcblx0XHRfX3R5cGVuYW1lPzogdHJ1ZVxufT47XG5cdFtcIkJsb2dJdGVtXCJdOiBBbGlhc1R5cGU8e1xuXHRpZD86dHJ1ZSxcblx0YmxvZ0lkPzp0cnVlLFxuXHRvcmRlcj86dHJ1ZSxcblx0dGl0bGU/OnRydWUsXG5cdGJvZHk/OnRydWUsXG5cdGF1dGhvcj86dHJ1ZSxcblx0aW1hZ2U/OnRydWUsXG5cdGltYWdlQWx0Pzp0cnVlLFxuXHRzdW1tYXJ5Pzp0cnVlLFxuXHRkYXRlPzp0cnVlLFxuXHRcdF9fdHlwZW5hbWU/OiB0cnVlXG59Pjtcblx0W1wiVXNlckFwcE5vdGlmaWNhdGlvbnNcIl06IEFsaWFzVHlwZTx7XG5cdGlkPzp0cnVlLFxuXHRlbmFibGVBbGw/OnRydWUsXG5cdG1haWw/OnRydWUsXG5cdGNsb3VkPzp0cnVlLFxuXHRkaXNhYmxlQWxsVW50aWw/OnRydWUsXG5cdFx0X190eXBlbmFtZT86IHRydWVcbn0+O1xuXHRbXCJSZWN1cmx5SW52b2ljZXNcIl06IEFsaWFzVHlwZTx7XG5cdHBkZj86dHJ1ZSxcblx0ZGF0ZT86dHJ1ZSxcblx0ZHVlPzp0cnVlLFxuXHRzdGF0dXM/OnRydWUsXG5cdHRvdGFsPzp0cnVlLFxuXHRuYW1lPzp0cnVlLFxuXHRjdXJyZW5jeT86dHJ1ZSxcblx0XHRfX3R5cGVuYW1lPzogdHJ1ZVxufT47XG5cdFtcIlJlY3VybHlTdWJzY3JpcHRpb25cIl06IEFsaWFzVHlwZTx7XG5cdGF1dG9yZW5ldz86dHJ1ZSxcblx0YWN0aXZhdGVkQXQ/OnRydWUsXG5cdGN1cnJlbnRQZXJpb2RFbmRzQXQ/OnRydWUsXG5cdGN1cnJlbnRQZXJpb2RTdGFydGVkQXQ/OnRydWUsXG5cdGNhbmNlbGVkQXQ/OnRydWUsXG5cdGNyZWF0ZWRBdD86dHJ1ZSxcblx0ZXhwaXJlc0F0Pzp0cnVlLFxuXHRwYXVzZWRBdD86dHJ1ZSxcblx0dHJpYWxFbmRzQXQ/OnRydWUsXG5cdHRyaWFsU3RhcnRlZEF0Pzp0cnVlLFxuXHR1cGRhdGVkQXQ/OnRydWUsXG5cdHN0YXRlPzp0cnVlLFxuXHRjb2xsZWN0aW9uTWV0aG9kPzp0cnVlLFxuXHRwbGFuPzp0cnVlLFxuXHRwbGFuQ29kZT86dHJ1ZSxcblx0dG90YWw/OnRydWUsXG5cdFx0X190eXBlbmFtZT86IHRydWVcbn0+O1xuXHRbXCJQYXltZW50SW5mb3NcIl06IEFsaWFzVHlwZTx7XG5cdGhvc3RlZFVybD86dHJ1ZSxcblx0Y3VycmVudFN1YnNjcmlwdGlvbj86VmFsdWVUeXBlc1tcIlJlY3VybHlTdWJzY3JpcHRpb25cIl0sXG5cdGludm9pY2VzPzpWYWx1ZVR5cGVzW1wiUmVjdXJseUludm9pY2VzXCJdLFxuXHRcdF9fdHlwZW5hbWU/OiB0cnVlXG59Pjtcblx0W1wiU2hhcmVGb2xkZXJSZXNwb25zZVwiXTogQWxpYXNUeXBlPHtcblx0Zm9sZGVycz86dHJ1ZSxcblx0dkZpbGVzPzp0cnVlLFxuXHRcdF9fdHlwZW5hbWU/OiB0cnVlXG59Pjtcblx0W1wiUXVlcnlcIl06IEFsaWFzVHlwZTx7XG5cdHRlc3Q/OnRydWUsXG5cdGxpbWl0cz86VmFsdWVUeXBlc1tcIlF1ZXJ5TGltaXRzXCJdLFxudXNlcj86IFt7XHR1c2VySWQ/OnN0cmluZyB8IG51bGx9LFZhbHVlVHlwZXNbXCJVc2VyXCJdXSxcbmRiQ29uZmlnPzogW3tcdGFwcENvZGU6c3RyaW5nfSx0cnVlXSxcbmRiR2V0PzogW3tcdGZpZWxkOnN0cmluZyxcdHVzZXJJZD86c3RyaW5nIHwgbnVsbH0sdHJ1ZV0sXG5kYlNlYXJjaD86IFt7XHRzZWFyY2g6c3RyaW5nLFx0ZmllbGQ6c3RyaW5nfSx0cnVlXSxcbmZpbGVDb250ZW50PzogW3tcdGZpbGVJZDpzdHJpbmd9LFZhbHVlVHlwZXNbXCJGaWxlQ29udGVudFwiXV0sXG5maWxlc1NoYXJlZFdpdGhNZT86IFt7XHRhY2NlcHRlZD86Ym9vbGVhbiB8IG51bGx9LFZhbHVlVHlwZXNbXCJGaWxlU2hhcmVkQ29udGVudFwiXV0sXG5cdHZGaWxlc1NoYXJlZFdpdGhNZT86VmFsdWVUeXBlc1tcIlZGaWxlXCJdLFxuXHRmb2xkZXJzU2hhcmVkV2l0aE1lPzpWYWx1ZVR5cGVzW1wiRm9sZGVyXCJdLFxuZm9sZGVyU2l6ZT86IFt7XHRmb2xkZXJJZD86c3RyaW5nIHwgbnVsbH0sVmFsdWVUeXBlc1tcIkZvbGRlclNpemVcIl1dLFxuZm9sZGVyPzogW3tcdGlkPzpzdHJpbmcgfCBudWxsLFx0ZGVsZXRlZD86Ym9vbGVhbiB8IG51bGx9LFZhbHVlVHlwZXNbXCJGb2xkZXJcIl1dLFxudkZpbGU/OiBbe1x0aWQ6c3RyaW5nfSxWYWx1ZVR5cGVzW1wiVkZpbGVcIl1dLFxuZmlsZT86IFt7XHRpZDpzdHJpbmd9LFZhbHVlVHlwZXNbXCJGaWxlXCJdXSxcbmZhcT86IFt7XHRsYW5nPzpWYWx1ZVR5cGVzW1wiTGFuZ1wiXSB8IG51bGx9LFZhbHVlVHlwZXNbXCJGYXFJdGVtXCJdXSxcblx0cGF5bWVudEluZm9zPzpWYWx1ZVR5cGVzW1wiUGF5bWVudEluZm9zXCJdLFxuXHRwbGFucz86VmFsdWVUeXBlc1tcIlBsYW5cIl0sXG5cdHNoYXJlZEZvbGRlcnM/OlZhbHVlVHlwZXNbXCJGb2xkZXJcIl0sXG5cdHNoYXJlZFZGaWxlcz86VmFsdWVUeXBlc1tcIlZGaWxlXCJdLFxuYmxvZz86IFt7XHRsYW5nPzpWYWx1ZVR5cGVzW1wiTGFuZ1wiXSB8IG51bGx9LFZhbHVlVHlwZXNbXCJCbG9nSXRlbVwiXV0sXG5cdGRlbGV0ZWRGb2xkZXJzPzpWYWx1ZVR5cGVzW1wiRm9sZGVyXCJdLFxuXHRkZWxldGVkVkZpbGVzPzpWYWx1ZVR5cGVzW1wiVkZpbGVcIl0sXG5tYWlsPzogW3tcdGlkOnN0cmluZ30sVmFsdWVUeXBlc1tcIk1haWxcIl1dLFxuZGVsZXRlZE1haWxzPzogW3tcdG1haWxUeXBlOlZhbHVlVHlwZXNbXCJNYWlsVHlwZVwiXX0sVmFsdWVUeXBlc1tcIk1haWxcIl1dLFxuXHRcdF9fdHlwZW5hbWU/OiB0cnVlXG59Pjtcblx0W1wiTXV0YXRpb25cIl06IEFsaWFzVHlwZTx7XG5jcmVhdGVBcHBsaWNhdGlvbj86IFt7XHRuYW1lOnN0cmluZyxcdG9yaWdpbjpzdHJpbmcsXHRkZXZlbG9wZXJJZDpzdHJpbmd9LHRydWVdLFxuZGJTZXQ/OiBbe1x0dmFsdWU6c3RyaW5nLFx0dXNlcklkPzpzdHJpbmcgfCBudWxsfSx0cnVlXSxcbmRiQ29uZmlnPzogW3tcdGFwcENvZGU6c3RyaW5nLFx0Y29uZmlnOnN0cmluZ30sdHJ1ZV0sXG5zaGFyZVZGaWxlPzogW3tcdHZGaWxlSWQ6c3RyaW5nLFx0dXNlcklkOnN0cmluZyxcdG5hbWVLZXk6c3RyaW5nLFx0cmlnaHRzOlZhbHVlVHlwZXNbXCJSaWdodHNcIl0sXHRoaXN0b3J5OlZhbHVlVHlwZXNbXCJTaGFyZUZpbGVLZXlJbnB1dFwiXVtdfSx0cnVlXSxcbnNoYXJlRm9sZGVyPzogW3tcdGZvbGRlcklkOnN0cmluZyxcdHVzZXJJZDpzdHJpbmd9LFZhbHVlVHlwZXNbXCJTaGFyZUZvbGRlclJlc3BvbnNlXCJdXSxcbnNoYXJlRm9sZGVyRmluaXNoPzogW3tcdHNoYXJlRm9sZGVyczpWYWx1ZVR5cGVzW1wiU2hhcmVGb2xkZXJzSW5wdXRcIl0sXHR1c2VySWQ6c3RyaW5nLFx0cmlnaHRzOlZhbHVlVHlwZXNbXCJSaWdodHNcIl19LHRydWVdLFxudXBkYXRlRmlsZT86IFt7XHRmaWxlSWQ6c3RyaW5nLFx0aXNGYXZvcml0ZT86Ym9vbGVhbiB8IG51bGwsXHRmaWxlbmFtZT86c3RyaW5nIHwgbnVsbCxcdGRlbGV0ZWRBdD86VmFsdWVUeXBlc1tcIkRhdGVUaW1lXCJdIHwgbnVsbH0sVmFsdWVUeXBlc1tcIlZGaWxlXCJdXSxcbnVwZGF0ZVByb2ZpbGU/OiBbe1x0Zmlyc3RuYW1lPzpzdHJpbmcgfCBudWxsLFx0bGFzdG5hbWU/OnN0cmluZyB8IG51bGwsXHRsYW5nPzpWYWx1ZVR5cGVzW1wiTGFuZ1wiXSB8IG51bGx9LFZhbHVlVHlwZXNbXCJVc2VyXCJdXSxcbnVwbG9hZEFub255bW91cz86IFt7XHRmaWxlTmFtZTpzdHJpbmcsXHRmaWxlU2l6ZTpudW1iZXIsXHRmaWxlU2l6ZUJlZm9yZTpudW1iZXIsXHRtZXNzYWdlPzpzdHJpbmcgfCBudWxsLFx0cHViS2V5OnN0cmluZyxcdHRva2VuOnN0cmluZ30sVmFsdWVUeXBlc1tcIkZpbGVSZXNwb25zZVwiXV0sXG51cGxvYWRGaWxlPzogW3tcdGZpbGVTaXplOlZhbHVlVHlwZXNbXCJCaWdJbnRcIl0sXHRmaWxlU2l6ZUJlZm9yZTpWYWx1ZVR5cGVzW1wiQmlnSW50XCJdLFx0ZmlsZUtleTpzdHJpbmcsXHRtZDU6c3RyaW5nLFx0bWQ1RW5jcnlwdGVkOnN0cmluZ30sVmFsdWVUeXBlc1tcIkZpbGVSZXNwb25zZVwiXV0sXG5jcmVhdGVGb2xkZXI/OiBbe1x0bmFtZTpzdHJpbmcsXHRrZXk6c3RyaW5nLFx0cGFyZW50Rm9sZGVySWQ/OnN0cmluZyB8IG51bGx9LFZhbHVlVHlwZXNbXCJGb2xkZXJcIl1dLFxubW92ZUZvbGRlcnM/OiBbe1x0Zm9sZGVyc0lkOnN0cmluZ1tdLFx0cGFyZW50Rm9sZGVySWQ/OnN0cmluZyB8IG51bGx9LHRydWVdLFxuZGVsZXRlRm9sZGVyPzogW3tcdGlkOnN0cmluZ30sdHJ1ZV0sXG5tb3ZlRmlsZXM/OiBbe1x0ZmlsZXNJZDpzdHJpbmdbXSxcdHBhcmVudEZvbGRlcklkPzpzdHJpbmcgfCBudWxsfSx0cnVlXSxcbnVwZGF0ZUZvbGRlcj86IFt7XHRmb2xkZXJJZDpzdHJpbmcsXHRuYW1lPzpzdHJpbmcgfCBudWxsLFx0aXNGYXZvcml0ZT86Ym9vbGVhbiB8IG51bGwsXHRkZWxldGVkQXQ/OlZhbHVlVHlwZXNbXCJEYXRlVGltZVwiXSB8IG51bGx9LFZhbHVlVHlwZXNbXCJGb2xkZXJcIl1dLFxuZGVsZXRlVkZpbGU/OiBbe1x0ZmlsZUlkOnN0cmluZ30sdHJ1ZV0sXG5jcmVhdGVEcmFmdE1haWw/OiBbe1x0aGFzaDpzdHJpbmcsXHRoYXNoS2V5OnN0cmluZyxcdGJvZHk6c3RyaW5nLFx0c3ViamVjdDpzdHJpbmcsXHRyZXBseVRvPzpzdHJpbmcgfCBudWxsLFx0c2VuZGVyRmlsZXM6VmFsdWVUeXBlc1tcIk1haWxGaWxlSW5wdXRcIl1bXSxcdHJlY2lwaWVudHM6c3RyaW5nW119LFZhbHVlVHlwZXNbXCJNYWlsXCJdXSxcbnNlbmREcmFmdE1haWw/OiBbe1x0ZHJhZnRNYWlsSWQ6c3RyaW5nLFx0dGVtcG9yYXJ5UmVjaXBpZW50czpzdHJpbmdbXSxcdHJlY2lwaWVudHM6VmFsdWVUeXBlc1tcIk1haWxSZWNpcGllbnRJbnB1dFwiXVtdLFx0Y3VzdG9tTWVzc2FnZT86c3RyaW5nIHwgbnVsbH0sdHJ1ZV0sXG5yZWFkTWFpbD86IFt7XHRtYWlsSWQ6c3RyaW5nfSx0cnVlXSxcbnVucmVhZE1haWw/OiBbe1x0bWFpbElkOnN0cmluZ30sdHJ1ZV0sXG51cGRhdGVBcHBTZXR0aW5ncz86IFt7XHRjbG91ZEZpbGVEYXlzRm9yRGVsZXRlPzpudW1iZXIgfCBudWxsLFx0Y2xvdWRGb2xkZXJEYXlzRm9yRGVsZXRlPzpudW1iZXIgfCBudWxsLFx0aGlzdG9yeUZpbGVEYXlzRm9yRGVsZXRlPzpudW1iZXIgfCBudWxsLFx0aGlzdG9yeU1heEZpbGVDb3VudD86bnVtYmVyIHwgbnVsbCxcdGF1dG9EaXNjb25uZWN0RGVsYXk/Om51bWJlciB8IG51bGx9LFZhbHVlVHlwZXNbXCJVc2VyQXBwU2V0dGluZ3NcIl1dLFxudXBsb2FkRmlsZUVuZD86IFt7XHRmaWxlSWQ6c3RyaW5nfSx0cnVlXSxcbmxvZ291dD86IFt7XHRzZXNzaW9uSWQ/OnN0cmluZyB8IG51bGx9LHRydWVdLFxuYWRkRmlsZVRvSGlzdG9yeT86IFt7XHR2RmlsZUlkOnN0cmluZyxcdGZpbGVJZDpzdHJpbmd9LFZhbHVlVHlwZXNbXCJWRmlsZVwiXV0sXG5zZW5kT25lTWFpbD86IFt7XHRtYWlsSW50ZWdyaXR5SWQ6c3RyaW5nLFx0cmVjaXBpZW50OlZhbHVlVHlwZXNbXCJNYWlsUmVjaXBpZW50SW5wdXRcIl19LHRydWVdLFxuZGVsZXRlRHJhZnRNYWlsPzogW3tcdGRyYWZ0SWQ6c3RyaW5nfSx0cnVlXSxcbnVwZGF0ZURyYWZ0TWFpbD86IFt7XHRkcmFmdElkOnN0cmluZyxcdGhhc2g/OnN0cmluZyB8IG51bGwsXHRoYXNoS2V5PzpzdHJpbmcgfCBudWxsLFx0Ym9keT86c3RyaW5nIHwgbnVsbCxcdHN1YmplY3Q/OnN0cmluZyB8IG51bGwsXHRyZXBseVRvPzpzdHJpbmcgfCBudWxsLFx0c2VuZGVyRmlsZXM/OlZhbHVlVHlwZXNbXCJNYWlsRmlsZUlucHV0XCJdW10sXHRyZWNpcGllbnRzPzpzdHJpbmdbXX0sVmFsdWVUeXBlc1tcIk1haWxcIl1dLFxuZGVsZXRlVXNlcj86IFt7XHR1c2VySWQ/OnN0cmluZyB8IG51bGx9LHRydWVdLFxucGF5PzogW3tcdHBsYW5Db2RlOnN0cmluZyxcdGlucHV0OlZhbHVlVHlwZXNbXCJQYXlJbnB1dFwiXSxcdGF1dG9SZW5ldz86Ym9vbGVhbiB8IG51bGx9LHRydWVdLFxuXHRjYW5jZWxQYXltZW50Pzp0cnVlLFxuc2VuZFJlcG9ydD86IFt7XHRyZXBvcnRlZFVzZXJJZDpzdHJpbmcsXHRjdXN0b21NZXNzYWdlPzpzdHJpbmcgfCBudWxsfSxWYWx1ZVR5cGVzW1wiUmVwb3J0XCJdXSxcbnNhdmVJbkNsb3VkPzogW3tcdGZpbGVJZDpzdHJpbmcsXHRrZXk6c3RyaW5nLFx0Zm9sZGVySWQ/OnN0cmluZyB8IG51bGwsXHRmaWxlbmFtZTpzdHJpbmcsXHRuYW1lS2V5OnN0cmluZ30sVmFsdWVUeXBlc1tcIlZGaWxlXCJdXSxcbmRlbGV0ZVZGaWxlU2hhcmluZz86IFt7XHR2RmlsZUlkOnN0cmluZyxcdHVzZXJJZDpzdHJpbmd9LHRydWVdLFxuZGVsZXRlRm9sZGVyU2hhcmluZz86IFt7XHRmb2xkZXJJZDpzdHJpbmcsXHR1c2VySWQ6c3RyaW5nfSx0cnVlXSxcbmRlbGV0ZU1haWw/OiBbe1x0bWFpbElkOnN0cmluZ30sdHJ1ZV0sXG5kZWxldGVGaWxlPzogW3tcdGZpbGVJZDpzdHJpbmcsXHR2RmlsZUlkOnN0cmluZ30sdHJ1ZV0sXG5zaGFyZUZpbGVJbkhpc3Rvcnk/OiBbe1x0aW5wdXQ6VmFsdWVUeXBlc1tcIlNoYXJlRmlsZUluSGlzdG9yeUlucHV0XCJdLFx0dkZpbGVJZDpzdHJpbmd9LHRydWVdLFxucmVjb3ZlckZpbGU/OiBbe1x0ZmlsZUlkOnN0cmluZ30sdHJ1ZV0sXG5yZWNvdmVyTWFpbD86IFt7XHRtYWlsSWQ6c3RyaW5nfSx0cnVlXSxcbnJlY292ZXJGb2xkZXI/OiBbe1x0aWQ6c3RyaW5nfSx0cnVlXSxcbmR1cGxpY2F0ZVZGaWxlPzogW3tcdGZpbGVJZDpzdHJpbmcsXHRmb2xkZXJJZD86c3RyaW5nIHwgbnVsbCxcdGN1c3RvbU5hbWU/OnN0cmluZyB8IG51bGx9LHRydWVdLFxuZGVsZXRlRm9sZGVyQ2xvdWRUcmFzaD86IFt7XHRpZHM6c3RyaW5nW119LHRydWVdLFxuZGVsZXRlVkZpbGVDbG91ZFRyYXNoPzogW3tcdGlkczpzdHJpbmdbXX0sdHJ1ZV0sXG5kZWxldGVNYWlsVHJhc2g/OiBbe1x0aWRzOnN0cmluZ1tdfSx0cnVlXSxcblx0ZW1wdHlDbG91ZFRyYXNoPzp0cnVlLFxuXHRlbXB0eU1haWxUcmFzaD86dHJ1ZSxcbnVwbG9hZEZpbGVQYXJ0RW5kPzogW3tcdGZpbGVJZDpzdHJpbmcsXHRtZDU6c3RyaW5nLFx0b3JkZXI6bnVtYmVyfSx0cnVlXSxcbnVwZGF0ZUFwcE5vdGlmaWNhdGlvbnM/OiBbe1x0ZW5hYmxlQWxsPzpib29sZWFuIHwgbnVsbCxcdG1haWw/OmJvb2xlYW4gfCBudWxsLFx0Y2xvdWQ/OmJvb2xlYW4gfCBudWxsLFx0ZGlzYWJsZUFsbFVudGlsPzpWYWx1ZVR5cGVzW1wiRGF0ZVRpbWVcIl0gfCBudWxsfSxWYWx1ZVR5cGVzW1wiVXNlckFwcE5vdGlmaWNhdGlvbnNcIl1dLFxuXHRcdF9fdHlwZW5hbWU/OiB0cnVlXG59PlxuICB9XG5cbmV4cG9ydCB0eXBlIE1vZGVsVHlwZXMgPSB7XG4gICAgLyoqIFRoZSBgQmlnSW50YCBzY2FsYXIgdHlwZSByZXByZXNlbnRzIG5vbi1mcmFjdGlvbmFsIHNpZ25lZCB3aG9sZSBudW1lcmljIHZhbHVlcy5cbkBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvQmlnSW50ICovXG5bXCJCaWdJbnRcIl06YW55O1xuXHQvKiogVGhlIGBCeXRlYCBzY2FsYXIgdHlwZSByZXByZXNlbnRzIGJ5dGUgdmFsdWUgYXMgYSBCdWZmZXIgKi9cbltcIkJ5dGVzXCJdOmFueTtcblx0LyoqIEEgZGF0ZS10aW1lIHN0cmluZyBhdCBVVEMsIHN1Y2ggYXMgMjAwNy0xMi0wM1QxMDoxNTozMFosIGNvbXBsaWFudCB3aXRoIHRoZSBgZGF0ZS10aW1lYCBmb3JtYXQgb3V0bGluZWQgaW4gc2VjdGlvbiA1LjYgb2YgdGhlIFJGQyAzMzM5IHByb2ZpbGUgb2YgdGhlIElTTyA4NjAxIHN0YW5kYXJkIGZvciByZXByZXNlbnRhdGlvbiBvZiBkYXRlcyBhbmQgdGltZXMgdXNpbmcgdGhlIEdyZWdvcmlhbiBjYWxlbmRhci4gKi9cbltcIkRhdGVUaW1lXCJdOmFueTtcblx0LyoqIEFuIGFyYml0cmFyeS1wcmVjaXNpb24gRGVjaW1hbCB0eXBlICovXG5bXCJEZWNpbWFsXCJdOmFueTtcblx0LyoqIFRoZSBgSlNPTk9iamVjdGAgc2NhbGFyIHR5cGUgcmVwcmVzZW50cyBKU09OIG9iamVjdHMgYXMgc3BlY2lmaWVkIGJ5IFtFQ01BLTQwNF0oaHR0cDovL3d3dy5lY21hLWludGVybmF0aW9uYWwub3JnL3B1YmxpY2F0aW9ucy9maWxlcy9FQ01BLVNUL0VDTUEtNDA0LnBkZikuICovXG5bXCJKc29uXCJdOmFueTtcblx0W1wiTGFuZ1wiXTogR3JhcGhRTFR5cGVzW1wiTGFuZ1wiXTtcblx0W1wiUGxhbktpbmRcIl06IEdyYXBoUUxUeXBlc1tcIlBsYW5LaW5kXCJdO1xuXHRbXCJVc2VyUm9sZVwiXTogR3JhcGhRTFR5cGVzW1wiVXNlclJvbGVcIl07XG5cdFtcIk1haWxUeXBlXCJdOiBHcmFwaFFMVHlwZXNbXCJNYWlsVHlwZVwiXTtcblx0W1wiUmlnaHRzXCJdOiBHcmFwaFFMVHlwZXNbXCJSaWdodHNcIl07XG5cdFtcIkZpbGVcIl06IHtcblx0XHRpZDpzdHJpbmcsXG5cdHNpemU6TW9kZWxUeXBlc1tcIkJpZ0ludFwiXSxcblx0c2l6ZUJlZm9yZTpNb2RlbFR5cGVzW1wiQmlnSW50XCJdLFxuXHRjcmVhdGVkQXQ6TW9kZWxUeXBlc1tcIkRhdGVUaW1lXCJdLFxuXHR2RmlsZXM6TW9kZWxUeXBlc1tcIlZGaWxlXCJdW10sXG5cdHZGaWxlc0N1cnJlbnQ6TW9kZWxUeXBlc1tcIlZGaWxlXCJdW10sXG5cdHVzZXJzOk1vZGVsVHlwZXNbXCJGaWxlc09uVXNlcnNPbkFwcGxpY2F0aW9uc1wiXVtdLFxuXHRtZDU6c3RyaW5nLFxuXHRtZDVFbmNyeXB0ZWQ6c3RyaW5nLFxuXHRkZWxldGVkQXQ/Ok1vZGVsVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0dXNlckFwcDpNb2RlbFR5cGVzW1wiQXBwbGljYXRpb25zT25Vc2Vyc1wiXSxcblx0bWFpbHM6TW9kZWxUeXBlc1tcIkZpbGVzT25NYWlsc1wiXVtdLFxuXHR2YWxpZGF0ZWRBdD86TW9kZWxUeXBlc1tcIkRhdGVUaW1lXCJdLFxuXHR1c2VyPzpNb2RlbFR5cGVzW1wiRmlsZXNPblVzZXJzT25BcHBsaWNhdGlvbnNcIl1cbn07XG5cdFtcIkZpbGVQYXJ0XCJdOiB7XG5cdFx0aWQ6c3RyaW5nLFxuXHRmaWxlOk1vZGVsVHlwZXNbXCJGaWxlXCJdLFxuXHRmaWxlSWQ6c3RyaW5nLFxuXHRzaXplOk1vZGVsVHlwZXNbXCJCaWdJbnRcIl0sXG5cdG9yZGVyOm51bWJlcixcblx0bWQ1OnN0cmluZyxcblx0dmFsaWRhdGVkQXQ/Ok1vZGVsVHlwZXNbXCJEYXRlVGltZVwiXVxufTtcblx0W1wiRmlsZUNvbnRlbnRUeXBlXCJdOiBHcmFwaFFMVHlwZXNbXCJGaWxlQ29udGVudFR5cGVcIl07XG5cdFtcIkZpbGVDb250ZW50UGFydFwiXToge1xuXHRcdGNvbnRlbnRVcmw6c3RyaW5nLFxuXHRvcmRlcjpudW1iZXIsXG5cdG1kNTpzdHJpbmdcbn07XG5cdFtcIkZpbGVDb250ZW50QmFzZVwiXTogTW9kZWxUeXBlc1tcIkZpbGVDb250ZW50Q2xvdWRcIl0gfCBNb2RlbFR5cGVzW1wiRmlsZUNvbnRlbnRTZW50TWFpbFwiXSB8IE1vZGVsVHlwZXNbXCJGaWxlQ29udGVudFJlY2VpdmVkTWFpbFwiXTtcblx0W1wiRmlsZUNvbnRlbnRDbG91ZFwiXToge1xuXHRcdHBhcnRzOk1vZGVsVHlwZXNbXCJGaWxlQ29udGVudFBhcnRcIl1bXSxcblx0a2V5OnN0cmluZyxcblx0bWQ1OnN0cmluZyxcblx0bWQ1RW5jcnlwdGVkOnN0cmluZyxcblx0dG90YWxTaXplOk1vZGVsVHlwZXNbXCJCaWdJbnRcIl0sXG5cdHR5cGU6TW9kZWxUeXBlc1tcIkZpbGVDb250ZW50VHlwZVwiXSxcblx0cHVibGljS2V5OnN0cmluZ1xufTtcblx0W1wiRmlsZUNvbnRlbnRTZW50TWFpbFwiXToge1xuXHRcdHBhcnRzOk1vZGVsVHlwZXNbXCJGaWxlQ29udGVudFBhcnRcIl1bXSxcblx0a2V5OnN0cmluZyxcblx0bWQ1OnN0cmluZyxcblx0bWQ1RW5jcnlwdGVkOnN0cmluZyxcblx0dG90YWxTaXplOk1vZGVsVHlwZXNbXCJCaWdJbnRcIl0sXG5cdHR5cGU6TW9kZWxUeXBlc1tcIkZpbGVDb250ZW50VHlwZVwiXVxufTtcblx0W1wiRmlsZUNvbnRlbnRSZWNlaXZlZE1haWxcIl06IHtcblx0XHRwYXJ0czpNb2RlbFR5cGVzW1wiRmlsZUNvbnRlbnRQYXJ0XCJdW10sXG5cdGtleTpzdHJpbmcsXG5cdG1kNTpzdHJpbmcsXG5cdG1kNUVuY3J5cHRlZDpzdHJpbmcsXG5cdHRvdGFsU2l6ZTpNb2RlbFR5cGVzW1wiQmlnSW50XCJdLFxuXHR0eXBlOk1vZGVsVHlwZXNbXCJGaWxlQ29udGVudFR5cGVcIl0sXG5cdHNlbmRlclB1YmxpY0tleTpzdHJpbmdcbn07XG5cdFtcIkZpbGVDb250ZW50XCJdOk1vZGVsVHlwZXNbXCJGaWxlQ29udGVudENsb3VkXCJdIHwgTW9kZWxUeXBlc1tcIkZpbGVDb250ZW50UmVjZWl2ZWRNYWlsXCJdIHwgTW9kZWxUeXBlc1tcIkZpbGVDb250ZW50U2VudE1haWxcIl07XG5cdFtcIkZpbGVSZXNwb25zZVwiXToge1xuXHRcdGZpbGVJZDpzdHJpbmcsXG5cdHBhcnRzOk1vZGVsVHlwZXNbXCJGaWxlUGFydFJlc3BvbnNlXCJdW10sXG5cdGZpbGVQYXJ0U2l6ZTpNb2RlbFR5cGVzW1wiQmlnSW50XCJdXG59O1xuXHRbXCJGaWxlUGFydFJlc3BvbnNlXCJdOiB7XG5cdFx0ZmllbGRzOk1vZGVsVHlwZXNbXCJKc29uXCJdLFxuXHR1cmw6c3RyaW5nLFxuXHRvcmRlcjpudW1iZXJcbn07XG5cdFtcIkZpbGVTaGFyZWRcIl06IHtcblx0XHR1c2VySWQ6c3RyaW5nLFxuXHRtZXNzYWdlPzpzdHJpbmcsXG5cdGFwcElkOnN0cmluZyxcblx0aWQ6c3RyaW5nLFxuXHRmaWxlbmFtZTpzdHJpbmcsXG5cdHNpemU6bnVtYmVyLFxuXHRzaXplQmVmb3JlOm51bWJlclxufTtcblx0W1wiRmlsZVNoYXJlZENvbnRlbnRcIl06IHtcblx0XHRvd25lcklkPzpzdHJpbmcsXG5cdHB1YktleT86c3RyaW5nLFxuXHRtZXNzYWdlPzpzdHJpbmcsXG5cdGFwcElkOnN0cmluZyxcblx0aWQ6c3RyaW5nLFxuXHR0eXBlOnN0cmluZyxcblx0ZmlsZW5hbWU6c3RyaW5nLFxuXHRjb250ZW50VXJsOnN0cmluZyxcblx0a2V5OnN0cmluZyxcblx0c2l6ZTpudW1iZXIsXG5cdHNpemVCZWZvcmU6bnVtYmVyXG59O1xuXHRbXCJDbG91ZExpbWl0c1wiXToge1xuXHRcdHNpemU6TW9kZWxUeXBlc1tcIkJpZ0ludFwiXSxcblx0bWF4U2l6ZT86TW9kZWxUeXBlc1tcIkJpZ0ludFwiXSxcblx0Y291bnQ6TW9kZWxUeXBlc1tcIkJpZ0ludFwiXSxcblx0bWF4Q291bnQ/Ok1vZGVsVHlwZXNbXCJCaWdJbnRcIl1cbn07XG5cdFtcIk1haWxMaW1pdHNWYWx1ZXNcIl06IHtcblx0XHRjb3VudDpNb2RlbFR5cGVzW1wiQmlnSW50XCJdLFxuXHRtYXhDb3VudD86TW9kZWxUeXBlc1tcIkJpZ0ludFwiXSxcblx0ZmlsZUNvdW50Ok1vZGVsVHlwZXNbXCJCaWdJbnRcIl0sXG5cdG1heEZpbGVDb3VudD86TW9kZWxUeXBlc1tcIkJpZ0ludFwiXSxcblx0ZmlsZVNpemU6TW9kZWxUeXBlc1tcIkJpZ0ludFwiXSxcblx0bWF4RmlsZVNpemU/Ok1vZGVsVHlwZXNbXCJCaWdJbnRcIl1cbn07XG5cdFtcIlVzZXJNYWlsTGltaXRzXCJdOiB7XG5cdFx0c2VudDpNb2RlbFR5cGVzW1wiTWFpbExpbWl0c1ZhbHVlc1wiXSxcblx0cmVjZWl2ZWQ6TW9kZWxUeXBlc1tcIk1haWxMaW1pdHNWYWx1ZXNcIl1cbn07XG5cdFtcIlF1ZXJ5TGltaXRzXCJdOiB7XG5cdFx0Y2xvdWQ6TW9kZWxUeXBlc1tcIkNsb3VkTGltaXRzXCJdLFxuXHRtYWlsOk1vZGVsVHlwZXNbXCJVc2VyTWFpbExpbWl0c1wiXVxufTtcblx0W1wiTGltaXRzXCJdOiB7XG5cdFx0ZG93bmxvYWRCYW5kd2lkdGg/Ok1vZGVsVHlwZXNbXCJCaWdJbnRcIl0sXG5cdGRvd25sb2FkQ291bnQ/Ok1vZGVsVHlwZXNbXCJCaWdJbnRcIl0sXG5cdGhhcmRGaWxlQ291bnQ/Ok1vZGVsVHlwZXNbXCJCaWdJbnRcIl0sXG5cdGhhcmRGaWxlU2l6ZT86TW9kZWxUeXBlc1tcIkJpZ0ludFwiXSxcblx0cGVyRmlsZVNpemU/Ok1vZGVsVHlwZXNbXCJCaWdJbnRcIl0sXG5cdHJlY2VpdmVkTWFpbHM6TW9kZWxUeXBlc1tcIk1haWxMaW1pdHNcIl0sXG5cdHNlbnRNYWlsczpNb2RlbFR5cGVzW1wiTWFpbExpbWl0c1wiXSxcblx0dXBsb2FkQmFuZHdpZHRoPzpNb2RlbFR5cGVzW1wiQmlnSW50XCJdLFxuXHR1cGxvYWRDb3VudD86TW9kZWxUeXBlc1tcIkJpZ0ludFwiXVxufTtcblx0W1wiTWFpbExpbWl0c1wiXToge1xuXHRcdGNvdW50PzpNb2RlbFR5cGVzW1wiQmlnSW50XCJdLFxuXHRmaWxlQ291bnQ/Ok1vZGVsVHlwZXNbXCJCaWdJbnRcIl0sXG5cdGZpbGVTaXplPzpNb2RlbFR5cGVzW1wiQmlnSW50XCJdLFxuXHRoYXJkQ291bnQ/Ok1vZGVsVHlwZXNbXCJCaWdJbnRcIl0sXG5cdGhhcmRGaWxlQ291bnQ/Ok1vZGVsVHlwZXNbXCJCaWdJbnRcIl0sXG5cdGhhcmRGaWxlU2l6ZT86TW9kZWxUeXBlc1tcIkJpZ0ludFwiXSxcblx0cGVyRmlsZVNpemU/Ok1vZGVsVHlwZXNbXCJCaWdJbnRcIl1cbn07XG5cdFtcIlVzZXJcIl06IHtcblx0XHRpZDpzdHJpbmcsXG5cdGRlbGV0ZWRBdD86TW9kZWxUeXBlc1tcIkRhdGVUaW1lXCJdLFxuXHRsYW5nOk1vZGVsVHlwZXNbXCJMYW5nXCJdLFxuXHRyZXBvcnRTZW50Ok1vZGVsVHlwZXNbXCJSZXBvcnRcIl1bXSxcblx0Z29kRmF0aGVyPzpNb2RlbFR5cGVzW1wiVXNlclwiXSxcblx0Z29kQ2hpbGRyZW46TW9kZWxUeXBlc1tcIlVzZXJcIl1bXSxcblx0Zmlyc3RuYW1lOnN0cmluZyxcblx0bGFzdG5hbWU6c3RyaW5nLFxuXHRlbWFpbDpzdHJpbmcsXG5cdHBob25lOnN0cmluZyxcblx0bGFzdExvZ2luOk1vZGVsVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0cm9sZTpNb2RlbFR5cGVzW1wiVXNlclJvbGVcIl0sXG5cdHNlc3Npb25zOk1vZGVsVHlwZXNbXCJVc2VyU2Vzc2lvblwiXVtdLFxuXHRjcmVhdGVkQXQ6TW9kZWxUeXBlc1tcIkRhdGVUaW1lXCJdLFxuXHRyZWNlaXZlZE1haWxzOk1vZGVsVHlwZXNbXCJNYWlsXCJdW10sXG5cdHdhaXRpbmdSZWNlaXZlZE1haWxzOk1vZGVsVHlwZXNbXCJXYWl0aW5nUmVjZWl2ZWRNYWlsXCJdW10sXG5cdHNlbnRNYWlsczpNb2RlbFR5cGVzW1wiTWFpbFwiXVtdLFxuXHRkcmFmdE1haWxzOk1vZGVsVHlwZXNbXCJNYWlsXCJdW10sXG5cdGFwcFNldHRpbmdzPzpNb2RlbFR5cGVzW1wiVXNlckFwcFNldHRpbmdzXCJdLFxuXHRhcHBsaWNhdGlvbnM6TW9kZWxUeXBlc1tcIkFwcGxpY2F0aW9uc09uVXNlcnNcIl1bXSxcblx0cHVibGljS2V5OnN0cmluZ1xufTtcblx0W1wiTWFpbFwiXToge1xuXHRcdGlkOnN0cmluZyxcblx0YXBwOk1vZGVsVHlwZXNbXCJBcHBsaWNhdGlvblwiXSxcblx0Ym9keTpzdHJpbmcsXG5cdGNyZWF0ZWRBdDpNb2RlbFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdGRlbGV0ZWRBdD86TW9kZWxUeXBlc1tcIkRhdGVUaW1lXCJdLFxuXHRmaWxlczpNb2RlbFR5cGVzW1wiRmlsZXNPbk1haWxzXCJdW10sXG5cdG1haWxJbnRlZ3JpdHk/Ok1vZGVsVHlwZXNbXCJNYWlsSW50ZWdyaXR5XCJdLFxuXHRtYWlsSW50ZWdyaXR5RHJhZnQ/Ok1vZGVsVHlwZXNbXCJNYWlsSW50ZWdyaXR5RHJhZnRcIl0sXG5cdG9wZW5lZEF0PzpNb2RlbFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdHJlY2lwaWVudDpNb2RlbFR5cGVzW1wiVXNlclwiXSxcblx0c2VuZGVyOk1vZGVsVHlwZXNbXCJVc2VyXCJdLFxuXHRzdWJqZWN0OnN0cmluZyxcblx0dHlwZTpNb2RlbFR5cGVzW1wiTWFpbFR5cGVcIl0sXG5cdHJlY2lwaWVudHM6TW9kZWxUeXBlc1tcIlVzZXJcIl1bXVxufTtcblx0W1wiTWFpbEludGVncml0eVwiXToge1xuXHRcdGlkOnN0cmluZyxcblx0aGFzaDpzdHJpbmcsXG5cdGhhc2hLZXk6c3RyaW5nLFxuXHRhbnN3ZXJzOk1vZGVsVHlwZXNbXCJNYWlsSW50ZWdyaXR5XCJdW10sXG5cdGFwcDpNb2RlbFR5cGVzW1wiQXBwbGljYXRpb25cIl0sXG5cdG1haWxzOk1vZGVsVHlwZXNbXCJNYWlsXCJdW10sXG5cdHJlY2lwaWVudHM6TW9kZWxUeXBlc1tcIlVzZXJcIl1bXSxcblx0dGVtcG9yYXJ5UmVjaXBpZW50czpNb2RlbFR5cGVzW1wiVGVtcG9yYXJ5VXNlclwiXVtdLFxuXHRyZXBseVRvPzpNb2RlbFR5cGVzW1wiTWFpbEludGVncml0eVwiXVxufTtcblx0W1wiRmlsZXNPbk1haWxzXCJdOiB7XG5cdFx0ZmlsZTpNb2RlbFR5cGVzW1wiRmlsZVwiXSxcblx0ZmlsZUtleTpzdHJpbmcsXG5cdGZpbGVuYW1lOnN0cmluZyxcblx0bWFpbDpNb2RlbFR5cGVzW1wiTWFpbFwiXVxufTtcblx0W1wiRmlsZXNPblVzZXJzT25BcHBsaWNhdGlvbnNcIl06IHtcblx0XHRmaWxlOk1vZGVsVHlwZXNbXCJGaWxlXCJdLFxuXHR1c2VyQXBwOk1vZGVsVHlwZXNbXCJBcHBsaWNhdGlvbnNPblVzZXJzXCJdLFxuXHQvKiogRW5jcnlwdGVkIHdpdGggVXNlckFwcCBrZXlzICovXG5cdGtleTpzdHJpbmdcbn07XG5cdFtcIlZGaWxlXCJdOiB7XG5cdFx0aWQ6c3RyaW5nLFxuXHRpc0Zhdm9yaXRlOmJvb2xlYW4sXG5cdGNyZWF0ZWRBdDpNb2RlbFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdGRlbGV0ZWRBdD86TW9kZWxUeXBlc1tcIkRhdGVUaW1lXCJdLFxuXHRmaWxlbmFtZTpzdHJpbmcsXG5cdHVzZXJBcHBzOk1vZGVsVHlwZXNbXCJWRmlsZXNPblVzZXJzT25BcHBsaWNhdGlvbnNcIl1bXSxcblx0Y3JlYXRlZEJ5Ok1vZGVsVHlwZXNbXCJBcHBsaWNhdGlvbnNPblVzZXJzXCJdLFxuXHR1c2VyQXBwPzpNb2RlbFR5cGVzW1wiVkZpbGVzT25Vc2Vyc09uQXBwbGljYXRpb25zXCJdLFxuXHRmb2xkZXI6TW9kZWxUeXBlc1tcIkZvbGRlclwiXSxcblx0aGlzdG9yeTpNb2RlbFR5cGVzW1wiRmlsZVwiXVtdLFxuXHRjdXJyZW50PzpNb2RlbFR5cGVzW1wiRmlsZVwiXSxcblx0dXBkYXRlZEF0Ok1vZGVsVHlwZXNbXCJEYXRlVGltZVwiXVxufTtcblx0W1wiRm9sZGVyQnJlYWRjcnVtYkl0ZW1cIl06IHtcblx0XHRpZDpzdHJpbmcsXG5cdG5hbWU6c3RyaW5nLFxuXHRwdWJLZXk6c3RyaW5nLFxuXHRuYW1lS2V5PzpzdHJpbmdcbn07XG5cdFtcIkZvbGRlclwiXToge1xuXHRcdGlkOnN0cmluZyxcblx0aXNGYXZvcml0ZTpib29sZWFuLFxuXHRjcmVhdGVkQXQ6TW9kZWxUeXBlc1tcIkRhdGVUaW1lXCJdLFxuXHRkZWxldGVkQXQ/Ok1vZGVsVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0dXBkYXRlZEF0Ok1vZGVsVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0Y3JlYXRlZEJ5Ok1vZGVsVHlwZXNbXCJBcHBsaWNhdGlvbnNPblVzZXJzXCJdLFxuXHR1c2VyQXBwczpNb2RlbFR5cGVzW1wiRm9sZGVyc09uVXNlcnNPbkFwcGxpY2F0aW9uc1wiXVtdLFxuXHR1c2VyQXBwPzpNb2RlbFR5cGVzW1wiRm9sZGVyc09uVXNlcnNPbkFwcGxpY2F0aW9uc1wiXSxcblx0bmFtZTpzdHJpbmcsXG5cdHBhcmVudEZvbGRlcj86TW9kZWxUeXBlc1tcIkZvbGRlclwiXSxcblx0c3ViZm9sZGVyczpNb2RlbFR5cGVzW1wiRm9sZGVyXCJdW10sXG5cdHZGaWxlczpNb2RlbFR5cGVzW1wiVkZpbGVcIl1bXSxcblx0YnJlYWRjcnVtYjpNb2RlbFR5cGVzW1wiRm9sZGVyQnJlYWRjcnVtYkl0ZW1cIl1bXVxufTtcblx0W1wiQXBwbGljYXRpb25cIl06IHtcblx0XHRpZDpzdHJpbmcsXG5cdG5hbWU6c3RyaW5nXG59O1xuXHRbXCJBcHBsaWNhdGlvbnNPblVzZXJzXCJdOiB7XG5cdFx0ZmFrZVVzZXJJZDpzdHJpbmcsXG5cdGtleVBhaXI/Ok1vZGVsVHlwZXNbXCJBcHBLZXlQYWlyXCJdLFxuXHRzZXNzaW9uczpNb2RlbFR5cGVzW1wiQXBwU2Vzc2lvblwiXVtdLFxuXHRhcHA6TW9kZWxUeXBlc1tcIkFwcGxpY2F0aW9uXCJdLFxuXHR1c2VyOk1vZGVsVHlwZXNbXCJVc2VyXCJdLFxuXHRmb2xkZXJzOk1vZGVsVHlwZXNbXCJGb2xkZXJzT25Vc2Vyc09uQXBwbGljYXRpb25zXCJdW10sXG5cdHNldHRpbmdzOk1vZGVsVHlwZXNbXCJVc2VyQXBwU2V0dGluZ3NcIl1cbn07XG5cdFtcIkFwcEtleVBhaXJcIl06IHtcblx0XHRwdWI6c3RyaW5nXG59O1xuXHRbXCJGb2xkZXJTaXplXCJdOiB7XG5cdFx0c2l6ZTpNb2RlbFR5cGVzW1wiQmlnSW50XCJdLFxuXHRzaXplQmVmb3JlOk1vZGVsVHlwZXNbXCJCaWdJbnRcIl1cbn07XG5cdFtcIlVzZXJTZXNzaW9uXCJdOiB7XG5cdFx0aWQ6c3RyaW5nLFxuXHRhcHBTZXNzaW9uczpNb2RlbFR5cGVzW1wiQXBwU2Vzc2lvblwiXVtdLFxuXHRsYXN0QWN0aXZpdHk/Ok1vZGVsVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0dXNlckFnZW50PzpzdHJpbmcsXG5cdGlwPzpzdHJpbmcsXG5cdGNpdHk/OnN0cmluZyxcblx0Y291bnRyeT86c3RyaW5nLFxuXHRjcmVhdGVkQXQ6TW9kZWxUeXBlc1tcIkRhdGVUaW1lXCJdXG59O1xuXHRbXCJBcHBTZXNzaW9uXCJdOiB7XG5cdFx0aWQ6c3RyaW5nLFxuXHRsYXN0QWN0aXZpdHk/Ok1vZGVsVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0dXNlckFnZW50PzpzdHJpbmcsXG5cdGlwPzpzdHJpbmcsXG5cdGNpdHk/OnN0cmluZyxcblx0Y291bnRyeT86c3RyaW5nLFxuXHR1c2VyU2Vzc2lvbjpNb2RlbFR5cGVzW1wiVXNlclNlc3Npb25cIl0sXG5cdHVzZXJBcHA/Ok1vZGVsVHlwZXNbXCJBcHBsaWNhdGlvbnNPblVzZXJzXCJdLFxuXHRjcmVhdGVkQXQ6TW9kZWxUeXBlc1tcIkRhdGVUaW1lXCJdXG59O1xuXHRbXCJVc2VyQXBwU2V0dGluZ3NcIl06IHtcblx0XHRpZDpzdHJpbmcsXG5cdGNsb3VkRmlsZURheXNGb3JEZWxldGU6bnVtYmVyLFxuXHRjbG91ZEZvbGRlckRheXNGb3JEZWxldGU6bnVtYmVyLFxuXHRoaXN0b3J5RmlsZURheXNGb3JEZWxldGU/Om51bWJlcixcblx0aGlzdG9yeU1heEZpbGVDb3VudDpudW1iZXIsXG5cdGF1dG9EaXNjb25uZWN0RGVsYXk/Om51bWJlclxufTtcblx0W1wiTWFpbEZpbGVJbnB1dFwiXTogR3JhcGhRTFR5cGVzW1wiTWFpbEZpbGVJbnB1dFwiXTtcblx0W1wiTWFpbFJlY2lwaWVudElucHV0XCJdOiBHcmFwaFFMVHlwZXNbXCJNYWlsUmVjaXBpZW50SW5wdXRcIl07XG5cdFtcIlNoYXJlRmlsZUtleUlucHV0XCJdOiBHcmFwaFFMVHlwZXNbXCJTaGFyZUZpbGVLZXlJbnB1dFwiXTtcblx0W1wiTmFtZUtleUlucHV0XCJdOiBHcmFwaFFMVHlwZXNbXCJOYW1lS2V5SW5wdXRcIl07XG5cdFtcIk5hbWVLZXlJbnB1dEZvbGRlcnNcIl06IEdyYXBoUUxUeXBlc1tcIk5hbWVLZXlJbnB1dEZvbGRlcnNcIl07XG5cdFtcIlNoYXJlRm9sZGVyc0lucHV0XCJdOiBHcmFwaFFMVHlwZXNbXCJTaGFyZUZvbGRlcnNJbnB1dFwiXTtcblx0W1wiU2hhcmVGaWxlSW5IaXN0b3J5SW5wdXRcIl06IEdyYXBoUUxUeXBlc1tcIlNoYXJlRmlsZUluSGlzdG9yeUlucHV0XCJdO1xuXHRbXCJQYXlJbnB1dFR5cGVcIl06IEdyYXBoUUxUeXBlc1tcIlBheUlucHV0VHlwZVwiXTtcblx0W1wiUGF5SW5wdXRcIl06IEdyYXBoUUxUeXBlc1tcIlBheUlucHV0XCJdO1xuXHRbXCJXYWl0aW5nUmVjZWl2ZWRNYWlsXCJdOiB7XG5cdFx0c2VuZGVyOk1vZGVsVHlwZXNbXCJVc2VyXCJdLFxuXHRkYXRlOk1vZGVsVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0cmVjaXBpZW50czpNb2RlbFR5cGVzW1wiVXNlclwiXVtdLFxuXHR0ZW1wb3JhcnlSZWNpcGllbnRzOk1vZGVsVHlwZXNbXCJUZW1wb3JhcnlVc2VyXCJdW10sXG5cdGF0dGFjaG1lbnRzQ291bnQ6bnVtYmVyXG59O1xuXHRbXCJUZW1wb3JhcnlVc2VyXCJdOiB7XG5cdFx0aWQ6c3RyaW5nLFxuXHRtYWlsczpNb2RlbFR5cGVzW1wiTWFpbEludGVncml0eVwiXVtdLFxuXHRkcmFmdE1haWxzOk1vZGVsVHlwZXNbXCJNYWlsSW50ZWdyaXR5RHJhZnRcIl1bXSxcblx0ZW1haWw/OnN0cmluZ1xufTtcblx0W1wiTWFpbEludGVncml0eURyYWZ0XCJdOiB7XG5cdFx0aWQ6c3RyaW5nLFxuXHRoYXNoOnN0cmluZyxcblx0aGFzaEtleTpzdHJpbmcsXG5cdGFwcDpNb2RlbFR5cGVzW1wiQXBwbGljYXRpb25cIl0sXG5cdG1haWw6TW9kZWxUeXBlc1tcIk1haWxcIl0sXG5cdHJlY2lwaWVudHM6TW9kZWxUeXBlc1tcIlVzZXJcIl1bXSxcblx0dGVtcG9yYXJ5UmVjaXBpZW50czpNb2RlbFR5cGVzW1wiVGVtcG9yYXJ5VXNlclwiXVtdLFxuXHRyZXBseVRvPzpNb2RlbFR5cGVzW1wiTWFpbEludGVncml0eVwiXVxufTtcblx0W1wiRmFxXCJdOiB7XG5cdFx0aWQ6c3RyaW5nLFxuXHRvcmRlcjpudW1iZXIsXG5cdGVudHJpZXM6TW9kZWxUeXBlc1tcIkZhcUVudHJ5XCJdW11cbn07XG5cdFtcIkZhcUVudHJ5XCJdOiB7XG5cdFx0aWQ6c3RyaW5nLFxuXHRsYW5nOk1vZGVsVHlwZXNbXCJMYW5nXCJdLFxuXHRxdWVzdGlvbjpzdHJpbmcsXG5cdGFuc3dlcjpzdHJpbmcsXG5cdGZhcTpNb2RlbFR5cGVzW1wiRmFxXCJdXG59O1xuXHRbXCJQbGFuXCJdOiB7XG5cdFx0aWQ6c3RyaW5nLFxuXHRraW5kOk1vZGVsVHlwZXNbXCJQbGFuS2luZFwiXSxcblx0Y29kZXM6c3RyaW5nW10sXG5cdGxpbWl0czpNb2RlbFR5cGVzW1wiTGltaXRzXCJdXG59O1xuXHRbXCJSZXBvcnRcIl06IHtcblx0XHRpZDpzdHJpbmcsXG5cdHVzZXI6TW9kZWxUeXBlc1tcIlVzZXJcIl0sXG5cdHJlcG9ydGVkVXNlcjpNb2RlbFR5cGVzW1wiVXNlclwiXSxcblx0Y3VzdG9tTWVzc2FnZT86c3RyaW5nXG59O1xuXHRbXCJGb2xkZXJzT25Vc2Vyc09uQXBwbGljYXRpb25zXCJdOiB7XG5cdFx0Zm9sZGVyOk1vZGVsVHlwZXNbXCJGb2xkZXJcIl0sXG5cdHVzZXJBcHA6TW9kZWxUeXBlc1tcIkFwcGxpY2F0aW9uc09uVXNlcnNcIl0sXG5cdHJpZ2h0czpNb2RlbFR5cGVzW1wiUmlnaHRzXCJdLFxuXHRuYW1lS2V5PzpzdHJpbmcsXG5cdGlzUm9vdDpib29sZWFuXG59O1xuXHRbXCJWRmlsZXNPblVzZXJzT25BcHBsaWNhdGlvbnNcIl06IHtcblx0XHR2RmlsZTpNb2RlbFR5cGVzW1wiVkZpbGVcIl0sXG5cdHVzZXJBcHA6TW9kZWxUeXBlc1tcIkFwcGxpY2F0aW9uc09uVXNlcnNcIl0sXG5cdHJpZ2h0czpNb2RlbFR5cGVzW1wiUmlnaHRzXCJdLFxuXHRuYW1lS2V5OnN0cmluZyxcblx0aXNSb290OmJvb2xlYW5cbn07XG5cdFtcIkZhcUl0ZW1cIl06IHtcblx0XHRvcmRlcjpudW1iZXIsXG5cdHF1ZXN0aW9uOnN0cmluZyxcblx0YW5zd2VyOnN0cmluZ1xufTtcblx0W1wiQmxvZ1wiXToge1xuXHRcdGlkOnN0cmluZyxcblx0b3JkZXI6bnVtYmVyLFxuXHRlbnRyaWVzOk1vZGVsVHlwZXNbXCJCbG9nRW50cnlcIl1bXVxufTtcblx0W1wiQmxvZ0VudHJ5XCJdOiB7XG5cdFx0aWQ6c3RyaW5nLFxuXHRsYW5nOk1vZGVsVHlwZXNbXCJMYW5nXCJdLFxuXHRhdXRob3I6c3RyaW5nLFxuXHRib2R5OnN0cmluZyxcblx0ZGF0ZTpNb2RlbFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdGltYWdlOnN0cmluZyxcblx0c3VtbWFyeTpzdHJpbmcsXG5cdHRpdGxlOnN0cmluZ1xufTtcblx0W1wiQmxvZ0l0ZW1cIl06IHtcblx0XHRpZDpzdHJpbmcsXG5cdGJsb2dJZDpzdHJpbmcsXG5cdG9yZGVyOm51bWJlcixcblx0dGl0bGU6c3RyaW5nLFxuXHRib2R5OnN0cmluZyxcblx0YXV0aG9yOnN0cmluZyxcblx0aW1hZ2U6c3RyaW5nLFxuXHRpbWFnZUFsdDpzdHJpbmcsXG5cdHN1bW1hcnk6c3RyaW5nLFxuXHRkYXRlOk1vZGVsVHlwZXNbXCJEYXRlVGltZVwiXVxufTtcblx0W1wiVXNlckFwcE5vdGlmaWNhdGlvbnNcIl06IHtcblx0XHRpZDpzdHJpbmcsXG5cdGVuYWJsZUFsbDpib29sZWFuLFxuXHRtYWlsOmJvb2xlYW4sXG5cdGNsb3VkOmJvb2xlYW4sXG5cdGRpc2FibGVBbGxVbnRpbD86TW9kZWxUeXBlc1tcIkRhdGVUaW1lXCJdXG59O1xuXHRbXCJSZWN1cmx5SW52b2ljZXNcIl06IHtcblx0XHRwZGY6c3RyaW5nLFxuXHRkYXRlOk1vZGVsVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0ZHVlOk1vZGVsVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0c3RhdHVzOnN0cmluZyxcblx0dG90YWw6bnVtYmVyLFxuXHRuYW1lOnN0cmluZyxcblx0Y3VycmVuY3k6c3RyaW5nXG59O1xuXHRbXCJSZWN1cmx5U3Vic2NyaXB0aW9uXCJdOiB7XG5cdFx0YXV0b3JlbmV3OmJvb2xlYW4sXG5cdGFjdGl2YXRlZEF0PzpNb2RlbFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdGN1cnJlbnRQZXJpb2RFbmRzQXQ/Ok1vZGVsVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0Y3VycmVudFBlcmlvZFN0YXJ0ZWRBdD86TW9kZWxUeXBlc1tcIkRhdGVUaW1lXCJdLFxuXHRjYW5jZWxlZEF0PzpNb2RlbFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdGNyZWF0ZWRBdD86TW9kZWxUeXBlc1tcIkRhdGVUaW1lXCJdLFxuXHRleHBpcmVzQXQ/Ok1vZGVsVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0cGF1c2VkQXQ/Ok1vZGVsVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0dHJpYWxFbmRzQXQ/Ok1vZGVsVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0dHJpYWxTdGFydGVkQXQ/Ok1vZGVsVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0dXBkYXRlZEF0PzpNb2RlbFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdHN0YXRlOnN0cmluZyxcblx0Y29sbGVjdGlvbk1ldGhvZDpzdHJpbmcsXG5cdHBsYW4/OnN0cmluZyxcblx0cGxhbkNvZGU/OnN0cmluZyxcblx0dG90YWw/Om51bWJlclxufTtcblx0W1wiUGF5bWVudEluZm9zXCJdOiB7XG5cdFx0aG9zdGVkVXJsOnN0cmluZyxcblx0Y3VycmVudFN1YnNjcmlwdGlvbjpNb2RlbFR5cGVzW1wiUmVjdXJseVN1YnNjcmlwdGlvblwiXSxcblx0aW52b2ljZXM6TW9kZWxUeXBlc1tcIlJlY3VybHlJbnZvaWNlc1wiXVtdXG59O1xuXHRbXCJTaGFyZUZvbGRlclJlc3BvbnNlXCJdOiB7XG5cdFx0Zm9sZGVyczpzdHJpbmdbXSxcblx0dkZpbGVzOnN0cmluZ1tdXG59O1xuXHRbXCJRdWVyeVwiXToge1xuXHRcdHRlc3Q/OmJvb2xlYW4sXG5cdGxpbWl0cz86TW9kZWxUeXBlc1tcIlF1ZXJ5TGltaXRzXCJdLFxuXHR1c2VyPzpNb2RlbFR5cGVzW1wiVXNlclwiXSxcblx0ZGJDb25maWc/Ok1vZGVsVHlwZXNbXCJKc29uXCJdLFxuXHRkYkdldD86TW9kZWxUeXBlc1tcIkpzb25cIl0sXG5cdGRiU2VhcmNoOk1vZGVsVHlwZXNbXCJKc29uXCJdW10sXG5cdGZpbGVDb250ZW50PzpNb2RlbFR5cGVzW1wiRmlsZUNvbnRlbnRcIl0sXG5cdGZpbGVzU2hhcmVkV2l0aE1lOk1vZGVsVHlwZXNbXCJGaWxlU2hhcmVkQ29udGVudFwiXVtdLFxuXHR2RmlsZXNTaGFyZWRXaXRoTWU6TW9kZWxUeXBlc1tcIlZGaWxlXCJdW10sXG5cdGZvbGRlcnNTaGFyZWRXaXRoTWU6TW9kZWxUeXBlc1tcIkZvbGRlclwiXVtdLFxuXHRmb2xkZXJTaXplPzpNb2RlbFR5cGVzW1wiRm9sZGVyU2l6ZVwiXSxcblx0Zm9sZGVyPzpNb2RlbFR5cGVzW1wiRm9sZGVyXCJdLFxuXHR2RmlsZT86TW9kZWxUeXBlc1tcIlZGaWxlXCJdLFxuXHRmaWxlPzpNb2RlbFR5cGVzW1wiRmlsZVwiXSxcblx0ZmFxOk1vZGVsVHlwZXNbXCJGYXFJdGVtXCJdW10sXG5cdHBheW1lbnRJbmZvcz86TW9kZWxUeXBlc1tcIlBheW1lbnRJbmZvc1wiXSxcblx0cGxhbnM6TW9kZWxUeXBlc1tcIlBsYW5cIl1bXSxcblx0c2hhcmVkRm9sZGVyczpNb2RlbFR5cGVzW1wiRm9sZGVyXCJdW10sXG5cdHNoYXJlZFZGaWxlczpNb2RlbFR5cGVzW1wiVkZpbGVcIl1bXSxcblx0YmxvZzpNb2RlbFR5cGVzW1wiQmxvZ0l0ZW1cIl1bXSxcblx0ZGVsZXRlZEZvbGRlcnM6TW9kZWxUeXBlc1tcIkZvbGRlclwiXVtdLFxuXHRkZWxldGVkVkZpbGVzOk1vZGVsVHlwZXNbXCJWRmlsZVwiXVtdLFxuXHRtYWlsPzpNb2RlbFR5cGVzW1wiTWFpbFwiXSxcblx0ZGVsZXRlZE1haWxzOk1vZGVsVHlwZXNbXCJNYWlsXCJdW11cbn07XG5cdFtcIk11dGF0aW9uXCJdOiB7XG5cdFx0Y3JlYXRlQXBwbGljYXRpb24/OnN0cmluZyxcblx0ZGJTZXQ/Ok1vZGVsVHlwZXNbXCJKc29uXCJdLFxuXHRkYkNvbmZpZzpNb2RlbFR5cGVzW1wiSnNvblwiXSxcblx0c2hhcmVWRmlsZT86Ym9vbGVhbixcblx0c2hhcmVGb2xkZXI6TW9kZWxUeXBlc1tcIlNoYXJlRm9sZGVyUmVzcG9uc2VcIl0sXG5cdHNoYXJlRm9sZGVyRmluaXNoPzpib29sZWFuLFxuXHR1cGRhdGVGaWxlPzpNb2RlbFR5cGVzW1wiVkZpbGVcIl0sXG5cdHVwZGF0ZVByb2ZpbGU/Ok1vZGVsVHlwZXNbXCJVc2VyXCJdLFxuXHR1cGxvYWRBbm9ueW1vdXM/Ok1vZGVsVHlwZXNbXCJGaWxlUmVzcG9uc2VcIl0sXG5cdHVwbG9hZEZpbGU/Ok1vZGVsVHlwZXNbXCJGaWxlUmVzcG9uc2VcIl0sXG5cdGNyZWF0ZUZvbGRlcj86TW9kZWxUeXBlc1tcIkZvbGRlclwiXSxcblx0bW92ZUZvbGRlcnM/OmJvb2xlYW4sXG5cdGRlbGV0ZUZvbGRlcj86Ym9vbGVhbixcblx0bW92ZUZpbGVzPzpib29sZWFuLFxuXHR1cGRhdGVGb2xkZXI/Ok1vZGVsVHlwZXNbXCJGb2xkZXJcIl0sXG5cdGRlbGV0ZVZGaWxlOmJvb2xlYW4sXG5cdGNyZWF0ZURyYWZ0TWFpbD86TW9kZWxUeXBlc1tcIk1haWxcIl0sXG5cdHNlbmREcmFmdE1haWw/OmJvb2xlYW4sXG5cdHJlYWRNYWlsPzpib29sZWFuLFxuXHR1bnJlYWRNYWlsPzpib29sZWFuLFxuXHR1cGRhdGVBcHBTZXR0aW5nczpNb2RlbFR5cGVzW1wiVXNlckFwcFNldHRpbmdzXCJdLFxuXHR1cGxvYWRGaWxlRW5kPzpzdHJpbmcsXG5cdGxvZ291dD86Ym9vbGVhbixcblx0YWRkRmlsZVRvSGlzdG9yeTpNb2RlbFR5cGVzW1wiVkZpbGVcIl0sXG5cdHNlbmRPbmVNYWlsPzpib29sZWFuLFxuXHRkZWxldGVEcmFmdE1haWw/OmJvb2xlYW4sXG5cdHVwZGF0ZURyYWZ0TWFpbD86TW9kZWxUeXBlc1tcIk1haWxcIl0sXG5cdGRlbGV0ZVVzZXI/OmJvb2xlYW4sXG5cdHBheTpib29sZWFuLFxuXHRjYW5jZWxQYXltZW50Pzpib29sZWFuLFxuXHRzZW5kUmVwb3J0PzpNb2RlbFR5cGVzW1wiUmVwb3J0XCJdLFxuXHRzYXZlSW5DbG91ZDpNb2RlbFR5cGVzW1wiVkZpbGVcIl0sXG5cdGRlbGV0ZVZGaWxlU2hhcmluZzpib29sZWFuLFxuXHRkZWxldGVGb2xkZXJTaGFyaW5nOmJvb2xlYW4sXG5cdGRlbGV0ZU1haWw6Ym9vbGVhbixcblx0ZGVsZXRlRmlsZTpib29sZWFuLFxuXHRzaGFyZUZpbGVJbkhpc3Rvcnk6Ym9vbGVhbixcblx0cmVjb3ZlckZpbGU6Ym9vbGVhbixcblx0cmVjb3Zlck1haWw6Ym9vbGVhbixcblx0cmVjb3ZlckZvbGRlcj86Ym9vbGVhbixcblx0ZHVwbGljYXRlVkZpbGU6Ym9vbGVhbixcblx0ZGVsZXRlRm9sZGVyQ2xvdWRUcmFzaD86Ym9vbGVhbixcblx0ZGVsZXRlVkZpbGVDbG91ZFRyYXNoPzpib29sZWFuLFxuXHRkZWxldGVNYWlsVHJhc2g6Ym9vbGVhbixcblx0ZW1wdHlDbG91ZFRyYXNoPzpib29sZWFuLFxuXHRlbXB0eU1haWxUcmFzaD86Ym9vbGVhbixcblx0dXBsb2FkRmlsZVBhcnRFbmQ6Ym9vbGVhbixcblx0dXBkYXRlQXBwTm90aWZpY2F0aW9ucz86TW9kZWxUeXBlc1tcIlVzZXJBcHBOb3RpZmljYXRpb25zXCJdXG59XG4gICAgfVxuXG5leHBvcnQgdHlwZSBHcmFwaFFMVHlwZXMgPSB7XG4gICAgLyoqIFRoZSBgQmlnSW50YCBzY2FsYXIgdHlwZSByZXByZXNlbnRzIG5vbi1mcmFjdGlvbmFsIHNpZ25lZCB3aG9sZSBudW1lcmljIHZhbHVlcy5cbkBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvQmlnSW50ICovXG5bXCJCaWdJbnRcIl06YW55O1xuXHQvKiogVGhlIGBCeXRlYCBzY2FsYXIgdHlwZSByZXByZXNlbnRzIGJ5dGUgdmFsdWUgYXMgYSBCdWZmZXIgKi9cbltcIkJ5dGVzXCJdOmFueTtcblx0LyoqIEEgZGF0ZS10aW1lIHN0cmluZyBhdCBVVEMsIHN1Y2ggYXMgMjAwNy0xMi0wM1QxMDoxNTozMFosIGNvbXBsaWFudCB3aXRoIHRoZSBgZGF0ZS10aW1lYCBmb3JtYXQgb3V0bGluZWQgaW4gc2VjdGlvbiA1LjYgb2YgdGhlIFJGQyAzMzM5IHByb2ZpbGUgb2YgdGhlIElTTyA4NjAxIHN0YW5kYXJkIGZvciByZXByZXNlbnRhdGlvbiBvZiBkYXRlcyBhbmQgdGltZXMgdXNpbmcgdGhlIEdyZWdvcmlhbiBjYWxlbmRhci4gKi9cbltcIkRhdGVUaW1lXCJdOmFueTtcblx0LyoqIEFuIGFyYml0cmFyeS1wcmVjaXNpb24gRGVjaW1hbCB0eXBlICovXG5bXCJEZWNpbWFsXCJdOmFueTtcblx0LyoqIFRoZSBgSlNPTk9iamVjdGAgc2NhbGFyIHR5cGUgcmVwcmVzZW50cyBKU09OIG9iamVjdHMgYXMgc3BlY2lmaWVkIGJ5IFtFQ01BLTQwNF0oaHR0cDovL3d3dy5lY21hLWludGVybmF0aW9uYWwub3JnL3B1YmxpY2F0aW9ucy9maWxlcy9FQ01BLVNUL0VDTUEtNDA0LnBkZikuICovXG5bXCJKc29uXCJdOmFueTtcblx0W1wiTGFuZ1wiXTogTGFuZztcblx0W1wiUGxhbktpbmRcIl06IFBsYW5LaW5kO1xuXHRbXCJVc2VyUm9sZVwiXTogVXNlclJvbGU7XG5cdFtcIk1haWxUeXBlXCJdOiBNYWlsVHlwZTtcblx0W1wiUmlnaHRzXCJdOiBSaWdodHM7XG5cdFtcIkZpbGVcIl06IHtcblx0X190eXBlbmFtZTogXCJGaWxlXCIsXG5cdGlkOiBzdHJpbmcsXG5cdHNpemU6IEdyYXBoUUxUeXBlc1tcIkJpZ0ludFwiXSxcblx0c2l6ZUJlZm9yZTogR3JhcGhRTFR5cGVzW1wiQmlnSW50XCJdLFxuXHRjcmVhdGVkQXQ6IEdyYXBoUUxUeXBlc1tcIkRhdGVUaW1lXCJdLFxuXHR2RmlsZXM6IEFycmF5PEdyYXBoUUxUeXBlc1tcIlZGaWxlXCJdPixcblx0dkZpbGVzQ3VycmVudDogQXJyYXk8R3JhcGhRTFR5cGVzW1wiVkZpbGVcIl0+LFxuXHR1c2VyczogQXJyYXk8R3JhcGhRTFR5cGVzW1wiRmlsZXNPblVzZXJzT25BcHBsaWNhdGlvbnNcIl0+LFxuXHRtZDU6IHN0cmluZyxcblx0bWQ1RW5jcnlwdGVkOiBzdHJpbmcsXG5cdGRlbGV0ZWRBdD86IEdyYXBoUUxUeXBlc1tcIkRhdGVUaW1lXCJdLFxuXHR1c2VyQXBwOiBHcmFwaFFMVHlwZXNbXCJBcHBsaWNhdGlvbnNPblVzZXJzXCJdLFxuXHRtYWlsczogQXJyYXk8R3JhcGhRTFR5cGVzW1wiRmlsZXNPbk1haWxzXCJdPixcblx0dmFsaWRhdGVkQXQ/OiBHcmFwaFFMVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0dXNlcj86IEdyYXBoUUxUeXBlc1tcIkZpbGVzT25Vc2Vyc09uQXBwbGljYXRpb25zXCJdXG59O1xuXHRbXCJGaWxlUGFydFwiXToge1xuXHRfX3R5cGVuYW1lOiBcIkZpbGVQYXJ0XCIsXG5cdGlkOiBzdHJpbmcsXG5cdGZpbGU6IEdyYXBoUUxUeXBlc1tcIkZpbGVcIl0sXG5cdGZpbGVJZDogc3RyaW5nLFxuXHRzaXplOiBHcmFwaFFMVHlwZXNbXCJCaWdJbnRcIl0sXG5cdG9yZGVyOiBudW1iZXIsXG5cdG1kNTogc3RyaW5nLFxuXHR2YWxpZGF0ZWRBdD86IEdyYXBoUUxUeXBlc1tcIkRhdGVUaW1lXCJdXG59O1xuXHRbXCJGaWxlQ29udGVudFR5cGVcIl06IEZpbGVDb250ZW50VHlwZTtcblx0W1wiRmlsZUNvbnRlbnRQYXJ0XCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiRmlsZUNvbnRlbnRQYXJ0XCIsXG5cdGNvbnRlbnRVcmw6IHN0cmluZyxcblx0b3JkZXI6IG51bWJlcixcblx0bWQ1OiBzdHJpbmdcbn07XG5cdFtcIkZpbGVDb250ZW50QmFzZVwiXToge1xuXHRfX3R5cGVuYW1lOlwiRmlsZUNvbnRlbnRDbG91ZFwiIHwgXCJGaWxlQ29udGVudFNlbnRNYWlsXCIgfCBcIkZpbGVDb250ZW50UmVjZWl2ZWRNYWlsXCIsXG5cdHBhcnRzOiBBcnJheTxHcmFwaFFMVHlwZXNbXCJGaWxlQ29udGVudFBhcnRcIl0+LFxuXHRrZXk6IHN0cmluZyxcblx0bWQ1OiBzdHJpbmcsXG5cdG1kNUVuY3J5cHRlZDogc3RyaW5nLFxuXHR0b3RhbFNpemU6IEdyYXBoUUxUeXBlc1tcIkJpZ0ludFwiXSxcblx0dHlwZTogR3JhcGhRTFR5cGVzW1wiRmlsZUNvbnRlbnRUeXBlXCJdXG5cdFsnLi4ub24gRmlsZUNvbnRlbnRDbG91ZCddOiAnX191bmlvbicgJiBHcmFwaFFMVHlwZXNbXCJGaWxlQ29udGVudENsb3VkXCJdO1xuXHRbJy4uLm9uIEZpbGVDb250ZW50U2VudE1haWwnXTogJ19fdW5pb24nICYgR3JhcGhRTFR5cGVzW1wiRmlsZUNvbnRlbnRTZW50TWFpbFwiXTtcblx0WycuLi5vbiBGaWxlQ29udGVudFJlY2VpdmVkTWFpbCddOiAnX191bmlvbicgJiBHcmFwaFFMVHlwZXNbXCJGaWxlQ29udGVudFJlY2VpdmVkTWFpbFwiXTtcbn07XG5cdFtcIkZpbGVDb250ZW50Q2xvdWRcIl06IHtcblx0X190eXBlbmFtZTogXCJGaWxlQ29udGVudENsb3VkXCIsXG5cdHBhcnRzOiBBcnJheTxHcmFwaFFMVHlwZXNbXCJGaWxlQ29udGVudFBhcnRcIl0+LFxuXHRrZXk6IHN0cmluZyxcblx0bWQ1OiBzdHJpbmcsXG5cdG1kNUVuY3J5cHRlZDogc3RyaW5nLFxuXHR0b3RhbFNpemU6IEdyYXBoUUxUeXBlc1tcIkJpZ0ludFwiXSxcblx0dHlwZTogR3JhcGhRTFR5cGVzW1wiRmlsZUNvbnRlbnRUeXBlXCJdLFxuXHRwdWJsaWNLZXk6IHN0cmluZ1xufTtcblx0W1wiRmlsZUNvbnRlbnRTZW50TWFpbFwiXToge1xuXHRfX3R5cGVuYW1lOiBcIkZpbGVDb250ZW50U2VudE1haWxcIixcblx0cGFydHM6IEFycmF5PEdyYXBoUUxUeXBlc1tcIkZpbGVDb250ZW50UGFydFwiXT4sXG5cdGtleTogc3RyaW5nLFxuXHRtZDU6IHN0cmluZyxcblx0bWQ1RW5jcnlwdGVkOiBzdHJpbmcsXG5cdHRvdGFsU2l6ZTogR3JhcGhRTFR5cGVzW1wiQmlnSW50XCJdLFxuXHR0eXBlOiBHcmFwaFFMVHlwZXNbXCJGaWxlQ29udGVudFR5cGVcIl1cbn07XG5cdFtcIkZpbGVDb250ZW50UmVjZWl2ZWRNYWlsXCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiRmlsZUNvbnRlbnRSZWNlaXZlZE1haWxcIixcblx0cGFydHM6IEFycmF5PEdyYXBoUUxUeXBlc1tcIkZpbGVDb250ZW50UGFydFwiXT4sXG5cdGtleTogc3RyaW5nLFxuXHRtZDU6IHN0cmluZyxcblx0bWQ1RW5jcnlwdGVkOiBzdHJpbmcsXG5cdHRvdGFsU2l6ZTogR3JhcGhRTFR5cGVzW1wiQmlnSW50XCJdLFxuXHR0eXBlOiBHcmFwaFFMVHlwZXNbXCJGaWxlQ29udGVudFR5cGVcIl0sXG5cdHNlbmRlclB1YmxpY0tleTogc3RyaW5nXG59O1xuXHRbXCJGaWxlQ29udGVudFwiXTp7XG5cdF9fdHlwZW5hbWU6XCJGaWxlQ29udGVudENsb3VkXCIgfCBcIkZpbGVDb250ZW50UmVjZWl2ZWRNYWlsXCIgfCBcIkZpbGVDb250ZW50U2VudE1haWxcIlxuXHRbJy4uLm9uIEZpbGVDb250ZW50Q2xvdWQnXTogJ19fdW5pb24nICYgR3JhcGhRTFR5cGVzW1wiRmlsZUNvbnRlbnRDbG91ZFwiXTtcblx0WycuLi5vbiBGaWxlQ29udGVudFJlY2VpdmVkTWFpbCddOiAnX191bmlvbicgJiBHcmFwaFFMVHlwZXNbXCJGaWxlQ29udGVudFJlY2VpdmVkTWFpbFwiXTtcblx0WycuLi5vbiBGaWxlQ29udGVudFNlbnRNYWlsJ106ICdfX3VuaW9uJyAmIEdyYXBoUUxUeXBlc1tcIkZpbGVDb250ZW50U2VudE1haWxcIl07XG59O1xuXHRbXCJGaWxlUmVzcG9uc2VcIl06IHtcblx0X190eXBlbmFtZTogXCJGaWxlUmVzcG9uc2VcIixcblx0ZmlsZUlkOiBzdHJpbmcsXG5cdHBhcnRzOiBBcnJheTxHcmFwaFFMVHlwZXNbXCJGaWxlUGFydFJlc3BvbnNlXCJdPixcblx0ZmlsZVBhcnRTaXplOiBHcmFwaFFMVHlwZXNbXCJCaWdJbnRcIl1cbn07XG5cdFtcIkZpbGVQYXJ0UmVzcG9uc2VcIl06IHtcblx0X190eXBlbmFtZTogXCJGaWxlUGFydFJlc3BvbnNlXCIsXG5cdGZpZWxkczogR3JhcGhRTFR5cGVzW1wiSnNvblwiXSxcblx0dXJsOiBzdHJpbmcsXG5cdG9yZGVyOiBudW1iZXJcbn07XG5cdFtcIkZpbGVTaGFyZWRcIl06IHtcblx0X190eXBlbmFtZTogXCJGaWxlU2hhcmVkXCIsXG5cdHVzZXJJZDogc3RyaW5nLFxuXHRtZXNzYWdlPzogc3RyaW5nLFxuXHRhcHBJZDogc3RyaW5nLFxuXHRpZDogc3RyaW5nLFxuXHRmaWxlbmFtZTogc3RyaW5nLFxuXHRzaXplOiBudW1iZXIsXG5cdHNpemVCZWZvcmU6IG51bWJlclxufTtcblx0W1wiRmlsZVNoYXJlZENvbnRlbnRcIl06IHtcblx0X190eXBlbmFtZTogXCJGaWxlU2hhcmVkQ29udGVudFwiLFxuXHRvd25lcklkPzogc3RyaW5nLFxuXHRwdWJLZXk/OiBzdHJpbmcsXG5cdG1lc3NhZ2U/OiBzdHJpbmcsXG5cdGFwcElkOiBzdHJpbmcsXG5cdGlkOiBzdHJpbmcsXG5cdHR5cGU6IHN0cmluZyxcblx0ZmlsZW5hbWU6IHN0cmluZyxcblx0Y29udGVudFVybDogc3RyaW5nLFxuXHRrZXk6IHN0cmluZyxcblx0c2l6ZTogbnVtYmVyLFxuXHRzaXplQmVmb3JlOiBudW1iZXJcbn07XG5cdFtcIkNsb3VkTGltaXRzXCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiQ2xvdWRMaW1pdHNcIixcblx0c2l6ZTogR3JhcGhRTFR5cGVzW1wiQmlnSW50XCJdLFxuXHRtYXhTaXplPzogR3JhcGhRTFR5cGVzW1wiQmlnSW50XCJdLFxuXHRjb3VudDogR3JhcGhRTFR5cGVzW1wiQmlnSW50XCJdLFxuXHRtYXhDb3VudD86IEdyYXBoUUxUeXBlc1tcIkJpZ0ludFwiXVxufTtcblx0W1wiTWFpbExpbWl0c1ZhbHVlc1wiXToge1xuXHRfX3R5cGVuYW1lOiBcIk1haWxMaW1pdHNWYWx1ZXNcIixcblx0Y291bnQ6IEdyYXBoUUxUeXBlc1tcIkJpZ0ludFwiXSxcblx0bWF4Q291bnQ/OiBHcmFwaFFMVHlwZXNbXCJCaWdJbnRcIl0sXG5cdGZpbGVDb3VudDogR3JhcGhRTFR5cGVzW1wiQmlnSW50XCJdLFxuXHRtYXhGaWxlQ291bnQ/OiBHcmFwaFFMVHlwZXNbXCJCaWdJbnRcIl0sXG5cdGZpbGVTaXplOiBHcmFwaFFMVHlwZXNbXCJCaWdJbnRcIl0sXG5cdG1heEZpbGVTaXplPzogR3JhcGhRTFR5cGVzW1wiQmlnSW50XCJdXG59O1xuXHRbXCJVc2VyTWFpbExpbWl0c1wiXToge1xuXHRfX3R5cGVuYW1lOiBcIlVzZXJNYWlsTGltaXRzXCIsXG5cdHNlbnQ6IEdyYXBoUUxUeXBlc1tcIk1haWxMaW1pdHNWYWx1ZXNcIl0sXG5cdHJlY2VpdmVkOiBHcmFwaFFMVHlwZXNbXCJNYWlsTGltaXRzVmFsdWVzXCJdXG59O1xuXHRbXCJRdWVyeUxpbWl0c1wiXToge1xuXHRfX3R5cGVuYW1lOiBcIlF1ZXJ5TGltaXRzXCIsXG5cdGNsb3VkOiBHcmFwaFFMVHlwZXNbXCJDbG91ZExpbWl0c1wiXSxcblx0bWFpbDogR3JhcGhRTFR5cGVzW1wiVXNlck1haWxMaW1pdHNcIl1cbn07XG5cdFtcIkxpbWl0c1wiXToge1xuXHRfX3R5cGVuYW1lOiBcIkxpbWl0c1wiLFxuXHRkb3dubG9hZEJhbmR3aWR0aD86IEdyYXBoUUxUeXBlc1tcIkJpZ0ludFwiXSxcblx0ZG93bmxvYWRDb3VudD86IEdyYXBoUUxUeXBlc1tcIkJpZ0ludFwiXSxcblx0aGFyZEZpbGVDb3VudD86IEdyYXBoUUxUeXBlc1tcIkJpZ0ludFwiXSxcblx0aGFyZEZpbGVTaXplPzogR3JhcGhRTFR5cGVzW1wiQmlnSW50XCJdLFxuXHRwZXJGaWxlU2l6ZT86IEdyYXBoUUxUeXBlc1tcIkJpZ0ludFwiXSxcblx0cmVjZWl2ZWRNYWlsczogR3JhcGhRTFR5cGVzW1wiTWFpbExpbWl0c1wiXSxcblx0c2VudE1haWxzOiBHcmFwaFFMVHlwZXNbXCJNYWlsTGltaXRzXCJdLFxuXHR1cGxvYWRCYW5kd2lkdGg/OiBHcmFwaFFMVHlwZXNbXCJCaWdJbnRcIl0sXG5cdHVwbG9hZENvdW50PzogR3JhcGhRTFR5cGVzW1wiQmlnSW50XCJdXG59O1xuXHRbXCJNYWlsTGltaXRzXCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiTWFpbExpbWl0c1wiLFxuXHRjb3VudD86IEdyYXBoUUxUeXBlc1tcIkJpZ0ludFwiXSxcblx0ZmlsZUNvdW50PzogR3JhcGhRTFR5cGVzW1wiQmlnSW50XCJdLFxuXHRmaWxlU2l6ZT86IEdyYXBoUUxUeXBlc1tcIkJpZ0ludFwiXSxcblx0aGFyZENvdW50PzogR3JhcGhRTFR5cGVzW1wiQmlnSW50XCJdLFxuXHRoYXJkRmlsZUNvdW50PzogR3JhcGhRTFR5cGVzW1wiQmlnSW50XCJdLFxuXHRoYXJkRmlsZVNpemU/OiBHcmFwaFFMVHlwZXNbXCJCaWdJbnRcIl0sXG5cdHBlckZpbGVTaXplPzogR3JhcGhRTFR5cGVzW1wiQmlnSW50XCJdXG59O1xuXHRbXCJVc2VyXCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiVXNlclwiLFxuXHRpZDogc3RyaW5nLFxuXHRkZWxldGVkQXQ/OiBHcmFwaFFMVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0bGFuZzogR3JhcGhRTFR5cGVzW1wiTGFuZ1wiXSxcblx0cmVwb3J0U2VudDogQXJyYXk8R3JhcGhRTFR5cGVzW1wiUmVwb3J0XCJdPixcblx0Z29kRmF0aGVyPzogR3JhcGhRTFR5cGVzW1wiVXNlclwiXSxcblx0Z29kQ2hpbGRyZW46IEFycmF5PEdyYXBoUUxUeXBlc1tcIlVzZXJcIl0+LFxuXHRmaXJzdG5hbWU6IHN0cmluZyxcblx0bGFzdG5hbWU6IHN0cmluZyxcblx0ZW1haWw6IHN0cmluZyxcblx0cGhvbmU6IHN0cmluZyxcblx0bGFzdExvZ2luOiBHcmFwaFFMVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0cm9sZTogR3JhcGhRTFR5cGVzW1wiVXNlclJvbGVcIl0sXG5cdHNlc3Npb25zOiBBcnJheTxHcmFwaFFMVHlwZXNbXCJVc2VyU2Vzc2lvblwiXT4sXG5cdGNyZWF0ZWRBdDogR3JhcGhRTFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdHJlY2VpdmVkTWFpbHM6IEFycmF5PEdyYXBoUUxUeXBlc1tcIk1haWxcIl0+LFxuXHR3YWl0aW5nUmVjZWl2ZWRNYWlsczogQXJyYXk8R3JhcGhRTFR5cGVzW1wiV2FpdGluZ1JlY2VpdmVkTWFpbFwiXT4sXG5cdHNlbnRNYWlsczogQXJyYXk8R3JhcGhRTFR5cGVzW1wiTWFpbFwiXT4sXG5cdGRyYWZ0TWFpbHM6IEFycmF5PEdyYXBoUUxUeXBlc1tcIk1haWxcIl0+LFxuXHRhcHBTZXR0aW5ncz86IEdyYXBoUUxUeXBlc1tcIlVzZXJBcHBTZXR0aW5nc1wiXSxcblx0YXBwbGljYXRpb25zOiBBcnJheTxHcmFwaFFMVHlwZXNbXCJBcHBsaWNhdGlvbnNPblVzZXJzXCJdPixcblx0cHVibGljS2V5OiBzdHJpbmdcbn07XG5cdFtcIk1haWxcIl06IHtcblx0X190eXBlbmFtZTogXCJNYWlsXCIsXG5cdGlkOiBzdHJpbmcsXG5cdGFwcDogR3JhcGhRTFR5cGVzW1wiQXBwbGljYXRpb25cIl0sXG5cdGJvZHk6IHN0cmluZyxcblx0Y3JlYXRlZEF0OiBHcmFwaFFMVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0ZGVsZXRlZEF0PzogR3JhcGhRTFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdGZpbGVzOiBBcnJheTxHcmFwaFFMVHlwZXNbXCJGaWxlc09uTWFpbHNcIl0+LFxuXHRtYWlsSW50ZWdyaXR5PzogR3JhcGhRTFR5cGVzW1wiTWFpbEludGVncml0eVwiXSxcblx0bWFpbEludGVncml0eURyYWZ0PzogR3JhcGhRTFR5cGVzW1wiTWFpbEludGVncml0eURyYWZ0XCJdLFxuXHRvcGVuZWRBdD86IEdyYXBoUUxUeXBlc1tcIkRhdGVUaW1lXCJdLFxuXHRyZWNpcGllbnQ6IEdyYXBoUUxUeXBlc1tcIlVzZXJcIl0sXG5cdHNlbmRlcjogR3JhcGhRTFR5cGVzW1wiVXNlclwiXSxcblx0c3ViamVjdDogc3RyaW5nLFxuXHR0eXBlOiBHcmFwaFFMVHlwZXNbXCJNYWlsVHlwZVwiXSxcblx0cmVjaXBpZW50czogQXJyYXk8R3JhcGhRTFR5cGVzW1wiVXNlclwiXT5cbn07XG5cdFtcIk1haWxJbnRlZ3JpdHlcIl06IHtcblx0X190eXBlbmFtZTogXCJNYWlsSW50ZWdyaXR5XCIsXG5cdGlkOiBzdHJpbmcsXG5cdGhhc2g6IHN0cmluZyxcblx0aGFzaEtleTogc3RyaW5nLFxuXHRhbnN3ZXJzOiBBcnJheTxHcmFwaFFMVHlwZXNbXCJNYWlsSW50ZWdyaXR5XCJdPixcblx0YXBwOiBHcmFwaFFMVHlwZXNbXCJBcHBsaWNhdGlvblwiXSxcblx0bWFpbHM6IEFycmF5PEdyYXBoUUxUeXBlc1tcIk1haWxcIl0+LFxuXHRyZWNpcGllbnRzOiBBcnJheTxHcmFwaFFMVHlwZXNbXCJVc2VyXCJdPixcblx0dGVtcG9yYXJ5UmVjaXBpZW50czogQXJyYXk8R3JhcGhRTFR5cGVzW1wiVGVtcG9yYXJ5VXNlclwiXT4sXG5cdHJlcGx5VG8/OiBHcmFwaFFMVHlwZXNbXCJNYWlsSW50ZWdyaXR5XCJdXG59O1xuXHRbXCJGaWxlc09uTWFpbHNcIl06IHtcblx0X190eXBlbmFtZTogXCJGaWxlc09uTWFpbHNcIixcblx0ZmlsZTogR3JhcGhRTFR5cGVzW1wiRmlsZVwiXSxcblx0ZmlsZUtleTogc3RyaW5nLFxuXHRmaWxlbmFtZTogc3RyaW5nLFxuXHRtYWlsOiBHcmFwaFFMVHlwZXNbXCJNYWlsXCJdXG59O1xuXHRbXCJGaWxlc09uVXNlcnNPbkFwcGxpY2F0aW9uc1wiXToge1xuXHRfX3R5cGVuYW1lOiBcIkZpbGVzT25Vc2Vyc09uQXBwbGljYXRpb25zXCIsXG5cdGZpbGU6IEdyYXBoUUxUeXBlc1tcIkZpbGVcIl0sXG5cdHVzZXJBcHA6IEdyYXBoUUxUeXBlc1tcIkFwcGxpY2F0aW9uc09uVXNlcnNcIl0sXG5cdC8qKiBFbmNyeXB0ZWQgd2l0aCBVc2VyQXBwIGtleXMgKi9cblx0a2V5OiBzdHJpbmdcbn07XG5cdFtcIlZGaWxlXCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiVkZpbGVcIixcblx0aWQ6IHN0cmluZyxcblx0aXNGYXZvcml0ZTogYm9vbGVhbixcblx0Y3JlYXRlZEF0OiBHcmFwaFFMVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0ZGVsZXRlZEF0PzogR3JhcGhRTFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdGZpbGVuYW1lOiBzdHJpbmcsXG5cdHVzZXJBcHBzOiBBcnJheTxHcmFwaFFMVHlwZXNbXCJWRmlsZXNPblVzZXJzT25BcHBsaWNhdGlvbnNcIl0+LFxuXHRjcmVhdGVkQnk6IEdyYXBoUUxUeXBlc1tcIkFwcGxpY2F0aW9uc09uVXNlcnNcIl0sXG5cdHVzZXJBcHA/OiBHcmFwaFFMVHlwZXNbXCJWRmlsZXNPblVzZXJzT25BcHBsaWNhdGlvbnNcIl0sXG5cdGZvbGRlcjogR3JhcGhRTFR5cGVzW1wiRm9sZGVyXCJdLFxuXHRoaXN0b3J5OiBBcnJheTxHcmFwaFFMVHlwZXNbXCJGaWxlXCJdPixcblx0Y3VycmVudD86IEdyYXBoUUxUeXBlc1tcIkZpbGVcIl0sXG5cdHVwZGF0ZWRBdDogR3JhcGhRTFR5cGVzW1wiRGF0ZVRpbWVcIl1cbn07XG5cdFtcIkZvbGRlckJyZWFkY3J1bWJJdGVtXCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiRm9sZGVyQnJlYWRjcnVtYkl0ZW1cIixcblx0aWQ6IHN0cmluZyxcblx0bmFtZTogc3RyaW5nLFxuXHRwdWJLZXk6IHN0cmluZyxcblx0bmFtZUtleT86IHN0cmluZ1xufTtcblx0W1wiRm9sZGVyXCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiRm9sZGVyXCIsXG5cdGlkOiBzdHJpbmcsXG5cdGlzRmF2b3JpdGU6IGJvb2xlYW4sXG5cdGNyZWF0ZWRBdDogR3JhcGhRTFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdGRlbGV0ZWRBdD86IEdyYXBoUUxUeXBlc1tcIkRhdGVUaW1lXCJdLFxuXHR1cGRhdGVkQXQ6IEdyYXBoUUxUeXBlc1tcIkRhdGVUaW1lXCJdLFxuXHRjcmVhdGVkQnk6IEdyYXBoUUxUeXBlc1tcIkFwcGxpY2F0aW9uc09uVXNlcnNcIl0sXG5cdHVzZXJBcHBzOiBBcnJheTxHcmFwaFFMVHlwZXNbXCJGb2xkZXJzT25Vc2Vyc09uQXBwbGljYXRpb25zXCJdPixcblx0dXNlckFwcD86IEdyYXBoUUxUeXBlc1tcIkZvbGRlcnNPblVzZXJzT25BcHBsaWNhdGlvbnNcIl0sXG5cdG5hbWU6IHN0cmluZyxcblx0cGFyZW50Rm9sZGVyPzogR3JhcGhRTFR5cGVzW1wiRm9sZGVyXCJdLFxuXHRzdWJmb2xkZXJzOiBBcnJheTxHcmFwaFFMVHlwZXNbXCJGb2xkZXJcIl0+LFxuXHR2RmlsZXM6IEFycmF5PEdyYXBoUUxUeXBlc1tcIlZGaWxlXCJdPixcblx0YnJlYWRjcnVtYjogQXJyYXk8R3JhcGhRTFR5cGVzW1wiRm9sZGVyQnJlYWRjcnVtYkl0ZW1cIl0+XG59O1xuXHRbXCJBcHBsaWNhdGlvblwiXToge1xuXHRfX3R5cGVuYW1lOiBcIkFwcGxpY2F0aW9uXCIsXG5cdGlkOiBzdHJpbmcsXG5cdG5hbWU6IHN0cmluZ1xufTtcblx0W1wiQXBwbGljYXRpb25zT25Vc2Vyc1wiXToge1xuXHRfX3R5cGVuYW1lOiBcIkFwcGxpY2F0aW9uc09uVXNlcnNcIixcblx0ZmFrZVVzZXJJZDogc3RyaW5nLFxuXHRrZXlQYWlyPzogR3JhcGhRTFR5cGVzW1wiQXBwS2V5UGFpclwiXSxcblx0c2Vzc2lvbnM6IEFycmF5PEdyYXBoUUxUeXBlc1tcIkFwcFNlc3Npb25cIl0+LFxuXHRhcHA6IEdyYXBoUUxUeXBlc1tcIkFwcGxpY2F0aW9uXCJdLFxuXHR1c2VyOiBHcmFwaFFMVHlwZXNbXCJVc2VyXCJdLFxuXHRmb2xkZXJzOiBBcnJheTxHcmFwaFFMVHlwZXNbXCJGb2xkZXJzT25Vc2Vyc09uQXBwbGljYXRpb25zXCJdPixcblx0c2V0dGluZ3M6IEdyYXBoUUxUeXBlc1tcIlVzZXJBcHBTZXR0aW5nc1wiXVxufTtcblx0W1wiQXBwS2V5UGFpclwiXToge1xuXHRfX3R5cGVuYW1lOiBcIkFwcEtleVBhaXJcIixcblx0cHViOiBzdHJpbmdcbn07XG5cdFtcIkZvbGRlclNpemVcIl06IHtcblx0X190eXBlbmFtZTogXCJGb2xkZXJTaXplXCIsXG5cdHNpemU6IEdyYXBoUUxUeXBlc1tcIkJpZ0ludFwiXSxcblx0c2l6ZUJlZm9yZTogR3JhcGhRTFR5cGVzW1wiQmlnSW50XCJdXG59O1xuXHRbXCJVc2VyU2Vzc2lvblwiXToge1xuXHRfX3R5cGVuYW1lOiBcIlVzZXJTZXNzaW9uXCIsXG5cdGlkOiBzdHJpbmcsXG5cdGFwcFNlc3Npb25zOiBBcnJheTxHcmFwaFFMVHlwZXNbXCJBcHBTZXNzaW9uXCJdPixcblx0bGFzdEFjdGl2aXR5PzogR3JhcGhRTFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdHVzZXJBZ2VudD86IHN0cmluZyxcblx0aXA/OiBzdHJpbmcsXG5cdGNpdHk/OiBzdHJpbmcsXG5cdGNvdW50cnk/OiBzdHJpbmcsXG5cdGNyZWF0ZWRBdDogR3JhcGhRTFR5cGVzW1wiRGF0ZVRpbWVcIl1cbn07XG5cdFtcIkFwcFNlc3Npb25cIl06IHtcblx0X190eXBlbmFtZTogXCJBcHBTZXNzaW9uXCIsXG5cdGlkOiBzdHJpbmcsXG5cdGxhc3RBY3Rpdml0eT86IEdyYXBoUUxUeXBlc1tcIkRhdGVUaW1lXCJdLFxuXHR1c2VyQWdlbnQ/OiBzdHJpbmcsXG5cdGlwPzogc3RyaW5nLFxuXHRjaXR5Pzogc3RyaW5nLFxuXHRjb3VudHJ5Pzogc3RyaW5nLFxuXHR1c2VyU2Vzc2lvbjogR3JhcGhRTFR5cGVzW1wiVXNlclNlc3Npb25cIl0sXG5cdHVzZXJBcHA/OiBHcmFwaFFMVHlwZXNbXCJBcHBsaWNhdGlvbnNPblVzZXJzXCJdLFxuXHRjcmVhdGVkQXQ6IEdyYXBoUUxUeXBlc1tcIkRhdGVUaW1lXCJdXG59O1xuXHRbXCJVc2VyQXBwU2V0dGluZ3NcIl06IHtcblx0X190eXBlbmFtZTogXCJVc2VyQXBwU2V0dGluZ3NcIixcblx0aWQ6IHN0cmluZyxcblx0Y2xvdWRGaWxlRGF5c0ZvckRlbGV0ZTogbnVtYmVyLFxuXHRjbG91ZEZvbGRlckRheXNGb3JEZWxldGU6IG51bWJlcixcblx0aGlzdG9yeUZpbGVEYXlzRm9yRGVsZXRlPzogbnVtYmVyLFxuXHRoaXN0b3J5TWF4RmlsZUNvdW50OiBudW1iZXIsXG5cdGF1dG9EaXNjb25uZWN0RGVsYXk/OiBudW1iZXJcbn07XG5cdFtcIk1haWxGaWxlSW5wdXRcIl06IHtcblx0XHRpZDogc3RyaW5nLFxuXHRuYW1lOiBzdHJpbmcsXG5cdGZpbGVLZXk6IHN0cmluZ1xufTtcblx0W1wiTWFpbFJlY2lwaWVudElucHV0XCJdOiB7XG5cdFx0Ym9keTogc3RyaW5nLFxuXHRzdWJqZWN0OiBzdHJpbmcsXG5cdHJlY2lwaWVudElkOiBzdHJpbmcsXG5cdGZpbGVzOiBBcnJheTxHcmFwaFFMVHlwZXNbXCJNYWlsRmlsZUlucHV0XCJdPlxufTtcblx0W1wiU2hhcmVGaWxlS2V5SW5wdXRcIl06IHtcblx0XHRpZDogc3RyaW5nLFxuXHRrZXk6IHN0cmluZ1xufTtcblx0W1wiTmFtZUtleUlucHV0XCJdOiB7XG5cdFx0aWQ6IHN0cmluZyxcblx0bmFtZUtleTogc3RyaW5nLFxuXHRmaWxlczogQXJyYXk8R3JhcGhRTFR5cGVzW1wiU2hhcmVGaWxlS2V5SW5wdXRcIl0+XG59O1xuXHRbXCJOYW1lS2V5SW5wdXRGb2xkZXJzXCJdOiB7XG5cdFx0aWQ6IHN0cmluZyxcblx0bmFtZUtleTogc3RyaW5nXG59O1xuXHRbXCJTaGFyZUZvbGRlcnNJbnB1dFwiXToge1xuXHRcdGZvbGRlcnM6IEFycmF5PEdyYXBoUUxUeXBlc1tcIk5hbWVLZXlJbnB1dEZvbGRlcnNcIl0+LFxuXHR2RmlsZXM6IEFycmF5PEdyYXBoUUxUeXBlc1tcIk5hbWVLZXlJbnB1dFwiXT5cbn07XG5cdFtcIlNoYXJlRmlsZUluSGlzdG9yeUlucHV0XCJdOiB7XG5cdFx0ZmlsZUlkOiBzdHJpbmcsXG5cdHVzZXJzOiBBcnJheTxHcmFwaFFMVHlwZXNbXCJTaGFyZUZpbGVLZXlJbnB1dFwiXT5cbn07XG5cdFtcIlBheUlucHV0VHlwZVwiXTogUGF5SW5wdXRUeXBlO1xuXHRbXCJQYXlJbnB1dFwiXToge1xuXHRcdHR5cGU6IEdyYXBoUUxUeXBlc1tcIlBheUlucHV0VHlwZVwiXSxcblx0dG9rZW46IHN0cmluZyxcblx0Zmlyc3ROYW1lOiBzdHJpbmcsXG5cdGxhc3ROYW1lOiBzdHJpbmcsXG5cdHN0cmVldDogc3RyaW5nLFxuXHRwb3N0YWxDb2RlOiBzdHJpbmcsXG5cdGNpdHk6IHN0cmluZyxcblx0Y291bnRyeTogc3RyaW5nLFxuXHRudW1iZXI6IHN0cmluZyxcblx0bW9udGg6IHN0cmluZyxcblx0eWVhcjogc3RyaW5nLFxuXHRjdnY6IHN0cmluZ1xufTtcblx0W1wiV2FpdGluZ1JlY2VpdmVkTWFpbFwiXToge1xuXHRfX3R5cGVuYW1lOiBcIldhaXRpbmdSZWNlaXZlZE1haWxcIixcblx0c2VuZGVyOiBHcmFwaFFMVHlwZXNbXCJVc2VyXCJdLFxuXHRkYXRlOiBHcmFwaFFMVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0cmVjaXBpZW50czogQXJyYXk8R3JhcGhRTFR5cGVzW1wiVXNlclwiXT4sXG5cdHRlbXBvcmFyeVJlY2lwaWVudHM6IEFycmF5PEdyYXBoUUxUeXBlc1tcIlRlbXBvcmFyeVVzZXJcIl0+LFxuXHRhdHRhY2htZW50c0NvdW50OiBudW1iZXJcbn07XG5cdFtcIlRlbXBvcmFyeVVzZXJcIl06IHtcblx0X190eXBlbmFtZTogXCJUZW1wb3JhcnlVc2VyXCIsXG5cdGlkOiBzdHJpbmcsXG5cdG1haWxzOiBBcnJheTxHcmFwaFFMVHlwZXNbXCJNYWlsSW50ZWdyaXR5XCJdPixcblx0ZHJhZnRNYWlsczogQXJyYXk8R3JhcGhRTFR5cGVzW1wiTWFpbEludGVncml0eURyYWZ0XCJdPixcblx0ZW1haWw/OiBzdHJpbmdcbn07XG5cdFtcIk1haWxJbnRlZ3JpdHlEcmFmdFwiXToge1xuXHRfX3R5cGVuYW1lOiBcIk1haWxJbnRlZ3JpdHlEcmFmdFwiLFxuXHRpZDogc3RyaW5nLFxuXHRoYXNoOiBzdHJpbmcsXG5cdGhhc2hLZXk6IHN0cmluZyxcblx0YXBwOiBHcmFwaFFMVHlwZXNbXCJBcHBsaWNhdGlvblwiXSxcblx0bWFpbDogR3JhcGhRTFR5cGVzW1wiTWFpbFwiXSxcblx0cmVjaXBpZW50czogQXJyYXk8R3JhcGhRTFR5cGVzW1wiVXNlclwiXT4sXG5cdHRlbXBvcmFyeVJlY2lwaWVudHM6IEFycmF5PEdyYXBoUUxUeXBlc1tcIlRlbXBvcmFyeVVzZXJcIl0+LFxuXHRyZXBseVRvPzogR3JhcGhRTFR5cGVzW1wiTWFpbEludGVncml0eVwiXVxufTtcblx0W1wiRmFxXCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiRmFxXCIsXG5cdGlkOiBzdHJpbmcsXG5cdG9yZGVyOiBudW1iZXIsXG5cdGVudHJpZXM6IEFycmF5PEdyYXBoUUxUeXBlc1tcIkZhcUVudHJ5XCJdPlxufTtcblx0W1wiRmFxRW50cnlcIl06IHtcblx0X190eXBlbmFtZTogXCJGYXFFbnRyeVwiLFxuXHRpZDogc3RyaW5nLFxuXHRsYW5nOiBHcmFwaFFMVHlwZXNbXCJMYW5nXCJdLFxuXHRxdWVzdGlvbjogc3RyaW5nLFxuXHRhbnN3ZXI6IHN0cmluZyxcblx0ZmFxOiBHcmFwaFFMVHlwZXNbXCJGYXFcIl1cbn07XG5cdFtcIlBsYW5cIl06IHtcblx0X190eXBlbmFtZTogXCJQbGFuXCIsXG5cdGlkOiBzdHJpbmcsXG5cdGtpbmQ6IEdyYXBoUUxUeXBlc1tcIlBsYW5LaW5kXCJdLFxuXHRjb2RlczogQXJyYXk8c3RyaW5nPixcblx0bGltaXRzOiBHcmFwaFFMVHlwZXNbXCJMaW1pdHNcIl1cbn07XG5cdFtcIlJlcG9ydFwiXToge1xuXHRfX3R5cGVuYW1lOiBcIlJlcG9ydFwiLFxuXHRpZDogc3RyaW5nLFxuXHR1c2VyOiBHcmFwaFFMVHlwZXNbXCJVc2VyXCJdLFxuXHRyZXBvcnRlZFVzZXI6IEdyYXBoUUxUeXBlc1tcIlVzZXJcIl0sXG5cdGN1c3RvbU1lc3NhZ2U/OiBzdHJpbmdcbn07XG5cdFtcIkZvbGRlcnNPblVzZXJzT25BcHBsaWNhdGlvbnNcIl06IHtcblx0X190eXBlbmFtZTogXCJGb2xkZXJzT25Vc2Vyc09uQXBwbGljYXRpb25zXCIsXG5cdGZvbGRlcjogR3JhcGhRTFR5cGVzW1wiRm9sZGVyXCJdLFxuXHR1c2VyQXBwOiBHcmFwaFFMVHlwZXNbXCJBcHBsaWNhdGlvbnNPblVzZXJzXCJdLFxuXHRyaWdodHM6IEdyYXBoUUxUeXBlc1tcIlJpZ2h0c1wiXSxcblx0bmFtZUtleT86IHN0cmluZyxcblx0aXNSb290OiBib29sZWFuXG59O1xuXHRbXCJWRmlsZXNPblVzZXJzT25BcHBsaWNhdGlvbnNcIl06IHtcblx0X190eXBlbmFtZTogXCJWRmlsZXNPblVzZXJzT25BcHBsaWNhdGlvbnNcIixcblx0dkZpbGU6IEdyYXBoUUxUeXBlc1tcIlZGaWxlXCJdLFxuXHR1c2VyQXBwOiBHcmFwaFFMVHlwZXNbXCJBcHBsaWNhdGlvbnNPblVzZXJzXCJdLFxuXHRyaWdodHM6IEdyYXBoUUxUeXBlc1tcIlJpZ2h0c1wiXSxcblx0bmFtZUtleTogc3RyaW5nLFxuXHRpc1Jvb3Q6IGJvb2xlYW5cbn07XG5cdFtcIkZhcUl0ZW1cIl06IHtcblx0X190eXBlbmFtZTogXCJGYXFJdGVtXCIsXG5cdG9yZGVyOiBudW1iZXIsXG5cdHF1ZXN0aW9uOiBzdHJpbmcsXG5cdGFuc3dlcjogc3RyaW5nXG59O1xuXHRbXCJCbG9nXCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiQmxvZ1wiLFxuXHRpZDogc3RyaW5nLFxuXHRvcmRlcjogbnVtYmVyLFxuXHRlbnRyaWVzOiBBcnJheTxHcmFwaFFMVHlwZXNbXCJCbG9nRW50cnlcIl0+XG59O1xuXHRbXCJCbG9nRW50cnlcIl06IHtcblx0X190eXBlbmFtZTogXCJCbG9nRW50cnlcIixcblx0aWQ6IHN0cmluZyxcblx0bGFuZzogR3JhcGhRTFR5cGVzW1wiTGFuZ1wiXSxcblx0YXV0aG9yOiBzdHJpbmcsXG5cdGJvZHk6IHN0cmluZyxcblx0ZGF0ZTogR3JhcGhRTFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdGltYWdlOiBzdHJpbmcsXG5cdHN1bW1hcnk6IHN0cmluZyxcblx0dGl0bGU6IHN0cmluZ1xufTtcblx0W1wiQmxvZ0l0ZW1cIl06IHtcblx0X190eXBlbmFtZTogXCJCbG9nSXRlbVwiLFxuXHRpZDogc3RyaW5nLFxuXHRibG9nSWQ6IHN0cmluZyxcblx0b3JkZXI6IG51bWJlcixcblx0dGl0bGU6IHN0cmluZyxcblx0Ym9keTogc3RyaW5nLFxuXHRhdXRob3I6IHN0cmluZyxcblx0aW1hZ2U6IHN0cmluZyxcblx0aW1hZ2VBbHQ6IHN0cmluZyxcblx0c3VtbWFyeTogc3RyaW5nLFxuXHRkYXRlOiBHcmFwaFFMVHlwZXNbXCJEYXRlVGltZVwiXVxufTtcblx0W1wiVXNlckFwcE5vdGlmaWNhdGlvbnNcIl06IHtcblx0X190eXBlbmFtZTogXCJVc2VyQXBwTm90aWZpY2F0aW9uc1wiLFxuXHRpZDogc3RyaW5nLFxuXHRlbmFibGVBbGw6IGJvb2xlYW4sXG5cdG1haWw6IGJvb2xlYW4sXG5cdGNsb3VkOiBib29sZWFuLFxuXHRkaXNhYmxlQWxsVW50aWw/OiBHcmFwaFFMVHlwZXNbXCJEYXRlVGltZVwiXVxufTtcblx0W1wiUmVjdXJseUludm9pY2VzXCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiUmVjdXJseUludm9pY2VzXCIsXG5cdHBkZjogc3RyaW5nLFxuXHRkYXRlOiBHcmFwaFFMVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0ZHVlOiBHcmFwaFFMVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0c3RhdHVzOiBzdHJpbmcsXG5cdHRvdGFsOiBudW1iZXIsXG5cdG5hbWU6IHN0cmluZyxcblx0Y3VycmVuY3k6IHN0cmluZ1xufTtcblx0W1wiUmVjdXJseVN1YnNjcmlwdGlvblwiXToge1xuXHRfX3R5cGVuYW1lOiBcIlJlY3VybHlTdWJzY3JpcHRpb25cIixcblx0YXV0b3JlbmV3OiBib29sZWFuLFxuXHRhY3RpdmF0ZWRBdD86IEdyYXBoUUxUeXBlc1tcIkRhdGVUaW1lXCJdLFxuXHRjdXJyZW50UGVyaW9kRW5kc0F0PzogR3JhcGhRTFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdGN1cnJlbnRQZXJpb2RTdGFydGVkQXQ/OiBHcmFwaFFMVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0Y2FuY2VsZWRBdD86IEdyYXBoUUxUeXBlc1tcIkRhdGVUaW1lXCJdLFxuXHRjcmVhdGVkQXQ/OiBHcmFwaFFMVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0ZXhwaXJlc0F0PzogR3JhcGhRTFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdHBhdXNlZEF0PzogR3JhcGhRTFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdHRyaWFsRW5kc0F0PzogR3JhcGhRTFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdHRyaWFsU3RhcnRlZEF0PzogR3JhcGhRTFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdHVwZGF0ZWRBdD86IEdyYXBoUUxUeXBlc1tcIkRhdGVUaW1lXCJdLFxuXHRzdGF0ZTogc3RyaW5nLFxuXHRjb2xsZWN0aW9uTWV0aG9kOiBzdHJpbmcsXG5cdHBsYW4/OiBzdHJpbmcsXG5cdHBsYW5Db2RlPzogc3RyaW5nLFxuXHR0b3RhbD86IG51bWJlclxufTtcblx0W1wiUGF5bWVudEluZm9zXCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiUGF5bWVudEluZm9zXCIsXG5cdGhvc3RlZFVybDogc3RyaW5nLFxuXHRjdXJyZW50U3Vic2NyaXB0aW9uOiBHcmFwaFFMVHlwZXNbXCJSZWN1cmx5U3Vic2NyaXB0aW9uXCJdLFxuXHRpbnZvaWNlczogQXJyYXk8R3JhcGhRTFR5cGVzW1wiUmVjdXJseUludm9pY2VzXCJdPlxufTtcblx0W1wiU2hhcmVGb2xkZXJSZXNwb25zZVwiXToge1xuXHRfX3R5cGVuYW1lOiBcIlNoYXJlRm9sZGVyUmVzcG9uc2VcIixcblx0Zm9sZGVyczogQXJyYXk8c3RyaW5nPixcblx0dkZpbGVzOiBBcnJheTxzdHJpbmc+XG59O1xuXHRbXCJRdWVyeVwiXToge1xuXHRfX3R5cGVuYW1lOiBcIlF1ZXJ5XCIsXG5cdHRlc3Q/OiBib29sZWFuLFxuXHRsaW1pdHM/OiBHcmFwaFFMVHlwZXNbXCJRdWVyeUxpbWl0c1wiXSxcblx0dXNlcj86IEdyYXBoUUxUeXBlc1tcIlVzZXJcIl0sXG5cdGRiQ29uZmlnPzogR3JhcGhRTFR5cGVzW1wiSnNvblwiXSxcblx0ZGJHZXQ/OiBHcmFwaFFMVHlwZXNbXCJKc29uXCJdLFxuXHRkYlNlYXJjaDogQXJyYXk8R3JhcGhRTFR5cGVzW1wiSnNvblwiXT4sXG5cdGZpbGVDb250ZW50PzogR3JhcGhRTFR5cGVzW1wiRmlsZUNvbnRlbnRcIl0sXG5cdGZpbGVzU2hhcmVkV2l0aE1lOiBBcnJheTxHcmFwaFFMVHlwZXNbXCJGaWxlU2hhcmVkQ29udGVudFwiXT4sXG5cdHZGaWxlc1NoYXJlZFdpdGhNZTogQXJyYXk8R3JhcGhRTFR5cGVzW1wiVkZpbGVcIl0+LFxuXHRmb2xkZXJzU2hhcmVkV2l0aE1lOiBBcnJheTxHcmFwaFFMVHlwZXNbXCJGb2xkZXJcIl0+LFxuXHRmb2xkZXJTaXplPzogR3JhcGhRTFR5cGVzW1wiRm9sZGVyU2l6ZVwiXSxcblx0Zm9sZGVyPzogR3JhcGhRTFR5cGVzW1wiRm9sZGVyXCJdLFxuXHR2RmlsZT86IEdyYXBoUUxUeXBlc1tcIlZGaWxlXCJdLFxuXHRmaWxlPzogR3JhcGhRTFR5cGVzW1wiRmlsZVwiXSxcblx0ZmFxOiBBcnJheTxHcmFwaFFMVHlwZXNbXCJGYXFJdGVtXCJdPixcblx0cGF5bWVudEluZm9zPzogR3JhcGhRTFR5cGVzW1wiUGF5bWVudEluZm9zXCJdLFxuXHRwbGFuczogQXJyYXk8R3JhcGhRTFR5cGVzW1wiUGxhblwiXT4sXG5cdHNoYXJlZEZvbGRlcnM6IEFycmF5PEdyYXBoUUxUeXBlc1tcIkZvbGRlclwiXT4sXG5cdHNoYXJlZFZGaWxlczogQXJyYXk8R3JhcGhRTFR5cGVzW1wiVkZpbGVcIl0+LFxuXHRibG9nOiBBcnJheTxHcmFwaFFMVHlwZXNbXCJCbG9nSXRlbVwiXT4sXG5cdGRlbGV0ZWRGb2xkZXJzOiBBcnJheTxHcmFwaFFMVHlwZXNbXCJGb2xkZXJcIl0+LFxuXHRkZWxldGVkVkZpbGVzOiBBcnJheTxHcmFwaFFMVHlwZXNbXCJWRmlsZVwiXT4sXG5cdG1haWw/OiBHcmFwaFFMVHlwZXNbXCJNYWlsXCJdLFxuXHRkZWxldGVkTWFpbHM6IEFycmF5PEdyYXBoUUxUeXBlc1tcIk1haWxcIl0+XG59O1xuXHRbXCJNdXRhdGlvblwiXToge1xuXHRfX3R5cGVuYW1lOiBcIk11dGF0aW9uXCIsXG5cdGNyZWF0ZUFwcGxpY2F0aW9uPzogc3RyaW5nLFxuXHRkYlNldD86IEdyYXBoUUxUeXBlc1tcIkpzb25cIl0sXG5cdGRiQ29uZmlnOiBHcmFwaFFMVHlwZXNbXCJKc29uXCJdLFxuXHRzaGFyZVZGaWxlPzogYm9vbGVhbixcblx0c2hhcmVGb2xkZXI6IEdyYXBoUUxUeXBlc1tcIlNoYXJlRm9sZGVyUmVzcG9uc2VcIl0sXG5cdHNoYXJlRm9sZGVyRmluaXNoPzogYm9vbGVhbixcblx0dXBkYXRlRmlsZT86IEdyYXBoUUxUeXBlc1tcIlZGaWxlXCJdLFxuXHR1cGRhdGVQcm9maWxlPzogR3JhcGhRTFR5cGVzW1wiVXNlclwiXSxcblx0dXBsb2FkQW5vbnltb3VzPzogR3JhcGhRTFR5cGVzW1wiRmlsZVJlc3BvbnNlXCJdLFxuXHR1cGxvYWRGaWxlPzogR3JhcGhRTFR5cGVzW1wiRmlsZVJlc3BvbnNlXCJdLFxuXHRjcmVhdGVGb2xkZXI/OiBHcmFwaFFMVHlwZXNbXCJGb2xkZXJcIl0sXG5cdG1vdmVGb2xkZXJzPzogYm9vbGVhbixcblx0ZGVsZXRlRm9sZGVyPzogYm9vbGVhbixcblx0bW92ZUZpbGVzPzogYm9vbGVhbixcblx0dXBkYXRlRm9sZGVyPzogR3JhcGhRTFR5cGVzW1wiRm9sZGVyXCJdLFxuXHRkZWxldGVWRmlsZTogYm9vbGVhbixcblx0Y3JlYXRlRHJhZnRNYWlsPzogR3JhcGhRTFR5cGVzW1wiTWFpbFwiXSxcblx0c2VuZERyYWZ0TWFpbD86IGJvb2xlYW4sXG5cdHJlYWRNYWlsPzogYm9vbGVhbixcblx0dW5yZWFkTWFpbD86IGJvb2xlYW4sXG5cdHVwZGF0ZUFwcFNldHRpbmdzOiBHcmFwaFFMVHlwZXNbXCJVc2VyQXBwU2V0dGluZ3NcIl0sXG5cdHVwbG9hZEZpbGVFbmQ/OiBzdHJpbmcsXG5cdGxvZ291dD86IGJvb2xlYW4sXG5cdGFkZEZpbGVUb0hpc3Rvcnk6IEdyYXBoUUxUeXBlc1tcIlZGaWxlXCJdLFxuXHRzZW5kT25lTWFpbD86IGJvb2xlYW4sXG5cdGRlbGV0ZURyYWZ0TWFpbD86IGJvb2xlYW4sXG5cdHVwZGF0ZURyYWZ0TWFpbD86IEdyYXBoUUxUeXBlc1tcIk1haWxcIl0sXG5cdGRlbGV0ZVVzZXI/OiBib29sZWFuLFxuXHRwYXk6IGJvb2xlYW4sXG5cdGNhbmNlbFBheW1lbnQ/OiBib29sZWFuLFxuXHRzZW5kUmVwb3J0PzogR3JhcGhRTFR5cGVzW1wiUmVwb3J0XCJdLFxuXHRzYXZlSW5DbG91ZDogR3JhcGhRTFR5cGVzW1wiVkZpbGVcIl0sXG5cdGRlbGV0ZVZGaWxlU2hhcmluZzogYm9vbGVhbixcblx0ZGVsZXRlRm9sZGVyU2hhcmluZzogYm9vbGVhbixcblx0ZGVsZXRlTWFpbDogYm9vbGVhbixcblx0ZGVsZXRlRmlsZTogYm9vbGVhbixcblx0c2hhcmVGaWxlSW5IaXN0b3J5OiBib29sZWFuLFxuXHRyZWNvdmVyRmlsZTogYm9vbGVhbixcblx0cmVjb3Zlck1haWw6IGJvb2xlYW4sXG5cdHJlY292ZXJGb2xkZXI/OiBib29sZWFuLFxuXHRkdXBsaWNhdGVWRmlsZTogYm9vbGVhbixcblx0ZGVsZXRlRm9sZGVyQ2xvdWRUcmFzaD86IGJvb2xlYW4sXG5cdGRlbGV0ZVZGaWxlQ2xvdWRUcmFzaD86IGJvb2xlYW4sXG5cdGRlbGV0ZU1haWxUcmFzaDogYm9vbGVhbixcblx0ZW1wdHlDbG91ZFRyYXNoPzogYm9vbGVhbixcblx0ZW1wdHlNYWlsVHJhc2g/OiBib29sZWFuLFxuXHR1cGxvYWRGaWxlUGFydEVuZDogYm9vbGVhbixcblx0dXBkYXRlQXBwTm90aWZpY2F0aW9ucz86IEdyYXBoUUxUeXBlc1tcIlVzZXJBcHBOb3RpZmljYXRpb25zXCJdXG59XG4gICAgfVxuZXhwb3J0IGVudW0gTGFuZyB7XG5cdGZyID0gXCJmclwiLFxuXHRlbiA9IFwiZW5cIixcblx0aXQgPSBcIml0XCIsXG5cdGRlID0gXCJkZVwiLFxuXHRwdCA9IFwicHRcIixcblx0amEgPSBcImphXCIsXG5cdGVzID0gXCJlc1wiLFxuXHRubCA9IFwibmxcIixcblx0cGwgPSBcInBsXCIsXG5cdHJ1ID0gXCJydVwiLFxuXHR6aCA9IFwiemhcIixcblx0YXIgPSBcImFyXCIsXG5cdGhlID0gXCJoZVwiLFxuXHRoaSA9IFwiaGlcIixcblx0a28gPSBcImtvXCJcbn1cbmV4cG9ydCBlbnVtIFBsYW5LaW5kIHtcblx0ZnJlZSA9IFwiZnJlZVwiLFxuXHRiYXNpYyA9IFwiYmFzaWNcIixcblx0YWR2YW5jZWQgPSBcImFkdmFuY2VkXCIsXG5cdHBybyA9IFwicHJvXCJcbn1cbmV4cG9ydCBlbnVtIFVzZXJSb2xlIHtcblx0dXNlciA9IFwidXNlclwiLFxuXHRhZG1pbiA9IFwiYWRtaW5cIlxufVxuZXhwb3J0IGVudW0gTWFpbFR5cGUge1xuXHRzZW50ID0gXCJzZW50XCIsXG5cdHJlY2VpdmVkID0gXCJyZWNlaXZlZFwiXG59XG5leHBvcnQgZW51bSBSaWdodHMge1xuXHRhZG1pbiA9IFwiYWRtaW5cIixcblx0d3JpdGUgPSBcIndyaXRlXCIsXG5cdHJlYWQgPSBcInJlYWRcIlxufVxuZXhwb3J0IGVudW0gRmlsZUNvbnRlbnRUeXBlIHtcblx0Y2xvdWQgPSBcImNsb3VkXCIsXG5cdHNlbnRfbWFpbCA9IFwic2VudF9tYWlsXCIsXG5cdHJlY2VpdmVkX21haWwgPSBcInJlY2VpdmVkX21haWxcIlxufVxuZXhwb3J0IGVudW0gUGF5SW5wdXRUeXBlIHtcblx0c2VjdXJlID0gXCJzZWN1cmVcIixcblx0Y2xhc3NpYyA9IFwiY2xhc3NpY1wiXG59XG5leHBvcnQgY2xhc3MgR3JhcGhRTEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyByZXNwb25zZTogR3JhcGhRTFJlc3BvbnNlKSB7XG4gICAgICBzdXBlcihcIlwiKTtcbiAgICAgIGNvbnNvbGUuZXJyb3IocmVzcG9uc2UpO1xuICAgIH1cbiAgICB0b1N0cmluZygpIHtcbiAgICAgIHJldHVybiBcIkdyYXBoUUwgUmVzcG9uc2UgRXJyb3JcIjtcbiAgICB9XG4gIH1cblxuXG5leHBvcnQgdHlwZSBVbndyYXBQcm9taXNlPFQ+ID0gVCBleHRlbmRzIFByb21pc2U8aW5mZXIgUj4gPyBSIDogVDtcbmV4cG9ydCB0eXBlIFpldXNTdGF0ZTxUIGV4dGVuZHMgKC4uLmFyZ3M6IGFueVtdKSA9PiBQcm9taXNlPGFueT4+ID0gTm9uTnVsbGFibGU8XG4gIFVud3JhcFByb21pc2U8UmV0dXJuVHlwZTxUPj5cbj47XG5leHBvcnQgdHlwZSBaZXVzSG9vazxcbiAgVCBleHRlbmRzIChcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApID0+IFJlY29yZDxzdHJpbmcsICguLi5hcmdzOiBhbnlbXSkgPT4gUHJvbWlzZTxhbnk+PixcbiAgTiBleHRlbmRzIGtleW9mIFJldHVyblR5cGU8VD5cbj4gPSBaZXVzU3RhdGU8UmV0dXJuVHlwZTxUPltOXT47XG5cbnR5cGUgV2l0aFR5cGVOYW1lVmFsdWU8VD4gPSBUICYge1xuICBfX3R5cGVuYW1lPzogdHJ1ZTtcbn07XG50eXBlIEFsaWFzVHlwZTxUPiA9IFdpdGhUeXBlTmFtZVZhbHVlPFQ+ICYge1xuICBfX2FsaWFzPzogUmVjb3JkPHN0cmluZywgV2l0aFR5cGVOYW1lVmFsdWU8VD4+O1xufTtcbmV4cG9ydCBpbnRlcmZhY2UgR3JhcGhRTFJlc3BvbnNlIHtcbiAgZGF0YT86IFJlY29yZDxzdHJpbmcsIGFueT47XG4gIGVycm9ycz86IEFycmF5PHtcbiAgICBtZXNzYWdlOiBzdHJpbmc7XG4gIH0+O1xufVxudHlwZSBEZWVwQW5pZnk8VD4gPSB7XG4gIFtQIGluIGtleW9mIFRdPzogYW55O1xufTtcbnR5cGUgSXNQYXlMb2FkPFQ+ID0gVCBleHRlbmRzIFthbnksIGluZmVyIFBheUxvYWRdID8gUGF5TG9hZCA6IFQ7XG50eXBlIElzQXJyYXk8VCwgVT4gPSBUIGV4dGVuZHMgQXJyYXk8aW5mZXIgUj4gPyBJbnB1dFR5cGU8UiwgVT5bXSA6IElucHV0VHlwZTxULCBVPjtcbnR5cGUgRmxhdHRlbkFycmF5PFQ+ID0gVCBleHRlbmRzIEFycmF5PGluZmVyIFI+ID8gUiA6IFQ7XG5cbnR5cGUgSXNJbnRlcmZhY2VkPFNSQyBleHRlbmRzIERlZXBBbmlmeTxEU1Q+LCBEU1Q+ID0gRmxhdHRlbkFycmF5PFNSQz4gZXh0ZW5kcyBaRVVTX0lOVEVSRkFDRVMgfCBaRVVTX1VOSU9OU1xuICA/IHtcbiAgICAgIFtQIGluIGtleW9mIFNSQ106IFNSQ1tQXSBleHRlbmRzICdfX3VuaW9uJyAmIGluZmVyIFJcbiAgICAgICAgPyBQIGV4dGVuZHMga2V5b2YgRFNUXG4gICAgICAgICAgPyBJc0FycmF5PFIsICdfX3R5cGVuYW1lJyBleHRlbmRzIGtleW9mIERTVCA/IERTVFtQXSAmIHsgX190eXBlbmFtZTogdHJ1ZSB9IDogRFNUW1BdPlxuICAgICAgICAgIDoge31cbiAgICAgICAgOiBuZXZlcjtcbiAgICB9W2tleW9mIERTVF0gJlxuICAgICAge1xuICAgICAgICBbUCBpbiBrZXlvZiBPbWl0PFxuICAgICAgICAgIFBpY2s8XG4gICAgICAgICAgICBTUkMsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIFtQIGluIGtleW9mIERTVF06IFNSQ1tQXSBleHRlbmRzICdfX3VuaW9uJyA/IG5ldmVyIDogUDtcbiAgICAgICAgICAgIH1ba2V5b2YgRFNUXVxuICAgICAgICAgID4sXG4gICAgICAgICAgJ19fdHlwZW5hbWUnXG4gICAgICAgID5dOiBJc1BheUxvYWQ8RFNUW1BdPiBleHRlbmRzIHRydWUgPyBTUkNbUF0gOiBJc0FycmF5PFNSQ1tQXSwgRFNUW1BdPjtcbiAgICAgIH1cbiAgOiB7XG4gICAgICBbUCBpbiBrZXlvZiBQaWNrPFNSQywga2V5b2YgRFNUPl06IElzUGF5TG9hZDxEU1RbUF0+IGV4dGVuZHMgdHJ1ZSA/IFNSQ1tQXSA6IElzQXJyYXk8U1JDW1BdLCBEU1RbUF0+O1xuICAgIH07XG5cbmV4cG9ydCB0eXBlIE1hcFR5cGU8U1JDLCBEU1Q+ID0gU1JDIGV4dGVuZHMgRGVlcEFuaWZ5PERTVD4gPyBJc0ludGVyZmFjZWQ8U1JDLCBEU1Q+IDogbmV2ZXI7XG5leHBvcnQgdHlwZSBJbnB1dFR5cGU8U1JDLCBEU1Q+ID0gSXNQYXlMb2FkPERTVD4gZXh0ZW5kcyB7IF9fYWxpYXM6IGluZmVyIFIgfVxuICA/IHtcbiAgICAgIFtQIGluIGtleW9mIFJdOiBNYXBUeXBlPFNSQywgUltQXT47XG4gICAgfSAmXG4gICAgICBNYXBUeXBlPFNSQywgT21pdDxJc1BheUxvYWQ8RFNUPiwgJ19fYWxpYXMnPj5cbiAgOiBNYXBUeXBlPFNSQywgSXNQYXlMb2FkPERTVD4+O1xudHlwZSBGdW5jPFAgZXh0ZW5kcyBhbnlbXSwgUj4gPSAoLi4uYXJnczogUCkgPT4gUjtcbnR5cGUgQW55RnVuYyA9IEZ1bmM8YW55LCBhbnk+O1xuZXhwb3J0IHR5cGUgQXJnc1R5cGU8RiBleHRlbmRzIEFueUZ1bmM+ID0gRiBleHRlbmRzIEZ1bmM8aW5mZXIgUCwgYW55PiA/IFAgOiBuZXZlcjtcbmV4cG9ydCB0eXBlIE9wZXJhdGlvbk9wdGlvbnMgPSB7XG4gIHZhcmlhYmxlcz86IFJlY29yZDxzdHJpbmcsIGFueT47XG4gIG9wZXJhdGlvbk5hbWU/OiBzdHJpbmc7XG59O1xuZXhwb3J0IHR5cGUgT3BlcmF0aW9uVG9HcmFwaFFMPFYsIFQ+ID0gPFogZXh0ZW5kcyBWPihvOiBaIHwgViwgb3B0aW9ucz86IE9wZXJhdGlvbk9wdGlvbnMpID0+IFByb21pc2U8SW5wdXRUeXBlPFQsIFo+PjtcbmV4cG9ydCB0eXBlIFN1YnNjcmlwdGlvblRvR3JhcGhRTDxWLCBUPiA9IDxaIGV4dGVuZHMgVj4oXG4gIG86IFogfCBWLFxuICBvcHRpb25zPzogT3BlcmF0aW9uT3B0aW9ucyxcbikgPT4ge1xuICB3czogV2ViU29ja2V0O1xuICBvbjogKGZuOiAoYXJnczogSW5wdXRUeXBlPFQsIFo+KSA9PiB2b2lkKSA9PiB2b2lkO1xuICBvZmY6IChmbjogKGU6IHsgZGF0YT86IElucHV0VHlwZTxULCBaPjsgY29kZT86IG51bWJlcjsgcmVhc29uPzogc3RyaW5nOyBtZXNzYWdlPzogc3RyaW5nIH0pID0+IHZvaWQpID0+IHZvaWQ7XG4gIGVycm9yOiAoZm46IChlOiB7IGRhdGE/OiBJbnB1dFR5cGU8VCwgWj47IGVycm9ycz86c3RyaW5nW10gfSkgPT4gdm9pZCkgPT4gdm9pZDtcbiAgb3BlbjogKCkgPT4gdm9pZDtcbn07XG5leHBvcnQgdHlwZSBTZWxlY3Rpb25GdW5jdGlvbjxWPiA9IDxUPih0OiBUIHwgVikgPT4gVDtcbmV4cG9ydCB0eXBlIGZldGNoT3B0aW9ucyA9IEFyZ3NUeXBlPHR5cGVvZiBmZXRjaD47XG50eXBlIHdlYnNvY2tldE9wdGlvbnMgPSB0eXBlb2YgV2ViU29ja2V0IGV4dGVuZHMgbmV3IChcbiAgLi4uYXJnczogaW5mZXIgUlxuKSA9PiBXZWJTb2NrZXRcbiAgPyBSXG4gIDogbmV2ZXI7XG5leHBvcnQgdHlwZSBjaGFpbk9wdGlvbnMgPVxuICB8IFtmZXRjaE9wdGlvbnNbMF0sIGZldGNoT3B0aW9uc1sxXSAmIHt3ZWJzb2NrZXQ/OiB3ZWJzb2NrZXRPcHRpb25zfV1cbiAgfCBbZmV0Y2hPcHRpb25zWzBdXTtcbmV4cG9ydCB0eXBlIEZldGNoRnVuY3Rpb24gPSAoXG4gIHF1ZXJ5OiBzdHJpbmcsXG4gIHZhcmlhYmxlcz86IFJlY29yZDxzdHJpbmcsIGFueT4sXG4pID0+IFByb21pc2U8YW55PjtcbmV4cG9ydCB0eXBlIFN1YnNjcmlwdGlvbkZ1bmN0aW9uID0gKHF1ZXJ5OiBzdHJpbmcpID0+IHZvaWQ7XG50eXBlIE5vdFVuZGVmaW5lZDxUPiA9IFQgZXh0ZW5kcyB1bmRlZmluZWQgPyBuZXZlciA6IFQ7XG5leHBvcnQgdHlwZSBSZXNvbHZlclR5cGU8Rj4gPSBOb3RVbmRlZmluZWQ8RiBleHRlbmRzIFtpbmZlciBBUkdTLCBhbnldID8gQVJHUyA6IHVuZGVmaW5lZD47XG5cblxuXG5leHBvcnQgY29uc3QgWmV1c1NlbGVjdCA9IDxUPigpID0+ICgodDogYW55KSA9PiB0KSBhcyBTZWxlY3Rpb25GdW5jdGlvbjxUPjtcblxuZXhwb3J0IGNvbnN0IFNjYWxhclJlc29sdmVyID0gKHNjYWxhcjogc3RyaW5nLCB2YWx1ZTogYW55KSA9PiB7XG4gIHN3aXRjaCAoc2NhbGFyKSB7XG4gICAgY2FzZSAnU3RyaW5nJzpcbiAgICAgIHJldHVybiAgYCR7SlNPTi5zdHJpbmdpZnkodmFsdWUpfWA7XG4gICAgY2FzZSAnSW50JzpcbiAgICAgIHJldHVybiBgJHt2YWx1ZX1gO1xuICAgIGNhc2UgJ0Zsb2F0JzpcbiAgICAgIHJldHVybiBgJHt2YWx1ZX1gO1xuICAgIGNhc2UgJ0Jvb2xlYW4nOlxuICAgICAgcmV0dXJuIGAke3ZhbHVlfWA7XG4gICAgY2FzZSAnSUQnOlxuICAgICAgcmV0dXJuIGBcIiR7dmFsdWV9XCJgO1xuICAgIGNhc2UgJ2VudW0nOlxuICAgICAgcmV0dXJuIGAke3ZhbHVlfWA7XG4gICAgY2FzZSAnc2NhbGFyJzpcbiAgICAgIHJldHVybiBgJHt2YWx1ZX1gO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn07XG5cblxuZXhwb3J0IGNvbnN0IFR5cGVzUHJvcHNSZXNvbHZlciA9ICh7XG4gICAgdmFsdWUsXG4gICAgdHlwZSxcbiAgICBuYW1lLFxuICAgIGtleSxcbiAgICBibG9ja0FycmF5c1xufToge1xuICAgIHZhbHVlOiBhbnk7XG4gICAgdHlwZTogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBrZXk/OiBzdHJpbmc7XG4gICAgYmxvY2tBcnJheXM/OiBib29sZWFuO1xufSk6IHN0cmluZyA9PiB7XG4gICAgaWYgKHZhbHVlID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBgbnVsbGA7XG4gICAgfVxuICAgIGxldCByZXNvbHZlZFZhbHVlID0gQWxsVHlwZXNQcm9wc1t0eXBlXVtuYW1lXTtcbiAgICBpZiAoa2V5KSB7XG4gICAgICAgIHJlc29sdmVkVmFsdWUgPSByZXNvbHZlZFZhbHVlW2tleV07XG4gICAgfVxuICAgIGlmICghcmVzb2x2ZWRWYWx1ZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCByZXNvbHZlICR7dHlwZX0gJHtuYW1lfSR7a2V5ID8gYCAke2tleX1gIDogJyd9YClcbiAgICB9XG4gICAgY29uc3QgdHlwZVJlc29sdmVkID0gcmVzb2x2ZWRWYWx1ZS50eXBlO1xuICAgIGNvbnN0IGlzQXJyYXkgPSByZXNvbHZlZFZhbHVlLmFycmF5O1xuICAgIGNvbnN0IGlzQXJyYXlSZXF1aXJlZCA9IHJlc29sdmVkVmFsdWUuYXJyYXlSZXF1aXJlZDtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiB2YWx1ZS5zdGFydHNXaXRoKGBaRVVTX1ZBUiRgKSkge1xuICAgICAgICBjb25zdCBpc1JlcXVpcmVkID0gcmVzb2x2ZWRWYWx1ZS5yZXF1aXJlZCA/ICchJyA6ICcnO1xuICAgICAgICBsZXQgdCA9IGAke3R5cGVSZXNvbHZlZH1gO1xuICAgICAgICBpZiAoaXNBcnJheSkge1xuICAgICAgICAgIGlmIChpc1JlcXVpcmVkKSB7XG4gICAgICAgICAgICAgIHQgPSBgJHt0fSFgO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0ID0gYFske3R9XWA7XG4gICAgICAgICAgaWYoaXNBcnJheVJlcXVpcmVkKXtcbiAgICAgICAgICAgIHQgPSBgJHt0fSFgO1xuICAgICAgICAgIH1cbiAgICAgICAgfWVsc2V7XG4gICAgICAgICAgaWYgKGlzUmVxdWlyZWQpIHtcbiAgICAgICAgICAgICAgICB0ID0gYCR7dH0hYDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGBcXCQke3ZhbHVlLnNwbGl0KGBaRVVTX1ZBUiRgKVsxXX1fX1pFVVNfVkFSX18ke3R9YDtcbiAgICB9XG4gICAgaWYgKGlzQXJyYXkgJiYgIWJsb2NrQXJyYXlzKSB7XG4gICAgICAgIHJldHVybiBgWyR7dmFsdWVcbiAgICAgICAgLm1hcCgodjogYW55KSA9PiBUeXBlc1Byb3BzUmVzb2x2ZXIoeyB2YWx1ZTogdiwgdHlwZSwgbmFtZSwga2V5LCBibG9ja0FycmF5czogdHJ1ZSB9KSlcbiAgICAgICAgLmpvaW4oJywnKX1dYDtcbiAgICB9XG4gICAgY29uc3QgcmVzbG92ZWRTY2FsYXIgPSBTY2FsYXJSZXNvbHZlcih0eXBlUmVzb2x2ZWQsIHZhbHVlKTtcbiAgICBpZiAoIXJlc2xvdmVkU2NhbGFyKSB7XG4gICAgICAgIGNvbnN0IHJlc29sdmVkVHlwZSA9IEFsbFR5cGVzUHJvcHNbdHlwZVJlc29sdmVkXTtcbiAgICAgICAgaWYgKHR5cGVvZiByZXNvbHZlZFR5cGUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIGNvbnN0IGFyZ3NLZXlzID0gT2JqZWN0LmtleXMocmVzb2x2ZWRUeXBlKTtcbiAgICAgICAgcmV0dXJuIGB7JHthcmdzS2V5c1xuICAgICAgICAgICAgLmZpbHRlcigoYWspID0+IHZhbHVlW2FrXSAhPT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgLm1hcChcbiAgICAgICAgICAgIChhaykgPT4gYCR7YWt9OiR7VHlwZXNQcm9wc1Jlc29sdmVyKHsgdmFsdWU6IHZhbHVlW2FrXSwgdHlwZTogdHlwZVJlc29sdmVkLCBuYW1lOiBhayB9KX1gXG4gICAgICAgICAgICApfX1gO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBTY2FsYXJSZXNvbHZlcihBbGxUeXBlc1Byb3BzW3R5cGVSZXNvbHZlZF0sIHZhbHVlKSBhcyBzdHJpbmc7XG4gICAgfVxuICAgIHJldHVybiByZXNsb3ZlZFNjYWxhcjtcbn07XG5cblxuY29uc3QgaXNBcnJheUZ1bmN0aW9uID0gKFxuICBwYXJlbnQ6IHN0cmluZ1tdLFxuICBhOiBhbnlbXVxuKSA9PiB7XG4gIGNvbnN0IFt2YWx1ZXMsIHJdID0gYTtcbiAgY29uc3QgW21haW5LZXksIGtleSwgLi4ua2V5c10gPSBwYXJlbnQ7XG4gIGNvbnN0IGtleVZhbHVlcyA9IE9iamVjdC5rZXlzKHZhbHVlcykuZmlsdGVyKChrKSA9PiB0eXBlb2YgdmFsdWVzW2tdICE9PSAndW5kZWZpbmVkJyk7XG5cbiAgaWYgKCFrZXlzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIGtleVZhbHVlcy5sZW5ndGggPiAwXG4gICAgICAgID8gYCgke2tleVZhbHVlc1xuICAgICAgICAgICAgLm1hcChcbiAgICAgICAgICAgICAgKHYpID0+XG4gICAgICAgICAgICAgICAgYCR7dn06JHtUeXBlc1Byb3BzUmVzb2x2ZXIoe1xuICAgICAgICAgICAgICAgICAgdmFsdWU6IHZhbHVlc1t2XSxcbiAgICAgICAgICAgICAgICAgIHR5cGU6IG1haW5LZXksXG4gICAgICAgICAgICAgICAgICBuYW1lOiBrZXksXG4gICAgICAgICAgICAgICAgICBrZXk6IHZcbiAgICAgICAgICAgICAgICB9KX1gXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuam9pbignLCcpfSkke3IgPyB0cmF2ZXJzZVRvU2Vla0FycmF5cyhwYXJlbnQsIHIpIDogJyd9YFxuICAgICAgICA6IHRyYXZlcnNlVG9TZWVrQXJyYXlzKHBhcmVudCwgcik7XG4gICAgfVxuXG4gIGNvbnN0IFt0eXBlUmVzb2x2ZXJLZXldID0ga2V5cy5zcGxpY2Uoa2V5cy5sZW5ndGggLSAxLCAxKTtcbiAgbGV0IHZhbHVlVG9SZXNvbHZlID0gUmV0dXJuVHlwZXNbbWFpbktleV1ba2V5XTtcbiAgZm9yIChjb25zdCBrIG9mIGtleXMpIHtcbiAgICB2YWx1ZVRvUmVzb2x2ZSA9IFJldHVyblR5cGVzW3ZhbHVlVG9SZXNvbHZlXVtrXTtcbiAgfVxuXG4gIGNvbnN0IGFyZ3VtZW50U3RyaW5nID1cbiAgICBrZXlWYWx1ZXMubGVuZ3RoID4gMFxuICAgICAgPyBgKCR7a2V5VmFsdWVzXG4gICAgICAgICAgLm1hcChcbiAgICAgICAgICAgICh2KSA9PlxuICAgICAgICAgICAgICBgJHt2fToke1R5cGVzUHJvcHNSZXNvbHZlcih7XG4gICAgICAgICAgICAgICAgdmFsdWU6IHZhbHVlc1t2XSxcbiAgICAgICAgICAgICAgICB0eXBlOiB2YWx1ZVRvUmVzb2x2ZSxcbiAgICAgICAgICAgICAgICBuYW1lOiB0eXBlUmVzb2x2ZXJLZXksXG4gICAgICAgICAgICAgICAga2V5OiB2XG4gICAgICAgICAgICAgIH0pfWBcbiAgICAgICAgICApXG4gICAgICAgICAgLmpvaW4oJywnKX0pJHtyID8gdHJhdmVyc2VUb1NlZWtBcnJheXMocGFyZW50LCByKSA6ICcnfWBcbiAgICAgIDogdHJhdmVyc2VUb1NlZWtBcnJheXMocGFyZW50LCByKTtcbiAgcmV0dXJuIGFyZ3VtZW50U3RyaW5nO1xufTtcblxuXG5jb25zdCByZXNvbHZlS1YgPSAoazogc3RyaW5nLCB2OiBib29sZWFuIHwgc3RyaW5nIHwgeyBbeDogc3RyaW5nXTogYm9vbGVhbiB8IHN0cmluZyB9KSA9PlxuICB0eXBlb2YgdiA9PT0gJ2Jvb2xlYW4nID8gayA6IHR5cGVvZiB2ID09PSAnb2JqZWN0JyA/IGAke2t9eyR7b2JqZWN0VG9UcmVlKHYpfX1gIDogYCR7a30ke3Z9YDtcblxuXG5jb25zdCBvYmplY3RUb1RyZWUgPSAobzogeyBbeDogc3RyaW5nXTogYm9vbGVhbiB8IHN0cmluZyB9KTogc3RyaW5nID0+XG4gIGB7JHtPYmplY3Qua2V5cyhvKS5tYXAoKGspID0+IGAke3Jlc29sdmVLVihrLCBvW2tdKX1gKS5qb2luKCcgJyl9fWA7XG5cblxuY29uc3QgdHJhdmVyc2VUb1NlZWtBcnJheXMgPSAocGFyZW50OiBzdHJpbmdbXSwgYT86IGFueSk6IHN0cmluZyA9PiB7XG4gIGlmICghYSkgcmV0dXJuICcnO1xuICBpZiAoT2JqZWN0LmtleXMoYSkubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG4gIGxldCBiOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG4gIGlmIChBcnJheS5pc0FycmF5KGEpKSB7XG4gICAgcmV0dXJuIGlzQXJyYXlGdW5jdGlvbihbLi4ucGFyZW50XSwgYSk7XG4gIH0gZWxzZSB7XG4gICAgaWYgKHR5cGVvZiBhID09PSAnb2JqZWN0Jykge1xuICAgICAgT2JqZWN0LmtleXMoYSlcbiAgICAgICAgLmZpbHRlcigoaykgPT4gdHlwZW9mIGFba10gIT09ICd1bmRlZmluZWQnKVxuICAgICAgICAuZm9yRWFjaCgoaykgPT4ge1xuICAgICAgICBpZiAoayA9PT0gJ19fYWxpYXMnKSB7XG4gICAgICAgICAgT2JqZWN0LmtleXMoYVtrXSkuZm9yRWFjaCgoYWxpYXNLZXkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGFsaWFzT3BlcmF0aW9ucyA9IGFba11bYWxpYXNLZXldO1xuICAgICAgICAgICAgY29uc3QgYWxpYXNPcGVyYXRpb25OYW1lID0gT2JqZWN0LmtleXMoYWxpYXNPcGVyYXRpb25zKVswXTtcbiAgICAgICAgICAgIGNvbnN0IGFsaWFzT3BlcmF0aW9uID0gYWxpYXNPcGVyYXRpb25zW2FsaWFzT3BlcmF0aW9uTmFtZV07XG4gICAgICAgICAgICBiW1xuICAgICAgICAgICAgICBgJHthbGlhc09wZXJhdGlvbk5hbWV9X19hbGlhc19fJHthbGlhc0tleX06ICR7YWxpYXNPcGVyYXRpb25OYW1lfWBcbiAgICAgICAgICAgIF0gPSB0cmF2ZXJzZVRvU2Vla0FycmF5cyhbLi4ucGFyZW50LCBhbGlhc09wZXJhdGlvbk5hbWVdLCBhbGlhc09wZXJhdGlvbik7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYltrXSA9IHRyYXZlcnNlVG9TZWVrQXJyYXlzKFsuLi5wYXJlbnQsIGtdLCBhW2tdKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG9iamVjdFRvVHJlZShiKTtcbn07XG5cblxuY29uc3QgYnVpbGRRdWVyeSA9ICh0eXBlOiBzdHJpbmcsIGE/OiBSZWNvcmQ8YW55LCBhbnk+KSA9PlxuICB0cmF2ZXJzZVRvU2Vla0FycmF5cyhbdHlwZV0sIGEpO1xuXG5cbmNvbnN0IGluc3BlY3RWYXJpYWJsZXMgPSAocXVlcnk6IHN0cmluZykgPT4ge1xuICBjb25zdCByZWdleCA9IC9cXCRcXGJcXHcqX19aRVVTX1ZBUl9fXFxbP1teIV5cXF1eXFxzXixeXFwpXlxcfV0qWyFdP1tcXF1dP1shXT8vZztcbiAgbGV0IHJlc3VsdDtcbiAgY29uc3QgQWxsVmFyaWFibGVzOiBzdHJpbmdbXSA9IFtdO1xuICB3aGlsZSAoKHJlc3VsdCA9IHJlZ2V4LmV4ZWMocXVlcnkpKSkge1xuICAgIGlmIChBbGxWYXJpYWJsZXMuaW5jbHVkZXMocmVzdWx0WzBdKSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIEFsbFZhcmlhYmxlcy5wdXNoKHJlc3VsdFswXSk7XG4gIH1cbiAgaWYgKCFBbGxWYXJpYWJsZXMubGVuZ3RoKSB7XG4gICAgcmV0dXJuIHF1ZXJ5O1xuICB9XG4gIGxldCBmaWx0ZXJlZFF1ZXJ5ID0gcXVlcnk7XG4gIEFsbFZhcmlhYmxlcy5mb3JFYWNoKCh2YXJpYWJsZSkgPT4ge1xuICAgIHdoaWxlIChmaWx0ZXJlZFF1ZXJ5LmluY2x1ZGVzKHZhcmlhYmxlKSkge1xuICAgICAgZmlsdGVyZWRRdWVyeSA9IGZpbHRlcmVkUXVlcnkucmVwbGFjZSh2YXJpYWJsZSwgdmFyaWFibGUuc3BsaXQoJ19fWkVVU19WQVJfXycpWzBdKTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gYCgke0FsbFZhcmlhYmxlcy5tYXAoKGEpID0+IGEuc3BsaXQoJ19fWkVVU19WQVJfXycpKVxuICAgIC5tYXAoKFt2YXJpYWJsZU5hbWUsIHZhcmlhYmxlVHlwZV0pID0+IGAke3ZhcmlhYmxlTmFtZX06JHt2YXJpYWJsZVR5cGV9YClcbiAgICAuam9pbignLCAnKX0pJHtmaWx0ZXJlZFF1ZXJ5fWA7XG59O1xuXG5cbmV4cG9ydCBjb25zdCBxdWVyeUNvbnN0cnVjdCA9ICh0OiAncXVlcnknIHwgJ211dGF0aW9uJyB8ICdzdWJzY3JpcHRpb24nLCB0TmFtZTogc3RyaW5nLCBvcGVyYXRpb25OYW1lPzogc3RyaW5nKSA9PiAobzogUmVjb3JkPGFueSwgYW55PikgPT5cbiAgYCR7dC50b0xvd2VyQ2FzZSgpfSR7b3BlcmF0aW9uTmFtZSA/ICcgJyArIG9wZXJhdGlvbk5hbWUgOiAnJ30ke2luc3BlY3RWYXJpYWJsZXMoYnVpbGRRdWVyeSh0TmFtZSwgbykpfWA7XG5cblxuY29uc3QgZnVsbENoYWluQ29uc3RydWN0ID0gKGZuOiBGZXRjaEZ1bmN0aW9uKSA9PiAodDogJ3F1ZXJ5JyB8ICdtdXRhdGlvbicgfCAnc3Vic2NyaXB0aW9uJywgdE5hbWU6IHN0cmluZykgPT4gKFxuICBvOiBSZWNvcmQ8YW55LCBhbnk+LFxuICBvcHRpb25zPzogT3BlcmF0aW9uT3B0aW9ucyxcbikgPT4gZm4ocXVlcnlDb25zdHJ1Y3QodCwgdE5hbWUsIG9wdGlvbnM/Lm9wZXJhdGlvbk5hbWUpKG8pLCBvcHRpb25zPy52YXJpYWJsZXMpLnRoZW4oKHI6YW55KSA9PiB7XG4gIHNlZWtGb3JBbGlhc2VzKHIpXG4gIHJldHVybiByXG59KTtcblxuZXhwb3J0IGNvbnN0IGZ1bGxDaGFpbkNvbnN0cnVjdG9yID0gPEYgZXh0ZW5kcyBGZXRjaEZ1bmN0aW9uLCBSIGV4dGVuZHMga2V5b2YgVmFsdWVUeXBlcz4oXG4gIGZuOiBGLFxuICBvcGVyYXRpb246ICdxdWVyeScgfCAnbXV0YXRpb24nIHwgJ3N1YnNjcmlwdGlvbicsXG4gIGtleTogUixcbikgPT5cbiAgKChvLCBvcHRpb25zKSA9PiBmdWxsQ2hhaW5Db25zdHJ1Y3QoZm4pKG9wZXJhdGlvbiwga2V5KShvIGFzIGFueSwgb3B0aW9ucykpIGFzIE9wZXJhdGlvblRvR3JhcGhRTDxcbiAgICBWYWx1ZVR5cGVzW1JdLFxuICAgIEdyYXBoUUxUeXBlc1tSXVxuICA+O1xuXG5cbmNvbnN0IGZ1bGxTdWJzY3JpcHRpb25Db25zdHJ1Y3QgPSAoZm46IFN1YnNjcmlwdGlvbkZ1bmN0aW9uKSA9PiAoXG4gIHQ6ICdxdWVyeScgfCAnbXV0YXRpb24nIHwgJ3N1YnNjcmlwdGlvbicsXG4gIHROYW1lOiBzdHJpbmcsXG4pID0+IChvOiBSZWNvcmQ8YW55LCBhbnk+LCBvcHRpb25zPzogT3BlcmF0aW9uT3B0aW9ucykgPT5cbiAgZm4ocXVlcnlDb25zdHJ1Y3QodCwgdE5hbWUsIG9wdGlvbnM/Lm9wZXJhdGlvbk5hbWUpKG8pKTtcblxuZXhwb3J0IGNvbnN0IGZ1bGxTdWJzY3JpcHRpb25Db25zdHJ1Y3RvciA9IDxGIGV4dGVuZHMgU3Vic2NyaXB0aW9uRnVuY3Rpb24sIFIgZXh0ZW5kcyBrZXlvZiBWYWx1ZVR5cGVzPihcbiAgZm46IEYsXG4gIG9wZXJhdGlvbjogJ3F1ZXJ5JyB8ICdtdXRhdGlvbicgfCAnc3Vic2NyaXB0aW9uJyxcbiAga2V5OiBSLFxuKSA9PlxuICAoKG8sIG9wdGlvbnMpID0+IGZ1bGxTdWJzY3JpcHRpb25Db25zdHJ1Y3QoZm4pKG9wZXJhdGlvbiwga2V5KShvIGFzIGFueSwgb3B0aW9ucykpIGFzIFN1YnNjcmlwdGlvblRvR3JhcGhRTDxcbiAgICBWYWx1ZVR5cGVzW1JdLFxuICAgIEdyYXBoUUxUeXBlc1tSXVxuICA+O1xuXG5cbmNvbnN0IHNlZWtGb3JBbGlhc2VzID0gKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgY29uc3QgdHJhdmVyc2VBbGlhcyA9ICh2YWx1ZTogYW55KSA9PiB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICB2YWx1ZS5mb3JFYWNoKHNlZWtGb3JBbGlhc2VzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgc2Vla0ZvckFsaWFzZXModmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcbiAgaWYgKHR5cGVvZiByZXNwb25zZSA9PT0gJ29iamVjdCcgJiYgcmVzcG9uc2UpIHtcbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMocmVzcG9uc2UpO1xuICAgIGlmIChrZXlzLmxlbmd0aCA8IDEpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAga2V5cy5mb3JFYWNoKChrKSA9PiB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHJlc3BvbnNlW2tdO1xuICAgICAgaWYgKGsuaW5kZXhPZignX19hbGlhc19fJykgIT09IC0xKSB7XG4gICAgICAgIGNvbnN0IFtvcGVyYXRpb24sIGFsaWFzXSA9IGsuc3BsaXQoJ19fYWxpYXNfXycpO1xuICAgICAgICByZXNwb25zZVthbGlhc10gPSB7XG4gICAgICAgICAgW29wZXJhdGlvbl06IHZhbHVlLFxuICAgICAgICB9O1xuICAgICAgICBkZWxldGUgcmVzcG9uc2Vba107XG4gICAgICB9XG4gICAgICB0cmF2ZXJzZUFsaWFzKHZhbHVlKTtcbiAgICB9KTtcbiAgfVxufTtcblxuXG5leHBvcnQgY29uc3QgJCA9ICh0OiBUZW1wbGF0ZVN0cmluZ3NBcnJheSk6IGFueSA9PiBgWkVVU19WQVIkJHt0LmpvaW4oJycpfWA7XG5cblxuZXhwb3J0IGNvbnN0IHJlc29sdmVyRm9yID0gPFxuICBUIGV4dGVuZHMga2V5b2YgVmFsdWVUeXBlcyxcbiAgWiBleHRlbmRzIGtleW9mIFZhbHVlVHlwZXNbVF0sXG4gIFkgZXh0ZW5kcyAoXG4gICAgYXJnczogUmVxdWlyZWQ8VmFsdWVUeXBlc1tUXT5bWl0gZXh0ZW5kcyBbaW5mZXIgSW5wdXQsIGFueV0gPyBJbnB1dCA6IGFueSxcbiAgICBzb3VyY2U6IGFueSxcbiAgKSA9PiBaIGV4dGVuZHMga2V5b2YgTW9kZWxUeXBlc1tUXSA/IE1vZGVsVHlwZXNbVF1bWl0gfCBQcm9taXNlPE1vZGVsVHlwZXNbVF1bWl0+IDogYW55XG4+KFxuICBmbjogWSxcbikgPT4gZm4gYXMgKGFyZ3M/OiBhbnksc291cmNlPzogYW55KSA9PiBhbnk7XG5cblxuY29uc3QgaGFuZGxlRmV0Y2hSZXNwb25zZSA9IChcbiAgcmVzcG9uc2U6IFBhcmFtZXRlcnM8RXh0cmFjdDxQYXJhbWV0ZXJzPFJldHVyblR5cGU8dHlwZW9mIGZldGNoPlsndGhlbiddPlswXSwgRnVuY3Rpb24+PlswXVxuKTogUHJvbWlzZTxHcmFwaFFMUmVzcG9uc2U+ID0+IHtcbiAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgoXywgcmVqZWN0KSA9PiB7XG4gICAgICByZXNwb25zZS50ZXh0KCkudGhlbih0ZXh0ID0+IHtcbiAgICAgICAgdHJ5IHsgcmVqZWN0KEpTT04ucGFyc2UodGV4dCkpOyB9XG4gICAgICAgIGNhdGNoIChlcnIpIHsgcmVqZWN0KHRleHQpOyB9XG4gICAgICB9KS5jYXRjaChyZWplY3QpO1xuICAgIH0pO1xuICB9XG4gIHJldHVybiByZXNwb25zZS5qc29uKCk7XG59O1xuXG5leHBvcnQgY29uc3QgYXBpRmV0Y2ggPSAob3B0aW9uczogZmV0Y2hPcHRpb25zKSA9PiAocXVlcnk6IHN0cmluZywgdmFyaWFibGVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge30pID0+IHtcbiAgICBsZXQgZmV0Y2hGdW5jdGlvbiA9IGZldGNoO1xuICAgIGxldCBxdWVyeVN0cmluZyA9IHF1ZXJ5O1xuICAgIGxldCBmZXRjaE9wdGlvbnMgPSBvcHRpb25zWzFdIHx8IHt9O1xuICAgIGlmIChmZXRjaE9wdGlvbnMubWV0aG9kICYmIGZldGNoT3B0aW9ucy5tZXRob2QgPT09ICdHRVQnKSB7XG4gICAgICBxdWVyeVN0cmluZyA9IGVuY29kZVVSSUNvbXBvbmVudChxdWVyeSk7XG4gICAgICByZXR1cm4gZmV0Y2hGdW5jdGlvbihgJHtvcHRpb25zWzBdfT9xdWVyeT0ke3F1ZXJ5U3RyaW5nfWAsIGZldGNoT3B0aW9ucylcbiAgICAgICAgLnRoZW4oaGFuZGxlRmV0Y2hSZXNwb25zZSlcbiAgICAgICAgLnRoZW4oKHJlc3BvbnNlOiBHcmFwaFFMUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICBpZiAocmVzcG9uc2UuZXJyb3JzKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgR3JhcGhRTEVycm9yKHJlc3BvbnNlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gZmV0Y2hGdW5jdGlvbihgJHtvcHRpb25zWzBdfWAsIHtcbiAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHsgcXVlcnk6IHF1ZXJ5U3RyaW5nLCB2YXJpYWJsZXMgfSksXG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgfSxcbiAgICAgIC4uLmZldGNoT3B0aW9uc1xuICAgIH0pXG4gICAgICAudGhlbihoYW5kbGVGZXRjaFJlc3BvbnNlKVxuICAgICAgLnRoZW4oKHJlc3BvbnNlOiBHcmFwaFFMUmVzcG9uc2UpID0+IHtcbiAgICAgICAgaWYgKHJlc3BvbnNlLmVycm9ycykge1xuICAgICAgICAgIHRocm93IG5ldyBHcmFwaFFMRXJyb3IocmVzcG9uc2UpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgICAgfSk7XG4gIH07XG5cblxuZXhwb3J0IGNvbnN0IGFwaVN1YnNjcmlwdGlvbiA9IChvcHRpb25zOiBjaGFpbk9wdGlvbnMpID0+IChcbiAgICBxdWVyeTogc3RyaW5nLFxuICApID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcXVlcnlTdHJpbmcgPSBvcHRpb25zWzBdICsgJz9xdWVyeT0nICsgZW5jb2RlVVJJQ29tcG9uZW50KHF1ZXJ5KTtcbiAgICAgIGNvbnN0IHdzU3RyaW5nID0gcXVlcnlTdHJpbmcucmVwbGFjZSgnaHR0cCcsICd3cycpO1xuICAgICAgY29uc3QgaG9zdCA9IChvcHRpb25zLmxlbmd0aCA+IDEgJiYgb3B0aW9uc1sxXT8ud2Vic29ja2V0Py5bMF0pIHx8IHdzU3RyaW5nO1xuICAgICAgY29uc3Qgd2ViU29ja2V0T3B0aW9ucyA9IG9wdGlvbnNbMV0/LndlYnNvY2tldCB8fCBbaG9zdF07XG4gICAgICBjb25zdCB3cyA9IG5ldyBXZWJTb2NrZXQoLi4ud2ViU29ja2V0T3B0aW9ucyk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB3cyxcbiAgICAgICAgb246IChlOiAoYXJnczogYW55KSA9PiB2b2lkKSA9PiB7XG4gICAgICAgICAgd3Mub25tZXNzYWdlID0gKGV2ZW50OmFueSkgPT4ge1xuICAgICAgICAgICAgaWYoZXZlbnQuZGF0YSl7XG4gICAgICAgICAgICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2UoZXZlbnQuZGF0YSlcbiAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHBhcnNlZC5kYXRhXG4gICAgICAgICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICAgICAgc2Vla0ZvckFsaWFzZXMoZGF0YSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV0dXJuIGUoZGF0YSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfTtcbiAgICAgICAgfSxcbiAgICAgICAgb2ZmOiAoZTogKGFyZ3M6IGFueSkgPT4gdm9pZCkgPT4ge1xuICAgICAgICAgIHdzLm9uY2xvc2UgPSBlO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogKGU6IChhcmdzOiBhbnkpID0+IHZvaWQpID0+IHtcbiAgICAgICAgICB3cy5vbmVycm9yID0gZTtcbiAgICAgICAgfSxcbiAgICAgICAgb3BlbjogKGU6ICgpID0+IHZvaWQpID0+IHtcbiAgICAgICAgICB3cy5vbm9wZW4gPSBlO1xuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm8gd2Vic29ja2V0cyBpbXBsZW1lbnRlZCcpO1xuICAgIH1cbiAgfTtcblxuXG5leHBvcnQgY29uc3QgVGh1bmRlciA9IChmbjogRmV0Y2hGdW5jdGlvbikgPT4gKHtcbiAgcXVlcnk6IGZ1bGxDaGFpbkNvbnN0cnVjdG9yKGZuLCdxdWVyeScsICdRdWVyeScpLFxubXV0YXRpb246IGZ1bGxDaGFpbkNvbnN0cnVjdG9yKGZuLCdtdXRhdGlvbicsICdNdXRhdGlvbicpXG59KTtcblxuZXhwb3J0IGNvbnN0IENoYWluID0gKC4uLm9wdGlvbnM6IGNoYWluT3B0aW9ucykgPT4gKHtcbiAgcXVlcnk6IGZ1bGxDaGFpbkNvbnN0cnVjdG9yKGFwaUZldGNoKG9wdGlvbnMpLCdxdWVyeScsICdRdWVyeScpLFxubXV0YXRpb246IGZ1bGxDaGFpbkNvbnN0cnVjdG9yKGFwaUZldGNoKG9wdGlvbnMpLCdtdXRhdGlvbicsICdNdXRhdGlvbicpXG59KTtcbmV4cG9ydCBjb25zdCBaZXVzID0ge1xuICBxdWVyeTogKG86VmFsdWVUeXBlc1tcIlF1ZXJ5XCJdLCBvcGVyYXRpb25OYW1lPzogc3RyaW5nKSA9PiBxdWVyeUNvbnN0cnVjdCgncXVlcnknLCAnUXVlcnknLCBvcGVyYXRpb25OYW1lKShvKSxcbm11dGF0aW9uOiAobzpWYWx1ZVR5cGVzW1wiTXV0YXRpb25cIl0sIG9wZXJhdGlvbk5hbWU/OiBzdHJpbmcpID0+IHF1ZXJ5Q29uc3RydWN0KCdtdXRhdGlvbicsICdNdXRhdGlvbicsIG9wZXJhdGlvbk5hbWUpKG8pXG59O1xuZXhwb3J0IGNvbnN0IFNlbGVjdG9ycyA9IHtcbiAgcXVlcnk6IFpldXNTZWxlY3Q8VmFsdWVUeXBlc1tcIlF1ZXJ5XCJdPigpLFxubXV0YXRpb246IFpldXNTZWxlY3Q8VmFsdWVUeXBlc1tcIk11dGF0aW9uXCJdPigpXG59O1xuXG5cbmV4cG9ydCBjb25zdCBHcWwgPSBDaGFpbignaHR0cHM6Ly9hcGkuZGV2LnNlY3JlY3kubWUvZ3JhcGhxbCcpXG4iXX0=