@effect-aws/client-rds 1.3.0 → 1.9.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.
Files changed (68) hide show
  1. package/Errors/package.json +6 -0
  2. package/RDSClientInstance/package.json +6 -0
  3. package/RDSService/package.json +6 -0
  4. package/RDSServiceConfig/package.json +6 -0
  5. package/{lib → dist/cjs}/Errors.d.ts +7 -12
  6. package/dist/cjs/Errors.d.ts.map +1 -0
  7. package/dist/cjs/Errors.js +153 -0
  8. package/dist/cjs/Errors.js.map +1 -0
  9. package/dist/cjs/RDSClientInstance.d.ts +24 -0
  10. package/dist/cjs/RDSClientInstance.d.ts.map +1 -0
  11. package/dist/cjs/RDSClientInstance.js +50 -0
  12. package/dist/cjs/RDSClientInstance.js.map +1 -0
  13. package/{lib → dist/cjs}/RDSService.d.ts +16 -38
  14. package/dist/cjs/RDSService.d.ts.map +1 -0
  15. package/dist/cjs/RDSService.js +218 -0
  16. package/dist/cjs/RDSService.js.map +1 -0
  17. package/dist/cjs/RDSServiceConfig.d.ts +25 -0
  18. package/dist/cjs/RDSServiceConfig.d.ts.map +1 -0
  19. package/dist/cjs/RDSServiceConfig.js +35 -0
  20. package/dist/cjs/RDSServiceConfig.js.map +1 -0
  21. package/dist/cjs/index.d.ts +39 -0
  22. package/dist/cjs/index.d.ts.map +1 -0
  23. package/dist/cjs/index.js +56 -0
  24. package/dist/cjs/index.js.map +1 -0
  25. package/dist/dts/Errors.d.ts +152 -0
  26. package/dist/dts/Errors.d.ts.map +1 -0
  27. package/dist/dts/RDSClientInstance.d.ts +24 -0
  28. package/dist/dts/RDSClientInstance.d.ts.map +1 -0
  29. package/dist/dts/RDSService.d.ts +853 -0
  30. package/dist/dts/RDSService.d.ts.map +1 -0
  31. package/dist/dts/RDSServiceConfig.d.ts +25 -0
  32. package/dist/dts/RDSServiceConfig.d.ts.map +1 -0
  33. package/dist/dts/index.d.ts +39 -0
  34. package/dist/dts/index.d.ts.map +1 -0
  35. package/dist/esm/Errors.js +150 -0
  36. package/dist/esm/Errors.js.map +1 -0
  37. package/dist/esm/RDSClientInstance.js +23 -0
  38. package/dist/esm/RDSClientInstance.js.map +1 -0
  39. package/dist/esm/RDSService.js +191 -0
  40. package/dist/esm/RDSService.js.map +1 -0
  41. package/dist/esm/RDSServiceConfig.js +31 -0
  42. package/dist/esm/RDSServiceConfig.js.map +1 -0
  43. package/dist/esm/index.js +27 -0
  44. package/dist/esm/index.js.map +1 -0
  45. package/dist/esm/package.json +4 -0
  46. package/package.json +60 -43
  47. package/src/Errors.ts +452 -0
  48. package/src/RDSClientInstance.ts +33 -0
  49. package/src/RDSService.ts +3127 -0
  50. package/src/RDSServiceConfig.ts +51 -0
  51. package/src/index.ts +44 -0
  52. package/CHANGELOG.md +0 -41
  53. package/docgen.json +0 -8
  54. package/lib/Errors.js +0 -153
  55. package/lib/RDSClientInstance.d.ts +0 -31
  56. package/lib/RDSClientInstance.js +0 -57
  57. package/lib/RDSClientInstanceConfig.d.ts +0 -23
  58. package/lib/RDSClientInstanceConfig.js +0 -44
  59. package/lib/RDSService.js +0 -250
  60. package/lib/esm/Errors.js +0 -150
  61. package/lib/esm/RDSClientInstance.js +0 -30
  62. package/lib/esm/RDSClientInstanceConfig.js +0 -40
  63. package/lib/esm/RDSService.js +0 -246
  64. package/lib/esm/index.js +0 -5
  65. package/lib/index.d.ts +0 -4
  66. package/lib/index.js +0 -21
  67. package/project.json +0 -77
  68. package/vitest.config.ts +0 -3
