@secrecy/lib 1.0.0-dev.5 → 1.0.0-dev.50
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/{lib → dist}/BaseClient.d.ts +62 -73
- package/dist/BaseClient.js +1124 -0
- package/{lib → dist}/PopupTools.d.ts +1 -1
- package/dist/PopupTools.js +212 -0
- package/{lib → dist}/ZeusThunder.d.ts +0 -0
- package/dist/ZeusThunder.js +79 -0
- package/dist/cache.d.ts +6 -0
- package/dist/cache.js +4 -0
- package/dist/client/admin/index.d.ts +11 -0
- package/dist/client/admin/index.js +110 -0
- package/{lib → dist}/client/convert/file.d.ts +3 -3
- package/dist/client/convert/file.js +34 -0
- package/{lib → dist}/client/convert/mail.d.ts +0 -0
- package/dist/client/convert/mail.js +46 -0
- package/dist/client/convert/node.d.ts +9 -0
- package/dist/client/convert/node.js +102 -0
- package/{lib → dist}/client/helpers.d.ts +1 -1
- package/dist/client/helpers.js +114 -0
- package/dist/client/index.d.ts +163 -0
- package/dist/client/index.js +3209 -0
- package/{lib → dist}/client/storage.d.ts +0 -0
- package/dist/client/storage.js +12 -0
- package/dist/client/types/File.d.ts +14 -0
- package/dist/client/types/File.js +3 -0
- package/{lib → dist}/client/types/Inputs.d.ts +2 -7
- package/dist/client/types/Inputs.js +3 -0
- package/dist/client/types/Node.d.ts +56 -0
- package/dist/client/types/Node.js +3 -0
- package/dist/client/types/UserAppNotifications.d.ts +6 -0
- package/dist/client/types/UserAppNotifications.js +3 -0
- package/{lib → dist}/client/types/UserAppSettings.d.ts +0 -1
- package/dist/client/types/UserAppSettings.js +3 -0
- package/{lib → dist}/client/types/index.d.ts +8 -13
- package/dist/client/types/index.js +8 -0
- package/dist/client/types/selectors.d.ts +400 -0
- package/dist/client/types/selectors.js +130 -0
- package/{lib → dist}/crypto/file.d.ts +0 -0
- package/dist/crypto/file.js +210 -0
- package/{lib → dist}/crypto/index.d.ts +0 -0
- package/dist/crypto/index.js +47 -0
- package/dist/error.d.ts +30 -0
- package/dist/error.js +3 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.js +10 -0
- package/{lib → dist}/minify/index.d.ts +0 -0
- package/dist/minify/index.js +28 -0
- package/{lib → dist}/minify/lz4.d.ts +0 -0
- package/dist/minify/lz4.js +627 -0
- package/{lib → dist}/sodium.d.ts +0 -0
- package/dist/sodium.js +6 -0
- package/{lib → dist}/utils/store-buddy.d.ts +0 -0
- package/dist/utils/store-buddy.js +65 -0
- package/{lib → dist}/utils/time.d.ts +0 -0
- package/dist/utils/time.js +14 -0
- package/{lib → dist/utils}/utils.d.ts +0 -0
- package/dist/utils/utils.js +57 -0
- package/{lib → dist}/worker/__mock__/sodium.worker.d.ts +0 -0
- package/dist/worker/__mock__/sodium.worker.js +49 -0
- package/{lib → dist}/worker/md5.d.ts +0 -0
- package/dist/worker/md5.js +25 -0
- package/dist/worker/sodium.d.ts +3 -0
- package/dist/worker/sodium.js +120 -0
- package/{lib → dist}/worker/workerCodes.d.ts +0 -0
- package/dist/worker/workerCodes.js +3 -0
- package/{lib → dist}/zeus/const.d.ts +5 -0
- package/dist/zeus/const.js +1234 -0
- package/dist/zeus/index.d.ts +5893 -0
- package/dist/zeus/index.js +681 -0
- package/package.json +58 -51
- package/lib/BaseClient.js +0 -1332
- package/lib/PopupTools.js +0 -213
- package/lib/ZeusThunder.js +0 -112
- package/lib/cache.d.ts +0 -7
- package/lib/cache.js +0 -5
- package/lib/client/convert/file.js +0 -39
- package/lib/client/convert/folder.d.ts +0 -8
- package/lib/client/convert/folder.js +0 -264
- package/lib/client/convert/mail.js +0 -46
- package/lib/client/convert/vFile.d.ts +0 -5
- package/lib/client/convert/vFile.js +0 -164
- package/lib/client/helpers.js +0 -116
- package/lib/client/index.d.ts +0 -167
- package/lib/client/index.js +0 -3699
- package/lib/client/storage.js +0 -12
- package/lib/client/types/File.d.ts +0 -21
- package/lib/client/types/File.js +0 -2
- package/lib/client/types/FilesOnUsersOnApplications.d.ts +0 -9
- package/lib/client/types/FilesOnUsersOnApplications.js +0 -2
- package/lib/client/types/Folder.d.ts +0 -68
- package/lib/client/types/Folder.js +0 -7
- package/lib/client/types/Inputs.js +0 -2
- package/lib/client/types/UserAppSettings.js +0 -2
- package/lib/client/types/VFile.d.ts +0 -62
- package/lib/client/types/VFile.js +0 -4
- package/lib/client/types/index.js +0 -8
- package/lib/client/types/queries.d.ts +0 -535
- package/lib/client/types/queries.js +0 -192
- package/lib/crypto/file.js +0 -291
- package/lib/crypto/index.js +0 -37
- package/lib/index.d.ts +0 -11
- package/lib/index.js +0 -40
- package/lib/minify/index.js +0 -28
- package/lib/minify/lz4.js +0 -633
- package/lib/sodium.js +0 -28
- package/lib/utils/store-buddy.js +0 -69
- package/lib/utils/time.js +0 -22
- package/lib/utils.js +0 -188
- package/lib/worker/__mock__/sodium.worker.js +0 -57
- package/lib/worker/md5.js +0 -43
- package/lib/worker/sodium.d.ts +0 -3
- package/lib/worker/sodium.js +0 -141
- package/lib/worker/workerCodes.js +0 -3
- package/lib/zeus/const.js +0 -1609
- package/lib/zeus/index.d.ts +0 -26113
- 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/OiB0cnVlXG59Pjtcblx0W1wiUmVjdXJseUludm9pY2VzXCJdOiBBbGlhc1R5cGU8e1xuXHRwZGY/OnRydWUsXG5cdGRhdGU/OnRydWUsXG5cdGR1ZT86dHJ1ZSxcblx0c3RhdHVzPzp0cnVlLFxuXHR0b3RhbD86dHJ1ZSxcblx0bmFtZT86dHJ1ZSxcblx0Y3VycmVuY3k/OnRydWUsXG5cdFx0X190eXBlbmFtZT86IHRydWVcbn0+O1xuXHRbXCJSZWN1cmx5U3Vic2NyaXB0aW9uXCJdOiBBbGlhc1R5cGU8e1xuXHRhdXRvcmVuZXc/OnRydWUsXG5cdGFjdGl2YXRlZEF0Pzp0cnVlLFxuXHRjdXJyZW50UGVyaW9kRW5kc0F0Pzp0cnVlLFxuXHRjdXJyZW50UGVyaW9kU3RhcnRlZEF0Pzp0cnVlLFxuXHRjYW5jZWxlZEF0Pzp0cnVlLFxuXHRjcmVhdGVkQXQ/OnRydWUsXG5cdGV4cGlyZXNBdD86dHJ1ZSxcblx0cGF1c2VkQXQ/OnRydWUsXG5cdHRyaWFsRW5kc0F0Pzp0cnVlLFxuXHR0cmlhbFN0YXJ0ZWRBdD86dHJ1ZSxcblx0dXBkYXRlZEF0Pzp0cnVlLFxuXHRzdGF0ZT86dHJ1ZSxcblx0Y29sbGVjdGlvbk1ldGhvZD86dHJ1ZSxcblx0cGxhbj86dHJ1ZSxcblx0cGxhbkNvZGU/OnRydWUsXG5cdHRvdGFsPzp0cnVlLFxuXHRcdF9fdHlwZW5hbWU/OiB0cnVlXG59Pjtcblx0W1wiUGF5bWVudEluZm9zXCJdOiBBbGlhc1R5cGU8e1xuXHRob3N0ZWRVcmw/OnRydWUsXG5cdGN1cnJlbnRTdWJzY3JpcHRpb24/OlZhbHVlVHlwZXNbXCJSZWN1cmx5U3Vic2NyaXB0aW9uXCJdLFxuXHRpbnZvaWNlcz86VmFsdWVUeXBlc1tcIlJlY3VybHlJbnZvaWNlc1wiXSxcblx0XHRfX3R5cGVuYW1lPzogdHJ1ZVxufT47XG5cdFtcIlNoYXJlRm9sZGVyUmVzcG9uc2VcIl06IEFsaWFzVHlwZTx7XG5cdGZvbGRlcnM/OnRydWUsXG5cdHZGaWxlcz86dHJ1ZSxcblx0XHRfX3R5cGVuYW1lPzogdHJ1ZVxufT47XG5cdFtcIlF1ZXJ5XCJdOiBBbGlhc1R5cGU8e1xuXHR0ZXN0Pzp0cnVlLFxuXHRsaW1pdHM/OlZhbHVlVHlwZXNbXCJRdWVyeUxpbWl0c1wiXSxcbnVzZXI/OiBbe1x0dXNlcklkPzpzdHJpbmcgfCBudWxsfSxWYWx1ZVR5cGVzW1wiVXNlclwiXV0sXG5kYkNvbmZpZz86IFt7XHRhcHBDb2RlOnN0cmluZ30sdHJ1ZV0sXG5kYkdldD86IFt7XHRmaWVsZDpzdHJpbmcsXHR1c2VySWQ/OnN0cmluZyB8IG51bGx9LHRydWVdLFxuZGJTZWFyY2g/OiBbe1x0c2VhcmNoOnN0cmluZyxcdGZpZWxkOnN0cmluZ30sdHJ1ZV0sXG5maWxlQ29udGVudD86IFt7XHRmaWxlSWQ6c3RyaW5nfSxWYWx1ZVR5cGVzW1wiRmlsZUNvbnRlbnRcIl1dLFxuZmlsZXNTaGFyZWRXaXRoTWU/OiBbe1x0YWNjZXB0ZWQ/OmJvb2xlYW4gfCBudWxsfSxWYWx1ZVR5cGVzW1wiRmlsZVNoYXJlZENvbnRlbnRcIl1dLFxuXHR2RmlsZXNTaGFyZWRXaXRoTWU/OlZhbHVlVHlwZXNbXCJWRmlsZVwiXSxcblx0Zm9sZGVyc1NoYXJlZFdpdGhNZT86VmFsdWVUeXBlc1tcIkZvbGRlclwiXSxcbmZvbGRlclNpemU/OiBbe1x0Zm9sZGVySWQ/OnN0cmluZyB8IG51bGx9LFZhbHVlVHlwZXNbXCJGb2xkZXJTaXplXCJdXSxcbmZvbGRlcj86IFt7XHRpZD86c3RyaW5nIHwgbnVsbCxcdGRlbGV0ZWQ/OmJvb2xlYW4gfCBudWxsfSxWYWx1ZVR5cGVzW1wiRm9sZGVyXCJdXSxcbnZGaWxlPzogW3tcdGlkOnN0cmluZ30sVmFsdWVUeXBlc1tcIlZGaWxlXCJdXSxcbmZpbGU/OiBbe1x0aWQ6c3RyaW5nfSxWYWx1ZVR5cGVzW1wiRmlsZVwiXV0sXG5mYXE/OiBbe1x0bGFuZz86VmFsdWVUeXBlc1tcIkxhbmdcIl0gfCBudWxsfSxWYWx1ZVR5cGVzW1wiRmFxSXRlbVwiXV0sXG5cdHBheW1lbnRJbmZvcz86VmFsdWVUeXBlc1tcIlBheW1lbnRJbmZvc1wiXSxcblx0cGxhbnM/OlZhbHVlVHlwZXNbXCJQbGFuXCJdLFxuXHRzaGFyZWRGb2xkZXJzPzpWYWx1ZVR5cGVzW1wiRm9sZGVyXCJdLFxuXHRzaGFyZWRWRmlsZXM/OlZhbHVlVHlwZXNbXCJWRmlsZVwiXSxcbmJsb2c/OiBbe1x0bGFuZz86VmFsdWVUeXBlc1tcIkxhbmdcIl0gfCBudWxsfSxWYWx1ZVR5cGVzW1wiQmxvZ0l0ZW1cIl1dLFxuXHRkZWxldGVkRm9sZGVycz86VmFsdWVUeXBlc1tcIkZvbGRlclwiXSxcblx0ZGVsZXRlZFZGaWxlcz86VmFsdWVUeXBlc1tcIlZGaWxlXCJdLFxubWFpbD86IFt7XHRpZDpzdHJpbmd9LFZhbHVlVHlwZXNbXCJNYWlsXCJdXSxcbmRlbGV0ZWRNYWlscz86IFt7XHRtYWlsVHlwZTpWYWx1ZVR5cGVzW1wiTWFpbFR5cGVcIl19LFZhbHVlVHlwZXNbXCJNYWlsXCJdXSxcblx0XHRfX3R5cGVuYW1lPzogdHJ1ZVxufT47XG5cdFtcIk11dGF0aW9uXCJdOiBBbGlhc1R5cGU8e1xuY3JlYXRlQXBwbGljYXRpb24/OiBbe1x0bmFtZTpzdHJpbmcsXHRvcmlnaW46c3RyaW5nLFx0ZGV2ZWxvcGVySWQ6c3RyaW5nfSx0cnVlXSxcbmRiU2V0PzogW3tcdHZhbHVlOnN0cmluZyxcdHVzZXJJZD86c3RyaW5nIHwgbnVsbH0sdHJ1ZV0sXG5kYkNvbmZpZz86IFt7XHRhcHBDb2RlOnN0cmluZyxcdGNvbmZpZzpzdHJpbmd9LHRydWVdLFxuc2hhcmVWRmlsZT86IFt7XHR2RmlsZUlkOnN0cmluZyxcdHVzZXJJZDpzdHJpbmcsXHRuYW1lS2V5OnN0cmluZyxcdHJpZ2h0czpWYWx1ZVR5cGVzW1wiUmlnaHRzXCJdLFx0aGlzdG9yeTpWYWx1ZVR5cGVzW1wiU2hhcmVGaWxlS2V5SW5wdXRcIl1bXX0sdHJ1ZV0sXG5zaGFyZUZvbGRlcj86IFt7XHRmb2xkZXJJZDpzdHJpbmcsXHR1c2VySWQ6c3RyaW5nfSxWYWx1ZVR5cGVzW1wiU2hhcmVGb2xkZXJSZXNwb25zZVwiXV0sXG5zaGFyZUZvbGRlckZpbmlzaD86IFt7XHRzaGFyZUZvbGRlcnM6VmFsdWVUeXBlc1tcIlNoYXJlRm9sZGVyc0lucHV0XCJdLFx0dXNlcklkOnN0cmluZyxcdHJpZ2h0czpWYWx1ZVR5cGVzW1wiUmlnaHRzXCJdfSx0cnVlXSxcbnVwZGF0ZUZpbGU/OiBbe1x0ZmlsZUlkOnN0cmluZyxcdGlzRmF2b3JpdGU/OmJvb2xlYW4gfCBudWxsLFx0ZmlsZW5hbWU/OnN0cmluZyB8IG51bGwsXHRkZWxldGVkQXQ/OlZhbHVlVHlwZXNbXCJEYXRlVGltZVwiXSB8IG51bGx9LFZhbHVlVHlwZXNbXCJWRmlsZVwiXV0sXG51cGRhdGVQcm9maWxlPzogW3tcdGZpcnN0bmFtZT86c3RyaW5nIHwgbnVsbCxcdGxhc3RuYW1lPzpzdHJpbmcgfCBudWxsLFx0bGFuZz86VmFsdWVUeXBlc1tcIkxhbmdcIl0gfCBudWxsfSxWYWx1ZVR5cGVzW1wiVXNlclwiXV0sXG51cGxvYWRBbm9ueW1vdXM/OiBbe1x0ZmlsZU5hbWU6c3RyaW5nLFx0ZmlsZVNpemU6bnVtYmVyLFx0ZmlsZVNpemVCZWZvcmU6bnVtYmVyLFx0bWVzc2FnZT86c3RyaW5nIHwgbnVsbCxcdHB1YktleTpzdHJpbmcsXHR0b2tlbjpzdHJpbmd9LFZhbHVlVHlwZXNbXCJGaWxlUmVzcG9uc2VcIl1dLFxudXBsb2FkRmlsZT86IFt7XHRmaWxlU2l6ZTpWYWx1ZVR5cGVzW1wiQmlnSW50XCJdLFx0ZmlsZVNpemVCZWZvcmU6VmFsdWVUeXBlc1tcIkJpZ0ludFwiXSxcdGZpbGVLZXk6c3RyaW5nLFx0bWQ1OnN0cmluZyxcdG1kNUVuY3J5cHRlZDpzdHJpbmd9LFZhbHVlVHlwZXNbXCJGaWxlUmVzcG9uc2VcIl1dLFxuY3JlYXRlRm9sZGVyPzogW3tcdG5hbWU6c3RyaW5nLFx0a2V5OnN0cmluZyxcdHBhcmVudEZvbGRlcklkPzpzdHJpbmcgfCBudWxsfSxWYWx1ZVR5cGVzW1wiRm9sZGVyXCJdXSxcbm1vdmVGb2xkZXJzPzogW3tcdGZvbGRlcnNJZDpzdHJpbmdbXSxcdHBhcmVudEZvbGRlcklkPzpzdHJpbmcgfCBudWxsfSx0cnVlXSxcbmRlbGV0ZUZvbGRlcj86IFt7XHRpZDpzdHJpbmd9LHRydWVdLFxubW92ZUZpbGVzPzogW3tcdGZpbGVzSWQ6c3RyaW5nW10sXHRwYXJlbnRGb2xkZXJJZD86c3RyaW5nIHwgbnVsbH0sdHJ1ZV0sXG51cGRhdGVGb2xkZXI/OiBbe1x0Zm9sZGVySWQ6c3RyaW5nLFx0bmFtZT86c3RyaW5nIHwgbnVsbCxcdGlzRmF2b3JpdGU/OmJvb2xlYW4gfCBudWxsLFx0ZGVsZXRlZEF0PzpWYWx1ZVR5cGVzW1wiRGF0ZVRpbWVcIl0gfCBudWxsfSxWYWx1ZVR5cGVzW1wiRm9sZGVyXCJdXSxcbmRlbGV0ZVZGaWxlPzogW3tcdGZpbGVJZDpzdHJpbmd9LHRydWVdLFxuY3JlYXRlRHJhZnRNYWlsPzogW3tcdGhhc2g6c3RyaW5nLFx0aGFzaEtleTpzdHJpbmcsXHRib2R5OnN0cmluZyxcdHN1YmplY3Q6c3RyaW5nLFx0cmVwbHlUbz86c3RyaW5nIHwgbnVsbCxcdHNlbmRlckZpbGVzOlZhbHVlVHlwZXNbXCJNYWlsRmlsZUlucHV0XCJdW10sXHRyZWNpcGllbnRzOnN0cmluZ1tdfSxWYWx1ZVR5cGVzW1wiTWFpbFwiXV0sXG5zZW5kRHJhZnRNYWlsPzogW3tcdGRyYWZ0TWFpbElkOnN0cmluZyxcdHRlbXBvcmFyeVJlY2lwaWVudHM6c3RyaW5nW10sXHRyZWNpcGllbnRzOlZhbHVlVHlwZXNbXCJNYWlsUmVjaXBpZW50SW5wdXRcIl1bXSxcdGN1c3RvbU1lc3NhZ2U/OnN0cmluZyB8IG51bGx9LHRydWVdLFxucmVhZE1haWw/OiBbe1x0bWFpbElkOnN0cmluZ30sdHJ1ZV0sXG51bnJlYWRNYWlsPzogW3tcdG1haWxJZDpzdHJpbmd9LHRydWVdLFxudXBkYXRlQXBwU2V0dGluZ3M/OiBbe1x0Y2xvdWRGaWxlRGF5c0ZvckRlbGV0ZT86bnVtYmVyIHwgbnVsbCxcdGNsb3VkRm9sZGVyRGF5c0ZvckRlbGV0ZT86bnVtYmVyIHwgbnVsbCxcdGhpc3RvcnlGaWxlRGF5c0ZvckRlbGV0ZT86bnVtYmVyIHwgbnVsbCxcdGhpc3RvcnlNYXhGaWxlQ291bnQ/Om51bWJlciB8IG51bGwsXHRhdXRvRGlzY29ubmVjdERlbGF5PzpudW1iZXIgfCBudWxsfSxWYWx1ZVR5cGVzW1wiVXNlckFwcFNldHRpbmdzXCJdXSxcbnVwbG9hZEZpbGVFbmQ/OiBbe1x0ZmlsZUlkOnN0cmluZ30sdHJ1ZV0sXG5sb2dvdXQ/OiBbe1x0c2Vzc2lvbklkPzpzdHJpbmcgfCBudWxsfSx0cnVlXSxcbmFkZEZpbGVUb0hpc3Rvcnk/OiBbe1x0dkZpbGVJZDpzdHJpbmcsXHRmaWxlSWQ6c3RyaW5nfSxWYWx1ZVR5cGVzW1wiVkZpbGVcIl1dLFxuc2VuZE9uZU1haWw/OiBbe1x0bWFpbEludGVncml0eUlkOnN0cmluZyxcdHJlY2lwaWVudDpWYWx1ZVR5cGVzW1wiTWFpbFJlY2lwaWVudElucHV0XCJdfSx0cnVlXSxcbmRlbGV0ZURyYWZ0TWFpbD86IFt7XHRkcmFmdElkOnN0cmluZ30sdHJ1ZV0sXG51cGRhdGVEcmFmdE1haWw/OiBbe1x0ZHJhZnRJZDpzdHJpbmcsXHRoYXNoPzpzdHJpbmcgfCBudWxsLFx0aGFzaEtleT86c3RyaW5nIHwgbnVsbCxcdGJvZHk/OnN0cmluZyB8IG51bGwsXHRzdWJqZWN0PzpzdHJpbmcgfCBudWxsLFx0cmVwbHlUbz86c3RyaW5nIHwgbnVsbCxcdHNlbmRlckZpbGVzPzpWYWx1ZVR5cGVzW1wiTWFpbEZpbGVJbnB1dFwiXVtdLFx0cmVjaXBpZW50cz86c3RyaW5nW119LFZhbHVlVHlwZXNbXCJNYWlsXCJdXSxcbmRlbGV0ZVVzZXI/OiBbe1x0dXNlcklkPzpzdHJpbmcgfCBudWxsfSx0cnVlXSxcbnBheT86IFt7XHRwbGFuQ29kZTpzdHJpbmcsXHRpbnB1dDpWYWx1ZVR5cGVzW1wiUGF5SW5wdXRcIl0sXHRhdXRvUmVuZXc/OmJvb2xlYW4gfCBudWxsfSx0cnVlXSxcblx0Y2FuY2VsUGF5bWVudD86dHJ1ZSxcbnNlbmRSZXBvcnQ/OiBbe1x0cmVwb3J0ZWRVc2VySWQ6c3RyaW5nLFx0Y3VzdG9tTWVzc2FnZT86c3RyaW5nIHwgbnVsbH0sVmFsdWVUeXBlc1tcIlJlcG9ydFwiXV0sXG5zYXZlSW5DbG91ZD86IFt7XHRmaWxlSWQ6c3RyaW5nLFx0a2V5OnN0cmluZyxcdGZvbGRlcklkPzpzdHJpbmcgfCBudWxsLFx0ZmlsZW5hbWU6c3RyaW5nLFx0bmFtZUtleTpzdHJpbmd9LFZhbHVlVHlwZXNbXCJWRmlsZVwiXV0sXG5kZWxldGVWRmlsZVNoYXJpbmc/OiBbe1x0dkZpbGVJZDpzdHJpbmcsXHR1c2VySWQ6c3RyaW5nfSx0cnVlXSxcbmRlbGV0ZUZvbGRlclNoYXJpbmc/OiBbe1x0Zm9sZGVySWQ6c3RyaW5nLFx0dXNlcklkOnN0cmluZ30sdHJ1ZV0sXG5kZWxldGVNYWlsPzogW3tcdG1haWxJZDpzdHJpbmd9LHRydWVdLFxuZGVsZXRlRmlsZT86IFt7XHRmaWxlSWQ6c3RyaW5nLFx0dkZpbGVJZDpzdHJpbmd9LHRydWVdLFxuc2hhcmVGaWxlSW5IaXN0b3J5PzogW3tcdGlucHV0OlZhbHVlVHlwZXNbXCJTaGFyZUZpbGVJbkhpc3RvcnlJbnB1dFwiXSxcdHZGaWxlSWQ6c3RyaW5nfSx0cnVlXSxcbnJlY292ZXJGaWxlPzogW3tcdGZpbGVJZDpzdHJpbmd9LHRydWVdLFxucmVjb3Zlck1haWw/OiBbe1x0bWFpbElkOnN0cmluZ30sdHJ1ZV0sXG5yZWNvdmVyRm9sZGVyPzogW3tcdGlkOnN0cmluZ30sdHJ1ZV0sXG5kdXBsaWNhdGVWRmlsZT86IFt7XHRmaWxlSWQ6c3RyaW5nLFx0Zm9sZGVySWQ/OnN0cmluZyB8IG51bGwsXHRjdXN0b21OYW1lPzpzdHJpbmcgfCBudWxsfSx0cnVlXSxcbmRlbGV0ZUZvbGRlckNsb3VkVHJhc2g/OiBbe1x0aWRzOnN0cmluZ1tdfSx0cnVlXSxcbmRlbGV0ZVZGaWxlQ2xvdWRUcmFzaD86IFt7XHRpZHM6c3RyaW5nW119LHRydWVdLFxuZGVsZXRlTWFpbFRyYXNoPzogW3tcdGlkczpzdHJpbmdbXX0sdHJ1ZV0sXG5cdGVtcHR5Q2xvdWRUcmFzaD86dHJ1ZSxcblx0ZW1wdHlNYWlsVHJhc2g/OnRydWUsXG51cGxvYWRGaWxlUGFydEVuZD86IFt7XHRmaWxlSWQ6c3RyaW5nLFx0bWQ1OnN0cmluZyxcdG9yZGVyOm51bWJlcn0sdHJ1ZV0sXG5cdFx0X190eXBlbmFtZT86IHRydWVcbn0+XG4gIH1cblxuZXhwb3J0IHR5cGUgTW9kZWxUeXBlcyA9IHtcbiAgICAvKiogVGhlIGBCaWdJbnRgIHNjYWxhciB0eXBlIHJlcHJlc2VudHMgbm9uLWZyYWN0aW9uYWwgc2lnbmVkIHdob2xlIG51bWVyaWMgdmFsdWVzLlxuQHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9CaWdJbnQgKi9cbltcIkJpZ0ludFwiXTphbnk7XG5cdC8qKiBUaGUgYEJ5dGVgIHNjYWxhciB0eXBlIHJlcHJlc2VudHMgYnl0ZSB2YWx1ZSBhcyBhIEJ1ZmZlciAqL1xuW1wiQnl0ZXNcIl06YW55O1xuXHQvKiogQSBkYXRlLXRpbWUgc3RyaW5nIGF0IFVUQywgc3VjaCBhcyAyMDA3LTEyLTAzVDEwOjE1OjMwWiwgY29tcGxpYW50IHdpdGggdGhlIGBkYXRlLXRpbWVgIGZvcm1hdCBvdXRsaW5lZCBpbiBzZWN0aW9uIDUuNiBvZiB0aGUgUkZDIDMzMzkgcHJvZmlsZSBvZiB0aGUgSVNPIDg2MDEgc3RhbmRhcmQgZm9yIHJlcHJlc2VudGF0aW9uIG9mIGRhdGVzIGFuZCB0aW1lcyB1c2luZyB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyLiAqL1xuW1wiRGF0ZVRpbWVcIl06YW55O1xuXHQvKiogQW4gYXJiaXRyYXJ5LXByZWNpc2lvbiBEZWNpbWFsIHR5cGUgKi9cbltcIkRlY2ltYWxcIl06YW55O1xuXHQvKiogVGhlIGBKU09OT2JqZWN0YCBzY2FsYXIgdHlwZSByZXByZXNlbnRzIEpTT04gb2JqZWN0cyBhcyBzcGVjaWZpZWQgYnkgW0VDTUEtNDA0XShodHRwOi8vd3d3LmVjbWEtaW50ZXJuYXRpb25hbC5vcmcvcHVibGljYXRpb25zL2ZpbGVzL0VDTUEtU1QvRUNNQS00MDQucGRmKS4gKi9cbltcIkpzb25cIl06YW55O1xuXHRbXCJMYW5nXCJdOiBHcmFwaFFMVHlwZXNbXCJMYW5nXCJdO1xuXHRbXCJQbGFuS2luZFwiXTogR3JhcGhRTFR5cGVzW1wiUGxhbktpbmRcIl07XG5cdFtcIlVzZXJSb2xlXCJdOiBHcmFwaFFMVHlwZXNbXCJVc2VyUm9sZVwiXTtcblx0W1wiTWFpbFR5cGVcIl06IEdyYXBoUUxUeXBlc1tcIk1haWxUeXBlXCJdO1xuXHRbXCJSaWdodHNcIl06IEdyYXBoUUxUeXBlc1tcIlJpZ2h0c1wiXTtcblx0W1wiRmlsZVwiXToge1xuXHRcdGlkOnN0cmluZyxcblx0c2l6ZTpNb2RlbFR5cGVzW1wiQmlnSW50XCJdLFxuXHRzaXplQmVmb3JlOk1vZGVsVHlwZXNbXCJCaWdJbnRcIl0sXG5cdGNyZWF0ZWRBdDpNb2RlbFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdHZGaWxlczpNb2RlbFR5cGVzW1wiVkZpbGVcIl1bXSxcblx0dkZpbGVzQ3VycmVudDpNb2RlbFR5cGVzW1wiVkZpbGVcIl1bXSxcblx0dXNlcnM6TW9kZWxUeXBlc1tcIkZpbGVzT25Vc2Vyc09uQXBwbGljYXRpb25zXCJdW10sXG5cdG1kNTpzdHJpbmcsXG5cdG1kNUVuY3J5cHRlZDpzdHJpbmcsXG5cdGRlbGV0ZWRBdD86TW9kZWxUeXBlc1tcIkRhdGVUaW1lXCJdLFxuXHR1c2VyQXBwOk1vZGVsVHlwZXNbXCJBcHBsaWNhdGlvbnNPblVzZXJzXCJdLFxuXHRtYWlsczpNb2RlbFR5cGVzW1wiRmlsZXNPbk1haWxzXCJdW10sXG5cdHZhbGlkYXRlZEF0PzpNb2RlbFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdHVzZXI/Ok1vZGVsVHlwZXNbXCJGaWxlc09uVXNlcnNPbkFwcGxpY2F0aW9uc1wiXVxufTtcblx0W1wiRmlsZVBhcnRcIl06IHtcblx0XHRpZDpzdHJpbmcsXG5cdGZpbGU6TW9kZWxUeXBlc1tcIkZpbGVcIl0sXG5cdGZpbGVJZDpzdHJpbmcsXG5cdHNpemU6TW9kZWxUeXBlc1tcIkJpZ0ludFwiXSxcblx0b3JkZXI6bnVtYmVyLFxuXHRtZDU6c3RyaW5nLFxuXHR2YWxpZGF0ZWRBdD86TW9kZWxUeXBlc1tcIkRhdGVUaW1lXCJdXG59O1xuXHRbXCJGaWxlQ29udGVudFR5cGVcIl06IEdyYXBoUUxUeXBlc1tcIkZpbGVDb250ZW50VHlwZVwiXTtcblx0W1wiRmlsZUNvbnRlbnRQYXJ0XCJdOiB7XG5cdFx0Y29udGVudFVybDpzdHJpbmcsXG5cdG9yZGVyOm51bWJlcixcblx0bWQ1OnN0cmluZ1xufTtcblx0W1wiRmlsZUNvbnRlbnRCYXNlXCJdOiBNb2RlbFR5cGVzW1wiRmlsZUNvbnRlbnRDbG91ZFwiXSB8IE1vZGVsVHlwZXNbXCJGaWxlQ29udGVudFNlbnRNYWlsXCJdIHwgTW9kZWxUeXBlc1tcIkZpbGVDb250ZW50UmVjZWl2ZWRNYWlsXCJdO1xuXHRbXCJGaWxlQ29udGVudENsb3VkXCJdOiB7XG5cdFx0cGFydHM6TW9kZWxUeXBlc1tcIkZpbGVDb250ZW50UGFydFwiXVtdLFxuXHRrZXk6c3RyaW5nLFxuXHRtZDU6c3RyaW5nLFxuXHRtZDVFbmNyeXB0ZWQ6c3RyaW5nLFxuXHR0b3RhbFNpemU6TW9kZWxUeXBlc1tcIkJpZ0ludFwiXSxcblx0dHlwZTpNb2RlbFR5cGVzW1wiRmlsZUNvbnRlbnRUeXBlXCJdLFxuXHRwdWJsaWNLZXk6c3RyaW5nXG59O1xuXHRbXCJGaWxlQ29udGVudFNlbnRNYWlsXCJdOiB7XG5cdFx0cGFydHM6TW9kZWxUeXBlc1tcIkZpbGVDb250ZW50UGFydFwiXVtdLFxuXHRrZXk6c3RyaW5nLFxuXHRtZDU6c3RyaW5nLFxuXHRtZDVFbmNyeXB0ZWQ6c3RyaW5nLFxuXHR0b3RhbFNpemU6TW9kZWxUeXBlc1tcIkJpZ0ludFwiXSxcblx0dHlwZTpNb2RlbFR5cGVzW1wiRmlsZUNvbnRlbnRUeXBlXCJdXG59O1xuXHRbXCJGaWxlQ29udGVudFJlY2VpdmVkTWFpbFwiXToge1xuXHRcdHBhcnRzOk1vZGVsVHlwZXNbXCJGaWxlQ29udGVudFBhcnRcIl1bXSxcblx0a2V5OnN0cmluZyxcblx0bWQ1OnN0cmluZyxcblx0bWQ1RW5jcnlwdGVkOnN0cmluZyxcblx0dG90YWxTaXplOk1vZGVsVHlwZXNbXCJCaWdJbnRcIl0sXG5cdHR5cGU6TW9kZWxUeXBlc1tcIkZpbGVDb250ZW50VHlwZVwiXSxcblx0c2VuZGVyUHVibGljS2V5OnN0cmluZ1xufTtcblx0W1wiRmlsZUNvbnRlbnRcIl06TW9kZWxUeXBlc1tcIkZpbGVDb250ZW50Q2xvdWRcIl0gfCBNb2RlbFR5cGVzW1wiRmlsZUNvbnRlbnRSZWNlaXZlZE1haWxcIl0gfCBNb2RlbFR5cGVzW1wiRmlsZUNvbnRlbnRTZW50TWFpbFwiXTtcblx0W1wiRmlsZVJlc3BvbnNlXCJdOiB7XG5cdFx0ZmlsZUlkOnN0cmluZyxcblx0cGFydHM6TW9kZWxUeXBlc1tcIkZpbGVQYXJ0UmVzcG9uc2VcIl1bXSxcblx0ZmlsZVBhcnRTaXplOk1vZGVsVHlwZXNbXCJCaWdJbnRcIl1cbn07XG5cdFtcIkZpbGVQYXJ0UmVzcG9uc2VcIl06IHtcblx0XHRmaWVsZHM6TW9kZWxUeXBlc1tcIkpzb25cIl0sXG5cdHVybDpzdHJpbmcsXG5cdG9yZGVyOm51bWJlclxufTtcblx0W1wiRmlsZVNoYXJlZFwiXToge1xuXHRcdHVzZXJJZDpzdHJpbmcsXG5cdG1lc3NhZ2U/OnN0cmluZyxcblx0YXBwSWQ6c3RyaW5nLFxuXHRpZDpzdHJpbmcsXG5cdGZpbGVuYW1lOnN0cmluZyxcblx0c2l6ZTpudW1iZXIsXG5cdHNpemVCZWZvcmU6bnVtYmVyXG59O1xuXHRbXCJGaWxlU2hhcmVkQ29udGVudFwiXToge1xuXHRcdG93bmVySWQ/OnN0cmluZyxcblx0cHViS2V5PzpzdHJpbmcsXG5cdG1lc3NhZ2U/OnN0cmluZyxcblx0YXBwSWQ6c3RyaW5nLFxuXHRpZDpzdHJpbmcsXG5cdHR5cGU6c3RyaW5nLFxuXHRmaWxlbmFtZTpzdHJpbmcsXG5cdGNvbnRlbnRVcmw6c3RyaW5nLFxuXHRrZXk6c3RyaW5nLFxuXHRzaXplOm51bWJlcixcblx0c2l6ZUJlZm9yZTpudW1iZXJcbn07XG5cdFtcIkNsb3VkTGltaXRzXCJdOiB7XG5cdFx0c2l6ZTpNb2RlbFR5cGVzW1wiQmlnSW50XCJdLFxuXHRtYXhTaXplPzpNb2RlbFR5cGVzW1wiQmlnSW50XCJdLFxuXHRjb3VudDpNb2RlbFR5cGVzW1wiQmlnSW50XCJdLFxuXHRtYXhDb3VudD86TW9kZWxUeXBlc1tcIkJpZ0ludFwiXVxufTtcblx0W1wiTWFpbExpbWl0c1ZhbHVlc1wiXToge1xuXHRcdGNvdW50Ok1vZGVsVHlwZXNbXCJCaWdJbnRcIl0sXG5cdG1heENvdW50PzpNb2RlbFR5cGVzW1wiQmlnSW50XCJdLFxuXHRmaWxlQ291bnQ6TW9kZWxUeXBlc1tcIkJpZ0ludFwiXSxcblx0bWF4RmlsZUNvdW50PzpNb2RlbFR5cGVzW1wiQmlnSW50XCJdLFxuXHRmaWxlU2l6ZTpNb2RlbFR5cGVzW1wiQmlnSW50XCJdLFxuXHRtYXhGaWxlU2l6ZT86TW9kZWxUeXBlc1tcIkJpZ0ludFwiXVxufTtcblx0W1wiVXNlck1haWxMaW1pdHNcIl06IHtcblx0XHRzZW50Ok1vZGVsVHlwZXNbXCJNYWlsTGltaXRzVmFsdWVzXCJdLFxuXHRyZWNlaXZlZDpNb2RlbFR5cGVzW1wiTWFpbExpbWl0c1ZhbHVlc1wiXVxufTtcblx0W1wiUXVlcnlMaW1pdHNcIl06IHtcblx0XHRjbG91ZDpNb2RlbFR5cGVzW1wiQ2xvdWRMaW1pdHNcIl0sXG5cdG1haWw6TW9kZWxUeXBlc1tcIlVzZXJNYWlsTGltaXRzXCJdXG59O1xuXHRbXCJMaW1pdHNcIl06IHtcblx0XHRkb3dubG9hZEJhbmR3aWR0aD86TW9kZWxUeXBlc1tcIkJpZ0ludFwiXSxcblx0ZG93bmxvYWRDb3VudD86TW9kZWxUeXBlc1tcIkJpZ0ludFwiXSxcblx0aGFyZEZpbGVDb3VudD86TW9kZWxUeXBlc1tcIkJpZ0ludFwiXSxcblx0aGFyZEZpbGVTaXplPzpNb2RlbFR5cGVzW1wiQmlnSW50XCJdLFxuXHRwZXJGaWxlU2l6ZT86TW9kZWxUeXBlc1tcIkJpZ0ludFwiXSxcblx0cmVjZWl2ZWRNYWlsczpNb2RlbFR5cGVzW1wiTWFpbExpbWl0c1wiXSxcblx0c2VudE1haWxzOk1vZGVsVHlwZXNbXCJNYWlsTGltaXRzXCJdLFxuXHR1cGxvYWRCYW5kd2lkdGg/Ok1vZGVsVHlwZXNbXCJCaWdJbnRcIl0sXG5cdHVwbG9hZENvdW50PzpNb2RlbFR5cGVzW1wiQmlnSW50XCJdXG59O1xuXHRbXCJNYWlsTGltaXRzXCJdOiB7XG5cdFx0Y291bnQ/Ok1vZGVsVHlwZXNbXCJCaWdJbnRcIl0sXG5cdGZpbGVDb3VudD86TW9kZWxUeXBlc1tcIkJpZ0ludFwiXSxcblx0ZmlsZVNpemU/Ok1vZGVsVHlwZXNbXCJCaWdJbnRcIl0sXG5cdGhhcmRDb3VudD86TW9kZWxUeXBlc1tcIkJpZ0ludFwiXSxcblx0aGFyZEZpbGVDb3VudD86TW9kZWxUeXBlc1tcIkJpZ0ludFwiXSxcblx0aGFyZEZpbGVTaXplPzpNb2RlbFR5cGVzW1wiQmlnSW50XCJdLFxuXHRwZXJGaWxlU2l6ZT86TW9kZWxUeXBlc1tcIkJpZ0ludFwiXVxufTtcblx0W1wiVXNlclwiXToge1xuXHRcdGlkOnN0cmluZyxcblx0ZGVsZXRlZEF0PzpNb2RlbFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdGxhbmc6TW9kZWxUeXBlc1tcIkxhbmdcIl0sXG5cdHJlcG9ydFNlbnQ6TW9kZWxUeXBlc1tcIlJlcG9ydFwiXVtdLFxuXHRnb2RGYXRoZXI/Ok1vZGVsVHlwZXNbXCJVc2VyXCJdLFxuXHRnb2RDaGlsZHJlbjpNb2RlbFR5cGVzW1wiVXNlclwiXVtdLFxuXHRmaXJzdG5hbWU6c3RyaW5nLFxuXHRsYXN0bmFtZTpzdHJpbmcsXG5cdGVtYWlsOnN0cmluZyxcblx0cGhvbmU6c3RyaW5nLFxuXHRsYXN0TG9naW46TW9kZWxUeXBlc1tcIkRhdGVUaW1lXCJdLFxuXHRyb2xlOk1vZGVsVHlwZXNbXCJVc2VyUm9sZVwiXSxcblx0c2Vzc2lvbnM6TW9kZWxUeXBlc1tcIlVzZXJTZXNzaW9uXCJdW10sXG5cdGNyZWF0ZWRBdDpNb2RlbFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdHJlY2VpdmVkTWFpbHM6TW9kZWxUeXBlc1tcIk1haWxcIl1bXSxcblx0d2FpdGluZ1JlY2VpdmVkTWFpbHM6TW9kZWxUeXBlc1tcIldhaXRpbmdSZWNlaXZlZE1haWxcIl1bXSxcblx0c2VudE1haWxzOk1vZGVsVHlwZXNbXCJNYWlsXCJdW10sXG5cdGRyYWZ0TWFpbHM6TW9kZWxUeXBlc1tcIk1haWxcIl1bXSxcblx0YXBwU2V0dGluZ3M/Ok1vZGVsVHlwZXNbXCJVc2VyQXBwU2V0dGluZ3NcIl0sXG5cdGFwcGxpY2F0aW9uczpNb2RlbFR5cGVzW1wiQXBwbGljYXRpb25zT25Vc2Vyc1wiXVtdLFxuXHRwdWJsaWNLZXk6c3RyaW5nXG59O1xuXHRbXCJNYWlsXCJdOiB7XG5cdFx0aWQ6c3RyaW5nLFxuXHRhcHA6TW9kZWxUeXBlc1tcIkFwcGxpY2F0aW9uXCJdLFxuXHRib2R5OnN0cmluZyxcblx0Y3JlYXRlZEF0Ok1vZGVsVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0ZGVsZXRlZEF0PzpNb2RlbFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdGZpbGVzOk1vZGVsVHlwZXNbXCJGaWxlc09uTWFpbHNcIl1bXSxcblx0bWFpbEludGVncml0eT86TW9kZWxUeXBlc1tcIk1haWxJbnRlZ3JpdHlcIl0sXG5cdG1haWxJbnRlZ3JpdHlEcmFmdD86TW9kZWxUeXBlc1tcIk1haWxJbnRlZ3JpdHlEcmFmdFwiXSxcblx0b3BlbmVkQXQ/Ok1vZGVsVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0cmVjaXBpZW50Ok1vZGVsVHlwZXNbXCJVc2VyXCJdLFxuXHRzZW5kZXI6TW9kZWxUeXBlc1tcIlVzZXJcIl0sXG5cdHN1YmplY3Q6c3RyaW5nLFxuXHR0eXBlOk1vZGVsVHlwZXNbXCJNYWlsVHlwZVwiXSxcblx0cmVjaXBpZW50czpNb2RlbFR5cGVzW1wiVXNlclwiXVtdXG59O1xuXHRbXCJNYWlsSW50ZWdyaXR5XCJdOiB7XG5cdFx0aWQ6c3RyaW5nLFxuXHRoYXNoOnN0cmluZyxcblx0aGFzaEtleTpzdHJpbmcsXG5cdGFuc3dlcnM6TW9kZWxUeXBlc1tcIk1haWxJbnRlZ3JpdHlcIl1bXSxcblx0YXBwOk1vZGVsVHlwZXNbXCJBcHBsaWNhdGlvblwiXSxcblx0bWFpbHM6TW9kZWxUeXBlc1tcIk1haWxcIl1bXSxcblx0cmVjaXBpZW50czpNb2RlbFR5cGVzW1wiVXNlclwiXVtdLFxuXHR0ZW1wb3JhcnlSZWNpcGllbnRzOk1vZGVsVHlwZXNbXCJUZW1wb3JhcnlVc2VyXCJdW10sXG5cdHJlcGx5VG8/Ok1vZGVsVHlwZXNbXCJNYWlsSW50ZWdyaXR5XCJdXG59O1xuXHRbXCJGaWxlc09uTWFpbHNcIl06IHtcblx0XHRmaWxlOk1vZGVsVHlwZXNbXCJGaWxlXCJdLFxuXHRmaWxlS2V5OnN0cmluZyxcblx0ZmlsZW5hbWU6c3RyaW5nLFxuXHRtYWlsOk1vZGVsVHlwZXNbXCJNYWlsXCJdXG59O1xuXHRbXCJGaWxlc09uVXNlcnNPbkFwcGxpY2F0aW9uc1wiXToge1xuXHRcdGZpbGU6TW9kZWxUeXBlc1tcIkZpbGVcIl0sXG5cdHVzZXJBcHA6TW9kZWxUeXBlc1tcIkFwcGxpY2F0aW9uc09uVXNlcnNcIl0sXG5cdC8qKiBFbmNyeXB0ZWQgd2l0aCBVc2VyQXBwIGtleXMgKi9cblx0a2V5OnN0cmluZ1xufTtcblx0W1wiVkZpbGVcIl06IHtcblx0XHRpZDpzdHJpbmcsXG5cdGlzRmF2b3JpdGU6Ym9vbGVhbixcblx0Y3JlYXRlZEF0Ok1vZGVsVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0ZGVsZXRlZEF0PzpNb2RlbFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdGZpbGVuYW1lOnN0cmluZyxcblx0dXNlckFwcHM6TW9kZWxUeXBlc1tcIlZGaWxlc09uVXNlcnNPbkFwcGxpY2F0aW9uc1wiXVtdLFxuXHRjcmVhdGVkQnk6TW9kZWxUeXBlc1tcIkFwcGxpY2F0aW9uc09uVXNlcnNcIl0sXG5cdHVzZXJBcHA/Ok1vZGVsVHlwZXNbXCJWRmlsZXNPblVzZXJzT25BcHBsaWNhdGlvbnNcIl0sXG5cdGZvbGRlcjpNb2RlbFR5cGVzW1wiRm9sZGVyXCJdLFxuXHRoaXN0b3J5Ok1vZGVsVHlwZXNbXCJGaWxlXCJdW10sXG5cdGN1cnJlbnQ/Ok1vZGVsVHlwZXNbXCJGaWxlXCJdLFxuXHR1cGRhdGVkQXQ6TW9kZWxUeXBlc1tcIkRhdGVUaW1lXCJdXG59O1xuXHRbXCJGb2xkZXJCcmVhZGNydW1iSXRlbVwiXToge1xuXHRcdGlkOnN0cmluZyxcblx0bmFtZTpzdHJpbmcsXG5cdHB1YktleTpzdHJpbmcsXG5cdG5hbWVLZXk/OnN0cmluZ1xufTtcblx0W1wiRm9sZGVyXCJdOiB7XG5cdFx0aWQ6c3RyaW5nLFxuXHRpc0Zhdm9yaXRlOmJvb2xlYW4sXG5cdGNyZWF0ZWRBdDpNb2RlbFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdGRlbGV0ZWRBdD86TW9kZWxUeXBlc1tcIkRhdGVUaW1lXCJdLFxuXHR1cGRhdGVkQXQ6TW9kZWxUeXBlc1tcIkRhdGVUaW1lXCJdLFxuXHRjcmVhdGVkQnk6TW9kZWxUeXBlc1tcIkFwcGxpY2F0aW9uc09uVXNlcnNcIl0sXG5cdHVzZXJBcHBzOk1vZGVsVHlwZXNbXCJGb2xkZXJzT25Vc2Vyc09uQXBwbGljYXRpb25zXCJdW10sXG5cdHVzZXJBcHA/Ok1vZGVsVHlwZXNbXCJGb2xkZXJzT25Vc2Vyc09uQXBwbGljYXRpb25zXCJdLFxuXHRuYW1lOnN0cmluZyxcblx0cGFyZW50Rm9sZGVyPzpNb2RlbFR5cGVzW1wiRm9sZGVyXCJdLFxuXHRzdWJmb2xkZXJzOk1vZGVsVHlwZXNbXCJGb2xkZXJcIl1bXSxcblx0dkZpbGVzOk1vZGVsVHlwZXNbXCJWRmlsZVwiXVtdLFxuXHRicmVhZGNydW1iOk1vZGVsVHlwZXNbXCJGb2xkZXJCcmVhZGNydW1iSXRlbVwiXVtdXG59O1xuXHRbXCJBcHBsaWNhdGlvblwiXToge1xuXHRcdGlkOnN0cmluZyxcblx0bmFtZTpzdHJpbmdcbn07XG5cdFtcIkFwcGxpY2F0aW9uc09uVXNlcnNcIl06IHtcblx0XHRmYWtlVXNlcklkOnN0cmluZyxcblx0a2V5UGFpcj86TW9kZWxUeXBlc1tcIkFwcEtleVBhaXJcIl0sXG5cdHNlc3Npb25zOk1vZGVsVHlwZXNbXCJBcHBTZXNzaW9uXCJdW10sXG5cdGFwcDpNb2RlbFR5cGVzW1wiQXBwbGljYXRpb25cIl0sXG5cdHVzZXI6TW9kZWxUeXBlc1tcIlVzZXJcIl0sXG5cdGZvbGRlcnM6TW9kZWxUeXBlc1tcIkZvbGRlcnNPblVzZXJzT25BcHBsaWNhdGlvbnNcIl1bXSxcblx0c2V0dGluZ3M6TW9kZWxUeXBlc1tcIlVzZXJBcHBTZXR0aW5nc1wiXVxufTtcblx0W1wiQXBwS2V5UGFpclwiXToge1xuXHRcdHB1YjpzdHJpbmdcbn07XG5cdFtcIkZvbGRlclNpemVcIl06IHtcblx0XHRzaXplOk1vZGVsVHlwZXNbXCJCaWdJbnRcIl0sXG5cdHNpemVCZWZvcmU6TW9kZWxUeXBlc1tcIkJpZ0ludFwiXVxufTtcblx0W1wiVXNlclNlc3Npb25cIl06IHtcblx0XHRpZDpzdHJpbmcsXG5cdGFwcFNlc3Npb25zOk1vZGVsVHlwZXNbXCJBcHBTZXNzaW9uXCJdW10sXG5cdGxhc3RBY3Rpdml0eT86TW9kZWxUeXBlc1tcIkRhdGVUaW1lXCJdLFxuXHR1c2VyQWdlbnQ/OnN0cmluZyxcblx0aXA/OnN0cmluZyxcblx0Y2l0eT86c3RyaW5nLFxuXHRjb3VudHJ5PzpzdHJpbmcsXG5cdGNyZWF0ZWRBdDpNb2RlbFR5cGVzW1wiRGF0ZVRpbWVcIl1cbn07XG5cdFtcIkFwcFNlc3Npb25cIl06IHtcblx0XHRpZDpzdHJpbmcsXG5cdGxhc3RBY3Rpdml0eT86TW9kZWxUeXBlc1tcIkRhdGVUaW1lXCJdLFxuXHR1c2VyQWdlbnQ/OnN0cmluZyxcblx0aXA/OnN0cmluZyxcblx0Y2l0eT86c3RyaW5nLFxuXHRjb3VudHJ5PzpzdHJpbmcsXG5cdHVzZXJTZXNzaW9uOk1vZGVsVHlwZXNbXCJVc2VyU2Vzc2lvblwiXSxcblx0dXNlckFwcD86TW9kZWxUeXBlc1tcIkFwcGxpY2F0aW9uc09uVXNlcnNcIl0sXG5cdGNyZWF0ZWRBdDpNb2RlbFR5cGVzW1wiRGF0ZVRpbWVcIl1cbn07XG5cdFtcIlVzZXJBcHBTZXR0aW5nc1wiXToge1xuXHRcdGlkOnN0cmluZyxcblx0Y2xvdWRGaWxlRGF5c0ZvckRlbGV0ZTpudW1iZXIsXG5cdGNsb3VkRm9sZGVyRGF5c0ZvckRlbGV0ZTpudW1iZXIsXG5cdGhpc3RvcnlGaWxlRGF5c0ZvckRlbGV0ZT86bnVtYmVyLFxuXHRoaXN0b3J5TWF4RmlsZUNvdW50Om51bWJlcixcblx0YXV0b0Rpc2Nvbm5lY3REZWxheT86bnVtYmVyXG59O1xuXHRbXCJNYWlsRmlsZUlucHV0XCJdOiBHcmFwaFFMVHlwZXNbXCJNYWlsRmlsZUlucHV0XCJdO1xuXHRbXCJNYWlsUmVjaXBpZW50SW5wdXRcIl06IEdyYXBoUUxUeXBlc1tcIk1haWxSZWNpcGllbnRJbnB1dFwiXTtcblx0W1wiU2hhcmVGaWxlS2V5SW5wdXRcIl06IEdyYXBoUUxUeXBlc1tcIlNoYXJlRmlsZUtleUlucHV0XCJdO1xuXHRbXCJOYW1lS2V5SW5wdXRcIl06IEdyYXBoUUxUeXBlc1tcIk5hbWVLZXlJbnB1dFwiXTtcblx0W1wiTmFtZUtleUlucHV0Rm9sZGVyc1wiXTogR3JhcGhRTFR5cGVzW1wiTmFtZUtleUlucHV0Rm9sZGVyc1wiXTtcblx0W1wiU2hhcmVGb2xkZXJzSW5wdXRcIl06IEdyYXBoUUxUeXBlc1tcIlNoYXJlRm9sZGVyc0lucHV0XCJdO1xuXHRbXCJTaGFyZUZpbGVJbkhpc3RvcnlJbnB1dFwiXTogR3JhcGhRTFR5cGVzW1wiU2hhcmVGaWxlSW5IaXN0b3J5SW5wdXRcIl07XG5cdFtcIlBheUlucHV0VHlwZVwiXTogR3JhcGhRTFR5cGVzW1wiUGF5SW5wdXRUeXBlXCJdO1xuXHRbXCJQYXlJbnB1dFwiXTogR3JhcGhRTFR5cGVzW1wiUGF5SW5wdXRcIl07XG5cdFtcIldhaXRpbmdSZWNlaXZlZE1haWxcIl06IHtcblx0XHRzZW5kZXI6TW9kZWxUeXBlc1tcIlVzZXJcIl0sXG5cdGRhdGU6TW9kZWxUeXBlc1tcIkRhdGVUaW1lXCJdLFxuXHRyZWNpcGllbnRzOk1vZGVsVHlwZXNbXCJVc2VyXCJdW10sXG5cdHRlbXBvcmFyeVJlY2lwaWVudHM6TW9kZWxUeXBlc1tcIlRlbXBvcmFyeVVzZXJcIl1bXSxcblx0YXR0YWNobWVudHNDb3VudDpudW1iZXJcbn07XG5cdFtcIlRlbXBvcmFyeVVzZXJcIl06IHtcblx0XHRpZDpzdHJpbmcsXG5cdG1haWxzOk1vZGVsVHlwZXNbXCJNYWlsSW50ZWdyaXR5XCJdW10sXG5cdGRyYWZ0TWFpbHM6TW9kZWxUeXBlc1tcIk1haWxJbnRlZ3JpdHlEcmFmdFwiXVtdLFxuXHRlbWFpbD86c3RyaW5nXG59O1xuXHRbXCJNYWlsSW50ZWdyaXR5RHJhZnRcIl06IHtcblx0XHRpZDpzdHJpbmcsXG5cdGhhc2g6c3RyaW5nLFxuXHRoYXNoS2V5OnN0cmluZyxcblx0YXBwOk1vZGVsVHlwZXNbXCJBcHBsaWNhdGlvblwiXSxcblx0bWFpbDpNb2RlbFR5cGVzW1wiTWFpbFwiXSxcblx0cmVjaXBpZW50czpNb2RlbFR5cGVzW1wiVXNlclwiXVtdLFxuXHR0ZW1wb3JhcnlSZWNpcGllbnRzOk1vZGVsVHlwZXNbXCJUZW1wb3JhcnlVc2VyXCJdW10sXG5cdHJlcGx5VG8/Ok1vZGVsVHlwZXNbXCJNYWlsSW50ZWdyaXR5XCJdXG59O1xuXHRbXCJGYXFcIl06IHtcblx0XHRpZDpzdHJpbmcsXG5cdG9yZGVyOm51bWJlcixcblx0ZW50cmllczpNb2RlbFR5cGVzW1wiRmFxRW50cnlcIl1bXVxufTtcblx0W1wiRmFxRW50cnlcIl06IHtcblx0XHRpZDpzdHJpbmcsXG5cdGxhbmc6TW9kZWxUeXBlc1tcIkxhbmdcIl0sXG5cdHF1ZXN0aW9uOnN0cmluZyxcblx0YW5zd2VyOnN0cmluZyxcblx0ZmFxOk1vZGVsVHlwZXNbXCJGYXFcIl1cbn07XG5cdFtcIlBsYW5cIl06IHtcblx0XHRpZDpzdHJpbmcsXG5cdGtpbmQ6TW9kZWxUeXBlc1tcIlBsYW5LaW5kXCJdLFxuXHRjb2RlczpzdHJpbmdbXSxcblx0bGltaXRzOk1vZGVsVHlwZXNbXCJMaW1pdHNcIl1cbn07XG5cdFtcIlJlcG9ydFwiXToge1xuXHRcdGlkOnN0cmluZyxcblx0dXNlcjpNb2RlbFR5cGVzW1wiVXNlclwiXSxcblx0cmVwb3J0ZWRVc2VyOk1vZGVsVHlwZXNbXCJVc2VyXCJdLFxuXHRjdXN0b21NZXNzYWdlPzpzdHJpbmdcbn07XG5cdFtcIkZvbGRlcnNPblVzZXJzT25BcHBsaWNhdGlvbnNcIl06IHtcblx0XHRmb2xkZXI6TW9kZWxUeXBlc1tcIkZvbGRlclwiXSxcblx0dXNlckFwcDpNb2RlbFR5cGVzW1wiQXBwbGljYXRpb25zT25Vc2Vyc1wiXSxcblx0cmlnaHRzOk1vZGVsVHlwZXNbXCJSaWdodHNcIl0sXG5cdG5hbWVLZXk/OnN0cmluZyxcblx0aXNSb290OmJvb2xlYW5cbn07XG5cdFtcIlZGaWxlc09uVXNlcnNPbkFwcGxpY2F0aW9uc1wiXToge1xuXHRcdHZGaWxlOk1vZGVsVHlwZXNbXCJWRmlsZVwiXSxcblx0dXNlckFwcDpNb2RlbFR5cGVzW1wiQXBwbGljYXRpb25zT25Vc2Vyc1wiXSxcblx0cmlnaHRzOk1vZGVsVHlwZXNbXCJSaWdodHNcIl0sXG5cdG5hbWVLZXk6c3RyaW5nLFxuXHRpc1Jvb3Q6Ym9vbGVhblxufTtcblx0W1wiRmFxSXRlbVwiXToge1xuXHRcdG9yZGVyOm51bWJlcixcblx0cXVlc3Rpb246c3RyaW5nLFxuXHRhbnN3ZXI6c3RyaW5nXG59O1xuXHRbXCJCbG9nXCJdOiB7XG5cdFx0aWQ6c3RyaW5nLFxuXHRvcmRlcjpudW1iZXIsXG5cdGVudHJpZXM6TW9kZWxUeXBlc1tcIkJsb2dFbnRyeVwiXVtdXG59O1xuXHRbXCJCbG9nRW50cnlcIl06IHtcblx0XHRpZDpzdHJpbmcsXG5cdGxhbmc6TW9kZWxUeXBlc1tcIkxhbmdcIl0sXG5cdGF1dGhvcjpzdHJpbmcsXG5cdGJvZHk6c3RyaW5nLFxuXHRkYXRlOk1vZGVsVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0aW1hZ2U6c3RyaW5nLFxuXHRzdW1tYXJ5OnN0cmluZyxcblx0dGl0bGU6c3RyaW5nXG59O1xuXHRbXCJCbG9nSXRlbVwiXToge1xuXHRcdGlkOnN0cmluZyxcblx0YmxvZ0lkOnN0cmluZyxcblx0b3JkZXI6bnVtYmVyLFxuXHR0aXRsZTpzdHJpbmcsXG5cdGJvZHk6c3RyaW5nLFxuXHRhdXRob3I6c3RyaW5nLFxuXHRpbWFnZTpzdHJpbmcsXG5cdGltYWdlQWx0OnN0cmluZyxcblx0c3VtbWFyeTpzdHJpbmcsXG5cdGRhdGU6TW9kZWxUeXBlc1tcIkRhdGVUaW1lXCJdXG59O1xuXHRbXCJSZWN1cmx5SW52b2ljZXNcIl06IHtcblx0XHRwZGY6c3RyaW5nLFxuXHRkYXRlOk1vZGVsVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0ZHVlOk1vZGVsVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0c3RhdHVzOnN0cmluZyxcblx0dG90YWw6bnVtYmVyLFxuXHRuYW1lOnN0cmluZyxcblx0Y3VycmVuY3k6c3RyaW5nXG59O1xuXHRbXCJSZWN1cmx5U3Vic2NyaXB0aW9uXCJdOiB7XG5cdFx0YXV0b3JlbmV3OmJvb2xlYW4sXG5cdGFjdGl2YXRlZEF0PzpNb2RlbFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdGN1cnJlbnRQZXJpb2RFbmRzQXQ/Ok1vZGVsVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0Y3VycmVudFBlcmlvZFN0YXJ0ZWRBdD86TW9kZWxUeXBlc1tcIkRhdGVUaW1lXCJdLFxuXHRjYW5jZWxlZEF0PzpNb2RlbFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdGNyZWF0ZWRBdD86TW9kZWxUeXBlc1tcIkRhdGVUaW1lXCJdLFxuXHRleHBpcmVzQXQ/Ok1vZGVsVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0cGF1c2VkQXQ/Ok1vZGVsVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0dHJpYWxFbmRzQXQ/Ok1vZGVsVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0dHJpYWxTdGFydGVkQXQ/Ok1vZGVsVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0dXBkYXRlZEF0PzpNb2RlbFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdHN0YXRlOnN0cmluZyxcblx0Y29sbGVjdGlvbk1ldGhvZDpzdHJpbmcsXG5cdHBsYW4/OnN0cmluZyxcblx0cGxhbkNvZGU/OnN0cmluZyxcblx0dG90YWw/Om51bWJlclxufTtcblx0W1wiUGF5bWVudEluZm9zXCJdOiB7XG5cdFx0aG9zdGVkVXJsOnN0cmluZyxcblx0Y3VycmVudFN1YnNjcmlwdGlvbjpNb2RlbFR5cGVzW1wiUmVjdXJseVN1YnNjcmlwdGlvblwiXSxcblx0aW52b2ljZXM6TW9kZWxUeXBlc1tcIlJlY3VybHlJbnZvaWNlc1wiXVtdXG59O1xuXHRbXCJTaGFyZUZvbGRlclJlc3BvbnNlXCJdOiB7XG5cdFx0Zm9sZGVyczpzdHJpbmdbXSxcblx0dkZpbGVzOnN0cmluZ1tdXG59O1xuXHRbXCJRdWVyeVwiXToge1xuXHRcdHRlc3Q/OmJvb2xlYW4sXG5cdGxpbWl0cz86TW9kZWxUeXBlc1tcIlF1ZXJ5TGltaXRzXCJdLFxuXHR1c2VyPzpNb2RlbFR5cGVzW1wiVXNlclwiXSxcblx0ZGJDb25maWc/Ok1vZGVsVHlwZXNbXCJKc29uXCJdLFxuXHRkYkdldD86TW9kZWxUeXBlc1tcIkpzb25cIl0sXG5cdGRiU2VhcmNoOk1vZGVsVHlwZXNbXCJKc29uXCJdW10sXG5cdGZpbGVDb250ZW50PzpNb2RlbFR5cGVzW1wiRmlsZUNvbnRlbnRcIl0sXG5cdGZpbGVzU2hhcmVkV2l0aE1lOk1vZGVsVHlwZXNbXCJGaWxlU2hhcmVkQ29udGVudFwiXVtdLFxuXHR2RmlsZXNTaGFyZWRXaXRoTWU6TW9kZWxUeXBlc1tcIlZGaWxlXCJdW10sXG5cdGZvbGRlcnNTaGFyZWRXaXRoTWU6TW9kZWxUeXBlc1tcIkZvbGRlclwiXVtdLFxuXHRmb2xkZXJTaXplPzpNb2RlbFR5cGVzW1wiRm9sZGVyU2l6ZVwiXSxcblx0Zm9sZGVyPzpNb2RlbFR5cGVzW1wiRm9sZGVyXCJdLFxuXHR2RmlsZT86TW9kZWxUeXBlc1tcIlZGaWxlXCJdLFxuXHRmaWxlPzpNb2RlbFR5cGVzW1wiRmlsZVwiXSxcblx0ZmFxOk1vZGVsVHlwZXNbXCJGYXFJdGVtXCJdW10sXG5cdHBheW1lbnRJbmZvcz86TW9kZWxUeXBlc1tcIlBheW1lbnRJbmZvc1wiXSxcblx0cGxhbnM6TW9kZWxUeXBlc1tcIlBsYW5cIl1bXSxcblx0c2hhcmVkRm9sZGVyczpNb2RlbFR5cGVzW1wiRm9sZGVyXCJdW10sXG5cdHNoYXJlZFZGaWxlczpNb2RlbFR5cGVzW1wiVkZpbGVcIl1bXSxcblx0YmxvZzpNb2RlbFR5cGVzW1wiQmxvZ0l0ZW1cIl1bXSxcblx0ZGVsZXRlZEZvbGRlcnM6TW9kZWxUeXBlc1tcIkZvbGRlclwiXVtdLFxuXHRkZWxldGVkVkZpbGVzOk1vZGVsVHlwZXNbXCJWRmlsZVwiXVtdLFxuXHRtYWlsPzpNb2RlbFR5cGVzW1wiTWFpbFwiXSxcblx0ZGVsZXRlZE1haWxzOk1vZGVsVHlwZXNbXCJNYWlsXCJdW11cbn07XG5cdFtcIk11dGF0aW9uXCJdOiB7XG5cdFx0Y3JlYXRlQXBwbGljYXRpb24/OnN0cmluZyxcblx0ZGJTZXQ/Ok1vZGVsVHlwZXNbXCJKc29uXCJdLFxuXHRkYkNvbmZpZzpNb2RlbFR5cGVzW1wiSnNvblwiXSxcblx0c2hhcmVWRmlsZT86Ym9vbGVhbixcblx0c2hhcmVGb2xkZXI6TW9kZWxUeXBlc1tcIlNoYXJlRm9sZGVyUmVzcG9uc2VcIl0sXG5cdHNoYXJlRm9sZGVyRmluaXNoPzpib29sZWFuLFxuXHR1cGRhdGVGaWxlPzpNb2RlbFR5cGVzW1wiVkZpbGVcIl0sXG5cdHVwZGF0ZVByb2ZpbGU/Ok1vZGVsVHlwZXNbXCJVc2VyXCJdLFxuXHR1cGxvYWRBbm9ueW1vdXM/Ok1vZGVsVHlwZXNbXCJGaWxlUmVzcG9uc2VcIl0sXG5cdHVwbG9hZEZpbGU/Ok1vZGVsVHlwZXNbXCJGaWxlUmVzcG9uc2VcIl0sXG5cdGNyZWF0ZUZvbGRlcj86TW9kZWxUeXBlc1tcIkZvbGRlclwiXSxcblx0bW92ZUZvbGRlcnM/OmJvb2xlYW4sXG5cdGRlbGV0ZUZvbGRlcj86Ym9vbGVhbixcblx0bW92ZUZpbGVzPzpib29sZWFuLFxuXHR1cGRhdGVGb2xkZXI/Ok1vZGVsVHlwZXNbXCJGb2xkZXJcIl0sXG5cdGRlbGV0ZVZGaWxlOmJvb2xlYW4sXG5cdGNyZWF0ZURyYWZ0TWFpbD86TW9kZWxUeXBlc1tcIk1haWxcIl0sXG5cdHNlbmREcmFmdE1haWw/OmJvb2xlYW4sXG5cdHJlYWRNYWlsPzpib29sZWFuLFxuXHR1bnJlYWRNYWlsPzpib29sZWFuLFxuXHR1cGRhdGVBcHBTZXR0aW5nczpNb2RlbFR5cGVzW1wiVXNlckFwcFNldHRpbmdzXCJdLFxuXHR1cGxvYWRGaWxlRW5kPzpzdHJpbmcsXG5cdGxvZ291dD86Ym9vbGVhbixcblx0YWRkRmlsZVRvSGlzdG9yeTpNb2RlbFR5cGVzW1wiVkZpbGVcIl0sXG5cdHNlbmRPbmVNYWlsPzpib29sZWFuLFxuXHRkZWxldGVEcmFmdE1haWw/OmJvb2xlYW4sXG5cdHVwZGF0ZURyYWZ0TWFpbD86TW9kZWxUeXBlc1tcIk1haWxcIl0sXG5cdGRlbGV0ZVVzZXI/OmJvb2xlYW4sXG5cdHBheTpib29sZWFuLFxuXHRjYW5jZWxQYXltZW50Pzpib29sZWFuLFxuXHRzZW5kUmVwb3J0PzpNb2RlbFR5cGVzW1wiUmVwb3J0XCJdLFxuXHRzYXZlSW5DbG91ZDpNb2RlbFR5cGVzW1wiVkZpbGVcIl0sXG5cdGRlbGV0ZVZGaWxlU2hhcmluZzpib29sZWFuLFxuXHRkZWxldGVGb2xkZXJTaGFyaW5nOmJvb2xlYW4sXG5cdGRlbGV0ZU1haWw6Ym9vbGVhbixcblx0ZGVsZXRlRmlsZTpib29sZWFuLFxuXHRzaGFyZUZpbGVJbkhpc3Rvcnk6Ym9vbGVhbixcblx0cmVjb3ZlckZpbGU6Ym9vbGVhbixcblx0cmVjb3Zlck1haWw6Ym9vbGVhbixcblx0cmVjb3ZlckZvbGRlcj86Ym9vbGVhbixcblx0ZHVwbGljYXRlVkZpbGU6Ym9vbGVhbixcblx0ZGVsZXRlRm9sZGVyQ2xvdWRUcmFzaD86Ym9vbGVhbixcblx0ZGVsZXRlVkZpbGVDbG91ZFRyYXNoPzpib29sZWFuLFxuXHRkZWxldGVNYWlsVHJhc2g6Ym9vbGVhbixcblx0ZW1wdHlDbG91ZFRyYXNoPzpib29sZWFuLFxuXHRlbXB0eU1haWxUcmFzaD86Ym9vbGVhbixcblx0dXBsb2FkRmlsZVBhcnRFbmQ6Ym9vbGVhblxufVxuICAgIH1cblxuZXhwb3J0IHR5cGUgR3JhcGhRTFR5cGVzID0ge1xuICAgIC8qKiBUaGUgYEJpZ0ludGAgc2NhbGFyIHR5cGUgcmVwcmVzZW50cyBub24tZnJhY3Rpb25hbCBzaWduZWQgd2hvbGUgbnVtZXJpYyB2YWx1ZXMuXG5Ac2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0JpZ0ludCAqL1xuW1wiQmlnSW50XCJdOmFueTtcblx0LyoqIFRoZSBgQnl0ZWAgc2NhbGFyIHR5cGUgcmVwcmVzZW50cyBieXRlIHZhbHVlIGFzIGEgQnVmZmVyICovXG5bXCJCeXRlc1wiXTphbnk7XG5cdC8qKiBBIGRhdGUtdGltZSBzdHJpbmcgYXQgVVRDLCBzdWNoIGFzIDIwMDctMTItMDNUMTA6MTU6MzBaLCBjb21wbGlhbnQgd2l0aCB0aGUgYGRhdGUtdGltZWAgZm9ybWF0IG91dGxpbmVkIGluIHNlY3Rpb24gNS42IG9mIHRoZSBSRkMgMzMzOSBwcm9maWxlIG9mIHRoZSBJU08gODYwMSBzdGFuZGFyZCBmb3IgcmVwcmVzZW50YXRpb24gb2YgZGF0ZXMgYW5kIHRpbWVzIHVzaW5nIHRoZSBHcmVnb3JpYW4gY2FsZW5kYXIuICovXG5bXCJEYXRlVGltZVwiXTphbnk7XG5cdC8qKiBBbiBhcmJpdHJhcnktcHJlY2lzaW9uIERlY2ltYWwgdHlwZSAqL1xuW1wiRGVjaW1hbFwiXTphbnk7XG5cdC8qKiBUaGUgYEpTT05PYmplY3RgIHNjYWxhciB0eXBlIHJlcHJlc2VudHMgSlNPTiBvYmplY3RzIGFzIHNwZWNpZmllZCBieSBbRUNNQS00MDRdKGh0dHA6Ly93d3cuZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9wdWJsaWNhdGlvbnMvZmlsZXMvRUNNQS1TVC9FQ01BLTQwNC5wZGYpLiAqL1xuW1wiSnNvblwiXTphbnk7XG5cdFtcIkxhbmdcIl06IExhbmc7XG5cdFtcIlBsYW5LaW5kXCJdOiBQbGFuS2luZDtcblx0W1wiVXNlclJvbGVcIl06IFVzZXJSb2xlO1xuXHRbXCJNYWlsVHlwZVwiXTogTWFpbFR5cGU7XG5cdFtcIlJpZ2h0c1wiXTogUmlnaHRzO1xuXHRbXCJGaWxlXCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiRmlsZVwiLFxuXHRpZDogc3RyaW5nLFxuXHRzaXplOiBHcmFwaFFMVHlwZXNbXCJCaWdJbnRcIl0sXG5cdHNpemVCZWZvcmU6IEdyYXBoUUxUeXBlc1tcIkJpZ0ludFwiXSxcblx0Y3JlYXRlZEF0OiBHcmFwaFFMVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0dkZpbGVzOiBBcnJheTxHcmFwaFFMVHlwZXNbXCJWRmlsZVwiXT4sXG5cdHZGaWxlc0N1cnJlbnQ6IEFycmF5PEdyYXBoUUxUeXBlc1tcIlZGaWxlXCJdPixcblx0dXNlcnM6IEFycmF5PEdyYXBoUUxUeXBlc1tcIkZpbGVzT25Vc2Vyc09uQXBwbGljYXRpb25zXCJdPixcblx0bWQ1OiBzdHJpbmcsXG5cdG1kNUVuY3J5cHRlZDogc3RyaW5nLFxuXHRkZWxldGVkQXQ/OiBHcmFwaFFMVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0dXNlckFwcDogR3JhcGhRTFR5cGVzW1wiQXBwbGljYXRpb25zT25Vc2Vyc1wiXSxcblx0bWFpbHM6IEFycmF5PEdyYXBoUUxUeXBlc1tcIkZpbGVzT25NYWlsc1wiXT4sXG5cdHZhbGlkYXRlZEF0PzogR3JhcGhRTFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdHVzZXI/OiBHcmFwaFFMVHlwZXNbXCJGaWxlc09uVXNlcnNPbkFwcGxpY2F0aW9uc1wiXVxufTtcblx0W1wiRmlsZVBhcnRcIl06IHtcblx0X190eXBlbmFtZTogXCJGaWxlUGFydFwiLFxuXHRpZDogc3RyaW5nLFxuXHRmaWxlOiBHcmFwaFFMVHlwZXNbXCJGaWxlXCJdLFxuXHRmaWxlSWQ6IHN0cmluZyxcblx0c2l6ZTogR3JhcGhRTFR5cGVzW1wiQmlnSW50XCJdLFxuXHRvcmRlcjogbnVtYmVyLFxuXHRtZDU6IHN0cmluZyxcblx0dmFsaWRhdGVkQXQ/OiBHcmFwaFFMVHlwZXNbXCJEYXRlVGltZVwiXVxufTtcblx0W1wiRmlsZUNvbnRlbnRUeXBlXCJdOiBGaWxlQ29udGVudFR5cGU7XG5cdFtcIkZpbGVDb250ZW50UGFydFwiXToge1xuXHRfX3R5cGVuYW1lOiBcIkZpbGVDb250ZW50UGFydFwiLFxuXHRjb250ZW50VXJsOiBzdHJpbmcsXG5cdG9yZGVyOiBudW1iZXIsXG5cdG1kNTogc3RyaW5nXG59O1xuXHRbXCJGaWxlQ29udGVudEJhc2VcIl06IHtcblx0X190eXBlbmFtZTpcIkZpbGVDb250ZW50Q2xvdWRcIiB8IFwiRmlsZUNvbnRlbnRTZW50TWFpbFwiIHwgXCJGaWxlQ29udGVudFJlY2VpdmVkTWFpbFwiLFxuXHRwYXJ0czogQXJyYXk8R3JhcGhRTFR5cGVzW1wiRmlsZUNvbnRlbnRQYXJ0XCJdPixcblx0a2V5OiBzdHJpbmcsXG5cdG1kNTogc3RyaW5nLFxuXHRtZDVFbmNyeXB0ZWQ6IHN0cmluZyxcblx0dG90YWxTaXplOiBHcmFwaFFMVHlwZXNbXCJCaWdJbnRcIl0sXG5cdHR5cGU6IEdyYXBoUUxUeXBlc1tcIkZpbGVDb250ZW50VHlwZVwiXVxuXHRbJy4uLm9uIEZpbGVDb250ZW50Q2xvdWQnXTogJ19fdW5pb24nICYgR3JhcGhRTFR5cGVzW1wiRmlsZUNvbnRlbnRDbG91ZFwiXTtcblx0WycuLi5vbiBGaWxlQ29udGVudFNlbnRNYWlsJ106ICdfX3VuaW9uJyAmIEdyYXBoUUxUeXBlc1tcIkZpbGVDb250ZW50U2VudE1haWxcIl07XG5cdFsnLi4ub24gRmlsZUNvbnRlbnRSZWNlaXZlZE1haWwnXTogJ19fdW5pb24nICYgR3JhcGhRTFR5cGVzW1wiRmlsZUNvbnRlbnRSZWNlaXZlZE1haWxcIl07XG59O1xuXHRbXCJGaWxlQ29udGVudENsb3VkXCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiRmlsZUNvbnRlbnRDbG91ZFwiLFxuXHRwYXJ0czogQXJyYXk8R3JhcGhRTFR5cGVzW1wiRmlsZUNvbnRlbnRQYXJ0XCJdPixcblx0a2V5OiBzdHJpbmcsXG5cdG1kNTogc3RyaW5nLFxuXHRtZDVFbmNyeXB0ZWQ6IHN0cmluZyxcblx0dG90YWxTaXplOiBHcmFwaFFMVHlwZXNbXCJCaWdJbnRcIl0sXG5cdHR5cGU6IEdyYXBoUUxUeXBlc1tcIkZpbGVDb250ZW50VHlwZVwiXSxcblx0cHVibGljS2V5OiBzdHJpbmdcbn07XG5cdFtcIkZpbGVDb250ZW50U2VudE1haWxcIl06IHtcblx0X190eXBlbmFtZTogXCJGaWxlQ29udGVudFNlbnRNYWlsXCIsXG5cdHBhcnRzOiBBcnJheTxHcmFwaFFMVHlwZXNbXCJGaWxlQ29udGVudFBhcnRcIl0+LFxuXHRrZXk6IHN0cmluZyxcblx0bWQ1OiBzdHJpbmcsXG5cdG1kNUVuY3J5cHRlZDogc3RyaW5nLFxuXHR0b3RhbFNpemU6IEdyYXBoUUxUeXBlc1tcIkJpZ0ludFwiXSxcblx0dHlwZTogR3JhcGhRTFR5cGVzW1wiRmlsZUNvbnRlbnRUeXBlXCJdXG59O1xuXHRbXCJGaWxlQ29udGVudFJlY2VpdmVkTWFpbFwiXToge1xuXHRfX3R5cGVuYW1lOiBcIkZpbGVDb250ZW50UmVjZWl2ZWRNYWlsXCIsXG5cdHBhcnRzOiBBcnJheTxHcmFwaFFMVHlwZXNbXCJGaWxlQ29udGVudFBhcnRcIl0+LFxuXHRrZXk6IHN0cmluZyxcblx0bWQ1OiBzdHJpbmcsXG5cdG1kNUVuY3J5cHRlZDogc3RyaW5nLFxuXHR0b3RhbFNpemU6IEdyYXBoUUxUeXBlc1tcIkJpZ0ludFwiXSxcblx0dHlwZTogR3JhcGhRTFR5cGVzW1wiRmlsZUNvbnRlbnRUeXBlXCJdLFxuXHRzZW5kZXJQdWJsaWNLZXk6IHN0cmluZ1xufTtcblx0W1wiRmlsZUNvbnRlbnRcIl06e1xuXHRfX3R5cGVuYW1lOlwiRmlsZUNvbnRlbnRDbG91ZFwiIHwgXCJGaWxlQ29udGVudFJlY2VpdmVkTWFpbFwiIHwgXCJGaWxlQ29udGVudFNlbnRNYWlsXCJcblx0WycuLi5vbiBGaWxlQ29udGVudENsb3VkJ106ICdfX3VuaW9uJyAmIEdyYXBoUUxUeXBlc1tcIkZpbGVDb250ZW50Q2xvdWRcIl07XG5cdFsnLi4ub24gRmlsZUNvbnRlbnRSZWNlaXZlZE1haWwnXTogJ19fdW5pb24nICYgR3JhcGhRTFR5cGVzW1wiRmlsZUNvbnRlbnRSZWNlaXZlZE1haWxcIl07XG5cdFsnLi4ub24gRmlsZUNvbnRlbnRTZW50TWFpbCddOiAnX191bmlvbicgJiBHcmFwaFFMVHlwZXNbXCJGaWxlQ29udGVudFNlbnRNYWlsXCJdO1xufTtcblx0W1wiRmlsZVJlc3BvbnNlXCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiRmlsZVJlc3BvbnNlXCIsXG5cdGZpbGVJZDogc3RyaW5nLFxuXHRwYXJ0czogQXJyYXk8R3JhcGhRTFR5cGVzW1wiRmlsZVBhcnRSZXNwb25zZVwiXT4sXG5cdGZpbGVQYXJ0U2l6ZTogR3JhcGhRTFR5cGVzW1wiQmlnSW50XCJdXG59O1xuXHRbXCJGaWxlUGFydFJlc3BvbnNlXCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiRmlsZVBhcnRSZXNwb25zZVwiLFxuXHRmaWVsZHM6IEdyYXBoUUxUeXBlc1tcIkpzb25cIl0sXG5cdHVybDogc3RyaW5nLFxuXHRvcmRlcjogbnVtYmVyXG59O1xuXHRbXCJGaWxlU2hhcmVkXCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiRmlsZVNoYXJlZFwiLFxuXHR1c2VySWQ6IHN0cmluZyxcblx0bWVzc2FnZT86IHN0cmluZyxcblx0YXBwSWQ6IHN0cmluZyxcblx0aWQ6IHN0cmluZyxcblx0ZmlsZW5hbWU6IHN0cmluZyxcblx0c2l6ZTogbnVtYmVyLFxuXHRzaXplQmVmb3JlOiBudW1iZXJcbn07XG5cdFtcIkZpbGVTaGFyZWRDb250ZW50XCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiRmlsZVNoYXJlZENvbnRlbnRcIixcblx0b3duZXJJZD86IHN0cmluZyxcblx0cHViS2V5Pzogc3RyaW5nLFxuXHRtZXNzYWdlPzogc3RyaW5nLFxuXHRhcHBJZDogc3RyaW5nLFxuXHRpZDogc3RyaW5nLFxuXHR0eXBlOiBzdHJpbmcsXG5cdGZpbGVuYW1lOiBzdHJpbmcsXG5cdGNvbnRlbnRVcmw6IHN0cmluZyxcblx0a2V5OiBzdHJpbmcsXG5cdHNpemU6IG51bWJlcixcblx0c2l6ZUJlZm9yZTogbnVtYmVyXG59O1xuXHRbXCJDbG91ZExpbWl0c1wiXToge1xuXHRfX3R5cGVuYW1lOiBcIkNsb3VkTGltaXRzXCIsXG5cdHNpemU6IEdyYXBoUUxUeXBlc1tcIkJpZ0ludFwiXSxcblx0bWF4U2l6ZT86IEdyYXBoUUxUeXBlc1tcIkJpZ0ludFwiXSxcblx0Y291bnQ6IEdyYXBoUUxUeXBlc1tcIkJpZ0ludFwiXSxcblx0bWF4Q291bnQ/OiBHcmFwaFFMVHlwZXNbXCJCaWdJbnRcIl1cbn07XG5cdFtcIk1haWxMaW1pdHNWYWx1ZXNcIl06IHtcblx0X190eXBlbmFtZTogXCJNYWlsTGltaXRzVmFsdWVzXCIsXG5cdGNvdW50OiBHcmFwaFFMVHlwZXNbXCJCaWdJbnRcIl0sXG5cdG1heENvdW50PzogR3JhcGhRTFR5cGVzW1wiQmlnSW50XCJdLFxuXHRmaWxlQ291bnQ6IEdyYXBoUUxUeXBlc1tcIkJpZ0ludFwiXSxcblx0bWF4RmlsZUNvdW50PzogR3JhcGhRTFR5cGVzW1wiQmlnSW50XCJdLFxuXHRmaWxlU2l6ZTogR3JhcGhRTFR5cGVzW1wiQmlnSW50XCJdLFxuXHRtYXhGaWxlU2l6ZT86IEdyYXBoUUxUeXBlc1tcIkJpZ0ludFwiXVxufTtcblx0W1wiVXNlck1haWxMaW1pdHNcIl06IHtcblx0X190eXBlbmFtZTogXCJVc2VyTWFpbExpbWl0c1wiLFxuXHRzZW50OiBHcmFwaFFMVHlwZXNbXCJNYWlsTGltaXRzVmFsdWVzXCJdLFxuXHRyZWNlaXZlZDogR3JhcGhRTFR5cGVzW1wiTWFpbExpbWl0c1ZhbHVlc1wiXVxufTtcblx0W1wiUXVlcnlMaW1pdHNcIl06IHtcblx0X190eXBlbmFtZTogXCJRdWVyeUxpbWl0c1wiLFxuXHRjbG91ZDogR3JhcGhRTFR5cGVzW1wiQ2xvdWRMaW1pdHNcIl0sXG5cdG1haWw6IEdyYXBoUUxUeXBlc1tcIlVzZXJNYWlsTGltaXRzXCJdXG59O1xuXHRbXCJMaW1pdHNcIl06IHtcblx0X190eXBlbmFtZTogXCJMaW1pdHNcIixcblx0ZG93bmxvYWRCYW5kd2lkdGg/OiBHcmFwaFFMVHlwZXNbXCJCaWdJbnRcIl0sXG5cdGRvd25sb2FkQ291bnQ/OiBHcmFwaFFMVHlwZXNbXCJCaWdJbnRcIl0sXG5cdGhhcmRGaWxlQ291bnQ/OiBHcmFwaFFMVHlwZXNbXCJCaWdJbnRcIl0sXG5cdGhhcmRGaWxlU2l6ZT86IEdyYXBoUUxUeXBlc1tcIkJpZ0ludFwiXSxcblx0cGVyRmlsZVNpemU/OiBHcmFwaFFMVHlwZXNbXCJCaWdJbnRcIl0sXG5cdHJlY2VpdmVkTWFpbHM6IEdyYXBoUUxUeXBlc1tcIk1haWxMaW1pdHNcIl0sXG5cdHNlbnRNYWlsczogR3JhcGhRTFR5cGVzW1wiTWFpbExpbWl0c1wiXSxcblx0dXBsb2FkQmFuZHdpZHRoPzogR3JhcGhRTFR5cGVzW1wiQmlnSW50XCJdLFxuXHR1cGxvYWRDb3VudD86IEdyYXBoUUxUeXBlc1tcIkJpZ0ludFwiXVxufTtcblx0W1wiTWFpbExpbWl0c1wiXToge1xuXHRfX3R5cGVuYW1lOiBcIk1haWxMaW1pdHNcIixcblx0Y291bnQ/OiBHcmFwaFFMVHlwZXNbXCJCaWdJbnRcIl0sXG5cdGZpbGVDb3VudD86IEdyYXBoUUxUeXBlc1tcIkJpZ0ludFwiXSxcblx0ZmlsZVNpemU/OiBHcmFwaFFMVHlwZXNbXCJCaWdJbnRcIl0sXG5cdGhhcmRDb3VudD86IEdyYXBoUUxUeXBlc1tcIkJpZ0ludFwiXSxcblx0aGFyZEZpbGVDb3VudD86IEdyYXBoUUxUeXBlc1tcIkJpZ0ludFwiXSxcblx0aGFyZEZpbGVTaXplPzogR3JhcGhRTFR5cGVzW1wiQmlnSW50XCJdLFxuXHRwZXJGaWxlU2l6ZT86IEdyYXBoUUxUeXBlc1tcIkJpZ0ludFwiXVxufTtcblx0W1wiVXNlclwiXToge1xuXHRfX3R5cGVuYW1lOiBcIlVzZXJcIixcblx0aWQ6IHN0cmluZyxcblx0ZGVsZXRlZEF0PzogR3JhcGhRTFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdGxhbmc6IEdyYXBoUUxUeXBlc1tcIkxhbmdcIl0sXG5cdHJlcG9ydFNlbnQ6IEFycmF5PEdyYXBoUUxUeXBlc1tcIlJlcG9ydFwiXT4sXG5cdGdvZEZhdGhlcj86IEdyYXBoUUxUeXBlc1tcIlVzZXJcIl0sXG5cdGdvZENoaWxkcmVuOiBBcnJheTxHcmFwaFFMVHlwZXNbXCJVc2VyXCJdPixcblx0Zmlyc3RuYW1lOiBzdHJpbmcsXG5cdGxhc3RuYW1lOiBzdHJpbmcsXG5cdGVtYWlsOiBzdHJpbmcsXG5cdHBob25lOiBzdHJpbmcsXG5cdGxhc3RMb2dpbjogR3JhcGhRTFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdHJvbGU6IEdyYXBoUUxUeXBlc1tcIlVzZXJSb2xlXCJdLFxuXHRzZXNzaW9uczogQXJyYXk8R3JhcGhRTFR5cGVzW1wiVXNlclNlc3Npb25cIl0+LFxuXHRjcmVhdGVkQXQ6IEdyYXBoUUxUeXBlc1tcIkRhdGVUaW1lXCJdLFxuXHRyZWNlaXZlZE1haWxzOiBBcnJheTxHcmFwaFFMVHlwZXNbXCJNYWlsXCJdPixcblx0d2FpdGluZ1JlY2VpdmVkTWFpbHM6IEFycmF5PEdyYXBoUUxUeXBlc1tcIldhaXRpbmdSZWNlaXZlZE1haWxcIl0+LFxuXHRzZW50TWFpbHM6IEFycmF5PEdyYXBoUUxUeXBlc1tcIk1haWxcIl0+LFxuXHRkcmFmdE1haWxzOiBBcnJheTxHcmFwaFFMVHlwZXNbXCJNYWlsXCJdPixcblx0YXBwU2V0dGluZ3M/OiBHcmFwaFFMVHlwZXNbXCJVc2VyQXBwU2V0dGluZ3NcIl0sXG5cdGFwcGxpY2F0aW9uczogQXJyYXk8R3JhcGhRTFR5cGVzW1wiQXBwbGljYXRpb25zT25Vc2Vyc1wiXT4sXG5cdHB1YmxpY0tleTogc3RyaW5nXG59O1xuXHRbXCJNYWlsXCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiTWFpbFwiLFxuXHRpZDogc3RyaW5nLFxuXHRhcHA6IEdyYXBoUUxUeXBlc1tcIkFwcGxpY2F0aW9uXCJdLFxuXHRib2R5OiBzdHJpbmcsXG5cdGNyZWF0ZWRBdDogR3JhcGhRTFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdGRlbGV0ZWRBdD86IEdyYXBoUUxUeXBlc1tcIkRhdGVUaW1lXCJdLFxuXHRmaWxlczogQXJyYXk8R3JhcGhRTFR5cGVzW1wiRmlsZXNPbk1haWxzXCJdPixcblx0bWFpbEludGVncml0eT86IEdyYXBoUUxUeXBlc1tcIk1haWxJbnRlZ3JpdHlcIl0sXG5cdG1haWxJbnRlZ3JpdHlEcmFmdD86IEdyYXBoUUxUeXBlc1tcIk1haWxJbnRlZ3JpdHlEcmFmdFwiXSxcblx0b3BlbmVkQXQ/OiBHcmFwaFFMVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0cmVjaXBpZW50OiBHcmFwaFFMVHlwZXNbXCJVc2VyXCJdLFxuXHRzZW5kZXI6IEdyYXBoUUxUeXBlc1tcIlVzZXJcIl0sXG5cdHN1YmplY3Q6IHN0cmluZyxcblx0dHlwZTogR3JhcGhRTFR5cGVzW1wiTWFpbFR5cGVcIl0sXG5cdHJlY2lwaWVudHM6IEFycmF5PEdyYXBoUUxUeXBlc1tcIlVzZXJcIl0+XG59O1xuXHRbXCJNYWlsSW50ZWdyaXR5XCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiTWFpbEludGVncml0eVwiLFxuXHRpZDogc3RyaW5nLFxuXHRoYXNoOiBzdHJpbmcsXG5cdGhhc2hLZXk6IHN0cmluZyxcblx0YW5zd2VyczogQXJyYXk8R3JhcGhRTFR5cGVzW1wiTWFpbEludGVncml0eVwiXT4sXG5cdGFwcDogR3JhcGhRTFR5cGVzW1wiQXBwbGljYXRpb25cIl0sXG5cdG1haWxzOiBBcnJheTxHcmFwaFFMVHlwZXNbXCJNYWlsXCJdPixcblx0cmVjaXBpZW50czogQXJyYXk8R3JhcGhRTFR5cGVzW1wiVXNlclwiXT4sXG5cdHRlbXBvcmFyeVJlY2lwaWVudHM6IEFycmF5PEdyYXBoUUxUeXBlc1tcIlRlbXBvcmFyeVVzZXJcIl0+LFxuXHRyZXBseVRvPzogR3JhcGhRTFR5cGVzW1wiTWFpbEludGVncml0eVwiXVxufTtcblx0W1wiRmlsZXNPbk1haWxzXCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiRmlsZXNPbk1haWxzXCIsXG5cdGZpbGU6IEdyYXBoUUxUeXBlc1tcIkZpbGVcIl0sXG5cdGZpbGVLZXk6IHN0cmluZyxcblx0ZmlsZW5hbWU6IHN0cmluZyxcblx0bWFpbDogR3JhcGhRTFR5cGVzW1wiTWFpbFwiXVxufTtcblx0W1wiRmlsZXNPblVzZXJzT25BcHBsaWNhdGlvbnNcIl06IHtcblx0X190eXBlbmFtZTogXCJGaWxlc09uVXNlcnNPbkFwcGxpY2F0aW9uc1wiLFxuXHRmaWxlOiBHcmFwaFFMVHlwZXNbXCJGaWxlXCJdLFxuXHR1c2VyQXBwOiBHcmFwaFFMVHlwZXNbXCJBcHBsaWNhdGlvbnNPblVzZXJzXCJdLFxuXHQvKiogRW5jcnlwdGVkIHdpdGggVXNlckFwcCBrZXlzICovXG5cdGtleTogc3RyaW5nXG59O1xuXHRbXCJWRmlsZVwiXToge1xuXHRfX3R5cGVuYW1lOiBcIlZGaWxlXCIsXG5cdGlkOiBzdHJpbmcsXG5cdGlzRmF2b3JpdGU6IGJvb2xlYW4sXG5cdGNyZWF0ZWRBdDogR3JhcGhRTFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdGRlbGV0ZWRBdD86IEdyYXBoUUxUeXBlc1tcIkRhdGVUaW1lXCJdLFxuXHRmaWxlbmFtZTogc3RyaW5nLFxuXHR1c2VyQXBwczogQXJyYXk8R3JhcGhRTFR5cGVzW1wiVkZpbGVzT25Vc2Vyc09uQXBwbGljYXRpb25zXCJdPixcblx0Y3JlYXRlZEJ5OiBHcmFwaFFMVHlwZXNbXCJBcHBsaWNhdGlvbnNPblVzZXJzXCJdLFxuXHR1c2VyQXBwPzogR3JhcGhRTFR5cGVzW1wiVkZpbGVzT25Vc2Vyc09uQXBwbGljYXRpb25zXCJdLFxuXHRmb2xkZXI6IEdyYXBoUUxUeXBlc1tcIkZvbGRlclwiXSxcblx0aGlzdG9yeTogQXJyYXk8R3JhcGhRTFR5cGVzW1wiRmlsZVwiXT4sXG5cdGN1cnJlbnQ/OiBHcmFwaFFMVHlwZXNbXCJGaWxlXCJdLFxuXHR1cGRhdGVkQXQ6IEdyYXBoUUxUeXBlc1tcIkRhdGVUaW1lXCJdXG59O1xuXHRbXCJGb2xkZXJCcmVhZGNydW1iSXRlbVwiXToge1xuXHRfX3R5cGVuYW1lOiBcIkZvbGRlckJyZWFkY3J1bWJJdGVtXCIsXG5cdGlkOiBzdHJpbmcsXG5cdG5hbWU6IHN0cmluZyxcblx0cHViS2V5OiBzdHJpbmcsXG5cdG5hbWVLZXk/OiBzdHJpbmdcbn07XG5cdFtcIkZvbGRlclwiXToge1xuXHRfX3R5cGVuYW1lOiBcIkZvbGRlclwiLFxuXHRpZDogc3RyaW5nLFxuXHRpc0Zhdm9yaXRlOiBib29sZWFuLFxuXHRjcmVhdGVkQXQ6IEdyYXBoUUxUeXBlc1tcIkRhdGVUaW1lXCJdLFxuXHRkZWxldGVkQXQ/OiBHcmFwaFFMVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0dXBkYXRlZEF0OiBHcmFwaFFMVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0Y3JlYXRlZEJ5OiBHcmFwaFFMVHlwZXNbXCJBcHBsaWNhdGlvbnNPblVzZXJzXCJdLFxuXHR1c2VyQXBwczogQXJyYXk8R3JhcGhRTFR5cGVzW1wiRm9sZGVyc09uVXNlcnNPbkFwcGxpY2F0aW9uc1wiXT4sXG5cdHVzZXJBcHA/OiBHcmFwaFFMVHlwZXNbXCJGb2xkZXJzT25Vc2Vyc09uQXBwbGljYXRpb25zXCJdLFxuXHRuYW1lOiBzdHJpbmcsXG5cdHBhcmVudEZvbGRlcj86IEdyYXBoUUxUeXBlc1tcIkZvbGRlclwiXSxcblx0c3ViZm9sZGVyczogQXJyYXk8R3JhcGhRTFR5cGVzW1wiRm9sZGVyXCJdPixcblx0dkZpbGVzOiBBcnJheTxHcmFwaFFMVHlwZXNbXCJWRmlsZVwiXT4sXG5cdGJyZWFkY3J1bWI6IEFycmF5PEdyYXBoUUxUeXBlc1tcIkZvbGRlckJyZWFkY3J1bWJJdGVtXCJdPlxufTtcblx0W1wiQXBwbGljYXRpb25cIl06IHtcblx0X190eXBlbmFtZTogXCJBcHBsaWNhdGlvblwiLFxuXHRpZDogc3RyaW5nLFxuXHRuYW1lOiBzdHJpbmdcbn07XG5cdFtcIkFwcGxpY2F0aW9uc09uVXNlcnNcIl06IHtcblx0X190eXBlbmFtZTogXCJBcHBsaWNhdGlvbnNPblVzZXJzXCIsXG5cdGZha2VVc2VySWQ6IHN0cmluZyxcblx0a2V5UGFpcj86IEdyYXBoUUxUeXBlc1tcIkFwcEtleVBhaXJcIl0sXG5cdHNlc3Npb25zOiBBcnJheTxHcmFwaFFMVHlwZXNbXCJBcHBTZXNzaW9uXCJdPixcblx0YXBwOiBHcmFwaFFMVHlwZXNbXCJBcHBsaWNhdGlvblwiXSxcblx0dXNlcjogR3JhcGhRTFR5cGVzW1wiVXNlclwiXSxcblx0Zm9sZGVyczogQXJyYXk8R3JhcGhRTFR5cGVzW1wiRm9sZGVyc09uVXNlcnNPbkFwcGxpY2F0aW9uc1wiXT4sXG5cdHNldHRpbmdzOiBHcmFwaFFMVHlwZXNbXCJVc2VyQXBwU2V0dGluZ3NcIl1cbn07XG5cdFtcIkFwcEtleVBhaXJcIl06IHtcblx0X190eXBlbmFtZTogXCJBcHBLZXlQYWlyXCIsXG5cdHB1Yjogc3RyaW5nXG59O1xuXHRbXCJGb2xkZXJTaXplXCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiRm9sZGVyU2l6ZVwiLFxuXHRzaXplOiBHcmFwaFFMVHlwZXNbXCJCaWdJbnRcIl0sXG5cdHNpemVCZWZvcmU6IEdyYXBoUUxUeXBlc1tcIkJpZ0ludFwiXVxufTtcblx0W1wiVXNlclNlc3Npb25cIl06IHtcblx0X190eXBlbmFtZTogXCJVc2VyU2Vzc2lvblwiLFxuXHRpZDogc3RyaW5nLFxuXHRhcHBTZXNzaW9uczogQXJyYXk8R3JhcGhRTFR5cGVzW1wiQXBwU2Vzc2lvblwiXT4sXG5cdGxhc3RBY3Rpdml0eT86IEdyYXBoUUxUeXBlc1tcIkRhdGVUaW1lXCJdLFxuXHR1c2VyQWdlbnQ/OiBzdHJpbmcsXG5cdGlwPzogc3RyaW5nLFxuXHRjaXR5Pzogc3RyaW5nLFxuXHRjb3VudHJ5Pzogc3RyaW5nLFxuXHRjcmVhdGVkQXQ6IEdyYXBoUUxUeXBlc1tcIkRhdGVUaW1lXCJdXG59O1xuXHRbXCJBcHBTZXNzaW9uXCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiQXBwU2Vzc2lvblwiLFxuXHRpZDogc3RyaW5nLFxuXHRsYXN0QWN0aXZpdHk/OiBHcmFwaFFMVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0dXNlckFnZW50Pzogc3RyaW5nLFxuXHRpcD86IHN0cmluZyxcblx0Y2l0eT86IHN0cmluZyxcblx0Y291bnRyeT86IHN0cmluZyxcblx0dXNlclNlc3Npb246IEdyYXBoUUxUeXBlc1tcIlVzZXJTZXNzaW9uXCJdLFxuXHR1c2VyQXBwPzogR3JhcGhRTFR5cGVzW1wiQXBwbGljYXRpb25zT25Vc2Vyc1wiXSxcblx0Y3JlYXRlZEF0OiBHcmFwaFFMVHlwZXNbXCJEYXRlVGltZVwiXVxufTtcblx0W1wiVXNlckFwcFNldHRpbmdzXCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiVXNlckFwcFNldHRpbmdzXCIsXG5cdGlkOiBzdHJpbmcsXG5cdGNsb3VkRmlsZURheXNGb3JEZWxldGU6IG51bWJlcixcblx0Y2xvdWRGb2xkZXJEYXlzRm9yRGVsZXRlOiBudW1iZXIsXG5cdGhpc3RvcnlGaWxlRGF5c0ZvckRlbGV0ZT86IG51bWJlcixcblx0aGlzdG9yeU1heEZpbGVDb3VudDogbnVtYmVyLFxuXHRhdXRvRGlzY29ubmVjdERlbGF5PzogbnVtYmVyXG59O1xuXHRbXCJNYWlsRmlsZUlucHV0XCJdOiB7XG5cdFx0aWQ6IHN0cmluZyxcblx0bmFtZTogc3RyaW5nLFxuXHRmaWxlS2V5OiBzdHJpbmdcbn07XG5cdFtcIk1haWxSZWNpcGllbnRJbnB1dFwiXToge1xuXHRcdGJvZHk6IHN0cmluZyxcblx0c3ViamVjdDogc3RyaW5nLFxuXHRyZWNpcGllbnRJZDogc3RyaW5nLFxuXHRmaWxlczogQXJyYXk8R3JhcGhRTFR5cGVzW1wiTWFpbEZpbGVJbnB1dFwiXT5cbn07XG5cdFtcIlNoYXJlRmlsZUtleUlucHV0XCJdOiB7XG5cdFx0aWQ6IHN0cmluZyxcblx0a2V5OiBzdHJpbmdcbn07XG5cdFtcIk5hbWVLZXlJbnB1dFwiXToge1xuXHRcdGlkOiBzdHJpbmcsXG5cdG5hbWVLZXk6IHN0cmluZyxcblx0ZmlsZXM6IEFycmF5PEdyYXBoUUxUeXBlc1tcIlNoYXJlRmlsZUtleUlucHV0XCJdPlxufTtcblx0W1wiTmFtZUtleUlucHV0Rm9sZGVyc1wiXToge1xuXHRcdGlkOiBzdHJpbmcsXG5cdG5hbWVLZXk6IHN0cmluZ1xufTtcblx0W1wiU2hhcmVGb2xkZXJzSW5wdXRcIl06IHtcblx0XHRmb2xkZXJzOiBBcnJheTxHcmFwaFFMVHlwZXNbXCJOYW1lS2V5SW5wdXRGb2xkZXJzXCJdPixcblx0dkZpbGVzOiBBcnJheTxHcmFwaFFMVHlwZXNbXCJOYW1lS2V5SW5wdXRcIl0+XG59O1xuXHRbXCJTaGFyZUZpbGVJbkhpc3RvcnlJbnB1dFwiXToge1xuXHRcdGZpbGVJZDogc3RyaW5nLFxuXHR1c2VyczogQXJyYXk8R3JhcGhRTFR5cGVzW1wiU2hhcmVGaWxlS2V5SW5wdXRcIl0+XG59O1xuXHRbXCJQYXlJbnB1dFR5cGVcIl06IFBheUlucHV0VHlwZTtcblx0W1wiUGF5SW5wdXRcIl06IHtcblx0XHR0eXBlOiBHcmFwaFFMVHlwZXNbXCJQYXlJbnB1dFR5cGVcIl0sXG5cdHRva2VuOiBzdHJpbmcsXG5cdGZpcnN0TmFtZTogc3RyaW5nLFxuXHRsYXN0TmFtZTogc3RyaW5nLFxuXHRzdHJlZXQ6IHN0cmluZyxcblx0cG9zdGFsQ29kZTogc3RyaW5nLFxuXHRjaXR5OiBzdHJpbmcsXG5cdGNvdW50cnk6IHN0cmluZyxcblx0bnVtYmVyOiBzdHJpbmcsXG5cdG1vbnRoOiBzdHJpbmcsXG5cdHllYXI6IHN0cmluZyxcblx0Y3Z2OiBzdHJpbmdcbn07XG5cdFtcIldhaXRpbmdSZWNlaXZlZE1haWxcIl06IHtcblx0X190eXBlbmFtZTogXCJXYWl0aW5nUmVjZWl2ZWRNYWlsXCIsXG5cdHNlbmRlcjogR3JhcGhRTFR5cGVzW1wiVXNlclwiXSxcblx0ZGF0ZTogR3JhcGhRTFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdHJlY2lwaWVudHM6IEFycmF5PEdyYXBoUUxUeXBlc1tcIlVzZXJcIl0+LFxuXHR0ZW1wb3JhcnlSZWNpcGllbnRzOiBBcnJheTxHcmFwaFFMVHlwZXNbXCJUZW1wb3JhcnlVc2VyXCJdPixcblx0YXR0YWNobWVudHNDb3VudDogbnVtYmVyXG59O1xuXHRbXCJUZW1wb3JhcnlVc2VyXCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiVGVtcG9yYXJ5VXNlclwiLFxuXHRpZDogc3RyaW5nLFxuXHRtYWlsczogQXJyYXk8R3JhcGhRTFR5cGVzW1wiTWFpbEludGVncml0eVwiXT4sXG5cdGRyYWZ0TWFpbHM6IEFycmF5PEdyYXBoUUxUeXBlc1tcIk1haWxJbnRlZ3JpdHlEcmFmdFwiXT4sXG5cdGVtYWlsPzogc3RyaW5nXG59O1xuXHRbXCJNYWlsSW50ZWdyaXR5RHJhZnRcIl06IHtcblx0X190eXBlbmFtZTogXCJNYWlsSW50ZWdyaXR5RHJhZnRcIixcblx0aWQ6IHN0cmluZyxcblx0aGFzaDogc3RyaW5nLFxuXHRoYXNoS2V5OiBzdHJpbmcsXG5cdGFwcDogR3JhcGhRTFR5cGVzW1wiQXBwbGljYXRpb25cIl0sXG5cdG1haWw6IEdyYXBoUUxUeXBlc1tcIk1haWxcIl0sXG5cdHJlY2lwaWVudHM6IEFycmF5PEdyYXBoUUxUeXBlc1tcIlVzZXJcIl0+LFxuXHR0ZW1wb3JhcnlSZWNpcGllbnRzOiBBcnJheTxHcmFwaFFMVHlwZXNbXCJUZW1wb3JhcnlVc2VyXCJdPixcblx0cmVwbHlUbz86IEdyYXBoUUxUeXBlc1tcIk1haWxJbnRlZ3JpdHlcIl1cbn07XG5cdFtcIkZhcVwiXToge1xuXHRfX3R5cGVuYW1lOiBcIkZhcVwiLFxuXHRpZDogc3RyaW5nLFxuXHRvcmRlcjogbnVtYmVyLFxuXHRlbnRyaWVzOiBBcnJheTxHcmFwaFFMVHlwZXNbXCJGYXFFbnRyeVwiXT5cbn07XG5cdFtcIkZhcUVudHJ5XCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiRmFxRW50cnlcIixcblx0aWQ6IHN0cmluZyxcblx0bGFuZzogR3JhcGhRTFR5cGVzW1wiTGFuZ1wiXSxcblx0cXVlc3Rpb246IHN0cmluZyxcblx0YW5zd2VyOiBzdHJpbmcsXG5cdGZhcTogR3JhcGhRTFR5cGVzW1wiRmFxXCJdXG59O1xuXHRbXCJQbGFuXCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiUGxhblwiLFxuXHRpZDogc3RyaW5nLFxuXHRraW5kOiBHcmFwaFFMVHlwZXNbXCJQbGFuS2luZFwiXSxcblx0Y29kZXM6IEFycmF5PHN0cmluZz4sXG5cdGxpbWl0czogR3JhcGhRTFR5cGVzW1wiTGltaXRzXCJdXG59O1xuXHRbXCJSZXBvcnRcIl06IHtcblx0X190eXBlbmFtZTogXCJSZXBvcnRcIixcblx0aWQ6IHN0cmluZyxcblx0dXNlcjogR3JhcGhRTFR5cGVzW1wiVXNlclwiXSxcblx0cmVwb3J0ZWRVc2VyOiBHcmFwaFFMVHlwZXNbXCJVc2VyXCJdLFxuXHRjdXN0b21NZXNzYWdlPzogc3RyaW5nXG59O1xuXHRbXCJGb2xkZXJzT25Vc2Vyc09uQXBwbGljYXRpb25zXCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiRm9sZGVyc09uVXNlcnNPbkFwcGxpY2F0aW9uc1wiLFxuXHRmb2xkZXI6IEdyYXBoUUxUeXBlc1tcIkZvbGRlclwiXSxcblx0dXNlckFwcDogR3JhcGhRTFR5cGVzW1wiQXBwbGljYXRpb25zT25Vc2Vyc1wiXSxcblx0cmlnaHRzOiBHcmFwaFFMVHlwZXNbXCJSaWdodHNcIl0sXG5cdG5hbWVLZXk/OiBzdHJpbmcsXG5cdGlzUm9vdDogYm9vbGVhblxufTtcblx0W1wiVkZpbGVzT25Vc2Vyc09uQXBwbGljYXRpb25zXCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiVkZpbGVzT25Vc2Vyc09uQXBwbGljYXRpb25zXCIsXG5cdHZGaWxlOiBHcmFwaFFMVHlwZXNbXCJWRmlsZVwiXSxcblx0dXNlckFwcDogR3JhcGhRTFR5cGVzW1wiQXBwbGljYXRpb25zT25Vc2Vyc1wiXSxcblx0cmlnaHRzOiBHcmFwaFFMVHlwZXNbXCJSaWdodHNcIl0sXG5cdG5hbWVLZXk6IHN0cmluZyxcblx0aXNSb290OiBib29sZWFuXG59O1xuXHRbXCJGYXFJdGVtXCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiRmFxSXRlbVwiLFxuXHRvcmRlcjogbnVtYmVyLFxuXHRxdWVzdGlvbjogc3RyaW5nLFxuXHRhbnN3ZXI6IHN0cmluZ1xufTtcblx0W1wiQmxvZ1wiXToge1xuXHRfX3R5cGVuYW1lOiBcIkJsb2dcIixcblx0aWQ6IHN0cmluZyxcblx0b3JkZXI6IG51bWJlcixcblx0ZW50cmllczogQXJyYXk8R3JhcGhRTFR5cGVzW1wiQmxvZ0VudHJ5XCJdPlxufTtcblx0W1wiQmxvZ0VudHJ5XCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiQmxvZ0VudHJ5XCIsXG5cdGlkOiBzdHJpbmcsXG5cdGxhbmc6IEdyYXBoUUxUeXBlc1tcIkxhbmdcIl0sXG5cdGF1dGhvcjogc3RyaW5nLFxuXHRib2R5OiBzdHJpbmcsXG5cdGRhdGU6IEdyYXBoUUxUeXBlc1tcIkRhdGVUaW1lXCJdLFxuXHRpbWFnZTogc3RyaW5nLFxuXHRzdW1tYXJ5OiBzdHJpbmcsXG5cdHRpdGxlOiBzdHJpbmdcbn07XG5cdFtcIkJsb2dJdGVtXCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiQmxvZ0l0ZW1cIixcblx0aWQ6IHN0cmluZyxcblx0YmxvZ0lkOiBzdHJpbmcsXG5cdG9yZGVyOiBudW1iZXIsXG5cdHRpdGxlOiBzdHJpbmcsXG5cdGJvZHk6IHN0cmluZyxcblx0YXV0aG9yOiBzdHJpbmcsXG5cdGltYWdlOiBzdHJpbmcsXG5cdGltYWdlQWx0OiBzdHJpbmcsXG5cdHN1bW1hcnk6IHN0cmluZyxcblx0ZGF0ZTogR3JhcGhRTFR5cGVzW1wiRGF0ZVRpbWVcIl1cbn07XG5cdFtcIlJlY3VybHlJbnZvaWNlc1wiXToge1xuXHRfX3R5cGVuYW1lOiBcIlJlY3VybHlJbnZvaWNlc1wiLFxuXHRwZGY6IHN0cmluZyxcblx0ZGF0ZTogR3JhcGhRTFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdGR1ZTogR3JhcGhRTFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdHN0YXR1czogc3RyaW5nLFxuXHR0b3RhbDogbnVtYmVyLFxuXHRuYW1lOiBzdHJpbmcsXG5cdGN1cnJlbmN5OiBzdHJpbmdcbn07XG5cdFtcIlJlY3VybHlTdWJzY3JpcHRpb25cIl06IHtcblx0X190eXBlbmFtZTogXCJSZWN1cmx5U3Vic2NyaXB0aW9uXCIsXG5cdGF1dG9yZW5ldzogYm9vbGVhbixcblx0YWN0aXZhdGVkQXQ/OiBHcmFwaFFMVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0Y3VycmVudFBlcmlvZEVuZHNBdD86IEdyYXBoUUxUeXBlc1tcIkRhdGVUaW1lXCJdLFxuXHRjdXJyZW50UGVyaW9kU3RhcnRlZEF0PzogR3JhcGhRTFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdGNhbmNlbGVkQXQ/OiBHcmFwaFFMVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0Y3JlYXRlZEF0PzogR3JhcGhRTFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdGV4cGlyZXNBdD86IEdyYXBoUUxUeXBlc1tcIkRhdGVUaW1lXCJdLFxuXHRwYXVzZWRBdD86IEdyYXBoUUxUeXBlc1tcIkRhdGVUaW1lXCJdLFxuXHR0cmlhbEVuZHNBdD86IEdyYXBoUUxUeXBlc1tcIkRhdGVUaW1lXCJdLFxuXHR0cmlhbFN0YXJ0ZWRBdD86IEdyYXBoUUxUeXBlc1tcIkRhdGVUaW1lXCJdLFxuXHR1cGRhdGVkQXQ/OiBHcmFwaFFMVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0c3RhdGU6IHN0cmluZyxcblx0Y29sbGVjdGlvbk1ldGhvZDogc3RyaW5nLFxuXHRwbGFuPzogc3RyaW5nLFxuXHRwbGFuQ29kZT86IHN0cmluZyxcblx0dG90YWw/OiBudW1iZXJcbn07XG5cdFtcIlBheW1lbnRJbmZvc1wiXToge1xuXHRfX3R5cGVuYW1lOiBcIlBheW1lbnRJbmZvc1wiLFxuXHRob3N0ZWRVcmw6IHN0cmluZyxcblx0Y3VycmVudFN1YnNjcmlwdGlvbjogR3JhcGhRTFR5cGVzW1wiUmVjdXJseVN1YnNjcmlwdGlvblwiXSxcblx0aW52b2ljZXM6IEFycmF5PEdyYXBoUUxUeXBlc1tcIlJlY3VybHlJbnZvaWNlc1wiXT5cbn07XG5cdFtcIlNoYXJlRm9sZGVyUmVzcG9uc2VcIl06IHtcblx0X190eXBlbmFtZTogXCJTaGFyZUZvbGRlclJlc3BvbnNlXCIsXG5cdGZvbGRlcnM6IEFycmF5PHN0cmluZz4sXG5cdHZGaWxlczogQXJyYXk8c3RyaW5nPlxufTtcblx0W1wiUXVlcnlcIl06IHtcblx0X190eXBlbmFtZTogXCJRdWVyeVwiLFxuXHR0ZXN0PzogYm9vbGVhbixcblx0bGltaXRzPzogR3JhcGhRTFR5cGVzW1wiUXVlcnlMaW1pdHNcIl0sXG5cdHVzZXI/OiBHcmFwaFFMVHlwZXNbXCJVc2VyXCJdLFxuXHRkYkNvbmZpZz86IEdyYXBoUUxUeXBlc1tcIkpzb25cIl0sXG5cdGRiR2V0PzogR3JhcGhRTFR5cGVzW1wiSnNvblwiXSxcblx0ZGJTZWFyY2g6IEFycmF5PEdyYXBoUUxUeXBlc1tcIkpzb25cIl0+LFxuXHRmaWxlQ29udGVudD86IEdyYXBoUUxUeXBlc1tcIkZpbGVDb250ZW50XCJdLFxuXHRmaWxlc1NoYXJlZFdpdGhNZTogQXJyYXk8R3JhcGhRTFR5cGVzW1wiRmlsZVNoYXJlZENvbnRlbnRcIl0+LFxuXHR2RmlsZXNTaGFyZWRXaXRoTWU6IEFycmF5PEdyYXBoUUxUeXBlc1tcIlZGaWxlXCJdPixcblx0Zm9sZGVyc1NoYXJlZFdpdGhNZTogQXJyYXk8R3JhcGhRTFR5cGVzW1wiRm9sZGVyXCJdPixcblx0Zm9sZGVyU2l6ZT86IEdyYXBoUUxUeXBlc1tcIkZvbGRlclNpemVcIl0sXG5cdGZvbGRlcj86IEdyYXBoUUxUeXBlc1tcIkZvbGRlclwiXSxcblx0dkZpbGU/OiBHcmFwaFFMVHlwZXNbXCJWRmlsZVwiXSxcblx0ZmlsZT86IEdyYXBoUUxUeXBlc1tcIkZpbGVcIl0sXG5cdGZhcTogQXJyYXk8R3JhcGhRTFR5cGVzW1wiRmFxSXRlbVwiXT4sXG5cdHBheW1lbnRJbmZvcz86IEdyYXBoUUxUeXBlc1tcIlBheW1lbnRJbmZvc1wiXSxcblx0cGxhbnM6IEFycmF5PEdyYXBoUUxUeXBlc1tcIlBsYW5cIl0+LFxuXHRzaGFyZWRGb2xkZXJzOiBBcnJheTxHcmFwaFFMVHlwZXNbXCJGb2xkZXJcIl0+LFxuXHRzaGFyZWRWRmlsZXM6IEFycmF5PEdyYXBoUUxUeXBlc1tcIlZGaWxlXCJdPixcblx0YmxvZzogQXJyYXk8R3JhcGhRTFR5cGVzW1wiQmxvZ0l0ZW1cIl0+LFxuXHRkZWxldGVkRm9sZGVyczogQXJyYXk8R3JhcGhRTFR5cGVzW1wiRm9sZGVyXCJdPixcblx0ZGVsZXRlZFZGaWxlczogQXJyYXk8R3JhcGhRTFR5cGVzW1wiVkZpbGVcIl0+LFxuXHRtYWlsPzogR3JhcGhRTFR5cGVzW1wiTWFpbFwiXSxcblx0ZGVsZXRlZE1haWxzOiBBcnJheTxHcmFwaFFMVHlwZXNbXCJNYWlsXCJdPlxufTtcblx0W1wiTXV0YXRpb25cIl06IHtcblx0X190eXBlbmFtZTogXCJNdXRhdGlvblwiLFxuXHRjcmVhdGVBcHBsaWNhdGlvbj86IHN0cmluZyxcblx0ZGJTZXQ/OiBHcmFwaFFMVHlwZXNbXCJKc29uXCJdLFxuXHRkYkNvbmZpZzogR3JhcGhRTFR5cGVzW1wiSnNvblwiXSxcblx0c2hhcmVWRmlsZT86IGJvb2xlYW4sXG5cdHNoYXJlRm9sZGVyOiBHcmFwaFFMVHlwZXNbXCJTaGFyZUZvbGRlclJlc3BvbnNlXCJdLFxuXHRzaGFyZUZvbGRlckZpbmlzaD86IGJvb2xlYW4sXG5cdHVwZGF0ZUZpbGU/OiBHcmFwaFFMVHlwZXNbXCJWRmlsZVwiXSxcblx0dXBkYXRlUHJvZmlsZT86IEdyYXBoUUxUeXBlc1tcIlVzZXJcIl0sXG5cdHVwbG9hZEFub255bW91cz86IEdyYXBoUUxUeXBlc1tcIkZpbGVSZXNwb25zZVwiXSxcblx0dXBsb2FkRmlsZT86IEdyYXBoUUxUeXBlc1tcIkZpbGVSZXNwb25zZVwiXSxcblx0Y3JlYXRlRm9sZGVyPzogR3JhcGhRTFR5cGVzW1wiRm9sZGVyXCJdLFxuXHRtb3ZlRm9sZGVycz86IGJvb2xlYW4sXG5cdGRlbGV0ZUZvbGRlcj86IGJvb2xlYW4sXG5cdG1vdmVGaWxlcz86IGJvb2xlYW4sXG5cdHVwZGF0ZUZvbGRlcj86IEdyYXBoUUxUeXBlc1tcIkZvbGRlclwiXSxcblx0ZGVsZXRlVkZpbGU6IGJvb2xlYW4sXG5cdGNyZWF0ZURyYWZ0TWFpbD86IEdyYXBoUUxUeXBlc1tcIk1haWxcIl0sXG5cdHNlbmREcmFmdE1haWw/OiBib29sZWFuLFxuXHRyZWFkTWFpbD86IGJvb2xlYW4sXG5cdHVucmVhZE1haWw/OiBib29sZWFuLFxuXHR1cGRhdGVBcHBTZXR0aW5nczogR3JhcGhRTFR5cGVzW1wiVXNlckFwcFNldHRpbmdzXCJdLFxuXHR1cGxvYWRGaWxlRW5kPzogc3RyaW5nLFxuXHRsb2dvdXQ/OiBib29sZWFuLFxuXHRhZGRGaWxlVG9IaXN0b3J5OiBHcmFwaFFMVHlwZXNbXCJWRmlsZVwiXSxcblx0c2VuZE9uZU1haWw/OiBib29sZWFuLFxuXHRkZWxldGVEcmFmdE1haWw/OiBib29sZWFuLFxuXHR1cGRhdGVEcmFmdE1haWw/OiBHcmFwaFFMVHlwZXNbXCJNYWlsXCJdLFxuXHRkZWxldGVVc2VyPzogYm9vbGVhbixcblx0cGF5OiBib29sZWFuLFxuXHRjYW5jZWxQYXltZW50PzogYm9vbGVhbixcblx0c2VuZFJlcG9ydD86IEdyYXBoUUxUeXBlc1tcIlJlcG9ydFwiXSxcblx0c2F2ZUluQ2xvdWQ6IEdyYXBoUUxUeXBlc1tcIlZGaWxlXCJdLFxuXHRkZWxldGVWRmlsZVNoYXJpbmc6IGJvb2xlYW4sXG5cdGRlbGV0ZUZvbGRlclNoYXJpbmc6IGJvb2xlYW4sXG5cdGRlbGV0ZU1haWw6IGJvb2xlYW4sXG5cdGRlbGV0ZUZpbGU6IGJvb2xlYW4sXG5cdHNoYXJlRmlsZUluSGlzdG9yeTogYm9vbGVhbixcblx0cmVjb3ZlckZpbGU6IGJvb2xlYW4sXG5cdHJlY292ZXJNYWlsOiBib29sZWFuLFxuXHRyZWNvdmVyRm9sZGVyPzogYm9vbGVhbixcblx0ZHVwbGljYXRlVkZpbGU6IGJvb2xlYW4sXG5cdGRlbGV0ZUZvbGRlckNsb3VkVHJhc2g/OiBib29sZWFuLFxuXHRkZWxldGVWRmlsZUNsb3VkVHJhc2g/OiBib29sZWFuLFxuXHRkZWxldGVNYWlsVHJhc2g6IGJvb2xlYW4sXG5cdGVtcHR5Q2xvdWRUcmFzaD86IGJvb2xlYW4sXG5cdGVtcHR5TWFpbFRyYXNoPzogYm9vbGVhbixcblx0dXBsb2FkRmlsZVBhcnRFbmQ6IGJvb2xlYW5cbn1cbiAgICB9XG5leHBvcnQgZW51bSBMYW5nIHtcblx0ZnIgPSBcImZyXCIsXG5cdGVuID0gXCJlblwiLFxuXHRpdCA9IFwiaXRcIixcblx0ZGUgPSBcImRlXCIsXG5cdHB0ID0gXCJwdFwiLFxuXHRqYSA9IFwiamFcIixcblx0ZXMgPSBcImVzXCIsXG5cdG5sID0gXCJubFwiLFxuXHRwbCA9IFwicGxcIixcblx0cnUgPSBcInJ1XCIsXG5cdHpoID0gXCJ6aFwiLFxuXHRhciA9IFwiYXJcIixcblx0aGUgPSBcImhlXCIsXG5cdGhpID0gXCJoaVwiLFxuXHRrbyA9IFwia29cIlxufVxuZXhwb3J0IGVudW0gUGxhbktpbmQge1xuXHRmcmVlID0gXCJmcmVlXCIsXG5cdGJhc2ljID0gXCJiYXNpY1wiLFxuXHRhZHZhbmNlZCA9IFwiYWR2YW5jZWRcIixcblx0cHJvID0gXCJwcm9cIlxufVxuZXhwb3J0IGVudW0gVXNlclJvbGUge1xuXHR1c2VyID0gXCJ1c2VyXCIsXG5cdGFkbWluID0gXCJhZG1pblwiXG59XG5leHBvcnQgZW51bSBNYWlsVHlwZSB7XG5cdHNlbnQgPSBcInNlbnRcIixcblx0cmVjZWl2ZWQgPSBcInJlY2VpdmVkXCJcbn1cbmV4cG9ydCBlbnVtIFJpZ2h0cyB7XG5cdGFkbWluID0gXCJhZG1pblwiLFxuXHR3cml0ZSA9IFwid3JpdGVcIixcblx0cmVhZCA9IFwicmVhZFwiXG59XG5leHBvcnQgZW51bSBGaWxlQ29udGVudFR5cGUge1xuXHRjbG91ZCA9IFwiY2xvdWRcIixcblx0c2VudF9tYWlsID0gXCJzZW50X21haWxcIixcblx0cmVjZWl2ZWRfbWFpbCA9IFwicmVjZWl2ZWRfbWFpbFwiXG59XG5leHBvcnQgZW51bSBQYXlJbnB1dFR5cGUge1xuXHRzZWN1cmUgPSBcInNlY3VyZVwiLFxuXHRjbGFzc2ljID0gXCJjbGFzc2ljXCJcbn1cbmV4cG9ydCBjbGFzcyBHcmFwaFFMRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgY29uc3RydWN0b3IocHVibGljIHJlc3BvbnNlOiBHcmFwaFFMUmVzcG9uc2UpIHtcbiAgICAgIHN1cGVyKFwiXCIpO1xuICAgICAgY29uc29sZS5lcnJvcihyZXNwb25zZSk7XG4gICAgfVxuICAgIHRvU3RyaW5nKCkge1xuICAgICAgcmV0dXJuIFwiR3JhcGhRTCBSZXNwb25zZSBFcnJvclwiO1xuICAgIH1cbiAgfVxuXG5cbmV4cG9ydCB0eXBlIFVud3JhcFByb21pc2U8VD4gPSBUIGV4dGVuZHMgUHJvbWlzZTxpbmZlciBSPiA/IFIgOiBUO1xuZXhwb3J0IHR5cGUgWmV1c1N0YXRlPFQgZXh0ZW5kcyAoLi4uYXJnczogYW55W10pID0+IFByb21pc2U8YW55Pj4gPSBOb25OdWxsYWJsZTxcbiAgVW53cmFwUHJvbWlzZTxSZXR1cm5UeXBlPFQ+PlxuPjtcbmV4cG9ydCB0eXBlIFpldXNIb29rPFxuICBUIGV4dGVuZHMgKFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICkgPT4gUmVjb3JkPHN0cmluZywgKC4uLmFyZ3M6IGFueVtdKSA9PiBQcm9taXNlPGFueT4+LFxuICBOIGV4dGVuZHMga2V5b2YgUmV0dXJuVHlwZTxUPlxuPiA9IFpldXNTdGF0ZTxSZXR1cm5UeXBlPFQ+W05dPjtcblxudHlwZSBXaXRoVHlwZU5hbWVWYWx1ZTxUPiA9IFQgJiB7XG4gIF9fdHlwZW5hbWU/OiB0cnVlO1xufTtcbnR5cGUgQWxpYXNUeXBlPFQ+ID0gV2l0aFR5cGVOYW1lVmFsdWU8VD4gJiB7XG4gIF9fYWxpYXM/OiBSZWNvcmQ8c3RyaW5nLCBXaXRoVHlwZU5hbWVWYWx1ZTxUPj47XG59O1xuZXhwb3J0IGludGVyZmFjZSBHcmFwaFFMUmVzcG9uc2Uge1xuICBkYXRhPzogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgZXJyb3JzPzogQXJyYXk8e1xuICAgIG1lc3NhZ2U6IHN0cmluZztcbiAgfT47XG59XG50eXBlIERlZXBBbmlmeTxUPiA9IHtcbiAgW1AgaW4ga2V5b2YgVF0/OiBhbnk7XG59O1xudHlwZSBJc1BheUxvYWQ8VD4gPSBUIGV4dGVuZHMgW2FueSwgaW5mZXIgUGF5TG9hZF0gPyBQYXlMb2FkIDogVDtcbnR5cGUgSXNBcnJheTxULCBVPiA9IFQgZXh0ZW5kcyBBcnJheTxpbmZlciBSPiA/IElucHV0VHlwZTxSLCBVPltdIDogSW5wdXRUeXBlPFQsIFU+O1xudHlwZSBGbGF0dGVuQXJyYXk8VD4gPSBUIGV4dGVuZHMgQXJyYXk8aW5mZXIgUj4gPyBSIDogVDtcblxudHlwZSBJc0ludGVyZmFjZWQ8U1JDIGV4dGVuZHMgRGVlcEFuaWZ5PERTVD4sIERTVD4gPSBGbGF0dGVuQXJyYXk8U1JDPiBleHRlbmRzIFpFVVNfSU5URVJGQUNFUyB8IFpFVVNfVU5JT05TXG4gID8ge1xuICAgICAgW1AgaW4ga2V5b2YgU1JDXTogU1JDW1BdIGV4dGVuZHMgJ19fdW5pb24nICYgaW5mZXIgUlxuICAgICAgICA/IFAgZXh0ZW5kcyBrZXlvZiBEU1RcbiAgICAgICAgICA/IElzQXJyYXk8UiwgJ19fdHlwZW5hbWUnIGV4dGVuZHMga2V5b2YgRFNUID8gRFNUW1BdICYgeyBfX3R5cGVuYW1lOiB0cnVlIH0gOiBEU1RbUF0+XG4gICAgICAgICAgOiB7fVxuICAgICAgICA6IG5ldmVyO1xuICAgIH1ba2V5b2YgRFNUXSAmXG4gICAgICB7XG4gICAgICAgIFtQIGluIGtleW9mIE9taXQ8XG4gICAgICAgICAgUGljazxcbiAgICAgICAgICAgIFNSQyxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgW1AgaW4ga2V5b2YgRFNUXTogU1JDW1BdIGV4dGVuZHMgJ19fdW5pb24nID8gbmV2ZXIgOiBQO1xuICAgICAgICAgICAgfVtrZXlvZiBEU1RdXG4gICAgICAgICAgPixcbiAgICAgICAgICAnX190eXBlbmFtZSdcbiAgICAgICAgPl06IElzUGF5TG9hZDxEU1RbUF0+IGV4dGVuZHMgdHJ1ZSA/IFNSQ1tQXSA6IElzQXJyYXk8U1JDW1BdLCBEU1RbUF0+O1xuICAgICAgfVxuICA6IHtcbiAgICAgIFtQIGluIGtleW9mIFBpY2s8U1JDLCBrZXlvZiBEU1Q+XTogSXNQYXlMb2FkPERTVFtQXT4gZXh0ZW5kcyB0cnVlID8gU1JDW1BdIDogSXNBcnJheTxTUkNbUF0sIERTVFtQXT47XG4gICAgfTtcblxuZXhwb3J0IHR5cGUgTWFwVHlwZTxTUkMsIERTVD4gPSBTUkMgZXh0ZW5kcyBEZWVwQW5pZnk8RFNUPiA/IElzSW50ZXJmYWNlZDxTUkMsIERTVD4gOiBuZXZlcjtcbmV4cG9ydCB0eXBlIElucHV0VHlwZTxTUkMsIERTVD4gPSBJc1BheUxvYWQ8RFNUPiBleHRlbmRzIHsgX19hbGlhczogaW5mZXIgUiB9XG4gID8ge1xuICAgICAgW1AgaW4ga2V5b2YgUl06IE1hcFR5cGU8U1JDLCBSW1BdPjtcbiAgICB9ICZcbiAgICAgIE1hcFR5cGU8U1JDLCBPbWl0PElzUGF5TG9hZDxEU1Q+LCAnX19hbGlhcyc+PlxuICA6IE1hcFR5cGU8U1JDLCBJc1BheUxvYWQ8RFNUPj47XG50eXBlIEZ1bmM8UCBleHRlbmRzIGFueVtdLCBSPiA9ICguLi5hcmdzOiBQKSA9PiBSO1xudHlwZSBBbnlGdW5jID0gRnVuYzxhbnksIGFueT47XG5leHBvcnQgdHlwZSBBcmdzVHlwZTxGIGV4dGVuZHMgQW55RnVuYz4gPSBGIGV4dGVuZHMgRnVuYzxpbmZlciBQLCBhbnk+ID8gUCA6IG5ldmVyO1xuZXhwb3J0IHR5cGUgT3BlcmF0aW9uT3B0aW9ucyA9IHtcbiAgdmFyaWFibGVzPzogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgb3BlcmF0aW9uTmFtZT86IHN0cmluZztcbn07XG5leHBvcnQgdHlwZSBPcGVyYXRpb25Ub0dyYXBoUUw8ViwgVD4gPSA8WiBleHRlbmRzIFY+KG86IFogfCBWLCBvcHRpb25zPzogT3BlcmF0aW9uT3B0aW9ucykgPT4gUHJvbWlzZTxJbnB1dFR5cGU8VCwgWj4+O1xuZXhwb3J0IHR5cGUgU3Vic2NyaXB0aW9uVG9HcmFwaFFMPFYsIFQ+ID0gPFogZXh0ZW5kcyBWPihcbiAgbzogWiB8IFYsXG4gIG9wdGlvbnM/OiBPcGVyYXRpb25PcHRpb25zLFxuKSA9PiB7XG4gIHdzOiBXZWJTb2NrZXQ7XG4gIG9uOiAoZm46IChhcmdzOiBJbnB1dFR5cGU8VCwgWj4pID0+IHZvaWQpID0+IHZvaWQ7XG4gIG9mZjogKGZuOiAoZTogeyBkYXRhPzogSW5wdXRUeXBlPFQsIFo+OyBjb2RlPzogbnVtYmVyOyByZWFzb24/OiBzdHJpbmc7IG1lc3NhZ2U/OiBzdHJpbmcgfSkgPT4gdm9pZCkgPT4gdm9pZDtcbiAgZXJyb3I6IChmbjogKGU6IHsgZGF0YT86IElucHV0VHlwZTxULCBaPjsgZXJyb3JzPzpzdHJpbmdbXSB9KSA9PiB2b2lkKSA9PiB2b2lkO1xuICBvcGVuOiAoKSA9PiB2b2lkO1xufTtcbmV4cG9ydCB0eXBlIFNlbGVjdGlvbkZ1bmN0aW9uPFY+ID0gPFQ+KHQ6IFQgfCBWKSA9PiBUO1xuZXhwb3J0IHR5cGUgZmV0Y2hPcHRpb25zID0gQXJnc1R5cGU8dHlwZW9mIGZldGNoPjtcbnR5cGUgd2Vic29ja2V0T3B0aW9ucyA9IHR5cGVvZiBXZWJTb2NrZXQgZXh0ZW5kcyBuZXcgKFxuICAuLi5hcmdzOiBpbmZlciBSXG4pID0+IFdlYlNvY2tldFxuICA/IFJcbiAgOiBuZXZlcjtcbmV4cG9ydCB0eXBlIGNoYWluT3B0aW9ucyA9XG4gIHwgW2ZldGNoT3B0aW9uc1swXSwgZmV0Y2hPcHRpb25zWzFdICYge3dlYnNvY2tldD86IHdlYnNvY2tldE9wdGlvbnN9XVxuICB8IFtmZXRjaE9wdGlvbnNbMF1dO1xuZXhwb3J0IHR5cGUgRmV0Y2hGdW5jdGlvbiA9IChcbiAgcXVlcnk6IHN0cmluZyxcbiAgdmFyaWFibGVzPzogUmVjb3JkPHN0cmluZywgYW55PixcbikgPT4gUHJvbWlzZTxhbnk+O1xuZXhwb3J0IHR5cGUgU3Vic2NyaXB0aW9uRnVuY3Rpb24gPSAocXVlcnk6IHN0cmluZykgPT4gdm9pZDtcbnR5cGUgTm90VW5kZWZpbmVkPFQ+ID0gVCBleHRlbmRzIHVuZGVmaW5lZCA/IG5ldmVyIDogVDtcbmV4cG9ydCB0eXBlIFJlc29sdmVyVHlwZTxGPiA9IE5vdFVuZGVmaW5lZDxGIGV4dGVuZHMgW2luZmVyIEFSR1MsIGFueV0gPyBBUkdTIDogdW5kZWZpbmVkPjtcblxuXG5cbmV4cG9ydCBjb25zdCBaZXVzU2VsZWN0ID0gPFQ+KCkgPT4gKCh0OiBhbnkpID0+IHQpIGFzIFNlbGVjdGlvbkZ1bmN0aW9uPFQ+O1xuXG5leHBvcnQgY29uc3QgU2NhbGFyUmVzb2x2ZXIgPSAoc2NhbGFyOiBzdHJpbmcsIHZhbHVlOiBhbnkpID0+IHtcbiAgc3dpdGNoIChzY2FsYXIpIHtcbiAgICBjYXNlICdTdHJpbmcnOlxuICAgICAgcmV0dXJuICBgJHtKU09OLnN0cmluZ2lmeSh2YWx1ZSl9YDtcbiAgICBjYXNlICdJbnQnOlxuICAgICAgcmV0dXJuIGAke3ZhbHVlfWA7XG4gICAgY2FzZSAnRmxvYXQnOlxuICAgICAgcmV0dXJuIGAke3ZhbHVlfWA7XG4gICAgY2FzZSAnQm9vbGVhbic6XG4gICAgICByZXR1cm4gYCR7dmFsdWV9YDtcbiAgICBjYXNlICdJRCc6XG4gICAgICByZXR1cm4gYFwiJHt2YWx1ZX1cImA7XG4gICAgY2FzZSAnZW51bSc6XG4gICAgICByZXR1cm4gYCR7dmFsdWV9YDtcbiAgICBjYXNlICdzY2FsYXInOlxuICAgICAgcmV0dXJuIGAke3ZhbHVlfWA7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgfVxufTtcblxuXG5leHBvcnQgY29uc3QgVHlwZXNQcm9wc1Jlc29sdmVyID0gKHtcbiAgICB2YWx1ZSxcbiAgICB0eXBlLFxuICAgIG5hbWUsXG4gICAga2V5LFxuICAgIGJsb2NrQXJyYXlzXG59OiB7XG4gICAgdmFsdWU6IGFueTtcbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGtleT86IHN0cmluZztcbiAgICBibG9ja0FycmF5cz86IGJvb2xlYW47XG59KTogc3RyaW5nID0+IHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIGBudWxsYDtcbiAgICB9XG4gICAgbGV0IHJlc29sdmVkVmFsdWUgPSBBbGxUeXBlc1Byb3BzW3R5cGVdW25hbWVdO1xuICAgIGlmIChrZXkpIHtcbiAgICAgICAgcmVzb2x2ZWRWYWx1ZSA9IHJlc29sdmVkVmFsdWVba2V5XTtcbiAgICB9XG4gICAgaWYgKCFyZXNvbHZlZFZhbHVlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IHJlc29sdmUgJHt0eXBlfSAke25hbWV9JHtrZXkgPyBgICR7a2V5fWAgOiAnJ31gKVxuICAgIH1cbiAgICBjb25zdCB0eXBlUmVzb2x2ZWQgPSByZXNvbHZlZFZhbHVlLnR5cGU7XG4gICAgY29uc3QgaXNBcnJheSA9IHJlc29sdmVkVmFsdWUuYXJyYXk7XG4gICAgY29uc3QgaXNBcnJheVJlcXVpcmVkID0gcmVzb2x2ZWRWYWx1ZS5hcnJheVJlcXVpcmVkO1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlLnN0YXJ0c1dpdGgoYFpFVVNfVkFSJGApKSB7XG4gICAgICAgIGNvbnN0IGlzUmVxdWlyZWQgPSByZXNvbHZlZFZhbHVlLnJlcXVpcmVkID8gJyEnIDogJyc7XG4gICAgICAgIGxldCB0ID0gYCR7dHlwZVJlc29sdmVkfWA7XG4gICAgICAgIGlmIChpc0FycmF5KSB7XG4gICAgICAgICAgaWYgKGlzUmVxdWlyZWQpIHtcbiAgICAgICAgICAgICAgdCA9IGAke3R9IWA7XG4gICAgICAgICAgfVxuICAgICAgICAgIHQgPSBgWyR7dH1dYDtcbiAgICAgICAgICBpZihpc0FycmF5UmVxdWlyZWQpe1xuICAgICAgICAgICAgdCA9IGAke3R9IWA7XG4gICAgICAgICAgfVxuICAgICAgICB9ZWxzZXtcbiAgICAgICAgICBpZiAoaXNSZXF1aXJlZCkge1xuICAgICAgICAgICAgICAgIHQgPSBgJHt0fSFgO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYFxcJCR7dmFsdWUuc3BsaXQoYFpFVVNfVkFSJGApWzFdfV9fWkVVU19WQVJfXyR7dH1gO1xuICAgIH1cbiAgICBpZiAoaXNBcnJheSAmJiAhYmxvY2tBcnJheXMpIHtcbiAgICAgICAgcmV0dXJuIGBbJHt2YWx1ZVxuICAgICAgICAubWFwKCh2OiBhbnkpID0+IFR5cGVzUHJvcHNSZXNvbHZlcih7IHZhbHVlOiB2LCB0eXBlLCBuYW1lLCBrZXksIGJsb2NrQXJyYXlzOiB0cnVlIH0pKVxuICAgICAgICAuam9pbignLCcpfV1gO1xuICAgIH1cbiAgICBjb25zdCByZXNsb3ZlZFNjYWxhciA9IFNjYWxhclJlc29sdmVyKHR5cGVSZXNvbHZlZCwgdmFsdWUpO1xuICAgIGlmICghcmVzbG92ZWRTY2FsYXIpIHtcbiAgICAgICAgY29uc3QgcmVzb2x2ZWRUeXBlID0gQWxsVHlwZXNQcm9wc1t0eXBlUmVzb2x2ZWRdO1xuICAgICAgICBpZiAodHlwZW9mIHJlc29sdmVkVHlwZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgY29uc3QgYXJnc0tleXMgPSBPYmplY3Qua2V5cyhyZXNvbHZlZFR5cGUpO1xuICAgICAgICByZXR1cm4gYHske2FyZ3NLZXlzXG4gICAgICAgICAgICAuZmlsdGVyKChhaykgPT4gdmFsdWVbYWtdICE9PSB1bmRlZmluZWQpXG4gICAgICAgICAgICAubWFwKFxuICAgICAgICAgICAgKGFrKSA9PiBgJHtha306JHtUeXBlc1Byb3BzUmVzb2x2ZXIoeyB2YWx1ZTogdmFsdWVbYWtdLCB0eXBlOiB0eXBlUmVzb2x2ZWQsIG5hbWU6IGFrIH0pfWBcbiAgICAgICAgICAgICl9fWA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFNjYWxhclJlc29sdmVyKEFsbFR5cGVzUHJvcHNbdHlwZVJlc29sdmVkXSwgdmFsdWUpIGFzIHN0cmluZztcbiAgICB9XG4gICAgcmV0dXJuIHJlc2xvdmVkU2NhbGFyO1xufTtcblxuXG5jb25zdCBpc0FycmF5RnVuY3Rpb24gPSAoXG4gIHBhcmVudDogc3RyaW5nW10sXG4gIGE6IGFueVtdXG4pID0+IHtcbiAgY29uc3QgW3ZhbHVlcywgcl0gPSBhO1xuICBjb25zdCBbbWFpbktleSwga2V5LCAuLi5rZXlzXSA9IHBhcmVudDtcbiAgY29uc3Qga2V5VmFsdWVzID0gT2JqZWN0LmtleXModmFsdWVzKS5maWx0ZXIoKGspID0+IHR5cGVvZiB2YWx1ZXNba10gIT09ICd1bmRlZmluZWQnKTtcblxuICBpZiAoIWtleXMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4ga2V5VmFsdWVzLmxlbmd0aCA+IDBcbiAgICAgICAgPyBgKCR7a2V5VmFsdWVzXG4gICAgICAgICAgICAubWFwKFxuICAgICAgICAgICAgICAodikgPT5cbiAgICAgICAgICAgICAgICBgJHt2fToke1R5cGVzUHJvcHNSZXNvbHZlcih7XG4gICAgICAgICAgICAgICAgICB2YWx1ZTogdmFsdWVzW3ZdLFxuICAgICAgICAgICAgICAgICAgdHlwZTogbWFpbktleSxcbiAgICAgICAgICAgICAgICAgIG5hbWU6IGtleSxcbiAgICAgICAgICAgICAgICAgIGtleTogdlxuICAgICAgICAgICAgICAgIH0pfWBcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5qb2luKCcsJyl9KSR7ciA/IHRyYXZlcnNlVG9TZWVrQXJyYXlzKHBhcmVudCwgcikgOiAnJ31gXG4gICAgICAgIDogdHJhdmVyc2VUb1NlZWtBcnJheXMocGFyZW50LCByKTtcbiAgICB9XG5cbiAgY29uc3QgW3R5cGVSZXNvbHZlcktleV0gPSBrZXlzLnNwbGljZShrZXlzLmxlbmd0aCAtIDEsIDEpO1xuICBsZXQgdmFsdWVUb1Jlc29sdmUgPSBSZXR1cm5UeXBlc1ttYWluS2V5XVtrZXldO1xuICBmb3IgKGNvbnN0IGsgb2Yga2V5cykge1xuICAgIHZhbHVlVG9SZXNvbHZlID0gUmV0dXJuVHlwZXNbdmFsdWVUb1Jlc29sdmVdW2tdO1xuICB9XG5cbiAgY29uc3QgYXJndW1lbnRTdHJpbmcgPVxuICAgIGtleVZhbHVlcy5sZW5ndGggPiAwXG4gICAgICA/IGAoJHtrZXlWYWx1ZXNcbiAgICAgICAgICAubWFwKFxuICAgICAgICAgICAgKHYpID0+XG4gICAgICAgICAgICAgIGAke3Z9OiR7VHlwZXNQcm9wc1Jlc29sdmVyKHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogdmFsdWVzW3ZdLFxuICAgICAgICAgICAgICAgIHR5cGU6IHZhbHVlVG9SZXNvbHZlLFxuICAgICAgICAgICAgICAgIG5hbWU6IHR5cGVSZXNvbHZlcktleSxcbiAgICAgICAgICAgICAgICBrZXk6IHZcbiAgICAgICAgICAgICAgfSl9YFxuICAgICAgICAgIClcbiAgICAgICAgICAuam9pbignLCcpfSkke3IgPyB0cmF2ZXJzZVRvU2Vla0FycmF5cyhwYXJlbnQsIHIpIDogJyd9YFxuICAgICAgOiB0cmF2ZXJzZVRvU2Vla0FycmF5cyhwYXJlbnQsIHIpO1xuICByZXR1cm4gYXJndW1lbnRTdHJpbmc7XG59O1xuXG5cbmNvbnN0IHJlc29sdmVLViA9IChrOiBzdHJpbmcsIHY6IGJvb2xlYW4gfCBzdHJpbmcgfCB7IFt4OiBzdHJpbmddOiBib29sZWFuIHwgc3RyaW5nIH0pID0+XG4gIHR5cGVvZiB2ID09PSAnYm9vbGVhbicgPyBrIDogdHlwZW9mIHYgPT09ICdvYmplY3QnID8gYCR7a317JHtvYmplY3RUb1RyZWUodil9fWAgOiBgJHtrfSR7dn1gO1xuXG5cbmNvbnN0IG9iamVjdFRvVHJlZSA9IChvOiB7IFt4OiBzdHJpbmddOiBib29sZWFuIHwgc3RyaW5nIH0pOiBzdHJpbmcgPT5cbiAgYHske09iamVjdC5rZXlzKG8pLm1hcCgoaykgPT4gYCR7cmVzb2x2ZUtWKGssIG9ba10pfWApLmpvaW4oJyAnKX19YDtcblxuXG5jb25zdCB0cmF2ZXJzZVRvU2Vla0FycmF5cyA9IChwYXJlbnQ6IHN0cmluZ1tdLCBhPzogYW55KTogc3RyaW5nID0+IHtcbiAgaWYgKCFhKSByZXR1cm4gJyc7XG4gIGlmIChPYmplY3Qua2V5cyhhKS5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cbiAgbGV0IGI6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcbiAgaWYgKEFycmF5LmlzQXJyYXkoYSkpIHtcbiAgICByZXR1cm4gaXNBcnJheUZ1bmN0aW9uKFsuLi5wYXJlbnRdLCBhKTtcbiAgfSBlbHNlIHtcbiAgICBpZiAodHlwZW9mIGEgPT09ICdvYmplY3QnKSB7XG4gICAgICBPYmplY3Qua2V5cyhhKVxuICAgICAgICAuZmlsdGVyKChrKSA9PiB0eXBlb2YgYVtrXSAhPT0gJ3VuZGVmaW5lZCcpXG4gICAgICAgIC5mb3JFYWNoKChrKSA9PiB7XG4gICAgICAgIGlmIChrID09PSAnX19hbGlhcycpIHtcbiAgICAgICAgICBPYmplY3Qua2V5cyhhW2tdKS5mb3JFYWNoKChhbGlhc0tleSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYWxpYXNPcGVyYXRpb25zID0gYVtrXVthbGlhc0tleV07XG4gICAgICAgICAgICBjb25zdCBhbGlhc09wZXJhdGlvbk5hbWUgPSBPYmplY3Qua2V5cyhhbGlhc09wZXJhdGlvbnMpWzBdO1xuICAgICAgICAgICAgY29uc3QgYWxpYXNPcGVyYXRpb24gPSBhbGlhc09wZXJhdGlvbnNbYWxpYXNPcGVyYXRpb25OYW1lXTtcbiAgICAgICAgICAgIGJbXG4gICAgICAgICAgICAgIGAke2FsaWFzT3BlcmF0aW9uTmFtZX1fX2FsaWFzX18ke2FsaWFzS2V5fTogJHthbGlhc09wZXJhdGlvbk5hbWV9YFxuICAgICAgICAgICAgXSA9IHRyYXZlcnNlVG9TZWVrQXJyYXlzKFsuLi5wYXJlbnQsIGFsaWFzT3BlcmF0aW9uTmFtZV0sIGFsaWFzT3BlcmF0aW9uKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBiW2tdID0gdHJhdmVyc2VUb1NlZWtBcnJheXMoWy4uLnBhcmVudCwga10sIGFba10pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgfVxuICByZXR1cm4gb2JqZWN0VG9UcmVlKGIpO1xufTtcblxuXG5jb25zdCBidWlsZFF1ZXJ5ID0gKHR5cGU6IHN0cmluZywgYT86IFJlY29yZDxhbnksIGFueT4pID0+XG4gIHRyYXZlcnNlVG9TZWVrQXJyYXlzKFt0eXBlXSwgYSk7XG5cblxuY29uc3QgaW5zcGVjdFZhcmlhYmxlcyA9IChxdWVyeTogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IHJlZ2V4ID0gL1xcJFxcYlxcdypfX1pFVVNfVkFSX19cXFs/W14hXlxcXV5cXHNeLF5cXCleXFx9XSpbIV0/W1xcXV0/WyFdPy9nO1xuICBsZXQgcmVzdWx0O1xuICBjb25zdCBBbGxWYXJpYWJsZXM6IHN0cmluZ1tdID0gW107XG4gIHdoaWxlICgocmVzdWx0ID0gcmVnZXguZXhlYyhxdWVyeSkpKSB7XG4gICAgaWYgKEFsbFZhcmlhYmxlcy5pbmNsdWRlcyhyZXN1bHRbMF0pKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgQWxsVmFyaWFibGVzLnB1c2gocmVzdWx0WzBdKTtcbiAgfVxuICBpZiAoIUFsbFZhcmlhYmxlcy5sZW5ndGgpIHtcbiAgICByZXR1cm4gcXVlcnk7XG4gIH1cbiAgbGV0IGZpbHRlcmVkUXVlcnkgPSBxdWVyeTtcbiAgQWxsVmFyaWFibGVzLmZvckVhY2goKHZhcmlhYmxlKSA9PiB7XG4gICAgd2hpbGUgKGZpbHRlcmVkUXVlcnkuaW5jbHVkZXModmFyaWFibGUpKSB7XG4gICAgICBmaWx0ZXJlZFF1ZXJ5ID0gZmlsdGVyZWRRdWVyeS5yZXBsYWNlKHZhcmlhYmxlLCB2YXJpYWJsZS5zcGxpdCgnX19aRVVTX1ZBUl9fJylbMF0pO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiBgKCR7QWxsVmFyaWFibGVzLm1hcCgoYSkgPT4gYS5zcGxpdCgnX19aRVVTX1ZBUl9fJykpXG4gICAgLm1hcCgoW3ZhcmlhYmxlTmFtZSwgdmFyaWFibGVUeXBlXSkgPT4gYCR7dmFyaWFibGVOYW1lfToke3ZhcmlhYmxlVHlwZX1gKVxuICAgIC5qb2luKCcsICcpfSkke2ZpbHRlcmVkUXVlcnl9YDtcbn07XG5cblxuZXhwb3J0IGNvbnN0IHF1ZXJ5Q29uc3RydWN0ID0gKHQ6ICdxdWVyeScgfCAnbXV0YXRpb24nIHwgJ3N1YnNjcmlwdGlvbicsIHROYW1lOiBzdHJpbmcsIG9wZXJhdGlvbk5hbWU/OiBzdHJpbmcpID0+IChvOiBSZWNvcmQ8YW55LCBhbnk+KSA9PlxuICBgJHt0LnRvTG93ZXJDYXNlKCl9JHtvcGVyYXRpb25OYW1lID8gJyAnICsgb3BlcmF0aW9uTmFtZSA6ICcnfSR7aW5zcGVjdFZhcmlhYmxlcyhidWlsZFF1ZXJ5KHROYW1lLCBvKSl9YDtcblxuXG5jb25zdCBmdWxsQ2hhaW5Db25zdHJ1Y3QgPSAoZm46IEZldGNoRnVuY3Rpb24pID0+ICh0OiAncXVlcnknIHwgJ211dGF0aW9uJyB8ICdzdWJzY3JpcHRpb24nLCB0TmFtZTogc3RyaW5nKSA9PiAoXG4gIG86IFJlY29yZDxhbnksIGFueT4sXG4gIG9wdGlvbnM/OiBPcGVyYXRpb25PcHRpb25zLFxuKSA9PiBmbihxdWVyeUNvbnN0cnVjdCh0LCB0TmFtZSwgb3B0aW9ucz8ub3BlcmF0aW9uTmFtZSkobyksIG9wdGlvbnM/LnZhcmlhYmxlcykudGhlbigocjphbnkpID0+IHtcbiAgc2Vla0ZvckFsaWFzZXMocilcbiAgcmV0dXJuIHJcbn0pO1xuXG5leHBvcnQgY29uc3QgZnVsbENoYWluQ29uc3RydWN0b3IgPSA8RiBleHRlbmRzIEZldGNoRnVuY3Rpb24sIFIgZXh0ZW5kcyBrZXlvZiBWYWx1ZVR5cGVzPihcbiAgZm46IEYsXG4gIG9wZXJhdGlvbjogJ3F1ZXJ5JyB8ICdtdXRhdGlvbicgfCAnc3Vic2NyaXB0aW9uJyxcbiAga2V5OiBSLFxuKSA9PlxuICAoKG8sIG9wdGlvbnMpID0+IGZ1bGxDaGFpbkNvbnN0cnVjdChmbikob3BlcmF0aW9uLCBrZXkpKG8gYXMgYW55LCBvcHRpb25zKSkgYXMgT3BlcmF0aW9uVG9HcmFwaFFMPFxuICAgIFZhbHVlVHlwZXNbUl0sXG4gICAgR3JhcGhRTFR5cGVzW1JdXG4gID47XG5cblxuY29uc3QgZnVsbFN1YnNjcmlwdGlvbkNvbnN0cnVjdCA9IChmbjogU3Vic2NyaXB0aW9uRnVuY3Rpb24pID0+IChcbiAgdDogJ3F1ZXJ5JyB8ICdtdXRhdGlvbicgfCAnc3Vic2NyaXB0aW9uJyxcbiAgdE5hbWU6IHN0cmluZyxcbikgPT4gKG86IFJlY29yZDxhbnksIGFueT4sIG9wdGlvbnM/OiBPcGVyYXRpb25PcHRpb25zKSA9PlxuICBmbihxdWVyeUNvbnN0cnVjdCh0LCB0TmFtZSwgb3B0aW9ucz8ub3BlcmF0aW9uTmFtZSkobykpO1xuXG5leHBvcnQgY29uc3QgZnVsbFN1YnNjcmlwdGlvbkNvbnN0cnVjdG9yID0gPEYgZXh0ZW5kcyBTdWJzY3JpcHRpb25GdW5jdGlvbiwgUiBleHRlbmRzIGtleW9mIFZhbHVlVHlwZXM+KFxuICBmbjogRixcbiAgb3BlcmF0aW9uOiAncXVlcnknIHwgJ211dGF0aW9uJyB8ICdzdWJzY3JpcHRpb24nLFxuICBrZXk6IFIsXG4pID0+XG4gICgobywgb3B0aW9ucykgPT4gZnVsbFN1YnNjcmlwdGlvbkNvbnN0cnVjdChmbikob3BlcmF0aW9uLCBrZXkpKG8gYXMgYW55LCBvcHRpb25zKSkgYXMgU3Vic2NyaXB0aW9uVG9HcmFwaFFMPFxuICAgIFZhbHVlVHlwZXNbUl0sXG4gICAgR3JhcGhRTFR5cGVzW1JdXG4gID47XG5cblxuY29uc3Qgc2Vla0ZvckFsaWFzZXMgPSAocmVzcG9uc2U6IGFueSkgPT4ge1xuICBjb25zdCB0cmF2ZXJzZUFsaWFzID0gKHZhbHVlOiBhbnkpID0+IHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIHZhbHVlLmZvckVhY2goc2Vla0ZvckFsaWFzZXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgICBzZWVrRm9yQWxpYXNlcyh2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuICBpZiAodHlwZW9mIHJlc3BvbnNlID09PSAnb2JqZWN0JyAmJiByZXNwb25zZSkge1xuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhyZXNwb25zZSk7XG4gICAgaWYgKGtleXMubGVuZ3RoIDwgMSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBrZXlzLmZvckVhY2goKGspID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gcmVzcG9uc2Vba107XG4gICAgICBpZiAoay5pbmRleE9mKCdfX2FsaWFzX18nKSAhPT0gLTEpIHtcbiAgICAgICAgY29uc3QgW29wZXJhdGlvbiwgYWxpYXNdID0gay5zcGxpdCgnX19hbGlhc19fJyk7XG4gICAgICAgIHJlc3BvbnNlW2FsaWFzXSA9IHtcbiAgICAgICAgICBbb3BlcmF0aW9uXTogdmFsdWUsXG4gICAgICAgIH07XG4gICAgICAgIGRlbGV0ZSByZXNwb25zZVtrXTtcbiAgICAgIH1cbiAgICAgIHRyYXZlcnNlQWxpYXModmFsdWUpO1xuICAgIH0pO1xuICB9XG59O1xuXG5cbmV4cG9ydCBjb25zdCAkID0gKHQ6IFRlbXBsYXRlU3RyaW5nc0FycmF5KTogYW55ID0+IGBaRVVTX1ZBUiQke3Quam9pbignJyl9YDtcblxuXG5leHBvcnQgY29uc3QgcmVzb2x2ZXJGb3IgPSA8XG4gIFQgZXh0ZW5kcyBrZXlvZiBWYWx1ZVR5cGVzLFxuICBaIGV4dGVuZHMga2V5b2YgVmFsdWVUeXBlc1tUXSxcbiAgWSBleHRlbmRzIChcbiAgICBhcmdzOiBSZXF1aXJlZDxWYWx1ZVR5cGVzW1RdPltaXSBleHRlbmRzIFtpbmZlciBJbnB1dCwgYW55XSA/IElucHV0IDogYW55LFxuICAgIHNvdXJjZTogYW55LFxuICApID0+IFogZXh0ZW5kcyBrZXlvZiBNb2RlbFR5cGVzW1RdID8gTW9kZWxUeXBlc1tUXVtaXSB8IFByb21pc2U8TW9kZWxUeXBlc1tUXVtaXT4gOiBhbnlcbj4oXG4gIGZuOiBZLFxuKSA9PiBmbiBhcyAoYXJncz86IGFueSxzb3VyY2U/OiBhbnkpID0+IGFueTtcblxuXG5jb25zdCBoYW5kbGVGZXRjaFJlc3BvbnNlID0gKFxuICByZXNwb25zZTogUGFyYW1ldGVyczxFeHRyYWN0PFBhcmFtZXRlcnM8UmV0dXJuVHlwZTx0eXBlb2YgZmV0Y2g+Wyd0aGVuJ10+WzBdLCBGdW5jdGlvbj4+WzBdXG4pOiBQcm9taXNlPEdyYXBoUUxSZXNwb25zZT4gPT4ge1xuICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChfLCByZWplY3QpID0+IHtcbiAgICAgIHJlc3BvbnNlLnRleHQoKS50aGVuKHRleHQgPT4ge1xuICAgICAgICB0cnkgeyByZWplY3QoSlNPTi5wYXJzZSh0ZXh0KSk7IH1cbiAgICAgICAgY2F0Y2ggKGVycikgeyByZWplY3QodGV4dCk7IH1cbiAgICAgIH0pLmNhdGNoKHJlamVjdCk7XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIHJlc3BvbnNlLmpzb24oKTtcbn07XG5cbmV4cG9ydCBjb25zdCBhcGlGZXRjaCA9IChvcHRpb25zOiBmZXRjaE9wdGlvbnMpID0+IChxdWVyeTogc3RyaW5nLCB2YXJpYWJsZXM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fSkgPT4ge1xuICAgIGxldCBmZXRjaEZ1bmN0aW9uID0gZmV0Y2g7XG4gICAgbGV0IHF1ZXJ5U3RyaW5nID0gcXVlcnk7XG4gICAgbGV0IGZldGNoT3B0aW9ucyA9IG9wdGlvbnNbMV0gfHwge307XG4gICAgaWYgKGZldGNoT3B0aW9ucy5tZXRob2QgJiYgZmV0Y2hPcHRpb25zLm1ldGhvZCA9PT0gJ0dFVCcpIHtcbiAgICAgIHF1ZXJ5U3RyaW5nID0gZW5jb2RlVVJJQ29tcG9uZW50KHF1ZXJ5KTtcbiAgICAgIHJldHVybiBmZXRjaEZ1bmN0aW9uKGAke29wdGlvbnNbMF19P3F1ZXJ5PSR7cXVlcnlTdHJpbmd9YCwgZmV0Y2hPcHRpb25zKVxuICAgICAgICAudGhlbihoYW5kbGVGZXRjaFJlc3BvbnNlKVxuICAgICAgICAudGhlbigocmVzcG9uc2U6IEdyYXBoUUxSZXNwb25zZSkgPT4ge1xuICAgICAgICAgIGlmIChyZXNwb25zZS5lcnJvcnMpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBHcmFwaFFMRXJyb3IocmVzcG9uc2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBmZXRjaEZ1bmN0aW9uKGAke29wdGlvbnNbMF19YCwge1xuICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoeyBxdWVyeTogcXVlcnlTdHJpbmcsIHZhcmlhYmxlcyB9KSxcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nXG4gICAgICB9LFxuICAgICAgLi4uZmV0Y2hPcHRpb25zXG4gICAgfSlcbiAgICAgIC50aGVuKGhhbmRsZUZldGNoUmVzcG9uc2UpXG4gICAgICAudGhlbigocmVzcG9uc2U6IEdyYXBoUUxSZXNwb25zZSkgPT4ge1xuICAgICAgICBpZiAocmVzcG9uc2UuZXJyb3JzKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEdyYXBoUUxFcnJvcihyZXNwb25zZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgICB9KTtcbiAgfTtcblxuXG5leHBvcnQgY29uc3QgYXBpU3Vic2NyaXB0aW9uID0gKG9wdGlvbnM6IGNoYWluT3B0aW9ucykgPT4gKFxuICAgIHF1ZXJ5OiBzdHJpbmcsXG4gICkgPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBxdWVyeVN0cmluZyA9IG9wdGlvbnNbMF0gKyAnP3F1ZXJ5PScgKyBlbmNvZGVVUklDb21wb25lbnQocXVlcnkpO1xuICAgICAgY29uc3Qgd3NTdHJpbmcgPSBxdWVyeVN0cmluZy5yZXBsYWNlKCdodHRwJywgJ3dzJyk7XG4gICAgICBjb25zdCBob3N0ID0gKG9wdGlvbnMubGVuZ3RoID4gMSAmJiBvcHRpb25zWzFdPy53ZWJzb2NrZXQ/LlswXSkgfHwgd3NTdHJpbmc7XG4gICAgICBjb25zdCB3ZWJTb2NrZXRPcHRpb25zID0gb3B0aW9uc1sxXT8ud2Vic29ja2V0IHx8IFtob3N0XTtcbiAgICAgIGNvbnN0IHdzID0gbmV3IFdlYlNvY2tldCguLi53ZWJTb2NrZXRPcHRpb25zKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHdzLFxuICAgICAgICBvbjogKGU6IChhcmdzOiBhbnkpID0+IHZvaWQpID0+IHtcbiAgICAgICAgICB3cy5vbm1lc3NhZ2UgPSAoZXZlbnQ6YW55KSA9PiB7XG4gICAgICAgICAgICBpZihldmVudC5kYXRhKXtcbiAgICAgICAgICAgICAgY29uc3QgcGFyc2VkID0gSlNPTi5wYXJzZShldmVudC5kYXRhKVxuICAgICAgICAgICAgICBjb25zdCBkYXRhID0gcGFyc2VkLmRhdGFcbiAgICAgICAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgICAgICBzZWVrRm9yQWxpYXNlcyhkYXRhKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gZShkYXRhKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9O1xuICAgICAgICB9LFxuICAgICAgICBvZmY6IChlOiAoYXJnczogYW55KSA9PiB2b2lkKSA9PiB7XG4gICAgICAgICAgd3Mub25jbG9zZSA9IGU7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoZTogKGFyZ3M6IGFueSkgPT4gdm9pZCkgPT4ge1xuICAgICAgICAgIHdzLm9uZXJyb3IgPSBlO1xuICAgICAgICB9LFxuICAgICAgICBvcGVuOiAoZTogKCkgPT4gdm9pZCkgPT4ge1xuICAgICAgICAgIHdzLm9ub3BlbiA9IGU7XG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH0gY2F0Y2gge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyB3ZWJzb2NrZXRzIGltcGxlbWVudGVkJyk7XG4gICAgfVxuICB9O1xuXG5cbmV4cG9ydCBjb25zdCBUaHVuZGVyID0gKGZuOiBGZXRjaEZ1bmN0aW9uKSA9PiAoe1xuICBxdWVyeTogZnVsbENoYWluQ29uc3RydWN0b3IoZm4sJ3F1ZXJ5JywgJ1F1ZXJ5JyksXG5tdXRhdGlvbjogZnVsbENoYWluQ29uc3RydWN0b3IoZm4sJ211dGF0aW9uJywgJ011dGF0aW9uJylcbn0pO1xuXG5leHBvcnQgY29uc3QgQ2hhaW4gPSAoLi4ub3B0aW9uczogY2hhaW5PcHRpb25zKSA9PiAoe1xuICBxdWVyeTogZnVsbENoYWluQ29uc3RydWN0b3IoYXBpRmV0Y2gob3B0aW9ucyksJ3F1ZXJ5JywgJ1F1ZXJ5JyksXG5tdXRhdGlvbjogZnVsbENoYWluQ29uc3RydWN0b3IoYXBpRmV0Y2gob3B0aW9ucyksJ211dGF0aW9uJywgJ011dGF0aW9uJylcbn0pO1xuZXhwb3J0IGNvbnN0IFpldXMgPSB7XG4gIHF1ZXJ5OiAobzpWYWx1ZVR5cGVzW1wiUXVlcnlcIl0sIG9wZXJhdGlvbk5hbWU/OiBzdHJpbmcpID0+IHF1ZXJ5Q29uc3RydWN0KCdxdWVyeScsICdRdWVyeScsIG9wZXJhdGlvbk5hbWUpKG8pLFxubXV0YXRpb246IChvOlZhbHVlVHlwZXNbXCJNdXRhdGlvblwiXSwgb3BlcmF0aW9uTmFtZT86IHN0cmluZykgPT4gcXVlcnlDb25zdHJ1Y3QoJ211dGF0aW9uJywgJ011dGF0aW9uJywgb3BlcmF0aW9uTmFtZSkobylcbn07XG5leHBvcnQgY29uc3QgU2VsZWN0b3JzID0ge1xuICBxdWVyeTogWmV1c1NlbGVjdDxWYWx1ZVR5cGVzW1wiUXVlcnlcIl0+KCksXG5tdXRhdGlvbjogWmV1c1NlbGVjdDxWYWx1ZVR5cGVzW1wiTXV0YXRpb25cIl0+KClcbn07XG5cblxuZXhwb3J0IGNvbnN0IEdxbCA9IENoYWluKCdodHRwczovL2FwaS5kZXYuc2VjcmVjeS5tZS9ncmFwaHFsJylcbiJdfQ==
|