@tricoteuses/assemblee 1.10.1 → 1.10.3

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.
@@ -53,6 +53,10 @@ function commitGit(datasetCleanDir, options, exitCode, subdirectories) {
53
53
  }
54
54
  function cleanAndValidateData(data, cleaner, fromJson, toJson, noValidate) {
55
55
  cleaner(data);
56
+ if (typeof data === "object" && Object.keys(data).length === 0) {
57
+ // By convention: an empty object must be deleted.
58
+ return null;
59
+ }
56
60
  const jsonData = JSON.stringify(data, null, 2);
57
61
  if (!noValidate) {
58
62
  return jsonData;
@@ -73,13 +77,15 @@ async function processFiles(datasetRawDir, datasetCleanDir, walkDirParams, clean
73
77
  const data = JSON.parse(rawJson);
74
78
  const validateData = !options["no-validate"];
75
79
  const cleanJson = cleanAndValidateData(data, cleaner, dataConverter.fromJson, dataConverter.toJson, validateData);
76
- const cleanFilePath = path.join(datasetCleanDir, ...filePathArray);
77
- fs.ensureDirSync(path.dirname(cleanFilePath));
78
- fs.writeFileSync(cleanFilePath, cleanJson, {
79
- encoding: "utf8"
80
- });
81
- if (postProcessor) {
82
- await postProcessor(data, datasetCleanDir, options);
80
+ if (cleanJson !== null) {
81
+ const cleanFilePath = path.join(datasetCleanDir, ...filePathArray);
82
+ fs.ensureDirSync(path.dirname(cleanFilePath));
83
+ fs.writeFileSync(cleanFilePath, cleanJson, {
84
+ encoding: "utf8"
85
+ });
86
+ if (postProcessor) {
87
+ await postProcessor(data, datasetCleanDir, options);
88
+ }
83
89
  }
84
90
  }
85
91
  }
@@ -264,4 +270,4 @@ function main(argv) {
264
270
  if (process.argv[1].endsWith("clean_reorganized_data.ts")) {
265
271
  main(process.argv).then(process.exit);
266
272
  }
267
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb21tYW5kTGluZUFyZ3MiLCJmcyIsInBhdGgiLCJjbGVhbkFjdGV1ciIsImNsZWFuQW1lbmRlbWVudCIsImNsZWFuRG9jdW1lbnRPckRpdmlzaW9uIiwiY2xlYW5Eb3NzaWVyUGFybGVtZW50YWlyZSIsImNsZWFuT3JnYW5lIiwiY2xlYW5SZXVuaW9uIiwiY2xlYW5TY3J1dGluIiwiY2xlYW5RdWVzdGlvbiIsImNsZWFuQ29tcHRlUmVuZHUiLCJkYXRhc2V0cyIsIkVuYWJsZWREYXRhc2V0cyIsImdldEVuYWJsZWREYXRhc2V0cyIsImZpbHRlckJ5TGVnaXNsYXR1cmUiLCJkb3dubG9hZEFuZFBhcnNlIiwiZXhpc3RpbmdEYXRlVG9Kc29uIiwicGF0Y2hlZERhdGVUb0pzb24iLCJ3YWxrRGlyIiwiZ2l0IiwiQ29udmVydCIsIkFjdGV1cnNFdE9yZ2FuZXNDb252ZXJ0IiwiQWdlbmRhc0NvbnZlcnQiLCJBbWVuZGVtZW50c0NvbnZlcnQiLCJEb3NzaWVyc0xlZ2lzbGF0aWZzQ29udmVydCIsIlNjcnV0aW5zQ29udmVydCIsIlF1ZXN0aW9uc0NvbnZlcnQiLCJDb21wdGVzUmVuZHVzQ29udmVydCIsImNsb25lT3B0aW9uIiwiY29tbWl0T3B0aW9uIiwicmVtb3RlT3B0aW9uIiwibGVnaXNsYXR1cmVPcHRpb24iLCJjYXRlZ29yaWVzT3B0aW9uIiwiZGF0YURpckRlZmF1bHRPcHRpb24iLCJzaWxlbnRPcHRpb24iLCJ2ZXJib3NlT3B0aW9uIiwicHVsbE9wdGlvbiIsImZldGNoRG9jdW1lbnRzT3B0aW9uIiwicGFyc2VEb2N1bWVudHNPcHRpb24iLCJkb2N1bWVudEZvcm1hdE9wdGlvbiIsInBhcnNlQXJncyIsImFyZ3YiLCJvcHRpb25zRGVmaW5pdGlvbnMiLCJhbGlhcyIsImhlbHAiLCJuYW1lIiwidHlwZSIsIlN0cmluZyIsIkJvb2xlYW4iLCJvcHRpb25zIiwiY2xvbmVHaXQiLCJnaXRHcm91cFVybCIsImRhdGFzZXROYW1lIiwiZGF0YURpciIsImNsb25lIiwiY29tbWl0R2l0IiwiZGF0YXNldENsZWFuRGlyIiwiZXhpdENvZGUiLCJzdWJkaXJlY3RvcmllcyIsImNvbW1pdCIsImVycm9yQ29kZSIsImNvbW1pdEFuZFB1c2giLCJyZW1vdGUiLCJjb21taXRBbmRQdXNoVWlkIiwiY2xlYW5BbmRWYWxpZGF0ZURhdGEiLCJkYXRhIiwiY2xlYW5lciIsImZyb21Kc29uIiwidG9Kc29uIiwibm9WYWxpZGF0ZSIsImpzb25EYXRhIiwiSlNPTiIsInN0cmluZ2lmeSIsInZhbGlkYXRlZERhdGEiLCJwcm9jZXNzRmlsZXMiLCJkYXRhc2V0UmF3RGlyIiwid2Fsa0RpclBhcmFtcyIsImRhdGFDb252ZXJ0ZXIiLCJwb3N0UHJvY2Vzc29yIiwiZmlsZVBhdGhBcnJheSIsImZpbGVuYW1lIiwibGVuZ3RoIiwiZW5kc1dpdGgiLCJyYXdGaWxlUGF0aCIsImpvaW4iLCJyYXdKc29uIiwicmVhZEZpbGVTeW5jIiwiZW5jb2RpbmciLCJ2ZXJib3NlIiwiY29uc29sZSIsImxvZyIsInBhcnNlIiwidmFsaWRhdGVEYXRhIiwiY2xlYW5Kc29uIiwiY2xlYW5GaWxlUGF0aCIsImVuc3VyZURpclN5bmMiLCJkaXJuYW1lIiwid3JpdGVGaWxlU3luYyIsImNsZWFuUmVvcmdhbml6ZWREYXRhIiwiRGF0ZSIsInByb3RvdHlwZSIsInRvSlNPTiIsInRyaW0iLCJyZXBsYWNlIiwiZW5hYmxlZERhdGFzZXRzIiwiY2F0ZWdvcmllcyIsImNob3NlbkRhdGFzZXRzIiwibGVnaXNsYXR1cmUiLCJBY3RldXJzRXRPcmdhbmVzIiwiZGF0YXNldCIsImFjdGV1cnNFdE9yZ2FuZXMiLCJiYXNlbmFtZSIsInB1bGwiLCJyZXNldEFuZFB1bGwiLCJhbmFseXplQW5kUmVtb3ZlIiwidG9BY3RldXIiLCJhY3RldXJUb0pzb24iLCJ0b09yZ2FuZSIsIm9yZ2FuZVRvSnNvbiIsIkFnZW5kYXMiLCJhZ2VuZGFzIiwidG9SZXVuaW9uIiwicmV1bmlvblRvSnNvbiIsIkFtZW5kZW1lbnRzIiwiYW1lbmRlbWVudHMiLCJ0b0FtZW5kZW1lbnQiLCJhbWVuZGVtZW50VG9Kc29uIiwiRG9zc2llcnNMZWdpc2xhdGlmcyIsImRvc3NpZXJzTGVnaXNsYXRpZnMiLCJ0b0RvY3VtZW50IiwiZG9jdW1lbnRUb0pzb24iLCJ0b0Rvc3NpZXJQYXJsZW1lbnRhaXJlIiwiZG9zc2llclBhcmxlbWVudGFpcmVUb0pzb24iLCJTY3J1dGlucyIsInNjcnV0aW5zIiwidG9TY3J1dGluIiwic2NydXRpblRvSnNvbiIsIlF1ZXN0aW9ucyIsInF1ZXN0aW9ucyIsInRvUXVlc3Rpb24iLCJxdWVzdGlvblRvSnNvbiIsIkNvbXB0ZXNSZW5kdXNTZWFuY2VzIiwiY29tcHRlc1JlbmR1c1NlYW5jZXMiLCJ0b0NvbXB0ZVJlbmR1IiwiY29tcHRlUmVuZHVUb0pzb24iLCJzaWxlbnQiLCJyZWFkZGlyU3luYyIsInBhdGhuYW1lIiwicmVtb3ZlU3luYyIsInJlcG9zaXRvcnlEaXIiLCJlcnJvciIsInVpZEJyYW5jaFVwZGF0ZSIsInJ1biIsImNoaWxkUHJvY2VzcyIsIm1haW4iLCJwcm9jZXNzIiwidGhlbiIsImV4aXQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyaXB0cy9jbGVhbl9yZW9yZ2FuaXplZF9kYXRhLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjb21tYW5kTGluZUFyZ3MgZnJvbSBcImNvbW1hbmQtbGluZS1hcmdzXCJcbmltcG9ydCBmcyBmcm9tIFwiZnMtZXh0cmFcIlxuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIlxuaW1wb3J0IHtcbiAgY2xlYW5BY3RldXIsXG4gIGNsZWFuQW1lbmRlbWVudCxcbiAgY2xlYW5Eb2N1bWVudE9yRGl2aXNpb24sXG4gIGNsZWFuRG9zc2llclBhcmxlbWVudGFpcmUsXG4gIGNsZWFuT3JnYW5lLFxuICBjbGVhblJldW5pb24sXG4gIGNsZWFuU2NydXRpbixcbiAgY2xlYW5RdWVzdGlvbixcbiAgY2xlYW5Db21wdGVSZW5kdSxcbn0gZnJvbSBcIi4uL2NsZWFuZXJzXCJcbmltcG9ydCB7XG4gIGRhdGFzZXRzLFxuICBFbmFibGVkRGF0YXNldHMsXG4gIGdldEVuYWJsZWREYXRhc2V0cyxcbiAgZmlsdGVyQnlMZWdpc2xhdHVyZSxcbn0gZnJvbSBcIi4uL2RhdGFzZXRzXCJcbmltcG9ydCB7IGRvd25sb2FkQW5kUGFyc2UgfSBmcm9tIFwiLi9yZXRyaWV2ZV9kb2N1bWVudHNcIlxuaW1wb3J0IHsgZXhpc3RpbmdEYXRlVG9Kc29uLCBwYXRjaGVkRGF0ZVRvSnNvbiB9IGZyb20gXCIuLi9kYXRlc1wiXG5pbXBvcnQgeyB3YWxrRGlyIH0gZnJvbSBcIi4uL2ZpbGVfc3lzdGVtc1wiXG5pbXBvcnQgKiBhcyBnaXQgZnJvbSBcIi4uL2dpdFwiXG5pbXBvcnQge1xuICBBY3RldXIsXG4gIENvbnZlcnQgYXMgQWN0ZXVyc0V0T3JnYW5lc0NvbnZlcnQsXG4gIE9yZ2FuZSxcbn0gZnJvbSBcIi4uL3R5cGVzL2FjdGV1cnNfZXRfb3JnYW5lc1wiXG5pbXBvcnQgeyBDb252ZXJ0IGFzIEFnZW5kYXNDb252ZXJ0LCBSZXVuaW9uIH0gZnJvbSBcIi4uL3R5cGVzL2FnZW5kYXNcIlxuaW1wb3J0IHsgQW1lbmRlbWVudCwgQ29udmVydCBhcyBBbWVuZGVtZW50c0NvbnZlcnQgfSBmcm9tIFwiLi4vdHlwZXMvYW1lbmRlbWVudHNcIlxuaW1wb3J0IHtcbiAgQ29udmVydCBhcyBEb3NzaWVyc0xlZ2lzbGF0aWZzQ29udmVydCxcbiAgRG9jdW1lbnQsXG4gIERvc3NpZXJQYXJsZW1lbnRhaXJlLFxufSBmcm9tIFwiLi4vdHlwZXMvZG9zc2llcnNfbGVnaXNsYXRpZnNcIlxuaW1wb3J0IHsgQ29udmVydCBhcyBTY3J1dGluc0NvbnZlcnQsIFNjcnV0aW4gfSBmcm9tIFwiLi4vdHlwZXMvc2NydXRpbnNcIlxuaW1wb3J0IHsgQ29udmVydCBhcyBRdWVzdGlvbnNDb252ZXJ0LCBRdWVzdGlvbiB9IGZyb20gXCIuLi90eXBlcy9xdWVzdGlvbnNcIlxuaW1wb3J0IHsgQ29udmVydCBhcyBDb21wdGVzUmVuZHVzQ29udmVydCwgQ29tcHRlUmVuZHUgfSBmcm9tIFwiLi4vdHlwZXMvZGViYXRzXCJcbmltcG9ydCB7XG4gIGNsb25lT3B0aW9uLFxuICBjb21taXRPcHRpb24sXG4gIHJlbW90ZU9wdGlvbixcbiAgbGVnaXNsYXR1cmVPcHRpb24sXG4gIGNhdGVnb3JpZXNPcHRpb24sXG4gIGRhdGFEaXJEZWZhdWx0T3B0aW9uLFxuICBzaWxlbnRPcHRpb24sXG4gIHZlcmJvc2VPcHRpb24sXG4gIHB1bGxPcHRpb24sXG4gIGZldGNoRG9jdW1lbnRzT3B0aW9uLFxuICBwYXJzZURvY3VtZW50c09wdGlvbixcbiAgZG9jdW1lbnRGb3JtYXRPcHRpb24sXG59IGZyb20gXCIuL3NoYXJlZC9jbGlfaGVscGVyc1wiXG5cbmZ1bmN0aW9uIHBhcnNlQXJncyhhcmd2OiBzdHJpbmdbXSk6IGFueSB7XG4gIGNvbnN0IG9wdGlvbnNEZWZpbml0aW9ucyA9IFtcbiAgICBjbG9uZU9wdGlvbixcbiAgICBjb21taXRPcHRpb24sXG4gICAgcmVtb3RlT3B0aW9uLFxuICAgIGxlZ2lzbGF0dXJlT3B0aW9uLFxuICAgIGNhdGVnb3JpZXNPcHRpb24sXG4gICAgc2lsZW50T3B0aW9uLFxuICAgIHZlcmJvc2VPcHRpb24sXG4gICAgZGF0YURpckRlZmF1bHRPcHRpb24sXG4gICAgcHVsbE9wdGlvbixcbiAgICBmZXRjaERvY3VtZW50c09wdGlvbixcbiAgICBwYXJzZURvY3VtZW50c09wdGlvbixcbiAgICBkb2N1bWVudEZvcm1hdE9wdGlvbixcbiAgICB7XG4gICAgICBhbGlhczogXCJkXCIsXG4gICAgICBoZWxwOiBcInNpbmdsZSBkYXRhc2V0IHRvIHJlb3JnYW5pemVcIixcbiAgICAgIG5hbWU6IFwiZGF0YXNldFwiLFxuICAgICAgdHlwZTogU3RyaW5nLFxuICAgIH0sXG4gICAge1xuICAgICAgaGVscDogXCJkbyBub3QgcmVzZXQgLS1oYXJkIGFmdGVyIGNvbW1pdCB0byBzYXZlIEkvTyBpZiB0aGUgd29ya2luZyB0cmVlIGlzIHRvIGJlIGRpc2NhcmRlZFwiLFxuICAgICAgbmFtZTogXCJuby1yZXNldC1hZnRlci1jb21taXRcIixcbiAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgfSxcbiAgICB7XG4gICAgICBhbGlhczogXCJWXCIsXG4gICAgICBoZWxwOiBcImRvbid0IHZhbGlkYXRlIGRhdGFcIixcbiAgICAgIG5hbWU6IFwibm8tdmFsaWRhdGVcIixcbiAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgfSxcbiAgXVxuICBjb25zdCBvcHRpb25zID0gY29tbWFuZExpbmVBcmdzKG9wdGlvbnNEZWZpbml0aW9ucywge1xuICAgIGFyZ3Y6IGFyZ3YsXG4gIH0pXG4gIHJldHVybiBvcHRpb25zXG59XG5cbmZ1bmN0aW9uIGNsb25lR2l0KFxuICBnaXRHcm91cFVybDogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICBkYXRhc2V0TmFtZTogc3RyaW5nLFxuICBkYXRhRGlyOiBzdHJpbmcsXG4pOiB2b2lkIHtcbiAgZ2l0LmNsb25lKGdpdEdyb3VwVXJsLCBgJHtkYXRhc2V0TmFtZX1fbmV0dG95ZWAsIGRhdGFEaXIpXG59XG5cbmZ1bmN0aW9uIGNvbW1pdEdpdChcbiAgZGF0YXNldENsZWFuRGlyOiBzdHJpbmcsXG4gIG9wdGlvbnM6IGFueSxcbiAgZXhpdENvZGU6IG51bWJlcixcbiAgc3ViZGlyZWN0b3JpZXM6IGFueSxcbik6IG51bWJlciB7XG4gIGlmIChvcHRpb25zLmNvbW1pdCkge1xuICAgIGNvbnN0IGVycm9yQ29kZSA9IGdpdC5jb21taXRBbmRQdXNoKFxuICAgICAgZGF0YXNldENsZWFuRGlyLFxuICAgICAgXCJOb3V2ZWxsZSBtb2lzc29uXCIsXG4gICAgICBvcHRpb25zLnJlbW90ZSxcbiAgICApXG4gICAgaWYgKFxuICAgICAgKGV4aXRDb2RlID09PSAxMCAmJiBlcnJvckNvZGUgIT09IDEwKSB8fFxuICAgICAgKGV4aXRDb2RlID09PSAwICYmIGVycm9yQ29kZSAhPT0gMCAmJiBlcnJvckNvZGUgIT09IDEwKVxuICAgICkge1xuICAgICAgZXhpdENvZGUgPSBlcnJvckNvZGVcbiAgICB9XG4gIH1cbiAgaWYgKFxuICAgIGNvbW1pdEFuZFB1c2hVaWQoZGF0YXNldENsZWFuRGlyLCBvcHRpb25zLCBzdWJkaXJlY3RvcmllcykgJiZcbiAgICAoZXhpdENvZGUgPT09IDAgfHwgZXhpdENvZGUgPT09IDEwKVxuICApIHtcbiAgICBleGl0Q29kZSA9IDFcbiAgfVxuICByZXR1cm4gZXhpdENvZGVcbn1cblxuZnVuY3Rpb24gY2xlYW5BbmRWYWxpZGF0ZURhdGE8VD4oXG4gIGRhdGE6IGFueSxcbiAgY2xlYW5lcjogKGRhdGE6IFQpID0+IHZvaWQsXG4gIGZyb21Kc29uOiAoanNvbjogc3RyaW5nKSA9PiBULFxuICB0b0pzb246IChkYXRhOiBUKSA9PiBzdHJpbmcsXG4gIG5vVmFsaWRhdGU6IEJvb2xlYW4sXG4pOiBzdHJpbmcge1xuICBjbGVhbmVyKGRhdGEpXG4gIGNvbnN0IGpzb25EYXRhID0gSlNPTi5zdHJpbmdpZnkoZGF0YSwgbnVsbCwgMilcbiAgaWYgKCFub1ZhbGlkYXRlKSB7XG4gICAgcmV0dXJuIGpzb25EYXRhXG4gIH0gZWxzZSB7XG4gICAgY29uc3QgdmFsaWRhdGVkRGF0YTogVCA9IGZyb21Kc29uKGpzb25EYXRhKVxuICAgIHJldHVybiB0b0pzb24odmFsaWRhdGVkRGF0YSlcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBwcm9jZXNzRmlsZXM8VD4oXG4gIGRhdGFzZXRSYXdEaXI6IHN0cmluZyxcbiAgZGF0YXNldENsZWFuRGlyOiBzdHJpbmcsXG4gIHdhbGtEaXJQYXJhbXM6IGFueVtdLFxuICBjbGVhbmVyOiBhbnksXG4gIGRhdGFDb252ZXJ0ZXI6IHsgZnJvbUpzb246IGFueTsgdG9Kc29uOiBhbnkgfSxcbiAgb3B0aW9uczogYW55LFxuICBwb3N0UHJvY2Vzc29yPzogYW55LFxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGZvciAoY29uc3QgZmlsZVBhdGhBcnJheSBvZiB3YWxrRGlyKGRhdGFzZXRSYXdEaXIsIHdhbGtEaXJQYXJhbXMpKSB7XG4gICAgY29uc3QgZmlsZW5hbWUgPSBmaWxlUGF0aEFycmF5W2ZpbGVQYXRoQXJyYXkubGVuZ3RoIC0gMV1cbiAgICBpZiAoIWZpbGVuYW1lLmVuZHNXaXRoKFwiLmpzb25cIikpIGNvbnRpbnVlXG4gICAgY29uc3QgcmF3RmlsZVBhdGggPSBwYXRoLmpvaW4oZGF0YXNldFJhd0RpciwgLi4uZmlsZVBhdGhBcnJheSlcbiAgICBjb25zdCByYXdKc29uID0gZnMucmVhZEZpbGVTeW5jKHJhd0ZpbGVQYXRoLCB7IGVuY29kaW5nOiBcInV0ZjhcIiB9KVxuICAgIGlmIChvcHRpb25zLnZlcmJvc2UpIGNvbnNvbGUubG9nKGBDbGVhbmluZyBmaWxlOiAke3Jhd0ZpbGVQYXRofS4uLmApXG4gICAgY29uc3QgZGF0YSA9IEpTT04ucGFyc2UocmF3SnNvbilcbiAgICBjb25zdCB2YWxpZGF0ZURhdGEgPSAhb3B0aW9uc1tcIm5vLXZhbGlkYXRlXCJdXG4gICAgY29uc3QgY2xlYW5Kc29uID0gY2xlYW5BbmRWYWxpZGF0ZURhdGE8VD4oXG4gICAgICBkYXRhLFxuICAgICAgY2xlYW5lcixcbiAgICAgIGRhdGFDb252ZXJ0ZXIuZnJvbUpzb24sXG4gICAgICBkYXRhQ29udmVydGVyLnRvSnNvbixcbiAgICAgIHZhbGlkYXRlRGF0YSxcbiAgICApXG5cbiAgICBjb25zdCBjbGVhbkZpbGVQYXRoID0gcGF0aC5qb2luKGRhdGFzZXRDbGVhbkRpciwgLi4uZmlsZVBhdGhBcnJheSlcbiAgICBmcy5lbnN1cmVEaXJTeW5jKHBhdGguZGlybmFtZShjbGVhbkZpbGVQYXRoKSlcbiAgICBmcy53cml0ZUZpbGVTeW5jKGNsZWFuRmlsZVBhdGgsIGNsZWFuSnNvbiwgeyBlbmNvZGluZzogXCJ1dGY4XCIgfSlcblxuICAgIGlmIChwb3N0UHJvY2Vzc29yKSB7XG4gICAgICBhd2FpdCBwb3N0UHJvY2Vzc29yKGRhdGEsIGRhdGFzZXRDbGVhbkRpciwgb3B0aW9ucylcbiAgICB9XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gY2xlYW5SZW9yZ2FuaXplZERhdGEob3B0aW9uczogYW55KTogUHJvbWlzZTxudW1iZXI+IHtcbiAgY29uc3QgZGF0YURpcjogc3RyaW5nID0gb3B0aW9ucy5kYXRhRGlyXG4gIERhdGUucHJvdG90eXBlLnRvSlNPTiA9IHBhdGNoZWREYXRlVG9Kc29uXG4gIGxldCBleGl0Q29kZSA9IG9wdGlvbnMuY29tbWl0ID8gMTAgOiAwXG4gIGNvbnN0IGdpdEdyb3VwVXJsID0gb3B0aW9ucy5jbG9uZT8udHJpbSgpLnJlcGxhY2UoL1xcLyskLywgXCJcIilcbiAgY29uc3QgZW5hYmxlZERhdGFzZXRzID0gZ2V0RW5hYmxlZERhdGFzZXRzKG9wdGlvbnMuY2F0ZWdvcmllcylcbiAgbGV0IGNob3NlbkRhdGFzZXRzID0gZmlsdGVyQnlMZWdpc2xhdHVyZShkYXRhc2V0cywgb3B0aW9ucy5sZWdpc2xhdHVyZSlcblxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkFjdGV1cnNFdE9yZ2FuZXMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgY2hvc2VuRGF0YXNldHMuYWN0ZXVyc0V0T3JnYW5lcykge1xuICAgICAgY29uc3QgZGF0YXNldE5hbWUgPSBwYXRoLmJhc2VuYW1lKGRhdGFzZXQuZmlsZW5hbWUsIFwiLmpzb25cIilcbiAgICAgIGlmIChvcHRpb25zLmRhdGFzZXQgJiYgZGF0YXNldE5hbWUgIT09IG9wdGlvbnMuZGF0YXNldCkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgY2xvbmVHaXQoZ2l0R3JvdXBVcmwsIGRhdGFzZXROYW1lLCBkYXRhRGlyKVxuXG4gICAgICBjb25zdCBkYXRhc2V0UmF3RGlyOiBzdHJpbmcgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldE5hbWUpXG4gICAgICBjb25zdCBkYXRhc2V0Q2xlYW5EaXI6IHN0cmluZyA9IGRhdGFzZXRSYXdEaXIgKyBcIl9uZXR0b3llXCJcbiAgICAgIGlmIChvcHRpb25zLnB1bGwpIHtcbiAgICAgICAgZ2l0LnJlc2V0QW5kUHVsbChkYXRhc2V0Q2xlYW5EaXIpXG4gICAgICB9XG5cbiAgICAgIGFuYWx5emVBbmRSZW1vdmUoZGF0YXNldE5hbWUsIG9wdGlvbnMpXG4gICAgICBhd2FpdCBwcm9jZXNzRmlsZXM8QWN0ZXVyPihcbiAgICAgICAgZGF0YXNldFJhd0RpcixcbiAgICAgICAgZGF0YXNldENsZWFuRGlyLFxuICAgICAgICBbXCJhY3RldXJzXCJdLFxuICAgICAgICBjbGVhbkFjdGV1cixcbiAgICAgICAge1xuICAgICAgICAgIGZyb21Kc29uOiBBY3RldXJzRXRPcmdhbmVzQ29udmVydC50b0FjdGV1cixcbiAgICAgICAgICB0b0pzb246IEFjdGV1cnNFdE9yZ2FuZXNDb252ZXJ0LmFjdGV1clRvSnNvbixcbiAgICAgICAgfSxcbiAgICAgICAgb3B0aW9ucyxcbiAgICAgIClcbiAgICAgIGF3YWl0IHByb2Nlc3NGaWxlczxPcmdhbmU+KFxuICAgICAgICBkYXRhc2V0UmF3RGlyLFxuICAgICAgICBkYXRhc2V0Q2xlYW5EaXIsXG4gICAgICAgIFtcIm9yZ2FuZXNcIl0sXG4gICAgICAgIGNsZWFuT3JnYW5lLFxuICAgICAgICB7XG4gICAgICAgICAgZnJvbUpzb246IEFjdGV1cnNFdE9yZ2FuZXNDb252ZXJ0LnRvT3JnYW5lLFxuICAgICAgICAgIHRvSnNvbjogQWN0ZXVyc0V0T3JnYW5lc0NvbnZlcnQub3JnYW5lVG9Kc29uLFxuICAgICAgICB9LFxuICAgICAgICBvcHRpb25zLFxuICAgICAgKVxuXG4gICAgICBleGl0Q29kZSA9IGNvbW1pdEdpdChkYXRhc2V0Q2xlYW5EaXIsIG9wdGlvbnMsIGV4aXRDb2RlLCBbXG4gICAgICAgIFwiYWN0ZXVyc1wiLFxuICAgICAgICBcIm9yZ2FuZXNcIixcbiAgICAgIF0pXG4gICAgfVxuICB9XG5cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5BZ2VuZGFzKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGNob3NlbkRhdGFzZXRzLmFnZW5kYXMpIHtcbiAgICAgIGNvbnN0IGRhdGFzZXROYW1lID0gcGF0aC5iYXNlbmFtZShkYXRhc2V0LmZpbGVuYW1lLCBcIi5qc29uXCIpXG4gICAgICBpZiAob3B0aW9ucy5kYXRhc2V0ICYmIGRhdGFzZXROYW1lICE9PSBvcHRpb25zLmRhdGFzZXQpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cblxuICAgICAgY2xvbmVHaXQoZ2l0R3JvdXBVcmwsIGRhdGFzZXROYW1lLCBkYXRhRGlyKVxuICAgICAgYW5hbHl6ZUFuZFJlbW92ZShkYXRhc2V0TmFtZSwgb3B0aW9ucylcbiAgICAgIGNvbnN0IGRhdGFzZXRSYXdEaXI6IHN0cmluZyA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0TmFtZSlcbiAgICAgIGNvbnN0IGRhdGFzZXRDbGVhbkRpcjogc3RyaW5nID0gZGF0YXNldFJhd0RpciArIFwiX25ldHRveWVcIlxuXG4gICAgICBhd2FpdCBwcm9jZXNzRmlsZXM8UmV1bmlvbj4oXG4gICAgICAgIGRhdGFzZXRSYXdEaXIsXG4gICAgICAgIGRhdGFzZXRDbGVhbkRpcixcbiAgICAgICAgW10sXG4gICAgICAgIGNsZWFuUmV1bmlvbixcbiAgICAgICAge1xuICAgICAgICAgIGZyb21Kc29uOiBBZ2VuZGFzQ29udmVydC50b1JldW5pb24sXG4gICAgICAgICAgdG9Kc29uOiBBZ2VuZGFzQ29udmVydC5yZXVuaW9uVG9Kc29uLFxuICAgICAgICB9LFxuICAgICAgICBvcHRpb25zLFxuICAgICAgKVxuXG4gICAgICBleGl0Q29kZSA9IGNvbW1pdEdpdChkYXRhc2V0Q2xlYW5EaXIsIG9wdGlvbnMsIGV4aXRDb2RlLCBbXCIuXCJdKVxuICAgIH1cbiAgfVxuXG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuQW1lbmRlbWVudHMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgY2hvc2VuRGF0YXNldHMuYW1lbmRlbWVudHMpIHtcbiAgICAgIGNvbnN0IGRhdGFzZXROYW1lID0gcGF0aC5iYXNlbmFtZShkYXRhc2V0LmZpbGVuYW1lLCBcIi5qc29uXCIpXG4gICAgICBpZiAob3B0aW9ucy5kYXRhc2V0ICYmIGRhdGFzZXROYW1lICE9PSBvcHRpb25zLmRhdGFzZXQpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cblxuICAgICAgY2xvbmVHaXQoZ2l0R3JvdXBVcmwsIGRhdGFzZXROYW1lLCBkYXRhRGlyKVxuICAgICAgYW5hbHl6ZUFuZFJlbW92ZShkYXRhc2V0TmFtZSwgb3B0aW9ucylcbiAgICAgIGNvbnN0IGRhdGFzZXRSYXdEaXI6IHN0cmluZyA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0TmFtZSlcbiAgICAgIGNvbnN0IGRhdGFzZXRDbGVhbkRpcjogc3RyaW5nID0gZGF0YXNldFJhd0RpciArIFwiX25ldHRveWVcIlxuXG4gICAgICBhd2FpdCBwcm9jZXNzRmlsZXM8QW1lbmRlbWVudD4oXG4gICAgICAgIGRhdGFzZXRSYXdEaXIsXG4gICAgICAgIGRhdGFzZXRDbGVhbkRpcixcbiAgICAgICAgW10sXG4gICAgICAgIGNsZWFuQW1lbmRlbWVudCxcbiAgICAgICAge1xuICAgICAgICAgIGZyb21Kc29uOiBBbWVuZGVtZW50c0NvbnZlcnQudG9BbWVuZGVtZW50LFxuICAgICAgICAgIHRvSnNvbjogQW1lbmRlbWVudHNDb252ZXJ0LmFtZW5kZW1lbnRUb0pzb24sXG4gICAgICAgIH0sXG4gICAgICAgIG9wdGlvbnMsXG4gICAgICApXG5cbiAgICAgIGV4aXRDb2RlID0gY29tbWl0R2l0KGRhdGFzZXRDbGVhbkRpciwgb3B0aW9ucywgZXhpdENvZGUsIFtcIi5cIl0pXG4gICAgfVxuICB9XG5cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5Eb3NzaWVyc0xlZ2lzbGF0aWZzKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGNob3NlbkRhdGFzZXRzLmRvc3NpZXJzTGVnaXNsYXRpZnMpIHtcbiAgICAgIGNvbnN0IGRhdGFzZXROYW1lID0gcGF0aC5iYXNlbmFtZShkYXRhc2V0LmZpbGVuYW1lLCBcIi5qc29uXCIpXG4gICAgICBpZiAob3B0aW9ucy5kYXRhc2V0ICYmIGRhdGFzZXROYW1lICE9PSBvcHRpb25zLmRhdGFzZXQpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cblxuICAgICAgY2xvbmVHaXQoZ2l0R3JvdXBVcmwsIGRhdGFzZXROYW1lLCBkYXRhRGlyKVxuICAgICAgYW5hbHl6ZUFuZFJlbW92ZShkYXRhc2V0TmFtZSwgb3B0aW9ucylcbiAgICAgIGNvbnN0IGRhdGFzZXRSYXdEaXI6IHN0cmluZyA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0TmFtZSlcbiAgICAgIGNvbnN0IGRhdGFzZXRDbGVhbkRpcjogc3RyaW5nID0gZGF0YXNldFJhd0RpciArIFwiX25ldHRveWVcIlxuXG4gICAgICBhd2FpdCBwcm9jZXNzRmlsZXM8RG9jdW1lbnQ+KFxuICAgICAgICBkYXRhc2V0UmF3RGlyLFxuICAgICAgICBkYXRhc2V0Q2xlYW5EaXIsXG4gICAgICAgIFtcImRvY3VtZW50c1wiXSxcbiAgICAgICAgY2xlYW5Eb2N1bWVudE9yRGl2aXNpb24sXG4gICAgICAgIHtcbiAgICAgICAgICBmcm9tSnNvbjogRG9zc2llcnNMZWdpc2xhdGlmc0NvbnZlcnQudG9Eb2N1bWVudCxcbiAgICAgICAgICB0b0pzb246IERvc3NpZXJzTGVnaXNsYXRpZnNDb252ZXJ0LmRvY3VtZW50VG9Kc29uLFxuICAgICAgICB9LFxuICAgICAgICBvcHRpb25zLFxuICAgICAgICBkb3dubG9hZEFuZFBhcnNlLFxuICAgICAgKVxuICAgICAgYXdhaXQgcHJvY2Vzc0ZpbGVzPERvc3NpZXJQYXJsZW1lbnRhaXJlPihcbiAgICAgICAgZGF0YXNldFJhd0RpcixcbiAgICAgICAgZGF0YXNldENsZWFuRGlyLFxuICAgICAgICBbXCJkb3NzaWVyc1wiXSxcbiAgICAgICAgY2xlYW5Eb3NzaWVyUGFybGVtZW50YWlyZSxcbiAgICAgICAge1xuICAgICAgICAgIGZyb21Kc29uOiBEb3NzaWVyc0xlZ2lzbGF0aWZzQ29udmVydC50b0Rvc3NpZXJQYXJsZW1lbnRhaXJlLFxuICAgICAgICAgIHRvSnNvbjogRG9zc2llcnNMZWdpc2xhdGlmc0NvbnZlcnQuZG9zc2llclBhcmxlbWVudGFpcmVUb0pzb24sXG4gICAgICAgIH0sXG4gICAgICAgIG9wdGlvbnMsXG4gICAgICApXG5cbiAgICAgIGV4aXRDb2RlID0gY29tbWl0R2l0KGRhdGFzZXRDbGVhbkRpciwgb3B0aW9ucywgZXhpdENvZGUsIFtcbiAgICAgICAgXCJkb2N1bWVudHNcIixcbiAgICAgICAgXCJkb3NzaWVyc1wiLFxuICAgICAgXSlcbiAgICB9XG4gIH1cblxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLlNjcnV0aW5zKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGNob3NlbkRhdGFzZXRzLnNjcnV0aW5zKSB7XG4gICAgICBjb25zdCBkYXRhc2V0TmFtZSA9IHBhdGguYmFzZW5hbWUoZGF0YXNldC5maWxlbmFtZSwgXCIuanNvblwiKVxuICAgICAgaWYgKG9wdGlvbnMuZGF0YXNldCAmJiBkYXRhc2V0TmFtZSAhPT0gb3B0aW9ucy5kYXRhc2V0KSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG5cbiAgICAgIGNsb25lR2l0KGdpdEdyb3VwVXJsLCBkYXRhc2V0TmFtZSwgZGF0YURpcilcbiAgICAgIGFuYWx5emVBbmRSZW1vdmUoZGF0YXNldE5hbWUsIG9wdGlvbnMpXG4gICAgICBjb25zdCBkYXRhc2V0UmF3RGlyOiBzdHJpbmcgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldE5hbWUpXG4gICAgICBjb25zdCBkYXRhc2V0Q2xlYW5EaXI6IHN0cmluZyA9IGRhdGFzZXRSYXdEaXIgKyBcIl9uZXR0b3llXCJcblxuICAgICAgYXdhaXQgcHJvY2Vzc0ZpbGVzPFNjcnV0aW4+KFxuICAgICAgICBkYXRhc2V0UmF3RGlyLFxuICAgICAgICBkYXRhc2V0Q2xlYW5EaXIsXG4gICAgICAgIFtdLFxuICAgICAgICBjbGVhblNjcnV0aW4sXG4gICAgICAgIHtcbiAgICAgICAgICBmcm9tSnNvbjogU2NydXRpbnNDb252ZXJ0LnRvU2NydXRpbixcbiAgICAgICAgICB0b0pzb246IFNjcnV0aW5zQ29udmVydC5zY3J1dGluVG9Kc29uLFxuICAgICAgICB9LFxuICAgICAgICBvcHRpb25zLFxuICAgICAgKVxuXG4gICAgICBleGl0Q29kZSA9IGNvbW1pdEdpdChkYXRhc2V0Q2xlYW5EaXIsIG9wdGlvbnMsIGV4aXRDb2RlLCBbXCIuXCJdKVxuICAgIH1cbiAgfVxuXG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuUXVlc3Rpb25zKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLnF1ZXN0aW9ucykge1xuICAgICAgY29uc3QgZGF0YXNldE5hbWUgPSBwYXRoLmJhc2VuYW1lKGRhdGFzZXQuZmlsZW5hbWUsIFwiLmpzb25cIilcbiAgICAgIGlmIChvcHRpb25zLmRhdGFzZXQgJiYgZGF0YXNldE5hbWUgIT09IG9wdGlvbnMuZGF0YXNldCkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuXG4gICAgICBjbG9uZUdpdChnaXRHcm91cFVybCwgZGF0YXNldE5hbWUsIGRhdGFEaXIpXG4gICAgICBhbmFseXplQW5kUmVtb3ZlKGRhdGFzZXROYW1lLCBvcHRpb25zKVxuICAgICAgY29uc3QgZGF0YXNldFJhd0Rpcjogc3RyaW5nID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXROYW1lKVxuICAgICAgY29uc3QgZGF0YXNldENsZWFuRGlyOiBzdHJpbmcgPSBkYXRhc2V0UmF3RGlyICsgXCJfbmV0dG95ZVwiXG5cbiAgICAgIGF3YWl0IHByb2Nlc3NGaWxlczxRdWVzdGlvbj4oXG4gICAgICAgIGRhdGFzZXRSYXdEaXIsXG4gICAgICAgIGRhdGFzZXRDbGVhbkRpcixcbiAgICAgICAgW10sXG4gICAgICAgIGNsZWFuUXVlc3Rpb24sXG4gICAgICAgIHtcbiAgICAgICAgICBmcm9tSnNvbjogUXVlc3Rpb25zQ29udmVydC50b1F1ZXN0aW9uLFxuICAgICAgICAgIHRvSnNvbjogUXVlc3Rpb25zQ29udmVydC5xdWVzdGlvblRvSnNvbixcbiAgICAgICAgfSxcbiAgICAgICAgb3B0aW9ucyxcbiAgICAgIClcblxuICAgICAgZXhpdENvZGUgPSBjb21taXRHaXQoZGF0YXNldENsZWFuRGlyLCBvcHRpb25zLCBleGl0Q29kZSwgW1wiLlwiXSlcbiAgICB9XG4gIH1cblxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkNvbXB0ZXNSZW5kdXNTZWFuY2VzKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLmNvbXB0ZXNSZW5kdXNTZWFuY2VzKSB7XG4gICAgICBjb25zdCBkYXRhc2V0TmFtZSA9IHBhdGguYmFzZW5hbWUoZGF0YXNldC5maWxlbmFtZSwgXCIueG1sXCIpXG4gICAgICBpZiAob3B0aW9ucy5kYXRhc2V0ICYmIGRhdGFzZXROYW1lICE9PSBvcHRpb25zLmRhdGFzZXQpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cblxuICAgICAgY2xvbmVHaXQoZ2l0R3JvdXBVcmwsIGRhdGFzZXROYW1lLCBkYXRhRGlyKVxuICAgICAgYW5hbHl6ZUFuZFJlbW92ZShkYXRhc2V0TmFtZSwgb3B0aW9ucylcbiAgICAgIGNvbnN0IGRhdGFzZXRSYXdEaXI6IHN0cmluZyA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0TmFtZSlcbiAgICAgIGNvbnN0IGRhdGFzZXRDbGVhbkRpcjogc3RyaW5nID0gZGF0YXNldFJhd0RpciArIFwiX25ldHRveWVcIlxuXG4gICAgICBhd2FpdCBwcm9jZXNzRmlsZXM8Q29tcHRlUmVuZHU+KFxuICAgICAgICBkYXRhc2V0UmF3RGlyLFxuICAgICAgICBkYXRhc2V0Q2xlYW5EaXIsXG4gICAgICAgIFtdLFxuICAgICAgICBjbGVhbkNvbXB0ZVJlbmR1LFxuICAgICAgICB7XG4gICAgICAgICAgZnJvbUpzb246IENvbXB0ZXNSZW5kdXNDb252ZXJ0LnRvQ29tcHRlUmVuZHUsXG4gICAgICAgICAgdG9Kc29uOiBDb21wdGVzUmVuZHVzQ29udmVydC5jb21wdGVSZW5kdVRvSnNvbixcbiAgICAgICAgfSxcbiAgICAgICAgb3B0aW9ucyxcbiAgICAgIClcblxuICAgICAgZXhpdENvZGUgPSBjb21taXRHaXQoZGF0YXNldENsZWFuRGlyLCBvcHRpb25zLCBleGl0Q29kZSwgW1wiLlwiXSlcbiAgICB9XG4gIH1cblxuICAvLyBSZXN0b3JlIHN0YW5kYXJkIGNvbnZlcnNpb24gb2YgZGF0ZXMgdG8gSlNPTi5cbiAgRGF0ZS5wcm90b3R5cGUudG9KU09OID0gZXhpc3RpbmdEYXRlVG9Kc29uXG5cbiAgcmV0dXJuIGV4aXRDb2RlXG59XG5cbmZ1bmN0aW9uIGFuYWx5emVBbmRSZW1vdmUoZGF0YXNldE5hbWU6IHN0cmluZywgb3B0aW9uczogYW55KTogYW55IHtcbiAgY29uc3QgZGF0YURpciA9IG9wdGlvbnMuZGF0YURpclxuICBjb25zdCBkYXRhc2V0UmF3RGlyOiBzdHJpbmcgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldE5hbWUpXG4gIGNvbnN0IGRhdGFzZXRDbGVhbkRpcjogc3RyaW5nID0gZGF0YXNldFJhd0RpciArIFwiX25ldHRveWVcIlxuICBpZiAoIW9wdGlvbnMuc2lsZW50KSB7XG4gICAgY29uc29sZS5sb2coYENsZWFuaW5nIGRpcmVjdG9yeTogJHtkYXRhc2V0Q2xlYW5EaXJ94oCmYClcbiAgfVxuICBmcy5lbnN1cmVEaXJTeW5jKGRhdGFzZXRDbGVhbkRpcilcbiAgZm9yIChjb25zdCBmaWxlbmFtZSBvZiBmcy5yZWFkZGlyU3luYyhkYXRhc2V0Q2xlYW5EaXIpKSB7XG4gICAgaWYgKGZpbGVuYW1lWzBdID09PSBcIi5cIikge1xuICAgICAgY29udGludWVcbiAgICB9XG4gICAgY29uc3QgcGF0aG5hbWUgPSBwYXRoLmpvaW4oZGF0YXNldENsZWFuRGlyLCBmaWxlbmFtZSlcbiAgICBmcy5yZW1vdmVTeW5jKHBhdGhuYW1lKVxuICB9XG59XG5cbmZ1bmN0aW9uIGNvbW1pdEFuZFB1c2hVaWQoXG4gIHJlcG9zaXRvcnlEaXI6IHN0cmluZyxcbiAgb3B0aW9uczogYW55LFxuICBzdWJkaXJlY3RvcmllczogYW55LFxuKTogYm9vbGVhbiB7XG4gIGxldCBlcnJvciA9IGZhbHNlXG4gIGlmIChvcHRpb25zLmNvbW1pdCkge1xuICAgIGdpdC51aWRCcmFuY2hVcGRhdGUoXG4gICAgICByZXBvc2l0b3J5RGlyLFxuICAgICAgc3ViZGlyZWN0b3JpZXMsXG4gICAgICBvcHRpb25zW1wibm8tcmVzZXQtYWZ0ZXItY29tbWl0XCJdLFxuICAgIClcbiAgICBmb3IgKGNvbnN0IHJlbW90ZSBvZiBvcHRpb25zLnJlbW90ZSB8fCBbXSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgZ2l0LnJ1bihyZXBvc2l0b3J5RGlyLCBgcHVzaCAtLXF1aWV0ICR7cmVtb3RlfSB1aWQ6dWlkYClcbiAgICAgIH0gY2F0Y2ggKGNoaWxkUHJvY2Vzcykge1xuICAgICAgICBlcnJvciA9IHRydWVcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIGVycm9yXG59XG5cbmZ1bmN0aW9uIG1haW4oYXJndjogYW55KTogUHJvbWlzZTxudW1iZXI+IHtcbiAgY29uc3Qgb3B0aW9ucyA9IHBhcnNlQXJncyhhcmd2KVxuICByZXR1cm4gY2xlYW5SZW9yZ2FuaXplZERhdGEob3B0aW9ucylcbn1cblxuLyogaXN0YW5idWwgaWdub3JlIGlmICovXG5pZiAocHJvY2Vzcy5hcmd2WzFdLmVuZHNXaXRoKFwiY2xlYW5fcmVvcmdhbml6ZWRfZGF0YS50c1wiKSkge1xuICBtYWluKHByb2Nlc3MuYXJndikudGhlbihwcm9jZXNzLmV4aXQpXG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLGVBQWUs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
273
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb21tYW5kTGluZUFyZ3MiLCJmcyIsInBhdGgiLCJjbGVhbkFjdGV1ciIsImNsZWFuQW1lbmRlbWVudCIsImNsZWFuRG9jdW1lbnRPckRpdmlzaW9uIiwiY2xlYW5Eb3NzaWVyUGFybGVtZW50YWlyZSIsImNsZWFuT3JnYW5lIiwiY2xlYW5SZXVuaW9uIiwiY2xlYW5TY3J1dGluIiwiY2xlYW5RdWVzdGlvbiIsImNsZWFuQ29tcHRlUmVuZHUiLCJkYXRhc2V0cyIsIkVuYWJsZWREYXRhc2V0cyIsImdldEVuYWJsZWREYXRhc2V0cyIsImZpbHRlckJ5TGVnaXNsYXR1cmUiLCJkb3dubG9hZEFuZFBhcnNlIiwiZXhpc3RpbmdEYXRlVG9Kc29uIiwicGF0Y2hlZERhdGVUb0pzb24iLCJ3YWxrRGlyIiwiZ2l0IiwiQ29udmVydCIsIkFjdGV1cnNFdE9yZ2FuZXNDb252ZXJ0IiwiQWdlbmRhc0NvbnZlcnQiLCJBbWVuZGVtZW50c0NvbnZlcnQiLCJEb3NzaWVyc0xlZ2lzbGF0aWZzQ29udmVydCIsIlNjcnV0aW5zQ29udmVydCIsIlF1ZXN0aW9uc0NvbnZlcnQiLCJDb21wdGVzUmVuZHVzQ29udmVydCIsImNsb25lT3B0aW9uIiwiY29tbWl0T3B0aW9uIiwicmVtb3RlT3B0aW9uIiwibGVnaXNsYXR1cmVPcHRpb24iLCJjYXRlZ29yaWVzT3B0aW9uIiwiZGF0YURpckRlZmF1bHRPcHRpb24iLCJzaWxlbnRPcHRpb24iLCJ2ZXJib3NlT3B0aW9uIiwicHVsbE9wdGlvbiIsImZldGNoRG9jdW1lbnRzT3B0aW9uIiwicGFyc2VEb2N1bWVudHNPcHRpb24iLCJkb2N1bWVudEZvcm1hdE9wdGlvbiIsInBhcnNlQXJncyIsImFyZ3YiLCJvcHRpb25zRGVmaW5pdGlvbnMiLCJhbGlhcyIsImhlbHAiLCJuYW1lIiwidHlwZSIsIlN0cmluZyIsIkJvb2xlYW4iLCJvcHRpb25zIiwiY2xvbmVHaXQiLCJnaXRHcm91cFVybCIsImRhdGFzZXROYW1lIiwiZGF0YURpciIsImNsb25lIiwiY29tbWl0R2l0IiwiZGF0YXNldENsZWFuRGlyIiwiZXhpdENvZGUiLCJzdWJkaXJlY3RvcmllcyIsImNvbW1pdCIsImVycm9yQ29kZSIsImNvbW1pdEFuZFB1c2giLCJyZW1vdGUiLCJjb21taXRBbmRQdXNoVWlkIiwiY2xlYW5BbmRWYWxpZGF0ZURhdGEiLCJkYXRhIiwiY2xlYW5lciIsImZyb21Kc29uIiwidG9Kc29uIiwibm9WYWxpZGF0ZSIsIk9iamVjdCIsImtleXMiLCJsZW5ndGgiLCJqc29uRGF0YSIsIkpTT04iLCJzdHJpbmdpZnkiLCJ2YWxpZGF0ZWREYXRhIiwicHJvY2Vzc0ZpbGVzIiwiZGF0YXNldFJhd0RpciIsIndhbGtEaXJQYXJhbXMiLCJkYXRhQ29udmVydGVyIiwicG9zdFByb2Nlc3NvciIsImZpbGVQYXRoQXJyYXkiLCJmaWxlbmFtZSIsImVuZHNXaXRoIiwicmF3RmlsZVBhdGgiLCJqb2luIiwicmF3SnNvbiIsInJlYWRGaWxlU3luYyIsImVuY29kaW5nIiwidmVyYm9zZSIsImNvbnNvbGUiLCJsb2ciLCJwYXJzZSIsInZhbGlkYXRlRGF0YSIsImNsZWFuSnNvbiIsImNsZWFuRmlsZVBhdGgiLCJlbnN1cmVEaXJTeW5jIiwiZGlybmFtZSIsIndyaXRlRmlsZVN5bmMiLCJjbGVhblJlb3JnYW5pemVkRGF0YSIsIkRhdGUiLCJwcm90b3R5cGUiLCJ0b0pTT04iLCJ0cmltIiwicmVwbGFjZSIsImVuYWJsZWREYXRhc2V0cyIsImNhdGVnb3JpZXMiLCJjaG9zZW5EYXRhc2V0cyIsImxlZ2lzbGF0dXJlIiwiQWN0ZXVyc0V0T3JnYW5lcyIsImRhdGFzZXQiLCJhY3RldXJzRXRPcmdhbmVzIiwiYmFzZW5hbWUiLCJwdWxsIiwicmVzZXRBbmRQdWxsIiwiYW5hbHl6ZUFuZFJlbW92ZSIsInRvQWN0ZXVyIiwiYWN0ZXVyVG9Kc29uIiwidG9PcmdhbmUiLCJvcmdhbmVUb0pzb24iLCJBZ2VuZGFzIiwiYWdlbmRhcyIsInRvUmV1bmlvbiIsInJldW5pb25Ub0pzb24iLCJBbWVuZGVtZW50cyIsImFtZW5kZW1lbnRzIiwidG9BbWVuZGVtZW50IiwiYW1lbmRlbWVudFRvSnNvbiIsIkRvc3NpZXJzTGVnaXNsYXRpZnMiLCJkb3NzaWVyc0xlZ2lzbGF0aWZzIiwidG9Eb2N1bWVudCIsImRvY3VtZW50VG9Kc29uIiwidG9Eb3NzaWVyUGFybGVtZW50YWlyZSIsImRvc3NpZXJQYXJsZW1lbnRhaXJlVG9Kc29uIiwiU2NydXRpbnMiLCJzY3J1dGlucyIsInRvU2NydXRpbiIsInNjcnV0aW5Ub0pzb24iLCJRdWVzdGlvbnMiLCJxdWVzdGlvbnMiLCJ0b1F1ZXN0aW9uIiwicXVlc3Rpb25Ub0pzb24iLCJDb21wdGVzUmVuZHVzU2VhbmNlcyIsImNvbXB0ZXNSZW5kdXNTZWFuY2VzIiwidG9Db21wdGVSZW5kdSIsImNvbXB0ZVJlbmR1VG9Kc29uIiwic2lsZW50IiwicmVhZGRpclN5bmMiLCJwYXRobmFtZSIsInJlbW92ZVN5bmMiLCJyZXBvc2l0b3J5RGlyIiwiZXJyb3IiLCJ1aWRCcmFuY2hVcGRhdGUiLCJydW4iLCJjaGlsZFByb2Nlc3MiLCJtYWluIiwicHJvY2VzcyIsInRoZW4iLCJleGl0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvY2xlYW5fcmVvcmdhbml6ZWRfZGF0YS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY29tbWFuZExpbmVBcmdzIGZyb20gXCJjb21tYW5kLWxpbmUtYXJnc1wiXG5pbXBvcnQgZnMgZnJvbSBcImZzLWV4dHJhXCJcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCJcbmltcG9ydCB7XG4gIGNsZWFuQWN0ZXVyLFxuICBjbGVhbkFtZW5kZW1lbnQsXG4gIGNsZWFuRG9jdW1lbnRPckRpdmlzaW9uLFxuICBjbGVhbkRvc3NpZXJQYXJsZW1lbnRhaXJlLFxuICBjbGVhbk9yZ2FuZSxcbiAgY2xlYW5SZXVuaW9uLFxuICBjbGVhblNjcnV0aW4sXG4gIGNsZWFuUXVlc3Rpb24sXG4gIGNsZWFuQ29tcHRlUmVuZHUsXG59IGZyb20gXCIuLi9jbGVhbmVyc1wiXG5pbXBvcnQge1xuICBkYXRhc2V0cyxcbiAgRW5hYmxlZERhdGFzZXRzLFxuICBnZXRFbmFibGVkRGF0YXNldHMsXG4gIGZpbHRlckJ5TGVnaXNsYXR1cmUsXG59IGZyb20gXCIuLi9kYXRhc2V0c1wiXG5pbXBvcnQgeyBkb3dubG9hZEFuZFBhcnNlIH0gZnJvbSBcIi4vcmV0cmlldmVfZG9jdW1lbnRzXCJcbmltcG9ydCB7IGV4aXN0aW5nRGF0ZVRvSnNvbiwgcGF0Y2hlZERhdGVUb0pzb24gfSBmcm9tIFwiLi4vZGF0ZXNcIlxuaW1wb3J0IHsgd2Fsa0RpciB9IGZyb20gXCIuLi9maWxlX3N5c3RlbXNcIlxuaW1wb3J0ICogYXMgZ2l0IGZyb20gXCIuLi9naXRcIlxuaW1wb3J0IHtcbiAgQWN0ZXVyLFxuICBDb252ZXJ0IGFzIEFjdGV1cnNFdE9yZ2FuZXNDb252ZXJ0LFxuICBPcmdhbmUsXG59IGZyb20gXCIuLi90eXBlcy9hY3RldXJzX2V0X29yZ2FuZXNcIlxuaW1wb3J0IHsgQ29udmVydCBhcyBBZ2VuZGFzQ29udmVydCwgUmV1bmlvbiB9IGZyb20gXCIuLi90eXBlcy9hZ2VuZGFzXCJcbmltcG9ydCB7IEFtZW5kZW1lbnQsIENvbnZlcnQgYXMgQW1lbmRlbWVudHNDb252ZXJ0IH0gZnJvbSBcIi4uL3R5cGVzL2FtZW5kZW1lbnRzXCJcbmltcG9ydCB7XG4gIENvbnZlcnQgYXMgRG9zc2llcnNMZWdpc2xhdGlmc0NvbnZlcnQsXG4gIERvY3VtZW50LFxuICBEb3NzaWVyUGFybGVtZW50YWlyZSxcbn0gZnJvbSBcIi4uL3R5cGVzL2Rvc3NpZXJzX2xlZ2lzbGF0aWZzXCJcbmltcG9ydCB7IENvbnZlcnQgYXMgU2NydXRpbnNDb252ZXJ0LCBTY3J1dGluIH0gZnJvbSBcIi4uL3R5cGVzL3NjcnV0aW5zXCJcbmltcG9ydCB7IENvbnZlcnQgYXMgUXVlc3Rpb25zQ29udmVydCwgUXVlc3Rpb24gfSBmcm9tIFwiLi4vdHlwZXMvcXVlc3Rpb25zXCJcbmltcG9ydCB7IENvbnZlcnQgYXMgQ29tcHRlc1JlbmR1c0NvbnZlcnQsIENvbXB0ZVJlbmR1IH0gZnJvbSBcIi4uL3R5cGVzL2RlYmF0c1wiXG5pbXBvcnQge1xuICBjbG9uZU9wdGlvbixcbiAgY29tbWl0T3B0aW9uLFxuICByZW1vdGVPcHRpb24sXG4gIGxlZ2lzbGF0dXJlT3B0aW9uLFxuICBjYXRlZ29yaWVzT3B0aW9uLFxuICBkYXRhRGlyRGVmYXVsdE9wdGlvbixcbiAgc2lsZW50T3B0aW9uLFxuICB2ZXJib3NlT3B0aW9uLFxuICBwdWxsT3B0aW9uLFxuICBmZXRjaERvY3VtZW50c09wdGlvbixcbiAgcGFyc2VEb2N1bWVudHNPcHRpb24sXG4gIGRvY3VtZW50Rm9ybWF0T3B0aW9uLFxufSBmcm9tIFwiLi9zaGFyZWQvY2xpX2hlbHBlcnNcIlxuXG5mdW5jdGlvbiBwYXJzZUFyZ3MoYXJndjogc3RyaW5nW10pOiBhbnkge1xuICBjb25zdCBvcHRpb25zRGVmaW5pdGlvbnMgPSBbXG4gICAgY2xvbmVPcHRpb24sXG4gICAgY29tbWl0T3B0aW9uLFxuICAgIHJlbW90ZU9wdGlvbixcbiAgICBsZWdpc2xhdHVyZU9wdGlvbixcbiAgICBjYXRlZ29yaWVzT3B0aW9uLFxuICAgIHNpbGVudE9wdGlvbixcbiAgICB2ZXJib3NlT3B0aW9uLFxuICAgIGRhdGFEaXJEZWZhdWx0T3B0aW9uLFxuICAgIHB1bGxPcHRpb24sXG4gICAgZmV0Y2hEb2N1bWVudHNPcHRpb24sXG4gICAgcGFyc2VEb2N1bWVudHNPcHRpb24sXG4gICAgZG9jdW1lbnRGb3JtYXRPcHRpb24sXG4gICAge1xuICAgICAgYWxpYXM6IFwiZFwiLFxuICAgICAgaGVscDogXCJzaW5nbGUgZGF0YXNldCB0byByZW9yZ2FuaXplXCIsXG4gICAgICBuYW1lOiBcImRhdGFzZXRcIixcbiAgICAgIHR5cGU6IFN0cmluZyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGhlbHA6IFwiZG8gbm90IHJlc2V0IC0taGFyZCBhZnRlciBjb21taXQgdG8gc2F2ZSBJL08gaWYgdGhlIHdvcmtpbmcgdHJlZSBpcyB0byBiZSBkaXNjYXJkZWRcIixcbiAgICAgIG5hbWU6IFwibm8tcmVzZXQtYWZ0ZXItY29tbWl0XCIsXG4gICAgICB0eXBlOiBCb29sZWFuLFxuICAgIH0sXG4gICAge1xuICAgICAgYWxpYXM6IFwiVlwiLFxuICAgICAgaGVscDogXCJkb24ndCB2YWxpZGF0ZSBkYXRhXCIsXG4gICAgICBuYW1lOiBcIm5vLXZhbGlkYXRlXCIsXG4gICAgICB0eXBlOiBCb29sZWFuLFxuICAgIH0sXG4gIF1cbiAgY29uc3Qgb3B0aW9ucyA9IGNvbW1hbmRMaW5lQXJncyhvcHRpb25zRGVmaW5pdGlvbnMsIHtcbiAgICBhcmd2OiBhcmd2LFxuICB9KVxuICByZXR1cm4gb3B0aW9uc1xufVxuXG5mdW5jdGlvbiBjbG9uZUdpdChcbiAgZ2l0R3JvdXBVcmw6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgZGF0YXNldE5hbWU6IHN0cmluZyxcbiAgZGF0YURpcjogc3RyaW5nLFxuKTogdm9pZCB7XG4gIGdpdC5jbG9uZShnaXRHcm91cFVybCwgYCR7ZGF0YXNldE5hbWV9X25ldHRveWVgLCBkYXRhRGlyKVxufVxuXG5mdW5jdGlvbiBjb21taXRHaXQoXG4gIGRhdGFzZXRDbGVhbkRpcjogc3RyaW5nLFxuICBvcHRpb25zOiBhbnksXG4gIGV4aXRDb2RlOiBudW1iZXIsXG4gIHN1YmRpcmVjdG9yaWVzOiBhbnksXG4pOiBudW1iZXIge1xuICBpZiAob3B0aW9ucy5jb21taXQpIHtcbiAgICBjb25zdCBlcnJvckNvZGUgPSBnaXQuY29tbWl0QW5kUHVzaChcbiAgICAgIGRhdGFzZXRDbGVhbkRpcixcbiAgICAgIFwiTm91dmVsbGUgbW9pc3NvblwiLFxuICAgICAgb3B0aW9ucy5yZW1vdGUsXG4gICAgKVxuICAgIGlmIChcbiAgICAgIChleGl0Q29kZSA9PT0gMTAgJiYgZXJyb3JDb2RlICE9PSAxMCkgfHxcbiAgICAgIChleGl0Q29kZSA9PT0gMCAmJiBlcnJvckNvZGUgIT09IDAgJiYgZXJyb3JDb2RlICE9PSAxMClcbiAgICApIHtcbiAgICAgIGV4aXRDb2RlID0gZXJyb3JDb2RlXG4gICAgfVxuICB9XG4gIGlmIChcbiAgICBjb21taXRBbmRQdXNoVWlkKGRhdGFzZXRDbGVhbkRpciwgb3B0aW9ucywgc3ViZGlyZWN0b3JpZXMpICYmXG4gICAgKGV4aXRDb2RlID09PSAwIHx8IGV4aXRDb2RlID09PSAxMClcbiAgKSB7XG4gICAgZXhpdENvZGUgPSAxXG4gIH1cbiAgcmV0dXJuIGV4aXRDb2RlXG59XG5cbmZ1bmN0aW9uIGNsZWFuQW5kVmFsaWRhdGVEYXRhPFQ+KFxuICBkYXRhOiBhbnksXG4gIGNsZWFuZXI6IChkYXRhOiBUKSA9PiB2b2lkLFxuICBmcm9tSnNvbjogKGpzb246IHN0cmluZykgPT4gVCxcbiAgdG9Kc29uOiAoZGF0YTogVCkgPT4gc3RyaW5nLFxuICBub1ZhbGlkYXRlOiBCb29sZWFuLFxuKTogc3RyaW5nIHwgbnVsbCB7XG4gIGNsZWFuZXIoZGF0YSlcbiAgaWYgKHR5cGVvZiBkYXRhID09PSBcIm9iamVjdFwiICYmIE9iamVjdC5rZXlzKGRhdGEpLmxlbmd0aCA9PT0gMCkge1xuICAgIC8vIEJ5IGNvbnZlbnRpb246IGFuIGVtcHR5IG9iamVjdCBtdXN0IGJlIGRlbGV0ZWQuXG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICBjb25zdCBqc29uRGF0YSA9IEpTT04uc3RyaW5naWZ5KGRhdGEsIG51bGwsIDIpXG4gIGlmICghbm9WYWxpZGF0ZSkge1xuICAgIHJldHVybiBqc29uRGF0YVxuICB9IGVsc2Uge1xuICAgIGNvbnN0IHZhbGlkYXRlZERhdGE6IFQgPSBmcm9tSnNvbihqc29uRGF0YSlcbiAgICByZXR1cm4gdG9Kc29uKHZhbGlkYXRlZERhdGEpXG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gcHJvY2Vzc0ZpbGVzPFQ+KFxuICBkYXRhc2V0UmF3RGlyOiBzdHJpbmcsXG4gIGRhdGFzZXRDbGVhbkRpcjogc3RyaW5nLFxuICB3YWxrRGlyUGFyYW1zOiBhbnlbXSxcbiAgY2xlYW5lcjogYW55LFxuICBkYXRhQ29udmVydGVyOiB7IGZyb21Kc29uOiBhbnk7IHRvSnNvbjogYW55IH0sXG4gIG9wdGlvbnM6IGFueSxcbiAgcG9zdFByb2Nlc3Nvcj86IGFueSxcbik6IFByb21pc2U8dm9pZD4ge1xuICBmb3IgKGNvbnN0IGZpbGVQYXRoQXJyYXkgb2Ygd2Fsa0RpcihkYXRhc2V0UmF3RGlyLCB3YWxrRGlyUGFyYW1zKSkge1xuICAgIGNvbnN0IGZpbGVuYW1lID0gZmlsZVBhdGhBcnJheVtmaWxlUGF0aEFycmF5Lmxlbmd0aCAtIDFdXG4gICAgaWYgKCFmaWxlbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSBjb250aW51ZVxuICAgIGNvbnN0IHJhd0ZpbGVQYXRoID0gcGF0aC5qb2luKGRhdGFzZXRSYXdEaXIsIC4uLmZpbGVQYXRoQXJyYXkpXG4gICAgY29uc3QgcmF3SnNvbiA9IGZzLnJlYWRGaWxlU3luYyhyYXdGaWxlUGF0aCwgeyBlbmNvZGluZzogXCJ1dGY4XCIgfSlcbiAgICBpZiAob3B0aW9ucy52ZXJib3NlKSBjb25zb2xlLmxvZyhgQ2xlYW5pbmcgZmlsZTogJHtyYXdGaWxlUGF0aH0uLi5gKVxuICAgIGNvbnN0IGRhdGEgPSBKU09OLnBhcnNlKHJhd0pzb24pXG4gICAgY29uc3QgdmFsaWRhdGVEYXRhID0gIW9wdGlvbnNbXCJuby12YWxpZGF0ZVwiXVxuICAgIGNvbnN0IGNsZWFuSnNvbiA9IGNsZWFuQW5kVmFsaWRhdGVEYXRhPFQ+KFxuICAgICAgZGF0YSxcbiAgICAgIGNsZWFuZXIsXG4gICAgICBkYXRhQ29udmVydGVyLmZyb21Kc29uLFxuICAgICAgZGF0YUNvbnZlcnRlci50b0pzb24sXG4gICAgICB2YWxpZGF0ZURhdGEsXG4gICAgKVxuXG4gICAgaWYgKGNsZWFuSnNvbiAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgY2xlYW5GaWxlUGF0aCA9IHBhdGguam9pbihkYXRhc2V0Q2xlYW5EaXIsIC4uLmZpbGVQYXRoQXJyYXkpXG4gICAgICBmcy5lbnN1cmVEaXJTeW5jKHBhdGguZGlybmFtZShjbGVhbkZpbGVQYXRoKSlcbiAgICAgIGZzLndyaXRlRmlsZVN5bmMoY2xlYW5GaWxlUGF0aCwgY2xlYW5Kc29uLCB7IGVuY29kaW5nOiBcInV0ZjhcIiB9KVxuXG4gICAgICBpZiAocG9zdFByb2Nlc3Nvcikge1xuICAgICAgICBhd2FpdCBwb3N0UHJvY2Vzc29yKGRhdGEsIGRhdGFzZXRDbGVhbkRpciwgb3B0aW9ucylcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gY2xlYW5SZW9yZ2FuaXplZERhdGEob3B0aW9uczogYW55KTogUHJvbWlzZTxudW1iZXI+IHtcbiAgY29uc3QgZGF0YURpcjogc3RyaW5nID0gb3B0aW9ucy5kYXRhRGlyXG4gIERhdGUucHJvdG90eXBlLnRvSlNPTiA9IHBhdGNoZWREYXRlVG9Kc29uXG4gIGxldCBleGl0Q29kZSA9IG9wdGlvbnMuY29tbWl0ID8gMTAgOiAwXG4gIGNvbnN0IGdpdEdyb3VwVXJsID0gb3B0aW9ucy5jbG9uZT8udHJpbSgpLnJlcGxhY2UoL1xcLyskLywgXCJcIilcbiAgY29uc3QgZW5hYmxlZERhdGFzZXRzID0gZ2V0RW5hYmxlZERhdGFzZXRzKG9wdGlvbnMuY2F0ZWdvcmllcylcbiAgbGV0IGNob3NlbkRhdGFzZXRzID0gZmlsdGVyQnlMZWdpc2xhdHVyZShkYXRhc2V0cywgb3B0aW9ucy5sZWdpc2xhdHVyZSlcblxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkFjdGV1cnNFdE9yZ2FuZXMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgY2hvc2VuRGF0YXNldHMuYWN0ZXVyc0V0T3JnYW5lcykge1xuICAgICAgY29uc3QgZGF0YXNldE5hbWUgPSBwYXRoLmJhc2VuYW1lKGRhdGFzZXQuZmlsZW5hbWUsIFwiLmpzb25cIilcbiAgICAgIGlmIChvcHRpb25zLmRhdGFzZXQgJiYgZGF0YXNldE5hbWUgIT09IG9wdGlvbnMuZGF0YXNldCkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgY2xvbmVHaXQoZ2l0R3JvdXBVcmwsIGRhdGFzZXROYW1lLCBkYXRhRGlyKVxuXG4gICAgICBjb25zdCBkYXRhc2V0UmF3RGlyOiBzdHJpbmcgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldE5hbWUpXG4gICAgICBjb25zdCBkYXRhc2V0Q2xlYW5EaXI6IHN0cmluZyA9IGRhdGFzZXRSYXdEaXIgKyBcIl9uZXR0b3llXCJcbiAgICAgIGlmIChvcHRpb25zLnB1bGwpIHtcbiAgICAgICAgZ2l0LnJlc2V0QW5kUHVsbChkYXRhc2V0Q2xlYW5EaXIpXG4gICAgICB9XG5cbiAgICAgIGFuYWx5emVBbmRSZW1vdmUoZGF0YXNldE5hbWUsIG9wdGlvbnMpXG4gICAgICBhd2FpdCBwcm9jZXNzRmlsZXM8QWN0ZXVyPihcbiAgICAgICAgZGF0YXNldFJhd0RpcixcbiAgICAgICAgZGF0YXNldENsZWFuRGlyLFxuICAgICAgICBbXCJhY3RldXJzXCJdLFxuICAgICAgICBjbGVhbkFjdGV1cixcbiAgICAgICAge1xuICAgICAgICAgIGZyb21Kc29uOiBBY3RldXJzRXRPcmdhbmVzQ29udmVydC50b0FjdGV1cixcbiAgICAgICAgICB0b0pzb246IEFjdGV1cnNFdE9yZ2FuZXNDb252ZXJ0LmFjdGV1clRvSnNvbixcbiAgICAgICAgfSxcbiAgICAgICAgb3B0aW9ucyxcbiAgICAgIClcbiAgICAgIGF3YWl0IHByb2Nlc3NGaWxlczxPcmdhbmU+KFxuICAgICAgICBkYXRhc2V0UmF3RGlyLFxuICAgICAgICBkYXRhc2V0Q2xlYW5EaXIsXG4gICAgICAgIFtcIm9yZ2FuZXNcIl0sXG4gICAgICAgIGNsZWFuT3JnYW5lLFxuICAgICAgICB7XG4gICAgICAgICAgZnJvbUpzb246IEFjdGV1cnNFdE9yZ2FuZXNDb252ZXJ0LnRvT3JnYW5lLFxuICAgICAgICAgIHRvSnNvbjogQWN0ZXVyc0V0T3JnYW5lc0NvbnZlcnQub3JnYW5lVG9Kc29uLFxuICAgICAgICB9LFxuICAgICAgICBvcHRpb25zLFxuICAgICAgKVxuXG4gICAgICBleGl0Q29kZSA9IGNvbW1pdEdpdChkYXRhc2V0Q2xlYW5EaXIsIG9wdGlvbnMsIGV4aXRDb2RlLCBbXG4gICAgICAgIFwiYWN0ZXVyc1wiLFxuICAgICAgICBcIm9yZ2FuZXNcIixcbiAgICAgIF0pXG4gICAgfVxuICB9XG5cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5BZ2VuZGFzKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGNob3NlbkRhdGFzZXRzLmFnZW5kYXMpIHtcbiAgICAgIGNvbnN0IGRhdGFzZXROYW1lID0gcGF0aC5iYXNlbmFtZShkYXRhc2V0LmZpbGVuYW1lLCBcIi5qc29uXCIpXG4gICAgICBpZiAob3B0aW9ucy5kYXRhc2V0ICYmIGRhdGFzZXROYW1lICE9PSBvcHRpb25zLmRhdGFzZXQpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cblxuICAgICAgY2xvbmVHaXQoZ2l0R3JvdXBVcmwsIGRhdGFzZXROYW1lLCBkYXRhRGlyKVxuICAgICAgYW5hbHl6ZUFuZFJlbW92ZShkYXRhc2V0TmFtZSwgb3B0aW9ucylcbiAgICAgIGNvbnN0IGRhdGFzZXRSYXdEaXI6IHN0cmluZyA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0TmFtZSlcbiAgICAgIGNvbnN0IGRhdGFzZXRDbGVhbkRpcjogc3RyaW5nID0gZGF0YXNldFJhd0RpciArIFwiX25ldHRveWVcIlxuXG4gICAgICBhd2FpdCBwcm9jZXNzRmlsZXM8UmV1bmlvbj4oXG4gICAgICAgIGRhdGFzZXRSYXdEaXIsXG4gICAgICAgIGRhdGFzZXRDbGVhbkRpcixcbiAgICAgICAgW10sXG4gICAgICAgIGNsZWFuUmV1bmlvbixcbiAgICAgICAge1xuICAgICAgICAgIGZyb21Kc29uOiBBZ2VuZGFzQ29udmVydC50b1JldW5pb24sXG4gICAgICAgICAgdG9Kc29uOiBBZ2VuZGFzQ29udmVydC5yZXVuaW9uVG9Kc29uLFxuICAgICAgICB9LFxuICAgICAgICBvcHRpb25zLFxuICAgICAgKVxuXG4gICAgICBleGl0Q29kZSA9IGNvbW1pdEdpdChkYXRhc2V0Q2xlYW5EaXIsIG9wdGlvbnMsIGV4aXRDb2RlLCBbXCIuXCJdKVxuICAgIH1cbiAgfVxuXG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuQW1lbmRlbWVudHMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgY2hvc2VuRGF0YXNldHMuYW1lbmRlbWVudHMpIHtcbiAgICAgIGNvbnN0IGRhdGFzZXROYW1lID0gcGF0aC5iYXNlbmFtZShkYXRhc2V0LmZpbGVuYW1lLCBcIi5qc29uXCIpXG4gICAgICBpZiAob3B0aW9ucy5kYXRhc2V0ICYmIGRhdGFzZXROYW1lICE9PSBvcHRpb25zLmRhdGFzZXQpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cblxuICAgICAgY2xvbmVHaXQoZ2l0R3JvdXBVcmwsIGRhdGFzZXROYW1lLCBkYXRhRGlyKVxuICAgICAgYW5hbHl6ZUFuZFJlbW92ZShkYXRhc2V0TmFtZSwgb3B0aW9ucylcbiAgICAgIGNvbnN0IGRhdGFzZXRSYXdEaXI6IHN0cmluZyA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0TmFtZSlcbiAgICAgIGNvbnN0IGRhdGFzZXRDbGVhbkRpcjogc3RyaW5nID0gZGF0YXNldFJhd0RpciArIFwiX25ldHRveWVcIlxuXG4gICAgICBhd2FpdCBwcm9jZXNzRmlsZXM8QW1lbmRlbWVudD4oXG4gICAgICAgIGRhdGFzZXRSYXdEaXIsXG4gICAgICAgIGRhdGFzZXRDbGVhbkRpcixcbiAgICAgICAgW10sXG4gICAgICAgIGNsZWFuQW1lbmRlbWVudCxcbiAgICAgICAge1xuICAgICAgICAgIGZyb21Kc29uOiBBbWVuZGVtZW50c0NvbnZlcnQudG9BbWVuZGVtZW50LFxuICAgICAgICAgIHRvSnNvbjogQW1lbmRlbWVudHNDb252ZXJ0LmFtZW5kZW1lbnRUb0pzb24sXG4gICAgICAgIH0sXG4gICAgICAgIG9wdGlvbnMsXG4gICAgICApXG5cbiAgICAgIGV4aXRDb2RlID0gY29tbWl0R2l0KGRhdGFzZXRDbGVhbkRpciwgb3B0aW9ucywgZXhpdENvZGUsIFtcIi5cIl0pXG4gICAgfVxuICB9XG5cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5Eb3NzaWVyc0xlZ2lzbGF0aWZzKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGNob3NlbkRhdGFzZXRzLmRvc3NpZXJzTGVnaXNsYXRpZnMpIHtcbiAgICAgIGNvbnN0IGRhdGFzZXROYW1lID0gcGF0aC5iYXNlbmFtZShkYXRhc2V0LmZpbGVuYW1lLCBcIi5qc29uXCIpXG4gICAgICBpZiAob3B0aW9ucy5kYXRhc2V0ICYmIGRhdGFzZXROYW1lICE9PSBvcHRpb25zLmRhdGFzZXQpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cblxuICAgICAgY2xvbmVHaXQoZ2l0R3JvdXBVcmwsIGRhdGFzZXROYW1lLCBkYXRhRGlyKVxuICAgICAgYW5hbHl6ZUFuZFJlbW92ZShkYXRhc2V0TmFtZSwgb3B0aW9ucylcbiAgICAgIGNvbnN0IGRhdGFzZXRSYXdEaXI6IHN0cmluZyA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0TmFtZSlcbiAgICAgIGNvbnN0IGRhdGFzZXRDbGVhbkRpcjogc3RyaW5nID0gZGF0YXNldFJhd0RpciArIFwiX25ldHRveWVcIlxuXG4gICAgICBhd2FpdCBwcm9jZXNzRmlsZXM8RG9jdW1lbnQ+KFxuICAgICAgICBkYXRhc2V0UmF3RGlyLFxuICAgICAgICBkYXRhc2V0Q2xlYW5EaXIsXG4gICAgICAgIFtcImRvY3VtZW50c1wiXSxcbiAgICAgICAgY2xlYW5Eb2N1bWVudE9yRGl2aXNpb24sXG4gICAgICAgIHtcbiAgICAgICAgICBmcm9tSnNvbjogRG9zc2llcnNMZWdpc2xhdGlmc0NvbnZlcnQudG9Eb2N1bWVudCxcbiAgICAgICAgICB0b0pzb246IERvc3NpZXJzTGVnaXNsYXRpZnNDb252ZXJ0LmRvY3VtZW50VG9Kc29uLFxuICAgICAgICB9LFxuICAgICAgICBvcHRpb25zLFxuICAgICAgICBkb3dubG9hZEFuZFBhcnNlLFxuICAgICAgKVxuICAgICAgYXdhaXQgcHJvY2Vzc0ZpbGVzPERvc3NpZXJQYXJsZW1lbnRhaXJlPihcbiAgICAgICAgZGF0YXNldFJhd0RpcixcbiAgICAgICAgZGF0YXNldENsZWFuRGlyLFxuICAgICAgICBbXCJkb3NzaWVyc1wiXSxcbiAgICAgICAgY2xlYW5Eb3NzaWVyUGFybGVtZW50YWlyZSxcbiAgICAgICAge1xuICAgICAgICAgIGZyb21Kc29uOiBEb3NzaWVyc0xlZ2lzbGF0aWZzQ29udmVydC50b0Rvc3NpZXJQYXJsZW1lbnRhaXJlLFxuICAgICAgICAgIHRvSnNvbjogRG9zc2llcnNMZWdpc2xhdGlmc0NvbnZlcnQuZG9zc2llclBhcmxlbWVudGFpcmVUb0pzb24sXG4gICAgICAgIH0sXG4gICAgICAgIG9wdGlvbnMsXG4gICAgICApXG5cbiAgICAgIGV4aXRDb2RlID0gY29tbWl0R2l0KGRhdGFzZXRDbGVhbkRpciwgb3B0aW9ucywgZXhpdENvZGUsIFtcbiAgICAgICAgXCJkb2N1bWVudHNcIixcbiAgICAgICAgXCJkb3NzaWVyc1wiLFxuICAgICAgXSlcbiAgICB9XG4gIH1cblxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLlNjcnV0aW5zKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGNob3NlbkRhdGFzZXRzLnNjcnV0aW5zKSB7XG4gICAgICBjb25zdCBkYXRhc2V0TmFtZSA9IHBhdGguYmFzZW5hbWUoZGF0YXNldC5maWxlbmFtZSwgXCIuanNvblwiKVxuICAgICAgaWYgKG9wdGlvbnMuZGF0YXNldCAmJiBkYXRhc2V0TmFtZSAhPT0gb3B0aW9ucy5kYXRhc2V0KSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG5cbiAgICAgIGNsb25lR2l0KGdpdEdyb3VwVXJsLCBkYXRhc2V0TmFtZSwgZGF0YURpcilcbiAgICAgIGFuYWx5emVBbmRSZW1vdmUoZGF0YXNldE5hbWUsIG9wdGlvbnMpXG4gICAgICBjb25zdCBkYXRhc2V0UmF3RGlyOiBzdHJpbmcgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldE5hbWUpXG4gICAgICBjb25zdCBkYXRhc2V0Q2xlYW5EaXI6IHN0cmluZyA9IGRhdGFzZXRSYXdEaXIgKyBcIl9uZXR0b3llXCJcblxuICAgICAgYXdhaXQgcHJvY2Vzc0ZpbGVzPFNjcnV0aW4+KFxuICAgICAgICBkYXRhc2V0UmF3RGlyLFxuICAgICAgICBkYXRhc2V0Q2xlYW5EaXIsXG4gICAgICAgIFtdLFxuICAgICAgICBjbGVhblNjcnV0aW4sXG4gICAgICAgIHtcbiAgICAgICAgICBmcm9tSnNvbjogU2NydXRpbnNDb252ZXJ0LnRvU2NydXRpbixcbiAgICAgICAgICB0b0pzb246IFNjcnV0aW5zQ29udmVydC5zY3J1dGluVG9Kc29uLFxuICAgICAgICB9LFxuICAgICAgICBvcHRpb25zLFxuICAgICAgKVxuXG4gICAgICBleGl0Q29kZSA9IGNvbW1pdEdpdChkYXRhc2V0Q2xlYW5EaXIsIG9wdGlvbnMsIGV4aXRDb2RlLCBbXCIuXCJdKVxuICAgIH1cbiAgfVxuXG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuUXVlc3Rpb25zKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLnF1ZXN0aW9ucykge1xuICAgICAgY29uc3QgZGF0YXNldE5hbWUgPSBwYXRoLmJhc2VuYW1lKGRhdGFzZXQuZmlsZW5hbWUsIFwiLmpzb25cIilcbiAgICAgIGlmIChvcHRpb25zLmRhdGFzZXQgJiYgZGF0YXNldE5hbWUgIT09IG9wdGlvbnMuZGF0YXNldCkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuXG4gICAgICBjbG9uZUdpdChnaXRHcm91cFVybCwgZGF0YXNldE5hbWUsIGRhdGFEaXIpXG4gICAgICBhbmFseXplQW5kUmVtb3ZlKGRhdGFzZXROYW1lLCBvcHRpb25zKVxuICAgICAgY29uc3QgZGF0YXNldFJhd0Rpcjogc3RyaW5nID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXROYW1lKVxuICAgICAgY29uc3QgZGF0YXNldENsZWFuRGlyOiBzdHJpbmcgPSBkYXRhc2V0UmF3RGlyICsgXCJfbmV0dG95ZVwiXG5cbiAgICAgIGF3YWl0IHByb2Nlc3NGaWxlczxRdWVzdGlvbj4oXG4gICAgICAgIGRhdGFzZXRSYXdEaXIsXG4gICAgICAgIGRhdGFzZXRDbGVhbkRpcixcbiAgICAgICAgW10sXG4gICAgICAgIGNsZWFuUXVlc3Rpb24sXG4gICAgICAgIHtcbiAgICAgICAgICBmcm9tSnNvbjogUXVlc3Rpb25zQ29udmVydC50b1F1ZXN0aW9uLFxuICAgICAgICAgIHRvSnNvbjogUXVlc3Rpb25zQ29udmVydC5xdWVzdGlvblRvSnNvbixcbiAgICAgICAgfSxcbiAgICAgICAgb3B0aW9ucyxcbiAgICAgIClcblxuICAgICAgZXhpdENvZGUgPSBjb21taXRHaXQoZGF0YXNldENsZWFuRGlyLCBvcHRpb25zLCBleGl0Q29kZSwgW1wiLlwiXSlcbiAgICB9XG4gIH1cblxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkNvbXB0ZXNSZW5kdXNTZWFuY2VzKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLmNvbXB0ZXNSZW5kdXNTZWFuY2VzKSB7XG4gICAgICBjb25zdCBkYXRhc2V0TmFtZSA9IHBhdGguYmFzZW5hbWUoZGF0YXNldC5maWxlbmFtZSwgXCIueG1sXCIpXG4gICAgICBpZiAob3B0aW9ucy5kYXRhc2V0ICYmIGRhdGFzZXROYW1lICE9PSBvcHRpb25zLmRhdGFzZXQpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cblxuICAgICAgY2xvbmVHaXQoZ2l0R3JvdXBVcmwsIGRhdGFzZXROYW1lLCBkYXRhRGlyKVxuICAgICAgYW5hbHl6ZUFuZFJlbW92ZShkYXRhc2V0TmFtZSwgb3B0aW9ucylcbiAgICAgIGNvbnN0IGRhdGFzZXRSYXdEaXI6IHN0cmluZyA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0TmFtZSlcbiAgICAgIGNvbnN0IGRhdGFzZXRDbGVhbkRpcjogc3RyaW5nID0gZGF0YXNldFJhd0RpciArIFwiX25ldHRveWVcIlxuXG4gICAgICBhd2FpdCBwcm9jZXNzRmlsZXM8Q29tcHRlUmVuZHU+KFxuICAgICAgICBkYXRhc2V0UmF3RGlyLFxuICAgICAgICBkYXRhc2V0Q2xlYW5EaXIsXG4gICAgICAgIFtdLFxuICAgICAgICBjbGVhbkNvbXB0ZVJlbmR1LFxuICAgICAgICB7XG4gICAgICAgICAgZnJvbUpzb246IENvbXB0ZXNSZW5kdXNDb252ZXJ0LnRvQ29tcHRlUmVuZHUsXG4gICAgICAgICAgdG9Kc29uOiBDb21wdGVzUmVuZHVzQ29udmVydC5jb21wdGVSZW5kdVRvSnNvbixcbiAgICAgICAgfSxcbiAgICAgICAgb3B0aW9ucyxcbiAgICAgIClcblxuICAgICAgZXhpdENvZGUgPSBjb21taXRHaXQoZGF0YXNldENsZWFuRGlyLCBvcHRpb25zLCBleGl0Q29kZSwgW1wiLlwiXSlcbiAgICB9XG4gIH1cblxuICAvLyBSZXN0b3JlIHN0YW5kYXJkIGNvbnZlcnNpb24gb2YgZGF0ZXMgdG8gSlNPTi5cbiAgRGF0ZS5wcm90b3R5cGUudG9KU09OID0gZXhpc3RpbmdEYXRlVG9Kc29uXG5cbiAgcmV0dXJuIGV4aXRDb2RlXG59XG5cbmZ1bmN0aW9uIGFuYWx5emVBbmRSZW1vdmUoZGF0YXNldE5hbWU6IHN0cmluZywgb3B0aW9uczogYW55KTogYW55IHtcbiAgY29uc3QgZGF0YURpciA9IG9wdGlvbnMuZGF0YURpclxuICBjb25zdCBkYXRhc2V0UmF3RGlyOiBzdHJpbmcgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldE5hbWUpXG4gIGNvbnN0IGRhdGFzZXRDbGVhbkRpcjogc3RyaW5nID0gZGF0YXNldFJhd0RpciArIFwiX25ldHRveWVcIlxuICBpZiAoIW9wdGlvbnMuc2lsZW50KSB7XG4gICAgY29uc29sZS5sb2coYENsZWFuaW5nIGRpcmVjdG9yeTogJHtkYXRhc2V0Q2xlYW5EaXJ94oCmYClcbiAgfVxuICBmcy5lbnN1cmVEaXJTeW5jKGRhdGFzZXRDbGVhbkRpcilcbiAgZm9yIChjb25zdCBmaWxlbmFtZSBvZiBmcy5yZWFkZGlyU3luYyhkYXRhc2V0Q2xlYW5EaXIpKSB7XG4gICAgaWYgKGZpbGVuYW1lWzBdID09PSBcIi5cIikge1xuICAgICAgY29udGludWVcbiAgICB9XG4gICAgY29uc3QgcGF0aG5hbWUgPSBwYXRoLmpvaW4oZGF0YXNldENsZWFuRGlyLCBmaWxlbmFtZSlcbiAgICBmcy5yZW1vdmVTeW5jKHBhdGhuYW1lKVxuICB9XG59XG5cbmZ1bmN0aW9uIGNvbW1pdEFuZFB1c2hVaWQoXG4gIHJlcG9zaXRvcnlEaXI6IHN0cmluZyxcbiAgb3B0aW9uczogYW55LFxuICBzdWJkaXJlY3RvcmllczogYW55LFxuKTogYm9vbGVhbiB7XG4gIGxldCBlcnJvciA9IGZhbHNlXG4gIGlmIChvcHRpb25zLmNvbW1pdCkge1xuICAgIGdpdC51aWRCcmFuY2hVcGRhdGUoXG4gICAgICByZXBvc2l0b3J5RGlyLFxuICAgICAgc3ViZGlyZWN0b3JpZXMsXG4gICAgICBvcHRpb25zW1wibm8tcmVzZXQtYWZ0ZXItY29tbWl0XCJdLFxuICAgIClcbiAgICBmb3IgKGNvbnN0IHJlbW90ZSBvZiBvcHRpb25zLnJlbW90ZSB8fCBbXSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgZ2l0LnJ1bihyZXBvc2l0b3J5RGlyLCBgcHVzaCAtLXF1aWV0ICR7cmVtb3RlfSB1aWQ6dWlkYClcbiAgICAgIH0gY2F0Y2ggKGNoaWxkUHJvY2Vzcykge1xuICAgICAgICBlcnJvciA9IHRydWVcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIGVycm9yXG59XG5cbmZ1bmN0aW9uIG1haW4oYXJndjogYW55KTogUHJvbWlzZTxudW1iZXI+IHtcbiAgY29uc3Qgb3B0aW9ucyA9IHBhcnNlQXJncyhhcmd2KVxuICByZXR1cm4gY2xlYW5SZW9yZ2FuaXplZERhdGEob3B0aW9ucylcbn1cblxuLyogaXN0YW5idWwgaWdub3JlIGlmICovXG5pZiAocHJvY2Vzcy5hcmd2WzFdLmVuZHNXaXRoKFwiY2xlYW5fcmVvcmdhbml6ZWRfZGF0YS50c1wiKSkge1xuICBtYWluKHByb2Nlc3MuYXJndikudGhlbihwcm9jZXNzLmV4aXQpXG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLGVBQWUsTUFBTSxtQkFBbUI7QUFDL0MsT0FBT0MsRUFBRSxNQUFNLFVBQVU7QUFDekIsT0FBT0MsSUFBSSxNQUFNLE1BQU07QUFBQSxTQUVyQkMsV0FBVyxFQUNYQyxlQUFlLEVBQ2ZDLHVCQUF1QixFQUN2QkMseUJBQXlCLEVBQ3pCQyxXQUFXLEVBQ1hDLFlBQVksRUFDWkMsWUFBWSxFQUNaQyxhQUFhLEVBQ2JDLGdCQUFnQjtBQUFBLFNBR2hCQyxRQUFRLEVBQ1JDLGVBQWUsRUFDZkMsa0JBQWtCLEVBQ2xCQyxtQkFBbUI7QUFBQSxTQUVaQyxnQkFBZ0I7QUFBQSxTQUNoQkMsa0JBQWtCLEVBQUVDLGlCQUFpQjtBQUFBLFNBQ3JDQyxPQUFPO0FBQUEsT0FDVCxLQUFLQyxHQUFHO0FBQUEsU0FHYkMsT0FBTyxJQUFJQyx1QkFBdUI7QUFBQSxTQUczQkQsT0FBTyxJQUFJRSxjQUFjO0FBQUEsU0FDYkYsT0FBTyxJQUFJRyxrQkFBa0I7QUFBQSxTQUVoREgsT0FBTyxJQUFJSSwwQkFBMEI7QUFBQSxTQUk5QkosT0FBTyxJQUFJSyxlQUFlO0FBQUEsU0FDMUJMLE9BQU8sSUFBSU0sZ0JBQWdCO0FBQUEsU0FDM0JOLE9BQU8sSUFBSU8sb0JBQW9CO0FBQUEsU0FFdENDLFdBQVcsRUFDWEMsWUFBWSxFQUNaQyxZQUFZLEVBQ1pDLGlCQUFpQixFQUNqQkMsZ0JBQWdCLEVBQ2hCQyxvQkFBb0IsRUFDcEJDLFlBQVksRUFDWkMsYUFBYSxFQUNiQyxVQUFVLEVBQ1ZDLG9CQUFvQixFQUNwQkMsb0JBQW9CLEVBQ3BCQyxvQkFBb0I7QUFHdEIsU0FBU0MsU0FBU0EsQ0FBQ0MsSUFBYyxFQUFPO0VBQ3RDLE1BQU1DLGtCQUFrQixHQUFHLENBQ3pCZCxXQUFXLEVBQ1hDLFlBQVksRUFDWkMsWUFBWSxFQUNaQyxpQkFBaUIsRUFDakJDLGdCQUFnQixFQUNoQkUsWUFBWSxFQUNaQyxhQUFhLEVBQ2JGLG9CQUFvQixFQUNwQkcsVUFBVSxFQUNWQyxvQkFBb0IsRUFDcEJDLG9CQUFvQixFQUNwQkMsb0JBQW9CLEVBQ3BCO0lBQ0VJLEtBQUssRUFBRSxHQUFHO0lBQ1ZDLElBQUksRUFBRSw4QkFBOEI7SUFDcENDLElBQUksRUFBRSxTQUFTO0lBQ2ZDLElBQUksRUFBRUM7RUFDUixDQUFDLEVBQ0Q7SUFDRUgsSUFBSSxFQUFFLHFGQUFxRjtJQUMzRkMsSUFBSSxFQUFFLHVCQUF1QjtJQUM3QkMsSUFBSSxFQUFFRTtFQUNSLENBQUMsRUFDRDtJQUNFTCxLQUFLLEVBQUUsR0FBRztJQUNWQyxJQUFJLEVBQUUscUJBQXFCO0lBQzNCQyxJQUFJLEVBQUUsYUFBYTtJQUNuQkMsSUFBSSxFQUFFRTtFQUNSLENBQUMsQ0FDRjtFQUNELE1BQU1DLE9BQU8sR0FBR2xELGVBQWUsQ0FBQzJDLGtCQUFrQixFQUFFO0lBQ2xERCxJQUFJLEVBQUVBO0VBQ1IsQ0FBQyxDQUFDO0VBQ0YsT0FBT1EsT0FBTztBQUNoQjtBQUVBLFNBQVNDLFFBQVFBLENBQ2ZDLFdBQStCLEVBQy9CQyxXQUFtQixFQUNuQkMsT0FBZSxFQUNUO0VBQ05sQyxHQUFHLENBQUNtQyxLQUFLLENBQUNILFdBQVcsRUFBRSxHQUFHQyxXQUFXLFVBQVUsRUFBRUMsT0FBTyxDQUFDO0FBQzNEO0FBRUEsU0FBU0UsU0FBU0EsQ0FDaEJDLGVBQXVCLEVBQ3ZCUCxPQUFZLEVBQ1pRLFFBQWdCLEVBQ2hCQyxjQUFtQixFQUNYO0VBQ1IsSUFBSVQsT0FBTyxDQUFDVSxNQUFNLEVBQUU7SUFDbEIsTUFBTUMsU0FBUyxHQUFHekMsR0FBRyxDQUFDMEMsYUFBYSxDQUNqQ0wsZUFBZSxFQUNmLGtCQUFrQixFQUNsQlAsT0FBTyxDQUFDYSxNQUNWLENBQUM7SUFDRCxJQUNHTCxRQUFRLEtBQUssRUFBRSxJQUFJRyxTQUFTLEtBQUssRUFBRSxJQUNuQ0gsUUFBUSxLQUFLLENBQUMsSUFBSUcsU0FBUyxLQUFLLENBQUMsSUFBSUEsU0FBUyxLQUFLLEVBQUcsRUFDdkQ7TUFDQUgsUUFBUSxHQUFHRyxTQUFTO0lBQ3RCO0VBQ0Y7RUFDQSxJQUNFRyxnQkFBZ0IsQ0FBQ1AsZUFBZSxFQUFFUCxPQUFPLEVBQUVTLGNBQWMsQ0FBQyxLQUN6REQsUUFBUSxLQUFLLENBQUMsSUFBSUEsUUFBUSxLQUFLLEVBQUUsQ0FBQyxFQUNuQztJQUNBQSxRQUFRLEdBQUcsQ0FBQztFQUNkO0VBQ0EsT0FBT0EsUUFBUTtBQUNqQjtBQUVBLFNBQVNPLG9CQUFvQkEsQ0FDM0JDLElBQVMsRUFDVEMsT0FBMEIsRUFDMUJDLFFBQTZCLEVBQzdCQyxNQUEyQixFQUMzQkMsVUFBbUIsRUFDSjtFQUNmSCxPQUFPLENBQUNELElBQUksQ0FBQztFQUNiLElBQUksT0FBT0EsSUFBSSxLQUFLLFFBQVEsSUFBSUssTUFBTSxDQUFDQyxJQUFJLENBQUNOLElBQUksQ0FBQyxDQUFDTyxNQUFNLEtBQUssQ0FBQyxFQUFFO0lBQzlEO0lBQ0EsT0FBTyxJQUFJO0VBQ2I7RUFDQSxNQUFNQyxRQUFRLEdBQUdDLElBQUksQ0FBQ0MsU0FBUyxDQUFDVixJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztFQUM5QyxJQUFJLENBQUNJLFVBQVUsRUFBRTtJQUNmLE9BQU9JLFFBQVE7RUFDakIsQ0FBQyxNQUFNO0lBQ0wsTUFBTUcsYUFBZ0IsR0FBR1QsUUFBUSxDQUFDTSxRQUFRLENBQUM7SUFDM0MsT0FBT0wsTUFBTSxDQUFDUSxhQUFhLENBQUM7RUFDOUI7QUFDRjtBQUVBLGVBQWVDLFlBQVlBLENBQ3pCQyxhQUFxQixFQUNyQnRCLGVBQXVCLEVBQ3ZCdUIsYUFBb0IsRUFDcEJiLE9BQVksRUFDWmMsYUFBNkMsRUFDN0MvQixPQUFZLEVBQ1pnQyxhQUFtQixFQUNKO0VBQ2YsS0FBSyxNQUFNQyxhQUFhLElBQUloRSxPQUFPLENBQUM0RCxhQUFhLEVBQUVDLGFBQWEsQ0FBQyxFQUFFO0lBQ2pFLE1BQU1JLFFBQVEsR0FBR0QsYUFBYSxDQUFDQSxhQUFhLENBQUNWLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDeEQsSUFBSSxDQUFDVyxRQUFRLENBQUNDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRTtJQUNqQyxNQUFNQyxXQUFXLEdBQUdwRixJQUFJLENBQUNxRixJQUFJLENBQUNSLGFBQWEsRUFBRSxHQUFHSSxhQUFhLENBQUM7SUFDOUQsTUFBTUssT0FBTyxHQUFHdkYsRUFBRSxDQUFDd0YsWUFBWSxDQUFDSCxXQUFXLEVBQUU7TUFBRUksUUFBUSxFQUFFO0lBQU8sQ0FBQyxDQUFDO0lBQ2xFLElBQUl4QyxPQUFPLENBQUN5QyxPQUFPLEVBQUVDLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDLGtCQUFrQlAsV0FBVyxLQUFLLENBQUM7SUFDcEUsTUFBTXBCLElBQUksR0FBR1MsSUFBSSxDQUFDbUIsS0FBSyxDQUFDTixPQUFPLENBQUM7SUFDaEMsTUFBTU8sWUFBWSxHQUFHLENBQUM3QyxPQUFPLENBQUMsYUFBYSxDQUFDO0lBQzVDLE1BQU04QyxTQUFTLEdBQUcvQixvQkFBb0IsQ0FDcENDLElBQUksRUFDSkMsT0FBTyxFQUNQYyxhQUFhLENBQUNiLFFBQVEsRUFDdEJhLGFBQWEsQ0FBQ1osTUFBTSxFQUNwQjBCLFlBQ0YsQ0FBQztJQUVELElBQUlDLFNBQVMsS0FBSyxJQUFJLEVBQUU7TUFDdEIsTUFBTUMsYUFBYSxHQUFHL0YsSUFBSSxDQUFDcUYsSUFBSSxDQUFDOUIsZUFBZSxFQUFFLEdBQUcwQixhQUFhLENBQUM7TUFDbEVsRixFQUFFLENBQUNpRyxhQUFhLENBQUNoRyxJQUFJLENBQUNpRyxPQUFPLENBQUNGLGFBQWEsQ0FBQyxDQUFDO01BQzdDaEcsRUFBRSxDQUFDbUcsYUFBYSxDQUFDSCxhQUFhLEVBQUVELFNBQVMsRUFBRTtRQUFFTixRQUFRLEVBQUU7TUFBTyxDQUFDLENBQUM7TUFFaEUsSUFBSVIsYUFBYSxFQUFFO1FBQ2pCLE1BQU1BLGFBQWEsQ0FBQ2hCLElBQUksRUFBRVQsZUFBZSxFQUFFUCxPQUFPLENBQUM7TUFDckQ7SUFDRjtFQUNGO0FBQ0Y7QUFFQSxlQUFlbUQsb0JBQW9CQSxDQUFDbkQsT0FBWSxFQUFtQjtFQUNqRSxNQUFNSSxPQUFlLEdBQUdKLE9BQU8sQ0FBQ0ksT0FBTztFQUN2Q2dELElBQUksQ0FBQ0MsU0FBUyxDQUFDQyxNQUFNLEdBQUd0RixpQkFBaUI7RUFDekMsSUFBSXdDLFFBQVEsR0FBR1IsT0FBTyxDQUFDVSxNQUFNLEdBQUcsRUFBRSxHQUFHLENBQUM7RUFDdEMsTUFBTVIsV0FBVyxHQUFHRixPQUFPLENBQUNLLEtBQUssRUFBRWtELElBQUksQ0FBQyxDQUFDLENBQUNDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO0VBQzdELE1BQU1DLGVBQWUsR0FBRzdGLGtCQUFrQixDQUFDb0MsT0FBTyxDQUFDMEQsVUFBVSxDQUFDO0VBQzlELElBQUlDLGNBQWMsR0FBRzlGLG1CQUFtQixDQUFDSCxRQUFRLEVBQUVzQyxPQUFPLENBQUM0RCxXQUFXLENBQUM7RUFFdkUsSUFBSUgsZUFBZSxHQUFHOUYsZUFBZSxDQUFDa0csZ0JBQWdCLEVBQUU7SUFDdEQsS0FBSyxNQUFNQyxPQUFPLElBQUlILGNBQWMsQ0FBQ0ksZ0JBQWdCLEVBQUU7TUFDckQsTUFBTTVELFdBQVcsR0FBR25ELElBQUksQ0FBQ2dILFFBQVEsQ0FBQ0YsT0FBTyxDQUFDNUIsUUFBUSxFQUFFLE9BQU8sQ0FBQztNQUM1RCxJQUFJbEMsT0FBTyxDQUFDOEQsT0FBTyxJQUFJM0QsV0FBVyxLQUFLSCxPQUFPLENBQUM4RCxPQUFPLEVBQUU7UUFDdEQ7TUFDRjtNQUNBN0QsUUFBUSxDQUFDQyxXQUFXLEVBQUVDLFdBQVcsRUFBRUMsT0FBTyxDQUFDO01BRTNDLE1BQU15QixhQUFxQixHQUFHN0UsSUFBSSxDQUFDcUYsSUFBSSxDQUFDakMsT0FBTyxFQUFFRCxXQUFXLENBQUM7TUFDN0QsTUFBTUksZUFBdUIsR0FBR3NCLGFBQWEsR0FBRyxVQUFVO01BQzFELElBQUk3QixPQUFPLENBQUNpRSxJQUFJLEVBQUU7UUFDaEIvRixHQUFHLENBQUNnRyxZQUFZLENBQUMzRCxlQUFlLENBQUM7TUFDbkM7TUFFQTRELGdCQUFnQixDQUFDaEUsV0FBVyxFQUFFSCxPQUFPLENBQUM7TUFDdEMsTUFBTTRCLFlBQVksQ0FDaEJDLGFBQWEsRUFDYnRCLGVBQWUsRUFDZixDQUFDLFNBQVMsQ0FBQyxFQUNYdEQsV0FBVyxFQUNYO1FBQ0VpRSxRQUFRLEVBQUU5Qyx1QkFBdUIsQ0FBQ2dHLFFBQVE7UUFDMUNqRCxNQUFNLEVBQUUvQyx1QkFBdUIsQ0FBQ2lHO01BQ2xDLENBQUMsRUFDRHJFLE9BQ0YsQ0FBQztNQUNELE1BQU00QixZQUFZLENBQ2hCQyxhQUFhLEVBQ2J0QixlQUFlLEVBQ2YsQ0FBQyxTQUFTLENBQUMsRUFDWGxELFdBQVcsRUFDWDtRQUNFNkQsUUFBUSxFQUFFOUMsdUJBQXVCLENBQUNrRyxRQUFRO1FBQzFDbkQsTUFBTSxFQUFFL0MsdUJBQXVCLENBQUNtRztNQUNsQyxDQUFDLEVBQ0R2RSxPQUNGLENBQUM7TUFFRFEsUUFBUSxHQUFHRixTQUFTLENBQUNDLGVBQWUsRUFBRVAsT0FBTyxFQUFFUSxRQUFRLEVBQUUsQ0FDdkQsU0FBUyxFQUNULFNBQVMsQ0FDVixDQUFDO0lBQ0o7RUFDRjtFQUVBLElBQUlpRCxlQUFlLEdBQUc5RixlQUFlLENBQUM2RyxPQUFPLEVBQUU7SUFDN0MsS0FBSyxNQUFNVixPQUFPLElBQUlILGNBQWMsQ0FBQ2MsT0FBTyxFQUFFO01BQzVDLE1BQU10RSxXQUFXLEdBQUduRCxJQUFJLENBQUNnSCxRQUFRLENBQUNGLE9BQU8sQ0FBQzVCLFFBQVEsRUFBRSxPQUFPLENBQUM7TUFDNUQsSUFBSWxDLE9BQU8sQ0FBQzhELE9BQU8sSUFBSTNELFdBQVcsS0FBS0gsT0FBTyxDQUFDOEQsT0FBTyxFQUFFO1FBQ3REO01BQ0Y7TUFFQTdELFFBQVEsQ0FBQ0MsV0FBVyxFQUFFQyxXQUFXLEVBQUVDLE9BQU8sQ0FBQztNQUMzQytELGdCQUFnQixDQUFDaEUsV0FBVyxFQUFFSCxPQUFPLENBQUM7TUFDdEMsTUFBTTZCLGFBQXFCLEdBQUc3RSxJQUFJLENBQUNxRixJQUFJLENBQUNqQyxPQUFPLEVBQUVELFdBQVcsQ0FBQztNQUM3RCxNQUFNSSxlQUF1QixHQUFHc0IsYUFBYSxHQUFHLFVBQVU7TUFFMUQsTUFBTUQsWUFBWSxDQUNoQkMsYUFBYSxFQUNidEIsZUFBZSxFQUNmLEVBQUUsRUFDRmpELFlBQVksRUFDWjtRQUNFNEQsUUFBUSxFQUFFN0MsY0FBYyxDQUFDcUcsU0FBUztRQUNsQ3ZELE1BQU0sRUFBRTlDLGNBQWMsQ0FBQ3NHO01BQ3pCLENBQUMsRUFDRDNFLE9BQ0YsQ0FBQztNQUVEUSxRQUFRLEdBQUdGLFNBQVMsQ0FBQ0MsZUFBZSxFQUFFUCxPQUFPLEVBQUVRLFFBQVEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pFO0VBQ0Y7RUFFQSxJQUFJaUQsZUFBZSxHQUFHOUYsZUFBZSxDQUFDaUgsV0FBVyxFQUFFO0lBQ2pELEtBQUssTUFBTWQsT0FBTyxJQUFJSCxjQUFjLENBQUNrQixXQUFXLEVBQUU7TUFDaEQsTUFBTTFFLFdBQVcsR0FBR25ELElBQUksQ0FBQ2dILFFBQVEsQ0FBQ0YsT0FBTyxDQUFDNUIsUUFBUSxFQUFFLE9BQU8sQ0FBQztNQUM1RCxJQUFJbEMsT0FBTyxDQUFDOEQsT0FBTyxJQUFJM0QsV0FBVyxLQUFLSCxPQUFPLENBQUM4RCxPQUFPLEVBQUU7UUFDdEQ7TUFDRjtNQUVBN0QsUUFBUSxDQUFDQyxXQUFXLEVBQUVDLFdBQVcsRUFBRUMsT0FBTyxDQUFDO01BQzNDK0QsZ0JBQWdCLENBQUNoRSxXQUFXLEVBQUVILE9BQU8sQ0FBQztNQUN0QyxNQUFNNkIsYUFBcUIsR0FBRzdFLElBQUksQ0FBQ3FGLElBQUksQ0FBQ2pDLE9BQU8sRUFBRUQsV0FBVyxDQUFDO01BQzdELE1BQU1JLGVBQXVCLEdBQUdzQixhQUFhLEdBQUcsVUFBVTtNQUUxRCxNQUFNRCxZQUFZLENBQ2hCQyxhQUFhLEVBQ2J0QixlQUFlLEVBQ2YsRUFBRSxFQUNGckQsZUFBZSxFQUNmO1FBQ0VnRSxRQUFRLEVBQUU1QyxrQkFBa0IsQ0FBQ3dHLFlBQVk7UUFDekMzRCxNQUFNLEVBQUU3QyxrQkFBa0IsQ0FBQ3lHO01BQzdCLENBQUMsRUFDRC9FLE9BQ0YsQ0FBQztNQUVEUSxRQUFRLEdBQUdGLFNBQVMsQ0FBQ0MsZUFBZSxFQUFFUCxPQUFPLEVBQUVRLFFBQVEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pFO0VBQ0Y7RUFFQSxJQUFJaUQsZUFBZSxHQUFHOUYsZUFBZSxDQUFDcUgsbUJBQW1CLEVBQUU7SUFDekQsS0FBSyxNQUFNbEIsT0FBTyxJQUFJSCxjQUFjLENBQUNzQixtQkFBbUIsRUFBRTtNQUN4RCxNQUFNOUUsV0FBVyxHQUFHbkQsSUFBSSxDQUFDZ0gsUUFBUSxDQUFDRixPQUFPLENBQUM1QixRQUFRLEVBQUUsT0FBTyxDQUFDO01BQzVELElBQUlsQyxPQUFPLENBQUM4RCxPQUFPLElBQUkzRCxXQUFXLEtBQUtILE9BQU8sQ0FBQzhELE9BQU8sRUFBRTtRQUN0RDtNQUNGO01BRUE3RCxRQUFRLENBQUNDLFdBQVcsRUFBRUMsV0FBVyxFQUFFQyxPQUFPLENBQUM7TUFDM0MrRCxnQkFBZ0IsQ0FBQ2hFLFdBQVcsRUFBRUgsT0FBTyxDQUFDO01BQ3RDLE1BQU02QixhQUFxQixHQUFHN0UsSUFBSSxDQUFDcUYsSUFBSSxDQUFDakMsT0FBTyxFQUFFRCxXQUFXLENBQUM7TUFDN0QsTUFBTUksZUFBdUIsR0FBR3NCLGFBQWEsR0FBRyxVQUFVO01BRTFELE1BQU1ELFlBQVksQ0FDaEJDLGFBQWEsRUFDYnRCLGVBQWUsRUFDZixDQUFDLFdBQVcsQ0FBQyxFQUNicEQsdUJBQXVCLEVBQ3ZCO1FBQ0UrRCxRQUFRLEVBQUUzQywwQkFBMEIsQ0FBQzJHLFVBQVU7UUFDL0MvRCxNQUFNLEVBQUU1QywwQkFBMEIsQ0FBQzRHO01BQ3JDLENBQUMsRUFDRG5GLE9BQU8sRUFDUGxDLGdCQUNGLENBQUM7TUFDRCxNQUFNOEQsWUFBWSxDQUNoQkMsYUFBYSxFQUNidEIsZUFBZSxFQUNmLENBQUMsVUFBVSxDQUFDLEVBQ1puRCx5QkFBeUIsRUFDekI7UUFDRThELFFBQVEsRUFBRTNDLDBCQUEwQixDQUFDNkcsc0JBQXNCO1FBQzNEakUsTUFBTSxFQUFFNUMsMEJBQTBCLENBQUM4RztNQUNyQyxDQUFDLEVBQ0RyRixPQUNGLENBQUM7TUFFRFEsUUFBUSxHQUFHRixTQUFTLENBQUNDLGVBQWUsRUFBRVAsT0FBTyxFQUFFUSxRQUFRLEVBQUUsQ0FDdkQsV0FBVyxFQUNYLFVBQVUsQ0FDWCxDQUFDO0lBQ0o7RUFDRjtFQUVBLElBQUlpRCxlQUFlLEdBQUc5RixlQUFlLENBQUMySCxRQUFRLEVBQUU7SUFDOUMsS0FBSyxNQUFNeEIsT0FBTyxJQUFJSCxjQUFjLENBQUM0QixRQUFRLEVBQUU7TUFDN0MsTUFBTXBGLFdBQVcsR0FBR25ELElBQUksQ0FBQ2dILFFBQVEsQ0FBQ0YsT0FBTyxDQUFDNUIsUUFBUSxFQUFFLE9BQU8sQ0FBQztNQUM1RCxJQUFJbEMsT0FBTyxDQUFDOEQsT0FBTyxJQUFJM0QsV0FBVyxLQUFLSCxPQUFPLENBQUM4RCxPQUFPLEVBQUU7UUFDdEQ7TUFDRjtNQUVBN0QsUUFBUSxDQUFDQyxXQUFXLEVBQUVDLFdBQVcsRUFBRUMsT0FBTyxDQUFDO01BQzNDK0QsZ0JBQWdCLENBQUNoRSxXQUFXLEVBQUVILE9BQU8sQ0FBQztNQUN0QyxNQUFNNkIsYUFBcUIsR0FBRzdFLElBQUksQ0FBQ3FGLElBQUksQ0FBQ2pDLE9BQU8sRUFBRUQsV0FBVyxDQUFDO01BQzdELE1BQU1JLGVBQXVCLEdBQUdzQixhQUFhLEdBQUcsVUFBVTtNQUUxRCxNQUFNRCxZQUFZLENBQ2hCQyxhQUFhLEVBQ2J0QixlQUFlLEVBQ2YsRUFBRSxFQUNGaEQsWUFBWSxFQUNaO1FBQ0UyRCxRQUFRLEVBQUUxQyxlQUFlLENBQUNnSCxTQUFTO1FBQ25DckUsTUFBTSxFQUFFM0MsZUFBZSxDQUFDaUg7TUFDMUIsQ0FBQyxFQUNEekYsT0FDRixDQUFDO01BRURRLFFBQVEsR0FBR0YsU0FBUyxDQUFDQyxlQUFlLEVBQUVQLE9BQU8sRUFBRVEsUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakU7RUFDRjtFQUVBLElBQUlpRCxlQUFlLEdBQUc5RixlQUFlLENBQUMrSCxTQUFTLEVBQUU7SUFDL0MsS0FBSyxNQUFNNUIsT0FBTyxJQUFJcEcsUUFBUSxDQUFDaUksU0FBUyxFQUFFO01BQ3hDLE1BQU14RixXQUFXLEdBQUduRCxJQUFJLENBQUNnSCxRQUFRLENBQUNGLE9BQU8sQ0FBQzVCLFFBQVEsRUFBRSxPQUFPLENBQUM7TUFDNUQsSUFBSWxDLE9BQU8sQ0FBQzhELE9BQU8sSUFBSTNELFdBQVcsS0FBS0gsT0FBTyxDQUFDOEQsT0FBTyxFQUFFO1FBQ3REO01BQ0Y7TUFFQTdELFFBQVEsQ0FBQ0MsV0FBVyxFQUFFQyxXQUFXLEVBQUVDLE9BQU8sQ0FBQztNQUMzQytELGdCQUFnQixDQUFDaEUsV0FBVyxFQUFFSCxPQUFPLENBQUM7TUFDdEMsTUFBTTZCLGFBQXFCLEdBQUc3RSxJQUFJLENBQUNxRixJQUFJLENBQUNqQyxPQUFPLEVBQUVELFdBQVcsQ0FBQztNQUM3RCxNQUFNSSxlQUF1QixHQUFHc0IsYUFBYSxHQUFHLFVBQVU7TUFFMUQsTUFBTUQsWUFBWSxDQUNoQkMsYUFBYSxFQUNidEIsZUFBZSxFQUNmLEVBQUUsRUFDRi9DLGFBQWEsRUFDYjtRQUNFMEQsUUFBUSxFQUFFekMsZ0JBQWdCLENBQUNtSCxVQUFVO1FBQ3JDekUsTUFBTSxFQUFFMUMsZ0JBQWdCLENBQUNvSDtNQUMzQixDQUFDLEVBQ0Q3RixPQUNGLENBQUM7TUFFRFEsUUFBUSxHQUFHRixTQUFTLENBQUNDLGVBQWUsRUFBRVAsT0FBTyxFQUFFUSxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNqRTtFQUNGO0VBRUEsSUFBSWlELGVBQWUsR0FBRzlGLGVBQWUsQ0FBQ21JLG9CQUFvQixFQUFFO0lBQzFELEtBQUssTUFBTWhDLE9BQU8sSUFBSXBHLFFBQVEsQ0FBQ3FJLG9CQUFvQixFQUFFO01BQ25ELE1BQU01RixXQUFXLEdBQUduRCxJQUFJLENBQUNnSCxRQUFRLENBQUNGLE9BQU8sQ0FBQzVCLFFBQVEsRUFBRSxNQUFNLENBQUM7TUFDM0QsSUFBSWxDLE9BQU8sQ0FBQzhELE9BQU8sSUFBSTNELFdBQVcsS0FBS0gsT0FBTyxDQUFDOEQsT0FBTyxFQUFFO1FBQ3REO01BQ0Y7TUFFQTdELFFBQVEsQ0FBQ0MsV0FBVyxFQUFFQyxXQUFXLEVBQUVDLE9BQU8sQ0FBQztNQUMzQytELGdCQUFnQixDQUFDaEUsV0FBVyxFQUFFSCxPQUFPLENBQUM7TUFDdEMsTUFBTTZCLGFBQXFCLEdBQUc3RSxJQUFJLENBQUNxRixJQUFJLENBQUNqQyxPQUFPLEVBQUVELFdBQVcsQ0FBQztNQUM3RCxNQUFNSSxlQUF1QixHQUFHc0IsYUFBYSxHQUFHLFVBQVU7TUFFMUQsTUFBTUQsWUFBWSxDQUNoQkMsYUFBYSxFQUNidEIsZUFBZSxFQUNmLEVBQUUsRUFDRjlDLGdCQUFnQixFQUNoQjtRQUNFeUQsUUFBUSxFQUFFeEMsb0JBQW9CLENBQUNzSCxhQUFhO1FBQzVDN0UsTUFBTSxFQUFFekMsb0JBQW9CLENBQUN1SDtNQUMvQixDQUFDLEVBQ0RqRyxPQUNGLENBQUM7TUFFRFEsUUFBUSxHQUFHRixTQUFTLENBQUNDLGVBQWUsRUFBRVAsT0FBTyxFQUFFUSxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNqRTtFQUNGOztFQUVBO0VBQ0E0QyxJQUFJLENBQUNDLFNBQVMsQ0FBQ0MsTUFBTSxHQUFHdkYsa0JBQWtCO0VBRTFDLE9BQU95QyxRQUFRO0FBQ2pCO0FBRUEsU0FBUzJELGdCQUFnQkEsQ0FBQ2hFLFdBQW1CLEVBQUVILE9BQVksRUFBTztFQUNoRSxNQUFNSSxPQUFPLEdBQUdKLE9BQU8sQ0FBQ0ksT0FBTztFQUMvQixNQUFNeUIsYUFBcUIsR0FBRzdFLElBQUksQ0FBQ3FGLElBQUksQ0FBQ2pDLE9BQU8sRUFBRUQsV0FBVyxDQUFDO0VBQzdELE1BQU1JLGVBQXVCLEdBQUdzQixhQUFhLEdBQUcsVUFBVTtFQUMxRCxJQUFJLENBQUM3QixPQUFPLENBQUNrRyxNQUFNLEVBQUU7SUFDbkJ4RCxPQUFPLENBQUNDLEdBQUcsQ0FBQyx1QkFBdUJwQyxlQUFlLEdBQUcsQ0FBQztFQUN4RDtFQUNBeEQsRUFBRSxDQUFDaUcsYUFBYSxDQUFDekMsZUFBZSxDQUFDO0VBQ2pDLEtBQUssTUFBTTJCLFFBQVEsSUFBSW5GLEVBQUUsQ0FBQ29KLFdBQVcsQ0FBQzVGLGVBQWUsQ0FBQyxFQUFFO0lBQ3RELElBQUkyQixRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxFQUFFO01BQ3ZCO0lBQ0Y7SUFDQSxNQUFNa0UsUUFBUSxHQUFHcEosSUFBSSxDQUFDcUYsSUFBSSxDQUFDOUIsZUFBZSxFQUFFMkIsUUFBUSxDQUFDO0lBQ3JEbkYsRUFBRSxDQUFDc0osVUFBVSxDQUFDRCxRQUFRLENBQUM7RUFDekI7QUFDRjtBQUVBLFNBQVN0RixnQkFBZ0JBLENBQ3ZCd0YsYUFBcUIsRUFDckJ0RyxPQUFZLEVBQ1pTLGNBQW1CLEVBQ1Y7RUFDVCxJQUFJOEYsS0FBSyxHQUFHLEtBQUs7RUFDakIsSUFBSXZHLE9BQU8sQ0FBQ1UsTUFBTSxFQUFFO0lBQ2xCeEMsR0FBRyxDQUFDc0ksZUFBZSxDQUNqQkYsYUFBYSxFQUNiN0YsY0FBYyxFQUNkVCxPQUFPLENBQUMsdUJBQXVCLENBQ2pDLENBQUM7SUFDRCxLQUFLLE1BQU1hLE1BQU0sSUFBSWIsT0FBTyxDQUFDYSxNQUFNLElBQUksRUFBRSxFQUFFO01BQ3pDLElBQUk7UUFDRjNDLEdBQUcsQ0FBQ3VJLEdBQUcsQ0FBQ0gsYUFBYSxFQUFFLGdCQUFnQnpGLE1BQU0sVUFBVSxDQUFDO01BQzFELENBQUMsQ0FBQyxPQUFPNkYsWUFBWSxFQUFFO1FBQ3JCSCxLQUFLLEdBQUcsSUFBSTtNQUNkO0lBQ0Y7RUFDRjtFQUNBLE9BQU9BLEtBQUs7QUFDZDtBQUVBLFNBQVNJLElBQUlBLENBQUNuSCxJQUFTLEVBQW1CO0VBQ3hDLE1BQU1RLE9BQU8sR0FBR1QsU0FBUyxDQUFDQyxJQUFJLENBQUM7RUFDL0IsT0FBTzJELG9CQUFvQixDQUFDbkQsT0FBTyxDQUFDO0FBQ3RDOztBQUVBO0FBQ0EsSUFBSTRHLE9BQU8sQ0FBQ3BILElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQzJDLFFBQVEsQ0FBQywyQkFBMkIsQ0FBQyxFQUFFO0VBQ3pEd0UsSUFBSSxDQUFDQyxPQUFPLENBQUNwSCxJQUFJLENBQUMsQ0FBQ3FILElBQUksQ0FBQ0QsT0FBTyxDQUFDRSxJQUFJLENBQUM7QUFDdkMiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -159,14 +159,20 @@ function _downloadAndParse() {
159
159
  }
160
160
  return _context2.abrupt("return");
161
161
  case 2:
162
- if (!(((_options$legislature = options.legislature) === null || _options$legislature === void 0 ? void 0 : _options$legislature.toString()) !== document.legislature)) {
162
+ if (!["RAPP", "RINF"].includes(document.uid.substring(0, 4))) {
163
163
  _context2.next = 4;
164
164
  break;
165
165
  }
166
166
  return _context2.abrupt("return");
167
167
  case 4:
168
+ if (!(((_options$legislature = options.legislature) === null || _options$legislature === void 0 ? void 0 : _options$legislature.toString()) !== document.legislature)) {
169
+ _context2.next = 6;
170
+ break;
171
+ }
172
+ return _context2.abrupt("return");
173
+ case 6:
168
174
  if (!options.fetchDocuments) {
169
- _context2.next = 26;
175
+ _context2.next = 28;
170
176
  break;
171
177
  }
172
178
  dataDir = options.dataDir;
@@ -174,23 +180,23 @@ function _downloadAndParse() {
174
180
  documentDir = (0, _loaders.pathFromDocumentUid)("".concat(documentsDir, "/documents"), document.uid);
175
181
  documentFileDir = (0, _loaders.pathFromDocumentUid)(documentsFilesDir, document.uid);
176
182
  _fsExtra["default"].ensureDirSync(documentsFilesDir);
177
- _context2.next = 12;
183
+ _context2.next = 14;
178
184
  return processDocumentOrDivision(document, documentsFilesDir, options);
179
- case 12:
185
+ case 14:
180
186
  if (!options.parseDocuments) {
181
- _context2.next = 26;
187
+ _context2.next = 28;
182
188
  break;
183
189
  }
184
190
  documentPath = "".concat(documentDir, ".json");
185
191
  htmlPath = _path["default"].join(documentFileDir, "dyn-opendata.html");
186
192
  if (!_fsExtra["default"].existsSync(htmlPath)) {
187
- _context2.next = 26;
193
+ _context2.next = 28;
188
194
  break;
189
195
  }
190
196
  html = _fsExtra["default"].readFileSync(htmlPath, {
191
197
  encoding: "utf-8"
192
198
  });
193
- _context2.prev = 17;
199
+ _context2.prev = 19;
194
200
  parsedDocument = (0, _parsers.parseTexte)("https://www.assemblee-nationale.fr", html);
195
201
  if (parsedDocument && _fsExtra["default"].existsSync(documentPath)) {
196
202
  json = _fsExtra["default"].readFileSync(documentPath, {
@@ -200,18 +206,18 @@ function _downloadAndParse() {
200
206
  documentJson.subdivisions = parsedDocument === null || parsedDocument === void 0 ? void 0 : parsedDocument.subdivisions;
201
207
  _fsExtra["default"].writeFileSync(documentPath, JSON.stringify(documentJson, null, 2));
202
208
  }
203
- _context2.next = 26;
209
+ _context2.next = 28;
204
210
  break;
205
- case 22:
206
- _context2.prev = 22;
207
- _context2.t0 = _context2["catch"](17);
211
+ case 24:
212
+ _context2.prev = 24;
213
+ _context2.t0 = _context2["catch"](19);
208
214
  console.log("Unable to parse document ".concat(document.uid));
209
215
  return _context2.abrupt("return");
210
- case 26:
216
+ case 28:
211
217
  case "end":
212
218
  return _context2.stop();
213
219
  }
214
- }, _callee2, null, [[17, 22]]);
220
+ }, _callee2, null, [[19, 24]]);
215
221
  }));
