@effect-aws/client-elasticache 1.1.0 → 1.3.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.
@@ -88,9 +88,11 @@ const commands = {
88
88
  };
89
89
  /**
90
90
  * @since 1.0.0
91
- * @category tags
91
+ * @category models
92
92
  */
93
- exports.ElastiCacheService = effect_1.Context.GenericTag("@effect-aws/client-elasticache/ElastiCacheService");
93
+ class ElastiCacheService extends effect_1.Effect.Tag("@effect-aws/client-elasticache/ElastiCacheService")() {
94
+ }
95
+ exports.ElastiCacheService = ElastiCacheService;
94
96
  /**
95
97
  * @since 1.0.0
96
98
  * @category constructors
@@ -100,9 +102,13 @@ exports.makeElastiCacheService = effect_1.Effect.gen(function* (_) {
100
102
  return effect_1.Record.toEntries(commands).reduce((acc, [command]) => {
101
103
  const CommandCtor = commands[command];
102
104
  const methodImpl = (args, options) => effect_1.Effect.tryPromise({
103
- try: () => client.send(new CommandCtor(args), options !== null && options !== void 0 ? options : {}),
105
+ try: (abortSignal) => client.send(new CommandCtor(args), {
106
+ ...(options !== null && options !== void 0 ? options : {}),
107
+ abortSignal,
108
+ }),
104
109
  catch: (e) => {
105
- if (e instanceof client_elasticache_1.ElastiCacheServiceException) {
110
+ if (e instanceof client_elasticache_1.ElastiCacheServiceException &&
111
+ Errors_1.AllServiceErrors.includes(e.name)) {
106
112
  const ServiceException = effect_1.Data.tagged(e.name);
107
113
  return ServiceException({
108
114
  ...e,
@@ -129,7 +135,7 @@ exports.makeElastiCacheService = effect_1.Effect.gen(function* (_) {
129
135
  * @since 1.0.0
130
136
  * @category layers
131
137
  */
132
- exports.BaseElastiCacheServiceLayer = effect_1.Layer.effect(exports.ElastiCacheService, exports.makeElastiCacheService);
138
+ exports.BaseElastiCacheServiceLayer = effect_1.Layer.effect(ElastiCacheService, exports.makeElastiCacheService);
133
139
  /**
134
140
  * @since 1.0.0
135
141
  * @category layers
@@ -140,4 +146,4 @@ exports.ElastiCacheServiceLayer = exports.BaseElastiCacheServiceLayer.pipe(effec
140
146
  * @category layers
141
147
  */
142
148
  exports.DefaultElastiCacheServiceLayer = exports.ElastiCacheServiceLayer.pipe(effect_1.Layer.provide(ElastiCacheClientInstanceConfig_1.DefaultElastiCacheClientConfigLayer));
