@restatedev/restate-cdk 1.1.1 → 1.1.2

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.
@@ -0,0 +1,11 @@
1
+ name: "CLA Assistant"
2
+ on:
3
+ issue_comment:
4
+ types: [created]
5
+ pull_request_target:
6
+ types: [opened, closed, synchronize]
7
+
8
+ jobs:
9
+ CLAAssistant:
10
+ uses: restatedev/restate/.github/workflows/cla.yml@main
11
+ secrets: inherit
@@ -1,5 +1,9 @@
1
1
  name: PR Checks (npm)
2
2
 
3
+ permissions:
4
+ contents: read
5
+ pull-requests: read
6
+
3
7
  on:
4
8
  pull_request:
5
9
  types: [opened, synchronize, reopened, ready_for_review]
package/RELEASING.md ADDED
@@ -0,0 +1,3 @@
1
+ # Releasing the package
2
+
3
+ Create and publish a new release in [GitHub](https://github.com/restatedev/cdk/releases).
@@ -121,9 +121,9 @@ class SingleNodeRestateDeployment extends constructs_1.Construct {
121
121
  const adotTag = props.adotTag ?? ADOT_DOCKER_DEFAULT_TAG;
122
122
  this.tlsEnabled = props.tlsTermination === TlsTermination.ON_HOST_SELF_SIGNED_CERTIFICATE;
123
123
  const envDefaults = {
124
- RESTATE_OBSERVABILITY__LOG__FORMAT: "Json",
124
+ RESTATE_LOG_FORMAT: "json",
125
125
  RUST_LOG: "info",
126
- RESTATE_OBSERVABILITY__TRACING__ENDPOINT: "http://localhost:4317",
126
+ RESTATE_TRACING_ENDPOINT: "http://localhost:4317",
127
127
  };
128
128
  const envArgs = Object.entries({ ...envDefaults, ...(props.environment ?? {}) })
129
129
  .map(([key, value]) => `-e ${key}="${value}"`)
@@ -329,4 +329,4 @@ fi
329
329
  }
330
330
  }
331
331
  exports.SingleNodeRestateDeployment = SingleNodeRestateDeployment;
