@bluedynamics/cdk8s-monitoring 1.5.1 → 1.6.0

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.
@@ -232,6 +232,13 @@ additionalPrometheusRulesMap:
232
232
  # Drop high-cardinality API server and etcd histogram buckets to reduce memory usage
233
233
  # These metrics alone account for ~200k series (47% of total cardinality)
234
234
  # We keep _sum and _count suffixes which are sufficient for rate calculations
235
+ #
236
+ # The watch histograms, the workqueue and the scheduler plugin buckets came on
237
+ # top of that: k3s runs apiserver, controller-manager and scheduler in one
238
+ # process with one metrics registry, so the apiserver endpoint also serves
239
+ # scheduler_* and workqueue_* series. Measured on a 6-node k3s cluster
240
+ # (2026-10-24): 56k watch_*, 8k workqueue_*, 3k scheduler_plugin_* of 408k
241
+ # series. Nothing in the shipped alerts or dashboards reads them.
235
242
  kubeApiServer:
236
243
  serviceMonitor:
237
244
  metricRelabelings:
@@ -250,10 +257,23 @@ kubeApiServer:
250
257
  - sourceLabels: [__name__]
251
258
  regex: 'etcd_request_duration_seconds_bucket'
252
259
  action: drop
260
+ - sourceLabels: [__name__]
261
+ regex: 'apiserver_watch_(cache_read_wait_seconds|list_duration_seconds|events_sizes)_bucket'
262
+ action: drop
263
+ - sourceLabels: [__name__]
264
+ regex: 'workqueue_(queue|work)_duration_seconds_bucket'
265
+ action: drop
266
+ - sourceLabels: [__name__]
267
+ regex: 'scheduler_plugin_execution_duration_seconds_bucket'
268
+ action: drop
253
269
 
254
270
  # Kubelet also exposes apiserver metrics - apply same filters
255
271
  kubelet:
256
272
  serviceMonitor:
273
+ # /metrics/probes only holds prober_probe_duration_seconds histograms
274
+ # (one series per probe, container and bucket, ~5k on a small cluster);
275
+ # nothing consumes them.
276
+ probes: false
257
277
  metricRelabelings:
258
278
  - sourceLabels: [__name__]
259
279
  regex: 'apiserver_request_duration_seconds_bucket'
@@ -270,6 +290,15 @@ kubelet:
270
290
  - sourceLabels: [__name__]
271
291
  regex: 'etcd_request_duration_seconds_bucket'
272
292
  action: drop
293
+ - sourceLabels: [__name__]
294
+ regex: 'apiserver_watch_(cache_read_wait_seconds|list_duration_seconds|events_sizes)_bucket'
295
+ action: drop
296
+ - sourceLabels: [__name__]
297
+ regex: 'workqueue_(queue|work)_duration_seconds_bucket'
298
+ action: drop
299
+ - sourceLabels: [__name__]
300
+ regex: 'scheduler_plugin_execution_duration_seconds_bucket'
301
+ action: drop
273
302
 
274
303
  alertmanager:
275
304
  config:
@@ -607,4 +636,4 @@ kube-state-metrics:
607
636
  }
608
637
  }
609
638
  exports.PrometheusStackConstruct = PrometheusStackConstruct;