143
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWxhc3RpQ2FjaGVTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0VsYXN0aUNhY2hlU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7R0FFRztBQUNILG9FQW1PcUM7QUFFckMsbUNBQThEO0FBQzlELDJFQUdxQztBQUNyQyx1RkFBd0Y7QUFDeEYscUNBT2tCO0FBRWxCLE1BQU0sUUFBUSxHQUFHO0lBQ2Ysd0JBQXdCLEVBQXhCLDZDQUF3QjtJQUN4Qix5Q0FBeUMsRUFBekMsOERBQXlDO0lBQ3pDLDZCQUE2QixFQUE3QixrREFBNkI7SUFDN0IsNEJBQTRCLEVBQTVCLGlEQUE0QjtJQUM1Qix3QkFBd0IsRUFBeEIsNkNBQXdCO0lBQ3hCLGtDQUFrQyxFQUFsQyx1REFBa0M7SUFDbEMsbUJBQW1CLEVBQW5CLHdDQUFtQjtJQUNuQix5QkFBeUIsRUFBekIsOENBQXlCO0lBQ3pCLGdDQUFnQyxFQUFoQyxxREFBZ0M7SUFDaEMsK0JBQStCLEVBQS9CLG9EQUErQjtJQUMvQiw2QkFBNkIsRUFBN0Isa0RBQTZCO0lBQzdCLG1DQUFtQyxFQUFuQyx3REFBbUM7SUFDbkMsNkJBQTZCLEVBQTdCLGtEQUE2QjtJQUM3Qiw0QkFBNEIsRUFBNUIsaURBQTRCO0lBQzVCLG9DQUFvQyxFQUFwQyx5REFBb0M7SUFDcEMscUJBQXFCLEVBQXJCLDBDQUFxQjtJQUNyQixpQkFBaUIsRUFBakIsc0NBQWlCO0lBQ2pCLHNCQUFzQixFQUF0QiwyQ0FBc0I7SUFDdEIsaURBQWlELEVBQWpELHNFQUFpRDtJQUNqRCwyQkFBMkIsRUFBM0IsZ0RBQTJCO0lBQzNCLHlCQUF5QixFQUF6Qiw4Q0FBeUI7SUFDekIsZ0NBQWdDLEVBQWhDLHFEQUFnQztJQUNoQywrQkFBK0IsRUFBL0Isb0RBQStCO0lBQy9CLDZCQUE2QixFQUE3QixrREFBNkI7SUFDN0IsbUNBQW1DLEVBQW5DLHdEQUFtQztJQUNuQyw2QkFBNkIsRUFBN0Isa0RBQTZC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Ozs7R0FHRztBQUNVLFFBQUEsdUJBQXVCLEdBQUcsbUNBQTJCLENBQUMsSUFBSSxDQUNyRSxjQUFLLENBQUMsT0FBTyxDQUFDLDBEQUE4QixDQUFDLENBQzlDLENBQUM7QUFFRjs7O0dBR0c7QUFDVSxRQUFBLDhCQUE4QixHQUFHLCtCQUF1QixDQUFDLElBQUksQ0FDeEUsY0FBSyxDQUFDLE9BQU8sQ0FBQyxxRUFBbUMsQ0FBQyxDQUNuRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqL1xuaW1wb3J0IHtcbiAgQWRkVGFnc1RvUmVzb3VyY2VDb21tYW5kLFxuICB0eXBlIEFkZFRhZ3NUb1Jlc291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIEFkZFRhZ3NUb1Jlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgQXV0aG9yaXplQ2FjaGVTZWN1cml0eUdyb3VwSW5ncmVzc0NvbW1hbmQsXG4gIHR5cGUgQXV0aG9yaXplQ2FjaGVTZWN1cml0eUdyb3VwSW5ncmVzc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBBdXRob3JpemVDYWNoZVNlY3VyaXR5R3JvdXBJbmdyZXNzQ29tbWFuZE91dHB1dCxcbiAgQmF0Y2hBcHBseVVwZGF0ZUFjdGlvbkNvbW1hbmQsXG4gIHR5cGUgQmF0Y2hBcHBseVVwZGF0ZUFjdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBCYXRjaEFwcGx5VXBkYXRlQWN0aW9uQ29tbWFuZE91dHB1dCxcbiAgQmF0Y2hTdG9wVXBkYXRlQWN0aW9uQ29tbWFuZCxcbiAgdHlwZSBCYXRjaFN0b3BVcGRhdGVBY3Rpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgQmF0Y2hTdG9wVXBkYXRlQWN0aW9uQ29tbWFuZE91dHB1dCxcbiAgQ29tcGxldGVNaWdyYXRpb25Db21tYW5kLFxuICB0eXBlIENvbXBsZXRlTWlncmF0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIENvbXBsZXRlTWlncmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgQ29weVNlcnZlcmxlc3NDYWNoZVNuYXBzaG90Q29tbWFuZCxcbiAgdHlwZSBDb3B5U2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ29weVNlcnZlcmxlc3NDYWNoZVNuYXBzaG90Q29tbWFuZE91dHB1dCxcbiAgQ29weVNuYXBzaG90Q29tbWFuZCxcbiAgdHlwZSBDb3B5U25hcHNob3RDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ29weVNuYXBzaG90Q29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlQ2FjaGVDbHVzdGVyQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVDYWNoZUNsdXN0ZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlQ2FjaGVDbHVzdGVyQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlQ2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlQ2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlQ2FjaGVTZWN1cml0eUdyb3VwQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVDYWNoZVNlY3VyaXR5R3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlQ2FjaGVTZWN1cml0eUdyb3VwQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlQ2FjaGVTdWJuZXRHcm91cENvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlQ2FjaGVTdWJuZXRHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVDYWNoZVN1Ym5ldEdyb3VwQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlUmVwbGljYXRpb25Hcm91cENvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlUmVwbGljYXRpb25Hcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlU2VydmVybGVzc0NhY2hlQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVTZXJ2ZXJsZXNzQ2FjaGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlU2VydmVybGVzc0NhY2hlQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlU2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kLFxuICB0eXBlIENyZWF0ZVNlcnZlcmxlc3NDYWNoZVNuYXBzaG90Q29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZVNlcnZlcmxlc3NDYWNoZVNuYXBzaG90Q29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlU25hcHNob3RDb21tYW5kLFxuICB0eXBlIENyZWF0ZVNuYXBzaG90Q29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZVNuYXBzaG90Q29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlVXNlckNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlVXNlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVVc2VyQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlVXNlckdyb3VwQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVVc2VyR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlVXNlckdyb3VwQ29tbWFuZE91dHB1dCxcbiAgRGVjcmVhc2VOb2RlR3JvdXBzSW5HbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZCxcbiAgdHlwZSBEZWNyZWFzZU5vZGVHcm91cHNJbkdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVjcmVhc2VOb2RlR3JvdXBzSW5HbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZE91dHB1dCxcbiAgRGVjcmVhc2VSZXBsaWNhQ291bnRDb21tYW5kLFxuICB0eXBlIERlY3JlYXNlUmVwbGljYUNvdW50Q29tbWFuZElucHV0LFxuICB0eXBlIERlY3JlYXNlUmVwbGljYUNvdW50Q29tbWFuZE91dHB1dCxcbiAgRGVsZXRlQ2FjaGVDbHVzdGVyQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVDYWNoZUNsdXN0ZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlQ2FjaGVDbHVzdGVyQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlQ2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmQsXG4gIHR5cGUgRGVsZXRlQ2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlQ2FjaGVTZWN1cml0eUdyb3VwQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVDYWNoZVNlY3VyaXR5R3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlQ2FjaGVTZWN1cml0eUdyb3VwQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlQ2FjaGVTdWJuZXRHcm91cENvbW1hbmQsXG4gIHR5cGUgRGVsZXRlQ2FjaGVTdWJuZXRHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVDYWNoZVN1Ym5ldEdyb3VwQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmQsXG4gIHR5cGUgRGVsZXRlR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlUmVwbGljYXRpb25Hcm91cENvbW1hbmQsXG4gIHR5cGUgRGVsZXRlUmVwbGljYXRpb25Hcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlU2VydmVybGVzc0NhY2hlQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVTZXJ2ZXJsZXNzQ2FjaGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlU2VydmVybGVzc0NhY2hlQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlU2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kLFxuICB0eXBlIERlbGV0ZVNlcnZlcmxlc3NDYWNoZVNuYXBzaG90Q29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVNlcnZlcmxlc3NDYWNoZVNuYXBzaG90Q29tbWFuZE91dHB1dCxcbiAgRGVsZXRlU25hcHNob3RDb21tYW5kLFxuICB0eXBlIERlbGV0ZVNuYXBzaG90Q29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVNuYXBzaG90Q29tbWFuZE91dHB1dCxcbiAgRGVsZXRlVXNlckNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlVXNlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVVc2VyQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlVXNlckdyb3VwQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVVc2VyR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlVXNlckdyb3VwQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVDYWNoZUNsdXN0ZXJzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUNhY2hlQ2x1c3RlcnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVDYWNoZUNsdXN0ZXJzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVDYWNoZUVuZ2luZVZlcnNpb25zQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUNhY2hlRW5naW5lVmVyc2lvbnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVDYWNoZUVuZ2luZVZlcnNpb25zQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVDYWNoZVBhcmFtZXRlckdyb3Vwc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVDYWNoZVBhcmFtZXRlckdyb3Vwc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUNhY2hlUGFyYW1ldGVyR3JvdXBzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVDYWNoZVBhcmFtZXRlcnNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlQ2FjaGVQYXJhbWV0ZXJzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlQ2FjaGVQYXJhbWV0ZXJzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVDYWNoZVNlY3VyaXR5R3JvdXBzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUNhY2hlU2VjdXJpdHlHcm91cHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVDYWNoZVNlY3VyaXR5R3JvdXBzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVDYWNoZVN1Ym5ldEdyb3Vwc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVDYWNoZVN1Ym5ldEdyb3Vwc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUNhY2hlU3VibmV0R3JvdXBzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVFbmdpbmVEZWZhdWx0UGFyYW1ldGVyc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVFbmdpbmVEZWZhdWx0UGFyYW1ldGVyc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUVuZ2luZURlZmF1bHRQYXJhbWV0ZXJzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVFdmVudHNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlRXZlbnRzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlRXZlbnRzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVHbG9iYWxSZXBsaWNhdGlvbkdyb3Vwc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVHbG9iYWxSZXBsaWNhdGlvbkdyb3Vwc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVSZXBsaWNhdGlvbkdyb3Vwc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVSZXBsaWNhdGlvbkdyb3Vwc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVJlcGxpY2F0aW9uR3JvdXBzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVSZXNlcnZlZENhY2hlTm9kZXNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlUmVzZXJ2ZWRDYWNoZU5vZGVzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlUmVzZXJ2ZWRDYWNoZU5vZGVzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVSZXNlcnZlZENhY2hlTm9kZXNPZmZlcmluZ3NDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlUmVzZXJ2ZWRDYWNoZU5vZGVzT2ZmZXJpbmdzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlUmVzZXJ2ZWRDYWNoZU5vZGVzT2ZmZXJpbmdzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVTZXJ2ZXJsZXNzQ2FjaGVzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVNlcnZlcmxlc3NDYWNoZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVTZXJ2ZXJsZXNzQ2FjaGVzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdHNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlU2VydmVybGVzc0NhY2hlU25hcHNob3RzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlU2VydmVybGVzc0NhY2hlU25hcHNob3RzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVTZXJ2aWNlVXBkYXRlc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVTZXJ2aWNlVXBkYXRlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVNlcnZpY2VVcGRhdGVzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVTbmFwc2hvdHNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlU25hcHNob3RzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlU25hcHNob3RzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVVcGRhdGVBY3Rpb25zQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVVwZGF0ZUFjdGlvbnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVVcGRhdGVBY3Rpb25zQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVVc2VyR3JvdXBzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVVzZXJHcm91cHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVVc2VyR3JvdXBzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVVc2Vyc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVVc2Vyc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVVzZXJzQ29tbWFuZE91dHB1dCxcbiAgRGlzYXNzb2NpYXRlR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmQsXG4gIHR5cGUgRGlzYXNzb2NpYXRlR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEaXNhc3NvY2lhdGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZE91dHB1dCxcbiAgRWxhc3RpQ2FjaGVTZXJ2aWNlRXhjZXB0aW9uLFxuICBFeHBvcnRTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmQsXG4gIHR5cGUgRXhwb3J0U2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kSW5wdXQsXG4gIHR5cGUgRXhwb3J0U2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kT3V0cHV0LFxuICBGYWlsb3Zlckdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kLFxuICB0eXBlIEZhaWxvdmVyR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBGYWlsb3Zlckdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICBJbmNyZWFzZU5vZGVHcm91cHNJbkdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kLFxuICB0eXBlIEluY3JlYXNlTm9kZUdyb3Vwc0luR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBJbmNyZWFzZU5vZGVHcm91cHNJbkdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICBJbmNyZWFzZVJlcGxpY2FDb3VudENvbW1hbmQsXG4gIHR5cGUgSW5jcmVhc2VSZXBsaWNhQ291bnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgSW5jcmVhc2VSZXBsaWNhQ291bnRDb21tYW5kT3V0cHV0LFxuICBMaXN0QWxsb3dlZE5vZGVUeXBlTW9kaWZpY2F0aW9uc0NvbW1hbmQsXG4gIHR5cGUgTGlzdEFsbG93ZWROb2RlVHlwZU1vZGlmaWNhdGlvbnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEFsbG93ZWROb2RlVHlwZU1vZGlmaWNhdGlvbnNDb21tYW5kT3V0cHV0LFxuICBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZCxcbiAgdHlwZSBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICBNb2RpZnlDYWNoZUNsdXN0ZXJDb21tYW5kLFxuICB0eXBlIE1vZGlmeUNhY2hlQ2x1c3RlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBNb2RpZnlDYWNoZUNsdXN0ZXJDb21tYW5kT3V0cHV0LFxuICBNb2RpZnlDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZCxcbiAgdHlwZSBNb2RpZnlDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIE1vZGlmeUNhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kT3V0cHV0LFxuICBNb2RpZnlDYWNoZVN1Ym5ldEdyb3VwQ29tbWFuZCxcbiAgdHlwZSBNb2RpZnlDYWNoZVN1Ym5ldEdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIE1vZGlmeUNhY2hlU3VibmV0R3JvdXBDb21tYW5kT3V0cHV0LFxuICBNb2RpZnlHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZCxcbiAgdHlwZSBNb2RpZnlHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIE1vZGlmeUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICBNb2RpZnlSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZCxcbiAgdHlwZSBNb2RpZnlSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIE1vZGlmeVJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICBNb2RpZnlSZXBsaWNhdGlvbkdyb3VwU2hhcmRDb25maWd1cmF0aW9uQ29tbWFuZCxcbiAgdHlwZSBNb2RpZnlSZXBsaWNhdGlvbkdyb3VwU2hhcmRDb25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIE1vZGlmeVJlcGxpY2F0aW9uR3JvdXBTaGFyZENvbmZpZ3VyYXRpb25Db21tYW5kT3V0cHV0LFxuICBNb2RpZnlTZXJ2ZXJsZXNzQ2FjaGVDb21tYW5kLFxuICB0eXBlIE1vZGlmeVNlcnZlcmxlc3NDYWNoZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBNb2RpZnlTZXJ2ZXJsZXNzQ2FjaGVDb21tYW5kT3V0cHV0LFxuICBNb2RpZnlVc2VyQ29tbWFuZCxcbiAgdHlwZSBNb2RpZnlVc2VyQ29tbWFuZElucHV0LFxuICB0eXBlIE1vZGlmeVVzZXJDb21tYW5kT3V0cHV0LFxuICBNb2RpZnlVc2VyR3JvdXBDb21tYW5kLFxuICB0eXBlIE1vZGlmeVVzZXJHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBNb2RpZnlVc2VyR3JvdXBDb21tYW5kT3V0cHV0LFxuICBQdXJjaGFzZVJlc2VydmVkQ2FjaGVOb2Rlc09mZmVyaW5nQ29tbWFuZCxcbiAgdHlwZSBQdXJjaGFzZVJlc2VydmVkQ2FjaGVOb2Rlc09mZmVyaW5nQ29tbWFuZElucHV0LFxuICB0eXBlIFB1cmNoYXNlUmVzZXJ2ZWRDYWNoZU5vZGVzT2ZmZXJpbmdDb21tYW5kT3V0cHV0LFxuICBSZWJhbGFuY2VTbG90c0luR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmQsXG4gIHR5cGUgUmViYWxhbmNlU2xvdHNJbkdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgUmViYWxhbmNlU2xvdHNJbkdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICBSZWJvb3RDYWNoZUNsdXN0ZXJDb21tYW5kLFxuICB0eXBlIFJlYm9vdENhY2hlQ2x1c3RlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBSZWJvb3RDYWNoZUNsdXN0ZXJDb21tYW5kT3V0cHV0LFxuICBSZW1vdmVUYWdzRnJvbVJlc291cmNlQ29tbWFuZCxcbiAgdHlwZSBSZW1vdmVUYWdzRnJvbVJlc291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIFJlbW92ZVRhZ3NGcm9tUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICBSZXNldENhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kLFxuICB0eXBlIFJlc2V0Q2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBSZXNldENhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kT3V0cHV0LFxuICBSZXZva2VDYWNoZVNlY3VyaXR5R3JvdXBJbmdyZXNzQ29tbWFuZCxcbiAgdHlwZSBSZXZva2VDYWNoZVNlY3VyaXR5R3JvdXBJbmdyZXNzQ29tbWFuZElucHV0LFxuICB0eXBlIFJldm9rZUNhY2hlU2VjdXJpdHlHcm91cEluZ3Jlc3NDb21tYW5kT3V0cHV0LFxuICBTdGFydE1pZ3JhdGlvbkNvbW1hbmQsXG4gIHR5cGUgU3RhcnRNaWdyYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgU3RhcnRNaWdyYXRpb25Db21tYW5kT3V0cHV0LFxuICBUZXN0RmFpbG92ZXJDb21tYW5kLFxuICB0eXBlIFRlc3RGYWlsb3ZlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBUZXN0RmFpbG92ZXJDb21tYW5kT3V0cHV0LFxuICBUZXN0TWlncmF0aW9uQ29tbWFuZCxcbiAgdHlwZSBUZXN0TWlncmF0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIFRlc3RNaWdyYXRpb25Db21tYW5kT3V0cHV0LFxufSBmcm9tIFwiQGF3cy1zZGsvY2xpZW50LWVsYXN0aWNhY2hlXCI7XG5pbXBvcnQgeyB0eXBlIEh0dHBIYW5kbGVyT3B0aW9ucyBhcyBfX0h0dHBIYW5kbGVyT3B0aW9ucyB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuaW1wb3J0IHsgQ29udGV4dCwgRWZmZWN0LCBMYXllciwgUmVjb3JkLCBEYXRhIH0gZnJvbSBcImVmZmVjdFwiO1xuaW1wb3J0IHtcbiAgRWxhc3RpQ2FjaGVDbGllbnRJbnN0YW5jZSxcbiAgRWxhc3RpQ2FjaGVDbGllbnRJbnN0YW5jZUxheWVyLFxufSBmcm9tIFwiLi9FbGFzdGlDYWNoZUNsaWVudEluc3RhbmNlXCI7XG5pbXBvcnQgeyBEZWZhdWx0RWxhc3RpQ2FjaGVDbGllbnRDb25maWdMYXllciB9IGZyb20gXCIuL0VsYXN0aUNhY2hlQ2xpZW50SW5zdGFuY2VDb25maWdcIjtcbmltcG9ydCB7XG4gIEVsYXN0aUNhY2hlU2VydmljZUVycm9yLFxuICBJbnZhbGlkQ3JlZGVudGlhbHNFcnJvcixcbiAgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3IsXG4gIEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yLFxuICBTZGtFcnJvcixcbiAgVGFnZ2VkRXhjZXB0aW9uLFxufSBmcm9tIFwiLi9FcnJvcnNcIjtcblxuY29uc3QgY29tbWFuZHMgPSB7XG4gIEFkZFRhZ3NUb1Jlc291cmNlQ29tbWFuZCxcbiAgQXV0aG9yaXplQ2FjaGVTZWN1cml0eUdyb3VwSW5ncmVzc0NvbW1hbmQsXG4gIEJhdGNoQXBwbHlVcGRhdGVBY3Rpb25Db21tYW5kLFxuICBCYXRjaFN0b3BVcGRhdGVBY3Rpb25Db21tYW5kLFxuICBDb21wbGV0ZU1pZ3JhdGlvbkNvbW1hbmQsXG4gIENvcHlTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmQsXG4gIENvcHlTbmFwc2hvdENvbW1hbmQsXG4gIENyZWF0ZUNhY2hlQ2x1c3RlckNvbW1hbmQsXG4gIENyZWF0ZUNhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kLFxuICBDcmVhdGVDYWNoZVNlY3VyaXR5R3JvdXBDb21tYW5kLFxuICBDcmVhdGVDYWNoZVN1Ym5ldEdyb3VwQ29tbWFuZCxcbiAgQ3JlYXRlR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmQsXG4gIENyZWF0ZVJlcGxpY2F0aW9uR3JvdXBDb21tYW5kLFxuICBDcmVhdGVTZXJ2ZXJsZXNzQ2FjaGVDb21tYW5kLFxuICBDcmVhdGVTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmQsXG4gIENyZWF0ZVNuYXBzaG90Q29tbWFuZCxcbiAgQ3JlYXRlVXNlckNvbW1hbmQsXG4gIENyZWF0ZVVzZXJHcm91cENvbW1hbmQsXG4gIERlY3JlYXNlTm9kZUdyb3Vwc0luR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmQsXG4gIERlY3JlYXNlUmVwbGljYUNvdW50Q29tbWFuZCxcbiAgRGVsZXRlQ2FjaGVDbHVzdGVyQ29tbWFuZCxcbiAgRGVsZXRlQ2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmQsXG4gIERlbGV0ZUNhY2hlU2VjdXJpdHlHcm91cENvbW1hbmQsXG4gIERlbGV0ZUNhY2hlU3VibmV0R3JvdXBDb21tYW5kLFxuICBEZWxldGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZCxcbiAgRGVsZXRlUmVwbGljYXRpb25Hcm91cENvbW1hbmQsXG4gIERlbGV0ZVNlcnZlcmxlc3NDYWNoZUNvbW1hbmQsXG4gIERlbGV0ZVNlcnZlcmxlc3NDYWNoZVNuYXBzaG90Q29tbWFuZCxcbiAgRGVsZXRlU25hcHNob3RDb21tYW5kLFxuICBEZWxldGVVc2VyQ29tbWFuZCxcbiAgRGVsZXRlVXNlckdyb3VwQ29tbWFuZCxcbiAgRGVzY3JpYmVDYWNoZUNsdXN0ZXJzQ29tbWFuZCxcbiAgRGVzY3JpYmVDYWNoZUVuZ2luZVZlcnNpb25zQ29tbWFuZCxcbiAgRGVzY3JpYmVDYWNoZVBhcmFtZXRlckdyb3Vwc0NvbW1hbmQsXG4gIERlc2NyaWJlQ2FjaGVQYXJhbWV0ZXJzQ29tbWFuZCxcbiAgRGVzY3JpYmVDYWNoZVNlY3VyaXR5R3JvdXBzQ29tbWFuZCxcbiAgRGVzY3JpYmVDYWNoZVN1Ym5ldEdyb3Vwc0NvbW1hbmQsXG4gIERlc2NyaWJlRW5naW5lRGVmYXVsdFBhcmFtZXRlcnNDb21tYW5kLFxuICBEZXNjcmliZUV2ZW50c0NvbW1hbmQsXG4gIERlc2NyaWJlR2xvYmFsUmVwbGljYXRpb25Hcm91cHNDb21tYW5kLFxuICBEZXNjcmliZVJlcGxpY2F0aW9uR3JvdXBzQ29tbWFuZCxcbiAgRGVzY3JpYmVSZXNlcnZlZENhY2hlTm9kZXNDb21tYW5kLFxuICBEZXNjcmliZVJlc2VydmVkQ2FjaGVOb2Rlc09mZmVyaW5nc0NvbW1hbmQsXG4gIERlc2NyaWJlU2VydmVybGVzc0NhY2hlc0NvbW1hbmQsXG4gIERlc2NyaWJlU2VydmVybGVzc0NhY2hlU25hcHNob3RzQ29tbWFuZCxcbiAgRGVzY3JpYmVTZXJ2aWNlVXBkYXRlc0NvbW1hbmQsXG4gIERlc2NyaWJlU25hcHNob3RzQ29tbWFuZCxcbiAgRGVzY3JpYmVVcGRhdGVBY3Rpb25zQ29tbWFuZCxcbiAgRGVzY3JpYmVVc2VyR3JvdXBzQ29tbWFuZCxcbiAgRGVzY3JpYmVVc2Vyc0NvbW1hbmQsXG4gIERpc2Fzc29jaWF0ZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kLFxuICBFeHBvcnRTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmQsXG4gIEZhaWxvdmVyR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmQsXG4gIEluY3JlYXNlTm9kZUdyb3Vwc0luR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmQsXG4gIEluY3JlYXNlUmVwbGljYUNvdW50Q29tbWFuZCxcbiAgTGlzdEFsbG93ZWROb2RlVHlwZU1vZGlmaWNhdGlvbnNDb21tYW5kLFxuICBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZCxcbiAgTW9kaWZ5Q2FjaGVDbHVzdGVyQ29tbWFuZCxcbiAgTW9kaWZ5Q2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmQsXG4gIE1vZGlmeUNhY2hlU3VibmV0R3JvdXBDb21tYW5kLFxuICBNb2RpZnlHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZCxcbiAgTW9kaWZ5UmVwbGljYXRpb25Hcm91cENvbW1hbmQsXG4gIE1vZGlmeVJlcGxpY2F0aW9uR3JvdXBTaGFyZENvbmZpZ3VyYXRpb25Db21tYW5kLFxuICBNb2RpZnlTZXJ2ZXJsZXNzQ2FjaGVDb21tYW5kLFxuICBNb2RpZnlVc2VyQ29tbWFuZCxcbiAgTW9kaWZ5VXNlckdyb3VwQ29tbWFuZCxcbiAgUHVyY2hhc2VSZXNlcnZlZENhY2hlTm9kZXNPZmZlcmluZ0NvbW1hbmQsXG4gIFJlYmFsYW5jZVNsb3RzSW5HbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZCxcbiAgUmVib290Q2FjaGVDbHVzdGVyQ29tbWFuZCxcbiAgUmVtb3ZlVGFnc0Zyb21SZXNvdXJjZUNvbW1hbmQsXG4gIFJlc2V0Q2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmQsXG4gIFJldm9rZUNhY2hlU2VjdXJpdHlHcm91cEluZ3Jlc3NDb21tYW5kLFxuICBTdGFydE1pZ3JhdGlvbkNvbW1hbmQsXG4gIFRlc3RGYWlsb3ZlckNvbW1hbmQsXG4gIFRlc3RNaWdyYXRpb25Db21tYW5kLFxufTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBtb2RlbHNcbiAqL1xuZXhwb3J0IHR5cGUgRWxhc3RpQ2FjaGVTZXJ2aWNlID0ge1xuICByZWFkb25seSBfOiB1bmlxdWUgc3ltYm9sO1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBBZGRUYWdzVG9SZXNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBhZGRUYWdzVG9SZXNvdXJjZTogKFxuICAgIGFyZ3M6IEFkZFRhZ3NUb1Jlc291cmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIEFkZFRhZ3NUb1Jlc291cmNlQ29tbWFuZE91dHB1dCB8IFNka0Vycm9yIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQXV0aG9yaXplQ2FjaGVTZWN1cml0eUdyb3VwSW5ncmVzc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBhdXRob3JpemVDYWNoZVNlY3VyaXR5R3JvdXBJbmdyZXNzOiAoXG4gICAgYXJnczogQXV0aG9yaXplQ2FjaGVTZWN1cml0eUdyb3VwSW5ncmVzc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IEF1dGhvcml6ZUNhY2hlU2VjdXJpdHlHcm91cEluZ3Jlc3NDb21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBCYXRjaEFwcGx5VXBkYXRlQWN0aW9uQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGJhdGNoQXBwbHlVcGRhdGVBY3Rpb246IChcbiAgICBhcmdzOiBCYXRjaEFwcGx5VXBkYXRlQWN0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgQmF0Y2hBcHBseVVwZGF0ZUFjdGlvbkNvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQmF0Y2hTdG9wVXBkYXRlQWN0aW9uQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGJhdGNoU3RvcFVwZGF0ZUFjdGlvbjogKFxuICAgIGFyZ3M6IEJhdGNoU3RvcFVwZGF0ZUFjdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IEJhdGNoU3RvcFVwZGF0ZUFjdGlvbkNvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ29tcGxldGVNaWdyYXRpb25Db21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgY29tcGxldGVNaWdyYXRpb246IChcbiAgICBhcmdzOiBDb21wbGV0ZU1pZ3JhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBDb21wbGV0ZU1pZ3JhdGlvbkNvbW1hbmRPdXRwdXQgfCBTZGtFcnJvciB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENvcHlTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBjb3B5U2VydmVybGVzc0NhY2hlU25hcHNob3Q6IChcbiAgICBhcmdzOiBDb3B5U2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBDb3B5U2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDb3B5U25hcHNob3RDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgY29weVNuYXBzaG90OiAoXG4gICAgYXJnczogQ29weVNuYXBzaG90Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgQ29weVNuYXBzaG90Q29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlQ2FjaGVDbHVzdGVyQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZUNhY2hlQ2x1c3RlcjogKFxuICAgIGFyZ3M6IENyZWF0ZUNhY2hlQ2x1c3RlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IENyZWF0ZUNhY2hlQ2x1c3RlckNvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUNhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlQ2FjaGVQYXJhbWV0ZXJHcm91cDogKFxuICAgIGFyZ3M6IENyZWF0ZUNhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBDcmVhdGVDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlQ2FjaGVTZWN1cml0eUdyb3VwQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZUNhY2hlU2VjdXJpdHlHcm91cDogKFxuICAgIGFyZ3M6IENyZWF0ZUNhY2hlU2VjdXJpdHlHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IENyZWF0ZUNhY2hlU2VjdXJpdHlHcm91cENvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUNhY2hlU3VibmV0R3JvdXBDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlQ2FjaGVTdWJuZXRHcm91cDogKFxuICAgIGFyZ3M6IENyZWF0ZUNhY2hlU3VibmV0R3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlQ2FjaGVTdWJuZXRHcm91cENvbW1hbmRPdXRwdXQgfCBTZGtFcnJvciB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlR2xvYmFsUmVwbGljYXRpb25Hcm91cDogKFxuICAgIGFyZ3M6IENyZWF0ZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBDcmVhdGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZVJlcGxpY2F0aW9uR3JvdXA6IChcbiAgICBhcmdzOiBDcmVhdGVSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgQ3JlYXRlUmVwbGljYXRpb25Hcm91cENvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZVNlcnZlcmxlc3NDYWNoZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBjcmVhdGVTZXJ2ZXJsZXNzQ2FjaGU6IChcbiAgICBhcmdzOiBDcmVhdGVTZXJ2ZXJsZXNzQ2FjaGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBDcmVhdGVTZXJ2ZXJsZXNzQ2FjaGVDb21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRDcmVkZW50aWFsc0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlU2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlU2VydmVybGVzc0NhY2hlU25hcHNob3Q6IChcbiAgICBhcmdzOiBDcmVhdGVTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IENyZWF0ZVNlcnZlcmxlc3NDYWNoZVNuYXBzaG90Q29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlU25hcHNob3RDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlU25hcHNob3Q6IChcbiAgICBhcmdzOiBDcmVhdGVTbmFwc2hvdENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IENyZWF0ZVNuYXBzaG90Q29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlVXNlckNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBjcmVhdGVVc2VyOiAoXG4gICAgYXJnczogQ3JlYXRlVXNlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IENyZWF0ZVVzZXJDb21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVVc2VyR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlVXNlckdyb3VwOiAoXG4gICAgYXJnczogQ3JlYXRlVXNlckdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgQ3JlYXRlVXNlckdyb3VwQ29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWNyZWFzZU5vZGVHcm91cHNJbkdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVjcmVhc2VOb2RlR3JvdXBzSW5HbG9iYWxSZXBsaWNhdGlvbkdyb3VwOiAoXG4gICAgYXJnczogRGVjcmVhc2VOb2RlR3JvdXBzSW5HbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgRGVjcmVhc2VOb2RlR3JvdXBzSW5HbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVjcmVhc2VSZXBsaWNhQ291bnRDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVjcmVhc2VSZXBsaWNhQ291bnQ6IChcbiAgICBhcmdzOiBEZWNyZWFzZVJlcGxpY2FDb3VudENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IERlY3JlYXNlUmVwbGljYUNvdW50Q29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlQ2FjaGVDbHVzdGVyQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZUNhY2hlQ2x1c3RlcjogKFxuICAgIGFyZ3M6IERlbGV0ZUNhY2hlQ2x1c3RlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IERlbGV0ZUNhY2hlQ2x1c3RlckNvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUNhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlQ2FjaGVQYXJhbWV0ZXJHcm91cDogKFxuICAgIGFyZ3M6IERlbGV0ZUNhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBEZWxldGVDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlQ2FjaGVTZWN1cml0eUdyb3VwQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZUNhY2hlU2VjdXJpdHlHcm91cDogKFxuICAgIGFyZ3M6IERlbGV0ZUNhY2hlU2VjdXJpdHlHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IERlbGV0ZUNhY2hlU2VjdXJpdHlHcm91cENvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUNhY2hlU3VibmV0R3JvdXBDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlQ2FjaGVTdWJuZXRHcm91cDogKFxuICAgIGFyZ3M6IERlbGV0ZUNhY2hlU3VibmV0R3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlQ2FjaGVTdWJuZXRHcm91cENvbW1hbmRPdXRwdXQgfCBTZGtFcnJvciB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlR2xvYmFsUmVwbGljYXRpb25Hcm91cDogKFxuICAgIGFyZ3M6IERlbGV0ZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBEZWxldGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZVJlcGxpY2F0aW9uR3JvdXA6IChcbiAgICBhcmdzOiBEZWxldGVSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgRGVsZXRlUmVwbGljYXRpb25Hcm91cENvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVNlcnZlcmxlc3NDYWNoZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZWxldGVTZXJ2ZXJsZXNzQ2FjaGU6IChcbiAgICBhcmdzOiBEZWxldGVTZXJ2ZXJsZXNzQ2FjaGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBEZWxldGVTZXJ2ZXJsZXNzQ2FjaGVDb21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRDcmVkZW50aWFsc0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlU2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlU2VydmVybGVzc0NhY2hlU25hcHNob3Q6IChcbiAgICBhcmdzOiBEZWxldGVTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IERlbGV0ZVNlcnZlcmxlc3NDYWNoZVNuYXBzaG90Q29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVTbmFwc2hvdENvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZWxldGVTbmFwc2hvdDogKFxuICAgIGFyZ3M6IERlbGV0ZVNuYXBzaG90Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgRGVsZXRlU25hcHNob3RDb21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVVc2VyQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZVVzZXI6IChcbiAgICBhcmdzOiBEZWxldGVVc2VyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgRGVsZXRlVXNlckNvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlVXNlckdyb3VwQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZVVzZXJHcm91cDogKFxuICAgIGFyZ3M6IERlbGV0ZVVzZXJHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IERlbGV0ZVVzZXJHcm91cENvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVDYWNoZUNsdXN0ZXJzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaWJlQ2FjaGVDbHVzdGVyczogKFxuICAgIGFyZ3M6IERlc2NyaWJlQ2FjaGVDbHVzdGVyc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IERlc2NyaWJlQ2FjaGVDbHVzdGVyc0NvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlQ2FjaGVFbmdpbmVWZXJzaW9uc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZXNjcmliZUNhY2hlRW5naW5lVmVyc2lvbnM6IChcbiAgICBhcmdzOiBEZXNjcmliZUNhY2hlRW5naW5lVmVyc2lvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBEZXNjcmliZUNhY2hlRW5naW5lVmVyc2lvbnNDb21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVDYWNoZVBhcmFtZXRlckdyb3Vwc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZXNjcmliZUNhY2hlUGFyYW1ldGVyR3JvdXBzOiAoXG4gICAgYXJnczogRGVzY3JpYmVDYWNoZVBhcmFtZXRlckdyb3Vwc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IERlc2NyaWJlQ2FjaGVQYXJhbWV0ZXJHcm91cHNDb21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZUNhY2hlUGFyYW1ldGVyc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZXNjcmliZUNhY2hlUGFyYW1ldGVyczogKFxuICAgIGFyZ3M6IERlc2NyaWJlQ2FjaGVQYXJhbWV0ZXJzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgRGVzY3JpYmVDYWNoZVBhcmFtZXRlcnNDb21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZUNhY2hlU2VjdXJpdHlHcm91cHNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpYmVDYWNoZVNlY3VyaXR5R3JvdXBzOiAoXG4gICAgYXJnczogRGVzY3JpYmVDYWNoZVNlY3VyaXR5R3JvdXBzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgRGVzY3JpYmVDYWNoZVNlY3VyaXR5R3JvdXBzQ29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVDYWNoZVN1Ym5ldEdyb3Vwc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZXNjcmliZUNhY2hlU3VibmV0R3JvdXBzOiAoXG4gICAgYXJnczogRGVzY3JpYmVDYWNoZVN1Ym5ldEdyb3Vwc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZUNhY2hlU3VibmV0R3JvdXBzQ29tbWFuZE91dHB1dCB8IFNka0Vycm9yIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVFbmdpbmVEZWZhdWx0UGFyYW1ldGVyc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZXNjcmliZUVuZ2luZURlZmF1bHRQYXJhbWV0ZXJzOiAoXG4gICAgYXJnczogRGVzY3JpYmVFbmdpbmVEZWZhdWx0UGFyYW1ldGVyc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IERlc2NyaWJlRW5naW5lRGVmYXVsdFBhcmFtZXRlcnNDb21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZUV2ZW50c0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZXNjcmliZUV2ZW50czogKFxuICAgIGFyZ3M6IERlc2NyaWJlRXZlbnRzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgRGVzY3JpYmVFdmVudHNDb21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaWJlR2xvYmFsUmVwbGljYXRpb25Hcm91cHM6IChcbiAgICBhcmdzOiBEZXNjcmliZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgRGVzY3JpYmVHbG9iYWxSZXBsaWNhdGlvbkdyb3Vwc0NvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlUmVwbGljYXRpb25Hcm91cHNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpYmVSZXBsaWNhdGlvbkdyb3VwczogKFxuICAgIGFyZ3M6IERlc2NyaWJlUmVwbGljYXRpb25Hcm91cHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBEZXNjcmliZVJlcGxpY2F0aW9uR3JvdXBzQ29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVSZXNlcnZlZENhY2hlTm9kZXNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpYmVSZXNlcnZlZENhY2hlTm9kZXM6IChcbiAgICBhcmdzOiBEZXNjcmliZVJlc2VydmVkQ2FjaGVOb2Rlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IERlc2NyaWJlUmVzZXJ2ZWRDYWNoZU5vZGVzQ29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVSZXNlcnZlZENhY2hlTm9kZXNPZmZlcmluZ3NDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpYmVSZXNlcnZlZENhY2hlTm9kZXNPZmZlcmluZ3M6IChcbiAgICBhcmdzOiBEZXNjcmliZVJlc2VydmVkQ2FjaGVOb2Rlc09mZmVyaW5nc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IERlc2NyaWJlUmVzZXJ2ZWRDYWNoZU5vZGVzT2ZmZXJpbmdzQ29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVTZXJ2ZXJsZXNzQ2FjaGVzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaWJlU2VydmVybGVzc0NhY2hlczogKFxuICAgIGFyZ3M6IERlc2NyaWJlU2VydmVybGVzc0NhY2hlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IERlc2NyaWJlU2VydmVybGVzc0NhY2hlc0NvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlU2VydmVybGVzc0NhY2hlU25hcHNob3RzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaWJlU2VydmVybGVzc0NhY2hlU25hcHNob3RzOiAoXG4gICAgYXJnczogRGVzY3JpYmVTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBEZXNjcmliZVNlcnZlcmxlc3NDYWNoZVNuYXBzaG90c0NvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlU2VydmljZVVwZGF0ZXNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpYmVTZXJ2aWNlVXBkYXRlczogKFxuICAgIGFyZ3M6IERlc2NyaWJlU2VydmljZVVwZGF0ZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBEZXNjcmliZVNlcnZpY2VVcGRhdGVzQ29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVTbmFwc2hvdHNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpYmVTbmFwc2hvdHM6IChcbiAgICBhcmdzOiBEZXNjcmliZVNuYXBzaG90c0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IERlc2NyaWJlU25hcHNob3RzQ29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVVcGRhdGVBY3Rpb25zQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaWJlVXBkYXRlQWN0aW9uczogKFxuICAgIGFyZ3M6IERlc2NyaWJlVXBkYXRlQWN0aW9uc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IERlc2NyaWJlVXBkYXRlQWN0aW9uc0NvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlVXNlckdyb3Vwc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZXNjcmliZVVzZXJHcm91cHM6IChcbiAgICBhcmdzOiBEZXNjcmliZVVzZXJHcm91cHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBEZXNjcmliZVVzZXJHcm91cHNDb21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlVXNlcnNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpYmVVc2VyczogKFxuICAgIGFyZ3M6IERlc2NyaWJlVXNlcnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBEZXNjcmliZVVzZXJzQ29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEaXNhc3NvY2lhdGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRpc2Fzc29jaWF0ZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXA6IChcbiAgICBhcmdzOiBEaXNhc3NvY2lhdGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgRGlzYXNzb2NpYXRlR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEV4cG9ydFNlcnZlcmxlc3NDYWNoZVNuYXBzaG90Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGV4cG9ydFNlcnZlcmxlc3NDYWNoZVNuYXBzaG90OiAoXG4gICAgYXJnczogRXhwb3J0U2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBFeHBvcnRTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRmFpbG92ZXJHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGZhaWxvdmVyR2xvYmFsUmVwbGljYXRpb25Hcm91cDogKFxuICAgIGFyZ3M6IEZhaWxvdmVyR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IEZhaWxvdmVyR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEluY3JlYXNlTm9kZUdyb3Vwc0luR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBpbmNyZWFzZU5vZGVHcm91cHNJbkdsb2JhbFJlcGxpY2F0aW9uR3JvdXA6IChcbiAgICBhcmdzOiBJbmNyZWFzZU5vZGVHcm91cHNJbkdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBJbmNyZWFzZU5vZGVHcm91cHNJbkdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEluY3JlYXNlUmVwbGljYUNvdW50Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGluY3JlYXNlUmVwbGljYUNvdW50OiAoXG4gICAgYXJnczogSW5jcmVhc2VSZXBsaWNhQ291bnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBJbmNyZWFzZVJlcGxpY2FDb3VudENvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RBbGxvd2VkTm9kZVR5cGVNb2RpZmljYXRpb25zQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RBbGxvd2VkTm9kZVR5cGVNb2RpZmljYXRpb25zOiAoXG4gICAgYXJnczogTGlzdEFsbG93ZWROb2RlVHlwZU1vZGlmaWNhdGlvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBMaXN0QWxsb3dlZE5vZGVUeXBlTW9kaWZpY2F0aW9uc0NvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdFRhZ3NGb3JSZXNvdXJjZTogKFxuICAgIGFyZ3M6IExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmRPdXRwdXQgfCBTZGtFcnJvciB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIE1vZGlmeUNhY2hlQ2x1c3RlckNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBtb2RpZnlDYWNoZUNsdXN0ZXI6IChcbiAgICBhcmdzOiBNb2RpZnlDYWNoZUNsdXN0ZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBNb2RpZnlDYWNoZUNsdXN0ZXJDb21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBNb2RpZnlDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IG1vZGlmeUNhY2hlUGFyYW1ldGVyR3JvdXA6IChcbiAgICBhcmdzOiBNb2RpZnlDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgTW9kaWZ5Q2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIE1vZGlmeUNhY2hlU3VibmV0R3JvdXBDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbW9kaWZ5Q2FjaGVTdWJuZXRHcm91cDogKFxuICAgIGFyZ3M6IE1vZGlmeUNhY2hlU3VibmV0R3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgTW9kaWZ5Q2FjaGVTdWJuZXRHcm91cENvbW1hbmRPdXRwdXQgfCBTZGtFcnJvciB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIE1vZGlmeUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbW9kaWZ5R2xvYmFsUmVwbGljYXRpb25Hcm91cDogKFxuICAgIGFyZ3M6IE1vZGlmeUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBNb2RpZnlHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBNb2RpZnlSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IG1vZGlmeVJlcGxpY2F0aW9uR3JvdXA6IChcbiAgICBhcmdzOiBNb2RpZnlSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgTW9kaWZ5UmVwbGljYXRpb25Hcm91cENvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIE1vZGlmeVJlcGxpY2F0aW9uR3JvdXBTaGFyZENvbmZpZ3VyYXRpb25Db21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbW9kaWZ5UmVwbGljYXRpb25Hcm91cFNoYXJkQ29uZmlndXJhdGlvbjogKFxuICAgIGFyZ3M6IE1vZGlmeVJlcGxpY2F0aW9uR3JvdXBTaGFyZENvbmZpZ3VyYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBNb2RpZnlSZXBsaWNhdGlvbkdyb3VwU2hhcmRDb25maWd1cmF0aW9uQ29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTW9kaWZ5U2VydmVybGVzc0NhY2hlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IG1vZGlmeVNlcnZlcmxlc3NDYWNoZTogKFxuICAgIGFyZ3M6IE1vZGlmeVNlcnZlcmxlc3NDYWNoZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IE1vZGlmeVNlcnZlcmxlc3NDYWNoZUNvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZENyZWRlbnRpYWxzRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBNb2RpZnlVc2VyQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IG1vZGlmeVVzZXI6IChcbiAgICBhcmdzOiBNb2RpZnlVc2VyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgTW9kaWZ5VXNlckNvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIE1vZGlmeVVzZXJHcm91cENvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBtb2RpZnlVc2VyR3JvdXA6IChcbiAgICBhcmdzOiBNb2RpZnlVc2VyR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBNb2RpZnlVc2VyR3JvdXBDb21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXJjaGFzZVJlc2VydmVkQ2FjaGVOb2Rlc09mZmVyaW5nQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHB1cmNoYXNlUmVzZXJ2ZWRDYWNoZU5vZGVzT2ZmZXJpbmc6IChcbiAgICBhcmdzOiBQdXJjaGFzZVJlc2VydmVkQ2FjaGVOb2Rlc09mZmVyaW5nQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgUHVyY2hhc2VSZXNlcnZlZENhY2hlTm9kZXNPZmZlcmluZ0NvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJlYmFsYW5jZVNsb3RzSW5HbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHJlYmFsYW5jZVNsb3RzSW5HbG9iYWxSZXBsaWNhdGlvbkdyb3VwOiAoXG4gICAgYXJnczogUmViYWxhbmNlU2xvdHNJbkdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBSZWJhbGFuY2VTbG90c0luR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVib290Q2FjaGVDbHVzdGVyQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHJlYm9vdENhY2hlQ2x1c3RlcjogKFxuICAgIGFyZ3M6IFJlYm9vdENhY2hlQ2x1c3RlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBSZWJvb3RDYWNoZUNsdXN0ZXJDb21tYW5kT3V0cHV0IHwgU2RrRXJyb3IgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBSZW1vdmVUYWdzRnJvbVJlc291cmNlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHJlbW92ZVRhZ3NGcm9tUmVzb3VyY2U6IChcbiAgICBhcmdzOiBSZW1vdmVUYWdzRnJvbVJlc291cmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIFJlbW92ZVRhZ3NGcm9tUmVzb3VyY2VDb21tYW5kT3V0cHV0IHwgU2RrRXJyb3IgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBSZXNldENhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgcmVzZXRDYWNoZVBhcmFtZXRlckdyb3VwOiAoXG4gICAgYXJnczogUmVzZXRDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgUmVzZXRDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmV2b2tlQ2FjaGVTZWN1cml0eUdyb3VwSW5ncmVzc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSByZXZva2VDYWNoZVNlY3VyaXR5R3JvdXBJbmdyZXNzOiAoXG4gICAgYXJnczogUmV2b2tlQ2FjaGVTZWN1cml0eUdyb3VwSW5ncmVzc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IFJldm9rZUNhY2hlU2VjdXJpdHlHcm91cEluZ3Jlc3NDb21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTdGFydE1pZ3JhdGlvbkNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBzdGFydE1pZ3JhdGlvbjogKFxuICAgIGFyZ3M6IFN0YXJ0TWlncmF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgU3RhcnRNaWdyYXRpb25Db21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFRlc3RGYWlsb3ZlckNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB0ZXN0RmFpbG92ZXI6IChcbiAgICBhcmdzOiBUZXN0RmFpbG92ZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBUZXN0RmFpbG92ZXJDb21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBUZXN0TWlncmF0aW9uQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHRlc3RNaWdyYXRpb246IChcbiAgICBhcmdzOiBUZXN0TWlncmF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgVGVzdE1pZ3JhdGlvbkNvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcbn07XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgdGFnc1xuICovXG5leHBvcnQgY29uc3QgRWxhc3RpQ2FjaGVTZXJ2aWNlID0gQ29udGV4dC5HZW5lcmljVGFnPEVsYXN0aUNhY2hlU2VydmljZT4oXG4gIFwiQGVmZmVjdC1hd3MvY2xpZW50LWVsYXN0aWNhY2hlL0VsYXN0aUNhY2hlU2VydmljZVwiLFxuKTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBjb25zdHJ1Y3RvcnNcbiAqL1xuZXhwb3J0IGNvbnN0IG1ha2VFbGFzdGlDYWNoZVNlcnZpY2UgPSBFZmZlY3QuZ2VuKGZ1bmN0aW9uKiAoXykge1xuICBjb25zdCBjbGllbnQgPSB5aWVsZCogXyhFbGFzdGlDYWNoZUNsaWVudEluc3RhbmNlKTtcblxuICByZXR1cm4gUmVjb3JkLnRvRW50cmllcyhjb21tYW5kcykucmVkdWNlKChhY2MsIFtjb21tYW5kXSkgPT4ge1xuICAgIGNvbnN0IENvbW1hbmRDdG9yID0gY29tbWFuZHNbY29tbWFuZF0gYXMgYW55O1xuICAgIGNvbnN0IG1ldGhvZEltcGwgPSAoYXJnczogYW55LCBvcHRpb25zOiBhbnkpID0+XG4gICAgICBFZmZlY3QudHJ5UHJvbWlzZSh7XG4gICAgICAgIHRyeTogKCkgPT4gY2xpZW50LnNlbmQobmV3IENvbW1hbmRDdG9yKGFyZ3MpLCBvcHRpb25zID8/IHt9KSxcbiAgICAgICAgY2F0Y2g6IChlKSA9PiB7XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBFbGFzdGlDYWNoZVNlcnZpY2VFeGNlcHRpb24pIHtcbiAgICAgICAgICAgIGNvbnN0IFNlcnZpY2VFeGNlcHRpb24gPSBEYXRhLnRhZ2dlZDxcbiAgICAgICAgICAgICAgVGFnZ2VkRXhjZXB0aW9uPEVsYXN0aUNhY2hlU2VydmljZUV4Y2VwdGlvbj5cbiAgICAgICAgICAgID4oZS5uYW1lKTtcblxuICAgICAgICAgICAgcmV0dXJuIFNlcnZpY2VFeGNlcHRpb24oe1xuICAgICAgICAgICAgICAuLi5lLFxuICAgICAgICAgICAgICBtZXNzYWdlOiBlLm1lc3NhZ2UsXG4gICAgICAgICAgICAgIHN0YWNrOiBlLnN0YWNrLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBTZGtFcnJvcih7XG4gICAgICAgICAgICAgIC4uLmUsXG4gICAgICAgICAgICAgIG5hbWU6IFwiU2RrRXJyb3JcIixcbiAgICAgICAgICAgICAgbWVzc2FnZTogZS5tZXNzYWdlLFxuICAgICAgICAgICAgICBzdGFjazogZS5zdGFjayxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgY29uc3QgbWV0aG9kTmFtZSA9IChjb21tYW5kWzBdLnRvTG93ZXJDYXNlKCkgKyBjb21tYW5kLnNsaWNlKDEpKS5yZXBsYWNlKFxuICAgICAgL0NvbW1hbmQkLyxcbiAgICAgIFwiXCIsXG4gICAgKTtcbiAgICByZXR1cm4geyAuLi5hY2MsIFttZXRob2ROYW1lXTogbWV0aG9kSW1wbCB9O1xuICB9LCB7fSkgYXMgRWxhc3RpQ2FjaGVTZXJ2aWNlO1xufSk7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBCYXNlRWxhc3RpQ2FjaGVTZXJ2aWNlTGF5ZXIgPSBMYXllci5lZmZlY3QoXG4gIEVsYXN0aUNhY2hlU2VydmljZSxcbiAgbWFrZUVsYXN0aUNhY2hlU2VydmljZSxcbik7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBFbGFzdGlDYWNoZVNlcnZpY2VMYXllciA9IEJhc2VFbGFzdGlDYWNoZVNlcnZpY2VMYXllci5waXBlKFxuICBMYXllci5wcm92aWRlKEVsYXN0aUNhY2hlQ2xpZW50SW5zdGFuY2VMYXllciksXG4pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICovXG5leHBvcnQgY29uc3QgRGVmYXVsdEVsYXN0aUNhY2hlU2VydmljZUxheWVyID0gRWxhc3RpQ2FjaGVTZXJ2aWNlTGF5ZXIucGlwZShcbiAgTGF5ZXIucHJvdmlkZShEZWZhdWx0RWxhc3RpQ2FjaGVDbGllbnRDb25maWdMYXllciksXG4pO1xuIl19
149
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWxhc3RpQ2FjaGVTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0VsYXN0aUNhY2hlU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7R0FFRztBQUNILG9FQW1PcUM7QUFDckMsbUNBQXFEO0FBQ3JELDJFQUdxQztBQUNyQyx1RkFBd0Y7QUFDeEYscUNBZ0ZrQjtBQVVsQixNQUFNLFFBQVEsR0FBRztJQUNmLHdCQUF3QixFQUF4Qiw2Q0FBd0I7SUFDeEIseUNBQXlDLEVBQXpDLDhEQUF5QztJQUN6Qyw2QkFBNkIsRUFBN0Isa0RBQTZCO0lBQzdCLDRCQUE0QixFQUE1QixpREFBNEI7SUFDNUIsd0JBQXdCLEVBQXhCLDZDQUF3QjtJQUN4QixrQ0FBa0MsRUFBbEMsdURBQWtDO0lBQ2xDLG1CQUFtQixFQUFuQix3Q0FBbUI7SUFDbkIseUJBQXlCLEVBQXpCLDhDQUF5QjtJQUN6QixnQ0FBZ0MsRUFBaEMscURBQWdDO0lBQ2hDLCtCQUErQixFQUEvQixvREFBK0I7SUFDL0IsNkJBQTZCLEVBQTdCLGtEQUE2QjtJQUM3QixtQ0FBbUMsRUFBbkMsd0RBQW1DO0lBQ25DLDZCQUE2QixFQUE3QixrREFBNkI7SUFDN0IsNEJBQTRCLEVBQTVCLGlEQUE0QjtJQUM1QixvQ0FBb0MsRUFBcEMseURBQW9DO0lBQ3BDLHFCQUFxQixFQUFyQiwwQ0FBcUI7SUFDckIsaUJBQWlCLEVBQWpCLHNDQUFpQjtJQUNqQixzQkFBc0IsRUFBdEIsMkNBQXNCO0lBQ3RCLGlEQUFpRCxFQUFqRCxzRUFBaUQ7SUFDakQsMkJBQTJCLEVBQTNCLGdEQUEyQjtJQUMzQix5QkFBeUIsRUFBekIsOENBQXlCO0lBQ3pCLGdDQUFnQyxFQUFoQyxxREFBZ0M7SUFDaEMsK0JBQStCLEVBQS9CLG9EQUErQjtJQUMvQiw2QkFBNkIsRUFBN0Isa0RBQTZCO0lBQzdCLG1DQUFtQyxFQUFuQyx3REFBbUM7SUFDbkMsNkJBQTZCLEVBQTdCLGtEQUE2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d0IsQ0FBQztBQUNoQyxDQUFDLENBQUMsQ0FBQztBQUVIOzs7R0FHRztBQUNVLFFBQUEsMkJBQTJCLEdBQUcsY0FBSyxDQUFDLE1BQU0sQ0FDckQsa0JBQWtCLEVBQ2xCLDhCQUFzQixDQUN2QixDQUFDO0FBRUY7OztHQUdHO0FBQ1UsUUFBQSx1QkFBdUIsR0FBRyxtQ0FBMkIsQ0FBQyxJQUFJLENBQ3JFLGNBQUssQ0FBQyxPQUFPLENBQUMsMERBQThCLENBQUMsQ0FDOUMsQ0FBQztBQUVGOzs7R0FHRztBQUNVLFFBQUEsOEJBQThCLEdBQUcsK0JBQXVCLENBQUMsSUFBSSxDQUN4RSxjQUFLLENBQUMsT0FBTyxDQUFDLHFFQUFtQyxDQUFDLENBQ25ELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBzaW5jZSAxLjAuMFxuICovXG5pbXBvcnQge1xuICBFbGFzdGlDYWNoZVNlcnZpY2VFeGNlcHRpb24sXG4gIEFkZFRhZ3NUb1Jlc291cmNlQ29tbWFuZCxcbiAgdHlwZSBBZGRUYWdzVG9SZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBBZGRUYWdzVG9SZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIEF1dGhvcml6ZUNhY2hlU2VjdXJpdHlHcm91cEluZ3Jlc3NDb21tYW5kLFxuICB0eXBlIEF1dGhvcml6ZUNhY2hlU2VjdXJpdHlHcm91cEluZ3Jlc3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgQXV0aG9yaXplQ2FjaGVTZWN1cml0eUdyb3VwSW5ncmVzc0NvbW1hbmRPdXRwdXQsXG4gIEJhdGNoQXBwbHlVcGRhdGVBY3Rpb25Db21tYW5kLFxuICB0eXBlIEJhdGNoQXBwbHlVcGRhdGVBY3Rpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgQmF0Y2hBcHBseVVwZGF0ZUFjdGlvbkNvbW1hbmRPdXRwdXQsXG4gIEJhdGNoU3RvcFVwZGF0ZUFjdGlvbkNvbW1hbmQsXG4gIHR5cGUgQmF0Y2hTdG9wVXBkYXRlQWN0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIEJhdGNoU3RvcFVwZGF0ZUFjdGlvbkNvbW1hbmRPdXRwdXQsXG4gIENvbXBsZXRlTWlncmF0aW9uQ29tbWFuZCxcbiAgdHlwZSBDb21wbGV0ZU1pZ3JhdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDb21wbGV0ZU1pZ3JhdGlvbkNvbW1hbmRPdXRwdXQsXG4gIENvcHlTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmQsXG4gIHR5cGUgQ29weVNlcnZlcmxlc3NDYWNoZVNuYXBzaG90Q29tbWFuZElucHV0LFxuICB0eXBlIENvcHlTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmRPdXRwdXQsXG4gIENvcHlTbmFwc2hvdENvbW1hbmQsXG4gIHR5cGUgQ29weVNuYXBzaG90Q29tbWFuZElucHV0LFxuICB0eXBlIENvcHlTbmFwc2hvdENvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUNhY2hlQ2x1c3RlckNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlQ2FjaGVDbHVzdGVyQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUNhY2hlQ2x1c3RlckNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUNhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kLFxuICB0eXBlIENyZWF0ZUNhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlQ2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUNhY2hlU2VjdXJpdHlHcm91cENvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlQ2FjaGVTZWN1cml0eUdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUNhY2hlU2VjdXJpdHlHcm91cENvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUNhY2hlU3VibmV0R3JvdXBDb21tYW5kLFxuICB0eXBlIENyZWF0ZUNhY2hlU3VibmV0R3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlQ2FjaGVTdWJuZXRHcm91cENvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kLFxuICB0eXBlIENyZWF0ZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZVJlcGxpY2F0aW9uR3JvdXBDb21tYW5kLFxuICB0eXBlIENyZWF0ZVJlcGxpY2F0aW9uR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlUmVwbGljYXRpb25Hcm91cENvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZVNlcnZlcmxlc3NDYWNoZUNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlU2VydmVybGVzc0NhY2hlQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZVNlcnZlcmxlc3NDYWNoZUNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZVNlcnZlcmxlc3NDYWNoZVNuYXBzaG90Q29tbWFuZCxcbiAgdHlwZSBDcmVhdGVTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZVNuYXBzaG90Q29tbWFuZCxcbiAgdHlwZSBDcmVhdGVTbmFwc2hvdENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVTbmFwc2hvdENvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZVVzZXJDb21tYW5kLFxuICB0eXBlIENyZWF0ZVVzZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlVXNlckNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZVVzZXJHcm91cENvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlVXNlckdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZVVzZXJHcm91cENvbW1hbmRPdXRwdXQsXG4gIERlY3JlYXNlTm9kZUdyb3Vwc0luR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmQsXG4gIHR5cGUgRGVjcmVhc2VOb2RlR3JvdXBzSW5HbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIERlY3JlYXNlTm9kZUdyb3Vwc0luR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRPdXRwdXQsXG4gIERlY3JlYXNlUmVwbGljYUNvdW50Q29tbWFuZCxcbiAgdHlwZSBEZWNyZWFzZVJlcGxpY2FDb3VudENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWNyZWFzZVJlcGxpY2FDb3VudENvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUNhY2hlQ2x1c3RlckNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlQ2FjaGVDbHVzdGVyQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUNhY2hlQ2x1c3RlckNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUNhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kLFxuICB0eXBlIERlbGV0ZUNhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlQ2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUNhY2hlU2VjdXJpdHlHcm91cENvbW1hbmQsXG4gIHR5cGUgRGVsZXRlQ2FjaGVTZWN1cml0eUdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUNhY2hlU2VjdXJpdHlHcm91cENvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUNhY2hlU3VibmV0R3JvdXBDb21tYW5kLFxuICB0eXBlIERlbGV0ZUNhY2hlU3VibmV0R3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlQ2FjaGVTdWJuZXRHcm91cENvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kLFxuICB0eXBlIERlbGV0ZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVJlcGxpY2F0aW9uR3JvdXBDb21tYW5kLFxuICB0eXBlIERlbGV0ZVJlcGxpY2F0aW9uR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlUmVwbGljYXRpb25Hcm91cENvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVNlcnZlcmxlc3NDYWNoZUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlU2VydmVybGVzc0NhY2hlQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVNlcnZlcmxlc3NDYWNoZUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVNlcnZlcmxlc3NDYWNoZVNuYXBzaG90Q29tbWFuZCxcbiAgdHlwZSBEZWxldGVTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVNuYXBzaG90Q29tbWFuZCxcbiAgdHlwZSBEZWxldGVTbmFwc2hvdENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVTbmFwc2hvdENvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVVzZXJDb21tYW5kLFxuICB0eXBlIERlbGV0ZVVzZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlVXNlckNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVVzZXJHcm91cENvbW1hbmQsXG4gIHR5cGUgRGVsZXRlVXNlckdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVVzZXJHcm91cENvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlQ2FjaGVDbHVzdGVyc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVDYWNoZUNsdXN0ZXJzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlQ2FjaGVDbHVzdGVyc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlQ2FjaGVFbmdpbmVWZXJzaW9uc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVDYWNoZUVuZ2luZVZlcnNpb25zQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlQ2FjaGVFbmdpbmVWZXJzaW9uc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlQ2FjaGVQYXJhbWV0ZXJHcm91cHNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlQ2FjaGVQYXJhbWV0ZXJHcm91cHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVDYWNoZVBhcmFtZXRlckdyb3Vwc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlQ2FjaGVQYXJhbWV0ZXJzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUNhY2hlUGFyYW1ldGVyc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUNhY2hlUGFyYW1ldGVyc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlQ2FjaGVTZWN1cml0eUdyb3Vwc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVDYWNoZVNlY3VyaXR5R3JvdXBzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlQ2FjaGVTZWN1cml0eUdyb3Vwc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlQ2FjaGVTdWJuZXRHcm91cHNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlQ2FjaGVTdWJuZXRHcm91cHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVDYWNoZVN1Ym5ldEdyb3Vwc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRW5naW5lRGVmYXVsdFBhcmFtZXRlcnNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlRW5naW5lRGVmYXVsdFBhcmFtZXRlcnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVFbmdpbmVEZWZhdWx0UGFyYW1ldGVyc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRXZlbnRzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUV2ZW50c0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUV2ZW50c0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlR2xvYmFsUmVwbGljYXRpb25Hcm91cHNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlR2xvYmFsUmVwbGljYXRpb25Hcm91cHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVHbG9iYWxSZXBsaWNhdGlvbkdyb3Vwc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlUmVwbGljYXRpb25Hcm91cHNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlUmVwbGljYXRpb25Hcm91cHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVSZXBsaWNhdGlvbkdyb3Vwc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlUmVzZXJ2ZWRDYWNoZU5vZGVzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVJlc2VydmVkQ2FjaGVOb2Rlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVJlc2VydmVkQ2FjaGVOb2Rlc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlUmVzZXJ2ZWRDYWNoZU5vZGVzT2ZmZXJpbmdzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVJlc2VydmVkQ2FjaGVOb2Rlc09mZmVyaW5nc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVJlc2VydmVkQ2FjaGVOb2Rlc09mZmVyaW5nc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlU2VydmVybGVzc0NhY2hlc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVTZXJ2ZXJsZXNzQ2FjaGVzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlU2VydmVybGVzc0NhY2hlc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlU2VydmVybGVzc0NhY2hlU25hcHNob3RzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVNlcnZlcmxlc3NDYWNoZVNuYXBzaG90c0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVNlcnZlcmxlc3NDYWNoZVNuYXBzaG90c0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlU2VydmljZVVwZGF0ZXNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlU2VydmljZVVwZGF0ZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVTZXJ2aWNlVXBkYXRlc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlU25hcHNob3RzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVNuYXBzaG90c0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVNuYXBzaG90c0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlVXBkYXRlQWN0aW9uc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVVcGRhdGVBY3Rpb25zQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlVXBkYXRlQWN0aW9uc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlVXNlckdyb3Vwc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVVc2VyR3JvdXBzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlVXNlckdyb3Vwc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlVXNlcnNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlVXNlcnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVVc2Vyc0NvbW1hbmRPdXRwdXQsXG4gIERpc2Fzc29jaWF0ZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kLFxuICB0eXBlIERpc2Fzc29jaWF0ZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGlzYXNzb2NpYXRlR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRPdXRwdXQsXG4gIEV4cG9ydFNlcnZlcmxlc3NDYWNoZVNuYXBzaG90Q29tbWFuZCxcbiAgdHlwZSBFeHBvcnRTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmRJbnB1dCxcbiAgdHlwZSBFeHBvcnRTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmRPdXRwdXQsXG4gIEZhaWxvdmVyR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmQsXG4gIHR5cGUgRmFpbG92ZXJHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIEZhaWxvdmVyR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRPdXRwdXQsXG4gIEluY3JlYXNlTm9kZUdyb3Vwc0luR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmQsXG4gIHR5cGUgSW5jcmVhc2VOb2RlR3JvdXBzSW5HbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIEluY3JlYXNlTm9kZUdyb3Vwc0luR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRPdXRwdXQsXG4gIEluY3JlYXNlUmVwbGljYUNvdW50Q29tbWFuZCxcbiAgdHlwZSBJbmNyZWFzZVJlcGxpY2FDb3VudENvbW1hbmRJbnB1dCxcbiAgdHlwZSBJbmNyZWFzZVJlcGxpY2FDb3VudENvbW1hbmRPdXRwdXQsXG4gIExpc3RBbGxvd2VkTm9kZVR5cGVNb2RpZmljYXRpb25zQ29tbWFuZCxcbiAgdHlwZSBMaXN0QWxsb3dlZE5vZGVUeXBlTW9kaWZpY2F0aW9uc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0QWxsb3dlZE5vZGVUeXBlTW9kaWZpY2F0aW9uc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kLFxuICB0eXBlIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIE1vZGlmeUNhY2hlQ2x1c3RlckNvbW1hbmQsXG4gIHR5cGUgTW9kaWZ5Q2FjaGVDbHVzdGVyQ29tbWFuZElucHV0LFxuICB0eXBlIE1vZGlmeUNhY2hlQ2x1c3RlckNvbW1hbmRPdXRwdXQsXG4gIE1vZGlmeUNhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kLFxuICB0eXBlIE1vZGlmeUNhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgTW9kaWZ5Q2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmRPdXRwdXQsXG4gIE1vZGlmeUNhY2hlU3VibmV0R3JvdXBDb21tYW5kLFxuICB0eXBlIE1vZGlmeUNhY2hlU3VibmV0R3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgTW9kaWZ5Q2FjaGVTdWJuZXRHcm91cENvbW1hbmRPdXRwdXQsXG4gIE1vZGlmeUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kLFxuICB0eXBlIE1vZGlmeUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgTW9kaWZ5R2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRPdXRwdXQsXG4gIE1vZGlmeVJlcGxpY2F0aW9uR3JvdXBDb21tYW5kLFxuICB0eXBlIE1vZGlmeVJlcGxpY2F0aW9uR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgTW9kaWZ5UmVwbGljYXRpb25Hcm91cENvbW1hbmRPdXRwdXQsXG4gIE1vZGlmeVJlcGxpY2F0aW9uR3JvdXBTaGFyZENvbmZpZ3VyYXRpb25Db21tYW5kLFxuICB0eXBlIE1vZGlmeVJlcGxpY2F0aW9uR3JvdXBTaGFyZENvbmZpZ3VyYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgTW9kaWZ5UmVwbGljYXRpb25Hcm91cFNoYXJkQ29uZmlndXJhdGlvbkNvbW1hbmRPdXRwdXQsXG4gIE1vZGlmeVNlcnZlcmxlc3NDYWNoZUNvbW1hbmQsXG4gIHR5cGUgTW9kaWZ5U2VydmVybGVzc0NhY2hlQ29tbWFuZElucHV0LFxuICB0eXBlIE1vZGlmeVNlcnZlcmxlc3NDYWNoZUNvbW1hbmRPdXRwdXQsXG4gIE1vZGlmeVVzZXJDb21tYW5kLFxuICB0eXBlIE1vZGlmeVVzZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgTW9kaWZ5VXNlckNvbW1hbmRPdXRwdXQsXG4gIE1vZGlmeVVzZXJHcm91cENvbW1hbmQsXG4gIHR5cGUgTW9kaWZ5VXNlckdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIE1vZGlmeVVzZXJHcm91cENvbW1hbmRPdXRwdXQsXG4gIFB1cmNoYXNlUmVzZXJ2ZWRDYWNoZU5vZGVzT2ZmZXJpbmdDb21tYW5kLFxuICB0eXBlIFB1cmNoYXNlUmVzZXJ2ZWRDYWNoZU5vZGVzT2ZmZXJpbmdDb21tYW5kSW5wdXQsXG4gIHR5cGUgUHVyY2hhc2VSZXNlcnZlZENhY2hlTm9kZXNPZmZlcmluZ0NvbW1hbmRPdXRwdXQsXG4gIFJlYmFsYW5jZVNsb3RzSW5HbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZCxcbiAgdHlwZSBSZWJhbGFuY2VTbG90c0luR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBSZWJhbGFuY2VTbG90c0luR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRPdXRwdXQsXG4gIFJlYm9vdENhY2hlQ2x1c3RlckNvbW1hbmQsXG4gIHR5cGUgUmVib290Q2FjaGVDbHVzdGVyQ29tbWFuZElucHV0LFxuICB0eXBlIFJlYm9vdENhY2hlQ2x1c3RlckNvbW1hbmRPdXRwdXQsXG4gIFJlbW92ZVRhZ3NGcm9tUmVzb3VyY2VDb21tYW5kLFxuICB0eXBlIFJlbW92ZVRhZ3NGcm9tUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgUmVtb3ZlVGFnc0Zyb21SZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIFJlc2V0Q2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmQsXG4gIHR5cGUgUmVzZXRDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIFJlc2V0Q2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmRPdXRwdXQsXG4gIFJldm9rZUNhY2hlU2VjdXJpdHlHcm91cEluZ3Jlc3NDb21tYW5kLFxuICB0eXBlIFJldm9rZUNhY2hlU2VjdXJpdHlHcm91cEluZ3Jlc3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgUmV2b2tlQ2FjaGVTZWN1cml0eUdyb3VwSW5ncmVzc0NvbW1hbmRPdXRwdXQsXG4gIFN0YXJ0TWlncmF0aW9uQ29tbWFuZCxcbiAgdHlwZSBTdGFydE1pZ3JhdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBTdGFydE1pZ3JhdGlvbkNvbW1hbmRPdXRwdXQsXG4gIFRlc3RGYWlsb3ZlckNvbW1hbmQsXG4gIHR5cGUgVGVzdEZhaWxvdmVyQ29tbWFuZElucHV0LFxuICB0eXBlIFRlc3RGYWlsb3ZlckNvbW1hbmRPdXRwdXQsXG4gIFRlc3RNaWdyYXRpb25Db21tYW5kLFxuICB0eXBlIFRlc3RNaWdyYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgVGVzdE1pZ3JhdGlvbkNvbW1hbmRPdXRwdXQsXG59IGZyb20gXCJAYXdzLXNkay9jbGllbnQtZWxhc3RpY2FjaGVcIjtcbmltcG9ydCB7IERhdGEsIEVmZmVjdCwgTGF5ZXIsIFJlY29yZCB9IGZyb20gXCJlZmZlY3RcIjtcbmltcG9ydCB7XG4gIEVsYXN0aUNhY2hlQ2xpZW50SW5zdGFuY2UsXG4gIEVsYXN0aUNhY2hlQ2xpZW50SW5zdGFuY2VMYXllcixcbn0gZnJvbSBcIi4vRWxhc3RpQ2FjaGVDbGllbnRJbnN0YW5jZVwiO1xuaW1wb3J0IHsgRGVmYXVsdEVsYXN0aUNhY2hlQ2xpZW50Q29uZmlnTGF5ZXIgfSBmcm9tIFwiLi9FbGFzdGlDYWNoZUNsaWVudEluc3RhbmNlQ29uZmlnXCI7XG5pbXBvcnQge1xuICBBbGxTZXJ2aWNlRXJyb3JzLFxuICBBUElDYWxsUmF0ZUZvckN1c3RvbWVyRXhjZWVkZWRGYXVsdEVycm9yLFxuICBBdXRob3JpemF0aW9uQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3IsXG4gIEF1dGhvcml6YXRpb25Ob3RGb3VuZEZhdWx0RXJyb3IsXG4gIENhY2hlQ2x1c3RlckFscmVhZHlFeGlzdHNGYXVsdEVycm9yLFxuICBDYWNoZUNsdXN0ZXJOb3RGb3VuZEZhdWx0RXJyb3IsXG4gIENhY2hlUGFyYW1ldGVyR3JvdXBBbHJlYWR5RXhpc3RzRmF1bHRFcnJvcixcbiAgQ2FjaGVQYXJhbWV0ZXJHcm91cE5vdEZvdW5kRmF1bHRFcnJvcixcbiAgQ2FjaGVQYXJhbWV0ZXJHcm91cFF1b3RhRXhjZWVkZWRGYXVsdEVycm9yLFxuICBDYWNoZVNlY3VyaXR5R3JvdXBBbHJlYWR5RXhpc3RzRmF1bHRFcnJvcixcbiAgQ2FjaGVTZWN1cml0eUdyb3VwTm90Rm91bmRGYXVsdEVycm9yLFxuICBDYWNoZVNlY3VyaXR5R3JvdXBRdW90YUV4Y2VlZGVkRmF1bHRFcnJvcixcbiAgQ2FjaGVTdWJuZXRHcm91cEFscmVhZHlFeGlzdHNGYXVsdEVycm9yLFxuICBDYWNoZVN1Ym5ldEdyb3VwSW5Vc2VFcnJvcixcbiAgQ2FjaGVTdWJuZXRHcm91cE5vdEZvdW5kRmF1bHRFcnJvcixcbiAgQ2FjaGVTdWJuZXRHcm91cFF1b3RhRXhjZWVkZWRGYXVsdEVycm9yLFxuICBDYWNoZVN1Ym5ldFF1b3RhRXhjZWVkZWRGYXVsdEVycm9yLFxuICBDbHVzdGVyUXVvdGFGb3JDdXN0b21lckV4Y2VlZGVkRmF1bHRFcnJvcixcbiAgRGVmYXVsdFVzZXJBc3NvY2lhdGVkVG9Vc2VyR3JvdXBGYXVsdEVycm9yLFxuICBEZWZhdWx0VXNlclJlcXVpcmVkRXJyb3IsXG4gIER1cGxpY2F0ZVVzZXJOYW1lRmF1bHRFcnJvcixcbiAgR2xvYmFsUmVwbGljYXRpb25Hcm91cEFscmVhZHlFeGlzdHNGYXVsdEVycm9yLFxuICBHbG9iYWxSZXBsaWNhdGlvbkdyb3VwTm90Rm91bmRGYXVsdEVycm9yLFxuICBJbnN1ZmZpY2llbnRDYWNoZUNsdXN0ZXJDYXBhY2l0eUZhdWx0RXJyb3IsXG4gIEludmFsaWRBUk5GYXVsdEVycm9yLFxuICBJbnZhbGlkQ2FjaGVDbHVzdGVyU3RhdGVGYXVsdEVycm9yLFxuICBJbnZhbGlkQ2FjaGVQYXJhbWV0ZXJHcm91cFN0YXRlRmF1bHRFcnJvcixcbiAgSW52YWxpZENhY2hlU2VjdXJpdHlHcm91cFN0YXRlRmF1bHRFcnJvcixcbiAgSW52YWxpZENyZWRlbnRpYWxzRXJyb3IsXG4gIEludmFsaWRHbG9iYWxSZXBsaWNhdGlvbkdyb3VwU3RhdGVGYXVsdEVycm9yLFxuICBJbnZhbGlkS01TS2V5RmF1bHRFcnJvcixcbiAgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3IsXG4gIEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yLFxuICBJbnZhbGlkUmVwbGljYXRpb25Hcm91cFN0YXRlRmF1bHRFcnJvcixcbiAgSW52YWxpZFNlcnZlcmxlc3NDYWNoZVNuYXBzaG90U3RhdGVGYXVsdEVycm9yLFxuICBJbnZhbGlkU2VydmVybGVzc0NhY2hlU3RhdGVGYXVsdEVycm9yLFxuICBJbnZhbGlkU25hcHNob3RTdGF0ZUZhdWx0RXJyb3IsXG4gIEludmFsaWRTdWJuZXRFcnJvcixcbiAgSW52YWxpZFVzZXJHcm91cFN0YXRlRmF1bHRFcnJvcixcbiAgSW52YWxpZFVzZXJTdGF0ZUZhdWx0RXJyb3IsXG4gIEludmFsaWRWUENOZXR3b3JrU3RhdGVGYXVsdEVycm9yLFxuICBOb09wZXJhdGlvbkZhdWx0RXJyb3IsXG4gIE5vZGVHcm91cE5vdEZvdW5kRmF1bHRFcnJvcixcbiAgTm9kZUdyb3Vwc1BlclJlcGxpY2F0aW9uR3JvdXBRdW90YUV4Y2VlZGVkRmF1bHRFcnJvcixcbiAgTm9kZVF1b3RhRm9yQ2x1c3RlckV4Y2VlZGVkRmF1bHRFcnJvcixcbiAgTm9kZVF1b3RhRm9yQ3VzdG9tZXJFeGNlZWRlZEZhdWx0RXJyb3IsXG4gIFJlcGxpY2F0aW9uR3JvdXBBbHJlYWR5RXhpc3RzRmF1bHRFcnJvcixcbiAgUmVwbGljYXRpb25Hcm91cEFscmVhZHlVbmRlck1pZ3JhdGlvbkZhdWx0RXJyb3IsXG4gIFJlcGxpY2F0aW9uR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3IsXG4gIFJlcGxpY2F0aW9uR3JvdXBOb3RVbmRlck1pZ3JhdGlvbkZhdWx0RXJyb3IsXG4gIFJlc2VydmVkQ2FjaGVOb2RlQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3IsXG4gIFJlc2VydmVkQ2FjaGVOb2RlTm90Rm91bmRGYXVsdEVycm9yLFxuICBSZXNlcnZlZENhY2hlTm9kZVF1b3RhRXhjZWVkZWRGYXVsdEVycm9yLFxuICBSZXNlcnZlZENhY2hlTm9kZXNPZmZlcmluZ05vdEZvdW5kRmF1bHRFcnJvcixcbiAgU2VydmVybGVzc0NhY2hlQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3IsXG4gIFNlcnZlcmxlc3NDYWNoZU5vdEZvdW5kRmF1bHRFcnJvcixcbiAgU2VydmVybGVzc0NhY2hlUXVvdGFGb3JDdXN0b21lckV4Y2VlZGVkRmF1bHRFcnJvcixcbiAgU2VydmVybGVzc0NhY2hlU25hcHNob3RBbHJlYWR5RXhpc3RzRmF1bHRFcnJvcixcbiAgU2VydmVybGVzc0NhY2hlU25hcHNob3ROb3RGb3VuZEZhdWx0RXJyb3IsXG4gIFNlcnZlcmxlc3NDYWNoZVNuYXBzaG90UXVvdGFFeGNlZWRlZEZhdWx0RXJyb3IsXG4gIFNlcnZpY2VMaW5rZWRSb2xlTm90Rm91bmRGYXVsdEVycm9yLFxuICBTZXJ2aWNlVXBkYXRlTm90Rm91bmRGYXVsdEVycm9yLFxuICBTbmFwc2hvdEFscmVhZHlFeGlzdHNGYXVsdEVycm9yLFxuICBTbmFwc2hvdEZlYXR1cmVOb3RTdXBwb3J0ZWRGYXVsdEVycm9yLFxuICBTbmFwc2hvdE5vdEZvdW5kRmF1bHRFcnJvcixcbiAgU25hcHNob3RRdW90YUV4Y2VlZGVkRmF1bHRFcnJvcixcbiAgU3VibmV0SW5Vc2VFcnJvcixcbiAgU3VibmV0Tm90QWxsb3dlZEZhdWx0RXJyb3IsXG4gIFRhZ05vdEZvdW5kRmF1bHRFcnJvcixcbiAgVGFnUXVvdGFQZXJSZXNvdXJjZUV4Y2VlZGVkRXJyb3IsXG4gIFRlc3RGYWlsb3Zlck5vdEF2YWlsYWJsZUZhdWx0RXJyb3IsXG4gIFVzZXJBbHJlYWR5RXhpc3RzRmF1bHRFcnJvcixcbiAgVXNlckdyb3VwQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3IsXG4gIFVzZXJHcm91cE5vdEZvdW5kRmF1bHRFcnJvcixcbiAgVXNlckdyb3VwUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3IsXG4gIFVzZXJOb3RGb3VuZEZhdWx0RXJyb3IsXG4gIFVzZXJRdW90YUV4Y2VlZGVkRmF1bHRFcnJvcixcbiAgU2RrRXJyb3IsXG4gIFRhZ2dlZEV4Y2VwdGlvbixcbn0gZnJvbSBcIi4vRXJyb3JzXCI7XG5cbmludGVyZmFjZSBIdHRwSGFuZGxlck9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIG1heGltdW0gdGltZSBpbiBtaWxsaXNlY29uZHMgdGhhdCB0aGUgY29ubmVjdGlvbiBwaGFzZSBvZiBhIHJlcXVlc3RcbiAgICogbWF5IHRha2UgYmVmb3JlIHRoZSBjb25uZWN0aW9uIGF0dGVtcHQgaXMgYWJhbmRvbmVkLlxuICAgKi9cbiAgcmVxdWVzdFRpbWVvdXQ/OiBudW1iZXI7XG59XG5cbmNvbnN0IGNvbW1hbmRzID0ge1xuICBBZGRUYWdzVG9SZXNvdXJjZUNvbW1hbmQsXG4gIEF1dGhvcml6ZUNhY2hlU2VjdXJpdHlHcm91cEluZ3Jlc3NDb21tYW5kLFxuICBCYXRjaEFwcGx5VXBkYXRlQWN0aW9uQ29tbWFuZCxcbiAgQmF0Y2hTdG9wVXBkYXRlQWN0aW9uQ29tbWFuZCxcbiAgQ29tcGxldGVNaWdyYXRpb25Db21tYW5kLFxuICBDb3B5U2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kLFxuICBDb3B5U25hcHNob3RDb21tYW5kLFxuICBDcmVhdGVDYWNoZUNsdXN0ZXJDb21tYW5kLFxuICBDcmVhdGVDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZCxcbiAgQ3JlYXRlQ2FjaGVTZWN1cml0eUdyb3VwQ29tbWFuZCxcbiAgQ3JlYXRlQ2FjaGVTdWJuZXRHcm91cENvbW1hbmQsXG4gIENyZWF0ZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kLFxuICBDcmVhdGVSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZCxcbiAgQ3JlYXRlU2VydmVybGVzc0NhY2hlQ29tbWFuZCxcbiAgQ3JlYXRlU2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kLFxuICBDcmVhdGVTbmFwc2hvdENvbW1hbmQsXG4gIENyZWF0ZVVzZXJDb21tYW5kLFxuICBDcmVhdGVVc2VyR3JvdXBDb21tYW5kLFxuICBEZWNyZWFzZU5vZGVHcm91cHNJbkdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kLFxuICBEZWNyZWFzZVJlcGxpY2FDb3VudENvbW1hbmQsXG4gIERlbGV0ZUNhY2hlQ2x1c3RlckNvbW1hbmQsXG4gIERlbGV0ZUNhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kLFxuICBEZWxldGVDYWNoZVNlY3VyaXR5R3JvdXBDb21tYW5kLFxuICBEZWxldGVDYWNoZVN1Ym5ldEdyb3VwQ29tbWFuZCxcbiAgRGVsZXRlR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmQsXG4gIERlbGV0ZVJlcGxpY2F0aW9uR3JvdXBDb21tYW5kLFxuICBEZWxldGVTZXJ2ZXJsZXNzQ2FjaGVDb21tYW5kLFxuICBEZWxldGVTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmQsXG4gIERlbGV0ZVNuYXBzaG90Q29tbWFuZCxcbiAgRGVsZXRlVXNlckNvbW1hbmQsXG4gIERlbGV0ZVVzZXJHcm91cENvbW1hbmQsXG4gIERlc2NyaWJlQ2FjaGVDbHVzdGVyc0NvbW1hbmQsXG4gIERlc2NyaWJlQ2FjaGVFbmdpbmVWZXJzaW9uc0NvbW1hbmQsXG4gIERlc2NyaWJlQ2FjaGVQYXJhbWV0ZXJHcm91cHNDb21tYW5kLFxuICBEZXNjcmliZUNhY2hlUGFyYW1ldGVyc0NvbW1hbmQsXG4gIERlc2NyaWJlQ2FjaGVTZWN1cml0eUdyb3Vwc0NvbW1hbmQsXG4gIERlc2NyaWJlQ2FjaGVTdWJuZXRHcm91cHNDb21tYW5kLFxuICBEZXNjcmliZUVuZ2luZURlZmF1bHRQYXJhbWV0ZXJzQ29tbWFuZCxcbiAgRGVzY3JpYmVFdmVudHNDb21tYW5kLFxuICBEZXNjcmliZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBzQ29tbWFuZCxcbiAgRGVzY3JpYmVSZXBsaWNhdGlvbkdyb3Vwc0NvbW1hbmQsXG4gIERlc2NyaWJlUmVzZXJ2ZWRDYWNoZU5vZGVzQ29tbWFuZCxcbiAgRGVzY3JpYmVSZXNlcnZlZENhY2hlTm9kZXNPZmZlcmluZ3NDb21tYW5kLFxuICBEZXNjcmliZVNlcnZlcmxlc3NDYWNoZXNDb21tYW5kLFxuICBEZXNjcmliZVNlcnZlcmxlc3NDYWNoZVNuYXBzaG90c0NvbW1hbmQsXG4gIERlc2NyaWJlU2VydmljZVVwZGF0ZXNDb21tYW5kLFxuICBEZXNjcmliZVNuYXBzaG90c0NvbW1hbmQsXG4gIERlc2NyaWJlVXBkYXRlQWN0aW9uc0NvbW1hbmQsXG4gIERlc2NyaWJlVXNlckdyb3Vwc0NvbW1hbmQsXG4gIERlc2NyaWJlVXNlcnNDb21tYW5kLFxuICBEaXNhc3NvY2lhdGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZCxcbiAgRXhwb3J0U2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kLFxuICBGYWlsb3Zlckdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kLFxuICBJbmNyZWFzZU5vZGVHcm91cHNJbkdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kLFxuICBJbmNyZWFzZVJlcGxpY2FDb3VudENvbW1hbmQsXG4gIExpc3RBbGxvd2VkTm9kZVR5cGVNb2RpZmljYXRpb25zQ29tbWFuZCxcbiAgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmQsXG4gIE1vZGlmeUNhY2hlQ2x1c3RlckNvbW1hbmQsXG4gIE1vZGlmeUNhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kLFxuICBNb2RpZnlDYWNoZVN1Ym5ldEdyb3VwQ29tbWFuZCxcbiAgTW9kaWZ5R2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmQsXG4gIE1vZGlmeVJlcGxpY2F0aW9uR3JvdXBDb21tYW5kLFxuICBNb2RpZnlSZXBsaWNhdGlvbkdyb3VwU2hhcmRDb25maWd1cmF0aW9uQ29tbWFuZCxcbiAgTW9kaWZ5U2VydmVybGVzc0NhY2hlQ29tbWFuZCxcbiAgTW9kaWZ5VXNlckNvbW1hbmQsXG4gIE1vZGlmeVVzZXJHcm91cENvbW1hbmQsXG4gIFB1cmNoYXNlUmVzZXJ2ZWRDYWNoZU5vZGVzT2ZmZXJpbmdDb21tYW5kLFxuICBSZWJhbGFuY2VTbG90c0luR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmQsXG4gIFJlYm9vdENhY2hlQ2x1c3RlckNvbW1hbmQsXG4gIFJlbW92ZVRhZ3NGcm9tUmVzb3VyY2VDb21tYW5kLFxuICBSZXNldENhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kLFxuICBSZXZva2VDYWNoZVNlY3VyaXR5R3JvdXBJbmdyZXNzQ29tbWFuZCxcbiAgU3RhcnRNaWdyYXRpb25Db21tYW5kLFxuICBUZXN0RmFpbG92ZXJDb21tYW5kLFxuICBUZXN0TWlncmF0aW9uQ29tbWFuZCxcbn07XG5cbmludGVyZmFjZSBFbGFzdGlDYWNoZVNlcnZpY2UkIHtcbiAgcmVhZG9ubHkgXzogdW5pcXVlIHN5bWJvbDtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQWRkVGFnc1RvUmVzb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgYWRkVGFnc1RvUmVzb3VyY2UoXG4gICAgYXJnczogQWRkVGFnc1RvUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBBZGRUYWdzVG9SZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ2FjaGVDbHVzdGVyTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBDYWNoZVBhcmFtZXRlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBDYWNoZVNlY3VyaXR5R3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IENhY2hlU3VibmV0R3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRBUk5GYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUmVwbGljYXRpb25Hcm91cFN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFNlcnZlcmxlc3NDYWNoZVNuYXBzaG90U3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkU2VydmVybGVzc0NhY2hlU3RhdGVGYXVsdEVycm9yXG4gICAgfCBSZXBsaWNhdGlvbkdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBSZXNlcnZlZENhY2hlTm9kZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgU2VydmVybGVzc0NhY2hlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgU25hcHNob3ROb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFRhZ1F1b3RhUGVyUmVzb3VyY2VFeGNlZWRlZEVycm9yXG4gICAgfCBVc2VyR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFVzZXJOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQXV0aG9yaXplQ2FjaGVTZWN1cml0eUdyb3VwSW5ncmVzc0NvbW1hbmR9XG4gICAqL1xuICBhdXRob3JpemVDYWNoZVNlY3VyaXR5R3JvdXBJbmdyZXNzKFxuICAgIGFyZ3M6IEF1dGhvcml6ZUNhY2hlU2VjdXJpdHlHcm91cEluZ3Jlc3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBBdXRob3JpemVDYWNoZVNlY3VyaXR5R3JvdXBJbmdyZXNzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBdXRob3JpemF0aW9uQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IENhY2hlU2VjdXJpdHlHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZENhY2hlU2VjdXJpdHlHcm91cFN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEJhdGNoQXBwbHlVcGRhdGVBY3Rpb25Db21tYW5kfVxuICAgKi9cbiAgYmF0Y2hBcHBseVVwZGF0ZUFjdGlvbihcbiAgICBhcmdzOiBCYXRjaEFwcGx5VXBkYXRlQWN0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQmF0Y2hBcHBseVVwZGF0ZUFjdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvciB8IFNlcnZpY2VVcGRhdGVOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQmF0Y2hTdG9wVXBkYXRlQWN0aW9uQ29tbWFuZH1cbiAgICovXG4gIGJhdGNoU3RvcFVwZGF0ZUFjdGlvbihcbiAgICBhcmdzOiBCYXRjaFN0b3BVcGRhdGVBY3Rpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBCYXRjaFN0b3BVcGRhdGVBY3Rpb25Db21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IgfCBTZXJ2aWNlVXBkYXRlTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENvbXBsZXRlTWlncmF0aW9uQ29tbWFuZH1cbiAgICovXG4gIGNvbXBsZXRlTWlncmF0aW9uKFxuICAgIGFyZ3M6IENvbXBsZXRlTWlncmF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ29tcGxldGVNaWdyYXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRSZXBsaWNhdGlvbkdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBSZXBsaWNhdGlvbkdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBSZXBsaWNhdGlvbkdyb3VwTm90VW5kZXJNaWdyYXRpb25GYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENvcHlTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmR9XG4gICAqL1xuICBjb3B5U2VydmVybGVzc0NhY2hlU25hcHNob3QoXG4gICAgYXJnczogQ29weVNlcnZlcmxlc3NDYWNoZVNuYXBzaG90Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ29weVNlcnZlcmxlc3NDYWNoZVNuYXBzaG90Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IEludmFsaWRTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdFN0YXRlRmF1bHRFcnJvclxuICAgIHwgU2VydmVybGVzc0NhY2hlU25hcHNob3RBbHJlYWR5RXhpc3RzRmF1bHRFcnJvclxuICAgIHwgU2VydmVybGVzc0NhY2hlU25hcHNob3ROb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFNlcnZlcmxlc3NDYWNoZVNuYXBzaG90UXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IFNlcnZpY2VMaW5rZWRSb2xlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBUYWdRdW90YVBlclJlc291cmNlRXhjZWVkZWRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDb3B5U25hcHNob3RDb21tYW5kfVxuICAgKi9cbiAgY29weVNuYXBzaG90KFxuICAgIGFyZ3M6IENvcHlTbmFwc2hvdENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENvcHlTbmFwc2hvdENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBJbnZhbGlkU25hcHNob3RTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IFNuYXBzaG90QWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IFNuYXBzaG90Tm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBTbmFwc2hvdFF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBUYWdRdW90YVBlclJlc291cmNlRXhjZWVkZWRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVDYWNoZUNsdXN0ZXJDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlQ2FjaGVDbHVzdGVyKFxuICAgIGFyZ3M6IENyZWF0ZUNhY2hlQ2x1c3RlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZUNhY2hlQ2x1c3RlckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ2FjaGVDbHVzdGVyQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IENhY2hlUGFyYW1ldGVyR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IENhY2hlU2VjdXJpdHlHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgQ2FjaGVTdWJuZXRHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgQ2x1c3RlclF1b3RhRm9yQ3VzdG9tZXJFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IEluc3VmZmljaWVudENhY2hlQ2x1c3RlckNhcGFjaXR5RmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBJbnZhbGlkUmVwbGljYXRpb25Hcm91cFN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFZQQ05ldHdvcmtTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IE5vZGVRdW90YUZvckNsdXN0ZXJFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IE5vZGVRdW90YUZvckN1c3RvbWVyRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBSZXBsaWNhdGlvbkdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBUYWdRdW90YVBlclJlc291cmNlRXhjZWVkZWRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUNhY2hlUGFyYW1ldGVyR3JvdXAoXG4gICAgYXJnczogQ3JlYXRlQ2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZUNhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENhY2hlUGFyYW1ldGVyR3JvdXBBbHJlYWR5RXhpc3RzRmF1bHRFcnJvclxuICAgIHwgQ2FjaGVQYXJhbWV0ZXJHcm91cFF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkQ2FjaGVQYXJhbWV0ZXJHcm91cFN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBUYWdRdW90YVBlclJlc291cmNlRXhjZWVkZWRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVDYWNoZVNlY3VyaXR5R3JvdXBDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlQ2FjaGVTZWN1cml0eUdyb3VwKFxuICAgIGFyZ3M6IENyZWF0ZUNhY2hlU2VjdXJpdHlHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZUNhY2hlU2VjdXJpdHlHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ2FjaGVTZWN1cml0eUdyb3VwQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IENhY2hlU2VjdXJpdHlHcm91cFF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFRhZ1F1b3RhUGVyUmVzb3VyY2VFeGNlZWRlZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUNhY2hlU3VibmV0R3JvdXBDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlQ2FjaGVTdWJuZXRHcm91cChcbiAgICBhcmdzOiBDcmVhdGVDYWNoZVN1Ym5ldEdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlQ2FjaGVTdWJuZXRHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ2FjaGVTdWJuZXRHcm91cEFscmVhZHlFeGlzdHNGYXVsdEVycm9yXG4gICAgfCBDYWNoZVN1Ym5ldEdyb3VwUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IENhY2hlU3VibmV0UXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRTdWJuZXRFcnJvclxuICAgIHwgU3VibmV0Tm90QWxsb3dlZEZhdWx0RXJyb3JcbiAgICB8IFRhZ1F1b3RhUGVyUmVzb3VyY2VFeGNlZWRlZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlR2xvYmFsUmVwbGljYXRpb25Hcm91cChcbiAgICBhcmdzOiBDcmVhdGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgR2xvYmFsUmVwbGljYXRpb25Hcm91cEFscmVhZHlFeGlzdHNGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgSW52YWxpZFJlcGxpY2F0aW9uR3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IFJlcGxpY2F0aW9uR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFNlcnZpY2VMaW5rZWRSb2xlTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZVJlcGxpY2F0aW9uR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlUmVwbGljYXRpb25Hcm91cChcbiAgICBhcmdzOiBDcmVhdGVSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlUmVwbGljYXRpb25Hcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ2FjaGVDbHVzdGVyTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBDYWNoZVBhcmFtZXRlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBDYWNoZVNlY3VyaXR5R3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IENhY2hlU3VibmV0R3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IENsdXN0ZXJRdW90YUZvckN1c3RvbWVyRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBHbG9iYWxSZXBsaWNhdGlvbkdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnN1ZmZpY2llbnRDYWNoZUNsdXN0ZXJDYXBhY2l0eUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRDYWNoZUNsdXN0ZXJTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRHbG9iYWxSZXBsaWNhdGlvbkdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IEludmFsaWRVc2VyR3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRWUENOZXR3b3JrU3RhdGVGYXVsdEVycm9yXG4gICAgfCBOb2RlR3JvdXBzUGVyUmVwbGljYXRpb25Hcm91cFF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBOb2RlUXVvdGFGb3JDbHVzdGVyRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBOb2RlUXVvdGFGb3JDdXN0b21lckV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgUmVwbGljYXRpb25Hcm91cEFscmVhZHlFeGlzdHNGYXVsdEVycm9yXG4gICAgfCBUYWdRdW90YVBlclJlc291cmNlRXhjZWVkZWRFcnJvclxuICAgIHwgVXNlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZVNlcnZlcmxlc3NDYWNoZUNvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVTZXJ2ZXJsZXNzQ2FjaGUoXG4gICAgYXJnczogQ3JlYXRlU2VydmVybGVzc0NhY2hlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlU2VydmVybGVzc0NhY2hlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkQ3JlZGVudGlhbHNFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBJbnZhbGlkU2VydmVybGVzc0NhY2hlU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkVXNlckdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBTZXJ2ZXJsZXNzQ2FjaGVBbHJlYWR5RXhpc3RzRmF1bHRFcnJvclxuICAgIHwgU2VydmVybGVzc0NhY2hlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBTZXJ2ZXJsZXNzQ2FjaGVRdW90YUZvckN1c3RvbWVyRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBTZXJ2aWNlTGlua2VkUm9sZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgVGFnUXVvdGFQZXJSZXNvdXJjZUV4Y2VlZGVkRXJyb3JcbiAgICB8IFVzZXJHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdChcbiAgICBhcmdzOiBDcmVhdGVTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZVNlcnZlcmxlc3NDYWNoZVNuYXBzaG90Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IEludmFsaWRTZXJ2ZXJsZXNzQ2FjaGVTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IFNlcnZlcmxlc3NDYWNoZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgU2VydmVybGVzc0NhY2hlU25hcHNob3RBbHJlYWR5RXhpc3RzRmF1bHRFcnJvclxuICAgIHwgU2VydmVybGVzc0NhY2hlU25hcHNob3RRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgU2VydmljZUxpbmtlZFJvbGVOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFRhZ1F1b3RhUGVyUmVzb3VyY2VFeGNlZWRlZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZVNuYXBzaG90Q29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZVNuYXBzaG90KFxuICAgIGFyZ3M6IENyZWF0ZVNuYXBzaG90Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlU25hcHNob3RDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENhY2hlQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZENhY2hlQ2x1c3RlclN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBJbnZhbGlkUmVwbGljYXRpb25Hcm91cFN0YXRlRmF1bHRFcnJvclxuICAgIHwgUmVwbGljYXRpb25Hcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgU25hcHNob3RBbHJlYWR5RXhpc3RzRmF1bHRFcnJvclxuICAgIHwgU25hcHNob3RGZWF0dXJlTm90U3VwcG9ydGVkRmF1bHRFcnJvclxuICAgIHwgU25hcHNob3RRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgVGFnUXVvdGFQZXJSZXNvdXJjZUV4Y2VlZGVkRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlVXNlckNvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVVc2VyKFxuICAgIGFyZ3M6IENyZWF0ZVVzZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVVc2VyQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEdXBsaWNhdGVVc2VyTmFtZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgU2VydmljZUxpbmtlZFJvbGVOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFRhZ1F1b3RhUGVyUmVzb3VyY2VFeGNlZWRlZEVycm9yXG4gICAgfCBVc2VyQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IFVzZXJRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVVc2VyR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlVXNlckdyb3VwKFxuICAgIGFyZ3M6IENyZWF0ZVVzZXJHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZVVzZXJHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRGVmYXVsdFVzZXJSZXF1aXJlZEVycm9yXG4gICAgfCBEdXBsaWNhdGVVc2VyTmFtZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBTZXJ2aWNlTGlua2VkUm9sZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgVGFnUXVvdGFQZXJSZXNvdXJjZUV4Y2VlZGVkRXJyb3JcbiAgICB8IFVzZXJHcm91cEFscmVhZHlFeGlzdHNGYXVsdEVycm9yXG4gICAgfCBVc2VyR3JvdXBRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgVXNlck5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWNyZWFzZU5vZGVHcm91cHNJbkdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgZGVjcmVhc2VOb2RlR3JvdXBzSW5HbG9iYWxSZXBsaWNhdGlvbkdyb3VwKFxuICAgIGFyZ3M6IERlY3JlYXNlTm9kZUdyb3Vwc0luR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlY3JlYXNlTm9kZUdyb3Vwc0luR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgR2xvYmFsUmVwbGljYXRpb25Hcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZEdsb2JhbFJlcGxpY2F0aW9uR3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWNyZWFzZVJlcGxpY2FDb3VudENvbW1hbmR9XG4gICAqL1xuICBkZWNyZWFzZVJlcGxpY2FDb3VudChcbiAgICBhcmdzOiBEZWNyZWFzZVJlcGxpY2FDb3VudENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlY3JlYXNlUmVwbGljYUNvdW50Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDbHVzdGVyUXVvdGFGb3JDdXN0b21lckV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgSW5zdWZmaWNpZW50Q2FjaGVDbHVzdGVyQ2FwYWNpdHlGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkQ2FjaGVDbHVzdGVyU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IEludmFsaWRSZXBsaWNhdGlvbkdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkVlBDTmV0d29ya1N0YXRlRmF1bHRFcnJvclxuICAgIHwgTm9kZUdyb3Vwc1BlclJlcGxpY2F0aW9uR3JvdXBRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgTm9kZVF1b3RhRm9yQ3VzdG9tZXJFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IE5vT3BlcmF0aW9uRmF1bHRFcnJvclxuICAgIHwgUmVwbGljYXRpb25Hcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgU2VydmljZUxpbmtlZFJvbGVOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlQ2FjaGVDbHVzdGVyQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUNhY2hlQ2x1c3RlcihcbiAgICBhcmdzOiBEZWxldGVDYWNoZUNsdXN0ZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVDYWNoZUNsdXN0ZXJDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENhY2hlQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZENhY2hlQ2x1c3RlclN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBTbmFwc2hvdEFscmVhZHlFeGlzdHNGYXVsdEVycm9yXG4gICAgfCBTbmFwc2hvdEZlYXR1cmVOb3RTdXBwb3J0ZWRGYXVsdEVycm9yXG4gICAgfCBTbmFwc2hvdFF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUNhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlQ2FjaGVQYXJhbWV0ZXJHcm91cChcbiAgICBhcmdzOiBEZWxldGVDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlQ2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ2FjaGVQYXJhbWV0ZXJHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZENhY2hlUGFyYW1ldGVyR3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVDYWNoZVNlY3VyaXR5R3JvdXBDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlQ2FjaGVTZWN1cml0eUdyb3VwKFxuICAgIGFyZ3M6IERlbGV0ZUNhY2hlU2VjdXJpdHlHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUNhY2hlU2VjdXJpdHlHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ2FjaGVTZWN1cml0eUdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkQ2FjaGVTZWN1cml0eUdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlQ2FjaGVTdWJuZXRHcm91cENvbW1hbmR9XG4gICAqL1xuICBkZWxldGVDYWNoZVN1Ym5ldEdyb3VwKFxuICAgIGFyZ3M6IERlbGV0ZUNhY2hlU3VibmV0R3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVDYWNoZVN1Ym5ldEdyb3VwQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IENhY2hlU3VibmV0R3JvdXBJblVzZUVycm9yIHwgQ2FjaGVTdWJuZXRHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXAoXG4gICAgYXJnczogRGVsZXRlR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEdsb2JhbFJlcGxpY2F0aW9uR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRHbG9iYWxSZXBsaWNhdGlvbkdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZVJlcGxpY2F0aW9uR3JvdXAoXG4gICAgYXJnczogRGVsZXRlUmVwbGljYXRpb25Hcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZVJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgSW52YWxpZFJlcGxpY2F0aW9uR3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IFJlcGxpY2F0aW9uR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFNuYXBzaG90QWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IFNuYXBzaG90RmVhdHVyZU5vdFN1cHBvcnRlZEZhdWx0RXJyb3JcbiAgICB8IFNuYXBzaG90UXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlU2VydmVybGVzc0NhY2hlQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZVNlcnZlcmxlc3NDYWNoZShcbiAgICBhcmdzOiBEZWxldGVTZXJ2ZXJsZXNzQ2FjaGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVTZXJ2ZXJsZXNzQ2FjaGVDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRDcmVkZW50aWFsc0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IEludmFsaWRTZXJ2ZXJsZXNzQ2FjaGVTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IFNlcnZlcmxlc3NDYWNoZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgU2VydmVybGVzc0NhY2hlU25hcHNob3RBbHJlYWR5RXhpc3RzRmF1bHRFcnJvclxuICAgIHwgU2VydmljZUxpbmtlZFJvbGVOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlU2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlU2VydmVybGVzc0NhY2hlU25hcHNob3QoXG4gICAgYXJnczogRGVsZXRlU2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IEludmFsaWRTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdFN0YXRlRmF1bHRFcnJvclxuICAgIHwgU2VydmVybGVzc0NhY2hlU25hcHNob3ROb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFNlcnZpY2VMaW5rZWRSb2xlTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVNuYXBzaG90Q29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZVNuYXBzaG90KFxuICAgIGFyZ3M6IERlbGV0ZVNuYXBzaG90Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlU25hcHNob3RDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgSW52YWxpZFNuYXBzaG90U3RhdGVGYXVsdEVycm9yXG4gICAgfCBTbmFwc2hvdE5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVVc2VyQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZVVzZXIoXG4gICAgYXJnczogRGVsZXRlVXNlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZVVzZXJDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERlZmF1bHRVc2VyQXNzb2NpYXRlZFRvVXNlckdyb3VwRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IEludmFsaWRVc2VyU3RhdGVGYXVsdEVycm9yXG4gICAgfCBTZXJ2aWNlTGlua2VkUm9sZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgVXNlck5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVVc2VyR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlVXNlckdyb3VwKFxuICAgIGFyZ3M6IERlbGV0ZVVzZXJHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZVVzZXJHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IEludmFsaWRVc2VyR3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IFNlcnZpY2VMaW5rZWRSb2xlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBVc2VyR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVDYWNoZUNsdXN0ZXJzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlQ2FjaGVDbHVzdGVycyhcbiAgICBhcmdzOiBEZXNjcmliZUNhY2hlQ2x1c3RlcnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZUNhY2hlQ2x1c3RlcnNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENhY2hlQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlQ2FjaGVFbmdpbmVWZXJzaW9uc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZUNhY2hlRW5naW5lVmVyc2lvbnMoXG4gICAgYXJnczogRGVzY3JpYmVDYWNoZUVuZ2luZVZlcnNpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8RGVzY3JpYmVDYWNoZUVuZ2luZVZlcnNpb25zQ29tbWFuZE91dHB1dCwgU2RrRXJyb3I+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZUNhY2hlUGFyYW1ldGVyR3JvdXBzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlQ2FjaGVQYXJhbWV0ZXJHcm91cHMoXG4gICAgYXJnczogRGVzY3JpYmVDYWNoZVBhcmFtZXRlckdyb3Vwc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlQ2FjaGVQYXJhbWV0ZXJHcm91cHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENhY2hlUGFyYW1ldGVyR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZUNhY2hlUGFyYW1ldGVyc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZUNhY2hlUGFyYW1ldGVycyhcbiAgICBhcmdzOiBEZXNjcmliZUNhY2hlUGFyYW1ldGVyc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlQ2FjaGVQYXJhbWV0ZXJzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDYWNoZVBhcmFtZXRlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVDYWNoZVNlY3VyaXR5R3JvdXBzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlQ2FjaGVTZWN1cml0eUdyb3VwcyhcbiAgICBhcmdzOiBEZXNjcmliZUNhY2hlU2VjdXJpdHlHcm91cHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZUNhY2hlU2VjdXJpdHlHcm91cHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENhY2hlU2VjdXJpdHlHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlQ2FjaGVTdWJuZXRHcm91cHNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVDYWNoZVN1Ym5ldEdyb3VwcyhcbiAgICBhcmdzOiBEZXNjcmliZUNhY2hlU3VibmV0R3JvdXBzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVDYWNoZVN1Ym5ldEdyb3Vwc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBDYWNoZVN1Ym5ldEdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlRW5naW5lRGVmYXVsdFBhcmFtZXRlcnNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVFbmdpbmVEZWZhdWx0UGFyYW1ldGVycyhcbiAgICBhcmdzOiBEZXNjcmliZUVuZ2luZURlZmF1bHRQYXJhbWV0ZXJzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVFbmdpbmVEZWZhdWx0UGFyYW1ldGVyc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvciB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlRXZlbnRzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlRXZlbnRzKFxuICAgIGFyZ3M6IERlc2NyaWJlRXZlbnRzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVFdmVudHNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3IgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlR2xvYmFsUmVwbGljYXRpb25Hcm91cHMoXG4gICAgYXJnczogRGVzY3JpYmVHbG9iYWxSZXBsaWNhdGlvbkdyb3Vwc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlR2xvYmFsUmVwbGljYXRpb25Hcm91cHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEdsb2JhbFJlcGxpY2F0aW9uR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZVJlcGxpY2F0aW9uR3JvdXBzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlUmVwbGljYXRpb25Hcm91cHMoXG4gICAgYXJnczogRGVzY3JpYmVSZXBsaWNhdGlvbkdyb3Vwc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlUmVwbGljYXRpb25Hcm91cHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVwbGljYXRpb25Hcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZVJlc2VydmVkQ2FjaGVOb2Rlc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZVJlc2VydmVkQ2FjaGVOb2RlcyhcbiAgICBhcmdzOiBEZXNjcmliZVJlc2VydmVkQ2FjaGVOb2Rlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlUmVzZXJ2ZWRDYWNoZU5vZGVzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc2VydmVkQ2FjaGVOb2RlTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlUmVzZXJ2ZWRDYWNoZU5vZGVzT2ZmZXJpbmdzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlUmVzZXJ2ZWRDYWNoZU5vZGVzT2ZmZXJpbmdzKFxuICAgIGFyZ3M6IERlc2NyaWJlUmVzZXJ2ZWRDYWNoZU5vZGVzT2ZmZXJpbmdzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVSZXNlcnZlZENhY2hlTm9kZXNPZmZlcmluZ3NDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzZXJ2ZWRDYWNoZU5vZGVzT2ZmZXJpbmdOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVTZXJ2ZXJsZXNzQ2FjaGVzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlU2VydmVybGVzc0NhY2hlcyhcbiAgICBhcmdzOiBEZXNjcmliZVNlcnZlcmxlc3NDYWNoZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZVNlcnZlcmxlc3NDYWNoZXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgU2VydmVybGVzc0NhY2hlTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlU2VydmVybGVzc0NhY2hlU25hcHNob3RzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlU2VydmVybGVzc0NhY2hlU25hcHNob3RzKFxuICAgIGFyZ3M6IERlc2NyaWJlU2VydmVybGVzc0NhY2hlU25hcHNob3RzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgU2VydmVybGVzc0NhY2hlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdE5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZVNlcnZpY2VVcGRhdGVzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlU2VydmljZVVwZGF0ZXMoXG4gICAgYXJnczogRGVzY3JpYmVTZXJ2aWNlVXBkYXRlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlU2VydmljZVVwZGF0ZXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgU2VydmljZVVwZGF0ZU5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZVNuYXBzaG90c0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZVNuYXBzaG90cyhcbiAgICBhcmdzOiBEZXNjcmliZVNuYXBzaG90c0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlU25hcHNob3RzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDYWNoZUNsdXN0ZXJOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgU25hcHNob3ROb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVVcGRhdGVBY3Rpb25zQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlVXBkYXRlQWN0aW9ucyhcbiAgICBhcmdzOiBEZXNjcmliZVVwZGF0ZUFjdGlvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZVVwZGF0ZUFjdGlvbnNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3IgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZVVzZXJHcm91cHNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVVc2VyR3JvdXBzKFxuICAgIGFyZ3M6IERlc2NyaWJlVXNlckdyb3Vwc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlVXNlckdyb3Vwc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IFNlcnZpY2VMaW5rZWRSb2xlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBVc2VyR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVVc2Vyc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZVVzZXJzKFxuICAgIGFyZ3M6IERlc2NyaWJlVXNlcnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZVVzZXJzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgU2VydmljZUxpbmtlZFJvbGVOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFVzZXJOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGlzYXNzb2NpYXRlR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmR9XG4gICAqL1xuICBkaXNhc3NvY2lhdGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwKFxuICAgIGFyZ3M6IERpc2Fzc29jaWF0ZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEaXNhc3NvY2lhdGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBHbG9iYWxSZXBsaWNhdGlvbkdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkR2xvYmFsUmVwbGljYXRpb25Hcm91cFN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEV4cG9ydFNlcnZlcmxlc3NDYWNoZVNuYXBzaG90Q29tbWFuZH1cbiAgICovXG4gIGV4cG9ydFNlcnZlcmxlc3NDYWNoZVNuYXBzaG90KFxuICAgIGFyZ3M6IEV4cG9ydFNlcnZlcmxlc3NDYWNoZVNuYXBzaG90Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRXhwb3J0U2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBJbnZhbGlkU2VydmVybGVzc0NhY2hlU25hcHNob3RTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IFNlcnZlcmxlc3NDYWNoZVNuYXBzaG90Tm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBTZXJ2aWNlTGlua2VkUm9sZU5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBGYWlsb3Zlckdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgZmFpbG92ZXJHbG9iYWxSZXBsaWNhdGlvbkdyb3VwKFxuICAgIGFyZ3M6IEZhaWxvdmVyR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEZhaWxvdmVyR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgR2xvYmFsUmVwbGljYXRpb25Hcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZEdsb2JhbFJlcGxpY2F0aW9uR3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBJbmNyZWFzZU5vZGVHcm91cHNJbkdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgaW5jcmVhc2VOb2RlR3JvdXBzSW5HbG9iYWxSZXBsaWNhdGlvbkdyb3VwKFxuICAgIGFyZ3M6IEluY3JlYXNlTm9kZUdyb3Vwc0luR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEluY3JlYXNlTm9kZUdyb3Vwc0luR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgR2xvYmFsUmVwbGljYXRpb25Hcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZEdsb2JhbFJlcGxpY2F0aW9uR3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEluY3JlYXNlUmVwbGljYUNvdW50Q29tbWFuZH1cbiAgICovXG4gIGluY3JlYXNlUmVwbGljYUNvdW50KFxuICAgIGFyZ3M6IEluY3JlYXNlUmVwbGljYUNvdW50Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgSW5jcmVhc2VSZXBsaWNhQ291bnRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENsdXN0ZXJRdW90YUZvckN1c3RvbWVyRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBJbnN1ZmZpY2llbnRDYWNoZUNsdXN0ZXJDYXBhY2l0eUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRDYWNoZUNsdXN0ZXJTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRLTVNLZXlGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IEludmFsaWRSZXBsaWNhdGlvbkdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkVlBDTmV0d29ya1N0YXRlRmF1bHRFcnJvclxuICAgIHwgTm9kZUdyb3Vwc1BlclJlcGxpY2F0aW9uR3JvdXBRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgTm9kZVF1b3RhRm9yQ3VzdG9tZXJFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IE5vT3BlcmF0aW9uRmF1bHRFcnJvclxuICAgIHwgUmVwbGljYXRpb25Hcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0QWxsb3dlZE5vZGVUeXBlTW9kaWZpY2F0aW9uc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0QWxsb3dlZE5vZGVUeXBlTW9kaWZpY2F0aW9ucyhcbiAgICBhcmdzOiBMaXN0QWxsb3dlZE5vZGVUeXBlTW9kaWZpY2F0aW9uc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RBbGxvd2VkTm9kZVR5cGVNb2RpZmljYXRpb25zQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDYWNoZUNsdXN0ZXJOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVwbGljYXRpb25Hcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZH1cbiAgICovXG4gIGxpc3RUYWdzRm9yUmVzb3VyY2UoXG4gICAgYXJnczogTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENhY2hlQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgQ2FjaGVQYXJhbWV0ZXJHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgQ2FjaGVTZWN1cml0eUdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBDYWNoZVN1Ym5ldEdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkQVJORmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFJlcGxpY2F0aW9uR3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdFN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFNlcnZlcmxlc3NDYWNoZVN0YXRlRmF1bHRFcnJvclxuICAgIHwgUmVwbGljYXRpb25Hcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgUmVzZXJ2ZWRDYWNoZU5vZGVOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFNlcnZlcmxlc3NDYWNoZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgU2VydmVybGVzc0NhY2hlU25hcHNob3ROb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFNuYXBzaG90Tm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBVc2VyR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFVzZXJOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTW9kaWZ5Q2FjaGVDbHVzdGVyQ29tbWFuZH1cbiAgICovXG4gIG1vZGlmeUNhY2hlQ2x1c3RlcihcbiAgICBhcmdzOiBNb2RpZnlDYWNoZUNsdXN0ZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBNb2RpZnlDYWNoZUNsdXN0ZXJDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENhY2hlQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgQ2FjaGVQYXJhbWV0ZXJHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgQ2FjaGVTZWN1cml0eUdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnN1ZmZpY2llbnRDYWNoZUNsdXN0ZXJDYXBhY2l0eUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRDYWNoZUNsdXN0ZXJTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRDYWNoZVNlY3VyaXR5R3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgSW52YWxpZFZQQ05ldHdvcmtTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IE5vZGVRdW90YUZvckNsdXN0ZXJFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IE5vZGVRdW90YUZvckN1c3RvbWVyRXhjZWVkZWRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIE1vZGlmeUNhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgbW9kaWZ5Q2FjaGVQYXJhbWV0ZXJHcm91cChcbiAgICBhcmdzOiBNb2RpZnlDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTW9kaWZ5Q2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ2FjaGVQYXJhbWV0ZXJHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZENhY2hlUGFyYW1ldGVyR3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRHbG9iYWxSZXBsaWNhdGlvbkdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTW9kaWZ5Q2FjaGVTdWJuZXRHcm91cENvbW1hbmR9XG4gICAqL1xuICBtb2RpZnlDYWNoZVN1Ym5ldEdyb3VwKFxuICAgIGFyZ3M6IE1vZGlmeUNhY2hlU3VibmV0R3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBNb2RpZnlDYWNoZVN1Ym5ldEdyb3VwQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDYWNoZVN1Ym5ldEdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBDYWNoZVN1Ym5ldFF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkU3VibmV0RXJyb3JcbiAgICB8IFN1Ym5ldEluVXNlRXJyb3JcbiAgICB8IFN1Ym5ldE5vdEFsbG93ZWRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIE1vZGlmeUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgbW9kaWZ5R2xvYmFsUmVwbGljYXRpb25Hcm91cChcbiAgICBhcmdzOiBNb2RpZnlHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTW9kaWZ5R2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgR2xvYmFsUmVwbGljYXRpb25Hcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZEdsb2JhbFJlcGxpY2F0aW9uR3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIE1vZGlmeVJlcGxpY2F0aW9uR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgbW9kaWZ5UmVwbGljYXRpb25Hcm91cChcbiAgICBhcmdzOiBNb2RpZnlSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTW9kaWZ5UmVwbGljYXRpb25Hcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ2FjaGVDbHVzdGVyTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBDYWNoZVBhcmFtZXRlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBDYWNoZVNlY3VyaXR5R3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEluc3VmZmljaWVudENhY2hlQ2x1c3RlckNhcGFjaXR5RmF1bHRFcnJvclxuICAgIHwgSW52YWxpZENhY2hlQ2x1c3RlclN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZENhY2hlU2VjdXJpdHlHcm91cFN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZEtNU0tleUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgSW52YWxpZFJlcGxpY2F0aW9uR3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRVc2VyR3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRWUENOZXR3b3JrU3RhdGVGYXVsdEVycm9yXG4gICAgfCBOb2RlUXVvdGFGb3JDbHVzdGVyRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBOb2RlUXVvdGFGb3JDdXN0b21lckV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgUmVwbGljYXRpb25Hcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgVXNlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIE1vZGlmeVJlcGxpY2F0aW9uR3JvdXBTaGFyZENvbmZpZ3VyYXRpb25Db21tYW5kfVxuICAgKi9cbiAgbW9kaWZ5UmVwbGljYXRpb25Hcm91cFNoYXJkQ29uZmlndXJhdGlvbihcbiAgICBhcmdzOiBNb2RpZnlSZXBsaWNhdGlvbkdyb3VwU2hhcmRDb25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTW9kaWZ5UmVwbGljYXRpb25Hcm91cFNoYXJkQ29uZmlndXJhdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW5zdWZmaWNpZW50Q2FjaGVDbHVzdGVyQ2FwYWNpdHlGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkQ2FjaGVDbHVzdGVyU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkS01TS2V5RmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBJbnZhbGlkUmVwbGljYXRpb25Hcm91cFN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFZQQ05ldHdvcmtTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IE5vZGVHcm91cHNQZXJSZXBsaWNhdGlvbkdyb3VwUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IE5vZGVRdW90YUZvckN1c3RvbWVyRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBSZXBsaWNhdGlvbkdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIE1vZGlmeVNlcnZlcmxlc3NDYWNoZUNvbW1hbmR9XG4gICAqL1xuICBtb2RpZnlTZXJ2ZXJsZXNzQ2FjaGUoXG4gICAgYXJnczogTW9kaWZ5U2VydmVybGVzc0NhY2hlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTW9kaWZ5U2VydmVybGVzc0NhY2hlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkQ3JlZGVudGlhbHNFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBJbnZhbGlkU2VydmVybGVzc0NhY2hlU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkVXNlckdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBTZXJ2ZXJsZXNzQ2FjaGVOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFNlcnZpY2VMaW5rZWRSb2xlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBVc2VyR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTW9kaWZ5VXNlckNvbW1hbmR9XG4gICAqL1xuICBtb2RpZnlVc2VyKFxuICAgIGFyZ3M6IE1vZGlmeVVzZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBNb2RpZnlVc2VyQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IEludmFsaWRVc2VyU3RhdGVGYXVsdEVycm9yXG4gICAgfCBTZXJ2aWNlTGlua2VkUm9sZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgVXNlck5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBNb2RpZnlVc2VyR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgbW9kaWZ5VXNlckdyb3VwKFxuICAgIGFyZ3M6IE1vZGlmeVVzZXJHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIE1vZGlmeVVzZXJHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRGVmYXVsdFVzZXJSZXF1aXJlZEVycm9yXG4gICAgfCBEdXBsaWNhdGVVc2VyTmFtZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgSW52YWxpZFVzZXJHcm91cFN0YXRlRmF1bHRFcnJvclxuICAgIHwgU2VydmljZUxpbmtlZFJvbGVOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFVzZXJHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgVXNlck5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXJjaGFzZVJlc2VydmVkQ2FjaGVOb2Rlc09mZmVyaW5nQ29tbWFuZH1cbiAgICovXG4gIHB1cmNoYXNlUmVzZXJ2ZWRDYWNoZU5vZGVzT2ZmZXJpbmcoXG4gICAgYXJnczogUHVyY2hhc2VSZXNlcnZlZENhY2hlTm9kZXNPZmZlcmluZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1cmNoYXNlUmVzZXJ2ZWRDYWNoZU5vZGVzT2ZmZXJpbmdDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzZXJ2ZWRDYWNoZU5vZGVBbHJlYWR5RXhpc3RzRmF1bHRFcnJvclxuICAgIHwgUmVzZXJ2ZWRDYWNoZU5vZGVRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgUmVzZXJ2ZWRDYWNoZU5vZGVzT2ZmZXJpbmdOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFRhZ1F1b3RhUGVyUmVzb3VyY2VFeGNlZWRlZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJlYmFsYW5jZVNsb3RzSW5HbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZH1cbiAgICovXG4gIHJlYmFsYW5jZVNsb3RzSW5HbG9iYWxSZXBsaWNhdGlvbkdyb3VwKFxuICAgIGFyZ3M6IFJlYmFsYW5jZVNsb3RzSW5HbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUmViYWxhbmNlU2xvdHNJbkdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEdsb2JhbFJlcGxpY2F0aW9uR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRHbG9iYWxSZXBsaWNhdGlvbkdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBSZWJvb3RDYWNoZUNsdXN0ZXJDb21tYW5kfVxuICAgKi9cbiAgcmVib290Q2FjaGVDbHVzdGVyKFxuICAgIGFyZ3M6IFJlYm9vdENhY2hlQ2x1c3RlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFJlYm9vdENhY2hlQ2x1c3RlckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ2FjaGVDbHVzdGVyTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkQ2FjaGVDbHVzdGVyU3RhdGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJlbW92ZVRhZ3NGcm9tUmVzb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgcmVtb3ZlVGFnc0Zyb21SZXNvdXJjZShcbiAgICBhcmdzOiBSZW1vdmVUYWdzRnJvbVJlc291cmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUmVtb3ZlVGFnc0Zyb21SZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ2FjaGVDbHVzdGVyTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBDYWNoZVBhcmFtZXRlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBDYWNoZVNlY3VyaXR5R3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IENhY2hlU3VibmV0R3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRBUk5GYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUmVwbGljYXRpb25Hcm91cFN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFNlcnZlcmxlc3NDYWNoZVNuYXBzaG90U3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkU2VydmVybGVzc0NhY2hlU3RhdGVGYXVsdEVycm9yXG4gICAgfCBSZXBsaWNhdGlvbkdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBSZXNlcnZlZENhY2hlTm9kZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgU2VydmVybGVzc0NhY2hlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgU25hcHNob3ROb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFRhZ05vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgVXNlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBVc2VyTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJlc2V0Q2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmR9XG4gICAqL1xuICByZXNldENhY2hlUGFyYW1ldGVyR3JvdXAoXG4gICAgYXJnczogUmVzZXRDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUmVzZXRDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDYWNoZVBhcmFtZXRlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkQ2FjaGVQYXJhbWV0ZXJHcm91cFN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZEdsb2JhbFJlcGxpY2F0aW9uR3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBSZXZva2VDYWNoZVNlY3VyaXR5R3JvdXBJbmdyZXNzQ29tbWFuZH1cbiAgICovXG4gIHJldm9rZUNhY2hlU2VjdXJpdHlHcm91cEluZ3Jlc3MoXG4gICAgYXJnczogUmV2b2tlQ2FjaGVTZWN1cml0eUdyb3VwSW5ncmVzc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFJldm9rZUNhY2hlU2VjdXJpdHlHcm91cEluZ3Jlc3NDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEF1dGhvcml6YXRpb25Ob3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IENhY2hlU2VjdXJpdHlHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZENhY2hlU2VjdXJpdHlHcm91cFN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFN0YXJ0TWlncmF0aW9uQ29tbWFuZH1cbiAgICovXG4gIHN0YXJ0TWlncmF0aW9uKFxuICAgIGFyZ3M6IFN0YXJ0TWlncmF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU3RhcnRNaWdyYXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBJbnZhbGlkUmVwbGljYXRpb25Hcm91cFN0YXRlRmF1bHRFcnJvclxuICAgIHwgUmVwbGljYXRpb25Hcm91cEFscmVhZHlVbmRlck1pZ3JhdGlvbkZhdWx0RXJyb3JcbiAgICB8IFJlcGxpY2F0aW9uR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVGVzdEZhaWxvdmVyQ29tbWFuZH1cbiAgICovXG4gIHRlc3RGYWlsb3ZlcihcbiAgICBhcmdzOiBUZXN0RmFpbG92ZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBUZXN0RmFpbG92ZXJDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFQSUNhbGxSYXRlRm9yQ3VzdG9tZXJFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRDYWNoZUNsdXN0ZXJTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRLTVNLZXlGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IEludmFsaWRSZXBsaWNhdGlvbkdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBOb2RlR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFJlcGxpY2F0aW9uR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFRlc3RGYWlsb3Zlck5vdEF2YWlsYWJsZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVGVzdE1pZ3JhdGlvbkNvbW1hbmR9XG4gICAqL1xuICB0ZXN0TWlncmF0aW9uKFxuICAgIGFyZ3M6IFRlc3RNaWdyYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBUZXN0TWlncmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgSW52YWxpZFJlcGxpY2F0aW9uR3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IFJlcGxpY2F0aW9uR3JvdXBBbHJlYWR5VW5kZXJNaWdyYXRpb25GYXVsdEVycm9yXG4gICAgfCBSZXBsaWNhdGlvbkdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG59XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbW9kZWxzXG4gKi9cbmV4cG9ydCBjbGFzcyBFbGFzdGlDYWNoZVNlcnZpY2UgZXh0ZW5kcyBFZmZlY3QuVGFnKFxuICBcIkBlZmZlY3QtYXdzL2NsaWVudC1lbGFzdGljYWNoZS9FbGFzdGlDYWNoZVNlcnZpY2VcIixcbik8RWxhc3RpQ2FjaGVTZXJ2aWNlLCBFbGFzdGlDYWNoZVNlcnZpY2UkPigpIHt9XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgY29uc3RydWN0b3JzXG4gKi9cbmV4cG9ydCBjb25zdCBtYWtlRWxhc3RpQ2FjaGVTZXJ2aWNlID0gRWZmZWN0LmdlbihmdW5jdGlvbiogKF8pIHtcbiAgY29uc3QgY2xpZW50ID0geWllbGQqIF8oRWxhc3RpQ2FjaGVDbGllbnRJbnN0YW5jZSk7XG5cbiAgcmV0dXJuIFJlY29yZC50b0VudHJpZXMoY29tbWFuZHMpLnJlZHVjZSgoYWNjLCBbY29tbWFuZF0pID0+IHtcbiAgICBjb25zdCBDb21tYW5kQ3RvciA9IGNvbW1hbmRzW2NvbW1hbmRdIGFzIGFueTtcbiAgICBjb25zdCBtZXRob2RJbXBsID0gKGFyZ3M6IGFueSwgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucykgPT5cbiAgICAgIEVmZmVjdC50cnlQcm9taXNlKHtcbiAgICAgICAgdHJ5OiAoYWJvcnRTaWduYWwpID0+XG4gICAgICAgICAgY2xpZW50LnNlbmQobmV3IENvbW1hbmRDdG9yKGFyZ3MpLCB7XG4gICAgICAgICAgICAuLi4ob3B0aW9ucyA/PyB7fSksXG4gICAgICAgICAgICBhYm9ydFNpZ25hbCxcbiAgICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2g6IChlKSA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZSBpbnN0YW5jZW9mIEVsYXN0aUNhY2hlU2VydmljZUV4Y2VwdGlvbiAmJlxuICAgICAgICAgICAgQWxsU2VydmljZUVycm9ycy5pbmNsdWRlcyhlLm5hbWUpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCBTZXJ2aWNlRXhjZXB0aW9uID0gRGF0YS50YWdnZWQ8XG4gICAgICAgICAgICAgIFRhZ2dlZEV4Y2VwdGlvbjxFbGFzdGlDYWNoZVNlcnZpY2VFeGNlcHRpb24+XG4gICAgICAgICAgICA+KGUubmFtZSk7XG5cbiAgICAgICAgICAgIHJldHVybiBTZXJ2aWNlRXhjZXB0aW9uKHtcbiAgICAgICAgICAgICAgLi4uZSxcbiAgICAgICAgICAgICAgbWVzc2FnZTogZS5tZXNzYWdlLFxuICAgICAgICAgICAgICBzdGFjazogZS5zdGFjayxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gU2RrRXJyb3Ioe1xuICAgICAgICAgICAgICAuLi5lLFxuICAgICAgICAgICAgICBuYW1lOiBcIlNka0Vycm9yXCIsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IGUubWVzc2FnZSxcbiAgICAgICAgICAgICAgc3RhY2s6IGUuc3RhY2ssXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIGNvbnN0IG1ldGhvZE5hbWUgPSAoY29tbWFuZFswXS50b0xvd2VyQ2FzZSgpICsgY29tbWFuZC5zbGljZSgxKSkucmVwbGFjZShcbiAgICAgIC9Db21tYW5kJC8sXG4gICAgICBcIlwiLFxuICAgICk7XG4gICAgcmV0dXJuIHsgLi4uYWNjLCBbbWV0aG9kTmFtZV06IG1ldGhvZEltcGwgfTtcbiAgfSwge30pIGFzIEVsYXN0aUNhY2hlU2VydmljZSQ7XG59KTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqL1xuZXhwb3J0IGNvbnN0IEJhc2VFbGFzdGlDYWNoZVNlcnZpY2VMYXllciA9IExheWVyLmVmZmVjdChcbiAgRWxhc3RpQ2FjaGVTZXJ2aWNlLFxuICBtYWtlRWxhc3RpQ2FjaGVTZXJ2aWNlLFxuKTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqL1xuZXhwb3J0IGNvbnN0IEVsYXN0aUNhY2hlU2VydmljZUxheWVyID0gQmFzZUVsYXN0aUNhY2hlU2VydmljZUxheWVyLnBpcGUoXG4gIExheWVyLnByb3ZpZGUoRWxhc3RpQ2FjaGVDbGllbnRJbnN0YW5jZUxheWVyKSxcbik7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBEZWZhdWx0RWxhc3RpQ2FjaGVTZXJ2aWNlTGF5ZXIgPSBFbGFzdGlDYWNoZVNlcnZpY2VMYXllci5waXBlKFxuICBMYXllci5wcm92aWRlKERlZmF1bHRFbGFzdGlDYWNoZUNsaWVudENvbmZpZ0xheWVyKSxcbik7XG4iXX0=
package/lib/Errors.d.ts CHANGED
@@ -1,17 +1,87 @@
1
- import type { ElastiCacheServiceException, InvalidCredentialsException, InvalidParameterValueException, InvalidParameterCombinationException } from "@aws-sdk/client-elasticache";
2
- import * as Data from "effect/Data";
1
+ import type { APICallRateForCustomerExceededFault, AuthorizationAlreadyExistsFault, AuthorizationNotFoundFault, CacheClusterAlreadyExistsFault, CacheClusterNotFoundFault, CacheParameterGroupAlreadyExistsFault, CacheParameterGroupNotFoundFault, CacheParameterGroupQuotaExceededFault, CacheSecurityGroupAlreadyExistsFault, CacheSecurityGroupNotFoundFault, CacheSecurityGroupQuotaExceededFault, CacheSubnetGroupAlreadyExistsFault, CacheSubnetGroupInUse, CacheSubnetGroupNotFoundFault, CacheSubnetGroupQuotaExceededFault, CacheSubnetQuotaExceededFault, ClusterQuotaForCustomerExceededFault, DefaultUserAssociatedToUserGroupFault, DefaultUserRequired, DuplicateUserNameFault, GlobalReplicationGroupAlreadyExistsFault, GlobalReplicationGroupNotFoundFault, InsufficientCacheClusterCapacityFault, InvalidARNFault, InvalidCacheClusterStateFault, InvalidCacheParameterGroupStateFault, InvalidCacheSecurityGroupStateFault, InvalidCredentialsException, InvalidGlobalReplicationGroupStateFault, InvalidKMSKeyFault, InvalidParameterCombinationException, InvalidParameterValueException, InvalidReplicationGroupStateFault, InvalidServerlessCacheSnapshotStateFault, InvalidServerlessCacheStateFault, InvalidSnapshotStateFault, InvalidSubnet, InvalidUserGroupStateFault, InvalidUserStateFault, InvalidVPCNetworkStateFault, NoOperationFault, NodeGroupNotFoundFault, NodeGroupsPerReplicationGroupQuotaExceededFault, NodeQuotaForClusterExceededFault, NodeQuotaForCustomerExceededFault, ReplicationGroupAlreadyExistsFault, ReplicationGroupAlreadyUnderMigrationFault, ReplicationGroupNotFoundFault, ReplicationGroupNotUnderMigrationFault, ReservedCacheNodeAlreadyExistsFault, ReservedCacheNodeNotFoundFault, ReservedCacheNodeQuotaExceededFault, ReservedCacheNodesOfferingNotFoundFault, ServerlessCacheAlreadyExistsFault, ServerlessCacheNotFoundFault, ServerlessCacheQuotaForCustomerExceededFault, ServerlessCacheSnapshotAlreadyExistsFault, ServerlessCacheSnapshotNotFoundFault, ServerlessCacheSnapshotQuotaExceededFault, ServiceLinkedRoleNotFoundFault, ServiceUpdateNotFoundFault, SnapshotAlreadyExistsFault, SnapshotFeatureNotSupportedFault, SnapshotNotFoundFault, SnapshotQuotaExceededFault, SubnetInUse, SubnetNotAllowedFault, TagNotFoundFault, TagQuotaPerResourceExceeded, TestFailoverNotAvailableFault, UserAlreadyExistsFault, UserGroupAlreadyExistsFault, UserGroupNotFoundFault, UserGroupQuotaExceededFault, UserNotFoundFault, UserQuotaExceededFault } from "@aws-sdk/client-elasticache";
2
+ import { Data } from "effect";
3
+ export declare const AllServiceErrors: string[];
3
4
  export type TaggedException<T extends {
4
5
  name: string;
5
6
  }> = T & {
6
7
  readonly _tag: T["name"];
7
8
  };