332
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlLW5vZGUtcmVzdGF0ZS1kZXBsb3ltZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vbGliL3Jlc3RhdGUtY29uc3RydWN0cy9zaW5nbGUtbm9kZS1yZXN0YXRlLWRlcGxveW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7R0FTRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUgsMkNBQXVDO0FBQ3ZDLDJEQUE2QztBQUM3Qyx5REFBMkM7QUFDM0MseURBQTJDO0FBRTNDLDZEQUFtRDtBQUVuRCw2Q0FBNEM7QUE2RzVDLElBQVksY0FXWDtBQVhELFdBQVksY0FBYztJQUN4Qjs7T0FFRztJQUNILDJEQUFRLENBQUE7SUFFUjs7O09BR0c7SUFDSCx5R0FBK0IsQ0FBQTtBQUNqQyxDQUFDLEVBWFcsY0FBYyw4QkFBZCxjQUFjLFFBV3pCO0FBRUQsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUM7QUFDbEMsTUFBTSx3QkFBd0IsR0FBRyxHQUFHLENBQUM7QUFDckMsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUM7QUFDaEMsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLENBQUM7QUFDcEMsTUFBTSxxQkFBcUIsR0FBRyw4QkFBOEIsQ0FBQztBQUM3RCxNQUFNLDBCQUEwQixHQUFHLFFBQVEsQ0FBQztBQUM1QyxNQUFNLHVCQUF1QixHQUFHLFFBQVEsQ0FBQztBQUN6QyxNQUFNLGdCQUFnQixHQUFHLFVBQVUsQ0FBQztBQUVwQzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUFDSCxNQUFhLDJCQUE0QixTQUFRLHNCQUFTO0lBYXhELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBNkI7UUFDckUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENB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Z0JBQ2xCLCtCQUErQjtnQkFDL0IsRUFBRTtnQkFDRiw4REFBOEQ7Z0JBQzlELGtFQUFrRTtnQkFDbEUsb0NBQW9DO2dCQUNwQyw0QkFBNEI7Z0JBQzVCLCtCQUErQjtnQkFDL0IsaUNBQWlDO2dCQUNqQyxFQUFFO2dCQUNGLGdCQUFnQjtnQkFDaEIsbUNBQW1DLG9CQUFvQixHQUFHO2dCQUMxRCwwQkFBMEIsS0FBSyxDQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxJQUFJLElBQUksR0FBRztnQkFDL0UsS0FBSztnQkFDTCxHQUFHO2dCQUNILEVBQUU7Z0JBQ0YsVUFBVTtnQkFDVixZQUFZLHNCQUFzQixhQUFhO2dCQUMvQyxpQkFBaUIsc0JBQXNCLGFBQWE7Z0JBQ3BELGtCQUFrQjtnQkFDbEIsK0JBQStCO2dCQUMvQixFQUFFO2dCQUNGLDhEQUE4RDtnQkFDOUQsa0VBQWtFO2dCQUNsRSxvQ0FBb0M7Z0JBQ3BDLDRCQUE0QjtnQkFDNUIsK0JBQStCO2dCQUMvQixpQ0FBaUM7Z0JBQ2pDLEVBQUU7Z0JBQ0YsZ0JBQWdCO2dCQUNoQixtQ0FBbUMsa0JBQWtCLEdBQUc7Z0JBQ3hELEtBQUs7Z0JBQ0wsR0FBRzthQUNKLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUNiLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFuVEQsa0VBbVRDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAyMy0yMDI1IC0gUmVzdGF0ZSBTb2Z0d2FyZSwgSW5jLiwgUmVzdGF0ZSBHbWJIXG4gKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIFJlc3RhdGUgQ0RLIENvbnN0cnVjdCBMaWJyYXJ5LFxuICogd2hpY2ggaXMgcmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLlxuICpcbiAqIFlvdSBjYW4gZmluZCBhIGNvcHkgb2YgdGhlIGxpY2Vuc2UgaW4gZmlsZSBMSUNFTlNFIGluIHRoZSByb290XG4gKiBkaXJlY3Rvcnkgb2YgdGhpcyByZXBvc2l0b3J5IG9yIHBhY2thZ2UsIG9yIGF0XG4gKiBodHRwczovL2dpdGh1Yi5jb20vcmVzdGF0ZWRldi9zZGstdHlwZXNjcmlwdC9ibG9iL21haW4vTElDRU5TRVxuICovXG5cbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgKiBhcyBsb2dzIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbG9nc1wiO1xuaW1wb3J0ICogYXMgZWMyIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWMyXCI7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCB7IElSZXN0YXRlRW52aXJvbm1lbnQgfSBmcm9tIFwiLi9yZXN0YXRlLWVudmlyb25tZW50XCI7XG5pbXBvcnQgeyBUcmFjaW5nTW9kZSB9IGZyb20gXCIuL2RlcGxveW1lbnRzLWNvbW1vblwiO1xuaW1wb3J0ICogYXMgY2RrIGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgUmVtb3ZhbFBvbGljeSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNpbmdsZU5vZGVSZXN0YXRlUHJvcHMge1xuICAvKiogRUMyIGluc3RhbmNlIHR5cGUgdG8gdXNlLiAqL1xuICBpbnN0YW5jZVR5cGU/OiBlYzIuSW5zdGFuY2VUeXBlO1xuXG4gIC8qKiBNYWNoaW5lIGltYWdlLiBOb3RlOiBzdGFydHVwIHNjcmlwdCBleHBlY3RzIHl1bS1iYXNlZCBwYWNrYWdlIG1hbmFnZW1lbnQuICovXG4gIG1hY2hpbmVJbWFnZT86IGVjMi5JTWFjaGluZUltYWdlO1xuXG4gIC8qKiBUaGUgVlBDIGluIHdoaWNoIHRvIGxhdW5jaCB0aGUgUmVzdGF0ZSBob3N0LiAqL1xuICB2cGM/OiBlYzIuSVZwYztcblxuICBuZXR3b3JrQ29uZmlndXJhdGlvbj86IHtcbiAgICAvKipcbiAgICAgKiBTdWJuZXQgdHlwZSBmb3IgdGhlIFJlc3RhdGUgaG9zdC5cbiAgICAgKlxuICAgICAqIEF2YWlsYWJsZSBvcHRpb25zOlxuICAgICAqICAtIFtEZWZhdWx0XSB7QGxpbmsgZWMyLlN1Ym5ldFR5cGUuUFJJVkFURV9XSVRIX0VHUkVTU30gd2lsbCBjcmVhdGUgdGhlIFJlc3RhdGUgaW5zdGFuY2Ugd2l0aCBvdXRib3VuZCBpbnRlcm5ldFxuICAgICAqICAgIGFjY2VzcyBvbmx5LCBzbyB0aGF0IGl0IGNhbiBpbnZva2UgSFRUUCBlbmRwb2ludHMuIFRoZSBzZWN1cml0eSBncm91cHMge0BsaW5rIGluZ3Jlc3NTZWN1cml0eUdyb3VwfSBhbmRcbiAgICAgKiAgICB7QGxpbmsgYWRtaW5TZWN1cml0eUdyb3VwfSBjb250cm9sIGluYm91bmQgdHJhZmZpYyB0byB0aGUgc2VydmljZSBpbmdyZXNzIGFuZCBhZG1pbiBwb3J0cyByZXNwZWN0aXZlbHkuXG4gICAgICogICAgQ29uZmlndXJlIHtAbGluayBTZXJ2aWNlRGVwbG95ZXJ9IHRvIHVzZSB0aGUgbGF0dGVyLCBhbmQgc2V0IHVwIGluZ3Jlc3MgdHJhZmZpYyByb3V0aW5nIG91dHNpZGUgb2YgdGhpc1xuICAgICAqICAgIGNvbnN0cnVjdCB1c2luZyB0aGUgZm9ybWVyLlxuICAgICAqICAtIEluc2VjdXJlLCBpbnRlcm5ldC1mYWNpbmcge0BsaW5rIGVjMi5TdWJuZXRUeXBlLlBVQkxJQ30gd2lsbCBhbHNvIHByb3Zpc2lvbiBhbiBuZ2lueCByZXZlcnNlIHByb3h5XG4gICAgICogICAgYW5kIGFuIEhUVFAgbGlzdGVuZXIgd2l0aCBhIHNlbGYtc2lnbmVkIGNlcnRpZmljYXRlLlxuICAgICAqL1xuICAgIHN1Ym5ldFR5cGU/OiBlYzIuU3VibmV0VHlwZS5QUklWQVRFX1dJVEhfRUdSRVNTIHwgZWMyLlN1Ym5ldFR5cGUuUFVCTElDO1xuICB9O1xuXG4gIC8qKlxuICAgKiBBbGxvdyBpbmNvbWluZyBpbmdyZXNzIHRyYWZmaWMgZnJvbSBhbnl3aGVyZS4gRGVmYXVsdDogYGZhbHNlYC4gQWx0ZXJuYXRpdmVseSwgYWRkIHJ1bGVzIHRvIHRoZVxuICAgKiBgaW5ncmVzc1NlY3VyaXR5R3JvdXBgIGRpcmVjdGx5LlxuICAgKi9cbiAgcHVibGljSW5ncmVzcz86IGJvb2xlYW47XG5cbiAgLyoqIExvZyBncm91cCBmb3IgUmVzdGF0ZSBzZXJ2aWNlIGxvZ3MuICovXG4gIGxvZ0dyb3VwPzogbG9ncy5Mb2dHcm91cDtcblxuICAvKiogVHJhY2luZyBtb2RlIGZvciBSZXN0YXRlIHNlcnZpY2VzLiBEZWZhdWx0cyB0byB7QGxpbmsgVHJhY2luZ01vZGUuRElTQUJMRUR9LiAqL1xuICB0cmFjaW5nPzogVHJhY2luZ01vZGU7XG5cbiAgLyoqIFByZWZpeCBmb3IgcmVzb3VyY2VzIGNyZWF0ZWQgYnkgdGhpcyBjb25zdHJ1Y3QgdGhhdCByZXF1aXJlIHVuaXF1ZSBuYW1lcy4gKi9cbiAgcHJlZml4Pzogc3RyaW5nO1xuXG4gIC8qKiBSZXN0YXRlIERvY2tlciBpbWFnZSBuYW1lLiBEZWZhdWx0cyB0byBgbGF0ZXN0YC4gKi9cbiAgcmVzdGF0ZUltYWdlPzogc3RyaW5nO1xuXG4gIC8qKiBSZXN0YXRlIERvY2tlciBpbWFnZSB0YWcuIERlZmF1bHRzIHRvIGBsYXRlc3RgLiAqL1xuICByZXN0YXRlVGFnPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFQlMgZGF0YSB2b2x1bWUgc2V0dGluZ3MgZm9yIFJlc3RhdGUgZGF0YSBzdG9yYWdlLiBJZiBub3Qgc3BlY2lmaWVkLCBhIGRlZmF1bHQgOEdCIHZvbHVtZSB3aWxsIGJlIGNyZWF0ZWQuXG4gICAqL1xuICBkYXRhVm9sdW1lT3B0aW9ucz86IGVjMi5FYnNEZXZpY2VQcm9wcyB8IHVuZGVmaW5lZDtcblxuICAvKiogUmVzdGF0ZSBoaWdoLWxldmVsIGNvbmZpZ3VyYXRpb24gb3B0aW9ucy4gQWx0ZXJuYXRpdmVseSwgeW91IGNhbiBzZXQge0BsaW5rIHJlc3RhdGVDb25maWdPdmVycmlkZX0uICovXG4gIHJlc3RhdGVDb25maWc/OiB7XG4gICAgLyoqIERlZmF1bHRzIHRvIHRoZSBjb25zdHJ1Y3QgaWQgaWYgbGVmdCB1bnNwZWNpZmllZC4gKi9cbiAgICBjbHVzdGVyTmFtZT86IHN0cmluZztcbiAgICAvKiogRGVmYXVsdHMgdG8gNC4gT25seSB0YWtlcyBlZmZlY3Qgb24gaW5pdGlhbCBwcm92aXNpb25pbmcuICovXG4gICAgYm9vdHN0cmFwTnVtUGFydGl0aW9ucz86IG51bWJlcjtcbiAgICAvKiogUm9ja3NEQiBzZXR0aW5ncy4gKi9cbiAgICByb2Nrc2RiPzoge1xuICAgICAgLyoqIERlZmF1bHRzIHRvIDUxMiBNQi4gKi9cbiAgICAgIHRvdGFsTWVtb3J5U2l6ZT86IGNkay5TaXplO1xuICAgIH07XG4gIH07XG5cbiAgLyoqXG4gICAqIEVudmlyb25tZW50IHByb3BlcnRpZXMgdG8gc2V0IGZvciBSZXN0YXRlLiBUaGlzIGlzIGEgc2ltcGxlIHdheSB0byBwYXNzIGN1c3RvbSBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMuXG4gICAqL1xuICBlbnZpcm9ubWVudD86IHtcbiAgICBba2V5OiBzdHJpbmddOiBzdHJpbmc7XG4gIH07XG5cbiAgLyoqXG4gICAqIENvbXBsZXRlbHkgb3ZlcnJpZGUgdGhlIFJlc3RhdGUgc2VydmVyIGNvbmZpZ3VyYXRpb24uIE5vdGUgdGhhdCBvdGhlciBSZXN0YXRlIGNvbmZpZ3VyYXRpb24gb3B0aW9uc1xuICAgKiB3aWxsIGVmZmVjdGl2ZWx5IGJlIGlnbm9yZWQgaWYgdGhpcyBpcyBzZXQuIFNlZSBodHRwczovL2RvY3MucmVzdGF0ZS5kZXYvb3BlcmF0ZS9jb25maWd1cmF0aW9uL3NlcnZlci9cbiAgICogZm9yIGRldGFpbHMuXG4gICAqL1xuICByZXN0YXRlQ29uZmlnT3ZlcnJpZGU/OiBzdHJpbmc7XG5cbiAgLyoqIEFtYXpvbiBEaXN0cm8gZm9yIE9wZW4gVGVsZW1ldHJ5IERvY2tlciBpbWFnZSB0YWcuIERlZmF1bHRzIHRvIGBsYXRlc3RgLiAqL1xuICBhZG90VGFnPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSZW1vdmFsIHBvbGljeSBmb3IgbG9uZy1saXZlZCByZXNvdXJjZXMgKHN0b3JhZ2UsIGxvZ3MpLiBEZWZhdWx0OiBgY2RrLlJlbW92YWxQb2xpY3kuREVTVFJPWWAuXG4gICAqL1xuICByZW1vdmFsUG9saWN5PzogY2RrLlJlbW92YWxQb2xpY3k7XG5cbiAgLyoqXG4gICAqIENvbnRyb2wgb24taG9zdCBUTFMgdGVybWluYXRpb24gZm9yIGluZ3Jlc3MgYW5kIGFkbWluIHBvcnRzLiBEZWZhdWx0cyB0byBgVGxzVGVybWluYXRpb24uTk9ORWAuIEN1cnJlbnRseSwgZW5hYmxpbmdcbiAgICogVExTIGltcGxpY2l0bHkgZW5hYmxlcyBhbiBgbmdpbnhgIHNlcnZpY2UgdG8gYmUgY29uZmlndXJlZCBvbiB0aGUgaG9zdC4gRGVwZW5kaW5nIG9uIHRoZSB2YWx1ZSBvZiB0aGlzIG9wdGlvbiwgdGhlXG4gICAqIGluZ3Jlc3Mgc2VjdXJpdHkgZ3JvdXAgd2lsbCBiZSBjb25maWd1cmVkIHRvIGFsbG93IGluYm91bmQgdHJhZmZpYyB0byB0aGUgYXBwcm9wcmlhdGUgcG9ydCAtIDgwODAgZm9yIG5vIFRMUywgb3JcbiAgICogNDQzIHdpdGggVExTIGVuYWJsZWQuXG4gICAqL1xuICB0bHNUZXJtaW5hdGlvbj86IFRsc1Rlcm1pbmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVhZCB0aW1lb3V0IGZvciBwcm94aWVkIGluZ3Jlc3MgcmVxdWVzdHMuIERlZmF1bHQ6IDM2MDAgc2Vjb25kcy5cbiAgICovXG4gIGluZ3Jlc3NQcm94eVJlYWRUaW1lb3V0PzogY2RrLkR1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBDb21wbGV0ZWx5IG92ZXJyaWRlIHRoZSBkZWZhdWx0IGBuZ2lueGAgY29uZmlndXJhdGlvbiBmb3IgdGhlIGluZ3Jlc3MgcHJveHkuIE5vdGUgdGhhdCBvdGhlclxuICAgKiBpbmdyZXNzIHByb3h5IGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB3aWxsIGVmZmVjdGl2ZWx5IGJlIGlnbm9yZWQgaWYgdGhpcyBpcyBzZXQuXG4gICAqL1xuICBpbmdyZXNzTmdpbnhDb25maWdPdmVycmlkZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGVudW0gVGxzVGVybWluYXRpb24ge1xuICAvKipcbiAgICogRGlzYWJsZWQgKGRlZmF1bHQpOyBleHBvc2UgdGhlIGByZXN0YXRlLXNlcnZlcmAgSFRUUCBwb3J0cyBkaXJlY3RseS5cbiAgICovXG4gIERJU0FCTEVELFxuXG4gIC8qKlxuICAgKiBVc2Ugc2VsZi1zaWduZWQgY2VydGlmaWNhdGVzIGZvciBUTFMgdGVybWluYXRpb24gb24gdGhlIGluZ3Jlc3MgYW5kIGFkbWluIHBvcnRzLiBDb252ZW5pZW50IGZvciBxdWljayB0ZXN0aW5nLFxuICAgKiBtYWtlIHN1cmUgeW91IHNldCBgaW5zZWN1cmVgID0gYHRydWVgIHdoZW4gdXNpbmcgYFNlcnZpY2VEZXBsb3llcmAgdG8gYWNjZXB0IHRoaXMgY2VydGlmaWNhdGUuXG4gICAqL1xuICBPTl9IT1NUX1NFTEZfU0lHTkVEX0NFUlRJRklDQVRFLFxufVxuXG5jb25zdCBSRVNUQVRFX0lOR1JFU1NfUE9SVCA9IDgwODA7XG5jb25zdCBSRVNUQVRFX1RMU19JTkdSRVNTX1BPUlQgPSA0NDM7XG5jb25zdCBSRVNUQVRFX0FETUlOX1BPUlQgPSA5MDcwO1xuY29uc3QgUkVTVEFURV9UTFNfQURNSU5fUE9SVCA9IDkwNzM7XG5jb25zdCBSRVNUQVRFX0lNQUdFX0RFRkFVTFQgPSBcImRvY2tlci5pby9yZXN0YXRlZGV2L3Jlc3RhdGVcIjtcbmNvbnN0IFJFU1RBVEVfRE9DS0VSX0RFRkFVTFRfVEFHID0gXCJsYXRlc3RcIjtcbmNvbnN0IEFET1RfRE9DS0VSX0RFRkFVTFRfVEFHID0gXCJsYXRlc3RcIjtcbmNvbnN0IERBVEFfREVWSUNFX05BTUUgPSBcIi9kZXYvc2RkXCI7XG5cbi8qKlxuICogQ3JlYXRlcyBhIFJlc3RhdGUgc2VydmljZSBkZXBsb3ltZW50IGJhY2tlZCBieSBhIHNpbmdsZSBFQzIgaW5zdGFuY2UsIHN1aXRhYmxlIGZvciBkZXZlbG9wbWVudCBhbmQgdGVzdGluZyBwdXJwb3Nlcy5cbiAqXG4gKiAqKkR1cmFiaWxpdHkqKlxuICpcbiAqIFJlc3RhdGUgZGF0YSB3aWxsIGJlIHN0b3JlZCBpbiBhIHNlcGFyYXRlIEVCUyB2b2x1bWUgd2hpY2ggeW91IGNhbiBjb25maWd1cmUgZXhwbGljaXRseSB2aWEgdGhlIGBkYXRhVm9sdW1lT3B0aW9uc2BcbiAqIHByb3BlcnR5LiBVcGRhdGluZyBjb25maWd1cmF0aW9uIHNldHRpbmdzIG1heSB0cmlnZ2VyIGluc3RhbmNlIHJlYm9vdCBvciByZXBsYWNlbWVudCAtIGNvbnNpZGVyIHNuYXBzaG90dGluZyB0aGUgZGF0YVxuICogdm9sdW1lIHByaW9yIHRvIGRlcGxveW1lbnRzLCBhbmQgZW5hYmxpbmcgaW5zdGFuY2UgdGVybWluYXRpb24gcHJvdGVjdGlvbi5cbiAqXG4gKiAqKlNlY3VyaXR5KipcbiAqXG4gKiBUaGUgRUMyIGluc3RhbmNlIHdpbGwgYmUgY3JlYXRlZCBpbiB0aGUgZGVmYXVsdCBWUEMgdW5sZXNzIG90aGVyd2lzZSBzcGVjaWZpZWQuIFR3byBzZWN1cml0eSBncm91cHMgYXJlIGNyZWF0ZWQsXG4gKiBgaW5ncmVzc1NlY3VyaXR5R3JvdXBgIGFuZCBgYWRtaW5TZWN1cml0eUdyb3VwYCwgd2hpY2ggY29udHJvbCBhY2Nlc3MgdG8gdGhlIFJlc3RhdGUgc2VydmljZSBpbmdyZXNzIGFuZCBhZG1pbiBwb3J0c1xuICogcmVzcGVjdGl2ZWx5LiBZb3UgbXVzdCBhZGQgYXBwcm9wcmlhdGUgcnVsZXMgb3IgYWRkIG90aGVyIHJlc291cmNlcyB0byB0aGVzZSBzZWN1cml0eSBncm91cHMgdG8gYWxsb3cgYWNjZXNzLlxuICpcbiAqIFNlZSB7QGxpbmsgU2luZ2xlTm9kZVJlc3RhdGVQcm9wc30gZm9yIGF2YWlsYWJsZSBjb25maWd1cmF0aW9uIG9wdGlvbnMsIGFuZCB7QGxpbmsgU2VydmljZURlcGxveWVyfSBmb3IgZGVwbG95aW5nXG4gKiBMYW1iZGEgaGFuZGxlcnMgdG8gZW52aXJvbm1lbnRzLlxuICovXG5leHBvcnQgY2xhc3MgU2luZ2xlTm9kZVJlc3RhdGVEZXBsb3ltZW50IGV4dGVuZHMgQ29uc3RydWN0IGltcGxlbWVudHMgSVJlc3RhdGVFbnZpcm9ubWVudCB7XG4gIHJlYWRvbmx5IGluc3RhbmNlOiBlYzIuSW5zdGFuY2U7XG4gIHJlYWRvbmx5IGluc3RhbmNlUm9sZTogaWFtLklSb2xlO1xuICByZWFkb25seSBpbnZva2VyUm9sZTogaWFtLklSb2xlO1xuICByZWFkb25seSB2cGM6IGVjMi5JVnBjO1xuICByZWFkb25seSBpbmdyZXNzU2VjdXJpdHlHcm91cDogZWMyLklTZWN1cml0eUdyb3VwO1xuICByZWFkb25seSBpbmdyZXNzUG9ydDogbnVtYmVyO1xuICByZWFkb25seSBpbmdyZXNzVXJsOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGFkbWluU2VjdXJpdHlHcm91cDogZWMyLklTZWN1cml0eUdyb3VwO1xuICByZWFkb25seSBhZG1pblBvcnQ6IG51bWJlcjtcbiAgcmVhZG9ubHkgYWRtaW5Vcmw6IHN0cmluZztcbiAgcmVhZG9ubHkgdGxzRW5hYmxlZDogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogU2luZ2xlTm9kZVJlc3RhdGVQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLnZwYyA9IHByb3BzLnZwYyA/PyBlYzIuVnBjLmZyb21Mb29rdXAodGhpcywgXCJWcGNcIiwgeyBpc0RlZmF1bHQ6IHRydWUgfSk7XG5cbiAgICBjb25zdCBzdWJuZXRUeXBlID0gcHJvcHMubmV0d29ya0NvbmZpZ3VyYXRpb24/LnN1Ym5ldFR5cGUgPz8gZWMyLlN1Ym5ldFR5cGUuUFJJVkFURV9XSVRIX0VHUkVTUztcblxuICAgIHRoaXMuaW5zdGFuY2VSb2xlID0gbmV3IGlhbS5Sb2xlKHRoaXMsIFwiSW5zdGFuY2VSb2xlXCIsIHtcbiAgICAgIGFzc3VtZWRCeTogbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKFwiZWMyLmFtYXpvbmF3cy5jb21cIiksXG4gICAgICBtYW5hZ2VkUG9saWNpZXM6IFtpYW0uTWFuYWdlZFBvbGljeS5mcm9tQXdzTWFuYWdlZFBvbGljeU5hbWUoXCJBbWF6b25TU01NYW5hZ2VkSW5zdGFuY2VDb3JlXCIpXSxcbiAgICB9KTtcblxuICAgIHRoaXMuaW52b2tlclJvbGUgPSBuZXcgaWFtLlJvbGUodGhpcywgXCJJbnZva2VyUm9sZVwiLCB7XG4gICAgICBhc3N1bWVkQnk6IHRoaXMuaW5zdGFuY2VSb2xlLFxuICAgIH0pO1xuXG4gICAgbmV3IGlhbS5Qb2xpY3kodGhpcywgXCJBc3N1bWVJbnZva2VyUm9sZVBvbGljeVwiLCB7XG4gICAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICBzaWQ6IFwiQWxsb3dBc3N1bWVJbnZva2VyUm9sZVwiLFxuICAgICAgICAgIGFjdGlvbnM6IFtcInN0czpBc3N1bWVSb2xlXCJdLFxuICAgICAgICAgIHJlc291cmNlczogW3RoaXMuaW52b2tlclJvbGUucm9sZUFybl0sXG4gICAgICAgIH0pLFxuICAgICAgXSxcbiAgICB9KS5hdHRhY2hUb1JvbGUodGhpcy5pbnN0YW5jZVJvbGUpO1xuXG4gICAgY29uc3QgbG9nR3JvdXAgPVxuICAgICAgcHJvcHMubG9nR3JvdXAgPz9cbiAgICAgIG5ldyBsb2dzLkxvZ0dyb3VwKHRoaXMsIFwiTG9nc1wiLCB7XG4gICAgICAgIGxvZ0dyb3VwTmFtZTogYC9yZXN0YXRlLyR7aWR9YCxcbiAgICAgICAgcmV0ZW50aW9uOiBsb2dzLlJldGVudGlvbkRheXMuT05FX01PTlRILFxuICAgICAgICByZW1vdmFsUG9saWN5OiBwcm9wcy5yZW1vdmFsUG9saWN5ID8/IFJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICAgIH0pO1xuICAgIGxvZ0dyb3VwLmdyYW50V3JpdGUodGhpcy5pbnN0YW5jZVJvbGUpO1xuXG4gICAgY29uc3QgcmVzdGF0ZUltYWdlID0gcHJvcHMucmVzdGF0ZUltYWdlID8/IFJFU1RBVEVfSU1BR0VfREVGQVVMVDtcbiAgICBjb25zdCByZXN0YXRlVGFnID0gcHJvcHMucmVzdGF0ZVRhZyA/PyBSRVNUQVRFX0RPQ0tFUl9ERUZBVUxUX1RBRztcbiAgICBjb25zdCBhZG90VGFnID0gcHJvcHMuYWRvdFRhZyA/PyBBRE9UX0RPQ0tFUl9ERUZBVUxUX1RBRztcblxuICAgIHRoaXMudGxzRW5hYmxlZCA9IHByb3BzLnRsc1Rlcm1pbmF0aW9uID09PSBUbHNUZXJtaW5hdGlvbi5PTl9IT1NUX1NFTEZfU0lHTkVEX0NFUlRJRklDQVRFO1xuXG4gICAgY29uc3QgZW52RGVmYXVsdHMgPSB7XG4gICAgICBSRVNUQVRFX09CU0VSVkFCSUxJVFlfX0xPR19fRk9STUFUOiBcIkpzb25cIixcbiAgICAgIFJVU1RfTE9HOiBcImluZm9cIixcbiAgICAgIFJFU1RBVEVfT0JTRVJWQUJJTElUWV9fVFJBQ0lOR19fRU5EUE9JTlQ6IFwiaHR0cDovL2xvY2FsaG9zdDo0MzE3XCIsXG4gICAgfTtcbiAgICBjb25zdCBlbnZBcmdzID0gT2JqZWN0LmVudHJpZXMoeyAuLi5lbnZEZWZhdWx0cywgLi4uKHByb3BzLmVudmlyb25tZW50ID8/IHt9KSB9KVxuICAgICAgLm1hcCgoW2tleSwgdmFsdWVdKSA9PiBgLWUgJHtrZXl9PVwiJHt2YWx1ZX1cImApXG4gICAgICAuam9pbihcIiBcIik7XG5cbiAgICBjb25zdCBpbml0U2NyaXB0ID0gZWMyLlVzZXJEYXRhLmZvckxpbnV4KCk7XG4gICAgaW5pdFNjcmlwdC5hZGRDb21tYW5kcyhcbiAgICAgIFwic2V0IC1ldWYgLW8gcGlwZWZhaWxcIixcbiAgICAgIGB5dW0gaW5zdGFsbCAteSBucG0gJiYgbnBtIGluc3RhbGwgLWdxIEByZXN0YXRlZGV2L3Jlc3RhdGVAJHtyZXN0YXRlVGFnfWAsXG4gICAgICBcInl1bSBpbnN0YWxsIC15IGRvY2tlclwiLFxuICAgICAgdGhpcy5tb3VudERhdGFWb2x1bWVTY3JpcHQoKSxcblxuICAgICAgXCJta2RpciAtcCAvZXRjL3Jlc3RhdGVcIixcbiAgICAgIFtcImNhdCA8PCBFT0YgPiAvZXRjL3Jlc3RhdGUvY29uZmlnLnRvbWxcIiwgdGhpcy5yZXN0YXRlQ29uZmlnKGlkLCBwcm9wcyksIFwiRU9GXCJdLmpvaW4oXCJcXG5cIiksXG5cbiAgICAgIFwic3lzdGVtY3RsIHN0YXJ0IGRvY2tlci5zZXJ2aWNlXCIsXG5cbiAgICAgIC8vIFN0YXJ0IHRoZSBBRE9UIGNvbGxlY3RvciAtIG5lZWRlZCBmb3IgWC1yYXkgdHJhY2UgZm9yd2FyZGluZ1xuICAgICAgYGlmIFsgXCIkKGRvY2tlciBwcyAtcWEgLWYgbmFtZT1hZG90KVwiIF07IHRoZW4gZG9ja2VyIHN0b3AgYWRvdCB8fCB0cnVlOyBkb2NrZXIgcm0gYWRvdDsgZmlgLFxuICAgICAgXCJkb2NrZXIgcnVuIC0tbmFtZSBhZG90IC0tcmVzdGFydCBvbi1mYWlsdXJlIC0tZGV0YWNoXCIgK1xuICAgICAgICBcIiAtcCA0MzE3OjQzMTcgLXAgNTU2ODA6NTU2ODAgLXAgODg4OTo4ODg4XCIgK1xuICAgICAgICBgIHB1YmxpYy5lY3IuYXdzL2F3cy1vYnNlcnZhYmlsaXR5L2F3cy1vdGVsLWNvbGxlY3Rvcjoke2Fkb3RUYWd9YCxcblxuICAgICAgLy8gU3RhcnQgdGhlIFJlc3RhdGUgc2VydmVyIGNvbnRhaW5lclxuICAgICAgYGlmIFsgXCIkKGRvY2tlciBwcyAtcWEgLWYgbmFtZT1yZXN0YXRlKVwiIF07IHRoZW4gZG9ja2VyIHN0b3AgcmVzdGF0ZSB8fCB0cnVlOyBkb2NrZXIgcm0gcmVzdGF0ZTsgZmlgLFxuICAgICAgXCJkb2NrZXIgcnVuIC0tbmFtZSByZXN0YXRlIC0tcmVzdGFydCBvbi1mYWlsdXJlIC0tZGV0YWNoXCIgK1xuICAgICAgICBcIiAtLXZvbHVtZSAvZXRjL3Jlc3RhdGU6L2V0Yy9yZXN0YXRlXCIgK1xuICAgICAgICBcIiAtLXZvbHVtZSAvdmFyL3Jlc3RhdGU6L3Jlc3RhdGUtZGF0YVwiICtcbiAgICAgICAgXCIgLS1uZXR3b3JrPWhvc3RcIiArXG4gICAgICAgIGAgJHtlbnZBcmdzfWAgK1xuICAgICAgICBgIC0tbG9nLWRyaXZlcj1hd3Nsb2dzIC0tbG9nLW9wdCBhd3Nsb2dzLWdyb3VwPSR7bG9nR3JvdXAubG9nR3JvdXBOYW1lfWAgK1xuICAgICAgICBgICR7cmVzdGF0ZUltYWdlfToke3Jlc3RhdGVUYWd9YCArXG4gICAgICAgIFwiIC0tY29uZmlnLWZpbGUgL2V0Yy9yZXN0YXRlL2NvbmZpZy50b21sXCIsXG4gICAgKTtcblxuICAgIC8vIE9wdGlvbmFsbHksIGNvbmZpZ3VyZSBhbmQgc3RhcnQgdGhlIG5naW54IHNlcnZpY2VcbiAgICBpZiAodGhpcy50bHNFbmFibGVkKSB7XG4gICAgICBpZiAoc3VibmV0VHlwZSA9PSBlYzIuU3VibmV0VHlwZS5QVUJMSUMpIHtcbiAgICAgICAgaW5pdFNjcmlwdC5hZGRDb21tYW5kcyhcbiAgICAgICAgICBcInl1bSBpbnN0YWxsIC15IG5naW54XCIsXG4gICAgICAgICAgXCJta2RpciAtcCAvZXRjL3BraS9wcml2YXRlXCIsXG4gICAgICAgICAgW1xuICAgICAgICAgICAgXCJvcGVuc3NsIHJlcSAtbmV3IC14NTA5IC1ub2RlcyAtc2hhMjU2IC1kYXlzIDM2NSAtZXh0ZW5zaW9ucyB2M19jYVwiLFxuICAgICAgICAgICAgXCIgLXN1YmogJy9DPURFL1NUPUJlcmxpbi9MPUJlcmxpbi9PPXJlc3RhdGUuZGV2L09VPWRlbW8vQ049cmVzdGF0ZS5leGFtcGxlLmNvbSdcIixcbiAgICAgICAgICAgIFwiIC1uZXdrZXkgcnNhOjIwNDggLWtleW91dCAvZXRjL3BraS9wcml2YXRlL3Jlc3RhdGUtc2VsZnNpZ25lZC5rZXkgLW91dCAvZXRjL3BraS9wcml2YXRlL3Jlc3RhdGUtc2VsZnNpZ25lZC5jcnRcIixcbiAgICAgICAgICBdLmpvaW4oXCJcIiksXG5cbiAgICAgICAgICBbXCJjYXQgPDwgRU9GID4gL2V0Yy9uZ2lueC9jb25mLmQvcmVzdGF0ZS1pbmdyZXNzLmNvbmZcIiwgdGhpcy5pbmdyZXNzTmdpbnhDb25maWcocHJvcHMpLCBcIkVPRlwiXS5qb2luKFwiXFxuXCIpLFxuICAgICAgICAgIFwic3lzdGVtY3RsIHN0YXJ0IG5naW54XCIsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgY2xvdWRDb25maWcgPSBlYzIuVXNlckRhdGEuY3VzdG9tKFtgY2xvdWRfZmluYWxfbW9kdWxlczpgLCBgLSBbc2NyaXB0cy11c2VyLCBhbHdheXNdYF0uam9pbihcIlxcblwiKSk7XG5cbiAgICBjb25zdCB1c2VyRGF0YSA9IG5ldyBlYzIuTXVsdGlwYXJ0VXNlckRhdGEoKTtcbiAgICB1c2VyRGF0YS5hZGRVc2VyRGF0YVBhcnQoY2xvdWRDb25maWcsIFwidGV4dC9jbG91ZC1jb25maWdcIik7XG4gICAgdXNlckRhdGEuYWRkVXNlckRhdGFQYXJ0KGluaXRTY3JpcHQsIFwidGV4dC94LXNoZWxsc2NyaXB0XCIpO1xuXG4gICAgY29uc3QgcmVzdGF0ZUluc3RhbmNlID0gbmV3IGVjMi5JbnN0YW5jZSh0aGlzLCBcIkhvc3RcIiwge1xuICAgICAgdnBjOiB0aGlzLnZwYyxcbiAgICAgIHZwY1N1Ym5ldHM6IHsgc3VibmV0VHlwZSB9LFxuICAgICAgaW5zdGFuY2VUeXBlOiBwcm9wcy5pbnN0YW5jZVR5cGUgPz8gbmV3IGVjMi5JbnN0YW5jZVR5cGUoXCJ0NGcubWljcm9cIiksXG4gICAgICBtYWNoaW5lSW1hZ2U6XG4gICAgICAgIHByb3BzLm1hY2hpbmVJbWFnZSA/P1xuICAgICAgICBlYzIuTWFjaGluZUltYWdlLmxhdGVzdEFtYXpvbkxpbnV4MjAyMyh7XG4gICAgICAgICAgY3B1VHlwZTogZWMyLkFtYXpvbkxpbnV4Q3B1VHlwZS5BUk1fNjQsXG4gICAgICAgIH0pLFxuICAgICAgcm9sZTogdGhpcy5pbnN0YW5jZVJvbGUsXG4gICAgICBibG9ja0RldmljZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGRldmljZU5hbWU6IERBVEFfREVWSUNFX05BTUUsXG4gICAgICAgICAgdm9sdW1lOiB7XG4gICAgICAgICAgICBlYnNEZXZpY2U6IHtcbiAgICAgICAgICAgICAgdm9sdW1lU2l6ZTogOCxcbiAgICAgICAgICAgICAgZGVsZXRlT25UZXJtaW5hdGlvbjogcHJvcHMucmVtb3ZhbFBvbGljeSA9PT0gUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICAgICAgICAgICAgICAuLi4ocHJvcHMuZGF0YVZvbHVtZU9wdGlvbnMgPz8ge30pLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHZpcnR1YWxOYW1lOiBcInJlc3RhdGUtZGF0YVwiLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgdXNlckRhdGEsXG4gICAgfSk7XG5cbiAgICB0aGlzLmluc3RhbmNlID0gcmVzdGF0ZUluc3RhbmNlO1xuXG4gICAgLy8gV2Ugc3RhcnQgdGhlIEFET1QgY29sbGVjdG9yIHJlZ2FyZGxlc3MsIGFuZCBjb250cm9sIHdoZXRoZXIgdHJhY2VzIHdpbGwgYmUgZXhwb3J0ZWQgdG8gWC1SYXkgdXNpbmcgaW5zdGFuY2Ugcm9sZVxuICAgIC8vIHBlcm1pc3Npb25zLiBUaGlzIHdheSBoaXN0b3JpYyB0cmFjZXMgd2lsbCBiZSBidWZmZXJlZCBvbiB0aGUgaG9zdCwgZXZlbiBpZiB0cmFjaW5nIGlzIGRpc2FibGVkIGluaXRpYWxseS5cbiAgICBpZiAocHJvcHMudHJhY2luZyA9PT0gVHJhY2luZ01vZGUuQVdTX1hSQVkpIHtcbiAgICAgIHJlc3RhdGVJbnN0YW5jZS5yb2xlLmFkZE1hbmFnZWRQb2xpY3koaWFtLk1hbmFnZWRQb2xpY3kuZnJvbUF3c01hbmFnZWRQb2xpY3lOYW1lKFwiQVdTWHJheVdyaXRlT25seUFjY2Vzc1wiKSk7XG4gICAgfVxuXG4gICAgY29uc3QgaW5ncmVzc1NlY3VyaXR5R3JvdXAgPSBuZXcgZWMyLlNlY3VyaXR5R3JvdXAodGhpcywgXCJJbmdyZXNzU2VjdXJpdHlHcm91cFwiLCB7XG4gICAgICB2cGM6IHRoaXMudnBjLFxuICAgICAgZGVzY3JpcHRpb246IFwiUmVzdGF0ZSBJbmdyZXNzIEFDTHNcIixcbiAgICB9KTtcbiAgICByZXN0YXRlSW5zdGFuY2UuYWRkU2VjdXJpdHlHcm91cChpbmdyZXNzU2VjdXJpdHlHcm91cCk7XG4gICAgY29uc3QgYWRtaW5TZWN1cml0eUdyb3VwID0gbmV3IGVjMi5TZWN1cml0eUdyb3VwKHRoaXMsIFwiQWRtaW5TZWN1cml0eUdyb3VwXCIsIHtcbiAgICAgIHZwYzogdGhpcy52cGMsXG4gICAgICBkZXNjcmlwdGlvbjogXCJSZXN0YXRlIEFkbWluIEFDTHNcIixcbiAgICB9KTtcbiAgICByZXN0YXRlSW5zdGFuY2UuYWRkU2VjdXJpdHlHcm91cChhZG1pblNlY3VyaXR5R3JvdXApO1xuXG4gICAgdGhpcy5pbmdyZXNzUG9ydCA9IHRoaXMudGxzRW5hYmxlZCA/IFJFU1RBVEVfVExTX0lOR1JFU1NfUE9SVCA6IFJFU1RBVEVfSU5HUkVTU19QT1JUO1xuICAgIHRoaXMuYWRtaW5Qb3J0ID0gdGhpcy50bHNFbmFibGVkID8gUkVTVEFURV9UTFNfQURNSU5fUE9SVCA6IFJFU1RBVEVfQURNSU5fUE9SVDtcblxuICAgIGluZ3Jlc3NTZWN1cml0eUdyb3VwLmFkZEluZ3Jlc3NSdWxlKFxuICAgICAgKHByb3BzLnB1YmxpY0luZ3Jlc3MgPz8gZmFsc2UpID8gZWMyLlBlZXIuYW55SXB2NCgpIDogaW5ncmVzc1NlY3VyaXR5R3JvdXAsXG4gICAgICBlYzIuUG9ydC50Y3AodGhpcy5pbmdyZXNzUG9ydCksXG4gICAgICBcIlJlc3RhdGUgaW5ncmVzc1wiLFxuICAgICk7XG4gICAgYWRtaW5TZWN1cml0eUdyb3VwLmFkZEluZ3Jlc3NSdWxlKGFkbWluU2VjdXJpdHlHcm91cCwgZWMyLlBvcnQudGNwKHRoaXMuYWRtaW5Qb3J0KSwgXCJSZXN0YXRlIGFkbWluXCIpO1xuXG4gICAgY29uc3QgcHJvdG9jb2wgPSB0aGlzLnRsc0VuYWJsZWQgPyBcImh0dHBzXCIgOiBcImh0dHBcIjtcbiAgICBjb25zdCBob3N0bmFtZSA9XG4gICAgICBwcm9wcy5uZXR3b3JrQ29uZmlndXJhdGlvbj8uc3VibmV0VHlwZSAhPT0gZWMyLlN1Ym5ldFR5cGUuUFVCTElDXG4gICAgICAgID8gYCR7cmVzdGF0ZUluc3RhbmNlLmluc3RhbmNlUHJpdmF0ZURuc05hbWV9YFxuICAgICAgICA6IGAke3Jlc3RhdGVJbnN0YW5jZS5pbnN0YW5jZVB1YmxpY0Ruc05hbWV9YDtcbiAgICB0aGlzLmluZ3Jlc3NVcmwgPSBgJHtwcm90b2NvbH06Ly8ke2hvc3RuYW1lfWAgKyAodGhpcy5pbmdyZXNzUG9ydCA9PT0gNDQzID8gXCJcIiA6IGA6JHt0aGlzLmluZ3Jlc3NQb3J0fWApO1xuICAgIHRoaXMuYWRtaW5VcmwgPSBgJHtwcm90b2NvbH06Ly8ke2hvc3RuYW1lfToke3RoaXMuYWRtaW5Qb3J0fWA7XG5cbiAgICB0aGlzLmluZ3Jlc3NTZWN1cml0eUdyb3VwID0gaW5ncmVzc1NlY3VyaXR5R3JvdXA7XG4gICAgdGhpcy5hZG1pblNlY3VyaXR5R3JvdXAgPSBhZG1pblNlY3VyaXR5R3JvdXA7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVzdGF0ZUNvbmZpZyhpZDogc3RyaW5nLCBwcm9wczogU2luZ2xlTm9kZVJlc3RhdGVQcm9wcykge1xuICAgIHJldHVybiAoXG4gICAgICBwcm9wcy5yZXN0YXRlQ29uZmlnT3ZlcnJpZGUgPz9cbiAgICAgIFtcbiAgICAgICAgYHJvbGVzID0gW2AsXG4gICAgICAgIGAgICAgXCJ3b3JrZXJcIixgLFxuICAgICAgICBgICAgIFwiYWRtaW5cIixgLFxuICAgICAgICBgICAgIFwibWV0YWRhdGEtc3RvcmVcIixgLFxuICAgICAgICBgXWAsXG4gICAgICAgIGBub2RlLW5hbWUgPSBcInJlc3RhdGUtMFwiYCxcbiAgICAgICAgYGNsdXN0ZXItbmFtZSA9IFwiJHtwcm9wcy5yZXN0YXRlQ29uZmlnPy5jbHVzdGVyTmFtZSA/PyBpZH1cImAsXG4gICAgICAgIGBhbGxvdy1ib290c3RyYXAgPSB0cnVlYCxcbiAgICAgICAgYGJvb3RzdHJhcC1udW0tcGFydGl0aW9ucyA9ICR7cHJvcHMucmVzdGF0ZUNvbmZpZz8uYm9vdHN0cmFwTnVtUGFydGl0aW9ucyA/PyA0fWAsXG4gICAgICAgIGBkZWZhdWx0LXRocmVhZC1wb29sLXNpemUgPSAzYCxcbiAgICAgICAgYHN0b3JhZ2UtaGlnaC1wcmlvcml0eS1iZy10aHJlYWRzID0gM2AsXG4gICAgICAgIGBzdG9yYWdlLWxvdy1wcmlvcml0eS1iZy10aHJlYWRzID0gM2AsXG4gICAgICAgIGByb2Nrc2RiLXRvdGFsLW1lbW9yeS1zaXplID0gXCIke3Byb3BzLnJlc3RhdGVDb25maWc/LnJvY2tzZGI/LnRvdGFsTWVtb3J5U2l6ZT8udG9NZWJpYnl0ZXMoKSA/PyA1MTIuMCArIFwiIE1CXCJ9XCJgLFxuICAgICAgICBgcm9ja3NkYi10b3RhbC1tZW10YWJsZXMtcmF0aW8gPSAwLjYwYCxcbiAgICAgICAgYHJvY2tzZGItYmctdGhyZWFkcyA9IDNgLFxuICAgICAgICBgcm9ja3NkYi1oaWdoLXByaW9yaXR5LWJnLXRocmVhZHMgPSAzYCxcbiAgICAgICAgYGAsXG4gICAgICAgIGBbd29ya2VyXWAsXG4gICAgICAgIGBpbnRlcm5hbC1xdWV1ZS1sZW5ndGggPSAxMDAwYCxcbiAgICAgICAgYGAsXG4gICAgICAgIGBbd29ya2VyLnN0b3JhZ2VdYCxcbiAgICAgICAgYHJvY2tzZGItbWF4LWJhY2tncm91bmQtam9icyA9IDNgLFxuICAgICAgICBgcm9ja3NkYi1zdGF0aXN0aWNzLWxldmVsID0gXCJleGNlcHQtZGV0YWlsZWQtdGltZXJzXCJgLFxuICAgICAgICBgbnVtLXBhcnRpdGlvbnMtdG8tc2hhcmUtbWVtb3J5LWJ1ZGdldCA9IDRgLFxuICAgICAgICBgYCxcbiAgICAgICAgYFthZG1pbl1gLFxuICAgICAgICBgYmluZC1hZGRyZXNzID0gXCIke3RoaXMudGxzRW5hYmxlZCA/IFwiMTI3LjAuMC4xXCIgOiBcIjAuMC4wLjBcIn06JHtSRVNUQVRFX0FETUlOX1BPUlR9XCJgLFxuICAgICAgICBgYCxcbiAgICAgICAgYFthZG1pbi5xdWVyeS1lbmdpbmVdYCxcbiAgICAgICAgYG1lbW9yeS1zaXplID0gXCI1MC4wIE1CXCJgLFxuICAgICAgICBgcXVlcnktcGFyYWxsZWxpc20gPSA0YCxcbiAgICAgICAgYGAsXG4gICAgICAgIGBbaW5ncmVzc11gLFxuICAgICAgICBgYmluZC1hZGRyZXNzID0gXCIke3RoaXMudGxzRW5hYmxlZCA/IFwiMTI3LjAuMC4xXCIgOiBcIjAuMC4wLjBcIn06JHtSRVNUQVRFX0lOR1JFU1NfUE9SVH1cImAsXG4gICAgICAgIGByb2Nrc2RiLW1heC1iYWNrZ3JvdW5kLWpvYnMgPSAzYCxcbiAgICAgICAgYHJvY2tzZGItc3RhdGlzdGljcy1sZXZlbCA9IFwiZXhjZXB0LWRldGFpbGVkLXRpbWVyc1wiYCxcbiAgICAgICAgYHdyaXRlci1iYXRjaC1jb21taXQtY291bnQgPSAxMDAwYCxcbiAgICAgICAgYGAsXG4gICAgICAgIGBbbWV0YWRhdGEtc3RvcmUucm9ja3NkYl1gLFxuICAgICAgICBgcm9ja3NkYi1tYXgtYmFja2dyb3VuZC1qb2JzID0gMWAsXG4gICAgICAgIGByb2Nrc2RiLXN0YXRpc3RpY3MtbGV2ZWwgPSBcImV4Y2VwdC1kZXRhaWxlZC10aW1lcnNcImAsXG4gICAgICBdLmpvaW4oXCJcXG5cIilcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIG1vdW50RGF0YVZvbHVtZVNjcmlwdCgpIHtcbiAgICByZXR1cm4gYFxuaWYgbW91bnQgfCBncmVwIC1xcyAnL3Zhci9yZXN0YXRlJzsgdGhlblxuICBlY2hvIFwiL3Zhci9yZXN0YXRlIGlzIG1vdW50ZWRcIlxuZWxzZVxuICBpZiBbIC1kIC92YXIvcmVzdGF0ZSBdOyB0aGVuXG4gICAgaWYgWyBcIiQobHMgLUEgL3Zhci9yZXN0YXRlKVwiIF07IHRoZW5cbiAgICAgIGVjaG8gXCJEYXRhIGV4aXN0cyBpbiAvdmFyL3Jlc3RhdGUgdGhhdCBpcyBub3Qgb24gZGF0YSB2b2x1bWU7IHJlZnVzaW5nIHRvIG92ZXJ3cml0ZSFcIlxuICAgICAgZXhpdCAxXG4gICAgZmlcbiAgZWxzZVxuICAgIG1rZGlyIC92YXIvcmVzdGF0ZVxuICBmaVxuICBpZiBmaWxlIC1zTCAke0RBVEFfREVWSUNFX05BTUV9IHwgZ3JlcCAtcSAnOiBkYXRhJCc7IHRoZW5cbiAgICBta2ZzIC10IHhmcyAke0RBVEFfREVWSUNFX05BTUV9XG4gIGZpXG4gIG1vdW50ICR7REFUQV9ERVZJQ0VfTkFNRX0gL3Zhci9yZXN0YXRlXG4gIGlmICEgZ3JlcCAtcXMgJy92YXIvcmVzdGF0ZScgL2V0Yy9mc3RhYjsgdGhlblxuICAgIGVjaG8gXCIke0RBVEFfREVWSUNFX05BTUV9IC92YXIvcmVzdGF0ZSB4ZnMgZGVmYXVsdHMgMCAwXCIgPj4gL2V0Yy9mc3RhYlxuICAgIGVjaG8gXCJBZGRlZCBlbnRyeSBmb3IgJHtEQVRBX0RFVklDRV9OQU1FfSB0byAvZXRjL2ZzdGFiXCJcbiAgZWxzZVxuICAgIGVjaG8gXCJFbnRyeSBmb3IgJHtEQVRBX0RFVklDRV9OQU1FfSBhbHJlYWR5IGV4aXN0cyBpbiAvZXRjL2ZzdGFiXCJcbiAgZmlcbmZpXG5gO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBwcm9wcyBjb25zdHJ1Y3QgcHJvcGVydGllc1xuICAgKiBAcmV0dXJucyBuZ2lueCBjb25maWd1cmF0aW9uIHRvIHVzZSBmb3IgaW5ncmVzcyByZXZlcnNlIHByb3h5LCBmb3JtYXR0ZWQgYXMgYSBtdWx0aS1saW5lIHN0cmluZ1xuICAgKi9cbiAgcHJvdGVjdGVkIGluZ3Jlc3NOZ2lueENvbmZpZyhwcm9wczogU2luZ2xlTm9kZVJlc3RhdGVQcm9wcykge1xuICAgIHJldHVybiAoXG4gICAgICBwcm9wcy5pbmdyZXNzTmdpbnhDb25maWdPdmVycmlkZSA/P1xuICAgICAgW1xuICAgICAgICBcInNlcnZlciB7XCIsXG4gICAgICAgIGAgIGxpc3RlbiAke1JFU1RBVEVfVExTX0lOR1JFU1NfUE9SVH0gc3NsIGh0dHAyO2AsXG4gICAgICAgIGAgIGxpc3RlbiBbOjpdOiR7UkVTVEFURV9UTFNfSU5HUkVTU19QT1JUfSBzc2wgaHR0cDI7YCxcbiAgICAgICAgXCIgIHNlcnZlcl9uYW1lIF87XCIsXG4gICAgICAgIFwiICByb290IC91c3Ivc2hhcmUvbmdpbngvaHRtbDtcIixcbiAgICAgICAgXCJcIixcbiAgICAgICAgJyAgc3NsX2NlcnRpZmljYXRlIFwiL2V0Yy9wa2kvcHJpdmF0ZS9yZXN0YXRlLXNlbGZzaWduZWQuY3J0XCI7JyxcbiAgICAgICAgJyAgc3NsX2NlcnRpZmljYXRlX2tleSBcIi9ldGMvcGtpL3ByaXZhdGUvcmVzdGF0ZS1zZWxmc2lnbmVkLmtleVwiOycsXG4gICAgICAgIFwiICBzc2xfc2Vzc2lvbl9jYWNoZSBzaGFyZWQ6U1NMOjFtO1wiLFxuICAgICAgICBcIiAgc3NsX3Nlc3Npb25fdGltZW91dCAxMG07XCIsXG4gICAgICAgIFwiICBzc2xfY2lwaGVycyBQUk9GSUxFPVNZU1RFTTtcIixcbiAgICAgICAgXCIgIHNzbF9wcmVmZXJfc2VydmVyX2NpcGhlcnMgb247XCIsXG4gICAgICAgIFwiXCIsXG4gICAgICAgIFwiICBsb2NhdGlvbiAvIHtcIixcbiAgICAgICAgYCAgICBwcm94eV9wYXNzIGh0dHA6Ly9sb2NhbGhvc3Q6JHtSRVNUQVRFX0lOR1JFU1NfUE9SVH07YCxcbiAgICAgICAgYCAgICBwcm94eV9yZWFkX3RpbWVvdXQgJHtwcm9wcy5pbmdyZXNzUHJveHlSZWFkVGltZW91dD8udG9TZWNvbmRzKCkgPz8gMzYwMH07YCxcbiAgICAgICAgXCIgIH1cIixcbiAgICAgICAgXCJ9XCIsXG4gICAgICAgIFwiXCIsXG4gICAgICAgIFwic2VydmVyIHtcIixcbiAgICAgICAgYCAgbGlzdGVuICR7UkVTVEFURV9UTFNfQURNSU5fUE9SVH0gc3NsIGh0dHAyO2AsXG4gICAgICAgIGAgIGxpc3RlbiBbOjpdOiR7UkVTVEFURV9UTFNfQURNSU5fUE9SVH0gc3NsIGh0dHAyO2AsXG4gICAgICAgIFwiICBzZXJ2ZXJfbmFtZSBfO1wiLFxuICAgICAgICBcIiAgcm9vdCAvdXNyL3NoYXJlL25naW54L2h0bWw7XCIsXG4gICAgICAgIFwiXCIsXG4gICAgICAgICcgIHNzbF9jZXJ0aWZpY2F0ZSBcIi9ldGMvcGtpL3ByaXZhdGUvcmVzdGF0ZS1zZWxmc2lnbmVkLmNydFwiOycsXG4gICAgICAgICcgIHNzbF9jZXJ0aWZpY2F0ZV9rZXkgXCIvZXRjL3BraS9wcml2YXRlL3Jlc3RhdGUtc2VsZnNpZ25lZC5rZXlcIjsnLFxuICAgICAgICBcIiAgc3NsX3Nlc3Npb25fY2FjaGUgc2hhcmVkOlNTTDoxbTtcIixcbiAgICAgICAgXCIgIHNzbF9zZXNzaW9uX3RpbWVvdXQgMTBtO1wiLFxuICAgICAgICBcIiAgc3NsX2NpcGhlcnMgUFJPRklMRT1TWVNURU07XCIsXG4gICAgICAgIFwiICBzc2xfcHJlZmVyX3NlcnZlcl9jaXBoZXJzIG9uO1wiLFxuICAgICAgICBcIlwiLFxuICAgICAgICBcIiAgbG9jYXRpb24gLyB7XCIsXG4gICAgICAgIGAgICAgcHJveHlfcGFzcyBodHRwOi8vbG9jYWxob3N0OiR7UkVTVEFURV9BRE1JTl9QT1JUfTtgLFxuICAgICAgICBcIiAgfVwiLFxuICAgICAgICBcIn1cIixcbiAgICAgIF0uam9pbihcIlxcblwiKVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
332
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlLW5vZGUtcmVzdGF0ZS1kZXBsb3ltZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vbGliL3Jlc3RhdGUtY29uc3RydWN0cy9zaW5nbGUtbm9kZS1yZXN0YXRlLWRlcGxveW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7R0FTRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUgsMkNBQXVDO0FBQ3ZDLDJEQUE2QztBQUM3Qyx5REFBMkM7QUFDM0MseURBQTJDO0FBRTNDLDZEQUFtRDtBQUVuRCw2Q0FBNEM7QUE2RzVDLElBQVksY0FXWDtBQVhELFdBQVksY0FBYztJQUN4Qjs7T0FFRztJQUNILDJEQUFRLENBQUE7SUFFUjs7O09BR0c7SUFDSCx5R0FBK0IsQ0FBQTtBQUNqQyxDQUFDLEVBWFcsY0FBYyw4QkFBZCxjQUFjLFFBV3pCO0FBRUQsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUM7QUFDbEMsTUFBTSx3QkFBd0IsR0FBRyxHQUFHLENBQUM7QUFDckMsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUM7QUFDaEMsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLENBQUM7QUFDcEMsTUFBTSxxQkFBcUIsR0FBRyw4QkFBOEIsQ0FBQztBQUM3RCxNQUFNLDBCQUEwQixHQUFHLFFBQVEsQ0FBQztBQUM1QyxNQUFNLHVCQUF1QixHQUFHLFFBQVEsQ0FBQztBQUN6QyxNQUFNLGdCQUFnQixHQUFHLFVBQVUsQ0FBQztBQUVwQzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUFDSCxNQUFhLDJCQUE0QixTQUFRLHNCQUFTO0lBYXhELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBNkI7UUFDckUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENB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Z0JBQ2xCLCtCQUErQjtnQkFDL0IsRUFBRTtnQkFDRiw4REFBOEQ7Z0JBQzlELGtFQUFrRTtnQkFDbEUsb0NBQW9DO2dCQUNwQyw0QkFBNEI7Z0JBQzVCLCtCQUErQjtnQkFDL0IsaUNBQWlDO2dCQUNqQyxFQUFFO2dCQUNGLGdCQUFnQjtnQkFDaEIsbUNBQW1DLG9CQUFvQixHQUFHO2dCQUMxRCwwQkFBMEIsS0FBSyxDQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxJQUFJLElBQUksR0FBRztnQkFDL0UsS0FBSztnQkFDTCxHQUFHO2dCQUNILEVBQUU7Z0JBQ0YsVUFBVTtnQkFDVixZQUFZLHNCQUFzQixhQUFhO2dCQUMvQyxpQkFBaUIsc0JBQXNCLGFBQWE7Z0JBQ3BELGtCQUFrQjtnQkFDbEIsK0JBQStCO2dCQUMvQixFQUFFO2dCQUNGLDhEQUE4RDtnQkFDOUQsa0VBQWtFO2dCQUNsRSxvQ0FBb0M7Z0JBQ3BDLDRCQUE0QjtnQkFDNUIsK0JBQStCO2dCQUMvQixpQ0FBaUM7Z0JBQ2pDLEVBQUU7Z0JBQ0YsZ0JBQWdCO2dCQUNoQixtQ0FBbUMsa0JBQWtCLEdBQUc7Z0JBQ3hELEtBQUs7Z0JBQ0wsR0FBRzthQUNKLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUNiLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFuVEQsa0VBbVRDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAyMy0yMDI1IC0gUmVzdGF0ZSBTb2Z0d2FyZSwgSW5jLiwgUmVzdGF0ZSBHbWJIXG4gKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIFJlc3RhdGUgQ0RLIENvbnN0cnVjdCBMaWJyYXJ5LFxuICogd2hpY2ggaXMgcmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLlxuICpcbiAqIFlvdSBjYW4gZmluZCBhIGNvcHkgb2YgdGhlIGxpY2Vuc2UgaW4gZmlsZSBMSUNFTlNFIGluIHRoZSByb290XG4gKiBkaXJlY3Rvcnkgb2YgdGhpcyByZXBvc2l0b3J5IG9yIHBhY2thZ2UsIG9yIGF0XG4gKiBodHRwczovL2dpdGh1Yi5jb20vcmVzdGF0ZWRldi9zZGstdHlwZXNjcmlwdC9ibG9iL21haW4vTElDRU5TRVxuICovXG5cbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgKiBhcyBsb2dzIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbG9nc1wiO1xuaW1wb3J0ICogYXMgZWMyIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWMyXCI7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCB7IElSZXN0YXRlRW52aXJvbm1lbnQgfSBmcm9tIFwiLi9yZXN0YXRlLWVudmlyb25tZW50XCI7XG5pbXBvcnQgeyBUcmFjaW5nTW9kZSB9IGZyb20gXCIuL2RlcGxveW1lbnRzLWNvbW1vblwiO1xuaW1wb3J0ICogYXMgY2RrIGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgUmVtb3ZhbFBvbGljeSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNpbmdsZU5vZGVSZXN0YXRlUHJvcHMge1xuICAvKiogRUMyIGluc3RhbmNlIHR5cGUgdG8gdXNlLiAqL1xuICBpbnN0YW5jZVR5cGU/OiBlYzIuSW5zdGFuY2VUeXBlO1xuXG4gIC8qKiBNYWNoaW5lIGltYWdlLiBOb3RlOiBzdGFydHVwIHNjcmlwdCBleHBlY3RzIHl1bS1iYXNlZCBwYWNrYWdlIG1hbmFnZW1lbnQuICovXG4gIG1hY2hpbmVJbWFnZT86IGVjMi5JTWFjaGluZUltYWdlO1xuXG4gIC8qKiBUaGUgVlBDIGluIHdoaWNoIHRvIGxhdW5jaCB0aGUgUmVzdGF0ZSBob3N0LiAqL1xuICB2cGM/OiBlYzIuSVZwYztcblxuICBuZXR3b3JrQ29uZmlndXJhdGlvbj86IHtcbiAgICAvKipcbiAgICAgKiBTdWJuZXQgdHlwZSBmb3IgdGhlIFJlc3RhdGUgaG9zdC5cbiAgICAgKlxuICAgICAqIEF2YWlsYWJsZSBvcHRpb25zOlxuICAgICAqICAtIFtEZWZhdWx0XSB7QGxpbmsgZWMyLlN1Ym5ldFR5cGUuUFJJVkFURV9XSVRIX0VHUkVTU30gd2lsbCBjcmVhdGUgdGhlIFJlc3RhdGUgaW5zdGFuY2Ugd2l0aCBvdXRib3VuZCBpbnRlcm5ldFxuICAgICAqICAgIGFjY2VzcyBvbmx5LCBzbyB0aGF0IGl0IGNhbiBpbnZva2UgSFRUUCBlbmRwb2ludHMuIFRoZSBzZWN1cml0eSBncm91cHMge0BsaW5rIGluZ3Jlc3NTZWN1cml0eUdyb3VwfSBhbmRcbiAgICAgKiAgICB7QGxpbmsgYWRtaW5TZWN1cml0eUdyb3VwfSBjb250cm9sIGluYm91bmQgdHJhZmZpYyB0byB0aGUgc2VydmljZSBpbmdyZXNzIGFuZCBhZG1pbiBwb3J0cyByZXNwZWN0aXZlbHkuXG4gICAgICogICAgQ29uZmlndXJlIHtAbGluayBTZXJ2aWNlRGVwbG95ZXJ9IHRvIHVzZSB0aGUgbGF0dGVyLCBhbmQgc2V0IHVwIGluZ3Jlc3MgdHJhZmZpYyByb3V0aW5nIG91dHNpZGUgb2YgdGhpc1xuICAgICAqICAgIGNvbnN0cnVjdCB1c2luZyB0aGUgZm9ybWVyLlxuICAgICAqICAtIEluc2VjdXJlLCBpbnRlcm5ldC1mYWNpbmcge0BsaW5rIGVjMi5TdWJuZXRUeXBlLlBVQkxJQ30gd2lsbCBhbHNvIHByb3Zpc2lvbiBhbiBuZ2lueCByZXZlcnNlIHByb3h5XG4gICAgICogICAgYW5kIGFuIEhUVFAgbGlzdGVuZXIgd2l0aCBhIHNlbGYtc2lnbmVkIGNlcnRpZmljYXRlLlxuICAgICAqL1xuICAgIHN1Ym5ldFR5cGU/OiBlYzIuU3VibmV0VHlwZS5QUklWQVRFX1dJVEhfRUdSRVNTIHwgZWMyLlN1Ym5ldFR5cGUuUFVCTElDO1xuICB9O1xuXG4gIC8qKlxuICAgKiBBbGxvdyBpbmNvbWluZyBpbmdyZXNzIHRyYWZmaWMgZnJvbSBhbnl3aGVyZS4gRGVmYXVsdDogYGZhbHNlYC4gQWx0ZXJuYXRpdmVseSwgYWRkIHJ1bGVzIHRvIHRoZVxuICAgKiBgaW5ncmVzc1NlY3VyaXR5R3JvdXBgIGRpcmVjdGx5LlxuICAgKi9cbiAgcHVibGljSW5ncmVzcz86IGJvb2xlYW47XG5cbiAgLyoqIExvZyBncm91cCBmb3IgUmVzdGF0ZSBzZXJ2aWNlIGxvZ3MuICovXG4gIGxvZ0dyb3VwPzogbG9ncy5Mb2dHcm91cDtcblxuICAvKiogVHJhY2luZyBtb2RlIGZvciBSZXN0YXRlIHNlcnZpY2VzLiBEZWZhdWx0cyB0byB7QGxpbmsgVHJhY2luZ01vZGUuRElTQUJMRUR9LiAqL1xuICB0cmFjaW5nPzogVHJhY2luZ01vZGU7XG5cbiAgLyoqIFByZWZpeCBmb3IgcmVzb3VyY2VzIGNyZWF0ZWQgYnkgdGhpcyBjb25zdHJ1Y3QgdGhhdCByZXF1aXJlIHVuaXF1ZSBuYW1lcy4gKi9cbiAgcHJlZml4Pzogc3RyaW5nO1xuXG4gIC8qKiBSZXN0YXRlIERvY2tlciBpbWFnZSBuYW1lLiBEZWZhdWx0cyB0byBgbGF0ZXN0YC4gKi9cbiAgcmVzdGF0ZUltYWdlPzogc3RyaW5nO1xuXG4gIC8qKiBSZXN0YXRlIERvY2tlciBpbWFnZSB0YWcuIERlZmF1bHRzIHRvIGBsYXRlc3RgLiAqL1xuICByZXN0YXRlVGFnPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFQlMgZGF0YSB2b2x1bWUgc2V0dGluZ3MgZm9yIFJlc3RhdGUgZGF0YSBzdG9yYWdlLiBJZiBub3Qgc3BlY2lmaWVkLCBhIGRlZmF1bHQgOEdCIHZvbHVtZSB3aWxsIGJlIGNyZWF0ZWQuXG4gICAqL1xuICBkYXRhVm9sdW1lT3B0aW9ucz86IGVjMi5FYnNEZXZpY2VQcm9wcyB8IHVuZGVmaW5lZDtcblxuICAvKiogUmVzdGF0ZSBoaWdoLWxldmVsIGNvbmZpZ3VyYXRpb24gb3B0aW9ucy4gQWx0ZXJuYXRpdmVseSwgeW91IGNhbiBzZXQge0BsaW5rIHJlc3RhdGVDb25maWdPdmVycmlkZX0uICovXG4gIHJlc3RhdGVDb25maWc/OiB7XG4gICAgLyoqIERlZmF1bHRzIHRvIHRoZSBjb25zdHJ1Y3QgaWQgaWYgbGVmdCB1bnNwZWNpZmllZC4gKi9cbiAgICBjbHVzdGVyTmFtZT86IHN0cmluZztcbiAgICAvKiogRGVmYXVsdHMgdG8gNC4gT25seSB0YWtlcyBlZmZlY3Qgb24gaW5pdGlhbCBwcm92aXNpb25pbmcuICovXG4gICAgYm9vdHN0cmFwTnVtUGFydGl0aW9ucz86IG51bWJlcjtcbiAgICAvKiogUm9ja3NEQiBzZXR0aW5ncy4gKi9cbiAgICByb2Nrc2RiPzoge1xuICAgICAgLyoqIERlZmF1bHRzIHRvIDUxMiBNQi4gKi9cbiAgICAgIHRvdGFsTWVtb3J5U2l6ZT86IGNkay5TaXplO1xuICAgIH07XG4gIH07XG5cbiAgLyoqXG4gICAqIEVudmlyb25tZW50IHByb3BlcnRpZXMgdG8gc2V0IGZvciBSZXN0YXRlLiBUaGlzIGlzIGEgc2ltcGxlIHdheSB0byBwYXNzIGN1c3RvbSBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMuXG4gICAqL1xuICBlbnZpcm9ubWVudD86IHtcbiAgICBba2V5OiBzdHJpbmddOiBzdHJpbmc7XG4gIH07XG5cbiAgLyoqXG4gICAqIENvbXBsZXRlbHkgb3ZlcnJpZGUgdGhlIFJlc3RhdGUgc2VydmVyIGNvbmZpZ3VyYXRpb24uIE5vdGUgdGhhdCBvdGhlciBSZXN0YXRlIGNvbmZpZ3VyYXRpb24gb3B0aW9uc1xuICAgKiB3aWxsIGVmZmVjdGl2ZWx5IGJlIGlnbm9yZWQgaWYgdGhpcyBpcyBzZXQuIFNlZSBodHRwczovL2RvY3MucmVzdGF0ZS5kZXYvb3BlcmF0ZS9jb25maWd1cmF0aW9uL3NlcnZlci9cbiAgICogZm9yIGRldGFpbHMuXG4gICAqL1xuICByZXN0YXRlQ29uZmlnT3ZlcnJpZGU/OiBzdHJpbmc7XG5cbiAgLyoqIEFtYXpvbiBEaXN0cm8gZm9yIE9wZW4gVGVsZW1ldHJ5IERvY2tlciBpbWFnZSB0YWcuIERlZmF1bHRzIHRvIGBsYXRlc3RgLiAqL1xuICBhZG90VGFnPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSZW1vdmFsIHBvbGljeSBmb3IgbG9uZy1saXZlZCByZXNvdXJjZXMgKHN0b3JhZ2UsIGxvZ3MpLiBEZWZhdWx0OiBgY2RrLlJlbW92YWxQb2xpY3kuREVTVFJPWWAuXG4gICAqL1xuICByZW1vdmFsUG9saWN5PzogY2RrLlJlbW92YWxQb2xpY3k7XG5cbiAgLyoqXG4gICAqIENvbnRyb2wgb24taG9zdCBUTFMgdGVybWluYXRpb24gZm9yIGluZ3Jlc3MgYW5kIGFkbWluIHBvcnRzLiBEZWZhdWx0cyB0byBgVGxzVGVybWluYXRpb24uTk9ORWAuIEN1cnJlbnRseSwgZW5hYmxpbmdcbiAgICogVExTIGltcGxpY2l0bHkgZW5hYmxlcyBhbiBgbmdpbnhgIHNlcnZpY2UgdG8gYmUgY29uZmlndXJlZCBvbiB0aGUgaG9zdC4gRGVwZW5kaW5nIG9uIHRoZSB2YWx1ZSBvZiB0aGlzIG9wdGlvbiwgdGhlXG4gICAqIGluZ3Jlc3Mgc2VjdXJpdHkgZ3JvdXAgd2lsbCBiZSBjb25maWd1cmVkIHRvIGFsbG93IGluYm91bmQgdHJhZmZpYyB0byB0aGUgYXBwcm9wcmlhdGUgcG9ydCAtIDgwODAgZm9yIG5vIFRMUywgb3JcbiAgICogNDQzIHdpdGggVExTIGVuYWJsZWQuXG4gICAqL1xuICB0bHNUZXJtaW5hdGlvbj86IFRsc1Rlcm1pbmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVhZCB0aW1lb3V0IGZvciBwcm94aWVkIGluZ3Jlc3MgcmVxdWVzdHMuIERlZmF1bHQ6IDM2MDAgc2Vjb25kcy5cbiAgICovXG4gIGluZ3Jlc3NQcm94eVJlYWRUaW1lb3V0PzogY2RrLkR1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBDb21wbGV0ZWx5IG92ZXJyaWRlIHRoZSBkZWZhdWx0IGBuZ2lueGAgY29uZmlndXJhdGlvbiBmb3IgdGhlIGluZ3Jlc3MgcHJveHkuIE5vdGUgdGhhdCBvdGhlclxuICAgKiBpbmdyZXNzIHByb3h5IGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB3aWxsIGVmZmVjdGl2ZWx5IGJlIGlnbm9yZWQgaWYgdGhpcyBpcyBzZXQuXG4gICAqL1xuICBpbmdyZXNzTmdpbnhDb25maWdPdmVycmlkZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGVudW0gVGxzVGVybWluYXRpb24ge1xuICAvKipcbiAgICogRGlzYWJsZWQgKGRlZmF1bHQpOyBleHBvc2UgdGhlIGByZXN0YXRlLXNlcnZlcmAgSFRUUCBwb3J0cyBkaXJlY3RseS5cbiAgICovXG4gIERJU0FCTEVELFxuXG4gIC8qKlxuICAgKiBVc2Ugc2VsZi1zaWduZWQgY2VydGlmaWNhdGVzIGZvciBUTFMgdGVybWluYXRpb24gb24gdGhlIGluZ3Jlc3MgYW5kIGFkbWluIHBvcnRzLiBDb252ZW5pZW50IGZvciBxdWljayB0ZXN0aW5nLFxuICAgKiBtYWtlIHN1cmUgeW91IHNldCBgaW5zZWN1cmVgID0gYHRydWVgIHdoZW4gdXNpbmcgYFNlcnZpY2VEZXBsb3llcmAgdG8gYWNjZXB0IHRoaXMgY2VydGlmaWNhdGUuXG4gICAqL1xuICBPTl9IT1NUX1NFTEZfU0lHTkVEX0NFUlRJRklDQVRFLFxufVxuXG5jb25zdCBSRVNUQVRFX0lOR1JFU1NfUE9SVCA9IDgwODA7XG5jb25zdCBSRVNUQVRFX1RMU19JTkdSRVNTX1BPUlQgPSA0NDM7XG5jb25zdCBSRVNUQVRFX0FETUlOX1BPUlQgPSA5MDcwO1xuY29uc3QgUkVTVEFURV9UTFNfQURNSU5fUE9SVCA9IDkwNzM7XG5jb25zdCBSRVNUQVRFX0lNQUdFX0RFRkFVTFQgPSBcImRvY2tlci5pby9yZXN0YXRlZGV2L3Jlc3RhdGVcIjtcbmNvbnN0IFJFU1RBVEVfRE9DS0VSX0RFRkFVTFRfVEFHID0gXCJsYXRlc3RcIjtcbmNvbnN0IEFET1RfRE9DS0VSX0RFRkFVTFRfVEFHID0gXCJsYXRlc3RcIjtcbmNvbnN0IERBVEFfREVWSUNFX05BTUUgPSBcIi9kZXYvc2RkXCI7XG5cbi8qKlxuICogQ3JlYXRlcyBhIFJlc3RhdGUgc2VydmljZSBkZXBsb3ltZW50IGJhY2tlZCBieSBhIHNpbmdsZSBFQzIgaW5zdGFuY2UsIHN1aXRhYmxlIGZvciBkZXZlbG9wbWVudCBhbmQgdGVzdGluZyBwdXJwb3Nlcy5cbiAqXG4gKiAqKkR1cmFiaWxpdHkqKlxuICpcbiAqIFJlc3RhdGUgZGF0YSB3aWxsIGJlIHN0b3JlZCBpbiBhIHNlcGFyYXRlIEVCUyB2b2x1bWUgd2hpY2ggeW91IGNhbiBjb25maWd1cmUgZXhwbGljaXRseSB2aWEgdGhlIGBkYXRhVm9sdW1lT3B0aW9uc2BcbiAqIHByb3BlcnR5LiBVcGRhdGluZyBjb25maWd1cmF0aW9uIHNldHRpbmdzIG1heSB0cmlnZ2VyIGluc3RhbmNlIHJlYm9vdCBvciByZXBsYWNlbWVudCAtIGNvbnNpZGVyIHNuYXBzaG90dGluZyB0aGUgZGF0YVxuICogdm9sdW1lIHByaW9yIHRvIGRlcGxveW1lbnRzLCBhbmQgZW5hYmxpbmcgaW5zdGFuY2UgdGVybWluYXRpb24gcHJvdGVjdGlvbi5cbiAqXG4gKiAqKlNlY3VyaXR5KipcbiAqXG4gKiBUaGUgRUMyIGluc3RhbmNlIHdpbGwgYmUgY3JlYXRlZCBpbiB0aGUgZGVmYXVsdCBWUEMgdW5sZXNzIG90aGVyd2lzZSBzcGVjaWZpZWQuIFR3byBzZWN1cml0eSBncm91cHMgYXJlIGNyZWF0ZWQsXG4gKiBgaW5ncmVzc1NlY3VyaXR5R3JvdXBgIGFuZCBgYWRtaW5TZWN1cml0eUdyb3VwYCwgd2hpY2ggY29udHJvbCBhY2Nlc3MgdG8gdGhlIFJlc3RhdGUgc2VydmljZSBpbmdyZXNzIGFuZCBhZG1pbiBwb3J0c1xuICogcmVzcGVjdGl2ZWx5LiBZb3UgbXVzdCBhZGQgYXBwcm9wcmlhdGUgcnVsZXMgb3IgYWRkIG90aGVyIHJlc291cmNlcyB0byB0aGVzZSBzZWN1cml0eSBncm91cHMgdG8gYWxsb3cgYWNjZXNzLlxuICpcbiAqIFNlZSB7QGxpbmsgU2luZ2xlTm9kZVJlc3RhdGVQcm9wc30gZm9yIGF2YWlsYWJsZSBjb25maWd1cmF0aW9uIG9wdGlvbnMsIGFuZCB7QGxpbmsgU2VydmljZURlcGxveWVyfSBmb3IgZGVwbG95aW5nXG4gKiBMYW1iZGEgaGFuZGxlcnMgdG8gZW52aXJvbm1lbnRzLlxuICovXG5leHBvcnQgY2xhc3MgU2luZ2xlTm9kZVJlc3RhdGVEZXBsb3ltZW50IGV4dGVuZHMgQ29uc3RydWN0IGltcGxlbWVudHMgSVJlc3RhdGVFbnZpcm9ubWVudCB7XG4gIHJlYWRvbmx5IGluc3RhbmNlOiBlYzIuSW5zdGFuY2U7XG4gIHJlYWRvbmx5IGluc3RhbmNlUm9sZTogaWFtLklSb2xlO1xuICByZWFkb25seSBpbnZva2VyUm9sZTogaWFtLklSb2xlO1xuICByZWFkb25seSB2cGM6IGVjMi5JVnBjO1xuICByZWFkb25seSBpbmdyZXNzU2VjdXJpdHlHcm91cDogZWMyLklTZWN1cml0eUdyb3VwO1xuICByZWFkb25seSBpbmdyZXNzUG9ydDogbnVtYmVyO1xuICByZWFkb25seSBpbmdyZXNzVXJsOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGFkbWluU2VjdXJpdHlHcm91cDogZWMyLklTZWN1cml0eUdyb3VwO1xuICByZWFkb25seSBhZG1pblBvcnQ6IG51bWJlcjtcbiAgcmVhZG9ubHkgYWRtaW5Vcmw6IHN0cmluZztcbiAgcmVhZG9ubHkgdGxzRW5hYmxlZDogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogU2luZ2xlTm9kZVJlc3RhdGVQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLnZwYyA9IHByb3BzLnZwYyA/PyBlYzIuVnBjLmZyb21Mb29rdXAodGhpcywgXCJWcGNcIiwgeyBpc0RlZmF1bHQ6IHRydWUgfSk7XG5cbiAgICBjb25zdCBzdWJuZXRUeXBlID0gcHJvcHMubmV0d29ya0NvbmZpZ3VyYXRpb24/LnN1Ym5ldFR5cGUgPz8gZWMyLlN1Ym5ldFR5cGUuUFJJVkFURV9XSVRIX0VHUkVTUztcblxuICAgIHRoaXMuaW5zdGFuY2VSb2xlID0gbmV3IGlhbS5Sb2xlKHRoaXMsIFwiSW5zdGFuY2VSb2xlXCIsIHtcbiAgICAgIGFzc3VtZWRCeTogbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKFwiZWMyLmFtYXpvbmF3cy5jb21cIiksXG4gICAgICBtYW5hZ2VkUG9saWNpZXM6IFtpYW0uTWFuYWdlZFBvbGljeS5mcm9tQXdzTWFuYWdlZFBvbGljeU5hbWUoXCJBbWF6b25TU01NYW5hZ2VkSW5zdGFuY2VDb3JlXCIpXSxcbiAgICB9KTtcblxuICAgIHRoaXMuaW52b2tlclJvbGUgPSBuZXcgaWFtLlJvbGUodGhpcywgXCJJbnZva2VyUm9sZVwiLCB7XG4gICAgICBhc3N1bWVkQnk6IHRoaXMuaW5zdGFuY2VSb2xlLFxuICAgIH0pO1xuXG4gICAgbmV3IGlhbS5Qb2xpY3kodGhpcywgXCJBc3N1bWVJbnZva2VyUm9sZVBvbGljeVwiLCB7XG4gICAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICBzaWQ6IFwiQWxsb3dBc3N1bWVJbnZva2VyUm9sZVwiLFxuICAgICAgICAgIGFjdGlvbnM6IFtcInN0czpBc3N1bWVSb2xlXCJdLFxuICAgICAgICAgIHJlc291cmNlczogW3RoaXMuaW52b2tlclJvbGUucm9sZUFybl0sXG4gICAgICAgIH0pLFxuICAgICAgXSxcbiAgICB9KS5hdHRhY2hUb1JvbGUodGhpcy5pbnN0YW5jZVJvbGUpO1xuXG4gICAgY29uc3QgbG9nR3JvdXAgPVxuICAgICAgcHJvcHMubG9nR3JvdXAgPz9cbiAgICAgIG5ldyBsb2dzLkxvZ0dyb3VwKHRoaXMsIFwiTG9nc1wiLCB7XG4gICAgICAgIGxvZ0dyb3VwTmFtZTogYC9yZXN0YXRlLyR7aWR9YCxcbiAgICAgICAgcmV0ZW50aW9uOiBsb2dzLlJldGVudGlvbkRheXMuT05FX01PTlRILFxuICAgICAgICByZW1vdmFsUG9saWN5OiBwcm9wcy5yZW1vdmFsUG9saWN5ID8/IFJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICAgIH0pO1xuICAgIGxvZ0dyb3VwLmdyYW50V3JpdGUodGhpcy5pbnN0YW5jZVJvbGUpO1xuXG4gICAgY29uc3QgcmVzdGF0ZUltYWdlID0gcHJvcHMucmVzdGF0ZUltYWdlID8/IFJFU1RBVEVfSU1BR0VfREVGQVVMVDtcbiAgICBjb25zdCByZXN0YXRlVGFnID0gcHJvcHMucmVzdGF0ZVRhZyA/PyBSRVNUQVRFX0RPQ0tFUl9ERUZBVUxUX1RBRztcbiAgICBjb25zdCBhZG90VGFnID0gcHJvcHMuYWRvdFRhZyA/PyBBRE9UX0RPQ0tFUl9ERUZBVUxUX1RBRztcblxuICAgIHRoaXMudGxzRW5hYmxlZCA9IHByb3BzLnRsc1Rlcm1pbmF0aW9uID09PSBUbHNUZXJtaW5hdGlvbi5PTl9IT1NUX1NFTEZfU0lHTkVEX0NFUlRJRklDQVRFO1xuXG4gICAgY29uc3QgZW52RGVmYXVsdHMgPSB7XG4gICAgICBSRVNUQVRFX0xPR19GT1JNQVQ6IFwianNvblwiLFxuICAgICAgUlVTVF9MT0c6IFwiaW5mb1wiLFxuICAgICAgUkVTVEFURV9UUkFDSU5HX0VORFBPSU5UOiBcImh0dHA6Ly9sb2NhbGhvc3Q6NDMxN1wiLFxuICAgIH07XG4gICAgY29uc3QgZW52QXJncyA9IE9iamVjdC5lbnRyaWVzKHsgLi4uZW52RGVmYXVsdHMsIC4uLihwcm9wcy5lbnZpcm9ubWVudCA/PyB7fSkgfSlcbiAgICAgIC5tYXAoKFtrZXksIHZhbHVlXSkgPT4gYC1lICR7a2V5fT1cIiR7dmFsdWV9XCJgKVxuICAgICAgLmpvaW4oXCIgXCIpO1xuXG4gICAgY29uc3QgaW5pdFNjcmlwdCA9IGVjMi5Vc2VyRGF0YS5mb3JMaW51eCgpO1xuICAgIGluaXRTY3JpcHQuYWRkQ29tbWFuZHMoXG4gICAgICBcInNldCAtZXVmIC1vIHBpcGVmYWlsXCIsXG4gICAgICBgeXVtIGluc3RhbGwgLXkgbnBtICYmIG5wbSBpbnN0YWxsIC1ncSBAcmVzdGF0ZWRldi9yZXN0YXRlQCR7cmVzdGF0ZVRhZ31gLFxuICAgICAgXCJ5dW0gaW5zdGFsbCAteSBkb2NrZXJcIixcbiAgICAgIHRoaXMubW91bnREYXRhVm9sdW1lU2NyaXB0KCksXG5cbiAgICAgIFwibWtkaXIgLXAgL2V0Yy9yZXN0YXRlXCIsXG4gICAgICBbXCJjYXQgPDwgRU9GID4gL2V0Yy9yZXN0YXRlL2NvbmZpZy50b21sXCIsIHRoaXMucmVzdGF0ZUNvbmZpZyhpZCwgcHJvcHMpLCBcIkVPRlwiXS5qb2luKFwiXFxuXCIpLFxuXG4gICAgICBcInN5c3RlbWN0bCBzdGFydCBkb2NrZXIuc2VydmljZVwiLFxuXG4gICAgICAvLyBTdGFydCB0aGUgQURPVCBjb2xsZWN0b3IgLSBuZWVkZWQgZm9yIFgtcmF5IHRyYWNlIGZvcndhcmRpbmdcbiAgICAgIGBpZiBbIFwiJChkb2NrZXIgcHMgLXFhIC1mIG5hbWU9YWRvdClcIiBdOyB0aGVuIGRvY2tlciBzdG9wIGFkb3QgfHwgdHJ1ZTsgZG9ja2VyIHJtIGFkb3Q7IGZpYCxcbiAgICAgIFwiZG9ja2VyIHJ1biAtLW5hbWUgYWRvdCAtLXJlc3RhcnQgb24tZmFpbHVyZSAtLWRldGFjaFwiICtcbiAgICAgICAgXCIgLXAgNDMxNzo0MzE3IC1wIDU1NjgwOjU1NjgwIC1wIDg4ODk6ODg4OFwiICtcbiAgICAgICAgYCBwdWJsaWMuZWNyLmF3cy9hd3Mtb2JzZXJ2YWJpbGl0eS9hd3Mtb3RlbC1jb2xsZWN0b3I6JHthZG90VGFnfWAsXG5cbiAgICAgIC8vIFN0YXJ0IHRoZSBSZXN0YXRlIHNlcnZlciBjb250YWluZXJcbiAgICAgIGBpZiBbIFwiJChkb2NrZXIgcHMgLXFhIC1mIG5hbWU9cmVzdGF0ZSlcIiBdOyB0aGVuIGRvY2tlciBzdG9wIHJlc3RhdGUgfHwgdHJ1ZTsgZG9ja2VyIHJtIHJlc3RhdGU7IGZpYCxcbiAgICAgIFwiZG9ja2VyIHJ1biAtLW5hbWUgcmVzdGF0ZSAtLXJlc3RhcnQgb24tZmFpbHVyZSAtLWRldGFjaFwiICtcbiAgICAgICAgXCIgLS12b2x1bWUgL2V0Yy9yZXN0YXRlOi9ldGMvcmVzdGF0ZVwiICtcbiAgICAgICAgXCIgLS12b2x1bWUgL3Zhci9yZXN0YXRlOi9yZXN0YXRlLWRhdGFcIiArXG4gICAgICAgIFwiIC0tbmV0d29yaz1ob3N0XCIgK1xuICAgICAgICBgICR7ZW52QXJnc31gICtcbiAgICAgICAgYCAtLWxvZy1kcml2ZXI9YXdzbG9ncyAtLWxvZy1vcHQgYXdzbG9ncy1ncm91cD0ke2xvZ0dyb3VwLmxvZ0dyb3VwTmFtZX1gICtcbiAgICAgICAgYCAke3Jlc3RhdGVJbWFnZX06JHtyZXN0YXRlVGFnfWAgK1xuICAgICAgICBcIiAtLWNvbmZpZy1maWxlIC9ldGMvcmVzdGF0ZS9jb25maWcudG9tbFwiLFxuICAgICk7XG5cbiAgICAvLyBPcHRpb25hbGx5LCBjb25maWd1cmUgYW5kIHN0YXJ0IHRoZSBuZ2lueCBzZXJ2aWNlXG4gICAgaWYgKHRoaXMudGxzRW5hYmxlZCkge1xuICAgICAgaWYgKHN1Ym5ldFR5cGUgPT0gZWMyLlN1Ym5ldFR5cGUuUFVCTElDKSB7XG4gICAgICAgIGluaXRTY3JpcHQuYWRkQ29tbWFuZHMoXG4gICAgICAgICAgXCJ5dW0gaW5zdGFsbCAteSBuZ2lueFwiLFxuICAgICAgICAgIFwibWtkaXIgLXAgL2V0Yy9wa2kvcHJpdmF0ZVwiLFxuICAgICAgICAgIFtcbiAgICAgICAgICAgIFwib3BlbnNzbCByZXEgLW5ldyAteDUwOSAtbm9kZXMgLXNoYTI1NiAtZGF5cyAzNjUgLWV4dGVuc2lvbnMgdjNfY2FcIixcbiAgICAgICAgICAgIFwiIC1zdWJqICcvQz1ERS9TVD1CZXJsaW4vTD1CZXJsaW4vTz1yZXN0YXRlLmRldi9PVT1kZW1vL0NOPXJlc3RhdGUuZXhhbXBsZS5jb20nXCIsXG4gICAgICAgICAgICBcIiAtbmV3a2V5IHJzYToyMDQ4IC1rZXlvdXQgL2V0Yy9wa2kvcHJpdmF0ZS9yZXN0YXRlLXNlbGZzaWduZWQua2V5IC1vdXQgL2V0Yy9wa2kvcHJpdmF0ZS9yZXN0YXRlLXNlbGZzaWduZWQuY3J0XCIsXG4gICAgICAgICAgXS5qb2luKFwiXCIpLFxuXG4gICAgICAgICAgW1wiY2F0IDw8IEVPRiA+IC9ldGMvbmdpbngvY29uZi5kL3Jlc3RhdGUtaW5ncmVzcy5jb25mXCIsIHRoaXMuaW5ncmVzc05naW54Q29uZmlnKHByb3BzKSwgXCJFT0ZcIl0uam9pbihcIlxcblwiKSxcbiAgICAgICAgICBcInN5c3RlbWN0bCBzdGFydCBuZ2lueFwiLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGNsb3VkQ29uZmlnID0gZWMyLlVzZXJEYXRhLmN1c3RvbShbYGNsb3VkX2ZpbmFsX21vZHVsZXM6YCwgYC0gW3NjcmlwdHMtdXNlciwgYWx3YXlzXWBdLmpvaW4oXCJcXG5cIikpO1xuXG4gICAgY29uc3QgdXNlckRhdGEgPSBuZXcgZWMyLk11bHRpcGFydFVzZXJEYXRhKCk7XG4gICAgdXNlckRhdGEuYWRkVXNlckRhdGFQYXJ0KGNsb3VkQ29uZmlnLCBcInRleHQvY2xvdWQtY29uZmlnXCIpO1xuICAgIHVzZXJEYXRhLmFkZFVzZXJEYXRhUGFydChpbml0U2NyaXB0LCBcInRleHQveC1zaGVsbHNjcmlwdFwiKTtcblxuICAgIGNvbnN0IHJlc3RhdGVJbnN0YW5jZSA9IG5ldyBlYzIuSW5zdGFuY2UodGhpcywgXCJIb3N0XCIsIHtcbiAgICAgIHZwYzogdGhpcy52cGMsXG4gICAgICB2cGNTdWJuZXRzOiB7IHN1Ym5ldFR5cGUgfSxcbiAgICAgIGluc3RhbmNlVHlwZTogcHJvcHMuaW5zdGFuY2VUeXBlID8/IG5ldyBlYzIuSW5zdGFuY2VUeXBlKFwidDRnLm1pY3JvXCIpLFxuICAgICAgbWFjaGluZUltYWdlOlxuICAgICAgICBwcm9wcy5tYWNoaW5lSW1hZ2UgPz9cbiAgICAgICAgZWMyLk1hY2hpbmVJbWFnZS5sYXRlc3RBbWF6b25MaW51eDIwMjMoe1xuICAgICAgICAgIGNwdVR5cGU6IGVjMi5BbWF6b25MaW51eENwdVR5cGUuQVJNXzY0LFxuICAgICAgICB9KSxcbiAgICAgIHJvbGU6IHRoaXMuaW5zdGFuY2VSb2xlLFxuICAgICAgYmxvY2tEZXZpY2VzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBkZXZpY2VOYW1lOiBEQVRBX0RFVklDRV9OQU1FLFxuICAgICAgICAgIHZvbHVtZToge1xuICAgICAgICAgICAgZWJzRGV2aWNlOiB7XG4gICAgICAgICAgICAgIHZvbHVtZVNpemU6IDgsXG4gICAgICAgICAgICAgIGRlbGV0ZU9uVGVybWluYXRpb246IHByb3BzLnJlbW92YWxQb2xpY3kgPT09IFJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICAgICAgICAgICAgLi4uKHByb3BzLmRhdGFWb2x1bWVPcHRpb25zID8/IHt9KSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB2aXJ0dWFsTmFtZTogXCJyZXN0YXRlLWRhdGFcIixcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHVzZXJEYXRhLFxuICAgIH0pO1xuXG4gICAgdGhpcy5pbnN0YW5jZSA9IHJlc3RhdGVJbnN0YW5jZTtcblxuICAgIC8vIFdlIHN0YXJ0IHRoZSBBRE9UIGNvbGxlY3RvciByZWdhcmRsZXNzLCBhbmQgY29udHJvbCB3aGV0aGVyIHRyYWNlcyB3aWxsIGJlIGV4cG9ydGVkIHRvIFgtUmF5IHVzaW5nIGluc3RhbmNlIHJvbGVcbiAgICAvLyBwZXJtaXNzaW9ucy4gVGhpcyB3YXkgaGlzdG9yaWMgdHJhY2VzIHdpbGwgYmUgYnVmZmVyZWQgb24gdGhlIGhvc3QsIGV2ZW4gaWYgdHJhY2luZyBpcyBkaXNhYmxlZCBpbml0aWFsbHkuXG4gICAgaWYgKHByb3BzLnRyYWNpbmcgPT09IFRyYWNpbmdNb2RlLkFXU19YUkFZKSB7XG4gICAgICByZXN0YXRlSW5zdGFuY2Uucm9sZS5hZGRNYW5hZ2VkUG9saWN5KGlhbS5NYW5hZ2VkUG9saWN5LmZyb21Bd3NNYW5hZ2VkUG9saWN5TmFtZShcIkFXU1hyYXlXcml0ZU9ubHlBY2Nlc3NcIikpO1xuICAgIH1cblxuICAgIGNvbnN0IGluZ3Jlc3NTZWN1cml0eUdyb3VwID0gbmV3IGVjMi5TZWN1cml0eUdyb3VwKHRoaXMsIFwiSW5ncmVzc1NlY3VyaXR5R3JvdXBcIiwge1xuICAgICAgdnBjOiB0aGlzLnZwYyxcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlJlc3RhdGUgSW5ncmVzcyBBQ0xzXCIsXG4gICAgfSk7XG4gICAgcmVzdGF0ZUluc3RhbmNlLmFkZFNlY3VyaXR5R3JvdXAoaW5ncmVzc1NlY3VyaXR5R3JvdXApO1xuICAgIGNvbnN0IGFkbWluU2VjdXJpdHlHcm91cCA9IG5ldyBlYzIuU2VjdXJpdHlHcm91cCh0aGlzLCBcIkFkbWluU2VjdXJpdHlHcm91cFwiLCB7XG4gICAgICB2cGM6IHRoaXMudnBjLFxuICAgICAgZGVzY3JpcHRpb246IFwiUmVzdGF0ZSBBZG1pbiBBQ0xzXCIsXG4gICAgfSk7XG4gICAgcmVzdGF0ZUluc3RhbmNlLmFkZFNlY3VyaXR5R3JvdXAoYWRtaW5TZWN1cml0eUdyb3VwKTtcblxuICAgIHRoaXMuaW5ncmVzc1BvcnQgPSB0aGlzLnRsc0VuYWJsZWQgPyBSRVNUQVRFX1RMU19JTkdSRVNTX1BPUlQgOiBSRVNUQVRFX0lOR1JFU1NfUE9SVDtcbiAgICB0aGlzLmFkbWluUG9ydCA9IHRoaXMudGxzRW5hYmxlZCA/IFJFU1RBVEVfVExTX0FETUlOX1BPUlQgOiBSRVNUQVRFX0FETUlOX1BPUlQ7XG5cbiAgICBpbmdyZXNzU2VjdXJpdHlHcm91cC5hZGRJbmdyZXNzUnVsZShcbiAgICAgIChwcm9wcy5wdWJsaWNJbmdyZXNzID8/IGZhbHNlKSA/IGVjMi5QZWVyLmFueUlwdjQoKSA6IGluZ3Jlc3NTZWN1cml0eUdyb3VwLFxuICAgICAgZWMyLlBvcnQudGNwKHRoaXMuaW5ncmVzc1BvcnQpLFxuICAgICAgXCJSZXN0YXRlIGluZ3Jlc3NcIixcbiAgICApO1xuICAgIGFkbWluU2VjdXJpdHlHcm91cC5hZGRJbmdyZXNzUnVsZShhZG1pblNlY3VyaXR5R3JvdXAsIGVjMi5Qb3J0LnRjcCh0aGlzLmFkbWluUG9ydCksIFwiUmVzdGF0ZSBhZG1pblwiKTtcblxuICAgIGNvbnN0IHByb3RvY29sID0gdGhpcy50bHNFbmFibGVkID8gXCJodHRwc1wiIDogXCJodHRwXCI7XG4gICAgY29uc3QgaG9zdG5hbWUgPVxuICAgICAgcHJvcHMubmV0d29ya0NvbmZpZ3VyYXRpb24/LnN1Ym5ldFR5cGUgIT09IGVjMi5TdWJuZXRUeXBlLlBVQkxJQ1xuICAgICAgICA/IGAke3Jlc3RhdGVJbnN0YW5jZS5pbnN0YW5jZVByaXZhdGVEbnNOYW1lfWBcbiAgICAgICAgOiBgJHtyZXN0YXRlSW5zdGFuY2UuaW5zdGFuY2VQdWJsaWNEbnNOYW1lfWA7XG4gICAgdGhpcy5pbmdyZXNzVXJsID0gYCR7cHJvdG9jb2x9Oi8vJHtob3N0bmFtZX1gICsgKHRoaXMuaW5ncmVzc1BvcnQgPT09IDQ0MyA/IFwiXCIgOiBgOiR7dGhpcy5pbmdyZXNzUG9ydH1gKTtcbiAgICB0aGlzLmFkbWluVXJsID0gYCR7cHJvdG9jb2x9Oi8vJHtob3N0bmFtZX06JHt0aGlzLmFkbWluUG9ydH1gO1xuXG4gICAgdGhpcy5pbmdyZXNzU2VjdXJpdHlHcm91cCA9IGluZ3Jlc3NTZWN1cml0eUdyb3VwO1xuICAgIHRoaXMuYWRtaW5TZWN1cml0eUdyb3VwID0gYWRtaW5TZWN1cml0eUdyb3VwO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlc3RhdGVDb25maWcoaWQ6IHN0cmluZywgcHJvcHM6IFNpbmdsZU5vZGVSZXN0YXRlUHJvcHMpIHtcbiAgICByZXR1cm4gKFxuICAgICAgcHJvcHMucmVzdGF0ZUNvbmZpZ092ZXJyaWRlID8/XG4gICAgICBbXG4gICAgICAgIGByb2xlcyA9IFtgLFxuICAgICAgICBgICAgIFwid29ya2VyXCIsYCxcbiAgICAgICAgYCAgICBcImFkbWluXCIsYCxcbiAgICAgICAgYCAgICBcIm1ldGFkYXRhLXN0b3JlXCIsYCxcbiAgICAgICAgYF1gLFxuICAgICAgICBgbm9kZS1uYW1lID0gXCJyZXN0YXRlLTBcImAsXG4gICAgICAgIGBjbHVzdGVyLW5hbWUgPSBcIiR7cHJvcHMucmVzdGF0ZUNvbmZpZz8uY2x1c3Rlck5hbWUgPz8gaWR9XCJgLFxuICAgICAgICBgYWxsb3ctYm9vdHN0cmFwID0gdHJ1ZWAsXG4gICAgICAgIGBib290c3RyYXAtbnVtLXBhcnRpdGlvbnMgPSAke3Byb3BzLnJlc3RhdGVDb25maWc/LmJvb3RzdHJhcE51bVBhcnRpdGlvbnMgPz8gNH1gLFxuICAgICAgICBgZGVmYXVsdC10aHJlYWQtcG9vbC1zaXplID0gM2AsXG4gICAgICAgIGBzdG9yYWdlLWhpZ2gtcHJpb3JpdHktYmctdGhyZWFkcyA9IDNgLFxuICAgICAgICBgc3RvcmFnZS1sb3ctcHJpb3JpdHktYmctdGhyZWFkcyA9IDNgLFxuICAgICAgICBgcm9ja3NkYi10b3RhbC1tZW1vcnktc2l6ZSA9IFwiJHtwcm9wcy5yZXN0YXRlQ29uZmlnPy5yb2Nrc2RiPy50b3RhbE1lbW9yeVNpemU/LnRvTWViaWJ5dGVzKCkgPz8gNTEyLjAgKyBcIiBNQlwifVwiYCxcbiAgICAgICAgYHJvY2tzZGItdG90YWwtbWVtdGFibGVzLXJhdGlvID0gMC42MGAsXG4gICAgICAgIGByb2Nrc2RiLWJnLXRocmVhZHMgPSAzYCxcbiAgICAgICAgYHJvY2tzZGItaGlnaC1wcmlvcml0eS1iZy10aHJlYWRzID0gM2AsXG4gICAgICAgIGBgLFxuICAgICAgICBgW3dvcmtlcl1gLFxuICAgICAgICBgaW50ZXJuYWwtcXVldWUtbGVuZ3RoID0gMTAwMGAsXG4gICAgICAgIGBgLFxuICAgICAgICBgW3dvcmtlci5zdG9yYWdlXWAsXG4gICAgICAgIGByb2Nrc2RiLW1heC1iYWNrZ3JvdW5kLWpvYnMgPSAzYCxcbiAgICAgICAgYHJvY2tzZGItc3RhdGlzdGljcy1sZXZlbCA9IFwiZXhjZXB0LWRldGFpbGVkLXRpbWVyc1wiYCxcbiAgICAgICAgYG51bS1wYXJ0aXRpb25zLXRvLXNoYXJlLW1lbW9yeS1idWRnZXQgPSA0YCxcbiAgICAgICAgYGAsXG4gICAgICAgIGBbYWRtaW5dYCxcbiAgICAgICAgYGJpbmQtYWRkcmVzcyA9IFwiJHt0aGlzLnRsc0VuYWJsZWQgPyBcIjEyNy4wLjAuMVwiIDogXCIwLjAuMC4wXCJ9OiR7UkVTVEFURV9BRE1JTl9QT1JUfVwiYCxcbiAgICAgICAgYGAsXG4gICAgICAgIGBbYWRtaW4ucXVlcnktZW5naW5lXWAsXG4gICAgICAgIGBtZW1vcnktc2l6ZSA9IFwiNTAuMCBNQlwiYCxcbiAgICAgICAgYHF1ZXJ5LXBhcmFsbGVsaXNtID0gNGAsXG4gICAgICAgIGBgLFxuICAgICAgICBgW2luZ3Jlc3NdYCxcbiAgICAgICAgYGJpbmQtYWRkcmVzcyA9IFwiJHt0aGlzLnRsc0VuYWJsZWQgPyBcIjEyNy4wLjAuMVwiIDogXCIwLjAuMC4wXCJ9OiR7UkVTVEFURV9JTkdSRVNTX1BPUlR9XCJgLFxuICAgICAgICBgcm9ja3NkYi1tYXgtYmFja2dyb3VuZC1qb2JzID0gM2AsXG4gICAgICAgIGByb2Nrc2RiLXN0YXRpc3RpY3MtbGV2ZWwgPSBcImV4Y2VwdC1kZXRhaWxlZC10aW1lcnNcImAsXG4gICAgICAgIGB3cml0ZXItYmF0Y2gtY29tbWl0LWNvdW50ID0gMTAwMGAsXG4gICAgICAgIGBgLFxuICAgICAgICBgW21ldGFkYXRhLXN0b3JlLnJvY2tzZGJdYCxcbiAgICAgICAgYHJvY2tzZGItbWF4LWJhY2tncm91bmQtam9icyA9IDFgLFxuICAgICAgICBgcm9ja3NkYi1zdGF0aXN0aWNzLWxldmVsID0gXCJleGNlcHQtZGV0YWlsZWQtdGltZXJzXCJgLFxuICAgICAgXS5qb2luKFwiXFxuXCIpXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBtb3VudERhdGFWb2x1bWVTY3JpcHQoKSB7XG4gICAgcmV0dXJuIGBcbmlmIG1vdW50IHwgZ3JlcCAtcXMgJy92YXIvcmVzdGF0ZSc7IHRoZW5cbiAgZWNobyBcIi92YXIvcmVzdGF0ZSBpcyBtb3VudGVkXCJcbmVsc2VcbiAgaWYgWyAtZCAvdmFyL3Jlc3RhdGUgXTsgdGhlblxuICAgIGlmIFsgXCIkKGxzIC1BIC92YXIvcmVzdGF0ZSlcIiBdOyB0aGVuXG4gICAgICBlY2hvIFwiRGF0YSBleGlzdHMgaW4gL3Zhci9yZXN0YXRlIHRoYXQgaXMgbm90IG9uIGRhdGEgdm9sdW1lOyByZWZ1c2luZyB0byBvdmVyd3JpdGUhXCJcbiAgICAgIGV4aXQgMVxuICAgIGZpXG4gIGVsc2VcbiAgICBta2RpciAvdmFyL3Jlc3RhdGVcbiAgZmlcbiAgaWYgZmlsZSAtc0wgJHtEQVRBX0RFVklDRV9OQU1FfSB8IGdyZXAgLXEgJzogZGF0YSQnOyB0aGVuXG4gICAgbWtmcyAtdCB4ZnMgJHtEQVRBX0RFVklDRV9OQU1FfVxuICBmaVxuICBtb3VudCAke0RBVEFfREVWSUNFX05BTUV9IC92YXIvcmVzdGF0ZVxuICBpZiAhIGdyZXAgLXFzICcvdmFyL3Jlc3RhdGUnIC9ldGMvZnN0YWI7IHRoZW5cbiAgICBlY2hvIFwiJHtEQVRBX0RFVklDRV9OQU1FfSAvdmFyL3Jlc3RhdGUgeGZzIGRlZmF1bHRzIDAgMFwiID4+IC9ldGMvZnN0YWJcbiAgICBlY2hvIFwiQWRkZWQgZW50cnkgZm9yICR7REFUQV9ERVZJQ0VfTkFNRX0gdG8gL2V0Yy9mc3RhYlwiXG4gIGVsc2VcbiAgICBlY2hvIFwiRW50cnkgZm9yICR7REFUQV9ERVZJQ0VfTkFNRX0gYWxyZWFkeSBleGlzdHMgaW4gL2V0Yy9mc3RhYlwiXG4gIGZpXG5maVxuYDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0gcHJvcHMgY29uc3RydWN0IHByb3BlcnRpZXNcbiAgICogQHJldHVybnMgbmdpbnggY29uZmlndXJhdGlvbiB0byB1c2UgZm9yIGluZ3Jlc3MgcmV2ZXJzZSBwcm94eSwgZm9ybWF0dGVkIGFzIGEgbXVsdGktbGluZSBzdHJpbmdcbiAgICovXG4gIHByb3RlY3RlZCBpbmdyZXNzTmdpbnhDb25maWcocHJvcHM6IFNpbmdsZU5vZGVSZXN0YXRlUHJvcHMpIHtcbiAgICByZXR1cm4gKFxuICAgICAgcHJvcHMuaW5ncmVzc05naW54Q29uZmlnT3ZlcnJpZGUgPz9cbiAgICAgIFtcbiAgICAgICAgXCJzZXJ2ZXIge1wiLFxuICAgICAgICBgICBsaXN0ZW4gJHtSRVNUQVRFX1RMU19JTkdSRVNTX1BPUlR9IHNzbCBodHRwMjtgLFxuICAgICAgICBgICBsaXN0ZW4gWzo6XToke1JFU1RBVEVfVExTX0lOR1JFU1NfUE9SVH0gc3NsIGh0dHAyO2AsXG4gICAgICAgIFwiICBzZXJ2ZXJfbmFtZSBfO1wiLFxuICAgICAgICBcIiAgcm9vdCAvdXNyL3NoYXJlL25naW54L2h0bWw7XCIsXG4gICAgICAgIFwiXCIsXG4gICAgICAgICcgIHNzbF9jZXJ0aWZpY2F0ZSBcIi9ldGMvcGtpL3ByaXZhdGUvcmVzdGF0ZS1zZWxmc2lnbmVkLmNydFwiOycsXG4gICAgICAgICcgIHNzbF9jZXJ0aWZpY2F0ZV9rZXkgXCIvZXRjL3BraS9wcml2YXRlL3Jlc3RhdGUtc2VsZnNpZ25lZC5rZXlcIjsnLFxuICAgICAgICBcIiAgc3NsX3Nlc3Npb25fY2FjaGUgc2hhcmVkOlNTTDoxbTtcIixcbiAgICAgICAgXCIgIHNzbF9zZXNzaW9uX3RpbWVvdXQgMTBtO1wiLFxuICAgICAgICBcIiAgc3NsX2NpcGhlcnMgUFJPRklMRT1TWVNURU07XCIsXG4gICAgICAgIFwiICBzc2xfcHJlZmVyX3NlcnZlcl9jaXBoZXJzIG9uO1wiLFxuICAgICAgICBcIlwiLFxuICAgICAgICBcIiAgbG9jYXRpb24gLyB7XCIsXG4gICAgICAgIGAgICAgcHJveHlfcGFzcyBodHRwOi8vbG9jYWxob3N0OiR7UkVTVEFURV9JTkdSRVNTX1BPUlR9O2AsXG4gICAgICAgIGAgICAgcHJveHlfcmVhZF90aW1lb3V0ICR7cHJvcHMuaW5ncmVzc1Byb3h5UmVhZFRpbWVvdXQ/LnRvU2Vjb25kcygpID8/IDM2MDB9O2AsXG4gICAgICAgIFwiICB9XCIsXG4gICAgICAgIFwifVwiLFxuICAgICAgICBcIlwiLFxuICAgICAgICBcInNlcnZlciB7XCIsXG4gICAgICAgIGAgIGxpc3RlbiAke1JFU1RBVEVfVExTX0FETUlOX1BPUlR9IHNzbCBodHRwMjtgLFxuICAgICAgICBgICBsaXN0ZW4gWzo6XToke1JFU1RBVEVfVExTX0FETUlOX1BPUlR9IHNzbCBodHRwMjtgLFxuICAgICAgICBcIiAgc2VydmVyX25hbWUgXztcIixcbiAgICAgICAgXCIgIHJvb3QgL3Vzci9zaGFyZS9uZ2lueC9odG1sO1wiLFxuICAgICAgICBcIlwiLFxuICAgICAgICAnICBzc2xfY2VydGlmaWNhdGUgXCIvZXRjL3BraS9wcml2YXRlL3Jlc3RhdGUtc2VsZnNpZ25lZC5jcnRcIjsnLFxuICAgICAgICAnICBzc2xfY2VydGlmaWNhdGVfa2V5IFwiL2V0Yy9wa2kvcHJpdmF0ZS9yZXN0YXRlLXNlbGZzaWduZWQua2V5XCI7JyxcbiAgICAgICAgXCIgIHNzbF9zZXNzaW9uX2NhY2hlIHNoYXJlZDpTU0w6MW07XCIsXG4gICAgICAgIFwiICBzc2xfc2Vzc2lvbl90aW1lb3V0IDEwbTtcIixcbiAgICAgICAgXCIgIHNzbF9jaXBoZXJzIFBST0ZJTEU9U1lTVEVNO1wiLFxuICAgICAgICBcIiAgc3NsX3ByZWZlcl9zZXJ2ZXJfY2lwaGVycyBvbjtcIixcbiAgICAgICAgXCJcIixcbiAgICAgICAgXCIgIGxvY2F0aW9uIC8ge1wiLFxuICAgICAgICBgICAgIHByb3h5X3Bhc3MgaHR0cDovL2xvY2FsaG9zdDoke1JFU1RBVEVfQURNSU5fUE9SVH07YCxcbiAgICAgICAgXCIgIH1cIixcbiAgICAgICAgXCJ9XCIsXG4gICAgICBdLmpvaW4oXCJcXG5cIilcbiAgICApO1xuICB9XG59XG4iXX0=
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@restatedev/restate-cdk",
3
3
  "description": "Restate.dev CDK constructs",