610
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbWV0aGV1cy1zdGFjay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25zdHJ1Y3RzL3Byb21ldGhldXMtc3RhY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaUNBQWtDO0FBQ2xDLDJDQUF1QztBQUV2Qyw2Q0FBeUQ7QUFPekQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQkc7QUFDSCxNQUFhLHdCQUF5QixTQUFRLHNCQUFTO0lBQ3JELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBMkI7UUFDbkUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQztRQUVwQyw0QkFBNEI7UUFDNUIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRW5ELGtEQUFrRDtRQUNsRCwyQ0FBMkM7UUFDM0MsSUFBSSxpQkFBUyxDQUFDLElBQUksRUFBRSx1QkFBdUIsRUFBRTtZQUMzQyxVQUFVLEVBQUUsbUJBQW1CO1lBQy9CLElBQUksRUFBRSxXQUFXO1lBQ2pCLFFBQVEsRUFBRTtnQkFDUixJQUFJLEVBQUUsdUJBQXVCO2dCQUM3QixTQUFTLEVBQUUsU0FBUztnQkFDcEIsTUFBTSxFQUFFO29CQUNOLHdCQUF3QixFQUFFLHVCQUF1QjtvQkFDakQsNkJBQTZCLEVBQUUsWUFBWTtvQkFDM0MsOEJBQThCLEVBQUUsT0FBTztvQkFDdkMsMkJBQTJCLEVBQUUsWUFBWTtpQkFDMUM7Z0JBQ0QsV0FBVyxFQUFFO29CQUNYLDhCQUE4QixFQUFFLEdBQUc7aUJBQ3BDO2FBQ0Y7WUFDRCxJQUFJLEVBQUU7Z0JBQ0osSUFBSSxFQUFFLG9EQUFvRDtnQkFDMUQsS0FBSyxFQUFFLHVCQUF1QjtnQkFDOUIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsZUFBZSxLQUFLLFFBQVEsQ0FB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LENBQUMsTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O21CQXlCcEUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsMkJBQTJCLE1BQU0sQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRTs7VUFFNUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPOzs7Ozs7O1lBT3BCLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTzs7OzthQUlyQixNQUFNLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRztnQkFDaEMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU07O2FBRXpDLE1BQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHO2dCQUNsQyxNQUFNLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztZQXlCNUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O21DQXNCQyxNQUFNLENBQUMsU0FBUzs7Ozs7Ozs7dURBUUksTUFBTSxDQUFDLFNBQVM7Ozs7Ozs7O21DQVFwQyxNQUFNLENBQUMsU0FBUzs7MEJBRXpCLGVBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXVDeEMsQ0FBQztJQUNBLENBQUM7Q0FDRjtBQTFrQkQsNERBMGtCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwaU9iamVjdCB9IGZyb20gJ2NkazhzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgTW9uaXRvcmluZ0NvbmZpZyB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IEhFTE1fQ0hBUlRfRkFJTFVSRV9QT0xJQ1kgfSBmcm9tICcuL2hlbG0tY2hhcnQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFByb21ldGhldXNTdGFja1Byb3BzIHtcbiAgbmFtZXNwYWNlOiBzdHJpbmc7XG4gIGNvbmZpZzogTW9uaXRvcmluZ0NvbmZpZztcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGt1YmUtcHJvbWV0aGV1cy1zdGFjayBIZWxtQ2hhcnQgd2l0aCBQcm9tZXRoZXVzLCBHcmFmYW5hLCBhbmQgQWxlcnRtYW5hZ2VyLlxuICpcbiAqIFRoaXMgaXMgdGhlIGNvcmUgbW9uaXRvcmluZyBzdGFjayB0aGF0IGluY2x1ZGVzOlxuICogLSBQcm9tZXRoZXVzIChtZXRyaWNzIGNvbGxlY3Rpb24sIDIgcmVwbGljYXMsIDNkIHJldGVudGlvbilcbiAqIC0gR3JhZmFuYSAodmlzdWFsaXphdGlvbiwgaW5ncmVzcyB3aXRoIExldCdzIEVuY3J5cHQpXG4gKiAtIEFsZXJ0bWFuYWdlciAoYWxlcnQgcm91dGluZywgU01UUCBub3RpZmljYXRpb25zKVxuICogLSBQcm9tZXRoZXVzIE9wZXJhdG9yIChtYW5hZ2VzIFByb21ldGhldXMgQ1JEcylcbiAqIC0gTm9kZSBFeHBvcnRlciAoc3lzdGVtIG1ldHJpY3MgRGFlbW9uU2V0KVxuICogLSBrdWJlLXN0YXRlLW1ldHJpY3MgKEt1YmVybmV0ZXMgcmVzb3VyY2UgbWV0cmljcylcbiAqXG4gKiBQcmVyZXF1aXNpdGVzOlxuICogLSBOYW1lc3BhY2UgZXhpc3RzXG4gKiAtIFByaW9yaXR5Q2xhc3MgJ2hpZ2gtcHJpb3JpdHknIGV4aXN0c1xuICogLSBMb25naG9ybiBzdG9yYWdlIGNsYXNzIGF2YWlsYWJsZVxuICogLSBjZXJ0LW1hbmFnZXIgQ2x1c3Rlcklzc3VlciBjb25maWd1cmVkXG4gKiAtIFRoYW5vcyBTMyBzZWNyZXQgZXhpc3RzICh0aGFub3Mtb2Jqc3RvcmUtY29uZmlnKVxuICpcbiAqIFN5bmMgV2F2ZTogMiAoY29yZSBzZXJ2aWNlcyAtIGFmdGVyIFMzIGJ1Y2tldHMgYW5kIHNlY3JldHMpXG4gKi9cbmV4cG9ydCBjbGFzcyBQcm9tZXRoZXVzU3RhY2tDb25zdHJ1Y3QgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUHJvbWV0aGV1c1N0YWNrUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgeyBuYW1lc3BhY2UsIGNvbmZpZyB9ID0gcHJvcHM7XG5cbiAgICAvLyBHZW5lcmF0ZSBIZWxtIHZhbHVlcyBZQU1MXG4gICAgY29uc3QgaGVsbVZhbHVlcyA9IHRoaXMuZ2VuZXJhdGVIZWxtVmFsdWVzKGNvbmZpZyk7XG5cbiAgICAvLyBDcmVhdGUgSGVsbUNoYXJ0IHJlc291cmNlIChLM1MgSGVsbSBjb250cm9sbGVyKVxuICAgIC8vIFdhdmUgMjogQ29yZSBTZXJ2aWNlcyAtIG1vbml0b3Jpbmcgc3RhY2tcbiAgICBuZXcgQXBpT2JqZWN0KHRoaXMsICdrdWJlLXByb21ldGhldXMtc3RhY2snLCB7XG4gICAgICBhcGlWZXJzaW9uOiAnaGVsbS5jYXR0bGUuaW8vdjEnLFxuICAgICAga2luZDogJ0hlbG1DaGFydCcsXG4gICAgICBtZXRhZGF0YToge1xuICAgICAgICBuYW1lOiAna3ViZS1wcm9tZXRoZXVzLXN0YWNrJyxcbiAgICAgICAgbmFtZXNwYWNlOiBuYW1lc3BhY2UsXG4gICAgICAgIGxhYmVsczoge1xuICAgICAgICAgICdhcHAua3ViZXJuZXRlcy5pby9uYW1lJzogJ2t1YmUtcHJvbWV0aGV1cy1zdGFjaycsXG4gICAgICAgICAgJ2FwcC5rdWJlcm5ldGVzLmlvL2NvbXBvbmVudCc6ICdtb25pdG9yaW5nJyxcbiAgICAgICAgICAnYXBwLmt1YmVybmV0ZXMuaW8vbWFuYWdlZC1ieSc6ICdjZGs4cycsXG4gICAgICAgICAgJ2FwcC5rdWJlcm5ldGVzLmlvL3BhcnQtb2YnOiAnbW9uaXRvcmluZycsXG4gICAgICAgIH0sXG4gICAgICAgIGFubm90YXRpb25zOiB7XG4gICAgICAgICAgJ2FyZ29jZC5hcmdvcHJvai5pby9zeW5jLXdhdmUnOiAnMicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgc3BlYzoge1xuICAgICAgICByZXBvOiAnaHR0cHM6Ly9wcm9tZXRoZXVzLWNvbW11bml0eS5naXRodWIuaW8vaGVsbS1jaGFydHMnLFxuICAgICAgICBjaGFydDogJ2t1YmUtcHJvbWV0aGV1cy1zdGFjaycsXG4gICAgICAgIHZlcnNpb246IGNvbmZpZy52ZXJzaW9ucy5wcm9tZXRoZXVzU3RhY2sgPT09ICdsYXRlc3QnID8gdW5kZWZpbmVkIDogY29uZmlnLnZlcnNpb25zLnByb21ldGhldXNTdGFjayxcbiAgICAgICAgdGFyZ2V0TmFtZXNwYWNlOiBuYW1lc3BhY2UsXG4gICAgICAgIGZhaWx1cmVQb2xpY3k6IEhFTE1fQ0hBUlRfRkFJTFVSRV9QT0xJQ1ksXG4gICAgICAgIHZhbHVlc0NvbnRlbnQ6IGhlbG1WYWx1ZXMsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIGBbc2VjdXJpdHldYCBzZWN0aW9uIG9mIGdyYWZhbmEuaW5pLCBlbXB0eSB1bmxlc3MgZW1iZWRkaW5nIGlzIGVuYWJsZWQuXG4gICAqXG4gICAqIEdyYWZhbmEgc2VuZHMgYFgtRnJhbWUtT3B0aW9uczogZGVueWAgdW5sZXNzIGBhbGxvd19lbWJlZGRpbmdgIGlzIHNldCwgd2hpY2hcbiAgICogYmxvY2tzIGV4dGVybmFsbHkgc2hhcmVkIChcInB1YmxpY1wiKSBkYXNoYm9hcmRzIGluIGFuIGlmcmFtZSBqdXN0IGFzIG11Y2ggYXNcbiAgICogdGhlIGF1dGhlbnRpY2F0ZWQgVUkuIERyb3BwaW5nIHRoYXQgaGVhZGVyIGFsb25lIHdvdWxkIGxldCBhbnkgc2l0ZSBmcmFtZVxuICAgKiBHcmFmYW5hLCBzbyBpdCBpcyBwYWlyZWQgd2l0aCBhIENvbnRlbnQtU2VjdXJpdHktUG9saWN5IHdob3NlXG4gICAqIGBmcmFtZS1hbmNlc3RvcnNgIG5hbWVzIHRoZSBhbGxvd2VkIG9yaWdpbnMg4oCUIGJyb3dzZXJzIGhvbm91ciBpdCBpbiBwbGFjZSBvZlxuICAgKiB0aGUgcmVtb3ZlZCBoZWFkZXIuXG4gICAqXG4gICAqIFRoZSBvdGhlciBkaXJlY3RpdmVzIGFyZSBHcmFmYW5hJ3Mgb3duIGRlZmF1bHQgdGVtcGxhdGUgdmVyYmF0aW07IGAkTk9OQ0VgXG4gICAqIGFuZCBgJFJPT1RfUEFUSGAgYXJlIGV4cGFuZGVkIGJ5IEdyYWZhbmEgcGVyIHJlcXVlc3QuIE9ubHlcbiAgICogYCRGT1JNX0FDVElPTl9BRERJVElPTkFMX0hPU1RTYCBpcyBkcm9wcGVkOiBpdCBleGlzdHMgYXMgYSBwbGFjZWhvbGRlciBqdXN0XG4gICAqIGluIHJlY2VudCBHcmFmYW5hcywgYW5kIG9sZGVyIG9uZXMgd291bGQgZW1pdCBpdCBsaXRlcmFsbHkgaW50byB0aGUgaGVhZGVyLlxuICAgKlxuICAgKiBUaGUgcG9saWN5IGlzIHdyYXBwZWQgaW4gYFwiXCJcImAsIGV4YWN0bHkgYXMgR3JhZmFuYSdzIG93biBkZWZhdWx0cy5pbmkgZG9lcy5cbiAgICogZ3JhZmFuYS5pbmkgaXMgcGFyc2VkIGJ5IGdvLWluaSwgd2hpY2ggdHJlYXRzIGA7YCBhcyBhbiBpbmxpbmUgY29tbWVudCDigJQgYW5cbiAgICogdW5xdW90ZWQgcG9saWN5IGlzIHNpbGVudGx5IHRydW5jYXRlZCBhdCBpdHMgZmlyc3QgZGlyZWN0aXZlIHNlcGFyYXRvciwgYW5kXG4gICAqIHRoZSBicm93c2VyIHRoZW4gcmVjZWl2ZXMgYSBDU1Agd2l0aG91dCBgZnJhbWUtYW5jZXN0b3JzYCB3aGlsZVxuICAgKiBgWC1GcmFtZS1PcHRpb25zYCBpcyBhbHJlYWR5IGdvbmUuIEEgWUFNTCBibG9jayBzY2FsYXIgY2FycmllcyB0aGUgcXVvdGVzXG4gICAqIHRocm91Z2ggdW50b3VjaGVkOyBhIHBsYWluIHF1b3RlZCBzY2FsYXIgd291bGQgZmlnaHQgb3ZlciB0aGUgc2FtZVxuICAgKiBjaGFyYWN0ZXIuXG4gICAqL1xuICAvKipcbiAgICogRXh0cmEgQWxlcnRtYW5hZ2VyIHJvdXRlIGRlbW90aW5nIHN0YWdpbmctbmFtZXNwYWNlIGFsZXJ0cywgZW1wdHkgdW5sZXNzXG4gICAqIHN0YWdpbmdBbGVydHMgaXMgZW5hYmxlZC4gUGxhY2VkIGFmdGVyIHRoZSBub2lzZS1kcm9wIHJvdXRlcyAodGhvc2UgYXBwbHlcbiAgICogdG8gc3RhZ2luZyBqdXN0IGFzIG11Y2gpIGFuZCBiZWZvcmUgdGhlIGRlZmF1bHQgcHJvZHVjdGlvbiByZWNlaXZlci5cbiAgICovXG4gIHByaXZhdGUgZ2VuZXJhdGVTdGFnaW5nUm91dGUoY29uZmlnOiBNb25pdG9yaW5nQ29uZmlnKTogc3RyaW5nIHtcbiAgICBpZiAoIWNvbmZpZy5zdGFnaW5nQWxlcnRzLmVuYWJsZWQpIHJldHVybiAnJztcbiAgICByZXR1cm4gYFxuICAgICAgLSBtYXRjaF9yZTpcbiAgICAgICAgICBuYW1lc3BhY2U6IF4oJHtjb25maWcuc3RhZ2luZ0FsZXJ0cy5uYW1lc3BhY2VzLmpvaW4oJ3wnKX0pJFxuICAgICAgICByZWNlaXZlcjogc3RhZ2luZ2A7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGBzdGFnaW5nYCBlbWFpbCByZWNlaXZlciwgZW1wdHkgdW5sZXNzIHN0YWdpbmdBbGVydHMgaXMgZW5hYmxlZC4gU2FtZVxuICAgKiBtYWlsYm94IGFzIHRoZSBwcm9kdWN0aW9uIHJlY2VpdmVyLCBidXQgdGhlIHN1YmplY3QgcHJlZml4IG1hcmtzIHRoZSBtYWlsXG4gICAqIGFzIG5vbi1wcm9kdWN0aW9uIGFuZCBrZWVwcyBpdCBmaWx0ZXJhYmxlLlxuICAgKi9cbiAgLyoqXG4gICAqIEFsZXJ0bWFuYWdlciByZWFkcyB0aGUgcGFzc3dvcmQgZnJvbSB0aGUgZmlsZSB3aGVuIGEgc2VjcmV0IGlzIGNvbmZpZ3VyZWQsXG4gICAqIHdoaWNoIGtlZXBzIGl0IG91dCBvZiB0aGUgc3ludGhlc2l6ZWQgbWFuaWZlc3RzLlxuICAgKi9cbiAgcHJpdmF0ZSBnZW5lcmF0ZVNtdHBBdXRoUGFzc3dvcmQoY29uZmlnOiBNb25pdG9yaW5nQ29uZmlnKTogc3RyaW5nIHtcbiAgICBjb25zdCBzZWNyZXQgPSBjb25maWcuc210cC5wYXNzd29yZFNlY3JldDtcbiAgICBpZiAoc2VjcmV0KSB7XG4gICAgICByZXR1cm4gYHNtdHBfYXV0aF9wYXNzd29yZF9maWxlOiAvZXRjL2FsZXJ0bWFuYWdlci9zZWNyZXRzLyR7c2VjcmV0Lm5hbWV9LyR7c2VjcmV0LmtleX1gO1xuICAgIH1cbiAgICByZXR1cm4gYHNtdHBfYXV0aF9wYXNzd29yZDogJHtjb25maWcuc210cC5wYXNzd29yZCB8fCAnJ31gO1xuICB9XG5cbiAgLyoqIEZhbGxzIGJhY2sgdG8gdGhlIHNlbmRlciBhZGRyZXNzIHNvIGV4aXN0aW5nIGNvbmZpZ3Mga2VlcCB0aGVpciByZWNpcGllbnQuICovXG4gIHByaXZhdGUgZ2VuZXJhdGVSZWNpcGllbnRzKGNvbmZpZzogTW9uaXRvcmluZ0NvbmZpZyk6IHN0cmluZyB7XG4gICAgY29uc3QgcmVjaXBpZW50cyA9IGNvbmZpZy5zbXRwLnJlY2lwaWVudHM7XG4gICAgaWYgKHJlY2lwaWVudHMgJiYgcmVjaXBpZW50cy5sZW5ndGggPiAwKSByZXR1cm4gcmVjaXBpZW50cy5qb2luKCcsICcpO1xuICAgIHJldHVybiBjb25maWcuc210cC5mcm9tO1xuICB9XG5cbiAgLyoqIE1vdW50cyB0aGUgcGFzc3dvcmQgc2VjcmV0IGF0IC9ldGMvYWxlcnRtYW5hZ2VyL3NlY3JldHMvPG5hbWU+LzxrZXk+LiAqL1xuICBwcml2YXRlIGdlbmVyYXRlQWxlcnRtYW5hZ2VyU2VjcmV0cyhjb25maWc6IE1vbml0b3JpbmdDb25maWcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHNlY3JldCA9IGNvbmZpZy5zbXRwLnBhc3N3b3JkU2VjcmV0O1xuICAgIGlmICghc2VjcmV0KSByZXR1cm4gJyc7XG4gICAgcmV0dXJuIGBcbiAgICBzZWNyZXRzOlxuICAgIC0gJHtzZWNyZXQubmFtZX1gO1xuICB9XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZVN0YWdpbmdSZWNlaXZlcihjb25maWc6IE1vbml0b3JpbmdDb25maWcpOiBzdHJpbmcge1xuICAgIGlmICghY29uZmlnLnN0YWdpbmdBbGVydHMuZW5hYmxlZCkgcmV0dXJuICcnO1xuICAgIHJldHVybiBgXG4gICAgLSBuYW1lOiBzdGFnaW5nXG4gICAgICBlbWFpbF9jb25maWdzOlxuICAgICAgLSBzZW5kX3Jlc29sdmVkOiB0cnVlXG4gICAgICAgIHRvOiAke3RoaXMuZ2VuZXJhdGVSZWNpcGllbnRzKGNvbmZpZyl9XG4gICAgICAgIGhlYWRlcnM6XG4gICAgICAgICAgc3ViamVjdDogJ1tTVEFHSU5HXSB7eyB0ZW1wbGF0ZSBcImVtYWlsLmRlZmF1bHQuc3ViamVjdFwiIC4gfX0nYDtcbiAgfVxuXG4gIHByaXZhdGUgZ2VuZXJhdGVHcmFmYW5hU2VjdXJpdHkoY29uZmlnOiBNb25pdG9yaW5nQ29uZmlnKTogc3RyaW5nIHtcbiAgICBpZiAoIWNvbmZpZy5lbWJlZGRpbmcuZW5hYmxlZCkgcmV0dXJuICcnO1xuICAgIGNvbnN0IHBvbGljeSA9IFtcbiAgICAgIFwic2NyaXB0LXNyYyAnc2VsZicgJ3Vuc2FmZS1ldmFsJyAndW5zYWZlLWlubGluZScgJ3N0cmljdC1keW5hbWljJyAkTk9OQ0VcIixcbiAgICAgIFwib2JqZWN0LXNyYyAnbm9uZSdcIixcbiAgICAgIFwiZm9udC1zcmMgJ3NlbGYnXCIsXG4gICAgICBcInN0eWxlLXNyYyAnc2VsZicgJ3Vuc2FmZS1pbmxpbmUnIGJsb2I6XCIsXG4gICAgICAnaW1nLXNyYyAqIGRhdGE6JyxcbiAgICAgIFwiYmFzZS11cmkgJ3NlbGYnXCIsXG4gICAgICBcImNvbm5lY3Qtc3JjICdzZWxmJyBncmFmYW5hLmNvbSB3czovLyRST09UX1BBVEggd3NzOi8vJFJPT1RfUEFUSFwiLFxuICAgICAgXCJtYW5pZmVzdC1zcmMgJ3NlbGYnXCIsXG4gICAgICBcIm1lZGlhLXNyYyAnbm9uZSdcIixcbiAgICAgIFwiZm9ybS1hY3Rpb24gJ3NlbGYnXCIsXG4gICAgICBgZnJhbWUtYW5jZXN0b3JzICdzZWxmJyAke2NvbmZpZy5lbWJlZGRpbmcuZnJhbWVBbmNlc3RvcnMuam9pbignICcpfWAsXG4gICAgXS5tYXAoKGRpcmVjdGl2ZSkgPT4gYCR7ZGlyZWN0aXZlfTtgKS5qb2luKCcnKTtcbiAgICByZXR1cm4gYFxuICAgIHNlY3VyaXR5OlxuICAgICAgYWxsb3dfZW1iZWRkaW5nOiB0cnVlXG4gICAgICBjb250ZW50X3NlY3VyaXR5X3BvbGljeTogdHJ1ZVxuICAgICAgY29udGVudF9zZWN1cml0eV9wb2xpY3lfdGVtcGxhdGU6ID4tXG4gICAgICAgIFwiXCJcIiR7cG9saWN5fVwiXCJcImA7XG4gIH1cblxuICBwcml2YXRlIGdlbmVyYXRlSGVsbVZhbHVlcyhjb25maWc6IE1vbml0b3JpbmdDb25maWcpOiBzdHJpbmcge1xuICAgIC8vIFRlbXBvIGRhdGFzb3VyY2UgaXMgb25seSBwcm92aXNpb25lZCB3aGVuIHRyYWNpbmcgaXMgZW5hYmxlZC4gV2hlblxuICAgIC8vIGRpc2FibGVkIHRoaXMgaXMgZW1wdHksIHNvIHRoZSBHcmFmYW5hIGJsb2NrIGlzIGJ5dGUtaWRlbnRpY2FsIHRvIGJlZm9yZS5cbiAgICBjb25zdCB0ZW1wb0RhdGFzb3VyY2UgPSBjb25maWcudGVtcG8uZW5hYmxlZCA/IGBcbiAgICAgIC0gbmFtZTogVGVtcG9cbiAgICAgICAgdHlwZTogdGVtcG9cbiAgICAgICAgdWlkOiB0ZW1wb1xuICAgICAgICBhY2Nlc3M6IHByb3h5XG4gICAgICAgIHVybDogaHR0cDovL3RlbXBvLiR7Y29uZmlnLm5hbWVzcGFjZX0uc3ZjLmNsdXN0ZXIubG9jYWw6MzIwMFxuICAgICAgICBqc29uRGF0YTpcbiAgICAgICAgICB0aW1lb3V0OiA2MFxuICAgICAgICAgIHRyYWNlc1RvTG9nc1YyOlxuICAgICAgICAgICAgZGF0YXNvdXJjZVVpZDogbG9raVxuICAgICAgICAgICAgc3BhblN0YXJ0VGltZVNoaWZ0OiBcIi0xaFwiXG4gICAgICAgICAgICBzcGFuRW5kVGltZVNoaWZ0OiBcIjFoXCJcbiAgICAgICAgICAgIGZpbHRlckJ5VHJhY2VJRDogdHJ1ZVxuICAgICAgICAgIHRyYWNlc1RvTWV0cmljczpcbiAgICAgICAgICAgIGRhdGFzb3VyY2VVaWQ6IHRoYW5vc2AgOiAnJztcbiAgICByZXR1cm4gYGt1YmVFdGNkOlxuICBlbmFibGVkOiBmYWxzZVxuXG4jIERpc2FibGUga3ViZS1jb250cm9sbGVyLW1hbmFnZXIgYW5kIGt1YmUtc2NoZWR1bGVyIG1vbml0b3JpbmcuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2FibGVzcGFnaGV0dGkvazNzLW1vbml0b3JpbmcvaXNzdWVzLzJcbmt1YmVDb250cm9sbGVyTWFuYWdlcjpcbiAgZW5hYmxlZDogZmFsc2Vcbmt1YmVTY2hlZHVsZXI6XG4gIGVuYWJsZWQ6IGZhbHNlXG5cbiMgazNzIHJ1bnMga3ViZS1wcm94eSBpbnNpZGUgdGhlIGFnZW50IHJhdGhlciB0aGFuIGFzIGEgc2VwYXJhdGUgY29tcG9uZW50LCBzb1xuIyB0aGVyZSBpcyBubyBlbmRwb2ludCB0byBzY3JhcGUuIExlYXZpbmcgdGhpcyBlbmFibGVkIG1ha2VzIHRoZSBzdG9ja1xuIyBLdWJlUHJveHlEb3duIHJ1bGUgLS0gYWJzZW50KHVwe2pvYj1cImt1YmUtcHJveHlcIn0pIC0tIGZpcmUgZm9yZXZlciBvbiBhXG4jIHBlcmZlY3RseSBoZWFsdGh5IGNsdXN0ZXIuXG5rdWJlUHJveHk6XG4gIGVuYWJsZWQ6IGZhbHNlXG5cbiMgRGV0ZWN0IFBvZERpc3J1cHRpb25CdWRnZXRzIHRoYXQgd291bGQgYmxvY2sgYSBub2RlIGRyYWluIGR1cmluZyBrM3MgdXBncmFkZXMuXG4jIE9wZXJhdG9yLW1hbmFnZWQgUERCcyBzaXQgYXQgZGlzcnVwdGlvbnNBbGxvd2VkPTAgYnkgZGVzaWduIChMb25naG9ybiBpbnN0YW5jZS1tYW5hZ2VycyxcbiMgQ05QRyAqLXByaW1hcnkpIGFuZCBhcmUgZXhjbHVkZWQgc28gdGhlIGFsZXJ0IG9ubHkgZmlyZXMgb24gYW5vbWFsb3VzIGFwcCBQREJzLlxuYWRkaXRpb25hbFByb21ldGhldXNSdWxlc01hcDpcbiAgcGRiLWRyYWluLXNhZmV0eTpcbiAgICBncm91cHM6XG4gICAgICAtIG5hbWU6IHBkYi5ydWxlc1xuICAgICAgICBpbnRlcnZhbDogMW1cbiAgICAgICAgcnVsZXM6XG4gICAgICAgICAgLSBhbGVydDogUG9kRGlzcnVwdGlvbkJ1ZGdldFVuZHJhaW5hYmxlXG4gICAgICAgICAgICBleHByOiBrdWJlX3BvZGRpc3J1cHRpb25idWRnZXRfc3RhdHVzX3BvZF9kaXNydXB0aW9uc19hbGxvd2Vke25hbWVzcGFjZSE9XCJsb25naG9ybi1zeXN0ZW1cIiwgcG9kZGlzcnVwdGlvbmJ1ZGdldCF+XCIuKi1wcmltYXJ5XCJ9ID09IDBcbiAgICAgICAgICAgIGZvcjogMTVtXG4gICAgICAgICAgICBsYWJlbHM6XG4gICAgICAgICAgICAgIHNldmVyaXR5OiB3YXJuaW5nXG4gICAgICAgICAgICAgIGNvbXBvbmVudDogY2x1c3Rlci11cGdyYWRlXG4gICAgICAgICAgICBhbm5vdGF0aW9uczpcbiAgICAgICAgICAgICAgc3VtbWFyeTogXCJQREIge3sgJGxhYmVscy5uYW1lc3BhY2UgfX0ve3sgJGxhYmVscy5wb2RkaXNydXB0aW9uYnVkZ2V0IH19IGFsbG93cyAwIHZvbHVudGFyeSBkaXNydXB0aW9uc1wiXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB8XG4gICAgICAgICAgICAgICAgVGhlIFBvZERpc3J1cHRpb25CdWRnZXQge3sgJGxhYmVscy5uYW1lc3BhY2UgfX0ve3sgJGxhYmVscy5wb2RkaXNydXB0aW9uYnVkZ2V0IH19XG4gICAgICAgICAgICAgICAgaGFzIGFsbG93ZWQgMCB2b2x1bnRhcnkgZGlzcnVwdGlvbnMgZm9yIG92ZXIgMTUgbWludXRlcy4gVGhpcyB3aWxsIGJsb2NrIGEgbm9kZVxuICAgICAgICAgICAgICAgIGRyYWluIGR1cmluZyBrM3MgdXBncmFkZXMuIE9wZXJhdG9yLW1hbmFnZWQgUERCcyAoTG9uZ2hvcm4sIENOUEcgcHJpbWFyaWVzKSBhcmVcbiAgICAgICAgICAgICAgICBleGNsdWRlZCBmcm9tIHRoaXMgYWxlcnQuIExpa2VseSBhIGRlZ3JhZGVkIGRlcGxveW1lbnQgKDAgaGVhbHRoeSBwb2RzKSBvciBhXG4gICAgICAgICAgICAgICAgc2luZ2xlLXJlcGxpY2EgZGVwbG95bWVudCB3aXRoIG1pbkF2YWlsYWJsZT0xLlxuICAgICAgICAgICAgICAgIENoZWNrOiBrdWJlY3RsIGdldCBwZGIgLW4ge3sgJGxhYmVscy5uYW1lc3BhY2UgfX0ge3sgJGxhYmVscy5wb2RkaXNydXB0aW9uYnVkZ2V0IH19XG4gICAgICAgICAgLSBhbGVydDogUG9kRGlzcnVwdGlvbkJ1ZGdldFVuZHJhaW5hYmxlQ3JpdGljYWxcbiAgICAgICAgICAgIGV4cHI6IGt1YmVfcG9kZGlzcnVwdGlvbmJ1ZGdldF9zdGF0dXNfcG9kX2Rpc3J1cHRpb25zX2FsbG93ZWR7bmFtZXNwYWNlIT1cImxvbmdob3JuLXN5c3RlbVwiLCBwb2RkaXNydXB0aW9uYnVkZ2V0IX5cIi4qLXByaW1hcnlcIn0gPT0gMFxuICAgICAgICAgICAgZm9yOiAxaFxuICAgICAgICAgICAgbGFiZWxzOlxuICAgICAgICAgICAgICBzZXZlcml0eTogY3JpdGljYWxcbiAgICAgICAgICAgICAgY29tcG9uZW50OiBjbHVzdGVyLXVwZ3JhZGVcbiAgICAgICAgICAgIGFubm90YXRpb25zOlxuICAgICAgICAgICAgICBzdW1tYXJ5OiBcIlBEQiB7eyAkbGFiZWxzLm5hbWVzcGFjZSB9fS97eyAkbGFiZWxzLnBvZGRpc3J1cHRpb25idWRnZXQgfX0gdW5kcmFpbmFibGUgPjFoXCJcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHxcbiAgICAgICAgICAgICAgICBQREIge3sgJGxhYmVscy5uYW1lc3BhY2UgfX0ve3sgJGxhYmVscy5wb2RkaXNydXB0aW9uYnVkZ2V0IH19IGhhcyBibG9ja2VkXG4gICAgICAgICAgICAgICAgdm9sdW50YXJ5IGRpc3J1cHRpb25zIGZvciBvdmVyIGFuIGhvdXIuIEEgazNzIGFnZW50IHVwZ3JhZGUgd291bGQgc3RhbGwgb24gdGhpcyBub2RlLlxuIyBEcm9wIGhpZ2gtY2FyZGluYWxpdHkgQVBJIHNlcnZlciBhbmQgZXRjZCBoaXN0b2dyYW0gYnVja2V0cyB0byByZWR1Y2UgbWVtb3J5IHVzYWdlXG4jIFRoZXNlIG1ldHJpY3MgYWxvbmUgYWNjb3VudCBmb3IgfjIwMGsgc2VyaWVzICg0NyUgb2YgdG90YWwgY2FyZGluYWxpdHkpXG4jIFdlIGtlZXAgX3N1bSBhbmQgX2NvdW50IHN1ZmZpeGVzIHdoaWNoIGFyZSBzdWZmaWNpZW50IGZvciByYXRlIGNhbGN1bGF0aW9uc1xua3ViZUFwaVNlcnZlcjpcbiAgc2VydmljZU1vbml0b3I6XG4gICAgbWV0cmljUmVsYWJlbGluZ3M6XG4gICAgICAtIHNvdXJjZUxhYmVsczogW19fbmFtZV9fXVxuICAgICAgICByZWdleDogJ2FwaXNlcnZlcl9yZXF1ZXN0X2R1cmF0aW9uX3NlY29uZHNfYnVja2V0J1xuICAgICAgICBhY3Rpb246IGRyb3BcbiAgICAgIC0gc291cmNlTGFiZWxzOiBbX19uYW1lX19dXG4gICAgICAgIHJlZ2V4OiAnYXBpc2VydmVyX3JlcXVlc3Rfc2xpX2R1cmF0aW9uX3NlY29uZHNfYnVja2V0J1xuICAgICAgICBhY3Rpb246IGRyb3BcbiAgICAgIC0gc291cmNlTGFiZWxzOiBbX19uYW1lX19dXG4gICAgICAgIHJlZ2V4OiAnYXBpc2VydmVyX3JlcXVlc3RfYm9keV9zaXplX2J5dGVzX2J1Y2tldCdcbiAgICAgICAgYWN0aW9uOiBkcm9wXG4gICAgICAtIHNvdXJjZUxhYmVsczogW19fbmFtZV9fXVxuICAgICAgICByZWdleDogJ2FwaXNlcnZlcl9yZXNwb25zZV9zaXplc19idWNrZXQnXG4gICAgICAgIGFjdGlvbjogZHJvcFxuICAgICAgLSBzb3VyY2VMYWJlbHM6IFtfX25hbWVfX11cbiAgICAgICAgcmVnZXg6ICdldGNkX3JlcXVlc3RfZHVyYXRpb25fc2Vjb25kc19idWNrZXQnXG4gICAgICAgIGFjdGlvbjogZHJvcFxuXG4jIEt1YmVsZXQgYWxzbyBleHBvc2VzIGFwaXNlcnZlciBtZXRyaWNzIC0gYXBwbHkgc2FtZSBmaWx0ZXJzXG5rdWJlbGV0OlxuICBzZXJ2aWNlTW9uaXRvcjpcbiAgICBtZXRyaWNSZWxhYmVsaW5nczpcbiAgICAgIC0gc291cmNlTGFiZWxzOiBbX19uYW1lX19dXG4gICAgICAgIHJlZ2V4OiAnYXBpc2VydmVyX3JlcXVlc3RfZHVyYXRpb25fc2Vjb25kc19idWNrZXQnXG4gICAgICAgIGFjdGlvbjogZHJvcFxuICAgICAgLSBzb3VyY2VMYWJlbHM6IFtfX25hbWVfX11cbiAgICAgICAgcmVnZXg6ICdhcGlzZXJ2ZXJfcmVxdWVzdF9zbGlfZHVyYXRpb25fc2Vjb25kc19idWNrZXQnXG4gICAgICAgIGFjdGlvbjogZHJvcFxuICAgICAgLSBzb3VyY2VMYWJlbHM6IFtfX25hbWVfX11cbiAgICAgICAgcmVnZXg6ICdhcGlzZXJ2ZXJfcmVxdWVzdF9ib2R5X3NpemVfYnl0ZXNfYnVja2V0J1xuICAgICAgICBhY3Rpb246IGRyb3BcbiAgICAgIC0gc291cmNlTGFiZWxzOiBbX19uYW1lX19dXG4gICAgICAgIHJlZ2V4OiAnYXBpc2VydmVyX3Jlc3BvbnNlX3NpemVzX2J1Y2tldCdcbiAgICAgICAgYWN0aW9uOiBkcm9wXG4gICAgICAtIHNvdXJjZUxhYmVsczogW19fbmFtZV9fXVxuICAgICAgICByZWdleDogJ2V0Y2RfcmVxdWVzdF9kdXJhdGlvbl9zZWNvbmRzX2J1Y2tldCdcbiAgICAgICAgYWN0aW9uOiBkcm9wXG5cbmFsZXJ0bWFuYWdlcjpcbiAgY29uZmlnOlxuICAgIGdsb2JhbDpcbiAgICAgIHNtdHBfZnJvbTogJHtjb25maWcuc210cC5mcm9tfVxuICAgICAgc210cF9zbWFydGhvc3Q6ICR7Y29uZmlnLnNtdHAuaG9zdH06JHtjb25maWcuc210cC5wb3J0fVxuICAgICAgc210cF9yZXF1aXJlX3RsczogJHtjb25maWcuc210cC5yZXF1aXJlVGxzfVxuICAgICAgc210cF9hdXRoX3VzZXJuYW1lOiAke2NvbmZpZy5zbXRwLnVzZXJuYW1lIHx8IGNvbmZpZy5zbXRwLmZyb219XG4gICAgICAke3RoaXMuZ2VuZXJhdGVTbXRwQXV0aFBhc3N3b3JkKGNvbmZpZyl9XG4gICAgcm91dGU6XG4gICAgICBncm91cF9ieTogWydqb2InXVxuICAgICAgZ3JvdXBfd2FpdDogMzBzXG4gICAgICBncm91cF9pbnRlcnZhbDogNW1cbiAgICAgIHJlcGVhdF9pbnRlcnZhbDogJHtjb25maWcuYWxlcnRSb3V0aW5nLnJlcGVhdEludGVydmFsfVxuICAgICAgcmVjZWl2ZXI6IGVtYWlsXG4gICAgICByb3V0ZXM6XG4gICAgICAtIG1hdGNoOlxuICAgICAgICAgIGFsZXJ0bmFtZTogV2F0Y2hkb2dcbiAgICAgICAgcmVjZWl2ZXI6ICdudWxsJ1xuICAgICAgLSBtYXRjaDpcbiAgICAgICAgICBhbGVydG5hbWU6IENQVVRocm90dGxpbmdIaWdoXG4gICAgICAgIHJlY2VpdmVyOiAnbnVsbCdcbiAgICAgIC0gbWF0Y2g6XG4gICAgICAgICAgYWxlcnRuYW1lOiBLdWJlTWVtb3J5T3ZlcmNvbW1pdFxuICAgICAgICByZWNlaXZlcjogJ251bGwnXG4gICAgICAtIG1hdGNoOlxuICAgICAgICAgIGFsZXJ0bmFtZTogS3ViZUNQVU92ZXJjb21taXRcbiAgICAgICAgcmVjZWl2ZXI6ICdudWxsJ1xuICAgICAgLSBtYXRjaDpcbiAgICAgICAgICBhbGVydG5hbWU6IEt1YmVsZXRUb29NYW55UG9kc1xuICAgICAgICByZWNlaXZlcjogJ251bGwnXG4gICAgICAjIFNldmVyaXR5IFwibm9uZVwiOiBleGlzdHMgb25seSB0byBpbmhpYml0IGluZm8gYWxlcnRzLCBuZXZlciBtZWFudCBmb3IgYSBodW1hbi5cbiAgICAgIC0gbWF0Y2g6XG4gICAgICAgICAgYWxlcnRuYW1lOiBJbmZvSW5oaWJpdG9yXG4gICAgICAgIHJlY2VpdmVyOiAnbnVsbCcke3RoaXMuZ2VuZXJhdGVTdGFnaW5nUm91dGUoY29uZmlnKX1cblxuICAgIHJlY2VpdmVyczpcbiAgICAtIG5hbWU6ICdudWxsJ1xuICAgIC0gbmFtZTogZW1haWxcbiAgICAgIGVtYWlsX2NvbmZpZ3M6XG4gICAgICAtIHNlbmRfcmVzb2x2ZWQ6IHRydWVcbiAgICAgICAgdG86ICR7dGhpcy5nZW5lcmF0ZVJlY2lwaWVudHMoY29uZmlnKX0ke3RoaXMuZ2VuZXJhdGVTdGFnaW5nUmVjZWl2ZXIoY29uZmlnKX1cblxuICAgICMgSW5oaWJpdGlvbiBydWxlcyBhbGxvdyB0byBtdXRlIGEgc2V0IG9mIGFsZXJ0cyBnaXZlbiB0aGF0IGFub3RoZXIgYWxlcnQgaXMgZmlyaW5nLlxuICAgICMgV2UgdXNlIHRoaXMgdG8gbXV0ZSBhbnkgd2FybmluZy1sZXZlbCBub3RpZmljYXRpb25zIGlmIHRoZSBzYW1lIGFsZXJ0IGlzIGFscmVhZHkgY3JpdGljYWwuXG4gICAgaW5oaWJpdF9ydWxlczpcbiAgICAtIHNvdXJjZV9tYXRjaDpcbiAgICAgICAgc2V2ZXJpdHk6ICdjcml0aWNhbCdcbiAgICAgIHRhcmdldF9tYXRjaDpcbiAgICAgICAgc2V2ZXJpdHk6ICd3YXJuaW5nJ1xuICAgICAgIyBBcHBseSBpbmhpYml0aW9uIGlmIHRoZSBhbGVydG5hbWUgaXMgdGhlIHNhbWUuXG4gICAgICBlcXVhbDogWydhbGVydG5hbWUnLCAnbmFtZXNwYWNlJ11cblxuICBhbGVydG1hbmFnZXJTcGVjOlxuICAgIHJlcGxpY2FzOiAke2NvbmZpZy5yZXBsaWNhcy5hbGVydG1hbmFnZXJ9XG4gICAgcG9kQW50aUFmZmluaXR5OiBcInNvZnRcIiR7dGhpcy5nZW5lcmF0ZUFsZXJ0bWFuYWdlclNlY3JldHMoY29uZmlnKX1cbiAgICBzdG9yYWdlOlxuICAgICAgdm9sdW1lQ2xhaW1UZW1wbGF0ZTpcbiAgICAgICAgc3BlYzpcbiAgICAgICAgICBhY2Nlc3NNb2RlczogW1wiUmVhZFdyaXRlT25jZVwiXVxuICAgICAgICAgIHJlc291cmNlczpcbiAgICAgICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgICAgICBzdG9yYWdlOiAke2NvbmZpZy5zdG9yYWdlLmFsZXJ0bWFuYWdlcn1cbiAgICByZXNvdXJjZXM6XG4gICAgICBsaW1pdHM6XG4gICAgICAgIGNwdTogJHtjb25maWcucmVzb3VyY2VzLmFsZXJ0bWFuYWdlci5saW1pdHMuY3B1fVxuICAgICAgICBtZW1vcnk6ICR7Y29uZmlnLnJlc291cmNlcy5hbGVydG1hbmFnZXIubGltaXRzLm1lbW9yeX1cbiAgICAgIHJlcXVlc3RzOlxuICAgICAgICBjcHU6ICR7Y29uZmlnLnJlc291cmNlcy5hbGVydG1hbmFnZXIucmVxdWVzdHMuY3B1fVxuICAgICAgICBtZW1vcnk6ICR7Y29uZmlnLnJlc291cmNlcy5hbGVydG1hbmFnZXIucmVxdWVzdHMubWVtb3J5fVxuICAgIHByaW9yaXR5Q2xhc3NOYW1lOiBoaWdoLXByaW9yaXR5XG5cbiAgICAjIFNpZGVjYXIgY29udGFpbmVycyByZXNvdXJjZSByZXF1ZXN0cyAoYWRkZWQgMjAyNS0xMS0xOClcbiAgICBjb250YWluZXJzOlxuICAgIC0gbmFtZTogY29uZmlnLXJlbG9hZGVyXG4gICAgICByZXNvdXJjZXM6XG4gICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgIGNwdTogJHtjb25maWcucmVzb3VyY2VzLmNvbmZpZ1JlbG9hZGVyLnJlcXVlc3RzLmNwdX1cbiAgICAgICAgICBtZW1vcnk6ICR7Y29uZmlnLnJlc291cmNlcy5jb25maWdSZWxvYWRlci5yZXF1ZXN0cy5tZW1vcnl9XG4gICAgICAgIGxpbWl0czpcbiAgICAgICAgICBjcHU6ICR7Y29uZmlnLnJlc291cmNlcy5jb25maWdSZWxvYWRlci5saW1pdHMuY3B1fVxuICAgICAgICAgIG1lbW9yeTogJHtjb25maWcucmVzb3VyY2VzLmNvbmZpZ1JlbG9hZGVyLmxpbWl0cy5tZW1vcnl9XG5cblxucHJvbWV0aGV1czpcbiAgIyBFbmFibGUgVGhhbm9zIHNlcnZpY2UgZm9yIGdSUEMgY29tbXVuaWNhdGlvblxuICAjIFJlcXVpcmVkIGZvciBIZWxtIGNoYXJ0IHRvIHByb3Blcmx5IHJlbmRlciBUaGFub3Mgc2lkZWNhciBjb25maWd1cmF0aW9uXG4gIHRoYW5vc1NlcnZpY2U6XG4gICAgZW5hYmxlZDogdHJ1ZVxuXG4gIHByb21ldGhldXNTcGVjOlxuICAgIHJldGVudGlvbjogJHtjb25maWcucmV0ZW50aW9uLnByb21ldGhldXN9ICAjIFJlZHVjZWQgZnJvbSA3ZCAtIFRoYW5vcyBwcm92aWRlcyBsb25nLXRlcm0gc3RvcmFnZSBpbiBTM1xuXG4gICAgIyBEaXNjb3ZlciBBTEwgU2VydmljZU1vbml0b3JzLCBQb2RNb25pdG9ycyBhbmQgUHJvbWV0aGV1c1J1bGVzIGluIEFMTCBuYW1lc3BhY2VzXG4gICAgIyBTZXR0aW5nIE5pbFVzZXNIZWxtVmFsdWVzOiBmYWxzZSBtZWFucyBuaWwgc2VsZWN0b3JzID0gXCJzZWxlY3QgYWxsXCJcbiAgICAjIEVtcHR5IG5hbWVzcGFjZSBzZWxlY3RvcnMge30gbWVhbiBcInNlYXJjaCBhbGwgbmFtZXNwYWNlc1wiXG4gICAgIyBXaXRob3V0IHRoZSBydWxlKiBzZXR0aW5ncywgcnVsZVNlbGVjdG9yIGtlZXBzIHRoZSBjaGFydCBkZWZhdWx0XG4gICAgIyAobWF0Y2hMYWJlbHM6IHtyZWxlYXNlOiA8bmFtZT59KSBhbmQgaGFuZC1hdXRob3JlZCBQcm9tZXRoZXVzUnVsZXMgdGhhdFxuICAgICMgbGFjayB0aGUgcmVsZWFzZSBsYWJlbCBhcmUgc2lsZW50bHkgaWdub3JlZC5cbiAgICAjIE5vdGU6IFRoaXMgZG9lcyBOT1QgYWZmZWN0IFRoYW5vcyBzaWRlY2FyIC0gY29udHJvbGxlZCBieSB0aGFub3Mub2JqZWN0U3RvcmFnZUNvbmZpZ1xuICAgIHNlcnZpY2VNb25pdG9yU2VsZWN0b3JOaWxVc2VzSGVsbVZhbHVlczogZmFsc2VcbiAgICBwb2RNb25pdG9yU2VsZWN0b3JOaWxVc2VzSGVsbVZhbHVlczogZmFsc2VcbiAgICBydWxlU2VsZWN0b3JOaWxVc2VzSGVsbVZhbHVlczogZmFsc2VcbiAgICBzZXJ2aWNlTW9uaXRvck5hbWVzcGFjZVNlbGVjdG9yOiB7fVxuICAgIHBvZE1vbml0b3JOYW1lc3BhY2VTZWxlY3Rvcjoge31cbiAgICBydWxlTmFtZXNwYWNlU2VsZWN0b3I6IHt9XG5cbiAgICByZXBsaWNhczogJHtjb25maWcucmVwbGljYXMucHJvbWV0aGV1c31cbiAgICBwb2RBbnRpQWZmaW5pdHk6IFwiaGFyZFwiXG4gICAgc3RvcmFnZVNwZWM6XG4gICAgICB2b2x1bWVDbGFpbVRlbXBsYXRlOlxuICAgICAgICBzcGVjOlxuICAgICAgICAgIHN0b3JhZ2VDbGFzc05hbWU6IGxvbmdob3JuXG4gICAgICAgICAgYWNjZXNzTW9kZXM6IFtcIlJlYWRXcml0ZU9uY2VcIl1cbiAgICAgICAgICByZXNvdXJjZXM6XG4gICAgICAgICAgICByZXF1ZXN0czpcbiAgICAgICAgICAgICAgc3RvcmFnZTogJHtjb25maWcuc3RvcmFnZS5wcm9tZXRoZXVzfSAgIyBSZWR1Y2VkIGZyb20gNkdpICgzZCByZXRlbnRpb24gbmVlZHMgbGVzcyBzcGFjZSlcblxuICAgIHJlc291cmNlczpcbiAgICAgIGxpbWl0czpcbiAgICAgICAgY3B1OiAke2NvbmZpZy5yZXNvdXJjZXMucHJvbWV0aGV1cy5saW1pdHMuY3B1fVxuICAgICAgICBtZW1vcnk6ICR7Y29uZmlnLnJlc291cmNlcy5wcm9tZXRoZXVzLmxpbWl0cy5tZW1vcnl9XG4gICAgICByZXF1ZXN0czpcbiAgICAgICAgY3B1OiAke2NvbmZpZy5yZXNvdXJjZXMucHJvbWV0aGV1cy5yZXF1ZXN0cy5jcHV9XG4gICAgICAgIG1lbW9yeTogJHtjb25maWcucmVzb3VyY2VzLnByb21ldGhldXMucmVxdWVzdHMubWVtb3J5fVxuICAgIHByaW9yaXR5Q2xhc3NOYW1lOiBoaWdoLXByaW9yaXR5XG5cbiAgICAjIEV4dGVybmFsIGxhYmVscyBmb3IgbXVsdGktY2x1c3RlciBpZGVudGlmaWNhdGlvbiBhbmQgVGhhbm9zXG4gICAgZXh0ZXJuYWxMYWJlbHM6XG4gICAgICBjbHVzdGVyOiAke2NvbmZpZy5jbHVzdGVyTmFtZX1cbiAgICAgIHJlcGxpY2E6IFwiJChQT0RfTkFNRSlcIlxuICAgICMgVGhhbm9zIG5lZWRzIHRoZSByZXBsaWNhIGxhYmVsIG9uIG1ldHJpY3MsIGJ1dCBvbiBhbGVydHMgaXQgbWFrZXMgdGhlIHR3b1xuICAgICMgUHJvbWV0aGV1cyByZXBsaWNhcyBsb29rIGxpa2UgdHdvIGRpZmZlcmVudCBhbGVydHMsIHNvIGV2ZXJ5IG1haWwgbGlzdHNcbiAgICAjIGVhY2ggb25lIHR3aWNlLiBUaGUgb3BlcmF0b3IgZHJvcHMgaXRzIG93biBwcm9tZXRoZXVzX3JlcGxpY2EgdGhlIHNhbWUgd2F5LlxuICAgIGFkZGl0aW9uYWxBbGVydFJlbGFiZWxDb25maWdzOlxuICAgICAgLSBhY3Rpb246IGxhYmVsZHJvcFxuICAgICAgICByZWdleDogcmVwbGljYVxuXG4gICAgIyBUaGFub3Mgc2lkZWNhciBmb3IgbG9uZy10ZXJtIG1ldHJpY3Mgc3RvcmFnZSBpbiBTM1xuICAgICMgTk9URTogY2hhcnQgPj04NS54IHJlcXVpcmVzIHRoZSBleGlzdGluZ1NlY3JldCBzaGFwZS4gVGhlIGxlZ2FjeSBmbGF0XG4gICAgIyB7bmFtZSwga2V5fSBmb3JtIGlzIHNpbGVudGx5IGRyb3BwZWQgYnkgdGhlIGNoYXJ0LCB3aGljaCByZW1vdmVzIHRoZVxuICAgICMgc2lkZWNhciBhbmQgc3RvcHMgYWxsIFMzIGJsb2NrIHVwbG9hZHMgKHJlZ3Jlc3Npb24gc2VlbiAyMDI2LTAzLTMxKS5cbiAgICB0aGFub3M6XG4gICAgICBvYmplY3RTdG9yYWdlQ29uZmlnOlxuICAgICAgICBleGlzdGluZ1NlY3JldDpcbiAgICAgICAgICBuYW1lOiB0aGFub3Mtb2Jqc3RvcmUtY29uZmlnICAjIEVTTy1tYW5hZ2VkIHNlY3JldFxuICAgICAgICAgIGtleTogb2Jqc3RvcmUueW1sXG5cbiAgICAjIFNpZGVjYXIgY29udGFpbmVycyByZXNvdXJjZSByZXF1ZXN0cyAoYWRkZWQgMjAyNS0xMS0xOClcbiAgICAjIE5PVEU6IHRoYW5vcy1zaWRlY2FyIGlzIE5PVCBsaXN0ZWQgaGVyZSAtIGl0J3MgYXV0b21hdGljYWxseSBpbmplY3RlZCBieSBQcm9tZXRoZXVzIE9wZXJhdG9yXG4gICAgIyB3aGVuIHRoYW5vcy5vYmplY3RTdG9yYWdlQ29uZmlnIGlzIHNldC4gU3BlY2lmeWluZyBpdCBpbiBjb250YWluZXJzW10gd291bGQgb3ZlcnJpZGVcbiAgICAjIHRoZSBvcGVyYXRvcidzIGRlZmluaXRpb24gYW5kIHJlcXVpcmUgdXMgdG8gbWFudWFsbHkgc3BlY2lmeSB0aGUgaW1hZ2UsIHdoaWNoIGJyZWFrc1xuICAgICMgd2hlbiB0aGUgb3BlcmF0b3IgdXBkYXRlcyB0aGUgdGhhbm9zIHZlcnNpb24uXG4gICAgY29udGFpbmVyczpcbiAgICAtIG5hbWU6IGNvbmZpZy1yZWxvYWRlclxuICAgICAgcmVzb3VyY2VzOlxuICAgICAgICByZXF1ZXN0czpcbiAgICAgICAgICBjcHU6ICR7Y29uZmlnLnJlc291cmNlcy5jb25maWdSZWxvYWRlci5yZXF1ZXN0cy5jcHV9XG4gICAgICAgICAgbWVtb3J5OiAke2NvbmZpZy5yZXNvdXJjZXMuY29uZmlnUmVsb2FkZXIucmVxdWVzdHMubWVtb3J5fVxuICAgICAgICBsaW1pdHM6XG4gICAgICAgICAgY3B1OiAke2NvbmZpZy5yZXNvdXJjZXMuY29uZmlnUmVsb2FkZXIubGltaXRzLmNwdX1cbiAgICAgICAgICBtZW1vcnk6ICR7Y29uZmlnLnJlc291cmNlcy5jb25maWdSZWxvYWRlci5saW1pdHMubWVtb3J5fVxuXG4gICAgc2VydmljZTpcbiAgICAgIHNlc3Npb25BZmZpbml0eTogXCJDbGllbnRJUFwiXG5cblxuZ3JhZmFuYTpcbiAgIyBSZWNyZWF0ZSBzdHJhdGVneSBpcyByZXF1aXJlZCBiZWNhdXNlIHRoZSBzdG9yYWdlIFBWQyBpcyBSV086XG4gICMgYSBSb2xsaW5nVXBkYXRlIHdvdWxkIHN1cmdlIGEgc2Vjb25kIHBvZCB0aGF0IGNhbm5vdCBtb3VudCB0aGVcbiAgIyB2b2x1bWUgKEZhaWxlZEF0dGFjaFZvbHVtZSksIGJsb2NraW5nIHRoZSByb2xsb3V0IGluZGVmaW5pdGVseS5cbiAgZGVwbG95bWVudFN0cmF0ZWd5OlxuICAgIHR5cGU6IFJlY3JlYXRlXG5cbiAgIyBVc2UgZXhpc3Rpbmcgc2VjcmV0IGZvciBhZG1pbiBjcmVkZW50aWFscyAobWFuYWdlZCBieSBFU08pXG4gICMgVGhpcyBwcmV2ZW50cyBwYXNzd29yZCByZWdlbmVyYXRpb24gb24gSGVsbSB1cGdyYWRlc1xuICBhZG1pbjpcbiAgICBleGlzdGluZ1NlY3JldDogXCJncmFmYW5hLWFkbWluLWNyZWRlbnRpYWxzXCJcbiAgICB1c2VyS2V5OiBcImFkbWluLXVzZXJcIlxuICAgIHBhc3N3b3JkS2V5OiBcImFkbWluLXBhc3N3b3JkXCJcblxuICAjIEdyYWZhbmEgcnVucyBodHRwIG9uIDozMDAwIGJlaGluZCB0aGUgVExTLXRlcm1pbmF0aW5nIGluZ3Jlc3MuIFdpdGhvdXQgYW5cbiAgIyBleHBsaWNpdCByb290X3VybCBpdCBidWlsZHMgc2hhcmUgYW5kIHB1YmxpYy1kYXNoYm9hcmQgbGlua3MgZnJvbSB0aGUgaW50ZXJuYWxcbiAgIyBhZGRyZXNzIChodHRwOi8vPHBvZD46MzAwMCk7IGRlcml2ZSB0aGUgZXh0ZXJuYWwgVVJMIGZyb20gdGhlIGNvbmZpZ3VyZWQgZG9tYWluLlxuICBncmFmYW5hLmluaTpcbiAgICBzZXJ2ZXI6XG4gICAgICBkb21haW46ICR7Y29uZmlnLmRvbWFpbnMuZ3JhZmFuYX1cbiAgICAgIHJvb3RfdXJsOiBodHRwczovLyR7Y29uZmlnLmRvbWFpbnMuZ3JhZmFuYX0ke3RoaXMuZ2VuZXJhdGVHcmFmYW5hU2VjdXJpdHkoY29uZmlnKX1cblxuICAjIERpc2FibGUgZGVmYXVsdCBQcm9tZXRoZXVzIGRhdGFzb3VyY2UgKHdlIHByb3ZpZGUgb3VyIG93biBwb2ludGluZyB0byBUaGFub3MgUXVlcnkpXG4gIGRlZmF1bHREYXRhc291cmNlRW5hYmxlZDogZmFsc2VcblxuICAjIFNpZGVjYXIgY29udGFpbmVycyBmb3IgZGFzaGJvYXJkL2RhdGFzb3VyY2UgcHJvdmlzaW9uaW5nXG4gIHNpZGVjYXI6XG4gICAgcmVzb3VyY2VzOlxuICAgICAgcmVxdWVzdHM6XG4gICAgICAgIGNwdTogMTBtXG4gICAgICAgIG1lbW9yeTogMjU2TWlcbiAgICAgIGxpbWl0czpcbiAgICAgICAgY3B1OiAxMDBtXG4gICAgICAgIG1lbW9yeTogNTEyTWlcbiAgICBkYXNoYm9hcmRzOlxuICAgICAgZW5hYmxlZDogdHJ1ZVxuICAgICAgIyBEYXNoYm9hcmQgQ29uZmlnTWFwcyBtYXkgb3B0IGludG8gYSBuYW1lZCBHcmFmYW5hIGZvbGRlciB2aWEgdGhpc1xuICAgICAgIyBhbm5vdGF0aW9uOyBDb25maWdNYXBzIHdpdGhvdXQgaXQga2VlcCBsYW5kaW5nIGluIEdlbmVyYWwuXG4gICAgICBmb2xkZXJBbm5vdGF0aW9uOiBncmFmYW5hX2ZvbGRlclxuICAgICAgcHJvdmlkZXI6XG4gICAgICAgIGZvbGRlcnNGcm9tRmlsZXNTdHJ1Y3R1cmU6IHRydWVcbiAgICBkYXRhc291cmNlczpcbiAgICAgIGVuYWJsZWQ6IGZhbHNlICAjIFdlIG1hbnVhbGx5IHByb3Zpc2lvbiBkYXRhc291cmNlcyAoUHJvbWV0aGV1c+KGklRoYW5vcywgTG9raSlcblxuICBpbmdyZXNzOlxuICAgIGVuYWJsZWQ6IHRydWUke2NvbmZpZy5kb21haW5zLmluZ3Jlc3NDbGFzc05hbWUgPyBgXFxuICAgIGluZ3Jlc3NDbGFzc05hbWU6ICR7Y29uZmlnLmRvbWFpbnMuaW5ncmVzc0NsYXNzTmFtZX1gIDogJyd9XG4gICAgaG9zdHM6XG4gICAgICAtICR7Y29uZmlnLmRvbWFpbnMuZ3JhZmFuYX1cbiAgICBhbm5vdGF0aW9uczpcbiAgICAgIGNlcnQtbWFuYWdlci5pby9jbHVzdGVyLWlzc3VlcjogXCJsZXRzZW5jcnlwdC1jbHVzdGVyLWlzc3VlclwiXG4gICAgICB0cmFlZmlrLmluZ3Jlc3Mua3ViZXJuZXRlcy5pby9yb3V0ZXIuZW50cnlwb2ludHM6IHdlYnNlY3VyZVxuICAgIHRsczpcbiAgICAgIC0gc2VjcmV0TmFtZTogZ3JhZmFuYS1nZW5lcmFsLXRsc1xuICAgICAgICBob3N0czpcbiAgICAgICAgLSAke2NvbmZpZy5kb21haW5zLmdyYWZhbmF9XG5cbiAgcmVzb3VyY2VzOlxuICAgIGxpbWl0czpcbiAgICAgIGNwdTogJHtjb25maWcucmVzb3VyY2VzLmdyYWZhbmEubGltaXRzLmNwdX1cbiAgICAgIG1lbW9yeTogJHtjb25maWcucmVzb3VyY2VzLmdyYWZhbmEubGltaXRzLm1lbW9yeX1cbiAgICByZXF1ZXN0czpcbiAgICAgIGNwdTogJHtjb25maWcucmVzb3VyY2VzLmdyYWZhbmEucmVxdWVzdHMuY3B1fVxuICAgICAgbWVtb3J5OiAke2NvbmZpZy5yZXNvdXJjZXMuZ3JhZmFuYS5yZXF1ZXN0cy5tZW1vcnl9XG5cbiAgcmVhZGluZXNzUHJvYmU6XG4gICAgaHR0cEdldDpcbiAgICAgIHBhdGg6IC9hcGkvaGVhbHRoXG4gICAgICBwb3J0OiAzMDAwXG4gICAgaW5pdGlhbERlbGF5U2Vjb25kczogMzBcbiAgICBwZXJpb2RTZWNvbmRzOiAxMFxuICAgIHRpbWVvdXRTZWNvbmRzOiA1XG4gICAgZmFpbHVyZVRocmVzaG9sZDogM1xuXG4gIGxpdmVuZXNzUHJvYmU6XG4gICAgaHR0cEdldDpcbiAgICAgIHBhdGg6IC9hcGkvaGVhbHRoXG4gICAgICBwb3J0OiAzMDAwXG4gICAgaW5pdGlhbERlbGF5U2Vjb25kczogNjBcbiAgICBwZXJpb2RTZWNvbmRzOiAxMFxuICAgIHRpbWVvdXRTZWNvbmRzOiAzMFxuICAgIGZhaWx1cmVUaHJlc2hvbGQ6IDEwXG5cbiAgcGVyc2lzdGVuY2U6XG4gICAgZW5hYmxlZDogdHJ1ZVxuICAgIHN0b3JhZ2VDbGFzc05hbWU6IGxvbmdob3JuXG4gICAgYWNjZXNzTW9kZXM6XG4gICAgICAtIFJlYWRXcml0ZU9uY2VcbiAgICBzaXplOiAke2NvbmZpZy5zdG9yYWdlLmdyYWZhbmF9XG5cbiAgIyBNYW51YWwgZGF0YXNvdXJjZSBwcm92aXNpb25pbmcgKHNpZGVjYXIgZGlzYWJsZWQpXG4gICMgVGhhbm9zIFF1ZXJ5IOKGkiBsb25nLXRlcm0vaGlzdG9yaWNhbCBtZXRyaWNzIChTMyB2aWEgU3RvcmUgKyBsaXZlIHNpZGVjYXIpLCBkZWZhdWx0XG4gICMgUHJvbWV0aGV1cyDihpIgbG9jYWwsIHJlY2VudC9oaWdoLXJlcyBvbmx5IChrZXB0IGZvciBsb3ctbGF0ZW5jeSByZWNlbnQgcXVlcmllcylcbiAgIyBMb2tpIGZvciBsb2cgYWdncmVnYXRpb25cbiAgZGF0YXNvdXJjZXM6XG4gICAgZGF0YXNvdXJjZXMueWFtbDpcbiAgICAgIGFwaVZlcnNpb246IDFcbiAgICAgICMgRGVsZXRlIGFueSBwcmUtZXhpc3RpbmcgTG9raSBkYXRhc291cmNlIChlLmcuIG9uZSBjcmVhdGVkIHdpdGggYVxuICAgICAgIyByYW5kb21seSBnZW5lcmF0ZWQgVUlEIGJlZm9yZSB3ZSBwaW5uZWQgdWlkOiBsb2tpKS4gV2l0aG91dCB0aGlzLFxuICAgICAgIyBHcmFmYW5hIGZhaWxzIHByb3Zpc2lvbmluZyB3aXRoIFwiZGF0YSBzb3VyY2Ugbm90IGZvdW5kXCIgYmVjYXVzZVxuICAgICAgIyB0aGUgdXBzZXJ0IGNvbGxpZGVzIHdpdGggdGhlIGV4aXN0aW5nIGVudHJ5LlxuICAgICAgZGVsZXRlRGF0YXNvdXJjZXM6XG4gICAgICAtIG5hbWU6IExva2lcbiAgICAgICAgb3JnSWQ6IDFcbiAgICAgIGRhdGFzb3VyY2VzOlxuICAgICAgLSBuYW1lOiBUaGFub3NcbiAgICAgICAgdHlwZTogcHJvbWV0aGV1c1xuICAgICAgICB1aWQ6IHRoYW5vc1xuICAgICAgICBhY2Nlc3M6IHByb3h5XG4gICAgICAgICMgdGhhbm9zLXF1ZXJ5IFNlcnZpY2U6IGh0dHAgcG9ydCA5MDkwIC0+IGNvbnRhaW5lciBodHRwIDEwOTAyXG4gICAgICAgIHVybDogaHR0cDovL3RoYW5vcy1xdWVyeS4ke2NvbmZpZy5uYW1lc3BhY2V9LnN2Yy5jbHVzdGVyLmxvY2FsOjkwOTBcbiAgICAgICAgaXNEZWZhdWx0OiB0cnVlXG4gICAgICAgIGpzb25EYXRhOlxuICAgICAgICAgIHRpbWVJbnRlcnZhbDogMzBzXG4gICAgICAtIG5hbWU6IFByb21ldGhldXNcbiAgICAgICAgdHlwZTogcHJvbWV0aGV1c1xuICAgICAgICB1aWQ6IHByb21ldGhldXNcbiAgICAgICAgYWNjZXNzOiBwcm94eVxuICAgICAgICB1cmw6IGh0dHA6Ly9rdWJlLXByb21ldGhldXMtc3RhY2stcHJvbWV0aGV1cy4ke2NvbmZpZy5uYW1lc3BhY2V9LnN2Yy5jbHVzdGVyLmxvY2FsOjkwOTBcbiAgICAgICAgaXNEZWZhdWx0OiBmYWxzZVxuICAgICAgICBqc29uRGF0YTpcbiAgICAgICAgICB0aW1lSW50ZXJ2YWw6IDMwc1xuICAgICAgLSBuYW1lOiBMb2tpXG4gICAgICAgIHR5cGU6IGxva2lcbiAgICAgICAgdWlkOiBsb2tpXG4gICAgICAgIGFjY2VzczogcHJveHlcbiAgICAgICAgdXJsOiBodHRwOi8vbG9raS1nYXRld2F5LiR7Y29uZmlnLm5hbWVzcGFjZX0uc3ZjLmNsdXN0ZXIubG9jYWxcbiAgICAgICAganNvbkRhdGE6XG4gICAgICAgICAgbWF4TGluZXM6IDEwMDAke3RlbXBvRGF0YXNvdXJjZX1cblxucHJvbWV0aGV1c09wZXJhdG9yOlxuICByZXNvdXJjZXM6XG4gICAgbGltaXRzOlxuICAgICAgY3B1OiAxXG4gICAgICBtZW1vcnk6IDUxMk1pXG4gICAgcmVxdWVzdHM6XG4gICAgICBjcHU6IDUwbVxuICAgICAgbWVtb3J5OiAxMjhNaVxuICBwcmlvcml0eUNsYXNzTmFtZTogaGlnaC1wcmlvcml0eVxuXG5wcm9tZXRoZXVzLW5vZGUtZXhwb3J0ZXI6XG4gICMgQmluZCA6OTEwMCB0byB0aGUgbm9kZSBJbnRlcm5hbElQIG9ubHksIG5vdCAwLjAuMC4wLiBXaXRoIGt1YmVSQkFDUHJveHlcbiAgIyBkaXNhYmxlZCB0aGUgc3ViLWNoYXJ0IHNldHMgSE9TVF9JUCBmcm9tIGZpZWxkUmVmIHN0YXR1cy5ob3N0SVAsIHdoaWNoIGlzXG4gICMgdGhlIG5vZGUncyBJbnRlcm5hbElQIChFWDogdlN3aXRjaCAxMC42LjAueCB2aWEgLS1ub2RlLWlwOyBjbG91ZDogaGNsb3VkXG4gICMgcHJpdmF0ZSBJUCkuIG5vZGUtZXhwb3J0ZXIgaXMgaG9zdE5ldHdvcmssIHNvIFByb21ldGhldXMgYWxyZWFkeSBzY3JhcGVzXG4gICMgdGhhdCBJbnRlcm5hbElQIGVuZHBvaW50IC0+IHNjcmFwaW5nIGlzIHVuYWZmZWN0ZWQsIG9ubHkgdGhlIHB1YmxpYy1OSUNcbiAgIyBleHBvc3VyZSBvZiB0aGUgdW5hdXRoZW50aWNhdGVkIG1ldHJpY3Mgb24gdGhlIEVYIHB1YmxpYyBJUHMgZ29lcyBhd2F5LlxuICBzZXJ2aWNlOlxuICAgIGxpc3Rlbk9uQWxsSW50ZXJmYWNlczogZmFsc2VcbiAgcmVzb3VyY2VzOlxuICAgIGxpbWl0czpcbiAgICAgIGNwdTogNTBtXG4gICAgICBtZW1vcnk6IDUwTWlcbiAgICByZXF1ZXN0czpcbiAgICAgIGNwdTogNW1cbiAgICAgIG1lbW9yeTogMTZNaVxuICBwcmlvcml0eUNsYXNzTmFtZTogaGlnaC1wcmlvcml0eVxuXG5rdWJlLXN0YXRlLW1ldHJpY3M6XG4gIHJlc291cmNlczpcbiAgICBsaW1pdHM6XG4gICAgICBjcHU6IDFcbiAgICAgIG1lbW9yeTogNTEyTWlcbiAgICByZXF1ZXN0czpcbiAgICAgIGNwdTogNW1cbiAgICAgIG1lbW9yeTogMTI4TWlcbiAgcHJpb3JpdHlDbGFzc05hbWU6IGhpZ2gtcHJpb3JpdHlcbmA7XG4gIH1cbn1cbiJdfQ==
639
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbWV0aGV1cy1zdGFjay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25zdHJ1Y3RzL3Byb21ldGhldXMtc3RhY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaUNBQWtDO0FBQ2xDLDJDQUF1QztBQUV2Qyw2Q0FBeUQ7QUFPekQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQkc7QUFDSCxNQUFhLHdCQUF5QixTQUFRLHNCQUFTO0lBQ3JELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBMkI7UUFDbkUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQztRQUVwQyw0QkFBNEI7UUFDNUIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRW5ELGtEQUFrRDtRQUNsRCwyQ0FBMkM7UUFDM0MsSUFBSSxpQkFBUyxDQUFDLElBQUksRUFBRSx1QkFBdUIsRUFBRTtZQUMzQyxVQUFVLEVBQUUsbUJBQW1CO1lBQy9CLElBQUksRUFBRSxXQUFXO1lBQ2pCLFFBQVEsRUFBRTtnQkFDUixJQUFJLEVBQUUsdUJBQXVCO2dCQUM3QixTQUFTLEVBQUUsU0FBUztnQkFDcEIsTUFBTSxFQUFFO29CQUNOLHdCQUF3QixFQUFFLHVCQUF1QjtvQkFDakQsNkJBQTZCLEVBQUUsWUFBWTtvQkFDM0MsOEJBQThCLEVBQUUsT0FBTztvQkFDdkMsMkJBQTJCLEVBQUUsWUFBWTtpQkFDMUM7Z0JBQ0QsV0FBVyxFQUFFO29CQUNYLDhCQUE4QixFQUFFLEdBQUc7aUJBQ3BDO2FBQ0Y7WUFDRCxJQUFJLEVBQUU7Z0JBQ0osSUFBSSxFQUFFLG9EQUFvRDtnQkFDMUQsS0FBSyxFQUFFLHVCQUF1QjtnQkFDOUIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsZUFBZSxLQUFLLFFBQVEsQ0FB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QUMsT0FBTyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7bUJBeUJwRSxNQUFNLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQywyQkFBMkIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFOztVQUU1RyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU87Ozs7Ozs7WUFPcEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPOzs7O2FBSXJCLE1BQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHO2dCQUNoQyxNQUFNLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTTs7YUFFekMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUc7Z0JBQ2xDLE1BQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1lBeUI1QyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU87Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7bUNBc0JDLE1BQU0sQ0FBQyxTQUFTOzs7Ozs7Ozt1REFRSSxNQUFNLENBQUMsU0FBUzs7Ozs7Ozs7bUNBUXBDLE1BQU0sQ0FBQyxTQUFTOzswQkFFekIsZUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBdUN4QyxDQUFDO0lBQ0EsQ0FBQztDQUNGO0FBdm1CRCw0REF1bUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBpT2JqZWN0IH0gZnJvbSAnY2RrOHMnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBNb25pdG9yaW5nQ29uZmlnIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgSEVMTV9DSEFSVF9GQUlMVVJFX1BPTElDWSB9IGZyb20gJy4vaGVsbS1jaGFydCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvbWV0aGV1c1N0YWNrUHJvcHMge1xuICBuYW1lc3BhY2U6IHN0cmluZztcbiAgY29uZmlnOiBNb25pdG9yaW5nQ29uZmlnO1xufVxuXG4vKipcbiAqIENyZWF0ZXMga3ViZS1wcm9tZXRoZXVzLXN0YWNrIEhlbG1DaGFydCB3aXRoIFByb21ldGhldXMsIEdyYWZhbmEsIGFuZCBBbGVydG1hbmFnZXIuXG4gKlxuICogVGhpcyBpcyB0aGUgY29yZSBtb25pdG9yaW5nIHN0YWNrIHRoYXQgaW5jbHVkZXM6XG4gKiAtIFByb21ldGhldXMgKG1ldHJpY3MgY29sbGVjdGlvbiwgMiByZXBsaWNhcywgM2QgcmV0ZW50aW9uKVxuICogLSBHcmFmYW5hICh2aXN1YWxpemF0aW9uLCBpbmdyZXNzIHdpdGggTGV0J3MgRW5jcnlwdClcbiAqIC0gQWxlcnRtYW5hZ2VyIChhbGVydCByb3V0aW5nLCBTTVRQIG5vdGlmaWNhdGlvbnMpXG4gKiAtIFByb21ldGhldXMgT3BlcmF0b3IgKG1hbmFnZXMgUHJvbWV0aGV1cyBDUkRzKVxuICogLSBOb2RlIEV4cG9ydGVyIChzeXN0ZW0gbWV0cmljcyBEYWVtb25TZXQpXG4gKiAtIGt1YmUtc3RhdGUtbWV0cmljcyAoS3ViZXJuZXRlcyByZXNvdXJjZSBtZXRyaWNzKVxuICpcbiAqIFByZXJlcXVpc2l0ZXM6XG4gKiAtIE5hbWVzcGFjZSBleGlzdHNcbiAqIC0gUHJpb3JpdHlDbGFzcyAnaGlnaC1wcmlvcml0eScgZXhpc3RzXG4gKiAtIExvbmdob3JuIHN0b3JhZ2UgY2xhc3MgYXZhaWxhYmxlXG4gKiAtIGNlcnQtbWFuYWdlciBDbHVzdGVySXNzdWVyIGNvbmZpZ3VyZWRcbiAqIC0gVGhhbm9zIFMzIHNlY3JldCBleGlzdHMgKHRoYW5vcy1vYmpzdG9yZS1jb25maWcpXG4gKlxuICogU3luYyBXYXZlOiAyIChjb3JlIHNlcnZpY2VzIC0gYWZ0ZXIgUzMgYnVja2V0cyBhbmQgc2VjcmV0cylcbiAqL1xuZXhwb3J0IGNsYXNzIFByb21ldGhldXNTdGFja0NvbnN0cnVjdCBleHRlbmRzIENvbnN0cnVjdCB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBQcm9tZXRoZXVzU3RhY2tQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCB7IG5hbWVzcGFjZSwgY29uZmlnIH0gPSBwcm9wcztcblxuICAgIC8vIEdlbmVyYXRlIEhlbG0gdmFsdWVzIFlBTUxcbiAgICBjb25zdCBoZWxtVmFsdWVzID0gdGhpcy5nZW5lcmF0ZUhlbG1WYWx1ZXMoY29uZmlnKTtcblxuICAgIC8vIENyZWF0ZSBIZWxtQ2hhcnQgcmVzb3VyY2UgKEszUyBIZWxtIGNvbnRyb2xsZXIpXG4gICAgLy8gV2F2ZSAyOiBDb3JlIFNlcnZpY2VzIC0gbW9uaXRvcmluZyBzdGFja1xuICAgIG5ldyBBcGlPYmplY3QodGhpcywgJ2t1YmUtcHJvbWV0aGV1cy1zdGFjaycsIHtcbiAgICAgIGFwaVZlcnNpb246ICdoZWxtLmNhdHRsZS5pby92MScsXG4gICAgICBraW5kOiAnSGVsbUNoYXJ0JyxcbiAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgIG5hbWU6ICdrdWJlLXByb21ldGhldXMtc3RhY2snLFxuICAgICAgICBuYW1lc3BhY2U6IG5hbWVzcGFjZSxcbiAgICAgICAgbGFiZWxzOiB7XG4gICAgICAgICAgJ2FwcC5rdWJlcm5ldGVzLmlvL25hbWUnOiAna3ViZS1wcm9tZXRoZXVzLXN0YWNrJyxcbiAgICAgICAgICAnYXBwLmt1YmVybmV0ZXMuaW8vY29tcG9uZW50JzogJ21vbml0b3JpbmcnLFxuICAgICAgICAgICdhcHAua3ViZXJuZXRlcy5pby9tYW5hZ2VkLWJ5JzogJ2NkazhzJyxcbiAgICAgICAgICAnYXBwLmt1YmVybmV0ZXMuaW8vcGFydC1vZic6ICdtb25pdG9yaW5nJyxcbiAgICAgICAgfSxcbiAgICAgICAgYW5ub3RhdGlvbnM6IHtcbiAgICAgICAgICAnYXJnb2NkLmFyZ29wcm9qLmlvL3N5bmMtd2F2ZSc6ICcyJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBzcGVjOiB7XG4gICAgICAgIHJlcG86ICdodHRwczovL3Byb21ldGhldXMtY29tbXVuaXR5LmdpdGh1Yi5pby9oZWxtLWNoYXJ0cycsXG4gICAgICAgIGNoYXJ0OiAna3ViZS1wcm9tZXRoZXVzLXN0YWNrJyxcbiAgICAgICAgdmVyc2lvbjogY29uZmlnLnZlcnNpb25zLnByb21ldGhldXNTdGFjayA9PT0gJ2xhdGVzdCcgPyB1bmRlZmluZWQgOiBjb25maWcudmVyc2lvbnMucHJvbWV0aGV1c1N0YWNrLFxuICAgICAgICB0YXJnZXROYW1lc3BhY2U6IG5hbWVzcGFjZSxcbiAgICAgICAgZmFpbHVyZVBvbGljeTogSEVMTV9DSEFSVF9GQUlMVVJFX1BPTElDWSxcbiAgICAgICAgdmFsdWVzQ29udGVudDogaGVsbVZhbHVlcyxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogYFtzZWN1cml0eV1gIHNlY3Rpb24gb2YgZ3JhZmFuYS5pbmksIGVtcHR5IHVubGVzcyBlbWJlZGRpbmcgaXMgZW5hYmxlZC5cbiAgICpcbiAgICogR3JhZmFuYSBzZW5kcyBgWC1GcmFtZS1PcHRpb25zOiBkZW55YCB1bmxlc3MgYGFsbG93X2VtYmVkZGluZ2AgaXMgc2V0LCB3aGljaFxuICAgKiBibG9ja3MgZXh0ZXJuYWxseSBzaGFyZWQgKFwicHVibGljXCIpIGRhc2hib2FyZHMgaW4gYW4gaWZyYW1lIGp1c3QgYXMgbXVjaCBhc1xuICAgKiB0aGUgYXV0aGVudGljYXRlZCBVSS4gRHJvcHBpbmcgdGhhdCBoZWFkZXIgYWxvbmUgd291bGQgbGV0IGFueSBzaXRlIGZyYW1lXG4gICAqIEdyYWZhbmEsIHNvIGl0IGlzIHBhaXJlZCB3aXRoIGEgQ29udGVudC1TZWN1cml0eS1Qb2xpY3kgd2hvc2VcbiAgICogYGZyYW1lLWFuY2VzdG9yc2AgbmFtZXMgdGhlIGFsbG93ZWQgb3JpZ2lucyDigJQgYnJvd3NlcnMgaG9ub3VyIGl0IGluIHBsYWNlIG9mXG4gICAqIHRoZSByZW1vdmVkIGhlYWRlci5cbiAgICpcbiAgICogVGhlIG90aGVyIGRpcmVjdGl2ZXMgYXJlIEdyYWZhbmEncyBvd24gZGVmYXVsdCB0ZW1wbGF0ZSB2ZXJiYXRpbTsgYCROT05DRWBcbiAgICogYW5kIGAkUk9PVF9QQVRIYCBhcmUgZXhwYW5kZWQgYnkgR3JhZmFuYSBwZXIgcmVxdWVzdC4gT25seVxuICAgKiBgJEZPUk1fQUNUSU9OX0FERElUSU9OQUxfSE9TVFNgIGlzIGRyb3BwZWQ6IGl0IGV4aXN0cyBhcyBhIHBsYWNlaG9sZGVyIGp1c3RcbiAgICogaW4gcmVjZW50IEdyYWZhbmFzLCBhbmQgb2xkZXIgb25lcyB3b3VsZCBlbWl0IGl0IGxpdGVyYWxseSBpbnRvIHRoZSBoZWFkZXIuXG4gICAqXG4gICAqIFRoZSBwb2xpY3kgaXMgd3JhcHBlZCBpbiBgXCJcIlwiYCwgZXhhY3RseSBhcyBHcmFmYW5hJ3Mgb3duIGRlZmF1bHRzLmluaSBkb2VzLlxuICAgKiBncmFmYW5hLmluaSBpcyBwYXJzZWQgYnkgZ28taW5pLCB3aGljaCB0cmVhdHMgYDtgIGFzIGFuIGlubGluZSBjb21tZW50IOKAlCBhblxuICAgKiB1bnF1b3RlZCBwb2xpY3kgaXMgc2lsZW50bHkgdHJ1bmNhdGVkIGF0IGl0cyBmaXJzdCBkaXJlY3RpdmUgc2VwYXJhdG9yLCBhbmRcbiAgICogdGhlIGJyb3dzZXIgdGhlbiByZWNlaXZlcyBhIENTUCB3aXRob3V0IGBmcmFtZS1hbmNlc3RvcnNgIHdoaWxlXG4gICAqIGBYLUZyYW1lLU9wdGlvbnNgIGlzIGFscmVhZHkgZ29uZS4gQSBZQU1MIGJsb2NrIHNjYWxhciBjYXJyaWVzIHRoZSBxdW90ZXNcbiAgICogdGhyb3VnaCB1bnRvdWNoZWQ7IGEgcGxhaW4gcXVvdGVkIHNjYWxhciB3b3VsZCBmaWdodCBvdmVyIHRoZSBzYW1lXG4gICAqIGNoYXJhY3Rlci5cbiAgICovXG4gIC8qKlxuICAgKiBFeHRyYSBBbGVydG1hbmFnZXIgcm91dGUgZGVtb3Rpbmcgc3RhZ2luZy1uYW1lc3BhY2UgYWxlcnRzLCBlbXB0eSB1bmxlc3NcbiAgICogc3RhZ2luZ0FsZXJ0cyBpcyBlbmFibGVkLiBQbGFjZWQgYWZ0ZXIgdGhlIG5vaXNlLWRyb3Agcm91dGVzICh0aG9zZSBhcHBseVxuICAgKiB0byBzdGFnaW5nIGp1c3QgYXMgbXVjaCkgYW5kIGJlZm9yZSB0aGUgZGVmYXVsdCBwcm9kdWN0aW9uIHJlY2VpdmVyLlxuICAgKi9cbiAgcHJpdmF0ZSBnZW5lcmF0ZVN0YWdpbmdSb3V0ZShjb25maWc6IE1vbml0b3JpbmdDb25maWcpOiBzdHJpbmcge1xuICAgIGlmICghY29uZmlnLnN0YWdpbmdBbGVydHMuZW5hYmxlZCkgcmV0dXJuICcnO1xuICAgIHJldHVybiBgXG4gICAgICAtIG1hdGNoX3JlOlxuICAgICAgICAgIG5hbWVzcGFjZTogXigke2NvbmZpZy5zdGFnaW5nQWxlcnRzLm5hbWVzcGFjZXMuam9pbignfCcpfSkkXG4gICAgICAgIHJlY2VpdmVyOiBzdGFnaW5nYDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgYHN0YWdpbmdgIGVtYWlsIHJlY2VpdmVyLCBlbXB0eSB1bmxlc3Mgc3RhZ2luZ0FsZXJ0cyBpcyBlbmFibGVkLiBTYW1lXG4gICAqIG1haWxib3ggYXMgdGhlIHByb2R1Y3Rpb24gcmVjZWl2ZXIsIGJ1dCB0aGUgc3ViamVjdCBwcmVmaXggbWFya3MgdGhlIG1haWxcbiAgICogYXMgbm9uLXByb2R1Y3Rpb24gYW5kIGtlZXBzIGl0IGZpbHRlcmFibGUuXG4gICAqL1xuICAvKipcbiAgICogQWxlcnRtYW5hZ2VyIHJlYWRzIHRoZSBwYXNzd29yZCBmcm9tIHRoZSBmaWxlIHdoZW4gYSBzZWNyZXQgaXMgY29uZmlndXJlZCxcbiAgICogd2hpY2gga2VlcHMgaXQgb3V0IG9mIHRoZSBzeW50aGVzaXplZCBtYW5pZmVzdHMuXG4gICAqL1xuICBwcml2YXRlIGdlbmVyYXRlU210cEF1dGhQYXNzd29yZChjb25maWc6IE1vbml0b3JpbmdDb25maWcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHNlY3JldCA9IGNvbmZpZy5zbXRwLnBhc3N3b3JkU2VjcmV0O1xuICAgIGlmIChzZWNyZXQpIHtcbiAgICAgIHJldHVybiBgc210cF9hdXRoX3Bhc3N3b3JkX2ZpbGU6IC9ldGMvYWxlcnRtYW5hZ2VyL3NlY3JldHMvJHtzZWNyZXQubmFtZX0vJHtzZWNyZXQua2V5fWA7XG4gICAgfVxuICAgIHJldHVybiBgc210cF9hdXRoX3Bhc3N3b3JkOiAke2NvbmZpZy5zbXRwLnBhc3N3b3JkIHx8ICcnfWA7XG4gIH1cblxuICAvKiogRmFsbHMgYmFjayB0byB0aGUgc2VuZGVyIGFkZHJlc3Mgc28gZXhpc3RpbmcgY29uZmlncyBrZWVwIHRoZWlyIHJlY2lwaWVudC4gKi9cbiAgcHJpdmF0ZSBnZW5lcmF0ZVJlY2lwaWVudHMoY29uZmlnOiBNb25pdG9yaW5nQ29uZmlnKTogc3RyaW5nIHtcbiAgICBjb25zdCByZWNpcGllbnRzID0gY29uZmlnLnNtdHAucmVjaXBpZW50cztcbiAgICBpZiAocmVjaXBpZW50cyAmJiByZWNpcGllbnRzLmxlbmd0aCA+IDApIHJldHVybiByZWNpcGllbnRzLmpvaW4oJywgJyk7XG4gICAgcmV0dXJuIGNvbmZpZy5zbXRwLmZyb207XG4gIH1cblxuICAvKiogTW91bnRzIHRoZSBwYXNzd29yZCBzZWNyZXQgYXQgL2V0Yy9hbGVydG1hbmFnZXIvc2VjcmV0cy88bmFtZT4vPGtleT4uICovXG4gIHByaXZhdGUgZ2VuZXJhdGVBbGVydG1hbmFnZXJTZWNyZXRzKGNvbmZpZzogTW9uaXRvcmluZ0NvbmZpZyk6IHN0cmluZyB7XG4gICAgY29uc3Qgc2VjcmV0ID0gY29uZmlnLnNtdHAucGFzc3dvcmRTZWNyZXQ7XG4gICAgaWYgKCFzZWNyZXQpIHJldHVybiAnJztcbiAgICByZXR1cm4gYFxuICAgIHNlY3JldHM6XG4gICAgLSAke3NlY3JldC5uYW1lfWA7XG4gIH1cblxuICBwcml2YXRlIGdlbmVyYXRlU3RhZ2luZ1JlY2VpdmVyKGNvbmZpZzogTW9uaXRvcmluZ0NvbmZpZyk6IHN0cmluZyB7XG4gICAgaWYgKCFjb25maWcuc3RhZ2luZ0FsZXJ0cy5lbmFibGVkKSByZXR1cm4gJyc7XG4gICAgcmV0dXJuIGBcbiAgICAtIG5hbWU6IHN0YWdpbmdcbiAgICAgIGVtYWlsX2NvbmZpZ3M6XG4gICAgICAtIHNlbmRfcmVzb2x2ZWQ6IHRydWVcbiAgICAgICAgdG86ICR7dGhpcy5nZW5lcmF0ZVJlY2lwaWVudHMoY29uZmlnKX1cbiAgICAgICAgaGVhZGVyczpcbiAgICAgICAgICBzdWJqZWN0OiAnW1NUQUdJTkddIHt7IHRlbXBsYXRlIFwiZW1haWwuZGVmYXVsdC5zdWJqZWN0XCIgLiB9fSdgO1xuICB9XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZUdyYWZhbmFTZWN1cml0eShjb25maWc6IE1vbml0b3JpbmdDb25maWcpOiBzdHJpbmcge1xuICAgIGlmICghY29uZmlnLmVtYmVkZGluZy5lbmFibGVkKSByZXR1cm4gJyc7XG4gICAgY29uc3QgcG9saWN5ID0gW1xuICAgICAgXCJzY3JpcHQtc3JjICdzZWxmJyAndW5zYWZlLWV2YWwnICd1bnNhZmUtaW5saW5lJyAnc3RyaWN0LWR5bmFtaWMnICROT05DRVwiLFxuICAgICAgXCJvYmplY3Qtc3JjICdub25lJ1wiLFxuICAgICAgXCJmb250LXNyYyAnc2VsZidcIixcbiAgICAgIFwic3R5bGUtc3JjICdzZWxmJyAndW5zYWZlLWlubGluZScgYmxvYjpcIixcbiAgICAgICdpbWctc3JjICogZGF0YTonLFxuICAgICAgXCJiYXNlLXVyaSAnc2VsZidcIixcbiAgICAgIFwiY29ubmVjdC1zcmMgJ3NlbGYnIGdyYWZhbmEuY29tIHdzOi8vJFJPT1RfUEFUSCB3c3M6Ly8kUk9PVF9QQVRIXCIsXG4gICAgICBcIm1hbmlmZXN0LXNyYyAnc2VsZidcIixcbiAgICAgIFwibWVkaWEtc3JjICdub25lJ1wiLFxuICAgICAgXCJmb3JtLWFjdGlvbiAnc2VsZidcIixcbiAgICAgIGBmcmFtZS1hbmNlc3RvcnMgJ3NlbGYnICR7Y29uZmlnLmVtYmVkZGluZy5mcmFtZUFuY2VzdG9ycy5qb2luKCcgJyl9YCxcbiAgICBdLm1hcCgoZGlyZWN0aXZlKSA9PiBgJHtkaXJlY3RpdmV9O2ApLmpvaW4oJycpO1xuICAgIHJldHVybiBgXG4gICAgc2VjdXJpdHk6XG4gICAgICBhbGxvd19lbWJlZGRpbmc6IHRydWVcbiAgICAgIGNvbnRlbnRfc2VjdXJpdHlfcG9saWN5OiB0cnVlXG4gICAgICBjb250ZW50X3NlY3VyaXR5X3BvbGljeV90ZW1wbGF0ZTogPi1cbiAgICAgICAgXCJcIlwiJHtwb2xpY3l9XCJcIlwiYDtcbiAgfVxuXG4gIHByaXZhdGUgZ2VuZXJhdGVIZWxtVmFsdWVzKGNvbmZpZzogTW9uaXRvcmluZ0NvbmZpZyk6IHN0cmluZyB7XG4gICAgLy8gVGVtcG8gZGF0YXNvdXJjZSBpcyBvbmx5IHByb3Zpc2lvbmVkIHdoZW4gdHJhY2luZyBpcyBlbmFibGVkLiBXaGVuXG4gICAgLy8gZGlzYWJsZWQgdGhpcyBpcyBlbXB0eSwgc28gdGhlIEdyYWZhbmEgYmxvY2sgaXMgYnl0ZS1pZGVudGljYWwgdG8gYmVmb3JlLlxuICAgIGNvbnN0IHRlbXBvRGF0YXNvdXJjZSA9IGNvbmZpZy50ZW1wby5lbmFibGVkID8gYFxuICAgICAgLSBuYW1lOiBUZW1wb1xuICAgICAgICB0eXBlOiB0ZW1wb1xuICAgICAgICB1aWQ6IHRlbXBvXG4gICAgICAgIGFjY2VzczogcHJveHlcbiAgICAgICAgdXJsOiBodHRwOi8vdGVtcG8uJHtjb25maWcubmFtZXNwYWNlfS5zdmMuY2x1c3Rlci5sb2NhbDozMjAwXG4gICAgICAgIGpzb25EYXRhOlxuICAgICAgICAgIHRpbWVvdXQ6IDYwXG4gICAgICAgICAgdHJhY2VzVG9Mb2dzVjI6XG4gICAgICAgICAgICBkYXRhc291cmNlVWlkOiBsb2tpXG4gICAgICAgICAgICBzcGFuU3RhcnRUaW1lU2hpZnQ6IFwiLTFoXCJcbiAgICAgICAgICAgIHNwYW5FbmRUaW1lU2hpZnQ6IFwiMWhcIlxuICAgICAgICAgICAgZmlsdGVyQnlUcmFjZUlEOiB0cnVlXG4gICAgICAgICAgdHJhY2VzVG9NZXRyaWNzOlxuICAgICAgICAgICAgZGF0YXNvdXJjZVVpZDogdGhhbm9zYCA6ICcnO1xuICAgIHJldHVybiBga3ViZUV0Y2Q6XG4gIGVuYWJsZWQ6IGZhbHNlXG5cbiMgRGlzYWJsZSBrdWJlLWNvbnRyb2xsZXItbWFuYWdlciBhbmQga3ViZS1zY2hlZHVsZXIgbW9uaXRvcmluZy4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9jYWJsZXNwYWdoZXR0aS9rM3MtbW9uaXRvcmluZy9pc3N1ZXMvMlxua3ViZUNvbnRyb2xsZXJNYW5hZ2VyOlxuICBlbmFibGVkOiBmYWxzZVxua3ViZVNjaGVkdWxlcjpcbiAgZW5hYmxlZDogZmFsc2VcblxuIyBrM3MgcnVucyBrdWJlLXByb3h5IGluc2lkZSB0aGUgYWdlbnQgcmF0aGVyIHRoYW4gYXMgYSBzZXBhcmF0ZSBjb21wb25lbnQsIHNvXG4jIHRoZXJlIGlzIG5vIGVuZHBvaW50IHRvIHNjcmFwZS4gTGVhdmluZyB0aGlzIGVuYWJsZWQgbWFrZXMgdGhlIHN0b2NrXG4jIEt1YmVQcm94eURvd24gcnVsZSAtLSBhYnNlbnQodXB7am9iPVwia3ViZS1wcm94eVwifSkgLS0gZmlyZSBmb3JldmVyIG9uIGFcbiMgcGVyZmVjdGx5IGhlYWx0aHkgY2x1c3Rlci5cbmt1YmVQcm94eTpcbiAgZW5hYmxlZDogZmFsc2VcblxuIyBEZXRlY3QgUG9kRGlzcnVwdGlvbkJ1ZGdldHMgdGhhdCB3b3VsZCBibG9jayBhIG5vZGUgZHJhaW4gZHVyaW5nIGszcyB1cGdyYWRlcy5cbiMgT3BlcmF0b3ItbWFuYWdlZCBQREJzIHNpdCBhdCBkaXNydXB0aW9uc0FsbG93ZWQ9MCBieSBkZXNpZ24gKExvbmdob3JuIGluc3RhbmNlLW1hbmFnZXJzLFxuIyBDTlBHICotcHJpbWFyeSkgYW5kIGFyZSBleGNsdWRlZCBzbyB0aGUgYWxlcnQgb25seSBmaXJlcyBvbiBhbm9tYWxvdXMgYXBwIFBEQnMuXG5hZGRpdGlvbmFsUHJvbWV0aGV1c1J1bGVzTWFwOlxuICBwZGItZHJhaW4tc2FmZXR5OlxuICAgIGdyb3VwczpcbiAgICAgIC0gbmFtZTogcGRiLnJ1bGVzXG4gICAgICAgIGludGVydmFsOiAxbVxuICAgICAgICBydWxlczpcbiAgICAgICAgICAtIGFsZXJ0OiBQb2REaXNydXB0aW9uQnVkZ2V0VW5kcmFpbmFibGVcbiAgICAgICAgICAgIGV4cHI6IGt1YmVfcG9kZGlzcnVwdGlvbmJ1ZGdldF9zdGF0dXNfcG9kX2Rpc3J1cHRpb25zX2FsbG93ZWR7bmFtZXNwYWNlIT1cImxvbmdob3JuLXN5c3RlbVwiLCBwb2RkaXNydXB0aW9uYnVkZ2V0IX5cIi4qLXByaW1hcnlcIn0gPT0gMFxuICAgICAgICAgICAgZm9yOiAxNW1cbiAgICAgICAgICAgIGxhYmVsczpcbiAgICAgICAgICAgICAgc2V2ZXJpdHk6IHdhcm5pbmdcbiAgICAgICAgICAgICAgY29tcG9uZW50OiBjbHVzdGVyLXVwZ3JhZGVcbiAgICAgICAgICAgIGFubm90YXRpb25zOlxuICAgICAgICAgICAgICBzdW1tYXJ5OiBcIlBEQiB7eyAkbGFiZWxzLm5hbWVzcGFjZSB9fS97eyAkbGFiZWxzLnBvZGRpc3J1cHRpb25idWRnZXQgfX0gYWxsb3dzIDAgdm9sdW50YXJ5IGRpc3J1cHRpb25zXCJcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHxcbiAgICAgICAgICAgICAgICBUaGUgUG9kRGlzcnVwdGlvbkJ1ZGdldCB7eyAkbGFiZWxzLm5hbWVzcGFjZSB9fS97eyAkbGFiZWxzLnBvZGRpc3J1cHRpb25idWRnZXQgfX1cbiAgICAgICAgICAgICAgICBoYXMgYWxsb3dlZCAwIHZvbHVudGFyeSBkaXNydXB0aW9ucyBmb3Igb3ZlciAxNSBtaW51dGVzLiBUaGlzIHdpbGwgYmxvY2sgYSBub2RlXG4gICAgICAgICAgICAgICAgZHJhaW4gZHVyaW5nIGszcyB1cGdyYWRlcy4gT3BlcmF0b3ItbWFuYWdlZCBQREJzIChMb25naG9ybiwgQ05QRyBwcmltYXJpZXMpIGFyZVxuICAgICAgICAgICAgICAgIGV4Y2x1ZGVkIGZyb20gdGhpcyBhbGVydC4gTGlrZWx5IGEgZGVncmFkZWQgZGVwbG95bWVudCAoMCBoZWFsdGh5IHBvZHMpIG9yIGFcbiAgICAgICAgICAgICAgICBzaW5nbGUtcmVwbGljYSBkZXBsb3ltZW50IHdpdGggbWluQXZhaWxhYmxlPTEuXG4gICAgICAgICAgICAgICAgQ2hlY2s6IGt1YmVjdGwgZ2V0IHBkYiAtbiB7eyAkbGFiZWxzLm5hbWVzcGFjZSB9fSB7eyAkbGFiZWxzLnBvZGRpc3J1cHRpb25idWRnZXQgfX1cbiAgICAgICAgICAtIGFsZXJ0OiBQb2REaXNydXB0aW9uQnVkZ2V0VW5kcmFpbmFibGVDcml0aWNhbFxuICAgICAgICAgICAgZXhwcjoga3ViZV9wb2RkaXNydXB0aW9uYnVkZ2V0X3N0YXR1c19wb2RfZGlzcnVwdGlvbnNfYWxsb3dlZHtuYW1lc3BhY2UhPVwibG9uZ2hvcm4tc3lzdGVtXCIsIHBvZGRpc3J1cHRpb25idWRnZXQhflwiLiotcHJpbWFyeVwifSA9PSAwXG4gICAgICAgICAgICBmb3I6IDFoXG4gICAgICAgICAgICBsYWJlbHM6XG4gICAgICAgICAgICAgIHNldmVyaXR5OiBjcml0aWNhbFxuICAgICAgICAgICAgICBjb21wb25lbnQ6IGNsdXN0ZXItdXBncmFkZVxuICAgICAgICAgICAgYW5ub3RhdGlvbnM6XG4gICAgICAgICAgICAgIHN1bW1hcnk6IFwiUERCIHt7ICRsYWJlbHMubmFtZXNwYWNlIH19L3t7ICRsYWJlbHMucG9kZGlzcnVwdGlvbmJ1ZGdldCB9fSB1bmRyYWluYWJsZSA+MWhcIlxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogfFxuICAgICAgICAgICAgICAgIFBEQiB7eyAkbGFiZWxzLm5hbWVzcGFjZSB9fS97eyAkbGFiZWxzLnBvZGRpc3J1cHRpb25idWRnZXQgfX0gaGFzIGJsb2NrZWRcbiAgICAgICAgICAgICAgICB2b2x1bnRhcnkgZGlzcnVwdGlvbnMgZm9yIG92ZXIgYW4gaG91ci4gQSBrM3MgYWdlbnQgdXBncmFkZSB3b3VsZCBzdGFsbCBvbiB0aGlzIG5vZGUuXG4jIERyb3AgaGlnaC1jYXJkaW5hbGl0eSBBUEkgc2VydmVyIGFuZCBldGNkIGhpc3RvZ3JhbSBidWNrZXRzIHRvIHJlZHVjZSBtZW1vcnkgdXNhZ2VcbiMgVGhlc2UgbWV0cmljcyBhbG9uZSBhY2NvdW50IGZvciB+MjAwayBzZXJpZXMgKDQ3JSBvZiB0b3RhbCBjYXJkaW5hbGl0eSlcbiMgV2Uga2VlcCBfc3VtIGFuZCBfY291bnQgc3VmZml4ZXMgd2hpY2ggYXJlIHN1ZmZpY2llbnQgZm9yIHJhdGUgY2FsY3VsYXRpb25zXG4jXG4jIFRoZSB3YXRjaCBoaXN0b2dyYW1zLCB0aGUgd29ya3F1ZXVlIGFuZCB0aGUgc2NoZWR1bGVyIHBsdWdpbiBidWNrZXRzIGNhbWUgb25cbiMgdG9wIG9mIHRoYXQ6IGszcyBydW5zIGFwaXNlcnZlciwgY29udHJvbGxlci1tYW5hZ2VyIGFuZCBzY2hlZHVsZXIgaW4gb25lXG4jIHByb2Nlc3Mgd2l0aCBvbmUgbWV0cmljcyByZWdpc3RyeSwgc28gdGhlIGFwaXNlcnZlciBlbmRwb2ludCBhbHNvIHNlcnZlc1xuIyBzY2hlZHVsZXJfKiBhbmQgd29ya3F1ZXVlXyogc2VyaWVzLiBNZWFzdXJlZCBvbiBhIDYtbm9kZSBrM3MgY2x1c3RlclxuIyAoMjAyNi0xMC0yNCk6IDU2ayB3YXRjaF8qLCA4ayB3b3JrcXVldWVfKiwgM2sgc2NoZWR1bGVyX3BsdWdpbl8qIG9mIDQwOGtcbiMgc2VyaWVzLiBOb3RoaW5nIGluIHRoZSBzaGlwcGVkIGFsZXJ0cyBvciBkYXNoYm9hcmRzIHJlYWRzIHRoZW0uXG5rdWJlQXBpU2VydmVyOlxuICBzZXJ2aWNlTW9uaXRvcjpcbiAgICBtZXRyaWNSZWxhYmVsaW5nczpcbiAgICAgIC0gc291cmNlTGFiZWxzOiBbX19uYW1lX19dXG4gICAgICAgIHJlZ2V4OiAnYXBpc2VydmVyX3JlcXVlc3RfZHVyYXRpb25fc2Vjb25kc19idWNrZXQnXG4gICAgICAgIGFjdGlvbjogZHJvcFxuICAgICAgLSBzb3VyY2VMYWJlbHM6IFtfX25hbWVfX11cbiAgICAgICAgcmVnZXg6ICdhcGlzZXJ2ZXJfcmVxdWVzdF9zbGlfZHVyYXRpb25fc2Vjb25kc19idWNrZXQnXG4gICAgICAgIGFjdGlvbjogZHJvcFxuICAgICAgLSBzb3VyY2VMYWJlbHM6IFtfX25hbWVfX11cbiAgICAgICAgcmVnZXg6ICdhcGlzZXJ2ZXJfcmVxdWVzdF9ib2R5X3NpemVfYnl0ZXNfYnVja2V0J1xuICAgICAgICBhY3Rpb246IGRyb3BcbiAgICAgIC0gc291cmNlTGFiZWxzOiBbX19uYW1lX19dXG4gICAgICAgIHJlZ2V4OiAnYXBpc2VydmVyX3Jlc3BvbnNlX3NpemVzX2J1Y2tldCdcbiAgICAgICAgYWN0aW9uOiBkcm9wXG4gICAgICAtIHNvdXJjZUxhYmVsczogW19fbmFtZV9fXVxuICAgICAgICByZWdleDogJ2V0Y2RfcmVxdWVzdF9kdXJhdGlvbl9zZWNvbmRzX2J1Y2tldCdcbiAgICAgICAgYWN0aW9uOiBkcm9wXG4gICAgICAtIHNvdXJjZUxhYmVsczogW19fbmFtZV9fXVxuICAgICAgICByZWdleDogJ2FwaXNlcnZlcl93YXRjaF8oY2FjaGVfcmVhZF93YWl0X3NlY29uZHN8bGlzdF9kdXJhdGlvbl9zZWNvbmRzfGV2ZW50c19zaXplcylfYnVja2V0J1xuICAgICAgICBhY3Rpb246IGRyb3BcbiAgICAgIC0gc291cmNlTGFiZWxzOiBbX19uYW1lX19dXG4gICAgICAgIHJlZ2V4OiAnd29ya3F1ZXVlXyhxdWV1ZXx3b3JrKV9kdXJhdGlvbl9zZWNvbmRzX2J1Y2tldCdcbiAgICAgICAgYWN0aW9uOiBkcm9wXG4gICAgICAtIHNvdXJjZUxhYmVsczogW19fbmFtZV9fXVxuICAgICAgICByZWdleDogJ3NjaGVkdWxlcl9wbHVnaW5fZXhlY3V0aW9uX2R1cmF0aW9uX3NlY29uZHNfYnVja2V0J1xuICAgICAgICBhY3Rpb246IGRyb3BcblxuIyBLdWJlbGV0IGFsc28gZXhwb3NlcyBhcGlzZXJ2ZXIgbWV0cmljcyAtIGFwcGx5IHNhbWUgZmlsdGVyc1xua3ViZWxldDpcbiAgc2VydmljZU1vbml0b3I6XG4gICAgIyAvbWV0cmljcy9wcm9iZXMgb25seSBob2xkcyBwcm9iZXJfcHJvYmVfZHVyYXRpb25fc2Vjb25kcyBoaXN0b2dyYW1zXG4gICAgIyAob25lIHNlcmllcyBwZXIgcHJvYmUsIGNvbnRhaW5lciBhbmQgYnVja2V0LCB+NWsgb24gYSBzbWFsbCBjbHVzdGVyKTtcbiAgICAjIG5vdGhpbmcgY29uc3VtZXMgdGhlbS5cbiAgICBwcm9iZXM6IGZhbHNlXG4gICAgbWV0cmljUmVsYWJlbGluZ3M6XG4gICAgICAtIHNvdXJjZUxhYmVsczogW19fbmFtZV9fXVxuICAgICAgICByZWdleDogJ2FwaXNlcnZlcl9yZXF1ZXN0X2R1cmF0aW9uX3NlY29uZHNfYnVja2V0J1xuICAgICAgICBhY3Rpb246IGRyb3BcbiAgICAgIC0gc291cmNlTGFiZWxzOiBbX19uYW1lX19dXG4gICAgICAgIHJlZ2V4OiAnYXBpc2VydmVyX3JlcXVlc3Rfc2xpX2R1cmF0aW9uX3NlY29uZHNfYnVja2V0J1xuICAgICAgICBhY3Rpb246IGRyb3BcbiAgICAgIC0gc291cmNlTGFiZWxzOiBbX19uYW1lX19dXG4gICAgICAgIHJlZ2V4OiAnYXBpc2VydmVyX3JlcXVlc3RfYm9keV9zaXplX2J5dGVzX2J1Y2tldCdcbiAgICAgICAgYWN0aW9uOiBkcm9wXG4gICAgICAtIHNvdXJjZUxhYmVsczogW19fbmFtZV9fXVxuICAgICAgICByZWdleDogJ2FwaXNlcnZlcl9yZXNwb25zZV9zaXplc19idWNrZXQnXG4gICAgICAgIGFjdGlvbjogZHJvcFxuICAgICAgLSBzb3VyY2VMYWJlbHM6IFtfX25hbWVfX11cbiAgICAgICAgcmVnZXg6ICdldGNkX3JlcXVlc3RfZHVyYXRpb25fc2Vjb25kc19idWNrZXQnXG4gICAgICAgIGFjdGlvbjogZHJvcFxuICAgICAgLSBzb3VyY2VMYWJlbHM6IFtfX25hbWVfX11cbiAgICAgICAgcmVnZXg6ICdhcGlzZXJ2ZXJfd2F0Y2hfKGNhY2hlX3JlYWRfd2FpdF9zZWNvbmRzfGxpc3RfZHVyYXRpb25fc2Vjb25kc3xldmVudHNfc2l6ZXMpX2J1Y2tldCdcbiAgICAgICAgYWN0aW9uOiBkcm9wXG4gICAgICAtIHNvdXJjZUxhYmVsczogW19fbmFtZV9fXVxuICAgICAgICByZWdleDogJ3dvcmtxdWV1ZV8ocXVldWV8d29yaylfZHVyYXRpb25fc2Vjb25kc19idWNrZXQnXG4gICAgICAgIGFjdGlvbjogZHJvcFxuICAgICAgLSBzb3VyY2VMYWJlbHM6IFtfX25hbWVfX11cbiAgICAgICAgcmVnZXg6ICdzY2hlZHVsZXJfcGx1Z2luX2V4ZWN1dGlvbl9kdXJhdGlvbl9zZWNvbmRzX2J1Y2tldCdcbiAgICAgICAgYWN0aW9uOiBkcm9wXG5cbmFsZXJ0bWFuYWdlcjpcbiAgY29uZmlnOlxuICAgIGdsb2JhbDpcbiAgICAgIHNtdHBfZnJvbTogJHtjb25maWcuc210cC5mcm9tfVxuICAgICAgc210cF9zbWFydGhvc3Q6ICR7Y29uZmlnLnNtdHAuaG9zdH06JHtjb25maWcuc210cC5wb3J0fVxuICAgICAgc210cF9yZXF1aXJlX3RsczogJHtjb25maWcuc210cC5yZXF1aXJlVGxzfVxuICAgICAgc210cF9hdXRoX3VzZXJuYW1lOiAke2NvbmZpZy5zbXRwLnVzZXJuYW1lIHx8IGNvbmZpZy5zbXRwLmZyb219XG4gICAgICAke3RoaXMuZ2VuZXJhdGVTbXRwQXV0aFBhc3N3b3JkKGNvbmZpZyl9XG4gICAgcm91dGU6XG4gICAgICBncm91cF9ieTogWydqb2InXVxuICAgICAgZ3JvdXBfd2FpdDogMzBzXG4gICAgICBncm91cF9pbnRlcnZhbDogNW1cbiAgICAgIHJlcGVhdF9pbnRlcnZhbDogJHtjb25maWcuYWxlcnRSb3V0aW5nLnJlcGVhdEludGVydmFsfVxuICAgICAgcmVjZWl2ZXI6IGVtYWlsXG4gICAgICByb3V0ZXM6XG4gICAgICAtIG1hdGNoOlxuICAgICAgICAgIGFsZXJ0bmFtZTogV2F0Y2hkb2dcbiAgICAgICAgcmVjZWl2ZXI6ICdudWxsJ1xuICAgICAgLSBtYXRjaDpcbiAgICAgICAgICBhbGVydG5hbWU6IENQVVRocm90dGxpbmdIaWdoXG4gICAgICAgIHJlY2VpdmVyOiAnbnVsbCdcbiAgICAgIC0gbWF0Y2g6XG4gICAgICAgICAgYWxlcnRuYW1lOiBLdWJlTWVtb3J5T3ZlcmNvbW1pdFxuICAgICAgICByZWNlaXZlcjogJ251bGwnXG4gICAgICAtIG1hdGNoOlxuICAgICAgICAgIGFsZXJ0bmFtZTogS3ViZUNQVU92ZXJjb21taXRcbiAgICAgICAgcmVjZWl2ZXI6ICdudWxsJ1xuICAgICAgLSBtYXRjaDpcbiAgICAgICAgICBhbGVydG5hbWU6IEt1YmVsZXRUb29NYW55UG9kc1xuICAgICAgICByZWNlaXZlcjogJ251bGwnXG4gICAgICAjIFNldmVyaXR5IFwibm9uZVwiOiBleGlzdHMgb25seSB0byBpbmhpYml0IGluZm8gYWxlcnRzLCBuZXZlciBtZWFudCBmb3IgYSBodW1hbi5cbiAgICAgIC0gbWF0Y2g6XG4gICAgICAgICAgYWxlcnRuYW1lOiBJbmZvSW5oaWJpdG9yXG4gICAgICAgIHJlY2VpdmVyOiAnbnVsbCcke3RoaXMuZ2VuZXJhdGVTdGFnaW5nUm91dGUoY29uZmlnKX1cblxuICAgIHJlY2VpdmVyczpcbiAgICAtIG5hbWU6ICdudWxsJ1xuICAgIC0gbmFtZTogZW1haWxcbiAgICAgIGVtYWlsX2NvbmZpZ3M6XG4gICAgICAtIHNlbmRfcmVzb2x2ZWQ6IHRydWVcbiAgICAgICAgdG86ICR7dGhpcy5nZW5lcmF0ZVJlY2lwaWVudHMoY29uZmlnKX0ke3RoaXMuZ2VuZXJhdGVTdGFnaW5nUmVjZWl2ZXIoY29uZmlnKX1cblxuICAgICMgSW5oaWJpdGlvbiBydWxlcyBhbGxvdyB0byBtdXRlIGEgc2V0IG9mIGFsZXJ0cyBnaXZlbiB0aGF0IGFub3RoZXIgYWxlcnQgaXMgZmlyaW5nLlxuICAgICMgV2UgdXNlIHRoaXMgdG8gbXV0ZSBhbnkgd2FybmluZy1sZXZlbCBub3RpZmljYXRpb25zIGlmIHRoZSBzYW1lIGFsZXJ0IGlzIGFscmVhZHkgY3JpdGljYWwuXG4gICAgaW5oaWJpdF9ydWxlczpcbiAgICAtIHNvdXJjZV9tYXRjaDpcbiAgICAgICAgc2V2ZXJpdHk6ICdjcml0aWNhbCdcbiAgICAgIHRhcmdldF9tYXRjaDpcbiAgICAgICAgc2V2ZXJpdHk6ICd3YXJuaW5nJ1xuICAgICAgIyBBcHBseSBpbmhpYml0aW9uIGlmIHRoZSBhbGVydG5hbWUgaXMgdGhlIHNhbWUuXG4gICAgICBlcXVhbDogWydhbGVydG5hbWUnLCAnbmFtZXNwYWNlJ11cblxuICBhbGVydG1hbmFnZXJTcGVjOlxuICAgIHJlcGxpY2FzOiAke2NvbmZpZy5yZXBsaWNhcy5hbGVydG1hbmFnZXJ9XG4gICAgcG9kQW50aUFmZmluaXR5OiBcInNvZnRcIiR7dGhpcy5nZW5lcmF0ZUFsZXJ0bWFuYWdlclNlY3JldHMoY29uZmlnKX1cbiAgICBzdG9yYWdlOlxuICAgICAgdm9sdW1lQ2xhaW1UZW1wbGF0ZTpcbiAgICAgICAgc3BlYzpcbiAgICAgICAgICBhY2Nlc3NNb2RlczogW1wiUmVhZFdyaXRlT25jZVwiXVxuICAgICAgICAgIHJlc291cmNlczpcbiAgICAgICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgICAgICBzdG9yYWdlOiAke2NvbmZpZy5zdG9yYWdlLmFsZXJ0bWFuYWdlcn1cbiAgICByZXNvdXJjZXM6XG4gICAgICBsaW1pdHM6XG4gICAgICAgIGNwdTogJHtjb25maWcucmVzb3VyY2VzLmFsZXJ0bWFuYWdlci5saW1pdHMuY3B1fVxuICAgICAgICBtZW1vcnk6ICR7Y29uZmlnLnJlc291cmNlcy5hbGVydG1hbmFnZXIubGltaXRzLm1lbW9yeX1cbiAgICAgIHJlcXVlc3RzOlxuICAgICAgICBjcHU6ICR7Y29uZmlnLnJlc291cmNlcy5hbGVydG1hbmFnZXIucmVxdWVzdHMuY3B1fVxuICAgICAgICBtZW1vcnk6ICR7Y29uZmlnLnJlc291cmNlcy5hbGVydG1hbmFnZXIucmVxdWVzdHMubWVtb3J5fVxuICAgIHByaW9yaXR5Q2xhc3NOYW1lOiBoaWdoLXByaW9yaXR5XG5cbiAgICAjIFNpZGVjYXIgY29udGFpbmVycyByZXNvdXJjZSByZXF1ZXN0cyAoYWRkZWQgMjAyNS0xMS0xOClcbiAgICBjb250YWluZXJzOlxuICAgIC0gbmFtZTogY29uZmlnLXJlbG9hZGVyXG4gICAgICByZXNvdXJjZXM6XG4gICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgIGNwdTogJHtjb25maWcucmVzb3VyY2VzLmNvbmZpZ1JlbG9hZGVyLnJlcXVlc3RzLmNwdX1cbiAgICAgICAgICBtZW1vcnk6ICR7Y29uZmlnLnJlc291cmNlcy5jb25maWdSZWxvYWRlci5yZXF1ZXN0cy5tZW1vcnl9XG4gICAgICAgIGxpbWl0czpcbiAgICAgICAgICBjcHU6ICR7Y29uZmlnLnJlc291cmNlcy5jb25maWdSZWxvYWRlci5saW1pdHMuY3B1fVxuICAgICAgICAgIG1lbW9yeTogJHtjb25maWcucmVzb3VyY2VzLmNvbmZpZ1JlbG9hZGVyLmxpbWl0cy5tZW1vcnl9XG5cblxucHJvbWV0aGV1czpcbiAgIyBFbmFibGUgVGhhbm9zIHNlcnZpY2UgZm9yIGdSUEMgY29tbXVuaWNhdGlvblxuICAjIFJlcXVpcmVkIGZvciBIZWxtIGNoYXJ0IHRvIHByb3Blcmx5IHJlbmRlciBUaGFub3Mgc2lkZWNhciBjb25maWd1cmF0aW9uXG4gIHRoYW5vc1NlcnZpY2U6XG4gICAgZW5hYmxlZDogdHJ1ZVxuXG4gIHByb21ldGhldXNTcGVjOlxuICAgIHJldGVudGlvbjogJHtjb25maWcucmV0ZW50aW9uLnByb21ldGhldXN9ICAjIFJlZHVjZWQgZnJvbSA3ZCAtIFRoYW5vcyBwcm92aWRlcyBsb25nLXRlcm0gc3RvcmFnZSBpbiBTM1xuXG4gICAgIyBEaXNjb3ZlciBBTEwgU2VydmljZU1vbml0b3JzLCBQb2RNb25pdG9ycyBhbmQgUHJvbWV0aGV1c1J1bGVzIGluIEFMTCBuYW1lc3BhY2VzXG4gICAgIyBTZXR0aW5nIE5pbFVzZXNIZWxtVmFsdWVzOiBmYWxzZSBtZWFucyBuaWwgc2VsZWN0b3JzID0gXCJzZWxlY3QgYWxsXCJcbiAgICAjIEVtcHR5IG5hbWVzcGFjZSBzZWxlY3RvcnMge30gbWVhbiBcInNlYXJjaCBhbGwgbmFtZXNwYWNlc1wiXG4gICAgIyBXaXRob3V0IHRoZSBydWxlKiBzZXR0aW5ncywgcnVsZVNlbGVjdG9yIGtlZXBzIHRoZSBjaGFydCBkZWZhdWx0XG4gICAgIyAobWF0Y2hMYWJlbHM6IHtyZWxlYXNlOiA8bmFtZT59KSBhbmQgaGFuZC1hdXRob3JlZCBQcm9tZXRoZXVzUnVsZXMgdGhhdFxuICAgICMgbGFjayB0aGUgcmVsZWFzZSBsYWJlbCBhcmUgc2lsZW50bHkgaWdub3JlZC5cbiAgICAjIE5vdGU6IFRoaXMgZG9lcyBOT1QgYWZmZWN0IFRoYW5vcyBzaWRlY2FyIC0gY29udHJvbGxlZCBieSB0aGFub3Mub2JqZWN0U3RvcmFnZUNvbmZpZ1xuICAgIHNlcnZpY2VNb25pdG9yU2VsZWN0b3JOaWxVc2VzSGVsbVZhbHVlczogZmFsc2VcbiAgICBwb2RNb25pdG9yU2VsZWN0b3JOaWxVc2VzSGVsbVZhbHVlczogZmFsc2VcbiAgICBydWxlU2VsZWN0b3JOaWxVc2VzSGVsbVZhbHVlczogZmFsc2VcbiAgICBzZXJ2aWNlTW9uaXRvck5hbWVzcGFjZVNlbGVjdG9yOiB7fVxuICAgIHBvZE1vbml0b3JOYW1lc3BhY2VTZWxlY3Rvcjoge31cbiAgICBydWxlTmFtZXNwYWNlU2VsZWN0b3I6IHt9XG5cbiAgICByZXBsaWNhczogJHtjb25maWcucmVwbGljYXMucHJvbWV0aGV1c31cbiAgICBwb2RBbnRpQWZmaW5pdHk6IFwiaGFyZFwiXG4gICAgc3RvcmFnZVNwZWM6XG4gICAgICB2b2x1bWVDbGFpbVRlbXBsYXRlOlxuICAgICAgICBzcGVjOlxuICAgICAgICAgIHN0b3JhZ2VDbGFzc05hbWU6IGxvbmdob3JuXG4gICAgICAgICAgYWNjZXNzTW9kZXM6IFtcIlJlYWRXcml0ZU9uY2VcIl1cbiAgICAgICAgICByZXNvdXJjZXM6XG4gICAgICAgICAgICByZXF1ZXN0czpcbiAgICAgICAgICAgICAgc3RvcmFnZTogJHtjb25maWcuc3RvcmFnZS5wcm9tZXRoZXVzfSAgIyBSZWR1Y2VkIGZyb20gNkdpICgzZCByZXRlbnRpb24gbmVlZHMgbGVzcyBzcGFjZSlcblxuICAgIHJlc291cmNlczpcbiAgICAgIGxpbWl0czpcbiAgICAgICAgY3B1OiAke2NvbmZpZy5yZXNvdXJjZXMucHJvbWV0aGV1cy5saW1pdHMuY3B1fVxuICAgICAgICBtZW1vcnk6ICR7Y29uZmlnLnJlc291cmNlcy5wcm9tZXRoZXVzLmxpbWl0cy5tZW1vcnl9XG4gICAgICByZXF1ZXN0czpcbiAgICAgICAgY3B1OiAke2NvbmZpZy5yZXNvdXJjZXMucHJvbWV0aGV1cy5yZXF1ZXN0cy5jcHV9XG4gICAgICAgIG1lbW9yeTogJHtjb25maWcucmVzb3VyY2VzLnByb21ldGhldXMucmVxdWVzdHMubWVtb3J5fVxuICAgIHByaW9yaXR5Q2xhc3NOYW1lOiBoaWdoLXByaW9yaXR5XG5cbiAgICAjIEV4dGVybmFsIGxhYmVscyBmb3IgbXVsdGktY2x1c3RlciBpZGVudGlmaWNhdGlvbiBhbmQgVGhhbm9zXG4gICAgZXh0ZXJuYWxMYWJlbHM6XG4gICAgICBjbHVzdGVyOiAke2NvbmZpZy5jbHVzdGVyTmFtZX1cbiAgICAgIHJlcGxpY2E6IFwiJChQT0RfTkFNRSlcIlxuICAgICMgVGhhbm9zIG5lZWRzIHRoZSByZXBsaWNhIGxhYmVsIG9uIG1ldHJpY3MsIGJ1dCBvbiBhbGVydHMgaXQgbWFrZXMgdGhlIHR3b1xuICAgICMgUHJvbWV0aGV1cyByZXBsaWNhcyBsb29rIGxpa2UgdHdvIGRpZmZlcmVudCBhbGVydHMsIHNvIGV2ZXJ5IG1haWwgbGlzdHNcbiAgICAjIGVhY2ggb25lIHR3aWNlLiBUaGUgb3BlcmF0b3IgZHJvcHMgaXRzIG93biBwcm9tZXRoZXVzX3JlcGxpY2EgdGhlIHNhbWUgd2F5LlxuICAgIGFkZGl0aW9uYWxBbGVydFJlbGFiZWxDb25maWdzOlxuICAgICAgLSBhY3Rpb246IGxhYmVsZHJvcFxuICAgICAgICByZWdleDogcmVwbGljYVxuXG4gICAgIyBUaGFub3Mgc2lkZWNhciBmb3IgbG9uZy10ZXJtIG1ldHJpY3Mgc3RvcmFnZSBpbiBTM1xuICAgICMgTk9URTogY2hhcnQgPj04NS54IHJlcXVpcmVzIHRoZSBleGlzdGluZ1NlY3JldCBzaGFwZS4gVGhlIGxlZ2FjeSBmbGF0XG4gICAgIyB7bmFtZSwga2V5fSBmb3JtIGlzIHNpbGVudGx5IGRyb3BwZWQgYnkgdGhlIGNoYXJ0LCB3aGljaCByZW1vdmVzIHRoZVxuICAgICMgc2lkZWNhciBhbmQgc3RvcHMgYWxsIFMzIGJsb2NrIHVwbG9hZHMgKHJlZ3Jlc3Npb24gc2VlbiAyMDI2LTAzLTMxKS5cbiAgICB0aGFub3M6XG4gICAgICBvYmplY3RTdG9yYWdlQ29uZmlnOlxuICAgICAgICBleGlzdGluZ1NlY3JldDpcbiAgICAgICAgICBuYW1lOiB0aGFub3Mtb2Jqc3RvcmUtY29uZmlnICAjIEVTTy1tYW5hZ2VkIHNlY3JldFxuICAgICAgICAgIGtleTogb2Jqc3RvcmUueW1sXG5cbiAgICAjIFNpZGVjYXIgY29udGFpbmVycyByZXNvdXJjZSByZXF1ZXN0cyAoYWRkZWQgMjAyNS0xMS0xOClcbiAgICAjIE5PVEU6IHRoYW5vcy1zaWRlY2FyIGlzIE5PVCBsaXN0ZWQgaGVyZSAtIGl0J3MgYXV0b21hdGljYWxseSBpbmplY3RlZCBieSBQcm9tZXRoZXVzIE9wZXJhdG9yXG4gICAgIyB3aGVuIHRoYW5vcy5vYmplY3RTdG9yYWdlQ29uZmlnIGlzIHNldC4gU3BlY2lmeWluZyBpdCBpbiBjb250YWluZXJzW10gd291bGQgb3ZlcnJpZGVcbiAgICAjIHRoZSBvcGVyYXRvcidzIGRlZmluaXRpb24gYW5kIHJlcXVpcmUgdXMgdG8gbWFudWFsbHkgc3BlY2lmeSB0aGUgaW1hZ2UsIHdoaWNoIGJyZWFrc1xuICAgICMgd2hlbiB0aGUgb3BlcmF0b3IgdXBkYXRlcyB0aGUgdGhhbm9zIHZlcnNpb24uXG4gICAgY29udGFpbmVyczpcbiAgICAtIG5hbWU6IGNvbmZpZy1yZWxvYWRlclxuICAgICAgcmVzb3VyY2VzOlxuICAgICAgICByZXF1ZXN0czpcbiAgICAgICAgICBjcHU6ICR7Y29uZmlnLnJlc291cmNlcy5jb25maWdSZWxvYWRlci5yZXF1ZXN0cy5jcHV9XG4gICAgICAgICAgbWVtb3J5OiAke2NvbmZpZy5yZXNvdXJjZXMuY29uZmlnUmVsb2FkZXIucmVxdWVzdHMubWVtb3J5fVxuICAgICAgICBsaW1pdHM6XG4gICAgICAgICAgY3B1OiAke2NvbmZpZy5yZXNvdXJjZXMuY29uZmlnUmVsb2FkZXIubGltaXRzLmNwdX1cbiAgICAgICAgICBtZW1vcnk6ICR7Y29uZmlnLnJlc291cmNlcy5jb25maWdSZWxvYWRlci5saW1pdHMubWVtb3J5fVxuXG4gICAgc2VydmljZTpcbiAgICAgIHNlc3Npb25BZmZpbml0eTogXCJDbGllbnRJUFwiXG5cblxuZ3JhZmFuYTpcbiAgIyBSZWNyZWF0ZSBzdHJhdGVneSBpcyByZXF1aXJlZCBiZWNhdXNlIHRoZSBzdG9yYWdlIFBWQyBpcyBSV086XG4gICMgYSBSb2xsaW5nVXBkYXRlIHdvdWxkIHN1cmdlIGEgc2Vjb25kIHBvZCB0aGF0IGNhbm5vdCBtb3VudCB0aGVcbiAgIyB2b2x1bWUgKEZhaWxlZEF0dGFjaFZvbHVtZSksIGJsb2NraW5nIHRoZSByb2xsb3V0IGluZGVmaW5pdGVseS5cbiAgZGVwbG95bWVudFN0cmF0ZWd5OlxuICAgIHR5cGU6IFJlY3JlYXRlXG5cbiAgIyBVc2UgZXhpc3Rpbmcgc2VjcmV0IGZvciBhZG1pbiBjcmVkZW50aWFscyAobWFuYWdlZCBieSBFU08pXG4gICMgVGhpcyBwcmV2ZW50cyBwYXNzd29yZCByZWdlbmVyYXRpb24gb24gSGVsbSB1cGdyYWRlc1xuICBhZG1pbjpcbiAgICBleGlzdGluZ1NlY3JldDogXCJncmFmYW5hLWFkbWluLWNyZWRlbnRpYWxzXCJcbiAgICB1c2VyS2V5OiBcImFkbWluLXVzZXJcIlxuICAgIHBhc3N3b3JkS2V5OiBcImFkbWluLXBhc3N3b3JkXCJcblxuICAjIEdyYWZhbmEgcnVucyBodHRwIG9uIDozMDAwIGJlaGluZCB0aGUgVExTLXRlcm1pbmF0aW5nIGluZ3Jlc3MuIFdpdGhvdXQgYW5cbiAgIyBleHBsaWNpdCByb290X3VybCBpdCBidWlsZHMgc2hhcmUgYW5kIHB1YmxpYy1kYXNoYm9hcmQgbGlua3MgZnJvbSB0aGUgaW50ZXJuYWxcbiAgIyBhZGRyZXNzIChodHRwOi8vPHBvZD46MzAwMCk7IGRlcml2ZSB0aGUgZXh0ZXJuYWwgVVJMIGZyb20gdGhlIGNvbmZpZ3VyZWQgZG9tYWluLlxuICBncmFmYW5hLmluaTpcbiAgICBzZXJ2ZXI6XG4gICAgICBkb21haW46ICR7Y29uZmlnLmRvbWFpbnMuZ3JhZmFuYX1cbiAgICAgIHJvb3RfdXJsOiBodHRwczovLyR7Y29uZmlnLmRvbWFpbnMuZ3JhZmFuYX0ke3RoaXMuZ2VuZXJhdGVHcmFmYW5hU2VjdXJpdHkoY29uZmlnKX1cblxuICAjIERpc2FibGUgZGVmYXVsdCBQcm9tZXRoZXVzIGRhdGFzb3VyY2UgKHdlIHByb3ZpZGUgb3VyIG93biBwb2ludGluZyB0byBUaGFub3MgUXVlcnkpXG4gIGRlZmF1bHREYXRhc291cmNlRW5hYmxlZDogZmFsc2VcblxuICAjIFNpZGVjYXIgY29udGFpbmVycyBmb3IgZGFzaGJvYXJkL2RhdGFzb3VyY2UgcHJvdmlzaW9uaW5nXG4gIHNpZGVjYXI6XG4gICAgcmVzb3VyY2VzOlxuICAgICAgcmVxdWVzdHM6XG4gICAgICAgIGNwdTogMTBtXG4gICAgICAgIG1lbW9yeTogMjU2TWlcbiAgICAgIGxpbWl0czpcbiAgICAgICAgY3B1OiAxMDBtXG4gICAgICAgIG1lbW9yeTogNTEyTWlcbiAgICBkYXNoYm9hcmRzOlxuICAgICAgZW5hYmxlZDogdHJ1ZVxuICAgICAgIyBEYXNoYm9hcmQgQ29uZmlnTWFwcyBtYXkgb3B0IGludG8gYSBuYW1lZCBHcmFmYW5hIGZvbGRlciB2aWEgdGhpc1xuICAgICAgIyBhbm5vdGF0aW9uOyBDb25maWdNYXBzIHdpdGhvdXQgaXQga2VlcCBsYW5kaW5nIGluIEdlbmVyYWwuXG4gICAgICBmb2xkZXJBbm5vdGF0aW9uOiBncmFmYW5hX2ZvbGRlclxuICAgICAgcHJvdmlkZXI6XG4gICAgICAgIGZvbGRlcnNGcm9tRmlsZXNTdHJ1Y3R1cmU6IHRydWVcbiAgICBkYXRhc291cmNlczpcbiAgICAgIGVuYWJsZWQ6IGZhbHNlICAjIFdlIG1hbnVhbGx5IHByb3Zpc2lvbiBkYXRhc291cmNlcyAoUHJvbWV0aGV1c+KGklRoYW5vcywgTG9raSlcblxuICBpbmdyZXNzOlxuICAgIGVuYWJsZWQ6IHRydWUke2NvbmZpZy5kb21haW5zLmluZ3Jlc3NDbGFzc05hbWUgPyBgXFxuICAgIGluZ3Jlc3NDbGFzc05hbWU6ICR7Y29uZmlnLmRvbWFpbnMuaW5ncmVzc0NsYXNzTmFtZX1gIDogJyd9XG4gICAgaG9zdHM6XG4gICAgICAtICR7Y29uZmlnLmRvbWFpbnMuZ3JhZmFuYX1cbiAgICBhbm5vdGF0aW9uczpcbiAgICAgIGNlcnQtbWFuYWdlci5pby9jbHVzdGVyLWlzc3VlcjogXCJsZXRzZW5jcnlwdC1jbHVzdGVyLWlzc3VlclwiXG4gICAgICB0cmFlZmlrLmluZ3Jlc3Mua3ViZXJuZXRlcy5pby9yb3V0ZXIuZW50cnlwb2ludHM6IHdlYnNlY3VyZVxuICAgIHRsczpcbiAgICAgIC0gc2VjcmV0TmFtZTogZ3JhZmFuYS1nZW5lcmFsLXRsc1xuICAgICAgICBob3N0czpcbiAgICAgICAgLSAke2NvbmZpZy5kb21haW5zLmdyYWZhbmF9XG5cbiAgcmVzb3VyY2VzOlxuICAgIGxpbWl0czpcbiAgICAgIGNwdTogJHtjb25maWcucmVzb3VyY2VzLmdyYWZhbmEubGltaXRzLmNwdX1cbiAgICAgIG1lbW9yeTogJHtjb25maWcucmVzb3VyY2VzLmdyYWZhbmEubGltaXRzLm1lbW9yeX1cbiAgICByZXF1ZXN0czpcbiAgICAgIGNwdTogJHtjb25maWcucmVzb3VyY2VzLmdyYWZhbmEucmVxdWVzdHMuY3B1fVxuICAgICAgbWVtb3J5OiAke2NvbmZpZy5yZXNvdXJjZXMuZ3JhZmFuYS5yZXF1ZXN0cy5tZW1vcnl9XG5cbiAgcmVhZGluZXNzUHJvYmU6XG4gICAgaHR0cEdldDpcbiAgICAgIHBhdGg6IC9hcGkvaGVhbHRoXG4gICAgICBwb3J0OiAzMDAwXG4gICAgaW5pdGlhbERlbGF5U2Vjb25kczogMzBcbiAgICBwZXJpb2RTZWNvbmRzOiAxMFxuICAgIHRpbWVvdXRTZWNvbmRzOiA1XG4gICAgZmFpbHVyZVRocmVzaG9sZDogM1xuXG4gIGxpdmVuZXNzUHJvYmU6XG4gICAgaHR0cEdldDpcbiAgICAgIHBhdGg6IC9hcGkvaGVhbHRoXG4gICAgICBwb3J0OiAzMDAwXG4gICAgaW5pdGlhbERlbGF5U2Vjb25kczogNjBcbiAgICBwZXJpb2RTZWNvbmRzOiAxMFxuICAgIHRpbWVvdXRTZWNvbmRzOiAzMFxuICAgIGZhaWx1cmVUaHJlc2hvbGQ6IDEwXG5cbiAgcGVyc2lzdGVuY2U6XG4gICAgZW5hYmxlZDogdHJ1ZVxuICAgIHN0b3JhZ2VDbGFzc05hbWU6IGxvbmdob3JuXG4gICAgYWNjZXNzTW9kZXM6XG4gICAgICAtIFJlYWRXcml0ZU9uY2VcbiAgICBzaXplOiAke2NvbmZpZy5zdG9yYWdlLmdyYWZhbmF9XG5cbiAgIyBNYW51YWwgZGF0YXNvdXJjZSBwcm92aXNpb25pbmcgKHNpZGVjYXIgZGlzYWJsZWQpXG4gICMgVGhhbm9zIFF1ZXJ5IOKGkiBsb25nLXRlcm0vaGlzdG9yaWNhbCBtZXRyaWNzIChTMyB2aWEgU3RvcmUgKyBsaXZlIHNpZGVjYXIpLCBkZWZhdWx0XG4gICMgUHJvbWV0aGV1cyDihpIgbG9jYWwsIHJlY2VudC9oaWdoLXJlcyBvbmx5IChrZXB0IGZvciBsb3ctbGF0ZW5jeSByZWNlbnQgcXVlcmllcylcbiAgIyBMb2tpIGZvciBsb2cgYWdncmVnYXRpb25cbiAgZGF0YXNvdXJjZXM6XG4gICAgZGF0YXNvdXJjZXMueWFtbDpcbiAgICAgIGFwaVZlcnNpb246IDFcbiAgICAgICMgRGVsZXRlIGFueSBwcmUtZXhpc3RpbmcgTG9raSBkYXRhc291cmNlIChlLmcuIG9uZSBjcmVhdGVkIHdpdGggYVxuICAgICAgIyByYW5kb21seSBnZW5lcmF0ZWQgVUlEIGJlZm9yZSB3ZSBwaW5uZWQgdWlkOiBsb2tpKS4gV2l0aG91dCB0aGlzLFxuICAgICAgIyBHcmFmYW5hIGZhaWxzIHByb3Zpc2lvbmluZyB3aXRoIFwiZGF0YSBzb3VyY2Ugbm90IGZvdW5kXCIgYmVjYXVzZVxuICAgICAgIyB0aGUgdXBzZXJ0IGNvbGxpZGVzIHdpdGggdGhlIGV4aXN0aW5nIGVudHJ5LlxuICAgICAgZGVsZXRlRGF0YXNvdXJjZXM6XG4gICAgICAtIG5hbWU6IExva2lcbiAgICAgICAgb3JnSWQ6IDFcbiAgICAgIGRhdGFzb3VyY2VzOlxuICAgICAgLSBuYW1lOiBUaGFub3NcbiAgICAgICAgdHlwZTogcHJvbWV0aGV1c1xuICAgICAgICB1aWQ6IHRoYW5vc1xuICAgICAgICBhY2Nlc3M6IHByb3h5XG4gICAgICAgICMgdGhhbm9zLXF1ZXJ5IFNlcnZpY2U6IGh0dHAgcG9ydCA5MDkwIC0+IGNvbnRhaW5lciBodHRwIDEwOTAyXG4gICAgICAgIHVybDogaHR0cDovL3RoYW5vcy1xdWVyeS4ke2NvbmZpZy5uYW1lc3BhY2V9LnN2Yy5jbHVzdGVyLmxvY2FsOjkwOTBcbiAgICAgICAgaXNEZWZhdWx0OiB0cnVlXG4gICAgICAgIGpzb25EYXRhOlxuICAgICAgICAgIHRpbWVJbnRlcnZhbDogMzBzXG4gICAgICAtIG5hbWU6IFByb21ldGhldXNcbiAgICAgICAgdHlwZTogcHJvbWV0aGV1c1xuICAgICAgICB1aWQ6IHByb21ldGhldXNcbiAgICAgICAgYWNjZXNzOiBwcm94eVxuICAgICAgICB1cmw6IGh0dHA6Ly9rdWJlLXByb21ldGhldXMtc3RhY2stcHJvbWV0aGV1cy4ke2NvbmZpZy5uYW1lc3BhY2V9LnN2Yy5jbHVzdGVyLmxvY2FsOjkwOTBcbiAgICAgICAgaXNEZWZhdWx0OiBmYWxzZVxuICAgICAgICBqc29uRGF0YTpcbiAgICAgICAgICB0aW1lSW50ZXJ2YWw6IDMwc1xuICAgICAgLSBuYW1lOiBMb2tpXG4gICAgICAgIHR5cGU6IGxva2lcbiAgICAgICAgdWlkOiBsb2tpXG4gICAgICAgIGFjY2VzczogcHJveHlcbiAgICAgICAgdXJsOiBodHRwOi8vbG9raS1nYXRld2F5LiR7Y29uZmlnLm5hbWVzcGFjZX0uc3ZjLmNsdXN0ZXIubG9jYWxcbiAgICAgICAganNvbkRhdGE6XG4gICAgICAgICAgbWF4TGluZXM6IDEwMDAke3RlbXBvRGF0YXNvdXJjZX1cblxucHJvbWV0aGV1c09wZXJhdG9yOlxuICByZXNvdXJjZXM6XG4gICAgbGltaXRzOlxuICAgICAgY3B1OiAxXG4gICAgICBtZW1vcnk6IDUxMk1pXG4gICAgcmVxdWVzdHM6XG4gICAgICBjcHU6IDUwbVxuICAgICAgbWVtb3J5OiAxMjhNaVxuICBwcmlvcml0eUNsYXNzTmFtZTogaGlnaC1wcmlvcml0eVxuXG5wcm9tZXRoZXVzLW5vZGUtZXhwb3J0ZXI6XG4gICMgQmluZCA6OTEwMCB0byB0aGUgbm9kZSBJbnRlcm5hbElQIG9ubHksIG5vdCAwLjAuMC4wLiBXaXRoIGt1YmVSQkFDUHJveHlcbiAgIyBkaXNhYmxlZCB0aGUgc3ViLWNoYXJ0IHNldHMgSE9TVF9JUCBmcm9tIGZpZWxkUmVmIHN0YXR1cy5ob3N0SVAsIHdoaWNoIGlzXG4gICMgdGhlIG5vZGUncyBJbnRlcm5hbElQIChFWDogdlN3aXRjaCAxMC42LjAueCB2aWEgLS1ub2RlLWlwOyBjbG91ZDogaGNsb3VkXG4gICMgcHJpdmF0ZSBJUCkuIG5vZGUtZXhwb3J0ZXIgaXMgaG9zdE5ldHdvcmssIHNvIFByb21ldGhldXMgYWxyZWFkeSBzY3JhcGVzXG4gICMgdGhhdCBJbnRlcm5hbElQIGVuZHBvaW50IC0+IHNjcmFwaW5nIGlzIHVuYWZmZWN0ZWQsIG9ubHkgdGhlIHB1YmxpYy1OSUNcbiAgIyBleHBvc3VyZSBvZiB0aGUgdW5hdXRoZW50aWNhdGVkIG1ldHJpY3Mgb24gdGhlIEVYIHB1YmxpYyBJUHMgZ29lcyBhd2F5LlxuICBzZXJ2aWNlOlxuICAgIGxpc3Rlbk9uQWxsSW50ZXJmYWNlczogZmFsc2VcbiAgcmVzb3VyY2VzOlxuICAgIGxpbWl0czpcbiAgICAgIGNwdTogNTBtXG4gICAgICBtZW1vcnk6IDUwTWlcbiAgICByZXF1ZXN0czpcbiAgICAgIGNwdTogNW1cbiAgICAgIG1lbW9yeTogMTZNaVxuICBwcmlvcml0eUNsYXNzTmFtZTogaGlnaC1wcmlvcml0eVxuXG5rdWJlLXN0YXRlLW1ldHJpY3M6XG4gIHJlc291cmNlczpcbiAgICBsaW1pdHM6XG4gICAgICBjcHU6IDFcbiAgICAgIG1lbW9yeTogNTEyTWlcbiAgICByZXF1ZXN0czpcbiAgICAgIGNwdTogNW1cbiAgICAgIG1lbW9yeTogMTI4TWlcbiAgcHJpb3JpdHlDbGFzc05hbWU6IGhpZ2gtcHJpb3JpdHlcbmA7XG4gIH1cbn1cbiJdfQ==
package/package.json CHANGED
@@ -66,7 +66,7 @@
66
66
  "publishConfig": {
67
67
  "access": "public"
68
68
  },
69
- "version": "1.5.1",
69
+ "version": "1.6.0",
70
70
  "jest": {
71
71
  "coverageProvider": "v8",
72
72
  "testMatch": [