pkg-pr-new 0.0.40 → 0.0.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -2976,7 +2976,7 @@ import { writePackageJSON } from "pkg-types";
2976
2976
  // package.json
2977
2977
  var package_default = {
2978
2978
  name: "pkg-pr-new",
2979
- version: "0.0.40",
2979
+ version: "0.0.41",
2980
2980
  description: "",
2981
2981
  main: "index.js",
2982
2982
  type: "module",
@@ -3117,6 +3117,10 @@ var main = defineCommand({
3117
3117
  description: "Specify the package manager to use (npm, bun, pnpm, yarn)",
3118
3118
  enum: ["npm", "bun", "pnpm", "yarn"],
3119
3119
  default: "npm"
3120
+ },
3121
+ bin: {
3122
+ type: "boolean",
3123
+ description: "Set to true if your package is a binary application and you would like to show an execute command instead of an install command."
3120
3124
  }
3121
3125
  },
3122
3126
  run: async ({ args }) => {
@@ -3140,6 +3144,7 @@ var main = defineCommand({
3140
3144
  }
3141
3145
  const isPeerDepsEnabled = !!args.peerDeps;
3142
3146
  const isOnlyTemplates = !!args["only-templates"];
3147
+ const isBinaryApplication = !!args.binaryApplication;
3143
3148
  const comment = args.comment;
3144
3149
  const selectedPackageManager = args.packageManager;
3145
3150
  if (!["npm", "bun", "pnpm", "yarn"].includes(selectedPackageManager)) {
@@ -3425,6 +3430,7 @@ var main = defineCommand({
3425
3430
  "sb-key": key,
3426
3431
  "sb-shasums": JSON.stringify(shasums),
3427
3432
  "sb-run-id": GITHUB_RUN_ID,
3433
+ "sb-bin": `${isBinaryApplication}`,
3428
3434
  "sb-package-manager": selectedPackageManager,
3429
3435
  "sb-only-templates": `${isOnlyTemplates}`
3430
3436
  },
@@ -3568,4 +3574,4 @@ function parsePackageJson(contents) {
3568
3574
  return null;
3569
3575
  }
3570
3576
  }
3571
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2NvbnNvbGFAMy4yLjMvbm9kZV9tb2R1bGVzL2NvbnNvbGEvZGlzdC9jb3JlLm1qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY29uc29sYUAzLjIuMy9ub2RlX21vZHVsZXMvY29uc29sYS9kaXN0L3NoYXJlZC9jb25zb2xhLjA2YWQ4YTY0Lm1qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY29uc29sYUAzLjIuMy9ub2RlX21vZHVsZXMvY29uc29sYS9kaXN0L3V0aWxzLm1qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY29uc29sYUAzLjIuMy9ub2RlX21vZHVsZXMvY29uc29sYS9kaXN0L2NodW5rcy9wcm9tcHQubWpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9jb25zb2xhQDMuMi4zL25vZGVfbW9kdWxlcy9jb25zb2xhL2Rpc3Qvc2hhcmVkL2NvbnNvbGEuMzZjMDAzNGYubWpzIiwgIi4uL2luZGV4LnRzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9vaGFzaEAxLjEuMy9ub2RlX21vZHVsZXMvb2hhc2gvZGlzdC9pbmRleC5tanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2NvbnNvbGFAMy4yLjMvbm9kZV9tb2R1bGVzL2NvbnNvbGEvZGlzdC9pbmRleC5tanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2NpdHR5QDAuMS42L25vZGVfbW9kdWxlcy9jaXR0eS9kaXN0L2luZGV4Lm1qcyIsICIuLi8uLi91dGlscy9pbmRleC50cyIsICIuLi9wYWNrYWdlLmpzb24iLCAiLi4vdGVtcGxhdGUudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IExvZ0xldmVscyA9IHtcbiAgc2lsZW50OiBOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFksXG4gIGZhdGFsOiAwLFxuICBlcnJvcjogMCxcbiAgd2FybjogMSxcbiAgbG9nOiAyLFxuICBpbmZvOiAzLFxuICBzdWNjZXNzOiAzLFxuICBmYWlsOiAzLFxuICByZWFkeTogMyxcbiAgc3RhcnQ6IDMsXG4gIGJveDogMyxcbiAgZGVidWc6IDQsXG4gIHRyYWNlOiA1LFxuICB2ZXJib3NlOiBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFlcbn07XG5jb25zdCBMb2dUeXBlcyA9IHtcbiAgLy8gU2lsZW50XG4gIHNpbGVudDoge1xuICAgIGxldmVsOiAtMVxuICB9LFxuICAvLyBMZXZlbCAwXG4gIGZhdGFsOiB7XG4gICAgbGV2ZWw6IExvZ0xldmVscy5mYXRhbFxuICB9LFxuICBlcnJvcjoge1xuICAgIGxldmVsOiBMb2dMZXZlbHMuZXJyb3JcbiAgfSxcbiAgLy8gTGV2ZWwgMVxuICB3YXJuOiB7XG4gICAgbGV2ZWw6IExvZ0xldmVscy53YXJuXG4gIH0sXG4gIC8vIExldmVsIDJcbiAgbG9nOiB7XG4gICAgbGV2ZWw6IExvZ0xldmVscy5sb2dcbiAgfSxcbiAgLy8gTGV2ZWwgM1xuICBpbmZvOiB7XG4gICAgbGV2ZWw6IExvZ0xldmVscy5pbmZvXG4gIH0sXG4gIHN1Y2Nlc3M6IHtcbiAgICBsZXZlbDogTG9nTGV2ZWxzLnN1Y2Nlc3NcbiAgfSxcbiAgZmFpbDoge1xuICAgIGxldmVsOiBMb2dMZXZlbHMuZmFpbFxuICB9LFxuICByZWFkeToge1xuICAgIGxldmVsOiBMb2dMZXZlbHMuaW5mb1xuICB9LFxuICBzdGFydDoge1xuICAgIGxldmVsOiBMb2dMZXZlbHMuaW5mb1xuICB9LFxuICBib3g6IHtcbiAgICBsZXZlbDogTG9nTGV2ZWxzLmluZm9cbiAgfSxcbiAgLy8gTGV2ZWwgNFxuICBkZWJ1Zzoge1xuICAgIGxldmVsOiBMb2dMZXZlbHMuZGVidWdcbiAgfSxcbiAgLy8gTGV2ZWwgNVxuICB0cmFjZToge1xuICAgIGxldmVsOiBMb2dMZXZlbHMudHJhY2VcbiAgfSxcbiAgLy8gVmVyYm9zZVxuICB2ZXJib3NlOiB7XG4gICAgbGV2ZWw6IExvZ0xldmVscy52ZXJib3NlXG4gIH1cbn07XG5cbmZ1bmN0aW9uIGlzT2JqZWN0KHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCI7XG59XG5mdW5jdGlvbiBfZGVmdShiYXNlT2JqZWN0LCBkZWZhdWx0cywgbmFtZXNwYWNlID0gXCIuXCIsIG1lcmdlcikge1xuICBpZiAoIWlzT2JqZWN0KGRlZmF1bHRzKSkge1xuICAgIHJldHVybiBfZGVmdShiYXNlT2JqZWN0LCB7fSwgbmFtZXNwYWNlLCBtZXJnZXIpO1xuICB9XG4gIGNvbnN0IG9iamVjdCA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRzKTtcbiAgZm9yIChjb25zdCBrZXkgaW4gYmFzZU9iamVjdCkge1xuICAgIGlmIChrZXkgPT09IFwiX19wcm90b19fXCIgfHwga2V5ID09PSBcImNvbnN0cnVjdG9yXCIpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBjb25zdCB2YWx1ZSA9IGJhc2VPYmplY3Rba2V5XTtcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHZvaWQgMCkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGlmIChtZXJnZXIgJiYgbWVyZ2VyKG9iamVjdCwga2V5LCB2YWx1ZSwgbmFtZXNwYWNlKSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSAmJiBBcnJheS5pc0FycmF5KG9iamVjdFtrZXldKSkge1xuICAgICAgb2JqZWN0W2tleV0gPSBbLi4udmFsdWUsIC4uLm9iamVjdFtrZXldXTtcbiAgICB9IGVsc2UgaWYgKGlzT2JqZWN0KHZhbHVlKSAmJiBpc09iamVjdChvYmplY3Rba2V5XSkpIHtcbiAgICAgIG9iamVjdFtrZXldID0gX2RlZnUoXG4gICAgICAgIHZhbHVlLFxuICAgICAgICBvYmplY3Rba2V5XSxcbiAgICAgICAgKG5hbWVzcGFjZSA/IGAke25hbWVzcGFjZX0uYCA6IFwiXCIpICsga2V5LnRvU3RyaW5nKCksXG4gICAgICAgIG1lcmdlclxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgb2JqZWN0W2tleV0gPSB2YWx1ZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG9iamVjdDtcbn1cbmZ1bmN0aW9uIGNyZWF0ZURlZnUobWVyZ2VyKSB7XG4gIHJldHVybiAoLi4uYXJndW1lbnRzXykgPT4gKFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSB1bmljb3JuL25vLWFycmF5LXJlZHVjZVxuICAgIGFyZ3VtZW50c18ucmVkdWNlKChwLCBjKSA9PiBfZGVmdShwLCBjLCBcIlwiLCBtZXJnZXIpLCB7fSlcbiAgKTtcbn1cbmNvbnN0IGRlZnUgPSBjcmVhdGVEZWZ1KCk7XG5cbmZ1bmN0aW9uIGlzUGxhaW5PYmplY3Qob2JqKSB7XG4gIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqKSA9PT0gXCJbb2JqZWN0IE9iamVjdF1cIjtcbn1cbmZ1bmN0aW9uIGlzTG9nT2JqKGFyZykge1xuICBpZiAoIWlzUGxhaW5PYmplY3QoYXJnKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBpZiAoIWFyZy5tZXNzYWdlICYmICFhcmcuYXJncykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBpZiAoYXJnLnN0YWNrKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiB0cnVlO1xufVxuXG5sZXQgcGF1c2VkID0gZmFsc2U7XG5jb25zdCBxdWV1ZSA9IFtdO1xuY2xhc3MgQ29uc29sYSB7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IHR5cGVzID0gb3B0aW9ucy50eXBlcyB8fCBMb2dUeXBlcztcbiAgICB0aGlzLm9wdGlvbnMgPSBkZWZ1KFxuICAgICAge1xuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICBkZWZhdWx0czogeyAuLi5vcHRpb25zLmRlZmF1bHRzIH0sXG4gICAgICAgIGxldmVsOiBfbm9ybWFsaXplTG9nTGV2ZWwob3B0aW9ucy5sZXZlbCwgdHlwZXMpLFxuICAgICAgICByZXBvcnRlcnM6IFsuLi5vcHRpb25zLnJlcG9ydGVycyB8fCBbXV1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGVzOiBMb2dUeXBlcyxcbiAgICAgICAgdGhyb3R0bGU6IDFlMyxcbiAgICAgICAgdGhyb3R0bGVNaW46IDUsXG4gICAgICAgIGZvcm1hdE9wdGlvbnM6IHtcbiAgICAgICAgICBkYXRlOiB0cnVlLFxuICAgICAgICAgIGNvbG9yczogZmFsc2UsXG4gICAgICAgICAgY29tcGFjdDogdHJ1ZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgKTtcbiAgICBmb3IgKGNvbnN0IHR5cGUgaW4gdHlwZXMpIHtcbiAgICAgIGNvbnN0IGRlZmF1bHRzID0ge1xuICAgICAgICB0eXBlLFxuICAgICAgICAuLi50aGlzLm9wdGlvbnMuZGVmYXVsdHMsXG4gICAgICAgIC4uLnR5cGVzW3R5cGVdXG4gICAgICB9O1xuICAgICAgdGhpc1t0eXBlXSA9IHRoaXMuX3dyYXBMb2dGbihkZWZhdWx0cyk7XG4gICAgICB0aGlzW3R5cGVdLnJhdyA9IHRoaXMuX3dyYXBMb2dGbihcbiAgICAgICAgZGVmYXVsdHMsXG4gICAgICAgIHRydWVcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICh0aGlzLm9wdGlvbnMubW9ja0ZuKSB7XG4gICAgICB0aGlzLm1vY2tUeXBlcygpO1xuICAgIH1cbiAgICB0aGlzLl9sYXN0TG9nID0ge307XG4gIH1cbiAgZ2V0IGxldmVsKCkge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMubGV2ZWw7XG4gIH1cbiAgc2V0IGxldmVsKGxldmVsKSB7XG4gICAgdGhpcy5vcHRpb25zLmxldmVsID0gX25vcm1hbGl6ZUxvZ0xldmVsKFxuICAgICAgbGV2ZWwsXG4gICAgICB0aGlzLm9wdGlvbnMudHlwZXMsXG4gICAgICB0aGlzLm9wdGlvbnMubGV2ZWxcbiAgICApO1xuICB9XG4gIHByb21wdChtZXNzYWdlLCBvcHRzKSB7XG4gICAgaWYgKCF0aGlzLm9wdGlvbnMucHJvbXB0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJwcm9tcHQgaXMgbm90IHN1cHBvcnRlZCFcIik7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLm9wdGlvbnMucHJvbXB0KG1lc3NhZ2UsIG9wdHMpO1xuICB9XG4gIGNyZWF0ZShvcHRpb25zKSB7XG4gICAgY29uc3QgaW5zdGFuY2UgPSBuZXcgQ29uc29sYSh7XG4gICAgICAuLi50aGlzLm9wdGlvbnMsXG4gICAgICAuLi5vcHRpb25zXG4gICAgfSk7XG4gICAgaWYgKHRoaXMuX21vY2tGbikge1xuICAgICAgaW5zdGFuY2UubW9ja1R5cGVzKHRoaXMuX21vY2tGbik7XG4gICAgfVxuICAgIHJldHVybiBpbnN0YW5jZTtcbiAgfVxuICB3aXRoRGVmYXVsdHMoZGVmYXVsdHMpIHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGUoe1xuICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgICAgZGVmYXVsdHM6IHtcbiAgICAgICAgLi4udGhpcy5vcHRpb25zLmRlZmF1bHRzLFxuICAgICAgICAuLi5kZWZhdWx0c1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIHdpdGhUYWcodGFnKSB7XG4gICAgcmV0dXJuIHRoaXMud2l0aERlZmF1bHRzKHtcbiAgICAgIHRhZzogdGhpcy5vcHRpb25zLmRlZmF1bHRzLnRhZyA/IHRoaXMub3B0aW9ucy5kZWZhdWx0cy50YWcgKyBcIjpcIiArIHRhZyA6IHRhZ1xuICAgIH0pO1xuICB9XG4gIGFkZFJlcG9ydGVyKHJlcG9ydGVyKSB7XG4gICAgdGhpcy5vcHRpb25zLnJlcG9ydGVycy5wdXNoKHJlcG9ydGVyKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICByZW1vdmVSZXBvcnRlcihyZXBvcnRlcikge1xuICAgIGlmIChyZXBvcnRlcikge1xuICAgICAgY29uc3QgaSA9IHRoaXMub3B0aW9ucy5yZXBvcnRlcnMuaW5kZXhPZihyZXBvcnRlcik7XG4gICAgICBpZiAoaSA+PSAwKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMucmVwb3J0ZXJzLnNwbGljZShpLCAxKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vcHRpb25zLnJlcG9ydGVycy5zcGxpY2UoMCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIHNldFJlcG9ydGVycyhyZXBvcnRlcnMpIHtcbiAgICB0aGlzLm9wdGlvbnMucmVwb3J0ZXJzID0gQXJyYXkuaXNBcnJheShyZXBvcnRlcnMpID8gcmVwb3J0ZXJzIDogW3JlcG9ydGVyc107XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgd3JhcEFsbCgpIHtcbiAgICB0aGlzLndyYXBDb25zb2xlKCk7XG4gICAgdGhpcy53cmFwU3RkKCk7XG4gIH1cbiAgcmVzdG9yZUFsbCgpIHtcbiAgICB0aGlzLnJlc3RvcmVDb25zb2xlKCk7XG4gICAgdGhpcy5yZXN0b3JlU3RkKCk7XG4gIH1cbiAgd3JhcENvbnNvbGUoKSB7XG4gICAgZm9yIChjb25zdCB0eXBlIGluIHRoaXMub3B0aW9ucy50eXBlcykge1xuICAgICAgaWYgKCFjb25zb2xlW1wiX19cIiArIHR5cGVdKSB7XG4gICAgICAgIGNvbnNvbGVbXCJfX1wiICsgdHlwZV0gPSBjb25zb2xlW3R5cGVdO1xuICAgICAgfVxuICAgICAgY29uc29sZVt0eXBlXSA9IHRoaXNbdHlwZV0ucmF3O1xuICAgIH1cbiAgfVxuICByZXN0b3JlQ29uc29sZSgpIHtcbiAgICBmb3IgKGNvbnN0IHR5cGUgaW4gdGhpcy5vcHRpb25zLnR5cGVzKSB7XG4gICAgICBpZiAoY29uc29sZVtcIl9fXCIgKyB0eXBlXSkge1xuICAgICAgICBjb25zb2xlW3R5cGVdID0gY29uc29sZVtcIl9fXCIgKyB0eXBlXTtcbiAgICAgICAgZGVsZXRlIGNvbnNvbGVbXCJfX1wiICsgdHlwZV07XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHdyYXBTdGQoKSB7XG4gICAgdGhpcy5fd3JhcFN0cmVhbSh0aGlzLm9wdGlvbnMuc3Rkb3V0LCBcImxvZ1wiKTtcbiAgICB0aGlzLl93cmFwU3RyZWFtKHRoaXMub3B0aW9ucy5zdGRlcnIsIFwibG9nXCIpO1xuICB9XG4gIF93cmFwU3RyZWFtKHN0cmVhbSwgdHlwZSkge1xuICAgIGlmICghc3RyZWFtKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghc3RyZWFtLl9fd3JpdGUpIHtcbiAgICAgIHN0cmVhbS5fX3dyaXRlID0gc3RyZWFtLndyaXRlO1xuICAgIH1cbiAgICBzdHJlYW0ud3JpdGUgPSAoZGF0YSkgPT4ge1xuICAgICAgdGhpc1t0eXBlXS5yYXcoU3RyaW5nKGRhdGEpLnRyaW0oKSk7XG4gICAgfTtcbiAgfVxuICByZXN0b3JlU3RkKCkge1xuICAgIHRoaXMuX3Jlc3RvcmVTdHJlYW0odGhpcy5vcHRpb25zLnN0ZG91dCk7XG4gICAgdGhpcy5fcmVzdG9yZVN0cmVhbSh0aGlzLm9wdGlvbnMuc3RkZXJyKTtcbiAgfVxuICBfcmVzdG9yZVN0cmVhbShzdHJlYW0pIHtcbiAgICBpZiAoIXN0cmVhbSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoc3RyZWFtLl9fd3JpdGUpIHtcbiAgICAgIHN0cmVhbS53cml0ZSA9IHN0cmVhbS5fX3dyaXRlO1xuICAgICAgZGVsZXRlIHN0cmVhbS5fX3dyaXRlO1xuICAgIH1cbiAgfVxuICBwYXVzZUxvZ3MoKSB7XG4gICAgcGF1c2VkID0gdHJ1ZTtcbiAgfVxuICByZXN1bWVMb2dzKCkge1xuICAgIHBhdXNlZCA9IGZhbHNlO1xuICAgIGNvbnN0IF9xdWV1ZSA9IHF1ZXVlLnNwbGljZSgwKTtcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgX3F1ZXVlKSB7XG4gICAgICBpdGVtWzBdLl9sb2dGbihpdGVtWzFdLCBpdGVtWzJdKTtcbiAgICB9XG4gIH1cbiAgbW9ja1R5cGVzKG1vY2tGbikge1xuICAgIGNvbnN0IF9tb2NrRm4gPSBtb2NrRm4gfHwgdGhpcy5vcHRpb25zLm1vY2tGbjtcbiAgICB0aGlzLl9tb2NrRm4gPSBfbW9ja0ZuO1xuICAgIGlmICh0eXBlb2YgX21vY2tGbiAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGZvciAoY29uc3QgdHlwZSBpbiB0aGlzLm9wdGlvbnMudHlwZXMpIHtcbiAgICAgIHRoaXNbdHlwZV0gPSBfbW9ja0ZuKHR5cGUsIHRoaXMub3B0aW9ucy50eXBlc1t0eXBlXSkgfHwgdGhpc1t0eXBlXTtcbiAgICAgIHRoaXNbdHlwZV0ucmF3ID0gdGhpc1t0eXBlXTtcbiAgICB9XG4gIH1cbiAgX3dyYXBMb2dGbihkZWZhdWx0cywgaXNSYXcpIHtcbiAgICByZXR1cm4gKC4uLmFyZ3MpID0+IHtcbiAgICAgIGlmIChwYXVzZWQpIHtcbiAgICAgICAgcXVldWUucHVzaChbdGhpcywgZGVmYXVsdHMsIGFyZ3MsIGlzUmF3XSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLl9sb2dGbihkZWZhdWx0cywgYXJncywgaXNSYXcpO1xuICAgIH07XG4gIH1cbiAgX2xvZ0ZuKGRlZmF1bHRzLCBhcmdzLCBpc1Jhdykge1xuICAgIGlmICgoZGVmYXVsdHMubGV2ZWwgfHwgMCkgPiB0aGlzLmxldmVsKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IGxvZ09iaiA9IHtcbiAgICAgIGRhdGU6IC8qIEBfX1BVUkVfXyAqLyBuZXcgRGF0ZSgpLFxuICAgICAgYXJnczogW10sXG4gICAgICAuLi5kZWZhdWx0cyxcbiAgICAgIGxldmVsOiBfbm9ybWFsaXplTG9nTGV2ZWwoZGVmYXVsdHMubGV2ZWwsIHRoaXMub3B0aW9ucy50eXBlcylcbiAgICB9O1xuICAgIGlmICghaXNSYXcgJiYgYXJncy5sZW5ndGggPT09IDEgJiYgaXNMb2dPYmooYXJnc1swXSkpIHtcbiAgICAgIE9iamVjdC5hc3NpZ24obG9nT2JqLCBhcmdzWzBdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbG9nT2JqLmFyZ3MgPSBbLi4uYXJnc107XG4gICAgfVxuICAgIGlmIChsb2dPYmoubWVzc2FnZSkge1xuICAgICAgbG9nT2JqLmFyZ3MudW5zaGlmdChsb2dPYmoubWVzc2FnZSk7XG4gICAgICBkZWxldGUgbG9nT2JqLm1lc3NhZ2U7XG4gICAgfVxuICAgIGlmIChsb2dPYmouYWRkaXRpb25hbCkge1xuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGxvZ09iai5hZGRpdGlvbmFsKSkge1xuICAgICAgICBsb2dPYmouYWRkaXRpb25hbCA9IGxvZ09iai5hZGRpdGlvbmFsLnNwbGl0KFwiXFxuXCIpO1xuICAgICAgfVxuICAgICAgbG9nT2JqLmFyZ3MucHVzaChcIlxcblwiICsgbG9nT2JqLmFkZGl0aW9uYWwuam9pbihcIlxcblwiKSk7XG4gICAgICBkZWxldGUgbG9nT2JqLmFkZGl0aW9uYWw7XG4gICAgfVxuICAgIGxvZ09iai50eXBlID0gdHlwZW9mIGxvZ09iai50eXBlID09PSBcInN0cmluZ1wiID8gbG9nT2JqLnR5cGUudG9Mb3dlckNhc2UoKSA6IFwibG9nXCI7XG4gICAgbG9nT2JqLnRhZyA9IHR5cGVvZiBsb2dPYmoudGFnID09PSBcInN0cmluZ1wiID8gbG9nT2JqLnRhZyA6IFwiXCI7XG4gICAgY29uc3QgcmVzb2x2ZUxvZyA9IChuZXdMb2cgPSBmYWxzZSkgPT4ge1xuICAgICAgY29uc3QgcmVwZWF0ZWQgPSAodGhpcy5fbGFzdExvZy5jb3VudCB8fCAwKSAtIHRoaXMub3B0aW9ucy50aHJvdHRsZU1pbjtcbiAgICAgIGlmICh0aGlzLl9sYXN0TG9nLm9iamVjdCAmJiByZXBlYXRlZCA+IDApIHtcbiAgICAgICAgY29uc3QgYXJnczIgPSBbLi4udGhpcy5fbGFzdExvZy5vYmplY3QuYXJnc107XG4gICAgICAgIGlmIChyZXBlYXRlZCA+IDEpIHtcbiAgICAgICAgICBhcmdzMi5wdXNoKGAocmVwZWF0ZWQgJHtyZXBlYXRlZH0gdGltZXMpYCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fbG9nKHsgLi4udGhpcy5fbGFzdExvZy5vYmplY3QsIGFyZ3M6IGFyZ3MyIH0pO1xuICAgICAgICB0aGlzLl9sYXN0TG9nLmNvdW50ID0gMTtcbiAgICAgIH1cbiAgICAgIGlmIChuZXdMb2cpIHtcbiAgICAgICAgdGhpcy5fbGFzdExvZy5vYmplY3QgPSBsb2dPYmo7XG4gICAgICAgIHRoaXMuX2xvZyhsb2dPYmopO1xuICAgICAgfVxuICAgIH07XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuX2xhc3RMb2cudGltZW91dCk7XG4gICAgY29uc3QgZGlmZlRpbWUgPSB0aGlzLl9sYXN0TG9nLnRpbWUgJiYgbG9nT2JqLmRhdGUgPyBsb2dPYmouZGF0ZS5nZXRUaW1lKCkgLSB0aGlzLl9sYXN0TG9nLnRpbWUuZ2V0VGltZSgpIDogMDtcbiAgICB0aGlzLl9sYXN0TG9nLnRpbWUgPSBsb2dPYmouZGF0ZTtcbiAgICBpZiAoZGlmZlRpbWUgPCB0aGlzLm9wdGlvbnMudGhyb3R0bGUpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHNlcmlhbGl6ZWRMb2cgPSBKU09OLnN0cmluZ2lmeShbXG4gICAgICAgICAgbG9nT2JqLnR5cGUsXG4gICAgICAgICAgbG9nT2JqLnRhZyxcbiAgICAgICAgICBsb2dPYmouYXJnc1xuICAgICAgICBdKTtcbiAgICAgICAgY29uc3QgaXNTYW1lTG9nID0gdGhpcy5fbGFzdExvZy5zZXJpYWxpemVkID09PSBzZXJpYWxpemVkTG9nO1xuICAgICAgICB0aGlzLl9sYXN0TG9nLnNlcmlhbGl6ZWQgPSBzZXJpYWxpemVkTG9nO1xuICAgICAgICBpZiAoaXNTYW1lTG9nKSB7XG4gICAgICAgICAgdGhpcy5fbGFzdExvZy5jb3VudCA9ICh0aGlzLl9sYXN0TG9nLmNvdW50IHx8IDApICsgMTtcbiAgICAgICAgICBpZiAodGhpcy5fbGFzdExvZy5jb3VudCA+IHRoaXMub3B0aW9ucy50aHJvdHRsZU1pbikge1xuICAgICAgICAgICAgdGhpcy5fbGFzdExvZy50aW1lb3V0ID0gc2V0VGltZW91dChcbiAgICAgICAgICAgICAgcmVzb2x2ZUxvZyxcbiAgICAgICAgICAgICAgdGhpcy5vcHRpb25zLnRocm90dGxlXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCB7XG4gICAgICB9XG4gICAgfVxuICAgIHJlc29sdmVMb2codHJ1ZSk7XG4gIH1cbiAgX2xvZyhsb2dPYmopIHtcbiAgICBmb3IgKGNvbnN0IHJlcG9ydGVyIG9mIHRoaXMub3B0aW9ucy5yZXBvcnRlcnMpIHtcbiAgICAgIHJlcG9ydGVyLmxvZyhsb2dPYmosIHtcbiAgICAgICAgb3B0aW9uczogdGhpcy5vcHRpb25zXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIF9ub3JtYWxpemVMb2dMZXZlbChpbnB1dCwgdHlwZXMgPSB7fSwgZGVmYXVsdExldmVsID0gMykge1xuICBpZiAoaW5wdXQgPT09IHZvaWQgMCkge1xuICAgIHJldHVybiBkZWZhdWx0TGV2ZWw7XG4gIH1cbiAgaWYgKHR5cGVvZiBpbnB1dCA9PT0gXCJudW1iZXJcIikge1xuICAgIHJldHVybiBpbnB1dDtcbiAgfVxuICBpZiAodHlwZXNbaW5wdXRdICYmIHR5cGVzW2lucHV0XS5sZXZlbCAhPT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuIHR5cGVzW2lucHV0XS5sZXZlbDtcbiAgfVxuICByZXR1cm4gZGVmYXVsdExldmVsO1xufVxuQ29uc29sYS5wcm90b3R5cGUuYWRkID0gQ29uc29sYS5wcm90b3R5cGUuYWRkUmVwb3J0ZXI7XG5Db25zb2xhLnByb3RvdHlwZS5yZW1vdmUgPSBDb25zb2xhLnByb3RvdHlwZS5yZW1vdmVSZXBvcnRlcjtcbkNvbnNvbGEucHJvdG90eXBlLmNsZWFyID0gQ29uc29sYS5wcm90b3R5cGUucmVtb3ZlUmVwb3J0ZXI7XG5Db25zb2xhLnByb3RvdHlwZS53aXRoU2NvcGUgPSBDb25zb2xhLnByb3RvdHlwZS53aXRoVGFnO1xuQ29uc29sYS5wcm90b3R5cGUubW9jayA9IENvbnNvbGEucHJvdG90eXBlLm1vY2tUeXBlcztcbkNvbnNvbGEucHJvdG90eXBlLnBhdXNlID0gQ29uc29sYS5wcm90b3R5cGUucGF1c2VMb2dzO1xuQ29uc29sYS5wcm90b3R5cGUucmVzdW1lID0gQ29uc29sYS5wcm90b3R5cGUucmVzdW1lTG9ncztcbmZ1bmN0aW9uIGNyZWF0ZUNvbnNvbGEob3B0aW9ucyA9IHt9KSB7XG4gIHJldHVybiBuZXcgQ29uc29sYShvcHRpb25zKTtcbn1cblxuZXhwb3J0IHsgQ29uc29sYSwgTG9nTGV2ZWxzLCBMb2dUeXBlcywgY3JlYXRlQ29uc29sYSB9O1xuIiwgImltcG9ydCB7IGZvcm1hdFdpdGhPcHRpb25zIH0gZnJvbSAnbm9kZTp1dGlsJztcbmltcG9ydCB7IHNlcCB9IGZyb20gJ25vZGU6cGF0aCc7XG5cbmZ1bmN0aW9uIHBhcnNlU3RhY2soc3RhY2spIHtcbiAgY29uc3QgY3dkID0gcHJvY2Vzcy5jd2QoKSArIHNlcDtcbiAgY29uc3QgbGluZXMgPSBzdGFjay5zcGxpdChcIlxcblwiKS5zcGxpY2UoMSkubWFwKChsKSA9PiBsLnRyaW0oKS5yZXBsYWNlKFwiZmlsZTovL1wiLCBcIlwiKS5yZXBsYWNlKGN3ZCwgXCJcIikpO1xuICByZXR1cm4gbGluZXM7XG59XG5cbmZ1bmN0aW9uIHdyaXRlU3RyZWFtKGRhdGEsIHN0cmVhbSkge1xuICBjb25zdCB3cml0ZSA9IHN0cmVhbS5fX3dyaXRlIHx8IHN0cmVhbS53cml0ZTtcbiAgcmV0dXJuIHdyaXRlLmNhbGwoc3RyZWFtLCBkYXRhKTtcbn1cblxuY29uc3QgYnJhY2tldCA9ICh4KSA9PiB4ID8gYFske3h9XWAgOiBcIlwiO1xuY2xhc3MgQmFzaWNSZXBvcnRlciB7XG4gIGZvcm1hdFN0YWNrKHN0YWNrLCBvcHRzKSB7XG4gICAgcmV0dXJuIFwiICBcIiArIHBhcnNlU3RhY2soc3RhY2spLmpvaW4oXCJcXG4gIFwiKTtcbiAgfVxuICBmb3JtYXRBcmdzKGFyZ3MsIG9wdHMpIHtcbiAgICBjb25zdCBfYXJncyA9IGFyZ3MubWFwKChhcmcpID0+IHtcbiAgICAgIGlmIChhcmcgJiYgdHlwZW9mIGFyZy5zdGFjayA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICByZXR1cm4gYXJnLm1lc3NhZ2UgKyBcIlxcblwiICsgdGhpcy5mb3JtYXRTdGFjayhhcmcuc3RhY2ssIG9wdHMpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFyZztcbiAgICB9KTtcbiAgICByZXR1cm4gZm9ybWF0V2l0aE9wdGlvbnMob3B0cywgLi4uX2FyZ3MpO1xuICB9XG4gIGZvcm1hdERhdGUoZGF0ZSwgb3B0cykge1xuICAgIHJldHVybiBvcHRzLmRhdGUgPyBkYXRlLnRvTG9jYWxlVGltZVN0cmluZygpIDogXCJcIjtcbiAgfVxuICBmaWx0ZXJBbmRKb2luKGFycikge1xuICAgIHJldHVybiBhcnIuZmlsdGVyKEJvb2xlYW4pLmpvaW4oXCIgXCIpO1xuICB9XG4gIGZvcm1hdExvZ09iaihsb2dPYmosIG9wdHMpIHtcbiAgICBjb25zdCBtZXNzYWdlID0gdGhpcy5mb3JtYXRBcmdzKGxvZ09iai5hcmdzLCBvcHRzKTtcbiAgICBpZiAobG9nT2JqLnR5cGUgPT09IFwiYm94XCIpIHtcbiAgICAgIHJldHVybiBcIlxcblwiICsgW1xuICAgICAgICBicmFja2V0KGxvZ09iai50YWcpLFxuICAgICAgICBsb2dPYmoudGl0bGUgJiYgbG9nT2JqLnRpdGxlLFxuICAgICAgICAuLi5tZXNzYWdlLnNwbGl0KFwiXFxuXCIpXG4gICAgICBdLmZpbHRlcihCb29sZWFuKS5tYXAoKGwpID0+IFwiID4gXCIgKyBsKS5qb2luKFwiXFxuXCIpICsgXCJcXG5cIjtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyQW5kSm9pbihbXG4gICAgICBicmFja2V0KGxvZ09iai50eXBlKSxcbiAgICAgIGJyYWNrZXQobG9nT2JqLnRhZyksXG4gICAgICBtZXNzYWdlXG4gICAgXSk7XG4gIH1cbiAgbG9nKGxvZ09iaiwgY3R4KSB7XG4gICAgY29uc3QgbGluZSA9IHRoaXMuZm9ybWF0TG9nT2JqKGxvZ09iaiwge1xuICAgICAgY29sdW1uczogY3R4Lm9wdGlvbnMuc3Rkb3V0LmNvbHVtbnMgfHwgMCxcbiAgICAgIC4uLmN0eC5vcHRpb25zLmZvcm1hdE9wdGlvbnNcbiAgICB9KTtcbiAgICByZXR1cm4gd3JpdGVTdHJlYW0oXG4gICAgICBsaW5lICsgXCJcXG5cIixcbiAgICAgIGxvZ09iai5sZXZlbCA8IDIgPyBjdHgub3B0aW9ucy5zdGRlcnIgfHwgcHJvY2Vzcy5zdGRlcnIgOiBjdHgub3B0aW9ucy5zdGRvdXQgfHwgcHJvY2Vzcy5zdGRvdXRcbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCB7IEJhc2ljUmVwb3J0ZXIgYXMgQiwgcGFyc2VTdGFjayBhcyBwIH07XG4iLCAiaW1wb3J0ICogYXMgdHR5IGZyb20gJ25vZGU6dHR5JztcblxuY29uc3Qge1xuICBlbnYgPSB7fSxcbiAgYXJndiA9IFtdLFxuICBwbGF0Zm9ybSA9IFwiXCJcbn0gPSB0eXBlb2YgcHJvY2VzcyA9PT0gXCJ1bmRlZmluZWRcIiA/IHt9IDogcHJvY2VzcztcbmNvbnN0IGlzRGlzYWJsZWQgPSBcIk5PX0NPTE9SXCIgaW4gZW52IHx8IGFyZ3YuaW5jbHVkZXMoXCItLW5vLWNvbG9yXCIpO1xuY29uc3QgaXNGb3JjZWQgPSBcIkZPUkNFX0NPTE9SXCIgaW4gZW52IHx8IGFyZ3YuaW5jbHVkZXMoXCItLWNvbG9yXCIpO1xuY29uc3QgaXNXaW5kb3dzID0gcGxhdGZvcm0gPT09IFwid2luMzJcIjtcbmNvbnN0IGlzRHVtYlRlcm1pbmFsID0gZW52LlRFUk0gPT09IFwiZHVtYlwiO1xuY29uc3QgaXNDb21wYXRpYmxlVGVybWluYWwgPSB0dHkgJiYgdHR5LmlzYXR0eSAmJiB0dHkuaXNhdHR5KDEpICYmIGVudi5URVJNICYmICFpc0R1bWJUZXJtaW5hbDtcbmNvbnN0IGlzQ0kgPSBcIkNJXCIgaW4gZW52ICYmIChcIkdJVEhVQl9BQ1RJT05TXCIgaW4gZW52IHx8IFwiR0lUTEFCX0NJXCIgaW4gZW52IHx8IFwiQ0lSQ0xFQ0lcIiBpbiBlbnYpO1xuY29uc3QgaXNDb2xvclN1cHBvcnRlZCA9ICFpc0Rpc2FibGVkICYmIChpc0ZvcmNlZCB8fCBpc1dpbmRvd3MgJiYgIWlzRHVtYlRlcm1pbmFsIHx8IGlzQ29tcGF0aWJsZVRlcm1pbmFsIHx8IGlzQ0kpO1xuZnVuY3Rpb24gcmVwbGFjZUNsb3NlKGluZGV4LCBzdHJpbmcsIGNsb3NlLCByZXBsYWNlLCBoZWFkID0gc3RyaW5nLnNsaWNlKDAsIE1hdGgubWF4KDAsIGluZGV4KSkgKyByZXBsYWNlLCB0YWlsID0gc3RyaW5nLnNsaWNlKE1hdGgubWF4KDAsIGluZGV4ICsgY2xvc2UubGVuZ3RoKSksIG5leHQgPSB0YWlsLmluZGV4T2YoY2xvc2UpKSB7XG4gIHJldHVybiBoZWFkICsgKG5leHQgPCAwID8gdGFpbCA6IHJlcGxhY2VDbG9zZShuZXh0LCB0YWlsLCBjbG9zZSwgcmVwbGFjZSkpO1xufVxuZnVuY3Rpb24gY2xlYXJCbGVlZChpbmRleCwgc3RyaW5nLCBvcGVuLCBjbG9zZSwgcmVwbGFjZSkge1xuICByZXR1cm4gaW5kZXggPCAwID8gb3BlbiArIHN0cmluZyArIGNsb3NlIDogb3BlbiArIHJlcGxhY2VDbG9zZShpbmRleCwgc3RyaW5nLCBjbG9zZSwgcmVwbGFjZSkgKyBjbG9zZTtcbn1cbmZ1bmN0aW9uIGZpbHRlckVtcHR5KG9wZW4sIGNsb3NlLCByZXBsYWNlID0gb3BlbiwgYXQgPSBvcGVuLmxlbmd0aCArIDEpIHtcbiAgcmV0dXJuIChzdHJpbmcpID0+IHN0cmluZyB8fCAhKHN0cmluZyA9PT0gXCJcIiB8fCBzdHJpbmcgPT09IHZvaWQgMCkgPyBjbGVhckJsZWVkKFxuICAgIChcIlwiICsgc3RyaW5nKS5pbmRleE9mKGNsb3NlLCBhdCksXG4gICAgc3RyaW5nLFxuICAgIG9wZW4sXG4gICAgY2xvc2UsXG4gICAgcmVwbGFjZVxuICApIDogXCJcIjtcbn1cbmZ1bmN0aW9uIGluaXQob3BlbiwgY2xvc2UsIHJlcGxhY2UpIHtcbiAgcmV0dXJuIGZpbHRlckVtcHR5KGBcXHgxQlske29wZW59bWAsIGBcXHgxQlske2Nsb3NlfW1gLCByZXBsYWNlKTtcbn1cbmNvbnN0IGNvbG9yRGVmcyA9IHtcbiAgcmVzZXQ6IGluaXQoMCwgMCksXG4gIGJvbGQ6IGluaXQoMSwgMjIsIFwiXFx4MUJbMjJtXFx4MUJbMW1cIiksXG4gIGRpbTogaW5pdCgyLCAyMiwgXCJcXHgxQlsyMm1cXHgxQlsybVwiKSxcbiAgaXRhbGljOiBpbml0KDMsIDIzKSxcbiAgdW5kZXJsaW5lOiBpbml0KDQsIDI0KSxcbiAgaW52ZXJzZTogaW5pdCg3LCAyNyksXG4gIGhpZGRlbjogaW5pdCg4LCAyOCksXG4gIHN0cmlrZXRocm91Z2g6IGluaXQoOSwgMjkpLFxuICBibGFjazogaW5pdCgzMCwgMzkpLFxuICByZWQ6IGluaXQoMzEsIDM5KSxcbiAgZ3JlZW46IGluaXQoMzIsIDM5KSxcbiAgeWVsbG93OiBpbml0KDMzLCAzOSksXG4gIGJsdWU6IGluaXQoMzQsIDM5KSxcbiAgbWFnZW50YTogaW5pdCgzNSwgMzkpLFxuICBjeWFuOiBpbml0KDM2LCAzOSksXG4gIHdoaXRlOiBpbml0KDM3LCAzOSksXG4gIGdyYXk6IGluaXQoOTAsIDM5KSxcbiAgYmdCbGFjazogaW5pdCg0MCwgNDkpLFxuICBiZ1JlZDogaW5pdCg0MSwgNDkpLFxuICBiZ0dyZWVuOiBpbml0KDQyLCA0OSksXG4gIGJnWWVsbG93OiBpbml0KDQzLCA0OSksXG4gIGJnQmx1ZTogaW5pdCg0NCwgNDkpLFxuICBiZ01hZ2VudGE6IGluaXQoNDUsIDQ5KSxcbiAgYmdDeWFuOiBpbml0KDQ2LCA0OSksXG4gIGJnV2hpdGU6IGluaXQoNDcsIDQ5KSxcbiAgYmxhY2tCcmlnaHQ6IGluaXQoOTAsIDM5KSxcbiAgcmVkQnJpZ2h0OiBpbml0KDkxLCAzOSksXG4gIGdyZWVuQnJpZ2h0OiBpbml0KDkyLCAzOSksXG4gIHllbGxvd0JyaWdodDogaW5pdCg5MywgMzkpLFxuICBibHVlQnJpZ2h0OiBpbml0KDk0LCAzOSksXG4gIG1hZ2VudGFCcmlnaHQ6IGluaXQoOTUsIDM5KSxcbiAgY3lhbkJyaWdodDogaW5pdCg5NiwgMzkpLFxuICB3aGl0ZUJyaWdodDogaW5pdCg5NywgMzkpLFxuICBiZ0JsYWNrQnJpZ2h0OiBpbml0KDEwMCwgNDkpLFxuICBiZ1JlZEJyaWdodDogaW5pdCgxMDEsIDQ5KSxcbiAgYmdHcmVlbkJyaWdodDogaW5pdCgxMDIsIDQ5KSxcbiAgYmdZZWxsb3dCcmlnaHQ6IGluaXQoMTAzLCA0OSksXG4gIGJnQmx1ZUJyaWdodDogaW5pdCgxMDQsIDQ5KSxcbiAgYmdNYWdlbnRhQnJpZ2h0OiBpbml0KDEwNSwgNDkpLFxuICBiZ0N5YW5CcmlnaHQ6IGluaXQoMTA2LCA0OSksXG4gIGJnV2hpdGVCcmlnaHQ6IGluaXQoMTA3LCA0OSlcbn07XG5mdW5jdGlvbiBjcmVhdGVDb2xvcnModXNlQ29sb3IgPSBpc0NvbG9yU3VwcG9ydGVkKSB7XG4gIHJldHVybiB1c2VDb2xvciA/IGNvbG9yRGVmcyA6IE9iamVjdC5mcm9tRW50cmllcyhPYmplY3Qua2V5cyhjb2xvckRlZnMpLm1hcCgoa2V5KSA9PiBba2V5LCBTdHJpbmddKSk7XG59XG5jb25zdCBjb2xvcnMgPSBjcmVhdGVDb2xvcnMoKTtcbmZ1bmN0aW9uIGdldENvbG9yKGNvbG9yLCBmYWxsYmFjayA9IFwicmVzZXRcIikge1xuICByZXR1cm4gY29sb3JzW2NvbG9yXSB8fCBjb2xvcnNbZmFsbGJhY2tdO1xufVxuZnVuY3Rpb24gY29sb3JpemUoY29sb3IsIHRleHQpIHtcbiAgcmV0dXJuIGdldENvbG9yKGNvbG9yKSh0ZXh0KTtcbn1cblxuY29uc3QgYW5zaVJlZ2V4ID0gW1xuICBcIltcXFxcdTAwMUJcXFxcdTAwOUJdW1tcXFxcXSgpIzs/XSooPzooPzooPzooPzo7Wy1hLXpBLVpcXFxcZFxcXFwvIyYuOj0/JUB+X10rKSp8W2EtekEtWlxcXFxkXSsoPzo7Wy1hLXpBLVpcXFxcZFxcXFwvIyYuOj0/JUB+X10qKSopP1xcXFx1MDAwNylcIixcbiAgXCIoPzooPzpcXFxcZHsxLDR9KD86O1xcXFxkezAsNH0pKik/W1xcXFxkQS1QUi1UWmNmLW5xLXV5PT48fl0pKVwiXG5dLmpvaW4oXCJ8XCIpO1xuZnVuY3Rpb24gc3RyaXBBbnNpKHRleHQpIHtcbiAgcmV0dXJuIHRleHQucmVwbGFjZShuZXcgUmVnRXhwKGFuc2lSZWdleCwgXCJnXCIpLCBcIlwiKTtcbn1cbmZ1bmN0aW9uIGNlbnRlckFsaWduKHN0ciwgbGVuLCBzcGFjZSA9IFwiIFwiKSB7XG4gIGNvbnN0IGZyZWUgPSBsZW4gLSBzdHIubGVuZ3RoO1xuICBpZiAoZnJlZSA8PSAwKSB7XG4gICAgcmV0dXJuIHN0cjtcbiAgfVxuICBjb25zdCBmcmVlTGVmdCA9IE1hdGguZmxvb3IoZnJlZSAvIDIpO1xuICBsZXQgX3N0ciA9IFwiXCI7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICBfc3RyICs9IGkgPCBmcmVlTGVmdCB8fCBpID49IGZyZWVMZWZ0ICsgc3RyLmxlbmd0aCA/IHNwYWNlIDogc3RyW2kgLSBmcmVlTGVmdF07XG4gIH1cbiAgcmV0dXJuIF9zdHI7XG59XG5mdW5jdGlvbiByaWdodEFsaWduKHN0ciwgbGVuLCBzcGFjZSA9IFwiIFwiKSB7XG4gIGNvbnN0IGZyZWUgPSBsZW4gLSBzdHIubGVuZ3RoO1xuICBpZiAoZnJlZSA8PSAwKSB7XG4gICAgcmV0dXJuIHN0cjtcbiAgfVxuICBsZXQgX3N0ciA9IFwiXCI7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICBfc3RyICs9IGkgPCBmcmVlID8gc3BhY2UgOiBzdHJbaSAtIGZyZWVdO1xuICB9XG4gIHJldHVybiBfc3RyO1xufVxuZnVuY3Rpb24gbGVmdEFsaWduKHN0ciwgbGVuLCBzcGFjZSA9IFwiIFwiKSB7XG4gIGxldCBfc3RyID0gXCJcIjtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgIF9zdHIgKz0gaSA8IHN0ci5sZW5ndGggPyBzdHJbaV0gOiBzcGFjZTtcbiAgfVxuICByZXR1cm4gX3N0cjtcbn1cbmZ1bmN0aW9uIGFsaWduKGFsaWdubWVudCwgc3RyLCBsZW4sIHNwYWNlID0gXCIgXCIpIHtcbiAgc3dpdGNoIChhbGlnbm1lbnQpIHtcbiAgICBjYXNlIFwibGVmdFwiOiB7XG4gICAgICByZXR1cm4gbGVmdEFsaWduKHN0ciwgbGVuLCBzcGFjZSk7XG4gICAgfVxuICAgIGNhc2UgXCJyaWdodFwiOiB7XG4gICAgICByZXR1cm4gcmlnaHRBbGlnbihzdHIsIGxlbiwgc3BhY2UpO1xuICAgIH1cbiAgICBjYXNlIFwiY2VudGVyXCI6IHtcbiAgICAgIHJldHVybiBjZW50ZXJBbGlnbihzdHIsIGxlbiwgc3BhY2UpO1xuICAgIH1cbiAgICBkZWZhdWx0OiB7XG4gICAgICByZXR1cm4gc3RyO1xuICAgIH1cbiAgfVxufVxuXG5jb25zdCBib3hTdHlsZVByZXNldHMgPSB7XG4gIHNvbGlkOiB7XG4gICAgdGw6IFwiXFx1MjUwQ1wiLFxuICAgIHRyOiBcIlxcdTI1MTBcIixcbiAgICBibDogXCJcXHUyNTE0XCIsXG4gICAgYnI6IFwiXFx1MjUxOFwiLFxuICAgIGg6IFwiXFx1MjUwMFwiLFxuICAgIHY6IFwiXFx1MjUwMlwiXG4gIH0sXG4gIGRvdWJsZToge1xuICAgIHRsOiBcIlxcdTI1NTRcIixcbiAgICB0cjogXCJcXHUyNTU3XCIsXG4gICAgYmw6IFwiXFx1MjU1QVwiLFxuICAgIGJyOiBcIlxcdTI1NURcIixcbiAgICBoOiBcIlxcdTI1NTBcIixcbiAgICB2OiBcIlxcdTI1NTFcIlxuICB9LFxuICBkb3VibGVTaW5nbGU6IHtcbiAgICB0bDogXCJcXHUyNTUzXCIsXG4gICAgdHI6IFwiXFx1MjU1NlwiLFxuICAgIGJsOiBcIlxcdTI1NTlcIixcbiAgICBicjogXCJcXHUyNTVDXCIsXG4gICAgaDogXCJcXHUyNTAwXCIsXG4gICAgdjogXCJcXHUyNTUxXCJcbiAgfSxcbiAgZG91YmxlU2luZ2xlUm91bmRlZDoge1xuICAgIHRsOiBcIlxcdTI1NkRcIixcbiAgICB0cjogXCJcXHUyNTZFXCIsXG4gICAgYmw6IFwiXFx1MjU3MFwiLFxuICAgIGJyOiBcIlxcdTI1NkZcIixcbiAgICBoOiBcIlxcdTI1MDBcIixcbiAgICB2OiBcIlxcdTI1NTFcIlxuICB9LFxuICBzaW5nbGVUaGljazoge1xuICAgIHRsOiBcIlxcdTI1MEZcIixcbiAgICB0cjogXCJcXHUyNTEzXCIsXG4gICAgYmw6IFwiXFx1MjUxN1wiLFxuICAgIGJyOiBcIlxcdTI1MUJcIixcbiAgICBoOiBcIlxcdTI1MDFcIixcbiAgICB2OiBcIlxcdTI1MDNcIlxuICB9LFxuICBzaW5nbGVEb3VibGU6IHtcbiAgICB0bDogXCJcXHUyNTUyXCIsXG4gICAgdHI6IFwiXFx1MjU1NVwiLFxuICAgIGJsOiBcIlxcdTI1NThcIixcbiAgICBicjogXCJcXHUyNTVCXCIsXG4gICAgaDogXCJcXHUyNTUwXCIsXG4gICAgdjogXCJcXHUyNTAyXCJcbiAgfSxcbiAgc2luZ2xlRG91YmxlUm91bmRlZDoge1xuICAgIHRsOiBcIlxcdTI1NkRcIixcbiAgICB0cjogXCJcXHUyNTZFXCIsXG4gICAgYmw6IFwiXFx1MjU3MFwiLFxuICAgIGJyOiBcIlxcdTI1NkZcIixcbiAgICBoOiBcIlxcdTI1NTBcIixcbiAgICB2OiBcIlxcdTI1MDJcIlxuICB9LFxuICByb3VuZGVkOiB7XG4gICAgdGw6IFwiXFx1MjU2RFwiLFxuICAgIHRyOiBcIlxcdTI1NkVcIixcbiAgICBibDogXCJcXHUyNTcwXCIsXG4gICAgYnI6IFwiXFx1MjU2RlwiLFxuICAgIGg6IFwiXFx1MjUwMFwiLFxuICAgIHY6IFwiXFx1MjUwMlwiXG4gIH1cbn07XG5jb25zdCBkZWZhdWx0U3R5bGUgPSB7XG4gIGJvcmRlckNvbG9yOiBcIndoaXRlXCIsXG4gIGJvcmRlclN0eWxlOiBcInJvdW5kZWRcIixcbiAgdmFsaWduOiBcImNlbnRlclwiLFxuICBwYWRkaW5nOiAyLFxuICBtYXJnaW5MZWZ0OiAxLFxuICBtYXJnaW5Ub3A6IDEsXG4gIG1hcmdpbkJvdHRvbTogMVxufTtcbmZ1bmN0aW9uIGJveCh0ZXh0LCBfb3B0cyA9IHt9KSB7XG4gIGNvbnN0IG9wdHMgPSB7XG4gICAgLi4uX29wdHMsXG4gICAgc3R5bGU6IHtcbiAgICAgIC4uLmRlZmF1bHRTdHlsZSxcbiAgICAgIC4uLl9vcHRzLnN0eWxlXG4gICAgfVxuICB9O1xuICBjb25zdCB0ZXh0TGluZXMgPSB0ZXh0LnNwbGl0KFwiXFxuXCIpO1xuICBjb25zdCBib3hMaW5lcyA9IFtdO1xuICBjb25zdCBfY29sb3IgPSBnZXRDb2xvcihvcHRzLnN0eWxlLmJvcmRlckNvbG9yKTtcbiAgY29uc3QgYm9yZGVyU3R5bGUgPSB7XG4gICAgLi4udHlwZW9mIG9wdHMuc3R5bGUuYm9yZGVyU3R5bGUgPT09IFwic3RyaW5nXCIgPyBib3hTdHlsZVByZXNldHNbb3B0cy5zdHlsZS5ib3JkZXJTdHlsZV0gfHwgYm94U3R5bGVQcmVzZXRzLnNvbGlkIDogb3B0cy5zdHlsZS5ib3JkZXJTdHlsZVxuICB9O1xuICBpZiAoX2NvbG9yKSB7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gYm9yZGVyU3R5bGUpIHtcbiAgICAgIGJvcmRlclN0eWxlW2tleV0gPSBfY29sb3IoXG4gICAgICAgIGJvcmRlclN0eWxlW2tleV1cbiAgICAgICk7XG4gICAgfVxuICB9XG4gIGNvbnN0IHBhZGRpbmdPZmZzZXQgPSBvcHRzLnN0eWxlLnBhZGRpbmcgJSAyID09PSAwID8gb3B0cy5zdHlsZS5wYWRkaW5nIDogb3B0cy5zdHlsZS5wYWRkaW5nICsgMTtcbiAgY29uc3QgaGVpZ2h0ID0gdGV4dExpbmVzLmxlbmd0aCArIHBhZGRpbmdPZmZzZXQ7XG4gIGNvbnN0IHdpZHRoID0gTWF0aC5tYXgoLi4udGV4dExpbmVzLm1hcCgobGluZSkgPT4gbGluZS5sZW5ndGgpKSArIHBhZGRpbmdPZmZzZXQ7XG4gIGNvbnN0IHdpZHRoT2Zmc2V0ID0gd2lkdGggKyBwYWRkaW5nT2Zmc2V0O1xuICBjb25zdCBsZWZ0U3BhY2UgPSBvcHRzLnN0eWxlLm1hcmdpbkxlZnQgPiAwID8gXCIgXCIucmVwZWF0KG9wdHMuc3R5bGUubWFyZ2luTGVmdCkgOiBcIlwiO1xuICBpZiAob3B0cy5zdHlsZS5tYXJnaW5Ub3AgPiAwKSB7XG4gICAgYm94TGluZXMucHVzaChcIlwiLnJlcGVhdChvcHRzLnN0eWxlLm1hcmdpblRvcCkpO1xuICB9XG4gIGlmIChvcHRzLnRpdGxlKSB7XG4gICAgY29uc3QgbGVmdCA9IGJvcmRlclN0eWxlLmgucmVwZWF0KFxuICAgICAgTWF0aC5mbG9vcigod2lkdGggLSBzdHJpcEFuc2kob3B0cy50aXRsZSkubGVuZ3RoKSAvIDIpXG4gICAgKTtcbiAgICBjb25zdCByaWdodCA9IGJvcmRlclN0eWxlLmgucmVwZWF0KFxuICAgICAgd2lkdGggLSBzdHJpcEFuc2kob3B0cy50aXRsZSkubGVuZ3RoIC0gc3RyaXBBbnNpKGxlZnQpLmxlbmd0aCArIHBhZGRpbmdPZmZzZXRcbiAgICApO1xuICAgIGJveExpbmVzLnB1c2goXG4gICAgICBgJHtsZWZ0U3BhY2V9JHtib3JkZXJTdHlsZS50bH0ke2xlZnR9JHtvcHRzLnRpdGxlfSR7cmlnaHR9JHtib3JkZXJTdHlsZS50cn1gXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICBib3hMaW5lcy5wdXNoKFxuICAgICAgYCR7bGVmdFNwYWNlfSR7Ym9yZGVyU3R5bGUudGx9JHtib3JkZXJTdHlsZS5oLnJlcGVhdCh3aWR0aE9mZnNldCl9JHtib3JkZXJTdHlsZS50cn1gXG4gICAgKTtcbiAgfVxuICBjb25zdCB2YWxpZ25PZmZzZXQgPSBvcHRzLnN0eWxlLnZhbGlnbiA9PT0gXCJjZW50ZXJcIiA/IE1hdGguZmxvb3IoKGhlaWdodCAtIHRleHRMaW5lcy5sZW5ndGgpIC8gMikgOiBvcHRzLnN0eWxlLnZhbGlnbiA9PT0gXCJ0b3BcIiA/IGhlaWdodCAtIHRleHRMaW5lcy5sZW5ndGggLSBwYWRkaW5nT2Zmc2V0IDogaGVpZ2h0IC0gdGV4dExpbmVzLmxlbmd0aDtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBoZWlnaHQ7IGkrKykge1xuICAgIGlmIChpIDwgdmFsaWduT2Zmc2V0IHx8IGkgPj0gdmFsaWduT2Zmc2V0ICsgdGV4dExpbmVzLmxlbmd0aCkge1xuICAgICAgYm94TGluZXMucHVzaChcbiAgICAgICAgYCR7bGVmdFNwYWNlfSR7Ym9yZGVyU3R5bGUudn0ke1wiIFwiLnJlcGVhdCh3aWR0aE9mZnNldCl9JHtib3JkZXJTdHlsZS52fWBcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGxpbmUgPSB0ZXh0TGluZXNbaSAtIHZhbGlnbk9mZnNldF07XG4gICAgICBjb25zdCBsZWZ0ID0gXCIgXCIucmVwZWF0KHBhZGRpbmdPZmZzZXQpO1xuICAgICAgY29uc3QgcmlnaHQgPSBcIiBcIi5yZXBlYXQod2lkdGggLSBzdHJpcEFuc2kobGluZSkubGVuZ3RoKTtcbiAgICAgIGJveExpbmVzLnB1c2goXG4gICAgICAgIGAke2xlZnRTcGFjZX0ke2JvcmRlclN0eWxlLnZ9JHtsZWZ0fSR7bGluZX0ke3JpZ2h0fSR7Ym9yZGVyU3R5bGUudn1gXG4gICAgICApO1xuICAgIH1cbiAgfVxuICBib3hMaW5lcy5wdXNoKFxuICAgIGAke2xlZnRTcGFjZX0ke2JvcmRlclN0eWxlLmJsfSR7Ym9yZGVyU3R5bGUuaC5yZXBlYXQod2lkdGhPZmZzZXQpfSR7Ym9yZGVyU3R5bGUuYnJ9YFxuICApO1xuICBpZiAob3B0cy5zdHlsZS5tYXJnaW5Cb3R0b20gPiAwKSB7XG4gICAgYm94TGluZXMucHVzaChcIlwiLnJlcGVhdChvcHRzLnN0eWxlLm1hcmdpbkJvdHRvbSkpO1xuICB9XG4gIHJldHVybiBib3hMaW5lcy5qb2luKFwiXFxuXCIpO1xufVxuXG5leHBvcnQgeyBhbGlnbiwgYm94LCBjZW50ZXJBbGlnbiwgY29sb3JpemUsIGNvbG9ycywgZ2V0Q29sb3IsIGxlZnRBbGlnbiwgcmlnaHRBbGlnbiwgc3RyaXBBbnNpIH07XG4iLCAiaW1wb3J0IHsgc3RkaW4sIHN0ZG91dCB9IGZyb20gJ25vZGU6cHJvY2Vzcyc7XG5pbXBvcnQgZiBmcm9tICdub2RlOnJlYWRsaW5lJztcbmltcG9ydCB7IFdyaXRlU3RyZWFtIH0gZnJvbSAnbm9kZTp0dHknO1xuaW1wb3J0IHsgZyBhcyBnZXREZWZhdWx0RXhwb3J0RnJvbUNqcywgaSBhcyBpc1VuaWNvZGVTdXBwb3J0ZWQgfSBmcm9tICcuLi9zaGFyZWQvY29uc29sYS4zNmMwMDM0Zi5tanMnO1xuaW1wb3J0IHJlcXVpcmUkJDAgZnJvbSAndHR5JztcbmltcG9ydCB7IGNvbG9ycyB9IGZyb20gJy4uL3V0aWxzLm1qcyc7XG5pbXBvcnQgJy4uL2NvcmUubWpzJztcbmltcG9ydCAnLi4vc2hhcmVkL2NvbnNvbGEuMDZhZDhhNjQubWpzJztcbmltcG9ydCAnbm9kZTp1dGlsJztcbmltcG9ydCAnbm9kZTpwYXRoJztcblxuY29uc3QgRVNDID0gJ1xceDFCJztcbmNvbnN0IENTSSA9IGAke0VTQ31bYDtcbmNvbnN0IGJlZXAgPSAnXFx1MDAwNyc7XG5cbmNvbnN0IGN1cnNvciA9IHtcbiAgdG8oeCwgeSkge1xuICAgIGlmICgheSkgcmV0dXJuIGAke0NTSX0ke3ggKyAxfUdgO1xuICAgIHJldHVybiBgJHtDU0l9JHt5ICsgMX07JHt4ICsgMX1IYDtcbiAgfSxcbiAgbW92ZSh4LCB5KSB7XG4gICAgbGV0IHJldCA9ICcnO1xuXG4gICAgaWYgKHggPCAwKSByZXQgKz0gYCR7Q1NJfSR7LXh9RGA7XG4gICAgZWxzZSBpZiAoeCA+IDApIHJldCArPSBgJHtDU0l9JHt4fUNgO1xuXG4gICAgaWYgKHkgPCAwKSByZXQgKz0gYCR7Q1NJfSR7LXl9QWA7XG4gICAgZWxzZSBpZiAoeSA+IDApIHJldCArPSBgJHtDU0l9JHt5fUJgO1xuXG4gICAgcmV0dXJuIHJldDtcbiAgfSxcbiAgdXA6IChjb3VudCA9IDEpID0+IGAke0NTSX0ke2NvdW50fUFgLFxuICBkb3duOiAoY291bnQgPSAxKSA9PiBgJHtDU0l9JHtjb3VudH1CYCxcbiAgZm9yd2FyZDogKGNvdW50ID0gMSkgPT4gYCR7Q1NJfSR7Y291bnR9Q2AsXG4gIGJhY2t3YXJkOiAoY291bnQgPSAxKSA9PiBgJHtDU0l9JHtjb3VudH1EYCxcbiAgbmV4dExpbmU6IChjb3VudCA9IDEpID0+IGAke0NTSX1FYC5yZXBlYXQoY291bnQpLFxuICBwcmV2TGluZTogKGNvdW50ID0gMSkgPT4gYCR7Q1NJfUZgLnJlcGVhdChjb3VudCksXG4gIGxlZnQ6IGAke0NTSX1HYCxcbiAgaGlkZTogYCR7Q1NJfT8yNWxgLFxuICBzaG93OiBgJHtDU0l9PzI1aGAsXG4gIHNhdmU6IGAke0VTQ303YCxcbiAgcmVzdG9yZTogYCR7RVNDfThgXG59O1xuXG5jb25zdCBzY3JvbGwgPSB7XG4gIHVwOiAoY291bnQgPSAxKSA9PiBgJHtDU0l9U2AucmVwZWF0KGNvdW50KSxcbiAgZG93bjogKGNvdW50ID0gMSkgPT4gYCR7Q1NJfVRgLnJlcGVhdChjb3VudClcbn07XG5cbmNvbnN0IGVyYXNlID0ge1xuICBzY3JlZW46IGAke0NTSX0ySmAsXG4gIHVwOiAoY291bnQgPSAxKSA9PiBgJHtDU0l9MUpgLnJlcGVhdChjb3VudCksXG4gIGRvd246IChjb3VudCA9IDEpID0+IGAke0NTSX1KYC5yZXBlYXQoY291bnQpLFxuICBsaW5lOiBgJHtDU0l9MktgLFxuICBsaW5lRW5kOiBgJHtDU0l9S2AsXG4gIGxpbmVTdGFydDogYCR7Q1NJfTFLYCxcbiAgbGluZXMoY291bnQpIHtcbiAgICBsZXQgY2xlYXIgPSAnJztcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvdW50OyBpKyspXG4gICAgICBjbGVhciArPSB0aGlzLmxpbmUgKyAoaSA8IGNvdW50IC0gMSA/IGN1cnNvci51cCgpIDogJycpO1xuICAgIGlmIChjb3VudClcbiAgICAgIGNsZWFyICs9IGN1cnNvci5sZWZ0O1xuICAgIHJldHVybiBjbGVhcjtcbiAgfVxufTtcblxudmFyIHNyYyA9IHsgY3Vyc29yLCBzY3JvbGwsIGVyYXNlLCBiZWVwIH07XG5cbnZhciBwaWNvY29sb3JzID0ge2V4cG9ydHM6IHt9fTtcblxubGV0IHR0eSA9IHJlcXVpcmUkJDA7XG5cbmxldCBpc0NvbG9yU3VwcG9ydGVkID1cblx0IShcIk5PX0NPTE9SXCIgaW4gcHJvY2Vzcy5lbnYgfHwgcHJvY2Vzcy5hcmd2LmluY2x1ZGVzKFwiLS1uby1jb2xvclwiKSkgJiZcblx0KFwiRk9SQ0VfQ09MT1JcIiBpbiBwcm9jZXNzLmVudiB8fFxuXHRcdHByb2Nlc3MuYXJndi5pbmNsdWRlcyhcIi0tY29sb3JcIikgfHxcblx0XHRwcm9jZXNzLnBsYXRmb3JtID09PSBcIndpbjMyXCIgfHxcblx0XHQodHR5LmlzYXR0eSgxKSAmJiBwcm9jZXNzLmVudi5URVJNICE9PSBcImR1bWJcIikgfHxcblx0XHRcIkNJXCIgaW4gcHJvY2Vzcy5lbnYpO1xuXG5sZXQgZm9ybWF0dGVyID1cblx0KG9wZW4sIGNsb3NlLCByZXBsYWNlID0gb3BlbikgPT5cblx0aW5wdXQgPT4ge1xuXHRcdGxldCBzdHJpbmcgPSBcIlwiICsgaW5wdXQ7XG5cdFx0bGV0IGluZGV4ID0gc3RyaW5nLmluZGV4T2YoY2xvc2UsIG9wZW4ubGVuZ3RoKTtcblx0XHRyZXR1cm4gfmluZGV4XG5cdFx0XHQ/IG9wZW4gKyByZXBsYWNlQ2xvc2Uoc3RyaW5nLCBjbG9zZSwgcmVwbGFjZSwgaW5kZXgpICsgY2xvc2Vcblx0XHRcdDogb3BlbiArIHN0cmluZyArIGNsb3NlXG5cdH07XG5cbmxldCByZXBsYWNlQ2xvc2UgPSAoc3RyaW5nLCBjbG9zZSwgcmVwbGFjZSwgaW5kZXgpID0+IHtcblx0bGV0IHN0YXJ0ID0gc3RyaW5nLnN1YnN0cmluZygwLCBpbmRleCkgKyByZXBsYWNlO1xuXHRsZXQgZW5kID0gc3RyaW5nLnN1YnN0cmluZyhpbmRleCArIGNsb3NlLmxlbmd0aCk7XG5cdGxldCBuZXh0SW5kZXggPSBlbmQuaW5kZXhPZihjbG9zZSk7XG5cdHJldHVybiB+bmV4dEluZGV4ID8gc3RhcnQgKyByZXBsYWNlQ2xvc2UoZW5kLCBjbG9zZSwgcmVwbGFjZSwgbmV4dEluZGV4KSA6IHN0YXJ0ICsgZW5kXG59O1xuXG5sZXQgY3JlYXRlQ29sb3JzID0gKGVuYWJsZWQgPSBpc0NvbG9yU3VwcG9ydGVkKSA9PiAoe1xuXHRpc0NvbG9yU3VwcG9ydGVkOiBlbmFibGVkLFxuXHRyZXNldDogZW5hYmxlZCA/IHMgPT4gYFxceDFiWzBtJHtzfVxceDFiWzBtYCA6IFN0cmluZyxcblx0Ym9sZDogZW5hYmxlZCA/IGZvcm1hdHRlcihcIlxceDFiWzFtXCIsIFwiXFx4MWJbMjJtXCIsIFwiXFx4MWJbMjJtXFx4MWJbMW1cIikgOiBTdHJpbmcsXG5cdGRpbTogZW5hYmxlZCA/IGZvcm1hdHRlcihcIlxceDFiWzJtXCIsIFwiXFx4MWJbMjJtXCIsIFwiXFx4MWJbMjJtXFx4MWJbMm1cIikgOiBTdHJpbmcsXG5cdGl0YWxpYzogZW5hYmxlZCA/IGZvcm1hdHRlcihcIlxceDFiWzNtXCIsIFwiXFx4MWJbMjNtXCIpIDogU3RyaW5nLFxuXHR1bmRlcmxpbmU6IGVuYWJsZWQgPyBmb3JtYXR0ZXIoXCJcXHgxYls0bVwiLCBcIlxceDFiWzI0bVwiKSA6IFN0cmluZyxcblx0aW52ZXJzZTogZW5hYmxlZCA/IGZvcm1hdHRlcihcIlxceDFiWzdtXCIsIFwiXFx4MWJbMjdtXCIpIDogU3RyaW5nLFxuXHRoaWRkZW46IGVuYWJsZWQgPyBmb3JtYXR0ZXIoXCJcXHgxYls4bVwiLCBcIlxceDFiWzI4bVwiKSA6IFN0cmluZyxcblx0c3RyaWtldGhyb3VnaDogZW5hYmxlZCA/IGZvcm1hdHRlcihcIlxceDFiWzltXCIsIFwiXFx4MWJbMjltXCIpIDogU3RyaW5nLFxuXHRibGFjazogZW5hYmxlZCA/IGZvcm1hdHRlcihcIlxceDFiWzMwbVwiLCBcIlxceDFiWzM5bVwiKSA6IFN0cmluZyxcblx0cmVkOiBlbmFibGVkID8gZm9ybWF0dGVyKFwiXFx4MWJbMzFtXCIsIFwiXFx4MWJbMzltXCIpIDogU3RyaW5nLFxuXHRncmVlbjogZW5hYmxlZCA/IGZvcm1hdHRlcihcIlxceDFiWzMybVwiLCBcIlxceDFiWzM5bVwiKSA6IFN0cmluZyxcblx0eWVsbG93OiBlbmFibGVkID8gZm9ybWF0dGVyKFwiXFx4MWJbMzNtXCIsIFwiXFx4MWJbMzltXCIpIDogU3RyaW5nLFxuXHRibHVlOiBlbmFibGVkID8gZm9ybWF0dGVyKFwiXFx4MWJbMzRtXCIsIFwiXFx4MWJbMzltXCIpIDogU3RyaW5nLFxuXHRtYWdlbnRhOiBlbmFibGVkID8gZm9ybWF0dGVyKFwiXFx4MWJbMzVtXCIsIFwiXFx4MWJbMzltXCIpIDogU3RyaW5nLFxuXHRjeWFuOiBlbmFibGVkID8gZm9ybWF0dGVyKFwiXFx4MWJbMzZtXCIsIFwiXFx4MWJbMzltXCIpIDogU3RyaW5nLFxuXHR3aGl0ZTogZW5hYmxlZCA/IGZvcm1hdHRlcihcIlxceDFiWzM3bVwiLCBcIlxceDFiWzM5bVwiKSA6IFN0cmluZyxcblx0Z3JheTogZW5hYmxlZCA/IGZvcm1hdHRlcihcIlxceDFiWzkwbVwiLCBcIlxceDFiWzM5bVwiKSA6IFN0cmluZyxcblx0YmdCbGFjazogZW5hYmxlZCA/IGZvcm1hdHRlcihcIlxceDFiWzQwbVwiLCBcIlxceDFiWzQ5bVwiKSA6IFN0cmluZyxcblx0YmdSZWQ6IGVuYWJsZWQgPyBmb3JtYXR0ZXIoXCJcXHgxYls0MW1cIiwgXCJcXHgxYls0OW1cIikgOiBTdHJpbmcsXG5cdGJnR3JlZW46IGVuYWJsZWQgPyBmb3JtYXR0ZXIoXCJcXHgxYls0Mm1cIiwgXCJcXHgxYls0OW1cIikgOiBTdHJpbmcsXG5cdGJnWWVsbG93OiBlbmFibGVkID8gZm9ybWF0dGVyKFwiXFx4MWJbNDNtXCIsIFwiXFx4MWJbNDltXCIpIDogU3RyaW5nLFxuXHRiZ0JsdWU6IGVuYWJsZWQgPyBmb3JtYXR0ZXIoXCJcXHgxYls0NG1cIiwgXCJcXHgxYls0OW1cIikgOiBTdHJpbmcsXG5cdGJnTWFnZW50YTogZW5hYmxlZCA/IGZvcm1hdHRlcihcIlxceDFiWzQ1bVwiLCBcIlxceDFiWzQ5bVwiKSA6IFN0cmluZyxcblx0YmdDeWFuOiBlbmFibGVkID8gZm9ybWF0dGVyKFwiXFx4MWJbNDZtXCIsIFwiXFx4MWJbNDltXCIpIDogU3RyaW5nLFxuXHRiZ1doaXRlOiBlbmFibGVkID8gZm9ybWF0dGVyKFwiXFx4MWJbNDdtXCIsIFwiXFx4MWJbNDltXCIpIDogU3RyaW5nLFxufSk7XG5cbnBpY29jb2xvcnMuZXhwb3J0cyA9IGNyZWF0ZUNvbG9ycygpO1xucGljb2NvbG9ycy5leHBvcnRzLmNyZWF0ZUNvbG9ycyA9IGNyZWF0ZUNvbG9ycztcblxudmFyIHBpY29jb2xvcnNFeHBvcnRzID0gcGljb2NvbG9ycy5leHBvcnRzO1xuY29uc3QgbCA9IC8qQF9fUFVSRV9fKi9nZXREZWZhdWx0RXhwb3J0RnJvbUNqcyhwaWNvY29sb3JzRXhwb3J0cyk7XG5cbmZ1bmN0aW9uIHooe29ubHlGaXJzdDp0PSExfT17fSl7Y29uc3QgdT1bXCJbXFxcXHUwMDFCXFxcXHUwMDlCXVtbXFxcXF0oKSM7P10qKD86KD86KD86KD86O1stYS16QS1aXFxcXGRcXFxcLyMmLjo9PyVAfl9dKykqfFthLXpBLVpcXFxcZF0rKD86O1stYS16QS1aXFxcXGRcXFxcLyMmLjo9PyVAfl9dKikqKT9cXFxcdTAwMDcpXCIsXCIoPzooPzpcXFxcZHsxLDR9KD86O1xcXFxkezAsNH0pKik/W1xcXFxkQS1QUi1UWmNmLW50cXJ5PT48fl0pKVwiXS5qb2luKFwifFwiKTtyZXR1cm4gbmV3IFJlZ0V4cCh1LHQ/dm9pZCAwOlwiZ1wiKX1mdW5jdGlvbiAkKHQpe2lmKHR5cGVvZiB0IT1cInN0cmluZ1wiKXRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkIGEgXFxgc3RyaW5nXFxgLCBnb3QgXFxgJHt0eXBlb2YgdH1cXGBgKTtyZXR1cm4gdC5yZXBsYWNlKHooKSxcIlwiKX12YXIgbT17fSxHPXtnZXQgZXhwb3J0cygpe3JldHVybiBtfSxzZXQgZXhwb3J0cyh0KXttPXQ7fX07KGZ1bmN0aW9uKHQpe3ZhciB1PXt9O3QuZXhwb3J0cz11LHUuZWFzdEFzaWFuV2lkdGg9ZnVuY3Rpb24oZSl7dmFyIHM9ZS5jaGFyQ29kZUF0KDApLEM9ZS5sZW5ndGg9PTI/ZS5jaGFyQ29kZUF0KDEpOjAsRD1zO3JldHVybiA1NTI5Njw9cyYmczw9NTYzMTkmJjU2MzIwPD1DJiZDPD01NzM0MyYmKHMmPTEwMjMsQyY9MTAyMyxEPXM8PDEwfEMsRCs9NjU1MzYpLEQ9PTEyMjg4fHw2NTI4MTw9RCYmRDw9NjUzNzZ8fDY1NTA0PD1EJiZEPD02NTUxMD9cIkZcIjpEPT04MzYxfHw2NTM3Nzw9RCYmRDw9NjU0NzB8fDY1NDc0PD1EJiZEPD02NTQ3OXx8NjU0ODI8PUQmJkQ8PTY1NDg3fHw2NTQ5MDw9RCYmRDw9NjU0OTV8fDY1NDk4PD1EJiZEPD02NTUwMHx8NjU1MTI8PUQmJkQ8PTY1NTE4P1wiSFwiOjQzNTI8PUQmJkQ8PTQ0NDd8fDQ1MTU8PUQmJkQ8PTQ1MTl8fDQ2MDI8PUQmJkQ8PTQ2MDd8fDkwMDE8PUQmJkQ8PTkwMDJ8fDExOTA0PD1EJiZEPD0xMTkyOXx8MTE5MzE8PUQmJkQ8PTEyMDE5fHwxMjAzMjw9RCYmRDw9MTIyNDV8fDEyMjcyPD1EJiZEPD0xMjI4M3x8MTIyODk8PUQmJkQ8PTEyMzUwfHwxMjM1Mzw9RCYmRDw9MTI0Mzh8fDEyNDQxPD1EJiZEPD0xMjU0M3x8MTI1NDk8PUQmJkQ8PTEyNTg5fHwxMjU5Mzw9RCYmRDw9MTI2ODZ8fDEyNjg4PD1EJiZEPD0xMjczMHx8MTI3MzY8PUQmJkQ8PTEyNzcxfHwxMjc4NDw9RCYmRDw9MTI4MzB8fDEyODMyPD1EJiZEPD0xMjg3MXx8MTI4ODA8PUQmJkQ8PTEzMDU0fHwxMzA1Njw9RCYmRDw9MTk5MDN8fDE5OTY4PD1EJiZEPD00MjEyNHx8NDIxMjg8PUQmJkQ8PTQyMTgyfHw0MzM2MDw9RCYmRDw9NDMzODh8fDQ0MDMyPD1EJiZEPD01NTIwM3x8NTUyMTY8PUQmJkQ8PTU1MjM4fHw1NTI0Mzw9RCYmRDw9NTUyOTF8fDYzNzQ0PD1EJiZEPD02NDI1NXx8NjUwNDA8PUQmJkQ8PTY1MDQ5fHw2NTA3Mjw9RCYmRDw9NjUxMDZ8fDY1MTA4PD1EJiZEPD02NTEyNnx8NjUxMjg8PUQmJkQ8PTY1MTMxfHwxMTA1OTI8PUQmJkQ8PTExMDU5M3x8MTI3NDg4PD1EJiZEPD0xMjc0OTB8fDEyNzUwNDw9RCYmRDw9MTI3NTQ2fHwxMjc1NTI8PUQmJkQ8PTEyNzU2MHx8MTI3NTY4PD1EJiZEPD0xMjc1Njl8fDEzMTA3Mjw9RCYmRDw9MTk0MzY3fHwxNzc5ODQ8PUQmJkQ8PTE5NjYwNXx8MTk2NjA4PD1EJiZEPD0yNjIxNDE/XCJXXCI6MzI8PUQmJkQ8PTEyNnx8MTYyPD1EJiZEPD0xNjN8fDE2NTw9RCYmRDw9MTY2fHxEPT0xNzJ8fEQ9PTE3NXx8MTAyMTQ8PUQmJkQ8PTEwMjIxfHwxMDYyOTw9RCYmRDw9MTA2MzA/XCJOYVwiOkQ9PTE2MXx8RD09MTY0fHwxNjc8PUQmJkQ8PTE2OHx8RD09MTcwfHwxNzM8PUQmJkQ8PTE3NHx8MTc2PD1EJiZEPD0xODB8fDE4Mjw9RCYmRDw9MTg2fHwxODg8PUQmJkQ8PTE5MXx8RD09MTk4fHxEPT0yMDh8fDIxNTw9RCYmRDw9MjE2fHwyMjI8PUQmJkQ8PTIyNXx8RD09MjMwfHwyMzI8PUQmJkQ8PTIzNHx8MjM2PD1EJiZEPD0yMzd8fEQ9PTI0MHx8MjQyPD1EJiZEPD0yNDN8fDI0Nzw9RCYmRDw9MjUwfHxEPT0yNTJ8fEQ9PTI1NHx8RD09MjU3fHxEPT0yNzN8fEQ9PTI3NXx8RD09MjgzfHwyOTQ8PUQmJkQ8PTI5NXx8RD09Mjk5fHwzMDU8PUQmJkQ8PTMwN3x8RD09MzEyfHwzMTk8PUQmJkQ8PTMyMnx8RD09MzI0fHwzMjg8PUQmJkQ8PTMzMXx8RD09MzMzfHwzMzg8PUQmJkQ8PTMzOXx8MzU4PD1EJiZEPD0zNTl8fEQ9PTM2M3x8RD09NDYyfHxEPT00NjR8fEQ9PTQ2Nnx8RD09NDY4fHxEPT00NzB8fEQ9PTQ3Mnx8RD09NDc0fHxEPT00NzZ8fEQ9PTU5M3x8RD09NjA5fHxEPT03MDh8fEQ9PTcxMXx8NzEzPD1EJiZEPD03MTV8fEQ9PTcxN3x8RD09NzIwfHw3Mjg8PUQmJkQ8PTczMXx8RD09NzMzfHxEPT03MzV8fDc2ODw9RCYmRDw9ODc5fHw5MTM8PUQmJkQ8PTkyOXx8OTMxPD1EJiZEPD05Mzd8fDk0NTw9RCYmRDw9OTYxfHw5NjM8PUQmJkQ8PTk2OXx8RD09MTAyNXx8MTA0MDw9RCYmRDw9MTEwM3x8RD09MTEwNXx8RD09ODIwOHx8ODIxMTw9RCYmRDw9ODIxNHx8ODIxNjw9RCYmRDw9ODIxN3x8ODIyMDw9RCYmRDw9ODIyMXx8ODIyNDw9RCYmRDw9ODIyNnx8ODIyODw9RCYmRDw9ODIzMXx8RD09ODI0MHx8ODI0Mjw9RCYmRDw9ODI0M3x8RD09ODI0NXx8RD09ODI1MXx8RD09ODI1NHx8RD09ODMwOHx8RD09ODMxOXx8ODMyMTw9RCYmRDw9ODMyNHx8RD09ODM2NHx8RD09ODQ1MXx8RD09ODQ1M3x8RD09ODQ1N3x8RD09ODQ2N3x8RD09ODQ3MHx8ODQ4MTw9RCYmRDw9ODQ4Mnx8RD09ODQ4Nnx8RD09ODQ5MXx8ODUzMTw9RCYmRDw9ODUzMnx8ODUzOTw9RCYmRDw9ODU0Mnx8ODU0NDw9RCYmRDw9ODU1NXx8ODU2MDw9RCYmRDw9ODU2OXx8RD09ODU4NXx8ODU5Mjw9RCYmRDw9ODYwMXx8ODYzMjw9RCYmRDw9ODYzM3x8RD09ODY1OHx8RD09ODY2MHx8RD09ODY3OXx8RD09ODcwNHx8ODcwNjw9RCYmRDw9ODcwN3x8ODcxMTw9RCYmRDw9ODcxMnx8RD09ODcxNXx8RD09ODcxOXx8RD09ODcyMXx8RD09ODcyNXx8RD09ODczMHx8ODczMzw9RCYmRDw9ODczNnx8RD09ODczOXx8RD09ODc0MXx8ODc0Mzw9RCYmRDw9ODc0OHx8RD09ODc1MHx8ODc1Njw9RCYmRDw9ODc1OXx8ODc2NDw9RCYmRDw9ODc2NXx8RD09ODc3Nnx8RD09ODc4MHx8RD09ODc4Nnx8ODgwMDw9RCYmRDw9ODgwMXx8ODgwNDw9RCYmRDw9ODgwN3x8ODgxMDw9RCYmRDw9ODgxMXx8ODgxNDw9RCYmRDw9ODgxNXx8ODgzNDw9RCYmRDw9ODgzNXx8ODgzODw9RCYmRDw9ODgzOXx8RD09ODg1M3x8RD09ODg1N3x8RD09ODg2OXx8RD09ODg5NXx8RD09ODk3OHx8OTMxMjw9RCYmRDw9OTQ0OXx8OTQ1MTw9RCYmRDw9OTU0N3x8OTU1Mjw9RCYmRDw9OTU4N3x8OTYwMDw9RCYmRDw9OTYxNXx8OTYxODw9RCYmRDw9OTYyMXx8OTYzMjw9RCYmRDw9OTYzM3x8OTYzNTw9RCYmRDw9OTY0MXx8OTY1MDw9RCYmRDw9OTY1MXx8OTY1NDw9RCYmRDw9OTY1NXx8OTY2MDw9RCYmRDw9OTY2MXx8OTY2NDw9RCYmRDw9OTY2NXx8OTY3MDw9RCYmRDw9OTY3Mnx8RD09OTY3NXx8OTY3ODw9RCYmRDw9OTY4MXx8OTY5ODw9RCYmRDw9OTcwMXx8RD09OTcxMXx8OTczMzw9RCYmRDw9OTczNHx8RD09OTczN3x8OTc0Mjw9RCYmRDw9OTc0M3x8OTc0ODw9RCYmRDw9OTc0OXx8RD09OTc1Nnx8RD09OTc1OHx8RD09OTc5Mnx8RD09OTc5NHx8OTgyNDw9RCYmRDw9OTgyNXx8OTgyNzw9RCYmRDw9OTgyOXx8OTgzMTw9RCYmRDw9OTgzNHx8OTgzNjw9RCYmRDw9OTgzN3x8RD09OTgzOXx8OTg4Njw9RCYmRDw9OTg4N3x8OTkxODw9RCYmRDw9OTkxOXx8OTkyNDw9RCYmRDw9OTkzM3x8OTkzNTw9RCYmRDw9OTk1M3x8RD09OTk1NXx8OTk2MDw9RCYmRDw9OTk4M3x8RD09MTAwNDV8fEQ9PTEwMDcxfHwxMDEwMjw9RCYmRDw9MTAxMTF8fDExMDkzPD1EJiZEPD0xMTA5N3x8MTI4NzI8PUQmJkQ8PTEyODc5fHw1NzM0NDw9RCYmRDw9NjM3NDN8fDY1MDI0PD1EJiZEPD02NTAzOXx8RD09NjU1MzN8fDEyNzIzMjw9RCYmRDw9MTI3MjQyfHwxMjcyNDg8PUQmJkQ8PTEyNzI3N3x8MTI3MjgwPD1EJiZEPD0xMjczMzd8fDEyNzM0NDw9RCYmRDw9MTI3Mzg2fHw5MTc3NjA8PUQmJkQ8PTkxNzk5OXx8OTgzMDQwPD1EJiZEPD0xMDQ4NTczfHwxMDQ4NTc2PD1EJiZEPD0xMTE0MTA5P1wiQVwiOlwiTlwifSx1LmNoYXJhY3Rlckxlbmd0aD1mdW5jdGlvbihlKXt2YXIgcz10aGlzLmVhc3RBc2lhbldpZHRoKGUpO3JldHVybiBzPT1cIkZcInx8cz09XCJXXCJ8fHM9PVwiQVwiPzI6MX07ZnVuY3Rpb24gRihlKXtyZXR1cm4gZS5tYXRjaCgvW1xcdUQ4MDAtXFx1REJGRl1bXFx1REMwMC1cXHVERkZGXXxbXlxcdUQ4MDAtXFx1REZGRl0vZyl8fFtdfXUubGVuZ3RoPWZ1bmN0aW9uKGUpe2Zvcih2YXIgcz1GKGUpLEM9MCxEPTA7RDxzLmxlbmd0aDtEKyspQz1DK3RoaXMuY2hhcmFjdGVyTGVuZ3RoKHNbRF0pO3JldHVybiBDfSx1LnNsaWNlPWZ1bmN0aW9uKGUscyxDKXt0ZXh0TGVuPXUubGVuZ3RoKGUpLHM9c3x8MCxDPUN8fDEsczwwJiYocz10ZXh0TGVuK3MpLEM8MCYmKEM9dGV4dExlbitDKTtmb3IodmFyIEQ9XCJcIixpPTAsbz1GKGUpLEU9MDtFPG8ubGVuZ3RoO0UrKyl7dmFyIGE9b1tFXSxuPXUubGVuZ3RoKGEpO2lmKGk+PXMtKG49PTI/MTowKSlpZihpK248PUMpRCs9YTtlbHNlIGJyZWFrO2krPW47fXJldHVybiBEfTt9KShHKTtjb25zdCBLPW07dmFyIFk9ZnVuY3Rpb24oKXtyZXR1cm4gL1xcdUQ4M0NcXHVERkY0XFx1REI0MFxcdURDNjdcXHVEQjQwXFx1REM2Mig/OlxcdURCNDBcXHVEQzc3XFx1REI0MFxcdURDNkNcXHVEQjQwXFx1REM3M3xcXHVEQjQwXFx1REM3M1xcdURCNDBcXHVEQzYzXFx1REI0MFxcdURDNzR8XFx1REI0MFxcdURDNjVcXHVEQjQwXFx1REM2RVxcdURCNDBcXHVEQzY3KVxcdURCNDBcXHVEQzdGfCg/OlxcdUQ4M0VcXHVEREQxXFx1RDgzQ1xcdURGRkZcXHUyMDBEXFx1Mjc2NFxcdUZFMEZcXHUyMDBEKD86XFx1RDgzRFxcdURDOEJcXHUyMDBEKT9cXHVEODNFXFx1REREMXxcXHVEODNEXFx1REM2OVxcdUQ4M0NcXHVERkZGXFx1MjAwRFxcdUQ4M0VcXHVERDFEXFx1MjAwRCg/OlxcdUQ4M0RbXFx1REM2OFxcdURDNjldKSkoPzpcXHVEODNDW1xcdURGRkItXFx1REZGRV0pfCg/OlxcdUQ4M0VcXHVEREQxXFx1RDgzQ1xcdURGRkVcXHUyMDBEXFx1Mjc2NFxcdUZFMEZcXHUyMDBEKD86XFx1RDgzRFxcdURDOEJcXHUyMDBEKT9cXHVEODNFXFx1REREMXxcXHVEODNEXFx1REM2OVxcdUQ4M0NcXHVERkZFXFx1MjAwRFxcdUQ4M0VcXHVERDFEXFx1MjAwRCg/OlxcdUQ4M0RbXFx1REM2OFxcdURDNjldKSkoPzpcXHVEODNDW1xcdURGRkItXFx1REZGRFxcdURGRkZdKXwoPzpcXHVEODNFXFx1REREMVxcdUQ4M0NcXHVERkZEXFx1MjAwRFxcdTI3NjRcXHVGRTBGXFx1MjAwRCg/OlxcdUQ4M0RcXHVEQzhCXFx1MjAwRCk/XFx1RDgzRVxcdURERDF8XFx1RDgzRFxcdURDNjlcXHVEODNDXFx1REZGRFxcdTIwMERcXHVEODNFXFx1REQxRFxcdTIwMEQoPzpcXHVEODNEW1xcdURDNjhcXHVEQzY5XSkpKD86XFx1RDgzQ1tcXHVERkZCXFx1REZGQ1xcdURGRkVcXHVERkZGXSl8KD86XFx1RDgzRVxcdURERDFcXHVEODNDXFx1REZGQ1xcdTIwMERcXHUyNzY0XFx1RkUwRlxcdTIwMEQoPzpcXHVEODNEXFx1REM4QlxcdTIwMEQpP1xcdUQ4M0VcXHVEREQxfFxcdUQ4M0RcXHVEQzY5XFx1RDgzQ1xcdURGRkNcXHUyMDBEXFx1RDgzRVxcdUREMURcXHUyMDBEKD86XFx1RDgzRFtcXHVEQzY4XFx1REM2OV0pKSg/OlxcdUQ4M0NbXFx1REZGQlxcdURGRkQtXFx1REZGRl0pfCg/OlxcdUQ4M0VcXHVEREQxXFx1RDgzQ1xcdURGRkJcXHUyMDBEXFx1Mjc2NFxcdUZFMEZcXHUyMDBEKD86XFx1RDgzRFxcdURDOEJcXHUyMDBEKT9cXHVEODNFXFx1REREMXxcXHVEODNEXFx1REM2OVxcdUQ4M0NcXHVERkZCXFx1MjAwRFxcdUQ4M0VcXHVERDFEXFx1MjAwRCg/OlxcdUQ4M0RbXFx1REM2OFxcdURDNjldKSkoPzpcXHVEODNDW1xcdURGRkMtXFx1REZGRl0pfFxcdUQ4M0RcXHVEQzY4KD86XFx1RDgzQ1xcdURGRkIoPzpcXHUyMDBEKD86XFx1Mjc2NFxcdUZFMEZcXHUyMDBEKD86XFx1RDgzRFxcdURDOEJcXHUyMDBEXFx1RDgzRFxcdURDNjgoPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pfFxcdUQ4M0RcXHVEQzY4KD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKSl8XFx1RDgzRVxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjgoPzpcXHVEODNDW1xcdURGRkMtXFx1REZGRl0pfFtcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRnxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pKT98KD86XFx1RDgzQ1tcXHVERkZDLVxcdURGRkZdKVxcdTIwMERcXHUyNzY0XFx1RkUwRlxcdTIwMEQoPzpcXHVEODNEXFx1REM4QlxcdTIwMERcXHVEODNEXFx1REM2OCg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSl8XFx1RDgzRFxcdURDNjgoPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pKXxcXHUyMDBEKD86XFx1Mjc2NFxcdUZFMEZcXHUyMDBEKD86XFx1RDgzRFxcdURDOEJcXHUyMDBEKT9cXHVEODNEXFx1REM2OHwoPzpcXHVEODNEW1xcdURDNjhcXHVEQzY5XSlcXHUyMDBEKD86XFx1RDgzRFxcdURDNjZcXHUyMDBEXFx1RDgzRFxcdURDNjZ8XFx1RDgzRFxcdURDNjdcXHUyMDBEKD86XFx1RDgzRFtcXHVEQzY2XFx1REM2N10pKXxcXHVEODNEXFx1REM2NlxcdTIwMERcXHVEODNEXFx1REM2NnxcXHVEODNEXFx1REM2N1xcdTIwMEQoPzpcXHVEODNEW1xcdURDNjZcXHVEQzY3XSl8XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0VbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdKXxcXHVEODNDXFx1REZGRlxcdTIwMEQoPzpcXHVEODNFXFx1REQxRFxcdTIwMERcXHVEODNEXFx1REM2OCg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZFXSl8XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0VbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdKXxcXHVEODNDXFx1REZGRVxcdTIwMEQoPzpcXHVEODNFXFx1REQxRFxcdTIwMERcXHVEODNEXFx1REM2OCg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZEXFx1REZGRl0pfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFW1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXSl8XFx1RDgzQ1xcdURGRkRcXHUyMDBEKD86XFx1RDgzRVxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjgoPzpcXHVEODNDW1xcdURGRkJcXHVERkZDXFx1REZGRVxcdURGRkZdKXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pfFxcdUQ4M0NcXHVERkZDXFx1MjAwRCg/OlxcdUQ4M0VcXHVERDFEXFx1MjAwRFxcdUQ4M0RcXHVEQzY4KD86XFx1RDgzQ1tcXHVERkZCXFx1REZGRC1cXHVERkZGXSl8XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0VbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdKXwoPzpcXHVEODNDXFx1REZGRlxcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XXxcXHVEODNDXFx1REZGRVxcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XXxcXHVEODNDXFx1REZGRFxcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XXxcXHVEODNDXFx1REZGQ1xcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XXxcXHUyMDBEW1xcdTI2OTVcXHUyNjk2XFx1MjcwOF0pXFx1RkUwRnxcXHUyMDBEKD86KD86XFx1RDgzRFtcXHVEQzY4XFx1REM2OV0pXFx1MjAwRCg/OlxcdUQ4M0RbXFx1REM2NlxcdURDNjddKXxcXHVEODNEW1xcdURDNjZcXHVEQzY3XSl8XFx1RDgzQ1xcdURGRkZ8XFx1RDgzQ1xcdURGRkV8XFx1RDgzQ1xcdURGRkR8XFx1RDgzQ1xcdURGRkMpP3woPzpcXHVEODNEXFx1REM2OSg/OlxcdUQ4M0NcXHVERkZCXFx1MjAwRFxcdTI3NjRcXHVGRTBGXFx1MjAwRCg/OlxcdUQ4M0RcXHVEQzhCXFx1MjAwRCg/OlxcdUQ4M0RbXFx1REM2OFxcdURDNjldKXxcXHVEODNEW1xcdURDNjhcXHVEQzY5XSl8KD86XFx1RDgzQ1tcXHVERkZDLVxcdURGRkZdKVxcdTIwMERcXHUyNzY0XFx1RkUwRlxcdTIwMEQoPzpcXHVEODNEXFx1REM4QlxcdTIwMEQoPzpcXHVEODNEW1xcdURDNjhcXHVEQzY5XSl8XFx1RDgzRFtcXHVEQzY4XFx1REM2OV0pKXxcXHVEODNFXFx1REREMSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSlcXHUyMDBEXFx1RDgzRVxcdUREMURcXHUyMDBEXFx1RDgzRVxcdURERDEpKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKXxcXHVEODNEXFx1REM2OVxcdTIwMERcXHVEODNEXFx1REM2OVxcdTIwMEQoPzpcXHVEODNEXFx1REM2NlxcdTIwMERcXHVEODNEXFx1REM2NnxcXHVEODNEXFx1REM2N1xcdTIwMEQoPzpcXHVEODNEW1xcdURDNjZcXHVEQzY3XSkpfFxcdUQ4M0RcXHVEQzY5KD86XFx1MjAwRCg/OlxcdTI3NjRcXHVGRTBGXFx1MjAwRCg/OlxcdUQ4M0RcXHVEQzhCXFx1MjAwRCg/OlxcdUQ4M0RbXFx1REM2OFxcdURDNjldKXxcXHVEODNEW1xcdURDNjhcXHVEQzY5XSl8XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0VbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdKXxcXHVEODNDXFx1REZGRlxcdTIwMEQoPzpcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pfFxcdUQ4M0NcXHVERkZFXFx1MjAwRCg/OlxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFW1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXSl8XFx1RDgzQ1xcdURGRkRcXHUyMDBEKD86XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0VbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdKXxcXHVEODNDXFx1REZGQ1xcdTIwMEQoPzpcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pfFxcdUQ4M0NcXHVERkZCXFx1MjAwRCg/OlxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFW1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXSkpfFxcdUQ4M0VcXHVEREQxKD86XFx1MjAwRCg/OlxcdUQ4M0VcXHVERDFEXFx1MjAwRFxcdUQ4M0VcXHVEREQxfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY4NFxcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pfFxcdUQ4M0NcXHVERkZGXFx1MjAwRCg/OlxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY4NFxcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pfFxcdUQ4M0NcXHVERkZFXFx1MjAwRCg/OlxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY4NFxcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pfFxcdUQ4M0NcXHVERkZEXFx1MjAwRCg/OlxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY4NFxcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pfFxcdUQ4M0NcXHVERkZDXFx1MjAwRCg/OlxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY4NFxcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pfFxcdUQ4M0NcXHVERkZCXFx1MjAwRCg/OlxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY4NFxcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pKXxcXHVEODNEXFx1REM2OVxcdTIwMERcXHVEODNEXFx1REM2NlxcdTIwMERcXHVEODNEXFx1REM2NnxcXHVEODNEXFx1REM2OVxcdTIwMERcXHVEODNEXFx1REM2OVxcdTIwMEQoPzpcXHVEODNEW1xcdURDNjZcXHVEQzY3XSl8XFx1RDgzRFxcdURDNjlcXHUyMDBEXFx1RDgzRFxcdURDNjdcXHUyMDBEKD86XFx1RDgzRFtcXHVEQzY2XFx1REM2N10pfCg/OlxcdUQ4M0RcXHVEQzQxXFx1RkUwRlxcdTIwMERcXHVEODNEXFx1RERFOHxcXHVEODNFXFx1REREMSg/OlxcdUQ4M0NcXHVERkZGXFx1MjAwRFtcXHUyNjk1XFx1MjY5NlxcdTI3MDhdfFxcdUQ4M0NcXHVERkZFXFx1MjAwRFtcXHUyNjk1XFx1MjY5NlxcdTI3MDhdfFxcdUQ4M0NcXHVERkZEXFx1MjAwRFtcXHUyNjk1XFx1MjY5NlxcdTI3MDhdfFxcdUQ4M0NcXHVERkZDXFx1MjAwRFtcXHUyNjk1XFx1MjY5NlxcdTI3MDhdfFxcdUQ4M0NcXHVERkZCXFx1MjAwRFtcXHUyNjk1XFx1MjY5NlxcdTI3MDhdfFxcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XSl8XFx1RDgzRFxcdURDNjkoPzpcXHVEODNDXFx1REZGRlxcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XXxcXHVEODNDXFx1REZGRVxcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XXxcXHVEODNDXFx1REZGRFxcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XXxcXHVEODNDXFx1REZGQ1xcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XXxcXHVEODNDXFx1REZGQlxcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XXxcXHUyMDBEW1xcdTI2OTVcXHUyNjk2XFx1MjcwOF0pfFxcdUQ4M0RcXHVERTM2XFx1MjAwRFxcdUQ4M0NcXHVERjJCfFxcdUQ4M0NcXHVERkYzXFx1RkUwRlxcdTIwMERcXHUyNkE3fFxcdUQ4M0RcXHVEQzNCXFx1MjAwRFxcdTI3NDR8KD86KD86XFx1RDgzQ1tcXHVERkMzXFx1REZDNFxcdURGQ0FdfFxcdUQ4M0RbXFx1REM2RVxcdURDNzBcXHVEQzcxXFx1REM3M1xcdURDNzdcXHVEQzgxXFx1REM4MlxcdURDODZcXHVEQzg3XFx1REU0NS1cXHVERTQ3XFx1REU0QlxcdURFNERcXHVERTRFXFx1REVBM1xcdURFQjQtXFx1REVCNl18XFx1RDgzRVtcXHVERDI2XFx1REQzNVxcdUREMzctXFx1REQzOVxcdUREM0RcXHVERDNFXFx1RERCOFxcdUREQjlcXHVERENELVxcdUREQ0ZcXHVEREQ0XFx1RERENi1cXHVEREREXSkoPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pfFxcdUQ4M0RcXHVEQzZGfFxcdUQ4M0VbXFx1REQzQ1xcdUREREVcXHVERERGXSlcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXXwoPzpcXHUyNkY5fFxcdUQ4M0NbXFx1REZDQlxcdURGQ0NdfFxcdUQ4M0RcXHVERDc1KSg/OlxcdUZFMEZ8XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKVxcdTIwMERbXFx1MjY0MFxcdTI2NDJdfFxcdUQ4M0NcXHVERkY0XFx1MjAwRFxcdTI2MjB8KD86XFx1RDgzQ1tcXHVERkMzXFx1REZDNFxcdURGQ0FdfFxcdUQ4M0RbXFx1REM2RVxcdURDNzBcXHVEQzcxXFx1REM3M1xcdURDNzdcXHVEQzgxXFx1REM4MlxcdURDODZcXHVEQzg3XFx1REU0NS1cXHVERTQ3XFx1REU0QlxcdURFNERcXHVERTRFXFx1REVBM1xcdURFQjQtXFx1REVCNl18XFx1RDgzRVtcXHVERDI2XFx1REQzNVxcdUREMzctXFx1REQzOVxcdUREM0RcXHVERDNFXFx1RERCOFxcdUREQjlcXHVERENELVxcdUREQ0ZcXHVEREQ0XFx1RERENi1cXHVEREREXSlcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXXxbXFx4QTlcXHhBRVxcdTIwM0NcXHUyMDQ5XFx1MjEyMlxcdTIxMzlcXHUyMTk0LVxcdTIxOTlcXHUyMUE5XFx1MjFBQVxcdTIzMjhcXHUyM0NGXFx1MjNFRC1cXHUyM0VGXFx1MjNGMVxcdTIzRjJcXHUyM0Y4LVxcdTIzRkFcXHUyNEMyXFx1MjVBQVxcdTI1QUJcXHUyNUI2XFx1MjVDMFxcdTI1RkJcXHUyNUZDXFx1MjYwMC1cXHUyNjA0XFx1MjYwRVxcdTI2MTFcXHUyNjE4XFx1MjYyMFxcdTI2MjJcXHUyNjIzXFx1MjYyNlxcdTI2MkFcXHUyNjJFXFx1MjYyRlxcdTI2MzgtXFx1MjYzQVxcdTI2NDBcXHUyNjQyXFx1MjY1RlxcdTI2NjBcXHUyNjYzXFx1MjY2NVxcdTI2NjZcXHUyNjY4XFx1MjY3QlxcdTI2N0VcXHUyNjkyXFx1MjY5NC1cXHUyNjk3XFx1MjY5OVxcdTI2OUJcXHUyNjlDXFx1MjZBMFxcdTI2QTdcXHUyNkIwXFx1MjZCMVxcdTI2QzhcXHUyNkNGXFx1MjZEMVxcdTI2RDNcXHUyNkU5XFx1MjZGMFxcdTI2RjFcXHUyNkY0XFx1MjZGN1xcdTI2RjhcXHUyNzAyXFx1MjcwOFxcdTI3MDlcXHUyNzBGXFx1MjcxMlxcdTI3MTRcXHUyNzE2XFx1MjcxRFxcdTI3MjFcXHUyNzMzXFx1MjczNFxcdTI3NDRcXHUyNzQ3XFx1Mjc2M1xcdTI3QTFcXHUyOTM0XFx1MjkzNVxcdTJCMDUtXFx1MkIwN1xcdTMwMzBcXHUzMDNEXFx1MzI5N1xcdTMyOTldfFxcdUQ4M0NbXFx1REQ3MFxcdURENzFcXHVERDdFXFx1REQ3RlxcdURFMDJcXHVERTM3XFx1REYyMVxcdURGMjQtXFx1REYyQ1xcdURGMzZcXHVERjdEXFx1REY5NlxcdURGOTdcXHVERjk5LVxcdURGOUJcXHVERjlFXFx1REY5RlxcdURGQ0RcXHVERkNFXFx1REZENC1cXHVERkRGXFx1REZGNVxcdURGRjddfFxcdUQ4M0RbXFx1REMzRlxcdURDRkRcXHVERDQ5XFx1REQ0QVxcdURENkZcXHVERDcwXFx1REQ3M1xcdURENzYtXFx1REQ3OVxcdUREODdcXHVERDhBLVxcdUREOERcXHVEREE1XFx1RERBOFxcdUREQjFcXHVEREIyXFx1RERCQ1xcdUREQzItXFx1RERDNFxcdURERDEtXFx1REREM1xcdUREREMtXFx1RERERVxcdURERTFcXHVEREUzXFx1RERFOFxcdURERUZcXHVEREYzXFx1RERGQVxcdURFQ0JcXHVERUNELVxcdURFQ0ZcXHVERUUwLVxcdURFRTVcXHVERUU5XFx1REVGMFxcdURFRjNdKVxcdUZFMEZ8XFx1RDgzQ1xcdURGRjNcXHVGRTBGXFx1MjAwRFxcdUQ4M0NcXHVERjA4fFxcdUQ4M0RcXHVEQzY5XFx1MjAwRFxcdUQ4M0RcXHVEQzY3fFxcdUQ4M0RcXHVEQzY5XFx1MjAwRFxcdUQ4M0RcXHVEQzY2fFxcdUQ4M0RcXHVERTM1XFx1MjAwRFxcdUQ4M0RcXHVEQ0FCfFxcdUQ4M0RcXHVERTJFXFx1MjAwRFxcdUQ4M0RcXHVEQ0E4fFxcdUQ4M0RcXHVEQzE1XFx1MjAwRFxcdUQ4M0VcXHVEREJBfFxcdUQ4M0VcXHVEREQxKD86XFx1RDgzQ1xcdURGRkZ8XFx1RDgzQ1xcdURGRkV8XFx1RDgzQ1xcdURGRkR8XFx1RDgzQ1xcdURGRkN8XFx1RDgzQ1xcdURGRkIpP3xcXHVEODNEXFx1REM2OSg/OlxcdUQ4M0NcXHVERkZGfFxcdUQ4M0NcXHVERkZFfFxcdUQ4M0NcXHVERkZEfFxcdUQ4M0NcXHVERkZDfFxcdUQ4M0NcXHVERkZCKT98XFx1RDgzQ1xcdURERkRcXHVEODNDXFx1RERGMHxcXHVEODNDXFx1RERGNlxcdUQ4M0NcXHVEREU2fFxcdUQ4M0NcXHVEREY0XFx1RDgzQ1xcdURERjJ8XFx1RDgzRFxcdURDMDhcXHUyMDBEXFx1MkIxQnxcXHUyNzY0XFx1RkUwRlxcdTIwMEQoPzpcXHVEODNEXFx1REQyNXxcXHVEODNFXFx1REU3OSl8XFx1RDgzRFxcdURDNDFcXHVGRTBGfFxcdUQ4M0NcXHVERkYzXFx1RkUwRnxcXHVEODNDXFx1RERGRig/OlxcdUQ4M0NbXFx1RERFNlxcdURERjJcXHVEREZDXSl8XFx1RDgzQ1xcdURERkUoPzpcXHVEODNDW1xcdURERUFcXHVEREY5XSl8XFx1RDgzQ1xcdURERkMoPzpcXHVEODNDW1xcdURERUJcXHVEREY4XSl8XFx1RDgzQ1xcdURERkIoPzpcXHVEODNDW1xcdURERTZcXHVEREU4XFx1RERFQVxcdURERUNcXHVEREVFXFx1RERGM1xcdURERkFdKXxcXHVEODNDXFx1RERGQSg/OlxcdUQ4M0NbXFx1RERFNlxcdURERUNcXHVEREYyXFx1RERGM1xcdURERjhcXHVEREZFXFx1RERGRl0pfFxcdUQ4M0NcXHVEREY5KD86XFx1RDgzQ1tcXHVEREU2XFx1RERFOFxcdURERTlcXHVEREVCLVxcdURERURcXHVEREVGLVxcdURERjRcXHVEREY3XFx1RERGOVxcdURERkJcXHVEREZDXFx1RERGRl0pfFxcdUQ4M0NcXHVEREY4KD86XFx1RDgzQ1tcXHVEREU2LVxcdURERUFcXHVEREVDLVxcdURERjRcXHVEREY3LVxcdURERjlcXHVEREZCXFx1RERGRC1cXHVEREZGXSl8XFx1RDgzQ1xcdURERjcoPzpcXHVEODNDW1xcdURERUFcXHVEREY0XFx1RERGOFxcdURERkFcXHVEREZDXSl8XFx1RDgzQ1xcdURERjUoPzpcXHVEODNDW1xcdURERTZcXHVEREVBLVxcdURERURcXHVEREYwLVxcdURERjNcXHVEREY3LVxcdURERjlcXHVEREZDXFx1RERGRV0pfFxcdUQ4M0NcXHVEREYzKD86XFx1RDgzQ1tcXHVEREU2XFx1RERFOFxcdURERUEtXFx1RERFQ1xcdURERUVcXHVEREYxXFx1RERGNFxcdURERjVcXHVEREY3XFx1RERGQVxcdURERkZdKXxcXHVEODNDXFx1RERGMig/OlxcdUQ4M0NbXFx1RERFNlxcdURERTgtXFx1RERFRFxcdURERjAtXFx1RERGRl0pfFxcdUQ4M0NcXHVEREYxKD86XFx1RDgzQ1tcXHVEREU2LVxcdURERThcXHVEREVFXFx1RERGMFxcdURERjctXFx1RERGQlxcdURERkVdKXxcXHVEODNDXFx1RERGMCg/OlxcdUQ4M0NbXFx1RERFQVxcdURERUMtXFx1RERFRVxcdURERjJcXHVEREYzXFx1RERGNVxcdURERjdcXHVEREZDXFx1RERGRVxcdURERkZdKXxcXHVEODNDXFx1RERFRig/OlxcdUQ4M0NbXFx1RERFQVxcdURERjJcXHVEREY0XFx1RERGNV0pfFxcdUQ4M0NcXHVEREVFKD86XFx1RDgzQ1tcXHVEREU4LVxcdURERUFcXHVEREYxLVxcdURERjRcXHVEREY2LVxcdURERjldKXxcXHVEODNDXFx1RERFRCg/OlxcdUQ4M0NbXFx1RERGMFxcdURERjJcXHVEREYzXFx1RERGN1xcdURERjlcXHVEREZBXSl8XFx1RDgzQ1xcdURERUMoPzpcXHVEODNDW1xcdURERTZcXHVEREU3XFx1RERFOS1cXHVEREVFXFx1RERGMS1cXHVEREYzXFx1RERGNS1cXHVEREZBXFx1RERGQ1xcdURERkVdKXxcXHVEODNDXFx1RERFQig/OlxcdUQ4M0NbXFx1RERFRS1cXHVEREYwXFx1RERGMlxcdURERjRcXHVEREY3XSl8XFx1RDgzQ1xcdURERUEoPzpcXHVEODNDW1xcdURERTZcXHVEREU4XFx1RERFQVxcdURERUNcXHVEREVEXFx1RERGNy1cXHVEREZBXSl8XFx1RDgzQ1xcdURERTkoPzpcXHVEODNDW1xcdURERUFcXHVEREVDXFx1RERFRlxcdURERjBcXHVEREYyXFx1RERGNFxcdURERkZdKXxcXHVEODNDXFx1RERFOCg/OlxcdUQ4M0NbXFx1RERFNlxcdURERThcXHVEREU5XFx1RERFQi1cXHVEREVFXFx1RERGMC1cXHVEREY1XFx1RERGN1xcdURERkEtXFx1RERGRl0pfFxcdUQ4M0NcXHVEREU3KD86XFx1RDgzQ1tcXHVEREU2XFx1RERFN1xcdURERTktXFx1RERFRlxcdURERjEtXFx1RERGNFxcdURERjYtXFx1RERGOVxcdURERkJcXHVEREZDXFx1RERGRVxcdURERkZdKXxcXHVEODNDXFx1RERFNig/OlxcdUQ4M0NbXFx1RERFOC1cXHVEREVDXFx1RERFRVxcdURERjFcXHVEREYyXFx1RERGNFxcdURERjYtXFx1RERGQVxcdURERkNcXHVEREZEXFx1RERGRl0pfFsjXFwqMC05XVxcdUZFMEZcXHUyMEUzfFxcdTI3NjRcXHVGRTBGfCg/OlxcdUQ4M0NbXFx1REZDM1xcdURGQzRcXHVERkNBXXxcXHVEODNEW1xcdURDNkVcXHVEQzcwXFx1REM3MVxcdURDNzNcXHVEQzc3XFx1REM4MVxcdURDODJcXHVEQzg2XFx1REM4N1xcdURFNDUtXFx1REU0N1xcdURFNEJcXHVERTREXFx1REU0RVxcdURFQTNcXHVERUI0LVxcdURFQjZdfFxcdUQ4M0VbXFx1REQyNlxcdUREMzVcXHVERDM3LVxcdUREMzlcXHVERDNEXFx1REQzRVxcdUREQjhcXHVEREI5XFx1RERDRC1cXHVERENGXFx1RERENFxcdURERDYtXFx1RERERF0pKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKXwoPzpcXHUyNkY5fFxcdUQ4M0NbXFx1REZDQlxcdURGQ0NdfFxcdUQ4M0RcXHVERDc1KSg/OlxcdUZFMEZ8XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKXxcXHVEODNDXFx1REZGNHwoPzpbXFx1MjcwQVxcdTI3MEJdfFxcdUQ4M0NbXFx1REY4NVxcdURGQzJcXHVERkM3XXxcXHVEODNEW1xcdURDNDJcXHVEQzQzXFx1REM0Ni1cXHVEQzUwXFx1REM2NlxcdURDNjdcXHVEQzZCLVxcdURDNkRcXHVEQzcyXFx1REM3NC1cXHVEQzc2XFx1REM3OFxcdURDN0NcXHVEQzgzXFx1REM4NVxcdURDOEZcXHVEQzkxXFx1RENBQVxcdUREN0FcXHVERDk1XFx1REQ5NlxcdURFNENcXHVERTRGXFx1REVDMFxcdURFQ0NdfFxcdUQ4M0VbXFx1REQwQ1xcdUREMEZcXHVERDE4LVxcdUREMUNcXHVERDFFXFx1REQxRlxcdUREMzAtXFx1REQzNFxcdUREMzZcXHVERDc3XFx1RERCNVxcdUREQjZcXHVEREJCXFx1REREMlxcdURERDNcXHVEREQ1XSkoPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pfCg/OltcXHUyNjFEXFx1MjcwQ1xcdTI3MERdfFxcdUQ4M0RbXFx1REQ3NFxcdUREOTBdKSg/OlxcdUZFMEZ8XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKXxbXFx1MjcwQVxcdTI3MEJdfFxcdUQ4M0NbXFx1REY4NVxcdURGQzJcXHVERkM3XXxcXHVEODNEW1xcdURDMDhcXHVEQzE1XFx1REMzQlxcdURDNDJcXHVEQzQzXFx1REM0Ni1cXHVEQzUwXFx1REM2NlxcdURDNjdcXHVEQzZCLVxcdURDNkRcXHVEQzcyXFx1REM3NC1cXHVEQzc2XFx1REM3OFxcdURDN0NcXHVEQzgzXFx1REM4NVxcdURDOEZcXHVEQzkxXFx1RENBQVxcdUREN0FcXHVERDk1XFx1REQ5NlxcdURFMkVcXHVERTM1XFx1REUzNlxcdURFNENcXHVERTRGXFx1REVDMFxcdURFQ0NdfFxcdUQ4M0VbXFx1REQwQ1xcdUREMEZcXHVERDE4LVxcdUREMUNcXHVERDFFXFx1REQxRlxcdUREMzAtXFx1REQzNFxcdUREMzZcXHVERDc3XFx1RERCNVxcdUREQjZcXHVEREJCXFx1REREMlxcdURERDNcXHVEREQ1XXxcXHVEODNDW1xcdURGQzNcXHVERkM0XFx1REZDQV18XFx1RDgzRFtcXHVEQzZFXFx1REM3MFxcdURDNzFcXHVEQzczXFx1REM3N1xcdURDODFcXHVEQzgyXFx1REM4NlxcdURDODdcXHVERTQ1LVxcdURFNDdcXHVERTRCXFx1REU0RFxcdURFNEVcXHVERUEzXFx1REVCNC1cXHVERUI2XXxcXHVEODNFW1xcdUREMjZcXHVERDM1XFx1REQzNy1cXHVERDM5XFx1REQzRFxcdUREM0VcXHVEREI4XFx1RERCOVxcdUREQ0QtXFx1RERDRlxcdURERDRcXHVEREQ2LVxcdURERERdfFxcdUQ4M0RcXHVEQzZGfFxcdUQ4M0VbXFx1REQzQ1xcdUREREVcXHVERERGXXxbXFx1MjMxQVxcdTIzMUJcXHUyM0U5LVxcdTIzRUNcXHUyM0YwXFx1MjNGM1xcdTI1RkRcXHUyNUZFXFx1MjYxNFxcdTI2MTVcXHUyNjQ4LVxcdTI2NTNcXHUyNjdGXFx1MjY5M1xcdTI2QTFcXHUyNkFBXFx1MjZBQlxcdTI2QkRcXHUyNkJFXFx1MjZDNFxcdTI2QzVcXHUyNkNFXFx1MjZENFxcdTI2RUFcXHUyNkYyXFx1MjZGM1xcdTI2RjVcXHUyNkZBXFx1MjZGRFxcdTI3MDVcXHUyNzI4XFx1Mjc0Q1xcdTI3NEVcXHUyNzUzLVxcdTI3NTVcXHUyNzU3XFx1Mjc5NS1cXHUyNzk3XFx1MjdCMFxcdTI3QkZcXHUyQjFCXFx1MkIxQ1xcdTJCNTBcXHUyQjU1XXxcXHVEODNDW1xcdURDMDRcXHVEQ0NGXFx1REQ4RVxcdUREOTEtXFx1REQ5QVxcdURFMDFcXHVERTFBXFx1REUyRlxcdURFMzItXFx1REUzNlxcdURFMzgtXFx1REUzQVxcdURFNTBcXHVERTUxXFx1REYwMC1cXHVERjIwXFx1REYyRC1cXHVERjM1XFx1REYzNy1cXHVERjdDXFx1REY3RS1cXHVERjg0XFx1REY4Ni1cXHVERjkzXFx1REZBMC1cXHVERkMxXFx1REZDNVxcdURGQzZcXHVERkM4XFx1REZDOVxcdURGQ0YtXFx1REZEM1xcdURGRTAtXFx1REZGMFxcdURGRjgtXFx1REZGRl18XFx1RDgzRFtcXHVEQzAwLVxcdURDMDdcXHVEQzA5LVxcdURDMTRcXHVEQzE2LVxcdURDM0FcXHVEQzNDLVxcdURDM0VcXHVEQzQwXFx1REM0NFxcdURDNDVcXHVEQzUxLVxcdURDNjVcXHVEQzZBXFx1REM3OS1cXHVEQzdCXFx1REM3RC1cXHVEQzgwXFx1REM4NFxcdURDODgtXFx1REM4RVxcdURDOTBcXHVEQzkyLVxcdURDQTlcXHVEQ0FCLVxcdURDRkNcXHVEQ0ZGLVxcdUREM0RcXHVERDRCLVxcdURENEVcXHVERDUwLVxcdURENjdcXHVEREE0XFx1RERGQi1cXHVERTJEXFx1REUyRi1cXHVERTM0XFx1REUzNy1cXHVERTQ0XFx1REU0OC1cXHVERTRBXFx1REU4MC1cXHVERUEyXFx1REVBNC1cXHVERUIzXFx1REVCNy1cXHVERUJGXFx1REVDMS1cXHVERUM1XFx1REVEMC1cXHVERUQyXFx1REVENS1cXHVERUQ3XFx1REVFQlxcdURFRUNcXHVERUY0LVxcdURFRkNcXHVERkUwLVxcdURGRUJdfFxcdUQ4M0VbXFx1REQwRFxcdUREMEVcXHVERDEwLVxcdUREMTdcXHVERDFEXFx1REQyMC1cXHVERDI1XFx1REQyNy1cXHVERDJGXFx1REQzQVxcdUREM0YtXFx1REQ0NVxcdURENDctXFx1REQ3NlxcdURENzhcXHVERDdBLVxcdUREQjRcXHVEREI3XFx1RERCQVxcdUREQkMtXFx1RERDQlxcdURERDBcXHVEREUwLVxcdURERkZcXHVERTcwLVxcdURFNzRcXHVERTc4LVxcdURFN0FcXHVERTgwLVxcdURFODZcXHVERTkwLVxcdURFQThcXHVERUIwLVxcdURFQjZcXHVERUMwLVxcdURFQzJcXHVERUQwLVxcdURFRDZdfCg/OltcXHUyMzFBXFx1MjMxQlxcdTIzRTktXFx1MjNFQ1xcdTIzRjBcXHUyM0YzXFx1MjVGRFxcdTI1RkVcXHUyNjE0XFx1MjYxNVxcdTI2NDgtXFx1MjY1M1xcdTI2N0ZcXHUyNjkzXFx1MjZBMVxcdTI2QUFcXHUyNkFCXFx1MjZCRFxcdTI2QkVcXHUyNkM0XFx1MjZDNVxcdTI2Q0VcXHUyNkQ0XFx1MjZFQVxcdTI2RjJcXHUyNkYzXFx1MjZGNVxcdTI2RkFcXHUyNkZEXFx1MjcwNVxcdTI3MEFcXHUyNzBCXFx1MjcyOFxcdTI3NENcXHUyNzRFXFx1Mjc1My1cXHUyNzU1XFx1Mjc1N1xcdTI3OTUtXFx1Mjc5N1xcdTI3QjBcXHUyN0JGXFx1MkIxQlxcdTJCMUNcXHUyQjUwXFx1MkI1NV18XFx1RDgzQ1tcXHVEQzA0XFx1RENDRlxcdUREOEVcXHVERDkxLVxcdUREOUFcXHVEREU2LVxcdURERkZcXHVERTAxXFx1REUxQVxcdURFMkZcXHVERTMyLVxcdURFMzZcXHVERTM4LVxcdURFM0FcXHVERTUwXFx1REU1MVxcdURGMDAtXFx1REYyMFxcdURGMkQtXFx1REYzNVxcdURGMzctXFx1REY3Q1xcdURGN0UtXFx1REY5M1xcdURGQTAtXFx1REZDQVxcdURGQ0YtXFx1REZEM1xcdURGRTAtXFx1REZGMFxcdURGRjRcXHVERkY4LVxcdURGRkZdfFxcdUQ4M0RbXFx1REMwMC1cXHVEQzNFXFx1REM0MFxcdURDNDItXFx1RENGQ1xcdURDRkYtXFx1REQzRFxcdURENEItXFx1REQ0RVxcdURENTAtXFx1REQ2N1xcdUREN0FcXHVERDk1XFx1REQ5NlxcdUREQTRcXHVEREZCLVxcdURFNEZcXHVERTgwLVxcdURFQzVcXHVERUNDXFx1REVEMC1cXHVERUQyXFx1REVENS1cXHVERUQ3XFx1REVFQlxcdURFRUNcXHVERUY0LVxcdURFRkNcXHVERkUwLVxcdURGRUJdfFxcdUQ4M0VbXFx1REQwQy1cXHVERDNBXFx1REQzQy1cXHVERDQ1XFx1REQ0Ny1cXHVERDc4XFx1REQ3QS1cXHVERENCXFx1RERDRC1cXHVEREZGXFx1REU3MC1cXHVERTc0XFx1REU3OC1cXHVERTdBXFx1REU4MC1cXHVERTg2XFx1REU5MC1cXHVERUE4XFx1REVCMC1cXHVERUI2XFx1REVDMC1cXHVERUMyXFx1REVEMC1cXHVERUQ2XSl8KD86WyNcXCowLTlcXHhBOVxceEFFXFx1MjAzQ1xcdTIwNDlcXHUyMTIyXFx1MjEzOVxcdTIxOTQtXFx1MjE5OVxcdTIxQTlcXHUyMUFBXFx1MjMxQVxcdTIzMUJcXHUyMzI4XFx1MjNDRlxcdTIzRTktXFx1MjNGM1xcdTIzRjgtXFx1MjNGQVxcdTI0QzJcXHUyNUFBXFx1MjVBQlxcdTI1QjZcXHUyNUMwXFx1MjVGQi1cXHUyNUZFXFx1MjYwMC1cXHUyNjA0XFx1MjYwRVxcdTI2MTFcXHUyNjE0XFx1MjYxNVxcdTI2MThcXHUyNjFEXFx1MjYyMFxcdTI2MjJcXHUyNjIzXFx1MjYyNlxcdTI2MkFcXHUyNjJFXFx1MjYyRlxcdTI2MzgtXFx1MjYzQVxcdTI2NDBcXHUyNjQyXFx1MjY0OC1cXHUyNjUzXFx1MjY1RlxcdTI2NjBcXHUyNjYzXFx1MjY2NVxcdTI2NjZcXHUyNjY4XFx1MjY3QlxcdTI2N0VcXHUyNjdGXFx1MjY5Mi1cXHUyNjk3XFx1MjY5OVxcdTI2OUJcXHUyNjlDXFx1MjZBMFxcdTI2QTFcXHUyNkE3XFx1MjZBQVxcdTI2QUJcXHUyNkIwXFx1MjZCMVxcdTI2QkRcXHUyNkJFXFx1MjZDNFxcdTI2QzVcXHUyNkM4XFx1MjZDRVxcdTI2Q0ZcXHUyNkQxXFx1MjZEM1xcdTI2RDRcXHUyNkU5XFx1MjZFQVxcdTI2RjAtXFx1MjZGNVxcdTI2RjctXFx1MjZGQVxcdTI2RkRcXHUyNzAyXFx1MjcwNVxcdTI3MDgtXFx1MjcwRFxcdTI3MEZcXHUyNzEyXFx1MjcxNFxcdTI3MTZcXHUyNzFEXFx1MjcyMVxcdTI3MjhcXHUyNzMzXFx1MjczNFxcdTI3NDRcXHUyNzQ3XFx1Mjc0Q1xcdTI3NEVcXHUyNzUzLVxcdTI3NTVcXHUyNzU3XFx1Mjc2M1xcdTI3NjRcXHUyNzk1LVxcdTI3OTdcXHUyN0ExXFx1MjdCMFxcdTI3QkZcXHUyOTM0XFx1MjkzNVxcdTJCMDUtXFx1MkIwN1xcdTJCMUJcXHUyQjFDXFx1MkI1MFxcdTJCNTVcXHUzMDMwXFx1MzAzRFxcdTMyOTdcXHUzMjk5XXxcXHVEODNDW1xcdURDMDRcXHVEQ0NGXFx1REQ3MFxcdURENzFcXHVERDdFXFx1REQ3RlxcdUREOEVcXHVERDkxLVxcdUREOUFcXHVEREU2LVxcdURERkZcXHVERTAxXFx1REUwMlxcdURFMUFcXHVERTJGXFx1REUzMi1cXHVERTNBXFx1REU1MFxcdURFNTFcXHVERjAwLVxcdURGMjFcXHVERjI0LVxcdURGOTNcXHVERjk2XFx1REY5N1xcdURGOTktXFx1REY5QlxcdURGOUUtXFx1REZGMFxcdURGRjMtXFx1REZGNVxcdURGRjctXFx1REZGRl18XFx1RDgzRFtcXHVEQzAwLVxcdURDRkRcXHVEQ0ZGLVxcdUREM0RcXHVERDQ5LVxcdURENEVcXHVERDUwLVxcdURENjdcXHVERDZGXFx1REQ3MFxcdURENzMtXFx1REQ3QVxcdUREODdcXHVERDhBLVxcdUREOERcXHVERDkwXFx1REQ5NVxcdUREOTZcXHVEREE0XFx1RERBNVxcdUREQThcXHVEREIxXFx1RERCMlxcdUREQkNcXHVEREMyLVxcdUREQzRcXHVEREQxLVxcdURERDNcXHVERERDLVxcdUREREVcXHVEREUxXFx1RERFM1xcdURERThcXHVEREVGXFx1RERGM1xcdURERkEtXFx1REU0RlxcdURFODAtXFx1REVDNVxcdURFQ0ItXFx1REVEMlxcdURFRDUtXFx1REVEN1xcdURFRTAtXFx1REVFNVxcdURFRTlcXHVERUVCXFx1REVFQ1xcdURFRjBcXHVERUYzLVxcdURFRkNcXHVERkUwLVxcdURGRUJdfFxcdUQ4M0VbXFx1REQwQy1cXHVERDNBXFx1REQzQy1cXHVERDQ1XFx1REQ0Ny1cXHVERDc4XFx1REQ3QS1cXHVERENCXFx1RERDRC1cXHVEREZGXFx1REU3MC1cXHVERTc0XFx1REU3OC1cXHVERTdBXFx1REU4MC1cXHVERTg2XFx1REU5MC1cXHVERUE4XFx1REVCMC1cXHVERUI2XFx1REVDMC1cXHVERUMyXFx1REVEMC1cXHVERUQ2XSlcXHVGRTBGfCg/OltcXHUyNjFEXFx1MjZGOVxcdTI3MEEtXFx1MjcwRF18XFx1RDgzQ1tcXHVERjg1XFx1REZDMi1cXHVERkM0XFx1REZDN1xcdURGQ0EtXFx1REZDQ118XFx1RDgzRFtcXHVEQzQyXFx1REM0M1xcdURDNDYtXFx1REM1MFxcdURDNjYtXFx1REM3OFxcdURDN0NcXHVEQzgxLVxcdURDODNcXHVEQzg1LVxcdURDODdcXHVEQzhGXFx1REM5MVxcdURDQUFcXHVERDc0XFx1REQ3NVxcdUREN0FcXHVERDkwXFx1REQ5NVxcdUREOTZcXHVERTQ1LVxcdURFNDdcXHVERTRCLVxcdURFNEZcXHVERUEzXFx1REVCNC1cXHVERUI2XFx1REVDMFxcdURFQ0NdfFxcdUQ4M0VbXFx1REQwQ1xcdUREMEZcXHVERDE4LVxcdUREMUZcXHVERDI2XFx1REQzMC1cXHVERDM5XFx1REQzQy1cXHVERDNFXFx1REQ3N1xcdUREQjVcXHVEREI2XFx1RERCOFxcdUREQjlcXHVEREJCXFx1RERDRC1cXHVERENGXFx1REREMS1cXHVEREREXSkvZ307ZnVuY3Rpb24gYyh0LHU9e30pe2lmKHR5cGVvZiB0IT1cInN0cmluZ1wifHx0Lmxlbmd0aD09PTB8fCh1PXthbWJpZ3VvdXNJc05hcnJvdzohMCwuLi51fSx0PSQodCksdC5sZW5ndGg9PT0wKSlyZXR1cm4gMDt0PXQucmVwbGFjZShZKCksXCIgIFwiKTtjb25zdCBGPXUuYW1iaWd1b3VzSXNOYXJyb3c/MToyO2xldCBlPTA7Zm9yKGNvbnN0IHMgb2YgdCl7Y29uc3QgQz1zLmNvZGVQb2ludEF0KDApO2lmKEM8PTMxfHxDPj0xMjcmJkM8PTE1OXx8Qz49NzY4JiZDPD04NzkpY29udGludWU7c3dpdGNoKEsuZWFzdEFzaWFuV2lkdGgocykpe2Nhc2VcIkZcIjpjYXNlXCJXXCI6ZSs9MjticmVhaztjYXNlXCJBXCI6ZSs9RjticmVhaztkZWZhdWx0OmUrPTE7fX1yZXR1cm4gZX1jb25zdCB2PTEwLEw9KHQ9MCk9PnU9PmBcXHgxQlske3UrdH1tYCxNPSh0PTApPT51PT5gXFx4MUJbJHszOCt0fTs1OyR7dX1tYCxUPSh0PTApPT4odSxGLGUpPT5gXFx4MUJbJHszOCt0fTsyOyR7dX07JHtGfTske2V9bWAscj17bW9kaWZpZXI6e3Jlc2V0OlswLDBdLGJvbGQ6WzEsMjJdLGRpbTpbMiwyMl0saXRhbGljOlszLDIzXSx1bmRlcmxpbmU6WzQsMjRdLG92ZXJsaW5lOls1Myw1NV0saW52ZXJzZTpbNywyN10saGlkZGVuOls4LDI4XSxzdHJpa2V0aHJvdWdoOls5LDI5XX0sY29sb3I6e2JsYWNrOlszMCwzOV0scmVkOlszMSwzOV0sZ3JlZW46WzMyLDM5XSx5ZWxsb3c6WzMzLDM5XSxibHVlOlszNCwzOV0sbWFnZW50YTpbMzUsMzldLGN5YW46WzM2LDM5XSx3aGl0ZTpbMzcsMzldLGJsYWNrQnJpZ2h0Ols5MCwzOV0sZ3JheTpbOTAsMzldLGdyZXk6WzkwLDM5XSxyZWRCcmlnaHQ6WzkxLDM5XSxncmVlbkJyaWdodDpbOTIsMzldLHllbGxvd0JyaWdodDpbOTMsMzldLGJsdWVCcmlnaHQ6Wzk0LDM5XSxtYWdlbnRhQnJpZ2h0Ols5NSwzOV0sY3lhbkJyaWdodDpbOTYsMzldLHdoaXRlQnJpZ2h0Ols5NywzOV19LGJnQ29sb3I6e2JnQmxhY2s6WzQwLDQ5XSxiZ1JlZDpbNDEsNDldLGJnR3JlZW46WzQyLDQ5XSxiZ1llbGxvdzpbNDMsNDldLGJnQmx1ZTpbNDQsNDldLGJnTWFnZW50YTpbNDUsNDldLGJnQ3lhbjpbNDYsNDldLGJnV2hpdGU6WzQ3LDQ5XSxiZ0JsYWNrQnJpZ2h0OlsxMDAsNDldLGJnR3JheTpbMTAwLDQ5XSxiZ0dyZXk6WzEwMCw0OV0sYmdSZWRCcmlnaHQ6WzEwMSw0OV0sYmdHcmVlbkJyaWdodDpbMTAyLDQ5XSxiZ1llbGxvd0JyaWdodDpbMTAzLDQ5XSxiZ0JsdWVCcmlnaHQ6WzEwNCw0OV0sYmdNYWdlbnRhQnJpZ2h0OlsxMDUsNDldLGJnQ3lhbkJyaWdodDpbMTA2LDQ5XSxiZ1doaXRlQnJpZ2h0OlsxMDcsNDldfX07T2JqZWN0LmtleXMoci5tb2RpZmllcik7Y29uc3QgWj1PYmplY3Qua2V5cyhyLmNvbG9yKSxIPU9iamVjdC5rZXlzKHIuYmdDb2xvcik7Wy4uLlosLi4uSF07ZnVuY3Rpb24gVSgpe2NvbnN0IHQ9bmV3IE1hcDtmb3IoY29uc3RbdSxGXW9mIE9iamVjdC5lbnRyaWVzKHIpKXtmb3IoY29uc3RbZSxzXW9mIE9iamVjdC5lbnRyaWVzKEYpKXJbZV09e29wZW46YFxceDFCWyR7c1swXX1tYCxjbG9zZTpgXFx4MUJbJHtzWzFdfW1gfSxGW2VdPXJbZV0sdC5zZXQoc1swXSxzWzFdKTtPYmplY3QuZGVmaW5lUHJvcGVydHkocix1LHt2YWx1ZTpGLGVudW1lcmFibGU6ITF9KTt9cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFwiY29kZXNcIix7dmFsdWU6dCxlbnVtZXJhYmxlOiExfSksci5jb2xvci5jbG9zZT1cIlxceDFCWzM5bVwiLHIuYmdDb2xvci5jbG9zZT1cIlxceDFCWzQ5bVwiLHIuY29sb3IuYW5zaT1MKCksci5jb2xvci5hbnNpMjU2PU0oKSxyLmNvbG9yLmFuc2kxNm09VCgpLHIuYmdDb2xvci5hbnNpPUwodiksci5iZ0NvbG9yLmFuc2kyNTY9TSh2KSxyLmJnQ29sb3IuYW5zaTE2bT1UKHYpLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHIse3JnYlRvQW5zaTI1Njp7dmFsdWU6KHUsRixlKT0+dT09PUYmJkY9PT1lP3U8OD8xNjp1PjI0OD8yMzE6TWF0aC5yb3VuZCgodS04KS8yNDcqMjQpKzIzMjoxNiszNipNYXRoLnJvdW5kKHUvMjU1KjUpKzYqTWF0aC5yb3VuZChGLzI1NSo1KStNYXRoLnJvdW5kKGUvMjU1KjUpLGVudW1lcmFibGU6ITF9LGhleFRvUmdiOnt2YWx1ZTp1PT57Y29uc3QgRj0vW2EtZlxcZF17Nn18W2EtZlxcZF17M30vaS5leGVjKHUudG9TdHJpbmcoMTYpKTtpZighRilyZXR1cm4gWzAsMCwwXTtsZXRbZV09RjtlLmxlbmd0aD09PTMmJihlPVsuLi5lXS5tYXAoQz0+QytDKS5qb2luKFwiXCIpKTtjb25zdCBzPU51bWJlci5wYXJzZUludChlLDE2KTtyZXR1cm4gW3M+PjE2JjI1NSxzPj44JjI1NSxzJjI1NV19LGVudW1lcmFibGU6ITF9LGhleFRvQW5zaTI1Njp7dmFsdWU6dT0+ci5yZ2JUb0Fuc2kyNTYoLi4uci5oZXhUb1JnYih1KSksZW51bWVyYWJsZTohMX0sYW5zaTI1NlRvQW5zaTp7dmFsdWU6dT0+e2lmKHU8OClyZXR1cm4gMzArdTtpZih1PDE2KXJldHVybiA5MCsodS04KTtsZXQgRixlLHM7aWYodT49MjMyKUY9KCh1LTIzMikqMTArOCkvMjU1LGU9RixzPUY7ZWxzZSB7dS09MTY7Y29uc3QgaT11JTM2O0Y9TWF0aC5mbG9vcih1LzM2KS81LGU9TWF0aC5mbG9vcihpLzYpLzUscz1pJTYvNTt9Y29uc3QgQz1NYXRoLm1heChGLGUscykqMjtpZihDPT09MClyZXR1cm4gMzA7bGV0IEQ9MzArKE1hdGgucm91bmQocyk8PDJ8TWF0aC5yb3VuZChlKTw8MXxNYXRoLnJvdW5kKEYpKTtyZXR1cm4gQz09PTImJihEKz02MCksRH0sZW51bWVyYWJsZTohMX0scmdiVG9BbnNpOnt2YWx1ZToodSxGLGUpPT5yLmFuc2kyNTZUb0Fuc2koci5yZ2JUb0Fuc2kyNTYodSxGLGUpKSxlbnVtZXJhYmxlOiExfSxoZXhUb0Fuc2k6e3ZhbHVlOnU9PnIuYW5zaTI1NlRvQW5zaShyLmhleFRvQW5zaTI1Nih1KSksZW51bWVyYWJsZTohMX19KSxyfWNvbnN0IHE9VSgpLHA9bmV3IFNldChbXCJcXHgxQlwiLFwiXFx4OUJcIl0pLEo9MzksYj1cIlxceDA3XCIsVz1cIltcIixRPVwiXVwiLEk9XCJtXCIsdz1gJHtRfTg7O2AsTj10PT5gJHtwLnZhbHVlcygpLm5leHQoKS52YWx1ZX0ke1d9JHt0fSR7SX1gLGo9dD0+YCR7cC52YWx1ZXMoKS5uZXh0KCkudmFsdWV9JHt3fSR7dH0ke2J9YCxYPXQ9PnQuc3BsaXQoXCIgXCIpLm1hcCh1PT5jKHUpKSxfPSh0LHUsRik9Pntjb25zdCBlPVsuLi51XTtsZXQgcz0hMSxDPSExLEQ9YygkKHRbdC5sZW5ndGgtMV0pKTtmb3IoY29uc3RbaSxvXW9mIGUuZW50cmllcygpKXtjb25zdCBFPWMobyk7aWYoRCtFPD1GP3RbdC5sZW5ndGgtMV0rPW86KHQucHVzaChvKSxEPTApLHAuaGFzKG8pJiYocz0hMCxDPWUuc2xpY2UoaSsxKS5qb2luKFwiXCIpLnN0YXJ0c1dpdGgodykpLHMpe0M/bz09PWImJihzPSExLEM9ITEpOm89PT1JJiYocz0hMSk7Y29udGludWV9RCs9RSxEPT09RiYmaTxlLmxlbmd0aC0xJiYodC5wdXNoKFwiXCIpLEQ9MCk7fSFEJiZ0W3QubGVuZ3RoLTFdLmxlbmd0aD4wJiZ0Lmxlbmd0aD4xJiYodFt0Lmxlbmd0aC0yXSs9dC5wb3AoKSk7fSxERD10PT57Y29uc3QgdT10LnNwbGl0KFwiIFwiKTtsZXQgRj11Lmxlbmd0aDtmb3IoO0Y+MCYmIShjKHVbRi0xXSk+MCk7KUYtLTtyZXR1cm4gRj09PXUubGVuZ3RoP3Q6dS5zbGljZSgwLEYpLmpvaW4oXCIgXCIpK3Uuc2xpY2UoRikuam9pbihcIlwiKX0sdUQ9KHQsdSxGPXt9KT0+e2lmKEYudHJpbSE9PSExJiZ0LnRyaW0oKT09PVwiXCIpcmV0dXJuIFwiXCI7bGV0IGU9XCJcIixzLEM7Y29uc3QgRD1YKHQpO2xldCBpPVtcIlwiXTtmb3IoY29uc3RbRSxhXW9mIHQuc3BsaXQoXCIgXCIpLmVudHJpZXMoKSl7Ri50cmltIT09ITEmJihpW2kubGVuZ3RoLTFdPWlbaS5sZW5ndGgtMV0udHJpbVN0YXJ0KCkpO2xldCBuPWMoaVtpLmxlbmd0aC0xXSk7aWYoRSE9PTAmJihuPj11JiYoRi53b3JkV3JhcD09PSExfHxGLnRyaW09PT0hMSkmJihpLnB1c2goXCJcIiksbj0wKSwobj4wfHxGLnRyaW09PT0hMSkmJihpW2kubGVuZ3RoLTFdKz1cIiBcIixuKyspKSxGLmhhcmQmJkRbRV0+dSl7Y29uc3QgQj11LW4sQT0xK01hdGguZmxvb3IoKERbRV0tQi0xKS91KTtNYXRoLmZsb29yKChEW0VdLTEpL3UpPEEmJmkucHVzaChcIlwiKSxfKGksYSx1KTtjb250aW51ZX1pZihuK0RbRV0+dSYmbj4wJiZEW0VdPjApe2lmKEYud29yZFdyYXA9PT0hMSYmbjx1KXtfKGksYSx1KTtjb250aW51ZX1pLnB1c2goXCJcIik7fWlmKG4rRFtFXT51JiZGLndvcmRXcmFwPT09ITEpe18oaSxhLHUpO2NvbnRpbnVlfWlbaS5sZW5ndGgtMV0rPWE7fUYudHJpbSE9PSExJiYoaT1pLm1hcChFPT5ERChFKSkpO2NvbnN0IG89Wy4uLmkuam9pbihgXG5gKV07Zm9yKGNvbnN0W0UsYV1vZiBvLmVudHJpZXMoKSl7aWYoZSs9YSxwLmhhcyhhKSl7Y29uc3R7Z3JvdXBzOkJ9PW5ldyBSZWdFeHAoYCg/OlxcXFwke1d9KD88Y29kZT5cXFxcZCspbXxcXFxcJHt3fSg/PHVyaT4uKikke2J9KWApLmV4ZWMoby5zbGljZShFKS5qb2luKFwiXCIpKXx8e2dyb3Vwczp7fX07aWYoQi5jb2RlIT09dm9pZCAwKXtjb25zdCBBPU51bWJlci5wYXJzZUZsb2F0KEIuY29kZSk7cz1BPT09Sj92b2lkIDA6QTt9ZWxzZSBCLnVyaSE9PXZvaWQgMCYmKEM9Qi51cmkubGVuZ3RoPT09MD92b2lkIDA6Qi51cmkpO31jb25zdCBuPXEuY29kZXMuZ2V0KE51bWJlcihzKSk7b1tFKzFdPT09YFxuYD8oQyYmKGUrPWooXCJcIikpLHMmJm4mJihlKz1OKG4pKSk6YT09PWBcbmAmJihzJiZuJiYoZSs9TihzKSksQyYmKGUrPWooQykpKTt9cmV0dXJuIGV9O2Z1bmN0aW9uIFAodCx1LEYpe3JldHVybiBTdHJpbmcodCkubm9ybWFsaXplKCkucmVwbGFjZSgvXFxyXFxuL2csYFxuYCkuc3BsaXQoYFxuYCkubWFwKGU9PnVEKGUsdSxGKSkuam9pbihgXG5gKX1mdW5jdGlvbiBGRCh0LHUpe2lmKHQ9PT11KXJldHVybjtjb25zdCBGPXQuc3BsaXQoYFxuYCksZT11LnNwbGl0KGBcbmApLHM9W107Zm9yKGxldCBDPTA7QzxNYXRoLm1heChGLmxlbmd0aCxlLmxlbmd0aCk7QysrKUZbQ10hPT1lW0NdJiZzLnB1c2goQyk7cmV0dXJuIHN9Y29uc3QgUj1TeW1ib2woXCJjbGFjazpjYW5jZWxcIik7ZnVuY3Rpb24gZyh0LHUpe3QuaXNUVFkmJnQuc2V0UmF3TW9kZSh1KTt9Y29uc3QgVj1uZXcgTWFwKFtbXCJrXCIsXCJ1cFwiXSxbXCJqXCIsXCJkb3duXCJdLFtcImhcIixcImxlZnRcIl0sW1wibFwiLFwicmlnaHRcIl1dKSx0RD1uZXcgU2V0KFtcInVwXCIsXCJkb3duXCIsXCJsZWZ0XCIsXCJyaWdodFwiLFwic3BhY2VcIixcImVudGVyXCJdKTtjbGFzcyBoe2NvbnN0cnVjdG9yKHtyZW5kZXI6dSxpbnB1dDpGPXN0ZGluLG91dHB1dDplPXN0ZG91dCwuLi5zfSxDPSEwKXt0aGlzLl90cmFjaz0hMSx0aGlzLl9jdXJzb3I9MCx0aGlzLnN0YXRlPVwiaW5pdGlhbFwiLHRoaXMuZXJyb3I9XCJcIix0aGlzLnN1YnNjcmliZXJzPW5ldyBNYXAsdGhpcy5fcHJldkZyYW1lPVwiXCIsdGhpcy5vcHRzPXMsdGhpcy5vbktleXByZXNzPXRoaXMub25LZXlwcmVzcy5iaW5kKHRoaXMpLHRoaXMuY2xvc2U9dGhpcy5jbG9zZS5iaW5kKHRoaXMpLHRoaXMucmVuZGVyPXRoaXMucmVuZGVyLmJpbmQodGhpcyksdGhpcy5fcmVuZGVyPXUuYmluZCh0aGlzKSx0aGlzLl90cmFjaz1DLHRoaXMuaW5wdXQ9Rix0aGlzLm91dHB1dD1lO31wcm9tcHQoKXtjb25zdCB1PW5ldyBXcml0ZVN0cmVhbSgwKTtyZXR1cm4gdS5fd3JpdGU9KEYsZSxzKT0+e3RoaXMuX3RyYWNrJiYodGhpcy52YWx1ZT10aGlzLnJsLmxpbmUucmVwbGFjZSgvXFx0L2csXCJcIiksdGhpcy5fY3Vyc29yPXRoaXMucmwuY3Vyc29yLHRoaXMuZW1pdChcInZhbHVlXCIsdGhpcy52YWx1ZSkpLHMoKTt9LHRoaXMuaW5wdXQucGlwZSh1KSx0aGlzLnJsPWYuY3JlYXRlSW50ZXJmYWNlKHtpbnB1dDp0aGlzLmlucHV0LG91dHB1dDp1LHRhYlNpemU6Mixwcm9tcHQ6XCJcIixlc2NhcGVDb2RlVGltZW91dDo1MH0pLGYuZW1pdEtleXByZXNzRXZlbnRzKHRoaXMuaW5wdXQsdGhpcy5ybCksdGhpcy5ybC5wcm9tcHQoKSx0aGlzLm9wdHMuaW5pdGlhbFZhbHVlIT09dm9pZCAwJiZ0aGlzLl90cmFjayYmdGhpcy5ybC53cml0ZSh0aGlzLm9wdHMuaW5pdGlhbFZhbHVlKSx0aGlzLmlucHV0Lm9uKFwia2V5cHJlc3NcIix0aGlzLm9uS2V5cHJlc3MpLGcodGhpcy5pbnB1dCwhMCksdGhpcy5vdXRwdXQub24oXCJyZXNpemVcIix0aGlzLnJlbmRlciksdGhpcy5yZW5kZXIoKSxuZXcgUHJvbWlzZSgoRixlKT0+e3RoaXMub25jZShcInN1Ym1pdFwiLCgpPT57dGhpcy5vdXRwdXQud3JpdGUoc3JjLmN1cnNvci5zaG93KSx0aGlzLm91dHB1dC5vZmYoXCJyZXNpemVcIix0aGlzLnJlbmRlciksZyh0aGlzLmlucHV0LCExKSxGKHRoaXMudmFsdWUpO30pLHRoaXMub25jZShcImNhbmNlbFwiLCgpPT57dGhpcy5vdXRwdXQud3JpdGUoc3JjLmN1cnNvci5zaG93KSx0aGlzLm91dHB1dC5vZmYoXCJyZXNpemVcIix0aGlzLnJlbmRlciksZyh0aGlzLmlucHV0LCExKSxGKFIpO30pO30pfW9uKHUsRil7Y29uc3QgZT10aGlzLnN1YnNjcmliZXJzLmdldCh1KT8/W107ZS5wdXNoKHtjYjpGfSksdGhpcy5zdWJzY3JpYmVycy5zZXQodSxlKTt9b25jZSh1LEYpe2NvbnN0IGU9dGhpcy5zdWJzY3JpYmVycy5nZXQodSk/P1tdO2UucHVzaCh7Y2I6RixvbmNlOiEwfSksdGhpcy5zdWJzY3JpYmVycy5zZXQodSxlKTt9ZW1pdCh1LC4uLkYpe2NvbnN0IGU9dGhpcy5zdWJzY3JpYmVycy5nZXQodSk/P1tdLHM9W107Zm9yKGNvbnN0IEMgb2YgZSlDLmNiKC4uLkYpLEMub25jZSYmcy5wdXNoKCgpPT5lLnNwbGljZShlLmluZGV4T2YoQyksMSkpO2Zvcihjb25zdCBDIG9mIHMpQygpO311bnN1YnNjcmliZSgpe3RoaXMuc3Vic2NyaWJlcnMuY2xlYXIoKTt9b25LZXlwcmVzcyh1LEYpe2lmKHRoaXMuc3RhdGU9PT1cImVycm9yXCImJih0aGlzLnN0YXRlPVwiYWN0aXZlXCIpLEY/Lm5hbWUmJiF0aGlzLl90cmFjayYmVi5oYXMoRi5uYW1lKSYmdGhpcy5lbWl0KFwiY3Vyc29yXCIsVi5nZXQoRi5uYW1lKSksRj8ubmFtZSYmdEQuaGFzKEYubmFtZSkmJnRoaXMuZW1pdChcImN1cnNvclwiLEYubmFtZSksdSYmKHUudG9Mb3dlckNhc2UoKT09PVwieVwifHx1LnRvTG93ZXJDYXNlKCk9PT1cIm5cIikmJnRoaXMuZW1pdChcImNvbmZpcm1cIix1LnRvTG93ZXJDYXNlKCk9PT1cInlcIiksdSYmdGhpcy5lbWl0KFwia2V5XCIsdS50b0xvd2VyQ2FzZSgpKSxGPy5uYW1lPT09XCJyZXR1cm5cIil7aWYodGhpcy5vcHRzLnZhbGlkYXRlKXtjb25zdCBlPXRoaXMub3B0cy52YWxpZGF0ZSh0aGlzLnZhbHVlKTtlJiYodGhpcy5lcnJvcj1lLHRoaXMuc3RhdGU9XCJlcnJvclwiLHRoaXMucmwud3JpdGUodGhpcy52YWx1ZSkpO310aGlzLnN0YXRlIT09XCJlcnJvclwiJiYodGhpcy5zdGF0ZT1cInN1Ym1pdFwiKTt9dT09PVwiXHUwMDAzXCImJih0aGlzLnN0YXRlPVwiY2FuY2VsXCIpLCh0aGlzLnN0YXRlPT09XCJzdWJtaXRcInx8dGhpcy5zdGF0ZT09PVwiY2FuY2VsXCIpJiZ0aGlzLmVtaXQoXCJmaW5hbGl6ZVwiKSx0aGlzLnJlbmRlcigpLCh0aGlzLnN0YXRlPT09XCJzdWJtaXRcInx8dGhpcy5zdGF0ZT09PVwiY2FuY2VsXCIpJiZ0aGlzLmNsb3NlKCk7fWNsb3NlKCl7dGhpcy5pbnB1dC51bnBpcGUoKSx0aGlzLmlucHV0LnJlbW92ZUxpc3RlbmVyKFwia2V5cHJlc3NcIix0aGlzLm9uS2V5cHJlc3MpLHRoaXMub3V0cHV0LndyaXRlKGBcbmApLGcodGhpcy5pbnB1dCwhMSksdGhpcy5ybC5jbG9zZSgpLHRoaXMuZW1pdChgJHt0aGlzLnN0YXRlfWAsdGhpcy52YWx1ZSksdGhpcy51bnN1YnNjcmliZSgpO31yZXN0b3JlQ3Vyc29yKCl7Y29uc3QgdT1QKHRoaXMuX3ByZXZGcmFtZSxwcm9jZXNzLnN0ZG91dC5jb2x1bW5zLHtoYXJkOiEwfSkuc3BsaXQoYFxuYCkubGVuZ3RoLTE7dGhpcy5vdXRwdXQud3JpdGUoc3JjLmN1cnNvci5tb3ZlKC05OTksdSotMSkpO31yZW5kZXIoKXtjb25zdCB1PVAodGhpcy5fcmVuZGVyKHRoaXMpPz9cIlwiLHByb2Nlc3Muc3Rkb3V0LmNvbHVtbnMse2hhcmQ6ITB9KTtpZih1IT09dGhpcy5fcHJldkZyYW1lKXtpZih0aGlzLnN0YXRlPT09XCJpbml0aWFsXCIpdGhpcy5vdXRwdXQud3JpdGUoc3JjLmN1cnNvci5oaWRlKTtlbHNlIHtjb25zdCBGPUZEKHRoaXMuX3ByZXZGcmFtZSx1KTtpZih0aGlzLnJlc3RvcmVDdXJzb3IoKSxGJiZGPy5sZW5ndGg9PT0xKXtjb25zdCBlPUZbMF07dGhpcy5vdXRwdXQud3JpdGUoc3JjLmN1cnNvci5tb3ZlKDAsZSkpLHRoaXMub3V0cHV0LndyaXRlKHNyYy5lcmFzZS5saW5lcygxKSk7Y29uc3Qgcz11LnNwbGl0KGBcbmApO3RoaXMub3V0cHV0LndyaXRlKHNbZV0pLHRoaXMuX3ByZXZGcmFtZT11LHRoaXMub3V0cHV0LndyaXRlKHNyYy5jdXJzb3IubW92ZSgwLHMubGVuZ3RoLWUtMSkpO3JldHVybn1lbHNlIGlmKEYmJkY/Lmxlbmd0aD4xKXtjb25zdCBlPUZbMF07dGhpcy5vdXRwdXQud3JpdGUoc3JjLmN1cnNvci5tb3ZlKDAsZSkpLHRoaXMub3V0cHV0LndyaXRlKHNyYy5lcmFzZS5kb3duKCkpO2NvbnN0IEM9dS5zcGxpdChgXG5gKS5zbGljZShlKTt0aGlzLm91dHB1dC53cml0ZShDLmpvaW4oYFxuYCkpLHRoaXMuX3ByZXZGcmFtZT11O3JldHVybn10aGlzLm91dHB1dC53cml0ZShzcmMuZXJhc2UuZG93bigpKTt9dGhpcy5vdXRwdXQud3JpdGUodSksdGhpcy5zdGF0ZT09PVwiaW5pdGlhbFwiJiYodGhpcy5zdGF0ZT1cImFjdGl2ZVwiKSx0aGlzLl9wcmV2RnJhbWU9dTt9fX1jbGFzcyBzRCBleHRlbmRzIGh7Z2V0IGN1cnNvcigpe3JldHVybiB0aGlzLnZhbHVlPzA6MX1nZXQgX3ZhbHVlKCl7cmV0dXJuIHRoaXMuY3Vyc29yPT09MH1jb25zdHJ1Y3Rvcih1KXtzdXBlcih1LCExKSx0aGlzLnZhbHVlPSEhdS5pbml0aWFsVmFsdWUsdGhpcy5vbihcInZhbHVlXCIsKCk9Pnt0aGlzLnZhbHVlPXRoaXMuX3ZhbHVlO30pLHRoaXMub24oXCJjb25maXJtXCIsRj0+e3RoaXMub3V0cHV0LndyaXRlKHNyYy5jdXJzb3IubW92ZSgwLC0xKSksdGhpcy52YWx1ZT1GLHRoaXMuc3RhdGU9XCJzdWJtaXRcIix0aGlzLmNsb3NlKCk7fSksdGhpcy5vbihcImN1cnNvclwiLCgpPT57dGhpcy52YWx1ZT0hdGhpcy52YWx1ZTt9KTt9fWNsYXNzIGlEIGV4dGVuZHMgaHtjb25zdHJ1Y3Rvcih1KXtzdXBlcih1LCExKSx0aGlzLmN1cnNvcj0wLHRoaXMub3B0aW9ucz11Lm9wdGlvbnMsdGhpcy52YWx1ZT1bLi4udS5pbml0aWFsVmFsdWVzPz9bXV0sdGhpcy5jdXJzb3I9TWF0aC5tYXgodGhpcy5vcHRpb25zLmZpbmRJbmRleCgoe3ZhbHVlOkZ9KT0+Rj09PXUuY3Vyc29yQXQpLDApLHRoaXMub24oXCJrZXlcIixGPT57Rj09PVwiYVwiJiZ0aGlzLnRvZ2dsZUFsbCgpO30pLHRoaXMub24oXCJjdXJzb3JcIixGPT57c3dpdGNoKEYpe2Nhc2VcImxlZnRcIjpjYXNlXCJ1cFwiOnRoaXMuY3Vyc29yPXRoaXMuY3Vyc29yPT09MD90aGlzLm9wdGlvbnMubGVuZ3RoLTE6dGhpcy5jdXJzb3ItMTticmVhaztjYXNlXCJkb3duXCI6Y2FzZVwicmlnaHRcIjp0aGlzLmN1cnNvcj10aGlzLmN1cnNvcj09PXRoaXMub3B0aW9ucy5sZW5ndGgtMT8wOnRoaXMuY3Vyc29yKzE7YnJlYWs7Y2FzZVwic3BhY2VcIjp0aGlzLnRvZ2dsZVZhbHVlKCk7YnJlYWt9fSk7fWdldCBfdmFsdWUoKXtyZXR1cm4gdGhpcy5vcHRpb25zW3RoaXMuY3Vyc29yXS52YWx1ZX10b2dnbGVBbGwoKXtjb25zdCB1PXRoaXMudmFsdWUubGVuZ3RoPT09dGhpcy5vcHRpb25zLmxlbmd0aDt0aGlzLnZhbHVlPXU/W106dGhpcy5vcHRpb25zLm1hcChGPT5GLnZhbHVlKTt9dG9nZ2xlVmFsdWUoKXtjb25zdCB1PXRoaXMudmFsdWUuaW5jbHVkZXModGhpcy5fdmFsdWUpO3RoaXMudmFsdWU9dT90aGlzLnZhbHVlLmZpbHRlcihGPT5GIT09dGhpcy5fdmFsdWUpOlsuLi50aGlzLnZhbHVlLHRoaXMuX3ZhbHVlXTt9fWNsYXNzIEVEIGV4dGVuZHMgaHtjb25zdHJ1Y3Rvcih1KXtzdXBlcih1LCExKSx0aGlzLmN1cnNvcj0wLHRoaXMub3B0aW9ucz11Lm9wdGlvbnMsdGhpcy5jdXJzb3I9dGhpcy5vcHRpb25zLmZpbmRJbmRleCgoe3ZhbHVlOkZ9KT0+Rj09PXUuaW5pdGlhbFZhbHVlKSx0aGlzLmN1cnNvcj09PS0xJiYodGhpcy5jdXJzb3I9MCksdGhpcy5jaGFuZ2VWYWx1ZSgpLHRoaXMub24oXCJjdXJzb3JcIixGPT57c3dpdGNoKEYpe2Nhc2VcImxlZnRcIjpjYXNlXCJ1cFwiOnRoaXMuY3Vyc29yPXRoaXMuY3Vyc29yPT09MD90aGlzLm9wdGlvbnMubGVuZ3RoLTE6dGhpcy5jdXJzb3ItMTticmVhaztjYXNlXCJkb3duXCI6Y2FzZVwicmlnaHRcIjp0aGlzLmN1cnNvcj10aGlzLmN1cnNvcj09PXRoaXMub3B0aW9ucy5sZW5ndGgtMT8wOnRoaXMuY3Vyc29yKzE7YnJlYWt9dGhpcy5jaGFuZ2VWYWx1ZSgpO30pO31nZXQgX3ZhbHVlKCl7cmV0dXJuIHRoaXMub3B0aW9uc1t0aGlzLmN1cnNvcl19Y2hhbmdlVmFsdWUoKXt0aGlzLnZhbHVlPXRoaXMuX3ZhbHVlLnZhbHVlO319Y2xhc3Mgb0QgZXh0ZW5kcyBoe2NvbnN0cnVjdG9yKHUpe3N1cGVyKHUpLHRoaXMudmFsdWVXaXRoQ3Vyc29yPVwiXCIsdGhpcy5vbihcImZpbmFsaXplXCIsKCk9Pnt0aGlzLnZhbHVlfHwodGhpcy52YWx1ZT11LmRlZmF1bHRWYWx1ZSksdGhpcy52YWx1ZVdpdGhDdXJzb3I9dGhpcy52YWx1ZTt9KSx0aGlzLm9uKFwidmFsdWVcIiwoKT0+e2lmKHRoaXMuY3Vyc29yPj10aGlzLnZhbHVlLmxlbmd0aCl0aGlzLnZhbHVlV2l0aEN1cnNvcj1gJHt0aGlzLnZhbHVlfSR7bC5pbnZlcnNlKGwuaGlkZGVuKFwiX1wiKSl9YDtlbHNlIHtjb25zdCBGPXRoaXMudmFsdWUuc2xpY2UoMCx0aGlzLmN1cnNvciksZT10aGlzLnZhbHVlLnNsaWNlKHRoaXMuY3Vyc29yKTt0aGlzLnZhbHVlV2l0aEN1cnNvcj1gJHtGfSR7bC5pbnZlcnNlKGVbMF0pfSR7ZS5zbGljZSgxKX1gO319KTt9Z2V0IGN1cnNvcigpe3JldHVybiB0aGlzLl9jdXJzb3J9fVxuXG5jb25zdCB1bmljb2RlID0gaXNVbmljb2RlU3VwcG9ydGVkKCk7XG5jb25zdCBzID0gKGMsIGZhbGxiYWNrKSA9PiB1bmljb2RlID8gYyA6IGZhbGxiYWNrO1xuY29uc3QgU19TVEVQX0FDVElWRSA9IHMoXCJcXHUyNzZGXCIsIFwiPlwiKTtcbmNvbnN0IFNfU1RFUF9DQU5DRUwgPSBzKFwiXFx1MjVBMFwiLCBcInhcIik7XG5jb25zdCBTX1NURVBfRVJST1IgPSBzKFwiXFx1MjVCMlwiLCBcInhcIik7XG5jb25zdCBTX1NURVBfU1VCTUlUID0gcyhcIlxcdTI3MTRcIiwgXCJcXHUyMjFBXCIpO1xuY29uc3QgU19CQVIgPSBcIlwiO1xuY29uc3QgU19CQVJfRU5EID0gXCJcIjtcbmNvbnN0IFNfUkFESU9fQUNUSVZFID0gcyhcIlxcdTI1Q0ZcIiwgXCI+XCIpO1xuY29uc3QgU19SQURJT19JTkFDVElWRSA9IHMoXCJcXHUyNUNCXCIsIFwiIFwiKTtcbmNvbnN0IFNfQ0hFQ0tCT1hfQUNUSVZFID0gcyhcIlxcdTI1RkJcIiwgXCJbXFx1MjAyMl1cIik7XG5jb25zdCBTX0NIRUNLQk9YX1NFTEVDVEVEID0gcyhcIlxcdTI1RkNcIiwgXCJbK11cIik7XG5jb25zdCBTX0NIRUNLQk9YX0lOQUNUSVZFID0gcyhcIlxcdTI1RkJcIiwgXCJbIF1cIik7XG5jb25zdCBzeW1ib2wgPSAoc3RhdGUpID0+IHtcbiAgc3dpdGNoIChzdGF0ZSkge1xuICAgIGNhc2UgXCJpbml0aWFsXCI6XG4gICAgY2FzZSBcImFjdGl2ZVwiOiB7XG4gICAgICByZXR1cm4gY29sb3JzLmN5YW4oU19TVEVQX0FDVElWRSk7XG4gICAgfVxuICAgIGNhc2UgXCJjYW5jZWxcIjoge1xuICAgICAgcmV0dXJuIGNvbG9ycy5yZWQoU19TVEVQX0NBTkNFTCk7XG4gICAgfVxuICAgIGNhc2UgXCJlcnJvclwiOiB7XG4gICAgICByZXR1cm4gY29sb3JzLnllbGxvdyhTX1NURVBfRVJST1IpO1xuICAgIH1cbiAgICBjYXNlIFwic3VibWl0XCI6IHtcbiAgICAgIHJldHVybiBjb2xvcnMuZ3JlZW4oU19TVEVQX1NVQk1JVCk7XG4gICAgfVxuICB9XG59O1xuY29uc3QgdGV4dCA9IChvcHRzKSA9PiB7XG4gIHJldHVybiBuZXcgb0Qoe1xuICAgIHZhbGlkYXRlOiBvcHRzLnZhbGlkYXRlLFxuICAgIHBsYWNlaG9sZGVyOiBvcHRzLnBsYWNlaG9sZGVyLFxuICAgIGRlZmF1bHRWYWx1ZTogb3B0cy5kZWZhdWx0VmFsdWUsXG4gICAgaW5pdGlhbFZhbHVlOiBvcHRzLmluaXRpYWxWYWx1ZSxcbiAgICByZW5kZXIoKSB7XG4gICAgICBjb25zdCB0aXRsZSA9IGAke2NvbG9ycy5ncmF5KFNfQkFSKX1cbiR7c3ltYm9sKHRoaXMuc3RhdGUpfSAke29wdHMubWVzc2FnZX1cbmA7XG4gICAgICBjb25zdCBwbGFjZWhvbGRlciA9IG9wdHMucGxhY2Vob2xkZXIgPyBjb2xvcnMuaW52ZXJzZShvcHRzLnBsYWNlaG9sZGVyWzBdKSArIGNvbG9ycy5kaW0ob3B0cy5wbGFjZWhvbGRlci5zbGljZSgxKSkgOiBjb2xvcnMuaW52ZXJzZShjb2xvcnMuaGlkZGVuKFwiX1wiKSk7XG4gICAgICBjb25zdCB2YWx1ZSA9IHRoaXMudmFsdWUgPyB0aGlzLnZhbHVlV2l0aEN1cnNvciA6IHBsYWNlaG9sZGVyO1xuICAgICAgc3dpdGNoICh0aGlzLnN0YXRlKSB7XG4gICAgICAgIGNhc2UgXCJlcnJvclwiOiB7XG4gICAgICAgICAgcmV0dXJuIGAke3RpdGxlLnRyaW0oKX1cbiR7Y29sb3JzLnllbGxvdyhcbiAgICAgICAgICAgIFNfQkFSXG4gICAgICAgICAgKX0gJHt2YWx1ZX1cbiR7Y29sb3JzLnllbGxvdyhTX0JBUl9FTkQpfSAke2NvbG9ycy55ZWxsb3coXG4gICAgICAgICAgICB0aGlzLmVycm9yXG4gICAgICAgICAgKX1cbmA7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBcInN1Ym1pdFwiOiB7XG4gICAgICAgICAgcmV0dXJuIGAke3RpdGxlfSR7Y29sb3JzLmdyYXkoU19CQVIpfSAke2NvbG9ycy5kaW0oXG4gICAgICAgICAgICB0aGlzLnZhbHVlIHx8IG9wdHMucGxhY2Vob2xkZXJcbiAgICAgICAgICApfWA7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBcImNhbmNlbFwiOiB7XG4gICAgICAgICAgcmV0dXJuIGAke3RpdGxlfSR7Y29sb3JzLmdyYXkoU19CQVIpfSAke2NvbG9ycy5zdHJpa2V0aHJvdWdoKFxuICAgICAgICAgICAgY29sb3JzLmRpbSh0aGlzLnZhbHVlID8/IFwiXCIpXG4gICAgICAgICAgKX0ke3RoaXMudmFsdWU/LnRyaW0oKSA/IFwiXFxuXCIgKyBjb2xvcnMuZ3JheShTX0JBUikgOiBcIlwifWA7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgIHJldHVybiBgJHt0aXRsZX0ke2NvbG9ycy5jeWFuKFNfQkFSKX0gJHt2YWx1ZX1cbiR7Y29sb3JzLmN5YW4oXG4gICAgICAgICAgICBTX0JBUl9FTkRcbiAgICAgICAgICApfVxuYDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSkucHJvbXB0KCk7XG59O1xuY29uc3QgY29uZmlybSA9IChvcHRzKSA9PiB7XG4gIGNvbnN0IGFjdGl2ZSA9IG9wdHMuYWN0aXZlID8/IFwiWWVzXCI7XG4gIGNvbnN0IGluYWN0aXZlID0gb3B0cy5pbmFjdGl2ZSA/PyBcIk5vXCI7XG4gIHJldHVybiBuZXcgc0Qoe1xuICAgIGFjdGl2ZSxcbiAgICBpbmFjdGl2ZSxcbiAgICBpbml0aWFsVmFsdWU6IG9wdHMuaW5pdGlhbFZhbHVlID8/IHRydWUsXG4gICAgcmVuZGVyKCkge1xuICAgICAgY29uc3QgdGl0bGUgPSBgJHtjb2xvcnMuZ3JheShTX0JBUil9XG4ke3N5bWJvbCh0aGlzLnN0YXRlKX0gJHtvcHRzLm1lc3NhZ2V9XG5gO1xuICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnZhbHVlID8gYWN0aXZlIDogaW5hY3RpdmU7XG4gICAgICBzd2l0Y2ggKHRoaXMuc3RhdGUpIHtcbiAgICAgICAgY2FzZSBcInN1Ym1pdFwiOiB7XG4gICAgICAgICAgcmV0dXJuIGAke3RpdGxlfSR7Y29sb3JzLmdyYXkoU19CQVIpfSAke2NvbG9ycy5kaW0odmFsdWUpfWA7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBcImNhbmNlbFwiOiB7XG4gICAgICAgICAgcmV0dXJuIGAke3RpdGxlfSR7Y29sb3JzLmdyYXkoU19CQVIpfSAke2NvbG9ycy5zdHJpa2V0aHJvdWdoKFxuICAgICAgICAgICAgY29sb3JzLmRpbSh2YWx1ZSlcbiAgICAgICAgICApfVxuJHtjb2xvcnMuZ3JheShTX0JBUil9YDtcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgcmV0dXJuIGAke3RpdGxlfSR7Y29sb3JzLmN5YW4oU19CQVIpfSAke3RoaXMudmFsdWUgPyBgJHtjb2xvcnMuZ3JlZW4oU19SQURJT19BQ1RJVkUpfSAke2FjdGl2ZX1gIDogYCR7Y29sb3JzLmRpbShTX1JBRElPX0lOQUNUSVZFKX0gJHtjb2xvcnMuZGltKGFjdGl2ZSl9YH0gJHtjb2xvcnMuZGltKFwiL1wiKX0gJHt0aGlzLnZhbHVlID8gYCR7Y29sb3JzLmRpbShTX1JBRElPX0lOQUNUSVZFKX0gJHtjb2xvcnMuZGltKGluYWN0aXZlKX1gIDogYCR7Y29sb3JzLmdyZWVuKFNfUkFESU9fQUNUSVZFKX0gJHtpbmFjdGl2ZX1gfVxuJHtjb2xvcnMuY3lhbihTX0JBUl9FTkQpfVxuYDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSkucHJvbXB0KCk7XG59O1xuY29uc3Qgc2VsZWN0ID0gKG9wdHMpID0+IHtcbiAgY29uc3Qgb3B0ID0gKG9wdGlvbiwgc3RhdGUpID0+IHtcbiAgICBjb25zdCBsYWJlbCA9IG9wdGlvbi5sYWJlbCA/PyBTdHJpbmcob3B0aW9uLnZhbHVlKTtcbiAgICBzd2l0Y2ggKHN0YXRlKSB7XG4gICAgICBjYXNlIFwiYWN0aXZlXCI6IHtcbiAgICAgICAgcmV0dXJuIGAke2NvbG9ycy5ncmVlbihTX1JBRElPX0FDVElWRSl9ICR7bGFiZWx9ICR7b3B0aW9uLmhpbnQgPyBjb2xvcnMuZGltKGAoJHtvcHRpb24uaGludH0pYCkgOiBcIlwifWA7XG4gICAgICB9XG4gICAgICBjYXNlIFwic2VsZWN0ZWRcIjoge1xuICAgICAgICByZXR1cm4gYCR7Y29sb3JzLmRpbShsYWJlbCl9YDtcbiAgICAgIH1cbiAgICAgIGNhc2UgXCJjYW5jZWxsZWRcIjoge1xuICAgICAgICByZXR1cm4gYCR7Y29sb3JzLnN0cmlrZXRocm91Z2goY29sb3JzLmRpbShsYWJlbCkpfWA7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBgJHtjb2xvcnMuZGltKFNfUkFESU9fSU5BQ1RJVkUpfSAke2NvbG9ycy5kaW0obGFiZWwpfWA7XG4gIH07XG4gIHJldHVybiBuZXcgRUQoe1xuICAgIG9wdGlvbnM6IG9wdHMub3B0aW9ucyxcbiAgICBpbml0aWFsVmFsdWU6IG9wdHMuaW5pdGlhbFZhbHVlLFxuICAgIHJlbmRlcigpIHtcbiAgICAgIGNvbnN0IHRpdGxlID0gYCR7Y29sb3JzLmdyYXkoU19CQVIpfVxuJHtzeW1ib2wodGhpcy5zdGF0ZSl9ICR7b3B0cy5tZXNzYWdlfVxuYDtcbiAgICAgIHN3aXRjaCAodGhpcy5zdGF0ZSkge1xuICAgICAgICBjYXNlIFwic3VibWl0XCI6IHtcbiAgICAgICAgICByZXR1cm4gYCR7dGl0bGV9JHtjb2xvcnMuZ3JheShTX0JBUil9ICR7b3B0KFxuICAgICAgICAgICAgdGhpcy5vcHRpb25zW3RoaXMuY3Vyc29yXSxcbiAgICAgICAgICAgIFwic2VsZWN0ZWRcIlxuICAgICAgICAgICl9YDtcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFwiY2FuY2VsXCI6IHtcbiAgICAgICAgICByZXR1cm4gYCR7dGl0bGV9JHtjb2xvcnMuZ3JheShTX0JBUil9ICR7b3B0KFxuICAgICAgICAgICAgdGhpcy5vcHRpb25zW3RoaXMuY3Vyc29yXSxcbiAgICAgICAgICAgIFwiY2FuY2VsbGVkXCJcbiAgICAgICAgICApfVxuJHtjb2xvcnMuZ3JheShTX0JBUil9YDtcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgcmV0dXJuIGAke3RpdGxlfSR7Y29sb3JzLmN5YW4oU19CQVIpfSAke3RoaXMub3B0aW9ucy5tYXAoXG4gICAgICAgICAgICAob3B0aW9uLCBpKSA9PiBvcHQob3B0aW9uLCBpID09PSB0aGlzLmN1cnNvciA/IFwiYWN0aXZlXCIgOiBcImluYWN0aXZlXCIpXG4gICAgICAgICAgKS5qb2luKGBcbiR7Y29sb3JzLmN5YW4oU19CQVIpfSAgYCl9XG4ke2NvbG9ycy5jeWFuKFNfQkFSX0VORCl9XG5gO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9KS5wcm9tcHQoKTtcbn07XG5jb25zdCBtdWx0aXNlbGVjdCA9IChvcHRzKSA9PiB7XG4gIGNvbnN0IG9wdCA9IChvcHRpb24sIHN0YXRlKSA9PiB7XG4gICAgY29uc3QgbGFiZWwgPSBvcHRpb24ubGFiZWwgPz8gU3RyaW5nKG9wdGlvbi52YWx1ZSk7XG4gICAgc3dpdGNoIChzdGF0ZSkge1xuICAgICAgY2FzZSBcImFjdGl2ZVwiOiB7XG4gICAgICAgIHJldHVybiBgJHtjb2xvcnMuY3lhbihTX0NIRUNLQk9YX0FDVElWRSl9ICR7bGFiZWx9ICR7b3B0aW9uLmhpbnQgPyBjb2xvcnMuZGltKGAoJHtvcHRpb24uaGludH0pYCkgOiBcIlwifWA7XG4gICAgICB9XG4gICAgICBjYXNlIFwic2VsZWN0ZWRcIjoge1xuICAgICAgICByZXR1cm4gYCR7Y29sb3JzLmdyZWVuKFNfQ0hFQ0tCT1hfU0VMRUNURUQpfSAke2NvbG9ycy5kaW0obGFiZWwpfWA7XG4gICAgICB9XG4gICAgICBjYXNlIFwiY2FuY2VsbGVkXCI6IHtcbiAgICAgICAgcmV0dXJuIGAke2NvbG9ycy5zdHJpa2V0aHJvdWdoKGNvbG9ycy5kaW0obGFiZWwpKX1gO1xuICAgICAgfVxuICAgICAgY2FzZSBcImFjdGl2ZS1zZWxlY3RlZFwiOiB7XG4gICAgICAgIHJldHVybiBgJHtjb2xvcnMuZ3JlZW4oU19DSEVDS0JPWF9TRUxFQ1RFRCl9ICR7bGFiZWx9ICR7b3B0aW9uLmhpbnQgPyBjb2xvcnMuZGltKGAoJHtvcHRpb24uaGludH0pYCkgOiBcIlwifWA7XG4gICAgICB9XG4gICAgICBjYXNlIFwic3VibWl0dGVkXCI6IHtcbiAgICAgICAgcmV0dXJuIGAke2NvbG9ycy5kaW0obGFiZWwpfWA7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBgJHtjb2xvcnMuZGltKFNfQ0hFQ0tCT1hfSU5BQ1RJVkUpfSAke2NvbG9ycy5kaW0obGFiZWwpfWA7XG4gIH07XG4gIHJldHVybiBuZXcgaUQoe1xuICAgIG9wdGlvbnM6IG9wdHMub3B0aW9ucyxcbiAgICBpbml0aWFsVmFsdWVzOiBvcHRzLmluaXRpYWxWYWx1ZXMsXG4gICAgcmVxdWlyZWQ6IG9wdHMucmVxdWlyZWQgPz8gdHJ1ZSxcbiAgICBjdXJzb3JBdDogb3B0cy5jdXJzb3JBdCxcbiAgICB2YWxpZGF0ZShzZWxlY3RlZCkge1xuICAgICAgaWYgKHRoaXMucmVxdWlyZWQgJiYgc2VsZWN0ZWQubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiBgUGxlYXNlIHNlbGVjdCBhdCBsZWFzdCBvbmUgb3B0aW9uLlxuJHtjb2xvcnMucmVzZXQoXG4gICAgICAgICAgY29sb3JzLmRpbShcbiAgICAgICAgICAgIGBQcmVzcyAke2NvbG9ycy5ncmF5KFxuICAgICAgICAgICAgICBjb2xvcnMuYmdXaGl0ZShjb2xvcnMuaW52ZXJzZShcIiBzcGFjZSBcIikpXG4gICAgICAgICAgICApfSB0byBzZWxlY3QsICR7Y29sb3JzLmdyYXkoXG4gICAgICAgICAgICAgIGNvbG9ycy5iZ1doaXRlKGNvbG9ycy5pbnZlcnNlKFwiIGVudGVyIFwiKSlcbiAgICAgICAgICAgICl9IHRvIHN1Ym1pdGBcbiAgICAgICAgICApXG4gICAgICAgICl9YDtcbiAgICAgIH1cbiAgICB9LFxuICAgIHJlbmRlcigpIHtcbiAgICAgIGNvbnN0IHRpdGxlID0gYCR7Y29sb3JzLmdyYXkoU19CQVIpfVxuJHtzeW1ib2wodGhpcy5zdGF0ZSl9ICR7b3B0cy5tZXNzYWdlfVxuYDtcbiAgICAgIHN3aXRjaCAodGhpcy5zdGF0ZSkge1xuICAgICAgICBjYXNlIFwic3VibWl0XCI6IHtcbiAgICAgICAgICByZXR1cm4gYCR7dGl0bGV9JHtjb2xvcnMuZ3JheShTX0JBUil9ICR7dGhpcy5vcHRpb25zLmZpbHRlcigoeyB2YWx1ZSB9KSA9PiB0aGlzLnZhbHVlLmluY2x1ZGVzKHZhbHVlKSkubWFwKChvcHRpb24pID0+IG9wdChvcHRpb24sIFwic3VibWl0dGVkXCIpKS5qb2luKGNvbG9ycy5kaW0oXCIsIFwiKSkgfHwgY29sb3JzLmRpbShcIm5vbmVcIil9YDtcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFwiY2FuY2VsXCI6IHtcbiAgICAgICAgICBjb25zdCBsYWJlbCA9IHRoaXMub3B0aW9ucy5maWx0ZXIoKHsgdmFsdWUgfSkgPT4gdGhpcy52YWx1ZS5pbmNsdWRlcyh2YWx1ZSkpLm1hcCgob3B0aW9uKSA9PiBvcHQob3B0aW9uLCBcImNhbmNlbGxlZFwiKSkuam9pbihjb2xvcnMuZGltKFwiLCBcIikpO1xuICAgICAgICAgIHJldHVybiBgJHt0aXRsZX0ke2NvbG9ycy5ncmF5KFNfQkFSKX0gJHtsYWJlbC50cmltKCkgPyBgJHtsYWJlbH1cbiR7Y29sb3JzLmdyYXkoU19CQVIpfWAgOiBcIlwifWA7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBcImVycm9yXCI6IHtcbiAgICAgICAgICBjb25zdCBmb290ZXIgPSB0aGlzLmVycm9yLnNwbGl0KFwiXFxuXCIpLm1hcChcbiAgICAgICAgICAgIChsbiwgaSkgPT4gaSA9PT0gMCA/IGAke2NvbG9ycy55ZWxsb3coU19CQVJfRU5EKX0gJHtjb2xvcnMueWVsbG93KGxuKX1gIDogYCAgICR7bG59YFxuICAgICAgICAgICkuam9pbihcIlxcblwiKTtcbiAgICAgICAgICByZXR1cm4gdGl0bGUgKyBjb2xvcnMueWVsbG93KFNfQkFSKSArIFwiICBcIiArIHRoaXMub3B0aW9ucy5tYXAoKG9wdGlvbiwgaSkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLnZhbHVlLmluY2x1ZGVzKG9wdGlvbi52YWx1ZSk7XG4gICAgICAgICAgICBjb25zdCBhY3RpdmUgPSBpID09PSB0aGlzLmN1cnNvcjtcbiAgICAgICAgICAgIGlmIChhY3RpdmUgJiYgc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG9wdChvcHRpb24sIFwiYWN0aXZlLXNlbGVjdGVkXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHNlbGVjdGVkKSB7XG4gICAgICAgICAgICAgIHJldHVybiBvcHQob3B0aW9uLCBcInNlbGVjdGVkXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG9wdChvcHRpb24sIGFjdGl2ZSA/IFwiYWN0aXZlXCIgOiBcImluYWN0aXZlXCIpO1xuICAgICAgICAgIH0pLmpvaW4oYFxuJHtjb2xvcnMueWVsbG93KFNfQkFSKX0gIGApICsgXCJcXG5cIiArIGZvb3RlciArIFwiXFxuXCI7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgIHJldHVybiBgJHt0aXRsZX0ke2NvbG9ycy5jeWFuKFNfQkFSKX0gJHt0aGlzLm9wdGlvbnMubWFwKChvcHRpb24sIGkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy52YWx1ZS5pbmNsdWRlcyhvcHRpb24udmFsdWUpO1xuICAgICAgICAgICAgY29uc3QgYWN0aXZlID0gaSA9PT0gdGhpcy5jdXJzb3I7XG4gICAgICAgICAgICBpZiAoYWN0aXZlICYmIHNlbGVjdGVkKSB7XG4gICAgICAgICAgICAgIHJldHVybiBvcHQob3B0aW9uLCBcImFjdGl2ZS1zZWxlY3RlZFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzZWxlY3RlZCkge1xuICAgICAgICAgICAgICByZXR1cm4gb3B0KG9wdGlvbiwgXCJzZWxlY3RlZFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBvcHQob3B0aW9uLCBhY3RpdmUgPyBcImFjdGl2ZVwiIDogXCJpbmFjdGl2ZVwiKTtcbiAgICAgICAgICB9KS5qb2luKGBcbiR7Y29sb3JzLmN5YW4oU19CQVIpfSAgYCl9XG4ke2NvbG9ycy5jeWFuKFNfQkFSX0VORCl9XG5gO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9KS5wcm9tcHQoKTtcbn07XG5cbmFzeW5jIGZ1bmN0aW9uIHByb21wdChtZXNzYWdlLCBvcHRzID0ge30pIHtcbiAgaWYgKCFvcHRzLnR5cGUgfHwgb3B0cy50eXBlID09PSBcInRleHRcIikge1xuICAgIHJldHVybiBhd2FpdCB0ZXh0KHtcbiAgICAgIG1lc3NhZ2UsXG4gICAgICBkZWZhdWx0VmFsdWU6IG9wdHMuZGVmYXVsdCxcbiAgICAgIHBsYWNlaG9sZGVyOiBvcHRzLnBsYWNlaG9sZGVyLFxuICAgICAgaW5pdGlhbFZhbHVlOiBvcHRzLmluaXRpYWxcbiAgICB9KTtcbiAgfVxuICBpZiAob3B0cy50eXBlID09PSBcImNvbmZpcm1cIikge1xuICAgIHJldHVybiBhd2FpdCBjb25maXJtKHtcbiAgICAgIG1lc3NhZ2UsXG4gICAgICBpbml0aWFsVmFsdWU6IG9wdHMuaW5pdGlhbFxuICAgIH0pO1xuICB9XG4gIGlmIChvcHRzLnR5cGUgPT09IFwic2VsZWN0XCIpIHtcbiAgICByZXR1cm4gYXdhaXQgc2VsZWN0KHtcbiAgICAgIG1lc3NhZ2UsXG4gICAgICBvcHRpb25zOiBvcHRzLm9wdGlvbnMubWFwKFxuICAgICAgICAobykgPT4gdHlwZW9mIG8gPT09IFwic3RyaW5nXCIgPyB7IHZhbHVlOiBvLCBsYWJlbDogbyB9IDogb1xuICAgICAgKVxuICAgIH0pO1xuICB9XG4gIGlmIChvcHRzLnR5cGUgPT09IFwibXVsdGlzZWxlY3RcIikge1xuICAgIHJldHVybiBhd2FpdCBtdWx0aXNlbGVjdCh7XG4gICAgICBtZXNzYWdlLFxuICAgICAgb3B0aW9uczogb3B0cy5vcHRpb25zLm1hcChcbiAgICAgICAgKG8pID0+IHR5cGVvZiBvID09PSBcInN0cmluZ1wiID8geyB2YWx1ZTogbywgbGFiZWw6IG8gfSA6IG9cbiAgICAgICksXG4gICAgICByZXF1aXJlZDogb3B0cy5yZXF1aXJlZFxuICAgIH0pO1xuICB9XG4gIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBwcm9tcHQgdHlwZTogJHtvcHRzLnR5cGV9YCk7XG59XG5cbmV4cG9ydCB7IHByb21wdCB9O1xuIiwgImltcG9ydCB7IGNyZWF0ZUNvbnNvbGEgYXMgY3JlYXRlQ29uc29sYSQxLCBMb2dMZXZlbHMgfSBmcm9tICcuLi9jb3JlLm1qcyc7XG5pbXBvcnQgeyBCIGFzIEJhc2ljUmVwb3J0ZXIsIHAgYXMgcGFyc2VTdGFjayB9IGZyb20gJy4vY29uc29sYS4wNmFkOGE2NC5tanMnO1xuaW1wb3J0IHByb2Nlc3MkMSBmcm9tICdub2RlOnByb2Nlc3MnO1xuaW1wb3J0IHsgY29sb3JzLCBib3gsIHN0cmlwQW5zaSBhcyBzdHJpcEFuc2kkMSB9IGZyb20gJy4uL3V0aWxzLm1qcyc7XG5cbmNvbnN0IHByb3ZpZGVycyA9IFtcbiAgW1wiQVBQVkVZT1JcIl0sXG4gIFtcIkFaVVJFX1BJUEVMSU5FU1wiLCBcIlNZU1RFTV9URUFNRk9VTkRBVElPTkNPTExFQ1RJT05VUklcIl0sXG4gIFtcIkFaVVJFX1NUQVRJQ1wiLCBcIklOUFVUX0FaVVJFX1NUQVRJQ19XRUJfQVBQU19BUElfVE9LRU5cIl0sXG4gIFtcIkFQUENJUkNMRVwiLCBcIkFDX0FQUENJUkNMRVwiXSxcbiAgW1wiQkFNQk9PXCIsIFwiYmFtYm9vX3BsYW5LZXlcIl0sXG4gIFtcIkJJVEJVQ0tFVFwiLCBcIkJJVEJVQ0tFVF9DT01NSVRcIl0sXG4gIFtcIkJJVFJJU0VcIiwgXCJCSVRSSVNFX0lPXCJdLFxuICBbXCJCVUREWVwiLCBcIkJVRERZX1dPUktTUEFDRV9JRFwiXSxcbiAgW1wiQlVJTERLSVRFXCJdLFxuICBbXCJDSVJDTEVcIiwgXCJDSVJDTEVDSVwiXSxcbiAgW1wiQ0lSUlVTXCIsIFwiQ0lSUlVTX0NJXCJdLFxuICBbXCJDTE9VREZMQVJFX1BBR0VTXCIsIFwiQ0ZfUEFHRVNcIiwgeyBjaTogdHJ1ZSB9XSxcbiAgW1wiQ09ERUJVSUxEXCIsIFwiQ09ERUJVSUxEX0JVSUxEX0FSTlwiXSxcbiAgW1wiQ09ERUZSRVNIXCIsIFwiQ0ZfQlVJTERfSURcIl0sXG4gIFtcIkRST05FXCJdLFxuICBbXCJEUk9ORVwiLCBcIkRST05FX0JVSUxEX0VWRU5UXCJdLFxuICBbXCJEU0FSSVwiXSxcbiAgW1wiR0lUSFVCX0FDVElPTlNcIl0sXG4gIFtcIkdJVExBQlwiLCBcIkdJVExBQl9DSVwiXSxcbiAgW1wiR0lUTEFCXCIsIFwiQ0lfTUVSR0VfUkVRVUVTVF9JRFwiXSxcbiAgW1wiR09DRFwiLCBcIkdPX1BJUEVMSU5FX0xBQkVMXCJdLFxuICBbXCJMQVlFUkNJXCJdLFxuICBbXCJIVURTT05cIiwgXCJIVURTT05fVVJMXCJdLFxuICBbXCJKRU5LSU5TXCIsIFwiSkVOS0lOU19VUkxcIl0sXG4gIFtcIk1BR05VTVwiXSxcbiAgW1wiTkVUTElGWVwiXSxcbiAgW1wiTkVUTElGWVwiLCBcIk5FVExJRllfTE9DQUxcIiwgeyBjaTogZmFsc2UgfV0sXG4gIFtcIk5FVkVSQ09ERVwiXSxcbiAgW1wiUkVOREVSXCJdLFxuICBbXCJTQUlMXCIsIFwiU0FJTENJXCJdLFxuICBbXCJTRU1BUEhPUkVcIl0sXG4gIFtcIlNDUkVXRFJJVkVSXCJdLFxuICBbXCJTSElQUEFCTEVcIl0sXG4gIFtcIlNPTEFOT1wiLCBcIlRERElVTVwiXSxcbiAgW1wiU1RSSURFUlwiXSxcbiAgW1wiVEVBTUNJVFlcIiwgXCJURUFNQ0lUWV9WRVJTSU9OXCJdLFxuICBbXCJUUkFWSVNcIl0sXG4gIFtcIlZFUkNFTFwiLCBcIk5PV19CVUlMREVSXCJdLFxuICBbXCJBUFBDRU5URVJcIiwgXCJBUFBDRU5URVJfQlVJTERfSURcIl0sXG4gIFtcIkNPREVTQU5EQk9YXCIsIFwiQ09ERVNBTkRCT1hfU1NFXCIsIHsgY2k6IGZhbHNlIH1dLFxuICBbXCJTVEFDS0JMSVRaXCJdLFxuICBbXCJTVE9STUtJVFwiXSxcbiAgW1wiQ0xFQVZSXCJdXG5dO1xuZnVuY3Rpb24gZGV0ZWN0UHJvdmlkZXIoZW52KSB7XG4gIGZvciAoY29uc3QgcHJvdmlkZXIgb2YgcHJvdmlkZXJzKSB7XG4gICAgY29uc3QgZW52TmFtZSA9IHByb3ZpZGVyWzFdIHx8IHByb3ZpZGVyWzBdO1xuICAgIGlmIChlbnZbZW52TmFtZV0pIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG5hbWU6IHByb3ZpZGVyWzBdLnRvTG93ZXJDYXNlKCksXG4gICAgICAgIC4uLnByb3ZpZGVyWzJdXG4gICAgICB9O1xuICAgIH1cbiAgfVxuICBpZiAoZW52LlNIRUxMICYmIGVudi5TSEVMTCA9PT0gXCIvYmluL2pzaFwiKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6IFwic3RhY2tibGl0elwiLFxuICAgICAgY2k6IGZhbHNlXG4gICAgfTtcbiAgfVxuICByZXR1cm4ge1xuICAgIG5hbWU6IFwiXCIsXG4gICAgY2k6IGZhbHNlXG4gIH07XG59XG5cbmNvbnN0IHByb2Nlc3NTaGltID0gdHlwZW9mIHByb2Nlc3MgIT09IFwidW5kZWZpbmVkXCIgPyBwcm9jZXNzIDoge307XG5jb25zdCBlbnZTaGltID0gcHJvY2Vzc1NoaW0uZW52IHx8IHt9O1xuY29uc3QgcHJvdmlkZXJJbmZvID0gZGV0ZWN0UHJvdmlkZXIoZW52U2hpbSk7XG5jb25zdCBub2RlRU5WID0gdHlwZW9mIHByb2Nlc3MgIT09IFwidW5kZWZpbmVkXCIgJiYgcHJvY2Vzcy5lbnYgJiYgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgfHwgXCJcIjtcbnByb2Nlc3NTaGltLnBsYXRmb3JtO1xucHJvdmlkZXJJbmZvLm5hbWU7XG5jb25zdCBpc0NJID0gdG9Cb29sZWFuKGVudlNoaW0uQ0kpIHx8IHByb3ZpZGVySW5mby5jaSAhPT0gZmFsc2U7XG5jb25zdCBoYXNUVFkgPSB0b0Jvb2xlYW4ocHJvY2Vzc1NoaW0uc3Rkb3V0ICYmIHByb2Nlc3NTaGltLnN0ZG91dC5pc1RUWSk7XG5jb25zdCBpc0RlYnVnID0gdG9Cb29sZWFuKGVudlNoaW0uREVCVUcpO1xuY29uc3QgaXNUZXN0ID0gbm9kZUVOViA9PT0gXCJ0ZXN0XCIgfHwgdG9Cb29sZWFuKGVudlNoaW0uVEVTVCk7XG50b0Jvb2xlYW4oZW52U2hpbS5NSU5JTUFMKSB8fCBpc0NJIHx8IGlzVGVzdCB8fCAhaGFzVFRZO1xuZnVuY3Rpb24gdG9Cb29sZWFuKHZhbCkge1xuICByZXR1cm4gdmFsID8gdmFsICE9PSBcImZhbHNlXCIgOiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gYW5zaVJlZ2V4KHtvbmx5Rmlyc3QgPSBmYWxzZX0gPSB7fSkge1xuXHRjb25zdCBwYXR0ZXJuID0gW1xuXHQgICAgJ1tcXFxcdTAwMUJcXFxcdTAwOUJdW1tcXFxcXSgpIzs/XSooPzooPzooPzooPzo7Wy1hLXpBLVpcXFxcZFxcXFwvIyYuOj0/JUB+X10rKSp8W2EtekEtWlxcXFxkXSsoPzo7Wy1hLXpBLVpcXFxcZFxcXFwvIyYuOj0/JUB+X10qKSopP1xcXFx1MDAwNyknLFxuXHRcdCcoPzooPzpcXFxcZHsxLDR9KD86O1xcXFxkezAsNH0pKik/W1xcXFxkQS1QUi1UWmNmLW50cXJ5PT48fl0pKSdcblx0XS5qb2luKCd8Jyk7XG5cblx0cmV0dXJuIG5ldyBSZWdFeHAocGF0dGVybiwgb25seUZpcnN0ID8gdW5kZWZpbmVkIDogJ2cnKTtcbn1cblxuY29uc3QgcmVnZXggPSBhbnNpUmVnZXgoKTtcblxuZnVuY3Rpb24gc3RyaXBBbnNpKHN0cmluZykge1xuXHRpZiAodHlwZW9mIHN0cmluZyAhPT0gJ3N0cmluZycpIHtcblx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCBhIFxcYHN0cmluZ1xcYCwgZ290IFxcYCR7dHlwZW9mIHN0cmluZ31cXGBgKTtcblx0fVxuXG5cdC8vIEV2ZW4gdGhvdWdoIHRoZSByZWdleCBpcyBnbG9iYWwsIHdlIGRvbid0IG5lZWQgdG8gcmVzZXQgdGhlIGAubGFzdEluZGV4YFxuXHQvLyBiZWNhdXNlIHVubGlrZSBgLmV4ZWMoKWAgYW5kIGAudGVzdCgpYCwgYC5yZXBsYWNlKClgIGRvZXMgaXQgYXV0b21hdGljYWxseVxuXHQvLyBhbmQgZG9pbmcgaXQgbWFudWFsbHkgaGFzIGEgcGVyZm9ybWFuY2UgcGVuYWx0eS5cblx0cmV0dXJuIHN0cmluZy5yZXBsYWNlKHJlZ2V4LCAnJyk7XG59XG5cbmZ1bmN0aW9uIGdldERlZmF1bHRFeHBvcnRGcm9tQ2pzICh4KSB7XG5cdHJldHVybiB4ICYmIHguX19lc01vZHVsZSAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoeCwgJ2RlZmF1bHQnKSA/IHhbJ2RlZmF1bHQnXSA6IHg7XG59XG5cbnZhciBlYXN0YXNpYW53aWR0aCA9IHtleHBvcnRzOiB7fX07XG5cbihmdW5jdGlvbiAobW9kdWxlKSB7XG5cdHZhciBlYXcgPSB7fTtcblxuXHR7XG5cdCAgbW9kdWxlLmV4cG9ydHMgPSBlYXc7XG5cdH1cblxuXHRlYXcuZWFzdEFzaWFuV2lkdGggPSBmdW5jdGlvbihjaGFyYWN0ZXIpIHtcblx0ICB2YXIgeCA9IGNoYXJhY3Rlci5jaGFyQ29kZUF0KDApO1xuXHQgIHZhciB5ID0gKGNoYXJhY3Rlci5sZW5ndGggPT0gMikgPyBjaGFyYWN0ZXIuY2hhckNvZGVBdCgxKSA6IDA7XG5cdCAgdmFyIGNvZGVQb2ludCA9IHg7XG5cdCAgaWYgKCgweEQ4MDAgPD0geCAmJiB4IDw9IDB4REJGRikgJiYgKDB4REMwMCA8PSB5ICYmIHkgPD0gMHhERkZGKSkge1xuXHQgICAgeCAmPSAweDNGRjtcblx0ICAgIHkgJj0gMHgzRkY7XG5cdCAgICBjb2RlUG9pbnQgPSAoeCA8PCAxMCkgfCB5O1xuXHQgICAgY29kZVBvaW50ICs9IDB4MTAwMDA7XG5cdCAgfVxuXG5cdCAgaWYgKCgweDMwMDAgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHhGRjAxIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHhGRjYwKSB8fFxuXHQgICAgICAoMHhGRkUwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHhGRkU2KSkge1xuXHQgICAgcmV0dXJuICdGJztcblx0ICB9XG5cdCAgaWYgKCgweDIwQTkgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHhGRjYxIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHhGRkJFKSB8fFxuXHQgICAgICAoMHhGRkMyIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHhGRkM3KSB8fFxuXHQgICAgICAoMHhGRkNBIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHhGRkNGKSB8fFxuXHQgICAgICAoMHhGRkQyIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHhGRkQ3KSB8fFxuXHQgICAgICAoMHhGRkRBIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHhGRkRDKSB8fFxuXHQgICAgICAoMHhGRkU4IDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHhGRkVFKSkge1xuXHQgICAgcmV0dXJuICdIJztcblx0ICB9XG5cdCAgaWYgKCgweDExMDAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDExNUYpIHx8XG5cdCAgICAgICgweDExQTMgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDExQTcpIHx8XG5cdCAgICAgICgweDExRkEgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDExRkYpIHx8XG5cdCAgICAgICgweDIzMjkgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIzMkEpIHx8XG5cdCAgICAgICgweDJFODAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDJFOTkpIHx8XG5cdCAgICAgICgweDJFOUIgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDJFRjMpIHx8XG5cdCAgICAgICgweDJGMDAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDJGRDUpIHx8XG5cdCAgICAgICgweDJGRjAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDJGRkIpIHx8XG5cdCAgICAgICgweDMwMDEgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDMwM0UpIHx8XG5cdCAgICAgICgweDMwNDEgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDMwOTYpIHx8XG5cdCAgICAgICgweDMwOTkgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDMwRkYpIHx8XG5cdCAgICAgICgweDMxMDUgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDMxMkQpIHx8XG5cdCAgICAgICgweDMxMzEgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDMxOEUpIHx8XG5cdCAgICAgICgweDMxOTAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDMxQkEpIHx8XG5cdCAgICAgICgweDMxQzAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDMxRTMpIHx8XG5cdCAgICAgICgweDMxRjAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDMyMUUpIHx8XG5cdCAgICAgICgweDMyMjAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDMyNDcpIHx8XG5cdCAgICAgICgweDMyNTAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDMyRkUpIHx8XG5cdCAgICAgICgweDMzMDAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDREQkYpIHx8XG5cdCAgICAgICgweDRFMDAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweEE0OEMpIHx8XG5cdCAgICAgICgweEE0OTAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweEE0QzYpIHx8XG5cdCAgICAgICgweEE5NjAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweEE5N0MpIHx8XG5cdCAgICAgICgweEFDMDAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweEQ3QTMpIHx8XG5cdCAgICAgICgweEQ3QjAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweEQ3QzYpIHx8XG5cdCAgICAgICgweEQ3Q0IgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweEQ3RkIpIHx8XG5cdCAgICAgICgweEY5MDAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweEZBRkYpIHx8XG5cdCAgICAgICgweEZFMTAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweEZFMTkpIHx8XG5cdCAgICAgICgweEZFMzAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweEZFNTIpIHx8XG5cdCAgICAgICgweEZFNTQgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweEZFNjYpIHx8XG5cdCAgICAgICgweEZFNjggPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweEZFNkIpIHx8XG5cdCAgICAgICgweDFCMDAwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgxQjAwMSkgfHxcblx0ICAgICAgKDB4MUYyMDAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDFGMjAyKSB8fFxuXHQgICAgICAoMHgxRjIxMCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MUYyM0EpIHx8XG5cdCAgICAgICgweDFGMjQwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgxRjI0OCkgfHxcblx0ICAgICAgKDB4MUYyNTAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDFGMjUxKSB8fFxuXHQgICAgICAoMHgyMDAwMCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MkY3M0YpIHx8XG5cdCAgICAgICgweDJCNzQwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgyRkZGRCkgfHxcblx0ICAgICAgKDB4MzAwMDAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDNGRkZEKSkge1xuXHQgICAgcmV0dXJuICdXJztcblx0ICB9XG5cdCAgaWYgKCgweDAwMjAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDAwN0UpIHx8XG5cdCAgICAgICgweDAwQTIgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDAwQTMpIHx8XG5cdCAgICAgICgweDAwQTUgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDAwQTYpIHx8XG5cdCAgICAgICgweDAwQUMgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgwMEFGID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjdFNiA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjdFRCkgfHxcblx0ICAgICAgKDB4Mjk4NSA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4Mjk4NikpIHtcblx0ICAgIHJldHVybiAnTmEnO1xuXHQgIH1cblx0ICBpZiAoKDB4MDBBMSA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDAwQTQgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgwMEE3IDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgwMEE4KSB8fFxuXHQgICAgICAoMHgwMEFBID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MDBBRCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MDBBRSkgfHxcblx0ICAgICAgKDB4MDBCMCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MDBCNCkgfHxcblx0ICAgICAgKDB4MDBCNiA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MDBCQSkgfHxcblx0ICAgICAgKDB4MDBCQyA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MDBCRikgfHxcblx0ICAgICAgKDB4MDBDNiA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDAwRDAgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgwMEQ3IDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgwMEQ4KSB8fFxuXHQgICAgICAoMHgwMERFIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgwMEUxKSB8fFxuXHQgICAgICAoMHgwMEU2ID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MDBFOCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MDBFQSkgfHxcblx0ICAgICAgKDB4MDBFQyA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MDBFRCkgfHxcblx0ICAgICAgKDB4MDBGMCA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDAwRjIgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDAwRjMpIHx8XG5cdCAgICAgICgweDAwRjcgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDAwRkEpIHx8XG5cdCAgICAgICgweDAwRkMgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgwMEZFID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MDEwMSA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDAxMTEgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgwMTEzID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MDExQiA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDAxMjYgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDAxMjcpIHx8XG5cdCAgICAgICgweDAxMkIgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgwMTMxIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgwMTMzKSB8fFxuXHQgICAgICAoMHgwMTM4ID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MDEzRiA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MDE0MikgfHxcblx0ICAgICAgKDB4MDE0NCA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDAxNDggPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDAxNEIpIHx8XG5cdCAgICAgICgweDAxNEQgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgwMTUyIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgwMTUzKSB8fFxuXHQgICAgICAoMHgwMTY2IDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgwMTY3KSB8fFxuXHQgICAgICAoMHgwMTZCID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MDFDRSA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDAxRDAgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgwMUQyID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MDFENCA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDAxRDYgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgwMUQ4ID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MDFEQSA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDAxREMgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgwMjUxID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MDI2MSA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDAyQzQgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgwMkM3ID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MDJDOSA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MDJDQikgfHxcblx0ICAgICAgKDB4MDJDRCA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDAyRDAgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgwMkQ4IDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgwMkRCKSB8fFxuXHQgICAgICAoMHgwMkREID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MDJERiA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDAzMDAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDAzNkYpIHx8XG5cdCAgICAgICgweDAzOTEgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDAzQTEpIHx8XG5cdCAgICAgICgweDAzQTMgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDAzQTkpIHx8XG5cdCAgICAgICgweDAzQjEgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDAzQzEpIHx8XG5cdCAgICAgICgweDAzQzMgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDAzQzkpIHx8XG5cdCAgICAgICgweDA0MDEgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgwNDEwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgwNDRGKSB8fFxuXHQgICAgICAoMHgwNDUxID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjAxMCA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDIwMTMgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIwMTYpIHx8XG5cdCAgICAgICgweDIwMTggPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIwMTkpIHx8XG5cdCAgICAgICgweDIwMUMgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIwMUQpIHx8XG5cdCAgICAgICgweDIwMjAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIwMjIpIHx8XG5cdCAgICAgICgweDIwMjQgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIwMjcpIHx8XG5cdCAgICAgICgweDIwMzAgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyMDMyIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgyMDMzKSB8fFxuXHQgICAgICAoMHgyMDM1ID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjAzQiA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDIwM0UgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyMDc0ID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjA3RiA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDIwODEgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIwODQpIHx8XG5cdCAgICAgICgweDIwQUMgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyMTAzID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjEwNSA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDIxMDkgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyMTEzID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjExNiA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDIxMjEgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIxMjIpIHx8XG5cdCAgICAgICgweDIxMjYgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyMTJCID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjE1MyA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjE1NCkgfHxcblx0ICAgICAgKDB4MjE1QiA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjE1RSkgfHxcblx0ICAgICAgKDB4MjE2MCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjE2QikgfHxcblx0ICAgICAgKDB4MjE3MCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjE3OSkgfHxcblx0ICAgICAgKDB4MjE4OSA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDIxOTAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIxOTkpIHx8XG5cdCAgICAgICgweDIxQjggPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIxQjkpIHx8XG5cdCAgICAgICgweDIxRDIgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyMUQ0ID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjFFNyA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDIyMDAgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyMjAyIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgyMjAzKSB8fFxuXHQgICAgICAoMHgyMjA3IDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgyMjA4KSB8fFxuXHQgICAgICAoMHgyMjBCID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjIwRiA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDIyMTEgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyMjE1ID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjIxQSA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDIyMUQgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIyMjApIHx8XG5cdCAgICAgICgweDIyMjMgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyMjI1ID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjIyNyA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjIyQykgfHxcblx0ICAgICAgKDB4MjIyRSA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDIyMzQgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIyMzcpIHx8XG5cdCAgICAgICgweDIyM0MgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIyM0QpIHx8XG5cdCAgICAgICgweDIyNDggPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyMjRDID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjI1MiA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDIyNjAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIyNjEpIHx8XG5cdCAgICAgICgweDIyNjQgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIyNjcpIHx8XG5cdCAgICAgICgweDIyNkEgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIyNkIpIHx8XG5cdCAgICAgICgweDIyNkUgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIyNkYpIHx8XG5cdCAgICAgICgweDIyODIgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIyODMpIHx8XG5cdCAgICAgICgweDIyODYgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIyODcpIHx8XG5cdCAgICAgICgweDIyOTUgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyMjk5ID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjJBNSA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDIyQkYgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyMzEyID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjQ2MCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjRFOSkgfHxcblx0ICAgICAgKDB4MjRFQiA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjU0QikgfHxcblx0ICAgICAgKDB4MjU1MCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjU3MykgfHxcblx0ICAgICAgKDB4MjU4MCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjU4RikgfHxcblx0ICAgICAgKDB4MjU5MiA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjU5NSkgfHxcblx0ICAgICAgKDB4MjVBMCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjVBMSkgfHxcblx0ICAgICAgKDB4MjVBMyA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjVBOSkgfHxcblx0ICAgICAgKDB4MjVCMiA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjVCMykgfHxcblx0ICAgICAgKDB4MjVCNiA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjVCNykgfHxcblx0ICAgICAgKDB4MjVCQyA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjVCRCkgfHxcblx0ICAgICAgKDB4MjVDMCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjVDMSkgfHxcblx0ICAgICAgKDB4MjVDNiA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjVDOCkgfHxcblx0ICAgICAgKDB4MjVDQiA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDI1Q0UgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDI1RDEpIHx8XG5cdCAgICAgICgweDI1RTIgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDI1RTUpIHx8XG5cdCAgICAgICgweDI1RUYgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyNjA1IDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgyNjA2KSB8fFxuXHQgICAgICAoMHgyNjA5ID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjYwRSA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjYwRikgfHxcblx0ICAgICAgKDB4MjYxNCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjYxNSkgfHxcblx0ICAgICAgKDB4MjYxQyA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDI2MUUgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyNjQwID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjY0MiA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDI2NjAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDI2NjEpIHx8XG5cdCAgICAgICgweDI2NjMgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDI2NjUpIHx8XG5cdCAgICAgICgweDI2NjcgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDI2NkEpIHx8XG5cdCAgICAgICgweDI2NkMgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDI2NkQpIHx8XG5cdCAgICAgICgweDI2NkYgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyNjlFIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgyNjlGKSB8fFxuXHQgICAgICAoMHgyNkJFIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgyNkJGKSB8fFxuXHQgICAgICAoMHgyNkM0IDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgyNkNEKSB8fFxuXHQgICAgICAoMHgyNkNGIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgyNkUxKSB8fFxuXHQgICAgICAoMHgyNkUzID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjZFOCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjZGRikgfHxcblx0ICAgICAgKDB4MjczRCA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDI3NTcgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyNzc2IDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgyNzdGKSB8fFxuXHQgICAgICAoMHgyQjU1IDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgyQjU5KSB8fFxuXHQgICAgICAoMHgzMjQ4IDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgzMjRGKSB8fFxuXHQgICAgICAoMHhFMDAwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHhGOEZGKSB8fFxuXHQgICAgICAoMHhGRTAwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHhGRTBGKSB8fFxuXHQgICAgICAoMHhGRkZEID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MUYxMDAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDFGMTBBKSB8fFxuXHQgICAgICAoMHgxRjExMCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MUYxMkQpIHx8XG5cdCAgICAgICgweDFGMTMwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgxRjE2OSkgfHxcblx0ICAgICAgKDB4MUYxNzAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDFGMTlBKSB8fFxuXHQgICAgICAoMHhFMDEwMCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4RTAxRUYpIHx8XG5cdCAgICAgICgweEYwMDAwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHhGRkZGRCkgfHxcblx0ICAgICAgKDB4MTAwMDAwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgxMEZGRkQpKSB7XG5cdCAgICByZXR1cm4gJ0EnO1xuXHQgIH1cblxuXHQgIHJldHVybiAnTic7XG5cdH07XG5cblx0ZWF3LmNoYXJhY3Rlckxlbmd0aCA9IGZ1bmN0aW9uKGNoYXJhY3Rlcikge1xuXHQgIHZhciBjb2RlID0gdGhpcy5lYXN0QXNpYW5XaWR0aChjaGFyYWN0ZXIpO1xuXHQgIGlmIChjb2RlID09ICdGJyB8fCBjb2RlID09ICdXJyB8fCBjb2RlID09ICdBJykge1xuXHQgICAgcmV0dXJuIDI7XG5cdCAgfSBlbHNlIHtcblx0ICAgIHJldHVybiAxO1xuXHQgIH1cblx0fTtcblxuXHQvLyBTcGxpdCBhIHN0cmluZyBjb25zaWRlcmluZyBzdXJyb2dhdGUtcGFpcnMuXG5cdGZ1bmN0aW9uIHN0cmluZ1RvQXJyYXkoc3RyaW5nKSB7XG5cdCAgcmV0dXJuIHN0cmluZy5tYXRjaCgvW1xcdUQ4MDAtXFx1REJGRl1bXFx1REMwMC1cXHVERkZGXXxbXlxcdUQ4MDAtXFx1REZGRl0vZykgfHwgW107XG5cdH1cblxuXHRlYXcubGVuZ3RoID0gZnVuY3Rpb24oc3RyaW5nKSB7XG5cdCAgdmFyIGNoYXJhY3RlcnMgPSBzdHJpbmdUb0FycmF5KHN0cmluZyk7XG5cdCAgdmFyIGxlbiA9IDA7XG5cdCAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGFyYWN0ZXJzLmxlbmd0aDsgaSsrKSB7XG5cdCAgICBsZW4gPSBsZW4gKyB0aGlzLmNoYXJhY3Rlckxlbmd0aChjaGFyYWN0ZXJzW2ldKTtcblx0ICB9XG5cdCAgcmV0dXJuIGxlbjtcblx0fTtcblxuXHRlYXcuc2xpY2UgPSBmdW5jdGlvbih0ZXh0LCBzdGFydCwgZW5kKSB7XG5cdCAgdGV4dExlbiA9IGVhdy5sZW5ndGgodGV4dCk7XG5cdCAgc3RhcnQgPSBzdGFydCA/IHN0YXJ0IDogMDtcblx0ICBlbmQgPSBlbmQgPyBlbmQgOiAxO1xuXHQgIGlmIChzdGFydCA8IDApIHtcblx0ICAgICAgc3RhcnQgPSB0ZXh0TGVuICsgc3RhcnQ7XG5cdCAgfVxuXHQgIGlmIChlbmQgPCAwKSB7XG5cdCAgICAgIGVuZCA9IHRleHRMZW4gKyBlbmQ7XG5cdCAgfVxuXHQgIHZhciByZXN1bHQgPSAnJztcblx0ICB2YXIgZWF3TGVuID0gMDtcblx0ICB2YXIgY2hhcnMgPSBzdHJpbmdUb0FycmF5KHRleHQpO1xuXHQgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hhcnMubGVuZ3RoOyBpKyspIHtcblx0ICAgIHZhciBjaGFyID0gY2hhcnNbaV07XG5cdCAgICB2YXIgY2hhckxlbiA9IGVhdy5sZW5ndGgoY2hhcik7XG5cdCAgICBpZiAoZWF3TGVuID49IHN0YXJ0IC0gKGNoYXJMZW4gPT0gMiA/IDEgOiAwKSkge1xuXHQgICAgICAgIGlmIChlYXdMZW4gKyBjaGFyTGVuIDw9IGVuZCkge1xuXHQgICAgICAgICAgICByZXN1bHQgKz0gY2hhcjtcblx0ICAgICAgICB9IGVsc2Uge1xuXHQgICAgICAgICAgICBicmVhaztcblx0ICAgICAgICB9XG5cdCAgICB9XG5cdCAgICBlYXdMZW4gKz0gY2hhckxlbjtcblx0ICB9XG5cdCAgcmV0dXJuIHJlc3VsdDtcblx0fTsgXG59IChlYXN0YXNpYW53aWR0aCkpO1xuXG52YXIgZWFzdGFzaWFud2lkdGhFeHBvcnRzID0gZWFzdGFzaWFud2lkdGguZXhwb3J0cztcbmNvbnN0IGVhc3RBc2lhbldpZHRoID0gLypAX19QVVJFX18qL2dldERlZmF1bHRFeHBvcnRGcm9tQ2pzKGVhc3Rhc2lhbndpZHRoRXhwb3J0cyk7XG5cbmNvbnN0IGVtb2ppUmVnZXggPSAoKSA9PiB7XG5cdC8vIGh0dHBzOi8vbXRocy5iZS9lbW9qaVxuXHRyZXR1cm4gL1sjKjAtOV1cXHVGRTBGP1xcdTIwRTN8W1xceEE5XFx4QUVcXHUyMDNDXFx1MjA0OVxcdTIxMjJcXHUyMTM5XFx1MjE5NC1cXHUyMTk5XFx1MjFBOVxcdTIxQUFcXHUyMzFBXFx1MjMxQlxcdTIzMjhcXHUyM0NGXFx1MjNFRC1cXHUyM0VGXFx1MjNGMVxcdTIzRjJcXHUyM0Y4LVxcdTIzRkFcXHUyNEMyXFx1MjVBQVxcdTI1QUJcXHUyNUI2XFx1MjVDMFxcdTI1RkJcXHUyNUZDXFx1MjVGRVxcdTI2MDAtXFx1MjYwNFxcdTI2MEVcXHUyNjExXFx1MjYxNFxcdTI2MTVcXHUyNjE4XFx1MjYyMFxcdTI2MjJcXHUyNjIzXFx1MjYyNlxcdTI2MkFcXHUyNjJFXFx1MjYyRlxcdTI2MzgtXFx1MjYzQVxcdTI2NDBcXHUyNjQyXFx1MjY0OC1cXHUyNjUzXFx1MjY1RlxcdTI2NjBcXHUyNjYzXFx1MjY2NVxcdTI2NjZcXHUyNjY4XFx1MjY3QlxcdTI2N0VcXHUyNjdGXFx1MjY5MlxcdTI2OTQtXFx1MjY5N1xcdTI2OTlcXHUyNjlCXFx1MjY5Q1xcdTI2QTBcXHUyNkE3XFx1MjZBQVxcdTI2QjBcXHUyNkIxXFx1MjZCRFxcdTI2QkVcXHUyNkM0XFx1MjZDOFxcdTI2Q0ZcXHUyNkQxXFx1MjZEM1xcdTI2RTlcXHUyNkYwLVxcdTI2RjVcXHUyNkY3XFx1MjZGOFxcdTI2RkFcXHUyNzAyXFx1MjcwOFxcdTI3MDlcXHUyNzBGXFx1MjcxMlxcdTI3MTRcXHUyNzE2XFx1MjcxRFxcdTI3MjFcXHUyNzMzXFx1MjczNFxcdTI3NDRcXHUyNzQ3XFx1Mjc1N1xcdTI3NjNcXHUyN0ExXFx1MjkzNFxcdTI5MzVcXHUyQjA1LVxcdTJCMDdcXHUyQjFCXFx1MkIxQ1xcdTJCNTVcXHUzMDMwXFx1MzAzRFxcdTMyOTdcXHUzMjk5XVxcdUZFMEY/fFtcXHUyNjFEXFx1MjcwQ1xcdTI3MERdKD86XFx1RkUwRnxcXHVEODNDW1xcdURGRkItXFx1REZGRl0pP3xbXFx1MjcwQVxcdTI3MEJdKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT98W1xcdTIzRTktXFx1MjNFQ1xcdTIzRjBcXHUyM0YzXFx1MjVGRFxcdTI2OTNcXHUyNkExXFx1MjZBQlxcdTI2QzVcXHUyNkNFXFx1MjZENFxcdTI2RUFcXHUyNkZEXFx1MjcwNVxcdTI3MjhcXHUyNzRDXFx1Mjc0RVxcdTI3NTMtXFx1Mjc1NVxcdTI3OTUtXFx1Mjc5N1xcdTI3QjBcXHUyN0JGXFx1MkI1MF18XFx1MjZGOSg/OlxcdUZFMEZ8XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT8oPzpcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXVxcdUZFMEY/KT98XFx1Mjc2NFxcdUZFMEY/KD86XFx1MjAwRCg/OlxcdUQ4M0RcXHVERDI1fFxcdUQ4M0VcXHVERTc5KSk/fFxcdUQ4M0MoPzpbXFx1REMwNFxcdURENzBcXHVERDcxXFx1REQ3RVxcdUREN0ZcXHVERTAyXFx1REUzN1xcdURGMjFcXHVERjI0LVxcdURGMkNcXHVERjM2XFx1REY3RFxcdURGOTZcXHVERjk3XFx1REY5OS1cXHVERjlCXFx1REY5RVxcdURGOUZcXHVERkNEXFx1REZDRVxcdURGRDQtXFx1REZERlxcdURGRjVcXHVERkY3XVxcdUZFMEY/fFtcXHVERjg1XFx1REZDMlxcdURGQzddKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT98W1xcdURGQzNcXHVERkM0XFx1REZDQV0oPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pPyg/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8pP3xbXFx1REZDQlxcdURGQ0NdKD86XFx1RkUwRnxcXHVEODNDW1xcdURGRkItXFx1REZGRl0pPyg/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8pP3xbXFx1RENDRlxcdUREOEVcXHVERDkxLVxcdUREOUFcXHVERTAxXFx1REUxQVxcdURFMkZcXHVERTMyLVxcdURFMzZcXHVERTM4LVxcdURFM0FcXHVERTUwXFx1REU1MVxcdURGMDAtXFx1REYyMFxcdURGMkQtXFx1REYzNVxcdURGMzctXFx1REY3Q1xcdURGN0UtXFx1REY4NFxcdURGODYtXFx1REY5M1xcdURGQTAtXFx1REZDMVxcdURGQzVcXHVERkM2XFx1REZDOFxcdURGQzlcXHVERkNGLVxcdURGRDNcXHVERkUwLVxcdURGRjBcXHVERkY4LVxcdURGRkZdfFxcdURERTZcXHVEODNDW1xcdURERTgtXFx1RERFQ1xcdURERUVcXHVEREYxXFx1RERGMlxcdURERjRcXHVEREY2LVxcdURERkFcXHVEREZDXFx1RERGRFxcdURERkZdfFxcdURERTdcXHVEODNDW1xcdURERTZcXHVEREU3XFx1RERFOS1cXHVEREVGXFx1RERGMS1cXHVEREY0XFx1RERGNi1cXHVEREY5XFx1RERGQlxcdURERkNcXHVEREZFXFx1RERGRl18XFx1RERFOFxcdUQ4M0NbXFx1RERFNlxcdURERThcXHVEREU5XFx1RERFQi1cXHVEREVFXFx1RERGMC1cXHVEREY1XFx1RERGN1xcdURERkEtXFx1RERGRl18XFx1RERFOVxcdUQ4M0NbXFx1RERFQVxcdURERUNcXHVEREVGXFx1RERGMFxcdURERjJcXHVEREY0XFx1RERGRl18XFx1RERFQVxcdUQ4M0NbXFx1RERFNlxcdURERThcXHVEREVBXFx1RERFQ1xcdURERURcXHVEREY3LVxcdURERkFdfFxcdURERUJcXHVEODNDW1xcdURERUUtXFx1RERGMFxcdURERjJcXHVEREY0XFx1RERGN118XFx1RERFQ1xcdUQ4M0NbXFx1RERFNlxcdURERTdcXHVEREU5LVxcdURERUVcXHVEREYxLVxcdURERjNcXHVEREY1LVxcdURERkFcXHVEREZDXFx1RERGRV18XFx1RERFRFxcdUQ4M0NbXFx1RERGMFxcdURERjJcXHVEREYzXFx1RERGN1xcdURERjlcXHVEREZBXXxcXHVEREVFXFx1RDgzQ1tcXHVEREU4LVxcdURERUFcXHVEREYxLVxcdURERjRcXHVEREY2LVxcdURERjldfFxcdURERUZcXHVEODNDW1xcdURERUFcXHVEREYyXFx1RERGNFxcdURERjVdfFxcdURERjBcXHVEODNDW1xcdURERUFcXHVEREVDLVxcdURERUVcXHVEREYyXFx1RERGM1xcdURERjVcXHVEREY3XFx1RERGQ1xcdURERkVcXHVEREZGXXxcXHVEREYxXFx1RDgzQ1tcXHVEREU2LVxcdURERThcXHVEREVFXFx1RERGMFxcdURERjctXFx1RERGQlxcdURERkVdfFxcdURERjJcXHVEODNDW1xcdURERTZcXHVEREU4LVxcdURERURcXHVEREYwLVxcdURERkZdfFxcdURERjNcXHVEODNDW1xcdURERTZcXHVEREU4XFx1RERFQS1cXHVEREVDXFx1RERFRVxcdURERjFcXHVEREY0XFx1RERGNVxcdURERjdcXHVEREZBXFx1RERGRl18XFx1RERGNFxcdUQ4M0NcXHVEREYyfFxcdURERjVcXHVEODNDW1xcdURERTZcXHVEREVBLVxcdURERURcXHVEREYwLVxcdURERjNcXHVEREY3LVxcdURERjlcXHVEREZDXFx1RERGRV18XFx1RERGNlxcdUQ4M0NcXHVEREU2fFxcdURERjdcXHVEODNDW1xcdURERUFcXHVEREY0XFx1RERGOFxcdURERkFcXHVEREZDXXxcXHVEREY4XFx1RDgzQ1tcXHVEREU2LVxcdURERUFcXHVEREVDLVxcdURERjRcXHVEREY3LVxcdURERjlcXHVEREZCXFx1RERGRC1cXHVEREZGXXxcXHVEREY5XFx1RDgzQ1tcXHVEREU2XFx1RERFOFxcdURERTlcXHVEREVCLVxcdURERURcXHVEREVGLVxcdURERjRcXHVEREY3XFx1RERGOVxcdURERkJcXHVEREZDXFx1RERGRl18XFx1RERGQVxcdUQ4M0NbXFx1RERFNlxcdURERUNcXHVEREYyXFx1RERGM1xcdURERjhcXHVEREZFXFx1RERGRl18XFx1RERGQlxcdUQ4M0NbXFx1RERFNlxcdURERThcXHVEREVBXFx1RERFQ1xcdURERUVcXHVEREYzXFx1RERGQV18XFx1RERGQ1xcdUQ4M0NbXFx1RERFQlxcdURERjhdfFxcdURERkRcXHVEODNDXFx1RERGMHxcXHVEREZFXFx1RDgzQ1tcXHVEREVBXFx1RERGOV18XFx1RERGRlxcdUQ4M0NbXFx1RERFNlxcdURERjJcXHVEREZDXXxcXHVERkYzXFx1RkUwRj8oPzpcXHUyMDBEKD86XFx1MjZBN1xcdUZFMEY/fFxcdUQ4M0NcXHVERjA4KSk/fFxcdURGRjQoPzpcXHUyMDBEXFx1MjYyMFxcdUZFMEY/fFxcdURCNDBcXHVEQzY3XFx1REI0MFxcdURDNjJcXHVEQjQwKD86XFx1REM2NVxcdURCNDBcXHVEQzZFXFx1REI0MFxcdURDNjd8XFx1REM3M1xcdURCNDBcXHVEQzYzXFx1REI0MFxcdURDNzR8XFx1REM3N1xcdURCNDBcXHVEQzZDXFx1REI0MFxcdURDNzMpXFx1REI0MFxcdURDN0YpPyl8XFx1RDgzRCg/OltcXHVEQzA4XFx1REMyNl0oPzpcXHUyMDBEXFx1MkIxQik/fFtcXHVEQzNGXFx1RENGRFxcdURENDlcXHVERDRBXFx1REQ2RlxcdURENzBcXHVERDczXFx1REQ3Ni1cXHVERDc5XFx1REQ4N1xcdUREOEEtXFx1REQ4RFxcdUREQTVcXHVEREE4XFx1RERCMVxcdUREQjJcXHVEREJDXFx1RERDMi1cXHVEREM0XFx1REREMS1cXHVEREQzXFx1REREQy1cXHVERERFXFx1RERFMVxcdURERTNcXHVEREU4XFx1RERFRlxcdURERjNcXHVEREZBXFx1REVDQlxcdURFQ0QtXFx1REVDRlxcdURFRTAtXFx1REVFNVxcdURFRTlcXHVERUYwXFx1REVGM11cXHVGRTBGP3xbXFx1REM0MlxcdURDNDNcXHVEQzQ2LVxcdURDNTBcXHVEQzY2XFx1REM2N1xcdURDNkItXFx1REM2RFxcdURDNzJcXHVEQzc0LVxcdURDNzZcXHVEQzc4XFx1REM3Q1xcdURDODNcXHVEQzg1XFx1REM4RlxcdURDOTFcXHVEQ0FBXFx1REQ3QVxcdUREOTVcXHVERDk2XFx1REU0Q1xcdURFNEZcXHVERUMwXFx1REVDQ10oPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pP3xbXFx1REM2RVxcdURDNzBcXHVEQzcxXFx1REM3M1xcdURDNzdcXHVEQzgxXFx1REM4MlxcdURDODZcXHVEQzg3XFx1REU0NS1cXHVERTQ3XFx1REU0QlxcdURFNERcXHVERTRFXFx1REVBM1xcdURFQjQtXFx1REVCNl0oPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pPyg/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8pP3xbXFx1REQ3NFxcdUREOTBdKD86XFx1RkUwRnxcXHVEODNDW1xcdURGRkItXFx1REZGRl0pP3xbXFx1REMwMC1cXHVEQzA3XFx1REMwOS1cXHVEQzE0XFx1REMxNi1cXHVEQzI1XFx1REMyNy1cXHVEQzNBXFx1REMzQy1cXHVEQzNFXFx1REM0MFxcdURDNDRcXHVEQzQ1XFx1REM1MS1cXHVEQzY1XFx1REM2QVxcdURDNzktXFx1REM3QlxcdURDN0QtXFx1REM4MFxcdURDODRcXHVEQzg4LVxcdURDOEVcXHVEQzkwXFx1REM5Mi1cXHVEQ0E5XFx1RENBQi1cXHVEQ0ZDXFx1RENGRi1cXHVERDNEXFx1REQ0Qi1cXHVERDRFXFx1REQ1MC1cXHVERDY3XFx1RERBNFxcdURERkItXFx1REUyRFxcdURFMkYtXFx1REUzNFxcdURFMzctXFx1REU0NFxcdURFNDgtXFx1REU0QVxcdURFODAtXFx1REVBMlxcdURFQTQtXFx1REVCM1xcdURFQjctXFx1REVCRlxcdURFQzEtXFx1REVDNVxcdURFRDAtXFx1REVEMlxcdURFRDUtXFx1REVEN1xcdURFREMtXFx1REVERlxcdURFRUJcXHVERUVDXFx1REVGNC1cXHVERUZDXFx1REZFMC1cXHVERkVCXFx1REZGMF18XFx1REMxNSg/OlxcdTIwMERcXHVEODNFXFx1RERCQSk/fFxcdURDM0IoPzpcXHUyMDBEXFx1Mjc0NFxcdUZFMEY/KT98XFx1REM0MVxcdUZFMEY/KD86XFx1MjAwRFxcdUQ4M0RcXHVEREU4XFx1RkUwRj8pP3xcXHVEQzY4KD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzhCXFx1MjAwRFxcdUQ4M0QpP1xcdURDNjh8XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRCg/OltcXHVEQzY4XFx1REM2OV1cXHUyMDBEXFx1RDgzRCg/OlxcdURDNjYoPzpcXHUyMDBEXFx1RDgzRFxcdURDNjYpP3xcXHVEQzY3KD86XFx1MjAwRFxcdUQ4M0RbXFx1REM2NlxcdURDNjddKT8pfFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdURDNjYoPzpcXHUyMDBEXFx1RDgzRFxcdURDNjYpP3xcXHVEQzY3KD86XFx1MjAwRFxcdUQ4M0RbXFx1REM2NlxcdURDNjddKT8pfFxcdUQ4M0VbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdKXxcXHVEODNDKD86XFx1REZGQig/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMERcXHVEODNEKD86XFx1REM4QlxcdTIwMERcXHVEODNEKT9cXHVEQzY4XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RcXHVEQzY4XFx1RDgzQ1tcXHVERkZDLVxcdURGRkZdKSkpP3xcXHVERkZDKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzhCXFx1MjAwRFxcdUQ4M0QpP1xcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdfFxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjhcXHVEODNDW1xcdURGRkJcXHVERkZELVxcdURGRkZdKSkpP3xcXHVERkZEKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzhCXFx1MjAwRFxcdUQ4M0QpP1xcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdfFxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjhcXHVEODNDW1xcdURGRkJcXHVERkZDXFx1REZGRVxcdURGRkZdKSkpP3xcXHVERkZFKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzhCXFx1MjAwRFxcdUQ4M0QpP1xcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdfFxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRFxcdURGRkZdKSkpP3xcXHVERkZGKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzhCXFx1MjAwRFxcdUQ4M0QpP1xcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdfFxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRV0pKSk/KSk/fFxcdURDNjkoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEXFx1RDgzRCg/OlxcdURDOEJcXHUyMDBEXFx1RDgzRCk/W1xcdURDNjhcXHVEQzY5XXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEKD86W1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1REM2Nig/OlxcdTIwMERcXHVEODNEXFx1REM2Nik/fFxcdURDNjcoPzpcXHUyMDBEXFx1RDgzRFtcXHVEQzY2XFx1REM2N10pP3xcXHVEQzY5XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzY2KD86XFx1MjAwRFxcdUQ4M0RcXHVEQzY2KT98XFx1REM2Nyg/OlxcdTIwMERcXHVEODNEW1xcdURDNjZcXHVEQzY3XSk/KSl8XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pfFxcdUQ4M0MoPzpcXHVERkZCKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpbXFx1REM2OFxcdURDNjldfFxcdURDOEJcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV0pXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RbXFx1REM2OFxcdURDNjldXFx1RDgzQ1tcXHVERkZDLVxcdURGRkZdKSkpP3xcXHVERkZDKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpbXFx1REM2OFxcdURDNjldfFxcdURDOEJcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV0pXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RbXFx1REM2OFxcdURDNjldXFx1RDgzQ1tcXHVERkZCXFx1REZGRC1cXHVERkZGXSkpKT98XFx1REZGRCg/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMERcXHVEODNEKD86W1xcdURDNjhcXHVEQzY5XXxcXHVEQzhCXFx1MjAwRFxcdUQ4M0RbXFx1REM2OFxcdURDNjldKVxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF18XFx1REQxRFxcdTIwMERcXHVEODNEW1xcdURDNjhcXHVEQzY5XVxcdUQ4M0NbXFx1REZGQlxcdURGRkNcXHVERkZFXFx1REZGRl0pKSk/fFxcdURGRkUoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEXFx1RDgzRCg/OltcXHVEQzY4XFx1REM2OV18XFx1REM4QlxcdTIwMERcXHVEODNEW1xcdURDNjhcXHVEQzY5XSlcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdfFxcdUREMURcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV1cXHVEODNDW1xcdURGRkItXFx1REZGRFxcdURGRkZdKSkpP3xcXHVERkZGKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpbXFx1REM2OFxcdURDNjldfFxcdURDOEJcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV0pXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RbXFx1REM2OFxcdURDNjldXFx1RDgzQ1tcXHVERkZCLVxcdURGRkVdKSkpPykpP3xcXHVEQzZGKD86XFx1MjAwRFtcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGPyk/fFxcdURENzUoPzpcXHVGRTBGfFxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSk/KD86XFx1MjAwRFtcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGPyk/fFxcdURFMkUoPzpcXHUyMDBEXFx1RDgzRFxcdURDQTgpP3xcXHVERTM1KD86XFx1MjAwRFxcdUQ4M0RcXHVEQ0FCKT98XFx1REUzNig/OlxcdTIwMERcXHVEODNDXFx1REYyQlxcdUZFMEY/KT8pfFxcdUQ4M0UoPzpbXFx1REQwQ1xcdUREMEZcXHVERDE4LVxcdUREMUZcXHVERDMwLVxcdUREMzRcXHVERDM2XFx1REQ3N1xcdUREQjVcXHVEREI2XFx1RERCQlxcdURERDJcXHVEREQzXFx1RERENVxcdURFQzMtXFx1REVDNVxcdURFRjBcXHVERUYyLVxcdURFRjhdKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT98W1xcdUREMjZcXHVERDM1XFx1REQzNy1cXHVERDM5XFx1REQzRFxcdUREM0VcXHVEREI4XFx1RERCOVxcdUREQ0QtXFx1RERDRlxcdURERDRcXHVEREQ2LVxcdURERERdKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT8oPzpcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXVxcdUZFMEY/KT98W1xcdUREREVcXHVERERGXSg/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8pP3xbXFx1REQwRFxcdUREMEVcXHVERDEwLVxcdUREMTdcXHVERDIwLVxcdUREMjVcXHVERDI3LVxcdUREMkZcXHVERDNBXFx1REQzRi1cXHVERDQ1XFx1REQ0Ny1cXHVERDc2XFx1REQ3OC1cXHVEREI0XFx1RERCN1xcdUREQkFcXHVEREJDLVxcdUREQ0NcXHVEREQwXFx1RERFMC1cXHVEREZGXFx1REU3MC1cXHVERTdDXFx1REU4MC1cXHVERTg4XFx1REU5MC1cXHVERUJEXFx1REVCRi1cXHVERUMyXFx1REVDRS1cXHVERURCXFx1REVFMC1cXHVERUU4XXxcXHVERDNDKD86XFx1MjAwRFtcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGP3xcXHVEODNDW1xcdURGRkItXFx1REZGRl0pP3xcXHVEREQxKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjg0XFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0VcXHVEREQxKSl8XFx1RDgzQyg/OlxcdURGRkIoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEKD86XFx1RDgzRFxcdURDOEJcXHUyMDBEKT9cXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQy1cXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGODRcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdfFxcdUREMURcXHUyMDBEXFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkItXFx1REZGRl0pKSk/fFxcdURGRkMoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEKD86XFx1RDgzRFxcdURDOEJcXHUyMDBEKT9cXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQlxcdURGRkQtXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjg0XFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0VcXHVEREQxXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKSkpP3xcXHVERkZEKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRCg/OlxcdUQ4M0RcXHVEQzhCXFx1MjAwRCk/XFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkJcXHVERkZDXFx1REZGRVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY4NFxcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF18XFx1REQxRFxcdTIwMERcXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSkpKT98XFx1REZGRSg/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMEQoPzpcXHVEODNEXFx1REM4QlxcdTIwMEQpP1xcdUQ4M0VcXHVEREQxXFx1RDgzQ1tcXHVERkZCLVxcdURGRkRcXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGODRcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdfFxcdUREMURcXHUyMDBEXFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkItXFx1REZGRl0pKSk/fFxcdURGRkYoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEKD86XFx1RDgzRFxcdURDOEJcXHUyMDBEKT9cXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQi1cXHVERkZFXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGODRcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdfFxcdUREMURcXHUyMDBEXFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkItXFx1REZGRl0pKSk/KSk/fFxcdURFRjEoPzpcXHVEODNDKD86XFx1REZGQig/OlxcdTIwMERcXHVEODNFXFx1REVGMlxcdUQ4M0NbXFx1REZGQy1cXHVERkZGXSk/fFxcdURGRkMoPzpcXHUyMDBEXFx1RDgzRVxcdURFRjJcXHVEODNDW1xcdURGRkJcXHVERkZELVxcdURGRkZdKT98XFx1REZGRCg/OlxcdTIwMERcXHVEODNFXFx1REVGMlxcdUQ4M0NbXFx1REZGQlxcdURGRkNcXHVERkZFXFx1REZGRl0pP3xcXHVERkZFKD86XFx1MjAwRFxcdUQ4M0VcXHVERUYyXFx1RDgzQ1tcXHVERkZCLVxcdURGRkRcXHVERkZGXSk/fFxcdURGRkYoPzpcXHUyMDBEXFx1RDgzRVxcdURFRjJcXHVEODNDW1xcdURGRkItXFx1REZGRV0pPykpPykvZztcbn07XG5cbmZ1bmN0aW9uIHN0cmluZ1dpZHRoJDEoc3RyaW5nLCBvcHRpb25zKSB7XG5cdGlmICh0eXBlb2Ygc3RyaW5nICE9PSAnc3RyaW5nJyB8fCBzdHJpbmcubGVuZ3RoID09PSAwKSB7XG5cdFx0cmV0dXJuIDA7XG5cdH1cblxuXHRvcHRpb25zID0ge1xuXHRcdGFtYmlndW91c0lzTmFycm93OiB0cnVlLFxuXHRcdGNvdW50QW5zaUVzY2FwZUNvZGVzOiBmYWxzZSxcblx0XHQuLi5vcHRpb25zLFxuXHR9O1xuXG5cdGlmICghb3B0aW9ucy5jb3VudEFuc2lFc2NhcGVDb2Rlcykge1xuXHRcdHN0cmluZyA9IHN0cmlwQW5zaShzdHJpbmcpO1xuXHR9XG5cblx0aWYgKHN0cmluZy5sZW5ndGggPT09IDApIHtcblx0XHRyZXR1cm4gMDtcblx0fVxuXG5cdGNvbnN0IGFtYmlndW91c0NoYXJhY3RlcldpZHRoID0gb3B0aW9ucy5hbWJpZ3VvdXNJc05hcnJvdyA/IDEgOiAyO1xuXHRsZXQgd2lkdGggPSAwO1xuXG5cdGZvciAoY29uc3Qge3NlZ21lbnQ6IGNoYXJhY3Rlcn0gb2YgbmV3IEludGwuU2VnbWVudGVyKCkuc2VnbWVudChzdHJpbmcpKSB7XG5cdFx0Y29uc3QgY29kZVBvaW50ID0gY2hhcmFjdGVyLmNvZGVQb2ludEF0KDApO1xuXG5cdFx0Ly8gSWdub3JlIGNvbnRyb2wgY2hhcmFjdGVyc1xuXHRcdGlmIChjb2RlUG9pbnQgPD0gMHgxRiB8fCAoY29kZVBvaW50ID49IDB4N0YgJiYgY29kZVBvaW50IDw9IDB4OUYpKSB7XG5cdFx0XHRjb250aW51ZTtcblx0XHR9XG5cblx0XHQvLyBJZ25vcmUgY29tYmluaW5nIGNoYXJhY3RlcnNcblx0XHRpZiAoY29kZVBvaW50ID49IDB4M18wMCAmJiBjb2RlUG9pbnQgPD0gMHgzXzZGKSB7XG5cdFx0XHRjb250aW51ZTtcblx0XHR9XG5cblx0XHRpZiAoZW1vamlSZWdleCgpLnRlc3QoY2hhcmFjdGVyKSkge1xuXHRcdFx0d2lkdGggKz0gMjtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdGNvbnN0IGNvZGUgPSBlYXN0QXNpYW5XaWR0aC5lYXN0QXNpYW5XaWR0aChjaGFyYWN0ZXIpO1xuXHRcdHN3aXRjaCAoY29kZSkge1xuXHRcdFx0Y2FzZSAnRic6XG5cdFx0XHRjYXNlICdXJzoge1xuXHRcdFx0XHR3aWR0aCArPSAyO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdH1cblxuXHRcdFx0Y2FzZSAnQSc6IHtcblx0XHRcdFx0d2lkdGggKz0gYW1iaWd1b3VzQ2hhcmFjdGVyV2lkdGg7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXG5cdFx0XHRkZWZhdWx0OiB7XG5cdFx0XHRcdHdpZHRoICs9IDE7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIHdpZHRoO1xufVxuXG5mdW5jdGlvbiBpc1VuaWNvZGVTdXBwb3J0ZWQoKSB7XG5cdGlmIChwcm9jZXNzJDEucGxhdGZvcm0gIT09ICd3aW4zMicpIHtcblx0XHRyZXR1cm4gcHJvY2VzcyQxLmVudi5URVJNICE9PSAnbGludXgnOyAvLyBMaW51eCBjb25zb2xlIChrZXJuZWwpXG5cdH1cblxuXHRyZXR1cm4gQm9vbGVhbihwcm9jZXNzJDEuZW52LkNJKVxuXHRcdHx8IEJvb2xlYW4ocHJvY2VzcyQxLmVudi5XVF9TRVNTSU9OKSAvLyBXaW5kb3dzIFRlcm1pbmFsXG5cdFx0fHwgQm9vbGVhbihwcm9jZXNzJDEuZW52LlRFUk1JTlVTX1NVQkxJTUUpIC8vIFRlcm1pbnVzICg8MC4yLjI3KVxuXHRcdHx8IHByb2Nlc3MkMS5lbnYuQ29uRW11VGFzayA9PT0gJ3tjbWQ6OkNtZGVyfScgLy8gQ29uRW11IGFuZCBjbWRlclxuXHRcdHx8IHByb2Nlc3MkMS5lbnYuVEVSTV9QUk9HUkFNID09PSAnVGVybWludXMtU3VibGltZSdcblx0XHR8fCBwcm9jZXNzJDEuZW52LlRFUk1fUFJPR1JBTSA9PT0gJ3ZzY29kZSdcblx0XHR8fCBwcm9jZXNzJDEuZW52LlRFUk0gPT09ICd4dGVybS0yNTZjb2xvcidcblx0XHR8fCBwcm9jZXNzJDEuZW52LlRFUk0gPT09ICdhbGFjcml0dHknXG5cdFx0fHwgcHJvY2VzcyQxLmVudi5URVJNSU5BTF9FTVVMQVRPUiA9PT0gJ0pldEJyYWlucy1KZWRpVGVybSc7XG59XG5cbmNvbnN0IFRZUEVfQ09MT1JfTUFQID0ge1xuICBpbmZvOiBcImN5YW5cIixcbiAgZmFpbDogXCJyZWRcIixcbiAgc3VjY2VzczogXCJncmVlblwiLFxuICByZWFkeTogXCJncmVlblwiLFxuICBzdGFydDogXCJtYWdlbnRhXCJcbn07XG5jb25zdCBMRVZFTF9DT0xPUl9NQVAgPSB7XG4gIDA6IFwicmVkXCIsXG4gIDE6IFwieWVsbG93XCJcbn07XG5jb25zdCB1bmljb2RlID0gaXNVbmljb2RlU3VwcG9ydGVkKCk7XG5jb25zdCBzID0gKGMsIGZhbGxiYWNrKSA9PiB1bmljb2RlID8gYyA6IGZhbGxiYWNrO1xuY29uc3QgVFlQRV9JQ09OUyA9IHtcbiAgZXJyb3I6IHMoXCJcXHUyNzE2XCIsIFwiXFx4RDdcIiksXG4gIGZhdGFsOiBzKFwiXFx1MjcxNlwiLCBcIlxceEQ3XCIpLFxuICByZWFkeTogcyhcIlxcdTI3MTRcIiwgXCJcXHUyMjFBXCIpLFxuICB3YXJuOiBzKFwiXFx1MjZBMFwiLCBcIlxcdTIwM0NcIiksXG4gIGluZm86IHMoXCJcXHUyMTM5XCIsIFwiaVwiKSxcbiAgc3VjY2VzczogcyhcIlxcdTI3MTRcIiwgXCJcXHUyMjFBXCIpLFxuICBkZWJ1ZzogcyhcIlxcdTI2OTlcIiwgXCJEXCIpLFxuICB0cmFjZTogcyhcIlxcdTIxOTJcIiwgXCJcXHUyMTkyXCIpLFxuICBmYWlsOiBzKFwiXFx1MjcxNlwiLCBcIlxceEQ3XCIpLFxuICBzdGFydDogcyhcIlxcdTI1RDBcIiwgXCJvXCIpLFxuICBsb2c6IFwiXCJcbn07XG5mdW5jdGlvbiBzdHJpbmdXaWR0aChzdHIpIHtcbiAgaWYgKCFJbnRsLlNlZ21lbnRlcikge1xuICAgIHJldHVybiBzdHJpcEFuc2kkMShzdHIpLmxlbmd0aDtcbiAgfVxuICByZXR1cm4gc3RyaW5nV2lkdGgkMShzdHIpO1xufVxuY2xhc3MgRmFuY3lSZXBvcnRlciBleHRlbmRzIEJhc2ljUmVwb3J0ZXIge1xuICBmb3JtYXRTdGFjayhzdGFjaykge1xuICAgIHJldHVybiBcIlxcblwiICsgcGFyc2VTdGFjayhzdGFjaykubWFwKFxuICAgICAgKGxpbmUpID0+IFwiICBcIiArIGxpbmUucmVwbGFjZSgvXmF0ICsvLCAobSkgPT4gY29sb3JzLmdyYXkobSkpLnJlcGxhY2UoL1xcKCguKylcXCkvLCAoXywgbSkgPT4gYCgke2NvbG9ycy5jeWFuKG0pfSlgKVxuICAgICkuam9pbihcIlxcblwiKTtcbiAgfVxuICBmb3JtYXRUeXBlKGxvZ09iaiwgaXNCYWRnZSwgb3B0cykge1xuICAgIGNvbnN0IHR5cGVDb2xvciA9IFRZUEVfQ09MT1JfTUFQW2xvZ09iai50eXBlXSB8fCBMRVZFTF9DT0xPUl9NQVBbbG9nT2JqLmxldmVsXSB8fCBcImdyYXlcIjtcbiAgICBpZiAoaXNCYWRnZSkge1xuICAgICAgcmV0dXJuIGdldEJnQ29sb3IodHlwZUNvbG9yKShcbiAgICAgICAgY29sb3JzLmJsYWNrKGAgJHtsb2dPYmoudHlwZS50b1VwcGVyQ2FzZSgpfSBgKVxuICAgICAgKTtcbiAgICB9XG4gICAgY29uc3QgX3R5cGUgPSB0eXBlb2YgVFlQRV9JQ09OU1tsb2dPYmoudHlwZV0gPT09IFwic3RyaW5nXCIgPyBUWVBFX0lDT05TW2xvZ09iai50eXBlXSA6IGxvZ09iai5pY29uIHx8IGxvZ09iai50eXBlO1xuICAgIHJldHVybiBfdHlwZSA/IGdldENvbG9yKHR5cGVDb2xvcikoX3R5cGUpIDogXCJcIjtcbiAgfVxuICBmb3JtYXRMb2dPYmoobG9nT2JqLCBvcHRzKSB7XG4gICAgY29uc3QgW21lc3NhZ2UsIC4uLmFkZGl0aW9uYWxdID0gdGhpcy5mb3JtYXRBcmdzKGxvZ09iai5hcmdzLCBvcHRzKS5zcGxpdChcbiAgICAgIFwiXFxuXCJcbiAgICApO1xuICAgIGlmIChsb2dPYmoudHlwZSA9PT0gXCJib3hcIikge1xuICAgICAgcmV0dXJuIGJveChcbiAgICAgICAgY2hhcmFjdGVyRm9ybWF0KFxuICAgICAgICAgIG1lc3NhZ2UgKyAoYWRkaXRpb25hbC5sZW5ndGggPiAwID8gXCJcXG5cIiArIGFkZGl0aW9uYWwuam9pbihcIlxcblwiKSA6IFwiXCIpXG4gICAgICAgICksXG4gICAgICAgIHtcbiAgICAgICAgICB0aXRsZTogbG9nT2JqLnRpdGxlID8gY2hhcmFjdGVyRm9ybWF0KGxvZ09iai50aXRsZSkgOiB2b2lkIDAsXG4gICAgICAgICAgc3R5bGU6IGxvZ09iai5zdHlsZVxuICAgICAgICB9XG4gICAgICApO1xuICAgIH1cbiAgICBjb25zdCBkYXRlID0gdGhpcy5mb3JtYXREYXRlKGxvZ09iai5kYXRlLCBvcHRzKTtcbiAgICBjb25zdCBjb2xvcmVkRGF0ZSA9IGRhdGUgJiYgY29sb3JzLmdyYXkoZGF0ZSk7XG4gICAgY29uc3QgaXNCYWRnZSA9IGxvZ09iai5iYWRnZSA/PyBsb2dPYmoubGV2ZWwgPCAyO1xuICAgIGNvbnN0IHR5cGUgPSB0aGlzLmZvcm1hdFR5cGUobG9nT2JqLCBpc0JhZGdlLCBvcHRzKTtcbiAgICBjb25zdCB0YWcgPSBsb2dPYmoudGFnID8gY29sb3JzLmdyYXkobG9nT2JqLnRhZykgOiBcIlwiO1xuICAgIGxldCBsaW5lO1xuICAgIGNvbnN0IGxlZnQgPSB0aGlzLmZpbHRlckFuZEpvaW4oW3R5cGUsIGNoYXJhY3RlckZvcm1hdChtZXNzYWdlKV0pO1xuICAgIGNvbnN0IHJpZ2h0ID0gdGhpcy5maWx0ZXJBbmRKb2luKG9wdHMuY29sdW1ucyA/IFt0YWcsIGNvbG9yZWREYXRlXSA6IFt0YWddKTtcbiAgICBjb25zdCBzcGFjZSA9IChvcHRzLmNvbHVtbnMgfHwgMCkgLSBzdHJpbmdXaWR0aChsZWZ0KSAtIHN0cmluZ1dpZHRoKHJpZ2h0KSAtIDI7XG4gICAgbGluZSA9IHNwYWNlID4gMCAmJiAob3B0cy5jb2x1bW5zIHx8IDApID49IDgwID8gbGVmdCArIFwiIFwiLnJlcGVhdChzcGFjZSkgKyByaWdodCA6IChyaWdodCA/IGAke2NvbG9ycy5ncmF5KGBbJHtyaWdodH1dYCl9IGAgOiBcIlwiKSArIGxlZnQ7XG4gICAgbGluZSArPSBjaGFyYWN0ZXJGb3JtYXQoXG4gICAgICBhZGRpdGlvbmFsLmxlbmd0aCA+IDAgPyBcIlxcblwiICsgYWRkaXRpb25hbC5qb2luKFwiXFxuXCIpIDogXCJcIlxuICAgICk7XG4gICAgaWYgKGxvZ09iai50eXBlID09PSBcInRyYWNlXCIpIHtcbiAgICAgIGNvbnN0IF9lcnIgPSBuZXcgRXJyb3IoXCJUcmFjZTogXCIgKyBsb2dPYmoubWVzc2FnZSk7XG4gICAgICBsaW5lICs9IHRoaXMuZm9ybWF0U3RhY2soX2Vyci5zdGFjayB8fCBcIlwiKTtcbiAgICB9XG4gICAgcmV0dXJuIGlzQmFkZ2UgPyBcIlxcblwiICsgbGluZSArIFwiXFxuXCIgOiBsaW5lO1xuICB9XG59XG5mdW5jdGlvbiBjaGFyYWN0ZXJGb3JtYXQoc3RyKSB7XG4gIHJldHVybiBzdHIucmVwbGFjZSgvYChbXmBdKylgL2dtLCAoXywgbSkgPT4gY29sb3JzLmN5YW4obSkpLnJlcGxhY2UoL1xccytfKFteX10rKV9cXHMrL2dtLCAoXywgbSkgPT4gYCAke2NvbG9ycy51bmRlcmxpbmUobSl9IGApO1xufVxuZnVuY3Rpb24gZ2V0Q29sb3IoY29sb3IgPSBcIndoaXRlXCIpIHtcbiAgcmV0dXJuIGNvbG9yc1tjb2xvcl0gfHwgY29sb3JzLndoaXRlO1xufVxuZnVuY3Rpb24gZ2V0QmdDb2xvcihjb2xvciA9IFwiYmdXaGl0ZVwiKSB7XG4gIHJldHVybiBjb2xvcnNbYGJnJHtjb2xvclswXS50b1VwcGVyQ2FzZSgpfSR7Y29sb3Iuc2xpY2UoMSl9YF0gfHwgY29sb3JzLmJnV2hpdGU7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUNvbnNvbGEob3B0aW9ucyA9IHt9KSB7XG4gIGxldCBsZXZlbCA9IF9nZXREZWZhdWx0TG9nTGV2ZWwoKTtcbiAgaWYgKHByb2Nlc3MuZW52LkNPTlNPTEFfTEVWRUwpIHtcbiAgICBsZXZlbCA9IE51bWJlci5wYXJzZUludChwcm9jZXNzLmVudi5DT05TT0xBX0xFVkVMKSA/PyBsZXZlbDtcbiAgfVxuICBjb25zdCBjb25zb2xhMiA9IGNyZWF0ZUNvbnNvbGEkMSh7XG4gICAgbGV2ZWwsXG4gICAgZGVmYXVsdHM6IHsgbGV2ZWwgfSxcbiAgICBzdGRvdXQ6IHByb2Nlc3Muc3Rkb3V0LFxuICAgIHN0ZGVycjogcHJvY2Vzcy5zdGRlcnIsXG4gICAgcHJvbXB0OiAoLi4uYXJncykgPT4gaW1wb3J0KCcuLi9jaHVua3MvcHJvbXB0Lm1qcycpLnRoZW4oKG0pID0+IG0ucHJvbXB0KC4uLmFyZ3MpKSxcbiAgICByZXBvcnRlcnM6IG9wdGlvbnMucmVwb3J0ZXJzIHx8IFtcbiAgICAgIG9wdGlvbnMuZmFuY3kgPz8gIShpc0NJIHx8IGlzVGVzdCkgPyBuZXcgRmFuY3lSZXBvcnRlcigpIDogbmV3IEJhc2ljUmVwb3J0ZXIoKVxuICAgIF0sXG4gICAgLi4ub3B0aW9uc1xuICB9KTtcbiAgcmV0dXJuIGNvbnNvbGEyO1xufVxuZnVuY3Rpb24gX2dldERlZmF1bHRMb2dMZXZlbCgpIHtcbiAgaWYgKGlzRGVidWcpIHtcbiAgICByZXR1cm4gTG9nTGV2ZWxzLmRlYnVnO1xuICB9XG4gIGlmIChpc1Rlc3QpIHtcbiAgICByZXR1cm4gTG9nTGV2ZWxzLndhcm47XG4gIH1cbiAgcmV0dXJuIExvZ0xldmVscy5pbmZvO1xufVxuY29uc3QgY29uc29sYSA9IGNyZWF0ZUNvbnNvbGEoKTtcblxuZXhwb3J0IHsgY29uc29sYSBhcyBhLCBjcmVhdGVDb25zb2xhIGFzIGMsIGdldERlZmF1bHRFeHBvcnRGcm9tQ2pzIGFzIGcsIGlzVW5pY29kZVN1cHBvcnRlZCBhcyBpIH07XG4iLCAiLyogZXNsaW50LWRpc2FibGUgdW5pY29ybi9uby1wcm9jZXNzLWV4aXQgKi9cbmltcG9ydCBhc3NlcnQgZnJvbSBcIm5vZGU6YXNzZXJ0XCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgeyBjcmVhdGVIYXNoIH0gZnJvbSBcIm5vZGU6Y3J5cHRvXCI7XG5pbXBvcnQgZnNTeW5jIGZyb20gXCJub2RlOmZzXCI7XG5pbXBvcnQgZnMgZnJvbSBcIm5vZGU6ZnMvcHJvbWlzZXNcIjtcbmltcG9ydCB7IGhhc2ggfSBmcm9tIFwib2hhc2hcIjtcbmltcG9ydCBlelNwYXduIGZyb20gXCJAanNkZXZ0b29scy9lei1zcGF3blwiO1xuaW1wb3J0IHsgZGVmaW5lQ29tbWFuZCwgcnVuTWFpbiB9IGZyb20gXCJjaXR0eVwiO1xuaW1wb3J0IHsgZ2V0UGFja2FnZU1hbmlmZXN0LCB0eXBlIFBhY2thZ2VNYW5pZmVzdCB9IGZyb20gXCJxdWVyeS1yZWdpc3RyeVwiO1xuaW1wb3J0IHR5cGUgeyBDb21tZW50IH0gZnJvbSBcIkBwa2ctcHItbmV3L3V0aWxzXCI7XG5pbXBvcnQge1xuICBhYmJyZXZpYXRlQ29tbWl0SGFzaCxcbiAgZXh0cmFjdE93bmVyQW5kUmVwbyxcbiAgZXh0cmFjdFJlcG9zaXRvcnksXG59IGZyb20gXCJAcGtnLXByLW5ldy91dGlsc1wiO1xuaW1wb3J0IHsgZ2xvYiB9IGZyb20gXCJ0aW55Z2xvYmJ5XCI7XG5pbXBvcnQgaWdub3JlIGZyb20gXCJpZ25vcmVcIjtcbmltcG9ydCBcIi4vZW52aXJvbm1lbnRzXCI7XG5pbXBvcnQgeyBpc0JpbmFyeUZpbGUgfSBmcm9tIFwiaXNiaW5hcnlmaWxlXCI7XG5pbXBvcnQgeyB3cml0ZVBhY2thZ2VKU09OLCB0eXBlIFBhY2thZ2VKc29uIH0gZnJvbSBcInBrZy10eXBlc1wiO1xuaW1wb3J0IHBrZyBmcm9tIFwiLi9wYWNrYWdlLmpzb25cIiB3aXRoIHsgdHlwZTogXCJqc29uXCIgfTtcbmltcG9ydCB7IGNyZWF0ZURlZmF1bHRUZW1wbGF0ZSB9IGZyb20gXCIuL3RlbXBsYXRlXCI7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgY29uc3QgQVBJX1VSTDogc3RyaW5nO1xufVxuXG50eXBlIE91dHB1dE1ldGFkYXRhID0ge1xuICBwYWNrYWdlczoge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB1cmw6IHN0cmluZztcbiAgICBzaGFzdW06IHN0cmluZztcbiAgfVtdO1xuICB0ZW1wbGF0ZXM6IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgdXJsOiBzdHJpbmc7XG4gIH1bXTtcbn07XG5cbmNvbnN0IGFwaVVybCA9IHByb2Nlc3MuZW52LkFQSV9VUkwgPz8gQVBJX1VSTDtcbmNvbnN0IHB1Ymxpc2hVcmwgPSBuZXcgVVJMKFwiL3B1Ymxpc2hcIiwgYXBpVXJsKTtcbmNvbnN0IGNyZWF0ZU11bHRpcGFydCA9IG5ldyBVUkwoXCIvbXVsdGlwYXJ0L2NyZWF0ZVwiLCBhcGlVcmwpO1xuY29uc3QgdXBsb2FkTXVsdGlwYXJ0ID0gbmV3IFVSTChcIi9tdWx0aXBhcnQvdXBsb2FkXCIsIGFwaVVybCk7XG5jb25zdCBjb21wbGV0ZU11bHRpcGFydCA9IG5ldyBVUkwoXCIvbXVsdGlwYXJ0L2NvbXBsZXRlXCIsIGFwaVVybCk7XG5cbmNvbnN0IG1haW4gPSBkZWZpbmVDb21tYW5kKHtcbiAgbWV0YToge1xuICAgIHZlcnNpb246IHBrZy52ZXJzaW9uLFxuICAgIG5hbWU6IFwic3RhY2tibGl0elwiLFxuICAgIGRlc2NyaXB0aW9uOiBcIkEgQ0xJIGZvciBwa2cucHIubmV3IChDb250aW51b3VzIFJlbGVhc2VzKVwiLFxuICB9LFxuICBzdWJDb21tYW5kczoge1xuICAgIHB1Ymxpc2g6ICgpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGFyZ3M6IHtcbiAgICAgICAgICBjb21wYWN0OiB7XG4gICAgICAgICAgICB0eXBlOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgICAgICBcImNvbXBhY3QgdXJscy4gVGhlIHNob3J0ZXN0IGZvcm0gb2YgdXJscyBsaWtlIHBrZy5wci5uZXcvdGlueWJlbmNoQGE4MzJhNTUpXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBwZWVyRGVwczoge1xuICAgICAgICAgICAgdHlwZTogXCJib29sZWFuXCIsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgICAgICAgXCJoYW5kbGUgcGVlckRlcGVuZGVuY2llcyBieSBzZXR0aW5nIHRoZSB3b3Jrc3BhY2UgdmVyc2lvbiBpbnN0ZWFkIG9mIHdoYXQgaGFzIGJlZW4gc2V0IGluIHRoZSBwZWVyRGVwcyBpdHNlbGYuIC0tcGVlckRlcHMgbm90IGJlaW5nIHRydWUgd291bGQgbGVhdmUgcGVlckRlcGVuZGVuY2llcyB0byB0aGUgcGFja2FnZSBtYW5hZ2VyIGl0c2VsZiAobnBtLCBwbnBtKVwiLFxuICAgICAgICAgICAgZGVmYXVsdDogZmFsc2UsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBwbnBtOiB7XG4gICAgICAgICAgICB0eXBlOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcInVzZSBgcG5wbSBwYWNrYCBpbnN0ZWFkIG9mIGBucG0gcGFjayAtLWpzb25gXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB0ZW1wbGF0ZToge1xuICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgICAgICBcImdlbmVyYXRlIHN0YWNrYmxpdHogdGVtcGxhdGVzIG91dCBvZiBkaXJlY3RvcmllcyBpbiB0aGUgY3VycmVudCByZXBvIHdpdGggdGhlIG5ldyBidWlsdCBwYWNrYWdlc1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgY29tbWVudDoge1xuICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIiwgLy8gXCJvZmZcIiwgXCJjcmVhdGVcIiwgXCJ1cGRhdGVcIiAoZGVmYXVsdClcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBgXCJvZmZcIiBmb3Igbm8gY29tbWVudHMgKHNpbGVudCBtb2RlKS4gXCJjcmVhdGVcIiBmb3IgY29tbWVudCBvbiBlYWNoIHB1Ymxpc2guIFwidXBkYXRlXCIgZm9yIG9uZSBjb21tZW50IGFjcm9zcyB0aGUgcHVsbCByZXF1ZXN0IHdpdGggZWRpdHMgb24gZWFjaCBwdWJsaXNoIChkZWZhdWx0KWAsXG4gICAgICAgICAgICBkZWZhdWx0OiBcInVwZGF0ZVwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJvbmx5LXRlbXBsYXRlc1wiOiB7XG4gICAgICAgICAgICB0eXBlOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBgZ2VuZXJhdGUgb25seSBzdGFja2JsaXR6IHRlbXBsYXRlc2AsXG4gICAgICAgICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGpzb246IHtcbiAgICAgICAgICAgIHR5cGU6IFwibWl4ZWRcIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBgU2F2ZSBtZXRhZGF0YSB0byBhIEpTT04gZmlsZS4gSWYgdHJ1ZSwgbG9nIHRoZSBvdXRwdXQgZm9yIHBpcGluZy4gSWYgYSBzdHJpbmcsIHNhdmUgdGhlIG91dHB1dCB0byB0aGUgc3BlY2lmaWVkIGZpbGUgcGF0aC5gLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcGFja2FnZU1hbmFnZXI6IHtcbiAgICAgICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgICAgICAgXCJTcGVjaWZ5IHRoZSBwYWNrYWdlIG1hbmFnZXIgdG8gdXNlIChucG0sIGJ1biwgcG5wbSwgeWFybilcIixcbiAgICAgICAgICAgIGVudW06IFtcIm5wbVwiLCBcImJ1blwiLCBcInBucG1cIiwgXCJ5YXJuXCJdLFxuICAgICAgICAgICAgZGVmYXVsdDogXCJucG1cIixcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBydW46IGFzeW5jICh7IGFyZ3MgfSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHBhdGhzID1cbiAgICAgICAgICAgIGFyZ3MuXy5sZW5ndGggPiAwXG4gICAgICAgICAgICAgID8gYXdhaXQgZ2xvYihhcmdzLl8sIHtcbiAgICAgICAgICAgICAgICAgIGV4cGFuZERpcmVjdG9yaWVzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgIG9ubHlEaXJlY3RvcmllczogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIGFic29sdXRlOiB0cnVlLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIDogW3Byb2Nlc3MuY3dkKCldO1xuXG4gICAgICAgICAgY29uc3QgdGVtcGxhdGVzID0gYXdhaXQgZ2xvYihhcmdzLnRlbXBsYXRlIHx8IFtdLCB7XG4gICAgICAgICAgICBleHBhbmREaXJlY3RvcmllczogZmFsc2UsXG4gICAgICAgICAgICBvbmx5RGlyZWN0b3JpZXM6IHRydWUsXG4gICAgICAgICAgICBhYnNvbHV0ZTogdHJ1ZSxcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG5cbiAgICAgICAgICBjb25zdCBpc0NvbXBhY3QgPSAhIWFyZ3MuY29tcGFjdDtcbiAgICAgICAgICBsZXQgcGFja01ldGhvZDogUGFja01ldGhvZCA9IFwibnBtXCI7XG5cbiAgICAgICAgICBpZiAoYXJncy5wbnBtKSB7XG4gICAgICAgICAgICBwYWNrTWV0aG9kID0gXCJwbnBtXCI7XG4gICAgICAgICAgfSBlbHNlIGlmIChhcmdzLnlhcm4pIHtcbiAgICAgICAgICAgIHBhY2tNZXRob2QgPSBcInlhcm5cIjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBpc1BlZXJEZXBzRW5hYmxlZCA9ICEhYXJncy5wZWVyRGVwcztcbiAgICAgICAgICBjb25zdCBpc09ubHlUZW1wbGF0ZXMgPSAhIWFyZ3NbXCJvbmx5LXRlbXBsYXRlc1wiXTtcblxuICAgICAgICAgIGNvbnN0IGNvbW1lbnQ6IENvbW1lbnQgPSBhcmdzLmNvbW1lbnQgYXMgQ29tbWVudDtcbiAgICAgICAgICBjb25zdCBzZWxlY3RlZFBhY2thZ2VNYW5hZ2VyID0gYXJncy5wYWNrYWdlTWFuYWdlciBhc1xuICAgICAgICAgICAgfCBcIm5wbVwiXG4gICAgICAgICAgICB8IFwiYnVuXCJcbiAgICAgICAgICAgIHwgXCJwbnBtXCJcbiAgICAgICAgICAgIHwgXCJ5YXJuXCI7XG5cbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAhW1wibnBtXCIsIFwiYnVuXCIsIFwicG5wbVwiLCBcInlhcm5cIl0uaW5jbHVkZXMoc2VsZWN0ZWRQYWNrYWdlTWFuYWdlcilcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgIGBVbnN1cHBvcnRlZCBwYWNrYWdlIG1hbmFnZXI6ICR7c2VsZWN0ZWRQYWNrYWdlTWFuYWdlcn0uIFN1cHBvcnRlZCBtYW5hZ2VycyBhcmUgbnBtLCBidW4sIHBucG0sIHlhcm4uYCxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKCFwcm9jZXNzLmVudi5URVNUICYmIHByb2Nlc3MuZW52LkdJVEhVQl9BQ1RJT05TICE9PSBcInRydWVcIikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgXCJDb250aW51b3VzIFJlbGVhc2VzIGFyZSBvbmx5IGF2YWlsYWJsZSBpbiBHaXRIdWIgQWN0aW9ucy5cIixcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgR0lUSFVCX1JFUE9TSVRPUlksXG4gICAgICAgICAgICBHSVRIVUJfUlVOX0lELFxuICAgICAgICAgICAgR0lUSFVCX1JVTl9BVFRFTVBULFxuICAgICAgICAgICAgR0lUSFVCX0FDVE9SX0lELFxuICAgICAgICAgIH0gPSBwcm9jZXNzLmVudjtcblxuICAgICAgICAgIGNvbnN0IFtvd25lciwgcmVwb10gPSBHSVRIVUJfUkVQT1NJVE9SWS5zcGxpdChcIi9cIik7XG5cbiAgICAgICAgICBjb25zdCBtZXRhZGF0YSA9IHtcbiAgICAgICAgICAgIG93bmVyLFxuICAgICAgICAgICAgcmVwbyxcbiAgICAgICAgICAgIHJ1bjogTnVtYmVyKEdJVEhVQl9SVU5fSUQpLFxuICAgICAgICAgICAgYXR0ZW1wdDogTnVtYmVyKEdJVEhVQl9SVU5fQVRURU1QVCksXG4gICAgICAgICAgICBhY3RvcjogTnVtYmVyKEdJVEhVQl9BQ1RPUl9JRCksXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGNvbnN0IGtleSA9IGhhc2gobWV0YWRhdGEpO1xuXG4gICAgICAgICAgY29uc3QgY2hlY2tSZXNwb25zZSA9IGF3YWl0IGZldGNoKG5ldyBVUkwoXCIvY2hlY2tcIiwgYXBpVXJsKSwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgb3duZXIsXG4gICAgICAgICAgICAgIHJlcG8sXG4gICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgaWYgKCFjaGVja1Jlc3BvbnNlLm9rKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGF3YWl0IGNoZWNrUmVzcG9uc2UudGV4dCgpKTtcbiAgICAgICAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCB7IHNoYSB9ID0gYXdhaXQgY2hlY2tSZXNwb25zZS5qc29uKCk7XG5cbiAgICAgICAgICBjb25zdCBkZXBzOiBNYXA8c3RyaW5nLCBzdHJpbmc+ID0gbmV3IE1hcCgpOyAvLyBwa2cucHIubmV3IHZlcnNpb25zIG9mIHRoZSBwYWNrYWdlXG4gICAgICAgICAgY29uc3QgcmVhbERlcHM6IE1hcDxzdHJpbmcsIHN0cmluZz4gfCBudWxsID0gaXNQZWVyRGVwc0VuYWJsZWRcbiAgICAgICAgICAgID8gbmV3IE1hcCgpXG4gICAgICAgICAgICA6IG51bGw7IC8vIHJlYWwgdmVyc2lvbnMgb2YgdGhlIHBhY2thZ2UsIHVzZWZ1bCBmb3IgcGVlckRlcGVuZGVuY2llc1xuXG4gICAgICAgICAgY29uc3QgcHJpbnRKc29uID0gdHlwZW9mIGFyZ3MuanNvbiA9PT0gXCJib29sZWFuXCI7XG4gICAgICAgICAgY29uc3Qgc2F2ZUpzb24gPSB0eXBlb2YgYXJncy5qc29uID09PSBcInN0cmluZ1wiO1xuICAgICAgICAgIGNvbnN0IGpzb25GaWxlUGF0aCA9IHNhdmVKc29uID8gYXJncy5qc29uIDogXCJcIjtcbiAgICAgICAgICBjb25zdCBvdXRwdXRNZXRhZGF0YTogT3V0cHV0TWV0YWRhdGEgPSB7XG4gICAgICAgICAgICBwYWNrYWdlczogW10sXG4gICAgICAgICAgICB0ZW1wbGF0ZXM6IFtdLFxuICAgICAgICAgIH07XG5cbiAgICAgICAgICBmb3IgKGNvbnN0IHAgb2YgcGF0aHMpIHtcbiAgICAgICAgICAgIGNvbnN0IHBKc29uUGF0aCA9IHBhdGgucmVzb2x2ZShwLCBcInBhY2thZ2UuanNvblwiKTtcbiAgICAgICAgICAgIGNvbnN0IHBKc29uID0gYXdhaXQgcmVhZFBhY2thZ2VKc29uKHBKc29uUGF0aCk7XG5cbiAgICAgICAgICAgIGlmICghcEpzb24pIHtcbiAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghcEpzb24ubmFtZSkge1xuICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFwibmFtZVwiIGZpZWxkIGluICR7cEpzb25QYXRofSBzaG91bGQgYmUgZGVmaW5lZGApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHBKc29uLnByaXZhdGUpIHtcbiAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChpc0NvbXBhY3QpIHtcbiAgICAgICAgICAgICAgYXdhaXQgdmVyaWZ5Q29tcGFjdE1vZGUocEpzb24ubmFtZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGRlcFVybCA9IG5ldyBVUkwoXG4gICAgICAgICAgICAgIGAvJHtvd25lcn0vJHtyZXBvfS8ke3BKc29uLm5hbWV9QCR7c2hhfWAsXG4gICAgICAgICAgICAgIGFwaVVybCxcbiAgICAgICAgICAgICkuaHJlZjtcbiAgICAgICAgICAgIGRlcHMuc2V0KHBKc29uLm5hbWUsIGRlcFVybCk7XG4gICAgICAgICAgICByZWFsRGVwcz8uc2V0KHBKc29uLm5hbWUsIHBKc29uLnZlcnNpb24gPz8gZGVwVXJsKTtcblxuICAgICAgICAgICAgY29uc3QgcmVzb3VyY2UgPSBhd2FpdCBmZXRjaChkZXBVcmwpO1xuICAgICAgICAgICAgaWYgKHJlc291cmNlLm9rKSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgICAgICBgJHtwSnNvbi5uYW1lfUAke2FiYnJldmlhdGVDb21taXRIYXNoKHNoYSl9IHdhcyBhbHJlYWR5IHB1Ymxpc2hlZCBvbiAke2RlcFVybH1gLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBDb2xsZWN0IHBhY2thZ2UgbWV0YWRhdGFcbiAgICAgICAgICAgIG91dHB1dE1ldGFkYXRhLnBhY2thZ2VzLnB1c2goe1xuICAgICAgICAgICAgICBuYW1lOiBwSnNvbi5uYW1lLFxuICAgICAgICAgICAgICB1cmw6IGRlcFVybCxcbiAgICAgICAgICAgICAgc2hhc3VtOiBcIlwiLCAvLyB3aWxsIGJlIGZpbGxlZCBsYXRlclxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZm9yIChjb25zdCB0ZW1wbGF0ZURpciBvZiB0ZW1wbGF0ZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IHBKc29uUGF0aCA9IHBhdGgucmVzb2x2ZSh0ZW1wbGF0ZURpciwgXCJwYWNrYWdlLmpzb25cIik7XG4gICAgICAgICAgICBjb25zdCBwSnNvbkNvbnRlbnRzID0gYXdhaXQgdHJ5UmVhZEZpbGUocEpzb25QYXRoKTtcbiAgICAgICAgICAgIGNvbnN0IHBKc29uID0gcEpzb25Db250ZW50c1xuICAgICAgICAgICAgICA/IHBhcnNlUGFja2FnZUpzb24ocEpzb25Db250ZW50cylcbiAgICAgICAgICAgICAgOiBudWxsO1xuXG4gICAgICAgICAgICBpZiAoIXBKc29uIHx8ICFwSnNvbkNvbnRlbnRzKSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgICAgICBgc2tpcHBpbmcgJHt0ZW1wbGF0ZURpcn0gYmVjYXVzZSB0aGVyZSdzIG5vIHBhY2thZ2UuanNvbiBmaWxlYCxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghcEpzb24ubmFtZSkge1xuICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFwibmFtZVwiIGZpZWxkIGluICR7cEpzb25QYXRofSBzaG91bGQgYmUgZGVmaW5lZGApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zb2xlLndhcm4oXCJwcmVwYXJpbmcgdGVtcGxhdGU6XCIsIHBKc29uLm5hbWUpO1xuXG4gICAgICAgICAgICBjb25zdCByZXN0b3JlID0gYXdhaXQgd3JpdGVEZXBzKFxuICAgICAgICAgICAgICB0ZW1wbGF0ZURpcixcbiAgICAgICAgICAgICAgcEpzb25Db250ZW50cyxcbiAgICAgICAgICAgICAgcEpzb24sXG4gICAgICAgICAgICAgIGRlcHMsXG4gICAgICAgICAgICAgIHJlYWxEZXBzLFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgY29uc3QgZ2l0aWdub3JlUGF0aCA9IHBhdGguam9pbih0ZW1wbGF0ZURpciwgXCIuZ2l0aWdub3JlXCIpO1xuICAgICAgICAgICAgY29uc3QgaWcgPSBpZ25vcmUoKS5hZGQoXCJub2RlX21vZHVsZXNcIikuYWRkKFwiLmdpdFwiKTtcblxuICAgICAgICAgICAgaWYgKGZzU3luYy5leGlzdHNTeW5jKGdpdGlnbm9yZVBhdGgpKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGdpdGlnbm9yZUNvbnRlbnQgPSBhd2FpdCBmcy5yZWFkRmlsZShnaXRpZ25vcmVQYXRoLCBcInV0ZjhcIik7XG4gICAgICAgICAgICAgIGlnLmFkZChnaXRpZ25vcmVDb250ZW50KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgZmlsZXMgPSBhd2FpdCBnbG9iKFtcIioqLypcIl0sIHtcbiAgICAgICAgICAgICAgY3dkOiB0ZW1wbGF0ZURpcixcbiAgICAgICAgICAgICAgZG90OiB0cnVlLFxuICAgICAgICAgICAgICBvbmx5RmlsZXM6IHRydWUsXG4gICAgICAgICAgICAgIGlnbm9yZTogW1wiKiovbm9kZV9tb2R1bGVzXCIsIFwiLmdpdFwiXSwgLy8gYWx3YXlzIGlnbm9yZSBub2RlX21vZHVsZXMgYW5kIC5naXRcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBjb25zdCBmaWx0ZXJlZEZpbGVzID0gZmlsZXMuZmlsdGVyKChmaWxlKSA9PiAhaWcuaWdub3JlcyhmaWxlKSk7XG5cbiAgICAgICAgICAgIGZvciAoY29uc3QgZmlsZVBhdGggb2YgZmlsdGVyZWRGaWxlcykge1xuICAgICAgICAgICAgICBjb25zdCBmaWxlID0gYXdhaXQgZnMucmVhZEZpbGUocGF0aC5qb2luKHRlbXBsYXRlRGlyLCBmaWxlUGF0aCkpO1xuICAgICAgICAgICAgICBjb25zdCBpc0JpbmFyeSA9IGF3YWl0IGlzQmluYXJ5RmlsZShmaWxlKTtcbiAgICAgICAgICAgICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtmaWxlLmJ1ZmZlcl0sIHtcbiAgICAgICAgICAgICAgICB0eXBlOiBcImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbVwiLFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKFxuICAgICAgICAgICAgICAgIGB0ZW1wbGF0ZToke3BKc29uLm5hbWV9OiR7ZW5jb2RlVVJJQ29tcG9uZW50KGZpbGVQYXRoKX1gLFxuICAgICAgICAgICAgICAgIGlzQmluYXJ5ID8gYmxvYiA6IGF3YWl0IGJsb2IudGV4dCgpLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYXdhaXQgcmVzdG9yZSgpO1xuXG4gICAgICAgICAgICAvLyBDb2xsZWN0IHRlbXBsYXRlIG1ldGFkYXRhXG4gICAgICAgICAgICBjb25zdCB0ZW1wbGF0ZVVybCA9IG5ldyBVUkwoXG4gICAgICAgICAgICAgIGAvJHtvd25lcn0vJHtyZXBvfS90ZW1wbGF0ZS8ke3BKc29uLm5hbWV9YCxcbiAgICAgICAgICAgICAgYXBpVXJsLFxuICAgICAgICAgICAgKS5ocmVmO1xuICAgICAgICAgICAgb3V0cHV0TWV0YWRhdGEudGVtcGxhdGVzLnB1c2goe1xuICAgICAgICAgICAgICBuYW1lOiBwSnNvbi5uYW1lLFxuICAgICAgICAgICAgICB1cmw6IHRlbXBsYXRlVXJsLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3Qgbm9EZWZhdWx0VGVtcGxhdGUgPSBhcmdzLnRlbXBsYXRlID09PSBmYWxzZTtcblxuICAgICAgICAgIGlmICghbm9EZWZhdWx0VGVtcGxhdGUpIHtcbiAgICAgICAgICAgIGNvbnN0IHByb2plY3QgPSBjcmVhdGVEZWZhdWx0VGVtcGxhdGUoXG4gICAgICAgICAgICAgIE9iamVjdC5mcm9tRW50cmllcyhkZXBzLmVudHJpZXMoKSksXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGZpbGVQYXRoIG9mIE9iamVjdC5rZXlzKHByb2plY3QpKSB7XG4gICAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZChcbiAgICAgICAgICAgICAgICBgdGVtcGxhdGU6ZGVmYXVsdDoke2VuY29kZVVSSUNvbXBvbmVudChmaWxlUGF0aCl9YCxcbiAgICAgICAgICAgICAgICBwcm9qZWN0W2ZpbGVQYXRoXSxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCByZXN0b3JlTWFwID0gbmV3IE1hcDxcbiAgICAgICAgICAgIHN0cmluZyxcbiAgICAgICAgICAgIEF3YWl0ZWQ8UmV0dXJuVHlwZTx0eXBlb2Ygd3JpdGVEZXBzPj5cbiAgICAgICAgICA+KCk7XG4gICAgICAgICAgZm9yIChjb25zdCBwIG9mIHBhdGhzKSB7XG4gICAgICAgICAgICBjb25zdCBwSnNvblBhdGggPSBwYXRoLnJlc29sdmUocCwgXCJwYWNrYWdlLmpzb25cIik7XG4gICAgICAgICAgICBjb25zdCBwSnNvbkNvbnRlbnRzID0gYXdhaXQgdHJ5UmVhZEZpbGUocEpzb25QYXRoKTtcbiAgICAgICAgICAgIGNvbnN0IHBKc29uID0gcEpzb25Db250ZW50c1xuICAgICAgICAgICAgICA/IHBhcnNlUGFja2FnZUpzb24ocEpzb25Db250ZW50cylcbiAgICAgICAgICAgICAgOiBudWxsO1xuXG4gICAgICAgICAgICBpZiAoIXBKc29uIHx8ICFwSnNvbkNvbnRlbnRzKSB7XG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAocEpzb24ucHJpdmF0ZSkge1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmVzdG9yZU1hcC5zZXQoXG4gICAgICAgICAgICAgIHAsXG4gICAgICAgICAgICAgIGF3YWl0IHdyaXRlRGVwcyhwLCBwSnNvbkNvbnRlbnRzLCBwSnNvbiwgZGVwcywgcmVhbERlcHMpLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBzaGFzdW1zOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gICAgICAgICAgZm9yIChjb25zdCBwIG9mIHBhdGhzKSB7XG4gICAgICAgICAgICBjb25zdCBwSnNvblBhdGggPSBwYXRoLnJlc29sdmUocCwgXCJwYWNrYWdlLmpzb25cIik7XG4gICAgICAgICAgICBjb25zdCBwSnNvbiA9IGF3YWl0IHJlYWRQYWNrYWdlSnNvbihwSnNvblBhdGgpO1xuICAgICAgICAgICAgaWYgKCFwSnNvbikge1xuICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgICAgYHNraXBwaW5nICR7cH0gYmVjYXVzZSB0aGVyZSdzIG5vIHBhY2thZ2UuanNvbiBmaWxlYCxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGlmICghcEpzb24ubmFtZSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICAgIGBcIm5hbWVcIiBmaWVsZCBpbiAke3BKc29uUGF0aH0gc2hvdWxkIGJlIGRlZmluZWRgLFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKHBKc29uLnByaXZhdGUpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYHNraXBwaW5nICR7cH0gYmVjYXVzZSB0aGUgcGFja2FnZSBpcyBwcml2YXRlYCk7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBjb25zdCB7IGZpbGVuYW1lLCBzaGFzdW0gfSA9IGF3YWl0IHJlc29sdmVUYXJiYWxsKFxuICAgICAgICAgICAgICAgIHBhY2tNZXRob2QsXG4gICAgICAgICAgICAgICAgcCxcbiAgICAgICAgICAgICAgICBwSnNvbixcbiAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICBzaGFzdW1zW3BKc29uLm5hbWVdID0gc2hhc3VtO1xuXG4gICAgICAgICAgICAgIGNvbnN0IG91dHB1dFBrZyA9IG91dHB1dE1ldGFkYXRhLnBhY2thZ2VzLmZpbmQoXG4gICAgICAgICAgICAgICAgKHApID0+IHAubmFtZSA9PT0gcEpzb24ubmFtZSxcbiAgICAgICAgICAgICAgKSE7XG4gICAgICAgICAgICAgIG91dHB1dFBrZy5zaGFzdW0gPSBzaGFzdW07XG5cbiAgICAgICAgICAgICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLnJlc29sdmUocCwgZmlsZW5hbWUpO1xuICAgICAgICAgICAgICBjb25zdCBidWZmZXIgPSBhd2FpdCBmcy5yZWFkRmlsZShmaWxlUGF0aCk7XG5cbiAgICAgICAgICAgICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtidWZmZXJdLCB7XG4gICAgICAgICAgICAgICAgdHlwZTogXCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW1cIixcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZChgcGFja2FnZToke3BKc29uLm5hbWV9YCwgYmxvYiwgZmlsZW5hbWUpO1xuXG4gICAgICAgICAgICAgIGF3YWl0IGZzLnJtKGZpbGVQYXRoKTtcbiAgICAgICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICAgIGF3YWl0IHJlc3RvcmVNYXAuZ2V0KHApPy4oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBmb3JtRGF0YVBhY2thZ2VzU2l6ZSA9IFsuLi5mb3JtRGF0YS5lbnRyaWVzKCldLnJlZHVjZShcbiAgICAgICAgICAgIChwcmV2LCBbXywgZW50cnldKSA9PiBwcmV2ICsgZ2V0Rm9ybUVudHJ5U2l6ZShlbnRyeSksXG4gICAgICAgICAgICAwLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICAvLyBtdWx0aXBhcnQgdXBsb2FkaW5nXG4gICAgICAgICAgaWYgKGZvcm1EYXRhUGFja2FnZXNTaXplID4gMTAyNCAqIDEwMjQgKiA5OSkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBbbmFtZSwgZW50cnldIG9mIGZvcm1EYXRhKSB7XG4gICAgICAgICAgICAgIGlmIChuYW1lLnN0YXJ0c1dpdGgoXCJwYWNrYWdlOlwiKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpbGUgPSBlbnRyeSBhcyBGaWxlO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNodW5rU2l6ZSA9IDEwMjQgKiAxMDI0ICogNTtcbiAgICAgICAgICAgICAgICBpZiAoZmlsZS5zaXplIDw9IGNodW5rU2l6ZSkge1xuICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHRvdGFsQ2h1bmtzID0gTWF0aC5jZWlsKGZpbGUuc2l6ZSAvIGNodW5rU2l6ZSk7XG4gICAgICAgICAgICAgICAgY29uc3QgY3JlYXRlTXVsdGlwYXJ0UmVzID0gYXdhaXQgZmV0Y2goY3JlYXRlTXVsdGlwYXJ0LCB7XG4gICAgICAgICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICBcInNiLWtleVwiOiBrZXksXG4gICAgICAgICAgICAgICAgICAgIFwic2ItbmFtZVwiOiBuYW1lLnNsaWNlKFwicGFja2FnZTpcIi5sZW5ndGgpLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAoIWNyZWF0ZU11bHRpcGFydFJlcy5vaykge1xuICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihhd2FpdCBjcmVhdGVNdWx0aXBhcnRSZXMudGV4dCgpKTtcbiAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCB7IGtleTogdXBsb2FkS2V5LCBpZDogdXBsb2FkSWQgfSA9XG4gICAgICAgICAgICAgICAgICBhd2FpdCBjcmVhdGVNdWx0aXBhcnRSZXMuanNvbigpO1xuXG4gICAgICAgICAgICAgICAgaW50ZXJmYWNlIFIyVXBsb2FkZWRQYXJ0IHtcbiAgICAgICAgICAgICAgICAgIHBhcnROdW1iZXI6IG51bWJlcjtcbiAgICAgICAgICAgICAgICAgIGV0YWc6IHN0cmluZztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgdXBsb2FkZWRQYXJ0czogUjJVcGxvYWRlZFBhcnRbXSA9IFtdO1xuXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0b3RhbENodW5rczsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBzdGFydCA9IGkgKiBjaHVua1NpemU7XG4gICAgICAgICAgICAgICAgICBjb25zdCBlbmQgPSBNYXRoLm1pbihmaWxlLnNpemUsIHN0YXJ0ICsgY2h1bmtTaXplKTtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGNodW5rID0gZmlsZS5zbGljZShzdGFydCwgZW5kKTtcblxuICAgICAgICAgICAgICAgICAgY29uc3QgdXBsb2FkTXVsdGlwYXJ0UmVzID0gYXdhaXQgZmV0Y2godXBsb2FkTXVsdGlwYXJ0LCB7XG4gICAgICAgICAgICAgICAgICAgIG1ldGhvZDogXCJQVVRcIixcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICAgIGtleTogdXBsb2FkS2V5LFxuICAgICAgICAgICAgICAgICAgICAgIGlkOiB1cGxvYWRJZCxcbiAgICAgICAgICAgICAgICAgICAgICBcInBhcnQtbnVtYmVyXCI6IGAke2kgKyAxfWAsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGJvZHk6IGNodW5rLFxuICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgIGlmICghdXBsb2FkTXVsdGlwYXJ0UmVzLm9rKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgYEVycm9yIHVwbG9hZGluZyBwYXJ0ICR7aSArIDF9OiAke2F3YWl0IHVwbG9hZE11bHRpcGFydFJlcy50ZXh0KCl9YCxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBjb25zdCB7IHBhcnQgfSA9IGF3YWl0IHVwbG9hZE11bHRpcGFydFJlcy5qc29uKCk7XG4gICAgICAgICAgICAgICAgICB1cGxvYWRlZFBhcnRzLnB1c2gocGFydCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IGNvbXBsZXRlTXVsdGlwYXJ0UmVzID0gYXdhaXQgZmV0Y2goY29tcGxldGVNdWx0aXBhcnQsIHtcbiAgICAgICAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgIGtleTogdXBsb2FkS2V5LFxuICAgICAgICAgICAgICAgICAgICBpZDogdXBsb2FkSWQsXG4gICAgICAgICAgICAgICAgICAgIFwidXBsb2FkZWQtcGFydHNcIjogSlNPTi5zdHJpbmdpZnkodXBsb2FkZWRQYXJ0cyksXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmICghY29tcGxldGVNdWx0aXBhcnRSZXMub2spIHtcbiAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgICAgIGBFcnJvciBjb21wbGV0aW5nICR7a2V5fTogJHthd2FpdCBjb21wbGV0ZU11bHRpcGFydFJlcy50ZXh0KCl9YCxcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgeyBrZXk6IGNvbXBsZXRpb25LZXkgfSA9XG4gICAgICAgICAgICAgICAgICBhd2FpdCBjb21wbGV0ZU11bHRpcGFydFJlcy5qc29uKCk7XG5cbiAgICAgICAgICAgICAgICBmb3JtRGF0YS5zZXQobmFtZSwgYG9iamVjdDoke2NvbXBsZXRpb25LZXl9YCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCByZXMgPSBhd2FpdCBmZXRjaChwdWJsaXNoVXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICBcInNiLWNvbW1lbnRcIjogY29tbWVudCxcbiAgICAgICAgICAgICAgXCJzYi1jb21wYWN0XCI6IGAke2lzQ29tcGFjdH1gLFxuICAgICAgICAgICAgICBcInNiLWtleVwiOiBrZXksXG4gICAgICAgICAgICAgIFwic2Itc2hhc3Vtc1wiOiBKU09OLnN0cmluZ2lmeShzaGFzdW1zKSxcbiAgICAgICAgICAgICAgXCJzYi1ydW4taWRcIjogR0lUSFVCX1JVTl9JRCxcbiAgICAgICAgICAgICAgXCJzYi1wYWNrYWdlLW1hbmFnZXJcIjogc2VsZWN0ZWRQYWNrYWdlTWFuYWdlcixcbiAgICAgICAgICAgICAgXCJzYi1vbmx5LXRlbXBsYXRlc1wiOiBgJHtpc09ubHlUZW1wbGF0ZXN9YCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBib2R5OiBmb3JtRGF0YSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBjb25zdCBsYXRlclJlcyA9IGF3YWl0IHJlcy5jbG9uZSgpLmpzb24oKTtcbiAgICAgICAgICBhc3NlcnQuZXF1YWwoXG4gICAgICAgICAgICByZXMuc3RhdHVzLFxuICAgICAgICAgICAgMjAwLFxuICAgICAgICAgICAgYHB1Ymxpc2hpbmcgZmFpbGVkOiAke2F3YWl0IHJlcy50ZXh0KCl9YCxcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgY29uc29sZS53YXJuKFwiXFxuXCIpO1xuICAgICAgICAgIGNvbnNvbGUud2FybihcIlx1MjZBMVx1RkUwRiBZb3VyIG5wbSBwYWNrYWdlcyBhcmUgcHVibGlzaGVkLlxcblwiKTtcblxuICAgICAgICAgIGNvbnN0IHBhY2thZ2VMb2dzID0gWy4uLmZvcm1EYXRhLmtleXMoKV1cbiAgICAgICAgICAgIC5maWx0ZXIoKGspID0+IGsuc3RhcnRzV2l0aChcInBhY2thZ2U6XCIpKVxuICAgICAgICAgICAgLm1hcCgobmFtZSwgaSkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBwYWNrYWdlTmFtZSA9IG5hbWUuc2xpY2UoXCJwYWNrYWdlOlwiLmxlbmd0aCk7XG4gICAgICAgICAgICAgIGNvbnN0IHVybCA9IG5ldyBVUkwobGF0ZXJSZXMudXJsc1tpXSk7XG4gICAgICAgICAgICAgIGNvbnN0IHB1YmxpbnRVcmwgPSBuZXcgVVJMKFxuICAgICAgICAgICAgICAgIGAvcGtnLnByLm5ldyR7dXJsLnBhdGhuYW1lfWAsXG4gICAgICAgICAgICAgICAgXCJodHRwczovL3B1YmxpbnQuZGV2XCIsXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIHJldHVybiBgJHtwYWNrYWdlTmFtZX06XG4tIHNoYTogJHtzaGFzdW1zW3BhY2thZ2VOYW1lXX1cbi0gcHVibGludDogJHtwdWJsaW50VXJsfVxuLSBucG06IG5wbSBpICR7dXJsfWA7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmpvaW4oXCJcXG5cXG5cIik7XG5cbiAgICAgICAgICBjb25zb2xlLndhcm4ocGFja2FnZUxvZ3MpO1xuXG4gICAgICAgICAgY29uc3Qgb3V0cHV0ID0gSlNPTi5zdHJpbmdpZnkob3V0cHV0TWV0YWRhdGEsIG51bGwsIDIpO1xuICAgICAgICAgIGlmIChwcmludEpzb24pIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKG91dHB1dCk7IC8vIExvZyBvdXRwdXQgZm9yIHBpcGluZ1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoc2F2ZUpzb24pIHtcbiAgICAgICAgICAgIGF3YWl0IGZzLndyaXRlRmlsZShqc29uRmlsZVBhdGgsIG91dHB1dCk7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oYG1ldGFkYXRhIHdyaXR0ZW4gdG8gJHtqc29uRmlsZVBhdGh9YCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9LFxuICAgIGxpbms6ICgpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG1ldGE6IHt9LFxuICAgICAgICBydW46ICgpID0+IHtcbiAgICAgICAgICAvLyBub29wXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH0sXG4gIH0sXG59KTtcblxucnVuTWFpbihtYWluKVxuICAudGhlbigoKSA9PiBwcm9jZXNzLmV4aXQoMCkpXG4gIC5jYXRjaCgoKSA9PiBwcm9jZXNzLmV4aXQoMSkpO1xuXG50eXBlIFBhY2tNZXRob2QgPSBcIm5wbVwiIHwgXCJwbnBtXCIgfCBcInlhcm5cIjtcblxuYXN5bmMgZnVuY3Rpb24gcmVzb2x2ZVRhcmJhbGwocG06IFBhY2tNZXRob2QsIHA6IHN0cmluZywgcEpzb246IFBhY2thZ2VKc29uKSB7XG4gIGxldCBjbWQgPSBgJHtwbX0gcGFja2A7XG4gIGxldCBmaWxlbmFtZSA9IGAke3BKc29uLm5hbWUhLnJlcGxhY2UoXCIvXCIsIFwiLVwiKX0tJHtwSnNvbi52ZXJzaW9ufS50Z3pgO1xuICBpZiAocG0gPT09IFwieWFyblwiKSB7XG4gICAgY21kICs9IGAgLS1maWxlbmFtZSAke2ZpbGVuYW1lfWA7XG4gIH1cbiAgY29uc3QgeyBzdGRvdXQgfSA9IGF3YWl0IGV6U3Bhd24uYXN5bmMoY21kLCB7XG4gICAgc3RkaW86IFwib3ZlcmxhcHBlZFwiLFxuICAgIGN3ZDogcCxcbiAgfSk7XG4gIGNvbnN0IGxpbmVzID0gc3Rkb3V0LnNwbGl0KFwiXFxuXCIpLmZpbHRlcihCb29sZWFuKTtcblxuICBpZiAocG0gIT09IFwieWFyblwiKSB7XG4gICAgZmlsZW5hbWUgPSBsaW5lc1tsaW5lcy5sZW5ndGggLSAxXS50cmltKCk7XG4gIH1cblxuICBjb25zdCBzaGFzdW0gPSBjcmVhdGVIYXNoKFwic2hhMVwiKVxuICAgIC51cGRhdGUoYXdhaXQgZnMucmVhZEZpbGUocGF0aC5yZXNvbHZlKHAsIGZpbGVuYW1lKSkpXG4gICAgLmRpZ2VzdChcImhleFwiKTtcblxuICByZXR1cm4geyBmaWxlbmFtZSwgc2hhc3VtIH07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHdyaXRlRGVwcyhcbiAgcDogc3RyaW5nLFxuICBwSnNvbkNvbnRlbnRzOiBzdHJpbmcsXG4gIHBKc29uOiBQYWNrYWdlSnNvbixcbiAgZGVwczogTWFwPHN0cmluZywgc3RyaW5nPixcbiAgcmVhbERlcHM6IE1hcDxzdHJpbmcsIHN0cmluZz4gfCBudWxsLFxuKSB7XG4gIGNvbnN0IHBKc29uUGF0aCA9IHBhdGgucmVzb2x2ZShwLCBcInBhY2thZ2UuanNvblwiKTtcblxuICBoaWphY2tEZXBzKGRlcHMsIHBKc29uLmRlcGVuZGVuY2llcyk7XG4gIGhpamFja0RlcHMoZGVwcywgcEpzb24uZGV2RGVwZW5kZW5jaWVzKTtcbiAgaGlqYWNrRGVwcyhkZXBzLCBwSnNvbi5vcHRpb25hbERlcGVuZGVuY2llcyk7XG5cbiAgaWYgKHJlYWxEZXBzKSB7XG4gICAgaGlqYWNrRGVwcyhyZWFsRGVwcywgcEpzb24ucGVlckRlcGVuZGVuY2llcyk7XG4gIH1cblxuICBhd2FpdCB3cml0ZVBhY2thZ2VKU09OKHBKc29uUGF0aCwgcEpzb24pO1xuXG4gIHJldHVybiAoKSA9PiBmcy53cml0ZUZpbGUocEpzb25QYXRoLCBwSnNvbkNvbnRlbnRzKTtcbn1cblxuZnVuY3Rpb24gaGlqYWNrRGVwcyhcbiAgbmV3RGVwczogTWFwPHN0cmluZywgc3RyaW5nPixcbiAgb2xkRGVwcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4pIHtcbiAgaWYgKCFvbGREZXBzKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGZvciAoY29uc3QgW25ld0RlcCwgdXJsXSBvZiBuZXdEZXBzKSB7XG4gICAgaWYgKG5ld0RlcCBpbiBvbGREZXBzKSB7XG4gICAgICBvbGREZXBzW25ld0RlcF0gPSB1cmw7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGdldEZvcm1FbnRyeVNpemUoZW50cnk6IEZvcm1EYXRhRW50cnlWYWx1ZSkge1xuICBpZiAodHlwZW9mIGVudHJ5ID09PSBcInN0cmluZ1wiKSB7XG4gICAgcmV0dXJuIGVudHJ5Lmxlbmd0aDtcbiAgfVxuICByZXR1cm4gZW50cnkuc2l6ZTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gdmVyaWZ5Q29tcGFjdE1vZGUocGFja2FnZU5hbWU6IHN0cmluZykge1xuICBsZXQgbWFuaWZlc3Q6IFBhY2thZ2VNYW5pZmVzdDtcblxuICB0cnkge1xuICAgIG1hbmlmZXN0ID0gYXdhaXQgZ2V0UGFja2FnZU1hbmlmZXN0KHBhY2thZ2VOYW1lKTtcbiAgfSBjYXRjaCB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYHBrZy1wci1uZXcgY2Fubm90IHJlc29sdmUgJHtwYWNrYWdlTmFtZX0gZnJvbSBucG0uIC0tY29tcGFjdCBmbGFnIGRlcGVuZHMgb24gdGhlIHBhY2thZ2UgYmVpbmcgYXZhaWxhYmxlIGluIG5wbS5cbk1ha2Ugc3VyZSB0byBoYXZlIHlvdXIgcGFja2FnZSBvbiBucG0gZmlyc3QuYCxcbiAgICApO1xuICB9XG5cbiAgY29uc3QgaW5zdHJ1Y3Rpb24gPSBgTWFrZSBzdXJlIHRvIGNvbmZpZ3VyZSB0aGUgJ3JlcG9zaXRvcnknIC8gJ3JlcG9zaXRvcnkudXJsJyBmaWVsZCBpbiBpdHMgcGFja2FnZS5qc29uIHByb3Blcmx5LlxuU2VlIGh0dHBzOi8vZG9jcy5ucG1qcy5jb20vY2xpL3YxMC9jb25maWd1cmluZy1ucG0vcGFja2FnZS1qc29uI3JlcG9zaXRvcnkgZm9yIGRldGFpbHMuYDtcblxuICBjb25zdCByZXBvc2l0b3J5ID0gZXh0cmFjdFJlcG9zaXRvcnkobWFuaWZlc3QpO1xuICBpZiAoIXJlcG9zaXRvcnkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgcGtnLXByLW5ldyBjYW5ub3QgZXh0cmFjdCB0aGUgcmVwb3NpdG9yeSBsaW5rIGZyb20gdGhlICR7cGFja2FnZU5hbWV9IG1hbmlmZXN0LiAtLWNvbXBhY3QgZmxhZyByZXF1aXJlcyB0aGUgbGluayB0byBiZSBwcmVzZW50LlxuJHtpbnN0cnVjdGlvbn1gLFxuICAgICk7XG4gIH1cblxuICBjb25zdCBtYXRjaCA9IGV4dHJhY3RPd25lckFuZFJlcG8ocmVwb3NpdG9yeSk7XG4gIGlmICghbWF0Y2gpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgcGtnLXByLW5ldyBjYW5ub3QgZXh0cmFjdCB0aGUgb3duZXIgYW5kIHJlcG8gbmFtZXMgZnJvbSB0aGUgJHtwYWNrYWdlTmFtZX0gcmVwb3NpdG9yeSBsaW5rOiAke3JlcG9zaXRvcnl9LiAtLWNvbXBhY3QgZmxhZyByZXF1aXJlcyB0aGVzZSBuYW1lcy5cbiR7aW5zdHJ1Y3Rpb259YCxcbiAgICApO1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHRyeVJlYWRGaWxlKHA6IHN0cmluZykge1xuICB0cnkge1xuICAgIHJldHVybiBhd2FpdCBmcy5yZWFkRmlsZShwLCBcInV0ZjhcIik7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJlYWRQYWNrYWdlSnNvbihwOiBzdHJpbmcpIHtcbiAgY29uc3QgY29udGVudHMgPSBhd2FpdCB0cnlSZWFkRmlsZShwKTtcbiAgaWYgKGNvbnRlbnRzID09PSBudWxsKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgdHJ5IHtcbiAgICByZXR1cm4gcGFyc2VQYWNrYWdlSnNvbihjb250ZW50cyk7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbmZ1bmN0aW9uIHBhcnNlUGFja2FnZUpzb24oY29udGVudHM6IHN0cmluZykge1xuICB0cnkge1xuICAgIHJldHVybiBKU09OLnBhcnNlKGNvbnRlbnRzKSBhcyBQYWNrYWdlSnNvbjtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cbiIsICJjb25zdCBkZWZhdWx0cyA9IE9iamVjdC5mcmVlemUoe1xuICBpZ25vcmVVbmtub3duOiBmYWxzZSxcbiAgcmVzcGVjdFR5cGU6IGZhbHNlLFxuICByZXNwZWN0RnVuY3Rpb25OYW1lczogZmFsc2UsXG4gIHJlc3BlY3RGdW5jdGlvblByb3BlcnRpZXM6IGZhbHNlLFxuICB1bm9yZGVyZWRPYmplY3RzOiB0cnVlLFxuICB1bm9yZGVyZWRBcnJheXM6IGZhbHNlLFxuICB1bm9yZGVyZWRTZXRzOiBmYWxzZSxcbiAgZXhjbHVkZUtleXM6IHZvaWQgMCxcbiAgZXhjbHVkZVZhbHVlczogdm9pZCAwLFxuICByZXBsYWNlcjogdm9pZCAwXG59KTtcbmZ1bmN0aW9uIG9iamVjdEhhc2gob2JqZWN0LCBvcHRpb25zKSB7XG4gIGlmIChvcHRpb25zKSB7XG4gICAgb3B0aW9ucyA9IHsgLi4uZGVmYXVsdHMsIC4uLm9wdGlvbnMgfTtcbiAgfSBlbHNlIHtcbiAgICBvcHRpb25zID0gZGVmYXVsdHM7XG4gIH1cbiAgY29uc3QgaGFzaGVyID0gY3JlYXRlSGFzaGVyKG9wdGlvbnMpO1xuICBoYXNoZXIuZGlzcGF0Y2gob2JqZWN0KTtcbiAgcmV0dXJuIGhhc2hlci50b1N0cmluZygpO1xufVxuY29uc3QgZGVmYXVsdFByb3RvdHlwZXNLZXlzID0gT2JqZWN0LmZyZWV6ZShbXG4gIFwicHJvdG90eXBlXCIsXG4gIFwiX19wcm90b19fXCIsXG4gIFwiY29uc3RydWN0b3JcIlxuXSk7XG5mdW5jdGlvbiBjcmVhdGVIYXNoZXIob3B0aW9ucykge1xuICBsZXQgYnVmZiA9IFwiXCI7XG4gIGxldCBjb250ZXh0ID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTtcbiAgY29uc3Qgd3JpdGUgPSAoc3RyKSA9PiB7XG4gICAgYnVmZiArPSBzdHI7XG4gIH07XG4gIHJldHVybiB7XG4gICAgdG9TdHJpbmcoKSB7XG4gICAgICByZXR1cm4gYnVmZjtcbiAgICB9LFxuICAgIGdldENvbnRleHQoKSB7XG4gICAgICByZXR1cm4gY29udGV4dDtcbiAgICB9LFxuICAgIGRpc3BhdGNoKHZhbHVlKSB7XG4gICAgICBpZiAob3B0aW9ucy5yZXBsYWNlcikge1xuICAgICAgICB2YWx1ZSA9IG9wdGlvbnMucmVwbGFjZXIodmFsdWUpO1xuICAgICAgfVxuICAgICAgY29uc3QgdHlwZSA9IHZhbHVlID09PSBudWxsID8gXCJudWxsXCIgOiB0eXBlb2YgdmFsdWU7XG4gICAgICByZXR1cm4gdGhpc1t0eXBlXSh2YWx1ZSk7XG4gICAgfSxcbiAgICBvYmplY3Qob2JqZWN0KSB7XG4gICAgICBpZiAob2JqZWN0ICYmIHR5cGVvZiBvYmplY3QudG9KU09OID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub2JqZWN0KG9iamVjdC50b0pTT04oKSk7XG4gICAgICB9XG4gICAgICBjb25zdCBvYmpTdHJpbmcgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqZWN0KTtcbiAgICAgIGxldCBvYmpUeXBlID0gXCJcIjtcbiAgICAgIGNvbnN0IG9iamVjdExlbmd0aCA9IG9ialN0cmluZy5sZW5ndGg7XG4gICAgICBpZiAob2JqZWN0TGVuZ3RoIDwgMTApIHtcbiAgICAgICAgb2JqVHlwZSA9IFwidW5rbm93bjpbXCIgKyBvYmpTdHJpbmcgKyBcIl1cIjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG9ialR5cGUgPSBvYmpTdHJpbmcuc2xpY2UoOCwgb2JqZWN0TGVuZ3RoIC0gMSk7XG4gICAgICB9XG4gICAgICBvYmpUeXBlID0gb2JqVHlwZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgbGV0IG9iamVjdE51bWJlciA9IG51bGw7XG4gICAgICBpZiAoKG9iamVjdE51bWJlciA9IGNvbnRleHQuZ2V0KG9iamVjdCkpID09PSB2b2lkIDApIHtcbiAgICAgICAgY29udGV4dC5zZXQob2JqZWN0LCBjb250ZXh0LnNpemUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2goXCJbQ0lSQ1VMQVI6XCIgKyBvYmplY3ROdW1iZXIgKyBcIl1cIik7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIEJ1ZmZlciAhPT0gXCJ1bmRlZmluZWRcIiAmJiBCdWZmZXIuaXNCdWZmZXIgJiYgQnVmZmVyLmlzQnVmZmVyKG9iamVjdCkpIHtcbiAgICAgICAgd3JpdGUoXCJidWZmZXI6XCIpO1xuICAgICAgICByZXR1cm4gd3JpdGUob2JqZWN0LnRvU3RyaW5nKFwidXRmOFwiKSk7XG4gICAgICB9XG4gICAgICBpZiAob2JqVHlwZSAhPT0gXCJvYmplY3RcIiAmJiBvYmpUeXBlICE9PSBcImZ1bmN0aW9uXCIgJiYgb2JqVHlwZSAhPT0gXCJhc3luY2Z1bmN0aW9uXCIpIHtcbiAgICAgICAgaWYgKHRoaXNbb2JqVHlwZV0pIHtcbiAgICAgICAgICB0aGlzW29ialR5cGVdKG9iamVjdCk7XG4gICAgICAgIH0gZWxzZSBpZiAoIW9wdGlvbnMuaWdub3JlVW5rbm93bikge1xuICAgICAgICAgIHRoaXMudW5rb3duKG9iamVjdCwgb2JqVHlwZSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxldCBrZXlzID0gT2JqZWN0LmtleXMob2JqZWN0KTtcbiAgICAgICAgaWYgKG9wdGlvbnMudW5vcmRlcmVkT2JqZWN0cykge1xuICAgICAgICAgIGtleXMgPSBrZXlzLnNvcnQoKTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgZXh0cmFLZXlzID0gW107XG4gICAgICAgIGlmIChvcHRpb25zLnJlc3BlY3RUeXBlICE9PSBmYWxzZSAmJiAhaXNOYXRpdmVGdW5jdGlvbihvYmplY3QpKSB7XG4gICAgICAgICAgZXh0cmFLZXlzID0gZGVmYXVsdFByb3RvdHlwZXNLZXlzO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zLmV4Y2x1ZGVLZXlzKSB7XG4gICAgICAgICAga2V5cyA9IGtleXMuZmlsdGVyKChrZXkpID0+IHtcbiAgICAgICAgICAgIHJldHVybiAhb3B0aW9ucy5leGNsdWRlS2V5cyhrZXkpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIGV4dHJhS2V5cyA9IGV4dHJhS2V5cy5maWx0ZXIoKGtleSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuICFvcHRpb25zLmV4Y2x1ZGVLZXlzKGtleSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgd3JpdGUoXCJvYmplY3Q6XCIgKyAoa2V5cy5sZW5ndGggKyBleHRyYUtleXMubGVuZ3RoKSArIFwiOlwiKTtcbiAgICAgICAgY29uc3QgZGlzcGF0Y2hGb3JLZXkgPSAoa2V5KSA9PiB7XG4gICAgICAgICAgdGhpcy5kaXNwYXRjaChrZXkpO1xuICAgICAgICAgIHdyaXRlKFwiOlwiKTtcbiAgICAgICAgICBpZiAoIW9wdGlvbnMuZXhjbHVkZVZhbHVlcykge1xuICAgICAgICAgICAgdGhpcy5kaXNwYXRjaChvYmplY3Rba2V5XSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHdyaXRlKFwiLFwiKTtcbiAgICAgICAgfTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgICAgICAgIGRpc3BhdGNoRm9yS2V5KGtleSk7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgZXh0cmFLZXlzKSB7XG4gICAgICAgICAgZGlzcGF0Y2hGb3JLZXkoa2V5KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgYXJyYXkoYXJyLCB1bm9yZGVyZWQpIHtcbiAgICAgIHVub3JkZXJlZCA9IHVub3JkZXJlZCA9PT0gdm9pZCAwID8gb3B0aW9ucy51bm9yZGVyZWRBcnJheXMgIT09IGZhbHNlIDogdW5vcmRlcmVkO1xuICAgICAgd3JpdGUoXCJhcnJheTpcIiArIGFyci5sZW5ndGggKyBcIjpcIik7XG4gICAgICBpZiAoIXVub3JkZXJlZCB8fCBhcnIubGVuZ3RoIDw9IDEpIHtcbiAgICAgICAgZm9yIChjb25zdCBlbnRyeSBvZiBhcnIpIHtcbiAgICAgICAgICB0aGlzLmRpc3BhdGNoKGVudHJ5KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCBjb250ZXh0QWRkaXRpb25zID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTtcbiAgICAgIGNvbnN0IGVudHJpZXMgPSBhcnIubWFwKChlbnRyeSkgPT4ge1xuICAgICAgICBjb25zdCBoYXNoZXIgPSBjcmVhdGVIYXNoZXIob3B0aW9ucyk7XG4gICAgICAgIGhhc2hlci5kaXNwYXRjaChlbnRyeSk7XG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIGhhc2hlci5nZXRDb250ZXh0KCkpIHtcbiAgICAgICAgICBjb250ZXh0QWRkaXRpb25zLnNldChrZXksIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaGFzaGVyLnRvU3RyaW5nKCk7XG4gICAgICB9KTtcbiAgICAgIGNvbnRleHQgPSBjb250ZXh0QWRkaXRpb25zO1xuICAgICAgZW50cmllcy5zb3J0KCk7XG4gICAgICByZXR1cm4gdGhpcy5hcnJheShlbnRyaWVzLCBmYWxzZSk7XG4gICAgfSxcbiAgICBkYXRlKGRhdGUpIHtcbiAgICAgIHJldHVybiB3cml0ZShcImRhdGU6XCIgKyBkYXRlLnRvSlNPTigpKTtcbiAgICB9LFxuICAgIHN5bWJvbChzeW0pIHtcbiAgICAgIHJldHVybiB3cml0ZShcInN5bWJvbDpcIiArIHN5bS50b1N0cmluZygpKTtcbiAgICB9LFxuICAgIHVua293bih2YWx1ZSwgdHlwZSkge1xuICAgICAgd3JpdGUodHlwZSk7XG4gICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHdyaXRlKFwiOlwiKTtcbiAgICAgIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUuZW50cmllcyA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFycmF5KFxuICAgICAgICAgIEFycmF5LmZyb20odmFsdWUuZW50cmllcygpKSxcbiAgICAgICAgICB0cnVlXG4gICAgICAgICAgLyogb3JkZXJlZCAqL1xuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sXG4gICAgZXJyb3IoZXJyKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJlcnJvcjpcIiArIGVyci50b1N0cmluZygpKTtcbiAgICB9LFxuICAgIGJvb2xlYW4oYm9vbCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwiYm9vbDpcIiArIGJvb2wpO1xuICAgIH0sXG4gICAgc3RyaW5nKHN0cmluZykge1xuICAgICAgd3JpdGUoXCJzdHJpbmc6XCIgKyBzdHJpbmcubGVuZ3RoICsgXCI6XCIpO1xuICAgICAgd3JpdGUoc3RyaW5nKTtcbiAgICB9LFxuICAgIGZ1bmN0aW9uKGZuKSB7XG4gICAgICB3cml0ZShcImZuOlwiKTtcbiAgICAgIGlmIChpc05hdGl2ZUZ1bmN0aW9uKGZuKSkge1xuICAgICAgICB0aGlzLmRpc3BhdGNoKFwiW25hdGl2ZV1cIik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmRpc3BhdGNoKGZuLnRvU3RyaW5nKCkpO1xuICAgICAgfVxuICAgICAgaWYgKG9wdGlvbnMucmVzcGVjdEZ1bmN0aW9uTmFtZXMgIT09IGZhbHNlKSB7XG4gICAgICAgIHRoaXMuZGlzcGF0Y2goXCJmdW5jdGlvbi1uYW1lOlwiICsgU3RyaW5nKGZuLm5hbWUpKTtcbiAgICAgIH1cbiAgICAgIGlmIChvcHRpb25zLnJlc3BlY3RGdW5jdGlvblByb3BlcnRpZXMpIHtcbiAgICAgICAgdGhpcy5vYmplY3QoZm4pO1xuICAgICAgfVxuICAgIH0sXG4gICAgbnVtYmVyKG51bWJlcikge1xuICAgICAgcmV0dXJuIHdyaXRlKFwibnVtYmVyOlwiICsgbnVtYmVyKTtcbiAgICB9LFxuICAgIHhtbCh4bWwpIHtcbiAgICAgIHJldHVybiB3cml0ZShcInhtbDpcIiArIHhtbC50b1N0cmluZygpKTtcbiAgICB9LFxuICAgIG51bGwoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJOdWxsXCIpO1xuICAgIH0sXG4gICAgdW5kZWZpbmVkKCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwiVW5kZWZpbmVkXCIpO1xuICAgIH0sXG4gICAgcmVnZXhwKHJlZ2V4KSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJyZWdleDpcIiArIHJlZ2V4LnRvU3RyaW5nKCkpO1xuICAgIH0sXG4gICAgdWludDhhcnJheShhcnIpIHtcbiAgICAgIHdyaXRlKFwidWludDhhcnJheTpcIik7XG4gICAgICByZXR1cm4gdGhpcy5kaXNwYXRjaChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcnIpKTtcbiAgICB9LFxuICAgIHVpbnQ4Y2xhbXBlZGFycmF5KGFycikge1xuICAgICAgd3JpdGUoXCJ1aW50OGNsYW1wZWRhcnJheTpcIik7XG4gICAgICByZXR1cm4gdGhpcy5kaXNwYXRjaChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcnIpKTtcbiAgICB9LFxuICAgIGludDhhcnJheShhcnIpIHtcbiAgICAgIHdyaXRlKFwiaW50OGFycmF5OlwiKTtcbiAgICAgIHJldHVybiB0aGlzLmRpc3BhdGNoKEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFycikpO1xuICAgIH0sXG4gICAgdWludDE2YXJyYXkoYXJyKSB7XG4gICAgICB3cml0ZShcInVpbnQxNmFycmF5OlwiKTtcbiAgICAgIHJldHVybiB0aGlzLmRpc3BhdGNoKEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFycikpO1xuICAgIH0sXG4gICAgaW50MTZhcnJheShhcnIpIHtcbiAgICAgIHdyaXRlKFwiaW50MTZhcnJheTpcIik7XG4gICAgICByZXR1cm4gdGhpcy5kaXNwYXRjaChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcnIpKTtcbiAgICB9LFxuICAgIHVpbnQzMmFycmF5KGFycikge1xuICAgICAgd3JpdGUoXCJ1aW50MzJhcnJheTpcIik7XG4gICAgICByZXR1cm4gdGhpcy5kaXNwYXRjaChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcnIpKTtcbiAgICB9LFxuICAgIGludDMyYXJyYXkoYXJyKSB7XG4gICAgICB3cml0ZShcImludDMyYXJyYXk6XCIpO1xuICAgICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2goQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJyKSk7XG4gICAgfSxcbiAgICBmbG9hdDMyYXJyYXkoYXJyKSB7XG4gICAgICB3cml0ZShcImZsb2F0MzJhcnJheTpcIik7XG4gICAgICByZXR1cm4gdGhpcy5kaXNwYXRjaChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcnIpKTtcbiAgICB9LFxuICAgIGZsb2F0NjRhcnJheShhcnIpIHtcbiAgICAgIHdyaXRlKFwiZmxvYXQ2NGFycmF5OlwiKTtcbiAgICAgIHJldHVybiB0aGlzLmRpc3BhdGNoKEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFycikpO1xuICAgIH0sXG4gICAgYXJyYXlidWZmZXIoYXJyKSB7XG4gICAgICB3cml0ZShcImFycmF5YnVmZmVyOlwiKTtcbiAgICAgIHJldHVybiB0aGlzLmRpc3BhdGNoKG5ldyBVaW50OEFycmF5KGFycikpO1xuICAgIH0sXG4gICAgdXJsKHVybCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwidXJsOlwiICsgdXJsLnRvU3RyaW5nKCkpO1xuICAgIH0sXG4gICAgbWFwKG1hcCkge1xuICAgICAgd3JpdGUoXCJtYXA6XCIpO1xuICAgICAgY29uc3QgYXJyID0gWy4uLm1hcF07XG4gICAgICByZXR1cm4gdGhpcy5hcnJheShhcnIsIG9wdGlvbnMudW5vcmRlcmVkU2V0cyAhPT0gZmFsc2UpO1xuICAgIH0sXG4gICAgc2V0KHNldCkge1xuICAgICAgd3JpdGUoXCJzZXQ6XCIpO1xuICAgICAgY29uc3QgYXJyID0gWy4uLnNldF07XG4gICAgICByZXR1cm4gdGhpcy5hcnJheShhcnIsIG9wdGlvbnMudW5vcmRlcmVkU2V0cyAhPT0gZmFsc2UpO1xuICAgIH0sXG4gICAgZmlsZShmaWxlKSB7XG4gICAgICB3cml0ZShcImZpbGU6XCIpO1xuICAgICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2goW2ZpbGUubmFtZSwgZmlsZS5zaXplLCBmaWxlLnR5cGUsIGZpbGUubGFzdE1vZGZpZWRdKTtcbiAgICB9LFxuICAgIGJsb2IoKSB7XG4gICAgICBpZiAob3B0aW9ucy5pZ25vcmVVbmtub3duKSB7XG4gICAgICAgIHJldHVybiB3cml0ZShcIltibG9iXVwiKTtcbiAgICAgIH1cbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0hhc2hpbmcgQmxvYiBvYmplY3RzIGlzIGN1cnJlbnRseSBub3Qgc3VwcG9ydGVkXFxuVXNlIFwib3B0aW9ucy5yZXBsYWNlclwiIG9yIFwib3B0aW9ucy5pZ25vcmVVbmtub3duXCJcXG4nXG4gICAgICApO1xuICAgIH0sXG4gICAgZG9td2luZG93KCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwiZG9td2luZG93XCIpO1xuICAgIH0sXG4gICAgYmlnaW50KG51bWJlcikge1xuICAgICAgcmV0dXJuIHdyaXRlKFwiYmlnaW50OlwiICsgbnVtYmVyLnRvU3RyaW5nKCkpO1xuICAgIH0sXG4gICAgLyogTm9kZS5qcyBzdGFuZGFyZCBuYXRpdmUgb2JqZWN0cyAqL1xuICAgIHByb2Nlc3MoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJwcm9jZXNzXCIpO1xuICAgIH0sXG4gICAgdGltZXIoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJ0aW1lclwiKTtcbiAgICB9LFxuICAgIHBpcGUoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJwaXBlXCIpO1xuICAgIH0sXG4gICAgdGNwKCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwidGNwXCIpO1xuICAgIH0sXG4gICAgdWRwKCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwidWRwXCIpO1xuICAgIH0sXG4gICAgdHR5KCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwidHR5XCIpO1xuICAgIH0sXG4gICAgc3RhdHdhdGNoZXIoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJzdGF0d2F0Y2hlclwiKTtcbiAgICB9LFxuICAgIHNlY3VyZWNvbnRleHQoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJzZWN1cmVjb250ZXh0XCIpO1xuICAgIH0sXG4gICAgY29ubmVjdGlvbigpIHtcbiAgICAgIHJldHVybiB3cml0ZShcImNvbm5lY3Rpb25cIik7XG4gICAgfSxcbiAgICB6bGliKCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwiemxpYlwiKTtcbiAgICB9LFxuICAgIGNvbnRleHQoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJjb250ZXh0XCIpO1xuICAgIH0sXG4gICAgbm9kZXNjcmlwdCgpIHtcbiAgICAgIHJldHVybiB3cml0ZShcIm5vZGVzY3JpcHRcIik7XG4gICAgfSxcbiAgICBodHRwcGFyc2VyKCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwiaHR0cHBhcnNlclwiKTtcbiAgICB9LFxuICAgIGRhdGF2aWV3KCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwiZGF0YXZpZXdcIik7XG4gICAgfSxcbiAgICBzaWduYWwoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJzaWduYWxcIik7XG4gICAgfSxcbiAgICBmc2V2ZW50KCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwiZnNldmVudFwiKTtcbiAgICB9LFxuICAgIHRsc3dyYXAoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJ0bHN3cmFwXCIpO1xuICAgIH1cbiAgfTtcbn1cbmNvbnN0IG5hdGl2ZUZ1bmMgPSBcIltuYXRpdmUgY29kZV0gfVwiO1xuY29uc3QgbmF0aXZlRnVuY0xlbmd0aCA9IG5hdGl2ZUZ1bmMubGVuZ3RoO1xuZnVuY3Rpb24gaXNOYXRpdmVGdW5jdGlvbihmKSB7XG4gIGlmICh0eXBlb2YgZiAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiBGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChmKS5zbGljZSgtbmF0aXZlRnVuY0xlbmd0aCkgPT09IG5hdGl2ZUZ1bmM7XG59XG5cbmNsYXNzIFdvcmRBcnJheSB7XG4gIGNvbnN0cnVjdG9yKHdvcmRzLCBzaWdCeXRlcykge1xuICAgIHdvcmRzID0gdGhpcy53b3JkcyA9IHdvcmRzIHx8IFtdO1xuICAgIHRoaXMuc2lnQnl0ZXMgPSBzaWdCeXRlcyA9PT0gdm9pZCAwID8gd29yZHMubGVuZ3RoICogNCA6IHNpZ0J5dGVzO1xuICB9XG4gIHRvU3RyaW5nKGVuY29kZXIpIHtcbiAgICByZXR1cm4gKGVuY29kZXIgfHwgSGV4KS5zdHJpbmdpZnkodGhpcyk7XG4gIH1cbiAgY29uY2F0KHdvcmRBcnJheSkge1xuICAgIHRoaXMuY2xhbXAoKTtcbiAgICBpZiAodGhpcy5zaWdCeXRlcyAlIDQpIHtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgd29yZEFycmF5LnNpZ0J5dGVzOyBpKyspIHtcbiAgICAgICAgY29uc3QgdGhhdEJ5dGUgPSB3b3JkQXJyYXkud29yZHNbaSA+Pj4gMl0gPj4+IDI0IC0gaSAlIDQgKiA4ICYgMjU1O1xuICAgICAgICB0aGlzLndvcmRzW3RoaXMuc2lnQnl0ZXMgKyBpID4+PiAyXSB8PSB0aGF0Qnl0ZSA8PCAyNCAtICh0aGlzLnNpZ0J5dGVzICsgaSkgJSA0ICogODtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB3b3JkQXJyYXkuc2lnQnl0ZXM7IGogKz0gNCkge1xuICAgICAgICB0aGlzLndvcmRzW3RoaXMuc2lnQnl0ZXMgKyBqID4+PiAyXSA9IHdvcmRBcnJheS53b3Jkc1tqID4+PiAyXTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5zaWdCeXRlcyArPSB3b3JkQXJyYXkuc2lnQnl0ZXM7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgY2xhbXAoKSB7XG4gICAgdGhpcy53b3Jkc1t0aGlzLnNpZ0J5dGVzID4+PiAyXSAmPSA0Mjk0OTY3Mjk1IDw8IDMyIC0gdGhpcy5zaWdCeXRlcyAlIDQgKiA4O1xuICAgIHRoaXMud29yZHMubGVuZ3RoID0gTWF0aC5jZWlsKHRoaXMuc2lnQnl0ZXMgLyA0KTtcbiAgfVxuICBjbG9uZSgpIHtcbiAgICByZXR1cm4gbmV3IFdvcmRBcnJheShbLi4udGhpcy53b3Jkc10pO1xuICB9XG59XG5jb25zdCBIZXggPSB7XG4gIHN0cmluZ2lmeSh3b3JkQXJyYXkpIHtcbiAgICBjb25zdCBoZXhDaGFycyA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgd29yZEFycmF5LnNpZ0J5dGVzOyBpKyspIHtcbiAgICAgIGNvbnN0IGJpdGUgPSB3b3JkQXJyYXkud29yZHNbaSA+Pj4gMl0gPj4+IDI0IC0gaSAlIDQgKiA4ICYgMjU1O1xuICAgICAgaGV4Q2hhcnMucHVzaCgoYml0ZSA+Pj4gNCkudG9TdHJpbmcoMTYpLCAoYml0ZSAmIDE1KS50b1N0cmluZygxNikpO1xuICAgIH1cbiAgICByZXR1cm4gaGV4Q2hhcnMuam9pbihcIlwiKTtcbiAgfVxufTtcbmNvbnN0IEJhc2U2NCA9IHtcbiAgc3RyaW5naWZ5KHdvcmRBcnJheSkge1xuICAgIGNvbnN0IGtleVN0ciA9IFwiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODlcIjtcbiAgICBjb25zdCBiYXNlNjRDaGFycyA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgd29yZEFycmF5LnNpZ0J5dGVzOyBpICs9IDMpIHtcbiAgICAgIGNvbnN0IGJ5dGUxID0gd29yZEFycmF5LndvcmRzW2kgPj4+IDJdID4+PiAyNCAtIGkgJSA0ICogOCAmIDI1NTtcbiAgICAgIGNvbnN0IGJ5dGUyID0gd29yZEFycmF5LndvcmRzW2kgKyAxID4+PiAyXSA+Pj4gMjQgLSAoaSArIDEpICUgNCAqIDggJiAyNTU7XG4gICAgICBjb25zdCBieXRlMyA9IHdvcmRBcnJheS53b3Jkc1tpICsgMiA+Pj4gMl0gPj4+IDI0IC0gKGkgKyAyKSAlIDQgKiA4ICYgMjU1O1xuICAgICAgY29uc3QgdHJpcGxldCA9IGJ5dGUxIDw8IDE2IHwgYnl0ZTIgPDwgOCB8IGJ5dGUzO1xuICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCA0ICYmIGkgKiA4ICsgaiAqIDYgPCB3b3JkQXJyYXkuc2lnQnl0ZXMgKiA4OyBqKyspIHtcbiAgICAgICAgYmFzZTY0Q2hhcnMucHVzaChrZXlTdHIuY2hhckF0KHRyaXBsZXQgPj4+IDYgKiAoMyAtIGopICYgNjMpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGJhc2U2NENoYXJzLmpvaW4oXCJcIik7XG4gIH1cbn07XG5jb25zdCBMYXRpbjEgPSB7XG4gIHBhcnNlKGxhdGluMVN0cikge1xuICAgIGNvbnN0IGxhdGluMVN0ckxlbmd0aCA9IGxhdGluMVN0ci5sZW5ndGg7XG4gICAgY29uc3Qgd29yZHMgPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxhdGluMVN0ckxlbmd0aDsgaSsrKSB7XG4gICAgICB3b3Jkc1tpID4+PiAyXSB8PSAobGF0aW4xU3RyLmNoYXJDb2RlQXQoaSkgJiAyNTUpIDw8IDI0IC0gaSAlIDQgKiA4O1xuICAgIH1cbiAgICByZXR1cm4gbmV3IFdvcmRBcnJheSh3b3JkcywgbGF0aW4xU3RyTGVuZ3RoKTtcbiAgfVxufTtcbmNvbnN0IFV0ZjggPSB7XG4gIHBhcnNlKHV0ZjhTdHIpIHtcbiAgICByZXR1cm4gTGF0aW4xLnBhcnNlKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudCh1dGY4U3RyKSkpO1xuICB9XG59O1xuY2xhc3MgQnVmZmVyZWRCbG9ja0FsZ29yaXRobSB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuX2RhdGEgPSBuZXcgV29yZEFycmF5KCk7XG4gICAgdGhpcy5fbkRhdGFCeXRlcyA9IDA7XG4gICAgdGhpcy5fbWluQnVmZmVyU2l6ZSA9IDA7XG4gICAgdGhpcy5ibG9ja1NpemUgPSA1MTIgLyAzMjtcbiAgfVxuICByZXNldCgpIHtcbiAgICB0aGlzLl9kYXRhID0gbmV3IFdvcmRBcnJheSgpO1xuICAgIHRoaXMuX25EYXRhQnl0ZXMgPSAwO1xuICB9XG4gIF9hcHBlbmQoZGF0YSkge1xuICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgZGF0YSA9IFV0ZjgucGFyc2UoZGF0YSk7XG4gICAgfVxuICAgIHRoaXMuX2RhdGEuY29uY2F0KGRhdGEpO1xuICAgIHRoaXMuX25EYXRhQnl0ZXMgKz0gZGF0YS5zaWdCeXRlcztcbiAgfVxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIF9kb1Byb2Nlc3NCbG9jayhfZGF0YVdvcmRzLCBfb2Zmc2V0KSB7XG4gIH1cbiAgX3Byb2Nlc3MoZG9GbHVzaCkge1xuICAgIGxldCBwcm9jZXNzZWRXb3JkcztcbiAgICBsZXQgbkJsb2Nrc1JlYWR5ID0gdGhpcy5fZGF0YS5zaWdCeXRlcyAvICh0aGlzLmJsb2NrU2l6ZSAqIDQpO1xuICAgIGlmIChkb0ZsdXNoKSB7XG4gICAgICBuQmxvY2tzUmVhZHkgPSBNYXRoLmNlaWwobkJsb2Nrc1JlYWR5KTtcbiAgICB9IGVsc2Uge1xuICAgICAgbkJsb2Nrc1JlYWR5ID0gTWF0aC5tYXgoKG5CbG9ja3NSZWFkeSB8IDApIC0gdGhpcy5fbWluQnVmZmVyU2l6ZSwgMCk7XG4gICAgfVxuICAgIGNvbnN0IG5Xb3Jkc1JlYWR5ID0gbkJsb2Nrc1JlYWR5ICogdGhpcy5ibG9ja1NpemU7XG4gICAgY29uc3QgbkJ5dGVzUmVhZHkgPSBNYXRoLm1pbihuV29yZHNSZWFkeSAqIDQsIHRoaXMuX2RhdGEuc2lnQnl0ZXMpO1xuICAgIGlmIChuV29yZHNSZWFkeSkge1xuICAgICAgZm9yIChsZXQgb2Zmc2V0ID0gMDsgb2Zmc2V0IDwgbldvcmRzUmVhZHk7IG9mZnNldCArPSB0aGlzLmJsb2NrU2l6ZSkge1xuICAgICAgICB0aGlzLl9kb1Byb2Nlc3NCbG9jayh0aGlzLl9kYXRhLndvcmRzLCBvZmZzZXQpO1xuICAgICAgfVxuICAgICAgcHJvY2Vzc2VkV29yZHMgPSB0aGlzLl9kYXRhLndvcmRzLnNwbGljZSgwLCBuV29yZHNSZWFkeSk7XG4gICAgICB0aGlzLl9kYXRhLnNpZ0J5dGVzIC09IG5CeXRlc1JlYWR5O1xuICAgIH1cbiAgICByZXR1cm4gbmV3IFdvcmRBcnJheShwcm9jZXNzZWRXb3JkcywgbkJ5dGVzUmVhZHkpO1xuICB9XG59XG5jbGFzcyBIYXNoZXIgZXh0ZW5kcyBCdWZmZXJlZEJsb2NrQWxnb3JpdGhtIHtcbiAgdXBkYXRlKG1lc3NhZ2VVcGRhdGUpIHtcbiAgICB0aGlzLl9hcHBlbmQobWVzc2FnZVVwZGF0ZSk7XG4gICAgdGhpcy5fcHJvY2VzcygpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIGZpbmFsaXplKG1lc3NhZ2VVcGRhdGUpIHtcbiAgICBpZiAobWVzc2FnZVVwZGF0ZSkge1xuICAgICAgdGhpcy5fYXBwZW5kKG1lc3NhZ2VVcGRhdGUpO1xuICAgIH1cbiAgfVxufVxuXG5jb25zdCBIID0gW1xuICAxNzc5MDMzNzAzLFxuICAtMTE1MDgzMzAxOSxcbiAgMTAxMzkwNDI0MixcbiAgLTE1MjE0ODY1MzQsXG4gIDEzNTk4OTMxMTksXG4gIC0xNjk0MTQ0MzcyLFxuICA1Mjg3MzQ2MzUsXG4gIDE1NDE0NTkyMjVcbl07XG5jb25zdCBLID0gW1xuICAxMTE2MzUyNDA4LFxuICAxODk5NDQ3NDQxLFxuICAtMTI0NTY0MzgyNSxcbiAgLTM3Mzk1NzcyMyxcbiAgOTYxOTg3MTYzLFxuICAxNTA4OTcwOTkzLFxuICAtMTg0MTMzMTU0OCxcbiAgLTE0MjQyMDQwNzUsXG4gIC02NzA1ODYyMTYsXG4gIDMxMDU5ODQwMSxcbiAgNjA3MjI1Mjc4LFxuICAxNDI2ODgxOTg3LFxuICAxOTI1MDc4Mzg4LFxuICAtMjEzMjg4OTA5MCxcbiAgLTE2ODAwNzkxOTMsXG4gIC0xMDQ2NzQ0NzE2LFxuICAtNDU5NTc2ODk1LFxuICAtMjcyNzQyNTIyLFxuICAyNjQzNDcwNzgsXG4gIDYwNDgwNzYyOCxcbiAgNzcwMjU1OTgzLFxuICAxMjQ5MTUwMTIyLFxuICAxNTU1MDgxNjkyLFxuICAxOTk2MDY0OTg2LFxuICAtMTc0MDc0NjQxNCxcbiAgLTE0NzMxMzI5NDcsXG4gIC0xMzQxOTcwNDg4LFxuICAtMTA4NDY1MzYyNSxcbiAgLTk1ODM5NTQwNSxcbiAgLTcxMDQzODU4NSxcbiAgMTEzOTI2OTkzLFxuICAzMzgyNDE4OTUsXG4gIDY2NjMwNzIwNSxcbiAgNzczNTI5OTEyLFxuICAxMjk0NzU3MzcyLFxuICAxMzk2MTgyMjkxLFxuICAxNjk1MTgzNzAwLFxuICAxOTg2NjYxMDUxLFxuICAtMjExNzk0MDk0NixcbiAgLTE4MzgwMTEyNTksXG4gIC0xNTY0NDgxMzc1LFxuICAtMTQ3NDY2NDg4NSxcbiAgLTEwMzUyMzY0OTYsXG4gIC05NDkyMDI1MjUsXG4gIC03Nzg5MDE0NzksXG4gIC02OTQ2MTQ0OTIsXG4gIC0yMDAzOTUzODcsXG4gIDI3NTQyMzM0NCxcbiAgNDMwMjI3NzM0LFxuICA1MDY5NDg2MTYsXG4gIDY1OTA2MDU1NixcbiAgODgzOTk3ODc3LFxuICA5NTgxMzk1NzEsXG4gIDEzMjI4MjIyMTgsXG4gIDE1MzcwMDIwNjMsXG4gIDE3NDc4NzM3NzksXG4gIDE5NTU1NjIyMjIsXG4gIDIwMjQxMDQ4MTUsXG4gIC0yMDY3MjM2ODQ0LFxuICAtMTkzMzExNDg3MixcbiAgLTE4NjY1MzA4MjIsXG4gIC0xNTM4MjMzMTA5LFxuICAtMTA5MDkzNTgxNyxcbiAgLTk2NTY0MTk5OFxuXTtcbmNvbnN0IFcgPSBbXTtcbmNsYXNzIFNIQTI1NiBleHRlbmRzIEhhc2hlciB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKC4uLmFyZ3VtZW50cyk7XG4gICAgdGhpcy5faGFzaCA9IG5ldyBXb3JkQXJyYXkoWy4uLkhdKTtcbiAgfVxuICByZXNldCgpIHtcbiAgICBzdXBlci5yZXNldCgpO1xuICAgIHRoaXMuX2hhc2ggPSBuZXcgV29yZEFycmF5KFsuLi5IXSk7XG4gIH1cbiAgX2RvUHJvY2Vzc0Jsb2NrKE0sIG9mZnNldCkge1xuICAgIGNvbnN0IEgyID0gdGhpcy5faGFzaC53b3JkcztcbiAgICBsZXQgYSA9IEgyWzBdO1xuICAgIGxldCBiID0gSDJbMV07XG4gICAgbGV0IGMgPSBIMlsyXTtcbiAgICBsZXQgZCA9IEgyWzNdO1xuICAgIGxldCBlID0gSDJbNF07XG4gICAgbGV0IGYgPSBIMls1XTtcbiAgICBsZXQgZyA9IEgyWzZdO1xuICAgIGxldCBoID0gSDJbN107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCA2NDsgaSsrKSB7XG4gICAgICBpZiAoaSA8IDE2KSB7XG4gICAgICAgIFdbaV0gPSBNW29mZnNldCArIGldIHwgMDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGdhbW1hMHggPSBXW2kgLSAxNV07XG4gICAgICAgIGNvbnN0IGdhbW1hMCA9IChnYW1tYTB4IDw8IDI1IHwgZ2FtbWEweCA+Pj4gNykgXiAoZ2FtbWEweCA8PCAxNCB8IGdhbW1hMHggPj4+IDE4KSBeIGdhbW1hMHggPj4+IDM7XG4gICAgICAgIGNvbnN0IGdhbW1hMXggPSBXW2kgLSAyXTtcbiAgICAgICAgY29uc3QgZ2FtbWExID0gKGdhbW1hMXggPDwgMTUgfCBnYW1tYTF4ID4+PiAxNykgXiAoZ2FtbWExeCA8PCAxMyB8IGdhbW1hMXggPj4+IDE5KSBeIGdhbW1hMXggPj4+IDEwO1xuICAgICAgICBXW2ldID0gZ2FtbWEwICsgV1tpIC0gN10gKyBnYW1tYTEgKyBXW2kgLSAxNl07XG4gICAgICB9XG4gICAgICBjb25zdCBjaCA9IGUgJiBmIF4gfmUgJiBnO1xuICAgICAgY29uc3QgbWFqID0gYSAmIGIgXiBhICYgYyBeIGIgJiBjO1xuICAgICAgY29uc3Qgc2lnbWEwID0gKGEgPDwgMzAgfCBhID4+PiAyKSBeIChhIDw8IDE5IHwgYSA+Pj4gMTMpIF4gKGEgPDwgMTAgfCBhID4+PiAyMik7XG4gICAgICBjb25zdCBzaWdtYTEgPSAoZSA8PCAyNiB8IGUgPj4+IDYpIF4gKGUgPDwgMjEgfCBlID4+PiAxMSkgXiAoZSA8PCA3IHwgZSA+Pj4gMjUpO1xuICAgICAgY29uc3QgdDEgPSBoICsgc2lnbWExICsgY2ggKyBLW2ldICsgV1tpXTtcbiAgICAgIGNvbnN0IHQyID0gc2lnbWEwICsgbWFqO1xuICAgICAgaCA9IGc7XG4gICAgICBnID0gZjtcbiAgICAgIGYgPSBlO1xuICAgICAgZSA9IGQgKyB0MSB8IDA7XG4gICAgICBkID0gYztcbiAgICAgIGMgPSBiO1xuICAgICAgYiA9IGE7XG4gICAgICBhID0gdDEgKyB0MiB8IDA7XG4gICAgfVxuICAgIEgyWzBdID0gSDJbMF0gKyBhIHwgMDtcbiAgICBIMlsxXSA9IEgyWzFdICsgYiB8IDA7XG4gICAgSDJbMl0gPSBIMlsyXSArIGMgfCAwO1xuICAgIEgyWzNdID0gSDJbM10gKyBkIHwgMDtcbiAgICBIMls0XSA9IEgyWzRdICsgZSB8IDA7XG4gICAgSDJbNV0gPSBIMls1XSArIGYgfCAwO1xuICAgIEgyWzZdID0gSDJbNl0gKyBnIHwgMDtcbiAgICBIMls3XSA9IEgyWzddICsgaCB8IDA7XG4gIH1cbiAgZmluYWxpemUobWVzc2FnZVVwZGF0ZSkge1xuICAgIHN1cGVyLmZpbmFsaXplKG1lc3NhZ2VVcGRhdGUpO1xuICAgIGNvbnN0IG5CaXRzVG90YWwgPSB0aGlzLl9uRGF0YUJ5dGVzICogODtcbiAgICBjb25zdCBuQml0c0xlZnQgPSB0aGlzLl9kYXRhLnNpZ0J5dGVzICogODtcbiAgICB0aGlzLl9kYXRhLndvcmRzW25CaXRzTGVmdCA+Pj4gNV0gfD0gMTI4IDw8IDI0IC0gbkJpdHNMZWZ0ICUgMzI7XG4gICAgdGhpcy5fZGF0YS53b3Jkc1sobkJpdHNMZWZ0ICsgNjQgPj4+IDkgPDwgNCkgKyAxNF0gPSBNYXRoLmZsb29yKFxuICAgICAgbkJpdHNUb3RhbCAvIDQyOTQ5NjcyOTZcbiAgICApO1xuICAgIHRoaXMuX2RhdGEud29yZHNbKG5CaXRzTGVmdCArIDY0ID4+PiA5IDw8IDQpICsgMTVdID0gbkJpdHNUb3RhbDtcbiAgICB0aGlzLl9kYXRhLnNpZ0J5dGVzID0gdGhpcy5fZGF0YS53b3Jkcy5sZW5ndGggKiA0O1xuICAgIHRoaXMuX3Byb2Nlc3MoKTtcbiAgICByZXR1cm4gdGhpcy5faGFzaDtcbiAgfVxufVxuZnVuY3Rpb24gc2hhMjU2KG1lc3NhZ2UpIHtcbiAgcmV0dXJuIG5ldyBTSEEyNTYoKS5maW5hbGl6ZShtZXNzYWdlKS50b1N0cmluZygpO1xufVxuZnVuY3Rpb24gc2hhMjU2YmFzZTY0KG1lc3NhZ2UpIHtcbiAgcmV0dXJuIG5ldyBTSEEyNTYoKS5maW5hbGl6ZShtZXNzYWdlKS50b1N0cmluZyhCYXNlNjQpO1xufVxuXG5mdW5jdGlvbiBoYXNoKG9iamVjdCwgb3B0aW9ucyA9IHt9KSB7XG4gIGNvbnN0IGhhc2hlZCA9IHR5cGVvZiBvYmplY3QgPT09IFwic3RyaW5nXCIgPyBvYmplY3QgOiBvYmplY3RIYXNoKG9iamVjdCwgb3B0aW9ucyk7XG4gIHJldHVybiBzaGEyNTZiYXNlNjQoaGFzaGVkKS5zbGljZSgwLCAxMCk7XG59XG5cbmZ1bmN0aW9uIG11cm11ckhhc2goa2V5LCBzZWVkID0gMCkge1xuICBpZiAodHlwZW9mIGtleSA9PT0gXCJzdHJpbmdcIikge1xuICAgIGtleSA9IGNyZWF0ZUJ1ZmZlcihrZXkpO1xuICB9XG4gIGxldCBpID0gMDtcbiAgbGV0IGgxID0gc2VlZDtcbiAgbGV0IGsxO1xuICBsZXQgaDFiO1xuICBjb25zdCByZW1haW5kZXIgPSBrZXkubGVuZ3RoICYgMztcbiAgY29uc3QgYnl0ZXMgPSBrZXkubGVuZ3RoIC0gcmVtYWluZGVyO1xuICBjb25zdCBjMSA9IDM0MzI5MTgzNTM7XG4gIGNvbnN0IGMyID0gNDYxODQ1OTA3O1xuICB3aGlsZSAoaSA8IGJ5dGVzKSB7XG4gICAgazEgPSBrZXlbaV0gJiAyNTUgfCAoa2V5WysraV0gJiAyNTUpIDw8IDggfCAoa2V5WysraV0gJiAyNTUpIDw8IDE2IHwgKGtleVsrK2ldICYgMjU1KSA8PCAyNDtcbiAgICArK2k7XG4gICAgazEgPSAoazEgJiA2NTUzNSkgKiBjMSArICgoKGsxID4+PiAxNikgKiBjMSAmIDY1NTM1KSA8PCAxNikgJiA0Mjk0OTY3Mjk1O1xuICAgIGsxID0gazEgPDwgMTUgfCBrMSA+Pj4gMTc7XG4gICAgazEgPSAoazEgJiA2NTUzNSkgKiBjMiArICgoKGsxID4+PiAxNikgKiBjMiAmIDY1NTM1KSA8PCAxNikgJiA0Mjk0OTY3Mjk1O1xuICAgIGgxIF49IGsxO1xuICAgIGgxID0gaDEgPDwgMTMgfCBoMSA+Pj4gMTk7XG4gICAgaDFiID0gKGgxICYgNjU1MzUpICogNSArICgoKGgxID4+PiAxNikgKiA1ICYgNjU1MzUpIDw8IDE2KSAmIDQyOTQ5NjcyOTU7XG4gICAgaDEgPSAoaDFiICYgNjU1MzUpICsgMjc0OTIgKyAoKChoMWIgPj4+IDE2KSArIDU4OTY0ICYgNjU1MzUpIDw8IDE2KTtcbiAgfVxuICBrMSA9IDA7XG4gIHN3aXRjaCAocmVtYWluZGVyKSB7XG4gICAgY2FzZSAzOiB7XG4gICAgICBrMSBePSAoa2V5W2kgKyAyXSAmIDI1NSkgPDwgMTY7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgY2FzZSAyOiB7XG4gICAgICBrMSBePSAoa2V5W2kgKyAxXSAmIDI1NSkgPDwgODtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBjYXNlIDE6IHtcbiAgICAgIGsxIF49IGtleVtpXSAmIDI1NTtcbiAgICAgIGsxID0gKGsxICYgNjU1MzUpICogYzEgKyAoKChrMSA+Pj4gMTYpICogYzEgJiA2NTUzNSkgPDwgMTYpICYgNDI5NDk2NzI5NTtcbiAgICAgIGsxID0gazEgPDwgMTUgfCBrMSA+Pj4gMTc7XG4gICAgICBrMSA9IChrMSAmIDY1NTM1KSAqIGMyICsgKCgoazEgPj4+IDE2KSAqIGMyICYgNjU1MzUpIDw8IDE2KSAmIDQyOTQ5NjcyOTU7XG4gICAgICBoMSBePSBrMTtcbiAgICB9XG4gIH1cbiAgaDEgXj0ga2V5Lmxlbmd0aDtcbiAgaDEgXj0gaDEgPj4+IDE2O1xuICBoMSA9IChoMSAmIDY1NTM1KSAqIDIyNDY4MjI1MDcgKyAoKChoMSA+Pj4gMTYpICogMjI0NjgyMjUwNyAmIDY1NTM1KSA8PCAxNikgJiA0Mjk0OTY3Mjk1O1xuICBoMSBePSBoMSA+Pj4gMTM7XG4gIGgxID0gKGgxICYgNjU1MzUpICogMzI2NjQ4OTkwOSArICgoKGgxID4+PiAxNikgKiAzMjY2NDg5OTA5ICYgNjU1MzUpIDw8IDE2KSAmIDQyOTQ5NjcyOTU7XG4gIGgxIF49IGgxID4+PiAxNjtcbiAgcmV0dXJuIGgxID4+PiAwO1xufVxuZnVuY3Rpb24gY3JlYXRlQnVmZmVyKHZhbCkge1xuICByZXR1cm4gbmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKHZhbCk7XG59XG5cbmZ1bmN0aW9uIGlzRXF1YWwob2JqZWN0MSwgb2JqZWN0MiwgaGFzaE9wdGlvbnMgPSB7fSkge1xuICBpZiAob2JqZWN0MSA9PT0gb2JqZWN0Mikge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIGlmIChvYmplY3RIYXNoKG9iamVjdDEsIGhhc2hPcHRpb25zKSA9PT0gb2JqZWN0SGFzaChvYmplY3QyLCBoYXNoT3B0aW9ucykpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIGRpZmYob2JqMSwgb2JqMiwgb3B0cyA9IHt9KSB7XG4gIGNvbnN0IGgxID0gX3RvSGFzaGVkT2JqZWN0KG9iajEsIG9wdHMpO1xuICBjb25zdCBoMiA9IF90b0hhc2hlZE9iamVjdChvYmoyLCBvcHRzKTtcbiAgcmV0dXJuIF9kaWZmKGgxLCBoMiwgb3B0cyk7XG59XG5mdW5jdGlvbiBfZGlmZihoMSwgaDIsIG9wdHMgPSB7fSkge1xuICBjb25zdCBkaWZmcyA9IFtdO1xuICBjb25zdCBhbGxQcm9wcyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KFtcbiAgICAuLi5PYmplY3Qua2V5cyhoMS5wcm9wcyB8fCB7fSksXG4gICAgLi4uT2JqZWN0LmtleXMoaDIucHJvcHMgfHwge30pXG4gIF0pO1xuICBpZiAoaDEucHJvcHMgJiYgaDIucHJvcHMpIHtcbiAgICBmb3IgKGNvbnN0IHByb3Agb2YgYWxsUHJvcHMpIHtcbiAgICAgIGNvbnN0IHAxID0gaDEucHJvcHNbcHJvcF07XG4gICAgICBjb25zdCBwMiA9IGgyLnByb3BzW3Byb3BdO1xuICAgICAgaWYgKHAxICYmIHAyKSB7XG4gICAgICAgIGRpZmZzLnB1c2goLi4uX2RpZmYoaDEucHJvcHM/Lltwcm9wXSwgaDIucHJvcHM/Lltwcm9wXSwgb3B0cykpO1xuICAgICAgfSBlbHNlIGlmIChwMSB8fCBwMikge1xuICAgICAgICBkaWZmcy5wdXNoKFxuICAgICAgICAgIG5ldyBEaWZmRW50cnkoKHAyIHx8IHAxKS5rZXksIHAxID8gXCJyZW1vdmVkXCIgOiBcImFkZGVkXCIsIHAyLCBwMSlcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgaWYgKGFsbFByb3BzLnNpemUgPT09IDAgJiYgaDEuaGFzaCAhPT0gaDIuaGFzaCkge1xuICAgIGRpZmZzLnB1c2gobmV3IERpZmZFbnRyeSgoaDIgfHwgaDEpLmtleSwgXCJjaGFuZ2VkXCIsIGgyLCBoMSkpO1xuICB9XG4gIHJldHVybiBkaWZmcztcbn1cbmZ1bmN0aW9uIF90b0hhc2hlZE9iamVjdChvYmosIG9wdHMsIGtleSA9IFwiXCIpIHtcbiAgaWYgKG9iaiAmJiB0eXBlb2Ygb2JqICE9PSBcIm9iamVjdFwiKSB7XG4gICAgcmV0dXJuIG5ldyBEaWZmSGFzaGVkT2JqZWN0KGtleSwgb2JqLCBvYmplY3RIYXNoKG9iaiwgb3B0cykpO1xuICB9XG4gIGNvbnN0IHByb3BzID0ge307XG4gIGNvbnN0IGhhc2hlcyA9IFtdO1xuICBmb3IgKGNvbnN0IF9rZXkgaW4gb2JqKSB7XG4gICAgcHJvcHNbX2tleV0gPSBfdG9IYXNoZWRPYmplY3QoXG4gICAgICBvYmpbX2tleV0sXG4gICAgICBvcHRzLFxuICAgICAga2V5ID8gYCR7a2V5fS4ke19rZXl9YCA6IF9rZXlcbiAgICApO1xuICAgIGhhc2hlcy5wdXNoKHByb3BzW19rZXldLmhhc2gpO1xuICB9XG4gIHJldHVybiBuZXcgRGlmZkhhc2hlZE9iamVjdChrZXksIG9iaiwgYHske2hhc2hlcy5qb2luKFwiOlwiKX19YCwgcHJvcHMpO1xufVxuY2xhc3MgRGlmZkVudHJ5IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtY29uc3RydWN0b3JcbiAgY29uc3RydWN0b3Ioa2V5LCB0eXBlLCBuZXdWYWx1ZSwgb2xkVmFsdWUpIHtcbiAgICB0aGlzLmtleSA9IGtleTtcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIHRoaXMubmV3VmFsdWUgPSBuZXdWYWx1ZTtcbiAgICB0aGlzLm9sZFZhbHVlID0gb2xkVmFsdWU7XG4gIH1cbiAgdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMudG9KU09OKCk7XG4gIH1cbiAgdG9KU09OKCkge1xuICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XG4gICAgICBjYXNlIFwiYWRkZWRcIjoge1xuICAgICAgICByZXR1cm4gYEFkZGVkICAgXFxgJHt0aGlzLmtleX1cXGBgO1xuICAgICAgfVxuICAgICAgY2FzZSBcInJlbW92ZWRcIjoge1xuICAgICAgICByZXR1cm4gYFJlbW92ZWQgXFxgJHt0aGlzLmtleX1cXGBgO1xuICAgICAgfVxuICAgICAgY2FzZSBcImNoYW5nZWRcIjoge1xuICAgICAgICByZXR1cm4gYENoYW5nZWQgXFxgJHt0aGlzLmtleX1cXGAgZnJvbSBcXGAke3RoaXMub2xkVmFsdWU/LnRvU3RyaW5nKCkgfHwgXCItXCJ9XFxgIHRvIFxcYCR7dGhpcy5uZXdWYWx1ZS50b1N0cmluZygpfVxcYGA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5jbGFzcyBEaWZmSGFzaGVkT2JqZWN0IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtY29uc3RydWN0b3JcbiAgY29uc3RydWN0b3Ioa2V5LCB2YWx1ZSwgaGFzaCwgcHJvcHMpIHtcbiAgICB0aGlzLmtleSA9IGtleTtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5oYXNoID0gaGFzaDtcbiAgICB0aGlzLnByb3BzID0gcHJvcHM7XG4gIH1cbiAgdG9TdHJpbmcoKSB7XG4gICAgaWYgKHRoaXMucHJvcHMpIHtcbiAgICAgIHJldHVybiBgeyR7T2JqZWN0LmtleXModGhpcy5wcm9wcykuam9pbihcIixcIil9fWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh0aGlzLnZhbHVlKTtcbiAgICB9XG4gIH1cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IGsgPSB0aGlzLmtleSB8fCBcIi5cIjtcbiAgICBpZiAodGhpcy5wcm9wcykge1xuICAgICAgcmV0dXJuIGAke2t9KHske09iamVjdC5rZXlzKHRoaXMucHJvcHMpLmpvaW4oXCIsXCIpfX0pYDtcbiAgICB9XG4gICAgcmV0dXJuIGAke2t9KCR7dGhpcy52YWx1ZX0pYDtcbiAgfVxufVxuXG5leHBvcnQgeyBkaWZmLCBoYXNoLCBpc0VxdWFsLCBtdXJtdXJIYXNoLCBvYmplY3RIYXNoLCBzaGEyNTYsIHNoYTI1NmJhc2U2NCB9O1xuIiwgImV4cG9ydCB7IGEgYXMgY29uc29sYSwgYyBhcyBjcmVhdGVDb25zb2xhLCBhIGFzIGRlZmF1bHQgfSBmcm9tICcuL3NoYXJlZC9jb25zb2xhLjM2YzAwMzRmLm1qcyc7XG5leHBvcnQgeyBDb25zb2xhLCBMb2dMZXZlbHMsIExvZ1R5cGVzIH0gZnJvbSAnLi9jb3JlLm1qcyc7XG5pbXBvcnQgJy4vc2hhcmVkL2NvbnNvbGEuMDZhZDhhNjQubWpzJztcbmltcG9ydCAnbm9kZTpwcm9jZXNzJztcbmltcG9ydCAnLi91dGlscy5tanMnO1xuaW1wb3J0ICdub2RlOnR0eSc7XG5pbXBvcnQgJ25vZGU6dXRpbCc7XG5pbXBvcnQgJ25vZGU6cGF0aCc7XG4iLCAiaW1wb3J0IGNvbnNvbGEgZnJvbSAnY29uc29sYSc7XG5pbXBvcnQgeyBjb2xvcnMgfSBmcm9tICdjb25zb2xhL3V0aWxzJztcblxuZnVuY3Rpb24gdG9BcnJheSh2YWwpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsKSkge1xuICAgIHJldHVybiB2YWw7XG4gIH1cbiAgcmV0dXJuIHZhbCA9PT0gdm9pZCAwID8gW10gOiBbdmFsXTtcbn1cbmZ1bmN0aW9uIGZvcm1hdExpbmVDb2x1bW5zKGxpbmVzLCBsaW5lUHJlZml4ID0gXCJcIikge1xuICBjb25zdCBtYXhMZW5naCA9IFtdO1xuICBmb3IgKGNvbnN0IGxpbmUgb2YgbGluZXMpIHtcbiAgICBmb3IgKGNvbnN0IFtpLCBlbGVtZW50XSBvZiBsaW5lLmVudHJpZXMoKSkge1xuICAgICAgbWF4TGVuZ2hbaV0gPSBNYXRoLm1heChtYXhMZW5naFtpXSB8fCAwLCBlbGVtZW50Lmxlbmd0aCk7XG4gICAgfVxuICB9XG4gIHJldHVybiBsaW5lcy5tYXAoXG4gICAgKGwpID0+IGwubWFwKFxuICAgICAgKGMsIGkpID0+IGxpbmVQcmVmaXggKyBjW2kgPT09IDAgPyBcInBhZFN0YXJ0XCIgOiBcInBhZEVuZFwiXShtYXhMZW5naFtpXSlcbiAgICApLmpvaW4oXCIgIFwiKVxuICApLmpvaW4oXCJcXG5cIik7XG59XG5mdW5jdGlvbiByZXNvbHZlVmFsdWUoaW5wdXQpIHtcbiAgcmV0dXJuIHR5cGVvZiBpbnB1dCA9PT0gXCJmdW5jdGlvblwiID8gaW5wdXQoKSA6IGlucHV0O1xufVxuY2xhc3MgQ0xJRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2UsIGNvZGUpIHtcbiAgICBzdXBlcihtZXNzYWdlKTtcbiAgICB0aGlzLmNvZGUgPSBjb2RlO1xuICAgIHRoaXMubmFtZSA9IFwiQ0xJRXJyb3JcIjtcbiAgfVxufVxuXG5jb25zdCBOVU1CRVJfQ0hBUl9SRSA9IC9cXGQvO1xuY29uc3QgU1RSX1NQTElUVEVSUyA9IFtcIi1cIiwgXCJfXCIsIFwiL1wiLCBcIi5cIl07XG5mdW5jdGlvbiBpc1VwcGVyY2FzZShjaGFyID0gXCJcIikge1xuICBpZiAoTlVNQkVSX0NIQVJfUkUudGVzdChjaGFyKSkge1xuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cbiAgcmV0dXJuIGNoYXIgIT09IGNoYXIudG9Mb3dlckNhc2UoKTtcbn1cbmZ1bmN0aW9uIHNwbGl0QnlDYXNlKHN0ciwgc2VwYXJhdG9ycykge1xuICBjb25zdCBzcGxpdHRlcnMgPSBzZXBhcmF0b3JzID8/IFNUUl9TUExJVFRFUlM7XG4gIGNvbnN0IHBhcnRzID0gW107XG4gIGlmICghc3RyIHx8IHR5cGVvZiBzdHIgIT09IFwic3RyaW5nXCIpIHtcbiAgICByZXR1cm4gcGFydHM7XG4gIH1cbiAgbGV0IGJ1ZmYgPSBcIlwiO1xuICBsZXQgcHJldmlvdXNVcHBlcjtcbiAgbGV0IHByZXZpb3VzU3BsaXR0ZXI7XG4gIGZvciAoY29uc3QgY2hhciBvZiBzdHIpIHtcbiAgICBjb25zdCBpc1NwbGl0dGVyID0gc3BsaXR0ZXJzLmluY2x1ZGVzKGNoYXIpO1xuICAgIGlmIChpc1NwbGl0dGVyID09PSB0cnVlKSB7XG4gICAgICBwYXJ0cy5wdXNoKGJ1ZmYpO1xuICAgICAgYnVmZiA9IFwiXCI7XG4gICAgICBwcmV2aW91c1VwcGVyID0gdm9pZCAwO1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGNvbnN0IGlzVXBwZXIgPSBpc1VwcGVyY2FzZShjaGFyKTtcbiAgICBpZiAocHJldmlvdXNTcGxpdHRlciA9PT0gZmFsc2UpIHtcbiAgICAgIGlmIChwcmV2aW91c1VwcGVyID09PSBmYWxzZSAmJiBpc1VwcGVyID09PSB0cnVlKSB7XG4gICAgICAgIHBhcnRzLnB1c2goYnVmZik7XG4gICAgICAgIGJ1ZmYgPSBjaGFyO1xuICAgICAgICBwcmV2aW91c1VwcGVyID0gaXNVcHBlcjtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAocHJldmlvdXNVcHBlciA9PT0gdHJ1ZSAmJiBpc1VwcGVyID09PSBmYWxzZSAmJiBidWZmLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgY29uc3QgbGFzdENoYXIgPSBidWZmLmF0KC0xKTtcbiAgICAgICAgcGFydHMucHVzaChidWZmLnNsaWNlKDAsIE1hdGgubWF4KDAsIGJ1ZmYubGVuZ3RoIC0gMSkpKTtcbiAgICAgICAgYnVmZiA9IGxhc3RDaGFyICsgY2hhcjtcbiAgICAgICAgcHJldmlvdXNVcHBlciA9IGlzVXBwZXI7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgIH1cbiAgICBidWZmICs9IGNoYXI7XG4gICAgcHJldmlvdXNVcHBlciA9IGlzVXBwZXI7XG4gICAgcHJldmlvdXNTcGxpdHRlciA9IGlzU3BsaXR0ZXI7XG4gIH1cbiAgcGFydHMucHVzaChidWZmKTtcbiAgcmV0dXJuIHBhcnRzO1xufVxuZnVuY3Rpb24gdXBwZXJGaXJzdChzdHIpIHtcbiAgcmV0dXJuIHN0ciA/IHN0clswXS50b1VwcGVyQ2FzZSgpICsgc3RyLnNsaWNlKDEpIDogXCJcIjtcbn1cbmZ1bmN0aW9uIGxvd2VyRmlyc3Qoc3RyKSB7XG4gIHJldHVybiBzdHIgPyBzdHJbMF0udG9Mb3dlckNhc2UoKSArIHN0ci5zbGljZSgxKSA6IFwiXCI7XG59XG5mdW5jdGlvbiBwYXNjYWxDYXNlKHN0ciwgb3B0cykge1xuICByZXR1cm4gc3RyID8gKEFycmF5LmlzQXJyYXkoc3RyKSA/IHN0ciA6IHNwbGl0QnlDYXNlKHN0cikpLm1hcCgocCkgPT4gdXBwZXJGaXJzdChvcHRzPy5ub3JtYWxpemUgPyBwLnRvTG93ZXJDYXNlKCkgOiBwKSkuam9pbihcIlwiKSA6IFwiXCI7XG59XG5mdW5jdGlvbiBjYW1lbENhc2Uoc3RyLCBvcHRzKSB7XG4gIHJldHVybiBsb3dlckZpcnN0KHBhc2NhbENhc2Uoc3RyIHx8IFwiXCIsIG9wdHMpKTtcbn1cbmZ1bmN0aW9uIGtlYmFiQ2FzZShzdHIsIGpvaW5lcikge1xuICByZXR1cm4gc3RyID8gKEFycmF5LmlzQXJyYXkoc3RyKSA/IHN0ciA6IHNwbGl0QnlDYXNlKHN0cikpLm1hcCgocCkgPT4gcC50b0xvd2VyQ2FzZSgpKS5qb2luKGpvaW5lciA/PyBcIi1cIikgOiBcIlwiO1xufVxuXG5mdW5jdGlvbiB0b0FycihhbnkpIHtcbiAgcmV0dXJuIGFueSA9PSB2b2lkIDAgPyBbXSA6IEFycmF5LmlzQXJyYXkoYW55KSA/IGFueSA6IFthbnldO1xufVxuZnVuY3Rpb24gdG9WYWwob3V0LCBrZXksIHZhbCwgb3B0cykge1xuICBsZXQgeDtcbiAgY29uc3Qgb2xkID0gb3V0W2tleV07XG4gIGNvbnN0IG54dCA9IH5vcHRzLnN0cmluZy5pbmRleE9mKGtleSkgPyB2YWwgPT0gdm9pZCAwIHx8IHZhbCA9PT0gdHJ1ZSA/IFwiXCIgOiBTdHJpbmcodmFsKSA6IHR5cGVvZiB2YWwgPT09IFwiYm9vbGVhblwiID8gdmFsIDogfm9wdHMuYm9vbGVhbi5pbmRleE9mKGtleSkgPyB2YWwgPT09IFwiZmFsc2VcIiA/IGZhbHNlIDogdmFsID09PSBcInRydWVcIiB8fCAob3V0Ll8ucHVzaCgoeCA9ICt2YWwsIHggKiAwID09PSAwKSA/IHggOiB2YWwpLCAhIXZhbCkgOiAoeCA9ICt2YWwsIHggKiAwID09PSAwKSA/IHggOiB2YWw7XG4gIG91dFtrZXldID0gb2xkID09IHZvaWQgMCA/IG54dCA6IEFycmF5LmlzQXJyYXkob2xkKSA/IG9sZC5jb25jYXQobnh0KSA6IFtvbGQsIG54dF07XG59XG5mdW5jdGlvbiBwYXJzZVJhd0FyZ3MoYXJncyA9IFtdLCBvcHRzID0ge30pIHtcbiAgbGV0IGs7XG4gIGxldCBhcnI7XG4gIGxldCBhcmc7XG4gIGxldCBuYW1lO1xuICBsZXQgdmFsO1xuICBjb25zdCBvdXQgPSB7IF86IFtdIH07XG4gIGxldCBpID0gMDtcbiAgbGV0IGogPSAwO1xuICBsZXQgaWR4ID0gMDtcbiAgY29uc3QgbGVuID0gYXJncy5sZW5ndGg7XG4gIGNvbnN0IGFsaWJpID0gb3B0cy5hbGlhcyAhPT0gdm9pZCAwO1xuICBjb25zdCBzdHJpY3QgPSBvcHRzLnVua25vd24gIT09IHZvaWQgMDtcbiAgY29uc3QgZGVmYXVsdHMgPSBvcHRzLmRlZmF1bHQgIT09IHZvaWQgMDtcbiAgb3B0cy5hbGlhcyA9IG9wdHMuYWxpYXMgfHwge307XG4gIG9wdHMuc3RyaW5nID0gdG9BcnIob3B0cy5zdHJpbmcpO1xuICBvcHRzLmJvb2xlYW4gPSB0b0FycihvcHRzLmJvb2xlYW4pO1xuICBpZiAoYWxpYmkpIHtcbiAgICBmb3IgKGsgaW4gb3B0cy5hbGlhcykge1xuICAgICAgYXJyID0gb3B0cy5hbGlhc1trXSA9IHRvQXJyKG9wdHMuYWxpYXNba10pO1xuICAgICAgZm9yIChpID0gMDsgaSA8IGFyci5sZW5ndGg7IGkrKykge1xuICAgICAgICAob3B0cy5hbGlhc1thcnJbaV1dID0gYXJyLmNvbmNhdChrKSkuc3BsaWNlKGksIDEpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBmb3IgKGkgPSBvcHRzLmJvb2xlYW4ubGVuZ3RoOyBpLS0gPiAwOyApIHtcbiAgICBhcnIgPSBvcHRzLmFsaWFzW29wdHMuYm9vbGVhbltpXV0gfHwgW107XG4gICAgZm9yIChqID0gYXJyLmxlbmd0aDsgai0tID4gMDsgKSB7XG4gICAgICBvcHRzLmJvb2xlYW4ucHVzaChhcnJbal0pO1xuICAgIH1cbiAgfVxuICBmb3IgKGkgPSBvcHRzLnN0cmluZy5sZW5ndGg7IGktLSA+IDA7ICkge1xuICAgIGFyciA9IG9wdHMuYWxpYXNbb3B0cy5zdHJpbmdbaV1dIHx8IFtdO1xuICAgIGZvciAoaiA9IGFyci5sZW5ndGg7IGotLSA+IDA7ICkge1xuICAgICAgb3B0cy5zdHJpbmcucHVzaChhcnJbal0pO1xuICAgIH1cbiAgfVxuICBpZiAoZGVmYXVsdHMpIHtcbiAgICBmb3IgKGsgaW4gb3B0cy5kZWZhdWx0KSB7XG4gICAgICBuYW1lID0gdHlwZW9mIG9wdHMuZGVmYXVsdFtrXTtcbiAgICAgIGFyciA9IG9wdHMuYWxpYXNba10gPSBvcHRzLmFsaWFzW2tdIHx8IFtdO1xuICAgICAgaWYgKG9wdHNbbmFtZV0gIT09IHZvaWQgMCkge1xuICAgICAgICBvcHRzW25hbWVdLnB1c2goayk7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBhcnIubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBvcHRzW25hbWVdLnB1c2goYXJyW2ldKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBjb25zdCBrZXlzID0gc3RyaWN0ID8gT2JqZWN0LmtleXMob3B0cy5hbGlhcykgOiBbXTtcbiAgZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgYXJnID0gYXJnc1tpXTtcbiAgICBpZiAoYXJnID09PSBcIi0tXCIpIHtcbiAgICAgIG91dC5fID0gb3V0Ll8uY29uY2F0KGFyZ3Muc2xpY2UoKytpKSk7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgZm9yIChqID0gMDsgaiA8IGFyZy5sZW5ndGg7IGorKykge1xuICAgICAgaWYgKGFyZy5jaGFyQ29kZUF0KGopICE9PSA0NSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGogPT09IDApIHtcbiAgICAgIG91dC5fLnB1c2goYXJnKTtcbiAgICB9IGVsc2UgaWYgKGFyZy5zdWJzdHJpbmcoaiwgaiArIDMpID09PSBcIm5vLVwiKSB7XG4gICAgICBuYW1lID0gYXJnLnNsaWNlKE1hdGgubWF4KDAsIGogKyAzKSk7XG4gICAgICBpZiAoc3RyaWN0ICYmICF+a2V5cy5pbmRleE9mKG5hbWUpKSB7XG4gICAgICAgIHJldHVybiBvcHRzLnVua25vd24oYXJnKTtcbiAgICAgIH1cbiAgICAgIG91dFtuYW1lXSA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICBmb3IgKGlkeCA9IGogKyAxOyBpZHggPCBhcmcubGVuZ3RoOyBpZHgrKykge1xuICAgICAgICBpZiAoYXJnLmNoYXJDb2RlQXQoaWR4KSA9PT0gNjEpIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbmFtZSA9IGFyZy5zdWJzdHJpbmcoaiwgaWR4KTtcbiAgICAgIHZhbCA9IGFyZy5zbGljZShNYXRoLm1heCgwLCArK2lkeCkpIHx8IGkgKyAxID09PSBsZW4gfHwgKFwiXCIgKyBhcmdzW2kgKyAxXSkuY2hhckNvZGVBdCgwKSA9PT0gNDUgfHwgYXJnc1srK2ldO1xuICAgICAgYXJyID0gaiA9PT0gMiA/IFtuYW1lXSA6IG5hbWU7XG4gICAgICBmb3IgKGlkeCA9IDA7IGlkeCA8IGFyci5sZW5ndGg7IGlkeCsrKSB7XG4gICAgICAgIG5hbWUgPSBhcnJbaWR4XTtcbiAgICAgICAgaWYgKHN0cmljdCAmJiAhfmtleXMuaW5kZXhPZihuYW1lKSkge1xuICAgICAgICAgIHJldHVybiBvcHRzLnVua25vd24oXCItXCIucmVwZWF0KGopICsgbmFtZSk7XG4gICAgICAgIH1cbiAgICAgICAgdG9WYWwob3V0LCBuYW1lLCBpZHggKyAxIDwgYXJyLmxlbmd0aCB8fCB2YWwsIG9wdHMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBpZiAoZGVmYXVsdHMpIHtcbiAgICBmb3IgKGsgaW4gb3B0cy5kZWZhdWx0KSB7XG4gICAgICBpZiAob3V0W2tdID09PSB2b2lkIDApIHtcbiAgICAgICAgb3V0W2tdID0gb3B0cy5kZWZhdWx0W2tdO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBpZiAoYWxpYmkpIHtcbiAgICBmb3IgKGsgaW4gb3V0KSB7XG4gICAgICBhcnIgPSBvcHRzLmFsaWFzW2tdIHx8IFtdO1xuICAgICAgd2hpbGUgKGFyci5sZW5ndGggPiAwKSB7XG4gICAgICAgIG91dFthcnIuc2hpZnQoKV0gPSBvdXRba107XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBvdXQ7XG59XG5cbmZ1bmN0aW9uIHBhcnNlQXJncyhyYXdBcmdzLCBhcmdzRGVmKSB7XG4gIGNvbnN0IHBhcnNlT3B0aW9ucyA9IHtcbiAgICBib29sZWFuOiBbXSxcbiAgICBzdHJpbmc6IFtdLFxuICAgIG1peGVkOiBbXSxcbiAgICBhbGlhczoge30sXG4gICAgZGVmYXVsdDoge31cbiAgfTtcbiAgY29uc3QgYXJncyA9IHJlc29sdmVBcmdzKGFyZ3NEZWYpO1xuICBmb3IgKGNvbnN0IGFyZyBvZiBhcmdzKSB7XG4gICAgaWYgKGFyZy50eXBlID09PSBcInBvc2l0aW9uYWxcIikge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGlmIChhcmcudHlwZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgcGFyc2VPcHRpb25zLnN0cmluZy5wdXNoKGFyZy5uYW1lKTtcbiAgICB9IGVsc2UgaWYgKGFyZy50eXBlID09PSBcImJvb2xlYW5cIikge1xuICAgICAgcGFyc2VPcHRpb25zLmJvb2xlYW4ucHVzaChhcmcubmFtZSk7XG4gICAgfVxuICAgIGlmIChhcmcuZGVmYXVsdCAhPT0gdm9pZCAwKSB7XG4gICAgICBwYXJzZU9wdGlvbnMuZGVmYXVsdFthcmcubmFtZV0gPSBhcmcuZGVmYXVsdDtcbiAgICB9XG4gICAgaWYgKGFyZy5hbGlhcykge1xuICAgICAgcGFyc2VPcHRpb25zLmFsaWFzW2FyZy5uYW1lXSA9IGFyZy5hbGlhcztcbiAgICB9XG4gIH1cbiAgY29uc3QgcGFyc2VkID0gcGFyc2VSYXdBcmdzKHJhd0FyZ3MsIHBhcnNlT3B0aW9ucyk7XG4gIGNvbnN0IFsuLi5wb3NpdGlvbmFsQXJndW1lbnRzXSA9IHBhcnNlZC5fO1xuICBjb25zdCBwYXJzZWRBcmdzUHJveHkgPSBuZXcgUHJveHkocGFyc2VkLCB7XG4gICAgZ2V0KHRhcmdldCwgcHJvcCkge1xuICAgICAgcmV0dXJuIHRhcmdldFtwcm9wXSA/PyB0YXJnZXRbY2FtZWxDYXNlKHByb3ApXSA/PyB0YXJnZXRba2ViYWJDYXNlKHByb3ApXTtcbiAgICB9XG4gIH0pO1xuICBmb3IgKGNvbnN0IFssIGFyZ10gb2YgYXJncy5lbnRyaWVzKCkpIHtcbiAgICBpZiAoYXJnLnR5cGUgPT09IFwicG9zaXRpb25hbFwiKSB7XG4gICAgICBjb25zdCBuZXh0UG9zaXRpb25hbEFyZ3VtZW50ID0gcG9zaXRpb25hbEFyZ3VtZW50cy5zaGlmdCgpO1xuICAgICAgaWYgKG5leHRQb3NpdGlvbmFsQXJndW1lbnQgIT09IHZvaWQgMCkge1xuICAgICAgICBwYXJzZWRBcmdzUHJveHlbYXJnLm5hbWVdID0gbmV4dFBvc2l0aW9uYWxBcmd1bWVudDtcbiAgICAgIH0gZWxzZSBpZiAoYXJnLmRlZmF1bHQgPT09IHZvaWQgMCAmJiBhcmcucmVxdWlyZWQgIT09IGZhbHNlKSB7XG4gICAgICAgIHRocm93IG5ldyBDTElFcnJvcihcbiAgICAgICAgICBgTWlzc2luZyByZXF1aXJlZCBwb3NpdGlvbmFsIGFyZ3VtZW50OiAke2FyZy5uYW1lLnRvVXBwZXJDYXNlKCl9YCxcbiAgICAgICAgICBcIkVBUkdcIlxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGFyc2VkQXJnc1Byb3h5W2FyZy5uYW1lXSA9IGFyZy5kZWZhdWx0O1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoYXJnLnJlcXVpcmVkICYmIHBhcnNlZEFyZ3NQcm94eVthcmcubmFtZV0gPT09IHZvaWQgMCkge1xuICAgICAgdGhyb3cgbmV3IENMSUVycm9yKGBNaXNzaW5nIHJlcXVpcmVkIGFyZ3VtZW50OiAtLSR7YXJnLm5hbWV9YCwgXCJFQVJHXCIpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcGFyc2VkQXJnc1Byb3h5O1xufVxuZnVuY3Rpb24gcmVzb2x2ZUFyZ3MoYXJnc0RlZikge1xuICBjb25zdCBhcmdzID0gW107XG4gIGZvciAoY29uc3QgW25hbWUsIGFyZ0RlZl0gb2YgT2JqZWN0LmVudHJpZXMoYXJnc0RlZiB8fCB7fSkpIHtcbiAgICBhcmdzLnB1c2goe1xuICAgICAgLi4uYXJnRGVmLFxuICAgICAgbmFtZSxcbiAgICAgIGFsaWFzOiB0b0FycmF5KGFyZ0RlZi5hbGlhcylcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gYXJncztcbn1cblxuZnVuY3Rpb24gZGVmaW5lQ29tbWFuZChkZWYpIHtcbiAgcmV0dXJuIGRlZjtcbn1cbmFzeW5jIGZ1bmN0aW9uIHJ1bkNvbW1hbmQoY21kLCBvcHRzKSB7XG4gIGNvbnN0IGNtZEFyZ3MgPSBhd2FpdCByZXNvbHZlVmFsdWUoY21kLmFyZ3MgfHwge30pO1xuICBjb25zdCBwYXJzZWRBcmdzID0gcGFyc2VBcmdzKG9wdHMucmF3QXJncywgY21kQXJncyk7XG4gIGNvbnN0IGNvbnRleHQgPSB7XG4gICAgcmF3QXJnczogb3B0cy5yYXdBcmdzLFxuICAgIGFyZ3M6IHBhcnNlZEFyZ3MsXG4gICAgZGF0YTogb3B0cy5kYXRhLFxuICAgIGNtZFxuICB9O1xuICBpZiAodHlwZW9mIGNtZC5zZXR1cCA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgYXdhaXQgY21kLnNldHVwKGNvbnRleHQpO1xuICB9XG4gIGxldCByZXN1bHQ7XG4gIHRyeSB7XG4gICAgY29uc3Qgc3ViQ29tbWFuZHMgPSBhd2FpdCByZXNvbHZlVmFsdWUoY21kLnN1YkNvbW1hbmRzKTtcbiAgICBpZiAoc3ViQ29tbWFuZHMgJiYgT2JqZWN0LmtleXMoc3ViQ29tbWFuZHMpLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHN1YkNvbW1hbmRBcmdJbmRleCA9IG9wdHMucmF3QXJncy5maW5kSW5kZXgoXG4gICAgICAgIChhcmcpID0+ICFhcmcuc3RhcnRzV2l0aChcIi1cIilcbiAgICAgICk7XG4gICAgICBjb25zdCBzdWJDb21tYW5kTmFtZSA9IG9wdHMucmF3QXJnc1tzdWJDb21tYW5kQXJnSW5kZXhdO1xuICAgICAgaWYgKHN1YkNvbW1hbmROYW1lKSB7XG4gICAgICAgIGlmICghc3ViQ29tbWFuZHNbc3ViQ29tbWFuZE5hbWVdKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IENMSUVycm9yKFxuICAgICAgICAgICAgYFVua25vd24gY29tbWFuZCBcXGAke3N1YkNvbW1hbmROYW1lfVxcYGAsXG4gICAgICAgICAgICBcIkVfVU5LTk9XTl9DT01NQU5EXCJcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN1YkNvbW1hbmQgPSBhd2FpdCByZXNvbHZlVmFsdWUoc3ViQ29tbWFuZHNbc3ViQ29tbWFuZE5hbWVdKTtcbiAgICAgICAgaWYgKHN1YkNvbW1hbmQpIHtcbiAgICAgICAgICBhd2FpdCBydW5Db21tYW5kKHN1YkNvbW1hbmQsIHtcbiAgICAgICAgICAgIHJhd0FyZ3M6IG9wdHMucmF3QXJncy5zbGljZShzdWJDb21tYW5kQXJnSW5kZXggKyAxKVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKCFjbWQucnVuKSB7XG4gICAgICAgIHRocm93IG5ldyBDTElFcnJvcihgTm8gY29tbWFuZCBzcGVjaWZpZWQuYCwgXCJFX05PX0NPTU1BTkRcIik7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0eXBlb2YgY21kLnJ1biA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICByZXN1bHQgPSBhd2FpdCBjbWQucnVuKGNvbnRleHQpO1xuICAgIH1cbiAgfSBmaW5hbGx5IHtcbiAgICBpZiAodHlwZW9mIGNtZC5jbGVhbnVwID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIGF3YWl0IGNtZC5jbGVhbnVwKGNvbnRleHQpO1xuICAgIH1cbiAgfVxuICByZXR1cm4geyByZXN1bHQgfTtcbn1cbmFzeW5jIGZ1bmN0aW9uIHJlc29sdmVTdWJDb21tYW5kKGNtZCwgcmF3QXJncywgcGFyZW50KSB7XG4gIGNvbnN0IHN1YkNvbW1hbmRzID0gYXdhaXQgcmVzb2x2ZVZhbHVlKGNtZC5zdWJDb21tYW5kcyk7XG4gIGlmIChzdWJDb21tYW5kcyAmJiBPYmplY3Qua2V5cyhzdWJDb21tYW5kcykubGVuZ3RoID4gMCkge1xuICAgIGNvbnN0IHN1YkNvbW1hbmRBcmdJbmRleCA9IHJhd0FyZ3MuZmluZEluZGV4KChhcmcpID0+ICFhcmcuc3RhcnRzV2l0aChcIi1cIikpO1xuICAgIGNvbnN0IHN1YkNvbW1hbmROYW1lID0gcmF3QXJnc1tzdWJDb21tYW5kQXJnSW5kZXhdO1xuICAgIGNvbnN0IHN1YkNvbW1hbmQgPSBhd2FpdCByZXNvbHZlVmFsdWUoc3ViQ29tbWFuZHNbc3ViQ29tbWFuZE5hbWVdKTtcbiAgICBpZiAoc3ViQ29tbWFuZCkge1xuICAgICAgcmV0dXJuIHJlc29sdmVTdWJDb21tYW5kKFxuICAgICAgICBzdWJDb21tYW5kLFxuICAgICAgICByYXdBcmdzLnNsaWNlKHN1YkNvbW1hbmRBcmdJbmRleCArIDEpLFxuICAgICAgICBjbWRcbiAgICAgICk7XG4gICAgfVxuICB9XG4gIHJldHVybiBbY21kLCBwYXJlbnRdO1xufVxuXG5hc3luYyBmdW5jdGlvbiBzaG93VXNhZ2UoY21kLCBwYXJlbnQpIHtcbiAgdHJ5IHtcbiAgICBjb25zb2xhLmxvZyhhd2FpdCByZW5kZXJVc2FnZShjbWQsIHBhcmVudCkgKyBcIlxcblwiKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xhLmVycm9yKGVycm9yKTtcbiAgfVxufVxuYXN5bmMgZnVuY3Rpb24gcmVuZGVyVXNhZ2UoY21kLCBwYXJlbnQpIHtcbiAgY29uc3QgY21kTWV0YSA9IGF3YWl0IHJlc29sdmVWYWx1ZShjbWQubWV0YSB8fCB7fSk7XG4gIGNvbnN0IGNtZEFyZ3MgPSByZXNvbHZlQXJncyhhd2FpdCByZXNvbHZlVmFsdWUoY21kLmFyZ3MgfHwge30pKTtcbiAgY29uc3QgcGFyZW50TWV0YSA9IGF3YWl0IHJlc29sdmVWYWx1ZShwYXJlbnQ/Lm1ldGEgfHwge30pO1xuICBjb25zdCBjb21tYW5kTmFtZSA9IGAke3BhcmVudE1ldGEubmFtZSA/IGAke3BhcmVudE1ldGEubmFtZX0gYCA6IFwiXCJ9YCArIChjbWRNZXRhLm5hbWUgfHwgcHJvY2Vzcy5hcmd2WzFdKTtcbiAgY29uc3QgYXJnTGluZXMgPSBbXTtcbiAgY29uc3QgcG9zTGluZXMgPSBbXTtcbiAgY29uc3QgY29tbWFuZHNMaW5lcyA9IFtdO1xuICBjb25zdCB1c2FnZUxpbmUgPSBbXTtcbiAgZm9yIChjb25zdCBhcmcgb2YgY21kQXJncykge1xuICAgIGlmIChhcmcudHlwZSA9PT0gXCJwb3NpdGlvbmFsXCIpIHtcbiAgICAgIGNvbnN0IG5hbWUgPSBhcmcubmFtZS50b1VwcGVyQ2FzZSgpO1xuICAgICAgY29uc3QgaXNSZXF1aXJlZCA9IGFyZy5yZXF1aXJlZCAhPT0gZmFsc2UgJiYgYXJnLmRlZmF1bHQgPT09IHZvaWQgMDtcbiAgICAgIGNvbnN0IGRlZmF1bHRIaW50ID0gYXJnLmRlZmF1bHQgPyBgPVwiJHthcmcuZGVmYXVsdH1cImAgOiBcIlwiO1xuICAgICAgcG9zTGluZXMucHVzaChbXG4gICAgICAgIFwiYFwiICsgbmFtZSArIGRlZmF1bHRIaW50ICsgXCJgXCIsXG4gICAgICAgIGFyZy5kZXNjcmlwdGlvbiB8fCBcIlwiLFxuICAgICAgICBhcmcudmFsdWVIaW50ID8gYDwke2FyZy52YWx1ZUhpbnR9PmAgOiBcIlwiXG4gICAgICBdKTtcbiAgICAgIHVzYWdlTGluZS5wdXNoKGlzUmVxdWlyZWQgPyBgPCR7bmFtZX0+YCA6IGBbJHtuYW1lfV1gKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgaXNSZXF1aXJlZCA9IGFyZy5yZXF1aXJlZCA9PT0gdHJ1ZSAmJiBhcmcuZGVmYXVsdCA9PT0gdm9pZCAwO1xuICAgICAgY29uc3QgYXJnU3RyID0gKGFyZy50eXBlID09PSBcImJvb2xlYW5cIiAmJiBhcmcuZGVmYXVsdCA9PT0gdHJ1ZSA/IFtcbiAgICAgICAgLi4uKGFyZy5hbGlhcyB8fCBbXSkubWFwKChhKSA9PiBgLS1uby0ke2F9YCksXG4gICAgICAgIGAtLW5vLSR7YXJnLm5hbWV9YFxuICAgICAgXS5qb2luKFwiLCBcIikgOiBbLi4uKGFyZy5hbGlhcyB8fCBbXSkubWFwKChhKSA9PiBgLSR7YX1gKSwgYC0tJHthcmcubmFtZX1gXS5qb2luKFxuICAgICAgICBcIiwgXCJcbiAgICAgICkpICsgKGFyZy50eXBlID09PSBcInN0cmluZ1wiICYmIChhcmcudmFsdWVIaW50IHx8IGFyZy5kZWZhdWx0KSA/IGA9JHthcmcudmFsdWVIaW50ID8gYDwke2FyZy52YWx1ZUhpbnR9PmAgOiBgXCIke2FyZy5kZWZhdWx0IHx8IFwiXCJ9XCJgfWAgOiBcIlwiKTtcbiAgICAgIGFyZ0xpbmVzLnB1c2goW1xuICAgICAgICBcImBcIiArIGFyZ1N0ciArIChpc1JlcXVpcmVkID8gXCIgKHJlcXVpcmVkKVwiIDogXCJcIikgKyBcImBcIixcbiAgICAgICAgYXJnLmRlc2NyaXB0aW9uIHx8IFwiXCJcbiAgICAgIF0pO1xuICAgICAgaWYgKGlzUmVxdWlyZWQpIHtcbiAgICAgICAgdXNhZ2VMaW5lLnB1c2goYXJnU3RyKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgaWYgKGNtZC5zdWJDb21tYW5kcykge1xuICAgIGNvbnN0IGNvbW1hbmROYW1lcyA9IFtdO1xuICAgIGNvbnN0IHN1YkNvbW1hbmRzID0gYXdhaXQgcmVzb2x2ZVZhbHVlKGNtZC5zdWJDb21tYW5kcyk7XG4gICAgZm9yIChjb25zdCBbbmFtZSwgc3ViXSBvZiBPYmplY3QuZW50cmllcyhzdWJDb21tYW5kcykpIHtcbiAgICAgIGNvbnN0IHN1YkNtZCA9IGF3YWl0IHJlc29sdmVWYWx1ZShzdWIpO1xuICAgICAgY29uc3QgbWV0YSA9IGF3YWl0IHJlc29sdmVWYWx1ZShzdWJDbWQ/Lm1ldGEpO1xuICAgICAgY29tbWFuZHNMaW5lcy5wdXNoKFtgXFxgJHtuYW1lfVxcYGAsIG1ldGE/LmRlc2NyaXB0aW9uIHx8IFwiXCJdKTtcbiAgICAgIGNvbW1hbmROYW1lcy5wdXNoKG5hbWUpO1xuICAgIH1cbiAgICB1c2FnZUxpbmUucHVzaChjb21tYW5kTmFtZXMuam9pbihcInxcIikpO1xuICB9XG4gIGNvbnN0IHVzYWdlTGluZXMgPSBbXTtcbiAgY29uc3QgdmVyc2lvbiA9IGNtZE1ldGEudmVyc2lvbiB8fCBwYXJlbnRNZXRhLnZlcnNpb247XG4gIHVzYWdlTGluZXMucHVzaChcbiAgICBjb2xvcnMuZ3JheShcbiAgICAgIGAke2NtZE1ldGEuZGVzY3JpcHRpb259ICgke2NvbW1hbmROYW1lICsgKHZlcnNpb24gPyBgIHYke3ZlcnNpb259YCA6IFwiXCIpfSlgXG4gICAgKSxcbiAgICBcIlwiXG4gICk7XG4gIGNvbnN0IGhhc09wdGlvbnMgPSBhcmdMaW5lcy5sZW5ndGggPiAwIHx8IHBvc0xpbmVzLmxlbmd0aCA+IDA7XG4gIHVzYWdlTGluZXMucHVzaChcbiAgICBgJHtjb2xvcnMudW5kZXJsaW5lKGNvbG9ycy5ib2xkKFwiVVNBR0VcIikpfSBcXGAke2NvbW1hbmROYW1lfSR7aGFzT3B0aW9ucyA/IFwiIFtPUFRJT05TXVwiIDogXCJcIn0gJHt1c2FnZUxpbmUuam9pbihcIiBcIil9XFxgYCxcbiAgICBcIlwiXG4gICk7XG4gIGlmIChwb3NMaW5lcy5sZW5ndGggPiAwKSB7XG4gICAgdXNhZ2VMaW5lcy5wdXNoKGNvbG9ycy51bmRlcmxpbmUoY29sb3JzLmJvbGQoXCJBUkdVTUVOVFNcIikpLCBcIlwiKTtcbiAgICB1c2FnZUxpbmVzLnB1c2goZm9ybWF0TGluZUNvbHVtbnMocG9zTGluZXMsIFwiICBcIikpO1xuICAgIHVzYWdlTGluZXMucHVzaChcIlwiKTtcbiAgfVxuICBpZiAoYXJnTGluZXMubGVuZ3RoID4gMCkge1xuICAgIHVzYWdlTGluZXMucHVzaChjb2xvcnMudW5kZXJsaW5lKGNvbG9ycy5ib2xkKFwiT1BUSU9OU1wiKSksIFwiXCIpO1xuICAgIHVzYWdlTGluZXMucHVzaChmb3JtYXRMaW5lQ29sdW1ucyhhcmdMaW5lcywgXCIgIFwiKSk7XG4gICAgdXNhZ2VMaW5lcy5wdXNoKFwiXCIpO1xuICB9XG4gIGlmIChjb21tYW5kc0xpbmVzLmxlbmd0aCA+IDApIHtcbiAgICB1c2FnZUxpbmVzLnB1c2goY29sb3JzLnVuZGVybGluZShjb2xvcnMuYm9sZChcIkNPTU1BTkRTXCIpKSwgXCJcIik7XG4gICAgdXNhZ2VMaW5lcy5wdXNoKGZvcm1hdExpbmVDb2x1bW5zKGNvbW1hbmRzTGluZXMsIFwiICBcIikpO1xuICAgIHVzYWdlTGluZXMucHVzaChcbiAgICAgIFwiXCIsXG4gICAgICBgVXNlIFxcYCR7Y29tbWFuZE5hbWV9IDxjb21tYW5kPiAtLWhlbHBcXGAgZm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgYSBjb21tYW5kLmBcbiAgICApO1xuICB9XG4gIHJldHVybiB1c2FnZUxpbmVzLmZpbHRlcigobCkgPT4gdHlwZW9mIGwgPT09IFwic3RyaW5nXCIpLmpvaW4oXCJcXG5cIik7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJ1bk1haW4oY21kLCBvcHRzID0ge30pIHtcbiAgY29uc3QgcmF3QXJncyA9IG9wdHMucmF3QXJncyB8fCBwcm9jZXNzLmFyZ3Yuc2xpY2UoMik7XG4gIGNvbnN0IHNob3dVc2FnZSQxID0gb3B0cy5zaG93VXNhZ2UgfHwgc2hvd1VzYWdlO1xuICB0cnkge1xuICAgIGlmIChyYXdBcmdzLmluY2x1ZGVzKFwiLS1oZWxwXCIpIHx8IHJhd0FyZ3MuaW5jbHVkZXMoXCItaFwiKSkge1xuICAgICAgYXdhaXQgc2hvd1VzYWdlJDEoLi4uYXdhaXQgcmVzb2x2ZVN1YkNvbW1hbmQoY21kLCByYXdBcmdzKSk7XG4gICAgICBwcm9jZXNzLmV4aXQoMCk7XG4gICAgfSBlbHNlIGlmIChyYXdBcmdzLmxlbmd0aCA9PT0gMSAmJiByYXdBcmdzWzBdID09PSBcIi0tdmVyc2lvblwiKSB7XG4gICAgICBjb25zdCBtZXRhID0gdHlwZW9mIGNtZC5tZXRhID09PSBcImZ1bmN0aW9uXCIgPyBhd2FpdCBjbWQubWV0YSgpIDogYXdhaXQgY21kLm1ldGE7XG4gICAgICBpZiAoIW1ldGE/LnZlcnNpb24pIHtcbiAgICAgICAgdGhyb3cgbmV3IENMSUVycm9yKFwiTm8gdmVyc2lvbiBzcGVjaWZpZWRcIiwgXCJFX05PX1ZFUlNJT05cIik7XG4gICAgICB9XG4gICAgICBjb25zb2xhLmxvZyhtZXRhLnZlcnNpb24pO1xuICAgIH0gZWxzZSB7XG4gICAgICBhd2FpdCBydW5Db21tYW5kKGNtZCwgeyByYXdBcmdzIH0pO1xuICAgIH1cbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zdCBpc0NMSUVycm9yID0gZXJyb3IgaW5zdGFuY2VvZiBDTElFcnJvcjtcbiAgICBpZiAoIWlzQ0xJRXJyb3IpIHtcbiAgICAgIGNvbnNvbGEuZXJyb3IoZXJyb3IsIFwiXFxuXCIpO1xuICAgIH1cbiAgICBpZiAoaXNDTElFcnJvcikge1xuICAgICAgYXdhaXQgc2hvd1VzYWdlJDEoLi4uYXdhaXQgcmVzb2x2ZVN1YkNvbW1hbmQoY21kLCByYXdBcmdzKSk7XG4gICAgfVxuICAgIGNvbnNvbGEuZXJyb3IoZXJyb3IubWVzc2FnZSk7XG4gICAgcHJvY2Vzcy5leGl0KDEpO1xuICB9XG59XG5mdW5jdGlvbiBjcmVhdGVNYWluKGNtZCkge1xuICByZXR1cm4gKG9wdHMgPSB7fSkgPT4gcnVuTWFpbihjbWQsIG9wdHMpO1xufVxuXG5leHBvcnQgeyBjcmVhdGVNYWluLCBkZWZpbmVDb21tYW5kLCBwYXJzZUFyZ3MsIHJlbmRlclVzYWdlLCBydW5Db21tYW5kLCBydW5NYWluLCBzaG93VXNhZ2UgfTtcbiIsICJpbXBvcnQgdHlwZSB7IFBhY2thZ2VNYW5pZmVzdCB9IGZyb20gXCJxdWVyeS1yZWdpc3RyeVwiO1xuXG5jb25zdCBnaXRodWJVcmxSZWdleCA9XG4gIC9eKD86Z2l0XFwrKT9odHRwcz86XFwvXFwvZ2l0aHViXFwuY29tXFwvKFteL10rKVxcLyhbXi9dKylcXC5naXQkLztcblxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RPd25lckFuZFJlcG8oXG4gIHJlcG9zaXRvcnlVcmw6IHN0cmluZyxcbik6IFtzdHJpbmcsIHN0cmluZ10gfCBudWxsIHtcbiAgY29uc3QgbWF0Y2ggPSByZXBvc2l0b3J5VXJsLm1hdGNoKGdpdGh1YlVybFJlZ2V4KTtcblxuICBpZiAobWF0Y2gpIHtcbiAgICByZXR1cm4gW21hdGNoWzFdLCBtYXRjaFsyXV07XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RSZXBvc2l0b3J5KG1hbmlmZXN0OiBQYWNrYWdlTWFuaWZlc3QpIHtcbiAgcmV0dXJuIHR5cGVvZiBtYW5pZmVzdC5yZXBvc2l0b3J5ID09PSBcInN0cmluZ1wiXG4gICAgPyBtYW5pZmVzdC5yZXBvc2l0b3J5XG4gICAgOiBtYW5pZmVzdC5yZXBvc2l0b3J5Py51cmw7XG59XG5cbmNvbnN0IGNvbW1pdExlbmd0aCA9IDc7XG5cbi8qXG4gKiBcIjA5ZWZkMDU1MzM3NGZmN2QzZTYyYjc5Mzc4ZTMxODRmNWViNTc1NzFcIiA9PiBcIjA5ZWZkMDVcIlxuICovXG5leHBvcnQgZnVuY3Rpb24gYWJicmV2aWF0ZUNvbW1pdEhhc2goZnVsbEhhc2g6IHN0cmluZykge1xuICByZXR1cm4gZnVsbEhhc2guc3Vic3RyaW5nKDAsIGNvbW1pdExlbmd0aCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1B1bGxSZXF1ZXN0KHJlZjogc3RyaW5nKSB7XG4gIHJldHVybiAhTnVtYmVyLmlzTmFOKE51bWJlcihyZWYpKTtcbn1cblxuZXhwb3J0IHR5cGUgQ29tbWVudCA9IFwib2ZmXCIgfCBcImNyZWF0ZVwiIHwgXCJ1cGRhdGVcIjtcbmV4cG9ydCB0eXBlIFBhY2thZ2VNYW5hZ2VyID0gXCJucG1cIiB8IFwicG5wbVwiIHwgXCJ5YXJuXCIgfCBcImJ1blwiO1xuXG5jb25zdCB3aGl0ZWxpc3QgPVxuICBcImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9zdGFja2JsaXR6LWxhYnMvcGtnLnByLm5ldy9tYWluLy53aGl0ZWxpc3RcIjtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGlzV2hpdGVsaXN0ZWQob3duZXI6IHN0cmluZywgcmVwbzogc3RyaW5nKSB7XG4gIGNvbnN0IGNvbWJpbmF0aW9uID0gYCR7b3duZXJ9LyR7cmVwb31gO1xuXG4gIHRyeSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh3aGl0ZWxpc3QpO1xuICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCByZXNwb25zZS50ZXh0KCk7XG5cbiAgICByZXR1cm4gY29udGVudC5pbmNsdWRlcyhjb21iaW5hdGlvbik7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIiwgIntcbiAgXCJuYW1lXCI6IFwicGtnLXByLW5ld1wiLFxuICBcInZlcnNpb25cIjogXCIwLjAuNDBcIixcbiAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICBcIm1haW5cIjogXCJpbmRleC5qc1wiLFxuICBcInR5cGVcIjogXCJtb2R1bGVcIixcbiAgXCJiaW5cIjoge1xuICAgIFwicGtnLXByLW5ld1wiOiBcImJpbi9jbGkuanNcIlxuICB9LFxuICBcInJlcG9zaXRvcnlcIjoge1xuICAgIFwidHlwZVwiOiBcImdpdFwiLFxuICAgIFwidXJsXCI6IFwiaHR0cHM6Ly9naXRodWIuY29tL3N0YWNrYmxpdHotbGFicy9wa2cucHIubmV3XCIsXG4gICAgXCJkaXJlY3RvcnlcIjogXCJwYWNrYWdlcy9jbGlcIlxuICB9LFxuICBcInNjcmlwdHNcIjoge1xuICAgIFwiZGV2XCI6IFwidHN1cCAtLXdhdGNoXCIsXG4gICAgXCJidWlsZFwiOiBcInRzdXBcIixcbiAgICBcImJ1aWxkOnB1Ymxpc2hcIjogXCJBUElfVVJMPWh0dHBzOi8vcGtnLnByLm5ldy8gdHN1cFwiXG4gIH0sXG4gIFwia2V5d29yZHNcIjogW10sXG4gIFwiYXV0aG9yXCI6IFwiXCIsXG4gIFwibGljZW5zZVwiOiBcIk1JVFwiLFxuICBcImRlcGVuZGVuY2llc1wiOiB7XG4gICAgXCJAanNkZXZ0b29scy9lei1zcGF3blwiOiBcIl4zLjAuNFwiLFxuICAgIFwiQG9jdG9raXQvYWN0aW9uXCI6IFwiXjYuMS4wXCIsXG4gICAgXCJpZ25vcmVcIjogXCJeNS4zLjFcIixcbiAgICBcImlzYmluYXJ5ZmlsZVwiOiBcIl41LjAuMlwiLFxuICAgIFwicGtnLXR5cGVzXCI6IFwiXjEuMS4xXCIsXG4gICAgXCJxdWVyeS1yZWdpc3RyeVwiOiBcIl4zLjAuMVwiLFxuICAgIFwidGlueWdsb2JieVwiOiBcIl4wLjIuOVwiXG4gIH0sXG4gIFwiZGV2RGVwZW5kZW5jaWVzXCI6IHtcbiAgICBcIkBwa2ctcHItbmV3L3V0aWxzXCI6IFwid29ya3NwYWNlOl5cIixcbiAgICBcImNpdHR5XCI6IFwiXjAuMS42XCIsXG4gICAgXCJ0c3VwXCI6IFwiXjguMC4yXCJcbiAgfVxufVxuIiwgImV4cG9ydCBjb25zdCBjcmVhdGVEZWZhdWx0VGVtcGxhdGUgPSAoXG4gIGRlcGVuZGVuY2llczogUmVjb3JkPHN0cmluZywgc3RyaW5nPixcbikgPT4gKHtcbiAgXCJpbmRleC5qc1wiOiBcIlwiLFxuICBcIlJFQURNRS5tZFwiOiBgXG4jIERlZmF1bHQgVGVtcGxhdGVcblxuVGhpcyBpcyBhIHRlbXBsYXRlIHRoYXQgbGV2ZXJhZ2VzIHRoZSBleHBlcmltZW50YWwgdGVtcGxhdGVzIGZlYXR1cmUgaW4gdGhlIFxcYHBrZy5wci5uZXdcXGAgdG9vbC5cblxuIyMgT3ZlcnZpZXdcblxuVGVtcGxhdGVzIGFyZSBwYXJ0aWN1bGFybHkgdXNlZnVsIGZvciBjcmVhdGluZyBsaXZlLCBpbnRlcmFjdGl2ZSBleGFtcGxlcyBvZiB5b3VyIHBhY2thZ2VzLCB3aGljaCBjYW4gYmUgdmVyeSBiZW5lZmljaWFsIGZvciBib3RoIGRldmVsb3BtZW50IGFuZCBkb2N1bWVudGF0aW9uIHB1cnBvc2VzLlxuXG5BcyBhIHVzZXIsIHlvdSBjYW4gY2hlY2sgdGhlIHBhY2thZ2UuanNvbiBmaWxlIGFuZCBzZWUgdGhlIG5ldyBnZW5lcmF0ZWQgcGFja2FnZXMhIFlvdSBjYW4ganVzdCBjb3B5IHRob3NlIGFuZCBwdXQgdGhlbSBpbiB5b3VyIHBhY2thZ2UuanNvbiBvciBpbnN0YWxsIHRoZW0gd2l0aCB5b3VyIGZhdm9yaXRlIHBhY2thZ2UgbWFuYWdlci5cblxuJHtPYmplY3QudmFsdWVzKGRlcGVuZGVuY2llcylcbiAgLm1hcChcbiAgICAodXJsKSA9PiBgXG5cXGBcXGBcXGBzaFxubnBtIGkgJHt1cmx9XG5cXGBcXGBcXGBcbmAsXG4gIClcbiAgLmpvaW4oXCJcIil9XG5cbiMjIFVzYWdlXG5cblRvIHVzZSB0aGlzIGZlYXR1cmUgYXMgYSBtYWludGFpbmVyLCB5b3UgY2FuIHJ1biB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6XG5cblxcYFxcYFxcYHNoXG5ucHggcGtnLXByLW5ldyBwdWJsaXNoICcuL3BhY2thZ2VzL0EnIC0tdGVtcGxhdGUgJy4vZXhhbXBsZXMvKidcblxcYFxcYFxcYFxuXG4jIyBCZW5lZml0c1xuXG4tIEludGVyYWN0aXZlIERlbW9zOiBBdXRvbWF0aWNhbGx5IGNyZWF0ZSBsaXZlIGRlbW9zIHRoYXQgdXNlcnMgY2FuIGludGVyYWN0IHdpdGggZGlyZWN0bHkgaW4gdGhlaXIgYnJvd3Nlci5cbi0gRW5oYW5jZWQgVGVzdGluZzogUXVpY2tseSBzcGluIHVwIGVudmlyb25tZW50cyB0byB0ZXN0IHlvdXIgcGFja2FnZSBpbiBkaWZmZXJlbnQgc2NlbmFyaW9zLlxuLSBJbXByb3ZlZCBTaGFyaW5nOiBFYXNpbHkgc2hhcmUgd29ya2luZyBleGFtcGxlcyBvZiB5b3VyIHBhY2thZ2Ugd2l0aCBjb2xsYWJvcmF0b3JzIG9yIHVzZXJzIHdpdGhvdXQgbmVlZGluZyB0aGVtIHRvIHNldCB1cCB0aGVpciBlbnZpcm9ubWVudC5cbmAsXG4gIFwicGFja2FnZS5qc29uXCI6IEpTT04uc3RyaW5naWZ5KFxuICAgIHtcbiAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgdmVyc2lvbjogXCIxLjAuMFwiLFxuICAgICAgZGVzY3JpcHRpb246IFwiZ2VuZXJhdGVkIGJ5IHBrZy5wci5uZXdcIixcbiAgICAgIG1haW46IFwiaW5kZXguanNcIixcbiAgICAgIGRlcGVuZGVuY2llcyxcbiAgICAgIGtleXdvcmRzOiBbXSxcbiAgICAgIGF1dGhvcjogXCJwa2cucHIubmV3XCIsXG4gICAgICBsaWNlbnNlOiBcIklTQ1wiLFxuICAgIH0sXG4gICAgbnVsbCxcbiAgICAyLFxuICApLFxufSk7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7OztBQXFFQSxTQUFTLFNBQVMsT0FBTztBQUN2QixTQUFPLFVBQVUsUUFBUSxPQUFPLFVBQVU7QUFDNUM7QUFDQSxTQUFTLE1BQU0sWUFBWUEsV0FBVSxZQUFZLEtBQUssUUFBUTtBQUM1RCxNQUFJLENBQUMsU0FBU0EsU0FBUSxHQUFHO0FBQ3ZCLFdBQU8sTUFBTSxZQUFZLENBQUMsR0FBRyxXQUFXLE1BQU07QUFBQSxFQUNoRDtBQUNBLFFBQU0sU0FBUyxPQUFPLE9BQU8sQ0FBQyxHQUFHQSxTQUFRO0FBQ3pDLGFBQVcsT0FBTyxZQUFZO0FBQzVCLFFBQUksUUFBUSxlQUFlLFFBQVEsZUFBZTtBQUNoRDtBQUFBLElBQ0Y7QUFDQSxVQUFNLFFBQVEsV0FBVyxHQUFHO0FBQzVCLFFBQUksVUFBVSxRQUFRLFVBQVUsUUFBUTtBQUN0QztBQUFBLElBQ0Y7QUFDQSxRQUFJLFVBQVUsT0FBTyxRQUFRLEtBQUssT0FBTyxTQUFTLEdBQUc7QUFDbkQ7QUFBQSxJQUNGO0FBQ0EsUUFBSSxNQUFNLFFBQVEsS0FBSyxL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LENBQUMsRUFBRSxJQUFJLE9BQUcsSUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFO0FBQUcsVUFBTUEsS0FBRSxPQUFPLFNBQVMsR0FBRSxFQUFFO0FBQUUsV0FBTyxDQUFDQSxNQUFHLEtBQUcsS0FBSUEsTUFBRyxJQUFFLEtBQUlBLEtBQUUsR0FBRztBQUFBLEVBQUMsR0FBRSxZQUFXLE1BQUUsR0FBRSxjQUFhLEVBQUMsT0FBTSxPQUFHLEVBQUUsYUFBYSxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUMsR0FBRSxZQUFXLE1BQUUsR0FBRSxlQUFjLEVBQUMsT0FBTSxPQUFHO0FBQUMsUUFBRyxJQUFFO0FBQUUsYUFBTyxLQUFHO0FBQUUsUUFBRyxJQUFFO0FBQUcsYUFBTyxNQUFJLElBQUU7QUFBRyxRQUFJLEdBQUUsR0FBRUE7QUFBRSxRQUFHLEtBQUc7QUFBSSxZQUFJLElBQUUsT0FBSyxLQUFHLEtBQUcsS0FBSSxJQUFFLEdBQUVBLEtBQUU7QUFBQSxTQUFPO0FBQUMsV0FBRztBQUFHLFlBQU0sSUFBRSxJQUFFO0FBQUcsVUFBRSxLQUFLLE1BQU0sSUFBRSxFQUFFLElBQUUsR0FBRSxJQUFFLEtBQUssTUFBTSxJQUFFLENBQUMsSUFBRSxHQUFFQSxLQUFFLElBQUUsSUFBRTtBQUFBLElBQUU7QUFBQyxVQUFNLElBQUUsS0FBSyxJQUFJLEdBQUUsR0FBRUEsRUFBQyxJQUFFO0FBQUUsUUFBRyxNQUFJO0FBQUUsYUFBTztBQUFHLFFBQUksSUFBRSxNQUFJLEtBQUssTUFBTUEsRUFBQyxLQUFHLElBQUUsS0FBSyxNQUFNLENBQUMsS0FBRyxJQUFFLEtBQUssTUFBTSxDQUFDO0FBQUcsV0FBTyxNQUFJLE1BQUksS0FBRyxLQUFJO0FBQUEsRUFBQyxHQUFFLFlBQVcsTUFBRSxHQUFFLFdBQVUsRUFBQyxPQUFNLENBQUMsR0FBRSxHQUFFLE1BQUksRUFBRSxjQUFjLEVBQUUsYUFBYSxHQUFFLEdBQUUsQ0FBQyxDQUFDLEdBQUUsWUFBVyxNQUFFLEdBQUUsV0FBVSxFQUFDLE9BQU0sT0FBRyxFQUFFLGNBQWMs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UUEsTUFBRyxNQUFLLEtBQUcsTUFBSyxJQUFFQSxNQUFHLEtBQUcsR0FBRSxLQUFHLFFBQU8sS0FBRyxTQUFPLFNBQU8sS0FBRyxLQUFHLFNBQU8sU0FBTyxLQUFHLEtBQUcsUUFBTSxNQUFJLEtBQUcsUUFBTSxTQUFPLEtBQUcsS0FBRyxTQUFPLFNBQU8sS0FBRyxLQUFHLFNBQU8sU0FBTyxLQUFHLEtBQUcsU0FBTyxTQUFPLEtBQUcsS0FBRyxTQUFPLFNBQU8sS0FBRyxLQUFHLFNBQU8sU0FBTyxLQUFHLEtBQUcsUUFBTSxNQUFJLFFBQU0sS0FBRyxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sU0FBTyxLQUFHLEtBQUcsU0FBTyxTQUFPLEtBQUcsS0FBRyxTQUFPLFNBQU8sS0FBRyxLQUFHLFNBQU8sU0FBTyxLQUFHLEtBQUcsU0FBTyxTQUFPLEtBQUcsS0FBRyxTQUFPLFNBQU8sS0FBRyxLQUFHLFNBQU8sU0FBTyxLQUFHLEtBQUcsU0FBTyxTQUFPLEtBQUcsS0FBRyxTQUFPLFNBQU8sS0FBRyxLQUFHLFNBQU8sU0FBTyxLQUFHLEtBQUcsU0FBTyxTQUFPLEtBQUcsS0FBRyxTQUFPLFNBQU8sS0FBRyxLQUFHLFNBQU8sU0FBTyxLQUFHLEtBQUcsU0FBTyxTQUFPLEtBQUcsS0FBRyxTQUFPLFNBQU8sS0FBRyxLQUFHLFNBQU8sU0FBTyxLQUFHLEtBQUcsU0FBTyxTQUFPLEtBQUcsS0FBRyxTQUFPLFNBQU8sS0FBRyxLQUFHLFNBQU8sU0FBTyxLQUFHLEtBQUcsU0FBTyxTQUFPLEtBQUcsS0FBRyxTQUFPLFNBQU8sS0FBRyxLQUFHLFNBQU8sU0FBTyxLQUFHLEtBQUcsU0FBTyxTQUFPLEtBQUcsS0FBRyxTQUFPLFNBQU8sS0FBRyxLQUFHLFNBQU8sU0FBTyxLQUFHLEtBQUcsU0FBTyxTQUFPLEtBQUcsS0FBRyxTQUFPLFVBQVEsS0FBRyxLQUFHLFVBQVEsVUFBUSxLQUFHLEtBQUcsVUFBUSxVQUFRLEtBQUcsS0FBRyxVQUFRLFVBQVEsS0FBRyxLQUFHLFVBQVEsVUFBUSxLQUFHLEtBQUcsVUFBUSxVQUFRLEtBQUcsS0FBRyxVQUFRLFVBQVEsS0FBRyxLQUFHLFVBQVEsVUFBUSxLQUFHLEtBQUcsU0FBTyxNQUFJLE1BQUksS0FBRyxLQUFHLE9BQUssT0FBSyxLQUFHLEtBQUcsT0FBSyxPQUFLLEtBQUcsS0FBRyxPQUFLLEtBQUcsT0FBSyxLQUFHLE9BQUssU0FBTyxLQUFHLEtBQUcsU0FBTyxTQUFPLEtBQUcsS0FBRyxRQUFNLE9BQUssS0FBRyxPQUFLLEtBQUcsT0FBSyxPQUFLLEtBQUcsS0FBRyxPQUFLLEtBQUcsT0FBSyxPQUFLLEtBQUcsS0FBRyxPQUFLLE9BQUssS0FBRyxLQUFHLE9BQUssT0FBSyxLQUFHLEtBQUcsT0FBSyxPQUFLLEtBQUcsS0FBRyxPQUFLLEtBQUcsT0FBSyxLQUFHLE9BQUssT0FBSyxLQUFHLEtBQUcsT0FBSyxPQUFLLEtBQUcsS0FBRyxPQUFLLEtBQUcsT0FBSyxPQUFLLEtBQUcsS0FBRyxPQUFLLE9BQUssS0FBRyxLQUFHLE9BQUssS0FBRyxPQUFLLE9BQUssS0FBRyxLQUFHLE9BQUssT0FBSyxLQUFHLEtBQUcsT0FBSyxLQUFHLE9BQUssS0FBRyxPQUFLLEtBQUcsT0FBSyxLQUFHLE9BQUssS0FBRyxPQUFLLEtBQUcsT0FBSyxPQUFLLEtBQUcsS0FBRyxPQUFLLEtBQUcsT0FBSyxPQUFLLEtBQUcsS0FBRyxPQUFLLEtBQUcsT0FBSyxPQUFLLEtBQUcsS0FBRyxPQUFLLEtBQUcsT0FBSyxPQUFLLEtBQUcsS0FBRyxPQUFLLEtBQUcsT0FBSyxPQUFLLEtBQUcsS0FBRyxPQUFLLE9BQUssS0FBRyxLQUFHLE9BQUssS0FBRyxPQUFLLEtBQUcsT0FBSyxLQUFHLE9BQUssS0FBRyxPQUFLLEtBQUcsT0FBSyxLQUFHLE9BQUssS0FBRyxPQUFLLEtBQUcsT0FBSyxLQUFHLE9BQUssS0FBRyxPQUFLLEtBQUcsT0FBSyxLQUFHLE9BQUssS0FBRyxPQUFLLE9BQUssS0FBRyxLQUFHLE9BQUssS0FBRyxPQUFLLEtBQUcsT0FBSyxPQUFLLEtBQUcsS0FBRyxPQUFLLEtBQUcsT0FBSyxLQUFHLE9BQUssT0FBSyxLQUFHLEtBQUcsT0FBSyxPQUFLLEtBQUcsS0FBRyxPQUFLLE9BQUssS0FBRyxLQUFHLE9BQUssT0FBSyxLQUFHLEtBQUcsT0FBSyxPQUFLLEtBQUcsS0FBRyxPQUFLLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLEtBQUcsUUFBTSxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLEtBQUcsUUFBTSxLQUFHLFFBQU0sS0FBRyxRQUFNLEtBQUcsUUFBTSxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxLQUFHLFFBQU0sS0FBRyxRQUFNLEtBQUcsUUFBTSxLQUFHLFFBQU0sS0FBRyxRQUFNLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLEtBQUcsUUFBTSxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLEtBQUcsUUFBTSxLQUFHLFFBQU0sS0FBRyxRQUFNLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sS0FBRyxRQUFNLEtBQUcsUUFBTSxLQUFHLFFBQU0sS0FBRyxRQUFNLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLEtBQUcsUUFBTSxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLEtBQUcsUUFBTSxLQUFHLFFBQU0sS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLEtBQUcsUUFBTSxLQUFHLFFBQU0sS0FBRyxRQUFNLEtBQUcsUUFBTSxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLEtBQUcsUUFBTSxLQUFHLFFBQU0sS0FBRyxRQUFNLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLEtBQUcsU0FBTyxLQUFHLFNBQU8sU0FBTyxLQUFHLEtBQUcsU0FBTyxTQUFPLEtBQUcsS0FBRyxTQUFPLFNBQU8sS0FBRyxLQUFHLFNBQU8sU0FBTyxLQUFHLEtBQUcsU0FBTyxTQUFPLEtBQUcsS0FBRyxTQUFPLEtBQUcsU0FBTyxVQUFRLEtBQUcsS0FBRyxVQUFRLFVBQVEsS0FBRyxLQUFHLFVBQVEsVUFBUSxLQUFHLEtBQUcsVUFBUSxVQUFRLEtBQUcsS0FBRyxVQUFRLFVBQVEsS0FBRyxLQUFHLFVBQVEsVUFBUSxLQUFHLEtBQUcsV0FBUyxXQUFTLEtBQUcsS0FBRyxVQUFRLE1BQUk7QUFBQSxNQUFHLEdBQUUsRUFBRSxrQkFBZ0IsU0FBUyxHQUFFO0FBQUMsWUFBSUEsS0FBRSxLQUFLLGVBQWUsQ0FBQztBQUFFLGVBQU9BLE1BQUcsT0FBS0EsTUFBRyxPQUFLQSxNQUFHLE1BQUksSUFBRTtBQUFBLE1BQUM7QUFBRSxlQUFTLEVBQUUsR0FBRTtBQUFDLGVBQU8sRUFBRSxNQUFNLGtEQUFrRCxLQUFHLENBQUM7QUFBQSxNQUFDO0FBQUMsUUFBRSxTQUFPLFNBQVMsR0FBRTtBQUFDLGlCQUFRQSxLQUFFLEVBQUUsQ0FBQyxHQUFFLElBQUUsR0FBRSxJQUFFLEdBQUUsSUFBRUEsR0FBRSxRQUFPO0FBQUksY0FBRSxJQUFFLEtBQUssZ0JBQWdCQSxHQUFFLENBQUMsQ0FBQztBQUFFLGVBQU87QUFBQSxNQUFDLEdBQUUsRUFBRSxRQUFNLFNBQVMsR0FBRUEsSUFBRSxHQUFFO0FBQUMsa0JBQVEsRUFBRSxPQUFPLENBQUMsR0FBRUEsS0FBRUEsTUFBRyxHQUFFLElBQUUsS0FBRyxHQUFFQSxLQUFFLE1BQUlBLEtBQUUsVUFBUUEsS0FBRyxJQUFFLE1BQUksSUFBRSxVQUFRO0FBQUcsaUJBQVEsSUFBRSxJQUFHLElBQUUsR0FBRSxJQUFFLEVBQUUsQ0FBQyxHQUFFLElBQUUsR0FBRSxJQUFFLEVBQUUsUUFBTyxLQUFJO0FBQUMsY0FBSSxJQUFFLEVBQUUsQ0FBQyxHQUFFLElBQUUsRUFBRSxPQUFPLENBQUM7QUFBRSxjQUFHLEtBQUdBLE1BQUcsS0FBRyxJQUFFLElBQUU7QUFBRyxnQkFBRyxJQUFFLEtBQUc7QUFBRSxtQkFBRztBQUFBO0FBQU87QUFBTSxlQUFHO0FBQUEsUUFBRTtBQUFDLGVBQU87QUFBQSxNQUFDO0FBQUEsSUFBRSxHQUFHLENBQUM7QUFBRSxJQUFNQyxLQUFFO0FBQUUsSUFBSSxJQUFFLFdBQVU7QUFBQyxhQUFPO0FBQUEsSUFBZ3llO0FBQW9YLElBQU0sSUFBRTtBQUFSLElBQVcsSUFBRSxDQUFDLElBQUUsTUFBSSxPQUFHLFFBQVEsSUFBRSxDQUFDO0FBQWxDLElBQXNDLElBQUUsQ0FBQyxJQUFFLE1BQUksT0FBRyxRQUFRLEtBQUcsQ0FBQyxNQUFNLENBQUM7QUFBckUsSUFBeUUsSUFBRSxDQUFDLElBQUUsTUFBSSxDQUFDLEdBQUUsR0FBRSxNQUFJLFFBQVEsS0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0FBQXhILElBQTRILElBQUUsRUFBQyxVQUFTLEVBQUMsT0FBTSxDQUFDLEdBQUUsQ0FBQyxHQUFFLE1BQUssQ0FBQyxHQUFFLEVBQUUsR0FBRSxLQUFJLENBQUMsR0FBRSxFQUFFLEdBQUUsUUFBTyxDQUFDLEdBQUUsRUFBRSxHQUFFLFdBQVUsQ0FBQyxHQUFFLEVBQUUsR0FBRSxVQUFTLENBQUMsSUFBRyxFQUFFLEdBQUUsU0FBUSxDQUFDLEdBQUUsRUFBRSxHQUFFLFFBQU8sQ0FBQyxHQUFFLEVBQUUsR0FBRSxlQUFjLENBQUMsR0FBRSxFQUFFLEVBQUMsR0FBRSxPQUFNLEVBQUMsT0FBTSxDQUFDLElBQUcsRUFBRSxHQUFFLEtBQUksQ0FBQyxJQUFHLEVBQUUsR0FBRSxPQUFNLENBQUMsSUFBRyxFQUFFLEdBQUUsUUFBTyxDQUFDLElBQUcsRUFBRSxHQUFFLE1BQUssQ0FBQyxJQUFHLEVBQUUsR0FBRSxTQUFRLENBQUMsSUFBRyxFQUFFLEdBQUUsTUFBSyxDQUFDLElBQUcsRUFBRSxHQUFFLE9BQU0sQ0FBQyxJQUFHLEVBQUUsR0FBRSxhQUFZLENBQUMsSUFBRyxFQUFFLEdBQUUsTUFBSyxDQUFDLElBQUcsRUFBRSxHQUFFLE1BQUssQ0FBQyxJQUFHLEVBQUUsR0FBRSxXQUFVLENBQUMsSUFBRyxFQUFFLEdBQUUsYUFBWSxDQUFDLElBQUcsRUFBRSxH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QUFNLElBQUUsS0FBSyxZQUFZLElBQUksQ0FBQyxLQUFHLENBQUM7QUFBRSxVQUFFLEtBQUssRUFBQyxJQUFHLEVBQUMsQ0FBQyxHQUFFLEtBQUssWUFBWSxJQUFJLEdBQUUsQ0FBQztBQUFBLE1BQUU7QUFBQSxNQUFDLEtBQUssR0FBRSxHQUFFO0FBQUMsY0FBTSxJQUFFLEtBQUssWUFBWSxJQUFJLENBQUMsS0FBRyxDQUFDO0FBQUUsVUFBRSxLQUFLLEVBQUMsSUFBRyxHQUFFLE1BQUssS0FBRSxDQUFDLEdBQUUsS0FBSyxZQUFZLElBQUksR0FBRSxDQUFDO0FBQUEsTUFBRTtBQUFBLE1BQUMsS0FBSyxNQUFLLEdBQUU7QUFBQyxjQUFNLElBQUUsS0FBSyxZQUFZLElBQUksQ0FBQyxLQUFHLENBQUMsR0FBRUEsS0FBRSxDQUFDO0FBQUUsbUJBQVUsS0FBSztBQUFFLFlBQUUsR0FBRyxHQUFHLENBQUMsR0FBRSxFQUFFLFFBQU1BLEdBQUUsS0FBSyxNQUFJLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQyxHQUFFLENBQUMsQ0FBQztBQUFFLG1CQUFVLEtBQUtBO0FBQUUsWUFBRTtBQUFBLE1BQUU7QUFBQSxNQUFDLGNBQWE7QUFBQyxhQUFLLFlBQVksTUFBTTtBQUFBLE1BQUU7QUFBQSxNQUFDLFdBQVcsR0FBRSxHQUFFO0FBQUMsWUFBRyxLQUFLLFVBQVEsWUFBVSxLQUFLLFFBQU0sV0FBVSxHQUFHLFFBQU0sQ0FBQyxLQUFLLFVBQVEsRUFBRSxJQUFJLEVBQUUsSUFBSSxLQUFHLEtBQUssS0FBSyxVQUFTLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFFLEdBQUcsUUFBTSxHQUFHLElBQUksRUFBRSxJQUFJLEtBQUcsS0FBSyxLQUFLLFVBQVMsRUFBRSxJQUFJLEdBQUUsTUFBSSxFQUFFLFlBQVksTUFBSSxPQUFLLEVBQUUsWUFBWSxNQUFJLFFBQU0sS0FBSyxLQUFLLFdBQVUsRUFBRSxZQUFZLE1BQUksR0FBRyxHQUFFLEtBQUcsS0FBSyxLQUFLLE9BQU0sRUFBRSxZQUFZLENBQUMsR0FBRSxHQUFHLFNBQU8sVUFBUztBQUFDLGNBQUcsS0FBSyxLQUFLLFVBQVM7QUFBQyxrQkFBTSxJQUFFLEtBQUssS0FBSyxTQUFTLEtBQUssS0FBSztBQUFFLGtCQUFJLEtBQUssUUFBTSxHQUFFLEtBQUssUUFBTSxTQUFRLEtBQUssR0FBRyxNQUFNLEtBQUssS0FBSztBQUFBLFVBQUc7QUFBQyxlQUFLLFVBQVEsWUFBVSxLQUFLLFFBQU07QUFBQSxRQUFVO0FBQUMsY0FBSSxRQUFNLEtBQUssUUFBTSxZQUFXLEtBQUssVUFBUSxZQUFVLEtBQUssVUFBUSxhQUFXLEtBQUssS0FBSyxVQUFVLEdBQUUsS0FBSyxPQUFPLElBQUcsS0FBSyxVQUFRLFlBQVUsS0FBSyxVQUFRLGFBQVcsS0FBSyxNQUFNO0FBQUEsTUFBRTtBQUFBLE1BQUMsUUFBTztBQUFDLGFBQUssTUFBTSxPQUFPLEdBQUUsS0FBSyxNQUFNLGVBQWUsWUFBVyxLQUFLLFVBQVUsR0FBRSxLQUFLLE9BQU8sTUFBTTtBQUFBLENBQy9rRixHQUFFLEVBQUUsS0FBSyxPQUFNLEtBQUUsR0FBRSxLQUFLLEdBQUcsTUFBTSxHQUFFLEtBQUssS0FBSyxHQUFHLEtBQUssS0FBSyxJQUFHLEtBQUssS0FBSyxHQUFFLEtBQUssWUFBWTtBQUFBLE1BQUU7QUFBQSxNQUFDLGdCQUFlO0FBQUMsY0FBTSxJQUFFLEVBQUUsS0FBSyxZQUFXLFFBQVEsT0FBTyxTQUFRLEVBQUMsTUFBSyxLQUFFLENBQUMsRUFBRSxNQUFNO0FBQUEsQ0FDL0ssRUFBRSxTQUFPO0FBQUUsYUFBSyxPQUFPLE1BQU0sSUFBSSxPQUFPLEtBQUssTUFBSyxJQUFFLEVBQUUsQ0FBQztBQUFBLE1BQUU7QUFBQSxNQUFDLFNBQVE7QUFBQyxjQUFNLElBQUUsRUFBRSxLQUFLLFFBQVEsSUFBSSxLQUFHLElBQUcsUUFBUSxPQUFPLFNBQVEsRUFBQyxNQUFLLEtBQUUsQ0FBQztBQUFFLFlBQUcsTUFBSSxLQUFLLFlBQVc7QUFBQyxjQUFHLEtBQUssVUFBUTtBQUFVLGlCQUFLLE9BQU8sTUFBTSxJQUFJLE9BQU8sSUFBSTtBQUFBLGVBQU87QUFBQyxrQkFBTSxJQUFFLEdBQUcsS0FBSyxZQUFXLENBQUM7QUFBRSxnQkFBRyxLQUFLLGNBQWMsR0FBRSxLQUFHLEdBQUcsV0FBUyxHQUFFO0FBQUMsb0JBQU0sSUFBRSxFQUFFLENBQUM7QUFBRSxtQkFBSyxPQUFPLE1BQU0sSUFBSSxPQUFPLEtBQUssR0FBRSxDQUFDLENBQUMsR0FBRSxLQUFLLE9BQU8sTUFBTSxJQUFJLE1BQU0sTUFBTSxDQUFDLENBQUM7QUFBRSxvQkFBTUEsS0FBRSxFQUFFLE1BQU07QUFBQSxDQUNwWjtBQUFFLG1CQUFLLE9BQU8sTUFBTUEsR0FBRSxDQUFDLENBQUMsR0FBRSxLQUFLLGFBQVcsR0FBRSxLQUFLLE9BQU8sTUFBTSxJQUFJLE9BQU8sS0FBSyxHQUFFQSxHQUFFLFNBQU8sSUFBRSxDQUFDLENBQUM7QUFBRTtBQUFBLFlBQU0sV0FBUyxLQUFHLEdBQUcsU0FBTyxHQUFFO0FBQUMsb0JBQU0sSUFBRSxFQUFFLENBQUM7QUFBRSxtQkFBSyxPQUFPLE1BQU0sSUFBSSxPQUFPLEtBQUssR0FBRSxDQUFDLENBQUMsR0FBRSxLQUFLLE9BQU8sTUFBTSxJQUFJLE1BQU0sS0FBSyxDQUFDO0FBQUUsb0JBQU0sSUFBRSxFQUFFLE1BQU07QUFBQSxDQUN2TyxFQUFFLE1BQU0sQ0FBQztBQUFFLG1CQUFLLE9BQU8sTUFBTSxFQUFFLEtBQUs7QUFBQSxDQUNwQyxDQUFDLEdBQUUsS0FBSyxhQUFXO0FBQUU7QUFBQSxZQUFNO0FBQUMsaUJBQUssT0FBTyxNQUFNLElBQUksTUFBTSxLQUFLLENBQUM7QUFBQSxVQUFFO0FBQUMsZUFBSyxPQUFPLE1BQU0sQ0FBQyxHQUFFLEtBQUssVUFBUSxjQUFZLEtBQUssUUFBTSxXQUFVLEtBQUssYUFBVztBQUFBLFFBQUU7QUFBQSxNQUFDO0FBQUEsSUFBQztBQUFDLElBQU0sS0FBTixjQUFpQixFQUFDO0FBQUEsTUFBQyxJQUFJLFNBQVE7QUFBQyxlQUFPLEtBQUssUUFBTSxJQUFFO0FBQUEsTUFBQztBQUFBLE1BQUMsSUFBSSxTQUFRO0FBQUMsZUFBTyxLQUFLLFdBQVM7QUFBQSxNQUFDO0FBQUEsTUFBQyxZQUFZLEdBQUU7QUFBQyxjQUFNLEdBQUUsS0FBRSxHQUFFLEtBQUssUUFBTSxDQUFDLENBQUMsRUFBRSxjQUFhLEtBQUssR0FBRyxTQUFRLE1BQUk7QUFBQyxlQUFLLFFBQU0sS0FBSztBQUFBLFFBQU8sQ0FBQyxHQUFFLEtBQUssR0FBRyxXQUFVLE9BQUc7QUFBQyxlQUFLLE9BQU8sTUFBTSxJQUFJLE9BQU8sS0FBSyxHQUFFLEVBQUUsQ0FBQyxHQUFFLEtBQUssUUFBTSxHQUFFLEtBQUssUUFBTSxVQUFTLEtBQUssTUFBTTtBQUFBLFFBQUUsQ0FBQyxHQUFFLEtBQUssR0FBRyxVQUFTLE1BQUk7QUFBQyxlQUFLLFFBQU0sQ0FBQyxLQUFLO0FBQUEsUUFBTSxDQUFDO0FBQUEsTUFBRTtBQUFBLElBQUM7QUFBQyxJQUFNLEtBQU4sY0FBaUIsRUFBQztBQUFBLE1BQUMsWUFBWSxHQUFFO0FBQUMsY0FBTSxHQUFFLEtBQUUsR0FBRSxLQUFLLFNBQU8sR0FBRSxLQUFLLFVBQVEsRUFBRSxTQUFRLEtBQUssUUFBTSxDQUFDLEdBQUcsRUFBRSxpQkFBZSxDQUFDLENBQUMsR0FBRSxLQUFLLFNBQU8sS0FBSyxJQUFJLEtBQUssUUFBUSxVQUFVLENBQUMsRUFBQyxPQUFNLEVBQUMsTUFBSSxNQUFJLEVBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxLQUFLLEdBQUcsT0FBTSxPQUFHO0FBQUMsZ0JBQUksT0FBSyxLQUFLLFVBQVU7QUFBQSxRQUFFLENBQUMsR0FBRSxLQUFLLEdBQUcsVUFBUyxPQUFHO0FBQUMsa0JBQU8sR0FBRTtBQUFBLFlBQUMsS0FBSTtBQUFBLFlBQU8sS0FBSTtBQUFLLG1CQUFLLFNBQU8sS0FBSyxXQUFTLElBQUUsS0FBSyxRQUFRLFNBQU8sSUFBRSxLQUFLLFNBQU87QUFBRTtBQUFBLFlBQU0sS0FBSTtBQUFBLFlBQU8sS0FBSTtBQUFRLG1CQUFLLFNBQU8sS0FBSyxXQUFTLEtBQUssUUFBUSxTQUFPLElBQUUsSUFBRSxLQUFLLFNBQU87QUFBRTtBQUFBLFlBQU0sS0FBSTtBQUFRLG1CQUFLLFlBQVk7QUFBRTtBQUFBLFVBQUs7QUFBQSxRQUFDLENBQUM7QUFBQSxNQUFFO0FBQUEsTUFBQyxJQUFJLFNBQVE7QUFBQyxlQUFPLEtBQUssUUFBUSxLQUFLLE1BQU0sRUFBRTtBQUFBLE1BQUs7QUFBQSxNQUFDLFlBQVc7QUFBQyxjQUFNLElBQUUsS0FBSyxNQUFNLFdBQVMsS0FBSyxRQUFRO0FBQU8sYUFBSyxRQUFNLElBQUUsQ0FBQyxJQUFFLEtBQUssUUFBUSxJQUFJLE9BQUcsRUFBRSxLQUFLO0FBQUEsTUFBRTtBQUFBLE1BQUMsY0FBYTtBQUFDLGNBQU0sSUFBRSxLQUFLLE1BQU0sU0FBUyxLQUFLLE1BQU07QUFBRSxhQUFLLFFBQU0sSUFBRSxLQUFLLE1BQU0sT0FBTyxPQUFHLE1BQUksS0FBSyxNQUFNLElBQUUsQ0FBQyxHQUFHLEtBQUssT0FBTSxLQUFLLE1BQU07QUFBQSxNQUFFO0FBQUEsSUFBQztBQUFDLElBQU0sS0FBTixjQUFpQixFQUFDO0FBQUEsTUFBQyxZQUFZLEdBQUU7QUFBQyxjQUFNLEdBQUUsS0FBRSxHQUFFLEtBQUssU0FBTyxHQUFFLEtBQUssVUFBUSxFQUFFLFNBQVEsS0FBSyxTQUFPLEtBQUssUUFBUSxVQUFVLENBQUMsRUFBQyxPQUFNLEVBQUMsTUFBSSxNQUFJLEVBQUUsWUFBWSxHQUFFLEtBQUssV0FBUyxPQUFLLEtBQUssU0FBTyxJQUFHLEtBQUssWUFBWSxHQUFFLEtBQUssR0FBRyxVQUFTLE9BQUc7QUFBQyxrQkFBTyxHQUFFO0FBQUEsWUFBQyxLQUFJO0FBQUEsWUFBTyxLQUFJO0FBQUssbUJBQUssU0FBTyxLQUFLLFdBQVMsSUFBRSxLQUFLLFFBQVEsU0FBTyxJQUFFLEtBQUssU0FBTztBQUFFO0FBQUEsWUFBTSxLQUFJO0FBQUEsWUFBTyxLQUFJO0FBQVEsbUJBQUssU0FBTyxLQUFLLFdBQVMsS0FBSyxRQUFRLFNBQU8sSUFBRSxJQUFFLEtBQUssU0FBTztBQUFFO0FBQUEsVUFBSztBQUFDLGVBQUssWUFBWTtBQUFBLFFBQUUsQ0FBQztBQUFBLE1BQUU7QUFBQSxNQUFDLElBQUksU0FBUTtBQUFDLGVBQU8sS0FBSyxRQUFRLEtBQUssTUFBTTtBQUFBLE1BQUM7QUFBQSxNQUFDLGNBQWE7QUFBQyxhQUFLLFFBQU0sS0FBSyxPQUFPO0FBQUEsTUFBTTtBQUFBLElBQUM7QUFBQyxJQUFNLEtBQU4sY0FBaUIsRUFBQztBQUFBLE1BQUMsWUFBWSxHQUFFO0FBQUMsY0FBTSxDQUFDLEdBQUUsS0FBSyxrQkFBZ0IsSUFBRyxLQUFLLEdBQUcsWUFBVyxNQUFJO0FBQUMsZUFBSyxVQUFRLEtBQUssUUFBTSxFQUFFLGVBQWMsS0FBSyxrQkFBZ0IsS0FBSztBQUFBLFFBQU0sQ0FBQyxHQUFFLEtBQUssR0FBRyxTQUFRLE1BQUk7QUFBQyxjQUFHLEtBQUssVUFBUSxLQUFLLE1BQU07QUFBTyxpQkFBSyxrQkFBZ0IsR0FBRyxLQUFLLEtBQUssR0FBRyxFQUFFLFFBQVEsRUFBRSxPQUFPLEdBQUcsQ0FBQyxDQUFDO0FBQUEsZUFBUTtBQUFDLGtCQUFNLElBQUUsS0FBSyxNQUFNLE1BQU0sR0FBRSxLQUFLLE1BQU0sR0FBRSxJQUFFLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTTtBQUFFLGlCQUFLLGtCQUFnQixHQUFHLENBQUMsR0FBRyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFBQSxVQUFHO0FBQUEsUUFBQyxDQUFDO0FBQUEsTUFBRTtBQUFBLE1BQUMsSUFBSSxTQUFRO0FBQUMsZUFBTyxLQUFLO0FBQUEsTUFBTztBQUFBLElBQUM7QUFFbnZFLElBQU0sVUFBVSxtQkFBbUI7QUFDbkMsSUFBTSxJQUFJLENBQUNRLElBQUcsYUFBYSxVQUFVQSxLQUFJO0FBQ3pDLElBQU0sZ0JBQWdCLEVBQUUsVUFBVSxHQUFHO0FBQ3JDLElBQU0sZ0JBQWdCLEVBQUUsVUFBVSxHQUFHO0FBQ3JDLElBQU0sZUFBZSxFQUFFLFVBQVUsR0FBRztBQUNwQyxJQUFNLGdCQUFnQixFQUFFLFVBQVUsUUFBUTtBQUMxQyxJQUFNLFFBQVE7QUFDZCxJQUFNLFlBQVk7QUFDbEIsSUFBTSxpQkFBaUIsRUFBRSxVQUFVLEdBQUc7QUFDdEMsSUFBTSxtQkFBbUIsRUFBRSxVQUFVLEdBQUc7QUFDeEMsSUFBTSxvQkFBb0IsRUFBRSxVQUFVLFVBQVU7QUFDaEQsSUFBTSxzQkFBc0IsRUFBRSxVQUFVLEtBQUs7QUFDN0MsSUFBTSxzQkFBc0IsRUFBRSxVQUFVLEtBQUs7QUFDN0MsSUFBTSxTQUFTLENBQUMsVUFBVTtBQUN4QixjQUFRLE9BQU87QUFBQSxRQUNiLEtBQUs7QUFBQSxRQUNMLEtBQUssVUFBVTtBQUNiLGlCQUFPLE9BQU8sS0FBSyxhQUFhO0FBQUEsUUFDbEM7QUFBQSxRQUNBLEtBQUssVUFBVTtBQUNiLGlCQUFPLE9BQU8sSUFBSSxhQUFhO0FBQUEsUUFDakM7QUFBQSxRQUNBLEtBQUssU0FBUztBQUNaLGlCQUFPLE9BQU8sT0FBTyxZQUFZO0FBQUEsUUFDbkM7QUFBQSxRQUNBLEtBQUssVUFBVTtBQUNiLGlCQUFPLE9BQU8sTUFBTSxhQUFhO0FBQUEsUUFDbkM7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUNBLElBQU0sT0FBTyxDQUFDLFNBQVM7QUFDckIsYUFBTyxJQUFJLEdBQUc7QUFBQSxRQUNaLFVBQVUsS0FBSztBQUFBLFFBQ2YsYUFBYSxLQUFLO0FBQUEsUUFDbEIsY0FBYyxLQUFLO0FBQUEsUUFDbkIsY0FBYyxLQUFLO0FBQUEsUUFDbkIsU0FBUztBQUNQLGdCQUFNLFFBQVEsR0FBRyxPQUFPLEtBQUssS0FBSyxDQUFDO0FBQUEsRUFDdkMsT0FBTyxLQUFLLEtBQUssQ0FBQyxJQUFJLEtBQUssT0FBTztBQUFBO0FBRTlCLGdCQUFNLGNBQWMsS0FBSyxjQUFjLE9BQU8sUUFBUSxLQUFLLFlBQVksQ0FBQyxDQUFDLElBQUksT0FBTyxJQUFJLEtBQUssWUFBWSxNQUFNLENBQUMsQ0FBQyxJQUFJLE9BQU8sUUFBUSxPQUFPLE9BQU8sR0FBRyxDQUFDO0FBQ3RKLGdCQUFNLFFBQVEsS0FBSyxRQUFRLEtBQUssa0JBQWtCO0FBQ2xELGtCQUFRLEtBQUssT0FBTztBQUFBLFlBQ2xCLEtBQUssU0FBUztBQUNaLHFCQUFPLEdBQUcsTUFBTSxLQUFLLENBQUM7QUFBQSxFQUM5QixPQUFPO0FBQUEsZ0JBQ0c7QUFBQSxjQUNGLENBQUMsSUFBSSxLQUFLO0FBQUEsRUFDbEIsT0FBTyxPQUFPLFNBQVMsQ0FBQyxJQUFJLE9BQU87QUFBQSxnQkFDekIsS0FBSztBQUFBLGNBQ1AsQ0FBQztBQUFBO0FBQUEsWUFFSDtBQUFBLFlBQ0EsS0FBSyxVQUFVO0FBQ2IscUJBQU8sR0FBRyxLQUFLLEdBQUcsT0FBTyxLQUFLLEtBQUssQ0FBQyxJQUFJLE9BQU87QUFBQSxnQkFDN0MsS0FBSyxTQUFTLEtBQUs7QUFBQSxjQUNyQixDQUFDO0FBQUEsWUFDSDtBQUFBLFlBQ0EsS0FBSyxVQUFVO0FBQ2IscUJBQU8sR0FBRyxLQUFLLEdBQUcsT0FBTyxLQUFLLEtBQUssQ0FBQyxJQUFJLE9BQU87QUFBQSxnQkFDN0MsT0FBTyxJQUFJLEtBQUssU0FBUyxFQUFFO0FBQUEsY0FDN0IsQ0FBQyxHQUFHLEtBQUssT0FBTyxLQUFLLElBQUksT0FBTyxPQUFPLEtBQUssS0FBSyxJQUFJLEVBQUU7QUFBQSxZQUN6RDtBQUFBLFlBQ0EsU0FBUztBQUNQLHFCQUFPLEdBQUcsS0FBSyxHQUFHLE9BQU8sS0FBSyxLQUFLLENBQUMsSUFBSSxLQUFLO0FBQUEsRUFDckQsT0FBTztBQUFBLGdCQUNHO0FBQUEsY0FDRixDQUFDO0FBQUE7QUFBQSxZQUVIO0FBQUEsVUFDRjtBQUFBLFFBQ0Y7QUFBQSxNQUNGLENBQUMsRUFBRSxPQUFPO0FBQUEsSUFDWjtBQUNBLElBQU0sVUFBVSxDQUFDLFNBQVM7QUFDeEIsWUFBTSxTQUFTLEtBQUssVUFBVTtBQUM5QixZQUFNLFdBQVcsS0FBSyxZQUFZO0FBQ2xDLGFBQU8sSUFBSSxHQUFHO0FBQUEsUUFDWjtBQUFBLFFBQ0E7QUFBQSxRQUNBLGNBQWMsS0FBSyxnQkFBZ0I7QUFBQSxRQUNuQyxTQUFTO0FBQ1AsZ0JBQU0sUUFBUSxHQUFHLE9BQU8sS0FBSyxLQUFLLENBQUM7QUFBQSxFQUN2QyxPQUFPLEtBQUssS0FBSyxDQUFDLElBQUksS0FBSyxPQUFPO0FBQUE7QUFFOUIsZ0JBQU0sUUFBUSxLQUFLLFFBQVEsU0FBUztBQUNwQyxrQkFBUSxLQUFLLE9BQU87QUFBQSxZQUNsQixLQUFLLFVBQVU7QUFDYixxQkFBTyxHQUFHLEtBQUssR0FBRyxPQUFPLEtBQUssS0FBSyxDQUFDLElBQUksT0FBTyxJQUFJLEtBQUssQ0FBQztBQUFBLFlBQzNEO0FBQUEsWUFDQSxLQUFLLFVBQVU7QUFDYixxQkFBTyxHQUFHLEtBQUssR0FBRyxPQUFPLEtBQUssS0FBSyxDQUFDLElBQUksT0FBTztBQUFBLGdCQUM3QyxPQUFPLElBQUksS0FBSztBQUFBLGNBQ2xCLENBQUM7QUFBQSxFQUNULE9BQU8sS0FBSyxLQUFLLENBQUM7QUFBQSxZQUNaO0FBQUEsWUFDQSxTQUFTO0FBQ1AscUJBQU8sR0FBRyxLQUFLLEdBQUcsT0FBTyxLQUFLLEtBQUssQ0FBQyxJQUFJLEtBQUssUUFBUSxHQUFHLE9BQU8sTUFBTSxjQUFjLENBQUMsSUFBSSxNQUFNLEtBQUssR0FBRyxPQUFPLElBQUksZ0JBQWdCLENBQUMsSUFBSSxPQUFPLElBQUksTUFBTSxDQUFDLEVBQUUsSUFBSSxPQUFPLElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxRQUFRLEdBQUcsT0FBTyxJQUFJLGdCQUFnQixDQUFDLElBQUksT0FBTyxJQUFJLFFBQVEsQ0FBQyxLQUFLLEdBQUcsT0FBTyxNQUFNLGNBQWMsQ0FBQyxJQUFJLFFBQVEsRUFBRTtBQUFBLEVBQy9TLE9BQU8sS0FBSyxTQUFTLENBQUM7QUFBQTtBQUFBLFlBRWhCO0FBQUEsVUFDRjtBQUFBLFFBQ0Y7QUFBQSxNQUNGLENBQUMsRUFBRSxPQUFPO0FBQUEsSUFDWjtBQUNBLElBQU0sU0FBUyxDQUFDLFNBQVM7QUFDdkIsWUFBTSxNQUFNLENBQUMsUUFBUSxVQUFVO0FBQzdCLGNBQU0sUUFBUSxPQUFPLFNBQVMsT0FBTyxPQUFPLEtBQUs7QUFDakQsZ0JBQVEsT0FBTztBQUFBLFVBQ2IsS0FBSyxVQUFVO0FBQ2IsbUJBQU8sR0FBRyxPQUFPLE1BQU0sY0FBYyxDQUFDLElBQUksS0FBSyxJQUFJLE9BQU8sT0FBTyxPQUFPLElBQUksSUFBSSxPQUFPLElBQUksR0FBRyxJQUFJLEVBQUU7QUFBQSxVQUN0RztBQUFBLFVBQ0EsS0FBSyxZQUFZO0FBQ2YsbUJBQU8sR0FBRyxPQUFPLElBQUksS0FBSyxDQUFDO0FBQUEsVUFDN0I7QUFBQSxVQUNBLEtBQUssYUFBYTtBQUNoQixtQkFBTyxHQUFHLE9BQU8sY0FBYyxPQUFPLElBQUksS0FBSyxDQUFDLENBQUM7QUFBQSxVQUNuRDtBQUFBLFFBQ0Y7QUFDQSxlQUFPLEdBQUcsT0FBTyxJQUFJLGdCQUFnQixDQUFDLElBQUksT0FBTyxJQUFJLEtBQUssQ0FBQztBQUFBLE1BQzdEO0FBQ0EsYUFBTyxJQUFJLEdBQUc7QUFBQSxRQUNaLFNBQVMsS0FBSztBQUFBLFFBQ2QsY0FBYyxLQUFLO0FBQUEsUUFDbkIsU0FBUztBQUNQLGdCQUFNLFFBQVEsR0FBRyxPQUFPLEtBQUssS0FBSyxDQUFDO0FBQUEsRUFDdkMsT0FBTyxLQUFLLEtBQUssQ0FBQyxJQUFJLEtBQUssT0FBTztBQUFBO0FBRTlCLGtCQUFRLEtBQUssT0FBTztBQUFBLFlBQ2xCLEtBQUssVUFBVTtBQUNiLHFCQUFPLEdBQUcsS0FBSyxHQUFHLE9BQU8sS0FBSyxLQUFLLENBQUMsSUFBSTtBQUFBLGdCQUN0QyxLQUFLLFFBQVEsS0FBSyxNQUFNO0FBQUEsZ0JBQ3hCO0FBQUEsY0FDRixDQUFDO0FBQUEsWUFDSDtBQUFBLFlBQ0EsS0FBSyxVQUFVO0FBQ2IscUJBQU8sR0FBRyxLQUFLLEdBQUcsT0FBTyxLQUFLLEtBQUssQ0FBQyxJQUFJO0FBQUEsZ0JBQ3RDLEtBQUssUUFBUSxLQUFLLE1BQU07QUFBQSxnQkFDeEI7QUFBQSxjQUNGLENBQUM7QUFBQSxFQUNULE9BQU8sS0FBSyxLQUFLLENBQUM7QUFBQSxZQUNaO0FBQUEsWUFDQSxTQUFTO0FBQ1AscUJBQU8sR0FBRyxLQUFLLEdBQUcsT0FBTyxLQUFLLEtBQUssQ0FBQyxJQUFJLEtBQUssUUFBUTtBQUFBLGdCQUNuRCxDQUFDLFFBQVEsTUFBTSxJQUFJLFFBQVEsTUFBTSxLQUFLLFNBQVMsV0FBVyxVQUFVO0FBQUEsY0FDdEUsRUFBRSxLQUFLO0FBQUEsRUFDZixPQUFPLEtBQUssS0FBSyxDQUFDLElBQUksQ0FBQztBQUFBLEVBQ3ZCLE9BQU8sS0FBSyxTQUFTLENBQUM7QUFBQTtBQUFBLFlBRWhCO0FBQUEsVUFDRjtBQUFBLFFBQ0Y7QUFBQSxNQUNGLENBQUMsRUFBRSxPQUFPO0FBQUEsSUFDWjtBQUNBLElBQU0sY0FBYyxDQUFDLFNBQVM7QUFDNUIsWUFBTSxNQUFNLENBQUMsUUFBUSxVQUFVO0FBQzdCLGNBQU0sUUFBUSxPQUFPLFNBQVMsT0FBTyxPQUFPLEtBQUs7QUFDakQsZ0JBQVEsT0FBTztBQUFBLFVBQ2IsS0FBSyxVQUFVO0FBQ2IsbUJBQU8sR0FBRyxPQUFPLEtBQUssaUJBQWlCLENBQUMsSUFBSSxLQUFLLElBQUksT0FBTyxPQUFPLE9BQU8sSUFBSSxJQUFJLE9BQU8sSUFBSSxHQUFHLElBQUksRUFBRTtBQUFBLFVBQ3hHO0FBQUEsVUFDQSxLQUFLLFlBQVk7QUFDZixtQkFBTyxHQUFHLE9BQU8sTUFBTSxtQkFBbUIsQ0FBQyxJQUFJLE9BQU8sSUFBSSxLQUFLLENBQUM7QUFBQSxVQUNsRTtBQUFBLFVBQ0EsS0FBSyxhQUFhO0FBQ2hCLG1CQUFPLEdBQUcsT0FBTyxjQUFjLE9BQU8sSUFBSSxLQUFLLENBQUMsQ0FBQztBQUFBLFVBQ25EO0FBQUEsVUFDQSxLQUFLLG1CQUFtQjtBQUN0QixtQkFBTyxHQUFHLE9BQU8sTUFBTSxtQkFBbUIsQ0FBQyxJQUFJLEtBQUssSUFBSSxPQUFPLE9BQU8sT0FBTyxJQUFJLElBQUksT0FBTyxJQUFJLEdBQUcsSUFBSSxFQUFFO0FBQUEsVUFDM0c7QUFBQSxVQUNBLEtBQUssYUFBYTtBQUNoQixtQkFBTyxHQUFHLE9BQU8sSUFBSSxLQUFLLENBQUM7QUFBQSxVQUM3QjtBQUFBLFFBQ0Y7QUFDQSxlQUFPLEdBQUcsT0FBTyxJQUFJLG1CQUFtQixDQUFDLElBQUksT0FBTyxJQUFJLEtBQUssQ0FBQztBQUFBLE1BQ2hFO0FBQ0EsYUFBTyxJQUFJLEdBQUc7QUFBQSxRQUNaLFNBQVMsS0FBSztBQUFBLFFBQ2QsZUFBZSxLQUFLO0FBQUEsUUFDcEIsVUFBVSxLQUFLLFlBQVk7QUFBQSxRQUMzQixVQUFVLEtBQUs7QUFBQSxRQUNmLFNBQVMsVUFBVTtBQUNqQixjQUFJLEtBQUssWUFBWSxTQUFTLFdBQVcsR0FBRztBQUMxQyxtQkFBTztBQUFBLEVBQ2IsT0FBTztBQUFBLGNBQ0MsT0FBTztBQUFBLGdCQUNMLFNBQVMsT0FBTztBQUFBLGtCQUNkLE9BQU8sUUFBUSxPQUFPLFFBQVEsU0FBUyxDQUFDO0FBQUEsZ0JBQzFDLENBQUMsZUFBZSxPQUFPO0FBQUEsa0JBQ3JCLE9BQU8sUUFBUSxPQUFPLFFBQVEsU0FBUyxDQUFDO0FBQUEsZ0JBQzFDLENBQUM7QUFBQSxjQUNIO0FBQUEsWUFDRixDQUFDO0FBQUEsVUFDSDtBQUFBLFFBQ0Y7QUFBQSxRQUNBLFNBQVM7QUFDUCxnQkFBTSxRQUFRLEdBQUcsT0FBTyxLQUFLLEtBQUssQ0FBQztBQUFBLEVBQ3ZDLE9BQU8sS0FBSyxLQUFLLENBQUMsSUFBSSxLQUFLLE9BQU87QUFBQTtBQUU5QixrQkFBUSxLQUFLLE9BQU87QUFBQSxZQUNsQixLQUFLLFVBQVU7QUFDYixxQkFBTyxHQUFHLEtBQUssR0FBRyxPQUFPLEtBQUssS0FBSyxDQUFDLElBQUksS0FBSyxRQUFRLE9BQU8sQ0FBQyxFQUFFLE1BQU0sTUFBTSxLQUFLLE1BQU0sU0FBUyxLQUFLLENBQUMsRUFBRSxJQUFJLENBQUMsV0FBVyxJQUFJLFFBQVEsV0FBVyxDQUFDLEVBQUUsS0FBSyxPQUFPLElBQUksSUFBSSxDQUFDLEtBQUssT0FBTyxJQUFJLE1BQU0sQ0FBQztBQUFBLFlBQy9MO0FBQUEsWUFDQSxLQUFLLFVBQVU7QUFDYixvQkFBTSxRQUFRLEtBQUssUUFBUSxPQUFPLENBQUMsRUFBRSxNQUFNLE1BQU0sS0FBSyxNQUFNLFNBQVMsS0FBSyxDQUFDLEVBQUUsSUFBSSxDQUFDLFdBQVcsSUFBSSxRQUFRLFdBQVcsQ0FBQyxFQUFFLEtBQUssT0FBTyxJQUFJLElBQUksQ0FBQztBQUM1SSxxQkFBTyxHQUFHLEtBQUssR0FBRyxPQUFPLEtBQUssS0FBSyxDQUFDLElBQUksTUFBTSxLQUFLLElBQUksR0FBRyxLQUFLO0FBQUEsRUFDdkUsT0FBTyxLQUFLLEtBQUssQ0FBQyxLQUFLLEVBQUU7QUFBQSxZQUNuQjtBQUFBLFlBQ0EsS0FBSyxTQUFTO0FBQ1osb0JBQU0sU0FBUyxLQUFLLE1BQU0sTUFBTSxJQUFJLEVBQUU7QUFBQSxnQkFDcEMsQ0FBQyxJQUFJLE1BQU0sTUFBTSxJQUFJLEdBQUcsT0FBTyxPQUFPLFNBQVMsQ0FBQyxJQUFJLE9BQU8sT0FBTyxFQUFFLENBQUMsS0FBSyxNQUFNLEVBQUU7QUFBQSxjQUNwRixFQUFFLEtBQUssSUFBSTtBQUNYLHFCQUFPLFFBQVEsT0FBTyxPQUFPLEtBQUssSUFBSSxPQUFPLEtBQUssUUFBUSxJQUFJLENBQUMsUUFBUSxNQUFNO0FBQzNFLHNCQUFNLFdBQVcsS0FBSyxNQUFNLFNBQVMsT0FBTyxLQUFLO0FBQ2pELHNCQUFNLFNBQVMsTUFBTSxLQUFLO0FBQzFCLG9CQUFJLFVBQVUsVUFBVTtBQUN0Qix5QkFBTyxJQUFJLFFBQVEsaUJBQWlCO0FBQUEsZ0JBQ3RDO0FBQ0Esb0JBQUksVUFBVTtBQUNaLHlCQUFPLElBQUksUUFBUSxVQUFVO0FBQUEsZ0JBQy9CO0FBQ0EsdUJBQU8sSUFBSSxRQUFRLFNBQVMsV0FBVyxVQUFVO0FBQUEsY0FDbkQsQ0FBQyxFQUFFLEtBQUs7QUFBQSxFQUNoQixPQUFPLE9BQU8sS0FBSyxDQUFDLElBQUksSUFBSSxPQUFPLFNBQVM7QUFBQSxZQUN0QztBQUFBLFlBQ0EsU0FBUztBQUNQLHFCQUFPLEdBQUcsS0FBSyxHQUFHLE9BQU8sS0FBSyxLQUFLLENBQUMsSUFBSSxLQUFLLFFBQVEsSUFBSSxDQUFDLFFBQVEsTUFBTTtBQUN0RSxzQkFBTSxXQUFXLEtBQUssTUFBTSxTQUFTLE9BQU8sS0FBSztBQUNqRCxzQkFBTSxTQUFTLE1BQU0sS0FBSztBQUMxQixvQkFBSSxVQUFVLFVBQVU7QUFDdEIseUJBQU8sSUFBSSxRQUFRLGlCQUFpQjtBQUFBLGdCQUN0QztBQUNBLG9CQUFJLFVBQVU7QUFDWix5QkFBTyxJQUFJLFFBQVEsVUFBVTtBQUFBLGdCQUMvQjtBQUNBLHVCQUFPLElBQUksUUFBUSxTQUFTLFdBQVcsVUFBVTtBQUFBLGNBQ25ELENBQUMsRUFBRSxLQUFLO0FBQUEsRUFDaEIsT0FBTyxLQUFLLEtBQUssQ0FBQyxJQUFJLENBQUM7QUFBQSxFQUN2QixPQUFPLEtBQUssU0FBUyxDQUFDO0FBQUE7QUFBQSxZQUVoQjtBQUFBLFVBQ0Y7QUFBQSxRQUNGO0FBQUEsTUFDRixDQUFDLEVBQUUsT0FBTztBQUFBLElBQ1o7QUFBQTtBQUFBOzs7QUNyWUEsT0FBTyxlQUFlO0FBZ0R0QixTQUFTLGVBQWVDLE1BQUs7QUFDM0IsYUFBVyxZQUFZLFdBQVc7QUFDaEMsVUFBTSxVQUFVLFNBQVMsQ0FBQyxLQUFLLFNBQVMsQ0FBQztBQUN6QyxRQUFJQSxLQUFJLE9BQU8sR0FBRztBQUNoQixhQUFPO0FBQUEsUUFDTCxNQUFNLFNBQVMsQ0FBQyxFQUFFLFlBQVk7QUFBQSxRQUM5QixHQUFHLFNBQVMsQ0FBQztBQUFBLE1BQ2Y7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUNBLE1BQUlBLEtBQUksU0FBU0EsS0FBSSxVQUFVLFlBQVk7QUFDekMsV0FBTztBQUFBLE1BQ0wsTUFBTTtBQUFBLE1BQ04sSUFBSTtBQUFBLElBQ047QUFBQSxFQUNGO0FBQ0EsU0FBTztBQUFBLElBQ0wsTUFBTTtBQUFBLElBQ04sSUFBSTtBQUFBLEVBQ047QUFDRjtBQWFBLFNBQVMsVUFBVSxLQUFLO0FBQ3RCLFNBQU8sTUFBTSxRQUFRLFVBQVU7QUFDakM7QUFFQSxTQUFTQyxXQUFVLEVBQUMsWUFBWSxNQUFLLElBQUksQ0FBQyxHQUFHO0FBQzVDLFFBQU0sVUFBVTtBQUFBLElBQ1o7QUFBQSxJQUNIO0FBQUEsRUFDRCxFQUFFLEtBQUssR0FBRztBQUVWLFNBQU8sSUFBSSxPQUFPLFNBQVMsWUFBWSxTQUFZLEdBQUc7QUFDdkQ7QUFJQSxTQUFTQyxXQUFVLFFBQVE7QUFDMUIsTUFBSSxPQUFPLFdBQVcsVUFBVTtBQUMvQixVQUFNLElBQUksVUFBVSxnQ0FBZ0MsT0FBTyxNQUFNLElBQUk7QUFBQSxFQUN0RTtBQUtBLFNBQU8sT0FBTyxRQUFRLE9BQU8sRUFBRTtBQUNoQztBQUVBLFNBQVMsd0JBQXlCLEdBQUc7QUFDcEMsU0FBTyxLQUFLLEVBQUUsY0FBYyxPQUFPLFVBQVUsZUFBZSxLQUFLLEdBQUcsU0FBUyxJQUFJLEVBQUUsU0FBUyxJQUFJO0FBQ2pHO0FBb1VBLFNBQVMsY0FBYyxRQUFRLFNBQVM7QUFDdkMsTUFBSSxPQUFPLFdBQVcsWUFBWSxPQUFPLFdBQVcsR0FBRztBQUN0RCxXQUFPO0FBQUEsRUFDUjtBQUVBLFlBQVU7QUFBQSxJQUNULG1CQUFtQjtBQUFBLElBQ25CLHNCQUFzQjtBQUFBLElBQ3RCLEdBQUc7QUFBQSxFQUNKO0FBRUEsTUFBSSxDQUFDLFFBQVEsc0JBQXNCO0FBQ2xDLGFBQVNBLFdBQVUsTUFBTTtBQUFBLEVBQzFCO0FBRUEsTUFBSSxPQUFPLFdBQVcsR0FBRztBQUN4QixXQUFPO0FBQUEsRUFDUjtBQUVBLFFBQU0sMEJBQTBCLFFBQVEsb0JBQW9CLElBQUk7QUFDaEUsTUFBSSxRQUFRO0FBRVosYUFBVyxFQUFDLFNBQVMsVUFBUyxLQUFLLElBQUksS0FBSyxVQUFVLEVBQUUsUUFBUSxNQUFNLEdBQUc7QUFDeEUsVUFBTSxZQUFZLFVBQVUsWUFBWSxDQUFDO0FBR3pDLFFBQUksYUFBYSxNQUFTLGFBQWEsT0FBUSxhQUFhLEtBQU87QUFDbEU7QUFBQSxJQUNEO0FBR0EsUUFBSSxhQUFhLE9BQVUsYUFBYSxLQUFRO0FBQy9DO0FBQUEsSUFDRDtBQUVBLFFBQUksV0FBVyxFQUFFLEtBQUssU0FBUyxHQUFHO0FBQ2pDLGVBQVM7QUFDVDtBQUFBLElBQ0Q7QUFFQSxVQUFNLE9BQU8sZUFBZSxlQUFlLFNBQVM7QUFDcEQsWUFBUSxNQUFNO0FBQUEsTUFDYixLQUFLO0FBQUEsTUFDTCxLQUFLLEtBQUs7QUFDVCxpQkFBUztBQUNUO0FBQUEsTUFDRDtBQUFBLE1BRUEsS0FBSyxLQUFLO0FBQ1QsaUJBQVM7QUFDVDtBQUFBLE1BQ0Q7QUFBQSxNQUVBLFNBQVM7QUFDUixpQkFBUztBQUFBLE1BQ1Y7QUFBQSxJQUNEO0FBQUEsRUFDRDtBQUVBLFNBQU87QUFDUjtBQUVBLFNBQVMscUJBQXFCO0FBQzdCLE1BQUksVUFBVSxhQUFhLFNBQVM7QUFDbkMsV0FBTyxVQUFVLElBQUksU0FBUztBQUFBLEVBQy9CO0FBRUEsU0FBTyxRQUFRLFVBQVUsSUFBSSxFQUFFLEtBQzNCLFFBQVEsVUFBVSxJQUFJLFVBQVUsS0FDaEMsUUFBUSxVQUFVLElBQUksZ0JBQWdCLEtBQ3RDLFVBQVUsSUFBSSxlQUFlLGtCQUM3QixVQUFVLElBQUksaUJBQWlCLHNCQUMvQixVQUFVLElBQUksaUJBQWlCLFlBQy9CLFVBQVUsSUFBSSxTQUFTLG9CQUN2QixVQUFVLElBQUksU0FBUyxlQUN2QixVQUFVLElBQUksc0JBQXNCO0FBQ3pDO0FBNEJBLFNBQVMsWUFBWSxLQUFLO0FBQ3hCLE1BQUksQ0FBQyxLQUFLLFdBQVc7QUFDbkIsV0FBTyxVQUFZLEdBQUcsRUFBRTtBQUFBLEVBQzFCO0FBQ0EsU0FBTyxjQUFjLEdBQUc7QUFDMUI7QUFvREEsU0FBUyxnQkFBZ0IsS0FBSztBQUM1QixTQUFPLElBQUksUUFBUSxlQUFlLENBQUNDLElBQUdDLE9BQU0sT0FBTyxLQUFLQSxFQUFDLENBQUMsRUFBRSxRQUFRLHFCQUFxQixDQUFDRCxJQUFHQyxPQUFNLElBQUksT0FBTyxVQUFVQSxFQUFDLENBQUMsR0FBRztBQUMvSDtBQUNBLFNBQVNDLFVBQVMsUUFBUSxTQUFTO0FBQ2pDLFNBQU8sT0FBTyxLQUFLLEtBQUssT0FBTztBQUNqQztBQUNBLFNBQVMsV0FBVyxRQUFRLFdBQVc7QUFDckMsU0FBTyxPQUFPLEtBQUssTUFBTSxDQUFDLEVBQUUsWUFBWSxDQUFDLEdBQUcsTUFBTSxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssT0FBTztBQUMxRTtBQUVBLFNBQVNDLGVBQWMsVUFBVSxDQUFDLEdBQUc7QUFDbkMsTUFBSSxRQUFRLG9CQUFvQjtBQUNoQyxNQUFJLFFBQVEsSUFBSSxlQUFlO0FBQzdCLFlBQVEsT0FBTyxTQUFTLFFBQVEsSUFBSSxhQUFhLEtBQUs7QUFBQSxFQUN4RDtBQUNBLFFBQU0sV0FBVyxjQUFnQjtBQUFBLElBQy9CO0FBQUEsSUFDQSxVQUFVLEVBQUUsTUFBTTtBQUFBLElBQ2xCLFFBQVEsUUFBUTtBQUFBLElBQ2hCLFFBQVEsUUFBUTtBQUFBLElBQ2hCLFFBQVEsSUFBSSxTQUFTLDhEQUErQixLQUFLLENBQUNGLE9BQU1BLEdBQUUsT0FBTyxHQUFHLElBQUksQ0FBQztBQUFBLElBQ2pGLFdBQVcsUUFBUSxhQUFhO0FBQUEsTUFDOUIsUUFBUSxTQUFTLEVBQUVHLFNBQVEsVUFBVSxJQUFJLGNBQWMsSUFBSSxJQUFJLGNBQWM7QUFBQSxJQUMvRTtBQUFBLElBQ0EsR0FBRztBQUFBLEVBQ0wsQ0FBQztBQUNELFNBQU87QUFDVDtBQUNBLFNBQVMsc0JBQXNCO0FBQzdCLE1BQUksU0FBUztBQUNYLFdBQU8sVUFBVTtBQUFBLEVBQ25CO0FBQ0EsTUFBSSxRQUFRO0FBQ1YsV0FBTyxVQUFVO0FBQUEsRUFDbkI7QUFDQSxTQUFPLFVBQVU7QUFDbkI7QUF4bkJBLElBS00sV0FtRUEsYUFDQSxTQUNBLGNBQ0EsU0FHQUEsT0FDQSxRQUNBLFNBQ0EsUUFlQSxPQWlCRixnQkEwVEEsdUJBQ0UsZ0JBRUEsWUFtRkEsZ0JBT0EsaUJBSUFDLFVBQ0FDLElBQ0EsWUFtQkEsZUF3RkE7QUF6bkJOO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFFQTtBQUVBLElBQU0sWUFBWTtBQUFBLE1BQ2hCLENBQUMsVUFBVTtBQUFBLE1BQ1gsQ0FBQyxtQkFBbUIsb0NBQW9DO0FBQUEsTUFDeEQsQ0FBQyxnQkFBZ0IsdUNBQXVDO0FBQUEsTUFDeEQsQ0FBQyxhQUFhLGNBQWM7QUFBQSxNQUM1QixDQUFDLFVBQVUsZ0JBQWdCO0FBQUEsTUFDM0IsQ0FBQyxhQUFhLGtCQUFrQjtBQUFBLE1BQ2hDLENBQUMsV0FBVyxZQUFZO0FBQUEsTUFDeEIsQ0FBQyxTQUFTLG9CQUFvQjtBQUFBLE1BQzlCLENBQUMsV0FBVztBQUFBLE1BQ1osQ0FBQyxVQUFVLFVBQVU7QUFBQSxNQUNyQixDQUFDLFVBQVUsV0FBVztBQUFBLE1BQ3RCLENBQUMsb0JBQW9CLFlBQVksRUFBRSxJQUFJLEtBQUssQ0FBQztBQUFBLE1BQzdDLENBQUMsYUFBYSxxQkFBcUI7QUFBQSxNQUNuQyxDQUFDLGFBQWEsYUFBYTtBQUFBLE1BQzNCLENBQUMsT0FBTztBQUFBLE1BQ1IsQ0FBQyxTQUFTLG1CQUFtQjtBQUFBLE1BQzdCLENBQUMsT0FBTztBQUFBLE1BQ1IsQ0FBQyxnQkFBZ0I7QUFBQSxNQUNqQixDQUFDLFVBQVUsV0FBVztBQUFBLE1BQ3RCLENBQUMsVUFBVSxxQkFBcUI7QUFBQSxNQUNoQyxDQUFDLFFBQVEsbUJBQW1CO0FBQUEsTUFDNUIsQ0FBQyxTQUFTO0FBQUEsTUFDVixDQUFDLFVBQVUsWUFBWTtBQUFBLE1BQ3ZCLENBQUMsV0FBVyxhQUFhO0FBQUEsTUFDekIsQ0FBQyxRQUFRO0FBQUEsTUFDVCxDQUFDLFNBQVM7QUFBQSxNQUNWLENBQUMsV0FBVyxpQkFBaUIsRUFBRSxJQUFJLE1BQU0sQ0FBQztBQUFBLE1BQzFDLENBQUMsV0FBVztBQUFBLE1BQ1osQ0FBQyxRQUFRO0FBQUEsTUFDVCxDQUFDLFFBQVEsUUFBUTtBQUFBLE1BQ2pCLENBQUMsV0FBVztBQUFBLE1BQ1osQ0FBQyxhQUFhO0FBQUEsTUFDZCxDQUFDLFdBQVc7QUFBQSxNQUNaLENBQUMsVUFBVSxRQUFRO0FBQUEsTUFDbkIsQ0FBQyxTQUFTO0FBQUEsTUFDVixDQUFDLFlBQVksa0JBQWtCO0FBQUEsTUFDL0IsQ0FBQyxRQUFRO0FBQUEsTUFDVCxDQUFDLFVBQVUsYUFBYTtBQUFBLE1BQ3hCLENBQUMsYUFBYSxvQkFBb0I7QUFBQSxNQUNsQyxDQUFDLGVBQWUsbUJBQW1CLEVBQUUsSUFBSSxNQUFNLENBQUM7QUFBQSxNQUNoRCxDQUFDLFlBQVk7QUFBQSxNQUNiLENBQUMsVUFBVTtBQUFBLE1BQ1gsQ0FBQyxRQUFRO0FBQUEsSUFDWDtBQXVCQSxJQUFNLGNBQWMsT0FBTyxZQUFZLGNBQWMsVUFBVSxDQUFDO0FBQ2hFLElBQU0sVUFBVSxZQUFZLE9BQU8sQ0FBQztBQUNwQyxJQUFNLGVBQWUsZUFBZSxPQUFPO0FBQzNDLElBQU0sVUFBVSxPQUFPLFlBQVksZUFBZSxRQUFRLE9BQU8sUUFBUSxJQUFJLFlBQVk7QUFDekYsZ0JBQVk7QUFDWixpQkFBYTtBQUNiLElBQU1GLFFBQU8sVUFBVSxRQUFRLEVBQUUsS0FBSyxhQUFhLE9BQU87QUFDMUQsSUFBTSxTQUFTLFVBQVUsWUFBWSxVQUFVLFlBQVksT0FBTyxLQUFLO0FBQ3ZFLElBQU0sVUFBVSxVQUFVLFFBQVEsS0FBSztBQUN2QyxJQUFNLFNBQVMsWUFBWSxVQUFVLFVBQVUsUUFBUSxJQUFJO0FBQzNELGNBQVUsUUFBUSxPQUFPLEtBQUtBLFNBQVEsVUFBVSxDQUFDO0FBY2pELElBQU0sUUFBUU4sV0FBVTtBQWlCeEIsSUFBSSxpQkFBaUIsRUFBQyxTQUFTLENBQUMsRUFBQztBQUVqQyxLQUFDLFNBQVUsUUFBUTtBQUNsQixVQUFJLE1BQU0sQ0FBQztBQUVYO0FBQ0UsZUFBTyxVQUFVO0FBQUEsTUFDbkI7QUFFQSxVQUFJLGlCQUFpQixTQUFTLFdBQVc7QUFDdkMsWUFBSSxJQUFJLFVBQVUsV0FBVyxDQUFDO0FBQzlCLFlBQUksSUFBSyxVQUFVLFVBQVUsSUFBSyxVQUFVLFdBQVcsQ0FBQyxJQUFJO0FBQzVELFlBQUksWUFBWTtBQUNoQixZQUFLLFNBQVUsS0FBSyxLQUFLLFVBQVksU0FBVSxLQUFLLEtBQUssUUFBUztBQUNoRSxlQUFLO0FBQ0wsZUFBSztBQUNMLHNCQUFhLEtBQUssS0FBTTtBQUN4Qix1QkFBYTtBQUFBLFFBQ2Y7QUFFQSxZQUFLLFNBQVUsYUFDVixTQUFVLGFBQWEsYUFBYSxTQUNwQyxTQUFVLGFBQWEsYUFBYSxPQUFTO0FBQ2hELGlCQUFPO0FBQUEsUUFDVDtBQUNBLFlBQUssUUFBVSxhQUNWLFNBQVUsYUFBYSxhQUFhLFNBQ3BDLFNBQVUsYUFBYSxhQUFhLFNBQ3BDLFNBQVUsYUFBYSxhQUFhLFNBQ3BDLFNBQVUsYUFBYSxhQUFhLFNBQ3BDLFNBQVUsYUFBYSxhQUFhLFNBQ3BDLFNBQVUsYUFBYSxhQUFhLE9BQVM7QUFDaEQsaUJBQU87QUFBQSxRQUNUO0FBQ0EsWUFBSyxRQUFVLGFBQWEsYUFBYSxRQUNwQyxRQUFVLGFBQWEsYUFBYSxRQUNwQyxRQUFVLGFBQWEsYUFBYSxRQUNwQyxRQUFVLGFBQWEsYUFBYSxRQUNwQyxTQUFVLGFBQWEsYUFBYSxTQUNwQyxTQUFVLGFBQWEsYUFBYSxTQUNwQyxTQUFVLGFBQWEsYUFBYSxTQUNwQyxTQUFVLGFBQWEsYUFBYSxTQUNwQyxTQUFVLGFBQWEsYUFBYSxTQUNwQyxTQUFVLGFBQWEsYUFBYSxTQUNwQyxTQUFVLGFBQWEsYUFBYSxTQUNwQyxTQUFVLGFBQWEsYUFBYSxTQUNwQyxTQUFVLGFBQWEsYUFBYSxTQUNwQyxTQUFVLGFBQWEsYUFBYSxTQUNwQyxTQUFVLGFBQWEsYUFBYSxTQUNwQyxTQUFVLGFBQWEsYUFBYSxTQUNwQyxTQUFVLGFBQWEsYUFBYSxTQUNwQyxTQUFVLGFBQWEsYUFBYSxTQUNwQyxTQUFVLGFBQWEsYUFBYSxTQUNwQyxTQUFVLGFBQWEsYUFBYSxTQUNwQyxTQUFVLGFBQWEsYUFBYSxTQUNwQyxTQUFVLGFBQWEsYUFBYSxTQUNwQyxTQUFVLGFBQWEsYUFBYSxTQUNwQyxTQUFVLGFBQWEsYUFBYSxTQUNwQyxTQUFVLGFBQWEsYUFBYSxTQUNwQyxTQUFVLGFBQWEsYUFBYSxTQUNwQyxTQUFVLGFBQWEsYUFBYSxTQUNwQyxTQUFVLGFBQWEsYUFBYSxTQUNwQyxTQUFVLGFBQWEsYUFBYSxTQUNwQyxTQUFVLGFBQWEsYUFBYSxTQUNwQyxVQUFXLGFBQWEsYUFBYSxVQUNyQyxVQUFXLGFBQWEsYUFBYSxVQUNyQyxVQUFXLGFBQWEsYUFBYSxVQUNyQyxVQUFXLGFBQWEsYUFBYSxVQUNyQyxVQUFXLGFBQWEsYUFBYSxVQUNyQyxVQUFXLGFBQWEsYUFBYSxVQUNyQyxVQUFXLGFBQWEsYUFBYSxVQUNyQyxVQUFXLGFBQWEsYUFBYSxRQUFVO0FBQ2xELGlCQUFPO0FBQUEsUUFDVDtBQUNBLFlBQUssTUFBVSxhQUFhLGFBQWEsT0FDcEMsT0FBVSxhQUFhLGFBQWEsT0FDcEMsT0FBVSxhQUFhLGFBQWEsT0FDcEMsT0FBVSxhQUNWLE9BQVUsYUFDVixTQUFVLGFBQWEsYUFBYSxTQUNwQyxTQUFVLGFBQWEsYUFBYSxPQUFTO0FBQ2hELGlCQUFPO0FBQUEsUUFDVDtBQUNBLFlBQUssT0FBVSxhQUNWLE9BQVUsYUFDVixPQUFVLGFBQWEsYUFBYSxPQUNwQyxPQUFVLGFBQ1YsT0FBVSxhQUFhLGFBQWEsT0FDcEMsT0FBVSxhQUFhLGFBQWEsT0FDcEMsT0FBVSxhQUFhLGFBQWEsT0FDcEMsT0FBVSxhQUFhLGFBQWEsT0FDcEMsT0FBVSxhQUNWLE9BQVUsYUFDVixPQUFVLGFBQWEsYUFBYSxPQUNwQyxPQUFVLGFBQWEsYUFBYSxPQUNwQyxPQUFVLGFBQ1YsT0FBVSxhQUFhLGFBQWEsT0FDcEMsT0FBVSxhQUFhLGFBQWEsT0FDcEMsT0FBVSxhQUNWLE9BQVUsYUFBYSxhQUFhLE9BQ3BDLE9BQVUsYUFBYSxhQUFhLE9BQ3BDLE9BQVUsYUFDVixPQUFVLGFBQ1YsT0FBVSxhQUNWLE9BQVUsYUFDVixPQUFVLGFBQ1YsT0FBVSxhQUNWLE9BQVUsYUFBYSxhQUFhLE9BQ3BDLE9BQVUsYUFDVixPQUFVLGFBQWEsYUFBYSxPQUNwQyxPQUFVLGFBQ1YsT0FBVSxhQUFhLGFBQWEsT0FDcEMsT0FBVSxhQUNWLE9BQVUsYUFBYSxhQUFhLE9BQ3BDLE9BQVUsYUFDVixPQUFVLGFBQWEsYUFBYSxPQUNwQyxPQUFVLGFBQWEsYUFBYSxPQUNwQyxPQUFVLGFBQ1YsT0FBVSxhQUNWLE9BQVUsYUFDVixPQUFVLGFBQ1YsT0FBVSxhQUNWLE9BQVUsYUFDVixPQUFVLGFBQ1YsT0FBVSxhQUNWLE9BQVUsYUFDVixPQUFVLGFBQ1YsT0FBVSxhQUNWLE9BQVUsYUFDVixPQUFVLGFBQ1YsT0FBVSxhQUFhLGFBQWEsT0FDcEMsT0FBVSxhQUNWLE9BQVUsYUFDVixPQUFVLGFBQWEsYUFBYSxPQUNwQyxPQUFVLGFBQ1YsT0FBVSxhQUNWLE9BQVUsYUFBYSxhQUFhLE9BQ3BDLE9BQVUsYUFBYSxhQUFhLE9BQ3BDLE9BQVUsYUFBYSxhQUFhLE9BQ3BDLE9BQVUsYUFBYSxhQUFhLE9BQ3BDLE9BQVUsYUFBYSxhQUFhLE9BQ3BDLFFBQVUsYUFDVixRQUFVLGFBQWEsYUFBYSxRQUNwQyxRQUFVLGFBQ1YsUUFBVSxhQUNWLFFBQVUsYUFBYSxhQUFhLFFBQ3BDLFFBQVUsYUFBYSxhQUFhLFFBQ3BDLFFBQVUsYUFBYSxhQUFhLFFBQ3BDLFFBQVUsYUFBYSxhQUFhLFFBQ3BDLFFBQVUsYUFBYSxhQUFhLFFBQ3BDLFFBQVUsYUFDVixRQUFVLGFBQWEsYUFBYSxRQUNwQyxRQUFVLGFBQ1YsUUFBVSxhQUNWLFFBQVUsYUFDVixRQUFVLGFBQ1YsUUFBVSxhQUNWLFFBQVUsYUFBYSxhQUFhLFFBQ3BDLFFBQVUsYUFDVixRQUFVLGFBQ1YsUUFBVSxhQUNWLFFBQVUsYUFDVixRQUFVLGFBQ1YsUUFBVSxhQUNWLFFBQVUsYUFBYSxhQUFhLFFBQ3BDLFFBQVUsYUFDVixRQUFVLGFBQ1YsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUNWLFFBQVUsYUFBYSxhQUFhLFFBQ3BDLFFBQVUsYUFBYSxhQUFhLFFBQ3BDLFFBQVUsYUFDVixRQUFVLGFBQ1YsUUFBVSxhQUNWLFFBQVUsYUFDVixRQUFVLGFBQWEsYUFBYSxRQUNwQyxRQUFVLGFBQWEsYUFBYSxRQUNwQyxRQUFVLGFBQ1YsUUFBVSxhQUNWLFFBQVUsYUFDVixRQUFVLGFBQ1YsUUFBVSxhQUNWLFFBQVUsYUFBYSxhQUFhLFFBQ3BDLFFBQVUsYUFDVixRQUFVLGFBQ1YsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUNWLFFBQVUsYUFBYSxhQUFhLFFBQ3BDLFFBQVUsYUFBYSxhQUFhLFFBQ3BDLFFBQVUsYUFDVixRQUFVLGFBQ1YsUUFBVSxhQUNWLFFBQVUsYUFBYSxhQUFhLFFBQ3BDLFFBQVUsYUFBYSxhQUFhLFFBQ3BDLFFBQVUsYUFBYSxhQUFhLFFBQ3BDLFFBQVUsYUFBYSxhQUFhLFFBQ3BDLFFBQVUsYUFBYSxhQUFhLFFBQ3BDLFFBQVUsYUFBYSxhQUFhLFFBQ3BDLFFBQVUsYUFDVixRQUFVLGFBQ1YsUUFBVSxhQUNWLFFBQVUsYUFDVixRQUFVLGFBQ1YsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUNWLFFBQVUsYUFBYSxhQUFhLFFBQ3BDLFFBQVUsYUFBYSxhQUFhLFFBQ3BDLFFBQVUsYUFDVixRQUFVLGFBQWEsYUFBYSxRQUNwQyxRQUFVLGFBQ1YsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUNWLFFBQVUsYUFDVixRQUFVLGFBQ1YsUUFBVSxhQUNWLFFBQVUsYUFBYSxhQUFhLFFBQ3BDLFFBQVUsYUFBYSxhQUFhLFFBQ3BDLFFBQVUsYUFBYSxhQUFhLFFBQ3BD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QU0sSUFBSTtBQUFBLE1BQ1IsNkJBQTZCLFdBQVc7QUFBQTtBQUFBLElBRTFDO0FBQUEsRUFDRjtBQUVBLFFBQU0sY0FBYztBQUFBO0FBR3BCLFFBQU0sYUFBYSxrQkFBa0IsUUFBUTtBQUM3QyxNQUFJLENBQUMsWUFBWTtBQUNmLFVBQU0sSUFBSTtBQUFBLE1BQ1IsMERBQTBELFdBQVc7QUFBQSxFQUN6RSxXQUFXO0FBQUEsSUFDVDtBQUFBLEVBQ0Y7QUFFQSxRQUFNLFFBQVEsb0JBQW9CLFVBQVU7QUFDNUMsTUFBSSxDQUFDLE9BQU87QUFDVixVQUFNLElBQUk7QUFBQSxNQUNSLCtEQUErRCxXQUFXLHFCQUFxQixVQUFVO0FBQUEsRUFDN0csV0FBVztBQUFBLElBQ1Q7QUFBQSxFQUNGO0FBQ0Y7QUFFQSxlQUFlLFlBQVlBLElBQVc7QUFDcEMsTUFBSTtBQUNGLFdBQU8sTUFBTSxHQUFHLFNBQVNBLElBQUcsTUFBTTtBQUFBLEVBQ3BDLFFBQVE7QUFDTixXQUFPO0FBQUEsRUFDVDtBQUNGO0FBRUEsZUFBZSxnQkFBZ0JBLElBQVc7QUFDeEMsUUFBTSxXQUFXLE1BQU0sWUFBWUEsRUFBQztBQUNwQyxNQUFJLGFBQWEsTUFBTTtBQUNyQixXQUFPO0FBQUEsRUFDVDtBQUNBLE1BQUk7QUFDRixXQUFPLGlCQUFpQixRQUFRO0FBQUEsRUFDbEMsUUFBUTtBQUNOLFdBQU87QUFBQSxFQUNUO0FBQ0Y7QUFFQSxTQUFTLGlCQUFpQixVQUFrQjtBQUMxQyxNQUFJO0FBQ0YsV0FBTyxLQUFLLE1BQU0sUUFBUTtBQUFBLEVBQzVCLFFBQVE7QUFDTixXQUFPO0FBQUEsRUFDVDtBQUNGOyIsCiAgIm5hbWVzIjogWyJkZWZhdWx0cyIsICJwIiwgImMiLCAibCIsICJ0ZXh0IiwgInMiLCAiSyIsICJ0dHkiLCAiaXNDb2xvclN1cHBvcnRlZCIsICJyZXBsYWNlQ2xvc2UiLCAiY3JlYXRlQ29sb3JzIiwgIkgiLCAiVyIsICJjIiwgImVudiIsICJhbnNpUmVnZXgiLCAic3RyaXBBbnNpIiwgIl8iLCAibSIsICJnZXRDb2xvciIsICJjcmVhdGVDb25zb2xhIiwgImlzQ0kiLCAidW5pY29kZSIsICJzIiwgInRleHQiLCAiYyIsICJyZWdleCIsICJmIiwgImoiLCAiTSIsICJIMiIsICJiIiwgImMiLCAiZyIsICJoIiwgImwiLCAiYyIsICJwIiwgImoiLCAiZGVmYXVsdHMiLCAicCIsICJfIiwgInN0ZG91dCJdCn0K
3577
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2NvbnNvbGFAMy4yLjMvbm9kZV9tb2R1bGVzL2NvbnNvbGEvZGlzdC9jb3JlLm1qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY29uc29sYUAzLjIuMy9ub2RlX21vZHVsZXMvY29uc29sYS9kaXN0L3NoYXJlZC9jb25zb2xhLjA2YWQ4YTY0Lm1qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY29uc29sYUAzLjIuMy9ub2RlX21vZHVsZXMvY29uc29sYS9kaXN0L3V0aWxzLm1qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY29uc29sYUAzLjIuMy9ub2RlX21vZHVsZXMvY29uc29sYS9kaXN0L2NodW5rcy9wcm9tcHQubWpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9jb25zb2xhQDMuMi4zL25vZGVfbW9kdWxlcy9jb25zb2xhL2Rpc3Qvc2hhcmVkL2NvbnNvbGEuMzZjMDAzNGYubWpzIiwgIi4uL2luZGV4LnRzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9vaGFzaEAxLjEuMy9ub2RlX21vZHVsZXMvb2hhc2gvZGlzdC9pbmRleC5tanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2NvbnNvbGFAMy4yLjMvbm9kZV9tb2R1bGVzL2NvbnNvbGEvZGlzdC9pbmRleC5tanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2NpdHR5QDAuMS42L25vZGVfbW9kdWxlcy9jaXR0eS9kaXN0L2luZGV4Lm1qcyIsICIuLi8uLi91dGlscy9pbmRleC50cyIsICIuLi9wYWNrYWdlLmpzb24iLCAiLi4vdGVtcGxhdGUudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IExvZ0xldmVscyA9IHtcbiAgc2lsZW50OiBOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFksXG4gIGZhdGFsOiAwLFxuICBlcnJvcjogMCxcbiAgd2FybjogMSxcbiAgbG9nOiAyLFxuICBpbmZvOiAzLFxuICBzdWNjZXNzOiAzLFxuICBmYWlsOiAzLFxuICByZWFkeTogMyxcbiAgc3RhcnQ6IDMsXG4gIGJveDogMyxcbiAgZGVidWc6IDQsXG4gIHRyYWNlOiA1LFxuICB2ZXJib3NlOiBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFlcbn07XG5jb25zdCBMb2dUeXBlcyA9IHtcbiAgLy8gU2lsZW50XG4gIHNpbGVudDoge1xuICAgIGxldmVsOiAtMVxuICB9LFxuICAvLyBMZXZlbCAwXG4gIGZhdGFsOiB7XG4gICAgbGV2ZWw6IExvZ0xldmVscy5mYXRhbFxuICB9LFxuICBlcnJvcjoge1xuICAgIGxldmVsOiBMb2dMZXZlbHMuZXJyb3JcbiAgfSxcbiAgLy8gTGV2ZWwgMVxuICB3YXJuOiB7XG4gICAgbGV2ZWw6IExvZ0xldmVscy53YXJuXG4gIH0sXG4gIC8vIExldmVsIDJcbiAgbG9nOiB7XG4gICAgbGV2ZWw6IExvZ0xldmVscy5sb2dcbiAgfSxcbiAgLy8gTGV2ZWwgM1xuICBpbmZvOiB7XG4gICAgbGV2ZWw6IExvZ0xldmVscy5pbmZvXG4gIH0sXG4gIHN1Y2Nlc3M6IHtcbiAgICBsZXZlbDogTG9nTGV2ZWxzLnN1Y2Nlc3NcbiAgfSxcbiAgZmFpbDoge1xuICAgIGxldmVsOiBMb2dMZXZlbHMuZmFpbFxuICB9LFxuICByZWFkeToge1xuICAgIGxldmVsOiBMb2dMZXZlbHMuaW5mb1xuICB9LFxuICBzdGFydDoge1xuICAgIGxldmVsOiBMb2dMZXZlbHMuaW5mb1xuICB9LFxuICBib3g6IHtcbiAgICBsZXZlbDogTG9nTGV2ZWxzLmluZm9cbiAgfSxcbiAgLy8gTGV2ZWwgNFxuICBkZWJ1Zzoge1xuICAgIGxldmVsOiBMb2dMZXZlbHMuZGVidWdcbiAgfSxcbiAgLy8gTGV2ZWwgNVxuICB0cmFjZToge1xuICAgIGxldmVsOiBMb2dMZXZlbHMudHJhY2VcbiAgfSxcbiAgLy8gVmVyYm9zZVxuICB2ZXJib3NlOiB7XG4gICAgbGV2ZWw6IExvZ0xldmVscy52ZXJib3NlXG4gIH1cbn07XG5cbmZ1bmN0aW9uIGlzT2JqZWN0KHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCI7XG59XG5mdW5jdGlvbiBfZGVmdShiYXNlT2JqZWN0LCBkZWZhdWx0cywgbmFtZXNwYWNlID0gXCIuXCIsIG1lcmdlcikge1xuICBpZiAoIWlzT2JqZWN0KGRlZmF1bHRzKSkge1xuICAgIHJldHVybiBfZGVmdShiYXNlT2JqZWN0LCB7fSwgbmFtZXNwYWNlLCBtZXJnZXIpO1xuICB9XG4gIGNvbnN0IG9iamVjdCA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRzKTtcbiAgZm9yIChjb25zdCBrZXkgaW4gYmFzZU9iamVjdCkge1xuICAgIGlmIChrZXkgPT09IFwiX19wcm90b19fXCIgfHwga2V5ID09PSBcImNvbnN0cnVjdG9yXCIpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBjb25zdCB2YWx1ZSA9IGJhc2VPYmplY3Rba2V5XTtcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHZvaWQgMCkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGlmIChtZXJnZXIgJiYgbWVyZ2VyKG9iamVjdCwga2V5LCB2YWx1ZSwgbmFtZXNwYWNlKSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSAmJiBBcnJheS5pc0FycmF5KG9iamVjdFtrZXldKSkge1xuICAgICAgb2JqZWN0W2tleV0gPSBbLi4udmFsdWUsIC4uLm9iamVjdFtrZXldXTtcbiAgICB9IGVsc2UgaWYgKGlzT2JqZWN0KHZhbHVlKSAmJiBpc09iamVjdChvYmplY3Rba2V5XSkpIHtcbiAgICAgIG9iamVjdFtrZXldID0gX2RlZnUoXG4gICAgICAgIHZhbHVlLFxuICAgICAgICBvYmplY3Rba2V5XSxcbiAgICAgICAgKG5hbWVzcGFjZSA/IGAke25hbWVzcGFjZX0uYCA6IFwiXCIpICsga2V5LnRvU3RyaW5nKCksXG4gICAgICAgIG1lcmdlclxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgb2JqZWN0W2tleV0gPSB2YWx1ZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG9iamVjdDtcbn1cbmZ1bmN0aW9uIGNyZWF0ZURlZnUobWVyZ2VyKSB7XG4gIHJldHVybiAoLi4uYXJndW1lbnRzXykgPT4gKFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSB1bmljb3JuL25vLWFycmF5LXJlZHVjZVxuICAgIGFyZ3VtZW50c18ucmVkdWNlKChwLCBjKSA9PiBfZGVmdShwLCBjLCBcIlwiLCBtZXJnZXIpLCB7fSlcbiAgKTtcbn1cbmNvbnN0IGRlZnUgPSBjcmVhdGVEZWZ1KCk7XG5cbmZ1bmN0aW9uIGlzUGxhaW5PYmplY3Qob2JqKSB7XG4gIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqKSA9PT0gXCJbb2JqZWN0IE9iamVjdF1cIjtcbn1cbmZ1bmN0aW9uIGlzTG9nT2JqKGFyZykge1xuICBpZiAoIWlzUGxhaW5PYmplY3QoYXJnKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBpZiAoIWFyZy5tZXNzYWdlICYmICFhcmcuYXJncykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBpZiAoYXJnLnN0YWNrKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiB0cnVlO1xufVxuXG5sZXQgcGF1c2VkID0gZmFsc2U7XG5jb25zdCBxdWV1ZSA9IFtdO1xuY2xhc3MgQ29uc29sYSB7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IHR5cGVzID0gb3B0aW9ucy50eXBlcyB8fCBMb2dUeXBlcztcbiAgICB0aGlzLm9wdGlvbnMgPSBkZWZ1KFxuICAgICAge1xuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICBkZWZhdWx0czogeyAuLi5vcHRpb25zLmRlZmF1bHRzIH0sXG4gICAgICAgIGxldmVsOiBfbm9ybWFsaXplTG9nTGV2ZWwob3B0aW9ucy5sZXZlbCwgdHlwZXMpLFxuICAgICAgICByZXBvcnRlcnM6IFsuLi5vcHRpb25zLnJlcG9ydGVycyB8fCBbXV1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGVzOiBMb2dUeXBlcyxcbiAgICAgICAgdGhyb3R0bGU6IDFlMyxcbiAgICAgICAgdGhyb3R0bGVNaW46IDUsXG4gICAgICAgIGZvcm1hdE9wdGlvbnM6IHtcbiAgICAgICAgICBkYXRlOiB0cnVlLFxuICAgICAgICAgIGNvbG9yczogZmFsc2UsXG4gICAgICAgICAgY29tcGFjdDogdHJ1ZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgKTtcbiAgICBmb3IgKGNvbnN0IHR5cGUgaW4gdHlwZXMpIHtcbiAgICAgIGNvbnN0IGRlZmF1bHRzID0ge1xuICAgICAgICB0eXBlLFxuICAgICAgICAuLi50aGlzLm9wdGlvbnMuZGVmYXVsdHMsXG4gICAgICAgIC4uLnR5cGVzW3R5cGVdXG4gICAgICB9O1xuICAgICAgdGhpc1t0eXBlXSA9IHRoaXMuX3dyYXBMb2dGbihkZWZhdWx0cyk7XG4gICAgICB0aGlzW3R5cGVdLnJhdyA9IHRoaXMuX3dyYXBMb2dGbihcbiAgICAgICAgZGVmYXVsdHMsXG4gICAgICAgIHRydWVcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICh0aGlzLm9wdGlvbnMubW9ja0ZuKSB7XG4gICAgICB0aGlzLm1vY2tUeXBlcygpO1xuICAgIH1cbiAgICB0aGlzLl9sYXN0TG9nID0ge307XG4gIH1cbiAgZ2V0IGxldmVsKCkge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMubGV2ZWw7XG4gIH1cbiAgc2V0IGxldmVsKGxldmVsKSB7XG4gICAgdGhpcy5vcHRpb25zLmxldmVsID0gX25vcm1hbGl6ZUxvZ0xldmVsKFxuICAgICAgbGV2ZWwsXG4gICAgICB0aGlzLm9wdGlvbnMudHlwZXMsXG4gICAgICB0aGlzLm9wdGlvbnMubGV2ZWxcbiAgICApO1xuICB9XG4gIHByb21wdChtZXNzYWdlLCBvcHRzKSB7XG4gICAgaWYgKCF0aGlzLm9wdGlvbnMucHJvbXB0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJwcm9tcHQgaXMgbm90IHN1cHBvcnRlZCFcIik7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLm9wdGlvbnMucHJvbXB0KG1lc3NhZ2UsIG9wdHMpO1xuICB9XG4gIGNyZWF0ZShvcHRpb25zKSB7XG4gICAgY29uc3QgaW5zdGFuY2UgPSBuZXcgQ29uc29sYSh7XG4gICAgICAuLi50aGlzLm9wdGlvbnMsXG4gICAgICAuLi5vcHRpb25zXG4gICAgfSk7XG4gICAgaWYgKHRoaXMuX21vY2tGbikge1xuICAgICAgaW5zdGFuY2UubW9ja1R5cGVzKHRoaXMuX21vY2tGbik7XG4gICAgfVxuICAgIHJldHVybiBpbnN0YW5jZTtcbiAgfVxuICB3aXRoRGVmYXVsdHMoZGVmYXVsdHMpIHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGUoe1xuICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgICAgZGVmYXVsdHM6IHtcbiAgICAgICAgLi4udGhpcy5vcHRpb25zLmRlZmF1bHRzLFxuICAgICAgICAuLi5kZWZhdWx0c1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIHdpdGhUYWcodGFnKSB7XG4gICAgcmV0dXJuIHRoaXMud2l0aERlZmF1bHRzKHtcbiAgICAgIHRhZzogdGhpcy5vcHRpb25zLmRlZmF1bHRzLnRhZyA/IHRoaXMub3B0aW9ucy5kZWZhdWx0cy50YWcgKyBcIjpcIiArIHRhZyA6IHRhZ1xuICAgIH0pO1xuICB9XG4gIGFkZFJlcG9ydGVyKHJlcG9ydGVyKSB7XG4gICAgdGhpcy5vcHRpb25zLnJlcG9ydGVycy5wdXNoKHJlcG9ydGVyKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICByZW1vdmVSZXBvcnRlcihyZXBvcnRlcikge1xuICAgIGlmIChyZXBvcnRlcikge1xuICAgICAgY29uc3QgaSA9IHRoaXMub3B0aW9ucy5yZXBvcnRlcnMuaW5kZXhPZihyZXBvcnRlcik7XG4gICAgICBpZiAoaSA+PSAwKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMucmVwb3J0ZXJzLnNwbGljZShpLCAxKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vcHRpb25zLnJlcG9ydGVycy5zcGxpY2UoMCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIHNldFJlcG9ydGVycyhyZXBvcnRlcnMpIHtcbiAgICB0aGlzLm9wdGlvbnMucmVwb3J0ZXJzID0gQXJyYXkuaXNBcnJheShyZXBvcnRlcnMpID8gcmVwb3J0ZXJzIDogW3JlcG9ydGVyc107XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgd3JhcEFsbCgpIHtcbiAgICB0aGlzLndyYXBDb25zb2xlKCk7XG4gICAgdGhpcy53cmFwU3RkKCk7XG4gIH1cbiAgcmVzdG9yZUFsbCgpIHtcbiAgICB0aGlzLnJlc3RvcmVDb25zb2xlKCk7XG4gICAgdGhpcy5yZXN0b3JlU3RkKCk7XG4gIH1cbiAgd3JhcENvbnNvbGUoKSB7XG4gICAgZm9yIChjb25zdCB0eXBlIGluIHRoaXMub3B0aW9ucy50eXBlcykge1xuICAgICAgaWYgKCFjb25zb2xlW1wiX19cIiArIHR5cGVdKSB7XG4gICAgICAgIGNvbnNvbGVbXCJfX1wiICsgdHlwZV0gPSBjb25zb2xlW3R5cGVdO1xuICAgICAgfVxuICAgICAgY29uc29sZVt0eXBlXSA9IHRoaXNbdHlwZV0ucmF3O1xuICAgIH1cbiAgfVxuICByZXN0b3JlQ29uc29sZSgpIHtcbiAgICBmb3IgKGNvbnN0IHR5cGUgaW4gdGhpcy5vcHRpb25zLnR5cGVzKSB7XG4gICAgICBpZiAoY29uc29sZVtcIl9fXCIgKyB0eXBlXSkge1xuICAgICAgICBjb25zb2xlW3R5cGVdID0gY29uc29sZVtcIl9fXCIgKyB0eXBlXTtcbiAgICAgICAgZGVsZXRlIGNvbnNvbGVbXCJfX1wiICsgdHlwZV07XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHdyYXBTdGQoKSB7XG4gICAgdGhpcy5fd3JhcFN0cmVhbSh0aGlzLm9wdGlvbnMuc3Rkb3V0LCBcImxvZ1wiKTtcbiAgICB0aGlzLl93cmFwU3RyZWFtKHRoaXMub3B0aW9ucy5zdGRlcnIsIFwibG9nXCIpO1xuICB9XG4gIF93cmFwU3RyZWFtKHN0cmVhbSwgdHlwZSkge1xuICAgIGlmICghc3RyZWFtKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghc3RyZWFtLl9fd3JpdGUpIHtcbiAgICAgIHN0cmVhbS5fX3dyaXRlID0gc3RyZWFtLndyaXRlO1xuICAgIH1cbiAgICBzdHJlYW0ud3JpdGUgPSAoZGF0YSkgPT4ge1xuICAgICAgdGhpc1t0eXBlXS5yYXcoU3RyaW5nKGRhdGEpLnRyaW0oKSk7XG4gICAgfTtcbiAgfVxuICByZXN0b3JlU3RkKCkge1xuICAgIHRoaXMuX3Jlc3RvcmVTdHJlYW0odGhpcy5vcHRpb25zLnN0ZG91dCk7XG4gICAgdGhpcy5fcmVzdG9yZVN0cmVhbSh0aGlzLm9wdGlvbnMuc3RkZXJyKTtcbiAgfVxuICBfcmVzdG9yZVN0cmVhbShzdHJlYW0pIHtcbiAgICBpZiAoIXN0cmVhbSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoc3RyZWFtLl9fd3JpdGUpIHtcbiAgICAgIHN0cmVhbS53cml0ZSA9IHN0cmVhbS5fX3dyaXRlO1xuICAgICAgZGVsZXRlIHN0cmVhbS5fX3dyaXRlO1xuICAgIH1cbiAgfVxuICBwYXVzZUxvZ3MoKSB7XG4gICAgcGF1c2VkID0gdHJ1ZTtcbiAgfVxuICByZXN1bWVMb2dzKCkge1xuICAgIHBhdXNlZCA9IGZhbHNlO1xuICAgIGNvbnN0IF9xdWV1ZSA9IHF1ZXVlLnNwbGljZSgwKTtcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgX3F1ZXVlKSB7XG4gICAgICBpdGVtWzBdLl9sb2dGbihpdGVtWzFdLCBpdGVtWzJdKTtcbiAgICB9XG4gIH1cbiAgbW9ja1R5cGVzKG1vY2tGbikge1xuICAgIGNvbnN0IF9tb2NrRm4gPSBtb2NrRm4gfHwgdGhpcy5vcHRpb25zLm1vY2tGbjtcbiAgICB0aGlzLl9tb2NrRm4gPSBfbW9ja0ZuO1xuICAgIGlmICh0eXBlb2YgX21vY2tGbiAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGZvciAoY29uc3QgdHlwZSBpbiB0aGlzLm9wdGlvbnMudHlwZXMpIHtcbiAgICAgIHRoaXNbdHlwZV0gPSBfbW9ja0ZuKHR5cGUsIHRoaXMub3B0aW9ucy50eXBlc1t0eXBlXSkgfHwgdGhpc1t0eXBlXTtcbiAgICAgIHRoaXNbdHlwZV0ucmF3ID0gdGhpc1t0eXBlXTtcbiAgICB9XG4gIH1cbiAgX3dyYXBMb2dGbihkZWZhdWx0cywgaXNSYXcpIHtcbiAgICByZXR1cm4gKC4uLmFyZ3MpID0+IHtcbiAgICAgIGlmIChwYXVzZWQpIHtcbiAgICAgICAgcXVldWUucHVzaChbdGhpcywgZGVmYXVsdHMsIGFyZ3MsIGlzUmF3XSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLl9sb2dGbihkZWZhdWx0cywgYXJncywgaXNSYXcpO1xuICAgIH07XG4gIH1cbiAgX2xvZ0ZuKGRlZmF1bHRzLCBhcmdzLCBpc1Jhdykge1xuICAgIGlmICgoZGVmYXVsdHMubGV2ZWwgfHwgMCkgPiB0aGlzLmxldmVsKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IGxvZ09iaiA9IHtcbiAgICAgIGRhdGU6IC8qIEBfX1BVUkVfXyAqLyBuZXcgRGF0ZSgpLFxuICAgICAgYXJnczogW10sXG4gICAgICAuLi5kZWZhdWx0cyxcbiAgICAgIGxldmVsOiBfbm9ybWFsaXplTG9nTGV2ZWwoZGVmYXVsdHMubGV2ZWwsIHRoaXMub3B0aW9ucy50eXBlcylcbiAgICB9O1xuICAgIGlmICghaXNSYXcgJiYgYXJncy5sZW5ndGggPT09IDEgJiYgaXNMb2dPYmooYXJnc1swXSkpIHtcbiAgICAgIE9iamVjdC5hc3NpZ24obG9nT2JqLCBhcmdzWzBdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbG9nT2JqLmFyZ3MgPSBbLi4uYXJnc107XG4gICAgfVxuICAgIGlmIChsb2dPYmoubWVzc2FnZSkge1xuICAgICAgbG9nT2JqLmFyZ3MudW5zaGlmdChsb2dPYmoubWVzc2FnZSk7XG4gICAgICBkZWxldGUgbG9nT2JqLm1lc3NhZ2U7XG4gICAgfVxuICAgIGlmIChsb2dPYmouYWRkaXRpb25hbCkge1xuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGxvZ09iai5hZGRpdGlvbmFsKSkge1xuICAgICAgICBsb2dPYmouYWRkaXRpb25hbCA9IGxvZ09iai5hZGRpdGlvbmFsLnNwbGl0KFwiXFxuXCIpO1xuICAgICAgfVxuICAgICAgbG9nT2JqLmFyZ3MucHVzaChcIlxcblwiICsgbG9nT2JqLmFkZGl0aW9uYWwuam9pbihcIlxcblwiKSk7XG4gICAgICBkZWxldGUgbG9nT2JqLmFkZGl0aW9uYWw7XG4gICAgfVxuICAgIGxvZ09iai50eXBlID0gdHlwZW9mIGxvZ09iai50eXBlID09PSBcInN0cmluZ1wiID8gbG9nT2JqLnR5cGUudG9Mb3dlckNhc2UoKSA6IFwibG9nXCI7XG4gICAgbG9nT2JqLnRhZyA9IHR5cGVvZiBsb2dPYmoudGFnID09PSBcInN0cmluZ1wiID8gbG9nT2JqLnRhZyA6IFwiXCI7XG4gICAgY29uc3QgcmVzb2x2ZUxvZyA9IChuZXdMb2cgPSBmYWxzZSkgPT4ge1xuICAgICAgY29uc3QgcmVwZWF0ZWQgPSAodGhpcy5fbGFzdExvZy5jb3VudCB8fCAwKSAtIHRoaXMub3B0aW9ucy50aHJvdHRsZU1pbjtcbiAgICAgIGlmICh0aGlzLl9sYXN0TG9nLm9iamVjdCAmJiByZXBlYXRlZCA+IDApIHtcbiAgICAgICAgY29uc3QgYXJnczIgPSBbLi4udGhpcy5fbGFzdExvZy5vYmplY3QuYXJnc107XG4gICAgICAgIGlmIChyZXBlYXRlZCA+IDEpIHtcbiAgICAgICAgICBhcmdzMi5wdXNoKGAocmVwZWF0ZWQgJHtyZXBlYXRlZH0gdGltZXMpYCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fbG9nKHsgLi4udGhpcy5fbGFzdExvZy5vYmplY3QsIGFyZ3M6IGFyZ3MyIH0pO1xuICAgICAgICB0aGlzLl9sYXN0TG9nLmNvdW50ID0gMTtcbiAgICAgIH1cbiAgICAgIGlmIChuZXdMb2cpIHtcbiAgICAgICAgdGhpcy5fbGFzdExvZy5vYmplY3QgPSBsb2dPYmo7XG4gICAgICAgIHRoaXMuX2xvZyhsb2dPYmopO1xuICAgICAgfVxuICAgIH07XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuX2xhc3RMb2cudGltZW91dCk7XG4gICAgY29uc3QgZGlmZlRpbWUgPSB0aGlzLl9sYXN0TG9nLnRpbWUgJiYgbG9nT2JqLmRhdGUgPyBsb2dPYmouZGF0ZS5nZXRUaW1lKCkgLSB0aGlzLl9sYXN0TG9nLnRpbWUuZ2V0VGltZSgpIDogMDtcbiAgICB0aGlzLl9sYXN0TG9nLnRpbWUgPSBsb2dPYmouZGF0ZTtcbiAgICBpZiAoZGlmZlRpbWUgPCB0aGlzLm9wdGlvbnMudGhyb3R0bGUpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHNlcmlhbGl6ZWRMb2cgPSBKU09OLnN0cmluZ2lmeShbXG4gICAgICAgICAgbG9nT2JqLnR5cGUsXG4gICAgICAgICAgbG9nT2JqLnRhZyxcbiAgICAgICAgICBsb2dPYmouYXJnc1xuICAgICAgICBdKTtcbiAgICAgICAgY29uc3QgaXNTYW1lTG9nID0gdGhpcy5fbGFzdExvZy5zZXJpYWxpemVkID09PSBzZXJpYWxpemVkTG9nO1xuICAgICAgICB0aGlzLl9sYXN0TG9nLnNlcmlhbGl6ZWQgPSBzZXJpYWxpemVkTG9nO1xuICAgICAgICBpZiAoaXNTYW1lTG9nKSB7XG4gICAgICAgICAgdGhpcy5fbGFzdExvZy5jb3VudCA9ICh0aGlzLl9sYXN0TG9nLmNvdW50IHx8IDApICsgMTtcbiAgICAgICAgICBpZiAodGhpcy5fbGFzdExvZy5jb3VudCA+IHRoaXMub3B0aW9ucy50aHJvdHRsZU1pbikge1xuICAgICAgICAgICAgdGhpcy5fbGFzdExvZy50aW1lb3V0ID0gc2V0VGltZW91dChcbiAgICAgICAgICAgICAgcmVzb2x2ZUxvZyxcbiAgICAgICAgICAgICAgdGhpcy5vcHRpb25zLnRocm90dGxlXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCB7XG4gICAgICB9XG4gICAgfVxuICAgIHJlc29sdmVMb2codHJ1ZSk7XG4gIH1cbiAgX2xvZyhsb2dPYmopIHtcbiAgICBmb3IgKGNvbnN0IHJlcG9ydGVyIG9mIHRoaXMub3B0aW9ucy5yZXBvcnRlcnMpIHtcbiAgICAgIHJlcG9ydGVyLmxvZyhsb2dPYmosIHtcbiAgICAgICAgb3B0aW9uczogdGhpcy5vcHRpb25zXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIF9ub3JtYWxpemVMb2dMZXZlbChpbnB1dCwgdHlwZXMgPSB7fSwgZGVmYXVsdExldmVsID0gMykge1xuICBpZiAoaW5wdXQgPT09IHZvaWQgMCkge1xuICAgIHJldHVybiBkZWZhdWx0TGV2ZWw7XG4gIH1cbiAgaWYgKHR5cGVvZiBpbnB1dCA9PT0gXCJudW1iZXJcIikge1xuICAgIHJldHVybiBpbnB1dDtcbiAgfVxuICBpZiAodHlwZXNbaW5wdXRdICYmIHR5cGVzW2lucHV0XS5sZXZlbCAhPT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuIHR5cGVzW2lucHV0XS5sZXZlbDtcbiAgfVxuICByZXR1cm4gZGVmYXVsdExldmVsO1xufVxuQ29uc29sYS5wcm90b3R5cGUuYWRkID0gQ29uc29sYS5wcm90b3R5cGUuYWRkUmVwb3J0ZXI7XG5Db25zb2xhLnByb3RvdHlwZS5yZW1vdmUgPSBDb25zb2xhLnByb3RvdHlwZS5yZW1vdmVSZXBvcnRlcjtcbkNvbnNvbGEucHJvdG90eXBlLmNsZWFyID0gQ29uc29sYS5wcm90b3R5cGUucmVtb3ZlUmVwb3J0ZXI7XG5Db25zb2xhLnByb3RvdHlwZS53aXRoU2NvcGUgPSBDb25zb2xhLnByb3RvdHlwZS53aXRoVGFnO1xuQ29uc29sYS5wcm90b3R5cGUubW9jayA9IENvbnNvbGEucHJvdG90eXBlLm1vY2tUeXBlcztcbkNvbnNvbGEucHJvdG90eXBlLnBhdXNlID0gQ29uc29sYS5wcm90b3R5cGUucGF1c2VMb2dzO1xuQ29uc29sYS5wcm90b3R5cGUucmVzdW1lID0gQ29uc29sYS5wcm90b3R5cGUucmVzdW1lTG9ncztcbmZ1bmN0aW9uIGNyZWF0ZUNvbnNvbGEob3B0aW9ucyA9IHt9KSB7XG4gIHJldHVybiBuZXcgQ29uc29sYShvcHRpb25zKTtcbn1cblxuZXhwb3J0IHsgQ29uc29sYSwgTG9nTGV2ZWxzLCBMb2dUeXBlcywgY3JlYXRlQ29uc29sYSB9O1xuIiwgImltcG9ydCB7IGZvcm1hdFdpdGhPcHRpb25zIH0gZnJvbSAnbm9kZTp1dGlsJztcbmltcG9ydCB7IHNlcCB9IGZyb20gJ25vZGU6cGF0aCc7XG5cbmZ1bmN0aW9uIHBhcnNlU3RhY2soc3RhY2spIHtcbiAgY29uc3QgY3dkID0gcHJvY2Vzcy5jd2QoKSArIHNlcDtcbiAgY29uc3QgbGluZXMgPSBzdGFjay5zcGxpdChcIlxcblwiKS5zcGxpY2UoMSkubWFwKChsKSA9PiBsLnRyaW0oKS5yZXBsYWNlKFwiZmlsZTovL1wiLCBcIlwiKS5yZXBsYWNlKGN3ZCwgXCJcIikpO1xuICByZXR1cm4gbGluZXM7XG59XG5cbmZ1bmN0aW9uIHdyaXRlU3RyZWFtKGRhdGEsIHN0cmVhbSkge1xuICBjb25zdCB3cml0ZSA9IHN0cmVhbS5fX3dyaXRlIHx8IHN0cmVhbS53cml0ZTtcbiAgcmV0dXJuIHdyaXRlLmNhbGwoc3RyZWFtLCBkYXRhKTtcbn1cblxuY29uc3QgYnJhY2tldCA9ICh4KSA9PiB4ID8gYFske3h9XWAgOiBcIlwiO1xuY2xhc3MgQmFzaWNSZXBvcnRlciB7XG4gIGZvcm1hdFN0YWNrKHN0YWNrLCBvcHRzKSB7XG4gICAgcmV0dXJuIFwiICBcIiArIHBhcnNlU3RhY2soc3RhY2spLmpvaW4oXCJcXG4gIFwiKTtcbiAgfVxuICBmb3JtYXRBcmdzKGFyZ3MsIG9wdHMpIHtcbiAgICBjb25zdCBfYXJncyA9IGFyZ3MubWFwKChhcmcpID0+IHtcbiAgICAgIGlmIChhcmcgJiYgdHlwZW9mIGFyZy5zdGFjayA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICByZXR1cm4gYXJnLm1lc3NhZ2UgKyBcIlxcblwiICsgdGhpcy5mb3JtYXRTdGFjayhhcmcuc3RhY2ssIG9wdHMpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFyZztcbiAgICB9KTtcbiAgICByZXR1cm4gZm9ybWF0V2l0aE9wdGlvbnMob3B0cywgLi4uX2FyZ3MpO1xuICB9XG4gIGZvcm1hdERhdGUoZGF0ZSwgb3B0cykge1xuICAgIHJldHVybiBvcHRzLmRhdGUgPyBkYXRlLnRvTG9jYWxlVGltZVN0cmluZygpIDogXCJcIjtcbiAgfVxuICBmaWx0ZXJBbmRKb2luKGFycikge1xuICAgIHJldHVybiBhcnIuZmlsdGVyKEJvb2xlYW4pLmpvaW4oXCIgXCIpO1xuICB9XG4gIGZvcm1hdExvZ09iaihsb2dPYmosIG9wdHMpIHtcbiAgICBjb25zdCBtZXNzYWdlID0gdGhpcy5mb3JtYXRBcmdzKGxvZ09iai5hcmdzLCBvcHRzKTtcbiAgICBpZiAobG9nT2JqLnR5cGUgPT09IFwiYm94XCIpIHtcbiAgICAgIHJldHVybiBcIlxcblwiICsgW1xuICAgICAgICBicmFja2V0KGxvZ09iai50YWcpLFxuICAgICAgICBsb2dPYmoudGl0bGUgJiYgbG9nT2JqLnRpdGxlLFxuICAgICAgICAuLi5tZXNzYWdlLnNwbGl0KFwiXFxuXCIpXG4gICAgICBdLmZpbHRlcihCb29sZWFuKS5tYXAoKGwpID0+IFwiID4gXCIgKyBsKS5qb2luKFwiXFxuXCIpICsgXCJcXG5cIjtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyQW5kSm9pbihbXG4gICAgICBicmFja2V0KGxvZ09iai50eXBlKSxcbiAgICAgIGJyYWNrZXQobG9nT2JqLnRhZyksXG4gICAgICBtZXNzYWdlXG4gICAgXSk7XG4gIH1cbiAgbG9nKGxvZ09iaiwgY3R4KSB7XG4gICAgY29uc3QgbGluZSA9IHRoaXMuZm9ybWF0TG9nT2JqKGxvZ09iaiwge1xuICAgICAgY29sdW1uczogY3R4Lm9wdGlvbnMuc3Rkb3V0LmNvbHVtbnMgfHwgMCxcbiAgICAgIC4uLmN0eC5vcHRpb25zLmZvcm1hdE9wdGlvbnNcbiAgICB9KTtcbiAgICByZXR1cm4gd3JpdGVTdHJlYW0oXG4gICAgICBsaW5lICsgXCJcXG5cIixcbiAgICAgIGxvZ09iai5sZXZlbCA8IDIgPyBjdHgub3B0aW9ucy5zdGRlcnIgfHwgcHJvY2Vzcy5zdGRlcnIgOiBjdHgub3B0aW9ucy5zdGRvdXQgfHwgcHJvY2Vzcy5zdGRvdXRcbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCB7IEJhc2ljUmVwb3J0ZXIgYXMgQiwgcGFyc2VTdGFjayBhcyBwIH07XG4iLCAiaW1wb3J0ICogYXMgdHR5IGZyb20gJ25vZGU6dHR5JztcblxuY29uc3Qge1xuICBlbnYgPSB7fSxcbiAgYXJndiA9IFtdLFxuICBwbGF0Zm9ybSA9IFwiXCJcbn0gPSB0eXBlb2YgcHJvY2VzcyA9PT0gXCJ1bmRlZmluZWRcIiA/IHt9IDogcHJvY2VzcztcbmNvbnN0IGlzRGlzYWJsZWQgPSBcIk5PX0NPTE9SXCIgaW4gZW52IHx8IGFyZ3YuaW5jbHVkZXMoXCItLW5vLWNvbG9yXCIpO1xuY29uc3QgaXNGb3JjZWQgPSBcIkZPUkNFX0NPTE9SXCIgaW4gZW52IHx8IGFyZ3YuaW5jbHVkZXMoXCItLWNvbG9yXCIpO1xuY29uc3QgaXNXaW5kb3dzID0gcGxhdGZvcm0gPT09IFwid2luMzJcIjtcbmNvbnN0IGlzRHVtYlRlcm1pbmFsID0gZW52LlRFUk0gPT09IFwiZHVtYlwiO1xuY29uc3QgaXNDb21wYXRpYmxlVGVybWluYWwgPSB0dHkgJiYgdHR5LmlzYXR0eSAmJiB0dHkuaXNhdHR5KDEpICYmIGVudi5URVJNICYmICFpc0R1bWJUZXJtaW5hbDtcbmNvbnN0IGlzQ0kgPSBcIkNJXCIgaW4gZW52ICYmIChcIkdJVEhVQl9BQ1RJT05TXCIgaW4gZW52IHx8IFwiR0lUTEFCX0NJXCIgaW4gZW52IHx8IFwiQ0lSQ0xFQ0lcIiBpbiBlbnYpO1xuY29uc3QgaXNDb2xvclN1cHBvcnRlZCA9ICFpc0Rpc2FibGVkICYmIChpc0ZvcmNlZCB8fCBpc1dpbmRvd3MgJiYgIWlzRHVtYlRlcm1pbmFsIHx8IGlzQ29tcGF0aWJsZVRlcm1pbmFsIHx8IGlzQ0kpO1xuZnVuY3Rpb24gcmVwbGFjZUNsb3NlKGluZGV4LCBzdHJpbmcsIGNsb3NlLCByZXBsYWNlLCBoZWFkID0gc3RyaW5nLnNsaWNlKDAsIE1hdGgubWF4KDAsIGluZGV4KSkgKyByZXBsYWNlLCB0YWlsID0gc3RyaW5nLnNsaWNlKE1hdGgubWF4KDAsIGluZGV4ICsgY2xvc2UubGVuZ3RoKSksIG5leHQgPSB0YWlsLmluZGV4T2YoY2xvc2UpKSB7XG4gIHJldHVybiBoZWFkICsgKG5leHQgPCAwID8gdGFpbCA6IHJlcGxhY2VDbG9zZShuZXh0LCB0YWlsLCBjbG9zZSwgcmVwbGFjZSkpO1xufVxuZnVuY3Rpb24gY2xlYXJCbGVlZChpbmRleCwgc3RyaW5nLCBvcGVuLCBjbG9zZSwgcmVwbGFjZSkge1xuICByZXR1cm4gaW5kZXggPCAwID8gb3BlbiArIHN0cmluZyArIGNsb3NlIDogb3BlbiArIHJlcGxhY2VDbG9zZShpbmRleCwgc3RyaW5nLCBjbG9zZSwgcmVwbGFjZSkgKyBjbG9zZTtcbn1cbmZ1bmN0aW9uIGZpbHRlckVtcHR5KG9wZW4sIGNsb3NlLCByZXBsYWNlID0gb3BlbiwgYXQgPSBvcGVuLmxlbmd0aCArIDEpIHtcbiAgcmV0dXJuIChzdHJpbmcpID0+IHN0cmluZyB8fCAhKHN0cmluZyA9PT0gXCJcIiB8fCBzdHJpbmcgPT09IHZvaWQgMCkgPyBjbGVhckJsZWVkKFxuICAgIChcIlwiICsgc3RyaW5nKS5pbmRleE9mKGNsb3NlLCBhdCksXG4gICAgc3RyaW5nLFxuICAgIG9wZW4sXG4gICAgY2xvc2UsXG4gICAgcmVwbGFjZVxuICApIDogXCJcIjtcbn1cbmZ1bmN0aW9uIGluaXQob3BlbiwgY2xvc2UsIHJlcGxhY2UpIHtcbiAgcmV0dXJuIGZpbHRlckVtcHR5KGBcXHgxQlske29wZW59bWAsIGBcXHgxQlske2Nsb3NlfW1gLCByZXBsYWNlKTtcbn1cbmNvbnN0IGNvbG9yRGVmcyA9IHtcbiAgcmVzZXQ6IGluaXQoMCwgMCksXG4gIGJvbGQ6IGluaXQoMSwgMjIsIFwiXFx4MUJbMjJtXFx4MUJbMW1cIiksXG4gIGRpbTogaW5pdCgyLCAyMiwgXCJcXHgxQlsyMm1cXHgxQlsybVwiKSxcbiAgaXRhbGljOiBpbml0KDMsIDIzKSxcbiAgdW5kZXJsaW5lOiBpbml0KDQsIDI0KSxcbiAgaW52ZXJzZTogaW5pdCg3LCAyNyksXG4gIGhpZGRlbjogaW5pdCg4LCAyOCksXG4gIHN0cmlrZXRocm91Z2g6IGluaXQoOSwgMjkpLFxuICBibGFjazogaW5pdCgzMCwgMzkpLFxuICByZWQ6IGluaXQoMzEsIDM5KSxcbiAgZ3JlZW46IGluaXQoMzIsIDM5KSxcbiAgeWVsbG93OiBpbml0KDMzLCAzOSksXG4gIGJsdWU6IGluaXQoMzQsIDM5KSxcbiAgbWFnZW50YTogaW5pdCgzNSwgMzkpLFxuICBjeWFuOiBpbml0KDM2LCAzOSksXG4gIHdoaXRlOiBpbml0KDM3LCAzOSksXG4gIGdyYXk6IGluaXQoOTAsIDM5KSxcbiAgYmdCbGFjazogaW5pdCg0MCwgNDkpLFxuICBiZ1JlZDogaW5pdCg0MSwgNDkpLFxuICBiZ0dyZWVuOiBpbml0KDQyLCA0OSksXG4gIGJnWWVsbG93OiBpbml0KDQzLCA0OSksXG4gIGJnQmx1ZTogaW5pdCg0NCwgNDkpLFxuICBiZ01hZ2VudGE6IGluaXQoNDUsIDQ5KSxcbiAgYmdDeWFuOiBpbml0KDQ2LCA0OSksXG4gIGJnV2hpdGU6IGluaXQoNDcsIDQ5KSxcbiAgYmxhY2tCcmlnaHQ6IGluaXQoOTAsIDM5KSxcbiAgcmVkQnJpZ2h0OiBpbml0KDkxLCAzOSksXG4gIGdyZWVuQnJpZ2h0OiBpbml0KDkyLCAzOSksXG4gIHllbGxvd0JyaWdodDogaW5pdCg5MywgMzkpLFxuICBibHVlQnJpZ2h0OiBpbml0KDk0LCAzOSksXG4gIG1hZ2VudGFCcmlnaHQ6IGluaXQoOTUsIDM5KSxcbiAgY3lhbkJyaWdodDogaW5pdCg5NiwgMzkpLFxuICB3aGl0ZUJyaWdodDogaW5pdCg5NywgMzkpLFxuICBiZ0JsYWNrQnJpZ2h0OiBpbml0KDEwMCwgNDkpLFxuICBiZ1JlZEJyaWdodDogaW5pdCgxMDEsIDQ5KSxcbiAgYmdHcmVlbkJyaWdodDogaW5pdCgxMDIsIDQ5KSxcbiAgYmdZZWxsb3dCcmlnaHQ6IGluaXQoMTAzLCA0OSksXG4gIGJnQmx1ZUJyaWdodDogaW5pdCgxMDQsIDQ5KSxcbiAgYmdNYWdlbnRhQnJpZ2h0OiBpbml0KDEwNSwgNDkpLFxuICBiZ0N5YW5CcmlnaHQ6IGluaXQoMTA2LCA0OSksXG4gIGJnV2hpdGVCcmlnaHQ6IGluaXQoMTA3LCA0OSlcbn07XG5mdW5jdGlvbiBjcmVhdGVDb2xvcnModXNlQ29sb3IgPSBpc0NvbG9yU3VwcG9ydGVkKSB7XG4gIHJldHVybiB1c2VDb2xvciA/IGNvbG9yRGVmcyA6IE9iamVjdC5mcm9tRW50cmllcyhPYmplY3Qua2V5cyhjb2xvckRlZnMpLm1hcCgoa2V5KSA9PiBba2V5LCBTdHJpbmddKSk7XG59XG5jb25zdCBjb2xvcnMgPSBjcmVhdGVDb2xvcnMoKTtcbmZ1bmN0aW9uIGdldENvbG9yKGNvbG9yLCBmYWxsYmFjayA9IFwicmVzZXRcIikge1xuICByZXR1cm4gY29sb3JzW2NvbG9yXSB8fCBjb2xvcnNbZmFsbGJhY2tdO1xufVxuZnVuY3Rpb24gY29sb3JpemUoY29sb3IsIHRleHQpIHtcbiAgcmV0dXJuIGdldENvbG9yKGNvbG9yKSh0ZXh0KTtcbn1cblxuY29uc3QgYW5zaVJlZ2V4ID0gW1xuICBcIltcXFxcdTAwMUJcXFxcdTAwOUJdW1tcXFxcXSgpIzs/XSooPzooPzooPzooPzo7Wy1hLXpBLVpcXFxcZFxcXFwvIyYuOj0/JUB+X10rKSp8W2EtekEtWlxcXFxkXSsoPzo7Wy1hLXpBLVpcXFxcZFxcXFwvIyYuOj0/JUB+X10qKSopP1xcXFx1MDAwNylcIixcbiAgXCIoPzooPzpcXFxcZHsxLDR9KD86O1xcXFxkezAsNH0pKik/W1xcXFxkQS1QUi1UWmNmLW5xLXV5PT48fl0pKVwiXG5dLmpvaW4oXCJ8XCIpO1xuZnVuY3Rpb24gc3RyaXBBbnNpKHRleHQpIHtcbiAgcmV0dXJuIHRleHQucmVwbGFjZShuZXcgUmVnRXhwKGFuc2lSZWdleCwgXCJnXCIpLCBcIlwiKTtcbn1cbmZ1bmN0aW9uIGNlbnRlckFsaWduKHN0ciwgbGVuLCBzcGFjZSA9IFwiIFwiKSB7XG4gIGNvbnN0IGZyZWUgPSBsZW4gLSBzdHIubGVuZ3RoO1xuICBpZiAoZnJlZSA8PSAwKSB7XG4gICAgcmV0dXJuIHN0cjtcbiAgfVxuICBjb25zdCBmcmVlTGVmdCA9IE1hdGguZmxvb3IoZnJlZSAvIDIpO1xuICBsZXQgX3N0ciA9IFwiXCI7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICBfc3RyICs9IGkgPCBmcmVlTGVmdCB8fCBpID49IGZyZWVMZWZ0ICsgc3RyLmxlbmd0aCA/IHNwYWNlIDogc3RyW2kgLSBmcmVlTGVmdF07XG4gIH1cbiAgcmV0dXJuIF9zdHI7XG59XG5mdW5jdGlvbiByaWdodEFsaWduKHN0ciwgbGVuLCBzcGFjZSA9IFwiIFwiKSB7XG4gIGNvbnN0IGZyZWUgPSBsZW4gLSBzdHIubGVuZ3RoO1xuICBpZiAoZnJlZSA8PSAwKSB7XG4gICAgcmV0dXJuIHN0cjtcbiAgfVxuICBsZXQgX3N0ciA9IFwiXCI7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICBfc3RyICs9IGkgPCBmcmVlID8gc3BhY2UgOiBzdHJbaSAtIGZyZWVdO1xuICB9XG4gIHJldHVybiBfc3RyO1xufVxuZnVuY3Rpb24gbGVmdEFsaWduKHN0ciwgbGVuLCBzcGFjZSA9IFwiIFwiKSB7XG4gIGxldCBfc3RyID0gXCJcIjtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgIF9zdHIgKz0gaSA8IHN0ci5sZW5ndGggPyBzdHJbaV0gOiBzcGFjZTtcbiAgfVxuICByZXR1cm4gX3N0cjtcbn1cbmZ1bmN0aW9uIGFsaWduKGFsaWdubWVudCwgc3RyLCBsZW4sIHNwYWNlID0gXCIgXCIpIHtcbiAgc3dpdGNoIChhbGlnbm1lbnQpIHtcbiAgICBjYXNlIFwibGVmdFwiOiB7XG4gICAgICByZXR1cm4gbGVmdEFsaWduKHN0ciwgbGVuLCBzcGFjZSk7XG4gICAgfVxuICAgIGNhc2UgXCJyaWdodFwiOiB7XG4gICAgICByZXR1cm4gcmlnaHRBbGlnbihzdHIsIGxlbiwgc3BhY2UpO1xuICAgIH1cbiAgICBjYXNlIFwiY2VudGVyXCI6IHtcbiAgICAgIHJldHVybiBjZW50ZXJBbGlnbihzdHIsIGxlbiwgc3BhY2UpO1xuICAgIH1cbiAgICBkZWZhdWx0OiB7XG4gICAgICByZXR1cm4gc3RyO1xuICAgIH1cbiAgfVxufVxuXG5jb25zdCBib3hTdHlsZVByZXNldHMgPSB7XG4gIHNvbGlkOiB7XG4gICAgdGw6IFwiXFx1MjUwQ1wiLFxuICAgIHRyOiBcIlxcdTI1MTBcIixcbiAgICBibDogXCJcXHUyNTE0XCIsXG4gICAgYnI6IFwiXFx1MjUxOFwiLFxuICAgIGg6IFwiXFx1MjUwMFwiLFxuICAgIHY6IFwiXFx1MjUwMlwiXG4gIH0sXG4gIGRvdWJsZToge1xuICAgIHRsOiBcIlxcdTI1NTRcIixcbiAgICB0cjogXCJcXHUyNTU3XCIsXG4gICAgYmw6IFwiXFx1MjU1QVwiLFxuICAgIGJyOiBcIlxcdTI1NURcIixcbiAgICBoOiBcIlxcdTI1NTBcIixcbiAgICB2OiBcIlxcdTI1NTFcIlxuICB9LFxuICBkb3VibGVTaW5nbGU6IHtcbiAgICB0bDogXCJcXHUyNTUzXCIsXG4gICAgdHI6IFwiXFx1MjU1NlwiLFxuICAgIGJsOiBcIlxcdTI1NTlcIixcbiAgICBicjogXCJcXHUyNTVDXCIsXG4gICAgaDogXCJcXHUyNTAwXCIsXG4gICAgdjogXCJcXHUyNTUxXCJcbiAgfSxcbiAgZG91YmxlU2luZ2xlUm91bmRlZDoge1xuICAgIHRsOiBcIlxcdTI1NkRcIixcbiAgICB0cjogXCJcXHUyNTZFXCIsXG4gICAgYmw6IFwiXFx1MjU3MFwiLFxuICAgIGJyOiBcIlxcdTI1NkZcIixcbiAgICBoOiBcIlxcdTI1MDBcIixcbiAgICB2OiBcIlxcdTI1NTFcIlxuICB9LFxuICBzaW5nbGVUaGljazoge1xuICAgIHRsOiBcIlxcdTI1MEZcIixcbiAgICB0cjogXCJcXHUyNTEzXCIsXG4gICAgYmw6IFwiXFx1MjUxN1wiLFxuICAgIGJyOiBcIlxcdTI1MUJcIixcbiAgICBoOiBcIlxcdTI1MDFcIixcbiAgICB2OiBcIlxcdTI1MDNcIlxuICB9LFxuICBzaW5nbGVEb3VibGU6IHtcbiAgICB0bDogXCJcXHUyNTUyXCIsXG4gICAgdHI6IFwiXFx1MjU1NVwiLFxuICAgIGJsOiBcIlxcdTI1NThcIixcbiAgICBicjogXCJcXHUyNTVCXCIsXG4gICAgaDogXCJcXHUyNTUwXCIsXG4gICAgdjogXCJcXHUyNTAyXCJcbiAgfSxcbiAgc2luZ2xlRG91YmxlUm91bmRlZDoge1xuICAgIHRsOiBcIlxcdTI1NkRcIixcbiAgICB0cjogXCJcXHUyNTZFXCIsXG4gICAgYmw6IFwiXFx1MjU3MFwiLFxuICAgIGJyOiBcIlxcdTI1NkZcIixcbiAgICBoOiBcIlxcdTI1NTBcIixcbiAgICB2OiBcIlxcdTI1MDJcIlxuICB9LFxuICByb3VuZGVkOiB7XG4gICAgdGw6IFwiXFx1MjU2RFwiLFxuICAgIHRyOiBcIlxcdTI1NkVcIixcbiAgICBibDogXCJcXHUyNTcwXCIsXG4gICAgYnI6IFwiXFx1MjU2RlwiLFxuICAgIGg6IFwiXFx1MjUwMFwiLFxuICAgIHY6IFwiXFx1MjUwMlwiXG4gIH1cbn07XG5jb25zdCBkZWZhdWx0U3R5bGUgPSB7XG4gIGJvcmRlckNvbG9yOiBcIndoaXRlXCIsXG4gIGJvcmRlclN0eWxlOiBcInJvdW5kZWRcIixcbiAgdmFsaWduOiBcImNlbnRlclwiLFxuICBwYWRkaW5nOiAyLFxuICBtYXJnaW5MZWZ0OiAxLFxuICBtYXJnaW5Ub3A6IDEsXG4gIG1hcmdpbkJvdHRvbTogMVxufTtcbmZ1bmN0aW9uIGJveCh0ZXh0LCBfb3B0cyA9IHt9KSB7XG4gIGNvbnN0IG9wdHMgPSB7XG4gICAgLi4uX29wdHMsXG4gICAgc3R5bGU6IHtcbiAgICAgIC4uLmRlZmF1bHRTdHlsZSxcbiAgICAgIC4uLl9vcHRzLnN0eWxlXG4gICAgfVxuICB9O1xuICBjb25zdCB0ZXh0TGluZXMgPSB0ZXh0LnNwbGl0KFwiXFxuXCIpO1xuICBjb25zdCBib3hMaW5lcyA9IFtdO1xuICBjb25zdCBfY29sb3IgPSBnZXRDb2xvcihvcHRzLnN0eWxlLmJvcmRlckNvbG9yKTtcbiAgY29uc3QgYm9yZGVyU3R5bGUgPSB7XG4gICAgLi4udHlwZW9mIG9wdHMuc3R5bGUuYm9yZGVyU3R5bGUgPT09IFwic3RyaW5nXCIgPyBib3hTdHlsZVByZXNldHNbb3B0cy5zdHlsZS5ib3JkZXJTdHlsZV0gfHwgYm94U3R5bGVQcmVzZXRzLnNvbGlkIDogb3B0cy5zdHlsZS5ib3JkZXJTdHlsZVxuICB9O1xuICBpZiAoX2NvbG9yKSB7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gYm9yZGVyU3R5bGUpIHtcbiAgICAgIGJvcmRlclN0eWxlW2tleV0gPSBfY29sb3IoXG4gICAgICAgIGJvcmRlclN0eWxlW2tleV1cbiAgICAgICk7XG4gICAgfVxuICB9XG4gIGNvbnN0IHBhZGRpbmdPZmZzZXQgPSBvcHRzLnN0eWxlLnBhZGRpbmcgJSAyID09PSAwID8gb3B0cy5zdHlsZS5wYWRkaW5nIDogb3B0cy5zdHlsZS5wYWRkaW5nICsgMTtcbiAgY29uc3QgaGVpZ2h0ID0gdGV4dExpbmVzLmxlbmd0aCArIHBhZGRpbmdPZmZzZXQ7XG4gIGNvbnN0IHdpZHRoID0gTWF0aC5tYXgoLi4udGV4dExpbmVzLm1hcCgobGluZSkgPT4gbGluZS5sZW5ndGgpKSArIHBhZGRpbmdPZmZzZXQ7XG4gIGNvbnN0IHdpZHRoT2Zmc2V0ID0gd2lkdGggKyBwYWRkaW5nT2Zmc2V0O1xuICBjb25zdCBsZWZ0U3BhY2UgPSBvcHRzLnN0eWxlLm1hcmdpbkxlZnQgPiAwID8gXCIgXCIucmVwZWF0KG9wdHMuc3R5bGUubWFyZ2luTGVmdCkgOiBcIlwiO1xuICBpZiAob3B0cy5zdHlsZS5tYXJnaW5Ub3AgPiAwKSB7XG4gICAgYm94TGluZXMucHVzaChcIlwiLnJlcGVhdChvcHRzLnN0eWxlLm1hcmdpblRvcCkpO1xuICB9XG4gIGlmIChvcHRzLnRpdGxlKSB7XG4gICAgY29uc3QgbGVmdCA9IGJvcmRlclN0eWxlLmgucmVwZWF0KFxuICAgICAgTWF0aC5mbG9vcigod2lkdGggLSBzdHJpcEFuc2kob3B0cy50aXRsZSkubGVuZ3RoKSAvIDIpXG4gICAgKTtcbiAgICBjb25zdCByaWdodCA9IGJvcmRlclN0eWxlLmgucmVwZWF0KFxuICAgICAgd2lkdGggLSBzdHJpcEFuc2kob3B0cy50aXRsZSkubGVuZ3RoIC0gc3RyaXBBbnNpKGxlZnQpLmxlbmd0aCArIHBhZGRpbmdPZmZzZXRcbiAgICApO1xuICAgIGJveExpbmVzLnB1c2goXG4gICAgICBgJHtsZWZ0U3BhY2V9JHtib3JkZXJTdHlsZS50bH0ke2xlZnR9JHtvcHRzLnRpdGxlfSR7cmlnaHR9JHtib3JkZXJTdHlsZS50cn1gXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICBib3hMaW5lcy5wdXNoKFxuICAgICAgYCR7bGVmdFNwYWNlfSR7Ym9yZGVyU3R5bGUudGx9JHtib3JkZXJTdHlsZS5oLnJlcGVhdCh3aWR0aE9mZnNldCl9JHtib3JkZXJTdHlsZS50cn1gXG4gICAgKTtcbiAgfVxuICBjb25zdCB2YWxpZ25PZmZzZXQgPSBvcHRzLnN0eWxlLnZhbGlnbiA9PT0gXCJjZW50ZXJcIiA/IE1hdGguZmxvb3IoKGhlaWdodCAtIHRleHRMaW5lcy5sZW5ndGgpIC8gMikgOiBvcHRzLnN0eWxlLnZhbGlnbiA9PT0gXCJ0b3BcIiA/IGhlaWdodCAtIHRleHRMaW5lcy5sZW5ndGggLSBwYWRkaW5nT2Zmc2V0IDogaGVpZ2h0IC0gdGV4dExpbmVzLmxlbmd0aDtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBoZWlnaHQ7IGkrKykge1xuICAgIGlmIChpIDwgdmFsaWduT2Zmc2V0IHx8IGkgPj0gdmFsaWduT2Zmc2V0ICsgdGV4dExpbmVzLmxlbmd0aCkge1xuICAgICAgYm94TGluZXMucHVzaChcbiAgICAgICAgYCR7bGVmdFNwYWNlfSR7Ym9yZGVyU3R5bGUudn0ke1wiIFwiLnJlcGVhdCh3aWR0aE9mZnNldCl9JHtib3JkZXJTdHlsZS52fWBcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGxpbmUgPSB0ZXh0TGluZXNbaSAtIHZhbGlnbk9mZnNldF07XG4gICAgICBjb25zdCBsZWZ0ID0gXCIgXCIucmVwZWF0KHBhZGRpbmdPZmZzZXQpO1xuICAgICAgY29uc3QgcmlnaHQgPSBcIiBcIi5yZXBlYXQod2lkdGggLSBzdHJpcEFuc2kobGluZSkubGVuZ3RoKTtcbiAgICAgIGJveExpbmVzLnB1c2goXG4gICAgICAgIGAke2xlZnRTcGFjZX0ke2JvcmRlclN0eWxlLnZ9JHtsZWZ0fSR7bGluZX0ke3JpZ2h0fSR7Ym9yZGVyU3R5bGUudn1gXG4gICAgICApO1xuICAgIH1cbiAgfVxuICBib3hMaW5lcy5wdXNoKFxuICAgIGAke2xlZnRTcGFjZX0ke2JvcmRlclN0eWxlLmJsfSR7Ym9yZGVyU3R5bGUuaC5yZXBlYXQod2lkdGhPZmZzZXQpfSR7Ym9yZGVyU3R5bGUuYnJ9YFxuICApO1xuICBpZiAob3B0cy5zdHlsZS5tYXJnaW5Cb3R0b20gPiAwKSB7XG4gICAgYm94TGluZXMucHVzaChcIlwiLnJlcGVhdChvcHRzLnN0eWxlLm1hcmdpbkJvdHRvbSkpO1xuICB9XG4gIHJldHVybiBib3hMaW5lcy5qb2luKFwiXFxuXCIpO1xufVxuXG5leHBvcnQgeyBhbGlnbiwgYm94LCBjZW50ZXJBbGlnbiwgY29sb3JpemUsIGNvbG9ycywgZ2V0Q29sb3IsIGxlZnRBbGlnbiwgcmlnaHRBbGlnbiwgc3RyaXBBbnNpIH07XG4iLCAiaW1wb3J0IHsgc3RkaW4sIHN0ZG91dCB9IGZyb20gJ25vZGU6cHJvY2Vzcyc7XG5pbXBvcnQgZiBmcm9tICdub2RlOnJlYWRsaW5lJztcbmltcG9ydCB7IFdyaXRlU3RyZWFtIH0gZnJvbSAnbm9kZTp0dHknO1xuaW1wb3J0IHsgZyBhcyBnZXREZWZhdWx0RXhwb3J0RnJvbUNqcywgaSBhcyBpc1VuaWNvZGVTdXBwb3J0ZWQgfSBmcm9tICcuLi9zaGFyZWQvY29uc29sYS4zNmMwMDM0Zi5tanMnO1xuaW1wb3J0IHJlcXVpcmUkJDAgZnJvbSAndHR5JztcbmltcG9ydCB7IGNvbG9ycyB9IGZyb20gJy4uL3V0aWxzLm1qcyc7XG5pbXBvcnQgJy4uL2NvcmUubWpzJztcbmltcG9ydCAnLi4vc2hhcmVkL2NvbnNvbGEuMDZhZDhhNjQubWpzJztcbmltcG9ydCAnbm9kZTp1dGlsJztcbmltcG9ydCAnbm9kZTpwYXRoJztcblxuY29uc3QgRVNDID0gJ1xceDFCJztcbmNvbnN0IENTSSA9IGAke0VTQ31bYDtcbmNvbnN0IGJlZXAgPSAnXFx1MDAwNyc7XG5cbmNvbnN0IGN1cnNvciA9IHtcbiAgdG8oeCwgeSkge1xuICAgIGlmICgheSkgcmV0dXJuIGAke0NTSX0ke3ggKyAxfUdgO1xuICAgIHJldHVybiBgJHtDU0l9JHt5ICsgMX07JHt4ICsgMX1IYDtcbiAgfSxcbiAgbW92ZSh4LCB5KSB7XG4gICAgbGV0IHJldCA9ICcnO1xuXG4gICAgaWYgKHggPCAwKSByZXQgKz0gYCR7Q1NJfSR7LXh9RGA7XG4gICAgZWxzZSBpZiAoeCA+IDApIHJldCArPSBgJHtDU0l9JHt4fUNgO1xuXG4gICAgaWYgKHkgPCAwKSByZXQgKz0gYCR7Q1NJfSR7LXl9QWA7XG4gICAgZWxzZSBpZiAoeSA+IDApIHJldCArPSBgJHtDU0l9JHt5fUJgO1xuXG4gICAgcmV0dXJuIHJldDtcbiAgfSxcbiAgdXA6IChjb3VudCA9IDEpID0+IGAke0NTSX0ke2NvdW50fUFgLFxuICBkb3duOiAoY291bnQgPSAxKSA9PiBgJHtDU0l9JHtjb3VudH1CYCxcbiAgZm9yd2FyZDogKGNvdW50ID0gMSkgPT4gYCR7Q1NJfSR7Y291bnR9Q2AsXG4gIGJhY2t3YXJkOiAoY291bnQgPSAxKSA9PiBgJHtDU0l9JHtjb3VudH1EYCxcbiAgbmV4dExpbmU6IChjb3VudCA9IDEpID0+IGAke0NTSX1FYC5yZXBlYXQoY291bnQpLFxuICBwcmV2TGluZTogKGNvdW50ID0gMSkgPT4gYCR7Q1NJfUZgLnJlcGVhdChjb3VudCksXG4gIGxlZnQ6IGAke0NTSX1HYCxcbiAgaGlkZTogYCR7Q1NJfT8yNWxgLFxuICBzaG93OiBgJHtDU0l9PzI1aGAsXG4gIHNhdmU6IGAke0VTQ303YCxcbiAgcmVzdG9yZTogYCR7RVNDfThgXG59O1xuXG5jb25zdCBzY3JvbGwgPSB7XG4gIHVwOiAoY291bnQgPSAxKSA9PiBgJHtDU0l9U2AucmVwZWF0KGNvdW50KSxcbiAgZG93bjogKGNvdW50ID0gMSkgPT4gYCR7Q1NJfVRgLnJlcGVhdChjb3VudClcbn07XG5cbmNvbnN0IGVyYXNlID0ge1xuICBzY3JlZW46IGAke0NTSX0ySmAsXG4gIHVwOiAoY291bnQgPSAxKSA9PiBgJHtDU0l9MUpgLnJlcGVhdChjb3VudCksXG4gIGRvd246IChjb3VudCA9IDEpID0+IGAke0NTSX1KYC5yZXBlYXQoY291bnQpLFxuICBsaW5lOiBgJHtDU0l9MktgLFxuICBsaW5lRW5kOiBgJHtDU0l9S2AsXG4gIGxpbmVTdGFydDogYCR7Q1NJfTFLYCxcbiAgbGluZXMoY291bnQpIHtcbiAgICBsZXQgY2xlYXIgPSAnJztcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvdW50OyBpKyspXG4gICAgICBjbGVhciArPSB0aGlzLmxpbmUgKyAoaSA8IGNvdW50IC0gMSA/IGN1cnNvci51cCgpIDogJycpO1xuICAgIGlmIChjb3VudClcbiAgICAgIGNsZWFyICs9IGN1cnNvci5sZWZ0O1xuICAgIHJldHVybiBjbGVhcjtcbiAgfVxufTtcblxudmFyIHNyYyA9IHsgY3Vyc29yLCBzY3JvbGwsIGVyYXNlLCBiZWVwIH07XG5cbnZhciBwaWNvY29sb3JzID0ge2V4cG9ydHM6IHt9fTtcblxubGV0IHR0eSA9IHJlcXVpcmUkJDA7XG5cbmxldCBpc0NvbG9yU3VwcG9ydGVkID1cblx0IShcIk5PX0NPTE9SXCIgaW4gcHJvY2Vzcy5lbnYgfHwgcHJvY2Vzcy5hcmd2LmluY2x1ZGVzKFwiLS1uby1jb2xvclwiKSkgJiZcblx0KFwiRk9SQ0VfQ09MT1JcIiBpbiBwcm9jZXNzLmVudiB8fFxuXHRcdHByb2Nlc3MuYXJndi5pbmNsdWRlcyhcIi0tY29sb3JcIikgfHxcblx0XHRwcm9jZXNzLnBsYXRmb3JtID09PSBcIndpbjMyXCIgfHxcblx0XHQodHR5LmlzYXR0eSgxKSAmJiBwcm9jZXNzLmVudi5URVJNICE9PSBcImR1bWJcIikgfHxcblx0XHRcIkNJXCIgaW4gcHJvY2Vzcy5lbnYpO1xuXG5sZXQgZm9ybWF0dGVyID1cblx0KG9wZW4sIGNsb3NlLCByZXBsYWNlID0gb3BlbikgPT5cblx0aW5wdXQgPT4ge1xuXHRcdGxldCBzdHJpbmcgPSBcIlwiICsgaW5wdXQ7XG5cdFx0bGV0IGluZGV4ID0gc3RyaW5nLmluZGV4T2YoY2xvc2UsIG9wZW4ubGVuZ3RoKTtcblx0XHRyZXR1cm4gfmluZGV4XG5cdFx0XHQ/IG9wZW4gKyByZXBsYWNlQ2xvc2Uoc3RyaW5nLCBjbG9zZSwgcmVwbGFjZSwgaW5kZXgpICsgY2xvc2Vcblx0XHRcdDogb3BlbiArIHN0cmluZyArIGNsb3NlXG5cdH07XG5cbmxldCByZXBsYWNlQ2xvc2UgPSAoc3RyaW5nLCBjbG9zZSwgcmVwbGFjZSwgaW5kZXgpID0+IHtcblx0bGV0IHN0YXJ0ID0gc3RyaW5nLnN1YnN0cmluZygwLCBpbmRleCkgKyByZXBsYWNlO1xuXHRsZXQgZW5kID0gc3RyaW5nLnN1YnN0cmluZyhpbmRleCArIGNsb3NlLmxlbmd0aCk7XG5cdGxldCBuZXh0SW5kZXggPSBlbmQuaW5kZXhPZihjbG9zZSk7XG5cdHJldHVybiB+bmV4dEluZGV4ID8gc3RhcnQgKyByZXBsYWNlQ2xvc2UoZW5kLCBjbG9zZSwgcmVwbGFjZSwgbmV4dEluZGV4KSA6IHN0YXJ0ICsgZW5kXG59O1xuXG5sZXQgY3JlYXRlQ29sb3JzID0gKGVuYWJsZWQgPSBpc0NvbG9yU3VwcG9ydGVkKSA9PiAoe1xuXHRpc0NvbG9yU3VwcG9ydGVkOiBlbmFibGVkLFxuXHRyZXNldDogZW5hYmxlZCA/IHMgPT4gYFxceDFiWzBtJHtzfVxceDFiWzBtYCA6IFN0cmluZyxcblx0Ym9sZDogZW5hYmxlZCA/IGZvcm1hdHRlcihcIlxceDFiWzFtXCIsIFwiXFx4MWJbMjJtXCIsIFwiXFx4MWJbMjJtXFx4MWJbMW1cIikgOiBTdHJpbmcsXG5cdGRpbTogZW5hYmxlZCA/IGZvcm1hdHRlcihcIlxceDFiWzJtXCIsIFwiXFx4MWJbMjJtXCIsIFwiXFx4MWJbMjJtXFx4MWJbMm1cIikgOiBTdHJpbmcsXG5cdGl0YWxpYzogZW5hYmxlZCA/IGZvcm1hdHRlcihcIlxceDFiWzNtXCIsIFwiXFx4MWJbMjNtXCIpIDogU3RyaW5nLFxuXHR1bmRlcmxpbmU6IGVuYWJsZWQgPyBmb3JtYXR0ZXIoXCJcXHgxYls0bVwiLCBcIlxceDFiWzI0bVwiKSA6IFN0cmluZyxcblx0aW52ZXJzZTogZW5hYmxlZCA/IGZvcm1hdHRlcihcIlxceDFiWzdtXCIsIFwiXFx4MWJbMjdtXCIpIDogU3RyaW5nLFxuXHRoaWRkZW46IGVuYWJsZWQgPyBmb3JtYXR0ZXIoXCJcXHgxYls4bVwiLCBcIlxceDFiWzI4bVwiKSA6IFN0cmluZyxcblx0c3RyaWtldGhyb3VnaDogZW5hYmxlZCA/IGZvcm1hdHRlcihcIlxceDFiWzltXCIsIFwiXFx4MWJbMjltXCIpIDogU3RyaW5nLFxuXHRibGFjazogZW5hYmxlZCA/IGZvcm1hdHRlcihcIlxceDFiWzMwbVwiLCBcIlxceDFiWzM5bVwiKSA6IFN0cmluZyxcblx0cmVkOiBlbmFibGVkID8gZm9ybWF0dGVyKFwiXFx4MWJbMzFtXCIsIFwiXFx4MWJbMzltXCIpIDogU3RyaW5nLFxuXHRncmVlbjogZW5hYmxlZCA/IGZvcm1hdHRlcihcIlxceDFiWzMybVwiLCBcIlxceDFiWzM5bVwiKSA6IFN0cmluZyxcblx0eWVsbG93OiBlbmFibGVkID8gZm9ybWF0dGVyKFwiXFx4MWJbMzNtXCIsIFwiXFx4MWJbMzltXCIpIDogU3RyaW5nLFxuXHRibHVlOiBlbmFibGVkID8gZm9ybWF0dGVyKFwiXFx4MWJbMzRtXCIsIFwiXFx4MWJbMzltXCIpIDogU3RyaW5nLFxuXHRtYWdlbnRhOiBlbmFibGVkID8gZm9ybWF0dGVyKFwiXFx4MWJbMzVtXCIsIFwiXFx4MWJbMzltXCIpIDogU3RyaW5nLFxuXHRjeWFuOiBlbmFibGVkID8gZm9ybWF0dGVyKFwiXFx4MWJbMzZtXCIsIFwiXFx4MWJbMzltXCIpIDogU3RyaW5nLFxuXHR3aGl0ZTogZW5hYmxlZCA/IGZvcm1hdHRlcihcIlxceDFiWzM3bVwiLCBcIlxceDFiWzM5bVwiKSA6IFN0cmluZyxcblx0Z3JheTogZW5hYmxlZCA/IGZvcm1hdHRlcihcIlxceDFiWzkwbVwiLCBcIlxceDFiWzM5bVwiKSA6IFN0cmluZyxcblx0YmdCbGFjazogZW5hYmxlZCA/IGZvcm1hdHRlcihcIlxceDFiWzQwbVwiLCBcIlxceDFiWzQ5bVwiKSA6IFN0cmluZyxcblx0YmdSZWQ6IGVuYWJsZWQgPyBmb3JtYXR0ZXIoXCJcXHgxYls0MW1cIiwgXCJcXHgxYls0OW1cIikgOiBTdHJpbmcsXG5cdGJnR3JlZW46IGVuYWJsZWQgPyBmb3JtYXR0ZXIoXCJcXHgxYls0Mm1cIiwgXCJcXHgxYls0OW1cIikgOiBTdHJpbmcsXG5cdGJnWWVsbG93OiBlbmFibGVkID8gZm9ybWF0dGVyKFwiXFx4MWJbNDNtXCIsIFwiXFx4MWJbNDltXCIpIDogU3RyaW5nLFxuXHRiZ0JsdWU6IGVuYWJsZWQgPyBmb3JtYXR0ZXIoXCJcXHgxYls0NG1cIiwgXCJcXHgxYls0OW1cIikgOiBTdHJpbmcsXG5cdGJnTWFnZW50YTogZW5hYmxlZCA/IGZvcm1hdHRlcihcIlxceDFiWzQ1bVwiLCBcIlxceDFiWzQ5bVwiKSA6IFN0cmluZyxcblx0YmdDeWFuOiBlbmFibGVkID8gZm9ybWF0dGVyKFwiXFx4MWJbNDZtXCIsIFwiXFx4MWJbNDltXCIpIDogU3RyaW5nLFxuXHRiZ1doaXRlOiBlbmFibGVkID8gZm9ybWF0dGVyKFwiXFx4MWJbNDdtXCIsIFwiXFx4MWJbNDltXCIpIDogU3RyaW5nLFxufSk7XG5cbnBpY29jb2xvcnMuZXhwb3J0cyA9IGNyZWF0ZUNvbG9ycygpO1xucGljb2NvbG9ycy5leHBvcnRzLmNyZWF0ZUNvbG9ycyA9IGNyZWF0ZUNvbG9ycztcblxudmFyIHBpY29jb2xvcnNFeHBvcnRzID0gcGljb2NvbG9ycy5leHBvcnRzO1xuY29uc3QgbCA9IC8qQF9fUFVSRV9fKi9nZXREZWZhdWx0RXhwb3J0RnJvbUNqcyhwaWNvY29sb3JzRXhwb3J0cyk7XG5cbmZ1bmN0aW9uIHooe29ubHlGaXJzdDp0PSExfT17fSl7Y29uc3QgdT1bXCJbXFxcXHUwMDFCXFxcXHUwMDlCXVtbXFxcXF0oKSM7P10qKD86KD86KD86KD86O1stYS16QS1aXFxcXGRcXFxcLyMmLjo9PyVAfl9dKykqfFthLXpBLVpcXFxcZF0rKD86O1stYS16QS1aXFxcXGRcXFxcLyMmLjo9PyVAfl9dKikqKT9cXFxcdTAwMDcpXCIsXCIoPzooPzpcXFxcZHsxLDR9KD86O1xcXFxkezAsNH0pKik/W1xcXFxkQS1QUi1UWmNmLW50cXJ5PT48fl0pKVwiXS5qb2luKFwifFwiKTtyZXR1cm4gbmV3IFJlZ0V4cCh1LHQ/dm9pZCAwOlwiZ1wiKX1mdW5jdGlvbiAkKHQpe2lmKHR5cGVvZiB0IT1cInN0cmluZ1wiKXRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkIGEgXFxgc3RyaW5nXFxgLCBnb3QgXFxgJHt0eXBlb2YgdH1cXGBgKTtyZXR1cm4gdC5yZXBsYWNlKHooKSxcIlwiKX12YXIgbT17fSxHPXtnZXQgZXhwb3J0cygpe3JldHVybiBtfSxzZXQgZXhwb3J0cyh0KXttPXQ7fX07KGZ1bmN0aW9uKHQpe3ZhciB1PXt9O3QuZXhwb3J0cz11LHUuZWFzdEFzaWFuV2lkdGg9ZnVuY3Rpb24oZSl7dmFyIHM9ZS5jaGFyQ29kZUF0KDApLEM9ZS5sZW5ndGg9PTI/ZS5jaGFyQ29kZUF0KDEpOjAsRD1zO3JldHVybiA1NTI5Njw9cyYmczw9NTYzMTkmJjU2MzIwPD1DJiZDPD01NzM0MyYmKHMmPTEwMjMsQyY9MTAyMyxEPXM8PDEwfEMsRCs9NjU1MzYpLEQ9PTEyMjg4fHw2NTI4MTw9RCYmRDw9NjUzNzZ8fDY1NTA0PD1EJiZEPD02NTUxMD9cIkZcIjpEPT04MzYxfHw2NTM3Nzw9RCYmRDw9NjU0NzB8fDY1NDc0PD1EJiZEPD02NTQ3OXx8NjU0ODI8PUQmJkQ8PTY1NDg3fHw2NTQ5MDw9RCYmRDw9NjU0OTV8fDY1NDk4PD1EJiZEPD02NTUwMHx8NjU1MTI8PUQmJkQ8PTY1NTE4P1wiSFwiOjQzNTI8PUQmJkQ8PTQ0NDd8fDQ1MTU8PUQmJkQ8PTQ1MTl8fDQ2MDI8PUQmJkQ8PTQ2MDd8fDkwMDE8PUQmJkQ8PTkwMDJ8fDExOTA0PD1EJiZEPD0xMTkyOXx8MTE5MzE8PUQmJkQ8PTEyMDE5fHwxMjAzMjw9RCYmRDw9MTIyNDV8fDEyMjcyPD1EJiZEPD0xMjI4M3x8MTIyODk8PUQmJkQ8PTEyMzUwfHwxMjM1Mzw9RCYmRDw9MTI0Mzh8fDEyNDQxPD1EJiZEPD0xMjU0M3x8MTI1NDk8PUQmJkQ8PTEyNTg5fHwxMjU5Mzw9RCYmRDw9MTI2ODZ8fDEyNjg4PD1EJiZEPD0xMjczMHx8MTI3MzY8PUQmJkQ8PTEyNzcxfHwxMjc4NDw9RCYmRDw9MTI4MzB8fDEyODMyPD1EJiZEPD0xMjg3MXx8MTI4ODA8PUQmJkQ8PTEzMDU0fHwxMzA1Njw9RCYmRDw9MTk5MDN8fDE5OTY4PD1EJiZEPD00MjEyNHx8NDIxMjg8PUQmJkQ8PTQyMTgyfHw0MzM2MDw9RCYmRDw9NDMzODh8fDQ0MDMyPD1EJiZEPD01NTIwM3x8NTUyMTY8PUQmJkQ8PTU1MjM4fHw1NTI0Mzw9RCYmRDw9NTUyOTF8fDYzNzQ0PD1EJiZEPD02NDI1NXx8NjUwNDA8PUQmJkQ8PTY1MDQ5fHw2NTA3Mjw9RCYmRDw9NjUxMDZ8fDY1MTA4PD1EJiZEPD02NTEyNnx8NjUxMjg8PUQmJkQ8PTY1MTMxfHwxMTA1OTI8PUQmJkQ8PTExMDU5M3x8MTI3NDg4PD1EJiZEPD0xMjc0OTB8fDEyNzUwNDw9RCYmRDw9MTI3NTQ2fHwxMjc1NTI8PUQmJkQ8PTEyNzU2MHx8MTI3NTY4PD1EJiZEPD0xMjc1Njl8fDEzMTA3Mjw9RCYmRDw9MTk0MzY3fHwxNzc5ODQ8PUQmJkQ8PTE5NjYwNXx8MTk2NjA4PD1EJiZEPD0yNjIxNDE/XCJXXCI6MzI8PUQmJkQ8PTEyNnx8MTYyPD1EJiZEPD0xNjN8fDE2NTw9RCYmRDw9MTY2fHxEPT0xNzJ8fEQ9PTE3NXx8MTAyMTQ8PUQmJkQ8PTEwMjIxfHwxMDYyOTw9RCYmRDw9MTA2MzA/XCJOYVwiOkQ9PTE2MXx8RD09MTY0fHwxNjc8PUQmJkQ8PTE2OHx8RD09MTcwfHwxNzM8PUQmJkQ8PTE3NHx8MTc2PD1EJiZEPD0xODB8fDE4Mjw9RCYmRDw9MTg2fHwxODg8PUQmJkQ8PTE5MXx8RD09MTk4fHxEPT0yMDh8fDIxNTw9RCYmRDw9MjE2fHwyMjI8PUQmJkQ8PTIyNXx8RD09MjMwfHwyMzI8PUQmJkQ8PTIzNHx8MjM2PD1EJiZEPD0yMzd8fEQ9PTI0MHx8MjQyPD1EJiZEPD0yNDN8fDI0Nzw9RCYmRDw9MjUwfHxEPT0yNTJ8fEQ9PTI1NHx8RD09MjU3fHxEPT0yNzN8fEQ9PTI3NXx8RD09MjgzfHwyOTQ8PUQmJkQ8PTI5NXx8RD09Mjk5fHwzMDU8PUQmJkQ8PTMwN3x8RD09MzEyfHwzMTk8PUQmJkQ8PTMyMnx8RD09MzI0fHwzMjg8PUQmJkQ8PTMzMXx8RD09MzMzfHwzMzg8PUQmJkQ8PTMzOXx8MzU4PD1EJiZEPD0zNTl8fEQ9PTM2M3x8RD09NDYyfHxEPT00NjR8fEQ9PTQ2Nnx8RD09NDY4fHxEPT00NzB8fEQ9PTQ3Mnx8RD09NDc0fHxEPT00NzZ8fEQ9PTU5M3x8RD09NjA5fHxEPT03MDh8fEQ9PTcxMXx8NzEzPD1EJiZEPD03MTV8fEQ9PTcxN3x8RD09NzIwfHw3Mjg8PUQmJkQ8PTczMXx8RD09NzMzfHxEPT03MzV8fDc2ODw9RCYmRDw9ODc5fHw5MTM8PUQmJkQ8PTkyOXx8OTMxPD1EJiZEPD05Mzd8fDk0NTw9RCYmRDw9OTYxfHw5NjM8PUQmJkQ8PTk2OXx8RD09MTAyNXx8MTA0MDw9RCYmRDw9MTEwM3x8RD09MTEwNXx8RD09ODIwOHx8ODIxMTw9RCYmRDw9ODIxNHx8ODIxNjw9RCYmRDw9ODIxN3x8ODIyMDw9RCYmRDw9ODIyMXx8ODIyNDw9RCYmRDw9ODIyNnx8ODIyODw9RCYmRDw9ODIzMXx8RD09ODI0MHx8ODI0Mjw9RCYmRDw9ODI0M3x8RD09ODI0NXx8RD09ODI1MXx8RD09ODI1NHx8RD09ODMwOHx8RD09ODMxOXx8ODMyMTw9RCYmRDw9ODMyNHx8RD09ODM2NHx8RD09ODQ1MXx8RD09ODQ1M3x8RD09ODQ1N3x8RD09ODQ2N3x8RD09ODQ3MHx8ODQ4MTw9RCYmRDw9ODQ4Mnx8RD09ODQ4Nnx8RD09ODQ5MXx8ODUzMTw9RCYmRDw9ODUzMnx8ODUzOTw9RCYmRDw9ODU0Mnx8ODU0NDw9RCYmRDw9ODU1NXx8ODU2MDw9RCYmRDw9ODU2OXx8RD09ODU4NXx8ODU5Mjw9RCYmRDw9ODYwMXx8ODYzMjw9RCYmRDw9ODYzM3x8RD09ODY1OHx8RD09ODY2MHx8RD09ODY3OXx8RD09ODcwNHx8ODcwNjw9RCYmRDw9ODcwN3x8ODcxMTw9RCYmRDw9ODcxMnx8RD09ODcxNXx8RD09ODcxOXx8RD09ODcyMXx8RD09ODcyNXx8RD09ODczMHx8ODczMzw9RCYmRDw9ODczNnx8RD09ODczOXx8RD09ODc0MXx8ODc0Mzw9RCYmRDw9ODc0OHx8RD09ODc1MHx8ODc1Njw9RCYmRDw9ODc1OXx8ODc2NDw9RCYmRDw9ODc2NXx8RD09ODc3Nnx8RD09ODc4MHx8RD09ODc4Nnx8ODgwMDw9RCYmRDw9ODgwMXx8ODgwNDw9RCYmRDw9ODgwN3x8ODgxMDw9RCYmRDw9ODgxMXx8ODgxNDw9RCYmRDw9ODgxNXx8ODgzNDw9RCYmRDw9ODgzNXx8ODgzODw9RCYmRDw9ODgzOXx8RD09ODg1M3x8RD09ODg1N3x8RD09ODg2OXx8RD09ODg5NXx8RD09ODk3OHx8OTMxMjw9RCYmRDw9OTQ0OXx8OTQ1MTw9RCYmRDw9OTU0N3x8OTU1Mjw9RCYmRDw9OTU4N3x8OTYwMDw9RCYmRDw9OTYxNXx8OTYxODw9RCYmRDw9OTYyMXx8OTYzMjw9RCYmRDw9OTYzM3x8OTYzNTw9RCYmRDw9OTY0MXx8OTY1MDw9RCYmRDw9OTY1MXx8OTY1NDw9RCYmRDw9OTY1NXx8OTY2MDw9RCYmRDw9OTY2MXx8OTY2NDw9RCYmRDw9OTY2NXx8OTY3MDw9RCYmRDw9OTY3Mnx8RD09OTY3NXx8OTY3ODw9RCYmRDw9OTY4MXx8OTY5ODw9RCYmRDw9OTcwMXx8RD09OTcxMXx8OTczMzw9RCYmRDw9OTczNHx8RD09OTczN3x8OTc0Mjw9RCYmRDw9OTc0M3x8OTc0ODw9RCYmRDw9OTc0OXx8RD09OTc1Nnx8RD09OTc1OHx8RD09OTc5Mnx8RD09OTc5NHx8OTgyNDw9RCYmRDw9OTgyNXx8OTgyNzw9RCYmRDw9OTgyOXx8OTgzMTw9RCYmRDw9OTgzNHx8OTgzNjw9RCYmRDw9OTgzN3x8RD09OTgzOXx8OTg4Njw9RCYmRDw9OTg4N3x8OTkxODw9RCYmRDw9OTkxOXx8OTkyNDw9RCYmRDw9OTkzM3x8OTkzNTw9RCYmRDw9OTk1M3x8RD09OTk1NXx8OTk2MDw9RCYmRDw9OTk4M3x8RD09MTAwNDV8fEQ9PTEwMDcxfHwxMDEwMjw9RCYmRDw9MTAxMTF8fDExMDkzPD1EJiZEPD0xMTA5N3x8MTI4NzI8PUQmJkQ8PTEyODc5fHw1NzM0NDw9RCYmRDw9NjM3NDN8fDY1MDI0PD1EJiZEPD02NTAzOXx8RD09NjU1MzN8fDEyNzIzMjw9RCYmRDw9MTI3MjQyfHwxMjcyNDg8PUQmJkQ8PTEyNzI3N3x8MTI3MjgwPD1EJiZEPD0xMjczMzd8fDEyNzM0NDw9RCYmRDw9MTI3Mzg2fHw5MTc3NjA8PUQmJkQ8PTkxNzk5OXx8OTgzMDQwPD1EJiZEPD0xMDQ4NTczfHwxMDQ4NTc2PD1EJiZEPD0xMTE0MTA5P1wiQVwiOlwiTlwifSx1LmNoYXJhY3Rlckxlbmd0aD1mdW5jdGlvbihlKXt2YXIgcz10aGlzLmVhc3RBc2lhbldpZHRoKGUpO3JldHVybiBzPT1cIkZcInx8cz09XCJXXCJ8fHM9PVwiQVwiPzI6MX07ZnVuY3Rpb24gRihlKXtyZXR1cm4gZS5tYXRjaCgvW1xcdUQ4MDAtXFx1REJGRl1bXFx1REMwMC1cXHVERkZGXXxbXlxcdUQ4MDAtXFx1REZGRl0vZyl8fFtdfXUubGVuZ3RoPWZ1bmN0aW9uKGUpe2Zvcih2YXIgcz1GKGUpLEM9MCxEPTA7RDxzLmxlbmd0aDtEKyspQz1DK3RoaXMuY2hhcmFjdGVyTGVuZ3RoKHNbRF0pO3JldHVybiBDfSx1LnNsaWNlPWZ1bmN0aW9uKGUscyxDKXt0ZXh0TGVuPXUubGVuZ3RoKGUpLHM9c3x8MCxDPUN8fDEsczwwJiYocz10ZXh0TGVuK3MpLEM8MCYmKEM9dGV4dExlbitDKTtmb3IodmFyIEQ9XCJcIixpPTAsbz1GKGUpLEU9MDtFPG8ubGVuZ3RoO0UrKyl7dmFyIGE9b1tFXSxuPXUubGVuZ3RoKGEpO2lmKGk+PXMtKG49PTI/MTowKSlpZihpK248PUMpRCs9YTtlbHNlIGJyZWFrO2krPW47fXJldHVybiBEfTt9KShHKTtjb25zdCBLPW07dmFyIFk9ZnVuY3Rpb24oKXtyZXR1cm4gL1xcdUQ4M0NcXHVERkY0XFx1REI0MFxcdURDNjdcXHVEQjQwXFx1REM2Mig/OlxcdURCNDBcXHVEQzc3XFx1REI0MFxcdURDNkNcXHVEQjQwXFx1REM3M3xcXHVEQjQwXFx1REM3M1xcdURCNDBcXHVEQzYzXFx1REI0MFxcdURDNzR8XFx1REI0MFxcdURDNjVcXHVEQjQwXFx1REM2RVxcdURCNDBcXHVEQzY3KVxcdURCNDBcXHVEQzdGfCg/OlxcdUQ4M0VcXHVEREQxXFx1RDgzQ1xcdURGRkZcXHUyMDBEXFx1Mjc2NFxcdUZFMEZcXHUyMDBEKD86XFx1RDgzRFxcdURDOEJcXHUyMDBEKT9cXHVEODNFXFx1REREMXxcXHVEODNEXFx1REM2OVxcdUQ4M0NcXHVERkZGXFx1MjAwRFxcdUQ4M0VcXHVERDFEXFx1MjAwRCg/OlxcdUQ4M0RbXFx1REM2OFxcdURDNjldKSkoPzpcXHVEODNDW1xcdURGRkItXFx1REZGRV0pfCg/OlxcdUQ4M0VcXHVEREQxXFx1RDgzQ1xcdURGRkVcXHUyMDBEXFx1Mjc2NFxcdUZFMEZcXHUyMDBEKD86XFx1RDgzRFxcdURDOEJcXHUyMDBEKT9cXHVEODNFXFx1REREMXxcXHVEODNEXFx1REM2OVxcdUQ4M0NcXHVERkZFXFx1MjAwRFxcdUQ4M0VcXHVERDFEXFx1MjAwRCg/OlxcdUQ4M0RbXFx1REM2OFxcdURDNjldKSkoPzpcXHVEODNDW1xcdURGRkItXFx1REZGRFxcdURGRkZdKXwoPzpcXHVEODNFXFx1REREMVxcdUQ4M0NcXHVERkZEXFx1MjAwRFxcdTI3NjRcXHVGRTBGXFx1MjAwRCg/OlxcdUQ4M0RcXHVEQzhCXFx1MjAwRCk/XFx1RDgzRVxcdURERDF8XFx1RDgzRFxcdURDNjlcXHVEODNDXFx1REZGRFxcdTIwMERcXHVEODNFXFx1REQxRFxcdTIwMEQoPzpcXHVEODNEW1xcdURDNjhcXHVEQzY5XSkpKD86XFx1RDgzQ1tcXHVERkZCXFx1REZGQ1xcdURGRkVcXHVERkZGXSl8KD86XFx1RDgzRVxcdURERDFcXHVEODNDXFx1REZGQ1xcdTIwMERcXHUyNzY0XFx1RkUwRlxcdTIwMEQoPzpcXHVEODNEXFx1REM4QlxcdTIwMEQpP1xcdUQ4M0VcXHVEREQxfFxcdUQ4M0RcXHVEQzY5XFx1RDgzQ1xcdURGRkNcXHUyMDBEXFx1RDgzRVxcdUREMURcXHUyMDBEKD86XFx1RDgzRFtcXHVEQzY4XFx1REM2OV0pKSg/OlxcdUQ4M0NbXFx1REZGQlxcdURGRkQtXFx1REZGRl0pfCg/OlxcdUQ4M0VcXHVEREQxXFx1RDgzQ1xcdURGRkJcXHUyMDBEXFx1Mjc2NFxcdUZFMEZcXHUyMDBEKD86XFx1RDgzRFxcdURDOEJcXHUyMDBEKT9cXHVEODNFXFx1REREMXxcXHVEODNEXFx1REM2OVxcdUQ4M0NcXHVERkZCXFx1MjAwRFxcdUQ4M0VcXHVERDFEXFx1MjAwRCg/OlxcdUQ4M0RbXFx1REM2OFxcdURDNjldKSkoPzpcXHVEODNDW1xcdURGRkMtXFx1REZGRl0pfFxcdUQ4M0RcXHVEQzY4KD86XFx1RDgzQ1xcdURGRkIoPzpcXHUyMDBEKD86XFx1Mjc2NFxcdUZFMEZcXHUyMDBEKD86XFx1RDgzRFxcdURDOEJcXHUyMDBEXFx1RDgzRFxcdURDNjgoPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pfFxcdUQ4M0RcXHVEQzY4KD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKSl8XFx1RDgzRVxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjgoPzpcXHVEODNDW1xcdURGRkMtXFx1REZGRl0pfFtcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRnxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pKT98KD86XFx1RDgzQ1tcXHVERkZDLVxcdURGRkZdKVxcdTIwMERcXHUyNzY0XFx1RkUwRlxcdTIwMEQoPzpcXHVEODNEXFx1REM4QlxcdTIwMERcXHVEODNEXFx1REM2OCg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSl8XFx1RDgzRFxcdURDNjgoPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pKXxcXHUyMDBEKD86XFx1Mjc2NFxcdUZFMEZcXHUyMDBEKD86XFx1RDgzRFxcdURDOEJcXHUyMDBEKT9cXHVEODNEXFx1REM2OHwoPzpcXHVEODNEW1xcdURDNjhcXHVEQzY5XSlcXHUyMDBEKD86XFx1RDgzRFxcdURDNjZcXHUyMDBEXFx1RDgzRFxcdURDNjZ8XFx1RDgzRFxcdURDNjdcXHUyMDBEKD86XFx1RDgzRFtcXHVEQzY2XFx1REM2N10pKXxcXHVEODNEXFx1REM2NlxcdTIwMERcXHVEODNEXFx1REM2NnxcXHVEODNEXFx1REM2N1xcdTIwMEQoPzpcXHVEODNEW1xcdURDNjZcXHVEQzY3XSl8XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0VbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdKXxcXHVEODNDXFx1REZGRlxcdTIwMEQoPzpcXHVEODNFXFx1REQxRFxcdTIwMERcXHVEODNEXFx1REM2OCg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZFXSl8XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0VbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdKXxcXHVEODNDXFx1REZGRVxcdTIwMEQoPzpcXHVEODNFXFx1REQxRFxcdTIwMERcXHVEODNEXFx1REM2OCg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZEXFx1REZGRl0pfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFW1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXSl8XFx1RDgzQ1xcdURGRkRcXHUyMDBEKD86XFx1RDgzRVxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjgoPzpcXHVEODNDW1xcdURGRkJcXHVERkZDXFx1REZGRVxcdURGRkZdKXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pfFxcdUQ4M0NcXHVERkZDXFx1MjAwRCg/OlxcdUQ4M0VcXHVERDFEXFx1MjAwRFxcdUQ4M0RcXHVEQzY4KD86XFx1RDgzQ1tcXHVERkZCXFx1REZGRC1cXHVERkZGXSl8XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0VbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdKXwoPzpcXHVEODNDXFx1REZGRlxcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XXxcXHVEODNDXFx1REZGRVxcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XXxcXHVEODNDXFx1REZGRFxcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XXxcXHVEODNDXFx1REZGQ1xcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XXxcXHUyMDBEW1xcdTI2OTVcXHUyNjk2XFx1MjcwOF0pXFx1RkUwRnxcXHUyMDBEKD86KD86XFx1RDgzRFtcXHVEQzY4XFx1REM2OV0pXFx1MjAwRCg/OlxcdUQ4M0RbXFx1REM2NlxcdURDNjddKXxcXHVEODNEW1xcdURDNjZcXHVEQzY3XSl8XFx1RDgzQ1xcdURGRkZ8XFx1RDgzQ1xcdURGRkV8XFx1RDgzQ1xcdURGRkR8XFx1RDgzQ1xcdURGRkMpP3woPzpcXHVEODNEXFx1REM2OSg/OlxcdUQ4M0NcXHVERkZCXFx1MjAwRFxcdTI3NjRcXHVGRTBGXFx1MjAwRCg/OlxcdUQ4M0RcXHVEQzhCXFx1MjAwRCg/OlxcdUQ4M0RbXFx1REM2OFxcdURDNjldKXxcXHVEODNEW1xcdURDNjhcXHVEQzY5XSl8KD86XFx1RDgzQ1tcXHVERkZDLVxcdURGRkZdKVxcdTIwMERcXHUyNzY0XFx1RkUwRlxcdTIwMEQoPzpcXHVEODNEXFx1REM4QlxcdTIwMEQoPzpcXHVEODNEW1xcdURDNjhcXHVEQzY5XSl8XFx1RDgzRFtcXHVEQzY4XFx1REM2OV0pKXxcXHVEODNFXFx1REREMSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSlcXHUyMDBEXFx1RDgzRVxcdUREMURcXHUyMDBEXFx1RDgzRVxcdURERDEpKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKXxcXHVEODNEXFx1REM2OVxcdTIwMERcXHVEODNEXFx1REM2OVxcdTIwMEQoPzpcXHVEODNEXFx1REM2NlxcdTIwMERcXHVEODNEXFx1REM2NnxcXHVEODNEXFx1REM2N1xcdTIwMEQoPzpcXHVEODNEW1xcdURDNjZcXHVEQzY3XSkpfFxcdUQ4M0RcXHVEQzY5KD86XFx1MjAwRCg/OlxcdTI3NjRcXHVGRTBGXFx1MjAwRCg/OlxcdUQ4M0RcXHVEQzhCXFx1MjAwRCg/OlxcdUQ4M0RbXFx1REM2OFxcdURDNjldKXxcXHVEODNEW1xcdURDNjhcXHVEQzY5XSl8XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0VbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdKXxcXHVEODNDXFx1REZGRlxcdTIwMEQoPzpcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pfFxcdUQ4M0NcXHVERkZFXFx1MjAwRCg/OlxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFW1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXSl8XFx1RDgzQ1xcdURGRkRcXHUyMDBEKD86XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0VbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdKXxcXHVEODNDXFx1REZGQ1xcdTIwMEQoPzpcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pfFxcdUQ4M0NcXHVERkZCXFx1MjAwRCg/OlxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFW1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXSkpfFxcdUQ4M0VcXHVEREQxKD86XFx1MjAwRCg/OlxcdUQ4M0VcXHVERDFEXFx1MjAwRFxcdUQ4M0VcXHVEREQxfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY4NFxcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pfFxcdUQ4M0NcXHVERkZGXFx1MjAwRCg/OlxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY4NFxcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pfFxcdUQ4M0NcXHVERkZFXFx1MjAwRCg/OlxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY4NFxcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pfFxcdUQ4M0NcXHVERkZEXFx1MjAwRCg/OlxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY4NFxcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pfFxcdUQ4M0NcXHVERkZDXFx1MjAwRCg/OlxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY4NFxcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pfFxcdUQ4M0NcXHVERkZCXFx1MjAwRCg/OlxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY4NFxcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pKXxcXHVEODNEXFx1REM2OVxcdTIwMERcXHVEODNEXFx1REM2NlxcdTIwMERcXHVEODNEXFx1REM2NnxcXHVEODNEXFx1REM2OVxcdTIwMERcXHVEODNEXFx1REM2OVxcdTIwMEQoPzpcXHVEODNEW1xcdURDNjZcXHVEQzY3XSl8XFx1RDgzRFxcdURDNjlcXHUyMDBEXFx1RDgzRFxcdURDNjdcXHUyMDBEKD86XFx1RDgzRFtcXHVEQzY2XFx1REM2N10pfCg/OlxcdUQ4M0RcXHVEQzQxXFx1RkUwRlxcdTIwMERcXHVEODNEXFx1RERFOHxcXHVEODNFXFx1REREMSg/OlxcdUQ4M0NcXHVERkZGXFx1MjAwRFtcXHUyNjk1XFx1MjY5NlxcdTI3MDhdfFxcdUQ4M0NcXHVERkZFXFx1MjAwRFtcXHUyNjk1XFx1MjY5NlxcdTI3MDhdfFxcdUQ4M0NcXHVERkZEXFx1MjAwRFtcXHUyNjk1XFx1MjY5NlxcdTI3MDhdfFxcdUQ4M0NcXHVERkZDXFx1MjAwRFtcXHUyNjk1XFx1MjY5NlxcdTI3MDhdfFxcdUQ4M0NcXHVERkZCXFx1MjAwRFtcXHUyNjk1XFx1MjY5NlxcdTI3MDhdfFxcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XSl8XFx1RDgzRFxcdURDNjkoPzpcXHVEODNDXFx1REZGRlxcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XXxcXHVEODNDXFx1REZGRVxcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XXxcXHVEODNDXFx1REZGRFxcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XXxcXHVEODNDXFx1REZGQ1xcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XXxcXHVEODNDXFx1REZGQlxcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XXxcXHUyMDBEW1xcdTI2OTVcXHUyNjk2XFx1MjcwOF0pfFxcdUQ4M0RcXHVERTM2XFx1MjAwRFxcdUQ4M0NcXHVERjJCfFxcdUQ4M0NcXHVERkYzXFx1RkUwRlxcdTIwMERcXHUyNkE3fFxcdUQ4M0RcXHVEQzNCXFx1MjAwRFxcdTI3NDR8KD86KD86XFx1RDgzQ1tcXHVERkMzXFx1REZDNFxcdURGQ0FdfFxcdUQ4M0RbXFx1REM2RVxcdURDNzBcXHVEQzcxXFx1REM3M1xcdURDNzdcXHVEQzgxXFx1REM4MlxcdURDODZcXHVEQzg3XFx1REU0NS1cXHVERTQ3XFx1REU0QlxcdURFNERcXHVERTRFXFx1REVBM1xcdURFQjQtXFx1REVCNl18XFx1RDgzRVtcXHVERDI2XFx1REQzNVxcdUREMzctXFx1REQzOVxcdUREM0RcXHVERDNFXFx1RERCOFxcdUREQjlcXHVERENELVxcdUREQ0ZcXHVEREQ0XFx1RERENi1cXHVEREREXSkoPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pfFxcdUQ4M0RcXHVEQzZGfFxcdUQ4M0VbXFx1REQzQ1xcdUREREVcXHVERERGXSlcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXXwoPzpcXHUyNkY5fFxcdUQ4M0NbXFx1REZDQlxcdURGQ0NdfFxcdUQ4M0RcXHVERDc1KSg/OlxcdUZFMEZ8XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKVxcdTIwMERbXFx1MjY0MFxcdTI2NDJdfFxcdUQ4M0NcXHVERkY0XFx1MjAwRFxcdTI2MjB8KD86XFx1RDgzQ1tcXHVERkMzXFx1REZDNFxcdURGQ0FdfFxcdUQ4M0RbXFx1REM2RVxcdURDNzBcXHVEQzcxXFx1REM3M1xcdURDNzdcXHVEQzgxXFx1REM4MlxcdURDODZcXHVEQzg3XFx1REU0NS1cXHVERTQ3XFx1REU0QlxcdURFNERcXHVERTRFXFx1REVBM1xcdURFQjQtXFx1REVCNl18XFx1RDgzRVtcXHVERDI2XFx1REQzNVxcdUREMzctXFx1REQzOVxcdUREM0RcXHVERDNFXFx1RERCOFxcdUREQjlcXHVERENELVxcdUREQ0ZcXHVEREQ0XFx1RERENi1cXHVEREREXSlcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXXxbXFx4QTlcXHhBRVxcdTIwM0NcXHUyMDQ5XFx1MjEyMlxcdTIxMzlcXHUyMTk0LVxcdTIxOTlcXHUyMUE5XFx1MjFBQVxcdTIzMjhcXHUyM0NGXFx1MjNFRC1cXHUyM0VGXFx1MjNGMVxcdTIzRjJcXHUyM0Y4LVxcdTIzRkFcXHUyNEMyXFx1MjVBQVxcdTI1QUJcXHUyNUI2XFx1MjVDMFxcdTI1RkJcXHUyNUZDXFx1MjYwMC1cXHUyNjA0XFx1MjYwRVxcdTI2MTFcXHUyNjE4XFx1MjYyMFxcdTI2MjJcXHUyNjIzXFx1MjYyNlxcdTI2MkFcXHUyNjJFXFx1MjYyRlxcdTI2MzgtXFx1MjYzQVxcdTI2NDBcXHUyNjQyXFx1MjY1RlxcdTI2NjBcXHUyNjYzXFx1MjY2NVxcdTI2NjZcXHUyNjY4XFx1MjY3QlxcdTI2N0VcXHUyNjkyXFx1MjY5NC1cXHUyNjk3XFx1MjY5OVxcdTI2OUJcXHUyNjlDXFx1MjZBMFxcdTI2QTdcXHUyNkIwXFx1MjZCMVxcdTI2QzhcXHUyNkNGXFx1MjZEMVxcdTI2RDNcXHUyNkU5XFx1MjZGMFxcdTI2RjFcXHUyNkY0XFx1MjZGN1xcdTI2RjhcXHUyNzAyXFx1MjcwOFxcdTI3MDlcXHUyNzBGXFx1MjcxMlxcdTI3MTRcXHUyNzE2XFx1MjcxRFxcdTI3MjFcXHUyNzMzXFx1MjczNFxcdTI3NDRcXHUyNzQ3XFx1Mjc2M1xcdTI3QTFcXHUyOTM0XFx1MjkzNVxcdTJCMDUtXFx1MkIwN1xcdTMwMzBcXHUzMDNEXFx1MzI5N1xcdTMyOTldfFxcdUQ4M0NbXFx1REQ3MFxcdURENzFcXHVERDdFXFx1REQ3RlxcdURFMDJcXHVERTM3XFx1REYyMVxcdURGMjQtXFx1REYyQ1xcdURGMzZcXHVERjdEXFx1REY5NlxcdURGOTdcXHVERjk5LVxcdURGOUJcXHVERjlFXFx1REY5RlxcdURGQ0RcXHVERkNFXFx1REZENC1cXHVERkRGXFx1REZGNVxcdURGRjddfFxcdUQ4M0RbXFx1REMzRlxcdURDRkRcXHVERDQ5XFx1REQ0QVxcdURENkZcXHVERDcwXFx1REQ3M1xcdURENzYtXFx1REQ3OVxcdUREODdcXHVERDhBLVxcdUREOERcXHVEREE1XFx1RERBOFxcdUREQjFcXHVEREIyXFx1RERCQ1xcdUREQzItXFx1RERDNFxcdURERDEtXFx1REREM1xcdUREREMtXFx1RERERVxcdURERTFcXHVEREUzXFx1RERFOFxcdURERUZcXHVEREYzXFx1RERGQVxcdURFQ0JcXHVERUNELVxcdURFQ0ZcXHVERUUwLVxcdURFRTVcXHVERUU5XFx1REVGMFxcdURFRjNdKVxcdUZFMEZ8XFx1RDgzQ1xcdURGRjNcXHVGRTBGXFx1MjAwRFxcdUQ4M0NcXHVERjA4fFxcdUQ4M0RcXHVEQzY5XFx1MjAwRFxcdUQ4M0RcXHVEQzY3fFxcdUQ4M0RcXHVEQzY5XFx1MjAwRFxcdUQ4M0RcXHVEQzY2fFxcdUQ4M0RcXHVERTM1XFx1MjAwRFxcdUQ4M0RcXHVEQ0FCfFxcdUQ4M0RcXHVERTJFXFx1MjAwRFxcdUQ4M0RcXHVEQ0E4fFxcdUQ4M0RcXHVEQzE1XFx1MjAwRFxcdUQ4M0VcXHVEREJBfFxcdUQ4M0VcXHVEREQxKD86XFx1RDgzQ1xcdURGRkZ8XFx1RDgzQ1xcdURGRkV8XFx1RDgzQ1xcdURGRkR8XFx1RDgzQ1xcdURGRkN8XFx1RDgzQ1xcdURGRkIpP3xcXHVEODNEXFx1REM2OSg/OlxcdUQ4M0NcXHVERkZGfFxcdUQ4M0NcXHVERkZFfFxcdUQ4M0NcXHVERkZEfFxcdUQ4M0NcXHVERkZDfFxcdUQ4M0NcXHVERkZCKT98XFx1RDgzQ1xcdURERkRcXHVEODNDXFx1RERGMHxcXHVEODNDXFx1RERGNlxcdUQ4M0NcXHVEREU2fFxcdUQ4M0NcXHVEREY0XFx1RDgzQ1xcdURERjJ8XFx1RDgzRFxcdURDMDhcXHUyMDBEXFx1MkIxQnxcXHUyNzY0XFx1RkUwRlxcdTIwMEQoPzpcXHVEODNEXFx1REQyNXxcXHVEODNFXFx1REU3OSl8XFx1RDgzRFxcdURDNDFcXHVGRTBGfFxcdUQ4M0NcXHVERkYzXFx1RkUwRnxcXHVEODNDXFx1RERGRig/OlxcdUQ4M0NbXFx1RERFNlxcdURERjJcXHVEREZDXSl8XFx1RDgzQ1xcdURERkUoPzpcXHVEODNDW1xcdURERUFcXHVEREY5XSl8XFx1RDgzQ1xcdURERkMoPzpcXHVEODNDW1xcdURERUJcXHVEREY4XSl8XFx1RDgzQ1xcdURERkIoPzpcXHVEODNDW1xcdURERTZcXHVEREU4XFx1RERFQVxcdURERUNcXHVEREVFXFx1RERGM1xcdURERkFdKXxcXHVEODNDXFx1RERGQSg/OlxcdUQ4M0NbXFx1RERFNlxcdURERUNcXHVEREYyXFx1RERGM1xcdURERjhcXHVEREZFXFx1RERGRl0pfFxcdUQ4M0NcXHVEREY5KD86XFx1RDgzQ1tcXHVEREU2XFx1RERFOFxcdURERTlcXHVEREVCLVxcdURERURcXHVEREVGLVxcdURERjRcXHVEREY3XFx1RERGOVxcdURERkJcXHVEREZDXFx1RERGRl0pfFxcdUQ4M0NcXHVEREY4KD86XFx1RDgzQ1tcXHVEREU2LVxcdURERUFcXHVEREVDLVxcdURERjRcXHVEREY3LVxcdURERjlcXHVEREZCXFx1RERGRC1cXHVEREZGXSl8XFx1RDgzQ1xcdURERjcoPzpcXHVEODNDW1xcdURERUFcXHVEREY0XFx1RERGOFxcdURERkFcXHVEREZDXSl8XFx1RDgzQ1xcdURERjUoPzpcXHVEODNDW1xcdURERTZcXHVEREVBLVxcdURERURcXHVEREYwLVxcdURERjNcXHVEREY3LVxcdURERjlcXHVEREZDXFx1RERGRV0pfFxcdUQ4M0NcXHVEREYzKD86XFx1RDgzQ1tcXHVEREU2XFx1RERFOFxcdURERUEtXFx1RERFQ1xcdURERUVcXHVEREYxXFx1RERGNFxcdURERjVcXHVEREY3XFx1RERGQVxcdURERkZdKXxcXHVEODNDXFx1RERGMig/OlxcdUQ4M0NbXFx1RERFNlxcdURERTgtXFx1RERFRFxcdURERjAtXFx1RERGRl0pfFxcdUQ4M0NcXHVEREYxKD86XFx1RDgzQ1tcXHVEREU2LVxcdURERThcXHVEREVFXFx1RERGMFxcdURERjctXFx1RERGQlxcdURERkVdKXxcXHVEODNDXFx1RERGMCg/OlxcdUQ4M0NbXFx1RERFQVxcdURERUMtXFx1RERFRVxcdURERjJcXHVEREYzXFx1RERGNVxcdURERjdcXHVEREZDXFx1RERGRVxcdURERkZdKXxcXHVEODNDXFx1RERFRig/OlxcdUQ4M0NbXFx1RERFQVxcdURERjJcXHVEREY0XFx1RERGNV0pfFxcdUQ4M0NcXHVEREVFKD86XFx1RDgzQ1tcXHVEREU4LVxcdURERUFcXHVEREYxLVxcdURERjRcXHVEREY2LVxcdURERjldKXxcXHVEODNDXFx1RERFRCg/OlxcdUQ4M0NbXFx1RERGMFxcdURERjJcXHVEREYzXFx1RERGN1xcdURERjlcXHVEREZBXSl8XFx1RDgzQ1xcdURERUMoPzpcXHVEODNDW1xcdURERTZcXHVEREU3XFx1RERFOS1cXHVEREVFXFx1RERGMS1cXHVEREYzXFx1RERGNS1cXHVEREZBXFx1RERGQ1xcdURERkVdKXxcXHVEODNDXFx1RERFQig/OlxcdUQ4M0NbXFx1RERFRS1cXHVEREYwXFx1RERGMlxcdURERjRcXHVEREY3XSl8XFx1RDgzQ1xcdURERUEoPzpcXHVEODNDW1xcdURERTZcXHVEREU4XFx1RERFQVxcdURERUNcXHVEREVEXFx1RERGNy1cXHVEREZBXSl8XFx1RDgzQ1xcdURERTkoPzpcXHVEODNDW1xcdURERUFcXHVEREVDXFx1RERFRlxcdURERjBcXHVEREYyXFx1RERGNFxcdURERkZdKXxcXHVEODNDXFx1RERFOCg/OlxcdUQ4M0NbXFx1RERFNlxcdURERThcXHVEREU5XFx1RERFQi1cXHVEREVFXFx1RERGMC1cXHVEREY1XFx1RERGN1xcdURERkEtXFx1RERGRl0pfFxcdUQ4M0NcXHVEREU3KD86XFx1RDgzQ1tcXHVEREU2XFx1RERFN1xcdURERTktXFx1RERFRlxcdURERjEtXFx1RERGNFxcdURERjYtXFx1RERGOVxcdURERkJcXHVEREZDXFx1RERGRVxcdURERkZdKXxcXHVEODNDXFx1RERFNig/OlxcdUQ4M0NbXFx1RERFOC1cXHVEREVDXFx1RERFRVxcdURERjFcXHVEREYyXFx1RERGNFxcdURERjYtXFx1RERGQVxcdURERkNcXHVEREZEXFx1RERGRl0pfFsjXFwqMC05XVxcdUZFMEZcXHUyMEUzfFxcdTI3NjRcXHVGRTBGfCg/OlxcdUQ4M0NbXFx1REZDM1xcdURGQzRcXHVERkNBXXxcXHVEODNEW1xcdURDNkVcXHVEQzcwXFx1REM3MVxcdURDNzNcXHVEQzc3XFx1REM4MVxcdURDODJcXHVEQzg2XFx1REM4N1xcdURFNDUtXFx1REU0N1xcdURFNEJcXHVERTREXFx1REU0RVxcdURFQTNcXHVERUI0LVxcdURFQjZdfFxcdUQ4M0VbXFx1REQyNlxcdUREMzVcXHVERDM3LVxcdUREMzlcXHVERDNEXFx1REQzRVxcdUREQjhcXHVEREI5XFx1RERDRC1cXHVERENGXFx1RERENFxcdURERDYtXFx1RERERF0pKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKXwoPzpcXHUyNkY5fFxcdUQ4M0NbXFx1REZDQlxcdURGQ0NdfFxcdUQ4M0RcXHVERDc1KSg/OlxcdUZFMEZ8XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKXxcXHVEODNDXFx1REZGNHwoPzpbXFx1MjcwQVxcdTI3MEJdfFxcdUQ4M0NbXFx1REY4NVxcdURGQzJcXHVERkM3XXxcXHVEODNEW1xcdURDNDJcXHVEQzQzXFx1REM0Ni1cXHVEQzUwXFx1REM2NlxcdURDNjdcXHVEQzZCLVxcdURDNkRcXHVEQzcyXFx1REM3NC1cXHVEQzc2XFx1REM3OFxcdURDN0NcXHVEQzgzXFx1REM4NVxcdURDOEZcXHVEQzkxXFx1RENBQVxcdUREN0FcXHVERDk1XFx1REQ5NlxcdURFNENcXHVERTRGXFx1REVDMFxcdURFQ0NdfFxcdUQ4M0VbXFx1REQwQ1xcdUREMEZcXHVERDE4LVxcdUREMUNcXHVERDFFXFx1REQxRlxcdUREMzAtXFx1REQzNFxcdUREMzZcXHVERDc3XFx1RERCNVxcdUREQjZcXHVEREJCXFx1REREMlxcdURERDNcXHVEREQ1XSkoPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pfCg/OltcXHUyNjFEXFx1MjcwQ1xcdTI3MERdfFxcdUQ4M0RbXFx1REQ3NFxcdUREOTBdKSg/OlxcdUZFMEZ8XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKXxbXFx1MjcwQVxcdTI3MEJdfFxcdUQ4M0NbXFx1REY4NVxcdURGQzJcXHVERkM3XXxcXHVEODNEW1xcdURDMDhcXHVEQzE1XFx1REMzQlxcdURDNDJcXHVEQzQzXFx1REM0Ni1cXHVEQzUwXFx1REM2NlxcdURDNjdcXHVEQzZCLVxcdURDNkRcXHVEQzcyXFx1REM3NC1cXHVEQzc2XFx1REM3OFxcdURDN0NcXHVEQzgzXFx1REM4NVxcdURDOEZcXHVEQzkxXFx1RENBQVxcdUREN0FcXHVERDk1XFx1REQ5NlxcdURFMkVcXHVERTM1XFx1REUzNlxcdURFNENcXHVERTRGXFx1REVDMFxcdURFQ0NdfFxcdUQ4M0VbXFx1REQwQ1xcdUREMEZcXHVERDE4LVxcdUREMUNcXHVERDFFXFx1REQxRlxcdUREMzAtXFx1REQzNFxcdUREMzZcXHVERDc3XFx1RERCNVxcdUREQjZcXHVEREJCXFx1REREMlxcdURERDNcXHVEREQ1XXxcXHVEODNDW1xcdURGQzNcXHVERkM0XFx1REZDQV18XFx1RDgzRFtcXHVEQzZFXFx1REM3MFxcdURDNzFcXHVEQzczXFx1REM3N1xcdURDODFcXHVEQzgyXFx1REM4NlxcdURDODdcXHVERTQ1LVxcdURFNDdcXHVERTRCXFx1REU0RFxcdURFNEVcXHVERUEzXFx1REVCNC1cXHVERUI2XXxcXHVEODNFW1xcdUREMjZcXHVERDM1XFx1REQzNy1cXHVERDM5XFx1REQzRFxcdUREM0VcXHVEREI4XFx1RERCOVxcdUREQ0QtXFx1RERDRlxcdURERDRcXHVEREQ2LVxcdURERERdfFxcdUQ4M0RcXHVEQzZGfFxcdUQ4M0VbXFx1REQzQ1xcdUREREVcXHVERERGXXxbXFx1MjMxQVxcdTIzMUJcXHUyM0U5LVxcdTIzRUNcXHUyM0YwXFx1MjNGM1xcdTI1RkRcXHUyNUZFXFx1MjYxNFxcdTI2MTVcXHUyNjQ4LVxcdTI2NTNcXHUyNjdGXFx1MjY5M1xcdTI2QTFcXHUyNkFBXFx1MjZBQlxcdTI2QkRcXHUyNkJFXFx1MjZDNFxcdTI2QzVcXHUyNkNFXFx1MjZENFxcdTI2RUFcXHUyNkYyXFx1MjZGM1xcdTI2RjVcXHUyNkZBXFx1MjZGRFxcdTI3MDVcXHUyNzI4XFx1Mjc0Q1xcdTI3NEVcXHUyNzUzLVxcdTI3NTVcXHUyNzU3XFx1Mjc5NS1cXHUyNzk3XFx1MjdCMFxcdTI3QkZcXHUyQjFCXFx1MkIxQ1xcdTJCNTBcXHUyQjU1XXxcXHVEODNDW1xcdURDMDRcXHVEQ0NGXFx1REQ4RVxcdUREOTEtXFx1REQ5QVxcdURFMDFcXHVERTFBXFx1REUyRlxcdURFMzItXFx1REUzNlxcdURFMzgtXFx1REUzQVxcdURFNTBcXHVERTUxXFx1REYwMC1cXHVERjIwXFx1REYyRC1cXHVERjM1XFx1REYzNy1cXHVERjdDXFx1REY3RS1cXHVERjg0XFx1REY4Ni1cXHVERjkzXFx1REZBMC1cXHVERkMxXFx1REZDNVxcdURGQzZcXHVERkM4XFx1REZDOVxcdURGQ0YtXFx1REZEM1xcdURGRTAtXFx1REZGMFxcdURGRjgtXFx1REZGRl18XFx1RDgzRFtcXHVEQzAwLVxcdURDMDdcXHVEQzA5LVxcdURDMTRcXHVEQzE2LVxcdURDM0FcXHVEQzNDLVxcdURDM0VcXHVEQzQwXFx1REM0NFxcdURDNDVcXHVEQzUxLVxcdURDNjVcXHVEQzZBXFx1REM3OS1cXHVEQzdCXFx1REM3RC1cXHVEQzgwXFx1REM4NFxcdURDODgtXFx1REM4RVxcdURDOTBcXHVEQzkyLVxcdURDQTlcXHVEQ0FCLVxcdURDRkNcXHVEQ0ZGLVxcdUREM0RcXHVERDRCLVxcdURENEVcXHVERDUwLVxcdURENjdcXHVEREE0XFx1RERGQi1cXHVERTJEXFx1REUyRi1cXHVERTM0XFx1REUzNy1cXHVERTQ0XFx1REU0OC1cXHVERTRBXFx1REU4MC1cXHVERUEyXFx1REVBNC1cXHVERUIzXFx1REVCNy1cXHVERUJGXFx1REVDMS1cXHVERUM1XFx1REVEMC1cXHVERUQyXFx1REVENS1cXHVERUQ3XFx1REVFQlxcdURFRUNcXHVERUY0LVxcdURFRkNcXHVERkUwLVxcdURGRUJdfFxcdUQ4M0VbXFx1REQwRFxcdUREMEVcXHVERDEwLVxcdUREMTdcXHVERDFEXFx1REQyMC1cXHVERDI1XFx1REQyNy1cXHVERDJGXFx1REQzQVxcdUREM0YtXFx1REQ0NVxcdURENDctXFx1REQ3NlxcdURENzhcXHVERDdBLVxcdUREQjRcXHVEREI3XFx1RERCQVxcdUREQkMtXFx1RERDQlxcdURERDBcXHVEREUwLVxcdURERkZcXHVERTcwLVxcdURFNzRcXHVERTc4LVxcdURFN0FcXHVERTgwLVxcdURFODZcXHVERTkwLVxcdURFQThcXHVERUIwLVxcdURFQjZcXHVERUMwLVxcdURFQzJcXHVERUQwLVxcdURFRDZdfCg/OltcXHUyMzFBXFx1MjMxQlxcdTIzRTktXFx1MjNFQ1xcdTIzRjBcXHUyM0YzXFx1MjVGRFxcdTI1RkVcXHUyNjE0XFx1MjYxNVxcdTI2NDgtXFx1MjY1M1xcdTI2N0ZcXHUyNjkzXFx1MjZBMVxcdTI2QUFcXHUyNkFCXFx1MjZCRFxcdTI2QkVcXHUyNkM0XFx1MjZDNVxcdTI2Q0VcXHUyNkQ0XFx1MjZFQVxcdTI2RjJcXHUyNkYzXFx1MjZGNVxcdTI2RkFcXHUyNkZEXFx1MjcwNVxcdTI3MEFcXHUyNzBCXFx1MjcyOFxcdTI3NENcXHUyNzRFXFx1Mjc1My1cXHUyNzU1XFx1Mjc1N1xcdTI3OTUtXFx1Mjc5N1xcdTI3QjBcXHUyN0JGXFx1MkIxQlxcdTJCMUNcXHUyQjUwXFx1MkI1NV18XFx1RDgzQ1tcXHVEQzA0XFx1RENDRlxcdUREOEVcXHVERDkxLVxcdUREOUFcXHVEREU2LVxcdURERkZcXHVERTAxXFx1REUxQVxcdURFMkZcXHVERTMyLVxcdURFMzZcXHVERTM4LVxcdURFM0FcXHVERTUwXFx1REU1MVxcdURGMDAtXFx1REYyMFxcdURGMkQtXFx1REYzNVxcdURGMzctXFx1REY3Q1xcdURGN0UtXFx1REY5M1xcdURGQTAtXFx1REZDQVxcdURGQ0YtXFx1REZEM1xcdURGRTAtXFx1REZGMFxcdURGRjRcXHVERkY4LVxcdURGRkZdfFxcdUQ4M0RbXFx1REMwMC1cXHVEQzNFXFx1REM0MFxcdURDNDItXFx1RENGQ1xcdURDRkYtXFx1REQzRFxcdURENEItXFx1REQ0RVxcdURENTAtXFx1REQ2N1xcdUREN0FcXHVERDk1XFx1REQ5NlxcdUREQTRcXHVEREZCLVxcdURFNEZcXHVERTgwLVxcdURFQzVcXHVERUNDXFx1REVEMC1cXHVERUQyXFx1REVENS1cXHVERUQ3XFx1REVFQlxcdURFRUNcXHVERUY0LVxcdURFRkNcXHVERkUwLVxcdURGRUJdfFxcdUQ4M0VbXFx1REQwQy1cXHVERDNBXFx1REQzQy1cXHVERDQ1XFx1REQ0Ny1cXHVERDc4XFx1REQ3QS1cXHVERENCXFx1RERDRC1cXHVEREZGXFx1REU3MC1cXHVERTc0XFx1REU3OC1cXHVERTdBXFx1REU4MC1cXHVERTg2XFx1REU5MC1cXHVERUE4XFx1REVCMC1cXHVERUI2XFx1REVDMC1cXHVERUMyXFx1REVEMC1cXHVERUQ2XSl8KD86WyNcXCowLTlcXHhBOVxceEFFXFx1MjAzQ1xcdTIwNDlcXHUyMTIyXFx1MjEzOVxcdTIxOTQtXFx1MjE5OVxcdTIxQTlcXHUyMUFBXFx1MjMxQVxcdTIzMUJcXHUyMzI4XFx1MjNDRlxcdTIzRTktXFx1MjNGM1xcdTIzRjgtXFx1MjNGQVxcdTI0QzJcXHUyNUFBXFx1MjVBQlxcdTI1QjZcXHUyNUMwXFx1MjVGQi1cXHUyNUZFXFx1MjYwMC1cXHUyNjA0XFx1MjYwRVxcdTI2MTFcXHUyNjE0XFx1MjYxNVxcdTI2MThcXHUyNjFEXFx1MjYyMFxcdTI2MjJcXHUyNjIzXFx1MjYyNlxcdTI2MkFcXHUyNjJFXFx1MjYyRlxcdTI2MzgtXFx1MjYzQVxcdTI2NDBcXHUyNjQyXFx1MjY0OC1cXHUyNjUzXFx1MjY1RlxcdTI2NjBcXHUyNjYzXFx1MjY2NVxcdTI2NjZcXHUyNjY4XFx1MjY3QlxcdTI2N0VcXHUyNjdGXFx1MjY5Mi1cXHUyNjk3XFx1MjY5OVxcdTI2OUJcXHUyNjlDXFx1MjZBMFxcdTI2QTFcXHUyNkE3XFx1MjZBQVxcdTI2QUJcXHUyNkIwXFx1MjZCMVxcdTI2QkRcXHUyNkJFXFx1MjZDNFxcdTI2QzVcXHUyNkM4XFx1MjZDRVxcdTI2Q0ZcXHUyNkQxXFx1MjZEM1xcdTI2RDRcXHUyNkU5XFx1MjZFQVxcdTI2RjAtXFx1MjZGNVxcdTI2RjctXFx1MjZGQVxcdTI2RkRcXHUyNzAyXFx1MjcwNVxcdTI3MDgtXFx1MjcwRFxcdTI3MEZcXHUyNzEyXFx1MjcxNFxcdTI3MTZcXHUyNzFEXFx1MjcyMVxcdTI3MjhcXHUyNzMzXFx1MjczNFxcdTI3NDRcXHUyNzQ3XFx1Mjc0Q1xcdTI3NEVcXHUyNzUzLVxcdTI3NTVcXHUyNzU3XFx1Mjc2M1xcdTI3NjRcXHUyNzk1LVxcdTI3OTdcXHUyN0ExXFx1MjdCMFxcdTI3QkZcXHUyOTM0XFx1MjkzNVxcdTJCMDUtXFx1MkIwN1xcdTJCMUJcXHUyQjFDXFx1MkI1MFxcdTJCNTVcXHUzMDMwXFx1MzAzRFxcdTMyOTdcXHUzMjk5XXxcXHVEODNDW1xcdURDMDRcXHVEQ0NGXFx1REQ3MFxcdURENzFcXHVERDdFXFx1REQ3RlxcdUREOEVcXHVERDkxLVxcdUREOUFcXHVEREU2LVxcdURERkZcXHVERTAxXFx1REUwMlxcdURFMUFcXHVERTJGXFx1REUzMi1cXHVERTNBXFx1REU1MFxcdURFNTFcXHVERjAwLVxcdURGMjFcXHVERjI0LVxcdURGOTNcXHVERjk2XFx1REY5N1xcdURGOTktXFx1REY5QlxcdURGOUUtXFx1REZGMFxcdURGRjMtXFx1REZGNVxcdURGRjctXFx1REZGRl18XFx1RDgzRFtcXHVEQzAwLVxcdURDRkRcXHVEQ0ZGLVxcdUREM0RcXHVERDQ5LVxcdURENEVcXHVERDUwLVxcdURENjdcXHVERDZGXFx1REQ3MFxcdURENzMtXFx1REQ3QVxcdUREODdcXHVERDhBLVxcdUREOERcXHVERDkwXFx1REQ5NVxcdUREOTZcXHVEREE0XFx1RERBNVxcdUREQThcXHVEREIxXFx1RERCMlxcdUREQkNcXHVEREMyLVxcdUREQzRcXHVEREQxLVxcdURERDNcXHVERERDLVxcdUREREVcXHVEREUxXFx1RERFM1xcdURERThcXHVEREVGXFx1RERGM1xcdURERkEtXFx1REU0RlxcdURFODAtXFx1REVDNVxcdURFQ0ItXFx1REVEMlxcdURFRDUtXFx1REVEN1xcdURFRTAtXFx1REVFNVxcdURFRTlcXHVERUVCXFx1REVFQ1xcdURFRjBcXHVERUYzLVxcdURFRkNcXHVERkUwLVxcdURGRUJdfFxcdUQ4M0VbXFx1REQwQy1cXHVERDNBXFx1REQzQy1cXHVERDQ1XFx1REQ0Ny1cXHVERDc4XFx1REQ3QS1cXHVERENCXFx1RERDRC1cXHVEREZGXFx1REU3MC1cXHVERTc0XFx1REU3OC1cXHVERTdBXFx1REU4MC1cXHVERTg2XFx1REU5MC1cXHVERUE4XFx1REVCMC1cXHVERUI2XFx1REVDMC1cXHVERUMyXFx1REVEMC1cXHVERUQ2XSlcXHVGRTBGfCg/OltcXHUyNjFEXFx1MjZGOVxcdTI3MEEtXFx1MjcwRF18XFx1RDgzQ1tcXHVERjg1XFx1REZDMi1cXHVERkM0XFx1REZDN1xcdURGQ0EtXFx1REZDQ118XFx1RDgzRFtcXHVEQzQyXFx1REM0M1xcdURDNDYtXFx1REM1MFxcdURDNjYtXFx1REM3OFxcdURDN0NcXHVEQzgxLVxcdURDODNcXHVEQzg1LVxcdURDODdcXHVEQzhGXFx1REM5MVxcdURDQUFcXHVERDc0XFx1REQ3NVxcdUREN0FcXHVERDkwXFx1REQ5NVxcdUREOTZcXHVERTQ1LVxcdURFNDdcXHVERTRCLVxcdURFNEZcXHVERUEzXFx1REVCNC1cXHVERUI2XFx1REVDMFxcdURFQ0NdfFxcdUQ4M0VbXFx1REQwQ1xcdUREMEZcXHVERDE4LVxcdUREMUZcXHVERDI2XFx1REQzMC1cXHVERDM5XFx1REQzQy1cXHVERDNFXFx1REQ3N1xcdUREQjVcXHVEREI2XFx1RERCOFxcdUREQjlcXHVEREJCXFx1RERDRC1cXHVERENGXFx1REREMS1cXHVEREREXSkvZ307ZnVuY3Rpb24gYyh0LHU9e30pe2lmKHR5cGVvZiB0IT1cInN0cmluZ1wifHx0Lmxlbmd0aD09PTB8fCh1PXthbWJpZ3VvdXNJc05hcnJvdzohMCwuLi51fSx0PSQodCksdC5sZW5ndGg9PT0wKSlyZXR1cm4gMDt0PXQucmVwbGFjZShZKCksXCIgIFwiKTtjb25zdCBGPXUuYW1iaWd1b3VzSXNOYXJyb3c/MToyO2xldCBlPTA7Zm9yKGNvbnN0IHMgb2YgdCl7Y29uc3QgQz1zLmNvZGVQb2ludEF0KDApO2lmKEM8PTMxfHxDPj0xMjcmJkM8PTE1OXx8Qz49NzY4JiZDPD04NzkpY29udGludWU7c3dpdGNoKEsuZWFzdEFzaWFuV2lkdGgocykpe2Nhc2VcIkZcIjpjYXNlXCJXXCI6ZSs9MjticmVhaztjYXNlXCJBXCI6ZSs9RjticmVhaztkZWZhdWx0OmUrPTE7fX1yZXR1cm4gZX1jb25zdCB2PTEwLEw9KHQ9MCk9PnU9PmBcXHgxQlske3UrdH1tYCxNPSh0PTApPT51PT5gXFx4MUJbJHszOCt0fTs1OyR7dX1tYCxUPSh0PTApPT4odSxGLGUpPT5gXFx4MUJbJHszOCt0fTsyOyR7dX07JHtGfTske2V9bWAscj17bW9kaWZpZXI6e3Jlc2V0OlswLDBdLGJvbGQ6WzEsMjJdLGRpbTpbMiwyMl0saXRhbGljOlszLDIzXSx1bmRlcmxpbmU6WzQsMjRdLG92ZXJsaW5lOls1Myw1NV0saW52ZXJzZTpbNywyN10saGlkZGVuOls4LDI4XSxzdHJpa2V0aHJvdWdoOls5LDI5XX0sY29sb3I6e2JsYWNrOlszMCwzOV0scmVkOlszMSwzOV0sZ3JlZW46WzMyLDM5XSx5ZWxsb3c6WzMzLDM5XSxibHVlOlszNCwzOV0sbWFnZW50YTpbMzUsMzldLGN5YW46WzM2LDM5XSx3aGl0ZTpbMzcsMzldLGJsYWNrQnJpZ2h0Ols5MCwzOV0sZ3JheTpbOTAsMzldLGdyZXk6WzkwLDM5XSxyZWRCcmlnaHQ6WzkxLDM5XSxncmVlbkJyaWdodDpbOTIsMzldLHllbGxvd0JyaWdodDpbOTMsMzldLGJsdWVCcmlnaHQ6Wzk0LDM5XSxtYWdlbnRhQnJpZ2h0Ols5NSwzOV0sY3lhbkJyaWdodDpbOTYsMzldLHdoaXRlQnJpZ2h0Ols5NywzOV19LGJnQ29sb3I6e2JnQmxhY2s6WzQwLDQ5XSxiZ1JlZDpbNDEsNDldLGJnR3JlZW46WzQyLDQ5XSxiZ1llbGxvdzpbNDMsNDldLGJnQmx1ZTpbNDQsNDldLGJnTWFnZW50YTpbNDUsNDldLGJnQ3lhbjpbNDYsNDldLGJnV2hpdGU6WzQ3LDQ5XSxiZ0JsYWNrQnJpZ2h0OlsxMDAsNDldLGJnR3JheTpbMTAwLDQ5XSxiZ0dyZXk6WzEwMCw0OV0sYmdSZWRCcmlnaHQ6WzEwMSw0OV0sYmdHcmVlbkJyaWdodDpbMTAyLDQ5XSxiZ1llbGxvd0JyaWdodDpbMTAzLDQ5XSxiZ0JsdWVCcmlnaHQ6WzEwNCw0OV0sYmdNYWdlbnRhQnJpZ2h0OlsxMDUsNDldLGJnQ3lhbkJyaWdodDpbMTA2LDQ5XSxiZ1doaXRlQnJpZ2h0OlsxMDcsNDldfX07T2JqZWN0LmtleXMoci5tb2RpZmllcik7Y29uc3QgWj1PYmplY3Qua2V5cyhyLmNvbG9yKSxIPU9iamVjdC5rZXlzKHIuYmdDb2xvcik7Wy4uLlosLi4uSF07ZnVuY3Rpb24gVSgpe2NvbnN0IHQ9bmV3IE1hcDtmb3IoY29uc3RbdSxGXW9mIE9iamVjdC5lbnRyaWVzKHIpKXtmb3IoY29uc3RbZSxzXW9mIE9iamVjdC5lbnRyaWVzKEYpKXJbZV09e29wZW46YFxceDFCWyR7c1swXX1tYCxjbG9zZTpgXFx4MUJbJHtzWzFdfW1gfSxGW2VdPXJbZV0sdC5zZXQoc1swXSxzWzFdKTtPYmplY3QuZGVmaW5lUHJvcGVydHkocix1LHt2YWx1ZTpGLGVudW1lcmFibGU6ITF9KTt9cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFwiY29kZXNcIix7dmFsdWU6dCxlbnVtZXJhYmxlOiExfSksci5jb2xvci5jbG9zZT1cIlxceDFCWzM5bVwiLHIuYmdDb2xvci5jbG9zZT1cIlxceDFCWzQ5bVwiLHIuY29sb3IuYW5zaT1MKCksci5jb2xvci5hbnNpMjU2PU0oKSxyLmNvbG9yLmFuc2kxNm09VCgpLHIuYmdDb2xvci5hbnNpPUwodiksci5iZ0NvbG9yLmFuc2kyNTY9TSh2KSxyLmJnQ29sb3IuYW5zaTE2bT1UKHYpLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHIse3JnYlRvQW5zaTI1Njp7dmFsdWU6KHUsRixlKT0+dT09PUYmJkY9PT1lP3U8OD8xNjp1PjI0OD8yMzE6TWF0aC5yb3VuZCgodS04KS8yNDcqMjQpKzIzMjoxNiszNipNYXRoLnJvdW5kKHUvMjU1KjUpKzYqTWF0aC5yb3VuZChGLzI1NSo1KStNYXRoLnJvdW5kKGUvMjU1KjUpLGVudW1lcmFibGU6ITF9LGhleFRvUmdiOnt2YWx1ZTp1PT57Y29uc3QgRj0vW2EtZlxcZF17Nn18W2EtZlxcZF17M30vaS5leGVjKHUudG9TdHJpbmcoMTYpKTtpZighRilyZXR1cm4gWzAsMCwwXTtsZXRbZV09RjtlLmxlbmd0aD09PTMmJihlPVsuLi5lXS5tYXAoQz0+QytDKS5qb2luKFwiXCIpKTtjb25zdCBzPU51bWJlci5wYXJzZUludChlLDE2KTtyZXR1cm4gW3M+PjE2JjI1NSxzPj44JjI1NSxzJjI1NV19LGVudW1lcmFibGU6ITF9LGhleFRvQW5zaTI1Njp7dmFsdWU6dT0+ci5yZ2JUb0Fuc2kyNTYoLi4uci5oZXhUb1JnYih1KSksZW51bWVyYWJsZTohMX0sYW5zaTI1NlRvQW5zaTp7dmFsdWU6dT0+e2lmKHU8OClyZXR1cm4gMzArdTtpZih1PDE2KXJldHVybiA5MCsodS04KTtsZXQgRixlLHM7aWYodT49MjMyKUY9KCh1LTIzMikqMTArOCkvMjU1LGU9RixzPUY7ZWxzZSB7dS09MTY7Y29uc3QgaT11JTM2O0Y9TWF0aC5mbG9vcih1LzM2KS81LGU9TWF0aC5mbG9vcihpLzYpLzUscz1pJTYvNTt9Y29uc3QgQz1NYXRoLm1heChGLGUscykqMjtpZihDPT09MClyZXR1cm4gMzA7bGV0IEQ9MzArKE1hdGgucm91bmQocyk8PDJ8TWF0aC5yb3VuZChlKTw8MXxNYXRoLnJvdW5kKEYpKTtyZXR1cm4gQz09PTImJihEKz02MCksRH0sZW51bWVyYWJsZTohMX0scmdiVG9BbnNpOnt2YWx1ZToodSxGLGUpPT5yLmFuc2kyNTZUb0Fuc2koci5yZ2JUb0Fuc2kyNTYodSxGLGUpKSxlbnVtZXJhYmxlOiExfSxoZXhUb0Fuc2k6e3ZhbHVlOnU9PnIuYW5zaTI1NlRvQW5zaShyLmhleFRvQW5zaTI1Nih1KSksZW51bWVyYWJsZTohMX19KSxyfWNvbnN0IHE9VSgpLHA9bmV3IFNldChbXCJcXHgxQlwiLFwiXFx4OUJcIl0pLEo9MzksYj1cIlxceDA3XCIsVz1cIltcIixRPVwiXVwiLEk9XCJtXCIsdz1gJHtRfTg7O2AsTj10PT5gJHtwLnZhbHVlcygpLm5leHQoKS52YWx1ZX0ke1d9JHt0fSR7SX1gLGo9dD0+YCR7cC52YWx1ZXMoKS5uZXh0KCkudmFsdWV9JHt3fSR7dH0ke2J9YCxYPXQ9PnQuc3BsaXQoXCIgXCIpLm1hcCh1PT5jKHUpKSxfPSh0LHUsRik9Pntjb25zdCBlPVsuLi51XTtsZXQgcz0hMSxDPSExLEQ9YygkKHRbdC5sZW5ndGgtMV0pKTtmb3IoY29uc3RbaSxvXW9mIGUuZW50cmllcygpKXtjb25zdCBFPWMobyk7aWYoRCtFPD1GP3RbdC5sZW5ndGgtMV0rPW86KHQucHVzaChvKSxEPTApLHAuaGFzKG8pJiYocz0hMCxDPWUuc2xpY2UoaSsxKS5qb2luKFwiXCIpLnN0YXJ0c1dpdGgodykpLHMpe0M/bz09PWImJihzPSExLEM9ITEpOm89PT1JJiYocz0hMSk7Y29udGludWV9RCs9RSxEPT09RiYmaTxlLmxlbmd0aC0xJiYodC5wdXNoKFwiXCIpLEQ9MCk7fSFEJiZ0W3QubGVuZ3RoLTFdLmxlbmd0aD4wJiZ0Lmxlbmd0aD4xJiYodFt0Lmxlbmd0aC0yXSs9dC5wb3AoKSk7fSxERD10PT57Y29uc3QgdT10LnNwbGl0KFwiIFwiKTtsZXQgRj11Lmxlbmd0aDtmb3IoO0Y+MCYmIShjKHVbRi0xXSk+MCk7KUYtLTtyZXR1cm4gRj09PXUubGVuZ3RoP3Q6dS5zbGljZSgwLEYpLmpvaW4oXCIgXCIpK3Uuc2xpY2UoRikuam9pbihcIlwiKX0sdUQ9KHQsdSxGPXt9KT0+e2lmKEYudHJpbSE9PSExJiZ0LnRyaW0oKT09PVwiXCIpcmV0dXJuIFwiXCI7bGV0IGU9XCJcIixzLEM7Y29uc3QgRD1YKHQpO2xldCBpPVtcIlwiXTtmb3IoY29uc3RbRSxhXW9mIHQuc3BsaXQoXCIgXCIpLmVudHJpZXMoKSl7Ri50cmltIT09ITEmJihpW2kubGVuZ3RoLTFdPWlbaS5sZW5ndGgtMV0udHJpbVN0YXJ0KCkpO2xldCBuPWMoaVtpLmxlbmd0aC0xXSk7aWYoRSE9PTAmJihuPj11JiYoRi53b3JkV3JhcD09PSExfHxGLnRyaW09PT0hMSkmJihpLnB1c2goXCJcIiksbj0wKSwobj4wfHxGLnRyaW09PT0hMSkmJihpW2kubGVuZ3RoLTFdKz1cIiBcIixuKyspKSxGLmhhcmQmJkRbRV0+dSl7Y29uc3QgQj11LW4sQT0xK01hdGguZmxvb3IoKERbRV0tQi0xKS91KTtNYXRoLmZsb29yKChEW0VdLTEpL3UpPEEmJmkucHVzaChcIlwiKSxfKGksYSx1KTtjb250aW51ZX1pZihuK0RbRV0+dSYmbj4wJiZEW0VdPjApe2lmKEYud29yZFdyYXA9PT0hMSYmbjx1KXtfKGksYSx1KTtjb250aW51ZX1pLnB1c2goXCJcIik7fWlmKG4rRFtFXT51JiZGLndvcmRXcmFwPT09ITEpe18oaSxhLHUpO2NvbnRpbnVlfWlbaS5sZW5ndGgtMV0rPWE7fUYudHJpbSE9PSExJiYoaT1pLm1hcChFPT5ERChFKSkpO2NvbnN0IG89Wy4uLmkuam9pbihgXG5gKV07Zm9yKGNvbnN0W0UsYV1vZiBvLmVudHJpZXMoKSl7aWYoZSs9YSxwLmhhcyhhKSl7Y29uc3R7Z3JvdXBzOkJ9PW5ldyBSZWdFeHAoYCg/OlxcXFwke1d9KD88Y29kZT5cXFxcZCspbXxcXFxcJHt3fSg/PHVyaT4uKikke2J9KWApLmV4ZWMoby5zbGljZShFKS5qb2luKFwiXCIpKXx8e2dyb3Vwczp7fX07aWYoQi5jb2RlIT09dm9pZCAwKXtjb25zdCBBPU51bWJlci5wYXJzZUZsb2F0KEIuY29kZSk7cz1BPT09Sj92b2lkIDA6QTt9ZWxzZSBCLnVyaSE9PXZvaWQgMCYmKEM9Qi51cmkubGVuZ3RoPT09MD92b2lkIDA6Qi51cmkpO31jb25zdCBuPXEuY29kZXMuZ2V0KE51bWJlcihzKSk7b1tFKzFdPT09YFxuYD8oQyYmKGUrPWooXCJcIikpLHMmJm4mJihlKz1OKG4pKSk6YT09PWBcbmAmJihzJiZuJiYoZSs9TihzKSksQyYmKGUrPWooQykpKTt9cmV0dXJuIGV9O2Z1bmN0aW9uIFAodCx1LEYpe3JldHVybiBTdHJpbmcodCkubm9ybWFsaXplKCkucmVwbGFjZSgvXFxyXFxuL2csYFxuYCkuc3BsaXQoYFxuYCkubWFwKGU9PnVEKGUsdSxGKSkuam9pbihgXG5gKX1mdW5jdGlvbiBGRCh0LHUpe2lmKHQ9PT11KXJldHVybjtjb25zdCBGPXQuc3BsaXQoYFxuYCksZT11LnNwbGl0KGBcbmApLHM9W107Zm9yKGxldCBDPTA7QzxNYXRoLm1heChGLmxlbmd0aCxlLmxlbmd0aCk7QysrKUZbQ10hPT1lW0NdJiZzLnB1c2goQyk7cmV0dXJuIHN9Y29uc3QgUj1TeW1ib2woXCJjbGFjazpjYW5jZWxcIik7ZnVuY3Rpb24gZyh0LHUpe3QuaXNUVFkmJnQuc2V0UmF3TW9kZSh1KTt9Y29uc3QgVj1uZXcgTWFwKFtbXCJrXCIsXCJ1cFwiXSxbXCJqXCIsXCJkb3duXCJdLFtcImhcIixcImxlZnRcIl0sW1wibFwiLFwicmlnaHRcIl1dKSx0RD1uZXcgU2V0KFtcInVwXCIsXCJkb3duXCIsXCJsZWZ0XCIsXCJyaWdodFwiLFwic3BhY2VcIixcImVudGVyXCJdKTtjbGFzcyBoe2NvbnN0cnVjdG9yKHtyZW5kZXI6dSxpbnB1dDpGPXN0ZGluLG91dHB1dDplPXN0ZG91dCwuLi5zfSxDPSEwKXt0aGlzLl90cmFjaz0hMSx0aGlzLl9jdXJzb3I9MCx0aGlzLnN0YXRlPVwiaW5pdGlhbFwiLHRoaXMuZXJyb3I9XCJcIix0aGlzLnN1YnNjcmliZXJzPW5ldyBNYXAsdGhpcy5fcHJldkZyYW1lPVwiXCIsdGhpcy5vcHRzPXMsdGhpcy5vbktleXByZXNzPXRoaXMub25LZXlwcmVzcy5iaW5kKHRoaXMpLHRoaXMuY2xvc2U9dGhpcy5jbG9zZS5iaW5kKHRoaXMpLHRoaXMucmVuZGVyPXRoaXMucmVuZGVyLmJpbmQodGhpcyksdGhpcy5fcmVuZGVyPXUuYmluZCh0aGlzKSx0aGlzLl90cmFjaz1DLHRoaXMuaW5wdXQ9Rix0aGlzLm91dHB1dD1lO31wcm9tcHQoKXtjb25zdCB1PW5ldyBXcml0ZVN0cmVhbSgwKTtyZXR1cm4gdS5fd3JpdGU9KEYsZSxzKT0+e3RoaXMuX3RyYWNrJiYodGhpcy52YWx1ZT10aGlzLnJsLmxpbmUucmVwbGFjZSgvXFx0L2csXCJcIiksdGhpcy5fY3Vyc29yPXRoaXMucmwuY3Vyc29yLHRoaXMuZW1pdChcInZhbHVlXCIsdGhpcy52YWx1ZSkpLHMoKTt9LHRoaXMuaW5wdXQucGlwZSh1KSx0aGlzLnJsPWYuY3JlYXRlSW50ZXJmYWNlKHtpbnB1dDp0aGlzLmlucHV0LG91dHB1dDp1LHRhYlNpemU6Mixwcm9tcHQ6XCJcIixlc2NhcGVDb2RlVGltZW91dDo1MH0pLGYuZW1pdEtleXByZXNzRXZlbnRzKHRoaXMuaW5wdXQsdGhpcy5ybCksdGhpcy5ybC5wcm9tcHQoKSx0aGlzLm9wdHMuaW5pdGlhbFZhbHVlIT09dm9pZCAwJiZ0aGlzLl90cmFjayYmdGhpcy5ybC53cml0ZSh0aGlzLm9wdHMuaW5pdGlhbFZhbHVlKSx0aGlzLmlucHV0Lm9uKFwia2V5cHJlc3NcIix0aGlzLm9uS2V5cHJlc3MpLGcodGhpcy5pbnB1dCwhMCksdGhpcy5vdXRwdXQub24oXCJyZXNpemVcIix0aGlzLnJlbmRlciksdGhpcy5yZW5kZXIoKSxuZXcgUHJvbWlzZSgoRixlKT0+e3RoaXMub25jZShcInN1Ym1pdFwiLCgpPT57dGhpcy5vdXRwdXQud3JpdGUoc3JjLmN1cnNvci5zaG93KSx0aGlzLm91dHB1dC5vZmYoXCJyZXNpemVcIix0aGlzLnJlbmRlciksZyh0aGlzLmlucHV0LCExKSxGKHRoaXMudmFsdWUpO30pLHRoaXMub25jZShcImNhbmNlbFwiLCgpPT57dGhpcy5vdXRwdXQud3JpdGUoc3JjLmN1cnNvci5zaG93KSx0aGlzLm91dHB1dC5vZmYoXCJyZXNpemVcIix0aGlzLnJlbmRlciksZyh0aGlzLmlucHV0LCExKSxGKFIpO30pO30pfW9uKHUsRil7Y29uc3QgZT10aGlzLnN1YnNjcmliZXJzLmdldCh1KT8/W107ZS5wdXNoKHtjYjpGfSksdGhpcy5zdWJzY3JpYmVycy5zZXQodSxlKTt9b25jZSh1LEYpe2NvbnN0IGU9dGhpcy5zdWJzY3JpYmVycy5nZXQodSk/P1tdO2UucHVzaCh7Y2I6RixvbmNlOiEwfSksdGhpcy5zdWJzY3JpYmVycy5zZXQodSxlKTt9ZW1pdCh1LC4uLkYpe2NvbnN0IGU9dGhpcy5zdWJzY3JpYmVycy5nZXQodSk/P1tdLHM9W107Zm9yKGNvbnN0IEMgb2YgZSlDLmNiKC4uLkYpLEMub25jZSYmcy5wdXNoKCgpPT5lLnNwbGljZShlLmluZGV4T2YoQyksMSkpO2Zvcihjb25zdCBDIG9mIHMpQygpO311bnN1YnNjcmliZSgpe3RoaXMuc3Vic2NyaWJlcnMuY2xlYXIoKTt9b25LZXlwcmVzcyh1LEYpe2lmKHRoaXMuc3RhdGU9PT1cImVycm9yXCImJih0aGlzLnN0YXRlPVwiYWN0aXZlXCIpLEY/Lm5hbWUmJiF0aGlzLl90cmFjayYmVi5oYXMoRi5uYW1lKSYmdGhpcy5lbWl0KFwiY3Vyc29yXCIsVi5nZXQoRi5uYW1lKSksRj8ubmFtZSYmdEQuaGFzKEYubmFtZSkmJnRoaXMuZW1pdChcImN1cnNvclwiLEYubmFtZSksdSYmKHUudG9Mb3dlckNhc2UoKT09PVwieVwifHx1LnRvTG93ZXJDYXNlKCk9PT1cIm5cIikmJnRoaXMuZW1pdChcImNvbmZpcm1cIix1LnRvTG93ZXJDYXNlKCk9PT1cInlcIiksdSYmdGhpcy5lbWl0KFwia2V5XCIsdS50b0xvd2VyQ2FzZSgpKSxGPy5uYW1lPT09XCJyZXR1cm5cIil7aWYodGhpcy5vcHRzLnZhbGlkYXRlKXtjb25zdCBlPXRoaXMub3B0cy52YWxpZGF0ZSh0aGlzLnZhbHVlKTtlJiYodGhpcy5lcnJvcj1lLHRoaXMuc3RhdGU9XCJlcnJvclwiLHRoaXMucmwud3JpdGUodGhpcy52YWx1ZSkpO310aGlzLnN0YXRlIT09XCJlcnJvclwiJiYodGhpcy5zdGF0ZT1cInN1Ym1pdFwiKTt9dT09PVwiXHUwMDAzXCImJih0aGlzLnN0YXRlPVwiY2FuY2VsXCIpLCh0aGlzLnN0YXRlPT09XCJzdWJtaXRcInx8dGhpcy5zdGF0ZT09PVwiY2FuY2VsXCIpJiZ0aGlzLmVtaXQoXCJmaW5hbGl6ZVwiKSx0aGlzLnJlbmRlcigpLCh0aGlzLnN0YXRlPT09XCJzdWJtaXRcInx8dGhpcy5zdGF0ZT09PVwiY2FuY2VsXCIpJiZ0aGlzLmNsb3NlKCk7fWNsb3NlKCl7dGhpcy5pbnB1dC51bnBpcGUoKSx0aGlzLmlucHV0LnJlbW92ZUxpc3RlbmVyKFwia2V5cHJlc3NcIix0aGlzLm9uS2V5cHJlc3MpLHRoaXMub3V0cHV0LndyaXRlKGBcbmApLGcodGhpcy5pbnB1dCwhMSksdGhpcy5ybC5jbG9zZSgpLHRoaXMuZW1pdChgJHt0aGlzLnN0YXRlfWAsdGhpcy52YWx1ZSksdGhpcy51bnN1YnNjcmliZSgpO31yZXN0b3JlQ3Vyc29yKCl7Y29uc3QgdT1QKHRoaXMuX3ByZXZGcmFtZSxwcm9jZXNzLnN0ZG91dC5jb2x1bW5zLHtoYXJkOiEwfSkuc3BsaXQoYFxuYCkubGVuZ3RoLTE7dGhpcy5vdXRwdXQud3JpdGUoc3JjLmN1cnNvci5tb3ZlKC05OTksdSotMSkpO31yZW5kZXIoKXtjb25zdCB1PVAodGhpcy5fcmVuZGVyKHRoaXMpPz9cIlwiLHByb2Nlc3Muc3Rkb3V0LmNvbHVtbnMse2hhcmQ6ITB9KTtpZih1IT09dGhpcy5fcHJldkZyYW1lKXtpZih0aGlzLnN0YXRlPT09XCJpbml0aWFsXCIpdGhpcy5vdXRwdXQud3JpdGUoc3JjLmN1cnNvci5oaWRlKTtlbHNlIHtjb25zdCBGPUZEKHRoaXMuX3ByZXZGcmFtZSx1KTtpZih0aGlzLnJlc3RvcmVDdXJzb3IoKSxGJiZGPy5sZW5ndGg9PT0xKXtjb25zdCBlPUZbMF07dGhpcy5vdXRwdXQud3JpdGUoc3JjLmN1cnNvci5tb3ZlKDAsZSkpLHRoaXMub3V0cHV0LndyaXRlKHNyYy5lcmFzZS5saW5lcygxKSk7Y29uc3Qgcz11LnNwbGl0KGBcbmApO3RoaXMub3V0cHV0LndyaXRlKHNbZV0pLHRoaXMuX3ByZXZGcmFtZT11LHRoaXMub3V0cHV0LndyaXRlKHNyYy5jdXJzb3IubW92ZSgwLHMubGVuZ3RoLWUtMSkpO3JldHVybn1lbHNlIGlmKEYmJkY/Lmxlbmd0aD4xKXtjb25zdCBlPUZbMF07dGhpcy5vdXRwdXQud3JpdGUoc3JjLmN1cnNvci5tb3ZlKDAsZSkpLHRoaXMub3V0cHV0LndyaXRlKHNyYy5lcmFzZS5kb3duKCkpO2NvbnN0IEM9dS5zcGxpdChgXG5gKS5zbGljZShlKTt0aGlzLm91dHB1dC53cml0ZShDLmpvaW4oYFxuYCkpLHRoaXMuX3ByZXZGcmFtZT11O3JldHVybn10aGlzLm91dHB1dC53cml0ZShzcmMuZXJhc2UuZG93bigpKTt9dGhpcy5vdXRwdXQud3JpdGUodSksdGhpcy5zdGF0ZT09PVwiaW5pdGlhbFwiJiYodGhpcy5zdGF0ZT1cImFjdGl2ZVwiKSx0aGlzLl9wcmV2RnJhbWU9dTt9fX1jbGFzcyBzRCBleHRlbmRzIGh7Z2V0IGN1cnNvcigpe3JldHVybiB0aGlzLnZhbHVlPzA6MX1nZXQgX3ZhbHVlKCl7cmV0dXJuIHRoaXMuY3Vyc29yPT09MH1jb25zdHJ1Y3Rvcih1KXtzdXBlcih1LCExKSx0aGlzLnZhbHVlPSEhdS5pbml0aWFsVmFsdWUsdGhpcy5vbihcInZhbHVlXCIsKCk9Pnt0aGlzLnZhbHVlPXRoaXMuX3ZhbHVlO30pLHRoaXMub24oXCJjb25maXJtXCIsRj0+e3RoaXMub3V0cHV0LndyaXRlKHNyYy5jdXJzb3IubW92ZSgwLC0xKSksdGhpcy52YWx1ZT1GLHRoaXMuc3RhdGU9XCJzdWJtaXRcIix0aGlzLmNsb3NlKCk7fSksdGhpcy5vbihcImN1cnNvclwiLCgpPT57dGhpcy52YWx1ZT0hdGhpcy52YWx1ZTt9KTt9fWNsYXNzIGlEIGV4dGVuZHMgaHtjb25zdHJ1Y3Rvcih1KXtzdXBlcih1LCExKSx0aGlzLmN1cnNvcj0wLHRoaXMub3B0aW9ucz11Lm9wdGlvbnMsdGhpcy52YWx1ZT1bLi4udS5pbml0aWFsVmFsdWVzPz9bXV0sdGhpcy5jdXJzb3I9TWF0aC5tYXgodGhpcy5vcHRpb25zLmZpbmRJbmRleCgoe3ZhbHVlOkZ9KT0+Rj09PXUuY3Vyc29yQXQpLDApLHRoaXMub24oXCJrZXlcIixGPT57Rj09PVwiYVwiJiZ0aGlzLnRvZ2dsZUFsbCgpO30pLHRoaXMub24oXCJjdXJzb3JcIixGPT57c3dpdGNoKEYpe2Nhc2VcImxlZnRcIjpjYXNlXCJ1cFwiOnRoaXMuY3Vyc29yPXRoaXMuY3Vyc29yPT09MD90aGlzLm9wdGlvbnMubGVuZ3RoLTE6dGhpcy5jdXJzb3ItMTticmVhaztjYXNlXCJkb3duXCI6Y2FzZVwicmlnaHRcIjp0aGlzLmN1cnNvcj10aGlzLmN1cnNvcj09PXRoaXMub3B0aW9ucy5sZW5ndGgtMT8wOnRoaXMuY3Vyc29yKzE7YnJlYWs7Y2FzZVwic3BhY2VcIjp0aGlzLnRvZ2dsZVZhbHVlKCk7YnJlYWt9fSk7fWdldCBfdmFsdWUoKXtyZXR1cm4gdGhpcy5vcHRpb25zW3RoaXMuY3Vyc29yXS52YWx1ZX10b2dnbGVBbGwoKXtjb25zdCB1PXRoaXMudmFsdWUubGVuZ3RoPT09dGhpcy5vcHRpb25zLmxlbmd0aDt0aGlzLnZhbHVlPXU/W106dGhpcy5vcHRpb25zLm1hcChGPT5GLnZhbHVlKTt9dG9nZ2xlVmFsdWUoKXtjb25zdCB1PXRoaXMudmFsdWUuaW5jbHVkZXModGhpcy5fdmFsdWUpO3RoaXMudmFsdWU9dT90aGlzLnZhbHVlLmZpbHRlcihGPT5GIT09dGhpcy5fdmFsdWUpOlsuLi50aGlzLnZhbHVlLHRoaXMuX3ZhbHVlXTt9fWNsYXNzIEVEIGV4dGVuZHMgaHtjb25zdHJ1Y3Rvcih1KXtzdXBlcih1LCExKSx0aGlzLmN1cnNvcj0wLHRoaXMub3B0aW9ucz11Lm9wdGlvbnMsdGhpcy5jdXJzb3I9dGhpcy5vcHRpb25zLmZpbmRJbmRleCgoe3ZhbHVlOkZ9KT0+Rj09PXUuaW5pdGlhbFZhbHVlKSx0aGlzLmN1cnNvcj09PS0xJiYodGhpcy5jdXJzb3I9MCksdGhpcy5jaGFuZ2VWYWx1ZSgpLHRoaXMub24oXCJjdXJzb3JcIixGPT57c3dpdGNoKEYpe2Nhc2VcImxlZnRcIjpjYXNlXCJ1cFwiOnRoaXMuY3Vyc29yPXRoaXMuY3Vyc29yPT09MD90aGlzLm9wdGlvbnMubGVuZ3RoLTE6dGhpcy5jdXJzb3ItMTticmVhaztjYXNlXCJkb3duXCI6Y2FzZVwicmlnaHRcIjp0aGlzLmN1cnNvcj10aGlzLmN1cnNvcj09PXRoaXMub3B0aW9ucy5sZW5ndGgtMT8wOnRoaXMuY3Vyc29yKzE7YnJlYWt9dGhpcy5jaGFuZ2VWYWx1ZSgpO30pO31nZXQgX3ZhbHVlKCl7cmV0dXJuIHRoaXMub3B0aW9uc1t0aGlzLmN1cnNvcl19Y2hhbmdlVmFsdWUoKXt0aGlzLnZhbHVlPXRoaXMuX3ZhbHVlLnZhbHVlO319Y2xhc3Mgb0QgZXh0ZW5kcyBoe2NvbnN0cnVjdG9yKHUpe3N1cGVyKHUpLHRoaXMudmFsdWVXaXRoQ3Vyc29yPVwiXCIsdGhpcy5vbihcImZpbmFsaXplXCIsKCk9Pnt0aGlzLnZhbHVlfHwodGhpcy52YWx1ZT11LmRlZmF1bHRWYWx1ZSksdGhpcy52YWx1ZVdpdGhDdXJzb3I9dGhpcy52YWx1ZTt9KSx0aGlzLm9uKFwidmFsdWVcIiwoKT0+e2lmKHRoaXMuY3Vyc29yPj10aGlzLnZhbHVlLmxlbmd0aCl0aGlzLnZhbHVlV2l0aEN1cnNvcj1gJHt0aGlzLnZhbHVlfSR7bC5pbnZlcnNlKGwuaGlkZGVuKFwiX1wiKSl9YDtlbHNlIHtjb25zdCBGPXRoaXMudmFsdWUuc2xpY2UoMCx0aGlzLmN1cnNvciksZT10aGlzLnZhbHVlLnNsaWNlKHRoaXMuY3Vyc29yKTt0aGlzLnZhbHVlV2l0aEN1cnNvcj1gJHtGfSR7bC5pbnZlcnNlKGVbMF0pfSR7ZS5zbGljZSgxKX1gO319KTt9Z2V0IGN1cnNvcigpe3JldHVybiB0aGlzLl9jdXJzb3J9fVxuXG5jb25zdCB1bmljb2RlID0gaXNVbmljb2RlU3VwcG9ydGVkKCk7XG5jb25zdCBzID0gKGMsIGZhbGxiYWNrKSA9PiB1bmljb2RlID8gYyA6IGZhbGxiYWNrO1xuY29uc3QgU19TVEVQX0FDVElWRSA9IHMoXCJcXHUyNzZGXCIsIFwiPlwiKTtcbmNvbnN0IFNfU1RFUF9DQU5DRUwgPSBzKFwiXFx1MjVBMFwiLCBcInhcIik7XG5jb25zdCBTX1NURVBfRVJST1IgPSBzKFwiXFx1MjVCMlwiLCBcInhcIik7XG5jb25zdCBTX1NURVBfU1VCTUlUID0gcyhcIlxcdTI3MTRcIiwgXCJcXHUyMjFBXCIpO1xuY29uc3QgU19CQVIgPSBcIlwiO1xuY29uc3QgU19CQVJfRU5EID0gXCJcIjtcbmNvbnN0IFNfUkFESU9fQUNUSVZFID0gcyhcIlxcdTI1Q0ZcIiwgXCI+XCIpO1xuY29uc3QgU19SQURJT19JTkFDVElWRSA9IHMoXCJcXHUyNUNCXCIsIFwiIFwiKTtcbmNvbnN0IFNfQ0hFQ0tCT1hfQUNUSVZFID0gcyhcIlxcdTI1RkJcIiwgXCJbXFx1MjAyMl1cIik7XG5jb25zdCBTX0NIRUNLQk9YX1NFTEVDVEVEID0gcyhcIlxcdTI1RkNcIiwgXCJbK11cIik7XG5jb25zdCBTX0NIRUNLQk9YX0lOQUNUSVZFID0gcyhcIlxcdTI1RkJcIiwgXCJbIF1cIik7XG5jb25zdCBzeW1ib2wgPSAoc3RhdGUpID0+IHtcbiAgc3dpdGNoIChzdGF0ZSkge1xuICAgIGNhc2UgXCJpbml0aWFsXCI6XG4gICAgY2FzZSBcImFjdGl2ZVwiOiB7XG4gICAgICByZXR1cm4gY29sb3JzLmN5YW4oU19TVEVQX0FDVElWRSk7XG4gICAgfVxuICAgIGNhc2UgXCJjYW5jZWxcIjoge1xuICAgICAgcmV0dXJuIGNvbG9ycy5yZWQoU19TVEVQX0NBTkNFTCk7XG4gICAgfVxuICAgIGNhc2UgXCJlcnJvclwiOiB7XG4gICAgICByZXR1cm4gY29sb3JzLnllbGxvdyhTX1NURVBfRVJST1IpO1xuICAgIH1cbiAgICBjYXNlIFwic3VibWl0XCI6IHtcbiAgICAgIHJldHVybiBjb2xvcnMuZ3JlZW4oU19TVEVQX1NVQk1JVCk7XG4gICAgfVxuICB9XG59O1xuY29uc3QgdGV4dCA9IChvcHRzKSA9PiB7XG4gIHJldHVybiBuZXcgb0Qoe1xuICAgIHZhbGlkYXRlOiBvcHRzLnZhbGlkYXRlLFxuICAgIHBsYWNlaG9sZGVyOiBvcHRzLnBsYWNlaG9sZGVyLFxuICAgIGRlZmF1bHRWYWx1ZTogb3B0cy5kZWZhdWx0VmFsdWUsXG4gICAgaW5pdGlhbFZhbHVlOiBvcHRzLmluaXRpYWxWYWx1ZSxcbiAgICByZW5kZXIoKSB7XG4gICAgICBjb25zdCB0aXRsZSA9IGAke2NvbG9ycy5ncmF5KFNfQkFSKX1cbiR7c3ltYm9sKHRoaXMuc3RhdGUpfSAke29wdHMubWVzc2FnZX1cbmA7XG4gICAgICBjb25zdCBwbGFjZWhvbGRlciA9IG9wdHMucGxhY2Vob2xkZXIgPyBjb2xvcnMuaW52ZXJzZShvcHRzLnBsYWNlaG9sZGVyWzBdKSArIGNvbG9ycy5kaW0ob3B0cy5wbGFjZWhvbGRlci5zbGljZSgxKSkgOiBjb2xvcnMuaW52ZXJzZShjb2xvcnMuaGlkZGVuKFwiX1wiKSk7XG4gICAgICBjb25zdCB2YWx1ZSA9IHRoaXMudmFsdWUgPyB0aGlzLnZhbHVlV2l0aEN1cnNvciA6IHBsYWNlaG9sZGVyO1xuICAgICAgc3dpdGNoICh0aGlzLnN0YXRlKSB7XG4gICAgICAgIGNhc2UgXCJlcnJvclwiOiB7XG4gICAgICAgICAgcmV0dXJuIGAke3RpdGxlLnRyaW0oKX1cbiR7Y29sb3JzLnllbGxvdyhcbiAgICAgICAgICAgIFNfQkFSXG4gICAgICAgICAgKX0gJHt2YWx1ZX1cbiR7Y29sb3JzLnllbGxvdyhTX0JBUl9FTkQpfSAke2NvbG9ycy55ZWxsb3coXG4gICAgICAgICAgICB0aGlzLmVycm9yXG4gICAgICAgICAgKX1cbmA7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBcInN1Ym1pdFwiOiB7XG4gICAgICAgICAgcmV0dXJuIGAke3RpdGxlfSR7Y29sb3JzLmdyYXkoU19CQVIpfSAke2NvbG9ycy5kaW0oXG4gICAgICAgICAgICB0aGlzLnZhbHVlIHx8IG9wdHMucGxhY2Vob2xkZXJcbiAgICAgICAgICApfWA7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBcImNhbmNlbFwiOiB7XG4gICAgICAgICAgcmV0dXJuIGAke3RpdGxlfSR7Y29sb3JzLmdyYXkoU19CQVIpfSAke2NvbG9ycy5zdHJpa2V0aHJvdWdoKFxuICAgICAgICAgICAgY29sb3JzLmRpbSh0aGlzLnZhbHVlID8/IFwiXCIpXG4gICAgICAgICAgKX0ke3RoaXMudmFsdWU/LnRyaW0oKSA/IFwiXFxuXCIgKyBjb2xvcnMuZ3JheShTX0JBUikgOiBcIlwifWA7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgIHJldHVybiBgJHt0aXRsZX0ke2NvbG9ycy5jeWFuKFNfQkFSKX0gJHt2YWx1ZX1cbiR7Y29sb3JzLmN5YW4oXG4gICAgICAgICAgICBTX0JBUl9FTkRcbiAgICAgICAgICApfVxuYDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSkucHJvbXB0KCk7XG59O1xuY29uc3QgY29uZmlybSA9IChvcHRzKSA9PiB7XG4gIGNvbnN0IGFjdGl2ZSA9IG9wdHMuYWN0aXZlID8/IFwiWWVzXCI7XG4gIGNvbnN0IGluYWN0aXZlID0gb3B0cy5pbmFjdGl2ZSA/PyBcIk5vXCI7XG4gIHJldHVybiBuZXcgc0Qoe1xuICAgIGFjdGl2ZSxcbiAgICBpbmFjdGl2ZSxcbiAgICBpbml0aWFsVmFsdWU6IG9wdHMuaW5pdGlhbFZhbHVlID8/IHRydWUsXG4gICAgcmVuZGVyKCkge1xuICAgICAgY29uc3QgdGl0bGUgPSBgJHtjb2xvcnMuZ3JheShTX0JBUil9XG4ke3N5bWJvbCh0aGlzLnN0YXRlKX0gJHtvcHRzLm1lc3NhZ2V9XG5gO1xuICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnZhbHVlID8gYWN0aXZlIDogaW5hY3RpdmU7XG4gICAgICBzd2l0Y2ggKHRoaXMuc3RhdGUpIHtcbiAgICAgICAgY2FzZSBcInN1Ym1pdFwiOiB7XG4gICAgICAgICAgcmV0dXJuIGAke3RpdGxlfSR7Y29sb3JzLmdyYXkoU19CQVIpfSAke2NvbG9ycy5kaW0odmFsdWUpfWA7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBcImNhbmNlbFwiOiB7XG4gICAgICAgICAgcmV0dXJuIGAke3RpdGxlfSR7Y29sb3JzLmdyYXkoU19CQVIpfSAke2NvbG9ycy5zdHJpa2V0aHJvdWdoKFxuICAgICAgICAgICAgY29sb3JzLmRpbSh2YWx1ZSlcbiAgICAgICAgICApfVxuJHtjb2xvcnMuZ3JheShTX0JBUil9YDtcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgcmV0dXJuIGAke3RpdGxlfSR7Y29sb3JzLmN5YW4oU19CQVIpfSAke3RoaXMudmFsdWUgPyBgJHtjb2xvcnMuZ3JlZW4oU19SQURJT19BQ1RJVkUpfSAke2FjdGl2ZX1gIDogYCR7Y29sb3JzLmRpbShTX1JBRElPX0lOQUNUSVZFKX0gJHtjb2xvcnMuZGltKGFjdGl2ZSl9YH0gJHtjb2xvcnMuZGltKFwiL1wiKX0gJHt0aGlzLnZhbHVlID8gYCR7Y29sb3JzLmRpbShTX1JBRElPX0lOQUNUSVZFKX0gJHtjb2xvcnMuZGltKGluYWN0aXZlKX1gIDogYCR7Y29sb3JzLmdyZWVuKFNfUkFESU9fQUNUSVZFKX0gJHtpbmFjdGl2ZX1gfVxuJHtjb2xvcnMuY3lhbihTX0JBUl9FTkQpfVxuYDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSkucHJvbXB0KCk7XG59O1xuY29uc3Qgc2VsZWN0ID0gKG9wdHMpID0+IHtcbiAgY29uc3Qgb3B0ID0gKG9wdGlvbiwgc3RhdGUpID0+IHtcbiAgICBjb25zdCBsYWJlbCA9IG9wdGlvbi5sYWJlbCA/PyBTdHJpbmcob3B0aW9uLnZhbHVlKTtcbiAgICBzd2l0Y2ggKHN0YXRlKSB7XG4gICAgICBjYXNlIFwiYWN0aXZlXCI6IHtcbiAgICAgICAgcmV0dXJuIGAke2NvbG9ycy5ncmVlbihTX1JBRElPX0FDVElWRSl9ICR7bGFiZWx9ICR7b3B0aW9uLmhpbnQgPyBjb2xvcnMuZGltKGAoJHtvcHRpb24uaGludH0pYCkgOiBcIlwifWA7XG4gICAgICB9XG4gICAgICBjYXNlIFwic2VsZWN0ZWRcIjoge1xuICAgICAgICByZXR1cm4gYCR7Y29sb3JzLmRpbShsYWJlbCl9YDtcbiAgICAgIH1cbiAgICAgIGNhc2UgXCJjYW5jZWxsZWRcIjoge1xuICAgICAgICByZXR1cm4gYCR7Y29sb3JzLnN0cmlrZXRocm91Z2goY29sb3JzLmRpbShsYWJlbCkpfWA7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBgJHtjb2xvcnMuZGltKFNfUkFESU9fSU5BQ1RJVkUpfSAke2NvbG9ycy5kaW0obGFiZWwpfWA7XG4gIH07XG4gIHJldHVybiBuZXcgRUQoe1xuICAgIG9wdGlvbnM6IG9wdHMub3B0aW9ucyxcbiAgICBpbml0aWFsVmFsdWU6IG9wdHMuaW5pdGlhbFZhbHVlLFxuICAgIHJlbmRlcigpIHtcbiAgICAgIGNvbnN0IHRpdGxlID0gYCR7Y29sb3JzLmdyYXkoU19CQVIpfVxuJHtzeW1ib2wodGhpcy5zdGF0ZSl9ICR7b3B0cy5tZXNzYWdlfVxuYDtcbiAgICAgIHN3aXRjaCAodGhpcy5zdGF0ZSkge1xuICAgICAgICBjYXNlIFwic3VibWl0XCI6IHtcbiAgICAgICAgICByZXR1cm4gYCR7dGl0bGV9JHtjb2xvcnMuZ3JheShTX0JBUil9ICR7b3B0KFxuICAgICAgICAgICAgdGhpcy5vcHRpb25zW3RoaXMuY3Vyc29yXSxcbiAgICAgICAgICAgIFwic2VsZWN0ZWRcIlxuICAgICAgICAgICl9YDtcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFwiY2FuY2VsXCI6IHtcbiAgICAgICAgICByZXR1cm4gYCR7dGl0bGV9JHtjb2xvcnMuZ3JheShTX0JBUil9ICR7b3B0KFxuICAgICAgICAgICAgdGhpcy5vcHRpb25zW3RoaXMuY3Vyc29yXSxcbiAgICAgICAgICAgIFwiY2FuY2VsbGVkXCJcbiAgICAgICAgICApfVxuJHtjb2xvcnMuZ3JheShTX0JBUil9YDtcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgcmV0dXJuIGAke3RpdGxlfSR7Y29sb3JzLmN5YW4oU19CQVIpfSAke3RoaXMub3B0aW9ucy5tYXAoXG4gICAgICAgICAgICAob3B0aW9uLCBpKSA9PiBvcHQob3B0aW9uLCBpID09PSB0aGlzLmN1cnNvciA/IFwiYWN0aXZlXCIgOiBcImluYWN0aXZlXCIpXG4gICAgICAgICAgKS5qb2luKGBcbiR7Y29sb3JzLmN5YW4oU19CQVIpfSAgYCl9XG4ke2NvbG9ycy5jeWFuKFNfQkFSX0VORCl9XG5gO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9KS5wcm9tcHQoKTtcbn07XG5jb25zdCBtdWx0aXNlbGVjdCA9IChvcHRzKSA9PiB7XG4gIGNvbnN0IG9wdCA9IChvcHRpb24sIHN0YXRlKSA9PiB7XG4gICAgY29uc3QgbGFiZWwgPSBvcHRpb24ubGFiZWwgPz8gU3RyaW5nKG9wdGlvbi52YWx1ZSk7XG4gICAgc3dpdGNoIChzdGF0ZSkge1xuICAgICAgY2FzZSBcImFjdGl2ZVwiOiB7XG4gICAgICAgIHJldHVybiBgJHtjb2xvcnMuY3lhbihTX0NIRUNLQk9YX0FDVElWRSl9ICR7bGFiZWx9ICR7b3B0aW9uLmhpbnQgPyBjb2xvcnMuZGltKGAoJHtvcHRpb24uaGludH0pYCkgOiBcIlwifWA7XG4gICAgICB9XG4gICAgICBjYXNlIFwic2VsZWN0ZWRcIjoge1xuICAgICAgICByZXR1cm4gYCR7Y29sb3JzLmdyZWVuKFNfQ0hFQ0tCT1hfU0VMRUNURUQpfSAke2NvbG9ycy5kaW0obGFiZWwpfWA7XG4gICAgICB9XG4gICAgICBjYXNlIFwiY2FuY2VsbGVkXCI6IHtcbiAgICAgICAgcmV0dXJuIGAke2NvbG9ycy5zdHJpa2V0aHJvdWdoKGNvbG9ycy5kaW0obGFiZWwpKX1gO1xuICAgICAgfVxuICAgICAgY2FzZSBcImFjdGl2ZS1zZWxlY3RlZFwiOiB7XG4gICAgICAgIHJldHVybiBgJHtjb2xvcnMuZ3JlZW4oU19DSEVDS0JPWF9TRUxFQ1RFRCl9ICR7bGFiZWx9ICR7b3B0aW9uLmhpbnQgPyBjb2xvcnMuZGltKGAoJHtvcHRpb24uaGludH0pYCkgOiBcIlwifWA7XG4gICAgICB9XG4gICAgICBjYXNlIFwic3VibWl0dGVkXCI6IHtcbiAgICAgICAgcmV0dXJuIGAke2NvbG9ycy5kaW0obGFiZWwpfWA7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBgJHtjb2xvcnMuZGltKFNfQ0hFQ0tCT1hfSU5BQ1RJVkUpfSAke2NvbG9ycy5kaW0obGFiZWwpfWA7XG4gIH07XG4gIHJldHVybiBuZXcgaUQoe1xuICAgIG9wdGlvbnM6IG9wdHMub3B0aW9ucyxcbiAgICBpbml0aWFsVmFsdWVzOiBvcHRzLmluaXRpYWxWYWx1ZXMsXG4gICAgcmVxdWlyZWQ6IG9wdHMucmVxdWlyZWQgPz8gdHJ1ZSxcbiAgICBjdXJzb3JBdDogb3B0cy5jdXJzb3JBdCxcbiAgICB2YWxpZGF0ZShzZWxlY3RlZCkge1xuICAgICAgaWYgKHRoaXMucmVxdWlyZWQgJiYgc2VsZWN0ZWQubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiBgUGxlYXNlIHNlbGVjdCBhdCBsZWFzdCBvbmUgb3B0aW9uLlxuJHtjb2xvcnMucmVzZXQoXG4gICAgICAgICAgY29sb3JzLmRpbShcbiAgICAgICAgICAgIGBQcmVzcyAke2NvbG9ycy5ncmF5KFxuICAgICAgICAgICAgICBjb2xvcnMuYmdXaGl0ZShjb2xvcnMuaW52ZXJzZShcIiBzcGFjZSBcIikpXG4gICAgICAgICAgICApfSB0byBzZWxlY3QsICR7Y29sb3JzLmdyYXkoXG4gICAgICAgICAgICAgIGNvbG9ycy5iZ1doaXRlKGNvbG9ycy5pbnZlcnNlKFwiIGVudGVyIFwiKSlcbiAgICAgICAgICAgICl9IHRvIHN1Ym1pdGBcbiAgICAgICAgICApXG4gICAgICAgICl9YDtcbiAgICAgIH1cbiAgICB9LFxuICAgIHJlbmRlcigpIHtcbiAgICAgIGNvbnN0IHRpdGxlID0gYCR7Y29sb3JzLmdyYXkoU19CQVIpfVxuJHtzeW1ib2wodGhpcy5zdGF0ZSl9ICR7b3B0cy5tZXNzYWdlfVxuYDtcbiAgICAgIHN3aXRjaCAodGhpcy5zdGF0ZSkge1xuICAgICAgICBjYXNlIFwic3VibWl0XCI6IHtcbiAgICAgICAgICByZXR1cm4gYCR7dGl0bGV9JHtjb2xvcnMuZ3JheShTX0JBUil9ICR7dGhpcy5vcHRpb25zLmZpbHRlcigoeyB2YWx1ZSB9KSA9PiB0aGlzLnZhbHVlLmluY2x1ZGVzKHZhbHVlKSkubWFwKChvcHRpb24pID0+IG9wdChvcHRpb24sIFwic3VibWl0dGVkXCIpKS5qb2luKGNvbG9ycy5kaW0oXCIsIFwiKSkgfHwgY29sb3JzLmRpbShcIm5vbmVcIil9YDtcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFwiY2FuY2VsXCI6IHtcbiAgICAgICAgICBjb25zdCBsYWJlbCA9IHRoaXMub3B0aW9ucy5maWx0ZXIoKHsgdmFsdWUgfSkgPT4gdGhpcy52YWx1ZS5pbmNsdWRlcyh2YWx1ZSkpLm1hcCgob3B0aW9uKSA9PiBvcHQob3B0aW9uLCBcImNhbmNlbGxlZFwiKSkuam9pbihjb2xvcnMuZGltKFwiLCBcIikpO1xuICAgICAgICAgIHJldHVybiBgJHt0aXRsZX0ke2NvbG9ycy5ncmF5KFNfQkFSKX0gJHtsYWJlbC50cmltKCkgPyBgJHtsYWJlbH1cbiR7Y29sb3JzLmdyYXkoU19CQVIpfWAgOiBcIlwifWA7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBcImVycm9yXCI6IHtcbiAgICAgICAgICBjb25zdCBmb290ZXIgPSB0aGlzLmVycm9yLnNwbGl0KFwiXFxuXCIpLm1hcChcbiAgICAgICAgICAgIChsbiwgaSkgPT4gaSA9PT0gMCA/IGAke2NvbG9ycy55ZWxsb3coU19CQVJfRU5EKX0gJHtjb2xvcnMueWVsbG93KGxuKX1gIDogYCAgICR7bG59YFxuICAgICAgICAgICkuam9pbihcIlxcblwiKTtcbiAgICAgICAgICByZXR1cm4gdGl0bGUgKyBjb2xvcnMueWVsbG93KFNfQkFSKSArIFwiICBcIiArIHRoaXMub3B0aW9ucy5tYXAoKG9wdGlvbiwgaSkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLnZhbHVlLmluY2x1ZGVzKG9wdGlvbi52YWx1ZSk7XG4gICAgICAgICAgICBjb25zdCBhY3RpdmUgPSBpID09PSB0aGlzLmN1cnNvcjtcbiAgICAgICAgICAgIGlmIChhY3RpdmUgJiYgc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG9wdChvcHRpb24sIFwiYWN0aXZlLXNlbGVjdGVkXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHNlbGVjdGVkKSB7XG4gICAgICAgICAgICAgIHJldHVybiBvcHQob3B0aW9uLCBcInNlbGVjdGVkXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG9wdChvcHRpb24sIGFjdGl2ZSA/IFwiYWN0aXZlXCIgOiBcImluYWN0aXZlXCIpO1xuICAgICAgICAgIH0pLmpvaW4oYFxuJHtjb2xvcnMueWVsbG93KFNfQkFSKX0gIGApICsgXCJcXG5cIiArIGZvb3RlciArIFwiXFxuXCI7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgIHJldHVybiBgJHt0aXRsZX0ke2NvbG9ycy5jeWFuKFNfQkFSKX0gJHt0aGlzLm9wdGlvbnMubWFwKChvcHRpb24sIGkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy52YWx1ZS5pbmNsdWRlcyhvcHRpb24udmFsdWUpO1xuICAgICAgICAgICAgY29uc3QgYWN0aXZlID0gaSA9PT0gdGhpcy5jdXJzb3I7XG4gICAgICAgICAgICBpZiAoYWN0aXZlICYmIHNlbGVjdGVkKSB7XG4gICAgICAgICAgICAgIHJldHVybiBvcHQob3B0aW9uLCBcImFjdGl2ZS1zZWxlY3RlZFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzZWxlY3RlZCkge1xuICAgICAgICAgICAgICByZXR1cm4gb3B0KG9wdGlvbiwgXCJzZWxlY3RlZFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBvcHQob3B0aW9uLCBhY3RpdmUgPyBcImFjdGl2ZVwiIDogXCJpbmFjdGl2ZVwiKTtcbiAgICAgICAgICB9KS5qb2luKGBcbiR7Y29sb3JzLmN5YW4oU19CQVIpfSAgYCl9XG4ke2NvbG9ycy5jeWFuKFNfQkFSX0VORCl9XG5gO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9KS5wcm9tcHQoKTtcbn07XG5cbmFzeW5jIGZ1bmN0aW9uIHByb21wdChtZXNzYWdlLCBvcHRzID0ge30pIHtcbiAgaWYgKCFvcHRzLnR5cGUgfHwgb3B0cy50eXBlID09PSBcInRleHRcIikge1xuICAgIHJldHVybiBhd2FpdCB0ZXh0KHtcbiAgICAgIG1lc3NhZ2UsXG4gICAgICBkZWZhdWx0VmFsdWU6IG9wdHMuZGVmYXVsdCxcbiAgICAgIHBsYWNlaG9sZGVyOiBvcHRzLnBsYWNlaG9sZGVyLFxuICAgICAgaW5pdGlhbFZhbHVlOiBvcHRzLmluaXRpYWxcbiAgICB9KTtcbiAgfVxuICBpZiAob3B0cy50eXBlID09PSBcImNvbmZpcm1cIikge1xuICAgIHJldHVybiBhd2FpdCBjb25maXJtKHtcbiAgICAgIG1lc3NhZ2UsXG4gICAgICBpbml0aWFsVmFsdWU6IG9wdHMuaW5pdGlhbFxuICAgIH0pO1xuICB9XG4gIGlmIChvcHRzLnR5cGUgPT09IFwic2VsZWN0XCIpIHtcbiAgICByZXR1cm4gYXdhaXQgc2VsZWN0KHtcbiAgICAgIG1lc3NhZ2UsXG4gICAgICBvcHRpb25zOiBvcHRzLm9wdGlvbnMubWFwKFxuICAgICAgICAobykgPT4gdHlwZW9mIG8gPT09IFwic3RyaW5nXCIgPyB7IHZhbHVlOiBvLCBsYWJlbDogbyB9IDogb1xuICAgICAgKVxuICAgIH0pO1xuICB9XG4gIGlmIChvcHRzLnR5cGUgPT09IFwibXVsdGlzZWxlY3RcIikge1xuICAgIHJldHVybiBhd2FpdCBtdWx0aXNlbGVjdCh7XG4gICAgICBtZXNzYWdlLFxuICAgICAgb3B0aW9uczogb3B0cy5vcHRpb25zLm1hcChcbiAgICAgICAgKG8pID0+IHR5cGVvZiBvID09PSBcInN0cmluZ1wiID8geyB2YWx1ZTogbywgbGFiZWw6IG8gfSA6IG9cbiAgICAgICksXG4gICAgICByZXF1aXJlZDogb3B0cy5yZXF1aXJlZFxuICAgIH0pO1xuICB9XG4gIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBwcm9tcHQgdHlwZTogJHtvcHRzLnR5cGV9YCk7XG59XG5cbmV4cG9ydCB7IHByb21wdCB9O1xuIiwgImltcG9ydCB7IGNyZWF0ZUNvbnNvbGEgYXMgY3JlYXRlQ29uc29sYSQxLCBMb2dMZXZlbHMgfSBmcm9tICcuLi9jb3JlLm1qcyc7XG5pbXBvcnQgeyBCIGFzIEJhc2ljUmVwb3J0ZXIsIHAgYXMgcGFyc2VTdGFjayB9IGZyb20gJy4vY29uc29sYS4wNmFkOGE2NC5tanMnO1xuaW1wb3J0IHByb2Nlc3MkMSBmcm9tICdub2RlOnByb2Nlc3MnO1xuaW1wb3J0IHsgY29sb3JzLCBib3gsIHN0cmlwQW5zaSBhcyBzdHJpcEFuc2kkMSB9IGZyb20gJy4uL3V0aWxzLm1qcyc7XG5cbmNvbnN0IHByb3ZpZGVycyA9IFtcbiAgW1wiQVBQVkVZT1JcIl0sXG4gIFtcIkFaVVJFX1BJUEVMSU5FU1wiLCBcIlNZU1RFTV9URUFNRk9VTkRBVElPTkNPTExFQ1RJT05VUklcIl0sXG4gIFtcIkFaVVJFX1NUQVRJQ1wiLCBcIklOUFVUX0FaVVJFX1NUQVRJQ19XRUJfQVBQU19BUElfVE9LRU5cIl0sXG4gIFtcIkFQUENJUkNMRVwiLCBcIkFDX0FQUENJUkNMRVwiXSxcbiAgW1wiQkFNQk9PXCIsIFwiYmFtYm9vX3BsYW5LZXlcIl0sXG4gIFtcIkJJVEJVQ0tFVFwiLCBcIkJJVEJVQ0tFVF9DT01NSVRcIl0sXG4gIFtcIkJJVFJJU0VcIiwgXCJCSVRSSVNFX0lPXCJdLFxuICBbXCJCVUREWVwiLCBcIkJVRERZX1dPUktTUEFDRV9JRFwiXSxcbiAgW1wiQlVJTERLSVRFXCJdLFxuICBbXCJDSVJDTEVcIiwgXCJDSVJDTEVDSVwiXSxcbiAgW1wiQ0lSUlVTXCIsIFwiQ0lSUlVTX0NJXCJdLFxuICBbXCJDTE9VREZMQVJFX1BBR0VTXCIsIFwiQ0ZfUEFHRVNcIiwgeyBjaTogdHJ1ZSB9XSxcbiAgW1wiQ09ERUJVSUxEXCIsIFwiQ09ERUJVSUxEX0JVSUxEX0FSTlwiXSxcbiAgW1wiQ09ERUZSRVNIXCIsIFwiQ0ZfQlVJTERfSURcIl0sXG4gIFtcIkRST05FXCJdLFxuICBbXCJEUk9ORVwiLCBcIkRST05FX0JVSUxEX0VWRU5UXCJdLFxuICBbXCJEU0FSSVwiXSxcbiAgW1wiR0lUSFVCX0FDVElPTlNcIl0sXG4gIFtcIkdJVExBQlwiLCBcIkdJVExBQl9DSVwiXSxcbiAgW1wiR0lUTEFCXCIsIFwiQ0lfTUVSR0VfUkVRVUVTVF9JRFwiXSxcbiAgW1wiR09DRFwiLCBcIkdPX1BJUEVMSU5FX0xBQkVMXCJdLFxuICBbXCJMQVlFUkNJXCJdLFxuICBbXCJIVURTT05cIiwgXCJIVURTT05fVVJMXCJdLFxuICBbXCJKRU5LSU5TXCIsIFwiSkVOS0lOU19VUkxcIl0sXG4gIFtcIk1BR05VTVwiXSxcbiAgW1wiTkVUTElGWVwiXSxcbiAgW1wiTkVUTElGWVwiLCBcIk5FVExJRllfTE9DQUxcIiwgeyBjaTogZmFsc2UgfV0sXG4gIFtcIk5FVkVSQ09ERVwiXSxcbiAgW1wiUkVOREVSXCJdLFxuICBbXCJTQUlMXCIsIFwiU0FJTENJXCJdLFxuICBbXCJTRU1BUEhPUkVcIl0sXG4gIFtcIlNDUkVXRFJJVkVSXCJdLFxuICBbXCJTSElQUEFCTEVcIl0sXG4gIFtcIlNPTEFOT1wiLCBcIlRERElVTVwiXSxcbiAgW1wiU1RSSURFUlwiXSxcbiAgW1wiVEVBTUNJVFlcIiwgXCJURUFNQ0lUWV9WRVJTSU9OXCJdLFxuICBbXCJUUkFWSVNcIl0sXG4gIFtcIlZFUkNFTFwiLCBcIk5PV19CVUlMREVSXCJdLFxuICBbXCJBUFBDRU5URVJcIiwgXCJBUFBDRU5URVJfQlVJTERfSURcIl0sXG4gIFtcIkNPREVTQU5EQk9YXCIsIFwiQ09ERVNBTkRCT1hfU1NFXCIsIHsgY2k6IGZhbHNlIH1dLFxuICBbXCJTVEFDS0JMSVRaXCJdLFxuICBbXCJTVE9STUtJVFwiXSxcbiAgW1wiQ0xFQVZSXCJdXG5dO1xuZnVuY3Rpb24gZGV0ZWN0UHJvdmlkZXIoZW52KSB7XG4gIGZvciAoY29uc3QgcHJvdmlkZXIgb2YgcHJvdmlkZXJzKSB7XG4gICAgY29uc3QgZW52TmFtZSA9IHByb3ZpZGVyWzFdIHx8IHByb3ZpZGVyWzBdO1xuICAgIGlmIChlbnZbZW52TmFtZV0pIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG5hbWU6IHByb3ZpZGVyWzBdLnRvTG93ZXJDYXNlKCksXG4gICAgICAgIC4uLnByb3ZpZGVyWzJdXG4gICAgICB9O1xuICAgIH1cbiAgfVxuICBpZiAoZW52LlNIRUxMICYmIGVudi5TSEVMTCA9PT0gXCIvYmluL2pzaFwiKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6IFwic3RhY2tibGl0elwiLFxuICAgICAgY2k6IGZhbHNlXG4gICAgfTtcbiAgfVxuICByZXR1cm4ge1xuICAgIG5hbWU6IFwiXCIsXG4gICAgY2k6IGZhbHNlXG4gIH07XG59XG5cbmNvbnN0IHByb2Nlc3NTaGltID0gdHlwZW9mIHByb2Nlc3MgIT09IFwidW5kZWZpbmVkXCIgPyBwcm9jZXNzIDoge307XG5jb25zdCBlbnZTaGltID0gcHJvY2Vzc1NoaW0uZW52IHx8IHt9O1xuY29uc3QgcHJvdmlkZXJJbmZvID0gZGV0ZWN0UHJvdmlkZXIoZW52U2hpbSk7XG5jb25zdCBub2RlRU5WID0gdHlwZW9mIHByb2Nlc3MgIT09IFwidW5kZWZpbmVkXCIgJiYgcHJvY2Vzcy5lbnYgJiYgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgfHwgXCJcIjtcbnByb2Nlc3NTaGltLnBsYXRmb3JtO1xucHJvdmlkZXJJbmZvLm5hbWU7XG5jb25zdCBpc0NJID0gdG9Cb29sZWFuKGVudlNoaW0uQ0kpIHx8IHByb3ZpZGVySW5mby5jaSAhPT0gZmFsc2U7XG5jb25zdCBoYXNUVFkgPSB0b0Jvb2xlYW4ocHJvY2Vzc1NoaW0uc3Rkb3V0ICYmIHByb2Nlc3NTaGltLnN0ZG91dC5pc1RUWSk7XG5jb25zdCBpc0RlYnVnID0gdG9Cb29sZWFuKGVudlNoaW0uREVCVUcpO1xuY29uc3QgaXNUZXN0ID0gbm9kZUVOViA9PT0gXCJ0ZXN0XCIgfHwgdG9Cb29sZWFuKGVudlNoaW0uVEVTVCk7XG50b0Jvb2xlYW4oZW52U2hpbS5NSU5JTUFMKSB8fCBpc0NJIHx8IGlzVGVzdCB8fCAhaGFzVFRZO1xuZnVuY3Rpb24gdG9Cb29sZWFuKHZhbCkge1xuICByZXR1cm4gdmFsID8gdmFsICE9PSBcImZhbHNlXCIgOiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gYW5zaVJlZ2V4KHtvbmx5Rmlyc3QgPSBmYWxzZX0gPSB7fSkge1xuXHRjb25zdCBwYXR0ZXJuID0gW1xuXHQgICAgJ1tcXFxcdTAwMUJcXFxcdTAwOUJdW1tcXFxcXSgpIzs/XSooPzooPzooPzooPzo7Wy1hLXpBLVpcXFxcZFxcXFwvIyYuOj0/JUB+X10rKSp8W2EtekEtWlxcXFxkXSsoPzo7Wy1hLXpBLVpcXFxcZFxcXFwvIyYuOj0/JUB+X10qKSopP1xcXFx1MDAwNyknLFxuXHRcdCcoPzooPzpcXFxcZHsxLDR9KD86O1xcXFxkezAsNH0pKik/W1xcXFxkQS1QUi1UWmNmLW50cXJ5PT48fl0pKSdcblx0XS5qb2luKCd8Jyk7XG5cblx0cmV0dXJuIG5ldyBSZWdFeHAocGF0dGVybiwgb25seUZpcnN0ID8gdW5kZWZpbmVkIDogJ2cnKTtcbn1cblxuY29uc3QgcmVnZXggPSBhbnNpUmVnZXgoKTtcblxuZnVuY3Rpb24gc3RyaXBBbnNpKHN0cmluZykge1xuXHRpZiAodHlwZW9mIHN0cmluZyAhPT0gJ3N0cmluZycpIHtcblx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCBhIFxcYHN0cmluZ1xcYCwgZ290IFxcYCR7dHlwZW9mIHN0cmluZ31cXGBgKTtcblx0fVxuXG5cdC8vIEV2ZW4gdGhvdWdoIHRoZSByZWdleCBpcyBnbG9iYWwsIHdlIGRvbid0IG5lZWQgdG8gcmVzZXQgdGhlIGAubGFzdEluZGV4YFxuXHQvLyBiZWNhdXNlIHVubGlrZSBgLmV4ZWMoKWAgYW5kIGAudGVzdCgpYCwgYC5yZXBsYWNlKClgIGRvZXMgaXQgYXV0b21hdGljYWxseVxuXHQvLyBhbmQgZG9pbmcgaXQgbWFudWFsbHkgaGFzIGEgcGVyZm9ybWFuY2UgcGVuYWx0eS5cblx0cmV0dXJuIHN0cmluZy5yZXBsYWNlKHJlZ2V4LCAnJyk7XG59XG5cbmZ1bmN0aW9uIGdldERlZmF1bHRFeHBvcnRGcm9tQ2pzICh4KSB7XG5cdHJldHVybiB4ICYmIHguX19lc01vZHVsZSAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoeCwgJ2RlZmF1bHQnKSA/IHhbJ2RlZmF1bHQnXSA6IHg7XG59XG5cbnZhciBlYXN0YXNpYW53aWR0aCA9IHtleHBvcnRzOiB7fX07XG5cbihmdW5jdGlvbiAobW9kdWxlKSB7XG5cdHZhciBlYXcgPSB7fTtcblxuXHR7XG5cdCAgbW9kdWxlLmV4cG9ydHMgPSBlYXc7XG5cdH1cblxuXHRlYXcuZWFzdEFzaWFuV2lkdGggPSBmdW5jdGlvbihjaGFyYWN0ZXIpIHtcblx0ICB2YXIgeCA9IGNoYXJhY3Rlci5jaGFyQ29kZUF0KDApO1xuXHQgIHZhciB5ID0gKGNoYXJhY3Rlci5sZW5ndGggPT0gMikgPyBjaGFyYWN0ZXIuY2hhckNvZGVBdCgxKSA6IDA7XG5cdCAgdmFyIGNvZGVQb2ludCA9IHg7XG5cdCAgaWYgKCgweEQ4MDAgPD0geCAmJiB4IDw9IDB4REJGRikgJiYgKDB4REMwMCA8PSB5ICYmIHkgPD0gMHhERkZGKSkge1xuXHQgICAgeCAmPSAweDNGRjtcblx0ICAgIHkgJj0gMHgzRkY7XG5cdCAgICBjb2RlUG9pbnQgPSAoeCA8PCAxMCkgfCB5O1xuXHQgICAgY29kZVBvaW50ICs9IDB4MTAwMDA7XG5cdCAgfVxuXG5cdCAgaWYgKCgweDMwMDAgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHhGRjAxIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHhGRjYwKSB8fFxuXHQgICAgICAoMHhGRkUwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHhGRkU2KSkge1xuXHQgICAgcmV0dXJuICdGJztcblx0ICB9XG5cdCAgaWYgKCgweDIwQTkgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHhGRjYxIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHhGRkJFKSB8fFxuXHQgICAgICAoMHhGRkMyIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHhGRkM3KSB8fFxuXHQgICAgICAoMHhGRkNBIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHhGRkNGKSB8fFxuXHQgICAgICAoMHhGRkQyIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHhGRkQ3KSB8fFxuXHQgICAgICAoMHhGRkRBIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHhGRkRDKSB8fFxuXHQgICAgICAoMHhGRkU4IDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHhGRkVFKSkge1xuXHQgICAgcmV0dXJuICdIJztcblx0ICB9XG5cdCAgaWYgKCgweDExMDAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDExNUYpIHx8XG5cdCAgICAgICgweDExQTMgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDExQTcpIHx8XG5cdCAgICAgICgweDExRkEgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDExRkYpIHx8XG5cdCAgICAgICgweDIzMjkgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIzMkEpIHx8XG5cdCAgICAgICgweDJFODAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDJFOTkpIHx8XG5cdCAgICAgICgweDJFOUIgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDJFRjMpIHx8XG5cdCAgICAgICgweDJGMDAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDJGRDUpIHx8XG5cdCAgICAgICgweDJGRjAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDJGRkIpIHx8XG5cdCAgICAgICgweDMwMDEgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDMwM0UpIHx8XG5cdCAgICAgICgweDMwNDEgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDMwOTYpIHx8XG5cdCAgICAgICgweDMwOTkgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDMwRkYpIHx8XG5cdCAgICAgICgweDMxMDUgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDMxMkQpIHx8XG5cdCAgICAgICgweDMxMzEgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDMxOEUpIHx8XG5cdCAgICAgICgweDMxOTAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDMxQkEpIHx8XG5cdCAgICAgICgweDMxQzAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDMxRTMpIHx8XG5cdCAgICAgICgweDMxRjAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDMyMUUpIHx8XG5cdCAgICAgICgweDMyMjAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDMyNDcpIHx8XG5cdCAgICAgICgweDMyNTAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDMyRkUpIHx8XG5cdCAgICAgICgweDMzMDAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDREQkYpIHx8XG5cdCAgICAgICgweDRFMDAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweEE0OEMpIHx8XG5cdCAgICAgICgweEE0OTAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweEE0QzYpIHx8XG5cdCAgICAgICgweEE5NjAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweEE5N0MpIHx8XG5cdCAgICAgICgweEFDMDAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweEQ3QTMpIHx8XG5cdCAgICAgICgweEQ3QjAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweEQ3QzYpIHx8XG5cdCAgICAgICgweEQ3Q0IgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweEQ3RkIpIHx8XG5cdCAgICAgICgweEY5MDAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweEZBRkYpIHx8XG5cdCAgICAgICgweEZFMTAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweEZFMTkpIHx8XG5cdCAgICAgICgweEZFMzAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweEZFNTIpIHx8XG5cdCAgICAgICgweEZFNTQgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweEZFNjYpIHx8XG5cdCAgICAgICgweEZFNjggPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweEZFNkIpIHx8XG5cdCAgICAgICgweDFCMDAwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgxQjAwMSkgfHxcblx0ICAgICAgKDB4MUYyMDAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDFGMjAyKSB8fFxuXHQgICAgICAoMHgxRjIxMCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MUYyM0EpIHx8XG5cdCAgICAgICgweDFGMjQwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgxRjI0OCkgfHxcblx0ICAgICAgKDB4MUYyNTAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDFGMjUxKSB8fFxuXHQgICAgICAoMHgyMDAwMCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MkY3M0YpIHx8XG5cdCAgICAgICgweDJCNzQwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgyRkZGRCkgfHxcblx0ICAgICAgKDB4MzAwMDAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDNGRkZEKSkge1xuXHQgICAgcmV0dXJuICdXJztcblx0ICB9XG5cdCAgaWYgKCgweDAwMjAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDAwN0UpIHx8XG5cdCAgICAgICgweDAwQTIgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDAwQTMpIHx8XG5cdCAgICAgICgweDAwQTUgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDAwQTYpIHx8XG5cdCAgICAgICgweDAwQUMgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgwMEFGID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjdFNiA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjdFRCkgfHxcblx0ICAgICAgKDB4Mjk4NSA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4Mjk4NikpIHtcblx0ICAgIHJldHVybiAnTmEnO1xuXHQgIH1cblx0ICBpZiAoKDB4MDBBMSA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDAwQTQgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgwMEE3IDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgwMEE4KSB8fFxuXHQgICAgICAoMHgwMEFBID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MDBBRCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MDBBRSkgfHxcblx0ICAgICAgKDB4MDBCMCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MDBCNCkgfHxcblx0ICAgICAgKDB4MDBCNiA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MDBCQSkgfHxcblx0ICAgICAgKDB4MDBCQyA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MDBCRikgfHxcblx0ICAgICAgKDB4MDBDNiA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDAwRDAgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgwMEQ3IDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgwMEQ4KSB8fFxuXHQgICAgICAoMHgwMERFIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgwMEUxKSB8fFxuXHQgICAgICAoMHgwMEU2ID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MDBFOCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MDBFQSkgfHxcblx0ICAgICAgKDB4MDBFQyA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MDBFRCkgfHxcblx0ICAgICAgKDB4MDBGMCA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDAwRjIgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDAwRjMpIHx8XG5cdCAgICAgICgweDAwRjcgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDAwRkEpIHx8XG5cdCAgICAgICgweDAwRkMgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgwMEZFID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MDEwMSA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDAxMTEgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgwMTEzID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MDExQiA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDAxMjYgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDAxMjcpIHx8XG5cdCAgICAgICgweDAxMkIgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgwMTMxIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgwMTMzKSB8fFxuXHQgICAgICAoMHgwMTM4ID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MDEzRiA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MDE0MikgfHxcblx0ICAgICAgKDB4MDE0NCA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDAxNDggPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDAxNEIpIHx8XG5cdCAgICAgICgweDAxNEQgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgwMTUyIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgwMTUzKSB8fFxuXHQgICAgICAoMHgwMTY2IDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgwMTY3KSB8fFxuXHQgICAgICAoMHgwMTZCID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MDFDRSA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDAxRDAgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgwMUQyID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MDFENCA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDAxRDYgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgwMUQ4ID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MDFEQSA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDAxREMgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgwMjUxID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MDI2MSA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDAyQzQgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgwMkM3ID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MDJDOSA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MDJDQikgfHxcblx0ICAgICAgKDB4MDJDRCA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDAyRDAgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgwMkQ4IDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgwMkRCKSB8fFxuXHQgICAgICAoMHgwMkREID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MDJERiA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDAzMDAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDAzNkYpIHx8XG5cdCAgICAgICgweDAzOTEgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDAzQTEpIHx8XG5cdCAgICAgICgweDAzQTMgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDAzQTkpIHx8XG5cdCAgICAgICgweDAzQjEgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDAzQzEpIHx8XG5cdCAgICAgICgweDAzQzMgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDAzQzkpIHx8XG5cdCAgICAgICgweDA0MDEgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgwNDEwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgwNDRGKSB8fFxuXHQgICAgICAoMHgwNDUxID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjAxMCA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDIwMTMgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIwMTYpIHx8XG5cdCAgICAgICgweDIwMTggPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIwMTkpIHx8XG5cdCAgICAgICgweDIwMUMgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIwMUQpIHx8XG5cdCAgICAgICgweDIwMjAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIwMjIpIHx8XG5cdCAgICAgICgweDIwMjQgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIwMjcpIHx8XG5cdCAgICAgICgweDIwMzAgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyMDMyIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgyMDMzKSB8fFxuXHQgICAgICAoMHgyMDM1ID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjAzQiA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDIwM0UgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyMDc0ID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjA3RiA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDIwODEgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIwODQpIHx8XG5cdCAgICAgICgweDIwQUMgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyMTAzID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjEwNSA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDIxMDkgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyMTEzID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjExNiA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDIxMjEgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIxMjIpIHx8XG5cdCAgICAgICgweDIxMjYgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyMTJCID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjE1MyA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjE1NCkgfHxcblx0ICAgICAgKDB4MjE1QiA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjE1RSkgfHxcblx0ICAgICAgKDB4MjE2MCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjE2QikgfHxcblx0ICAgICAgKDB4MjE3MCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjE3OSkgfHxcblx0ICAgICAgKDB4MjE4OSA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDIxOTAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIxOTkpIHx8XG5cdCAgICAgICgweDIxQjggPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIxQjkpIHx8XG5cdCAgICAgICgweDIxRDIgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyMUQ0ID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjFFNyA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDIyMDAgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyMjAyIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgyMjAzKSB8fFxuXHQgICAgICAoMHgyMjA3IDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgyMjA4KSB8fFxuXHQgICAgICAoMHgyMjBCID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjIwRiA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDIyMTEgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyMjE1ID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjIxQSA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDIyMUQgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIyMjApIHx8XG5cdCAgICAgICgweDIyMjMgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyMjI1ID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjIyNyA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjIyQykgfHxcblx0ICAgICAgKDB4MjIyRSA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDIyMzQgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIyMzcpIHx8XG5cdCAgICAgICgweDIyM0MgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIyM0QpIHx8XG5cdCAgICAgICgweDIyNDggPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyMjRDID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjI1MiA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDIyNjAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIyNjEpIHx8XG5cdCAgICAgICgweDIyNjQgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIyNjcpIHx8XG5cdCAgICAgICgweDIyNkEgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIyNkIpIHx8XG5cdCAgICAgICgweDIyNkUgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIyNkYpIHx8XG5cdCAgICAgICgweDIyODIgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIyODMpIHx8XG5cdCAgICAgICgweDIyODYgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIyODcpIHx8XG5cdCAgICAgICgweDIyOTUgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyMjk5ID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjJBNSA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDIyQkYgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyMzEyID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjQ2MCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjRFOSkgfHxcblx0ICAgICAgKDB4MjRFQiA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjU0QikgfHxcblx0ICAgICAgKDB4MjU1MCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjU3MykgfHxcblx0ICAgICAgKDB4MjU4MCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjU4RikgfHxcblx0ICAgICAgKDB4MjU5MiA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjU5NSkgfHxcblx0ICAgICAgKDB4MjVBMCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjVBMSkgfHxcblx0ICAgICAgKDB4MjVBMyA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjVBOSkgfHxcblx0ICAgICAgKDB4MjVCMiA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjVCMykgfHxcblx0ICAgICAgKDB4MjVCNiA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjVCNykgfHxcblx0ICAgICAgKDB4MjVCQyA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjVCRCkgfHxcblx0ICAgICAgKDB4MjVDMCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjVDMSkgfHxcblx0ICAgICAgKDB4MjVDNiA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjVDOCkgfHxcblx0ICAgICAgKDB4MjVDQiA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDI1Q0UgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDI1RDEpIHx8XG5cdCAgICAgICgweDI1RTIgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDI1RTUpIHx8XG5cdCAgICAgICgweDI1RUYgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyNjA1IDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgyNjA2KSB8fFxuXHQgICAgICAoMHgyNjA5ID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjYwRSA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjYwRikgfHxcblx0ICAgICAgKDB4MjYxNCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjYxNSkgfHxcblx0ICAgICAgKDB4MjYxQyA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDI2MUUgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyNjQwID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjY0MiA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDI2NjAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDI2NjEpIHx8XG5cdCAgICAgICgweDI2NjMgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDI2NjUpIHx8XG5cdCAgICAgICgweDI2NjcgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDI2NkEpIHx8XG5cdCAgICAgICgweDI2NkMgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDI2NkQpIHx8XG5cdCAgICAgICgweDI2NkYgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyNjlFIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgyNjlGKSB8fFxuXHQgICAgICAoMHgyNkJFIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgyNkJGKSB8fFxuXHQgICAgICAoMHgyNkM0IDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgyNkNEKSB8fFxuXHQgICAgICAoMHgyNkNGIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgyNkUxKSB8fFxuXHQgICAgICAoMHgyNkUzID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjZFOCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjZGRikgfHxcblx0ICAgICAgKDB4MjczRCA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDI3NTcgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyNzc2IDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgyNzdGKSB8fFxuXHQgICAgICAoMHgyQjU1IDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgyQjU5KSB8fFxuXHQgICAgICAoMHgzMjQ4IDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgzMjRGKSB8fFxuXHQgICAgICAoMHhFMDAwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHhGOEZGKSB8fFxuXHQgICAgICAoMHhGRTAwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHhGRTBGKSB8fFxuXHQgICAgICAoMHhGRkZEID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MUYxMDAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDFGMTBBKSB8fFxuXHQgICAgICAoMHgxRjExMCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MUYxMkQpIHx8XG5cdCAgICAgICgweDFGMTMwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgxRjE2OSkgfHxcblx0ICAgICAgKDB4MUYxNzAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDFGMTlBKSB8fFxuXHQgICAgICAoMHhFMDEwMCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4RTAxRUYpIHx8XG5cdCAgICAgICgweEYwMDAwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHhGRkZGRCkgfHxcblx0ICAgICAgKDB4MTAwMDAwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgxMEZGRkQpKSB7XG5cdCAgICByZXR1cm4gJ0EnO1xuXHQgIH1cblxuXHQgIHJldHVybiAnTic7XG5cdH07XG5cblx0ZWF3LmNoYXJhY3Rlckxlbmd0aCA9IGZ1bmN0aW9uKGNoYXJhY3Rlcikge1xuXHQgIHZhciBjb2RlID0gdGhpcy5lYXN0QXNpYW5XaWR0aChjaGFyYWN0ZXIpO1xuXHQgIGlmIChjb2RlID09ICdGJyB8fCBjb2RlID09ICdXJyB8fCBjb2RlID09ICdBJykge1xuXHQgICAgcmV0dXJuIDI7XG5cdCAgfSBlbHNlIHtcblx0ICAgIHJldHVybiAxO1xuXHQgIH1cblx0fTtcblxuXHQvLyBTcGxpdCBhIHN0cmluZyBjb25zaWRlcmluZyBzdXJyb2dhdGUtcGFpcnMuXG5cdGZ1bmN0aW9uIHN0cmluZ1RvQXJyYXkoc3RyaW5nKSB7XG5cdCAgcmV0dXJuIHN0cmluZy5tYXRjaCgvW1xcdUQ4MDAtXFx1REJGRl1bXFx1REMwMC1cXHVERkZGXXxbXlxcdUQ4MDAtXFx1REZGRl0vZykgfHwgW107XG5cdH1cblxuXHRlYXcubGVuZ3RoID0gZnVuY3Rpb24oc3RyaW5nKSB7XG5cdCAgdmFyIGNoYXJhY3RlcnMgPSBzdHJpbmdUb0FycmF5KHN0cmluZyk7XG5cdCAgdmFyIGxlbiA9IDA7XG5cdCAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGFyYWN0ZXJzLmxlbmd0aDsgaSsrKSB7XG5cdCAgICBsZW4gPSBsZW4gKyB0aGlzLmNoYXJhY3Rlckxlbmd0aChjaGFyYWN0ZXJzW2ldKTtcblx0ICB9XG5cdCAgcmV0dXJuIGxlbjtcblx0fTtcblxuXHRlYXcuc2xpY2UgPSBmdW5jdGlvbih0ZXh0LCBzdGFydCwgZW5kKSB7XG5cdCAgdGV4dExlbiA9IGVhdy5sZW5ndGgodGV4dCk7XG5cdCAgc3RhcnQgPSBzdGFydCA/IHN0YXJ0IDogMDtcblx0ICBlbmQgPSBlbmQgPyBlbmQgOiAxO1xuXHQgIGlmIChzdGFydCA8IDApIHtcblx0ICAgICAgc3RhcnQgPSB0ZXh0TGVuICsgc3RhcnQ7XG5cdCAgfVxuXHQgIGlmIChlbmQgPCAwKSB7XG5cdCAgICAgIGVuZCA9IHRleHRMZW4gKyBlbmQ7XG5cdCAgfVxuXHQgIHZhciByZXN1bHQgPSAnJztcblx0ICB2YXIgZWF3TGVuID0gMDtcblx0ICB2YXIgY2hhcnMgPSBzdHJpbmdUb0FycmF5KHRleHQpO1xuXHQgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hhcnMubGVuZ3RoOyBpKyspIHtcblx0ICAgIHZhciBjaGFyID0gY2hhcnNbaV07XG5cdCAgICB2YXIgY2hhckxlbiA9IGVhdy5sZW5ndGgoY2hhcik7XG5cdCAgICBpZiAoZWF3TGVuID49IHN0YXJ0IC0gKGNoYXJMZW4gPT0gMiA/IDEgOiAwKSkge1xuXHQgICAgICAgIGlmIChlYXdMZW4gKyBjaGFyTGVuIDw9IGVuZCkge1xuXHQgICAgICAgICAgICByZXN1bHQgKz0gY2hhcjtcblx0ICAgICAgICB9IGVsc2Uge1xuXHQgICAgICAgICAgICBicmVhaztcblx0ICAgICAgICB9XG5cdCAgICB9XG5cdCAgICBlYXdMZW4gKz0gY2hhckxlbjtcblx0ICB9XG5cdCAgcmV0dXJuIHJlc3VsdDtcblx0fTsgXG59IChlYXN0YXNpYW53aWR0aCkpO1xuXG52YXIgZWFzdGFzaWFud2lkdGhFeHBvcnRzID0gZWFzdGFzaWFud2lkdGguZXhwb3J0cztcbmNvbnN0IGVhc3RBc2lhbldpZHRoID0gLypAX19QVVJFX18qL2dldERlZmF1bHRFeHBvcnRGcm9tQ2pzKGVhc3Rhc2lhbndpZHRoRXhwb3J0cyk7XG5cbmNvbnN0IGVtb2ppUmVnZXggPSAoKSA9PiB7XG5cdC8vIGh0dHBzOi8vbXRocy5iZS9lbW9qaVxuXHRyZXR1cm4gL1sjKjAtOV1cXHVGRTBGP1xcdTIwRTN8W1xceEE5XFx4QUVcXHUyMDNDXFx1MjA0OVxcdTIxMjJcXHUyMTM5XFx1MjE5NC1cXHUyMTk5XFx1MjFBOVxcdTIxQUFcXHUyMzFBXFx1MjMxQlxcdTIzMjhcXHUyM0NGXFx1MjNFRC1cXHUyM0VGXFx1MjNGMVxcdTIzRjJcXHUyM0Y4LVxcdTIzRkFcXHUyNEMyXFx1MjVBQVxcdTI1QUJcXHUyNUI2XFx1MjVDMFxcdTI1RkJcXHUyNUZDXFx1MjVGRVxcdTI2MDAtXFx1MjYwNFxcdTI2MEVcXHUyNjExXFx1MjYxNFxcdTI2MTVcXHUyNjE4XFx1MjYyMFxcdTI2MjJcXHUyNjIzXFx1MjYyNlxcdTI2MkFcXHUyNjJFXFx1MjYyRlxcdTI2MzgtXFx1MjYzQVxcdTI2NDBcXHUyNjQyXFx1MjY0OC1cXHUyNjUzXFx1MjY1RlxcdTI2NjBcXHUyNjYzXFx1MjY2NVxcdTI2NjZcXHUyNjY4XFx1MjY3QlxcdTI2N0VcXHUyNjdGXFx1MjY5MlxcdTI2OTQtXFx1MjY5N1xcdTI2OTlcXHUyNjlCXFx1MjY5Q1xcdTI2QTBcXHUyNkE3XFx1MjZBQVxcdTI2QjBcXHUyNkIxXFx1MjZCRFxcdTI2QkVcXHUyNkM0XFx1MjZDOFxcdTI2Q0ZcXHUyNkQxXFx1MjZEM1xcdTI2RTlcXHUyNkYwLVxcdTI2RjVcXHUyNkY3XFx1MjZGOFxcdTI2RkFcXHUyNzAyXFx1MjcwOFxcdTI3MDlcXHUyNzBGXFx1MjcxMlxcdTI3MTRcXHUyNzE2XFx1MjcxRFxcdTI3MjFcXHUyNzMzXFx1MjczNFxcdTI3NDRcXHUyNzQ3XFx1Mjc1N1xcdTI3NjNcXHUyN0ExXFx1MjkzNFxcdTI5MzVcXHUyQjA1LVxcdTJCMDdcXHUyQjFCXFx1MkIxQ1xcdTJCNTVcXHUzMDMwXFx1MzAzRFxcdTMyOTdcXHUzMjk5XVxcdUZFMEY/fFtcXHUyNjFEXFx1MjcwQ1xcdTI3MERdKD86XFx1RkUwRnxcXHVEODNDW1xcdURGRkItXFx1REZGRl0pP3xbXFx1MjcwQVxcdTI3MEJdKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT98W1xcdTIzRTktXFx1MjNFQ1xcdTIzRjBcXHUyM0YzXFx1MjVGRFxcdTI2OTNcXHUyNkExXFx1MjZBQlxcdTI2QzVcXHUyNkNFXFx1MjZENFxcdTI2RUFcXHUyNkZEXFx1MjcwNVxcdTI3MjhcXHUyNzRDXFx1Mjc0RVxcdTI3NTMtXFx1Mjc1NVxcdTI3OTUtXFx1Mjc5N1xcdTI3QjBcXHUyN0JGXFx1MkI1MF18XFx1MjZGOSg/OlxcdUZFMEZ8XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT8oPzpcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXVxcdUZFMEY/KT98XFx1Mjc2NFxcdUZFMEY/KD86XFx1MjAwRCg/OlxcdUQ4M0RcXHVERDI1fFxcdUQ4M0VcXHVERTc5KSk/fFxcdUQ4M0MoPzpbXFx1REMwNFxcdURENzBcXHVERDcxXFx1REQ3RVxcdUREN0ZcXHVERTAyXFx1REUzN1xcdURGMjFcXHVERjI0LVxcdURGMkNcXHVERjM2XFx1REY3RFxcdURGOTZcXHVERjk3XFx1REY5OS1cXHVERjlCXFx1REY5RVxcdURGOUZcXHVERkNEXFx1REZDRVxcdURGRDQtXFx1REZERlxcdURGRjVcXHVERkY3XVxcdUZFMEY/fFtcXHVERjg1XFx1REZDMlxcdURGQzddKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT98W1xcdURGQzNcXHVERkM0XFx1REZDQV0oPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pPyg/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8pP3xbXFx1REZDQlxcdURGQ0NdKD86XFx1RkUwRnxcXHVEODNDW1xcdURGRkItXFx1REZGRl0pPyg/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8pP3xbXFx1RENDRlxcdUREOEVcXHVERDkxLVxcdUREOUFcXHVERTAxXFx1REUxQVxcdURFMkZcXHVERTMyLVxcdURFMzZcXHVERTM4LVxcdURFM0FcXHVERTUwXFx1REU1MVxcdURGMDAtXFx1REYyMFxcdURGMkQtXFx1REYzNVxcdURGMzctXFx1REY3Q1xcdURGN0UtXFx1REY4NFxcdURGODYtXFx1REY5M1xcdURGQTAtXFx1REZDMVxcdURGQzVcXHVERkM2XFx1REZDOFxcdURGQzlcXHVERkNGLVxcdURGRDNcXHVERkUwLVxcdURGRjBcXHVERkY4LVxcdURGRkZdfFxcdURERTZcXHVEODNDW1xcdURERTgtXFx1RERFQ1xcdURERUVcXHVEREYxXFx1RERGMlxcdURERjRcXHVEREY2LVxcdURERkFcXHVEREZDXFx1RERGRFxcdURERkZdfFxcdURERTdcXHVEODNDW1xcdURERTZcXHVEREU3XFx1RERFOS1cXHVEREVGXFx1RERGMS1cXHVEREY0XFx1RERGNi1cXHVEREY5XFx1RERGQlxcdURERkNcXHVEREZFXFx1RERGRl18XFx1RERFOFxcdUQ4M0NbXFx1RERFNlxcdURERThcXHVEREU5XFx1RERFQi1cXHVEREVFXFx1RERGMC1cXHVEREY1XFx1RERGN1xcdURERkEtXFx1RERGRl18XFx1RERFOVxcdUQ4M0NbXFx1RERFQVxcdURERUNcXHVEREVGXFx1RERGMFxcdURERjJcXHVEREY0XFx1RERGRl18XFx1RERFQVxcdUQ4M0NbXFx1RERFNlxcdURERThcXHVEREVBXFx1RERFQ1xcdURERURcXHVEREY3LVxcdURERkFdfFxcdURERUJcXHVEODNDW1xcdURERUUtXFx1RERGMFxcdURERjJcXHVEREY0XFx1RERGN118XFx1RERFQ1xcdUQ4M0NbXFx1RERFNlxcdURERTdcXHVEREU5LVxcdURERUVcXHVEREYxLVxcdURERjNcXHVEREY1LVxcdURERkFcXHVEREZDXFx1RERGRV18XFx1RERFRFxcdUQ4M0NbXFx1RERGMFxcdURERjJcXHVEREYzXFx1RERGN1xcdURERjlcXHVEREZBXXxcXHVEREVFXFx1RDgzQ1tcXHVEREU4LVxcdURERUFcXHVEREYxLVxcdURERjRcXHVEREY2LVxcdURERjldfFxcdURERUZcXHVEODNDW1xcdURERUFcXHVEREYyXFx1RERGNFxcdURERjVdfFxcdURERjBcXHVEODNDW1xcdURERUFcXHVEREVDLVxcdURERUVcXHVEREYyXFx1RERGM1xcdURERjVcXHVEREY3XFx1RERGQ1xcdURERkVcXHVEREZGXXxcXHVEREYxXFx1RDgzQ1tcXHVEREU2LVxcdURERThcXHVEREVFXFx1RERGMFxcdURERjctXFx1RERGQlxcdURERkVdfFxcdURERjJcXHVEODNDW1xcdURERTZcXHVEREU4LVxcdURERURcXHVEREYwLVxcdURERkZdfFxcdURERjNcXHVEODNDW1xcdURERTZcXHVEREU4XFx1RERFQS1cXHVEREVDXFx1RERFRVxcdURERjFcXHVEREY0XFx1RERGNVxcdURERjdcXHVEREZBXFx1RERGRl18XFx1RERGNFxcdUQ4M0NcXHVEREYyfFxcdURERjVcXHVEODNDW1xcdURERTZcXHVEREVBLVxcdURERURcXHVEREYwLVxcdURERjNcXHVEREY3LVxcdURERjlcXHVEREZDXFx1RERGRV18XFx1RERGNlxcdUQ4M0NcXHVEREU2fFxcdURERjdcXHVEODNDW1xcdURERUFcXHVEREY0XFx1RERGOFxcdURERkFcXHVEREZDXXxcXHVEREY4XFx1RDgzQ1tcXHVEREU2LVxcdURERUFcXHVEREVDLVxcdURERjRcXHVEREY3LVxcdURERjlcXHVEREZCXFx1RERGRC1cXHVEREZGXXxcXHVEREY5XFx1RDgzQ1tcXHVEREU2XFx1RERFOFxcdURERTlcXHVEREVCLVxcdURERURcXHVEREVGLVxcdURERjRcXHVEREY3XFx1RERGOVxcdURERkJcXHVEREZDXFx1RERGRl18XFx1RERGQVxcdUQ4M0NbXFx1RERFNlxcdURERUNcXHVEREYyXFx1RERGM1xcdURERjhcXHVEREZFXFx1RERGRl18XFx1RERGQlxcdUQ4M0NbXFx1RERFNlxcdURERThcXHVEREVBXFx1RERFQ1xcdURERUVcXHVEREYzXFx1RERGQV18XFx1RERGQ1xcdUQ4M0NbXFx1RERFQlxcdURERjhdfFxcdURERkRcXHVEODNDXFx1RERGMHxcXHVEREZFXFx1RDgzQ1tcXHVEREVBXFx1RERGOV18XFx1RERGRlxcdUQ4M0NbXFx1RERFNlxcdURERjJcXHVEREZDXXxcXHVERkYzXFx1RkUwRj8oPzpcXHUyMDBEKD86XFx1MjZBN1xcdUZFMEY/fFxcdUQ4M0NcXHVERjA4KSk/fFxcdURGRjQoPzpcXHUyMDBEXFx1MjYyMFxcdUZFMEY/fFxcdURCNDBcXHVEQzY3XFx1REI0MFxcdURDNjJcXHVEQjQwKD86XFx1REM2NVxcdURCNDBcXHVEQzZFXFx1REI0MFxcdURDNjd8XFx1REM3M1xcdURCNDBcXHVEQzYzXFx1REI0MFxcdURDNzR8XFx1REM3N1xcdURCNDBcXHVEQzZDXFx1REI0MFxcdURDNzMpXFx1REI0MFxcdURDN0YpPyl8XFx1RDgzRCg/OltcXHVEQzA4XFx1REMyNl0oPzpcXHUyMDBEXFx1MkIxQik/fFtcXHVEQzNGXFx1RENGRFxcdURENDlcXHVERDRBXFx1REQ2RlxcdURENzBcXHVERDczXFx1REQ3Ni1cXHVERDc5XFx1REQ4N1xcdUREOEEtXFx1REQ4RFxcdUREQTVcXHVEREE4XFx1RERCMVxcdUREQjJcXHVEREJDXFx1RERDMi1cXHVEREM0XFx1REREMS1cXHVEREQzXFx1REREQy1cXHVERERFXFx1RERFMVxcdURERTNcXHVEREU4XFx1RERFRlxcdURERjNcXHVEREZBXFx1REVDQlxcdURFQ0QtXFx1REVDRlxcdURFRTAtXFx1REVFNVxcdURFRTlcXHVERUYwXFx1REVGM11cXHVGRTBGP3xbXFx1REM0MlxcdURDNDNcXHVEQzQ2LVxcdURDNTBcXHVEQzY2XFx1REM2N1xcdURDNkItXFx1REM2RFxcdURDNzJcXHVEQzc0LVxcdURDNzZcXHVEQzc4XFx1REM3Q1xcdURDODNcXHVEQzg1XFx1REM4RlxcdURDOTFcXHVEQ0FBXFx1REQ3QVxcdUREOTVcXHVERDk2XFx1REU0Q1xcdURFNEZcXHVERUMwXFx1REVDQ10oPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pP3xbXFx1REM2RVxcdURDNzBcXHVEQzcxXFx1REM3M1xcdURDNzdcXHVEQzgxXFx1REM4MlxcdURDODZcXHVEQzg3XFx1REU0NS1cXHVERTQ3XFx1REU0QlxcdURFNERcXHVERTRFXFx1REVBM1xcdURFQjQtXFx1REVCNl0oPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pPyg/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8pP3xbXFx1REQ3NFxcdUREOTBdKD86XFx1RkUwRnxcXHVEODNDW1xcdURGRkItXFx1REZGRl0pP3xbXFx1REMwMC1cXHVEQzA3XFx1REMwOS1cXHVEQzE0XFx1REMxNi1cXHVEQzI1XFx1REMyNy1cXHVEQzNBXFx1REMzQy1cXHVEQzNFXFx1REM0MFxcdURDNDRcXHVEQzQ1XFx1REM1MS1cXHVEQzY1XFx1REM2QVxcdURDNzktXFx1REM3QlxcdURDN0QtXFx1REM4MFxcdURDODRcXHVEQzg4LVxcdURDOEVcXHVEQzkwXFx1REM5Mi1cXHVEQ0E5XFx1RENBQi1cXHVEQ0ZDXFx1RENGRi1cXHVERDNEXFx1REQ0Qi1cXHVERDRFXFx1REQ1MC1cXHVERDY3XFx1RERBNFxcdURERkItXFx1REUyRFxcdURFMkYtXFx1REUzNFxcdURFMzctXFx1REU0NFxcdURFNDgtXFx1REU0QVxcdURFODAtXFx1REVBMlxcdURFQTQtXFx1REVCM1xcdURFQjctXFx1REVCRlxcdURFQzEtXFx1REVDNVxcdURFRDAtXFx1REVEMlxcdURFRDUtXFx1REVEN1xcdURFREMtXFx1REVERlxcdURFRUJcXHVERUVDXFx1REVGNC1cXHVERUZDXFx1REZFMC1cXHVERkVCXFx1REZGMF18XFx1REMxNSg/OlxcdTIwMERcXHVEODNFXFx1RERCQSk/fFxcdURDM0IoPzpcXHUyMDBEXFx1Mjc0NFxcdUZFMEY/KT98XFx1REM0MVxcdUZFMEY/KD86XFx1MjAwRFxcdUQ4M0RcXHVEREU4XFx1RkUwRj8pP3xcXHVEQzY4KD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzhCXFx1MjAwRFxcdUQ4M0QpP1xcdURDNjh8XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRCg/OltcXHVEQzY4XFx1REM2OV1cXHUyMDBEXFx1RDgzRCg/OlxcdURDNjYoPzpcXHUyMDBEXFx1RDgzRFxcdURDNjYpP3xcXHVEQzY3KD86XFx1MjAwRFxcdUQ4M0RbXFx1REM2NlxcdURDNjddKT8pfFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdURDNjYoPzpcXHUyMDBEXFx1RDgzRFxcdURDNjYpP3xcXHVEQzY3KD86XFx1MjAwRFxcdUQ4M0RbXFx1REM2NlxcdURDNjddKT8pfFxcdUQ4M0VbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdKXxcXHVEODNDKD86XFx1REZGQig/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMERcXHVEODNEKD86XFx1REM4QlxcdTIwMERcXHVEODNEKT9cXHVEQzY4XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RcXHVEQzY4XFx1RDgzQ1tcXHVERkZDLVxcdURGRkZdKSkpP3xcXHVERkZDKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzhCXFx1MjAwRFxcdUQ4M0QpP1xcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdfFxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjhcXHVEODNDW1xcdURGRkJcXHVERkZELVxcdURGRkZdKSkpP3xcXHVERkZEKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzhCXFx1MjAwRFxcdUQ4M0QpP1xcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdfFxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjhcXHVEODNDW1xcdURGRkJcXHVERkZDXFx1REZGRVxcdURGRkZdKSkpP3xcXHVERkZFKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzhCXFx1MjAwRFxcdUQ4M0QpP1xcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdfFxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRFxcdURGRkZdKSkpP3xcXHVERkZGKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzhCXFx1MjAwRFxcdUQ4M0QpP1xcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdfFxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRV0pKSk/KSk/fFxcdURDNjkoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEXFx1RDgzRCg/OlxcdURDOEJcXHUyMDBEXFx1RDgzRCk/W1xcdURDNjhcXHVEQzY5XXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEKD86W1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1REM2Nig/OlxcdTIwMERcXHVEODNEXFx1REM2Nik/fFxcdURDNjcoPzpcXHUyMDBEXFx1RDgzRFtcXHVEQzY2XFx1REM2N10pP3xcXHVEQzY5XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzY2KD86XFx1MjAwRFxcdUQ4M0RcXHVEQzY2KT98XFx1REM2Nyg/OlxcdTIwMERcXHVEODNEW1xcdURDNjZcXHVEQzY3XSk/KSl8XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pfFxcdUQ4M0MoPzpcXHVERkZCKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpbXFx1REM2OFxcdURDNjldfFxcdURDOEJcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV0pXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RbXFx1REM2OFxcdURDNjldXFx1RDgzQ1tcXHVERkZDLVxcdURGRkZdKSkpP3xcXHVERkZDKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpbXFx1REM2OFxcdURDNjldfFxcdURDOEJcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV0pXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RbXFx1REM2OFxcdURDNjldXFx1RDgzQ1tcXHVERkZCXFx1REZGRC1cXHVERkZGXSkpKT98XFx1REZGRCg/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMERcXHVEODNEKD86W1xcdURDNjhcXHVEQzY5XXxcXHVEQzhCXFx1MjAwRFxcdUQ4M0RbXFx1REM2OFxcdURDNjldKVxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF18XFx1REQxRFxcdTIwMERcXHVEODNEW1xcdURDNjhcXHVEQzY5XVxcdUQ4M0NbXFx1REZGQlxcdURGRkNcXHVERkZFXFx1REZGRl0pKSk/fFxcdURGRkUoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEXFx1RDgzRCg/OltcXHVEQzY4XFx1REM2OV18XFx1REM4QlxcdTIwMERcXHVEODNEW1xcdURDNjhcXHVEQzY5XSlcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdfFxcdUREMURcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV1cXHVEODNDW1xcdURGRkItXFx1REZGRFxcdURGRkZdKSkpP3xcXHVERkZGKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpbXFx1REM2OFxcdURDNjldfFxcdURDOEJcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV0pXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RbXFx1REM2OFxcdURDNjldXFx1RDgzQ1tcXHVERkZCLVxcdURGRkVdKSkpPykpP3xcXHVEQzZGKD86XFx1MjAwRFtcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGPyk/fFxcdURENzUoPzpcXHVGRTBGfFxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSk/KD86XFx1MjAwRFtcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGPyk/fFxcdURFMkUoPzpcXHUyMDBEXFx1RDgzRFxcdURDQTgpP3xcXHVERTM1KD86XFx1MjAwRFxcdUQ4M0RcXHVEQ0FCKT98XFx1REUzNig/OlxcdTIwMERcXHVEODNDXFx1REYyQlxcdUZFMEY/KT8pfFxcdUQ4M0UoPzpbXFx1REQwQ1xcdUREMEZcXHVERDE4LVxcdUREMUZcXHVERDMwLVxcdUREMzRcXHVERDM2XFx1REQ3N1xcdUREQjVcXHVEREI2XFx1RERCQlxcdURERDJcXHVEREQzXFx1RERENVxcdURFQzMtXFx1REVDNVxcdURFRjBcXHVERUYyLVxcdURFRjhdKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT98W1xcdUREMjZcXHVERDM1XFx1REQzNy1cXHVERDM5XFx1REQzRFxcdUREM0VcXHVEREI4XFx1RERCOVxcdUREQ0QtXFx1RERDRlxcdURERDRcXHVEREQ2LVxcdURERERdKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT8oPzpcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXVxcdUZFMEY/KT98W1xcdUREREVcXHVERERGXSg/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8pP3xbXFx1REQwRFxcdUREMEVcXHVERDEwLVxcdUREMTdcXHVERDIwLVxcdUREMjVcXHVERDI3LVxcdUREMkZcXHVERDNBXFx1REQzRi1cXHVERDQ1XFx1REQ0Ny1cXHVERDc2XFx1REQ3OC1cXHVEREI0XFx1RERCN1xcdUREQkFcXHVEREJDLVxcdUREQ0NcXHVEREQwXFx1RERFMC1cXHVEREZGXFx1REU3MC1cXHVERTdDXFx1REU4MC1cXHVERTg4XFx1REU5MC1cXHVERUJEXFx1REVCRi1cXHVERUMyXFx1REVDRS1cXHVERURCXFx1REVFMC1cXHVERUU4XXxcXHVERDNDKD86XFx1MjAwRFtcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGP3xcXHVEODNDW1xcdURGRkItXFx1REZGRl0pP3xcXHVEREQxKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjg0XFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0VcXHVEREQxKSl8XFx1RDgzQyg/OlxcdURGRkIoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEKD86XFx1RDgzRFxcdURDOEJcXHUyMDBEKT9cXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQy1cXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGODRcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdfFxcdUREMURcXHUyMDBEXFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkItXFx1REZGRl0pKSk/fFxcdURGRkMoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEKD86XFx1RDgzRFxcdURDOEJcXHUyMDBEKT9cXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQlxcdURGRkQtXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjg0XFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0VcXHVEREQxXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKSkpP3xcXHVERkZEKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRCg/OlxcdUQ4M0RcXHVEQzhCXFx1MjAwRCk/XFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkJcXHVERkZDXFx1REZGRVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY4NFxcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF18XFx1REQxRFxcdTIwMERcXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSkpKT98XFx1REZGRSg/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMEQoPzpcXHVEODNEXFx1REM4QlxcdTIwMEQpP1xcdUQ4M0VcXHVEREQxXFx1RDgzQ1tcXHVERkZCLVxcdURGRkRcXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGODRcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdfFxcdUREMURcXHUyMDBEXFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkItXFx1REZGRl0pKSk/fFxcdURGRkYoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEKD86XFx1RDgzRFxcdURDOEJcXHUyMDBEKT9cXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQi1cXHVERkZFXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGODRcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdfFxcdUREMURcXHUyMDBEXFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkItXFx1REZGRl0pKSk/KSk/fFxcdURFRjEoPzpcXHVEODNDKD86XFx1REZGQig/OlxcdTIwMERcXHVEODNFXFx1REVGMlxcdUQ4M0NbXFx1REZGQy1cXHVERkZGXSk/fFxcdURGRkMoPzpcXHUyMDBEXFx1RDgzRVxcdURFRjJcXHVEODNDW1xcdURGRkJcXHVERkZELVxcdURGRkZdKT98XFx1REZGRCg/OlxcdTIwMERcXHVEODNFXFx1REVGMlxcdUQ4M0NbXFx1REZGQlxcdURGRkNcXHVERkZFXFx1REZGRl0pP3xcXHVERkZFKD86XFx1MjAwRFxcdUQ4M0VcXHVERUYyXFx1RDgzQ1tcXHVERkZCLVxcdURGRkRcXHVERkZGXSk/fFxcdURGRkYoPzpcXHUyMDBEXFx1RDgzRVxcdURFRjJcXHVEODNDW1xcdURGRkItXFx1REZGRV0pPykpPykvZztcbn07XG5cbmZ1bmN0aW9uIHN0cmluZ1dpZHRoJDEoc3RyaW5nLCBvcHRpb25zKSB7XG5cdGlmICh0eXBlb2Ygc3RyaW5nICE9PSAnc3RyaW5nJyB8fCBzdHJpbmcubGVuZ3RoID09PSAwKSB7XG5cdFx0cmV0dXJuIDA7XG5cdH1cblxuXHRvcHRpb25zID0ge1xuXHRcdGFtYmlndW91c0lzTmFycm93OiB0cnVlLFxuXHRcdGNvdW50QW5zaUVzY2FwZUNvZGVzOiBmYWxzZSxcblx0XHQuLi5vcHRpb25zLFxuXHR9O1xuXG5cdGlmICghb3B0aW9ucy5jb3VudEFuc2lFc2NhcGVDb2Rlcykge1xuXHRcdHN0cmluZyA9IHN0cmlwQW5zaShzdHJpbmcpO1xuXHR9XG5cblx0aWYgKHN0cmluZy5sZW5ndGggPT09IDApIHtcblx0XHRyZXR1cm4gMDtcblx0fVxuXG5cdGNvbnN0IGFtYmlndW91c0NoYXJhY3RlcldpZHRoID0gb3B0aW9ucy5hbWJpZ3VvdXNJc05hcnJvdyA/IDEgOiAyO1xuXHRsZXQgd2lkdGggPSAwO1xuXG5cdGZvciAoY29uc3Qge3NlZ21lbnQ6IGNoYXJhY3Rlcn0gb2YgbmV3IEludGwuU2VnbWVudGVyKCkuc2VnbWVudChzdHJpbmcpKSB7XG5cdFx0Y29uc3QgY29kZVBvaW50ID0gY2hhcmFjdGVyLmNvZGVQb2ludEF0KDApO1xuXG5cdFx0Ly8gSWdub3JlIGNvbnRyb2wgY2hhcmFjdGVyc1xuXHRcdGlmIChjb2RlUG9pbnQgPD0gMHgxRiB8fCAoY29kZVBvaW50ID49IDB4N0YgJiYgY29kZVBvaW50IDw9IDB4OUYpKSB7XG5cdFx0XHRjb250aW51ZTtcblx0XHR9XG5cblx0XHQvLyBJZ25vcmUgY29tYmluaW5nIGNoYXJhY3RlcnNcblx0XHRpZiAoY29kZVBvaW50ID49IDB4M18wMCAmJiBjb2RlUG9pbnQgPD0gMHgzXzZGKSB7XG5cdFx0XHRjb250aW51ZTtcblx0XHR9XG5cblx0XHRpZiAoZW1vamlSZWdleCgpLnRlc3QoY2hhcmFjdGVyKSkge1xuXHRcdFx0d2lkdGggKz0gMjtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdGNvbnN0IGNvZGUgPSBlYXN0QXNpYW5XaWR0aC5lYXN0QXNpYW5XaWR0aChjaGFyYWN0ZXIpO1xuXHRcdHN3aXRjaCAoY29kZSkge1xuXHRcdFx0Y2FzZSAnRic6XG5cdFx0XHRjYXNlICdXJzoge1xuXHRcdFx0XHR3aWR0aCArPSAyO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdH1cblxuXHRcdFx0Y2FzZSAnQSc6IHtcblx0XHRcdFx0d2lkdGggKz0gYW1iaWd1b3VzQ2hhcmFjdGVyV2lkdGg7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXG5cdFx0XHRkZWZhdWx0OiB7XG5cdFx0XHRcdHdpZHRoICs9IDE7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIHdpZHRoO1xufVxuXG5mdW5jdGlvbiBpc1VuaWNvZGVTdXBwb3J0ZWQoKSB7XG5cdGlmIChwcm9jZXNzJDEucGxhdGZvcm0gIT09ICd3aW4zMicpIHtcblx0XHRyZXR1cm4gcHJvY2VzcyQxLmVudi5URVJNICE9PSAnbGludXgnOyAvLyBMaW51eCBjb25zb2xlIChrZXJuZWwpXG5cdH1cblxuXHRyZXR1cm4gQm9vbGVhbihwcm9jZXNzJDEuZW52LkNJKVxuXHRcdHx8IEJvb2xlYW4ocHJvY2VzcyQxLmVudi5XVF9TRVNTSU9OKSAvLyBXaW5kb3dzIFRlcm1pbmFsXG5cdFx0fHwgQm9vbGVhbihwcm9jZXNzJDEuZW52LlRFUk1JTlVTX1NVQkxJTUUpIC8vIFRlcm1pbnVzICg8MC4yLjI3KVxuXHRcdHx8IHByb2Nlc3MkMS5lbnYuQ29uRW11VGFzayA9PT0gJ3tjbWQ6OkNtZGVyfScgLy8gQ29uRW11IGFuZCBjbWRlclxuXHRcdHx8IHByb2Nlc3MkMS5lbnYuVEVSTV9QUk9HUkFNID09PSAnVGVybWludXMtU3VibGltZSdcblx0XHR8fCBwcm9jZXNzJDEuZW52LlRFUk1fUFJPR1JBTSA9PT0gJ3ZzY29kZSdcblx0XHR8fCBwcm9jZXNzJDEuZW52LlRFUk0gPT09ICd4dGVybS0yNTZjb2xvcidcblx0XHR8fCBwcm9jZXNzJDEuZW52LlRFUk0gPT09ICdhbGFjcml0dHknXG5cdFx0fHwgcHJvY2VzcyQxLmVudi5URVJNSU5BTF9FTVVMQVRPUiA9PT0gJ0pldEJyYWlucy1KZWRpVGVybSc7XG59XG5cbmNvbnN0IFRZUEVfQ09MT1JfTUFQID0ge1xuICBpbmZvOiBcImN5YW5cIixcbiAgZmFpbDogXCJyZWRcIixcbiAgc3VjY2VzczogXCJncmVlblwiLFxuICByZWFkeTogXCJncmVlblwiLFxuICBzdGFydDogXCJtYWdlbnRhXCJcbn07XG5jb25zdCBMRVZFTF9DT0xPUl9NQVAgPSB7XG4gIDA6IFwicmVkXCIsXG4gIDE6IFwieWVsbG93XCJcbn07XG5jb25zdCB1bmljb2RlID0gaXNVbmljb2RlU3VwcG9ydGVkKCk7XG5jb25zdCBzID0gKGMsIGZhbGxiYWNrKSA9PiB1bmljb2RlID8gYyA6IGZhbGxiYWNrO1xuY29uc3QgVFlQRV9JQ09OUyA9IHtcbiAgZXJyb3I6IHMoXCJcXHUyNzE2XCIsIFwiXFx4RDdcIiksXG4gIGZhdGFsOiBzKFwiXFx1MjcxNlwiLCBcIlxceEQ3XCIpLFxuICByZWFkeTogcyhcIlxcdTI3MTRcIiwgXCJcXHUyMjFBXCIpLFxuICB3YXJuOiBzKFwiXFx1MjZBMFwiLCBcIlxcdTIwM0NcIiksXG4gIGluZm86IHMoXCJcXHUyMTM5XCIsIFwiaVwiKSxcbiAgc3VjY2VzczogcyhcIlxcdTI3MTRcIiwgXCJcXHUyMjFBXCIpLFxuICBkZWJ1ZzogcyhcIlxcdTI2OTlcIiwgXCJEXCIpLFxuICB0cmFjZTogcyhcIlxcdTIxOTJcIiwgXCJcXHUyMTkyXCIpLFxuICBmYWlsOiBzKFwiXFx1MjcxNlwiLCBcIlxceEQ3XCIpLFxuICBzdGFydDogcyhcIlxcdTI1RDBcIiwgXCJvXCIpLFxuICBsb2c6IFwiXCJcbn07XG5mdW5jdGlvbiBzdHJpbmdXaWR0aChzdHIpIHtcbiAgaWYgKCFJbnRsLlNlZ21lbnRlcikge1xuICAgIHJldHVybiBzdHJpcEFuc2kkMShzdHIpLmxlbmd0aDtcbiAgfVxuICByZXR1cm4gc3RyaW5nV2lkdGgkMShzdHIpO1xufVxuY2xhc3MgRmFuY3lSZXBvcnRlciBleHRlbmRzIEJhc2ljUmVwb3J0ZXIge1xuICBmb3JtYXRTdGFjayhzdGFjaykge1xuICAgIHJldHVybiBcIlxcblwiICsgcGFyc2VTdGFjayhzdGFjaykubWFwKFxuICAgICAgKGxpbmUpID0+IFwiICBcIiArIGxpbmUucmVwbGFjZSgvXmF0ICsvLCAobSkgPT4gY29sb3JzLmdyYXkobSkpLnJlcGxhY2UoL1xcKCguKylcXCkvLCAoXywgbSkgPT4gYCgke2NvbG9ycy5jeWFuKG0pfSlgKVxuICAgICkuam9pbihcIlxcblwiKTtcbiAgfVxuICBmb3JtYXRUeXBlKGxvZ09iaiwgaXNCYWRnZSwgb3B0cykge1xuICAgIGNvbnN0IHR5cGVDb2xvciA9IFRZUEVfQ09MT1JfTUFQW2xvZ09iai50eXBlXSB8fCBMRVZFTF9DT0xPUl9NQVBbbG9nT2JqLmxldmVsXSB8fCBcImdyYXlcIjtcbiAgICBpZiAoaXNCYWRnZSkge1xuICAgICAgcmV0dXJuIGdldEJnQ29sb3IodHlwZUNvbG9yKShcbiAgICAgICAgY29sb3JzLmJsYWNrKGAgJHtsb2dPYmoudHlwZS50b1VwcGVyQ2FzZSgpfSBgKVxuICAgICAgKTtcbiAgICB9XG4gICAgY29uc3QgX3R5cGUgPSB0eXBlb2YgVFlQRV9JQ09OU1tsb2dPYmoudHlwZV0gPT09IFwic3RyaW5nXCIgPyBUWVBFX0lDT05TW2xvZ09iai50eXBlXSA6IGxvZ09iai5pY29uIHx8IGxvZ09iai50eXBlO1xuICAgIHJldHVybiBfdHlwZSA/IGdldENvbG9yKHR5cGVDb2xvcikoX3R5cGUpIDogXCJcIjtcbiAgfVxuICBmb3JtYXRMb2dPYmoobG9nT2JqLCBvcHRzKSB7XG4gICAgY29uc3QgW21lc3NhZ2UsIC4uLmFkZGl0aW9uYWxdID0gdGhpcy5mb3JtYXRBcmdzKGxvZ09iai5hcmdzLCBvcHRzKS5zcGxpdChcbiAgICAgIFwiXFxuXCJcbiAgICApO1xuICAgIGlmIChsb2dPYmoudHlwZSA9PT0gXCJib3hcIikge1xuICAgICAgcmV0dXJuIGJveChcbiAgICAgICAgY2hhcmFjdGVyRm9ybWF0KFxuICAgICAgICAgIG1lc3NhZ2UgKyAoYWRkaXRpb25hbC5sZW5ndGggPiAwID8gXCJcXG5cIiArIGFkZGl0aW9uYWwuam9pbihcIlxcblwiKSA6IFwiXCIpXG4gICAgICAgICksXG4gICAgICAgIHtcbiAgICAgICAgICB0aXRsZTogbG9nT2JqLnRpdGxlID8gY2hhcmFjdGVyRm9ybWF0KGxvZ09iai50aXRsZSkgOiB2b2lkIDAsXG4gICAgICAgICAgc3R5bGU6IGxvZ09iai5zdHlsZVxuICAgICAgICB9XG4gICAgICApO1xuICAgIH1cbiAgICBjb25zdCBkYXRlID0gdGhpcy5mb3JtYXREYXRlKGxvZ09iai5kYXRlLCBvcHRzKTtcbiAgICBjb25zdCBjb2xvcmVkRGF0ZSA9IGRhdGUgJiYgY29sb3JzLmdyYXkoZGF0ZSk7XG4gICAgY29uc3QgaXNCYWRnZSA9IGxvZ09iai5iYWRnZSA/PyBsb2dPYmoubGV2ZWwgPCAyO1xuICAgIGNvbnN0IHR5cGUgPSB0aGlzLmZvcm1hdFR5cGUobG9nT2JqLCBpc0JhZGdlLCBvcHRzKTtcbiAgICBjb25zdCB0YWcgPSBsb2dPYmoudGFnID8gY29sb3JzLmdyYXkobG9nT2JqLnRhZykgOiBcIlwiO1xuICAgIGxldCBsaW5lO1xuICAgIGNvbnN0IGxlZnQgPSB0aGlzLmZpbHRlckFuZEpvaW4oW3R5cGUsIGNoYXJhY3RlckZvcm1hdChtZXNzYWdlKV0pO1xuICAgIGNvbnN0IHJpZ2h0ID0gdGhpcy5maWx0ZXJBbmRKb2luKG9wdHMuY29sdW1ucyA/IFt0YWcsIGNvbG9yZWREYXRlXSA6IFt0YWddKTtcbiAgICBjb25zdCBzcGFjZSA9IChvcHRzLmNvbHVtbnMgfHwgMCkgLSBzdHJpbmdXaWR0aChsZWZ0KSAtIHN0cmluZ1dpZHRoKHJpZ2h0KSAtIDI7XG4gICAgbGluZSA9IHNwYWNlID4gMCAmJiAob3B0cy5jb2x1bW5zIHx8IDApID49IDgwID8gbGVmdCArIFwiIFwiLnJlcGVhdChzcGFjZSkgKyByaWdodCA6IChyaWdodCA/IGAke2NvbG9ycy5ncmF5KGBbJHtyaWdodH1dYCl9IGAgOiBcIlwiKSArIGxlZnQ7XG4gICAgbGluZSArPSBjaGFyYWN0ZXJGb3JtYXQoXG4gICAgICBhZGRpdGlvbmFsLmxlbmd0aCA+IDAgPyBcIlxcblwiICsgYWRkaXRpb25hbC5qb2luKFwiXFxuXCIpIDogXCJcIlxuICAgICk7XG4gICAgaWYgKGxvZ09iai50eXBlID09PSBcInRyYWNlXCIpIHtcbiAgICAgIGNvbnN0IF9lcnIgPSBuZXcgRXJyb3IoXCJUcmFjZTogXCIgKyBsb2dPYmoubWVzc2FnZSk7XG4gICAgICBsaW5lICs9IHRoaXMuZm9ybWF0U3RhY2soX2Vyci5zdGFjayB8fCBcIlwiKTtcbiAgICB9XG4gICAgcmV0dXJuIGlzQmFkZ2UgPyBcIlxcblwiICsgbGluZSArIFwiXFxuXCIgOiBsaW5lO1xuICB9XG59XG5mdW5jdGlvbiBjaGFyYWN0ZXJGb3JtYXQoc3RyKSB7XG4gIHJldHVybiBzdHIucmVwbGFjZSgvYChbXmBdKylgL2dtLCAoXywgbSkgPT4gY29sb3JzLmN5YW4obSkpLnJlcGxhY2UoL1xccytfKFteX10rKV9cXHMrL2dtLCAoXywgbSkgPT4gYCAke2NvbG9ycy51bmRlcmxpbmUobSl9IGApO1xufVxuZnVuY3Rpb24gZ2V0Q29sb3IoY29sb3IgPSBcIndoaXRlXCIpIHtcbiAgcmV0dXJuIGNvbG9yc1tjb2xvcl0gfHwgY29sb3JzLndoaXRlO1xufVxuZnVuY3Rpb24gZ2V0QmdDb2xvcihjb2xvciA9IFwiYmdXaGl0ZVwiKSB7XG4gIHJldHVybiBjb2xvcnNbYGJnJHtjb2xvclswXS50b1VwcGVyQ2FzZSgpfSR7Y29sb3Iuc2xpY2UoMSl9YF0gfHwgY29sb3JzLmJnV2hpdGU7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUNvbnNvbGEob3B0aW9ucyA9IHt9KSB7XG4gIGxldCBsZXZlbCA9IF9nZXREZWZhdWx0TG9nTGV2ZWwoKTtcbiAgaWYgKHByb2Nlc3MuZW52LkNPTlNPTEFfTEVWRUwpIHtcbiAgICBsZXZlbCA9IE51bWJlci5wYXJzZUludChwcm9jZXNzLmVudi5DT05TT0xBX0xFVkVMKSA/PyBsZXZlbDtcbiAgfVxuICBjb25zdCBjb25zb2xhMiA9IGNyZWF0ZUNvbnNvbGEkMSh7XG4gICAgbGV2ZWwsXG4gICAgZGVmYXVsdHM6IHsgbGV2ZWwgfSxcbiAgICBzdGRvdXQ6IHByb2Nlc3Muc3Rkb3V0LFxuICAgIHN0ZGVycjogcHJvY2Vzcy5zdGRlcnIsXG4gICAgcHJvbXB0OiAoLi4uYXJncykgPT4gaW1wb3J0KCcuLi9jaHVua3MvcHJvbXB0Lm1qcycpLnRoZW4oKG0pID0+IG0ucHJvbXB0KC4uLmFyZ3MpKSxcbiAgICByZXBvcnRlcnM6IG9wdGlvbnMucmVwb3J0ZXJzIHx8IFtcbiAgICAgIG9wdGlvbnMuZmFuY3kgPz8gIShpc0NJIHx8IGlzVGVzdCkgPyBuZXcgRmFuY3lSZXBvcnRlcigpIDogbmV3IEJhc2ljUmVwb3J0ZXIoKVxuICAgIF0sXG4gICAgLi4ub3B0aW9uc1xuICB9KTtcbiAgcmV0dXJuIGNvbnNvbGEyO1xufVxuZnVuY3Rpb24gX2dldERlZmF1bHRMb2dMZXZlbCgpIHtcbiAgaWYgKGlzRGVidWcpIHtcbiAgICByZXR1cm4gTG9nTGV2ZWxzLmRlYnVnO1xuICB9XG4gIGlmIChpc1Rlc3QpIHtcbiAgICByZXR1cm4gTG9nTGV2ZWxzLndhcm47XG4gIH1cbiAgcmV0dXJuIExvZ0xldmVscy5pbmZvO1xufVxuY29uc3QgY29uc29sYSA9IGNyZWF0ZUNvbnNvbGEoKTtcblxuZXhwb3J0IHsgY29uc29sYSBhcyBhLCBjcmVhdGVDb25zb2xhIGFzIGMsIGdldERlZmF1bHRFeHBvcnRGcm9tQ2pzIGFzIGcsIGlzVW5pY29kZVN1cHBvcnRlZCBhcyBpIH07XG4iLCAiLyogZXNsaW50LWRpc2FibGUgdW5pY29ybi9uby1wcm9jZXNzLWV4aXQgKi9cbmltcG9ydCBhc3NlcnQgZnJvbSBcIm5vZGU6YXNzZXJ0XCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgeyBjcmVhdGVIYXNoIH0gZnJvbSBcIm5vZGU6Y3J5cHRvXCI7XG5pbXBvcnQgZnNTeW5jIGZyb20gXCJub2RlOmZzXCI7XG5pbXBvcnQgZnMgZnJvbSBcIm5vZGU6ZnMvcHJvbWlzZXNcIjtcbmltcG9ydCB7IGhhc2ggfSBmcm9tIFwib2hhc2hcIjtcbmltcG9ydCBlelNwYXduIGZyb20gXCJAanNkZXZ0b29scy9lei1zcGF3blwiO1xuaW1wb3J0IHsgZGVmaW5lQ29tbWFuZCwgcnVuTWFpbiB9IGZyb20gXCJjaXR0eVwiO1xuaW1wb3J0IHsgZ2V0UGFja2FnZU1hbmlmZXN0LCB0eXBlIFBhY2thZ2VNYW5pZmVzdCB9IGZyb20gXCJxdWVyeS1yZWdpc3RyeVwiO1xuaW1wb3J0IHR5cGUgeyBDb21tZW50IH0gZnJvbSBcIkBwa2ctcHItbmV3L3V0aWxzXCI7XG5pbXBvcnQge1xuICBhYmJyZXZpYXRlQ29tbWl0SGFzaCxcbiAgZXh0cmFjdE93bmVyQW5kUmVwbyxcbiAgZXh0cmFjdFJlcG9zaXRvcnksXG59IGZyb20gXCJAcGtnLXByLW5ldy91dGlsc1wiO1xuaW1wb3J0IHsgZ2xvYiB9IGZyb20gXCJ0aW55Z2xvYmJ5XCI7XG5pbXBvcnQgaWdub3JlIGZyb20gXCJpZ25vcmVcIjtcbmltcG9ydCBcIi4vZW52aXJvbm1lbnRzXCI7XG5pbXBvcnQgeyBpc0JpbmFyeUZpbGUgfSBmcm9tIFwiaXNiaW5hcnlmaWxlXCI7XG5pbXBvcnQgeyB3cml0ZVBhY2thZ2VKU09OLCB0eXBlIFBhY2thZ2VKc29uIH0gZnJvbSBcInBrZy10eXBlc1wiO1xuaW1wb3J0IHBrZyBmcm9tIFwiLi9wYWNrYWdlLmpzb25cIiB3aXRoIHsgdHlwZTogXCJqc29uXCIgfTtcbmltcG9ydCB7IGNyZWF0ZURlZmF1bHRUZW1wbGF0ZSB9IGZyb20gXCIuL3RlbXBsYXRlXCI7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgY29uc3QgQVBJX1VSTDogc3RyaW5nO1xufVxuXG50eXBlIE91dHB1dE1ldGFkYXRhID0ge1xuICBwYWNrYWdlczoge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB1cmw6IHN0cmluZztcbiAgICBzaGFzdW06IHN0cmluZztcbiAgfVtdO1xuICB0ZW1wbGF0ZXM6IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgdXJsOiBzdHJpbmc7XG4gIH1bXTtcbn07XG5cbmNvbnN0IGFwaVVybCA9IHByb2Nlc3MuZW52LkFQSV9VUkwgPz8gQVBJX1VSTDtcbmNvbnN0IHB1Ymxpc2hVcmwgPSBuZXcgVVJMKFwiL3B1Ymxpc2hcIiwgYXBpVXJsKTtcbmNvbnN0IGNyZWF0ZU11bHRpcGFydCA9IG5ldyBVUkwoXCIvbXVsdGlwYXJ0L2NyZWF0ZVwiLCBhcGlVcmwpO1xuY29uc3QgdXBsb2FkTXVsdGlwYXJ0ID0gbmV3IFVSTChcIi9tdWx0aXBhcnQvdXBsb2FkXCIsIGFwaVVybCk7XG5jb25zdCBjb21wbGV0ZU11bHRpcGFydCA9IG5ldyBVUkwoXCIvbXVsdGlwYXJ0L2NvbXBsZXRlXCIsIGFwaVVybCk7XG5cbmNvbnN0IG1haW4gPSBkZWZpbmVDb21tYW5kKHtcbiAgbWV0YToge1xuICAgIHZlcnNpb246IHBrZy52ZXJzaW9uLFxuICAgIG5hbWU6IFwic3RhY2tibGl0elwiLFxuICAgIGRlc2NyaXB0aW9uOiBcIkEgQ0xJIGZvciBwa2cucHIubmV3IChDb250aW51b3VzIFJlbGVhc2VzKVwiLFxuICB9LFxuICBzdWJDb21tYW5kczoge1xuICAgIHB1Ymxpc2g6ICgpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGFyZ3M6IHtcbiAgICAgICAgICBjb21wYWN0OiB7XG4gICAgICAgICAgICB0eXBlOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgICAgICBcImNvbXBhY3QgdXJscy4gVGhlIHNob3J0ZXN0IGZvcm0gb2YgdXJscyBsaWtlIHBrZy5wci5uZXcvdGlueWJlbmNoQGE4MzJhNTUpXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBwZWVyRGVwczoge1xuICAgICAgICAgICAgdHlwZTogXCJib29sZWFuXCIsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgICAgICAgXCJoYW5kbGUgcGVlckRlcGVuZGVuY2llcyBieSBzZXR0aW5nIHRoZSB3b3Jrc3BhY2UgdmVyc2lvbiBpbnN0ZWFkIG9mIHdoYXQgaGFzIGJlZW4gc2V0IGluIHRoZSBwZWVyRGVwcyBpdHNlbGYuIC0tcGVlckRlcHMgbm90IGJlaW5nIHRydWUgd291bGQgbGVhdmUgcGVlckRlcGVuZGVuY2llcyB0byB0aGUgcGFja2FnZSBtYW5hZ2VyIGl0c2VsZiAobnBtLCBwbnBtKVwiLFxuICAgICAgICAgICAgZGVmYXVsdDogZmFsc2UsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBwbnBtOiB7XG4gICAgICAgICAgICB0eXBlOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcInVzZSBgcG5wbSBwYWNrYCBpbnN0ZWFkIG9mIGBucG0gcGFjayAtLWpzb25gXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB0ZW1wbGF0ZToge1xuICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgICAgICBcImdlbmVyYXRlIHN0YWNrYmxpdHogdGVtcGxhdGVzIG91dCBvZiBkaXJlY3RvcmllcyBpbiB0aGUgY3VycmVudCByZXBvIHdpdGggdGhlIG5ldyBidWlsdCBwYWNrYWdlc1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgY29tbWVudDoge1xuICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIiwgLy8gXCJvZmZcIiwgXCJjcmVhdGVcIiwgXCJ1cGRhdGVcIiAoZGVmYXVsdClcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBgXCJvZmZcIiBmb3Igbm8gY29tbWVudHMgKHNpbGVudCBtb2RlKS4gXCJjcmVhdGVcIiBmb3IgY29tbWVudCBvbiBlYWNoIHB1Ymxpc2guIFwidXBkYXRlXCIgZm9yIG9uZSBjb21tZW50IGFjcm9zcyB0aGUgcHVsbCByZXF1ZXN0IHdpdGggZWRpdHMgb24gZWFjaCBwdWJsaXNoIChkZWZhdWx0KWAsXG4gICAgICAgICAgICBkZWZhdWx0OiBcInVwZGF0ZVwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJvbmx5LXRlbXBsYXRlc1wiOiB7XG4gICAgICAgICAgICB0eXBlOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBgZ2VuZXJhdGUgb25seSBzdGFja2JsaXR6IHRlbXBsYXRlc2AsXG4gICAgICAgICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGpzb246IHtcbiAgICAgICAgICAgIHR5cGU6IFwibWl4ZWRcIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBgU2F2ZSBtZXRhZGF0YSB0byBhIEpTT04gZmlsZS4gSWYgdHJ1ZSwgbG9nIHRoZSBvdXRwdXQgZm9yIHBpcGluZy4gSWYgYSBzdHJpbmcsIHNhdmUgdGhlIG91dHB1dCB0byB0aGUgc3BlY2lmaWVkIGZpbGUgcGF0aC5gLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcGFja2FnZU1hbmFnZXI6IHtcbiAgICAgICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgICAgICAgXCJTcGVjaWZ5IHRoZSBwYWNrYWdlIG1hbmFnZXIgdG8gdXNlIChucG0sIGJ1biwgcG5wbSwgeWFybilcIixcbiAgICAgICAgICAgIGVudW06IFtcIm5wbVwiLCBcImJ1blwiLCBcInBucG1cIiwgXCJ5YXJuXCJdLFxuICAgICAgICAgICAgZGVmYXVsdDogXCJucG1cIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIGJpbjoge1xuICAgICAgICAgICAgdHlwZTogXCJib29sZWFuXCIsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgICAgICAgXCJTZXQgdG8gdHJ1ZSBpZiB5b3VyIHBhY2thZ2UgaXMgYSBiaW5hcnkgYXBwbGljYXRpb24gYW5kIHlvdSB3b3VsZCBsaWtlIHRvIHNob3cgYW4gZXhlY3V0ZSBjb21tYW5kIGluc3RlYWQgb2YgYW4gaW5zdGFsbCBjb21tYW5kLlwiLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHJ1bjogYXN5bmMgKHsgYXJncyB9KSA9PiB7XG4gICAgICAgICAgY29uc3QgcGF0aHMgPVxuICAgICAgICAgICAgYXJncy5fLmxlbmd0aCA+IDBcbiAgICAgICAgICAgICAgPyBhd2FpdCBnbG9iKGFyZ3MuXywge1xuICAgICAgICAgICAgICAgICAgZXhwYW5kRGlyZWN0b3JpZXM6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgb25seURpcmVjdG9yaWVzOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgYWJzb2x1dGU6IHRydWUsXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgOiBbcHJvY2Vzcy5jd2QoKV07XG5cbiAgICAgICAgICBjb25zdCB0ZW1wbGF0ZXMgPSBhd2FpdCBnbG9iKGFyZ3MudGVtcGxhdGUgfHwgW10sIHtcbiAgICAgICAgICAgIGV4cGFuZERpcmVjdG9yaWVzOiBmYWxzZSxcbiAgICAgICAgICAgIG9ubHlEaXJlY3RvcmllczogdHJ1ZSxcbiAgICAgICAgICAgIGFic29sdXRlOiB0cnVlLFxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcblxuICAgICAgICAgIGNvbnN0IGlzQ29tcGFjdCA9ICEhYXJncy5jb21wYWN0O1xuICAgICAgICAgIGxldCBwYWNrTWV0aG9kOiBQYWNrTWV0aG9kID0gXCJucG1cIjtcblxuICAgICAgICAgIGlmIChhcmdzLnBucG0pIHtcbiAgICAgICAgICAgIHBhY2tNZXRob2QgPSBcInBucG1cIjtcbiAgICAgICAgICB9IGVsc2UgaWYgKGFyZ3MueWFybikge1xuICAgICAgICAgICAgcGFja01ldGhvZCA9IFwieWFyblwiO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGlzUGVlckRlcHNFbmFibGVkID0gISFhcmdzLnBlZXJEZXBzO1xuICAgICAgICAgIGNvbnN0IGlzT25seVRlbXBsYXRlcyA9ICEhYXJnc1tcIm9ubHktdGVtcGxhdGVzXCJdO1xuXG4gICAgICAgICAgY29uc3QgaXNCaW5hcnlBcHBsaWNhdGlvbiA9ICEhYXJncy5iaW5hcnlBcHBsaWNhdGlvbjtcbiAgICAgICAgICBjb25zdCBjb21tZW50OiBDb21tZW50ID0gYXJncy5jb21tZW50IGFzIENvbW1lbnQ7XG4gICAgICAgICAgY29uc3Qgc2VsZWN0ZWRQYWNrYWdlTWFuYWdlciA9IGFyZ3MucGFja2FnZU1hbmFnZXIgYXNcbiAgICAgICAgICAgIHwgXCJucG1cIlxuICAgICAgICAgICAgfCBcImJ1blwiXG4gICAgICAgICAgICB8IFwicG5wbVwiXG4gICAgICAgICAgICB8IFwieWFyblwiO1xuXG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgIVtcIm5wbVwiLCBcImJ1blwiLCBcInBucG1cIiwgXCJ5YXJuXCJdLmluY2x1ZGVzKHNlbGVjdGVkUGFja2FnZU1hbmFnZXIpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICBgVW5zdXBwb3J0ZWQgcGFja2FnZSBtYW5hZ2VyOiAke3NlbGVjdGVkUGFja2FnZU1hbmFnZXJ9LiBTdXBwb3J0ZWQgbWFuYWdlcnMgYXJlIG5wbSwgYnVuLCBwbnBtLCB5YXJuLmAsXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICghcHJvY2Vzcy5lbnYuVEVTVCAmJiBwcm9jZXNzLmVudi5HSVRIVUJfQUNUSU9OUyAhPT0gXCJ0cnVlXCIpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgIFwiQ29udGludW91cyBSZWxlYXNlcyBhcmUgb25seSBhdmFpbGFibGUgaW4gR2l0SHViIEFjdGlvbnMuXCIsXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgIEdJVEhVQl9SRVBPU0lUT1JZLFxuICAgICAgICAgICAgR0lUSFVCX1JVTl9JRCxcbiAgICAgICAgICAgIEdJVEhVQl9SVU5fQVRURU1QVCxcbiAgICAgICAgICAgIEdJVEhVQl9BQ1RPUl9JRCxcbiAgICAgICAgICB9ID0gcHJvY2Vzcy5lbnY7XG5cbiAgICAgICAgICBjb25zdCBbb3duZXIsIHJlcG9dID0gR0lUSFVCX1JFUE9TSVRPUlkuc3BsaXQoXCIvXCIpO1xuXG4gICAgICAgICAgY29uc3QgbWV0YWRhdGEgPSB7XG4gICAgICAgICAgICBvd25lcixcbiAgICAgICAgICAgIHJlcG8sXG4gICAgICAgICAgICBydW46IE51bWJlcihHSVRIVUJfUlVOX0lEKSxcbiAgICAgICAgICAgIGF0dGVtcHQ6IE51bWJlcihHSVRIVUJfUlVOX0FUVEVNUFQpLFxuICAgICAgICAgICAgYWN0b3I6IE51bWJlcihHSVRIVUJfQUNUT1JfSUQpLFxuICAgICAgICAgIH07XG5cbiAgICAgICAgICBjb25zdCBrZXkgPSBoYXNoKG1ldGFkYXRhKTtcblxuICAgICAgICAgIGNvbnN0IGNoZWNrUmVzcG9uc2UgPSBhd2FpdCBmZXRjaChuZXcgVVJMKFwiL2NoZWNrXCIsIGFwaVVybCksIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgIG93bmVyLFxuICAgICAgICAgICAgICByZXBvLFxuICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGlmICghY2hlY2tSZXNwb25zZS5vaykge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihhd2FpdCBjaGVja1Jlc3BvbnNlLnRleHQoKSk7XG4gICAgICAgICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgeyBzaGEgfSA9IGF3YWl0IGNoZWNrUmVzcG9uc2UuanNvbigpO1xuXG4gICAgICAgICAgY29uc3QgZGVwczogTWFwPHN0cmluZywgc3RyaW5nPiA9IG5ldyBNYXAoKTsgLy8gcGtnLnByLm5ldyB2ZXJzaW9ucyBvZiB0aGUgcGFja2FnZVxuICAgICAgICAgIGNvbnN0IHJlYWxEZXBzOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHwgbnVsbCA9IGlzUGVlckRlcHNFbmFibGVkXG4gICAgICAgICAgICA/IG5ldyBNYXAoKVxuICAgICAgICAgICAgOiBudWxsOyAvLyByZWFsIHZlcnNpb25zIG9mIHRoZSBwYWNrYWdlLCB1c2VmdWwgZm9yIHBlZXJEZXBlbmRlbmNpZXNcblxuICAgICAgICAgIGNvbnN0IHByaW50SnNvbiA9IHR5cGVvZiBhcmdzLmpzb24gPT09IFwiYm9vbGVhblwiO1xuICAgICAgICAgIGNvbnN0IHNhdmVKc29uID0gdHlwZW9mIGFyZ3MuanNvbiA9PT0gXCJzdHJpbmdcIjtcbiAgICAgICAgICBjb25zdCBqc29uRmlsZVBhdGggPSBzYXZlSnNvbiA/IGFyZ3MuanNvbiA6IFwiXCI7XG4gICAgICAgICAgY29uc3Qgb3V0cHV0TWV0YWRhdGE6IE91dHB1dE1ldGFkYXRhID0ge1xuICAgICAgICAgICAgcGFja2FnZXM6IFtdLFxuICAgICAgICAgICAgdGVtcGxhdGVzOiBbXSxcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgZm9yIChjb25zdCBwIG9mIHBhdGhzKSB7XG4gICAgICAgICAgICBjb25zdCBwSnNvblBhdGggPSBwYXRoLnJlc29sdmUocCwgXCJwYWNrYWdlLmpzb25cIik7XG4gICAgICAgICAgICBjb25zdCBwSnNvbiA9IGF3YWl0IHJlYWRQYWNrYWdlSnNvbihwSnNvblBhdGgpO1xuXG4gICAgICAgICAgICBpZiAoIXBKc29uKSB7XG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIXBKc29uLm5hbWUpIHtcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBcIm5hbWVcIiBmaWVsZCBpbiAke3BKc29uUGF0aH0gc2hvdWxkIGJlIGRlZmluZWRgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChwSnNvbi5wcml2YXRlKSB7XG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoaXNDb21wYWN0KSB7XG4gICAgICAgICAgICAgIGF3YWl0IHZlcmlmeUNvbXBhY3RNb2RlKHBKc29uLm5hbWUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBkZXBVcmwgPSBuZXcgVVJMKFxuICAgICAgICAgICAgICBgLyR7b3duZXJ9LyR7cmVwb30vJHtwSnNvbi5uYW1lfUAke3NoYX1gLFxuICAgICAgICAgICAgICBhcGlVcmwsXG4gICAgICAgICAgICApLmhyZWY7XG4gICAgICAgICAgICBkZXBzLnNldChwSnNvbi5uYW1lLCBkZXBVcmwpO1xuICAgICAgICAgICAgcmVhbERlcHM/LnNldChwSnNvbi5uYW1lLCBwSnNvbi52ZXJzaW9uID8/IGRlcFVybCk7XG5cbiAgICAgICAgICAgIGNvbnN0IHJlc291cmNlID0gYXdhaXQgZmV0Y2goZGVwVXJsKTtcbiAgICAgICAgICAgIGlmIChyZXNvdXJjZS5vaykge1xuICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgICAgYCR7cEpzb24ubmFtZX1AJHthYmJyZXZpYXRlQ29tbWl0SGFzaChzaGEpfSB3YXMgYWxyZWFkeSBwdWJsaXNoZWQgb24gJHtkZXBVcmx9YCxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gQ29sbGVjdCBwYWNrYWdlIG1ldGFkYXRhXG4gICAgICAgICAgICBvdXRwdXRNZXRhZGF0YS5wYWNrYWdlcy5wdXNoKHtcbiAgICAgICAgICAgICAgbmFtZTogcEpzb24ubmFtZSxcbiAgICAgICAgICAgICAgdXJsOiBkZXBVcmwsXG4gICAgICAgICAgICAgIHNoYXN1bTogXCJcIiwgLy8gd2lsbCBiZSBmaWxsZWQgbGF0ZXJcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGZvciAoY29uc3QgdGVtcGxhdGVEaXIgb2YgdGVtcGxhdGVzKSB7XG4gICAgICAgICAgICBjb25zdCBwSnNvblBhdGggPSBwYXRoLnJlc29sdmUodGVtcGxhdGVEaXIsIFwicGFja2FnZS5qc29uXCIpO1xuICAgICAgICAgICAgY29uc3QgcEpzb25Db250ZW50cyA9IGF3YWl0IHRyeVJlYWRGaWxlKHBKc29uUGF0aCk7XG4gICAgICAgICAgICBjb25zdCBwSnNvbiA9IHBKc29uQ29udGVudHNcbiAgICAgICAgICAgICAgPyBwYXJzZVBhY2thZ2VKc29uKHBKc29uQ29udGVudHMpXG4gICAgICAgICAgICAgIDogbnVsbDtcblxuICAgICAgICAgICAgaWYgKCFwSnNvbiB8fCAhcEpzb25Db250ZW50cykge1xuICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgICAgYHNraXBwaW5nICR7dGVtcGxhdGVEaXJ9IGJlY2F1c2UgdGhlcmUncyBubyBwYWNrYWdlLmpzb24gZmlsZWAsXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIXBKc29uLm5hbWUpIHtcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBcIm5hbWVcIiBmaWVsZCBpbiAke3BKc29uUGF0aH0gc2hvdWxkIGJlIGRlZmluZWRgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc29sZS53YXJuKFwicHJlcGFyaW5nIHRlbXBsYXRlOlwiLCBwSnNvbi5uYW1lKTtcblxuICAgICAgICAgICAgY29uc3QgcmVzdG9yZSA9IGF3YWl0IHdyaXRlRGVwcyhcbiAgICAgICAgICAgICAgdGVtcGxhdGVEaXIsXG4gICAgICAgICAgICAgIHBKc29uQ29udGVudHMsXG4gICAgICAgICAgICAgIHBKc29uLFxuICAgICAgICAgICAgICBkZXBzLFxuICAgICAgICAgICAgICByZWFsRGVwcyxcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGNvbnN0IGdpdGlnbm9yZVBhdGggPSBwYXRoLmpvaW4odGVtcGxhdGVEaXIsIFwiLmdpdGlnbm9yZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IGlnID0gaWdub3JlKCkuYWRkKFwibm9kZV9tb2R1bGVzXCIpLmFkZChcIi5naXRcIik7XG5cbiAgICAgICAgICAgIGlmIChmc1N5bmMuZXhpc3RzU3luYyhnaXRpZ25vcmVQYXRoKSkge1xuICAgICAgICAgICAgICBjb25zdCBnaXRpZ25vcmVDb250ZW50ID0gYXdhaXQgZnMucmVhZEZpbGUoZ2l0aWdub3JlUGF0aCwgXCJ1dGY4XCIpO1xuICAgICAgICAgICAgICBpZy5hZGQoZ2l0aWdub3JlQ29udGVudCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGZpbGVzID0gYXdhaXQgZ2xvYihbXCIqKi8qXCJdLCB7XG4gICAgICAgICAgICAgIGN3ZDogdGVtcGxhdGVEaXIsXG4gICAgICAgICAgICAgIGRvdDogdHJ1ZSxcbiAgICAgICAgICAgICAgb25seUZpbGVzOiB0cnVlLFxuICAgICAgICAgICAgICBpZ25vcmU6IFtcIioqL25vZGVfbW9kdWxlc1wiLCBcIi5naXRcIl0sIC8vIGFsd2F5cyBpZ25vcmUgbm9kZV9tb2R1bGVzIGFuZCAuZ2l0XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgY29uc3QgZmlsdGVyZWRGaWxlcyA9IGZpbGVzLmZpbHRlcigoZmlsZSkgPT4gIWlnLmlnbm9yZXMoZmlsZSkpO1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGZpbGVQYXRoIG9mIGZpbHRlcmVkRmlsZXMpIHtcbiAgICAgICAgICAgICAgY29uc3QgZmlsZSA9IGF3YWl0IGZzLnJlYWRGaWxlKHBhdGguam9pbih0ZW1wbGF0ZURpciwgZmlsZVBhdGgpKTtcbiAgICAgICAgICAgICAgY29uc3QgaXNCaW5hcnkgPSBhd2FpdCBpc0JpbmFyeUZpbGUoZmlsZSk7XG4gICAgICAgICAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbZmlsZS5idWZmZXJdLCB7XG4gICAgICAgICAgICAgICAgdHlwZTogXCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW1cIixcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZChcbiAgICAgICAgICAgICAgICBgdGVtcGxhdGU6JHtwSnNvbi5uYW1lfToke2VuY29kZVVSSUNvbXBvbmVudChmaWxlUGF0aCl9YCxcbiAgICAgICAgICAgICAgICBpc0JpbmFyeSA/IGJsb2IgOiBhd2FpdCBibG9iLnRleHQoKSxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGF3YWl0IHJlc3RvcmUoKTtcblxuICAgICAgICAgICAgLy8gQ29sbGVjdCB0ZW1wbGF0ZSBtZXRhZGF0YVxuICAgICAgICAgICAgY29uc3QgdGVtcGxhdGVVcmwgPSBuZXcgVVJMKFxuICAgICAgICAgICAgICBgLyR7b3duZXJ9LyR7cmVwb30vdGVtcGxhdGUvJHtwSnNvbi5uYW1lfWAsXG4gICAgICAgICAgICAgIGFwaVVybCxcbiAgICAgICAgICAgICkuaHJlZjtcbiAgICAgICAgICAgIG91dHB1dE1ldGFkYXRhLnRlbXBsYXRlcy5wdXNoKHtcbiAgICAgICAgICAgICAgbmFtZTogcEpzb24ubmFtZSxcbiAgICAgICAgICAgICAgdXJsOiB0ZW1wbGF0ZVVybCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IG5vRGVmYXVsdFRlbXBsYXRlID0gYXJncy50ZW1wbGF0ZSA9PT0gZmFsc2U7XG5cbiAgICAgICAgICBpZiAoIW5vRGVmYXVsdFRlbXBsYXRlKSB7XG4gICAgICAgICAgICBjb25zdCBwcm9qZWN0ID0gY3JlYXRlRGVmYXVsdFRlbXBsYXRlKFxuICAgICAgICAgICAgICBPYmplY3QuZnJvbUVudHJpZXMoZGVwcy5lbnRyaWVzKCkpLFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgZm9yIChjb25zdCBmaWxlUGF0aCBvZiBPYmplY3Qua2V5cyhwcm9qZWN0KSkge1xuICAgICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoXG4gICAgICAgICAgICAgICAgYHRlbXBsYXRlOmRlZmF1bHQ6JHtlbmNvZGVVUklDb21wb25lbnQoZmlsZVBhdGgpfWAsXG4gICAgICAgICAgICAgICAgcHJvamVjdFtmaWxlUGF0aF0sXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgcmVzdG9yZU1hcCA9IG5ldyBNYXA8XG4gICAgICAgICAgICBzdHJpbmcsXG4gICAgICAgICAgICBBd2FpdGVkPFJldHVyblR5cGU8dHlwZW9mIHdyaXRlRGVwcz4+XG4gICAgICAgICAgPigpO1xuICAgICAgICAgIGZvciAoY29uc3QgcCBvZiBwYXRocykge1xuICAgICAgICAgICAgY29uc3QgcEpzb25QYXRoID0gcGF0aC5yZXNvbHZlKHAsIFwicGFja2FnZS5qc29uXCIpO1xuICAgICAgICAgICAgY29uc3QgcEpzb25Db250ZW50cyA9IGF3YWl0IHRyeVJlYWRGaWxlKHBKc29uUGF0aCk7XG4gICAgICAgICAgICBjb25zdCBwSnNvbiA9IHBKc29uQ29udGVudHNcbiAgICAgICAgICAgICAgPyBwYXJzZVBhY2thZ2VKc29uKHBKc29uQ29udGVudHMpXG4gICAgICAgICAgICAgIDogbnVsbDtcblxuICAgICAgICAgICAgaWYgKCFwSnNvbiB8fCAhcEpzb25Db250ZW50cykge1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHBKc29uLnByaXZhdGUpIHtcbiAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJlc3RvcmVNYXAuc2V0KFxuICAgICAgICAgICAgICBwLFxuICAgICAgICAgICAgICBhd2FpdCB3cml0ZURlcHMocCwgcEpzb25Db250ZW50cywgcEpzb24sIGRlcHMsIHJlYWxEZXBzKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3Qgc2hhc3VtczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuICAgICAgICAgIGZvciAoY29uc3QgcCBvZiBwYXRocykge1xuICAgICAgICAgICAgY29uc3QgcEpzb25QYXRoID0gcGF0aC5yZXNvbHZlKHAsIFwicGFja2FnZS5qc29uXCIpO1xuICAgICAgICAgICAgY29uc3QgcEpzb24gPSBhd2FpdCByZWFkUGFja2FnZUpzb24ocEpzb25QYXRoKTtcbiAgICAgICAgICAgIGlmICghcEpzb24pIHtcbiAgICAgICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICAgIGBza2lwcGluZyAke3B9IGJlY2F1c2UgdGhlcmUncyBubyBwYWNrYWdlLmpzb24gZmlsZWAsXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBpZiAoIXBKc29uLm5hbWUpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgICBgXCJuYW1lXCIgZmllbGQgaW4gJHtwSnNvblBhdGh9IHNob3VsZCBiZSBkZWZpbmVkYCxcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmIChwSnNvbi5wcml2YXRlKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGBza2lwcGluZyAke3B9IGJlY2F1c2UgdGhlIHBhY2thZ2UgaXMgcHJpdmF0ZWApO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgY29uc3QgeyBmaWxlbmFtZSwgc2hhc3VtIH0gPSBhd2FpdCByZXNvbHZlVGFyYmFsbChcbiAgICAgICAgICAgICAgICBwYWNrTWV0aG9kLFxuICAgICAgICAgICAgICAgIHAsXG4gICAgICAgICAgICAgICAgcEpzb24sXG4gICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgc2hhc3Vtc1twSnNvbi5uYW1lXSA9IHNoYXN1bTtcblxuICAgICAgICAgICAgICBjb25zdCBvdXRwdXRQa2cgPSBvdXRwdXRNZXRhZGF0YS5wYWNrYWdlcy5maW5kKFxuICAgICAgICAgICAgICAgIChwKSA9PiBwLm5hbWUgPT09IHBKc29uLm5hbWUsXG4gICAgICAgICAgICAgICkhO1xuICAgICAgICAgICAgICBvdXRwdXRQa2cuc2hhc3VtID0gc2hhc3VtO1xuXG4gICAgICAgICAgICAgIGNvbnN0IGZpbGVQYXRoID0gcGF0aC5yZXNvbHZlKHAsIGZpbGVuYW1lKTtcbiAgICAgICAgICAgICAgY29uc3QgYnVmZmVyID0gYXdhaXQgZnMucmVhZEZpbGUoZmlsZVBhdGgpO1xuXG4gICAgICAgICAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbYnVmZmVyXSwge1xuICAgICAgICAgICAgICAgIHR5cGU6IFwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtXCIsXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoYHBhY2thZ2U6JHtwSnNvbi5uYW1lfWAsIGJsb2IsIGZpbGVuYW1lKTtcblxuICAgICAgICAgICAgICBhd2FpdCBmcy5ybShmaWxlUGF0aCk7XG4gICAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgICBhd2FpdCByZXN0b3JlTWFwLmdldChwKT8uKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgZm9ybURhdGFQYWNrYWdlc1NpemUgPSBbLi4uZm9ybURhdGEuZW50cmllcygpXS5yZWR1Y2UoXG4gICAgICAgICAgICAocHJldiwgW18sIGVudHJ5XSkgPT4gcHJldiArIGdldEZvcm1FbnRyeVNpemUoZW50cnkpLFxuICAgICAgICAgICAgMCxcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgLy8gbXVsdGlwYXJ0IHVwbG9hZGluZ1xuICAgICAgICAgIGlmIChmb3JtRGF0YVBhY2thZ2VzU2l6ZSA+IDEwMjQgKiAxMDI0ICogOTkpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgW25hbWUsIGVudHJ5XSBvZiBmb3JtRGF0YSkge1xuICAgICAgICAgICAgICBpZiAobmFtZS5zdGFydHNXaXRoKFwicGFja2FnZTpcIikpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWxlID0gZW50cnkgYXMgRmlsZTtcbiAgICAgICAgICAgICAgICBjb25zdCBjaHVua1NpemUgPSAxMDI0ICogMTAyNCAqIDU7XG4gICAgICAgICAgICAgICAgaWYgKGZpbGUuc2l6ZSA8PSBjaHVua1NpemUpIHtcbiAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCB0b3RhbENodW5rcyA9IE1hdGguY2VpbChmaWxlLnNpemUgLyBjaHVua1NpemUpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNyZWF0ZU11bHRpcGFydFJlcyA9IGF3YWl0IGZldGNoKGNyZWF0ZU11bHRpcGFydCwge1xuICAgICAgICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJzYi1rZXlcIjoga2V5LFxuICAgICAgICAgICAgICAgICAgICBcInNiLW5hbWVcIjogbmFtZS5zbGljZShcInBhY2thZ2U6XCIubGVuZ3RoKSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKCFjcmVhdGVNdWx0aXBhcnRSZXMub2spIHtcbiAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYXdhaXQgY3JlYXRlTXVsdGlwYXJ0UmVzLnRleHQoKSk7XG4gICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgeyBrZXk6IHVwbG9hZEtleSwgaWQ6IHVwbG9hZElkIH0gPVxuICAgICAgICAgICAgICAgICAgYXdhaXQgY3JlYXRlTXVsdGlwYXJ0UmVzLmpzb24oKTtcblxuICAgICAgICAgICAgICAgIGludGVyZmFjZSBSMlVwbG9hZGVkUGFydCB7XG4gICAgICAgICAgICAgICAgICBwYXJ0TnVtYmVyOiBudW1iZXI7XG4gICAgICAgICAgICAgICAgICBldGFnOiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHVwbG9hZGVkUGFydHM6IFIyVXBsb2FkZWRQYXJ0W10gPSBbXTtcblxuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdG90YWxDaHVua3M7IGkrKykge1xuICAgICAgICAgICAgICAgICAgY29uc3Qgc3RhcnQgPSBpICogY2h1bmtTaXplO1xuICAgICAgICAgICAgICAgICAgY29uc3QgZW5kID0gTWF0aC5taW4oZmlsZS5zaXplLCBzdGFydCArIGNodW5rU2l6ZSk7XG4gICAgICAgICAgICAgICAgICBjb25zdCBjaHVuayA9IGZpbGUuc2xpY2Uoc3RhcnQsIGVuZCk7XG5cbiAgICAgICAgICAgICAgICAgIGNvbnN0IHVwbG9hZE11bHRpcGFydFJlcyA9IGF3YWl0IGZldGNoKHVwbG9hZE11bHRpcGFydCwge1xuICAgICAgICAgICAgICAgICAgICBtZXRob2Q6IFwiUFVUXCIsXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICBrZXk6IHVwbG9hZEtleSxcbiAgICAgICAgICAgICAgICAgICAgICBpZDogdXBsb2FkSWQsXG4gICAgICAgICAgICAgICAgICAgICAgXCJwYXJ0LW51bWJlclwiOiBgJHtpICsgMX1gLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBib2R5OiBjaHVuayxcbiAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICBpZiAoIXVwbG9hZE11bHRpcGFydFJlcy5vaykge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgIGBFcnJvciB1cGxvYWRpbmcgcGFydCAke2kgKyAxfTogJHthd2FpdCB1cGxvYWRNdWx0aXBhcnRSZXMudGV4dCgpfWAsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgY29uc3QgeyBwYXJ0IH0gPSBhd2FpdCB1cGxvYWRNdWx0aXBhcnRSZXMuanNvbigpO1xuICAgICAgICAgICAgICAgICAgdXBsb2FkZWRQYXJ0cy5wdXNoKHBhcnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBjb21wbGV0ZU11bHRpcGFydFJlcyA9IGF3YWl0IGZldGNoKGNvbXBsZXRlTXVsdGlwYXJ0LCB7XG4gICAgICAgICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICBrZXk6IHVwbG9hZEtleSxcbiAgICAgICAgICAgICAgICAgICAgaWQ6IHVwbG9hZElkLFxuICAgICAgICAgICAgICAgICAgICBcInVwbG9hZGVkLXBhcnRzXCI6IEpTT04uc3RyaW5naWZ5KHVwbG9hZGVkUGFydHMpLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAoIWNvbXBsZXRlTXVsdGlwYXJ0UmVzLm9rKSB7XG4gICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgICAgICBgRXJyb3IgY29tcGxldGluZyAke2tleX06ICR7YXdhaXQgY29tcGxldGVNdWx0aXBhcnRSZXMudGV4dCgpfWAsXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHsga2V5OiBjb21wbGV0aW9uS2V5IH0gPVxuICAgICAgICAgICAgICAgICAgYXdhaXQgY29tcGxldGVNdWx0aXBhcnRSZXMuanNvbigpO1xuXG4gICAgICAgICAgICAgICAgZm9ybURhdGEuc2V0KG5hbWUsIGBvYmplY3Q6JHtjb21wbGV0aW9uS2V5fWApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2gocHVibGlzaFVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgXCJzYi1jb21tZW50XCI6IGNvbW1lbnQsXG4gICAgICAgICAgICAgIFwic2ItY29tcGFjdFwiOiBgJHtpc0NvbXBhY3R9YCxcbiAgICAgICAgICAgICAgXCJzYi1rZXlcIjoga2V5LFxuICAgICAgICAgICAgICBcInNiLXNoYXN1bXNcIjogSlNPTi5zdHJpbmdpZnkoc2hhc3VtcyksXG4gICAgICAgICAgICAgIFwic2ItcnVuLWlkXCI6IEdJVEhVQl9SVU5fSUQsXG4gICAgICAgICAgICAgIFwic2ItYmluXCI6IGAke2lzQmluYXJ5QXBwbGljYXRpb259YCxcbiAgICAgICAgICAgICAgXCJzYi1wYWNrYWdlLW1hbmFnZXJcIjogc2VsZWN0ZWRQYWNrYWdlTWFuYWdlcixcbiAgICAgICAgICAgICAgXCJzYi1vbmx5LXRlbXBsYXRlc1wiOiBgJHtpc09ubHlUZW1wbGF0ZXN9YCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBib2R5OiBmb3JtRGF0YSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBjb25zdCBsYXRlclJlcyA9IGF3YWl0IHJlcy5jbG9uZSgpLmpzb24oKTtcbiAgICAgICAgICBhc3NlcnQuZXF1YWwoXG4gICAgICAgICAgICByZXMuc3RhdHVzLFxuICAgICAgICAgICAgMjAwLFxuICAgICAgICAgICAgYHB1Ymxpc2hpbmcgZmFpbGVkOiAke2F3YWl0IHJlcy50ZXh0KCl9YCxcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgY29uc29sZS53YXJuKFwiXFxuXCIpO1xuICAgICAgICAgIGNvbnNvbGUud2FybihcIlx1MjZBMVx1RkUwRiBZb3VyIG5wbSBwYWNrYWdlcyBhcmUgcHVibGlzaGVkLlxcblwiKTtcblxuICAgICAgICAgIGNvbnN0IHBhY2thZ2VMb2dzID0gWy4uLmZvcm1EYXRhLmtleXMoKV1cbiAgICAgICAgICAgIC5maWx0ZXIoKGspID0+IGsuc3RhcnRzV2l0aChcInBhY2thZ2U6XCIpKVxuICAgICAgICAgICAgLm1hcCgobmFtZSwgaSkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBwYWNrYWdlTmFtZSA9IG5hbWUuc2xpY2UoXCJwYWNrYWdlOlwiLmxlbmd0aCk7XG4gICAgICAgICAgICAgIGNvbnN0IHVybCA9IG5ldyBVUkwobGF0ZXJSZXMudXJsc1tpXSk7XG4gICAgICAgICAgICAgIGNvbnN0IHB1YmxpbnRVcmwgPSBuZXcgVVJMKFxuICAgICAgICAgICAgICAgIGAvcGtnLnByLm5ldyR7dXJsLnBhdGhuYW1lfWAsXG4gICAgICAgICAgICAgICAgXCJodHRwczovL3B1YmxpbnQuZGV2XCIsXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIHJldHVybiBgJHtwYWNrYWdlTmFtZX06XG4tIHNoYTogJHtzaGFzdW1zW3BhY2thZ2VOYW1lXX1cbi0gcHVibGludDogJHtwdWJsaW50VXJsfVxuLSBucG06IG5wbSBpICR7dXJsfWA7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmpvaW4oXCJcXG5cXG5cIik7XG5cbiAgICAgICAgICBjb25zb2xlLndhcm4ocGFja2FnZUxvZ3MpO1xuXG4gICAgICAgICAgY29uc3Qgb3V0cHV0ID0gSlNPTi5zdHJpbmdpZnkob3V0cHV0TWV0YWRhdGEsIG51bGwsIDIpO1xuICAgICAgICAgIGlmIChwcmludEpzb24pIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKG91dHB1dCk7IC8vIExvZyBvdXRwdXQgZm9yIHBpcGluZ1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoc2F2ZUpzb24pIHtcbiAgICAgICAgICAgIGF3YWl0IGZzLndyaXRlRmlsZShqc29uRmlsZVBhdGgsIG91dHB1dCk7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oYG1ldGFkYXRhIHdyaXR0ZW4gdG8gJHtqc29uRmlsZVBhdGh9YCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9LFxuICAgIGxpbms6ICgpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG1ldGE6IHt9LFxuICAgICAgICBydW46ICgpID0+IHtcbiAgICAgICAgICAvLyBub29wXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH0sXG4gIH0sXG59KTtcblxucnVuTWFpbihtYWluKVxuICAudGhlbigoKSA9PiBwcm9jZXNzLmV4aXQoMCkpXG4gIC5jYXRjaCgoKSA9PiBwcm9jZXNzLmV4aXQoMSkpO1xuXG50eXBlIFBhY2tNZXRob2QgPSBcIm5wbVwiIHwgXCJwbnBtXCIgfCBcInlhcm5cIjtcblxuYXN5bmMgZnVuY3Rpb24gcmVzb2x2ZVRhcmJhbGwocG06IFBhY2tNZXRob2QsIHA6IHN0cmluZywgcEpzb246IFBhY2thZ2VKc29uKSB7XG4gIGxldCBjbWQgPSBgJHtwbX0gcGFja2A7XG4gIGxldCBmaWxlbmFtZSA9IGAke3BKc29uLm5hbWUhLnJlcGxhY2UoXCIvXCIsIFwiLVwiKX0tJHtwSnNvbi52ZXJzaW9ufS50Z3pgO1xuICBpZiAocG0gPT09IFwieWFyblwiKSB7XG4gICAgY21kICs9IGAgLS1maWxlbmFtZSAke2ZpbGVuYW1lfWA7XG4gIH1cbiAgY29uc3QgeyBzdGRvdXQgfSA9IGF3YWl0IGV6U3Bhd24uYXN5bmMoY21kLCB7XG4gICAgc3RkaW86IFwib3ZlcmxhcHBlZFwiLFxuICAgIGN3ZDogcCxcbiAgfSk7XG4gIGNvbnN0IGxpbmVzID0gc3Rkb3V0LnNwbGl0KFwiXFxuXCIpLmZpbHRlcihCb29sZWFuKTtcblxuICBpZiAocG0gIT09IFwieWFyblwiKSB7XG4gICAgZmlsZW5hbWUgPSBsaW5lc1tsaW5lcy5sZW5ndGggLSAxXS50cmltKCk7XG4gIH1cblxuICBjb25zdCBzaGFzdW0gPSBjcmVhdGVIYXNoKFwic2hhMVwiKVxuICAgIC51cGRhdGUoYXdhaXQgZnMucmVhZEZpbGUocGF0aC5yZXNvbHZlKHAsIGZpbGVuYW1lKSkpXG4gICAgLmRpZ2VzdChcImhleFwiKTtcblxuICByZXR1cm4geyBmaWxlbmFtZSwgc2hhc3VtIH07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHdyaXRlRGVwcyhcbiAgcDogc3RyaW5nLFxuICBwSnNvbkNvbnRlbnRzOiBzdHJpbmcsXG4gIHBKc29uOiBQYWNrYWdlSnNvbixcbiAgZGVwczogTWFwPHN0cmluZywgc3RyaW5nPixcbiAgcmVhbERlcHM6IE1hcDxzdHJpbmcsIHN0cmluZz4gfCBudWxsLFxuKSB7XG4gIGNvbnN0IHBKc29uUGF0aCA9IHBhdGgucmVzb2x2ZShwLCBcInBhY2thZ2UuanNvblwiKTtcblxuICBoaWphY2tEZXBzKGRlcHMsIHBKc29uLmRlcGVuZGVuY2llcyk7XG4gIGhpamFja0RlcHMoZGVwcywgcEpzb24uZGV2RGVwZW5kZW5jaWVzKTtcbiAgaGlqYWNrRGVwcyhkZXBzLCBwSnNvbi5vcHRpb25hbERlcGVuZGVuY2llcyk7XG5cbiAgaWYgKHJlYWxEZXBzKSB7XG4gICAgaGlqYWNrRGVwcyhyZWFsRGVwcywgcEpzb24ucGVlckRlcGVuZGVuY2llcyk7XG4gIH1cblxuICBhd2FpdCB3cml0ZVBhY2thZ2VKU09OKHBKc29uUGF0aCwgcEpzb24pO1xuXG4gIHJldHVybiAoKSA9PiBmcy53cml0ZUZpbGUocEpzb25QYXRoLCBwSnNvbkNvbnRlbnRzKTtcbn1cblxuZnVuY3Rpb24gaGlqYWNrRGVwcyhcbiAgbmV3RGVwczogTWFwPHN0cmluZywgc3RyaW5nPixcbiAgb2xkRGVwcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4pIHtcbiAgaWYgKCFvbGREZXBzKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGZvciAoY29uc3QgW25ld0RlcCwgdXJsXSBvZiBuZXdEZXBzKSB7XG4gICAgaWYgKG5ld0RlcCBpbiBvbGREZXBzKSB7XG4gICAgICBvbGREZXBzW25ld0RlcF0gPSB1cmw7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGdldEZvcm1FbnRyeVNpemUoZW50cnk6IEZvcm1EYXRhRW50cnlWYWx1ZSkge1xuICBpZiAodHlwZW9mIGVudHJ5ID09PSBcInN0cmluZ1wiKSB7XG4gICAgcmV0dXJuIGVudHJ5Lmxlbmd0aDtcbiAgfVxuICByZXR1cm4gZW50cnkuc2l6ZTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gdmVyaWZ5Q29tcGFjdE1vZGUocGFja2FnZU5hbWU6IHN0cmluZykge1xuICBsZXQgbWFuaWZlc3Q6IFBhY2thZ2VNYW5pZmVzdDtcblxuICB0cnkge1xuICAgIG1hbmlmZXN0ID0gYXdhaXQgZ2V0UGFja2FnZU1hbmlmZXN0KHBhY2thZ2VOYW1lKTtcbiAgfSBjYXRjaCB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYHBrZy1wci1uZXcgY2Fubm90IHJlc29sdmUgJHtwYWNrYWdlTmFtZX0gZnJvbSBucG0uIC0tY29tcGFjdCBmbGFnIGRlcGVuZHMgb24gdGhlIHBhY2thZ2UgYmVpbmcgYXZhaWxhYmxlIGluIG5wbS5cbk1ha2Ugc3VyZSB0byBoYXZlIHlvdXIgcGFja2FnZSBvbiBucG0gZmlyc3QuYCxcbiAgICApO1xuICB9XG5cbiAgY29uc3QgaW5zdHJ1Y3Rpb24gPSBgTWFrZSBzdXJlIHRvIGNvbmZpZ3VyZSB0aGUgJ3JlcG9zaXRvcnknIC8gJ3JlcG9zaXRvcnkudXJsJyBmaWVsZCBpbiBpdHMgcGFja2FnZS5qc29uIHByb3Blcmx5LlxuU2VlIGh0dHBzOi8vZG9jcy5ucG1qcy5jb20vY2xpL3YxMC9jb25maWd1cmluZy1ucG0vcGFja2FnZS1qc29uI3JlcG9zaXRvcnkgZm9yIGRldGFpbHMuYDtcblxuICBjb25zdCByZXBvc2l0b3J5ID0gZXh0cmFjdFJlcG9zaXRvcnkobWFuaWZlc3QpO1xuICBpZiAoIXJlcG9zaXRvcnkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgcGtnLXByLW5ldyBjYW5ub3QgZXh0cmFjdCB0aGUgcmVwb3NpdG9yeSBsaW5rIGZyb20gdGhlICR7cGFja2FnZU5hbWV9IG1hbmlmZXN0LiAtLWNvbXBhY3QgZmxhZyByZXF1aXJlcyB0aGUgbGluayB0byBiZSBwcmVzZW50LlxuJHtpbnN0cnVjdGlvbn1gLFxuICAgICk7XG4gIH1cblxuICBjb25zdCBtYXRjaCA9IGV4dHJhY3RPd25lckFuZFJlcG8ocmVwb3NpdG9yeSk7XG4gIGlmICghbWF0Y2gpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgcGtnLXByLW5ldyBjYW5ub3QgZXh0cmFjdCB0aGUgb3duZXIgYW5kIHJlcG8gbmFtZXMgZnJvbSB0aGUgJHtwYWNrYWdlTmFtZX0gcmVwb3NpdG9yeSBsaW5rOiAke3JlcG9zaXRvcnl9LiAtLWNvbXBhY3QgZmxhZyByZXF1aXJlcyB0aGVzZSBuYW1lcy5cbiR7aW5zdHJ1Y3Rpb259YCxcbiAgICApO1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHRyeVJlYWRGaWxlKHA6IHN0cmluZykge1xuICB0cnkge1xuICAgIHJldHVybiBhd2FpdCBmcy5yZWFkRmlsZShwLCBcInV0ZjhcIik7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJlYWRQYWNrYWdlSnNvbihwOiBzdHJpbmcpIHtcbiAgY29uc3QgY29udGVudHMgPSBhd2FpdCB0cnlSZWFkRmlsZShwKTtcbiAgaWYgKGNvbnRlbnRzID09PSBudWxsKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgdHJ5IHtcbiAgICByZXR1cm4gcGFyc2VQYWNrYWdlSnNvbihjb250ZW50cyk7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbmZ1bmN0aW9uIHBhcnNlUGFja2FnZUpzb24oY29udGVudHM6IHN0cmluZykge1xuICB0cnkge1xuICAgIHJldHVybiBKU09OLnBhcnNlKGNvbnRlbnRzKSBhcyBQYWNrYWdlSnNvbjtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cbiIsICJjb25zdCBkZWZhdWx0cyA9IE9iamVjdC5mcmVlemUoe1xuICBpZ25vcmVVbmtub3duOiBmYWxzZSxcbiAgcmVzcGVjdFR5cGU6IGZhbHNlLFxuICByZXNwZWN0RnVuY3Rpb25OYW1lczogZmFsc2UsXG4gIHJlc3BlY3RGdW5jdGlvblByb3BlcnRpZXM6IGZhbHNlLFxuICB1bm9yZGVyZWRPYmplY3RzOiB0cnVlLFxuICB1bm9yZGVyZWRBcnJheXM6IGZhbHNlLFxuICB1bm9yZGVyZWRTZXRzOiBmYWxzZSxcbiAgZXhjbHVkZUtleXM6IHZvaWQgMCxcbiAgZXhjbHVkZVZhbHVlczogdm9pZCAwLFxuICByZXBsYWNlcjogdm9pZCAwXG59KTtcbmZ1bmN0aW9uIG9iamVjdEhhc2gob2JqZWN0LCBvcHRpb25zKSB7XG4gIGlmIChvcHRpb25zKSB7XG4gICAgb3B0aW9ucyA9IHsgLi4uZGVmYXVsdHMsIC4uLm9wdGlvbnMgfTtcbiAgfSBlbHNlIHtcbiAgICBvcHRpb25zID0gZGVmYXVsdHM7XG4gIH1cbiAgY29uc3QgaGFzaGVyID0gY3JlYXRlSGFzaGVyKG9wdGlvbnMpO1xuICBoYXNoZXIuZGlzcGF0Y2gob2JqZWN0KTtcbiAgcmV0dXJuIGhhc2hlci50b1N0cmluZygpO1xufVxuY29uc3QgZGVmYXVsdFByb3RvdHlwZXNLZXlzID0gT2JqZWN0LmZyZWV6ZShbXG4gIFwicHJvdG90eXBlXCIsXG4gIFwiX19wcm90b19fXCIsXG4gIFwiY29uc3RydWN0b3JcIlxuXSk7XG5mdW5jdGlvbiBjcmVhdGVIYXNoZXIob3B0aW9ucykge1xuICBsZXQgYnVmZiA9IFwiXCI7XG4gIGxldCBjb250ZXh0ID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTtcbiAgY29uc3Qgd3JpdGUgPSAoc3RyKSA9PiB7XG4gICAgYnVmZiArPSBzdHI7XG4gIH07XG4gIHJldHVybiB7XG4gICAgdG9TdHJpbmcoKSB7XG4gICAgICByZXR1cm4gYnVmZjtcbiAgICB9LFxuICAgIGdldENvbnRleHQoKSB7XG4gICAgICByZXR1cm4gY29udGV4dDtcbiAgICB9LFxuICAgIGRpc3BhdGNoKHZhbHVlKSB7XG4gICAgICBpZiAob3B0aW9ucy5yZXBsYWNlcikge1xuICAgICAgICB2YWx1ZSA9IG9wdGlvbnMucmVwbGFjZXIodmFsdWUpO1xuICAgICAgfVxuICAgICAgY29uc3QgdHlwZSA9IHZhbHVlID09PSBudWxsID8gXCJudWxsXCIgOiB0eXBlb2YgdmFsdWU7XG4gICAgICByZXR1cm4gdGhpc1t0eXBlXSh2YWx1ZSk7XG4gICAgfSxcbiAgICBvYmplY3Qob2JqZWN0KSB7XG4gICAgICBpZiAob2JqZWN0ICYmIHR5cGVvZiBvYmplY3QudG9KU09OID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub2JqZWN0KG9iamVjdC50b0pTT04oKSk7XG4gICAgICB9XG4gICAgICBjb25zdCBvYmpTdHJpbmcgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqZWN0KTtcbiAgICAgIGxldCBvYmpUeXBlID0gXCJcIjtcbiAgICAgIGNvbnN0IG9iamVjdExlbmd0aCA9IG9ialN0cmluZy5sZW5ndGg7XG4gICAgICBpZiAob2JqZWN0TGVuZ3RoIDwgMTApIHtcbiAgICAgICAgb2JqVHlwZSA9IFwidW5rbm93bjpbXCIgKyBvYmpTdHJpbmcgKyBcIl1cIjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG9ialR5cGUgPSBvYmpTdHJpbmcuc2xpY2UoOCwgb2JqZWN0TGVuZ3RoIC0gMSk7XG4gICAgICB9XG4gICAgICBvYmpUeXBlID0gb2JqVHlwZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgbGV0IG9iamVjdE51bWJlciA9IG51bGw7XG4gICAgICBpZiAoKG9iamVjdE51bWJlciA9IGNvbnRleHQuZ2V0KG9iamVjdCkpID09PSB2b2lkIDApIHtcbiAgICAgICAgY29udGV4dC5zZXQob2JqZWN0LCBjb250ZXh0LnNpemUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2goXCJbQ0lSQ1VMQVI6XCIgKyBvYmplY3ROdW1iZXIgKyBcIl1cIik7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIEJ1ZmZlciAhPT0gXCJ1bmRlZmluZWRcIiAmJiBCdWZmZXIuaXNCdWZmZXIgJiYgQnVmZmVyLmlzQnVmZmVyKG9iamVjdCkpIHtcbiAgICAgICAgd3JpdGUoXCJidWZmZXI6XCIpO1xuICAgICAgICByZXR1cm4gd3JpdGUob2JqZWN0LnRvU3RyaW5nKFwidXRmOFwiKSk7XG4gICAgICB9XG4gICAgICBpZiAob2JqVHlwZSAhPT0gXCJvYmplY3RcIiAmJiBvYmpUeXBlICE9PSBcImZ1bmN0aW9uXCIgJiYgb2JqVHlwZSAhPT0gXCJhc3luY2Z1bmN0aW9uXCIpIHtcbiAgICAgICAgaWYgKHRoaXNbb2JqVHlwZV0pIHtcbiAgICAgICAgICB0aGlzW29ialR5cGVdKG9iamVjdCk7XG4gICAgICAgIH0gZWxzZSBpZiAoIW9wdGlvbnMuaWdub3JlVW5rbm93bikge1xuICAgICAgICAgIHRoaXMudW5rb3duKG9iamVjdCwgb2JqVHlwZSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxldCBrZXlzID0gT2JqZWN0LmtleXMob2JqZWN0KTtcbiAgICAgICAgaWYgKG9wdGlvbnMudW5vcmRlcmVkT2JqZWN0cykge1xuICAgICAgICAgIGtleXMgPSBrZXlzLnNvcnQoKTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgZXh0cmFLZXlzID0gW107XG4gICAgICAgIGlmIChvcHRpb25zLnJlc3BlY3RUeXBlICE9PSBmYWxzZSAmJiAhaXNOYXRpdmVGdW5jdGlvbihvYmplY3QpKSB7XG4gICAgICAgICAgZXh0cmFLZXlzID0gZGVmYXVsdFByb3RvdHlwZXNLZXlzO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zLmV4Y2x1ZGVLZXlzKSB7XG4gICAgICAgICAga2V5cyA9IGtleXMuZmlsdGVyKChrZXkpID0+IHtcbiAgICAgICAgICAgIHJldHVybiAhb3B0aW9ucy5leGNsdWRlS2V5cyhrZXkpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIGV4dHJhS2V5cyA9IGV4dHJhS2V5cy5maWx0ZXIoKGtleSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuICFvcHRpb25zLmV4Y2x1ZGVLZXlzKGtleSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgd3JpdGUoXCJvYmplY3Q6XCIgKyAoa2V5cy5sZW5ndGggKyBleHRyYUtleXMubGVuZ3RoKSArIFwiOlwiKTtcbiAgICAgICAgY29uc3QgZGlzcGF0Y2hGb3JLZXkgPSAoa2V5KSA9PiB7XG4gICAgICAgICAgdGhpcy5kaXNwYXRjaChrZXkpO1xuICAgICAgICAgIHdyaXRlKFwiOlwiKTtcbiAgICAgICAgICBpZiAoIW9wdGlvbnMuZXhjbHVkZVZhbHVlcykge1xuICAgICAgICAgICAgdGhpcy5kaXNwYXRjaChvYmplY3Rba2V5XSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHdyaXRlKFwiLFwiKTtcbiAgICAgICAgfTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgICAgICAgIGRpc3BhdGNoRm9yS2V5KGtleSk7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgZXh0cmFLZXlzKSB7XG4gICAgICAgICAgZGlzcGF0Y2hGb3JLZXkoa2V5KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgYXJyYXkoYXJyLCB1bm9yZGVyZWQpIHtcbiAgICAgIHVub3JkZXJlZCA9IHVub3JkZXJlZCA9PT0gdm9pZCAwID8gb3B0aW9ucy51bm9yZGVyZWRBcnJheXMgIT09IGZhbHNlIDogdW5vcmRlcmVkO1xuICAgICAgd3JpdGUoXCJhcnJheTpcIiArIGFyci5sZW5ndGggKyBcIjpcIik7XG4gICAgICBpZiAoIXVub3JkZXJlZCB8fCBhcnIubGVuZ3RoIDw9IDEpIHtcbiAgICAgICAgZm9yIChjb25zdCBlbnRyeSBvZiBhcnIpIHtcbiAgICAgICAgICB0aGlzLmRpc3BhdGNoKGVudHJ5KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCBjb250ZXh0QWRkaXRpb25zID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTtcbiAgICAgIGNvbnN0IGVudHJpZXMgPSBhcnIubWFwKChlbnRyeSkgPT4ge1xuICAgICAgICBjb25zdCBoYXNoZXIgPSBjcmVhdGVIYXNoZXIob3B0aW9ucyk7XG4gICAgICAgIGhhc2hlci5kaXNwYXRjaChlbnRyeSk7XG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIGhhc2hlci5nZXRDb250ZXh0KCkpIHtcbiAgICAgICAgICBjb250ZXh0QWRkaXRpb25zLnNldChrZXksIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaGFzaGVyLnRvU3RyaW5nKCk7XG4gICAgICB9KTtcbiAgICAgIGNvbnRleHQgPSBjb250ZXh0QWRkaXRpb25zO1xuICAgICAgZW50cmllcy5zb3J0KCk7XG4gICAgICByZXR1cm4gdGhpcy5hcnJheShlbnRyaWVzLCBmYWxzZSk7XG4gICAgfSxcbiAgICBkYXRlKGRhdGUpIHtcbiAgICAgIHJldHVybiB3cml0ZShcImRhdGU6XCIgKyBkYXRlLnRvSlNPTigpKTtcbiAgICB9LFxuICAgIHN5bWJvbChzeW0pIHtcbiAgICAgIHJldHVybiB3cml0ZShcInN5bWJvbDpcIiArIHN5bS50b1N0cmluZygpKTtcbiAgICB9LFxuICAgIHVua293bih2YWx1ZSwgdHlwZSkge1xuICAgICAgd3JpdGUodHlwZSk7XG4gICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHdyaXRlKFwiOlwiKTtcbiAgICAgIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUuZW50cmllcyA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFycmF5KFxuICAgICAgICAgIEFycmF5LmZyb20odmFsdWUuZW50cmllcygpKSxcbiAgICAgICAgICB0cnVlXG4gICAgICAgICAgLyogb3JkZXJlZCAqL1xuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sXG4gICAgZXJyb3IoZXJyKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJlcnJvcjpcIiArIGVyci50b1N0cmluZygpKTtcbiAgICB9LFxuICAgIGJvb2xlYW4oYm9vbCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwiYm9vbDpcIiArIGJvb2wpO1xuICAgIH0sXG4gICAgc3RyaW5nKHN0cmluZykge1xuICAgICAgd3JpdGUoXCJzdHJpbmc6XCIgKyBzdHJpbmcubGVuZ3RoICsgXCI6XCIpO1xuICAgICAgd3JpdGUoc3RyaW5nKTtcbiAgICB9LFxuICAgIGZ1bmN0aW9uKGZuKSB7XG4gICAgICB3cml0ZShcImZuOlwiKTtcbiAgICAgIGlmIChpc05hdGl2ZUZ1bmN0aW9uKGZuKSkge1xuICAgICAgICB0aGlzLmRpc3BhdGNoKFwiW25hdGl2ZV1cIik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmRpc3BhdGNoKGZuLnRvU3RyaW5nKCkpO1xuICAgICAgfVxuICAgICAgaWYgKG9wdGlvbnMucmVzcGVjdEZ1bmN0aW9uTmFtZXMgIT09IGZhbHNlKSB7XG4gICAgICAgIHRoaXMuZGlzcGF0Y2goXCJmdW5jdGlvbi1uYW1lOlwiICsgU3RyaW5nKGZuLm5hbWUpKTtcbiAgICAgIH1cbiAgICAgIGlmIChvcHRpb25zLnJlc3BlY3RGdW5jdGlvblByb3BlcnRpZXMpIHtcbiAgICAgICAgdGhpcy5vYmplY3QoZm4pO1xuICAgICAgfVxuICAgIH0sXG4gICAgbnVtYmVyKG51bWJlcikge1xuICAgICAgcmV0dXJuIHdyaXRlKFwibnVtYmVyOlwiICsgbnVtYmVyKTtcbiAgICB9LFxuICAgIHhtbCh4bWwpIHtcbiAgICAgIHJldHVybiB3cml0ZShcInhtbDpcIiArIHhtbC50b1N0cmluZygpKTtcbiAgICB9LFxuICAgIG51bGwoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJOdWxsXCIpO1xuICAgIH0sXG4gICAgdW5kZWZpbmVkKCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwiVW5kZWZpbmVkXCIpO1xuICAgIH0sXG4gICAgcmVnZXhwKHJlZ2V4KSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJyZWdleDpcIiArIHJlZ2V4LnRvU3RyaW5nKCkpO1xuICAgIH0sXG4gICAgdWludDhhcnJheShhcnIpIHtcbiAgICAgIHdyaXRlKFwidWludDhhcnJheTpcIik7XG4gICAgICByZXR1cm4gdGhpcy5kaXNwYXRjaChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcnIpKTtcbiAgICB9LFxuICAgIHVpbnQ4Y2xhbXBlZGFycmF5KGFycikge1xuICAgICAgd3JpdGUoXCJ1aW50OGNsYW1wZWRhcnJheTpcIik7XG4gICAgICByZXR1cm4gdGhpcy5kaXNwYXRjaChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcnIpKTtcbiAgICB9LFxuICAgIGludDhhcnJheShhcnIpIHtcbiAgICAgIHdyaXRlKFwiaW50OGFycmF5OlwiKTtcbiAgICAgIHJldHVybiB0aGlzLmRpc3BhdGNoKEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFycikpO1xuICAgIH0sXG4gICAgdWludDE2YXJyYXkoYXJyKSB7XG4gICAgICB3cml0ZShcInVpbnQxNmFycmF5OlwiKTtcbiAgICAgIHJldHVybiB0aGlzLmRpc3BhdGNoKEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFycikpO1xuICAgIH0sXG4gICAgaW50MTZhcnJheShhcnIpIHtcbiAgICAgIHdyaXRlKFwiaW50MTZhcnJheTpcIik7XG4gICAgICByZXR1cm4gdGhpcy5kaXNwYXRjaChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcnIpKTtcbiAgICB9LFxuICAgIHVpbnQzMmFycmF5KGFycikge1xuICAgICAgd3JpdGUoXCJ1aW50MzJhcnJheTpcIik7XG4gICAgICByZXR1cm4gdGhpcy5kaXNwYXRjaChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcnIpKTtcbiAgICB9LFxuICAgIGludDMyYXJyYXkoYXJyKSB7XG4gICAgICB3cml0ZShcImludDMyYXJyYXk6XCIpO1xuICAgICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2goQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJyKSk7XG4gICAgfSxcbiAgICBmbG9hdDMyYXJyYXkoYXJyKSB7XG4gICAgICB3cml0ZShcImZsb2F0MzJhcnJheTpcIik7XG4gICAgICByZXR1cm4gdGhpcy5kaXNwYXRjaChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcnIpKTtcbiAgICB9LFxuICAgIGZsb2F0NjRhcnJheShhcnIpIHtcbiAgICAgIHdyaXRlKFwiZmxvYXQ2NGFycmF5OlwiKTtcbiAgICAgIHJldHVybiB0aGlzLmRpc3BhdGNoKEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFycikpO1xuICAgIH0sXG4gICAgYXJyYXlidWZmZXIoYXJyKSB7XG4gICAgICB3cml0ZShcImFycmF5YnVmZmVyOlwiKTtcbiAgICAgIHJldHVybiB0aGlzLmRpc3BhdGNoKG5ldyBVaW50OEFycmF5KGFycikpO1xuICAgIH0sXG4gICAgdXJsKHVybCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwidXJsOlwiICsgdXJsLnRvU3RyaW5nKCkpO1xuICAgIH0sXG4gICAgbWFwKG1hcCkge1xuICAgICAgd3JpdGUoXCJtYXA6XCIpO1xuICAgICAgY29uc3QgYXJyID0gWy4uLm1hcF07XG4gICAgICByZXR1cm4gdGhpcy5hcnJheShhcnIsIG9wdGlvbnMudW5vcmRlcmVkU2V0cyAhPT0gZmFsc2UpO1xuICAgIH0sXG4gICAgc2V0KHNldCkge1xuICAgICAgd3JpdGUoXCJzZXQ6XCIpO1xuICAgICAgY29uc3QgYXJyID0gWy4uLnNldF07XG4gICAgICByZXR1cm4gdGhpcy5hcnJheShhcnIsIG9wdGlvbnMudW5vcmRlcmVkU2V0cyAhPT0gZmFsc2UpO1xuICAgIH0sXG4gICAgZmlsZShmaWxlKSB7XG4gICAgICB3cml0ZShcImZpbGU6XCIpO1xuICAgICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2goW2ZpbGUubmFtZSwgZmlsZS5zaXplLCBmaWxlLnR5cGUsIGZpbGUubGFzdE1vZGZpZWRdKTtcbiAgICB9LFxuICAgIGJsb2IoKSB7XG4gICAgICBpZiAob3B0aW9ucy5pZ25vcmVVbmtub3duKSB7XG4gICAgICAgIHJldHVybiB3cml0ZShcIltibG9iXVwiKTtcbiAgICAgIH1cbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0hhc2hpbmcgQmxvYiBvYmplY3RzIGlzIGN1cnJlbnRseSBub3Qgc3VwcG9ydGVkXFxuVXNlIFwib3B0aW9ucy5yZXBsYWNlclwiIG9yIFwib3B0aW9ucy5pZ25vcmVVbmtub3duXCJcXG4nXG4gICAgICApO1xuICAgIH0sXG4gICAgZG9td2luZG93KCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwiZG9td2luZG93XCIpO1xuICAgIH0sXG4gICAgYmlnaW50KG51bWJlcikge1xuICAgICAgcmV0dXJuIHdyaXRlKFwiYmlnaW50OlwiICsgbnVtYmVyLnRvU3RyaW5nKCkpO1xuICAgIH0sXG4gICAgLyogTm9kZS5qcyBzdGFuZGFyZCBuYXRpdmUgb2JqZWN0cyAqL1xuICAgIHByb2Nlc3MoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJwcm9jZXNzXCIpO1xuICAgIH0sXG4gICAgdGltZXIoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJ0aW1lclwiKTtcbiAgICB9LFxuICAgIHBpcGUoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJwaXBlXCIpO1xuICAgIH0sXG4gICAgdGNwKCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwidGNwXCIpO1xuICAgIH0sXG4gICAgdWRwKCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwidWRwXCIpO1xuICAgIH0sXG4gICAgdHR5KCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwidHR5XCIpO1xuICAgIH0sXG4gICAgc3RhdHdhdGNoZXIoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJzdGF0d2F0Y2hlclwiKTtcbiAgICB9LFxuICAgIHNlY3VyZWNvbnRleHQoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJzZWN1cmVjb250ZXh0XCIpO1xuICAgIH0sXG4gICAgY29ubmVjdGlvbigpIHtcbiAgICAgIHJldHVybiB3cml0ZShcImNvbm5lY3Rpb25cIik7XG4gICAgfSxcbiAgICB6bGliKCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwiemxpYlwiKTtcbiAgICB9LFxuICAgIGNvbnRleHQoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJjb250ZXh0XCIpO1xuICAgIH0sXG4gICAgbm9kZXNjcmlwdCgpIHtcbiAgICAgIHJldHVybiB3cml0ZShcIm5vZGVzY3JpcHRcIik7XG4gICAgfSxcbiAgICBodHRwcGFyc2VyKCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwiaHR0cHBhcnNlclwiKTtcbiAgICB9LFxuICAgIGRhdGF2aWV3KCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwiZGF0YXZpZXdcIik7XG4gICAgfSxcbiAgICBzaWduYWwoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJzaWduYWxcIik7XG4gICAgfSxcbiAgICBmc2V2ZW50KCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwiZnNldmVudFwiKTtcbiAgICB9LFxuICAgIHRsc3dyYXAoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJ0bHN3cmFwXCIpO1xuICAgIH1cbiAgfTtcbn1cbmNvbnN0IG5hdGl2ZUZ1bmMgPSBcIltuYXRpdmUgY29kZV0gfVwiO1xuY29uc3QgbmF0aXZlRnVuY0xlbmd0aCA9IG5hdGl2ZUZ1bmMubGVuZ3RoO1xuZnVuY3Rpb24gaXNOYXRpdmVGdW5jdGlvbihmKSB7XG4gIGlmICh0eXBlb2YgZiAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiBGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChmKS5zbGljZSgtbmF0aXZlRnVuY0xlbmd0aCkgPT09IG5hdGl2ZUZ1bmM7XG59XG5cbmNsYXNzIFdvcmRBcnJheSB7XG4gIGNvbnN0cnVjdG9yKHdvcmRzLCBzaWdCeXRlcykge1xuICAgIHdvcmRzID0gdGhpcy53b3JkcyA9IHdvcmRzIHx8IFtdO1xuICAgIHRoaXMuc2lnQnl0ZXMgPSBzaWdCeXRlcyA9PT0gdm9pZCAwID8gd29yZHMubGVuZ3RoICogNCA6IHNpZ0J5dGVzO1xuICB9XG4gIHRvU3RyaW5nKGVuY29kZXIpIHtcbiAgICByZXR1cm4gKGVuY29kZXIgfHwgSGV4KS5zdHJpbmdpZnkodGhpcyk7XG4gIH1cbiAgY29uY2F0KHdvcmRBcnJheSkge1xuICAgIHRoaXMuY2xhbXAoKTtcbiAgICBpZiAodGhpcy5zaWdCeXRlcyAlIDQpIHtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgd29yZEFycmF5LnNpZ0J5dGVzOyBpKyspIHtcbiAgICAgICAgY29uc3QgdGhhdEJ5dGUgPSB3b3JkQXJyYXkud29yZHNbaSA+Pj4gMl0gPj4+IDI0IC0gaSAlIDQgKiA4ICYgMjU1O1xuICAgICAgICB0aGlzLndvcmRzW3RoaXMuc2lnQnl0ZXMgKyBpID4+PiAyXSB8PSB0aGF0Qnl0ZSA8PCAyNCAtICh0aGlzLnNpZ0J5dGVzICsgaSkgJSA0ICogODtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB3b3JkQXJyYXkuc2lnQnl0ZXM7IGogKz0gNCkge1xuICAgICAgICB0aGlzLndvcmRzW3RoaXMuc2lnQnl0ZXMgKyBqID4+PiAyXSA9IHdvcmRBcnJheS53b3Jkc1tqID4+PiAyXTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5zaWdCeXRlcyArPSB3b3JkQXJyYXkuc2lnQnl0ZXM7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgY2xhbXAoKSB7XG4gICAgdGhpcy53b3Jkc1t0aGlzLnNpZ0J5dGVzID4+PiAyXSAmPSA0Mjk0OTY3Mjk1IDw8IDMyIC0gdGhpcy5zaWdCeXRlcyAlIDQgKiA4O1xuICAgIHRoaXMud29yZHMubGVuZ3RoID0gTWF0aC5jZWlsKHRoaXMuc2lnQnl0ZXMgLyA0KTtcbiAgfVxuICBjbG9uZSgpIHtcbiAgICByZXR1cm4gbmV3IFdvcmRBcnJheShbLi4udGhpcy53b3Jkc10pO1xuICB9XG59XG5jb25zdCBIZXggPSB7XG4gIHN0cmluZ2lmeSh3b3JkQXJyYXkpIHtcbiAgICBjb25zdCBoZXhDaGFycyA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgd29yZEFycmF5LnNpZ0J5dGVzOyBpKyspIHtcbiAgICAgIGNvbnN0IGJpdGUgPSB3b3JkQXJyYXkud29yZHNbaSA+Pj4gMl0gPj4+IDI0IC0gaSAlIDQgKiA4ICYgMjU1O1xuICAgICAgaGV4Q2hhcnMucHVzaCgoYml0ZSA+Pj4gNCkudG9TdHJpbmcoMTYpLCAoYml0ZSAmIDE1KS50b1N0cmluZygxNikpO1xuICAgIH1cbiAgICByZXR1cm4gaGV4Q2hhcnMuam9pbihcIlwiKTtcbiAgfVxufTtcbmNvbnN0IEJhc2U2NCA9IHtcbiAgc3RyaW5naWZ5KHdvcmRBcnJheSkge1xuICAgIGNvbnN0IGtleVN0ciA9IFwiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODlcIjtcbiAgICBjb25zdCBiYXNlNjRDaGFycyA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgd29yZEFycmF5LnNpZ0J5dGVzOyBpICs9IDMpIHtcbiAgICAgIGNvbnN0IGJ5dGUxID0gd29yZEFycmF5LndvcmRzW2kgPj4+IDJdID4+PiAyNCAtIGkgJSA0ICogOCAmIDI1NTtcbiAgICAgIGNvbnN0IGJ5dGUyID0gd29yZEFycmF5LndvcmRzW2kgKyAxID4+PiAyXSA+Pj4gMjQgLSAoaSArIDEpICUgNCAqIDggJiAyNTU7XG4gICAgICBjb25zdCBieXRlMyA9IHdvcmRBcnJheS53b3Jkc1tpICsgMiA+Pj4gMl0gPj4+IDI0IC0gKGkgKyAyKSAlIDQgKiA4ICYgMjU1O1xuICAgICAgY29uc3QgdHJpcGxldCA9IGJ5dGUxIDw8IDE2IHwgYnl0ZTIgPDwgOCB8IGJ5dGUzO1xuICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCA0ICYmIGkgKiA4ICsgaiAqIDYgPCB3b3JkQXJyYXkuc2lnQnl0ZXMgKiA4OyBqKyspIHtcbiAgICAgICAgYmFzZTY0Q2hhcnMucHVzaChrZXlTdHIuY2hhckF0KHRyaXBsZXQgPj4+IDYgKiAoMyAtIGopICYgNjMpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGJhc2U2NENoYXJzLmpvaW4oXCJcIik7XG4gIH1cbn07XG5jb25zdCBMYXRpbjEgPSB7XG4gIHBhcnNlKGxhdGluMVN0cikge1xuICAgIGNvbnN0IGxhdGluMVN0ckxlbmd0aCA9IGxhdGluMVN0ci5sZW5ndGg7XG4gICAgY29uc3Qgd29yZHMgPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxhdGluMVN0ckxlbmd0aDsgaSsrKSB7XG4gICAgICB3b3Jkc1tpID4+PiAyXSB8PSAobGF0aW4xU3RyLmNoYXJDb2RlQXQoaSkgJiAyNTUpIDw8IDI0IC0gaSAlIDQgKiA4O1xuICAgIH1cbiAgICByZXR1cm4gbmV3IFdvcmRBcnJheSh3b3JkcywgbGF0aW4xU3RyTGVuZ3RoKTtcbiAgfVxufTtcbmNvbnN0IFV0ZjggPSB7XG4gIHBhcnNlKHV0ZjhTdHIpIHtcbiAgICByZXR1cm4gTGF0aW4xLnBhcnNlKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudCh1dGY4U3RyKSkpO1xuICB9XG59O1xuY2xhc3MgQnVmZmVyZWRCbG9ja0FsZ29yaXRobSB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuX2RhdGEgPSBuZXcgV29yZEFycmF5KCk7XG4gICAgdGhpcy5fbkRhdGFCeXRlcyA9IDA7XG4gICAgdGhpcy5fbWluQnVmZmVyU2l6ZSA9IDA7XG4gICAgdGhpcy5ibG9ja1NpemUgPSA1MTIgLyAzMjtcbiAgfVxuICByZXNldCgpIHtcbiAgICB0aGlzLl9kYXRhID0gbmV3IFdvcmRBcnJheSgpO1xuICAgIHRoaXMuX25EYXRhQnl0ZXMgPSAwO1xuICB9XG4gIF9hcHBlbmQoZGF0YSkge1xuICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgZGF0YSA9IFV0ZjgucGFyc2UoZGF0YSk7XG4gICAgfVxuICAgIHRoaXMuX2RhdGEuY29uY2F0KGRhdGEpO1xuICAgIHRoaXMuX25EYXRhQnl0ZXMgKz0gZGF0YS5zaWdCeXRlcztcbiAgfVxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIF9kb1Byb2Nlc3NCbG9jayhfZGF0YVdvcmRzLCBfb2Zmc2V0KSB7XG4gIH1cbiAgX3Byb2Nlc3MoZG9GbHVzaCkge1xuICAgIGxldCBwcm9jZXNzZWRXb3JkcztcbiAgICBsZXQgbkJsb2Nrc1JlYWR5ID0gdGhpcy5fZGF0YS5zaWdCeXRlcyAvICh0aGlzLmJsb2NrU2l6ZSAqIDQpO1xuICAgIGlmIChkb0ZsdXNoKSB7XG4gICAgICBuQmxvY2tzUmVhZHkgPSBNYXRoLmNlaWwobkJsb2Nrc1JlYWR5KTtcbiAgICB9IGVsc2Uge1xuICAgICAgbkJsb2Nrc1JlYWR5ID0gTWF0aC5tYXgoKG5CbG9ja3NSZWFkeSB8IDApIC0gdGhpcy5fbWluQnVmZmVyU2l6ZSwgMCk7XG4gICAgfVxuICAgIGNvbnN0IG5Xb3Jkc1JlYWR5ID0gbkJsb2Nrc1JlYWR5ICogdGhpcy5ibG9ja1NpemU7XG4gICAgY29uc3QgbkJ5dGVzUmVhZHkgPSBNYXRoLm1pbihuV29yZHNSZWFkeSAqIDQsIHRoaXMuX2RhdGEuc2lnQnl0ZXMpO1xuICAgIGlmIChuV29yZHNSZWFkeSkge1xuICAgICAgZm9yIChsZXQgb2Zmc2V0ID0gMDsgb2Zmc2V0IDwgbldvcmRzUmVhZHk7IG9mZnNldCArPSB0aGlzLmJsb2NrU2l6ZSkge1xuICAgICAgICB0aGlzLl9kb1Byb2Nlc3NCbG9jayh0aGlzLl9kYXRhLndvcmRzLCBvZmZzZXQpO1xuICAgICAgfVxuICAgICAgcHJvY2Vzc2VkV29yZHMgPSB0aGlzLl9kYXRhLndvcmRzLnNwbGljZSgwLCBuV29yZHNSZWFkeSk7XG4gICAgICB0aGlzLl9kYXRhLnNpZ0J5dGVzIC09IG5CeXRlc1JlYWR5O1xuICAgIH1cbiAgICByZXR1cm4gbmV3IFdvcmRBcnJheShwcm9jZXNzZWRXb3JkcywgbkJ5dGVzUmVhZHkpO1xuICB9XG59XG5jbGFzcyBIYXNoZXIgZXh0ZW5kcyBCdWZmZXJlZEJsb2NrQWxnb3JpdGhtIHtcbiAgdXBkYXRlKG1lc3NhZ2VVcGRhdGUpIHtcbiAgICB0aGlzLl9hcHBlbmQobWVzc2FnZVVwZGF0ZSk7XG4gICAgdGhpcy5fcHJvY2VzcygpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIGZpbmFsaXplKG1lc3NhZ2VVcGRhdGUpIHtcbiAgICBpZiAobWVzc2FnZVVwZGF0ZSkge1xuICAgICAgdGhpcy5fYXBwZW5kKG1lc3NhZ2VVcGRhdGUpO1xuICAgIH1cbiAgfVxufVxuXG5jb25zdCBIID0gW1xuICAxNzc5MDMzNzAzLFxuICAtMTE1MDgzMzAxOSxcbiAgMTAxMzkwNDI0MixcbiAgLTE1MjE0ODY1MzQsXG4gIDEzNTk4OTMxMTksXG4gIC0xNjk0MTQ0MzcyLFxuICA1Mjg3MzQ2MzUsXG4gIDE1NDE0NTkyMjVcbl07XG5jb25zdCBLID0gW1xuICAxMTE2MzUyNDA4LFxuICAxODk5NDQ3NDQxLFxuICAtMTI0NTY0MzgyNSxcbiAgLTM3Mzk1NzcyMyxcbiAgOTYxOTg3MTYzLFxuICAxNTA4OTcwOTkzLFxuICAtMTg0MTMzMTU0OCxcbiAgLTE0MjQyMDQwNzUsXG4gIC02NzA1ODYyMTYsXG4gIDMxMDU5ODQwMSxcbiAgNjA3MjI1Mjc4LFxuICAxNDI2ODgxOTg3LFxuICAxOTI1MDc4Mzg4LFxuICAtMjEzMjg4OTA5MCxcbiAgLTE2ODAwNzkxOTMsXG4gIC0xMDQ2NzQ0NzE2LFxuICAtNDU5NTc2ODk1LFxuICAtMjcyNzQyNTIyLFxuICAyNjQzNDcwNzgsXG4gIDYwNDgwNzYyOCxcbiAgNzcwMjU1OTgzLFxuICAxMjQ5MTUwMTIyLFxuICAxNTU1MDgxNjkyLFxuICAxOTk2MDY0OTg2LFxuICAtMTc0MDc0NjQxNCxcbiAgLTE0NzMxMzI5NDcsXG4gIC0xMzQxOTcwNDg4LFxuICAtMTA4NDY1MzYyNSxcbiAgLTk1ODM5NTQwNSxcbiAgLTcxMDQzODU4NSxcbiAgMTEzOTI2OTkzLFxuICAzMzgyNDE4OTUsXG4gIDY2NjMwNzIwNSxcbiAgNzczNTI5OTEyLFxuICAxMjk0NzU3MzcyLFxuICAxMzk2MTgyMjkxLFxuICAxNjk1MTgzNzAwLFxuICAxOTg2NjYxMDUxLFxuICAtMjExNzk0MDk0NixcbiAgLTE4MzgwMTEyNTksXG4gIC0xNTY0NDgxMzc1LFxuICAtMTQ3NDY2NDg4NSxcbiAgLTEwMzUyMzY0OTYsXG4gIC05NDkyMDI1MjUsXG4gIC03Nzg5MDE0NzksXG4gIC02OTQ2MTQ0OTIsXG4gIC0yMDAzOTUzODcsXG4gIDI3NTQyMzM0NCxcbiAgNDMwMjI3NzM0LFxuICA1MDY5NDg2MTYsXG4gIDY1OTA2MDU1NixcbiAgODgzOTk3ODc3LFxuICA5NTgxMzk1NzEsXG4gIDEzMjI4MjIyMTgsXG4gIDE1MzcwMDIwNjMsXG4gIDE3NDc4NzM3NzksXG4gIDE5NTU1NjIyMjIsXG4gIDIwMjQxMDQ4MTUsXG4gIC0yMDY3MjM2ODQ0LFxuICAtMTkzMzExNDg3MixcbiAgLTE4NjY1MzA4MjIsXG4gIC0xNTM4MjMzMTA5LFxuICAtMTA5MDkzNTgxNyxcbiAgLTk2NTY0MTk5OFxuXTtcbmNvbnN0IFcgPSBbXTtcbmNsYXNzIFNIQTI1NiBleHRlbmRzIEhhc2hlciB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKC4uLmFyZ3VtZW50cyk7XG4gICAgdGhpcy5faGFzaCA9IG5ldyBXb3JkQXJyYXkoWy4uLkhdKTtcbiAgfVxuICByZXNldCgpIHtcbiAgICBzdXBlci5yZXNldCgpO1xuICAgIHRoaXMuX2hhc2ggPSBuZXcgV29yZEFycmF5KFsuLi5IXSk7XG4gIH1cbiAgX2RvUHJvY2Vzc0Jsb2NrKE0sIG9mZnNldCkge1xuICAgIGNvbnN0IEgyID0gdGhpcy5faGFzaC53b3JkcztcbiAgICBsZXQgYSA9IEgyWzBdO1xuICAgIGxldCBiID0gSDJbMV07XG4gICAgbGV0IGMgPSBIMlsyXTtcbiAgICBsZXQgZCA9IEgyWzNdO1xuICAgIGxldCBlID0gSDJbNF07XG4gICAgbGV0IGYgPSBIMls1XTtcbiAgICBsZXQgZyA9IEgyWzZdO1xuICAgIGxldCBoID0gSDJbN107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCA2NDsgaSsrKSB7XG4gICAgICBpZiAoaSA8IDE2KSB7XG4gICAgICAgIFdbaV0gPSBNW29mZnNldCArIGldIHwgMDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGdhbW1hMHggPSBXW2kgLSAxNV07XG4gICAgICAgIGNvbnN0IGdhbW1hMCA9IChnYW1tYTB4IDw8IDI1IHwgZ2FtbWEweCA+Pj4gNykgXiAoZ2FtbWEweCA8PCAxNCB8IGdhbW1hMHggPj4+IDE4KSBeIGdhbW1hMHggPj4+IDM7XG4gICAgICAgIGNvbnN0IGdhbW1hMXggPSBXW2kgLSAyXTtcbiAgICAgICAgY29uc3QgZ2FtbWExID0gKGdhbW1hMXggPDwgMTUgfCBnYW1tYTF4ID4+PiAxNykgXiAoZ2FtbWExeCA8PCAxMyB8IGdhbW1hMXggPj4+IDE5KSBeIGdhbW1hMXggPj4+IDEwO1xuICAgICAgICBXW2ldID0gZ2FtbWEwICsgV1tpIC0gN10gKyBnYW1tYTEgKyBXW2kgLSAxNl07XG4gICAgICB9XG4gICAgICBjb25zdCBjaCA9IGUgJiBmIF4gfmUgJiBnO1xuICAgICAgY29uc3QgbWFqID0gYSAmIGIgXiBhICYgYyBeIGIgJiBjO1xuICAgICAgY29uc3Qgc2lnbWEwID0gKGEgPDwgMzAgfCBhID4+PiAyKSBeIChhIDw8IDE5IHwgYSA+Pj4gMTMpIF4gKGEgPDwgMTAgfCBhID4+PiAyMik7XG4gICAgICBjb25zdCBzaWdtYTEgPSAoZSA8PCAyNiB8IGUgPj4+IDYpIF4gKGUgPDwgMjEgfCBlID4+PiAxMSkgXiAoZSA8PCA3IHwgZSA+Pj4gMjUpO1xuICAgICAgY29uc3QgdDEgPSBoICsgc2lnbWExICsgY2ggKyBLW2ldICsgV1tpXTtcbiAgICAgIGNvbnN0IHQyID0gc2lnbWEwICsgbWFqO1xuICAgICAgaCA9IGc7XG4gICAgICBnID0gZjtcbiAgICAgIGYgPSBlO1xuICAgICAgZSA9IGQgKyB0MSB8IDA7XG4gICAgICBkID0gYztcbiAgICAgIGMgPSBiO1xuICAgICAgYiA9IGE7XG4gICAgICBhID0gdDEgKyB0MiB8IDA7XG4gICAgfVxuICAgIEgyWzBdID0gSDJbMF0gKyBhIHwgMDtcbiAgICBIMlsxXSA9IEgyWzFdICsgYiB8IDA7XG4gICAgSDJbMl0gPSBIMlsyXSArIGMgfCAwO1xuICAgIEgyWzNdID0gSDJbM10gKyBkIHwgMDtcbiAgICBIMls0XSA9IEgyWzRdICsgZSB8IDA7XG4gICAgSDJbNV0gPSBIMls1XSArIGYgfCAwO1xuICAgIEgyWzZdID0gSDJbNl0gKyBnIHwgMDtcbiAgICBIMls3XSA9IEgyWzddICsgaCB8IDA7XG4gIH1cbiAgZmluYWxpemUobWVzc2FnZVVwZGF0ZSkge1xuICAgIHN1cGVyLmZpbmFsaXplKG1lc3NhZ2VVcGRhdGUpO1xuICAgIGNvbnN0IG5CaXRzVG90YWwgPSB0aGlzLl9uRGF0YUJ5dGVzICogODtcbiAgICBjb25zdCBuQml0c0xlZnQgPSB0aGlzLl9kYXRhLnNpZ0J5dGVzICogODtcbiAgICB0aGlzLl9kYXRhLndvcmRzW25CaXRzTGVmdCA+Pj4gNV0gfD0gMTI4IDw8IDI0IC0gbkJpdHNMZWZ0ICUgMzI7XG4gICAgdGhpcy5fZGF0YS53b3Jkc1sobkJpdHNMZWZ0ICsgNjQgPj4+IDkgPDwgNCkgKyAxNF0gPSBNYXRoLmZsb29yKFxuICAgICAgbkJpdHNUb3RhbCAvIDQyOTQ5NjcyOTZcbiAgICApO1xuICAgIHRoaXMuX2RhdGEud29yZHNbKG5CaXRzTGVmdCArIDY0ID4+PiA5IDw8IDQpICsgMTVdID0gbkJpdHNUb3RhbDtcbiAgICB0aGlzLl9kYXRhLnNpZ0J5dGVzID0gdGhpcy5fZGF0YS53b3Jkcy5sZW5ndGggKiA0O1xuICAgIHRoaXMuX3Byb2Nlc3MoKTtcbiAgICByZXR1cm4gdGhpcy5faGFzaDtcbiAgfVxufVxuZnVuY3Rpb24gc2hhMjU2KG1lc3NhZ2UpIHtcbiAgcmV0dXJuIG5ldyBTSEEyNTYoKS5maW5hbGl6ZShtZXNzYWdlKS50b1N0cmluZygpO1xufVxuZnVuY3Rpb24gc2hhMjU2YmFzZTY0KG1lc3NhZ2UpIHtcbiAgcmV0dXJuIG5ldyBTSEEyNTYoKS5maW5hbGl6ZShtZXNzYWdlKS50b1N0cmluZyhCYXNlNjQpO1xufVxuXG5mdW5jdGlvbiBoYXNoKG9iamVjdCwgb3B0aW9ucyA9IHt9KSB7XG4gIGNvbnN0IGhhc2hlZCA9IHR5cGVvZiBvYmplY3QgPT09IFwic3RyaW5nXCIgPyBvYmplY3QgOiBvYmplY3RIYXNoKG9iamVjdCwgb3B0aW9ucyk7XG4gIHJldHVybiBzaGEyNTZiYXNlNjQoaGFzaGVkKS5zbGljZSgwLCAxMCk7XG59XG5cbmZ1bmN0aW9uIG11cm11ckhhc2goa2V5LCBzZWVkID0gMCkge1xuICBpZiAodHlwZW9mIGtleSA9PT0gXCJzdHJpbmdcIikge1xuICAgIGtleSA9IGNyZWF0ZUJ1ZmZlcihrZXkpO1xuICB9XG4gIGxldCBpID0gMDtcbiAgbGV0IGgxID0gc2VlZDtcbiAgbGV0IGsxO1xuICBsZXQgaDFiO1xuICBjb25zdCByZW1haW5kZXIgPSBrZXkubGVuZ3RoICYgMztcbiAgY29uc3QgYnl0ZXMgPSBrZXkubGVuZ3RoIC0gcmVtYWluZGVyO1xuICBjb25zdCBjMSA9IDM0MzI5MTgzNTM7XG4gIGNvbnN0IGMyID0gNDYxODQ1OTA3O1xuICB3aGlsZSAoaSA8IGJ5dGVzKSB7XG4gICAgazEgPSBrZXlbaV0gJiAyNTUgfCAoa2V5WysraV0gJiAyNTUpIDw8IDggfCAoa2V5WysraV0gJiAyNTUpIDw8IDE2IHwgKGtleVsrK2ldICYgMjU1KSA8PCAyNDtcbiAgICArK2k7XG4gICAgazEgPSAoazEgJiA2NTUzNSkgKiBjMSArICgoKGsxID4+PiAxNikgKiBjMSAmIDY1NTM1KSA8PCAxNikgJiA0Mjk0OTY3Mjk1O1xuICAgIGsxID0gazEgPDwgMTUgfCBrMSA+Pj4gMTc7XG4gICAgazEgPSAoazEgJiA2NTUzNSkgKiBjMiArICgoKGsxID4+PiAxNikgKiBjMiAmIDY1NTM1KSA8PCAxNikgJiA0Mjk0OTY3Mjk1O1xuICAgIGgxIF49IGsxO1xuICAgIGgxID0gaDEgPDwgMTMgfCBoMSA+Pj4gMTk7XG4gICAgaDFiID0gKGgxICYgNjU1MzUpICogNSArICgoKGgxID4+PiAxNikgKiA1ICYgNjU1MzUpIDw8IDE2KSAmIDQyOTQ5NjcyOTU7XG4gICAgaDEgPSAoaDFiICYgNjU1MzUpICsgMjc0OTIgKyAoKChoMWIgPj4+IDE2KSArIDU4OTY0ICYgNjU1MzUpIDw8IDE2KTtcbiAgfVxuICBrMSA9IDA7XG4gIHN3aXRjaCAocmVtYWluZGVyKSB7XG4gICAgY2FzZSAzOiB7XG4gICAgICBrMSBePSAoa2V5W2kgKyAyXSAmIDI1NSkgPDwgMTY7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgY2FzZSAyOiB7XG4gICAgICBrMSBePSAoa2V5W2kgKyAxXSAmIDI1NSkgPDwgODtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBjYXNlIDE6IHtcbiAgICAgIGsxIF49IGtleVtpXSAmIDI1NTtcbiAgICAgIGsxID0gKGsxICYgNjU1MzUpICogYzEgKyAoKChrMSA+Pj4gMTYpICogYzEgJiA2NTUzNSkgPDwgMTYpICYgNDI5NDk2NzI5NTtcbiAgICAgIGsxID0gazEgPDwgMTUgfCBrMSA+Pj4gMTc7XG4gICAgICBrMSA9IChrMSAmIDY1NTM1KSAqIGMyICsgKCgoazEgPj4+IDE2KSAqIGMyICYgNjU1MzUpIDw8IDE2KSAmIDQyOTQ5NjcyOTU7XG4gICAgICBoMSBePSBrMTtcbiAgICB9XG4gIH1cbiAgaDEgXj0ga2V5Lmxlbmd0aDtcbiAgaDEgXj0gaDEgPj4+IDE2O1xuICBoMSA9IChoMSAmIDY1NTM1KSAqIDIyNDY4MjI1MDcgKyAoKChoMSA+Pj4gMTYpICogMjI0NjgyMjUwNyAmIDY1NTM1KSA8PCAxNikgJiA0Mjk0OTY3Mjk1O1xuICBoMSBePSBoMSA+Pj4gMTM7XG4gIGgxID0gKGgxICYgNjU1MzUpICogMzI2NjQ4OTkwOSArICgoKGgxID4+PiAxNikgKiAzMjY2NDg5OTA5ICYgNjU1MzUpIDw8IDE2KSAmIDQyOTQ5NjcyOTU7XG4gIGgxIF49IGgxID4+PiAxNjtcbiAgcmV0dXJuIGgxID4+PiAwO1xufVxuZnVuY3Rpb24gY3JlYXRlQnVmZmVyKHZhbCkge1xuICByZXR1cm4gbmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKHZhbCk7XG59XG5cbmZ1bmN0aW9uIGlzRXF1YWwob2JqZWN0MSwgb2JqZWN0MiwgaGFzaE9wdGlvbnMgPSB7fSkge1xuICBpZiAob2JqZWN0MSA9PT0gb2JqZWN0Mikge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIGlmIChvYmplY3RIYXNoKG9iamVjdDEsIGhhc2hPcHRpb25zKSA9PT0gb2JqZWN0SGFzaChvYmplY3QyLCBoYXNoT3B0aW9ucykpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIGRpZmYob2JqMSwgb2JqMiwgb3B0cyA9IHt9KSB7XG4gIGNvbnN0IGgxID0gX3RvSGFzaGVkT2JqZWN0KG9iajEsIG9wdHMpO1xuICBjb25zdCBoMiA9IF90b0hhc2hlZE9iamVjdChvYmoyLCBvcHRzKTtcbiAgcmV0dXJuIF9kaWZmKGgxLCBoMiwgb3B0cyk7XG59XG5mdW5jdGlvbiBfZGlmZihoMSwgaDIsIG9wdHMgPSB7fSkge1xuICBjb25zdCBkaWZmcyA9IFtdO1xuICBjb25zdCBhbGxQcm9wcyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KFtcbiAgICAuLi5PYmplY3Qua2V5cyhoMS5wcm9wcyB8fCB7fSksXG4gICAgLi4uT2JqZWN0LmtleXMoaDIucHJvcHMgfHwge30pXG4gIF0pO1xuICBpZiAoaDEucHJvcHMgJiYgaDIucHJvcHMpIHtcbiAgICBmb3IgKGNvbnN0IHByb3Agb2YgYWxsUHJvcHMpIHtcbiAgICAgIGNvbnN0IHAxID0gaDEucHJvcHNbcHJvcF07XG4gICAgICBjb25zdCBwMiA9IGgyLnByb3BzW3Byb3BdO1xuICAgICAgaWYgKHAxICYmIHAyKSB7XG4gICAgICAgIGRpZmZzLnB1c2goLi4uX2RpZmYoaDEucHJvcHM/Lltwcm9wXSwgaDIucHJvcHM/Lltwcm9wXSwgb3B0cykpO1xuICAgICAgfSBlbHNlIGlmIChwMSB8fCBwMikge1xuICAgICAgICBkaWZmcy5wdXNoKFxuICAgICAgICAgIG5ldyBEaWZmRW50cnkoKHAyIHx8IHAxKS5rZXksIHAxID8gXCJyZW1vdmVkXCIgOiBcImFkZGVkXCIsIHAyLCBwMSlcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgaWYgKGFsbFByb3BzLnNpemUgPT09IDAgJiYgaDEuaGFzaCAhPT0gaDIuaGFzaCkge1xuICAgIGRpZmZzLnB1c2gobmV3IERpZmZFbnRyeSgoaDIgfHwgaDEpLmtleSwgXCJjaGFuZ2VkXCIsIGgyLCBoMSkpO1xuICB9XG4gIHJldHVybiBkaWZmcztcbn1cbmZ1bmN0aW9uIF90b0hhc2hlZE9iamVjdChvYmosIG9wdHMsIGtleSA9IFwiXCIpIHtcbiAgaWYgKG9iaiAmJiB0eXBlb2Ygb2JqICE9PSBcIm9iamVjdFwiKSB7XG4gICAgcmV0dXJuIG5ldyBEaWZmSGFzaGVkT2JqZWN0KGtleSwgb2JqLCBvYmplY3RIYXNoKG9iaiwgb3B0cykpO1xuICB9XG4gIGNvbnN0IHByb3BzID0ge307XG4gIGNvbnN0IGhhc2hlcyA9IFtdO1xuICBmb3IgKGNvbnN0IF9rZXkgaW4gb2JqKSB7XG4gICAgcHJvcHNbX2tleV0gPSBfdG9IYXNoZWRPYmplY3QoXG4gICAgICBvYmpbX2tleV0sXG4gICAgICBvcHRzLFxuICAgICAga2V5ID8gYCR7a2V5fS4ke19rZXl9YCA6IF9rZXlcbiAgICApO1xuICAgIGhhc2hlcy5wdXNoKHByb3BzW19rZXldLmhhc2gpO1xuICB9XG4gIHJldHVybiBuZXcgRGlmZkhhc2hlZE9iamVjdChrZXksIG9iaiwgYHske2hhc2hlcy5qb2luKFwiOlwiKX19YCwgcHJvcHMpO1xufVxuY2xhc3MgRGlmZkVudHJ5IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtY29uc3RydWN0b3JcbiAgY29uc3RydWN0b3Ioa2V5LCB0eXBlLCBuZXdWYWx1ZSwgb2xkVmFsdWUpIHtcbiAgICB0aGlzLmtleSA9IGtleTtcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIHRoaXMubmV3VmFsdWUgPSBuZXdWYWx1ZTtcbiAgICB0aGlzLm9sZFZhbHVlID0gb2xkVmFsdWU7XG4gIH1cbiAgdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMudG9KU09OKCk7XG4gIH1cbiAgdG9KU09OKCkge1xuICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XG4gICAgICBjYXNlIFwiYWRkZWRcIjoge1xuICAgICAgICByZXR1cm4gYEFkZGVkICAgXFxgJHt0aGlzLmtleX1cXGBgO1xuICAgICAgfVxuICAgICAgY2FzZSBcInJlbW92ZWRcIjoge1xuICAgICAgICByZXR1cm4gYFJlbW92ZWQgXFxgJHt0aGlzLmtleX1cXGBgO1xuICAgICAgfVxuICAgICAgY2FzZSBcImNoYW5nZWRcIjoge1xuICAgICAgICByZXR1cm4gYENoYW5nZWQgXFxgJHt0aGlzLmtleX1cXGAgZnJvbSBcXGAke3RoaXMub2xkVmFsdWU/LnRvU3RyaW5nKCkgfHwgXCItXCJ9XFxgIHRvIFxcYCR7dGhpcy5uZXdWYWx1ZS50b1N0cmluZygpfVxcYGA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5jbGFzcyBEaWZmSGFzaGVkT2JqZWN0IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtY29uc3RydWN0b3JcbiAgY29uc3RydWN0b3Ioa2V5LCB2YWx1ZSwgaGFzaCwgcHJvcHMpIHtcbiAgICB0aGlzLmtleSA9IGtleTtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5oYXNoID0gaGFzaDtcbiAgICB0aGlzLnByb3BzID0gcHJvcHM7XG4gIH1cbiAgdG9TdHJpbmcoKSB7XG4gICAgaWYgKHRoaXMucHJvcHMpIHtcbiAgICAgIHJldHVybiBgeyR7T2JqZWN0LmtleXModGhpcy5wcm9wcykuam9pbihcIixcIil9fWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh0aGlzLnZhbHVlKTtcbiAgICB9XG4gIH1cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IGsgPSB0aGlzLmtleSB8fCBcIi5cIjtcbiAgICBpZiAodGhpcy5wcm9wcykge1xuICAgICAgcmV0dXJuIGAke2t9KHske09iamVjdC5rZXlzKHRoaXMucHJvcHMpLmpvaW4oXCIsXCIpfX0pYDtcbiAgICB9XG4gICAgcmV0dXJuIGAke2t9KCR7dGhpcy52YWx1ZX0pYDtcbiAgfVxufVxuXG5leHBvcnQgeyBkaWZmLCBoYXNoLCBpc0VxdWFsLCBtdXJtdXJIYXNoLCBvYmplY3RIYXNoLCBzaGEyNTYsIHNoYTI1NmJhc2U2NCB9O1xuIiwgImV4cG9ydCB7IGEgYXMgY29uc29sYSwgYyBhcyBjcmVhdGVDb25zb2xhLCBhIGFzIGRlZmF1bHQgfSBmcm9tICcuL3NoYXJlZC9jb25zb2xhLjM2YzAwMzRmLm1qcyc7XG5leHBvcnQgeyBDb25zb2xhLCBMb2dMZXZlbHMsIExvZ1R5cGVzIH0gZnJvbSAnLi9jb3JlLm1qcyc7XG5pbXBvcnQgJy4vc2hhcmVkL2NvbnNvbGEuMDZhZDhhNjQubWpzJztcbmltcG9ydCAnbm9kZTpwcm9jZXNzJztcbmltcG9ydCAnLi91dGlscy5tanMnO1xuaW1wb3J0ICdub2RlOnR0eSc7XG5pbXBvcnQgJ25vZGU6dXRpbCc7XG5pbXBvcnQgJ25vZGU6cGF0aCc7XG4iLCAiaW1wb3J0IGNvbnNvbGEgZnJvbSAnY29uc29sYSc7XG5pbXBvcnQgeyBjb2xvcnMgfSBmcm9tICdjb25zb2xhL3V0aWxzJztcblxuZnVuY3Rpb24gdG9BcnJheSh2YWwpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsKSkge1xuICAgIHJldHVybiB2YWw7XG4gIH1cbiAgcmV0dXJuIHZhbCA9PT0gdm9pZCAwID8gW10gOiBbdmFsXTtcbn1cbmZ1bmN0aW9uIGZvcm1hdExpbmVDb2x1bW5zKGxpbmVzLCBsaW5lUHJlZml4ID0gXCJcIikge1xuICBjb25zdCBtYXhMZW5naCA9IFtdO1xuICBmb3IgKGNvbnN0IGxpbmUgb2YgbGluZXMpIHtcbiAgICBmb3IgKGNvbnN0IFtpLCBlbGVtZW50XSBvZiBsaW5lLmVudHJpZXMoKSkge1xuICAgICAgbWF4TGVuZ2hbaV0gPSBNYXRoLm1heChtYXhMZW5naFtpXSB8fCAwLCBlbGVtZW50Lmxlbmd0aCk7XG4gICAgfVxuICB9XG4gIHJldHVybiBsaW5lcy5tYXAoXG4gICAgKGwpID0+IGwubWFwKFxuICAgICAgKGMsIGkpID0+IGxpbmVQcmVmaXggKyBjW2kgPT09IDAgPyBcInBhZFN0YXJ0XCIgOiBcInBhZEVuZFwiXShtYXhMZW5naFtpXSlcbiAgICApLmpvaW4oXCIgIFwiKVxuICApLmpvaW4oXCJcXG5cIik7XG59XG5mdW5jdGlvbiByZXNvbHZlVmFsdWUoaW5wdXQpIHtcbiAgcmV0dXJuIHR5cGVvZiBpbnB1dCA9PT0gXCJmdW5jdGlvblwiID8gaW5wdXQoKSA6IGlucHV0O1xufVxuY2xhc3MgQ0xJRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2UsIGNvZGUpIHtcbiAgICBzdXBlcihtZXNzYWdlKTtcbiAgICB0aGlzLmNvZGUgPSBjb2RlO1xuICAgIHRoaXMubmFtZSA9IFwiQ0xJRXJyb3JcIjtcbiAgfVxufVxuXG5jb25zdCBOVU1CRVJfQ0hBUl9SRSA9IC9cXGQvO1xuY29uc3QgU1RSX1NQTElUVEVSUyA9IFtcIi1cIiwgXCJfXCIsIFwiL1wiLCBcIi5cIl07XG5mdW5jdGlvbiBpc1VwcGVyY2FzZShjaGFyID0gXCJcIikge1xuICBpZiAoTlVNQkVSX0NIQVJfUkUudGVzdChjaGFyKSkge1xuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cbiAgcmV0dXJuIGNoYXIgIT09IGNoYXIudG9Mb3dlckNhc2UoKTtcbn1cbmZ1bmN0aW9uIHNwbGl0QnlDYXNlKHN0ciwgc2VwYXJhdG9ycykge1xuICBjb25zdCBzcGxpdHRlcnMgPSBzZXBhcmF0b3JzID8/IFNUUl9TUExJVFRFUlM7XG4gIGNvbnN0IHBhcnRzID0gW107XG4gIGlmICghc3RyIHx8IHR5cGVvZiBzdHIgIT09IFwic3RyaW5nXCIpIHtcbiAgICByZXR1cm4gcGFydHM7XG4gIH1cbiAgbGV0IGJ1ZmYgPSBcIlwiO1xuICBsZXQgcHJldmlvdXNVcHBlcjtcbiAgbGV0IHByZXZpb3VzU3BsaXR0ZXI7XG4gIGZvciAoY29uc3QgY2hhciBvZiBzdHIpIHtcbiAgICBjb25zdCBpc1NwbGl0dGVyID0gc3BsaXR0ZXJzLmluY2x1ZGVzKGNoYXIpO1xuICAgIGlmIChpc1NwbGl0dGVyID09PSB0cnVlKSB7XG4gICAgICBwYXJ0cy5wdXNoKGJ1ZmYpO1xuICAgICAgYnVmZiA9IFwiXCI7XG4gICAgICBwcmV2aW91c1VwcGVyID0gdm9pZCAwO1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGNvbnN0IGlzVXBwZXIgPSBpc1VwcGVyY2FzZShjaGFyKTtcbiAgICBpZiAocHJldmlvdXNTcGxpdHRlciA9PT0gZmFsc2UpIHtcbiAgICAgIGlmIChwcmV2aW91c1VwcGVyID09PSBmYWxzZSAmJiBpc1VwcGVyID09PSB0cnVlKSB7XG4gICAgICAgIHBhcnRzLnB1c2goYnVmZik7XG4gICAgICAgIGJ1ZmYgPSBjaGFyO1xuICAgICAgICBwcmV2aW91c1VwcGVyID0gaXNVcHBlcjtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAocHJldmlvdXNVcHBlciA9PT0gdHJ1ZSAmJiBpc1VwcGVyID09PSBmYWxzZSAmJiBidWZmLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgY29uc3QgbGFzdENoYXIgPSBidWZmLmF0KC0xKTtcbiAgICAgICAgcGFydHMucHVzaChidWZmLnNsaWNlKDAsIE1hdGgubWF4KDAsIGJ1ZmYubGVuZ3RoIC0gMSkpKTtcbiAgICAgICAgYnVmZiA9IGxhc3RDaGFyICsgY2hhcjtcbiAgICAgICAgcHJldmlvdXNVcHBlciA9IGlzVXBwZXI7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgIH1cbiAgICBidWZmICs9IGNoYXI7XG4gICAgcHJldmlvdXNVcHBlciA9IGlzVXBwZXI7XG4gICAgcHJldmlvdXNTcGxpdHRlciA9IGlzU3BsaXR0ZXI7XG4gIH1cbiAgcGFydHMucHVzaChidWZmKTtcbiAgcmV0dXJuIHBhcnRzO1xufVxuZnVuY3Rpb24gdXBwZXJGaXJzdChzdHIpIHtcbiAgcmV0dXJuIHN0ciA/IHN0clswXS50b1VwcGVyQ2FzZSgpICsgc3RyLnNsaWNlKDEpIDogXCJcIjtcbn1cbmZ1bmN0aW9uIGxvd2VyRmlyc3Qoc3RyKSB7XG4gIHJldHVybiBzdHIgPyBzdHJbMF0udG9Mb3dlckNhc2UoKSArIHN0ci5zbGljZSgxKSA6IFwiXCI7XG59XG5mdW5jdGlvbiBwYXNjYWxDYXNlKHN0ciwgb3B0cykge1xuICByZXR1cm4gc3RyID8gKEFycmF5LmlzQXJyYXkoc3RyKSA/IHN0ciA6IHNwbGl0QnlDYXNlKHN0cikpLm1hcCgocCkgPT4gdXBwZXJGaXJzdChvcHRzPy5ub3JtYWxpemUgPyBwLnRvTG93ZXJDYXNlKCkgOiBwKSkuam9pbihcIlwiKSA6IFwiXCI7XG59XG5mdW5jdGlvbiBjYW1lbENhc2Uoc3RyLCBvcHRzKSB7XG4gIHJldHVybiBsb3dlckZpcnN0KHBhc2NhbENhc2Uoc3RyIHx8IFwiXCIsIG9wdHMpKTtcbn1cbmZ1bmN0aW9uIGtlYmFiQ2FzZShzdHIsIGpvaW5lcikge1xuICByZXR1cm4gc3RyID8gKEFycmF5LmlzQXJyYXkoc3RyKSA/IHN0ciA6IHNwbGl0QnlDYXNlKHN0cikpLm1hcCgocCkgPT4gcC50b0xvd2VyQ2FzZSgpKS5qb2luKGpvaW5lciA/PyBcIi1cIikgOiBcIlwiO1xufVxuXG5mdW5jdGlvbiB0b0FycihhbnkpIHtcbiAgcmV0dXJuIGFueSA9PSB2b2lkIDAgPyBbXSA6IEFycmF5LmlzQXJyYXkoYW55KSA/IGFueSA6IFthbnldO1xufVxuZnVuY3Rpb24gdG9WYWwob3V0LCBrZXksIHZhbCwgb3B0cykge1xuICBsZXQgeDtcbiAgY29uc3Qgb2xkID0gb3V0W2tleV07XG4gIGNvbnN0IG54dCA9IH5vcHRzLnN0cmluZy5pbmRleE9mKGtleSkgPyB2YWwgPT0gdm9pZCAwIHx8IHZhbCA9PT0gdHJ1ZSA/IFwiXCIgOiBTdHJpbmcodmFsKSA6IHR5cGVvZiB2YWwgPT09IFwiYm9vbGVhblwiID8gdmFsIDogfm9wdHMuYm9vbGVhbi5pbmRleE9mKGtleSkgPyB2YWwgPT09IFwiZmFsc2VcIiA/IGZhbHNlIDogdmFsID09PSBcInRydWVcIiB8fCAob3V0Ll8ucHVzaCgoeCA9ICt2YWwsIHggKiAwID09PSAwKSA/IHggOiB2YWwpLCAhIXZhbCkgOiAoeCA9ICt2YWwsIHggKiAwID09PSAwKSA/IHggOiB2YWw7XG4gIG91dFtrZXldID0gb2xkID09IHZvaWQgMCA/IG54dCA6IEFycmF5LmlzQXJyYXkob2xkKSA/IG9sZC5jb25jYXQobnh0KSA6IFtvbGQsIG54dF07XG59XG5mdW5jdGlvbiBwYXJzZVJhd0FyZ3MoYXJncyA9IFtdLCBvcHRzID0ge30pIHtcbiAgbGV0IGs7XG4gIGxldCBhcnI7XG4gIGxldCBhcmc7XG4gIGxldCBuYW1lO1xuICBsZXQgdmFsO1xuICBjb25zdCBvdXQgPSB7IF86IFtdIH07XG4gIGxldCBpID0gMDtcbiAgbGV0IGogPSAwO1xuICBsZXQgaWR4ID0gMDtcbiAgY29uc3QgbGVuID0gYXJncy5sZW5ndGg7XG4gIGNvbnN0IGFsaWJpID0gb3B0cy5hbGlhcyAhPT0gdm9pZCAwO1xuICBjb25zdCBzdHJpY3QgPSBvcHRzLnVua25vd24gIT09IHZvaWQgMDtcbiAgY29uc3QgZGVmYXVsdHMgPSBvcHRzLmRlZmF1bHQgIT09IHZvaWQgMDtcbiAgb3B0cy5hbGlhcyA9IG9wdHMuYWxpYXMgfHwge307XG4gIG9wdHMuc3RyaW5nID0gdG9BcnIob3B0cy5zdHJpbmcpO1xuICBvcHRzLmJvb2xlYW4gPSB0b0FycihvcHRzLmJvb2xlYW4pO1xuICBpZiAoYWxpYmkpIHtcbiAgICBmb3IgKGsgaW4gb3B0cy5hbGlhcykge1xuICAgICAgYXJyID0gb3B0cy5hbGlhc1trXSA9IHRvQXJyKG9wdHMuYWxpYXNba10pO1xuICAgICAgZm9yIChpID0gMDsgaSA8IGFyci5sZW5ndGg7IGkrKykge1xuICAgICAgICAob3B0cy5hbGlhc1thcnJbaV1dID0gYXJyLmNvbmNhdChrKSkuc3BsaWNlKGksIDEpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBmb3IgKGkgPSBvcHRzLmJvb2xlYW4ubGVuZ3RoOyBpLS0gPiAwOyApIHtcbiAgICBhcnIgPSBvcHRzLmFsaWFzW29wdHMuYm9vbGVhbltpXV0gfHwgW107XG4gICAgZm9yIChqID0gYXJyLmxlbmd0aDsgai0tID4gMDsgKSB7XG4gICAgICBvcHRzLmJvb2xlYW4ucHVzaChhcnJbal0pO1xuICAgIH1cbiAgfVxuICBmb3IgKGkgPSBvcHRzLnN0cmluZy5sZW5ndGg7IGktLSA+IDA7ICkge1xuICAgIGFyciA9IG9wdHMuYWxpYXNbb3B0cy5zdHJpbmdbaV1dIHx8IFtdO1xuICAgIGZvciAoaiA9IGFyci5sZW5ndGg7IGotLSA+IDA7ICkge1xuICAgICAgb3B0cy5zdHJpbmcucHVzaChhcnJbal0pO1xuICAgIH1cbiAgfVxuICBpZiAoZGVmYXVsdHMpIHtcbiAgICBmb3IgKGsgaW4gb3B0cy5kZWZhdWx0KSB7XG4gICAgICBuYW1lID0gdHlwZW9mIG9wdHMuZGVmYXVsdFtrXTtcbiAgICAgIGFyciA9IG9wdHMuYWxpYXNba10gPSBvcHRzLmFsaWFzW2tdIHx8IFtdO1xuICAgICAgaWYgKG9wdHNbbmFtZV0gIT09IHZvaWQgMCkge1xuICAgICAgICBvcHRzW25hbWVdLnB1c2goayk7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBhcnIubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBvcHRzW25hbWVdLnB1c2goYXJyW2ldKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBjb25zdCBrZXlzID0gc3RyaWN0ID8gT2JqZWN0LmtleXMob3B0cy5hbGlhcykgOiBbXTtcbiAgZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgYXJnID0gYXJnc1tpXTtcbiAgICBpZiAoYXJnID09PSBcIi0tXCIpIHtcbiAgICAgIG91dC5fID0gb3V0Ll8uY29uY2F0KGFyZ3Muc2xpY2UoKytpKSk7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgZm9yIChqID0gMDsgaiA8IGFyZy5sZW5ndGg7IGorKykge1xuICAgICAgaWYgKGFyZy5jaGFyQ29kZUF0KGopICE9PSA0NSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGogPT09IDApIHtcbiAgICAgIG91dC5fLnB1c2goYXJnKTtcbiAgICB9IGVsc2UgaWYgKGFyZy5zdWJzdHJpbmcoaiwgaiArIDMpID09PSBcIm5vLVwiKSB7XG4gICAgICBuYW1lID0gYXJnLnNsaWNlKE1hdGgubWF4KDAsIGogKyAzKSk7XG4gICAgICBpZiAoc3RyaWN0ICYmICF+a2V5cy5pbmRleE9mKG5hbWUpKSB7XG4gICAgICAgIHJldHVybiBvcHRzLnVua25vd24oYXJnKTtcbiAgICAgIH1cbiAgICAgIG91dFtuYW1lXSA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICBmb3IgKGlkeCA9IGogKyAxOyBpZHggPCBhcmcubGVuZ3RoOyBpZHgrKykge1xuICAgICAgICBpZiAoYXJnLmNoYXJDb2RlQXQoaWR4KSA9PT0gNjEpIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbmFtZSA9IGFyZy5zdWJzdHJpbmcoaiwgaWR4KTtcbiAgICAgIHZhbCA9IGFyZy5zbGljZShNYXRoLm1heCgwLCArK2lkeCkpIHx8IGkgKyAxID09PSBsZW4gfHwgKFwiXCIgKyBhcmdzW2kgKyAxXSkuY2hhckNvZGVBdCgwKSA9PT0gNDUgfHwgYXJnc1srK2ldO1xuICAgICAgYXJyID0gaiA9PT0gMiA/IFtuYW1lXSA6IG5hbWU7XG4gICAgICBmb3IgKGlkeCA9IDA7IGlkeCA8IGFyci5sZW5ndGg7IGlkeCsrKSB7XG4gICAgICAgIG5hbWUgPSBhcnJbaWR4XTtcbiAgICAgICAgaWYgKHN0cmljdCAmJiAhfmtleXMuaW5kZXhPZihuYW1lKSkge1xuICAgICAgICAgIHJldHVybiBvcHRzLnVua25vd24oXCItXCIucmVwZWF0KGopICsgbmFtZSk7XG4gICAgICAgIH1cbiAgICAgICAgdG9WYWwob3V0LCBuYW1lLCBpZHggKyAxIDwgYXJyLmxlbmd0aCB8fCB2YWwsIG9wdHMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBpZiAoZGVmYXVsdHMpIHtcbiAgICBmb3IgKGsgaW4gb3B0cy5kZWZhdWx0KSB7XG4gICAgICBpZiAob3V0W2tdID09PSB2b2lkIDApIHtcbiAgICAgICAgb3V0W2tdID0gb3B0cy5kZWZhdWx0W2tdO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBpZiAoYWxpYmkpIHtcbiAgICBmb3IgKGsgaW4gb3V0KSB7XG4gICAgICBhcnIgPSBvcHRzLmFsaWFzW2tdIHx8IFtdO1xuICAgICAgd2hpbGUgKGFyci5sZW5ndGggPiAwKSB7XG4gICAgICAgIG91dFthcnIuc2hpZnQoKV0gPSBvdXRba107XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBvdXQ7XG59XG5cbmZ1bmN0aW9uIHBhcnNlQXJncyhyYXdBcmdzLCBhcmdzRGVmKSB7XG4gIGNvbnN0IHBhcnNlT3B0aW9ucyA9IHtcbiAgICBib29sZWFuOiBbXSxcbiAgICBzdHJpbmc6IFtdLFxuICAgIG1peGVkOiBbXSxcbiAgICBhbGlhczoge30sXG4gICAgZGVmYXVsdDoge31cbiAgfTtcbiAgY29uc3QgYXJncyA9IHJlc29sdmVBcmdzKGFyZ3NEZWYpO1xuICBmb3IgKGNvbnN0IGFyZyBvZiBhcmdzKSB7XG4gICAgaWYgKGFyZy50eXBlID09PSBcInBvc2l0aW9uYWxcIikge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGlmIChhcmcudHlwZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgcGFyc2VPcHRpb25zLnN0cmluZy5wdXNoKGFyZy5uYW1lKTtcbiAgICB9IGVsc2UgaWYgKGFyZy50eXBlID09PSBcImJvb2xlYW5cIikge1xuICAgICAgcGFyc2VPcHRpb25zLmJvb2xlYW4ucHVzaChhcmcubmFtZSk7XG4gICAgfVxuICAgIGlmIChhcmcuZGVmYXVsdCAhPT0gdm9pZCAwKSB7XG4gICAgICBwYXJzZU9wdGlvbnMuZGVmYXVsdFthcmcubmFtZV0gPSBhcmcuZGVmYXVsdDtcbiAgICB9XG4gICAgaWYgKGFyZy5hbGlhcykge1xuICAgICAgcGFyc2VPcHRpb25zLmFsaWFzW2FyZy5uYW1lXSA9IGFyZy5hbGlhcztcbiAgICB9XG4gIH1cbiAgY29uc3QgcGFyc2VkID0gcGFyc2VSYXdBcmdzKHJhd0FyZ3MsIHBhcnNlT3B0aW9ucyk7XG4gIGNvbnN0IFsuLi5wb3NpdGlvbmFsQXJndW1lbnRzXSA9IHBhcnNlZC5fO1xuICBjb25zdCBwYXJzZWRBcmdzUHJveHkgPSBuZXcgUHJveHkocGFyc2VkLCB7XG4gICAgZ2V0KHRhcmdldCwgcHJvcCkge1xuICAgICAgcmV0dXJuIHRhcmdldFtwcm9wXSA/PyB0YXJnZXRbY2FtZWxDYXNlKHByb3ApXSA/PyB0YXJnZXRba2ViYWJDYXNlKHByb3ApXTtcbiAgICB9XG4gIH0pO1xuICBmb3IgKGNvbnN0IFssIGFyZ10gb2YgYXJncy5lbnRyaWVzKCkpIHtcbiAgICBpZiAoYXJnLnR5cGUgPT09IFwicG9zaXRpb25hbFwiKSB7XG4gICAgICBjb25zdCBuZXh0UG9zaXRpb25hbEFyZ3VtZW50ID0gcG9zaXRpb25hbEFyZ3VtZW50cy5zaGlmdCgpO1xuICAgICAgaWYgKG5leHRQb3NpdGlvbmFsQXJndW1lbnQgIT09IHZvaWQgMCkge1xuICAgICAgICBwYXJzZWRBcmdzUHJveHlbYXJnLm5hbWVdID0gbmV4dFBvc2l0aW9uYWxBcmd1bWVudDtcbiAgICAgIH0gZWxzZSBpZiAoYXJnLmRlZmF1bHQgPT09IHZvaWQgMCAmJiBhcmcucmVxdWlyZWQgIT09IGZhbHNlKSB7XG4gICAgICAgIHRocm93IG5ldyBDTElFcnJvcihcbiAgICAgICAgICBgTWlzc2luZyByZXF1aXJlZCBwb3NpdGlvbmFsIGFyZ3VtZW50OiAke2FyZy5uYW1lLnRvVXBwZXJDYXNlKCl9YCxcbiAgICAgICAgICBcIkVBUkdcIlxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGFyc2VkQXJnc1Byb3h5W2FyZy5uYW1lXSA9IGFyZy5kZWZhdWx0O1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoYXJnLnJlcXVpcmVkICYmIHBhcnNlZEFyZ3NQcm94eVthcmcubmFtZV0gPT09IHZvaWQgMCkge1xuICAgICAgdGhyb3cgbmV3IENMSUVycm9yKGBNaXNzaW5nIHJlcXVpcmVkIGFyZ3VtZW50OiAtLSR7YXJnLm5hbWV9YCwgXCJFQVJHXCIpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcGFyc2VkQXJnc1Byb3h5O1xufVxuZnVuY3Rpb24gcmVzb2x2ZUFyZ3MoYXJnc0RlZikge1xuICBjb25zdCBhcmdzID0gW107XG4gIGZvciAoY29uc3QgW25hbWUsIGFyZ0RlZl0gb2YgT2JqZWN0LmVudHJpZXMoYXJnc0RlZiB8fCB7fSkpIHtcbiAgICBhcmdzLnB1c2goe1xuICAgICAgLi4uYXJnRGVmLFxuICAgICAgbmFtZSxcbiAgICAgIGFsaWFzOiB0b0FycmF5KGFyZ0RlZi5hbGlhcylcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gYXJncztcbn1cblxuZnVuY3Rpb24gZGVmaW5lQ29tbWFuZChkZWYpIHtcbiAgcmV0dXJuIGRlZjtcbn1cbmFzeW5jIGZ1bmN0aW9uIHJ1bkNvbW1hbmQoY21kLCBvcHRzKSB7XG4gIGNvbnN0IGNtZEFyZ3MgPSBhd2FpdCByZXNvbHZlVmFsdWUoY21kLmFyZ3MgfHwge30pO1xuICBjb25zdCBwYXJzZWRBcmdzID0gcGFyc2VBcmdzKG9wdHMucmF3QXJncywgY21kQXJncyk7XG4gIGNvbnN0IGNvbnRleHQgPSB7XG4gICAgcmF3QXJnczogb3B0cy5yYXdBcmdzLFxuICAgIGFyZ3M6IHBhcnNlZEFyZ3MsXG4gICAgZGF0YTogb3B0cy5kYXRhLFxuICAgIGNtZFxuICB9O1xuICBpZiAodHlwZW9mIGNtZC5zZXR1cCA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgYXdhaXQgY21kLnNldHVwKGNvbnRleHQpO1xuICB9XG4gIGxldCByZXN1bHQ7XG4gIHRyeSB7XG4gICAgY29uc3Qgc3ViQ29tbWFuZHMgPSBhd2FpdCByZXNvbHZlVmFsdWUoY21kLnN1YkNvbW1hbmRzKTtcbiAgICBpZiAoc3ViQ29tbWFuZHMgJiYgT2JqZWN0LmtleXMoc3ViQ29tbWFuZHMpLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHN1YkNvbW1hbmRBcmdJbmRleCA9IG9wdHMucmF3QXJncy5maW5kSW5kZXgoXG4gICAgICAgIChhcmcpID0+ICFhcmcuc3RhcnRzV2l0aChcIi1cIilcbiAgICAgICk7XG4gICAgICBjb25zdCBzdWJDb21tYW5kTmFtZSA9IG9wdHMucmF3QXJnc1tzdWJDb21tYW5kQXJnSW5kZXhdO1xuICAgICAgaWYgKHN1YkNvbW1hbmROYW1lKSB7XG4gICAgICAgIGlmICghc3ViQ29tbWFuZHNbc3ViQ29tbWFuZE5hbWVdKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IENMSUVycm9yKFxuICAgICAgICAgICAgYFVua25vd24gY29tbWFuZCBcXGAke3N1YkNvbW1hbmROYW1lfVxcYGAsXG4gICAgICAgICAgICBcIkVfVU5LTk9XTl9DT01NQU5EXCJcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN1YkNvbW1hbmQgPSBhd2FpdCByZXNvbHZlVmFsdWUoc3ViQ29tbWFuZHNbc3ViQ29tbWFuZE5hbWVdKTtcbiAgICAgICAgaWYgKHN1YkNvbW1hbmQpIHtcbiAgICAgICAgICBhd2FpdCBydW5Db21tYW5kKHN1YkNvbW1hbmQsIHtcbiAgICAgICAgICAgIHJhd0FyZ3M6IG9wdHMucmF3QXJncy5zbGljZShzdWJDb21tYW5kQXJnSW5kZXggKyAxKVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKCFjbWQucnVuKSB7XG4gICAgICAgIHRocm93IG5ldyBDTElFcnJvcihgTm8gY29tbWFuZCBzcGVjaWZpZWQuYCwgXCJFX05PX0NPTU1BTkRcIik7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0eXBlb2YgY21kLnJ1biA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICByZXN1bHQgPSBhd2FpdCBjbWQucnVuKGNvbnRleHQpO1xuICAgIH1cbiAgfSBmaW5hbGx5IHtcbiAgICBpZiAodHlwZW9mIGNtZC5jbGVhbnVwID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIGF3YWl0IGNtZC5jbGVhbnVwKGNvbnRleHQpO1xuICAgIH1cbiAgfVxuICByZXR1cm4geyByZXN1bHQgfTtcbn1cbmFzeW5jIGZ1bmN0aW9uIHJlc29sdmVTdWJDb21tYW5kKGNtZCwgcmF3QXJncywgcGFyZW50KSB7XG4gIGNvbnN0IHN1YkNvbW1hbmRzID0gYXdhaXQgcmVzb2x2ZVZhbHVlKGNtZC5zdWJDb21tYW5kcyk7XG4gIGlmIChzdWJDb21tYW5kcyAmJiBPYmplY3Qua2V5cyhzdWJDb21tYW5kcykubGVuZ3RoID4gMCkge1xuICAgIGNvbnN0IHN1YkNvbW1hbmRBcmdJbmRleCA9IHJhd0FyZ3MuZmluZEluZGV4KChhcmcpID0+ICFhcmcuc3RhcnRzV2l0aChcIi1cIikpO1xuICAgIGNvbnN0IHN1YkNvbW1hbmROYW1lID0gcmF3QXJnc1tzdWJDb21tYW5kQXJnSW5kZXhdO1xuICAgIGNvbnN0IHN1YkNvbW1hbmQgPSBhd2FpdCByZXNvbHZlVmFsdWUoc3ViQ29tbWFuZHNbc3ViQ29tbWFuZE5hbWVdKTtcbiAgICBpZiAoc3ViQ29tbWFuZCkge1xuICAgICAgcmV0dXJuIHJlc29sdmVTdWJDb21tYW5kKFxuICAgICAgICBzdWJDb21tYW5kLFxuICAgICAgICByYXdBcmdzLnNsaWNlKHN1YkNvbW1hbmRBcmdJbmRleCArIDEpLFxuICAgICAgICBjbWRcbiAgICAgICk7XG4gICAgfVxuICB9XG4gIHJldHVybiBbY21kLCBwYXJlbnRdO1xufVxuXG5hc3luYyBmdW5jdGlvbiBzaG93VXNhZ2UoY21kLCBwYXJlbnQpIHtcbiAgdHJ5IHtcbiAgICBjb25zb2xhLmxvZyhhd2FpdCByZW5kZXJVc2FnZShjbWQsIHBhcmVudCkgKyBcIlxcblwiKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xhLmVycm9yKGVycm9yKTtcbiAgfVxufVxuYXN5bmMgZnVuY3Rpb24gcmVuZGVyVXNhZ2UoY21kLCBwYXJlbnQpIHtcbiAgY29uc3QgY21kTWV0YSA9IGF3YWl0IHJlc29sdmVWYWx1ZShjbWQubWV0YSB8fCB7fSk7XG4gIGNvbnN0IGNtZEFyZ3MgPSByZXNvbHZlQXJncyhhd2FpdCByZXNvbHZlVmFsdWUoY21kLmFyZ3MgfHwge30pKTtcbiAgY29uc3QgcGFyZW50TWV0YSA9IGF3YWl0IHJlc29sdmVWYWx1ZShwYXJlbnQ/Lm1ldGEgfHwge30pO1xuICBjb25zdCBjb21tYW5kTmFtZSA9IGAke3BhcmVudE1ldGEubmFtZSA/IGAke3BhcmVudE1ldGEubmFtZX0gYCA6IFwiXCJ9YCArIChjbWRNZXRhLm5hbWUgfHwgcHJvY2Vzcy5hcmd2WzFdKTtcbiAgY29uc3QgYXJnTGluZXMgPSBbXTtcbiAgY29uc3QgcG9zTGluZXMgPSBbXTtcbiAgY29uc3QgY29tbWFuZHNMaW5lcyA9IFtdO1xuICBjb25zdCB1c2FnZUxpbmUgPSBbXTtcbiAgZm9yIChjb25zdCBhcmcgb2YgY21kQXJncykge1xuICAgIGlmIChhcmcudHlwZSA9PT0gXCJwb3NpdGlvbmFsXCIpIHtcbiAgICAgIGNvbnN0IG5hbWUgPSBhcmcubmFtZS50b1VwcGVyQ2FzZSgpO1xuICAgICAgY29uc3QgaXNSZXF1aXJlZCA9IGFyZy5yZXF1aXJlZCAhPT0gZmFsc2UgJiYgYXJnLmRlZmF1bHQgPT09IHZvaWQgMDtcbiAgICAgIGNvbnN0IGRlZmF1bHRIaW50ID0gYXJnLmRlZmF1bHQgPyBgPVwiJHthcmcuZGVmYXVsdH1cImAgOiBcIlwiO1xuICAgICAgcG9zTGluZXMucHVzaChbXG4gICAgICAgIFwiYFwiICsgbmFtZSArIGRlZmF1bHRIaW50ICsgXCJgXCIsXG4gICAgICAgIGFyZy5kZXNjcmlwdGlvbiB8fCBcIlwiLFxuICAgICAgICBhcmcudmFsdWVIaW50ID8gYDwke2FyZy52YWx1ZUhpbnR9PmAgOiBcIlwiXG4gICAgICBdKTtcbiAgICAgIHVzYWdlTGluZS5wdXNoKGlzUmVxdWlyZWQgPyBgPCR7bmFtZX0+YCA6IGBbJHtuYW1lfV1gKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgaXNSZXF1aXJlZCA9IGFyZy5yZXF1aXJlZCA9PT0gdHJ1ZSAmJiBhcmcuZGVmYXVsdCA9PT0gdm9pZCAwO1xuICAgICAgY29uc3QgYXJnU3RyID0gKGFyZy50eXBlID09PSBcImJvb2xlYW5cIiAmJiBhcmcuZGVmYXVsdCA9PT0gdHJ1ZSA/IFtcbiAgICAgICAgLi4uKGFyZy5hbGlhcyB8fCBbXSkubWFwKChhKSA9PiBgLS1uby0ke2F9YCksXG4gICAgICAgIGAtLW5vLSR7YXJnLm5hbWV9YFxuICAgICAgXS5qb2luKFwiLCBcIikgOiBbLi4uKGFyZy5hbGlhcyB8fCBbXSkubWFwKChhKSA9PiBgLSR7YX1gKSwgYC0tJHthcmcubmFtZX1gXS5qb2luKFxuICAgICAgICBcIiwgXCJcbiAgICAgICkpICsgKGFyZy50eXBlID09PSBcInN0cmluZ1wiICYmIChhcmcudmFsdWVIaW50IHx8IGFyZy5kZWZhdWx0KSA/IGA9JHthcmcudmFsdWVIaW50ID8gYDwke2FyZy52YWx1ZUhpbnR9PmAgOiBgXCIke2FyZy5kZWZhdWx0IHx8IFwiXCJ9XCJgfWAgOiBcIlwiKTtcbiAgICAgIGFyZ0xpbmVzLnB1c2goW1xuICAgICAgICBcImBcIiArIGFyZ1N0ciArIChpc1JlcXVpcmVkID8gXCIgKHJlcXVpcmVkKVwiIDogXCJcIikgKyBcImBcIixcbiAgICAgICAgYXJnLmRlc2NyaXB0aW9uIHx8IFwiXCJcbiAgICAgIF0pO1xuICAgICAgaWYgKGlzUmVxdWlyZWQpIHtcbiAgICAgICAgdXNhZ2VMaW5lLnB1c2goYXJnU3RyKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgaWYgKGNtZC5zdWJDb21tYW5kcykge1xuICAgIGNvbnN0IGNvbW1hbmROYW1lcyA9IFtdO1xuICAgIGNvbnN0IHN1YkNvbW1hbmRzID0gYXdhaXQgcmVzb2x2ZVZhbHVlKGNtZC5zdWJDb21tYW5kcyk7XG4gICAgZm9yIChjb25zdCBbbmFtZSwgc3ViXSBvZiBPYmplY3QuZW50cmllcyhzdWJDb21tYW5kcykpIHtcbiAgICAgIGNvbnN0IHN1YkNtZCA9IGF3YWl0IHJlc29sdmVWYWx1ZShzdWIpO1xuICAgICAgY29uc3QgbWV0YSA9IGF3YWl0IHJlc29sdmVWYWx1ZShzdWJDbWQ/Lm1ldGEpO1xuICAgICAgY29tbWFuZHNMaW5lcy5wdXNoKFtgXFxgJHtuYW1lfVxcYGAsIG1ldGE/LmRlc2NyaXB0aW9uIHx8IFwiXCJdKTtcbiAgICAgIGNvbW1hbmROYW1lcy5wdXNoKG5hbWUpO1xuICAgIH1cbiAgICB1c2FnZUxpbmUucHVzaChjb21tYW5kTmFtZXMuam9pbihcInxcIikpO1xuICB9XG4gIGNvbnN0IHVzYWdlTGluZXMgPSBbXTtcbiAgY29uc3QgdmVyc2lvbiA9IGNtZE1ldGEudmVyc2lvbiB8fCBwYXJlbnRNZXRhLnZlcnNpb247XG4gIHVzYWdlTGluZXMucHVzaChcbiAgICBjb2xvcnMuZ3JheShcbiAgICAgIGAke2NtZE1ldGEuZGVzY3JpcHRpb259ICgke2NvbW1hbmROYW1lICsgKHZlcnNpb24gPyBgIHYke3ZlcnNpb259YCA6IFwiXCIpfSlgXG4gICAgKSxcbiAgICBcIlwiXG4gICk7XG4gIGNvbnN0IGhhc09wdGlvbnMgPSBhcmdMaW5lcy5sZW5ndGggPiAwIHx8IHBvc0xpbmVzLmxlbmd0aCA+IDA7XG4gIHVzYWdlTGluZXMucHVzaChcbiAgICBgJHtjb2xvcnMudW5kZXJsaW5lKGNvbG9ycy5ib2xkKFwiVVNBR0VcIikpfSBcXGAke2NvbW1hbmROYW1lfSR7aGFzT3B0aW9ucyA/IFwiIFtPUFRJT05TXVwiIDogXCJcIn0gJHt1c2FnZUxpbmUuam9pbihcIiBcIil9XFxgYCxcbiAgICBcIlwiXG4gICk7XG4gIGlmIChwb3NMaW5lcy5sZW5ndGggPiAwKSB7XG4gICAgdXNhZ2VMaW5lcy5wdXNoKGNvbG9ycy51bmRlcmxpbmUoY29sb3JzLmJvbGQoXCJBUkdVTUVOVFNcIikpLCBcIlwiKTtcbiAgICB1c2FnZUxpbmVzLnB1c2goZm9ybWF0TGluZUNvbHVtbnMocG9zTGluZXMsIFwiICBcIikpO1xuICAgIHVzYWdlTGluZXMucHVzaChcIlwiKTtcbiAgfVxuICBpZiAoYXJnTGluZXMubGVuZ3RoID4gMCkge1xuICAgIHVzYWdlTGluZXMucHVzaChjb2xvcnMudW5kZXJsaW5lKGNvbG9ycy5ib2xkKFwiT1BUSU9OU1wiKSksIFwiXCIpO1xuICAgIHVzYWdlTGluZXMucHVzaChmb3JtYXRMaW5lQ29sdW1ucyhhcmdMaW5lcywgXCIgIFwiKSk7XG4gICAgdXNhZ2VMaW5lcy5wdXNoKFwiXCIpO1xuICB9XG4gIGlmIChjb21tYW5kc0xpbmVzLmxlbmd0aCA+IDApIHtcbiAgICB1c2FnZUxpbmVzLnB1c2goY29sb3JzLnVuZGVybGluZShjb2xvcnMuYm9sZChcIkNPTU1BTkRTXCIpKSwgXCJcIik7XG4gICAgdXNhZ2VMaW5lcy5wdXNoKGZvcm1hdExpbmVDb2x1bW5zKGNvbW1hbmRzTGluZXMsIFwiICBcIikpO1xuICAgIHVzYWdlTGluZXMucHVzaChcbiAgICAgIFwiXCIsXG4gICAgICBgVXNlIFxcYCR7Y29tbWFuZE5hbWV9IDxjb21tYW5kPiAtLWhlbHBcXGAgZm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgYSBjb21tYW5kLmBcbiAgICApO1xuICB9XG4gIHJldHVybiB1c2FnZUxpbmVzLmZpbHRlcigobCkgPT4gdHlwZW9mIGwgPT09IFwic3RyaW5nXCIpLmpvaW4oXCJcXG5cIik7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJ1bk1haW4oY21kLCBvcHRzID0ge30pIHtcbiAgY29uc3QgcmF3QXJncyA9IG9wdHMucmF3QXJncyB8fCBwcm9jZXNzLmFyZ3Yuc2xpY2UoMik7XG4gIGNvbnN0IHNob3dVc2FnZSQxID0gb3B0cy5zaG93VXNhZ2UgfHwgc2hvd1VzYWdlO1xuICB0cnkge1xuICAgIGlmIChyYXdBcmdzLmluY2x1ZGVzKFwiLS1oZWxwXCIpIHx8IHJhd0FyZ3MuaW5jbHVkZXMoXCItaFwiKSkge1xuICAgICAgYXdhaXQgc2hvd1VzYWdlJDEoLi4uYXdhaXQgcmVzb2x2ZVN1YkNvbW1hbmQoY21kLCByYXdBcmdzKSk7XG4gICAgICBwcm9jZXNzLmV4aXQoMCk7XG4gICAgfSBlbHNlIGlmIChyYXdBcmdzLmxlbmd0aCA9PT0gMSAmJiByYXdBcmdzWzBdID09PSBcIi0tdmVyc2lvblwiKSB7XG4gICAgICBjb25zdCBtZXRhID0gdHlwZW9mIGNtZC5tZXRhID09PSBcImZ1bmN0aW9uXCIgPyBhd2FpdCBjbWQubWV0YSgpIDogYXdhaXQgY21kLm1ldGE7XG4gICAgICBpZiAoIW1ldGE/LnZlcnNpb24pIHtcbiAgICAgICAgdGhyb3cgbmV3IENMSUVycm9yKFwiTm8gdmVyc2lvbiBzcGVjaWZpZWRcIiwgXCJFX05PX1ZFUlNJT05cIik7XG4gICAgICB9XG4gICAgICBjb25zb2xhLmxvZyhtZXRhLnZlcnNpb24pO1xuICAgIH0gZWxzZSB7XG4gICAgICBhd2FpdCBydW5Db21tYW5kKGNtZCwgeyByYXdBcmdzIH0pO1xuICAgIH1cbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zdCBpc0NMSUVycm9yID0gZXJyb3IgaW5zdGFuY2VvZiBDTElFcnJvcjtcbiAgICBpZiAoIWlzQ0xJRXJyb3IpIHtcbiAgICAgIGNvbnNvbGEuZXJyb3IoZXJyb3IsIFwiXFxuXCIpO1xuICAgIH1cbiAgICBpZiAoaXNDTElFcnJvcikge1xuICAgICAgYXdhaXQgc2hvd1VzYWdlJDEoLi4uYXdhaXQgcmVzb2x2ZVN1YkNvbW1hbmQoY21kLCByYXdBcmdzKSk7XG4gICAgfVxuICAgIGNvbnNvbGEuZXJyb3IoZXJyb3IubWVzc2FnZSk7XG4gICAgcHJvY2Vzcy5leGl0KDEpO1xuICB9XG59XG5mdW5jdGlvbiBjcmVhdGVNYWluKGNtZCkge1xuICByZXR1cm4gKG9wdHMgPSB7fSkgPT4gcnVuTWFpbihjbWQsIG9wdHMpO1xufVxuXG5leHBvcnQgeyBjcmVhdGVNYWluLCBkZWZpbmVDb21tYW5kLCBwYXJzZUFyZ3MsIHJlbmRlclVzYWdlLCBydW5Db21tYW5kLCBydW5NYWluLCBzaG93VXNhZ2UgfTtcbiIsICJpbXBvcnQgdHlwZSB7IFBhY2thZ2VNYW5pZmVzdCB9IGZyb20gXCJxdWVyeS1yZWdpc3RyeVwiO1xuXG5jb25zdCBnaXRodWJVcmxSZWdleCA9XG4gIC9eKD86Z2l0XFwrKT9odHRwcz86XFwvXFwvZ2l0aHViXFwuY29tXFwvKFteL10rKVxcLyhbXi9dKylcXC5naXQkLztcblxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RPd25lckFuZFJlcG8oXG4gIHJlcG9zaXRvcnlVcmw6IHN0cmluZyxcbik6IFtzdHJpbmcsIHN0cmluZ10gfCBudWxsIHtcbiAgY29uc3QgbWF0Y2ggPSByZXBvc2l0b3J5VXJsLm1hdGNoKGdpdGh1YlVybFJlZ2V4KTtcblxuICBpZiAobWF0Y2gpIHtcbiAgICByZXR1cm4gW21hdGNoWzFdLCBtYXRjaFsyXV07XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RSZXBvc2l0b3J5KG1hbmlmZXN0OiBQYWNrYWdlTWFuaWZlc3QpIHtcbiAgcmV0dXJuIHR5cGVvZiBtYW5pZmVzdC5yZXBvc2l0b3J5ID09PSBcInN0cmluZ1wiXG4gICAgPyBtYW5pZmVzdC5yZXBvc2l0b3J5XG4gICAgOiBtYW5pZmVzdC5yZXBvc2l0b3J5Py51cmw7XG59XG5cbmNvbnN0IGNvbW1pdExlbmd0aCA9IDc7XG5cbi8qXG4gKiBcIjA5ZWZkMDU1MzM3NGZmN2QzZTYyYjc5Mzc4ZTMxODRmNWViNTc1NzFcIiA9PiBcIjA5ZWZkMDVcIlxuICovXG5leHBvcnQgZnVuY3Rpb24gYWJicmV2aWF0ZUNvbW1pdEhhc2goZnVsbEhhc2g6IHN0cmluZykge1xuICByZXR1cm4gZnVsbEhhc2guc3Vic3RyaW5nKDAsIGNvbW1pdExlbmd0aCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1B1bGxSZXF1ZXN0KHJlZjogc3RyaW5nKSB7XG4gIHJldHVybiAhTnVtYmVyLmlzTmFOKE51bWJlcihyZWYpKTtcbn1cblxuZXhwb3J0IHR5cGUgQ29tbWVudCA9IFwib2ZmXCIgfCBcImNyZWF0ZVwiIHwgXCJ1cGRhdGVcIjtcbmV4cG9ydCB0eXBlIFBhY2thZ2VNYW5hZ2VyID0gXCJucG1cIiB8IFwicG5wbVwiIHwgXCJ5YXJuXCIgfCBcImJ1blwiO1xuXG5jb25zdCB3aGl0ZWxpc3QgPVxuICBcImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9zdGFja2JsaXR6LWxhYnMvcGtnLnByLm5ldy9tYWluLy53aGl0ZWxpc3RcIjtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGlzV2hpdGVsaXN0ZWQob3duZXI6IHN0cmluZywgcmVwbzogc3RyaW5nKSB7XG4gIGNvbnN0IGNvbWJpbmF0aW9uID0gYCR7b3duZXJ9LyR7cmVwb31gO1xuXG4gIHRyeSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh3aGl0ZWxpc3QpO1xuICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCByZXNwb25zZS50ZXh0KCk7XG5cbiAgICByZXR1cm4gY29udGVudC5pbmNsdWRlcyhjb21iaW5hdGlvbik7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIiwgIntcbiAgXCJuYW1lXCI6IFwicGtnLXByLW5ld1wiLFxuICBcInZlcnNpb25cIjogXCIwLjAuNDFcIixcbiAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICBcIm1haW5cIjogXCJpbmRleC5qc1wiLFxuICBcInR5cGVcIjogXCJtb2R1bGVcIixcbiAgXCJiaW5cIjoge1xuICAgIFwicGtnLXByLW5ld1wiOiBcImJpbi9jbGkuanNcIlxuICB9LFxuICBcInJlcG9zaXRvcnlcIjoge1xuICAgIFwidHlwZVwiOiBcImdpdFwiLFxuICAgIFwidXJsXCI6IFwiaHR0cHM6Ly9naXRodWIuY29tL3N0YWNrYmxpdHotbGFicy9wa2cucHIubmV3XCIsXG4gICAgXCJkaXJlY3RvcnlcIjogXCJwYWNrYWdlcy9jbGlcIlxuICB9LFxuICBcInNjcmlwdHNcIjoge1xuICAgIFwiZGV2XCI6IFwidHN1cCAtLXdhdGNoXCIsXG4gICAgXCJidWlsZFwiOiBcInRzdXBcIixcbiAgICBcImJ1aWxkOnB1Ymxpc2hcIjogXCJBUElfVVJMPWh0dHBzOi8vcGtnLnByLm5ldy8gdHN1cFwiXG4gIH0sXG4gIFwia2V5d29yZHNcIjogW10sXG4gIFwiYXV0aG9yXCI6IFwiXCIsXG4gIFwibGljZW5zZVwiOiBcIk1JVFwiLFxuICBcImRlcGVuZGVuY2llc1wiOiB7XG4gICAgXCJAanNkZXZ0b29scy9lei1zcGF3blwiOiBcIl4zLjAuNFwiLFxuICAgIFwiQG9jdG9raXQvYWN0aW9uXCI6IFwiXjYuMS4wXCIsXG4gICAgXCJpZ25vcmVcIjogXCJeNS4zLjFcIixcbiAgICBcImlzYmluYXJ5ZmlsZVwiOiBcIl41LjAuMlwiLFxuICAgIFwicGtnLXR5cGVzXCI6IFwiXjEuMS4xXCIsXG4gICAgXCJxdWVyeS1yZWdpc3RyeVwiOiBcIl4zLjAuMVwiLFxuICAgIFwidGlueWdsb2JieVwiOiBcIl4wLjIuOVwiXG4gIH0sXG4gIFwiZGV2RGVwZW5kZW5jaWVzXCI6IHtcbiAgICBcIkBwa2ctcHItbmV3L3V0aWxzXCI6IFwid29ya3NwYWNlOl5cIixcbiAgICBcImNpdHR5XCI6IFwiXjAuMS42XCIsXG4gICAgXCJ0c3VwXCI6IFwiXjguMC4yXCJcbiAgfVxufVxuIiwgImV4cG9ydCBjb25zdCBjcmVhdGVEZWZhdWx0VGVtcGxhdGUgPSAoXG4gIGRlcGVuZGVuY2llczogUmVjb3JkPHN0cmluZywgc3RyaW5nPixcbikgPT4gKHtcbiAgXCJpbmRleC5qc1wiOiBcIlwiLFxuICBcIlJFQURNRS5tZFwiOiBgXG4jIERlZmF1bHQgVGVtcGxhdGVcblxuVGhpcyBpcyBhIHRlbXBsYXRlIHRoYXQgbGV2ZXJhZ2VzIHRoZSBleHBlcmltZW50YWwgdGVtcGxhdGVzIGZlYXR1cmUgaW4gdGhlIFxcYHBrZy5wci5uZXdcXGAgdG9vbC5cblxuIyMgT3ZlcnZpZXdcblxuVGVtcGxhdGVzIGFyZSBwYXJ0aWN1bGFybHkgdXNlZnVsIGZvciBjcmVhdGluZyBsaXZlLCBpbnRlcmFjdGl2ZSBleGFtcGxlcyBvZiB5b3VyIHBhY2thZ2VzLCB3aGljaCBjYW4gYmUgdmVyeSBiZW5lZmljaWFsIGZvciBib3RoIGRldmVsb3BtZW50IGFuZCBkb2N1bWVudGF0aW9uIHB1cnBvc2VzLlxuXG5BcyBhIHVzZXIsIHlvdSBjYW4gY2hlY2sgdGhlIHBhY2thZ2UuanNvbiBmaWxlIGFuZCBzZWUgdGhlIG5ldyBnZW5lcmF0ZWQgcGFja2FnZXMhIFlvdSBjYW4ganVzdCBjb3B5IHRob3NlIGFuZCBwdXQgdGhlbSBpbiB5b3VyIHBhY2thZ2UuanNvbiBvciBpbnN0YWxsIHRoZW0gd2l0aCB5b3VyIGZhdm9yaXRlIHBhY2thZ2UgbWFuYWdlci5cblxuJHtPYmplY3QudmFsdWVzKGRlcGVuZGVuY2llcylcbiAgLm1hcChcbiAgICAodXJsKSA9PiBgXG5cXGBcXGBcXGBzaFxubnBtIGkgJHt1cmx9XG5cXGBcXGBcXGBcbmAsXG4gIClcbiAgLmpvaW4oXCJcIil9XG5cbiMjIFVzYWdlXG5cblRvIHVzZSB0aGlzIGZlYXR1cmUgYXMgYSBtYWludGFpbmVyLCB5b3UgY2FuIHJ1biB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6XG5cblxcYFxcYFxcYHNoXG5ucHggcGtnLXByLW5ldyBwdWJsaXNoICcuL3BhY2thZ2VzL0EnIC0tdGVtcGxhdGUgJy4vZXhhbXBsZXMvKidcblxcYFxcYFxcYFxuXG4jIyBCZW5lZml0c1xuXG4tIEludGVyYWN0aXZlIERlbW9zOiBBdXRvbWF0aWNhbGx5IGNyZWF0ZSBsaXZlIGRlbW9zIHRoYXQgdXNlcnMgY2FuIGludGVyYWN0IHdpdGggZGlyZWN0bHkgaW4gdGhlaXIgYnJvd3Nlci5cbi0gRW5oYW5jZWQgVGVzdGluZzogUXVpY2tseSBzcGluIHVwIGVudmlyb25tZW50cyB0byB0ZXN0IHlvdXIgcGFja2FnZSBpbiBkaWZmZXJlbnQgc2NlbmFyaW9zLlxuLSBJbXByb3ZlZCBTaGFyaW5nOiBFYXNpbHkgc2hhcmUgd29ya2luZyBleGFtcGxlcyBvZiB5b3VyIHBhY2thZ2Ugd2l0aCBjb2xsYWJvcmF0b3JzIG9yIHVzZXJzIHdpdGhvdXQgbmVlZGluZyB0aGVtIHRvIHNldCB1cCB0aGVpciBlbnZpcm9ubWVudC5cbmAsXG4gIFwicGFja2FnZS5qc29uXCI6IEpTT04uc3RyaW5naWZ5KFxuICAgIHtcbiAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgdmVyc2lvbjogXCIxLjAuMFwiLFxuICAgICAgZGVzY3JpcHRpb246IFwiZ2VuZXJhdGVkIGJ5IHBrZy5wci5uZXdcIixcbiAgICAgIG1haW46IFwiaW5kZXguanNcIixcbiAgICAgIGRlcGVuZGVuY2llcyxcbiAgICAgIGtleXdvcmRzOiBbXSxcbiAgICAgIGF1dGhvcjogXCJwa2cucHIubmV3XCIsXG4gICAgICBsaWNlbnNlOiBcIklTQ1wiLFxuICAgIH0sXG4gICAgbnVsbCxcbiAgICAyLFxuICApLFxufSk7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7OztBQXFFQSxTQUFTLFNBQVMsT0FBTztBQUN2QixTQUFPLFVBQVUsUUFBUSxPQUFPLFVBQVU7QUFDNUM7QUFDQSxTQUFTLE1BQU0sWUFBWUEsV0FBVSxZQUFZLEtBQUss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LFNBQU8sS0FBRyxLQUFHLFNBQU8sU0FBTyxLQUFHLEtBQUcsU0FBTyxTQUFPLEtBQUcsS0FBRyxTQUFPLFNBQU8sS0FBRyxLQUFHLFNBQU8sU0FBTyxLQUFHLEtBQUcsU0FBTyxTQUFPLEtBQUcsS0FBRyxTQUFPLFNBQU8sS0FBRyxLQUFHLFNBQU8sU0FBTyxLQUFHLEtBQUcsU0FBTyxTQUFPLEtBQUcsS0FBRyxTQUFPLFNBQU8sS0FBRyxLQUFHLFNBQU8sU0FBTyxLQUFHLEtBQUcsU0FBTyxTQUFPLEtBQUcsS0FBRyxTQUFPLFNBQU8sS0FBRyxLQUFHLFNBQU8sU0FBTyxLQUFHLEtBQUcsU0FBTyxTQUFPLEtBQUcsS0FBRyxTQUFPLFVBQVEsS0FBRyxLQUFHLFVBQVEsVUFBUSxLQUFHLEtBQUcsVUFBUSxVQUFRLEtBQUcsS0FBRyxVQUFRLFVBQVEsS0FBRyxLQUFHLFVBQVEsVUFBUSxLQUFHLEtBQUcsVUFBUSxVQUFRLEtBQUcsS0FBRyxVQUFRLFVBQVEsS0FBRyxLQUFHLFVBQVEsVUFBUSxLQUFHLEtBQUcsU0FBTyxNQUFJLE1BQUksS0FBRyxLQUFHLE9BQUssT0FBSyxLQUFHLEtBQUcsT0FBSyxPQUFLLEtBQUcsS0FBRyxPQUFLLEtBQUcsT0FBSyxLQUFHLE9BQUssU0FBTyxLQUFHLEtBQUcsU0FBTyxTQUFPLEtBQUcsS0FBRyxRQUFNLE9BQUssS0FBRyxPQUFLLEtBQUcsT0FBSyxPQUFLLEtBQUcsS0FBRyxPQUFLLEtBQUcsT0FBSyxPQUFLLEtBQUcsS0FBRyxPQUFLLE9BQUssS0FBRyxLQUFHLE9BQUssT0FBSyxLQUFHLEtBQUcsT0FBSyxPQUFLLEtBQUcsS0FBRyxPQUFLLEtBQUcsT0FBSyxLQUFHLE9BQUssT0FBSyxLQUFHLEtBQUcsT0FBSyxPQUFLLEtBQUcsS0FBRyxPQUFLLEtBQUcsT0FBSyxPQUFLLEtBQUcsS0FBRyxPQUFLLE9BQUssS0FBRyxLQUFHLE9BQUssS0FBRyxPQUFLLE9BQUssS0FBRyxLQUFHLE9BQUssT0FBSyxLQUFHLEtBQUcsT0FBSyxLQUFHLE9BQUssS0FBRyxPQUFLLEtBQUcsT0FBSyxLQUFHLE9BQUssS0FBRyxPQUFLLEtBQUcsT0FBSyxPQUFLLEtBQUcsS0FBRyxPQUFLLEtBQUcsT0FBSyxPQUFLLEtBQUcsS0FBRyxPQUFLLEtBQUcsT0FBSyxPQUFLLEtBQUcsS0FBRyxPQUFLLEtBQUcsT0FBSyxPQUFLLEtBQUcsS0FBRyxPQUFLLEtBQUcsT0FBSyxPQUFLLEtBQUcsS0FBRyxPQUFLLE9BQUssS0FBRyxLQUFHLE9BQUssS0FBRyxPQUFLLEtBQUcsT0FBSyxLQUFHLE9BQUssS0FBRyxPQUFLLEtBQUcsT0FBSyxLQUFHLE9BQUssS0FBRyxPQUFLLEtBQUcsT0FBSyxLQUFHLE9BQUssS0FBRyxPQUFLLEtBQUcsT0FBSyxLQUFHLE9BQUssS0FBRyxPQUFLLE9BQUssS0FBRyxLQUFHLE9BQUssS0FBRyxPQUFLLEtBQUcsT0FBSyxPQUFLLEtBQUcsS0FBRyxPQUFLLEtBQUcsT0FBSyxLQUFHLE9BQUssT0FBSyxLQUFHLEtBQUcsT0FBSyxPQUFLLEtBQUcsS0FBRyxPQUFLLE9BQUssS0FBRyxLQUFHLE9BQUssT0FBSyxLQUFHLEtBQUcsT0FBSyxPQUFLLEtBQUcsS0FBRyxPQUFLLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLEtBQUcsUUFBTSxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLEtBQUcsUUFBTSxLQUFHLFFBQU0sS0FBRyxRQUFNLEtBQUcsUUFBTSxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxLQUFHLFFBQU0sS0FBRyxRQUFNLEtBQUcsUUFBTSxLQUFHLFFBQU0sS0FBRyxRQUFNLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLEtBQUcsUUFBTSxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLEtBQUcsUUFBTSxLQUFHLFFBQU0sS0FBRyxRQUFNLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sS0FBRyxRQUFNLEtBQUcsUUFBTSxLQUFHLFFBQU0sS0FBRyxRQUFNLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLEtBQUcsUUFBTSxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLEtBQUcsUUFBTSxLQUFHLFFBQU0sS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLEtBQUcsUUFBTSxLQUFHLFFBQU0sS0FBRyxRQUFNLEtBQUcsUUFBTSxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLEtBQUcsUUFBTSxLQUFHLFFBQU0sS0FBRyxRQUFNLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLEtBQUcsU0FBTyxLQUFHLFNBQU8sU0FBTyxLQUFHLEtBQUcsU0FBTyxTQUFPLEtBQUcsS0FBRyxTQUFPLFNBQU8sS0FBRyxLQUFHLFNBQU8sU0FBTyxLQUFHLEtBQUcsU0FBTyxTQUFPLEtBQUcsS0FBRyxTQUFPLEtBQUcsU0FBTyxVQUFRLEtBQUcsS0FBRyxVQUFRLFVBQVEsS0FBRyxLQUFHLFVBQVEsVUFBUSxLQUFHLEtBQUcsVUFBUSxVQUFRLEtBQUcsS0FBRyxVQUFRLFVBQVEsS0FBRyxLQUFHLFVBQVEsVUFBUSxLQUFHLEtBQUcsV0FBUyxXQUFTLEtBQUcsS0FBRyxVQUFRLE1BQUk7QUFBQSxNQUFHLEdBQUUsRUFBRSxrQkFBZ0IsU0FBUyxHQUFFO0FBQUMsWUFBSUEsS0FBRSxLQUFLLGVBQWUsQ0FBQztBQUFFLGVBQU9BLE1BQUcsT0FBS0EsTUFBRyxPQUFLQSxNQUFHLE1BQUksSUFBRTtBQUFBLE1BQUM7QUFBRSxlQUFTLEVBQUUsR0FBRTtBQUFDLGVBQU8sRUFBRSxNQUFNLGtEQUFrRCxLQUFHLENBQUM7QUFBQSxNQUFDO0FBQUMsUUFBRSxTQUFPLFNBQVMsR0FBRTtBQUFDLGlCQUFRQSxLQUFFLEVBQUUsQ0FBQyxHQUFFLElBQUUsR0FBRSxJQUFFLEdBQUUsSUFBRUEsR0FBRSxRQUFPO0FBQUksY0FBRSxJQUFFLEtBQUssZ0JBQWdCQSxHQUFFLENBQUMsQ0FBQztBQUFFLGVBQU87QUFBQSxNQUFDLEdBQUUsRUFBRSxRQUFNLFNBQVMsR0FBRUEsSUFBRSxHQUFFO0FBQUMsa0JBQVEsRUFBRSxPQUFPLENBQUMsR0FBRUEsS0FBRUEsTUFBRyxHQUFFLElBQUUsS0FBRyxHQUFFQSxLQUFFLE1BQUlBLEtBQUUsVUFBUUEsS0FBRyxJQUFFLE1BQUksSUFBRSxVQUFRO0FBQUcsaUJBQVEsSUFBRSxJQUFHLElBQUUsR0FBRSxJQUFFLEVBQUUsQ0FBQyxHQUFFLElBQUUsR0FBRSxJQUFFLEVBQUUsUUFBTyxLQUFJO0FBQUMsY0FBSSxJQUFFLEVBQUUsQ0FBQyxHQUFFLElBQUUsRUFBRSxPQUFPLENBQUM7QUFBRSxjQUFHLEtBQUdBLE1BQUcsS0FBRyxJQUFFLElBQUU7QUFBRyxnQkFBRyxJQUFFLEtBQUc7QUFBRSxtQkFBRztBQUFBO0FBQU87QUFBTSxlQUFHO0FBQUEsUUFBRTtBQUFDLGVBQU87QUFBQSxNQUFDO0FBQUEsSUFBRSxHQUFHLENBQUM7QUFBRSxJQUFNQyxLQUFFO0FBQUUsSUFBSSxJQUFFLFdBQVU7QUFBQyxhQUFPO0FBQUEsSUFBZ3llO0FBQW9YLElBQU0sSUFBRTtBQUFSLElBQVcsSUFBRSxDQUFDLElBQUUsTUFBSSxPQUFHLFFBQVEsSUFBRSxDQUFDO0FBQWxDLElBQXNDLElBQUUsQ0FBQyxJQUFFLE1BQUksT0FBRyxRQUFRLEtBQUcsQ0FBQyxNQUFNLENBQUM7QUFBckUsSUFBeUUsSUFBRSxDQUFDLElBQUUsTUFBSSxDQUFDLEdBQUUsR0FBRSxNQUFJLFFBQVEsS0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0FBQXhILElBQTRILElBQUUsRUFBQyxVQUFTLEVBQUMsT0FBTSxDQUFDLEdBQUUsQ0FBQyxHQUFFLE1BQUssQ0FBQyxHQUFFLEVBQUUsR0FBRSxLQUFJLENBQUMsR0FBRSxFQUFFLEdBQUUsUUFBTyxDQUFDLEdBQUUsRUFBRSxHQUFFLFdBQVUsQ0FBQyxHQUFFLEVBQUUsR0FBRSxVQUFTLENBQUMsSUFBRyxFQUFFLEdBQUUsU0FBUSxDQUFDLEdBQUUsRUFBRSxHQUFFLFFBQU8sQ0FBQyxHQUFFLEVBQUUsR0FBRSxlQUFjLENBQUMsR0FBRSxFQUFFLEVBQUMsR0FBRSxPQUFNLEVBQUMsT0FBTSxDQUFDLElBQUcsRUFBRSxHQUFFLEtBQUksQ0FBQyxJQUFHLEVBQUUsR0FBRSxPQUFNLENBQUMsSUFBRyxFQUFFLEdBQUUsUUFBTyxDQUFDLElBQUcsRUFBRSxHQUFFLE1BQUssQ0FBQyxJQUFHLEVBQUUsR0FBRSxTQUFRLENBQUMsSUFBRyxFQUFFLEdBQUUsTUFBSyxDQUFDLElBQUcsRUFBRSxHQUFFLE9BQU0sQ0FBQyxJQUFHLEVBQUUsR0FBRSxhQUFZLENBQUMsSUFBRyxFQUFFLEdBQUUsTUFBSyxDQUFDLElBQUcsRUFBRSxHQUFFLE1BQUssQ0FBQyxJQUFHLEVBQUUsR0FBRSxXQUFVLENBQUMsSUFBRyxFQUFFLEdBQUUsYUFBWSxDQUFDLElBQUcsRUFBRSxHQUFFLGNBQWEsQ0FBQyxJQUFHLEVBQUUsR0FBRSxZQUFXLENBQUMsSUFBRyxFQUFFLEdBQUUsZUFBYyxDQUFDLElBQUcsRUFBRSxHQUFFLFlBQVcsQ0FBQyxJQUFHLEVBQUUsR0FBRSxhQUFZLENBQUMsSUFBRyxFQUFFLEVBQUMsR0FBRSxTQUFRLEVBQUMsU0FBUSxDQUFDLElBQUcsRUFBRSxHQUFFLE9BQU0sQ0FBQyxJQUFHLEVBQUUsR0FBRSxTQUFRLENBQUMsSUFBRyxFQUFFLEdBQUUsVUFBUyxDQUFDLElBQUcsRUFBRSxHQUFFLFFBQU8sQ0FBQyxJQUFHLEVBQUUsR0FBRSxXQUFVLENBQUMsSUFBRyxFQUFFLEdBQUUsUUFBTyxDQUFDLElBQUcsRUFBRSxHQUFFLFNBQVEsQ0FBQyxJQUFHLEVBQUUsR0FBRSxlQUFjLENBQUMsS0FBSSxFQUFFLEdBQUUsUUFBTyxDQUFDLEtBQUksRUFBRSxHQUFFLFFBQU8sQ0FBQyxLQUFJLEVBQUUsR0FBRSxhQUFZLENBQUMsS0FBSSxFQUFFLEdBQUUsZUFBYyxDQUFDLEtBQUksRUFBRSxHQUFFLGdCQUFlLENBQUMsS0FBSSxFQUFFLEdBQUUsY0FBYSxDQUFDLEtBQUksRUFBRSxHQUFFLGlCQUFnQixDQUFDLEtBQUksRUFBRSxHQUFFLGNBQWEsQ0FBQyxLQUFJLEVBQUUsR0FBRSxlQUFjLENBQUMsS0FBSSxFQUFFLEVBQUMsRUFBQztBQUFFLFdBQU8sS0FBSyxFQUFFLFFBQVE7QUFBRSxJQUFNLElBQUUsT0FBTyxLQUFLLEVBQUUsS0FBSztBQUEzQixJQUE2QkssS0FBRSxPQUFPLEtBQUssRUFBRSxPQUFPO0FBQUUsS0FBQyxHQUFHLEdBQUUsR0FBR0EsRUFBQztBQUFtN0MsSUFBTSxJQUFFLEVBQUU7QUFBVixJQUFZLElBQUUsb0JBQUksSUFBSSxDQUFDLFFBQU8sTUFBTSxDQUFDO0FBQXJDLElBQXVDLElBQUU7QUFBekMsSUFBNEMsSUFBRTtBQUE5QyxJQUFxREMsS0FBRTtBQUF2RCxJQUEyRCxJQUFFO0FBQTdELElBQWlFLElBQUU7QUFBbkUsSUFBdUUsSUFBRSxHQUFHLENBQUM7QUFBN0UsSUFBbUYsSUFBRSxPQUFHLEdBQUcsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssR0FBR0EsRUFBQyxHQUFHLENBQUMsR0FBRyxDQUFDO0FBQTlILElBQWlJLElBQUUsT0FBRyxHQUFHLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDO0FBQTVLLElBQStLLElBQUUsT0FBRyxFQUFFLE1BQU0sR0FBRyxFQUFFLElBQUksT0FBRyxFQUFFLENBQUMsQ0FBQztBQUE1TSxJQUE4TSxJQUFFLENBQUMsR0FBRSxHQUFFLE1BQUk7QUFBQyxZQUFNLElBQUUsQ0FBQyxHQUFHLENBQUM7QUFBRSxVQUFJUCxLQUFFLE9BQUcsSUFBRSxPQUFHLElBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxTQUFPLENBQUMsQ0FBQyxDQUFDO0FBQUUsaUJBQVMsQ0FBQyxHQUFFLENBQUMsS0FBSSxFQUFFLFFBQVEsR0FBRTtBQUFDLGNBQU0sSUFBRSxFQUFFLENBQUM7QUFBRSxZQUFHLElBQUUsS0FBRyxJQUFFLEVBQUUsRUFBRSxTQUFPLENBQUMsS0FBRyxLQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUUsSUFBRSxJQUFHLEVBQUUsSUFBSSxDQUFDLE1BQUlBLEtBQUUsTUFBRyxJQUFFLEVBQUUsTUFBTSxJQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxXQUFXLENBQUMsSUFBR0EsSUFBRTtBQUFDLGNBQUUsTUFBSSxNQUFJQSxLQUFFLE9BQUcsSUFBRSxTQUFJLE1BQUksTUFBSUEsS0FBRTtBQUFJO0FBQUEsUUFBUTtBQUFDLGFBQUcsR0FBRSxNQUFJLEtBQUcsSUFBRSxFQUFFLFNBQU8sTUFBSSxFQUFFLEtBQUssRUFBRSxHQUFFLElBQUU7QUFBQSxNQUFHO0FBQUMsT0FBQyxLQUFHLEVBQUUsRUFBRSxTQUFPLENBQUMsRUFBRSxTQUFPLEtBQUcsRUFBRSxTQUFPLE1BQUksRUFBRSxFQUFFLFNBQU8sQ0FBQyxLQUFHLEVBQUUsSUFBSTtBQUFBLElBQUc7QUFBdGpCLElBQXdqQixLQUFHLE9BQUc7QUFBQyxZQUFNLElBQUUsRUFBRSxNQUFNLEdBQUc7QUFBRSxVQUFJLElBQUUsRUFBRTtBQUFPLGFBQUssSUFBRSxLQUFHLEVBQUUsRUFBRSxFQUFFLElBQUUsQ0FBQyxDQUFDLElBQUU7QUFBSTtBQUFJLGFBQU8sTUFBSSxFQUFFLFNBQU8sSUFBRSxFQUFFLE1BQU0sR0FBRSxDQUFDLEVBQUUsS0FBSyxHQUFHLElBQUUsRUFBRSxNQUFNLENBQUMsRUFBRSxLQUFLLEVBQUU7QUFBQSxJQUFDO0FBQWpzQixJQUFtc0IsS0FBRyxDQUFDLEdBQUUsR0FBRSxJQUFFLENBQUMsTUFBSTtBQUFDLFVBQUcsRUFBRSxTQUFPLFNBQUksRUFBRSxLQUFLLE1BQUk7QUFBRyxlQUFPO0FBQUcsVUFBSSxJQUFFLElBQUdBLElBQUU7QUFBRSxZQUFNLElBQUUsRUFBRSxDQUFDO0FBQUUsVUFBSSxJQUFFLENBQUMsRUFBRTtBQUFFLGlCQUFTLENBQUMsR0FBRSxDQUFDLEtBQUksRUFBRSxNQUFNLEdBQUcsRUFBRSxRQUFRLEdBQUU7QUFBQyxVQUFFLFNBQU8sVUFBSyxFQUFFLEVBQUUsU0FBTyxDQUFDLElBQUUsRUFBRSxFQUFFLFNBQU8sQ0FBQyxFQUFFLFVBQVU7QUFBRyxZQUFJLElBQUUsRUFBRSxFQUFFLEVBQUUsU0FBTyxDQUFDLENBQUM7QUFBRSxZQUFHLE1BQUksTUFBSSxLQUFHLE1BQUksRUFBRSxhQUFXLFNBQUksRUFBRSxTQUFPLFdBQU0sRUFBRSxLQUFLLEVBQUUsR0FBRSxJQUFFLEtBQUksSUFBRSxLQUFHLEVBQUUsU0FBTyxXQUFNLEVBQUUsRUFBRSxTQUFPLENBQUMsS0FBRyxLQUFJLE9BQU0sRUFBRSxRQUFNLEVBQUUsQ0FBQyxJQUFFLEdBQUU7QUFBQyxnQkFBTSxJQUFFLElBQUUsR0FBRSxJQUFFLElBQUUsS0FBSyxPQUFPLEVBQUUsQ0FBQyxJQUFFLElBQUUsS0FBRyxDQUFDO0FBQUUsZUFBSyxPQUFPLEVBQUUsQ0FBQyxJQUFFLEtBQUcsQ0FBQyxJQUFFLEtBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRSxFQUFFLEdBQUUsR0FBRSxDQUFDO0FBQUU7QUFBQSxRQUFRO0FBQUMsWUFBRyxJQUFFLEVBQUUsQ0FBQyxJQUFFLEtBQUcsSUFBRSxLQUFHLEVBQUUsQ0FBQyxJQUFFLEdBQUU7QUFBQyxjQUFHLEVBQUUsYUFBVyxTQUFJLElBQUUsR0FBRTtBQUFDLGNBQUUsR0FBRSxHQUFFLENBQUM7QUFBRTtBQUFBLFVBQVE7QUFBQyxZQUFFLEtBQUssRUFBRTtBQUFBLFFBQUU7QUFBQyxZQUFHLElBQUUsRUFBRSxDQUFDLElBQUUsS0FBRyxFQUFFLGFBQVcsT0FBRztBQUFDLFlBQUUsR0FBRSxHQUFFLENBQUM7QUFBRTtBQUFBLFFBQVE7QUFBQyxVQUFFLEVBQUUsU0FBTyxDQUFDLEtBQUc7QUFBQSxNQUFFO0FBQUMsUUFBRSxTQUFPLFVBQUssSUFBRSxFQUFFLElBQUksT0FBRyxHQUFHLENBQUMsQ0FBQztBQUFHLFlBQU0sSUFBRSxDQUFDLEdBQUcsRUFBRSxLQUFLO0FBQUEsQ0FDbDN2QixDQUFDO0FBQUUsaUJBQVMsQ0FBQyxHQUFFLENBQUMsS0FBSSxFQUFFLFFBQVEsR0FBRTtBQUFDLFlBQUcsS0FBRyxHQUFFLEVBQUUsSUFBSSxDQUFDLEdBQUU7QUFBQyxnQkFBSyxFQUFDLFFBQU8sRUFBQyxJQUFFLElBQUksT0FBTyxRQUFRTyxFQUFDLG9CQUFvQixDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEtBQUcsRUFBQyxRQUFPLENBQUMsRUFBQztBQUFFLGNBQUcsRUFBRSxTQUFPLFFBQU87QUFBQyxrQkFBTSxJQUFFLE9BQU8sV0FBVyxFQUFFLElBQUk7QUFBRSxZQUFBUCxLQUFFLE1BQUksSUFBRSxTQUFPO0FBQUEsVUFBRTtBQUFNLGNBQUUsUUFBTSxXQUFTLElBQUUsRUFBRSxJQUFJLFdBQVMsSUFBRSxTQUFPLEVBQUU7QUFBQSxRQUFLO0FBQUMsY0FBTSxJQUFFLEVBQUUsTUFBTSxJQUFJLE9BQU9BLEVBQUMsQ0FBQztBQUFFLFVBQUUsSUFBRSxDQUFDLE1BQUk7QUFBQSxLQUM1VSxNQUFJLEtBQUcsRUFBRSxFQUFFLElBQUdBLE1BQUcsTUFBSSxLQUFHLEVBQUUsQ0FBQyxNQUFJLE1BQUk7QUFBQSxNQUNsQ0EsTUFBRyxNQUFJLEtBQUcsRUFBRUEsRUFBQyxJQUFHLE1BQUksS0FBRyxFQUFFLENBQUM7QUFBQSxNQUFJO0FBQUMsYUFBTztBQUFBLElBQUM7QUFLMkMsSUFBTSxJQUFFLE9BQU8sY0FBYztBQUE0QyxJQUFNLElBQUUsb0JBQUksSUFBSSxDQUFDLENBQUMsS0FBSSxJQUFJLEdBQUUsQ0FBQyxLQUFJLE1BQU0sR0FBRSxDQUFDLEtBQUksTUFBTSxHQUFFLENBQUMsS0FBSSxPQUFPLENBQUMsQ0FBQztBQUFwRSxJQUFzRSxLQUFHLG9CQUFJLElBQUksQ0FBQyxNQUFLLFFBQU8sUUFBTyxTQUFRLFNBQVEsT0FBTyxDQUFDO0FBQUUsSUFBTSxJQUFOLE1BQU87QUFBQSxNQUFDLFlBQVksRUFBQyxRQUFPLEdBQUUsT0FBTSxJQUFFLE9BQU0sUUFBTyxJQUFFLFFBQU8sR0FBR0EsR0FBQyxHQUFFLElBQUUsTUFBRztBQUFDLGFBQUssU0FBTyxPQUFHLEtBQUssVUFBUSxHQUFFLEtBQUssUUFBTSxXQUFVLEtBQUssUUFBTSxJQUFHLEtBQUssY0FBWSxvQkFBSSxPQUFJLEtBQUssYUFBVyxJQUFHLEtBQUssT0FBS0EsSUFBRSxLQUFLLGFBQVcsS0FBSyxXQUFXLEtBQUssSUFBSSxHQUFFLEtBQUssUUFBTSxLQUFLLE1BQU0sS0FBSyxJQUFJLEdBQUUsS0FBSyxTQUFPLEtBQUssT0FBTyxLQUFLLElBQUksR0FBRSxLQUFLLFVBQVEsRUFBRSxLQUFLLElBQUksR0FBRSxLQUFLLFNBQU8sR0FBRSxLQUFLLFFBQU0sR0FBRSxLQUFLLFNBQU87QUFBQSxNQUFFO0FBQUEsTUFBQyxTQUFRO0FBQUMsY0FBTSxJQUFFLElBQUksWUFBWSxDQUFDO0FBQUUsZUFBTyxFQUFFLFNBQU8sQ0FBQyxHQUFFLEdBQUVBLE9BQUk7QUFBQyxlQUFLLFdBQVMsS0FBSyxRQUFNLEtBQUssR0FBRyxLQUFLLFFBQVEsT0FBTSxFQUFFLEdBQUUsS0FBSyxVQUFRLEtBQUssR0FBRyxRQUFPLEtBQUssS0FBSyxTQUFRLEtBQUssS0FBSyxJQUFHQSxHQUFFO0FBQUEsUUFBRSxHQUFFLEtBQUssTUFBTSxLQUFLLENBQUMsR0FBRSxLQUFLLEtBQUcsRUFBRSxnQkFBZ0IsRUFBQyxPQUFNLEtBQUssT0FBTSxRQUFPLEdBQUUsU0FBUSxHQUFFLFFBQU8sSUFBRyxtQkFBa0IsR0FBRSxDQUFDLEdBQUUsRUFBRSxtQkFBbUIsS0FBSyxPQUFNLEtBQUssRUFBRSxHQUFFLEtBQUssR0FBRyxPQUFPLEdBQUUsS0FBSyxLQUFLLGlCQUFlLFVBQVEsS0FBSyxVQUFRLEtBQUssR0FBRyxNQUFNLEtBQUssS0FBSyxZQUFZLEdBQUUsS0FBSyxNQUFNLEdBQUcsWUFBVyxLQUFLLFVBQVUsR0FBRSxFQUFFLEtBQUssT0FBTSxJQUFFLEdBQUUsS0FBSyxPQUFPLEdBQUcsVUFBUyxLQUFLLE1BQU0sR0FBRSxLQUFLLE9BQU8sR0FBRSxJQUFJLFFBQVEsQ0FBQyxHQUFFLE1BQUk7QUFBQyxlQUFLLEtBQUssVUFBUyxNQUFJO0FBQUMsaUJBQUssT0FBTyxNQUFNLElBQUksT0FBTyxJQUFJLEdBQUUsS0FBSyxPQUFPLElBQUksVUFBUyxLQUFLLE1BQU0sR0FBRSxFQUFFLEtBQUssT0FBTSxLQUFFLEdBQUUsRUFBRSxLQUFLLEtBQUs7QUFBQSxVQUFFLENBQUMsR0FBRSxLQUFLLEtBQUssVUFBUyxNQUFJO0FBQUMsaUJBQUssT0FBTyxNQUFNLElBQUksT0FBTyxJQUFJLEdBQUUsS0FBSyxPQUFPLElBQUksVUFBUyxLQUFLLE1BQU0sR0FBRSxFQUFFLEtBQUssT0FBTSxLQUFFLEdBQUUsRUFBRSxDQUFDO0FBQUEsVUFBRSxDQUFDO0FBQUEsUUFBRSxDQUFDO0FBQUEsTUFBQztBQUFBLE1BQUMsR0FBRyxHQUFFLEdBQUU7QUFBQyxjQUFNLElBQUUsS0FBSyxZQUFZLElBQUksQ0FBQyxLQUFHLENBQUM7QUFBRSxVQUFFLEtBQUssRUFBQyxJQUFHLEVBQUMsQ0FBQyxHQUFFLEtBQUssWUFBWSxJQUFJLEdBQUUsQ0FBQztBQUFBLE1BQUU7QUFBQSxNQUFDLEtBQUssR0FBRSxHQUFFO0FBQUMsY0FBTSxJQUFFLEtBQUssWUFBWSxJQUFJLENBQUMsS0FBRyxDQUFDO0FBQUUsVUFBRSxLQUFLLEVBQUMsSUFBRyxHQUFFLE1BQUssS0FBRSxDQUFDLEdBQUUsS0FBSyxZQUFZLElBQUksR0FBRSxDQUFDO0FBQUEsTUFBRTtBQUFBLE1BQUMsS0FBSyxNQUFLLEdBQUU7QUFBQyxjQUFNLElBQUUsS0FBSyxZQUFZLElBQUksQ0FBQyxLQUFHLENBQUMsR0FBRUEsS0FBRSxDQUFDO0FBQUUsbUJBQVUsS0FBSztBQUFFLFlBQUUsR0FBRyxHQUFHLENBQUMsR0FBRSxFQUFFLFFBQU1BLEdBQUUsS0FBSyxNQUFJLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQyxHQUFFLENBQUMsQ0FBQztBQUFFLG1CQUFVLEtBQUtBO0FBQUUsWUFBRTtBQUFBLE1BQUU7QUFBQSxNQUFDLGNBQWE7QUFBQyxhQUFLLFlBQVksTUFBTTtBQUFB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QyxTQUFVLGFBQWEsYUFBYSxTQUNwQyxTQUFVLGFBQWEsYUFBYSxTQUNwQyxTQUFVLGFBQWEsYUFBYSxTQUNwQyxTQUFVLGFBQWEsYUFBYSxTQUNwQyxTQUFVLGFBQWEsYUFBYSxTQUNwQyxTQUFVLGFBQWEsYUFBYSxTQUNwQyxTQUFVLGFBQWEsYUFBYSxTQUNwQyxTQUFVLGFBQWEsYUFBYSxTQUNwQyxTQUFVLGFBQWEsYUFBYSxTQUNwQyxTQUFVLGFBQWEsYUFBYSxTQUNwQyxTQUFVLGFBQWEsYUFBYSxTQUNwQyxTQUFVLGFBQWEsYUFBYSxTQUNwQyxTQUFVLGFBQWEsYUFBYSxTQUNwQyxTQUFVLGFBQWEsYUFBYSxTQUNwQyxTQUFVLGFBQWEsYUFBYSxTQUNwQyxTQUFVLGFBQWEsYUFBYSxTQUNwQyxTQUFVLGFBQWEsYUFBYSxTQUNwQyxTQUFVLGFBQWEsYUFBYSxTQUNwQyxTQUFVLGFBQWEsYUFBYSxTQUNwQyxTQUFVLGFBQWEsYUFBYSxTQUNwQyxVQUFXLGFBQWEsYUFBYSxVQUNyQyxVQUFXLGFBQWEsYUFBYSxVQUNyQyxVQUFXLGFBQWEsYUFBYSxVQUNyQyxVQUFXLGFBQWEsYUFBYSxVQUNyQyxVQUFXLGFBQWEsYUFBYSxVQUNyQyxVQUFXLGFBQWEsYUFBYSxVQUNyQyxVQUFXLGFBQWEsYUFBYSxVQUNyQyxVQUFXLGFBQWEsYUFBYSxRQUFVO0FBQ2xELGlCQUFPO0FBQUEsUUFDVDtBQUNBLFlBQUssTUFBVSxhQUFhLGFBQWEsT0FDcEMsT0FBVSxhQUFhLGFBQWEsT0FDcEMsT0FBVSxhQUFhLGFBQWEsT0FDcEMsT0FBVSxhQUNWLE9BQVUsYUFDVixTQUFVLGFBQWEsYUFBYSxTQUNwQyxTQUFVLGFBQWEsYUFBYSxPQUFTO0FBQ2hELGlCQUFPO0FBQUEsUUFDVDtBQUNBLFlBQUssT0FBVSxhQUNWLE9BQVUsYUFDVixPQUFVLGFBQWEsYUFBYSxPQUNwQyxPQUFVLGFBQ1YsT0FBVSxhQUFhLGFBQWEsT0FDcEMsT0FBVSxhQUFhLGFBQWEsT0FDcEMsT0FBVSxhQUFhLGFBQWEsT0FDcEMsT0FBVSxhQUFhLGFBQWEsT0FDcEMsT0FBVSxhQUNWLE9BQVUsYUFDVixPQUFVLGFBQWEsYUFBYSxPQUNwQyxPQUFVLGFBQWEsYUFBYSxPQUNwQyxPQUFVLGFBQ1YsT0FBVSxhQUFhLGFBQWEsT0FDcEMsT0FBVSxhQUFhLGFBQWEsT0FDcEMsT0FBVSxhQUNWLE9BQVUsYUFBYSxhQUFhLE9BQ3BDLE9BQVUsYUFBYSxhQUFhLE9BQ3BDLE9BQVUsYUFDVixPQUFVLGFBQ1YsT0FBVSxhQUNWLE9BQVUsYUFDVixPQUFVLGFBQ1YsT0FBVSxhQUNWLE9BQVUsYUFBYSxhQUFhLE9BQ3BDLE9BQVUsYUFDVixPQUFVLGFBQWEsYUFBYSxPQUNwQyxPQUFVLGFBQ1YsT0FBVSxhQUFhLGFBQWEsT0FDcEMsT0FBVSxhQUNWLE9BQVUsYUFBYSxhQUFhLE9BQ3BDLE9BQVUsYUFDVixPQUFVLGFBQWEsYUFBYSxPQUNwQyxPQUFVLGFBQWEsYUFBYSxPQUNwQyxPQUFVLGFBQ1YsT0FBVSxhQUNWLE9BQVUsYUFDVixPQUFVLGFBQ1YsT0FBVSxhQUNWLE9BQVUsYUFDVixPQUFVLGFBQ1YsT0FBVSxhQUNWLE9BQVUsYUFDVixPQUFVLGFBQ1YsT0FBVSxhQUNWLE9BQVUsYUFDVixPQUFVLGFBQ1YsT0FBVSxhQUFhLGFBQWEsT0FDcEMsT0FBVSxhQUNWLE9BQVUsYUFDVixPQUFVLGFBQWEsYUFBYSxPQUNwQyxPQUFVLGFBQ1YsT0FBVSxhQUNWLE9BQVUsYUFBYSxhQUFhLE9BQ3BDLE9BQVUsYUFBYSxhQUFhLE9BQ3BDLE9BQVUsYUFBYSxhQUFhLE9BQ3BDLE9BQVUsYUFBYSxhQUFhLE9BQ3BDLE9BQVUsYUFBYSxhQUFhLE9BQ3BDLFFBQVUsYUFDVixRQUFVLGFBQWEsYUFBYSxRQUNwQyxRQUFVLGFBQ1YsUUFBVSxhQUNWLFFBQVUsYUFBYSxhQUFhLFFBQ3BDLFFBQVUsYUFBYSxhQUFhLFFBQ3BDLFFBQVUsYUFBYSxhQUFhLFFBQ3BDLFFBQVUsYUFBYSxhQUFhLFFBQ3BDLFFBQVUsYUFBYSxhQUFhLFFBQ3BDLFFBQVUsYUFDVixRQUFVLGFBQWEsYUFBYSxRQUNwQyxRQUFVLGFBQ1YsUUFBVSxhQUNWLFFBQVUsYUFDVixRQUFVLGFBQ1YsUUFBVSxhQUNWLFFBQVUsYUFBYSxhQUFhLFFBQ3BDLFFBQVUsYUFDVixRQUFVLGFBQ1YsUUFBVSxhQUNWLFFBQVUsYUFDVixRQUFVLGFBQ1YsUUFBVSxhQUNWLFFBQVUsYUFBYSxhQUFhLFFBQ3BDLFFBQVUsYUFDVixRQUFVLGFBQ1YsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUNWLFFBQVUsYUFBYSxhQUFhLFFBQ3BDLFFBQVUsYUFBYSxhQUFhLFFBQ3BDLFFBQVUsYUFDVixRQUFVLGFBQ1YsUUFBVSxhQUNWLFFBQVUsYUFDVixRQUFVLGFBQWEsYUFBYSxRQUNwQyxRQUFVLGFBQWEsYUFBYSxRQUNwQyxRQUFVLGFBQ1YsUUFBVSxhQUNWLFFBQVUsYUFDVixRQUFVLGFBQ1YsUUFBVSxhQUNWLFFBQVUsYUFBYSxhQUFhLFFBQ3BDLFFBQVUsYUFDVixRQUFVLGFBQ1YsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUNWLFFBQVUsYUFBYSxhQUFhLFFBQ3BDLFFBQVUsYUFBYSxhQUFhLFFBQ3BDLFFBQVUsYUFDVixRQUFVLGFBQ1YsUUFBVSxhQUNWLFFBQVUsYUFBYSxhQUFhLFFBQ3BDLFFBQVUsYUFBYSxhQUFhLFFBQ3BDLFFBQVUsYUFBYSxhQUFhLFFBQ3BDLFFBQVUsYUFBYSxhQUFhLFFBQ3BDLFFBQVUsYUFBYSxhQUFhLFFBQ3BDLFFBQVUsYUFBYSxhQUFhLFFBQ3BDLFFBQVUsYUFDVixRQUFVLGFBQ1YsUUFBVSxhQUNWLFFBQVUsYUFDVixRQUFVLGFBQ1YsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxh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QUFPO0FBQUEsRUFDVDtBQUNGO0FBRUEsZUFBZSxnQkFBZ0JBLElBQVc7QUFDeEMsUUFBTSxXQUFXLE1BQU0sWUFBWUEsRUFBQztBQUNwQyxNQUFJLGFBQWEsTUFBTTtBQUNyQixXQUFPO0FBQUEsRUFDVDtBQUNBLE1BQUk7QUFDRixXQUFPLGlCQUFpQixRQUFRO0FBQUEsRUFDbEMsUUFBUTtBQUNOLFdBQU87QUFBQSxFQUNUO0FBQ0Y7QUFFQSxTQUFTLGlCQUFpQixVQUFrQjtBQUMxQyxNQUFJO0FBQ0YsV0FBTyxLQUFLLE1BQU0sUUFBUTtBQUFBLEVBQzVCLFFBQVE7QUFDTixXQUFPO0FBQUEsRUFDVDtBQUNGOyIsCiAgIm5hbWVzIjogWyJkZWZhdWx0cyIsICJwIiwgImMiLCAibCIsICJ0ZXh0IiwgInMiLCAiSyIsICJ0dHkiLCAiaXNDb2xvclN1cHBvcnRlZCIsICJyZXBsYWNlQ2xvc2UiLCAiY3JlYXRlQ29sb3JzIiwgIkgiLCAiVyIsICJjIiwgImVudiIsICJhbnNpUmVnZXgiLCAic3RyaXBBbnNpIiwgIl8iLCAibSIsICJnZXRDb2xvciIsICJjcmVhdGVDb25zb2xhIiwgImlzQ0kiLCAidW5pY29kZSIsICJzIiwgInRleHQiLCAiYyIsICJyZWdleCIsICJmIiwgImoiLCAiTSIsICJIMiIsICJiIiwgImMiLCAiZyIsICJoIiwgImwiLCAiYyIsICJwIiwgImoiLCAiZGVmYXVsdHMiLCAicCIsICJfIiwgInN0ZG91dCJdCn0K