4
- "version": "1.1.1",
4
+ "version": "1.1.2",
5
5
  "author": "Restate Developers",
6
6
  "license": "MIT",
7
7
  "email": "code@restate.dev",
@@ -779,9 +779,8 @@ exports[`Restate constructs Create a self-hosted Restate environment deployed on
779
779
  docker run --name restate --restart on-failure --detach
780
780
  --volume /etc/restate:/etc/restate --volume
781
781
  /var/restate:/restate-data --network=host -e
782
- RESTATE_OBSERVABILITY__LOG__FORMAT="Json" -e
783
- RUST_LOG="info" -e
784
- RESTATE_OBSERVABILITY__TRACING__ENDPOINT="http://localhost:4317"
782
+ RESTATE_LOG_FORMAT="json" -e RUST_LOG="info" -e
783
+ RESTATE_TRACING_ENDPOINT="http://localhost:4317"
785
784
  --log-driver=awslogs --log-opt awslogs-group=
786
785
  - Ref: RestateLogsFD86ECAE
787
786
  - ' docker.io/restatedev/restate:latest --config-file /etc/restate/config.toml'
@@ -1118,10 +1117,8 @@ exports[`Restate constructs Create a self-hosted Restate environment deployed on
1118
1117
  docker run --name restate --restart on-failure --detach
1119
1118
  --volume /etc/restate:/etc/restate --volume
1120
1119
  /var/restate:/restate-data --network=host -e
1121
- RESTATE_OBSERVABILITY__LOG__FORMAT="Json" -e
1122
- RUST_LOG="info" -e
1123
- RESTATE_OBSERVABILITY__TRACING__ENDPOINT="http://localhost:4317"
1124
- -e
1120
+ RESTATE_LOG_FORMAT="json" -e RUST_LOG="info" -e
1121
+ RESTATE_TRACING_ENDPOINT="http://localhost:4317" -e
1125
1122
  RESTATE_INGRESS__ADVERTISED_INGRESS_ENDPOINT="http://restate-ingress"
1126
1123
  --log-driver=awslogs --log-opt awslogs-group=
1127
1124
  - Ref: RestateLogsFD86ECAE
File without changes