216
222
  return _downloadAndParse.apply(this, arguments);
217
223
  }
@@ -538,4 +544,4 @@ if (process.argv[1].endsWith("retrieve_documents.ts")) {
538
544
  process.exit(1);
539
545
  });
540
546
  }
541
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYXNzZXJ0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfY29tbWFuZExpbmVBcmdzIiwiX2NyeXB0byIsIl9kYXRlRm5zIiwiX2ZzRXh0cmEiLCJfcGF0aCIsIl9kb3NzaWVyc19sZWdpc2xhdGlmcyIsImdpdCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX2xvYWRlcnMiLCJfcGFyc2VycyIsIl91cmxzIiwiX2NsaV9oZWxwZXJzIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCJTeW1ib2wiLCJpdGVyYXRvciIsIkFycmF5IiwiaXNBcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsImxlbmd0aCIsIl9uIiwiRiIsInMiLCJkb25lIiwidmFsdWUiLCJmIiwiVHlwZUVycm9yIiwibyIsIm5leHQiLCJfYXJyYXlMaWtlVG9BcnJheSIsInRvU3RyaW5nIiwic2xpY2UiLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJmcm9tIiwidGVzdCIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJwcm90b3R5cGUiLCJjIiwiYXN5bmNJdGVyYXRvciIsInRvU3RyaW5nVGFnIiwiZGVmaW5lIiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwid3JhcCIsIkdlbmVyYXRvciIsImNyZWF0ZSIsIkNvbnRleHQiLCJtYWtlSW52b2tlTWV0aG9kIiwidHJ5Q2F0Y2giLCJ0eXBlIiwiYXJnIiwiaCIsImwiLCJ5IiwiR2VuZXJhdG9yRnVuY3Rpb24iLCJHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSIsInAiLCJkIiwiZ2V0UHJvdG90eXBlT2YiLCJ2IiwidmFsdWVzIiwiZyIsImRlZmluZUl0ZXJhdG9yTWV0aG9kcyIsImZvckVhY2giLCJfaW52b2tlIiwiQXN5bmNJdGVyYXRvciIsImludm9rZSIsInJlc29sdmUiLCJfX2F3YWl0IiwidGhlbiIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwiRXJyb3IiLCJtZXRob2QiLCJkZWxlZ2F0ZSIsIm1heWJlSW52b2tlRGVsZWdhdGUiLCJzZW50IiwiX3NlbnQiLCJkaXNwYXRjaEV4Y2VwdGlvbiIsImFicnVwdCIsInJlc3VsdE5hbWUiLCJuZXh0TG9jIiwicHVzaFRyeUVudHJ5IiwidHJ5TG9jIiwiY2F0Y2hMb2MiLCJmaW5hbGx5TG9jIiwiYWZ0ZXJMb2MiLCJ0cnlFbnRyaWVzIiwicHVzaCIsInJlc2V0VHJ5RW50cnkiLCJjb21wbGV0aW9uIiwicmVzZXQiLCJpc05hTiIsImRpc3BsYXlOYW1lIiwiaXNHZW5lcmF0b3JGdW5jdGlvbiIsIm1hcmsiLCJzZXRQcm90b3R5cGVPZiIsImF3cmFwIiwiYXN5bmMiLCJQcm9taXNlIiwia2V5cyIsInJldmVyc2UiLCJwb3AiLCJwcmV2IiwiY2hhckF0Iiwic3RvcCIsInJ2YWwiLCJoYW5kbGUiLCJjb21wbGV0ZSIsImZpbmlzaCIsIl9jYXRjaCIsImRlbGVnYXRlWWllbGQiLCJhc3luY0dlbmVyYXRvclN0ZXAiLCJfYXN5bmNUb0dlbmVyYXRvciIsImFyZ3VtZW50cyIsImFwcGx5IiwiX25leHQiLCJfdGhyb3ciLCJwYXJzZUFyZ3MiLCJhcmd2Iiwib3B0aW9uc0RlZmluaXRpb25zIiwiY29tbWl0T3B0aW9uIiwibGVnaXNsYXR1cmVPcHRpb24iLCJyZW1vdGVPcHRpb24iLCJzaWxlbnRPcHRpb24iLCJ2ZXJib3NlT3B0aW9uIiwiZGF0YURpckRlZmF1bHRPcHRpb24iLCJwdWxsT3B0aW9uIiwiYWxpYXMiLCJoZWxwIiwiQm9vbGVhbiIsImRvY3VtZW50Rm9ybWF0T3B0aW9uIiwibXVsdGlwbGUiLCJTdHJpbmciLCJvcHRpb25zIiwiY29tbWFuZExpbmVBcmdzIiwidG9kYXkiLCJEYXRlIiwiZmV0Y2hXaXRoUmV0cnkiLCJfeCIsIl9mZXRjaFdpdGhSZXRyeSIsIl9jYWxsZWUiLCJ1cmwiLCJyZXRyaWVzIiwiYmFja29mZiIsImF0dGVtcHQiLCJfYXJncyIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJ1bmRlZmluZWQiLCJmZXRjaCIsInQwIiwiY29uc29sZSIsIndhcm4iLCJjb25jYXQiLCJzZXRUaW1lb3V0IiwiZG93bmxvYWRBbmRQYXJzZSIsIl94MiIsIl94MyIsIl94NCIsIl9kb3dubG9hZEFuZFBhcnNlIiwiX2NhbGxlZTIiLCJkb2N1bWVudCIsImRvY3VtZW50c0RpciIsIl9vcHRpb25zJGxlZ2lzbGF0dXJlIiwiZGF0YURpciIsImRvY3VtZW50c0ZpbGVzRGlyIiwiZG9jdW1lbnREaXIiLCJkb2N1bWVudEZpbGVEaXIiLCJkb2N1bWVudFBhdGgiLCJodG1sUGF0aCIsImh0bWwiLCJwYXJzZWREb2N1bWVudCIsImpzb24iLCJkb2N1bWVudEpzb24iLCJfY2FsbGVlMiQiLCJfY29udGV4dDIiLCJ1aWQiLCJzdWJzdHJpbmciLCJsZWdpc2xhdHVyZSIsImZldGNoRG9jdW1lbnRzIiwicGF0aCIsImpvaW4iLCJwYXRoRnJvbURvY3VtZW50VWlkIiwiZnMiLCJlbnN1cmVEaXJTeW5jIiwicHJvY2Vzc0RvY3VtZW50T3JEaXZpc2lvbiIsInBhcnNlRG9jdW1lbnRzIiwiZXhpc3RzU3luYyIsInJlYWRGaWxlU3luYyIsImVuY29kaW5nIiwicGFyc2VUZXh0ZSIsIkpTT04iLCJwYXJzZSIsInN1YmRpdmlzaW9ucyIsIndyaXRlRmlsZVN5bmMiLCJzdHJpbmdpZnkiLCJsb2ciLCJyZXRyaWV2ZURvY3VtZW50cyIsIl94NSIsIl9yZXRyaWV2ZURvY3VtZW50cyIsIl9jYWxsZWUzIiwiX2l0ZXJhdG9yIiwiX3N0ZXAiLCJmaWxlbmFtZSIsImZpcnN0VWlkIiwic2tpcCIsIl9pdGVyYXRvcjIiLCJfc3RlcDIiLCJfaXRlcmF0b3IzIiwiX3N0ZXAzIiwiZG9jdW1lbnRPckRpdmlzaW9uIiwiX2NhbGxlZTMkIiwiX2NvbnRleHQzIiwiYXNzZXJ0IiwiY29tbWl0IiwicHVsbCIsInJlc2V0QW5kUHVsbCIsImZ1bGwiLCJyZWFkZGlyU3luYyIsInJlbW92ZVN5bmMiLCJpdGVyTG9hZEFzc2VtYmxlZURvY3VtZW50cyIsIndhbGtEb2N1bWVudEFuZERpdmlzaW9ucyIsInQxIiwidDIiLCJjb21taXRBbmRQdXNoIiwicmVtb3RlIiwiX3g2IiwiX3g3IiwiX3g4IiwiX3Byb2Nlc3NEb2N1bWVudE9yRGl2aXNpb24iLCJfY2FsbGVlNCIsImZpbGVuYW1lQnlTaGEyNTYiLCJpbmRleFBhdGgiLCJpbmRleCIsIl9pdGVyYXRvcjQiLCJfc3RlcDQiLCJfbG9vcCIsIl9yZXQiLCJfY2FsbGVlNCQiLCJfY29udGV4dDUiLCJwYXRoRXhpc3RzU3luYyIsInJlYWRKc29uU3luYyIsIml0ZXJEb2N1bWVudE9yRGl2aXNpb25VcmxzIiwiX2RvY3VtZW50T3JEaXZpc2lvbiRjIiwiX2luZGV4JGZvcm1hdCIsIl9mb3JtYXRGaWxlc0luZm9zJGZpbiIsIl9kb2N1bWVudE9yRGl2aXNpb24kYzIiLCJfc3RlcDQkdmFsdWUiLCJmb3JtYXQiLCJmaWxlRXh0ZW5zaW9uIiwiZG9jdW1lbnRUeXBlIiwiZm9ybWF0RmlsZXNJbmZvcyIsImZpbGVJbmZvcyIsInJlc3BvbnNlIiwiZmlsZVBhdGgiLCJhcnJheUJ1ZmZlciIsImJ1ZmZlciIsInNoYTI1NiIsImV4aXN0aW5nRmlsZW5hbWUiLCJfbG9vcCQiLCJfY29udGV4dDQiLCJEb2N1bWVudFVybEZvcm1hdCIsIlBkZiIsInNwbGl0IiwiY2xhc3NpZmljYXRpb24iLCJjb2RlIiwiaW5jbHVkZXMiLCJmaW5kIiwiZmlsZSIsInN0YXR1cyIsImRpZmZlcmVuY2VJbkRheXMiLCJjeWNsZURlVmllIiwiY2hyb25vIiwiZGF0ZUNyZWF0aW9uIiwiZGF0ZURlcG90Iiwic2lsZW50Iiwib2siLCJCdWZmZXIiLCJzdWJhcnJheSIsInN0YXJ0c1dpdGgiLCJjcmVhdGVIYXNoIiwidXBkYXRlIiwiZGlnZXN0IiwiZXJyb3IiLCJtZXNzYWdlIiwic3RhdHVzVGV4dCIsIndyaXRlSnNvblN5bmMiLCJzcGFjZXMiLCJtYWluIiwicHJvY2VzcyIsImVuZHNXaXRoIiwiZXhpdENvZGUiLCJleGl0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvcmV0cmlldmVfZG9jdW1lbnRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSBcImFzc2VydFwiXG5pbXBvcnQgY29tbWFuZExpbmVBcmdzIGZyb20gXCJjb21tYW5kLWxpbmUtYXJnc1wiXG5pbXBvcnQgeyBjcmVhdGVIYXNoIH0gZnJvbSBcImNyeXB0b1wiXG5pbXBvcnQgeyBkaWZmZXJlbmNlSW5EYXlzIH0gZnJvbSBcImRhdGUtZm5zXCJcbmltcG9ydCBmcyBmcm9tIFwiZnMtZXh0cmFcIlxuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIlxuXG5pbXBvcnQge1xuICBEb2N1bWVudEZpbGVJbmZvcyxcbiAgRG9jdW1lbnRGaWxlc0luZGV4LFxuICB3YWxrRG9jdW1lbnRBbmREaXZpc2lvbnMsXG59IGZyb20gXCIuLi9kb3NzaWVyc19sZWdpc2xhdGlmc1wiXG5pbXBvcnQgKiBhcyBnaXQgZnJvbSBcIi4uL2dpdFwiXG5pbXBvcnQgeyBpdGVyTG9hZEFzc2VtYmxlZURvY3VtZW50cywgcGF0aEZyb21Eb2N1bWVudFVpZCB9IGZyb20gXCIuLi9sb2FkZXJzXCJcbmltcG9ydCB7IHBhcnNlVGV4dGUgfSBmcm9tIFwiLi4vcGFyc2Vyc1wiXG5pbXBvcnQgeyBEb2N1bWVudFVybEZvcm1hdCwgaXRlckRvY3VtZW50T3JEaXZpc2lvblVybHMgfSBmcm9tIFwiLi4vdXJsc1wiXG5pbXBvcnQge1xuICBjb21taXRPcHRpb24sXG4gIGRhdGFEaXJEZWZhdWx0T3B0aW9uLFxuICBsZWdpc2xhdHVyZU9wdGlvbixcbiAgcHVsbE9wdGlvbixcbiAgcmVtb3RlT3B0aW9uLFxuICBzaWxlbnRPcHRpb24sXG4gIHZlcmJvc2VPcHRpb24sXG4gIGRvY3VtZW50Rm9ybWF0T3B0aW9uLFxufSBmcm9tIFwiLi9zaGFyZWQvY2xpX2hlbHBlcnNcIlxuXG5mdW5jdGlvbiBwYXJzZUFyZ3MoYXJndjogc3RyaW5nW10pOiBhbnkge1xuICBjb25zdCBvcHRpb25zRGVmaW5pdGlvbnMgPSBbXG4gICAgY29tbWl0T3B0aW9uLFxuICAgIGxlZ2lzbGF0dXJlT3B0aW9uLFxuICAgIHJlbW90ZU9wdGlvbixcbiAgICBzaWxlbnRPcHRpb24sXG4gICAgdmVyYm9zZU9wdGlvbixcbiAgICBkYXRhRGlyRGVmYXVsdE9wdGlvbixcbiAgICBwdWxsT3B0aW9uLFxuICAgIHtcbiAgICAgIGFsaWFzOiBcImZcIixcbiAgICAgIGhlbHA6IFwicmV0cmlldmUgYWxsIGRvY3VtZW50cywgZXZlbiBhbHJlYWR5IHJldHJpZXZlZCBvbmVzXCIsXG4gICAgICBuYW1lOiBcImZ1bGxcIixcbiAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgfSxcbiAgICB7XG4gICAgICBhbGlhczogXCJuXCIsXG4gICAgICBoZWxwOiBcInRyeSB0byBhbHNvIHJldHJpZXZlIGRvY3VtZW50cyB0aGF0IHdlcmUgcHJldmlvdXNseSBub3QgZm91bmRcIixcbiAgICAgIG5hbWU6IFwibm90LWZvdW5kXCIsXG4gICAgICB0eXBlOiBCb29sZWFuLFxuICAgIH0sXG4gICAgZG9jdW1lbnRGb3JtYXRPcHRpb24sXG4gICAge1xuICAgICAgYWxpYXM6IFwiVFwiLFxuICAgICAgaGVscDogXCJ0eXBlIG9mIGRvY3VtZW50cyB0byByZXRyaWV2ZSAoZm9yIGV4YW1wbGU6IFBJT04pXCIsXG4gICAgICBtdWx0aXBsZTogdHJ1ZSxcbiAgICAgIG5hbWU6IFwiZG9jdW1lbnQtdHlwZVwiLFxuICAgICAgdHlwZTogU3RyaW5nLFxuICAgIH0sXG4gIF1cbiAgY29uc3Qgb3B0aW9ucyA9IGNvbW1hbmRMaW5lQXJncyhvcHRpb25zRGVmaW5pdGlvbnMsIHtcbiAgICBhcmd2OiBhcmd2LFxuICB9KVxuICByZXR1cm4gb3B0aW9uc1xufVxuXG5jb25zdCB0b2RheSA9IG5ldyBEYXRlKClcblxuYXN5bmMgZnVuY3Rpb24gZmV0Y2hXaXRoUmV0cnkoXG4gIHVybDogc3RyaW5nLFxuICByZXRyaWVzOiBudW1iZXIgPSAzLFxuICBiYWNrb2ZmOiBudW1iZXIgPSAzMDAsXG4pOiBQcm9taXNlPFJlc3BvbnNlPiB7XG4gIGZvciAobGV0IGF0dGVtcHQgPSAwOyBhdHRlbXB0IDwgcmV0cmllczsgYXR0ZW1wdCsrKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBhd2FpdCBmZXRjaCh1cmwpXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGlmIChhdHRlbXB0ID09PSByZXRyaWVzIC0gMSkge1xuICAgICAgICB0aHJvdyBlcnJvclxuICAgICAgfVxuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgRmV0Y2ggYXR0ZW1wdCAke2F0dGVtcHQgKyAxfSBmb3IgJHt1cmx9IGZhaWxlZC4gUmV0cnlpbmcgaW4gJHtiYWNrb2ZmfW1zLi4uYCxcbiAgICAgIClcbiAgICAgIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIGJhY2tvZmYpKVxuICAgICAgYmFja29mZiAqPSAyXG4gICAgfVxuICB9XG4gIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGZldGNoICR7dXJsfSBhZnRlciAke3JldHJpZXN9IGF0dGVtcHRzYClcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRvd25sb2FkQW5kUGFyc2UoXG4gIGRvY3VtZW50OiBhbnksXG4gIGRvY3VtZW50c0Rpcjogc3RyaW5nLFxuICBvcHRpb25zOiBhbnksXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgaWYgKGRvY3VtZW50LnVpZC5zdWJzdHJpbmcoNCwgNikgPT09IFwiU05cIikge1xuICAgIHJldHVyblxuICB9XG5cbiAgaWYgKG9wdGlvbnMubGVnaXNsYXR1cmU/LnRvU3RyaW5nKCkgIT09IGRvY3VtZW50LmxlZ2lzbGF0dXJlKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICBpZiAob3B0aW9ucy5mZXRjaERvY3VtZW50cykge1xuICAgIGNvbnN0IGRhdGFEaXIgPSBvcHRpb25zLmRhdGFEaXJcbiAgICBjb25zdCBkb2N1bWVudHNGaWxlc0RpciA9IHBhdGguam9pbihkYXRhRGlyLCBcIkRvY3VtZW50c1wiKVxuICAgIGNvbnN0IGRvY3VtZW50RGlyID0gcGF0aEZyb21Eb2N1bWVudFVpZChcbiAgICAgIGAke2RvY3VtZW50c0Rpcn0vZG9jdW1lbnRzYCxcbiAgICAgIGRvY3VtZW50LnVpZCxcbiAgICApXG4gICAgY29uc3QgZG9jdW1lbnRGaWxlRGlyID0gcGF0aEZyb21Eb2N1bWVudFVpZChkb2N1bWVudHNGaWxlc0RpciwgZG9jdW1lbnQudWlkKVxuXG4gICAgZnMuZW5zdXJlRGlyU3luYyhkb2N1bWVudHNGaWxlc0RpcilcbiAgICBhd2FpdCBwcm9jZXNzRG9jdW1lbnRPckRpdmlzaW9uKGRvY3VtZW50LCBkb2N1bWVudHNGaWxlc0Rpciwgb3B0aW9ucylcblxuICAgIGlmIChvcHRpb25zLnBhcnNlRG9jdW1lbnRzKSB7XG4gICAgICBjb25zdCBkb2N1bWVudFBhdGggPSBgJHtkb2N1bWVudERpcn0uanNvbmBcbiAgICAgIGNvbnN0IGh0bWxQYXRoID0gcGF0aC5qb2luKGRvY3VtZW50RmlsZURpciwgYGR5bi1vcGVuZGF0YS5odG1sYClcblxuICAgICAgaWYgKGZzLmV4aXN0c1N5bmMoaHRtbFBhdGgpKSB7XG4gICAgICAgIGNvbnN0IGh0bWwgPSBmcy5yZWFkRmlsZVN5bmMoaHRtbFBhdGgsIHsgZW5jb2Rpbmc6IFwidXRmLThcIiB9KVxuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IHBhcnNlZERvY3VtZW50ID0gcGFyc2VUZXh0ZShcbiAgICAgICAgICAgIFwiaHR0cHM6Ly93d3cuYXNzZW1ibGVlLW5hdGlvbmFsZS5mclwiLFxuICAgICAgICAgICAgaHRtbCxcbiAgICAgICAgICApXG4gICAgICAgICAgaWYgKHBhcnNlZERvY3VtZW50ICYmIGZzLmV4aXN0c1N5bmMoZG9jdW1lbnRQYXRoKSkge1xuICAgICAgICAgICAgY29uc3QganNvbiA9IGZzLnJlYWRGaWxlU3luYyhkb2N1bWVudFBhdGgsIHsgZW5jb2Rpbmc6IFwidXRmLThcIiB9KVxuICAgICAgICAgICAgY29uc3QgZG9jdW1lbnRKc29uID0gSlNPTi5wYXJzZShqc29uKVxuICAgICAgICAgICAgZG9jdW1lbnRKc29uLnN1YmRpdmlzaW9ucyA9IHBhcnNlZERvY3VtZW50Py5zdWJkaXZpc2lvbnNcbiAgICAgICAgICAgIGZzLndyaXRlRmlsZVN5bmMoXG4gICAgICAgICAgICAgIGRvY3VtZW50UGF0aCxcbiAgICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoZG9jdW1lbnRKc29uLCBudWxsLCAyKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgVW5hYmxlIHRvIHBhcnNlIGRvY3VtZW50ICR7ZG9jdW1lbnQudWlkfWApXG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gcmV0cmlldmVEb2N1bWVudHMob3B0aW9uczogYW55KTogUHJvbWlzZTxudW1iZXI+IHtcbiAgYXNzZXJ0KFxuICAgICFvcHRpb25zLmNvbW1pdCB8fCAhb3B0aW9ucy51aWQsXG4gICAgJ09wdGlvbnMgXCJjb21taXRcIiAmIFwidWlkXCIgYXJlIGluY29tcGF0aWJsZScsXG4gIClcblxuICBjb25zdCBkYXRhRGlyID0gb3B0aW9ucy5kYXRhRGlyXG4gIGNvbnN0IGRvY3VtZW50c0RpciA9IHBhdGguam9pbihkYXRhRGlyLCBcIkRvY3VtZW50c1wiKVxuICBpZiAob3B0aW9ucy5wdWxsKSB7XG4gICAgZ2l0LnJlc2V0QW5kUHVsbChkb2N1bWVudHNEaXIpXG4gIH1cbiAgZnMuZW5zdXJlRGlyU3luYyhkb2N1bWVudHNEaXIpXG5cbiAgaWYgKG9wdGlvbnMuZnVsbCAmJiAhb3B0aW9ucy51aWQpIHtcbiAgICBmb3IgKGNvbnN0IGZpbGVuYW1lIG9mIGZzLnJlYWRkaXJTeW5jKGRvY3VtZW50c0RpcikpIHtcbiAgICAgIGlmIChmaWxlbmFtZVswXSA9PT0gXCIuXCIpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGZzLnJlbW92ZVN5bmMocGF0aC5qb2luKGRvY3VtZW50c0RpciwgZmlsZW5hbWUpKVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGZpcnN0VWlkID0gb3B0aW9ucy51aWRcbiAgbGV0IHNraXAgPSBCb29sZWFuKGZpcnN0VWlkKVxuICBmb3IgKGNvbnN0IHsgZG9jdW1lbnQgfSBvZiBpdGVyTG9hZEFzc2VtYmxlZURvY3VtZW50cyhcbiAgICBkYXRhRGlyLFxuICAgIG9wdGlvbnMubGVnaXNsYXR1cmUsXG4gICkpIHtcbiAgICBmb3IgKGNvbnN0IGRvY3VtZW50T3JEaXZpc2lvbiBvZiB3YWxrRG9jdW1lbnRBbmREaXZpc2lvbnMoZG9jdW1lbnQpKSB7XG4gICAgICAvLyBJZ25vcmUgZG9jdW1lbnRzIGZyb20gU8OpbmF0LlxuICAgICAgaWYgKGRvY3VtZW50T3JEaXZpc2lvbi51aWQuc3Vic3RyaW5nKDQsIDYpID09PSBcIlNOXCIpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cblxuICAgICAgaWYgKHNraXApIHtcbiAgICAgICAgaWYgKGRvY3VtZW50T3JEaXZpc2lvbi51aWQgPT09IGZpcnN0VWlkKSB7XG4gICAgICAgICAgc2tpcCA9IGZhbHNlXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBhd2FpdCBwcm9jZXNzRG9jdW1lbnRPckRpdmlzaW9uKGRvY3VtZW50T3JEaXZpc2lvbiwgZG9jdW1lbnRzRGlyLCBvcHRpb25zKVxuICAgIH1cbiAgfVxuXG4gIGlmIChvcHRpb25zLmNvbW1pdCkge1xuICAgIHJldHVybiBnaXQuY29tbWl0QW5kUHVzaChkb2N1bWVudHNEaXIsIFwiTm91dmVsbGUgbW9pc3NvblwiLCBvcHRpb25zLnJlbW90ZSlcbiAgfVxuICByZXR1cm4gMFxufVxuXG5hc3luYyBmdW5jdGlvbiBwcm9jZXNzRG9jdW1lbnRPckRpdmlzaW9uKFxuICBkb2N1bWVudE9yRGl2aXNpb246IGFueSxcbiAgZG9jdW1lbnRzRGlyOiBzdHJpbmcsXG4gIG9wdGlvbnM6IGFueSxcbik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBkb2N1bWVudERpciA9IHBhdGhGcm9tRG9jdW1lbnRVaWQoZG9jdW1lbnRzRGlyLCBkb2N1bWVudE9yRGl2aXNpb24udWlkKVxuICBmcy5lbnN1cmVEaXJTeW5jKGRvY3VtZW50RGlyKVxuXG4gIGNvbnN0IGZpbGVuYW1lQnlTaGEyNTY6IHsgW2RpZ2VzdDogc3RyaW5nXTogc3RyaW5nIH0gPSB7fVxuICBjb25zdCBpbmRleFBhdGggPSBwYXRoLmpvaW4oZG9jdW1lbnREaXIsIFwiaW5kZXguanNvblwiKVxuICBjb25zdCBpbmRleCA9IChcbiAgICBmcy5wYXRoRXhpc3RzU3luYyhpbmRleFBhdGgpID8gZnMucmVhZEpzb25TeW5jKGluZGV4UGF0aCkgOiB7fVxuICApIGFzIERvY3VtZW50RmlsZXNJbmRleFxuXG4gIGZvciAoY29uc3QgeyBmb3JtYXQsIHR5cGUsIHVybCB9IG9mIGl0ZXJEb2N1bWVudE9yRGl2aXNpb25VcmxzKFxuICAgIGRvY3VtZW50T3JEaXZpc2lvbixcbiAgKSkge1xuICAgIGNvbnN0IGZpbGVuYW1lID0gYCR7dHlwZX0uJHtmb3JtYXQgPT09IERvY3VtZW50VXJsRm9ybWF0LlBkZiA/IFwicGRmXCIgOiBcImh0bWxcIn1gXG5cbiAgICAvLyBGaWx0ZXIgYnkgZmlsZSBleHRlbnNpb24gaWYgb3B0aW9uIGlzIHBhc3NlZFxuICAgIGNvbnN0IGZpbGVFeHRlbnNpb24gPSB1cmwuc3BsaXQoXCIuXCIpLnBvcCgpXG4gICAgaWYgKG9wdGlvbnMuZm9ybWF0ICYmIGZpbGVFeHRlbnNpb24gJiYgb3B0aW9ucy5mb3JtYXQgIT09IGZpbGVFeHRlbnNpb24pIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgb3B0aW9ucy5sZWdpc2xhdHVyZSAmJlxuICAgICAgb3B0aW9ucy5sZWdpc2xhdHVyZS50b1N0cmluZygpICE9PSBkb2N1bWVudE9yRGl2aXNpb24ubGVnaXNsYXR1cmVcbiAgICApIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuXG4gICAgLy8gRmlsdGVyIGJ5IGRvY3VtZW50IHR5cGUgaWYgb3B0aW9uIGlzIHBhc3NlZFxuICAgIGNvbnN0IGRvY3VtZW50VHlwZSA9IGRvY3VtZW50T3JEaXZpc2lvbi5jbGFzc2lmaWNhdGlvbj8udHlwZT8uY29kZVxuICAgIGlmIChcbiAgICAgIG9wdGlvbnNbXCJkb2N1bWVudC10eXBlXCJdICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICFvcHRpb25zW1wiZG9jdW1lbnQtdHlwZVwiXS5pbmNsdWRlcyhkb2N1bWVudFR5cGUpXG4gICAgKSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cblxuICAgIGxldCBmb3JtYXRGaWxlc0luZm9zID0gaW5kZXhbZm9ybWF0XSA/PyAoaW5kZXhbZm9ybWF0XSA9IFtdKVxuICAgIGxldCBmaWxlSW5mb3MgPVxuICAgICAgZm9ybWF0RmlsZXNJbmZvcy5maW5kKChmaWxlKSA9PiBmaWxlLnVybCA9PT0gdXJsKSA/P1xuICAgICAgKHt9IGFzIERvY3VtZW50RmlsZUluZm9zKVxuICAgIGlmICghZm9ybWF0RmlsZXNJbmZvcy5pbmNsdWRlcyhmaWxlSW5mb3MpKSB7XG4gICAgICBmb3JtYXRGaWxlc0luZm9zLnB1c2goZmlsZUluZm9zKVxuICAgIH1cbiAgICBmaWxlSW5mb3MudXJsID0gdXJsXG5cbiAgICBpZiAoZmlsZUluZm9zLnN0YXR1cyA9PT0gMjAwICYmICFvcHRpb25zLmZ1bGwpIHtcbiAgICAgIGZpbGVuYW1lQnlTaGEyNTZbZmlsZUluZm9zLnNoYTI1NiBhcyBzdHJpbmddID0gZmlsZW5hbWVcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGlmIChcbiAgICAgIGZpbGVJbmZvcy5zdGF0dXMgPT09IDQwNCAmJlxuICAgICAgIW9wdGlvbnNbXCJub3QtZm91bmRcIl0gJiZcbiAgICAgIGRpZmZlcmVuY2VJbkRheXMoXG4gICAgICAgIHRvZGF5LFxuICAgICAgICBkb2N1bWVudE9yRGl2aXNpb24uY3ljbGVEZVZpZS5jaHJvbm8uZGF0ZUNyZWF0aW9uID8/XG4gICAgICAgICAgKGRvY3VtZW50T3JEaXZpc2lvbi5jeWNsZURlVmllLmNocm9uby5kYXRlRGVwb3QgYXMgRGF0ZSB8IHN0cmluZyksXG4gICAgICApID4gMTBcbiAgICApIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuXG4gICAgaWYgKCFvcHRpb25zLnNpbGVudCkge1xuICAgICAgY29uc29sZS5sb2coXG4gICAgICAgIGBSZXRyaWV2aW5nIGRvY3VtZW50IG9yIGRpdmlzaW9uICR7ZG9jdW1lbnRPckRpdmlzaW9uLnVpZH0gYXQgJHt1cmx94oCmYCxcbiAgICAgIClcbiAgICB9XG5cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoV2l0aFJldHJ5KHVybClcbiAgICBjb25zdCBmaWxlUGF0aCA9IHBhdGguam9pbihkb2N1bWVudERpciwgZmlsZW5hbWUpXG5cbiAgICBpZiAocmVzcG9uc2Uub2spIHtcbiAgICAgIGNvbnN0IGFycmF5QnVmZmVyID0gYXdhaXQgcmVzcG9uc2UuYXJyYXlCdWZmZXIoKVxuICAgICAgY29uc3QgYnVmZmVyID0gQnVmZmVyLmZyb20oYXJyYXlCdWZmZXIpXG4gICAgICBpZiAoXG4gICAgICAgIGZvcm1hdCA9PT0gRG9jdW1lbnRVcmxGb3JtYXQuUGRmICYmXG4gICAgICAgICFidWZmZXIuc3ViYXJyYXkoMCwgNCkudG9TdHJpbmcoKS5zdGFydHNXaXRoKFwiJVBERlwiKVxuICAgICAgKSB7XG4gICAgICAgIC8vIEluc3RlYWQgb2YgYSBQREYsIHRoZSByZWNlaXZlZCBkYXRhIG1heSBiZSBhbiBIVE1MIHBhZ2Ugd2l0aCBhIG1lc3NhZ2UgbGlrZVxuICAgICAgICAvLyBcIkRvY3VtZW50IG5vbiBlbmNvcmUgcHVibGnDqVwiLlxuICAgICAgICBpZiAoIW9wdGlvbnMuc2lsZW50KSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKGAgIFBERiBcIiR7dXJsfVwiIG5vdCBmb3VuZC5gKVxuICAgICAgICB9XG4gICAgICAgIGZzLnJlbW92ZVN5bmMoZmlsZVBhdGgpXG4gICAgICAgIGRlbGV0ZSBmaWxlSW5mb3MuZmlsZW5hbWVcbiAgICAgICAgZGVsZXRlIGZpbGVJbmZvcy5zaGEyNTZcbiAgICAgICAgZmlsZUluZm9zLnN0YXR1cyA9IDQwNFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3Qgc2hhMjU2ID0gY3JlYXRlSGFzaChcInNoYTI1NlwiKS51cGRhdGUoYnVmZmVyKS5kaWdlc3QoXCJoZXhcIilcbiAgICAgICAgY29uc3QgZXhpc3RpbmdGaWxlbmFtZSA9IGZpbGVuYW1lQnlTaGEyNTZbc2hhMjU2XVxuICAgICAgICBpZiAoZXhpc3RpbmdGaWxlbmFtZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgZnMud3JpdGVGaWxlU3luYyhmaWxlUGF0aCwgYnVmZmVyLCB7XG4gICAgICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICAgICAgfSlcbiAgICAgICAgICBmaWxlSW5mb3MuZmlsZW5hbWUgPSBmaWxlbmFtZVxuICAgICAgICAgIGZpbGVuYW1lQnlTaGEyNTZbc2hhMjU2XSA9IGZpbGVuYW1lXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZmlsZUluZm9zLmZpbGVuYW1lID0gZXhpc3RpbmdGaWxlbmFtZVxuICAgICAgICB9XG4gICAgICAgIGZpbGVJbmZvcy5zaGEyNTYgPSBzaGEyNTZcbiAgICAgICAgZmlsZUluZm9zLnN0YXR1cyA9IHJlc3BvbnNlLnN0YXR1c1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSA0MDQpIHtcbiAgICAgICAgaWYgKCFvcHRpb25zLnNpbGVudCkge1xuICAgICAgICAgIGNvbnNvbGUud2FybihgICBQYWdlIFwiJHt1cmx9XCIgbm90IGZvdW5kLmApXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgYCAgRXJyb3I6XFxuJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgIHsgY29kZTogcmVzcG9uc2Uuc3RhdHVzLCBtZXNzYWdlOiByZXNwb25zZS5zdGF0dXNUZXh0IH0sXG4gICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgMixcbiAgICAgICAgICApfWAsXG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIGZzLnJlbW92ZVN5bmMoZmlsZVBhdGgpXG4gICAgICBkZWxldGUgZmlsZUluZm9zLmZpbGVuYW1lXG4gICAgICBkZWxldGUgZmlsZUluZm9zLnNoYTI1NlxuICAgICAgZmlsZUluZm9zLnN0YXR1cyA9IHJlc3BvbnNlLnN0YXR1c1xuICAgIH1cbiAgfVxuXG4gIGZzLndyaXRlSnNvblN5bmMoaW5kZXhQYXRoLCBpbmRleCwgeyBlbmNvZGluZzogXCJ1dGYtOFwiLCBzcGFjZXM6IDIgfSlcbn1cblxuZnVuY3Rpb24gbWFpbihhcmd2OiBhbnkpOiBQcm9taXNlPG51bWJlcj4ge1xuICBjb25zdCBvcHRpb25zID0gcGFyc2VBcmdzKGFyZ3YpXG4gIHJldHVybiByZXRyaWV2ZURvY3VtZW50cyhvcHRpb25zKVxufVxuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbmlmIChwcm9jZXNzLmFyZ3ZbMV0uZW5kc1dpdGgoXCJyZXRyaWV2ZV9kb2N1bWVudHMudHNcIikpIHtcbiAgbWFpbihwcm9jZXNzLmFyZ3YpXG4gICAgLnRoZW4oKGV4aXRDb2RlKSA9PiBwcm9jZXNzLmV4aXQoZXhpdENvZGUpKVxuICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKGVycm9yKVxuICAgICAgcHJvY2Vzcy5leGl0KDEpXG4gICAgfSlcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsT0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsZ0JBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLE9BQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLFFBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLFFBQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLEtBQUEsR0FBQU4sc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFNLHFCQUFBLEdBQUFOLE9BQUE7QUFLQSxJQUFBTyxHQUFBLEdBQUFDLHVCQUFBLENBQUFSLE9BQUE7QUFDQSxJQUFBUyxRQUFBLEdBQUFULE9BQUE7QUFDQSxJQUFBVSxRQUFBLEdBQUFWLE9BQUE7QUFDQSxJQUFBVyxLQUFBLEdBQUFYLE9BQUE7QUFDQSxJQUFBWSxZQUFBLEdBQUFaLE9BQUE7QUFTNkIsU0FBQWEseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFOLHdCQUFBTSxDQUFBLEVBQUFFLENBQUEsU0FBQUEsQ0FBQSxJQUFBRixDQUFBLElBQUFBLENBQUEsQ0FBQUksVUFBQSxTQUFBSixDQUFBLGVBQUFBLENBQUEsZ0JBQUFLLE9BQUEsQ0FBQUwsQ0FBQSwwQkFBQUEsQ0FBQSxzQkFBQUEsQ0FBQSxRQUFBRyxDQUFBLEdBQUFKLHdCQUFBLENBQUFHLENBQUEs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
547
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYXNzZXJ0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfY29tbWFuZExpbmVBcmdzIiwiX2NyeXB0byIsIl9kYXRlRm5zIiwiX2ZzRXh0cmEiLCJfcGF0aCIsIl9kb3NzaWVyc19sZWdpc2xhdGlmcyIsImdpdCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX2xvYWRlcnMiLCJfcGFyc2VycyIsIl91cmxzIiwiX2NsaV9oZWxwZXJzIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCJTeW1ib2wiLCJpdGVyYXRvciIsIkFycmF5IiwiaXNBcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsImxlbmd0aCIsIl9uIiwiRiIsInMiLCJkb25lIiwidmFsdWUiLCJmIiwiVHlwZUVycm9yIiwibyIsIm5leHQiLCJfYXJyYXlMaWtlVG9BcnJheSIsInRvU3RyaW5nIiwic2xpY2UiLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJmcm9tIiwidGVzdCIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJwcm90b3R5cGUiLCJjIiwiYXN5bmNJdGVyYXRvciIsInRvU3RyaW5nVGFnIiwiZGVmaW5lIiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwid3JhcCIsIkdlbmVyYXRvciIsImNyZWF0ZSIsIkNvbnRleHQiLCJtYWtlSW52b2tlTWV0aG9kIiwidHJ5Q2F0Y2giLCJ0eXBlIiwiYXJnIiwiaCIsImwiLCJ5IiwiR2VuZXJhdG9yRnVuY3Rpb24iLCJHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSIsInAiLCJkIiwiZ2V0UHJvdG90eXBlT2YiLCJ2IiwidmFsdWVzIiwiZyIsImRlZmluZUl0ZXJhdG9yTWV0aG9kcyIsImZvckVhY2giLCJfaW52b2tlIiwiQXN5bmNJdGVyYXRvciIsImludm9rZSIsInJlc29sdmUiLCJfX2F3YWl0IiwidGhlbiIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwiRXJyb3IiLCJtZXRob2QiLCJkZWxlZ2F0ZSIsIm1heWJlSW52b2tlRGVsZWdhdGUiLCJzZW50IiwiX3NlbnQiLCJkaXNwYXRjaEV4Y2VwdGlvbiIsImFicnVwdCIsInJlc3VsdE5hbWUiLCJuZXh0TG9jIiwicHVzaFRyeUVudHJ5IiwidHJ5TG9jIiwiY2F0Y2hMb2MiLCJmaW5hbGx5TG9jIiwiYWZ0ZXJMb2MiLCJ0cnlFbnRyaWVzIiwicHVzaCIsInJlc2V0VHJ5RW50cnkiLCJjb21wbGV0aW9uIiwicmVzZXQiLCJpc05hTiIsImRpc3BsYXlOYW1lIiwiaXNHZW5lcmF0b3JGdW5jdGlvbiIsIm1hcmsiLCJzZXRQcm90b3R5cGVPZiIsImF3cmFwIiwiYXN5bmMiLCJQcm9taXNlIiwia2V5cyIsInJldmVyc2UiLCJwb3AiLCJwcmV2IiwiY2hhckF0Iiwic3RvcCIsInJ2YWwiLCJoYW5kbGUiLCJjb21wbGV0ZSIsImZpbmlzaCIsIl9jYXRjaCIsImRlbGVnYXRlWWllbGQiLCJhc3luY0dlbmVyYXRvclN0ZXAiLCJfYXN5bmNUb0dlbmVyYXRvciIsImFyZ3VtZW50cyIsImFwcGx5IiwiX25leHQiLCJfdGhyb3ciLCJwYXJzZUFyZ3MiLCJhcmd2Iiwib3B0aW9uc0RlZmluaXRpb25zIiwiY29tbWl0T3B0aW9uIiwibGVnaXNsYXR1cmVPcHRpb24iLCJyZW1vdGVPcHRpb24iLCJzaWxlbnRPcHRpb24iLCJ2ZXJib3NlT3B0aW9uIiwiZGF0YURpckRlZmF1bHRPcHRpb24iLCJwdWxsT3B0aW9uIiwiYWxpYXMiLCJoZWxwIiwiQm9vbGVhbiIsImRvY3VtZW50Rm9ybWF0T3B0aW9uIiwibXVsdGlwbGUiLCJTdHJpbmciLCJvcHRpb25zIiwiY29tbWFuZExpbmVBcmdzIiwidG9kYXkiLCJEYXRlIiwiZmV0Y2hXaXRoUmV0cnkiLCJfeCIsIl9mZXRjaFdpdGhSZXRyeSIsIl9jYWxsZWUiLCJ1cmwiLCJyZXRyaWVzIiwiYmFja29mZiIsImF0dGVtcHQiLCJfYXJncyIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJ1bmRlZmluZWQiLCJmZXRjaCIsInQwIiwiY29uc29sZSIsIndhcm4iLCJjb25jYXQiLCJzZXRUaW1lb3V0IiwiZG93bmxvYWRBbmRQYXJzZSIsIl94MiIsIl94MyIsIl94NCIsIl9kb3dubG9hZEFuZFBhcnNlIiwiX2NhbGxlZTIiLCJkb2N1bWVudCIsImRvY3VtZW50c0RpciIsIl9vcHRpb25zJGxlZ2lzbGF0dXJlIiwiZGF0YURpciIsImRvY3VtZW50c0ZpbGVzRGlyIiwiZG9jdW1lbnREaXIiLCJkb2N1bWVudEZpbGVEaXIiLCJkb2N1bWVudFBhdGgiLCJodG1sUGF0aCIsImh0bWwiLCJwYXJzZWREb2N1bWVudCIsImpzb24iLCJkb2N1bWVudEpzb24iLCJfY2FsbGVlMiQiLCJfY29udGV4dDIiLCJ1aWQiLCJzdWJzdHJpbmciLCJpbmNsdWRlcyIsImxlZ2lzbGF0dXJlIiwiZmV0Y2hEb2N1bWVudHMiLCJwYXRoIiwiam9pbiIsInBhdGhGcm9tRG9jdW1lbnRVaWQiLCJmcyIsImVuc3VyZURpclN5bmMiLCJwcm9jZXNzRG9jdW1lbnRPckRpdmlzaW9uIiwicGFyc2VEb2N1bWVudHMiLCJleGlzdHNTeW5jIiwicmVhZEZpbGVTeW5jIiwiZW5jb2RpbmciLCJwYXJzZVRleHRlIiwiSlNPTiIsInBhcnNlIiwic3ViZGl2aXNpb25zIiwid3JpdGVGaWxlU3luYyIsInN0cmluZ2lmeSIsImxvZyIsInJldHJpZXZlRG9jdW1lbnRzIiwiX3g1IiwiX3JldHJpZXZlRG9jdW1lbnRzIiwiX2NhbGxlZTMiLCJfaXRlcmF0b3IiLCJfc3RlcCIsImZpbGVuYW1lIiwiZmlyc3RVaWQiLCJza2lwIiwiX2l0ZXJhdG9yMiIsIl9zdGVwMiIsIl9pdGVyYXRvcjMiLCJfc3RlcDMiLCJkb2N1bWVudE9yRGl2aXNpb24iLCJfY2FsbGVlMyQiLCJfY29udGV4dDMiLCJhc3NlcnQiLCJjb21taXQiLCJwdWxsIiwicmVzZXRBbmRQdWxsIiwiZnVsbCIsInJlYWRkaXJTeW5jIiwicmVtb3ZlU3luYyIsIml0ZXJMb2FkQXNzZW1ibGVlRG9jdW1lbnRzIiwid2Fsa0RvY3VtZW50QW5kRGl2aXNpb25zIiwidDEiLCJ0MiIsImNvbW1pdEFuZFB1c2giLCJyZW1vdGUiLCJfeDYiLCJfeDciLCJfeDgiLCJfcHJvY2Vzc0RvY3VtZW50T3JEaXZpc2lvbiIsIl9jYWxsZWU0IiwiZmlsZW5hbWVCeVNoYTI1NiIsImluZGV4UGF0aCIsImluZGV4IiwiX2l0ZXJhdG9yNCIsIl9zdGVwNCIsIl9sb29wIiwiX3JldCIsIl9jYWxsZWU0JCIsIl9jb250ZXh0NSIsInBhdGhFeGlzdHNTeW5jIiwicmVhZEpzb25TeW5jIiwiaXRlckRvY3VtZW50T3JEaXZpc2lvblVybHMiLCJfZG9jdW1lbnRPckRpdmlzaW9uJGMiLCJfaW5kZXgkZm9ybWF0IiwiX2Zvcm1hdEZpbGVzSW5mb3MkZmluIiwiX2RvY3VtZW50T3JEaXZpc2lvbiRjMiIsIl9zdGVwNCR2YWx1ZSIsImZvcm1hdCIsImZpbGVFeHRlbnNpb24iLCJkb2N1bWVudFR5cGUiLCJmb3JtYXRGaWxlc0luZm9zIiwiZmlsZUluZm9zIiwicmVzcG9uc2UiLCJmaWxlUGF0aCIsImFycmF5QnVmZmVyIiwiYnVmZmVyIiwic2hhMjU2IiwiZXhpc3RpbmdGaWxlbmFtZSIsIl9sb29wJCIsIl9jb250ZXh0NCIsIkRvY3VtZW50VXJsRm9ybWF0IiwiUGRmIiwic3BsaXQiLCJjbGFzc2lmaWNhdGlvbiIsImNvZGUiLCJmaW5kIiwiZmlsZSIsInN0YXR1cyIsImRpZmZlcmVuY2VJbkRheXMiLCJjeWNsZURlVmllIiwiY2hyb25vIiwiZGF0ZUNyZWF0aW9uIiwiZGF0ZURlcG90Iiwic2lsZW50Iiwib2siLCJCdWZmZXIiLCJzdWJhcnJheSIsInN0YXJ0c1dpdGgiLCJjcmVhdGVIYXNoIiwidXBkYXRlIiwiZGlnZXN0IiwiZXJyb3IiLCJtZXNzYWdlIiwic3RhdHVzVGV4dCIsIndyaXRlSnNvblN5bmMiLCJzcGFjZXMiLCJtYWluIiwicHJvY2VzcyIsImVuZHNXaXRoIiwiZXhpdENvZGUiLCJleGl0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvcmV0cmlldmVfZG9jdW1lbnRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSBcImFzc2VydFwiXG5pbXBvcnQgY29tbWFuZExpbmVBcmdzIGZyb20gXCJjb21tYW5kLWxpbmUtYXJnc1wiXG5pbXBvcnQgeyBjcmVhdGVIYXNoIH0gZnJvbSBcImNyeXB0b1wiXG5pbXBvcnQgeyBkaWZmZXJlbmNlSW5EYXlzIH0gZnJvbSBcImRhdGUtZm5zXCJcbmltcG9ydCBmcyBmcm9tIFwiZnMtZXh0cmFcIlxuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIlxuXG5pbXBvcnQge1xuICBEb2N1bWVudEZpbGVJbmZvcyxcbiAgRG9jdW1lbnRGaWxlc0luZGV4LFxuICB3YWxrRG9jdW1lbnRBbmREaXZpc2lvbnMsXG59IGZyb20gXCIuLi9kb3NzaWVyc19sZWdpc2xhdGlmc1wiXG5pbXBvcnQgKiBhcyBnaXQgZnJvbSBcIi4uL2dpdFwiXG5pbXBvcnQgeyBpdGVyTG9hZEFzc2VtYmxlZURvY3VtZW50cywgcGF0aEZyb21Eb2N1bWVudFVpZCB9IGZyb20gXCIuLi9sb2FkZXJzXCJcbmltcG9ydCB7IHBhcnNlVGV4dGUgfSBmcm9tIFwiLi4vcGFyc2Vyc1wiXG5pbXBvcnQgeyBEb2N1bWVudFVybEZvcm1hdCwgaXRlckRvY3VtZW50T3JEaXZpc2lvblVybHMgfSBmcm9tIFwiLi4vdXJsc1wiXG5pbXBvcnQge1xuICBjb21taXRPcHRpb24sXG4gIGRhdGFEaXJEZWZhdWx0T3B0aW9uLFxuICBsZWdpc2xhdHVyZU9wdGlvbixcbiAgcHVsbE9wdGlvbixcbiAgcmVtb3RlT3B0aW9uLFxuICBzaWxlbnRPcHRpb24sXG4gIHZlcmJvc2VPcHRpb24sXG4gIGRvY3VtZW50Rm9ybWF0T3B0aW9uLFxufSBmcm9tIFwiLi9zaGFyZWQvY2xpX2hlbHBlcnNcIlxuXG5mdW5jdGlvbiBwYXJzZUFyZ3MoYXJndjogc3RyaW5nW10pOiBhbnkge1xuICBjb25zdCBvcHRpb25zRGVmaW5pdGlvbnMgPSBbXG4gICAgY29tbWl0T3B0aW9uLFxuICAgIGxlZ2lzbGF0dXJlT3B0aW9uLFxuICAgIHJlbW90ZU9wdGlvbixcbiAgICBzaWxlbnRPcHRpb24sXG4gICAgdmVyYm9zZU9wdGlvbixcbiAgICBkYXRhRGlyRGVmYXVsdE9wdGlvbixcbiAgICBwdWxsT3B0aW9uLFxuICAgIHtcbiAgICAgIGFsaWFzOiBcImZcIixcbiAgICAgIGhlbHA6IFwicmV0cmlldmUgYWxsIGRvY3VtZW50cywgZXZlbiBhbHJlYWR5IHJldHJpZXZlZCBvbmVzXCIsXG4gICAgICBuYW1lOiBcImZ1bGxcIixcbiAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgfSxcbiAgICB7XG4gICAgICBhbGlhczogXCJuXCIsXG4gICAgICBoZWxwOiBcInRyeSB0byBhbHNvIHJldHJpZXZlIGRvY3VtZW50cyB0aGF0IHdlcmUgcHJldmlvdXNseSBub3QgZm91bmRcIixcbiAgICAgIG5hbWU6IFwibm90LWZvdW5kXCIsXG4gICAgICB0eXBlOiBCb29sZWFuLFxuICAgIH0sXG4gICAgZG9jdW1lbnRGb3JtYXRPcHRpb24sXG4gICAge1xuICAgICAgYWxpYXM6IFwiVFwiLFxuICAgICAgaGVscDogXCJ0eXBlIG9mIGRvY3VtZW50cyB0byByZXRyaWV2ZSAoZm9yIGV4YW1wbGU6IFBJT04pXCIsXG4gICAgICBtdWx0aXBsZTogdHJ1ZSxcbiAgICAgIG5hbWU6IFwiZG9jdW1lbnQtdHlwZVwiLFxuICAgICAgdHlwZTogU3RyaW5nLFxuICAgIH0sXG4gIF1cbiAgY29uc3Qgb3B0aW9ucyA9IGNvbW1hbmRMaW5lQXJncyhvcHRpb25zRGVmaW5pdGlvbnMsIHtcbiAgICBhcmd2OiBhcmd2LFxuICB9KVxuICByZXR1cm4gb3B0aW9uc1xufVxuXG5jb25zdCB0b2RheSA9IG5ldyBEYXRlKClcblxuYXN5bmMgZnVuY3Rpb24gZmV0Y2hXaXRoUmV0cnkoXG4gIHVybDogc3RyaW5nLFxuICByZXRyaWVzOiBudW1iZXIgPSAzLFxuICBiYWNrb2ZmOiBudW1iZXIgPSAzMDAsXG4pOiBQcm9taXNlPFJlc3BvbnNlPiB7XG4gIGZvciAobGV0IGF0dGVtcHQgPSAwOyBhdHRlbXB0IDwgcmV0cmllczsgYXR0ZW1wdCsrKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBhd2FpdCBmZXRjaCh1cmwpXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGlmIChhdHRlbXB0ID09PSByZXRyaWVzIC0gMSkge1xuICAgICAgICB0aHJvdyBlcnJvclxuICAgICAgfVxuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgRmV0Y2ggYXR0ZW1wdCAke2F0dGVtcHQgKyAxfSBmb3IgJHt1cmx9IGZhaWxlZC4gUmV0cnlpbmcgaW4gJHtiYWNrb2ZmfW1zLi4uYCxcbiAgICAgIClcbiAgICAgIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIGJhY2tvZmYpKVxuICAgICAgYmFja29mZiAqPSAyXG4gICAgfVxuICB9XG4gIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGZldGNoICR7dXJsfSBhZnRlciAke3JldHJpZXN9IGF0dGVtcHRzYClcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRvd25sb2FkQW5kUGFyc2UoXG4gIGRvY3VtZW50OiBhbnksXG4gIGRvY3VtZW50c0Rpcjogc3RyaW5nLFxuICBvcHRpb25zOiBhbnksXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgaWYgKGRvY3VtZW50LnVpZC5zdWJzdHJpbmcoNCwgNikgPT09IFwiU05cIikge1xuICAgIHJldHVyblxuICB9XG5cbiAgaWYgKFtcIlJBUFBcIiwgXCJSSU5GXCJdLmluY2x1ZGVzKGRvY3VtZW50LnVpZC5zdWJzdHJpbmcoMCwgNCkpKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICBpZiAob3B0aW9ucy5sZWdpc2xhdHVyZT8udG9TdHJpbmcoKSAhPT0gZG9jdW1lbnQubGVnaXNsYXR1cmUpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIGlmIChvcHRpb25zLmZldGNoRG9jdW1lbnRzKSB7XG4gICAgY29uc3QgZGF0YURpciA9IG9wdGlvbnMuZGF0YURpclxuICAgIGNvbnN0IGRvY3VtZW50c0ZpbGVzRGlyID0gcGF0aC5qb2luKGRhdGFEaXIsIFwiRG9jdW1lbnRzXCIpXG4gICAgY29uc3QgZG9jdW1lbnREaXIgPSBwYXRoRnJvbURvY3VtZW50VWlkKFxuICAgICAgYCR7ZG9jdW1lbnRzRGlyfS9kb2N1bWVudHNgLFxuICAgICAgZG9jdW1lbnQudWlkLFxuICAgIClcbiAgICBjb25zdCBkb2N1bWVudEZpbGVEaXIgPSBwYXRoRnJvbURvY3VtZW50VWlkKGRvY3VtZW50c0ZpbGVzRGlyLCBkb2N1bWVudC51aWQpXG5cbiAgICBmcy5lbnN1cmVEaXJTeW5jKGRvY3VtZW50c0ZpbGVzRGlyKVxuICAgIGF3YWl0IHByb2Nlc3NEb2N1bWVudE9yRGl2aXNpb24oZG9jdW1lbnQsIGRvY3VtZW50c0ZpbGVzRGlyLCBvcHRpb25zKVxuXG4gICAgaWYgKG9wdGlvbnMucGFyc2VEb2N1bWVudHMpIHtcbiAgICAgIGNvbnN0IGRvY3VtZW50UGF0aCA9IGAke2RvY3VtZW50RGlyfS5qc29uYFxuICAgICAgY29uc3QgaHRtbFBhdGggPSBwYXRoLmpvaW4oZG9jdW1lbnRGaWxlRGlyLCBgZHluLW9wZW5kYXRhLmh0bWxgKVxuXG4gICAgICBpZiAoZnMuZXhpc3RzU3luYyhodG1sUGF0aCkpIHtcbiAgICAgICAgY29uc3QgaHRtbCA9IGZzLnJlYWRGaWxlU3luYyhodG1sUGF0aCwgeyBlbmNvZGluZzogXCJ1dGYtOFwiIH0pXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgcGFyc2VkRG9jdW1lbnQgPSBwYXJzZVRleHRlKFxuICAgICAgICAgICAgXCJodHRwczovL3d3dy5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyXCIsXG4gICAgICAgICAgICBodG1sLFxuICAgICAgICAgIClcbiAgICAgICAgICBpZiAocGFyc2VkRG9jdW1lbnQgJiYgZnMuZXhpc3RzU3luYyhkb2N1bWVudFBhdGgpKSB7XG4gICAgICAgICAgICBjb25zdCBqc29uID0gZnMucmVhZEZpbGVTeW5jKGRvY3VtZW50UGF0aCwgeyBlbmNvZGluZzogXCJ1dGYtOFwiIH0pXG4gICAgICAgICAgICBjb25zdCBkb2N1bWVudEpzb24gPSBKU09OLnBhcnNlKGpzb24pXG4gICAgICAgICAgICBkb2N1bWVudEpzb24uc3ViZGl2aXNpb25zID0gcGFyc2VkRG9jdW1lbnQ/LnN1YmRpdmlzaW9uc1xuICAgICAgICAgICAgZnMud3JpdGVGaWxlU3luYyhcbiAgICAgICAgICAgICAgZG9jdW1lbnRQYXRoLFxuICAgICAgICAgICAgICBKU09OLnN0cmluZ2lmeShkb2N1bWVudEpzb24sIG51bGwsIDIpLFxuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGBVbmFibGUgdG8gcGFyc2UgZG9jdW1lbnQgJHtkb2N1bWVudC51aWR9YClcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiByZXRyaWV2ZURvY3VtZW50cyhvcHRpb25zOiBhbnkpOiBQcm9taXNlPG51bWJlcj4ge1xuICBhc3NlcnQoXG4gICAgIW9wdGlvbnMuY29tbWl0IHx8ICFvcHRpb25zLnVpZCxcbiAgICAnT3B0aW9ucyBcImNvbW1pdFwiICYgXCJ1aWRcIiBhcmUgaW5jb21wYXRpYmxlJyxcbiAgKVxuXG4gIGNvbnN0IGRhdGFEaXIgPSBvcHRpb25zLmRhdGFEaXJcbiAgY29uc3QgZG9jdW1lbnRzRGlyID0gcGF0aC5qb2luKGRhdGFEaXIsIFwiRG9jdW1lbnRzXCIpXG4gIGlmIChvcHRpb25zLnB1bGwpIHtcbiAgICBnaXQucmVzZXRBbmRQdWxsKGRvY3VtZW50c0RpcilcbiAgfVxuICBmcy5lbnN1cmVEaXJTeW5jKGRvY3VtZW50c0RpcilcblxuICBpZiAob3B0aW9ucy5mdWxsICYmICFvcHRpb25zLnVpZCkge1xuICAgIGZvciAoY29uc3QgZmlsZW5hbWUgb2YgZnMucmVhZGRpclN5bmMoZG9jdW1lbnRzRGlyKSkge1xuICAgICAgaWYgKGZpbGVuYW1lWzBdID09PSBcIi5cIikge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgZnMucmVtb3ZlU3luYyhwYXRoLmpvaW4oZG9jdW1lbnRzRGlyLCBmaWxlbmFtZSkpXG4gICAgfVxuICB9XG5cbiAgY29uc3QgZmlyc3RVaWQgPSBvcHRpb25zLnVpZFxuICBsZXQgc2tpcCA9IEJvb2xlYW4oZmlyc3RVaWQpXG4gIGZvciAoY29uc3QgeyBkb2N1bWVudCB9IG9mIGl0ZXJMb2FkQXNzZW1ibGVlRG9jdW1lbnRzKFxuICAgIGRhdGFEaXIsXG4gICAgb3B0aW9ucy5sZWdpc2xhdHVyZSxcbiAgKSkge1xuICAgIGZvciAoY29uc3QgZG9jdW1lbnRPckRpdmlzaW9uIG9mIHdhbGtEb2N1bWVudEFuZERpdmlzaW9ucyhkb2N1bWVudCkpIHtcbiAgICAgIC8vIElnbm9yZSBkb2N1bWVudHMgZnJvbSBTw6luYXQuXG4gICAgICBpZiAoZG9jdW1lbnRPckRpdmlzaW9uLnVpZC5zdWJzdHJpbmcoNCwgNikgPT09IFwiU05cIikge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuXG4gICAgICBpZiAoc2tpcCkge1xuICAgICAgICBpZiAoZG9jdW1lbnRPckRpdmlzaW9uLnVpZCA9PT0gZmlyc3RVaWQpIHtcbiAgICAgICAgICBza2lwID0gZmFsc2VcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGF3YWl0IHByb2Nlc3NEb2N1bWVudE9yRGl2aXNpb24oZG9jdW1lbnRPckRpdmlzaW9uLCBkb2N1bWVudHNEaXIsIG9wdGlvbnMpXG4gICAgfVxuICB9XG5cbiAgaWYgKG9wdGlvbnMuY29tbWl0KSB7XG4gICAgcmV0dXJuIGdpdC5jb21taXRBbmRQdXNoKGRvY3VtZW50c0RpciwgXCJOb3V2ZWxsZSBtb2lzc29uXCIsIG9wdGlvbnMucmVtb3RlKVxuICB9XG4gIHJldHVybiAwXG59XG5cbmFzeW5jIGZ1bmN0aW9uIHByb2Nlc3NEb2N1bWVudE9yRGl2aXNpb24oXG4gIGRvY3VtZW50T3JEaXZpc2lvbjogYW55LFxuICBkb2N1bWVudHNEaXI6IHN0cmluZyxcbiAgb3B0aW9uczogYW55LFxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IGRvY3VtZW50RGlyID0gcGF0aEZyb21Eb2N1bWVudFVpZChkb2N1bWVudHNEaXIsIGRvY3VtZW50T3JEaXZpc2lvbi51aWQpXG4gIGZzLmVuc3VyZURpclN5bmMoZG9jdW1lbnREaXIpXG5cbiAgY29uc3QgZmlsZW5hbWVCeVNoYTI1NjogeyBbZGlnZXN0OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9XG4gIGNvbnN0IGluZGV4UGF0aCA9IHBhdGguam9pbihkb2N1bWVudERpciwgXCJpbmRleC5qc29uXCIpXG4gIGNvbnN0IGluZGV4ID0gKFxuICAgIGZzLnBhdGhFeGlzdHNTeW5jKGluZGV4UGF0aCkgPyBmcy5yZWFkSnNvblN5bmMoaW5kZXhQYXRoKSA6IHt9XG4gICkgYXMgRG9jdW1lbnRGaWxlc0luZGV4XG5cbiAgZm9yIChjb25zdCB7IGZvcm1hdCwgdHlwZSwgdXJsIH0gb2YgaXRlckRvY3VtZW50T3JEaXZpc2lvblVybHMoXG4gICAgZG9jdW1lbnRPckRpdmlzaW9uLFxuICApKSB7XG4gICAgY29uc3QgZmlsZW5hbWUgPSBgJHt0eXBlfS4ke2Zvcm1hdCA9PT0gRG9jdW1lbnRVcmxGb3JtYXQuUGRmID8gXCJwZGZcIiA6IFwiaHRtbFwifWBcblxuICAgIC8vIEZpbHRlciBieSBmaWxlIGV4dGVuc2lvbiBpZiBvcHRpb24gaXMgcGFzc2VkXG4gICAgY29uc3QgZmlsZUV4dGVuc2lvbiA9IHVybC5zcGxpdChcIi5cIikucG9wKClcbiAgICBpZiAob3B0aW9ucy5mb3JtYXQgJiYgZmlsZUV4dGVuc2lvbiAmJiBvcHRpb25zLmZvcm1hdCAhPT0gZmlsZUV4dGVuc2lvbikge1xuICAgICAgY29udGludWVcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBvcHRpb25zLmxlZ2lzbGF0dXJlICYmXG4gICAgICBvcHRpb25zLmxlZ2lzbGF0dXJlLnRvU3RyaW5nKCkgIT09IGRvY3VtZW50T3JEaXZpc2lvbi5sZWdpc2xhdHVyZVxuICAgICkge1xuICAgICAgY29udGludWVcbiAgICB9XG5cbiAgICAvLyBGaWx0ZXIgYnkgZG9jdW1lbnQgdHlwZSBpZiBvcHRpb24gaXMgcGFzc2VkXG4gICAgY29uc3QgZG9jdW1lbnRUeXBlID0gZG9jdW1lbnRPckRpdmlzaW9uLmNsYXNzaWZpY2F0aW9uPy50eXBlPy5jb2RlXG4gICAgaWYgKFxuICAgICAgb3B0aW9uc1tcImRvY3VtZW50LXR5cGVcIl0gIT09IHVuZGVmaW5lZCAmJlxuICAgICAgIW9wdGlvbnNbXCJkb2N1bWVudC10eXBlXCJdLmluY2x1ZGVzKGRvY3VtZW50VHlwZSlcbiAgICApIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuXG4gICAgbGV0IGZvcm1hdEZpbGVzSW5mb3MgPSBpbmRleFtmb3JtYXRdID8/IChpbmRleFtmb3JtYXRdID0gW10pXG4gICAgbGV0IGZpbGVJbmZvcyA9XG4gICAgICBmb3JtYXRGaWxlc0luZm9zLmZpbmQoKGZpbGUpID0+IGZpbGUudXJsID09PSB1cmwpID8/XG4gICAgICAoe30gYXMgRG9jdW1lbnRGaWxlSW5mb3MpXG4gICAgaWYgKCFmb3JtYXRGaWxlc0luZm9zLmluY2x1ZGVzKGZpbGVJbmZvcykpIHtcbiAgICAgIGZvcm1hdEZpbGVzSW5mb3MucHVzaChmaWxlSW5mb3MpXG4gICAgfVxuICAgIGZpbGVJbmZvcy51cmwgPSB1cmxcblxuICAgIGlmIChmaWxlSW5mb3Muc3RhdHVzID09PSAyMDAgJiYgIW9wdGlvbnMuZnVsbCkge1xuICAgICAgZmlsZW5hbWVCeVNoYTI1NltmaWxlSW5mb3Muc2hhMjU2IGFzIHN0cmluZ10gPSBmaWxlbmFtZVxuICAgICAgY29udGludWVcbiAgICB9XG4gICAgaWYgKFxuICAgICAgZmlsZUluZm9zLnN0YXR1cyA9PT0gNDA0ICYmXG4gICAgICAhb3B0aW9uc1tcIm5vdC1mb3VuZFwiXSAmJlxuICAgICAgZGlmZmVyZW5jZUluRGF5cyhcbiAgICAgICAgdG9kYXksXG4gICAgICAgIGRvY3VtZW50T3JEaXZpc2lvbi5jeWNsZURlVmllLmNocm9uby5kYXRlQ3JlYXRpb24gPz9cbiAgICAgICAgICAoZG9jdW1lbnRPckRpdmlzaW9uLmN5Y2xlRGVWaWUuY2hyb25vLmRhdGVEZXBvdCBhcyBEYXRlIHwgc3RyaW5nKSxcbiAgICAgICkgPiAxMFxuICAgICkge1xuICAgICAgY29udGludWVcbiAgICB9XG5cbiAgICBpZiAoIW9wdGlvbnMuc2lsZW50KSB7XG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgYFJldHJpZXZpbmcgZG9jdW1lbnQgb3IgZGl2aXNpb24gJHtkb2N1bWVudE9yRGl2aXNpb24udWlkfSBhdCAke3VybH3igKZgLFxuICAgICAgKVxuICAgIH1cblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2hXaXRoUmV0cnkodXJsKVxuICAgIGNvbnN0IGZpbGVQYXRoID0gcGF0aC5qb2luKGRvY3VtZW50RGlyLCBmaWxlbmFtZSlcblxuICAgIGlmIChyZXNwb25zZS5vaykge1xuICAgICAgY29uc3QgYXJyYXlCdWZmZXIgPSBhd2FpdCByZXNwb25zZS5hcnJheUJ1ZmZlcigpXG4gICAgICBjb25zdCBidWZmZXIgPSBCdWZmZXIuZnJvbShhcnJheUJ1ZmZlcilcbiAgICAgIGlmIChcbiAgICAgICAgZm9ybWF0ID09PSBEb2N1bWVudFVybEZvcm1hdC5QZGYgJiZcbiAgICAgICAgIWJ1ZmZlci5zdWJhcnJheSgwLCA0KS50b1N0cmluZygpLnN0YXJ0c1dpdGgoXCIlUERGXCIpXG4gICAgICApIHtcbiAgICAgICAgLy8gSW5zdGVhZCBvZiBhIFBERiwgdGhlIHJlY2VpdmVkIGRhdGEgbWF5IGJlIGFuIEhUTUwgcGFnZSB3aXRoIGEgbWVzc2FnZSBsaWtlXG4gICAgICAgIC8vIFwiRG9jdW1lbnQgbm9uIGVuY29yZSBwdWJsacOpXCIuXG4gICAgICAgIGlmICghb3B0aW9ucy5zaWxlbnQpIHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oYCAgUERGIFwiJHt1cmx9XCIgbm90IGZvdW5kLmApXG4gICAgICAgIH1cbiAgICAgICAgZnMucmVtb3ZlU3luYyhmaWxlUGF0aClcbiAgICAgICAgZGVsZXRlIGZpbGVJbmZvcy5maWxlbmFtZVxuICAgICAgICBkZWxldGUgZmlsZUluZm9zLnNoYTI1NlxuICAgICAgICBmaWxlSW5mb3Muc3RhdHVzID0gNDA0XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBzaGEyNTYgPSBjcmVhdGVIYXNoKFwic2hhMjU2XCIpLnVwZGF0ZShidWZmZXIpLmRpZ2VzdChcImhleFwiKVxuICAgICAgICBjb25zdCBleGlzdGluZ0ZpbGVuYW1lID0gZmlsZW5hbWVCeVNoYTI1NltzaGEyNTZdXG4gICAgICAgIGlmIChleGlzdGluZ0ZpbGVuYW1lID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBmcy53cml0ZUZpbGVTeW5jKGZpbGVQYXRoLCBidWZmZXIsIHtcbiAgICAgICAgICAgIGVuY29kaW5nOiBcInV0ZjhcIixcbiAgICAgICAgICB9KVxuICAgICAgICAgIGZpbGVJbmZvcy5maWxlbmFtZSA9IGZpbGVuYW1lXG4gICAgICAgICAgZmlsZW5hbWVCeVNoYTI1NltzaGEyNTZdID0gZmlsZW5hbWVcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBmaWxlSW5mb3MuZmlsZW5hbWUgPSBleGlzdGluZ0ZpbGVuYW1lXG4gICAgICAgIH1cbiAgICAgICAgZmlsZUluZm9zLnNoYTI1NiA9IHNoYTI1NlxuICAgICAgICBmaWxlSW5mb3Muc3RhdHVzID0gcmVzcG9uc2Uuc3RhdHVzXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT09IDQwNCkge1xuICAgICAgICBpZiAoIW9wdGlvbnMuc2lsZW50KSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKGAgIFBhZ2UgXCIke3VybH1cIiBub3QgZm91bmQuYClcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICBgICBFcnJvcjpcXG4ke0pTT04uc3RyaW5naWZ5KFxuICAgICAgICAgICAgeyBjb2RlOiByZXNwb25zZS5zdGF0dXMsIG1lc3NhZ2U6IHJlc3BvbnNlLnN0YXR1c1RleHQgfSxcbiAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAyLFxuICAgICAgICAgICl9YCxcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgZnMucmVtb3ZlU3luYyhmaWxlUGF0aClcbiAgICAgIGRlbGV0ZSBmaWxlSW5mb3MuZmlsZW5hbWVcbiAgICAgIGRlbGV0ZSBmaWxlSW5mb3Muc2hhMjU2XG4gICAgICBmaWxlSW5mb3Muc3RhdHVzID0gcmVzcG9uc2Uuc3RhdHVzXG4gICAgfVxuICB9XG5cbiAgZnMud3JpdGVKc29uU3luYyhpbmRleFBhdGgsIGluZGV4LCB7IGVuY29kaW5nOiBcInV0Zi04XCIsIHNwYWNlczogMiB9KVxufVxuXG5mdW5jdGlvbiBtYWluKGFyZ3Y6IGFueSk6IFByb21pc2U8bnVtYmVyPiB7XG4gIGNvbnN0IG9wdGlvbnMgPSBwYXJzZUFyZ3MoYXJndilcbiAgcmV0dXJuIHJldHJpZXZlRG9jdW1lbnRzKG9wdGlvbnMpXG59XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuaWYgKHByb2Nlc3MuYXJndlsxXS5lbmRzV2l0aChcInJldHJpZXZlX2RvY3VtZW50cy50c1wiKSkge1xuICBtYWluKHByb2Nlc3MuYXJndilcbiAgICAudGhlbigoZXhpdENvZGUpID0+IHByb2Nlc3MuZXhpdChleGl0Q29kZSkpXG4gICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgY29uc29sZS5sb2coZXJyb3IpXG4gICAgICBwcm9jZXNzLmV4aXQoMSlcbiAgICB9KVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxPQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxnQkFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsT0FBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsUUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksUUFBQSxHQUFBTCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUssS0FBQSxHQUFBTixzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQU0scUJBQUEsR0FBQU4sT0FBQTtBQUtBLElBQUFPLEdBQUEsR0FBQUMsdUJBQUEsQ0FBQVIsT0FBQTtBQUNBLElBQUFTLFFBQUEsR0FBQVQsT0FBQTtBQUNBLElBQUFVLFFBQUEsR0FBQVYsT0FBQTtBQUNBLElBQUFXLEtBQUEsR0FBQVgsT0FBQTtBQUNBLElBQUFZLFlBQUEsR0FBQVosT0FBQTtBQVM2QixTQUFBYSx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQU4sd0JBQUFNLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLElBQUFGLENBQUEsSUFBQUEsQ0FBQSxDQUFBSSxVQUFBLFNBQUFKLENBQUEsZUFB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