pkg-pr-new 0.0.48 → 0.0.49

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.js +2 -2
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -3107,7 +3107,7 @@ import { writePackageJSON } from "pkg-types";
3107
3107
  // package.json
3108
3108
  var package_default = {
3109
3109
  name: "pkg-pr-new",
3110
- version: "0.0.48",
3110
+ version: "0.0.49",
3111
3111
  description: "",
3112
3112
  main: "index.js",
3113
3113
  type: "module",
@@ -3706,4 +3706,4 @@ function parsePackageJson(contents) {
3706
3706
  return null;
3707
3707
  }
3708
3708
  }
3709
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2NvbnNvbGFAMy4zLjEvbm9kZV9tb2R1bGVzL2NvbnNvbGEvZGlzdC9jb3JlLm1qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY29uc29sYUAzLjMuMS9ub2RlX21vZHVsZXMvY29uc29sYS9kaXN0L3NoYXJlZC9jb25zb2xhLkNzNUZkdEhELm1qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY29uc29sYUAzLjMuMS9ub2RlX21vZHVsZXMvY29uc29sYS9kaXN0L3NoYXJlZC9jb25zb2xhLkNCaTZObTlzLm1qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY29uc29sYUAzLjMuMS9ub2RlX21vZHVsZXMvY29uc29sYS9kaXN0L2NodW5rcy9wcm9tcHQubWpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9jb25zb2xhQDMuMy4xL25vZGVfbW9kdWxlcy9jb25zb2xhL2Rpc3Qvc2hhcmVkL2NvbnNvbGEuRDRKSzNSQ0subWpzIiwgIi4uL2luZGV4LnRzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9vaGFzaEAxLjEuNC9ub2RlX21vZHVsZXMvb2hhc2gvZGlzdC9pbmRleC5tanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2NvbnNvbGFAMy4zLjEvbm9kZV9tb2R1bGVzL2NvbnNvbGEvZGlzdC9pbmRleC5tanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2NvbnNvbGFAMy4zLjEvbm9kZV9tb2R1bGVzL2NvbnNvbGEvZGlzdC91dGlscy5tanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2NpdHR5QDAuMS42L25vZGVfbW9kdWxlcy9jaXR0eS9kaXN0L2luZGV4Lm1qcyIsICIuLi8uLi91dGlscy9pbmRleC50cyIsICIuLi9wYWNrYWdlLmpzb24iLCAiLi4vdGVtcGxhdGUudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IExvZ0xldmVscyA9IHtcbiAgc2lsZW50OiBOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFksXG4gIGZhdGFsOiAwLFxuICBlcnJvcjogMCxcbiAgd2FybjogMSxcbiAgbG9nOiAyLFxuICBpbmZvOiAzLFxuICBzdWNjZXNzOiAzLFxuICBmYWlsOiAzLFxuICByZWFkeTogMyxcbiAgc3RhcnQ6IDMsXG4gIGJveDogMyxcbiAgZGVidWc6IDQsXG4gIHRyYWNlOiA1LFxuICB2ZXJib3NlOiBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFlcbn07XG5jb25zdCBMb2dUeXBlcyA9IHtcbiAgLy8gU2lsZW50XG4gIHNpbGVudDoge1xuICAgIGxldmVsOiAtMVxuICB9LFxuICAvLyBMZXZlbCAwXG4gIGZhdGFsOiB7XG4gICAgbGV2ZWw6IExvZ0xldmVscy5mYXRhbFxuICB9LFxuICBlcnJvcjoge1xuICAgIGxldmVsOiBMb2dMZXZlbHMuZXJyb3JcbiAgfSxcbiAgLy8gTGV2ZWwgMVxuICB3YXJuOiB7XG4gICAgbGV2ZWw6IExvZ0xldmVscy53YXJuXG4gIH0sXG4gIC8vIExldmVsIDJcbiAgbG9nOiB7XG4gICAgbGV2ZWw6IExvZ0xldmVscy5sb2dcbiAgfSxcbiAgLy8gTGV2ZWwgM1xuICBpbmZvOiB7XG4gICAgbGV2ZWw6IExvZ0xldmVscy5pbmZvXG4gIH0sXG4gIHN1Y2Nlc3M6IHtcbiAgICBsZXZlbDogTG9nTGV2ZWxzLnN1Y2Nlc3NcbiAgfSxcbiAgZmFpbDoge1xuICAgIGxldmVsOiBMb2dMZXZlbHMuZmFpbFxuICB9LFxuICByZWFkeToge1xuICAgIGxldmVsOiBMb2dMZXZlbHMuaW5mb1xuICB9LFxuICBzdGFydDoge1xuICAgIGxldmVsOiBMb2dMZXZlbHMuaW5mb1xuICB9LFxuICBib3g6IHtcbiAgICBsZXZlbDogTG9nTGV2ZWxzLmluZm9cbiAgfSxcbiAgLy8gTGV2ZWwgNFxuICBkZWJ1Zzoge1xuICAgIGxldmVsOiBMb2dMZXZlbHMuZGVidWdcbiAgfSxcbiAgLy8gTGV2ZWwgNVxuICB0cmFjZToge1xuICAgIGxldmVsOiBMb2dMZXZlbHMudHJhY2VcbiAgfSxcbiAgLy8gVmVyYm9zZVxuICB2ZXJib3NlOiB7XG4gICAgbGV2ZWw6IExvZ0xldmVscy52ZXJib3NlXG4gIH1cbn07XG5cbmZ1bmN0aW9uIGlzUGxhaW5PYmplY3QkMSh2YWx1ZSkge1xuICBpZiAodmFsdWUgPT09IG51bGwgfHwgdHlwZW9mIHZhbHVlICE9PSBcIm9iamVjdFwiKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGNvbnN0IHByb3RvdHlwZSA9IE9iamVjdC5nZXRQcm90b3R5cGVPZih2YWx1ZSk7XG4gIGlmIChwcm90b3R5cGUgIT09IG51bGwgJiYgcHJvdG90eXBlICE9PSBPYmplY3QucHJvdG90eXBlICYmIE9iamVjdC5nZXRQcm90b3R5cGVPZihwcm90b3R5cGUpICE9PSBudWxsKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGlmIChTeW1ib2wuaXRlcmF0b3IgaW4gdmFsdWUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgaWYgKFN5bWJvbC50b1N0cmluZ1RhZyBpbiB2YWx1ZSkge1xuICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsdWUpID09PSBcIltvYmplY3QgTW9kdWxlXVwiO1xuICB9XG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiBfZGVmdShiYXNlT2JqZWN0LCBkZWZhdWx0cywgbmFtZXNwYWNlID0gXCIuXCIsIG1lcmdlcikge1xuICBpZiAoIWlzUGxhaW5PYmplY3QkMShkZWZhdWx0cykpIHtcbiAgICByZXR1cm4gX2RlZnUoYmFzZU9iamVjdCwge30sIG5hbWVzcGFjZSwgbWVyZ2VyKTtcbiAgfVxuICBjb25zdCBvYmplY3QgPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0cyk7XG4gIGZvciAoY29uc3Qga2V5IGluIGJhc2VPYmplY3QpIHtcbiAgICBpZiAoa2V5ID09PSBcIl9fcHJvdG9fX1wiIHx8IGtleSA9PT0gXCJjb25zdHJ1Y3RvclwiKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgY29uc3QgdmFsdWUgPSBiYXNlT2JqZWN0W2tleV07XG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB2b2lkIDApIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBpZiAobWVyZ2VyICYmIG1lcmdlcihvYmplY3QsIGtleSwgdmFsdWUsIG5hbWVzcGFjZSkpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgQXJyYXkuaXNBcnJheShvYmplY3Rba2V5XSkpIHtcbiAgICAgIG9iamVjdFtrZXldID0gWy4uLnZhbHVlLCAuLi5vYmplY3Rba2V5XV07XG4gICAgfSBlbHNlIGlmIChpc1BsYWluT2JqZWN0JDEodmFsdWUpICYmIGlzUGxhaW5PYmplY3QkMShvYmplY3Rba2V5XSkpIHtcbiAgICAgIG9iamVjdFtrZXldID0gX2RlZnUoXG4gICAgICAgIHZhbHVlLFxuICAgICAgICBvYmplY3Rba2V5XSxcbiAgICAgICAgKG5hbWVzcGFjZSA/IGAke25hbWVzcGFjZX0uYCA6IFwiXCIpICsga2V5LnRvU3RyaW5nKCksXG4gICAgICAgIG1lcmdlclxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgb2JqZWN0W2tleV0gPSB2YWx1ZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG9iamVjdDtcbn1cbmZ1bmN0aW9uIGNyZWF0ZURlZnUobWVyZ2VyKSB7XG4gIHJldHVybiAoLi4uYXJndW1lbnRzXykgPT4gKFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSB1bmljb3JuL25vLWFycmF5LXJlZHVjZVxuICAgIGFyZ3VtZW50c18ucmVkdWNlKChwLCBjKSA9PiBfZGVmdShwLCBjLCBcIlwiLCBtZXJnZXIpLCB7fSlcbiAgKTtcbn1cbmNvbnN0IGRlZnUgPSBjcmVhdGVEZWZ1KCk7XG5cbmZ1bmN0aW9uIGlzUGxhaW5PYmplY3Qob2JqKSB7XG4gIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqKSA9PT0gXCJbb2JqZWN0IE9iamVjdF1cIjtcbn1cbmZ1bmN0aW9uIGlzTG9nT2JqKGFyZykge1xuICBpZiAoIWlzUGxhaW5PYmplY3QoYXJnKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBpZiAoIWFyZy5tZXNzYWdlICYmICFhcmcuYXJncykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBpZiAoYXJnLnN0YWNrKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiB0cnVlO1xufVxuXG5sZXQgcGF1c2VkID0gZmFsc2U7XG5jb25zdCBxdWV1ZSA9IFtdO1xuY2xhc3MgQ29uc29sYSB7XG4gIG9wdGlvbnM7XG4gIF9sYXN0TG9nO1xuICBfbW9ja0ZuO1xuICAvKipcbiAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBDb25zb2xhIHdpdGggc3BlY2lmaWVkIG9wdGlvbnMgb3IgZGVmYXVsdHMuXG4gICAqXG4gICAqIEBwYXJhbSB7UGFydGlhbDxDb25zb2xhT3B0aW9ucz59IFtvcHRpb25zPXt9XSAtIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIENvbnNvbGEgaW5zdGFuY2UuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihvcHRpb25zID0ge30pIHtcbiAgICBjb25zdCB0eXBlcyA9IG9wdGlvbnMudHlwZXMgfHwgTG9nVHlwZXM7XG4gICAgdGhpcy5vcHRpb25zID0gZGVmdShcbiAgICAgIHtcbiAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgZGVmYXVsdHM6IHsgLi4ub3B0aW9ucy5kZWZhdWx0cyB9LFxuICAgICAgICBsZXZlbDogX25vcm1hbGl6ZUxvZ0xldmVsKG9wdGlvbnMubGV2ZWwsIHR5cGVzKSxcbiAgICAgICAgcmVwb3J0ZXJzOiBbLi4ub3B0aW9ucy5yZXBvcnRlcnMgfHwgW11dXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlczogTG9nVHlwZXMsXG4gICAgICAgIHRocm90dGxlOiAxZTMsXG4gICAgICAgIHRocm90dGxlTWluOiA1LFxuICAgICAgICBmb3JtYXRPcHRpb25zOiB7XG4gICAgICAgICAgZGF0ZTogdHJ1ZSxcbiAgICAgICAgICBjb2xvcnM6IGZhbHNlLFxuICAgICAgICAgIGNvbXBhY3Q6IHRydWVcbiAgICAgICAgfVxuICAgICAgfVxuICAgICk7XG4gICAgZm9yIChjb25zdCB0eXBlIGluIHR5cGVzKSB7XG4gICAgICBjb25zdCBkZWZhdWx0cyA9IHtcbiAgICAgICAgdHlwZSxcbiAgICAgICAgLi4udGhpcy5vcHRpb25zLmRlZmF1bHRzLFxuICAgICAgICAuLi50eXBlc1t0eXBlXVxuICAgICAgfTtcbiAgICAgIHRoaXNbdHlwZV0gPSB0aGlzLl93cmFwTG9nRm4oZGVmYXVsdHMpO1xuICAgICAgdGhpc1t0eXBlXS5yYXcgPSB0aGlzLl93cmFwTG9nRm4oXG4gICAgICAgIGRlZmF1bHRzLFxuICAgICAgICB0cnVlXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAodGhpcy5vcHRpb25zLm1vY2tGbikge1xuICAgICAgdGhpcy5tb2NrVHlwZXMoKTtcbiAgICB9XG4gICAgdGhpcy5fbGFzdExvZyA9IHt9O1xuICB9XG4gIC8qKlxuICAgKiBHZXRzIHRoZSBjdXJyZW50IGxvZyBsZXZlbCBvZiB0aGUgQ29uc29sYSBpbnN0YW5jZS5cbiAgICpcbiAgICogQHJldHVybnMge251bWJlcn0gVGhlIGN1cnJlbnQgbG9nIGxldmVsLlxuICAgKi9cbiAgZ2V0IGxldmVsKCkge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMubGV2ZWw7XG4gIH1cbiAgLyoqXG4gICAqIFNldHMgdGhlIG1pbmltdW0gbG9nIGxldmVsIHRoYXQgd2lsbCBiZSBvdXRwdXQgYnkgdGhlIGluc3RhbmNlLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gbGV2ZWwgLSBUaGUgbmV3IGxvZyBsZXZlbCB0byBzZXQuXG4gICAqL1xuICBzZXQgbGV2ZWwobGV2ZWwpIHtcbiAgICB0aGlzLm9wdGlvbnMubGV2ZWwgPSBfbm9ybWFsaXplTG9nTGV2ZWwoXG4gICAgICBsZXZlbCxcbiAgICAgIHRoaXMub3B0aW9ucy50eXBlcyxcbiAgICAgIHRoaXMub3B0aW9ucy5sZXZlbFxuICAgICk7XG4gIH1cbiAgLyoqXG4gICAqIERpc3BsYXlzIGEgcHJvbXB0IHRvIHRoZSB1c2VyIGFuZCByZXR1cm5zIHRoZSByZXNwb25zZS5cbiAgICogVGhyb3cgYW4gZXJyb3IgaWYgYHByb21wdGAgaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uLlxuICAgKlxuICAgKiBAdGVtcGxhdGUgVFxuICAgKiBAcGFyYW0ge3N0cmluZ30gbWVzc2FnZSAtIFRoZSBtZXNzYWdlIHRvIGRpc3BsYXkgaW4gdGhlIHByb21wdC5cbiAgICogQHBhcmFtIHtUfSBbb3B0c10gLSBPcHRpb25hbCBvcHRpb25zIGZvciB0aGUgcHJvbXB0LiBTZWUge0BsaW5rIFByb21wdE9wdGlvbnN9LlxuICAgKiBAcmV0dXJucyB7cHJvbWlzZTxUPn0gQSBwcm9taXNlIHRoYXQgaW5mZXIgd2l0aCB0aGUgcHJvbXB0IG9wdGlvbnMuIFNlZSB7QGxpbmsgUHJvbXB0T3B0aW9uc30uXG4gICAqL1xuICBwcm9tcHQobWVzc2FnZSwgb3B0cykge1xuICAgIGlmICghdGhpcy5vcHRpb25zLnByb21wdCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwicHJvbXB0IGlzIG5vdCBzdXBwb3J0ZWQhXCIpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLnByb21wdChtZXNzYWdlLCBvcHRzKTtcbiAgfVxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiBDb25zb2xhLCBpbmhlcml0aW5nIG9wdGlvbnMgZnJvbSB0aGUgY3VycmVudCBpbnN0YW5jZSwgd2l0aCBwb3NzaWJsZSBvdmVycmlkZXMuXG4gICAqXG4gICAqIEBwYXJhbSB7UGFydGlhbDxDb25zb2xhT3B0aW9ucz59IG9wdGlvbnMgLSBPcHRpb25hbCBvdmVycmlkZXMgZm9yIHRoZSBuZXcgaW5zdGFuY2UuIFNlZSB7QGxpbmsgQ29uc29sYU9wdGlvbnN9LlxuICAgKiBAcmV0dXJucyB7Q29uc29sYUluc3RhbmNlfSBBIG5ldyBDb25zb2xhIGluc3RhbmNlLiBTZWUge0BsaW5rIENvbnNvbGFJbnN0YW5jZX0uXG4gICAqL1xuICBjcmVhdGUob3B0aW9ucykge1xuICAgIGNvbnN0IGluc3RhbmNlID0gbmV3IENvbnNvbGEoe1xuICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgICAgLi4ub3B0aW9uc1xuICAgIH0pO1xuICAgIGlmICh0aGlzLl9tb2NrRm4pIHtcbiAgICAgIGluc3RhbmNlLm1vY2tUeXBlcyh0aGlzLl9tb2NrRm4pO1xuICAgIH1cbiAgICByZXR1cm4gaW5zdGFuY2U7XG4gIH1cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgQ29uc29sYSBpbnN0YW5jZSB3aXRoIHRoZSBzcGVjaWZpZWQgZGVmYXVsdCBsb2cgb2JqZWN0IHByb3BlcnRpZXMuXG4gICAqXG4gICAqIEBwYXJhbSB7SW5wdXRMb2dPYmplY3R9IGRlZmF1bHRzIC0gRGVmYXVsdCBwcm9wZXJ0aWVzIHRvIGluY2x1ZGUgaW4gYW55IGxvZyBmcm9tIHRoZSBuZXcgaW5zdGFuY2UuIFNlZSB7QGxpbmsgSW5wdXRMb2dPYmplY3R9LlxuICAgKiBAcmV0dXJucyB7Q29uc29sYUluc3RhbmNlfSBBIG5ldyBDb25zb2xhIGluc3RhbmNlLiBTZWUge0BsaW5rIENvbnNvbGFJbnN0YW5jZX0uXG4gICAqL1xuICB3aXRoRGVmYXVsdHMoZGVmYXVsdHMpIHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGUoe1xuICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgICAgZGVmYXVsdHM6IHtcbiAgICAgICAgLi4udGhpcy5vcHRpb25zLmRlZmF1bHRzLFxuICAgICAgICAuLi5kZWZhdWx0c1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IENvbnNvbGEgaW5zdGFuY2Ugd2l0aCBhIHNwZWNpZmllZCB0YWcsIHdoaWNoIHdpbGwgYmUgaW5jbHVkZWQgaW4gZXZlcnkgbG9nLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGFnIC0gVGhlIHRhZyB0byBpbmNsdWRlIGluIGVhY2ggbG9nIG9mIHRoZSBuZXcgaW5zdGFuY2UuXG4gICAqIEByZXR1cm5zIHtDb25zb2xhSW5zdGFuY2V9IEEgbmV3IENvbnNvbGEgaW5zdGFuY2UuIFNlZSB7QGxpbmsgQ29uc29sYUluc3RhbmNlfS5cbiAgICovXG4gIHdpdGhUYWcodGFnKSB7XG4gICAgcmV0dXJuIHRoaXMud2l0aERlZmF1bHRzKHtcbiAgICAgIHRhZzogdGhpcy5vcHRpb25zLmRlZmF1bHRzLnRhZyA/IHRoaXMub3B0aW9ucy5kZWZhdWx0cy50YWcgKyBcIjpcIiArIHRhZyA6IHRhZ1xuICAgIH0pO1xuICB9XG4gIC8qKlxuICAgKiBBZGRzIGEgY3VzdG9tIHJlcG9ydGVyIHRvIHRoZSBDb25zb2xhIGluc3RhbmNlLlxuICAgKiBSZXBvcnRlcnMgd2lsbCBiZSBjYWxsZWQgZm9yIGVhY2ggbG9nIG1lc3NhZ2UsIGRlcGVuZGluZyBvbiB0aGVpciBpbXBsZW1lbnRhdGlvbiBhbmQgbG9nIGxldmVsLlxuICAgKlxuICAgKiBAcGFyYW0ge0NvbnNvbGFSZXBvcnRlcn0gcmVwb3J0ZXIgLSBUaGUgcmVwb3J0ZXIgdG8gYWRkLiBTZWUge0BsaW5rIENvbnNvbGFSZXBvcnRlcn0uXG4gICAqIEByZXR1cm5zIHtDb25zb2xhfSBUaGUgY3VycmVudCBDb25zb2xhIGluc3RhbmNlLlxuICAgKi9cbiAgYWRkUmVwb3J0ZXIocmVwb3J0ZXIpIHtcbiAgICB0aGlzLm9wdGlvbnMucmVwb3J0ZXJzLnB1c2gocmVwb3J0ZXIpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIC8qKlxuICAgKiBSZW1vdmVzIGEgY3VzdG9tIHJlcG9ydGVyIGZyb20gdGhlIENvbnNvbGEgaW5zdGFuY2UuXG4gICAqIElmIG5vIHJlcG9ydGVyIGlzIHNwZWNpZmllZCwgYWxsIHJlcG9ydGVycyB3aWxsIGJlIHJlbW92ZWQuXG4gICAqXG4gICAqIEBwYXJhbSB7Q29uc29sYVJlcG9ydGVyfSByZXBvcnRlciAtIFRoZSByZXBvcnRlciB0byByZW1vdmUuIFNlZSB7QGxpbmsgQ29uc29sYVJlcG9ydGVyfS5cbiAgICogQHJldHVybnMge0NvbnNvbGF9IFRoZSBjdXJyZW50IENvbnNvbGEgaW5zdGFuY2UuXG4gICAqL1xuICByZW1vdmVSZXBvcnRlcihyZXBvcnRlcikge1xuICAgIGlmIChyZXBvcnRlcikge1xuICAgICAgY29uc3QgaSA9IHRoaXMub3B0aW9ucy5yZXBvcnRlcnMuaW5kZXhPZihyZXBvcnRlcik7XG4gICAgICBpZiAoaSAhPT0gLTEpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5yZXBvcnRlcnMuc3BsaWNlKGksIDEpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9wdGlvbnMucmVwb3J0ZXJzLnNwbGljZSgwKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgLyoqXG4gICAqIFJlcGxhY2VzIGFsbCByZXBvcnRlcnMgb2YgdGhlIENvbnNvbGEgaW5zdGFuY2Ugd2l0aCB0aGUgc3BlY2lmaWVkIGFycmF5IG9mIHJlcG9ydGVycy5cbiAgICpcbiAgICogQHBhcmFtIHtDb25zb2xhUmVwb3J0ZXJbXX0gcmVwb3J0ZXJzIC0gVGhlIG5ldyByZXBvcnRlcnMgdG8gc2V0LiBTZWUge0BsaW5rIENvbnNvbGFSZXBvcnRlcn0uXG4gICAqIEByZXR1cm5zIHtDb25zb2xhfSBUaGUgY3VycmVudCBDb25zb2xhIGluc3RhbmNlLlxuICAgKi9cbiAgc2V0UmVwb3J0ZXJzKHJlcG9ydGVycykge1xuICAgIHRoaXMub3B0aW9ucy5yZXBvcnRlcnMgPSBBcnJheS5pc0FycmF5KHJlcG9ydGVycykgPyByZXBvcnRlcnMgOiBbcmVwb3J0ZXJzXTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICB3cmFwQWxsKCkge1xuICAgIHRoaXMud3JhcENvbnNvbGUoKTtcbiAgICB0aGlzLndyYXBTdGQoKTtcbiAgfVxuICByZXN0b3JlQWxsKCkge1xuICAgIHRoaXMucmVzdG9yZUNvbnNvbGUoKTtcbiAgICB0aGlzLnJlc3RvcmVTdGQoKTtcbiAgfVxuICAvKipcbiAgICogT3ZlcnJpZGVzIGNvbnNvbGUgbWV0aG9kcyB3aXRoIENvbnNvbGEgbG9nZ2luZyBtZXRob2RzIGZvciBjb25zaXN0ZW50IGxvZ2dpbmcuXG4gICAqL1xuICB3cmFwQ29uc29sZSgpIHtcbiAgICBmb3IgKGNvbnN0IHR5cGUgaW4gdGhpcy5vcHRpb25zLnR5cGVzKSB7XG4gICAgICBpZiAoIWNvbnNvbGVbXCJfX1wiICsgdHlwZV0pIHtcbiAgICAgICAgY29uc29sZVtcIl9fXCIgKyB0eXBlXSA9IGNvbnNvbGVbdHlwZV07XG4gICAgICB9XG4gICAgICBjb25zb2xlW3R5cGVdID0gdGhpc1t0eXBlXS5yYXc7XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBSZXN0b3JlcyB0aGUgb3JpZ2luYWwgY29uc29sZSBtZXRob2RzLCByZW1vdmluZyBDb25zb2xhIG92ZXJyaWRlcy5cbiAgICovXG4gIHJlc3RvcmVDb25zb2xlKCkge1xuICAgIGZvciAoY29uc3QgdHlwZSBpbiB0aGlzLm9wdGlvbnMudHlwZXMpIHtcbiAgICAgIGlmIChjb25zb2xlW1wiX19cIiArIHR5cGVdKSB7XG4gICAgICAgIGNvbnNvbGVbdHlwZV0gPSBjb25zb2xlW1wiX19cIiArIHR5cGVdO1xuICAgICAgICBkZWxldGUgY29uc29sZVtcIl9fXCIgKyB0eXBlXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIE92ZXJyaWRlcyBzdGFuZGFyZCBvdXRwdXQgYW5kIGVycm9yIHN0cmVhbXMgdG8gcmVkaXJlY3QgdGhlbSB0aHJvdWdoIENvbnNvbGEuXG4gICAqL1xuICB3cmFwU3RkKCkge1xuICAgIHRoaXMuX3dyYXBTdHJlYW0odGhpcy5vcHRpb25zLnN0ZG91dCwgXCJsb2dcIik7XG4gICAgdGhpcy5fd3JhcFN0cmVhbSh0aGlzLm9wdGlvbnMuc3RkZXJyLCBcImxvZ1wiKTtcbiAgfVxuICBfd3JhcFN0cmVhbShzdHJlYW0sIHR5cGUpIHtcbiAgICBpZiAoIXN0cmVhbSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIXN0cmVhbS5fX3dyaXRlKSB7XG4gICAgICBzdHJlYW0uX193cml0ZSA9IHN0cmVhbS53cml0ZTtcbiAgICB9XG4gICAgc3RyZWFtLndyaXRlID0gKGRhdGEpID0+IHtcbiAgICAgIHRoaXNbdHlwZV0ucmF3KFN0cmluZyhkYXRhKS50cmltKCkpO1xuICAgIH07XG4gIH1cbiAgLyoqXG4gICAqIFJlc3RvcmVzIHRoZSBvcmlnaW5hbCBzdGFuZGFyZCBvdXRwdXQgYW5kIGVycm9yIHN0cmVhbXMsIHJlbW92aW5nIHRoZSBDb25zb2xhIHJlZGlyZWN0aW9uLlxuICAgKi9cbiAgcmVzdG9yZVN0ZCgpIHtcbiAgICB0aGlzLl9yZXN0b3JlU3RyZWFtKHRoaXMub3B0aW9ucy5zdGRvdXQpO1xuICAgIHRoaXMuX3Jlc3RvcmVTdHJlYW0odGhpcy5vcHRpb25zLnN0ZGVycik7XG4gIH1cbiAgX3Jlc3RvcmVTdHJlYW0oc3RyZWFtKSB7XG4gICAgaWYgKCFzdHJlYW0pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHN0cmVhbS5fX3dyaXRlKSB7XG4gICAgICBzdHJlYW0ud3JpdGUgPSBzdHJlYW0uX193cml0ZTtcbiAgICAgIGRlbGV0ZSBzdHJlYW0uX193cml0ZTtcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIFBhdXNlcyBsb2dnaW5nLCBxdWV1ZXMgaW5jb21pbmcgbG9ncyB1bnRpbCByZXN1bWVkLlxuICAgKi9cbiAgcGF1c2VMb2dzKCkge1xuICAgIHBhdXNlZCA9IHRydWU7XG4gIH1cbiAgLyoqXG4gICAqIFJlc3VtZXMgbG9nZ2luZywgcHJvY2Vzc2luZyBhbnkgcXVldWVkIGxvZ3MuXG4gICAqL1xuICByZXN1bWVMb2dzKCkge1xuICAgIHBhdXNlZCA9IGZhbHNlO1xuICAgIGNvbnN0IF9xdWV1ZSA9IHF1ZXVlLnNwbGljZSgwKTtcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgX3F1ZXVlKSB7XG4gICAgICBpdGVtWzBdLl9sb2dGbihpdGVtWzFdLCBpdGVtWzJdKTtcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIFJlcGxhY2VzIGxvZ2dpbmcgbWV0aG9kcyB3aXRoIG1vY2tzIGlmIGEgbW9jayBmdW5jdGlvbiBpcyBwcm92aWRlZC5cbiAgICpcbiAgICogQHBhcmFtIHtDb25zb2xhT3B0aW9uc1tcIm1vY2tGblwiXX0gbW9ja0ZuIC0gVGhlIGZ1bmN0aW9uIHRvIHVzZSBmb3IgbW9ja2luZyBsb2dnaW5nIG1ldGhvZHMuIFNlZSB7QGxpbmsgQ29uc29sYU9wdGlvbnNbXCJtb2NrRm5cIl19LlxuICAgKi9cbiAgbW9ja1R5cGVzKG1vY2tGbikge1xuICAgIGNvbnN0IF9tb2NrRm4gPSBtb2NrRm4gfHwgdGhpcy5vcHRpb25zLm1vY2tGbjtcbiAgICB0aGlzLl9tb2NrRm4gPSBfbW9ja0ZuO1xuICAgIGlmICh0eXBlb2YgX21vY2tGbiAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGZvciAoY29uc3QgdHlwZSBpbiB0aGlzLm9wdGlvbnMudHlwZXMpIHtcbiAgICAgIHRoaXNbdHlwZV0gPSBfbW9ja0ZuKHR5cGUsIHRoaXMub3B0aW9ucy50eXBlc1t0eXBlXSkgfHwgdGhpc1t0eXBlXTtcbiAgICAgIHRoaXNbdHlwZV0ucmF3ID0gdGhpc1t0eXBlXTtcbiAgICB9XG4gIH1cbiAgX3dyYXBMb2dGbihkZWZhdWx0cywgaXNSYXcpIHtcbiAgICByZXR1cm4gKC4uLmFyZ3MpID0+IHtcbiAgICAgIGlmIChwYXVzZWQpIHtcbiAgICAgICAgcXVldWUucHVzaChbdGhpcywgZGVmYXVsdHMsIGFyZ3MsIGlzUmF3XSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLl9sb2dGbihkZWZhdWx0cywgYXJncywgaXNSYXcpO1xuICAgIH07XG4gIH1cbiAgX2xvZ0ZuKGRlZmF1bHRzLCBhcmdzLCBpc1Jhdykge1xuICAgIGlmICgoZGVmYXVsdHMubGV2ZWwgfHwgMCkgPiB0aGlzLmxldmVsKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IGxvZ09iaiA9IHtcbiAgICAgIGRhdGU6IC8qIEBfX1BVUkVfXyAqLyBuZXcgRGF0ZSgpLFxuICAgICAgYXJnczogW10sXG4gICAgICAuLi5kZWZhdWx0cyxcbiAgICAgIGxldmVsOiBfbm9ybWFsaXplTG9nTGV2ZWwoZGVmYXVsdHMubGV2ZWwsIHRoaXMub3B0aW9ucy50eXBlcylcbiAgICB9O1xuICAgIGlmICghaXNSYXcgJiYgYXJncy5sZW5ndGggPT09IDEgJiYgaXNMb2dPYmooYXJnc1swXSkpIHtcbiAgICAgIE9iamVjdC5hc3NpZ24obG9nT2JqLCBhcmdzWzBdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbG9nT2JqLmFyZ3MgPSBbLi4uYXJnc107XG4gICAgfVxuICAgIGlmIChsb2dPYmoubWVzc2FnZSkge1xuICAgICAgbG9nT2JqLmFyZ3MudW5zaGlmdChsb2dPYmoubWVzc2FnZSk7XG4gICAgICBkZWxldGUgbG9nT2JqLm1lc3NhZ2U7XG4gICAgfVxuICAgIGlmIChsb2dPYmouYWRkaXRpb25hbCkge1xuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGxvZ09iai5hZGRpdGlvbmFsKSkge1xuICAgICAgICBsb2dPYmouYWRkaXRpb25hbCA9IGxvZ09iai5hZGRpdGlvbmFsLnNwbGl0KFwiXFxuXCIpO1xuICAgICAgfVxuICAgICAgbG9nT2JqLmFyZ3MucHVzaChcIlxcblwiICsgbG9nT2JqLmFkZGl0aW9uYWwuam9pbihcIlxcblwiKSk7XG4gICAgICBkZWxldGUgbG9nT2JqLmFkZGl0aW9uYWw7XG4gICAgfVxuICAgIGxvZ09iai50eXBlID0gdHlwZW9mIGxvZ09iai50eXBlID09PSBcInN0cmluZ1wiID8gbG9nT2JqLnR5cGUudG9Mb3dlckNhc2UoKSA6IFwibG9nXCI7XG4gICAgbG9nT2JqLnRhZyA9IHR5cGVvZiBsb2dPYmoudGFnID09PSBcInN0cmluZ1wiID8gbG9nT2JqLnRhZyA6IFwiXCI7XG4gICAgY29uc3QgcmVzb2x2ZUxvZyA9IChuZXdMb2cgPSBmYWxzZSkgPT4ge1xuICAgICAgY29uc3QgcmVwZWF0ZWQgPSAodGhpcy5fbGFzdExvZy5jb3VudCB8fCAwKSAtIHRoaXMub3B0aW9ucy50aHJvdHRsZU1pbjtcbiAgICAgIGlmICh0aGlzLl9sYXN0TG9nLm9iamVjdCAmJiByZXBlYXRlZCA+IDApIHtcbiAgICAgICAgY29uc3QgYXJnczIgPSBbLi4udGhpcy5fbGFzdExvZy5vYmplY3QuYXJnc107XG4gICAgICAgIGlmIChyZXBlYXRlZCA+IDEpIHtcbiAgICAgICAgICBhcmdzMi5wdXNoKGAocmVwZWF0ZWQgJHtyZXBlYXRlZH0gdGltZXMpYCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fbG9nKHsgLi4udGhpcy5fbGFzdExvZy5vYmplY3QsIGFyZ3M6IGFyZ3MyIH0pO1xuICAgICAgICB0aGlzLl9sYXN0TG9nLmNvdW50ID0gMTtcbiAgICAgIH1cbiAgICAgIGlmIChuZXdMb2cpIHtcbiAgICAgICAgdGhpcy5fbGFzdExvZy5vYmplY3QgPSBsb2dPYmo7XG4gICAgICAgIHRoaXMuX2xvZyhsb2dPYmopO1xuICAgICAgfVxuICAgIH07XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuX2xhc3RMb2cudGltZW91dCk7XG4gICAgY29uc3QgZGlmZlRpbWUgPSB0aGlzLl9sYXN0TG9nLnRpbWUgJiYgbG9nT2JqLmRhdGUgPyBsb2dPYmouZGF0ZS5nZXRUaW1lKCkgLSB0aGlzLl9sYXN0TG9nLnRpbWUuZ2V0VGltZSgpIDogMDtcbiAgICB0aGlzLl9sYXN0TG9nLnRpbWUgPSBsb2dPYmouZGF0ZTtcbiAgICBpZiAoZGlmZlRpbWUgPCB0aGlzLm9wdGlvbnMudGhyb3R0bGUpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHNlcmlhbGl6ZWRMb2cgPSBKU09OLnN0cmluZ2lmeShbXG4gICAgICAgICAgbG9nT2JqLnR5cGUsXG4gICAgICAgICAgbG9nT2JqLnRhZyxcbiAgICAgICAgICBsb2dPYmouYXJnc1xuICAgICAgICBdKTtcbiAgICAgICAgY29uc3QgaXNTYW1lTG9nID0gdGhpcy5fbGFzdExvZy5zZXJpYWxpemVkID09PSBzZXJpYWxpemVkTG9nO1xuICAgICAgICB0aGlzLl9sYXN0TG9nLnNlcmlhbGl6ZWQgPSBzZXJpYWxpemVkTG9nO1xuICAgICAgICBpZiAoaXNTYW1lTG9nKSB7XG4gICAgICAgICAgdGhpcy5fbGFzdExvZy5jb3VudCA9ICh0aGlzLl9sYXN0TG9nLmNvdW50IHx8IDApICsgMTtcbiAgICAgICAgICBpZiAodGhpcy5fbGFzdExvZy5jb3VudCA+IHRoaXMub3B0aW9ucy50aHJvdHRsZU1pbikge1xuICAgICAgICAgICAgdGhpcy5fbGFzdExvZy50aW1lb3V0ID0gc2V0VGltZW91dChcbiAgICAgICAgICAgICAgcmVzb2x2ZUxvZyxcbiAgICAgICAgICAgICAgdGhpcy5vcHRpb25zLnRocm90dGxlXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCB7XG4gICAgICB9XG4gICAgfVxuICAgIHJlc29sdmVMb2codHJ1ZSk7XG4gIH1cbiAgX2xvZyhsb2dPYmopIHtcbiAgICBmb3IgKGNvbnN0IHJlcG9ydGVyIG9mIHRoaXMub3B0aW9ucy5yZXBvcnRlcnMpIHtcbiAgICAgIHJlcG9ydGVyLmxvZyhsb2dPYmosIHtcbiAgICAgICAgb3B0aW9uczogdGhpcy5vcHRpb25zXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIF9ub3JtYWxpemVMb2dMZXZlbChpbnB1dCwgdHlwZXMgPSB7fSwgZGVmYXVsdExldmVsID0gMykge1xuICBpZiAoaW5wdXQgPT09IHZvaWQgMCkge1xuICAgIHJldHVybiBkZWZhdWx0TGV2ZWw7XG4gIH1cbiAgaWYgKHR5cGVvZiBpbnB1dCA9PT0gXCJudW1iZXJcIikge1xuICAgIHJldHVybiBpbnB1dDtcbiAgfVxuICBpZiAodHlwZXNbaW5wdXRdICYmIHR5cGVzW2lucHV0XS5sZXZlbCAhPT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuIHR5cGVzW2lucHV0XS5sZXZlbDtcbiAgfVxuICByZXR1cm4gZGVmYXVsdExldmVsO1xufVxuQ29uc29sYS5wcm90b3R5cGUuYWRkID0gQ29uc29sYS5wcm90b3R5cGUuYWRkUmVwb3J0ZXI7XG5Db25zb2xhLnByb3RvdHlwZS5yZW1vdmUgPSBDb25zb2xhLnByb3RvdHlwZS5yZW1vdmVSZXBvcnRlcjtcbkNvbnNvbGEucHJvdG90eXBlLmNsZWFyID0gQ29uc29sYS5wcm90b3R5cGUucmVtb3ZlUmVwb3J0ZXI7XG5Db25zb2xhLnByb3RvdHlwZS53aXRoU2NvcGUgPSBDb25zb2xhLnByb3RvdHlwZS53aXRoVGFnO1xuQ29uc29sYS5wcm90b3R5cGUubW9jayA9IENvbnNvbGEucHJvdG90eXBlLm1vY2tUeXBlcztcbkNvbnNvbGEucHJvdG90eXBlLnBhdXNlID0gQ29uc29sYS5wcm90b3R5cGUucGF1c2VMb2dzO1xuQ29uc29sYS5wcm90b3R5cGUucmVzdW1lID0gQ29uc29sYS5wcm90b3R5cGUucmVzdW1lTG9ncztcbmZ1bmN0aW9uIGNyZWF0ZUNvbnNvbGEob3B0aW9ucyA9IHt9KSB7XG4gIHJldHVybiBuZXcgQ29uc29sYShvcHRpb25zKTtcbn1cblxuZXhwb3J0IHsgQ29uc29sYSwgTG9nTGV2ZWxzLCBMb2dUeXBlcywgY3JlYXRlQ29uc29sYSB9O1xuIiwgImltcG9ydCB7IGZvcm1hdFdpdGhPcHRpb25zIH0gZnJvbSAnbm9kZTp1dGlsJztcbmltcG9ydCB7IHNlcCB9IGZyb20gJ25vZGU6cGF0aCc7XG5cbmZ1bmN0aW9uIHBhcnNlU3RhY2soc3RhY2spIHtcbiAgY29uc3QgY3dkID0gcHJvY2Vzcy5jd2QoKSArIHNlcDtcbiAgY29uc3QgbGluZXMgPSBzdGFjay5zcGxpdChcIlxcblwiKS5zcGxpY2UoMSkubWFwKChsKSA9PiBsLnRyaW0oKS5yZXBsYWNlKFwiZmlsZTovL1wiLCBcIlwiKS5yZXBsYWNlKGN3ZCwgXCJcIikpO1xuICByZXR1cm4gbGluZXM7XG59XG5cbmZ1bmN0aW9uIHdyaXRlU3RyZWFtKGRhdGEsIHN0cmVhbSkge1xuICBjb25zdCB3cml0ZSA9IHN0cmVhbS5fX3dyaXRlIHx8IHN0cmVhbS53cml0ZTtcbiAgcmV0dXJuIHdyaXRlLmNhbGwoc3RyZWFtLCBkYXRhKTtcbn1cblxuY29uc3QgYnJhY2tldCA9ICh4KSA9PiB4ID8gYFske3h9XWAgOiBcIlwiO1xuY2xhc3MgQmFzaWNSZXBvcnRlciB7XG4gIGZvcm1hdFN0YWNrKHN0YWNrLCBvcHRzKSB7XG4gICAgY29uc3QgaW5kZW50ID0gXCIgIFwiLnJlcGVhdCgob3B0cz8uZXJyb3JMZXZlbCB8fCAwKSArIDEpO1xuICAgIHJldHVybiBpbmRlbnQgKyBwYXJzZVN0YWNrKHN0YWNrKS5qb2luKGBcbiR7aW5kZW50fWApO1xuICB9XG4gIGZvcm1hdEVycm9yKGVyciwgb3B0cykge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBlcnIubWVzc2FnZSA/PyBmb3JtYXRXaXRoT3B0aW9ucyhvcHRzLCBlcnIpO1xuICAgIGNvbnN0IHN0YWNrID0gZXJyLnN0YWNrID8gdGhpcy5mb3JtYXRTdGFjayhlcnIuc3RhY2ssIG9wdHMpIDogXCJcIjtcbiAgICBjb25zdCBsZXZlbCA9IG9wdHM/LmVycm9yTGV2ZWwgfHwgMDtcbiAgICBjb25zdCBjYXVzZWRQcmVmaXggPSBsZXZlbCA+IDAgPyBgJHtcIiAgXCIucmVwZWF0KGxldmVsKX1bY2F1c2VdOiBgIDogXCJcIjtcbiAgICBjb25zdCBjYXVzZWRFcnJvciA9IGVyci5jYXVzZSA/IFwiXFxuXFxuXCIgKyB0aGlzLmZvcm1hdEVycm9yKGVyci5jYXVzZSwgeyAuLi5vcHRzLCBlcnJvckxldmVsOiBsZXZlbCArIDEgfSkgOiBcIlwiO1xuICAgIHJldHVybiBjYXVzZWRQcmVmaXggKyBtZXNzYWdlICsgXCJcXG5cIiArIHN0YWNrICsgY2F1c2VkRXJyb3I7XG4gIH1cbiAgZm9ybWF0QXJncyhhcmdzLCBvcHRzKSB7XG4gICAgY29uc3QgX2FyZ3MgPSBhcmdzLm1hcCgoYXJnKSA9PiB7XG4gICAgICBpZiAoYXJnICYmIHR5cGVvZiBhcmcuc3RhY2sgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0RXJyb3IoYXJnLCBvcHRzKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhcmc7XG4gICAgfSk7XG4gICAgcmV0dXJuIGZvcm1hdFdpdGhPcHRpb25zKG9wdHMsIC4uLl9hcmdzKTtcbiAgfVxuICBmb3JtYXREYXRlKGRhdGUsIG9wdHMpIHtcbiAgICByZXR1cm4gb3B0cy5kYXRlID8gZGF0ZS50b0xvY2FsZVRpbWVTdHJpbmcoKSA6IFwiXCI7XG4gIH1cbiAgZmlsdGVyQW5kSm9pbihhcnIpIHtcbiAgICByZXR1cm4gYXJyLmZpbHRlcihCb29sZWFuKS5qb2luKFwiIFwiKTtcbiAgfVxuICBmb3JtYXRMb2dPYmoobG9nT2JqLCBvcHRzKSB7XG4gICAgY29uc3QgbWVzc2FnZSA9IHRoaXMuZm9ybWF0QXJncyhsb2dPYmouYXJncywgb3B0cyk7XG4gICAgaWYgKGxvZ09iai50eXBlID09PSBcImJveFwiKSB7XG4gICAgICByZXR1cm4gXCJcXG5cIiArIFtcbiAgICAgICAgYnJhY2tldChsb2dPYmoudGFnKSxcbiAgICAgICAgbG9nT2JqLnRpdGxlICYmIGxvZ09iai50aXRsZSxcbiAgICAgICAgLi4ubWVzc2FnZS5zcGxpdChcIlxcblwiKVxuICAgICAgXS5maWx0ZXIoQm9vbGVhbikubWFwKChsKSA9PiBcIiA+IFwiICsgbCkuam9pbihcIlxcblwiKSArIFwiXFxuXCI7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmZpbHRlckFuZEpvaW4oW1xuICAgICAgYnJhY2tldChsb2dPYmoudHlwZSksXG4gICAgICBicmFja2V0KGxvZ09iai50YWcpLFxuICAgICAgbWVzc2FnZVxuICAgIF0pO1xuICB9XG4gIGxvZyhsb2dPYmosIGN0eCkge1xuICAgIGNvbnN0IGxpbmUgPSB0aGlzLmZvcm1hdExvZ09iaihsb2dPYmosIHtcbiAgICAgIGNvbHVtbnM6IGN0eC5vcHRpb25zLnN0ZG91dC5jb2x1bW5zIHx8IDAsXG4gICAgICAuLi5jdHgub3B0aW9ucy5mb3JtYXRPcHRpb25zXG4gICAgfSk7XG4gICAgcmV0dXJuIHdyaXRlU3RyZWFtKFxuICAgICAgbGluZSArIFwiXFxuXCIsXG4gICAgICBsb2dPYmoubGV2ZWwgPCAyID8gY3R4Lm9wdGlvbnMuc3RkZXJyIHx8IHByb2Nlc3Muc3RkZXJyIDogY3R4Lm9wdGlvbnMuc3Rkb3V0IHx8IHByb2Nlc3Muc3Rkb3V0XG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgeyBCYXNpY1JlcG9ydGVyIGFzIEIsIHBhcnNlU3RhY2sgYXMgcCB9O1xuIiwgImltcG9ydCAqIGFzIHR0eSBmcm9tICdub2RlOnR0eSc7XG5cbmNvbnN0IHtcbiAgZW52ID0ge30sXG4gIGFyZ3YgPSBbXSxcbiAgcGxhdGZvcm0gPSBcIlwiXG59ID0gdHlwZW9mIHByb2Nlc3MgPT09IFwidW5kZWZpbmVkXCIgPyB7fSA6IHByb2Nlc3M7XG5jb25zdCBpc0Rpc2FibGVkID0gXCJOT19DT0xPUlwiIGluIGVudiB8fCBhcmd2LmluY2x1ZGVzKFwiLS1uby1jb2xvclwiKTtcbmNvbnN0IGlzRm9yY2VkID0gXCJGT1JDRV9DT0xPUlwiIGluIGVudiB8fCBhcmd2LmluY2x1ZGVzKFwiLS1jb2xvclwiKTtcbmNvbnN0IGlzV2luZG93cyA9IHBsYXRmb3JtID09PSBcIndpbjMyXCI7XG5jb25zdCBpc0R1bWJUZXJtaW5hbCA9IGVudi5URVJNID09PSBcImR1bWJcIjtcbmNvbnN0IGlzQ29tcGF0aWJsZVRlcm1pbmFsID0gdHR5ICYmIHR0eS5pc2F0dHkgJiYgdHR5LmlzYXR0eSgxKSAmJiBlbnYuVEVSTSAmJiAhaXNEdW1iVGVybWluYWw7XG5jb25zdCBpc0NJID0gXCJDSVwiIGluIGVudiAmJiAoXCJHSVRIVUJfQUNUSU9OU1wiIGluIGVudiB8fCBcIkdJVExBQl9DSVwiIGluIGVudiB8fCBcIkNJUkNMRUNJXCIgaW4gZW52KTtcbmNvbnN0IGlzQ29sb3JTdXBwb3J0ZWQgPSAhaXNEaXNhYmxlZCAmJiAoaXNGb3JjZWQgfHwgaXNXaW5kb3dzICYmICFpc0R1bWJUZXJtaW5hbCB8fCBpc0NvbXBhdGlibGVUZXJtaW5hbCB8fCBpc0NJKTtcbmZ1bmN0aW9uIHJlcGxhY2VDbG9zZShpbmRleCwgc3RyaW5nLCBjbG9zZSwgcmVwbGFjZSwgaGVhZCA9IHN0cmluZy5zbGljZSgwLCBNYXRoLm1heCgwLCBpbmRleCkpICsgcmVwbGFjZSwgdGFpbCA9IHN0cmluZy5zbGljZShNYXRoLm1heCgwLCBpbmRleCArIGNsb3NlLmxlbmd0aCkpLCBuZXh0ID0gdGFpbC5pbmRleE9mKGNsb3NlKSkge1xuICByZXR1cm4gaGVhZCArIChuZXh0IDwgMCA/IHRhaWwgOiByZXBsYWNlQ2xvc2UobmV4dCwgdGFpbCwgY2xvc2UsIHJlcGxhY2UpKTtcbn1cbmZ1bmN0aW9uIGNsZWFyQmxlZWQoaW5kZXgsIHN0cmluZywgb3BlbiwgY2xvc2UsIHJlcGxhY2UpIHtcbiAgcmV0dXJuIGluZGV4IDwgMCA/IG9wZW4gKyBzdHJpbmcgKyBjbG9zZSA6IG9wZW4gKyByZXBsYWNlQ2xvc2UoaW5kZXgsIHN0cmluZywgY2xvc2UsIHJlcGxhY2UpICsgY2xvc2U7XG59XG5mdW5jdGlvbiBmaWx0ZXJFbXB0eShvcGVuLCBjbG9zZSwgcmVwbGFjZSA9IG9wZW4sIGF0ID0gb3Blbi5sZW5ndGggKyAxKSB7XG4gIHJldHVybiAoc3RyaW5nKSA9PiBzdHJpbmcgfHwgIShzdHJpbmcgPT09IFwiXCIgfHwgc3RyaW5nID09PSB2b2lkIDApID8gY2xlYXJCbGVlZChcbiAgICAoXCJcIiArIHN0cmluZykuaW5kZXhPZihjbG9zZSwgYXQpLFxuICAgIHN0cmluZyxcbiAgICBvcGVuLFxuICAgIGNsb3NlLFxuICAgIHJlcGxhY2VcbiAgKSA6IFwiXCI7XG59XG5mdW5jdGlvbiBpbml0KG9wZW4sIGNsb3NlLCByZXBsYWNlKSB7XG4gIHJldHVybiBmaWx0ZXJFbXB0eShgXFx4MUJbJHtvcGVufW1gLCBgXFx4MUJbJHtjbG9zZX1tYCwgcmVwbGFjZSk7XG59XG5jb25zdCBjb2xvckRlZnMgPSB7XG4gIHJlc2V0OiBpbml0KDAsIDApLFxuICBib2xkOiBpbml0KDEsIDIyLCBcIlxceDFCWzIybVxceDFCWzFtXCIpLFxuICBkaW06IGluaXQoMiwgMjIsIFwiXFx4MUJbMjJtXFx4MUJbMm1cIiksXG4gIGl0YWxpYzogaW5pdCgzLCAyMyksXG4gIHVuZGVybGluZTogaW5pdCg0LCAyNCksXG4gIGludmVyc2U6IGluaXQoNywgMjcpLFxuICBoaWRkZW46IGluaXQoOCwgMjgpLFxuICBzdHJpa2V0aHJvdWdoOiBpbml0KDksIDI5KSxcbiAgYmxhY2s6IGluaXQoMzAsIDM5KSxcbiAgcmVkOiBpbml0KDMxLCAzOSksXG4gIGdyZWVuOiBpbml0KDMyLCAzOSksXG4gIHllbGxvdzogaW5pdCgzMywgMzkpLFxuICBibHVlOiBpbml0KDM0LCAzOSksXG4gIG1hZ2VudGE6IGluaXQoMzUsIDM5KSxcbiAgY3lhbjogaW5pdCgzNiwgMzkpLFxuICB3aGl0ZTogaW5pdCgzNywgMzkpLFxuICBncmF5OiBpbml0KDkwLCAzOSksXG4gIGJnQmxhY2s6IGluaXQoNDAsIDQ5KSxcbiAgYmdSZWQ6IGluaXQoNDEsIDQ5KSxcbiAgYmdHcmVlbjogaW5pdCg0MiwgNDkpLFxuICBiZ1llbGxvdzogaW5pdCg0MywgNDkpLFxuICBiZ0JsdWU6IGluaXQoNDQsIDQ5KSxcbiAgYmdNYWdlbnRhOiBpbml0KDQ1LCA0OSksXG4gIGJnQ3lhbjogaW5pdCg0NiwgNDkpLFxuICBiZ1doaXRlOiBpbml0KDQ3LCA0OSksXG4gIGJsYWNrQnJpZ2h0OiBpbml0KDkwLCAzOSksXG4gIHJlZEJyaWdodDogaW5pdCg5MSwgMzkpLFxuICBncmVlbkJyaWdodDogaW5pdCg5MiwgMzkpLFxuICB5ZWxsb3dCcmlnaHQ6IGluaXQoOTMsIDM5KSxcbiAgYmx1ZUJyaWdodDogaW5pdCg5NCwgMzkpLFxuICBtYWdlbnRhQnJpZ2h0OiBpbml0KDk1LCAzOSksXG4gIGN5YW5CcmlnaHQ6IGluaXQoOTYsIDM5KSxcbiAgd2hpdGVCcmlnaHQ6IGluaXQoOTcsIDM5KSxcbiAgYmdCbGFja0JyaWdodDogaW5pdCgxMDAsIDQ5KSxcbiAgYmdSZWRCcmlnaHQ6IGluaXQoMTAxLCA0OSksXG4gIGJnR3JlZW5CcmlnaHQ6IGluaXQoMTAyLCA0OSksXG4gIGJnWWVsbG93QnJpZ2h0OiBpbml0KDEwMywgNDkpLFxuICBiZ0JsdWVCcmlnaHQ6IGluaXQoMTA0LCA0OSksXG4gIGJnTWFnZW50YUJyaWdodDogaW5pdCgxMDUsIDQ5KSxcbiAgYmdDeWFuQnJpZ2h0OiBpbml0KDEwNiwgNDkpLFxuICBiZ1doaXRlQnJpZ2h0OiBpbml0KDEwNywgNDkpXG59O1xuZnVuY3Rpb24gY3JlYXRlQ29sb3JzKHVzZUNvbG9yID0gaXNDb2xvclN1cHBvcnRlZCkge1xuICByZXR1cm4gdXNlQ29sb3IgPyBjb2xvckRlZnMgOiBPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmtleXMoY29sb3JEZWZzKS5tYXAoKGtleSkgPT4gW2tleSwgU3RyaW5nXSkpO1xufVxuY29uc3QgY29sb3JzID0gY3JlYXRlQ29sb3JzKCk7XG5mdW5jdGlvbiBnZXRDb2xvcihjb2xvciwgZmFsbGJhY2sgPSBcInJlc2V0XCIpIHtcbiAgcmV0dXJuIGNvbG9yc1tjb2xvcl0gfHwgY29sb3JzW2ZhbGxiYWNrXTtcbn1cbmZ1bmN0aW9uIGNvbG9yaXplKGNvbG9yLCB0ZXh0KSB7XG4gIHJldHVybiBnZXRDb2xvcihjb2xvcikodGV4dCk7XG59XG5cbmNvbnN0IGFuc2lSZWdleCA9IFtcbiAgU3RyaW5nLnJhd2BbXFx1MDAxQlxcdTAwOUJdW1tcXF0oKSM7P10qKD86KD86KD86KD86O1stYS16QS1aXFxkXFwvIyYuOj0/JUB+X10rKSp8W2EtekEtWlxcZF0rKD86O1stYS16QS1aXFxkXFwvIyYuOj0/JUB+X10qKSopP1xcdTAwMDcpYCxcbiAgU3RyaW5nLnJhd2AoPzooPzpcXGR7MSw0fSg/OjtcXGR7MCw0fSkqKT9bXFxkQS1QUi1UWmNmLW5xLXV5PT48fl0pKWBcbl0uam9pbihcInxcIik7XG5mdW5jdGlvbiBzdHJpcEFuc2kodGV4dCkge1xuICByZXR1cm4gdGV4dC5yZXBsYWNlKG5ldyBSZWdFeHAoYW5zaVJlZ2V4LCBcImdcIiksIFwiXCIpO1xufVxuZnVuY3Rpb24gY2VudGVyQWxpZ24oc3RyLCBsZW4sIHNwYWNlID0gXCIgXCIpIHtcbiAgY29uc3QgZnJlZSA9IGxlbiAtIHN0ci5sZW5ndGg7XG4gIGlmIChmcmVlIDw9IDApIHtcbiAgICByZXR1cm4gc3RyO1xuICB9XG4gIGNvbnN0IGZyZWVMZWZ0ID0gTWF0aC5mbG9vcihmcmVlIC8gMik7XG4gIGxldCBfc3RyID0gXCJcIjtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgIF9zdHIgKz0gaSA8IGZyZWVMZWZ0IHx8IGkgPj0gZnJlZUxlZnQgKyBzdHIubGVuZ3RoID8gc3BhY2UgOiBzdHJbaSAtIGZyZWVMZWZ0XTtcbiAgfVxuICByZXR1cm4gX3N0cjtcbn1cbmZ1bmN0aW9uIHJpZ2h0QWxpZ24oc3RyLCBsZW4sIHNwYWNlID0gXCIgXCIpIHtcbiAgY29uc3QgZnJlZSA9IGxlbiAtIHN0ci5sZW5ndGg7XG4gIGlmIChmcmVlIDw9IDApIHtcbiAgICByZXR1cm4gc3RyO1xuICB9XG4gIGxldCBfc3RyID0gXCJcIjtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgIF9zdHIgKz0gaSA8IGZyZWUgPyBzcGFjZSA6IHN0cltpIC0gZnJlZV07XG4gIH1cbiAgcmV0dXJuIF9zdHI7XG59XG5mdW5jdGlvbiBsZWZ0QWxpZ24oc3RyLCBsZW4sIHNwYWNlID0gXCIgXCIpIHtcbiAgbGV0IF9zdHIgPSBcIlwiO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgX3N0ciArPSBpIDwgc3RyLmxlbmd0aCA/IHN0cltpXSA6IHNwYWNlO1xuICB9XG4gIHJldHVybiBfc3RyO1xufVxuZnVuY3Rpb24gYWxpZ24oYWxpZ25tZW50LCBzdHIsIGxlbiwgc3BhY2UgPSBcIiBcIikge1xuICBzd2l0Y2ggKGFsaWdubWVudCkge1xuICAgIGNhc2UgXCJsZWZ0XCI6IHtcbiAgICAgIHJldHVybiBsZWZ0QWxpZ24oc3RyLCBsZW4sIHNwYWNlKTtcbiAgICB9XG4gICAgY2FzZSBcInJpZ2h0XCI6IHtcbiAgICAgIHJldHVybiByaWdodEFsaWduKHN0ciwgbGVuLCBzcGFjZSk7XG4gICAgfVxuICAgIGNhc2UgXCJjZW50ZXJcIjoge1xuICAgICAgcmV0dXJuIGNlbnRlckFsaWduKHN0ciwgbGVuLCBzcGFjZSk7XG4gICAgfVxuICAgIGRlZmF1bHQ6IHtcbiAgICAgIHJldHVybiBzdHI7XG4gICAgfVxuICB9XG59XG5cbmNvbnN0IGJveFN0eWxlUHJlc2V0cyA9IHtcbiAgc29saWQ6IHtcbiAgICB0bDogXCJcXHUyNTBDXCIsXG4gICAgdHI6IFwiXFx1MjUxMFwiLFxuICAgIGJsOiBcIlxcdTI1MTRcIixcbiAgICBicjogXCJcXHUyNTE4XCIsXG4gICAgaDogXCJcXHUyNTAwXCIsXG4gICAgdjogXCJcXHUyNTAyXCJcbiAgfSxcbiAgZG91YmxlOiB7XG4gICAgdGw6IFwiXFx1MjU1NFwiLFxuICAgIHRyOiBcIlxcdTI1NTdcIixcbiAgICBibDogXCJcXHUyNTVBXCIsXG4gICAgYnI6IFwiXFx1MjU1RFwiLFxuICAgIGg6IFwiXFx1MjU1MFwiLFxuICAgIHY6IFwiXFx1MjU1MVwiXG4gIH0sXG4gIGRvdWJsZVNpbmdsZToge1xuICAgIHRsOiBcIlxcdTI1NTNcIixcbiAgICB0cjogXCJcXHUyNTU2XCIsXG4gICAgYmw6IFwiXFx1MjU1OVwiLFxuICAgIGJyOiBcIlxcdTI1NUNcIixcbiAgICBoOiBcIlxcdTI1MDBcIixcbiAgICB2OiBcIlxcdTI1NTFcIlxuICB9LFxuICBkb3VibGVTaW5nbGVSb3VuZGVkOiB7XG4gICAgdGw6IFwiXFx1MjU2RFwiLFxuICAgIHRyOiBcIlxcdTI1NkVcIixcbiAgICBibDogXCJcXHUyNTcwXCIsXG4gICAgYnI6IFwiXFx1MjU2RlwiLFxuICAgIGg6IFwiXFx1MjUwMFwiLFxuICAgIHY6IFwiXFx1MjU1MVwiXG4gIH0sXG4gIHNpbmdsZVRoaWNrOiB7XG4gICAgdGw6IFwiXFx1MjUwRlwiLFxuICAgIHRyOiBcIlxcdTI1MTNcIixcbiAgICBibDogXCJcXHUyNTE3XCIsXG4gICAgYnI6IFwiXFx1MjUxQlwiLFxuICAgIGg6IFwiXFx1MjUwMVwiLFxuICAgIHY6IFwiXFx1MjUwM1wiXG4gIH0sXG4gIHNpbmdsZURvdWJsZToge1xuICAgIHRsOiBcIlxcdTI1NTJcIixcbiAgICB0cjogXCJcXHUyNTU1XCIsXG4gICAgYmw6IFwiXFx1MjU1OFwiLFxuICAgIGJyOiBcIlxcdTI1NUJcIixcbiAgICBoOiBcIlxcdTI1NTBcIixcbiAgICB2OiBcIlxcdTI1MDJcIlxuICB9LFxuICBzaW5nbGVEb3VibGVSb3VuZGVkOiB7XG4gICAgdGw6IFwiXFx1MjU2RFwiLFxuICAgIHRyOiBcIlxcdTI1NkVcIixcbiAgICBibDogXCJcXHUyNTcwXCIsXG4gICAgYnI6IFwiXFx1MjU2RlwiLFxuICAgIGg6IFwiXFx1MjU1MFwiLFxuICAgIHY6IFwiXFx1MjUwMlwiXG4gIH0sXG4gIHJvdW5kZWQ6IHtcbiAgICB0bDogXCJcXHUyNTZEXCIsXG4gICAgdHI6IFwiXFx1MjU2RVwiLFxuICAgIGJsOiBcIlxcdTI1NzBcIixcbiAgICBicjogXCJcXHUyNTZGXCIsXG4gICAgaDogXCJcXHUyNTAwXCIsXG4gICAgdjogXCJcXHUyNTAyXCJcbiAgfVxufTtcbmNvbnN0IGRlZmF1bHRTdHlsZSA9IHtcbiAgYm9yZGVyQ29sb3I6IFwid2hpdGVcIixcbiAgYm9yZGVyU3R5bGU6IFwicm91bmRlZFwiLFxuICB2YWxpZ246IFwiY2VudGVyXCIsXG4gIHBhZGRpbmc6IDIsXG4gIG1hcmdpbkxlZnQ6IDEsXG4gIG1hcmdpblRvcDogMSxcbiAgbWFyZ2luQm90dG9tOiAxXG59O1xuZnVuY3Rpb24gYm94KHRleHQsIF9vcHRzID0ge30pIHtcbiAgY29uc3Qgb3B0cyA9IHtcbiAgICAuLi5fb3B0cyxcbiAgICBzdHlsZToge1xuICAgICAgLi4uZGVmYXVsdFN0eWxlLFxuICAgICAgLi4uX29wdHMuc3R5bGVcbiAgICB9XG4gIH07XG4gIGNvbnN0IHRleHRMaW5lcyA9IHRleHQuc3BsaXQoXCJcXG5cIik7XG4gIGNvbnN0IGJveExpbmVzID0gW107XG4gIGNvbnN0IF9jb2xvciA9IGdldENvbG9yKG9wdHMuc3R5bGUuYm9yZGVyQ29sb3IpO1xuICBjb25zdCBib3JkZXJTdHlsZSA9IHtcbiAgICAuLi50eXBlb2Ygb3B0cy5zdHlsZS5ib3JkZXJTdHlsZSA9PT0gXCJzdHJpbmdcIiA/IGJveFN0eWxlUHJlc2V0c1tvcHRzLnN0eWxlLmJvcmRlclN0eWxlXSB8fCBib3hTdHlsZVByZXNldHMuc29saWQgOiBvcHRzLnN0eWxlLmJvcmRlclN0eWxlXG4gIH07XG4gIGlmIChfY29sb3IpIHtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBib3JkZXJTdHlsZSkge1xuICAgICAgYm9yZGVyU3R5bGVba2V5XSA9IF9jb2xvcihcbiAgICAgICAgYm9yZGVyU3R5bGVba2V5XVxuICAgICAgKTtcbiAgICB9XG4gIH1cbiAgY29uc3QgcGFkZGluZ09mZnNldCA9IG9wdHMuc3R5bGUucGFkZGluZyAlIDIgPT09IDAgPyBvcHRzLnN0eWxlLnBhZGRpbmcgOiBvcHRzLnN0eWxlLnBhZGRpbmcgKyAxO1xuICBjb25zdCBoZWlnaHQgPSB0ZXh0TGluZXMubGVuZ3RoICsgcGFkZGluZ09mZnNldDtcbiAgY29uc3Qgd2lkdGggPSBNYXRoLm1heCguLi50ZXh0TGluZXMubWFwKChsaW5lKSA9PiBsaW5lLmxlbmd0aCkpICsgcGFkZGluZ09mZnNldDtcbiAgY29uc3Qgd2lkdGhPZmZzZXQgPSB3aWR0aCArIHBhZGRpbmdPZmZzZXQ7XG4gIGNvbnN0IGxlZnRTcGFjZSA9IG9wdHMuc3R5bGUubWFyZ2luTGVmdCA+IDAgPyBcIiBcIi5yZXBlYXQob3B0cy5zdHlsZS5tYXJnaW5MZWZ0KSA6IFwiXCI7XG4gIGlmIChvcHRzLnN0eWxlLm1hcmdpblRvcCA+IDApIHtcbiAgICBib3hMaW5lcy5wdXNoKFwiXCIucmVwZWF0KG9wdHMuc3R5bGUubWFyZ2luVG9wKSk7XG4gIH1cbiAgaWYgKG9wdHMudGl0bGUpIHtcbiAgICBjb25zdCB0aXRsZSA9IF9jb2xvciA/IF9jb2xvcihvcHRzLnRpdGxlKSA6IG9wdHMudGl0bGU7XG4gICAgY29uc3QgbGVmdCA9IGJvcmRlclN0eWxlLmgucmVwZWF0KFxuICAgICAgTWF0aC5mbG9vcigod2lkdGggLSBzdHJpcEFuc2kob3B0cy50aXRsZSkubGVuZ3RoKSAvIDIpXG4gICAgKTtcbiAgICBjb25zdCByaWdodCA9IGJvcmRlclN0eWxlLmgucmVwZWF0KFxuICAgICAgd2lkdGggLSBzdHJpcEFuc2kob3B0cy50aXRsZSkubGVuZ3RoIC0gc3RyaXBBbnNpKGxlZnQpLmxlbmd0aCArIHBhZGRpbmdPZmZzZXRcbiAgICApO1xuICAgIGJveExpbmVzLnB1c2goXG4gICAgICBgJHtsZWZ0U3BhY2V9JHtib3JkZXJTdHlsZS50bH0ke2xlZnR9JHt0aXRsZX0ke3JpZ2h0fSR7Ym9yZGVyU3R5bGUudHJ9YFxuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgYm94TGluZXMucHVzaChcbiAgICAgIGAke2xlZnRTcGFjZX0ke2JvcmRlclN0eWxlLnRsfSR7Ym9yZGVyU3R5bGUuaC5yZXBlYXQod2lkdGhPZmZzZXQpfSR7Ym9yZGVyU3R5bGUudHJ9YFxuICAgICk7XG4gIH1cbiAgY29uc3QgdmFsaWduT2Zmc2V0ID0gb3B0cy5zdHlsZS52YWxpZ24gPT09IFwiY2VudGVyXCIgPyBNYXRoLmZsb29yKChoZWlnaHQgLSB0ZXh0TGluZXMubGVuZ3RoKSAvIDIpIDogb3B0cy5zdHlsZS52YWxpZ24gPT09IFwidG9wXCIgPyBoZWlnaHQgLSB0ZXh0TGluZXMubGVuZ3RoIC0gcGFkZGluZ09mZnNldCA6IGhlaWdodCAtIHRleHRMaW5lcy5sZW5ndGg7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgaGVpZ2h0OyBpKyspIHtcbiAgICBpZiAoaSA8IHZhbGlnbk9mZnNldCB8fCBpID49IHZhbGlnbk9mZnNldCArIHRleHRMaW5lcy5sZW5ndGgpIHtcbiAgICAgIGJveExpbmVzLnB1c2goXG4gICAgICAgIGAke2xlZnRTcGFjZX0ke2JvcmRlclN0eWxlLnZ9JHtcIiBcIi5yZXBlYXQod2lkdGhPZmZzZXQpfSR7Ym9yZGVyU3R5bGUudn1gXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBsaW5lID0gdGV4dExpbmVzW2kgLSB2YWxpZ25PZmZzZXRdO1xuICAgICAgY29uc3QgbGVmdCA9IFwiIFwiLnJlcGVhdChwYWRkaW5nT2Zmc2V0KTtcbiAgICAgIGNvbnN0IHJpZ2h0ID0gXCIgXCIucmVwZWF0KHdpZHRoIC0gc3RyaXBBbnNpKGxpbmUpLmxlbmd0aCk7XG4gICAgICBib3hMaW5lcy5wdXNoKFxuICAgICAgICBgJHtsZWZ0U3BhY2V9JHtib3JkZXJTdHlsZS52fSR7bGVmdH0ke2xpbmV9JHtyaWdodH0ke2JvcmRlclN0eWxlLnZ9YFxuICAgICAgKTtcbiAgICB9XG4gIH1cbiAgYm94TGluZXMucHVzaChcbiAgICBgJHtsZWZ0U3BhY2V9JHtib3JkZXJTdHlsZS5ibH0ke2JvcmRlclN0eWxlLmgucmVwZWF0KHdpZHRoT2Zmc2V0KX0ke2JvcmRlclN0eWxlLmJyfWBcbiAgKTtcbiAgaWYgKG9wdHMuc3R5bGUubWFyZ2luQm90dG9tID4gMCkge1xuICAgIGJveExpbmVzLnB1c2goXCJcIi5yZXBlYXQob3B0cy5zdHlsZS5tYXJnaW5Cb3R0b20pKTtcbiAgfVxuICByZXR1cm4gYm94TGluZXMuam9pbihcIlxcblwiKTtcbn1cblxuZXhwb3J0IHsgYWxpZ24gYXMgYSwgYm94IGFzIGIsIGNlbnRlckFsaWduIGFzIGMsIGNvbG9ycyBhcyBkLCBjb2xvcml6ZSBhcyBlLCBnZXRDb2xvciBhcyBnLCBsZWZ0QWxpZ24gYXMgbCwgcmlnaHRBbGlnbiBhcyByLCBzdHJpcEFuc2kgYXMgcyB9O1xuIiwgImltcG9ydCB7IHN0ZGluLCBzdGRvdXQgfSBmcm9tICdub2RlOnByb2Nlc3MnO1xuaW1wb3J0IGcgZnJvbSAnbm9kZTpyZWFkbGluZSc7XG5pbXBvcnQgeyBXcml0ZVN0cmVhbSB9IGZyb20gJ25vZGU6dHR5JztcbmltcG9ydCB7IGkgYXMgaXNVbmljb2RlU3VwcG9ydGVkIH0gZnJvbSAnLi4vc2hhcmVkL2NvbnNvbGEuRDRKSzNSQ0subWpzJztcbmltcG9ydCB7IGQgYXMgY29sb3JzIH0gZnJvbSAnLi4vc2hhcmVkL2NvbnNvbGEuQ0JpNk5tOXMubWpzJztcbmltcG9ydCAnLi4vY29yZS5tanMnO1xuaW1wb3J0ICcuLi9zaGFyZWQvY29uc29sYS5DczVGZHRIRC5tanMnO1xuaW1wb3J0ICdub2RlOnV0aWwnO1xuaW1wb3J0ICdub2RlOnBhdGgnO1xuXG5mdW5jdGlvbiBnZXREZWZhdWx0RXhwb3J0RnJvbUNqcyAoeCkge1xuXHRyZXR1cm4geCAmJiB4Ll9fZXNNb2R1bGUgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHgsICdkZWZhdWx0JykgPyB4WydkZWZhdWx0J10gOiB4O1xufVxuXG52YXIgc3JjO1xudmFyIGhhc1JlcXVpcmVkU3JjO1xuXG5mdW5jdGlvbiByZXF1aXJlU3JjICgpIHtcblx0aWYgKGhhc1JlcXVpcmVkU3JjKSByZXR1cm4gc3JjO1xuXHRoYXNSZXF1aXJlZFNyYyA9IDE7XG5cblx0Y29uc3QgRVNDID0gJ1xceDFCJztcblx0Y29uc3QgQ1NJID0gYCR7RVNDfVtgO1xuXHRjb25zdCBiZWVwID0gJ1xcdTAwMDcnO1xuXG5cdGNvbnN0IGN1cnNvciA9IHtcblx0ICB0byh4LCB5KSB7XG5cdCAgICBpZiAoIXkpIHJldHVybiBgJHtDU0l9JHt4ICsgMX1HYDtcblx0ICAgIHJldHVybiBgJHtDU0l9JHt5ICsgMX07JHt4ICsgMX1IYDtcblx0ICB9LFxuXHQgIG1vdmUoeCwgeSkge1xuXHQgICAgbGV0IHJldCA9ICcnO1xuXG5cdCAgICBpZiAoeCA8IDApIHJldCArPSBgJHtDU0l9JHsteH1EYDtcblx0ICAgIGVsc2UgaWYgKHggPiAwKSByZXQgKz0gYCR7Q1NJfSR7eH1DYDtcblxuXHQgICAgaWYgKHkgPCAwKSByZXQgKz0gYCR7Q1NJfSR7LXl9QWA7XG5cdCAgICBlbHNlIGlmICh5ID4gMCkgcmV0ICs9IGAke0NTSX0ke3l9QmA7XG5cblx0ICAgIHJldHVybiByZXQ7XG5cdCAgfSxcblx0ICB1cDogKGNvdW50ID0gMSkgPT4gYCR7Q1NJfSR7Y291bnR9QWAsXG5cdCAgZG93bjogKGNvdW50ID0gMSkgPT4gYCR7Q1NJfSR7Y291bnR9QmAsXG5cdCAgZm9yd2FyZDogKGNvdW50ID0gMSkgPT4gYCR7Q1NJfSR7Y291bnR9Q2AsXG5cdCAgYmFja3dhcmQ6IChjb3VudCA9IDEpID0+IGAke0NTSX0ke2NvdW50fURgLFxuXHQgIG5leHRMaW5lOiAoY291bnQgPSAxKSA9PiBgJHtDU0l9RWAucmVwZWF0KGNvdW50KSxcblx0ICBwcmV2TGluZTogKGNvdW50ID0gMSkgPT4gYCR7Q1NJfUZgLnJlcGVhdChjb3VudCksXG5cdCAgbGVmdDogYCR7Q1NJfUdgLFxuXHQgIGhpZGU6IGAke0NTSX0/MjVsYCxcblx0ICBzaG93OiBgJHtDU0l9PzI1aGAsXG5cdCAgc2F2ZTogYCR7RVNDfTdgLFxuXHQgIHJlc3RvcmU6IGAke0VTQ304YFxuXHR9O1xuXG5cdGNvbnN0IHNjcm9sbCA9IHtcblx0ICB1cDogKGNvdW50ID0gMSkgPT4gYCR7Q1NJfVNgLnJlcGVhdChjb3VudCksXG5cdCAgZG93bjogKGNvdW50ID0gMSkgPT4gYCR7Q1NJfVRgLnJlcGVhdChjb3VudClcblx0fTtcblxuXHRjb25zdCBlcmFzZSA9IHtcblx0ICBzY3JlZW46IGAke0NTSX0ySmAsXG5cdCAgdXA6IChjb3VudCA9IDEpID0+IGAke0NTSX0xSmAucmVwZWF0KGNvdW50KSxcblx0ICBkb3duOiAoY291bnQgPSAxKSA9PiBgJHtDU0l9SmAucmVwZWF0KGNvdW50KSxcblx0ICBsaW5lOiBgJHtDU0l9MktgLFxuXHQgIGxpbmVFbmQ6IGAke0NTSX1LYCxcblx0ICBsaW5lU3RhcnQ6IGAke0NTSX0xS2AsXG5cdCAgbGluZXMoY291bnQpIHtcblx0ICAgIGxldCBjbGVhciA9ICcnO1xuXHQgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKVxuXHQgICAgICBjbGVhciArPSB0aGlzLmxpbmUgKyAoaSA8IGNvdW50IC0gMSA/IGN1cnNvci51cCgpIDogJycpO1xuXHQgICAgaWYgKGNvdW50KVxuXHQgICAgICBjbGVhciArPSBjdXJzb3IubGVmdDtcblx0ICAgIHJldHVybiBjbGVhcjtcblx0ICB9XG5cdH07XG5cblx0c3JjID0geyBjdXJzb3IsIHNjcm9sbCwgZXJhc2UsIGJlZXAgfTtcblx0cmV0dXJuIHNyYztcbn1cblxudmFyIHNyY0V4cG9ydHMgPSByZXF1aXJlU3JjKCk7XG5cbnZhciBwaWNvY29sb3JzID0ge2V4cG9ydHM6IHt9fTtcblxudmFyIGhhc1JlcXVpcmVkUGljb2NvbG9ycztcblxuZnVuY3Rpb24gcmVxdWlyZVBpY29jb2xvcnMgKCkge1xuXHRpZiAoaGFzUmVxdWlyZWRQaWNvY29sb3JzKSByZXR1cm4gcGljb2NvbG9ycy5leHBvcnRzO1xuXHRoYXNSZXF1aXJlZFBpY29jb2xvcnMgPSAxO1xuXHRsZXQgcCA9IHByb2Nlc3MgfHwge30sIGFyZ3YgPSBwLmFyZ3YgfHwgW10sIGVudiA9IHAuZW52IHx8IHt9O1xuXHRsZXQgaXNDb2xvclN1cHBvcnRlZCA9XG5cdFx0ISghIWVudi5OT19DT0xPUiB8fCBhcmd2LmluY2x1ZGVzKFwiLS1uby1jb2xvclwiKSkgJiZcblx0XHQoISFlbnYuRk9SQ0VfQ09MT1IgfHwgYXJndi5pbmNsdWRlcyhcIi0tY29sb3JcIikgfHwgcC5wbGF0Zm9ybSA9PT0gXCJ3aW4zMlwiIHx8ICgocC5zdGRvdXQgfHwge30pLmlzVFRZICYmIGVudi5URVJNICE9PSBcImR1bWJcIikgfHwgISFlbnYuQ0kpO1xuXG5cdGxldCBmb3JtYXR0ZXIgPSAob3BlbiwgY2xvc2UsIHJlcGxhY2UgPSBvcGVuKSA9PlxuXHRcdGlucHV0ID0+IHtcblx0XHRcdGxldCBzdHJpbmcgPSBcIlwiICsgaW5wdXQsIGluZGV4ID0gc3RyaW5nLmluZGV4T2YoY2xvc2UsIG9wZW4ubGVuZ3RoKTtcblx0XHRcdHJldHVybiB+aW5kZXggPyBvcGVuICsgcmVwbGFjZUNsb3NlKHN0cmluZywgY2xvc2UsIHJlcGxhY2UsIGluZGV4KSArIGNsb3NlIDogb3BlbiArIHN0cmluZyArIGNsb3NlXG5cdFx0fTtcblxuXHRsZXQgcmVwbGFjZUNsb3NlID0gKHN0cmluZywgY2xvc2UsIHJlcGxhY2UsIGluZGV4KSA9PiB7XG5cdFx0bGV0IHJlc3VsdCA9IFwiXCIsIGN1cnNvciA9IDA7XG5cdFx0ZG8ge1xuXHRcdFx0cmVzdWx0ICs9IHN0cmluZy5zdWJzdHJpbmcoY3Vyc29yLCBpbmRleCkgKyByZXBsYWNlO1xuXHRcdFx0Y3Vyc29yID0gaW5kZXggKyBjbG9zZS5sZW5ndGg7XG5cdFx0XHRpbmRleCA9IHN0cmluZy5pbmRleE9mKGNsb3NlLCBjdXJzb3IpO1xuXHRcdH0gd2hpbGUgKH5pbmRleClcblx0XHRyZXR1cm4gcmVzdWx0ICsgc3RyaW5nLnN1YnN0cmluZyhjdXJzb3IpXG5cdH07XG5cblx0bGV0IGNyZWF0ZUNvbG9ycyA9IChlbmFibGVkID0gaXNDb2xvclN1cHBvcnRlZCkgPT4ge1xuXHRcdGxldCBmID0gZW5hYmxlZCA/IGZvcm1hdHRlciA6ICgpID0+IFN0cmluZztcblx0XHRyZXR1cm4ge1xuXHRcdFx0aXNDb2xvclN1cHBvcnRlZDogZW5hYmxlZCxcblx0XHRcdHJlc2V0OiBmKFwiXFx4MWJbMG1cIiwgXCJcXHgxYlswbVwiKSxcblx0XHRcdGJvbGQ6IGYoXCJcXHgxYlsxbVwiLCBcIlxceDFiWzIybVwiLCBcIlxceDFiWzIybVxceDFiWzFtXCIpLFxuXHRcdFx0ZGltOiBmKFwiXFx4MWJbMm1cIiwgXCJcXHgxYlsyMm1cIiwgXCJcXHgxYlsyMm1cXHgxYlsybVwiKSxcblx0XHRcdGl0YWxpYzogZihcIlxceDFiWzNtXCIsIFwiXFx4MWJbMjNtXCIpLFxuXHRcdFx0dW5kZXJsaW5lOiBmKFwiXFx4MWJbNG1cIiwgXCJcXHgxYlsyNG1cIiksXG5cdFx0XHRpbnZlcnNlOiBmKFwiXFx4MWJbN21cIiwgXCJcXHgxYlsyN21cIiksXG5cdFx0XHRoaWRkZW46IGYoXCJcXHgxYls4bVwiLCBcIlxceDFiWzI4bVwiKSxcblx0XHRcdHN0cmlrZXRocm91Z2g6IGYoXCJcXHgxYls5bVwiLCBcIlxceDFiWzI5bVwiKSxcblxuXHRcdFx0YmxhY2s6IGYoXCJcXHgxYlszMG1cIiwgXCJcXHgxYlszOW1cIiksXG5cdFx0XHRyZWQ6IGYoXCJcXHgxYlszMW1cIiwgXCJcXHgxYlszOW1cIiksXG5cdFx0XHRncmVlbjogZihcIlxceDFiWzMybVwiLCBcIlxceDFiWzM5bVwiKSxcblx0XHRcdHllbGxvdzogZihcIlxceDFiWzMzbVwiLCBcIlxceDFiWzM5bVwiKSxcblx0XHRcdGJsdWU6IGYoXCJcXHgxYlszNG1cIiwgXCJcXHgxYlszOW1cIiksXG5cdFx0XHRtYWdlbnRhOiBmKFwiXFx4MWJbMzVtXCIsIFwiXFx4MWJbMzltXCIpLFxuXHRcdFx0Y3lhbjogZihcIlxceDFiWzM2bVwiLCBcIlxceDFiWzM5bVwiKSxcblx0XHRcdHdoaXRlOiBmKFwiXFx4MWJbMzdtXCIsIFwiXFx4MWJbMzltXCIpLFxuXHRcdFx0Z3JheTogZihcIlxceDFiWzkwbVwiLCBcIlxceDFiWzM5bVwiKSxcblxuXHRcdFx0YmdCbGFjazogZihcIlxceDFiWzQwbVwiLCBcIlxceDFiWzQ5bVwiKSxcblx0XHRcdGJnUmVkOiBmKFwiXFx4MWJbNDFtXCIsIFwiXFx4MWJbNDltXCIpLFxuXHRcdFx0YmdHcmVlbjogZihcIlxceDFiWzQybVwiLCBcIlxceDFiWzQ5bVwiKSxcblx0XHRcdGJnWWVsbG93OiBmKFwiXFx4MWJbNDNtXCIsIFwiXFx4MWJbNDltXCIpLFxuXHRcdFx0YmdCbHVlOiBmKFwiXFx4MWJbNDRtXCIsIFwiXFx4MWJbNDltXCIpLFxuXHRcdFx0YmdNYWdlbnRhOiBmKFwiXFx4MWJbNDVtXCIsIFwiXFx4MWJbNDltXCIpLFxuXHRcdFx0YmdDeWFuOiBmKFwiXFx4MWJbNDZtXCIsIFwiXFx4MWJbNDltXCIpLFxuXHRcdFx0YmdXaGl0ZTogZihcIlxceDFiWzQ3bVwiLCBcIlxceDFiWzQ5bVwiKSxcblxuXHRcdFx0YmxhY2tCcmlnaHQ6IGYoXCJcXHgxYls5MG1cIiwgXCJcXHgxYlszOW1cIiksXG5cdFx0XHRyZWRCcmlnaHQ6IGYoXCJcXHgxYls5MW1cIiwgXCJcXHgxYlszOW1cIiksXG5cdFx0XHRncmVlbkJyaWdodDogZihcIlxceDFiWzkybVwiLCBcIlxceDFiWzM5bVwiKSxcblx0XHRcdHllbGxvd0JyaWdodDogZihcIlxceDFiWzkzbVwiLCBcIlxceDFiWzM5bVwiKSxcblx0XHRcdGJsdWVCcmlnaHQ6IGYoXCJcXHgxYls5NG1cIiwgXCJcXHgxYlszOW1cIiksXG5cdFx0XHRtYWdlbnRhQnJpZ2h0OiBmKFwiXFx4MWJbOTVtXCIsIFwiXFx4MWJbMzltXCIpLFxuXHRcdFx0Y3lhbkJyaWdodDogZihcIlxceDFiWzk2bVwiLCBcIlxceDFiWzM5bVwiKSxcblx0XHRcdHdoaXRlQnJpZ2h0OiBmKFwiXFx4MWJbOTdtXCIsIFwiXFx4MWJbMzltXCIpLFxuXG5cdFx0XHRiZ0JsYWNrQnJpZ2h0OiBmKFwiXFx4MWJbMTAwbVwiLCBcIlxceDFiWzQ5bVwiKSxcblx0XHRcdGJnUmVkQnJpZ2h0OiBmKFwiXFx4MWJbMTAxbVwiLCBcIlxceDFiWzQ5bVwiKSxcblx0XHRcdGJnR3JlZW5CcmlnaHQ6IGYoXCJcXHgxYlsxMDJtXCIsIFwiXFx4MWJbNDltXCIpLFxuXHRcdFx0YmdZZWxsb3dCcmlnaHQ6IGYoXCJcXHgxYlsxMDNtXCIsIFwiXFx4MWJbNDltXCIpLFxuXHRcdFx0YmdCbHVlQnJpZ2h0OiBmKFwiXFx4MWJbMTA0bVwiLCBcIlxceDFiWzQ5bVwiKSxcblx0XHRcdGJnTWFnZW50YUJyaWdodDogZihcIlxceDFiWzEwNW1cIiwgXCJcXHgxYls0OW1cIiksXG5cdFx0XHRiZ0N5YW5CcmlnaHQ6IGYoXCJcXHgxYlsxMDZtXCIsIFwiXFx4MWJbNDltXCIpLFxuXHRcdFx0YmdXaGl0ZUJyaWdodDogZihcIlxceDFiWzEwN21cIiwgXCJcXHgxYls0OW1cIiksXG5cdFx0fVxuXHR9O1xuXG5cdHBpY29jb2xvcnMuZXhwb3J0cyA9IGNyZWF0ZUNvbG9ycygpO1xuXHRwaWNvY29sb3JzLmV4cG9ydHMuY3JlYXRlQ29sb3JzID0gY3JlYXRlQ29sb3JzO1xuXHRyZXR1cm4gcGljb2NvbG9ycy5leHBvcnRzO1xufVxuXG52YXIgcGljb2NvbG9yc0V4cG9ydHMgPSAvKkBfX1BVUkVfXyovIHJlcXVpcmVQaWNvY29sb3JzKCk7XG5jb25zdCBjID0gLypAX19QVVJFX18qL2dldERlZmF1bHRFeHBvcnRGcm9tQ2pzKHBpY29jb2xvcnNFeHBvcnRzKTtcblxuZnVuY3Rpb24gSih7b25seUZpcnN0OmU9ITF9PXt9KXtjb25zdCBGPVtcIltcXFxcdTAwMUJcXFxcdTAwOUJdW1tcXFxcXSgpIzs/XSooPzooPzooPzooPzo7Wy1hLXpBLVpcXFxcZFxcXFwvIyYuOj0/JUB+X10rKSp8W2EtekEtWlxcXFxkXSsoPzo7Wy1hLXpBLVpcXFxcZFxcXFwvIyYuOj0/JUB+X10qKSopPyg/OlxcXFx1MDAwN3xcXFxcdTAwMUJcXFxcdTAwNUN8XFxcXHUwMDlDKSlcIixcIig/Oig/OlxcXFxkezEsNH0oPzo7XFxcXGR7MCw0fSkqKT9bXFxcXGRBLVBSLVRaY2YtbnEtdXk9Pjx+XSkpXCJdLmpvaW4oXCJ8XCIpO3JldHVybiBuZXcgUmVnRXhwKEYsZT92b2lkIDA6XCJnXCIpfWNvbnN0IFE9SigpO2Z1bmN0aW9uIFQoZSl7aWYodHlwZW9mIGUhPVwic3RyaW5nXCIpdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgYSBcXGBzdHJpbmdcXGAsIGdvdCBcXGAke3R5cGVvZiBlfVxcYGApO3JldHVybiBlLnJlcGxhY2UoUSxcIlwiKX1mdW5jdGlvbiBPKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGUmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLFwiZGVmYXVsdFwiKT9lLmRlZmF1bHQ6ZX12YXIgUD17ZXhwb3J0czp7fX07KGZ1bmN0aW9uKGUpe3ZhciB1PXt9O2UuZXhwb3J0cz11LHUuZWFzdEFzaWFuV2lkdGg9ZnVuY3Rpb24odCl7dmFyIHM9dC5jaGFyQ29kZUF0KDApLGk9dC5sZW5ndGg9PTI/dC5jaGFyQ29kZUF0KDEpOjAsRD1zO3JldHVybiA1NTI5Njw9cyYmczw9NTYzMTkmJjU2MzIwPD1pJiZpPD01NzM0MyYmKHMmPTEwMjMsaSY9MTAyMyxEPXM8PDEwfGksRCs9NjU1MzYpLEQ9PTEyMjg4fHw2NTI4MTw9RCYmRDw9NjUzNzZ8fDY1NTA0PD1EJiZEPD02NTUxMD9cIkZcIjpEPT04MzYxfHw2NTM3Nzw9RCYmRDw9NjU0NzB8fDY1NDc0PD1EJiZEPD02NTQ3OXx8NjU0ODI8PUQmJkQ8PTY1NDg3fHw2NTQ5MDw9RCYmRDw9NjU0OTV8fDY1NDk4PD1EJiZEPD02NTUwMHx8NjU1MTI8PUQmJkQ8PTY1NTE4P1wiSFwiOjQzNTI8PUQmJkQ8PTQ0NDd8fDQ1MTU8PUQmJkQ8PTQ1MTl8fDQ2MDI8PUQmJkQ8PTQ2MDd8fDkwMDE8PUQmJkQ8PTkwMDJ8fDExOTA0PD1EJiZEPD0xMTkyOXx8MTE5MzE8PUQmJkQ8PTEyMDE5fHwxMjAzMjw9RCYmRDw9MTIyNDV8fDEyMjcyPD1EJiZEPD0xMjI4M3x8MTIyODk8PUQmJkQ8PTEyMzUwfHwxMjM1Mzw9RCYmRDw9MTI0Mzh8fDEyNDQxPD1EJiZEPD0xMjU0M3x8MTI1NDk8PUQmJkQ8PTEyNTg5fHwxMjU5Mzw9RCYmRDw9MTI2ODZ8fDEyNjg4PD1EJiZEPD0xMjczMHx8MTI3MzY8PUQmJkQ8PTEyNzcxfHwxMjc4NDw9RCYmRDw9MTI4MzB8fDEyODMyPD1EJiZEPD0xMjg3MXx8MTI4ODA8PUQmJkQ8PTEzMDU0fHwxMzA1Njw9RCYmRDw9MTk5MDN8fDE5OTY4PD1EJiZEPD00MjEyNHx8NDIxMjg8PUQmJkQ8PTQyMTgyfHw0MzM2MDw9RCYmRDw9NDMzODh8fDQ0MDMyPD1EJiZEPD01NTIwM3x8NTUyMTY8PUQmJkQ8PTU1MjM4fHw1NTI0Mzw9RCYmRDw9NTUyOTF8fDYzNzQ0PD1EJiZEPD02NDI1NXx8NjUwNDA8PUQmJkQ8PTY1MDQ5fHw2NTA3Mjw9RCYmRDw9NjUxMDZ8fDY1MTA4PD1EJiZEPD02NTEyNnx8NjUxMjg8PUQmJkQ8PTY1MTMxfHwxMTA1OTI8PUQmJkQ8PTExMDU5M3x8MTI3NDg4PD1EJiZEPD0xMjc0OTB8fDEyNzUwNDw9RCYmRDw9MTI3NTQ2fHwxMjc1NTI8PUQmJkQ8PTEyNzU2MHx8MTI3NTY4PD1EJiZEPD0xMjc1Njl8fDEzMTA3Mjw9RCYmRDw9MTk0MzY3fHwxNzc5ODQ8PUQmJkQ8PTE5NjYwNXx8MTk2NjA4PD1EJiZEPD0yNjIxNDE/XCJXXCI6MzI8PUQmJkQ8PTEyNnx8MTYyPD1EJiZEPD0xNjN8fDE2NTw9RCYmRDw9MTY2fHxEPT0xNzJ8fEQ9PTE3NXx8MTAyMTQ8PUQmJkQ8PTEwMjIxfHwxMDYyOTw9RCYmRDw9MTA2MzA/XCJOYVwiOkQ9PTE2MXx8RD09MTY0fHwxNjc8PUQmJkQ8PTE2OHx8RD09MTcwfHwxNzM8PUQmJkQ8PTE3NHx8MTc2PD1EJiZEPD0xODB8fDE4Mjw9RCYmRDw9MTg2fHwxODg8PUQmJkQ8PTE5MXx8RD09MTk4fHxEPT0yMDh8fDIxNTw9RCYmRDw9MjE2fHwyMjI8PUQmJkQ8PTIyNXx8RD09MjMwfHwyMzI8PUQmJkQ8PTIzNHx8MjM2PD1EJiZEPD0yMzd8fEQ9PTI0MHx8MjQyPD1EJiZEPD0yNDN8fDI0Nzw9RCYmRDw9MjUwfHxEPT0yNTJ8fEQ9PTI1NHx8RD09MjU3fHxEPT0yNzN8fEQ9PTI3NXx8RD09MjgzfHwyOTQ8PUQmJkQ8PTI5NXx8RD09Mjk5fHwzMDU8PUQmJkQ8PTMwN3x8RD09MzEyfHwzMTk8PUQmJkQ8PTMyMnx8RD09MzI0fHwzMjg8PUQmJkQ8PTMzMXx8RD09MzMzfHwzMzg8PUQmJkQ8PTMzOXx8MzU4PD1EJiZEPD0zNTl8fEQ9PTM2M3x8RD09NDYyfHxEPT00NjR8fEQ9PTQ2Nnx8RD09NDY4fHxEPT00NzB8fEQ9PTQ3Mnx8RD09NDc0fHxEPT00NzZ8fEQ9PTU5M3x8RD09NjA5fHxEPT03MDh8fEQ9PTcxMXx8NzEzPD1EJiZEPD03MTV8fEQ9PTcxN3x8RD09NzIwfHw3Mjg8PUQmJkQ8PTczMXx8RD09NzMzfHxEPT03MzV8fDc2ODw9RCYmRDw9ODc5fHw5MTM8PUQmJkQ8PTkyOXx8OTMxPD1EJiZEPD05Mzd8fDk0NTw9RCYmRDw9OTYxfHw5NjM8PUQmJkQ8PTk2OXx8RD09MTAyNXx8MTA0MDw9RCYmRDw9MTEwM3x8RD09MTEwNXx8RD09ODIwOHx8ODIxMTw9RCYmRDw9ODIxNHx8ODIxNjw9RCYmRDw9ODIxN3x8ODIyMDw9RCYmRDw9ODIyMXx8ODIyNDw9RCYmRDw9ODIyNnx8ODIyODw9RCYmRDw9ODIzMXx8RD09ODI0MHx8ODI0Mjw9RCYmRDw9ODI0M3x8RD09ODI0NXx8RD09ODI1MXx8RD09ODI1NHx8RD09ODMwOHx8RD09ODMxOXx8ODMyMTw9RCYmRDw9ODMyNHx8RD09ODM2NHx8RD09ODQ1MXx8RD09ODQ1M3x8RD09ODQ1N3x8RD09ODQ2N3x8RD09ODQ3MHx8ODQ4MTw9RCYmRDw9ODQ4Mnx8RD09ODQ4Nnx8RD09ODQ5MXx8ODUzMTw9RCYmRDw9ODUzMnx8ODUzOTw9RCYmRDw9ODU0Mnx8ODU0NDw9RCYmRDw9ODU1NXx8ODU2MDw9RCYmRDw9ODU2OXx8RD09ODU4NXx8ODU5Mjw9RCYmRDw9ODYwMXx8ODYzMjw9RCYmRDw9ODYzM3x8RD09ODY1OHx8RD09ODY2MHx8RD09ODY3OXx8RD09ODcwNHx8ODcwNjw9RCYmRDw9ODcwN3x8ODcxMTw9RCYmRDw9ODcxMnx8RD09ODcxNXx8RD09ODcxOXx8RD09ODcyMXx8RD09ODcyNXx8RD09ODczMHx8ODczMzw9RCYmRDw9ODczNnx8RD09ODczOXx8RD09ODc0MXx8ODc0Mzw9RCYmRDw9ODc0OHx8RD09ODc1MHx8ODc1Njw9RCYmRDw9ODc1OXx8ODc2NDw9RCYmRDw9ODc2NXx8RD09ODc3Nnx8RD09ODc4MHx8RD09ODc4Nnx8ODgwMDw9RCYmRDw9ODgwMXx8ODgwNDw9RCYmRDw9ODgwN3x8ODgxMDw9RCYmRDw9ODgxMXx8ODgxNDw9RCYmRDw9ODgxNXx8ODgzNDw9RCYmRDw9ODgzNXx8ODgzODw9RCYmRDw9ODgzOXx8RD09ODg1M3x8RD09ODg1N3x8RD09ODg2OXx8RD09ODg5NXx8RD09ODk3OHx8OTMxMjw9RCYmRDw9OTQ0OXx8OTQ1MTw9RCYmRDw9OTU0N3x8OTU1Mjw9RCYmRDw9OTU4N3x8OTYwMDw9RCYmRDw9OTYxNXx8OTYxODw9RCYmRDw9OTYyMXx8OTYzMjw9RCYmRDw9OTYzM3x8OTYzNTw9RCYmRDw9OTY0MXx8OTY1MDw9RCYmRDw9OTY1MXx8OTY1NDw9RCYmRDw9OTY1NXx8OTY2MDw9RCYmRDw9OTY2MXx8OTY2NDw9RCYmRDw9OTY2NXx8OTY3MDw9RCYmRDw9OTY3Mnx8RD09OTY3NXx8OTY3ODw9RCYmRDw9OTY4MXx8OTY5ODw9RCYmRDw9OTcwMXx8RD09OTcxMXx8OTczMzw9RCYmRDw9OTczNHx8RD09OTczN3x8OTc0Mjw9RCYmRDw9OTc0M3x8OTc0ODw9RCYmRDw9OTc0OXx8RD09OTc1Nnx8RD09OTc1OHx8RD09OTc5Mnx8RD09OTc5NHx8OTgyNDw9RCYmRDw9OTgyNXx8OTgyNzw9RCYmRDw9OTgyOXx8OTgzMTw9RCYmRDw9OTgzNHx8OTgzNjw9RCYmRDw9OTgzN3x8RD09OTgzOXx8OTg4Njw9RCYmRDw9OTg4N3x8OTkxODw9RCYmRDw9OTkxOXx8OTkyNDw9RCYmRDw9OTkzM3x8OTkzNTw9RCYmRDw9OTk1M3x8RD09OTk1NXx8OTk2MDw9RCYmRDw9OTk4M3x8RD09MTAwNDV8fEQ9PTEwMDcxfHwxMDEwMjw9RCYmRDw9MTAxMTF8fDExMDkzPD1EJiZEPD0xMTA5N3x8MTI4NzI8PUQmJkQ8PTEyODc5fHw1NzM0NDw9RCYmRDw9NjM3NDN8fDY1MDI0PD1EJiZEPD02NTAzOXx8RD09NjU1MzN8fDEyNzIzMjw9RCYmRDw9MTI3MjQyfHwxMjcyNDg8PUQmJkQ8PTEyNzI3N3x8MTI3MjgwPD1EJiZEPD0xMjczMzd8fDEyNzM0NDw9RCYmRDw9MTI3Mzg2fHw5MTc3NjA8PUQmJkQ8PTkxNzk5OXx8OTgzMDQwPD1EJiZEPD0xMDQ4NTczfHwxMDQ4NTc2PD1EJiZEPD0xMTE0MTA5P1wiQVwiOlwiTlwifSx1LmNoYXJhY3Rlckxlbmd0aD1mdW5jdGlvbih0KXt2YXIgcz10aGlzLmVhc3RBc2lhbldpZHRoKHQpO3JldHVybiBzPT1cIkZcInx8cz09XCJXXCJ8fHM9PVwiQVwiPzI6MX07ZnVuY3Rpb24gRih0KXtyZXR1cm4gdC5tYXRjaCgvW1xcdUQ4MDAtXFx1REJGRl1bXFx1REMwMC1cXHVERkZGXXxbXlxcdUQ4MDAtXFx1REZGRl0vZyl8fFtdfXUubGVuZ3RoPWZ1bmN0aW9uKHQpe2Zvcih2YXIgcz1GKHQpLGk9MCxEPTA7RDxzLmxlbmd0aDtEKyspaT1pK3RoaXMuY2hhcmFjdGVyTGVuZ3RoKHNbRF0pO3JldHVybiBpfSx1LnNsaWNlPWZ1bmN0aW9uKHQscyxpKXt0ZXh0TGVuPXUubGVuZ3RoKHQpLHM9c3x8MCxpPWl8fDEsczwwJiYocz10ZXh0TGVuK3MpLGk8MCYmKGk9dGV4dExlbitpKTtmb3IodmFyIEQ9XCJcIixDPTAsbz1GKHQpLEU9MDtFPG8ubGVuZ3RoO0UrKyl7dmFyIGE9b1tFXSxuPXUubGVuZ3RoKGEpO2lmKEM+PXMtKG49PTI/MTowKSlpZihDK248PWkpRCs9YTtlbHNlIGJyZWFrO0MrPW47fXJldHVybiBEfTt9KShQKTt2YXIgWD1QLmV4cG9ydHM7Y29uc3QgREQ9TyhYKTt2YXIgdUQ9ZnVuY3Rpb24oKXtyZXR1cm4gL1xcdUQ4M0NcXHVERkY0XFx1REI0MFxcdURDNjdcXHVEQjQwXFx1REM2Mig/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/OltcXHUyNjFEXFx1MjZGOVxcdTI3MEEtXFx1MjcwRF18XFx1RDgzQ1tcXHVERjg1XFx1REZDMi1cXHVERkM0XFx1REZDN1xcdURGQ0EtXFx1REZDQ118XFx1RDgzRFtcXHVEQzQyXFx1REM0M1xcdURDNDYtXFx1REM1MFxcdURDNjYtXFx1REM3OFxcdURDN0NcXHVEQzgxLVxcdURDODNcXHVEQzg1LVxcdURDODdcXHVEQzhGXFx1REM5MVxcdURDQUFcXHVERDc0XFx1REQ3NVxcdUREN0FcXHVERDkwXFx1REQ5NVxcdUREOTZcXHVERTQ1LVxcdURFNDdcXHVERTRCLVxcdURFNEZcXHVERUEzXFx1REVCNC1cXHVERUI2XFx1REVDMFxcdURFQ0NdfFxcdUQ4M0VbXFx1REQwQ1xcdUREMEZcXHVERDE4LVxcdUREMUZcXHVERDI2XFx1REQzMC1cXHVERDM5XFx1REQzQy1cXHVERDNFXFx1REQ3N1xcdUREQjVcXHVEREI2XFx1RERCOFxcdUREQjlcXHVEREJCXFx1RERDRC1cXHVERENGXFx1REREMS1cXHVEREREXSkvZ307Y29uc3QgRkQ9Tyh1RCk7ZnVuY3Rpb24gcChlLHU9e30pe2lmKHR5cGVvZiBlIT1cInN0cmluZ1wifHxlLmxlbmd0aD09PTB8fCh1PXthbWJpZ3VvdXNJc05hcnJvdzohMCwuLi51fSxlPVQoZSksZS5sZW5ndGg9PT0wKSlyZXR1cm4gMDtlPWUucmVwbGFjZShGRCgpLFwiICBcIik7Y29uc3QgRj11LmFtYmlndW91c0lzTmFycm93PzE6MjtsZXQgdD0wO2Zvcihjb25zdCBzIG9mIGUpe2NvbnN0IGk9cy5jb2RlUG9pbnRBdCgwKTtpZihpPD0zMXx8aT49MTI3JiZpPD0xNTl8fGk+PTc2OCYmaTw9ODc5KWNvbnRpbnVlO3N3aXRjaChERC5lYXN0QXNpYW5XaWR0aChzKSl7Y2FzZVwiRlwiOmNhc2VcIldcIjp0Kz0yO2JyZWFrO2Nhc2VcIkFcIjp0Kz1GO2JyZWFrO2RlZmF1bHQ6dCs9MTt9fXJldHVybiB0fWNvbnN0IG09MTAsTD0oZT0wKT0+dT0+YFxceDFCWyR7dStlfW1gLFc9KGU9MCk9PnU9PmBcXHgxQlskezM4K2V9OzU7JHt1fW1gLE49KGU9MCk9Pih1LEYsdCk9PmBcXHgxQlskezM4K2V9OzI7JHt1fTske0Z9OyR7dH1tYCxyPXttb2RpZmllcjp7cmVzZXQ6WzAsMF0sYm9sZDpbMSwyMl0sZGltOlsyLDIyXSxpdGFsaWM6WzMsMjNdLHVuZGVybGluZTpbNCwyNF0sb3ZlcmxpbmU6WzUzLDU1XSxpbnZlcnNlOls3LDI3XSxoaWRkZW46WzgsMjhdLHN0cmlrZXRocm91Z2g6WzksMjldfSxjb2xvcjp7YmxhY2s6WzMwLDM5XSxyZWQ6WzMxLDM5XSxncmVlbjpbMzIsMzldLHllbGxvdzpbMzMsMzldLGJsdWU6WzM0LDM5XSxtYWdlbnRhOlszNSwzOV0sY3lhbjpbMzYsMzldLHdoaXRlOlszNywzOV0sYmxhY2tCcmlnaHQ6WzkwLDM5XSxncmF5Ols5MCwzOV0sZ3JleTpbOTAsMzldLHJlZEJyaWdodDpbOTEsMzldLGdyZWVuQnJpZ2h0Ols5MiwzOV0seWVsbG93QnJpZ2h0Ols5MywzOV0sYmx1ZUJyaWdodDpbOTQsMzldLG1hZ2VudGFCcmlnaHQ6Wzk1LDM5XSxjeWFuQnJpZ2h0Ols5NiwzOV0sd2hpdGVCcmlnaHQ6Wzk3LDM5XX0sYmdDb2xvcjp7YmdCbGFjazpbNDAsNDldLGJnUmVkOls0MSw0OV0sYmdHcmVlbjpbNDIsNDldLGJnWWVsbG93Ols0Myw0OV0sYmdCbHVlOls0NCw0OV0sYmdNYWdlbnRhOls0NSw0OV0sYmdDeWFuOls0Niw0OV0sYmdXaGl0ZTpbNDcsNDldLGJnQmxhY2tCcmlnaHQ6WzEwMCw0OV0sYmdHcmF5OlsxMDAsNDldLGJnR3JleTpbMTAwLDQ5XSxiZ1JlZEJyaWdodDpbMTAxLDQ5XSxiZ0dyZWVuQnJpZ2h0OlsxMDIsNDldLGJnWWVsbG93QnJpZ2h0OlsxMDMsNDldLGJnQmx1ZUJyaWdodDpbMTA0LDQ5XSxiZ01hZ2VudGFCcmlnaHQ6WzEwNSw0OV0sYmdDeWFuQnJpZ2h0OlsxMDYsNDldLGJnV2hpdGVCcmlnaHQ6WzEwNyw0OV19fTtPYmplY3Qua2V5cyhyLm1vZGlmaWVyKTtjb25zdCBlRD1PYmplY3Qua2V5cyhyLmNvbG9yKSx0RD1PYmplY3Qua2V5cyhyLmJnQ29sb3IpO1suLi5lRCwuLi50RF07ZnVuY3Rpb24gc0QoKXtjb25zdCBlPW5ldyBNYXA7Zm9yKGNvbnN0W3UsRl1vZiBPYmplY3QuZW50cmllcyhyKSl7Zm9yKGNvbnN0W3Qsc11vZiBPYmplY3QuZW50cmllcyhGKSlyW3RdPXtvcGVuOmBcXHgxQlske3NbMF19bWAsY2xvc2U6YFxceDFCWyR7c1sxXX1tYH0sRlt0XT1yW3RdLGUuc2V0KHNbMF0sc1sxXSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsdSx7dmFsdWU6RixlbnVtZXJhYmxlOiExfSk7fXJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkocixcImNvZGVzXCIse3ZhbHVlOmUsZW51bWVyYWJsZTohMX0pLHIuY29sb3IuY2xvc2U9XCJcXHgxQlszOW1cIixyLmJnQ29sb3IuY2xvc2U9XCJcXHgxQls0OW1cIixyLmNvbG9yLmFuc2k9TCgpLHIuY29sb3IuYW5zaTI1Nj1XKCksci5jb2xvci5hbnNpMTZtPU4oKSxyLmJnQ29sb3IuYW5zaT1MKG0pLHIuYmdDb2xvci5hbnNpMjU2PVcobSksci5iZ0NvbG9yLmFuc2kxNm09TihtKSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhyLHtyZ2JUb0Fuc2kyNTY6e3ZhbHVlOih1LEYsdCk9PnU9PT1GJiZGPT09dD91PDg/MTY6dT4yNDg/MjMxOk1hdGgucm91bmQoKHUtOCkvMjQ3KjI0KSsyMzI6MTYrMzYqTWF0aC5yb3VuZCh1LzI1NSo1KSs2Kk1hdGgucm91bmQoRi8yNTUqNSkrTWF0aC5yb3VuZCh0LzI1NSo1KSxlbnVtZXJhYmxlOiExfSxoZXhUb1JnYjp7dmFsdWU6dT0+e2NvbnN0IEY9L1thLWZcXGRdezZ9fFthLWZcXGRdezN9L2kuZXhlYyh1LnRvU3RyaW5nKDE2KSk7aWYoIUYpcmV0dXJuIFswLDAsMF07bGV0W3RdPUY7dC5sZW5ndGg9PT0zJiYodD1bLi4udF0ubWFwKGk9PmkraSkuam9pbihcIlwiKSk7Y29uc3Qgcz1OdW1iZXIucGFyc2VJbnQodCwxNik7cmV0dXJuIFtzPj4xNiYyNTUscz4+OCYyNTUscyYyNTVdfSxlbnVtZXJhYmxlOiExfSxoZXhUb0Fuc2kyNTY6e3ZhbHVlOnU9PnIucmdiVG9BbnNpMjU2KC4uLnIuaGV4VG9SZ2IodSkpLGVudW1lcmFibGU6ITF9LGFuc2kyNTZUb0Fuc2k6e3ZhbHVlOnU9PntpZih1PDgpcmV0dXJuIDMwK3U7aWYodTwxNilyZXR1cm4gOTArKHUtOCk7bGV0IEYsdCxzO2lmKHU+PTIzMilGPSgodS0yMzIpKjEwKzgpLzI1NSx0PUYscz1GO2Vsc2Uge3UtPTE2O2NvbnN0IEM9dSUzNjtGPU1hdGguZmxvb3IodS8zNikvNSx0PU1hdGguZmxvb3IoQy82KS81LHM9QyU2LzU7fWNvbnN0IGk9TWF0aC5tYXgoRix0LHMpKjI7aWYoaT09PTApcmV0dXJuIDMwO2xldCBEPTMwKyhNYXRoLnJvdW5kKHMpPDwyfE1hdGgucm91bmQodCk8PDF8TWF0aC5yb3VuZChGKSk7cmV0dXJuIGk9PT0yJiYoRCs9NjApLER9LGVudW1lcmFibGU6ITF9LHJnYlRvQW5zaTp7dmFsdWU6KHUsRix0KT0+ci5hbnNpMjU2VG9BbnNpKHIucmdiVG9BbnNpMjU2KHUsRix0KSksZW51bWVyYWJsZTohMX0saGV4VG9BbnNpOnt2YWx1ZTp1PT5yLmFuc2kyNTZUb0Fuc2koci5oZXhUb0Fuc2kyNTYodSkpLGVudW1lcmFibGU6ITF9fSkscn1jb25zdCBpRD1zRCgpLHY9bmV3IFNldChbXCJcXHgxQlwiLFwiXFx4OUJcIl0pLENEPTM5LHc9XCJcXHgwN1wiLEk9XCJbXCIsckQ9XCJdXCIsUj1cIm1cIix5PWAke3JEfTg7O2AsVj1lPT5gJHt2LnZhbHVlcygpLm5leHQoKS52YWx1ZX0ke0l9JHtlfSR7Un1gLHo9ZT0+YCR7di52YWx1ZXMoKS5uZXh0KCkudmFsdWV9JHt5fSR7ZX0ke3d9YCxFRD1lPT5lLnNwbGl0KFwiIFwiKS5tYXAodT0+cCh1KSksXz0oZSx1LEYpPT57Y29uc3QgdD1bLi4udV07bGV0IHM9ITEsaT0hMSxEPXAoVChlW2UubGVuZ3RoLTFdKSk7Zm9yKGNvbnN0W0Msb11vZiB0LmVudHJpZXMoKSl7Y29uc3QgRT1wKG8pO2lmKEQrRTw9Rj9lW2UubGVuZ3RoLTFdKz1vOihlLnB1c2gobyksRD0wKSx2LmhhcyhvKSYmKHM9ITAsaT10LnNsaWNlKEMrMSkuam9pbihcIlwiKS5zdGFydHNXaXRoKHkpKSxzKXtpP289PT13JiYocz0hMSxpPSExKTpvPT09UiYmKHM9ITEpO2NvbnRpbnVlfUQrPUUsRD09PUYmJkM8dC5sZW5ndGgtMSYmKGUucHVzaChcIlwiKSxEPTApO30hRCYmZVtlLmxlbmd0aC0xXS5sZW5ndGg+MCYmZS5sZW5ndGg+MSYmKGVbZS5sZW5ndGgtMl0rPWUucG9wKCkpO30sbkQ9ZT0+e2NvbnN0IHU9ZS5zcGxpdChcIiBcIik7bGV0IEY9dS5sZW5ndGg7Zm9yKDtGPjAmJiEocCh1W0YtMV0pPjApOylGLS07cmV0dXJuIEY9PT11Lmxlbmd0aD9lOnUuc2xpY2UoMCxGKS5qb2luKFwiIFwiKSt1LnNsaWNlKEYpLmpvaW4oXCJcIil9LG9EPShlLHUsRj17fSk9PntpZihGLnRyaW0hPT0hMSYmZS50cmltKCk9PT1cIlwiKXJldHVybiBcIlwiO2xldCB0PVwiXCIscyxpO2NvbnN0IEQ9RUQoZSk7bGV0IEM9W1wiXCJdO2Zvcihjb25zdFtFLGFdb2YgZS5zcGxpdChcIiBcIikuZW50cmllcygpKXtGLnRyaW0hPT0hMSYmKENbQy5sZW5ndGgtMV09Q1tDLmxlbmd0aC0xXS50cmltU3RhcnQoKSk7bGV0IG49cChDW0MubGVuZ3RoLTFdKTtpZihFIT09MCYmKG4+PXUmJihGLndvcmRXcmFwPT09ITF8fEYudHJpbT09PSExKSYmKEMucHVzaChcIlwiKSxuPTApLChuPjB8fEYudHJpbT09PSExKSYmKENbQy5sZW5ndGgtMV0rPVwiIFwiLG4rKykpLEYuaGFyZCYmRFtFXT51KXtjb25zdCBCPXUtbixmPTErTWF0aC5mbG9vcigoRFtFXS1CLTEpL3UpO01hdGguZmxvb3IoKERbRV0tMSkvdSk8ZiYmQy5wdXNoKFwiXCIpLF8oQyxhLHUpO2NvbnRpbnVlfWlmKG4rRFtFXT51JiZuPjAmJkRbRV0+MCl7aWYoRi53b3JkV3JhcD09PSExJiZuPHUpe18oQyxhLHUpO2NvbnRpbnVlfUMucHVzaChcIlwiKTt9aWYobitEW0VdPnUmJkYud29yZFdyYXA9PT0hMSl7XyhDLGEsdSk7Y29udGludWV9Q1tDLmxlbmd0aC0xXSs9YTt9Ri50cmltIT09ITEmJihDPUMubWFwKEU9Pm5EKEUpKSk7Y29uc3Qgbz1bLi4uQy5qb2luKGBcbmApXTtmb3IoY29uc3RbRSxhXW9mIG8uZW50cmllcygpKXtpZih0Kz1hLHYuaGFzKGEpKXtjb25zdHtncm91cHM6Qn09bmV3IFJlZ0V4cChgKD86XFxcXCR7SX0oPzxjb2RlPlxcXFxkKyltfFxcXFwke3l9KD88dXJpPi4qKSR7d30pYCkuZXhlYyhvLnNsaWNlKEUpLmpvaW4oXCJcIikpfHx7Z3JvdXBzOnt9fTtpZihCLmNvZGUhPT12b2lkIDApe2NvbnN0IGY9TnVtYmVyLnBhcnNlRmxvYXQoQi5jb2RlKTtzPWY9PT1DRD92b2lkIDA6Zjt9ZWxzZSBCLnVyaSE9PXZvaWQgMCYmKGk9Qi51cmkubGVuZ3RoPT09MD92b2lkIDA6Qi51cmkpO31jb25zdCBuPWlELmNvZGVzLmdldChOdW1iZXIocykpO29bRSsxXT09PWBcbmA/KGkmJih0Kz16KFwiXCIpKSxzJiZuJiYodCs9VihuKSkpOmE9PT1gXG5gJiYocyYmbiYmKHQrPVYocykpLGkmJih0Kz16KGkpKSk7fXJldHVybiB0fTtmdW5jdGlvbiBHKGUsdSxGKXtyZXR1cm4gU3RyaW5nKGUpLm5vcm1hbGl6ZSgpLnJlcGxhY2UoL1xcclxcbi9nLGBcbmApLnNwbGl0KGBcbmApLm1hcCh0PT5vRCh0LHUsRikpLmpvaW4oYFxuYCl9Y29uc3QgYUQ9W1widXBcIixcImRvd25cIixcImxlZnRcIixcInJpZ2h0XCIsXCJzcGFjZVwiLFwiZW50ZXJcIixcImNhbmNlbFwiXSxBPXthY3Rpb25zOm5ldyBTZXQoYUQpLGFsaWFzZXM6bmV3IE1hcChbW1wia1wiLFwidXBcIl0sW1wialwiLFwiZG93blwiXSxbXCJoXCIsXCJsZWZ0XCJdLFtcImxcIixcInJpZ2h0XCJdLFtcIlx1MDAwM1wiLFwiY2FuY2VsXCJdLFtcImVzY2FwZVwiLFwiY2FuY2VsXCJdXSl9O2Z1bmN0aW9uIGsoZSx1KXtpZih0eXBlb2YgZT09XCJzdHJpbmdcIilyZXR1cm4gQS5hbGlhc2VzLmdldChlKT09PXU7Zm9yKGNvbnN0IEYgb2YgZSlpZihGIT09dm9pZCAwJiZrKEYsdSkpcmV0dXJuICEwO3JldHVybiAhMX1mdW5jdGlvbiBoRChlLHUpe2lmKGU9PT11KXJldHVybjtjb25zdCBGPWUuc3BsaXQoYFxuYCksdD11LnNwbGl0KGBcbmApLHM9W107Zm9yKGxldCBpPTA7aTxNYXRoLm1heChGLmxlbmd0aCx0Lmxlbmd0aCk7aSsrKUZbaV0hPT10W2ldJiZzLnB1c2goaSk7cmV0dXJuIHN9Z2xvYmFsVGhpcy5wcm9jZXNzLnBsYXRmb3JtLnN0YXJ0c1dpdGgoXCJ3aW5cIik7Y29uc3QgJD1TeW1ib2woXCJjbGFjazpjYW5jZWxcIik7ZnVuY3Rpb24gZChlLHUpe2NvbnN0IEY9ZTtGLmlzVFRZJiZGLnNldFJhd01vZGUodSk7fXZhciBBRD1PYmplY3QuZGVmaW5lUHJvcGVydHkscEQ9KGUsdSxGKT0+dSBpbiBlP0FEKGUsdSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Rn0pOmVbdV09RixsPShlLHUsRik9PihwRChlLHR5cGVvZiB1IT1cInN5bWJvbFwiP3UrXCJcIjp1LEYpLEYpO2NsYXNzIHh7Y29uc3RydWN0b3IodSxGPSEwKXtsKHRoaXMsXCJpbnB1dFwiKSxsKHRoaXMsXCJvdXRwdXRcIiksbCh0aGlzLFwiX2Fib3J0U2lnbmFsXCIpLGwodGhpcyxcInJsXCIpLGwodGhpcyxcIm9wdHNcIiksbCh0aGlzLFwiX3JlbmRlclwiKSxsKHRoaXMsXCJfdHJhY2tcIiwhMSksbCh0aGlzLFwiX3ByZXZGcmFtZVwiLFwiXCIpLGwodGhpcyxcIl9zdWJzY3JpYmVyc1wiLG5ldyBNYXApLGwodGhpcyxcIl9jdXJzb3JcIiwwKSxsKHRoaXMsXCJzdGF0ZVwiLFwiaW5pdGlhbFwiKSxsKHRoaXMsXCJlcnJvclwiLFwiXCIpLGwodGhpcyxcInZhbHVlXCIpO2NvbnN0e2lucHV0OnQ9c3RkaW4sb3V0cHV0OnM9c3Rkb3V0LHJlbmRlcjppLHNpZ25hbDpELC4uLkN9PXU7dGhpcy5vcHRzPUMsdGhpcy5vbktleXByZXNzPXRoaXMub25LZXlwcmVzcy5iaW5kKHRoaXMpLHRoaXMuY2xvc2U9dGhpcy5jbG9zZS5iaW5kKHRoaXMpLHRoaXMucmVuZGVyPXRoaXMucmVuZGVyLmJpbmQodGhpcyksdGhpcy5fcmVuZGVyPWkuYmluZCh0aGlzKSx0aGlzLl90cmFjaz1GLHRoaXMuX2Fib3J0U2lnbmFsPUQsdGhpcy5pbnB1dD10LHRoaXMub3V0cHV0PXM7fXVuc3Vic2NyaWJlKCl7dGhpcy5fc3Vic2NyaWJlcnMuY2xlYXIoKTt9c2V0U3Vic2NyaWJlcih1LEYpe2NvbnN0IHQ9dGhpcy5fc3Vic2NyaWJlcnMuZ2V0KHUpPz9bXTt0LnB1c2goRiksdGhpcy5fc3Vic2NyaWJlcnMuc2V0KHUsdCk7fW9uKHUsRil7dGhpcy5zZXRTdWJzY3JpYmVyKHUse2NiOkZ9KTt9b25jZSh1LEYpe3RoaXMuc2V0U3Vic2NyaWJlcih1LHtjYjpGLG9uY2U6ITB9KTt9ZW1pdCh1LC4uLkYpe2NvbnN0IHQ9dGhpcy5fc3Vic2NyaWJlcnMuZ2V0KHUpPz9bXSxzPVtdO2Zvcihjb25zdCBpIG9mIHQpaS5jYiguLi5GKSxpLm9uY2UmJnMucHVzaCgoKT0+dC5zcGxpY2UodC5pbmRleE9mKGkpLDEpKTtmb3IoY29uc3QgaSBvZiBzKWkoKTt9cHJvbXB0KCl7cmV0dXJuIG5ldyBQcm9taXNlKCh1LEYpPT57aWYodGhpcy5fYWJvcnRTaWduYWwpe2lmKHRoaXMuX2Fib3J0U2lnbmFsLmFib3J0ZWQpcmV0dXJuIHRoaXMuc3RhdGU9XCJjYW5jZWxcIix0aGlzLmNsb3NlKCksdSgkKTt0aGlzLl9hYm9ydFNpZ25hbC5hZGRFdmVudExpc3RlbmVyKFwiYWJvcnRcIiwoKT0+e3RoaXMuc3RhdGU9XCJjYW5jZWxcIix0aGlzLmNsb3NlKCk7fSx7b25jZTohMH0pO31jb25zdCB0PW5ldyBXcml0ZVN0cmVhbSgwKTt0Ll93cml0ZT0ocyxpLEQpPT57dGhpcy5fdHJhY2smJih0aGlzLnZhbHVlPXRoaXMucmw/LmxpbmUucmVwbGFjZSgvXFx0L2csXCJcIiksdGhpcy5fY3Vyc29yPXRoaXMucmw/LmN1cnNvcj8/MCx0aGlzLmVtaXQoXCJ2YWx1ZVwiLHRoaXMudmFsdWUpKSxEKCk7fSx0aGlzLmlucHV0LnBpcGUodCksdGhpcy5ybD1nLmNyZWF0ZUludGVyZmFjZSh7aW5wdXQ6dGhpcy5pbnB1dCxvdXRwdXQ6dCx0YWJTaXplOjIscHJvbXB0OlwiXCIsZXNjYXBlQ29kZVRpbWVvdXQ6NTB9KSxnLmVtaXRLZXlwcmVzc0V2ZW50cyh0aGlzLmlucHV0LHRoaXMucmwpLHRoaXMucmwucHJvbXB0KCksdGhpcy5vcHRzLmluaXRpYWxWYWx1ZSE9PXZvaWQgMCYmdGhpcy5fdHJhY2smJnRoaXMucmwud3JpdGUodGhpcy5vcHRzLmluaXRpYWxWYWx1ZSksdGhpcy5pbnB1dC5vbihcImtleXByZXNzXCIsdGhpcy5vbktleXByZXNzKSxkKHRoaXMuaW5wdXQsITApLHRoaXMub3V0cHV0Lm9uKFwicmVzaXplXCIsdGhpcy5yZW5kZXIpLHRoaXMucmVuZGVyKCksdGhpcy5vbmNlKFwic3VibWl0XCIsKCk9Pnt0aGlzLm91dHB1dC53cml0ZShzcmNFeHBvcnRzLmN1cnNvci5zaG93KSx0aGlzLm91dHB1dC5vZmYoXCJyZXNpemVcIix0aGlzLnJlbmRlciksZCh0aGlzLmlucHV0LCExKSx1KHRoaXMudmFsdWUpO30pLHRoaXMub25jZShcImNhbmNlbFwiLCgpPT57dGhpcy5vdXRwdXQud3JpdGUoc3JjRXhwb3J0cy5jdXJzb3Iuc2hvdyksdGhpcy5vdXRwdXQub2ZmKFwicmVzaXplXCIsdGhpcy5yZW5kZXIpLGQodGhpcy5pbnB1dCwhMSksdSgkKTt9KTt9KX1vbktleXByZXNzKHUsRil7aWYodGhpcy5zdGF0ZT09PVwiZXJyb3JcIiYmKHRoaXMuc3RhdGU9XCJhY3RpdmVcIiksRj8ubmFtZSYmKCF0aGlzLl90cmFjayYmQS5hbGlhc2VzLmhhcyhGLm5hbWUpJiZ0aGlzLmVtaXQoXCJjdXJzb3JcIixBLmFsaWFzZXMuZ2V0KEYubmFtZSkpLEEuYWN0aW9ucy5oYXMoRi5uYW1lKSYmdGhpcy5lbWl0KFwiY3Vyc29yXCIsRi5uYW1lKSksdSYmKHUudG9Mb3dlckNhc2UoKT09PVwieVwifHx1LnRvTG93ZXJDYXNlKCk9PT1cIm5cIikmJnRoaXMuZW1pdChcImNvbmZpcm1cIix1LnRvTG93ZXJDYXNlKCk9PT1cInlcIiksdT09PVwiXHRcIiYmdGhpcy5vcHRzLnBsYWNlaG9sZGVyJiYodGhpcy52YWx1ZXx8KHRoaXMucmw/LndyaXRlKHRoaXMub3B0cy5wbGFjZWhvbGRlciksdGhpcy5lbWl0KFwidmFsdWVcIix0aGlzLm9wdHMucGxhY2Vob2xkZXIpKSksdSYmdGhpcy5lbWl0KFwia2V5XCIsdS50b0xvd2VyQ2FzZSgpKSxGPy5uYW1lPT09XCJyZXR1cm5cIil7aWYodGhpcy5vcHRzLnZhbGlkYXRlKXtjb25zdCB0PXRoaXMub3B0cy52YWxpZGF0ZSh0aGlzLnZhbHVlKTt0JiYodGhpcy5lcnJvcj10LHRoaXMuc3RhdGU9XCJlcnJvclwiLHRoaXMucmw/LndyaXRlKHRoaXMudmFsdWUpKTt9dGhpcy5zdGF0ZSE9PVwiZXJyb3JcIiYmKHRoaXMuc3RhdGU9XCJzdWJtaXRcIik7fWsoW3UsRj8ubmFtZSxGPy5zZXF1ZW5jZV0sXCJjYW5jZWxcIikmJih0aGlzLnN0YXRlPVwiY2FuY2VsXCIpLCh0aGlzLnN0YXRlPT09XCJzdWJtaXRcInx8dGhpcy5zdGF0ZT09PVwiY2FuY2VsXCIpJiZ0aGlzLmVtaXQoXCJmaW5hbGl6ZVwiKSx0aGlzLnJlbmRlcigpLCh0aGlzLnN0YXRlPT09XCJzdWJtaXRcInx8dGhpcy5zdGF0ZT09PVwiY2FuY2VsXCIpJiZ0aGlzLmNsb3NlKCk7fWNsb3NlKCl7dGhpcy5pbnB1dC51bnBpcGUoKSx0aGlzLmlucHV0LnJlbW92ZUxpc3RlbmVyKFwia2V5cHJlc3NcIix0aGlzLm9uS2V5cHJlc3MpLHRoaXMub3V0cHV0LndyaXRlKGBcbmApLGQodGhpcy5pbnB1dCwhMSksdGhpcy5ybD8uY2xvc2UoKSx0aGlzLnJsPXZvaWQgMCx0aGlzLmVtaXQoYCR7dGhpcy5zdGF0ZX1gLHRoaXMudmFsdWUpLHRoaXMudW5zdWJzY3JpYmUoKTt9cmVzdG9yZUN1cnNvcigpe2NvbnN0IHU9Ryh0aGlzLl9wcmV2RnJhbWUscHJvY2Vzcy5zdGRvdXQuY29sdW1ucyx7aGFyZDohMH0pLnNwbGl0KGBcbmApLmxlbmd0aC0xO3RoaXMub3V0cHV0LndyaXRlKHNyY0V4cG9ydHMuY3Vyc29yLm1vdmUoLTk5OSx1Ki0xKSk7fXJlbmRlcigpe2NvbnN0IHU9Ryh0aGlzLl9yZW5kZXIodGhpcyk/P1wiXCIscHJvY2Vzcy5zdGRvdXQuY29sdW1ucyx7aGFyZDohMH0pO2lmKHUhPT10aGlzLl9wcmV2RnJhbWUpe2lmKHRoaXMuc3RhdGU9PT1cImluaXRpYWxcIil0aGlzLm91dHB1dC53cml0ZShzcmNFeHBvcnRzLmN1cnNvci5oaWRlKTtlbHNlIHtjb25zdCBGPWhEKHRoaXMuX3ByZXZGcmFtZSx1KTtpZih0aGlzLnJlc3RvcmVDdXJzb3IoKSxGJiZGPy5sZW5ndGg9PT0xKXtjb25zdCB0PUZbMF07dGhpcy5vdXRwdXQud3JpdGUoc3JjRXhwb3J0cy5jdXJzb3IubW92ZSgwLHQpKSx0aGlzLm91dHB1dC53cml0ZShzcmNFeHBvcnRzLmVyYXNlLmxpbmVzKDEpKTtjb25zdCBzPXUuc3BsaXQoYFxuYCk7dGhpcy5vdXRwdXQud3JpdGUoc1t0XSksdGhpcy5fcHJldkZyYW1lPXUsdGhpcy5vdXRwdXQud3JpdGUoc3JjRXhwb3J0cy5jdXJzb3IubW92ZSgwLHMubGVuZ3RoLXQtMSkpO3JldHVybn1pZihGJiZGPy5sZW5ndGg+MSl7Y29uc3QgdD1GWzBdO3RoaXMub3V0cHV0LndyaXRlKHNyY0V4cG9ydHMuY3Vyc29yLm1vdmUoMCx0KSksdGhpcy5vdXRwdXQud3JpdGUoc3JjRXhwb3J0cy5lcmFzZS5kb3duKCkpO2NvbnN0IHM9dS5zcGxpdChgXG5gKS5zbGljZSh0KTt0aGlzLm91dHB1dC53cml0ZShzLmpvaW4oYFxuYCkpLHRoaXMuX3ByZXZGcmFtZT11O3JldHVybn10aGlzLm91dHB1dC53cml0ZShzcmNFeHBvcnRzLmVyYXNlLmRvd24oKSk7fXRoaXMub3V0cHV0LndyaXRlKHUpLHRoaXMuc3RhdGU9PT1cImluaXRpYWxcIiYmKHRoaXMuc3RhdGU9XCJhY3RpdmVcIiksdGhpcy5fcHJldkZyYW1lPXU7fX19Y2xhc3MgZkQgZXh0ZW5kcyB4e2dldCBjdXJzb3IoKXtyZXR1cm4gdGhpcy52YWx1ZT8wOjF9Z2V0IF92YWx1ZSgpe3JldHVybiB0aGlzLmN1cnNvcj09PTB9Y29uc3RydWN0b3IodSl7c3VwZXIodSwhMSksdGhpcy52YWx1ZT0hIXUuaW5pdGlhbFZhbHVlLHRoaXMub24oXCJ2YWx1ZVwiLCgpPT57dGhpcy52YWx1ZT10aGlzLl92YWx1ZTt9KSx0aGlzLm9uKFwiY29uZmlybVwiLEY9Pnt0aGlzLm91dHB1dC53cml0ZShzcmNFeHBvcnRzLmN1cnNvci5tb3ZlKDAsLTEpKSx0aGlzLnZhbHVlPUYsdGhpcy5zdGF0ZT1cInN1Ym1pdFwiLHRoaXMuY2xvc2UoKTt9KSx0aGlzLm9uKFwiY3Vyc29yXCIsKCk9Pnt0aGlzLnZhbHVlPSF0aGlzLnZhbHVlO30pO319dmFyIGJEPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxtRD0oZSx1LEYpPT51IGluIGU/YkQoZSx1LHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpGfSk6ZVt1XT1GLFk9KGUsdSxGKT0+KG1EKGUsdHlwZW9mIHUhPVwic3ltYm9sXCI/dStcIlwiOnUsRiksRik7bGV0IHdEPWNsYXNzIGV4dGVuZHMgeHtjb25zdHJ1Y3Rvcih1KXtzdXBlcih1LCExKSxZKHRoaXMsXCJvcHRpb25zXCIpLFkodGhpcyxcImN1cnNvclwiLDApLHRoaXMub3B0aW9ucz11Lm9wdGlvbnMsdGhpcy52YWx1ZT1bLi4udS5pbml0aWFsVmFsdWVzPz9bXV0sdGhpcy5jdXJzb3I9TWF0aC5tYXgodGhpcy5vcHRpb25zLmZpbmRJbmRleCgoe3ZhbHVlOkZ9KT0+Rj09PXUuY3Vyc29yQXQpLDApLHRoaXMub24oXCJrZXlcIixGPT57Rj09PVwiYVwiJiZ0aGlzLnRvZ2dsZUFsbCgpO30pLHRoaXMub24oXCJjdXJzb3JcIixGPT57c3dpdGNoKEYpe2Nhc2VcImxlZnRcIjpjYXNlXCJ1cFwiOnRoaXMuY3Vyc29yPXRoaXMuY3Vyc29yPT09MD90aGlzLm9wdGlvbnMubGVuZ3RoLTE6dGhpcy5jdXJzb3ItMTticmVhaztjYXNlXCJkb3duXCI6Y2FzZVwicmlnaHRcIjp0aGlzLmN1cnNvcj10aGlzLmN1cnNvcj09PXRoaXMub3B0aW9ucy5sZW5ndGgtMT8wOnRoaXMuY3Vyc29yKzE7YnJlYWs7Y2FzZVwic3BhY2VcIjp0aGlzLnRvZ2dsZVZhbHVlKCk7YnJlYWt9fSk7fWdldCBfdmFsdWUoKXtyZXR1cm4gdGhpcy5vcHRpb25zW3RoaXMuY3Vyc29yXS52YWx1ZX10b2dnbGVBbGwoKXtjb25zdCB1PXRoaXMudmFsdWUubGVuZ3RoPT09dGhpcy5vcHRpb25zLmxlbmd0aDt0aGlzLnZhbHVlPXU/W106dGhpcy5vcHRpb25zLm1hcChGPT5GLnZhbHVlKTt9dG9nZ2xlVmFsdWUoKXtjb25zdCB1PXRoaXMudmFsdWUuaW5jbHVkZXModGhpcy5fdmFsdWUpO3RoaXMudmFsdWU9dT90aGlzLnZhbHVlLmZpbHRlcihGPT5GIT09dGhpcy5fdmFsdWUpOlsuLi50aGlzLnZhbHVlLHRoaXMuX3ZhbHVlXTt9fTt2YXIgJEQ9T2JqZWN0LmRlZmluZVByb3BlcnR5LFNEPShlLHUsRik9PnUgaW4gZT8kRChlLHUse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkZ9KTplW3VdPUYscT0oZSx1LEYpPT4oU0QoZSx0eXBlb2YgdSE9XCJzeW1ib2xcIj91K1wiXCI6dSxGKSxGKTtjbGFzcyBqRCBleHRlbmRzIHh7Y29uc3RydWN0b3IodSl7c3VwZXIodSwhMSkscSh0aGlzLFwib3B0aW9uc1wiKSxxKHRoaXMsXCJjdXJzb3JcIiwwKSx0aGlzLm9wdGlvbnM9dS5vcHRpb25zLHRoaXMuY3Vyc29yPXRoaXMub3B0aW9ucy5maW5kSW5kZXgoKHt2YWx1ZTpGfSk9PkY9PT11LmluaXRpYWxWYWx1ZSksdGhpcy5jdXJzb3I9PT0tMSYmKHRoaXMuY3Vyc29yPTApLHRoaXMuY2hhbmdlVmFsdWUoKSx0aGlzLm9uKFwiY3Vyc29yXCIsRj0+e3N3aXRjaChGKXtjYXNlXCJsZWZ0XCI6Y2FzZVwidXBcIjp0aGlzLmN1cnNvcj10aGlzLmN1cnNvcj09PTA/dGhpcy5vcHRpb25zLmxlbmd0aC0xOnRoaXMuY3Vyc29yLTE7YnJlYWs7Y2FzZVwiZG93blwiOmNhc2VcInJpZ2h0XCI6dGhpcy5jdXJzb3I9dGhpcy5jdXJzb3I9PT10aGlzLm9wdGlvbnMubGVuZ3RoLTE/MDp0aGlzLmN1cnNvcisxO2JyZWFrfXRoaXMuY2hhbmdlVmFsdWUoKTt9KTt9Z2V0IF92YWx1ZSgpe3JldHVybiB0aGlzLm9wdGlvbnNbdGhpcy5jdXJzb3JdfWNoYW5nZVZhbHVlKCl7dGhpcy52YWx1ZT10aGlzLl92YWx1ZS52YWx1ZTt9fXZhciBQRD1PYmplY3QuZGVmaW5lUHJvcGVydHksTEQ9KGUsdSxGKT0+dSBpbiBlP1BEKGUsdSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Rn0pOmVbdV09RixXRD0oZSx1LEYpPT4oTEQoZSx1K1wiXCIsRiksRik7Y2xhc3MgTkQgZXh0ZW5kcyB4e2NvbnN0cnVjdG9yKHUpe3N1cGVyKHUpLFdEKHRoaXMsXCJ2YWx1ZVdpdGhDdXJzb3JcIixcIlwiKSx0aGlzLm9uKFwiZmluYWxpemVcIiwoKT0+e3RoaXMudmFsdWV8fCh0aGlzLnZhbHVlPXUuZGVmYXVsdFZhbHVlKSx0aGlzLnZhbHVlV2l0aEN1cnNvcj10aGlzLnZhbHVlO30pLHRoaXMub24oXCJ2YWx1ZVwiLCgpPT57aWYodGhpcy5jdXJzb3I+PXRoaXMudmFsdWUubGVuZ3RoKXRoaXMudmFsdWVXaXRoQ3Vyc29yPWAke3RoaXMudmFsdWV9JHtjLmludmVyc2UoYy5oaWRkZW4oXCJfXCIpKX1gO2Vsc2Uge2NvbnN0IEY9dGhpcy52YWx1ZS5zbGljZSgwLHRoaXMuY3Vyc29yKSx0PXRoaXMudmFsdWUuc2xpY2UodGhpcy5jdXJzb3IpO3RoaXMudmFsdWVXaXRoQ3Vyc29yPWAke0Z9JHtjLmludmVyc2UodFswXSl9JHt0LnNsaWNlKDEpfWA7fX0pO31nZXQgY3Vyc29yKCl7cmV0dXJuIHRoaXMuX2N1cnNvcn19XG5cbmNvbnN0IHVuaWNvZGUgPSBpc1VuaWNvZGVTdXBwb3J0ZWQoKTtcbmNvbnN0IHMgPSAoYywgZmFsbGJhY2spID0+IHVuaWNvZGUgPyBjIDogZmFsbGJhY2s7XG5jb25zdCBTX1NURVBfQUNUSVZFID0gcyhcIlxcdTI3NkZcIiwgXCI+XCIpO1xuY29uc3QgU19TVEVQX0NBTkNFTCA9IHMoXCJcXHUyNUEwXCIsIFwieFwiKTtcbmNvbnN0IFNfU1RFUF9FUlJPUiA9IHMoXCJcXHUyNUIyXCIsIFwieFwiKTtcbmNvbnN0IFNfU1RFUF9TVUJNSVQgPSBzKFwiXFx1MjcxNFwiLCBcIlxcdTIyMUFcIik7XG5jb25zdCBTX0JBUiA9IFwiXCI7XG5jb25zdCBTX0JBUl9FTkQgPSBcIlwiO1xuY29uc3QgU19SQURJT19BQ1RJVkUgPSBzKFwiXFx1MjVDRlwiLCBcIj5cIik7XG5jb25zdCBTX1JBRElPX0lOQUNUSVZFID0gcyhcIlxcdTI1Q0JcIiwgXCIgXCIpO1xuY29uc3QgU19DSEVDS0JPWF9BQ1RJVkUgPSBzKFwiXFx1MjVGQlwiLCBcIltcXHUyMDIyXVwiKTtcbmNvbnN0IFNfQ0hFQ0tCT1hfU0VMRUNURUQgPSBzKFwiXFx1MjVGQ1wiLCBcIlsrXVwiKTtcbmNvbnN0IFNfQ0hFQ0tCT1hfSU5BQ1RJVkUgPSBzKFwiXFx1MjVGQlwiLCBcIlsgXVwiKTtcbmNvbnN0IHN5bWJvbCA9IChzdGF0ZSkgPT4ge1xuICBzd2l0Y2ggKHN0YXRlKSB7XG4gICAgY2FzZSBcImluaXRpYWxcIjpcbiAgICBjYXNlIFwiYWN0aXZlXCI6IHtcbiAgICAgIHJldHVybiBjb2xvcnMuY3lhbihTX1NURVBfQUNUSVZFKTtcbiAgICB9XG4gICAgY2FzZSBcImNhbmNlbFwiOiB7XG4gICAgICByZXR1cm4gY29sb3JzLnJlZChTX1NURVBfQ0FOQ0VMKTtcbiAgICB9XG4gICAgY2FzZSBcImVycm9yXCI6IHtcbiAgICAgIHJldHVybiBjb2xvcnMueWVsbG93KFNfU1RFUF9FUlJPUik7XG4gICAgfVxuICAgIGNhc2UgXCJzdWJtaXRcIjoge1xuICAgICAgcmV0dXJuIGNvbG9ycy5ncmVlbihTX1NURVBfU1VCTUlUKTtcbiAgICB9XG4gIH1cbn07XG5jb25zdCB0ZXh0ID0gKG9wdHMpID0+IHtcbiAgcmV0dXJuIG5ldyBORCh7XG4gICAgdmFsaWRhdGU6IG9wdHMudmFsaWRhdGUsXG4gICAgcGxhY2Vob2xkZXI6IG9wdHMucGxhY2Vob2xkZXIsXG4gICAgZGVmYXVsdFZhbHVlOiBvcHRzLmRlZmF1bHRWYWx1ZSxcbiAgICBpbml0aWFsVmFsdWU6IG9wdHMuaW5pdGlhbFZhbHVlLFxuICAgIHJlbmRlcigpIHtcbiAgICAgIGNvbnN0IHRpdGxlID0gYCR7Y29sb3JzLmdyYXkoU19CQVIpfVxuJHtzeW1ib2wodGhpcy5zdGF0ZSl9ICR7b3B0cy5tZXNzYWdlfVxuYDtcbiAgICAgIGNvbnN0IHBsYWNlaG9sZGVyID0gb3B0cy5wbGFjZWhvbGRlciA/IGNvbG9ycy5pbnZlcnNlKG9wdHMucGxhY2Vob2xkZXJbMF0pICsgY29sb3JzLmRpbShvcHRzLnBsYWNlaG9sZGVyLnNsaWNlKDEpKSA6IGNvbG9ycy5pbnZlcnNlKGNvbG9ycy5oaWRkZW4oXCJfXCIpKTtcbiAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy52YWx1ZSA/IHRoaXMudmFsdWVXaXRoQ3Vyc29yIDogcGxhY2Vob2xkZXI7XG4gICAgICBzd2l0Y2ggKHRoaXMuc3RhdGUpIHtcbiAgICAgICAgY2FzZSBcImVycm9yXCI6IHtcbiAgICAgICAgICByZXR1cm4gYCR7dGl0bGUudHJpbSgpfVxuJHtjb2xvcnMueWVsbG93KFxuICAgICAgICAgICAgU19CQVJcbiAgICAgICAgICApfSAke3ZhbHVlfVxuJHtjb2xvcnMueWVsbG93KFNfQkFSX0VORCl9ICR7Y29sb3JzLnllbGxvdyhcbiAgICAgICAgICAgIHRoaXMuZXJyb3JcbiAgICAgICAgICApfVxuYDtcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFwic3VibWl0XCI6IHtcbiAgICAgICAgICByZXR1cm4gYCR7dGl0bGV9JHtjb2xvcnMuZ3JheShTX0JBUil9ICR7Y29sb3JzLmRpbShcbiAgICAgICAgICAgIHRoaXMudmFsdWUgfHwgb3B0cy5wbGFjZWhvbGRlclxuICAgICAgICAgICl9YDtcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFwiY2FuY2VsXCI6IHtcbiAgICAgICAgICByZXR1cm4gYCR7dGl0bGV9JHtjb2xvcnMuZ3JheShTX0JBUil9ICR7Y29sb3JzLnN0cmlrZXRocm91Z2goXG4gICAgICAgICAgICBjb2xvcnMuZGltKHRoaXMudmFsdWUgPz8gXCJcIilcbiAgICAgICAgICApfSR7dGhpcy52YWx1ZT8udHJpbSgpID8gXCJcXG5cIiArIGNvbG9ycy5ncmF5KFNfQkFSKSA6IFwiXCJ9YDtcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgcmV0dXJuIGAke3RpdGxlfSR7Y29sb3JzLmN5YW4oU19CQVIpfSAke3ZhbHVlfVxuJHtjb2xvcnMuY3lhbihcbiAgICAgICAgICAgIFNfQkFSX0VORFxuICAgICAgICAgICl9XG5gO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9KS5wcm9tcHQoKTtcbn07XG5jb25zdCBjb25maXJtID0gKG9wdHMpID0+IHtcbiAgY29uc3QgYWN0aXZlID0gb3B0cy5hY3RpdmUgPz8gXCJZZXNcIjtcbiAgY29uc3QgaW5hY3RpdmUgPSBvcHRzLmluYWN0aXZlID8/IFwiTm9cIjtcbiAgcmV0dXJuIG5ldyBmRCh7XG4gICAgYWN0aXZlLFxuICAgIGluYWN0aXZlLFxuICAgIGluaXRpYWxWYWx1ZTogb3B0cy5pbml0aWFsVmFsdWUgPz8gdHJ1ZSxcbiAgICByZW5kZXIoKSB7XG4gICAgICBjb25zdCB0aXRsZSA9IGAke2NvbG9ycy5ncmF5KFNfQkFSKX1cbiR7c3ltYm9sKHRoaXMuc3RhdGUpfSAke29wdHMubWVzc2FnZX1cbmA7XG4gICAgICBjb25zdCB2YWx1ZSA9IHRoaXMudmFsdWUgPyBhY3RpdmUgOiBpbmFjdGl2ZTtcbiAgICAgIHN3aXRjaCAodGhpcy5zdGF0ZSkge1xuICAgICAgICBjYXNlIFwic3VibWl0XCI6IHtcbiAgICAgICAgICByZXR1cm4gYCR7dGl0bGV9JHtjb2xvcnMuZ3JheShTX0JBUil9ICR7Y29sb3JzLmRpbSh2YWx1ZSl9YDtcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFwiY2FuY2VsXCI6IHtcbiAgICAgICAgICByZXR1cm4gYCR7dGl0bGV9JHtjb2xvcnMuZ3JheShTX0JBUil9ICR7Y29sb3JzLnN0cmlrZXRocm91Z2goXG4gICAgICAgICAgICBjb2xvcnMuZGltKHZhbHVlKVxuICAgICAgICAgICl9XG4ke2NvbG9ycy5ncmF5KFNfQkFSKX1gO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICByZXR1cm4gYCR7dGl0bGV9JHtjb2xvcnMuY3lhbihTX0JBUil9ICR7dGhpcy52YWx1ZSA/IGAke2NvbG9ycy5ncmVlbihTX1JBRElPX0FDVElWRSl9ICR7YWN0aXZlfWAgOiBgJHtjb2xvcnMuZGltKFNfUkFESU9fSU5BQ1RJVkUpfSAke2NvbG9ycy5kaW0oYWN0aXZlKX1gfSAke2NvbG9ycy5kaW0oXCIvXCIpfSAke3RoaXMudmFsdWUgPyBgJHtjb2xvcnMuZGltKFNfUkFESU9fSU5BQ1RJVkUpfSAke2NvbG9ycy5kaW0oaW5hY3RpdmUpfWAgOiBgJHtjb2xvcnMuZ3JlZW4oU19SQURJT19BQ1RJVkUpfSAke2luYWN0aXZlfWB9XG4ke2NvbG9ycy5jeWFuKFNfQkFSX0VORCl9XG5gO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9KS5wcm9tcHQoKTtcbn07XG5jb25zdCBzZWxlY3QgPSAob3B0cykgPT4ge1xuICBjb25zdCBvcHQgPSAob3B0aW9uLCBzdGF0ZSkgPT4ge1xuICAgIGNvbnN0IGxhYmVsID0gb3B0aW9uLmxhYmVsID8/IFN0cmluZyhvcHRpb24udmFsdWUpO1xuICAgIHN3aXRjaCAoc3RhdGUpIHtcbiAgICAgIGNhc2UgXCJhY3RpdmVcIjoge1xuICAgICAgICByZXR1cm4gYCR7Y29sb3JzLmdyZWVuKFNfUkFESU9fQUNUSVZFKX0gJHtsYWJlbH0gJHtvcHRpb24uaGludCA/IGNvbG9ycy5kaW0oYCgke29wdGlvbi5oaW50fSlgKSA6IFwiXCJ9YDtcbiAgICAgIH1cbiAgICAgIGNhc2UgXCJzZWxlY3RlZFwiOiB7XG4gICAgICAgIHJldHVybiBgJHtjb2xvcnMuZGltKGxhYmVsKX1gO1xuICAgICAgfVxuICAgICAgY2FzZSBcImNhbmNlbGxlZFwiOiB7XG4gICAgICAgIHJldHVybiBgJHtjb2xvcnMuc3RyaWtldGhyb3VnaChjb2xvcnMuZGltKGxhYmVsKSl9YDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGAke2NvbG9ycy5kaW0oU19SQURJT19JTkFDVElWRSl9ICR7Y29sb3JzLmRpbShsYWJlbCl9YDtcbiAgfTtcbiAgcmV0dXJuIG5ldyBqRCh7XG4gICAgb3B0aW9uczogb3B0cy5vcHRpb25zLFxuICAgIGluaXRpYWxWYWx1ZTogb3B0cy5pbml0aWFsVmFsdWUsXG4gICAgcmVuZGVyKCkge1xuICAgICAgY29uc3QgdGl0bGUgPSBgJHtjb2xvcnMuZ3JheShTX0JBUil9XG4ke3N5bWJvbCh0aGlzLnN0YXRlKX0gJHtvcHRzLm1lc3NhZ2V9XG5gO1xuICAgICAgc3dpdGNoICh0aGlzLnN0YXRlKSB7XG4gICAgICAgIGNhc2UgXCJzdWJtaXRcIjoge1xuICAgICAgICAgIHJldHVybiBgJHt0aXRsZX0ke2NvbG9ycy5ncmF5KFNfQkFSKX0gJHtvcHQoXG4gICAgICAgICAgICB0aGlzLm9wdGlvbnNbdGhpcy5jdXJzb3JdLFxuICAgICAgICAgICAgXCJzZWxlY3RlZFwiXG4gICAgICAgICAgKX1gO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgXCJjYW5jZWxcIjoge1xuICAgICAgICAgIHJldHVybiBgJHt0aXRsZX0ke2NvbG9ycy5ncmF5KFNfQkFSKX0gJHtvcHQoXG4gICAgICAgICAgICB0aGlzLm9wdGlvbnNbdGhpcy5jdXJzb3JdLFxuICAgICAgICAgICAgXCJjYW5jZWxsZWRcIlxuICAgICAgICAgICl9XG4ke2NvbG9ycy5ncmF5KFNfQkFSKX1gO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICByZXR1cm4gYCR7dGl0bGV9JHtjb2xvcnMuY3lhbihTX0JBUil9ICR7dGhpcy5vcHRpb25zLm1hcChcbiAgICAgICAgICAgIChvcHRpb24sIGkpID0+IG9wdChvcHRpb24sIGkgPT09IHRoaXMuY3Vyc29yID8gXCJhY3RpdmVcIiA6IFwiaW5hY3RpdmVcIilcbiAgICAgICAgICApLmpvaW4oYFxuJHtjb2xvcnMuY3lhbihTX0JBUil9ICBgKX1cbiR7Y29sb3JzLmN5YW4oU19CQVJfRU5EKX1cbmA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0pLnByb21wdCgpO1xufTtcbmNvbnN0IG11bHRpc2VsZWN0ID0gKG9wdHMpID0+IHtcbiAgY29uc3Qgb3B0ID0gKG9wdGlvbiwgc3RhdGUpID0+IHtcbiAgICBjb25zdCBsYWJlbCA9IG9wdGlvbi5sYWJlbCA/PyBTdHJpbmcob3B0aW9uLnZhbHVlKTtcbiAgICBzd2l0Y2ggKHN0YXRlKSB7XG4gICAgICBjYXNlIFwiYWN0aXZlXCI6IHtcbiAgICAgICAgcmV0dXJuIGAke2NvbG9ycy5jeWFuKFNfQ0hFQ0tCT1hfQUNUSVZFKX0gJHtsYWJlbH0gJHtvcHRpb24uaGludCA/IGNvbG9ycy5kaW0oYCgke29wdGlvbi5oaW50fSlgKSA6IFwiXCJ9YDtcbiAgICAgIH1cbiAgICAgIGNhc2UgXCJzZWxlY3RlZFwiOiB7XG4gICAgICAgIHJldHVybiBgJHtjb2xvcnMuZ3JlZW4oU19DSEVDS0JPWF9TRUxFQ1RFRCl9ICR7Y29sb3JzLmRpbShsYWJlbCl9YDtcbiAgICAgIH1cbiAgICAgIGNhc2UgXCJjYW5jZWxsZWRcIjoge1xuICAgICAgICByZXR1cm4gYCR7Y29sb3JzLnN0cmlrZXRocm91Z2goY29sb3JzLmRpbShsYWJlbCkpfWA7XG4gICAgICB9XG4gICAgICBjYXNlIFwiYWN0aXZlLXNlbGVjdGVkXCI6IHtcbiAgICAgICAgcmV0dXJuIGAke2NvbG9ycy5ncmVlbihTX0NIRUNLQk9YX1NFTEVDVEVEKX0gJHtsYWJlbH0gJHtvcHRpb24uaGludCA/IGNvbG9ycy5kaW0oYCgke29wdGlvbi5oaW50fSlgKSA6IFwiXCJ9YDtcbiAgICAgIH1cbiAgICAgIGNhc2UgXCJzdWJtaXR0ZWRcIjoge1xuICAgICAgICByZXR1cm4gYCR7Y29sb3JzLmRpbShsYWJlbCl9YDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGAke2NvbG9ycy5kaW0oU19DSEVDS0JPWF9JTkFDVElWRSl9ICR7Y29sb3JzLmRpbShsYWJlbCl9YDtcbiAgfTtcbiAgcmV0dXJuIG5ldyB3RCh7XG4gICAgb3B0aW9uczogb3B0cy5vcHRpb25zLFxuICAgIGluaXRpYWxWYWx1ZXM6IG9wdHMuaW5pdGlhbFZhbHVlcyxcbiAgICByZXF1aXJlZDogb3B0cy5yZXF1aXJlZCA/PyB0cnVlLFxuICAgIGN1cnNvckF0OiBvcHRzLmN1cnNvckF0LFxuICAgIHZhbGlkYXRlKHNlbGVjdGVkKSB7XG4gICAgICBpZiAodGhpcy5yZXF1aXJlZCAmJiBzZWxlY3RlZC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIGBQbGVhc2Ugc2VsZWN0IGF0IGxlYXN0IG9uZSBvcHRpb24uXG4ke2NvbG9ycy5yZXNldChcbiAgICAgICAgICBjb2xvcnMuZGltKFxuICAgICAgICAgICAgYFByZXNzICR7Y29sb3JzLmdyYXkoXG4gICAgICAgICAgICAgIGNvbG9ycy5iZ1doaXRlKGNvbG9ycy5pbnZlcnNlKFwiIHNwYWNlIFwiKSlcbiAgICAgICAgICAgICl9IHRvIHNlbGVjdCwgJHtjb2xvcnMuZ3JheShcbiAgICAgICAgICAgICAgY29sb3JzLmJnV2hpdGUoY29sb3JzLmludmVyc2UoXCIgZW50ZXIgXCIpKVxuICAgICAgICAgICAgKX0gdG8gc3VibWl0YFxuICAgICAgICAgIClcbiAgICAgICAgKX1gO1xuICAgICAgfVxuICAgIH0sXG4gICAgcmVuZGVyKCkge1xuICAgICAgY29uc3QgdGl0bGUgPSBgJHtjb2xvcnMuZ3JheShTX0JBUil9XG4ke3N5bWJvbCh0aGlzLnN0YXRlKX0gJHtvcHRzLm1lc3NhZ2V9XG5gO1xuICAgICAgc3dpdGNoICh0aGlzLnN0YXRlKSB7XG4gICAgICAgIGNhc2UgXCJzdWJtaXRcIjoge1xuICAgICAgICAgIHJldHVybiBgJHt0aXRsZX0ke2NvbG9ycy5ncmF5KFNfQkFSKX0gJHt0aGlzLm9wdGlvbnMuZmlsdGVyKCh7IHZhbHVlIH0pID0+IHRoaXMudmFsdWUuaW5jbHVkZXModmFsdWUpKS5tYXAoKG9wdGlvbikgPT4gb3B0KG9wdGlvbiwgXCJzdWJtaXR0ZWRcIikpLmpvaW4oY29sb3JzLmRpbShcIiwgXCIpKSB8fCBjb2xvcnMuZGltKFwibm9uZVwiKX1gO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgXCJjYW5jZWxcIjoge1xuICAgICAgICAgIGNvbnN0IGxhYmVsID0gdGhpcy5vcHRpb25zLmZpbHRlcigoeyB2YWx1ZSB9KSA9PiB0aGlzLnZhbHVlLmluY2x1ZGVzKHZhbHVlKSkubWFwKChvcHRpb24pID0+IG9wdChvcHRpb24sIFwiY2FuY2VsbGVkXCIpKS5qb2luKGNvbG9ycy5kaW0oXCIsIFwiKSk7XG4gICAgICAgICAgcmV0dXJuIGAke3RpdGxlfSR7Y29sb3JzLmdyYXkoU19CQVIpfSAke2xhYmVsLnRyaW0oKSA/IGAke2xhYmVsfVxuJHtjb2xvcnMuZ3JheShTX0JBUil9YCA6IFwiXCJ9YDtcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFwiZXJyb3JcIjoge1xuICAgICAgICAgIGNvbnN0IGZvb3RlciA9IHRoaXMuZXJyb3Iuc3BsaXQoXCJcXG5cIikubWFwKFxuICAgICAgICAgICAgKGxuLCBpKSA9PiBpID09PSAwID8gYCR7Y29sb3JzLnllbGxvdyhTX0JBUl9FTkQpfSAke2NvbG9ycy55ZWxsb3cobG4pfWAgOiBgICAgJHtsbn1gXG4gICAgICAgICAgKS5qb2luKFwiXFxuXCIpO1xuICAgICAgICAgIHJldHVybiB0aXRsZSArIGNvbG9ycy55ZWxsb3coU19CQVIpICsgXCIgIFwiICsgdGhpcy5vcHRpb25zLm1hcCgob3B0aW9uLCBpKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMudmFsdWUuaW5jbHVkZXMob3B0aW9uLnZhbHVlKTtcbiAgICAgICAgICAgIGNvbnN0IGFjdGl2ZSA9IGkgPT09IHRoaXMuY3Vyc29yO1xuICAgICAgICAgICAgaWYgKGFjdGl2ZSAmJiBzZWxlY3RlZCkge1xuICAgICAgICAgICAgICByZXR1cm4gb3B0KG9wdGlvbiwgXCJhY3RpdmUtc2VsZWN0ZWRcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG9wdChvcHRpb24sIFwic2VsZWN0ZWRcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gb3B0KG9wdGlvbiwgYWN0aXZlID8gXCJhY3RpdmVcIiA6IFwiaW5hY3RpdmVcIik7XG4gICAgICAgICAgfSkuam9pbihgXG4ke2NvbG9ycy55ZWxsb3coU19CQVIpfSAgYCkgKyBcIlxcblwiICsgZm9vdGVyICsgXCJcXG5cIjtcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgcmV0dXJuIGAke3RpdGxlfSR7Y29sb3JzLmN5YW4oU19CQVIpfSAke3RoaXMub3B0aW9ucy5tYXAoKG9wdGlvbiwgaSkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLnZhbHVlLmluY2x1ZGVzKG9wdGlvbi52YWx1ZSk7XG4gICAgICAgICAgICBjb25zdCBhY3RpdmUgPSBpID09PSB0aGlzLmN1cnNvcjtcbiAgICAgICAgICAgIGlmIChhY3RpdmUgJiYgc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG9wdChvcHRpb24sIFwiYWN0aXZlLXNlbGVjdGVkXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHNlbGVjdGVkKSB7XG4gICAgICAgICAgICAgIHJldHVybiBvcHQob3B0aW9uLCBcInNlbGVjdGVkXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG9wdChvcHRpb24sIGFjdGl2ZSA/IFwiYWN0aXZlXCIgOiBcImluYWN0aXZlXCIpO1xuICAgICAgICAgIH0pLmpvaW4oYFxuJHtjb2xvcnMuY3lhbihTX0JBUil9ICBgKX1cbiR7Y29sb3JzLmN5YW4oU19CQVJfRU5EKX1cbmA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0pLnByb21wdCgpO1xufTtcblxuY29uc3Qga0NhbmNlbCA9IFN5bWJvbC5mb3IoXCJjYW5jZWxcIik7XG5hc3luYyBmdW5jdGlvbiBwcm9tcHQobWVzc2FnZSwgb3B0cyA9IHt9KSB7XG4gIGNvbnN0IGhhbmRsZUNhbmNlbCA9ICh2YWx1ZSkgPT4ge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09IFwic3ltYm9sXCIgfHwgdmFsdWUudG9TdHJpbmcoKSAhPT0gXCJTeW1ib2woY2xhY2s6Y2FuY2VsKVwiKSB7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuICAgIHN3aXRjaCAob3B0cy5jYW5jZWwpIHtcbiAgICAgIGNhc2UgXCJyZWplY3RcIjoge1xuICAgICAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihcIlByb21wdCBjYW5jZWxsZWQuXCIpO1xuICAgICAgICBlcnJvci5uYW1lID0gXCJDb25zb2xhUHJvbXB0Q2FuY2VsbGVkRXJyb3JcIjtcbiAgICAgICAgaWYgKEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKSB7XG4gICAgICAgICAgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UoZXJyb3IsIHByb21wdCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9XG4gICAgICBjYXNlIFwidW5kZWZpbmVkXCI6IHtcbiAgICAgICAgcmV0dXJuIHZvaWQgMDtcbiAgICAgIH1cbiAgICAgIGNhc2UgXCJudWxsXCI6IHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICBjYXNlIFwic3ltYm9sXCI6IHtcbiAgICAgICAgcmV0dXJuIGtDYW5jZWw7XG4gICAgICB9XG4gICAgICBkZWZhdWx0OlxuICAgICAgY2FzZSBcImRlZmF1bHRcIjoge1xuICAgICAgICByZXR1cm4gb3B0cy5kZWZhdWx0ID8/IG9wdHMuaW5pdGlhbDtcbiAgICAgIH1cbiAgICB9XG4gIH07XG4gIGlmICghb3B0cy50eXBlIHx8IG9wdHMudHlwZSA9PT0gXCJ0ZXh0XCIpIHtcbiAgICByZXR1cm4gYXdhaXQgdGV4dCh7XG4gICAgICBtZXNzYWdlLFxuICAgICAgZGVmYXVsdFZhbHVlOiBvcHRzLmRlZmF1bHQsXG4gICAgICBwbGFjZWhvbGRlcjogb3B0cy5wbGFjZWhvbGRlcixcbiAgICAgIGluaXRpYWxWYWx1ZTogb3B0cy5pbml0aWFsXG4gICAgfSkudGhlbihoYW5kbGVDYW5jZWwpO1xuICB9XG4gIGlmIChvcHRzLnR5cGUgPT09IFwiY29uZmlybVwiKSB7XG4gICAgcmV0dXJuIGF3YWl0IGNvbmZpcm0oe1xuICAgICAgbWVzc2FnZSxcbiAgICAgIGluaXRpYWxWYWx1ZTogb3B0cy5pbml0aWFsXG4gICAgfSkudGhlbihoYW5kbGVDYW5jZWwpO1xuICB9XG4gIGlmIChvcHRzLnR5cGUgPT09IFwic2VsZWN0XCIpIHtcbiAgICByZXR1cm4gYXdhaXQgc2VsZWN0KHtcbiAgICAgIG1lc3NhZ2UsXG4gICAgICBvcHRpb25zOiBvcHRzLm9wdGlvbnMubWFwKFxuICAgICAgICAobykgPT4gdHlwZW9mIG8gPT09IFwic3RyaW5nXCIgPyB7IHZhbHVlOiBvLCBsYWJlbDogbyB9IDogb1xuICAgICAgKSxcbiAgICAgIGluaXRpYWxWYWx1ZTogb3B0cy5pbml0aWFsXG4gICAgfSkudGhlbihoYW5kbGVDYW5jZWwpO1xuICB9XG4gIGlmIChvcHRzLnR5cGUgPT09IFwibXVsdGlzZWxlY3RcIikge1xuICAgIHJldHVybiBhd2FpdCBtdWx0aXNlbGVjdCh7XG4gICAgICBtZXNzYWdlLFxuICAgICAgb3B0aW9uczogb3B0cy5vcHRpb25zLm1hcChcbiAgICAgICAgKG8pID0+IHR5cGVvZiBvID09PSBcInN0cmluZ1wiID8geyB2YWx1ZTogbywgbGFiZWw6IG8gfSA6IG9cbiAgICAgICksXG4gICAgICByZXF1aXJlZDogb3B0cy5yZXF1aXJlZCxcbiAgICAgIGluaXRpYWxWYWx1ZXM6IG9wdHMuaW5pdGlhbFxuICAgIH0pLnRoZW4oaGFuZGxlQ2FuY2VsKTtcbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gcHJvbXB0IHR5cGU6ICR7b3B0cy50eXBlfWApO1xufVxuXG5leHBvcnQgeyBrQ2FuY2VsLCBwcm9tcHQgfTtcbiIsICJpbXBvcnQgeyBjcmVhdGVDb25zb2xhIGFzIGNyZWF0ZUNvbnNvbGEkMSwgTG9nTGV2ZWxzIH0gZnJvbSAnLi4vY29yZS5tanMnO1xuaW1wb3J0IHsgQiBhcyBCYXNpY1JlcG9ydGVyLCBwIGFzIHBhcnNlU3RhY2sgfSBmcm9tICcuL2NvbnNvbGEuQ3M1RmR0SEQubWpzJztcbmltcG9ydCBwcm9jZXNzJDEgZnJvbSAnbm9kZTpwcm9jZXNzJztcbmltcG9ydCB7IGQgYXMgY29sb3JzLCBiIGFzIGJveCwgcyBhcyBzdHJpcEFuc2kkMSB9IGZyb20gJy4vY29uc29sYS5DQmk2Tm05cy5tanMnO1xuXG5jb25zdCByPU9iamVjdC5jcmVhdGUobnVsbCksaT1lPT5nbG9iYWxUaGlzLnByb2Nlc3M/LmVudnx8aW1wb3J0Lm1ldGEuZW52fHxnbG9iYWxUaGlzLkRlbm8/LmVudi50b09iamVjdCgpfHxnbG9iYWxUaGlzLl9fZW52X198fChlP3I6Z2xvYmFsVGhpcykscyQxPW5ldyBQcm94eShyLHtnZXQoZSxvKXtyZXR1cm4gaSgpW29dPz9yW29dfSxoYXMoZSxvKXtjb25zdCBFPWkoKTtyZXR1cm4gbyBpbiBFfHxvIGluIHJ9LHNldChlLG8sRSl7Y29uc3QgYj1pKCEwKTtyZXR1cm4gYltvXT1FLCEwfSxkZWxldGVQcm9wZXJ0eShlLG8pe2lmKCFvKXJldHVybiAhMTtjb25zdCBFPWkoITApO3JldHVybiBkZWxldGUgRVtvXSwhMH0sb3duS2V5cygpe2NvbnN0IGU9aSghMCk7cmV0dXJuIE9iamVjdC5rZXlzKGUpfX0pLHQ9dHlwZW9mIHByb2Nlc3M8XCJ1XCImJnByb2Nlc3MuZW52JiZwcm9jZXNzLmVudi5OT0RFX0VOVnx8XCJcIixCPVtbXCJBUFBWRVlPUlwiXSxbXCJBV1NfQU1QTElGWVwiLFwiQVdTX0FQUF9JRFwiLHtjaTohMH1dLFtcIkFaVVJFX1BJUEVMSU5FU1wiLFwiU1lTVEVNX1RFQU1GT1VOREFUSU9OQ09MTEVDVElPTlVSSVwiXSxbXCJBWlVSRV9TVEFUSUNcIixcIklOUFVUX0FaVVJFX1NUQVRJQ19XRUJfQVBQU19BUElfVE9LRU5cIl0sW1wiQVBQQ0lSQ0xFXCIsXCJBQ19BUFBDSVJDTEVcIl0sW1wiQkFNQk9PXCIsXCJiYW1ib29fcGxhbktleVwiXSxbXCJCSVRCVUNLRVRcIixcIkJJVEJVQ0tFVF9DT01NSVRcIl0sW1wiQklUUklTRVwiLFwiQklUUklTRV9JT1wiXSxbXCJCVUREWVwiLFwiQlVERFlfV09SS1NQQUNFX0lEXCJdLFtcIkJVSUxES0lURVwiXSxbXCJDSVJDTEVcIixcIkNJUkNMRUNJXCJdLFtcIkNJUlJVU1wiLFwiQ0lSUlVTX0NJXCJdLFtcIkNMT1VERkxBUkVfUEFHRVNcIixcIkNGX1BBR0VTXCIse2NpOiEwfV0sW1wiQ09ERUJVSUxEXCIsXCJDT0RFQlVJTERfQlVJTERfQVJOXCJdLFtcIkNPREVGUkVTSFwiLFwiQ0ZfQlVJTERfSURcIl0sW1wiRFJPTkVcIl0sW1wiRFJPTkVcIixcIkRST05FX0JVSUxEX0VWRU5UXCJdLFtcIkRTQVJJXCJdLFtcIkdJVEhVQl9BQ1RJT05TXCJdLFtcIkdJVExBQlwiLFwiR0lUTEFCX0NJXCJdLFtcIkdJVExBQlwiLFwiQ0lfTUVSR0VfUkVRVUVTVF9JRFwiXSxbXCJHT0NEXCIsXCJHT19QSVBFTElORV9MQUJFTFwiXSxbXCJMQVlFUkNJXCJdLFtcIkhVRFNPTlwiLFwiSFVEU09OX1VSTFwiXSxbXCJKRU5LSU5TXCIsXCJKRU5LSU5TX1VSTFwiXSxbXCJNQUdOVU1cIl0sW1wiTkVUTElGWVwiXSxbXCJORVRMSUZZXCIsXCJORVRMSUZZX0xPQ0FMXCIse2NpOiExfV0sW1wiTkVWRVJDT0RFXCJdLFtcIlJFTkRFUlwiXSxbXCJTQUlMXCIsXCJTQUlMQ0lcIl0sW1wiU0VNQVBIT1JFXCJdLFtcIlNDUkVXRFJJVkVSXCJdLFtcIlNISVBQQUJMRVwiXSxbXCJTT0xBTk9cIixcIlRERElVTVwiXSxbXCJTVFJJREVSXCJdLFtcIlRFQU1DSVRZXCIsXCJURUFNQ0lUWV9WRVJTSU9OXCJdLFtcIlRSQVZJU1wiXSxbXCJWRVJDRUxcIixcIk5PV19CVUlMREVSXCJdLFtcIlZFUkNFTFwiLFwiVkVSQ0VMXCIse2NpOiExfV0sW1wiVkVSQ0VMXCIsXCJWRVJDRUxfRU5WXCIse2NpOiExfV0sW1wiQVBQQ0VOVEVSXCIsXCJBUFBDRU5URVJfQlVJTERfSURcIl0sW1wiQ09ERVNBTkRCT1hcIixcIkNPREVTQU5EQk9YX1NTRVwiLHtjaTohMX1dLFtcIlNUQUNLQkxJVFpcIl0sW1wiU1RPUk1LSVRcIl0sW1wiQ0xFQVZSXCJdLFtcIlpFQUJVUlwiXSxbXCJDT0RFU1BIRVJFXCIsXCJDT0RFU1BIRVJFX0FQUF9JRFwiLHtjaTohMH1dLFtcIlJBSUxXQVlcIixcIlJBSUxXQVlfUFJPSkVDVF9JRFwiXSxbXCJSQUlMV0FZXCIsXCJSQUlMV0FZX1NFUlZJQ0VfSURcIl0sW1wiREVOTy1ERVBMT1lcIixcIkRFTk9fREVQTE9ZTUVOVF9JRFwiXSxbXCJGSVJFQkFTRV9BUFBfSE9TVElOR1wiLFwiRklSRUJBU0VfQVBQX0hPU1RJTkdcIix7Y2k6ITB9XV07ZnVuY3Rpb24gcCgpe2lmKGdsb2JhbFRoaXMucHJvY2Vzcz8uZW52KWZvcihjb25zdCBlIG9mIEIpe2NvbnN0IG89ZVsxXXx8ZVswXTtpZihnbG9iYWxUaGlzLnByb2Nlc3M/LmVudltvXSlyZXR1cm4ge25hbWU6ZVswXS50b0xvd2VyQ2FzZSgpLC4uLmVbMl19fXJldHVybiBnbG9iYWxUaGlzLnByb2Nlc3M/LmVudj8uU0hFTEw9PT1cIi9iaW4vanNoXCImJmdsb2JhbFRoaXMucHJvY2Vzcz8udmVyc2lvbnM/LndlYmNvbnRhaW5lcj97bmFtZTpcInN0YWNrYmxpdHpcIixjaTohMX06e25hbWU6XCJcIixjaTohMX19Y29uc3QgbD1wKCk7bC5uYW1lO2Z1bmN0aW9uIG4oZSl7cmV0dXJuIGU/ZSE9PVwiZmFsc2VcIjohMX1jb25zdCBJPWdsb2JhbFRoaXMucHJvY2Vzcz8ucGxhdGZvcm18fFwiXCIsVD1uKHMkMS5DSSl8fGwuY2khPT0hMSxSPW4oZ2xvYmFsVGhpcy5wcm9jZXNzPy5zdGRvdXQmJmdsb2JhbFRoaXMucHJvY2Vzcz8uc3Rkb3V0LmlzVFRZKSxVPW4ocyQxLkRFQlVHKSxBPXQ9PT1cInRlc3RcInx8bihzJDEuVEVTVCk7bihzJDEuTUlOSU1BTCl8fFR8fEF8fCFSO2NvbnN0IF89L153aW4vaS50ZXN0KEkpOyFuKHMkMS5OT19DT0xPUikmJihuKHMkMS5GT1JDRV9DT0xPUil8fChSfHxfKSYmcyQxLlRFUk0hPT1cImR1bWJcInx8VCk7Y29uc3QgQz0oZ2xvYmFsVGhpcy5wcm9jZXNzPy52ZXJzaW9ucz8ubm9kZXx8XCJcIikucmVwbGFjZSgvXnYvLFwiXCIpfHxudWxsO051bWJlcihDPy5zcGxpdChcIi5cIilbMF0pfHxudWxsO2NvbnN0IHk9Z2xvYmFsVGhpcy5wcm9jZXNzfHxPYmplY3QuY3JlYXRlKG51bGwpLGM9e3ZlcnNpb25zOnt9fTtuZXcgUHJveHkoeSx7Z2V0KGUsbyl7aWYobz09PVwiZW52XCIpcmV0dXJuIHMkMTtpZihvIGluIGUpcmV0dXJuIGVbb107aWYobyBpbiBjKXJldHVybiBjW29dfX0pO2NvbnN0IEw9Z2xvYmFsVGhpcy5wcm9jZXNzPy5yZWxlYXNlPy5uYW1lPT09XCJub2RlXCIsYT0hIWdsb2JhbFRoaXMuQnVufHwhIWdsb2JhbFRoaXMucHJvY2Vzcz8udmVyc2lvbnM/LmJ1bixEPSEhZ2xvYmFsVGhpcy5EZW5vLE89ISFnbG9iYWxUaGlzLmZhc3RseSxTPSEhZ2xvYmFsVGhpcy5OZXRsaWZ5LE49ISFnbG9iYWxUaGlzLkVkZ2VSdW50aW1lLFA9Z2xvYmFsVGhpcy5uYXZpZ2F0b3I/LnVzZXJBZ2VudD09PVwiQ2xvdWRmbGFyZS1Xb3JrZXJzXCIsRj1bW1MsXCJuZXRsaWZ5XCJdLFtOLFwiZWRnZS1saWdodFwiXSxbUCxcIndvcmtlcmRcIl0sW08sXCJmYXN0bHlcIl0sW0QsXCJkZW5vXCJdLFthLFwiYnVuXCJdLFtMLFwibm9kZVwiXV07ZnVuY3Rpb24gRygpe2NvbnN0IGU9Ri5maW5kKG89Pm9bMF0pO2lmKGUpcmV0dXJuIHtuYW1lOmVbMV19fWNvbnN0IHU9RygpO3U/Lm5hbWV8fFwiXCI7XG5cbmZ1bmN0aW9uIGFuc2lSZWdleCh7b25seUZpcnN0ID0gZmFsc2V9ID0ge30pIHtcblx0Ly8gVmFsaWQgc3RyaW5nIHRlcm1pbmF0b3Igc2VxdWVuY2VzIGFyZSBCRUwsIEVTQ1xcLCBhbmQgMHg5Y1xuXHRjb25zdCBTVCA9ICcoPzpcXFxcdTAwMDd8XFxcXHUwMDFCXFxcXHUwMDVDfFxcXFx1MDA5QyknO1xuXHRjb25zdCBwYXR0ZXJuID0gW1xuXHRcdGBbXFxcXHUwMDFCXFxcXHUwMDlCXVtbXFxcXF0oKSM7P10qKD86KD86KD86KD86O1stYS16QS1aXFxcXGRcXFxcLyMmLjo9PyVAfl9dKykqfFthLXpBLVpcXFxcZF0rKD86O1stYS16QS1aXFxcXGRcXFxcLyMmLjo9PyVAfl9dKikqKT8ke1NUfSlgLFxuXHRcdCcoPzooPzpcXFxcZHsxLDR9KD86O1xcXFxkezAsNH0pKik/W1xcXFxkQS1QUi1UWmNmLW5xLXV5PT48fl0pKScsXG5cdF0uam9pbignfCcpO1xuXG5cdHJldHVybiBuZXcgUmVnRXhwKHBhdHRlcm4sIG9ubHlGaXJzdCA/IHVuZGVmaW5lZCA6ICdnJyk7XG59XG5cbmNvbnN0IHJlZ2V4ID0gYW5zaVJlZ2V4KCk7XG5cbmZ1bmN0aW9uIHN0cmlwQW5zaShzdHJpbmcpIHtcblx0aWYgKHR5cGVvZiBzdHJpbmcgIT09ICdzdHJpbmcnKSB7XG5cdFx0dGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgYSBcXGBzdHJpbmdcXGAsIGdvdCBcXGAke3R5cGVvZiBzdHJpbmd9XFxgYCk7XG5cdH1cblxuXHQvLyBFdmVuIHRob3VnaCB0aGUgcmVnZXggaXMgZ2xvYmFsLCB3ZSBkb24ndCBuZWVkIHRvIHJlc2V0IHRoZSBgLmxhc3RJbmRleGBcblx0Ly8gYmVjYXVzZSB1bmxpa2UgYC5leGVjKClgIGFuZCBgLnRlc3QoKWAsIGAucmVwbGFjZSgpYCBkb2VzIGl0IGF1dG9tYXRpY2FsbHlcblx0Ly8gYW5kIGRvaW5nIGl0IG1hbnVhbGx5IGhhcyBhIHBlcmZvcm1hbmNlIHBlbmFsdHkuXG5cdHJldHVybiBzdHJpbmcucmVwbGFjZShyZWdleCwgJycpO1xufVxuXG4vLyBHZW5lcmF0ZWQgY29kZS5cblxuZnVuY3Rpb24gaXNBbWJpZ3VvdXMoeCkge1xuXHRyZXR1cm4geCA9PT0gMHhBMVxuXHRcdHx8IHggPT09IDB4QTRcblx0XHR8fCB4ID09PSAweEE3XG5cdFx0fHwgeCA9PT0gMHhBOFxuXHRcdHx8IHggPT09IDB4QUFcblx0XHR8fCB4ID09PSAweEFEXG5cdFx0fHwgeCA9PT0gMHhBRVxuXHRcdHx8IHggPj0gMHhCMCAmJiB4IDw9IDB4QjRcblx0XHR8fCB4ID49IDB4QjYgJiYgeCA8PSAweEJBXG5cdFx0fHwgeCA+PSAweEJDICYmIHggPD0gMHhCRlxuXHRcdHx8IHggPT09IDB4QzZcblx0XHR8fCB4ID09PSAweEQwXG5cdFx0fHwgeCA9PT0gMHhEN1xuXHRcdHx8IHggPT09IDB4RDhcblx0XHR8fCB4ID49IDB4REUgJiYgeCA8PSAweEUxXG5cdFx0fHwgeCA9PT0gMHhFNlxuXHRcdHx8IHggPj0gMHhFOCAmJiB4IDw9IDB4RUFcblx0XHR8fCB4ID09PSAweEVDXG5cdFx0fHwgeCA9PT0gMHhFRFxuXHRcdHx8IHggPT09IDB4RjBcblx0XHR8fCB4ID09PSAweEYyXG5cdFx0fHwgeCA9PT0gMHhGM1xuXHRcdHx8IHggPj0gMHhGNyAmJiB4IDw9IDB4RkFcblx0XHR8fCB4ID09PSAweEZDXG5cdFx0fHwgeCA9PT0gMHhGRVxuXHRcdHx8IHggPT09IDB4MTAxXG5cdFx0fHwgeCA9PT0gMHgxMTFcblx0XHR8fCB4ID09PSAweDExM1xuXHRcdHx8IHggPT09IDB4MTFCXG5cdFx0fHwgeCA9PT0gMHgxMjZcblx0XHR8fCB4ID09PSAweDEyN1xuXHRcdHx8IHggPT09IDB4MTJCXG5cdFx0fHwgeCA+PSAweDEzMSAmJiB4IDw9IDB4MTMzXG5cdFx0fHwgeCA9PT0gMHgxMzhcblx0XHR8fCB4ID49IDB4MTNGICYmIHggPD0gMHgxNDJcblx0XHR8fCB4ID09PSAweDE0NFxuXHRcdHx8IHggPj0gMHgxNDggJiYgeCA8PSAweDE0QlxuXHRcdHx8IHggPT09IDB4MTREXG5cdFx0fHwgeCA9PT0gMHgxNTJcblx0XHR8fCB4ID09PSAweDE1M1xuXHRcdHx8IHggPT09IDB4MTY2XG5cdFx0fHwgeCA9PT0gMHgxNjdcblx0XHR8fCB4ID09PSAweDE2QlxuXHRcdHx8IHggPT09IDB4MUNFXG5cdFx0fHwgeCA9PT0gMHgxRDBcblx0XHR8fCB4ID09PSAweDFEMlxuXHRcdHx8IHggPT09IDB4MUQ0XG5cdFx0fHwgeCA9PT0gMHgxRDZcblx0XHR8fCB4ID09PSAweDFEOFxuXHRcdHx8IHggPT09IDB4MURBXG5cdFx0fHwgeCA9PT0gMHgxRENcblx0XHR8fCB4ID09PSAweDI1MVxuXHRcdHx8IHggPT09IDB4MjYxXG5cdFx0fHwgeCA9PT0gMHgyQzRcblx0XHR8fCB4ID09PSAweDJDN1xuXHRcdHx8IHggPj0gMHgyQzkgJiYgeCA8PSAweDJDQlxuXHRcdHx8IHggPT09IDB4MkNEXG5cdFx0fHwgeCA9PT0gMHgyRDBcblx0XHR8fCB4ID49IDB4MkQ4ICYmIHggPD0gMHgyREJcblx0XHR8fCB4ID09PSAweDJERFxuXHRcdHx8IHggPT09IDB4MkRGXG5cdFx0fHwgeCA+PSAweDMwMCAmJiB4IDw9IDB4MzZGXG5cdFx0fHwgeCA+PSAweDM5MSAmJiB4IDw9IDB4M0ExXG5cdFx0fHwgeCA+PSAweDNBMyAmJiB4IDw9IDB4M0E5XG5cdFx0fHwgeCA+PSAweDNCMSAmJiB4IDw9IDB4M0MxXG5cdFx0fHwgeCA+PSAweDNDMyAmJiB4IDw9IDB4M0M5XG5cdFx0fHwgeCA9PT0gMHg0MDFcblx0XHR8fCB4ID49IDB4NDEwICYmIHggPD0gMHg0NEZcblx0XHR8fCB4ID09PSAweDQ1MVxuXHRcdHx8IHggPT09IDB4MjAxMFxuXHRcdHx8IHggPj0gMHgyMDEzICYmIHggPD0gMHgyMDE2XG5cdFx0fHwgeCA9PT0gMHgyMDE4XG5cdFx0fHwgeCA9PT0gMHgyMDE5XG5cdFx0fHwgeCA9PT0gMHgyMDFDXG5cdFx0fHwgeCA9PT0gMHgyMDFEXG5cdFx0fHwgeCA+PSAweDIwMjAgJiYgeCA8PSAweDIwMjJcblx0XHR8fCB4ID49IDB4MjAyNCAmJiB4IDw9IDB4MjAyN1xuXHRcdHx8IHggPT09IDB4MjAzMFxuXHRcdHx8IHggPT09IDB4MjAzMlxuXHRcdHx8IHggPT09IDB4MjAzM1xuXHRcdHx8IHggPT09IDB4MjAzNVxuXHRcdHx8IHggPT09IDB4MjAzQlxuXHRcdHx8IHggPT09IDB4MjAzRVxuXHRcdHx8IHggPT09IDB4MjA3NFxuXHRcdHx8IHggPT09IDB4MjA3RlxuXHRcdHx8IHggPj0gMHgyMDgxICYmIHggPD0gMHgyMDg0XG5cdFx0fHwgeCA9PT0gMHgyMEFDXG5cdFx0fHwgeCA9PT0gMHgyMTAzXG5cdFx0fHwgeCA9PT0gMHgyMTA1XG5cdFx0fHwgeCA9PT0gMHgyMTA5XG5cdFx0fHwgeCA9PT0gMHgyMTEzXG5cdFx0fHwgeCA9PT0gMHgyMTE2XG5cdFx0fHwgeCA9PT0gMHgyMTIxXG5cdFx0fHwgeCA9PT0gMHgyMTIyXG5cdFx0fHwgeCA9PT0gMHgyMTI2XG5cdFx0fHwgeCA9PT0gMHgyMTJCXG5cdFx0fHwgeCA9PT0gMHgyMTUzXG5cdFx0fHwgeCA9PT0gMHgyMTU0XG5cdFx0fHwgeCA+PSAweDIxNUIgJiYgeCA8PSAweDIxNUVcblx0XHR8fCB4ID49IDB4MjE2MCAmJiB4IDw9IDB4MjE2QlxuXHRcdHx8IHggPj0gMHgyMTcwICYmIHggPD0gMHgyMTc5XG5cdFx0fHwgeCA9PT0gMHgyMTg5XG5cdFx0fHwgeCA+PSAweDIxOTAgJiYgeCA8PSAweDIxOTlcblx0XHR8fCB4ID09PSAweDIxQjhcblx0XHR8fCB4ID09PSAweDIxQjlcblx0XHR8fCB4ID09PSAweDIxRDJcblx0XHR8fCB4ID09PSAweDIxRDRcblx0XHR8fCB4ID09PSAweDIxRTdcblx0XHR8fCB4ID09PSAweDIyMDBcblx0XHR8fCB4ID09PSAweDIyMDJcblx0XHR8fCB4ID09PSAweDIyMDNcblx0XHR8fCB4ID09PSAweDIyMDdcblx0XHR8fCB4ID09PSAweDIyMDhcblx0XHR8fCB4ID09PSAweDIyMEJcblx0XHR8fCB4ID09PSAweDIyMEZcblx0XHR8fCB4ID09PSAweDIyMTFcblx0XHR8fCB4ID09PSAweDIyMTVcblx0XHR8fCB4ID09PSAweDIyMUFcblx0XHR8fCB4ID49IDB4MjIxRCAmJiB4IDw9IDB4MjIyMFxuXHRcdHx8IHggPT09IDB4MjIyM1xuXHRcdHx8IHggPT09IDB4MjIyNVxuXHRcdHx8IHggPj0gMHgyMjI3ICYmIHggPD0gMHgyMjJDXG5cdFx0fHwgeCA9PT0gMHgyMjJFXG5cdFx0fHwgeCA+PSAweDIyMzQgJiYgeCA8PSAweDIyMzdcblx0XHR8fCB4ID09PSAweDIyM0Ncblx0XHR8fCB4ID09PSAweDIyM0Rcblx0XHR8fCB4ID09PSAweDIyNDhcblx0XHR8fCB4ID09PSAweDIyNENcblx0XHR8fCB4ID09PSAweDIyNTJcblx0XHR8fCB4ID09PSAweDIyNjBcblx0XHR8fCB4ID09PSAweDIyNjFcblx0XHR8fCB4ID49IDB4MjI2NCAmJiB4IDw9IDB4MjI2N1xuXHRcdHx8IHggPT09IDB4MjI2QVxuXHRcdHx8IHggPT09IDB4MjI2QlxuXHRcdHx8IHggPT09IDB4MjI2RVxuXHRcdHx8IHggPT09IDB4MjI2RlxuXHRcdHx8IHggPT09IDB4MjI4MlxuXHRcdHx8IHggPT09IDB4MjI4M1xuXHRcdHx8IHggPT09IDB4MjI4NlxuXHRcdHx8IHggPT09IDB4MjI4N1xuXHRcdHx8IHggPT09IDB4MjI5NVxuXHRcdHx8IHggPT09IDB4MjI5OVxuXHRcdHx8IHggPT09IDB4MjJBNVxuXHRcdHx8IHggPT09IDB4MjJCRlxuXHRcdHx8IHggPT09IDB4MjMxMlxuXHRcdHx8IHggPj0gMHgyNDYwICYmIHggPD0gMHgyNEU5XG5cdFx0fHwgeCA+PSAweDI0RUIgJiYgeCA8PSAweDI1NEJcblx0XHR8fCB4ID49IDB4MjU1MCAmJiB4IDw9IDB4MjU3M1xuXHRcdHx8IHggPj0gMHgyNTgwICYmIHggPD0gMHgyNThGXG5cdFx0fHwgeCA+PSAweDI1OTIgJiYgeCA8PSAweDI1OTVcblx0XHR8fCB4ID09PSAweDI1QTBcblx0XHR8fCB4ID09PSAweDI1QTFcblx0XHR8fCB4ID49IDB4MjVBMyAmJiB4IDw9IDB4MjVBOVxuXHRcdHx8IHggPT09IDB4MjVCMlxuXHRcdHx8IHggPT09IDB4MjVCM1xuXHRcdHx8IHggPT09IDB4MjVCNlxuXHRcdHx8IHggPT09IDB4MjVCN1xuXHRcdHx8IHggPT09IDB4MjVCQ1xuXHRcdHx8IHggPT09IDB4MjVCRFxuXHRcdHx8IHggPT09IDB4MjVDMFxuXHRcdHx8IHggPT09IDB4MjVDMVxuXHRcdHx8IHggPj0gMHgyNUM2ICYmIHggPD0gMHgyNUM4XG5cdFx0fHwgeCA9PT0gMHgyNUNCXG5cdFx0fHwgeCA+PSAweDI1Q0UgJiYgeCA8PSAweDI1RDFcblx0XHR8fCB4ID49IDB4MjVFMiAmJiB4IDw9IDB4MjVFNVxuXHRcdHx8IHggPT09IDB4MjVFRlxuXHRcdHx8IHggPT09IDB4MjYwNVxuXHRcdHx8IHggPT09IDB4MjYwNlxuXHRcdHx8IHggPT09IDB4MjYwOVxuXHRcdHx8IHggPT09IDB4MjYwRVxuXHRcdHx8IHggPT09IDB4MjYwRlxuXHRcdHx8IHggPT09IDB4MjYxQ1xuXHRcdHx8IHggPT09IDB4MjYxRVxuXHRcdHx8IHggPT09IDB4MjY0MFxuXHRcdHx8IHggPT09IDB4MjY0MlxuXHRcdHx8IHggPT09IDB4MjY2MFxuXHRcdHx8IHggPT09IDB4MjY2MVxuXHRcdHx8IHggPj0gMHgyNjYzICYmIHggPD0gMHgyNjY1XG5cdFx0fHwgeCA+PSAweDI2NjcgJiYgeCA8PSAweDI2NkFcblx0XHR8fCB4ID09PSAweDI2NkNcblx0XHR8fCB4ID09PSAweDI2NkRcblx0XHR8fCB4ID09PSAweDI2NkZcblx0XHR8fCB4ID09PSAweDI2OUVcblx0XHR8fCB4ID09PSAweDI2OUZcblx0XHR8fCB4ID09PSAweDI2QkZcblx0XHR8fCB4ID49IDB4MjZDNiAmJiB4IDw9IDB4MjZDRFxuXHRcdHx8IHggPj0gMHgyNkNGICYmIHggPD0gMHgyNkQzXG5cdFx0fHwgeCA+PSAweDI2RDUgJiYgeCA8PSAweDI2RTFcblx0XHR8fCB4ID09PSAweDI2RTNcblx0XHR8fCB4ID09PSAweDI2RThcblx0XHR8fCB4ID09PSAweDI2RTlcblx0XHR8fCB4ID49IDB4MjZFQiAmJiB4IDw9IDB4MjZGMVxuXHRcdHx8IHggPT09IDB4MjZGNFxuXHRcdHx8IHggPj0gMHgyNkY2ICYmIHggPD0gMHgyNkY5XG5cdFx0fHwgeCA9PT0gMHgyNkZCXG5cdFx0fHwgeCA9PT0gMHgyNkZDXG5cdFx0fHwgeCA9PT0gMHgyNkZFXG5cdFx0fHwgeCA9PT0gMHgyNkZGXG5cdFx0fHwgeCA9PT0gMHgyNzNEXG5cdFx0fHwgeCA+PSAweDI3NzYgJiYgeCA8PSAweDI3N0Zcblx0XHR8fCB4ID49IDB4MkI1NiAmJiB4IDw9IDB4MkI1OVxuXHRcdHx8IHggPj0gMHgzMjQ4ICYmIHggPD0gMHgzMjRGXG5cdFx0fHwgeCA+PSAweEUwMDAgJiYgeCA8PSAweEY4RkZcblx0XHR8fCB4ID49IDB4RkUwMCAmJiB4IDw9IDB4RkUwRlxuXHRcdHx8IHggPT09IDB4RkZGRFxuXHRcdHx8IHggPj0gMHgxRjEwMCAmJiB4IDw9IDB4MUYxMEFcblx0XHR8fCB4ID49IDB4MUYxMTAgJiYgeCA8PSAweDFGMTJEXG5cdFx0fHwgeCA+PSAweDFGMTMwICYmIHggPD0gMHgxRjE2OVxuXHRcdHx8IHggPj0gMHgxRjE3MCAmJiB4IDw9IDB4MUYxOERcblx0XHR8fCB4ID09PSAweDFGMThGXG5cdFx0fHwgeCA9PT0gMHgxRjE5MFxuXHRcdHx8IHggPj0gMHgxRjE5QiAmJiB4IDw9IDB4MUYxQUNcblx0XHR8fCB4ID49IDB4RTAxMDAgJiYgeCA8PSAweEUwMUVGXG5cdFx0fHwgeCA+PSAweEYwMDAwICYmIHggPD0gMHhGRkZGRFxuXHRcdHx8IHggPj0gMHgxMDAwMDAgJiYgeCA8PSAweDEwRkZGRDtcbn1cblxuZnVuY3Rpb24gaXNGdWxsV2lkdGgoeCkge1xuXHRyZXR1cm4geCA9PT0gMHgzMDAwXG5cdFx0fHwgeCA+PSAweEZGMDEgJiYgeCA8PSAweEZGNjBcblx0XHR8fCB4ID49IDB4RkZFMCAmJiB4IDw9IDB4RkZFNjtcbn1cblxuZnVuY3Rpb24gaXNXaWRlKHgpIHtcblx0cmV0dXJuIHggPj0gMHgxMTAwICYmIHggPD0gMHgxMTVGXG5cdFx0fHwgeCA9PT0gMHgyMzFBXG5cdFx0fHwgeCA9PT0gMHgyMzFCXG5cdFx0fHwgeCA9PT0gMHgyMzI5XG5cdFx0fHwgeCA9PT0gMHgyMzJBXG5cdFx0fHwgeCA+PSAweDIzRTkgJiYgeCA8PSAweDIzRUNcblx0XHR8fCB4ID09PSAweDIzRjBcblx0XHR8fCB4ID09PSAweDIzRjNcblx0XHR8fCB4ID09PSAweDI1RkRcblx0XHR8fCB4ID09PSAweDI1RkVcblx0XHR8fCB4ID09PSAweDI2MTRcblx0XHR8fCB4ID09PSAweDI2MTVcblx0XHR8fCB4ID49IDB4MjYzMCAmJiB4IDw9IDB4MjYzN1xuXHRcdHx8IHggPj0gMHgyNjQ4ICYmIHggPD0gMHgyNjUzXG5cdFx0fHwgeCA9PT0gMHgyNjdGXG5cdFx0fHwgeCA+PSAweDI2OEEgJiYgeCA8PSAweDI2OEZcblx0XHR8fCB4ID09PSAweDI2OTNcblx0XHR8fCB4ID09PSAweDI2QTFcblx0XHR8fCB4ID09PSAweDI2QUFcblx0XHR8fCB4ID09PSAweDI2QUJcblx0XHR8fCB4ID09PSAweDI2QkRcblx0XHR8fCB4ID09PSAweDI2QkVcblx0XHR8fCB4ID09PSAweDI2QzRcblx0XHR8fCB4ID09PSAweDI2QzVcblx0XHR8fCB4ID09PSAweDI2Q0Vcblx0XHR8fCB4ID09PSAweDI2RDRcblx0XHR8fCB4ID09PSAweDI2RUFcblx0XHR8fCB4ID09PSAweDI2RjJcblx0XHR8fCB4ID09PSAweDI2RjNcblx0XHR8fCB4ID09PSAweDI2RjVcblx0XHR8fCB4ID09PSAweDI2RkFcblx0XHR8fCB4ID09PSAweDI2RkRcblx0XHR8fCB4ID09PSAweDI3MDVcblx0XHR8fCB4ID09PSAweDI3MEFcblx0XHR8fCB4ID09PSAweDI3MEJcblx0XHR8fCB4ID09PSAweDI3Mjhcblx0XHR8fCB4ID09PSAweDI3NENcblx0XHR8fCB4ID09PSAweDI3NEVcblx0XHR8fCB4ID49IDB4Mjc1MyAmJiB4IDw9IDB4Mjc1NVxuXHRcdHx8IHggPT09IDB4Mjc1N1xuXHRcdHx8IHggPj0gMHgyNzk1ICYmIHggPD0gMHgyNzk3XG5cdFx0fHwgeCA9PT0gMHgyN0IwXG5cdFx0fHwgeCA9PT0gMHgyN0JGXG5cdFx0fHwgeCA9PT0gMHgyQjFCXG5cdFx0fHwgeCA9PT0gMHgyQjFDXG5cdFx0fHwgeCA9PT0gMHgyQjUwXG5cdFx0fHwgeCA9PT0gMHgyQjU1XG5cdFx0fHwgeCA+PSAweDJFODAgJiYgeCA8PSAweDJFOTlcblx0XHR8fCB4ID49IDB4MkU5QiAmJiB4IDw9IDB4MkVGM1xuXHRcdHx8IHggPj0gMHgyRjAwICYmIHggPD0gMHgyRkQ1XG5cdFx0fHwgeCA+PSAweDJGRjAgJiYgeCA8PSAweDJGRkZcblx0XHR8fCB4ID49IDB4MzAwMSAmJiB4IDw9IDB4MzAzRVxuXHRcdHx8IHggPj0gMHgzMDQxICYmIHggPD0gMHgzMDk2XG5cdFx0fHwgeCA+PSAweDMwOTkgJiYgeCA8PSAweDMwRkZcblx0XHR8fCB4ID49IDB4MzEwNSAmJiB4IDw9IDB4MzEyRlxuXHRcdHx8IHggPj0gMHgzMTMxICYmIHggPD0gMHgzMThFXG5cdFx0fHwgeCA+PSAweDMxOTAgJiYgeCA8PSAweDMxRTVcblx0XHR8fCB4ID49IDB4MzFFRiAmJiB4IDw9IDB4MzIxRVxuXHRcdHx8IHggPj0gMHgzMjIwICYmIHggPD0gMHgzMjQ3XG5cdFx0fHwgeCA+PSAweDMyNTAgJiYgeCA8PSAweEE0OENcblx0XHR8fCB4ID49IDB4QTQ5MCAmJiB4IDw9IDB4QTRDNlxuXHRcdHx8IHggPj0gMHhBOTYwICYmIHggPD0gMHhBOTdDXG5cdFx0fHwgeCA+PSAweEFDMDAgJiYgeCA8PSAweEQ3QTNcblx0XHR8fCB4ID49IDB4RjkwMCAmJiB4IDw9IDB4RkFGRlxuXHRcdHx8IHggPj0gMHhGRTEwICYmIHggPD0gMHhGRTE5XG5cdFx0fHwgeCA+PSAweEZFMzAgJiYgeCA8PSAweEZFNTJcblx0XHR8fCB4ID49IDB4RkU1NCAmJiB4IDw9IDB4RkU2NlxuXHRcdHx8IHggPj0gMHhGRTY4ICYmIHggPD0gMHhGRTZCXG5cdFx0fHwgeCA+PSAweDE2RkUwICYmIHggPD0gMHgxNkZFNFxuXHRcdHx8IHggPT09IDB4MTZGRjBcblx0XHR8fCB4ID09PSAweDE2RkYxXG5cdFx0fHwgeCA+PSAweDE3MDAwICYmIHggPD0gMHgxODdGN1xuXHRcdHx8IHggPj0gMHgxODgwMCAmJiB4IDw9IDB4MThDRDVcblx0XHR8fCB4ID49IDB4MThDRkYgJiYgeCA8PSAweDE4RDA4XG5cdFx0fHwgeCA+PSAweDFBRkYwICYmIHggPD0gMHgxQUZGM1xuXHRcdHx8IHggPj0gMHgxQUZGNSAmJiB4IDw9IDB4MUFGRkJcblx0XHR8fCB4ID09PSAweDFBRkZEXG5cdFx0fHwgeCA9PT0gMHgxQUZGRVxuXHRcdHx8IHggPj0gMHgxQjAwMCAmJiB4IDw9IDB4MUIxMjJcblx0XHR8fCB4ID09PSAweDFCMTMyXG5cdFx0fHwgeCA+PSAweDFCMTUwICYmIHggPD0gMHgxQjE1MlxuXHRcdHx8IHggPT09IDB4MUIxNTVcblx0XHR8fCB4ID49IDB4MUIxNjQgJiYgeCA8PSAweDFCMTY3XG5cdFx0fHwgeCA+PSAweDFCMTcwICYmIHggPD0gMHgxQjJGQlxuXHRcdHx8IHggPj0gMHgxRDMwMCAmJiB4IDw9IDB4MUQzNTZcblx0XHR8fCB4ID49IDB4MUQzNjAgJiYgeCA8PSAweDFEMzc2XG5cdFx0fHwgeCA9PT0gMHgxRjAwNFxuXHRcdHx8IHggPT09IDB4MUYwQ0Zcblx0XHR8fCB4ID09PSAweDFGMThFXG5cdFx0fHwgeCA+PSAweDFGMTkxICYmIHggPD0gMHgxRjE5QVxuXHRcdHx8IHggPj0gMHgxRjIwMCAmJiB4IDw9IDB4MUYyMDJcblx0XHR8fCB4ID49IDB4MUYyMTAgJiYgeCA8PSAweDFGMjNCXG5cdFx0fHwgeCA+PSAweDFGMjQwICYmIHggPD0gMHgxRjI0OFxuXHRcdHx8IHggPT09IDB4MUYyNTBcblx0XHR8fCB4ID09PSAweDFGMjUxXG5cdFx0fHwgeCA+PSAweDFGMjYwICYmIHggPD0gMHgxRjI2NVxuXHRcdHx8IHggPj0gMHgxRjMwMCAmJiB4IDw9IDB4MUYzMjBcblx0XHR8fCB4ID49IDB4MUYzMkQgJiYgeCA8PSAweDFGMzM1XG5cdFx0fHwgeCA+PSAweDFGMzM3ICYmIHggPD0gMHgxRjM3Q1xuXHRcdHx8IHggPj0gMHgxRjM3RSAmJiB4IDw9IDB4MUYzOTNcblx0XHR8fCB4ID49IDB4MUYzQTAgJiYgeCA8PSAweDFGM0NBXG5cdFx0fHwgeCA+PSAweDFGM0NGICYmIHggPD0gMHgxRjNEM1xuXHRcdHx8IHggPj0gMHgxRjNFMCAmJiB4IDw9IDB4MUYzRjBcblx0XHR8fCB4ID09PSAweDFGM0Y0XG5cdFx0fHwgeCA+PSAweDFGM0Y4ICYmIHggPD0gMHgxRjQzRVxuXHRcdHx8IHggPT09IDB4MUY0NDBcblx0XHR8fCB4ID49IDB4MUY0NDIgJiYgeCA8PSAweDFGNEZDXG5cdFx0fHwgeCA+PSAweDFGNEZGICYmIHggPD0gMHgxRjUzRFxuXHRcdHx8IHggPj0gMHgxRjU0QiAmJiB4IDw9IDB4MUY1NEVcblx0XHR8fCB4ID49IDB4MUY1NTAgJiYgeCA8PSAweDFGNTY3XG5cdFx0fHwgeCA9PT0gMHgxRjU3QVxuXHRcdHx8IHggPT09IDB4MUY1OTVcblx0XHR8fCB4ID09PSAweDFGNTk2XG5cdFx0fHwgeCA9PT0gMHgxRjVBNFxuXHRcdHx8IHggPj0gMHgxRjVGQiAmJiB4IDw9IDB4MUY2NEZcblx0XHR8fCB4ID49IDB4MUY2ODAgJiYgeCA8PSAweDFGNkM1XG5cdFx0fHwgeCA9PT0gMHgxRjZDQ1xuXHRcdHx8IHggPj0gMHgxRjZEMCAmJiB4IDw9IDB4MUY2RDJcblx0XHR8fCB4ID49IDB4MUY2RDUgJiYgeCA8PSAweDFGNkQ3XG5cdFx0fHwgeCA+PSAweDFGNkRDICYmIHggPD0gMHgxRjZERlxuXHRcdHx8IHggPT09IDB4MUY2RUJcblx0XHR8fCB4ID09PSAweDFGNkVDXG5cdFx0fHwgeCA+PSAweDFGNkY0ICYmIHggPD0gMHgxRjZGQ1xuXHRcdHx8IHggPj0gMHgxRjdFMCAmJiB4IDw9IDB4MUY3RUJcblx0XHR8fCB4ID09PSAweDFGN0YwXG5cdFx0fHwgeCA+PSAweDFGOTBDICYmIHggPD0gMHgxRjkzQVxuXHRcdHx8IHggPj0gMHgxRjkzQyAmJiB4IDw9IDB4MUY5NDVcblx0XHR8fCB4ID49IDB4MUY5NDcgJiYgeCA8PSAweDFGOUZGXG5cdFx0fHwgeCA+PSAweDFGQTcwICYmIHggPD0gMHgxRkE3Q1xuXHRcdHx8IHggPj0gMHgxRkE4MCAmJiB4IDw9IDB4MUZBODlcblx0XHR8fCB4ID49IDB4MUZBOEYgJiYgeCA8PSAweDFGQUM2XG5cdFx0fHwgeCA+PSAweDFGQUNFICYmIHggPD0gMHgxRkFEQ1xuXHRcdHx8IHggPj0gMHgxRkFERiAmJiB4IDw9IDB4MUZBRTlcblx0XHR8fCB4ID49IDB4MUZBRjAgJiYgeCA8PSAweDFGQUY4XG5cdFx0fHwgeCA+PSAweDIwMDAwICYmIHggPD0gMHgyRkZGRFxuXHRcdHx8IHggPj0gMHgzMDAwMCAmJiB4IDw9IDB4M0ZGRkQ7XG59XG5cbmZ1bmN0aW9uIHZhbGlkYXRlKGNvZGVQb2ludCkge1xuXHRpZiAoIU51bWJlci5pc1NhZmVJbnRlZ2VyKGNvZGVQb2ludCkpIHtcblx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCBhIGNvZGUgcG9pbnQsIGdvdCBcXGAke3R5cGVvZiBjb2RlUG9pbnR9XFxgLmApO1xuXHR9XG59XG5cbmZ1bmN0aW9uIGVhc3RBc2lhbldpZHRoKGNvZGVQb2ludCwge2FtYmlndW91c0FzV2lkZSA9IGZhbHNlfSA9IHt9KSB7XG5cdHZhbGlkYXRlKGNvZGVQb2ludCk7XG5cblx0aWYgKFxuXHRcdGlzRnVsbFdpZHRoKGNvZGVQb2ludClcblx0XHR8fCBpc1dpZGUoY29kZVBvaW50KVxuXHRcdHx8IChhbWJpZ3VvdXNBc1dpZGUgJiYgaXNBbWJpZ3VvdXMoY29kZVBvaW50KSlcblx0KSB7XG5cdFx0cmV0dXJuIDI7XG5cdH1cblxuXHRyZXR1cm4gMTtcbn1cblxuY29uc3QgZW1vamlSZWdleCA9ICgpID0+IHtcblx0Ly8gaHR0cHM6Ly9tdGhzLmJlL2Vtb2ppXG5cdHJldHVybiAvWyMqMC05XVxcdUZFMEY/XFx1MjBFM3xbXFx4QTlcXHhBRVxcdTIwM0NcXHUyMDQ5XFx1MjEyMlxcdTIxMzlcXHUyMTk0LVxcdTIxOTlcXHUyMUE5XFx1MjFBQVxcdTIzMUFcXHUyMzFCXFx1MjMyOFxcdTIzQ0ZcXHUyM0VELVxcdTIzRUZcXHUyM0YxXFx1MjNGMlxcdTIzRjgtXFx1MjNGQVxcdTI0QzJcXHUyNUFBXFx1MjVBQlxcdTI1QjZcXHUyNUMwXFx1MjVGQlxcdTI1RkNcXHUyNUZFXFx1MjYwMC1cXHUyNjA0XFx1MjYwRVxcdTI2MTFcXHUyNjE0XFx1MjYxNVxcdTI2MThcXHUyNjIwXFx1MjYyMlxcdTI2MjNcXHUyNjI2XFx1MjYyQVxcdTI2MkVcXHUyNjJGXFx1MjYzOC1cXHUyNjNBXFx1MjY0MFxcdTI2NDJcXHUyNjQ4LVxcdTI2NTNcXHUyNjVGXFx1MjY2MFxcdTI2NjNcXHUyNjY1XFx1MjY2NlxcdTI2NjhcXHUyNjdCXFx1MjY3RVxcdTI2N0ZcXHUyNjkyXFx1MjY5NC1cXHUyNjk3XFx1MjY5OVxcdTI2OUJcXHUyNjlDXFx1MjZBMFxcdTI2QTdcXHUyNkFBXFx1MjZCMFxcdTI2QjFcXHUyNkJEXFx1MjZCRVxcdTI2QzRcXHUyNkM4XFx1MjZDRlxcdTI2RDFcXHUyNkU5XFx1MjZGMC1cXHUyNkY1XFx1MjZGN1xcdTI2RjhcXHUyNkZBXFx1MjcwMlxcdTI3MDhcXHUyNzA5XFx1MjcwRlxcdTI3MTJcXHUyNzE0XFx1MjcxNlxcdTI3MURcXHUyNzIxXFx1MjczM1xcdTI3MzRcXHUyNzQ0XFx1Mjc0N1xcdTI3NTdcXHUyNzYzXFx1MjdBMVxcdTI5MzRcXHUyOTM1XFx1MkIwNS1cXHUyQjA3XFx1MkIxQlxcdTJCMUNcXHUyQjU1XFx1MzAzMFxcdTMwM0RcXHUzMjk3XFx1MzI5OV1cXHVGRTBGP3xbXFx1MjYxRFxcdTI3MENcXHUyNzBEXSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVGRTBGKT98W1xcdTI3MEFcXHUyNzBCXSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSk/fFtcXHUyM0U5LVxcdTIzRUNcXHUyM0YwXFx1MjNGM1xcdTI1RkRcXHUyNjkzXFx1MjZBMVxcdTI2QUJcXHUyNkM1XFx1MjZDRVxcdTI2RDRcXHUyNkVBXFx1MjZGRFxcdTI3MDVcXHUyNzI4XFx1Mjc0Q1xcdTI3NEVcXHUyNzUzLVxcdTI3NTVcXHUyNzk1LVxcdTI3OTdcXHUyN0IwXFx1MjdCRlxcdTJCNTBdfFxcdTI2RDNcXHVGRTBGPyg/OlxcdTIwMERcXHVEODNEXFx1RENBNSk/fFxcdTI2RjkoPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RkUwRik/KD86XFx1MjAwRFtcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGPyk/fFxcdTI3NjRcXHVGRTBGPyg/OlxcdTIwMEQoPzpcXHVEODNEXFx1REQyNXxcXHVEODNFXFx1REU3OSkpP3xcXHVEODNDKD86W1xcdURDMDRcXHVERDcwXFx1REQ3MVxcdUREN0VcXHVERDdGXFx1REUwMlxcdURFMzdcXHVERjIxXFx1REYyNC1cXHVERjJDXFx1REYzNlxcdURGN0RcXHVERjk2XFx1REY5N1xcdURGOTktXFx1REY5QlxcdURGOUVcXHVERjlGXFx1REZDRFxcdURGQ0VcXHVERkQ0LVxcdURGREZcXHVERkY1XFx1REZGN11cXHVGRTBGP3xbXFx1REY4NVxcdURGQzJcXHVERkM3XSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSk/fFtcXHVERkM0XFx1REZDQV0oPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pPyg/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8pP3xbXFx1REZDQlxcdURGQ0NdKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUZFMEYpPyg/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8pP3xbXFx1RENDRlxcdUREOEVcXHVERDkxLVxcdUREOUFcXHVERTAxXFx1REUxQVxcdURFMkZcXHVERTMyLVxcdURFMzZcXHVERTM4LVxcdURFM0FcXHVERTUwXFx1REU1MVxcdURGMDAtXFx1REYyMFxcdURGMkQtXFx1REYzNVxcdURGMzctXFx1REY0M1xcdURGNDUtXFx1REY0QVxcdURGNEMtXFx1REY3Q1xcdURGN0UtXFx1REY4NFxcdURGODYtXFx1REY5M1xcdURGQTAtXFx1REZDMVxcdURGQzVcXHVERkM2XFx1REZDOFxcdURGQzlcXHVERkNGLVxcdURGRDNcXHVERkUwLVxcdURGRjBcXHVERkY4LVxcdURGRkZdfFxcdURERTZcXHVEODNDW1xcdURERTgtXFx1RERFQ1xcdURERUVcXHVEREYxXFx1RERGMlxcdURERjRcXHVEREY2LVxcdURERkFcXHVEREZDXFx1RERGRFxcdURERkZdfFxcdURERTdcXHVEODNDW1xcdURERTZcXHVEREU3XFx1RERFOS1cXHVEREVGXFx1RERGMS1cXHVEREY0XFx1RERGNi1cXHVEREY5XFx1RERGQlxcdURERkNcXHVEREZFXFx1RERGRl18XFx1RERFOFxcdUQ4M0NbXFx1RERFNlxcdURERThcXHVEREU5XFx1RERFQi1cXHVEREVFXFx1RERGMC1cXHVEREY3XFx1RERGQS1cXHVEREZGXXxcXHVEREU5XFx1RDgzQ1tcXHVEREVBXFx1RERFQ1xcdURERUZcXHVEREYwXFx1RERGMlxcdURERjRcXHVEREZGXXxcXHVEREVBXFx1RDgzQ1tcXHVEREU2XFx1RERFOFxcdURERUFcXHVEREVDXFx1RERFRFxcdURERjctXFx1RERGQV18XFx1RERFQlxcdUQ4M0NbXFx1RERFRS1cXHVEREYwXFx1RERGMlxcdURERjRcXHVEREY3XXxcXHVEREVDXFx1RDgzQ1tcXHVEREU2XFx1RERFN1xcdURERTktXFx1RERFRVxcdURERjEtXFx1RERGM1xcdURERjUtXFx1RERGQVxcdURERkNcXHVEREZFXXxcXHVEREVEXFx1RDgzQ1tcXHVEREYwXFx1RERGMlxcdURERjNcXHVEREY3XFx1RERGOVxcdURERkFdfFxcdURERUVcXHVEODNDW1xcdURERTgtXFx1RERFQVxcdURERjEtXFx1RERGNFxcdURERjYtXFx1RERGOV18XFx1RERFRlxcdUQ4M0NbXFx1RERFQVxcdURERjJcXHVEREY0XFx1RERGNV18XFx1RERGMFxcdUQ4M0NbXFx1RERFQVxcdURERUMtXFx1RERFRVxcdURERjJcXHVEREYzXFx1RERGNVxcdURERjdcXHVEREZDXFx1RERGRVxcdURERkZdfFxcdURERjFcXHVEODNDW1xcdURERTYtXFx1RERFOFxcdURERUVcXHVEREYwXFx1RERGNy1cXHVEREZCXFx1RERGRV18XFx1RERGMlxcdUQ4M0NbXFx1RERFNlxcdURERTgtXFx1RERFRFxcdURERjAtXFx1RERGRl18XFx1RERGM1xcdUQ4M0NbXFx1RERFNlxcdURERThcXHVEREVBLVxcdURERUNcXHVEREVFXFx1RERGMVxcdURERjRcXHVEREY1XFx1RERGN1xcdURERkFcXHVEREZGXXxcXHVEREY0XFx1RDgzQ1xcdURERjJ8XFx1RERGNVxcdUQ4M0NbXFx1RERFNlxcdURERUEtXFx1RERFRFxcdURERjAtXFx1RERGM1xcdURERjctXFx1RERGOVxcdURERkNcXHVEREZFXXxcXHVEREY2XFx1RDgzQ1xcdURERTZ8XFx1RERGN1xcdUQ4M0NbXFx1RERFQVxcdURERjRcXHVEREY4XFx1RERGQVxcdURERkNdfFxcdURERjhcXHVEODNDW1xcdURERTYtXFx1RERFQVxcdURERUMtXFx1RERGNFxcdURERjctXFx1RERGOVxcdURERkJcXHVEREZELVxcdURERkZdfFxcdURERjlcXHVEODNDW1xcdURERTZcXHVEREU4XFx1RERFOVxcdURERUItXFx1RERFRFxcdURERUYtXFx1RERGNFxcdURERjdcXHVEREY5XFx1RERGQlxcdURERkNcXHVEREZGXXxcXHVEREZBXFx1RDgzQ1tcXHVEREU2XFx1RERFQ1xcdURERjJcXHVEREYzXFx1RERGOFxcdURERkVcXHVEREZGXXxcXHVEREZCXFx1RDgzQ1tcXHVEREU2XFx1RERFOFxcdURERUFcXHVEREVDXFx1RERFRVxcdURERjNcXHVEREZBXXxcXHVEREZDXFx1RDgzQ1tcXHVEREVCXFx1RERGOF18XFx1RERGRFxcdUQ4M0NcXHVEREYwfFxcdURERkVcXHVEODNDW1xcdURERUFcXHVEREY5XXxcXHVEREZGXFx1RDgzQ1tcXHVEREU2XFx1RERGMlxcdURERkNdfFxcdURGNDQoPzpcXHUyMDBEXFx1RDgzRFxcdURGRUIpP3xcXHVERjRCKD86XFx1MjAwRFxcdUQ4M0RcXHVERkU5KT98XFx1REZDMyg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSk/KD86XFx1MjAwRCg/OltcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGPyg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xcXHUyN0ExXFx1RkUwRj8pKT98XFx1REZGM1xcdUZFMEY/KD86XFx1MjAwRCg/OlxcdTI2QTdcXHVGRTBGP3xcXHVEODNDXFx1REYwOCkpP3xcXHVERkY0KD86XFx1MjAwRFxcdTI2MjBcXHVGRTBGP3xcXHVEQjQwXFx1REM2N1xcdURCNDBcXHVEQzYyXFx1REI0MCg/OlxcdURDNjVcXHVEQjQwXFx1REM2RVxcdURCNDBcXHVEQzY3fFxcdURDNzNcXHVEQjQwXFx1REM2M1xcdURCNDBcXHVEQzc0fFxcdURDNzdcXHVEQjQwXFx1REM2Q1xcdURCNDBcXHVEQzczKVxcdURCNDBcXHVEQzdGKT8pfFxcdUQ4M0QoPzpbXFx1REMzRlxcdURDRkRcXHVERDQ5XFx1REQ0QVxcdURENkZcXHVERDcwXFx1REQ3M1xcdURENzYtXFx1REQ3OVxcdUREODdcXHVERDhBLVxcdUREOERcXHVEREE1XFx1RERBOFxcdUREQjFcXHVEREIyXFx1RERCQ1xcdUREQzItXFx1RERDNFxcdURERDEtXFx1REREM1xcdUREREMtXFx1RERERVxcdURERTFcXHVEREUzXFx1RERFOFxcdURERUZcXHVEREYzXFx1RERGQVxcdURFQ0JcXHVERUNELVxcdURFQ0ZcXHVERUUwLVxcdURFRTVcXHVERUU5XFx1REVGMFxcdURFRjNdXFx1RkUwRj98W1xcdURDNDJcXHVEQzQzXFx1REM0Ni1cXHVEQzUwXFx1REM2NlxcdURDNjdcXHVEQzZCLVxcdURDNkRcXHVEQzcyXFx1REM3NC1cXHVEQzc2XFx1REM3OFxcdURDN0NcXHVEQzgzXFx1REM4NVxcdURDOEZcXHVEQzkxXFx1RENBQVxcdUREN0FcXHVERDk1XFx1REQ5NlxcdURFNENcXHVERTRGXFx1REVDMFxcdURFQ0NdKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT98W1xcdURDNkVcXHVEQzcwXFx1REM3MVxcdURDNzNcXHVEQzc3XFx1REM4MVxcdURDODJcXHVEQzg2XFx1REM4N1xcdURFNDUtXFx1REU0N1xcdURFNEJcXHVERTREXFx1REU0RVxcdURFQTNcXHVERUI0XFx1REVCNV0oPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pPyg/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8pP3xbXFx1REQ3NFxcdUREOTBdKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUZFMEYpP3xbXFx1REMwMC1cXHVEQzA3XFx1REMwOS1cXHVEQzE0XFx1REMxNi1cXHVEQzI1XFx1REMyNy1cXHVEQzNBXFx1REMzQy1cXHVEQzNFXFx1REM0MFxcdURDNDRcXHVEQzQ1XFx1REM1MS1cXHVEQzY1XFx1REM2QVxcdURDNzktXFx1REM3QlxcdURDN0QtXFx1REM4MFxcdURDODRcXHVEQzg4LVxcdURDOEVcXHVEQzkwXFx1REM5Mi1cXHVEQ0E5XFx1RENBQi1cXHVEQ0ZDXFx1RENGRi1cXHVERDNEXFx1REQ0Qi1cXHVERDRFXFx1REQ1MC1cXHVERDY3XFx1RERBNFxcdURERkItXFx1REUyRFxcdURFMkYtXFx1REUzNFxcdURFMzctXFx1REU0MVxcdURFNDNcXHVERTQ0XFx1REU0OC1cXHVERTRBXFx1REU4MC1cXHVERUEyXFx1REVBNC1cXHVERUIzXFx1REVCNy1cXHVERUJGXFx1REVDMS1cXHVERUM1XFx1REVEMC1cXHVERUQyXFx1REVENS1cXHVERUQ3XFx1REVEQy1cXHVERURGXFx1REVFQlxcdURFRUNcXHVERUY0LVxcdURFRkNcXHVERkUwLVxcdURGRUJcXHVERkYwXXxcXHVEQzA4KD86XFx1MjAwRFxcdTJCMUIpP3xcXHVEQzE1KD86XFx1MjAwRFxcdUQ4M0VcXHVEREJBKT98XFx1REMyNig/OlxcdTIwMEQoPzpcXHUyQjFCfFxcdUQ4M0RcXHVERDI1KSk/fFxcdURDM0IoPzpcXHUyMDBEXFx1Mjc0NFxcdUZFMEY/KT98XFx1REM0MVxcdUZFMEY/KD86XFx1MjAwRFxcdUQ4M0RcXHVEREU4XFx1RkUwRj8pP3xcXHVEQzY4KD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzhCXFx1MjAwRFxcdUQ4M0QpP1xcdURDNjh8XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRCg/OltcXHVEQzY4XFx1REM2OV1cXHUyMDBEXFx1RDgzRCg/OlxcdURDNjYoPzpcXHUyMDBEXFx1RDgzRFxcdURDNjYpP3xcXHVEQzY3KD86XFx1MjAwRFxcdUQ4M0RbXFx1REM2NlxcdURDNjddKT8pfFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdURDNjYoPzpcXHUyMDBEXFx1RDgzRFxcdURDNjYpP3xcXHVEQzY3KD86XFx1MjAwRFxcdUQ4M0RbXFx1REM2NlxcdURDNjddKT8pfFxcdUQ4M0UoPzpbXFx1RERBRlxcdUREQkNcXHVEREJEXSg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xbXFx1RERCMC1cXHVEREIzXSkpfFxcdUQ4M0MoPzpcXHVERkZCKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzhCXFx1MjAwRFxcdUQ4M0QpP1xcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRlxcdUREQkNcXHVEREJEXSg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xbXFx1RERCMC1cXHVEREIzXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RcXHVEQzY4XFx1RDgzQ1tcXHVERkZDLVxcdURGRkZdKSkpP3xcXHVERkZDKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzhCXFx1MjAwRFxcdUQ4M0QpP1xcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRlxcdUREQkNcXHVEREJEXSg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xbXFx1RERCMC1cXHVEREIzXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RcXHVEQzY4XFx1RDgzQ1tcXHVERkZCXFx1REZGRC1cXHVERkZGXSkpKT98XFx1REZGRCg/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMERcXHVEODNEKD86XFx1REM4QlxcdTIwMERcXHVEODNEKT9cXHVEQzY4XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUZcXHVEREJDXFx1RERCRF0oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98W1xcdUREQjAtXFx1RERCM118XFx1REQxRFxcdTIwMERcXHVEODNEXFx1REM2OFxcdUQ4M0NbXFx1REZGQlxcdURGRkNcXHVERkZFXFx1REZGRl0pKSk/fFxcdURGRkUoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEXFx1RDgzRCg/OlxcdURDOEJcXHUyMDBEXFx1RDgzRCk/XFx1REM2OFxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGXFx1RERCQ1xcdUREQkRdKD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFtcXHVEREIwLVxcdUREQjNdfFxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRFxcdURGRkZdKSkpP3xcXHVERkZGKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzhCXFx1MjAwRFxcdUQ4M0QpP1xcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRlxcdUREQkNcXHVEREJEXSg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xbXFx1RERCMC1cXHVEREIzXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RcXHVEQzY4XFx1RDgzQ1tcXHVERkZCLVxcdURGRkVdKSkpPykpP3xcXHVEQzY5KD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzhCXFx1MjAwRFxcdUQ4M0QpP1tcXHVEQzY4XFx1REM2OV18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRCg/OltcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdURDNjYoPzpcXHUyMDBEXFx1RDgzRFxcdURDNjYpP3xcXHVEQzY3KD86XFx1MjAwRFxcdUQ4M0RbXFx1REM2NlxcdURDNjddKT98XFx1REM2OVxcdTIwMERcXHVEODNEKD86XFx1REM2Nig/OlxcdTIwMERcXHVEODNEXFx1REM2Nik/fFxcdURDNjcoPzpcXHUyMDBEXFx1RDgzRFtcXHVEQzY2XFx1REM2N10pPykpfFxcdUQ4M0UoPzpbXFx1RERBRlxcdUREQkNcXHVEREJEXSg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xbXFx1RERCMC1cXHVEREIzXSkpfFxcdUQ4M0MoPzpcXHVERkZCKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpbXFx1REM2OFxcdURDNjldfFxcdURDOEJcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV0pXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUZcXHVEREJDXFx1RERCRF0oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98W1xcdUREQjAtXFx1RERCM118XFx1REQxRFxcdTIwMERcXHVEODNEW1xcdURDNjhcXHVEQzY5XVxcdUQ4M0NbXFx1REZGQy1cXHVERkZGXSkpKT98XFx1REZGQyg/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMERcXHVEODNEKD86W1xcdURDNjhcXHVEQzY5XXxcXHVEQzhCXFx1MjAwRFxcdUQ4M0RbXFx1REM2OFxcdURDNjldKVxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGXFx1RERCQ1xcdUREQkRdKD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFtcXHVEREIwLVxcdUREQjNdfFxcdUREMURcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV1cXHVEODNDW1xcdURGRkJcXHVERkZELVxcdURGRkZdKSkpP3xcXHVERkZEKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpbXFx1REM2OFxcdURDNjldfFxcdURDOEJcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV0pXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUZcXHVEREJDXFx1RERCRF0oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98W1xcdUREQjAtXFx1RERCM118XFx1REQxRFxcdTIwMERcXHVEODNEW1xcdURDNjhcXHVEQzY5XVxcdUQ4M0NbXFx1REZGQlxcdURGRkNcXHVERkZFXFx1REZGRl0pKSk/fFxcdURGRkUoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEXFx1RDgzRCg/OltcXHVEQzY4XFx1REM2OV18XFx1REM4QlxcdTIwMERcXHVEODNEW1xcdURDNjhcXHVEQzY5XSlcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRlxcdUREQkNcXHVEREJEXSg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xbXFx1RERCMC1cXHVEREIzXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RbXFx1REM2OFxcdURDNjldXFx1RDgzQ1tcXHVERkZCLVxcdURGRkRcXHVERkZGXSkpKT98XFx1REZGRig/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMERcXHVEODNEKD86W1xcdURDNjhcXHVEQzY5XXxcXHVEQzhCXFx1MjAwRFxcdUQ4M0RbXFx1REM2OFxcdURDNjldKVxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGXFx1RERCQ1xcdUREQkRdKD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFtcXHVEREIwLVxcdUREQjNdfFxcdUREMURcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV1cXHVEODNDW1xcdURGRkItXFx1REZGRV0pKSk/KSk/fFxcdURDNkYoPzpcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXVxcdUZFMEY/KT98XFx1REQ3NSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVGRTBGKT8oPzpcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXVxcdUZFMEY/KT98XFx1REUyRSg/OlxcdTIwMERcXHVEODNEXFx1RENBOCk/fFxcdURFMzUoPzpcXHUyMDBEXFx1RDgzRFxcdURDQUIpP3xcXHVERTM2KD86XFx1MjAwRFxcdUQ4M0NcXHVERjJCXFx1RkUwRj8pP3xcXHVERTQyKD86XFx1MjAwRFtcXHUyMTk0XFx1MjE5NV1cXHVGRTBGPyk/fFxcdURFQjYoPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pPyg/OlxcdTIwMEQoPzpbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98XFx1MjdBMVxcdUZFMEY/KSk/KXxcXHVEODNFKD86W1xcdUREMENcXHVERDBGXFx1REQxOC1cXHVERDFGXFx1REQzMC1cXHVERDM0XFx1REQzNlxcdURENzdcXHVEREI1XFx1RERCNlxcdUREQkJcXHVEREQyXFx1REREM1xcdURERDVcXHVERUMzLVxcdURFQzVcXHVERUYwXFx1REVGMi1cXHVERUY4XSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSk/fFtcXHVERDI2XFx1REQzNVxcdUREMzctXFx1REQzOVxcdUREM0RcXHVERDNFXFx1RERCOFxcdUREQjlcXHVERENEXFx1RERDRlxcdURERDRcXHVEREQ2LVxcdURERERdKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT8oPzpcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXVxcdUZFMEY/KT98W1xcdUREREVcXHVERERGXSg/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8pP3xbXFx1REQwRFxcdUREMEVcXHVERDEwLVxcdUREMTdcXHVERDIwLVxcdUREMjVcXHVERDI3LVxcdUREMkZcXHVERDNBXFx1REQzRi1cXHVERDQ1XFx1REQ0Ny1cXHVERDc2XFx1REQ3OC1cXHVEREI0XFx1RERCN1xcdUREQkFcXHVEREJDLVxcdUREQ0NcXHVEREQwXFx1RERFMC1cXHVEREZGXFx1REU3MC1cXHVERTdDXFx1REU4MC1cXHVERTg5XFx1REU4Ri1cXHVERUMyXFx1REVDNlxcdURFQ0UtXFx1REVEQ1xcdURFREYtXFx1REVFOV18XFx1REQzQyg/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj98XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT98XFx1RERDRSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSk/KD86XFx1MjAwRCg/OltcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGPyg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xcXHUyN0ExXFx1RkUwRj8pKT98XFx1REREMSg/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY4NFxcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGXFx1RERCQ1xcdUREQkRdKD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFtcXHVEREIwLVxcdUREQjNdfFxcdUREMURcXHUyMDBEXFx1RDgzRVxcdURERDF8XFx1REREMVxcdTIwMERcXHVEODNFXFx1REREMig/OlxcdTIwMERcXHVEODNFXFx1REREMik/fFxcdURERDIoPzpcXHUyMDBEXFx1RDgzRVxcdURERDIpPykpfFxcdUQ4M0MoPzpcXHVERkZCKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRCg/OlxcdUQ4M0RcXHVEQzhCXFx1MjAwRCk/XFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkMtXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjg0XFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUZcXHVEREJDXFx1RERCRF0oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98W1xcdUREQjAtXFx1RERCM118XFx1REQxRFxcdTIwMERcXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSkpKT98XFx1REZGQyg/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMEQoPzpcXHVEODNEXFx1REM4QlxcdTIwMEQpP1xcdUQ4M0VcXHVEREQxXFx1RDgzQ1tcXHVERkZCXFx1REZGRC1cXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGODRcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRlxcdUREQkNcXHVEREJEXSg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xbXFx1RERCMC1cXHVEREIzXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0VcXHVEREQxXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKSkpP3xcXHVERkZEKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRCg/OlxcdUQ4M0RcXHVEQzhCXFx1MjAwRCk/XFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkJcXHVERkZDXFx1REZGRVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY4NFxcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGXFx1RERCQ1xcdUREQkRdKD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFtcXHVEREIwLVxcdUREQjNdfFxcdUREMURcXHUyMDBEXFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkItXFx1REZGRl0pKSk/fFxcdURGRkUoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEKD86XFx1RDgzRFxcdURDOEJcXHUyMDBEKT9cXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQi1cXHVERkZEXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjg0XFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUZcXHVEREJDXFx1RERCRF0oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98W1xcdUREQjAtXFx1RERCM118XFx1REQxRFxcdTIwMERcXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSkpKT98XFx1REZGRig/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMEQoPzpcXHVEODNEXFx1REM4QlxcdTIwMEQpP1xcdUQ4M0VcXHVEREQxXFx1RDgzQ1tcXHVERkZCLVxcdURGRkVdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY4NFxcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGXFx1RERCQ1xcdUREQkRdKD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFtcXHVEREIwLVxcdUREQjNdfFxcdUREMURcXHUyMDBEXFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkItXFx1REZGRl0pKSk/KSk/fFxcdURFRjEoPzpcXHVEODNDKD86XFx1REZGQig/OlxcdTIwMERcXHVEODNFXFx1REVGMlxcdUQ4M0NbXFx1REZGQy1cXHVERkZGXSk/fFxcdURGRkMoPzpcXHUyMDBEXFx1RDgzRVxcdURFRjJcXHVEODNDW1xcdURGRkJcXHVERkZELVxcdURGRkZdKT98XFx1REZGRCg/OlxcdTIwMERcXHVEODNFXFx1REVGMlxcdUQ4M0NbXFx1REZGQlxcdURGRkNcXHVERkZFXFx1REZGRl0pP3xcXHVERkZFKD86XFx1MjAwRFxcdUQ4M0VcXHVERUYyXFx1RDgzQ1tcXHVERkZCLVxcdURGRkRcXHVERkZGXSk/fFxcdURGRkYoPzpcXHUyMDBEXFx1RDgzRVxcdURFRjJcXHVEODNDW1xcdURGRkItXFx1REZGRV0pPykpPykvZztcbn07XG5cbmNvbnN0IHNlZ21lbnRlciA9IG5ldyBJbnRsLlNlZ21lbnRlcigpO1xuXG5jb25zdCBkZWZhdWx0SWdub3JhYmxlQ29kZVBvaW50UmVnZXggPSAvXlxccHtEZWZhdWx0X0lnbm9yYWJsZV9Db2RlX1BvaW50fSQvdTtcblxuZnVuY3Rpb24gc3RyaW5nV2lkdGgkMShzdHJpbmcsIG9wdGlvbnMgPSB7fSkge1xuXHRpZiAodHlwZW9mIHN0cmluZyAhPT0gJ3N0cmluZycgfHwgc3RyaW5nLmxlbmd0aCA9PT0gMCkge1xuXHRcdHJldHVybiAwO1xuXHR9XG5cblx0Y29uc3Qge1xuXHRcdGFtYmlndW91c0lzTmFycm93ID0gdHJ1ZSxcblx0XHRjb3VudEFuc2lFc2NhcGVDb2RlcyA9IGZhbHNlLFxuXHR9ID0gb3B0aW9ucztcblxuXHRpZiAoIWNvdW50QW5zaUVzY2FwZUNvZGVzKSB7XG5cdFx0c3RyaW5nID0gc3RyaXBBbnNpKHN0cmluZyk7XG5cdH1cblxuXHRpZiAoc3RyaW5nLmxlbmd0aCA9PT0gMCkge1xuXHRcdHJldHVybiAwO1xuXHR9XG5cblx0bGV0IHdpZHRoID0gMDtcblx0Y29uc3QgZWFzdEFzaWFuV2lkdGhPcHRpb25zID0ge2FtYmlndW91c0FzV2lkZTogIWFtYmlndW91c0lzTmFycm93fTtcblxuXHRmb3IgKGNvbnN0IHtzZWdtZW50OiBjaGFyYWN0ZXJ9IG9mIHNlZ21lbnRlci5zZWdtZW50KHN0cmluZykpIHtcblx0XHRjb25zdCBjb2RlUG9pbnQgPSBjaGFyYWN0ZXIuY29kZVBvaW50QXQoMCk7XG5cblx0XHQvLyBJZ25vcmUgY29udHJvbCBjaGFyYWN0ZXJzXG5cdFx0aWYgKGNvZGVQb2ludCA8PSAweDFGIHx8IChjb2RlUG9pbnQgPj0gMHg3RiAmJiBjb2RlUG9pbnQgPD0gMHg5RikpIHtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdC8vIElnbm9yZSB6ZXJvLXdpZHRoIGNoYXJhY3RlcnNcblx0XHRpZiAoXG5cdFx0XHQoY29kZVBvaW50ID49IDB4MjBfMEIgJiYgY29kZVBvaW50IDw9IDB4MjBfMEYpIC8vIFplcm8td2lkdGggc3BhY2UsIG5vbi1qb2luZXIsIGpvaW5lciwgbGVmdC10by1yaWdodCBtYXJrLCByaWdodC10by1sZWZ0IG1hcmtcblx0XHRcdHx8IGNvZGVQb2ludCA9PT0gMHhGRV9GRiAvLyBaZXJvLXdpZHRoIG5vLWJyZWFrIHNwYWNlXG5cdFx0KSB7XG5cdFx0XHRjb250aW51ZTtcblx0XHR9XG5cblx0XHQvLyBJZ25vcmUgY29tYmluaW5nIGNoYXJhY3RlcnNcblx0XHRpZiAoXG5cdFx0XHQoY29kZVBvaW50ID49IDB4M18wMCAmJiBjb2RlUG9pbnQgPD0gMHgzXzZGKSAvLyBDb21iaW5pbmcgZGlhY3JpdGljYWwgbWFya3Ncblx0XHRcdHx8IChjb2RlUG9pbnQgPj0gMHgxQV9CMCAmJiBjb2RlUG9pbnQgPD0gMHgxQV9GRikgLy8gQ29tYmluaW5nIGRpYWNyaXRpY2FsIG1hcmtzIGV4dGVuZGVkXG5cdFx0XHR8fCAoY29kZVBvaW50ID49IDB4MURfQzAgJiYgY29kZVBvaW50IDw9IDB4MURfRkYpIC8vIENvbWJpbmluZyBkaWFjcml0aWNhbCBtYXJrcyBzdXBwbGVtZW50XG5cdFx0XHR8fCAoY29kZVBvaW50ID49IDB4MjBfRDAgJiYgY29kZVBvaW50IDw9IDB4MjBfRkYpIC8vIENvbWJpbmluZyBkaWFjcml0aWNhbCBtYXJrcyBmb3Igc3ltYm9sc1xuXHRcdFx0fHwgKGNvZGVQb2ludCA+PSAweEZFXzIwICYmIGNvZGVQb2ludCA8PSAweEZFXzJGKSAvLyBDb21iaW5pbmcgaGFsZiBtYXJrc1xuXHRcdCkge1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0Ly8gSWdub3JlIHN1cnJvZ2F0ZSBwYWlyc1xuXHRcdGlmIChjb2RlUG9pbnQgPj0gMHhEOF8wMCAmJiBjb2RlUG9pbnQgPD0gMHhERl9GRikge1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0Ly8gSWdub3JlIHZhcmlhdGlvbiBzZWxlY3RvcnNcblx0XHRpZiAoY29kZVBvaW50ID49IDB4RkVfMDAgJiYgY29kZVBvaW50IDw9IDB4RkVfMEYpIHtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdC8vIFRoaXMgY292ZXJzIHNvbWUgb2YgdGhlIGFib3ZlIGNhc2VzLCBidXQgd2Ugc3RpbGwga2VlcCB0aGVtIGZvciBwZXJmb3JtYW5jZSByZWFzb25zLlxuXHRcdGlmIChkZWZhdWx0SWdub3JhYmxlQ29kZVBvaW50UmVnZXgudGVzdChjaGFyYWN0ZXIpKSB7XG5cdFx0XHRjb250aW51ZTtcblx0XHR9XG5cblx0XHQvLyBUT0RPOiBVc2UgYC9cXHB7UkdJX0Vtb2ppfS92YCB3aGVuIHRhcmdldGluZyBOb2RlLmpzIDIwLlxuXHRcdGlmIChlbW9qaVJlZ2V4KCkudGVzdChjaGFyYWN0ZXIpKSB7XG5cdFx0XHR3aWR0aCArPSAyO1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0d2lkdGggKz0gZWFzdEFzaWFuV2lkdGgoY29kZVBvaW50LCBlYXN0QXNpYW5XaWR0aE9wdGlvbnMpO1xuXHR9XG5cblx0cmV0dXJuIHdpZHRoO1xufVxuXG5mdW5jdGlvbiBpc1VuaWNvZGVTdXBwb3J0ZWQoKSB7XG5cdGNvbnN0IHtlbnZ9ID0gcHJvY2VzcyQxO1xuXHRjb25zdCB7VEVSTSwgVEVSTV9QUk9HUkFNfSA9IGVudjtcblxuXHRpZiAocHJvY2VzcyQxLnBsYXRmb3JtICE9PSAnd2luMzInKSB7XG5cdFx0cmV0dXJuIFRFUk0gIT09ICdsaW51eCc7IC8vIExpbnV4IGNvbnNvbGUgKGtlcm5lbClcblx0fVxuXG5cdHJldHVybiBCb29sZWFuKGVudi5XVF9TRVNTSU9OKSAvLyBXaW5kb3dzIFRlcm1pbmFsXG5cdFx0fHwgQm9vbGVhbihlbnYuVEVSTUlOVVNfU1VCTElNRSkgLy8gVGVybWludXMgKDwwLjIuMjcpXG5cdFx0fHwgZW52LkNvbkVtdVRhc2sgPT09ICd7Y21kOjpDbWRlcn0nIC8vIENvbkVtdSBhbmQgY21kZXJcblx0XHR8fCBURVJNX1BST0dSQU0gPT09ICdUZXJtaW51cy1TdWJsaW1lJ1xuXHRcdHx8IFRFUk1fUFJPR1JBTSA9PT0gJ3ZzY29kZSdcblx0XHR8fCBURVJNID09PSAneHRlcm0tMjU2Y29sb3InXG5cdFx0fHwgVEVSTSA9PT0gJ2FsYWNyaXR0eSdcblx0XHR8fCBURVJNID09PSAncnh2dC11bmljb2RlJ1xuXHRcdHx8IFRFUk0gPT09ICdyeHZ0LXVuaWNvZGUtMjU2Y29sb3InXG5cdFx0fHwgZW52LlRFUk1JTkFMX0VNVUxBVE9SID09PSAnSmV0QnJhaW5zLUplZGlUZXJtJztcbn1cblxuY29uc3QgVFlQRV9DT0xPUl9NQVAgPSB7XG4gIGluZm86IFwiY3lhblwiLFxuICBmYWlsOiBcInJlZFwiLFxuICBzdWNjZXNzOiBcImdyZWVuXCIsXG4gIHJlYWR5OiBcImdyZWVuXCIsXG4gIHN0YXJ0OiBcIm1hZ2VudGFcIlxufTtcbmNvbnN0IExFVkVMX0NPTE9SX01BUCA9IHtcbiAgMDogXCJyZWRcIixcbiAgMTogXCJ5ZWxsb3dcIlxufTtcbmNvbnN0IHVuaWNvZGUgPSBpc1VuaWNvZGVTdXBwb3J0ZWQoKTtcbmNvbnN0IHMgPSAoYywgZmFsbGJhY2spID0+IHVuaWNvZGUgPyBjIDogZmFsbGJhY2s7XG5jb25zdCBUWVBFX0lDT05TID0ge1xuICBlcnJvcjogcyhcIlxcdTI3MTZcIiwgXCJcXHhEN1wiKSxcbiAgZmF0YWw6IHMoXCJcXHUyNzE2XCIsIFwiXFx4RDdcIiksXG4gIHJlYWR5OiBzKFwiXFx1MjcxNFwiLCBcIlxcdTIyMUFcIiksXG4gIHdhcm46IHMoXCJcXHUyNkEwXCIsIFwiXFx1MjAzQ1wiKSxcbiAgaW5mbzogcyhcIlxcdTIxMzlcIiwgXCJpXCIpLFxuICBzdWNjZXNzOiBzKFwiXFx1MjcxNFwiLCBcIlxcdTIyMUFcIiksXG4gIGRlYnVnOiBzKFwiXFx1MjY5OVwiLCBcIkRcIiksXG4gIHRyYWNlOiBzKFwiXFx1MjE5MlwiLCBcIlxcdTIxOTJcIiksXG4gIGZhaWw6IHMoXCJcXHUyNzE2XCIsIFwiXFx4RDdcIiksXG4gIHN0YXJ0OiBzKFwiXFx1MjVEMFwiLCBcIm9cIiksXG4gIGxvZzogXCJcIlxufTtcbmZ1bmN0aW9uIHN0cmluZ1dpZHRoKHN0cikge1xuICBjb25zdCBoYXNJQ1UgPSB0eXBlb2YgSW50bCA9PT0gXCJvYmplY3RcIjtcbiAgaWYgKCFoYXNJQ1UgfHwgIUludGwuU2VnbWVudGVyKSB7XG4gICAgcmV0dXJuIHN0cmlwQW5zaSQxKHN0cikubGVuZ3RoO1xuICB9XG4gIHJldHVybiBzdHJpbmdXaWR0aCQxKHN0cik7XG59XG5jbGFzcyBGYW5jeVJlcG9ydGVyIGV4dGVuZHMgQmFzaWNSZXBvcnRlciB7XG4gIGZvcm1hdFN0YWNrKHN0YWNrLCBvcHRzKSB7XG4gICAgY29uc3QgaW5kZW50ID0gXCIgIFwiLnJlcGVhdCgob3B0cz8uZXJyb3JMZXZlbCB8fCAwKSArIDEpO1xuICAgIHJldHVybiBgXG4ke2luZGVudH1gICsgcGFyc2VTdGFjayhzdGFjaykubWFwKFxuICAgICAgKGxpbmUpID0+IFwiICBcIiArIGxpbmUucmVwbGFjZSgvXmF0ICsvLCAobSkgPT4gY29sb3JzLmdyYXkobSkpLnJlcGxhY2UoL1xcKCguKylcXCkvLCAoXywgbSkgPT4gYCgke2NvbG9ycy5jeWFuKG0pfSlgKVxuICAgICkuam9pbihgXG4ke2luZGVudH1gKTtcbiAgfVxuICBmb3JtYXRUeXBlKGxvZ09iaiwgaXNCYWRnZSwgb3B0cykge1xuICAgIGNvbnN0IHR5cGVDb2xvciA9IFRZUEVfQ09MT1JfTUFQW2xvZ09iai50eXBlXSB8fCBMRVZFTF9DT0xPUl9NQVBbbG9nT2JqLmxldmVsXSB8fCBcImdyYXlcIjtcbiAgICBpZiAoaXNCYWRnZSkge1xuICAgICAgcmV0dXJuIGdldEJnQ29sb3IodHlwZUNvbG9yKShcbiAgICAgICAgY29sb3JzLmJsYWNrKGAgJHtsb2dPYmoudHlwZS50b1VwcGVyQ2FzZSgpfSBgKVxuICAgICAgKTtcbiAgICB9XG4gICAgY29uc3QgX3R5cGUgPSB0eXBlb2YgVFlQRV9JQ09OU1tsb2dPYmoudHlwZV0gPT09IFwic3RyaW5nXCIgPyBUWVBFX0lDT05TW2xvZ09iai50eXBlXSA6IGxvZ09iai5pY29uIHx8IGxvZ09iai50eXBlO1xuICAgIHJldHVybiBfdHlwZSA/IGdldENvbG9yKHR5cGVDb2xvcikoX3R5cGUpIDogXCJcIjtcbiAgfVxuICBmb3JtYXRMb2dPYmoobG9nT2JqLCBvcHRzKSB7XG4gICAgY29uc3QgW21lc3NhZ2UsIC4uLmFkZGl0aW9uYWxdID0gdGhpcy5mb3JtYXRBcmdzKGxvZ09iai5hcmdzLCBvcHRzKS5zcGxpdChcbiAgICAgIFwiXFxuXCJcbiAgICApO1xuICAgIGlmIChsb2dPYmoudHlwZSA9PT0gXCJib3hcIikge1xuICAgICAgcmV0dXJuIGJveChcbiAgICAgICAgY2hhcmFjdGVyRm9ybWF0KFxuICAgICAgICAgIG1lc3NhZ2UgKyAoYWRkaXRpb25hbC5sZW5ndGggPiAwID8gXCJcXG5cIiArIGFkZGl0aW9uYWwuam9pbihcIlxcblwiKSA6IFwiXCIpXG4gICAgICAgICksXG4gICAgICAgIHtcbiAgICAgICAgICB0aXRsZTogbG9nT2JqLnRpdGxlID8gY2hhcmFjdGVyRm9ybWF0KGxvZ09iai50aXRsZSkgOiB2b2lkIDAsXG4gICAgICAgICAgc3R5bGU6IGxvZ09iai5zdHlsZVxuICAgICAgICB9XG4gICAgICApO1xuICAgIH1cbiAgICBjb25zdCBkYXRlID0gdGhpcy5mb3JtYXREYXRlKGxvZ09iai5kYXRlLCBvcHRzKTtcbiAgICBjb25zdCBjb2xvcmVkRGF0ZSA9IGRhdGUgJiYgY29sb3JzLmdyYXkoZGF0ZSk7XG4gICAgY29uc3QgaXNCYWRnZSA9IGxvZ09iai5iYWRnZSA/PyBsb2dPYmoubGV2ZWwgPCAyO1xuICAgIGNvbnN0IHR5cGUgPSB0aGlzLmZvcm1hdFR5cGUobG9nT2JqLCBpc0JhZGdlLCBvcHRzKTtcbiAgICBjb25zdCB0YWcgPSBsb2dPYmoudGFnID8gY29sb3JzLmdyYXkobG9nT2JqLnRhZykgOiBcIlwiO1xuICAgIGxldCBsaW5lO1xuICAgIGNvbnN0IGxlZnQgPSB0aGlzLmZpbHRlckFuZEpvaW4oW3R5cGUsIGNoYXJhY3RlckZvcm1hdChtZXNzYWdlKV0pO1xuICAgIGNvbnN0IHJpZ2h0ID0gdGhpcy5maWx0ZXJBbmRKb2luKG9wdHMuY29sdW1ucyA/IFt0YWcsIGNvbG9yZWREYXRlXSA6IFt0YWddKTtcbiAgICBjb25zdCBzcGFjZSA9IChvcHRzLmNvbHVtbnMgfHwgMCkgLSBzdHJpbmdXaWR0aChsZWZ0KSAtIHN0cmluZ1dpZHRoKHJpZ2h0KSAtIDI7XG4gICAgbGluZSA9IHNwYWNlID4gMCAmJiAob3B0cy5jb2x1bW5zIHx8IDApID49IDgwID8gbGVmdCArIFwiIFwiLnJlcGVhdChzcGFjZSkgKyByaWdodCA6IChyaWdodCA/IGAke2NvbG9ycy5ncmF5KGBbJHtyaWdodH1dYCl9IGAgOiBcIlwiKSArIGxlZnQ7XG4gICAgbGluZSArPSBjaGFyYWN0ZXJGb3JtYXQoXG4gICAgICBhZGRpdGlvbmFsLmxlbmd0aCA+IDAgPyBcIlxcblwiICsgYWRkaXRpb25hbC5qb2luKFwiXFxuXCIpIDogXCJcIlxuICAgICk7XG4gICAgaWYgKGxvZ09iai50eXBlID09PSBcInRyYWNlXCIpIHtcbiAgICAgIGNvbnN0IF9lcnIgPSBuZXcgRXJyb3IoXCJUcmFjZTogXCIgKyBsb2dPYmoubWVzc2FnZSk7XG4gICAgICBsaW5lICs9IHRoaXMuZm9ybWF0U3RhY2soX2Vyci5zdGFjayB8fCBcIlwiKTtcbiAgICB9XG4gICAgcmV0dXJuIGlzQmFkZ2UgPyBcIlxcblwiICsgbGluZSArIFwiXFxuXCIgOiBsaW5lO1xuICB9XG59XG5mdW5jdGlvbiBjaGFyYWN0ZXJGb3JtYXQoc3RyKSB7XG4gIHJldHVybiBzdHIucmVwbGFjZSgvYChbXmBdKylgL2dtLCAoXywgbSkgPT4gY29sb3JzLmN5YW4obSkpLnJlcGxhY2UoL1xccytfKFteX10rKV9cXHMrL2dtLCAoXywgbSkgPT4gYCAke2NvbG9ycy51bmRlcmxpbmUobSl9IGApO1xufVxuZnVuY3Rpb24gZ2V0Q29sb3IoY29sb3IgPSBcIndoaXRlXCIpIHtcbiAgcmV0dXJuIGNvbG9yc1tjb2xvcl0gfHwgY29sb3JzLndoaXRlO1xufVxuZnVuY3Rpb24gZ2V0QmdDb2xvcihjb2xvciA9IFwiYmdXaGl0ZVwiKSB7XG4gIHJldHVybiBjb2xvcnNbYGJnJHtjb2xvclswXS50b1VwcGVyQ2FzZSgpfSR7Y29sb3Iuc2xpY2UoMSl9YF0gfHwgY29sb3JzLmJnV2hpdGU7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUNvbnNvbGEob3B0aW9ucyA9IHt9KSB7XG4gIGxldCBsZXZlbCA9IF9nZXREZWZhdWx0TG9nTGV2ZWwoKTtcbiAgaWYgKHByb2Nlc3MuZW52LkNPTlNPTEFfTEVWRUwpIHtcbiAgICBsZXZlbCA9IE51bWJlci5wYXJzZUludChwcm9jZXNzLmVudi5DT05TT0xBX0xFVkVMKSA/PyBsZXZlbDtcbiAgfVxuICBjb25zdCBjb25zb2xhMiA9IGNyZWF0ZUNvbnNvbGEkMSh7XG4gICAgbGV2ZWwsXG4gICAgZGVmYXVsdHM6IHsgbGV2ZWwgfSxcbiAgICBzdGRvdXQ6IHByb2Nlc3Muc3Rkb3V0LFxuICAgIHN0ZGVycjogcHJvY2Vzcy5zdGRlcnIsXG4gICAgcHJvbXB0OiAoLi4uYXJncykgPT4gaW1wb3J0KCcuLi9jaHVua3MvcHJvbXB0Lm1qcycpLnRoZW4oKG0pID0+IG0ucHJvbXB0KC4uLmFyZ3MpKSxcbiAgICByZXBvcnRlcnM6IG9wdGlvbnMucmVwb3J0ZXJzIHx8IFtcbiAgICAgIG9wdGlvbnMuZmFuY3kgPz8gIShUIHx8IEEpID8gbmV3IEZhbmN5UmVwb3J0ZXIoKSA6IG5ldyBCYXNpY1JlcG9ydGVyKClcbiAgICBdLFxuICAgIC4uLm9wdGlvbnNcbiAgfSk7XG4gIHJldHVybiBjb25zb2xhMjtcbn1cbmZ1bmN0aW9uIF9nZXREZWZhdWx0TG9nTGV2ZWwoKSB7XG4gIGlmIChVKSB7XG4gICAgcmV0dXJuIExvZ0xldmVscy5kZWJ1ZztcbiAgfVxuICBpZiAoQSkge1xuICAgIHJldHVybiBMb2dMZXZlbHMud2FybjtcbiAgfVxuICByZXR1cm4gTG9nTGV2ZWxzLmluZm87XG59XG5jb25zdCBjb25zb2xhID0gY3JlYXRlQ29uc29sYSgpO1xuXG5leHBvcnQgeyBjb25zb2xhIGFzIGEsIGNyZWF0ZUNvbnNvbGEgYXMgYywgaXNVbmljb2RlU3VwcG9ydGVkIGFzIGkgfTtcbiIsICIvKiBlc2xpbnQtZGlzYWJsZSB1bmljb3JuL25vLXByb2Nlc3MtZXhpdCAqL1xuaW1wb3J0IGFzc2VydCBmcm9tIFwibm9kZTphc3NlcnRcIjtcbmltcG9ydCBwYXRoIGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB7IGNyZWF0ZUhhc2ggfSBmcm9tIFwibm9kZTpjcnlwdG9cIjtcbmltcG9ydCBmc1N5bmMgZnJvbSBcIm5vZGU6ZnNcIjtcbmltcG9ydCBmcyBmcm9tIFwibm9kZTpmcy9wcm9taXNlc1wiO1xuaW1wb3J0IHsgaGFzaCB9IGZyb20gXCJvaGFzaFwiO1xuaW1wb3J0IGV6U3Bhd24gZnJvbSBcIkBqc2RldnRvb2xzL2V6LXNwYXduXCI7XG5pbXBvcnQgeyBkZWZpbmVDb21tYW5kLCBydW5NYWluIH0gZnJvbSBcImNpdHR5XCI7XG5pbXBvcnQgeyBnZXRQYWNrYWdlTWFuaWZlc3QsIHR5cGUgUGFja2FnZU1hbmlmZXN0IH0gZnJvbSBcInF1ZXJ5LXJlZ2lzdHJ5XCI7XG5pbXBvcnQgdHlwZSB7IENvbW1lbnQgfSBmcm9tIFwiQHBrZy1wci1uZXcvdXRpbHNcIjtcbmltcG9ydCB7XG4gIGFiYnJldmlhdGVDb21taXRIYXNoLFxuICBleHRyYWN0T3duZXJBbmRSZXBvLFxuICBleHRyYWN0UmVwb3NpdG9yeSxcbn0gZnJvbSBcIkBwa2ctcHItbmV3L3V0aWxzXCI7XG5pbXBvcnQgeyBnbG9iIH0gZnJvbSBcInRpbnlnbG9iYnlcIjtcbmltcG9ydCBpZ25vcmUgZnJvbSBcImlnbm9yZVwiO1xuaW1wb3J0IFwiLi9lbnZpcm9ubWVudHNcIjtcbmltcG9ydCB7IGlzQmluYXJ5RmlsZSB9IGZyb20gXCJpc2JpbmFyeWZpbGVcIjtcbmltcG9ydCB7IHdyaXRlUGFja2FnZUpTT04sIHR5cGUgUGFja2FnZUpzb24gfSBmcm9tIFwicGtnLXR5cGVzXCI7XG5pbXBvcnQgcGtnIGZyb20gXCIuL3BhY2thZ2UuanNvblwiIHdpdGggeyB0eXBlOiBcImpzb25cIiB9O1xuaW1wb3J0IHsgY3JlYXRlRGVmYXVsdFRlbXBsYXRlIH0gZnJvbSBcIi4vdGVtcGxhdGVcIjtcblxuZGVjbGFyZSBnbG9iYWwge1xuICBjb25zdCBBUElfVVJMOiBzdHJpbmc7XG59XG5cbnR5cGUgT3V0cHV0TWV0YWRhdGEgPSB7XG4gIHBhY2thZ2VzOiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHVybDogc3RyaW5nO1xuICAgIHNoYXN1bTogc3RyaW5nO1xuICB9W107XG4gIHRlbXBsYXRlczoge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB1cmw6IHN0cmluZztcbiAgfVtdO1xufTtcblxuY29uc3QgYXBpVXJsID0gcHJvY2Vzcy5lbnYuQVBJX1VSTCA/PyBBUElfVVJMO1xuY29uc3QgcHVibGlzaFVybCA9IG5ldyBVUkwoXCIvcHVibGlzaFwiLCBhcGlVcmwpO1xuY29uc3QgY3JlYXRlTXVsdGlwYXJ0ID0gbmV3IFVSTChcIi9tdWx0aXBhcnQvY3JlYXRlXCIsIGFwaVVybCk7XG5jb25zdCB1cGxvYWRNdWx0aXBhcnQgPSBuZXcgVVJMKFwiL211bHRpcGFydC91cGxvYWRcIiwgYXBpVXJsKTtcbmNvbnN0IGNvbXBsZXRlTXVsdGlwYXJ0ID0gbmV3IFVSTChcIi9tdWx0aXBhcnQvY29tcGxldGVcIiwgYXBpVXJsKTtcblxuY29uc3QgbWFpbiA9IGRlZmluZUNvbW1hbmQoe1xuICBtZXRhOiB7XG4gICAgdmVyc2lvbjogcGtnLnZlcnNpb24sXG4gICAgbmFtZTogXCJzdGFja2JsaXR6XCIsXG4gICAgZGVzY3JpcHRpb246IFwiQSBDTEkgZm9yIHBrZy5wci5uZXcgKENvbnRpbnVvdXMgUmVsZWFzZXMpXCIsXG4gIH0sXG4gIHN1YkNvbW1hbmRzOiB7XG4gICAgcHVibGlzaDogKCkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYXJnczoge1xuICAgICAgICAgIGNvbXBhY3Q6IHtcbiAgICAgICAgICAgIHR5cGU6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgICAgIFwiY29tcGFjdCB1cmxzLiBUaGUgc2hvcnRlc3QgZm9ybSBvZiB1cmxzIGxpa2UgcGtnLnByLm5ldy90aW55YmVuY2hAYTgzMmE1NSlcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHBlZXJEZXBzOiB7XG4gICAgICAgICAgICB0eXBlOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgICAgICBcImhhbmRsZSBwZWVyRGVwZW5kZW5jaWVzIGJ5IHNldHRpbmcgdGhlIHdvcmtzcGFjZSB2ZXJzaW9uIGluc3RlYWQgb2Ygd2hhdCBoYXMgYmVlbiBzZXQgaW4gdGhlIHBlZXJEZXBzIGl0c2VsZi4gLS1wZWVyRGVwcyBub3QgYmVpbmcgdHJ1ZSB3b3VsZCBsZWF2ZSBwZWVyRGVwZW5kZW5jaWVzIHRvIHRoZSBwYWNrYWdlIG1hbmFnZXIgaXRzZWxmIChucG0sIHBucG0pXCIsXG4gICAgICAgICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHBucG06IHtcbiAgICAgICAgICAgIHR5cGU6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwidXNlIGBwbnBtIHBhY2tgIGluc3RlYWQgb2YgYG5wbSBwYWNrIC0tanNvbmBcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHRlbXBsYXRlOiB7XG4gICAgICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgICAgIFwiZ2VuZXJhdGUgc3RhY2tibGl0eiB0ZW1wbGF0ZXMgb3V0IG9mIGRpcmVjdG9yaWVzIGluIHRoZSBjdXJyZW50IHJlcG8gd2l0aCB0aGUgbmV3IGJ1aWx0IHBhY2thZ2VzXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjb21tZW50OiB7XG4gICAgICAgICAgICB0eXBlOiBcInN0cmluZ1wiLCAvLyBcIm9mZlwiLCBcImNyZWF0ZVwiLCBcInVwZGF0ZVwiIChkZWZhdWx0KVxuICAgICAgICAgICAgZGVzY3JpcHRpb246IGBcIm9mZlwiIGZvciBubyBjb21tZW50cyAoc2lsZW50IG1vZGUpLiBcImNyZWF0ZVwiIGZvciBjb21tZW50IG9uIGVhY2ggcHVibGlzaC4gXCJ1cGRhdGVcIiBmb3Igb25lIGNvbW1lbnQgYWNyb3NzIHRoZSBwdWxsIHJlcXVlc3Qgd2l0aCBlZGl0cyBvbiBlYWNoIHB1Ymxpc2ggKGRlZmF1bHQpYCxcbiAgICAgICAgICAgIGRlZmF1bHQ6IFwidXBkYXRlXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm9ubHktdGVtcGxhdGVzXCI6IHtcbiAgICAgICAgICAgIHR5cGU6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IGBnZW5lcmF0ZSBvbmx5IHN0YWNrYmxpdHogdGVtcGxhdGVzYCxcbiAgICAgICAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgICAgICAgIH0sXG4gICAgICAgICAganNvbjoge1xuICAgICAgICAgICAgdHlwZTogXCJtaXhlZFwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IGBTYXZlIG1ldGFkYXRhIHRvIGEgSlNPTiBmaWxlLiBJZiB0cnVlLCBsb2cgdGhlIG91dHB1dCBmb3IgcGlwaW5nLiBJZiBhIHN0cmluZywgc2F2ZSB0aGUgb3V0cHV0IHRvIHRoZSBzcGVjaWZpZWQgZmlsZSBwYXRoLmAsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBwYWNrYWdlTWFuYWdlcjoge1xuICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgICAgICBcIlNwZWNpZnkgdGhlIHBhY2thZ2UgbWFuYWdlciB0byB1c2UgKG5wbSwgYnVuLCBwbnBtLCB5YXJuKVwiLFxuICAgICAgICAgICAgZW51bTogW1wibnBtXCIsIFwiYnVuXCIsIFwicG5wbVwiLCBcInlhcm5cIl0sXG4gICAgICAgICAgICBkZWZhdWx0OiBcIm5wbVwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgYmluOiB7XG4gICAgICAgICAgICB0eXBlOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgICAgICBcIlNldCB0byB0cnVlIGlmIHlvdXIgcGFja2FnZSBpcyBhIGJpbmFyeSBhcHBsaWNhdGlvbiBhbmQgeW91IHdvdWxkIGxpa2UgdG8gc2hvdyBhbiBleGVjdXRlIGNvbW1hbmQgaW5zdGVhZCBvZiBhbiBpbnN0YWxsIGNvbW1hbmQuXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgcnVuOiBhc3luYyAoeyBhcmdzIH0pID0+IHtcbiAgICAgICAgICBjb25zdCBwYXRocyA9XG4gICAgICAgICAgICBhcmdzLl8ubGVuZ3RoID4gMFxuICAgICAgICAgICAgICA/IGF3YWl0IGdsb2IoYXJncy5fLCB7XG4gICAgICAgICAgICAgICAgICBleHBhbmREaXJlY3RvcmllczogZmFsc2UsXG4gICAgICAgICAgICAgICAgICBvbmx5RGlyZWN0b3JpZXM6IHRydWUsXG4gICAgICAgICAgICAgICAgICBhYnNvbHV0ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICA6IFtwcm9jZXNzLmN3ZCgpXTtcblxuICAgICAgICAgIGNvbnN0IHRlbXBsYXRlcyA9IGF3YWl0IGdsb2IoYXJncy50ZW1wbGF0ZSB8fCBbXSwge1xuICAgICAgICAgICAgZXhwYW5kRGlyZWN0b3JpZXM6IGZhbHNlLFxuICAgICAgICAgICAgb25seURpcmVjdG9yaWVzOiB0cnVlLFxuICAgICAgICAgICAgYWJzb2x1dGU6IHRydWUsXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuXG4gICAgICAgICAgY29uc3QgaXNDb21wYWN0ID0gISFhcmdzLmNvbXBhY3Q7XG4gICAgICAgICAgbGV0IHBhY2tNZXRob2Q6IFBhY2tNZXRob2QgPSBcIm5wbVwiO1xuXG4gICAgICAgICAgaWYgKGFyZ3MucG5wbSkge1xuICAgICAgICAgICAgcGFja01ldGhvZCA9IFwicG5wbVwiO1xuICAgICAgICAgIH0gZWxzZSBpZiAoYXJncy55YXJuKSB7XG4gICAgICAgICAgICBwYWNrTWV0aG9kID0gXCJ5YXJuXCI7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgaXNQZWVyRGVwc0VuYWJsZWQgPSAhIWFyZ3MucGVlckRlcHM7XG4gICAgICAgICAgY29uc3QgaXNPbmx5VGVtcGxhdGVzID0gISFhcmdzW1wib25seS10ZW1wbGF0ZXNcIl07XG4gICAgICAgICAgY29uc3QgaXNCaW5hcnlBcHBsaWNhdGlvbiA9ICEhYXJncy5iaW47XG4gICAgICAgICAgY29uc3QgY29tbWVudDogQ29tbWVudCA9IGFyZ3MuY29tbWVudCBhcyBDb21tZW50O1xuICAgICAgICAgIGNvbnN0IHNlbGVjdGVkUGFja2FnZU1hbmFnZXIgPSBhcmdzLnBhY2thZ2VNYW5hZ2VyIGFzXG4gICAgICAgICAgICB8IFwibnBtXCJcbiAgICAgICAgICAgIHwgXCJidW5cIlxuICAgICAgICAgICAgfCBcInBucG1cIlxuICAgICAgICAgICAgfCBcInlhcm5cIjtcblxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICFbXCJucG1cIiwgXCJidW5cIiwgXCJwbnBtXCIsIFwieWFyblwiXS5pbmNsdWRlcyhzZWxlY3RlZFBhY2thZ2VNYW5hZ2VyKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgYFVuc3VwcG9ydGVkIHBhY2thZ2UgbWFuYWdlcjogJHtzZWxlY3RlZFBhY2thZ2VNYW5hZ2VyfS4gU3VwcG9ydGVkIG1hbmFnZXJzIGFyZSBucG0sIGJ1biwgcG5wbSwgeWFybi5gLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoIXByb2Nlc3MuZW52LlRFU1QgJiYgcHJvY2Vzcy5lbnYuR0lUSFVCX0FDVElPTlMgIT09IFwidHJ1ZVwiKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICBcIkNvbnRpbnVvdXMgUmVsZWFzZXMgYXJlIG9ubHkgYXZhaWxhYmxlIGluIEdpdEh1YiBBY3Rpb25zLlwiLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICBHSVRIVUJfUkVQT1NJVE9SWSxcbiAgICAgICAgICAgIEdJVEhVQl9SVU5fSUQsXG4gICAgICAgICAgICBHSVRIVUJfUlVOX0FUVEVNUFQsXG4gICAgICAgICAgICBHSVRIVUJfQUNUT1JfSUQsXG4gICAgICAgICAgfSA9IHByb2Nlc3MuZW52O1xuXG4gICAgICAgICAgY29uc3QgW293bmVyLCByZXBvXSA9IEdJVEhVQl9SRVBPU0lUT1JZLnNwbGl0KFwiL1wiKTtcblxuICAgICAgICAgIGNvbnN0IG1ldGFkYXRhID0ge1xuICAgICAgICAgICAgb3duZXIsXG4gICAgICAgICAgICByZXBvLFxuICAgICAgICAgICAgcnVuOiBOdW1iZXIoR0lUSFVCX1JVTl9JRCksXG4gICAgICAgICAgICBhdHRlbXB0OiBOdW1iZXIoR0lUSFVCX1JVTl9BVFRFTVBUKSxcbiAgICAgICAgICAgIGFjdG9yOiBOdW1iZXIoR0lUSFVCX0FDVE9SX0lEKSxcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgY29uc3Qga2V5ID0gaGFzaChtZXRhZGF0YSk7XG5cbiAgICAgICAgICBjb25zdCBjaGVja1Jlc3BvbnNlID0gYXdhaXQgZmV0Y2gobmV3IFVSTChcIi9jaGVja1wiLCBhcGlVcmwpLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICBvd25lcixcbiAgICAgICAgICAgICAgcmVwbyxcbiAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBpZiAoIWNoZWNrUmVzcG9uc2Uub2spIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYXdhaXQgY2hlY2tSZXNwb25zZS50ZXh0KCkpO1xuICAgICAgICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IHsgc2hhIH0gPSBhd2FpdCBjaGVja1Jlc3BvbnNlLmpzb24oKTtcblxuICAgICAgICAgIGNvbnN0IGRlcHM6IE1hcDxzdHJpbmcsIHN0cmluZz4gPSBuZXcgTWFwKCk7IC8vIHBrZy5wci5uZXcgdmVyc2lvbnMgb2YgdGhlIHBhY2thZ2VcbiAgICAgICAgICBjb25zdCByZWFsRGVwczogTWFwPHN0cmluZywgc3RyaW5nPiB8IG51bGwgPSBpc1BlZXJEZXBzRW5hYmxlZFxuICAgICAgICAgICAgPyBuZXcgTWFwKClcbiAgICAgICAgICAgIDogbnVsbDsgLy8gcmVhbCB2ZXJzaW9ucyBvZiB0aGUgcGFja2FnZSwgdXNlZnVsIGZvciBwZWVyRGVwZW5kZW5jaWVzXG5cbiAgICAgICAgICBjb25zdCBwcmludEpzb24gPSB0eXBlb2YgYXJncy5qc29uID09PSBcImJvb2xlYW5cIjtcbiAgICAgICAgICBjb25zdCBzYXZlSnNvbiA9IHR5cGVvZiBhcmdzLmpzb24gPT09IFwic3RyaW5nXCI7XG4gICAgICAgICAgY29uc3QganNvbkZpbGVQYXRoID0gc2F2ZUpzb24gPyBhcmdzLmpzb24gOiBcIlwiO1xuICAgICAgICAgIGNvbnN0IG91dHB1dE1ldGFkYXRhOiBPdXRwdXRNZXRhZGF0YSA9IHtcbiAgICAgICAgICAgIHBhY2thZ2VzOiBbXSxcbiAgICAgICAgICAgIHRlbXBsYXRlczogW10sXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGZvciAoY29uc3QgcCBvZiBwYXRocykge1xuICAgICAgICAgICAgY29uc3QgcEpzb25QYXRoID0gcGF0aC5yZXNvbHZlKHAsIFwicGFja2FnZS5qc29uXCIpO1xuICAgICAgICAgICAgY29uc3QgcEpzb24gPSBhd2FpdCByZWFkUGFja2FnZUpzb24ocEpzb25QYXRoKTtcblxuICAgICAgICAgICAgaWYgKCFwSnNvbikge1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFwSnNvbi5uYW1lKSB7XG4gICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgXCJuYW1lXCIgZmllbGQgaW4gJHtwSnNvblBhdGh9IHNob3VsZCBiZSBkZWZpbmVkYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocEpzb24ucHJpdmF0ZSkge1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGlzQ29tcGFjdCkge1xuICAgICAgICAgICAgICBhd2FpdCB2ZXJpZnlDb21wYWN0TW9kZShwSnNvbi5uYW1lKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVkU2hhID0gaXNDb21wYWN0ID8gYWJicmV2aWF0ZUNvbW1pdEhhc2goc2hhKSA6IHNoYTtcbiAgICAgICAgICAgIGNvbnN0IGRlcFVybCA9IG5ldyBVUkwoXG4gICAgICAgICAgICAgIGAvJHtvd25lcn0vJHtyZXBvfS8ke3BKc29uLm5hbWV9QCR7Zm9ybWF0dGVkU2hhfWAsXG4gICAgICAgICAgICAgIGFwaVVybCxcbiAgICAgICAgICAgICkuaHJlZjtcbiAgICAgICAgICAgIGRlcHMuc2V0KHBKc29uLm5hbWUsIGRlcFVybCk7XG4gICAgICAgICAgICByZWFsRGVwcz8uc2V0KHBKc29uLm5hbWUsIHBKc29uLnZlcnNpb24gPz8gZGVwVXJsKTtcblxuICAgICAgICAgICAgY29uc3QgcmVzb3VyY2UgPSBhd2FpdCBmZXRjaChkZXBVcmwpO1xuICAgICAgICAgICAgaWYgKHJlc291cmNlLm9rKSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgICAgICBgJHtwSnNvbi5uYW1lfUAke2Zvcm1hdHRlZFNoYX0gd2FzIGFscmVhZHkgcHVibGlzaGVkIG9uICR7ZGVwVXJsfWAsXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIENvbGxlY3QgcGFja2FnZSBtZXRhZGF0YVxuICAgICAgICAgICAgb3V0cHV0TWV0YWRhdGEucGFja2FnZXMucHVzaCh7XG4gICAgICAgICAgICAgIG5hbWU6IHBKc29uLm5hbWUsXG4gICAgICAgICAgICAgIHVybDogZGVwVXJsLFxuICAgICAgICAgICAgICBzaGFzdW06IFwiXCIsIC8vIHdpbGwgYmUgZmlsbGVkIGxhdGVyXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBmb3IgKGNvbnN0IHRlbXBsYXRlRGlyIG9mIHRlbXBsYXRlcykge1xuICAgICAgICAgICAgY29uc3QgcEpzb25QYXRoID0gcGF0aC5yZXNvbHZlKHRlbXBsYXRlRGlyLCBcInBhY2thZ2UuanNvblwiKTtcbiAgICAgICAgICAgIGNvbnN0IHBKc29uQ29udGVudHMgPSBhd2FpdCB0cnlSZWFkRmlsZShwSnNvblBhdGgpO1xuICAgICAgICAgICAgY29uc3QgcEpzb24gPSBwSnNvbkNvbnRlbnRzXG4gICAgICAgICAgICAgID8gcGFyc2VQYWNrYWdlSnNvbihwSnNvbkNvbnRlbnRzKVxuICAgICAgICAgICAgICA6IG51bGw7XG5cbiAgICAgICAgICAgIGlmICghcEpzb24gfHwgIXBKc29uQ29udGVudHMpIHtcbiAgICAgICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICAgIGBza2lwcGluZyAke3RlbXBsYXRlRGlyfSBiZWNhdXNlIHRoZXJlJ3Mgbm8gcGFja2FnZS5qc29uIGZpbGVgLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFwSnNvbi5uYW1lKSB7XG4gICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgXCJuYW1lXCIgZmllbGQgaW4gJHtwSnNvblBhdGh9IHNob3VsZCBiZSBkZWZpbmVkYCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnNvbGUud2FybihcInByZXBhcmluZyB0ZW1wbGF0ZTpcIiwgcEpzb24ubmFtZSk7XG5cbiAgICAgICAgICAgIGNvbnN0IHJlc3RvcmUgPSBhd2FpdCB3cml0ZURlcHMoXG4gICAgICAgICAgICAgIHRlbXBsYXRlRGlyLFxuICAgICAgICAgICAgICBwSnNvbkNvbnRlbnRzLFxuICAgICAgICAgICAgICBwSnNvbixcbiAgICAgICAgICAgICAgZGVwcyxcbiAgICAgICAgICAgICAgcmVhbERlcHMsXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBjb25zdCBnaXRpZ25vcmVQYXRoID0gcGF0aC5qb2luKHRlbXBsYXRlRGlyLCBcIi5naXRpZ25vcmVcIik7XG4gICAgICAgICAgICBjb25zdCBpZyA9IGlnbm9yZSgpLmFkZChcIm5vZGVfbW9kdWxlc1wiKS5hZGQoXCIuZ2l0XCIpO1xuXG4gICAgICAgICAgICBpZiAoZnNTeW5jLmV4aXN0c1N5bmMoZ2l0aWdub3JlUGF0aCkpIHtcbiAgICAgICAgICAgICAgY29uc3QgZ2l0aWdub3JlQ29udGVudCA9IGF3YWl0IGZzLnJlYWRGaWxlKGdpdGlnbm9yZVBhdGgsIFwidXRmOFwiKTtcbiAgICAgICAgICAgICAgaWcuYWRkKGdpdGlnbm9yZUNvbnRlbnQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBmaWxlcyA9IGF3YWl0IGdsb2IoW1wiKiovKlwiXSwge1xuICAgICAgICAgICAgICBjd2Q6IHRlbXBsYXRlRGlyLFxuICAgICAgICAgICAgICBkb3Q6IHRydWUsXG4gICAgICAgICAgICAgIG9ubHlGaWxlczogdHJ1ZSxcbiAgICAgICAgICAgICAgaWdub3JlOiBbXCIqKi9ub2RlX21vZHVsZXNcIiwgXCIuZ2l0XCJdLCAvLyBhbHdheXMgaWdub3JlIG5vZGVfbW9kdWxlcyBhbmQgLmdpdFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGNvbnN0IGZpbHRlcmVkRmlsZXMgPSBmaWxlcy5maWx0ZXIoKGZpbGUpID0+ICFpZy5pZ25vcmVzKGZpbGUpKTtcblxuICAgICAgICAgICAgZm9yIChjb25zdCBmaWxlUGF0aCBvZiBmaWx0ZXJlZEZpbGVzKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGZpbGUgPSBhd2FpdCBmcy5yZWFkRmlsZShwYXRoLmpvaW4odGVtcGxhdGVEaXIsIGZpbGVQYXRoKSk7XG4gICAgICAgICAgICAgIGNvbnN0IGlzQmluYXJ5ID0gYXdhaXQgaXNCaW5hcnlGaWxlKGZpbGUpO1xuICAgICAgICAgICAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW2ZpbGUuYnVmZmVyXSwge1xuICAgICAgICAgICAgICAgIHR5cGU6IFwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtXCIsXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoXG4gICAgICAgICAgICAgICAgYHRlbXBsYXRlOiR7cEpzb24ubmFtZX06JHtlbmNvZGVVUklDb21wb25lbnQoZmlsZVBhdGgpfWAsXG4gICAgICAgICAgICAgICAgaXNCaW5hcnkgPyBibG9iIDogYXdhaXQgYmxvYi50ZXh0KCksXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhd2FpdCByZXN0b3JlKCk7XG5cbiAgICAgICAgICAgIC8vIENvbGxlY3QgdGVtcGxhdGUgbWV0YWRhdGFcbiAgICAgICAgICAgIGNvbnN0IHRlbXBsYXRlVXJsID0gbmV3IFVSTChcbiAgICAgICAgICAgICAgYC8ke293bmVyfS8ke3JlcG99L3RlbXBsYXRlLyR7cEpzb24ubmFtZX1gLFxuICAgICAgICAgICAgICBhcGlVcmwsXG4gICAgICAgICAgICApLmhyZWY7XG4gICAgICAgICAgICBvdXRwdXRNZXRhZGF0YS50ZW1wbGF0ZXMucHVzaCh7XG4gICAgICAgICAgICAgIG5hbWU6IHBKc29uLm5hbWUsXG4gICAgICAgICAgICAgIHVybDogdGVtcGxhdGVVcmwsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBub0RlZmF1bHRUZW1wbGF0ZSA9IGFyZ3MudGVtcGxhdGUgPT09IGZhbHNlO1xuXG4gICAgICAgICAgaWYgKCFub0RlZmF1bHRUZW1wbGF0ZSAmJiB0ZW1wbGF0ZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICBjb25zdCBwcm9qZWN0ID0gY3JlYXRlRGVmYXVsdFRlbXBsYXRlKFxuICAgICAgICAgICAgICBPYmplY3QuZnJvbUVudHJpZXMoZGVwcy5lbnRyaWVzKCkpLFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgZm9yIChjb25zdCBmaWxlUGF0aCBvZiBPYmplY3Qua2V5cyhwcm9qZWN0KSkge1xuICAgICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoXG4gICAgICAgICAgICAgICAgYHRlbXBsYXRlOmRlZmF1bHQ6JHtlbmNvZGVVUklDb21wb25lbnQoZmlsZVBhdGgpfWAsXG4gICAgICAgICAgICAgICAgcHJvamVjdFtmaWxlUGF0aF0sXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgcmVzdG9yZU1hcCA9IG5ldyBNYXA8XG4gICAgICAgICAgICBzdHJpbmcsXG4gICAgICAgICAgICBBd2FpdGVkPFJldHVyblR5cGU8dHlwZW9mIHdyaXRlRGVwcz4+XG4gICAgICAgICAgPigpO1xuICAgICAgICAgIGZvciAoY29uc3QgcCBvZiBwYXRocykge1xuICAgICAgICAgICAgY29uc3QgcEpzb25QYXRoID0gcGF0aC5yZXNvbHZlKHAsIFwicGFja2FnZS5qc29uXCIpO1xuICAgICAgICAgICAgY29uc3QgcEpzb25Db250ZW50cyA9IGF3YWl0IHRyeVJlYWRGaWxlKHBKc29uUGF0aCk7XG4gICAgICAgICAgICBjb25zdCBwSnNvbiA9IHBKc29uQ29udGVudHNcbiAgICAgICAgICAgICAgPyBwYXJzZVBhY2thZ2VKc29uKHBKc29uQ29udGVudHMpXG4gICAgICAgICAgICAgIDogbnVsbDtcblxuICAgICAgICAgICAgaWYgKCFwSnNvbiB8fCAhcEpzb25Db250ZW50cykge1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHBKc29uLnByaXZhdGUpIHtcbiAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJlc3RvcmVNYXAuc2V0KFxuICAgICAgICAgICAgICBwLFxuICAgICAgICAgICAgICBhd2FpdCB3cml0ZURlcHMocCwgcEpzb25Db250ZW50cywgcEpzb24sIGRlcHMsIHJlYWxEZXBzKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3Qgc2hhc3VtczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuICAgICAgICAgIGZvciAoY29uc3QgcCBvZiBwYXRocykge1xuICAgICAgICAgICAgY29uc3QgcEpzb25QYXRoID0gcGF0aC5yZXNvbHZlKHAsIFwicGFja2FnZS5qc29uXCIpO1xuICAgICAgICAgICAgY29uc3QgcEpzb24gPSBhd2FpdCByZWFkUGFja2FnZUpzb24ocEpzb25QYXRoKTtcbiAgICAgICAgICAgIGlmICghcEpzb24pIHtcbiAgICAgICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICAgIGBza2lwcGluZyAke3B9IGJlY2F1c2UgdGhlcmUncyBubyBwYWNrYWdlLmpzb24gZmlsZWAsXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBpZiAoIXBKc29uLm5hbWUpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgICBgXCJuYW1lXCIgZmllbGQgaW4gJHtwSnNvblBhdGh9IHNob3VsZCBiZSBkZWZpbmVkYCxcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmIChwSnNvbi5wcml2YXRlKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGBza2lwcGluZyAke3B9IGJlY2F1c2UgdGhlIHBhY2thZ2UgaXMgcHJpdmF0ZWApO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgY29uc3QgeyBmaWxlbmFtZSwgc2hhc3VtIH0gPSBhd2FpdCByZXNvbHZlVGFyYmFsbChcbiAgICAgICAgICAgICAgICBwYWNrTWV0aG9kLFxuICAgICAgICAgICAgICAgIHAsXG4gICAgICAgICAgICAgICAgcEpzb24sXG4gICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgc2hhc3Vtc1twSnNvbi5uYW1lXSA9IHNoYXN1bTtcblxuICAgICAgICAgICAgICBjb25zdCBvdXRwdXRQa2cgPSBvdXRwdXRNZXRhZGF0YS5wYWNrYWdlcy5maW5kKFxuICAgICAgICAgICAgICAgIChwKSA9PiBwLm5hbWUgPT09IHBKc29uLm5hbWUsXG4gICAgICAgICAgICAgICkhO1xuICAgICAgICAgICAgICBvdXRwdXRQa2cuc2hhc3VtID0gc2hhc3VtO1xuXG4gICAgICAgICAgICAgIGNvbnN0IGZpbGVQYXRoID0gcGF0aC5yZXNvbHZlKHAsIGZpbGVuYW1lKTtcbiAgICAgICAgICAgICAgY29uc3QgYnVmZmVyID0gYXdhaXQgZnMucmVhZEZpbGUoZmlsZVBhdGgpO1xuXG4gICAgICAgICAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbYnVmZmVyXSwge1xuICAgICAgICAgICAgICAgIHR5cGU6IFwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtXCIsXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoYHBhY2thZ2U6JHtwSnNvbi5uYW1lfWAsIGJsb2IsIGZpbGVuYW1lKTtcblxuICAgICAgICAgICAgICBhd2FpdCBmcy5ybShmaWxlUGF0aCk7XG4gICAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgICBhd2FpdCByZXN0b3JlTWFwLmdldChwKT8uKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgZm9ybURhdGFQYWNrYWdlc1NpemUgPSBbLi4uZm9ybURhdGEuZW50cmllcygpXS5yZWR1Y2UoXG4gICAgICAgICAgICAocHJldiwgW18sIGVudHJ5XSkgPT4gcHJldiArIGdldEZvcm1FbnRyeVNpemUoZW50cnkpLFxuICAgICAgICAgICAgMCxcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgLy8gbXVsdGlwYXJ0IHVwbG9hZGluZ1xuICAgICAgICAgIGlmIChmb3JtRGF0YVBhY2thZ2VzU2l6ZSA+IDEwMjQgKiAxMDI0ICogOTkpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgW25hbWUsIGVudHJ5XSBvZiBmb3JtRGF0YSkge1xuICAgICAgICAgICAgICBpZiAobmFtZS5zdGFydHNXaXRoKFwicGFja2FnZTpcIikpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWxlID0gZW50cnkgYXMgRmlsZTtcbiAgICAgICAgICAgICAgICBjb25zdCBjaHVua1NpemUgPSAxMDI0ICogMTAyNCAqIDU7XG4gICAgICAgICAgICAgICAgaWYgKGZpbGUuc2l6ZSA8PSBjaHVua1NpemUpIHtcbiAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCB0b3RhbENodW5rcyA9IE1hdGguY2VpbChmaWxlLnNpemUgLyBjaHVua1NpemUpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNyZWF0ZU11bHRpcGFydFJlcyA9IGF3YWl0IGZldGNoKGNyZWF0ZU11bHRpcGFydCwge1xuICAgICAgICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJzYi1rZXlcIjoga2V5LFxuICAgICAgICAgICAgICAgICAgICBcInNiLW5hbWVcIjogbmFtZS5zbGljZShcInBhY2thZ2U6XCIubGVuZ3RoKSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKCFjcmVhdGVNdWx0aXBhcnRSZXMub2spIHtcbiAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYXdhaXQgY3JlYXRlTXVsdGlwYXJ0UmVzLnRleHQoKSk7XG4gICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgeyBrZXk6IHVwbG9hZEtleSwgaWQ6IHVwbG9hZElkIH0gPVxuICAgICAgICAgICAgICAgICAgYXdhaXQgY3JlYXRlTXVsdGlwYXJ0UmVzLmpzb24oKTtcblxuICAgICAgICAgICAgICAgIGludGVyZmFjZSBSMlVwbG9hZGVkUGFydCB7XG4gICAgICAgICAgICAgICAgICBwYXJ0TnVtYmVyOiBudW1iZXI7XG4gICAgICAgICAgICAgICAgICBldGFnOiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHVwbG9hZGVkUGFydHM6IFIyVXBsb2FkZWRQYXJ0W10gPSBbXTtcblxuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdG90YWxDaHVua3M7IGkrKykge1xuICAgICAgICAgICAgICAgICAgY29uc3Qgc3RhcnQgPSBpICogY2h1bmtTaXplO1xuICAgICAgICAgICAgICAgICAgY29uc3QgZW5kID0gTWF0aC5taW4oZmlsZS5zaXplLCBzdGFydCArIGNodW5rU2l6ZSk7XG4gICAgICAgICAgICAgICAgICBjb25zdCBjaHVuayA9IGZpbGUuc2xpY2Uoc3RhcnQsIGVuZCk7XG5cbiAgICAgICAgICAgICAgICAgIGNvbnN0IHVwbG9hZE11bHRpcGFydFJlcyA9IGF3YWl0IGZldGNoKHVwbG9hZE11bHRpcGFydCwge1xuICAgICAgICAgICAgICAgICAgICBtZXRob2Q6IFwiUFVUXCIsXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICBrZXk6IHVwbG9hZEtleSxcbiAgICAgICAgICAgICAgICAgICAgICBpZDogdXBsb2FkSWQsXG4gICAgICAgICAgICAgICAgICAgICAgXCJwYXJ0LW51bWJlclwiOiBgJHtpICsgMX1gLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBib2R5OiBjaHVuayxcbiAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICBpZiAoIXVwbG9hZE11bHRpcGFydFJlcy5vaykge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgIGBFcnJvciB1cGxvYWRpbmcgcGFydCAke2kgKyAxfTogJHthd2FpdCB1cGxvYWRNdWx0aXBhcnRSZXMudGV4dCgpfWAsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgY29uc3QgeyBwYXJ0IH0gPSBhd2FpdCB1cGxvYWRNdWx0aXBhcnRSZXMuanNvbigpO1xuICAgICAgICAgICAgICAgICAgdXBsb2FkZWRQYXJ0cy5wdXNoKHBhcnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBjb21wbGV0ZU11bHRpcGFydFJlcyA9IGF3YWl0IGZldGNoKGNvbXBsZXRlTXVsdGlwYXJ0LCB7XG4gICAgICAgICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICBrZXk6IHVwbG9hZEtleSxcbiAgICAgICAgICAgICAgICAgICAgaWQ6IHVwbG9hZElkLFxuICAgICAgICAgICAgICAgICAgICBcInVwbG9hZGVkLXBhcnRzXCI6IEpTT04uc3RyaW5naWZ5KHVwbG9hZGVkUGFydHMpLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAoIWNvbXBsZXRlTXVsdGlwYXJ0UmVzLm9rKSB7XG4gICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgICAgICBgRXJyb3IgY29tcGxldGluZyAke2tleX06ICR7YXdhaXQgY29tcGxldGVNdWx0aXBhcnRSZXMudGV4dCgpfWAsXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHsga2V5OiBjb21wbGV0aW9uS2V5IH0gPVxuICAgICAgICAgICAgICAgICAgYXdhaXQgY29tcGxldGVNdWx0aXBhcnRSZXMuanNvbigpO1xuXG4gICAgICAgICAgICAgICAgZm9ybURhdGEuc2V0KG5hbWUsIGBvYmplY3Q6JHtjb21wbGV0aW9uS2V5fWApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2gocHVibGlzaFVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgXCJzYi1jb21tZW50XCI6IGNvbW1lbnQsXG4gICAgICAgICAgICAgIFwic2ItY29tcGFjdFwiOiBgJHtpc0NvbXBhY3R9YCxcbiAgICAgICAgICAgICAgXCJzYi1rZXlcIjoga2V5LFxuICAgICAgICAgICAgICBcInNiLXNoYXN1bXNcIjogSlNPTi5zdHJpbmdpZnkoc2hhc3VtcyksXG4gICAgICAgICAgICAgIFwic2ItcnVuLWlkXCI6IEdJVEhVQl9SVU5fSUQsXG4gICAgICAgICAgICAgIFwic2ItYmluXCI6IGAke2lzQmluYXJ5QXBwbGljYXRpb259YCxcbiAgICAgICAgICAgICAgXCJzYi1wYWNrYWdlLW1hbmFnZXJcIjogc2VsZWN0ZWRQYWNrYWdlTWFuYWdlcixcbiAgICAgICAgICAgICAgXCJzYi1vbmx5LXRlbXBsYXRlc1wiOiBgJHtpc09ubHlUZW1wbGF0ZXN9YCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBib2R5OiBmb3JtRGF0YSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBjb25zdCBsYXRlclJlcyA9IGF3YWl0IHJlcy5jbG9uZSgpLmpzb24oKTtcbiAgICAgICAgICBhc3NlcnQuZXF1YWwoXG4gICAgICAgICAgICByZXMuc3RhdHVzLFxuICAgICAgICAgICAgMjAwLFxuICAgICAgICAgICAgYHB1Ymxpc2hpbmcgZmFpbGVkOiAke2F3YWl0IHJlcy50ZXh0KCl9YCxcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgY29uc29sZS53YXJuKFwiXFxuXCIpO1xuICAgICAgICAgIGNvbnNvbGUud2FybihcIlx1MjZBMVx1RkUwRiBZb3VyIG5wbSBwYWNrYWdlcyBhcmUgcHVibGlzaGVkLlxcblwiKTtcblxuICAgICAgICAgIGNvbnN0IHBhY2thZ2VMb2dzID0gWy4uLmZvcm1EYXRhLmtleXMoKV1cbiAgICAgICAgICAgIC5maWx0ZXIoKGspID0+IGsuc3RhcnRzV2l0aChcInBhY2thZ2U6XCIpKVxuICAgICAgICAgICAgLm1hcCgobmFtZSwgaSkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBwYWNrYWdlTmFtZSA9IG5hbWUuc2xpY2UoXCJwYWNrYWdlOlwiLmxlbmd0aCk7XG4gICAgICAgICAgICAgIGNvbnN0IHVybCA9IG5ldyBVUkwobGF0ZXJSZXMudXJsc1tpXSk7XG4gICAgICAgICAgICAgIGNvbnN0IHB1YmxpbnRVcmwgPSBuZXcgVVJMKFxuICAgICAgICAgICAgICAgIGAvcGtnLnByLm5ldyR7dXJsLnBhdGhuYW1lfWAsXG4gICAgICAgICAgICAgICAgXCJodHRwczovL3B1YmxpbnQuZGV2XCIsXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIHJldHVybiBgJHtwYWNrYWdlTmFtZX06XG4tIHNoYTogJHtzaGFzdW1zW3BhY2thZ2VOYW1lXX1cbi0gcHVibGludDogJHtwdWJsaW50VXJsfVxuLSBucG06IG5wbSBpICR7dXJsfWA7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmpvaW4oXCJcXG5cXG5cIik7XG5cbiAgICAgICAgICBjb25zb2xlLndhcm4ocGFja2FnZUxvZ3MpO1xuXG4gICAgICAgICAgY29uc3Qgb3V0cHV0ID0gSlNPTi5zdHJpbmdpZnkob3V0cHV0TWV0YWRhdGEsIG51bGwsIDIpO1xuICAgICAgICAgIGlmIChwcmludEpzb24pIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKG91dHB1dCk7IC8vIExvZyBvdXRwdXQgZm9yIHBpcGluZ1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoc2F2ZUpzb24pIHtcbiAgICAgICAgICAgIGF3YWl0IGZzLndyaXRlRmlsZShqc29uRmlsZVBhdGgsIG91dHB1dCk7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oYG1ldGFkYXRhIHdyaXR0ZW4gdG8gJHtqc29uRmlsZVBhdGh9YCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9LFxuICAgIGxpbms6ICgpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG1ldGE6IHt9LFxuICAgICAgICBydW46ICgpID0+IHtcbiAgICAgICAgICAvLyBub29wXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH0sXG4gIH0sXG59KTtcblxucnVuTWFpbihtYWluKVxuICAudGhlbigoKSA9PiBwcm9jZXNzLmV4aXQoMCkpXG4gIC5jYXRjaCgoKSA9PiBwcm9jZXNzLmV4aXQoMSkpO1xuXG50eXBlIFBhY2tNZXRob2QgPSBcIm5wbVwiIHwgXCJwbnBtXCIgfCBcInlhcm5cIjtcblxuYXN5bmMgZnVuY3Rpb24gcmVzb2x2ZVRhcmJhbGwocG06IFBhY2tNZXRob2QsIHA6IHN0cmluZywgcEpzb246IFBhY2thZ2VKc29uKSB7XG4gIGxldCBjbWQgPSBgJHtwbX0gcGFja2A7XG4gIGxldCBmaWxlbmFtZSA9IGAke3BKc29uLm5hbWUhLnJlcGxhY2UoXCIvXCIsIFwiLVwiKX0tJHtwSnNvbi52ZXJzaW9ufS50Z3pgO1xuICBpZiAocG0gPT09IFwieWFyblwiKSB7XG4gICAgY21kICs9IGAgLS1maWxlbmFtZSAke2ZpbGVuYW1lfWA7XG4gIH1cbiAgY29uc3QgeyBzdGRvdXQgfSA9IGF3YWl0IGV6U3Bhd24uYXN5bmMoY21kLCB7XG4gICAgc3RkaW86IFwib3ZlcmxhcHBlZFwiLFxuICAgIGN3ZDogcCxcbiAgfSk7XG4gIGNvbnN0IGxpbmVzID0gc3Rkb3V0LnNwbGl0KFwiXFxuXCIpLmZpbHRlcihCb29sZWFuKTtcblxuICBpZiAocG0gIT09IFwieWFyblwiKSB7XG4gICAgZmlsZW5hbWUgPSBsaW5lc1tsaW5lcy5sZW5ndGggLSAxXS50cmltKCk7XG4gIH1cblxuICBjb25zdCBzaGFzdW0gPSBjcmVhdGVIYXNoKFwic2hhMVwiKVxuICAgIC51cGRhdGUoYXdhaXQgZnMucmVhZEZpbGUocGF0aC5yZXNvbHZlKHAsIGZpbGVuYW1lKSkpXG4gICAgLmRpZ2VzdChcImhleFwiKTtcblxuICByZXR1cm4geyBmaWxlbmFtZSwgc2hhc3VtIH07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHdyaXRlRGVwcyhcbiAgcDogc3RyaW5nLFxuICBwSnNvbkNvbnRlbnRzOiBzdHJpbmcsXG4gIHBKc29uOiBQYWNrYWdlSnNvbixcbiAgZGVwczogTWFwPHN0cmluZywgc3RyaW5nPixcbiAgcmVhbERlcHM6IE1hcDxzdHJpbmcsIHN0cmluZz4gfCBudWxsLFxuKSB7XG4gIGNvbnN0IHBKc29uUGF0aCA9IHBhdGgucmVzb2x2ZShwLCBcInBhY2thZ2UuanNvblwiKTtcblxuICBoaWphY2tEZXBzKGRlcHMsIHBKc29uLmRlcGVuZGVuY2llcyk7XG4gIGhpamFja0RlcHMoZGVwcywgcEpzb24uZGV2RGVwZW5kZW5jaWVzKTtcbiAgaGlqYWNrRGVwcyhkZXBzLCBwSnNvbi5vcHRpb25hbERlcGVuZGVuY2llcyk7XG5cbiAgaWYgKHJlYWxEZXBzKSB7XG4gICAgaGlqYWNrRGVwcyhyZWFsRGVwcywgcEpzb24ucGVlckRlcGVuZGVuY2llcyk7XG4gIH1cblxuICBhd2FpdCB3cml0ZVBhY2thZ2VKU09OKHBKc29uUGF0aCwgcEpzb24pO1xuXG4gIHJldHVybiAoKSA9PiBmcy53cml0ZUZpbGUocEpzb25QYXRoLCBwSnNvbkNvbnRlbnRzKTtcbn1cblxuZnVuY3Rpb24gaGlqYWNrRGVwcyhcbiAgbmV3RGVwczogTWFwPHN0cmluZywgc3RyaW5nPixcbiAgb2xkRGVwcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4pIHtcbiAgaWYgKCFvbGREZXBzKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGZvciAoY29uc3QgW25ld0RlcCwgdXJsXSBvZiBuZXdEZXBzKSB7XG4gICAgaWYgKG5ld0RlcCBpbiBvbGREZXBzKSB7XG4gICAgICBvbGREZXBzW25ld0RlcF0gPSB1cmw7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGdldEZvcm1FbnRyeVNpemUoZW50cnk6IEZvcm1EYXRhRW50cnlWYWx1ZSkge1xuICBpZiAodHlwZW9mIGVudHJ5ID09PSBcInN0cmluZ1wiKSB7XG4gICAgcmV0dXJuIGVudHJ5Lmxlbmd0aDtcbiAgfVxuICByZXR1cm4gZW50cnkuc2l6ZTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gdmVyaWZ5Q29tcGFjdE1vZGUocGFja2FnZU5hbWU6IHN0cmluZykge1xuICBsZXQgbWFuaWZlc3Q6IFBhY2thZ2VNYW5pZmVzdDtcblxuICB0cnkge1xuICAgIG1hbmlmZXN0ID0gYXdhaXQgZ2V0UGFja2FnZU1hbmlmZXN0KHBhY2thZ2VOYW1lKTtcbiAgfSBjYXRjaCB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYHBrZy1wci1uZXcgY2Fubm90IHJlc29sdmUgJHtwYWNrYWdlTmFtZX0gZnJvbSBucG0uIC0tY29tcGFjdCBmbGFnIGRlcGVuZHMgb24gdGhlIHBhY2thZ2UgYmVpbmcgYXZhaWxhYmxlIGluIG5wbS5cbk1ha2Ugc3VyZSB0byBoYXZlIHlvdXIgcGFja2FnZSBvbiBucG0gZmlyc3QuYCxcbiAgICApO1xuICB9XG5cbiAgY29uc3QgaW5zdHJ1Y3Rpb24gPSBgTWFrZSBzdXJlIHRvIGNvbmZpZ3VyZSB0aGUgJ3JlcG9zaXRvcnknIC8gJ3JlcG9zaXRvcnkudXJsJyBmaWVsZCBpbiBpdHMgcGFja2FnZS5qc29uIHByb3Blcmx5LlxuU2VlIGh0dHBzOi8vZG9jcy5ucG1qcy5jb20vY2xpL3YxMC9jb25maWd1cmluZy1ucG0vcGFja2FnZS1qc29uI3JlcG9zaXRvcnkgZm9yIGRldGFpbHMuYDtcblxuICBjb25zdCByZXBvc2l0b3J5ID0gZXh0cmFjdFJlcG9zaXRvcnkobWFuaWZlc3QpO1xuICBpZiAoIXJlcG9zaXRvcnkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgcGtnLXByLW5ldyBjYW5ub3QgZXh0cmFjdCB0aGUgcmVwb3NpdG9yeSBsaW5rIGZyb20gdGhlICR7cGFja2FnZU5hbWV9IG1hbmlmZXN0LiAtLWNvbXBhY3QgZmxhZyByZXF1aXJlcyB0aGUgbGluayB0byBiZSBwcmVzZW50LlxuJHtpbnN0cnVjdGlvbn1gLFxuICAgICk7XG4gIH1cblxuICBjb25zdCBtYXRjaCA9IGV4dHJhY3RPd25lckFuZFJlcG8ocmVwb3NpdG9yeSk7XG4gIGlmICghbWF0Y2gpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgcGtnLXByLW5ldyBjYW5ub3QgZXh0cmFjdCB0aGUgb3duZXIgYW5kIHJlcG8gbmFtZXMgZnJvbSB0aGUgJHtwYWNrYWdlTmFtZX0gcmVwb3NpdG9yeSBsaW5rOiAke3JlcG9zaXRvcnl9LiAtLWNvbXBhY3QgZmxhZyByZXF1aXJlcyB0aGVzZSBuYW1lcy5cbiR7aW5zdHJ1Y3Rpb259YCxcbiAgICApO1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHRyeVJlYWRGaWxlKHA6IHN0cmluZykge1xuICB0cnkge1xuICAgIHJldHVybiBhd2FpdCBmcy5yZWFkRmlsZShwLCBcInV0ZjhcIik7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJlYWRQYWNrYWdlSnNvbihwOiBzdHJpbmcpIHtcbiAgY29uc3QgY29udGVudHMgPSBhd2FpdCB0cnlSZWFkRmlsZShwKTtcbiAgaWYgKGNvbnRlbnRzID09PSBudWxsKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgdHJ5IHtcbiAgICByZXR1cm4gcGFyc2VQYWNrYWdlSnNvbihjb250ZW50cyk7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbmZ1bmN0aW9uIHBhcnNlUGFja2FnZUpzb24oY29udGVudHM6IHN0cmluZykge1xuICB0cnkge1xuICAgIHJldHVybiBKU09OLnBhcnNlKGNvbnRlbnRzKSBhcyBQYWNrYWdlSnNvbjtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cbiIsICJjb25zdCBkZWZhdWx0cyA9IE9iamVjdC5mcmVlemUoe1xuICBpZ25vcmVVbmtub3duOiBmYWxzZSxcbiAgcmVzcGVjdFR5cGU6IGZhbHNlLFxuICByZXNwZWN0RnVuY3Rpb25OYW1lczogZmFsc2UsXG4gIHJlc3BlY3RGdW5jdGlvblByb3BlcnRpZXM6IGZhbHNlLFxuICB1bm9yZGVyZWRPYmplY3RzOiB0cnVlLFxuICB1bm9yZGVyZWRBcnJheXM6IGZhbHNlLFxuICB1bm9yZGVyZWRTZXRzOiBmYWxzZSxcbiAgZXhjbHVkZUtleXM6IHZvaWQgMCxcbiAgZXhjbHVkZVZhbHVlczogdm9pZCAwLFxuICByZXBsYWNlcjogdm9pZCAwXG59KTtcbmZ1bmN0aW9uIG9iamVjdEhhc2gob2JqZWN0LCBvcHRpb25zKSB7XG4gIGlmIChvcHRpb25zKSB7XG4gICAgb3B0aW9ucyA9IHsgLi4uZGVmYXVsdHMsIC4uLm9wdGlvbnMgfTtcbiAgfSBlbHNlIHtcbiAgICBvcHRpb25zID0gZGVmYXVsdHM7XG4gIH1cbiAgY29uc3QgaGFzaGVyID0gY3JlYXRlSGFzaGVyKG9wdGlvbnMpO1xuICBoYXNoZXIuZGlzcGF0Y2gob2JqZWN0KTtcbiAgcmV0dXJuIGhhc2hlci50b1N0cmluZygpO1xufVxuY29uc3QgZGVmYXVsdFByb3RvdHlwZXNLZXlzID0gT2JqZWN0LmZyZWV6ZShbXG4gIFwicHJvdG90eXBlXCIsXG4gIFwiX19wcm90b19fXCIsXG4gIFwiY29uc3RydWN0b3JcIlxuXSk7XG5mdW5jdGlvbiBjcmVhdGVIYXNoZXIob3B0aW9ucykge1xuICBsZXQgYnVmZiA9IFwiXCI7XG4gIGxldCBjb250ZXh0ID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTtcbiAgY29uc3Qgd3JpdGUgPSAoc3RyKSA9PiB7XG4gICAgYnVmZiArPSBzdHI7XG4gIH07XG4gIHJldHVybiB7XG4gICAgdG9TdHJpbmcoKSB7XG4gICAgICByZXR1cm4gYnVmZjtcbiAgICB9LFxuICAgIGdldENvbnRleHQoKSB7XG4gICAgICByZXR1cm4gY29udGV4dDtcbiAgICB9LFxuICAgIGRpc3BhdGNoKHZhbHVlKSB7XG4gICAgICBpZiAob3B0aW9ucy5yZXBsYWNlcikge1xuICAgICAgICB2YWx1ZSA9IG9wdGlvbnMucmVwbGFjZXIodmFsdWUpO1xuICAgICAgfVxuICAgICAgY29uc3QgdHlwZSA9IHZhbHVlID09PSBudWxsID8gXCJudWxsXCIgOiB0eXBlb2YgdmFsdWU7XG4gICAgICByZXR1cm4gdGhpc1t0eXBlXSh2YWx1ZSk7XG4gICAgfSxcbiAgICBvYmplY3Qob2JqZWN0KSB7XG4gICAgICBpZiAob2JqZWN0ICYmIHR5cGVvZiBvYmplY3QudG9KU09OID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub2JqZWN0KG9iamVjdC50b0pTT04oKSk7XG4gICAgICB9XG4gICAgICBjb25zdCBvYmpTdHJpbmcgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqZWN0KTtcbiAgICAgIGxldCBvYmpUeXBlID0gXCJcIjtcbiAgICAgIGNvbnN0IG9iamVjdExlbmd0aCA9IG9ialN0cmluZy5sZW5ndGg7XG4gICAgICBpZiAob2JqZWN0TGVuZ3RoIDwgMTApIHtcbiAgICAgICAgb2JqVHlwZSA9IFwidW5rbm93bjpbXCIgKyBvYmpTdHJpbmcgKyBcIl1cIjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG9ialR5cGUgPSBvYmpTdHJpbmcuc2xpY2UoOCwgb2JqZWN0TGVuZ3RoIC0gMSk7XG4gICAgICB9XG4gICAgICBvYmpUeXBlID0gb2JqVHlwZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgbGV0IG9iamVjdE51bWJlciA9IG51bGw7XG4gICAgICBpZiAoKG9iamVjdE51bWJlciA9IGNvbnRleHQuZ2V0KG9iamVjdCkpID09PSB2b2lkIDApIHtcbiAgICAgICAgY29udGV4dC5zZXQob2JqZWN0LCBjb250ZXh0LnNpemUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2goXCJbQ0lSQ1VMQVI6XCIgKyBvYmplY3ROdW1iZXIgKyBcIl1cIik7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIEJ1ZmZlciAhPT0gXCJ1bmRlZmluZWRcIiAmJiBCdWZmZXIuaXNCdWZmZXIgJiYgQnVmZmVyLmlzQnVmZmVyKG9iamVjdCkpIHtcbiAgICAgICAgd3JpdGUoXCJidWZmZXI6XCIpO1xuICAgICAgICByZXR1cm4gd3JpdGUob2JqZWN0LnRvU3RyaW5nKFwidXRmOFwiKSk7XG4gICAgICB9XG4gICAgICBpZiAob2JqVHlwZSAhPT0gXCJvYmplY3RcIiAmJiBvYmpUeXBlICE9PSBcImZ1bmN0aW9uXCIgJiYgb2JqVHlwZSAhPT0gXCJhc3luY2Z1bmN0aW9uXCIpIHtcbiAgICAgICAgaWYgKHRoaXNbb2JqVHlwZV0pIHtcbiAgICAgICAgICB0aGlzW29ialR5cGVdKG9iamVjdCk7XG4gICAgICAgIH0gZWxzZSBpZiAoIW9wdGlvbnMuaWdub3JlVW5rbm93bikge1xuICAgICAgICAgIHRoaXMudW5rb3duKG9iamVjdCwgb2JqVHlwZSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxldCBrZXlzID0gT2JqZWN0LmtleXMob2JqZWN0KTtcbiAgICAgICAgaWYgKG9wdGlvbnMudW5vcmRlcmVkT2JqZWN0cykge1xuICAgICAgICAgIGtleXMgPSBrZXlzLnNvcnQoKTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgZXh0cmFLZXlzID0gW107XG4gICAgICAgIGlmIChvcHRpb25zLnJlc3BlY3RUeXBlICE9PSBmYWxzZSAmJiAhaXNOYXRpdmVGdW5jdGlvbihvYmplY3QpKSB7XG4gICAgICAgICAgZXh0cmFLZXlzID0gZGVmYXVsdFByb3RvdHlwZXNLZXlzO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zLmV4Y2x1ZGVLZXlzKSB7XG4gICAgICAgICAga2V5cyA9IGtleXMuZmlsdGVyKChrZXkpID0+IHtcbiAgICAgICAgICAgIHJldHVybiAhb3B0aW9ucy5leGNsdWRlS2V5cyhrZXkpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIGV4dHJhS2V5cyA9IGV4dHJhS2V5cy5maWx0ZXIoKGtleSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuICFvcHRpb25zLmV4Y2x1ZGVLZXlzKGtleSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgd3JpdGUoXCJvYmplY3Q6XCIgKyAoa2V5cy5sZW5ndGggKyBleHRyYUtleXMubGVuZ3RoKSArIFwiOlwiKTtcbiAgICAgICAgY29uc3QgZGlzcGF0Y2hGb3JLZXkgPSAoa2V5KSA9PiB7XG4gICAgICAgICAgdGhpcy5kaXNwYXRjaChrZXkpO1xuICAgICAgICAgIHdyaXRlKFwiOlwiKTtcbiAgICAgICAgICBpZiAoIW9wdGlvbnMuZXhjbHVkZVZhbHVlcykge1xuICAgICAgICAgICAgdGhpcy5kaXNwYXRjaChvYmplY3Rba2V5XSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHdyaXRlKFwiLFwiKTtcbiAgICAgICAgfTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgICAgICAgIGRpc3BhdGNoRm9yS2V5KGtleSk7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgZXh0cmFLZXlzKSB7XG4gICAgICAgICAgZGlzcGF0Y2hGb3JLZXkoa2V5KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgYXJyYXkoYXJyLCB1bm9yZGVyZWQpIHtcbiAgICAgIHVub3JkZXJlZCA9IHVub3JkZXJlZCA9PT0gdm9pZCAwID8gb3B0aW9ucy51bm9yZGVyZWRBcnJheXMgIT09IGZhbHNlIDogdW5vcmRlcmVkO1xuICAgICAgd3JpdGUoXCJhcnJheTpcIiArIGFyci5sZW5ndGggKyBcIjpcIik7XG4gICAgICBpZiAoIXVub3JkZXJlZCB8fCBhcnIubGVuZ3RoIDw9IDEpIHtcbiAgICAgICAgZm9yIChjb25zdCBlbnRyeSBvZiBhcnIpIHtcbiAgICAgICAgICB0aGlzLmRpc3BhdGNoKGVudHJ5KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCBjb250ZXh0QWRkaXRpb25zID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTtcbiAgICAgIGNvbnN0IGVudHJpZXMgPSBhcnIubWFwKChlbnRyeSkgPT4ge1xuICAgICAgICBjb25zdCBoYXNoZXIgPSBjcmVhdGVIYXNoZXIob3B0aW9ucyk7XG4gICAgICAgIGhhc2hlci5kaXNwYXRjaChlbnRyeSk7XG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIGhhc2hlci5nZXRDb250ZXh0KCkpIHtcbiAgICAgICAgICBjb250ZXh0QWRkaXRpb25zLnNldChrZXksIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaGFzaGVyLnRvU3RyaW5nKCk7XG4gICAgICB9KTtcbiAgICAgIGNvbnRleHQgPSBjb250ZXh0QWRkaXRpb25zO1xuICAgICAgZW50cmllcy5zb3J0KCk7XG4gICAgICByZXR1cm4gdGhpcy5hcnJheShlbnRyaWVzLCBmYWxzZSk7XG4gICAgfSxcbiAgICBkYXRlKGRhdGUpIHtcbiAgICAgIHJldHVybiB3cml0ZShcImRhdGU6XCIgKyBkYXRlLnRvSlNPTigpKTtcbiAgICB9LFxuICAgIHN5bWJvbChzeW0pIHtcbiAgICAgIHJldHVybiB3cml0ZShcInN5bWJvbDpcIiArIHN5bS50b1N0cmluZygpKTtcbiAgICB9LFxuICAgIHVua293bih2YWx1ZSwgdHlwZSkge1xuICAgICAgd3JpdGUodHlwZSk7XG4gICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHdyaXRlKFwiOlwiKTtcbiAgICAgIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUuZW50cmllcyA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFycmF5KFxuICAgICAgICAgIEFycmF5LmZyb20odmFsdWUuZW50cmllcygpKSxcbiAgICAgICAgICB0cnVlXG4gICAgICAgICAgLyogb3JkZXJlZCAqL1xuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sXG4gICAgZXJyb3IoZXJyKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJlcnJvcjpcIiArIGVyci50b1N0cmluZygpKTtcbiAgICB9LFxuICAgIGJvb2xlYW4oYm9vbCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwiYm9vbDpcIiArIGJvb2wpO1xuICAgIH0sXG4gICAgc3RyaW5nKHN0cmluZykge1xuICAgICAgd3JpdGUoXCJzdHJpbmc6XCIgKyBzdHJpbmcubGVuZ3RoICsgXCI6XCIpO1xuICAgICAgd3JpdGUoc3RyaW5nKTtcbiAgICB9LFxuICAgIGZ1bmN0aW9uKGZuKSB7XG4gICAgICB3cml0ZShcImZuOlwiKTtcbiAgICAgIGlmIChpc05hdGl2ZUZ1bmN0aW9uKGZuKSkge1xuICAgICAgICB0aGlzLmRpc3BhdGNoKFwiW25hdGl2ZV1cIik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmRpc3BhdGNoKGZuLnRvU3RyaW5nKCkpO1xuICAgICAgfVxuICAgICAgaWYgKG9wdGlvbnMucmVzcGVjdEZ1bmN0aW9uTmFtZXMgIT09IGZhbHNlKSB7XG4gICAgICAgIHRoaXMuZGlzcGF0Y2goXCJmdW5jdGlvbi1uYW1lOlwiICsgU3RyaW5nKGZuLm5hbWUpKTtcbiAgICAgIH1cbiAgICAgIGlmIChvcHRpb25zLnJlc3BlY3RGdW5jdGlvblByb3BlcnRpZXMpIHtcbiAgICAgICAgdGhpcy5vYmplY3QoZm4pO1xuICAgICAgfVxuICAgIH0sXG4gICAgbnVtYmVyKG51bWJlcikge1xuICAgICAgcmV0dXJuIHdyaXRlKFwibnVtYmVyOlwiICsgbnVtYmVyKTtcbiAgICB9LFxuICAgIHhtbCh4bWwpIHtcbiAgICAgIHJldHVybiB3cml0ZShcInhtbDpcIiArIHhtbC50b1N0cmluZygpKTtcbiAgICB9LFxuICAgIG51bGwoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJOdWxsXCIpO1xuICAgIH0sXG4gICAgdW5kZWZpbmVkKCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwiVW5kZWZpbmVkXCIpO1xuICAgIH0sXG4gICAgcmVnZXhwKHJlZ2V4KSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJyZWdleDpcIiArIHJlZ2V4LnRvU3RyaW5nKCkpO1xuICAgIH0sXG4gICAgdWludDhhcnJheShhcnIpIHtcbiAgICAgIHdyaXRlKFwidWludDhhcnJheTpcIik7XG4gICAgICByZXR1cm4gdGhpcy5kaXNwYXRjaChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcnIpKTtcbiAgICB9LFxuICAgIHVpbnQ4Y2xhbXBlZGFycmF5KGFycikge1xuICAgICAgd3JpdGUoXCJ1aW50OGNsYW1wZWRhcnJheTpcIik7XG4gICAgICByZXR1cm4gdGhpcy5kaXNwYXRjaChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcnIpKTtcbiAgICB9LFxuICAgIGludDhhcnJheShhcnIpIHtcbiAgICAgIHdyaXRlKFwiaW50OGFycmF5OlwiKTtcbiAgICAgIHJldHVybiB0aGlzLmRpc3BhdGNoKEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFycikpO1xuICAgIH0sXG4gICAgdWludDE2YXJyYXkoYXJyKSB7XG4gICAgICB3cml0ZShcInVpbnQxNmFycmF5OlwiKTtcbiAgICAgIHJldHVybiB0aGlzLmRpc3BhdGNoKEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFycikpO1xuICAgIH0sXG4gICAgaW50MTZhcnJheShhcnIpIHtcbiAgICAgIHdyaXRlKFwiaW50MTZhcnJheTpcIik7XG4gICAgICByZXR1cm4gdGhpcy5kaXNwYXRjaChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcnIpKTtcbiAgICB9LFxuICAgIHVpbnQzMmFycmF5KGFycikge1xuICAgICAgd3JpdGUoXCJ1aW50MzJhcnJheTpcIik7XG4gICAgICByZXR1cm4gdGhpcy5kaXNwYXRjaChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcnIpKTtcbiAgICB9LFxuICAgIGludDMyYXJyYXkoYXJyKSB7XG4gICAgICB3cml0ZShcImludDMyYXJyYXk6XCIpO1xuICAgICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2goQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJyKSk7XG4gICAgfSxcbiAgICBmbG9hdDMyYXJyYXkoYXJyKSB7XG4gICAgICB3cml0ZShcImZsb2F0MzJhcnJheTpcIik7XG4gICAgICByZXR1cm4gdGhpcy5kaXNwYXRjaChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcnIpKTtcbiAgICB9LFxuICAgIGZsb2F0NjRhcnJheShhcnIpIHtcbiAgICAgIHdyaXRlKFwiZmxvYXQ2NGFycmF5OlwiKTtcbiAgICAgIHJldHVybiB0aGlzLmRpc3BhdGNoKEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFycikpO1xuICAgIH0sXG4gICAgYXJyYXlidWZmZXIoYXJyKSB7XG4gICAgICB3cml0ZShcImFycmF5YnVmZmVyOlwiKTtcbiAgICAgIHJldHVybiB0aGlzLmRpc3BhdGNoKG5ldyBVaW50OEFycmF5KGFycikpO1xuICAgIH0sXG4gICAgdXJsKHVybCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwidXJsOlwiICsgdXJsLnRvU3RyaW5nKCkpO1xuICAgIH0sXG4gICAgbWFwKG1hcCkge1xuICAgICAgd3JpdGUoXCJtYXA6XCIpO1xuICAgICAgY29uc3QgYXJyID0gWy4uLm1hcF07XG4gICAgICByZXR1cm4gdGhpcy5hcnJheShhcnIsIG9wdGlvbnMudW5vcmRlcmVkU2V0cyAhPT0gZmFsc2UpO1xuICAgIH0sXG4gICAgc2V0KHNldCkge1xuICAgICAgd3JpdGUoXCJzZXQ6XCIpO1xuICAgICAgY29uc3QgYXJyID0gWy4uLnNldF07XG4gICAgICByZXR1cm4gdGhpcy5hcnJheShhcnIsIG9wdGlvbnMudW5vcmRlcmVkU2V0cyAhPT0gZmFsc2UpO1xuICAgIH0sXG4gICAgZmlsZShmaWxlKSB7XG4gICAgICB3cml0ZShcImZpbGU6XCIpO1xuICAgICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2goW2ZpbGUubmFtZSwgZmlsZS5zaXplLCBmaWxlLnR5cGUsIGZpbGUubGFzdE1vZGZpZWRdKTtcbiAgICB9LFxuICAgIGJsb2IoKSB7XG4gICAgICBpZiAob3B0aW9ucy5pZ25vcmVVbmtub3duKSB7XG4gICAgICAgIHJldHVybiB3cml0ZShcIltibG9iXVwiKTtcbiAgICAgIH1cbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0hhc2hpbmcgQmxvYiBvYmplY3RzIGlzIGN1cnJlbnRseSBub3Qgc3VwcG9ydGVkXFxuVXNlIFwib3B0aW9ucy5yZXBsYWNlclwiIG9yIFwib3B0aW9ucy5pZ25vcmVVbmtub3duXCJcXG4nXG4gICAgICApO1xuICAgIH0sXG4gICAgZG9td2luZG93KCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwiZG9td2luZG93XCIpO1xuICAgIH0sXG4gICAgYmlnaW50KG51bWJlcikge1xuICAgICAgcmV0dXJuIHdyaXRlKFwiYmlnaW50OlwiICsgbnVtYmVyLnRvU3RyaW5nKCkpO1xuICAgIH0sXG4gICAgLyogTm9kZS5qcyBzdGFuZGFyZCBuYXRpdmUgb2JqZWN0cyAqL1xuICAgIHByb2Nlc3MoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJwcm9jZXNzXCIpO1xuICAgIH0sXG4gICAgdGltZXIoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJ0aW1lclwiKTtcbiAgICB9LFxuICAgIHBpcGUoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJwaXBlXCIpO1xuICAgIH0sXG4gICAgdGNwKCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwidGNwXCIpO1xuICAgIH0sXG4gICAgdWRwKCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwidWRwXCIpO1xuICAgIH0sXG4gICAgdHR5KCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwidHR5XCIpO1xuICAgIH0sXG4gICAgc3RhdHdhdGNoZXIoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJzdGF0d2F0Y2hlclwiKTtcbiAgICB9LFxuICAgIHNlY3VyZWNvbnRleHQoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJzZWN1cmVjb250ZXh0XCIpO1xuICAgIH0sXG4gICAgY29ubmVjdGlvbigpIHtcbiAgICAgIHJldHVybiB3cml0ZShcImNvbm5lY3Rpb25cIik7XG4gICAgfSxcbiAgICB6bGliKCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwiemxpYlwiKTtcbiAgICB9LFxuICAgIGNvbnRleHQoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJjb250ZXh0XCIpO1xuICAgIH0sXG4gICAgbm9kZXNjcmlwdCgpIHtcbiAgICAgIHJldHVybiB3cml0ZShcIm5vZGVzY3JpcHRcIik7XG4gICAgfSxcbiAgICBodHRwcGFyc2VyKCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwiaHR0cHBhcnNlclwiKTtcbiAgICB9LFxuICAgIGRhdGF2aWV3KCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwiZGF0YXZpZXdcIik7XG4gICAgfSxcbiAgICBzaWduYWwoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJzaWduYWxcIik7XG4gICAgfSxcbiAgICBmc2V2ZW50KCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwiZnNldmVudFwiKTtcbiAgICB9LFxuICAgIHRsc3dyYXAoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJ0bHN3cmFwXCIpO1xuICAgIH1cbiAgfTtcbn1cbmNvbnN0IG5hdGl2ZUZ1bmMgPSBcIltuYXRpdmUgY29kZV0gfVwiO1xuY29uc3QgbmF0aXZlRnVuY0xlbmd0aCA9IG5hdGl2ZUZ1bmMubGVuZ3RoO1xuZnVuY3Rpb24gaXNOYXRpdmVGdW5jdGlvbihmKSB7XG4gIGlmICh0eXBlb2YgZiAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiBGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChmKS5zbGljZSgtbmF0aXZlRnVuY0xlbmd0aCkgPT09IG5hdGl2ZUZ1bmM7XG59XG5cbnZhciBfX2RlZlByb3AkMSA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eTtcbnZhciBfX2RlZk5vcm1hbFByb3AkMSA9IChvYmosIGtleSwgdmFsdWUpID0+IGtleSBpbiBvYmogPyBfX2RlZlByb3AkMShvYmosIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUsIHdyaXRhYmxlOiB0cnVlLCB2YWx1ZSB9KSA6IG9ialtrZXldID0gdmFsdWU7XG52YXIgX19wdWJsaWNGaWVsZCQxID0gKG9iaiwga2V5LCB2YWx1ZSkgPT4ge1xuICBfX2RlZk5vcm1hbFByb3AkMShvYmosIHR5cGVvZiBrZXkgIT09IFwic3ltYm9sXCIgPyBrZXkgKyBcIlwiIDoga2V5LCB2YWx1ZSk7XG4gIHJldHVybiB2YWx1ZTtcbn07XG5jbGFzcyBXb3JkQXJyYXkge1xuICBjb25zdHJ1Y3Rvcih3b3Jkcywgc2lnQnl0ZXMpIHtcbiAgICBfX3B1YmxpY0ZpZWxkJDEodGhpcywgXCJ3b3Jkc1wiKTtcbiAgICBfX3B1YmxpY0ZpZWxkJDEodGhpcywgXCJzaWdCeXRlc1wiKTtcbiAgICB3b3JkcyA9IHRoaXMud29yZHMgPSB3b3JkcyB8fCBbXTtcbiAgICB0aGlzLnNpZ0J5dGVzID0gc2lnQnl0ZXMgPT09IHZvaWQgMCA/IHdvcmRzLmxlbmd0aCAqIDQgOiBzaWdCeXRlcztcbiAgfVxuICB0b1N0cmluZyhlbmNvZGVyKSB7XG4gICAgcmV0dXJuIChlbmNvZGVyIHx8IEhleCkuc3RyaW5naWZ5KHRoaXMpO1xuICB9XG4gIGNvbmNhdCh3b3JkQXJyYXkpIHtcbiAgICB0aGlzLmNsYW1wKCk7XG4gICAgaWYgKHRoaXMuc2lnQnl0ZXMgJSA0KSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHdvcmRBcnJheS5zaWdCeXRlczsgaSsrKSB7XG4gICAgICAgIGNvbnN0IHRoYXRCeXRlID0gd29yZEFycmF5LndvcmRzW2kgPj4+IDJdID4+PiAyNCAtIGkgJSA0ICogOCAmIDI1NTtcbiAgICAgICAgdGhpcy53b3Jkc1t0aGlzLnNpZ0J5dGVzICsgaSA+Pj4gMl0gfD0gdGhhdEJ5dGUgPDwgMjQgLSAodGhpcy5zaWdCeXRlcyArIGkpICUgNCAqIDg7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgd29yZEFycmF5LnNpZ0J5dGVzOyBqICs9IDQpIHtcbiAgICAgICAgdGhpcy53b3Jkc1t0aGlzLnNpZ0J5dGVzICsgaiA+Pj4gMl0gPSB3b3JkQXJyYXkud29yZHNbaiA+Pj4gMl07XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuc2lnQnl0ZXMgKz0gd29yZEFycmF5LnNpZ0J5dGVzO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIGNsYW1wKCkge1xuICAgIHRoaXMud29yZHNbdGhpcy5zaWdCeXRlcyA+Pj4gMl0gJj0gNDI5NDk2NzI5NSA8PCAzMiAtIHRoaXMuc2lnQnl0ZXMgJSA0ICogODtcbiAgICB0aGlzLndvcmRzLmxlbmd0aCA9IE1hdGguY2VpbCh0aGlzLnNpZ0J5dGVzIC8gNCk7XG4gIH1cbiAgY2xvbmUoKSB7XG4gICAgcmV0dXJuIG5ldyBXb3JkQXJyYXkoWy4uLnRoaXMud29yZHNdKTtcbiAgfVxufVxuY29uc3QgSGV4ID0ge1xuICBzdHJpbmdpZnkod29yZEFycmF5KSB7XG4gICAgY29uc3QgaGV4Q2hhcnMgPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHdvcmRBcnJheS5zaWdCeXRlczsgaSsrKSB7XG4gICAgICBjb25zdCBiaXRlID0gd29yZEFycmF5LndvcmRzW2kgPj4+IDJdID4+PiAyNCAtIGkgJSA0ICogOCAmIDI1NTtcbiAgICAgIGhleENoYXJzLnB1c2goKGJpdGUgPj4+IDQpLnRvU3RyaW5nKDE2KSwgKGJpdGUgJiAxNSkudG9TdHJpbmcoMTYpKTtcbiAgICB9XG4gICAgcmV0dXJuIGhleENoYXJzLmpvaW4oXCJcIik7XG4gIH1cbn07XG5jb25zdCBCYXNlNjQgPSB7XG4gIHN0cmluZ2lmeSh3b3JkQXJyYXkpIHtcbiAgICBjb25zdCBrZXlTdHIgPSBcIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5XCI7XG4gICAgY29uc3QgYmFzZTY0Q2hhcnMgPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHdvcmRBcnJheS5zaWdCeXRlczsgaSArPSAzKSB7XG4gICAgICBjb25zdCBieXRlMSA9IHdvcmRBcnJheS53b3Jkc1tpID4+PiAyXSA+Pj4gMjQgLSBpICUgNCAqIDggJiAyNTU7XG4gICAgICBjb25zdCBieXRlMiA9IHdvcmRBcnJheS53b3Jkc1tpICsgMSA+Pj4gMl0gPj4+IDI0IC0gKGkgKyAxKSAlIDQgKiA4ICYgMjU1O1xuICAgICAgY29uc3QgYnl0ZTMgPSB3b3JkQXJyYXkud29yZHNbaSArIDIgPj4+IDJdID4+PiAyNCAtIChpICsgMikgJSA0ICogOCAmIDI1NTtcbiAgICAgIGNvbnN0IHRyaXBsZXQgPSBieXRlMSA8PCAxNiB8IGJ5dGUyIDw8IDggfCBieXRlMztcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgNCAmJiBpICogOCArIGogKiA2IDwgd29yZEFycmF5LnNpZ0J5dGVzICogODsgaisrKSB7XG4gICAgICAgIGJhc2U2NENoYXJzLnB1c2goa2V5U3RyLmNoYXJBdCh0cmlwbGV0ID4+PiA2ICogKDMgLSBqKSAmIDYzKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBiYXNlNjRDaGFycy5qb2luKFwiXCIpO1xuICB9XG59O1xuY29uc3QgTGF0aW4xID0ge1xuICBwYXJzZShsYXRpbjFTdHIpIHtcbiAgICBjb25zdCBsYXRpbjFTdHJMZW5ndGggPSBsYXRpbjFTdHIubGVuZ3RoO1xuICAgIGNvbnN0IHdvcmRzID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsYXRpbjFTdHJMZW5ndGg7IGkrKykge1xuICAgICAgd29yZHNbaSA+Pj4gMl0gfD0gKGxhdGluMVN0ci5jaGFyQ29kZUF0KGkpICYgMjU1KSA8PCAyNCAtIGkgJSA0ICogODtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBXb3JkQXJyYXkod29yZHMsIGxhdGluMVN0ckxlbmd0aCk7XG4gIH1cbn07XG5jb25zdCBVdGY4ID0ge1xuICBwYXJzZSh1dGY4U3RyKSB7XG4gICAgcmV0dXJuIExhdGluMS5wYXJzZSh1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQodXRmOFN0cikpKTtcbiAgfVxufTtcbmNsYXNzIEJ1ZmZlcmVkQmxvY2tBbGdvcml0aG0ge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBfX3B1YmxpY0ZpZWxkJDEodGhpcywgXCJfZGF0YVwiLCBuZXcgV29yZEFycmF5KCkpO1xuICAgIF9fcHVibGljRmllbGQkMSh0aGlzLCBcIl9uRGF0YUJ5dGVzXCIsIDApO1xuICAgIF9fcHVibGljRmllbGQkMSh0aGlzLCBcIl9taW5CdWZmZXJTaXplXCIsIDApO1xuICAgIF9fcHVibGljRmllbGQkMSh0aGlzLCBcImJsb2NrU2l6ZVwiLCA1MTIgLyAzMik7XG4gIH1cbiAgcmVzZXQoKSB7XG4gICAgdGhpcy5fZGF0YSA9IG5ldyBXb3JkQXJyYXkoKTtcbiAgICB0aGlzLl9uRGF0YUJ5dGVzID0gMDtcbiAgfVxuICBfYXBwZW5kKGRhdGEpIHtcbiAgICBpZiAodHlwZW9mIGRhdGEgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIGRhdGEgPSBVdGY4LnBhcnNlKGRhdGEpO1xuICAgIH1cbiAgICB0aGlzLl9kYXRhLmNvbmNhdChkYXRhKTtcbiAgICB0aGlzLl9uRGF0YUJ5dGVzICs9IGRhdGEuc2lnQnl0ZXM7XG4gIH1cbiAgX2RvUHJvY2Vzc0Jsb2NrKF9kYXRhV29yZHMsIF9vZmZzZXQpIHtcbiAgfVxuICBfcHJvY2Vzcyhkb0ZsdXNoKSB7XG4gICAgbGV0IHByb2Nlc3NlZFdvcmRzO1xuICAgIGxldCBuQmxvY2tzUmVhZHkgPSB0aGlzLl9kYXRhLnNpZ0J5dGVzIC8gKHRoaXMuYmxvY2tTaXplICogNCk7XG4gICAgaWYgKGRvRmx1c2gpIHtcbiAgICAgIG5CbG9ja3NSZWFkeSA9IE1hdGguY2VpbChuQmxvY2tzUmVhZHkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBuQmxvY2tzUmVhZHkgPSBNYXRoLm1heCgobkJsb2Nrc1JlYWR5IHwgMCkgLSB0aGlzLl9taW5CdWZmZXJTaXplLCAwKTtcbiAgICB9XG4gICAgY29uc3QgbldvcmRzUmVhZHkgPSBuQmxvY2tzUmVhZHkgKiB0aGlzLmJsb2NrU2l6ZTtcbiAgICBjb25zdCBuQnl0ZXNSZWFkeSA9IE1hdGgubWluKG5Xb3Jkc1JlYWR5ICogNCwgdGhpcy5fZGF0YS5zaWdCeXRlcyk7XG4gICAgaWYgKG5Xb3Jkc1JlYWR5KSB7XG4gICAgICBmb3IgKGxldCBvZmZzZXQgPSAwOyBvZmZzZXQgPCBuV29yZHNSZWFkeTsgb2Zmc2V0ICs9IHRoaXMuYmxvY2tTaXplKSB7XG4gICAgICAgIHRoaXMuX2RvUHJvY2Vzc0Jsb2NrKHRoaXMuX2RhdGEud29yZHMsIG9mZnNldCk7XG4gICAgICB9XG4gICAgICBwcm9jZXNzZWRXb3JkcyA9IHRoaXMuX2RhdGEud29yZHMuc3BsaWNlKDAsIG5Xb3Jkc1JlYWR5KTtcbiAgICAgIHRoaXMuX2RhdGEuc2lnQnl0ZXMgLT0gbkJ5dGVzUmVhZHk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgV29yZEFycmF5KHByb2Nlc3NlZFdvcmRzLCBuQnl0ZXNSZWFkeSk7XG4gIH1cbn1cbmNsYXNzIEhhc2hlciBleHRlbmRzIEJ1ZmZlcmVkQmxvY2tBbGdvcml0aG0ge1xuICB1cGRhdGUobWVzc2FnZVVwZGF0ZSkge1xuICAgIHRoaXMuX2FwcGVuZChtZXNzYWdlVXBkYXRlKTtcbiAgICB0aGlzLl9wcm9jZXNzKCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgZmluYWxpemUobWVzc2FnZVVwZGF0ZSkge1xuICAgIGlmIChtZXNzYWdlVXBkYXRlKSB7XG4gICAgICB0aGlzLl9hcHBlbmQobWVzc2FnZVVwZGF0ZSk7XG4gICAgfVxuICB9XG59XG5cbnZhciBfX2RlZlByb3AgPSBPYmplY3QuZGVmaW5lUHJvcGVydHk7XG52YXIgX19kZWZOb3JtYWxQcm9wID0gKG9iaiwga2V5LCB2YWx1ZSkgPT4ga2V5IGluIG9iaiA/IF9fZGVmUHJvcChvYmosIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUsIHdyaXRhYmxlOiB0cnVlLCB2YWx1ZSB9KSA6IG9ialtrZXldID0gdmFsdWU7XG52YXIgX19wdWJsaWNGaWVsZCA9IChvYmosIGtleSwgdmFsdWUpID0+IHtcbiAgX19kZWZOb3JtYWxQcm9wKG9iaiwgdHlwZW9mIGtleSAhPT0gXCJzeW1ib2xcIiA/IGtleSArIFwiXCIgOiBrZXksIHZhbHVlKTtcbiAgcmV0dXJuIHZhbHVlO1xufTtcbmNvbnN0IEggPSBbXG4gIDE3NzkwMzM3MDMsXG4gIC0xMTUwODMzMDE5LFxuICAxMDEzOTA0MjQyLFxuICAtMTUyMTQ4NjUzNCxcbiAgMTM1OTg5MzExOSxcbiAgLTE2OTQxNDQzNzIsXG4gIDUyODczNDYzNSxcbiAgMTU0MTQ1OTIyNVxuXTtcbmNvbnN0IEsgPSBbXG4gIDExMTYzNTI0MDgsXG4gIDE4OTk0NDc0NDEsXG4gIC0xMjQ1NjQzODI1LFxuICAtMzczOTU3NzIzLFxuICA5NjE5ODcxNjMsXG4gIDE1MDg5NzA5OTMsXG4gIC0xODQxMzMxNTQ4LFxuICAtMTQyNDIwNDA3NSxcbiAgLTY3MDU4NjIxNixcbiAgMzEwNTk4NDAxLFxuICA2MDcyMjUyNzgsXG4gIDE0MjY4ODE5ODcsXG4gIDE5MjUwNzgzODgsXG4gIC0yMTMyODg5MDkwLFxuICAtMTY4MDA3OTE5MyxcbiAgLTEwNDY3NDQ3MTYsXG4gIC00NTk1NzY4OTUsXG4gIC0yNzI3NDI1MjIsXG4gIDI2NDM0NzA3OCxcbiAgNjA0ODA3NjI4LFxuICA3NzAyNTU5ODMsXG4gIDEyNDkxNTAxMjIsXG4gIDE1NTUwODE2OTIsXG4gIDE5OTYwNjQ5ODYsXG4gIC0xNzQwNzQ2NDE0LFxuICAtMTQ3MzEzMjk0NyxcbiAgLTEzNDE5NzA0ODgsXG4gIC0xMDg0NjUzNjI1LFxuICAtOTU4Mzk1NDA1LFxuICAtNzEwNDM4NTg1LFxuICAxMTM5MjY5OTMsXG4gIDMzODI0MTg5NSxcbiAgNjY2MzA3MjA1LFxuICA3NzM1Mjk5MTIsXG4gIDEyOTQ3NTczNzIsXG4gIDEzOTYxODIyOTEsXG4gIDE2OTUxODM3MDAsXG4gIDE5ODY2NjEwNTEsXG4gIC0yMTE3OTQwOTQ2LFxuICAtMTgzODAxMTI1OSxcbiAgLTE1NjQ0ODEzNzUsXG4gIC0xNDc0NjY0ODg1LFxuICAtMTAzNTIzNjQ5NixcbiAgLTk0OTIwMjUyNSxcbiAgLTc3ODkwMTQ3OSxcbiAgLTY5NDYxNDQ5MixcbiAgLTIwMDM5NTM4NyxcbiAgMjc1NDIzMzQ0LFxuICA0MzAyMjc3MzQsXG4gIDUwNjk0ODYxNixcbiAgNjU5MDYwNTU2LFxuICA4ODM5OTc4NzcsXG4gIDk1ODEzOTU3MSxcbiAgMTMyMjgyMjIxOCxcbiAgMTUzNzAwMjA2MyxcbiAgMTc0Nzg3Mzc3OSxcbiAgMTk1NTU2MjIyMixcbiAgMjAyNDEwNDgxNSxcbiAgLTIwNjcyMzY4NDQsXG4gIC0xOTMzMTE0ODcyLFxuICAtMTg2NjUzMDgyMixcbiAgLTE1MzgyMzMxMDksXG4gIC0xMDkwOTM1ODE3LFxuICAtOTY1NjQxOTk4XG5dO1xuY29uc3QgVyA9IFtdO1xuY2xhc3MgU0hBMjU2IGV4dGVuZHMgSGFzaGVyIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoLi4uYXJndW1lbnRzKTtcbiAgICBfX3B1YmxpY0ZpZWxkKHRoaXMsIFwiX2hhc2hcIiwgbmV3IFdvcmRBcnJheShbLi4uSF0pKTtcbiAgfVxuICAvKipcbiAgICogUmVzZXRzIHRoZSBpbnRlcm5hbCBzdGF0ZSBvZiB0aGUgaGFzaCBvYmplY3QgdG8gaW5pdGlhbCB2YWx1ZXMuXG4gICAqL1xuICByZXNldCgpIHtcbiAgICBzdXBlci5yZXNldCgpO1xuICAgIHRoaXMuX2hhc2ggPSBuZXcgV29yZEFycmF5KFsuLi5IXSk7XG4gIH1cbiAgX2RvUHJvY2Vzc0Jsb2NrKE0sIG9mZnNldCkge1xuICAgIGNvbnN0IEgyID0gdGhpcy5faGFzaC53b3JkcztcbiAgICBsZXQgYSA9IEgyWzBdO1xuICAgIGxldCBiID0gSDJbMV07XG4gICAgbGV0IGMgPSBIMlsyXTtcbiAgICBsZXQgZCA9IEgyWzNdO1xuICAgIGxldCBlID0gSDJbNF07XG4gICAgbGV0IGYgPSBIMls1XTtcbiAgICBsZXQgZyA9IEgyWzZdO1xuICAgIGxldCBoID0gSDJbN107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCA2NDsgaSsrKSB7XG4gICAgICBpZiAoaSA8IDE2KSB7XG4gICAgICAgIFdbaV0gPSBNW29mZnNldCArIGldIHwgMDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGdhbW1hMHggPSBXW2kgLSAxNV07XG4gICAgICAgIGNvbnN0IGdhbW1hMCA9IChnYW1tYTB4IDw8IDI1IHwgZ2FtbWEweCA+Pj4gNykgXiAoZ2FtbWEweCA8PCAxNCB8IGdhbW1hMHggPj4+IDE4KSBeIGdhbW1hMHggPj4+IDM7XG4gICAgICAgIGNvbnN0IGdhbW1hMXggPSBXW2kgLSAyXTtcbiAgICAgICAgY29uc3QgZ2FtbWExID0gKGdhbW1hMXggPDwgMTUgfCBnYW1tYTF4ID4+PiAxNykgXiAoZ2FtbWExeCA8PCAxMyB8IGdhbW1hMXggPj4+IDE5KSBeIGdhbW1hMXggPj4+IDEwO1xuICAgICAgICBXW2ldID0gZ2FtbWEwICsgV1tpIC0gN10gKyBnYW1tYTEgKyBXW2kgLSAxNl07XG4gICAgICB9XG4gICAgICBjb25zdCBjaCA9IGUgJiBmIF4gfmUgJiBnO1xuICAgICAgY29uc3QgbWFqID0gYSAmIGIgXiBhICYgYyBeIGIgJiBjO1xuICAgICAgY29uc3Qgc2lnbWEwID0gKGEgPDwgMzAgfCBhID4+PiAyKSBeIChhIDw8IDE5IHwgYSA+Pj4gMTMpIF4gKGEgPDwgMTAgfCBhID4+PiAyMik7XG4gICAgICBjb25zdCBzaWdtYTEgPSAoZSA8PCAyNiB8IGUgPj4+IDYpIF4gKGUgPDwgMjEgfCBlID4+PiAxMSkgXiAoZSA8PCA3IHwgZSA+Pj4gMjUpO1xuICAgICAgY29uc3QgdDEgPSBoICsgc2lnbWExICsgY2ggKyBLW2ldICsgV1tpXTtcbiAgICAgIGNvbnN0IHQyID0gc2lnbWEwICsgbWFqO1xuICAgICAgaCA9IGc7XG4gICAgICBnID0gZjtcbiAgICAgIGYgPSBlO1xuICAgICAgZSA9IGQgKyB0MSB8IDA7XG4gICAgICBkID0gYztcbiAgICAgIGMgPSBiO1xuICAgICAgYiA9IGE7XG4gICAgICBhID0gdDEgKyB0MiB8IDA7XG4gICAgfVxuICAgIEgyWzBdID0gSDJbMF0gKyBhIHwgMDtcbiAgICBIMlsxXSA9IEgyWzFdICsgYiB8IDA7XG4gICAgSDJbMl0gPSBIMlsyXSArIGMgfCAwO1xuICAgIEgyWzNdID0gSDJbM10gKyBkIHwgMDtcbiAgICBIMls0XSA9IEgyWzRdICsgZSB8IDA7XG4gICAgSDJbNV0gPSBIMls1XSArIGYgfCAwO1xuICAgIEgyWzZdID0gSDJbNl0gKyBnIHwgMDtcbiAgICBIMls3XSA9IEgyWzddICsgaCB8IDA7XG4gIH1cbiAgLyoqXG4gICAqIEZpbmlzaGVzIHRoZSBoYXNoIGNhbGN1bGF0aW9uIGFuZCByZXR1cm5zIHRoZSBoYXNoIGFzIGEgV29yZEFycmF5LlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbWVzc2FnZVVwZGF0ZSAtIEFkZGl0aW9uYWwgbWVzc2FnZSBjb250ZW50IHRvIGluY2x1ZGUgaW4gdGhlIGhhc2guXG4gICAqIEByZXR1cm5zIHtXb3JkQXJyYXl9IFRoZSBmaW5hbGlzZWQgaGFzaCBhcyBhIFdvcmRBcnJheS5cbiAgICovXG4gIGZpbmFsaXplKG1lc3NhZ2VVcGRhdGUpIHtcbiAgICBzdXBlci5maW5hbGl6ZShtZXNzYWdlVXBkYXRlKTtcbiAgICBjb25zdCBuQml0c1RvdGFsID0gdGhpcy5fbkRhdGFCeXRlcyAqIDg7XG4gICAgY29uc3QgbkJpdHNMZWZ0ID0gdGhpcy5fZGF0YS5zaWdCeXRlcyAqIDg7XG4gICAgdGhpcy5fZGF0YS53b3Jkc1tuQml0c0xlZnQgPj4+IDVdIHw9IDEyOCA8PCAyNCAtIG5CaXRzTGVmdCAlIDMyO1xuICAgIHRoaXMuX2RhdGEud29yZHNbKG5CaXRzTGVmdCArIDY0ID4+PiA5IDw8IDQpICsgMTRdID0gTWF0aC5mbG9vcihcbiAgICAgIG5CaXRzVG90YWwgLyA0Mjk0OTY3Mjk2XG4gICAgKTtcbiAgICB0aGlzLl9kYXRhLndvcmRzWyhuQml0c0xlZnQgKyA2NCA+Pj4gOSA8PCA0KSArIDE1XSA9IG5CaXRzVG90YWw7XG4gICAgdGhpcy5fZGF0YS5zaWdCeXRlcyA9IHRoaXMuX2RhdGEud29yZHMubGVuZ3RoICogNDtcbiAgICB0aGlzLl9wcm9jZXNzKCk7XG4gICAgcmV0dXJuIHRoaXMuX2hhc2g7XG4gIH1cbn1cbmZ1bmN0aW9uIHNoYTI1NihtZXNzYWdlKSB7XG4gIHJldHVybiBuZXcgU0hBMjU2KCkuZmluYWxpemUobWVzc2FnZSkudG9TdHJpbmcoKTtcbn1cbmZ1bmN0aW9uIHNoYTI1NmJhc2U2NChtZXNzYWdlKSB7XG4gIHJldHVybiBuZXcgU0hBMjU2KCkuZmluYWxpemUobWVzc2FnZSkudG9TdHJpbmcoQmFzZTY0KTtcbn1cblxuZnVuY3Rpb24gaGFzaChvYmplY3QsIG9wdGlvbnMgPSB7fSkge1xuICBjb25zdCBoYXNoZWQgPSB0eXBlb2Ygb2JqZWN0ID09PSBcInN0cmluZ1wiID8gb2JqZWN0IDogb2JqZWN0SGFzaChvYmplY3QsIG9wdGlvbnMpO1xuICByZXR1cm4gc2hhMjU2YmFzZTY0KGhhc2hlZCkuc2xpY2UoMCwgMTApO1xufVxuXG5mdW5jdGlvbiBtdXJtdXJIYXNoKGtleSwgc2VlZCA9IDApIHtcbiAgaWYgKHR5cGVvZiBrZXkgPT09IFwic3RyaW5nXCIpIHtcbiAgICBrZXkgPSBjcmVhdGVCdWZmZXIoa2V5KTtcbiAgfVxuICBsZXQgaSA9IDA7XG4gIGxldCBoMSA9IHNlZWQ7XG4gIGxldCBrMTtcbiAgbGV0IGgxYjtcbiAgY29uc3QgcmVtYWluZGVyID0ga2V5Lmxlbmd0aCAmIDM7XG4gIGNvbnN0IGJ5dGVzID0ga2V5Lmxlbmd0aCAtIHJlbWFpbmRlcjtcbiAgY29uc3QgYzEgPSAzNDMyOTE4MzUzO1xuICBjb25zdCBjMiA9IDQ2MTg0NTkwNztcbiAgd2hpbGUgKGkgPCBieXRlcykge1xuICAgIGsxID0ga2V5W2ldICYgMjU1IHwgKGtleVsrK2ldICYgMjU1KSA8PCA4IHwgKGtleVsrK2ldICYgMjU1KSA8PCAxNiB8IChrZXlbKytpXSAmIDI1NSkgPDwgMjQ7XG4gICAgKytpO1xuICAgIGsxID0gKGsxICYgNjU1MzUpICogYzEgKyAoKChrMSA+Pj4gMTYpICogYzEgJiA2NTUzNSkgPDwgMTYpICYgNDI5NDk2NzI5NTtcbiAgICBrMSA9IGsxIDw8IDE1IHwgazEgPj4+IDE3O1xuICAgIGsxID0gKGsxICYgNjU1MzUpICogYzIgKyAoKChrMSA+Pj4gMTYpICogYzIgJiA2NTUzNSkgPDwgMTYpICYgNDI5NDk2NzI5NTtcbiAgICBoMSBePSBrMTtcbiAgICBoMSA9IGgxIDw8IDEzIHwgaDEgPj4+IDE5O1xuICAgIGgxYiA9IChoMSAmIDY1NTM1KSAqIDUgKyAoKChoMSA+Pj4gMTYpICogNSAmIDY1NTM1KSA8PCAxNikgJiA0Mjk0OTY3Mjk1O1xuICAgIGgxID0gKGgxYiAmIDY1NTM1KSArIDI3NDkyICsgKCgoaDFiID4+PiAxNikgKyA1ODk2NCAmIDY1NTM1KSA8PCAxNik7XG4gIH1cbiAgazEgPSAwO1xuICBzd2l0Y2ggKHJlbWFpbmRlcikge1xuICAgIGNhc2UgMzoge1xuICAgICAgazEgXj0gKGtleVtpICsgMl0gJiAyNTUpIDw8IDE2O1xuICAgIH1cbiAgICBjYXNlIDI6IHtcbiAgICAgIGsxIF49IChrZXlbaSArIDFdICYgMjU1KSA8PCA4O1xuICAgIH1cbiAgICBjYXNlIDE6IHtcbiAgICAgIGsxIF49IGtleVtpXSAmIDI1NTtcbiAgICAgIGsxID0gKGsxICYgNjU1MzUpICogYzEgKyAoKChrMSA+Pj4gMTYpICogYzEgJiA2NTUzNSkgPDwgMTYpICYgNDI5NDk2NzI5NTtcbiAgICAgIGsxID0gazEgPDwgMTUgfCBrMSA+Pj4gMTc7XG4gICAgICBrMSA9IChrMSAmIDY1NTM1KSAqIGMyICsgKCgoazEgPj4+IDE2KSAqIGMyICYgNjU1MzUpIDw8IDE2KSAmIDQyOTQ5NjcyOTU7XG4gICAgICBoMSBePSBrMTtcbiAgICB9XG4gIH1cbiAgaDEgXj0ga2V5Lmxlbmd0aDtcbiAgaDEgXj0gaDEgPj4+IDE2O1xuICBoMSA9IChoMSAmIDY1NTM1KSAqIDIyNDY4MjI1MDcgKyAoKChoMSA+Pj4gMTYpICogMjI0NjgyMjUwNyAmIDY1NTM1KSA8PCAxNikgJiA0Mjk0OTY3Mjk1O1xuICBoMSBePSBoMSA+Pj4gMTM7XG4gIGgxID0gKGgxICYgNjU1MzUpICogMzI2NjQ4OTkwOSArICgoKGgxID4+PiAxNikgKiAzMjY2NDg5OTA5ICYgNjU1MzUpIDw8IDE2KSAmIDQyOTQ5NjcyOTU7XG4gIGgxIF49IGgxID4+PiAxNjtcbiAgcmV0dXJuIGgxID4+PiAwO1xufVxuZnVuY3Rpb24gY3JlYXRlQnVmZmVyKHZhbCkge1xuICByZXR1cm4gbmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKHZhbCk7XG59XG5cbmZ1bmN0aW9uIGlzRXF1YWwob2JqZWN0MSwgb2JqZWN0MiwgaGFzaE9wdGlvbnMgPSB7fSkge1xuICBpZiAob2JqZWN0MSA9PT0gb2JqZWN0Mikge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIGlmIChvYmplY3RIYXNoKG9iamVjdDEsIGhhc2hPcHRpb25zKSA9PT0gb2JqZWN0SGFzaChvYmplY3QyLCBoYXNoT3B0aW9ucykpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIGRpZmYob2JqMSwgb2JqMiwgb3B0cyA9IHt9KSB7XG4gIGNvbnN0IGgxID0gX3RvSGFzaGVkT2JqZWN0KG9iajEsIG9wdHMpO1xuICBjb25zdCBoMiA9IF90b0hhc2hlZE9iamVjdChvYmoyLCBvcHRzKTtcbiAgcmV0dXJuIF9kaWZmKGgxLCBoMiwgb3B0cyk7XG59XG5mdW5jdGlvbiBfZGlmZihoMSwgaDIsIG9wdHMgPSB7fSkge1xuICBjb25zdCBkaWZmcyA9IFtdO1xuICBjb25zdCBhbGxQcm9wcyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KFtcbiAgICAuLi5PYmplY3Qua2V5cyhoMS5wcm9wcyB8fCB7fSksXG4gICAgLi4uT2JqZWN0LmtleXMoaDIucHJvcHMgfHwge30pXG4gIF0pO1xuICBpZiAoaDEucHJvcHMgJiYgaDIucHJvcHMpIHtcbiAgICBmb3IgKGNvbnN0IHByb3Agb2YgYWxsUHJvcHMpIHtcbiAgICAgIGNvbnN0IHAxID0gaDEucHJvcHNbcHJvcF07XG4gICAgICBjb25zdCBwMiA9IGgyLnByb3BzW3Byb3BdO1xuICAgICAgaWYgKHAxICYmIHAyKSB7XG4gICAgICAgIGRpZmZzLnB1c2goLi4uX2RpZmYoaDEucHJvcHM/Lltwcm9wXSwgaDIucHJvcHM/Lltwcm9wXSwgb3B0cykpO1xuICAgICAgfSBlbHNlIGlmIChwMSB8fCBwMikge1xuICAgICAgICBkaWZmcy5wdXNoKFxuICAgICAgICAgIG5ldyBEaWZmRW50cnkoKHAyIHx8IHAxKS5rZXksIHAxID8gXCJyZW1vdmVkXCIgOiBcImFkZGVkXCIsIHAyLCBwMSlcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgaWYgKGFsbFByb3BzLnNpemUgPT09IDAgJiYgaDEuaGFzaCAhPT0gaDIuaGFzaCkge1xuICAgIGRpZmZzLnB1c2gobmV3IERpZmZFbnRyeSgoaDIgfHwgaDEpLmtleSwgXCJjaGFuZ2VkXCIsIGgyLCBoMSkpO1xuICB9XG4gIHJldHVybiBkaWZmcztcbn1cbmZ1bmN0aW9uIF90b0hhc2hlZE9iamVjdChvYmosIG9wdHMsIGtleSA9IFwiXCIpIHtcbiAgaWYgKG9iaiAmJiB0eXBlb2Ygb2JqICE9PSBcIm9iamVjdFwiKSB7XG4gICAgcmV0dXJuIG5ldyBEaWZmSGFzaGVkT2JqZWN0KGtleSwgb2JqLCBvYmplY3RIYXNoKG9iaiwgb3B0cykpO1xuICB9XG4gIGNvbnN0IHByb3BzID0ge307XG4gIGNvbnN0IGhhc2hlcyA9IFtdO1xuICBmb3IgKGNvbnN0IF9rZXkgaW4gb2JqKSB7XG4gICAgcHJvcHNbX2tleV0gPSBfdG9IYXNoZWRPYmplY3QoXG4gICAgICBvYmpbX2tleV0sXG4gICAgICBvcHRzLFxuICAgICAga2V5ID8gYCR7a2V5fS4ke19rZXl9YCA6IF9rZXlcbiAgICApO1xuICAgIGhhc2hlcy5wdXNoKHByb3BzW19rZXldLmhhc2gpO1xuICB9XG4gIHJldHVybiBuZXcgRGlmZkhhc2hlZE9iamVjdChrZXksIG9iaiwgYHske2hhc2hlcy5qb2luKFwiOlwiKX19YCwgcHJvcHMpO1xufVxuY2xhc3MgRGlmZkVudHJ5IHtcbiAgY29uc3RydWN0b3Ioa2V5LCB0eXBlLCBuZXdWYWx1ZSwgb2xkVmFsdWUpIHtcbiAgICB0aGlzLmtleSA9IGtleTtcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIHRoaXMubmV3VmFsdWUgPSBuZXdWYWx1ZTtcbiAgICB0aGlzLm9sZFZhbHVlID0gb2xkVmFsdWU7XG4gIH1cbiAgdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMudG9KU09OKCk7XG4gIH1cbiAgdG9KU09OKCkge1xuICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XG4gICAgICBjYXNlIFwiYWRkZWRcIjoge1xuICAgICAgICByZXR1cm4gYEFkZGVkICAgXFxgJHt0aGlzLmtleX1cXGBgO1xuICAgICAgfVxuICAgICAgY2FzZSBcInJlbW92ZWRcIjoge1xuICAgICAgICByZXR1cm4gYFJlbW92ZWQgXFxgJHt0aGlzLmtleX1cXGBgO1xuICAgICAgfVxuICAgICAgY2FzZSBcImNoYW5nZWRcIjoge1xuICAgICAgICByZXR1cm4gYENoYW5nZWQgXFxgJHt0aGlzLmtleX1cXGAgZnJvbSBcXGAke3RoaXMub2xkVmFsdWU/LnRvU3RyaW5nKCkgfHwgXCItXCJ9XFxgIHRvIFxcYCR7dGhpcy5uZXdWYWx1ZS50b1N0cmluZygpfVxcYGA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5jbGFzcyBEaWZmSGFzaGVkT2JqZWN0IHtcbiAgY29uc3RydWN0b3Ioa2V5LCB2YWx1ZSwgaGFzaCwgcHJvcHMpIHtcbiAgICB0aGlzLmtleSA9IGtleTtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5oYXNoID0gaGFzaDtcbiAgICB0aGlzLnByb3BzID0gcHJvcHM7XG4gIH1cbiAgdG9TdHJpbmcoKSB7XG4gICAgaWYgKHRoaXMucHJvcHMpIHtcbiAgICAgIHJldHVybiBgeyR7T2JqZWN0LmtleXModGhpcy5wcm9wcykuam9pbihcIixcIil9fWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh0aGlzLnZhbHVlKTtcbiAgICB9XG4gIH1cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IGsgPSB0aGlzLmtleSB8fCBcIi5cIjtcbiAgICBpZiAodGhpcy5wcm9wcykge1xuICAgICAgcmV0dXJuIGAke2t9KHske09iamVjdC5rZXlzKHRoaXMucHJvcHMpLmpvaW4oXCIsXCIpfX0pYDtcbiAgICB9XG4gICAgcmV0dXJuIGAke2t9KCR7dGhpcy52YWx1ZX0pYDtcbiAgfVxufVxuXG5leHBvcnQgeyBkaWZmLCBoYXNoLCBpc0VxdWFsLCBtdXJtdXJIYXNoLCBvYmplY3RIYXNoLCBzaGEyNTYsIHNoYTI1NmJhc2U2NCB9O1xuIiwgImV4cG9ydCB7IGEgYXMgY29uc29sYSwgYyBhcyBjcmVhdGVDb25zb2xhLCBhIGFzIGRlZmF1bHQgfSBmcm9tICcuL3NoYXJlZC9jb25zb2xhLkQ0SkszUkNLLm1qcyc7XG5leHBvcnQgeyBDb25zb2xhLCBMb2dMZXZlbHMsIExvZ1R5cGVzIH0gZnJvbSAnLi9jb3JlLm1qcyc7XG5pbXBvcnQgJy4vc2hhcmVkL2NvbnNvbGEuQ3M1RmR0SEQubWpzJztcbmltcG9ydCAnbm9kZTpwcm9jZXNzJztcbmltcG9ydCAnLi9zaGFyZWQvY29uc29sYS5DQmk2Tm05cy5tanMnO1xuaW1wb3J0ICdub2RlOnR0eSc7XG5pbXBvcnQgJ25vZGU6dXRpbCc7XG5pbXBvcnQgJ25vZGU6cGF0aCc7XG4iLCAiZXhwb3J0IHsgYSBhcyBhbGlnbiwgYiBhcyBib3gsIGMgYXMgY2VudGVyQWxpZ24sIGUgYXMgY29sb3JpemUsIGQgYXMgY29sb3JzLCBnIGFzIGdldENvbG9yLCBsIGFzIGxlZnRBbGlnbiwgciBhcyByaWdodEFsaWduLCBzIGFzIHN0cmlwQW5zaSB9IGZyb20gJy4vc2hhcmVkL2NvbnNvbGEuQ0JpNk5tOXMubWpzJztcbmltcG9ydCAnbm9kZTp0dHknO1xuIiwgImltcG9ydCBjb25zb2xhIGZyb20gJ2NvbnNvbGEnO1xuaW1wb3J0IHsgY29sb3JzIH0gZnJvbSAnY29uc29sYS91dGlscyc7XG5cbmZ1bmN0aW9uIHRvQXJyYXkodmFsKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KHZhbCkpIHtcbiAgICByZXR1cm4gdmFsO1xuICB9XG4gIHJldHVybiB2YWwgPT09IHZvaWQgMCA/IFtdIDogW3ZhbF07XG59XG5mdW5jdGlvbiBmb3JtYXRMaW5lQ29sdW1ucyhsaW5lcywgbGluZVByZWZpeCA9IFwiXCIpIHtcbiAgY29uc3QgbWF4TGVuZ2ggPSBbXTtcbiAgZm9yIChjb25zdCBsaW5lIG9mIGxpbmVzKSB7XG4gICAgZm9yIChjb25zdCBbaSwgZWxlbWVudF0gb2YgbGluZS5lbnRyaWVzKCkpIHtcbiAgICAgIG1heExlbmdoW2ldID0gTWF0aC5tYXgobWF4TGVuZ2hbaV0gfHwgMCwgZWxlbWVudC5sZW5ndGgpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbGluZXMubWFwKFxuICAgIChsKSA9PiBsLm1hcChcbiAgICAgIChjLCBpKSA9PiBsaW5lUHJlZml4ICsgY1tpID09PSAwID8gXCJwYWRTdGFydFwiIDogXCJwYWRFbmRcIl0obWF4TGVuZ2hbaV0pXG4gICAgKS5qb2luKFwiICBcIilcbiAgKS5qb2luKFwiXFxuXCIpO1xufVxuZnVuY3Rpb24gcmVzb2x2ZVZhbHVlKGlucHV0KSB7XG4gIHJldHVybiB0eXBlb2YgaW5wdXQgPT09IFwiZnVuY3Rpb25cIiA/IGlucHV0KCkgOiBpbnB1dDtcbn1cbmNsYXNzIENMSUVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlLCBjb2RlKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gICAgdGhpcy5jb2RlID0gY29kZTtcbiAgICB0aGlzLm5hbWUgPSBcIkNMSUVycm9yXCI7XG4gIH1cbn1cblxuY29uc3QgTlVNQkVSX0NIQVJfUkUgPSAvXFxkLztcbmNvbnN0IFNUUl9TUExJVFRFUlMgPSBbXCItXCIsIFwiX1wiLCBcIi9cIiwgXCIuXCJdO1xuZnVuY3Rpb24gaXNVcHBlcmNhc2UoY2hhciA9IFwiXCIpIHtcbiAgaWYgKE5VTUJFUl9DSEFSX1JFLnRlc3QoY2hhcikpIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG4gIHJldHVybiBjaGFyICE9PSBjaGFyLnRvTG93ZXJDYXNlKCk7XG59XG5mdW5jdGlvbiBzcGxpdEJ5Q2FzZShzdHIsIHNlcGFyYXRvcnMpIHtcbiAgY29uc3Qgc3BsaXR0ZXJzID0gc2VwYXJhdG9ycyA/PyBTVFJfU1BMSVRURVJTO1xuICBjb25zdCBwYXJ0cyA9IFtdO1xuICBpZiAoIXN0ciB8fCB0eXBlb2Ygc3RyICE9PSBcInN0cmluZ1wiKSB7XG4gICAgcmV0dXJuIHBhcnRzO1xuICB9XG4gIGxldCBidWZmID0gXCJcIjtcbiAgbGV0IHByZXZpb3VzVXBwZXI7XG4gIGxldCBwcmV2aW91c1NwbGl0dGVyO1xuICBmb3IgKGNvbnN0IGNoYXIgb2Ygc3RyKSB7XG4gICAgY29uc3QgaXNTcGxpdHRlciA9IHNwbGl0dGVycy5pbmNsdWRlcyhjaGFyKTtcbiAgICBpZiAoaXNTcGxpdHRlciA9PT0gdHJ1ZSkge1xuICAgICAgcGFydHMucHVzaChidWZmKTtcbiAgICAgIGJ1ZmYgPSBcIlwiO1xuICAgICAgcHJldmlvdXNVcHBlciA9IHZvaWQgMDtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBjb25zdCBpc1VwcGVyID0gaXNVcHBlcmNhc2UoY2hhcik7XG4gICAgaWYgKHByZXZpb3VzU3BsaXR0ZXIgPT09IGZhbHNlKSB7XG4gICAgICBpZiAocHJldmlvdXNVcHBlciA9PT0gZmFsc2UgJiYgaXNVcHBlciA9PT0gdHJ1ZSkge1xuICAgICAgICBwYXJ0cy5wdXNoKGJ1ZmYpO1xuICAgICAgICBidWZmID0gY2hhcjtcbiAgICAgICAgcHJldmlvdXNVcHBlciA9IGlzVXBwZXI7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKHByZXZpb3VzVXBwZXIgPT09IHRydWUgJiYgaXNVcHBlciA9PT0gZmFsc2UgJiYgYnVmZi5sZW5ndGggPiAxKSB7XG4gICAgICAgIGNvbnN0IGxhc3RDaGFyID0gYnVmZi5hdCgtMSk7XG4gICAgICAgIHBhcnRzLnB1c2goYnVmZi5zbGljZSgwLCBNYXRoLm1heCgwLCBidWZmLmxlbmd0aCAtIDEpKSk7XG4gICAgICAgIGJ1ZmYgPSBsYXN0Q2hhciArIGNoYXI7XG4gICAgICAgIHByZXZpb3VzVXBwZXIgPSBpc1VwcGVyO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgYnVmZiArPSBjaGFyO1xuICAgIHByZXZpb3VzVXBwZXIgPSBpc1VwcGVyO1xuICAgIHByZXZpb3VzU3BsaXR0ZXIgPSBpc1NwbGl0dGVyO1xuICB9XG4gIHBhcnRzLnB1c2goYnVmZik7XG4gIHJldHVybiBwYXJ0cztcbn1cbmZ1bmN0aW9uIHVwcGVyRmlyc3Qoc3RyKSB7XG4gIHJldHVybiBzdHIgPyBzdHJbMF0udG9VcHBlckNhc2UoKSArIHN0ci5zbGljZSgxKSA6IFwiXCI7XG59XG5mdW5jdGlvbiBsb3dlckZpcnN0KHN0cikge1xuICByZXR1cm4gc3RyID8gc3RyWzBdLnRvTG93ZXJDYXNlKCkgKyBzdHIuc2xpY2UoMSkgOiBcIlwiO1xufVxuZnVuY3Rpb24gcGFzY2FsQ2FzZShzdHIsIG9wdHMpIHtcbiAgcmV0dXJuIHN0ciA/IChBcnJheS5pc0FycmF5KHN0cikgPyBzdHIgOiBzcGxpdEJ5Q2FzZShzdHIpKS5tYXAoKHApID0+IHVwcGVyRmlyc3Qob3B0cz8ubm9ybWFsaXplID8gcC50b0xvd2VyQ2FzZSgpIDogcCkpLmpvaW4oXCJcIikgOiBcIlwiO1xufVxuZnVuY3Rpb24gY2FtZWxDYXNlKHN0ciwgb3B0cykge1xuICByZXR1cm4gbG93ZXJGaXJzdChwYXNjYWxDYXNlKHN0ciB8fCBcIlwiLCBvcHRzKSk7XG59XG5mdW5jdGlvbiBrZWJhYkNhc2Uoc3RyLCBqb2luZXIpIHtcbiAgcmV0dXJuIHN0ciA/IChBcnJheS5pc0FycmF5KHN0cikgPyBzdHIgOiBzcGxpdEJ5Q2FzZShzdHIpKS5tYXAoKHApID0+IHAudG9Mb3dlckNhc2UoKSkuam9pbihqb2luZXIgPz8gXCItXCIpIDogXCJcIjtcbn1cblxuZnVuY3Rpb24gdG9BcnIoYW55KSB7XG4gIHJldHVybiBhbnkgPT0gdm9pZCAwID8gW10gOiBBcnJheS5pc0FycmF5KGFueSkgPyBhbnkgOiBbYW55XTtcbn1cbmZ1bmN0aW9uIHRvVmFsKG91dCwga2V5LCB2YWwsIG9wdHMpIHtcbiAgbGV0IHg7XG4gIGNvbnN0IG9sZCA9IG91dFtrZXldO1xuICBjb25zdCBueHQgPSB+b3B0cy5zdHJpbmcuaW5kZXhPZihrZXkpID8gdmFsID09IHZvaWQgMCB8fCB2YWwgPT09IHRydWUgPyBcIlwiIDogU3RyaW5nKHZhbCkgOiB0eXBlb2YgdmFsID09PSBcImJvb2xlYW5cIiA/IHZhbCA6IH5vcHRzLmJvb2xlYW4uaW5kZXhPZihrZXkpID8gdmFsID09PSBcImZhbHNlXCIgPyBmYWxzZSA6IHZhbCA9PT0gXCJ0cnVlXCIgfHwgKG91dC5fLnB1c2goKHggPSArdmFsLCB4ICogMCA9PT0gMCkgPyB4IDogdmFsKSwgISF2YWwpIDogKHggPSArdmFsLCB4ICogMCA9PT0gMCkgPyB4IDogdmFsO1xuICBvdXRba2V5XSA9IG9sZCA9PSB2b2lkIDAgPyBueHQgOiBBcnJheS5pc0FycmF5KG9sZCkgPyBvbGQuY29uY2F0KG54dCkgOiBbb2xkLCBueHRdO1xufVxuZnVuY3Rpb24gcGFyc2VSYXdBcmdzKGFyZ3MgPSBbXSwgb3B0cyA9IHt9KSB7XG4gIGxldCBrO1xuICBsZXQgYXJyO1xuICBsZXQgYXJnO1xuICBsZXQgbmFtZTtcbiAgbGV0IHZhbDtcbiAgY29uc3Qgb3V0ID0geyBfOiBbXSB9O1xuICBsZXQgaSA9IDA7XG4gIGxldCBqID0gMDtcbiAgbGV0IGlkeCA9IDA7XG4gIGNvbnN0IGxlbiA9IGFyZ3MubGVuZ3RoO1xuICBjb25zdCBhbGliaSA9IG9wdHMuYWxpYXMgIT09IHZvaWQgMDtcbiAgY29uc3Qgc3RyaWN0ID0gb3B0cy51bmtub3duICE9PSB2b2lkIDA7XG4gIGNvbnN0IGRlZmF1bHRzID0gb3B0cy5kZWZhdWx0ICE9PSB2b2lkIDA7XG4gIG9wdHMuYWxpYXMgPSBvcHRzLmFsaWFzIHx8IHt9O1xuICBvcHRzLnN0cmluZyA9IHRvQXJyKG9wdHMuc3RyaW5nKTtcbiAgb3B0cy5ib29sZWFuID0gdG9BcnIob3B0cy5ib29sZWFuKTtcbiAgaWYgKGFsaWJpKSB7XG4gICAgZm9yIChrIGluIG9wdHMuYWxpYXMpIHtcbiAgICAgIGFyciA9IG9wdHMuYWxpYXNba10gPSB0b0FycihvcHRzLmFsaWFzW2tdKTtcbiAgICAgIGZvciAoaSA9IDA7IGkgPCBhcnIubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgKG9wdHMuYWxpYXNbYXJyW2ldXSA9IGFyci5jb25jYXQoaykpLnNwbGljZShpLCAxKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgZm9yIChpID0gb3B0cy5ib29sZWFuLmxlbmd0aDsgaS0tID4gMDsgKSB7XG4gICAgYXJyID0gb3B0cy5hbGlhc1tvcHRzLmJvb2xlYW5baV1dIHx8IFtdO1xuICAgIGZvciAoaiA9IGFyci5sZW5ndGg7IGotLSA+IDA7ICkge1xuICAgICAgb3B0cy5ib29sZWFuLnB1c2goYXJyW2pdKTtcbiAgICB9XG4gIH1cbiAgZm9yIChpID0gb3B0cy5zdHJpbmcubGVuZ3RoOyBpLS0gPiAwOyApIHtcbiAgICBhcnIgPSBvcHRzLmFsaWFzW29wdHMuc3RyaW5nW2ldXSB8fCBbXTtcbiAgICBmb3IgKGogPSBhcnIubGVuZ3RoOyBqLS0gPiAwOyApIHtcbiAgICAgIG9wdHMuc3RyaW5nLnB1c2goYXJyW2pdKTtcbiAgICB9XG4gIH1cbiAgaWYgKGRlZmF1bHRzKSB7XG4gICAgZm9yIChrIGluIG9wdHMuZGVmYXVsdCkge1xuICAgICAgbmFtZSA9IHR5cGVvZiBvcHRzLmRlZmF1bHRba107XG4gICAgICBhcnIgPSBvcHRzLmFsaWFzW2tdID0gb3B0cy5hbGlhc1trXSB8fCBbXTtcbiAgICAgIGlmIChvcHRzW25hbWVdICE9PSB2b2lkIDApIHtcbiAgICAgICAgb3B0c1tuYW1lXS5wdXNoKGspO1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgb3B0c1tuYW1lXS5wdXNoKGFycltpXSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgY29uc3Qga2V5cyA9IHN0cmljdCA/IE9iamVjdC5rZXlzKG9wdHMuYWxpYXMpIDogW107XG4gIGZvciAoaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgIGFyZyA9IGFyZ3NbaV07XG4gICAgaWYgKGFyZyA9PT0gXCItLVwiKSB7XG4gICAgICBvdXQuXyA9IG91dC5fLmNvbmNhdChhcmdzLnNsaWNlKCsraSkpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGZvciAoaiA9IDA7IGogPCBhcmcubGVuZ3RoOyBqKyspIHtcbiAgICAgIGlmIChhcmcuY2hhckNvZGVBdChqKSAhPT0gNDUpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChqID09PSAwKSB7XG4gICAgICBvdXQuXy5wdXNoKGFyZyk7XG4gICAgfSBlbHNlIGlmIChhcmcuc3Vic3RyaW5nKGosIGogKyAzKSA9PT0gXCJuby1cIikge1xuICAgICAgbmFtZSA9IGFyZy5zbGljZShNYXRoLm1heCgwLCBqICsgMykpO1xuICAgICAgaWYgKHN0cmljdCAmJiAhfmtleXMuaW5kZXhPZihuYW1lKSkge1xuICAgICAgICByZXR1cm4gb3B0cy51bmtub3duKGFyZyk7XG4gICAgICB9XG4gICAgICBvdXRbbmFtZV0gPSBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgZm9yIChpZHggPSBqICsgMTsgaWR4IDwgYXJnLmxlbmd0aDsgaWR4KyspIHtcbiAgICAgICAgaWYgKGFyZy5jaGFyQ29kZUF0KGlkeCkgPT09IDYxKSB7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIG5hbWUgPSBhcmcuc3Vic3RyaW5nKGosIGlkeCk7XG4gICAgICB2YWwgPSBhcmcuc2xpY2UoTWF0aC5tYXgoMCwgKytpZHgpKSB8fCBpICsgMSA9PT0gbGVuIHx8IChcIlwiICsgYXJnc1tpICsgMV0pLmNoYXJDb2RlQXQoMCkgPT09IDQ1IHx8IGFyZ3NbKytpXTtcbiAgICAgIGFyciA9IGogPT09IDIgPyBbbmFtZV0gOiBuYW1lO1xuICAgICAgZm9yIChpZHggPSAwOyBpZHggPCBhcnIubGVuZ3RoOyBpZHgrKykge1xuICAgICAgICBuYW1lID0gYXJyW2lkeF07XG4gICAgICAgIGlmIChzdHJpY3QgJiYgIX5rZXlzLmluZGV4T2YobmFtZSkpIHtcbiAgICAgICAgICByZXR1cm4gb3B0cy51bmtub3duKFwiLVwiLnJlcGVhdChqKSArIG5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIHRvVmFsKG91dCwgbmFtZSwgaWR4ICsgMSA8IGFyci5sZW5ndGggfHwgdmFsLCBvcHRzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgaWYgKGRlZmF1bHRzKSB7XG4gICAgZm9yIChrIGluIG9wdHMuZGVmYXVsdCkge1xuICAgICAgaWYgKG91dFtrXSA9PT0gdm9pZCAwKSB7XG4gICAgICAgIG91dFtrXSA9IG9wdHMuZGVmYXVsdFtrXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgaWYgKGFsaWJpKSB7XG4gICAgZm9yIChrIGluIG91dCkge1xuICAgICAgYXJyID0gb3B0cy5hbGlhc1trXSB8fCBbXTtcbiAgICAgIHdoaWxlIChhcnIubGVuZ3RoID4gMCkge1xuICAgICAgICBvdXRbYXJyLnNoaWZ0KCldID0gb3V0W2tdO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gb3V0O1xufVxuXG5mdW5jdGlvbiBwYXJzZUFyZ3MocmF3QXJncywgYXJnc0RlZikge1xuICBjb25zdCBwYXJzZU9wdGlvbnMgPSB7XG4gICAgYm9vbGVhbjogW10sXG4gICAgc3RyaW5nOiBbXSxcbiAgICBtaXhlZDogW10sXG4gICAgYWxpYXM6IHt9LFxuICAgIGRlZmF1bHQ6IHt9XG4gIH07XG4gIGNvbnN0IGFyZ3MgPSByZXNvbHZlQXJncyhhcmdzRGVmKTtcbiAgZm9yIChjb25zdCBhcmcgb2YgYXJncykge1xuICAgIGlmIChhcmcudHlwZSA9PT0gXCJwb3NpdGlvbmFsXCIpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBpZiAoYXJnLnR5cGUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIHBhcnNlT3B0aW9ucy5zdHJpbmcucHVzaChhcmcubmFtZSk7XG4gICAgfSBlbHNlIGlmIChhcmcudHlwZSA9PT0gXCJib29sZWFuXCIpIHtcbiAgICAgIHBhcnNlT3B0aW9ucy5ib29sZWFuLnB1c2goYXJnLm5hbWUpO1xuICAgIH1cbiAgICBpZiAoYXJnLmRlZmF1bHQgIT09IHZvaWQgMCkge1xuICAgICAgcGFyc2VPcHRpb25zLmRlZmF1bHRbYXJnLm5hbWVdID0gYXJnLmRlZmF1bHQ7XG4gICAgfVxuICAgIGlmIChhcmcuYWxpYXMpIHtcbiAgICAgIHBhcnNlT3B0aW9ucy5hbGlhc1thcmcubmFtZV0gPSBhcmcuYWxpYXM7XG4gICAgfVxuICB9XG4gIGNvbnN0IHBhcnNlZCA9IHBhcnNlUmF3QXJncyhyYXdBcmdzLCBwYXJzZU9wdGlvbnMpO1xuICBjb25zdCBbLi4ucG9zaXRpb25hbEFyZ3VtZW50c10gPSBwYXJzZWQuXztcbiAgY29uc3QgcGFyc2VkQXJnc1Byb3h5ID0gbmV3IFByb3h5KHBhcnNlZCwge1xuICAgIGdldCh0YXJnZXQsIHByb3ApIHtcbiAgICAgIHJldHVybiB0YXJnZXRbcHJvcF0gPz8gdGFyZ2V0W2NhbWVsQ2FzZShwcm9wKV0gPz8gdGFyZ2V0W2tlYmFiQ2FzZShwcm9wKV07XG4gICAgfVxuICB9KTtcbiAgZm9yIChjb25zdCBbLCBhcmddIG9mIGFyZ3MuZW50cmllcygpKSB7XG4gICAgaWYgKGFyZy50eXBlID09PSBcInBvc2l0aW9uYWxcIikge1xuICAgICAgY29uc3QgbmV4dFBvc2l0aW9uYWxBcmd1bWVudCA9IHBvc2l0aW9uYWxBcmd1bWVudHMuc2hpZnQoKTtcbiAgICAgIGlmIChuZXh0UG9zaXRpb25hbEFyZ3VtZW50ICE9PSB2b2lkIDApIHtcbiAgICAgICAgcGFyc2VkQXJnc1Byb3h5W2FyZy5uYW1lXSA9IG5leHRQb3NpdGlvbmFsQXJndW1lbnQ7XG4gICAgICB9IGVsc2UgaWYgKGFyZy5kZWZhdWx0ID09PSB2b2lkIDAgJiYgYXJnLnJlcXVpcmVkICE9PSBmYWxzZSkge1xuICAgICAgICB0aHJvdyBuZXcgQ0xJRXJyb3IoXG4gICAgICAgICAgYE1pc3NpbmcgcmVxdWlyZWQgcG9zaXRpb25hbCBhcmd1bWVudDogJHthcmcubmFtZS50b1VwcGVyQ2FzZSgpfWAsXG4gICAgICAgICAgXCJFQVJHXCJcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBhcnNlZEFyZ3NQcm94eVthcmcubmFtZV0gPSBhcmcuZGVmYXVsdDtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGFyZy5yZXF1aXJlZCAmJiBwYXJzZWRBcmdzUHJveHlbYXJnLm5hbWVdID09PSB2b2lkIDApIHtcbiAgICAgIHRocm93IG5ldyBDTElFcnJvcihgTWlzc2luZyByZXF1aXJlZCBhcmd1bWVudDogLS0ke2FyZy5uYW1lfWAsIFwiRUFSR1wiKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHBhcnNlZEFyZ3NQcm94eTtcbn1cbmZ1bmN0aW9uIHJlc29sdmVBcmdzKGFyZ3NEZWYpIHtcbiAgY29uc3QgYXJncyA9IFtdO1xuICBmb3IgKGNvbnN0IFtuYW1lLCBhcmdEZWZdIG9mIE9iamVjdC5lbnRyaWVzKGFyZ3NEZWYgfHwge30pKSB7XG4gICAgYXJncy5wdXNoKHtcbiAgICAgIC4uLmFyZ0RlZixcbiAgICAgIG5hbWUsXG4gICAgICBhbGlhczogdG9BcnJheShhcmdEZWYuYWxpYXMpXG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIGFyZ3M7XG59XG5cbmZ1bmN0aW9uIGRlZmluZUNvbW1hbmQoZGVmKSB7XG4gIHJldHVybiBkZWY7XG59XG5hc3luYyBmdW5jdGlvbiBydW5Db21tYW5kKGNtZCwgb3B0cykge1xuICBjb25zdCBjbWRBcmdzID0gYXdhaXQgcmVzb2x2ZVZhbHVlKGNtZC5hcmdzIHx8IHt9KTtcbiAgY29uc3QgcGFyc2VkQXJncyA9IHBhcnNlQXJncyhvcHRzLnJhd0FyZ3MsIGNtZEFyZ3MpO1xuICBjb25zdCBjb250ZXh0ID0ge1xuICAgIHJhd0FyZ3M6IG9wdHMucmF3QXJncyxcbiAgICBhcmdzOiBwYXJzZWRBcmdzLFxuICAgIGRhdGE6IG9wdHMuZGF0YSxcbiAgICBjbWRcbiAgfTtcbiAgaWYgKHR5cGVvZiBjbWQuc2V0dXAgPT09IFwiZnVuY3Rpb25cIikge1xuICAgIGF3YWl0IGNtZC5zZXR1cChjb250ZXh0KTtcbiAgfVxuICBsZXQgcmVzdWx0O1xuICB0cnkge1xuICAgIGNvbnN0IHN1YkNvbW1hbmRzID0gYXdhaXQgcmVzb2x2ZVZhbHVlKGNtZC5zdWJDb21tYW5kcyk7XG4gICAgaWYgKHN1YkNvbW1hbmRzICYmIE9iamVjdC5rZXlzKHN1YkNvbW1hbmRzKS5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBzdWJDb21tYW5kQXJnSW5kZXggPSBvcHRzLnJhd0FyZ3MuZmluZEluZGV4KFxuICAgICAgICAoYXJnKSA9PiAhYXJnLnN0YXJ0c1dpdGgoXCItXCIpXG4gICAgICApO1xuICAgICAgY29uc3Qgc3ViQ29tbWFuZE5hbWUgPSBvcHRzLnJhd0FyZ3Nbc3ViQ29tbWFuZEFyZ0luZGV4XTtcbiAgICAgIGlmIChzdWJDb21tYW5kTmFtZSkge1xuICAgICAgICBpZiAoIXN1YkNvbW1hbmRzW3N1YkNvbW1hbmROYW1lXSkge1xuICAgICAgICAgIHRocm93IG5ldyBDTElFcnJvcihcbiAgICAgICAgICAgIGBVbmtub3duIGNvbW1hbmQgXFxgJHtzdWJDb21tYW5kTmFtZX1cXGBgLFxuICAgICAgICAgICAgXCJFX1VOS05PV05fQ09NTUFORFwiXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzdWJDb21tYW5kID0gYXdhaXQgcmVzb2x2ZVZhbHVlKHN1YkNvbW1hbmRzW3N1YkNvbW1hbmROYW1lXSk7XG4gICAgICAgIGlmIChzdWJDb21tYW5kKSB7XG4gICAgICAgICAgYXdhaXQgcnVuQ29tbWFuZChzdWJDb21tYW5kLCB7XG4gICAgICAgICAgICByYXdBcmdzOiBvcHRzLnJhd0FyZ3Muc2xpY2Uoc3ViQ29tbWFuZEFyZ0luZGV4ICsgMSlcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICghY21kLnJ1bikge1xuICAgICAgICB0aHJvdyBuZXcgQ0xJRXJyb3IoYE5vIGNvbW1hbmQgc3BlY2lmaWVkLmAsIFwiRV9OT19DT01NQU5EXCIpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodHlwZW9mIGNtZC5ydW4gPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgcmVzdWx0ID0gYXdhaXQgY21kLnJ1bihjb250ZXh0KTtcbiAgICB9XG4gIH0gZmluYWxseSB7XG4gICAgaWYgKHR5cGVvZiBjbWQuY2xlYW51cCA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICBhd2FpdCBjbWQuY2xlYW51cChjb250ZXh0KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHsgcmVzdWx0IH07XG59XG5hc3luYyBmdW5jdGlvbiByZXNvbHZlU3ViQ29tbWFuZChjbWQsIHJhd0FyZ3MsIHBhcmVudCkge1xuICBjb25zdCBzdWJDb21tYW5kcyA9IGF3YWl0IHJlc29sdmVWYWx1ZShjbWQuc3ViQ29tbWFuZHMpO1xuICBpZiAoc3ViQ29tbWFuZHMgJiYgT2JqZWN0LmtleXMoc3ViQ29tbWFuZHMpLmxlbmd0aCA+IDApIHtcbiAgICBjb25zdCBzdWJDb21tYW5kQXJnSW5kZXggPSByYXdBcmdzLmZpbmRJbmRleCgoYXJnKSA9PiAhYXJnLnN0YXJ0c1dpdGgoXCItXCIpKTtcbiAgICBjb25zdCBzdWJDb21tYW5kTmFtZSA9IHJhd0FyZ3Nbc3ViQ29tbWFuZEFyZ0luZGV4XTtcbiAgICBjb25zdCBzdWJDb21tYW5kID0gYXdhaXQgcmVzb2x2ZVZhbHVlKHN1YkNvbW1hbmRzW3N1YkNvbW1hbmROYW1lXSk7XG4gICAgaWYgKHN1YkNvbW1hbmQpIHtcbiAgICAgIHJldHVybiByZXNvbHZlU3ViQ29tbWFuZChcbiAgICAgICAgc3ViQ29tbWFuZCxcbiAgICAgICAgcmF3QXJncy5zbGljZShzdWJDb21tYW5kQXJnSW5kZXggKyAxKSxcbiAgICAgICAgY21kXG4gICAgICApO1xuICAgIH1cbiAgfVxuICByZXR1cm4gW2NtZCwgcGFyZW50XTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gc2hvd1VzYWdlKGNtZCwgcGFyZW50KSB7XG4gIHRyeSB7XG4gICAgY29uc29sYS5sb2coYXdhaXQgcmVuZGVyVXNhZ2UoY21kLCBwYXJlbnQpICsgXCJcXG5cIik7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc29sYS5lcnJvcihlcnJvcik7XG4gIH1cbn1cbmFzeW5jIGZ1bmN0aW9uIHJlbmRlclVzYWdlKGNtZCwgcGFyZW50KSB7XG4gIGNvbnN0IGNtZE1ldGEgPSBhd2FpdCByZXNvbHZlVmFsdWUoY21kLm1ldGEgfHwge30pO1xuICBjb25zdCBjbWRBcmdzID0gcmVzb2x2ZUFyZ3MoYXdhaXQgcmVzb2x2ZVZhbHVlKGNtZC5hcmdzIHx8IHt9KSk7XG4gIGNvbnN0IHBhcmVudE1ldGEgPSBhd2FpdCByZXNvbHZlVmFsdWUocGFyZW50Py5tZXRhIHx8IHt9KTtcbiAgY29uc3QgY29tbWFuZE5hbWUgPSBgJHtwYXJlbnRNZXRhLm5hbWUgPyBgJHtwYXJlbnRNZXRhLm5hbWV9IGAgOiBcIlwifWAgKyAoY21kTWV0YS5uYW1lIHx8IHByb2Nlc3MuYXJndlsxXSk7XG4gIGNvbnN0IGFyZ0xpbmVzID0gW107XG4gIGNvbnN0IHBvc0xpbmVzID0gW107XG4gIGNvbnN0IGNvbW1hbmRzTGluZXMgPSBbXTtcbiAgY29uc3QgdXNhZ2VMaW5lID0gW107XG4gIGZvciAoY29uc3QgYXJnIG9mIGNtZEFyZ3MpIHtcbiAgICBpZiAoYXJnLnR5cGUgPT09IFwicG9zaXRpb25hbFwiKSB7XG4gICAgICBjb25zdCBuYW1lID0gYXJnLm5hbWUudG9VcHBlckNhc2UoKTtcbiAgICAgIGNvbnN0IGlzUmVxdWlyZWQgPSBhcmcucmVxdWlyZWQgIT09IGZhbHNlICYmIGFyZy5kZWZhdWx0ID09PSB2b2lkIDA7XG4gICAgICBjb25zdCBkZWZhdWx0SGludCA9IGFyZy5kZWZhdWx0ID8gYD1cIiR7YXJnLmRlZmF1bHR9XCJgIDogXCJcIjtcbiAgICAgIHBvc0xpbmVzLnB1c2goW1xuICAgICAgICBcImBcIiArIG5hbWUgKyBkZWZhdWx0SGludCArIFwiYFwiLFxuICAgICAgICBhcmcuZGVzY3JpcHRpb24gfHwgXCJcIixcbiAgICAgICAgYXJnLnZhbHVlSGludCA/IGA8JHthcmcudmFsdWVIaW50fT5gIDogXCJcIlxuICAgICAgXSk7XG4gICAgICB1c2FnZUxpbmUucHVzaChpc1JlcXVpcmVkID8gYDwke25hbWV9PmAgOiBgWyR7bmFtZX1dYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGlzUmVxdWlyZWQgPSBhcmcucmVxdWlyZWQgPT09IHRydWUgJiYgYXJnLmRlZmF1bHQgPT09IHZvaWQgMDtcbiAgICAgIGNvbnN0IGFyZ1N0ciA9IChhcmcudHlwZSA9PT0gXCJib29sZWFuXCIgJiYgYXJnLmRlZmF1bHQgPT09IHRydWUgPyBbXG4gICAgICAgIC4uLihhcmcuYWxpYXMgfHwgW10pLm1hcCgoYSkgPT4gYC0tbm8tJHthfWApLFxuICAgICAgICBgLS1uby0ke2FyZy5uYW1lfWBcbiAgICAgIF0uam9pbihcIiwgXCIpIDogWy4uLihhcmcuYWxpYXMgfHwgW10pLm1hcCgoYSkgPT4gYC0ke2F9YCksIGAtLSR7YXJnLm5hbWV9YF0uam9pbihcbiAgICAgICAgXCIsIFwiXG4gICAgICApKSArIChhcmcudHlwZSA9PT0gXCJzdHJpbmdcIiAmJiAoYXJnLnZhbHVlSGludCB8fCBhcmcuZGVmYXVsdCkgPyBgPSR7YXJnLnZhbHVlSGludCA/IGA8JHthcmcudmFsdWVIaW50fT5gIDogYFwiJHthcmcuZGVmYXVsdCB8fCBcIlwifVwiYH1gIDogXCJcIik7XG4gICAgICBhcmdMaW5lcy5wdXNoKFtcbiAgICAgICAgXCJgXCIgKyBhcmdTdHIgKyAoaXNSZXF1aXJlZCA/IFwiIChyZXF1aXJlZClcIiA6IFwiXCIpICsgXCJgXCIsXG4gICAgICAgIGFyZy5kZXNjcmlwdGlvbiB8fCBcIlwiXG4gICAgICBdKTtcbiAgICAgIGlmIChpc1JlcXVpcmVkKSB7XG4gICAgICAgIHVzYWdlTGluZS5wdXNoKGFyZ1N0cik7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGlmIChjbWQuc3ViQ29tbWFuZHMpIHtcbiAgICBjb25zdCBjb21tYW5kTmFtZXMgPSBbXTtcbiAgICBjb25zdCBzdWJDb21tYW5kcyA9IGF3YWl0IHJlc29sdmVWYWx1ZShjbWQuc3ViQ29tbWFuZHMpO1xuICAgIGZvciAoY29uc3QgW25hbWUsIHN1Yl0gb2YgT2JqZWN0LmVudHJpZXMoc3ViQ29tbWFuZHMpKSB7XG4gICAgICBjb25zdCBzdWJDbWQgPSBhd2FpdCByZXNvbHZlVmFsdWUoc3ViKTtcbiAgICAgIGNvbnN0IG1ldGEgPSBhd2FpdCByZXNvbHZlVmFsdWUoc3ViQ21kPy5tZXRhKTtcbiAgICAgIGNvbW1hbmRzTGluZXMucHVzaChbYFxcYCR7bmFtZX1cXGBgLCBtZXRhPy5kZXNjcmlwdGlvbiB8fCBcIlwiXSk7XG4gICAgICBjb21tYW5kTmFtZXMucHVzaChuYW1lKTtcbiAgICB9XG4gICAgdXNhZ2VMaW5lLnB1c2goY29tbWFuZE5hbWVzLmpvaW4oXCJ8XCIpKTtcbiAgfVxuICBjb25zdCB1c2FnZUxpbmVzID0gW107XG4gIGNvbnN0IHZlcnNpb24gPSBjbWRNZXRhLnZlcnNpb24gfHwgcGFyZW50TWV0YS52ZXJzaW9uO1xuICB1c2FnZUxpbmVzLnB1c2goXG4gICAgY29sb3JzLmdyYXkoXG4gICAgICBgJHtjbWRNZXRhLmRlc2NyaXB0aW9ufSAoJHtjb21tYW5kTmFtZSArICh2ZXJzaW9uID8gYCB2JHt2ZXJzaW9ufWAgOiBcIlwiKX0pYFxuICAgICksXG4gICAgXCJcIlxuICApO1xuICBjb25zdCBoYXNPcHRpb25zID0gYXJnTGluZXMubGVuZ3RoID4gMCB8fCBwb3NMaW5lcy5sZW5ndGggPiAwO1xuICB1c2FnZUxpbmVzLnB1c2goXG4gICAgYCR7Y29sb3JzLnVuZGVybGluZShjb2xvcnMuYm9sZChcIlVTQUdFXCIpKX0gXFxgJHtjb21tYW5kTmFtZX0ke2hhc09wdGlvbnMgPyBcIiBbT1BUSU9OU11cIiA6IFwiXCJ9ICR7dXNhZ2VMaW5lLmpvaW4oXCIgXCIpfVxcYGAsXG4gICAgXCJcIlxuICApO1xuICBpZiAocG9zTGluZXMubGVuZ3RoID4gMCkge1xuICAgIHVzYWdlTGluZXMucHVzaChjb2xvcnMudW5kZXJsaW5lKGNvbG9ycy5ib2xkKFwiQVJHVU1FTlRTXCIpKSwgXCJcIik7XG4gICAgdXNhZ2VMaW5lcy5wdXNoKGZvcm1hdExpbmVDb2x1bW5zKHBvc0xpbmVzLCBcIiAgXCIpKTtcbiAgICB1c2FnZUxpbmVzLnB1c2goXCJcIik7XG4gIH1cbiAgaWYgKGFyZ0xpbmVzLmxlbmd0aCA+IDApIHtcbiAgICB1c2FnZUxpbmVzLnB1c2goY29sb3JzLnVuZGVybGluZShjb2xvcnMuYm9sZChcIk9QVElPTlNcIikpLCBcIlwiKTtcbiAgICB1c2FnZUxpbmVzLnB1c2goZm9ybWF0TGluZUNvbHVtbnMoYXJnTGluZXMsIFwiICBcIikpO1xuICAgIHVzYWdlTGluZXMucHVzaChcIlwiKTtcbiAgfVxuICBpZiAoY29tbWFuZHNMaW5lcy5sZW5ndGggPiAwKSB7XG4gICAgdXNhZ2VMaW5lcy5wdXNoKGNvbG9ycy51bmRlcmxpbmUoY29sb3JzLmJvbGQoXCJDT01NQU5EU1wiKSksIFwiXCIpO1xuICAgIHVzYWdlTGluZXMucHVzaChmb3JtYXRMaW5lQ29sdW1ucyhjb21tYW5kc0xpbmVzLCBcIiAgXCIpKTtcbiAgICB1c2FnZUxpbmVzLnB1c2goXG4gICAgICBcIlwiLFxuICAgICAgYFVzZSBcXGAke2NvbW1hbmROYW1lfSA8Y29tbWFuZD4gLS1oZWxwXFxgIGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IGEgY29tbWFuZC5gXG4gICAgKTtcbiAgfVxuICByZXR1cm4gdXNhZ2VMaW5lcy5maWx0ZXIoKGwpID0+IHR5cGVvZiBsID09PSBcInN0cmluZ1wiKS5qb2luKFwiXFxuXCIpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBydW5NYWluKGNtZCwgb3B0cyA9IHt9KSB7XG4gIGNvbnN0IHJhd0FyZ3MgPSBvcHRzLnJhd0FyZ3MgfHwgcHJvY2Vzcy5hcmd2LnNsaWNlKDIpO1xuICBjb25zdCBzaG93VXNhZ2UkMSA9IG9wdHMuc2hvd1VzYWdlIHx8IHNob3dVc2FnZTtcbiAgdHJ5IHtcbiAgICBpZiAocmF3QXJncy5pbmNsdWRlcyhcIi0taGVscFwiKSB8fCByYXdBcmdzLmluY2x1ZGVzKFwiLWhcIikpIHtcbiAgICAgIGF3YWl0IHNob3dVc2FnZSQxKC4uLmF3YWl0IHJlc29sdmVTdWJDb21tYW5kKGNtZCwgcmF3QXJncykpO1xuICAgICAgcHJvY2Vzcy5leGl0KDApO1xuICAgIH0gZWxzZSBpZiAocmF3QXJncy5sZW5ndGggPT09IDEgJiYgcmF3QXJnc1swXSA9PT0gXCItLXZlcnNpb25cIikge1xuICAgICAgY29uc3QgbWV0YSA9IHR5cGVvZiBjbWQubWV0YSA9PT0gXCJmdW5jdGlvblwiID8gYXdhaXQgY21kLm1ldGEoKSA6IGF3YWl0IGNtZC5tZXRhO1xuICAgICAgaWYgKCFtZXRhPy52ZXJzaW9uKSB7XG4gICAgICAgIHRocm93IG5ldyBDTElFcnJvcihcIk5vIHZlcnNpb24gc3BlY2lmaWVkXCIsIFwiRV9OT19WRVJTSU9OXCIpO1xuICAgICAgfVxuICAgICAgY29uc29sYS5sb2cobWV0YS52ZXJzaW9uKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXdhaXQgcnVuQ29tbWFuZChjbWQsIHsgcmF3QXJncyB9KTtcbiAgICB9XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc3QgaXNDTElFcnJvciA9IGVycm9yIGluc3RhbmNlb2YgQ0xJRXJyb3I7XG4gICAgaWYgKCFpc0NMSUVycm9yKSB7XG4gICAgICBjb25zb2xhLmVycm9yKGVycm9yLCBcIlxcblwiKTtcbiAgICB9XG4gICAgaWYgKGlzQ0xJRXJyb3IpIHtcbiAgICAgIGF3YWl0IHNob3dVc2FnZSQxKC4uLmF3YWl0IHJlc29sdmVTdWJDb21tYW5kKGNtZCwgcmF3QXJncykpO1xuICAgIH1cbiAgICBjb25zb2xhLmVycm9yKGVycm9yLm1lc3NhZ2UpO1xuICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgfVxufVxuZnVuY3Rpb24gY3JlYXRlTWFpbihjbWQpIHtcbiAgcmV0dXJuIChvcHRzID0ge30pID0+IHJ1bk1haW4oY21kLCBvcHRzKTtcbn1cblxuZXhwb3J0IHsgY3JlYXRlTWFpbiwgZGVmaW5lQ29tbWFuZCwgcGFyc2VBcmdzLCByZW5kZXJVc2FnZSwgcnVuQ29tbWFuZCwgcnVuTWFpbiwgc2hvd1VzYWdlIH07XG4iLCAiaW1wb3J0IHR5cGUgeyBQYWNrYWdlTWFuaWZlc3QgfSBmcm9tIFwicXVlcnktcmVnaXN0cnlcIjtcblxuY29uc3QgZ2l0aHViVXJsUmVnZXggPVxuICAvXig/OmdpdFxcKyk/aHR0cHM/OlxcL1xcL2dpdGh1YlxcLmNvbVxcLyhbXi9dKylcXC8oW14vXSspXFwuZ2l0JC87XG5cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0T3duZXJBbmRSZXBvKFxuICByZXBvc2l0b3J5VXJsOiBzdHJpbmcsXG4pOiBbc3RyaW5nLCBzdHJpbmddIHwgbnVsbCB7XG4gIGNvbnN0IG1hdGNoID0gcmVwb3NpdG9yeVVybC5tYXRjaChnaXRodWJVcmxSZWdleCk7XG5cbiAgaWYgKG1hdGNoKSB7XG4gICAgcmV0dXJuIFttYXRjaFsxXSwgbWF0Y2hbMl1dO1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0UmVwb3NpdG9yeShtYW5pZmVzdDogUGFja2FnZU1hbmlmZXN0KSB7XG4gIHJldHVybiB0eXBlb2YgbWFuaWZlc3QucmVwb3NpdG9yeSA9PT0gXCJzdHJpbmdcIlxuICAgID8gbWFuaWZlc3QucmVwb3NpdG9yeVxuICAgIDogbWFuaWZlc3QucmVwb3NpdG9yeT8udXJsO1xufVxuXG5jb25zdCBjb21taXRMZW5ndGggPSA3O1xuXG4vKlxuICogXCIwOWVmZDA1NTMzNzRmZjdkM2U2MmI3OTM3OGUzMTg0ZjVlYjU3NTcxXCIgPT4gXCIwOWVmZDA1XCJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFiYnJldmlhdGVDb21taXRIYXNoKGZ1bGxIYXNoOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGZ1bGxIYXNoLnN1YnN0cmluZygwLCBjb21taXRMZW5ndGgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNQdWxsUmVxdWVzdChyZWY6IHN0cmluZykge1xuICByZXR1cm4gIU51bWJlci5pc05hTihOdW1iZXIocmVmKSk7XG59XG5cbmV4cG9ydCB0eXBlIENvbW1lbnQgPSBcIm9mZlwiIHwgXCJjcmVhdGVcIiB8IFwidXBkYXRlXCI7XG5leHBvcnQgdHlwZSBQYWNrYWdlTWFuYWdlciA9IFwibnBtXCIgfCBcInBucG1cIiB8IFwieWFyblwiIHwgXCJidW5cIjtcblxuY29uc3Qgd2hpdGVsaXN0ID1cbiAgXCJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vc3RhY2tibGl0ei1sYWJzL3BrZy5wci5uZXcvbWFpbi8ud2hpdGVsaXN0XCI7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpc1doaXRlbGlzdGVkKG93bmVyOiBzdHJpbmcsIHJlcG86IHN0cmluZykge1xuICBjb25zdCBjb21iaW5hdGlvbiA9IGAke293bmVyfS8ke3JlcG99YDtcblxuICB0cnkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2god2hpdGVsaXN0KTtcbiAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgcmVzcG9uc2UudGV4dCgpO1xuXG4gICAgcmV0dXJuIGNvbnRlbnQuaW5jbHVkZXMoY29tYmluYXRpb24pO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiIsICJ7XG4gIFwibmFtZVwiOiBcInBrZy1wci1uZXdcIixcbiAgXCJ2ZXJzaW9uXCI6IFwiMC4wLjQ4XCIsXG4gIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgXCJtYWluXCI6IFwiaW5kZXguanNcIixcbiAgXCJ0eXBlXCI6IFwibW9kdWxlXCIsXG4gIFwiYmluXCI6IHtcbiAgICBcInBrZy1wci1uZXdcIjogXCJiaW4vY2xpLmpzXCJcbiAgfSxcbiAgXCJyZXBvc2l0b3J5XCI6IHtcbiAgICBcInR5cGVcIjogXCJnaXRcIixcbiAgICBcInVybFwiOiBcImh0dHBzOi8vZ2l0aHViLmNvbS9zdGFja2JsaXR6LWxhYnMvcGtnLnByLm5ld1wiLFxuICAgIFwiZGlyZWN0b3J5XCI6IFwicGFja2FnZXMvY2xpXCJcbiAgfSxcbiAgXCJzY3JpcHRzXCI6IHtcbiAgICBcImRldlwiOiBcInRzdXAgLS13YXRjaFwiLFxuICAgIFwiYnVpbGRcIjogXCJ0c3VwXCIsXG4gICAgXCJidWlsZDpwdWJsaXNoXCI6IFwiQVBJX1VSTD1odHRwczovL3BrZy5wci5uZXcvIHRzdXBcIlxuICB9LFxuICBcImtleXdvcmRzXCI6IFtdLFxuICBcImF1dGhvclwiOiBcIlwiLFxuICBcImxpY2Vuc2VcIjogXCJNSVRcIixcbiAgXCJkZXBlbmRlbmNpZXNcIjoge1xuICAgIFwiQGpzZGV2dG9vbHMvZXotc3Bhd25cIjogXCJeMy4wLjRcIixcbiAgICBcIkBvY3Rva2l0L2FjdGlvblwiOiBcIl42LjEuMFwiLFxuICAgIFwiaWdub3JlXCI6IFwiXjUuMy4xXCIsXG4gICAgXCJpc2JpbmFyeWZpbGVcIjogXCJeNS4wLjJcIixcbiAgICBcInBrZy10eXBlc1wiOiBcIl4xLjEuMVwiLFxuICAgIFwicXVlcnktcmVnaXN0cnlcIjogXCJeMy4wLjFcIixcbiAgICBcInRpbnlnbG9iYnlcIjogXCJeMC4yLjlcIlxuICB9LFxuICBcImRldkRlcGVuZGVuY2llc1wiOiB7XG4gICAgXCJAcGtnLXByLW5ldy91dGlsc1wiOiBcIndvcmtzcGFjZTpeXCIsXG4gICAgXCJjaXR0eVwiOiBcIl4wLjEuNlwiLFxuICAgIFwidHN1cFwiOiBcIl44LjAuMlwiXG4gIH1cbn1cbiIsICJleHBvcnQgY29uc3QgY3JlYXRlRGVmYXVsdFRlbXBsYXRlID0gKFxuICBkZXBlbmRlbmNpZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4pID0+ICh7XG4gIFwiaW5kZXguanNcIjogXCJcIixcbiAgXCJSRUFETUUubWRcIjogYFxuIyBEZWZhdWx0IFRlbXBsYXRlXG5cblRoaXMgaXMgYSB0ZW1wbGF0ZSB0aGF0IGxldmVyYWdlcyB0aGUgZXhwZXJpbWVudGFsIHRlbXBsYXRlcyBmZWF0dXJlIGluIHRoZSBcXGBwa2cucHIubmV3XFxgIHRvb2wuXG5cbiMjIE92ZXJ2aWV3XG5cblRlbXBsYXRlcyBhcmUgcGFydGljdWxhcmx5IHVzZWZ1bCBmb3IgY3JlYXRpbmcgbGl2ZSwgaW50ZXJhY3RpdmUgZXhhbXBsZXMgb2YgeW91ciBwYWNrYWdlcywgd2hpY2ggY2FuIGJlIHZlcnkgYmVuZWZpY2lhbCBmb3IgYm90aCBkZXZlbG9wbWVudCBhbmQgZG9jdW1lbnRhdGlvbiBwdXJwb3Nlcy5cblxuQXMgYSB1c2VyLCB5b3UgY2FuIGNoZWNrIHRoZSBwYWNrYWdlLmpzb24gZmlsZSBhbmQgc2VlIHRoZSBuZXcgZ2VuZXJhdGVkIHBhY2thZ2VzISBZb3UgY2FuIGp1c3QgY29weSB0aG9zZSBhbmQgcHV0IHRoZW0gaW4geW91ciBwYWNrYWdlLmpzb24gb3IgaW5zdGFsbCB0aGVtIHdpdGggeW91ciBmYXZvcml0ZSBwYWNrYWdlIG1hbmFnZXIuXG5cbiR7T2JqZWN0LnZhbHVlcyhkZXBlbmRlbmNpZXMpXG4gIC5tYXAoXG4gICAgKHVybCkgPT4gYFxuXFxgXFxgXFxgc2hcbm5wbSBpICR7dXJsfVxuXFxgXFxgXFxgXG5gLFxuICApXG4gIC5qb2luKFwiXCIpfVxuXG4jIyBVc2FnZVxuXG5UbyB1c2UgdGhpcyBmZWF0dXJlIGFzIGEgbWFpbnRhaW5lciwgeW91IGNhbiBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kOlxuXG5cXGBcXGBcXGBzaFxubnB4IHBrZy1wci1uZXcgcHVibGlzaCAnLi9wYWNrYWdlcy9BJyAtLXRlbXBsYXRlICcuL2V4YW1wbGVzLyonXG5cXGBcXGBcXGBcblxuIyMgQmVuZWZpdHNcblxuLSBJbnRlcmFjdGl2ZSBEZW1vczogQXV0b21hdGljYWxseSBjcmVhdGUgbGl2ZSBkZW1vcyB0aGF0IHVzZXJzIGNhbiBpbnRlcmFjdCB3aXRoIGRpcmVjdGx5IGluIHRoZWlyIGJyb3dzZXIuXG4tIEVuaGFuY2VkIFRlc3Rpbmc6IFF1aWNrbHkgc3BpbiB1cCBlbnZpcm9ubWVudHMgdG8gdGVzdCB5b3VyIHBhY2thZ2UgaW4gZGlmZmVyZW50IHNjZW5hcmlvcy5cbi0gSW1wcm92ZWQgU2hhcmluZzogRWFzaWx5IHNoYXJlIHdvcmtpbmcgZXhhbXBsZXMgb2YgeW91ciBwYWNrYWdlIHdpdGggY29sbGFib3JhdG9ycyBvciB1c2VycyB3aXRob3V0IG5lZWRpbmcgdGhlbSB0byBzZXQgdXAgdGhlaXIgZW52aXJvbm1lbnQuXG5gLFxuICBcInBhY2thZ2UuanNvblwiOiBKU09OLnN0cmluZ2lmeShcbiAgICB7XG4gICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgIHZlcnNpb246IFwiMS4wLjBcIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcImdlbmVyYXRlZCBieSBwa2cucHIubmV3XCIsXG4gICAgICBtYWluOiBcImluZGV4LmpzXCIsXG4gICAgICBkZXBlbmRlbmNpZXMsXG4gICAgICBrZXl3b3JkczogW10sXG4gICAgICBhdXRob3I6IFwicGtnLnByLm5ld1wiLFxuICAgICAgbGljZW5zZTogXCJJU0NcIixcbiAgICB9LFxuICAgIG51bGwsXG4gICAgMixcbiAgKSxcbn0pO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7QUFxRUEsU0FBUyxnQkFBZ0IsT0FBTztBQUM5QixNQUFJLFVBQVUsUUFBUSxPQUFPLFVBQVUsVUFBVTtBQUMvQyxXQUFPO0FBQUEsRUFDVDtBQUNBLFFBQU0sWUFBWSxPQUFPLGVBQWUsS0FBSztBQUM3QyxNQUFJLGNBQWMsUUFBUSxjQUFjLE9BQU8sYUFBYSxPQUFPLGVBQWUsU0FBUyxNQUFNLE1BQU07QUFDckcsV0FBTztBQUFBLEVBQ1Q7QUFDQSxNQUFJLE9BQU8sWUFBWSxPQUFPO0FBQzVCLFdBQU87QUFBQSxFQUNUO0FBQ0EsTUFBSSxPQUFPLGVBQWUsT0FBTztBQUMvQixXQUFPLE9B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T0EsTUFBR0EsTUFBRyxTQUFPLFNBQU9BLE1BQUdBLE1BQUcsU0FBTyxTQUFPQSxNQUFHQSxNQUFHLFNBQU8sU0FBT0EsTUFBR0EsTUFBRyxTQUFPLFNBQU9BLE1BQUdBLE1BQUcsU0FBTyxTQUFPQSxNQUFHQSxNQUFHLFNBQU8sU0FBT0EsTUFBR0EsTUFBRyxTQUFPLFNBQU9BLE1BQUdBLE1BQUcsU0FBTyxTQUFPQSxNQUFHQSxNQUFHLFNBQU8sU0FBT0EsTUFBR0EsTUFBRyxTQUFPLFNBQU9BLE1BQUdBLE1BQUcsU0FBTyxTQUFPQSxNQUFHQSxNQUFHLFNBQU8sU0FBT0EsTUFBR0EsTUFBRyxTQUFPLFNBQU9BLE1BQUdBLE1BQUcsU0FBTyxTQUFPQSxNQUFHQSxNQUFHLFNBQU8sU0FBT0EsTUFBR0EsTUFBRyxTQUFPLFVBQVFBLE1BQUdBLE1BQUcsVUFBUSxVQUFRQSxNQUFHQSxNQUFHLFVBQVEsVUFBUUEsTUFBR0EsTUFBRyxVQUFRLFVBQVFBLE1BQUdBLE1BQUcsVUFBUSxVQUFRQSxNQUFHQSxNQUFHLFVBQVEsVUFBUUEsTUFBR0EsTUFBRyxVQUFRLFVBQVFBLE1BQUdBLE1BQUcsVUFBUSxVQUFRQSxNQUFHQSxNQUFHLFNBQU8sTUFBSSxNQUFJQSxNQUFHQSxNQUFHLE9BQUssT0FBS0EsTUFBR0EsTUFBRyxPQUFLLE9BQUtBLE1BQUdBLE1BQUcsT0FBS0EsTUFBRyxPQUFLQSxNQUFHLE9BQUssU0FBT0EsTUFBR0EsTUFBRyxTQUFPLFNBQU9BLE1BQUdBLE1BQUcsUUFBTSxPQUFLQSxNQUFHLE9BQUtBLE1BQUcsT0FBSyxPQUFLQSxNQUFHQSxNQUFHLE9BQUtBLE1BQUcsT0FBSyxPQUFLQSxNQUFHQSxNQUFHLE9BQUssT0FBS0EsTUFBR0EsTUFBRyxPQUFLLE9BQUtBLE1BQUdBLE1BQUcsT0FBSyxPQUFLQSxNQUFHQSxNQUFHLE9BQUtBLE1BQUcsT0FBS0EsTUFBRyxPQUFLLE9BQUtBLE1BQUdBLE1BQUcsT0FBSyxPQUFLQSxNQUFHQSxNQUFHLE9BQUtBLE1BQUcsT0FBSyxPQUFLQSxNQUFHQSxNQUFHLE9BQUssT0FBS0EsTUFBR0EsTUFBRyxPQUFLQSxNQUFHLE9BQUssT0FBS0EsTUFBR0EsTUFBRyxPQUFLLE9BQUtBLE1BQUdBLE1BQUcsT0FBS0EsTUFBRyxPQUFLQSxNQUFHLE9BQUtBLE1BQUcsT0FBS0EsTUFBRyxPQUFLQSxNQUFHLE9BQUtBLE1BQUcsT0FBSyxPQUFLQSxNQUFHQSxNQUFHLE9BQUtBLE1BQUcsT0FBSyxPQUFLQSxNQUFHQSxNQUFHLE9BQUtBLE1BQUcsT0FBSyxPQUFLQSxNQUFHQSxNQUFHLE9BQUtBLE1BQUcsT0FBSyxPQUFLQSxNQUFHQSxNQUFHLE9BQUtBLE1BQUcsT0FBSyxPQUFLQSxNQUFHQSxNQUFHLE9BQUssT0FBS0EsTUFBR0EsTUFBRyxPQUFLQSxNQUFHLE9BQUtBLE1BQUcsT0FBS0EsTUFBRyxPQUFLQSxNQUFHLE9BQUtBLE1BQUcsT0FBS0EsTUFBRyxPQUFLQSxNQUFHLE9BQUtBLE1BQUcsT0FBS0EsTUFBRyxPQUFLQSxNQUFHLE9BQUtBLE1BQUcsT0FBS0EsTUFBRyxPQUFLQSxNQUFHLE9BQUssT0FBS0EsTUFBR0EsTUFBRyxPQUFLQSxNQUFHLE9BQUtBLE1BQUcsT0FBSyxPQUFLQSxNQUFHQSxNQUFHLE9BQUtBLE1BQUcsT0FBS0EsTUFBRyxPQUFLLE9BQUtBLE1BQUdBLE1BQUcsT0FBSyxPQUFLQSxNQUFHQSxNQUFHLE9BQUssT0FBS0EsTUFBR0EsTUFBRyxPQUFLLE9BQUtBLE1BQUdBLE1BQUcsT0FBSyxPQUFLQSxNQUFHQSxNQUFHLE9BQUtBLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU1BLE1BQUcsUUFBTUEsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU1BLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU1BLE1BQUcsUUFBTUEsTUFBRyxRQUFNQSxNQUFHLFFBQU1BLE1BQUcsUUFBTUEsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTUEsTUFBRyxRQUFNQSxNQUFHLFFBQU1BLE1BQUcsUUFBTUEsTUFBRyxRQUFNQSxNQUFHLFFBQU1BLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU1BLE1BQUcsUUFBTUEsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTUEsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU1BLE1BQUcsUUFBTUEsTUFBRyxRQUFNQSxNQUFHLFFBQU1BLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNQSxNQUFHLFFBQU1BLE1BQUcsUUFBTUEsTUFBRyxRQUFNQSxNQUFHLFFBQU1BLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU1BLE1BQUcsUUFBTUEsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTUEsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU1BLE1BQUcsUUFBTUEsTUFBRyxRQUFNQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU1BLE1BQUcsUUFBTUEsTUFBRyxRQUFNQSxNQUFHLFFBQU1BLE1BQUcsUUFBTUEsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTUEsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTUEsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU1BLE1BQUcsUUFBTUEsTUFBRyxRQUFNQSxNQUFHLFFBQU1BLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU1BLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU1BLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU1BLE1BQUcsU0FBT0EsTUFBRyxTQUFPLFNBQU9BLE1BQUdBLE1BQUcsU0FBTyxTQUFPQSxNQUFHQSxNQUFHLFNBQU8sU0FBT0EsTUFBR0EsTUFBRyxTQUFPLFNBQU9BLE1BQUdBLE1BQUcsU0FBTyxTQUFPQSxNQUFHQSxNQUFHLFNBQU9BLE1BQUcsU0FBTyxVQUFRQSxNQUFHQSxNQUFHLFVBQVEsVUFBUUEsTUFBR0EsTUFBRyxVQUFRLFVBQVFBLE1BQUdBLE1BQUcsVUFBUSxVQUFRQSxNQUFHQSxNQUFHLFVBQVEsVUFBUUEsTUFBR0EsTUFBRyxVQUFRLFVBQVFBLE1BQUdBLE1BQUcsV0FBUyxXQUFTQSxNQUFHQSxNQUFHLFVBQVEsTUFBSTtBQUFBLE1BQUcsR0FBRUwsR0FBRSxrQkFBZ0IsU0FBU0MsSUFBRTtBQUFDLFlB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QUcsR0FBRSxPQUFPQyxNQUFHLFdBQVNBLEtBQUUsS0FBR0EsSUFBRUQsRUFBQyxHQUFFQTtBQUFHLElBQUksS0FBRyxjQUFjLEVBQUM7QUFBQSxNQUFDLFlBQVlDLElBQUU7QUFBQyxjQUFNQSxJQUFFLEtBQUUsR0FBRSxFQUFFLE1BQUssU0FBUyxHQUFFLEVBQUUsTUFBSyxVQUFTLENBQUMsR0FBRSxLQUFLLFVBQVFBLEdBQUUsU0FBUSxLQUFLLFFBQU0sQ0FBQyxHQUFHQSxHQUFFLGlCQUFlLENBQUMsQ0FBQyxHQUFFLEtBQUssU0FBTyxLQUFLLElBQUksS0FBSyxRQUFRLFVBQVUsQ0FBQyxFQUFDLE9BQU1ELEdBQUMsTUFBSUEsT0FBSUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLEtBQUssR0FBRyxPQUFNLENBQUFELE9BQUc7QUFBQyxVQUFBQSxPQUFJLE9BQUssS0FBSyxVQUFVO0FBQUEsUUFBRSxDQUFDLEdBQUUsS0FBSyxHQUFHLFVBQVMsQ0FBQUEsT0FBRztBQUFDLGtCQUFPQSxJQUFFO0FBQUEsWUFBQyxLQUFJO0FBQUEsWUFBTyxLQUFJO0FBQUssbUJBQUssU0FBTyxLQUFLLFdBQVMsSUFBRSxLQUFLLFFBQVEsU0FBTyxJQUFFLEtBQUssU0FBTztBQUFFO0FBQUEsWUFBTSxLQUFJO0FBQUEsWUFBTyxLQUFJO0FBQVEsbUJBQUssU0FBTyxLQUFLLFdBQVMsS0FBSyxRQUFRLFNBQU8sSUFBRSxJQUFFLEtBQUssU0FBTztBQUFFO0FBQUEsWUFBTSxLQUFJO0FBQVEsbUJBQUssWUFBWTtBQUFFO0FBQUEsVUFBSztBQUFBLFFBQUMsQ0FBQztBQUFBLE1BQUU7QUFBQSxNQUFDLElBQUksU0FBUTtBQUFDLGVBQU8sS0FBSyxRQUFRLEtBQUssTUFBTSxFQUFFO0FBQUEsTUFBSztBQUFBLE1BQUMsWUFBVztBQUFDLGNBQU1DLEtBQUUsS0FBSyxNQUFNLFdBQVMsS0FBSyxRQUFRO0FBQU8sYUFBSyxRQUFNQSxLQUFFLENBQUMsSUFBRSxLQUFLLFFBQVEsSUFBSSxDQUFBRCxPQUFHQSxHQUFFLEtB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QUNOQSxPQUFNLE9BQ05BLE9BQU0sT0FDTkEsTUFBSyxPQUFRQSxNQUFLLE9BQ2xCQSxPQUFNLE9BQ05BLE1BQUssT0FBUUEsTUFBSyxPQUNsQkEsT0FBTSxPQUNOQSxPQUFNLE9BQ05BLE9BQU0sT0FDTkEsT0FBTSxPQUNOQSxPQUFNLE9BQ05BLE1BQUssT0FBUUEsTUFBSyxPQUNsQkEsT0FBTSxPQUNOQSxPQUFNLE9BQ05BLE9BQU0sT0FDTkEsT0FBTSxPQUNOQSxPQUFNLE9BQ05BLE9BQU0sT0FDTkEsT0FBTSxPQUNOQSxPQUFNLE9BQ05BLE9BQU0sT0FDTkEsTUFBSyxPQUFTQSxNQUFLLE9BQ25CQSxPQUFNLE9BQ05BLE1BQUssT0FBU0EsTUFBSyxPQUNuQkEsT0FBTSxPQUNOQSxNQUFLLE9BQVNBLE1BQUssT0FDbkJBLE9BQU0sT0FDTkEsT0FBTSxPQUNOQSxPQUFNLE9BQ05BLE9BQU0sT0FDTkEsT0FBTSxPQUNOQSxPQUFNLE9BQ05BLE9BQU0sT0FDTkEsT0FBTSxPQUNOQSxPQUFNLE9BQ05BLE9BQU0sT0FDTkEsT0FBTSxPQUNOQSxPQUFNLE9BQ05BLE9BQU0sT0FDTkEsT0FBTSxPQUNOQSxPQUFNLE9BQ05BLE9BQU0sT0FDTkEsT0FBTSxPQUNOQSxPQUFNLE9BQ05BLE1BQUssT0FBU0EsTUFBSyxPQUNuQkEsT0FBTSxPQUNOQSxPQUFNLE9BQ05BLE1BQUssT0FBU0EsTUFBSyxPQUNuQkEsT0FBTSxPQUNOQSxPQUFNLE9BQ05BLE1BQUssT0FBU0EsTUFBSyxPQUNuQkEsTUFBSyxPQUFTQSxNQUFLLE9BQ25CQSxNQUFLLE9BQVNBLE1BQUssT0FDbkJBLE1BQUssT0FBU0EsTUFBSyxPQUNuQkEsTUFBSyxPQUFTQSxNQUFLLE9BQ25CQSxPQUFNLFFBQ05BLE1BQUssUUFBU0EsTUFBSyxRQUNuQkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE1BQUssUUFBVUEsTUFBSyxRQUNwQkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxNQUFLLFFBQVVBLE1BQUssUUFDcEJBLE1BQUssUUFBVUEsTUFBSyxRQUNwQkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE1BQUssUUFBVUEsTUFBSyxRQUNwQkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsTUFBSyxRQUFVQSxNQUFLLFFBQ3BCQSxNQUFLLFFBQVVBLE1BQUssUUFDcEJBLE1BQUssUUFBVUEsTUFBSyxRQUNwQkEsT0FBTSxRQUNOQSxNQUFLLFFBQVVBLE1BQUssUUFDcEJBLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE1BQUssUUFBVUEsTUFBSyxRQUNwQkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE1BQUssUUFBVUEsTUFBSyxRQUNwQkEsT0FBTSxRQUNOQSxNQUFLLFFBQVVBLE1BQUssUUFDcEJBLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsTUFBSyxRQUFVQSxNQUFLLFFBQ3BCQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE1BQUssUUFBVUEsTUFBSyxRQUNwQkEsTUFBSyxRQUFVQSxNQUFLLFFBQ3BCQSxNQUFLLFFBQVVBLE1BQUssUUFDcEJBLE1BQUssUUFBVUEsTUFBSyxRQUNwQkEsTUFBSyxRQUFVQSxNQUFLLFFBQ3BCQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsTUFBSyxRQUFVQSxNQUFLLFFBQ3BCQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsTUFBSyxRQUFVQSxNQUFLLFFBQ3BCQSxPQUFNLFFBQ05BLE1BQUssUUFBVUEsTUFBSyxRQUNwQkEsTUFBSyxRQUFVQSxNQUFLLFFBQ3BCQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxNQUFLLFFBQVVBLE1BQUssUUFDcEJBLE1BQUssUUFBVUEsTUFBSyxRQUNwQkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsTUFBSyxRQUFVQSxNQUFLLFFBQ3BCQSxNQUFLLFFBQVVBLE1BQUssUUFDcEJBLE1BQUssUUFBVUEsTUFBSyxRQUNwQkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsTUFBSyxRQUFVQSxNQUFLLFFBQ3BCQSxPQUFNLFFBQ05BLE1BQUssUUFBVUEsTUFBSyxRQUNwQkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFNBQ05BLE1BQUssU0FBVUEsTUFBSyxTQUNwQkEsTUFBSyxTQUFVQSxNQUFLLFNBQ3BCQSxNQUFLLFNBQVVBLE1BQUssU0FDcEJBLE1BQUssU0FBVUEsTUFBSyxTQUNwQkEsTUFBSyxTQUFVQSxNQUFLLFNBQ3BCQSxPQUFNLFNBQ05BLE1BQUssVUFBV0EsTUFBSyxVQUNyQkEsTUFBSyxVQUFXQSxNQUFLLFVBQ3JCQSxNQUFLLFVBQVdBLE1BQUssVUFDckJBLE1BQUssVUFBV0EsTUFBSyxVQUNyQkEsT0FBTSxVQUNOQSxPQUFNLFVBQ05BLE1BQUssVUFBV0EsTUFBSyxVQUNyQkEsTUFBSyxVQUFXQSxNQUFLLFVBQ3JCQSxNQUFLLFVBQVdBLE1BQUssV0FDckJBLE1BQUssV0FBWUEsTUFBSztBQUMzQjtBQUVBLFNBQVMsWUFBWUEsSUFBRztBQUN2QixTQUFPQSxPQUFNLFNBQ1RBLE1BQUssU0FBVUEsTUFBSyxTQUNwQkEsTUFBSyxTQUFVQSxNQUFLO0FBQ3pCO0FBRUEsU0FBUyxPQUFPQSxJQUFHO0FBQ2xCLFNBQU9BLE1BQUssUUFBVUEsTUFBSyxRQUN2QkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxNQUFLLFFBQVVBLE1BQUssUUFDcEJBLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE1BQUssUUFBVUEsTUFBSyxRQUNwQkEsTUFBSyxRQUFVQSxNQUFLLFFBQ3BCQSxPQUFNLFFBQ05BLE1BQUssUUFBVUEsTUFBSyxRQUNwQkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFNBQ05BLE9BQU0sU0FDTkEsT0FBTSxTQUNOQSxNQUFLLFNBQVVBLE1BQUssU0FDcEJBLE9BQU0sU0FDTkEsTUFBSyxTQUFVQSxNQUFLLFNBQ3BCQSxPQUFNLFNBQ05BLE9BQU0sU0FDTkEsT0FBTSxTQUNOQSxPQUFNLFNBQ05BLE9BQU0sU0FDTkEsT0FBTSxTQUNOQSxNQUFLLFNBQVVBLE1BQUssU0FDcEJBLE1BQUssU0FBVUEsTUFBSyxTQUNwQkEsTUFBSyxTQUFVQSxNQUFLLFNBQ3BCQSxNQUFLLFNBQVVBLE1BQUssU0FDcEJBLE1BQUssU0FBVUEsTUFBSyxTQUNwQkEsTUFBSyxTQUFVQSxNQUFLLFNBQ3BCQSxNQUFLLFNBQVVBLE1BQUssU0FDcEJBLE1BQUssU0FBVUEsTUFBSyxTQUNwQkEsTUFBSyxTQUFVQSxNQUFLLFNBQ3BCQSxNQUFLLFNBQVVBLE1BQUssU0FDcEJBLE1BQUssU0FBVUEsTUFBSyxTQUNwQkEsTUFBSyxTQUFVQSxNQUFLLFNBQ3BCQSxNQUFLLFNBQVVBLE1BQUssU0FDcEJBLE1BQUssU0FBVUEsTUFBSyxTQUNwQkEsTUFBSyxTQUFVQSxNQUFLLFNBQ3BCQSxNQUFLLFNBQVVBLE1BQUssU0FDcEJBLE1BQUssU0FBVUEsTUFBSyxTQUNwQkEsTUFBSyxTQUFVQSxNQUFLLFNBQ3BCQSxNQUFLLFNBQVVBLE1BQUssU0FDcEJBLE1BQUssU0FBVUEsTUFBSyxTQUNwQkEsTUFBSyxTQUFVQSxNQUFLLFNBQ3BCQSxNQUFLLFNBQVdBLE1BQUssU0FDckJBLE9BQU0sU0FDTkEsT0FBTSxTQUNOQSxNQUFLLFNBQVdBLE1BQUssVUFDckJBLE1BQUssVUFBV0EsTUFBSyxVQUNyQkEsTUFBSyxVQUFXQSxNQUFLLFVBQ3JCQSxNQUFLLFVBQVdBLE1BQUssVUFDckJBLE1BQUssVUFBV0EsTUFBSyxVQUNyQkEsT0FBTSxVQUNOQSxPQUFNLFVBQ05BLE1BQUssVUFBV0EsTUFBSyxVQUNyQkEsT0FBTSxVQUNOQSxNQUFLLFVBQVdBLE1BQUssVUFDckJBLE9BQU0sVUFDTkEsTUFBSyxVQUFXQSxNQUFLLFVBQ3JCQSxNQUFLLFVBQVdBLE1BQUssVUFDckJBLE1BQUssVUFBV0EsTUFBSyxVQUNyQkEsTUFBSyxVQUFXQSxNQUFLLFVBQ3JCQSxPQUFNLFVBQ05BLE9BQU0sVUFDTkEsT0FBTSxVQUNOQSxNQUFLLFVBQVdBLE1BQUssVUFDckJBLE1BQUssVUFBV0EsTUFBSyxVQUNyQkEsTUFBSyxVQUFXQSxNQUFLLFVBQ3JCQSxNQUFLLFVBQVdBLE1BQUssVUFDckJBLE9BQU0sVUFDTkEsT0FBTSxVQUNOQSxNQUFLLFVBQVdBLE1BQUssVUFDckJBLE1BQUssVUFBV0EsTUFBSyxVQUNyQkEsTUFBSyxVQUFXQSxNQUFLLFVBQ3JCQSxNQUFLLFVBQVdBLE1BQUssVUFDckJBLE1BQUssVUFBV0EsTUFBSyxVQUNyQkEsTUFBSyxVQUFXQSxNQUFLLFVBQ3JCQSxNQUFLLFVBQVdBLE1BQUssVUFDckJBLE1BQUssVUFBV0EsTUFBSyxVQUNyQkEsT0FBTSxVQUNOQSxNQUFLLFVBQVdBLE1BQUssVUFDckJBLE9BQU0sVUFDTkEsTUFBSyxVQUFXQSxNQUFLLFVBQ3JCQSxNQUFLLFVBQVdBLE1BQUssVUFDckJBLE1BQUssVUFBV0EsTUFBSyxVQUNyQkEsTUFBSyxVQUFXQSxNQUFLLFVBQ3JCQSxPQUFNLFVBQ05BLE9BQU0sVUFDTkEsT0FBTSxVQUNOQSxPQUFNLFVBQ05BLE1BQUssVUFBV0EsTUFBSyxVQUNyQkEsTUFBSyxVQUFXQSxNQUFLLFVBQ3JCQSxPQUFNLFVBQ05BLE1BQUssVUFBV0EsTUFBSyxVQUNyQkEsTUFBSyxVQUFXQSxNQUFLLFVBQ3JCQSxNQUFLLFVBQVdBLE1BQUssVUFDckJBLE9BQU0sVUFDTkEsT0FBTSxVQUNOQSxNQUFLLFVBQVdBLE1BQUssVUFDckJBLE1BQUssVUFBV0EsTUFBSyxVQUNyQkEsT0FBTSxVQUNOQSxNQUFLLFVBQVdBLE1BQUssVUFDckJBLE1BQUssVUFBV0EsTUFBSyxVQUNyQkEsTUFBSyxVQUFXQSxNQUFLLFVBQ3JCQSxNQUFLLFVBQVdBLE1BQUssVUFDckJBLE1BQUssVUFBV0EsTUFBSyxVQUNyQkEsTUFBSyxVQUFXQSxNQUFLLFVBQ3JCQSxNQUFLLFVBQVdBLE1BQUssVUFDckJBLE1BQUssVUFBV0EsTUFBSyxVQUNyQkEsTUFBSyxVQUFXQSxNQUFLLFVBQ3JCQSxNQUFLLFVBQVdBLE1BQUssVUFDckJBLE1BQUssVUFB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RUEsUUFBTSxjQUFjO0FBQUE7QUFHcEIsUUFBTSxhQUFhLGtCQUFrQixRQUFRO0FBQzdDLE1BQUksQ0FBQyxZQUFZO0FBQ2YsVUFBTSxJQUFJO0FBQUEsTUFDUiwwREFBMEQsV0FBVztBQUFBLEVBQ3pFLFdBQVc7QUFBQSxJQUNUO0FBQUEsRUFDRjtBQUVBLFFBQU0sUUFBUSxvQkFBb0IsVUFBVTtBQUM1QyxNQUFJLENBQUMsT0FBTztBQUNWLFVBQU0sSUFBSTtBQUFBLE1BQ1IsK0RBQStELFdBQVcscUJBQXFCLFVBQVU7QUFBQSxFQUM3RyxXQUFXO0FBQUEsSUFDVDtBQUFBLEVBQ0Y7QUFDRjtBQUVBLGVBQWUsWUFBWUEsSUFBVztBQUNwQyxNQUFJO0FBQ0YsV0FBTyxNQUFNLEdBQUcsU0FBU0EsSUFBRyxNQUFNO0FBQUEsRUFDcEMsUUFBUTtBQUNOLFdBQU87QUFBQSxFQUNUO0FBQ0Y7QUFFQSxlQUFlLGdCQUFnQkEsSUFBVztBQUN4QyxRQUFNLFdBQVcsTUFBTSxZQUFZQSxFQUFDO0FBQ3BDLE1BQUksYUFBYSxNQUFNO0FBQ3JCLFdBQU87QUFBQSxFQUNUO0FBQ0EsTUFBSTtBQUNGLFdBQU8saUJBQWlCLFFBQVE7QUFBQSxFQUNsQyxRQUFRO0FBQ04sV0FBTztBQUFBLEVBQ1Q7QUFDRjtBQUVBLFNBQVMsaUJBQWlCLFVBQWtCO0FBQzFDLE1BQUk7QUFDRixXQUFPLEtBQUssTUFBTSxRQUFRO0FBQUEsRUFDNUIsUUFBUTtBQUNOLFdBQU87QUFBQSxFQUNUO0FBQ0Y7IiwKICAibmFtZXMiOiBbImRlZmF1bHRzIiwgInAiLCAiYyIsICJpIiwgImwiLCAieCIsICJ0ZXh0IiwgImkiLCAieCIsICJ5IiwgImkiLCAicCIsICJhcmd2IiwgImVudiIsICJpc0NvbG9yU3VwcG9ydGVkIiwgInJlcGxhY2VDbG9zZSIsICJjcmVhdGVDb2xvcnMiLCAiRiIsICJ1IiwgInQiLCAicyIsICJXIiwgIkMiLCAiRCIsICJhIiwgIm4iLCAiQiIsICJjIiwgInAiLCAiRyIsICJhbnNpUmVnZXgiLCAic3RyaXBBbnNpIiwgIngiLCAiZW52IiwgIl8iLCAibSIsICJnZXRDb2xvciIsICJjcmVhdGVDb25zb2xhIiwgIlQiLCAiQSIsICJyIiwgImwiLCAiSSIsICJSIiwgInkiLCAiYyIsICJMIiwgIk8iLCAiTiIsICJQIiwgInVuaWNvZGUiLCAicyIsICJyZWdleCIsICJpIiwgIl9fZGVmUHJvcCIsICJhIiwgImMiLCAiZCIsICJnIiwgImkiLCAibCIsICJjIiwgInAiLCAieCIsICJrIiwgImRlZmF1bHRzIiwgImEiLCAicCIsICJfIiwgImkiLCAiayIsICJzdGRvdXQiXQp9Cg==
3709
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2NvbnNvbGFAMy4zLjEvbm9kZV9tb2R1bGVzL2NvbnNvbGEvZGlzdC9jb3JlLm1qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY29uc29sYUAzLjMuMS9ub2RlX21vZHVsZXMvY29uc29sYS9kaXN0L3NoYXJlZC9jb25zb2xhLkNzNUZkdEhELm1qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY29uc29sYUAzLjMuMS9ub2RlX21vZHVsZXMvY29uc29sYS9kaXN0L3NoYXJlZC9jb25zb2xhLkNCaTZObTlzLm1qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY29uc29sYUAzLjMuMS9ub2RlX21vZHVsZXMvY29uc29sYS9kaXN0L2NodW5rcy9wcm9tcHQubWpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9jb25zb2xhQDMuMy4xL25vZGVfbW9kdWxlcy9jb25zb2xhL2Rpc3Qvc2hhcmVkL2NvbnNvbGEuRDRKSzNSQ0subWpzIiwgIi4uL2luZGV4LnRzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9vaGFzaEAxLjEuNC9ub2RlX21vZHVsZXMvb2hhc2gvZGlzdC9pbmRleC5tanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2NvbnNvbGFAMy4zLjEvbm9kZV9tb2R1bGVzL2NvbnNvbGEvZGlzdC9pbmRleC5tanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2NvbnNvbGFAMy4zLjEvbm9kZV9tb2R1bGVzL2NvbnNvbGEvZGlzdC91dGlscy5tanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2NpdHR5QDAuMS42L25vZGVfbW9kdWxlcy9jaXR0eS9kaXN0L2luZGV4Lm1qcyIsICIuLi8uLi91dGlscy9pbmRleC50cyIsICIuLi9wYWNrYWdlLmpzb24iLCAiLi4vdGVtcGxhdGUudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IExvZ0xldmVscyA9IHtcbiAgc2lsZW50OiBOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFksXG4gIGZhdGFsOiAwLFxuICBlcnJvcjogMCxcbiAgd2FybjogMSxcbiAgbG9nOiAyLFxuICBpbmZvOiAzLFxuICBzdWNjZXNzOiAzLFxuICBmYWlsOiAzLFxuICByZWFkeTogMyxcbiAgc3RhcnQ6IDMsXG4gIGJveDogMyxcbiAgZGVidWc6IDQsXG4gIHRyYWNlOiA1LFxuICB2ZXJib3NlOiBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFlcbn07XG5jb25zdCBMb2dUeXBlcyA9IHtcbiAgLy8gU2lsZW50XG4gIHNpbGVudDoge1xuICAgIGxldmVsOiAtMVxuICB9LFxuICAvLyBMZXZlbCAwXG4gIGZhdGFsOiB7XG4gICAgbGV2ZWw6IExvZ0xldmVscy5mYXRhbFxuICB9LFxuICBlcnJvcjoge1xuICAgIGxldmVsOiBMb2dMZXZlbHMuZXJyb3JcbiAgfSxcbiAgLy8gTGV2ZWwgMVxuICB3YXJuOiB7XG4gICAgbGV2ZWw6IExvZ0xldmVscy53YXJuXG4gIH0sXG4gIC8vIExldmVsIDJcbiAgbG9nOiB7XG4gICAgbGV2ZWw6IExvZ0xldmVscy5sb2dcbiAgfSxcbiAgLy8gTGV2ZWwgM1xuICBpbmZvOiB7XG4gICAgbGV2ZWw6IExvZ0xldmVscy5pbmZvXG4gIH0sXG4gIHN1Y2Nlc3M6IHtcbiAgICBsZXZlbDogTG9nTGV2ZWxzLnN1Y2Nlc3NcbiAgfSxcbiAgZmFpbDoge1xuICAgIGxldmVsOiBMb2dMZXZlbHMuZmFpbFxuICB9LFxuICByZWFkeToge1xuICAgIGxldmVsOiBMb2dMZXZlbHMuaW5mb1xuICB9LFxuICBzdGFydDoge1xuICAgIGxldmVsOiBMb2dMZXZlbHMuaW5mb1xuICB9LFxuICBib3g6IHtcbiAgICBsZXZlbDogTG9nTGV2ZWxzLmluZm9cbiAgfSxcbiAgLy8gTGV2ZWwgNFxuICBkZWJ1Zzoge1xuICAgIGxldmVsOiBMb2dMZXZlbHMuZGVidWdcbiAgfSxcbiAgLy8gTGV2ZWwgNVxuICB0cmFjZToge1xuICAgIGxldmVsOiBMb2dMZXZlbHMudHJhY2VcbiAgfSxcbiAgLy8gVmVyYm9zZVxuICB2ZXJib3NlOiB7XG4gICAgbGV2ZWw6IExvZ0xldmVscy52ZXJib3NlXG4gIH1cbn07XG5cbmZ1bmN0aW9uIGlzUGxhaW5PYmplY3QkMSh2YWx1ZSkge1xuICBpZiAodmFsdWUgPT09IG51bGwgfHwgdHlwZW9mIHZhbHVlICE9PSBcIm9iamVjdFwiKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGNvbnN0IHByb3RvdHlwZSA9IE9iamVjdC5nZXRQcm90b3R5cGVPZih2YWx1ZSk7XG4gIGlmIChwcm90b3R5cGUgIT09IG51bGwgJiYgcHJvdG90eXBlICE9PSBPYmplY3QucHJvdG90eXBlICYmIE9iamVjdC5nZXRQcm90b3R5cGVPZihwcm90b3R5cGUpICE9PSBudWxsKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGlmIChTeW1ib2wuaXRlcmF0b3IgaW4gdmFsdWUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgaWYgKFN5bWJvbC50b1N0cmluZ1RhZyBpbiB2YWx1ZSkge1xuICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsdWUpID09PSBcIltvYmplY3QgTW9kdWxlXVwiO1xuICB9XG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiBfZGVmdShiYXNlT2JqZWN0LCBkZWZhdWx0cywgbmFtZXNwYWNlID0gXCIuXCIsIG1lcmdlcikge1xuICBpZiAoIWlzUGxhaW5PYmplY3QkMShkZWZhdWx0cykpIHtcbiAgICByZXR1cm4gX2RlZnUoYmFzZU9iamVjdCwge30sIG5hbWVzcGFjZSwgbWVyZ2VyKTtcbiAgfVxuICBjb25zdCBvYmplY3QgPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0cyk7XG4gIGZvciAoY29uc3Qga2V5IGluIGJhc2VPYmplY3QpIHtcbiAgICBpZiAoa2V5ID09PSBcIl9fcHJvdG9fX1wiIHx8IGtleSA9PT0gXCJjb25zdHJ1Y3RvclwiKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgY29uc3QgdmFsdWUgPSBiYXNlT2JqZWN0W2tleV07XG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB2b2lkIDApIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBpZiAobWVyZ2VyICYmIG1lcmdlcihvYmplY3QsIGtleSwgdmFsdWUsIG5hbWVzcGFjZSkpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgQXJyYXkuaXNBcnJheShvYmplY3Rba2V5XSkpIHtcbiAgICAgIG9iamVjdFtrZXldID0gWy4uLnZhbHVlLCAuLi5vYmplY3Rba2V5XV07XG4gICAgfSBlbHNlIGlmIChpc1BsYWluT2JqZWN0JDEodmFsdWUpICYmIGlzUGxhaW5PYmplY3QkMShvYmplY3Rba2V5XSkpIHtcbiAgICAgIG9iamVjdFtrZXldID0gX2RlZnUoXG4gICAgICAgIHZhbHVlLFxuICAgICAgICBvYmplY3Rba2V5XSxcbiAgICAgICAgKG5hbWVzcGFjZSA/IGAke25hbWVzcGFjZX0uYCA6IFwiXCIpICsga2V5LnRvU3RyaW5nKCksXG4gICAgICAgIG1lcmdlclxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgb2JqZWN0W2tleV0gPSB2YWx1ZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG9iamVjdDtcbn1cbmZ1bmN0aW9uIGNyZWF0ZURlZnUobWVyZ2VyKSB7XG4gIHJldHVybiAoLi4uYXJndW1lbnRzXykgPT4gKFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSB1bmljb3JuL25vLWFycmF5LXJlZHVjZVxuICAgIGFyZ3VtZW50c18ucmVkdWNlKChwLCBjKSA9PiBfZGVmdShwLCBjLCBcIlwiLCBtZXJnZXIpLCB7fSlcbiAgKTtcbn1cbmNvbnN0IGRlZnUgPSBjcmVhdGVEZWZ1KCk7XG5cbmZ1bmN0aW9uIGlzUGxhaW5PYmplY3Qob2JqKSB7XG4gIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqKSA9PT0gXCJbb2JqZWN0IE9iamVjdF1cIjtcbn1cbmZ1bmN0aW9uIGlzTG9nT2JqKGFyZykge1xuICBpZiAoIWlzUGxhaW5PYmplY3QoYXJnKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBpZiAoIWFyZy5tZXNzYWdlICYmICFhcmcuYXJncykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBpZiAoYXJnLnN0YWNrKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiB0cnVlO1xufVxuXG5sZXQgcGF1c2VkID0gZmFsc2U7XG5jb25zdCBxdWV1ZSA9IFtdO1xuY2xhc3MgQ29uc29sYSB7XG4gIG9wdGlvbnM7XG4gIF9sYXN0TG9nO1xuICBfbW9ja0ZuO1xuICAvKipcbiAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBDb25zb2xhIHdpdGggc3BlY2lmaWVkIG9wdGlvbnMgb3IgZGVmYXVsdHMuXG4gICAqXG4gICAqIEBwYXJhbSB7UGFydGlhbDxDb25zb2xhT3B0aW9ucz59IFtvcHRpb25zPXt9XSAtIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIENvbnNvbGEgaW5zdGFuY2UuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihvcHRpb25zID0ge30pIHtcbiAgICBjb25zdCB0eXBlcyA9IG9wdGlvbnMudHlwZXMgfHwgTG9nVHlwZXM7XG4gICAgdGhpcy5vcHRpb25zID0gZGVmdShcbiAgICAgIHtcbiAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgZGVmYXVsdHM6IHsgLi4ub3B0aW9ucy5kZWZhdWx0cyB9LFxuICAgICAgICBsZXZlbDogX25vcm1hbGl6ZUxvZ0xldmVsKG9wdGlvbnMubGV2ZWwsIHR5cGVzKSxcbiAgICAgICAgcmVwb3J0ZXJzOiBbLi4ub3B0aW9ucy5yZXBvcnRlcnMgfHwgW11dXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlczogTG9nVHlwZXMsXG4gICAgICAgIHRocm90dGxlOiAxZTMsXG4gICAgICAgIHRocm90dGxlTWluOiA1LFxuICAgICAgICBmb3JtYXRPcHRpb25zOiB7XG4gICAgICAgICAgZGF0ZTogdHJ1ZSxcbiAgICAgICAgICBjb2xvcnM6IGZhbHNlLFxuICAgICAgICAgIGNvbXBhY3Q6IHRydWVcbiAgICAgICAgfVxuICAgICAgfVxuICAgICk7XG4gICAgZm9yIChjb25zdCB0eXBlIGluIHR5cGVzKSB7XG4gICAgICBjb25zdCBkZWZhdWx0cyA9IHtcbiAgICAgICAgdHlwZSxcbiAgICAgICAgLi4udGhpcy5vcHRpb25zLmRlZmF1bHRzLFxuICAgICAgICAuLi50eXBlc1t0eXBlXVxuICAgICAgfTtcbiAgICAgIHRoaXNbdHlwZV0gPSB0aGlzLl93cmFwTG9nRm4oZGVmYXVsdHMpO1xuICAgICAgdGhpc1t0eXBlXS5yYXcgPSB0aGlzLl93cmFwTG9nRm4oXG4gICAgICAgIGRlZmF1bHRzLFxuICAgICAgICB0cnVlXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAodGhpcy5vcHRpb25zLm1vY2tGbikge1xuICAgICAgdGhpcy5tb2NrVHlwZXMoKTtcbiAgICB9XG4gICAgdGhpcy5fbGFzdExvZyA9IHt9O1xuICB9XG4gIC8qKlxuICAgKiBHZXRzIHRoZSBjdXJyZW50IGxvZyBsZXZlbCBvZiB0aGUgQ29uc29sYSBpbnN0YW5jZS5cbiAgICpcbiAgICogQHJldHVybnMge251bWJlcn0gVGhlIGN1cnJlbnQgbG9nIGxldmVsLlxuICAgKi9cbiAgZ2V0IGxldmVsKCkge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMubGV2ZWw7XG4gIH1cbiAgLyoqXG4gICAqIFNldHMgdGhlIG1pbmltdW0gbG9nIGxldmVsIHRoYXQgd2lsbCBiZSBvdXRwdXQgYnkgdGhlIGluc3RhbmNlLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gbGV2ZWwgLSBUaGUgbmV3IGxvZyBsZXZlbCB0byBzZXQuXG4gICAqL1xuICBzZXQgbGV2ZWwobGV2ZWwpIHtcbiAgICB0aGlzLm9wdGlvbnMubGV2ZWwgPSBfbm9ybWFsaXplTG9nTGV2ZWwoXG4gICAgICBsZXZlbCxcbiAgICAgIHRoaXMub3B0aW9ucy50eXBlcyxcbiAgICAgIHRoaXMub3B0aW9ucy5sZXZlbFxuICAgICk7XG4gIH1cbiAgLyoqXG4gICAqIERpc3BsYXlzIGEgcHJvbXB0IHRvIHRoZSB1c2VyIGFuZCByZXR1cm5zIHRoZSByZXNwb25zZS5cbiAgICogVGhyb3cgYW4gZXJyb3IgaWYgYHByb21wdGAgaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uLlxuICAgKlxuICAgKiBAdGVtcGxhdGUgVFxuICAgKiBAcGFyYW0ge3N0cmluZ30gbWVzc2FnZSAtIFRoZSBtZXNzYWdlIHRvIGRpc3BsYXkgaW4gdGhlIHByb21wdC5cbiAgICogQHBhcmFtIHtUfSBbb3B0c10gLSBPcHRpb25hbCBvcHRpb25zIGZvciB0aGUgcHJvbXB0LiBTZWUge0BsaW5rIFByb21wdE9wdGlvbnN9LlxuICAgKiBAcmV0dXJucyB7cHJvbWlzZTxUPn0gQSBwcm9taXNlIHRoYXQgaW5mZXIgd2l0aCB0aGUgcHJvbXB0IG9wdGlvbnMuIFNlZSB7QGxpbmsgUHJvbXB0T3B0aW9uc30uXG4gICAqL1xuICBwcm9tcHQobWVzc2FnZSwgb3B0cykge1xuICAgIGlmICghdGhpcy5vcHRpb25zLnByb21wdCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwicHJvbXB0IGlzIG5vdCBzdXBwb3J0ZWQhXCIpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLnByb21wdChtZXNzYWdlLCBvcHRzKTtcbiAgfVxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiBDb25zb2xhLCBpbmhlcml0aW5nIG9wdGlvbnMgZnJvbSB0aGUgY3VycmVudCBpbnN0YW5jZSwgd2l0aCBwb3NzaWJsZSBvdmVycmlkZXMuXG4gICAqXG4gICAqIEBwYXJhbSB7UGFydGlhbDxDb25zb2xhT3B0aW9ucz59IG9wdGlvbnMgLSBPcHRpb25hbCBvdmVycmlkZXMgZm9yIHRoZSBuZXcgaW5zdGFuY2UuIFNlZSB7QGxpbmsgQ29uc29sYU9wdGlvbnN9LlxuICAgKiBAcmV0dXJucyB7Q29uc29sYUluc3RhbmNlfSBBIG5ldyBDb25zb2xhIGluc3RhbmNlLiBTZWUge0BsaW5rIENvbnNvbGFJbnN0YW5jZX0uXG4gICAqL1xuICBjcmVhdGUob3B0aW9ucykge1xuICAgIGNvbnN0IGluc3RhbmNlID0gbmV3IENvbnNvbGEoe1xuICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgICAgLi4ub3B0aW9uc1xuICAgIH0pO1xuICAgIGlmICh0aGlzLl9tb2NrRm4pIHtcbiAgICAgIGluc3RhbmNlLm1vY2tUeXBlcyh0aGlzLl9tb2NrRm4pO1xuICAgIH1cbiAgICByZXR1cm4gaW5zdGFuY2U7XG4gIH1cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgQ29uc29sYSBpbnN0YW5jZSB3aXRoIHRoZSBzcGVjaWZpZWQgZGVmYXVsdCBsb2cgb2JqZWN0IHByb3BlcnRpZXMuXG4gICAqXG4gICAqIEBwYXJhbSB7SW5wdXRMb2dPYmplY3R9IGRlZmF1bHRzIC0gRGVmYXVsdCBwcm9wZXJ0aWVzIHRvIGluY2x1ZGUgaW4gYW55IGxvZyBmcm9tIHRoZSBuZXcgaW5zdGFuY2UuIFNlZSB7QGxpbmsgSW5wdXRMb2dPYmplY3R9LlxuICAgKiBAcmV0dXJucyB7Q29uc29sYUluc3RhbmNlfSBBIG5ldyBDb25zb2xhIGluc3RhbmNlLiBTZWUge0BsaW5rIENvbnNvbGFJbnN0YW5jZX0uXG4gICAqL1xuICB3aXRoRGVmYXVsdHMoZGVmYXVsdHMpIHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGUoe1xuICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgICAgZGVmYXVsdHM6IHtcbiAgICAgICAgLi4udGhpcy5vcHRpb25zLmRlZmF1bHRzLFxuICAgICAgICAuLi5kZWZhdWx0c1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IENvbnNvbGEgaW5zdGFuY2Ugd2l0aCBhIHNwZWNpZmllZCB0YWcsIHdoaWNoIHdpbGwgYmUgaW5jbHVkZWQgaW4gZXZlcnkgbG9nLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGFnIC0gVGhlIHRhZyB0byBpbmNsdWRlIGluIGVhY2ggbG9nIG9mIHRoZSBuZXcgaW5zdGFuY2UuXG4gICAqIEByZXR1cm5zIHtDb25zb2xhSW5zdGFuY2V9IEEgbmV3IENvbnNvbGEgaW5zdGFuY2UuIFNlZSB7QGxpbmsgQ29uc29sYUluc3RhbmNlfS5cbiAgICovXG4gIHdpdGhUYWcodGFnKSB7XG4gICAgcmV0dXJuIHRoaXMud2l0aERlZmF1bHRzKHtcbiAgICAgIHRhZzogdGhpcy5vcHRpb25zLmRlZmF1bHRzLnRhZyA/IHRoaXMub3B0aW9ucy5kZWZhdWx0cy50YWcgKyBcIjpcIiArIHRhZyA6IHRhZ1xuICAgIH0pO1xuICB9XG4gIC8qKlxuICAgKiBBZGRzIGEgY3VzdG9tIHJlcG9ydGVyIHRvIHRoZSBDb25zb2xhIGluc3RhbmNlLlxuICAgKiBSZXBvcnRlcnMgd2lsbCBiZSBjYWxsZWQgZm9yIGVhY2ggbG9nIG1lc3NhZ2UsIGRlcGVuZGluZyBvbiB0aGVpciBpbXBsZW1lbnRhdGlvbiBhbmQgbG9nIGxldmVsLlxuICAgKlxuICAgKiBAcGFyYW0ge0NvbnNvbGFSZXBvcnRlcn0gcmVwb3J0ZXIgLSBUaGUgcmVwb3J0ZXIgdG8gYWRkLiBTZWUge0BsaW5rIENvbnNvbGFSZXBvcnRlcn0uXG4gICAqIEByZXR1cm5zIHtDb25zb2xhfSBUaGUgY3VycmVudCBDb25zb2xhIGluc3RhbmNlLlxuICAgKi9cbiAgYWRkUmVwb3J0ZXIocmVwb3J0ZXIpIHtcbiAgICB0aGlzLm9wdGlvbnMucmVwb3J0ZXJzLnB1c2gocmVwb3J0ZXIpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIC8qKlxuICAgKiBSZW1vdmVzIGEgY3VzdG9tIHJlcG9ydGVyIGZyb20gdGhlIENvbnNvbGEgaW5zdGFuY2UuXG4gICAqIElmIG5vIHJlcG9ydGVyIGlzIHNwZWNpZmllZCwgYWxsIHJlcG9ydGVycyB3aWxsIGJlIHJlbW92ZWQuXG4gICAqXG4gICAqIEBwYXJhbSB7Q29uc29sYVJlcG9ydGVyfSByZXBvcnRlciAtIFRoZSByZXBvcnRlciB0byByZW1vdmUuIFNlZSB7QGxpbmsgQ29uc29sYVJlcG9ydGVyfS5cbiAgICogQHJldHVybnMge0NvbnNvbGF9IFRoZSBjdXJyZW50IENvbnNvbGEgaW5zdGFuY2UuXG4gICAqL1xuICByZW1vdmVSZXBvcnRlcihyZXBvcnRlcikge1xuICAgIGlmIChyZXBvcnRlcikge1xuICAgICAgY29uc3QgaSA9IHRoaXMub3B0aW9ucy5yZXBvcnRlcnMuaW5kZXhPZihyZXBvcnRlcik7XG4gICAgICBpZiAoaSAhPT0gLTEpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5yZXBvcnRlcnMuc3BsaWNlKGksIDEpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9wdGlvbnMucmVwb3J0ZXJzLnNwbGljZSgwKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgLyoqXG4gICAqIFJlcGxhY2VzIGFsbCByZXBvcnRlcnMgb2YgdGhlIENvbnNvbGEgaW5zdGFuY2Ugd2l0aCB0aGUgc3BlY2lmaWVkIGFycmF5IG9mIHJlcG9ydGVycy5cbiAgICpcbiAgICogQHBhcmFtIHtDb25zb2xhUmVwb3J0ZXJbXX0gcmVwb3J0ZXJzIC0gVGhlIG5ldyByZXBvcnRlcnMgdG8gc2V0LiBTZWUge0BsaW5rIENvbnNvbGFSZXBvcnRlcn0uXG4gICAqIEByZXR1cm5zIHtDb25zb2xhfSBUaGUgY3VycmVudCBDb25zb2xhIGluc3RhbmNlLlxuICAgKi9cbiAgc2V0UmVwb3J0ZXJzKHJlcG9ydGVycykge1xuICAgIHRoaXMub3B0aW9ucy5yZXBvcnRlcnMgPSBBcnJheS5pc0FycmF5KHJlcG9ydGVycykgPyByZXBvcnRlcnMgOiBbcmVwb3J0ZXJzXTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICB3cmFwQWxsKCkge1xuICAgIHRoaXMud3JhcENvbnNvbGUoKTtcbiAgICB0aGlzLndyYXBTdGQoKTtcbiAgfVxuICByZXN0b3JlQWxsKCkge1xuICAgIHRoaXMucmVzdG9yZUNvbnNvbGUoKTtcbiAgICB0aGlzLnJlc3RvcmVTdGQoKTtcbiAgfVxuICAvKipcbiAgICogT3ZlcnJpZGVzIGNvbnNvbGUgbWV0aG9kcyB3aXRoIENvbnNvbGEgbG9nZ2luZyBtZXRob2RzIGZvciBjb25zaXN0ZW50IGxvZ2dpbmcuXG4gICAqL1xuICB3cmFwQ29uc29sZSgpIHtcbiAgICBmb3IgKGNvbnN0IHR5cGUgaW4gdGhpcy5vcHRpb25zLnR5cGVzKSB7XG4gICAgICBpZiAoIWNvbnNvbGVbXCJfX1wiICsgdHlwZV0pIHtcbiAgICAgICAgY29uc29sZVtcIl9fXCIgKyB0eXBlXSA9IGNvbnNvbGVbdHlwZV07XG4gICAgICB9XG4gICAgICBjb25zb2xlW3R5cGVdID0gdGhpc1t0eXBlXS5yYXc7XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBSZXN0b3JlcyB0aGUgb3JpZ2luYWwgY29uc29sZSBtZXRob2RzLCByZW1vdmluZyBDb25zb2xhIG92ZXJyaWRlcy5cbiAgICovXG4gIHJlc3RvcmVDb25zb2xlKCkge1xuICAgIGZvciAoY29uc3QgdHlwZSBpbiB0aGlzLm9wdGlvbnMudHlwZXMpIHtcbiAgICAgIGlmIChjb25zb2xlW1wiX19cIiArIHR5cGVdKSB7XG4gICAgICAgIGNvbnNvbGVbdHlwZV0gPSBjb25zb2xlW1wiX19cIiArIHR5cGVdO1xuICAgICAgICBkZWxldGUgY29uc29sZVtcIl9fXCIgKyB0eXBlXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIE92ZXJyaWRlcyBzdGFuZGFyZCBvdXRwdXQgYW5kIGVycm9yIHN0cmVhbXMgdG8gcmVkaXJlY3QgdGhlbSB0aHJvdWdoIENvbnNvbGEuXG4gICAqL1xuICB3cmFwU3RkKCkge1xuICAgIHRoaXMuX3dyYXBTdHJlYW0odGhpcy5vcHRpb25zLnN0ZG91dCwgXCJsb2dcIik7XG4gICAgdGhpcy5fd3JhcFN0cmVhbSh0aGlzLm9wdGlvbnMuc3RkZXJyLCBcImxvZ1wiKTtcbiAgfVxuICBfd3JhcFN0cmVhbShzdHJlYW0sIHR5cGUpIHtcbiAgICBpZiAoIXN0cmVhbSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIXN0cmVhbS5fX3dyaXRlKSB7XG4gICAgICBzdHJlYW0uX193cml0ZSA9IHN0cmVhbS53cml0ZTtcbiAgICB9XG4gICAgc3RyZWFtLndyaXRlID0gKGRhdGEpID0+IHtcbiAgICAgIHRoaXNbdHlwZV0ucmF3KFN0cmluZyhkYXRhKS50cmltKCkpO1xuICAgIH07XG4gIH1cbiAgLyoqXG4gICAqIFJlc3RvcmVzIHRoZSBvcmlnaW5hbCBzdGFuZGFyZCBvdXRwdXQgYW5kIGVycm9yIHN0cmVhbXMsIHJlbW92aW5nIHRoZSBDb25zb2xhIHJlZGlyZWN0aW9uLlxuICAgKi9cbiAgcmVzdG9yZVN0ZCgpIHtcbiAgICB0aGlzLl9yZXN0b3JlU3RyZWFtKHRoaXMub3B0aW9ucy5zdGRvdXQpO1xuICAgIHRoaXMuX3Jlc3RvcmVTdHJlYW0odGhpcy5vcHRpb25zLnN0ZGVycik7XG4gIH1cbiAgX3Jlc3RvcmVTdHJlYW0oc3RyZWFtKSB7XG4gICAgaWYgKCFzdHJlYW0pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHN0cmVhbS5fX3dyaXRlKSB7XG4gICAgICBzdHJlYW0ud3JpdGUgPSBzdHJlYW0uX193cml0ZTtcbiAgICAgIGRlbGV0ZSBzdHJlYW0uX193cml0ZTtcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIFBhdXNlcyBsb2dnaW5nLCBxdWV1ZXMgaW5jb21pbmcgbG9ncyB1bnRpbCByZXN1bWVkLlxuICAgKi9cbiAgcGF1c2VMb2dzKCkge1xuICAgIHBhdXNlZCA9IHRydWU7XG4gIH1cbiAgLyoqXG4gICAqIFJlc3VtZXMgbG9nZ2luZywgcHJvY2Vzc2luZyBhbnkgcXVldWVkIGxvZ3MuXG4gICAqL1xuICByZXN1bWVMb2dzKCkge1xuICAgIHBhdXNlZCA9IGZhbHNlO1xuICAgIGNvbnN0IF9xdWV1ZSA9IHF1ZXVlLnNwbGljZSgwKTtcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgX3F1ZXVlKSB7XG4gICAgICBpdGVtWzBdLl9sb2dGbihpdGVtWzFdLCBpdGVtWzJdKTtcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIFJlcGxhY2VzIGxvZ2dpbmcgbWV0aG9kcyB3aXRoIG1vY2tzIGlmIGEgbW9jayBmdW5jdGlvbiBpcyBwcm92aWRlZC5cbiAgICpcbiAgICogQHBhcmFtIHtDb25zb2xhT3B0aW9uc1tcIm1vY2tGblwiXX0gbW9ja0ZuIC0gVGhlIGZ1bmN0aW9uIHRvIHVzZSBmb3IgbW9ja2luZyBsb2dnaW5nIG1ldGhvZHMuIFNlZSB7QGxpbmsgQ29uc29sYU9wdGlvbnNbXCJtb2NrRm5cIl19LlxuICAgKi9cbiAgbW9ja1R5cGVzKG1vY2tGbikge1xuICAgIGNvbnN0IF9tb2NrRm4gPSBtb2NrRm4gfHwgdGhpcy5vcHRpb25zLm1vY2tGbjtcbiAgICB0aGlzLl9tb2NrRm4gPSBfbW9ja0ZuO1xuICAgIGlmICh0eXBlb2YgX21vY2tGbiAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGZvciAoY29uc3QgdHlwZSBpbiB0aGlzLm9wdGlvbnMudHlwZXMpIHtcbiAgICAgIHRoaXNbdHlwZV0gPSBfbW9ja0ZuKHR5cGUsIHRoaXMub3B0aW9ucy50eXBlc1t0eXBlXSkgfHwgdGhpc1t0eXBlXTtcbiAgICAgIHRoaXNbdHlwZV0ucmF3ID0gdGhpc1t0eXBlXTtcbiAgICB9XG4gIH1cbiAgX3dyYXBMb2dGbihkZWZhdWx0cywgaXNSYXcpIHtcbiAgICByZXR1cm4gKC4uLmFyZ3MpID0+IHtcbiAgICAgIGlmIChwYXVzZWQpIHtcbiAgICAgICAgcXVldWUucHVzaChbdGhpcywgZGVmYXVsdHMsIGFyZ3MsIGlzUmF3XSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLl9sb2dGbihkZWZhdWx0cywgYXJncywgaXNSYXcpO1xuICAgIH07XG4gIH1cbiAgX2xvZ0ZuKGRlZmF1bHRzLCBhcmdzLCBpc1Jhdykge1xuICAgIGlmICgoZGVmYXVsdHMubGV2ZWwgfHwgMCkgPiB0aGlzLmxldmVsKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IGxvZ09iaiA9IHtcbiAgICAgIGRhdGU6IC8qIEBfX1BVUkVfXyAqLyBuZXcgRGF0ZSgpLFxuICAgICAgYXJnczogW10sXG4gICAgICAuLi5kZWZhdWx0cyxcbiAgICAgIGxldmVsOiBfbm9ybWFsaXplTG9nTGV2ZWwoZGVmYXVsdHMubGV2ZWwsIHRoaXMub3B0aW9ucy50eXBlcylcbiAgICB9O1xuICAgIGlmICghaXNSYXcgJiYgYXJncy5sZW5ndGggPT09IDEgJiYgaXNMb2dPYmooYXJnc1swXSkpIHtcbiAgICAgIE9iamVjdC5hc3NpZ24obG9nT2JqLCBhcmdzWzBdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbG9nT2JqLmFyZ3MgPSBbLi4uYXJnc107XG4gICAgfVxuICAgIGlmIChsb2dPYmoubWVzc2FnZSkge1xuICAgICAgbG9nT2JqLmFyZ3MudW5zaGlmdChsb2dPYmoubWVzc2FnZSk7XG4gICAgICBkZWxldGUgbG9nT2JqLm1lc3NhZ2U7XG4gICAgfVxuICAgIGlmIChsb2dPYmouYWRkaXRpb25hbCkge1xuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGxvZ09iai5hZGRpdGlvbmFsKSkge1xuICAgICAgICBsb2dPYmouYWRkaXRpb25hbCA9IGxvZ09iai5hZGRpdGlvbmFsLnNwbGl0KFwiXFxuXCIpO1xuICAgICAgfVxuICAgICAgbG9nT2JqLmFyZ3MucHVzaChcIlxcblwiICsgbG9nT2JqLmFkZGl0aW9uYWwuam9pbihcIlxcblwiKSk7XG4gICAgICBkZWxldGUgbG9nT2JqLmFkZGl0aW9uYWw7XG4gICAgfVxuICAgIGxvZ09iai50eXBlID0gdHlwZW9mIGxvZ09iai50eXBlID09PSBcInN0cmluZ1wiID8gbG9nT2JqLnR5cGUudG9Mb3dlckNhc2UoKSA6IFwibG9nXCI7XG4gICAgbG9nT2JqLnRhZyA9IHR5cGVvZiBsb2dPYmoudGFnID09PSBcInN0cmluZ1wiID8gbG9nT2JqLnRhZyA6IFwiXCI7XG4gICAgY29uc3QgcmVzb2x2ZUxvZyA9IChuZXdMb2cgPSBmYWxzZSkgPT4ge1xuICAgICAgY29uc3QgcmVwZWF0ZWQgPSAodGhpcy5fbGFzdExvZy5jb3VudCB8fCAwKSAtIHRoaXMub3B0aW9ucy50aHJvdHRsZU1pbjtcbiAgICAgIGlmICh0aGlzLl9sYXN0TG9nLm9iamVjdCAmJiByZXBlYXRlZCA+IDApIHtcbiAgICAgICAgY29uc3QgYXJnczIgPSBbLi4udGhpcy5fbGFzdExvZy5vYmplY3QuYXJnc107XG4gICAgICAgIGlmIChyZXBlYXRlZCA+IDEpIHtcbiAgICAgICAgICBhcmdzMi5wdXNoKGAocmVwZWF0ZWQgJHtyZXBlYXRlZH0gdGltZXMpYCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fbG9nKHsgLi4udGhpcy5fbGFzdExvZy5vYmplY3QsIGFyZ3M6IGFyZ3MyIH0pO1xuICAgICAgICB0aGlzLl9sYXN0TG9nLmNvdW50ID0gMTtcbiAgICAgIH1cbiAgICAgIGlmIChuZXdMb2cpIHtcbiAgICAgICAgdGhpcy5fbGFzdExvZy5vYmplY3QgPSBsb2dPYmo7XG4gICAgICAgIHRoaXMuX2xvZyhsb2dPYmopO1xuICAgICAgfVxuICAgIH07XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuX2xhc3RMb2cudGltZW91dCk7XG4gICAgY29uc3QgZGlmZlRpbWUgPSB0aGlzLl9sYXN0TG9nLnRpbWUgJiYgbG9nT2JqLmRhdGUgPyBsb2dPYmouZGF0ZS5nZXRUaW1lKCkgLSB0aGlzLl9sYXN0TG9nLnRpbWUuZ2V0VGltZSgpIDogMDtcbiAgICB0aGlzLl9sYXN0TG9nLnRpbWUgPSBsb2dPYmouZGF0ZTtcbiAgICBpZiAoZGlmZlRpbWUgPCB0aGlzLm9wdGlvbnMudGhyb3R0bGUpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHNlcmlhbGl6ZWRMb2cgPSBKU09OLnN0cmluZ2lmeShbXG4gICAgICAgICAgbG9nT2JqLnR5cGUsXG4gICAgICAgICAgbG9nT2JqLnRhZyxcbiAgICAgICAgICBsb2dPYmouYXJnc1xuICAgICAgICBdKTtcbiAgICAgICAgY29uc3QgaXNTYW1lTG9nID0gdGhpcy5fbGFzdExvZy5zZXJpYWxpemVkID09PSBzZXJpYWxpemVkTG9nO1xuICAgICAgICB0aGlzLl9sYXN0TG9nLnNlcmlhbGl6ZWQgPSBzZXJpYWxpemVkTG9nO1xuICAgICAgICBpZiAoaXNTYW1lTG9nKSB7XG4gICAgICAgICAgdGhpcy5fbGFzdExvZy5jb3VudCA9ICh0aGlzLl9sYXN0TG9nLmNvdW50IHx8IDApICsgMTtcbiAgICAgICAgICBpZiAodGhpcy5fbGFzdExvZy5jb3VudCA+IHRoaXMub3B0aW9ucy50aHJvdHRsZU1pbikge1xuICAgICAgICAgICAgdGhpcy5fbGFzdExvZy50aW1lb3V0ID0gc2V0VGltZW91dChcbiAgICAgICAgICAgICAgcmVzb2x2ZUxvZyxcbiAgICAgICAgICAgICAgdGhpcy5vcHRpb25zLnRocm90dGxlXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCB7XG4gICAgICB9XG4gICAgfVxuICAgIHJlc29sdmVMb2codHJ1ZSk7XG4gIH1cbiAgX2xvZyhsb2dPYmopIHtcbiAgICBmb3IgKGNvbnN0IHJlcG9ydGVyIG9mIHRoaXMub3B0aW9ucy5yZXBvcnRlcnMpIHtcbiAgICAgIHJlcG9ydGVyLmxvZyhsb2dPYmosIHtcbiAgICAgICAgb3B0aW9uczogdGhpcy5vcHRpb25zXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIF9ub3JtYWxpemVMb2dMZXZlbChpbnB1dCwgdHlwZXMgPSB7fSwgZGVmYXVsdExldmVsID0gMykge1xuICBpZiAoaW5wdXQgPT09IHZvaWQgMCkge1xuICAgIHJldHVybiBkZWZhdWx0TGV2ZWw7XG4gIH1cbiAgaWYgKHR5cGVvZiBpbnB1dCA9PT0gXCJudW1iZXJcIikge1xuICAgIHJldHVybiBpbnB1dDtcbiAgfVxuICBpZiAodHlwZXNbaW5wdXRdICYmIHR5cGVzW2lucHV0XS5sZXZlbCAhPT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuIHR5cGVzW2lucHV0XS5sZXZlbDtcbiAgfVxuICByZXR1cm4gZGVmYXVsdExldmVsO1xufVxuQ29uc29sYS5wcm90b3R5cGUuYWRkID0gQ29uc29sYS5wcm90b3R5cGUuYWRkUmVwb3J0ZXI7XG5Db25zb2xhLnByb3RvdHlwZS5yZW1vdmUgPSBDb25zb2xhLnByb3RvdHlwZS5yZW1vdmVSZXBvcnRlcjtcbkNvbnNvbGEucHJvdG90eXBlLmNsZWFyID0gQ29uc29sYS5wcm90b3R5cGUucmVtb3ZlUmVwb3J0ZXI7XG5Db25zb2xhLnByb3RvdHlwZS53aXRoU2NvcGUgPSBDb25zb2xhLnByb3RvdHlwZS53aXRoVGFnO1xuQ29uc29sYS5wcm90b3R5cGUubW9jayA9IENvbnNvbGEucHJvdG90eXBlLm1vY2tUeXBlcztcbkNvbnNvbGEucHJvdG90eXBlLnBhdXNlID0gQ29uc29sYS5wcm90b3R5cGUucGF1c2VMb2dzO1xuQ29uc29sYS5wcm90b3R5cGUucmVzdW1lID0gQ29uc29sYS5wcm90b3R5cGUucmVzdW1lTG9ncztcbmZ1bmN0aW9uIGNyZWF0ZUNvbnNvbGEob3B0aW9ucyA9IHt9KSB7XG4gIHJldHVybiBuZXcgQ29uc29sYShvcHRpb25zKTtcbn1cblxuZXhwb3J0IHsgQ29uc29sYSwgTG9nTGV2ZWxzLCBMb2dUeXBlcywgY3JlYXRlQ29uc29sYSB9O1xuIiwgImltcG9ydCB7IGZvcm1hdFdpdGhPcHRpb25zIH0gZnJvbSAnbm9kZTp1dGlsJztcbmltcG9ydCB7IHNlcCB9IGZyb20gJ25vZGU6cGF0aCc7XG5cbmZ1bmN0aW9uIHBhcnNlU3RhY2soc3RhY2spIHtcbiAgY29uc3QgY3dkID0gcHJvY2Vzcy5jd2QoKSArIHNlcDtcbiAgY29uc3QgbGluZXMgPSBzdGFjay5zcGxpdChcIlxcblwiKS5zcGxpY2UoMSkubWFwKChsKSA9PiBsLnRyaW0oKS5yZXBsYWNlKFwiZmlsZTovL1wiLCBcIlwiKS5yZXBsYWNlKGN3ZCwgXCJcIikpO1xuICByZXR1cm4gbGluZXM7XG59XG5cbmZ1bmN0aW9uIHdyaXRlU3RyZWFtKGRhdGEsIHN0cmVhbSkge1xuICBjb25zdCB3cml0ZSA9IHN0cmVhbS5fX3dyaXRlIHx8IHN0cmVhbS53cml0ZTtcbiAgcmV0dXJuIHdyaXRlLmNhbGwoc3RyZWFtLCBkYXRhKTtcbn1cblxuY29uc3QgYnJhY2tldCA9ICh4KSA9PiB4ID8gYFske3h9XWAgOiBcIlwiO1xuY2xhc3MgQmFzaWNSZXBvcnRlciB7XG4gIGZvcm1hdFN0YWNrKHN0YWNrLCBvcHRzKSB7XG4gICAgY29uc3QgaW5kZW50ID0gXCIgIFwiLnJlcGVhdCgob3B0cz8uZXJyb3JMZXZlbCB8fCAwKSArIDEpO1xuICAgIHJldHVybiBpbmRlbnQgKyBwYXJzZVN0YWNrKHN0YWNrKS5qb2luKGBcbiR7aW5kZW50fWApO1xuICB9XG4gIGZvcm1hdEVycm9yKGVyciwgb3B0cykge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBlcnIubWVzc2FnZSA/PyBmb3JtYXRXaXRoT3B0aW9ucyhvcHRzLCBlcnIpO1xuICAgIGNvbnN0IHN0YWNrID0gZXJyLnN0YWNrID8gdGhpcy5mb3JtYXRTdGFjayhlcnIuc3RhY2ssIG9wdHMpIDogXCJcIjtcbiAgICBjb25zdCBsZXZlbCA9IG9wdHM/LmVycm9yTGV2ZWwgfHwgMDtcbiAgICBjb25zdCBjYXVzZWRQcmVmaXggPSBsZXZlbCA+IDAgPyBgJHtcIiAgXCIucmVwZWF0KGxldmVsKX1bY2F1c2VdOiBgIDogXCJcIjtcbiAgICBjb25zdCBjYXVzZWRFcnJvciA9IGVyci5jYXVzZSA/IFwiXFxuXFxuXCIgKyB0aGlzLmZvcm1hdEVycm9yKGVyci5jYXVzZSwgeyAuLi5vcHRzLCBlcnJvckxldmVsOiBsZXZlbCArIDEgfSkgOiBcIlwiO1xuICAgIHJldHVybiBjYXVzZWRQcmVmaXggKyBtZXNzYWdlICsgXCJcXG5cIiArIHN0YWNrICsgY2F1c2VkRXJyb3I7XG4gIH1cbiAgZm9ybWF0QXJncyhhcmdzLCBvcHRzKSB7XG4gICAgY29uc3QgX2FyZ3MgPSBhcmdzLm1hcCgoYXJnKSA9PiB7XG4gICAgICBpZiAoYXJnICYmIHR5cGVvZiBhcmcuc3RhY2sgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0RXJyb3IoYXJnLCBvcHRzKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhcmc7XG4gICAgfSk7XG4gICAgcmV0dXJuIGZvcm1hdFdpdGhPcHRpb25zKG9wdHMsIC4uLl9hcmdzKTtcbiAgfVxuICBmb3JtYXREYXRlKGRhdGUsIG9wdHMpIHtcbiAgICByZXR1cm4gb3B0cy5kYXRlID8gZGF0ZS50b0xvY2FsZVRpbWVTdHJpbmcoKSA6IFwiXCI7XG4gIH1cbiAgZmlsdGVyQW5kSm9pbihhcnIpIHtcbiAgICByZXR1cm4gYXJyLmZpbHRlcihCb29sZWFuKS5qb2luKFwiIFwiKTtcbiAgfVxuICBmb3JtYXRMb2dPYmoobG9nT2JqLCBvcHRzKSB7XG4gICAgY29uc3QgbWVzc2FnZSA9IHRoaXMuZm9ybWF0QXJncyhsb2dPYmouYXJncywgb3B0cyk7XG4gICAgaWYgKGxvZ09iai50eXBlID09PSBcImJveFwiKSB7XG4gICAgICByZXR1cm4gXCJcXG5cIiArIFtcbiAgICAgICAgYnJhY2tldChsb2dPYmoudGFnKSxcbiAgICAgICAgbG9nT2JqLnRpdGxlICYmIGxvZ09iai50aXRsZSxcbiAgICAgICAgLi4ubWVzc2FnZS5zcGxpdChcIlxcblwiKVxuICAgICAgXS5maWx0ZXIoQm9vbGVhbikubWFwKChsKSA9PiBcIiA+IFwiICsgbCkuam9pbihcIlxcblwiKSArIFwiXFxuXCI7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmZpbHRlckFuZEpvaW4oW1xuICAgICAgYnJhY2tldChsb2dPYmoudHlwZSksXG4gICAgICBicmFja2V0KGxvZ09iai50YWcpLFxuICAgICAgbWVzc2FnZVxuICAgIF0pO1xuICB9XG4gIGxvZyhsb2dPYmosIGN0eCkge1xuICAgIGNvbnN0IGxpbmUgPSB0aGlzLmZvcm1hdExvZ09iaihsb2dPYmosIHtcbiAgICAgIGNvbHVtbnM6IGN0eC5vcHRpb25zLnN0ZG91dC5jb2x1bW5zIHx8IDAsXG4gICAgICAuLi5jdHgub3B0aW9ucy5mb3JtYXRPcHRpb25zXG4gICAgfSk7XG4gICAgcmV0dXJuIHdyaXRlU3RyZWFtKFxuICAgICAgbGluZSArIFwiXFxuXCIsXG4gICAgICBsb2dPYmoubGV2ZWwgPCAyID8gY3R4Lm9wdGlvbnMuc3RkZXJyIHx8IHByb2Nlc3Muc3RkZXJyIDogY3R4Lm9wdGlvbnMuc3Rkb3V0IHx8IHByb2Nlc3Muc3Rkb3V0XG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgeyBCYXNpY1JlcG9ydGVyIGFzIEIsIHBhcnNlU3RhY2sgYXMgcCB9O1xuIiwgImltcG9ydCAqIGFzIHR0eSBmcm9tICdub2RlOnR0eSc7XG5cbmNvbnN0IHtcbiAgZW52ID0ge30sXG4gIGFyZ3YgPSBbXSxcbiAgcGxhdGZvcm0gPSBcIlwiXG59ID0gdHlwZW9mIHByb2Nlc3MgPT09IFwidW5kZWZpbmVkXCIgPyB7fSA6IHByb2Nlc3M7XG5jb25zdCBpc0Rpc2FibGVkID0gXCJOT19DT0xPUlwiIGluIGVudiB8fCBhcmd2LmluY2x1ZGVzKFwiLS1uby1jb2xvclwiKTtcbmNvbnN0IGlzRm9yY2VkID0gXCJGT1JDRV9DT0xPUlwiIGluIGVudiB8fCBhcmd2LmluY2x1ZGVzKFwiLS1jb2xvclwiKTtcbmNvbnN0IGlzV2luZG93cyA9IHBsYXRmb3JtID09PSBcIndpbjMyXCI7XG5jb25zdCBpc0R1bWJUZXJtaW5hbCA9IGVudi5URVJNID09PSBcImR1bWJcIjtcbmNvbnN0IGlzQ29tcGF0aWJsZVRlcm1pbmFsID0gdHR5ICYmIHR0eS5pc2F0dHkgJiYgdHR5LmlzYXR0eSgxKSAmJiBlbnYuVEVSTSAmJiAhaXNEdW1iVGVybWluYWw7XG5jb25zdCBpc0NJID0gXCJDSVwiIGluIGVudiAmJiAoXCJHSVRIVUJfQUNUSU9OU1wiIGluIGVudiB8fCBcIkdJVExBQl9DSVwiIGluIGVudiB8fCBcIkNJUkNMRUNJXCIgaW4gZW52KTtcbmNvbnN0IGlzQ29sb3JTdXBwb3J0ZWQgPSAhaXNEaXNhYmxlZCAmJiAoaXNGb3JjZWQgfHwgaXNXaW5kb3dzICYmICFpc0R1bWJUZXJtaW5hbCB8fCBpc0NvbXBhdGlibGVUZXJtaW5hbCB8fCBpc0NJKTtcbmZ1bmN0aW9uIHJlcGxhY2VDbG9zZShpbmRleCwgc3RyaW5nLCBjbG9zZSwgcmVwbGFjZSwgaGVhZCA9IHN0cmluZy5zbGljZSgwLCBNYXRoLm1heCgwLCBpbmRleCkpICsgcmVwbGFjZSwgdGFpbCA9IHN0cmluZy5zbGljZShNYXRoLm1heCgwLCBpbmRleCArIGNsb3NlLmxlbmd0aCkpLCBuZXh0ID0gdGFpbC5pbmRleE9mKGNsb3NlKSkge1xuICByZXR1cm4gaGVhZCArIChuZXh0IDwgMCA/IHRhaWwgOiByZXBsYWNlQ2xvc2UobmV4dCwgdGFpbCwgY2xvc2UsIHJlcGxhY2UpKTtcbn1cbmZ1bmN0aW9uIGNsZWFyQmxlZWQoaW5kZXgsIHN0cmluZywgb3BlbiwgY2xvc2UsIHJlcGxhY2UpIHtcbiAgcmV0dXJuIGluZGV4IDwgMCA/IG9wZW4gKyBzdHJpbmcgKyBjbG9zZSA6IG9wZW4gKyByZXBsYWNlQ2xvc2UoaW5kZXgsIHN0cmluZywgY2xvc2UsIHJlcGxhY2UpICsgY2xvc2U7XG59XG5mdW5jdGlvbiBmaWx0ZXJFbXB0eShvcGVuLCBjbG9zZSwgcmVwbGFjZSA9IG9wZW4sIGF0ID0gb3Blbi5sZW5ndGggKyAxKSB7XG4gIHJldHVybiAoc3RyaW5nKSA9PiBzdHJpbmcgfHwgIShzdHJpbmcgPT09IFwiXCIgfHwgc3RyaW5nID09PSB2b2lkIDApID8gY2xlYXJCbGVlZChcbiAgICAoXCJcIiArIHN0cmluZykuaW5kZXhPZihjbG9zZSwgYXQpLFxuICAgIHN0cmluZyxcbiAgICBvcGVuLFxuICAgIGNsb3NlLFxuICAgIHJlcGxhY2VcbiAgKSA6IFwiXCI7XG59XG5mdW5jdGlvbiBpbml0KG9wZW4sIGNsb3NlLCByZXBsYWNlKSB7XG4gIHJldHVybiBmaWx0ZXJFbXB0eShgXFx4MUJbJHtvcGVufW1gLCBgXFx4MUJbJHtjbG9zZX1tYCwgcmVwbGFjZSk7XG59XG5jb25zdCBjb2xvckRlZnMgPSB7XG4gIHJlc2V0OiBpbml0KDAsIDApLFxuICBib2xkOiBpbml0KDEsIDIyLCBcIlxceDFCWzIybVxceDFCWzFtXCIpLFxuICBkaW06IGluaXQoMiwgMjIsIFwiXFx4MUJbMjJtXFx4MUJbMm1cIiksXG4gIGl0YWxpYzogaW5pdCgzLCAyMyksXG4gIHVuZGVybGluZTogaW5pdCg0LCAyNCksXG4gIGludmVyc2U6IGluaXQoNywgMjcpLFxuICBoaWRkZW46IGluaXQoOCwgMjgpLFxuICBzdHJpa2V0aHJvdWdoOiBpbml0KDksIDI5KSxcbiAgYmxhY2s6IGluaXQoMzAsIDM5KSxcbiAgcmVkOiBpbml0KDMxLCAzOSksXG4gIGdyZWVuOiBpbml0KDMyLCAzOSksXG4gIHllbGxvdzogaW5pdCgzMywgMzkpLFxuICBibHVlOiBpbml0KDM0LCAzOSksXG4gIG1hZ2VudGE6IGluaXQoMzUsIDM5KSxcbiAgY3lhbjogaW5pdCgzNiwgMzkpLFxuICB3aGl0ZTogaW5pdCgzNywgMzkpLFxuICBncmF5OiBpbml0KDkwLCAzOSksXG4gIGJnQmxhY2s6IGluaXQoNDAsIDQ5KSxcbiAgYmdSZWQ6IGluaXQoNDEsIDQ5KSxcbiAgYmdHcmVlbjogaW5pdCg0MiwgNDkpLFxuICBiZ1llbGxvdzogaW5pdCg0MywgNDkpLFxuICBiZ0JsdWU6IGluaXQoNDQsIDQ5KSxcbiAgYmdNYWdlbnRhOiBpbml0KDQ1LCA0OSksXG4gIGJnQ3lhbjogaW5pdCg0NiwgNDkpLFxuICBiZ1doaXRlOiBpbml0KDQ3LCA0OSksXG4gIGJsYWNrQnJpZ2h0OiBpbml0KDkwLCAzOSksXG4gIHJlZEJyaWdodDogaW5pdCg5MSwgMzkpLFxuICBncmVlbkJyaWdodDogaW5pdCg5MiwgMzkpLFxuICB5ZWxsb3dCcmlnaHQ6IGluaXQoOTMsIDM5KSxcbiAgYmx1ZUJyaWdodDogaW5pdCg5NCwgMzkpLFxuICBtYWdlbnRhQnJpZ2h0OiBpbml0KDk1LCAzOSksXG4gIGN5YW5CcmlnaHQ6IGluaXQoOTYsIDM5KSxcbiAgd2hpdGVCcmlnaHQ6IGluaXQoOTcsIDM5KSxcbiAgYmdCbGFja0JyaWdodDogaW5pdCgxMDAsIDQ5KSxcbiAgYmdSZWRCcmlnaHQ6IGluaXQoMTAxLCA0OSksXG4gIGJnR3JlZW5CcmlnaHQ6IGluaXQoMTAyLCA0OSksXG4gIGJnWWVsbG93QnJpZ2h0OiBpbml0KDEwMywgNDkpLFxuICBiZ0JsdWVCcmlnaHQ6IGluaXQoMTA0LCA0OSksXG4gIGJnTWFnZW50YUJyaWdodDogaW5pdCgxMDUsIDQ5KSxcbiAgYmdDeWFuQnJpZ2h0OiBpbml0KDEwNiwgNDkpLFxuICBiZ1doaXRlQnJpZ2h0OiBpbml0KDEwNywgNDkpXG59O1xuZnVuY3Rpb24gY3JlYXRlQ29sb3JzKHVzZUNvbG9yID0gaXNDb2xvclN1cHBvcnRlZCkge1xuICByZXR1cm4gdXNlQ29sb3IgPyBjb2xvckRlZnMgOiBPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmtleXMoY29sb3JEZWZzKS5tYXAoKGtleSkgPT4gW2tleSwgU3RyaW5nXSkpO1xufVxuY29uc3QgY29sb3JzID0gY3JlYXRlQ29sb3JzKCk7XG5mdW5jdGlvbiBnZXRDb2xvcihjb2xvciwgZmFsbGJhY2sgPSBcInJlc2V0XCIpIHtcbiAgcmV0dXJuIGNvbG9yc1tjb2xvcl0gfHwgY29sb3JzW2ZhbGxiYWNrXTtcbn1cbmZ1bmN0aW9uIGNvbG9yaXplKGNvbG9yLCB0ZXh0KSB7XG4gIHJldHVybiBnZXRDb2xvcihjb2xvcikodGV4dCk7XG59XG5cbmNvbnN0IGFuc2lSZWdleCA9IFtcbiAgU3RyaW5nLnJhd2BbXFx1MDAxQlxcdTAwOUJdW1tcXF0oKSM7P10qKD86KD86KD86KD86O1stYS16QS1aXFxkXFwvIyYuOj0/JUB+X10rKSp8W2EtekEtWlxcZF0rKD86O1stYS16QS1aXFxkXFwvIyYuOj0/JUB+X10qKSopP1xcdTAwMDcpYCxcbiAgU3RyaW5nLnJhd2AoPzooPzpcXGR7MSw0fSg/OjtcXGR7MCw0fSkqKT9bXFxkQS1QUi1UWmNmLW5xLXV5PT48fl0pKWBcbl0uam9pbihcInxcIik7XG5mdW5jdGlvbiBzdHJpcEFuc2kodGV4dCkge1xuICByZXR1cm4gdGV4dC5yZXBsYWNlKG5ldyBSZWdFeHAoYW5zaVJlZ2V4LCBcImdcIiksIFwiXCIpO1xufVxuZnVuY3Rpb24gY2VudGVyQWxpZ24oc3RyLCBsZW4sIHNwYWNlID0gXCIgXCIpIHtcbiAgY29uc3QgZnJlZSA9IGxlbiAtIHN0ci5sZW5ndGg7XG4gIGlmIChmcmVlIDw9IDApIHtcbiAgICByZXR1cm4gc3RyO1xuICB9XG4gIGNvbnN0IGZyZWVMZWZ0ID0gTWF0aC5mbG9vcihmcmVlIC8gMik7XG4gIGxldCBfc3RyID0gXCJcIjtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgIF9zdHIgKz0gaSA8IGZyZWVMZWZ0IHx8IGkgPj0gZnJlZUxlZnQgKyBzdHIubGVuZ3RoID8gc3BhY2UgOiBzdHJbaSAtIGZyZWVMZWZ0XTtcbiAgfVxuICByZXR1cm4gX3N0cjtcbn1cbmZ1bmN0aW9uIHJpZ2h0QWxpZ24oc3RyLCBsZW4sIHNwYWNlID0gXCIgXCIpIHtcbiAgY29uc3QgZnJlZSA9IGxlbiAtIHN0ci5sZW5ndGg7XG4gIGlmIChmcmVlIDw9IDApIHtcbiAgICByZXR1cm4gc3RyO1xuICB9XG4gIGxldCBfc3RyID0gXCJcIjtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgIF9zdHIgKz0gaSA8IGZyZWUgPyBzcGFjZSA6IHN0cltpIC0gZnJlZV07XG4gIH1cbiAgcmV0dXJuIF9zdHI7XG59XG5mdW5jdGlvbiBsZWZ0QWxpZ24oc3RyLCBsZW4sIHNwYWNlID0gXCIgXCIpIHtcbiAgbGV0IF9zdHIgPSBcIlwiO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgX3N0ciArPSBpIDwgc3RyLmxlbmd0aCA/IHN0cltpXSA6IHNwYWNlO1xuICB9XG4gIHJldHVybiBfc3RyO1xufVxuZnVuY3Rpb24gYWxpZ24oYWxpZ25tZW50LCBzdHIsIGxlbiwgc3BhY2UgPSBcIiBcIikge1xuICBzd2l0Y2ggKGFsaWdubWVudCkge1xuICAgIGNhc2UgXCJsZWZ0XCI6IHtcbiAgICAgIHJldHVybiBsZWZ0QWxpZ24oc3RyLCBsZW4sIHNwYWNlKTtcbiAgICB9XG4gICAgY2FzZSBcInJpZ2h0XCI6IHtcbiAgICAgIHJldHVybiByaWdodEFsaWduKHN0ciwgbGVuLCBzcGFjZSk7XG4gICAgfVxuICAgIGNhc2UgXCJjZW50ZXJcIjoge1xuICAgICAgcmV0dXJuIGNlbnRlckFsaWduKHN0ciwgbGVuLCBzcGFjZSk7XG4gICAgfVxuICAgIGRlZmF1bHQ6IHtcbiAgICAgIHJldHVybiBzdHI7XG4gICAgfVxuICB9XG59XG5cbmNvbnN0IGJveFN0eWxlUHJlc2V0cyA9IHtcbiAgc29saWQ6IHtcbiAgICB0bDogXCJcXHUyNTBDXCIsXG4gICAgdHI6IFwiXFx1MjUxMFwiLFxuICAgIGJsOiBcIlxcdTI1MTRcIixcbiAgICBicjogXCJcXHUyNTE4XCIsXG4gICAgaDogXCJcXHUyNTAwXCIsXG4gICAgdjogXCJcXHUyNTAyXCJcbiAgfSxcbiAgZG91YmxlOiB7XG4gICAgdGw6IFwiXFx1MjU1NFwiLFxuICAgIHRyOiBcIlxcdTI1NTdcIixcbiAgICBibDogXCJcXHUyNTVBXCIsXG4gICAgYnI6IFwiXFx1MjU1RFwiLFxuICAgIGg6IFwiXFx1MjU1MFwiLFxuICAgIHY6IFwiXFx1MjU1MVwiXG4gIH0sXG4gIGRvdWJsZVNpbmdsZToge1xuICAgIHRsOiBcIlxcdTI1NTNcIixcbiAgICB0cjogXCJcXHUyNTU2XCIsXG4gICAgYmw6IFwiXFx1MjU1OVwiLFxuICAgIGJyOiBcIlxcdTI1NUNcIixcbiAgICBoOiBcIlxcdTI1MDBcIixcbiAgICB2OiBcIlxcdTI1NTFcIlxuICB9LFxuICBkb3VibGVTaW5nbGVSb3VuZGVkOiB7XG4gICAgdGw6IFwiXFx1MjU2RFwiLFxuICAgIHRyOiBcIlxcdTI1NkVcIixcbiAgICBibDogXCJcXHUyNTcwXCIsXG4gICAgYnI6IFwiXFx1MjU2RlwiLFxuICAgIGg6IFwiXFx1MjUwMFwiLFxuICAgIHY6IFwiXFx1MjU1MVwiXG4gIH0sXG4gIHNpbmdsZVRoaWNrOiB7XG4gICAgdGw6IFwiXFx1MjUwRlwiLFxuICAgIHRyOiBcIlxcdTI1MTNcIixcbiAgICBibDogXCJcXHUyNTE3XCIsXG4gICAgYnI6IFwiXFx1MjUxQlwiLFxuICAgIGg6IFwiXFx1MjUwMVwiLFxuICAgIHY6IFwiXFx1MjUwM1wiXG4gIH0sXG4gIHNpbmdsZURvdWJsZToge1xuICAgIHRsOiBcIlxcdTI1NTJcIixcbiAgICB0cjogXCJcXHUyNTU1XCIsXG4gICAgYmw6IFwiXFx1MjU1OFwiLFxuICAgIGJyOiBcIlxcdTI1NUJcIixcbiAgICBoOiBcIlxcdTI1NTBcIixcbiAgICB2OiBcIlxcdTI1MDJcIlxuICB9LFxuICBzaW5nbGVEb3VibGVSb3VuZGVkOiB7XG4gICAgdGw6IFwiXFx1MjU2RFwiLFxuICAgIHRyOiBcIlxcdTI1NkVcIixcbiAgICBibDogXCJcXHUyNTcwXCIsXG4gICAgYnI6IFwiXFx1MjU2RlwiLFxuICAgIGg6IFwiXFx1MjU1MFwiLFxuICAgIHY6IFwiXFx1MjUwMlwiXG4gIH0sXG4gIHJvdW5kZWQ6IHtcbiAgICB0bDogXCJcXHUyNTZEXCIsXG4gICAgdHI6IFwiXFx1MjU2RVwiLFxuICAgIGJsOiBcIlxcdTI1NzBcIixcbiAgICBicjogXCJcXHUyNTZGXCIsXG4gICAgaDogXCJcXHUyNTAwXCIsXG4gICAgdjogXCJcXHUyNTAyXCJcbiAgfVxufTtcbmNvbnN0IGRlZmF1bHRTdHlsZSA9IHtcbiAgYm9yZGVyQ29sb3I6IFwid2hpdGVcIixcbiAgYm9yZGVyU3R5bGU6IFwicm91bmRlZFwiLFxuICB2YWxpZ246IFwiY2VudGVyXCIsXG4gIHBhZGRpbmc6IDIsXG4gIG1hcmdpbkxlZnQ6IDEsXG4gIG1hcmdpblRvcDogMSxcbiAgbWFyZ2luQm90dG9tOiAxXG59O1xuZnVuY3Rpb24gYm94KHRleHQsIF9vcHRzID0ge30pIHtcbiAgY29uc3Qgb3B0cyA9IHtcbiAgICAuLi5fb3B0cyxcbiAgICBzdHlsZToge1xuICAgICAgLi4uZGVmYXVsdFN0eWxlLFxuICAgICAgLi4uX29wdHMuc3R5bGVcbiAgICB9XG4gIH07XG4gIGNvbnN0IHRleHRMaW5lcyA9IHRleHQuc3BsaXQoXCJcXG5cIik7XG4gIGNvbnN0IGJveExpbmVzID0gW107XG4gIGNvbnN0IF9jb2xvciA9IGdldENvbG9yKG9wdHMuc3R5bGUuYm9yZGVyQ29sb3IpO1xuICBjb25zdCBib3JkZXJTdHlsZSA9IHtcbiAgICAuLi50eXBlb2Ygb3B0cy5zdHlsZS5ib3JkZXJTdHlsZSA9PT0gXCJzdHJpbmdcIiA/IGJveFN0eWxlUHJlc2V0c1tvcHRzLnN0eWxlLmJvcmRlclN0eWxlXSB8fCBib3hTdHlsZVByZXNldHMuc29saWQgOiBvcHRzLnN0eWxlLmJvcmRlclN0eWxlXG4gIH07XG4gIGlmIChfY29sb3IpIHtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBib3JkZXJTdHlsZSkge1xuICAgICAgYm9yZGVyU3R5bGVba2V5XSA9IF9jb2xvcihcbiAgICAgICAgYm9yZGVyU3R5bGVba2V5XVxuICAgICAgKTtcbiAgICB9XG4gIH1cbiAgY29uc3QgcGFkZGluZ09mZnNldCA9IG9wdHMuc3R5bGUucGFkZGluZyAlIDIgPT09IDAgPyBvcHRzLnN0eWxlLnBhZGRpbmcgOiBvcHRzLnN0eWxlLnBhZGRpbmcgKyAxO1xuICBjb25zdCBoZWlnaHQgPSB0ZXh0TGluZXMubGVuZ3RoICsgcGFkZGluZ09mZnNldDtcbiAgY29uc3Qgd2lkdGggPSBNYXRoLm1heCguLi50ZXh0TGluZXMubWFwKChsaW5lKSA9PiBsaW5lLmxlbmd0aCkpICsgcGFkZGluZ09mZnNldDtcbiAgY29uc3Qgd2lkdGhPZmZzZXQgPSB3aWR0aCArIHBhZGRpbmdPZmZzZXQ7XG4gIGNvbnN0IGxlZnRTcGFjZSA9IG9wdHMuc3R5bGUubWFyZ2luTGVmdCA+IDAgPyBcIiBcIi5yZXBlYXQob3B0cy5zdHlsZS5tYXJnaW5MZWZ0KSA6IFwiXCI7XG4gIGlmIChvcHRzLnN0eWxlLm1hcmdpblRvcCA+IDApIHtcbiAgICBib3hMaW5lcy5wdXNoKFwiXCIucmVwZWF0KG9wdHMuc3R5bGUubWFyZ2luVG9wKSk7XG4gIH1cbiAgaWYgKG9wdHMudGl0bGUpIHtcbiAgICBjb25zdCB0aXRsZSA9IF9jb2xvciA/IF9jb2xvcihvcHRzLnRpdGxlKSA6IG9wdHMudGl0bGU7XG4gICAgY29uc3QgbGVmdCA9IGJvcmRlclN0eWxlLmgucmVwZWF0KFxuICAgICAgTWF0aC5mbG9vcigod2lkdGggLSBzdHJpcEFuc2kob3B0cy50aXRsZSkubGVuZ3RoKSAvIDIpXG4gICAgKTtcbiAgICBjb25zdCByaWdodCA9IGJvcmRlclN0eWxlLmgucmVwZWF0KFxuICAgICAgd2lkdGggLSBzdHJpcEFuc2kob3B0cy50aXRsZSkubGVuZ3RoIC0gc3RyaXBBbnNpKGxlZnQpLmxlbmd0aCArIHBhZGRpbmdPZmZzZXRcbiAgICApO1xuICAgIGJveExpbmVzLnB1c2goXG4gICAgICBgJHtsZWZ0U3BhY2V9JHtib3JkZXJTdHlsZS50bH0ke2xlZnR9JHt0aXRsZX0ke3JpZ2h0fSR7Ym9yZGVyU3R5bGUudHJ9YFxuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgYm94TGluZXMucHVzaChcbiAgICAgIGAke2xlZnRTcGFjZX0ke2JvcmRlclN0eWxlLnRsfSR7Ym9yZGVyU3R5bGUuaC5yZXBlYXQod2lkdGhPZmZzZXQpfSR7Ym9yZGVyU3R5bGUudHJ9YFxuICAgICk7XG4gIH1cbiAgY29uc3QgdmFsaWduT2Zmc2V0ID0gb3B0cy5zdHlsZS52YWxpZ24gPT09IFwiY2VudGVyXCIgPyBNYXRoLmZsb29yKChoZWlnaHQgLSB0ZXh0TGluZXMubGVuZ3RoKSAvIDIpIDogb3B0cy5zdHlsZS52YWxpZ24gPT09IFwidG9wXCIgPyBoZWlnaHQgLSB0ZXh0TGluZXMubGVuZ3RoIC0gcGFkZGluZ09mZnNldCA6IGhlaWdodCAtIHRleHRMaW5lcy5sZW5ndGg7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgaGVpZ2h0OyBpKyspIHtcbiAgICBpZiAoaSA8IHZhbGlnbk9mZnNldCB8fCBpID49IHZhbGlnbk9mZnNldCArIHRleHRMaW5lcy5sZW5ndGgpIHtcbiAgICAgIGJveExpbmVzLnB1c2goXG4gICAgICAgIGAke2xlZnRTcGFjZX0ke2JvcmRlclN0eWxlLnZ9JHtcIiBcIi5yZXBlYXQod2lkdGhPZmZzZXQpfSR7Ym9yZGVyU3R5bGUudn1gXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBsaW5lID0gdGV4dExpbmVzW2kgLSB2YWxpZ25PZmZzZXRdO1xuICAgICAgY29uc3QgbGVmdCA9IFwiIFwiLnJlcGVhdChwYWRkaW5nT2Zmc2V0KTtcbiAgICAgIGNvbnN0IHJpZ2h0ID0gXCIgXCIucmVwZWF0KHdpZHRoIC0gc3RyaXBBbnNpKGxpbmUpLmxlbmd0aCk7XG4gICAgICBib3hMaW5lcy5wdXNoKFxuICAgICAgICBgJHtsZWZ0U3BhY2V9JHtib3JkZXJTdHlsZS52fSR7bGVmdH0ke2xpbmV9JHtyaWdodH0ke2JvcmRlclN0eWxlLnZ9YFxuICAgICAgKTtcbiAgICB9XG4gIH1cbiAgYm94TGluZXMucHVzaChcbiAgICBgJHtsZWZ0U3BhY2V9JHtib3JkZXJTdHlsZS5ibH0ke2JvcmRlclN0eWxlLmgucmVwZWF0KHdpZHRoT2Zmc2V0KX0ke2JvcmRlclN0eWxlLmJyfWBcbiAgKTtcbiAgaWYgKG9wdHMuc3R5bGUubWFyZ2luQm90dG9tID4gMCkge1xuICAgIGJveExpbmVzLnB1c2goXCJcIi5yZXBlYXQob3B0cy5zdHlsZS5tYXJnaW5Cb3R0b20pKTtcbiAgfVxuICByZXR1cm4gYm94TGluZXMuam9pbihcIlxcblwiKTtcbn1cblxuZXhwb3J0IHsgYWxpZ24gYXMgYSwgYm94IGFzIGIsIGNlbnRlckFsaWduIGFzIGMsIGNvbG9ycyBhcyBkLCBjb2xvcml6ZSBhcyBlLCBnZXRDb2xvciBhcyBnLCBsZWZ0QWxpZ24gYXMgbCwgcmlnaHRBbGlnbiBhcyByLCBzdHJpcEFuc2kgYXMgcyB9O1xuIiwgImltcG9ydCB7IHN0ZGluLCBzdGRvdXQgfSBmcm9tICdub2RlOnByb2Nlc3MnO1xuaW1wb3J0IGcgZnJvbSAnbm9kZTpyZWFkbGluZSc7XG5pbXBvcnQgeyBXcml0ZVN0cmVhbSB9IGZyb20gJ25vZGU6dHR5JztcbmltcG9ydCB7IGkgYXMgaXNVbmljb2RlU3VwcG9ydGVkIH0gZnJvbSAnLi4vc2hhcmVkL2NvbnNvbGEuRDRKSzNSQ0subWpzJztcbmltcG9ydCB7IGQgYXMgY29sb3JzIH0gZnJvbSAnLi4vc2hhcmVkL2NvbnNvbGEuQ0JpNk5tOXMubWpzJztcbmltcG9ydCAnLi4vY29yZS5tanMnO1xuaW1wb3J0ICcuLi9zaGFyZWQvY29uc29sYS5DczVGZHRIRC5tanMnO1xuaW1wb3J0ICdub2RlOnV0aWwnO1xuaW1wb3J0ICdub2RlOnBhdGgnO1xuXG5mdW5jdGlvbiBnZXREZWZhdWx0RXhwb3J0RnJvbUNqcyAoeCkge1xuXHRyZXR1cm4geCAmJiB4Ll9fZXNNb2R1bGUgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHgsICdkZWZhdWx0JykgPyB4WydkZWZhdWx0J10gOiB4O1xufVxuXG52YXIgc3JjO1xudmFyIGhhc1JlcXVpcmVkU3JjO1xuXG5mdW5jdGlvbiByZXF1aXJlU3JjICgpIHtcblx0aWYgKGhhc1JlcXVpcmVkU3JjKSByZXR1cm4gc3JjO1xuXHRoYXNSZXF1aXJlZFNyYyA9IDE7XG5cblx0Y29uc3QgRVNDID0gJ1xceDFCJztcblx0Y29uc3QgQ1NJID0gYCR7RVNDfVtgO1xuXHRjb25zdCBiZWVwID0gJ1xcdTAwMDcnO1xuXG5cdGNvbnN0IGN1cnNvciA9IHtcblx0ICB0byh4LCB5KSB7XG5cdCAgICBpZiAoIXkpIHJldHVybiBgJHtDU0l9JHt4ICsgMX1HYDtcblx0ICAgIHJldHVybiBgJHtDU0l9JHt5ICsgMX07JHt4ICsgMX1IYDtcblx0ICB9LFxuXHQgIG1vdmUoeCwgeSkge1xuXHQgICAgbGV0IHJldCA9ICcnO1xuXG5cdCAgICBpZiAoeCA8IDApIHJldCArPSBgJHtDU0l9JHsteH1EYDtcblx0ICAgIGVsc2UgaWYgKHggPiAwKSByZXQgKz0gYCR7Q1NJfSR7eH1DYDtcblxuXHQgICAgaWYgKHkgPCAwKSByZXQgKz0gYCR7Q1NJfSR7LXl9QWA7XG5cdCAgICBlbHNlIGlmICh5ID4gMCkgcmV0ICs9IGAke0NTSX0ke3l9QmA7XG5cblx0ICAgIHJldHVybiByZXQ7XG5cdCAgfSxcblx0ICB1cDogKGNvdW50ID0gMSkgPT4gYCR7Q1NJfSR7Y291bnR9QWAsXG5cdCAgZG93bjogKGNvdW50ID0gMSkgPT4gYCR7Q1NJfSR7Y291bnR9QmAsXG5cdCAgZm9yd2FyZDogKGNvdW50ID0gMSkgPT4gYCR7Q1NJfSR7Y291bnR9Q2AsXG5cdCAgYmFja3dhcmQ6IChjb3VudCA9IDEpID0+IGAke0NTSX0ke2NvdW50fURgLFxuXHQgIG5leHRMaW5lOiAoY291bnQgPSAxKSA9PiBgJHtDU0l9RWAucmVwZWF0KGNvdW50KSxcblx0ICBwcmV2TGluZTogKGNvdW50ID0gMSkgPT4gYCR7Q1NJfUZgLnJlcGVhdChjb3VudCksXG5cdCAgbGVmdDogYCR7Q1NJfUdgLFxuXHQgIGhpZGU6IGAke0NTSX0/MjVsYCxcblx0ICBzaG93OiBgJHtDU0l9PzI1aGAsXG5cdCAgc2F2ZTogYCR7RVNDfTdgLFxuXHQgIHJlc3RvcmU6IGAke0VTQ304YFxuXHR9O1xuXG5cdGNvbnN0IHNjcm9sbCA9IHtcblx0ICB1cDogKGNvdW50ID0gMSkgPT4gYCR7Q1NJfVNgLnJlcGVhdChjb3VudCksXG5cdCAgZG93bjogKGNvdW50ID0gMSkgPT4gYCR7Q1NJfVRgLnJlcGVhdChjb3VudClcblx0fTtcblxuXHRjb25zdCBlcmFzZSA9IHtcblx0ICBzY3JlZW46IGAke0NTSX0ySmAsXG5cdCAgdXA6IChjb3VudCA9IDEpID0+IGAke0NTSX0xSmAucmVwZWF0KGNvdW50KSxcblx0ICBkb3duOiAoY291bnQgPSAxKSA9PiBgJHtDU0l9SmAucmVwZWF0KGNvdW50KSxcblx0ICBsaW5lOiBgJHtDU0l9MktgLFxuXHQgIGxpbmVFbmQ6IGAke0NTSX1LYCxcblx0ICBsaW5lU3RhcnQ6IGAke0NTSX0xS2AsXG5cdCAgbGluZXMoY291bnQpIHtcblx0ICAgIGxldCBjbGVhciA9ICcnO1xuXHQgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKVxuXHQgICAgICBjbGVhciArPSB0aGlzLmxpbmUgKyAoaSA8IGNvdW50IC0gMSA/IGN1cnNvci51cCgpIDogJycpO1xuXHQgICAgaWYgKGNvdW50KVxuXHQgICAgICBjbGVhciArPSBjdXJzb3IubGVmdDtcblx0ICAgIHJldHVybiBjbGVhcjtcblx0ICB9XG5cdH07XG5cblx0c3JjID0geyBjdXJzb3IsIHNjcm9sbCwgZXJhc2UsIGJlZXAgfTtcblx0cmV0dXJuIHNyYztcbn1cblxudmFyIHNyY0V4cG9ydHMgPSByZXF1aXJlU3JjKCk7XG5cbnZhciBwaWNvY29sb3JzID0ge2V4cG9ydHM6IHt9fTtcblxudmFyIGhhc1JlcXVpcmVkUGljb2NvbG9ycztcblxuZnVuY3Rpb24gcmVxdWlyZVBpY29jb2xvcnMgKCkge1xuXHRpZiAoaGFzUmVxdWlyZWRQaWNvY29sb3JzKSByZXR1cm4gcGljb2NvbG9ycy5leHBvcnRzO1xuXHRoYXNSZXF1aXJlZFBpY29jb2xvcnMgPSAxO1xuXHRsZXQgcCA9IHByb2Nlc3MgfHwge30sIGFyZ3YgPSBwLmFyZ3YgfHwgW10sIGVudiA9IHAuZW52IHx8IHt9O1xuXHRsZXQgaXNDb2xvclN1cHBvcnRlZCA9XG5cdFx0ISghIWVudi5OT19DT0xPUiB8fCBhcmd2LmluY2x1ZGVzKFwiLS1uby1jb2xvclwiKSkgJiZcblx0XHQoISFlbnYuRk9SQ0VfQ09MT1IgfHwgYXJndi5pbmNsdWRlcyhcIi0tY29sb3JcIikgfHwgcC5wbGF0Zm9ybSA9PT0gXCJ3aW4zMlwiIHx8ICgocC5zdGRvdXQgfHwge30pLmlzVFRZICYmIGVudi5URVJNICE9PSBcImR1bWJcIikgfHwgISFlbnYuQ0kpO1xuXG5cdGxldCBmb3JtYXR0ZXIgPSAob3BlbiwgY2xvc2UsIHJlcGxhY2UgPSBvcGVuKSA9PlxuXHRcdGlucHV0ID0+IHtcblx0XHRcdGxldCBzdHJpbmcgPSBcIlwiICsgaW5wdXQsIGluZGV4ID0gc3RyaW5nLmluZGV4T2YoY2xvc2UsIG9wZW4ubGVuZ3RoKTtcblx0XHRcdHJldHVybiB+aW5kZXggPyBvcGVuICsgcmVwbGFjZUNsb3NlKHN0cmluZywgY2xvc2UsIHJlcGxhY2UsIGluZGV4KSArIGNsb3NlIDogb3BlbiArIHN0cmluZyArIGNsb3NlXG5cdFx0fTtcblxuXHRsZXQgcmVwbGFjZUNsb3NlID0gKHN0cmluZywgY2xvc2UsIHJlcGxhY2UsIGluZGV4KSA9PiB7XG5cdFx0bGV0IHJlc3VsdCA9IFwiXCIsIGN1cnNvciA9IDA7XG5cdFx0ZG8ge1xuXHRcdFx0cmVzdWx0ICs9IHN0cmluZy5zdWJzdHJpbmcoY3Vyc29yLCBpbmRleCkgKyByZXBsYWNlO1xuXHRcdFx0Y3Vyc29yID0gaW5kZXggKyBjbG9zZS5sZW5ndGg7XG5cdFx0XHRpbmRleCA9IHN0cmluZy5pbmRleE9mKGNsb3NlLCBjdXJzb3IpO1xuXHRcdH0gd2hpbGUgKH5pbmRleClcblx0XHRyZXR1cm4gcmVzdWx0ICsgc3RyaW5nLnN1YnN0cmluZyhjdXJzb3IpXG5cdH07XG5cblx0bGV0IGNyZWF0ZUNvbG9ycyA9IChlbmFibGVkID0gaXNDb2xvclN1cHBvcnRlZCkgPT4ge1xuXHRcdGxldCBmID0gZW5hYmxlZCA/IGZvcm1hdHRlciA6ICgpID0+IFN0cmluZztcblx0XHRyZXR1cm4ge1xuXHRcdFx0aXNDb2xvclN1cHBvcnRlZDogZW5hYmxlZCxcblx0XHRcdHJlc2V0OiBmKFwiXFx4MWJbMG1cIiwgXCJcXHgxYlswbVwiKSxcblx0XHRcdGJvbGQ6IGYoXCJcXHgxYlsxbVwiLCBcIlxceDFiWzIybVwiLCBcIlxceDFiWzIybVxceDFiWzFtXCIpLFxuXHRcdFx0ZGltOiBmKFwiXFx4MWJbMm1cIiwgXCJcXHgxYlsyMm1cIiwgXCJcXHgxYlsyMm1cXHgxYlsybVwiKSxcblx0XHRcdGl0YWxpYzogZihcIlxceDFiWzNtXCIsIFwiXFx4MWJbMjNtXCIpLFxuXHRcdFx0dW5kZXJsaW5lOiBmKFwiXFx4MWJbNG1cIiwgXCJcXHgxYlsyNG1cIiksXG5cdFx0XHRpbnZlcnNlOiBmKFwiXFx4MWJbN21cIiwgXCJcXHgxYlsyN21cIiksXG5cdFx0XHRoaWRkZW46IGYoXCJcXHgxYls4bVwiLCBcIlxceDFiWzI4bVwiKSxcblx0XHRcdHN0cmlrZXRocm91Z2g6IGYoXCJcXHgxYls5bVwiLCBcIlxceDFiWzI5bVwiKSxcblxuXHRcdFx0YmxhY2s6IGYoXCJcXHgxYlszMG1cIiwgXCJcXHgxYlszOW1cIiksXG5cdFx0XHRyZWQ6IGYoXCJcXHgxYlszMW1cIiwgXCJcXHgxYlszOW1cIiksXG5cdFx0XHRncmVlbjogZihcIlxceDFiWzMybVwiLCBcIlxceDFiWzM5bVwiKSxcblx0XHRcdHllbGxvdzogZihcIlxceDFiWzMzbVwiLCBcIlxceDFiWzM5bVwiKSxcblx0XHRcdGJsdWU6IGYoXCJcXHgxYlszNG1cIiwgXCJcXHgxYlszOW1cIiksXG5cdFx0XHRtYWdlbnRhOiBmKFwiXFx4MWJbMzVtXCIsIFwiXFx4MWJbMzltXCIpLFxuXHRcdFx0Y3lhbjogZihcIlxceDFiWzM2bVwiLCBcIlxceDFiWzM5bVwiKSxcblx0XHRcdHdoaXRlOiBmKFwiXFx4MWJbMzdtXCIsIFwiXFx4MWJbMzltXCIpLFxuXHRcdFx0Z3JheTogZihcIlxceDFiWzkwbVwiLCBcIlxceDFiWzM5bVwiKSxcblxuXHRcdFx0YmdCbGFjazogZihcIlxceDFiWzQwbVwiLCBcIlxceDFiWzQ5bVwiKSxcblx0XHRcdGJnUmVkOiBmKFwiXFx4MWJbNDFtXCIsIFwiXFx4MWJbNDltXCIpLFxuXHRcdFx0YmdHcmVlbjogZihcIlxceDFiWzQybVwiLCBcIlxceDFiWzQ5bVwiKSxcblx0XHRcdGJnWWVsbG93OiBmKFwiXFx4MWJbNDNtXCIsIFwiXFx4MWJbNDltXCIpLFxuXHRcdFx0YmdCbHVlOiBmKFwiXFx4MWJbNDRtXCIsIFwiXFx4MWJbNDltXCIpLFxuXHRcdFx0YmdNYWdlbnRhOiBmKFwiXFx4MWJbNDVtXCIsIFwiXFx4MWJbNDltXCIpLFxuXHRcdFx0YmdDeWFuOiBmKFwiXFx4MWJbNDZtXCIsIFwiXFx4MWJbNDltXCIpLFxuXHRcdFx0YmdXaGl0ZTogZihcIlxceDFiWzQ3bVwiLCBcIlxceDFiWzQ5bVwiKSxcblxuXHRcdFx0YmxhY2tCcmlnaHQ6IGYoXCJcXHgxYls5MG1cIiwgXCJcXHgxYlszOW1cIiksXG5cdFx0XHRyZWRCcmlnaHQ6IGYoXCJcXHgxYls5MW1cIiwgXCJcXHgxYlszOW1cIiksXG5cdFx0XHRncmVlbkJyaWdodDogZihcIlxceDFiWzkybVwiLCBcIlxceDFiWzM5bVwiKSxcblx0XHRcdHllbGxvd0JyaWdodDogZihcIlxceDFiWzkzbVwiLCBcIlxceDFiWzM5bVwiKSxcblx0XHRcdGJsdWVCcmlnaHQ6IGYoXCJcXHgxYls5NG1cIiwgXCJcXHgxYlszOW1cIiksXG5cdFx0XHRtYWdlbnRhQnJpZ2h0OiBmKFwiXFx4MWJbOTVtXCIsIFwiXFx4MWJbMzltXCIpLFxuXHRcdFx0Y3lhbkJyaWdodDogZihcIlxceDFiWzk2bVwiLCBcIlxceDFiWzM5bVwiKSxcblx0XHRcdHdoaXRlQnJpZ2h0OiBmKFwiXFx4MWJbOTdtXCIsIFwiXFx4MWJbMzltXCIpLFxuXG5cdFx0XHRiZ0JsYWNrQnJpZ2h0OiBmKFwiXFx4MWJbMTAwbVwiLCBcIlxceDFiWzQ5bVwiKSxcblx0XHRcdGJnUmVkQnJpZ2h0OiBmKFwiXFx4MWJbMTAxbVwiLCBcIlxceDFiWzQ5bVwiKSxcblx0XHRcdGJnR3JlZW5CcmlnaHQ6IGYoXCJcXHgxYlsxMDJtXCIsIFwiXFx4MWJbNDltXCIpLFxuXHRcdFx0YmdZZWxsb3dCcmlnaHQ6IGYoXCJcXHgxYlsxMDNtXCIsIFwiXFx4MWJbNDltXCIpLFxuXHRcdFx0YmdCbHVlQnJpZ2h0OiBmKFwiXFx4MWJbMTA0bVwiLCBcIlxceDFiWzQ5bVwiKSxcblx0XHRcdGJnTWFnZW50YUJyaWdodDogZihcIlxceDFiWzEwNW1cIiwgXCJcXHgxYls0OW1cIiksXG5cdFx0XHRiZ0N5YW5CcmlnaHQ6IGYoXCJcXHgxYlsxMDZtXCIsIFwiXFx4MWJbNDltXCIpLFxuXHRcdFx0YmdXaGl0ZUJyaWdodDogZihcIlxceDFiWzEwN21cIiwgXCJcXHgxYls0OW1cIiksXG5cdFx0fVxuXHR9O1xuXG5cdHBpY29jb2xvcnMuZXhwb3J0cyA9IGNyZWF0ZUNvbG9ycygpO1xuXHRwaWNvY29sb3JzLmV4cG9ydHMuY3JlYXRlQ29sb3JzID0gY3JlYXRlQ29sb3JzO1xuXHRyZXR1cm4gcGljb2NvbG9ycy5leHBvcnRzO1xufVxuXG52YXIgcGljb2NvbG9yc0V4cG9ydHMgPSAvKkBfX1BVUkVfXyovIHJlcXVpcmVQaWNvY29sb3JzKCk7XG5jb25zdCBjID0gLypAX19QVVJFX18qL2dldERlZmF1bHRFeHBvcnRGcm9tQ2pzKHBpY29jb2xvcnNFeHBvcnRzKTtcblxuZnVuY3Rpb24gSih7b25seUZpcnN0OmU9ITF9PXt9KXtjb25zdCBGPVtcIltcXFxcdTAwMUJcXFxcdTAwOUJdW1tcXFxcXSgpIzs/XSooPzooPzooPzooPzo7Wy1hLXpBLVpcXFxcZFxcXFwvIyYuOj0/JUB+X10rKSp8W2EtekEtWlxcXFxkXSsoPzo7Wy1hLXpBLVpcXFxcZFxcXFwvIyYuOj0/JUB+X10qKSopPyg/OlxcXFx1MDAwN3xcXFxcdTAwMUJcXFxcdTAwNUN8XFxcXHUwMDlDKSlcIixcIig/Oig/OlxcXFxkezEsNH0oPzo7XFxcXGR7MCw0fSkqKT9bXFxcXGRBLVBSLVRaY2YtbnEtdXk9Pjx+XSkpXCJdLmpvaW4oXCJ8XCIpO3JldHVybiBuZXcgUmVnRXhwKEYsZT92b2lkIDA6XCJnXCIpfWNvbnN0IFE9SigpO2Z1bmN0aW9uIFQoZSl7aWYodHlwZW9mIGUhPVwic3RyaW5nXCIpdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgYSBcXGBzdHJpbmdcXGAsIGdvdCBcXGAke3R5cGVvZiBlfVxcYGApO3JldHVybiBlLnJlcGxhY2UoUSxcIlwiKX1mdW5jdGlvbiBPKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGUmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLFwiZGVmYXVsdFwiKT9lLmRlZmF1bHQ6ZX12YXIgUD17ZXhwb3J0czp7fX07KGZ1bmN0aW9uKGUpe3ZhciB1PXt9O2UuZXhwb3J0cz11LHUuZWFzdEFzaWFuV2lkdGg9ZnVuY3Rpb24odCl7dmFyIHM9dC5jaGFyQ29kZUF0KDApLGk9dC5sZW5ndGg9PTI/dC5jaGFyQ29kZUF0KDEpOjAsRD1zO3JldHVybiA1NTI5Njw9cyYmczw9NTYzMTkmJjU2MzIwPD1pJiZpPD01NzM0MyYmKHMmPTEwMjMsaSY9MTAyMyxEPXM8PDEwfGksRCs9NjU1MzYpLEQ9PTEyMjg4fHw2NTI4MTw9RCYmRDw9NjUzNzZ8fDY1NTA0PD1EJiZEPD02NTUxMD9cIkZcIjpEPT04MzYxfHw2NTM3Nzw9RCYmRDw9NjU0NzB8fDY1NDc0PD1EJiZEPD02NTQ3OXx8NjU0ODI8PUQmJkQ8PTY1NDg3fHw2NTQ5MDw9RCYmRDw9NjU0OTV8fDY1NDk4PD1EJiZEPD02NTUwMHx8NjU1MTI8PUQmJkQ8PTY1NTE4P1wiSFwiOjQzNTI8PUQmJkQ8PTQ0NDd8fDQ1MTU8PUQmJkQ8PTQ1MTl8fDQ2MDI8PUQmJkQ8PTQ2MDd8fDkwMDE8PUQmJkQ8PTkwMDJ8fDExOTA0PD1EJiZEPD0xMTkyOXx8MTE5MzE8PUQmJkQ8PTEyMDE5fHwxMjAzMjw9RCYmRDw9MTIyNDV8fDEyMjcyPD1EJiZEPD0xMjI4M3x8MTIyODk8PUQmJkQ8PTEyMzUwfHwxMjM1Mzw9RCYmRDw9MTI0Mzh8fDEyNDQxPD1EJiZEPD0xMjU0M3x8MTI1NDk8PUQmJkQ8PTEyNTg5fHwxMjU5Mzw9RCYmRDw9MTI2ODZ8fDEyNjg4PD1EJiZEPD0xMjczMHx8MTI3MzY8PUQmJkQ8PTEyNzcxfHwxMjc4NDw9RCYmRDw9MTI4MzB8fDEyODMyPD1EJiZEPD0xMjg3MXx8MTI4ODA8PUQmJkQ8PTEzMDU0fHwxMzA1Njw9RCYmRDw9MTk5MDN8fDE5OTY4PD1EJiZEPD00MjEyNHx8NDIxMjg8PUQmJkQ8PTQyMTgyfHw0MzM2MDw9RCYmRDw9NDMzODh8fDQ0MDMyPD1EJiZEPD01NTIwM3x8NTUyMTY8PUQmJkQ8PTU1MjM4fHw1NTI0Mzw9RCYmRDw9NTUyOTF8fDYzNzQ0PD1EJiZEPD02NDI1NXx8NjUwNDA8PUQmJkQ8PTY1MDQ5fHw2NTA3Mjw9RCYmRDw9NjUxMDZ8fDY1MTA4PD1EJiZEPD02NTEyNnx8NjUxMjg8PUQmJkQ8PTY1MTMxfHwxMTA1OTI8PUQmJkQ8PTExMDU5M3x8MTI3NDg4PD1EJiZEPD0xMjc0OTB8fDEyNzUwNDw9RCYmRDw9MTI3NTQ2fHwxMjc1NTI8PUQmJkQ8PTEyNzU2MHx8MTI3NTY4PD1EJiZEPD0xMjc1Njl8fDEzMTA3Mjw9RCYmRDw9MTk0MzY3fHwxNzc5ODQ8PUQmJkQ8PTE5NjYwNXx8MTk2NjA4PD1EJiZEPD0yNjIxNDE/XCJXXCI6MzI8PUQmJkQ8PTEyNnx8MTYyPD1EJiZEPD0xNjN8fDE2NTw9RCYmRDw9MTY2fHxEPT0xNzJ8fEQ9PTE3NXx8MTAyMTQ8PUQmJkQ8PTEwMjIxfHwxMDYyOTw9RCYmRDw9MTA2MzA/XCJOYVwiOkQ9PTE2MXx8RD09MTY0fHwxNjc8PUQmJkQ8PTE2OHx8RD09MTcwfHwxNzM8PUQmJkQ8PTE3NHx8MTc2PD1EJiZEPD0xODB8fDE4Mjw9RCYmRDw9MTg2fHwxODg8PUQmJkQ8PTE5MXx8RD09MTk4fHxEPT0yMDh8fDIxNTw9RCYmRDw9MjE2fHwyMjI8PUQmJkQ8PTIyNXx8RD09MjMwfHwyMzI8PUQmJkQ8PTIzNHx8MjM2PD1EJiZEPD0yMzd8fEQ9PTI0MHx8MjQyPD1EJiZEPD0yNDN8fDI0Nzw9RCYmRDw9MjUwfHxEPT0yNTJ8fEQ9PTI1NHx8RD09MjU3fHxEPT0yNzN8fEQ9PTI3NXx8RD09MjgzfHwyOTQ8PUQmJkQ8PTI5NXx8RD09Mjk5fHwzMDU8PUQmJkQ8PTMwN3x8RD09MzEyfHwzMTk8PUQmJkQ8PTMyMnx8RD09MzI0fHwzMjg8PUQmJkQ8PTMzMXx8RD09MzMzfHwzMzg8PUQmJkQ8PTMzOXx8MzU4PD1EJiZEPD0zNTl8fEQ9PTM2M3x8RD09NDYyfHxEPT00NjR8fEQ9PTQ2Nnx8RD09NDY4fHxEPT00NzB8fEQ9PTQ3Mnx8RD09NDc0fHxEPT00NzZ8fEQ9PTU5M3x8RD09NjA5fHxEPT03MDh8fEQ9PTcxMXx8NzEzPD1EJiZEPD03MTV8fEQ9PTcxN3x8RD09NzIwfHw3Mjg8PUQmJkQ8PTczMXx8RD09NzMzfHxEPT03MzV8fDc2ODw9RCYmRDw9ODc5fHw5MTM8PUQmJkQ8PTkyOXx8OTMxPD1EJiZEPD05Mzd8fDk0NTw9RCYmRDw9OTYxfHw5NjM8PUQmJkQ8PTk2OXx8RD09MTAyNXx8MTA0MDw9RCYmRDw9MTEwM3x8RD09MTEwNXx8RD09ODIwOHx8ODIxMTw9RCYmRDw9ODIxNHx8ODIxNjw9RCYmRDw9ODIxN3x8ODIyMDw9RCYmRDw9ODIyMXx8ODIyNDw9RCYmRDw9ODIyNnx8ODIyODw9RCYmRDw9ODIzMXx8RD09ODI0MHx8ODI0Mjw9RCYmRDw9ODI0M3x8RD09ODI0NXx8RD09ODI1MXx8RD09ODI1NHx8RD09ODMwOHx8RD09ODMxOXx8ODMyMTw9RCYmRDw9ODMyNHx8RD09ODM2NHx8RD09ODQ1MXx8RD09ODQ1M3x8RD09ODQ1N3x8RD09ODQ2N3x8RD09ODQ3MHx8ODQ4MTw9RCYmRDw9ODQ4Mnx8RD09ODQ4Nnx8RD09ODQ5MXx8ODUzMTw9RCYmRDw9ODUzMnx8ODUzOTw9RCYmRDw9ODU0Mnx8ODU0NDw9RCYmRDw9ODU1NXx8ODU2MDw9RCYmRDw9ODU2OXx8RD09ODU4NXx8ODU5Mjw9RCYmRDw9ODYwMXx8ODYzMjw9RCYmRDw9ODYzM3x8RD09ODY1OHx8RD09ODY2MHx8RD09ODY3OXx8RD09ODcwNHx8ODcwNjw9RCYmRDw9ODcwN3x8ODcxMTw9RCYmRDw9ODcxMnx8RD09ODcxNXx8RD09ODcxOXx8RD09ODcyMXx8RD09ODcyNXx8RD09ODczMHx8ODczMzw9RCYmRDw9ODczNnx8RD09ODczOXx8RD09ODc0MXx8ODc0Mzw9RCYmRDw9ODc0OHx8RD09ODc1MHx8ODc1Njw9RCYmRDw9ODc1OXx8ODc2NDw9RCYmRDw9ODc2NXx8RD09ODc3Nnx8RD09ODc4MHx8RD09ODc4Nnx8ODgwMDw9RCYmRDw9ODgwMXx8ODgwNDw9RCYmRDw9ODgwN3x8ODgxMDw9RCYmRDw9ODgxMXx8ODgxNDw9RCYmRDw9ODgxNXx8ODgzNDw9RCYmRDw9ODgzNXx8ODgzODw9RCYmRDw9ODgzOXx8RD09ODg1M3x8RD09ODg1N3x8RD09ODg2OXx8RD09ODg5NXx8RD09ODk3OHx8OTMxMjw9RCYmRDw9OTQ0OXx8OTQ1MTw9RCYmRDw9OTU0N3x8OTU1Mjw9RCYmRDw9OTU4N3x8OTYwMDw9RCYmRDw9OTYxNXx8OTYxODw9RCYmRDw9OTYyMXx8OTYzMjw9RCYmRDw9OTYzM3x8OTYzNTw9RCYmRDw9OTY0MXx8OTY1MDw9RCYmRDw9OTY1MXx8OTY1NDw9RCYmRDw9OTY1NXx8OTY2MDw9RCYmRDw9OTY2MXx8OTY2NDw9RCYmRDw9OTY2NXx8OTY3MDw9RCYmRDw9OTY3Mnx8RD09OTY3NXx8OTY3ODw9RCYmRDw9OTY4MXx8OTY5ODw9RCYmRDw9OTcwMXx8RD09OTcxMXx8OTczMzw9RCYmRDw9OTczNHx8RD09OTczN3x8OTc0Mjw9RCYmRDw9OTc0M3x8OTc0ODw9RCYmRDw9OTc0OXx8RD09OTc1Nnx8RD09OTc1OHx8RD09OTc5Mnx8RD09OTc5NHx8OTgyNDw9RCYmRDw9OTgyNXx8OTgyNzw9RCYmRDw9OTgyOXx8OTgzMTw9RCYmRDw9OTgzNHx8OTgzNjw9RCYmRDw9OTgzN3x8RD09OTgzOXx8OTg4Njw9RCYmRDw9OTg4N3x8OTkxODw9RCYmRDw9OTkxOXx8OTkyNDw9RCYmRDw9OTkzM3x8OTkzNTw9RCYmRDw9OTk1M3x8RD09OTk1NXx8OTk2MDw9RCYmRDw9OTk4M3x8RD09MTAwNDV8fEQ9PTEwMDcxfHwxMDEwMjw9RCYmRDw9MTAxMTF8fDExMDkzPD1EJiZEPD0xMTA5N3x8MTI4NzI8PUQmJkQ8PTEyODc5fHw1NzM0NDw9RCYmRDw9NjM3NDN8fDY1MDI0PD1EJiZEPD02NTAzOXx8RD09NjU1MzN8fDEyNzIzMjw9RCYmRDw9MTI3MjQyfHwxMjcyNDg8PUQmJkQ8PTEyNzI3N3x8MTI3MjgwPD1EJiZEPD0xMjczMzd8fDEyNzM0NDw9RCYmRDw9MTI3Mzg2fHw5MTc3NjA8PUQmJkQ8PTkxNzk5OXx8OTgzMDQwPD1EJiZEPD0xMDQ4NTczfHwxMDQ4NTc2PD1EJiZEPD0xMTE0MTA5P1wiQVwiOlwiTlwifSx1LmNoYXJhY3Rlckxlbmd0aD1mdW5jdGlvbih0KXt2YXIgcz10aGlzLmVhc3RBc2lhbldpZHRoKHQpO3JldHVybiBzPT1cIkZcInx8cz09XCJXXCJ8fHM9PVwiQVwiPzI6MX07ZnVuY3Rpb24gRih0KXtyZXR1cm4gdC5tYXRjaCgvW1xcdUQ4MDAtXFx1REJGRl1bXFx1REMwMC1cXHVERkZGXXxbXlxcdUQ4MDAtXFx1REZGRl0vZyl8fFtdfXUubGVuZ3RoPWZ1bmN0aW9uKHQpe2Zvcih2YXIgcz1GKHQpLGk9MCxEPTA7RDxzLmxlbmd0aDtEKyspaT1pK3RoaXMuY2hhcmFjdGVyTGVuZ3RoKHNbRF0pO3JldHVybiBpfSx1LnNsaWNlPWZ1bmN0aW9uKHQscyxpKXt0ZXh0TGVuPXUubGVuZ3RoKHQpLHM9c3x8MCxpPWl8fDEsczwwJiYocz10ZXh0TGVuK3MpLGk8MCYmKGk9dGV4dExlbitpKTtmb3IodmFyIEQ9XCJcIixDPTAsbz1GKHQpLEU9MDtFPG8ubGVuZ3RoO0UrKyl7dmFyIGE9b1tFXSxuPXUubGVuZ3RoKGEpO2lmKEM+PXMtKG49PTI/MTowKSlpZihDK248PWkpRCs9YTtlbHNlIGJyZWFrO0MrPW47fXJldHVybiBEfTt9KShQKTt2YXIgWD1QLmV4cG9ydHM7Y29uc3QgREQ9TyhYKTt2YXIgdUQ9ZnVuY3Rpb24oKXtyZXR1cm4gL1xcdUQ4M0NcXHVERkY0XFx1REI0MFxcdURDNjdcXHVEQjQwXFx1REM2Mig/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/OltcXHUyNjFEXFx1MjZGOVxcdTI3MEEtXFx1MjcwRF18XFx1RDgzQ1tcXHVERjg1XFx1REZDMi1cXHVERkM0XFx1REZDN1xcdURGQ0EtXFx1REZDQ118XFx1RDgzRFtcXHVEQzQyXFx1REM0M1xcdURDNDYtXFx1REM1MFxcdURDNjYtXFx1REM3OFxcdURDN0NcXHVEQzgxLVxcdURDODNcXHVEQzg1LVxcdURDODdcXHVEQzhGXFx1REM5MVxcdURDQUFcXHVERDc0XFx1REQ3NVxcdUREN0FcXHVERDkwXFx1REQ5NVxcdUREOTZcXHVERTQ1LVxcdURFNDdcXHVERTRCLVxcdURFNEZcXHVERUEzXFx1REVCNC1cXHVERUI2XFx1REVDMFxcdURFQ0NdfFxcdUQ4M0VbXFx1REQwQ1xcdUREMEZcXHVERDE4LVxcdUREMUZcXHVERDI2XFx1REQzMC1cXHVERDM5XFx1REQzQy1cXHVERDNFXFx1REQ3N1xcdUREQjVcXHVEREI2XFx1RERCOFxcdUREQjlcXHVEREJCXFx1RERDRC1cXHVERENGXFx1REREMS1cXHVEREREXSkvZ307Y29uc3QgRkQ9Tyh1RCk7ZnVuY3Rpb24gcChlLHU9e30pe2lmKHR5cGVvZiBlIT1cInN0cmluZ1wifHxlLmxlbmd0aD09PTB8fCh1PXthbWJpZ3VvdXNJc05hcnJvdzohMCwuLi51fSxlPVQoZSksZS5sZW5ndGg9PT0wKSlyZXR1cm4gMDtlPWUucmVwbGFjZShGRCgpLFwiICBcIik7Y29uc3QgRj11LmFtYmlndW91c0lzTmFycm93PzE6MjtsZXQgdD0wO2Zvcihjb25zdCBzIG9mIGUpe2NvbnN0IGk9cy5jb2RlUG9pbnRBdCgwKTtpZihpPD0zMXx8aT49MTI3JiZpPD0xNTl8fGk+PTc2OCYmaTw9ODc5KWNvbnRpbnVlO3N3aXRjaChERC5lYXN0QXNpYW5XaWR0aChzKSl7Y2FzZVwiRlwiOmNhc2VcIldcIjp0Kz0yO2JyZWFrO2Nhc2VcIkFcIjp0Kz1GO2JyZWFrO2RlZmF1bHQ6dCs9MTt9fXJldHVybiB0fWNvbnN0IG09MTAsTD0oZT0wKT0+dT0+YFxceDFCWyR7dStlfW1gLFc9KGU9MCk9PnU9PmBcXHgxQlskezM4K2V9OzU7JHt1fW1gLE49KGU9MCk9Pih1LEYsdCk9PmBcXHgxQlskezM4K2V9OzI7JHt1fTske0Z9OyR7dH1tYCxyPXttb2RpZmllcjp7cmVzZXQ6WzAsMF0sYm9sZDpbMSwyMl0sZGltOlsyLDIyXSxpdGFsaWM6WzMsMjNdLHVuZGVybGluZTpbNCwyNF0sb3ZlcmxpbmU6WzUzLDU1XSxpbnZlcnNlOls3LDI3XSxoaWRkZW46WzgsMjhdLHN0cmlrZXRocm91Z2g6WzksMjldfSxjb2xvcjp7YmxhY2s6WzMwLDM5XSxyZWQ6WzMxLDM5XSxncmVlbjpbMzIsMzldLHllbGxvdzpbMzMsMzldLGJsdWU6WzM0LDM5XSxtYWdlbnRhOlszNSwzOV0sY3lhbjpbMzYsMzldLHdoaXRlOlszNywzOV0sYmxhY2tCcmlnaHQ6WzkwLDM5XSxncmF5Ols5MCwzOV0sZ3JleTpbOTAsMzldLHJlZEJyaWdodDpbOTEsMzldLGdyZWVuQnJpZ2h0Ols5MiwzOV0seWVsbG93QnJpZ2h0Ols5MywzOV0sYmx1ZUJyaWdodDpbOTQsMzldLG1hZ2VudGFCcmlnaHQ6Wzk1LDM5XSxjeWFuQnJpZ2h0Ols5NiwzOV0sd2hpdGVCcmlnaHQ6Wzk3LDM5XX0sYmdDb2xvcjp7YmdCbGFjazpbNDAsNDldLGJnUmVkOls0MSw0OV0sYmdHcmVlbjpbNDIsNDldLGJnWWVsbG93Ols0Myw0OV0sYmdCbHVlOls0NCw0OV0sYmdNYWdlbnRhOls0NSw0OV0sYmdDeWFuOls0Niw0OV0sYmdXaGl0ZTpbNDcsNDldLGJnQmxhY2tCcmlnaHQ6WzEwMCw0OV0sYmdHcmF5OlsxMDAsNDldLGJnR3JleTpbMTAwLDQ5XSxiZ1JlZEJyaWdodDpbMTAxLDQ5XSxiZ0dyZWVuQnJpZ2h0OlsxMDIsNDldLGJnWWVsbG93QnJpZ2h0OlsxMDMsNDldLGJnQmx1ZUJyaWdodDpbMTA0LDQ5XSxiZ01hZ2VudGFCcmlnaHQ6WzEwNSw0OV0sYmdDeWFuQnJpZ2h0OlsxMDYsNDldLGJnV2hpdGVCcmlnaHQ6WzEwNyw0OV19fTtPYmplY3Qua2V5cyhyLm1vZGlmaWVyKTtjb25zdCBlRD1PYmplY3Qua2V5cyhyLmNvbG9yKSx0RD1PYmplY3Qua2V5cyhyLmJnQ29sb3IpO1suLi5lRCwuLi50RF07ZnVuY3Rpb24gc0QoKXtjb25zdCBlPW5ldyBNYXA7Zm9yKGNvbnN0W3UsRl1vZiBPYmplY3QuZW50cmllcyhyKSl7Zm9yKGNvbnN0W3Qsc11vZiBPYmplY3QuZW50cmllcyhGKSlyW3RdPXtvcGVuOmBcXHgxQlske3NbMF19bWAsY2xvc2U6YFxceDFCWyR7c1sxXX1tYH0sRlt0XT1yW3RdLGUuc2V0KHNbMF0sc1sxXSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsdSx7dmFsdWU6RixlbnVtZXJhYmxlOiExfSk7fXJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkocixcImNvZGVzXCIse3ZhbHVlOmUsZW51bWVyYWJsZTohMX0pLHIuY29sb3IuY2xvc2U9XCJcXHgxQlszOW1cIixyLmJnQ29sb3IuY2xvc2U9XCJcXHgxQls0OW1cIixyLmNvbG9yLmFuc2k9TCgpLHIuY29sb3IuYW5zaTI1Nj1XKCksci5jb2xvci5hbnNpMTZtPU4oKSxyLmJnQ29sb3IuYW5zaT1MKG0pLHIuYmdDb2xvci5hbnNpMjU2PVcobSksci5iZ0NvbG9yLmFuc2kxNm09TihtKSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhyLHtyZ2JUb0Fuc2kyNTY6e3ZhbHVlOih1LEYsdCk9PnU9PT1GJiZGPT09dD91PDg/MTY6dT4yNDg/MjMxOk1hdGgucm91bmQoKHUtOCkvMjQ3KjI0KSsyMzI6MTYrMzYqTWF0aC5yb3VuZCh1LzI1NSo1KSs2Kk1hdGgucm91bmQoRi8yNTUqNSkrTWF0aC5yb3VuZCh0LzI1NSo1KSxlbnVtZXJhYmxlOiExfSxoZXhUb1JnYjp7dmFsdWU6dT0+e2NvbnN0IEY9L1thLWZcXGRdezZ9fFthLWZcXGRdezN9L2kuZXhlYyh1LnRvU3RyaW5nKDE2KSk7aWYoIUYpcmV0dXJuIFswLDAsMF07bGV0W3RdPUY7dC5sZW5ndGg9PT0zJiYodD1bLi4udF0ubWFwKGk9PmkraSkuam9pbihcIlwiKSk7Y29uc3Qgcz1OdW1iZXIucGFyc2VJbnQodCwxNik7cmV0dXJuIFtzPj4xNiYyNTUscz4+OCYyNTUscyYyNTVdfSxlbnVtZXJhYmxlOiExfSxoZXhUb0Fuc2kyNTY6e3ZhbHVlOnU9PnIucmdiVG9BbnNpMjU2KC4uLnIuaGV4VG9SZ2IodSkpLGVudW1lcmFibGU6ITF9LGFuc2kyNTZUb0Fuc2k6e3ZhbHVlOnU9PntpZih1PDgpcmV0dXJuIDMwK3U7aWYodTwxNilyZXR1cm4gOTArKHUtOCk7bGV0IEYsdCxzO2lmKHU+PTIzMilGPSgodS0yMzIpKjEwKzgpLzI1NSx0PUYscz1GO2Vsc2Uge3UtPTE2O2NvbnN0IEM9dSUzNjtGPU1hdGguZmxvb3IodS8zNikvNSx0PU1hdGguZmxvb3IoQy82KS81LHM9QyU2LzU7fWNvbnN0IGk9TWF0aC5tYXgoRix0LHMpKjI7aWYoaT09PTApcmV0dXJuIDMwO2xldCBEPTMwKyhNYXRoLnJvdW5kKHMpPDwyfE1hdGgucm91bmQodCk8PDF8TWF0aC5yb3VuZChGKSk7cmV0dXJuIGk9PT0yJiYoRCs9NjApLER9LGVudW1lcmFibGU6ITF9LHJnYlRvQW5zaTp7dmFsdWU6KHUsRix0KT0+ci5hbnNpMjU2VG9BbnNpKHIucmdiVG9BbnNpMjU2KHUsRix0KSksZW51bWVyYWJsZTohMX0saGV4VG9BbnNpOnt2YWx1ZTp1PT5yLmFuc2kyNTZUb0Fuc2koci5oZXhUb0Fuc2kyNTYodSkpLGVudW1lcmFibGU6ITF9fSkscn1jb25zdCBpRD1zRCgpLHY9bmV3IFNldChbXCJcXHgxQlwiLFwiXFx4OUJcIl0pLENEPTM5LHc9XCJcXHgwN1wiLEk9XCJbXCIsckQ9XCJdXCIsUj1cIm1cIix5PWAke3JEfTg7O2AsVj1lPT5gJHt2LnZhbHVlcygpLm5leHQoKS52YWx1ZX0ke0l9JHtlfSR7Un1gLHo9ZT0+YCR7di52YWx1ZXMoKS5uZXh0KCkudmFsdWV9JHt5fSR7ZX0ke3d9YCxFRD1lPT5lLnNwbGl0KFwiIFwiKS5tYXAodT0+cCh1KSksXz0oZSx1LEYpPT57Y29uc3QgdD1bLi4udV07bGV0IHM9ITEsaT0hMSxEPXAoVChlW2UubGVuZ3RoLTFdKSk7Zm9yKGNvbnN0W0Msb11vZiB0LmVudHJpZXMoKSl7Y29uc3QgRT1wKG8pO2lmKEQrRTw9Rj9lW2UubGVuZ3RoLTFdKz1vOihlLnB1c2gobyksRD0wKSx2LmhhcyhvKSYmKHM9ITAsaT10LnNsaWNlKEMrMSkuam9pbihcIlwiKS5zdGFydHNXaXRoKHkpKSxzKXtpP289PT13JiYocz0hMSxpPSExKTpvPT09UiYmKHM9ITEpO2NvbnRpbnVlfUQrPUUsRD09PUYmJkM8dC5sZW5ndGgtMSYmKGUucHVzaChcIlwiKSxEPTApO30hRCYmZVtlLmxlbmd0aC0xXS5sZW5ndGg+MCYmZS5sZW5ndGg+MSYmKGVbZS5sZW5ndGgtMl0rPWUucG9wKCkpO30sbkQ9ZT0+e2NvbnN0IHU9ZS5zcGxpdChcIiBcIik7bGV0IEY9dS5sZW5ndGg7Zm9yKDtGPjAmJiEocCh1W0YtMV0pPjApOylGLS07cmV0dXJuIEY9PT11Lmxlbmd0aD9lOnUuc2xpY2UoMCxGKS5qb2luKFwiIFwiKSt1LnNsaWNlKEYpLmpvaW4oXCJcIil9LG9EPShlLHUsRj17fSk9PntpZihGLnRyaW0hPT0hMSYmZS50cmltKCk9PT1cIlwiKXJldHVybiBcIlwiO2xldCB0PVwiXCIscyxpO2NvbnN0IEQ9RUQoZSk7bGV0IEM9W1wiXCJdO2Zvcihjb25zdFtFLGFdb2YgZS5zcGxpdChcIiBcIikuZW50cmllcygpKXtGLnRyaW0hPT0hMSYmKENbQy5sZW5ndGgtMV09Q1tDLmxlbmd0aC0xXS50cmltU3RhcnQoKSk7bGV0IG49cChDW0MubGVuZ3RoLTFdKTtpZihFIT09MCYmKG4+PXUmJihGLndvcmRXcmFwPT09ITF8fEYudHJpbT09PSExKSYmKEMucHVzaChcIlwiKSxuPTApLChuPjB8fEYudHJpbT09PSExKSYmKENbQy5sZW5ndGgtMV0rPVwiIFwiLG4rKykpLEYuaGFyZCYmRFtFXT51KXtjb25zdCBCPXUtbixmPTErTWF0aC5mbG9vcigoRFtFXS1CLTEpL3UpO01hdGguZmxvb3IoKERbRV0tMSkvdSk8ZiYmQy5wdXNoKFwiXCIpLF8oQyxhLHUpO2NvbnRpbnVlfWlmKG4rRFtFXT51JiZuPjAmJkRbRV0+MCl7aWYoRi53b3JkV3JhcD09PSExJiZuPHUpe18oQyxhLHUpO2NvbnRpbnVlfUMucHVzaChcIlwiKTt9aWYobitEW0VdPnUmJkYud29yZFdyYXA9PT0hMSl7XyhDLGEsdSk7Y29udGludWV9Q1tDLmxlbmd0aC0xXSs9YTt9Ri50cmltIT09ITEmJihDPUMubWFwKEU9Pm5EKEUpKSk7Y29uc3Qgbz1bLi4uQy5qb2luKGBcbmApXTtmb3IoY29uc3RbRSxhXW9mIG8uZW50cmllcygpKXtpZih0Kz1hLHYuaGFzKGEpKXtjb25zdHtncm91cHM6Qn09bmV3IFJlZ0V4cChgKD86XFxcXCR7SX0oPzxjb2RlPlxcXFxkKyltfFxcXFwke3l9KD88dXJpPi4qKSR7d30pYCkuZXhlYyhvLnNsaWNlKEUpLmpvaW4oXCJcIikpfHx7Z3JvdXBzOnt9fTtpZihCLmNvZGUhPT12b2lkIDApe2NvbnN0IGY9TnVtYmVyLnBhcnNlRmxvYXQoQi5jb2RlKTtzPWY9PT1DRD92b2lkIDA6Zjt9ZWxzZSBCLnVyaSE9PXZvaWQgMCYmKGk9Qi51cmkubGVuZ3RoPT09MD92b2lkIDA6Qi51cmkpO31jb25zdCBuPWlELmNvZGVzLmdldChOdW1iZXIocykpO29bRSsxXT09PWBcbmA/KGkmJih0Kz16KFwiXCIpKSxzJiZuJiYodCs9VihuKSkpOmE9PT1gXG5gJiYocyYmbiYmKHQrPVYocykpLGkmJih0Kz16KGkpKSk7fXJldHVybiB0fTtmdW5jdGlvbiBHKGUsdSxGKXtyZXR1cm4gU3RyaW5nKGUpLm5vcm1hbGl6ZSgpLnJlcGxhY2UoL1xcclxcbi9nLGBcbmApLnNwbGl0KGBcbmApLm1hcCh0PT5vRCh0LHUsRikpLmpvaW4oYFxuYCl9Y29uc3QgYUQ9W1widXBcIixcImRvd25cIixcImxlZnRcIixcInJpZ2h0XCIsXCJzcGFjZVwiLFwiZW50ZXJcIixcImNhbmNlbFwiXSxBPXthY3Rpb25zOm5ldyBTZXQoYUQpLGFsaWFzZXM6bmV3IE1hcChbW1wia1wiLFwidXBcIl0sW1wialwiLFwiZG93blwiXSxbXCJoXCIsXCJsZWZ0XCJdLFtcImxcIixcInJpZ2h0XCJdLFtcIlx1MDAwM1wiLFwiY2FuY2VsXCJdLFtcImVzY2FwZVwiLFwiY2FuY2VsXCJdXSl9O2Z1bmN0aW9uIGsoZSx1KXtpZih0eXBlb2YgZT09XCJzdHJpbmdcIilyZXR1cm4gQS5hbGlhc2VzLmdldChlKT09PXU7Zm9yKGNvbnN0IEYgb2YgZSlpZihGIT09dm9pZCAwJiZrKEYsdSkpcmV0dXJuICEwO3JldHVybiAhMX1mdW5jdGlvbiBoRChlLHUpe2lmKGU9PT11KXJldHVybjtjb25zdCBGPWUuc3BsaXQoYFxuYCksdD11LnNwbGl0KGBcbmApLHM9W107Zm9yKGxldCBpPTA7aTxNYXRoLm1heChGLmxlbmd0aCx0Lmxlbmd0aCk7aSsrKUZbaV0hPT10W2ldJiZzLnB1c2goaSk7cmV0dXJuIHN9Z2xvYmFsVGhpcy5wcm9jZXNzLnBsYXRmb3JtLnN0YXJ0c1dpdGgoXCJ3aW5cIik7Y29uc3QgJD1TeW1ib2woXCJjbGFjazpjYW5jZWxcIik7ZnVuY3Rpb24gZChlLHUpe2NvbnN0IEY9ZTtGLmlzVFRZJiZGLnNldFJhd01vZGUodSk7fXZhciBBRD1PYmplY3QuZGVmaW5lUHJvcGVydHkscEQ9KGUsdSxGKT0+dSBpbiBlP0FEKGUsdSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Rn0pOmVbdV09RixsPShlLHUsRik9PihwRChlLHR5cGVvZiB1IT1cInN5bWJvbFwiP3UrXCJcIjp1LEYpLEYpO2NsYXNzIHh7Y29uc3RydWN0b3IodSxGPSEwKXtsKHRoaXMsXCJpbnB1dFwiKSxsKHRoaXMsXCJvdXRwdXRcIiksbCh0aGlzLFwiX2Fib3J0U2lnbmFsXCIpLGwodGhpcyxcInJsXCIpLGwodGhpcyxcIm9wdHNcIiksbCh0aGlzLFwiX3JlbmRlclwiKSxsKHRoaXMsXCJfdHJhY2tcIiwhMSksbCh0aGlzLFwiX3ByZXZGcmFtZVwiLFwiXCIpLGwodGhpcyxcIl9zdWJzY3JpYmVyc1wiLG5ldyBNYXApLGwodGhpcyxcIl9jdXJzb3JcIiwwKSxsKHRoaXMsXCJzdGF0ZVwiLFwiaW5pdGlhbFwiKSxsKHRoaXMsXCJlcnJvclwiLFwiXCIpLGwodGhpcyxcInZhbHVlXCIpO2NvbnN0e2lucHV0OnQ9c3RkaW4sb3V0cHV0OnM9c3Rkb3V0LHJlbmRlcjppLHNpZ25hbDpELC4uLkN9PXU7dGhpcy5vcHRzPUMsdGhpcy5vbktleXByZXNzPXRoaXMub25LZXlwcmVzcy5iaW5kKHRoaXMpLHRoaXMuY2xvc2U9dGhpcy5jbG9zZS5iaW5kKHRoaXMpLHRoaXMucmVuZGVyPXRoaXMucmVuZGVyLmJpbmQodGhpcyksdGhpcy5fcmVuZGVyPWkuYmluZCh0aGlzKSx0aGlzLl90cmFjaz1GLHRoaXMuX2Fib3J0U2lnbmFsPUQsdGhpcy5pbnB1dD10LHRoaXMub3V0cHV0PXM7fXVuc3Vic2NyaWJlKCl7dGhpcy5fc3Vic2NyaWJlcnMuY2xlYXIoKTt9c2V0U3Vic2NyaWJlcih1LEYpe2NvbnN0IHQ9dGhpcy5fc3Vic2NyaWJlcnMuZ2V0KHUpPz9bXTt0LnB1c2goRiksdGhpcy5fc3Vic2NyaWJlcnMuc2V0KHUsdCk7fW9uKHUsRil7dGhpcy5zZXRTdWJzY3JpYmVyKHUse2NiOkZ9KTt9b25jZSh1LEYpe3RoaXMuc2V0U3Vic2NyaWJlcih1LHtjYjpGLG9uY2U6ITB9KTt9ZW1pdCh1LC4uLkYpe2NvbnN0IHQ9dGhpcy5fc3Vic2NyaWJlcnMuZ2V0KHUpPz9bXSxzPVtdO2Zvcihjb25zdCBpIG9mIHQpaS5jYiguLi5GKSxpLm9uY2UmJnMucHVzaCgoKT0+dC5zcGxpY2UodC5pbmRleE9mKGkpLDEpKTtmb3IoY29uc3QgaSBvZiBzKWkoKTt9cHJvbXB0KCl7cmV0dXJuIG5ldyBQcm9taXNlKCh1LEYpPT57aWYodGhpcy5fYWJvcnRTaWduYWwpe2lmKHRoaXMuX2Fib3J0U2lnbmFsLmFib3J0ZWQpcmV0dXJuIHRoaXMuc3RhdGU9XCJjYW5jZWxcIix0aGlzLmNsb3NlKCksdSgkKTt0aGlzLl9hYm9ydFNpZ25hbC5hZGRFdmVudExpc3RlbmVyKFwiYWJvcnRcIiwoKT0+e3RoaXMuc3RhdGU9XCJjYW5jZWxcIix0aGlzLmNsb3NlKCk7fSx7b25jZTohMH0pO31jb25zdCB0PW5ldyBXcml0ZVN0cmVhbSgwKTt0Ll93cml0ZT0ocyxpLEQpPT57dGhpcy5fdHJhY2smJih0aGlzLnZhbHVlPXRoaXMucmw/LmxpbmUucmVwbGFjZSgvXFx0L2csXCJcIiksdGhpcy5fY3Vyc29yPXRoaXMucmw/LmN1cnNvcj8/MCx0aGlzLmVtaXQoXCJ2YWx1ZVwiLHRoaXMudmFsdWUpKSxEKCk7fSx0aGlzLmlucHV0LnBpcGUodCksdGhpcy5ybD1nLmNyZWF0ZUludGVyZmFjZSh7aW5wdXQ6dGhpcy5pbnB1dCxvdXRwdXQ6dCx0YWJTaXplOjIscHJvbXB0OlwiXCIsZXNjYXBlQ29kZVRpbWVvdXQ6NTB9KSxnLmVtaXRLZXlwcmVzc0V2ZW50cyh0aGlzLmlucHV0LHRoaXMucmwpLHRoaXMucmwucHJvbXB0KCksdGhpcy5vcHRzLmluaXRpYWxWYWx1ZSE9PXZvaWQgMCYmdGhpcy5fdHJhY2smJnRoaXMucmwud3JpdGUodGhpcy5vcHRzLmluaXRpYWxWYWx1ZSksdGhpcy5pbnB1dC5vbihcImtleXByZXNzXCIsdGhpcy5vbktleXByZXNzKSxkKHRoaXMuaW5wdXQsITApLHRoaXMub3V0cHV0Lm9uKFwicmVzaXplXCIsdGhpcy5yZW5kZXIpLHRoaXMucmVuZGVyKCksdGhpcy5vbmNlKFwic3VibWl0XCIsKCk9Pnt0aGlzLm91dHB1dC53cml0ZShzcmNFeHBvcnRzLmN1cnNvci5zaG93KSx0aGlzLm91dHB1dC5vZmYoXCJyZXNpemVcIix0aGlzLnJlbmRlciksZCh0aGlzLmlucHV0LCExKSx1KHRoaXMudmFsdWUpO30pLHRoaXMub25jZShcImNhbmNlbFwiLCgpPT57dGhpcy5vdXRwdXQud3JpdGUoc3JjRXhwb3J0cy5jdXJzb3Iuc2hvdyksdGhpcy5vdXRwdXQub2ZmKFwicmVzaXplXCIsdGhpcy5yZW5kZXIpLGQodGhpcy5pbnB1dCwhMSksdSgkKTt9KTt9KX1vbktleXByZXNzKHUsRil7aWYodGhpcy5zdGF0ZT09PVwiZXJyb3JcIiYmKHRoaXMuc3RhdGU9XCJhY3RpdmVcIiksRj8ubmFtZSYmKCF0aGlzLl90cmFjayYmQS5hbGlhc2VzLmhhcyhGLm5hbWUpJiZ0aGlzLmVtaXQoXCJjdXJzb3JcIixBLmFsaWFzZXMuZ2V0KEYubmFtZSkpLEEuYWN0aW9ucy5oYXMoRi5uYW1lKSYmdGhpcy5lbWl0KFwiY3Vyc29yXCIsRi5uYW1lKSksdSYmKHUudG9Mb3dlckNhc2UoKT09PVwieVwifHx1LnRvTG93ZXJDYXNlKCk9PT1cIm5cIikmJnRoaXMuZW1pdChcImNvbmZpcm1cIix1LnRvTG93ZXJDYXNlKCk9PT1cInlcIiksdT09PVwiXHRcIiYmdGhpcy5vcHRzLnBsYWNlaG9sZGVyJiYodGhpcy52YWx1ZXx8KHRoaXMucmw/LndyaXRlKHRoaXMub3B0cy5wbGFjZWhvbGRlciksdGhpcy5lbWl0KFwidmFsdWVcIix0aGlzLm9wdHMucGxhY2Vob2xkZXIpKSksdSYmdGhpcy5lbWl0KFwia2V5XCIsdS50b0xvd2VyQ2FzZSgpKSxGPy5uYW1lPT09XCJyZXR1cm5cIil7aWYodGhpcy5vcHRzLnZhbGlkYXRlKXtjb25zdCB0PXRoaXMub3B0cy52YWxpZGF0ZSh0aGlzLnZhbHVlKTt0JiYodGhpcy5lcnJvcj10LHRoaXMuc3RhdGU9XCJlcnJvclwiLHRoaXMucmw/LndyaXRlKHRoaXMudmFsdWUpKTt9dGhpcy5zdGF0ZSE9PVwiZXJyb3JcIiYmKHRoaXMuc3RhdGU9XCJzdWJtaXRcIik7fWsoW3UsRj8ubmFtZSxGPy5zZXF1ZW5jZV0sXCJjYW5jZWxcIikmJih0aGlzLnN0YXRlPVwiY2FuY2VsXCIpLCh0aGlzLnN0YXRlPT09XCJzdWJtaXRcInx8dGhpcy5zdGF0ZT09PVwiY2FuY2VsXCIpJiZ0aGlzLmVtaXQoXCJmaW5hbGl6ZVwiKSx0aGlzLnJlbmRlcigpLCh0aGlzLnN0YXRlPT09XCJzdWJtaXRcInx8dGhpcy5zdGF0ZT09PVwiY2FuY2VsXCIpJiZ0aGlzLmNsb3NlKCk7fWNsb3NlKCl7dGhpcy5pbnB1dC51bnBpcGUoKSx0aGlzLmlucHV0LnJlbW92ZUxpc3RlbmVyKFwia2V5cHJlc3NcIix0aGlzLm9uS2V5cHJlc3MpLHRoaXMub3V0cHV0LndyaXRlKGBcbmApLGQodGhpcy5pbnB1dCwhMSksdGhpcy5ybD8uY2xvc2UoKSx0aGlzLnJsPXZvaWQgMCx0aGlzLmVtaXQoYCR7dGhpcy5zdGF0ZX1gLHRoaXMudmFsdWUpLHRoaXMudW5zdWJzY3JpYmUoKTt9cmVzdG9yZUN1cnNvcigpe2NvbnN0IHU9Ryh0aGlzLl9wcmV2RnJhbWUscHJvY2Vzcy5zdGRvdXQuY29sdW1ucyx7aGFyZDohMH0pLnNwbGl0KGBcbmApLmxlbmd0aC0xO3RoaXMub3V0cHV0LndyaXRlKHNyY0V4cG9ydHMuY3Vyc29yLm1vdmUoLTk5OSx1Ki0xKSk7fXJlbmRlcigpe2NvbnN0IHU9Ryh0aGlzLl9yZW5kZXIodGhpcyk/P1wiXCIscHJvY2Vzcy5zdGRvdXQuY29sdW1ucyx7aGFyZDohMH0pO2lmKHUhPT10aGlzLl9wcmV2RnJhbWUpe2lmKHRoaXMuc3RhdGU9PT1cImluaXRpYWxcIil0aGlzLm91dHB1dC53cml0ZShzcmNFeHBvcnRzLmN1cnNvci5oaWRlKTtlbHNlIHtjb25zdCBGPWhEKHRoaXMuX3ByZXZGcmFtZSx1KTtpZih0aGlzLnJlc3RvcmVDdXJzb3IoKSxGJiZGPy5sZW5ndGg9PT0xKXtjb25zdCB0PUZbMF07dGhpcy5vdXRwdXQud3JpdGUoc3JjRXhwb3J0cy5jdXJzb3IubW92ZSgwLHQpKSx0aGlzLm91dHB1dC53cml0ZShzcmNFeHBvcnRzLmVyYXNlLmxpbmVzKDEpKTtjb25zdCBzPXUuc3BsaXQoYFxuYCk7dGhpcy5vdXRwdXQud3JpdGUoc1t0XSksdGhpcy5fcHJldkZyYW1lPXUsdGhpcy5vdXRwdXQud3JpdGUoc3JjRXhwb3J0cy5jdXJzb3IubW92ZSgwLHMubGVuZ3RoLXQtMSkpO3JldHVybn1pZihGJiZGPy5sZW5ndGg+MSl7Y29uc3QgdD1GWzBdO3RoaXMub3V0cHV0LndyaXRlKHNyY0V4cG9ydHMuY3Vyc29yLm1vdmUoMCx0KSksdGhpcy5vdXRwdXQud3JpdGUoc3JjRXhwb3J0cy5lcmFzZS5kb3duKCkpO2NvbnN0IHM9dS5zcGxpdChgXG5gKS5zbGljZSh0KTt0aGlzLm91dHB1dC53cml0ZShzLmpvaW4oYFxuYCkpLHRoaXMuX3ByZXZGcmFtZT11O3JldHVybn10aGlzLm91dHB1dC53cml0ZShzcmNFeHBvcnRzLmVyYXNlLmRvd24oKSk7fXRoaXMub3V0cHV0LndyaXRlKHUpLHRoaXMuc3RhdGU9PT1cImluaXRpYWxcIiYmKHRoaXMuc3RhdGU9XCJhY3RpdmVcIiksdGhpcy5fcHJldkZyYW1lPXU7fX19Y2xhc3MgZkQgZXh0ZW5kcyB4e2dldCBjdXJzb3IoKXtyZXR1cm4gdGhpcy52YWx1ZT8wOjF9Z2V0IF92YWx1ZSgpe3JldHVybiB0aGlzLmN1cnNvcj09PTB9Y29uc3RydWN0b3IodSl7c3VwZXIodSwhMSksdGhpcy52YWx1ZT0hIXUuaW5pdGlhbFZhbHVlLHRoaXMub24oXCJ2YWx1ZVwiLCgpPT57dGhpcy52YWx1ZT10aGlzLl92YWx1ZTt9KSx0aGlzLm9uKFwiY29uZmlybVwiLEY9Pnt0aGlzLm91dHB1dC53cml0ZShzcmNFeHBvcnRzLmN1cnNvci5tb3ZlKDAsLTEpKSx0aGlzLnZhbHVlPUYsdGhpcy5zdGF0ZT1cInN1Ym1pdFwiLHRoaXMuY2xvc2UoKTt9KSx0aGlzLm9uKFwiY3Vyc29yXCIsKCk9Pnt0aGlzLnZhbHVlPSF0aGlzLnZhbHVlO30pO319dmFyIGJEPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxtRD0oZSx1LEYpPT51IGluIGU/YkQoZSx1LHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpGfSk6ZVt1XT1GLFk9KGUsdSxGKT0+KG1EKGUsdHlwZW9mIHUhPVwic3ltYm9sXCI/dStcIlwiOnUsRiksRik7bGV0IHdEPWNsYXNzIGV4dGVuZHMgeHtjb25zdHJ1Y3Rvcih1KXtzdXBlcih1LCExKSxZKHRoaXMsXCJvcHRpb25zXCIpLFkodGhpcyxcImN1cnNvclwiLDApLHRoaXMub3B0aW9ucz11Lm9wdGlvbnMsdGhpcy52YWx1ZT1bLi4udS5pbml0aWFsVmFsdWVzPz9bXV0sdGhpcy5jdXJzb3I9TWF0aC5tYXgodGhpcy5vcHRpb25zLmZpbmRJbmRleCgoe3ZhbHVlOkZ9KT0+Rj09PXUuY3Vyc29yQXQpLDApLHRoaXMub24oXCJrZXlcIixGPT57Rj09PVwiYVwiJiZ0aGlzLnRvZ2dsZUFsbCgpO30pLHRoaXMub24oXCJjdXJzb3JcIixGPT57c3dpdGNoKEYpe2Nhc2VcImxlZnRcIjpjYXNlXCJ1cFwiOnRoaXMuY3Vyc29yPXRoaXMuY3Vyc29yPT09MD90aGlzLm9wdGlvbnMubGVuZ3RoLTE6dGhpcy5jdXJzb3ItMTticmVhaztjYXNlXCJkb3duXCI6Y2FzZVwicmlnaHRcIjp0aGlzLmN1cnNvcj10aGlzLmN1cnNvcj09PXRoaXMub3B0aW9ucy5sZW5ndGgtMT8wOnRoaXMuY3Vyc29yKzE7YnJlYWs7Y2FzZVwic3BhY2VcIjp0aGlzLnRvZ2dsZVZhbHVlKCk7YnJlYWt9fSk7fWdldCBfdmFsdWUoKXtyZXR1cm4gdGhpcy5vcHRpb25zW3RoaXMuY3Vyc29yXS52YWx1ZX10b2dnbGVBbGwoKXtjb25zdCB1PXRoaXMudmFsdWUubGVuZ3RoPT09dGhpcy5vcHRpb25zLmxlbmd0aDt0aGlzLnZhbHVlPXU/W106dGhpcy5vcHRpb25zLm1hcChGPT5GLnZhbHVlKTt9dG9nZ2xlVmFsdWUoKXtjb25zdCB1PXRoaXMudmFsdWUuaW5jbHVkZXModGhpcy5fdmFsdWUpO3RoaXMudmFsdWU9dT90aGlzLnZhbHVlLmZpbHRlcihGPT5GIT09dGhpcy5fdmFsdWUpOlsuLi50aGlzLnZhbHVlLHRoaXMuX3ZhbHVlXTt9fTt2YXIgJEQ9T2JqZWN0LmRlZmluZVByb3BlcnR5LFNEPShlLHUsRik9PnUgaW4gZT8kRChlLHUse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkZ9KTplW3VdPUYscT0oZSx1LEYpPT4oU0QoZSx0eXBlb2YgdSE9XCJzeW1ib2xcIj91K1wiXCI6dSxGKSxGKTtjbGFzcyBqRCBleHRlbmRzIHh7Y29uc3RydWN0b3IodSl7c3VwZXIodSwhMSkscSh0aGlzLFwib3B0aW9uc1wiKSxxKHRoaXMsXCJjdXJzb3JcIiwwKSx0aGlzLm9wdGlvbnM9dS5vcHRpb25zLHRoaXMuY3Vyc29yPXRoaXMub3B0aW9ucy5maW5kSW5kZXgoKHt2YWx1ZTpGfSk9PkY9PT11LmluaXRpYWxWYWx1ZSksdGhpcy5jdXJzb3I9PT0tMSYmKHRoaXMuY3Vyc29yPTApLHRoaXMuY2hhbmdlVmFsdWUoKSx0aGlzLm9uKFwiY3Vyc29yXCIsRj0+e3N3aXRjaChGKXtjYXNlXCJsZWZ0XCI6Y2FzZVwidXBcIjp0aGlzLmN1cnNvcj10aGlzLmN1cnNvcj09PTA/dGhpcy5vcHRpb25zLmxlbmd0aC0xOnRoaXMuY3Vyc29yLTE7YnJlYWs7Y2FzZVwiZG93blwiOmNhc2VcInJpZ2h0XCI6dGhpcy5jdXJzb3I9dGhpcy5jdXJzb3I9PT10aGlzLm9wdGlvbnMubGVuZ3RoLTE/MDp0aGlzLmN1cnNvcisxO2JyZWFrfXRoaXMuY2hhbmdlVmFsdWUoKTt9KTt9Z2V0IF92YWx1ZSgpe3JldHVybiB0aGlzLm9wdGlvbnNbdGhpcy5jdXJzb3JdfWNoYW5nZVZhbHVlKCl7dGhpcy52YWx1ZT10aGlzLl92YWx1ZS52YWx1ZTt9fXZhciBQRD1PYmplY3QuZGVmaW5lUHJvcGVydHksTEQ9KGUsdSxGKT0+dSBpbiBlP1BEKGUsdSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Rn0pOmVbdV09RixXRD0oZSx1LEYpPT4oTEQoZSx1K1wiXCIsRiksRik7Y2xhc3MgTkQgZXh0ZW5kcyB4e2NvbnN0cnVjdG9yKHUpe3N1cGVyKHUpLFdEKHRoaXMsXCJ2YWx1ZVdpdGhDdXJzb3JcIixcIlwiKSx0aGlzLm9uKFwiZmluYWxpemVcIiwoKT0+e3RoaXMudmFsdWV8fCh0aGlzLnZhbHVlPXUuZGVmYXVsdFZhbHVlKSx0aGlzLnZhbHVlV2l0aEN1cnNvcj10aGlzLnZhbHVlO30pLHRoaXMub24oXCJ2YWx1ZVwiLCgpPT57aWYodGhpcy5jdXJzb3I+PXRoaXMudmFsdWUubGVuZ3RoKXRoaXMudmFsdWVXaXRoQ3Vyc29yPWAke3RoaXMudmFsdWV9JHtjLmludmVyc2UoYy5oaWRkZW4oXCJfXCIpKX1gO2Vsc2Uge2NvbnN0IEY9dGhpcy52YWx1ZS5zbGljZSgwLHRoaXMuY3Vyc29yKSx0PXRoaXMudmFsdWUuc2xpY2UodGhpcy5jdXJzb3IpO3RoaXMudmFsdWVXaXRoQ3Vyc29yPWAke0Z9JHtjLmludmVyc2UodFswXSl9JHt0LnNsaWNlKDEpfWA7fX0pO31nZXQgY3Vyc29yKCl7cmV0dXJuIHRoaXMuX2N1cnNvcn19XG5cbmNvbnN0IHVuaWNvZGUgPSBpc1VuaWNvZGVTdXBwb3J0ZWQoKTtcbmNvbnN0IHMgPSAoYywgZmFsbGJhY2spID0+IHVuaWNvZGUgPyBjIDogZmFsbGJhY2s7XG5jb25zdCBTX1NURVBfQUNUSVZFID0gcyhcIlxcdTI3NkZcIiwgXCI+XCIpO1xuY29uc3QgU19TVEVQX0NBTkNFTCA9IHMoXCJcXHUyNUEwXCIsIFwieFwiKTtcbmNvbnN0IFNfU1RFUF9FUlJPUiA9IHMoXCJcXHUyNUIyXCIsIFwieFwiKTtcbmNvbnN0IFNfU1RFUF9TVUJNSVQgPSBzKFwiXFx1MjcxNFwiLCBcIlxcdTIyMUFcIik7XG5jb25zdCBTX0JBUiA9IFwiXCI7XG5jb25zdCBTX0JBUl9FTkQgPSBcIlwiO1xuY29uc3QgU19SQURJT19BQ1RJVkUgPSBzKFwiXFx1MjVDRlwiLCBcIj5cIik7XG5jb25zdCBTX1JBRElPX0lOQUNUSVZFID0gcyhcIlxcdTI1Q0JcIiwgXCIgXCIpO1xuY29uc3QgU19DSEVDS0JPWF9BQ1RJVkUgPSBzKFwiXFx1MjVGQlwiLCBcIltcXHUyMDIyXVwiKTtcbmNvbnN0IFNfQ0hFQ0tCT1hfU0VMRUNURUQgPSBzKFwiXFx1MjVGQ1wiLCBcIlsrXVwiKTtcbmNvbnN0IFNfQ0hFQ0tCT1hfSU5BQ1RJVkUgPSBzKFwiXFx1MjVGQlwiLCBcIlsgXVwiKTtcbmNvbnN0IHN5bWJvbCA9IChzdGF0ZSkgPT4ge1xuICBzd2l0Y2ggKHN0YXRlKSB7XG4gICAgY2FzZSBcImluaXRpYWxcIjpcbiAgICBjYXNlIFwiYWN0aXZlXCI6IHtcbiAgICAgIHJldHVybiBjb2xvcnMuY3lhbihTX1NURVBfQUNUSVZFKTtcbiAgICB9XG4gICAgY2FzZSBcImNhbmNlbFwiOiB7XG4gICAgICByZXR1cm4gY29sb3JzLnJlZChTX1NURVBfQ0FOQ0VMKTtcbiAgICB9XG4gICAgY2FzZSBcImVycm9yXCI6IHtcbiAgICAgIHJldHVybiBjb2xvcnMueWVsbG93KFNfU1RFUF9FUlJPUik7XG4gICAgfVxuICAgIGNhc2UgXCJzdWJtaXRcIjoge1xuICAgICAgcmV0dXJuIGNvbG9ycy5ncmVlbihTX1NURVBfU1VCTUlUKTtcbiAgICB9XG4gIH1cbn07XG5jb25zdCB0ZXh0ID0gKG9wdHMpID0+IHtcbiAgcmV0dXJuIG5ldyBORCh7XG4gICAgdmFsaWRhdGU6IG9wdHMudmFsaWRhdGUsXG4gICAgcGxhY2Vob2xkZXI6IG9wdHMucGxhY2Vob2xkZXIsXG4gICAgZGVmYXVsdFZhbHVlOiBvcHRzLmRlZmF1bHRWYWx1ZSxcbiAgICBpbml0aWFsVmFsdWU6IG9wdHMuaW5pdGlhbFZhbHVlLFxuICAgIHJlbmRlcigpIHtcbiAgICAgIGNvbnN0IHRpdGxlID0gYCR7Y29sb3JzLmdyYXkoU19CQVIpfVxuJHtzeW1ib2wodGhpcy5zdGF0ZSl9ICR7b3B0cy5tZXNzYWdlfVxuYDtcbiAgICAgIGNvbnN0IHBsYWNlaG9sZGVyID0gb3B0cy5wbGFjZWhvbGRlciA/IGNvbG9ycy5pbnZlcnNlKG9wdHMucGxhY2Vob2xkZXJbMF0pICsgY29sb3JzLmRpbShvcHRzLnBsYWNlaG9sZGVyLnNsaWNlKDEpKSA6IGNvbG9ycy5pbnZlcnNlKGNvbG9ycy5oaWRkZW4oXCJfXCIpKTtcbiAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy52YWx1ZSA/IHRoaXMudmFsdWVXaXRoQ3Vyc29yIDogcGxhY2Vob2xkZXI7XG4gICAgICBzd2l0Y2ggKHRoaXMuc3RhdGUpIHtcbiAgICAgICAgY2FzZSBcImVycm9yXCI6IHtcbiAgICAgICAgICByZXR1cm4gYCR7dGl0bGUudHJpbSgpfVxuJHtjb2xvcnMueWVsbG93KFxuICAgICAgICAgICAgU19CQVJcbiAgICAgICAgICApfSAke3ZhbHVlfVxuJHtjb2xvcnMueWVsbG93KFNfQkFSX0VORCl9ICR7Y29sb3JzLnllbGxvdyhcbiAgICAgICAgICAgIHRoaXMuZXJyb3JcbiAgICAgICAgICApfVxuYDtcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFwic3VibWl0XCI6IHtcbiAgICAgICAgICByZXR1cm4gYCR7dGl0bGV9JHtjb2xvcnMuZ3JheShTX0JBUil9ICR7Y29sb3JzLmRpbShcbiAgICAgICAgICAgIHRoaXMudmFsdWUgfHwgb3B0cy5wbGFjZWhvbGRlclxuICAgICAgICAgICl9YDtcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFwiY2FuY2VsXCI6IHtcbiAgICAgICAgICByZXR1cm4gYCR7dGl0bGV9JHtjb2xvcnMuZ3JheShTX0JBUil9ICR7Y29sb3JzLnN0cmlrZXRocm91Z2goXG4gICAgICAgICAgICBjb2xvcnMuZGltKHRoaXMudmFsdWUgPz8gXCJcIilcbiAgICAgICAgICApfSR7dGhpcy52YWx1ZT8udHJpbSgpID8gXCJcXG5cIiArIGNvbG9ycy5ncmF5KFNfQkFSKSA6IFwiXCJ9YDtcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgcmV0dXJuIGAke3RpdGxlfSR7Y29sb3JzLmN5YW4oU19CQVIpfSAke3ZhbHVlfVxuJHtjb2xvcnMuY3lhbihcbiAgICAgICAgICAgIFNfQkFSX0VORFxuICAgICAgICAgICl9XG5gO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9KS5wcm9tcHQoKTtcbn07XG5jb25zdCBjb25maXJtID0gKG9wdHMpID0+IHtcbiAgY29uc3QgYWN0aXZlID0gb3B0cy5hY3RpdmUgPz8gXCJZZXNcIjtcbiAgY29uc3QgaW5hY3RpdmUgPSBvcHRzLmluYWN0aXZlID8/IFwiTm9cIjtcbiAgcmV0dXJuIG5ldyBmRCh7XG4gICAgYWN0aXZlLFxuICAgIGluYWN0aXZlLFxuICAgIGluaXRpYWxWYWx1ZTogb3B0cy5pbml0aWFsVmFsdWUgPz8gdHJ1ZSxcbiAgICByZW5kZXIoKSB7XG4gICAgICBjb25zdCB0aXRsZSA9IGAke2NvbG9ycy5ncmF5KFNfQkFSKX1cbiR7c3ltYm9sKHRoaXMuc3RhdGUpfSAke29wdHMubWVzc2FnZX1cbmA7XG4gICAgICBjb25zdCB2YWx1ZSA9IHRoaXMudmFsdWUgPyBhY3RpdmUgOiBpbmFjdGl2ZTtcbiAgICAgIHN3aXRjaCAodGhpcy5zdGF0ZSkge1xuICAgICAgICBjYXNlIFwic3VibWl0XCI6IHtcbiAgICAgICAgICByZXR1cm4gYCR7dGl0bGV9JHtjb2xvcnMuZ3JheShTX0JBUil9ICR7Y29sb3JzLmRpbSh2YWx1ZSl9YDtcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFwiY2FuY2VsXCI6IHtcbiAgICAgICAgICByZXR1cm4gYCR7dGl0bGV9JHtjb2xvcnMuZ3JheShTX0JBUil9ICR7Y29sb3JzLnN0cmlrZXRocm91Z2goXG4gICAgICAgICAgICBjb2xvcnMuZGltKHZhbHVlKVxuICAgICAgICAgICl9XG4ke2NvbG9ycy5ncmF5KFNfQkFSKX1gO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICByZXR1cm4gYCR7dGl0bGV9JHtjb2xvcnMuY3lhbihTX0JBUil9ICR7dGhpcy52YWx1ZSA/IGAke2NvbG9ycy5ncmVlbihTX1JBRElPX0FDVElWRSl9ICR7YWN0aXZlfWAgOiBgJHtjb2xvcnMuZGltKFNfUkFESU9fSU5BQ1RJVkUpfSAke2NvbG9ycy5kaW0oYWN0aXZlKX1gfSAke2NvbG9ycy5kaW0oXCIvXCIpfSAke3RoaXMudmFsdWUgPyBgJHtjb2xvcnMuZGltKFNfUkFESU9fSU5BQ1RJVkUpfSAke2NvbG9ycy5kaW0oaW5hY3RpdmUpfWAgOiBgJHtjb2xvcnMuZ3JlZW4oU19SQURJT19BQ1RJVkUpfSAke2luYWN0aXZlfWB9XG4ke2NvbG9ycy5jeWFuKFNfQkFSX0VORCl9XG5gO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9KS5wcm9tcHQoKTtcbn07XG5jb25zdCBzZWxlY3QgPSAob3B0cykgPT4ge1xuICBjb25zdCBvcHQgPSAob3B0aW9uLCBzdGF0ZSkgPT4ge1xuICAgIGNvbnN0IGxhYmVsID0gb3B0aW9uLmxhYmVsID8/IFN0cmluZyhvcHRpb24udmFsdWUpO1xuICAgIHN3aXRjaCAoc3RhdGUpIHtcbiAgICAgIGNhc2UgXCJhY3RpdmVcIjoge1xuICAgICAgICByZXR1cm4gYCR7Y29sb3JzLmdyZWVuKFNfUkFESU9fQUNUSVZFKX0gJHtsYWJlbH0gJHtvcHRpb24uaGludCA/IGNvbG9ycy5kaW0oYCgke29wdGlvbi5oaW50fSlgKSA6IFwiXCJ9YDtcbiAgICAgIH1cbiAgICAgIGNhc2UgXCJzZWxlY3RlZFwiOiB7XG4gICAgICAgIHJldHVybiBgJHtjb2xvcnMuZGltKGxhYmVsKX1gO1xuICAgICAgfVxuICAgICAgY2FzZSBcImNhbmNlbGxlZFwiOiB7XG4gICAgICAgIHJldHVybiBgJHtjb2xvcnMuc3RyaWtldGhyb3VnaChjb2xvcnMuZGltKGxhYmVsKSl9YDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGAke2NvbG9ycy5kaW0oU19SQURJT19JTkFDVElWRSl9ICR7Y29sb3JzLmRpbShsYWJlbCl9YDtcbiAgfTtcbiAgcmV0dXJuIG5ldyBqRCh7XG4gICAgb3B0aW9uczogb3B0cy5vcHRpb25zLFxuICAgIGluaXRpYWxWYWx1ZTogb3B0cy5pbml0aWFsVmFsdWUsXG4gICAgcmVuZGVyKCkge1xuICAgICAgY29uc3QgdGl0bGUgPSBgJHtjb2xvcnMuZ3JheShTX0JBUil9XG4ke3N5bWJvbCh0aGlzLnN0YXRlKX0gJHtvcHRzLm1lc3NhZ2V9XG5gO1xuICAgICAgc3dpdGNoICh0aGlzLnN0YXRlKSB7XG4gICAgICAgIGNhc2UgXCJzdWJtaXRcIjoge1xuICAgICAgICAgIHJldHVybiBgJHt0aXRsZX0ke2NvbG9ycy5ncmF5KFNfQkFSKX0gJHtvcHQoXG4gICAgICAgICAgICB0aGlzLm9wdGlvbnNbdGhpcy5jdXJzb3JdLFxuICAgICAgICAgICAgXCJzZWxlY3RlZFwiXG4gICAgICAgICAgKX1gO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgXCJjYW5jZWxcIjoge1xuICAgICAgICAgIHJldHVybiBgJHt0aXRsZX0ke2NvbG9ycy5ncmF5KFNfQkFSKX0gJHtvcHQoXG4gICAgICAgICAgICB0aGlzLm9wdGlvbnNbdGhpcy5jdXJzb3JdLFxuICAgICAgICAgICAgXCJjYW5jZWxsZWRcIlxuICAgICAgICAgICl9XG4ke2NvbG9ycy5ncmF5KFNfQkFSKX1gO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICByZXR1cm4gYCR7dGl0bGV9JHtjb2xvcnMuY3lhbihTX0JBUil9ICR7dGhpcy5vcHRpb25zLm1hcChcbiAgICAgICAgICAgIChvcHRpb24sIGkpID0+IG9wdChvcHRpb24sIGkgPT09IHRoaXMuY3Vyc29yID8gXCJhY3RpdmVcIiA6IFwiaW5hY3RpdmVcIilcbiAgICAgICAgICApLmpvaW4oYFxuJHtjb2xvcnMuY3lhbihTX0JBUil9ICBgKX1cbiR7Y29sb3JzLmN5YW4oU19CQVJfRU5EKX1cbmA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0pLnByb21wdCgpO1xufTtcbmNvbnN0IG11bHRpc2VsZWN0ID0gKG9wdHMpID0+IHtcbiAgY29uc3Qgb3B0ID0gKG9wdGlvbiwgc3RhdGUpID0+IHtcbiAgICBjb25zdCBsYWJlbCA9IG9wdGlvbi5sYWJlbCA/PyBTdHJpbmcob3B0aW9uLnZhbHVlKTtcbiAgICBzd2l0Y2ggKHN0YXRlKSB7XG4gICAgICBjYXNlIFwiYWN0aXZlXCI6IHtcbiAgICAgICAgcmV0dXJuIGAke2NvbG9ycy5jeWFuKFNfQ0hFQ0tCT1hfQUNUSVZFKX0gJHtsYWJlbH0gJHtvcHRpb24uaGludCA/IGNvbG9ycy5kaW0oYCgke29wdGlvbi5oaW50fSlgKSA6IFwiXCJ9YDtcbiAgICAgIH1cbiAgICAgIGNhc2UgXCJzZWxlY3RlZFwiOiB7XG4gICAgICAgIHJldHVybiBgJHtjb2xvcnMuZ3JlZW4oU19DSEVDS0JPWF9TRUxFQ1RFRCl9ICR7Y29sb3JzLmRpbShsYWJlbCl9YDtcbiAgICAgIH1cbiAgICAgIGNhc2UgXCJjYW5jZWxsZWRcIjoge1xuICAgICAgICByZXR1cm4gYCR7Y29sb3JzLnN0cmlrZXRocm91Z2goY29sb3JzLmRpbShsYWJlbCkpfWA7XG4gICAgICB9XG4gICAgICBjYXNlIFwiYWN0aXZlLXNlbGVjdGVkXCI6IHtcbiAgICAgICAgcmV0dXJuIGAke2NvbG9ycy5ncmVlbihTX0NIRUNLQk9YX1NFTEVDVEVEKX0gJHtsYWJlbH0gJHtvcHRpb24uaGludCA/IGNvbG9ycy5kaW0oYCgke29wdGlvbi5oaW50fSlgKSA6IFwiXCJ9YDtcbiAgICAgIH1cbiAgICAgIGNhc2UgXCJzdWJtaXR0ZWRcIjoge1xuICAgICAgICByZXR1cm4gYCR7Y29sb3JzLmRpbShsYWJlbCl9YDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGAke2NvbG9ycy5kaW0oU19DSEVDS0JPWF9JTkFDVElWRSl9ICR7Y29sb3JzLmRpbShsYWJlbCl9YDtcbiAgfTtcbiAgcmV0dXJuIG5ldyB3RCh7XG4gICAgb3B0aW9uczogb3B0cy5vcHRpb25zLFxuICAgIGluaXRpYWxWYWx1ZXM6IG9wdHMuaW5pdGlhbFZhbHVlcyxcbiAgICByZXF1aXJlZDogb3B0cy5yZXF1aXJlZCA/PyB0cnVlLFxuICAgIGN1cnNvckF0OiBvcHRzLmN1cnNvckF0LFxuICAgIHZhbGlkYXRlKHNlbGVjdGVkKSB7XG4gICAgICBpZiAodGhpcy5yZXF1aXJlZCAmJiBzZWxlY3RlZC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIGBQbGVhc2Ugc2VsZWN0IGF0IGxlYXN0IG9uZSBvcHRpb24uXG4ke2NvbG9ycy5yZXNldChcbiAgICAgICAgICBjb2xvcnMuZGltKFxuICAgICAgICAgICAgYFByZXNzICR7Y29sb3JzLmdyYXkoXG4gICAgICAgICAgICAgIGNvbG9ycy5iZ1doaXRlKGNvbG9ycy5pbnZlcnNlKFwiIHNwYWNlIFwiKSlcbiAgICAgICAgICAgICl9IHRvIHNlbGVjdCwgJHtjb2xvcnMuZ3JheShcbiAgICAgICAgICAgICAgY29sb3JzLmJnV2hpdGUoY29sb3JzLmludmVyc2UoXCIgZW50ZXIgXCIpKVxuICAgICAgICAgICAgKX0gdG8gc3VibWl0YFxuICAgICAgICAgIClcbiAgICAgICAgKX1gO1xuICAgICAgfVxuICAgIH0sXG4gICAgcmVuZGVyKCkge1xuICAgICAgY29uc3QgdGl0bGUgPSBgJHtjb2xvcnMuZ3JheShTX0JBUil9XG4ke3N5bWJvbCh0aGlzLnN0YXRlKX0gJHtvcHRzLm1lc3NhZ2V9XG5gO1xuICAgICAgc3dpdGNoICh0aGlzLnN0YXRlKSB7XG4gICAgICAgIGNhc2UgXCJzdWJtaXRcIjoge1xuICAgICAgICAgIHJldHVybiBgJHt0aXRsZX0ke2NvbG9ycy5ncmF5KFNfQkFSKX0gJHt0aGlzLm9wdGlvbnMuZmlsdGVyKCh7IHZhbHVlIH0pID0+IHRoaXMudmFsdWUuaW5jbHVkZXModmFsdWUpKS5tYXAoKG9wdGlvbikgPT4gb3B0KG9wdGlvbiwgXCJzdWJtaXR0ZWRcIikpLmpvaW4oY29sb3JzLmRpbShcIiwgXCIpKSB8fCBjb2xvcnMuZGltKFwibm9uZVwiKX1gO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgXCJjYW5jZWxcIjoge1xuICAgICAgICAgIGNvbnN0IGxhYmVsID0gdGhpcy5vcHRpb25zLmZpbHRlcigoeyB2YWx1ZSB9KSA9PiB0aGlzLnZhbHVlLmluY2x1ZGVzKHZhbHVlKSkubWFwKChvcHRpb24pID0+IG9wdChvcHRpb24sIFwiY2FuY2VsbGVkXCIpKS5qb2luKGNvbG9ycy5kaW0oXCIsIFwiKSk7XG4gICAgICAgICAgcmV0dXJuIGAke3RpdGxlfSR7Y29sb3JzLmdyYXkoU19CQVIpfSAke2xhYmVsLnRyaW0oKSA/IGAke2xhYmVsfVxuJHtjb2xvcnMuZ3JheShTX0JBUil9YCA6IFwiXCJ9YDtcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFwiZXJyb3JcIjoge1xuICAgICAgICAgIGNvbnN0IGZvb3RlciA9IHRoaXMuZXJyb3Iuc3BsaXQoXCJcXG5cIikubWFwKFxuICAgICAgICAgICAgKGxuLCBpKSA9PiBpID09PSAwID8gYCR7Y29sb3JzLnllbGxvdyhTX0JBUl9FTkQpfSAke2NvbG9ycy55ZWxsb3cobG4pfWAgOiBgICAgJHtsbn1gXG4gICAgICAgICAgKS5qb2luKFwiXFxuXCIpO1xuICAgICAgICAgIHJldHVybiB0aXRsZSArIGNvbG9ycy55ZWxsb3coU19CQVIpICsgXCIgIFwiICsgdGhpcy5vcHRpb25zLm1hcCgob3B0aW9uLCBpKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMudmFsdWUuaW5jbHVkZXMob3B0aW9uLnZhbHVlKTtcbiAgICAgICAgICAgIGNvbnN0IGFjdGl2ZSA9IGkgPT09IHRoaXMuY3Vyc29yO1xuICAgICAgICAgICAgaWYgKGFjdGl2ZSAmJiBzZWxlY3RlZCkge1xuICAgICAgICAgICAgICByZXR1cm4gb3B0KG9wdGlvbiwgXCJhY3RpdmUtc2VsZWN0ZWRcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG9wdChvcHRpb24sIFwic2VsZWN0ZWRcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gb3B0KG9wdGlvbiwgYWN0aXZlID8gXCJhY3RpdmVcIiA6IFwiaW5hY3RpdmVcIik7XG4gICAgICAgICAgfSkuam9pbihgXG4ke2NvbG9ycy55ZWxsb3coU19CQVIpfSAgYCkgKyBcIlxcblwiICsgZm9vdGVyICsgXCJcXG5cIjtcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgcmV0dXJuIGAke3RpdGxlfSR7Y29sb3JzLmN5YW4oU19CQVIpfSAke3RoaXMub3B0aW9ucy5tYXAoKG9wdGlvbiwgaSkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLnZhbHVlLmluY2x1ZGVzKG9wdGlvbi52YWx1ZSk7XG4gICAgICAgICAgICBjb25zdCBhY3RpdmUgPSBpID09PSB0aGlzLmN1cnNvcjtcbiAgICAgICAgICAgIGlmIChhY3RpdmUgJiYgc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG9wdChvcHRpb24sIFwiYWN0aXZlLXNlbGVjdGVkXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHNlbGVjdGVkKSB7XG4gICAgICAgICAgICAgIHJldHVybiBvcHQob3B0aW9uLCBcInNlbGVjdGVkXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG9wdChvcHRpb24sIGFjdGl2ZSA/IFwiYWN0aXZlXCIgOiBcImluYWN0aXZlXCIpO1xuICAgICAgICAgIH0pLmpvaW4oYFxuJHtjb2xvcnMuY3lhbihTX0JBUil9ICBgKX1cbiR7Y29sb3JzLmN5YW4oU19CQVJfRU5EKX1cbmA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0pLnByb21wdCgpO1xufTtcblxuY29uc3Qga0NhbmNlbCA9IFN5bWJvbC5mb3IoXCJjYW5jZWxcIik7XG5hc3luYyBmdW5jdGlvbiBwcm9tcHQobWVzc2FnZSwgb3B0cyA9IHt9KSB7XG4gIGNvbnN0IGhhbmRsZUNhbmNlbCA9ICh2YWx1ZSkgPT4ge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09IFwic3ltYm9sXCIgfHwgdmFsdWUudG9TdHJpbmcoKSAhPT0gXCJTeW1ib2woY2xhY2s6Y2FuY2VsKVwiKSB7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuICAgIHN3aXRjaCAob3B0cy5jYW5jZWwpIHtcbiAgICAgIGNhc2UgXCJyZWplY3RcIjoge1xuICAgICAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihcIlByb21wdCBjYW5jZWxsZWQuXCIpO1xuICAgICAgICBlcnJvci5uYW1lID0gXCJDb25zb2xhUHJvbXB0Q2FuY2VsbGVkRXJyb3JcIjtcbiAgICAgICAgaWYgKEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKSB7XG4gICAgICAgICAgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UoZXJyb3IsIHByb21wdCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9XG4gICAgICBjYXNlIFwidW5kZWZpbmVkXCI6IHtcbiAgICAgICAgcmV0dXJuIHZvaWQgMDtcbiAgICAgIH1cbiAgICAgIGNhc2UgXCJudWxsXCI6IHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICBjYXNlIFwic3ltYm9sXCI6IHtcbiAgICAgICAgcmV0dXJuIGtDYW5jZWw7XG4gICAgICB9XG4gICAgICBkZWZhdWx0OlxuICAgICAgY2FzZSBcImRlZmF1bHRcIjoge1xuICAgICAgICByZXR1cm4gb3B0cy5kZWZhdWx0ID8/IG9wdHMuaW5pdGlhbDtcbiAgICAgIH1cbiAgICB9XG4gIH07XG4gIGlmICghb3B0cy50eXBlIHx8IG9wdHMudHlwZSA9PT0gXCJ0ZXh0XCIpIHtcbiAgICByZXR1cm4gYXdhaXQgdGV4dCh7XG4gICAgICBtZXNzYWdlLFxuICAgICAgZGVmYXVsdFZhbHVlOiBvcHRzLmRlZmF1bHQsXG4gICAgICBwbGFjZWhvbGRlcjogb3B0cy5wbGFjZWhvbGRlcixcbiAgICAgIGluaXRpYWxWYWx1ZTogb3B0cy5pbml0aWFsXG4gICAgfSkudGhlbihoYW5kbGVDYW5jZWwpO1xuICB9XG4gIGlmIChvcHRzLnR5cGUgPT09IFwiY29uZmlybVwiKSB7XG4gICAgcmV0dXJuIGF3YWl0IGNvbmZpcm0oe1xuICAgICAgbWVzc2FnZSxcbiAgICAgIGluaXRpYWxWYWx1ZTogb3B0cy5pbml0aWFsXG4gICAgfSkudGhlbihoYW5kbGVDYW5jZWwpO1xuICB9XG4gIGlmIChvcHRzLnR5cGUgPT09IFwic2VsZWN0XCIpIHtcbiAgICByZXR1cm4gYXdhaXQgc2VsZWN0KHtcbiAgICAgIG1lc3NhZ2UsXG4gICAgICBvcHRpb25zOiBvcHRzLm9wdGlvbnMubWFwKFxuICAgICAgICAobykgPT4gdHlwZW9mIG8gPT09IFwic3RyaW5nXCIgPyB7IHZhbHVlOiBvLCBsYWJlbDogbyB9IDogb1xuICAgICAgKSxcbiAgICAgIGluaXRpYWxWYWx1ZTogb3B0cy5pbml0aWFsXG4gICAgfSkudGhlbihoYW5kbGVDYW5jZWwpO1xuICB9XG4gIGlmIChvcHRzLnR5cGUgPT09IFwibXVsdGlzZWxlY3RcIikge1xuICAgIHJldHVybiBhd2FpdCBtdWx0aXNlbGVjdCh7XG4gICAgICBtZXNzYWdlLFxuICAgICAgb3B0aW9uczogb3B0cy5vcHRpb25zLm1hcChcbiAgICAgICAgKG8pID0+IHR5cGVvZiBvID09PSBcInN0cmluZ1wiID8geyB2YWx1ZTogbywgbGFiZWw6IG8gfSA6IG9cbiAgICAgICksXG4gICAgICByZXF1aXJlZDogb3B0cy5yZXF1aXJlZCxcbiAgICAgIGluaXRpYWxWYWx1ZXM6IG9wdHMuaW5pdGlhbFxuICAgIH0pLnRoZW4oaGFuZGxlQ2FuY2VsKTtcbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gcHJvbXB0IHR5cGU6ICR7b3B0cy50eXBlfWApO1xufVxuXG5leHBvcnQgeyBrQ2FuY2VsLCBwcm9tcHQgfTtcbiIsICJpbXBvcnQgeyBjcmVhdGVDb25zb2xhIGFzIGNyZWF0ZUNvbnNvbGEkMSwgTG9nTGV2ZWxzIH0gZnJvbSAnLi4vY29yZS5tanMnO1xuaW1wb3J0IHsgQiBhcyBCYXNpY1JlcG9ydGVyLCBwIGFzIHBhcnNlU3RhY2sgfSBmcm9tICcuL2NvbnNvbGEuQ3M1RmR0SEQubWpzJztcbmltcG9ydCBwcm9jZXNzJDEgZnJvbSAnbm9kZTpwcm9jZXNzJztcbmltcG9ydCB7IGQgYXMgY29sb3JzLCBiIGFzIGJveCwgcyBhcyBzdHJpcEFuc2kkMSB9IGZyb20gJy4vY29uc29sYS5DQmk2Tm05cy5tanMnO1xuXG5jb25zdCByPU9iamVjdC5jcmVhdGUobnVsbCksaT1lPT5nbG9iYWxUaGlzLnByb2Nlc3M/LmVudnx8aW1wb3J0Lm1ldGEuZW52fHxnbG9iYWxUaGlzLkRlbm8/LmVudi50b09iamVjdCgpfHxnbG9iYWxUaGlzLl9fZW52X198fChlP3I6Z2xvYmFsVGhpcykscyQxPW5ldyBQcm94eShyLHtnZXQoZSxvKXtyZXR1cm4gaSgpW29dPz9yW29dfSxoYXMoZSxvKXtjb25zdCBFPWkoKTtyZXR1cm4gbyBpbiBFfHxvIGluIHJ9LHNldChlLG8sRSl7Y29uc3QgYj1pKCEwKTtyZXR1cm4gYltvXT1FLCEwfSxkZWxldGVQcm9wZXJ0eShlLG8pe2lmKCFvKXJldHVybiAhMTtjb25zdCBFPWkoITApO3JldHVybiBkZWxldGUgRVtvXSwhMH0sb3duS2V5cygpe2NvbnN0IGU9aSghMCk7cmV0dXJuIE9iamVjdC5rZXlzKGUpfX0pLHQ9dHlwZW9mIHByb2Nlc3M8XCJ1XCImJnByb2Nlc3MuZW52JiZwcm9jZXNzLmVudi5OT0RFX0VOVnx8XCJcIixCPVtbXCJBUFBWRVlPUlwiXSxbXCJBV1NfQU1QTElGWVwiLFwiQVdTX0FQUF9JRFwiLHtjaTohMH1dLFtcIkFaVVJFX1BJUEVMSU5FU1wiLFwiU1lTVEVNX1RFQU1GT1VOREFUSU9OQ09MTEVDVElPTlVSSVwiXSxbXCJBWlVSRV9TVEFUSUNcIixcIklOUFVUX0FaVVJFX1NUQVRJQ19XRUJfQVBQU19BUElfVE9LRU5cIl0sW1wiQVBQQ0lSQ0xFXCIsXCJBQ19BUFBDSVJDTEVcIl0sW1wiQkFNQk9PXCIsXCJiYW1ib29fcGxhbktleVwiXSxbXCJCSVRCVUNLRVRcIixcIkJJVEJVQ0tFVF9DT01NSVRcIl0sW1wiQklUUklTRVwiLFwiQklUUklTRV9JT1wiXSxbXCJCVUREWVwiLFwiQlVERFlfV09SS1NQQUNFX0lEXCJdLFtcIkJVSUxES0lURVwiXSxbXCJDSVJDTEVcIixcIkNJUkNMRUNJXCJdLFtcIkNJUlJVU1wiLFwiQ0lSUlVTX0NJXCJdLFtcIkNMT1VERkxBUkVfUEFHRVNcIixcIkNGX1BBR0VTXCIse2NpOiEwfV0sW1wiQ09ERUJVSUxEXCIsXCJDT0RFQlVJTERfQlVJTERfQVJOXCJdLFtcIkNPREVGUkVTSFwiLFwiQ0ZfQlVJTERfSURcIl0sW1wiRFJPTkVcIl0sW1wiRFJPTkVcIixcIkRST05FX0JVSUxEX0VWRU5UXCJdLFtcIkRTQVJJXCJdLFtcIkdJVEhVQl9BQ1RJT05TXCJdLFtcIkdJVExBQlwiLFwiR0lUTEFCX0NJXCJdLFtcIkdJVExBQlwiLFwiQ0lfTUVSR0VfUkVRVUVTVF9JRFwiXSxbXCJHT0NEXCIsXCJHT19QSVBFTElORV9MQUJFTFwiXSxbXCJMQVlFUkNJXCJdLFtcIkhVRFNPTlwiLFwiSFVEU09OX1VSTFwiXSxbXCJKRU5LSU5TXCIsXCJKRU5LSU5TX1VSTFwiXSxbXCJNQUdOVU1cIl0sW1wiTkVUTElGWVwiXSxbXCJORVRMSUZZXCIsXCJORVRMSUZZX0xPQ0FMXCIse2NpOiExfV0sW1wiTkVWRVJDT0RFXCJdLFtcIlJFTkRFUlwiXSxbXCJTQUlMXCIsXCJTQUlMQ0lcIl0sW1wiU0VNQVBIT1JFXCJdLFtcIlNDUkVXRFJJVkVSXCJdLFtcIlNISVBQQUJMRVwiXSxbXCJTT0xBTk9cIixcIlRERElVTVwiXSxbXCJTVFJJREVSXCJdLFtcIlRFQU1DSVRZXCIsXCJURUFNQ0lUWV9WRVJTSU9OXCJdLFtcIlRSQVZJU1wiXSxbXCJWRVJDRUxcIixcIk5PV19CVUlMREVSXCJdLFtcIlZFUkNFTFwiLFwiVkVSQ0VMXCIse2NpOiExfV0sW1wiVkVSQ0VMXCIsXCJWRVJDRUxfRU5WXCIse2NpOiExfV0sW1wiQVBQQ0VOVEVSXCIsXCJBUFBDRU5URVJfQlVJTERfSURcIl0sW1wiQ09ERVNBTkRCT1hcIixcIkNPREVTQU5EQk9YX1NTRVwiLHtjaTohMX1dLFtcIlNUQUNLQkxJVFpcIl0sW1wiU1RPUk1LSVRcIl0sW1wiQ0xFQVZSXCJdLFtcIlpFQUJVUlwiXSxbXCJDT0RFU1BIRVJFXCIsXCJDT0RFU1BIRVJFX0FQUF9JRFwiLHtjaTohMH1dLFtcIlJBSUxXQVlcIixcIlJBSUxXQVlfUFJPSkVDVF9JRFwiXSxbXCJSQUlMV0FZXCIsXCJSQUlMV0FZX1NFUlZJQ0VfSURcIl0sW1wiREVOTy1ERVBMT1lcIixcIkRFTk9fREVQTE9ZTUVOVF9JRFwiXSxbXCJGSVJFQkFTRV9BUFBfSE9TVElOR1wiLFwiRklSRUJBU0VfQVBQX0hPU1RJTkdcIix7Y2k6ITB9XV07ZnVuY3Rpb24gcCgpe2lmKGdsb2JhbFRoaXMucHJvY2Vzcz8uZW52KWZvcihjb25zdCBlIG9mIEIpe2NvbnN0IG89ZVsxXXx8ZVswXTtpZihnbG9iYWxUaGlzLnByb2Nlc3M/LmVudltvXSlyZXR1cm4ge25hbWU6ZVswXS50b0xvd2VyQ2FzZSgpLC4uLmVbMl19fXJldHVybiBnbG9iYWxUaGlzLnByb2Nlc3M/LmVudj8uU0hFTEw9PT1cIi9iaW4vanNoXCImJmdsb2JhbFRoaXMucHJvY2Vzcz8udmVyc2lvbnM/LndlYmNvbnRhaW5lcj97bmFtZTpcInN0YWNrYmxpdHpcIixjaTohMX06e25hbWU6XCJcIixjaTohMX19Y29uc3QgbD1wKCk7bC5uYW1lO2Z1bmN0aW9uIG4oZSl7cmV0dXJuIGU/ZSE9PVwiZmFsc2VcIjohMX1jb25zdCBJPWdsb2JhbFRoaXMucHJvY2Vzcz8ucGxhdGZvcm18fFwiXCIsVD1uKHMkMS5DSSl8fGwuY2khPT0hMSxSPW4oZ2xvYmFsVGhpcy5wcm9jZXNzPy5zdGRvdXQmJmdsb2JhbFRoaXMucHJvY2Vzcz8uc3Rkb3V0LmlzVFRZKSxVPW4ocyQxLkRFQlVHKSxBPXQ9PT1cInRlc3RcInx8bihzJDEuVEVTVCk7bihzJDEuTUlOSU1BTCl8fFR8fEF8fCFSO2NvbnN0IF89L153aW4vaS50ZXN0KEkpOyFuKHMkMS5OT19DT0xPUikmJihuKHMkMS5GT1JDRV9DT0xPUil8fChSfHxfKSYmcyQxLlRFUk0hPT1cImR1bWJcInx8VCk7Y29uc3QgQz0oZ2xvYmFsVGhpcy5wcm9jZXNzPy52ZXJzaW9ucz8ubm9kZXx8XCJcIikucmVwbGFjZSgvXnYvLFwiXCIpfHxudWxsO051bWJlcihDPy5zcGxpdChcIi5cIilbMF0pfHxudWxsO2NvbnN0IHk9Z2xvYmFsVGhpcy5wcm9jZXNzfHxPYmplY3QuY3JlYXRlKG51bGwpLGM9e3ZlcnNpb25zOnt9fTtuZXcgUHJveHkoeSx7Z2V0KGUsbyl7aWYobz09PVwiZW52XCIpcmV0dXJuIHMkMTtpZihvIGluIGUpcmV0dXJuIGVbb107aWYobyBpbiBjKXJldHVybiBjW29dfX0pO2NvbnN0IEw9Z2xvYmFsVGhpcy5wcm9jZXNzPy5yZWxlYXNlPy5uYW1lPT09XCJub2RlXCIsYT0hIWdsb2JhbFRoaXMuQnVufHwhIWdsb2JhbFRoaXMucHJvY2Vzcz8udmVyc2lvbnM/LmJ1bixEPSEhZ2xvYmFsVGhpcy5EZW5vLE89ISFnbG9iYWxUaGlzLmZhc3RseSxTPSEhZ2xvYmFsVGhpcy5OZXRsaWZ5LE49ISFnbG9iYWxUaGlzLkVkZ2VSdW50aW1lLFA9Z2xvYmFsVGhpcy5uYXZpZ2F0b3I/LnVzZXJBZ2VudD09PVwiQ2xvdWRmbGFyZS1Xb3JrZXJzXCIsRj1bW1MsXCJuZXRsaWZ5XCJdLFtOLFwiZWRnZS1saWdodFwiXSxbUCxcIndvcmtlcmRcIl0sW08sXCJmYXN0bHlcIl0sW0QsXCJkZW5vXCJdLFthLFwiYnVuXCJdLFtMLFwibm9kZVwiXV07ZnVuY3Rpb24gRygpe2NvbnN0IGU9Ri5maW5kKG89Pm9bMF0pO2lmKGUpcmV0dXJuIHtuYW1lOmVbMV19fWNvbnN0IHU9RygpO3U/Lm5hbWV8fFwiXCI7XG5cbmZ1bmN0aW9uIGFuc2lSZWdleCh7b25seUZpcnN0ID0gZmFsc2V9ID0ge30pIHtcblx0Ly8gVmFsaWQgc3RyaW5nIHRlcm1pbmF0b3Igc2VxdWVuY2VzIGFyZSBCRUwsIEVTQ1xcLCBhbmQgMHg5Y1xuXHRjb25zdCBTVCA9ICcoPzpcXFxcdTAwMDd8XFxcXHUwMDFCXFxcXHUwMDVDfFxcXFx1MDA5QyknO1xuXHRjb25zdCBwYXR0ZXJuID0gW1xuXHRcdGBbXFxcXHUwMDFCXFxcXHUwMDlCXVtbXFxcXF0oKSM7P10qKD86KD86KD86KD86O1stYS16QS1aXFxcXGRcXFxcLyMmLjo9PyVAfl9dKykqfFthLXpBLVpcXFxcZF0rKD86O1stYS16QS1aXFxcXGRcXFxcLyMmLjo9PyVAfl9dKikqKT8ke1NUfSlgLFxuXHRcdCcoPzooPzpcXFxcZHsxLDR9KD86O1xcXFxkezAsNH0pKik/W1xcXFxkQS1QUi1UWmNmLW5xLXV5PT48fl0pKScsXG5cdF0uam9pbignfCcpO1xuXG5cdHJldHVybiBuZXcgUmVnRXhwKHBhdHRlcm4sIG9ubHlGaXJzdCA/IHVuZGVmaW5lZCA6ICdnJyk7XG59XG5cbmNvbnN0IHJlZ2V4ID0gYW5zaVJlZ2V4KCk7XG5cbmZ1bmN0aW9uIHN0cmlwQW5zaShzdHJpbmcpIHtcblx0aWYgKHR5cGVvZiBzdHJpbmcgIT09ICdzdHJpbmcnKSB7XG5cdFx0dGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgYSBcXGBzdHJpbmdcXGAsIGdvdCBcXGAke3R5cGVvZiBzdHJpbmd9XFxgYCk7XG5cdH1cblxuXHQvLyBFdmVuIHRob3VnaCB0aGUgcmVnZXggaXMgZ2xvYmFsLCB3ZSBkb24ndCBuZWVkIHRvIHJlc2V0IHRoZSBgLmxhc3RJbmRleGBcblx0Ly8gYmVjYXVzZSB1bmxpa2UgYC5leGVjKClgIGFuZCBgLnRlc3QoKWAsIGAucmVwbGFjZSgpYCBkb2VzIGl0IGF1dG9tYXRpY2FsbHlcblx0Ly8gYW5kIGRvaW5nIGl0IG1hbnVhbGx5IGhhcyBhIHBlcmZvcm1hbmNlIHBlbmFsdHkuXG5cdHJldHVybiBzdHJpbmcucmVwbGFjZShyZWdleCwgJycpO1xufVxuXG4vLyBHZW5lcmF0ZWQgY29kZS5cblxuZnVuY3Rpb24gaXNBbWJpZ3VvdXMoeCkge1xuXHRyZXR1cm4geCA9PT0gMHhBMVxuXHRcdHx8IHggPT09IDB4QTRcblx0XHR8fCB4ID09PSAweEE3XG5cdFx0fHwgeCA9PT0gMHhBOFxuXHRcdHx8IHggPT09IDB4QUFcblx0XHR8fCB4ID09PSAweEFEXG5cdFx0fHwgeCA9PT0gMHhBRVxuXHRcdHx8IHggPj0gMHhCMCAmJiB4IDw9IDB4QjRcblx0XHR8fCB4ID49IDB4QjYgJiYgeCA8PSAweEJBXG5cdFx0fHwgeCA+PSAweEJDICYmIHggPD0gMHhCRlxuXHRcdHx8IHggPT09IDB4QzZcblx0XHR8fCB4ID09PSAweEQwXG5cdFx0fHwgeCA9PT0gMHhEN1xuXHRcdHx8IHggPT09IDB4RDhcblx0XHR8fCB4ID49IDB4REUgJiYgeCA8PSAweEUxXG5cdFx0fHwgeCA9PT0gMHhFNlxuXHRcdHx8IHggPj0gMHhFOCAmJiB4IDw9IDB4RUFcblx0XHR8fCB4ID09PSAweEVDXG5cdFx0fHwgeCA9PT0gMHhFRFxuXHRcdHx8IHggPT09IDB4RjBcblx0XHR8fCB4ID09PSAweEYyXG5cdFx0fHwgeCA9PT0gMHhGM1xuXHRcdHx8IHggPj0gMHhGNyAmJiB4IDw9IDB4RkFcblx0XHR8fCB4ID09PSAweEZDXG5cdFx0fHwgeCA9PT0gMHhGRVxuXHRcdHx8IHggPT09IDB4MTAxXG5cdFx0fHwgeCA9PT0gMHgxMTFcblx0XHR8fCB4ID09PSAweDExM1xuXHRcdHx8IHggPT09IDB4MTFCXG5cdFx0fHwgeCA9PT0gMHgxMjZcblx0XHR8fCB4ID09PSAweDEyN1xuXHRcdHx8IHggPT09IDB4MTJCXG5cdFx0fHwgeCA+PSAweDEzMSAmJiB4IDw9IDB4MTMzXG5cdFx0fHwgeCA9PT0gMHgxMzhcblx0XHR8fCB4ID49IDB4MTNGICYmIHggPD0gMHgxNDJcblx0XHR8fCB4ID09PSAweDE0NFxuXHRcdHx8IHggPj0gMHgxNDggJiYgeCA8PSAweDE0QlxuXHRcdHx8IHggPT09IDB4MTREXG5cdFx0fHwgeCA9PT0gMHgxNTJcblx0XHR8fCB4ID09PSAweDE1M1xuXHRcdHx8IHggPT09IDB4MTY2XG5cdFx0fHwgeCA9PT0gMHgxNjdcblx0XHR8fCB4ID09PSAweDE2QlxuXHRcdHx8IHggPT09IDB4MUNFXG5cdFx0fHwgeCA9PT0gMHgxRDBcblx0XHR8fCB4ID09PSAweDFEMlxuXHRcdHx8IHggPT09IDB4MUQ0XG5cdFx0fHwgeCA9PT0gMHgxRDZcblx0XHR8fCB4ID09PSAweDFEOFxuXHRcdHx8IHggPT09IDB4MURBXG5cdFx0fHwgeCA9PT0gMHgxRENcblx0XHR8fCB4ID09PSAweDI1MVxuXHRcdHx8IHggPT09IDB4MjYxXG5cdFx0fHwgeCA9PT0gMHgyQzRcblx0XHR8fCB4ID09PSAweDJDN1xuXHRcdHx8IHggPj0gMHgyQzkgJiYgeCA8PSAweDJDQlxuXHRcdHx8IHggPT09IDB4MkNEXG5cdFx0fHwgeCA9PT0gMHgyRDBcblx0XHR8fCB4ID49IDB4MkQ4ICYmIHggPD0gMHgyREJcblx0XHR8fCB4ID09PSAweDJERFxuXHRcdHx8IHggPT09IDB4MkRGXG5cdFx0fHwgeCA+PSAweDMwMCAmJiB4IDw9IDB4MzZGXG5cdFx0fHwgeCA+PSAweDM5MSAmJiB4IDw9IDB4M0ExXG5cdFx0fHwgeCA+PSAweDNBMyAmJiB4IDw9IDB4M0E5XG5cdFx0fHwgeCA+PSAweDNCMSAmJiB4IDw9IDB4M0MxXG5cdFx0fHwgeCA+PSAweDNDMyAmJiB4IDw9IDB4M0M5XG5cdFx0fHwgeCA9PT0gMHg0MDFcblx0XHR8fCB4ID49IDB4NDEwICYmIHggPD0gMHg0NEZcblx0XHR8fCB4ID09PSAweDQ1MVxuXHRcdHx8IHggPT09IDB4MjAxMFxuXHRcdHx8IHggPj0gMHgyMDEzICYmIHggPD0gMHgyMDE2XG5cdFx0fHwgeCA9PT0gMHgyMDE4XG5cdFx0fHwgeCA9PT0gMHgyMDE5XG5cdFx0fHwgeCA9PT0gMHgyMDFDXG5cdFx0fHwgeCA9PT0gMHgyMDFEXG5cdFx0fHwgeCA+PSAweDIwMjAgJiYgeCA8PSAweDIwMjJcblx0XHR8fCB4ID49IDB4MjAyNCAmJiB4IDw9IDB4MjAyN1xuXHRcdHx8IHggPT09IDB4MjAzMFxuXHRcdHx8IHggPT09IDB4MjAzMlxuXHRcdHx8IHggPT09IDB4MjAzM1xuXHRcdHx8IHggPT09IDB4MjAzNVxuXHRcdHx8IHggPT09IDB4MjAzQlxuXHRcdHx8IHggPT09IDB4MjAzRVxuXHRcdHx8IHggPT09IDB4MjA3NFxuXHRcdHx8IHggPT09IDB4MjA3RlxuXHRcdHx8IHggPj0gMHgyMDgxICYmIHggPD0gMHgyMDg0XG5cdFx0fHwgeCA9PT0gMHgyMEFDXG5cdFx0fHwgeCA9PT0gMHgyMTAzXG5cdFx0fHwgeCA9PT0gMHgyMTA1XG5cdFx0fHwgeCA9PT0gMHgyMTA5XG5cdFx0fHwgeCA9PT0gMHgyMTEzXG5cdFx0fHwgeCA9PT0gMHgyMTE2XG5cdFx0fHwgeCA9PT0gMHgyMTIxXG5cdFx0fHwgeCA9PT0gMHgyMTIyXG5cdFx0fHwgeCA9PT0gMHgyMTI2XG5cdFx0fHwgeCA9PT0gMHgyMTJCXG5cdFx0fHwgeCA9PT0gMHgyMTUzXG5cdFx0fHwgeCA9PT0gMHgyMTU0XG5cdFx0fHwgeCA+PSAweDIxNUIgJiYgeCA8PSAweDIxNUVcblx0XHR8fCB4ID49IDB4MjE2MCAmJiB4IDw9IDB4MjE2QlxuXHRcdHx8IHggPj0gMHgyMTcwICYmIHggPD0gMHgyMTc5XG5cdFx0fHwgeCA9PT0gMHgyMTg5XG5cdFx0fHwgeCA+PSAweDIxOTAgJiYgeCA8PSAweDIxOTlcblx0XHR8fCB4ID09PSAweDIxQjhcblx0XHR8fCB4ID09PSAweDIxQjlcblx0XHR8fCB4ID09PSAweDIxRDJcblx0XHR8fCB4ID09PSAweDIxRDRcblx0XHR8fCB4ID09PSAweDIxRTdcblx0XHR8fCB4ID09PSAweDIyMDBcblx0XHR8fCB4ID09PSAweDIyMDJcblx0XHR8fCB4ID09PSAweDIyMDNcblx0XHR8fCB4ID09PSAweDIyMDdcblx0XHR8fCB4ID09PSAweDIyMDhcblx0XHR8fCB4ID09PSAweDIyMEJcblx0XHR8fCB4ID09PSAweDIyMEZcblx0XHR8fCB4ID09PSAweDIyMTFcblx0XHR8fCB4ID09PSAweDIyMTVcblx0XHR8fCB4ID09PSAweDIyMUFcblx0XHR8fCB4ID49IDB4MjIxRCAmJiB4IDw9IDB4MjIyMFxuXHRcdHx8IHggPT09IDB4MjIyM1xuXHRcdHx8IHggPT09IDB4MjIyNVxuXHRcdHx8IHggPj0gMHgyMjI3ICYmIHggPD0gMHgyMjJDXG5cdFx0fHwgeCA9PT0gMHgyMjJFXG5cdFx0fHwgeCA+PSAweDIyMzQgJiYgeCA8PSAweDIyMzdcblx0XHR8fCB4ID09PSAweDIyM0Ncblx0XHR8fCB4ID09PSAweDIyM0Rcblx0XHR8fCB4ID09PSAweDIyNDhcblx0XHR8fCB4ID09PSAweDIyNENcblx0XHR8fCB4ID09PSAweDIyNTJcblx0XHR8fCB4ID09PSAweDIyNjBcblx0XHR8fCB4ID09PSAweDIyNjFcblx0XHR8fCB4ID49IDB4MjI2NCAmJiB4IDw9IDB4MjI2N1xuXHRcdHx8IHggPT09IDB4MjI2QVxuXHRcdHx8IHggPT09IDB4MjI2QlxuXHRcdHx8IHggPT09IDB4MjI2RVxuXHRcdHx8IHggPT09IDB4MjI2RlxuXHRcdHx8IHggPT09IDB4MjI4MlxuXHRcdHx8IHggPT09IDB4MjI4M1xuXHRcdHx8IHggPT09IDB4MjI4NlxuXHRcdHx8IHggPT09IDB4MjI4N1xuXHRcdHx8IHggPT09IDB4MjI5NVxuXHRcdHx8IHggPT09IDB4MjI5OVxuXHRcdHx8IHggPT09IDB4MjJBNVxuXHRcdHx8IHggPT09IDB4MjJCRlxuXHRcdHx8IHggPT09IDB4MjMxMlxuXHRcdHx8IHggPj0gMHgyNDYwICYmIHggPD0gMHgyNEU5XG5cdFx0fHwgeCA+PSAweDI0RUIgJiYgeCA8PSAweDI1NEJcblx0XHR8fCB4ID49IDB4MjU1MCAmJiB4IDw9IDB4MjU3M1xuXHRcdHx8IHggPj0gMHgyNTgwICYmIHggPD0gMHgyNThGXG5cdFx0fHwgeCA+PSAweDI1OTIgJiYgeCA8PSAweDI1OTVcblx0XHR8fCB4ID09PSAweDI1QTBcblx0XHR8fCB4ID09PSAweDI1QTFcblx0XHR8fCB4ID49IDB4MjVBMyAmJiB4IDw9IDB4MjVBOVxuXHRcdHx8IHggPT09IDB4MjVCMlxuXHRcdHx8IHggPT09IDB4MjVCM1xuXHRcdHx8IHggPT09IDB4MjVCNlxuXHRcdHx8IHggPT09IDB4MjVCN1xuXHRcdHx8IHggPT09IDB4MjVCQ1xuXHRcdHx8IHggPT09IDB4MjVCRFxuXHRcdHx8IHggPT09IDB4MjVDMFxuXHRcdHx8IHggPT09IDB4MjVDMVxuXHRcdHx8IHggPj0gMHgyNUM2ICYmIHggPD0gMHgyNUM4XG5cdFx0fHwgeCA9PT0gMHgyNUNCXG5cdFx0fHwgeCA+PSAweDI1Q0UgJiYgeCA8PSAweDI1RDFcblx0XHR8fCB4ID49IDB4MjVFMiAmJiB4IDw9IDB4MjVFNVxuXHRcdHx8IHggPT09IDB4MjVFRlxuXHRcdHx8IHggPT09IDB4MjYwNVxuXHRcdHx8IHggPT09IDB4MjYwNlxuXHRcdHx8IHggPT09IDB4MjYwOVxuXHRcdHx8IHggPT09IDB4MjYwRVxuXHRcdHx8IHggPT09IDB4MjYwRlxuXHRcdHx8IHggPT09IDB4MjYxQ1xuXHRcdHx8IHggPT09IDB4MjYxRVxuXHRcdHx8IHggPT09IDB4MjY0MFxuXHRcdHx8IHggPT09IDB4MjY0MlxuXHRcdHx8IHggPT09IDB4MjY2MFxuXHRcdHx8IHggPT09IDB4MjY2MVxuXHRcdHx8IHggPj0gMHgyNjYzICYmIHggPD0gMHgyNjY1XG5cdFx0fHwgeCA+PSAweDI2NjcgJiYgeCA8PSAweDI2NkFcblx0XHR8fCB4ID09PSAweDI2NkNcblx0XHR8fCB4ID09PSAweDI2NkRcblx0XHR8fCB4ID09PSAweDI2NkZcblx0XHR8fCB4ID09PSAweDI2OUVcblx0XHR8fCB4ID09PSAweDI2OUZcblx0XHR8fCB4ID09PSAweDI2QkZcblx0XHR8fCB4ID49IDB4MjZDNiAmJiB4IDw9IDB4MjZDRFxuXHRcdHx8IHggPj0gMHgyNkNGICYmIHggPD0gMHgyNkQzXG5cdFx0fHwgeCA+PSAweDI2RDUgJiYgeCA8PSAweDI2RTFcblx0XHR8fCB4ID09PSAweDI2RTNcblx0XHR8fCB4ID09PSAweDI2RThcblx0XHR8fCB4ID09PSAweDI2RTlcblx0XHR8fCB4ID49IDB4MjZFQiAmJiB4IDw9IDB4MjZGMVxuXHRcdHx8IHggPT09IDB4MjZGNFxuXHRcdHx8IHggPj0gMHgyNkY2ICYmIHggPD0gMHgyNkY5XG5cdFx0fHwgeCA9PT0gMHgyNkZCXG5cdFx0fHwgeCA9PT0gMHgyNkZDXG5cdFx0fHwgeCA9PT0gMHgyNkZFXG5cdFx0fHwgeCA9PT0gMHgyNkZGXG5cdFx0fHwgeCA9PT0gMHgyNzNEXG5cdFx0fHwgeCA+PSAweDI3NzYgJiYgeCA8PSAweDI3N0Zcblx0XHR8fCB4ID49IDB4MkI1NiAmJiB4IDw9IDB4MkI1OVxuXHRcdHx8IHggPj0gMHgzMjQ4ICYmIHggPD0gMHgzMjRGXG5cdFx0fHwgeCA+PSAweEUwMDAgJiYgeCA8PSAweEY4RkZcblx0XHR8fCB4ID49IDB4RkUwMCAmJiB4IDw9IDB4RkUwRlxuXHRcdHx8IHggPT09IDB4RkZGRFxuXHRcdHx8IHggPj0gMHgxRjEwMCAmJiB4IDw9IDB4MUYxMEFcblx0XHR8fCB4ID49IDB4MUYxMTAgJiYgeCA8PSAweDFGMTJEXG5cdFx0fHwgeCA+PSAweDFGMTMwICYmIHggPD0gMHgxRjE2OVxuXHRcdHx8IHggPj0gMHgxRjE3MCAmJiB4IDw9IDB4MUYxOERcblx0XHR8fCB4ID09PSAweDFGMThGXG5cdFx0fHwgeCA9PT0gMHgxRjE5MFxuXHRcdHx8IHggPj0gMHgxRjE5QiAmJiB4IDw9IDB4MUYxQUNcblx0XHR8fCB4ID49IDB4RTAxMDAgJiYgeCA8PSAweEUwMUVGXG5cdFx0fHwgeCA+PSAweEYwMDAwICYmIHggPD0gMHhGRkZGRFxuXHRcdHx8IHggPj0gMHgxMDAwMDAgJiYgeCA8PSAweDEwRkZGRDtcbn1cblxuZnVuY3Rpb24gaXNGdWxsV2lkdGgoeCkge1xuXHRyZXR1cm4geCA9PT0gMHgzMDAwXG5cdFx0fHwgeCA+PSAweEZGMDEgJiYgeCA8PSAweEZGNjBcblx0XHR8fCB4ID49IDB4RkZFMCAmJiB4IDw9IDB4RkZFNjtcbn1cblxuZnVuY3Rpb24gaXNXaWRlKHgpIHtcblx0cmV0dXJuIHggPj0gMHgxMTAwICYmIHggPD0gMHgxMTVGXG5cdFx0fHwgeCA9PT0gMHgyMzFBXG5cdFx0fHwgeCA9PT0gMHgyMzFCXG5cdFx0fHwgeCA9PT0gMHgyMzI5XG5cdFx0fHwgeCA9PT0gMHgyMzJBXG5cdFx0fHwgeCA+PSAweDIzRTkgJiYgeCA8PSAweDIzRUNcblx0XHR8fCB4ID09PSAweDIzRjBcblx0XHR8fCB4ID09PSAweDIzRjNcblx0XHR8fCB4ID09PSAweDI1RkRcblx0XHR8fCB4ID09PSAweDI1RkVcblx0XHR8fCB4ID09PSAweDI2MTRcblx0XHR8fCB4ID09PSAweDI2MTVcblx0XHR8fCB4ID49IDB4MjYzMCAmJiB4IDw9IDB4MjYzN1xuXHRcdHx8IHggPj0gMHgyNjQ4ICYmIHggPD0gMHgyNjUzXG5cdFx0fHwgeCA9PT0gMHgyNjdGXG5cdFx0fHwgeCA+PSAweDI2OEEgJiYgeCA8PSAweDI2OEZcblx0XHR8fCB4ID09PSAweDI2OTNcblx0XHR8fCB4ID09PSAweDI2QTFcblx0XHR8fCB4ID09PSAweDI2QUFcblx0XHR8fCB4ID09PSAweDI2QUJcblx0XHR8fCB4ID09PSAweDI2QkRcblx0XHR8fCB4ID09PSAweDI2QkVcblx0XHR8fCB4ID09PSAweDI2QzRcblx0XHR8fCB4ID09PSAweDI2QzVcblx0XHR8fCB4ID09PSAweDI2Q0Vcblx0XHR8fCB4ID09PSAweDI2RDRcblx0XHR8fCB4ID09PSAweDI2RUFcblx0XHR8fCB4ID09PSAweDI2RjJcblx0XHR8fCB4ID09PSAweDI2RjNcblx0XHR8fCB4ID09PSAweDI2RjVcblx0XHR8fCB4ID09PSAweDI2RkFcblx0XHR8fCB4ID09PSAweDI2RkRcblx0XHR8fCB4ID09PSAweDI3MDVcblx0XHR8fCB4ID09PSAweDI3MEFcblx0XHR8fCB4ID09PSAweDI3MEJcblx0XHR8fCB4ID09PSAweDI3Mjhcblx0XHR8fCB4ID09PSAweDI3NENcblx0XHR8fCB4ID09PSAweDI3NEVcblx0XHR8fCB4ID49IDB4Mjc1MyAmJiB4IDw9IDB4Mjc1NVxuXHRcdHx8IHggPT09IDB4Mjc1N1xuXHRcdHx8IHggPj0gMHgyNzk1ICYmIHggPD0gMHgyNzk3XG5cdFx0fHwgeCA9PT0gMHgyN0IwXG5cdFx0fHwgeCA9PT0gMHgyN0JGXG5cdFx0fHwgeCA9PT0gMHgyQjFCXG5cdFx0fHwgeCA9PT0gMHgyQjFDXG5cdFx0fHwgeCA9PT0gMHgyQjUwXG5cdFx0fHwgeCA9PT0gMHgyQjU1XG5cdFx0fHwgeCA+PSAweDJFODAgJiYgeCA8PSAweDJFOTlcblx0XHR8fCB4ID49IDB4MkU5QiAmJiB4IDw9IDB4MkVGM1xuXHRcdHx8IHggPj0gMHgyRjAwICYmIHggPD0gMHgyRkQ1XG5cdFx0fHwgeCA+PSAweDJGRjAgJiYgeCA8PSAweDJGRkZcblx0XHR8fCB4ID49IDB4MzAwMSAmJiB4IDw9IDB4MzAzRVxuXHRcdHx8IHggPj0gMHgzMDQxICYmIHggPD0gMHgzMDk2XG5cdFx0fHwgeCA+PSAweDMwOTkgJiYgeCA8PSAweDMwRkZcblx0XHR8fCB4ID49IDB4MzEwNSAmJiB4IDw9IDB4MzEyRlxuXHRcdHx8IHggPj0gMHgzMTMxICYmIHggPD0gMHgzMThFXG5cdFx0fHwgeCA+PSAweDMxOTAgJiYgeCA8PSAweDMxRTVcblx0XHR8fCB4ID49IDB4MzFFRiAmJiB4IDw9IDB4MzIxRVxuXHRcdHx8IHggPj0gMHgzMjIwICYmIHggPD0gMHgzMjQ3XG5cdFx0fHwgeCA+PSAweDMyNTAgJiYgeCA8PSAweEE0OENcblx0XHR8fCB4ID49IDB4QTQ5MCAmJiB4IDw9IDB4QTRDNlxuXHRcdHx8IHggPj0gMHhBOTYwICYmIHggPD0gMHhBOTdDXG5cdFx0fHwgeCA+PSAweEFDMDAgJiYgeCA8PSAweEQ3QTNcblx0XHR8fCB4ID49IDB4RjkwMCAmJiB4IDw9IDB4RkFGRlxuXHRcdHx8IHggPj0gMHhGRTEwICYmIHggPD0gMHhGRTE5XG5cdFx0fHwgeCA+PSAweEZFMzAgJiYgeCA8PSAweEZFNTJcblx0XHR8fCB4ID49IDB4RkU1NCAmJiB4IDw9IDB4RkU2NlxuXHRcdHx8IHggPj0gMHhGRTY4ICYmIHggPD0gMHhGRTZCXG5cdFx0fHwgeCA+PSAweDE2RkUwICYmIHggPD0gMHgxNkZFNFxuXHRcdHx8IHggPT09IDB4MTZGRjBcblx0XHR8fCB4ID09PSAweDE2RkYxXG5cdFx0fHwgeCA+PSAweDE3MDAwICYmIHggPD0gMHgxODdGN1xuXHRcdHx8IHggPj0gMHgxODgwMCAmJiB4IDw9IDB4MThDRDVcblx0XHR8fCB4ID49IDB4MThDRkYgJiYgeCA8PSAweDE4RDA4XG5cdFx0fHwgeCA+PSAweDFBRkYwICYmIHggPD0gMHgxQUZGM1xuXHRcdHx8IHggPj0gMHgxQUZGNSAmJiB4IDw9IDB4MUFGRkJcblx0XHR8fCB4ID09PSAweDFBRkZEXG5cdFx0fHwgeCA9PT0gMHgxQUZGRVxuXHRcdHx8IHggPj0gMHgxQjAwMCAmJiB4IDw9IDB4MUIxMjJcblx0XHR8fCB4ID09PSAweDFCMTMyXG5cdFx0fHwgeCA+PSAweDFCMTUwICYmIHggPD0gMHgxQjE1MlxuXHRcdHx8IHggPT09IDB4MUIxNTVcblx0XHR8fCB4ID49IDB4MUIxNjQgJiYgeCA8PSAweDFCMTY3XG5cdFx0fHwgeCA+PSAweDFCMTcwICYmIHggPD0gMHgxQjJGQlxuXHRcdHx8IHggPj0gMHgxRDMwMCAmJiB4IDw9IDB4MUQzNTZcblx0XHR8fCB4ID49IDB4MUQzNjAgJiYgeCA8PSAweDFEMzc2XG5cdFx0fHwgeCA9PT0gMHgxRjAwNFxuXHRcdHx8IHggPT09IDB4MUYwQ0Zcblx0XHR8fCB4ID09PSAweDFGMThFXG5cdFx0fHwgeCA+PSAweDFGMTkxICYmIHggPD0gMHgxRjE5QVxuXHRcdHx8IHggPj0gMHgxRjIwMCAmJiB4IDw9IDB4MUYyMDJcblx0XHR8fCB4ID49IDB4MUYyMTAgJiYgeCA8PSAweDFGMjNCXG5cdFx0fHwgeCA+PSAweDFGMjQwICYmIHggPD0gMHgxRjI0OFxuXHRcdHx8IHggPT09IDB4MUYyNTBcblx0XHR8fCB4ID09PSAweDFGMjUxXG5cdFx0fHwgeCA+PSAweDFGMjYwICYmIHggPD0gMHgxRjI2NVxuXHRcdHx8IHggPj0gMHgxRjMwMCAmJiB4IDw9IDB4MUYzMjBcblx0XHR8fCB4ID49IDB4MUYzMkQgJiYgeCA8PSAweDFGMzM1XG5cdFx0fHwgeCA+PSAweDFGMzM3ICYmIHggPD0gMHgxRjM3Q1xuXHRcdHx8IHggPj0gMHgxRjM3RSAmJiB4IDw9IDB4MUYzOTNcblx0XHR8fCB4ID49IDB4MUYzQTAgJiYgeCA8PSAweDFGM0NBXG5cdFx0fHwgeCA+PSAweDFGM0NGICYmIHggPD0gMHgxRjNEM1xuXHRcdHx8IHggPj0gMHgxRjNFMCAmJiB4IDw9IDB4MUYzRjBcblx0XHR8fCB4ID09PSAweDFGM0Y0XG5cdFx0fHwgeCA+PSAweDFGM0Y4ICYmIHggPD0gMHgxRjQzRVxuXHRcdHx8IHggPT09IDB4MUY0NDBcblx0XHR8fCB4ID49IDB4MUY0NDIgJiYgeCA8PSAweDFGNEZDXG5cdFx0fHwgeCA+PSAweDFGNEZGICYmIHggPD0gMHgxRjUzRFxuXHRcdHx8IHggPj0gMHgxRjU0QiAmJiB4IDw9IDB4MUY1NEVcblx0XHR8fCB4ID49IDB4MUY1NTAgJiYgeCA8PSAweDFGNTY3XG5cdFx0fHwgeCA9PT0gMHgxRjU3QVxuXHRcdHx8IHggPT09IDB4MUY1OTVcblx0XHR8fCB4ID09PSAweDFGNTk2XG5cdFx0fHwgeCA9PT0gMHgxRjVBNFxuXHRcdHx8IHggPj0gMHgxRjVGQiAmJiB4IDw9IDB4MUY2NEZcblx0XHR8fCB4ID49IDB4MUY2ODAgJiYgeCA8PSAweDFGNkM1XG5cdFx0fHwgeCA9PT0gMHgxRjZDQ1xuXHRcdHx8IHggPj0gMHgxRjZEMCAmJiB4IDw9IDB4MUY2RDJcblx0XHR8fCB4ID49IDB4MUY2RDUgJiYgeCA8PSAweDFGNkQ3XG5cdFx0fHwgeCA+PSAweDFGNkRDICYmIHggPD0gMHgxRjZERlxuXHRcdHx8IHggPT09IDB4MUY2RUJcblx0XHR8fCB4ID09PSAweDFGNkVDXG5cdFx0fHwgeCA+PSAweDFGNkY0ICYmIHggPD0gMHgxRjZGQ1xuXHRcdHx8IHggPj0gMHgxRjdFMCAmJiB4IDw9IDB4MUY3RUJcblx0XHR8fCB4ID09PSAweDFGN0YwXG5cdFx0fHwgeCA+PSAweDFGOTBDICYmIHggPD0gMHgxRjkzQVxuXHRcdHx8IHggPj0gMHgxRjkzQyAmJiB4IDw9IDB4MUY5NDVcblx0XHR8fCB4ID49IDB4MUY5NDcgJiYgeCA8PSAweDFGOUZGXG5cdFx0fHwgeCA+PSAweDFGQTcwICYmIHggPD0gMHgxRkE3Q1xuXHRcdHx8IHggPj0gMHgxRkE4MCAmJiB4IDw9IDB4MUZBODlcblx0XHR8fCB4ID49IDB4MUZBOEYgJiYgeCA8PSAweDFGQUM2XG5cdFx0fHwgeCA+PSAweDFGQUNFICYmIHggPD0gMHgxRkFEQ1xuXHRcdHx8IHggPj0gMHgxRkFERiAmJiB4IDw9IDB4MUZBRTlcblx0XHR8fCB4ID49IDB4MUZBRjAgJiYgeCA8PSAweDFGQUY4XG5cdFx0fHwgeCA+PSAweDIwMDAwICYmIHggPD0gMHgyRkZGRFxuXHRcdHx8IHggPj0gMHgzMDAwMCAmJiB4IDw9IDB4M0ZGRkQ7XG59XG5cbmZ1bmN0aW9uIHZhbGlkYXRlKGNvZGVQb2ludCkge1xuXHRpZiAoIU51bWJlci5pc1NhZmVJbnRlZ2VyKGNvZGVQb2ludCkpIHtcblx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCBhIGNvZGUgcG9pbnQsIGdvdCBcXGAke3R5cGVvZiBjb2RlUG9pbnR9XFxgLmApO1xuXHR9XG59XG5cbmZ1bmN0aW9uIGVhc3RBc2lhbldpZHRoKGNvZGVQb2ludCwge2FtYmlndW91c0FzV2lkZSA9IGZhbHNlfSA9IHt9KSB7XG5cdHZhbGlkYXRlKGNvZGVQb2ludCk7XG5cblx0aWYgKFxuXHRcdGlzRnVsbFdpZHRoKGNvZGVQb2ludClcblx0XHR8fCBpc1dpZGUoY29kZVBvaW50KVxuXHRcdHx8IChhbWJpZ3VvdXNBc1dpZGUgJiYgaXNBbWJpZ3VvdXMoY29kZVBvaW50KSlcblx0KSB7XG5cdFx0cmV0dXJuIDI7XG5cdH1cblxuXHRyZXR1cm4gMTtcbn1cblxuY29uc3QgZW1vamlSZWdleCA9ICgpID0+IHtcblx0Ly8gaHR0cHM6Ly9tdGhzLmJlL2Vtb2ppXG5cdHJldHVybiAvWyMqMC05XVxcdUZFMEY/XFx1MjBFM3xbXFx4QTlcXHhBRVxcdTIwM0NcXHUyMDQ5XFx1MjEyMlxcdTIxMzlcXHUyMTk0LVxcdTIxOTlcXHUyMUE5XFx1MjFBQVxcdTIzMUFcXHUyMzFCXFx1MjMyOFxcdTIzQ0ZcXHUyM0VELVxcdTIzRUZcXHUyM0YxXFx1MjNGMlxcdTIzRjgtXFx1MjNGQVxcdTI0QzJcXHUyNUFBXFx1MjVBQlxcdTI1QjZcXHUyNUMwXFx1MjVGQlxcdTI1RkNcXHUyNUZFXFx1MjYwMC1cXHUyNjA0XFx1MjYwRVxcdTI2MTFcXHUyNjE0XFx1MjYxNVxcdTI2MThcXHUyNjIwXFx1MjYyMlxcdTI2MjNcXHUyNjI2XFx1MjYyQVxcdTI2MkVcXHUyNjJGXFx1MjYzOC1cXHUyNjNBXFx1MjY0MFxcdTI2NDJcXHUyNjQ4LVxcdTI2NTNcXHUyNjVGXFx1MjY2MFxcdTI2NjNcXHUyNjY1XFx1MjY2NlxcdTI2NjhcXHUyNjdCXFx1MjY3RVxcdTI2N0ZcXHUyNjkyXFx1MjY5NC1cXHUyNjk3XFx1MjY5OVxcdTI2OUJcXHUyNjlDXFx1MjZBMFxcdTI2QTdcXHUyNkFBXFx1MjZCMFxcdTI2QjFcXHUyNkJEXFx1MjZCRVxcdTI2QzRcXHUyNkM4XFx1MjZDRlxcdTI2RDFcXHUyNkU5XFx1MjZGMC1cXHUyNkY1XFx1MjZGN1xcdTI2RjhcXHUyNkZBXFx1MjcwMlxcdTI3MDhcXHUyNzA5XFx1MjcwRlxcdTI3MTJcXHUyNzE0XFx1MjcxNlxcdTI3MURcXHUyNzIxXFx1MjczM1xcdTI3MzRcXHUyNzQ0XFx1Mjc0N1xcdTI3NTdcXHUyNzYzXFx1MjdBMVxcdTI5MzRcXHUyOTM1XFx1MkIwNS1cXHUyQjA3XFx1MkIxQlxcdTJCMUNcXHUyQjU1XFx1MzAzMFxcdTMwM0RcXHUzMjk3XFx1MzI5OV1cXHVGRTBGP3xbXFx1MjYxRFxcdTI3MENcXHUyNzBEXSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVGRTBGKT98W1xcdTI3MEFcXHUyNzBCXSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSk/fFtcXHUyM0U5LVxcdTIzRUNcXHUyM0YwXFx1MjNGM1xcdTI1RkRcXHUyNjkzXFx1MjZBMVxcdTI2QUJcXHUyNkM1XFx1MjZDRVxcdTI2RDRcXHUyNkVBXFx1MjZGRFxcdTI3MDVcXHUyNzI4XFx1Mjc0Q1xcdTI3NEVcXHUyNzUzLVxcdTI3NTVcXHUyNzk1LVxcdTI3OTdcXHUyN0IwXFx1MjdCRlxcdTJCNTBdfFxcdTI2RDNcXHVGRTBGPyg/OlxcdTIwMERcXHVEODNEXFx1RENBNSk/fFxcdTI2RjkoPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RkUwRik/KD86XFx1MjAwRFtcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGPyk/fFxcdTI3NjRcXHVGRTBGPyg/OlxcdTIwMEQoPzpcXHVEODNEXFx1REQyNXxcXHVEODNFXFx1REU3OSkpP3xcXHVEODNDKD86W1xcdURDMDRcXHVERDcwXFx1REQ3MVxcdUREN0VcXHVERDdGXFx1REUwMlxcdURFMzdcXHVERjIxXFx1REYyNC1cXHVERjJDXFx1REYzNlxcdURGN0RcXHVERjk2XFx1REY5N1xcdURGOTktXFx1REY5QlxcdURGOUVcXHVERjlGXFx1REZDRFxcdURGQ0VcXHVERkQ0LVxcdURGREZcXHVERkY1XFx1REZGN11cXHVGRTBGP3xbXFx1REY4NVxcdURGQzJcXHVERkM3XSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSk/fFtcXHVERkM0XFx1REZDQV0oPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pPyg/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8pP3xbXFx1REZDQlxcdURGQ0NdKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUZFMEYpPyg/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8pP3xbXFx1RENDRlxcdUREOEVcXHVERDkxLVxcdUREOUFcXHVERTAxXFx1REUxQVxcdURFMkZcXHVERTMyLVxcdURFMzZcXHVERTM4LVxcdURFM0FcXHVERTUwXFx1REU1MVxcdURGMDAtXFx1REYyMFxcdURGMkQtXFx1REYzNVxcdURGMzctXFx1REY0M1xcdURGNDUtXFx1REY0QVxcdURGNEMtXFx1REY3Q1xcdURGN0UtXFx1REY4NFxcdURGODYtXFx1REY5M1xcdURGQTAtXFx1REZDMVxcdURGQzVcXHVERkM2XFx1REZDOFxcdURGQzlcXHVERkNGLVxcdURGRDNcXHVERkUwLVxcdURGRjBcXHVERkY4LVxcdURGRkZdfFxcdURERTZcXHVEODNDW1xcdURERTgtXFx1RERFQ1xcdURERUVcXHVEREYxXFx1RERGMlxcdURERjRcXHVEREY2LVxcdURERkFcXHVEREZDXFx1RERGRFxcdURERkZdfFxcdURERTdcXHVEODNDW1xcdURERTZcXHVEREU3XFx1RERFOS1cXHVEREVGXFx1RERGMS1cXHVEREY0XFx1RERGNi1cXHVEREY5XFx1RERGQlxcdURERkNcXHVEREZFXFx1RERGRl18XFx1RERFOFxcdUQ4M0NbXFx1RERFNlxcdURERThcXHVEREU5XFx1RERFQi1cXHVEREVFXFx1RERGMC1cXHVEREY3XFx1RERGQS1cXHVEREZGXXxcXHVEREU5XFx1RDgzQ1tcXHVEREVBXFx1RERFQ1xcdURERUZcXHVEREYwXFx1RERGMlxcdURERjRcXHVEREZGXXxcXHVEREVBXFx1RDgzQ1tcXHVEREU2XFx1RERFOFxcdURERUFcXHVEREVDXFx1RERFRFxcdURERjctXFx1RERGQV18XFx1RERFQlxcdUQ4M0NbXFx1RERFRS1cXHVEREYwXFx1RERGMlxcdURERjRcXHVEREY3XXxcXHVEREVDXFx1RDgzQ1tcXHVEREU2XFx1RERFN1xcdURERTktXFx1RERFRVxcdURERjEtXFx1RERGM1xcdURERjUtXFx1RERGQVxcdURERkNcXHVEREZFXXxcXHVEREVEXFx1RDgzQ1tcXHVEREYwXFx1RERGMlxcdURERjNcXHVEREY3XFx1RERGOVxcdURERkFdfFxcdURERUVcXHVEODNDW1xcdURERTgtXFx1RERFQVxcdURERjEtXFx1RERGNFxcdURERjYtXFx1RERGOV18XFx1RERFRlxcdUQ4M0NbXFx1RERFQVxcdURERjJcXHVEREY0XFx1RERGNV18XFx1RERGMFxcdUQ4M0NbXFx1RERFQVxcdURERUMtXFx1RERFRVxcdURERjJcXHVEREYzXFx1RERGNVxcdURERjdcXHVEREZDXFx1RERGRVxcdURERkZdfFxcdURERjFcXHVEODNDW1xcdURERTYtXFx1RERFOFxcdURERUVcXHVEREYwXFx1RERGNy1cXHVEREZCXFx1RERGRV18XFx1RERGMlxcdUQ4M0NbXFx1RERFNlxcdURERTgtXFx1RERFRFxcdURERjAtXFx1RERGRl18XFx1RERGM1xcdUQ4M0NbXFx1RERFNlxcdURERThcXHVEREVBLVxcdURERUNcXHVEREVFXFx1RERGMVxcdURERjRcXHVEREY1XFx1RERGN1xcdURERkFcXHVEREZGXXxcXHVEREY0XFx1RDgzQ1xcdURERjJ8XFx1RERGNVxcdUQ4M0NbXFx1RERFNlxcdURERUEtXFx1RERFRFxcdURERjAtXFx1RERGM1xcdURERjctXFx1RERGOVxcdURERkNcXHVEREZFXXxcXHVEREY2XFx1RDgzQ1xcdURERTZ8XFx1RERGN1xcdUQ4M0NbXFx1RERFQVxcdURERjRcXHVEREY4XFx1RERGQVxcdURERkNdfFxcdURERjhcXHVEODNDW1xcdURERTYtXFx1RERFQVxcdURERUMtXFx1RERGNFxcdURERjctXFx1RERGOVxcdURERkJcXHVEREZELVxcdURERkZdfFxcdURERjlcXHVEODNDW1xcdURERTZcXHVEREU4XFx1RERFOVxcdURERUItXFx1RERFRFxcdURERUYtXFx1RERGNFxcdURERjdcXHVEREY5XFx1RERGQlxcdURERkNcXHVEREZGXXxcXHVEREZBXFx1RDgzQ1tcXHVEREU2XFx1RERFQ1xcdURERjJcXHVEREYzXFx1RERGOFxcdURERkVcXHVEREZGXXxcXHVEREZCXFx1RDgzQ1tcXHVEREU2XFx1RERFOFxcdURERUFcXHVEREVDXFx1RERFRVxcdURERjNcXHVEREZBXXxcXHVEREZDXFx1RDgzQ1tcXHVEREVCXFx1RERGOF18XFx1RERGRFxcdUQ4M0NcXHVEREYwfFxcdURERkVcXHVEODNDW1xcdURERUFcXHVEREY5XXxcXHVEREZGXFx1RDgzQ1tcXHVEREU2XFx1RERGMlxcdURERkNdfFxcdURGNDQoPzpcXHUyMDBEXFx1RDgzRFxcdURGRUIpP3xcXHVERjRCKD86XFx1MjAwRFxcdUQ4M0RcXHVERkU5KT98XFx1REZDMyg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSk/KD86XFx1MjAwRCg/OltcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGPyg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xcXHUyN0ExXFx1RkUwRj8pKT98XFx1REZGM1xcdUZFMEY/KD86XFx1MjAwRCg/OlxcdTI2QTdcXHVGRTBGP3xcXHVEODNDXFx1REYwOCkpP3xcXHVERkY0KD86XFx1MjAwRFxcdTI2MjBcXHVGRTBGP3xcXHVEQjQwXFx1REM2N1xcdURCNDBcXHVEQzYyXFx1REI0MCg/OlxcdURDNjVcXHVEQjQwXFx1REM2RVxcdURCNDBcXHVEQzY3fFxcdURDNzNcXHVEQjQwXFx1REM2M1xcdURCNDBcXHVEQzc0fFxcdURDNzdcXHVEQjQwXFx1REM2Q1xcdURCNDBcXHVEQzczKVxcdURCNDBcXHVEQzdGKT8pfFxcdUQ4M0QoPzpbXFx1REMzRlxcdURDRkRcXHVERDQ5XFx1REQ0QVxcdURENkZcXHVERDcwXFx1REQ3M1xcdURENzYtXFx1REQ3OVxcdUREODdcXHVERDhBLVxcdUREOERcXHVEREE1XFx1RERBOFxcdUREQjFcXHVEREIyXFx1RERCQ1xcdUREQzItXFx1RERDNFxcdURERDEtXFx1REREM1xcdUREREMtXFx1RERERVxcdURERTFcXHVEREUzXFx1RERFOFxcdURERUZcXHVEREYzXFx1RERGQVxcdURFQ0JcXHVERUNELVxcdURFQ0ZcXHVERUUwLVxcdURFRTVcXHVERUU5XFx1REVGMFxcdURFRjNdXFx1RkUwRj98W1xcdURDNDJcXHVEQzQzXFx1REM0Ni1cXHVEQzUwXFx1REM2NlxcdURDNjdcXHVEQzZCLVxcdURDNkRcXHVEQzcyXFx1REM3NC1cXHVEQzc2XFx1REM3OFxcdURDN0NcXHVEQzgzXFx1REM4NVxcdURDOEZcXHVEQzkxXFx1RENBQVxcdUREN0FcXHVERDk1XFx1REQ5NlxcdURFNENcXHVERTRGXFx1REVDMFxcdURFQ0NdKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT98W1xcdURDNkVcXHVEQzcwXFx1REM3MVxcdURDNzNcXHVEQzc3XFx1REM4MVxcdURDODJcXHVEQzg2XFx1REM4N1xcdURFNDUtXFx1REU0N1xcdURFNEJcXHVERTREXFx1REU0RVxcdURFQTNcXHVERUI0XFx1REVCNV0oPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pPyg/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8pP3xbXFx1REQ3NFxcdUREOTBdKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUZFMEYpP3xbXFx1REMwMC1cXHVEQzA3XFx1REMwOS1cXHVEQzE0XFx1REMxNi1cXHVEQzI1XFx1REMyNy1cXHVEQzNBXFx1REMzQy1cXHVEQzNFXFx1REM0MFxcdURDNDRcXHVEQzQ1XFx1REM1MS1cXHVEQzY1XFx1REM2QVxcdURDNzktXFx1REM3QlxcdURDN0QtXFx1REM4MFxcdURDODRcXHVEQzg4LVxcdURDOEVcXHVEQzkwXFx1REM5Mi1cXHVEQ0E5XFx1RENBQi1cXHVEQ0ZDXFx1RENGRi1cXHVERDNEXFx1REQ0Qi1cXHVERDRFXFx1REQ1MC1cXHVERDY3XFx1RERBNFxcdURERkItXFx1REUyRFxcdURFMkYtXFx1REUzNFxcdURFMzctXFx1REU0MVxcdURFNDNcXHVERTQ0XFx1REU0OC1cXHVERTRBXFx1REU4MC1cXHVERUEyXFx1REVBNC1cXHVERUIzXFx1REVCNy1cXHVERUJGXFx1REVDMS1cXHVERUM1XFx1REVEMC1cXHVERUQyXFx1REVENS1cXHVERUQ3XFx1REVEQy1cXHVERURGXFx1REVFQlxcdURFRUNcXHVERUY0LVxcdURFRkNcXHVERkUwLVxcdURGRUJcXHVERkYwXXxcXHVEQzA4KD86XFx1MjAwRFxcdTJCMUIpP3xcXHVEQzE1KD86XFx1MjAwRFxcdUQ4M0VcXHVEREJBKT98XFx1REMyNig/OlxcdTIwMEQoPzpcXHUyQjFCfFxcdUQ4M0RcXHVERDI1KSk/fFxcdURDM0IoPzpcXHUyMDBEXFx1Mjc0NFxcdUZFMEY/KT98XFx1REM0MVxcdUZFMEY/KD86XFx1MjAwRFxcdUQ4M0RcXHVEREU4XFx1RkUwRj8pP3xcXHVEQzY4KD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzhCXFx1MjAwRFxcdUQ4M0QpP1xcdURDNjh8XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRCg/OltcXHVEQzY4XFx1REM2OV1cXHUyMDBEXFx1RDgzRCg/OlxcdURDNjYoPzpcXHUyMDBEXFx1RDgzRFxcdURDNjYpP3xcXHVEQzY3KD86XFx1MjAwRFxcdUQ4M0RbXFx1REM2NlxcdURDNjddKT8pfFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdURDNjYoPzpcXHUyMDBEXFx1RDgzRFxcdURDNjYpP3xcXHVEQzY3KD86XFx1MjAwRFxcdUQ4M0RbXFx1REM2NlxcdURDNjddKT8pfFxcdUQ4M0UoPzpbXFx1RERBRlxcdUREQkNcXHVEREJEXSg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xbXFx1RERCMC1cXHVEREIzXSkpfFxcdUQ4M0MoPzpcXHVERkZCKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzhCXFx1MjAwRFxcdUQ4M0QpP1xcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRlxcdUREQkNcXHVEREJEXSg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xbXFx1RERCMC1cXHVEREIzXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RcXHVEQzY4XFx1RDgzQ1tcXHVERkZDLVxcdURGRkZdKSkpP3xcXHVERkZDKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzhCXFx1MjAwRFxcdUQ4M0QpP1xcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRlxcdUREQkNcXHVEREJEXSg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xbXFx1RERCMC1cXHVEREIzXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RcXHVEQzY4XFx1RDgzQ1tcXHVERkZCXFx1REZGRC1cXHVERkZGXSkpKT98XFx1REZGRCg/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMERcXHVEODNEKD86XFx1REM4QlxcdTIwMERcXHVEODNEKT9cXHVEQzY4XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUZcXHVEREJDXFx1RERCRF0oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98W1xcdUREQjAtXFx1RERCM118XFx1REQxRFxcdTIwMERcXHVEODNEXFx1REM2OFxcdUQ4M0NbXFx1REZGQlxcdURGRkNcXHVERkZFXFx1REZGRl0pKSk/fFxcdURGRkUoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEXFx1RDgzRCg/OlxcdURDOEJcXHUyMDBEXFx1RDgzRCk/XFx1REM2OFxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGXFx1RERCQ1xcdUREQkRdKD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFtcXHVEREIwLVxcdUREQjNdfFxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRFxcdURGRkZdKSkpP3xcXHVERkZGKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzhCXFx1MjAwRFxcdUQ4M0QpP1xcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRlxcdUREQkNcXHVEREJEXSg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xbXFx1RERCMC1cXHVEREIzXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RcXHVEQzY4XFx1RDgzQ1tcXHVERkZCLVxcdURGRkVdKSkpPykpP3xcXHVEQzY5KD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzhCXFx1MjAwRFxcdUQ4M0QpP1tcXHVEQzY4XFx1REM2OV18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRCg/OltcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdURDNjYoPzpcXHUyMDBEXFx1RDgzRFxcdURDNjYpP3xcXHVEQzY3KD86XFx1MjAwRFxcdUQ4M0RbXFx1REM2NlxcdURDNjddKT98XFx1REM2OVxcdTIwMERcXHVEODNEKD86XFx1REM2Nig/OlxcdTIwMERcXHVEODNEXFx1REM2Nik/fFxcdURDNjcoPzpcXHUyMDBEXFx1RDgzRFtcXHVEQzY2XFx1REM2N10pPykpfFxcdUQ4M0UoPzpbXFx1RERBRlxcdUREQkNcXHVEREJEXSg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xbXFx1RERCMC1cXHVEREIzXSkpfFxcdUQ4M0MoPzpcXHVERkZCKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpbXFx1REM2OFxcdURDNjldfFxcdURDOEJcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV0pXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUZcXHVEREJDXFx1RERCRF0oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98W1xcdUREQjAtXFx1RERCM118XFx1REQxRFxcdTIwMERcXHVEODNEW1xcdURDNjhcXHVEQzY5XVxcdUQ4M0NbXFx1REZGQy1cXHVERkZGXSkpKT98XFx1REZGQyg/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMERcXHVEODNEKD86W1xcdURDNjhcXHVEQzY5XXxcXHVEQzhCXFx1MjAwRFxcdUQ4M0RbXFx1REM2OFxcdURDNjldKVxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGXFx1RERCQ1xcdUREQkRdKD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFtcXHVEREIwLVxcdUREQjNdfFxcdUREMURcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV1cXHVEODNDW1xcdURGRkJcXHVERkZELVxcdURGRkZdKSkpP3xcXHVERkZEKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpbXFx1REM2OFxcdURDNjldfFxcdURDOEJcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV0pXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUZcXHVEREJDXFx1RERCRF0oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98W1xcdUREQjAtXFx1RERCM118XFx1REQxRFxcdTIwMERcXHVEODNEW1xcdURDNjhcXHVEQzY5XVxcdUQ4M0NbXFx1REZGQlxcdURGRkNcXHVERkZFXFx1REZGRl0pKSk/fFxcdURGRkUoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEXFx1RDgzRCg/OltcXHVEQzY4XFx1REM2OV18XFx1REM4QlxcdTIwMERcXHVEODNEW1xcdURDNjhcXHVEQzY5XSlcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRlxcdUREQkNcXHVEREJEXSg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xbXFx1RERCMC1cXHVEREIzXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RbXFx1REM2OFxcdURDNjldXFx1RDgzQ1tcXHVERkZCLVxcdURGRkRcXHVERkZGXSkpKT98XFx1REZGRig/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMERcXHVEODNEKD86W1xcdURDNjhcXHVEQzY5XXxcXHVEQzhCXFx1MjAwRFxcdUQ4M0RbXFx1REM2OFxcdURDNjldKVxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGXFx1RERCQ1xcdUREQkRdKD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFtcXHVEREIwLVxcdUREQjNdfFxcdUREMURcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV1cXHVEODNDW1xcdURGRkItXFx1REZGRV0pKSk/KSk/fFxcdURDNkYoPzpcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXVxcdUZFMEY/KT98XFx1REQ3NSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVGRTBGKT8oPzpcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXVxcdUZFMEY/KT98XFx1REUyRSg/OlxcdTIwMERcXHVEODNEXFx1RENBOCk/fFxcdURFMzUoPzpcXHUyMDBEXFx1RDgzRFxcdURDQUIpP3xcXHVERTM2KD86XFx1MjAwRFxcdUQ4M0NcXHVERjJCXFx1RkUwRj8pP3xcXHVERTQyKD86XFx1MjAwRFtcXHUyMTk0XFx1MjE5NV1cXHVGRTBGPyk/fFxcdURFQjYoPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pPyg/OlxcdTIwMEQoPzpbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98XFx1MjdBMVxcdUZFMEY/KSk/KXxcXHVEODNFKD86W1xcdUREMENcXHVERDBGXFx1REQxOC1cXHVERDFGXFx1REQzMC1cXHVERDM0XFx1REQzNlxcdURENzdcXHVEREI1XFx1RERCNlxcdUREQkJcXHVEREQyXFx1REREM1xcdURERDVcXHVERUMzLVxcdURFQzVcXHVERUYwXFx1REVGMi1cXHVERUY4XSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSk/fFtcXHVERDI2XFx1REQzNVxcdUREMzctXFx1REQzOVxcdUREM0RcXHVERDNFXFx1RERCOFxcdUREQjlcXHVERENEXFx1RERDRlxcdURERDRcXHVEREQ2LVxcdURERERdKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT8oPzpcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXVxcdUZFMEY/KT98W1xcdUREREVcXHVERERGXSg/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8pP3xbXFx1REQwRFxcdUREMEVcXHVERDEwLVxcdUREMTdcXHVERDIwLVxcdUREMjVcXHVERDI3LVxcdUREMkZcXHVERDNBXFx1REQzRi1cXHVERDQ1XFx1REQ0Ny1cXHVERDc2XFx1REQ3OC1cXHVEREI0XFx1RERCN1xcdUREQkFcXHVEREJDLVxcdUREQ0NcXHVEREQwXFx1RERFMC1cXHVEREZGXFx1REU3MC1cXHVERTdDXFx1REU4MC1cXHVERTg5XFx1REU4Ri1cXHVERUMyXFx1REVDNlxcdURFQ0UtXFx1REVEQ1xcdURFREYtXFx1REVFOV18XFx1REQzQyg/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj98XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT98XFx1RERDRSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSk/KD86XFx1MjAwRCg/OltcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGPyg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xcXHUyN0ExXFx1RkUwRj8pKT98XFx1REREMSg/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY4NFxcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGXFx1RERCQ1xcdUREQkRdKD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFtcXHVEREIwLVxcdUREQjNdfFxcdUREMURcXHUyMDBEXFx1RDgzRVxcdURERDF8XFx1REREMVxcdTIwMERcXHVEODNFXFx1REREMig/OlxcdTIwMERcXHVEODNFXFx1REREMik/fFxcdURERDIoPzpcXHUyMDBEXFx1RDgzRVxcdURERDIpPykpfFxcdUQ4M0MoPzpcXHVERkZCKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRCg/OlxcdUQ4M0RcXHVEQzhCXFx1MjAwRCk/XFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkMtXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjg0XFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUZcXHVEREJDXFx1RERCRF0oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98W1xcdUREQjAtXFx1RERCM118XFx1REQxRFxcdTIwMERcXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSkpKT98XFx1REZGQyg/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMEQoPzpcXHVEODNEXFx1REM4QlxcdTIwMEQpP1xcdUQ4M0VcXHVEREQxXFx1RDgzQ1tcXHVERkZCXFx1REZGRC1cXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGODRcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRlxcdUREQkNcXHVEREJEXSg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xbXFx1RERCMC1cXHVEREIzXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0VcXHVEREQxXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKSkpP3xcXHVERkZEKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRCg/OlxcdUQ4M0RcXHVEQzhCXFx1MjAwRCk/XFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkJcXHVERkZDXFx1REZGRVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY4NFxcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGXFx1RERCQ1xcdUREQkRdKD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFtcXHVEREIwLVxcdUREQjNdfFxcdUREMURcXHUyMDBEXFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkItXFx1REZGRl0pKSk/fFxcdURGRkUoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEKD86XFx1RDgzRFxcdURDOEJcXHUyMDBEKT9cXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQi1cXHVERkZEXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjg0XFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUZcXHVEREJDXFx1RERCRF0oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98W1xcdUREQjAtXFx1RERCM118XFx1REQxRFxcdTIwMERcXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSkpKT98XFx1REZGRig/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMEQoPzpcXHVEODNEXFx1REM4QlxcdTIwMEQpP1xcdUQ4M0VcXHVEREQxXFx1RDgzQ1tcXHVERkZCLVxcdURGRkVdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY4NFxcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGXFx1RERCQ1xcdUREQkRdKD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFtcXHVEREIwLVxcdUREQjNdfFxcdUREMURcXHUyMDBEXFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkItXFx1REZGRl0pKSk/KSk/fFxcdURFRjEoPzpcXHVEODNDKD86XFx1REZGQig/OlxcdTIwMERcXHVEODNFXFx1REVGMlxcdUQ4M0NbXFx1REZGQy1cXHVERkZGXSk/fFxcdURGRkMoPzpcXHUyMDBEXFx1RDgzRVxcdURFRjJcXHVEODNDW1xcdURGRkJcXHVERkZELVxcdURGRkZdKT98XFx1REZGRCg/OlxcdTIwMERcXHVEODNFXFx1REVGMlxcdUQ4M0NbXFx1REZGQlxcdURGRkNcXHVERkZFXFx1REZGRl0pP3xcXHVERkZFKD86XFx1MjAwRFxcdUQ4M0VcXHVERUYyXFx1RDgzQ1tcXHVERkZCLVxcdURGRkRcXHVERkZGXSk/fFxcdURGRkYoPzpcXHUyMDBEXFx1RDgzRVxcdURFRjJcXHVEODNDW1xcdURGRkItXFx1REZGRV0pPykpPykvZztcbn07XG5cbmNvbnN0IHNlZ21lbnRlciA9IG5ldyBJbnRsLlNlZ21lbnRlcigpO1xuXG5jb25zdCBkZWZhdWx0SWdub3JhYmxlQ29kZVBvaW50UmVnZXggPSAvXlxccHtEZWZhdWx0X0lnbm9yYWJsZV9Db2RlX1BvaW50fSQvdTtcblxuZnVuY3Rpb24gc3RyaW5nV2lkdGgkMShzdHJpbmcsIG9wdGlvbnMgPSB7fSkge1xuXHRpZiAodHlwZW9mIHN0cmluZyAhPT0gJ3N0cmluZycgfHwgc3RyaW5nLmxlbmd0aCA9PT0gMCkge1xuXHRcdHJldHVybiAwO1xuXHR9XG5cblx0Y29uc3Qge1xuXHRcdGFtYmlndW91c0lzTmFycm93ID0gdHJ1ZSxcblx0XHRjb3VudEFuc2lFc2NhcGVDb2RlcyA9IGZhbHNlLFxuXHR9ID0gb3B0aW9ucztcblxuXHRpZiAoIWNvdW50QW5zaUVzY2FwZUNvZGVzKSB7XG5cdFx0c3RyaW5nID0gc3RyaXBBbnNpKHN0cmluZyk7XG5cdH1cblxuXHRpZiAoc3RyaW5nLmxlbmd0aCA9PT0gMCkge1xuXHRcdHJldHVybiAwO1xuXHR9XG5cblx0bGV0IHdpZHRoID0gMDtcblx0Y29uc3QgZWFzdEFzaWFuV2lkdGhPcHRpb25zID0ge2FtYmlndW91c0FzV2lkZTogIWFtYmlndW91c0lzTmFycm93fTtcblxuXHRmb3IgKGNvbnN0IHtzZWdtZW50OiBjaGFyYWN0ZXJ9IG9mIHNlZ21lbnRlci5zZWdtZW50KHN0cmluZykpIHtcblx0XHRjb25zdCBjb2RlUG9pbnQgPSBjaGFyYWN0ZXIuY29kZVBvaW50QXQoMCk7XG5cblx0XHQvLyBJZ25vcmUgY29udHJvbCBjaGFyYWN0ZXJzXG5cdFx0aWYgKGNvZGVQb2ludCA8PSAweDFGIHx8IChjb2RlUG9pbnQgPj0gMHg3RiAmJiBjb2RlUG9pbnQgPD0gMHg5RikpIHtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdC8vIElnbm9yZSB6ZXJvLXdpZHRoIGNoYXJhY3RlcnNcblx0XHRpZiAoXG5cdFx0XHQoY29kZVBvaW50ID49IDB4MjBfMEIgJiYgY29kZVBvaW50IDw9IDB4MjBfMEYpIC8vIFplcm8td2lkdGggc3BhY2UsIG5vbi1qb2luZXIsIGpvaW5lciwgbGVmdC10by1yaWdodCBtYXJrLCByaWdodC10by1sZWZ0IG1hcmtcblx0XHRcdHx8IGNvZGVQb2ludCA9PT0gMHhGRV9GRiAvLyBaZXJvLXdpZHRoIG5vLWJyZWFrIHNwYWNlXG5cdFx0KSB7XG5cdFx0XHRjb250aW51ZTtcblx0XHR9XG5cblx0XHQvLyBJZ25vcmUgY29tYmluaW5nIGNoYXJhY3RlcnNcblx0XHRpZiAoXG5cdFx0XHQoY29kZVBvaW50ID49IDB4M18wMCAmJiBjb2RlUG9pbnQgPD0gMHgzXzZGKSAvLyBDb21iaW5pbmcgZGlhY3JpdGljYWwgbWFya3Ncblx0XHRcdHx8IChjb2RlUG9pbnQgPj0gMHgxQV9CMCAmJiBjb2RlUG9pbnQgPD0gMHgxQV9GRikgLy8gQ29tYmluaW5nIGRpYWNyaXRpY2FsIG1hcmtzIGV4dGVuZGVkXG5cdFx0XHR8fCAoY29kZVBvaW50ID49IDB4MURfQzAgJiYgY29kZVBvaW50IDw9IDB4MURfRkYpIC8vIENvbWJpbmluZyBkaWFjcml0aWNhbCBtYXJrcyBzdXBwbGVtZW50XG5cdFx0XHR8fCAoY29kZVBvaW50ID49IDB4MjBfRDAgJiYgY29kZVBvaW50IDw9IDB4MjBfRkYpIC8vIENvbWJpbmluZyBkaWFjcml0aWNhbCBtYXJrcyBmb3Igc3ltYm9sc1xuXHRcdFx0fHwgKGNvZGVQb2ludCA+PSAweEZFXzIwICYmIGNvZGVQb2ludCA8PSAweEZFXzJGKSAvLyBDb21iaW5pbmcgaGFsZiBtYXJrc1xuXHRcdCkge1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0Ly8gSWdub3JlIHN1cnJvZ2F0ZSBwYWlyc1xuXHRcdGlmIChjb2RlUG9pbnQgPj0gMHhEOF8wMCAmJiBjb2RlUG9pbnQgPD0gMHhERl9GRikge1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0Ly8gSWdub3JlIHZhcmlhdGlvbiBzZWxlY3RvcnNcblx0XHRpZiAoY29kZVBvaW50ID49IDB4RkVfMDAgJiYgY29kZVBvaW50IDw9IDB4RkVfMEYpIHtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdC8vIFRoaXMgY292ZXJzIHNvbWUgb2YgdGhlIGFib3ZlIGNhc2VzLCBidXQgd2Ugc3RpbGwga2VlcCB0aGVtIGZvciBwZXJmb3JtYW5jZSByZWFzb25zLlxuXHRcdGlmIChkZWZhdWx0SWdub3JhYmxlQ29kZVBvaW50UmVnZXgudGVzdChjaGFyYWN0ZXIpKSB7XG5cdFx0XHRjb250aW51ZTtcblx0XHR9XG5cblx0XHQvLyBUT0RPOiBVc2UgYC9cXHB7UkdJX0Vtb2ppfS92YCB3aGVuIHRhcmdldGluZyBOb2RlLmpzIDIwLlxuXHRcdGlmIChlbW9qaVJlZ2V4KCkudGVzdChjaGFyYWN0ZXIpKSB7XG5cdFx0XHR3aWR0aCArPSAyO1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0d2lkdGggKz0gZWFzdEFzaWFuV2lkdGgoY29kZVBvaW50LCBlYXN0QXNpYW5XaWR0aE9wdGlvbnMpO1xuXHR9XG5cblx0cmV0dXJuIHdpZHRoO1xufVxuXG5mdW5jdGlvbiBpc1VuaWNvZGVTdXBwb3J0ZWQoKSB7XG5cdGNvbnN0IHtlbnZ9ID0gcHJvY2VzcyQxO1xuXHRjb25zdCB7VEVSTSwgVEVSTV9QUk9HUkFNfSA9IGVudjtcblxuXHRpZiAocHJvY2VzcyQxLnBsYXRmb3JtICE9PSAnd2luMzInKSB7XG5cdFx0cmV0dXJuIFRFUk0gIT09ICdsaW51eCc7IC8vIExpbnV4IGNvbnNvbGUgKGtlcm5lbClcblx0fVxuXG5cdHJldHVybiBCb29sZWFuKGVudi5XVF9TRVNTSU9OKSAvLyBXaW5kb3dzIFRlcm1pbmFsXG5cdFx0fHwgQm9vbGVhbihlbnYuVEVSTUlOVVNfU1VCTElNRSkgLy8gVGVybWludXMgKDwwLjIuMjcpXG5cdFx0fHwgZW52LkNvbkVtdVRhc2sgPT09ICd7Y21kOjpDbWRlcn0nIC8vIENvbkVtdSBhbmQgY21kZXJcblx0XHR8fCBURVJNX1BST0dSQU0gPT09ICdUZXJtaW51cy1TdWJsaW1lJ1xuXHRcdHx8IFRFUk1fUFJPR1JBTSA9PT0gJ3ZzY29kZSdcblx0XHR8fCBURVJNID09PSAneHRlcm0tMjU2Y29sb3InXG5cdFx0fHwgVEVSTSA9PT0gJ2FsYWNyaXR0eSdcblx0XHR8fCBURVJNID09PSAncnh2dC11bmljb2RlJ1xuXHRcdHx8IFRFUk0gPT09ICdyeHZ0LXVuaWNvZGUtMjU2Y29sb3InXG5cdFx0fHwgZW52LlRFUk1JTkFMX0VNVUxBVE9SID09PSAnSmV0QnJhaW5zLUplZGlUZXJtJztcbn1cblxuY29uc3QgVFlQRV9DT0xPUl9NQVAgPSB7XG4gIGluZm86IFwiY3lhblwiLFxuICBmYWlsOiBcInJlZFwiLFxuICBzdWNjZXNzOiBcImdyZWVuXCIsXG4gIHJlYWR5OiBcImdyZWVuXCIsXG4gIHN0YXJ0OiBcIm1hZ2VudGFcIlxufTtcbmNvbnN0IExFVkVMX0NPTE9SX01BUCA9IHtcbiAgMDogXCJyZWRcIixcbiAgMTogXCJ5ZWxsb3dcIlxufTtcbmNvbnN0IHVuaWNvZGUgPSBpc1VuaWNvZGVTdXBwb3J0ZWQoKTtcbmNvbnN0IHMgPSAoYywgZmFsbGJhY2spID0+IHVuaWNvZGUgPyBjIDogZmFsbGJhY2s7XG5jb25zdCBUWVBFX0lDT05TID0ge1xuICBlcnJvcjogcyhcIlxcdTI3MTZcIiwgXCJcXHhEN1wiKSxcbiAgZmF0YWw6IHMoXCJcXHUyNzE2XCIsIFwiXFx4RDdcIiksXG4gIHJlYWR5OiBzKFwiXFx1MjcxNFwiLCBcIlxcdTIyMUFcIiksXG4gIHdhcm46IHMoXCJcXHUyNkEwXCIsIFwiXFx1MjAzQ1wiKSxcbiAgaW5mbzogcyhcIlxcdTIxMzlcIiwgXCJpXCIpLFxuICBzdWNjZXNzOiBzKFwiXFx1MjcxNFwiLCBcIlxcdTIyMUFcIiksXG4gIGRlYnVnOiBzKFwiXFx1MjY5OVwiLCBcIkRcIiksXG4gIHRyYWNlOiBzKFwiXFx1MjE5MlwiLCBcIlxcdTIxOTJcIiksXG4gIGZhaWw6IHMoXCJcXHUyNzE2XCIsIFwiXFx4RDdcIiksXG4gIHN0YXJ0OiBzKFwiXFx1MjVEMFwiLCBcIm9cIiksXG4gIGxvZzogXCJcIlxufTtcbmZ1bmN0aW9uIHN0cmluZ1dpZHRoKHN0cikge1xuICBjb25zdCBoYXNJQ1UgPSB0eXBlb2YgSW50bCA9PT0gXCJvYmplY3RcIjtcbiAgaWYgKCFoYXNJQ1UgfHwgIUludGwuU2VnbWVudGVyKSB7XG4gICAgcmV0dXJuIHN0cmlwQW5zaSQxKHN0cikubGVuZ3RoO1xuICB9XG4gIHJldHVybiBzdHJpbmdXaWR0aCQxKHN0cik7XG59XG5jbGFzcyBGYW5jeVJlcG9ydGVyIGV4dGVuZHMgQmFzaWNSZXBvcnRlciB7XG4gIGZvcm1hdFN0YWNrKHN0YWNrLCBvcHRzKSB7XG4gICAgY29uc3QgaW5kZW50ID0gXCIgIFwiLnJlcGVhdCgob3B0cz8uZXJyb3JMZXZlbCB8fCAwKSArIDEpO1xuICAgIHJldHVybiBgXG4ke2luZGVudH1gICsgcGFyc2VTdGFjayhzdGFjaykubWFwKFxuICAgICAgKGxpbmUpID0+IFwiICBcIiArIGxpbmUucmVwbGFjZSgvXmF0ICsvLCAobSkgPT4gY29sb3JzLmdyYXkobSkpLnJlcGxhY2UoL1xcKCguKylcXCkvLCAoXywgbSkgPT4gYCgke2NvbG9ycy5jeWFuKG0pfSlgKVxuICAgICkuam9pbihgXG4ke2luZGVudH1gKTtcbiAgfVxuICBmb3JtYXRUeXBlKGxvZ09iaiwgaXNCYWRnZSwgb3B0cykge1xuICAgIGNvbnN0IHR5cGVDb2xvciA9IFRZUEVfQ09MT1JfTUFQW2xvZ09iai50eXBlXSB8fCBMRVZFTF9DT0xPUl9NQVBbbG9nT2JqLmxldmVsXSB8fCBcImdyYXlcIjtcbiAgICBpZiAoaXNCYWRnZSkge1xuICAgICAgcmV0dXJuIGdldEJnQ29sb3IodHlwZUNvbG9yKShcbiAgICAgICAgY29sb3JzLmJsYWNrKGAgJHtsb2dPYmoudHlwZS50b1VwcGVyQ2FzZSgpfSBgKVxuICAgICAgKTtcbiAgICB9XG4gICAgY29uc3QgX3R5cGUgPSB0eXBlb2YgVFlQRV9JQ09OU1tsb2dPYmoudHlwZV0gPT09IFwic3RyaW5nXCIgPyBUWVBFX0lDT05TW2xvZ09iai50eXBlXSA6IGxvZ09iai5pY29uIHx8IGxvZ09iai50eXBlO1xuICAgIHJldHVybiBfdHlwZSA/IGdldENvbG9yKHR5cGVDb2xvcikoX3R5cGUpIDogXCJcIjtcbiAgfVxuICBmb3JtYXRMb2dPYmoobG9nT2JqLCBvcHRzKSB7XG4gICAgY29uc3QgW21lc3NhZ2UsIC4uLmFkZGl0aW9uYWxdID0gdGhpcy5mb3JtYXRBcmdzKGxvZ09iai5hcmdzLCBvcHRzKS5zcGxpdChcbiAgICAgIFwiXFxuXCJcbiAgICApO1xuICAgIGlmIChsb2dPYmoudHlwZSA9PT0gXCJib3hcIikge1xuICAgICAgcmV0dXJuIGJveChcbiAgICAgICAgY2hhcmFjdGVyRm9ybWF0KFxuICAgICAgICAgIG1lc3NhZ2UgKyAoYWRkaXRpb25hbC5sZW5ndGggPiAwID8gXCJcXG5cIiArIGFkZGl0aW9uYWwuam9pbihcIlxcblwiKSA6IFwiXCIpXG4gICAgICAgICksXG4gICAgICAgIHtcbiAgICAgICAgICB0aXRsZTogbG9nT2JqLnRpdGxlID8gY2hhcmFjdGVyRm9ybWF0KGxvZ09iai50aXRsZSkgOiB2b2lkIDAsXG4gICAgICAgICAgc3R5bGU6IGxvZ09iai5zdHlsZVxuICAgICAgICB9XG4gICAgICApO1xuICAgIH1cbiAgICBjb25zdCBkYXRlID0gdGhpcy5mb3JtYXREYXRlKGxvZ09iai5kYXRlLCBvcHRzKTtcbiAgICBjb25zdCBjb2xvcmVkRGF0ZSA9IGRhdGUgJiYgY29sb3JzLmdyYXkoZGF0ZSk7XG4gICAgY29uc3QgaXNCYWRnZSA9IGxvZ09iai5iYWRnZSA/PyBsb2dPYmoubGV2ZWwgPCAyO1xuICAgIGNvbnN0IHR5cGUgPSB0aGlzLmZvcm1hdFR5cGUobG9nT2JqLCBpc0JhZGdlLCBvcHRzKTtcbiAgICBjb25zdCB0YWcgPSBsb2dPYmoudGFnID8gY29sb3JzLmdyYXkobG9nT2JqLnRhZykgOiBcIlwiO1xuICAgIGxldCBsaW5lO1xuICAgIGNvbnN0IGxlZnQgPSB0aGlzLmZpbHRlckFuZEpvaW4oW3R5cGUsIGNoYXJhY3RlckZvcm1hdChtZXNzYWdlKV0pO1xuICAgIGNvbnN0IHJpZ2h0ID0gdGhpcy5maWx0ZXJBbmRKb2luKG9wdHMuY29sdW1ucyA/IFt0YWcsIGNvbG9yZWREYXRlXSA6IFt0YWddKTtcbiAgICBjb25zdCBzcGFjZSA9IChvcHRzLmNvbHVtbnMgfHwgMCkgLSBzdHJpbmdXaWR0aChsZWZ0KSAtIHN0cmluZ1dpZHRoKHJpZ2h0KSAtIDI7XG4gICAgbGluZSA9IHNwYWNlID4gMCAmJiAob3B0cy5jb2x1bW5zIHx8IDApID49IDgwID8gbGVmdCArIFwiIFwiLnJlcGVhdChzcGFjZSkgKyByaWdodCA6IChyaWdodCA/IGAke2NvbG9ycy5ncmF5KGBbJHtyaWdodH1dYCl9IGAgOiBcIlwiKSArIGxlZnQ7XG4gICAgbGluZSArPSBjaGFyYWN0ZXJGb3JtYXQoXG4gICAgICBhZGRpdGlvbmFsLmxlbmd0aCA+IDAgPyBcIlxcblwiICsgYWRkaXRpb25hbC5qb2luKFwiXFxuXCIpIDogXCJcIlxuICAgICk7XG4gICAgaWYgKGxvZ09iai50eXBlID09PSBcInRyYWNlXCIpIHtcbiAgICAgIGNvbnN0IF9lcnIgPSBuZXcgRXJyb3IoXCJUcmFjZTogXCIgKyBsb2dPYmoubWVzc2FnZSk7XG4gICAgICBsaW5lICs9IHRoaXMuZm9ybWF0U3RhY2soX2Vyci5zdGFjayB8fCBcIlwiKTtcbiAgICB9XG4gICAgcmV0dXJuIGlzQmFkZ2UgPyBcIlxcblwiICsgbGluZSArIFwiXFxuXCIgOiBsaW5lO1xuICB9XG59XG5mdW5jdGlvbiBjaGFyYWN0ZXJGb3JtYXQoc3RyKSB7XG4gIHJldHVybiBzdHIucmVwbGFjZSgvYChbXmBdKylgL2dtLCAoXywgbSkgPT4gY29sb3JzLmN5YW4obSkpLnJlcGxhY2UoL1xccytfKFteX10rKV9cXHMrL2dtLCAoXywgbSkgPT4gYCAke2NvbG9ycy51bmRlcmxpbmUobSl9IGApO1xufVxuZnVuY3Rpb24gZ2V0Q29sb3IoY29sb3IgPSBcIndoaXRlXCIpIHtcbiAgcmV0dXJuIGNvbG9yc1tjb2xvcl0gfHwgY29sb3JzLndoaXRlO1xufVxuZnVuY3Rpb24gZ2V0QmdDb2xvcihjb2xvciA9IFwiYmdXaGl0ZVwiKSB7XG4gIHJldHVybiBjb2xvcnNbYGJnJHtjb2xvclswXS50b1VwcGVyQ2FzZSgpfSR7Y29sb3Iuc2xpY2UoMSl9YF0gfHwgY29sb3JzLmJnV2hpdGU7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUNvbnNvbGEob3B0aW9ucyA9IHt9KSB7XG4gIGxldCBsZXZlbCA9IF9nZXREZWZhdWx0TG9nTGV2ZWwoKTtcbiAgaWYgKHByb2Nlc3MuZW52LkNPTlNPTEFfTEVWRUwpIHtcbiAgICBsZXZlbCA9IE51bWJlci5wYXJzZUludChwcm9jZXNzLmVudi5DT05TT0xBX0xFVkVMKSA/PyBsZXZlbDtcbiAgfVxuICBjb25zdCBjb25zb2xhMiA9IGNyZWF0ZUNvbnNvbGEkMSh7XG4gICAgbGV2ZWwsXG4gICAgZGVmYXVsdHM6IHsgbGV2ZWwgfSxcbiAgICBzdGRvdXQ6IHByb2Nlc3Muc3Rkb3V0LFxuICAgIHN0ZGVycjogcHJvY2Vzcy5zdGRlcnIsXG4gICAgcHJvbXB0OiAoLi4uYXJncykgPT4gaW1wb3J0KCcuLi9jaHVua3MvcHJvbXB0Lm1qcycpLnRoZW4oKG0pID0+IG0ucHJvbXB0KC4uLmFyZ3MpKSxcbiAgICByZXBvcnRlcnM6IG9wdGlvbnMucmVwb3J0ZXJzIHx8IFtcbiAgICAgIG9wdGlvbnMuZmFuY3kgPz8gIShUIHx8IEEpID8gbmV3IEZhbmN5UmVwb3J0ZXIoKSA6IG5ldyBCYXNpY1JlcG9ydGVyKClcbiAgICBdLFxuICAgIC4uLm9wdGlvbnNcbiAgfSk7XG4gIHJldHVybiBjb25zb2xhMjtcbn1cbmZ1bmN0aW9uIF9nZXREZWZhdWx0TG9nTGV2ZWwoKSB7XG4gIGlmIChVKSB7XG4gICAgcmV0dXJuIExvZ0xldmVscy5kZWJ1ZztcbiAgfVxuICBpZiAoQSkge1xuICAgIHJldHVybiBMb2dMZXZlbHMud2FybjtcbiAgfVxuICByZXR1cm4gTG9nTGV2ZWxzLmluZm87XG59XG5jb25zdCBjb25zb2xhID0gY3JlYXRlQ29uc29sYSgpO1xuXG5leHBvcnQgeyBjb25zb2xhIGFzIGEsIGNyZWF0ZUNvbnNvbGEgYXMgYywgaXNVbmljb2RlU3VwcG9ydGVkIGFzIGkgfTtcbiIsICIvKiBlc2xpbnQtZGlzYWJsZSB1bmljb3JuL25vLXByb2Nlc3MtZXhpdCAqL1xuaW1wb3J0IGFzc2VydCBmcm9tIFwibm9kZTphc3NlcnRcIjtcbmltcG9ydCBwYXRoIGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB7IGNyZWF0ZUhhc2ggfSBmcm9tIFwibm9kZTpjcnlwdG9cIjtcbmltcG9ydCBmc1N5bmMgZnJvbSBcIm5vZGU6ZnNcIjtcbmltcG9ydCBmcyBmcm9tIFwibm9kZTpmcy9wcm9taXNlc1wiO1xuaW1wb3J0IHsgaGFzaCB9IGZyb20gXCJvaGFzaFwiO1xuaW1wb3J0IGV6U3Bhd24gZnJvbSBcIkBqc2RldnRvb2xzL2V6LXNwYXduXCI7XG5pbXBvcnQgeyBkZWZpbmVDb21tYW5kLCBydW5NYWluIH0gZnJvbSBcImNpdHR5XCI7XG5pbXBvcnQgeyBnZXRQYWNrYWdlTWFuaWZlc3QsIHR5cGUgUGFja2FnZU1hbmlmZXN0IH0gZnJvbSBcInF1ZXJ5LXJlZ2lzdHJ5XCI7XG5pbXBvcnQgdHlwZSB7IENvbW1lbnQgfSBmcm9tIFwiQHBrZy1wci1uZXcvdXRpbHNcIjtcbmltcG9ydCB7XG4gIGFiYnJldmlhdGVDb21taXRIYXNoLFxuICBleHRyYWN0T3duZXJBbmRSZXBvLFxuICBleHRyYWN0UmVwb3NpdG9yeSxcbn0gZnJvbSBcIkBwa2ctcHItbmV3L3V0aWxzXCI7XG5pbXBvcnQgeyBnbG9iIH0gZnJvbSBcInRpbnlnbG9iYnlcIjtcbmltcG9ydCBpZ25vcmUgZnJvbSBcImlnbm9yZVwiO1xuaW1wb3J0IFwiLi9lbnZpcm9ubWVudHNcIjtcbmltcG9ydCB7IGlzQmluYXJ5RmlsZSB9IGZyb20gXCJpc2JpbmFyeWZpbGVcIjtcbmltcG9ydCB7IHdyaXRlUGFja2FnZUpTT04sIHR5cGUgUGFja2FnZUpzb24gfSBmcm9tIFwicGtnLXR5cGVzXCI7XG5pbXBvcnQgcGtnIGZyb20gXCIuL3BhY2thZ2UuanNvblwiIHdpdGggeyB0eXBlOiBcImpzb25cIiB9O1xuaW1wb3J0IHsgY3JlYXRlRGVmYXVsdFRlbXBsYXRlIH0gZnJvbSBcIi4vdGVtcGxhdGVcIjtcblxuZGVjbGFyZSBnbG9iYWwge1xuICBjb25zdCBBUElfVVJMOiBzdHJpbmc7XG59XG5cbnR5cGUgT3V0cHV0TWV0YWRhdGEgPSB7XG4gIHBhY2thZ2VzOiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHVybDogc3RyaW5nO1xuICAgIHNoYXN1bTogc3RyaW5nO1xuICB9W107XG4gIHRlbXBsYXRlczoge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB1cmw6IHN0cmluZztcbiAgfVtdO1xufTtcblxuY29uc3QgYXBpVXJsID0gcHJvY2Vzcy5lbnYuQVBJX1VSTCA/PyBBUElfVVJMO1xuY29uc3QgcHVibGlzaFVybCA9IG5ldyBVUkwoXCIvcHVibGlzaFwiLCBhcGlVcmwpO1xuY29uc3QgY3JlYXRlTXVsdGlwYXJ0ID0gbmV3IFVSTChcIi9tdWx0aXBhcnQvY3JlYXRlXCIsIGFwaVVybCk7XG5jb25zdCB1cGxvYWRNdWx0aXBhcnQgPSBuZXcgVVJMKFwiL211bHRpcGFydC91cGxvYWRcIiwgYXBpVXJsKTtcbmNvbnN0IGNvbXBsZXRlTXVsdGlwYXJ0ID0gbmV3IFVSTChcIi9tdWx0aXBhcnQvY29tcGxldGVcIiwgYXBpVXJsKTtcblxuY29uc3QgbWFpbiA9IGRlZmluZUNvbW1hbmQoe1xuICBtZXRhOiB7XG4gICAgdmVyc2lvbjogcGtnLnZlcnNpb24sXG4gICAgbmFtZTogXCJzdGFja2JsaXR6XCIsXG4gICAgZGVzY3JpcHRpb246IFwiQSBDTEkgZm9yIHBrZy5wci5uZXcgKENvbnRpbnVvdXMgUmVsZWFzZXMpXCIsXG4gIH0sXG4gIHN1YkNvbW1hbmRzOiB7XG4gICAgcHVibGlzaDogKCkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYXJnczoge1xuICAgICAgICAgIGNvbXBhY3Q6IHtcbiAgICAgICAgICAgIHR5cGU6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgICAgIFwiY29tcGFjdCB1cmxzLiBUaGUgc2hvcnRlc3QgZm9ybSBvZiB1cmxzIGxpa2UgcGtnLnByLm5ldy90aW55YmVuY2hAYTgzMmE1NSlcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHBlZXJEZXBzOiB7XG4gICAgICAgICAgICB0eXBlOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgICAgICBcImhhbmRsZSBwZWVyRGVwZW5kZW5jaWVzIGJ5IHNldHRpbmcgdGhlIHdvcmtzcGFjZSB2ZXJzaW9uIGluc3RlYWQgb2Ygd2hhdCBoYXMgYmVlbiBzZXQgaW4gdGhlIHBlZXJEZXBzIGl0c2VsZi4gLS1wZWVyRGVwcyBub3QgYmVpbmcgdHJ1ZSB3b3VsZCBsZWF2ZSBwZWVyRGVwZW5kZW5jaWVzIHRvIHRoZSBwYWNrYWdlIG1hbmFnZXIgaXRzZWxmIChucG0sIHBucG0pXCIsXG4gICAgICAgICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHBucG06IHtcbiAgICAgICAgICAgIHR5cGU6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwidXNlIGBwbnBtIHBhY2tgIGluc3RlYWQgb2YgYG5wbSBwYWNrIC0tanNvbmBcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHRlbXBsYXRlOiB7XG4gICAgICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgICAgIFwiZ2VuZXJhdGUgc3RhY2tibGl0eiB0ZW1wbGF0ZXMgb3V0IG9mIGRpcmVjdG9yaWVzIGluIHRoZSBjdXJyZW50IHJlcG8gd2l0aCB0aGUgbmV3IGJ1aWx0IHBhY2thZ2VzXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjb21tZW50OiB7XG4gICAgICAgICAgICB0eXBlOiBcInN0cmluZ1wiLCAvLyBcIm9mZlwiLCBcImNyZWF0ZVwiLCBcInVwZGF0ZVwiIChkZWZhdWx0KVxuICAgICAgICAgICAgZGVzY3JpcHRpb246IGBcIm9mZlwiIGZvciBubyBjb21tZW50cyAoc2lsZW50IG1vZGUpLiBcImNyZWF0ZVwiIGZvciBjb21tZW50IG9uIGVhY2ggcHVibGlzaC4gXCJ1cGRhdGVcIiBmb3Igb25lIGNvbW1lbnQgYWNyb3NzIHRoZSBwdWxsIHJlcXVlc3Qgd2l0aCBlZGl0cyBvbiBlYWNoIHB1Ymxpc2ggKGRlZmF1bHQpYCxcbiAgICAgICAgICAgIGRlZmF1bHQ6IFwidXBkYXRlXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm9ubHktdGVtcGxhdGVzXCI6IHtcbiAgICAgICAgICAgIHR5cGU6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IGBnZW5lcmF0ZSBvbmx5IHN0YWNrYmxpdHogdGVtcGxhdGVzYCxcbiAgICAgICAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgICAgICAgIH0sXG4gICAgICAgICAganNvbjoge1xuICAgICAgICAgICAgdHlwZTogXCJtaXhlZFwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IGBTYXZlIG1ldGFkYXRhIHRvIGEgSlNPTiBmaWxlLiBJZiB0cnVlLCBsb2cgdGhlIG91dHB1dCBmb3IgcGlwaW5nLiBJZiBhIHN0cmluZywgc2F2ZSB0aGUgb3V0cHV0IHRvIHRoZSBzcGVjaWZpZWQgZmlsZSBwYXRoLmAsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBwYWNrYWdlTWFuYWdlcjoge1xuICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgICAgICBcIlNwZWNpZnkgdGhlIHBhY2thZ2UgbWFuYWdlciB0byB1c2UgKG5wbSwgYnVuLCBwbnBtLCB5YXJuKVwiLFxuICAgICAgICAgICAgZW51bTogW1wibnBtXCIsIFwiYnVuXCIsIFwicG5wbVwiLCBcInlhcm5cIl0sXG4gICAgICAgICAgICBkZWZhdWx0OiBcIm5wbVwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgYmluOiB7XG4gICAgICAgICAgICB0eXBlOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgICAgICBcIlNldCB0byB0cnVlIGlmIHlvdXIgcGFja2FnZSBpcyBhIGJpbmFyeSBhcHBsaWNhdGlvbiBhbmQgeW91IHdvdWxkIGxpa2UgdG8gc2hvdyBhbiBleGVjdXRlIGNvbW1hbmQgaW5zdGVhZCBvZiBhbiBpbnN0YWxsIGNvbW1hbmQuXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgcnVuOiBhc3luYyAoeyBhcmdzIH0pID0+IHtcbiAgICAgICAgICBjb25zdCBwYXRocyA9XG4gICAgICAgICAgICBhcmdzLl8ubGVuZ3RoID4gMFxuICAgICAgICAgICAgICA/IGF3YWl0IGdsb2IoYXJncy5fLCB7XG4gICAgICAgICAgICAgICAgICBleHBhbmREaXJlY3RvcmllczogZmFsc2UsXG4gICAgICAgICAgICAgICAgICBvbmx5RGlyZWN0b3JpZXM6IHRydWUsXG4gICAgICAgICAgICAgICAgICBhYnNvbHV0ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICA6IFtwcm9jZXNzLmN3ZCgpXTtcblxuICAgICAgICAgIGNvbnN0IHRlbXBsYXRlcyA9IGF3YWl0IGdsb2IoYXJncy50ZW1wbGF0ZSB8fCBbXSwge1xuICAgICAgICAgICAgZXhwYW5kRGlyZWN0b3JpZXM6IGZhbHNlLFxuICAgICAgICAgICAgb25seURpcmVjdG9yaWVzOiB0cnVlLFxuICAgICAgICAgICAgYWJzb2x1dGU6IHRydWUsXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuXG4gICAgICAgICAgY29uc3QgaXNDb21wYWN0ID0gISFhcmdzLmNvbXBhY3Q7XG4gICAgICAgICAgbGV0IHBhY2tNZXRob2Q6IFBhY2tNZXRob2QgPSBcIm5wbVwiO1xuXG4gICAgICAgICAgaWYgKGFyZ3MucG5wbSkge1xuICAgICAgICAgICAgcGFja01ldGhvZCA9IFwicG5wbVwiO1xuICAgICAgICAgIH0gZWxzZSBpZiAoYXJncy55YXJuKSB7XG4gICAgICAgICAgICBwYWNrTWV0aG9kID0gXCJ5YXJuXCI7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgaXNQZWVyRGVwc0VuYWJsZWQgPSAhIWFyZ3MucGVlckRlcHM7XG4gICAgICAgICAgY29uc3QgaXNPbmx5VGVtcGxhdGVzID0gISFhcmdzW1wib25seS10ZW1wbGF0ZXNcIl07XG4gICAgICAgICAgY29uc3QgaXNCaW5hcnlBcHBsaWNhdGlvbiA9ICEhYXJncy5iaW47XG4gICAgICAgICAgY29uc3QgY29tbWVudDogQ29tbWVudCA9IGFyZ3MuY29tbWVudCBhcyBDb21tZW50O1xuICAgICAgICAgIGNvbnN0IHNlbGVjdGVkUGFja2FnZU1hbmFnZXIgPSBhcmdzLnBhY2thZ2VNYW5hZ2VyIGFzXG4gICAgICAgICAgICB8IFwibnBtXCJcbiAgICAgICAgICAgIHwgXCJidW5cIlxuICAgICAgICAgICAgfCBcInBucG1cIlxuICAgICAgICAgICAgfCBcInlhcm5cIjtcblxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICFbXCJucG1cIiwgXCJidW5cIiwgXCJwbnBtXCIsIFwieWFyblwiXS5pbmNsdWRlcyhzZWxlY3RlZFBhY2thZ2VNYW5hZ2VyKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgYFVuc3VwcG9ydGVkIHBhY2thZ2UgbWFuYWdlcjogJHtzZWxlY3RlZFBhY2thZ2VNYW5hZ2VyfS4gU3VwcG9ydGVkIG1hbmFnZXJzIGFyZSBucG0sIGJ1biwgcG5wbSwgeWFybi5gLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoIXByb2Nlc3MuZW52LlRFU1QgJiYgcHJvY2Vzcy5lbnYuR0lUSFVCX0FDVElPTlMgIT09IFwidHJ1ZVwiKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICBcIkNvbnRpbnVvdXMgUmVsZWFzZXMgYXJlIG9ubHkgYXZhaWxhYmxlIGluIEdpdEh1YiBBY3Rpb25zLlwiLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICBHSVRIVUJfUkVQT1NJVE9SWSxcbiAgICAgICAgICAgIEdJVEhVQl9SVU5fSUQsXG4gICAgICAgICAgICBHSVRIVUJfUlVOX0FUVEVNUFQsXG4gICAgICAgICAgICBHSVRIVUJfQUNUT1JfSUQsXG4gICAgICAgICAgfSA9IHByb2Nlc3MuZW52O1xuXG4gICAgICAgICAgY29uc3QgW293bmVyLCByZXBvXSA9IEdJVEhVQl9SRVBPU0lUT1JZLnNwbGl0KFwiL1wiKTtcblxuICAgICAgICAgIGNvbnN0IG1ldGFkYXRhID0ge1xuICAgICAgICAgICAgb3duZXIsXG4gICAgICAgICAgICByZXBvLFxuICAgICAgICAgICAgcnVuOiBOdW1iZXIoR0lUSFVCX1JVTl9JRCksXG4gICAgICAgICAgICBhdHRlbXB0OiBOdW1iZXIoR0lUSFVCX1JVTl9BVFRFTVBUKSxcbiAgICAgICAgICAgIGFjdG9yOiBOdW1iZXIoR0lUSFVCX0FDVE9SX0lEKSxcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgY29uc3Qga2V5ID0gaGFzaChtZXRhZGF0YSk7XG5cbiAgICAgICAgICBjb25zdCBjaGVja1Jlc3BvbnNlID0gYXdhaXQgZmV0Y2gobmV3IFVSTChcIi9jaGVja1wiLCBhcGlVcmwpLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICBvd25lcixcbiAgICAgICAgICAgICAgcmVwbyxcbiAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBpZiAoIWNoZWNrUmVzcG9uc2Uub2spIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYXdhaXQgY2hlY2tSZXNwb25zZS50ZXh0KCkpO1xuICAgICAgICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IHsgc2hhIH0gPSBhd2FpdCBjaGVja1Jlc3BvbnNlLmpzb24oKTtcblxuICAgICAgICAgIGNvbnN0IGRlcHM6IE1hcDxzdHJpbmcsIHN0cmluZz4gPSBuZXcgTWFwKCk7IC8vIHBrZy5wci5uZXcgdmVyc2lvbnMgb2YgdGhlIHBhY2thZ2VcbiAgICAgICAgICBjb25zdCByZWFsRGVwczogTWFwPHN0cmluZywgc3RyaW5nPiB8IG51bGwgPSBpc1BlZXJEZXBzRW5hYmxlZFxuICAgICAgICAgICAgPyBuZXcgTWFwKClcbiAgICAgICAgICAgIDogbnVsbDsgLy8gcmVhbCB2ZXJzaW9ucyBvZiB0aGUgcGFja2FnZSwgdXNlZnVsIGZvciBwZWVyRGVwZW5kZW5jaWVzXG5cbiAgICAgICAgICBjb25zdCBwcmludEpzb24gPSB0eXBlb2YgYXJncy5qc29uID09PSBcImJvb2xlYW5cIjtcbiAgICAgICAgICBjb25zdCBzYXZlSnNvbiA9IHR5cGVvZiBhcmdzLmpzb24gPT09IFwic3RyaW5nXCI7XG4gICAgICAgICAgY29uc3QganNvbkZpbGVQYXRoID0gc2F2ZUpzb24gPyBhcmdzLmpzb24gOiBcIlwiO1xuICAgICAgICAgIGNvbnN0IG91dHB1dE1ldGFkYXRhOiBPdXRwdXRNZXRhZGF0YSA9IHtcbiAgICAgICAgICAgIHBhY2thZ2VzOiBbXSxcbiAgICAgICAgICAgIHRlbXBsYXRlczogW10sXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGZvciAoY29uc3QgcCBvZiBwYXRocykge1xuICAgICAgICAgICAgY29uc3QgcEpzb25QYXRoID0gcGF0aC5yZXNvbHZlKHAsIFwicGFja2FnZS5qc29uXCIpO1xuICAgICAgICAgICAgY29uc3QgcEpzb24gPSBhd2FpdCByZWFkUGFja2FnZUpzb24ocEpzb25QYXRoKTtcblxuICAgICAgICAgICAgaWYgKCFwSnNvbikge1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFwSnNvbi5uYW1lKSB7XG4gICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgXCJuYW1lXCIgZmllbGQgaW4gJHtwSnNvblBhdGh9IHNob3VsZCBiZSBkZWZpbmVkYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocEpzb24ucHJpdmF0ZSkge1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGlzQ29tcGFjdCkge1xuICAgICAgICAgICAgICBhd2FpdCB2ZXJpZnlDb21wYWN0TW9kZShwSnNvbi5uYW1lKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVkU2hhID0gaXNDb21wYWN0ID8gYWJicmV2aWF0ZUNvbW1pdEhhc2goc2hhKSA6IHNoYTtcbiAgICAgICAgICAgIGNvbnN0IGRlcFVybCA9IG5ldyBVUkwoXG4gICAgICAgICAgICAgIGAvJHtvd25lcn0vJHtyZXBvfS8ke3BKc29uLm5hbWV9QCR7Zm9ybWF0dGVkU2hhfWAsXG4gICAgICAgICAgICAgIGFwaVVybCxcbiAgICAgICAgICAgICkuaHJlZjtcbiAgICAgICAgICAgIGRlcHMuc2V0KHBKc29uLm5hbWUsIGRlcFVybCk7XG4gICAgICAgICAgICByZWFsRGVwcz8uc2V0KHBKc29uLm5hbWUsIHBKc29uLnZlcnNpb24gPz8gZGVwVXJsKTtcblxuICAgICAgICAgICAgY29uc3QgcmVzb3VyY2UgPSBhd2FpdCBmZXRjaChkZXBVcmwpO1xuICAgICAgICAgICAgaWYgKHJlc291cmNlLm9rKSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgICAgICBgJHtwSnNvbi5uYW1lfUAke2Zvcm1hdHRlZFNoYX0gd2FzIGFscmVhZHkgcHVibGlzaGVkIG9uICR7ZGVwVXJsfWAsXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIENvbGxlY3QgcGFja2FnZSBtZXRhZGF0YVxuICAgICAgICAgICAgb3V0cHV0TWV0YWRhdGEucGFja2FnZXMucHVzaCh7XG4gICAgICAgICAgICAgIG5hbWU6IHBKc29uLm5hbWUsXG4gICAgICAgICAgICAgIHVybDogZGVwVXJsLFxuICAgICAgICAgICAgICBzaGFzdW06IFwiXCIsIC8vIHdpbGwgYmUgZmlsbGVkIGxhdGVyXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBmb3IgKGNvbnN0IHRlbXBsYXRlRGlyIG9mIHRlbXBsYXRlcykge1xuICAgICAgICAgICAgY29uc3QgcEpzb25QYXRoID0gcGF0aC5yZXNvbHZlKHRlbXBsYXRlRGlyLCBcInBhY2thZ2UuanNvblwiKTtcbiAgICAgICAgICAgIGNvbnN0IHBKc29uQ29udGVudHMgPSBhd2FpdCB0cnlSZWFkRmlsZShwSnNvblBhdGgpO1xuICAgICAgICAgICAgY29uc3QgcEpzb24gPSBwSnNvbkNvbnRlbnRzXG4gICAgICAgICAgICAgID8gcGFyc2VQYWNrYWdlSnNvbihwSnNvbkNvbnRlbnRzKVxuICAgICAgICAgICAgICA6IG51bGw7XG5cbiAgICAgICAgICAgIGlmICghcEpzb24gfHwgIXBKc29uQ29udGVudHMpIHtcbiAgICAgICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICAgIGBza2lwcGluZyAke3RlbXBsYXRlRGlyfSBiZWNhdXNlIHRoZXJlJ3Mgbm8gcGFja2FnZS5qc29uIGZpbGVgLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFwSnNvbi5uYW1lKSB7XG4gICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgXCJuYW1lXCIgZmllbGQgaW4gJHtwSnNvblBhdGh9IHNob3VsZCBiZSBkZWZpbmVkYCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnNvbGUud2FybihcInByZXBhcmluZyB0ZW1wbGF0ZTpcIiwgcEpzb24ubmFtZSk7XG5cbiAgICAgICAgICAgIGNvbnN0IHJlc3RvcmUgPSBhd2FpdCB3cml0ZURlcHMoXG4gICAgICAgICAgICAgIHRlbXBsYXRlRGlyLFxuICAgICAgICAgICAgICBwSnNvbkNvbnRlbnRzLFxuICAgICAgICAgICAgICBwSnNvbixcbiAgICAgICAgICAgICAgZGVwcyxcbiAgICAgICAgICAgICAgcmVhbERlcHMsXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBjb25zdCBnaXRpZ25vcmVQYXRoID0gcGF0aC5qb2luKHRlbXBsYXRlRGlyLCBcIi5naXRpZ25vcmVcIik7XG4gICAgICAgICAgICBjb25zdCBpZyA9IGlnbm9yZSgpLmFkZChcIm5vZGVfbW9kdWxlc1wiKS5hZGQoXCIuZ2l0XCIpO1xuXG4gICAgICAgICAgICBpZiAoZnNTeW5jLmV4aXN0c1N5bmMoZ2l0aWdub3JlUGF0aCkpIHtcbiAgICAgICAgICAgICAgY29uc3QgZ2l0aWdub3JlQ29udGVudCA9IGF3YWl0IGZzLnJlYWRGaWxlKGdpdGlnbm9yZVBhdGgsIFwidXRmOFwiKTtcbiAgICAgICAgICAgICAgaWcuYWRkKGdpdGlnbm9yZUNvbnRlbnQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBmaWxlcyA9IGF3YWl0IGdsb2IoW1wiKiovKlwiXSwge1xuICAgICAgICAgICAgICBjd2Q6IHRlbXBsYXRlRGlyLFxuICAgICAgICAgICAgICBkb3Q6IHRydWUsXG4gICAgICAgICAgICAgIG9ubHlGaWxlczogdHJ1ZSxcbiAgICAgICAgICAgICAgaWdub3JlOiBbXCIqKi9ub2RlX21vZHVsZXNcIiwgXCIuZ2l0XCJdLCAvLyBhbHdheXMgaWdub3JlIG5vZGVfbW9kdWxlcyBhbmQgLmdpdFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGNvbnN0IGZpbHRlcmVkRmlsZXMgPSBmaWxlcy5maWx0ZXIoKGZpbGUpID0+ICFpZy5pZ25vcmVzKGZpbGUpKTtcblxuICAgICAgICAgICAgZm9yIChjb25zdCBmaWxlUGF0aCBvZiBmaWx0ZXJlZEZpbGVzKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGZpbGUgPSBhd2FpdCBmcy5yZWFkRmlsZShwYXRoLmpvaW4odGVtcGxhdGVEaXIsIGZpbGVQYXRoKSk7XG4gICAgICAgICAgICAgIGNvbnN0IGlzQmluYXJ5ID0gYXdhaXQgaXNCaW5hcnlGaWxlKGZpbGUpO1xuICAgICAgICAgICAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW2ZpbGUuYnVmZmVyXSwge1xuICAgICAgICAgICAgICAgIHR5cGU6IFwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtXCIsXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoXG4gICAgICAgICAgICAgICAgYHRlbXBsYXRlOiR7cEpzb24ubmFtZX06JHtlbmNvZGVVUklDb21wb25lbnQoZmlsZVBhdGgpfWAsXG4gICAgICAgICAgICAgICAgaXNCaW5hcnkgPyBibG9iIDogYXdhaXQgYmxvYi50ZXh0KCksXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhd2FpdCByZXN0b3JlKCk7XG5cbiAgICAgICAgICAgIC8vIENvbGxlY3QgdGVtcGxhdGUgbWV0YWRhdGFcbiAgICAgICAgICAgIGNvbnN0IHRlbXBsYXRlVXJsID0gbmV3IFVSTChcbiAgICAgICAgICAgICAgYC8ke293bmVyfS8ke3JlcG99L3RlbXBsYXRlLyR7cEpzb24ubmFtZX1gLFxuICAgICAgICAgICAgICBhcGlVcmwsXG4gICAgICAgICAgICApLmhyZWY7XG4gICAgICAgICAgICBvdXRwdXRNZXRhZGF0YS50ZW1wbGF0ZXMucHVzaCh7XG4gICAgICAgICAgICAgIG5hbWU6IHBKc29uLm5hbWUsXG4gICAgICAgICAgICAgIHVybDogdGVtcGxhdGVVcmwsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBub0RlZmF1bHRUZW1wbGF0ZSA9IGFyZ3MudGVtcGxhdGUgPT09IGZhbHNlO1xuXG4gICAgICAgICAgaWYgKCFub0RlZmF1bHRUZW1wbGF0ZSAmJiB0ZW1wbGF0ZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICBjb25zdCBwcm9qZWN0ID0gY3JlYXRlRGVmYXVsdFRlbXBsYXRlKFxuICAgICAgICAgICAgICBPYmplY3QuZnJvbUVudHJpZXMoZGVwcy5lbnRyaWVzKCkpLFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgZm9yIChjb25zdCBmaWxlUGF0aCBvZiBPYmplY3Qua2V5cyhwcm9qZWN0KSkge1xuICAgICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoXG4gICAgICAgICAgICAgICAgYHRlbXBsYXRlOmRlZmF1bHQ6JHtlbmNvZGVVUklDb21wb25lbnQoZmlsZVBhdGgpfWAsXG4gICAgICAgICAgICAgICAgcHJvamVjdFtmaWxlUGF0aF0sXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgcmVzdG9yZU1hcCA9IG5ldyBNYXA8XG4gICAgICAgICAgICBzdHJpbmcsXG4gICAgICAgICAgICBBd2FpdGVkPFJldHVyblR5cGU8dHlwZW9mIHdyaXRlRGVwcz4+XG4gICAgICAgICAgPigpO1xuICAgICAgICAgIGZvciAoY29uc3QgcCBvZiBwYXRocykge1xuICAgICAgICAgICAgY29uc3QgcEpzb25QYXRoID0gcGF0aC5yZXNvbHZlKHAsIFwicGFja2FnZS5qc29uXCIpO1xuICAgICAgICAgICAgY29uc3QgcEpzb25Db250ZW50cyA9IGF3YWl0IHRyeVJlYWRGaWxlKHBKc29uUGF0aCk7XG4gICAgICAgICAgICBjb25zdCBwSnNvbiA9IHBKc29uQ29udGVudHNcbiAgICAgICAgICAgICAgPyBwYXJzZVBhY2thZ2VKc29uKHBKc29uQ29udGVudHMpXG4gICAgICAgICAgICAgIDogbnVsbDtcblxuICAgICAgICAgICAgaWYgKCFwSnNvbiB8fCAhcEpzb25Db250ZW50cykge1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHBKc29uLnByaXZhdGUpIHtcbiAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJlc3RvcmVNYXAuc2V0KFxuICAgICAgICAgICAgICBwLFxuICAgICAgICAgICAgICBhd2FpdCB3cml0ZURlcHMocCwgcEpzb25Db250ZW50cywgcEpzb24sIGRlcHMsIHJlYWxEZXBzKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3Qgc2hhc3VtczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuICAgICAgICAgIGZvciAoY29uc3QgcCBvZiBwYXRocykge1xuICAgICAgICAgICAgY29uc3QgcEpzb25QYXRoID0gcGF0aC5yZXNvbHZlKHAsIFwicGFja2FnZS5qc29uXCIpO1xuICAgICAgICAgICAgY29uc3QgcEpzb24gPSBhd2FpdCByZWFkUGFja2FnZUpzb24ocEpzb25QYXRoKTtcbiAgICAgICAgICAgIGlmICghcEpzb24pIHtcbiAgICAgICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICAgIGBza2lwcGluZyAke3B9IGJlY2F1c2UgdGhlcmUncyBubyBwYWNrYWdlLmpzb24gZmlsZWAsXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBpZiAoIXBKc29uLm5hbWUpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgICBgXCJuYW1lXCIgZmllbGQgaW4gJHtwSnNvblBhdGh9IHNob3VsZCBiZSBkZWZpbmVkYCxcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmIChwSnNvbi5wcml2YXRlKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGBza2lwcGluZyAke3B9IGJlY2F1c2UgdGhlIHBhY2thZ2UgaXMgcHJpdmF0ZWApO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgY29uc3QgeyBmaWxlbmFtZSwgc2hhc3VtIH0gPSBhd2FpdCByZXNvbHZlVGFyYmFsbChcbiAgICAgICAgICAgICAgICBwYWNrTWV0aG9kLFxuICAgICAgICAgICAgICAgIHAsXG4gICAgICAgICAgICAgICAgcEpzb24sXG4gICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgc2hhc3Vtc1twSnNvbi5uYW1lXSA9IHNoYXN1bTtcblxuICAgICAgICAgICAgICBjb25zdCBvdXRwdXRQa2cgPSBvdXRwdXRNZXRhZGF0YS5wYWNrYWdlcy5maW5kKFxuICAgICAgICAgICAgICAgIChwKSA9PiBwLm5hbWUgPT09IHBKc29uLm5hbWUsXG4gICAgICAgICAgICAgICkhO1xuICAgICAgICAgICAgICBvdXRwdXRQa2cuc2hhc3VtID0gc2hhc3VtO1xuXG4gICAgICAgICAgICAgIGNvbnN0IGZpbGVQYXRoID0gcGF0aC5yZXNvbHZlKHAsIGZpbGVuYW1lKTtcbiAgICAgICAgICAgICAgY29uc3QgYnVmZmVyID0gYXdhaXQgZnMucmVhZEZpbGUoZmlsZVBhdGgpO1xuXG4gICAgICAgICAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbYnVmZmVyXSwge1xuICAgICAgICAgICAgICAgIHR5cGU6IFwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtXCIsXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoYHBhY2thZ2U6JHtwSnNvbi5uYW1lfWAsIGJsb2IsIGZpbGVuYW1lKTtcblxuICAgICAgICAgICAgICBhd2FpdCBmcy5ybShmaWxlUGF0aCk7XG4gICAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgICBhd2FpdCByZXN0b3JlTWFwLmdldChwKT8uKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgZm9ybURhdGFQYWNrYWdlc1NpemUgPSBbLi4uZm9ybURhdGEuZW50cmllcygpXS5yZWR1Y2UoXG4gICAgICAgICAgICAocHJldiwgW18sIGVudHJ5XSkgPT4gcHJldiArIGdldEZvcm1FbnRyeVNpemUoZW50cnkpLFxuICAgICAgICAgICAgMCxcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgLy8gbXVsdGlwYXJ0IHVwbG9hZGluZ1xuICAgICAgICAgIGlmIChmb3JtRGF0YVBhY2thZ2VzU2l6ZSA+IDEwMjQgKiAxMDI0ICogOTkpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgW25hbWUsIGVudHJ5XSBvZiBmb3JtRGF0YSkge1xuICAgICAgICAgICAgICBpZiAobmFtZS5zdGFydHNXaXRoKFwicGFja2FnZTpcIikpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWxlID0gZW50cnkgYXMgRmlsZTtcbiAgICAgICAgICAgICAgICBjb25zdCBjaHVua1NpemUgPSAxMDI0ICogMTAyNCAqIDU7XG4gICAgICAgICAgICAgICAgaWYgKGZpbGUuc2l6ZSA8PSBjaHVua1NpemUpIHtcbiAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCB0b3RhbENodW5rcyA9IE1hdGguY2VpbChmaWxlLnNpemUgLyBjaHVua1NpemUpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNyZWF0ZU11bHRpcGFydFJlcyA9IGF3YWl0IGZldGNoKGNyZWF0ZU11bHRpcGFydCwge1xuICAgICAgICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJzYi1rZXlcIjoga2V5LFxuICAgICAgICAgICAgICAgICAgICBcInNiLW5hbWVcIjogbmFtZS5zbGljZShcInBhY2thZ2U6XCIubGVuZ3RoKSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKCFjcmVhdGVNdWx0aXBhcnRSZXMub2spIHtcbiAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYXdhaXQgY3JlYXRlTXVsdGlwYXJ0UmVzLnRleHQoKSk7XG4gICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgeyBrZXk6IHVwbG9hZEtleSwgaWQ6IHVwbG9hZElkIH0gPVxuICAgICAgICAgICAgICAgICAgYXdhaXQgY3JlYXRlTXVsdGlwYXJ0UmVzLmpzb24oKTtcblxuICAgICAgICAgICAgICAgIGludGVyZmFjZSBSMlVwbG9hZGVkUGFydCB7XG4gICAgICAgICAgICAgICAgICBwYXJ0TnVtYmVyOiBudW1iZXI7XG4gICAgICAgICAgICAgICAgICBldGFnOiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHVwbG9hZGVkUGFydHM6IFIyVXBsb2FkZWRQYXJ0W10gPSBbXTtcblxuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdG90YWxDaHVua3M7IGkrKykge1xuICAgICAgICAgICAgICAgICAgY29uc3Qgc3RhcnQgPSBpICogY2h1bmtTaXplO1xuICAgICAgICAgICAgICAgICAgY29uc3QgZW5kID0gTWF0aC5taW4oZmlsZS5zaXplLCBzdGFydCArIGNodW5rU2l6ZSk7XG4gICAgICAgICAgICAgICAgICBjb25zdCBjaHVuayA9IGZpbGUuc2xpY2Uoc3RhcnQsIGVuZCk7XG5cbiAgICAgICAgICAgICAgICAgIGNvbnN0IHVwbG9hZE11bHRpcGFydFJlcyA9IGF3YWl0IGZldGNoKHVwbG9hZE11bHRpcGFydCwge1xuICAgICAgICAgICAgICAgICAgICBtZXRob2Q6IFwiUFVUXCIsXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICBrZXk6IHVwbG9hZEtleSxcbiAgICAgICAgICAgICAgICAgICAgICBpZDogdXBsb2FkSWQsXG4gICAgICAgICAgICAgICAgICAgICAgXCJwYXJ0LW51bWJlclwiOiBgJHtpICsgMX1gLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBib2R5OiBjaHVuayxcbiAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICBpZiAoIXVwbG9hZE11bHRpcGFydFJlcy5vaykge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgIGBFcnJvciB1cGxvYWRpbmcgcGFydCAke2kgKyAxfTogJHthd2FpdCB1cGxvYWRNdWx0aXBhcnRSZXMudGV4dCgpfWAsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgY29uc3QgeyBwYXJ0IH0gPSBhd2FpdCB1cGxvYWRNdWx0aXBhcnRSZXMuanNvbigpO1xuICAgICAgICAgICAgICAgICAgdXBsb2FkZWRQYXJ0cy5wdXNoKHBhcnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBjb21wbGV0ZU11bHRpcGFydFJlcyA9IGF3YWl0IGZldGNoKGNvbXBsZXRlTXVsdGlwYXJ0LCB7XG4gICAgICAgICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICBrZXk6IHVwbG9hZEtleSxcbiAgICAgICAgICAgICAgICAgICAgaWQ6IHVwbG9hZElkLFxuICAgICAgICAgICAgICAgICAgICBcInVwbG9hZGVkLXBhcnRzXCI6IEpTT04uc3RyaW5naWZ5KHVwbG9hZGVkUGFydHMpLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAoIWNvbXBsZXRlTXVsdGlwYXJ0UmVzLm9rKSB7XG4gICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgICAgICBgRXJyb3IgY29tcGxldGluZyAke2tleX06ICR7YXdhaXQgY29tcGxldGVNdWx0aXBhcnRSZXMudGV4dCgpfWAsXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHsga2V5OiBjb21wbGV0aW9uS2V5IH0gPVxuICAgICAgICAgICAgICAgICAgYXdhaXQgY29tcGxldGVNdWx0aXBhcnRSZXMuanNvbigpO1xuXG4gICAgICAgICAgICAgICAgZm9ybURhdGEuc2V0KG5hbWUsIGBvYmplY3Q6JHtjb21wbGV0aW9uS2V5fWApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2gocHVibGlzaFVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgXCJzYi1jb21tZW50XCI6IGNvbW1lbnQsXG4gICAgICAgICAgICAgIFwic2ItY29tcGFjdFwiOiBgJHtpc0NvbXBhY3R9YCxcbiAgICAgICAgICAgICAgXCJzYi1rZXlcIjoga2V5LFxuICAgICAgICAgICAgICBcInNiLXNoYXN1bXNcIjogSlNPTi5zdHJpbmdpZnkoc2hhc3VtcyksXG4gICAgICAgICAgICAgIFwic2ItcnVuLWlkXCI6IEdJVEhVQl9SVU5fSUQsXG4gICAgICAgICAgICAgIFwic2ItYmluXCI6IGAke2lzQmluYXJ5QXBwbGljYXRpb259YCxcbiAgICAgICAgICAgICAgXCJzYi1wYWNrYWdlLW1hbmFnZXJcIjogc2VsZWN0ZWRQYWNrYWdlTWFuYWdlcixcbiAgICAgICAgICAgICAgXCJzYi1vbmx5LXRlbXBsYXRlc1wiOiBgJHtpc09ubHlUZW1wbGF0ZXN9YCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBib2R5OiBmb3JtRGF0YSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBjb25zdCBsYXRlclJlcyA9IGF3YWl0IHJlcy5jbG9uZSgpLmpzb24oKTtcbiAgICAgICAgICBhc3NlcnQuZXF1YWwoXG4gICAgICAgICAgICByZXMuc3RhdHVzLFxuICAgICAgICAgICAgMjAwLFxuICAgICAgICAgICAgYHB1Ymxpc2hpbmcgZmFpbGVkOiAke2F3YWl0IHJlcy50ZXh0KCl9YCxcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgY29uc29sZS53YXJuKFwiXFxuXCIpO1xuICAgICAgICAgIGNvbnNvbGUud2FybihcIlx1MjZBMVx1RkUwRiBZb3VyIG5wbSBwYWNrYWdlcyBhcmUgcHVibGlzaGVkLlxcblwiKTtcblxuICAgICAgICAgIGNvbnN0IHBhY2thZ2VMb2dzID0gWy4uLmZvcm1EYXRhLmtleXMoKV1cbiAgICAgICAgICAgIC5maWx0ZXIoKGspID0+IGsuc3RhcnRzV2l0aChcInBhY2thZ2U6XCIpKVxuICAgICAgICAgICAgLm1hcCgobmFtZSwgaSkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBwYWNrYWdlTmFtZSA9IG5hbWUuc2xpY2UoXCJwYWNrYWdlOlwiLmxlbmd0aCk7XG4gICAgICAgICAgICAgIGNvbnN0IHVybCA9IG5ldyBVUkwobGF0ZXJSZXMudXJsc1tpXSk7XG4gICAgICAgICAgICAgIGNvbnN0IHB1YmxpbnRVcmwgPSBuZXcgVVJMKFxuICAgICAgICAgICAgICAgIGAvcGtnLnByLm5ldyR7dXJsLnBhdGhuYW1lfWAsXG4gICAgICAgICAgICAgICAgXCJodHRwczovL3B1YmxpbnQuZGV2XCIsXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIHJldHVybiBgJHtwYWNrYWdlTmFtZX06XG4tIHNoYTogJHtzaGFzdW1zW3BhY2thZ2VOYW1lXX1cbi0gcHVibGludDogJHtwdWJsaW50VXJsfVxuLSBucG06IG5wbSBpICR7dXJsfWA7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmpvaW4oXCJcXG5cXG5cIik7XG5cbiAgICAgICAgICBjb25zb2xlLndhcm4ocGFja2FnZUxvZ3MpO1xuXG4gICAgICAgICAgY29uc3Qgb3V0cHV0ID0gSlNPTi5zdHJpbmdpZnkob3V0cHV0TWV0YWRhdGEsIG51bGwsIDIpO1xuICAgICAgICAgIGlmIChwcmludEpzb24pIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKG91dHB1dCk7IC8vIExvZyBvdXRwdXQgZm9yIHBpcGluZ1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoc2F2ZUpzb24pIHtcbiAgICAgICAgICAgIGF3YWl0IGZzLndyaXRlRmlsZShqc29uRmlsZVBhdGgsIG91dHB1dCk7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oYG1ldGFkYXRhIHdyaXR0ZW4gdG8gJHtqc29uRmlsZVBhdGh9YCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9LFxuICAgIGxpbms6ICgpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG1ldGE6IHt9LFxuICAgICAgICBydW46ICgpID0+IHtcbiAgICAgICAgICAvLyBub29wXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH0sXG4gIH0sXG59KTtcblxucnVuTWFpbihtYWluKVxuICAudGhlbigoKSA9PiBwcm9jZXNzLmV4aXQoMCkpXG4gIC5jYXRjaCgoKSA9PiBwcm9jZXNzLmV4aXQoMSkpO1xuXG50eXBlIFBhY2tNZXRob2QgPSBcIm5wbVwiIHwgXCJwbnBtXCIgfCBcInlhcm5cIjtcblxuYXN5bmMgZnVuY3Rpb24gcmVzb2x2ZVRhcmJhbGwocG06IFBhY2tNZXRob2QsIHA6IHN0cmluZywgcEpzb246IFBhY2thZ2VKc29uKSB7XG4gIGxldCBjbWQgPSBgJHtwbX0gcGFja2A7XG4gIGxldCBmaWxlbmFtZSA9IGAke3BKc29uLm5hbWUhLnJlcGxhY2UoXCIvXCIsIFwiLVwiKX0tJHtwSnNvbi52ZXJzaW9ufS50Z3pgO1xuICBpZiAocG0gPT09IFwieWFyblwiKSB7XG4gICAgY21kICs9IGAgLS1maWxlbmFtZSAke2ZpbGVuYW1lfWA7XG4gIH1cbiAgY29uc3QgeyBzdGRvdXQgfSA9IGF3YWl0IGV6U3Bhd24uYXN5bmMoY21kLCB7XG4gICAgc3RkaW86IFwib3ZlcmxhcHBlZFwiLFxuICAgIGN3ZDogcCxcbiAgfSk7XG4gIGNvbnN0IGxpbmVzID0gc3Rkb3V0LnNwbGl0KFwiXFxuXCIpLmZpbHRlcihCb29sZWFuKTtcblxuICBpZiAocG0gIT09IFwieWFyblwiKSB7XG4gICAgZmlsZW5hbWUgPSBsaW5lc1tsaW5lcy5sZW5ndGggLSAxXS50cmltKCk7XG4gIH1cblxuICBjb25zdCBzaGFzdW0gPSBjcmVhdGVIYXNoKFwic2hhMVwiKVxuICAgIC51cGRhdGUoYXdhaXQgZnMucmVhZEZpbGUocGF0aC5yZXNvbHZlKHAsIGZpbGVuYW1lKSkpXG4gICAgLmRpZ2VzdChcImhleFwiKTtcblxuICByZXR1cm4geyBmaWxlbmFtZSwgc2hhc3VtIH07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHdyaXRlRGVwcyhcbiAgcDogc3RyaW5nLFxuICBwSnNvbkNvbnRlbnRzOiBzdHJpbmcsXG4gIHBKc29uOiBQYWNrYWdlSnNvbixcbiAgZGVwczogTWFwPHN0cmluZywgc3RyaW5nPixcbiAgcmVhbERlcHM6IE1hcDxzdHJpbmcsIHN0cmluZz4gfCBudWxsLFxuKSB7XG4gIGNvbnN0IHBKc29uUGF0aCA9IHBhdGgucmVzb2x2ZShwLCBcInBhY2thZ2UuanNvblwiKTtcblxuICBoaWphY2tEZXBzKGRlcHMsIHBKc29uLmRlcGVuZGVuY2llcyk7XG4gIGhpamFja0RlcHMoZGVwcywgcEpzb24uZGV2RGVwZW5kZW5jaWVzKTtcbiAgaGlqYWNrRGVwcyhkZXBzLCBwSnNvbi5vcHRpb25hbERlcGVuZGVuY2llcyk7XG5cbiAgaWYgKHJlYWxEZXBzKSB7XG4gICAgaGlqYWNrRGVwcyhyZWFsRGVwcywgcEpzb24ucGVlckRlcGVuZGVuY2llcyk7XG4gIH1cblxuICBhd2FpdCB3cml0ZVBhY2thZ2VKU09OKHBKc29uUGF0aCwgcEpzb24pO1xuXG4gIHJldHVybiAoKSA9PiBmcy53cml0ZUZpbGUocEpzb25QYXRoLCBwSnNvbkNvbnRlbnRzKTtcbn1cblxuZnVuY3Rpb24gaGlqYWNrRGVwcyhcbiAgbmV3RGVwczogTWFwPHN0cmluZywgc3RyaW5nPixcbiAgb2xkRGVwcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4pIHtcbiAgaWYgKCFvbGREZXBzKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGZvciAoY29uc3QgW25ld0RlcCwgdXJsXSBvZiBuZXdEZXBzKSB7XG4gICAgaWYgKG5ld0RlcCBpbiBvbGREZXBzKSB7XG4gICAgICBvbGREZXBzW25ld0RlcF0gPSB1cmw7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGdldEZvcm1FbnRyeVNpemUoZW50cnk6IEZvcm1EYXRhRW50cnlWYWx1ZSkge1xuICBpZiAodHlwZW9mIGVudHJ5ID09PSBcInN0cmluZ1wiKSB7XG4gICAgcmV0dXJuIGVudHJ5Lmxlbmd0aDtcbiAgfVxuICByZXR1cm4gZW50cnkuc2l6ZTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gdmVyaWZ5Q29tcGFjdE1vZGUocGFja2FnZU5hbWU6IHN0cmluZykge1xuICBsZXQgbWFuaWZlc3Q6IFBhY2thZ2VNYW5pZmVzdDtcblxuICB0cnkge1xuICAgIG1hbmlmZXN0ID0gYXdhaXQgZ2V0UGFja2FnZU1hbmlmZXN0KHBhY2thZ2VOYW1lKTtcbiAgfSBjYXRjaCB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYHBrZy1wci1uZXcgY2Fubm90IHJlc29sdmUgJHtwYWNrYWdlTmFtZX0gZnJvbSBucG0uIC0tY29tcGFjdCBmbGFnIGRlcGVuZHMgb24gdGhlIHBhY2thZ2UgYmVpbmcgYXZhaWxhYmxlIGluIG5wbS5cbk1ha2Ugc3VyZSB0byBoYXZlIHlvdXIgcGFja2FnZSBvbiBucG0gZmlyc3QuYCxcbiAgICApO1xuICB9XG5cbiAgY29uc3QgaW5zdHJ1Y3Rpb24gPSBgTWFrZSBzdXJlIHRvIGNvbmZpZ3VyZSB0aGUgJ3JlcG9zaXRvcnknIC8gJ3JlcG9zaXRvcnkudXJsJyBmaWVsZCBpbiBpdHMgcGFja2FnZS5qc29uIHByb3Blcmx5LlxuU2VlIGh0dHBzOi8vZG9jcy5ucG1qcy5jb20vY2xpL3YxMC9jb25maWd1cmluZy1ucG0vcGFja2FnZS1qc29uI3JlcG9zaXRvcnkgZm9yIGRldGFpbHMuYDtcblxuICBjb25zdCByZXBvc2l0b3J5ID0gZXh0cmFjdFJlcG9zaXRvcnkobWFuaWZlc3QpO1xuICBpZiAoIXJlcG9zaXRvcnkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgcGtnLXByLW5ldyBjYW5ub3QgZXh0cmFjdCB0aGUgcmVwb3NpdG9yeSBsaW5rIGZyb20gdGhlICR7cGFja2FnZU5hbWV9IG1hbmlmZXN0LiAtLWNvbXBhY3QgZmxhZyByZXF1aXJlcyB0aGUgbGluayB0byBiZSBwcmVzZW50LlxuJHtpbnN0cnVjdGlvbn1gLFxuICAgICk7XG4gIH1cblxuICBjb25zdCBtYXRjaCA9IGV4dHJhY3RPd25lckFuZFJlcG8ocmVwb3NpdG9yeSk7XG4gIGlmICghbWF0Y2gpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgcGtnLXByLW5ldyBjYW5ub3QgZXh0cmFjdCB0aGUgb3duZXIgYW5kIHJlcG8gbmFtZXMgZnJvbSB0aGUgJHtwYWNrYWdlTmFtZX0gcmVwb3NpdG9yeSBsaW5rOiAke3JlcG9zaXRvcnl9LiAtLWNvbXBhY3QgZmxhZyByZXF1aXJlcyB0aGVzZSBuYW1lcy5cbiR7aW5zdHJ1Y3Rpb259YCxcbiAgICApO1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHRyeVJlYWRGaWxlKHA6IHN0cmluZykge1xuICB0cnkge1xuICAgIHJldHVybiBhd2FpdCBmcy5yZWFkRmlsZShwLCBcInV0ZjhcIik7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJlYWRQYWNrYWdlSnNvbihwOiBzdHJpbmcpIHtcbiAgY29uc3QgY29udGVudHMgPSBhd2FpdCB0cnlSZWFkRmlsZShwKTtcbiAgaWYgKGNvbnRlbnRzID09PSBudWxsKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgdHJ5IHtcbiAgICByZXR1cm4gcGFyc2VQYWNrYWdlSnNvbihjb250ZW50cyk7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbmZ1bmN0aW9uIHBhcnNlUGFja2FnZUpzb24oY29udGVudHM6IHN0cmluZykge1xuICB0cnkge1xuICAgIHJldHVybiBKU09OLnBhcnNlKGNvbnRlbnRzKSBhcyBQYWNrYWdlSnNvbjtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cbiIsICJjb25zdCBkZWZhdWx0cyA9IE9iamVjdC5mcmVlemUoe1xuICBpZ25vcmVVbmtub3duOiBmYWxzZSxcbiAgcmVzcGVjdFR5cGU6IGZhbHNlLFxuICByZXNwZWN0RnVuY3Rpb25OYW1lczogZmFsc2UsXG4gIHJlc3BlY3RGdW5jdGlvblByb3BlcnRpZXM6IGZhbHNlLFxuICB1bm9yZGVyZWRPYmplY3RzOiB0cnVlLFxuICB1bm9yZGVyZWRBcnJheXM6IGZhbHNlLFxuICB1bm9yZGVyZWRTZXRzOiBmYWxzZSxcbiAgZXhjbHVkZUtleXM6IHZvaWQgMCxcbiAgZXhjbHVkZVZhbHVlczogdm9pZCAwLFxuICByZXBsYWNlcjogdm9pZCAwXG59KTtcbmZ1bmN0aW9uIG9iamVjdEhhc2gob2JqZWN0LCBvcHRpb25zKSB7XG4gIGlmIChvcHRpb25zKSB7XG4gICAgb3B0aW9ucyA9IHsgLi4uZGVmYXVsdHMsIC4uLm9wdGlvbnMgfTtcbiAgfSBlbHNlIHtcbiAgICBvcHRpb25zID0gZGVmYXVsdHM7XG4gIH1cbiAgY29uc3QgaGFzaGVyID0gY3JlYXRlSGFzaGVyKG9wdGlvbnMpO1xuICBoYXNoZXIuZGlzcGF0Y2gob2JqZWN0KTtcbiAgcmV0dXJuIGhhc2hlci50b1N0cmluZygpO1xufVxuY29uc3QgZGVmYXVsdFByb3RvdHlwZXNLZXlzID0gT2JqZWN0LmZyZWV6ZShbXG4gIFwicHJvdG90eXBlXCIsXG4gIFwiX19wcm90b19fXCIsXG4gIFwiY29uc3RydWN0b3JcIlxuXSk7XG5mdW5jdGlvbiBjcmVhdGVIYXNoZXIob3B0aW9ucykge1xuICBsZXQgYnVmZiA9IFwiXCI7XG4gIGxldCBjb250ZXh0ID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTtcbiAgY29uc3Qgd3JpdGUgPSAoc3RyKSA9PiB7XG4gICAgYnVmZiArPSBzdHI7XG4gIH07XG4gIHJldHVybiB7XG4gICAgdG9TdHJpbmcoKSB7XG4gICAgICByZXR1cm4gYnVmZjtcbiAgICB9LFxuICAgIGdldENvbnRleHQoKSB7XG4gICAgICByZXR1cm4gY29udGV4dDtcbiAgICB9LFxuICAgIGRpc3BhdGNoKHZhbHVlKSB7XG4gICAgICBpZiAob3B0aW9ucy5yZXBsYWNlcikge1xuICAgICAgICB2YWx1ZSA9IG9wdGlvbnMucmVwbGFjZXIodmFsdWUpO1xuICAgICAgfVxuICAgICAgY29uc3QgdHlwZSA9IHZhbHVlID09PSBudWxsID8gXCJudWxsXCIgOiB0eXBlb2YgdmFsdWU7XG4gICAgICByZXR1cm4gdGhpc1t0eXBlXSh2YWx1ZSk7XG4gICAgfSxcbiAgICBvYmplY3Qob2JqZWN0KSB7XG4gICAgICBpZiAob2JqZWN0ICYmIHR5cGVvZiBvYmplY3QudG9KU09OID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub2JqZWN0KG9iamVjdC50b0pTT04oKSk7XG4gICAgICB9XG4gICAgICBjb25zdCBvYmpTdHJpbmcgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqZWN0KTtcbiAgICAgIGxldCBvYmpUeXBlID0gXCJcIjtcbiAgICAgIGNvbnN0IG9iamVjdExlbmd0aCA9IG9ialN0cmluZy5sZW5ndGg7XG4gICAgICBpZiAob2JqZWN0TGVuZ3RoIDwgMTApIHtcbiAgICAgICAgb2JqVHlwZSA9IFwidW5rbm93bjpbXCIgKyBvYmpTdHJpbmcgKyBcIl1cIjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG9ialR5cGUgPSBvYmpTdHJpbmcuc2xpY2UoOCwgb2JqZWN0TGVuZ3RoIC0gMSk7XG4gICAgICB9XG4gICAgICBvYmpUeXBlID0gb2JqVHlwZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgbGV0IG9iamVjdE51bWJlciA9IG51bGw7XG4gICAgICBpZiAoKG9iamVjdE51bWJlciA9IGNvbnRleHQuZ2V0KG9iamVjdCkpID09PSB2b2lkIDApIHtcbiAgICAgICAgY29udGV4dC5zZXQob2JqZWN0LCBjb250ZXh0LnNpemUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2goXCJbQ0lSQ1VMQVI6XCIgKyBvYmplY3ROdW1iZXIgKyBcIl1cIik7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIEJ1ZmZlciAhPT0gXCJ1bmRlZmluZWRcIiAmJiBCdWZmZXIuaXNCdWZmZXIgJiYgQnVmZmVyLmlzQnVmZmVyKG9iamVjdCkpIHtcbiAgICAgICAgd3JpdGUoXCJidWZmZXI6XCIpO1xuICAgICAgICByZXR1cm4gd3JpdGUob2JqZWN0LnRvU3RyaW5nKFwidXRmOFwiKSk7XG4gICAgICB9XG4gICAgICBpZiAob2JqVHlwZSAhPT0gXCJvYmplY3RcIiAmJiBvYmpUeXBlICE9PSBcImZ1bmN0aW9uXCIgJiYgb2JqVHlwZSAhPT0gXCJhc3luY2Z1bmN0aW9uXCIpIHtcbiAgICAgICAgaWYgKHRoaXNbb2JqVHlwZV0pIHtcbiAgICAgICAgICB0aGlzW29ialR5cGVdKG9iamVjdCk7XG4gICAgICAgIH0gZWxzZSBpZiAoIW9wdGlvbnMuaWdub3JlVW5rbm93bikge1xuICAgICAgICAgIHRoaXMudW5rb3duKG9iamVjdCwgb2JqVHlwZSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxldCBrZXlzID0gT2JqZWN0LmtleXMob2JqZWN0KTtcbiAgICAgICAgaWYgKG9wdGlvbnMudW5vcmRlcmVkT2JqZWN0cykge1xuICAgICAgICAgIGtleXMgPSBrZXlzLnNvcnQoKTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgZXh0cmFLZXlzID0gW107XG4gICAgICAgIGlmIChvcHRpb25zLnJlc3BlY3RUeXBlICE9PSBmYWxzZSAmJiAhaXNOYXRpdmVGdW5jdGlvbihvYmplY3QpKSB7XG4gICAgICAgICAgZXh0cmFLZXlzID0gZGVmYXVsdFByb3RvdHlwZXNLZXlzO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zLmV4Y2x1ZGVLZXlzKSB7XG4gICAgICAgICAga2V5cyA9IGtleXMuZmlsdGVyKChrZXkpID0+IHtcbiAgICAgICAgICAgIHJldHVybiAhb3B0aW9ucy5leGNsdWRlS2V5cyhrZXkpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIGV4dHJhS2V5cyA9IGV4dHJhS2V5cy5maWx0ZXIoKGtleSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuICFvcHRpb25zLmV4Y2x1ZGVLZXlzKGtleSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgd3JpdGUoXCJvYmplY3Q6XCIgKyAoa2V5cy5sZW5ndGggKyBleHRyYUtleXMubGVuZ3RoKSArIFwiOlwiKTtcbiAgICAgICAgY29uc3QgZGlzcGF0Y2hGb3JLZXkgPSAoa2V5KSA9PiB7XG4gICAgICAgICAgdGhpcy5kaXNwYXRjaChrZXkpO1xuICAgICAgICAgIHdyaXRlKFwiOlwiKTtcbiAgICAgICAgICBpZiAoIW9wdGlvbnMuZXhjbHVkZVZhbHVlcykge1xuICAgICAgICAgICAgdGhpcy5kaXNwYXRjaChvYmplY3Rba2V5XSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHdyaXRlKFwiLFwiKTtcbiAgICAgICAgfTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgICAgICAgIGRpc3BhdGNoRm9yS2V5KGtleSk7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgZXh0cmFLZXlzKSB7XG4gICAgICAgICAgZGlzcGF0Y2hGb3JLZXkoa2V5KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgYXJyYXkoYXJyLCB1bm9yZGVyZWQpIHtcbiAgICAgIHVub3JkZXJlZCA9IHVub3JkZXJlZCA9PT0gdm9pZCAwID8gb3B0aW9ucy51bm9yZGVyZWRBcnJheXMgIT09IGZhbHNlIDogdW5vcmRlcmVkO1xuICAgICAgd3JpdGUoXCJhcnJheTpcIiArIGFyci5sZW5ndGggKyBcIjpcIik7XG4gICAgICBpZiAoIXVub3JkZXJlZCB8fCBhcnIubGVuZ3RoIDw9IDEpIHtcbiAgICAgICAgZm9yIChjb25zdCBlbnRyeSBvZiBhcnIpIHtcbiAgICAgICAgICB0aGlzLmRpc3BhdGNoKGVudHJ5KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCBjb250ZXh0QWRkaXRpb25zID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTtcbiAgICAgIGNvbnN0IGVudHJpZXMgPSBhcnIubWFwKChlbnRyeSkgPT4ge1xuICAgICAgICBjb25zdCBoYXNoZXIgPSBjcmVhdGVIYXNoZXIob3B0aW9ucyk7XG4gICAgICAgIGhhc2hlci5kaXNwYXRjaChlbnRyeSk7XG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIGhhc2hlci5nZXRDb250ZXh0KCkpIHtcbiAgICAgICAgICBjb250ZXh0QWRkaXRpb25zLnNldChrZXksIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaGFzaGVyLnRvU3RyaW5nKCk7XG4gICAgICB9KTtcbiAgICAgIGNvbnRleHQgPSBjb250ZXh0QWRkaXRpb25zO1xuICAgICAgZW50cmllcy5zb3J0KCk7XG4gICAgICByZXR1cm4gdGhpcy5hcnJheShlbnRyaWVzLCBmYWxzZSk7XG4gICAgfSxcbiAgICBkYXRlKGRhdGUpIHtcbiAgICAgIHJldHVybiB3cml0ZShcImRhdGU6XCIgKyBkYXRlLnRvSlNPTigpKTtcbiAgICB9LFxuICAgIHN5bWJvbChzeW0pIHtcbiAgICAgIHJldHVybiB3cml0ZShcInN5bWJvbDpcIiArIHN5bS50b1N0cmluZygpKTtcbiAgICB9LFxuICAgIHVua293bih2YWx1ZSwgdHlwZSkge1xuICAgICAgd3JpdGUodHlwZSk7XG4gICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHdyaXRlKFwiOlwiKTtcbiAgICAgIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUuZW50cmllcyA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFycmF5KFxuICAgICAgICAgIEFycmF5LmZyb20odmFsdWUuZW50cmllcygpKSxcbiAgICAgICAgICB0cnVlXG4gICAgICAgICAgLyogb3JkZXJlZCAqL1xuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sXG4gICAgZXJyb3IoZXJyKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJlcnJvcjpcIiArIGVyci50b1N0cmluZygpKTtcbiAgICB9LFxuICAgIGJvb2xlYW4oYm9vbCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwiYm9vbDpcIiArIGJvb2wpO1xuICAgIH0sXG4gICAgc3RyaW5nKHN0cmluZykge1xuICAgICAgd3JpdGUoXCJzdHJpbmc6XCIgKyBzdHJpbmcubGVuZ3RoICsgXCI6XCIpO1xuICAgICAgd3JpdGUoc3RyaW5nKTtcbiAgICB9LFxuICAgIGZ1bmN0aW9uKGZuKSB7XG4gICAgICB3cml0ZShcImZuOlwiKTtcbiAgICAgIGlmIChpc05hdGl2ZUZ1bmN0aW9uKGZuKSkge1xuICAgICAgICB0aGlzLmRpc3BhdGNoKFwiW25hdGl2ZV1cIik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmRpc3BhdGNoKGZuLnRvU3RyaW5nKCkpO1xuICAgICAgfVxuICAgICAgaWYgKG9wdGlvbnMucmVzcGVjdEZ1bmN0aW9uTmFtZXMgIT09IGZhbHNlKSB7XG4gICAgICAgIHRoaXMuZGlzcGF0Y2goXCJmdW5jdGlvbi1uYW1lOlwiICsgU3RyaW5nKGZuLm5hbWUpKTtcbiAgICAgIH1cbiAgICAgIGlmIChvcHRpb25zLnJlc3BlY3RGdW5jdGlvblByb3BlcnRpZXMpIHtcbiAgICAgICAgdGhpcy5vYmplY3QoZm4pO1xuICAgICAgfVxuICAgIH0sXG4gICAgbnVtYmVyKG51bWJlcikge1xuICAgICAgcmV0dXJuIHdyaXRlKFwibnVtYmVyOlwiICsgbnVtYmVyKTtcbiAgICB9LFxuICAgIHhtbCh4bWwpIHtcbiAgICAgIHJldHVybiB3cml0ZShcInhtbDpcIiArIHhtbC50b1N0cmluZygpKTtcbiAgICB9LFxuICAgIG51bGwoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJOdWxsXCIpO1xuICAgIH0sXG4gICAgdW5kZWZpbmVkKCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwiVW5kZWZpbmVkXCIpO1xuICAgIH0sXG4gICAgcmVnZXhwKHJlZ2V4KSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJyZWdleDpcIiArIHJlZ2V4LnRvU3RyaW5nKCkpO1xuICAgIH0sXG4gICAgdWludDhhcnJheShhcnIpIHtcbiAgICAgIHdyaXRlKFwidWludDhhcnJheTpcIik7XG4gICAgICByZXR1cm4gdGhpcy5kaXNwYXRjaChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcnIpKTtcbiAgICB9LFxuICAgIHVpbnQ4Y2xhbXBlZGFycmF5KGFycikge1xuICAgICAgd3JpdGUoXCJ1aW50OGNsYW1wZWRhcnJheTpcIik7XG4gICAgICByZXR1cm4gdGhpcy5kaXNwYXRjaChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcnIpKTtcbiAgICB9LFxuICAgIGludDhhcnJheShhcnIpIHtcbiAgICAgIHdyaXRlKFwiaW50OGFycmF5OlwiKTtcbiAgICAgIHJldHVybiB0aGlzLmRpc3BhdGNoKEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFycikpO1xuICAgIH0sXG4gICAgdWludDE2YXJyYXkoYXJyKSB7XG4gICAgICB3cml0ZShcInVpbnQxNmFycmF5OlwiKTtcbiAgICAgIHJldHVybiB0aGlzLmRpc3BhdGNoKEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFycikpO1xuICAgIH0sXG4gICAgaW50MTZhcnJheShhcnIpIHtcbiAgICAgIHdyaXRlKFwiaW50MTZhcnJheTpcIik7XG4gICAgICByZXR1cm4gdGhpcy5kaXNwYXRjaChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcnIpKTtcbiAgICB9LFxuICAgIHVpbnQzMmFycmF5KGFycikge1xuICAgICAgd3JpdGUoXCJ1aW50MzJhcnJheTpcIik7XG4gICAgICByZXR1cm4gdGhpcy5kaXNwYXRjaChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcnIpKTtcbiAgICB9LFxuICAgIGludDMyYXJyYXkoYXJyKSB7XG4gICAgICB3cml0ZShcImludDMyYXJyYXk6XCIpO1xuICAgICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2goQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJyKSk7XG4gICAgfSxcbiAgICBmbG9hdDMyYXJyYXkoYXJyKSB7XG4gICAgICB3cml0ZShcImZsb2F0MzJhcnJheTpcIik7XG4gICAgICByZXR1cm4gdGhpcy5kaXNwYXRjaChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcnIpKTtcbiAgICB9LFxuICAgIGZsb2F0NjRhcnJheShhcnIpIHtcbiAgICAgIHdyaXRlKFwiZmxvYXQ2NGFycmF5OlwiKTtcbiAgICAgIHJldHVybiB0aGlzLmRpc3BhdGNoKEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFycikpO1xuICAgIH0sXG4gICAgYXJyYXlidWZmZXIoYXJyKSB7XG4gICAgICB3cml0ZShcImFycmF5YnVmZmVyOlwiKTtcbiAgICAgIHJldHVybiB0aGlzLmRpc3BhdGNoKG5ldyBVaW50OEFycmF5KGFycikpO1xuICAgIH0sXG4gICAgdXJsKHVybCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwidXJsOlwiICsgdXJsLnRvU3RyaW5nKCkpO1xuICAgIH0sXG4gICAgbWFwKG1hcCkge1xuICAgICAgd3JpdGUoXCJtYXA6XCIpO1xuICAgICAgY29uc3QgYXJyID0gWy4uLm1hcF07XG4gICAgICByZXR1cm4gdGhpcy5hcnJheShhcnIsIG9wdGlvbnMudW5vcmRlcmVkU2V0cyAhPT0gZmFsc2UpO1xuICAgIH0sXG4gICAgc2V0KHNldCkge1xuICAgICAgd3JpdGUoXCJzZXQ6XCIpO1xuICAgICAgY29uc3QgYXJyID0gWy4uLnNldF07XG4gICAgICByZXR1cm4gdGhpcy5hcnJheShhcnIsIG9wdGlvbnMudW5vcmRlcmVkU2V0cyAhPT0gZmFsc2UpO1xuICAgIH0sXG4gICAgZmlsZShmaWxlKSB7XG4gICAgICB3cml0ZShcImZpbGU6XCIpO1xuICAgICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2goW2ZpbGUubmFtZSwgZmlsZS5zaXplLCBmaWxlLnR5cGUsIGZpbGUubGFzdE1vZGZpZWRdKTtcbiAgICB9LFxuICAgIGJsb2IoKSB7XG4gICAgICBpZiAob3B0aW9ucy5pZ25vcmVVbmtub3duKSB7XG4gICAgICAgIHJldHVybiB3cml0ZShcIltibG9iXVwiKTtcbiAgICAgIH1cbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0hhc2hpbmcgQmxvYiBvYmplY3RzIGlzIGN1cnJlbnRseSBub3Qgc3VwcG9ydGVkXFxuVXNlIFwib3B0aW9ucy5yZXBsYWNlclwiIG9yIFwib3B0aW9ucy5pZ25vcmVVbmtub3duXCJcXG4nXG4gICAgICApO1xuICAgIH0sXG4gICAgZG9td2luZG93KCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwiZG9td2luZG93XCIpO1xuICAgIH0sXG4gICAgYmlnaW50KG51bWJlcikge1xuICAgICAgcmV0dXJuIHdyaXRlKFwiYmlnaW50OlwiICsgbnVtYmVyLnRvU3RyaW5nKCkpO1xuICAgIH0sXG4gICAgLyogTm9kZS5qcyBzdGFuZGFyZCBuYXRpdmUgb2JqZWN0cyAqL1xuICAgIHByb2Nlc3MoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJwcm9jZXNzXCIpO1xuICAgIH0sXG4gICAgdGltZXIoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJ0aW1lclwiKTtcbiAgICB9LFxuICAgIHBpcGUoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJwaXBlXCIpO1xuICAgIH0sXG4gICAgdGNwKCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwidGNwXCIpO1xuICAgIH0sXG4gICAgdWRwKCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwidWRwXCIpO1xuICAgIH0sXG4gICAgdHR5KCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwidHR5XCIpO1xuICAgIH0sXG4gICAgc3RhdHdhdGNoZXIoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJzdGF0d2F0Y2hlclwiKTtcbiAgICB9LFxuICAgIHNlY3VyZWNvbnRleHQoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJzZWN1cmVjb250ZXh0XCIpO1xuICAgIH0sXG4gICAgY29ubmVjdGlvbigpIHtcbiAgICAgIHJldHVybiB3cml0ZShcImNvbm5lY3Rpb25cIik7XG4gICAgfSxcbiAgICB6bGliKCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwiemxpYlwiKTtcbiAgICB9LFxuICAgIGNvbnRleHQoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJjb250ZXh0XCIpO1xuICAgIH0sXG4gICAgbm9kZXNjcmlwdCgpIHtcbiAgICAgIHJldHVybiB3cml0ZShcIm5vZGVzY3JpcHRcIik7XG4gICAgfSxcbiAgICBodHRwcGFyc2VyKCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwiaHR0cHBhcnNlclwiKTtcbiAgICB9LFxuICAgIGRhdGF2aWV3KCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwiZGF0YXZpZXdcIik7XG4gICAgfSxcbiAgICBzaWduYWwoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJzaWduYWxcIik7XG4gICAgfSxcbiAgICBmc2V2ZW50KCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwiZnNldmVudFwiKTtcbiAgICB9LFxuICAgIHRsc3dyYXAoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJ0bHN3cmFwXCIpO1xuICAgIH1cbiAgfTtcbn1cbmNvbnN0IG5hdGl2ZUZ1bmMgPSBcIltuYXRpdmUgY29kZV0gfVwiO1xuY29uc3QgbmF0aXZlRnVuY0xlbmd0aCA9IG5hdGl2ZUZ1bmMubGVuZ3RoO1xuZnVuY3Rpb24gaXNOYXRpdmVGdW5jdGlvbihmKSB7XG4gIGlmICh0eXBlb2YgZiAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiBGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChmKS5zbGljZSgtbmF0aXZlRnVuY0xlbmd0aCkgPT09IG5hdGl2ZUZ1bmM7XG59XG5cbnZhciBfX2RlZlByb3AkMSA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eTtcbnZhciBfX2RlZk5vcm1hbFByb3AkMSA9IChvYmosIGtleSwgdmFsdWUpID0+IGtleSBpbiBvYmogPyBfX2RlZlByb3AkMShvYmosIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUsIHdyaXRhYmxlOiB0cnVlLCB2YWx1ZSB9KSA6IG9ialtrZXldID0gdmFsdWU7XG52YXIgX19wdWJsaWNGaWVsZCQxID0gKG9iaiwga2V5LCB2YWx1ZSkgPT4ge1xuICBfX2RlZk5vcm1hbFByb3AkMShvYmosIHR5cGVvZiBrZXkgIT09IFwic3ltYm9sXCIgPyBrZXkgKyBcIlwiIDoga2V5LCB2YWx1ZSk7XG4gIHJldHVybiB2YWx1ZTtcbn07XG5jbGFzcyBXb3JkQXJyYXkge1xuICBjb25zdHJ1Y3Rvcih3b3Jkcywgc2lnQnl0ZXMpIHtcbiAgICBfX3B1YmxpY0ZpZWxkJDEodGhpcywgXCJ3b3Jkc1wiKTtcbiAgICBfX3B1YmxpY0ZpZWxkJDEodGhpcywgXCJzaWdCeXRlc1wiKTtcbiAgICB3b3JkcyA9IHRoaXMud29yZHMgPSB3b3JkcyB8fCBbXTtcbiAgICB0aGlzLnNpZ0J5dGVzID0gc2lnQnl0ZXMgPT09IHZvaWQgMCA/IHdvcmRzLmxlbmd0aCAqIDQgOiBzaWdCeXRlcztcbiAgfVxuICB0b1N0cmluZyhlbmNvZGVyKSB7XG4gICAgcmV0dXJuIChlbmNvZGVyIHx8IEhleCkuc3RyaW5naWZ5KHRoaXMpO1xuICB9XG4gIGNvbmNhdCh3b3JkQXJyYXkpIHtcbiAgICB0aGlzLmNsYW1wKCk7XG4gICAgaWYgKHRoaXMuc2lnQnl0ZXMgJSA0KSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHdvcmRBcnJheS5zaWdCeXRlczsgaSsrKSB7XG4gICAgICAgIGNvbnN0IHRoYXRCeXRlID0gd29yZEFycmF5LndvcmRzW2kgPj4+IDJdID4+PiAyNCAtIGkgJSA0ICogOCAmIDI1NTtcbiAgICAgICAgdGhpcy53b3Jkc1t0aGlzLnNpZ0J5dGVzICsgaSA+Pj4gMl0gfD0gdGhhdEJ5dGUgPDwgMjQgLSAodGhpcy5zaWdCeXRlcyArIGkpICUgNCAqIDg7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgd29yZEFycmF5LnNpZ0J5dGVzOyBqICs9IDQpIHtcbiAgICAgICAgdGhpcy53b3Jkc1t0aGlzLnNpZ0J5dGVzICsgaiA+Pj4gMl0gPSB3b3JkQXJyYXkud29yZHNbaiA+Pj4gMl07XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuc2lnQnl0ZXMgKz0gd29yZEFycmF5LnNpZ0J5dGVzO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIGNsYW1wKCkge1xuICAgIHRoaXMud29yZHNbdGhpcy5zaWdCeXRlcyA+Pj4gMl0gJj0gNDI5NDk2NzI5NSA8PCAzMiAtIHRoaXMuc2lnQnl0ZXMgJSA0ICogODtcbiAgICB0aGlzLndvcmRzLmxlbmd0aCA9IE1hdGguY2VpbCh0aGlzLnNpZ0J5dGVzIC8gNCk7XG4gIH1cbiAgY2xvbmUoKSB7XG4gICAgcmV0dXJuIG5ldyBXb3JkQXJyYXkoWy4uLnRoaXMud29yZHNdKTtcbiAgfVxufVxuY29uc3QgSGV4ID0ge1xuICBzdHJpbmdpZnkod29yZEFycmF5KSB7XG4gICAgY29uc3QgaGV4Q2hhcnMgPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHdvcmRBcnJheS5zaWdCeXRlczsgaSsrKSB7XG4gICAgICBjb25zdCBiaXRlID0gd29yZEFycmF5LndvcmRzW2kgPj4+IDJdID4+PiAyNCAtIGkgJSA0ICogOCAmIDI1NTtcbiAgICAgIGhleENoYXJzLnB1c2goKGJpdGUgPj4+IDQpLnRvU3RyaW5nKDE2KSwgKGJpdGUgJiAxNSkudG9TdHJpbmcoMTYpKTtcbiAgICB9XG4gICAgcmV0dXJuIGhleENoYXJzLmpvaW4oXCJcIik7XG4gIH1cbn07XG5jb25zdCBCYXNlNjQgPSB7XG4gIHN0cmluZ2lmeSh3b3JkQXJyYXkpIHtcbiAgICBjb25zdCBrZXlTdHIgPSBcIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5XCI7XG4gICAgY29uc3QgYmFzZTY0Q2hhcnMgPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHdvcmRBcnJheS5zaWdCeXRlczsgaSArPSAzKSB7XG4gICAgICBjb25zdCBieXRlMSA9IHdvcmRBcnJheS53b3Jkc1tpID4+PiAyXSA+Pj4gMjQgLSBpICUgNCAqIDggJiAyNTU7XG4gICAgICBjb25zdCBieXRlMiA9IHdvcmRBcnJheS53b3Jkc1tpICsgMSA+Pj4gMl0gPj4+IDI0IC0gKGkgKyAxKSAlIDQgKiA4ICYgMjU1O1xuICAgICAgY29uc3QgYnl0ZTMgPSB3b3JkQXJyYXkud29yZHNbaSArIDIgPj4+IDJdID4+PiAyNCAtIChpICsgMikgJSA0ICogOCAmIDI1NTtcbiAgICAgIGNvbnN0IHRyaXBsZXQgPSBieXRlMSA8PCAxNiB8IGJ5dGUyIDw8IDggfCBieXRlMztcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgNCAmJiBpICogOCArIGogKiA2IDwgd29yZEFycmF5LnNpZ0J5dGVzICogODsgaisrKSB7XG4gICAgICAgIGJhc2U2NENoYXJzLnB1c2goa2V5U3RyLmNoYXJBdCh0cmlwbGV0ID4+PiA2ICogKDMgLSBqKSAmIDYzKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBiYXNlNjRDaGFycy5qb2luKFwiXCIpO1xuICB9XG59O1xuY29uc3QgTGF0aW4xID0ge1xuICBwYXJzZShsYXRpbjFTdHIpIHtcbiAgICBjb25zdCBsYXRpbjFTdHJMZW5ndGggPSBsYXRpbjFTdHIubGVuZ3RoO1xuICAgIGNvbnN0IHdvcmRzID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsYXRpbjFTdHJMZW5ndGg7IGkrKykge1xuICAgICAgd29yZHNbaSA+Pj4gMl0gfD0gKGxhdGluMVN0ci5jaGFyQ29kZUF0KGkpICYgMjU1KSA8PCAyNCAtIGkgJSA0ICogODtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBXb3JkQXJyYXkod29yZHMsIGxhdGluMVN0ckxlbmd0aCk7XG4gIH1cbn07XG5jb25zdCBVdGY4ID0ge1xuICBwYXJzZSh1dGY4U3RyKSB7XG4gICAgcmV0dXJuIExhdGluMS5wYXJzZSh1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQodXRmOFN0cikpKTtcbiAgfVxufTtcbmNsYXNzIEJ1ZmZlcmVkQmxvY2tBbGdvcml0aG0ge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBfX3B1YmxpY0ZpZWxkJDEodGhpcywgXCJfZGF0YVwiLCBuZXcgV29yZEFycmF5KCkpO1xuICAgIF9fcHVibGljRmllbGQkMSh0aGlzLCBcIl9uRGF0YUJ5dGVzXCIsIDApO1xuICAgIF9fcHVibGljRmllbGQkMSh0aGlzLCBcIl9taW5CdWZmZXJTaXplXCIsIDApO1xuICAgIF9fcHVibGljRmllbGQkMSh0aGlzLCBcImJsb2NrU2l6ZVwiLCA1MTIgLyAzMik7XG4gIH1cbiAgcmVzZXQoKSB7XG4gICAgdGhpcy5fZGF0YSA9IG5ldyBXb3JkQXJyYXkoKTtcbiAgICB0aGlzLl9uRGF0YUJ5dGVzID0gMDtcbiAgfVxuICBfYXBwZW5kKGRhdGEpIHtcbiAgICBpZiAodHlwZW9mIGRhdGEgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIGRhdGEgPSBVdGY4LnBhcnNlKGRhdGEpO1xuICAgIH1cbiAgICB0aGlzLl9kYXRhLmNvbmNhdChkYXRhKTtcbiAgICB0aGlzLl9uRGF0YUJ5dGVzICs9IGRhdGEuc2lnQnl0ZXM7XG4gIH1cbiAgX2RvUHJvY2Vzc0Jsb2NrKF9kYXRhV29yZHMsIF9vZmZzZXQpIHtcbiAgfVxuICBfcHJvY2Vzcyhkb0ZsdXNoKSB7XG4gICAgbGV0IHByb2Nlc3NlZFdvcmRzO1xuICAgIGxldCBuQmxvY2tzUmVhZHkgPSB0aGlzLl9kYXRhLnNpZ0J5dGVzIC8gKHRoaXMuYmxvY2tTaXplICogNCk7XG4gICAgaWYgKGRvRmx1c2gpIHtcbiAgICAgIG5CbG9ja3NSZWFkeSA9IE1hdGguY2VpbChuQmxvY2tzUmVhZHkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBuQmxvY2tzUmVhZHkgPSBNYXRoLm1heCgobkJsb2Nrc1JlYWR5IHwgMCkgLSB0aGlzLl9taW5CdWZmZXJTaXplLCAwKTtcbiAgICB9XG4gICAgY29uc3QgbldvcmRzUmVhZHkgPSBuQmxvY2tzUmVhZHkgKiB0aGlzLmJsb2NrU2l6ZTtcbiAgICBjb25zdCBuQnl0ZXNSZWFkeSA9IE1hdGgubWluKG5Xb3Jkc1JlYWR5ICogNCwgdGhpcy5fZGF0YS5zaWdCeXRlcyk7XG4gICAgaWYgKG5Xb3Jkc1JlYWR5KSB7XG4gICAgICBmb3IgKGxldCBvZmZzZXQgPSAwOyBvZmZzZXQgPCBuV29yZHNSZWFkeTsgb2Zmc2V0ICs9IHRoaXMuYmxvY2tTaXplKSB7XG4gICAgICAgIHRoaXMuX2RvUHJvY2Vzc0Jsb2NrKHRoaXMuX2RhdGEud29yZHMsIG9mZnNldCk7XG4gICAgICB9XG4gICAgICBwcm9jZXNzZWRXb3JkcyA9IHRoaXMuX2RhdGEud29yZHMuc3BsaWNlKDAsIG5Xb3Jkc1JlYWR5KTtcbiAgICAgIHRoaXMuX2RhdGEuc2lnQnl0ZXMgLT0gbkJ5dGVzUmVhZHk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgV29yZEFycmF5KHByb2Nlc3NlZFdvcmRzLCBuQnl0ZXNSZWFkeSk7XG4gIH1cbn1cbmNsYXNzIEhhc2hlciBleHRlbmRzIEJ1ZmZlcmVkQmxvY2tBbGdvcml0aG0ge1xuICB1cGRhdGUobWVzc2FnZVVwZGF0ZSkge1xuICAgIHRoaXMuX2FwcGVuZChtZXNzYWdlVXBkYXRlKTtcbiAgICB0aGlzLl9wcm9jZXNzKCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgZmluYWxpemUobWVzc2FnZVVwZGF0ZSkge1xuICAgIGlmIChtZXNzYWdlVXBkYXRlKSB7XG4gICAgICB0aGlzLl9hcHBlbmQobWVzc2FnZVVwZGF0ZSk7XG4gICAgfVxuICB9XG59XG5cbnZhciBfX2RlZlByb3AgPSBPYmplY3QuZGVmaW5lUHJvcGVydHk7XG52YXIgX19kZWZOb3JtYWxQcm9wID0gKG9iaiwga2V5LCB2YWx1ZSkgPT4ga2V5IGluIG9iaiA/IF9fZGVmUHJvcChvYmosIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUsIHdyaXRhYmxlOiB0cnVlLCB2YWx1ZSB9KSA6IG9ialtrZXldID0gdmFsdWU7XG52YXIgX19wdWJsaWNGaWVsZCA9IChvYmosIGtleSwgdmFsdWUpID0+IHtcbiAgX19kZWZOb3JtYWxQcm9wKG9iaiwgdHlwZW9mIGtleSAhPT0gXCJzeW1ib2xcIiA/IGtleSArIFwiXCIgOiBrZXksIHZhbHVlKTtcbiAgcmV0dXJuIHZhbHVlO1xufTtcbmNvbnN0IEggPSBbXG4gIDE3NzkwMzM3MDMsXG4gIC0xMTUwODMzMDE5LFxuICAxMDEzOTA0MjQyLFxuICAtMTUyMTQ4NjUzNCxcbiAgMTM1OTg5MzExOSxcbiAgLTE2OTQxNDQzNzIsXG4gIDUyODczNDYzNSxcbiAgMTU0MTQ1OTIyNVxuXTtcbmNvbnN0IEsgPSBbXG4gIDExMTYzNTI0MDgsXG4gIDE4OTk0NDc0NDEsXG4gIC0xMjQ1NjQzODI1LFxuICAtMzczOTU3NzIzLFxuICA5NjE5ODcxNjMsXG4gIDE1MDg5NzA5OTMsXG4gIC0xODQxMzMxNTQ4LFxuICAtMTQyNDIwNDA3NSxcbiAgLTY3MDU4NjIxNixcbiAgMzEwNTk4NDAxLFxuICA2MDcyMjUyNzgsXG4gIDE0MjY4ODE5ODcsXG4gIDE5MjUwNzgzODgsXG4gIC0yMTMyODg5MDkwLFxuICAtMTY4MDA3OTE5MyxcbiAgLTEwNDY3NDQ3MTYsXG4gIC00NTk1NzY4OTUsXG4gIC0yNzI3NDI1MjIsXG4gIDI2NDM0NzA3OCxcbiAgNjA0ODA3NjI4LFxuICA3NzAyNTU5ODMsXG4gIDEyNDkxNTAxMjIsXG4gIDE1NTUwODE2OTIsXG4gIDE5OTYwNjQ5ODYsXG4gIC0xNzQwNzQ2NDE0LFxuICAtMTQ3MzEzMjk0NyxcbiAgLTEzNDE5NzA0ODgsXG4gIC0xMDg0NjUzNjI1LFxuICAtOTU4Mzk1NDA1LFxuICAtNzEwNDM4NTg1LFxuICAxMTM5MjY5OTMsXG4gIDMzODI0MTg5NSxcbiAgNjY2MzA3MjA1LFxuICA3NzM1Mjk5MTIsXG4gIDEyOTQ3NTczNzIsXG4gIDEzOTYxODIyOTEsXG4gIDE2OTUxODM3MDAsXG4gIDE5ODY2NjEwNTEsXG4gIC0yMTE3OTQwOTQ2LFxuICAtMTgzODAxMTI1OSxcbiAgLTE1NjQ0ODEzNzUsXG4gIC0xNDc0NjY0ODg1LFxuICAtMTAzNTIzNjQ5NixcbiAgLTk0OTIwMjUyNSxcbiAgLTc3ODkwMTQ3OSxcbiAgLTY5NDYxNDQ5MixcbiAgLTIwMDM5NTM4NyxcbiAgMjc1NDIzMzQ0LFxuICA0MzAyMjc3MzQsXG4gIDUwNjk0ODYxNixcbiAgNjU5MDYwNTU2LFxuICA4ODM5OTc4NzcsXG4gIDk1ODEzOTU3MSxcbiAgMTMyMjgyMjIxOCxcbiAgMTUzNzAwMjA2MyxcbiAgMTc0Nzg3Mzc3OSxcbiAgMTk1NTU2MjIyMixcbiAgMjAyNDEwNDgxNSxcbiAgLTIwNjcyMzY4NDQsXG4gIC0xOTMzMTE0ODcyLFxuICAtMTg2NjUzMDgyMixcbiAgLTE1MzgyMzMxMDksXG4gIC0xMDkwOTM1ODE3LFxuICAtOTY1NjQxOTk4XG5dO1xuY29uc3QgVyA9IFtdO1xuY2xhc3MgU0hBMjU2IGV4dGVuZHMgSGFzaGVyIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoLi4uYXJndW1lbnRzKTtcbiAgICBfX3B1YmxpY0ZpZWxkKHRoaXMsIFwiX2hhc2hcIiwgbmV3IFdvcmRBcnJheShbLi4uSF0pKTtcbiAgfVxuICAvKipcbiAgICogUmVzZXRzIHRoZSBpbnRlcm5hbCBzdGF0ZSBvZiB0aGUgaGFzaCBvYmplY3QgdG8gaW5pdGlhbCB2YWx1ZXMuXG4gICAqL1xuICByZXNldCgpIHtcbiAgICBzdXBlci5yZXNldCgpO1xuICAgIHRoaXMuX2hhc2ggPSBuZXcgV29yZEFycmF5KFsuLi5IXSk7XG4gIH1cbiAgX2RvUHJvY2Vzc0Jsb2NrKE0sIG9mZnNldCkge1xuICAgIGNvbnN0IEgyID0gdGhpcy5faGFzaC53b3JkcztcbiAgICBsZXQgYSA9IEgyWzBdO1xuICAgIGxldCBiID0gSDJbMV07XG4gICAgbGV0IGMgPSBIMlsyXTtcbiAgICBsZXQgZCA9IEgyWzNdO1xuICAgIGxldCBlID0gSDJbNF07XG4gICAgbGV0IGYgPSBIMls1XTtcbiAgICBsZXQgZyA9IEgyWzZdO1xuICAgIGxldCBoID0gSDJbN107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCA2NDsgaSsrKSB7XG4gICAgICBpZiAoaSA8IDE2KSB7XG4gICAgICAgIFdbaV0gPSBNW29mZnNldCArIGldIHwgMDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGdhbW1hMHggPSBXW2kgLSAxNV07XG4gICAgICAgIGNvbnN0IGdhbW1hMCA9IChnYW1tYTB4IDw8IDI1IHwgZ2FtbWEweCA+Pj4gNykgXiAoZ2FtbWEweCA8PCAxNCB8IGdhbW1hMHggPj4+IDE4KSBeIGdhbW1hMHggPj4+IDM7XG4gICAgICAgIGNvbnN0IGdhbW1hMXggPSBXW2kgLSAyXTtcbiAgICAgICAgY29uc3QgZ2FtbWExID0gKGdhbW1hMXggPDwgMTUgfCBnYW1tYTF4ID4+PiAxNykgXiAoZ2FtbWExeCA8PCAxMyB8IGdhbW1hMXggPj4+IDE5KSBeIGdhbW1hMXggPj4+IDEwO1xuICAgICAgICBXW2ldID0gZ2FtbWEwICsgV1tpIC0gN10gKyBnYW1tYTEgKyBXW2kgLSAxNl07XG4gICAgICB9XG4gICAgICBjb25zdCBjaCA9IGUgJiBmIF4gfmUgJiBnO1xuICAgICAgY29uc3QgbWFqID0gYSAmIGIgXiBhICYgYyBeIGIgJiBjO1xuICAgICAgY29uc3Qgc2lnbWEwID0gKGEgPDwgMzAgfCBhID4+PiAyKSBeIChhIDw8IDE5IHwgYSA+Pj4gMTMpIF4gKGEgPDwgMTAgfCBhID4+PiAyMik7XG4gICAgICBjb25zdCBzaWdtYTEgPSAoZSA8PCAyNiB8IGUgPj4+IDYpIF4gKGUgPDwgMjEgfCBlID4+PiAxMSkgXiAoZSA8PCA3IHwgZSA+Pj4gMjUpO1xuICAgICAgY29uc3QgdDEgPSBoICsgc2lnbWExICsgY2ggKyBLW2ldICsgV1tpXTtcbiAgICAgIGNvbnN0IHQyID0gc2lnbWEwICsgbWFqO1xuICAgICAgaCA9IGc7XG4gICAgICBnID0gZjtcbiAgICAgIGYgPSBlO1xuICAgICAgZSA9IGQgKyB0MSB8IDA7XG4gICAgICBkID0gYztcbiAgICAgIGMgPSBiO1xuICAgICAgYiA9IGE7XG4gICAgICBhID0gdDEgKyB0MiB8IDA7XG4gICAgfVxuICAgIEgyWzBdID0gSDJbMF0gKyBhIHwgMDtcbiAgICBIMlsxXSA9IEgyWzFdICsgYiB8IDA7XG4gICAgSDJbMl0gPSBIMlsyXSArIGMgfCAwO1xuICAgIEgyWzNdID0gSDJbM10gKyBkIHwgMDtcbiAgICBIMls0XSA9IEgyWzRdICsgZSB8IDA7XG4gICAgSDJbNV0gPSBIMls1XSArIGYgfCAwO1xuICAgIEgyWzZdID0gSDJbNl0gKyBnIHwgMDtcbiAgICBIMls3XSA9IEgyWzddICsgaCB8IDA7XG4gIH1cbiAgLyoqXG4gICAqIEZpbmlzaGVzIHRoZSBoYXNoIGNhbGN1bGF0aW9uIGFuZCByZXR1cm5zIHRoZSBoYXNoIGFzIGEgV29yZEFycmF5LlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbWVzc2FnZVVwZGF0ZSAtIEFkZGl0aW9uYWwgbWVzc2FnZSBjb250ZW50IHRvIGluY2x1ZGUgaW4gdGhlIGhhc2guXG4gICAqIEByZXR1cm5zIHtXb3JkQXJyYXl9IFRoZSBmaW5hbGlzZWQgaGFzaCBhcyBhIFdvcmRBcnJheS5cbiAgICovXG4gIGZpbmFsaXplKG1lc3NhZ2VVcGRhdGUpIHtcbiAgICBzdXBlci5maW5hbGl6ZShtZXNzYWdlVXBkYXRlKTtcbiAgICBjb25zdCBuQml0c1RvdGFsID0gdGhpcy5fbkRhdGFCeXRlcyAqIDg7XG4gICAgY29uc3QgbkJpdHNMZWZ0ID0gdGhpcy5fZGF0YS5zaWdCeXRlcyAqIDg7XG4gICAgdGhpcy5fZGF0YS53b3Jkc1tuQml0c0xlZnQgPj4+IDVdIHw9IDEyOCA8PCAyNCAtIG5CaXRzTGVmdCAlIDMyO1xuICAgIHRoaXMuX2RhdGEud29yZHNbKG5CaXRzTGVmdCArIDY0ID4+PiA5IDw8IDQpICsgMTRdID0gTWF0aC5mbG9vcihcbiAgICAgIG5CaXRzVG90YWwgLyA0Mjk0OTY3Mjk2XG4gICAgKTtcbiAgICB0aGlzLl9kYXRhLndvcmRzWyhuQml0c0xlZnQgKyA2NCA+Pj4gOSA8PCA0KSArIDE1XSA9IG5CaXRzVG90YWw7XG4gICAgdGhpcy5fZGF0YS5zaWdCeXRlcyA9IHRoaXMuX2RhdGEud29yZHMubGVuZ3RoICogNDtcbiAgICB0aGlzLl9wcm9jZXNzKCk7XG4gICAgcmV0dXJuIHRoaXMuX2hhc2g7XG4gIH1cbn1cbmZ1bmN0aW9uIHNoYTI1NihtZXNzYWdlKSB7XG4gIHJldHVybiBuZXcgU0hBMjU2KCkuZmluYWxpemUobWVzc2FnZSkudG9TdHJpbmcoKTtcbn1cbmZ1bmN0aW9uIHNoYTI1NmJhc2U2NChtZXNzYWdlKSB7XG4gIHJldHVybiBuZXcgU0hBMjU2KCkuZmluYWxpemUobWVzc2FnZSkudG9TdHJpbmcoQmFzZTY0KTtcbn1cblxuZnVuY3Rpb24gaGFzaChvYmplY3QsIG9wdGlvbnMgPSB7fSkge1xuICBjb25zdCBoYXNoZWQgPSB0eXBlb2Ygb2JqZWN0ID09PSBcInN0cmluZ1wiID8gb2JqZWN0IDogb2JqZWN0SGFzaChvYmplY3QsIG9wdGlvbnMpO1xuICByZXR1cm4gc2hhMjU2YmFzZTY0KGhhc2hlZCkuc2xpY2UoMCwgMTApO1xufVxuXG5mdW5jdGlvbiBtdXJtdXJIYXNoKGtleSwgc2VlZCA9IDApIHtcbiAgaWYgKHR5cGVvZiBrZXkgPT09IFwic3RyaW5nXCIpIHtcbiAgICBrZXkgPSBjcmVhdGVCdWZmZXIoa2V5KTtcbiAgfVxuICBsZXQgaSA9IDA7XG4gIGxldCBoMSA9IHNlZWQ7XG4gIGxldCBrMTtcbiAgbGV0IGgxYjtcbiAgY29uc3QgcmVtYWluZGVyID0ga2V5Lmxlbmd0aCAmIDM7XG4gIGNvbnN0IGJ5dGVzID0ga2V5Lmxlbmd0aCAtIHJlbWFpbmRlcjtcbiAgY29uc3QgYzEgPSAzNDMyOTE4MzUzO1xuICBjb25zdCBjMiA9IDQ2MTg0NTkwNztcbiAgd2hpbGUgKGkgPCBieXRlcykge1xuICAgIGsxID0ga2V5W2ldICYgMjU1IHwgKGtleVsrK2ldICYgMjU1KSA8PCA4IHwgKGtleVsrK2ldICYgMjU1KSA8PCAxNiB8IChrZXlbKytpXSAmIDI1NSkgPDwgMjQ7XG4gICAgKytpO1xuICAgIGsxID0gKGsxICYgNjU1MzUpICogYzEgKyAoKChrMSA+Pj4gMTYpICogYzEgJiA2NTUzNSkgPDwgMTYpICYgNDI5NDk2NzI5NTtcbiAgICBrMSA9IGsxIDw8IDE1IHwgazEgPj4+IDE3O1xuICAgIGsxID0gKGsxICYgNjU1MzUpICogYzIgKyAoKChrMSA+Pj4gMTYpICogYzIgJiA2NTUzNSkgPDwgMTYpICYgNDI5NDk2NzI5NTtcbiAgICBoMSBePSBrMTtcbiAgICBoMSA9IGgxIDw8IDEzIHwgaDEgPj4+IDE5O1xuICAgIGgxYiA9IChoMSAmIDY1NTM1KSAqIDUgKyAoKChoMSA+Pj4gMTYpICogNSAmIDY1NTM1KSA8PCAxNikgJiA0Mjk0OTY3Mjk1O1xuICAgIGgxID0gKGgxYiAmIDY1NTM1KSArIDI3NDkyICsgKCgoaDFiID4+PiAxNikgKyA1ODk2NCAmIDY1NTM1KSA8PCAxNik7XG4gIH1cbiAgazEgPSAwO1xuICBzd2l0Y2ggKHJlbWFpbmRlcikge1xuICAgIGNhc2UgMzoge1xuICAgICAgazEgXj0gKGtleVtpICsgMl0gJiAyNTUpIDw8IDE2O1xuICAgIH1cbiAgICBjYXNlIDI6IHtcbiAgICAgIGsxIF49IChrZXlbaSArIDFdICYgMjU1KSA8PCA4O1xuICAgIH1cbiAgICBjYXNlIDE6IHtcbiAgICAgIGsxIF49IGtleVtpXSAmIDI1NTtcbiAgICAgIGsxID0gKGsxICYgNjU1MzUpICogYzEgKyAoKChrMSA+Pj4gMTYpICogYzEgJiA2NTUzNSkgPDwgMTYpICYgNDI5NDk2NzI5NTtcbiAgICAgIGsxID0gazEgPDwgMTUgfCBrMSA+Pj4gMTc7XG4gICAgICBrMSA9IChrMSAmIDY1NTM1KSAqIGMyICsgKCgoazEgPj4+IDE2KSAqIGMyICYgNjU1MzUpIDw8IDE2KSAmIDQyOTQ5NjcyOTU7XG4gICAgICBoMSBePSBrMTtcbiAgICB9XG4gIH1cbiAgaDEgXj0ga2V5Lmxlbmd0aDtcbiAgaDEgXj0gaDEgPj4+IDE2O1xuICBoMSA9IChoMSAmIDY1NTM1KSAqIDIyNDY4MjI1MDcgKyAoKChoMSA+Pj4gMTYpICogMjI0NjgyMjUwNyAmIDY1NTM1KSA8PCAxNikgJiA0Mjk0OTY3Mjk1O1xuICBoMSBePSBoMSA+Pj4gMTM7XG4gIGgxID0gKGgxICYgNjU1MzUpICogMzI2NjQ4OTkwOSArICgoKGgxID4+PiAxNikgKiAzMjY2NDg5OTA5ICYgNjU1MzUpIDw8IDE2KSAmIDQyOTQ5NjcyOTU7XG4gIGgxIF49IGgxID4+PiAxNjtcbiAgcmV0dXJuIGgxID4+PiAwO1xufVxuZnVuY3Rpb24gY3JlYXRlQnVmZmVyKHZhbCkge1xuICByZXR1cm4gbmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKHZhbCk7XG59XG5cbmZ1bmN0aW9uIGlzRXF1YWwob2JqZWN0MSwgb2JqZWN0MiwgaGFzaE9wdGlvbnMgPSB7fSkge1xuICBpZiAob2JqZWN0MSA9PT0gb2JqZWN0Mikge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIGlmIChvYmplY3RIYXNoKG9iamVjdDEsIGhhc2hPcHRpb25zKSA9PT0gb2JqZWN0SGFzaChvYmplY3QyLCBoYXNoT3B0aW9ucykpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIGRpZmYob2JqMSwgb2JqMiwgb3B0cyA9IHt9KSB7XG4gIGNvbnN0IGgxID0gX3RvSGFzaGVkT2JqZWN0KG9iajEsIG9wdHMpO1xuICBjb25zdCBoMiA9IF90b0hhc2hlZE9iamVjdChvYmoyLCBvcHRzKTtcbiAgcmV0dXJuIF9kaWZmKGgxLCBoMiwgb3B0cyk7XG59XG5mdW5jdGlvbiBfZGlmZihoMSwgaDIsIG9wdHMgPSB7fSkge1xuICBjb25zdCBkaWZmcyA9IFtdO1xuICBjb25zdCBhbGxQcm9wcyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KFtcbiAgICAuLi5PYmplY3Qua2V5cyhoMS5wcm9wcyB8fCB7fSksXG4gICAgLi4uT2JqZWN0LmtleXMoaDIucHJvcHMgfHwge30pXG4gIF0pO1xuICBpZiAoaDEucHJvcHMgJiYgaDIucHJvcHMpIHtcbiAgICBmb3IgKGNvbnN0IHByb3Agb2YgYWxsUHJvcHMpIHtcbiAgICAgIGNvbnN0IHAxID0gaDEucHJvcHNbcHJvcF07XG4gICAgICBjb25zdCBwMiA9IGgyLnByb3BzW3Byb3BdO1xuICAgICAgaWYgKHAxICYmIHAyKSB7XG4gICAgICAgIGRpZmZzLnB1c2goLi4uX2RpZmYoaDEucHJvcHM/Lltwcm9wXSwgaDIucHJvcHM/Lltwcm9wXSwgb3B0cykpO1xuICAgICAgfSBlbHNlIGlmIChwMSB8fCBwMikge1xuICAgICAgICBkaWZmcy5wdXNoKFxuICAgICAgICAgIG5ldyBEaWZmRW50cnkoKHAyIHx8IHAxKS5rZXksIHAxID8gXCJyZW1vdmVkXCIgOiBcImFkZGVkXCIsIHAyLCBwMSlcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgaWYgKGFsbFByb3BzLnNpemUgPT09IDAgJiYgaDEuaGFzaCAhPT0gaDIuaGFzaCkge1xuICAgIGRpZmZzLnB1c2gobmV3IERpZmZFbnRyeSgoaDIgfHwgaDEpLmtleSwgXCJjaGFuZ2VkXCIsIGgyLCBoMSkpO1xuICB9XG4gIHJldHVybiBkaWZmcztcbn1cbmZ1bmN0aW9uIF90b0hhc2hlZE9iamVjdChvYmosIG9wdHMsIGtleSA9IFwiXCIpIHtcbiAgaWYgKG9iaiAmJiB0eXBlb2Ygb2JqICE9PSBcIm9iamVjdFwiKSB7XG4gICAgcmV0dXJuIG5ldyBEaWZmSGFzaGVkT2JqZWN0KGtleSwgb2JqLCBvYmplY3RIYXNoKG9iaiwgb3B0cykpO1xuICB9XG4gIGNvbnN0IHByb3BzID0ge307XG4gIGNvbnN0IGhhc2hlcyA9IFtdO1xuICBmb3IgKGNvbnN0IF9rZXkgaW4gb2JqKSB7XG4gICAgcHJvcHNbX2tleV0gPSBfdG9IYXNoZWRPYmplY3QoXG4gICAgICBvYmpbX2tleV0sXG4gICAgICBvcHRzLFxuICAgICAga2V5ID8gYCR7a2V5fS4ke19rZXl9YCA6IF9rZXlcbiAgICApO1xuICAgIGhhc2hlcy5wdXNoKHByb3BzW19rZXldLmhhc2gpO1xuICB9XG4gIHJldHVybiBuZXcgRGlmZkhhc2hlZE9iamVjdChrZXksIG9iaiwgYHske2hhc2hlcy5qb2luKFwiOlwiKX19YCwgcHJvcHMpO1xufVxuY2xhc3MgRGlmZkVudHJ5IHtcbiAgY29uc3RydWN0b3Ioa2V5LCB0eXBlLCBuZXdWYWx1ZSwgb2xkVmFsdWUpIHtcbiAgICB0aGlzLmtleSA9IGtleTtcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIHRoaXMubmV3VmFsdWUgPSBuZXdWYWx1ZTtcbiAgICB0aGlzLm9sZFZhbHVlID0gb2xkVmFsdWU7XG4gIH1cbiAgdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMudG9KU09OKCk7XG4gIH1cbiAgdG9KU09OKCkge1xuICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XG4gICAgICBjYXNlIFwiYWRkZWRcIjoge1xuICAgICAgICByZXR1cm4gYEFkZGVkICAgXFxgJHt0aGlzLmtleX1cXGBgO1xuICAgICAgfVxuICAgICAgY2FzZSBcInJlbW92ZWRcIjoge1xuICAgICAgICByZXR1cm4gYFJlbW92ZWQgXFxgJHt0aGlzLmtleX1cXGBgO1xuICAgICAgfVxuICAgICAgY2FzZSBcImNoYW5nZWRcIjoge1xuICAgICAgICByZXR1cm4gYENoYW5nZWQgXFxgJHt0aGlzLmtleX1cXGAgZnJvbSBcXGAke3RoaXMub2xkVmFsdWU/LnRvU3RyaW5nKCkgfHwgXCItXCJ9XFxgIHRvIFxcYCR7dGhpcy5uZXdWYWx1ZS50b1N0cmluZygpfVxcYGA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5jbGFzcyBEaWZmSGFzaGVkT2JqZWN0IHtcbiAgY29uc3RydWN0b3Ioa2V5LCB2YWx1ZSwgaGFzaCwgcHJvcHMpIHtcbiAgICB0aGlzLmtleSA9IGtleTtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5oYXNoID0gaGFzaDtcbiAgICB0aGlzLnByb3BzID0gcHJvcHM7XG4gIH1cbiAgdG9TdHJpbmcoKSB7XG4gICAgaWYgKHRoaXMucHJvcHMpIHtcbiAgICAgIHJldHVybiBgeyR7T2JqZWN0LmtleXModGhpcy5wcm9wcykuam9pbihcIixcIil9fWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh0aGlzLnZhbHVlKTtcbiAgICB9XG4gIH1cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IGsgPSB0aGlzLmtleSB8fCBcIi5cIjtcbiAgICBpZiAodGhpcy5wcm9wcykge1xuICAgICAgcmV0dXJuIGAke2t9KHske09iamVjdC5rZXlzKHRoaXMucHJvcHMpLmpvaW4oXCIsXCIpfX0pYDtcbiAgICB9XG4gICAgcmV0dXJuIGAke2t9KCR7dGhpcy52YWx1ZX0pYDtcbiAgfVxufVxuXG5leHBvcnQgeyBkaWZmLCBoYXNoLCBpc0VxdWFsLCBtdXJtdXJIYXNoLCBvYmplY3RIYXNoLCBzaGEyNTYsIHNoYTI1NmJhc2U2NCB9O1xuIiwgImV4cG9ydCB7IGEgYXMgY29uc29sYSwgYyBhcyBjcmVhdGVDb25zb2xhLCBhIGFzIGRlZmF1bHQgfSBmcm9tICcuL3NoYXJlZC9jb25zb2xhLkQ0SkszUkNLLm1qcyc7XG5leHBvcnQgeyBDb25zb2xhLCBMb2dMZXZlbHMsIExvZ1R5cGVzIH0gZnJvbSAnLi9jb3JlLm1qcyc7XG5pbXBvcnQgJy4vc2hhcmVkL2NvbnNvbGEuQ3M1RmR0SEQubWpzJztcbmltcG9ydCAnbm9kZTpwcm9jZXNzJztcbmltcG9ydCAnLi9zaGFyZWQvY29uc29sYS5DQmk2Tm05cy5tanMnO1xuaW1wb3J0ICdub2RlOnR0eSc7XG5pbXBvcnQgJ25vZGU6dXRpbCc7XG5pbXBvcnQgJ25vZGU6cGF0aCc7XG4iLCAiZXhwb3J0IHsgYSBhcyBhbGlnbiwgYiBhcyBib3gsIGMgYXMgY2VudGVyQWxpZ24sIGUgYXMgY29sb3JpemUsIGQgYXMgY29sb3JzLCBnIGFzIGdldENvbG9yLCBsIGFzIGxlZnRBbGlnbiwgciBhcyByaWdodEFsaWduLCBzIGFzIHN0cmlwQW5zaSB9IGZyb20gJy4vc2hhcmVkL2NvbnNvbGEuQ0JpNk5tOXMubWpzJztcbmltcG9ydCAnbm9kZTp0dHknO1xuIiwgImltcG9ydCBjb25zb2xhIGZyb20gJ2NvbnNvbGEnO1xuaW1wb3J0IHsgY29sb3JzIH0gZnJvbSAnY29uc29sYS91dGlscyc7XG5cbmZ1bmN0aW9uIHRvQXJyYXkodmFsKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KHZhbCkpIHtcbiAgICByZXR1cm4gdmFsO1xuICB9XG4gIHJldHVybiB2YWwgPT09IHZvaWQgMCA/IFtdIDogW3ZhbF07XG59XG5mdW5jdGlvbiBmb3JtYXRMaW5lQ29sdW1ucyhsaW5lcywgbGluZVByZWZpeCA9IFwiXCIpIHtcbiAgY29uc3QgbWF4TGVuZ2ggPSBbXTtcbiAgZm9yIChjb25zdCBsaW5lIG9mIGxpbmVzKSB7XG4gICAgZm9yIChjb25zdCBbaSwgZWxlbWVudF0gb2YgbGluZS5lbnRyaWVzKCkpIHtcbiAgICAgIG1heExlbmdoW2ldID0gTWF0aC5tYXgobWF4TGVuZ2hbaV0gfHwgMCwgZWxlbWVudC5sZW5ndGgpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbGluZXMubWFwKFxuICAgIChsKSA9PiBsLm1hcChcbiAgICAgIChjLCBpKSA9PiBsaW5lUHJlZml4ICsgY1tpID09PSAwID8gXCJwYWRTdGFydFwiIDogXCJwYWRFbmRcIl0obWF4TGVuZ2hbaV0pXG4gICAgKS5qb2luKFwiICBcIilcbiAgKS5qb2luKFwiXFxuXCIpO1xufVxuZnVuY3Rpb24gcmVzb2x2ZVZhbHVlKGlucHV0KSB7XG4gIHJldHVybiB0eXBlb2YgaW5wdXQgPT09IFwiZnVuY3Rpb25cIiA/IGlucHV0KCkgOiBpbnB1dDtcbn1cbmNsYXNzIENMSUVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlLCBjb2RlKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gICAgdGhpcy5jb2RlID0gY29kZTtcbiAgICB0aGlzLm5hbWUgPSBcIkNMSUVycm9yXCI7XG4gIH1cbn1cblxuY29uc3QgTlVNQkVSX0NIQVJfUkUgPSAvXFxkLztcbmNvbnN0IFNUUl9TUExJVFRFUlMgPSBbXCItXCIsIFwiX1wiLCBcIi9cIiwgXCIuXCJdO1xuZnVuY3Rpb24gaXNVcHBlcmNhc2UoY2hhciA9IFwiXCIpIHtcbiAgaWYgKE5VTUJFUl9DSEFSX1JFLnRlc3QoY2hhcikpIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG4gIHJldHVybiBjaGFyICE9PSBjaGFyLnRvTG93ZXJDYXNlKCk7XG59XG5mdW5jdGlvbiBzcGxpdEJ5Q2FzZShzdHIsIHNlcGFyYXRvcnMpIHtcbiAgY29uc3Qgc3BsaXR0ZXJzID0gc2VwYXJhdG9ycyA/PyBTVFJfU1BMSVRURVJTO1xuICBjb25zdCBwYXJ0cyA9IFtdO1xuICBpZiAoIXN0ciB8fCB0eXBlb2Ygc3RyICE9PSBcInN0cmluZ1wiKSB7XG4gICAgcmV0dXJuIHBhcnRzO1xuICB9XG4gIGxldCBidWZmID0gXCJcIjtcbiAgbGV0IHByZXZpb3VzVXBwZXI7XG4gIGxldCBwcmV2aW91c1NwbGl0dGVyO1xuICBmb3IgKGNvbnN0IGNoYXIgb2Ygc3RyKSB7XG4gICAgY29uc3QgaXNTcGxpdHRlciA9IHNwbGl0dGVycy5pbmNsdWRlcyhjaGFyKTtcbiAgICBpZiAoaXNTcGxpdHRlciA9PT0gdHJ1ZSkge1xuICAgICAgcGFydHMucHVzaChidWZmKTtcbiAgICAgIGJ1ZmYgPSBcIlwiO1xuICAgICAgcHJldmlvdXNVcHBlciA9IHZvaWQgMDtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBjb25zdCBpc1VwcGVyID0gaXNVcHBlcmNhc2UoY2hhcik7XG4gICAgaWYgKHByZXZpb3VzU3BsaXR0ZXIgPT09IGZhbHNlKSB7XG4gICAgICBpZiAocHJldmlvdXNVcHBlciA9PT0gZmFsc2UgJiYgaXNVcHBlciA9PT0gdHJ1ZSkge1xuICAgICAgICBwYXJ0cy5wdXNoKGJ1ZmYpO1xuICAgICAgICBidWZmID0gY2hhcjtcbiAgICAgICAgcHJldmlvdXNVcHBlciA9IGlzVXBwZXI7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKHByZXZpb3VzVXBwZXIgPT09IHRydWUgJiYgaXNVcHBlciA9PT0gZmFsc2UgJiYgYnVmZi5sZW5ndGggPiAxKSB7XG4gICAgICAgIGNvbnN0IGxhc3RDaGFyID0gYnVmZi5hdCgtMSk7XG4gICAgICAgIHBhcnRzLnB1c2goYnVmZi5zbGljZSgwLCBNYXRoLm1heCgwLCBidWZmLmxlbmd0aCAtIDEpKSk7XG4gICAgICAgIGJ1ZmYgPSBsYXN0Q2hhciArIGNoYXI7XG4gICAgICAgIHByZXZpb3VzVXBwZXIgPSBpc1VwcGVyO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgYnVmZiArPSBjaGFyO1xuICAgIHByZXZpb3VzVXBwZXIgPSBpc1VwcGVyO1xuICAgIHByZXZpb3VzU3BsaXR0ZXIgPSBpc1NwbGl0dGVyO1xuICB9XG4gIHBhcnRzLnB1c2goYnVmZik7XG4gIHJldHVybiBwYXJ0cztcbn1cbmZ1bmN0aW9uIHVwcGVyRmlyc3Qoc3RyKSB7XG4gIHJldHVybiBzdHIgPyBzdHJbMF0udG9VcHBlckNhc2UoKSArIHN0ci5zbGljZSgxKSA6IFwiXCI7XG59XG5mdW5jdGlvbiBsb3dlckZpcnN0KHN0cikge1xuICByZXR1cm4gc3RyID8gc3RyWzBdLnRvTG93ZXJDYXNlKCkgKyBzdHIuc2xpY2UoMSkgOiBcIlwiO1xufVxuZnVuY3Rpb24gcGFzY2FsQ2FzZShzdHIsIG9wdHMpIHtcbiAgcmV0dXJuIHN0ciA/IChBcnJheS5pc0FycmF5KHN0cikgPyBzdHIgOiBzcGxpdEJ5Q2FzZShzdHIpKS5tYXAoKHApID0+IHVwcGVyRmlyc3Qob3B0cz8ubm9ybWFsaXplID8gcC50b0xvd2VyQ2FzZSgpIDogcCkpLmpvaW4oXCJcIikgOiBcIlwiO1xufVxuZnVuY3Rpb24gY2FtZWxDYXNlKHN0ciwgb3B0cykge1xuICByZXR1cm4gbG93ZXJGaXJzdChwYXNjYWxDYXNlKHN0ciB8fCBcIlwiLCBvcHRzKSk7XG59XG5mdW5jdGlvbiBrZWJhYkNhc2Uoc3RyLCBqb2luZXIpIHtcbiAgcmV0dXJuIHN0ciA/IChBcnJheS5pc0FycmF5KHN0cikgPyBzdHIgOiBzcGxpdEJ5Q2FzZShzdHIpKS5tYXAoKHApID0+IHAudG9Mb3dlckNhc2UoKSkuam9pbihqb2luZXIgPz8gXCItXCIpIDogXCJcIjtcbn1cblxuZnVuY3Rpb24gdG9BcnIoYW55KSB7XG4gIHJldHVybiBhbnkgPT0gdm9pZCAwID8gW10gOiBBcnJheS5pc0FycmF5KGFueSkgPyBhbnkgOiBbYW55XTtcbn1cbmZ1bmN0aW9uIHRvVmFsKG91dCwga2V5LCB2YWwsIG9wdHMpIHtcbiAgbGV0IHg7XG4gIGNvbnN0IG9sZCA9IG91dFtrZXldO1xuICBjb25zdCBueHQgPSB+b3B0cy5zdHJpbmcuaW5kZXhPZihrZXkpID8gdmFsID09IHZvaWQgMCB8fCB2YWwgPT09IHRydWUgPyBcIlwiIDogU3RyaW5nKHZhbCkgOiB0eXBlb2YgdmFsID09PSBcImJvb2xlYW5cIiA/IHZhbCA6IH5vcHRzLmJvb2xlYW4uaW5kZXhPZihrZXkpID8gdmFsID09PSBcImZhbHNlXCIgPyBmYWxzZSA6IHZhbCA9PT0gXCJ0cnVlXCIgfHwgKG91dC5fLnB1c2goKHggPSArdmFsLCB4ICogMCA9PT0gMCkgPyB4IDogdmFsKSwgISF2YWwpIDogKHggPSArdmFsLCB4ICogMCA9PT0gMCkgPyB4IDogdmFsO1xuICBvdXRba2V5XSA9IG9sZCA9PSB2b2lkIDAgPyBueHQgOiBBcnJheS5pc0FycmF5KG9sZCkgPyBvbGQuY29uY2F0KG54dCkgOiBbb2xkLCBueHRdO1xufVxuZnVuY3Rpb24gcGFyc2VSYXdBcmdzKGFyZ3MgPSBbXSwgb3B0cyA9IHt9KSB7XG4gIGxldCBrO1xuICBsZXQgYXJyO1xuICBsZXQgYXJnO1xuICBsZXQgbmFtZTtcbiAgbGV0IHZhbDtcbiAgY29uc3Qgb3V0ID0geyBfOiBbXSB9O1xuICBsZXQgaSA9IDA7XG4gIGxldCBqID0gMDtcbiAgbGV0IGlkeCA9IDA7XG4gIGNvbnN0IGxlbiA9IGFyZ3MubGVuZ3RoO1xuICBjb25zdCBhbGliaSA9IG9wdHMuYWxpYXMgIT09IHZvaWQgMDtcbiAgY29uc3Qgc3RyaWN0ID0gb3B0cy51bmtub3duICE9PSB2b2lkIDA7XG4gIGNvbnN0IGRlZmF1bHRzID0gb3B0cy5kZWZhdWx0ICE9PSB2b2lkIDA7XG4gIG9wdHMuYWxpYXMgPSBvcHRzLmFsaWFzIHx8IHt9O1xuICBvcHRzLnN0cmluZyA9IHRvQXJyKG9wdHMuc3RyaW5nKTtcbiAgb3B0cy5ib29sZWFuID0gdG9BcnIob3B0cy5ib29sZWFuKTtcbiAgaWYgKGFsaWJpKSB7XG4gICAgZm9yIChrIGluIG9wdHMuYWxpYXMpIHtcbiAgICAgIGFyciA9IG9wdHMuYWxpYXNba10gPSB0b0FycihvcHRzLmFsaWFzW2tdKTtcbiAgICAgIGZvciAoaSA9IDA7IGkgPCBhcnIubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgKG9wdHMuYWxpYXNbYXJyW2ldXSA9IGFyci5jb25jYXQoaykpLnNwbGljZShpLCAxKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgZm9yIChpID0gb3B0cy5ib29sZWFuLmxlbmd0aDsgaS0tID4gMDsgKSB7XG4gICAgYXJyID0gb3B0cy5hbGlhc1tvcHRzLmJvb2xlYW5baV1dIHx8IFtdO1xuICAgIGZvciAoaiA9IGFyci5sZW5ndGg7IGotLSA+IDA7ICkge1xuICAgICAgb3B0cy5ib29sZWFuLnB1c2goYXJyW2pdKTtcbiAgICB9XG4gIH1cbiAgZm9yIChpID0gb3B0cy5zdHJpbmcubGVuZ3RoOyBpLS0gPiAwOyApIHtcbiAgICBhcnIgPSBvcHRzLmFsaWFzW29wdHMuc3RyaW5nW2ldXSB8fCBbXTtcbiAgICBmb3IgKGogPSBhcnIubGVuZ3RoOyBqLS0gPiAwOyApIHtcbiAgICAgIG9wdHMuc3RyaW5nLnB1c2goYXJyW2pdKTtcbiAgICB9XG4gIH1cbiAgaWYgKGRlZmF1bHRzKSB7XG4gICAgZm9yIChrIGluIG9wdHMuZGVmYXVsdCkge1xuICAgICAgbmFtZSA9IHR5cGVvZiBvcHRzLmRlZmF1bHRba107XG4gICAgICBhcnIgPSBvcHRzLmFsaWFzW2tdID0gb3B0cy5hbGlhc1trXSB8fCBbXTtcbiAgICAgIGlmIChvcHRzW25hbWVdICE9PSB2b2lkIDApIHtcbiAgICAgICAgb3B0c1tuYW1lXS5wdXNoKGspO1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgb3B0c1tuYW1lXS5wdXNoKGFycltpXSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgY29uc3Qga2V5cyA9IHN0cmljdCA/IE9iamVjdC5rZXlzKG9wdHMuYWxpYXMpIDogW107XG4gIGZvciAoaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgIGFyZyA9IGFyZ3NbaV07XG4gICAgaWYgKGFyZyA9PT0gXCItLVwiKSB7XG4gICAgICBvdXQuXyA9IG91dC5fLmNvbmNhdChhcmdzLnNsaWNlKCsraSkpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGZvciAoaiA9IDA7IGogPCBhcmcubGVuZ3RoOyBqKyspIHtcbiAgICAgIGlmIChhcmcuY2hhckNvZGVBdChqKSAhPT0gNDUpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChqID09PSAwKSB7XG4gICAgICBvdXQuXy5wdXNoKGFyZyk7XG4gICAgfSBlbHNlIGlmIChhcmcuc3Vic3RyaW5nKGosIGogKyAzKSA9PT0gXCJuby1cIikge1xuICAgICAgbmFtZSA9IGFyZy5zbGljZShNYXRoLm1heCgwLCBqICsgMykpO1xuICAgICAgaWYgKHN0cmljdCAmJiAhfmtleXMuaW5kZXhPZihuYW1lKSkge1xuICAgICAgICByZXR1cm4gb3B0cy51bmtub3duKGFyZyk7XG4gICAgICB9XG4gICAgICBvdXRbbmFtZV0gPSBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgZm9yIChpZHggPSBqICsgMTsgaWR4IDwgYXJnLmxlbmd0aDsgaWR4KyspIHtcbiAgICAgICAgaWYgKGFyZy5jaGFyQ29kZUF0KGlkeCkgPT09IDYxKSB7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIG5hbWUgPSBhcmcuc3Vic3RyaW5nKGosIGlkeCk7XG4gICAgICB2YWwgPSBhcmcuc2xpY2UoTWF0aC5tYXgoMCwgKytpZHgpKSB8fCBpICsgMSA9PT0gbGVuIHx8IChcIlwiICsgYXJnc1tpICsgMV0pLmNoYXJDb2RlQXQoMCkgPT09IDQ1IHx8IGFyZ3NbKytpXTtcbiAgICAgIGFyciA9IGogPT09IDIgPyBbbmFtZV0gOiBuYW1lO1xuICAgICAgZm9yIChpZHggPSAwOyBpZHggPCBhcnIubGVuZ3RoOyBpZHgrKykge1xuICAgICAgICBuYW1lID0gYXJyW2lkeF07XG4gICAgICAgIGlmIChzdHJpY3QgJiYgIX5rZXlzLmluZGV4T2YobmFtZSkpIHtcbiAgICAgICAgICByZXR1cm4gb3B0cy51bmtub3duKFwiLVwiLnJlcGVhdChqKSArIG5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIHRvVmFsKG91dCwgbmFtZSwgaWR4ICsgMSA8IGFyci5sZW5ndGggfHwgdmFsLCBvcHRzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgaWYgKGRlZmF1bHRzKSB7XG4gICAgZm9yIChrIGluIG9wdHMuZGVmYXVsdCkge1xuICAgICAgaWYgKG91dFtrXSA9PT0gdm9pZCAwKSB7XG4gICAgICAgIG91dFtrXSA9IG9wdHMuZGVmYXVsdFtrXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgaWYgKGFsaWJpKSB7XG4gICAgZm9yIChrIGluIG91dCkge1xuICAgICAgYXJyID0gb3B0cy5hbGlhc1trXSB8fCBbXTtcbiAgICAgIHdoaWxlIChhcnIubGVuZ3RoID4gMCkge1xuICAgICAgICBvdXRbYXJyLnNoaWZ0KCldID0gb3V0W2tdO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gb3V0O1xufVxuXG5mdW5jdGlvbiBwYXJzZUFyZ3MocmF3QXJncywgYXJnc0RlZikge1xuICBjb25zdCBwYXJzZU9wdGlvbnMgPSB7XG4gICAgYm9vbGVhbjogW10sXG4gICAgc3RyaW5nOiBbXSxcbiAgICBtaXhlZDogW10sXG4gICAgYWxpYXM6IHt9LFxuICAgIGRlZmF1bHQ6IHt9XG4gIH07XG4gIGNvbnN0IGFyZ3MgPSByZXNvbHZlQXJncyhhcmdzRGVmKTtcbiAgZm9yIChjb25zdCBhcmcgb2YgYXJncykge1xuICAgIGlmIChhcmcudHlwZSA9PT0gXCJwb3NpdGlvbmFsXCIpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBpZiAoYXJnLnR5cGUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIHBhcnNlT3B0aW9ucy5zdHJpbmcucHVzaChhcmcubmFtZSk7XG4gICAgfSBlbHNlIGlmIChhcmcudHlwZSA9PT0gXCJib29sZWFuXCIpIHtcbiAgICAgIHBhcnNlT3B0aW9ucy5ib29sZWFuLnB1c2goYXJnLm5hbWUpO1xuICAgIH1cbiAgICBpZiAoYXJnLmRlZmF1bHQgIT09IHZvaWQgMCkge1xuICAgICAgcGFyc2VPcHRpb25zLmRlZmF1bHRbYXJnLm5hbWVdID0gYXJnLmRlZmF1bHQ7XG4gICAgfVxuICAgIGlmIChhcmcuYWxpYXMpIHtcbiAgICAgIHBhcnNlT3B0aW9ucy5hbGlhc1thcmcubmFtZV0gPSBhcmcuYWxpYXM7XG4gICAgfVxuICB9XG4gIGNvbnN0IHBhcnNlZCA9IHBhcnNlUmF3QXJncyhyYXdBcmdzLCBwYXJzZU9wdGlvbnMpO1xuICBjb25zdCBbLi4ucG9zaXRpb25hbEFyZ3VtZW50c10gPSBwYXJzZWQuXztcbiAgY29uc3QgcGFyc2VkQXJnc1Byb3h5ID0gbmV3IFByb3h5KHBhcnNlZCwge1xuICAgIGdldCh0YXJnZXQsIHByb3ApIHtcbiAgICAgIHJldHVybiB0YXJnZXRbcHJvcF0gPz8gdGFyZ2V0W2NhbWVsQ2FzZShwcm9wKV0gPz8gdGFyZ2V0W2tlYmFiQ2FzZShwcm9wKV07XG4gICAgfVxuICB9KTtcbiAgZm9yIChjb25zdCBbLCBhcmddIG9mIGFyZ3MuZW50cmllcygpKSB7XG4gICAgaWYgKGFyZy50eXBlID09PSBcInBvc2l0aW9uYWxcIikge1xuICAgICAgY29uc3QgbmV4dFBvc2l0aW9uYWxBcmd1bWVudCA9IHBvc2l0aW9uYWxBcmd1bWVudHMuc2hpZnQoKTtcbiAgICAgIGlmIChuZXh0UG9zaXRpb25hbEFyZ3VtZW50ICE9PSB2b2lkIDApIHtcbiAgICAgICAgcGFyc2VkQXJnc1Byb3h5W2FyZy5uYW1lXSA9IG5leHRQb3NpdGlvbmFsQXJndW1lbnQ7XG4gICAgICB9IGVsc2UgaWYgKGFyZy5kZWZhdWx0ID09PSB2b2lkIDAgJiYgYXJnLnJlcXVpcmVkICE9PSBmYWxzZSkge1xuICAgICAgICB0aHJvdyBuZXcgQ0xJRXJyb3IoXG4gICAgICAgICAgYE1pc3NpbmcgcmVxdWlyZWQgcG9zaXRpb25hbCBhcmd1bWVudDogJHthcmcubmFtZS50b1VwcGVyQ2FzZSgpfWAsXG4gICAgICAgICAgXCJFQVJHXCJcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBhcnNlZEFyZ3NQcm94eVthcmcubmFtZV0gPSBhcmcuZGVmYXVsdDtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGFyZy5yZXF1aXJlZCAmJiBwYXJzZWRBcmdzUHJveHlbYXJnLm5hbWVdID09PSB2b2lkIDApIHtcbiAgICAgIHRocm93IG5ldyBDTElFcnJvcihgTWlzc2luZyByZXF1aXJlZCBhcmd1bWVudDogLS0ke2FyZy5uYW1lfWAsIFwiRUFSR1wiKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHBhcnNlZEFyZ3NQcm94eTtcbn1cbmZ1bmN0aW9uIHJlc29sdmVBcmdzKGFyZ3NEZWYpIHtcbiAgY29uc3QgYXJncyA9IFtdO1xuICBmb3IgKGNvbnN0IFtuYW1lLCBhcmdEZWZdIG9mIE9iamVjdC5lbnRyaWVzKGFyZ3NEZWYgfHwge30pKSB7XG4gICAgYXJncy5wdXNoKHtcbiAgICAgIC4uLmFyZ0RlZixcbiAgICAgIG5hbWUsXG4gICAgICBhbGlhczogdG9BcnJheShhcmdEZWYuYWxpYXMpXG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIGFyZ3M7XG59XG5cbmZ1bmN0aW9uIGRlZmluZUNvbW1hbmQoZGVmKSB7XG4gIHJldHVybiBkZWY7XG59XG5hc3luYyBmdW5jdGlvbiBydW5Db21tYW5kKGNtZCwgb3B0cykge1xuICBjb25zdCBjbWRBcmdzID0gYXdhaXQgcmVzb2x2ZVZhbHVlKGNtZC5hcmdzIHx8IHt9KTtcbiAgY29uc3QgcGFyc2VkQXJncyA9IHBhcnNlQXJncyhvcHRzLnJhd0FyZ3MsIGNtZEFyZ3MpO1xuICBjb25zdCBjb250ZXh0ID0ge1xuICAgIHJhd0FyZ3M6IG9wdHMucmF3QXJncyxcbiAgICBhcmdzOiBwYXJzZWRBcmdzLFxuICAgIGRhdGE6IG9wdHMuZGF0YSxcbiAgICBjbWRcbiAgfTtcbiAgaWYgKHR5cGVvZiBjbWQuc2V0dXAgPT09IFwiZnVuY3Rpb25cIikge1xuICAgIGF3YWl0IGNtZC5zZXR1cChjb250ZXh0KTtcbiAgfVxuICBsZXQgcmVzdWx0O1xuICB0cnkge1xuICAgIGNvbnN0IHN1YkNvbW1hbmRzID0gYXdhaXQgcmVzb2x2ZVZhbHVlKGNtZC5zdWJDb21tYW5kcyk7XG4gICAgaWYgKHN1YkNvbW1hbmRzICYmIE9iamVjdC5rZXlzKHN1YkNvbW1hbmRzKS5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBzdWJDb21tYW5kQXJnSW5kZXggPSBvcHRzLnJhd0FyZ3MuZmluZEluZGV4KFxuICAgICAgICAoYXJnKSA9PiAhYXJnLnN0YXJ0c1dpdGgoXCItXCIpXG4gICAgICApO1xuICAgICAgY29uc3Qgc3ViQ29tbWFuZE5hbWUgPSBvcHRzLnJhd0FyZ3Nbc3ViQ29tbWFuZEFyZ0luZGV4XTtcbiAgICAgIGlmIChzdWJDb21tYW5kTmFtZSkge1xuICAgICAgICBpZiAoIXN1YkNvbW1hbmRzW3N1YkNvbW1hbmROYW1lXSkge1xuICAgICAgICAgIHRocm93IG5ldyBDTElFcnJvcihcbiAgICAgICAgICAgIGBVbmtub3duIGNvbW1hbmQgXFxgJHtzdWJDb21tYW5kTmFtZX1cXGBgLFxuICAgICAgICAgICAgXCJFX1VOS05PV05fQ09NTUFORFwiXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzdWJDb21tYW5kID0gYXdhaXQgcmVzb2x2ZVZhbHVlKHN1YkNvbW1hbmRzW3N1YkNvbW1hbmROYW1lXSk7XG4gICAgICAgIGlmIChzdWJDb21tYW5kKSB7XG4gICAgICAgICAgYXdhaXQgcnVuQ29tbWFuZChzdWJDb21tYW5kLCB7XG4gICAgICAgICAgICByYXdBcmdzOiBvcHRzLnJhd0FyZ3Muc2xpY2Uoc3ViQ29tbWFuZEFyZ0luZGV4ICsgMSlcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICghY21kLnJ1bikge1xuICAgICAgICB0aHJvdyBuZXcgQ0xJRXJyb3IoYE5vIGNvbW1hbmQgc3BlY2lmaWVkLmAsIFwiRV9OT19DT01NQU5EXCIpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodHlwZW9mIGNtZC5ydW4gPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgcmVzdWx0ID0gYXdhaXQgY21kLnJ1bihjb250ZXh0KTtcbiAgICB9XG4gIH0gZmluYWxseSB7XG4gICAgaWYgKHR5cGVvZiBjbWQuY2xlYW51cCA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICBhd2FpdCBjbWQuY2xlYW51cChjb250ZXh0KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHsgcmVzdWx0IH07XG59XG5hc3luYyBmdW5jdGlvbiByZXNvbHZlU3ViQ29tbWFuZChjbWQsIHJhd0FyZ3MsIHBhcmVudCkge1xuICBjb25zdCBzdWJDb21tYW5kcyA9IGF3YWl0IHJlc29sdmVWYWx1ZShjbWQuc3ViQ29tbWFuZHMpO1xuICBpZiAoc3ViQ29tbWFuZHMgJiYgT2JqZWN0LmtleXMoc3ViQ29tbWFuZHMpLmxlbmd0aCA+IDApIHtcbiAgICBjb25zdCBzdWJDb21tYW5kQXJnSW5kZXggPSByYXdBcmdzLmZpbmRJbmRleCgoYXJnKSA9PiAhYXJnLnN0YXJ0c1dpdGgoXCItXCIpKTtcbiAgICBjb25zdCBzdWJDb21tYW5kTmFtZSA9IHJhd0FyZ3Nbc3ViQ29tbWFuZEFyZ0luZGV4XTtcbiAgICBjb25zdCBzdWJDb21tYW5kID0gYXdhaXQgcmVzb2x2ZVZhbHVlKHN1YkNvbW1hbmRzW3N1YkNvbW1hbmROYW1lXSk7XG4gICAgaWYgKHN1YkNvbW1hbmQpIHtcbiAgICAgIHJldHVybiByZXNvbHZlU3ViQ29tbWFuZChcbiAgICAgICAgc3ViQ29tbWFuZCxcbiAgICAgICAgcmF3QXJncy5zbGljZShzdWJDb21tYW5kQXJnSW5kZXggKyAxKSxcbiAgICAgICAgY21kXG4gICAgICApO1xuICAgIH1cbiAgfVxuICByZXR1cm4gW2NtZCwgcGFyZW50XTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gc2hvd1VzYWdlKGNtZCwgcGFyZW50KSB7XG4gIHRyeSB7XG4gICAgY29uc29sYS5sb2coYXdhaXQgcmVuZGVyVXNhZ2UoY21kLCBwYXJlbnQpICsgXCJcXG5cIik7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc29sYS5lcnJvcihlcnJvcik7XG4gIH1cbn1cbmFzeW5jIGZ1bmN0aW9uIHJlbmRlclVzYWdlKGNtZCwgcGFyZW50KSB7XG4gIGNvbnN0IGNtZE1ldGEgPSBhd2FpdCByZXNvbHZlVmFsdWUoY21kLm1ldGEgfHwge30pO1xuICBjb25zdCBjbWRBcmdzID0gcmVzb2x2ZUFyZ3MoYXdhaXQgcmVzb2x2ZVZhbHVlKGNtZC5hcmdzIHx8IHt9KSk7XG4gIGNvbnN0IHBhcmVudE1ldGEgPSBhd2FpdCByZXNvbHZlVmFsdWUocGFyZW50Py5tZXRhIHx8IHt9KTtcbiAgY29uc3QgY29tbWFuZE5hbWUgPSBgJHtwYXJlbnRNZXRhLm5hbWUgPyBgJHtwYXJlbnRNZXRhLm5hbWV9IGAgOiBcIlwifWAgKyAoY21kTWV0YS5uYW1lIHx8IHByb2Nlc3MuYXJndlsxXSk7XG4gIGNvbnN0IGFyZ0xpbmVzID0gW107XG4gIGNvbnN0IHBvc0xpbmVzID0gW107XG4gIGNvbnN0IGNvbW1hbmRzTGluZXMgPSBbXTtcbiAgY29uc3QgdXNhZ2VMaW5lID0gW107XG4gIGZvciAoY29uc3QgYXJnIG9mIGNtZEFyZ3MpIHtcbiAgICBpZiAoYXJnLnR5cGUgPT09IFwicG9zaXRpb25hbFwiKSB7XG4gICAgICBjb25zdCBuYW1lID0gYXJnLm5hbWUudG9VcHBlckNhc2UoKTtcbiAgICAgIGNvbnN0IGlzUmVxdWlyZWQgPSBhcmcucmVxdWlyZWQgIT09IGZhbHNlICYmIGFyZy5kZWZhdWx0ID09PSB2b2lkIDA7XG4gICAgICBjb25zdCBkZWZhdWx0SGludCA9IGFyZy5kZWZhdWx0ID8gYD1cIiR7YXJnLmRlZmF1bHR9XCJgIDogXCJcIjtcbiAgICAgIHBvc0xpbmVzLnB1c2goW1xuICAgICAgICBcImBcIiArIG5hbWUgKyBkZWZhdWx0SGludCArIFwiYFwiLFxuICAgICAgICBhcmcuZGVzY3JpcHRpb24gfHwgXCJcIixcbiAgICAgICAgYXJnLnZhbHVlSGludCA/IGA8JHthcmcudmFsdWVIaW50fT5gIDogXCJcIlxuICAgICAgXSk7XG4gICAgICB1c2FnZUxpbmUucHVzaChpc1JlcXVpcmVkID8gYDwke25hbWV9PmAgOiBgWyR7bmFtZX1dYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGlzUmVxdWlyZWQgPSBhcmcucmVxdWlyZWQgPT09IHRydWUgJiYgYXJnLmRlZmF1bHQgPT09IHZvaWQgMDtcbiAgICAgIGNvbnN0IGFyZ1N0ciA9IChhcmcudHlwZSA9PT0gXCJib29sZWFuXCIgJiYgYXJnLmRlZmF1bHQgPT09IHRydWUgPyBbXG4gICAgICAgIC4uLihhcmcuYWxpYXMgfHwgW10pLm1hcCgoYSkgPT4gYC0tbm8tJHthfWApLFxuICAgICAgICBgLS1uby0ke2FyZy5uYW1lfWBcbiAgICAgIF0uam9pbihcIiwgXCIpIDogWy4uLihhcmcuYWxpYXMgfHwgW10pLm1hcCgoYSkgPT4gYC0ke2F9YCksIGAtLSR7YXJnLm5hbWV9YF0uam9pbihcbiAgICAgICAgXCIsIFwiXG4gICAgICApKSArIChhcmcudHlwZSA9PT0gXCJzdHJpbmdcIiAmJiAoYXJnLnZhbHVlSGludCB8fCBhcmcuZGVmYXVsdCkgPyBgPSR7YXJnLnZhbHVlSGludCA/IGA8JHthcmcudmFsdWVIaW50fT5gIDogYFwiJHthcmcuZGVmYXVsdCB8fCBcIlwifVwiYH1gIDogXCJcIik7XG4gICAgICBhcmdMaW5lcy5wdXNoKFtcbiAgICAgICAgXCJgXCIgKyBhcmdTdHIgKyAoaXNSZXF1aXJlZCA/IFwiIChyZXF1aXJlZClcIiA6IFwiXCIpICsgXCJgXCIsXG4gICAgICAgIGFyZy5kZXNjcmlwdGlvbiB8fCBcIlwiXG4gICAgICBdKTtcbiAgICAgIGlmIChpc1JlcXVpcmVkKSB7XG4gICAgICAgIHVzYWdlTGluZS5wdXNoKGFyZ1N0cik7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGlmIChjbWQuc3ViQ29tbWFuZHMpIHtcbiAgICBjb25zdCBjb21tYW5kTmFtZXMgPSBbXTtcbiAgICBjb25zdCBzdWJDb21tYW5kcyA9IGF3YWl0IHJlc29sdmVWYWx1ZShjbWQuc3ViQ29tbWFuZHMpO1xuICAgIGZvciAoY29uc3QgW25hbWUsIHN1Yl0gb2YgT2JqZWN0LmVudHJpZXMoc3ViQ29tbWFuZHMpKSB7XG4gICAgICBjb25zdCBzdWJDbWQgPSBhd2FpdCByZXNvbHZlVmFsdWUoc3ViKTtcbiAgICAgIGNvbnN0IG1ldGEgPSBhd2FpdCByZXNvbHZlVmFsdWUoc3ViQ21kPy5tZXRhKTtcbiAgICAgIGNvbW1hbmRzTGluZXMucHVzaChbYFxcYCR7bmFtZX1cXGBgLCBtZXRhPy5kZXNjcmlwdGlvbiB8fCBcIlwiXSk7XG4gICAgICBjb21tYW5kTmFtZXMucHVzaChuYW1lKTtcbiAgICB9XG4gICAgdXNhZ2VMaW5lLnB1c2goY29tbWFuZE5hbWVzLmpvaW4oXCJ8XCIpKTtcbiAgfVxuICBjb25zdCB1c2FnZUxpbmVzID0gW107XG4gIGNvbnN0IHZlcnNpb24gPSBjbWRNZXRhLnZlcnNpb24gfHwgcGFyZW50TWV0YS52ZXJzaW9uO1xuICB1c2FnZUxpbmVzLnB1c2goXG4gICAgY29sb3JzLmdyYXkoXG4gICAgICBgJHtjbWRNZXRhLmRlc2NyaXB0aW9ufSAoJHtjb21tYW5kTmFtZSArICh2ZXJzaW9uID8gYCB2JHt2ZXJzaW9ufWAgOiBcIlwiKX0pYFxuICAgICksXG4gICAgXCJcIlxuICApO1xuICBjb25zdCBoYXNPcHRpb25zID0gYXJnTGluZXMubGVuZ3RoID4gMCB8fCBwb3NMaW5lcy5sZW5ndGggPiAwO1xuICB1c2FnZUxpbmVzLnB1c2goXG4gICAgYCR7Y29sb3JzLnVuZGVybGluZShjb2xvcnMuYm9sZChcIlVTQUdFXCIpKX0gXFxgJHtjb21tYW5kTmFtZX0ke2hhc09wdGlvbnMgPyBcIiBbT1BUSU9OU11cIiA6IFwiXCJ9ICR7dXNhZ2VMaW5lLmpvaW4oXCIgXCIpfVxcYGAsXG4gICAgXCJcIlxuICApO1xuICBpZiAocG9zTGluZXMubGVuZ3RoID4gMCkge1xuICAgIHVzYWdlTGluZXMucHVzaChjb2xvcnMudW5kZXJsaW5lKGNvbG9ycy5ib2xkKFwiQVJHVU1FTlRTXCIpKSwgXCJcIik7XG4gICAgdXNhZ2VMaW5lcy5wdXNoKGZvcm1hdExpbmVDb2x1bW5zKHBvc0xpbmVzLCBcIiAgXCIpKTtcbiAgICB1c2FnZUxpbmVzLnB1c2goXCJcIik7XG4gIH1cbiAgaWYgKGFyZ0xpbmVzLmxlbmd0aCA+IDApIHtcbiAgICB1c2FnZUxpbmVzLnB1c2goY29sb3JzLnVuZGVybGluZShjb2xvcnMuYm9sZChcIk9QVElPTlNcIikpLCBcIlwiKTtcbiAgICB1c2FnZUxpbmVzLnB1c2goZm9ybWF0TGluZUNvbHVtbnMoYXJnTGluZXMsIFwiICBcIikpO1xuICAgIHVzYWdlTGluZXMucHVzaChcIlwiKTtcbiAgfVxuICBpZiAoY29tbWFuZHNMaW5lcy5sZW5ndGggPiAwKSB7XG4gICAgdXNhZ2VMaW5lcy5wdXNoKGNvbG9ycy51bmRlcmxpbmUoY29sb3JzLmJvbGQoXCJDT01NQU5EU1wiKSksIFwiXCIpO1xuICAgIHVzYWdlTGluZXMucHVzaChmb3JtYXRMaW5lQ29sdW1ucyhjb21tYW5kc0xpbmVzLCBcIiAgXCIpKTtcbiAgICB1c2FnZUxpbmVzLnB1c2goXG4gICAgICBcIlwiLFxuICAgICAgYFVzZSBcXGAke2NvbW1hbmROYW1lfSA8Y29tbWFuZD4gLS1oZWxwXFxgIGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IGEgY29tbWFuZC5gXG4gICAgKTtcbiAgfVxuICByZXR1cm4gdXNhZ2VMaW5lcy5maWx0ZXIoKGwpID0+IHR5cGVvZiBsID09PSBcInN0cmluZ1wiKS5qb2luKFwiXFxuXCIpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBydW5NYWluKGNtZCwgb3B0cyA9IHt9KSB7XG4gIGNvbnN0IHJhd0FyZ3MgPSBvcHRzLnJhd0FyZ3MgfHwgcHJvY2Vzcy5hcmd2LnNsaWNlKDIpO1xuICBjb25zdCBzaG93VXNhZ2UkMSA9IG9wdHMuc2hvd1VzYWdlIHx8IHNob3dVc2FnZTtcbiAgdHJ5IHtcbiAgICBpZiAocmF3QXJncy5pbmNsdWRlcyhcIi0taGVscFwiKSB8fCByYXdBcmdzLmluY2x1ZGVzKFwiLWhcIikpIHtcbiAgICAgIGF3YWl0IHNob3dVc2FnZSQxKC4uLmF3YWl0IHJlc29sdmVTdWJDb21tYW5kKGNtZCwgcmF3QXJncykpO1xuICAgICAgcHJvY2Vzcy5leGl0KDApO1xuICAgIH0gZWxzZSBpZiAocmF3QXJncy5sZW5ndGggPT09IDEgJiYgcmF3QXJnc1swXSA9PT0gXCItLXZlcnNpb25cIikge1xuICAgICAgY29uc3QgbWV0YSA9IHR5cGVvZiBjbWQubWV0YSA9PT0gXCJmdW5jdGlvblwiID8gYXdhaXQgY21kLm1ldGEoKSA6IGF3YWl0IGNtZC5tZXRhO1xuICAgICAgaWYgKCFtZXRhPy52ZXJzaW9uKSB7XG4gICAgICAgIHRocm93IG5ldyBDTElFcnJvcihcIk5vIHZlcnNpb24gc3BlY2lmaWVkXCIsIFwiRV9OT19WRVJTSU9OXCIpO1xuICAgICAgfVxuICAgICAgY29uc29sYS5sb2cobWV0YS52ZXJzaW9uKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXdhaXQgcnVuQ29tbWFuZChjbWQsIHsgcmF3QXJncyB9KTtcbiAgICB9XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc3QgaXNDTElFcnJvciA9IGVycm9yIGluc3RhbmNlb2YgQ0xJRXJyb3I7XG4gICAgaWYgKCFpc0NMSUVycm9yKSB7XG4gICAgICBjb25zb2xhLmVycm9yKGVycm9yLCBcIlxcblwiKTtcbiAgICB9XG4gICAgaWYgKGlzQ0xJRXJyb3IpIHtcbiAgICAgIGF3YWl0IHNob3dVc2FnZSQxKC4uLmF3YWl0IHJlc29sdmVTdWJDb21tYW5kKGNtZCwgcmF3QXJncykpO1xuICAgIH1cbiAgICBjb25zb2xhLmVycm9yKGVycm9yLm1lc3NhZ2UpO1xuICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgfVxufVxuZnVuY3Rpb24gY3JlYXRlTWFpbihjbWQpIHtcbiAgcmV0dXJuIChvcHRzID0ge30pID0+IHJ1bk1haW4oY21kLCBvcHRzKTtcbn1cblxuZXhwb3J0IHsgY3JlYXRlTWFpbiwgZGVmaW5lQ29tbWFuZCwgcGFyc2VBcmdzLCByZW5kZXJVc2FnZSwgcnVuQ29tbWFuZCwgcnVuTWFpbiwgc2hvd1VzYWdlIH07XG4iLCAiaW1wb3J0IHR5cGUgeyBQYWNrYWdlTWFuaWZlc3QgfSBmcm9tIFwicXVlcnktcmVnaXN0cnlcIjtcblxuY29uc3QgZ2l0aHViVXJsUmVnZXggPVxuICAvXig/OmdpdFxcKyk/aHR0cHM/OlxcL1xcL2dpdGh1YlxcLmNvbVxcLyhbXi9dKylcXC8oW14vXSspXFwuZ2l0JC87XG5cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0T3duZXJBbmRSZXBvKFxuICByZXBvc2l0b3J5VXJsOiBzdHJpbmcsXG4pOiBbc3RyaW5nLCBzdHJpbmddIHwgbnVsbCB7XG4gIGNvbnN0IG1hdGNoID0gcmVwb3NpdG9yeVVybC5tYXRjaChnaXRodWJVcmxSZWdleCk7XG5cbiAgaWYgKG1hdGNoKSB7XG4gICAgcmV0dXJuIFttYXRjaFsxXSwgbWF0Y2hbMl1dO1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0UmVwb3NpdG9yeShtYW5pZmVzdDogUGFja2FnZU1hbmlmZXN0KSB7XG4gIHJldHVybiB0eXBlb2YgbWFuaWZlc3QucmVwb3NpdG9yeSA9PT0gXCJzdHJpbmdcIlxuICAgID8gbWFuaWZlc3QucmVwb3NpdG9yeVxuICAgIDogbWFuaWZlc3QucmVwb3NpdG9yeT8udXJsO1xufVxuXG5jb25zdCBjb21taXRMZW5ndGggPSA3O1xuXG4vKlxuICogXCIwOWVmZDA1NTMzNzRmZjdkM2U2MmI3OTM3OGUzMTg0ZjVlYjU3NTcxXCIgPT4gXCIwOWVmZDA1XCJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFiYnJldmlhdGVDb21taXRIYXNoKGZ1bGxIYXNoOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGZ1bGxIYXNoLnN1YnN0cmluZygwLCBjb21taXRMZW5ndGgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNQdWxsUmVxdWVzdChyZWY6IHN0cmluZykge1xuICByZXR1cm4gIU51bWJlci5pc05hTihOdW1iZXIocmVmKSk7XG59XG5cbmV4cG9ydCB0eXBlIENvbW1lbnQgPSBcIm9mZlwiIHwgXCJjcmVhdGVcIiB8IFwidXBkYXRlXCI7XG5leHBvcnQgdHlwZSBQYWNrYWdlTWFuYWdlciA9IFwibnBtXCIgfCBcInBucG1cIiB8IFwieWFyblwiIHwgXCJidW5cIjtcblxuY29uc3Qgd2hpdGVsaXN0ID1cbiAgXCJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vc3RhY2tibGl0ei1sYWJzL3BrZy5wci5uZXcvbWFpbi8ud2hpdGVsaXN0XCI7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpc1doaXRlbGlzdGVkKG93bmVyOiBzdHJpbmcsIHJlcG86IHN0cmluZykge1xuICBjb25zdCBjb21iaW5hdGlvbiA9IGAke293bmVyfS8ke3JlcG99YDtcblxuICB0cnkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2god2hpdGVsaXN0KTtcbiAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgcmVzcG9uc2UudGV4dCgpO1xuXG4gICAgcmV0dXJuIGNvbnRlbnQuaW5jbHVkZXMoY29tYmluYXRpb24pO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiIsICJ7XG4gIFwibmFtZVwiOiBcInBrZy1wci1uZXdcIixcbiAgXCJ2ZXJzaW9uXCI6IFwiMC4wLjQ5XCIsXG4gIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgXCJtYWluXCI6IFwiaW5kZXguanNcIixcbiAgXCJ0eXBlXCI6IFwibW9kdWxlXCIsXG4gIFwiYmluXCI6IHtcbiAgICBcInBrZy1wci1uZXdcIjogXCJiaW4vY2xpLmpzXCJcbiAgfSxcbiAgXCJyZXBvc2l0b3J5XCI6IHtcbiAgICBcInR5cGVcIjogXCJnaXRcIixcbiAgICBcInVybFwiOiBcImh0dHBzOi8vZ2l0aHViLmNvbS9zdGFja2JsaXR6LWxhYnMvcGtnLnByLm5ld1wiLFxuICAgIFwiZGlyZWN0b3J5XCI6IFwicGFja2FnZXMvY2xpXCJcbiAgfSxcbiAgXCJzY3JpcHRzXCI6IHtcbiAgICBcImRldlwiOiBcInRzdXAgLS13YXRjaFwiLFxuICAgIFwiYnVpbGRcIjogXCJ0c3VwXCIsXG4gICAgXCJidWlsZDpwdWJsaXNoXCI6IFwiQVBJX1VSTD1odHRwczovL3BrZy5wci5uZXcvIHRzdXBcIlxuICB9LFxuICBcImtleXdvcmRzXCI6IFtdLFxuICBcImF1dGhvclwiOiBcIlwiLFxuICBcImxpY2Vuc2VcIjogXCJNSVRcIixcbiAgXCJkZXBlbmRlbmNpZXNcIjoge1xuICAgIFwiQGpzZGV2dG9vbHMvZXotc3Bhd25cIjogXCJeMy4wLjRcIixcbiAgICBcIkBvY3Rva2l0L2FjdGlvblwiOiBcIl42LjEuMFwiLFxuICAgIFwiaWdub3JlXCI6IFwiXjUuMy4xXCIsXG4gICAgXCJpc2JpbmFyeWZpbGVcIjogXCJeNS4wLjJcIixcbiAgICBcInBrZy10eXBlc1wiOiBcIl4xLjEuMVwiLFxuICAgIFwicXVlcnktcmVnaXN0cnlcIjogXCJeMy4wLjFcIixcbiAgICBcInRpbnlnbG9iYnlcIjogXCJeMC4yLjlcIlxuICB9LFxuICBcImRldkRlcGVuZGVuY2llc1wiOiB7XG4gICAgXCJAcGtnLXByLW5ldy91dGlsc1wiOiBcIndvcmtzcGFjZTpeXCIsXG4gICAgXCJjaXR0eVwiOiBcIl4wLjEuNlwiLFxuICAgIFwidHN1cFwiOiBcIl44LjAuMlwiXG4gIH1cbn1cbiIsICJleHBvcnQgY29uc3QgY3JlYXRlRGVmYXVsdFRlbXBsYXRlID0gKFxuICBkZXBlbmRlbmNpZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4pID0+ICh7XG4gIFwiaW5kZXguanNcIjogXCJcIixcbiAgXCJSRUFETUUubWRcIjogYFxuIyBEZWZhdWx0IFRlbXBsYXRlXG5cblRoaXMgaXMgYSB0ZW1wbGF0ZSB0aGF0IGxldmVyYWdlcyB0aGUgZXhwZXJpbWVudGFsIHRlbXBsYXRlcyBmZWF0dXJlIGluIHRoZSBcXGBwa2cucHIubmV3XFxgIHRvb2wuXG5cbiMjIE92ZXJ2aWV3XG5cblRlbXBsYXRlcyBhcmUgcGFydGljdWxhcmx5IHVzZWZ1bCBmb3IgY3JlYXRpbmcgbGl2ZSwgaW50ZXJhY3RpdmUgZXhhbXBsZXMgb2YgeW91ciBwYWNrYWdlcywgd2hpY2ggY2FuIGJlIHZlcnkgYmVuZWZpY2lhbCBmb3IgYm90aCBkZXZlbG9wbWVudCBhbmQgZG9jdW1lbnRhdGlvbiBwdXJwb3Nlcy5cblxuQXMgYSB1c2VyLCB5b3UgY2FuIGNoZWNrIHRoZSBwYWNrYWdlLmpzb24gZmlsZSBhbmQgc2VlIHRoZSBuZXcgZ2VuZXJhdGVkIHBhY2thZ2VzISBZb3UgY2FuIGp1c3QgY29weSB0aG9zZSBhbmQgcHV0IHRoZW0gaW4geW91ciBwYWNrYWdlLmpzb24gb3IgaW5zdGFsbCB0aGVtIHdpdGggeW91ciBmYXZvcml0ZSBwYWNrYWdlIG1hbmFnZXIuXG5cbiR7T2JqZWN0LnZhbHVlcyhkZXBlbmRlbmNpZXMpXG4gIC5tYXAoXG4gICAgKHVybCkgPT4gYFxuXFxgXFxgXFxgc2hcbm5wbSBpICR7dXJsfVxuXFxgXFxgXFxgXG5gLFxuICApXG4gIC5qb2luKFwiXCIpfVxuXG4jIyBVc2FnZVxuXG5UbyB1c2UgdGhpcyBmZWF0dXJlIGFzIGEgbWFpbnRhaW5lciwgeW91IGNhbiBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kOlxuXG5cXGBcXGBcXGBzaFxubnB4IHBrZy1wci1uZXcgcHVibGlzaCAnLi9wYWNrYWdlcy9BJyAtLXRlbXBsYXRlICcuL2V4YW1wbGVzLyonXG5cXGBcXGBcXGBcblxuIyMgQmVuZWZpdHNcblxuLSBJbnRlcmFjdGl2ZSBEZW1vczogQXV0b21hdGljYWxseSBjcmVhdGUgbGl2ZSBkZW1vcyB0aGF0IHVzZXJzIGNhbiBpbnRlcmFjdCB3aXRoIGRpcmVjdGx5IGluIHRoZWlyIGJyb3dzZXIuXG4tIEVuaGFuY2VkIFRlc3Rpbmc6IFF1aWNrbHkgc3BpbiB1cCBlbnZpcm9ubWVudHMgdG8gdGVzdCB5b3VyIHBhY2thZ2UgaW4gZGlmZmVyZW50IHNjZW5hcmlvcy5cbi0gSW1wcm92ZWQgU2hhcmluZzogRWFzaWx5IHNoYXJlIHdvcmtpbmcgZXhhbXBsZXMgb2YgeW91ciBwYWNrYWdlIHdpdGggY29sbGFib3JhdG9ycyBvciB1c2VycyB3aXRob3V0IG5lZWRpbmcgdGhlbSB0byBzZXQgdXAgdGhlaXIgZW52aXJvbm1lbnQuXG5gLFxuICBcInBhY2thZ2UuanNvblwiOiBKU09OLnN0cmluZ2lmeShcbiAgICB7XG4gICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgIHZlcnNpb246IFwiMS4wLjBcIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcImdlbmVyYXRlZCBieSBwa2cucHIubmV3XCIsXG4gICAgICBtYWluOiBcImluZGV4LmpzXCIsXG4gICAgICBkZXBlbmRlbmNpZXMsXG4gICAgICBrZXl3b3JkczogW10sXG4gICAgICBhdXRob3I6IFwicGtnLnByLm5ld1wiLFxuICAgICAgbGljZW5zZTogXCJJU0NcIixcbiAgICB9LFxuICAgIG51bGwsXG4gICAgMixcbiAgKSxcbn0pO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7QUFxRUEsU0FBUyxnQkFBZ0IsT0FBTztBQUM5QixNQUFJLFVBQVUsUUFBUSxPQUFPLFVBQVUsVUFBVTtBQUMvQyxXQUFPO0FBQUEsRUFDVDtBQUNBLFFBQU0sWUFBWSxPQUFPLGVBQWUsS0FBSztBQUM3QyxNQUFJLGNBQWMsUUFBUSxjQUFjLE9BQU8sYUFBYSxPQUFPLGVBQWUsU0FBUyxNQUFNLE1BQU07QUFDckcsV0FBTztBQUFBLEVBQ1Q7QUFDQSxNQUFJLE9BQU8sWUFBWSxPQUFPO0FBQzVCLFdBQU87QUFBQSxFQUNUO0FBQ0EsTUFBSSxPQUFPLGVBQWUsT0FBTztBQUMvQixXQUFPLE9B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T0EsTUFBR0EsTUFBRyxTQUFPLFNBQU9BLE1BQUdBLE1BQUcsU0FBTyxTQUFPQSxNQUFHQSxNQUFHLFNBQU8sU0FBT0EsTUFBR0EsTUFBRyxTQUFPLFNBQU9BLE1BQUdBLE1BQUcsU0FBTyxTQUFPQSxNQUFHQSxNQUFHLFNBQU8sU0FBT0EsTUFBR0EsTUFBRyxTQUFPLFNBQU9BLE1BQUdBLE1BQUcsU0FBTyxTQUFPQSxNQUFHQSxNQUFHLFNBQU8sU0FBT0EsTUFBR0EsTUFBRyxTQUFPLFNBQU9BLE1BQUdBLE1BQUcsU0FBTyxTQUFPQSxNQUFHQSxNQUFHLFNBQU8sU0FBT0EsTUFBR0EsTUFBRyxTQUFPLFNBQU9BLE1BQUdBLE1BQUcsU0FBTyxTQUFPQSxNQUFHQSxNQUFHLFNBQU8sU0FBT0EsTUFBR0EsTUFBRyxTQUFPLFVBQVFBLE1BQUdBLE1BQUcsVUFBUSxVQUFRQSxNQUFHQSxNQUFHLFVBQVEsVUFBUUEsTUFBR0EsTUFBRyxVQUFRLFVBQVFBLE1BQUdBLE1BQUcsVUFBUSxVQUFRQSxNQUFHQSxNQUFHLFVBQVEsVUFBUUEsTUFBR0EsTUFBRyxVQUFRLFVBQVFBLE1BQUdBLE1BQUcsVUFBUSxVQUFRQSxNQUFHQSxNQUFHLFNBQU8sTUFBSSxNQUFJQSxNQUFHQSxNQUFHLE9BQUssT0FBS0EsTUFBR0EsTUFBRyxPQUFLLE9BQUtBLE1BQUdBLE1BQUcsT0FBS0EsTUFBRyxPQUFLQSxNQUFHLE9BQUssU0FBT0EsTUFBR0EsTUFBRyxTQUFPLFNBQU9BLE1BQUdBLE1BQUcsUUFBTSxPQUFLQSxNQUFHLE9BQUtBLE1BQUcsT0FBSyxPQUFLQSxNQUFHQSxNQUFHLE9BQUtBLE1BQUcsT0FBSyxPQUFLQSxNQUFHQSxNQUFHLE9BQUssT0FBS0EsTUFBR0EsTUFBRyxPQUFLLE9BQUtBLE1BQUdBLE1BQUcsT0FBSyxPQUFLQSxNQUFHQSxNQUFHLE9BQUtBLE1BQUcsT0FBS0EsTUFBRyxPQUFLLE9BQUtBLE1BQUdBLE1BQUcsT0FBSyxPQUFLQSxNQUFHQSxNQUFHLE9BQUtBLE1BQUcsT0FBSyxPQUFLQSxNQUFHQSxNQUFHLE9BQUssT0FBS0EsTUFBR0EsTUFBRyxPQUFLQSxNQUFHLE9BQUssT0FBS0EsTUFBR0EsTUFBRyxPQUFLLE9BQUtBLE1BQUdBLE1BQUcsT0FBS0EsTUFBRyxPQUFLQSxNQUFHLE9BQUtBLE1BQUcsT0FBS0EsTUFBRyxPQUFLQSxNQUFHLE9BQUtBLE1BQUcsT0FBSyxPQUFLQSxNQUFHQSxNQUFHLE9BQUtBLE1BQUcsT0FBSyxPQUFLQSxNQUFHQSxNQUFHLE9BQUtBLE1BQUcsT0FBSyxPQUFLQSxNQUFHQSxNQUFHLE9BQUtBLE1BQUcsT0FBSyxPQUFLQSxNQUFHQSxNQUFHLE9BQUtBLE1BQUcsT0FBSyxPQUFLQSxNQUFHQSxNQUFHLE9BQUssT0FBS0EsTUFBR0EsTUFBRyxPQUFLQSxNQUFHLE9BQUtBLE1BQUcsT0FBS0EsTUFBRyxPQUFLQSxNQUFHLE9BQUtBLE1BQUcsT0FBS0EsTUFBRyxPQUFLQSxNQUFHLE9BQUtBLE1BQUcsT0FBS0EsTUFBRyxPQUFLQSxNQUFHLE9BQUtBLE1BQUcsT0FBS0EsTUFBRyxPQUFLQSxNQUFHLE9BQUssT0FBS0EsTUFBR0EsTUFBRyxPQUFLQSxNQUFHLE9BQUtBLE1BQUcsT0FBSyxPQUFLQSxNQUFHQSxNQUFHLE9BQUtBLE1BQUcsT0FBS0EsTUFBRyxPQUFLLE9BQUtBLE1BQUdBLE1BQUcsT0FBSyxPQUFLQSxNQUFHQSxNQUFHLE9BQUssT0FBS0EsTUFBR0EsTUFBRyxPQUFLLE9BQUtBLE1BQUdBLE1BQUcsT0FBSyxPQUFLQSxNQUFHQSxNQUFHLE9BQUtBLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU1BLE1BQUcsUUFBTUEsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU1BLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU1BLE1BQUcsUUFBTUEsTUFBRyxRQUFNQSxNQUFHLFFBQU1BLE1BQUcsUUFBTUEsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTUEsTUFBRyxRQUFNQSxNQUFHLFFBQU1BLE1BQUcsUUFBTUEsTUFBRyxRQUFNQSxNQUFHLFFBQU1BLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU1BLE1BQUcsUUFBTUEsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTUEsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU1BLE1BQUcsUUFBTUEsTUFBRyxRQUFNQSxNQUFHLFFBQU1BLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNQSxNQUFHLFFBQU1BLE1BQUcsUUFBTUEsTUFBRyxRQUFNQSxNQUFHLFFBQU1BLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU1BLE1BQUcsUUFBTUEsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTUEsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU1BLE1BQUcsUUFBTUEsTUFBRyxRQUFNQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU1BLE1BQUcsUUFBTUEsTUFBRyxRQUFNQSxNQUFHLFFBQU1BLE1BQUcsUUFBTUEsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTUEsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTUEsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU1BLE1BQUcsUUFBTUEsTUFBRyxRQUFNQSxNQUFHLFFBQU1BLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU1BLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU1BLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU1BLE1BQUcsU0FBT0EsTUFBRyxTQUFPLFNBQU9BLE1BQUdBLE1BQUcsU0FBTyxTQUFPQSxNQUFHQSxNQUFHLFNBQU8sU0FBT0EsTUFBR0EsTUFBRyxTQUFPLFNBQU9BLE1BQUdBLE1BQUcsU0FBTyxTQUFPQSxNQUFHQSxNQUFHLFNBQU9BLE1BQUcsU0FBTyxVQUFRQSxNQUFHQSxNQUFHLFVBQVEsVUFBUUEsTUFBR0EsTUFBRyxVQUFRLFVBQVFBLE1BQUdBLE1BQUcsVUFBUSxVQUFRQSxNQUFHQSxNQUFHLFVBQVEsVUFBUUEsTUFBR0EsTUFBRyxVQUFRLFVBQVFBLE1BQUdBLE1BQUcsV0FBUyxXQUFTQSxNQUFHQSxNQUFHLFVBQVEsTUFBSTtBQUFBLE1BQUcsR0FBRUwsR0FBRSxrQkFBZ0IsU0FBU0MsSUFBRTtBQUFDLFlBQUlDLEtBQUUsS0FBSyxlQUFlRCxFQUFDO0FBQUUsZUFBT0MsTUFBRyxPQUFLQSxNQUFHLE9BQUtBLE1BQUcsTUFBSSxJQUFFO0FBQUEsTUFBQztBQUFFLGVBQVNILEdBQUVFLElBQUU7QUFBQyxlQUFPQSxHQUFFLE1BQU0sa0RBQWtELEtBQUcsQ0FBQztBQUFBLE1BQUM7QUFBQyxNQUFBRCxHQUFFLFNBQU8sU0FBU0MsSUFBRTtBQUFDLGlCQUFRQyxLQUFFSCxHQUFFRSxFQUFDLEdBQUVULEtBQUUsR0FBRWEsS0FBRSxHQUFFQSxLQUFFSCxHQUFFLFFBQU9HLEtBQUksQ0FBQWIsS0FBRUEsS0FBRSxLQUFLLGdCQUFnQlUsR0FBRUcsRUFBQyxDQUFDO0FBQUUsZUFBT2I7QUFBQSxNQUFDLEdBQUVRLEdBQUUsUUFBTSxTQUFTQyxJQUFFQyxJQUFFVixJQUFFO0FBQUMsa0JBQVFRLEdBQUUsT0FBT0MsRUFBQyxHQUFFQyxLQUFFQSxNQUFHLEdBQUVWLEtBQUVBLE1BQUcsR0FBRVUsS0FBRSxNQUFJQSxLQUFFLFVBQVFBLEtBQUdWLEtBQUUsTUFBSUEsS0FBRSxVQUFRQTtBQUFHLGlCQUFRYSxLQUFFLElBQUdELEtBQUUsR0FBRSxJQUFFTCxHQUFFRSxFQUFDLEdBQUUsSUFBRSxHQUFFLElBQUUsRUFBRSxRQUFPLEtBQUk7QUFBQyxjQUFJSyxLQUFFLEVBQUUsQ0FBQyxHQUFFQyxLQUFFUCxHQUFFLE9BQU9NLEVBQUM7QUFBRSxjQUFHRixNQUFHRixNQUFHSyxNQUFHLElBQUUsSUFBRSxHQUFHLEtBQUdILEtBQUVHLE1BQUdmLEdBQUUsQ0FBQWEsTUFBR0M7QUFBQSxjQUFPO0FBQU0sVUFBQUYsTUFBR0c7QUFBQSxRQUFFO0FBQUMsZUFBT0Y7QUFBQSxNQUFDO0FBQUEsSUFBRSxHQUFHLENBQUM7QUFBRSxJQUFJLElBQUUsRUFBRTtBQUFRLElBQU0sS0FBRyxFQUFFLENBQUM7QUFBRSxJQUFJLEtBQUcsV0FBVTtBQUFDLGFBQU87QUFBQSxJQUFneWU7QUFBRSxJQUFNLEtBQUcsRUFBRSxFQUFFO0FBQXNYLElBQU0sSUFBRTtBQUFSLElBQVcsSUFBRSxDQUFDLElBQUUsTUFBSSxDQUFBTCxPQUFHLFFBQVFBLEtBQUUsQ0FBQztBQUFsQyxJQUFzQ0csS0FBRSxDQUFDLElBQUUsTUFBSSxDQUFBSCxPQUFHLFFBQVEsS0FBRyxDQUFDLE1BQU1BLEVBQUM7QUFBckUsSUFBeUUsSUFBRSxDQUFDLElBQUUsTUFBSSxDQUFDQSxJQUFFRCxJQUFFRSxPQUFJLFFBQVEsS0FBRyxDQUFDLE1BQU1ELEVBQUMsSUFBSUQsRUFBQyxJQUFJRSxFQUFDO0FBQXhILElBQTRILElBQUUsRUFBQyxVQUFTLEVBQUMsT0FBTSxDQUFDLEdBQUUsQ0FBQyxHQUFFLE1BQUssQ0FBQyxHQUFFLEVBQUUsR0FBRSxLQUFJLENBQUMsR0FBRSxFQUFFLEdBQUUsUUFBTyxDQUFDLEdBQUUsRUFBRSxHQUFFLFdBQVUsQ0FBQyxHQUFFLEVBQUUsR0FBRSxVQUFTLENBQUMsSUFBRyxFQUFFLEdBQUUsU0FBUSxDQUFDLEdBQUUsRUFBRSxHQUFFLFFBQU8sQ0FBQyxHQUFFLEVBQUUsR0FBRSxlQUFjLENBQUMsR0FBRSxFQUFFLEVBQUMsR0FBRSxPQUFNLEVBQUMsT0FBTSxDQUFDLElBQUcsRUFBRSxHQUFFLEtBQUksQ0FBQyxJQUFHLEVBQUUsR0FBRSxPQUFNLENBQUMsSUFBRyxFQUFFLEdBQUUsUUFBTyxDQUFDLElBQUcsRUFBRSxHQUFFLE1BQUssQ0FBQyxJQUFHLEVBQUUsR0FBRSxTQUFRLENBQUMsSUFBRyxFQUFFLEdBQUUsTUFBSyxDQUFDLElBQUcsRUFBRSxHQUFFLE9BQU0sQ0FBQyxJQUFHLEVBQUUsR0FBRSxhQUFZLENBQUMsSUFBRyxFQUFFLEdBQUUsTUFBSyxDQUFDLElBQUcsRUFBRSxHQUFFLE1BQUssQ0FBQyxJQUFHLEVBQUUsR0FBRSxXQUFVLENBQUMsSUFBRyxFQUFFLEdBQUUsYUFBWSxDQUFDLElBQUcsRUFBRSxHQUFFLGNBQWEsQ0FBQyxJQUFHLEVBQUUsR0FBRSxZQUFXLENBQUMsSUFBRyxFQUFFLEdBQUUsZUFBYyxDQUFDLElBQUcsRUFBRSxHQUFFLFlBQVcsQ0FBQyxJQUFHLEVBQUUsR0FBRSxhQUFZLENBQUMsSUFBRyxFQUFFLEVBQUMsR0FBRSxTQUFRLEVBQUMsU0FBUSxDQUFDLElBQUcsRUFBRSxHQUFFLE9BQU0sQ0FBQyxJQUFHLEVBQUUsR0FBRSxTQUFRLENBQUMsSUFBRyxFQUFFLEdBQUUsVUFBUyxDQUFDLElBQUcsRUFBRSxHQUFFLFFBQU8sQ0FBQyxJQUFHLEVBQUUsR0FBRSxXQUFVLENBQUMsSUFBRyxFQUFFLEdBQUUsUUFBTyxDQUFDLElBQUcsRUFBRSxHQUFFLFNBQVEsQ0FBQyxJQUFHLEVBQUUsR0FBRSxlQUFjLENBQUMsS0FBSSxFQUFFLEdBQUUsUUFBTyxDQUFDLEtBQUksRUFBRSxHQUFFLFFBQU8sQ0FBQyxLQUFJLEVBQUUsR0FBRSxhQUFZLENBQUMsS0FBSSxFQUFFLEdBQUUsZUFBYyxDQUFDLEtBQUksRUFBRSxHQUFFLGdCQUFlLENBQUMsS0FBSSxFQUFFLEdBQUUsY0FBYSxDQUFDLEtBQUksRUFBRSxHQUFFLGlCQUFnQixDQUFDLEtBQUksRUFBRSxHQUFFLGNBQWEsQ0FBQyxLQUFJLEVBQUUsR0FBRSxlQUFjLENBQUMsS0FBSSxFQUFFLEVBQUMsRUFBQztBQUFFLFdBQU8sS0FBSyxFQUFFLFFBQVE7QUFBRSxJQUFNLEtBQUcsT0FBTyxLQUFLLEVBQUUsS0FBSztBQUE1QixJQUE4QixLQUFHLE9BQU8sS0FBSyxFQUFFLE9BQU87QUFBRSxLQUFDLEdBQUcsSUFBRyxHQUFHLEVBQUU7QUFBbzdDLElBQU0sS0FBRyxHQUFHO0FBQVosSUFBYyxJQUFFLG9CQUFJLElBQUksQ0FBQyxRQUFPLE1BQU0sQ0FBQztBQUF2QyxJQUF5QyxLQUFHO0FBQTVDLElBQStDLElBQUU7QUFBakQsSUFBd0QsSUFBRTtBQUExRCxJQUE4RCxLQUFHO0FBQWpFLElBQXFFLElBQUU7QUFBdkUsSUFBMkUsSUFBRSxHQUFHLEVBQUU7QUFBbEYsSUFBd0YsSUFBRSxPQUFHLEdBQUcsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7QUFBbkksSUFBc0ksSUFBRSxPQUFHLEdBQUcsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7QUFBakwsSUFBb0wsS0FBRyxPQUFHLEVBQUUsTUFBTSxHQUFHLEVBQUUsSUFBSSxDQUFBRCxPQUFHLEVBQUVBLEVBQUMsQ0FBQztBQUFsTixJQUFvTixJQUFFLENBQUMsR0FBRUEsSUFBRUQsT0FBSTtBQUFDLFlBQU1FLEtBQUUsQ0FBQyxHQUFHRCxFQUFDO0FBQUUsVUFBSUUsS0FBRSxPQUFHVixLQUFFLE9BQUdhLEtBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxTQUFPLENBQUMsQ0FBQyxDQUFDO0FBQUUsaUJBQVMsQ0FBQ0QsSUFBRSxDQUFDLEtBQUlILEdBQUUsUUFBUSxHQUFFO0FBQUMsY0FBTSxJQUFFLEVBQUUsQ0FBQztBQUFFLFlBQUdJLEtBQUUsS0FBR04sS0FBRSxFQUFFLEVBQUUsU0FBTyxDQUFDLEtBQUcsS0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFFTSxLQUFFLElBQUcsRUFBRSxJQUFJLENBQUMsTUFBSUgsS0FBRSxNQUFHVixLQUFFUyxHQUFFLE1BQU1HLEtBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLFdBQVcsQ0FBQyxJQUFHRixJQUFFO0FBQUMsVUFBQVYsS0FBRSxNQUFJLE1BQUlVLEtBQUUsT0FBR1YsS0FBRSxTQUFJLE1BQUksTUFBSVUsS0FBRTtBQUFJO0FBQUEsUUFBUTtBQUFDLFFBQUFHLE1BQUcsR0FBRUEsT0FBSU4sTUFBR0ssS0FBRUgsR0FBRSxTQUFPLE1BQUksRUFBRSxLQUFLLEVBQUUsR0FBRUksS0FBRTtBQUFBLE1BQUc7QUFBQyxPQUFDQSxNQUFHLEVBQUUsRUFBRSxTQUFPLENBQUMsRUFBRSxTQUFPLEtBQUcsRUFBRSxTQUFPLE1BQUksRUFBRSxFQUFFLFNBQU8sQ0FBQyxLQUFHLEVBQUUsSUFBSTtBQUFBLElBQUc7QUFBNWpCLElBQThqQixLQUFHLE9BQUc7QUFBQyxZQUFNTCxLQUFFLEVBQUUsTUFBTSxHQUFHO0FBQUUsVUFBSUQsS0FBRUMsR0FBRTtBQUFPLGFBQUtELEtBQUUsS0FBRyxFQUFFLEVBQUVDLEdBQUVELEtBQUUsQ0FBQyxDQUFDLElBQUUsS0FBSSxDQUFBQTtBQUFJLGFBQU9BLE9BQUlDLEdBQUUsU0FBTyxJQUFFQSxHQUFFLE1BQU0sR0FBRUQsRUFBQyxFQUFFLEtBQUssR0FBRyxJQUFFQyxHQUFFLE1BQU1ELEVBQUMsRUFBRSxLQUFLLEVBQUU7QUFBQSxJQUFDO0FBQXZzQixJQUF5c0IsS0FBRyxDQUFDLEdBQUVDLElBQUVELEtBQUUsQ0FBQyxNQUFJO0FBQUMsVUFBR0EsR0FBRSxTQUFPLFNBQUksRUFBRSxLQUFLLE1BQUksR0FBRyxRQUFPO0FBQUcsVUFBSUUsS0FBRSxJQUFHQyxJQUFFVjtBQUFFLFlBQU1hLEtBQUUsR0FBRyxDQUFDO0FBQUUsVUFBSUQsS0FBRSxDQUFDLEVBQUU7QUFBRSxpQkFBUyxDQUFDLEdBQUVFLEVBQUMsS0FBSSxFQUFFLE1BQU0sR0FBRyxFQUFFLFFBQVEsR0FBRTtBQUFDLFFBQUFQLEdBQUUsU0FBTyxVQUFLSyxHQUFFQSxHQUFFLFNBQU8sQ0FBQyxJQUFFQSxHQUFFQSxHQUFFLFNBQU8sQ0FBQyxFQUFFLFVBQVU7QUFBRyxZQUFJRyxLQUFFLEVBQUVILEdBQUVBLEdBQUUsU0FBTyxDQUFDLENBQUM7QUFBRSxZQUFHLE1BQUksTUFBSUcsTUFBR1AsT0FBSUQsR0FBRSxhQUFXLFNBQUlBLEdBQUUsU0FBTyxXQUFNSyxHQUFFLEtBQUssRUFBRSxHQUFFRyxLQUFFLEtBQUlBLEtBQUUsS0FBR1IsR0FBRSxTQUFPLFdBQU1LLEdBQUVBLEdBQUUsU0FBTyxDQUFDLEtBQUcsS0FBSUcsUUFBTVIsR0FBRSxRQUFNTSxHQUFFLENBQUMsSUFBRUwsSUFBRTtBQUFDLGdCQUFNUSxLQUFFUixLQUFFTyxJQUFFLElBQUUsSUFBRSxLQUFLLE9BQU9GLEdBQUUsQ0FBQyxJQUFFRyxLQUFFLEtBQUdSLEVBQUM7QUFBRSxlQUFLLE9BQU9LLEdBQUUsQ0FBQyxJQUFFLEtBQUdMLEVBQUMsSUFBRSxLQUFHSSxHQUFFLEtBQUssRUFBRSxHQUFFLEVBQUVBLElBQUVFLElBQUVOLEVBQUM7QUFBRTtBQUFBLFFBQVE7QUFBQyxZQUFHTyxLQUFFRixHQUFFLENBQUMsSUFBRUwsTUFBR08sS0FBRSxLQUFHRixHQUFFLENBQUMsSUFBRSxHQUFFO0FBQUMsY0FBR04sR0FBRSxhQUFXLFNBQUlRLEtBQUVQLElBQUU7QUFBQyxjQUFFSSxJQUFFRSxJQUFFTixFQUFDO0FBQUU7QUFBQSxVQUFRO0FBQUMsVUFBQUksR0FBRSxLQUFLLEVBQUU7QUFBQSxRQUFFO0FBQUMsWUFBR0csS0FBRUYsR0FBRSxDQUFDLElBQUVMLE1BQUdELEdBQUUsYUFBVyxPQUFHO0FBQUMsWUFBRUssSUFBRUUsSUFBRU4sRUFBQztBQUFFO0FBQUEsUUFBUTtBQUFDLFFBQUFJLEdBQUVBLEdBQUUsU0FBTyxDQUFDLEtBQUdFO0FBQUEsTUFBRTtBQUFDLE1BQUFQLEdBQUUsU0FBTyxVQUFLSyxLQUFFQSxHQUFFLElBQUksT0FBRyxHQUFHLENBQUMsQ0FBQztBQUFHLFlBQU0sSUFBRSxDQUFDLEdBQUdBLEdBQUUsS0FBSztBQUFBLENBQ3Rnd0IsQ0FBQztBQUFFLGlCQUFTLENBQUMsR0FBRUUsRUFBQyxLQUFJLEVBQUUsUUFBUSxHQUFFO0FBQUMsWUFBR0wsTUFBR0ssSUFBRSxFQUFFLElBQUlBLEVBQUMsR0FBRTtBQUFDLGdCQUFLLEVBQUMsUUFBT0UsR0FBQyxJQUFFLElBQUksT0FBTyxRQUFRLENBQUMsb0JBQW9CLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsS0FBRyxFQUFDLFFBQU8sQ0FBQyxFQUFDO0FBQUUsY0FBR0EsR0FBRSxTQUFPLFFBQU87QUFBQyxrQkFBTSxJQUFFLE9BQU8sV0FBV0EsR0FBRSxJQUFJO0FBQUUsWUFBQU4sS0FBRSxNQUFJLEtBQUcsU0FBTztBQUFBLFVBQUUsTUFBTSxDQUFBTSxHQUFFLFFBQU0sV0FBU2hCLEtBQUVnQixHQUFFLElBQUksV0FBUyxJQUFFLFNBQU9BLEdBQUU7QUFBQSxRQUFLO0FBQUMsY0FBTUQsS0FBRSxHQUFHLE1BQU0sSUFBSSxPQUFPTCxFQUFDLENBQUM7QUFBRSxVQUFFLElBQUUsQ0FBQyxNQUFJO0FBQUEsS0FDOVVWLE9BQUlTLE1BQUcsRUFBRSxFQUFFLElBQUdDLE1BQUdLLE9BQUlOLE1BQUcsRUFBRU0sRUFBQyxNQUFJRCxPQUFJO0FBQUEsTUFDbENKLE1BQUdLLE9BQUlOLE1BQUcsRUFBRUMsRUFBQyxJQUFHVixPQUFJUyxNQUFHLEVBQUVULEVBQUM7QUFBQSxNQUFJO0FBQUMsYUFBT1M7QUFBQSxJQUFDO0FBR3hDLElBQU0sS0FBRyxDQUFDLE1BQUssUUFBTyxRQUFPLFNBQVEsU0FBUSxTQUFRLFFBQVE7QUFBN0QsSUFBK0QsSUFBRSxFQUFDLFNBQVEsSUFBSSxJQUFJLEVBQUUsR0FBRSxTQUFRLG9CQUFJLElBQUksQ0FBQyxDQUFDLEtBQUksSUFBSSxHQUFFLENBQUMsS0FBSSxNQUFNLEdBQUUsQ0FBQyxLQUFJLE1BQU0sR0FBRSxDQUFDLEtBQUksT0FBTyxHQUFFLENBQUMsS0FBSSxRQUFRLEdBQUUsQ0FBQyxVQUFTLFFBQVEsQ0FBQyxDQUFDLEVBQUM7QUFFM0csZUFBVyxRQUFRLFNBQVMsV0FBVyxLQUFLO0FBQUUsSUFBTSxJQUFFLE9BQU8sY0FBYztBQUFzRCxJQUFJLEtBQUcsT0FBTztBQUFkLElBQTZCLEtBQUcsQ0FBQyxHQUFFRCxJQUFFRCxPQUFJQyxNQUFLLElBQUUsR0FBRyxHQUFFQSxJQUFFLEVBQUMsWUFBVyxNQUFHLGNBQWEsTUFBRyxVQUFTLE1BQUcsT0FBTUQsR0FBQyxDQUFDLElBQUUsRUFBRUMsRUFBQyxJQUFFRDtBQUFqSCxJQUFtSCxJQUFFLENBQUMsR0FBRUMsSUFBRUQsUUFBSyxHQUFHLEdBQUUsT0FBT0MsTUFBRyxXQUFTQSxLQUFFLEtBQUdBLElBQUVELEVBQUMsR0FBRUE7QUFBRyxJQUFNLElBQU4sTUFBTztBQUFBLE1BQUMsWUFBWUMsSUFBRUQsS0FBRSxNQUFHO0FBQUMsVUFBRSxNQUFLLE9BQU8sR0FBRSxFQUFFLE1BQUssUUFBUSxHQUFFLEVBQUUsTUFBSyxjQUFjLEdBQUUsRUFBRSxNQUFLLElBQUksR0FBRSxFQUFFLE1BQUssTUFBTSxHQUFFLEVBQUUsTUFBSyxTQUFTLEdBQUUsRUFBRSxNQUFLLFVBQVMsS0FBRSxHQUFFLEVBQUUsTUFBSyxjQUFhLEVBQUUsR0FBRSxFQUFFLE1BQUssZ0JBQWUsb0JBQUksS0FBRyxHQUFFLEVBQUUsTUFBSyxXQUFVLENBQUMsR0FBRSxFQUFFLE1BQUssU0FBUSxTQUFTLEdBQUUsRUFBRSxNQUFLLFNBQVEsRUFBRSxHQUFFLEVBQUUsTUFBSyxPQUFPO0FBQUUsY0FBSyxFQUFDLE9BQU1FLEtBQUUsT0FBTSxRQUFPQyxLQUFFLFFBQU8sUUFBT1YsSUFBRSxRQUFPYSxJQUFFLEdBQUdELEdBQUMsSUFBRUo7QUFBRSxhQUFLLE9BQUtJLElBQUUsS0FBSyxhQUFXLEtBQUssV0FBVyxLQUFLLElBQUksR0FBRSxLQUFLLFFBQU0sS0FBSyxNQUFNLEtBQUssSUFBSSxHQUFFLEtBQUssU0FBTyxLQUFLLE9BQU8sS0FBSyxJQUFJLEdBQUUsS0FBSyxVQUFRWixHQUFFLEtBQUssSUFBSSxHQUFFLEtBQUssU0FBT08sSUFBRSxLQUFLLGVBQWFNLElBQUUsS0FBSyxRQUFNSixJQUFFLEtBQUssU0FBT0M7QUFBQSxNQUFFO0FBQUEsTUFBQyxjQUFhO0FBQUMsYUFBSyxhQUFhLE1BQU07QUFBQSxNQUFFO0FBQUEsTUFBQyxjQUFjRixJQUFFRCxJQUFFO0FBQUMsY0FBTUUsS0FBRSxLQUFLLGFBQWEsSUFBSUQsRUFBQyxLQUFHLENBQUM7QUFBRSxRQUFBQyxHQUFFLEtBQUtGLEVBQUMsR0FBRSxLQUFLLGFBQWEsSUFBSUMsSUFBRUMsRUFBQztBQUFBLE1BQUU7QUFBQSxNQUFDLEdBQUdELElBQUVELElBQUU7QUFBQyxhQUFLLGNBQWNDLElBQUUsRUFBQyxJQUFHRCxHQUFDLENBQUM7QUFBQSxNQUFFO0FBQUEsTUFBQyxLQUFLQyxJQUFFRCxJQUFFO0FBQUMsYUFBSyxjQUFjQyxJQUFFLEVBQUMsSUFBR0QsSUFBRSxNQUFLLEtBQUUsQ0FBQztBQUFBLE1BQUU7QUFBQSxNQUFDLEtBQUtDLE9BQUtELElBQUU7QUFBQyxjQUFNRSxLQUFFLEtBQUssYUFBYSxJQUFJRCxFQUFDLEtBQUcsQ0FBQyxHQUFFRSxLQUFFLENBQUM7QUFBRSxtQkFBVVYsTUFBS1MsR0FBRSxDQUFBVCxHQUFFLEdBQUcsR0FBR08sRUFBQyxHQUFFUCxHQUFFLFFBQU1VLEdBQUUsS0FBSyxNQUFJRCxHQUFFLE9BQU9BLEdBQUUsUUFBUVQsRUFBQyxHQUFFLENBQUMsQ0FBQztBQUFFLG1CQUFVQSxNQUFLVSxHQUFFLENBQUFWLEdBQUU7QUFBQSxNQUFFO0FBQUEsTUFBQyxTQUFRO0FBQUMsZUFBTyxJQUFJLFFBQVEsQ0FBQ1EsSUFBRUQsT0FBSTtBQUFDLGNBQUcsS0FBSyxjQUFhO0FBQUMsZ0JBQUcsS0FBSyxhQUFhLFFBQVEsUUFBTyxLQUFLLFFBQU0sVUFBUyxLQUFLLE1BQU0sR0FBRUMsR0FBRSxDQUFDO0FBQUUsaUJBQUssYUFBYSxpQkFBaUIsU0FBUSxNQUFJO0FBQUMsbUJBQUssUUFBTSxVQUFTLEtBQUssTUFBTTtBQUFBLFlBQUUsR0FBRSxFQUFDLE1BQUssS0FBRSxDQUFDO0FBQUEsVUFBRTtBQUFDLGdCQUFNQyxLQUFFLElBQUksWUFBWSxDQUFDO0FBQUUsVUFBQUEsR0FBRSxTQUFPLENBQUNDLElBQUVWLElBQUVhLE9BQUk7QUFBQyxpQkFBSyxXQUFTLEtBQUssUUFBTSxLQUFLLElBQUksS0FBSyxRQUFRLE9BQU0sRUFBRSxHQUFFLEtBQUssVUFBUSxLQUFLLElBQUksVUFBUSxHQUFFLEtBQUssS0FBSyxTQUFRLEtBQUssS0FBSyxJQUFHQSxHQUFFO0FBQUEsVUFBRSxHQUFFLEtBQUssTUFBTSxLQUFLSixFQUFDLEdBQUUsS0FBSyxLQUFHLEVBQUUsZ0JBQWdCLEVBQUMsT0FBTSxLQUFLLE9BQU0sUUFBT0EsSUFBRSxTQUFRLEdBQUUsUUFBTyxJQUFHLG1CQUFrQixHQUFFLENBQUMsR0FBRSxFQUFFLG1CQUFtQixLQUFLLE9BQU0sS0FBSyxFQUFFLEdBQUUsS0FBSyxHQUFHLE9BQU8sR0FBRSxLQUFLLEtBQUssaUJBQWUsVUFBUSxLQUFLLFVBQVEsS0FBSyxHQUFHLE1BQU0sS0FBSyxLQUFLLFlBQVksR0FBRSxLQUFLLE1BQU0sR0FBRyxZQUFXLEtBQUssVUFBVSxHQUFFLEVBQUUsS0FBSyxPQUFNLElBQUUsR0FBRSxLQUFLLE9BQU8sR0FBRyxVQUFTLEtBQUssTUFBTSxHQUFFLEtBQUssT0FBTyxHQUFFLEtBQUssS0FBSyxVQUFTLE1BQUk7QUFBQyxpQkFBSyxPQUFPLE1BQU0sV0FBVyxPQUFPLElBQUksR0FBRSxLQUFLLE9BQU8sSUFBSSxVQUFTLEtBQUssTUFBTSxHQUFFLEVBQUUsS0FBSyxPQUFNLEtBQUUsR0FBRUQsR0FBRSxLQUFLLEtBQUs7QUFBQSxVQUFFLENBQUMsR0FBRSxLQUFLLEtBQUssVUFBUyxNQUFJO0FBQUMsaUJBQUssT0FBTyxNQUFNLFdBQVcsT0FBTyxJQUFJLEdBQUUsS0FBSyxPQUFPLElBQUksVUFBUyxLQUFLLE1BQU0sR0FBRSxFQUFFLEtBQUssT0FBTSxLQUFFLEdBQUVBLEdBQUUsQ0FBQztBQUFBLFVBQUUsQ0FBQztBQUFBLFFBQUUsQ0FBQztBQUFBLE1BQUM7QUFBQSxNQUFDLFdBQVdBLElBQUVELElBQUU7QUFBQyxZQUFHLEtBQUssVUFBUSxZQUFVLEtBQUssUUFBTSxXQUFVQSxJQUFHLFNBQU8sQ0FBQyxLQUFLLFVBQVEsRUFBRSxRQUFRLElBQUlBLEdBQUUsSUFBSSxLQUFHLEtBQUssS0FBSyxVQUFTLEVBQUUsUUFBUSxJQUFJQSxHQUFFLElBQUksQ0FBQyxHQUFFLEVBQUUsUUFBUSxJQUFJQSxHQUFFLElBQUksS0FBRyxLQUFLLEtBQUssVUFBU0EsR0FBRSxJQUFJLElBQUdDLE9BQUlBLEdBQUUsWUFBWSxNQUFJLE9BQUtBLEdBQUUsWUFBWSxNQUFJLFFBQU0sS0FBSyxLQUFLLFdBQVVBLEdBQUUsWUFBWSxNQUFJLEdBQUcsR0FBRUEsT0FBSSxPQUFLLEtBQUssS0FBSyxnQkFBYyxLQUFLLFVBQVEsS0FBSyxJQUFJLE1BQU0sS0FBSyxLQUFLLFdBQVcsR0FBRSxLQUFLLEtBQUssU0FBUSxLQUFLLEtBQUssV0FBVyxLQUFJQSxNQUFHLEtBQUssS0FBSyxPQUFNQSxHQUFFLFlBQVksQ0FBQyxHQUFFRCxJQUFHLFNBQU8sVUFBUztBQUFDLGNBQUcsS0FBSyxLQUFLLFVBQVM7QUFBQyxrQkFBTUUsS0FBRSxLQUFLLEtBQUssU0FBUyxLQUFLLEtBQUs7QUFBRSxZQUFBQSxPQUFJLEtBQUssUUFBTUEsSUFBRSxLQUFLLFFBQU0sU0FBUSxLQUFLLElBQUksTUFBTSxLQUFLLEtBQUs7QUFBQSxVQUFHO0FBQUMsZUFBSyxVQUFRLFlBQVUsS0FBSyxRQUFNO0FBQUEsUUFBVTtBQUFDLFVBQUUsQ0FBQ0QsSUFBRUQsSUFBRyxNQUFLQSxJQUFHLFFBQVEsR0FBRSxRQUFRLE1BQUksS0FBSyxRQUFNLFlBQVcsS0FBSyxVQUFRLFlBQVUsS0FBSyxVQUFRLGFBQVcsS0FBSyxLQUFLLFVBQVUsR0FBRSxLQUFLLE9BQU8sSUFBRyxLQUFLLFVBQVEsWUFBVSxLQUFLLFVBQVEsYUFBVyxLQUFLLE1BQU07QUFBQSxNQUFFO0FBQUEsTUFBQyxRQUFPO0FBQUMsYUFBSyxNQUFNLE9BQU8sR0FBRSxLQUFLLE1BQU0sZUFBZSxZQUFXLEtBQUssVUFBVSxHQUFFLEtBQUssT0FBTyxNQUFNO0FBQUEsQ0FDcnVHLEdBQUUsRUFBRSxLQUFLLE9BQU0sS0FBRSxHQUFFLEtBQUssSUFBSSxNQUFNLEdBQUUsS0FBSyxLQUFHLFFBQU8sS0FBSyxLQUFLLEdBQUcsS0FBSyxLQUFLLElBQUcsS0FBSyxLQUFLLEdBQUUsS0FBSyxZQUFZO0FBQUEsTUFBRTtBQUFBLE1BQUMsZ0JBQWU7QUFBQyxjQUFNQyxLQUFFLEVBQUUsS0FBSyxZQUFXLFFBQVEsT0FBTyxTQUFRLEVBQUMsTUFBSyxLQUFFLENBQUMsRUFBRSxNQUFNO0FBQUEsQ0FDL0wsRUFBRSxTQUFPO0FBQUUsYUFBSyxPQUFPLE1BQU0sV0FBVyxPQUFPLEtBQUssTUFBS0EsS0FBRSxFQUFFLENBQUM7QUFBQSxNQUFFO0FBQUEsTUFBQyxTQUFRO0FBQUMsY0FBTUEsS0FBRSxFQUFFLEtBQUssUUFBUSxJQUFJLEtBQUcsSUFBRyxRQUFRLE9BQU8sU0FBUSxFQUFDLE1BQUssS0FBRSxDQUFDO0FBQUUsWUFBR0EsT0FBSSxLQUFLLFlBQVc7QUFBQyxjQUFHLEtBQUssVUFBUSxVQUFVLE1BQUssT0FBTyxNQUFNLFdBQVcsT0FBTyxJQUFJO0FBQUEsZUFBTztBQUFDLGtCQUFNRCxLQUFFLEdBQUcsS0FBSyxZQUFXQyxFQUFDO0FBQUUsZ0JBQUcsS0FBSyxjQUFjLEdBQUVELE1BQUdBLElBQUcsV0FBUyxHQUFFO0FBQUMsb0JBQU1FLEtBQUVGLEdBQUUsQ0FBQztBQUFFLG1CQUFLLE9BQU8sTUFBTSxXQUFXLE9BQU8sS0FBSyxHQUFFRSxFQUFDLENBQUMsR0FBRSxLQUFLLE9BQU8sTUFBTSxXQUFXLE1BQU0sTUFBTSxDQUFDLENBQUM7QUFBRSxvQkFBTUMsS0FBRUYsR0FBRSxNQUFNO0FBQUEsQ0FDaGI7QUFBRSxtQkFBSyxPQUFPLE1BQU1FLEdBQUVELEVBQUMsQ0FBQyxHQUFFLEtBQUssYUFBV0QsSUFBRSxLQUFLLE9BQU8sTUFBTSxXQUFXLE9BQU8sS0FBSyxHQUFFRSxHQUFFLFNBQU9ELEtBQUUsQ0FBQyxDQUFDO0FBQUU7QUFBQSxZQUFNO0FBQUMsZ0JBQUdGLE1BQUdBLElBQUcsU0FBTyxHQUFFO0FBQUMsb0JBQU1FLEtBQUVGLEdBQUUsQ0FBQztBQUFFLG1CQUFLLE9BQU8sTUFBTSxXQUFXLE9BQU8sS0FBSyxHQUFFRSxFQUFDLENBQUMsR0FBRSxLQUFLLE9BQU8sTUFBTSxXQUFXLE1BQU0sS0FBSyxDQUFDO0FBQUUsb0JBQU1DLEtBQUVGLEdBQUUsTUFBTTtBQUFBLENBQ3ZQLEVBQUUsTUFBTUMsRUFBQztBQUFFLG1CQUFLLE9BQU8sTUFBTUMsR0FBRSxLQUFLO0FBQUEsQ0FDcEMsQ0FBQyxHQUFFLEtBQUssYUFBV0Y7QUFBRTtBQUFBLFlBQU07QUFBQyxpQkFBSyxPQUFPLE1BQU0sV0FBVyxNQUFNLEtBQUssQ0FBQztBQUFBLFVBQUU7QUFBQyxlQUFLLE9BQU8sTUFBTUEsRUFBQyxHQUFFLEtBQUssVUFBUSxjQUFZLEtBQUssUUFBTSxXQUFVLEtBQUssYUFBV0E7QUFBQSxRQUFFO0FBQUEsTUFBQztBQUFBLElBQUM7QUFBQyxJQUFNLEtBQU4sY0FBaUIsRUFBQztBQUFBLE1BQUMsSUFBSSxTQUFRO0FBQUMsZUFBTyxLQUFLLFFBQU0sSUFBRTtBQUFBLE1BQUM7QUFBQSxNQUFDLElBQUksU0FBUTtBQUFDLGVBQU8sS0FBSyxXQUFTO0FBQUEsTUFBQztBQUFBLE1BQUMsWUFBWUEsSUFBRTtBQUFDLGNBQU1BLElBQUUsS0FBRSxHQUFFLEtBQUssUUFBTSxDQUFDLENBQUNBLEdBQUUsY0FBYSxLQUFLLEdBQUcsU0FBUSxNQUFJO0FBQUMsZUFBSyxRQUFNLEtBQUs7QUFBQSxRQUFPLENBQUMsR0FBRSxLQUFLLEdBQUcsV0FBVSxDQUFBRCxPQUFHO0FBQUMsZUFBSyxPQUFPLE1BQU0sV0FBVyxPQUFPLEtBQUssR0FBRSxFQUFFLENBQUMsR0FBRSxLQUFLLFFBQU1BLElBQUUsS0FBSyxRQUFNLFVBQVMsS0FBSyxNQUFNO0FBQUEsUUFBRSxDQUFDLEdBQUUsS0FBSyxHQUFHLFVBQVMsTUFBSTtBQUFDLGVBQUssUUFBTSxDQUFDLEtBQUs7QUFBQSxRQUFNLENBQUM7QUFBQSxNQUFFO0FBQUEsSUFBQztBQUFDLElBQUksS0FBRyxPQUFPO0FBQWQsSUFBNkIsS0FBRyxDQUFDLEdBQUVDLElBQUVELE9BQUlDLE1BQUssSUFBRSxHQUFHLEdBQUVBLElBQUUsRUFBQyxZQUFXLE1BQUcsY0FBYSxNQUFHLFVBQVMsTUFBRyxPQUFNRCxHQUFDLENBQUMsSUFBRSxFQUFFQyxFQUFDLElBQUVEO0FBQWpILElBQW1ILElBQUUsQ0FBQyxHQUFFQyxJQUFFRCxRQUFLLEdBQUcsR0FBRSxPQUFPQyxNQUFHLFdBQVNBLEtBQUUsS0FBR0EsSUFBRUQsRUFBQyxHQUFFQTtBQUFHLElBQUksS0FBRyxjQUFjLEVBQUM7QUFBQSxNQUFDLFlBQVlDLElBQUU7QUFBQyxjQUFNQSxJQUFFLEtBQUUsR0FBRSxFQUFFLE1BQUssU0FBUyxHQUFFLEVBQUUsTUFBSyxVQUFTLENBQUMsR0FBRSxLQUFLLFVBQVFBLEdBQUUsU0FBUSxLQUFLLFFBQU0sQ0FBQyxHQUFHQSxHQUFFLGlCQUFlLENBQUMsQ0FBQyxHQUFFLEtBQUssU0FBTyxLQUFLLElBQUksS0FBSyxRQUFRLFVBQVUsQ0FBQyxFQUFDLE9BQU1ELEdBQUMsTUFBSUEsT0FBSUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLEtBQUssR0FBRyxPQUFNLENBQUFELE9BQUc7QUFBQyxVQUFBQSxPQUFJLE9BQUssS0FBSyxVQUFVO0FBQUEsUUFBRSxDQUFDLEdBQUUsS0FBSyxHQUFHLFVBQVMsQ0FBQUEsT0FBRztBQUFDLGtCQUFPQSxJQUFFO0FBQUEsWUFBQyxLQUFJO0FBQUEsWUFBTyxLQUFJO0FBQUssbUJBQUssU0FBTyxLQUFLLFdBQVMsSUFBRSxLQUFLLFFBQVEsU0FBTyxJQUFFLEtBQUssU0FBTztBQUFFO0FBQUEsWUFBTSxLQUFJO0FBQUEsWUFBTyxLQUFJO0FBQVEsbUJBQUssU0FBTyxLQUFLLFdBQVMsS0FBSyxRQUFRLFNBQU8sSUFBRSxJQUFFLEtBQUssU0FBTztBQUFFO0FBQUEsWUFBTSxLQUFJO0FBQVEsbUJBQUssWUFBWTtBQUFFO0FBQUEsVUFBSztBQUFBLFFBQUMsQ0FBQztBQUFBLE1BQUU7QUFBQSxNQUFDLElBQUksU0FBUTtBQUFDLGVBQU8sS0FBSyxRQUFRLEtBQUssTUFBTSxFQUFFO0FBQUEsTUFBSztBQUFBLE1BQUMsWUFBVztBQUFDLGNBQU1DLEtBQUUsS0FBSyxNQUFNLFdBQVMsS0FBSyxRQUFRO0FBQU8sYUFBSyxRQUFNQSxLQUFFLENBQUMsSUFBRSxLQUFLLFFBQVEsSUFBSSxDQUFBRCxPQUFHQSxHQUFFLEtB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QUNOQSxPQUFNLE9BQ05BLE9BQU0sT0FDTkEsTUFBSyxPQUFRQSxNQUFLLE9BQ2xCQSxPQUFNLE9BQ05BLE1BQUssT0FBUUEsTUFBSyxPQUNsQkEsT0FBTSxPQUNOQSxPQUFNLE9BQ05BLE9BQU0sT0FDTkEsT0FBTSxPQUNOQSxPQUFNLE9BQ05BLE1BQUssT0FBUUEsTUFBSyxPQUNsQkEsT0FBTSxPQUNOQSxPQUFNLE9BQ05BLE9BQU0sT0FDTkEsT0FBTSxPQUNOQSxPQUFNLE9BQ05BLE9BQU0sT0FDTkEsT0FBTSxPQUNOQSxPQUFNLE9BQ05BLE9BQU0sT0FDTkEsTUFBSyxPQUFTQSxNQUFLLE9BQ25CQSxPQUFNLE9BQ05BLE1BQUssT0FBU0EsTUFBSyxPQUNuQkEsT0FBTSxPQUNOQSxNQUFLLE9BQVNBLE1BQUssT0FDbkJBLE9BQU0sT0FDTkEsT0FBTSxPQUNOQSxPQUFNLE9BQ05BLE9BQU0sT0FDTkEsT0FBTSxPQUNOQSxPQUFNLE9BQ05BLE9BQU0sT0FDTkEsT0FBTSxPQUNOQSxPQUFNLE9BQ05BLE9BQU0sT0FDTkEsT0FBTSxPQUNOQSxPQUFNLE9BQ05BLE9BQU0sT0FDTkEsT0FBTSxPQUNOQSxPQUFNLE9BQ05BLE9BQU0sT0FDTkEsT0FBTSxPQUNOQSxPQUFNLE9BQ05BLE1BQUssT0FBU0EsTUFBSyxPQUNuQkEsT0FBTSxPQUNOQSxPQUFNLE9BQ05BLE1BQUssT0FBU0EsTUFBSyxPQUNuQkEsT0FBTSxPQUNOQSxPQUFNLE9BQ05BLE1BQUssT0FBU0EsTUFBSyxPQUNuQkEsTUFBSyxPQUFTQSxNQUFLLE9BQ25CQSxNQUFLLE9BQVNBLE1BQUssT0FDbkJBLE1BQUssT0FBU0EsTUFBSyxPQUNuQkEsTUFBSyxPQUFTQSxNQUFLLE9BQ25CQSxPQUFNLFFBQ05BLE1BQUssUUFBU0EsTUFBSyxRQUNuQkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE1BQUssUUFBVUEsTUFBSyxRQUNwQkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxNQUFLLFFBQVVBLE1BQUssUUFDcEJBLE1BQUssUUFBVUEsTUFBSyxRQUNwQkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE1BQUssUUFBVUEsTUFBSyxRQUNwQkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsTUFBSyxRQUFVQSxNQUFLLFFBQ3BCQSxNQUFLLFFBQVVBLE1BQUssUUFDcEJBLE1BQUssUUFBVUEsTUFBSyxRQUNwQkEsT0FBTSxRQUNOQSxNQUFLLFFBQVVBLE1BQUssUUFDcEJBLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE1BQUssUUFBVUEsTUFBSyxRQUNwQkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE1BQUssUUFBVUEsTUFBSyxRQUNwQkEsT0FBTSxRQUNOQSxNQUFLLFFBQVVBLE1BQUssUUFDcEJBLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsTUFBSyxRQUFVQSxNQUFLLFFBQ3BCQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE1BQUssUUFBVUEsTUFBSyxRQUNwQkEsTUFBSyxRQUFVQSxNQUFLLFFBQ3BCQSxNQUFLLFFBQVVBLE1BQUssUUFDcEJBLE1BQUssUUFBVUEsTUFBSyxRQUNwQkEsTUFBSyxRQUFVQSxNQUFLLFFBQ3BCQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsTUFBSyxRQUFVQSxNQUFLLFFBQ3BCQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsTUFBSyxRQUFVQSxNQUFLLFFBQ3BCQSxPQUFNLFFBQ05BLE1BQUssUUFBVUEsTUFBSyxRQUNwQkEsTUFBSyxRQUFVQSxNQUFLLFFBQ3BCQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxNQUFLLFFBQVVBLE1BQUssUUFDcEJBLE1BQUssUUFBVUEsTUFBSyxRQUNwQkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsTUFBSyxRQUFVQSxNQUFLLFFBQ3BCQSxNQUFLLFFBQVVBLE1BQUssUUFDcEJBLE1BQUssUUFBVUEsTUFBSyxRQUNwQkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsTUFBSyxRQUFVQSxNQUFLLFFBQ3BCQSxPQUFNLFFBQ05BLE1BQUssUUFBVUEsTUFBSyxRQUNwQkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFNBQ05BLE1BQUssU0FBVUEsTUFBSyxTQUNwQkEsTUFBSyxTQUFVQSxNQUFLLFNBQ3BCQSxNQUFLLFNBQVVBLE1BQUssU0FDcEJBLE1BQUssU0FBVUEsTUFBSyxTQUNwQkEsTUFBSyxTQUFVQSxNQUFLLFNBQ3BCQSxPQUFNLFNBQ05BLE1BQUssVUFBV0EsTUFBSyxVQUNyQkEsTUFBSyxVQUFXQSxNQUFLLFVBQ3JCQSxNQUFLLFVBQVdBLE1BQUssVUFDckJBLE1BQUssVUFBV0EsTUFBSyxVQUNyQkEsT0FBTSxVQUNOQSxPQUFNLFVBQ05BLE1BQUssVUFBV0EsTUFBSyxVQUNyQkEsTUFBSyxVQUFXQSxNQUFLLFVBQ3JCQSxNQUFLLFVBQVdBLE1BQUssV0FDckJBLE1BQUssV0FBWUEsTUFBSztBQUMzQjtBQUVBLFNBQVMsWUFBWUEsSUFBRztBQUN2QixTQUFPQSxPQUFNLFNBQ1RBLE1BQUssU0FBVUEsTUFBSyxTQUNwQkEsTUFBSyxTQUFVQSxNQUFLO0FBQ3pCO0FBRUEsU0FBUyxPQUFPQSxJQUFHO0FBQ2xCLFNBQU9BLE1BQUssUUFBVUEsTUFBSyxRQUN2QkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxNQUFLLFFBQVVBLE1BQUssUUFDcEJBLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE1BQUssUUFBVUEsTUFBSyxRQUNwQkEsTUFBSyxRQUFVQSxNQUFLLFFBQ3BCQSxPQUFNLFFBQ05BLE1BQUssUUFBVUEsTUFBSyxRQUNwQkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFNBQ05BLE9BQU0sU0FDTkEsT0FBTSxTQUNOQSxNQUFLLFNBQVVBLE1BQUssU0FDcEJBLE9BQU0sU0FDTkEsTUFBSyxTQUFVQSxNQUFLLFNBQ3BCQSxPQUFNLFNBQ05BLE9BQU0sU0FDTkEsT0FBTSxTQUNOQSxPQUFNLFNBQ05BLE9BQU0sU0FDTkEsT0FBTSxTQUNOQSxNQUFLLFNBQVVBLE1BQUssU0FDcEJBLE1BQUssU0FBVUEsTUFBSyxTQUNwQkEsTUFBSyxTQUFVQSxNQUFLLFNBQ3BCQSxNQUFLLFNBQVVBLE1BQUssU0FDcEJBLE1BQUssU0FBVUEsTUFBSyxTQUNwQkEsTUFBSyxTQUFVQSxNQUFLLFNBQ3BCQSxNQUFLLFNBQVVBLE1BQUssU0FDcEJBLE1BQUssU0FBVUEsTUFBSyxTQUNwQkEsTUFBSyxTQUFVQSxNQUFLLFNBQ3BCQSxNQUFLLFNBQVVBLE1BQUssU0FDcEJBLE1BQUssU0FBVUEsTUFBSyxTQUNwQkEsTUFBSyxTQUFVQSxNQUFLLFNBQ3BCQSxNQUFLLFNBQVVBLE1BQUssU0FDcEJBLE1BQUssU0FBVUEsTUFBSyxTQUNwQkEsTUFBSyxTQUFVQSxNQUFLLFNBQ3BCQSxNQUFLLFNBQVVBLE1BQUssU0FDcEJBLE1BQUssU0FBVUEsTUFBSyxTQUNwQkEsTUFBSyxTQUFVQSxNQUFLLFNBQ3BCQSxNQUFLLFNBQVVBLE1BQUssU0FDcEJBLE1BQUssU0FBVUEsTUFBSyxTQUNwQkEsTUFBSyxTQUFVQSxNQUFLLFNBQ3BCQSxNQUFLLFNBQVdBLE1BQUssU0FDckJBLE9BQU0sU0FDTkEsT0FBTSxTQUNOQSxNQUFLLFNBQVdBLE1BQUssVUFDckJBLE1BQUssVUFBV0EsTUFBSyxVQUNyQkEsTUFBSyxVQUFXQSxNQUFLLFVBQ3JCQSxNQUFLLFVBQVdBLE1BQUssVUFDckJBLE1BQUssVUFBV0EsTUFBSyxVQUNyQkEsT0FBTSxVQUNOQSxPQUFNLFVBQ05BLE1BQUssVUFBV0EsTUFBSyxVQUNyQkEsT0FBTSxVQUNOQSxNQUFLLFVBQVdBLE1BQUssVUFDckJBLE9BQU0sVUFDTkEsTUFBSyxVQUFXQSxNQUFLLFVBQ3JCQSxNQUFLLFVBQVdBLE1BQUssVUFDckJBLE1BQUssVUFBV0EsTUFBSyxVQUNyQkEsTUFBSyxVQUFXQSxNQUFLLFVBQ3JCQSxPQUFNLFVBQ05BLE9BQU0sVUFDTkEsT0FBTSxVQUNOQSxNQUFLLFVBQVdBLE1BQUssVUFDckJBLE1BQUssVUFBV0EsTUFBSyxVQUNyQkEsTUFBSyxVQUFXQSxNQUFLLFVBQ3JCQSxNQUFLLFVBQVdBLE1BQUssVUFDckJBLE9BQU0sVUFDTkEsT0FBTSxVQUNOQSxNQUFLLFVBQVdBLE1BQUssVUFDckJBLE1BQUssVUFBV0EsTUFBSyxVQUNyQkEsTUFBSyxVQUFXQSxNQUFLLFVBQ3JCQSxNQUFLLFVBQVdBLE1BQUssVUFDckJBLE1BQUssVUFBV0EsTUFBSyxVQUNyQkEsTUFBSyxVQUFXQSxNQUFLLFVBQ3JCQSxNQUFLLFVBQVdBLE1BQUssVUFDckJBLE1BQUssVUFBV0EsTUFBSyxVQUNyQkEsT0FBTSxVQUNOQSxNQUFLLFVBQVdBLE1BQUssVUFDckJBLE9BQU0sVUFDTkEsTUFBSyxVQUFXQSxNQUFLLFVBQ3JCQSxNQUFLLFVBQVdBLE1BQUssVUFDckJBLE1BQUssVUFBV0EsTUFBSyxVQUNyQkEsTUFBSyxVQUFXQSxNQUFLLFVBQ3JCQSxPQUFNLFVBQ05BLE9BQU0sVUFDTkEsT0FBTSxVQUNOQSxPQUFNLFVBQ05BLE1BQUssVUFBV0EsTUFBSyxVQUNyQkEsTUFBSyxVQUFXQSxNQUFLLFVBQ3JCQSxPQUFNLFVBQ05BLE1BQUssVUFBV0EsTUFBSyxVQUNyQkEsTUFBSyxVQUFXQSxNQUFLLFVBQ3JCQSxNQUFLLFVBQVdBLE1BQUssVUFDckJBLE9BQU0sVUFDTkEsT0FBTSxVQUNOQSxNQUFLLFVBQVdBLE1BQUssVUFDckJBLE1BQUssVUFBV0EsTUFBSyxVQUNyQkEsT0FBTSxVQUNOQSxNQUFLLFVBQVdBLE1BQUssVUFDckJBLE1BQUssVUFBV0EsTUFBSyxVQUNyQkEsTUFBSyxVQUFXQSxNQUFLLFVBQ3JCQSxNQUFLLFVBQVdBLE1BQUssVUFDckJBLE1BQUssVUFBV0EsTUFBSyxVQUNyQkEsTUFBSyxVQUFXQSxNQUFLLFVBQ3JCQSxNQUFLLFVBQVdBLE1BQUssVUFDckJBLE1BQUssVUFBV0EsTUFBSyxVQUNyQkEsTUFBSyxVQUFXQSxNQUFLLFVBQ3JCQSxNQUFLLFVBQVdBLE1BQUssVUFDckJBLE1BQUssVUFB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RUEsUUFBTSxjQUFjO0FBQUE7QUFHcEIsUUFBTSxhQUFhLGtCQUFrQixRQUFRO0FBQzdDLE1BQUksQ0FBQyxZQUFZO0FBQ2YsVUFBTSxJQUFJO0FBQUEsTUFDUiwwREFBMEQsV0FBVztBQUFBLEVBQ3pFLFdBQVc7QUFBQSxJQUNUO0FBQUEsRUFDRjtBQUVBLFFBQU0sUUFBUSxvQkFBb0IsVUFBVTtBQUM1QyxNQUFJLENBQUMsT0FBTztBQUNWLFVBQU0sSUFBSTtBQUFBLE1BQ1IsK0RBQStELFdBQVcscUJBQXFCLFVBQVU7QUFBQSxFQUM3RyxXQUFXO0FBQUEsSUFDVDtBQUFBLEVBQ0Y7QUFDRjtBQUVBLGVBQWUsWUFBWUEsSUFBVztBQUNwQyxNQUFJO0FBQ0YsV0FBTyxNQUFNLEdBQUcsU0FBU0EsSUFBRyxNQUFNO0FBQUEsRUFDcEMsUUFBUTtBQUNOLFdBQU87QUFBQSxFQUNUO0FBQ0Y7QUFFQSxlQUFlLGdCQUFnQkEsSUFBVztBQUN4QyxRQUFNLFdBQVcsTUFBTSxZQUFZQSxFQUFDO0FBQ3BDLE1BQUksYUFBYSxNQUFNO0FBQ3JCLFdBQU87QUFBQSxFQUNUO0FBQ0EsTUFBSTtBQUNGLFdBQU8saUJBQWlCLFFBQVE7QUFBQSxFQUNsQyxRQUFRO0FBQ04sV0FBTztBQUFBLEVBQ1Q7QUFDRjtBQUVBLFNBQVMsaUJBQWlCLFVBQWtCO0FBQzFDLE1BQUk7QUFDRixXQUFPLEtBQUssTUFBTSxRQUFRO0FBQUEsRUFDNUIsUUFBUTtBQUNOLFdBQU87QUFBQSxFQUNUO0FBQ0Y7IiwKICAibmFtZXMiOiBbImRlZmF1bHRzIiwgInAiLCAiYyIsICJpIiwgImwiLCAieCIsICJ0ZXh0IiwgImkiLCAieCIsICJ5IiwgImkiLCAicCIsICJhcmd2IiwgImVudiIsICJpc0NvbG9yU3VwcG9ydGVkIiwgInJlcGxhY2VDbG9zZSIsICJjcmVhdGVDb2xvcnMiLCAiRiIsICJ1IiwgInQiLCAicyIsICJXIiwgIkMiLCAiRCIsICJhIiwgIm4iLCAiQiIsICJjIiwgInAiLCAiRyIsICJhbnNpUmVnZXgiLCAic3RyaXBBbnNpIiwgIngiLCAiZW52IiwgIl8iLCAibSIsICJnZXRDb2xvciIsICJjcmVhdGVDb25zb2xhIiwgIlQiLCAiQSIsICJyIiwgImwiLCAiSSIsICJSIiwgInkiLCAiYyIsICJMIiwgIk8iLCAiTiIsICJQIiwgInVuaWNvZGUiLCAicyIsICJyZWdleCIsICJpIiwgIl9fZGVmUHJvcCIsICJhIiwgImMiLCAiZCIsICJnIiwgImkiLCAibCIsICJjIiwgInAiLCAieCIsICJrIiwgImRlZmF1bHRzIiwgImEiLCAicCIsICJfIiwgImkiLCAiayIsICJzdGRvdXQiXQp9Cg==