9
+ export type APICallRateForCustomerExceededFaultError = TaggedException<APICallRateForCustomerExceededFault>;
10
+ export type AuthorizationAlreadyExistsFaultError = TaggedException<AuthorizationAlreadyExistsFault>;
11
+ export type AuthorizationNotFoundFaultError = TaggedException<AuthorizationNotFoundFault>;
12
+ export type CacheClusterAlreadyExistsFaultError = TaggedException<CacheClusterAlreadyExistsFault>;
13
+ export type CacheClusterNotFoundFaultError = TaggedException<CacheClusterNotFoundFault>;
14
+ export type CacheParameterGroupAlreadyExistsFaultError = TaggedException<CacheParameterGroupAlreadyExistsFault>;
15
+ export type CacheParameterGroupNotFoundFaultError = TaggedException<CacheParameterGroupNotFoundFault>;
16
+ export type CacheParameterGroupQuotaExceededFaultError = TaggedException<CacheParameterGroupQuotaExceededFault>;
17
+ export type CacheSecurityGroupAlreadyExistsFaultError = TaggedException<CacheSecurityGroupAlreadyExistsFault>;
18
+ export type CacheSecurityGroupNotFoundFaultError = TaggedException<CacheSecurityGroupNotFoundFault>;
19
+ export type CacheSecurityGroupQuotaExceededFaultError = TaggedException<CacheSecurityGroupQuotaExceededFault>;
20
+ export type CacheSubnetGroupAlreadyExistsFaultError = TaggedException<CacheSubnetGroupAlreadyExistsFault>;
21
+ export type CacheSubnetGroupInUseError = TaggedException<CacheSubnetGroupInUse>;
22
+ export type CacheSubnetGroupNotFoundFaultError = TaggedException<CacheSubnetGroupNotFoundFault>;
23
+ export type CacheSubnetGroupQuotaExceededFaultError = TaggedException<CacheSubnetGroupQuotaExceededFault>;
24
+ export type CacheSubnetQuotaExceededFaultError = TaggedException<CacheSubnetQuotaExceededFault>;
25
+ export type ClusterQuotaForCustomerExceededFaultError = TaggedException<ClusterQuotaForCustomerExceededFault>;
26
+ export type DefaultUserAssociatedToUserGroupFaultError = TaggedException<DefaultUserAssociatedToUserGroupFault>;
27
+ export type DefaultUserRequiredError = TaggedException<DefaultUserRequired>;
28
+ export type DuplicateUserNameFaultError = TaggedException<DuplicateUserNameFault>;
29
+ export type GlobalReplicationGroupAlreadyExistsFaultError = TaggedException<GlobalReplicationGroupAlreadyExistsFault>;
30
+ export type GlobalReplicationGroupNotFoundFaultError = TaggedException<GlobalReplicationGroupNotFoundFault>;
31
+ export type InsufficientCacheClusterCapacityFaultError = TaggedException<InsufficientCacheClusterCapacityFault>;
32
+ export type InvalidARNFaultError = TaggedException<InvalidARNFault>;
33
+ export type InvalidCacheClusterStateFaultError = TaggedException<InvalidCacheClusterStateFault>;
34
+ export type InvalidCacheParameterGroupStateFaultError = TaggedException<InvalidCacheParameterGroupStateFault>;
35
+ export type InvalidCacheSecurityGroupStateFaultError = TaggedException<InvalidCacheSecurityGroupStateFault>;
8
36
  export type InvalidCredentialsError = TaggedException<InvalidCredentialsException>;
