@bluedynamics/cdk8s-plone 0.1.43 → 0.1.44
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +24 -23
- package/API.md +6 -2
- package/README.md +3 -3
- package/documentation/sources/conf.py +55 -29
- package/documentation/sources/explanation/architecture.md +14 -16
- package/documentation/sources/explanation/cdk8s-workflow.md +66 -0
- package/documentation/sources/explanation/index.md +1 -27
- package/documentation/sources/how-to/backup-and-restore.md +107 -0
- package/documentation/sources/how-to/configure-env-and-secrets.md +184 -0
- package/documentation/sources/how-to/configure-ingress-tls.md +108 -0
- package/documentation/sources/how-to/configure-security-context.md +0 -5
- package/documentation/sources/how-to/deploy-blicca.md +8 -8
- package/documentation/sources/how-to/{deploy-production-volto.md → deploy-volto.md} +20 -25
- package/documentation/sources/how-to/deploy-with-httpcache.md +224 -0
- package/documentation/sources/how-to/deploy-with-vinyl-cache.md +0 -5
- package/documentation/sources/how-to/enable-prometheus-monitoring.md +4 -5
- package/documentation/sources/how-to/index.md +15 -8
- package/documentation/sources/how-to/scale-and-high-availability.md +122 -0
- package/documentation/sources/how-to/schedule-pods.md +0 -5
- package/documentation/sources/how-to/troubleshooting.md +113 -0
- package/documentation/sources/how-to/upgrade-and-rollout.md +89 -0
- package/documentation/sources/index.md +3 -11
- package/documentation/sources/reference/api/index.md +6 -4
- package/documentation/sources/reference/configuration-options.md +85 -516
- package/documentation/sources/reference/index.md +16 -43
- package/documentation/sources/tutorials/01-quick-start.md +1 -1
- package/documentation/sources/tutorials/index.md +7 -11
- package/examples/blicca/.env.example +3 -2
- package/examples/blicca/README.md +21 -24
- package/examples/blicca/__snapshots__/main.test.ts.snap +138 -345
- package/examples/blicca/main.test.ts +7 -0
- package/examples/blicca/main.ts +8 -7
- package/examples/blicca/postgres.plain.ts +115 -0
- package/examples/blicca/tsconfig.json +33 -0
- package/examples/{production-volto → volto}/.env.example +3 -2
- package/examples/{production-volto → volto}/README.md +20 -23
- package/examples/{production-volto → volto}/__snapshots__/main.test.ts.snap +139 -345
- package/examples/{production-volto → volto}/main.test.ts +7 -0
- package/examples/{production-volto → volto}/main.ts +8 -7
- package/examples/{production-volto → volto}/package.json +1 -1
- package/examples/volto/postgres.plain.ts +115 -0
- package/examples/volto/tsconfig.json +33 -0
- package/lib/httpcache.js +1 -1
- package/lib/imports/vinyl.bluedynamics.eu.d.ts +4011 -53
- package/lib/imports/vinyl.bluedynamics.eu.js +1786 -157
- package/lib/plone.js +1 -1
- package/lib/vinylcache.d.ts +3 -1
- package/lib/vinylcache.js +3 -2
- package/package.json +1 -1
- package/documentation/sources/_static/brand-theme.css +0 -685
- package/documentation/sources/_static/custom-icons.css +0 -123
- package/documentation/sources/_static/fonts/hack/Hack-Regular.woff2 +0 -0
- package/documentation/sources/_static/fonts/orbitron/Orbitron-Black.woff2 +0 -11
- package/documentation/sources/_static/fonts/orbitron/Orbitron-Bold.woff2 +0 -11
- package/documentation/sources/_static/fonts/orbitron/Orbitron-Regular.woff2 +0 -0
- package/documentation/sources/_static/fonts/rajdhani/Rajdhani-Bold.woff2 +0 -11
- package/documentation/sources/_static/fonts/rajdhani/Rajdhani-Medium.woff2 +0 -11
- package/documentation/sources/_static/fonts/rajdhani/Rajdhani-Regular.woff2 +0 -11
- package/documentation/sources/_static/fonts/rajdhani/Rajdhani-SemiBold.woff2 +0 -11
- package/documentation/sources/_static/kup6s-icon-explanation.svg +0 -32
- package/documentation/sources/_static/kup6s-icon-howto.svg +0 -34
- package/documentation/sources/_static/kup6s-icon-reference.svg +0 -34
- package/documentation/sources/_static/kup6s-icon-tutorials.svg +0 -30
- package/documentation/sources/_static/logo-fix.js +0 -12
- package/documentation/sources/reference/api/.gitkeep +0 -1
- package/examples/blicca/postgres.bitnami.ts +0 -49
- package/examples/production-volto/postgres.bitnami.ts +0 -49
- /package/documentation/sources/_static/{kup6s-icon-plone.svg → logo.svg} +0 -0
- /package/examples/{production-volto → volto}/cdk8s.yaml +0 -0
- /package/examples/{production-volto → volto}/config/varnish.tpl.vcl +0 -0
- /package/examples/{production-volto → volto}/ingress.ts +0 -0
- /package/examples/{production-volto → volto}/jest.config.js +0 -0
- /package/examples/{production-volto → volto}/postgres.cloudnativepg.ts +0 -0
package/lib/plone.js
CHANGED
|
@@ -91,7 +91,7 @@ var PloneVariant;
|
|
|
91
91
|
* });
|
|
92
92
|
*/
|
|
93
93
|
class Plone extends constructs_1.Construct {
|
|
94
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@bluedynamics/cdk8s-plone.Plone", version: "0.1.
|
|
94
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@bluedynamics/cdk8s-plone.Plone", version: "0.1.44" };
|
|
95
95
|
/**
|
|
96
96
|
* Name of the backend Kubernetes service.
|
|
97
97
|
* Use this to reference the backend service from other constructs.
|
package/lib/vinylcache.d.ts
CHANGED
|
@@ -229,7 +229,9 @@ export interface PloneVinylCacheOptions {
|
|
|
229
229
|
*/
|
|
230
230
|
readonly invalidation?: boolean;
|
|
231
231
|
/**
|
|
232
|
-
* Enable Prometheus monitoring
|
|
232
|
+
* Enable Prometheus monitoring. When true this turns on operator metrics,
|
|
233
|
+
* a ServiceMonitor, and the prometheus_varnish_exporter sidecar (required
|
|
234
|
+
* for cache hit-ratio and backend-health metrics).
|
|
233
235
|
* @default false
|
|
234
236
|
*/
|
|
235
237
|
readonly monitoring?: boolean;
|
package/lib/vinylcache.js
CHANGED
|
@@ -58,7 +58,7 @@ const vinyl_bluedynamics_eu_1 = require("./imports/vinyl.bluedynamics.eu");
|
|
|
58
58
|
* // Use cache.vinylCacheServiceName for IngressRoute
|
|
59
59
|
*/
|
|
60
60
|
class PloneVinylCache extends constructs_1.Construct {
|
|
61
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@bluedynamics/cdk8s-plone.PloneVinylCache", version: "0.1.
|
|
61
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@bluedynamics/cdk8s-plone.PloneVinylCache", version: "0.1.44" };
|
|
62
62
|
/**
|
|
63
63
|
* Name of the VinylCache service created by the operator.
|
|
64
64
|
* Use this to reference the cache service from ingress or other constructs.
|
|
@@ -206,6 +206,7 @@ class PloneVinylCache extends constructs_1.Construct {
|
|
|
206
206
|
monitoring: monitoring ? {
|
|
207
207
|
enabled: true,
|
|
208
208
|
serviceMonitor: { enabled: true },
|
|
209
|
+
exporter: { enabled: true },
|
|
209
210
|
} : undefined,
|
|
210
211
|
pod: (options.tolerations?.length || options.nodeSelector) ? {
|
|
211
212
|
tolerations: options.tolerations?.map(t => ({
|
|
@@ -223,4 +224,4 @@ class PloneVinylCache extends constructs_1.Construct {
|
|
|
223
224
|
}
|
|
224
225
|
}
|
|
225
226
|
exports.PloneVinylCache = PloneVinylCache;
|
|
226
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlueWxjYWNoZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy92aW55bGNhY2hlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx1Q0FBeUI7QUFDekIsMkNBQTZCO0FBQzdCLGlDQUE4QjtBQUM5QiwyQ0FBdUM7QUFDdkMsMkVBVXlDO0FBNFd6Qzs7Ozs7Ozs7Ozs7Ozs7OztHQWdCRztBQUNILE1BQWEsZUFBZ0IsU0FBUSxzQkFBUzs7SUFDNUM7OztPQUdHO0lBQ2EscUJBQXFCLENBQVM7SUFFOUMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxPQUErQjtRQUN2RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDO1FBQ2xELE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxVQUFVLElBQUksS0FBSyxDQUFDO1FBRS9DLDZCQUE2QjtRQUM3QixNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsUUFBUSxJQUFJLE9BQU8sQ0FBQztRQUNoRCxJQUFJLFlBQXdDLENBQUM7UUFDN0MsUUFBUSxXQUFXLEVBQUUsQ0FBQztZQUNwQixLQUFLLGFBQWE7Z0JBQ2hCLFlBQVksR0FBRyxrREFBMEIsQ0FBQyxzQkFBc0IsQ0FBQztnQkFDakUsTUFBTTtZQUNSLEtBQUssUUFBUTtnQkFDWCxZQUFZLEdBQUcsa0RBQTBCLENBQUMsTUFBTSxDQUFDO2dCQUNqRCxNQUFNO1lBQ1IsS0FBSyxNQUFNO2dCQUNULFlBQVksR0FBRyxrREFBMEIsQ0FBQyxJQUFJLENBQUM7Z0JBQy9DLE1BQU07WUFDUjtnQkFDRSxZQUFZLEdBQUcsa0RBQTBCLENBQUMsS0FBSyxDQUFDO1FBQ3BELENBQUM7UUFFRCxx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QUFFLFlBQVksQ0FBQyxDQUFDLENBQUM7b0JBQzNCLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUU7b0JBQ3hCLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUU7b0JBQ3RCLElBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUU7aUJBQ3hCLENBQUMsQ0FBQyxDQUFDLFNBQVM7Z0JBQ2IsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7b0JBQ3ZCLE9BQU8sRUFBRSxJQUFJO29CQUNiLGNBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUU7aUJBQ2xDLENBQUMsQ0FBQyxDQUFDLFNBQVM7Z0JBQ2IsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxNQUFNLElBQUksT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDM0QsV0FBVyxFQUFFLE9BQU8sQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQzt3QkFDMUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHO3dCQUNWLFFBQVEsRUFBRSxDQUFDLENBQUMsUUFBUTt3QkFDcEIsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLO3dCQUNkLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTTtxQkFDakIsQ0FBQyxDQUFDO29CQUNILFlBQVksRUFBRSxPQUFPLENBQUMsWUFBWTtpQkFDbkMsQ0FBQyxDQUFDLENBQUMsU0FBUzthQUNkO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsK0VBQStFO1FBQy9FLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxhQUFLLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzlELENBQUM7O0FBNUxILDBDQTZMQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBOYW1lcyB9IGZyb20gJ2NkazhzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHtcbiAgVmlueWxDYWNoZSxcbiAgVmlueWxDYWNoZVNwZWNEaXJlY3RvclNoYXJkQnksXG4gIFZpbnlsQ2FjaGVTcGVjRGlyZWN0b3JTaGFyZEhlYWx0aHksXG4gIFZpbnlsQ2FjaGVTcGVjRGlyZWN0b3JUeXBlLFxuICBWaW55bENhY2hlU3BlY1Jlc291cmNlc0xpbWl0cyxcbiAgVmlueWxDYWNoZVNwZWNSZXNvdXJjZXNSZXF1ZXN0cyxcbiAgVmlueWxDYWNoZVNwZWNTdG9yYWdlLFxuICBWaW55bENhY2hlU3BlY1N0b3JhZ2VTaXplLFxuICBWaW55bENhY2hlU3BlY1N0b3JhZ2VUeXBlLFxufSBmcm9tICcuL2ltcG9ydHMvdmlueWwuYmx1ZWR5bmFtaWNzLmV1JztcbmltcG9ydCB7IFBsb25lIH0gZnJvbSAnLi9wbG9uZSc7XG5cbi8qKlxuICogSGVhbHRoIHByb2JlIGNvbmZpZ3VyYXRpb24gZm9yIGEgVmlueWxDYWNoZSBiYWNrZW5kLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZpbnlsQ2FjaGVCYWNrZW5kUHJvYmUge1xuICAvKipcbiAgICogVVJMIHRvIHByb2JlLlxuICAgKiBAZGVmYXVsdCAnLydcbiAgICovXG4gIHJlYWRvbmx5IHVybD86IHN0cmluZztcblxuICAvKipcbiAgICogSG93IG9mdGVuIHRvIHByb2JlIHRoZSBiYWNrZW5kLlxuICAgKiBAZGVmYXVsdCAnNXMnXG4gICAqL1xuICByZWFkb25seSBpbnRlcnZhbD86IHN0cmluZztcblxuICAvKipcbiAgICogTWF4aW11bSB0aW1lIHRvIHdhaXQgZm9yIGEgcHJvYmUgcmVzcG9uc2UuXG4gICAqIEBkZWZhdWx0ICcycydcbiAgICovXG4gIHJlYWRvbmx5IHRpbWVvdXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE51bWJlciBvZiBtb3N0IHJlY2VudCBwcm9iZXMgdG8gY29uc2lkZXIuXG4gICAqIEBkZWZhdWx0IDEwXG4gICAqL1xuICByZWFkb25seSB3aW5kb3c/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIE1pbmltdW0gc3VjY2Vzc2Z1bCBwcm9iZXMgd2l0aGluIHdpbmRvdyBmb3IgaGVhbHRoeSBzdGF0dXMuXG4gICAqIEBkZWZhdWx0IDhcbiAgICovXG4gIHJlYWRvbmx5IHRocmVzaG9sZD86IG51bWJlcjtcblxuICAvKipcbiAgICogRXhwZWN0ZWQgSFRUUCByZXNwb25zZSBzdGF0dXMgY29kZS5cbiAgICogQGRlZmF1bHQgMjAwXG4gICAqL1xuICByZWFkb25seSBleHBlY3RlZFJlc3BvbnNlPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIEFuIGFkZGl0aW9uYWwgYmFja2VuZCBmb3IgdGhlIFZpbnlsQ2FjaGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmlueWxDYWNoZUJhY2tlbmQge1xuICAvKipcbiAgICogVkNMIGlkZW50aWZpZXIgZm9yIHRoaXMgYmFja2VuZC4gTXVzdCBtYXRjaCBeW2EtekEtWl1bYS16QS1aMC05X10qJC5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogS3ViZXJuZXRlcyBTZXJ2aWNlIG5hbWUgdG8gdXNlIGFzIGJhY2tlbmQuXG4gICAqL1xuICByZWFkb25seSBzZXJ2aWNlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQb3J0IHRvIHVzZSBmb3IgdGhpcyBiYWNrZW5kLlxuICAgKi9cbiAgcmVhZG9ubHkgcG9ydDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBIZWFsdGggcHJvYmUgY29uZmlndXJhdGlvbi5cbiAgICogQGRlZmF1bHQgLSBubyBwcm9iZVxuICAgKi9cbiAgcmVhZG9ubHkgcHJvYmU/OiBWaW55bENhY2hlQmFja2VuZFByb2JlO1xuXG4gIC8qKlxuICAgKiBSZWxhdGl2ZSB3ZWlnaHQgZm9yIHRoZSBkaXJlY3Rvci4gMCBtZWFucyBzdGFuZGJ5LlxuICAgKiBAZGVmYXVsdCAtIG9wZXJhdG9yIGRlZmF1bHRcbiAgICovXG4gIHJlYWRvbmx5IHdlaWdodD86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBBIFZhcm5pc2ggc3RvcmFnZSBiYWNrZW5kIGNvbmZpZ3VyYXRpb24uXG4gKlxuICogTWFwcyB0byBgc3BlYy5zdG9yYWdlW11gIG9uIHRoZSBWaW55bENhY2hlIENSRC4gVGhlIG9wZXJhdG9yIGVtaXRzIG9uZVxuICogYC1zIDxuYW1lPj08dHlwZT4sPG9wdGlvbnM+YCBhcmd1bWVudCBwZXIgZW50cnkgdG8gdmFybmlzaGQuXG4gKlxuICogV2l0aG91dCBhbnkgc3RvcmFnZSBlbnRyeSB0aGUgb3BlcmF0b3IgZmFsbHMgYmFjayB0byB0aGUgdmFybmlzaGQgZGVmYXVsdFxuICogKH4xMDAgTUIgbWFsbG9jKSwgd2hpY2ggaXMgYWxtb3N0IGFsd2F5cyB0b28gc21hbGwgZm9yIHJlYWwgd29ya2xvYWRzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZpbnlsQ2FjaGVTdG9yYWdlIHtcbiAgLyoqXG4gICAqIEludGVybmFsIHN0b3JhZ2UgaWRlbnRpZmllciB1c2VkIGluIHRoZSB2YXJuaXNoZCBgLXNgIGFyZ3VtZW50LlxuICAgKiBNdXN0IGJlIHVuaXF1ZSB3aXRoaW4gdGhlIFZpbnlsQ2FjaGUgYW5kIG1hdGNoIGBeW2EtekEtWl1bYS16QS1aMC05X10qJGAuXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFN0b3JhZ2UgYmFja2VuZCB0eXBlLiBPbmx5IFwibWFsbG9jXCIgYW5kIFwiZmlsZVwiIGFyZSBwZXJtaXR0ZWQgYnkgdGhlXG4gICAqIGFkbWlzc2lvbiB3ZWJob29rLlxuICAgKi9cbiAgcmVhZG9ubHkgdHlwZTogJ21hbGxvYycgfCAnZmlsZSc7XG5cbiAgLyoqXG4gICAqIFN0b3JhZ2UgYWxsb2NhdGlvbiBhcyBhIEt1YmVybmV0ZXMgcmVzb3VyY2UgcXVhbnRpdHkgKGUuZy4gXCIxR2lcIiwgXCI1MDBNXCIpLlxuICAgKiBSZXF1aXJlZCBmb3IgbWFsbG9jOyByZXF1aXJlZCBmb3IgZmlsZS5cbiAgICogQGRlZmF1bHQgLSByZXF1aXJlZCBmb3IgYm90aCBtYWxsb2MgYW5kIGZpbGVcbiAgICovXG4gIHJlYWRvbmx5IHNpemU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEZpbGVzeXN0ZW0gcGF0aCBmb3IgZmlsZS10eXBlIHN0b3JhZ2UuIElnbm9yZWQgZm9yIG1hbGxvYy5cbiAgICogQGRlZmF1bHQgLSByZXF1aXJlZCBmb3IgdHlwZSBcImZpbGVcIlxuICAgKi9cbiAgcmVhZG9ubHkgcGF0aD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBBIEt1YmVybmV0ZXMgdG9sZXJhdGlvbiBmb3IgdGhlIFZhcm5pc2ggcG9kcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWaW55bENhY2hlVG9sZXJhdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgdGFpbnQga2V5IHRvIHRvbGVyYXRlLlxuICAgKi9cbiAgcmVhZG9ubHkga2V5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBvcGVyYXRvciAoRXF1YWwgb3IgRXhpc3RzKS5cbiAgICogQGRlZmF1bHQgJ0VxdWFsJ1xuICAgKi9cbiAgcmVhZG9ubHkgb3BlcmF0b3I/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0YWludCB2YWx1ZSB0byBtYXRjaCAod2hlbiBvcGVyYXRvciBpcyBFcXVhbCkuXG4gICAqIEBkZWZhdWx0IC0gbm8gdmFsdWVcbiAgICovXG4gIHJlYWRvbmx5IHZhbHVlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdGFpbnQgZWZmZWN0IHRvIHRvbGVyYXRlIChOb1NjaGVkdWxlLCBQcmVmZXJOb1NjaGVkdWxlLCBOb0V4ZWN1dGUpLlxuICAgKiBAZGVmYXVsdCAtIHRvbGVyYXRlIGFsbCBlZmZlY3RzXG4gICAqL1xuICByZWFkb25seSBlZmZlY3Q/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBQbG9uZVZpbnlsQ2FjaGUgKGNsb3VkLXZpbnlsIG9wZXJhdG9yKS5cbiAqXG4gKiBDcmVhdGVzIGEgVmlueWxDYWNoZSBjdXN0b20gcmVzb3VyY2UgdGhhdCB0aGUgY2xvdWQtdmlueWwgb3BlcmF0b3JcbiAqIHJlY29uY2lsZXMgaW50byBhIFZhcm5pc2ggQ2FjaGUgY2x1c3RlciB3aXRoIGFnZW50LWJhc2VkIFZDTCBkZWxpdmVyeS5cbiAqXG4gKiBSZXF1aXJlcyB0aGUgY2xvdWQtdmlueWwgb3BlcmF0b3IgdG8gYmUgaW5zdGFsbGVkIGluIHRoZSBjbHVzdGVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBsb25lVmlueWxDYWNoZU9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIFBsb25lIGNvbnN0cnVjdCB0byBhdHRhY2ggdGhlIGNhY2hlIHRvLlxuICAgKiBCYWNrZW5kcyBhcmUgYXV0by1jb25maWd1cmVkIGZyb20gdGhlIFBsb25lIHNlcnZpY2VzLlxuICAgKi9cbiAgcmVhZG9ubHkgcGxvbmU6IFBsb25lO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIGJhY2tlbmRzIHRvIGFkZCBhZnRlciB0aGUgYXV0by1nZW5lcmF0ZWQgUGxvbmUgYmFja2VuZHMuXG4gICAqIFVzZXMgdGhlIHNhbWUgYmFja2VuZCB0eXBlIHN0cnVjdHVyZSBhcyB0aGUgVmlueWxDYWNoZSBDUkQuXG4gICAqIEBkZWZhdWx0IC0gbm8gZXh0cmEgYmFja2VuZHNcbiAgICovXG4gIHJlYWRvbmx5IGV4dHJhQmFja2VuZHM/OiBWaW55bENhY2hlQmFja2VuZFtdO1xuXG4gIC8qKlxuICAgKiBOdW1iZXIgb2YgVmFybmlzaCBwb2QgcmVwbGljYXMuXG4gICAqIEBkZWZhdWx0IDJcbiAgICovXG4gIHJlYWRvbmx5IHJlcGxpY2FzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBDUFUgcmVxdWVzdCBmb3IgVmFybmlzaCBwb2RzLlxuICAgKiBAZGVmYXVsdCAnMTAwbSdcbiAgICovXG4gIHJlYWRvbmx5IHJlcXVlc3RDcHU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE1lbW9yeSByZXF1ZXN0IGZvciBWYXJuaXNoIHBvZHMuXG4gICAqIEBkZWZhdWx0ICcyNTZNaSdcbiAgICovXG4gIHJlYWRvbmx5IHJlcXVlc3RNZW1vcnk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENQVSBsaW1pdCBmb3IgVmFybmlzaCBwb2RzLlxuICAgKiBAZGVmYXVsdCAnNTAwbSdcbiAgICovXG4gIHJlYWRvbmx5IGxpbWl0Q3B1Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBNZW1vcnkgbGltaXQgZm9yIFZhcm5pc2ggcG9kcy5cbiAgICogQGRlZmF1bHQgJzUxMk1pJ1xuICAgKi9cbiAgcmVhZG9ubHkgbGltaXRNZW1vcnk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFZhcm5pc2ggc3RvcmFnZSBiYWNrZW5kcyAoYHNwZWMuc3RvcmFnZWApLlxuICAgKlxuICAgKiBFYWNoIGVudHJ5IGJlY29tZXMgYSBgLXMgPG5hbWU+PTx0eXBlPiw8b3B0aW9ucz5gIGFyZ3VtZW50IHRvIHZhcm5pc2hkLlxuICAgKiBJZiBvbWl0dGVkLCB0aGUgb3BlcmF0b3Igc2hpcHMgdmFybmlzaGQgd2l0aCBpdHMgc3RvY2sgZGVmYXVsdCAofjEwMCBNQlxuICAgKiBtYWxsb2MpIOKAlCBhbG1vc3QgYWx3YXlzIHRvbyBzbWFsbC4gU2V0IGFuIGV4cGxpY2l0IG1hbGxvYyBzaXplIGF0IGxlYXN0XG4gICAqIG1hdGNoaW5nIHRoZSBwb2QncyBtZW1vcnkgcmVxdWVzdCB0byB1c2UgdGhlIGFsbG9jYXRlZCBtZW1vcnkgZm9yIGNhY2hpbmcuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gc3RvcmFnZSBjb25maWd1cmVkOyBvcGVyYXRvciB1c2VzIHZhcm5pc2hkIGRlZmF1bHQgKH4xMDBNQiBtYWxsb2MpXG4gICAqIEBleGFtcGxlXG4gICAqIHN0b3JhZ2U6IFt7IG5hbWU6ICdzMCcsIHR5cGU6ICdtYWxsb2MnLCBzaXplOiAnMUdpJyB9XVxuICAgKi9cbiAgcmVhZG9ubHkgc3RvcmFnZT86IFZpbnlsQ2FjaGVTdG9yYWdlW107XG5cbiAgLyoqXG4gICAqIERpcmVjdG9yIHR5cGUgZm9yIGxvYWQgZGlzdHJpYnV0aW9uLlxuICAgKiBAZGVmYXVsdCAnc2hhcmQnXG4gICAqL1xuICByZWFkb25seSBkaXJlY3Rvcj86IHN0cmluZztcblxuICAvKipcbiAgICogU2hhcmQgZGlyZWN0b3I6IHdoYXQgdmFsdWUgaXMgaGFzaGVkIGZvciBzaGFyZCBzZWxlY3Rpb24uXG4gICAqIFwiSEFTSFwiIHVzZXMgdGhlIFZhcm5pc2ggaGFzaCAoZGVmYXVsdCk7IFwiVVJMXCIgdXNlcyB0aGUgcmVxdWVzdCBVUkwuXG4gICAqIE9ubHkgYXBwbGllZCB3aGVuIGRpcmVjdG9yIGlzIFwic2hhcmRcIi5cbiAgICogUmVxdWlyZXMgY2xvdWQtdmlueWwgb3BlcmF0b3IgPj0gMC40LjIuXG4gICAqIEBkZWZhdWx0IC0gb3BlcmF0b3IgZGVmYXVsdCAoXCJIQVNIXCIpXG4gICAqL1xuICByZWFkb25seSBzaGFyZEJ5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTaGFyZCBkaXJlY3Rvcjogd2hpY2ggYmFja2VuZHMgdGhlIGRpcmVjdG9yIGNvbnNpZGVycyB3aGVuIHNlbGVjdGluZyBhIHNoYXJkLlxuICAgKiBcIkNIT1NFTlwiIChkZWZhdWx0KSBvbmx5IGNvbnNpZGVycyB0aGUgY2hvc2VuIGJhY2tlbmQgaGVhbHRoeTsgXCJBTExcIiByZXF1aXJlcyBhbGxcbiAgICogYmFja2VuZHMgdG8gYmUgaGVhbHRoeS5cbiAgICogT25seSBhcHBsaWVkIHdoZW4gZGlyZWN0b3IgaXMgXCJzaGFyZFwiLlxuICAgKiBSZXF1aXJlcyBjbG91ZC12aW55bCBvcGVyYXRvciA+PSAwLjQuMi5cbiAgICogQGRlZmF1bHQgLSBvcGVyYXRvciBkZWZhdWx0IChcIkNIT1NFTlwiKVxuICAgKi9cbiAgcmVhZG9ubHkgc2hhcmRIZWFsdGh5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTaGFyZCBkaXJlY3RvcjogdGltZSBhZnRlciBhZGRpbmcgYSBiYWNrZW5kIGJlZm9yZSBpdCByZWNlaXZlcyBpdHMgZnVsbCBzaGFyZSBvZlxuICAgKiB0cmFmZmljLCBwcmV2ZW50aW5nIHRodW5kZXJpbmctaGVyZC5cbiAgICogT25seSBhcHBsaWVkIHdoZW4gZGlyZWN0b3IgaXMgXCJzaGFyZFwiLlxuICAgKiBAZGVmYXVsdCAtIG9wZXJhdG9yIGRlZmF1bHQgKFwiMzBzXCIpXG4gICAqL1xuICByZWFkb25seSBzaGFyZFJhbXB1cD86IHN0cmluZztcblxuICAvKipcbiAgICogU2hhcmQgZGlyZWN0b3I6IG51bWJlciBvZiBLZXRhbWEgcmVwbGljYXMgcGVyIGJhY2tlbmQgaW4gdGhlIGhhc2ggcmluZy5cbiAgICogT25seSBhcHBsaWVkIHdoZW4gZGlyZWN0b3IgaXMgXCJzaGFyZFwiLlxuICAgKiBAZGVmYXVsdCAtIG9wZXJhdG9yIGRlZmF1bHQgKDY3KVxuICAgKi9cbiAgcmVhZG9ubHkgc2hhcmRSZXBsaWNhcz86IG51bWJlcjtcblxuICAvKipcbiAgICogQ3VzdG9tIFZDTCBzbmlwcGV0IGZvciB2Y2xfcmVjdiBzdWJyb3V0aW5lLlxuICAgKiBSZXBsYWNlcyB0aGUgZGVmYXVsdCBQbG9uZSByZWN2IHNuaXBwZXQuXG4gICAqIEBkZWZhdWx0IC0gdXNlcyBidWlsdC1pbiBwbG9uZS12aW55bC1yZWN2LnZjbFxuICAgKi9cbiAgcmVhZG9ubHkgdmNsUmVjdlNuaXBwZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBWQ0wgc25pcHBldCBmb3IgdmNsX2JhY2tlbmRfcmVzcG9uc2Ugc3Vicm91dGluZS5cbiAgICogUmVwbGFjZXMgdGhlIGRlZmF1bHQgUGxvbmUgYmFja2VuZF9yZXNwb25zZSBzbmlwcGV0LlxuICAgKiBAZGVmYXVsdCAtIHVzZXMgYnVpbHQtaW4gcGxvbmUtdmlueWwtYmFja2VuZC1yZXNwb25zZS52Y2xcbiAgICovXG4gIHJlYWRvbmx5IHZjbEJhY2tlbmRSZXNwb25zZVNuaXBwZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEVuYWJsZSBjYWNoZSBpbnZhbGlkYXRpb24gKFBVUkdFLCBCQU4sIHhrZXkpLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBpbnZhbGlkYXRpb24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgUHJvbWV0aGV1cyBtb25pdG9yaW5nIChtZXRyaWNzICsgU2VydmljZU1vbml0b3IpLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgbW9uaXRvcmluZz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENvbnRhaW5lciBpbWFnZSBmb3IgdGhlIFZhcm5pc2ggcG9kcy5cbiAgICogQGRlZmF1bHQgJ3Zhcm5pc2g6Ny42J1xuICAgKi9cbiAgcmVhZG9ubHkgaW1hZ2U/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRvbGVyYXRpb25zIGZvciB0aGUgVmFybmlzaCBwb2RzLlxuICAgKiBAZGVmYXVsdCAtIG5vIHRvbGVyYXRpb25zXG4gICAqL1xuICByZWFkb25seSB0b2xlcmF0aW9ucz86IFZpbnlsQ2FjaGVUb2xlcmF0aW9uW107XG5cbiAgLyoqXG4gICAqIE5vZGUgc2VsZWN0b3IgbGFiZWxzIGZvciB0aGUgVmFybmlzaCBwb2RzLlxuICAgKiBDb25zdHJhaW5zIHBvZHMgdG8gbm9kZXMgbWF0Y2hpbmcgYWxsIHNwZWNpZmllZCBsYWJlbHMuXG4gICAqIEBkZWZhdWx0IC0gbm8gbm9kZSBzZWxlY3RvclxuICAgKi9cbiAgcmVhZG9ubHkgbm9kZVNlbGVjdG9yPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogQ3VzdG9tIFZDTCBzbmlwcGV0IGZvciB2Y2xfZGVsaXZlciBzdWJyb3V0aW5lLlxuICAgKiBAZGVmYXVsdCAtIG5vIHNuaXBwZXRcbiAgICovXG4gIHJlYWRvbmx5IHZjbERlbGl2ZXJTbmlwcGV0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gVkNMIHNuaXBwZXQgZm9yIHZjbF9oaXQgc3Vicm91dGluZS5cbiAgICogQGRlZmF1bHQgLSBubyBzbmlwcGV0XG4gICAqL1xuICByZWFkb25seSB2Y2xIaXRTbmlwcGV0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gVkNMIHNuaXBwZXQgZm9yIHZjbF9taXNzIHN1YnJvdXRpbmUuXG4gICAqIEBkZWZhdWx0IC0gbm8gc25pcHBldFxuICAgKi9cbiAgcmVhZG9ubHkgdmNsTWlzc1NuaXBwZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBWQ0wgc25pcHBldCBmb3IgdmNsX3Bhc3Mgc3Vicm91dGluZS5cbiAgICogQGRlZmF1bHQgLSBubyBzbmlwcGV0XG4gICAqL1xuICByZWFkb25seSB2Y2xQYXNzU25pcHBldD86IHN0cmluZztcblxuICAvKipcbiAgICogQ3VzdG9tIFZDTCBzbmlwcGV0IGZvciB2Y2xfcGlwZSBzdWJyb3V0aW5lLlxuICAgKiBAZGVmYXVsdCAtIG5vIHNuaXBwZXRcbiAgICovXG4gIHJlYWRvbmx5IHZjbFBpcGVTbmlwcGV0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gVkNMIHNuaXBwZXQgZm9yIHZjbF9zeW50aCBzdWJyb3V0aW5lLlxuICAgKiBAZGVmYXVsdCAtIG5vIHNuaXBwZXRcbiAgICovXG4gIHJlYWRvbmx5IHZjbFN5bnRoU25pcHBldD86IHN0cmluZztcblxuICAvKipcbiAgICogQ3VzdG9tIFZDTCBzbmlwcGV0IGZvciB2Y2xfcHVyZ2Ugc3Vicm91dGluZS5cbiAgICogQGRlZmF1bHQgLSBubyBzbmlwcGV0XG4gICAqL1xuICByZWFkb25seSB2Y2xQdXJnZVNuaXBwZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBWQ0wgc25pcHBldCBmb3IgdmNsX2hhc2ggc3Vicm91dGluZS5cbiAgICogQGRlZmF1bHQgLSBubyBzbmlwcGV0XG4gICAqL1xuICByZWFkb25seSB2Y2xIYXNoU25pcHBldD86IHN0cmluZztcblxuICAvKipcbiAgICogQ3VzdG9tIFZDTCBzbmlwcGV0IGZvciB2Y2xfaW5pdCBzdWJyb3V0aW5lLlxuICAgKiBAZGVmYXVsdCAtIG5vIHNuaXBwZXRcbiAgICovXG4gIHJlYWRvbmx5IHZjbEluaXRTbmlwcGV0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gVkNMIHNuaXBwZXQgZm9yIHZjbF9maW5pIHN1YnJvdXRpbmUuXG4gICAqIEBkZWZhdWx0IC0gbm8gc25pcHBldFxuICAgKi9cbiAgcmVhZG9ubHkgdmNsRmluaVNuaXBwZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBWQ0wgc25pcHBldCBmb3IgdmNsX2JhY2tlbmRfZmV0Y2ggc3Vicm91dGluZS5cbiAgICogQGRlZmF1bHQgLSBubyBzbmlwcGV0XG4gICAqL1xuICByZWFkb25seSB2Y2xCYWNrZW5kRmV0Y2hTbmlwcGV0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gVkNMIHNuaXBwZXQgZm9yIHZjbF9iYWNrZW5kX2Vycm9yIHN1YnJvdXRpbmUuXG4gICAqIEBkZWZhdWx0IC0gbm8gc25pcHBldFxuICAgKi9cbiAgcmVhZG9ubHkgdmNsQmFja2VuZEVycm9yU25pcHBldD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQbG9uZVZpbnlsQ2FjaGUgY29uc3RydWN0IGZvciBkZXBsb3lpbmcgVmFybmlzaCBDYWNoZSB2aWEgY2xvdWQtdmlueWwgb3BlcmF0b3IuXG4gKlxuICogQ3JlYXRlcyBhIFZpbnlsQ2FjaGUgY3VzdG9tIHJlc291cmNlIHdpdGggUGxvbmUgYmFja2VuZC9mcm9udGVuZCBzZXJ2aWNlc1xuICogYXV0by1jb25maWd1cmVkIGFzIGJhY2tlbmRzLiBUaGUgY2xvdWQtdmlueWwgb3BlcmF0b3IgbWFuYWdlcyB0aGUgZnVsbFxuICogVmFybmlzaCBsaWZlY3ljbGUgaW5jbHVkaW5nIFZDTCBnZW5lcmF0aW9uLCBhZ2VudCBkZWxpdmVyeSwgYW5kIG1vbml0b3JpbmcuXG4gKlxuICogUmVxdWlyZXMgdGhlIGNsb3VkLXZpbnlsIG9wZXJhdG9yIHRvIGJlIGluc3RhbGxlZCBpbiB0aGUgY2x1c3Rlci5cbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3QgcGxvbmUgPSBuZXcgUGxvbmUoY2hhcnQsICdwbG9uZScpO1xuICogY29uc3QgY2FjaGUgPSBuZXcgUGxvbmVWaW55bENhY2hlKGNoYXJ0LCAnY2FjaGUnLCB7XG4gKiAgIHBsb25lOiBwbG9uZSxcbiAqICAgcmVwbGljYXM6IDIsXG4gKiB9KTtcbiAqIC8vIFVzZSBjYWNoZS52aW55bENhY2hlU2VydmljZU5hbWUgZm9yIEluZ3Jlc3NSb3V0ZVxuICovXG5leHBvcnQgY2xhc3MgUGxvbmVWaW55bENhY2hlIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIFZpbnlsQ2FjaGUgc2VydmljZSBjcmVhdGVkIGJ5IHRoZSBvcGVyYXRvci5cbiAgICogVXNlIHRoaXMgdG8gcmVmZXJlbmNlIHRoZSBjYWNoZSBzZXJ2aWNlIGZyb20gaW5ncmVzcyBvciBvdGhlciBjb25zdHJ1Y3RzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHZpbnlsQ2FjaGVTZXJ2aWNlTmFtZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIG9wdGlvbnM6IFBsb25lVmlueWxDYWNoZU9wdGlvbnMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgcmVwbGljYXMgPSBvcHRpb25zLnJlcGxpY2FzID8/IDI7XG4gICAgY29uc3QgaW52YWxpZGF0aW9uID0gb3B0aW9ucy5pbnZhbGlkYXRpb24gPz8gdHJ1ZTtcbiAgICBjb25zdCBtb25pdG9yaW5nID0gb3B0aW9ucy5tb25pdG9yaW5nID8/IGZhbHNlO1xuXG4gICAgLy8gUmVzb2x2ZSBkaXJlY3RvciB0eXBlIGVudW1cbiAgICBjb25zdCBkaXJlY3RvclN0ciA9IG9wdGlvbnMuZGlyZWN0b3IgPz8gJ3NoYXJkJztcbiAgICBsZXQgZGlyZWN0b3JUeXBlOiBWaW55bENhY2hlU3BlY0RpcmVjdG9yVHlwZTtcbiAgICBzd2l0Y2ggKGRpcmVjdG9yU3RyKSB7XG4gICAgICBjYXNlICdyb3VuZF9yb2Jpbic6XG4gICAgICAgIGRpcmVjdG9yVHlwZSA9IFZpbnlsQ2FjaGVTcGVjRGlyZWN0b3JUeXBlLlJPVU5EX1VOREVSU0NPUkVfUk9CSU47XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncmFuZG9tJzpcbiAgICAgICAgZGlyZWN0b3JUeXBlID0gVmlueWxDYWNoZVNwZWNEaXJlY3RvclR5cGUuUkFORE9NO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2hhc2gnOlxuICAgICAgICBkaXJlY3RvclR5cGUgPSBWaW55bENhY2hlU3BlY0RpcmVjdG9yVHlwZS5IQVNIO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGRpcmVjdG9yVHlwZSA9IFZpbnlsQ2FjaGVTcGVjRGlyZWN0b3JUeXBlLlNIQVJEO1xuICAgIH1cblxuICAgIC8vIFNoYXJkIGRpcmVjdG9yIHR1bmluZzogb25seSBob25vcmVkIGJ5IHRoZSBvcGVyYXRvciB3aGVuIGRpcmVjdG9yIHR5cGUgaXMgXCJzaGFyZFwiLlxuICAgIC8vIEVtaXQgdGhlIHNoYXJkIGJsb2NrIG9ubHkgZm9yIHNoYXJkIGRpcmVjdG9ycyBzbyBtYW5pZmVzdHMgc3RheSBtaW5pbWFsLlxuICAgIGxldCBzaGFyZFNwZWM6IHtcbiAgICAgIGJ5PzogVmlueWxDYWNoZVNwZWNEaXJlY3RvclNoYXJkQnk7XG4gICAgICBoZWFsdGh5PzogVmlueWxDYWNoZVNwZWNEaXJlY3RvclNoYXJkSGVhbHRoeTtcbiAgICAgIHJhbXB1cD86IHN0cmluZztcbiAgICAgIHJlcGxpY2FzPzogbnVtYmVyO1xuICAgIH0gfCB1bmRlZmluZWQ7XG4gICAgaWYgKGRpcmVjdG9yVHlwZSA9PT0gVmlueWxDYWNoZVNwZWNEaXJlY3RvclR5cGUuU0hBUkQgJiZcbiAgICAgICAgKG9wdGlvbnMuc2hhcmRCeSB8fCBvcHRpb25zLnNoYXJkSGVhbHRoeSB8fCBvcHRpb25zLnNoYXJkUmFtcHVwIHx8IG9wdGlvbnMuc2hhcmRSZXBsaWNhcyAhPT0gdW5kZWZpbmVkKSkge1xuICAgICAgbGV0IHNoYXJkQnk6IFZpbnlsQ2FjaGVTcGVjRGlyZWN0b3JTaGFyZEJ5IHwgdW5kZWZpbmVkO1xuICAgICAgaWYgKG9wdGlvbnMuc2hhcmRCeSA9PT0gJ1VSTCcpIHNoYXJkQnkgPSBWaW55bENhY2hlU3BlY0RpcmVjdG9yU2hhcmRCeS5VUkw7XG4gICAgICBlbHNlIGlmIChvcHRpb25zLnNoYXJkQnkgPT09ICdIQVNIJykgc2hhcmRCeSA9IFZpbnlsQ2FjaGVTcGVjRGlyZWN0b3JTaGFyZEJ5LkhBU0g7XG5cbiAgICAgIGxldCBzaGFyZEhlYWx0aHk6IFZpbnlsQ2FjaGVTcGVjRGlyZWN0b3JTaGFyZEhlYWx0aHkgfCB1bmRlZmluZWQ7XG4gICAgICBpZiAob3B0aW9ucy5zaGFyZEhlYWx0aHkgPT09ICdBTEwnKSBzaGFyZEhlYWx0aHkgPSBWaW55bENhY2hlU3BlY0RpcmVjdG9yU2hhcmRIZWFsdGh5LkFMTDtcbiAgICAgIGVsc2UgaWYgKG9wdGlvbnMuc2hhcmRIZWFsdGh5ID09PSAnQ0hPU0VOJykgc2hhcmRIZWFsdGh5ID0gVmlueWxDYWNoZVNwZWNEaXJlY3RvclNoYXJkSGVhbHRoeS5DSE9TRU47XG5cbiAgICAgIHNoYXJkU3BlYyA9IHtcbiAgICAgICAgYnk6IHNoYXJkQnksXG4gICAgICAgIGhlYWx0aHk6IHNoYXJkSGVhbHRoeSxcbiAgICAgICAgcmFtcHVwOiBvcHRpb25zLnNoYXJkUmFtcHVwLFxuICAgICAgICByZXBsaWNhczogb3B0aW9ucy5zaGFyZFJlcGxpY2FzLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyBMb2FkIGRlZmF1bHQgVkNMIHNuaXBwZXRzXG4gICAgY29uc3QgdmNsUmVjdiA9IG9wdGlvbnMudmNsUmVjdlNuaXBwZXQgPz9cbiAgICAgIGZzLnJlYWRGaWxlU3luYyhwYXRoLmpvaW4oX19kaXJuYW1lLCAnY29uZmlnJywgJ3Bsb25lLXZpbnlsLXJlY3YudmNsJyksICd1dGY4Jyk7XG4gICAgY29uc3QgdmNsQmFja2VuZFJlc3BvbnNlID0gb3B0aW9ucy52Y2xCYWNrZW5kUmVzcG9uc2VTbmlwcGV0ID8/XG4gICAgICBmcy5yZWFkRmlsZVN5bmMocGF0aC5qb2luKF9fZGlybmFtZSwgJ2NvbmZpZycsICdwbG9uZS12aW55bC1iYWNrZW5kLXJlc3BvbnNlLnZjbCcpLCAndXRmOCcpO1xuXG4gICAgLy8gQnVpbGQgYmFja2VuZHMgZnJvbSBQbG9uZSBzZXJ2aWNlc1xuICAgIGNvbnN0IGJhY2tlbmRzOiBBcnJheTx7XG4gICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICBzZXJ2aWNlUmVmOiB7IG5hbWU6IHN0cmluZyB9O1xuICAgICAgcG9ydDogbnVtYmVyO1xuICAgICAgcHJvYmU/OiB7XG4gICAgICAgIHVybDogc3RyaW5nO1xuICAgICAgICBpbnRlcnZhbDogc3RyaW5nO1xuICAgICAgICB0aW1lb3V0OiBzdHJpbmc7XG4gICAgICAgIHdpbmRvdzogbnVtYmVyO1xuICAgICAgICB0aHJlc2hvbGQ6IG51bWJlcjtcbiAgICAgIH07XG4gICAgICB3ZWlnaHQ/OiBudW1iZXI7XG4gICAgfT4gPSBbXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdwbG9uZV9iYWNrZW5kJyxcbiAgICAgICAgc2VydmljZVJlZjogeyBuYW1lOiBvcHRpb25zLnBsb25lLmJhY2tlbmRTZXJ2aWNlTmFtZSB9LFxuICAgICAgICBwb3J0OiA4MDgwLFxuICAgICAgICBwcm9iZToge1xuICAgICAgICAgIHVybDogJy9vaycsXG4gICAgICAgICAgaW50ZXJ2YWw6ICc1cycsXG4gICAgICAgICAgdGltZW91dDogJzJzJyxcbiAgICAgICAgICB3aW5kb3c6IDEwLFxuICAgICAgICAgIHRocmVzaG9sZDogOCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIGlmIChvcHRpb25zLnBsb25lLmZyb250ZW5kU2VydmljZU5hbWUpIHtcbiAgICAgIGJhY2tlbmRzLnB1c2goe1xuICAgICAgICBuYW1lOiAncGxvbmVfZnJvbnRlbmQnLFxuICAgICAgICBzZXJ2aWNlUmVmOiB7IG5hbWU6IG9wdGlvbnMucGxvbmUuZnJvbnRlbmRTZXJ2aWNlTmFtZSB9LFxuICAgICAgICBwb3J0OiAzMDAwLFxuICAgICAgICBwcm9iZToge1xuICAgICAgICAgIHVybDogJy8nLFxuICAgICAgICAgIGludGVydmFsOiAnNXMnLFxuICAgICAgICAgIHRpbWVvdXQ6ICcycycsXG4gICAgICAgICAgd2luZG93OiAxMCxcbiAgICAgICAgICB0aHJlc2hvbGQ6IDgsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5leHRyYUJhY2tlbmRzKSB7XG4gICAgICBmb3IgKGNvbnN0IGViIG9mIG9wdGlvbnMuZXh0cmFCYWNrZW5kcykge1xuICAgICAgICBiYWNrZW5kcy5wdXNoKHtcbiAgICAgICAgICBuYW1lOiBlYi5uYW1lLFxuICAgICAgICAgIHNlcnZpY2VSZWY6IHsgbmFtZTogZWIuc2VydmljZU5hbWUgfSxcbiAgICAgICAgICBwb3J0OiBlYi5wb3J0LFxuICAgICAgICAgIHByb2JlOiBlYi5wcm9iZSA/IHtcbiAgICAgICAgICAgIHVybDogZWIucHJvYmUudXJsID8/ICcvJyxcbiAgICAgICAgICAgIGludGVydmFsOiBlYi5wcm9iZS5pbnRlcnZhbCA/PyAnNXMnLFxuICAgICAgICAgICAgdGltZW91dDogZWIucHJvYmUudGltZW91dCA/PyAnMnMnLFxuICAgICAgICAgICAgd2luZG93OiBlYi5wcm9iZS53aW5kb3cgPz8gMTAsXG4gICAgICAgICAgICB0aHJlc2hvbGQ6IGViLnByb2JlLnRocmVzaG9sZCA/PyA4LFxuICAgICAgICAgIH0gOiB1bmRlZmluZWQsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHN0b3JhZ2U6IFZpbnlsQ2FjaGVTcGVjU3RvcmFnZVtdIHwgdW5kZWZpbmVkID0gb3B0aW9ucy5zdG9yYWdlPy5tYXAocyA9PiAoe1xuICAgICAgbmFtZTogcy5uYW1lLFxuICAgICAgdHlwZTogcy50eXBlID09PSAnZmlsZScgPyBWaW55bENhY2hlU3BlY1N0b3JhZ2VUeXBlLkZJTEUgOiBWaW55bENhY2hlU3BlY1N0b3JhZ2VUeXBlLk1BTExPQyxcbiAgICAgIHNpemU6IHMuc2l6ZSAhPT0gdW5kZWZpbmVkID8gVmlueWxDYWNoZVNwZWNTdG9yYWdlU2l6ZS5mcm9tU3RyaW5nKHMuc2l6ZSkgOiB1bmRlZmluZWQsXG4gICAgICBwYXRoOiBzLnBhdGgsXG4gICAgfSkpO1xuXG4gICAgY29uc3QgdmlueWxDYWNoZSA9IG5ldyBWaW55bENhY2hlKHRoaXMsICd2aW55bGNhY2hlJywge1xuICAgICAgc3BlYzoge1xuICAgICAgICByZXBsaWNhcyxcbiAgICAgICAgaW1hZ2U6IG9wdGlvbnMuaW1hZ2UgPz8gJ3Zhcm5pc2g6Ny42JyxcbiAgICAgICAgYmFja2VuZHMsXG4gICAgICAgIGRpcmVjdG9yOiB7IHR5cGU6IGRpcmVjdG9yVHlwZSwgc2hhcmQ6IHNoYXJkU3BlYyB9LFxuICAgICAgICBzdG9yYWdlLFxuICAgICAgICB2Y2w6IHtcbiAgICAgICAgICBzbmlwcGV0czoge1xuICAgICAgICAgICAgdmNsUmVjdjogdmNsUmVjdixcbiAgICAgICAgICAgIHZjbEJhY2tlbmRSZXNwb25zZTogdmNsQmFja2VuZFJlc3BvbnNlLFxuICAgICAgICAgICAgdmNsRGVsaXZlcjogb3B0aW9ucy52Y2xEZWxpdmVyU25pcHBldCxcbiAgICAgICAgICAgIHZjbEhpdDogb3B0aW9ucy52Y2xIaXRTbmlwcGV0LFxuICAgICAgICAgICAgdmNsTWlzczogb3B0aW9ucy52Y2xNaXNzU25pcHBldCxcbiAgICAgICAgICAgIHZjbFBhc3M6IG9wdGlvbnMudmNsUGFzc1NuaXBwZXQsXG4gICAgICAgICAgICB2Y2xQaXBlOiBvcHRpb25zLnZjbFBpcGVTbmlwcGV0LFxuICAgICAgICAgICAgdmNsU3ludGg6IG9wdGlvbnMudmNsU3ludGhTbmlwcGV0LFxuICAgICAgICAgICAgdmNsUHVyZ2U6IG9wdGlvbnMudmNsUHVyZ2VTbmlwcGV0LFxuICAgICAgICAgICAgdmNsSGFzaDogb3B0aW9ucy52Y2xIYXNoU25pcHBldCxcbiAgICAgICAgICAgIHZjbEluaXQ6IG9wdGlvbnMudmNsSW5pdFNuaXBwZXQsXG4gICAgICAgICAgICB2Y2xGaW5pOiBvcHRpb25zLnZjbEZpbmlTbmlwcGV0LFxuICAgICAgICAgICAgdmNsQmFja2VuZEZldGNoOiBvcHRpb25zLnZjbEJhY2tlbmRGZXRjaFNuaXBwZXQsXG4gICAgICAgICAgICB2Y2xCYWNrZW5kRXJyb3I6IG9wdGlvbnMudmNsQmFja2VuZEVycm9yU25pcHBldCxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICByZXNvdXJjZXM6IHtcbiAgICAgICAgICByZXF1ZXN0czoge1xuICAgICAgICAgICAgY3B1OiBWaW55bENhY2hlU3BlY1Jlc291cmNlc1JlcXVlc3RzLmZyb21TdHJpbmcob3B0aW9ucy5yZXF1ZXN0Q3B1ID8/ICcxMDBtJyksXG4gICAgICAgICAgICBtZW1vcnk6IFZpbnlsQ2FjaGVTcGVjUmVzb3VyY2VzUmVxdWVzdHMuZnJvbVN0cmluZyhvcHRpb25zLnJlcXVlc3RNZW1vcnkgPz8gJzI1Nk1pJyksXG4gICAgICAgICAgfSxcbiAgICAgICAgICBsaW1pdHM6IHtcbiAgICAgICAgICAgIGNwdTogVmlueWxDYWNoZVNwZWNSZXNvdXJjZXNMaW1pdHMuZnJvbVN0cmluZyhvcHRpb25zLmxpbWl0Q3B1ID8/ICc1MDBtJyksXG4gICAgICAgICAgICBtZW1vcnk6IFZpbnlsQ2FjaGVTcGVjUmVzb3VyY2VzTGltaXRzLmZyb21TdHJpbmcob3B0aW9ucy5saW1pdE1lbW9yeSA/PyAnNTEyTWknKSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBpbnZhbGlkYXRpb246IGludmFsaWRhdGlvbiA/IHtcbiAgICAgICAgICBwdXJnZTogeyBlbmFibGVkOiB0cnVlIH0sXG4gICAgICAgICAgYmFuOiB7IGVuYWJsZWQ6IHRydWUgfSxcbiAgICAgICAgICB4a2V5OiB7IGVuYWJsZWQ6IHRydWUgfSxcbiAgICAgICAgfSA6IHVuZGVmaW5lZCxcbiAgICAgICAgbW9uaXRvcmluZzogbW9uaXRvcmluZyA/IHtcbiAgICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICAgIHNlcnZpY2VNb25pdG9yOiB7IGVuYWJsZWQ6IHRydWUgfSxcbiAgICAgICAgfSA6IHVuZGVmaW5lZCxcbiAgICAgICAgcG9kOiAob3B0aW9ucy50b2xlcmF0aW9ucz8ubGVuZ3RoIHx8IG9wdGlvbnMubm9kZVNlbGVjdG9yKSA/IHtcbiAgICAgICAgICB0b2xlcmF0aW9uczogb3B0aW9ucy50b2xlcmF0aW9ucz8ubWFwKHQgPT4gKHtcbiAgICAgICAgICAgIGtleTogdC5rZXksXG4gICAgICAgICAgICBvcGVyYXRvcjogdC5vcGVyYXRvcixcbiAgICAgICAgICAgIHZhbHVlOiB0LnZhbHVlLFxuICAgICAgICAgICAgZWZmZWN0OiB0LmVmZmVjdCxcbiAgICAgICAgICB9KSksXG4gICAgICAgICAgbm9kZVNlbGVjdG9yOiBvcHRpb25zLm5vZGVTZWxlY3RvcixcbiAgICAgICAgfSA6IHVuZGVmaW5lZCxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvLyBUaGUgb3BlcmF0b3IgY3JlYXRlcyBhIHNlcnZpY2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIHRoZSBWaW55bENhY2hlIHJlc291cmNlXG4gICAgdGhpcy52aW55bENhY2hlU2VydmljZU5hbWUgPSBOYW1lcy50b0xhYmVsVmFsdWUodmlueWxDYWNoZSk7XG4gIH1cbn1cbiJdfQ==
|
|
227
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlueWxjYWNoZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy92aW55bGNhY2hlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx1Q0FBeUI7QUFDekIsMkNBQTZCO0FBQzdCLGlDQUE4QjtBQUM5QiwyQ0FBdUM7QUFDdkMsMkVBVXlDO0FBOFd6Qzs7Ozs7Ozs7Ozs7Ozs7OztHQWdCRztBQUNILE1BQWEsZUFBZ0IsU0FBUSxzQkFBUzs7SUFDNUM7OztPQUdHO0lBQ2EscUJBQXFCLENBQVM7SUFFOUMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxPQUErQjtRQUN2RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDO1FBQ2xELE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxVQUFVLElBQUksS0FBSyxDQUFDO1FBRS9DLDZCQUE2QjtRQUM3QixNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsUUFBUSxJQUFJLE9BQU8sQ0FBQztRQUNoRCxJQUFJLFlBQXdDLENBQUM7UUFDN0MsUUFBUSxXQUFXLEVBQUUsQ0FBQztZQUNwQixLQUFLLGFBQWE7Z0JBQ2hCLFlBQVksR0FBRyxrREFBMEIsQ0FBQyxzQkFBc0IsQ0FBQztnQkFDakUsTUFBTTtZQUNSLEtBQUssUUFBUTtnQkFDWCxZQUFZLEdBQUcsa0RBQTBCLENBQUMsTUFBTSxDQUFDO2dCQUNqRCxNQUFNO1lBQ1IsS0FBSyxNQUFNO2dCQUNULFlBQVksR0FBRyxrREFBMEIsQ0FBQyxJQUFJLENBQUM7Z0JBQy9DLE1BQU07WUFDUjtnQkFDRSxZQUFZLEdBQUcsa0RBQTBCLENBQUMsS0FBSyxDQUFDO1FBQ3BELENBQUM7UUFFRCxx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QUFFLFlBQVksQ0FBQyxDQUFDLENBQUM7b0JBQzNCLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUU7b0JBQ3hCLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUU7b0JBQ3RCLElBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUU7aUJBQ3hCLENBQUMsQ0FBQyxDQUFDLFNBQVM7Z0JBQ2IsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7b0JBQ3ZCLE9BQU8sRUFBRSxJQUFJO29CQUNiLGNBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUU7b0JBQ2pDLFFBQVEsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUU7aUJBQzVCLENBQUMsQ0FBQyxDQUFDLFNBQVM7Z0JBQ2IsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxNQUFNLElBQUksT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDM0QsV0FBVyxFQUFFLE9BQU8sQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQzt3QkFDMUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHO3dCQUNWLFFBQVEsRUFBRSxDQUFDLENBQUMsUUFBUTt3QkFDcEIsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLO3dCQUNkLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTTtxQkFDakIsQ0FBQyxDQUFDO29CQUNILFlBQVksRUFBRSxPQUFPLENBQUMsWUFBWTtpQkFDbkMsQ0FBQyxDQUFDLENBQUMsU0FBUzthQUNkO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsK0VBQStFO1FBQy9FLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxhQUFLLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzlELENBQUM7O0FBN0xILDBDQThMQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBOYW1lcyB9IGZyb20gJ2NkazhzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHtcbiAgVmlueWxDYWNoZSxcbiAgVmlueWxDYWNoZVNwZWNEaXJlY3RvclNoYXJkQnksXG4gIFZpbnlsQ2FjaGVTcGVjRGlyZWN0b3JTaGFyZEhlYWx0aHksXG4gIFZpbnlsQ2FjaGVTcGVjRGlyZWN0b3JUeXBlLFxuICBWaW55bENhY2hlU3BlY1Jlc291cmNlc0xpbWl0cyxcbiAgVmlueWxDYWNoZVNwZWNSZXNvdXJjZXNSZXF1ZXN0cyxcbiAgVmlueWxDYWNoZVNwZWNTdG9yYWdlLFxuICBWaW55bENhY2hlU3BlY1N0b3JhZ2VTaXplLFxuICBWaW55bENhY2hlU3BlY1N0b3JhZ2VUeXBlLFxufSBmcm9tICcuL2ltcG9ydHMvdmlueWwuYmx1ZWR5bmFtaWNzLmV1JztcbmltcG9ydCB7IFBsb25lIH0gZnJvbSAnLi9wbG9uZSc7XG5cbi8qKlxuICogSGVhbHRoIHByb2JlIGNvbmZpZ3VyYXRpb24gZm9yIGEgVmlueWxDYWNoZSBiYWNrZW5kLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZpbnlsQ2FjaGVCYWNrZW5kUHJvYmUge1xuICAvKipcbiAgICogVVJMIHRvIHByb2JlLlxuICAgKiBAZGVmYXVsdCAnLydcbiAgICovXG4gIHJlYWRvbmx5IHVybD86IHN0cmluZztcblxuICAvKipcbiAgICogSG93IG9mdGVuIHRvIHByb2JlIHRoZSBiYWNrZW5kLlxuICAgKiBAZGVmYXVsdCAnNXMnXG4gICAqL1xuICByZWFkb25seSBpbnRlcnZhbD86IHN0cmluZztcblxuICAvKipcbiAgICogTWF4aW11bSB0aW1lIHRvIHdhaXQgZm9yIGEgcHJvYmUgcmVzcG9uc2UuXG4gICAqIEBkZWZhdWx0ICcycydcbiAgICovXG4gIHJlYWRvbmx5IHRpbWVvdXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE51bWJlciBvZiBtb3N0IHJlY2VudCBwcm9iZXMgdG8gY29uc2lkZXIuXG4gICAqIEBkZWZhdWx0IDEwXG4gICAqL1xuICByZWFkb25seSB3aW5kb3c/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIE1pbmltdW0gc3VjY2Vzc2Z1bCBwcm9iZXMgd2l0aGluIHdpbmRvdyBmb3IgaGVhbHRoeSBzdGF0dXMuXG4gICAqIEBkZWZhdWx0IDhcbiAgICovXG4gIHJlYWRvbmx5IHRocmVzaG9sZD86IG51bWJlcjtcblxuICAvKipcbiAgICogRXhwZWN0ZWQgSFRUUCByZXNwb25zZSBzdGF0dXMgY29kZS5cbiAgICogQGRlZmF1bHQgMjAwXG4gICAqL1xuICByZWFkb25seSBleHBlY3RlZFJlc3BvbnNlPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIEFuIGFkZGl0aW9uYWwgYmFja2VuZCBmb3IgdGhlIFZpbnlsQ2FjaGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmlueWxDYWNoZUJhY2tlbmQge1xuICAvKipcbiAgICogVkNMIGlkZW50aWZpZXIgZm9yIHRoaXMgYmFja2VuZC4gTXVzdCBtYXRjaCBeW2EtekEtWl1bYS16QS1aMC05X10qJC5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogS3ViZXJuZXRlcyBTZXJ2aWNlIG5hbWUgdG8gdXNlIGFzIGJhY2tlbmQuXG4gICAqL1xuICByZWFkb25seSBzZXJ2aWNlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQb3J0IHRvIHVzZSBmb3IgdGhpcyBiYWNrZW5kLlxuICAgKi9cbiAgcmVhZG9ubHkgcG9ydDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBIZWFsdGggcHJvYmUgY29uZmlndXJhdGlvbi5cbiAgICogQGRlZmF1bHQgLSBubyBwcm9iZVxuICAgKi9cbiAgcmVhZG9ubHkgcHJvYmU/OiBWaW55bENhY2hlQmFja2VuZFByb2JlO1xuXG4gIC8qKlxuICAgKiBSZWxhdGl2ZSB3ZWlnaHQgZm9yIHRoZSBkaXJlY3Rvci4gMCBtZWFucyBzdGFuZGJ5LlxuICAgKiBAZGVmYXVsdCAtIG9wZXJhdG9yIGRlZmF1bHRcbiAgICovXG4gIHJlYWRvbmx5IHdlaWdodD86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBBIFZhcm5pc2ggc3RvcmFnZSBiYWNrZW5kIGNvbmZpZ3VyYXRpb24uXG4gKlxuICogTWFwcyB0byBgc3BlYy5zdG9yYWdlW11gIG9uIHRoZSBWaW55bENhY2hlIENSRC4gVGhlIG9wZXJhdG9yIGVtaXRzIG9uZVxuICogYC1zIDxuYW1lPj08dHlwZT4sPG9wdGlvbnM+YCBhcmd1bWVudCBwZXIgZW50cnkgdG8gdmFybmlzaGQuXG4gKlxuICogV2l0aG91dCBhbnkgc3RvcmFnZSBlbnRyeSB0aGUgb3BlcmF0b3IgZmFsbHMgYmFjayB0byB0aGUgdmFybmlzaGQgZGVmYXVsdFxuICogKH4xMDAgTUIgbWFsbG9jKSwgd2hpY2ggaXMgYWxtb3N0IGFsd2F5cyB0b28gc21hbGwgZm9yIHJlYWwgd29ya2xvYWRzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZpbnlsQ2FjaGVTdG9yYWdlIHtcbiAgLyoqXG4gICAqIEludGVybmFsIHN0b3JhZ2UgaWRlbnRpZmllciB1c2VkIGluIHRoZSB2YXJuaXNoZCBgLXNgIGFyZ3VtZW50LlxuICAgKiBNdXN0IGJlIHVuaXF1ZSB3aXRoaW4gdGhlIFZpbnlsQ2FjaGUgYW5kIG1hdGNoIGBeW2EtekEtWl1bYS16QS1aMC05X10qJGAuXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFN0b3JhZ2UgYmFja2VuZCB0eXBlLiBPbmx5IFwibWFsbG9jXCIgYW5kIFwiZmlsZVwiIGFyZSBwZXJtaXR0ZWQgYnkgdGhlXG4gICAqIGFkbWlzc2lvbiB3ZWJob29rLlxuICAgKi9cbiAgcmVhZG9ubHkgdHlwZTogJ21hbGxvYycgfCAnZmlsZSc7XG5cbiAgLyoqXG4gICAqIFN0b3JhZ2UgYWxsb2NhdGlvbiBhcyBhIEt1YmVybmV0ZXMgcmVzb3VyY2UgcXVhbnRpdHkgKGUuZy4gXCIxR2lcIiwgXCI1MDBNXCIpLlxuICAgKiBSZXF1aXJlZCBmb3IgbWFsbG9jOyByZXF1aXJlZCBmb3IgZmlsZS5cbiAgICogQGRlZmF1bHQgLSByZXF1aXJlZCBmb3IgYm90aCBtYWxsb2MgYW5kIGZpbGVcbiAgICovXG4gIHJlYWRvbmx5IHNpemU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEZpbGVzeXN0ZW0gcGF0aCBmb3IgZmlsZS10eXBlIHN0b3JhZ2UuIElnbm9yZWQgZm9yIG1hbGxvYy5cbiAgICogQGRlZmF1bHQgLSByZXF1aXJlZCBmb3IgdHlwZSBcImZpbGVcIlxuICAgKi9cbiAgcmVhZG9ubHkgcGF0aD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBBIEt1YmVybmV0ZXMgdG9sZXJhdGlvbiBmb3IgdGhlIFZhcm5pc2ggcG9kcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWaW55bENhY2hlVG9sZXJhdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgdGFpbnQga2V5IHRvIHRvbGVyYXRlLlxuICAgKi9cbiAgcmVhZG9ubHkga2V5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBvcGVyYXRvciAoRXF1YWwgb3IgRXhpc3RzKS5cbiAgICogQGRlZmF1bHQgJ0VxdWFsJ1xuICAgKi9cbiAgcmVhZG9ubHkgb3BlcmF0b3I/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0YWludCB2YWx1ZSB0byBtYXRjaCAod2hlbiBvcGVyYXRvciBpcyBFcXVhbCkuXG4gICAqIEBkZWZhdWx0IC0gbm8gdmFsdWVcbiAgICovXG4gIHJlYWRvbmx5IHZhbHVlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdGFpbnQgZWZmZWN0IHRvIHRvbGVyYXRlIChOb1NjaGVkdWxlLCBQcmVmZXJOb1NjaGVkdWxlLCBOb0V4ZWN1dGUpLlxuICAgKiBAZGVmYXVsdCAtIHRvbGVyYXRlIGFsbCBlZmZlY3RzXG4gICAqL1xuICByZWFkb25seSBlZmZlY3Q/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBQbG9uZVZpbnlsQ2FjaGUgKGNsb3VkLXZpbnlsIG9wZXJhdG9yKS5cbiAqXG4gKiBDcmVhdGVzIGEgVmlueWxDYWNoZSBjdXN0b20gcmVzb3VyY2UgdGhhdCB0aGUgY2xvdWQtdmlueWwgb3BlcmF0b3JcbiAqIHJlY29uY2lsZXMgaW50byBhIFZhcm5pc2ggQ2FjaGUgY2x1c3RlciB3aXRoIGFnZW50LWJhc2VkIFZDTCBkZWxpdmVyeS5cbiAqXG4gKiBSZXF1aXJlcyB0aGUgY2xvdWQtdmlueWwgb3BlcmF0b3IgdG8gYmUgaW5zdGFsbGVkIGluIHRoZSBjbHVzdGVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBsb25lVmlueWxDYWNoZU9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIFBsb25lIGNvbnN0cnVjdCB0byBhdHRhY2ggdGhlIGNhY2hlIHRvLlxuICAgKiBCYWNrZW5kcyBhcmUgYXV0by1jb25maWd1cmVkIGZyb20gdGhlIFBsb25lIHNlcnZpY2VzLlxuICAgKi9cbiAgcmVhZG9ubHkgcGxvbmU6IFBsb25lO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIGJhY2tlbmRzIHRvIGFkZCBhZnRlciB0aGUgYXV0by1nZW5lcmF0ZWQgUGxvbmUgYmFja2VuZHMuXG4gICAqIFVzZXMgdGhlIHNhbWUgYmFja2VuZCB0eXBlIHN0cnVjdHVyZSBhcyB0aGUgVmlueWxDYWNoZSBDUkQuXG4gICAqIEBkZWZhdWx0IC0gbm8gZXh0cmEgYmFja2VuZHNcbiAgICovXG4gIHJlYWRvbmx5IGV4dHJhQmFja2VuZHM/OiBWaW55bENhY2hlQmFja2VuZFtdO1xuXG4gIC8qKlxuICAgKiBOdW1iZXIgb2YgVmFybmlzaCBwb2QgcmVwbGljYXMuXG4gICAqIEBkZWZhdWx0IDJcbiAgICovXG4gIHJlYWRvbmx5IHJlcGxpY2FzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBDUFUgcmVxdWVzdCBmb3IgVmFybmlzaCBwb2RzLlxuICAgKiBAZGVmYXVsdCAnMTAwbSdcbiAgICovXG4gIHJlYWRvbmx5IHJlcXVlc3RDcHU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE1lbW9yeSByZXF1ZXN0IGZvciBWYXJuaXNoIHBvZHMuXG4gICAqIEBkZWZhdWx0ICcyNTZNaSdcbiAgICovXG4gIHJlYWRvbmx5IHJlcXVlc3RNZW1vcnk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENQVSBsaW1pdCBmb3IgVmFybmlzaCBwb2RzLlxuICAgKiBAZGVmYXVsdCAnNTAwbSdcbiAgICovXG4gIHJlYWRvbmx5IGxpbWl0Q3B1Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBNZW1vcnkgbGltaXQgZm9yIFZhcm5pc2ggcG9kcy5cbiAgICogQGRlZmF1bHQgJzUxMk1pJ1xuICAgKi9cbiAgcmVhZG9ubHkgbGltaXRNZW1vcnk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFZhcm5pc2ggc3RvcmFnZSBiYWNrZW5kcyAoYHNwZWMuc3RvcmFnZWApLlxuICAgKlxuICAgKiBFYWNoIGVudHJ5IGJlY29tZXMgYSBgLXMgPG5hbWU+PTx0eXBlPiw8b3B0aW9ucz5gIGFyZ3VtZW50IHRvIHZhcm5pc2hkLlxuICAgKiBJZiBvbWl0dGVkLCB0aGUgb3BlcmF0b3Igc2hpcHMgdmFybmlzaGQgd2l0aCBpdHMgc3RvY2sgZGVmYXVsdCAofjEwMCBNQlxuICAgKiBtYWxsb2MpIOKAlCBhbG1vc3QgYWx3YXlzIHRvbyBzbWFsbC4gU2V0IGFuIGV4cGxpY2l0IG1hbGxvYyBzaXplIGF0IGxlYXN0XG4gICAqIG1hdGNoaW5nIHRoZSBwb2QncyBtZW1vcnkgcmVxdWVzdCB0byB1c2UgdGhlIGFsbG9jYXRlZCBtZW1vcnkgZm9yIGNhY2hpbmcuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gc3RvcmFnZSBjb25maWd1cmVkOyBvcGVyYXRvciB1c2VzIHZhcm5pc2hkIGRlZmF1bHQgKH4xMDBNQiBtYWxsb2MpXG4gICAqIEBleGFtcGxlXG4gICAqIHN0b3JhZ2U6IFt7IG5hbWU6ICdzMCcsIHR5cGU6ICdtYWxsb2MnLCBzaXplOiAnMUdpJyB9XVxuICAgKi9cbiAgcmVhZG9ubHkgc3RvcmFnZT86IFZpbnlsQ2FjaGVTdG9yYWdlW107XG5cbiAgLyoqXG4gICAqIERpcmVjdG9yIHR5cGUgZm9yIGxvYWQgZGlzdHJpYnV0aW9uLlxuICAgKiBAZGVmYXVsdCAnc2hhcmQnXG4gICAqL1xuICByZWFkb25seSBkaXJlY3Rvcj86IHN0cmluZztcblxuICAvKipcbiAgICogU2hhcmQgZGlyZWN0b3I6IHdoYXQgdmFsdWUgaXMgaGFzaGVkIGZvciBzaGFyZCBzZWxlY3Rpb24uXG4gICAqIFwiSEFTSFwiIHVzZXMgdGhlIFZhcm5pc2ggaGFzaCAoZGVmYXVsdCk7IFwiVVJMXCIgdXNlcyB0aGUgcmVxdWVzdCBVUkwuXG4gICAqIE9ubHkgYXBwbGllZCB3aGVuIGRpcmVjdG9yIGlzIFwic2hhcmRcIi5cbiAgICogUmVxdWlyZXMgY2xvdWQtdmlueWwgb3BlcmF0b3IgPj0gMC40LjIuXG4gICAqIEBkZWZhdWx0IC0gb3BlcmF0b3IgZGVmYXVsdCAoXCJIQVNIXCIpXG4gICAqL1xuICByZWFkb25seSBzaGFyZEJ5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTaGFyZCBkaXJlY3Rvcjogd2hpY2ggYmFja2VuZHMgdGhlIGRpcmVjdG9yIGNvbnNpZGVycyB3aGVuIHNlbGVjdGluZyBhIHNoYXJkLlxuICAgKiBcIkNIT1NFTlwiIChkZWZhdWx0KSBvbmx5IGNvbnNpZGVycyB0aGUgY2hvc2VuIGJhY2tlbmQgaGVhbHRoeTsgXCJBTExcIiByZXF1aXJlcyBhbGxcbiAgICogYmFja2VuZHMgdG8gYmUgaGVhbHRoeS5cbiAgICogT25seSBhcHBsaWVkIHdoZW4gZGlyZWN0b3IgaXMgXCJzaGFyZFwiLlxuICAgKiBSZXF1aXJlcyBjbG91ZC12aW55bCBvcGVyYXRvciA+PSAwLjQuMi5cbiAgICogQGRlZmF1bHQgLSBvcGVyYXRvciBkZWZhdWx0IChcIkNIT1NFTlwiKVxuICAgKi9cbiAgcmVhZG9ubHkgc2hhcmRIZWFsdGh5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTaGFyZCBkaXJlY3RvcjogdGltZSBhZnRlciBhZGRpbmcgYSBiYWNrZW5kIGJlZm9yZSBpdCByZWNlaXZlcyBpdHMgZnVsbCBzaGFyZSBvZlxuICAgKiB0cmFmZmljLCBwcmV2ZW50aW5nIHRodW5kZXJpbmctaGVyZC5cbiAgICogT25seSBhcHBsaWVkIHdoZW4gZGlyZWN0b3IgaXMgXCJzaGFyZFwiLlxuICAgKiBAZGVmYXVsdCAtIG9wZXJhdG9yIGRlZmF1bHQgKFwiMzBzXCIpXG4gICAqL1xuICByZWFkb25seSBzaGFyZFJhbXB1cD86IHN0cmluZztcblxuICAvKipcbiAgICogU2hhcmQgZGlyZWN0b3I6IG51bWJlciBvZiBLZXRhbWEgcmVwbGljYXMgcGVyIGJhY2tlbmQgaW4gdGhlIGhhc2ggcmluZy5cbiAgICogT25seSBhcHBsaWVkIHdoZW4gZGlyZWN0b3IgaXMgXCJzaGFyZFwiLlxuICAgKiBAZGVmYXVsdCAtIG9wZXJhdG9yIGRlZmF1bHQgKDY3KVxuICAgKi9cbiAgcmVhZG9ubHkgc2hhcmRSZXBsaWNhcz86IG51bWJlcjtcblxuICAvKipcbiAgICogQ3VzdG9tIFZDTCBzbmlwcGV0IGZvciB2Y2xfcmVjdiBzdWJyb3V0aW5lLlxuICAgKiBSZXBsYWNlcyB0aGUgZGVmYXVsdCBQbG9uZSByZWN2IHNuaXBwZXQuXG4gICAqIEBkZWZhdWx0IC0gdXNlcyBidWlsdC1pbiBwbG9uZS12aW55bC1yZWN2LnZjbFxuICAgKi9cbiAgcmVhZG9ubHkgdmNsUmVjdlNuaXBwZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBWQ0wgc25pcHBldCBmb3IgdmNsX2JhY2tlbmRfcmVzcG9uc2Ugc3Vicm91dGluZS5cbiAgICogUmVwbGFjZXMgdGhlIGRlZmF1bHQgUGxvbmUgYmFja2VuZF9yZXNwb25zZSBzbmlwcGV0LlxuICAgKiBAZGVmYXVsdCAtIHVzZXMgYnVpbHQtaW4gcGxvbmUtdmlueWwtYmFja2VuZC1yZXNwb25zZS52Y2xcbiAgICovXG4gIHJlYWRvbmx5IHZjbEJhY2tlbmRSZXNwb25zZVNuaXBwZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEVuYWJsZSBjYWNoZSBpbnZhbGlkYXRpb24gKFBVUkdFLCBCQU4sIHhrZXkpLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBpbnZhbGlkYXRpb24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgUHJvbWV0aGV1cyBtb25pdG9yaW5nLiBXaGVuIHRydWUgdGhpcyB0dXJucyBvbiBvcGVyYXRvciBtZXRyaWNzLFxuICAgKiBhIFNlcnZpY2VNb25pdG9yLCBhbmQgdGhlIHByb21ldGhldXNfdmFybmlzaF9leHBvcnRlciBzaWRlY2FyIChyZXF1aXJlZFxuICAgKiBmb3IgY2FjaGUgaGl0LXJhdGlvIGFuZCBiYWNrZW5kLWhlYWx0aCBtZXRyaWNzKS5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IG1vbml0b3Jpbmc/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDb250YWluZXIgaW1hZ2UgZm9yIHRoZSBWYXJuaXNoIHBvZHMuXG4gICAqIEBkZWZhdWx0ICd2YXJuaXNoOjcuNidcbiAgICovXG4gIHJlYWRvbmx5IGltYWdlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUb2xlcmF0aW9ucyBmb3IgdGhlIFZhcm5pc2ggcG9kcy5cbiAgICogQGRlZmF1bHQgLSBubyB0b2xlcmF0aW9uc1xuICAgKi9cbiAgcmVhZG9ubHkgdG9sZXJhdGlvbnM/OiBWaW55bENhY2hlVG9sZXJhdGlvbltdO1xuXG4gIC8qKlxuICAgKiBOb2RlIHNlbGVjdG9yIGxhYmVscyBmb3IgdGhlIFZhcm5pc2ggcG9kcy5cbiAgICogQ29uc3RyYWlucyBwb2RzIHRvIG5vZGVzIG1hdGNoaW5nIGFsbCBzcGVjaWZpZWQgbGFiZWxzLlxuICAgKiBAZGVmYXVsdCAtIG5vIG5vZGUgc2VsZWN0b3JcbiAgICovXG4gIHJlYWRvbmx5IG5vZGVTZWxlY3Rvcj86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBWQ0wgc25pcHBldCBmb3IgdmNsX2RlbGl2ZXIgc3Vicm91dGluZS5cbiAgICogQGRlZmF1bHQgLSBubyBzbmlwcGV0XG4gICAqL1xuICByZWFkb25seSB2Y2xEZWxpdmVyU25pcHBldD86IHN0cmluZztcblxuICAvKipcbiAgICogQ3VzdG9tIFZDTCBzbmlwcGV0IGZvciB2Y2xfaGl0IHN1YnJvdXRpbmUuXG4gICAqIEBkZWZhdWx0IC0gbm8gc25pcHBldFxuICAgKi9cbiAgcmVhZG9ubHkgdmNsSGl0U25pcHBldD86IHN0cmluZztcblxuICAvKipcbiAgICogQ3VzdG9tIFZDTCBzbmlwcGV0IGZvciB2Y2xfbWlzcyBzdWJyb3V0aW5lLlxuICAgKiBAZGVmYXVsdCAtIG5vIHNuaXBwZXRcbiAgICovXG4gIHJlYWRvbmx5IHZjbE1pc3NTbmlwcGV0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gVkNMIHNuaXBwZXQgZm9yIHZjbF9wYXNzIHN1YnJvdXRpbmUuXG4gICAqIEBkZWZhdWx0IC0gbm8gc25pcHBldFxuICAgKi9cbiAgcmVhZG9ubHkgdmNsUGFzc1NuaXBwZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBWQ0wgc25pcHBldCBmb3IgdmNsX3BpcGUgc3Vicm91dGluZS5cbiAgICogQGRlZmF1bHQgLSBubyBzbmlwcGV0XG4gICAqL1xuICByZWFkb25seSB2Y2xQaXBlU25pcHBldD86IHN0cmluZztcblxuICAvKipcbiAgICogQ3VzdG9tIFZDTCBzbmlwcGV0IGZvciB2Y2xfc3ludGggc3Vicm91dGluZS5cbiAgICogQGRlZmF1bHQgLSBubyBzbmlwcGV0XG4gICAqL1xuICByZWFkb25seSB2Y2xTeW50aFNuaXBwZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBWQ0wgc25pcHBldCBmb3IgdmNsX3B1cmdlIHN1YnJvdXRpbmUuXG4gICAqIEBkZWZhdWx0IC0gbm8gc25pcHBldFxuICAgKi9cbiAgcmVhZG9ubHkgdmNsUHVyZ2VTbmlwcGV0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gVkNMIHNuaXBwZXQgZm9yIHZjbF9oYXNoIHN1YnJvdXRpbmUuXG4gICAqIEBkZWZhdWx0IC0gbm8gc25pcHBldFxuICAgKi9cbiAgcmVhZG9ubHkgdmNsSGFzaFNuaXBwZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBWQ0wgc25pcHBldCBmb3IgdmNsX2luaXQgc3Vicm91dGluZS5cbiAgICogQGRlZmF1bHQgLSBubyBzbmlwcGV0XG4gICAqL1xuICByZWFkb25seSB2Y2xJbml0U25pcHBldD86IHN0cmluZztcblxuICAvKipcbiAgICogQ3VzdG9tIFZDTCBzbmlwcGV0IGZvciB2Y2xfZmluaSBzdWJyb3V0aW5lLlxuICAgKiBAZGVmYXVsdCAtIG5vIHNuaXBwZXRcbiAgICovXG4gIHJlYWRvbmx5IHZjbEZpbmlTbmlwcGV0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gVkNMIHNuaXBwZXQgZm9yIHZjbF9iYWNrZW5kX2ZldGNoIHN1YnJvdXRpbmUuXG4gICAqIEBkZWZhdWx0IC0gbm8gc25pcHBldFxuICAgKi9cbiAgcmVhZG9ubHkgdmNsQmFja2VuZEZldGNoU25pcHBldD86IHN0cmluZztcblxuICAvKipcbiAgICogQ3VzdG9tIFZDTCBzbmlwcGV0IGZvciB2Y2xfYmFja2VuZF9lcnJvciBzdWJyb3V0aW5lLlxuICAgKiBAZGVmYXVsdCAtIG5vIHNuaXBwZXRcbiAgICovXG4gIHJlYWRvbmx5IHZjbEJhY2tlbmRFcnJvclNuaXBwZXQ/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGxvbmVWaW55bENhY2hlIGNvbnN0cnVjdCBmb3IgZGVwbG95aW5nIFZhcm5pc2ggQ2FjaGUgdmlhIGNsb3VkLXZpbnlsIG9wZXJhdG9yLlxuICpcbiAqIENyZWF0ZXMgYSBWaW55bENhY2hlIGN1c3RvbSByZXNvdXJjZSB3aXRoIFBsb25lIGJhY2tlbmQvZnJvbnRlbmQgc2VydmljZXNcbiAqIGF1dG8tY29uZmlndXJlZCBhcyBiYWNrZW5kcy4gVGhlIGNsb3VkLXZpbnlsIG9wZXJhdG9yIG1hbmFnZXMgdGhlIGZ1bGxcbiAqIFZhcm5pc2ggbGlmZWN5Y2xlIGluY2x1ZGluZyBWQ0wgZ2VuZXJhdGlvbiwgYWdlbnQgZGVsaXZlcnksIGFuZCBtb25pdG9yaW5nLlxuICpcbiAqIFJlcXVpcmVzIHRoZSBjbG91ZC12aW55bCBvcGVyYXRvciB0byBiZSBpbnN0YWxsZWQgaW4gdGhlIGNsdXN0ZXIuXG4gKlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IHBsb25lID0gbmV3IFBsb25lKGNoYXJ0LCAncGxvbmUnKTtcbiAqIGNvbnN0IGNhY2hlID0gbmV3IFBsb25lVmlueWxDYWNoZShjaGFydCwgJ2NhY2hlJywge1xuICogICBwbG9uZTogcGxvbmUsXG4gKiAgIHJlcGxpY2FzOiAyLFxuICogfSk7XG4gKiAvLyBVc2UgY2FjaGUudmlueWxDYWNoZVNlcnZpY2VOYW1lIGZvciBJbmdyZXNzUm91dGVcbiAqL1xuZXhwb3J0IGNsYXNzIFBsb25lVmlueWxDYWNoZSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBWaW55bENhY2hlIHNlcnZpY2UgY3JlYXRlZCBieSB0aGUgb3BlcmF0b3IuXG4gICAqIFVzZSB0aGlzIHRvIHJlZmVyZW5jZSB0aGUgY2FjaGUgc2VydmljZSBmcm9tIGluZ3Jlc3Mgb3Igb3RoZXIgY29uc3RydWN0cy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB2aW55bENhY2hlU2VydmljZU5hbWU6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBvcHRpb25zOiBQbG9uZVZpbnlsQ2FjaGVPcHRpb25zKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IHJlcGxpY2FzID0gb3B0aW9ucy5yZXBsaWNhcyA/PyAyO1xuICAgIGNvbnN0IGludmFsaWRhdGlvbiA9IG9wdGlvbnMuaW52YWxpZGF0aW9uID8/IHRydWU7XG4gICAgY29uc3QgbW9uaXRvcmluZyA9IG9wdGlvbnMubW9uaXRvcmluZyA/PyBmYWxzZTtcblxuICAgIC8vIFJlc29sdmUgZGlyZWN0b3IgdHlwZSBlbnVtXG4gICAgY29uc3QgZGlyZWN0b3JTdHIgPSBvcHRpb25zLmRpcmVjdG9yID8/ICdzaGFyZCc7XG4gICAgbGV0IGRpcmVjdG9yVHlwZTogVmlueWxDYWNoZVNwZWNEaXJlY3RvclR5cGU7XG4gICAgc3dpdGNoIChkaXJlY3RvclN0cikge1xuICAgICAgY2FzZSAncm91bmRfcm9iaW4nOlxuICAgICAgICBkaXJlY3RvclR5cGUgPSBWaW55bENhY2hlU3BlY0RpcmVjdG9yVHlwZS5ST1VORF9VTkRFUlNDT1JFX1JPQklOO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3JhbmRvbSc6XG4gICAgICAgIGRpcmVjdG9yVHlwZSA9IFZpbnlsQ2FjaGVTcGVjRGlyZWN0b3JUeXBlLlJBTkRPTTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdoYXNoJzpcbiAgICAgICAgZGlyZWN0b3JUeXBlID0gVmlueWxDYWNoZVNwZWNEaXJlY3RvclR5cGUuSEFTSDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBkaXJlY3RvclR5cGUgPSBWaW55bENhY2hlU3BlY0RpcmVjdG9yVHlwZS5TSEFSRDtcbiAgICB9XG5cbiAgICAvLyBTaGFyZCBkaXJlY3RvciB0dW5pbmc6IG9ubHkgaG9ub3JlZCBieSB0aGUgb3BlcmF0b3Igd2hlbiBkaXJlY3RvciB0eXBlIGlzIFwic2hhcmRcIi5cbiAgICAvLyBFbWl0IHRoZSBzaGFyZCBibG9jayBvbmx5IGZvciBzaGFyZCBkaXJlY3RvcnMgc28gbWFuaWZlc3RzIHN0YXkgbWluaW1hbC5cbiAgICBsZXQgc2hhcmRTcGVjOiB7XG4gICAgICBieT86IFZpbnlsQ2FjaGVTcGVjRGlyZWN0b3JTaGFyZEJ5O1xuICAgICAgaGVhbHRoeT86IFZpbnlsQ2FjaGVTcGVjRGlyZWN0b3JTaGFyZEhlYWx0aHk7XG4gICAgICByYW1wdXA/OiBzdHJpbmc7XG4gICAgICByZXBsaWNhcz86IG51bWJlcjtcbiAgICB9IHwgdW5kZWZpbmVkO1xuICAgIGlmIChkaXJlY3RvclR5cGUgPT09IFZpbnlsQ2FjaGVTcGVjRGlyZWN0b3JUeXBlLlNIQVJEICYmXG4gICAgICAgIChvcHRpb25zLnNoYXJkQnkgfHwgb3B0aW9ucy5zaGFyZEhlYWx0aHkgfHwgb3B0aW9ucy5zaGFyZFJhbXB1cCB8fCBvcHRpb25zLnNoYXJkUmVwbGljYXMgIT09IHVuZGVmaW5lZCkpIHtcbiAgICAgIGxldCBzaGFyZEJ5OiBWaW55bENhY2hlU3BlY0RpcmVjdG9yU2hhcmRCeSB8IHVuZGVmaW5lZDtcbiAgICAgIGlmIChvcHRpb25zLnNoYXJkQnkgPT09ICdVUkwnKSBzaGFyZEJ5ID0gVmlueWxDYWNoZVNwZWNEaXJlY3RvclNoYXJkQnkuVVJMO1xuICAgICAgZWxzZSBpZiAob3B0aW9ucy5zaGFyZEJ5ID09PSAnSEFTSCcpIHNoYXJkQnkgPSBWaW55bENhY2hlU3BlY0RpcmVjdG9yU2hhcmRCeS5IQVNIO1xuXG4gICAgICBsZXQgc2hhcmRIZWFsdGh5OiBWaW55bENhY2hlU3BlY0RpcmVjdG9yU2hhcmRIZWFsdGh5IHwgdW5kZWZpbmVkO1xuICAgICAgaWYgKG9wdGlvbnMuc2hhcmRIZWFsdGh5ID09PSAnQUxMJykgc2hhcmRIZWFsdGh5ID0gVmlueWxDYWNoZVNwZWNEaXJlY3RvclNoYXJkSGVhbHRoeS5BTEw7XG4gICAgICBlbHNlIGlmIChvcHRpb25zLnNoYXJkSGVhbHRoeSA9PT0gJ0NIT1NFTicpIHNoYXJkSGVhbHRoeSA9IFZpbnlsQ2FjaGVTcGVjRGlyZWN0b3JTaGFyZEhlYWx0aHkuQ0hPU0VOO1xuXG4gICAgICBzaGFyZFNwZWMgPSB7XG4gICAgICAgIGJ5OiBzaGFyZEJ5LFxuICAgICAgICBoZWFsdGh5OiBzaGFyZEhlYWx0aHksXG4gICAgICAgIHJhbXB1cDogb3B0aW9ucy5zaGFyZFJhbXB1cCxcbiAgICAgICAgcmVwbGljYXM6IG9wdGlvbnMuc2hhcmRSZXBsaWNhcyxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gTG9hZCBkZWZhdWx0IFZDTCBzbmlwcGV0c1xuICAgIGNvbnN0IHZjbFJlY3YgPSBvcHRpb25zLnZjbFJlY3ZTbmlwcGV0ID8/XG4gICAgICBmcy5yZWFkRmlsZVN5bmMocGF0aC5qb2luKF9fZGlybmFtZSwgJ2NvbmZpZycsICdwbG9uZS12aW55bC1yZWN2LnZjbCcpLCAndXRmOCcpO1xuICAgIGNvbnN0IHZjbEJhY2tlbmRSZXNwb25zZSA9IG9wdGlvbnMudmNsQmFja2VuZFJlc3BvbnNlU25pcHBldCA/P1xuICAgICAgZnMucmVhZEZpbGVTeW5jKHBhdGguam9pbihfX2Rpcm5hbWUsICdjb25maWcnLCAncGxvbmUtdmlueWwtYmFja2VuZC1yZXNwb25zZS52Y2wnKSwgJ3V0ZjgnKTtcblxuICAgIC8vIEJ1aWxkIGJhY2tlbmRzIGZyb20gUGxvbmUgc2VydmljZXNcbiAgICBjb25zdCBiYWNrZW5kczogQXJyYXk8e1xuICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgc2VydmljZVJlZjogeyBuYW1lOiBzdHJpbmcgfTtcbiAgICAgIHBvcnQ6IG51bWJlcjtcbiAgICAgIHByb2JlPzoge1xuICAgICAgICB1cmw6IHN0cmluZztcbiAgICAgICAgaW50ZXJ2YWw6IHN0cmluZztcbiAgICAgICAgdGltZW91dDogc3RyaW5nO1xuICAgICAgICB3aW5kb3c6IG51bWJlcjtcbiAgICAgICAgdGhyZXNob2xkOiBudW1iZXI7XG4gICAgICB9O1xuICAgICAgd2VpZ2h0PzogbnVtYmVyO1xuICAgIH0+ID0gW1xuICAgICAge1xuICAgICAgICBuYW1lOiAncGxvbmVfYmFja2VuZCcsXG4gICAgICAgIHNlcnZpY2VSZWY6IHsgbmFtZTogb3B0aW9ucy5wbG9uZS5iYWNrZW5kU2VydmljZU5hbWUgfSxcbiAgICAgICAgcG9ydDogODA4MCxcbiAgICAgICAgcHJvYmU6IHtcbiAgICAgICAgICB1cmw6ICcvb2snLFxuICAgICAgICAgIGludGVydmFsOiAnNXMnLFxuICAgICAgICAgIHRpbWVvdXQ6ICcycycsXG4gICAgICAgICAgd2luZG93OiAxMCxcbiAgICAgICAgICB0aHJlc2hvbGQ6IDgsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIF07XG5cbiAgICBpZiAob3B0aW9ucy5wbG9uZS5mcm9udGVuZFNlcnZpY2VOYW1lKSB7XG4gICAgICBiYWNrZW5kcy5wdXNoKHtcbiAgICAgICAgbmFtZTogJ3Bsb25lX2Zyb250ZW5kJyxcbiAgICAgICAgc2VydmljZVJlZjogeyBuYW1lOiBvcHRpb25zLnBsb25lLmZyb250ZW5kU2VydmljZU5hbWUgfSxcbiAgICAgICAgcG9ydDogMzAwMCxcbiAgICAgICAgcHJvYmU6IHtcbiAgICAgICAgICB1cmw6ICcvJyxcbiAgICAgICAgICBpbnRlcnZhbDogJzVzJyxcbiAgICAgICAgICB0aW1lb3V0OiAnMnMnLFxuICAgICAgICAgIHdpbmRvdzogMTAsXG4gICAgICAgICAgdGhyZXNob2xkOiA4LFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMuZXh0cmFCYWNrZW5kcykge1xuICAgICAgZm9yIChjb25zdCBlYiBvZiBvcHRpb25zLmV4dHJhQmFja2VuZHMpIHtcbiAgICAgICAgYmFja2VuZHMucHVzaCh7XG4gICAgICAgICAgbmFtZTogZWIubmFtZSxcbiAgICAgICAgICBzZXJ2aWNlUmVmOiB7IG5hbWU6IGViLnNlcnZpY2VOYW1lIH0sXG4gICAgICAgICAgcG9ydDogZWIucG9ydCxcbiAgICAgICAgICBwcm9iZTogZWIucHJvYmUgPyB7XG4gICAgICAgICAgICB1cmw6IGViLnByb2JlLnVybCA/PyAnLycsXG4gICAgICAgICAgICBpbnRlcnZhbDogZWIucHJvYmUuaW50ZXJ2YWwgPz8gJzVzJyxcbiAgICAgICAgICAgIHRpbWVvdXQ6IGViLnByb2JlLnRpbWVvdXQgPz8gJzJzJyxcbiAgICAgICAgICAgIHdpbmRvdzogZWIucHJvYmUud2luZG93ID8/IDEwLFxuICAgICAgICAgICAgdGhyZXNob2xkOiBlYi5wcm9iZS50aHJlc2hvbGQgPz8gOCxcbiAgICAgICAgICB9IDogdW5kZWZpbmVkLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBzdG9yYWdlOiBWaW55bENhY2hlU3BlY1N0b3JhZ2VbXSB8IHVuZGVmaW5lZCA9IG9wdGlvbnMuc3RvcmFnZT8ubWFwKHMgPT4gKHtcbiAgICAgIG5hbWU6IHMubmFtZSxcbiAgICAgIHR5cGU6IHMudHlwZSA9PT0gJ2ZpbGUnID8gVmlueWxDYWNoZVNwZWNTdG9yYWdlVHlwZS5GSUxFIDogVmlueWxDYWNoZVNwZWNTdG9yYWdlVHlwZS5NQUxMT0MsXG4gICAgICBzaXplOiBzLnNpemUgIT09IHVuZGVmaW5lZCA/IFZpbnlsQ2FjaGVTcGVjU3RvcmFnZVNpemUuZnJvbVN0cmluZyhzLnNpemUpIDogdW5kZWZpbmVkLFxuICAgICAgcGF0aDogcy5wYXRoLFxuICAgIH0pKTtcblxuICAgIGNvbnN0IHZpbnlsQ2FjaGUgPSBuZXcgVmlueWxDYWNoZSh0aGlzLCAndmlueWxjYWNoZScsIHtcbiAgICAgIHNwZWM6IHtcbiAgICAgICAgcmVwbGljYXMsXG4gICAgICAgIGltYWdlOiBvcHRpb25zLmltYWdlID8/ICd2YXJuaXNoOjcuNicsXG4gICAgICAgIGJhY2tlbmRzLFxuICAgICAgICBkaXJlY3RvcjogeyB0eXBlOiBkaXJlY3RvclR5cGUsIHNoYXJkOiBzaGFyZFNwZWMgfSxcbiAgICAgICAgc3RvcmFnZSxcbiAgICAgICAgdmNsOiB7XG4gICAgICAgICAgc25pcHBldHM6IHtcbiAgICAgICAgICAgIHZjbFJlY3Y6IHZjbFJlY3YsXG4gICAgICAgICAgICB2Y2xCYWNrZW5kUmVzcG9uc2U6IHZjbEJhY2tlbmRSZXNwb25zZSxcbiAgICAgICAgICAgIHZjbERlbGl2ZXI6IG9wdGlvbnMudmNsRGVsaXZlclNuaXBwZXQsXG4gICAgICAgICAgICB2Y2xIaXQ6IG9wdGlvbnMudmNsSGl0U25pcHBldCxcbiAgICAgICAgICAgIHZjbE1pc3M6IG9wdGlvbnMudmNsTWlzc1NuaXBwZXQsXG4gICAgICAgICAgICB2Y2xQYXNzOiBvcHRpb25zLnZjbFBhc3NTbmlwcGV0LFxuICAgICAgICAgICAgdmNsUGlwZTogb3B0aW9ucy52Y2xQaXBlU25pcHBldCxcbiAgICAgICAgICAgIHZjbFN5bnRoOiBvcHRpb25zLnZjbFN5bnRoU25pcHBldCxcbiAgICAgICAgICAgIHZjbFB1cmdlOiBvcHRpb25zLnZjbFB1cmdlU25pcHBldCxcbiAgICAgICAgICAgIHZjbEhhc2g6IG9wdGlvbnMudmNsSGFzaFNuaXBwZXQsXG4gICAgICAgICAgICB2Y2xJbml0OiBvcHRpb25zLnZjbEluaXRTbmlwcGV0LFxuICAgICAgICAgICAgdmNsRmluaTogb3B0aW9ucy52Y2xGaW5pU25pcHBldCxcbiAgICAgICAgICAgIHZjbEJhY2tlbmRGZXRjaDogb3B0aW9ucy52Y2xCYWNrZW5kRmV0Y2hTbmlwcGV0LFxuICAgICAgICAgICAgdmNsQmFja2VuZEVycm9yOiBvcHRpb25zLnZjbEJhY2tlbmRFcnJvclNuaXBwZXQsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgcmVzb3VyY2VzOiB7XG4gICAgICAgICAgcmVxdWVzdHM6IHtcbiAgICAgICAgICAgIGNwdTogVmlueWxDYWNoZVNwZWNSZXNvdXJjZXNSZXF1ZXN0cy5mcm9tU3RyaW5nKG9wdGlvbnMucmVxdWVzdENwdSA/PyAnMTAwbScpLFxuICAgICAgICAgICAgbWVtb3J5OiBWaW55bENhY2hlU3BlY1Jlc291cmNlc1JlcXVlc3RzLmZyb21TdHJpbmcob3B0aW9ucy5yZXF1ZXN0TWVtb3J5ID8/ICcyNTZNaScpLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbGltaXRzOiB7XG4gICAgICAgICAgICBjcHU6IFZpbnlsQ2FjaGVTcGVjUmVzb3VyY2VzTGltaXRzLmZyb21TdHJpbmcob3B0aW9ucy5saW1pdENwdSA/PyAnNTAwbScpLFxuICAgICAgICAgICAgbWVtb3J5OiBWaW55bENhY2hlU3BlY1Jlc291cmNlc0xpbWl0cy5mcm9tU3RyaW5nKG9wdGlvbnMubGltaXRNZW1vcnkgPz8gJzUxMk1pJyksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgaW52YWxpZGF0aW9uOiBpbnZhbGlkYXRpb24gPyB7XG4gICAgICAgICAgcHVyZ2U6IHsgZW5hYmxlZDogdHJ1ZSB9LFxuICAgICAgICAgIGJhbjogeyBlbmFibGVkOiB0cnVlIH0sXG4gICAgICAgICAgeGtleTogeyBlbmFibGVkOiB0cnVlIH0sXG4gICAgICAgIH0gOiB1bmRlZmluZWQsXG4gICAgICAgIG1vbml0b3Jpbmc6IG1vbml0b3JpbmcgPyB7XG4gICAgICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICBzZXJ2aWNlTW9uaXRvcjogeyBlbmFibGVkOiB0cnVlIH0sXG4gICAgICAgICAgZXhwb3J0ZXI6IHsgZW5hYmxlZDogdHJ1ZSB9LFxuICAgICAgICB9IDogdW5kZWZpbmVkLFxuICAgICAgICBwb2Q6IChvcHRpb25zLnRvbGVyYXRpb25zPy5sZW5ndGggfHwgb3B0aW9ucy5ub2RlU2VsZWN0b3IpID8ge1xuICAgICAgICAgIHRvbGVyYXRpb25zOiBvcHRpb25zLnRvbGVyYXRpb25zPy5tYXAodCA9PiAoe1xuICAgICAgICAgICAga2V5OiB0LmtleSxcbiAgICAgICAgICAgIG9wZXJhdG9yOiB0Lm9wZXJhdG9yLFxuICAgICAgICAgICAgdmFsdWU6IHQudmFsdWUsXG4gICAgICAgICAgICBlZmZlY3Q6IHQuZWZmZWN0LFxuICAgICAgICAgIH0pKSxcbiAgICAgICAgICBub2RlU2VsZWN0b3I6IG9wdGlvbnMubm9kZVNlbGVjdG9yLFxuICAgICAgICB9IDogdW5kZWZpbmVkLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIFRoZSBvcGVyYXRvciBjcmVhdGVzIGEgc2VydmljZSB3aXRoIHRoZSBzYW1lIG5hbWUgYXMgdGhlIFZpbnlsQ2FjaGUgcmVzb3VyY2VcbiAgICB0aGlzLnZpbnlsQ2FjaGVTZXJ2aWNlTmFtZSA9IE5hbWVzLnRvTGFiZWxWYWx1ZSh2aW55bENhY2hlKTtcbiAgfVxufVxuIl19
|