package/lib/RDSService.js DELETED
@@ -1,250 +0,0 @@
1
- "use strict";
2
- var _a;
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.DefaultRDSServiceLayer = exports.RDSServiceLayer = exports.BaseRDSServiceLayer = exports.RDS = exports.RDSService = exports.makeRDSService = void 0;
5
- /**
6
- * @since 1.0.0
7
- */
8
- const client_rds_1 = require("@aws-sdk/client-rds");
9
- const effect_1 = require("effect");
10
- const Errors_1 = require("./Errors");
11
- const RDSClientInstance_1 = require("./RDSClientInstance");
12
- const RDSClientInstanceConfig_1 = require("./RDSClientInstanceConfig");
13
- const commands = {
14
- AddRoleToDBClusterCommand: client_rds_1.AddRoleToDBClusterCommand,
15
- AddRoleToDBInstanceCommand: client_rds_1.AddRoleToDBInstanceCommand,
16
- AddSourceIdentifierToSubscriptionCommand: client_rds_1.AddSourceIdentifierToSubscriptionCommand,
17
- AddTagsToResourceCommand: client_rds_1.AddTagsToResourceCommand,
18
- ApplyPendingMaintenanceActionCommand: client_rds_1.ApplyPendingMaintenanceActionCommand,
19
- AuthorizeDBSecurityGroupIngressCommand: client_rds_1.AuthorizeDBSecurityGroupIngressCommand,
20
- BacktrackDBClusterCommand: client_rds_1.BacktrackDBClusterCommand,
21
- CancelExportTaskCommand: client_rds_1.CancelExportTaskCommand,
22
- CopyDBClusterParameterGroupCommand: client_rds_1.CopyDBClusterParameterGroupCommand,
23
- CopyDBClusterSnapshotCommand: client_rds_1.CopyDBClusterSnapshotCommand,
24
- CopyDBParameterGroupCommand: client_rds_1.CopyDBParameterGroupCommand,
25
- CopyDBSnapshotCommand: client_rds_1.CopyDBSnapshotCommand,
26
- CopyOptionGroupCommand: client_rds_1.CopyOptionGroupCommand,
27
- CreateBlueGreenDeploymentCommand: client_rds_1.CreateBlueGreenDeploymentCommand,
28
- CreateCustomDBEngineVersionCommand: client_rds_1.CreateCustomDBEngineVersionCommand,
29
- CreateDBClusterCommand: client_rds_1.CreateDBClusterCommand,
30
- CreateDBClusterEndpointCommand: client_rds_1.CreateDBClusterEndpointCommand,
31
- CreateDBClusterParameterGroupCommand: client_rds_1.CreateDBClusterParameterGroupCommand,
32
- CreateDBClusterSnapshotCommand: client_rds_1.CreateDBClusterSnapshotCommand,
33
- CreateDBInstanceCommand: client_rds_1.CreateDBInstanceCommand,
34
- CreateDBInstanceReadReplicaCommand: client_rds_1.CreateDBInstanceReadReplicaCommand,
35
- CreateDBParameterGroupCommand: client_rds_1.CreateDBParameterGroupCommand,
36
- CreateDBProxyCommand: client_rds_1.CreateDBProxyCommand,
37
- CreateDBProxyEndpointCommand: client_rds_1.CreateDBProxyEndpointCommand,
38
- CreateDBSecurityGroupCommand: client_rds_1.CreateDBSecurityGroupCommand,
39
- CreateDBShardGroupCommand: client_rds_1.CreateDBShardGroupCommand,
40
- CreateDBSnapshotCommand: client_rds_1.CreateDBSnapshotCommand,
41
- CreateDBSubnetGroupCommand: client_rds_1.CreateDBSubnetGroupCommand,
42
- CreateEventSubscriptionCommand: client_rds_1.CreateEventSubscriptionCommand,
43
- CreateGlobalClusterCommand: client_rds_1.CreateGlobalClusterCommand,
44
- CreateIntegrationCommand: client_rds_1.CreateIntegrationCommand,
45
- CreateOptionGroupCommand: client_rds_1.CreateOptionGroupCommand,
46
- CreateTenantDatabaseCommand: client_rds_1.CreateTenantDatabaseCommand,
47
- DeleteBlueGreenDeploymentCommand: client_rds_1.DeleteBlueGreenDeploymentCommand,
48
- DeleteCustomDBEngineVersionCommand: client_rds_1.DeleteCustomDBEngineVersionCommand,
49
- DeleteDBClusterCommand: client_rds_1.DeleteDBClusterCommand,
50
- DeleteDBClusterAutomatedBackupCommand: client_rds_1.DeleteDBClusterAutomatedBackupCommand,
51
- DeleteDBClusterEndpointCommand: client_rds_1.DeleteDBClusterEndpointCommand,
52
- DeleteDBClusterParameterGroupCommand: client_rds_1.DeleteDBClusterParameterGroupCommand,
53
- DeleteDBClusterSnapshotCommand: client_rds_1.DeleteDBClusterSnapshotCommand,
54
- DeleteDBInstanceCommand: client_rds_1.DeleteDBInstanceCommand,
55
- DeleteDBInstanceAutomatedBackupCommand: client_rds_1.DeleteDBInstanceAutomatedBackupCommand,
56
- DeleteDBParameterGroupCommand: client_rds_1.DeleteDBParameterGroupCommand,
57
- DeleteDBProxyCommand: client_rds_1.DeleteDBProxyCommand,
58
- DeleteDBProxyEndpointCommand: client_rds_1.DeleteDBProxyEndpointCommand,
59
- DeleteDBSecurityGroupCommand: client_rds_1.DeleteDBSecurityGroupCommand,
60
- DeleteDBShardGroupCommand: client_rds_1.DeleteDBShardGroupCommand,
61
- DeleteDBSnapshotCommand: client_rds_1.DeleteDBSnapshotCommand,
62
- DeleteDBSubnetGroupCommand: client_rds_1.DeleteDBSubnetGroupCommand,
63
- DeleteEventSubscriptionCommand: client_rds_1.DeleteEventSubscriptionCommand,
64
- DeleteGlobalClusterCommand: client_rds_1.DeleteGlobalClusterCommand,
65
- DeleteIntegrationCommand: client_rds_1.DeleteIntegrationCommand,
66
- DeleteOptionGroupCommand: client_rds_1.DeleteOptionGroupCommand,
67
- DeleteTenantDatabaseCommand: client_rds_1.DeleteTenantDatabaseCommand,
68
- DeregisterDBProxyTargetsCommand: client_rds_1.DeregisterDBProxyTargetsCommand,
69
- DescribeAccountAttributesCommand: client_rds_1.DescribeAccountAttributesCommand,
70
- DescribeBlueGreenDeploymentsCommand: client_rds_1.DescribeBlueGreenDeploymentsCommand,
71
- DescribeCertificatesCommand: client_rds_1.DescribeCertificatesCommand,
72
- DescribeDBClusterAutomatedBackupsCommand: client_rds_1.DescribeDBClusterAutomatedBackupsCommand,
73
- DescribeDBClusterBacktracksCommand: client_rds_1.DescribeDBClusterBacktracksCommand,
74
- DescribeDBClusterEndpointsCommand: client_rds_1.DescribeDBClusterEndpointsCommand,
75
- DescribeDBClusterParameterGroupsCommand: client_rds_1.DescribeDBClusterParameterGroupsCommand,
76
- DescribeDBClusterParametersCommand: client_rds_1.DescribeDBClusterParametersCommand,
77
- DescribeDBClusterSnapshotAttributesCommand: client_rds_1.DescribeDBClusterSnapshotAttributesCommand,
78
- DescribeDBClusterSnapshotsCommand: client_rds_1.DescribeDBClusterSnapshotsCommand,
79
- DescribeDBClustersCommand: client_rds_1.DescribeDBClustersCommand,
80
- DescribeDBEngineVersionsCommand: client_rds_1.DescribeDBEngineVersionsCommand,
81
- DescribeDBInstanceAutomatedBackupsCommand: client_rds_1.DescribeDBInstanceAutomatedBackupsCommand,
82
- DescribeDBInstancesCommand: client_rds_1.DescribeDBInstancesCommand,
83
- DescribeDBLogFilesCommand: client_rds_1.DescribeDBLogFilesCommand,
84
- DescribeDBParameterGroupsCommand: client_rds_1.DescribeDBParameterGroupsCommand,
85
- DescribeDBParametersCommand: client_rds_1.DescribeDBParametersCommand,
86
- DescribeDBProxiesCommand: client_rds_1.DescribeDBProxiesCommand,
87
- DescribeDBProxyEndpointsCommand: client_rds_1.DescribeDBProxyEndpointsCommand,
88
- DescribeDBProxyTargetGroupsCommand: client_rds_1.DescribeDBProxyTargetGroupsCommand,
89
- DescribeDBProxyTargetsCommand: client_rds_1.DescribeDBProxyTargetsCommand,
90
- DescribeDBRecommendationsCommand: client_rds_1.DescribeDBRecommendationsCommand,
91
- DescribeDBSecurityGroupsCommand: client_rds_1.DescribeDBSecurityGroupsCommand,
92
- DescribeDBShardGroupsCommand: client_rds_1.DescribeDBShardGroupsCommand,
93
- DescribeDBSnapshotAttributesCommand: client_rds_1.DescribeDBSnapshotAttributesCommand,
94
- DescribeDBSnapshotTenantDatabasesCommand: client_rds_1.DescribeDBSnapshotTenantDatabasesCommand,
95
- DescribeDBSnapshotsCommand: client_rds_1.DescribeDBSnapshotsCommand,
96
- DescribeDBSubnetGroupsCommand: client_rds_1.DescribeDBSubnetGroupsCommand,
97
- DescribeEngineDefaultClusterParametersCommand: client_rds_1.DescribeEngineDefaultClusterParametersCommand,
98
- DescribeEngineDefaultParametersCommand: client_rds_1.DescribeEngineDefaultParametersCommand,
99
- DescribeEventCategoriesCommand: client_rds_1.DescribeEventCategoriesCommand,
100
- DescribeEventSubscriptionsCommand: client_rds_1.DescribeEventSubscriptionsCommand,
101
- DescribeEventsCommand: client_rds_1.DescribeEventsCommand,
102
- DescribeExportTasksCommand: client_rds_1.DescribeExportTasksCommand,
103
- DescribeGlobalClustersCommand: client_rds_1.DescribeGlobalClustersCommand,
104
- DescribeIntegrationsCommand: client_rds_1.DescribeIntegrationsCommand,
105
- DescribeOptionGroupOptionsCommand: client_rds_1.DescribeOptionGroupOptionsCommand,
106
- DescribeOptionGroupsCommand: client_rds_1.DescribeOptionGroupsCommand,
107
- DescribeOrderableDBInstanceOptionsCommand: client_rds_1.DescribeOrderableDBInstanceOptionsCommand,
108
- DescribePendingMaintenanceActionsCommand: client_rds_1.DescribePendingMaintenanceActionsCommand,
109
- DescribeReservedDBInstancesCommand: client_rds_1.DescribeReservedDBInstancesCommand,
110
- DescribeReservedDBInstancesOfferingsCommand: client_rds_1.DescribeReservedDBInstancesOfferingsCommand,
111
- DescribeSourceRegionsCommand: client_rds_1.DescribeSourceRegionsCommand,
112
- DescribeTenantDatabasesCommand: client_rds_1.DescribeTenantDatabasesCommand,
113
- DescribeValidDBInstanceModificationsCommand: client_rds_1.DescribeValidDBInstanceModificationsCommand,
114
- DisableHttpEndpointCommand: client_rds_1.DisableHttpEndpointCommand,
115
- DownloadDBLogFilePortionCommand: client_rds_1.DownloadDBLogFilePortionCommand,
116
- EnableHttpEndpointCommand: client_rds_1.EnableHttpEndpointCommand,
117
- FailoverDBClusterCommand: client_rds_1.FailoverDBClusterCommand,
118
- FailoverGlobalClusterCommand: client_rds_1.FailoverGlobalClusterCommand,
119
- ListTagsForResourceCommand: client_rds_1.ListTagsForResourceCommand,
120
- ModifyActivityStreamCommand: client_rds_1.ModifyActivityStreamCommand,
121
- ModifyCertificatesCommand: client_rds_1.ModifyCertificatesCommand,
122
- ModifyCurrentDBClusterCapacityCommand: client_rds_1.ModifyCurrentDBClusterCapacityCommand,
123
- ModifyCustomDBEngineVersionCommand: client_rds_1.ModifyCustomDBEngineVersionCommand,
124
- ModifyDBClusterCommand: client_rds_1.ModifyDBClusterCommand,
125
- ModifyDBClusterEndpointCommand: client_rds_1.ModifyDBClusterEndpointCommand,
126
- ModifyDBClusterParameterGroupCommand: client_rds_1.ModifyDBClusterParameterGroupCommand,
127
- ModifyDBClusterSnapshotAttributeCommand: client_rds_1.ModifyDBClusterSnapshotAttributeCommand,
128
- ModifyDBInstanceCommand: client_rds_1.ModifyDBInstanceCommand,
129
- ModifyDBParameterGroupCommand: client_rds_1.ModifyDBParameterGroupCommand,
130
- ModifyDBProxyCommand: client_rds_1.ModifyDBProxyCommand,
131
- ModifyDBProxyEndpointCommand: client_rds_1.ModifyDBProxyEndpointCommand,
132
- ModifyDBProxyTargetGroupCommand: client_rds_1.ModifyDBProxyTargetGroupCommand,
133
- ModifyDBRecommendationCommand: client_rds_1.ModifyDBRecommendationCommand,
134
- ModifyDBShardGroupCommand: client_rds_1.ModifyDBShardGroupCommand,
135
- ModifyDBSnapshotCommand: client_rds_1.ModifyDBSnapshotCommand,
136
- ModifyDBSnapshotAttributeCommand: client_rds_1.ModifyDBSnapshotAttributeCommand,
137
- ModifyDBSubnetGroupCommand: client_rds_1.ModifyDBSubnetGroupCommand,
138
- ModifyEventSubscriptionCommand: client_rds_1.ModifyEventSubscriptionCommand,
139
- ModifyGlobalClusterCommand: client_rds_1.ModifyGlobalClusterCommand,
140
- ModifyIntegrationCommand: client_rds_1.ModifyIntegrationCommand,
141
- ModifyOptionGroupCommand: client_rds_1.ModifyOptionGroupCommand,
142
- ModifyTenantDatabaseCommand: client_rds_1.ModifyTenantDatabaseCommand,
143
- PromoteReadReplicaCommand: client_rds_1.PromoteReadReplicaCommand,
144
- PromoteReadReplicaDBClusterCommand: client_rds_1.PromoteReadReplicaDBClusterCommand,
145
- PurchaseReservedDBInstancesOfferingCommand: client_rds_1.PurchaseReservedDBInstancesOfferingCommand,
146
- RebootDBClusterCommand: client_rds_1.RebootDBClusterCommand,
147
- RebootDBInstanceCommand: client_rds_1.RebootDBInstanceCommand,
148
- RebootDBShardGroupCommand: client_rds_1.RebootDBShardGroupCommand,
149
- RegisterDBProxyTargetsCommand: client_rds_1.RegisterDBProxyTargetsCommand,
150
- RemoveFromGlobalClusterCommand: client_rds_1.RemoveFromGlobalClusterCommand,
151
- RemoveRoleFromDBClusterCommand: client_rds_1.RemoveRoleFromDBClusterCommand,
152
- RemoveRoleFromDBInstanceCommand: client_rds_1.RemoveRoleFromDBInstanceCommand,
153
- RemoveSourceIdentifierFromSubscriptionCommand: client_rds_1.RemoveSourceIdentifierFromSubscriptionCommand,
154
- RemoveTagsFromResourceCommand: client_rds_1.RemoveTagsFromResourceCommand,
155
- ResetDBClusterParameterGroupCommand: client_rds_1.ResetDBClusterParameterGroupCommand,
156
- ResetDBParameterGroupCommand: client_rds_1.ResetDBParameterGroupCommand,
157
- RestoreDBClusterFromS3Command: client_rds_1.RestoreDBClusterFromS3Command,
158
- RestoreDBClusterFromSnapshotCommand: client_rds_1.RestoreDBClusterFromSnapshotCommand,
159
- RestoreDBClusterToPointInTimeCommand: client_rds_1.RestoreDBClusterToPointInTimeCommand,
160
- RestoreDBInstanceFromDBSnapshotCommand: client_rds_1.RestoreDBInstanceFromDBSnapshotCommand,
161
- RestoreDBInstanceFromS3Command: client_rds_1.RestoreDBInstanceFromS3Command,
162
- RestoreDBInstanceToPointInTimeCommand: client_rds_1.RestoreDBInstanceToPointInTimeCommand,
163
- RevokeDBSecurityGroupIngressCommand: client_rds_1.RevokeDBSecurityGroupIngressCommand,
164
- StartActivityStreamCommand: client_rds_1.StartActivityStreamCommand,
165
- StartDBClusterCommand: client_rds_1.StartDBClusterCommand,
166
- StartDBInstanceCommand: client_rds_1.StartDBInstanceCommand,
167
- StartDBInstanceAutomatedBackupsReplicationCommand: client_rds_1.StartDBInstanceAutomatedBackupsReplicationCommand,
168
- StartExportTaskCommand: client_rds_1.StartExportTaskCommand,
169
- StopActivityStreamCommand: client_rds_1.StopActivityStreamCommand,
170
- StopDBClusterCommand: client_rds_1.StopDBClusterCommand,
171
- StopDBInstanceCommand: client_rds_1.StopDBInstanceCommand,
172
- StopDBInstanceAutomatedBackupsReplicationCommand: client_rds_1.StopDBInstanceAutomatedBackupsReplicationCommand,
173
- SwitchoverBlueGreenDeploymentCommand: client_rds_1.SwitchoverBlueGreenDeploymentCommand,
174
- SwitchoverGlobalClusterCommand: client_rds_1.SwitchoverGlobalClusterCommand,
175
- SwitchoverReadReplicaCommand: client_rds_1.SwitchoverReadReplicaCommand,
176
- };
177
- /**
178
- * @since 1.0.0
179
- * @category constructors
180
- */
181
- exports.makeRDSService = effect_1.Effect.gen(function* (_) {
182
- const client = yield* _(RDSClientInstance_1.RDSClientInstance);
183
- return effect_1.Record.toEntries(commands).reduce((acc, [command]) => {
184
- const CommandCtor = commands[command];
185
- const methodImpl = (args, options) => effect_1.Effect.tryPromise({
186
- try: (abortSignal) => client.send(new CommandCtor(args), {
187
- ...(options !== null && options !== void 0 ? options : {}),
188
- abortSignal,
189
- }),
190
- catch: (e) => {
191
- if (e instanceof client_rds_1.RDSServiceException &&
192
- Errors_1.AllServiceErrors.includes(e.name)) {
193
- const ServiceException = effect_1.Data.tagged(e.name);
194
- return ServiceException({
195
- ...e,
196
- message: e.message,
197
- stack: e.stack,
198
- });
199
- }
200
- if (e instanceof Error) {
201
- return (0, Errors_1.SdkError)({
202
- ...e,
203
- name: "SdkError",
204
- message: e.message,
205
- stack: e.stack,
206
- });
207
- }
208
- throw e;
209
- },
210
- });
211
- const methodName = (command[0].toLowerCase() + command.slice(1)).replace(/Command$/, "");
212
- return { ...acc, [methodName]: methodImpl };
213
- }, {});
214
- });
215
- /**
216
- * @since 1.0.0
217
- * @category models
218
- */
219
- class RDSService extends effect_1.Effect.Tag("@effect-aws/client-rds/RDSService")() {
220
- }
221
- exports.RDSService = RDSService;
222
- _a = RDSService;
223
- RDSService.defaultLayer = effect_1.Layer.effect(_a, exports.makeRDSService).pipe(effect_1.Layer.provide(RDSClientInstance_1.RDSClientInstanceLayer), effect_1.Layer.provide(RDSClientInstanceConfig_1.DefaultRDSClientConfigLayer));
224
- RDSService.layer = (config) => effect_1.Layer.effect(_a, exports.makeRDSService).pipe(effect_1.Layer.provide(RDSClientInstance_1.RDSClientInstanceLayer), effect_1.Layer.provide(effect_1.Layer.effect(RDSClientInstanceConfig_1.RDSClientInstanceConfig, RDSClientInstanceConfig_1.makeDefaultRDSClientInstanceConfig.pipe(effect_1.Effect.map((defaultConfig) => ({ ...defaultConfig, ...config }))))));
225
- RDSService.baseLayer = (evaluate) => effect_1.Layer.effect(_a, exports.makeRDSService).pipe(effect_1.Layer.provide(effect_1.Layer.effect(RDSClientInstance_1.RDSClientInstance, effect_1.Effect.map(RDSClientInstanceConfig_1.makeDefaultRDSClientInstanceConfig, evaluate))));
226
- /**
227
- * @since 1.0.0
228
- * @category models
229
- * @alias RDSService
230
- */
231
- exports.RDS = RDSService;
232
- /**
233
- * @since 1.0.0
234
- * @category layers
235
- * @deprecated use RDS.baseLayer instead
236
- */
237
- exports.BaseRDSServiceLayer = effect_1.Layer.effect(RDSService, exports.makeRDSService);
238
- /**
239
- * @since 1.0.0
240
- * @category layers
241
- * @deprecated use RDS.layer instead
242
- */
243
- exports.RDSServiceLayer = exports.BaseRDSServiceLayer.pipe(effect_1.Layer.provide(RDSClientInstance_1.RDSClientInstanceLayer));
244
- /**
245
- * @since 1.0.0
246
- * @category layers
247
- * @deprecated use RDS.defaultLayer instead
248
- */
249
- exports.DefaultRDSServiceLayer = RDSService.defaultLayer;
250
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUkRTU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9SRFNTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7R0FFRztBQUNILG9EQTBlNkI7QUFDN0IsbUNBQXFEO0FBQ3JELHFDQXFKa0I7QUFDbEIsMkRBQWdGO0FBQ2hGLHVFQUltQztBQWFuQyxNQUFNLFFBQVEsR0FBRztJQUNmLHlCQUF5QixFQUF6QixzQ0FBeUI7SUFDekIsMEJBQTBCLEVBQTFCLHVDQUEwQjtJQUMxQix3Q0FBd0MsRUFBeEMscURBQXdDO0lBQ3hDLHdCQUF3QixFQUF4QixxQ0FBd0I7SUFDeEIsb0NBQW9DLEVBQXBDLGlEQUFvQztJQUNwQyxzQ0FBc0MsRUFBdEMsbURBQXNDO0lBQ3RDLHlCQUF5QixFQUF6QixzQ0FBeUI7SUFDekIsdUJBQXVCLEVBQXZCLG9DQUF1QjtJQUN2QixrQ0FBa0MsRUFBbEMsK0NBQWtDO0lBQ2xDLDRCQUE0QixFQUE1Qix5Q0FBNEI7SUFDNUIsMkJBQTJCLEVBQTNCLHdDQUEyQjtJQUMzQixxQkFBcUIsRUFBckIsa0NBQXFCO0lBQ3JCLHNCQUFzQixFQUF0QixtQ0FBc0I7SUFDdEIsZ0NBQWdDLEVBQWhDLDZDQUFnQztJQUNoQyxrQ0FBa0MsRUFBbEMsK0NBQWtDO0lBQ2xDLHNCQUFzQixFQUF0QixtQ0FBc0I7SUFDdEIsOEJBQThCLEVBQTlCLDJDQUE4QjtJQUM5QixvQ0FBb0MsRUFBcEMsaURBQW9DO0lBQ3BDLDhCQUE4QixFQUE5QiwyQ0FBOEI7SUFDOUIsdUJBQXVCLEVBQXZCLG9DQUF1QjtJQUN2QixrQ0FBa0MsRUFBbEMsK0NBQWtDO0lBQ2xDLDZCQUE2QixFQUE3QiwwQ0FBNkI7SUFDN0Isb0JBQW9CLEVBQXBCLGlDQUFvQjtJQUNwQiw0QkFBNEIsRUFBNUIseUNBQTRCO0lBQzVCLDRCQUE0QixFQUE1Qix5Q0FBNEI7SUFDNUIseUJBQXlCLEVBQXpCLHNDQUF5QjtJQUN6Qix1QkFBdUIs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RyxhQUFhLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQ2pFLENBQ0YsQ0FDRixDQUNGLEFBWGtCLENBV2pCO0FBQ1ksb0JBQVMsR0FBRyxDQUMxQixRQUF1RCxFQUN2RCxFQUFFLENBQ0YsY0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFJLEVBQUUsc0JBQWMsQ0FBQyxDQUFDLElBQUksQ0FDckMsY0FBSyxDQUFDLE9BQU8sQ0FDWCxjQUFLLENBQUMsTUFBTSxDQUNWLHFDQUFpQixFQUNqQixlQUFNLENBQUMsR0FBRyxDQUFDLDREQUFrQyxFQUFFLFFBQVEsQ0FBQyxDQUN6RCxDQUNGLENBQ0YsQUFWc0IsQ0FVckI7QUFHTjs7OztHQUlHO0FBQ1UsUUFBQSxHQUFHLEdBQUcsVUFBVSxDQUFDO0FBRTlCOzs7O0dBSUc7QUFDVSxRQUFBLG1CQUFtQixHQUFHLGNBQUssQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLHNCQUFjLENBQUMsQ0FBQztBQUU1RTs7OztHQUlHO0FBQ1UsUUFBQSxlQUFlLEdBQUcsMkJBQW1CLENBQUMsSUFBSSxDQUNyRCxjQUFLLENBQUMsT0FBTyxDQUFDLDBDQUFzQixDQUFDLENBQ3RDLENBQUM7QUFFRjs7OztHQUlHO0FBQ1UsUUFBQSxzQkFBc0IsR0FBRyxVQUFVLENBQUMsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqL1xuaW1wb3J0IHtcbiAgUkRTU2VydmljZUV4Y2VwdGlvbixcbiAgdHlwZSBSRFNDbGllbnQsXG4gIHR5cGUgUkRTQ2xpZW50Q29uZmlnLFxuICBBZGRSb2xlVG9EQkNsdXN0ZXJDb21tYW5kLFxuICB0eXBlIEFkZFJvbGVUb0RCQ2x1c3RlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBBZGRSb2xlVG9EQkNsdXN0ZXJDb21tYW5kT3V0cHV0LFxuICBBZGRSb2xlVG9EQkluc3RhbmNlQ29tbWFuZCxcbiAgdHlwZSBBZGRSb2xlVG9EQkluc3RhbmNlQ29tbWFuZElucHV0LFxuICB0eXBlIEFkZFJvbGVUb0RCSW5zdGFuY2VDb21tYW5kT3V0cHV0LFxuICBBZGRTb3VyY2VJZGVudGlmaWVyVG9TdWJzY3JpcHRpb25Db21tYW5kLFxuICB0eXBlIEFkZFNvdXJjZUlkZW50aWZpZXJUb1N1YnNjcmlwdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBBZGRTb3VyY2VJZGVudGlmaWVyVG9TdWJzY3JpcHRpb25Db21tYW5kT3V0cHV0LFxuICBBZGRUYWdzVG9SZXNvdXJjZUNvbW1hbmQsXG4gIHR5cGUgQWRkVGFnc1RvUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgQWRkVGFnc1RvUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICBBcHBseVBlbmRpbmdNYWludGVuYW5jZUFjdGlvbkNvbW1hbmQsXG4gIHR5cGUgQXBwbHlQZW5kaW5nTWFpbnRlbmFuY2VBY3Rpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgQXBwbHlQZW5kaW5nTWFpbnRlbmFuY2VBY3Rpb25Db21tYW5kT3V0cHV0LFxuICBBdXRob3JpemVEQlNlY3VyaXR5R3JvdXBJbmdyZXNzQ29tbWFuZCxcbiAgdHlwZSBBdXRob3JpemVEQlNlY3VyaXR5R3JvdXBJbmdyZXNzQ29tbWFuZElucHV0LFxuICB0eXBlIEF1dGhvcml6ZURCU2VjdXJpdHlHcm91cEluZ3Jlc3NDb21tYW5kT3V0cHV0LFxuICBCYWNrdHJhY2tEQkNsdXN0ZXJDb21tYW5kLFxuICB0eXBlIEJhY2t0cmFja0RCQ2x1c3RlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBCYWNrdHJhY2tEQkNsdXN0ZXJDb21tYW5kT3V0cHV0LFxuICBDYW5jZWxFeHBvcnRUYXNrQ29tbWFuZCxcbiAgdHlwZSBDYW5jZWxFeHBvcnRUYXNrQ29tbWFuZElucHV0LFxuICB0eXBlIENhbmNlbEV4cG9ydFRhc2tDb21tYW5kT3V0cHV0LFxuICBDb3B5REJDbHVzdGVyUGFyYW1ldGVyR3JvdXBDb21tYW5kLFxuICB0eXBlIENvcHlEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDb3B5REJDbHVzdGVyUGFyYW1ldGVyR3JvdXBDb21tYW5kT3V0cHV0LFxuICBDb3B5REJDbHVzdGVyU25hcHNob3RDb21tYW5kLFxuICB0eXBlIENvcHlEQkNsdXN0ZXJTbmFwc2hvdENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDb3B5REJDbHVzdGVyU25hcHNob3RDb21tYW5kT3V0cHV0LFxuICBDb3B5REJQYXJhbWV0ZXJHcm91cENvbW1hbmQsXG4gIHR5cGUgQ29weURCUGFyYW1ldGVyR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ29weURCUGFyYW1ldGVyR3JvdXBDb21tYW5kT3V0cHV0LFxuICBDb3B5REJTbmFwc2hvdENvbW1hbmQsXG4gIHR5cGUgQ29weURCU25hcHNob3RDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ29weURCU25hcHNob3RDb21tYW5kT3V0cHV0LFxuICBDb3B5T3B0aW9uR3JvdXBDb21tYW5kLFxuICB0eXBlIENvcHlPcHRpb25Hcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDb3B5T3B0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVCbHVlR3JlZW5EZXBsb3ltZW50Q29tbWFuZCxcbiAgdHlwZSBDcmVhdGVCbHVlR3JlZW5EZXBsb3ltZW50Q29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUJsdWVHcmVlbkRlcGxveW1lbnRDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVDdXN0b21EQkVuZ2luZVZlcnNpb25Db21tYW5kLFxuICB0eXBlIENyZWF0ZUN1c3RvbURCRW5naW5lVmVyc2lvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVDdXN0b21EQkVuZ2luZVZlcnNpb25Db21tYW5kT3V0cHV0LFxuICBDcmVhdGVEQkNsdXN0ZXJDb21tYW5kLFxuICB0eXBlIENyZWF0ZURCQ2x1c3RlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVEQkNsdXN0ZXJDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVEQkNsdXN0ZXJFbmRwb2ludENvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlREJDbHVzdGVyRW5kcG9pbnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlREJDbHVzdGVyRW5kcG9pbnRDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cENvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlREJDbHVzdGVyUGFyYW1ldGVyR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlREJDbHVzdGVyUGFyYW1ldGVyR3JvdXBDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVEQkNsdXN0ZXJTbmFwc2hvdENvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlREJDbHVzdGVyU25hcHNob3RDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlREJDbHVzdGVyU25hcHNob3RDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVEQkluc3RhbmNlQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVEQkluc3RhbmNlQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZURCSW5zdGFuY2VDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVEQkluc3RhbmNlUmVhZFJlcGxpY2FDb21tYW5kLFxuICB0eXBlIENyZWF0ZURCSW5zdGFuY2VSZWFkUmVwbGljYUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVEQkluc3RhbmNlUmVhZFJlcGxpY2FDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVEQlBhcmFtZXRlckdyb3VwQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVEQlBhcmFtZXRlckdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZURCUGFyYW1ldGVyR3JvdXBDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVEQlByb3h5Q29tbWFuZCxcbiAgdHlwZSBDcmVhdGVEQlByb3h5Q29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZURCUHJveHlDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVEQlByb3h5RW5kcG9pbnRDb21tYW5kLFxuICB0eXBlIENyZWF0ZURCUHJveHlFbmRwb2ludENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVEQlByb3h5RW5kcG9pbnRDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVEQlNlY3VyaXR5R3JvdXBDb21tYW5kLFxuICB0eXBlIENyZWF0ZURCU2VjdXJpdHlHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVEQlNlY3VyaXR5R3JvdXBDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVEQlNoYXJkR3JvdXBDb21tYW5kLFxuICB0eXBlIENyZWF0ZURCU2hhcmRHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVEQlNoYXJkR3JvdXBDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVEQlNuYXBzaG90Q29tbWFuZCxcbiAgdHlwZSBDcmVhdGVEQlNuYXBzaG90Q29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZURCU25hcHNob3RDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVEQlN1Ym5ldEdyb3VwQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVEQlN1Ym5ldEdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZURCU3VibmV0R3JvdXBDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVFdmVudFN1YnNjcmlwdGlvbkNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlRXZlbnRTdWJzY3JpcHRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlRXZlbnRTdWJzY3JpcHRpb25Db21tYW5kT3V0cHV0LFxuICBDcmVhdGVHbG9iYWxDbHVzdGVyQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVHbG9iYWxDbHVzdGVyQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUdsb2JhbENsdXN0ZXJDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVJbnRlZ3JhdGlvbkNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlSW50ZWdyYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlSW50ZWdyYXRpb25Db21tYW5kT3V0cHV0LFxuICBDcmVhdGVPcHRpb25Hcm91cENvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlT3B0aW9uR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlT3B0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVUZW5hbnREYXRhYmFzZUNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlVGVuYW50RGF0YWJhc2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlVGVuYW50RGF0YWJhc2VDb21tYW5kT3V0cHV0LFxuICBEZWxldGVCbHVlR3JlZW5EZXBsb3ltZW50Q29tbWFuZCxcbiAgdHlwZSBEZWxldGVCbHVlR3JlZW5EZXBsb3ltZW50Q29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUJsdWVHcmVlbkRlcGxveW1lbnRDb21tYW5kT3V0cHV0LFxuICBEZWxldGVDdXN0b21EQkVuZ2luZVZlcnNpb25Db21tYW5kLFxuICB0eXBlIERlbGV0ZUN1c3RvbURCRW5naW5lVmVyc2lvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVDdXN0b21EQkVuZ2luZVZlcnNpb25Db21tYW5kT3V0cHV0LFxuICBEZWxldGVEQkNsdXN0ZXJDb21tYW5kLFxuICB0eXBlIERlbGV0ZURCQ2x1c3RlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVEQkNsdXN0ZXJDb21tYW5kT3V0cHV0LFxuICBEZWxldGVEQkNsdXN0ZXJBdXRvbWF0ZWRCYWNrdXBDb21tYW5kLFxuICB0eXBlIERlbGV0ZURCQ2x1c3RlckF1dG9tYXRlZEJhY2t1cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVEQkNsdXN0ZXJBdXRvbWF0ZWRCYWNrdXBDb21tYW5kT3V0cHV0LFxuICBEZWxldGVEQkNsdXN0ZXJFbmRwb2ludENvbW1hbmQsXG4gIHR5cGUgRGVsZXRlREJDbHVzdGVyRW5kcG9pbnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlREJDbHVzdGVyRW5kcG9pbnRDb21tYW5kT3V0cHV0LFxuICBEZWxldGVEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cENvbW1hbmQsXG4gIHR5cGUgRGVsZXRlREJDbHVzdGVyUGFyYW1ldGVyR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlREJDbHVzdGVyUGFyYW1ldGVyR3JvdXBDb21tYW5kT3V0cHV0LFxuICBEZWxldGVEQkNsdXN0ZXJTbmFwc2hvdENvbW1hbmQsXG4gIHR5cGUgRGVsZXRlREJDbHVzdGVyU25hcHNob3RDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlREJDbHVzdGVyU25hcHNob3RDb21tYW5kT3V0cHV0LFxuICBEZWxldGVEQkluc3RhbmNlQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVEQkluc3RhbmNlQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZURCSW5zdGFuY2VDb21tYW5kT3V0cHV0LFxuICBEZWxldGVEQkluc3RhbmNlQXV0b21hdGVkQmFja3VwQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVEQkluc3RhbmNlQXV0b21hdGVkQmFja3VwQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZURCSW5zdGFuY2VBdXRvbWF0ZWRCYWNrdXBDb21tYW5kT3V0cHV0LFxuICBEZWxldGVEQlBhcmFtZXRlckdyb3VwQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVEQlBhcmFtZXRlckdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZURCUGFyYW1ldGVyR3JvdXBDb21tYW5kT3V0cHV0LFxuICBEZWxldGVEQlByb3h5Q29tbWFuZCxcbiAgdHlwZSBEZWxldGVEQlByb3h5Q29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZURCUHJveHlDb21tYW5kT3V0cHV0LFxuICBEZWxldGVEQlByb3h5RW5kcG9pbnRDb21tYW5kLFxuICB0eXBlIERlbGV0ZURCUHJveHlFbmRwb2ludENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVEQlByb3h5RW5kcG9pbnRDb21tYW5kT3V0cHV0LFxuICBEZWxldGVEQlNlY3VyaXR5R3JvdXBDb21tYW5kLFxuICB0eXBlIERlbGV0ZURCU2VjdXJpdHlHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVEQlNlY3VyaXR5R3JvdXBDb21tYW5kT3V0cHV0LFxuICBEZWxldGVEQlNoYXJkR3JvdXBDb21tYW5kLFxuICB0eXBlIERlbGV0ZURCU2hhcmRHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVEQlNoYXJkR3JvdXBDb21tYW5kT3V0cHV0LFxuICBEZWxldGVEQlNuYXBzaG90Q29tbWFuZCxcbiAgdHlwZSBEZWxldGVEQlNuYXBzaG90Q29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZURCU25hcHNob3RDb21tYW5kT3V0cHV0LFxuICBEZWxldGVEQlN1Ym5ldEdyb3VwQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVEQlN1Ym5ldEdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZURCU3VibmV0R3JvdXBDb21tYW5kT3V0cHV0LFxuICBEZWxldGVFdmVudFN1YnNjcmlwdGlvbkNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlRXZlbnRTdWJzY3JpcHRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlRXZlbnRTdWJzY3JpcHRpb25Db21tYW5kT3V0cHV0LFxuICBEZWxldGVHbG9iYWxDbHVzdGVyQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVHbG9iYWxDbHVzdGVyQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUdsb2JhbENsdXN0ZXJDb21tYW5kT3V0cHV0LFxuICBEZWxldGVJbnRlZ3JhdGlvbkNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlSW50ZWdyYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlSW50ZWdyYXRpb25Db21tYW5kT3V0cHV0LFxuICBEZWxldGVPcHRpb25Hcm91cENvbW1hbmQsXG4gIHR5cGUgRGVsZXRlT3B0aW9uR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlT3B0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICBEZWxldGVUZW5hbnREYXRhYmFzZUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlVGVuYW50RGF0YWJhc2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlVGVuYW50RGF0YWJhc2VDb21tYW5kT3V0cHV0LFxuICBEZXJlZ2lzdGVyREJQcm94eVRhcmdldHNDb21tYW5kLFxuICB0eXBlIERlcmVnaXN0ZXJEQlByb3h5VGFyZ2V0c0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXJlZ2lzdGVyREJQcm94eVRhcmdldHNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUFjY291bnRBdHRyaWJ1dGVzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUFjY291bnRBdHRyaWJ1dGVzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlQWNjb3VudEF0dHJpYnV0ZXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUJsdWVHcmVlbkRlcGxveW1lbnRzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUJsdWVHcmVlbkRlcGxveW1lbnRzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlQmx1ZUdyZWVuRGVwbG95bWVudHNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUNlcnRpZmljYXRlc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVDZXJ0aWZpY2F0ZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVDZXJ0aWZpY2F0ZXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURCQ2x1c3RlckF1dG9tYXRlZEJhY2t1cHNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlREJDbHVzdGVyQXV0b21hdGVkQmFja3Vwc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZURCQ2x1c3RlckF1dG9tYXRlZEJhY2t1cHNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURCQ2x1c3RlckJhY2t0cmFja3NDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlREJDbHVzdGVyQmFja3RyYWNrc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZURCQ2x1c3RlckJhY2t0cmFja3NDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURCQ2x1c3RlckVuZHBvaW50c0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVEQkNsdXN0ZXJFbmRwb2ludHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVEQkNsdXN0ZXJFbmRwb2ludHNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURCQ2x1c3RlclBhcmFtZXRlckdyb3Vwc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cHNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURCQ2x1c3RlclBhcmFtZXRlcnNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlREJDbHVzdGVyUGFyYW1ldGVyc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZURCQ2x1c3RlclBhcmFtZXRlcnNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURCQ2x1c3RlclNuYXBzaG90QXR0cmlidXRlc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVEQkNsdXN0ZXJTbmFwc2hvdEF0dHJpYnV0ZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVEQkNsdXN0ZXJTbmFwc2hvdEF0dHJpYnV0ZXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURCQ2x1c3RlclNuYXBzaG90c0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVEQkNsdXN0ZXJTbmFwc2hvdHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVEQkNsdXN0ZXJTbmFwc2hvdHNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURCQ2x1c3RlcnNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlREJDbHVzdGVyc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZURCQ2x1c3RlcnNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURCRW5naW5lVmVyc2lvbnNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlREJFbmdpbmVWZXJzaW9uc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZURCRW5naW5lVmVyc2lvbnNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURCSW5zdGFuY2VBdXRvbWF0ZWRCYWNrdXBzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURCSW5zdGFuY2VBdXRvbWF0ZWRCYWNrdXBzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlREJJbnN0YW5jZUF1dG9tYXRlZEJhY2t1cHNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURCSW5zdGFuY2VzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURCSW5zdGFuY2VzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlREJJbnN0YW5jZXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURCTG9nRmlsZXNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlREJMb2dGaWxlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZURCTG9nRmlsZXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURCUGFyYW1ldGVyR3JvdXBzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURCUGFyYW1ldGVyR3JvdXBzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlREJQYXJhbWV0ZXJHcm91cHNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURCUGFyYW1ldGVyc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVEQlBhcmFtZXRlcnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVEQlBhcmFtZXRlcnNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURCUHJveGllc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVEQlByb3hpZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVEQlByb3hpZXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURCUHJveHlFbmRwb2ludHNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlREJQcm94eUVuZHBvaW50c0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZURCUHJveHlFbmRwb2ludHNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURCUHJveHlUYXJnZXRHcm91cHNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlREJQcm94eVRhcmdldEdyb3Vwc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZURCUHJveHlUYXJnZXRHcm91cHNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURCUHJveHlUYXJnZXRzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURCUHJveHlUYXJnZXRzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlREJQcm94eVRhcmdldHNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURCUmVjb21tZW5kYXRpb25zQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURCUmVjb21tZW5kYXRpb25zQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlREJSZWNvbW1lbmRhdGlvbnNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURCU2VjdXJpdHlHcm91cHNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlREJTZWN1cml0eUdyb3Vwc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZURCU2VjdXJpdHlHcm91cHNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURCU2hhcmRHcm91cHNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlREJTaGFyZEdyb3Vwc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZURCU2hhcmRHcm91cHNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURCU25hcHNob3RBdHRyaWJ1dGVzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURCU25hcHNob3RBdHRyaWJ1dGVzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlREJTbmFwc2hvdEF0dHJpYnV0ZXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURCU25hcHNob3RUZW5hbnREYXRhYmFzZXNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlREJTbmFwc2hvdFRlbmFudERhdGFiYXNlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZURCU25hcHNob3RUZW5hbnREYXRhYmFzZXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURCU25hcHNob3RzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURCU25hcHNob3RzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlREJTbmFwc2hvdHNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURCU3VibmV0R3JvdXBzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURCU3VibmV0R3JvdXBzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlREJTdWJuZXRHcm91cHNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUVuZ2luZURlZmF1bHRDbHVzdGVyUGFyYW1ldGVyc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVFbmdpbmVEZWZhdWx0Q2x1c3RlclBhcmFtZXRlcnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVFbmdpbmVEZWZhdWx0Q2x1c3RlclBhcmFtZXRlcnNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUVuZ2luZURlZmF1bHRQYXJhbWV0ZXJzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUVuZ2luZURlZmF1bHRQYXJhbWV0ZXJzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlRW5naW5lRGVmYXVsdFBhcmFtZXRlcnNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUV2ZW50Q2F0ZWdvcmllc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVFdmVudENhdGVnb3JpZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVFdmVudENhdGVnb3JpZXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUV2ZW50U3Vic2NyaXB0aW9uc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVFdmVudFN1YnNjcmlwdGlvbnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVFdmVudFN1YnNjcmlwdGlvbnNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUV2ZW50c0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVFdmVudHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVFdmVudHNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUV4cG9ydFRhc2tzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUV4cG9ydFRhc2tzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlRXhwb3J0VGFza3NDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUdsb2JhbENsdXN0ZXJzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUdsb2JhbENsdXN0ZXJzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlR2xvYmFsQ2x1c3RlcnNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUludGVncmF0aW9uc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVJbnRlZ3JhdGlvbnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVJbnRlZ3JhdGlvbnNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZU9wdGlvbkdyb3VwT3B0aW9uc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVPcHRpb25Hcm91cE9wdGlvbnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVPcHRpb25Hcm91cE9wdGlvbnNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZU9wdGlvbkdyb3Vwc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVPcHRpb25Hcm91cHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVPcHRpb25Hcm91cHNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZU9yZGVyYWJsZURCSW5zdGFuY2VPcHRpb25zQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZU9yZGVyYWJsZURCSW5zdGFuY2VPcHRpb25zQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlT3JkZXJhYmxlREJJbnN0YW5jZU9wdGlvbnNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVBlbmRpbmdNYWludGVuYW5jZUFjdGlvbnNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlUGVuZGluZ01haW50ZW5hbmNlQWN0aW9uc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVBlbmRpbmdNYWludGVuYW5jZUFjdGlvbnNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVJlc2VydmVkREJJbnN0YW5jZXNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlUmVzZXJ2ZWREQkluc3RhbmNlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVJlc2VydmVkREJJbnN0YW5jZXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVJlc2VydmVkREJJbnN0YW5jZXNPZmZlcmluZ3NDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlUmVzZXJ2ZWREQkluc3RhbmNlc09mZmVyaW5nc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVJlc2VydmVkREJJbnN0YW5jZXNPZmZlcmluZ3NDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVNvdXJjZVJlZ2lvbnNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlU291cmNlUmVnaW9uc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVNvdXJjZVJlZ2lvbnNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVRlbmFudERhdGFiYXNlc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVUZW5hbnREYXRhYmFzZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVUZW5hbnREYXRhYmFzZXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVZhbGlkREJJbnN0YW5jZU1vZGlmaWNhdGlvbnNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlVmFsaWREQkluc3RhbmNlTW9kaWZpY2F0aW9uc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVZhbGlkREJJbnN0YW5jZU1vZGlmaWNhdGlvbnNDb21tYW5kT3V0cHV0LFxuICBEaXNhYmxlSHR0cEVuZHBvaW50Q29tbWFuZCxcbiAgdHlwZSBEaXNhYmxlSHR0cEVuZHBvaW50Q29tbWFuZElucHV0LFxuICB0eXBlIERpc2FibGVIdHRwRW5kcG9pbnRDb21tYW5kT3V0cHV0LFxuICBEb3dubG9hZERCTG9nRmlsZVBvcnRpb25Db21tYW5kLFxuICB0eXBlIERvd25sb2FkREJMb2dGaWxlUG9ydGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEb3dubG9hZERCTG9nRmlsZVBvcnRpb25Db21tYW5kT3V0cHV0LFxuICBFbmFibGVIdHRwRW5kcG9pbnRDb21tYW5kLFxuICB0eXBlIEVuYWJsZUh0dHBFbmRwb2ludENvbW1hbmRJbnB1dCxcbiAgdHlwZSBFbmFibGVIdHRwRW5kcG9pbnRDb21tYW5kT3V0cHV0LFxuICBGYWlsb3ZlckRCQ2x1c3RlckNvbW1hbmQsXG4gIHR5cGUgRmFpbG92ZXJEQkNsdXN0ZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgRmFpbG92ZXJEQkNsdXN0ZXJDb21tYW5kT3V0cHV0LFxuICBGYWlsb3Zlckdsb2JhbENsdXN0ZXJDb21tYW5kLFxuICB0eXBlIEZhaWxvdmVyR2xvYmFsQ2x1c3RlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBGYWlsb3Zlckdsb2JhbENsdXN0ZXJDb21tYW5kT3V0cHV0LFxuICBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZCxcbiAgdHlwZSBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICBNb2RpZnlBY3Rpdml0eVN0cmVhbUNvbW1hbmQsXG4gIHR5cGUgTW9kaWZ5QWN0aXZpdHlTdHJlYW1Db21tYW5kSW5wdXQsXG4gIHR5cGUgTW9kaWZ5QWN0aXZpdHlTdHJlYW1Db21tYW5kT3V0cHV0LFxuICBNb2RpZnlDZXJ0aWZpY2F0ZXNDb21tYW5kLFxuICB0eXBlIE1vZGlmeUNlcnRpZmljYXRlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBNb2RpZnlDZXJ0aWZpY2F0ZXNDb21tYW5kT3V0cHV0LFxuICBNb2RpZnlDdXJyZW50REJDbHVzdGVyQ2FwYWNpdHlDb21tYW5kLFxuICB0eXBlIE1vZGlmeUN1cnJlbnREQkNsdXN0ZXJDYXBhY2l0eUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBNb2RpZnlDdXJyZW50REJDbHVzdGVyQ2FwYWNpdHlDb21tYW5kT3V0cHV0LFxuICBNb2RpZnlDdXN0b21EQkVuZ2luZVZlcnNpb25Db21tYW5kLFxuICB0eXBlIE1vZGlmeUN1c3RvbURCRW5naW5lVmVyc2lvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBNb2RpZnlDdXN0b21EQkVuZ2luZVZlcnNpb25Db21tYW5kT3V0cHV0LFxuICBNb2RpZnlEQkNsdXN0ZXJDb21tYW5kLFxuICB0eXBlIE1vZGlmeURCQ2x1c3RlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBNb2RpZnlEQkNsdXN0ZXJDb21tYW5kT3V0cHV0LFxuICBNb2RpZnlEQkNsdXN0ZXJFbmRwb2ludENvbW1hbmQsXG4gIHR5cGUgTW9kaWZ5REJDbHVzdGVyRW5kcG9pbnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgTW9kaWZ5REJDbHVzdGVyRW5kcG9pbnRDb21tYW5kT3V0cHV0LFxuICBNb2RpZnlEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cENvbW1hbmQsXG4gIHR5cGUgTW9kaWZ5REJDbHVzdGVyUGFyYW1ldGVyR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgTW9kaWZ5REJDbHVzdGVyUGFyYW1ldGVyR3JvdXBDb21tYW5kT3V0cHV0LFxuICBNb2RpZnlEQkNsdXN0ZXJTbmFwc2hvdEF0dHJpYnV0ZUNvbW1hbmQsXG4gIHR5cGUgTW9kaWZ5REJDbHVzdGVyU25hcHNob3RBdHRyaWJ1dGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgTW9kaWZ5REJDbHVzdGVyU25hcHNob3RBdHRyaWJ1dGVDb21tYW5kT3V0cHV0LFxuICBNb2RpZnlEQkluc3RhbmNlQ29tbWFuZCxcbiAgdHlwZSBNb2RpZnlEQkluc3RhbmNlQ29tbWFuZElucHV0LFxuICB0eXBlIE1vZGlmeURCSW5zdGFuY2VDb21tYW5kT3V0cHV0LFxuICBNb2RpZnlEQlBhcmFtZXRlckdyb3VwQ29tbWFuZCxcbiAgdHlwZSBNb2RpZnlEQlBhcmFtZXRlckdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIE1vZGlmeURCUGFyYW1ldGVyR3JvdXBDb21tYW5kT3V0cHV0LFxuICBNb2RpZnlEQlByb3h5Q29tbWFuZCxcbiAgdHlwZSBNb2RpZnlEQlByb3h5Q29tbWFuZElucHV0LFxuICB0eXBlIE1vZGlmeURCUHJveHlDb21tYW5kT3V0cHV0LFxuICBNb2RpZnlEQlByb3h5RW5kcG9pbnRDb21tYW5kLFxuICB0eXBlIE1vZGlmeURCUHJveHlFbmRwb2ludENvbW1hbmRJbnB1dCxcbiAgdHlwZSBNb2RpZnlEQlByb3h5RW5kcG9pbnRDb21tYW5kT3V0cHV0LFxuICBNb2RpZnlEQlByb3h5VGFyZ2V0R3JvdXBDb21tYW5kLFxuICB0eXBlIE1vZGlmeURCUHJveHlUYXJnZXRHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBNb2RpZnlEQlByb3h5VGFyZ2V0R3JvdXBDb21tYW5kT3V0cHV0LFxuICBNb2RpZnlEQlJlY29tbWVuZGF0aW9uQ29tbWFuZCxcbiAgdHlwZSBNb2RpZnlEQlJlY29tbWVuZGF0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIE1vZGlmeURCUmVjb21tZW5kYXRpb25Db21tYW5kT3V0cHV0LFxuICBNb2RpZnlEQlNoYXJkR3JvdXBDb21tYW5kLFxuICB0eXBlIE1vZGlmeURCU2hhcmRHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBNb2RpZnlEQlNoYXJkR3JvdXBDb21tYW5kT3V0cHV0LFxuICBNb2RpZnlEQlNuYXBzaG90Q29tbWFuZCxcbiAgdHlwZSBNb2RpZnlEQlNuYXBzaG90Q29tbWFuZElucHV0LFxuICB0eXBlIE1vZGlmeURCU25hcHNob3RDb21tYW5kT3V0cHV0LFxuICBNb2RpZnlEQlNuYXBzaG90QXR0cmlidXRlQ29tbWFuZCxcbiAgdHlwZSBNb2RpZnlEQlNuYXBzaG90QXR0cmlidXRlQ29tbWFuZElucHV0LFxuICB0eXBlIE1vZGlmeURCU25hcHNob3RBdHRyaWJ1dGVDb21tYW5kT3V0cHV0LFxuICBNb2RpZnlEQlN1Ym5ldEdyb3VwQ29tbWFuZCxcbiAgdHlwZSBNb2RpZnlEQlN1Ym5ldEdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIE1vZGlmeURCU3VibmV0R3JvdXBDb21tYW5kT3V0cHV0LFxuICBNb2RpZnlFdmVudFN1YnNjcmlwdGlvbkNvbW1hbmQsXG4gIHR5cGUgTW9kaWZ5RXZlbnRTdWJzY3JpcHRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgTW9kaWZ5RXZlbnRTdWJzY3JpcHRpb25Db21tYW5kT3V0cHV0LFxuICBNb2RpZnlHbG9iYWxDbHVzdGVyQ29tbWFuZCxcbiAgdHlwZSBNb2RpZnlHbG9iYWxDbHVzdGVyQ29tbWFuZElucHV0LFxuICB0eXBlIE1vZGlmeUdsb2JhbENsdXN0ZXJDb21tYW5kT3V0cHV0LFxuICBNb2RpZnlJbnRlZ3JhdGlvbkNvbW1hbmQsXG4gIHR5cGUgTW9kaWZ5SW50ZWdyYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgTW9kaWZ5SW50ZWdyYXRpb25Db21tYW5kT3V0cHV0LFxuICBNb2RpZnlPcHRpb25Hcm91cENvbW1hbmQsXG4gIHR5cGUgTW9kaWZ5T3B0aW9uR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgTW9kaWZ5T3B0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICBNb2RpZnlUZW5hbnREYXRhYmFzZUNvbW1hbmQsXG4gIHR5cGUgTW9kaWZ5VGVuYW50RGF0YWJhc2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgTW9kaWZ5VGVuYW50RGF0YWJhc2VDb21tYW5kT3V0cHV0LFxuICBQcm9tb3RlUmVhZFJlcGxpY2FDb21tYW5kLFxuICB0eXBlIFByb21vdGVSZWFkUmVwbGljYUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQcm9tb3RlUmVhZFJlcGxpY2FDb21tYW5kT3V0cHV0LFxuICBQcm9tb3RlUmVhZFJlcGxpY2FEQkNsdXN0ZXJDb21tYW5kLFxuICB0eXBlIFByb21vdGVSZWFkUmVwbGljYURCQ2x1c3RlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQcm9tb3RlUmVhZFJlcGxpY2FEQkNsdXN0ZXJDb21tYW5kT3V0cHV0LFxuICBQdXJjaGFzZVJlc2VydmVkREJJbnN0YW5jZXNPZmZlcmluZ0NvbW1hbmQsXG4gIHR5cGUgUHVyY2hhc2VSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdDb21tYW5kSW5wdXQsXG4gIHR5cGUgUHVyY2hhc2VSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdDb21tYW5kT3V0cHV0LFxuICBSZWJvb3REQkNsdXN0ZXJDb21tYW5kLFxuICB0eXBlIFJlYm9vdERCQ2x1c3RlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBSZWJvb3REQkNsdXN0ZXJDb21tYW5kT3V0cHV0LFxuICBSZWJvb3REQkluc3RhbmNlQ29tbWFuZCxcbiAgdHlwZSBSZWJvb3REQkluc3RhbmNlQ29tbWFuZElucHV0LFxuICB0eXBlIFJlYm9vdERCSW5zdGFuY2VDb21tYW5kT3V0cHV0LFxuICBSZWJvb3REQlNoYXJkR3JvdXBDb21tYW5kLFxuICB0eXBlIFJlYm9vdERCU2hhcmRHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBSZWJvb3REQlNoYXJkR3JvdXBDb21tYW5kT3V0cHV0LFxuICBSZWdpc3RlckRCUHJveHlUYXJnZXRzQ29tbWFuZCxcbiAgdHlwZSBSZWdpc3RlckRCUHJveHlUYXJnZXRzQ29tbWFuZElucHV0LFxuICB0eXBlIFJlZ2lzdGVyREJQcm94eVRhcmdldHNDb21tYW5kT3V0cHV0LFxuICBSZW1vdmVGcm9tR2xvYmFsQ2x1c3RlckNvbW1hbmQsXG4gIHR5cGUgUmVtb3ZlRnJvbUdsb2JhbENsdXN0ZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgUmVtb3ZlRnJvbUdsb2JhbENsdXN0ZXJDb21tYW5kT3V0cHV0LFxuICBSZW1vdmVSb2xlRnJvbURCQ2x1c3RlckNvbW1hbmQsXG4gIHR5cGUgUmVtb3ZlUm9sZUZyb21EQkNsdXN0ZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgUmVtb3ZlUm9sZUZyb21EQkNsdXN0ZXJDb21tYW5kT3V0cHV0LFxuICBSZW1vdmVSb2xlRnJvbURCSW5zdGFuY2VDb21tYW5kLFxuICB0eXBlIFJlbW92ZVJvbGVGcm9tREJJbnN0YW5jZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBSZW1vdmVSb2xlRnJvbURCSW5zdGFuY2VDb21tYW5kT3V0cHV0LFxuICBSZW1vdmVTb3VyY2VJZGVudGlmaWVyRnJvbVN1YnNjcmlwdGlvbkNvbW1hbmQsXG4gIHR5cGUgUmVtb3ZlU291cmNlSWRlbnRpZmllckZyb21TdWJzY3JpcHRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgUmVtb3ZlU291cmNlSWRlbnRpZmllckZyb21TdWJzY3JpcHRpb25Db21tYW5kT3V0cHV0LFxuICBSZW1vdmVUYWdzRnJvbVJlc291cmNlQ29tbWFuZCxcbiAgdHlwZSBSZW1vdmVUYWdzRnJvbVJlc291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIFJlbW92ZVRhZ3NGcm9tUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICBSZXNldERCQ2x1c3RlclBhcmFtZXRlckdyb3VwQ29tbWFuZCxcbiAgdHlwZSBSZXNldERCQ2x1c3RlclBhcmFtZXRlckdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIFJlc2V0REJDbHVzdGVyUGFyYW1ldGVyR3JvdXBDb21tYW5kT3V0cHV0LFxuICBSZXNldERCUGFyYW1ldGVyR3JvdXBDb21tYW5kLFxuICB0eXBlIFJlc2V0REJQYXJhbWV0ZXJHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBSZXNldERCUGFyYW1ldGVyR3JvdXBDb21tYW5kT3V0cHV0LFxuICBSZXN0b3JlREJDbHVzdGVyRnJvbVMzQ29tbWFuZCxcbiAgdHlwZSBSZXN0b3JlREJDbHVzdGVyRnJvbVMzQ29tbWFuZElucHV0LFxuICB0eXBlIFJlc3RvcmVEQkNsdXN0ZXJGcm9tUzNDb21tYW5kT3V0cHV0LFxuICBSZXN0b3JlREJDbHVzdGVyRnJvbVNuYXBzaG90Q29tbWFuZCxcbiAgdHlwZSBSZXN0b3JlREJDbHVzdGVyRnJvbVNuYXBzaG90Q29tbWFuZElucHV0LFxuICB0eXBlIFJlc3RvcmVEQkNsdXN0ZXJGcm9tU25hcHNob3RDb21tYW5kT3V0cHV0LFxuICBSZXN0b3JlREJDbHVzdGVyVG9Qb2ludEluVGltZUNvbW1hbmQsXG4gIHR5cGUgUmVzdG9yZURCQ2x1c3RlclRvUG9pbnRJblRpbWVDb21tYW5kSW5wdXQsXG4gIHR5cGUgUmVzdG9yZURCQ2x1c3RlclRvUG9pbnRJblRpbWVDb21tYW5kT3V0cHV0LFxuICBSZXN0b3JlREJJbnN0YW5jZUZyb21EQlNuYXBzaG90Q29tbWFuZCxcbiAgdHlwZSBSZXN0b3JlREJJbnN0YW5jZUZyb21EQlNuYXBzaG90Q29tbWFuZElucHV0LFxuICB0eXBlIFJlc3RvcmVEQkluc3RhbmNlRnJvbURCU25hcHNob3RDb21tYW5kT3V0cHV0LFxuICBSZXN0b3JlREJJbnN0YW5jZUZyb21TM0NvbW1hbmQsXG4gIHR5cGUgUmVzdG9yZURCSW5zdGFuY2VGcm9tUzNDb21tYW5kSW5wdXQsXG4gIHR5cGUgUmVzdG9yZURCSW5zdGFuY2VGcm9tUzNDb21tYW5kT3V0cHV0LFxuICBSZXN0b3JlREJJbnN0YW5jZVRvUG9pbnRJblRpbWVDb21tYW5kLFxuICB0eXBlIFJlc3RvcmVEQkluc3RhbmNlVG9Qb2ludEluVGltZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBSZXN0b3JlREJJbnN0YW5jZVRvUG9pbnRJblRpbWVDb21tYW5kT3V0cHV0LFxuICBSZXZva2VEQlNlY3VyaXR5R3JvdXBJbmdyZXNzQ29tbWFuZCxcbiAgdHlwZSBSZXZva2VEQlNlY3VyaXR5R3JvdXBJbmdyZXNzQ29tbWFuZElucHV0LFxuICB0eXBlIFJldm9rZURCU2VjdXJpdHlHcm91cEluZ3Jlc3NDb21tYW5kT3V0cHV0LFxuICBTdGFydEFjdGl2aXR5U3RyZWFtQ29tbWFuZCxcbiAgdHlwZSBTdGFydEFjdGl2aXR5U3RyZWFtQ29tbWFuZElucHV0LFxuICB0eXBlIFN0YXJ0QWN0aXZpdHlTdHJlYW1Db21tYW5kT3V0cHV0LFxuICBTdGFydERCQ2x1c3RlckNvbW1hbmQsXG4gIHR5cGUgU3RhcnREQkNsdXN0ZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgU3RhcnREQkNsdXN0ZXJDb21tYW5kT3V0cHV0LFxuICBTdGFydERCSW5zdGFuY2VDb21tYW5kLFxuICB0eXBlIFN0YXJ0REJJbnN0YW5jZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBTdGFydERCSW5zdGFuY2VDb21tYW5kT3V0cHV0LFxuICBTdGFydERCSW5zdGFuY2VBdXRvbWF0ZWRCYWNrdXBzUmVwbGljYXRpb25Db21tYW5kLFxuICB0eXBlIFN0YXJ0REJJbnN0YW5jZUF1dG9tYXRlZEJhY2t1cHNSZXBsaWNhdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBTdGFydERCSW5zdGFuY2VBdXRvbWF0ZWRCYWNrdXBzUmVwbGljYXRpb25Db21tYW5kT3V0cHV0LFxuICBTdGFydEV4cG9ydFRhc2tDb21tYW5kLFxuICB0eXBlIFN0YXJ0RXhwb3J0VGFza0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBTdGFydEV4cG9ydFRhc2tDb21tYW5kT3V0cHV0LFxuICBTdG9wQWN0aXZpdHlTdHJlYW1Db21tYW5kLFxuICB0eXBlIFN0b3BBY3Rpdml0eVN0cmVhbUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBTdG9wQWN0aXZpdHlTdHJlYW1Db21tYW5kT3V0cHV0LFxuICBTdG9wREJDbHVzdGVyQ29tbWFuZCxcbiAgdHlwZSBTdG9wREJDbHVzdGVyQ29tbWFuZElucHV0LFxuICB0eXBlIFN0b3BEQkNsdXN0ZXJDb21tYW5kT3V0cHV0LFxuICBTdG9wREJJbnN0YW5jZUNvbW1hbmQsXG4gIHR5cGUgU3RvcERCSW5zdGFuY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgU3RvcERCSW5zdGFuY2VDb21tYW5kT3V0cHV0LFxuICBTdG9wREJJbnN0YW5jZUF1dG9tYXRlZEJhY2t1cHNSZXBsaWNhdGlvbkNvbW1hbmQsXG4gIHR5cGUgU3RvcERCSW5zdGFuY2VBdXRvbWF0ZWRCYWNrdXBzUmVwbGljYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgU3RvcERCSW5zdGFuY2VBdXRvbWF0ZWRCYWNrdXBzUmVwbGljYXRpb25Db21tYW5kT3V0cHV0LFxuICBTd2l0Y2hvdmVyQmx1ZUdyZWVuRGVwbG95bWVudENvbW1hbmQsXG4gIHR5cGUgU3dpdGNob3ZlckJsdWVHcmVlbkRlcGxveW1lbnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgU3dpdGNob3ZlckJsdWVHcmVlbkRlcGxveW1lbnRDb21tYW5kT3V0cHV0LFxuICBTd2l0Y2hvdmVyR2xvYmFsQ2x1c3RlckNvbW1hbmQsXG4gIHR5cGUgU3dpdGNob3Zlckdsb2JhbENsdXN0ZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgU3dpdGNob3Zlckdsb2JhbENsdXN0ZXJDb21tYW5kT3V0cHV0LFxuICBTd2l0Y2hvdmVyUmVhZFJlcGxpY2FDb21tYW5kLFxuICB0eXBlIFN3aXRjaG92ZXJSZWFkUmVwbGljYUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBTd2l0Y2hvdmVyUmVhZFJlcGxpY2FDb21tYW5kT3V0cHV0LFxufSBmcm9tIFwiQGF3cy1zZGsvY2xpZW50LXJkc1wiO1xuaW1wb3J0IHsgRGF0YSwgRWZmZWN0LCBMYXllciwgUmVjb3JkIH0gZnJvbSBcImVmZmVjdFwiO1xuaW1wb3J0IHtcbiAgQWxsU2VydmljZUVycm9ycyxcbiAgQXV0aG9yaXphdGlvbkFscmVhZHlFeGlzdHNGYXVsdEVycm9yLFxuICBBdXRob3JpemF0aW9uTm90Rm91bmRGYXVsdEVycm9yLFxuICBBdXRob3JpemF0aW9uUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3IsXG4gIEJhY2t1cFBvbGljeU5vdEZvdW5kRmF1bHRFcnJvcixcbiAgQmx1ZUdyZWVuRGVwbG95bWVudEFscmVhZHlFeGlzdHNGYXVsdEVycm9yLFxuICBCbHVlR3JlZW5EZXBsb3ltZW50Tm90Rm91bmRGYXVsdEVycm9yLFxuICBDZXJ0aWZpY2F0ZU5vdEZvdW5kRmF1bHRFcnJvcixcbiAgQ3JlYXRlQ3VzdG9tREJFbmdpbmVWZXJzaW9uRmF1bHRFcnJvcixcbiAgQ3VzdG9tQXZhaWxhYmlsaXR5Wm9uZU5vdEZvdW5kRmF1bHRFcnJvcixcbiAgQ3VzdG9tREJFbmdpbmVWZXJzaW9uQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3IsXG4gIEN1c3RvbURCRW5naW5lVmVyc2lvbk5vdEZvdW5kRmF1bHRFcnJvcixcbiAgQ3VzdG9tREJFbmdpbmVWZXJzaW9uUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3IsXG4gIERCQ2x1c3RlckFscmVhZHlFeGlzdHNGYXVsdEVycm9yLFxuICBEQkNsdXN0ZXJBdXRvbWF0ZWRCYWNrdXBOb3RGb3VuZEZhdWx0RXJyb3IsXG4gIERCQ2x1c3RlckF1dG9tYXRlZEJhY2t1cFF1b3RhRXhjZWVkZWRGYXVsdEVycm9yLFxuICBEQkNsdXN0ZXJCYWNrdHJhY2tOb3RGb3VuZEZhdWx0RXJyb3IsXG4gIERCQ2x1c3RlckVuZHBvaW50QWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3IsXG4gIERCQ2x1c3RlckVuZHBvaW50Tm90Rm91bmRGYXVsdEVycm9yLFxuICBEQkNsdXN0ZXJFbmRwb2ludFF1b3RhRXhjZWVkZWRGYXVsdEVycm9yLFxuICBEQkNsdXN0ZXJOb3RGb3VuZEZhdWx0RXJyb3IsXG4gIERCQ2x1c3RlclBhcmFtZXRlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yLFxuICBEQkNsdXN0ZXJRdW90YUV4Y2VlZGVkRmF1bHRFcnJvcixcbiAgREJDbHVzdGVyUm9sZUFscmVhZHlFeGlzdHNGYXVsdEVycm9yLFxuICBEQkNsdXN0ZXJSb2xlTm90Rm91bmRGYXVsdEVycm9yLFxuICBEQkNsdXN0ZXJSb2xlUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3IsXG4gIERCQ2x1c3RlclNuYXBzaG90QWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3IsXG4gIERCQ2x1c3RlclNuYXBzaG90Tm90Rm91bmRGYXVsdEVycm9yLFxuICBEQkluc3RhbmNlQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3IsXG4gIERCSW5zdGFuY2VBdXRvbWF0ZWRCYWNrdXBOb3RGb3VuZEZhdWx0RXJyb3IsXG4gIERCSW5zdGFuY2VBdXRvbWF0ZWRCYWNrdXBRdW90YUV4Y2VlZGVkRmF1bHRFcnJvcixcbiAgREJJbnN0YW5jZU5vdEZvdW5kRmF1bHRFcnJvcixcbiAgREJJbnN0YW5jZU5vdFJlYWR5RmF1bHRFcnJvcixcbiAgREJJbnN0YW5jZVJvbGVBbHJlYWR5RXhpc3RzRmF1bHRFcnJvcixcbiAgREJJbnN0YW5jZVJvbGVOb3RGb3VuZEZhdWx0RXJyb3IsXG4gIERCSW5zdGFuY2VSb2xlUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3IsXG4gIERCTG9nRmlsZU5vdEZvdW5kRmF1bHRFcnJvcixcbiAgREJQYXJhbWV0ZXJHcm91cEFscmVhZHlFeGlzdHNGYXVsdEVycm9yLFxuICBEQlBhcmFtZXRlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yLFxuICBEQlBhcmFtZXRlckdyb3VwUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3IsXG4gIERCUHJveHlBbHJlYWR5RXhpc3RzRmF1bHRFcnJvcixcbiAgREJQcm94eUVuZHBvaW50QWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3IsXG4gIERCUHJveHlFbmRwb2ludE5vdEZvdW5kRmF1bHRFcnJvcixcbiAgREJQcm94eUVuZHBvaW50UXVvdGFFeGNlZWRlZEZhdWx0RXJyb3IsXG4gIERCUHJveHlOb3RGb3VuZEZhdWx0RXJyb3IsXG4gIERCUHJveHlRdW90YUV4Y2VlZGVkRmF1bHRFcnJvcixcbiAgREJQcm94eVRhcmdldEFscmVhZHlSZWdpc3RlcmVkRmF1bHRFcnJvcixcbiAgREJQcm94eVRhcmdldEdyb3VwTm90Rm91bmRGYXVsdEVycm9yLFxuICBEQlByb3h5VGFyZ2V0Tm90Rm91bmRGYXVsdEVycm9yLFxuICBEQlNlY3VyaXR5R3JvdXBBbHJlYWR5RXhpc3RzRmF1bHRFcnJvcixcbiAgREJTZWN1cml0eUdyb3VwTm90Rm91bmRGYXVsdEVycm9yLFxuICBEQlNlY3VyaXR5R3JvdXBOb3RTdXBwb3J0ZWRGYXVsdEVycm9yLFxuICBEQlNlY3VyaXR5R3JvdXBRdW90YUV4Y2VlZGVkRmF1bHRFcnJvcixcbiAgREJTaGFyZEdyb3VwQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3IsXG4gIERCU2hhcmRHcm91cE5vdEZvdW5kRmF1bHRFcnJvcixcbiAgREJTbmFwc2hvdEFscmVhZHlFeGlzdHNGYXVsdEVycm9yLFxuICBEQlNuYXBzaG90Tm90Rm91bmRGYXVsdEVycm9yLFxuICBEQlNuYXBzaG90VGVuYW50RGF0YWJhc2VOb3RGb3VuZEZhdWx0RXJyb3IsXG4gIERCU3VibmV0R3JvdXBBbHJlYWR5RXhpc3RzRmF1bHRFcnJvcixcbiAgREJTdWJuZXRHcm91cERvZXNOb3RDb3ZlckVub3VnaEFac0Vycm9yLFxuICBEQlN1Ym5ldEdyb3VwTm90QWxsb3dlZEZhdWx0RXJyb3IsXG4gIERCU3VibmV0R3JvdXBOb3RGb3VuZEZhdWx0RXJyb3IsXG4gIERCU3VibmV0R3JvdXBRdW90YUV4Y2VlZGVkRmF1bHRFcnJvcixcbiAgREJTdWJuZXRRdW90YUV4Y2VlZGVkRmF1bHRFcnJvcixcbiAgREJVcGdyYWRlRGVwZW5kZW5jeUZhaWx1cmVGYXVsdEVycm9yLFxuICBEb21haW5Ob3RGb3VuZEZhdWx0RXJyb3IsXG4gIEVjMkltYWdlUHJvcGVydGllc05vdFN1cHBvcnRlZEZhdWx0RXJyb3IsXG4gIEV2ZW50U3Vic2NyaXB0aW9uUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3IsXG4gIEV4cG9ydFRhc2tBbHJlYWR5RXhpc3RzRmF1bHRFcnJvcixcbiAgRXhwb3J0VGFza05vdEZvdW5kRmF1bHRFcnJvcixcbiAgR2xvYmFsQ2x1c3RlckFscmVhZHlFeGlzdHNGYXVsdEVycm9yLFxuICBHbG9iYWxDbHVzdGVyTm90Rm91bmRGYXVsdEVycm9yLFxuICBHbG9iYWxDbHVzdGVyUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3IsXG4gIElhbVJvbGVNaXNzaW5nUGVybWlzc2lvbnNGYXVsdEVycm9yLFxuICBJYW1Sb2xlTm90Rm91bmRGYXVsdEVycm9yLFxuICBJbnN0YW5jZVF1b3RhRXhjZWVkZWRGYXVsdEVycm9yLFxuICBJbnN1ZmZpY2llbnRBdmFpbGFibGVJUHNJblN1Ym5ldEZhdWx0RXJyb3IsXG4gIEluc3VmZmljaWVudERCQ2x1c3RlckNhcGFjaXR5RmF1bHRFcnJvcixcbiAgSW5zdWZmaWNpZW50REJJbnN0YW5jZUNhcGFjaXR5RmF1bHRFcnJvcixcbiAgSW5zdWZmaWNpZW50U3RvcmFnZUNsdXN0ZXJDYXBhY2l0eUZhdWx0RXJyb3IsXG4gIEludGVncmF0aW9uQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3IsXG4gIEludGVncmF0aW9uQ29uZmxpY3RPcGVyYXRpb25GYXVsdEVycm9yLFxuICBJbnRlZ3JhdGlvbk5vdEZvdW5kRmF1bHRFcnJvcixcbiAgSW50ZWdyYXRpb25RdW90YUV4Y2VlZGVkRmF1bHRFcnJvcixcbiAgSW52YWxpZEJsdWVHcmVlbkRlcGxveW1lbnRTdGF0ZUZhdWx0RXJyb3IsXG4gIEludmFsaWRDdXN0b21EQkVuZ2luZVZlcnNpb25TdGF0ZUZhdWx0RXJyb3IsXG4gIEludmFsaWREQkNsdXN0ZXJBdXRvbWF0ZWRCYWNrdXBTdGF0ZUZhdWx0RXJyb3IsXG4gIEludmFsaWREQkNsdXN0ZXJDYXBhY2l0eUZhdWx0RXJyb3IsXG4gIEludmFsaWREQkNsdXN0ZXJFbmRwb2ludFN0YXRlRmF1bHRFcnJvcixcbiAgSW52YWxpZERCQ2x1c3RlclNuYXBzaG90U3RhdGVGYXVsdEVycm9yLFxuICBJbnZhbGlkREJDbHVzdGVyU3RhdGVGYXVsdEVycm9yLFxuICBJbnZhbGlkREJJbnN0YW5jZUF1dG9tYXRlZEJhY2t1cFN0YXRlRmF1bHRFcnJvcixcbiAgSW52YWxpZERCSW5zdGFuY2VTdGF0ZUZhdWx0RXJyb3IsXG4gIEludmFsaWREQlBhcmFtZXRlckdyb3VwU3RhdGVGYXVsdEVycm9yLFxuICBJbnZhbGlkREJQcm94eUVuZHBvaW50U3RhdGVGYXVsdEVycm9yLFxuICBJbnZhbGlkREJQcm94eVN0YXRlRmF1bHRFcnJvcixcbiAgSW52YWxpZERCU2VjdXJpdHlHcm91cFN0YXRlRmF1bHRFcnJvcixcbiAgSW52YWxpZERCU2hhcmRHcm91cFN0YXRlRmF1bHRFcnJvcixcbiAgSW52YWxpZERCU25hcHNob3RTdGF0ZUZhdWx0RXJyb3IsXG4gIEludmFsaWREQlN1Ym5ldEdyb3VwRmF1bHRFcnJvcixcbiAgSW52YWxpZERCU3VibmV0R3JvdXBTdGF0ZUZhdWx0RXJyb3IsXG4gIEludmFsaWREQlN1Ym5ldFN0YXRlRmF1bHRFcnJvcixcbiAgSW52YWxpZEV2ZW50U3Vic2NyaXB0aW9uU3RhdGVGYXVsdEVycm9yLFxuICBJbnZhbGlkRXhwb3J0T25seUZhdWx0RXJyb3IsXG4gIEludmFsaWRFeHBvcnRTb3VyY2VTdGF0ZUZhdWx0RXJyb3IsXG4gIEludmFsaWRFeHBvcnRUYXNrU3RhdGVGYXVsdEVycm9yLFxuICBJbnZhbGlkR2xvYmFsQ2x1c3RlclN0YXRlRmF1bHRFcnJvcixcbiAgSW52YWxpZEludGVncmF0aW9uU3RhdGVGYXVsdEVycm9yLFxuICBJbnZhbGlkT3B0aW9uR3JvdXBTdGF0ZUZhdWx0RXJyb3IsXG4gIEludmFsaWRSZXNvdXJjZVN0YXRlRmF1bHRFcnJvcixcbiAgSW52YWxpZFJlc3RvcmVGYXVsdEVycm9yLFxuICBJbnZhbGlkUzNCdWNrZXRGYXVsdEVycm9yLFxuICBJbnZhbGlkU3VibmV0RXJyb3IsXG4gIEludmFsaWRWUENOZXR3b3JrU3RhdGVGYXVsdEVycm9yLFxuICBLTVNLZXlOb3RBY2Nlc3NpYmxlRmF1bHRFcnJvcixcbiAgTWF4REJTaGFyZEdyb3VwTGltaXRSZWFjaGVkRXJyb3IsXG4gIE5ldHdvcmtUeXBlTm90U3VwcG9ydGVkRXJyb3IsXG4gIE9wdGlvbkdyb3VwQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3IsXG4gIE9wdGlvbkdyb3VwTm90Rm91bmRGYXVsdEVycm9yLFxuICBPcHRpb25Hcm91cFF1b3RhRXhjZWVkZWRGYXVsdEVycm9yLFxuICBQb2ludEluVGltZVJlc3RvcmVOb3RFbmFibGVkRmF1bHRFcnJvcixcbiAgUHJvdmlzaW9uZWRJb3BzTm90QXZhaWxhYmxlSW5BWkZhdWx0RXJyb3IsXG4gIFJlc2VydmVkREJJbnN0YW5jZUFscmVhZHlFeGlzdHNGYXVsdEVycm9yLFxuICBSZXNlcnZlZERCSW5zdGFuY2VOb3RGb3VuZEZhdWx0RXJyb3IsXG4gIFJlc2VydmVkREJJbnN0YW5jZVF1b3RhRXhjZWVkZWRGYXVsdEVycm9yLFxuICBSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdOb3RGb3VuZEZhdWx0RXJyb3IsXG4gIFJlc291cmNlTm90Rm91bmRGYXVsdEVycm9yLFxuICBTTlNJbnZhbGlkVG9waWNGYXVsdEVycm9yLFxuICBTTlNOb0F1dGhvcml6YXRpb25GYXVsdEVycm9yLFxuICBTTlNUb3BpY0Fybk5vdEZvdW5kRmF1bHRFcnJvcixcbiAgU2hhcmVkU25hcHNob3RRdW90YUV4Y2VlZGVkRmF1bHRFcnJvcixcbiAgU25hcHNob3RRdW90YUV4Y2VlZGVkRmF1bHRFcnJvcixcbiAgU291cmNlQ2x1c3Rlck5vdFN1cHBvcnRlZEZhdWx0RXJyb3IsXG4gIFNvdXJjZURhdGFiYXNlTm90U3VwcG9ydGVkRmF1bHRFcnJvcixcbiAgU291cmNlTm90Rm91bmRGYXVsdEVycm9yLFxuICBTdG9yYWdlUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3IsXG4gIFN0b3JhZ2VUeXBlTm90QXZhaWxhYmxlRmF1bHRFcnJvcixcbiAgU3RvcmFnZVR5cGVOb3RTdXBwb3J0ZWRGYXVsdEVycm9yLFxuICBTdWJuZXRBbHJlYWR5SW5Vc2VFcnJvcixcbiAgU3Vic2NyaXB0aW9uQWxyZWFkeUV4aXN0RmF1bHRFcnJvcixcbiAgU3Vic2NyaXB0aW9uQ2F0ZWdvcnlOb3RGb3VuZEZhdWx0RXJyb3IsXG4gIFN1YnNjcmlwdGlvbk5vdEZvdW5kRmF1bHRFcnJvcixcbiAgVGVuYW50RGF0YWJhc2VBbHJlYWR5RXhpc3RzRmF1bHRFcnJvcixcbiAgVGVuYW50RGF0YWJhc2VOb3RGb3VuZEZhdWx0RXJyb3IsXG4gIFRlbmFudERhdGFiYXNlUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3IsXG4gIFVuc3VwcG9ydGVkREJFbmdpbmVWZXJzaW9uRmF1bHRFcnJvcixcbiAgU2RrRXJyb3IsXG4gIFRhZ2dlZEV4Y2VwdGlvbixcbn0gZnJvbSBcIi4vRXJyb3JzXCI7XG5pbXBvcnQgeyBSRFNDbGllbnRJbnN0YW5jZSwgUkRTQ2xpZW50SW5zdGFuY2VMYXllciB9IGZyb20gXCIuL1JEU0NsaWVudEluc3RhbmNlXCI7XG5pbXBvcnQge1xuICBEZWZhdWx0UkRTQ2xpZW50Q29uZmlnTGF5ZXIsXG4gIG1ha2VEZWZhdWx0UkRTQ2xpZW50SW5zdGFuY2VDb25maWcsXG4gIFJEU0NsaWVudEluc3RhbmNlQ29uZmlnLFxufSBmcm9tIFwiLi9SRFNDbGllbnRJbnN0YW5jZUNvbmZpZ1wiO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEh0dHBIYW5kbGVyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSB0aW1lIGluIG1pbGxpc2Vjb25kcyB0aGF0IHRoZSBjb25uZWN0aW9uIHBoYXNlIG9mIGEgcmVxdWVzdFxuICAgKiBtYXkgdGFrZSBiZWZvcmUgdGhlIGNvbm5lY3Rpb24gYXR0ZW1wdCBpcyBhYmFuZG9uZWQuXG4gICAqL1xuICByZXF1ZXN0VGltZW91dD86IG51bWJlcjtcbn1cblxuY29uc3QgY29tbWFuZHMgPSB7XG4gIEFkZFJvbGVUb0RCQ2x1c3RlckNvbW1hbmQsXG4gIEFkZFJvbGVUb0RCSW5zdGFuY2VDb21tYW5kLFxuICBBZGRTb3VyY2VJZGVudGlmaWVyVG9TdWJzY3JpcHRpb25Db21tYW5kLFxuICBBZGRUYWdzVG9SZXNvdXJjZUNvbW1hbmQsXG4gIEFwcGx5UGVuZGluZ01haW50ZW5hbmNlQWN0aW9uQ29tbWFuZCxcbiAgQXV0aG9yaXplREJTZWN1cml0eUdyb3VwSW5ncmVzc0NvbW1hbmQsXG4gIEJhY2t0cmFja0RCQ2x1c3RlckNvbW1hbmQsXG4gIENhbmNlbEV4cG9ydFRhc2tDb21tYW5kLFxuICBDb3B5REJDbHVzdGVyUGFyYW1ldGVyR3JvdXBDb21tYW5kLFxuICBDb3B5REJDbHVzdGVyU25hcHNob3RDb21tYW5kLFxuICBDb3B5REJQYXJhbWV0ZXJHcm91cENvbW1hbmQsXG4gIENvcHlEQlNuYXBzaG90Q29tbWFuZCxcbiAgQ29weU9wdGlvbkdyb3VwQ29tbWFuZCxcbiAgQ3JlYXRlQmx1ZUdyZWVuRGVwbG95bWVudENvbW1hbmQsXG4gIENyZWF0ZUN1c3RvbURCRW5naW5lVmVyc2lvbkNvbW1hbmQsXG4gIENyZWF0ZURCQ2x1c3RlckNvbW1hbmQsXG4gIENyZWF0ZURCQ2x1c3RlckVuZHBvaW50Q29tbWFuZCxcbiAgQ3JlYXRlREJDbHVzdGVyUGFyYW1ldGVyR3JvdXBDb21tYW5kLFxuICBDcmVhdGVEQkNsdXN0ZXJTbmFwc2hvdENvbW1hbmQsXG4gIENyZWF0ZURCSW5zdGFuY2VDb21tYW5kLFxuICBDcmVhdGVEQkluc3RhbmNlUmVhZFJlcGxpY2FDb21tYW5kLFxuICBDcmVhdGVEQlBhcmFtZXRlckdyb3VwQ29tbWFuZCxcbiAgQ3JlYXRlREJQcm94eUNvbW1hbmQsXG4gIENyZWF0ZURCUHJveHlFbmRwb2ludENvbW1hbmQsXG4gIENyZWF0ZURCU2VjdXJpdHlHcm91cENvbW1hbmQsXG4gIENyZWF0ZURCU2hhcmRHcm91cENvbW1hbmQsXG4gIENyZWF0ZURCU25hcHNob3RDb21tYW5kLFxuICBDcmVhdGVEQlN1Ym5ldEdyb3VwQ29tbWFuZCxcbiAgQ3JlYXRlRXZlbnRTdWJzY3JpcHRpb25Db21tYW5kLFxuICBDcmVhdGVHbG9iYWxDbHVzdGVyQ29tbWFuZCxcbiAgQ3JlYXRlSW50ZWdyYXRpb25Db21tYW5kLFxuICBDcmVhdGVPcHRpb25Hcm91cENvbW1hbmQsXG4gIENyZWF0ZVRlbmFudERhdGFiYXNlQ29tbWFuZCxcbiAgRGVsZXRlQmx1ZUdyZWVuRGVwbG95bWVudENvbW1hbmQsXG4gIERlbGV0ZUN1c3RvbURCRW5naW5lVmVyc2lvbkNvbW1hbmQsXG4gIERlbGV0ZURCQ2x1c3RlckNvbW1hbmQsXG4gIERlbGV0ZURCQ2x1c3RlckF1dG9tYXRlZEJhY2t1cENvbW1hbmQsXG4gIERlbGV0ZURCQ2x1c3RlckVuZHBvaW50Q29tbWFuZCxcbiAgRGVsZXRlREJDbHVzdGVyUGFyYW1ldGVyR3JvdXBDb21tYW5kLFxuICBEZWxldGVEQkNsdXN0ZXJTbmFwc2hvdENvbW1hbmQsXG4gIERlbGV0ZURCSW5zdGFuY2VDb21tYW5kLFxuICBEZWxldGVEQkluc3RhbmNlQXV0b21hdGVkQmFja3VwQ29tbWFuZCxcbiAgRGVsZXRlREJQYXJhbWV0ZXJHcm91cENvbW1hbmQsXG4gIERlbGV0ZURCUHJveHlDb21tYW5kLFxuICBEZWxldGVEQlByb3h5RW5kcG9pbnRDb21tYW5kLFxuICBEZWxldGVEQlNlY3VyaXR5R3JvdXBDb21tYW5kLFxuICBEZWxldGVEQlNoYXJkR3JvdXBDb21tYW5kLFxuICBEZWxldGVEQlNuYXBzaG90Q29tbWFuZCxcbiAgRGVsZXRlREJTdWJuZXRHcm91cENvbW1hbmQsXG4gIERlbGV0ZUV2ZW50U3Vic2NyaXB0aW9uQ29tbWFuZCxcbiAgRGVsZXRlR2xvYmFsQ2x1c3RlckNvbW1hbmQsXG4gIERlbGV0ZUludGVncmF0aW9uQ29tbWFuZCxcbiAgRGVsZXRlT3B0aW9uR3JvdXBDb21tYW5kLFxuICBEZWxldGVUZW5hbnREYXRhYmFzZUNvbW1hbmQsXG4gIERlcmVnaXN0ZXJEQlByb3h5VGFyZ2V0c0NvbW1hbmQsXG4gIERlc2NyaWJlQWNjb3VudEF0dHJpYnV0ZXNDb21tYW5kLFxuICBEZXNjcmliZUJsdWVHcmVlbkRlcGxveW1lbnRzQ29tbWFuZCxcbiAgRGVzY3JpYmVDZXJ0aWZpY2F0ZXNDb21tYW5kLFxuICBEZXNjcmliZURCQ2x1c3RlckF1dG9tYXRlZEJhY2t1cHNDb21tYW5kLFxuICBEZXNjcmliZURCQ2x1c3RlckJhY2t0cmFja3NDb21tYW5kLFxuICBEZXNjcmliZURCQ2x1c3RlckVuZHBvaW50c0NvbW1hbmQsXG4gIERlc2NyaWJlREJDbHVzdGVyUGFyYW1ldGVyR3JvdXBzQ29tbWFuZCxcbiAgRGVzY3JpYmVEQkNsdXN0ZXJQYXJhbWV0ZXJzQ29tbWFuZCxcbiAgRGVzY3JpYmVEQkNsdXN0ZXJTbmFwc2hvdEF0dHJpYnV0ZXNDb21tYW5kLFxuICBEZXNjcmliZURCQ2x1c3RlclNuYXBzaG90c0NvbW1hbmQsXG4gIERlc2NyaWJlREJDbHVzdGVyc0NvbW1hbmQsXG4gIERlc2NyaWJlREJFbmdpbmVWZXJzaW9uc0NvbW1hbmQsXG4gIERlc2NyaWJlREJJbnN0YW5jZUF1dG9tYXRlZEJhY2t1cHNDb21tYW5kLFxuICBEZXNjcmliZURCSW5zdGFuY2VzQ29tbWFuZCxcbiAgRGVzY3JpYmVEQkxvZ0ZpbGVzQ29tbWFuZCxcbiAgRGVzY3JpYmVEQlBhcmFtZXRlckdyb3Vwc0NvbW1hbmQsXG4gIERlc2NyaWJlREJQYXJhbWV0ZXJzQ29tbWFuZCxcbiAgRGVzY3JpYmVEQlByb3hpZXNDb21tYW5kLFxuICBEZXNjcmliZURCUHJveHlFbmRwb2ludHNDb21tYW5kLFxuICBEZXNjcmliZURCUHJveHlUYXJnZXRHcm91cHNDb21tYW5kLFxuICBEZXNjcmliZURCUHJveHlUYXJnZXRzQ29tbWFuZCxcbiAgRGVzY3JpYmVEQlJlY29tbWVuZGF0aW9uc0NvbW1hbmQsXG4gIERlc2NyaWJlREJTZWN1cml0eUdyb3Vwc0NvbW1hbmQsXG4gIERlc2NyaWJlREJTaGFyZEdyb3Vwc0NvbW1hbmQsXG4gIERlc2NyaWJlREJTbmFwc2hvdEF0dHJpYnV0ZXNDb21tYW5kLFxuICBEZXNjcmliZURCU25hcHNob3RUZW5hbnREYXRhYmFzZXNDb21tYW5kLFxuICBEZXNjcmliZURCU25hcHNob3RzQ29tbWFuZCxcbiAgRGVzY3JpYmVEQlN1Ym5ldEdyb3Vwc0NvbW1hbmQsXG4gIERlc2NyaWJlRW5naW5lRGVmYXVsdENsdXN0ZXJQYXJhbWV0ZXJzQ29tbWFuZCxcbiAgRGVzY3JpYmVFbmdpbmVEZWZhdWx0UGFyYW1ldGVyc0NvbW1hbmQsXG4gIERlc2NyaWJlRXZlbnRDYXRlZ29yaWVzQ29tbWFuZCxcbiAgRGVzY3JpYmVFdmVudFN1YnNjcmlwdGlvbnNDb21tYW5kLFxuICBEZXNjcmliZUV2ZW50c0NvbW1hbmQsXG4gIERlc2NyaWJlRXhwb3J0VGFza3NDb21tYW5kLFxuICBEZXNjcmliZUdsb2JhbENsdXN0ZXJzQ29tbWFuZCxcbiAgRGVzY3JpYmVJbnRlZ3JhdGlvbnNDb21tYW5kLFxuICBEZXNjcmliZU9wdGlvbkdyb3VwT3B0aW9uc0NvbW1hbmQsXG4gIERlc2NyaWJlT3B0aW9uR3JvdXBzQ29tbWFuZCxcbiAgRGVzY3JpYmVPcmRlcmFibGVEQkluc3RhbmNlT3B0aW9uc0NvbW1hbmQsXG4gIERlc2NyaWJlUGVuZGluZ01haW50ZW5hbmNlQWN0aW9uc0NvbW1hbmQsXG4gIERlc2NyaWJlUmVzZXJ2ZWREQkluc3RhbmNlc0NvbW1hbmQsXG4gIERlc2NyaWJlUmVzZXJ2ZWREQkluc3RhbmNlc09mZmVyaW5nc0NvbW1hbmQsXG4gIERlc2NyaWJlU291cmNlUmVnaW9uc0NvbW1hbmQsXG4gIERlc2NyaWJlVGVuYW50RGF0YWJhc2VzQ29tbWFuZCxcbiAgRGVzY3JpYmVWYWxpZERCSW5zdGFuY2VNb2RpZmljYXRpb25zQ29tbWFuZCxcbiAgRGlzYWJsZUh0dHBFbmRwb2ludENvbW1hbmQsXG4gIERvd25sb2FkREJMb2dGaWxlUG9ydGlvbkNvbW1hbmQsXG4gIEVuYWJsZUh0dHBFbmRwb2ludENvbW1hbmQsXG4gIEZhaWxvdmVyREJDbHVzdGVyQ29tbWFuZCxcbiAgRmFpbG92ZXJHbG9iYWxDbHVzdGVyQ29tbWFuZCxcbiAgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmQsXG4gIE1vZGlmeUFjdGl2aXR5U3RyZWFtQ29tbWFuZCxcbiAgTW9kaWZ5Q2VydGlmaWNhdGVzQ29tbWFuZCxcbiAgTW9kaWZ5Q3VycmVudERCQ2x1c3RlckNhcGFjaXR5Q29tbWFuZCxcbiAgTW9kaWZ5Q3VzdG9tREJFbmdpbmVWZXJzaW9uQ29tbWFuZCxcbiAgTW9kaWZ5REJDbHVzdGVyQ29tbWFuZCxcbiAgTW9kaWZ5REJDbHVzdGVyRW5kcG9pbnRDb21tYW5kLFxuICBNb2RpZnlEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cENvbW1hbmQsXG4gIE1vZGlmeURCQ2x1c3RlclNuYXBzaG90QXR0cmlidXRlQ29tbWFuZCxcbiAgTW9kaWZ5REJJbnN0YW5jZUNvbW1hbmQsXG4gIE1vZGlmeURCUGFyYW1ldGVyR3JvdXBDb21tYW5kLFxuICBNb2RpZnlEQlByb3h5Q29tbWFuZCxcbiAgTW9kaWZ5REJQcm94eUVuZHBvaW50Q29tbWFuZCxcbiAgTW9kaWZ5REJQcm94eVRhcmdldEdyb3VwQ29tbWFuZCxcbiAgTW9kaWZ5REJSZWNvbW1lbmRhdGlvbkNvbW1hbmQsXG4gIE1vZGlmeURCU2hhcmRHcm91cENvbW1hbmQsXG4gIE1vZGlmeURCU25hcHNob3RDb21tYW5kLFxuICBNb2RpZnlEQlNuYXBzaG90QXR0cmlidXRlQ29tbWFuZCxcbiAgTW9kaWZ5REJTdWJuZXRHcm91cENvbW1hbmQsXG4gIE1vZGlmeUV2ZW50U3Vic2NyaXB0aW9uQ29tbWFuZCxcbiAgTW9kaWZ5R2xvYmFsQ2x1c3RlckNvbW1hbmQsXG4gIE1vZGlmeUludGVncmF0aW9uQ29tbWFuZCxcbiAgTW9kaWZ5T3B0aW9uR3JvdXBDb21tYW5kLFxuICBNb2RpZnlUZW5hbnREYXRhYmFzZUNvbW1hbmQsXG4gIFByb21vdGVSZWFkUmVwbGljYUNvbW1hbmQsXG4gIFByb21vdGVSZWFkUmVwbGljYURCQ2x1c3RlckNvbW1hbmQsXG4gIFB1cmNoYXNlUmVzZXJ2ZWREQkluc3RhbmNlc09mZmVyaW5nQ29tbWFuZCxcbiAgUmVib290REJDbHVzdGVyQ29tbWFuZCxcbiAgUmVib290REJJbnN0YW5jZUNvbW1hbmQsXG4gIFJlYm9vdERCU2hhcmRHcm91cENvbW1hbmQsXG4gIFJlZ2lzdGVyREJQcm94eVRhcmdldHNDb21tYW5kLFxuICBSZW1vdmVGcm9tR2xvYmFsQ2x1c3RlckNvbW1hbmQsXG4gIFJlbW92ZVJvbGVGcm9tREJDbHVzdGVyQ29tbWFuZCxcbiAgUmVtb3ZlUm9sZUZyb21EQkluc3RhbmNlQ29tbWFuZCxcbiAgUmVtb3ZlU291cmNlSWRlbnRpZmllckZyb21TdWJzY3JpcHRpb25Db21tYW5kLFxuICBSZW1vdmVUYWdzRnJvbVJlc291cmNlQ29tbWFuZCxcbiAgUmVzZXREQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cENvbW1hbmQsXG4gIFJlc2V0REJQYXJhbWV0ZXJHcm91cENvbW1hbmQsXG4gIFJlc3RvcmVEQkNsdXN0ZXJGcm9tUzNDb21tYW5kLFxuICBSZXN0b3JlREJDbHVzdGVyRnJvbVNuYXBzaG90Q29tbWFuZCxcbiAgUmVzdG9yZURCQ2x1c3RlclRvUG9pbnRJblRpbWVDb21tYW5kLFxuICBSZXN0b3JlREJJbnN0YW5jZUZyb21EQlNuYXBzaG90Q29tbWFuZCxcbiAgUmVzdG9yZURCSW5zdGFuY2VGcm9tUzNDb21tYW5kLFxuICBSZXN0b3JlREJJbnN0YW5jZVRvUG9pbnRJblRpbWVDb21tYW5kLFxuICBSZXZva2VEQlNlY3VyaXR5R3JvdXBJbmdyZXNzQ29tbWFuZCxcbiAgU3RhcnRBY3Rpdml0eVN0cmVhbUNvbW1hbmQsXG4gIFN0YXJ0REJDbHVzdGVyQ29tbWFuZCxcbiAgU3RhcnREQkluc3RhbmNlQ29tbWFuZCxcbiAgU3RhcnREQkluc3RhbmNlQXV0b21hdGVkQmFja3Vwc1JlcGxpY2F0aW9uQ29tbWFuZCxcbiAgU3RhcnRFeHBvcnRUYXNrQ29tbWFuZCxcbiAgU3RvcEFjdGl2aXR5U3RyZWFtQ29tbWFuZCxcbiAgU3RvcERCQ2x1c3RlckNvbW1hbmQsXG4gIFN0b3BEQkluc3RhbmNlQ29tbWFuZCxcbiAgU3RvcERCSW5zdGFuY2VBdXRvbWF0ZWRCYWNrdXBzUmVwbGljYXRpb25Db21tYW5kLFxuICBTd2l0Y2hvdmVyQmx1ZUdyZWVuRGVwbG95bWVudENvbW1hbmQsXG4gIFN3aXRjaG92ZXJHbG9iYWxDbHVzdGVyQ29tbWFuZCxcbiAgU3dpdGNob3ZlclJlYWRSZXBsaWNhQ29tbWFuZCxcbn07XG5cbmludGVyZmFjZSBSRFNTZXJ2aWNlJCB7XG4gIHJlYWRvbmx5IF86IHVuaXF1ZSBzeW1ib2w7XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEFkZFJvbGVUb0RCQ2x1c3RlckNvbW1hbmR9XG4gICAqL1xuICBhZGRSb2xlVG9EQkNsdXN0ZXIoXG4gICAgYXJnczogQWRkUm9sZVRvREJDbHVzdGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQWRkUm9sZVRvREJDbHVzdGVyQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQkNsdXN0ZXJOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCQ2x1c3RlclJvbGVBbHJlYWR5RXhpc3RzRmF1bHRFcnJvclxuICAgIHwgREJDbHVzdGVyUm9sZVF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJDbHVzdGVyU3RhdGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEFkZFJvbGVUb0RCSW5zdGFuY2VDb21tYW5kfVxuICAgKi9cbiAgYWRkUm9sZVRvREJJbnN0YW5jZShcbiAgICBhcmdzOiBBZGRSb2xlVG9EQkluc3RhbmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQWRkUm9sZVRvREJJbnN0YW5jZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgREJJbnN0YW5jZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJJbnN0YW5jZVJvbGVBbHJlYWR5RXhpc3RzRmF1bHRFcnJvclxuICAgIHwgREJJbnN0YW5jZVJvbGVRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCSW5zdGFuY2VTdGF0ZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQWRkU291cmNlSWRlbnRpZmllclRvU3Vic2NyaXB0aW9uQ29tbWFuZH1cbiAgICovXG4gIGFkZFNvdXJjZUlkZW50aWZpZXJUb1N1YnNjcmlwdGlvbihcbiAgICBhcmdzOiBBZGRTb3VyY2VJZGVudGlmaWVyVG9TdWJzY3JpcHRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBBZGRTb3VyY2VJZGVudGlmaWVyVG9TdWJzY3JpcHRpb25Db21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgU291cmNlTm90Rm91bmRGYXVsdEVycm9yIHwgU3Vic2NyaXB0aW9uTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEFkZFRhZ3NUb1Jlc291cmNlQ29tbWFuZH1cbiAgICovXG4gIGFkZFRhZ3NUb1Jlc291cmNlKFxuICAgIGFyZ3M6IEFkZFRhZ3NUb1Jlc291cmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQWRkVGFnc1RvUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJsdWVHcmVlbkRlcGxveW1lbnROb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJJbnN0YW5jZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJQcm94eU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJQcm94eVRhcmdldEdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQlNuYXBzaG90Tm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQlNuYXBzaG90VGVuYW50RGF0YWJhc2VOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludGVncmF0aW9uTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBUZW5hbnREYXRhYmFzZU5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBBcHBseVBlbmRpbmdNYWludGVuYW5jZUFjdGlvbkNvbW1hbmR9XG4gICAqL1xuICBhcHBseVBlbmRpbmdNYWludGVuYW5jZUFjdGlvbihcbiAgICBhcmdzOiBBcHBseVBlbmRpbmdNYWludGVuYW5jZUFjdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEFwcGx5UGVuZGluZ01haW50ZW5hbmNlQWN0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkREJDbHVzdGVyU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJJbnN0YW5jZVN0YXRlRmF1bHRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQXV0aG9yaXplREJTZWN1cml0eUdyb3VwSW5ncmVzc0NvbW1hbmR9XG4gICAqL1xuICBhdXRob3JpemVEQlNlY3VyaXR5R3JvdXBJbmdyZXNzKFxuICAgIGFyZ3M6IEF1dGhvcml6ZURCU2VjdXJpdHlHcm91cEluZ3Jlc3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBBdXRob3JpemVEQlNlY3VyaXR5R3JvdXBJbmdyZXNzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBdXRob3JpemF0aW9uQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IEF1dGhvcml6YXRpb25RdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgREJTZWN1cml0eUdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJTZWN1cml0eUdyb3VwU3RhdGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEJhY2t0cmFja0RCQ2x1c3RlckNvbW1hbmR9XG4gICAqL1xuICBiYWNrdHJhY2tEQkNsdXN0ZXIoXG4gICAgYXJnczogQmFja3RyYWNrREJDbHVzdGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQmFja3RyYWNrREJDbHVzdGVyQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IERCQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvciB8IEludmFsaWREQkNsdXN0ZXJTdGF0ZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ2FuY2VsRXhwb3J0VGFza0NvbW1hbmR9XG4gICAqL1xuICBjYW5jZWxFeHBvcnRUYXNrKFxuICAgIGFyZ3M6IENhbmNlbEV4cG9ydFRhc2tDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDYW5jZWxFeHBvcnRUYXNrQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEV4cG9ydFRhc2tOb3RGb3VuZEZhdWx0RXJyb3IgfCBJbnZhbGlkRXhwb3J0VGFza1N0YXRlRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDb3B5REJDbHVzdGVyUGFyYW1ldGVyR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgY29weURCQ2x1c3RlclBhcmFtZXRlckdyb3VwKFxuICAgIGFyZ3M6IENvcHlEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENvcHlEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgREJQYXJhbWV0ZXJHcm91cEFscmVhZHlFeGlzdHNGYXVsdEVycm9yXG4gICAgfCBEQlBhcmFtZXRlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQlBhcmFtZXRlckdyb3VwUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ29weURCQ2x1c3RlclNuYXBzaG90Q29tbWFuZH1cbiAgICovXG4gIGNvcHlEQkNsdXN0ZXJTbmFwc2hvdChcbiAgICBhcmdzOiBDb3B5REJDbHVzdGVyU25hcHNob3RDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDb3B5REJDbHVzdGVyU25hcHNob3RDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCQ2x1c3RlclNuYXBzaG90QWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IERCQ2x1c3RlclNuYXBzaG90Tm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJDbHVzdGVyU25hcHNob3RTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkNsdXN0ZXJTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEtNU0tleU5vdEFjY2Vzc2libGVGYXVsdEVycm9yXG4gICAgfCBTbmFwc2hvdFF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENvcHlEQlBhcmFtZXRlckdyb3VwQ29tbWFuZH1cbiAgICovXG4gIGNvcHlEQlBhcmFtZXRlckdyb3VwKFxuICAgIGFyZ3M6IENvcHlEQlBhcmFtZXRlckdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ29weURCUGFyYW1ldGVyR3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCUGFyYW1ldGVyR3JvdXBBbHJlYWR5RXhpc3RzRmF1bHRFcnJvclxuICAgIHwgREJQYXJhbWV0ZXJHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJQYXJhbWV0ZXJHcm91cFF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENvcHlEQlNuYXBzaG90Q29tbWFuZH1cbiAgICovXG4gIGNvcHlEQlNuYXBzaG90KFxuICAgIGFyZ3M6IENvcHlEQlNuYXBzaG90Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ29weURCU25hcHNob3RDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEN1c3RvbUF2YWlsYWJpbGl0eVpvbmVOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCU25hcHNob3RBbHJlYWR5RXhpc3RzRmF1bHRFcnJvclxuICAgIHwgREJTbmFwc2hvdE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCU25hcHNob3RTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEtNU0tleU5vdEFjY2Vzc2libGVGYXVsdEVycm9yXG4gICAgfCBTbmFwc2hvdFF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENvcHlPcHRpb25Hcm91cENvbW1hbmR9XG4gICAqL1xuICBjb3B5T3B0aW9uR3JvdXAoXG4gICAgYXJnczogQ29weU9wdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ29weU9wdGlvbkdyb3VwQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBPcHRpb25Hcm91cEFscmVhZHlFeGlzdHNGYXVsdEVycm9yXG4gICAgfCBPcHRpb25Hcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgT3B0aW9uR3JvdXBRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVCbHVlR3JlZW5EZXBsb3ltZW50Q29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUJsdWVHcmVlbkRlcGxveW1lbnQoXG4gICAgYXJnczogQ3JlYXRlQmx1ZUdyZWVuRGVwbG95bWVudENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZUJsdWVHcmVlbkRlcGxveW1lbnRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJsdWVHcmVlbkRlcGxveW1lbnRBbHJlYWR5RXhpc3RzRmF1bHRFcnJvclxuICAgIHwgREJDbHVzdGVyTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJDbHVzdGVyUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IERCSW5zdGFuY2VOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCUGFyYW1ldGVyR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEluc3RhbmNlUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkNsdXN0ZXJTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkluc3RhbmNlU3RhdGVGYXVsdEVycm9yXG4gICAgfCBTb3VyY2VDbHVzdGVyTm90U3VwcG9ydGVkRmF1bHRFcnJvclxuICAgIHwgU291cmNlRGF0YWJhc2VOb3RTdXBwb3J0ZWRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUN1c3RvbURCRW5naW5lVmVyc2lvbkNvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVDdXN0b21EQkVuZ2luZVZlcnNpb24oXG4gICAgYXJnczogQ3JlYXRlQ3VzdG9tREJFbmdpbmVWZXJzaW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlQ3VzdG9tREJFbmdpbmVWZXJzaW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDcmVhdGVDdXN0b21EQkVuZ2luZVZlcnNpb25GYXVsdEVycm9yXG4gICAgfCBDdXN0b21EQkVuZ2luZVZlcnNpb25BbHJlYWR5RXhpc3RzRmF1bHRFcnJvclxuICAgIHwgQ3VzdG9tREJFbmdpbmVWZXJzaW9uUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IEVjMkltYWdlUHJvcGVydGllc05vdFN1cHBvcnRlZEZhdWx0RXJyb3JcbiAgICB8IEtNU0tleU5vdEFjY2Vzc2libGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZURCQ2x1c3RlckNvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVEQkNsdXN0ZXIoXG4gICAgYXJnczogQ3JlYXRlREJDbHVzdGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlREJDbHVzdGVyQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQkNsdXN0ZXJBbHJlYWR5RXhpc3RzRmF1bHRFcnJvclxuICAgIHwgREJDbHVzdGVyTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJDbHVzdGVyUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IERCSW5zdGFuY2VOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCU3VibmV0R3JvdXBEb2VzTm90Q292ZXJFbm91Z2hBWnNFcnJvclxuICAgIHwgREJTdWJuZXRHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgRG9tYWluTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBHbG9iYWxDbHVzdGVyTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnN1ZmZpY2llbnREQkluc3RhbmNlQ2FwYWNpdHlGYXVsdEVycm9yXG4gICAgfCBJbnN1ZmZpY2llbnRTdG9yYWdlQ2x1c3RlckNhcGFjaXR5RmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCQ2x1c3RlclN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCSW5zdGFuY2VTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQlN1Ym5ldEdyb3VwRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCU3VibmV0R3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRHbG9iYWxDbHVzdGVyU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkU3VibmV0RXJyb3JcbiAgICB8IEludmFsaWRWUENOZXR3b3JrU3RhdGVGYXVsdEVycm9yXG4gICAgfCBLTVNLZXlOb3RBY2Nlc3NpYmxlRmF1bHRFcnJvclxuICAgIHwgT3B0aW9uR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFN0b3JhZ2VRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVEQkNsdXN0ZXJFbmRwb2ludENvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVEQkNsdXN0ZXJFbmRwb2ludChcbiAgICBhcmdzOiBDcmVhdGVEQkNsdXN0ZXJFbmRwb2ludENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZURCQ2x1c3RlckVuZHBvaW50Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQkNsdXN0ZXJFbmRwb2ludEFscmVhZHlFeGlzdHNGYXVsdEVycm9yXG4gICAgfCBEQkNsdXN0ZXJFbmRwb2ludFF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBEQkNsdXN0ZXJOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCSW5zdGFuY2VOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkNsdXN0ZXJTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkluc3RhbmNlU3RhdGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZURCQ2x1c3RlclBhcmFtZXRlckdyb3VwQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZURCQ2x1c3RlclBhcmFtZXRlckdyb3VwKFxuICAgIGFyZ3M6IENyZWF0ZURCQ2x1c3RlclBhcmFtZXRlckdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlREJDbHVzdGVyUGFyYW1ldGVyR3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCUGFyYW1ldGVyR3JvdXBBbHJlYWR5RXhpc3RzRmF1bHRFcnJvclxuICAgIHwgREJQYXJhbWV0ZXJHcm91cFF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZURCQ2x1c3RlclNuYXBzaG90Q29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZURCQ2x1c3RlclNuYXBzaG90KFxuICAgIGFyZ3M6IENyZWF0ZURCQ2x1c3RlclNuYXBzaG90Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlREJDbHVzdGVyU25hcHNob3RDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJDbHVzdGVyU25hcHNob3RBbHJlYWR5RXhpc3RzRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCQ2x1c3RlclNuYXBzaG90U3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJDbHVzdGVyU3RhdGVGYXVsdEVycm9yXG4gICAgfCBTbmFwc2hvdFF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZURCSW5zdGFuY2VDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlREJJbnN0YW5jZShcbiAgICBhcmdzOiBDcmVhdGVEQkluc3RhbmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlREJJbnN0YW5jZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQXV0aG9yaXphdGlvbk5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgQmFja3VwUG9saWN5Tm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBDZXJ0aWZpY2F0ZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJDbHVzdGVyTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQkluc3RhbmNlQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IERCUGFyYW1ldGVyR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCU2VjdXJpdHlHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJTdWJuZXRHcm91cERvZXNOb3RDb3ZlckVub3VnaEFac0Vycm9yXG4gICAgfCBEQlN1Ym5ldEdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEb21haW5Ob3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEluc3RhbmNlUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IEluc3VmZmljaWVudERCSW5zdGFuY2VDYXBhY2l0eUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkNsdXN0ZXJTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRTdWJuZXRFcnJvclxuICAgIHwgSW52YWxpZFZQQ05ldHdvcmtTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEtNU0tleU5vdEFjY2Vzc2libGVGYXVsdEVycm9yXG4gICAgfCBOZXR3b3JrVHlwZU5vdFN1cHBvcnRlZEVycm9yXG4gICAgfCBPcHRpb25Hcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgUHJvdmlzaW9uZWRJb3BzTm90QXZhaWxhYmxlSW5BWkZhdWx0RXJyb3JcbiAgICB8IFN0b3JhZ2VRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgU3RvcmFnZVR5cGVOb3RTdXBwb3J0ZWRGYXVsdEVycm9yXG4gICAgfCBUZW5hbnREYXRhYmFzZVF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZURCSW5zdGFuY2VSZWFkUmVwbGljYUNvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVEQkluc3RhbmNlUmVhZFJlcGxpY2EoXG4gICAgYXJnczogQ3JlYXRlREJJbnN0YW5jZVJlYWRSZXBsaWNhQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlREJJbnN0YW5jZVJlYWRSZXBsaWNhQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDZXJ0aWZpY2F0ZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJDbHVzdGVyTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQkluc3RhbmNlQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IERCSW5zdGFuY2VOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCUGFyYW1ldGVyR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCU2VjdXJpdHlHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJTdWJuZXRHcm91cERvZXNOb3RDb3ZlckVub3VnaEFac0Vycm9yXG4gICAgfCBEQlN1Ym5ldEdyb3VwTm90QWxsb3dlZEZhdWx0RXJyb3JcbiAgICB8IERCU3VibmV0R3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERvbWFpbk5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW5zdGFuY2VRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgSW5zdWZmaWNpZW50REJJbnN0YW5jZUNhcGFjaXR5RmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCQ2x1c3RlclN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCSW5zdGFuY2VTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQlN1Ym5ldEdyb3VwRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFN1Ym5ldEVycm9yXG4gICAgfCBJbnZhbGlkVlBDTmV0d29ya1N0YXRlRmF1bHRFcnJvclxuICAgIHwgS01TS2V5Tm90QWNjZXNzaWJsZUZhdWx0RXJyb3JcbiAgICB8IE5ldHdvcmtUeXBlTm90U3VwcG9ydGVkRXJyb3JcbiAgICB8IE9wdGlvbkdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBQcm92aXNpb25lZElvcHNOb3RBdmFpbGFibGVJbkFaRmF1bHRFcnJvclxuICAgIHwgU3RvcmFnZVF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBTdG9yYWdlVHlwZU5vdFN1cHBvcnRlZEZhdWx0RXJyb3JcbiAgICB8IFRlbmFudERhdGFiYXNlUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlREJQYXJhbWV0ZXJHcm91cENvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVEQlBhcmFtZXRlckdyb3VwKFxuICAgIGFyZ3M6IENyZWF0ZURCUGFyYW1ldGVyR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVEQlBhcmFtZXRlckdyb3VwQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQlBhcmFtZXRlckdyb3VwQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IERCUGFyYW1ldGVyR3JvdXBRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVEQlByb3h5Q29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZURCUHJveHkoXG4gICAgYXJnczogQ3JlYXRlREJQcm94eUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZURCUHJveHlDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCUHJveHlBbHJlYWR5RXhpc3RzRmF1bHRFcnJvclxuICAgIHwgREJQcm94eVF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkU3VibmV0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlREJQcm94eUVuZHBvaW50Q29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZURCUHJveHlFbmRwb2ludChcbiAgICBhcmdzOiBDcmVhdGVEQlByb3h5RW5kcG9pbnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVEQlByb3h5RW5kcG9pbnRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCUHJveHlFbmRwb2ludEFscmVhZHlFeGlzdHNGYXVsdEVycm9yXG4gICAgfCBEQlByb3h5RW5kcG9pbnRRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgREJQcm94eU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCUHJveHlTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRTdWJuZXRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVEQlNlY3VyaXR5R3JvdXBDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlREJTZWN1cml0eUdyb3VwKFxuICAgIGFyZ3M6IENyZWF0ZURCU2VjdXJpdHlHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZURCU2VjdXJpdHlHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgREJTZWN1cml0eUdyb3VwQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IERCU2VjdXJpdHlHcm91cE5vdFN1cHBvcnRlZEZhdWx0RXJyb3JcbiAgICB8IERCU2VjdXJpdHlHcm91cFF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZURCU2hhcmRHcm91cENvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVEQlNoYXJkR3JvdXAoXG4gICAgYXJnczogQ3JlYXRlREJTaGFyZEdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlREJTaGFyZEdyb3VwQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQkNsdXN0ZXJOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCU2hhcmRHcm91cEFscmVhZHlFeGlzdHNGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJDbHVzdGVyU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkVlBDTmV0d29ya1N0YXRlRmF1bHRFcnJvclxuICAgIHwgTWF4REJTaGFyZEdyb3VwTGltaXRSZWFjaGVkRXJyb3JcbiAgICB8IE5ldHdvcmtUeXBlTm90U3VwcG9ydGVkRXJyb3JcbiAgICB8IFVuc3VwcG9ydGVkREJFbmdpbmVWZXJzaW9uRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVEQlNuYXBzaG90Q29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZURCU25hcHNob3QoXG4gICAgYXJnczogQ3JlYXRlREJTbmFwc2hvdENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZURCU25hcHNob3RDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCSW5zdGFuY2VOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCU25hcHNob3RBbHJlYWR5RXhpc3RzRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCSW5zdGFuY2VTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IFNuYXBzaG90UXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlREJTdWJuZXRHcm91cENvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVEQlN1Ym5ldEdyb3VwKFxuICAgIGFyZ3M6IENyZWF0ZURCU3VibmV0R3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVEQlN1Ym5ldEdyb3VwQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQlN1Ym5ldEdyb3VwQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IERCU3VibmV0R3JvdXBEb2VzTm90Q292ZXJFbm91Z2hBWnNFcnJvclxuICAgIHwgREJTdWJuZXRHcm91cFF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBEQlN1Ym5ldFF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkU3VibmV0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlRXZlbnRTdWJzY3JpcHRpb25Db21tYW5kfVxuICAgKi9cbiAgY3JlYXRlRXZlbnRTdWJzY3JpcHRpb24oXG4gICAgYXJnczogQ3JlYXRlRXZlbnRTdWJzY3JpcHRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVFdmVudFN1YnNjcmlwdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRXZlbnRTdWJzY3JpcHRpb25RdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgU05TSW52YWxpZFRvcGljRmF1bHRFcnJvclxuICAgIHwgU05TTm9BdXRob3JpemF0aW9uRmF1bHRFcnJvclxuICAgIHwgU05TVG9waWNBcm5Ob3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFNvdXJjZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgU3Vic2NyaXB0aW9uQWxyZWFkeUV4aXN0RmF1bHRFcnJvclxuICAgIHwgU3Vic2NyaXB0aW9uQ2F0ZWdvcnlOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlR2xvYmFsQ2x1c3RlckNvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVHbG9iYWxDbHVzdGVyKFxuICAgIGFyZ3M6IENyZWF0ZUdsb2JhbENsdXN0ZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVHbG9iYWxDbHVzdGVyQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQkNsdXN0ZXJOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEdsb2JhbENsdXN0ZXJBbHJlYWR5RXhpc3RzRmF1bHRFcnJvclxuICAgIHwgR2xvYmFsQ2x1c3RlclF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJDbHVzdGVyU3RhdGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUludGVncmF0aW9uQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUludGVncmF0aW9uKFxuICAgIGFyZ3M6IENyZWF0ZUludGVncmF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlSW50ZWdyYXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJJbnN0YW5jZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW50ZWdyYXRpb25BbHJlYWR5RXhpc3RzRmF1bHRFcnJvclxuICAgIHwgSW50ZWdyYXRpb25Db25mbGljdE9wZXJhdGlvbkZhdWx0RXJyb3JcbiAgICB8IEludGVncmF0aW9uUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IEtNU0tleU5vdEFjY2Vzc2libGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZU9wdGlvbkdyb3VwQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZU9wdGlvbkdyb3VwKFxuICAgIGFyZ3M6IENyZWF0ZU9wdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlT3B0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IE9wdGlvbkdyb3VwQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IE9wdGlvbkdyb3VwUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlVGVuYW50RGF0YWJhc2VDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlVGVuYW50RGF0YWJhc2UoXG4gICAgYXJnczogQ3JlYXRlVGVuYW50RGF0YWJhc2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVUZW5hbnREYXRhYmFzZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgREJJbnN0YW5jZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCSW5zdGFuY2VTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IFRlbmFudERhdGFiYXNlQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IFRlbmFudERhdGFiYXNlUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlQmx1ZUdyZWVuRGVwbG95bWVudENvbW1hbmR9XG4gICAqL1xuICBkZWxldGVCbHVlR3JlZW5EZXBsb3ltZW50KFxuICAgIGFyZ3M6IERlbGV0ZUJsdWVHcmVlbkRlcGxveW1lbnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVCbHVlR3JlZW5EZXBsb3ltZW50Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCbHVlR3JlZW5EZXBsb3ltZW50Tm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkQmx1ZUdyZWVuRGVwbG95bWVudFN0YXRlRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVDdXN0b21EQkVuZ2luZVZlcnNpb25Db21tYW5kfVxuICAgKi9cbiAgZGVsZXRlQ3VzdG9tREJFbmdpbmVWZXJzaW9uKFxuICAgIGFyZ3M6IERlbGV0ZUN1c3RvbURCRW5naW5lVmVyc2lvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUN1c3RvbURCRW5naW5lVmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ3VzdG9tREJFbmdpbmVWZXJzaW9uTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkQ3VzdG9tREJFbmdpbmVWZXJzaW9uU3RhdGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZURCQ2x1c3RlckNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVEQkNsdXN0ZXIoXG4gICAgYXJnczogRGVsZXRlREJDbHVzdGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlREJDbHVzdGVyQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQkNsdXN0ZXJBdXRvbWF0ZWRCYWNrdXBRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgREJDbHVzdGVyTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQkNsdXN0ZXJTbmFwc2hvdEFscmVhZHlFeGlzdHNGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJDbHVzdGVyU25hcHNob3RTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkNsdXN0ZXJTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IFNuYXBzaG90UXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlREJDbHVzdGVyQXV0b21hdGVkQmFja3VwQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZURCQ2x1c3RlckF1dG9tYXRlZEJhY2t1cChcbiAgICBhcmdzOiBEZWxldGVEQkNsdXN0ZXJBdXRvbWF0ZWRCYWNrdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVEQkNsdXN0ZXJBdXRvbWF0ZWRCYWNrdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCQ2x1c3RlckF1dG9tYXRlZEJhY2t1cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCQ2x1c3RlckF1dG9tYXRlZEJhY2t1cFN0YXRlRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVEQkNsdXN0ZXJFbmRwb2ludENvbW1hbmR9XG4gICAqL1xuICBkZWxldGVEQkNsdXN0ZXJFbmRwb2ludChcbiAgICBhcmdzOiBEZWxldGVEQkNsdXN0ZXJFbmRwb2ludENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZURCQ2x1c3RlckVuZHBvaW50Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQkNsdXN0ZXJFbmRwb2ludE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCQ2x1c3RlckVuZHBvaW50U3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJDbHVzdGVyU3RhdGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZURCQ2x1c3RlclBhcmFtZXRlckdyb3VwQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZURCQ2x1c3RlclBhcmFtZXRlckdyb3VwKFxuICAgIGFyZ3M6IERlbGV0ZURCQ2x1c3RlclBhcmFtZXRlckdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlREJDbHVzdGVyUGFyYW1ldGVyR3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCUGFyYW1ldGVyR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQlBhcmFtZXRlckdyb3VwU3RhdGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZURCQ2x1c3RlclNuYXBzaG90Q29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZURCQ2x1c3RlclNuYXBzaG90KFxuICAgIGFyZ3M6IERlbGV0ZURCQ2x1c3RlclNuYXBzaG90Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlREJDbHVzdGVyU25hcHNob3RDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCQ2x1c3RlclNuYXBzaG90Tm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJDbHVzdGVyU25hcHNob3RTdGF0ZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlREJJbnN0YW5jZUNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVEQkluc3RhbmNlKFxuICAgIGFyZ3M6IERlbGV0ZURCSW5zdGFuY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVEQkluc3RhbmNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQkluc3RhbmNlQXV0b21hdGVkQmFja3VwUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IERCSW5zdGFuY2VOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCU25hcHNob3RBbHJlYWR5RXhpc3RzRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCQ2x1c3RlclN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCSW5zdGFuY2VTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IFNuYXBzaG90UXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlREJJbnN0YW5jZUF1dG9tYXRlZEJhY2t1cENvbW1hbmR9XG4gICAqL1xuICBkZWxldGVEQkluc3RhbmNlQXV0b21hdGVkQmFja3VwKFxuICAgIGFyZ3M6IERlbGV0ZURCSW5zdGFuY2VBdXRvbWF0ZWRCYWNrdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVEQkluc3RhbmNlQXV0b21hdGVkQmFja3VwQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQkluc3RhbmNlQXV0b21hdGVkQmFja3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJJbnN0YW5jZUF1dG9tYXRlZEJhY2t1cFN0YXRlRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVEQlBhcmFtZXRlckdyb3VwQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZURCUGFyYW1ldGVyR3JvdXAoXG4gICAgYXJnczogRGVsZXRlREJQYXJhbWV0ZXJHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZURCUGFyYW1ldGVyR3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCUGFyYW1ldGVyR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQlBhcmFtZXRlckdyb3VwU3RhdGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZURCUHJveHlDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlREJQcm94eShcbiAgICBhcmdzOiBEZWxldGVEQlByb3h5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlREJQcm94eUNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBEQlByb3h5Tm90Rm91bmRGYXVsdEVycm9yIHwgSW52YWxpZERCUHJveHlTdGF0ZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlREJQcm94eUVuZHBvaW50Q29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZURCUHJveHlFbmRwb2ludChcbiAgICBhcmdzOiBEZWxldGVEQlByb3h5RW5kcG9pbnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVEQlByb3h5RW5kcG9pbnRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCUHJveHlFbmRwb2ludE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCUHJveHlFbmRwb2ludFN0YXRlRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVEQlNlY3VyaXR5R3JvdXBDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlREJTZWN1cml0eUdyb3VwKFxuICAgIGFyZ3M6IERlbGV0ZURCU2VjdXJpdHlHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZURCU2VjdXJpdHlHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgREJTZWN1cml0eUdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJTZWN1cml0eUdyb3VwU3RhdGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZURCU2hhcmRHcm91cENvbW1hbmR9XG4gICAqL1xuICBkZWxldGVEQlNoYXJkR3JvdXAoXG4gICAgYXJnczogRGVsZXRlREJTaGFyZEdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlREJTaGFyZEdyb3VwQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQlNoYXJkR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkNsdXN0ZXJTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQlNoYXJkR3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlREJTbmFwc2hvdENvbW1hbmR9XG4gICAqL1xuICBkZWxldGVEQlNuYXBzaG90KFxuICAgIGFyZ3M6IERlbGV0ZURCU25hcHNob3RDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVEQlNuYXBzaG90Q29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IERCU25hcHNob3ROb3RGb3VuZEZhdWx0RXJyb3IgfCBJbnZhbGlkREJTbmFwc2hvdFN0YXRlRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVEQlN1Ym5ldEdyb3VwQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZURCU3VibmV0R3JvdXAoXG4gICAgYXJnczogRGVsZXRlREJTdWJuZXRHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZURCU3VibmV0R3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCU3VibmV0R3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQlN1Ym5ldEdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJTdWJuZXRTdGF0ZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlRXZlbnRTdWJzY3JpcHRpb25Db21tYW5kfVxuICAgKi9cbiAgZGVsZXRlRXZlbnRTdWJzY3JpcHRpb24oXG4gICAgYXJnczogRGVsZXRlRXZlbnRTdWJzY3JpcHRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVFdmVudFN1YnNjcmlwdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZEV2ZW50U3Vic2NyaXB0aW9uU3RhdGVGYXVsdEVycm9yXG4gICAgfCBTdWJzY3JpcHRpb25Ob3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlR2xvYmFsQ2x1c3RlckNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVHbG9iYWxDbHVzdGVyKFxuICAgIGFyZ3M6IERlbGV0ZUdsb2JhbENsdXN0ZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVHbG9iYWxDbHVzdGVyQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBHbG9iYWxDbHVzdGVyTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkR2xvYmFsQ2x1c3RlclN0YXRlRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVJbnRlZ3JhdGlvbkNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVJbnRlZ3JhdGlvbihcbiAgICBhcmdzOiBEZWxldGVJbnRlZ3JhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUludGVncmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnRlZ3JhdGlvbkNvbmZsaWN0T3BlcmF0aW9uRmF1bHRFcnJvclxuICAgIHwgSW50ZWdyYXRpb25Ob3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRJbnRlZ3JhdGlvblN0YXRlRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVPcHRpb25Hcm91cENvbW1hbmR9XG4gICAqL1xuICBkZWxldGVPcHRpb25Hcm91cChcbiAgICBhcmdzOiBEZWxldGVPcHRpb25Hcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZU9wdGlvbkdyb3VwQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEludmFsaWRPcHRpb25Hcm91cFN0YXRlRmF1bHRFcnJvciB8IE9wdGlvbkdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVRlbmFudERhdGFiYXNlQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZVRlbmFudERhdGFiYXNlKFxuICAgIGFyZ3M6IERlbGV0ZVRlbmFudERhdGFiYXNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlVGVuYW50RGF0YWJhc2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCSW5zdGFuY2VOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkluc3RhbmNlU3RhdGVGYXVsdEVycm9yXG4gICAgfCBUZW5hbnREYXRhYmFzZU5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXJlZ2lzdGVyREJQcm94eVRhcmdldHNDb21tYW5kfVxuICAgKi9cbiAgZGVyZWdpc3RlckRCUHJveHlUYXJnZXRzKFxuICAgIGFyZ3M6IERlcmVnaXN0ZXJEQlByb3h5VGFyZ2V0c0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlcmVnaXN0ZXJEQlByb3h5VGFyZ2V0c0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgREJQcm94eU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJQcm94eVRhcmdldEdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQlByb3h5VGFyZ2V0Tm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJQcm94eVN0YXRlRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZUFjY291bnRBdHRyaWJ1dGVzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlQWNjb3VudEF0dHJpYnV0ZXMoXG4gICAgYXJnczogRGVzY3JpYmVBY2NvdW50QXR0cmlidXRlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PERlc2NyaWJlQWNjb3VudEF0dHJpYnV0ZXNDb21tYW5kT3V0cHV0LCBTZGtFcnJvcj47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlQmx1ZUdyZWVuRGVwbG95bWVudHNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVCbHVlR3JlZW5EZXBsb3ltZW50cyhcbiAgICBhcmdzOiBEZXNjcmliZUJsdWVHcmVlbkRlcGxveW1lbnRzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVCbHVlR3JlZW5EZXBsb3ltZW50c0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBCbHVlR3JlZW5EZXBsb3ltZW50Tm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlQ2VydGlmaWNhdGVzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlQ2VydGlmaWNhdGVzKFxuICAgIGFyZ3M6IERlc2NyaWJlQ2VydGlmaWNhdGVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVDZXJ0aWZpY2F0ZXNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgQ2VydGlmaWNhdGVOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVEQkNsdXN0ZXJBdXRvbWF0ZWRCYWNrdXBzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlREJDbHVzdGVyQXV0b21hdGVkQmFja3VwcyhcbiAgICBhcmdzOiBEZXNjcmliZURCQ2x1c3RlckF1dG9tYXRlZEJhY2t1cHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZURCQ2x1c3RlckF1dG9tYXRlZEJhY2t1cHNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgREJDbHVzdGVyQXV0b21hdGVkQmFja3VwTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlREJDbHVzdGVyQmFja3RyYWNrc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZURCQ2x1c3RlckJhY2t0cmFja3MoXG4gICAgYXJnczogRGVzY3JpYmVEQkNsdXN0ZXJCYWNrdHJhY2tzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVEQkNsdXN0ZXJCYWNrdHJhY2tzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQkNsdXN0ZXJCYWNrdHJhY2tOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZURCQ2x1c3RlckVuZHBvaW50c0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZURCQ2x1c3RlckVuZHBvaW50cyhcbiAgICBhcmdzOiBEZXNjcmliZURCQ2x1c3RlckVuZHBvaW50c0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlREJDbHVzdGVyRW5kcG9pbnRzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IERCQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZURCQ2x1c3RlclBhcmFtZXRlckdyb3Vwc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZURCQ2x1c3RlclBhcmFtZXRlckdyb3VwcyhcbiAgICBhcmdzOiBEZXNjcmliZURCQ2x1c3RlclBhcmFtZXRlckdyb3Vwc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlREJDbHVzdGVyUGFyYW1ldGVyR3JvdXBzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IERCUGFyYW1ldGVyR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVEQkNsdXN0ZXJQYXJhbWV0ZXJzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlREJDbHVzdGVyUGFyYW1ldGVycyhcbiAgICBhcmdzOiBEZXNjcmliZURCQ2x1c3RlclBhcmFtZXRlcnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZURCQ2x1c3RlclBhcmFtZXRlcnNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgREJQYXJhbWV0ZXJHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZURCQ2x1c3RlclNuYXBzaG90QXR0cmlidXRlc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZURCQ2x1c3RlclNuYXBzaG90QXR0cmlidXRlcyhcbiAgICBhcmdzOiBEZXNjcmliZURCQ2x1c3RlclNuYXBzaG90QXR0cmlidXRlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlREJDbHVzdGVyU25hcHNob3RBdHRyaWJ1dGVzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IERCQ2x1c3RlclNuYXBzaG90Tm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlREJDbHVzdGVyU25hcHNob3RzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlREJDbHVzdGVyU25hcHNob3RzKFxuICAgIGFyZ3M6IERlc2NyaWJlREJDbHVzdGVyU25hcHNob3RzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVEQkNsdXN0ZXJTbmFwc2hvdHNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgREJDbHVzdGVyU25hcHNob3ROb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVEQkNsdXN0ZXJzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlREJDbHVzdGVycyhcbiAgICBhcmdzOiBEZXNjcmliZURCQ2x1c3RlcnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZURCQ2x1c3RlcnNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgREJDbHVzdGVyTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlREJFbmdpbmVWZXJzaW9uc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZURCRW5naW5lVmVyc2lvbnMoXG4gICAgYXJnczogRGVzY3JpYmVEQkVuZ2luZVZlcnNpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8RGVzY3JpYmVEQkVuZ2luZVZlcnNpb25zQ29tbWFuZE91dHB1dCwgU2RrRXJyb3I+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZURCSW5zdGFuY2VBdXRvbWF0ZWRCYWNrdXBzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlREJJbnN0YW5jZUF1dG9tYXRlZEJhY2t1cHMoXG4gICAgYXJnczogRGVzY3JpYmVEQkluc3RhbmNlQXV0b21hdGVkQmFja3Vwc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlREJJbnN0YW5jZUF1dG9tYXRlZEJhY2t1cHNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgREJJbnN0YW5jZUF1dG9tYXRlZEJhY2t1cE5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZURCSW5zdGFuY2VzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlREJJbnN0YW5jZXMoXG4gICAgYXJnczogRGVzY3JpYmVEQkluc3RhbmNlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlREJJbnN0YW5jZXNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgREJJbnN0YW5jZU5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZURCTG9nRmlsZXNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVEQkxvZ0ZpbGVzKFxuICAgIGFyZ3M6IERlc2NyaWJlREJMb2dGaWxlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlREJMb2dGaWxlc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBEQkluc3RhbmNlTm90Rm91bmRGYXVsdEVycm9yIHwgREJJbnN0YW5jZU5vdFJlYWR5RmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZURCUGFyYW1ldGVyR3JvdXBzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlREJQYXJhbWV0ZXJHcm91cHMoXG4gICAgYXJnczogRGVzY3JpYmVEQlBhcmFtZXRlckdyb3Vwc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlREJQYXJhbWV0ZXJHcm91cHNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgREJQYXJhbWV0ZXJHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZURCUGFyYW1ldGVyc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZURCUGFyYW1ldGVycyhcbiAgICBhcmdzOiBEZXNjcmliZURCUGFyYW1ldGVyc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlREJQYXJhbWV0ZXJzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IERCUGFyYW1ldGVyR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVEQlByb3hpZXNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVEQlByb3hpZXMoXG4gICAgYXJnczogRGVzY3JpYmVEQlByb3hpZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZURCUHJveGllc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBEQlByb3h5Tm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlREJQcm94eUVuZHBvaW50c0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZURCUHJveHlFbmRwb2ludHMoXG4gICAgYXJnczogRGVzY3JpYmVEQlByb3h5RW5kcG9pbnRzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVEQlByb3h5RW5kcG9pbnRzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IERCUHJveHlFbmRwb2ludE5vdEZvdW5kRmF1bHRFcnJvciB8IERCUHJveHlOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVEQlByb3h5VGFyZ2V0R3JvdXBzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlREJQcm94eVRhcmdldEdyb3VwcyhcbiAgICBhcmdzOiBEZXNjcmliZURCUHJveHlUYXJnZXRHcm91cHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZURCUHJveHlUYXJnZXRHcm91cHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCUHJveHlOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCUHJveHlUYXJnZXRHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCUHJveHlTdGF0ZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVEQlByb3h5VGFyZ2V0c0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZURCUHJveHlUYXJnZXRzKFxuICAgIGFyZ3M6IERlc2NyaWJlREJQcm94eVRhcmdldHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZURCUHJveHlUYXJnZXRzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQlByb3h5Tm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQlByb3h5VGFyZ2V0R3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCUHJveHlUYXJnZXROb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQlByb3h5U3RhdGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlREJSZWNvbW1lbmRhdGlvbnNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVEQlJlY29tbWVuZGF0aW9ucyhcbiAgICBhcmdzOiBEZXNjcmliZURCUmVjb21tZW5kYXRpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8RGVzY3JpYmVEQlJlY29tbWVuZGF0aW9uc0NvbW1hbmRPdXRwdXQsIFNka0Vycm9yPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVEQlNlY3VyaXR5R3JvdXBzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlREJTZWN1cml0eUdyb3VwcyhcbiAgICBhcmdzOiBEZXNjcmliZURCU2VjdXJpdHlHcm91cHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZURCU2VjdXJpdHlHcm91cHNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgREJTZWN1cml0eUdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlREJTaGFyZEdyb3Vwc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZURCU2hhcmRHcm91cHMoXG4gICAgYXJnczogRGVzY3JpYmVEQlNoYXJkR3JvdXBzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVEQlNoYXJkR3JvdXBzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IERCQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvciB8IERCU2hhcmRHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZURCU25hcHNob3RBdHRyaWJ1dGVzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlREJTbmFwc2hvdEF0dHJpYnV0ZXMoXG4gICAgYXJnczogRGVzY3JpYmVEQlNuYXBzaG90QXR0cmlidXRlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlREJTbmFwc2hvdEF0dHJpYnV0ZXNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgREJTbmFwc2hvdE5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZURCU25hcHNob3RUZW5hbnREYXRhYmFzZXNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVEQlNuYXBzaG90VGVuYW50RGF0YWJhc2VzKFxuICAgIGFyZ3M6IERlc2NyaWJlREJTbmFwc2hvdFRlbmFudERhdGFiYXNlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlREJTbmFwc2hvdFRlbmFudERhdGFiYXNlc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBEQlNuYXBzaG90Tm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlREJTbmFwc2hvdHNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVEQlNuYXBzaG90cyhcbiAgICBhcmdzOiBEZXNjcmliZURCU25hcHNob3RzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVEQlNuYXBzaG90c0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBEQlNuYXBzaG90Tm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlREJTdWJuZXRHcm91cHNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVEQlN1Ym5ldEdyb3VwcyhcbiAgICBhcmdzOiBEZXNjcmliZURCU3VibmV0R3JvdXBzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVEQlN1Ym5ldEdyb3Vwc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBEQlN1Ym5ldEdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlRW5naW5lRGVmYXVsdENsdXN0ZXJQYXJhbWV0ZXJzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlRW5naW5lRGVmYXVsdENsdXN0ZXJQYXJhbWV0ZXJzKFxuICAgIGFyZ3M6IERlc2NyaWJlRW5naW5lRGVmYXVsdENsdXN0ZXJQYXJhbWV0ZXJzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVFbmdpbmVEZWZhdWx0Q2x1c3RlclBhcmFtZXRlcnNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlRW5naW5lRGVmYXVsdFBhcmFtZXRlcnNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVFbmdpbmVEZWZhdWx0UGFyYW1ldGVycyhcbiAgICBhcmdzOiBEZXNjcmliZUVuZ2luZURlZmF1bHRQYXJhbWV0ZXJzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8RGVzY3JpYmVFbmdpbmVEZWZhdWx0UGFyYW1ldGVyc0NvbW1hbmRPdXRwdXQsIFNka0Vycm9yPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVFdmVudENhdGVnb3JpZXNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVFdmVudENhdGVnb3JpZXMoXG4gICAgYXJnczogRGVzY3JpYmVFdmVudENhdGVnb3JpZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxEZXNjcmliZUV2ZW50Q2F0ZWdvcmllc0NvbW1hbmRPdXRwdXQsIFNka0Vycm9yPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVFdmVudFN1YnNjcmlwdGlvbnNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVFdmVudFN1YnNjcmlwdGlvbnMoXG4gICAgYXJnczogRGVzY3JpYmVFdmVudFN1YnNjcmlwdGlvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZUV2ZW50U3Vic2NyaXB0aW9uc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBTdWJzY3JpcHRpb25Ob3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVFdmVudHNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVFdmVudHMoXG4gICAgYXJnczogRGVzY3JpYmVFdmVudHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxEZXNjcmliZUV2ZW50c0NvbW1hbmRPdXRwdXQsIFNka0Vycm9yPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVFeHBvcnRUYXNrc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZUV4cG9ydFRhc2tzKFxuICAgIGFyZ3M6IERlc2NyaWJlRXhwb3J0VGFza3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZUV4cG9ydFRhc2tzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEV4cG9ydFRhc2tOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVHbG9iYWxDbHVzdGVyc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZUdsb2JhbENsdXN0ZXJzKFxuICAgIGFyZ3M6IERlc2NyaWJlR2xvYmFsQ2x1c3RlcnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZUdsb2JhbENsdXN0ZXJzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEdsb2JhbENsdXN0ZXJOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVJbnRlZ3JhdGlvbnNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVJbnRlZ3JhdGlvbnMoXG4gICAgYXJnczogRGVzY3JpYmVJbnRlZ3JhdGlvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZUludGVncmF0aW9uc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnRlZ3JhdGlvbk5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZU9wdGlvbkdyb3VwT3B0aW9uc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZU9wdGlvbkdyb3VwT3B0aW9ucyhcbiAgICBhcmdzOiBEZXNjcmliZU9wdGlvbkdyb3VwT3B0aW9uc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PERlc2NyaWJlT3B0aW9uR3JvdXBPcHRpb25zQ29tbWFuZE91dHB1dCwgU2RrRXJyb3I+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZU9wdGlvbkdyb3Vwc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZU9wdGlvbkdyb3VwcyhcbiAgICBhcmdzOiBEZXNjcmliZU9wdGlvbkdyb3Vwc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlT3B0aW9uR3JvdXBzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IE9wdGlvbkdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlT3JkZXJhYmxlREJJbnN0YW5jZU9wdGlvbnNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVPcmRlcmFibGVEQkluc3RhbmNlT3B0aW9ucyhcbiAgICBhcmdzOiBEZXNjcmliZU9yZGVyYWJsZURCSW5zdGFuY2VPcHRpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8RGVzY3JpYmVPcmRlcmFibGVEQkluc3RhbmNlT3B0aW9uc0NvbW1hbmRPdXRwdXQsIFNka0Vycm9yPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVQZW5kaW5nTWFpbnRlbmFuY2VBY3Rpb25zQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlUGVuZGluZ01haW50ZW5hbmNlQWN0aW9ucyhcbiAgICBhcmdzOiBEZXNjcmliZVBlbmRpbmdNYWludGVuYW5jZUFjdGlvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZVBlbmRpbmdNYWludGVuYW5jZUFjdGlvbnNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgUmVzb3VyY2VOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVSZXNlcnZlZERCSW5zdGFuY2VzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlUmVzZXJ2ZWREQkluc3RhbmNlcyhcbiAgICBhcmdzOiBEZXNjcmliZVJlc2VydmVkREJJbnN0YW5jZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZVJlc2VydmVkREJJbnN0YW5jZXNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgUmVzZXJ2ZWREQkluc3RhbmNlTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlUmVzZXJ2ZWREQkluc3RhbmNlc09mZmVyaW5nc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZVJlc2VydmVkREJJbnN0YW5jZXNPZmZlcmluZ3MoXG4gICAgYXJnczogRGVzY3JpYmVSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IFJlc2VydmVkREJJbnN0YW5jZXNPZmZlcmluZ05vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZVNvdXJjZVJlZ2lvbnNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVTb3VyY2VSZWdpb25zKFxuICAgIGFyZ3M6IERlc2NyaWJlU291cmNlUmVnaW9uc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PERlc2NyaWJlU291cmNlUmVnaW9uc0NvbW1hbmRPdXRwdXQsIFNka0Vycm9yPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVUZW5hbnREYXRhYmFzZXNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVUZW5hbnREYXRhYmFzZXMoXG4gICAgYXJnczogRGVzY3JpYmVUZW5hbnREYXRhYmFzZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZVRlbmFudERhdGFiYXNlc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBEQkluc3RhbmNlTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlVmFsaWREQkluc3RhbmNlTW9kaWZpY2F0aW9uc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZVZhbGlkREJJbnN0YW5jZU1vZGlmaWNhdGlvbnMoXG4gICAgYXJnczogRGVzY3JpYmVWYWxpZERCSW5zdGFuY2VNb2RpZmljYXRpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVWYWxpZERCSW5zdGFuY2VNb2RpZmljYXRpb25zQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IERCSW5zdGFuY2VOb3RGb3VuZEZhdWx0RXJyb3IgfCBJbnZhbGlkREJJbnN0YW5jZVN0YXRlRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEaXNhYmxlSHR0cEVuZHBvaW50Q29tbWFuZH1cbiAgICovXG4gIGRpc2FibGVIdHRwRW5kcG9pbnQoXG4gICAgYXJnczogRGlzYWJsZUh0dHBFbmRwb2ludENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERpc2FibGVIdHRwRW5kcG9pbnRDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZFJlc291cmNlU3RhdGVGYXVsdEVycm9yIHwgUmVzb3VyY2VOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRG93bmxvYWREQkxvZ0ZpbGVQb3J0aW9uQ29tbWFuZH1cbiAgICovXG4gIGRvd25sb2FkREJMb2dGaWxlUG9ydGlvbihcbiAgICBhcmdzOiBEb3dubG9hZERCTG9nRmlsZVBvcnRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEb3dubG9hZERCTG9nRmlsZVBvcnRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCSW5zdGFuY2VOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCSW5zdGFuY2VOb3RSZWFkeUZhdWx0RXJyb3JcbiAgICB8IERCTG9nRmlsZU5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBFbmFibGVIdHRwRW5kcG9pbnRDb21tYW5kfVxuICAgKi9cbiAgZW5hYmxlSHR0cEVuZHBvaW50KFxuICAgIGFyZ3M6IEVuYWJsZUh0dHBFbmRwb2ludENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEVuYWJsZUh0dHBFbmRwb2ludENvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkUmVzb3VyY2VTdGF0ZUZhdWx0RXJyb3IgfCBSZXNvdXJjZU5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBGYWlsb3ZlckRCQ2x1c3RlckNvbW1hbmR9XG4gICAqL1xuICBmYWlsb3ZlckRCQ2x1c3RlcihcbiAgICBhcmdzOiBGYWlsb3ZlckRCQ2x1c3RlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEZhaWxvdmVyREJDbHVzdGVyQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQkNsdXN0ZXJOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkNsdXN0ZXJTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkluc3RhbmNlU3RhdGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEZhaWxvdmVyR2xvYmFsQ2x1c3RlckNvbW1hbmR9XG4gICAqL1xuICBmYWlsb3Zlckdsb2JhbENsdXN0ZXIoXG4gICAgYXJnczogRmFpbG92ZXJHbG9iYWxDbHVzdGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRmFpbG92ZXJHbG9iYWxDbHVzdGVyQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQkNsdXN0ZXJOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEdsb2JhbENsdXN0ZXJOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkNsdXN0ZXJTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRHbG9iYWxDbHVzdGVyU3RhdGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgbGlzdFRhZ3NGb3JSZXNvdXJjZShcbiAgICBhcmdzOiBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmx1ZUdyZWVuRGVwbG95bWVudE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJDbHVzdGVyTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQkluc3RhbmNlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQlByb3h5Tm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQlByb3h5VGFyZ2V0R3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCU25hcHNob3ROb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCU25hcHNob3RUZW5hbnREYXRhYmFzZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW50ZWdyYXRpb25Ob3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFRlbmFudERhdGFiYXNlTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIE1vZGlmeUFjdGl2aXR5U3RyZWFtQ29tbWFuZH1cbiAgICovXG4gIG1vZGlmeUFjdGl2aXR5U3RyZWFtKFxuICAgIGFyZ3M6IE1vZGlmeUFjdGl2aXR5U3RyZWFtQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTW9kaWZ5QWN0aXZpdHlTdHJlYW1Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCSW5zdGFuY2VOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkluc3RhbmNlU3RhdGVGYXVsdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBNb2RpZnlDZXJ0aWZpY2F0ZXNDb21tYW5kfVxuICAgKi9cbiAgbW9kaWZ5Q2VydGlmaWNhdGVzKFxuICAgIGFyZ3M6IE1vZGlmeUNlcnRpZmljYXRlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIE1vZGlmeUNlcnRpZmljYXRlc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBDZXJ0aWZpY2F0ZU5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBNb2RpZnlDdXJyZW50REJDbHVzdGVyQ2FwYWNpdHlDb21tYW5kfVxuICAgKi9cbiAgbW9kaWZ5Q3VycmVudERCQ2x1c3RlckNhcGFjaXR5KFxuICAgIGFyZ3M6IE1vZGlmeUN1cnJlbnREQkNsdXN0ZXJDYXBhY2l0eUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIE1vZGlmeUN1cnJlbnREQkNsdXN0ZXJDYXBhY2l0eUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgREJDbHVzdGVyTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJDbHVzdGVyQ2FwYWNpdHlGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJDbHVzdGVyU3RhdGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIE1vZGlmeUN1c3RvbURCRW5naW5lVmVyc2lvbkNvbW1hbmR9XG4gICAqL1xuICBtb2RpZnlDdXN0b21EQkVuZ2luZVZlcnNpb24oXG4gICAgYXJnczogTW9kaWZ5Q3VzdG9tREJFbmdpbmVWZXJzaW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTW9kaWZ5Q3VzdG9tREJFbmdpbmVWZXJzaW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDdXN0b21EQkVuZ2luZVZlcnNpb25Ob3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRDdXN0b21EQkVuZ2luZVZlcnNpb25TdGF0ZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTW9kaWZ5REJDbHVzdGVyQ29tbWFuZH1cbiAgICovXG4gIG1vZGlmeURCQ2x1c3RlcihcbiAgICBhcmdzOiBNb2RpZnlEQkNsdXN0ZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBNb2RpZnlEQkNsdXN0ZXJDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCQ2x1c3RlckFscmVhZHlFeGlzdHNGYXVsdEVycm9yXG4gICAgfCBEQkNsdXN0ZXJOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCQ2x1c3RlclBhcmFtZXRlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQkluc3RhbmNlQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IERCU3VibmV0R3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERvbWFpbk5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCQ2x1c3RlclN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCSW5zdGFuY2VTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQlNlY3VyaXR5R3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQlN1Ym5ldEdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkU3VibmV0RXJyb3JcbiAgICB8IEludmFsaWRWUENOZXR3b3JrU3RhdGVGYXVsdEVycm9yXG4gICAgfCBPcHRpb25Hcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgU3RvcmFnZVF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBTdG9yYWdlVHlwZU5vdEF2YWlsYWJsZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTW9kaWZ5REJDbHVzdGVyRW5kcG9pbnRDb21tYW5kfVxuICAgKi9cbiAgbW9kaWZ5REJDbHVzdGVyRW5kcG9pbnQoXG4gICAgYXJnczogTW9kaWZ5REJDbHVzdGVyRW5kcG9pbnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBNb2RpZnlEQkNsdXN0ZXJFbmRwb2ludENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgREJDbHVzdGVyRW5kcG9pbnROb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCSW5zdGFuY2VOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkNsdXN0ZXJFbmRwb2ludFN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCQ2x1c3RlclN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCSW5zdGFuY2VTdGF0ZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTW9kaWZ5REJDbHVzdGVyUGFyYW1ldGVyR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgbW9kaWZ5REJDbHVzdGVyUGFyYW1ldGVyR3JvdXAoXG4gICAgYXJnczogTW9kaWZ5REJDbHVzdGVyUGFyYW1ldGVyR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBNb2RpZnlEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgREJQYXJhbWV0ZXJHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCUGFyYW1ldGVyR3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTW9kaWZ5REJDbHVzdGVyU25hcHNob3RBdHRyaWJ1dGVDb21tYW5kfVxuICAgKi9cbiAgbW9kaWZ5REJDbHVzdGVyU25hcHNob3RBdHRyaWJ1dGUoXG4gICAgYXJnczogTW9kaWZ5REJDbHVzdGVyU25hcHNob3RBdHRyaWJ1dGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBNb2RpZnlEQkNsdXN0ZXJTbmFwc2hvdEF0dHJpYnV0ZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgREJDbHVzdGVyU25hcHNob3ROb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkNsdXN0ZXJTbmFwc2hvdFN0YXRlRmF1bHRFcnJvclxuICAgIHwgU2hhcmVkU25hcHNob3RRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBNb2RpZnlEQkluc3RhbmNlQ29tbWFuZH1cbiAgICovXG4gIG1vZGlmeURCSW5zdGFuY2UoXG4gICAgYXJnczogTW9kaWZ5REJJbnN0YW5jZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIE1vZGlmeURCSW5zdGFuY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEF1dGhvcml6YXRpb25Ob3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEJhY2t1cFBvbGljeU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgQ2VydGlmaWNhdGVOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCSW5zdGFuY2VBbHJlYWR5RXhpc3RzRmF1bHRFcnJvclxuICAgIHwgREJJbnN0YW5jZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJQYXJhbWV0ZXJHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJTZWN1cml0eUdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQlVwZ3JhZGVEZXBlbmRlbmN5RmFpbHVyZUZhdWx0RXJyb3JcbiAgICB8IERvbWFpbk5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW5zdWZmaWNpZW50REJJbnN0YW5jZUNhcGFjaXR5RmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCQ2x1c3RlclN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCSW5zdGFuY2VTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQlNlY3VyaXR5R3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRWUENOZXR3b3JrU3RhdGVGYXVsdEVycm9yXG4gICAgfCBLTVNLZXlOb3RBY2Nlc3NpYmxlRmF1bHRFcnJvclxuICAgIHwgTmV0d29ya1R5cGVOb3RTdXBwb3J0ZWRFcnJvclxuICAgIHwgT3B0aW9uR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFByb3Zpc2lvbmVkSW9wc05vdEF2YWlsYWJsZUluQVpGYXVsdEVycm9yXG4gICAgfCBTdG9yYWdlUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IFN0b3JhZ2VUeXBlTm90U3VwcG9ydGVkRmF1bHRFcnJvclxuICAgIHwgVGVuYW50RGF0YWJhc2VRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBNb2RpZnlEQlBhcmFtZXRlckdyb3VwQ29tbWFuZH1cbiAgICovXG4gIG1vZGlmeURCUGFyYW1ldGVyR3JvdXAoXG4gICAgYXJnczogTW9kaWZ5REJQYXJhbWV0ZXJHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIE1vZGlmeURCUGFyYW1ldGVyR3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCUGFyYW1ldGVyR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQlBhcmFtZXRlckdyb3VwU3RhdGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIE1vZGlmeURCUHJveHlDb21tYW5kfVxuICAgKi9cbiAgbW9kaWZ5REJQcm94eShcbiAgICBhcmdzOiBNb2RpZnlEQlByb3h5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTW9kaWZ5REJQcm94eUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgREJQcm94eUFscmVhZHlFeGlzdHNGYXVsdEVycm9yXG4gICAgfCBEQlByb3h5Tm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJQcm94eVN0YXRlRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBNb2RpZnlEQlByb3h5RW5kcG9pbnRDb21tYW5kfVxuICAgKi9cbiAgbW9kaWZ5REJQcm94eUVuZHBvaW50KFxuICAgIGFyZ3M6IE1vZGlmeURCUHJveHlFbmRwb2ludENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIE1vZGlmeURCUHJveHlFbmRwb2ludENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgREJQcm94eUVuZHBvaW50QWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IERCUHJveHlFbmRwb2ludE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCUHJveHlFbmRwb2ludFN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCUHJveHlTdGF0ZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTW9kaWZ5REJQcm94eVRhcmdldEdyb3VwQ29tbWFuZH1cbiAgICovXG4gIG1vZGlmeURCUHJveHlUYXJnZXRHcm91cChcbiAgICBhcmdzOiBNb2RpZnlEQlByb3h5VGFyZ2V0R3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBNb2RpZnlEQlByb3h5VGFyZ2V0R3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCUHJveHlOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCUHJveHlUYXJnZXRHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCUHJveHlTdGF0ZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTW9kaWZ5REJSZWNvbW1lbmRhdGlvbkNvbW1hbmR9XG4gICAqL1xuICBtb2RpZnlEQlJlY29tbWVuZGF0aW9uKFxuICAgIGFyZ3M6IE1vZGlmeURCUmVjb21tZW5kYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxNb2RpZnlEQlJlY29tbWVuZGF0aW9uQ29tbWFuZE91dHB1dCwgU2RrRXJyb3I+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBNb2RpZnlEQlNoYXJkR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgbW9kaWZ5REJTaGFyZEdyb3VwKFxuICAgIGFyZ3M6IE1vZGlmeURCU2hhcmRHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIE1vZGlmeURCU2hhcmRHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgREJTaGFyZEdyb3VwQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IERCU2hhcmRHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCQ2x1c3RlclN0YXRlRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBNb2RpZnlEQlNuYXBzaG90Q29tbWFuZH1cbiAgICovXG4gIG1vZGlmeURCU25hcHNob3QoXG4gICAgYXJnczogTW9kaWZ5REJTbmFwc2hvdENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIE1vZGlmeURCU25hcHNob3RDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgREJTbmFwc2hvdE5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBNb2RpZnlEQlNuYXBzaG90QXR0cmlidXRlQ29tbWFuZH1cbiAgICovXG4gIG1vZGlmeURCU25hcHNob3RBdHRyaWJ1dGUoXG4gICAgYXJnczogTW9kaWZ5REJTbmFwc2hvdEF0dHJpYnV0ZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIE1vZGlmeURCU25hcHNob3RBdHRyaWJ1dGVDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCU25hcHNob3ROb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQlNuYXBzaG90U3RhdGVGYXVsdEVycm9yXG4gICAgfCBTaGFyZWRTbmFwc2hvdFF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIE1vZGlmeURCU3VibmV0R3JvdXBDb21tYW5kfVxuICAgKi9cbiAgbW9kaWZ5REJTdWJuZXRHcm91cChcbiAgICBhcmdzOiBNb2RpZnlEQlN1Ym5ldEdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTW9kaWZ5REJTdWJuZXRHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgREJTdWJuZXRHcm91cERvZXNOb3RDb3ZlckVub3VnaEFac0Vycm9yXG4gICAgfCBEQlN1Ym5ldEdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQlN1Ym5ldFF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkU3VibmV0RXJyb3JcbiAgICB8IFN1Ym5ldEFscmVhZHlJblVzZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIE1vZGlmeUV2ZW50U3Vic2NyaXB0aW9uQ29tbWFuZH1cbiAgICovXG4gIG1vZGlmeUV2ZW50U3Vic2NyaXB0aW9uKFxuICAgIGFyZ3M6IE1vZGlmeUV2ZW50U3Vic2NyaXB0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTW9kaWZ5RXZlbnRTdWJzY3JpcHRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEV2ZW50U3Vic2NyaXB0aW9uUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IFNOU0ludmFsaWRUb3BpY0ZhdWx0RXJyb3JcbiAgICB8IFNOU05vQXV0aG9yaXphdGlvbkZhdWx0RXJyb3JcbiAgICB8IFNOU1RvcGljQXJuTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBTdWJzY3JpcHRpb25DYXRlZ29yeU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgU3Vic2NyaXB0aW9uTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIE1vZGlmeUdsb2JhbENsdXN0ZXJDb21tYW5kfVxuICAgKi9cbiAgbW9kaWZ5R2xvYmFsQ2x1c3RlcihcbiAgICBhcmdzOiBNb2RpZnlHbG9iYWxDbHVzdGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTW9kaWZ5R2xvYmFsQ2x1c3RlckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgR2xvYmFsQ2x1c3RlckFscmVhZHlFeGlzdHNGYXVsdEVycm9yXG4gICAgfCBHbG9iYWxDbHVzdGVyTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJDbHVzdGVyU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJJbnN0YW5jZVN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZEdsb2JhbENsdXN0ZXJTdGF0ZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTW9kaWZ5SW50ZWdyYXRpb25Db21tYW5kfVxuICAgKi9cbiAgbW9kaWZ5SW50ZWdyYXRpb24oXG4gICAgYXJnczogTW9kaWZ5SW50ZWdyYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBNb2RpZnlJbnRlZ3JhdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW50ZWdyYXRpb25Db25mbGljdE9wZXJhdGlvbkZhdWx0RXJyb3JcbiAgICB8IEludGVncmF0aW9uTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkSW50ZWdyYXRpb25TdGF0ZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTW9kaWZ5T3B0aW9uR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgbW9kaWZ5T3B0aW9uR3JvdXAoXG4gICAgYXJnczogTW9kaWZ5T3B0aW9uR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBNb2RpZnlPcHRpb25Hcm91cENvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkT3B0aW9uR3JvdXBTdGF0ZUZhdWx0RXJyb3IgfCBPcHRpb25Hcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBNb2RpZnlUZW5hbnREYXRhYmFzZUNvbW1hbmR9XG4gICAqL1xuICBtb2RpZnlUZW5hbnREYXRhYmFzZShcbiAgICBhcmdzOiBNb2RpZnlUZW5hbnREYXRhYmFzZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIE1vZGlmeVRlbmFudERhdGFiYXNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQkluc3RhbmNlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJJbnN0YW5jZVN0YXRlRmF1bHRFcnJvclxuICAgIHwgVGVuYW50RGF0YWJhc2VBbHJlYWR5RXhpc3RzRmF1bHRFcnJvclxuICAgIHwgVGVuYW50RGF0YWJhc2VOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHJvbW90ZVJlYWRSZXBsaWNhQ29tbWFuZH1cbiAgICovXG4gIHByb21vdGVSZWFkUmVwbGljYShcbiAgICBhcmdzOiBQcm9tb3RlUmVhZFJlcGxpY2FDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQcm9tb3RlUmVhZFJlcGxpY2FDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgREJJbnN0YW5jZU5vdEZvdW5kRmF1bHRFcnJvciB8IEludmFsaWREQkluc3RhbmNlU3RhdGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFByb21vdGVSZWFkUmVwbGljYURCQ2x1c3RlckNvbW1hbmR9XG4gICAqL1xuICBwcm9tb3RlUmVhZFJlcGxpY2FEQkNsdXN0ZXIoXG4gICAgYXJnczogUHJvbW90ZVJlYWRSZXBsaWNhREJDbHVzdGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHJvbW90ZVJlYWRSZXBsaWNhREJDbHVzdGVyQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IERCQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvciB8IEludmFsaWREQkNsdXN0ZXJTdGF0ZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHVyY2hhc2VSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdDb21tYW5kfVxuICAgKi9cbiAgcHVyY2hhc2VSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmcoXG4gICAgYXJnczogUHVyY2hhc2VSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdXJjaGFzZVJlc2VydmVkREJJbnN0YW5jZXNPZmZlcmluZ0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgUmVzZXJ2ZWREQkluc3RhbmNlQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IFJlc2VydmVkREJJbnN0YW5jZVF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVib290REJDbHVzdGVyQ29tbWFuZH1cbiAgICovXG4gIHJlYm9vdERCQ2x1c3RlcihcbiAgICBhcmdzOiBSZWJvb3REQkNsdXN0ZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBSZWJvb3REQkNsdXN0ZXJDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCQ2x1c3RlclN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCSW5zdGFuY2VTdGF0ZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVib290REJJbnN0YW5jZUNvbW1hbmR9XG4gICAqL1xuICByZWJvb3REQkluc3RhbmNlKFxuICAgIGFyZ3M6IFJlYm9vdERCSW5zdGFuY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBSZWJvb3REQkluc3RhbmNlQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IERCSW5zdGFuY2VOb3RGb3VuZEZhdWx0RXJyb3IgfCBJbnZhbGlkREJJbnN0YW5jZVN0YXRlRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBSZWJvb3REQlNoYXJkR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgcmVib290REJTaGFyZEdyb3VwKFxuICAgIGFyZ3M6IFJlYm9vdERCU2hhcmRHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFJlYm9vdERCU2hhcmRHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgREJTaGFyZEdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJTaGFyZEdyb3VwU3RhdGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJlZ2lzdGVyREJQcm94eVRhcmdldHNDb21tYW5kfVxuICAgKi9cbiAgcmVnaXN0ZXJEQlByb3h5VGFyZ2V0cyhcbiAgICBhcmdzOiBSZWdpc3RlckRCUHJveHlUYXJnZXRzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUmVnaXN0ZXJEQlByb3h5VGFyZ2V0c0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgREJDbHVzdGVyTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQkluc3RhbmNlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQlByb3h5Tm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQlByb3h5VGFyZ2V0QWxyZWFkeVJlZ2lzdGVyZWRGYXVsdEVycm9yXG4gICAgfCBEQlByb3h5VGFyZ2V0R3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEluc3VmZmljaWVudEF2YWlsYWJsZUlQc0luU3VibmV0RmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCQ2x1c3RlclN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCSW5zdGFuY2VTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQlByb3h5U3RhdGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJlbW92ZUZyb21HbG9iYWxDbHVzdGVyQ29tbWFuZH1cbiAgICovXG4gIHJlbW92ZUZyb21HbG9iYWxDbHVzdGVyKFxuICAgIGFyZ3M6IFJlbW92ZUZyb21HbG9iYWxDbHVzdGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUmVtb3ZlRnJvbUdsb2JhbENsdXN0ZXJDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgR2xvYmFsQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZEdsb2JhbENsdXN0ZXJTdGF0ZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVtb3ZlUm9sZUZyb21EQkNsdXN0ZXJDb21tYW5kfVxuICAgKi9cbiAgcmVtb3ZlUm9sZUZyb21EQkNsdXN0ZXIoXG4gICAgYXJnczogUmVtb3ZlUm9sZUZyb21EQkNsdXN0ZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBSZW1vdmVSb2xlRnJvbURCQ2x1c3RlckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgREJDbHVzdGVyTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQkNsdXN0ZXJSb2xlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJDbHVzdGVyU3RhdGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJlbW92ZVJvbGVGcm9tREJJbnN0YW5jZUNvbW1hbmR9XG4gICAqL1xuICByZW1vdmVSb2xlRnJvbURCSW5zdGFuY2UoXG4gICAgYXJnczogUmVtb3ZlUm9sZUZyb21EQkluc3RhbmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUmVtb3ZlUm9sZUZyb21EQkluc3RhbmNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQkluc3RhbmNlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQkluc3RhbmNlUm9sZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCSW5zdGFuY2VTdGF0ZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVtb3ZlU291cmNlSWRlbnRpZmllckZyb21TdWJzY3JpcHRpb25Db21tYW5kfVxuICAgKi9cbiAgcmVtb3ZlU291cmNlSWRlbnRpZmllckZyb21TdWJzY3JpcHRpb24oXG4gICAgYXJnczogUmVtb3ZlU291cmNlSWRlbnRpZmllckZyb21TdWJzY3JpcHRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBSZW1vdmVTb3VyY2VJZGVudGlmaWVyRnJvbVN1YnNjcmlwdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBTb3VyY2VOb3RGb3VuZEZhdWx0RXJyb3IgfCBTdWJzY3JpcHRpb25Ob3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVtb3ZlVGFnc0Zyb21SZXNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICByZW1vdmVUYWdzRnJvbVJlc291cmNlKFxuICAgIGFyZ3M6IFJlbW92ZVRhZ3NGcm9tUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBSZW1vdmVUYWdzRnJvbVJlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCbHVlR3JlZW5EZXBsb3ltZW50Tm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQkNsdXN0ZXJOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCSW5zdGFuY2VOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCUHJveHlOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCUHJveHlUYXJnZXRHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJTbmFwc2hvdE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJTbmFwc2hvdFRlbmFudERhdGFiYXNlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnRlZ3JhdGlvbk5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgVGVuYW50RGF0YWJhc2VOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVzZXREQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cENvbW1hbmR9XG4gICAqL1xuICByZXNldERCQ2x1c3RlclBhcmFtZXRlckdyb3VwKFxuICAgIGFyZ3M6IFJlc2V0REJDbHVzdGVyUGFyYW1ldGVyR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBSZXNldERCQ2x1c3RlclBhcmFtZXRlckdyb3VwQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQlBhcmFtZXRlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJQYXJhbWV0ZXJHcm91cFN0YXRlRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBSZXNldERCUGFyYW1ldGVyR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgcmVzZXREQlBhcmFtZXRlckdyb3VwKFxuICAgIGFyZ3M6IFJlc2V0REJQYXJhbWV0ZXJHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFJlc2V0REJQYXJhbWV0ZXJHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgREJQYXJhbWV0ZXJHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCUGFyYW1ldGVyR3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVzdG9yZURCQ2x1c3RlckZyb21TM0NvbW1hbmR9XG4gICAqL1xuICByZXN0b3JlREJDbHVzdGVyRnJvbVMzKFxuICAgIGFyZ3M6IFJlc3RvcmVEQkNsdXN0ZXJGcm9tUzNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBSZXN0b3JlREJDbHVzdGVyRnJvbVMzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQkNsdXN0ZXJBbHJlYWR5RXhpc3RzRmF1bHRFcnJvclxuICAgIHwgREJDbHVzdGVyTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJDbHVzdGVyUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IERCU3VibmV0R3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERvbWFpbk5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW5zdWZmaWNpZW50U3RvcmFnZUNsdXN0ZXJDYXBhY2l0eUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkNsdXN0ZXJTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQlN1Ym5ldEdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUzNCdWNrZXRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkU3VibmV0RXJyb3JcbiAgICB8IEludmFsaWRWUENOZXR3b3JrU3RhdGVGYXVsdEVycm9yXG4gICAgfCBLTVNLZXlOb3RBY2Nlc3NpYmxlRmF1bHRFcnJvclxuICAgIHwgU3RvcmFnZVF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBTdG9yYWdlVHlwZU5vdFN1cHBvcnRlZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVzdG9yZURCQ2x1c3RlckZyb21TbmFwc2hvdENvbW1hbmR9XG4gICAqL1xuICByZXN0b3JlREJDbHVzdGVyRnJvbVNuYXBzaG90KFxuICAgIGFyZ3M6IFJlc3RvcmVEQkNsdXN0ZXJGcm9tU25hcHNob3RDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBSZXN0b3JlREJDbHVzdGVyRnJvbVNuYXBzaG90Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQkNsdXN0ZXJBbHJlYWR5RXhpc3RzRmF1bHRFcnJvclxuICAgIHwgREJDbHVzdGVyUGFyYW1ldGVyR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCQ2x1c3RlclF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBEQkNsdXN0ZXJTbmFwc2hvdE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJTbmFwc2hvdE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJTdWJuZXRHcm91cERvZXNOb3RDb3ZlckVub3VnaEFac0Vycm9yXG4gICAgfCBEQlN1Ym5ldEdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEb21haW5Ob3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEluc3VmZmljaWVudERCQ2x1c3RlckNhcGFjaXR5RmF1bHRFcnJvclxuICAgIHwgSW5zdWZmaWNpZW50REJJbnN0YW5jZUNhcGFjaXR5RmF1bHRFcnJvclxuICAgIHwgSW5zdWZmaWNpZW50U3RvcmFnZUNsdXN0ZXJDYXBhY2l0eUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkNsdXN0ZXJTbmFwc2hvdFN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCSW5zdGFuY2VTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQlNuYXBzaG90U3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUmVzdG9yZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRTdWJuZXRFcnJvclxuICAgIHwgSW52YWxpZFZQQ05ldHdvcmtTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEtNU0tleU5vdEFjY2Vzc2libGVGYXVsdEVycm9yXG4gICAgfCBPcHRpb25Hcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgU3RvcmFnZVF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJlc3RvcmVEQkNsdXN0ZXJUb1BvaW50SW5UaW1lQ29tbWFuZH1cbiAgICovXG4gIHJlc3RvcmVEQkNsdXN0ZXJUb1BvaW50SW5UaW1lKFxuICAgIGFyZ3M6IFJlc3RvcmVEQkNsdXN0ZXJUb1BvaW50SW5UaW1lQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUmVzdG9yZURCQ2x1c3RlclRvUG9pbnRJblRpbWVDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCQ2x1c3RlckFscmVhZHlFeGlzdHNGYXVsdEVycm9yXG4gICAgfCBEQkNsdXN0ZXJBdXRvbWF0ZWRCYWNrdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJDbHVzdGVyUGFyYW1ldGVyR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCQ2x1c3RlclF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBEQkNsdXN0ZXJTbmFwc2hvdE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJTdWJuZXRHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgRG9tYWluTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnN1ZmZpY2llbnREQkNsdXN0ZXJDYXBhY2l0eUZhdWx0RXJyb3JcbiAgICB8IEluc3VmZmljaWVudERCSW5zdGFuY2VDYXBhY2l0eUZhdWx0RXJyb3JcbiAgICB8IEluc3VmZmljaWVudFN0b3JhZ2VDbHVzdGVyQ2FwYWNpdHlGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJDbHVzdGVyU25hcHNob3RTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkNsdXN0ZXJTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQlNuYXBzaG90U3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUmVzdG9yZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRTdWJuZXRFcnJvclxuICAgIHwgSW52YWxpZFZQQ05ldHdvcmtTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEtNU0tleU5vdEFjY2Vzc2libGVGYXVsdEVycm9yXG4gICAgfCBPcHRpb25Hcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgU3RvcmFnZVF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJlc3RvcmVEQkluc3RhbmNlRnJvbURCU25hcHNob3RDb21tYW5kfVxuICAgKi9cbiAgcmVzdG9yZURCSW5zdGFuY2VGcm9tREJTbmFwc2hvdChcbiAgICBhcmdzOiBSZXN0b3JlREJJbnN0YW5jZUZyb21EQlNuYXBzaG90Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUmVzdG9yZURCSW5zdGFuY2VGcm9tREJTbmFwc2hvdENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQXV0aG9yaXphdGlvbk5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgQmFja3VwUG9saWN5Tm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBDZXJ0aWZpY2F0ZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJDbHVzdGVyU25hcHNob3ROb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCSW5zdGFuY2VBbHJlYWR5RXhpc3RzRmF1bHRFcnJvclxuICAgIHwgREJQYXJhbWV0ZXJHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJTZWN1cml0eUdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQlNuYXBzaG90Tm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQlN1Ym5ldEdyb3VwRG9lc05vdENvdmVyRW5vdWdoQVpzRXJyb3JcbiAgICB8IERCU3VibmV0R3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERvbWFpbk5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW5zdGFuY2VRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgSW5zdWZmaWNpZW50REJJbnN0YW5jZUNhcGFjaXR5RmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCU25hcHNob3RTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRSZXN0b3JlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFN1Ym5ldEVycm9yXG4gICAgfCBJbnZhbGlkVlBDTmV0d29ya1N0YXRlRmF1bHRFcnJvclxuICAgIHwgS01TS2V5Tm90QWNjZXNzaWJsZUZhdWx0RXJyb3JcbiAgICB8IE5ldHdvcmtUeXBlTm90U3VwcG9ydGVkRXJyb3JcbiAgICB8IE9wdGlvbkdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBQcm92aXNpb25lZElvcHNOb3RBdmFpbGFibGVJbkFaRmF1bHRFcnJvclxuICAgIHwgU3RvcmFnZVF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBTdG9yYWdlVHlwZU5vdFN1cHBvcnRlZEZhdWx0RXJyb3JcbiAgICB8IFRlbmFudERhdGFiYXNlUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVzdG9yZURCSW5zdGFuY2VGcm9tUzNDb21tYW5kfVxuICAgKi9cbiAgcmVzdG9yZURCSW5zdGFuY2VGcm9tUzMoXG4gICAgYXJnczogUmVzdG9yZURCSW5zdGFuY2VGcm9tUzNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBSZXN0b3JlREJJbnN0YW5jZUZyb21TM0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQXV0aG9yaXphdGlvbk5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgQmFja3VwUG9saWN5Tm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBDZXJ0aWZpY2F0ZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJJbnN0YW5jZUFscmVhZHlFeGlzdHNGYXVsdEVycm9yXG4gICAgfCBEQlBhcmFtZXRlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQlNlY3VyaXR5R3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCU3VibmV0R3JvdXBEb2VzTm90Q292ZXJFbm91Z2hBWnNFcnJvclxuICAgIHwgREJTdWJuZXRHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW5zdGFuY2VRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgSW5zdWZmaWNpZW50REJJbnN0YW5jZUNhcGFjaXR5RmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFMzQnVja2V0RmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFN1Ym5ldEVycm9yXG4gICAgfCBJbnZhbGlkVlBDTmV0d29ya1N0YXRlRmF1bHRFcnJvclxuICAgIHwgS01TS2V5Tm90QWNjZXNzaWJsZUZhdWx0RXJyb3JcbiAgICB8IE5ldHdvcmtUeXBlTm90U3VwcG9ydGVkRXJyb3JcbiAgICB8IE9wdGlvbkdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBQcm92aXNpb25lZElvcHNOb3RBdmFpbGFibGVJbkFaRmF1bHRFcnJvclxuICAgIHwgU3RvcmFnZVF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBTdG9yYWdlVHlwZU5vdFN1cHBvcnRlZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVzdG9yZURCSW5zdGFuY2VUb1BvaW50SW5UaW1lQ29tbWFuZH1cbiAgICovXG4gIHJlc3RvcmVEQkluc3RhbmNlVG9Qb2ludEluVGltZShcbiAgICBhcmdzOiBSZXN0b3JlREJJbnN0YW5jZVRvUG9pbnRJblRpbWVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBSZXN0b3JlREJJbnN0YW5jZVRvUG9pbnRJblRpbWVDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEF1dGhvcml6YXRpb25Ob3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEJhY2t1cFBvbGljeU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgQ2VydGlmaWNhdGVOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCSW5zdGFuY2VBbHJlYWR5RXhpc3RzRmF1bHRFcnJvclxuICAgIHwgREJJbnN0YW5jZUF1dG9tYXRlZEJhY2t1cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJJbnN0YW5jZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJQYXJhbWV0ZXJHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJTZWN1cml0eUdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQlN1Ym5ldEdyb3VwRG9lc05vdENvdmVyRW5vdWdoQVpzRXJyb3JcbiAgICB8IERCU3VibmV0R3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERvbWFpbk5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW5zdGFuY2VRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgSW5zdWZmaWNpZW50REJJbnN0YW5jZUNhcGFjaXR5RmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCSW5zdGFuY2VTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRSZXN0b3JlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFN1Ym5ldEVycm9yXG4gICAgfCBJbnZhbGlkVlBDTmV0d29ya1N0YXRlRmF1bHRFcnJvclxuICAgIHwgS01TS2V5Tm90QWNjZXNzaWJsZUZhdWx0RXJyb3JcbiAgICB8IE5ldHdvcmtUeXBlTm90U3VwcG9ydGVkRXJyb3JcbiAgICB8IE9wdGlvbkdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBQb2ludEluVGltZVJlc3RvcmVOb3RFbmFibGVkRmF1bHRFcnJvclxuICAgIHwgUHJvdmlzaW9uZWRJb3BzTm90QXZhaWxhYmxlSW5BWkZhdWx0RXJyb3JcbiAgICB8IFN0b3JhZ2VRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgU3RvcmFnZVR5cGVOb3RTdXBwb3J0ZWRGYXVsdEVycm9yXG4gICAgfCBUZW5hbnREYXRhYmFzZVF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJldm9rZURCU2VjdXJpdHlHcm91cEluZ3Jlc3NDb21tYW5kfVxuICAgKi9cbiAgcmV2b2tlREJTZWN1cml0eUdyb3VwSW5ncmVzcyhcbiAgICBhcmdzOiBSZXZva2VEQlNlY3VyaXR5R3JvdXBJbmdyZXNzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUmV2b2tlREJTZWN1cml0eUdyb3VwSW5ncmVzc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQXV0aG9yaXphdGlvbk5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJTZWN1cml0eUdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJTZWN1cml0eUdyb3VwU3RhdGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFN0YXJ0QWN0aXZpdHlTdHJlYW1Db21tYW5kfVxuICAgKi9cbiAgc3RhcnRBY3Rpdml0eVN0cmVhbShcbiAgICBhcmdzOiBTdGFydEFjdGl2aXR5U3RyZWFtQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU3RhcnRBY3Rpdml0eVN0cmVhbUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgREJDbHVzdGVyTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQkluc3RhbmNlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJDbHVzdGVyU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJJbnN0YW5jZVN0YXRlRmF1bHRFcnJvclxuICAgIHwgS01TS2V5Tm90QWNjZXNzaWJsZUZhdWx0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFN0YXJ0REJDbHVzdGVyQ29tbWFuZH1cbiAgICovXG4gIHN0YXJ0REJDbHVzdGVyKFxuICAgIGFyZ3M6IFN0YXJ0REJDbHVzdGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU3RhcnREQkNsdXN0ZXJDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCQ2x1c3RlclN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCSW5zdGFuY2VTdGF0ZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU3RhcnREQkluc3RhbmNlQ29tbWFuZH1cbiAgICovXG4gIHN0YXJ0REJJbnN0YW5jZShcbiAgICBhcmdzOiBTdGFydERCSW5zdGFuY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBTdGFydERCSW5zdGFuY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEF1dGhvcml6YXRpb25Ob3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJJbnN0YW5jZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJTdWJuZXRHcm91cERvZXNOb3RDb3ZlckVub3VnaEFac0Vycm9yXG4gICAgfCBEQlN1Ym5ldEdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnN1ZmZpY2llbnREQkluc3RhbmNlQ2FwYWNpdHlGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJDbHVzdGVyU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJJbnN0YW5jZVN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFN1Ym5ldEVycm9yXG4gICAgfCBJbnZhbGlkVlBDTmV0d29ya1N0YXRlRmF1bHRFcnJvclxuICAgIHwgS01TS2V5Tm90QWNjZXNzaWJsZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU3RhcnREQkluc3RhbmNlQXV0b21hdGVkQmFja3Vwc1JlcGxpY2F0aW9uQ29tbWFuZH1cbiAgICovXG4gIHN0YXJ0REJJbnN0YW5jZUF1dG9tYXRlZEJhY2t1cHNSZXBsaWNhdGlvbihcbiAgICBhcmdzOiBTdGFydERCSW5zdGFuY2VBdXRvbWF0ZWRCYWNrdXBzUmVwbGljYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBTdGFydERCSW5zdGFuY2VBdXRvbWF0ZWRCYWNrdXBzUmVwbGljYXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCSW5zdGFuY2VBdXRvbWF0ZWRCYWNrdXBRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgREJJbnN0YW5jZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCSW5zdGFuY2VTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEtNU0tleU5vdEFjY2Vzc2libGVGYXVsdEVycm9yXG4gICAgfCBTdG9yYWdlVHlwZU5vdFN1cHBvcnRlZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU3RhcnRFeHBvcnRUYXNrQ29tbWFuZH1cbiAgICovXG4gIHN0YXJ0RXhwb3J0VGFzayhcbiAgICBhcmdzOiBTdGFydEV4cG9ydFRhc2tDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBTdGFydEV4cG9ydFRhc2tDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJDbHVzdGVyU25hcHNob3ROb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCU25hcHNob3ROb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEV4cG9ydFRhc2tBbHJlYWR5RXhpc3RzRmF1bHRFcnJvclxuICAgIHwgSWFtUm9sZU1pc3NpbmdQZXJtaXNzaW9uc0ZhdWx0RXJyb3JcbiAgICB8IElhbVJvbGVOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRFeHBvcnRPbmx5RmF1bHRFcnJvclxuICAgIHwgSW52YWxpZEV4cG9ydFNvdXJjZVN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFMzQnVja2V0RmF1bHRFcnJvclxuICAgIHwgS01TS2V5Tm90QWNjZXNzaWJsZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU3RvcEFjdGl2aXR5U3RyZWFtQ29tbWFuZH1cbiAgICovXG4gIHN0b3BBY3Rpdml0eVN0cmVhbShcbiAgICBhcmdzOiBTdG9wQWN0aXZpdHlTdHJlYW1Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBTdG9wQWN0aXZpdHlTdHJlYW1Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJJbnN0YW5jZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCQ2x1c3RlclN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCSW5zdGFuY2VTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFN0b3BEQkNsdXN0ZXJDb21tYW5kfVxuICAgKi9cbiAgc3RvcERCQ2x1c3RlcihcbiAgICBhcmdzOiBTdG9wREJDbHVzdGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU3RvcERCQ2x1c3RlckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgREJDbHVzdGVyTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJDbHVzdGVyU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJJbnN0YW5jZVN0YXRlRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTdG9wREJJbnN0YW5jZUNvbW1hbmR9XG4gICAqL1xuICBzdG9wREJJbnN0YW5jZShcbiAgICBhcmdzOiBTdG9wREJJbnN0YW5jZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFN0b3BEQkluc3RhbmNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQkluc3RhbmNlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQlNuYXBzaG90QWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkNsdXN0ZXJTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkluc3RhbmNlU3RhdGVGYXVsdEVycm9yXG4gICAgfCBTbmFwc2hvdFF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFN0b3BEQkluc3RhbmNlQXV0b21hdGVkQmFja3Vwc1JlcGxpY2F0aW9uQ29tbWFuZH1cbiAgICovXG4gIHN0b3BEQkluc3RhbmNlQXV0b21hdGVkQmFja3Vwc1JlcGxpY2F0aW9uKFxuICAgIGFyZ3M6IFN0b3BEQkluc3RhbmNlQXV0b21hdGVkQmFja3Vwc1JlcGxpY2F0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU3RvcERCSW5zdGFuY2VBdXRvbWF0ZWRCYWNrdXBzUmVwbGljYXRpb25Db21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgREJJbnN0YW5jZU5vdEZvdW5kRmF1bHRFcnJvciB8IEludmFsaWREQkluc3RhbmNlU3RhdGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFN3aXRjaG92ZXJCbHVlR3JlZW5EZXBsb3ltZW50Q29tbWFuZH1cbiAgICovXG4gIHN3aXRjaG92ZXJCbHVlR3JlZW5EZXBsb3ltZW50KFxuICAgIGFyZ3M6IFN3aXRjaG92ZXJCbHVlR3JlZW5EZXBsb3ltZW50Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU3dpdGNob3ZlckJsdWVHcmVlbkRlcGxveW1lbnRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJsdWVHcmVlbkRlcGxveW1lbnROb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRCbHVlR3JlZW5EZXBsb3ltZW50U3RhdGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFN3aXRjaG92ZXJHbG9iYWxDbHVzdGVyQ29tbWFuZH1cbiAgICovXG4gIHN3aXRjaG92ZXJHbG9iYWxDbHVzdGVyKFxuICAgIGFyZ3M6IFN3aXRjaG92ZXJHbG9iYWxDbHVzdGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU3dpdGNob3Zlckdsb2JhbENsdXN0ZXJDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgR2xvYmFsQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCQ2x1c3RlclN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZEdsb2JhbENsdXN0ZXJTdGF0ZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU3dpdGNob3ZlclJlYWRSZXBsaWNhQ29tbWFuZH1cbiAgICovXG4gIHN3aXRjaG92ZXJSZWFkUmVwbGljYShcbiAgICBhcmdzOiBTd2l0Y2hvdmVyUmVhZFJlcGxpY2FDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBTd2l0Y2hvdmVyUmVhZFJlcGxpY2FDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgREJJbnN0YW5jZU5vdEZvdW5kRmF1bHRFcnJvciB8IEludmFsaWREQkluc3RhbmNlU3RhdGVGYXVsdEVycm9yXG4gID47XG59XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgY29uc3RydWN0b3JzXG4gKi9cbmV4cG9ydCBjb25zdCBtYWtlUkRTU2VydmljZSA9IEVmZmVjdC5nZW4oZnVuY3Rpb24qIChfKSB7XG4gIGNvbnN0IGNsaWVudCA9IHlpZWxkKiBfKFJEU0NsaWVudEluc3RhbmNlKTtcblxuICByZXR1cm4gUmVjb3JkLnRvRW50cmllcyhjb21tYW5kcykucmVkdWNlKChhY2MsIFtjb21tYW5kXSkgPT4ge1xuICAgIGNvbnN0IENvbW1hbmRDdG9yID0gY29tbWFuZHNbY29tbWFuZF0gYXMgYW55O1xuICAgIGNvbnN0IG1ldGhvZEltcGwgPSAoYXJnczogYW55LCBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zKSA9PlxuICAgICAgRWZmZWN0LnRyeVByb21pc2Uoe1xuICAgICAgICB0cnk6IChhYm9ydFNpZ25hbCkgPT5cbiAgICAgICAgICBjbGllbnQuc2VuZChuZXcgQ29tbWFuZEN0b3IoYXJncyksIHtcbiAgICAgICAgICAgIC4uLihvcHRpb25zID8/IHt9KSxcbiAgICAgICAgICAgIGFib3J0U2lnbmFsLFxuICAgICAgICAgIH0pLFxuICAgICAgICBjYXRjaDogKGUpID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBlIGluc3RhbmNlb2YgUkRTU2VydmljZUV4Y2VwdGlvbiAmJlxuICAgICAgICAgICAgQWxsU2VydmljZUVycm9ycy5pbmNsdWRlcyhlLm5hbWUpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCBTZXJ2aWNlRXhjZXB0aW9uID0gRGF0YS50YWdnZWQ8XG4gICAgICAgICAgICAgIFRhZ2dlZEV4Y2VwdGlvbjxSRFNTZXJ2aWNlRXhjZXB0aW9uPlxuICAgICAgICAgICAgPihlLm5hbWUpO1xuXG4gICAgICAgICAgICByZXR1cm4gU2VydmljZUV4Y2VwdGlvbih7XG4gICAgICAgICAgICAgIC4uLmUsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IGUubWVzc2FnZSxcbiAgICAgICAgICAgICAgc3RhY2s6IGUuc3RhY2ssXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIFNka0Vycm9yKHtcbiAgICAgICAgICAgICAgLi4uZSxcbiAgICAgICAgICAgICAgbmFtZTogXCJTZGtFcnJvclwiLFxuICAgICAgICAgICAgICBtZXNzYWdlOiBlLm1lc3NhZ2UsXG4gICAgICAgICAgICAgIHN0YWNrOiBlLnN0YWNrLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRocm93IGU7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICBjb25zdCBtZXRob2ROYW1lID0gKGNvbW1hbmRbMF0udG9Mb3dlckNhc2UoKSArIGNvbW1hbmQuc2xpY2UoMSkpLnJlcGxhY2UoXG4gICAgICAvQ29tbWFuZCQvLFxuICAgICAgXCJcIixcbiAgICApO1xuICAgIHJldHVybiB7IC4uLmFjYywgW21ldGhvZE5hbWVdOiBtZXRob2RJbXBsIH07XG4gIH0sIHt9KSBhcyBSRFNTZXJ2aWNlJDtcbn0pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IG1vZGVsc1xuICovXG5leHBvcnQgY2xhc3MgUkRTU2VydmljZSBleHRlbmRzIEVmZmVjdC5UYWcoXCJAZWZmZWN0LWF3cy9jbGllbnQtcmRzL1JEU1NlcnZpY2VcIik8XG4gIFJEU1NlcnZpY2UsXG4gIFJEU1NlcnZpY2UkXG4+KCkge1xuICBzdGF0aWMgcmVhZG9ubHkgZGVmYXVsdExheWVyID0gTGF5ZXIuZWZmZWN0KHRoaXMsIG1ha2VSRFNTZXJ2aWNlKS5waXBlKFxuICAgIExheWVyLnByb3ZpZGUoUkRTQ2xpZW50SW5zdGFuY2VMYXllciksXG4gICAgTGF5ZXIucHJvdmlkZShEZWZhdWx0UkRTQ2xpZW50Q29uZmlnTGF5ZXIpLFxuICApO1xuICBzdGF0aWMgcmVhZG9ubHkgbGF5ZXIgPSAoY29uZmlnOiBSRFNDbGllbnRDb25maWcpID0+XG4gICAgTGF5ZXIuZWZmZWN0KHRoaXMsIG1ha2VSRFNTZXJ2aWNlKS5waXBlKFxuICAgICAgTGF5ZXIucHJvdmlkZShSRFNDbGllbnRJbnN0YW5jZUxheWVyKSxcbiAgICAgIExheWVyLnByb3ZpZGUoXG4gICAgICAgIExheWVyLmVmZmVjdChcbiAgICAgICAgICBSRFNDbGllbnRJbnN0YW5jZUNvbmZpZyxcbiAgICAgICAgICBtYWtlRGVmYXVsdFJEU0NsaWVudEluc3RhbmNlQ29uZmlnLnBpcGUoXG4gICAgICAgICAgICBFZmZlY3QubWFwKChkZWZhdWx0Q29uZmlnKSA9PiAoeyAuLi5kZWZhdWx0Q29uZmlnLCAuLi5jb25maWcgfSkpLFxuICAgICAgICAgICksXG4gICAgICAgICksXG4gICAgICApLFxuICAgICk7XG4gIHN0YXRpYyByZWFkb25seSBiYXNlTGF5ZXIgPSAoXG4gICAgZXZhbHVhdGU6IChkZWZhdWx0Q29uZmlnOiBSRFNDbGllbnRDb25maWcpID0+IFJEU0NsaWVudCxcbiAgKSA9PlxuICAgIExheWVyLmVmZmVjdCh0aGlzLCBtYWtlUkRTU2VydmljZSkucGlwZShcbiAgICAgIExheWVyLnByb3ZpZGUoXG4gICAgICAgIExheWVyLmVmZmVjdChcbiAgICAgICAgICBSRFNDbGllbnRJbnN0YW5jZSxcbiAgICAgICAgICBFZmZlY3QubWFwKG1ha2VEZWZhdWx0UkRTQ2xpZW50SW5zdGFuY2VDb25maWcsIGV2YWx1YXRlKSxcbiAgICAgICAgKSxcbiAgICAgICksXG4gICAgKTtcbn1cblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBtb2RlbHNcbiAqIEBhbGlhcyBSRFNTZXJ2aWNlXG4gKi9cbmV4cG9ydCBjb25zdCBSRFMgPSBSRFNTZXJ2aWNlO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICogQGRlcHJlY2F0ZWQgdXNlIFJEUy5iYXNlTGF5ZXIgaW5zdGVhZFxuICovXG5leHBvcnQgY29uc3QgQmFzZVJEU1NlcnZpY2VMYXllciA9IExheWVyLmVmZmVjdChSRFNTZXJ2aWNlLCBtYWtlUkRTU2VydmljZSk7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKiBAZGVwcmVjYXRlZCB1c2UgUkRTLmxheWVyIGluc3RlYWRcbiAqL1xuZXhwb3J0IGNvbnN0IFJEU1NlcnZpY2VMYXllciA9IEJhc2VSRFNTZXJ2aWNlTGF5ZXIucGlwZShcbiAgTGF5ZXIucHJvdmlkZShSRFNDbGllbnRJbnN0YW5jZUxheWVyKSxcbik7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKiBAZGVwcmVjYXRlZCB1c2UgUkRTLmRlZmF1bHRMYXllciBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBjb25zdCBEZWZhdWx0UkRTU2VydmljZUxheWVyID0gUkRTU2VydmljZS5kZWZhdWx0TGF5ZXI7XG4iXX0=