9
- export type InvalidParameterValueError = TaggedException<InvalidParameterValueException>;
37
+ export type InvalidGlobalReplicationGroupStateFaultError = TaggedException<InvalidGlobalReplicationGroupStateFault>;
38
+ export type InvalidKMSKeyFaultError = TaggedException<InvalidKMSKeyFault>;
10
39
  export type InvalidParameterCombinationError = TaggedException<InvalidParameterCombinationException>;
11
- export type ElastiCacheServiceError = TaggedException<ElastiCacheServiceException & {
12
- name: "ElastiCacheServiceError";
13
- }>;
14
- export declare const ElastiCacheServiceError: Data.Case.Constructor<ElastiCacheServiceError, "_tag">;
40
+ export type InvalidParameterValueError = TaggedException<InvalidParameterValueException>;
41
+ export type InvalidReplicationGroupStateFaultError = TaggedException<InvalidReplicationGroupStateFault>;
42
+ export type InvalidServerlessCacheSnapshotStateFaultError = TaggedException<InvalidServerlessCacheSnapshotStateFault>;
43
+ export type InvalidServerlessCacheStateFaultError = TaggedException<InvalidServerlessCacheStateFault>;
44
+ export type InvalidSnapshotStateFaultError = TaggedException<InvalidSnapshotStateFault>;
45
+ export type InvalidSubnetError = TaggedException<InvalidSubnet>;
46
+ export type InvalidUserGroupStateFaultError = TaggedException<InvalidUserGroupStateFault>;
47
+ export type InvalidUserStateFaultError = TaggedException<InvalidUserStateFault>;
48
+ export type InvalidVPCNetworkStateFaultError = TaggedException<InvalidVPCNetworkStateFault>;
49
+ export type NoOperationFaultError = TaggedException<NoOperationFault>;
50
+ export type NodeGroupNotFoundFaultError = TaggedException<NodeGroupNotFoundFault>;
51
+ export type NodeGroupsPerReplicationGroupQuotaExceededFaultError = TaggedException<NodeGroupsPerReplicationGroupQuotaExceededFault>;
52
+ export type NodeQuotaForClusterExceededFaultError = TaggedException<NodeQuotaForClusterExceededFault>;
53
+ export type NodeQuotaForCustomerExceededFaultError = TaggedException<NodeQuotaForCustomerExceededFault>;
54
+ export type ReplicationGroupAlreadyExistsFaultError = TaggedException<ReplicationGroupAlreadyExistsFault>;
55
+ export type ReplicationGroupAlreadyUnderMigrationFaultError = TaggedException<ReplicationGroupAlreadyUnderMigrationFault>;
56
+ export type ReplicationGroupNotFoundFaultError = TaggedException<ReplicationGroupNotFoundFault>;
57
+ export type ReplicationGroupNotUnderMigrationFaultError = TaggedException<ReplicationGroupNotUnderMigrationFault>;
58
+ export type ReservedCacheNodeAlreadyExistsFaultError = TaggedException<ReservedCacheNodeAlreadyExistsFault>;
59
+ export type ReservedCacheNodeNotFoundFaultError = TaggedException<ReservedCacheNodeNotFoundFault>;
60
+ export type ReservedCacheNodeQuotaExceededFaultError = TaggedException<ReservedCacheNodeQuotaExceededFault>;
61
+ export type ReservedCacheNodesOfferingNotFoundFaultError = TaggedException<ReservedCacheNodesOfferingNotFoundFault>;
62
+ export type ServerlessCacheAlreadyExistsFaultError = TaggedException<ServerlessCacheAlreadyExistsFault>;
63
+ export type ServerlessCacheNotFoundFaultError = TaggedException<ServerlessCacheNotFoundFault>;
64
+ export type ServerlessCacheQuotaForCustomerExceededFaultError = TaggedException<ServerlessCacheQuotaForCustomerExceededFault>;
65
+ export type ServerlessCacheSnapshotAlreadyExistsFaultError = TaggedException<ServerlessCacheSnapshotAlreadyExistsFault>;
66
+ export type ServerlessCacheSnapshotNotFoundFaultError = TaggedException<ServerlessCacheSnapshotNotFoundFault>;
67
+ export type ServerlessCacheSnapshotQuotaExceededFaultError = TaggedException<ServerlessCacheSnapshotQuotaExceededFault>;
68
+ export type ServiceLinkedRoleNotFoundFaultError = TaggedException<ServiceLinkedRoleNotFoundFault>;
69
+ export type ServiceUpdateNotFoundFaultError = TaggedException<ServiceUpdateNotFoundFault>;
70
+ export type SnapshotAlreadyExistsFaultError = TaggedException<SnapshotAlreadyExistsFault>;
71
+ export type SnapshotFeatureNotSupportedFaultError = TaggedException<SnapshotFeatureNotSupportedFault>;
72
+ export type SnapshotNotFoundFaultError = TaggedException<SnapshotNotFoundFault>;
73
+ export type SnapshotQuotaExceededFaultError = TaggedException<SnapshotQuotaExceededFault>;
74
+ export type SubnetInUseError = TaggedException<SubnetInUse>;
75
+ export type SubnetNotAllowedFaultError = TaggedException<SubnetNotAllowedFault>;
76
+ export type TagNotFoundFaultError = TaggedException<TagNotFoundFault>;
77
+ export type TagQuotaPerResourceExceededError = TaggedException<TagQuotaPerResourceExceeded>;
78
+ export type TestFailoverNotAvailableFaultError = TaggedException<TestFailoverNotAvailableFault>;
79
+ export type UserAlreadyExistsFaultError = TaggedException<UserAlreadyExistsFault>;
80
+ export type UserGroupAlreadyExistsFaultError = TaggedException<UserGroupAlreadyExistsFault>;
81
+ export type UserGroupNotFoundFaultError = TaggedException<UserGroupNotFoundFault>;
82
+ export type UserGroupQuotaExceededFaultError = TaggedException<UserGroupQuotaExceededFault>;
83
+ export type UserNotFoundFaultError = TaggedException<UserNotFoundFault>;
84
+ export type UserQuotaExceededFaultError = TaggedException<UserQuotaExceededFault>;
15
85
  export type SdkError = TaggedException<Error & {
16
86
  name: "SdkError";
17
87
  }>;