@decaf-ts/integrations 0.3.4 → 0.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/integrations.cjs +3 -3
- package/dist/integrations.js +3 -3
- package/lib/cjs/graph/execution/CodeSandboxEvaluator.cjs +4 -0
- package/lib/cjs/graph/execution/GraphExecutionEngine.cjs +3 -2
- package/lib/cjs/graph/execution/SwitchGraphNodeExecutor.cjs +95 -0
- package/lib/cjs/graph/execution/index.cjs +4 -2
- package/lib/cjs/graph/index.cjs +7 -2
- package/lib/cjs/graph/loops/ConditionExpressionEvaluator.cjs +87 -0
- package/lib/cjs/graph/loops/GraphConditionEvaluator.cjs +25 -3
- package/lib/cjs/graph/loops/index.cjs +3 -2
- package/lib/cjs/graph/nodes/agent.cjs +110 -0
- package/lib/cjs/graph/nodes/category-styles.cjs +38 -0
- package/lib/cjs/graph/nodes/flow-control.cjs +436 -0
- package/lib/cjs/graph/nodes/index.cjs +34 -0
- package/lib/cjs/graph/nodes/triggers.cjs +250 -0
- package/lib/cjs/graph/types.cjs +2 -2
- package/lib/cjs/index.cjs +3 -3
- package/lib/cjs/keycloak/services/KeycloakAuthService.cjs +5 -4
- package/lib/cjs/keycloak/services/KeycloakClientService.cjs +5 -4
- package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs +5 -4
- package/lib/cjs/keycloak/services/KeycloakRealmService.cjs +8 -7
- package/lib/cjs/keycloak/services/KeycloakRoleService.cjs +5 -4
- package/lib/cjs/keycloak/services/KeycloakService.cjs +5 -3
- package/lib/cjs/keycloak/services/KeycloakUserService.cjs +5 -4
- package/lib/cjs/keycloak/services/runtime.cjs +20 -0
- package/lib/cjs/kibana/services/KibanaAuthService.cjs +6 -5
- package/lib/cjs/kibana/services/KibanaDashboardService.cjs +9 -8
- package/lib/cjs/kibana/services/KibanaDataViewService.cjs +7 -6
- package/lib/cjs/kibana/services/KibanaRoleService.cjs +5 -4
- package/lib/cjs/kibana/services/KibanaService.cjs +4 -2
- package/lib/cjs/kibana/services/KibanaSpaceService.cjs +5 -4
- package/lib/cjs/kibana/services/KibanaUserService.cjs +5 -4
- package/lib/cjs/kibana/services/runtime.cjs +20 -0
- package/lib/esm/graph/execution/CodeSandboxEvaluator.js +18 -0
- package/lib/esm/graph/execution/GraphExecutionEngine.js +2 -1
- package/lib/esm/graph/execution/SwitchGraphNodeExecutor.js +90 -0
- package/lib/esm/graph/execution/index.js +3 -1
- package/lib/esm/graph/index.js +6 -1
- package/lib/esm/graph/loops/ConditionExpressionEvaluator.js +82 -0
- package/lib/esm/graph/loops/GraphConditionEvaluator.js +24 -2
- package/lib/esm/graph/loops/index.js +2 -1
- package/lib/esm/graph/nodes/agent.js +101 -0
- package/lib/esm/graph/nodes/category-styles.js +34 -0
- package/lib/esm/graph/nodes/flow-control.js +427 -0
- package/lib/esm/graph/nodes/index.js +17 -0
- package/lib/esm/graph/nodes/triggers.js +241 -0
- package/lib/esm/graph/types.js +1 -1
- package/lib/esm/index.js +3 -3
- package/lib/esm/keycloak/services/KeycloakAuthService.js +4 -3
- package/lib/esm/keycloak/services/KeycloakClientService.js +4 -3
- package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js +4 -3
- package/lib/esm/keycloak/services/KeycloakRealmService.js +4 -3
- package/lib/esm/keycloak/services/KeycloakRoleService.js +4 -3
- package/lib/esm/keycloak/services/KeycloakService.js +4 -2
- package/lib/esm/keycloak/services/KeycloakUserService.js +4 -3
- package/lib/esm/keycloak/services/runtime.js +15 -0
- package/lib/esm/kibana/services/KibanaAuthService.js +5 -4
- package/lib/esm/kibana/services/KibanaDashboardService.js +5 -4
- package/lib/esm/kibana/services/KibanaDataViewService.js +4 -3
- package/lib/esm/kibana/services/KibanaRoleService.js +4 -3
- package/lib/esm/kibana/services/KibanaService.js +3 -1
- package/lib/esm/kibana/services/KibanaSpaceService.js +4 -3
- package/lib/esm/kibana/services/KibanaUserService.js +4 -3
- package/lib/esm/kibana/services/runtime.js +15 -0
- package/lib/types/graph/execution/CodeSandboxEvaluator.d.cts +53 -0
- package/lib/types/graph/execution/CodeSandboxEvaluator.d.mts +53 -0
- package/lib/types/graph/execution/GraphExecutionEngine.d.cts +10 -0
- package/lib/types/graph/execution/GraphExecutionEngine.d.mts +10 -0
- package/lib/types/graph/execution/SwitchGraphNodeExecutor.d.cts +42 -0
- package/lib/types/graph/execution/SwitchGraphNodeExecutor.d.mts +42 -0
- package/lib/types/graph/execution/index.d.cts +2 -0
- package/lib/types/graph/execution/index.d.mts +2 -0
- package/lib/types/graph/index.d.cts +4 -0
- package/lib/types/graph/index.d.mts +4 -0
- package/lib/types/graph/loops/ConditionExpressionEvaluator.d.cts +36 -0
- package/lib/types/graph/loops/ConditionExpressionEvaluator.d.mts +36 -0
- package/lib/types/graph/loops/GraphConditionEvaluator.d.cts +20 -4
- package/lib/types/graph/loops/GraphConditionEvaluator.d.mts +20 -4
- package/lib/types/graph/loops/index.d.cts +1 -0
- package/lib/types/graph/loops/index.d.mts +1 -0
- package/lib/types/graph/nodes/agent.d.cts +44 -0
- package/lib/types/graph/nodes/agent.d.mts +44 -0
- package/lib/types/graph/nodes/category-styles.d.cts +8 -0
- package/lib/types/graph/nodes/category-styles.d.mts +8 -0
- package/lib/types/graph/nodes/flow-control.d.cts +104 -0
- package/lib/types/graph/nodes/flow-control.d.mts +104 -0
- package/lib/types/graph/nodes/index.d.cts +16 -0
- package/lib/types/graph/nodes/index.d.mts +16 -0
- package/lib/types/graph/nodes/triggers.d.cts +53 -0
- package/lib/types/graph/nodes/triggers.d.mts +53 -0
- package/lib/types/graph/types.d.cts +102 -0
- package/lib/types/graph/types.d.mts +102 -0
- package/lib/types/index.d.cts +2 -2
- package/lib/types/index.d.mts +2 -2
- package/lib/types/keycloak/services/runtime.d.cts +6 -0
- package/lib/types/keycloak/services/runtime.d.mts +6 -0
- package/lib/types/kibana/services/runtime.d.cts +6 -0
- package/lib/types/kibana/services/runtime.d.mts +6 -0
- package/package.json +1 -1
|
@@ -57,9 +57,10 @@ const axios_1 = __importDefault(require("axios"));
|
|
|
57
57
|
const fs = __importStar(require("node:fs"));
|
|
58
58
|
const path = __importStar(require("node:path"));
|
|
59
59
|
const https = __importStar(require("node:https"));
|
|
60
|
+
const runtime_js_1 = require("./runtime.cjs");
|
|
60
61
|
const form_data_1 = __importDefault(require("form-data"));
|
|
61
62
|
const KibanaAuthService_js_1 = require("./KibanaAuthService.cjs");
|
|
62
|
-
const
|
|
63
|
+
const runtime_js_2 = require("./../../shared/runtime.cjs");
|
|
63
64
|
class KibanaDashboardService extends core_1.ClientBasedService {
|
|
64
65
|
async initialize(...args) {
|
|
65
66
|
const { ctxArgs } = (await this.logCtx(args, "initialize", true)).for(this.initialize);
|
|
@@ -76,7 +77,7 @@ class KibanaDashboardService extends core_1.ClientBasedService {
|
|
|
76
77
|
const message = `Unable to list dashboards from default space: ${response.statusText}`;
|
|
77
78
|
throw new db_decorators_1.BadRequestError(message);
|
|
78
79
|
}
|
|
79
|
-
const data = (0,
|
|
80
|
+
const data = (0, runtime_js_2.parseJsonBody)(response.data) ?? {};
|
|
80
81
|
const dashboards = data.saved_objects ?? [];
|
|
81
82
|
if (dashboards.length === 0)
|
|
82
83
|
return undefined;
|
|
@@ -118,7 +119,7 @@ class KibanaDashboardService extends core_1.ClientBasedService {
|
|
|
118
119
|
maxContentLength: Infinity,
|
|
119
120
|
validateStatus: () => true,
|
|
120
121
|
httpsAgent: new https.Agent({
|
|
121
|
-
rejectUnauthorized: (this.config
|
|
122
|
+
rejectUnauthorized: ((0, runtime_js_1.resolveKibanaIsProduction)(this.config)),
|
|
122
123
|
}),
|
|
123
124
|
});
|
|
124
125
|
if (importResp.status >= 300) {
|
|
@@ -151,7 +152,7 @@ class KibanaDashboardService extends core_1.ClientBasedService {
|
|
|
151
152
|
const message = `Unable to verify space ${realmName}: ${response.statusText}`;
|
|
152
153
|
throw new db_decorators_1.BadRequestError(message);
|
|
153
154
|
}
|
|
154
|
-
const data = (0,
|
|
155
|
+
const data = (0, runtime_js_2.parseJsonBody)(response.data);
|
|
155
156
|
if ((data?.total ?? 0) === 0) {
|
|
156
157
|
const message = `No dashboards found in space ${realmName}`;
|
|
157
158
|
throw new db_decorators_1.NotFoundError(message);
|
|
@@ -162,7 +163,7 @@ class KibanaDashboardService extends core_1.ClientBasedService {
|
|
|
162
163
|
baseURL: `${config.protocol}://${config.host}`,
|
|
163
164
|
validateStatus: () => true,
|
|
164
165
|
httpsAgent: new https.Agent({
|
|
165
|
-
rejectUnauthorized: (this.config
|
|
166
|
+
rejectUnauthorized: ((0, runtime_js_1.resolveKibanaIsProduction)(this.config)),
|
|
166
167
|
}),
|
|
167
168
|
});
|
|
168
169
|
}
|
|
@@ -201,7 +202,7 @@ class KibanaDashboardService extends core_1.ClientBasedService {
|
|
|
201
202
|
: undefined,
|
|
202
203
|
validateStatus: () => true,
|
|
203
204
|
httpsAgent: new https.Agent({
|
|
204
|
-
rejectUnauthorized: (this.config
|
|
205
|
+
rejectUnauthorized: ((0, runtime_js_1.resolveKibanaIsProduction)(this.config)),
|
|
205
206
|
}),
|
|
206
207
|
...extra,
|
|
207
208
|
});
|
|
@@ -212,5 +213,5 @@ __decorate([
|
|
|
212
213
|
(0, core_1.service)(),
|
|
213
214
|
__metadata("design:type", KibanaAuthService_js_1.KibanaAuthService)
|
|
214
215
|
], KibanaDashboardService.prototype, "authService", void 0);
|
|
215
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS2liYW5hRGFzaGJvYXJkU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9raWJhbmEvc2VydmljZXMvS2liYW5hRGFzaGJvYXJkU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQ0wsZUFBZSxFQUNmLGFBQWEsRUFDYixhQUFhLEVBQ2IsYUFBYSxHQUNkLE1BQU0seUJBQXlCLENBQUM7QUFFakMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSzdELE9BQU8sS0FBNkIsTUFBTSxPQUFPLENBQUM7QUFDbEQsT0FBTyxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDOUIsT0FBTyxLQUFLLElBQUksTUFBTSxXQUFXLENBQUM7QUFDbEMsT0FBTyxLQUFLLEtBQUssTUFBTSxZQUFZLENBQUM7QUFDcEMsT0FBTyxRQUFRLE1BQU0sV0FBVyxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSwrQkFBNEI7QUFDeEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxrQ0FBNkI7QUFFckQsTUFBTSxPQUFPLHNCQUF1QixTQUFRLGtCQUczQztJQUlDLEtBQUssQ0FBQyxVQUFVLENBQ2QsR0FBRyxJQUE2QjtRQUVoQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FDbEIsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQzVDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN2QixNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFzQixDQUFDO1FBQy9DLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQ3RCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxLQUFLLENBQUMsc0JBQXNCLENBQzFCLFNBQWlCLEVBQ2pCLEdBQUcsSUFBNkI7UUFFaEMsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQ2xCLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsd0JBQXdCLEVBQUUsSUFBSSxDQUFDLENBQ3hELENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQ25DLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FDakMsS0FBSyxFQUNMLGlFQUFpRSxFQUNqRSxTQUFTLEVBQ1QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQ3hCLEVBQUUsT0FBTyxFQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQ25DLEdBQUcsRUFDSCxHQUFHLE9BQU8sQ0FDWCxDQUFDO1FBQ0YsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQzVCLE1BQU0sT0FBTyxHQUFHLGlEQUFpRCxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDdkYsTUFBTSxJQUFJLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyQyxDQUFDO1FBQ0QsTUFBTSxJQUFJLEdBQUcsYUFBYSxDQUFNLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckQsTUFBTSxVQUFVLEdBQTBCLElBQUksQ0FBQyxhQUFhLElBQUksRUFBRSxDQUFDO1FBQ25FLElBQUksVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFFOUMsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUNqQyxNQUFNLEVBQ04saUNBQWlDLEVBQ2pDO1lBQ0UsTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDO1lBQ25CLE9BQU8sRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUN0QyxFQUFFLEVBQUUsU0FBUyxDQUFDLEVBQUU7Z0JBQ2hCLElBQUksRUFBRSxXQUFXO2FBQ2xCLENBQUMsQ0FBQztZQUNILGlCQUFpQixFQUFFLElBQUk7WUFDdkIsZUFBZSxFQUFFLElBQUk7WUFDckIsU0FBUyxFQUFFLEtBQUs7U0FDakIsRUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFDeEIsRUFBRSxPQUFPLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSxFQUFFLEVBQ3ZFLEdBQUcsRUFDSCxHQUFHLE9BQU8sQ0FDWCxDQUFDO1FBQ0YsSUFBSSxRQUFRLENBQUMsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQzNCLE1BQU0sT0FBTyxHQUFHLGdDQUFnQyxTQUFTLEtBQUssUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3BGLE1BQU0sSUFBSSxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckMsQ0FBQztRQUVELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsbUJBQW1CLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFDeEUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2YsT0FBTyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQzNCLENBQUM7UUFFRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUMxRSxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUM7WUFBRSxPQUFPLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDekQsTUFBTSxJQUFJLEdBQUcsSUFBSyxRQUFnQixFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDckQsTUFBTSxVQUFVLEdBQUcsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUNqQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNLFNBQVMsMkNBQTJDLEVBQ3ZHLElBQUksRUFDSjtZQUNFLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVk7Z0JBQzVCLENBQUMsQ0FBQztvQkFDRSxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsUUFBUTtvQkFDM0MsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLFFBQVE7aUJBQzVDO2dCQUNILENBQUMsQ0FBQyxTQUFTO1lBQ2IsT0FBTyxFQUFFO2dCQUNQLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRTtnQkFDcEIsVUFBVSxFQUFFLE1BQU07YUFDbkI7WUFDRCxhQUFhLEVBQUUsUUFBUTtZQUN2QixnQkFBZ0IsRUFBRSxRQUFRO1lBQzFCLGNBQWMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJO1lBQzFCLFVBQVUsRUFBRSxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUM7Z0JBQzFCLGtCQUFrQixFQUFFLENBQUUsSUFBSSxDQUFDLE1BQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQzthQUMxRCxDQUFDO1NBQ0gsQ0FDRixDQUFDO1FBQ0YsSUFBSSxVQUFVLENBQUMsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQzdCLE1BQU0sT0FBTyxHQUFHLG1DQUFtQyxTQUFTLEtBQUssVUFBVSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3pGLE1BQU0sSUFBSSxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckMsQ0FBQztRQUNELE9BQU8sVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQseUJBQXlCLENBQUMsT0FRekI7UUFDQyxNQUFNLEVBQ0osS0FBSyxFQUNMLFdBQVcsRUFDWCxjQUFjLEdBQUcsS0FBSyxFQUN0QixjQUFjLEdBQUcsS0FBSyxFQUN0QixhQUFhLEdBQUcsS0FBSyxFQUNyQixlQUFlLEdBQUcsS0FBSyxFQUN2QixTQUFTLEdBQ1YsR0FBRyxPQUFPLENBQUM7UUFDWixNQUFNLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDN0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxlQUFlLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUN0RCxJQUFJLGNBQWM7WUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLGtCQUFrQixFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzNELElBQUksY0FBYztZQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDM0QsSUFBSSxhQUFhO1lBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN6RCxJQUFJLGVBQWU7WUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLG1CQUFtQixFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzdELE1BQU0sWUFBWSxHQUFHLFNBQVM7WUFDNUIsQ0FBQyxDQUFDLE9BQU8sa0JBQWtCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUU7WUFDbEUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNQLE9BQU8sR0FBRyxJQUFJLE1BQU0sS0FBSyx5QkFBeUIsV0FBVyxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUUsR0FBRyxZQUFZLEVBQUUsQ0FBQztJQUN0RyxDQUFDO0lBRUQsS0FBSyxDQUFDLGdCQUFnQixDQUNwQixTQUFpQixFQUNqQixHQUFHLElBQTZCO1FBRWhDLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUNsQixNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLGtCQUFrQixFQUFFLElBQUksQ0FBQyxDQUNsRCxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM3QixNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQ2pDLEtBQUssRUFDTCxNQUFNLFNBQVMsb0RBQW9ELEVBQ25FLFNBQVMsRUFDVCxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFDeEIsRUFBRSxPQUFPLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFDbkMsR0FBRyxFQUNILEdBQUcsT0FBTyxDQUNYLENBQUM7UUFDRixJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDNUIsTUFBTSxPQUFPLEdBQUcsMEJBQTBCLFNBQVMsS0FBSyxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDOUUsTUFBTSxJQUFJLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyQyxDQUFDO1FBQ0QsTUFBTSxJQUFJLEdBQUcsYUFBYSxDQUFNLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM3QixNQUFNLE9BQU8sR0FBRyxnQ0FBZ0MsU0FBUyxFQUFFLENBQUM7WUFDNUQsTUFBTSxJQUFJLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNuQyxDQUFDO0lBQ0gsQ0FBQztJQUVPLGdCQUFnQixDQUFDLE1BQXlCO1FBQ2hELE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUNsQixPQUFPLEVBQUUsR0FBRyxNQUFNLENBQUMsUUFBUSxNQUFNLE1BQU0sQ0FBQyxJQUFJLEVBQUU7WUFDOUMsY0FBYyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUk7WUFDMUIsVUFBVSxFQUFFLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQztnQkFDMUIsa0JBQWtCLEVBQUUsQ0FBRSxJQUFJLENBQUMsTUFBYyxDQUFDLFlBQVksRUFBRSxDQUFDO2FBQzFELENBQUM7U0FDSCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRVMsVUFBVSxDQUFDLEtBQVk7UUFDL0IsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsSUFBSSxJQUFJLGVBQWUsQ0FBQztRQUMvRCxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFM0MsSUFBSSxZQUFZLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLFlBQVksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN2RSxPQUFPLElBQUksYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3BDLENBQUM7UUFFRCxJQUFJLFlBQVksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxZQUFZLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLFlBQVksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNqSCxPQUFPLElBQUksYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3BDLENBQUM7UUFFRCxJQUFJLFlBQVksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDN0csT0FBTyxJQUFJLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN0QyxDQUFDO1FBRUQsSUFBSSxZQUFZLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLFlBQVksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMxRSxPQUFPLElBQUksYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3BDLENBQUM7UUFFRCxJQUFJLFlBQVksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3ZFLE9BQU8sSUFBSSxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEMsQ0FBQztRQUVELE9BQU8sSUFBSSxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVPLEtBQUssQ0FBQyxPQUFPLENBQ25CLE1BQXlDLEVBQ3pDLEdBQVcsRUFDWCxPQUFnQixFQUNoQixPQUErQixFQUMvQixLQUEwQixFQUMxQixXQUFtQixFQUNuQixHQUFHLElBQXlCO1FBRTVCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO1lBQ3pCLE1BQU07WUFDTixHQUFHO1lBQ0gsSUFBSSxFQUNGLE9BQU8sS0FBSyxTQUFTO2dCQUNuQixDQUFDLENBQUMsU0FBUztnQkFDWCxDQUFDLENBQUMsT0FBTyxPQUFPLEtBQUssUUFBUTtvQkFDM0IsQ0FBQyxDQUFDLE9BQU87b0JBQ1QsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDO1lBQy9CLElBQUksRUFBRSxPQUFPO2dCQUNYLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUSxFQUFFO2dCQUM1RCxDQUFDLENBQUMsU0FBUztZQUNiLGNBQWMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJO1lBQzFCLFVBQVUsRUFBRSxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUM7Z0JBQzFCLGtCQUFrQixFQUFFLENBQUUsSUFBSSxDQUFDLE1BQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQzthQUMxRCxDQUFDO1lBQ0YsR0FBRyxLQUFLO1NBQ1QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBL05XO0lBRFQsT0FBTyxFQUFFOzhCQUNjLGlCQUFpQjsyREFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJhZFJlcXVlc3RFcnJvcixcbiAgQ29uZmxpY3RFcnJvcixcbiAgSW50ZXJuYWxFcnJvcixcbiAgTm90Rm91bmRFcnJvcixcbn0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBDb250ZXh0dWFsQXJncywgTWF5YmVDb250ZXh0dWFsQXJnIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBDbGllbnRCYXNlZFNlcnZpY2UsIHNlcnZpY2UgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB0eXBlIHtcbiAgS2liYW5hU2V0dXBDb25maWcsXG4gIEtpYmFuYVVzZXIsXG59IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IEF4aW9zLCB7IHR5cGUgQXhpb3NJbnN0YW5jZSB9IGZyb20gXCJheGlvc1wiO1xuaW1wb3J0ICogYXMgZnMgZnJvbSBcIm5vZGU6ZnNcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0ICogYXMgaHR0cHMgZnJvbSBcIm5vZGU6aHR0cHNcIjtcbmltcG9ydCBGb3JtRGF0YSBmcm9tIFwiZm9ybS1kYXRhXCI7XG5pbXBvcnQgeyBLaWJhbmFBdXRoU2VydmljZSB9IGZyb20gXCIuL0tpYmFuYUF1dGhTZXJ2aWNlXCI7XG5pbXBvcnQgeyBwYXJzZUpzb25Cb2R5IH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9ydW50aW1lXCI7XG5cbmV4cG9ydCBjbGFzcyBLaWJhbmFEYXNoYm9hcmRTZXJ2aWNlIGV4dGVuZHMgQ2xpZW50QmFzZWRTZXJ2aWNlPFxuICBBeGlvc0luc3RhbmNlLFxuICBLaWJhbmFTZXR1cENvbmZpZ1xuPiB7XG4gIEBzZXJ2aWNlKClcbiAgcHJvdGVjdGVkIGF1dGhTZXJ2aWNlITogS2liYW5hQXV0aFNlcnZpY2U7XG5cbiAgYXN5bmMgaW5pdGlhbGl6ZShcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHsgY29uZmlnOiBLaWJhbmFTZXR1cENvbmZpZzsgY2xpZW50OiBBeGlvc0luc3RhbmNlIH0+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiaW5pdGlhbGl6ZVwiLCB0cnVlKVxuICAgICkuZm9yKHRoaXMuaW5pdGlhbGl6ZSk7XG4gICAgY29uc3QgY29uZmlnID0gY3R4QXJnc1swXSBhcyBLaWJhbmFTZXR1cENvbmZpZztcbiAgICB0aGlzLl9jb25maWcgPSBjb25maWc7XG4gICAgY29uc3QgY2xpZW50ID0gdGhpcy5jcmVhdGVIdHRwQ2xpZW50KGNvbmZpZyk7XG4gICAgdGhpcy5fY2xpZW50ID0gY2xpZW50O1xuICAgIHJldHVybiB7IGNvbmZpZywgY2xpZW50IH07XG4gIH1cblxuICBhc3luYyBjbG9uZURlZmF1bHREYXNoYm9hcmRzKFxuICAgIHJlYWxtTmFtZTogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImNsb25lRGVmYXVsdERhc2hib2FyZHNcIiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLmNsb25lRGVmYXVsdERhc2hib2FyZHMpO1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5yZXF1ZXN0KFxuICAgICAgXCJHRVRcIixcbiAgICAgIGAvcy9kZWZhdWx0L2FwaS9zYXZlZF9vYmplY3RzL19maW5kP3R5cGU9ZGFzaGJvYXJkJnBlcl9wYWdlPTEwMDBgLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgdGhpcy5jb25maWcuYWRtaW5BcGlVc2VyLFxuICAgICAgeyBoZWFkZXJzOiB7IFwia2JuLXhzcmZcIjogXCJ0cnVlXCIgfSB9LFxuICAgICAgMjAwLFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gICAgaWYgKHJlc3BvbnNlLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYFVuYWJsZSB0byBsaXN0IGRhc2hib2FyZHMgZnJvbSBkZWZhdWx0IHNwYWNlOiAke3Jlc3BvbnNlLnN0YXR1c1RleHR9YDtcbiAgICAgIHRocm93IG5ldyBCYWRSZXF1ZXN0RXJyb3IobWVzc2FnZSk7XG4gICAgfVxuICAgIGNvbnN0IGRhdGEgPSBwYXJzZUpzb25Cb2R5PGFueT4ocmVzcG9uc2UuZGF0YSkgPz8ge307XG4gICAgY29uc3QgZGFzaGJvYXJkczogQXJyYXk8eyBpZDogc3RyaW5nIH0+ID0gZGF0YS5zYXZlZF9vYmplY3RzID8/IFtdO1xuICAgIGlmIChkYXNoYm9hcmRzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IGNvcHlSZXNwID0gYXdhaXQgdGhpcy5yZXF1ZXN0KFxuICAgICAgXCJQT1NUXCIsXG4gICAgICBgL2FwaS9zcGFjZXMvX2NvcHlfc2F2ZWRfb2JqZWN0c2AsXG4gICAgICB7XG4gICAgICAgIHNwYWNlczogW3JlYWxtTmFtZV0sXG4gICAgICAgIG9iamVjdHM6IGRhc2hib2FyZHMubWFwKChkYXNoYm9hcmQpID0+ICh7XG4gICAgICAgICAgaWQ6IGRhc2hib2FyZC5pZCxcbiAgICAgICAgICB0eXBlOiBcImRhc2hib2FyZFwiLFxuICAgICAgICB9KSksXG4gICAgICAgIGluY2x1ZGVSZWZlcmVuY2VzOiB0cnVlLFxuICAgICAgICBjcmVhdGVOZXdDb3BpZXM6IHRydWUsXG4gICAgICAgIG92ZXJ3cml0ZTogZmFsc2UsXG4gICAgICB9LFxuICAgICAgdGhpcy5jb25maWcuYWRtaW5BcGlVc2VyLFxuICAgICAgeyBoZWFkZXJzOiB7IFwia2JuLXhzcmZcIjogXCJ0cnVlXCIsIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0gfSxcbiAgICAgIDIwMCxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuICAgIGlmIChjb3B5UmVzcC5zdGF0dXMgPj0gMzAwKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYFVuYWJsZSB0byBjb3B5IGRhc2hib2FyZHMgdG8gJHtyZWFsbU5hbWV9OiAke2NvcHlSZXNwLnN0YXR1c1RleHR9YDtcbiAgICAgIHRocm93IG5ldyBCYWRSZXF1ZXN0RXJyb3IobWVzc2FnZSk7XG4gICAgfVxuXG4gICAgY29uc3QgYXNzZXRSb290ID0gdGhpcy5jb25maWcuZGFzaGJvYXJkSW1wb3J0UGF0aCA/PyB0aGlzLmNvbmZpZy5hc3NldHM7XG4gICAgaWYgKCFhc3NldFJvb3QpIHtcbiAgICAgIHJldHVybiBkYXNoYm9hcmRzWzBdPy5pZDtcbiAgICB9XG5cbiAgICBjb25zdCBuZGpzb25QYXRoID0gcGF0aC5qb2luKHByb2Nlc3MuY3dkKCksIGFzc2V0Um9vdCwgXCJwbGEtc2Nhbi5uZGpzb25cIik7XG4gICAgaWYgKCFmcy5leGlzdHNTeW5jKG5kanNvblBhdGgpKSByZXR1cm4gZGFzaGJvYXJkc1swXT8uaWQ7XG4gICAgY29uc3QgZm9ybSA9IG5ldyAoRm9ybURhdGEgYXMgYW55KSgpO1xuICAgIGZvcm0uYXBwZW5kKFwiZmlsZVwiLCBmcy5jcmVhdGVSZWFkU3RyZWFtKG5kanNvblBhdGgpKTtcbiAgICBjb25zdCBpbXBvcnRSZXNwID0gYXdhaXQgQXhpb3MucG9zdChcbiAgICAgIGAke3RoaXMuY29uZmlnLnByb3RvY29sfTovLyR7dGhpcy5jb25maWcuaG9zdH0vcy8ke3JlYWxtTmFtZX0vYXBpL3NhdmVkX29iamVjdHMvX2ltcG9ydD9vdmVyd3JpdGU9dHJ1ZWAsXG4gICAgICBmb3JtLFxuICAgICAge1xuICAgICAgICBhdXRoOiB0aGlzLmNvbmZpZy5hZG1pbkFwaVVzZXJcbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgdXNlcm5hbWU6IHRoaXMuY29uZmlnLmFkbWluQXBpVXNlci51c2VybmFtZSxcbiAgICAgICAgICAgICAgcGFzc3dvcmQ6IHRoaXMuY29uZmlnLmFkbWluQXBpVXNlci5wYXNzd29yZCxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgIC4uLmZvcm0uZ2V0SGVhZGVycygpLFxuICAgICAgICAgIFwia2JuLXhzcmZcIjogXCJ0cnVlXCIsXG4gICAgICAgIH0sXG4gICAgICAgIG1heEJvZHlMZW5ndGg6IEluZmluaXR5LFxuICAgICAgICBtYXhDb250ZW50TGVuZ3RoOiBJbmZpbml0eSxcbiAgICAgICAgdmFsaWRhdGVTdGF0dXM6ICgpID0+IHRydWUsXG4gICAgICAgIGh0dHBzQWdlbnQ6IG5ldyBodHRwcy5BZ2VudCh7XG4gICAgICAgICAgcmVqZWN0VW5hdXRob3JpemVkOiAoKHRoaXMuY29uZmlnIGFzIGFueSkuaXNQcm9kdWN0aW9uKCkpLFxuICAgICAgICB9KSxcbiAgICAgIH1cbiAgICApO1xuICAgIGlmIChpbXBvcnRSZXNwLnN0YXR1cyA+PSAzMDApIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgVW5hYmxlIHRvIGltcG9ydCBkYXNoYm9hcmRzIGZvciAke3JlYWxtTmFtZX06ICR7aW1wb3J0UmVzcC5zdGF0dXNUZXh0fWA7XG4gICAgICB0aHJvdyBuZXcgQmFkUmVxdWVzdEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cbiAgICByZXR1cm4gZGFzaGJvYXJkc1swXT8uaWQ7XG4gIH1cblxuICBnZW5lcmF0ZURhc2hib2FyZEVtYmVkVXJsKG9wdGlvbnM6IHtcbiAgICBzcGFjZTogc3RyaW5nO1xuICAgIGRhc2hib2FyZElkOiBzdHJpbmc7XG4gICAgc2hvd1RpbWVGaWx0ZXI/OiBib29sZWFuO1xuICAgIHNob3dRdWVyeUlucHV0PzogYm9vbGVhbjtcbiAgICBzaG93RmlsdGVyQmFyPzogYm9vbGVhbjtcbiAgICBoaWRlUGFuZWxUaXRsZXM/OiBib29sZWFuO1xuICAgIHRpbWVSYW5nZT86IHsgZnJvbTogc3RyaW5nOyB0bzogc3RyaW5nIH07XG4gIH0pOiBzdHJpbmcge1xuICAgIGNvbnN0IHtcbiAgICAgIHNwYWNlLFxuICAgICAgZGFzaGJvYXJkSWQsXG4gICAgICBzaG93VGltZUZpbHRlciA9IGZhbHNlLFxuICAgICAgc2hvd1F1ZXJ5SW5wdXQgPSBmYWxzZSxcbiAgICAgIHNob3dGaWx0ZXJCYXIgPSBmYWxzZSxcbiAgICAgIGhpZGVQYW5lbFRpdGxlcyA9IGZhbHNlLFxuICAgICAgdGltZVJhbmdlLFxuICAgIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IGJhc2UgPSBgJHt0aGlzLmNvbmZpZy5wcm90b2NvbH06Ly8ke3RoaXMuY29uZmlnLmhvc3R9YDtcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHsgZW1iZWQ6IFwidHJ1ZVwiIH0pO1xuICAgIGlmIChzaG93VGltZUZpbHRlcikgcGFyYW1zLnNldChcInNob3ctdGltZS1maWx0ZXJcIiwgXCJ0cnVlXCIpO1xuICAgIGlmIChzaG93UXVlcnlJbnB1dCkgcGFyYW1zLnNldChcInNob3ctcXVlcnktaW5wdXRcIiwgXCJ0cnVlXCIpO1xuICAgIGlmIChzaG93RmlsdGVyQmFyKSBwYXJhbXMuc2V0KFwic2hvdy1maWx0ZXItYmFyXCIsIFwidHJ1ZVwiKTtcbiAgICBpZiAoaGlkZVBhbmVsVGl0bGVzKSBwYXJhbXMuc2V0KFwiaGlkZS1wYW5lbC10aXRsZXNcIiwgXCJ0cnVlXCIpO1xuICAgIGNvbnN0IHRpbWVGcmFnbWVudCA9IHRpbWVSYW5nZVxuICAgICAgPyBgJl9nPSR7ZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KHsgdGltZTogdGltZVJhbmdlIH0pKX1gXG4gICAgICA6IFwiXCI7XG4gICAgcmV0dXJuIGAke2Jhc2V9L3MvJHtzcGFjZX0vYXBwL2Rhc2hib2FyZHMjL3ZpZXcvJHtkYXNoYm9hcmRJZH0/JHtwYXJhbXMudG9TdHJpbmcoKX0ke3RpbWVGcmFnbWVudH1gO1xuICB9XG5cbiAgYXN5bmMgdmVyaWZ5U3BhY2VTZXR1cChcbiAgICByZWFsbU5hbWU6IHN0cmluZyxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwidmVyaWZ5U3BhY2VTZXR1cFwiLCB0cnVlKVxuICAgICkuZm9yKHRoaXMudmVyaWZ5U3BhY2VTZXR1cCk7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLnJlcXVlc3QoXG4gICAgICBcIkdFVFwiLFxuICAgICAgYC9zLyR7cmVhbG1OYW1lfS9hcGkvc2F2ZWRfb2JqZWN0cy9fZmluZD90eXBlPWRhc2hib2FyZCZwZXJfcGFnZT0xYCxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIHRoaXMuY29uZmlnLmFkbWluQXBpVXNlcixcbiAgICAgIHsgaGVhZGVyczogeyBcImtibi14c3JmXCI6IFwidHJ1ZVwiIH0gfSxcbiAgICAgIDIwMCxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuICAgIGlmIChyZXNwb25zZS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGBVbmFibGUgdG8gdmVyaWZ5IHNwYWNlICR7cmVhbG1OYW1lfTogJHtyZXNwb25zZS5zdGF0dXNUZXh0fWA7XG4gICAgICB0aHJvdyBuZXcgQmFkUmVxdWVzdEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cbiAgICBjb25zdCBkYXRhID0gcGFyc2VKc29uQm9keTxhbnk+KHJlc3BvbnNlLmRhdGEpO1xuICAgIGlmICgoZGF0YT8udG90YWwgPz8gMCkgPT09IDApIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgTm8gZGFzaGJvYXJkcyBmb3VuZCBpbiBzcGFjZSAke3JlYWxtTmFtZX1gO1xuICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kRXJyb3IobWVzc2FnZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVIdHRwQ2xpZW50KGNvbmZpZzogS2liYW5hU2V0dXBDb25maWcpOiBBeGlvc0luc3RhbmNlIHtcbiAgICByZXR1cm4gQXhpb3MuY3JlYXRlKHtcbiAgICAgIGJhc2VVUkw6IGAke2NvbmZpZy5wcm90b2NvbH06Ly8ke2NvbmZpZy5ob3N0fWAsXG4gICAgICB2YWxpZGF0ZVN0YXR1czogKCkgPT4gdHJ1ZSxcbiAgICAgIGh0dHBzQWdlbnQ6IG5ldyBodHRwcy5BZ2VudCh7XG4gICAgICAgIHJlamVjdFVuYXV0aG9yaXplZDogKCh0aGlzLmNvbmZpZyBhcyBhbnkpLmlzUHJvZHVjdGlvbigpKSxcbiAgICAgIH0pLFxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHBhcnNlRXJyb3IoZXJyb3I6IEVycm9yKTogRXJyb3Ige1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBlcnJvci5tZXNzYWdlIHx8IGVycm9yLm5hbWUgfHwgXCJVbmtub3duIGVycm9yXCI7XG4gICAgY29uc3QgbG93ZXJNZXNzYWdlID0gbWVzc2FnZS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgaWYgKGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIm5vdCBmb3VuZFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDRcIikpIHtcbiAgICAgIHJldHVybiBuZXcgTm90Rm91bmRFcnJvcihtZXNzYWdlKTtcbiAgICB9XG5cbiAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiYWxyZWFkeSBleGlzdHNcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiY29uZmxpY3RcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDA5XCIpKSB7XG4gICAgICByZXR1cm4gbmV3IENvbmZsaWN0RXJyb3IobWVzc2FnZSk7XG4gICAgfVxuXG4gICAgaWYgKGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcImludmFsaWRcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiYmFkIHJlcXVlc3RcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDAwXCIpKSB7XG4gICAgICByZXR1cm4gbmV3IEJhZFJlcXVlc3RFcnJvcihtZXNzYWdlKTtcbiAgICB9XG5cbiAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwidW5hdXRob3JpemVkXCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQwMVwiKSkge1xuICAgICAgcmV0dXJuIG5ldyBOb3RGb3VuZEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cblxuICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJmb3JiaWRkZW5cIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDAzXCIpKSB7XG4gICAgICByZXR1cm4gbmV3IE5vdEZvdW5kRXJyb3IobWVzc2FnZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBJbnRlcm5hbEVycm9yKG1lc3NhZ2UpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyByZXF1ZXN0KFxuICAgIG1ldGhvZDogXCJHRVRcIiB8IFwiUE9TVFwiIHwgXCJQVVRcIiB8IFwiREVMRVRFXCIsXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgcGF5bG9hZDogdW5rbm93bixcbiAgICBhcGlVc2VyOiBLaWJhbmFVc2VyIHwgdW5kZWZpbmVkLFxuICAgIGV4dHJhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgIHN1Y2Nlc3NDb2RlOiBudW1iZXIsXG4gICAgLi4uYXJnczogQ29udGV4dHVhbEFyZ3M8YW55PlxuICApOiBQcm9taXNlPGFueT4ge1xuICAgIHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMucmVxdWVzdCk7XG4gICAgcmV0dXJuIHRoaXMuY2xpZW50LnJlcXVlc3Qoe1xuICAgICAgbWV0aG9kLFxuICAgICAgdXJsLFxuICAgICAgZGF0YTpcbiAgICAgICAgcGF5bG9hZCA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgPyB1bmRlZmluZWRcbiAgICAgICAgICA6IHR5cGVvZiBwYXlsb2FkID09PSBcInN0cmluZ1wiXG4gICAgICAgICAgICA/IHBheWxvYWRcbiAgICAgICAgICAgIDogSlNPTi5zdHJpbmdpZnkocGF5bG9hZCksXG4gICAgICBhdXRoOiBhcGlVc2VyXG4gICAgICAgID8geyB1c2VybmFtZTogYXBpVXNlci51c2VybmFtZSwgcGFzc3dvcmQ6IGFwaVVzZXIucGFzc3dvcmQgfVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIHZhbGlkYXRlU3RhdHVzOiAoKSA9PiB0cnVlLFxuICAgICAgaHR0cHNBZ2VudDogbmV3IGh0dHBzLkFnZW50KHtcbiAgICAgICAgcmVqZWN0VW5hdXRob3JpemVkOiAoKHRoaXMuY29uZmlnIGFzIGFueSkuaXNQcm9kdWN0aW9uKCkpLFxuICAgICAgfSksXG4gICAgICAuLi5leHRyYSxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
216
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS2liYW5hRGFzaGJvYXJkU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIktpYmFuYURhc2hib2FyZFNlcnZpY2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBSSxVQUFVLEdBQUcsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLFVBQVUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSTtJQUNqRixJQUFJLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzdILElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxJQUFJLE9BQU8sT0FBTyxDQUFDLFFBQVEsS0FBSyxVQUFVO1FBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7O1FBQzFILEtBQUssSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFBRSxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDO2dCQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVB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Q0FDL0MsRUFBRSxzQkFBc0IsQ0FBQyxTQUFTLEVBQUUsYUFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDNUQsODBvQkFBODBvQiIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX2RlY29yYXRlID0gKHRoaXMgJiYgdGhpcy5fX2RlY29yYXRlKSB8fCBmdW5jdGlvbiAoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpIHtcbiAgICB2YXIgYyA9IGFyZ3VtZW50cy5sZW5ndGgsIHIgPSBjIDwgMyA/IHRhcmdldCA6IGRlc2MgPT09IG51bGwgPyBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0YXJnZXQsIGtleSkgOiBkZXNjLCBkO1xuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5kZWNvcmF0ZSA9PT0gXCJmdW5jdGlvblwiKSByID0gUmVmbGVjdC5kZWNvcmF0ZShkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYyk7XG4gICAgZWxzZSBmb3IgKHZhciBpID0gZGVjb3JhdG9ycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgaWYgKGQgPSBkZWNvcmF0b3JzW2ldKSByID0gKGMgPCAzID8gZChyKSA6IGMgPiAzID8gZCh0YXJnZXQsIGtleSwgcikgOiBkKHRhcmdldCwga2V5KSkgfHwgcjtcbiAgICByZXR1cm4gYyA+IDMgJiYgciAmJiBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHIpLCByO1xufTtcbnZhciBfX21ldGFkYXRhID0gKHRoaXMgJiYgdGhpcy5fX21ldGFkYXRhKSB8fCBmdW5jdGlvbiAoaywgdikge1xuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5tZXRhZGF0YSA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gUmVmbGVjdC5tZXRhZGF0YShrLCB2KTtcbn07XG5pbXBvcnQgeyBCYWRSZXF1ZXN0RXJyb3IsIENvbmZsaWN0RXJyb3IsIEludGVybmFsRXJyb3IsIE5vdEZvdW5kRXJyb3IsIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBDbGllbnRCYXNlZFNlcnZpY2UsIHNlcnZpY2UgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCBBeGlvcyBmcm9tIFwiYXhpb3NcIjtcbmltcG9ydCAqIGFzIGZzIGZyb20gXCJub2RlOmZzXCI7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCAqIGFzIGh0dHBzIGZyb20gXCJub2RlOmh0dHBzXCI7XG5pbXBvcnQgRm9ybURhdGEgZnJvbSBcImZvcm0tZGF0YVwiO1xuaW1wb3J0IHsgS2liYW5hQXV0aFNlcnZpY2UgfSBmcm9tIFwiLi9LaWJhbmFBdXRoU2VydmljZS5qc1wiO1xuaW1wb3J0IHsgcGFyc2VKc29uQm9keSB9IGZyb20gXCIuLy4uLy4uL3NoYXJlZC9ydW50aW1lLmpzXCI7XG5leHBvcnQgY2xhc3MgS2liYW5hRGFzaGJvYXJkU2VydmljZSBleHRlbmRzIENsaWVudEJhc2VkU2VydmljZSB7XG4gICAgYXN5bmMgaW5pdGlhbGl6ZSguLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiaW5pdGlhbGl6ZVwiLCB0cnVlKSkuZm9yKHRoaXMuaW5pdGlhbGl6ZSk7XG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IGN0eEFyZ3NbMF07XG4gICAgICAgIHRoaXMuX2NvbmZpZyA9IGNvbmZpZztcbiAgICAgICAgY29uc3QgY2xpZW50ID0gdGhpcy5jcmVhdGVIdHRwQ2xpZW50KGNvbmZpZyk7XG4gICAgICAgIHRoaXMuX2NsaWVudCA9IGNsaWVudDtcbiAgICAgICAgcmV0dXJuIHsgY29uZmlnLCBjbGllbnQgfTtcbiAgICB9XG4gICAgYXN5bmMgY2xvbmVEZWZhdWx0RGFzaGJvYXJkcyhyZWFsbU5hbWUsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJjbG9uZURlZmF1bHREYXNoYm9hcmRzXCIsIHRydWUpKS5mb3IodGhpcy5jbG9uZURlZmF1bHREYXNoYm9hcmRzKTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLnJlcXVlc3QoXCJHRVRcIiwgYC9zL2RlZmF1bHQvYXBpL3NhdmVkX29iamVjdHMvX2ZpbmQ/dHlwZT1kYXNoYm9hcmQmcGVyX3BhZ2U9MTAwMGAsIHVuZGVmaW5lZCwgdGhpcy5jb25maWcuYWRtaW5BcGlVc2VyLCB7IGhlYWRlcnM6IHsgXCJrYm4teHNyZlwiOiBcInRydWVcIiB9IH0sIDIwMCwgLi4uY3R4QXJncyk7XG4gICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgY29uc3QgbWVzc2FnZSA9IGBVbmFibGUgdG8gbGlzdCBkYXNoYm9hcmRzIGZyb20gZGVmYXVsdCBzcGFjZTogJHtyZXNwb25zZS5zdGF0dXNUZXh0fWA7XG4gICAgICAgICAgICB0aHJvdyBuZXcgQmFkUmVxdWVzdEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRhdGEgPSBwYXJzZUpzb25Cb2R5KHJlc3BvbnNlLmRhdGEpID8/IHt9O1xuICAgICAgICBjb25zdCBkYXNoYm9hcmRzID0gZGF0YS5zYXZlZF9vYmplY3RzID8/IFtdO1xuICAgICAgICBpZiAoZGFzaGJvYXJkcy5sZW5ndGggPT09IDApXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICBjb25zdCBjb3B5UmVzcCA9IGF3YWl0IHRoaXMucmVxdWVzdChcIlBPU1RcIiwgYC9hcGkvc3BhY2VzL19jb3B5X3NhdmVkX29iamVjdHNgLCB7XG4gICAgICAgICAgICBzcGFjZXM6IFtyZWFsbU5hbWVdLFxuICAgICAgICAgICAgb2JqZWN0czogZGFzaGJvYXJkcy5tYXAoKGRhc2hib2FyZCkgPT4gKHtcbiAgICAgICAgICAgICAgICBpZDogZGFzaGJvYXJkLmlkLFxuICAgICAgICAgICAgICAgIHR5cGU6IFwiZGFzaGJvYXJkXCIsXG4gICAgICAgICAgICB9KSksXG4gICAgICAgICAgICBpbmNsdWRlUmVmZXJlbmNlczogdHJ1ZSxcbiAgICAgICAgICAgIGNyZWF0ZU5ld0NvcGllczogdHJ1ZSxcbiAgICAgICAgICAgIG92ZXJ3cml0ZTogZmFsc2UsXG4gICAgICAgIH0sIHRoaXMuY29uZmlnLmFkbWluQXBpVXNlciwgeyBoZWFkZXJzOiB7IFwia2JuLXhzcmZcIjogXCJ0cnVlXCIsIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0gfSwgMjAwLCAuLi5jdHhBcmdzKTtcbiAgICAgICAgaWYgKGNvcHlSZXNwLnN0YXR1cyA+PSAzMDApIHtcbiAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgVW5hYmxlIHRvIGNvcHkgZGFzaGJvYXJkcyB0byAke3JlYWxtTmFtZX06ICR7Y29weVJlc3Auc3RhdHVzVGV4dH1gO1xuICAgICAgICAgICAgdGhyb3cgbmV3IEJhZFJlcXVlc3RFcnJvcihtZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhc3NldFJvb3QgPSB0aGlzLmNvbmZpZy5kYXNoYm9hcmRJbXBvcnRQYXRoID8/IHRoaXMuY29uZmlnLmFzc2V0cztcbiAgICAgICAgaWYgKCFhc3NldFJvb3QpIHtcbiAgICAgICAgICAgIHJldHVybiBkYXNoYm9hcmRzWzBdPy5pZDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuZGpzb25QYXRoID0gcGF0aC5qb2luKHByb2Nlc3MuY3dkKCksIGFzc2V0Um9vdCwgXCJwbGEtc2Nhbi5uZGpzb25cIik7XG4gICAgICAgIGlmICghZnMuZXhpc3RzU3luYyhuZGpzb25QYXRoKSlcbiAgICAgICAgICAgIHJldHVybiBkYXNoYm9hcmRzWzBdPy5pZDtcbiAgICAgICAgY29uc3QgZm9ybSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgICAgICBmb3JtLmFwcGVuZChcImZpbGVcIiwgZnMuY3JlYXRlUmVhZFN0cmVhbShuZGpzb25QYXRoKSk7XG4gICAgICAgIGNvbnN0IGltcG9ydFJlc3AgPSBhd2FpdCBBeGlvcy5wb3N0KGAke3RoaXMuY29uZmlnLnByb3RvY29sfTovLyR7dGhpcy5jb25maWcuaG9zdH0vcy8ke3JlYWxtTmFtZX0vYXBpL3NhdmVkX29iamVjdHMvX2ltcG9ydD9vdmVyd3JpdGU9dHJ1ZWAsIGZvcm0sIHtcbiAgICAgICAgICAgIGF1dGg6IHRoaXMuY29uZmlnLmFkbWluQXBpVXNlclxuICAgICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgICB1c2VybmFtZTogdGhpcy5jb25maWcuYWRtaW5BcGlVc2VyLnVzZXJuYW1lLFxuICAgICAgICAgICAgICAgICAgICBwYXNzd29yZDogdGhpcy5jb25maWcuYWRtaW5BcGlVc2VyLnBhc3N3b3JkLFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAuLi5mb3JtLmdldEhlYWRlcnMoKSxcbiAgICAgICAgICAgICAgICBcImtibi14c3JmXCI6IFwidHJ1ZVwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG1heEJvZHlMZW5ndGg6IEluZmluaXR5LFxuICAgICAgICAgICAgbWF4Q29udGVudExlbmd0aDogSW5maW5pdHksXG4gICAgICAgICAgICB2YWxpZGF0ZVN0YXR1czogKCkgPT4gdHJ1ZSxcbiAgICAgICAgICAgIGh0dHBzQWdlbnQ6IG5ldyBodHRwcy5BZ2VudCh7XG4gICAgICAgICAgICAgICAgcmVqZWN0VW5hdXRob3JpemVkOiAodGhpcy5jb25maWcuaXNQcm9kdWN0aW9uKCkpLFxuICAgICAgICAgICAgfSksXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoaW1wb3J0UmVzcC5zdGF0dXMgPj0gMzAwKSB7XG4gICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gYFVuYWJsZSB0byBpbXBvcnQgZGFzaGJvYXJkcyBmb3IgJHtyZWFsbU5hbWV9OiAke2ltcG9ydFJlc3Auc3RhdHVzVGV4dH1gO1xuICAgICAgICAgICAgdGhyb3cgbmV3IEJhZFJlcXVlc3RFcnJvcihtZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGFzaGJvYXJkc1swXT8uaWQ7XG4gICAgfVxuICAgIGdlbmVyYXRlRGFzaGJvYXJkRW1iZWRVcmwob3B0aW9ucykge1xuICAgICAgICBjb25zdCB7IHNwYWNlLCBkYXNoYm9hcmRJZCwgc2hvd1RpbWVGaWx0ZXIgPSBmYWxzZSwgc2hvd1F1ZXJ5SW5wdXQgPSBmYWxzZSwgc2hvd0ZpbHRlckJhciA9IGZhbHNlLCBoaWRlUGFuZWxUaXRsZXMgPSBmYWxzZSwgdGltZVJhbmdlLCB9ID0gb3B0aW9ucztcbiAgICAgICAgY29uc3QgYmFzZSA9IGAke3RoaXMuY29uZmlnLnByb3RvY29sfTovLyR7dGhpcy5jb25maWcuaG9zdH1gO1xuICAgICAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHsgZW1iZWQ6IFwidHJ1ZVwiIH0pO1xuICAgICAgICBpZiAoc2hvd1RpbWVGaWx0ZXIpXG4gICAgICAgICAgICBwYXJhbXMuc2V0KFwic2hvdy10aW1lLWZpbHRlclwiLCBcInRydWVcIik7XG4gICAgICAgIGlmIChzaG93UXVlcnlJbnB1dClcbiAgICAgICAgICAgIHBhcmFtcy5zZXQoXCJzaG93LXF1ZXJ5LWlucHV0XCIsIFwidHJ1ZVwiKTtcbiAgICAgICAgaWYgKHNob3dGaWx0ZXJCYXIpXG4gICAgICAgICAgICBwYXJhbXMuc2V0KFwic2hvdy1maWx0ZXItYmFyXCIsIFwidHJ1ZVwiKTtcbiAgICAgICAgaWYgKGhpZGVQYW5lbFRpdGxlcylcbiAgICAgICAgICAgIHBhcmFtcy5zZXQoXCJoaWRlLXBhbmVsLXRpdGxlc1wiLCBcInRydWVcIik7XG4gICAgICAgIGNvbnN0IHRpbWVGcmFnbWVudCA9IHRpbWVSYW5nZVxuICAgICAgICAgICAgPyBgJl9nPSR7ZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KHsgdGltZTogdGltZVJhbmdlIH0pKX1gXG4gICAgICAgICAgICA6IFwiXCI7XG4gICAgICAgIHJldHVybiBgJHtiYXNlfS9zLyR7c3BhY2V9L2FwcC9kYXNoYm9hcmRzIy92aWV3LyR7ZGFzaGJvYXJkSWR9PyR7cGFyYW1zLnRvU3RyaW5nKCl9JHt0aW1lRnJhZ21lbnR9YDtcbiAgICB9XG4gICAgYXN5bmMgdmVyaWZ5U3BhY2VTZXR1cChyZWFsbU5hbWUsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJ2ZXJpZnlTcGFjZVNldHVwXCIsIHRydWUpKS5mb3IodGhpcy52ZXJpZnlTcGFjZVNldHVwKTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLnJlcXVlc3QoXCJHRVRcIiwgYC9zLyR7cmVhbG1OYW1lfS9hcGkvc2F2ZWRfb2JqZWN0cy9fZmluZD90eXBlPWRhc2hib2FyZCZwZXJfcGFnZT0xYCwgdW5kZWZpbmVkLCB0aGlzLmNvbmZpZy5hZG1pbkFwaVVzZXIsIHsgaGVhZGVyczogeyBcImtibi14c3JmXCI6IFwidHJ1ZVwiIH0gfSwgMjAwLCAuLi5jdHhBcmdzKTtcbiAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gYFVuYWJsZSB0byB2ZXJpZnkgc3BhY2UgJHtyZWFsbU5hbWV9OiAke3Jlc3BvbnNlLnN0YXR1c1RleHR9YDtcbiAgICAgICAgICAgIHRocm93IG5ldyBCYWRSZXF1ZXN0RXJyb3IobWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZGF0YSA9IHBhcnNlSnNvbkJvZHkocmVzcG9uc2UuZGF0YSk7XG4gICAgICAgIGlmICgoZGF0YT8udG90YWwgPz8gMCkgPT09IDApIHtcbiAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgTm8gZGFzaGJvYXJkcyBmb3VuZCBpbiBzcGFjZSAke3JlYWxtTmFtZX1gO1xuICAgICAgICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kRXJyb3IobWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY3JlYXRlSHR0cENsaWVudChjb25maWcpIHtcbiAgICAgICAgcmV0dXJuIEF4aW9zLmNyZWF0ZSh7XG4gICAgICAgICAgICBiYXNlVVJMOiBgJHtjb25maWcucHJvdG9jb2x9Oi8vJHtjb25maWcuaG9zdH1gLFxuICAgICAgICAgICAgdmFsaWRhdGVTdGF0dXM6ICgpID0+IHRydWUsXG4gICAgICAgICAgICBodHRwc0FnZW50OiBuZXcgaHR0cHMuQWdlbnQoe1xuICAgICAgICAgICAgICAgIHJlamVjdFVuYXV0aG9yaXplZDogKHRoaXMuY29uZmlnLmlzUHJvZHVjdGlvbigpKSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgcGFyc2VFcnJvcihlcnJvcikge1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gZXJyb3IubWVzc2FnZSB8fCBlcnJvci5uYW1lIHx8IFwiVW5rbm93biBlcnJvclwiO1xuICAgICAgICBjb25zdCBsb3dlck1lc3NhZ2UgPSBtZXNzYWdlLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJub3QgZm91bmRcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDA0XCIpKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IE5vdEZvdW5kRXJyb3IobWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcImFscmVhZHkgZXhpc3RzXCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcImNvbmZsaWN0XCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQwOVwiKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBDb25mbGljdEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJpbnZhbGlkXCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcImJhZCByZXF1ZXN0XCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQwMFwiKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBCYWRSZXF1ZXN0RXJyb3IobWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcInVuYXV0aG9yaXplZFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDFcIikpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgTm90Rm91bmRFcnJvcihtZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiZm9yYmlkZGVuXCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQwM1wiKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBOb3RGb3VuZEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgSW50ZXJuYWxFcnJvcihtZXNzYWdlKTtcbiAgICB9XG4gICAgYXN5bmMgcmVxdWVzdChtZXRob2QsIHVybCwgcGF5bG9hZCwgYXBpVXNlciwgZXh0cmEsIHN1Y2Nlc3NDb2RlLCAuLi5hcmdzKSB7XG4gICAgICAgIHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMucmVxdWVzdCk7XG4gICAgICAgIHJldHVybiB0aGlzLmNsaWVudC5yZXF1ZXN0KHtcbiAgICAgICAgICAgIG1ldGhvZCxcbiAgICAgICAgICAgIHVybCxcbiAgICAgICAgICAgIGRhdGE6IHBheWxvYWQgPT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgID8gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgOiB0eXBlb2YgcGF5bG9hZCA9PT0gXCJzdHJpbmdcIlxuICAgICAgICAgICAgICAgICAgICA/IHBheWxvYWRcbiAgICAgICAgICAgICAgICAgICAgOiBKU09OLnN0cmluZ2lmeShwYXlsb2FkKSxcbiAgICAgICAgICAgIGF1dGg6IGFwaVVzZXJcbiAgICAgICAgICAgICAgICA/IHsgdXNlcm5hbWU6IGFwaVVzZXIudXNlcm5hbWUsIHBhc3N3b3JkOiBhcGlVc2VyLnBhc3N3b3JkIH1cbiAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHZhbGlkYXRlU3RhdHVzOiAoKSA9PiB0cnVlLFxuICAgICAgICAgICAgaHR0cHNBZ2VudDogbmV3IGh0dHBzLkFnZW50KHtcbiAgICAgICAgICAgICAgICByZWplY3RVbmF1dGhvcml6ZWQ6ICh0aGlzLmNvbmZpZy5pc1Byb2R1Y3Rpb24oKSksXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIC4uLmV4dHJhLFxuICAgICAgICB9KTtcbiAgICB9XG59XG5fX2RlY29yYXRlKFtcbiAgICBzZXJ2aWNlKCksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIEtpYmFuYUF1dGhTZXJ2aWNlKVxuXSwgS2liYW5hRGFzaGJvYXJkU2VydmljZS5wcm90b3R5cGUsIFwiYXV0aFNlcnZpY2VcIiwgdm9pZCAwKTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVMybGlZVzVoUkdGemFHSnZZWEprVTJWeWRtbGpaUzVxY3lJc0luTnZkWEpqWlZKdmIzUWlPaUlpTENKemIzVnlZMlZ6SWpwYklpNHVMeTR1THk0dUx5NHVMM055WXk5cmFXSmhibUV2YzJWeWRtbGpaWE12UzJsaVlXNWhSR0Z6YUdKdllYSmtVMlZ5ZG1salpTNTBjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lPenM3T3pzN096czdRVUZCUVN4UFFVRlBMRVZCUTB3c1pVRkJaU3hGUVVObUxHRkJRV0VzUlVGRFlpeGhRVUZoTEVWQlEySXNZVUZCWVN4SFFVTmtMRTFCUVUwc2VVSkJRWGxDTEVOQlFVTTdRVUZGYWtNc1QwRkJUeXhGUVVGRkxHdENRVUZyUWl4RlFVRkZMRTlCUVU4c1JVRkJSU3hOUVVGTkxHZENRVUZuUWl4RFFVRkRPMEZCU3pkRUxFOUJRVThzUzBGQk5rSXNUVUZCVFN4UFFVRlBMRU5CUVVNN1FVRkRiRVFzVDBGQlR5eExRVUZMTEVWQlFVVXNUVUZCVFN4VFFVRlRMRU5CUVVNN1FVRkRPVUlzVDBGQlR5eExRVUZMTEVsQlFVa3NUVUZCVFN4WFFVRlhMRU5CUVVNN1FVRkRiRU1zVDBGQlR5eExRVUZMTEV0QlFVc3NUVUZCVFN4WlFVRlpMRU5CUVVNN1FVRkRjRU1zVDBGQlR5eFJRVUZSTEUxQlFVMHNWMEZCVnl4RFFVRkRPMEZCUTJwRExFOUJRVThzUlVGQlJTeHBRa0ZCYVVJc1JVRkJSU3dyUWtGQk5FSTdRVUZEZUVRc1QwRkJUeXhGUVVGRkxHRkJRV0VzUlVGQlJTeHJRMEZCTmtJN1FVRkZja1FzVFVGQlRTeFBRVUZQTEhOQ1FVRjFRaXhUUVVGUkxHdENRVWN6UXp0SlFVbERMRXRCUVVzc1EwRkJReXhWUVVGVkxFTkJRMlFzUjBGQlJ5eEpRVUUyUWp0UlFVVm9ReXhOUVVGTkxFVkJRVVVzVDBGQlR5eEZRVUZGTEVkQlFVY3NRMEZEYkVJc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NSVUZCUlN4WlFVRlpMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRelZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF6dFJRVU4yUWl4TlFVRk5MRTFCUVUwc1IwRkJSeXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZ6UWl4RFFVRkRPMUZCUXk5RExFbEJRVWtzUTBGQlF5eFBRVUZQTEVkQlFVY3NUVUZCVFN4RFFVRkRPMUZCUTNSQ0xFMUJRVTBzVFVGQlRTeEhRVUZITEVsQlFVa3NRMEZCUXl4blFrRkJaMElzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0UlFVTTNReXhKUVVGSkxFTkJRVU1zVDBGQlR5eEhRVUZITEUxQlFVMHNRMEZCUXp0UlFVTjBRaXhQUVVGUExFVkJRVVVzVFVGQlRTeEZRVUZGTEUxQlFVMHNSVUZCUlN4RFFVRkRPMGxCUXpWQ0xFTkJRVU03U1VGRlJDeExRVUZMTEVOQlFVTXNjMEpCUVhOQ0xFTkJRekZDTEZOQlFXbENMRVZCUTJwQ0xFZEJRVWNzU1VGQk5rSTdVVUZGYUVNc1RVRkJUU3hGUVVGRkxFOUJRVThzUlVGQlJTeEhRVUZITEVOQlEyeENMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVWQlFVVXNkMEpCUVhkQ0xFVkJRVVVzU1VGQlNTeERRVUZETEVOQlEzaEVMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eHpRa0ZCYzBJc1EwRkJReXhEUVVGRE8xRkJRMjVETEUxQlFVMHNVVUZCVVN4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGRGFrTXNTMEZCU3l4RlFVTk1MR2xGUVVGcFJTeEZRVU5xUlN4VFFVRlRMRVZCUTFRc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eFpRVUZaTEVWQlEzaENMRVZCUVVVc1QwRkJUeXhGUVVGRkxFVkJRVVVzVlVGQlZTeEZRVUZGTEUxQlFVMHNSVUZCUlN4RlFVRkZMRVZCUTI1RExFZEJRVWNzUlVGRFNDeEhRVUZITEU5QlFVOHNRMEZEV0N4RFFVRkRPMUZCUTBZc1NVRkJTU3hSUVVGUkxFTkJRVU1zVFVGQlRTeExRVUZMTEVkQlFVY3NSVUZCUlN4RFFVRkRPMWxCUXpWQ0xFMUJRVTBzVDBGQlR5eEhRVUZITEdsRVFVRnBSQ3hSUVVGUkxFTkJRVU1zVlVGQlZTeEZRVUZGTEVOQlFVTTdXVUZEZGtZc1RVRkJUU3hKUVVGSkxHVkJRV1VzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVTnlReXhEUVVGRE8xRkJRMFFzVFVGQlRTeEpRVUZKTEVkQlFVY3NZVUZCWVN4RFFVRk5MRkZCUVZFc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeEZRVUZGTEVOQlFVTTdVVUZEY2tRc1RVRkJUU3hWUVVGVkxFZEJRVEJDTEVsQlFVa3NRMEZCUXl4aFFVRmhMRWxCUVVrc1JVRkJSU3hEUVVGRE8xRkJRMjVGTEVsQlFVa3NWVUZCVlN4RFFVRkRMRTFCUVUwc1MwRkJTeXhEUVVGRE8xbEJRVVVzVDBGQlR5eFRRVUZUTEVOQlFVTTdVVUZGT1VNc1RVRkJUU3hSUVVGUkxFZEJRVWNzVFVGQlRTeEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVTnFReXhOUVVGTkxFVkJRMDRzYVVOQlFXbERMRVZCUTJwRE8xbEJRMFVzVFVGQlRTeEZRVUZGTEVOQlFVTXNVMEZCVXl4RFFVRkRPMWxCUTI1Q0xFOUJRVThzUlVGQlJTeFZRVUZWTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1UwRkJVeXhGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETzJkQ1FVTjBReXhGUVVGRkxFVkJRVVVzVTBGQlV5eERRVUZETEVWQlFVVTdaMEpCUTJoQ0xFbEJRVWtzUlVGQlJTeFhRVUZYTzJGQlEyeENMRU5CUVVNc1EwRkJRenRaUVVOSUxHbENRVUZwUWl4RlFVRkZMRWxCUVVrN1dVRkRka0lzWlVGQlpTeEZRVUZGTEVsQlFVazdXVUZEY2tJc1UwRkJVeXhGUVVGRkxFdEJRVXM3VTBGRGFrSXNSVUZEUkN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExGbEJRVmtzUlVGRGVFSXNSVUZCUlN4UFFVRlBMRVZCUVVVc1JVRkJSU3hWUVVGVkxFVkJRVVVzVFVGQlRTeEZRVUZGTEdOQlFXTXNSVUZCUlN4clFrRkJhMElzUlVGQlJTeEZRVUZGTEVWQlEzWkZMRWRCUVVjc1JVRkRTQ3hIUVVGSExFOUJRVThzUTBGRFdDeERRVUZETzFGQlEwWXNTVUZCU1N4UlFVRlJMRU5CUVVNc1RVRkJUU3hKUVVGSkxFZEJRVWNzUlVGQlJTeERRVUZETzFsQlF6TkNMRTFCUVUwc1QwRkJUeXhIUVVGSExHZERRVUZuUXl4VFFVRlRMRXRCUVVzc1VVRkJVU3hEUVVGRExGVkJRVlVzUlVGQlJTeERRVUZETzFsQlEzQkdMRTFCUVUwc1NVRkJTU3hsUVVGbExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdVVUZEY2tNc1EwRkJRenRSUVVWRUxFMUJRVTBzVTBGQlV5eEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc2JVSkJRVzFDTEVsQlFVa3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhOUVVGTkxFTkJRVU03VVVGRGVFVXNTVUZCU1N4RFFVRkRMRk5CUVZNc1JVRkJSU3hEUVVGRE8xbEJRMllzVDBGQlR5eFZRVUZWTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRE8xRkJRek5DTEVOQlFVTTdVVUZGUkN4TlFVRk5MRlZCUVZVc1IwRkJSeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4SFFVRkhMRVZCUVVVc1JVRkJSU3hUUVVGVExFVkJRVVVzYVVKQlFXbENMRU5CUVVNc1EwRkJRenRSUVVNeFJTeEpRVUZKTEVOQlFVTXNSVUZCUlN4RFFVRkRMRlZCUVZVc1EwRkJReXhWUVVGVkxFTkJRVU03V1VGQlJTeFBRVUZQTEZWQlFWVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU03VVVGRGVrUXNUVUZCVFN4SlFVRkpMRWRCUVVjc1NVRkJTeXhSUVVGblFpeEZRVUZGTEVOQlFVTTdVVUZEY2tNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eE5RVUZOTEVWQlFVVXNSVUZCUlN4RFFVRkRMR2RDUVVGblFpeERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRja1FzVFVGQlRTeFZRVUZWTEVkQlFVY3NUVUZCVFN4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVOcVF5eEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1VVRkJVU3hOUVVGTkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4TlFVRk5MRk5CUVZNc01rTkJRVEpETEVWQlEzWkhMRWxCUVVrc1JVRkRTanRaUVVORkxFbEJRVWtzUlVGQlJTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRmxCUVZrN1owSkJRelZDTEVOQlFVTXNRMEZCUXp0dlFrRkRSU3hSUVVGUkxFVkJRVVVzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4WlFVRlpMRU5CUVVNc1VVRkJVVHR2UWtGRE0wTXNVVUZCVVN4RlFVRkZMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zV1VGQldTeERRVUZETEZGQlFWRTdhVUpCUXpWRE8yZENRVU5JTEVOQlFVTXNRMEZCUXl4VFFVRlRPMWxCUTJJc1QwRkJUeXhGUVVGRk8yZENRVU5RTEVkQlFVY3NTVUZCU1N4RFFVRkRMRlZCUVZVc1JVRkJSVHRuUWtGRGNFSXNWVUZCVlN4RlFVRkZMRTFCUVUwN1lVRkRia0k3V1VGRFJDeGhRVUZoTEVWQlFVVXNVVUZCVVR0WlFVTjJRaXhuUWtGQlowSXNSVUZCUlN4UlFVRlJPMWxCUXpGQ0xHTkJRV01zUlVGQlJTeEhRVUZITEVWQlFVVXNRMEZCUXl4SlFVRkpPMWxCUXpGQ0xGVkJRVlVzUlVGQlJTeEpRVUZKTEV0QlFVc3NRMEZCUXl4TFFVRkxMRU5CUVVNN1owSkJRekZDTEd0Q1FVRnJRaXhGUVVGRkxFTkJRVVVzU1VGQlNTeERRVUZETEUxQlFXTXNRMEZCUXl4WlFVRlpMRVZCUVVVc1EwRkJRenRoUVVNeFJDeERRVUZETzFOQlEwZ3NRMEZEUml4RFFVRkRPMUZCUTBZc1NVRkJTU3hWUVVGVkxFTkJRVU1zVFVGQlRTeEpRVUZKTEVkQlFVY3NSVUZCUlN4RFFVRkRPMWxCUXpkQ0xFMUJRVTBzVDBGQlR5eEhRVUZITEcxRFFVRnRReXhUUVVGVExFdEJRVXNzVlVGQlZTeERRVUZETEZWQlFWVXNSVUZCUlN4RFFVRkRPMWxCUTNwR0xFMUJRVTBzU1VGQlNTeGxRVUZsTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1VVRkRja01zUTBGQlF6dFJRVU5FTEU5QlFVOHNWVUZCVlN4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFVkJRVVVzUTBGQlF6dEpRVU16UWl4RFFVRkRPMGxCUlVRc2VVSkJRWGxDTEVOQlFVTXNUMEZSZWtJN1VVRkRReXhOUVVGTkxFVkJRMG9zUzBGQlN5eEZRVU5NTEZkQlFWY3NSVUZEV0N4alFVRmpMRWRCUVVjc1MwRkJTeXhGUVVOMFFpeGpRVUZqTEVkQlFVY3NTMEZCU3l4RlFVTjBRaXhoUVVGaExFZEJRVWNzUzBGQlN5eEZRVU55UWl4bFFVRmxMRWRCUVVjc1MwRkJTeXhGUVVOMlFpeFRRVUZUTEVkQlExWXNSMEZCUnl4UFFVRlBMRU5CUVVNN1VVRkRXaXhOUVVGTkxFbEJRVWtzUjBGQlJ5eEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1VVRkJVU3hOUVVGTkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RlFVRkZMRU5CUVVNN1VVRkROMFFzVFVGQlRTeE5RVUZOTEVkQlFVY3NTVUZCU1N4bFFVRmxMRU5CUVVNc1JVRkJSU3hMUVVGTExFVkJRVVVzVFVGQlRTeEZRVUZGTEVOQlFVTXNRMEZCUXp0UlFVTjBSQ3hKUVVGSkxHTkJRV003V1VGQlJTeE5RVUZOTEVOQlFVTXNSMEZCUnl4RFFVRkRMR3RDUVVGclFpeEZRVUZGTEUxQlFVMHNRMEZCUXl4RFFVRkRPMUZCUXpORUxFbEJRVWtzWTBGQll6dFpRVUZGTEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNc2EwSkJRV3RDTEVWQlFVVXNUVUZCVFN4RFFVRkRMRU5CUVVNN1VVRkRNMFFzU1VGQlNTeGhRVUZoTzFsQlFVVXNUVUZCVFN4RFFVRkRMRWRCUVVjc1EwRkJReXhwUWtGQmFVSXNSVUZCUlN4TlFVRk5MRU5CUVVNc1EwRkJRenRSUVVONlJDeEpRVUZKTEdWQlFXVTdXVUZCUlN4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExHMUNRVUZ0UWl4RlFVRkZMRTFCUVUwc1EwRkJReXhEUVVGRE8xRkJRemRFTEUxQlFVMHNXVUZCV1N4SFFVRkhMRk5CUVZNN1dVRkROVUlzUTBGQlF5eERRVUZETEU5QlFVOHNhMEpCUVd0Q0xFTkJRVU1zU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4RlFVRkZMRWxCUVVrc1JVRkJSU3hUUVVGVExFVkJRVVVzUTBGQlF5eERRVUZETEVWQlFVVTdXVUZEYkVVc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF6dFJRVU5RTEU5QlFVOHNSMEZCUnl4SlFVRkpMRTFCUVUwc1MwRkJTeXg1UWtGQmVVSXNWMEZCVnl4SlFVRkpMRTFCUVUwc1EwRkJReXhSUVVGUkxFVkJRVVVzUjBGQlJ5eFpRVUZaTEVWQlFVVXNRMEZCUXp0SlFVTjBSeXhEUVVGRE8wbEJSVVFzUzBGQlN5eERRVUZETEdkQ1FVRm5RaXhEUVVOd1FpeFRRVUZwUWl4RlFVTnFRaXhIUVVGSExFbEJRVFpDTzFGQlJXaERMRTFCUVUwc1JVRkJSU3hQUVVGUExFVkJRVVVzUjBGQlJ5eERRVU5zUWl4TlFVRk5MRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeEZRVUZGTEd0Q1FVRnJRaXhGUVVGRkxFbEJRVWtzUTBGQlF5eERRVU5zUkN4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1EwRkJRenRSUVVNM1FpeE5RVUZOTEZGQlFWRXNSMEZCUnl4TlFVRk5MRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRMnBETEV0QlFVc3NSVUZEVEN4TlFVRk5MRk5CUVZNc2IwUkJRVzlFTEVWQlEyNUZMRk5CUVZNc1JVRkRWQ3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEZsQlFWa3NSVUZEZUVJc1JVRkJSU3hQUVVGUExFVkJRVVVzUlVGQlJTeFZRVUZWTEVWQlFVVXNUVUZCVFN4RlFVRkZMRVZCUVVVc1JVRkRia01zUjBGQlJ5eEZRVU5JTEVkQlFVY3NUMEZCVHl4RFFVTllMRU5CUVVNN1VVRkRSaXhKUVVGSkxGRkJRVkVzUTBGQlF5eE5RVUZOTEV0QlFVc3NSMEZCUnl4RlFVRkZMRU5CUVVNN1dVRkROVUlzVFVGQlRTeFBRVUZQTEVkQlFVY3NNRUpCUVRCQ0xGTkJRVk1zUzBGQlN5eFJRVUZSTEVOQlFVTXNWVUZCVlN4RlFVRkZMRU5CUVVNN1dVRkRPVVVzVFVGQlRTeEpRVUZKTEdWQlFXVXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRSUVVOeVF5eERRVUZETzFGQlEwUXNUVUZCVFN4SlFVRkpMRWRCUVVjc1lVRkJZU3hEUVVGTkxGRkJRVkVzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0UlFVTXZReXhKUVVGSkxFTkJRVU1zU1VGQlNTeEZRVUZGTEV0QlFVc3NTVUZCU1N4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExFVkJRVVVzUTBGQlF6dFpRVU0zUWl4TlFVRk5MRTlCUVU4c1IwRkJSeXhuUTBGQlowTXNVMEZCVXl4RlFVRkZMRU5CUVVNN1dVRkROVVFzVFVGQlRTeEpRVUZKTEdGQlFXRXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRSUVVOdVF5eERRVUZETzBsQlEwZ3NRMEZCUXp0SlFVVlBMR2RDUVVGblFpeERRVUZETEUxQlFYbENPMUZCUTJoRUxFOUJRVThzUzBGQlN5eERRVUZETEUxQlFVMHNRMEZCUXp0WlFVTnNRaXhQUVVGUExFVkJRVVVzUjBGQlJ5eE5RVUZOTEVOQlFVTXNVVUZCVVN4TlFVRk5MRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVU3V1VGRE9VTXNZMEZCWXl4RlFVRkZMRWRCUVVjc1JVRkJSU3hEUVVGRExFbEJRVWs3V1VGRE1VSXNWVUZCVlN4RlFVRkZMRWxCUVVrc1MwRkJTeXhEUVVGRExFdEJRVXNzUTBGQlF6dG5Ra0ZETVVJc2EwSkJRV3RDTEVWQlFVVXNRMEZCUlN4SlFVRkpMRU5CUVVNc1RVRkJZeXhEUVVGRExGbEJRVmtzUlVGQlJTeERRVUZETzJGQlF6RkVMRU5CUVVNN1UwRkRTQ3hEUVVGRExFTkJRVU03U1VGRFRDeERRVUZETzBsQlJWTXNWVUZCVlN4RFFVRkRMRXRCUVZrN1VVRkRMMElzVFVGQlRTeFBRVUZQTEVkQlFVY3NTMEZCU3l4RFFVRkRMRTlCUVU4c1NVRkJTU3hMUVVGTExFTkJRVU1zU1VGQlNTeEpRVUZKTEdWQlFXVXNRMEZCUXp0UlFVTXZSQ3hOUVVGTkxGbEJRVmtzUjBGQlJ5eFBRVUZQTEVOQlFVTXNWMEZCVnl4RlFVRkZMRU5CUVVNN1VVRkZNME1zU1VGQlNTeFpRVUZaTEVOQlFVTXNVVUZCVVN4RFFVRkRMRmRCUVZjc1EwRkJReXhKUVVGSkxGbEJRVmtzUTBGQlF5eFJRVUZSTEVOQlFVTXNTMEZCU3l4RFFVRkRMRVZCUVVVc1EwRkJRenRaUVVOMlJTeFBRVUZQTEVsQlFVa3NZVUZCWVN4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8xRkJRM0JETEVOQlFVTTdVVUZGUkN4SlFVRkpMRmxCUVZrc1EwRkJReXhSUVVGUkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1NVRkJTU3haUVVGWkxFTkJRVU1zVVVGQlVTeERRVUZETEZWQlFWVXNRMEZCUXl4SlFVRkpMRmxCUVZrc1EwRkJReXhSUVVGUkxFTkJRVU1zUzBGQlN5eERRVUZETEVWQlFVVXNRMEZCUXp0WlFVTnFTQ3hQUVVGUExFbEJRVWtzWVVGQllTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMUZCUTNCRExFTkJRVU03VVVGRlJDeEpRVUZKTEZsQlFWa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1UwRkJVeXhEUVVGRExFbEJRVWtzV1VGQldTeERRVUZETEZGQlFWRXNRMEZCUXl4aFFVRmhMRU5CUVVNc1NVRkJTU3haUVVGWkxFTkJRVU1zVVVGQlVTeERRVUZETEV0QlFVc3NRMEZCUXl4RlFVRkZMRU5CUVVNN1dVRkROMGNzVDBGQlR5eEpRVUZKTEdWQlFXVXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRSUVVOMFF5eERRVUZETzFGQlJVUXNTVUZCU1N4WlFVRlpMRU5CUVVNc1VVRkJVU3hEUVVGRExHTkJRV01zUTBGQlF5eEpRVUZKTEZsQlFWa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1MwRkJTeXhEUVVGRExFVkJRVVVzUTBGQlF6dFpRVU14UlN4UFFVRlBMRWxCUVVrc1lVRkJZU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzFGQlEzQkRMRU5CUVVNN1VVRkZSQ3hKUVVGSkxGbEJRVmtzUTBGQlF5eFJRVUZSTEVOQlFVTXNWMEZCVnl4RFFVRkRMRWxCUVVrc1dVRkJXU3hEUVVGRExGRkJRVkVzUTBGQlF5eExRVUZMTEVOQlFVTXNSVUZCUlN4RFFVRkRPMWxCUTNaRkxFOUJRVThzU1VGQlNTeGhRVUZoTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1VVRkRjRU1zUTBGQlF6dFJRVVZFTEU5QlFVOHNTVUZCU1N4aFFVRmhMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03U1VGRGNFTXNRMEZCUXp0SlFVVlBMRXRCUVVzc1EwRkJReXhQUVVGUExFTkJRMjVDTEUxQlFYbERMRVZCUTNwRExFZEJRVmNzUlVGRFdDeFBRVUZuUWl4RlFVTm9RaXhQUVVFclFpeEZRVU12UWl4TFFVRXdRaXhGUVVNeFFpeFhRVUZ0UWl4RlFVTnVRaXhIUVVGSExFbEJRWGxDTzFGQlJUVkNMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeEZRVUZGTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRSUVVOb1F5eFBRVUZQTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1QwRkJUeXhEUVVGRE8xbEJRM3BDTEUxQlFVMDdXVUZEVGl4SFFVRkhPMWxCUTBnc1NVRkJTU3hGUVVOR0xFOUJRVThzUzBGQlN5eFRRVUZUTzJkQ1FVTnVRaXhEUVVGRExFTkJRVU1zVTBGQlV6dG5Ra0ZEV0N4RFFVRkRMRU5CUVVNc1QwRkJUeXhQUVVGUExFdEJRVXNzVVVGQlVUdHZRa0ZETTBJc1EwRkJReXhEUVVGRExFOUJRVTg3YjBKQlExUXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zVDBGQlR5eERRVUZETzFsQlF5OUNMRWxCUVVrc1JVRkJSU3hQUVVGUE8yZENRVU5ZTEVOQlFVTXNRMEZCUXl4RlFVRkZMRkZCUVZFc1JVRkJSU3hQUVVGUExFTkJRVU1zVVVGQlVTeEZRVUZGTEZGQlFWRXNSVUZCUlN4UFFVRlBMRU5CUVVNc1VVRkJVU3hGUVVGRk8yZENRVU0xUkN4RFFVRkRMRU5CUVVNc1UwRkJVenRaUVVOaUxHTkJRV01zUlVGQlJTeEhRVUZITEVWQlFVVXNRMEZCUXl4SlFVRkpPMWxCUXpGQ0xGVkJRVlVzUlVGQlJTeEpRVUZKTEV0QlFVc3NRMEZCUXl4TFFVRkxMRU5CUVVNN1owSkJRekZDTEd0Q1FVRnJRaXhGUVVGRkxFTkJRVVVzU1VGQlNTeERRVUZETEUxQlFXTXNRMEZCUXl4WlFVRlpMRVZCUVVVc1EwRkJRenRoUVVNeFJDeERRVUZETzFsQlEwWXNSMEZCUnl4TFFVRkxPMU5CUTFRc1EwRkJReXhEUVVGRE8wbEJRMHdzUTBGQlF6dERRVU5HTzBGQkwwNVhPMGxCUkZRc1QwRkJUeXhGUVVGRk96aENRVU5qTEdsQ1FVRnBRanN5UkVGQlF5SXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbWx0Y0c5eWRDQjdYRzRnSUVKaFpGSmxjWFZsYzNSRmNuSnZjaXhjYmlBZ1EyOXVabXhwWTNSRmNuSnZjaXhjYmlBZ1NXNTBaWEp1WVd4RmNuSnZjaXhjYmlBZ1RtOTBSbTkxYm1SRmNuSnZjaXhjYm4wZ1puSnZiU0JjSWtCa1pXTmhaaTEwY3k5a1lpMWtaV052Y21GMGIzSnpYQ0k3WEc1cGJYQnZjblFnZXlCRGIyNTBaWGgwZFdGc1FYSm5jeXdnVFdGNVltVkRiMjUwWlhoMGRXRnNRWEpuSUgwZ1puSnZiU0JjSWtCa1pXTmhaaTEwY3k5amIzSmxYQ0k3WEc1cGJYQnZjblFnZXlCRGJHbGxiblJDWVhObFpGTmxjblpwWTJVc0lITmxjblpwWTJVZ2ZTQm1jbTl0SUZ3aVFHUmxZMkZtTFhSekwyTnZjbVZjSWp0Y2JtbHRjRzl5ZENCMGVYQmxJSHRjYmlBZ1MybGlZVzVoVTJWMGRYQkRiMjVtYVdjc1hHNGdJRXRwWW1GdVlWVnpaWElzWEc1OUlHWnliMjBnWENJdUxpOTBlWEJsYzF3aU8xeHVhVzF3YjNKMElFRjRhVzl6TENCN0lIUjVjR1VnUVhocGIzTkpibk4wWVc1alpTQjlJR1p5YjIwZ1hDSmhlR2x2YzF3aU8xeHVhVzF3YjNKMElDb2dZWE1nWm5NZ1puSnZiU0JjSW01dlpHVTZabk5jSWp0Y2JtbHRjRzl5ZENBcUlHRnpJSEJoZEdnZ1puSnZiU0JjSW01dlpHVTZjR0YwYUZ3aU8xeHVhVzF3YjNKMElDb2dZWE1nYUhSMGNITWdabkp2YlNCY0ltNXZaR1U2YUhSMGNITmNJanRjYm1sdGNHOXlkQ0JHYjNKdFJHRjBZU0JtY205dElGd2labTl5YlMxa1lYUmhYQ0k3WEc1cGJYQnZjblFnZXlCTGFXSmhibUZCZFhSb1UyVnlkbWxqWlNCOUlHWnliMjBnWENJdUwwdHBZbUZ1WVVGMWRHaFRaWEoyYVdObFhDSTdYRzVwYlhCdmNuUWdleUJ3WVhKelpVcHpiMjVDYjJSNUlIMGdabkp2YlNCY0lpNHVMeTR1TDNOb1lYSmxaQzl5ZFc1MGFXMWxYQ0k3WEc1Y2JtVjRjRzl5ZENCamJHRnpjeUJMYVdKaGJtRkVZWE5vWW05aGNtUlRaWEoyYVdObElHVjRkR1Z1WkhNZ1EyeHBaVzUwUW1GelpXUlRaWEoyYVdObFBGeHVJQ0JCZUdsdmMwbHVjM1JoYm1ObExGeHVJQ0JMYVdKaGJtRlRaWFIxY0VOdmJtWnBaMXh1UGlCN1hHNGdJRUJ6WlhKMmFXTmxLQ2xjYmlBZ2NISnZkR1ZqZEdWa0lHRjFkR2hUWlhKMmFXTmxJVG9nUzJsaVlXNWhRWFYwYUZObGNuWnBZMlU3WEc1Y2JpQWdZWE41Ym1NZ2FXNXBkR2xoYkdsNlpTaGNiaUFnSUNBdUxpNWhjbWR6T2lCTllYbGlaVU52Ym5SbGVIUjFZV3hCY21jOFlXNTVQbHh1SUNBcE9pQlFjbTl0YVhObFBIc2dZMjl1Wm1sbk9pQkxhV0poYm1GVFpYUjFjRU52Ym1acFp6c2dZMnhwWlc1ME9pQkJlR2x2YzBsdWMzUmhibU5sSUgwK0lIdGNiaUFnSUNCamIyNXpkQ0I3SUdOMGVFRnlaM01nZlNBOUlDaGNiaUFnSUNBZ0lHRjNZV2wwSUhSb2FYTXViRzluUTNSNEtHRnlaM01zSUZ3aWFXNXBkR2xoYkdsNlpWd2lMQ0IwY25WbEtWeHVJQ0FnSUNrdVptOXlLSFJvYVhNdWFXNXBkR2xoYkdsNlpTazdYRzRnSUNBZ1kyOXVjM1FnWTI5dVptbG5JRDBnWTNSNFFYSm5jMXN3WFNCaGN5QkxhV0poYm1GVFpYUjFjRU52Ym1acFp6dGNiaUFnSUNCMGFHbHpMbDlqYjI1bWFXY2dQU0JqYjI1bWFXYzdYRzRnSUNBZ1kyOXVjM1FnWTJ4cFpXNTBJRDBnZEdocGN5NWpjbVZoZEdWSWRIUndRMnhwWlc1MEtHTnZibVpwWnlrN1hHNGdJQ0FnZEdocGN5NWZZMnhwWlc1MElEMGdZMnhwWlc1ME8xeHVJQ0FnSUhKbGRIVnliaUI3SUdOdmJtWnBaeXdnWTJ4cFpXNTBJSDA3WEc0Z0lIMWNibHh1SUNCaGMzbHVZeUJqYkc5dVpVUmxabUYxYkhSRVlYTm9ZbTloY21SektGeHVJQ0FnSUhKbFlXeHRUbUZ0WlRvZ2MzUnlhVzVuTEZ4dUlDQWdJQzR1TG1GeVozTTZJRTFoZVdKbFEyOXVkR1Y0ZEhWaGJFRnlaenhoYm5rK1hHNGdJQ2s2SUZCeWIyMXBjMlU4YzNSeWFXNW5JSHdnZFc1a1pXWnBibVZrUGlCN1hHNGdJQ0FnWTI5dWMzUWdleUJqZEhoQmNtZHpJSDBnUFNBb1hHNGdJQ0FnSUNCaGQyRnBkQ0IwYUdsekxteHZaME4wZUNoaGNtZHpMQ0JjSW1Oc2IyNWxSR1ZtWVhWc2RFUmhjMmhpYjJGeVpITmNJaXdnZEhKMVpTbGNiaUFnSUNBcExtWnZjaWgwYUdsekxtTnNiMjVsUkdWbVlYVnNkRVJoYzJoaWIyRnlaSE1wTzF4dUlDQWdJR052Ym5OMElISmxjM0J2Ym5ObElEMGdZWGRoYVhRZ2RHaHBjeTV5WlhGMVpYTjBLRnh1SUNBZ0lDQWdYQ0pIUlZSY0lpeGNiaUFnSUNBZ0lHQXZjeTlrWldaaGRXeDBMMkZ3YVM5ellYWmxaRjl2WW1wbFkzUnpMMTltYVc1a1AzUjVjR1U5WkdGemFHSnZZWEprSm5CbGNsOXdZV2RsUFRFd01EQmdMRnh1SUNBZ0lDQWdkVzVrWldacGJtVmtMRnh1SUNBZ0lDQWdkR2hwY3k1amIyNW1hV2N1WVdSdGFXNUJjR2xWYzJWeUxGeHVJQ0FnSUNBZ2V5Qm9aV0ZrWlhKek9pQjdJRndpYTJKdUxYaHpjbVpjSWpvZ1hDSjBjblZsWENJZ2ZTQjlMRnh1SUNBZ0lDQWdNakF3TEZ4dUlDQWdJQ0FnTGk0dVkzUjRRWEpuYzF4dUlDQWdJQ2s3WEc0Z0lDQWdhV1lnS0hKbGMzQnZibk5sTG5OMFlYUjFjeUFoUFQwZ01qQXdLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQnRaWE56WVdkbElEMGdZRlZ1WVdKc1pTQjBieUJzYVhOMElHUmhjMmhpYjJGeVpITWdabkp2YlNCa1pXWmhkV3gwSUhOd1lXTmxPaUFrZTNKbGMzQnZibk5sTG5OMFlYUjFjMVJsZUhSOVlEdGNiaUFnSUNBZ0lIUm9jbTkzSUc1bGR5QkNZV1JTWlhGMVpYTjBSWEp5YjNJb2JXVnpjMkZuWlNrN1hHNGdJQ0FnZlZ4dUlDQWdJR052Ym5OMElHUmhkR0VnUFNCd1lYSnpaVXB6YjI1Q2IyUjVQR0Z1ZVQ0b2NtVnpjRzl1YzJVdVpHRjBZU2tnUHo4Z2UzMDdYRzRnSUNBZ1kyOXVjM1FnWkdGemFHSnZZWEprY3pvZ1FYSnlZWGs4ZXlCcFpEb2djM1J5YVc1bklIMCtJRDBnWkdGMFlTNXpZWFpsWkY5dlltcGxZM1J6SUQ4L0lGdGRPMXh1SUNBZ0lHbG1JQ2hrWVhOb1ltOWhjbVJ6TG14bGJtZDBhQ0E5UFQwZ01Da2djbVYwZFhKdUlIVnVaR1ZtYVc1bFpEdGNibHh1SUNBZ0lHTnZibk4wSUdOdmNIbFNaWE53SUQwZ1lYZGhhWFFnZEdocGN5NXlaWEYxWlhOMEtGeHVJQ0FnSUNBZ1hDSlFUMU5VWENJc1hHNGdJQ0FnSUNCZ0wyRndhUzl6Y0dGalpYTXZYMk52Y0hsZmMyRjJaV1JmYjJKcVpXTjBjMkFzWEc0Z0lDQWdJQ0I3WEc0Z0lDQWdJQ0FnSUhOd1lXTmxjem9nVzNKbFlXeHRUbUZ0WlYwc1hHNGdJQ0FnSUNBZ0lHOWlhbVZqZEhNNklHUmhjMmhpYjJGeVpITXViV0Z3S0Noa1lYTm9ZbTloY21RcElEMCtJQ2g3WEc0Z0lDQWdJQ0FnSUNBZ2FXUTZJR1JoYzJoaWIyRnlaQzVwWkN4Y2JpQWdJQ0FnSUNBZ0lDQjBlWEJsT2lCY0ltUmhjMmhpYjJGeVpGd2lMRnh1SUNBZ0lDQWdJQ0I5S1Nrc1hHNGdJQ0FnSUNBZ0lHbHVZMngxWkdWU1pXWmxjbVZ1WTJWek9pQjBjblZsTEZ4dUlDQWdJQ0FnSUNCamNtVmhkR1ZPWlhkRGIzQnBaWE02SUhSeWRXVXNYRzRnSUNBZ0lDQWdJRzkyWlhKM2NtbDBaVG9nWm1Gc2MyVXNYRzRnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdkR2hwY3k1amIyNW1hV2N1WVdSdGFXNUJjR2xWYzJWeUxGeHVJQ0FnSUNBZ2V5Qm9aV0ZrWlhKek9pQjdJRndpYTJKdUxYaHpjbVpjSWpvZ1hDSjBjblZsWENJc0lGd2lRMjl1ZEdWdWRDMVVlWEJsWENJNklGd2lZWEJ3YkdsallYUnBiMjR2YW5OdmJsd2lJSDBnZlN4Y2JpQWdJQ0FnSURJd01DeGNiaUFnSUNBZ0lDNHVMbU4wZUVGeVozTmNiaUFnSUNBcE8xeHVJQ0FnSUdsbUlDaGpiM0I1VW1WemNDNXpkR0YwZFhNZ1BqMGdNekF3S1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0J0WlhOellXZGxJRDBnWUZWdVlXSnNaU0IwYnlCamIzQjVJR1JoYzJoaWIyRnlaSE1nZEc4Z0pIdHlaV0ZzYlU1aGJXVjlPaUFrZTJOdmNIbFNaWE53TG5OMFlYUjFjMVJsZUhSOVlEdGNiaUFnSUNBZ0lIUm9jbTkzSUc1bGR5QkNZV1JTWlhGMVpYTjBSWEp5YjNJb2JXVnpjMkZuWlNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnWTI5dWMzUWdZWE56WlhSU2IyOTBJRDBnZEdocGN5NWpiMjVtYVdjdVpHRnphR0p2WVhKa1NXMXdiM0owVUdGMGFDQS9QeUIwYUdsekxtTnZibVpwWnk1aGMzTmxkSE03WEc0Z0lDQWdhV1lnS0NGaGMzTmxkRkp2YjNRcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCa1lYTm9ZbTloY21Seld6QmRQeTVwWkR0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JqYjI1emRDQnVaR3B6YjI1UVlYUm9JRDBnY0dGMGFDNXFiMmx1S0hCeWIyTmxjM011WTNka0tDa3NJR0Z6YzJWMFVtOXZkQ3dnWENKd2JHRXRjMk5oYmk1dVpHcHpiMjVjSWlrN1hHNGdJQ0FnYVdZZ0tDRm1jeTVsZUdsemRITlRlVzVqS0c1a2FuTnZibEJoZEdncEtTQnlaWFIxY200Z1pHRnphR0p2WVhKa2Mxc3dYVDh1YVdRN1hHNGdJQ0FnWTI5dWMzUWdabTl5YlNBOUlHNWxkeUFvUm05eWJVUmhkR0VnWVhNZ1lXNTVLU2dwTzF4dUlDQWdJR1p2Y20wdVlYQndaVzVrS0Z3aVptbHNaVndpTENCbWN5NWpjbVZoZEdWU1pXRmtVM1J5WldGdEtHNWthbk52YmxCaGRHZ3BLVHRjYmlBZ0lDQmpiMjV6ZENCcGJYQnZjblJTWlhOd0lEMGdZWGRoYVhRZ1FYaHBiM011Y0c5emRDaGNiaUFnSUNBZ0lHQWtlM1JvYVhNdVkyOXVabWxuTG5CeWIzUnZZMjlzZlRvdkx5UjdkR2hwY3k1amIyNW1hV2N1YUc5emRIMHZjeThrZTNKbFlXeHRUbUZ0WlgwdllYQnBMM05oZG1Wa1gyOWlhbVZqZEhNdlgybHRjRzl5ZEQ5dmRtVnlkM0pwZEdVOWRISjFaV0FzWEc0Z0lDQWdJQ0JtYjNKdExGeHVJQ0FnSUNBZ2UxeHVJQ0FnSUNBZ0lDQmhkWFJvT2lCMGFHbHpMbU52Ym1acFp5NWhaRzFwYmtGd2FWVnpaWEpjYmlBZ0lDQWdJQ0FnSUNBL0lIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2RYTmxjbTVoYldVNklIUm9hWE11WTI5dVptbG5MbUZrYldsdVFYQnBWWE5sY2k1MWMyVnlibUZ0WlN4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnY0dGemMzZHZjbVE2SUhSb2FYTXVZMjl1Wm1sbkxtRmtiV2x1UVhCcFZYTmxjaTV3WVhOemQyOXlaQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0E2SUhWdVpHVm1hVzVsWkN4Y2JpQWdJQ0FnSUNBZ2FHVmhaR1Z5Y3pvZ2UxeHVJQ0FnSUNBZ0lDQWdJQzR1TG1admNtMHVaMlYwU0dWaFpHVnljeWdwTEZ4dUlDQWdJQ0FnSUNBZ0lGd2lhMkp1TFhoemNtWmNJam9nWENKMGNuVmxYQ0lzWEc0Z0lDQWdJQ0FnSUgwc1hHNGdJQ0FnSUNBZ0lHMWhlRUp2WkhsTVpXNW5kR2c2SUVsdVptbHVhWFI1TEZ4dUlDQWdJQ0FnSUNCdFlYaERiMjUwWlc1MFRHVnVaM1JvT2lCSmJtWnBibWwwZVN4Y2JpQWdJQ0FnSUNBZ2RtRnNhV1JoZEdWVGRHRjBkWE02SUNncElEMCtJSFJ5ZFdVc1hHNGdJQ0FnSUNBZ0lHaDBkSEJ6UVdkbGJuUTZJRzVsZHlCb2RIUndjeTVCWjJWdWRDaDdYRzRnSUNBZ0lDQWdJQ0FnY21WcVpXTjBWVzVoZFhSb2IzSnBlbVZrT2lBb0tIUm9hWE11WTI5dVptbG5JR0Z6SUdGdWVTa3VhWE5RY205a2RXTjBhVzl1S0NrcExGeHVJQ0FnSUNBZ0lDQjlLU3hjYmlBZ0lDQWdJSDFjYmlBZ0lDQXBPMXh1SUNBZ0lHbG1JQ2hwYlhCdmNuUlNaWE53TG5OMFlYUjFjeUErUFNBek1EQXBJSHRjYmlBZ0lDQWdJR052Ym5OMElHMWxjM05oWjJVZ1BTQmdWVzVoWW14bElIUnZJR2x0Y0c5eWRDQmtZWE5vWW05aGNtUnpJR1p2Y2lBa2UzSmxZV3h0VG1GdFpYMDZJQ1I3YVcxd2IzSjBVbVZ6Y0M1emRHRjBkWE5VWlhoMGZXQTdYRzRnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dRbUZrVW1WeGRXVnpkRVZ5Y205eUtHMWxjM05oWjJVcE8xeHVJQ0FnSUgxY2JpQWdJQ0J5WlhSMWNtNGdaR0Z6YUdKdllYSmtjMXN3WFQ4dWFXUTdYRzRnSUgxY2JseHVJQ0JuWlc1bGNtRjBaVVJoYzJoaWIyRnlaRVZ0WW1Wa1ZYSnNLRzl3ZEdsdmJuTTZJSHRjYmlBZ0lDQnpjR0ZqWlRvZ2MzUnlhVzVuTzF4dUlDQWdJR1JoYzJoaWIyRnlaRWxrT2lCemRISnBibWM3WEc0Z0lDQWdjMmh2ZDFScGJXVkdhV3gwWlhJL09pQmliMjlzWldGdU8xeHVJQ0FnSUhOb2IzZFJkV1Z5ZVVsdWNIVjBQem9nWW05dmJHVmhianRjYmlBZ0lDQnphRzkzUm1sc2RHVnlRbUZ5UHpvZ1ltOXZiR1ZoYmp0Y2JpQWdJQ0JvYVdSbFVHRnVaV3hVYVhSc1pYTS9PaUJpYjI5c1pXRnVPMXh1SUNBZ0lIUnBiV1ZTWVc1blpUODZJSHNnWm5KdmJUb2djM1J5YVc1bk95QjBiem9nYzNSeWFXNW5JSDA3WEc0Z0lIMHBPaUJ6ZEhKcGJtY2dlMXh1SUNBZ0lHTnZibk4wSUh0Y2JpQWdJQ0FnSUhOd1lXTmxMRnh1SUNBZ0lDQWdaR0Z6YUdKdllYSmtTV1FzWEc0Z0lDQWdJQ0J6YUc5M1ZHbHRaVVpwYkhSbGNpQTlJR1poYkhObExGeHVJQ0FnSUNBZ2MyaHZkMUYxWlhKNVNXNXdkWFFnUFNCbVlXeHpaU3hjYmlBZ0lDQWdJSE5vYjNkR2FXeDBaWEpDWVhJZ1BTQm1ZV3h6WlN4Y2JpQWdJQ0FnSUdocFpHVlFZVzVsYkZScGRHeGxjeUE5SUdaaGJITmxMRnh1SUNBZ0lDQWdkR2x0WlZKaGJtZGxMRnh1SUNBZ0lIMGdQU0J2Y0hScGIyNXpPMXh1SUNBZ0lHTnZibk4wSUdKaGMyVWdQU0JnSkh0MGFHbHpMbU52Ym1acFp5NXdjbTkwYjJOdmJIMDZMeThrZTNSb2FYTXVZMjl1Wm1sbkxtaHZjM1I5WUR0Y2JpQWdJQ0JqYjI1emRDQndZWEpoYlhNZ1BTQnVaWGNnVlZKTVUyVmhjbU5vVUdGeVlXMXpLSHNnWlcxaVpXUTZJRndpZEhKMVpWd2lJSDBwTzF4dUlDQWdJR2xtSUNoemFHOTNWR2x0WlVacGJIUmxjaWtnY0dGeVlXMXpMbk5sZENoY0luTm9iM2N0ZEdsdFpTMW1hV3gwWlhKY0lpd2dYQ0owY25WbFhDSXBPMXh1SUNBZ0lHbG1JQ2h6YUc5M1VYVmxjbmxKYm5CMWRDa2djR0Z5WVcxekxuTmxkQ2hjSW5Ob2IzY3RjWFZsY25rdGFXNXdkWFJjSWl3Z1hDSjBjblZsWENJcE8xeHVJQ0FnSUdsbUlDaHphRzkzUm1sc2RHVnlRbUZ5S1NCd1lYSmhiWE11YzJWMEtGd2ljMmh2ZHkxbWFXeDBaWEl0WW1GeVhDSXNJRndpZEhKMVpWd2lLVHRjYmlBZ0lDQnBaaUFvYUdsa1pWQmhibVZzVkdsMGJHVnpLU0J3WVhKaGJYTXVjMlYwS0Z3aWFHbGtaUzF3WVc1bGJDMTBhWFJzWlhOY0lpd2dYQ0owY25WbFhDSXBPMXh1SUNBZ0lHTnZibk4wSUhScGJXVkdjbUZuYldWdWRDQTlJSFJwYldWU1lXNW5aVnh1SUNBZ0lDQWdQeUJnSmw5blBTUjdaVzVqYjJSbFZWSkpRMjl0Y0c5dVpXNTBLRXBUVDA0dWMzUnlhVzVuYVdaNUtIc2dkR2x0WlRvZ2RHbHRaVkpoYm1kbElIMHBLWDFnWEc0Z0lDQWdJQ0E2SUZ3aVhDSTdYRzRnSUNBZ2NtVjBkWEp1SUdBa2UySmhjMlY5TDNNdkpIdHpjR0ZqWlgwdllYQndMMlJoYzJoaWIyRnlaSE1qTDNacFpYY3ZKSHRrWVhOb1ltOWhjbVJKWkgwL0pIdHdZWEpoYlhNdWRHOVRkSEpwYm1jb0tYMGtlM1JwYldWR2NtRm5iV1Z1ZEgxZ08xeHVJQ0I5WEc1Y2JpQWdZWE41Ym1NZ2RtVnlhV1o1VTNCaFkyVlRaWFIxY0NoY2JpQWdJQ0J5WldGc2JVNWhiV1U2SUhOMGNtbHVaeXhjYmlBZ0lDQXVMaTVoY21kek9pQk5ZWGxpWlVOdmJuUmxlSFIxWVd4QmNtYzhZVzU1UGx4dUlDQXBPaUJRY205dGFYTmxQSFp2YVdRK0lIdGNiaUFnSUNCamIyNXpkQ0I3SUdOMGVFRnlaM01nZlNBOUlDaGNiaUFnSUNBZ0lHRjNZV2wwSUhSb2FYTXViRzluUTNSNEtHRnlaM01zSUZ3aWRtVnlhV1o1VTNCaFkyVlRaWFIxY0Z3aUxDQjBjblZsS1Z4dUlDQWdJQ2t1Wm05eUtIUm9hWE11ZG1WeWFXWjVVM0JoWTJWVFpYUjFjQ2s3WEc0Z0lDQWdZMjl1YzNRZ2NtVnpjRzl1YzJVZ1BTQmhkMkZwZENCMGFHbHpMbkpsY1hWbGMzUW9YRzRnSUNBZ0lDQmNJa2RGVkZ3aUxGeHVJQ0FnSUNBZ1lDOXpMeVI3Y21WaGJHMU9ZVzFsZlM5aGNHa3ZjMkYyWldSZmIySnFaV04wY3k5ZlptbHVaRDkwZVhCbFBXUmhjMmhpYjJGeVpDWndaWEpmY0dGblpUMHhZQ3hjYmlBZ0lDQWdJSFZ1WkdWbWFXNWxaQ3hjYmlBZ0lDQWdJSFJvYVhNdVkyOXVabWxuTG1Ga2JXbHVRWEJwVlhObGNpeGNiaUFnSUNBZ0lIc2dhR1ZoWkdWeWN6b2dleUJjSW10aWJpMTRjM0ptWENJNklGd2lkSEoxWlZ3aUlIMGdmU3hjYmlBZ0lDQWdJREl3TUN4Y2JpQWdJQ0FnSUM0dUxtTjBlRUZ5WjNOY2JpQWdJQ0FwTzF4dUlDQWdJR2xtSUNoeVpYTndiMjV6WlM1emRHRjBkWE1nSVQwOUlESXdNQ2tnZTF4dUlDQWdJQ0FnWTI5dWMzUWdiV1Z6YzJGblpTQTlJR0JWYm1GaWJHVWdkRzhnZG1WeWFXWjVJSE53WVdObElDUjdjbVZoYkcxT1lXMWxmVG9nSkh0eVpYTndiMjV6WlM1emRHRjBkWE5VWlhoMGZXQTdYRzRnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dRbUZrVW1WeGRXVnpkRVZ5Y205eUtHMWxjM05oWjJVcE8xeHVJQ0FnSUgxY2JpQWdJQ0JqYjI1emRDQmtZWFJoSUQwZ2NHRnljMlZLYzI5dVFtOWtlVHhoYm5rK0tISmxjM0J2Ym5ObExtUmhkR0VwTzF4dUlDQWdJR2xtSUNnb1pHRjBZVDh1ZEc5MFlXd2dQejhnTUNrZ1BUMDlJREFwSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJRzFsYzNOaFoyVWdQU0JnVG04Z1pHRnphR0p2WVhKa2N5Qm1iM1Z1WkNCcGJpQnpjR0ZqWlNBa2UzSmxZV3h0VG1GdFpYMWdPMXh1SUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRTV2ZEVadmRXNWtSWEp5YjNJb2JXVnpjMkZuWlNrN1hHNGdJQ0FnZlZ4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCamNtVmhkR1ZJZEhSd1EyeHBaVzUwS0dOdmJtWnBaem9nUzJsaVlXNWhVMlYwZFhCRGIyNW1hV2NwT2lCQmVHbHZjMGx1YzNSaGJtTmxJSHRjYmlBZ0lDQnlaWFIxY200Z1FYaHBiM011WTNKbFlYUmxLSHRjYmlBZ0lDQWdJR0poYzJWVlVrdzZJR0FrZTJOdmJtWnBaeTV3Y205MGIyTnZiSDA2THk4a2UyTnZibVpwWnk1b2IzTjBmV0FzWEc0Z0lDQWdJQ0IyWVd4cFpHRjBaVk4wWVhSMWN6b2dLQ2tnUFQ0Z2RISjFaU3hjYmlBZ0lDQWdJR2gwZEhCelFXZGxiblE2SUc1bGR5Qm9kSFJ3Y3k1QloyVnVkQ2g3WEc0Z0lDQWdJQ0FnSUhKbGFtVmpkRlZ1WVhWMGFHOXlhWHBsWkRvZ0tDaDBhR2x6TG1OdmJtWnBaeUJoY3lCaGJua3BMbWx6VUhKdlpIVmpkR2x2YmlncEtTeGNiaUFnSUNBZ0lIMHBMRnh1SUNBZ0lIMHBPMXh1SUNCOVhHNWNiaUFnY0hKdmRHVmpkR1ZrSUhCaGNuTmxSWEp5YjNJb1pYSnliM0k2SUVWeWNtOXlLVG9nUlhKeWIzSWdlMXh1SUNBZ0lHTnZibk4wSUcxbGMzTmhaMlVnUFNCbGNuSnZjaTV0WlhOellXZGxJSHg4SUdWeWNtOXlMbTVoYldVZ2ZId2dYQ0pWYm10dWIzZHVJR1Z5Y205eVhDSTdYRzRnSUNBZ1kyOXVjM1FnYkc5M1pYSk5aWE56WVdkbElEMGdiV1Z6YzJGblpTNTBiMHh2ZDJWeVEyRnpaU2dwTzF4dVhHNGdJQ0FnYVdZZ0tHeHZkMlZ5VFdWemMyRm5aUzVwYm1Oc2RXUmxjeWhjSW01dmRDQm1iM1Z1WkZ3aUtTQjhmQ0JzYjNkbGNrMWxjM05oWjJVdWFXNWpiSFZrWlhNb1hDSTBNRFJjSWlrcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCdVpYY2dUbTkwUm05MWJtUkZjbkp2Y2lodFpYTnpZV2RsS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JwWmlBb2JHOTNaWEpOWlhOellXZGxMbWx1WTJ4MVpHVnpLRndpWVd4eVpXRmtlU0JsZUdsemRITmNJaWtnZkh3Z2JHOTNaWEpOWlhOellXZGxMbWx1WTJ4MVpHVnpLRndpWTI5dVpteHBZM1JjSWlrZ2ZId2diRzkzWlhKTlpYTnpZV2RsTG1sdVkyeDFaR1Z6S0Z3aU5EQTVYQ0lwS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnYm1WM0lFTnZibVpzYVdOMFJYSnliM0lvYldWemMyRm5aU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdhV1lnS0d4dmQyVnlUV1Z6YzJGblpTNXBibU5zZFdSbGN5aGNJbWx1ZG1Gc2FXUmNJaWtnZkh3Z2JHOTNaWEpOWlhOellXZGxMbWx1WTJ4MVpHVnpLRndpWW1Ga0lISmxjWFZsYzNSY0lpa2dmSHdnYkc5M1pYSk5aWE56WVdkbExtbHVZMngxWkdWektGd2lOREF3WENJcEtTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z2JtVjNJRUpoWkZKbGNYVmxjM1JGY25KdmNpaHRaWE56WVdkbEtUdGNiaUFnSUNCOVhHNWNiaUFnSUNCcFppQW9iRzkzWlhKTlpYTnpZV2RsTG1sdVkyeDFaR1Z6S0Z3aWRXNWhkWFJvYjNKcGVtVmtYQ0lwSUh4OElHeHZkMlZ5VFdWemMyRm5aUzVwYm1Oc2RXUmxjeWhjSWpRd01Wd2lLU2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJRzVsZHlCT2IzUkdiM1Z1WkVWeWNtOXlLRzFsYzNOaFoyVXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHbG1JQ2hzYjNkbGNrMWxjM05oWjJVdWFXNWpiSFZrWlhNb1hDSm1iM0ppYVdSa1pXNWNJaWtnZkh3Z2JHOTNaWEpOWlhOellXZGxMbWx1WTJ4MVpHVnpLRndpTkRBelhDSXBLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdibVYzSUU1dmRFWnZkVzVrUlhKeWIzSW9iV1Z6YzJGblpTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2NtVjBkWEp1SUc1bGR5QkpiblJsY201aGJFVnljbTl5S0cxbGMzTmhaMlVwTzF4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCaGMzbHVZeUJ5WlhGMVpYTjBLRnh1SUNBZ0lHMWxkR2h2WkRvZ1hDSkhSVlJjSWlCOElGd2lVRTlUVkZ3aUlId2dYQ0pRVlZSY0lpQjhJRndpUkVWTVJWUkZYQ0lzWEc0Z0lDQWdkWEpzT2lCemRISnBibWNzWEc0Z0lDQWdjR0Y1Ykc5aFpEb2dkVzVyYm05M2JpeGNiaUFnSUNCaGNHbFZjMlZ5T2lCTGFXSmhibUZWYzJWeUlId2dkVzVrWldacGJtVmtMRnh1SUNBZ0lHVjRkSEpoT2lCU1pXTnZjbVE4YzNSeWFXNW5MQ0JoYm5rK0xGeHVJQ0FnSUhOMVkyTmxjM05EYjJSbE9pQnVkVzFpWlhJc1hHNGdJQ0FnTGk0dVlYSm5jem9nUTI5dWRHVjRkSFZoYkVGeVozTThZVzU1UGx4dUlDQXBPaUJRY205dGFYTmxQR0Z1ZVQ0Z2UxeHVJQ0FnSUhSb2FYTXViRzluUTNSNEtHRnlaM01zSUhSb2FYTXVjbVZ4ZFdWemRDazdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVZMnhwWlc1MExuSmxjWFZsYzNRb2UxeHVJQ0FnSUNBZ2JXVjBhRzlrTEZ4dUlDQWdJQ0FnZFhKc0xGeHVJQ0FnSUNBZ1pHRjBZVHBjYmlBZ0lDQWdJQ0FnY0dGNWJHOWhaQ0E5UFQwZ2RXNWtaV1pwYm1Wa1hHNGdJQ0FnSUNBZ0lDQWdQeUIxYm1SbFptbHVaV1JjYmlBZ0lDQWdJQ0FnSUNBNklIUjVjR1Z2WmlCd1lYbHNiMkZrSUQwOVBTQmNJbk4wY21sdVoxd2lYRzRnSUNBZ0lDQWdJQ0FnSUNBL0lIQmhlV3h2WVdSY2JpQWdJQ0FnSUNBZ0lDQWdJRG9nU2xOUFRpNXpkSEpwYm1kcFpua29jR0Y1Ykc5aFpDa3NYRzRnSUNBZ0lDQmhkWFJvT2lCaGNHbFZjMlZ5WEc0Z0lDQWdJQ0FnSUQ4Z2V5QjFjMlZ5Ym1GdFpUb2dZWEJwVlhObGNpNTFjMlZ5Ym1GdFpTd2djR0Z6YzNkdmNtUTZJR0Z3YVZWelpYSXVjR0Z6YzNkdmNtUWdmVnh1SUNBZ0lDQWdJQ0E2SUhWdVpHVm1hVzVsWkN4Y2JpQWdJQ0FnSUhaaGJHbGtZWFJsVTNSaGRIVnpPaUFvS1NBOVBpQjBjblZsTEZ4dUlDQWdJQ0FnYUhSMGNITkJaMlZ1ZERvZ2JtVjNJR2gwZEhCekxrRm5aVzUwS0h0Y2JpQWdJQ0FnSUNBZ2NtVnFaV04wVlc1aGRYUm9iM0pwZW1Wa09pQW9LSFJvYVhNdVkyOXVabWxuSUdGeklHRnVlU2t1YVhOUWNtOWtkV04wYVc5dUtDa3BMRnh1SUNBZ0lDQWdmU2tzWEc0Z0lDQWdJQ0F1TGk1bGVIUnlZU3hjYmlBZ0lDQjlLVHRjYmlBZ2ZWeHVmVnh1SWwxOSJdfQ==
|
|
216
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS2liYW5hRGFzaGJvYXJkU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9raWJhbmEvc2VydmljZXMvS2liYW5hRGFzaGJvYXJkU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQ0wsZUFBZSxFQUNmLGFBQWEsRUFDYixhQUFhLEVBQ2IsYUFBYSxHQUNkLE1BQU0seUJBQXlCLENBQUM7QUFFakMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSzdELE9BQU8sS0FBNkIsTUFBTSxPQUFPLENBQUM7QUFDbEQsT0FBTyxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDOUIsT0FBTyxLQUFLLElBQUksTUFBTSxXQUFXLENBQUM7QUFDbEMsT0FBTyxLQUFLLEtBQUssTUFBTSxZQUFZLENBQUM7QUFDcEMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLHFCQUFrQjtBQUN0RCxPQUFPLFFBQVEsTUFBTSxXQUFXLENBQUM7QUFDakMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLCtCQUE0QjtBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLGtDQUE2QjtBQUVyRCxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsa0JBRzNDO0lBSUMsS0FBSyxDQUFDLFVBQVUsQ0FDZCxHQUFHLElBQTZCO1FBRWhDLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUNsQixNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FDNUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZCLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQXNCLENBQUM7UUFDL0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDdEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixD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OEJBQ2MsaUJBQWlCOzJEQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQmFkUmVxdWVzdEVycm9yLFxuICBDb25mbGljdEVycm9yLFxuICBJbnRlcm5hbEVycm9yLFxuICBOb3RGb3VuZEVycm9yLFxufSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IENvbnRleHR1YWxBcmdzLCBNYXliZUNvbnRleHR1YWxBcmcgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IENsaWVudEJhc2VkU2VydmljZSwgc2VydmljZSB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHR5cGUge1xuICBLaWJhbmFTZXR1cENvbmZpZyxcbiAgS2liYW5hVXNlcixcbn0gZnJvbSBcIi4uL3R5cGVzXCI7XG5pbXBvcnQgQXhpb3MsIHsgdHlwZSBBeGlvc0luc3RhbmNlIH0gZnJvbSBcImF4aW9zXCI7XG5pbXBvcnQgKiBhcyBmcyBmcm9tIFwibm9kZTpmc1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgKiBhcyBodHRwcyBmcm9tIFwibm9kZTpodHRwc1wiO1xuaW1wb3J0IHsgcmVzb2x2ZUtpYmFuYUlzUHJvZHVjdGlvbiB9IGZyb20gXCIuL3J1bnRpbWVcIjtcbmltcG9ydCBGb3JtRGF0YSBmcm9tIFwiZm9ybS1kYXRhXCI7XG5pbXBvcnQgeyBLaWJhbmFBdXRoU2VydmljZSB9IGZyb20gXCIuL0tpYmFuYUF1dGhTZXJ2aWNlXCI7XG5pbXBvcnQgeyBwYXJzZUpzb25Cb2R5IH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9ydW50aW1lXCI7XG5cbmV4cG9ydCBjbGFzcyBLaWJhbmFEYXNoYm9hcmRTZXJ2aWNlIGV4dGVuZHMgQ2xpZW50QmFzZWRTZXJ2aWNlPFxuICBBeGlvc0luc3RhbmNlLFxuICBLaWJhbmFTZXR1cENvbmZpZ1xuPiB7XG4gIEBzZXJ2aWNlKClcbiAgcHJvdGVjdGVkIGF1dGhTZXJ2aWNlITogS2liYW5hQXV0aFNlcnZpY2U7XG5cbiAgYXN5bmMgaW5pdGlhbGl6ZShcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHsgY29uZmlnOiBLaWJhbmFTZXR1cENvbmZpZzsgY2xpZW50OiBBeGlvc0luc3RhbmNlIH0+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiaW5pdGlhbGl6ZVwiLCB0cnVlKVxuICAgICkuZm9yKHRoaXMuaW5pdGlhbGl6ZSk7XG4gICAgY29uc3QgY29uZmlnID0gY3R4QXJnc1swXSBhcyBLaWJhbmFTZXR1cENvbmZpZztcbiAgICB0aGlzLl9jb25maWcgPSBjb25maWc7XG4gICAgY29uc3QgY2xpZW50ID0gdGhpcy5jcmVhdGVIdHRwQ2xpZW50KGNvbmZpZyk7XG4gICAgdGhpcy5fY2xpZW50ID0gY2xpZW50O1xuICAgIHJldHVybiB7IGNvbmZpZywgY2xpZW50IH07XG4gIH1cblxuICBhc3luYyBjbG9uZURlZmF1bHREYXNoYm9hcmRzKFxuICAgIHJlYWxtTmFtZTogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImNsb25lRGVmYXVsdERhc2hib2FyZHNcIiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLmNsb25lRGVmYXVsdERhc2hib2FyZHMpO1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5yZXF1ZXN0KFxuICAgICAgXCJHRVRcIixcbiAgICAgIGAvcy9kZWZhdWx0L2FwaS9zYXZlZF9vYmplY3RzL19maW5kP3R5cGU9ZGFzaGJvYXJkJnBlcl9wYWdlPTEwMDBgLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgdGhpcy5jb25maWcuYWRtaW5BcGlVc2VyLFxuICAgICAgeyBoZWFkZXJzOiB7IFwia2JuLXhzcmZcIjogXCJ0cnVlXCIgfSB9LFxuICAgICAgMjAwLFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gICAgaWYgKHJlc3BvbnNlLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYFVuYWJsZSB0byBsaXN0IGRhc2hib2FyZHMgZnJvbSBkZWZhdWx0IHNwYWNlOiAke3Jlc3BvbnNlLnN0YXR1c1RleHR9YDtcbiAgICAgIHRocm93IG5ldyBCYWRSZXF1ZXN0RXJyb3IobWVzc2FnZSk7XG4gICAgfVxuICAgIGNvbnN0IGRhdGEgPSBwYXJzZUpzb25Cb2R5PGFueT4ocmVzcG9uc2UuZGF0YSkgPz8ge307XG4gICAgY29uc3QgZGFzaGJvYXJkczogQXJyYXk8eyBpZDogc3RyaW5nIH0+ID0gZGF0YS5zYXZlZF9vYmplY3RzID8/IFtdO1xuICAgIGlmIChkYXNoYm9hcmRzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IGNvcHlSZXNwID0gYXdhaXQgdGhpcy5yZXF1ZXN0KFxuICAgICAgXCJQT1NUXCIsXG4gICAgICBgL2FwaS9zcGFjZXMvX2NvcHlfc2F2ZWRfb2JqZWN0c2AsXG4gICAgICB7XG4gICAgICAgIHNwYWNlczogW3JlYWxtTmFtZV0sXG4gICAgICAgIG9iamVjdHM6IGRhc2hib2FyZHMubWFwKChkYXNoYm9hcmQpID0+ICh7XG4gICAgICAgICAgaWQ6IGRhc2hib2FyZC5pZCxcbiAgICAgICAgICB0eXBlOiBcImRhc2hib2FyZFwiLFxuICAgICAgICB9KSksXG4gICAgICAgIGluY2x1ZGVSZWZlcmVuY2VzOiB0cnVlLFxuICAgICAgICBjcmVhdGVOZXdDb3BpZXM6IHRydWUsXG4gICAgICAgIG92ZXJ3cml0ZTogZmFsc2UsXG4gICAgICB9LFxuICAgICAgdGhpcy5jb25maWcuYWRtaW5BcGlVc2VyLFxuICAgICAgeyBoZWFkZXJzOiB7IFwia2JuLXhzcmZcIjogXCJ0cnVlXCIsIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0gfSxcbiAgICAgIDIwMCxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuICAgIGlmIChjb3B5UmVzcC5zdGF0dXMgPj0gMzAwKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYFVuYWJsZSB0byBjb3B5IGRhc2hib2FyZHMgdG8gJHtyZWFsbU5hbWV9OiAke2NvcHlSZXNwLnN0YXR1c1RleHR9YDtcbiAgICAgIHRocm93IG5ldyBCYWRSZXF1ZXN0RXJyb3IobWVzc2FnZSk7XG4gICAgfVxuXG4gICAgY29uc3QgYXNzZXRSb290ID0gdGhpcy5jb25maWcuZGFzaGJvYXJkSW1wb3J0UGF0aCA/PyB0aGlzLmNvbmZpZy5hc3NldHM7XG4gICAgaWYgKCFhc3NldFJvb3QpIHtcbiAgICAgIHJldHVybiBkYXNoYm9hcmRzWzBdPy5pZDtcbiAgICB9XG5cbiAgICBjb25zdCBuZGpzb25QYXRoID0gcGF0aC5qb2luKHByb2Nlc3MuY3dkKCksIGFzc2V0Um9vdCwgXCJwbGEtc2Nhbi5uZGpzb25cIik7XG4gICAgaWYgKCFmcy5leGlzdHNTeW5jKG5kanNvblBhdGgpKSByZXR1cm4gZGFzaGJvYXJkc1swXT8uaWQ7XG4gICAgY29uc3QgZm9ybSA9IG5ldyAoRm9ybURhdGEgYXMgYW55KSgpO1xuICAgIGZvcm0uYXBwZW5kKFwiZmlsZVwiLCBmcy5jcmVhdGVSZWFkU3RyZWFtKG5kanNvblBhdGgpKTtcbiAgICBjb25zdCBpbXBvcnRSZXNwID0gYXdhaXQgQXhpb3MucG9zdChcbiAgICAgIGAke3RoaXMuY29uZmlnLnByb3RvY29sfTovLyR7dGhpcy5jb25maWcuaG9zdH0vcy8ke3JlYWxtTmFtZX0vYXBpL3NhdmVkX29iamVjdHMvX2ltcG9ydD9vdmVyd3JpdGU9dHJ1ZWAsXG4gICAgICBmb3JtLFxuICAgICAge1xuICAgICAgICBhdXRoOiB0aGlzLmNvbmZpZy5hZG1pbkFwaVVzZXJcbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgdXNlcm5hbWU6IHRoaXMuY29uZmlnLmFkbWluQXBpVXNlci51c2VybmFtZSxcbiAgICAgICAgICAgICAgcGFzc3dvcmQ6IHRoaXMuY29uZmlnLmFkbWluQXBpVXNlci5wYXNzd29yZCxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgIC4uLmZvcm0uZ2V0SGVhZGVycygpLFxuICAgICAgICAgIFwia2JuLXhzcmZcIjogXCJ0cnVlXCIsXG4gICAgICAgIH0sXG4gICAgICAgIG1heEJvZHlMZW5ndGg6IEluZmluaXR5LFxuICAgICAgICBtYXhDb250ZW50TGVuZ3RoOiBJbmZpbml0eSxcbiAgICAgICAgdmFsaWRhdGVTdGF0dXM6ICgpID0+IHRydWUsXG4gICAgICAgIGh0dHBzQWdlbnQ6IG5ldyBodHRwcy5BZ2VudCh7XG4gICAgICAgICAgcmVqZWN0VW5hdXRob3JpemVkOiAocmVzb2x2ZUtpYmFuYUlzUHJvZHVjdGlvbih0aGlzLmNvbmZpZyBhcyBhbnkpKSxcbiAgICAgICAgfSksXG4gICAgICB9XG4gICAgKTtcbiAgICBpZiAoaW1wb3J0UmVzcC5zdGF0dXMgPj0gMzAwKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYFVuYWJsZSB0byBpbXBvcnQgZGFzaGJvYXJkcyBmb3IgJHtyZWFsbU5hbWV9OiAke2ltcG9ydFJlc3Auc3RhdHVzVGV4dH1gO1xuICAgICAgdGhyb3cgbmV3IEJhZFJlcXVlc3RFcnJvcihtZXNzYWdlKTtcbiAgICB9XG4gICAgcmV0dXJuIGRhc2hib2FyZHNbMF0/LmlkO1xuICB9XG5cbiAgZ2VuZXJhdGVEYXNoYm9hcmRFbWJlZFVybChvcHRpb25zOiB7XG4gICAgc3BhY2U6IHN0cmluZztcbiAgICBkYXNoYm9hcmRJZDogc3RyaW5nO1xuICAgIHNob3dUaW1lRmlsdGVyPzogYm9vbGVhbjtcbiAgICBzaG93UXVlcnlJbnB1dD86IGJvb2xlYW47XG4gICAgc2hvd0ZpbHRlckJhcj86IGJvb2xlYW47XG4gICAgaGlkZVBhbmVsVGl0bGVzPzogYm9vbGVhbjtcbiAgICB0aW1lUmFuZ2U/OiB7IGZyb206IHN0cmluZzsgdG86IHN0cmluZyB9O1xuICB9KTogc3RyaW5nIHtcbiAgICBjb25zdCB7XG4gICAgICBzcGFjZSxcbiAgICAgIGRhc2hib2FyZElkLFxuICAgICAgc2hvd1RpbWVGaWx0ZXIgPSBmYWxzZSxcbiAgICAgIHNob3dRdWVyeUlucHV0ID0gZmFsc2UsXG4gICAgICBzaG93RmlsdGVyQmFyID0gZmFsc2UsXG4gICAgICBoaWRlUGFuZWxUaXRsZXMgPSBmYWxzZSxcbiAgICAgIHRpbWVSYW5nZSxcbiAgICB9ID0gb3B0aW9ucztcbiAgICBjb25zdCBiYXNlID0gYCR7dGhpcy5jb25maWcucHJvdG9jb2x9Oi8vJHt0aGlzLmNvbmZpZy5ob3N0fWA7XG4gICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh7IGVtYmVkOiBcInRydWVcIiB9KTtcbiAgICBpZiAoc2hvd1RpbWVGaWx0ZXIpIHBhcmFtcy5zZXQoXCJzaG93LXRpbWUtZmlsdGVyXCIsIFwidHJ1ZVwiKTtcbiAgICBpZiAoc2hvd1F1ZXJ5SW5wdXQpIHBhcmFtcy5zZXQoXCJzaG93LXF1ZXJ5LWlucHV0XCIsIFwidHJ1ZVwiKTtcbiAgICBpZiAoc2hvd0ZpbHRlckJhcikgcGFyYW1zLnNldChcInNob3ctZmlsdGVyLWJhclwiLCBcInRydWVcIik7XG4gICAgaWYgKGhpZGVQYW5lbFRpdGxlcykgcGFyYW1zLnNldChcImhpZGUtcGFuZWwtdGl0bGVzXCIsIFwidHJ1ZVwiKTtcbiAgICBjb25zdCB0aW1lRnJhZ21lbnQgPSB0aW1lUmFuZ2VcbiAgICAgID8gYCZfZz0ke2VuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeSh7IHRpbWU6IHRpbWVSYW5nZSB9KSl9YFxuICAgICAgOiBcIlwiO1xuICAgIHJldHVybiBgJHtiYXNlfS9zLyR7c3BhY2V9L2FwcC9kYXNoYm9hcmRzIy92aWV3LyR7ZGFzaGJvYXJkSWR9PyR7cGFyYW1zLnRvU3RyaW5nKCl9JHt0aW1lRnJhZ21lbnR9YDtcbiAgfVxuXG4gIGFzeW5jIHZlcmlmeVNwYWNlU2V0dXAoXG4gICAgcmVhbG1OYW1lOiBzdHJpbmcsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcInZlcmlmeVNwYWNlU2V0dXBcIiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLnZlcmlmeVNwYWNlU2V0dXApO1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5yZXF1ZXN0KFxuICAgICAgXCJHRVRcIixcbiAgICAgIGAvcy8ke3JlYWxtTmFtZX0vYXBpL3NhdmVkX29iamVjdHMvX2ZpbmQ/dHlwZT1kYXNoYm9hcmQmcGVyX3BhZ2U9MWAsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICB0aGlzLmNvbmZpZy5hZG1pbkFwaVVzZXIsXG4gICAgICB7IGhlYWRlcnM6IHsgXCJrYm4teHNyZlwiOiBcInRydWVcIiB9IH0sXG4gICAgICAyMDAsXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgICBpZiAocmVzcG9uc2Uuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgVW5hYmxlIHRvIHZlcmlmeSBzcGFjZSAke3JlYWxtTmFtZX06ICR7cmVzcG9uc2Uuc3RhdHVzVGV4dH1gO1xuICAgICAgdGhyb3cgbmV3IEJhZFJlcXVlc3RFcnJvcihtZXNzYWdlKTtcbiAgICB9XG4gICAgY29uc3QgZGF0YSA9IHBhcnNlSnNvbkJvZHk8YW55PihyZXNwb25zZS5kYXRhKTtcbiAgICBpZiAoKGRhdGE/LnRvdGFsID8/IDApID09PSAwKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYE5vIGRhc2hib2FyZHMgZm91bmQgaW4gc3BhY2UgJHtyZWFsbU5hbWV9YDtcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlSHR0cENsaWVudChjb25maWc6IEtpYmFuYVNldHVwQ29uZmlnKTogQXhpb3NJbnN0YW5jZSB7XG4gICAgcmV0dXJuIEF4aW9zLmNyZWF0ZSh7XG4gICAgICBiYXNlVVJMOiBgJHtjb25maWcucHJvdG9jb2x9Oi8vJHtjb25maWcuaG9zdH1gLFxuICAgICAgdmFsaWRhdGVTdGF0dXM6ICgpID0+IHRydWUsXG4gICAgICBodHRwc0FnZW50OiBuZXcgaHR0cHMuQWdlbnQoe1xuICAgICAgICByZWplY3RVbmF1dGhvcml6ZWQ6IChyZXNvbHZlS2liYW5hSXNQcm9kdWN0aW9uKHRoaXMuY29uZmlnIGFzIGFueSkpLFxuICAgICAgfSksXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcGFyc2VFcnJvcihlcnJvcjogRXJyb3IpOiBFcnJvciB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGVycm9yLm1lc3NhZ2UgfHwgZXJyb3IubmFtZSB8fCBcIlVua25vd24gZXJyb3JcIjtcbiAgICBjb25zdCBsb3dlck1lc3NhZ2UgPSBtZXNzYWdlLnRvTG93ZXJDYXNlKCk7XG5cbiAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwibm90IGZvdW5kXCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQwNFwiKSkge1xuICAgICAgcmV0dXJuIG5ldyBOb3RGb3VuZEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cblxuICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJhbHJlYWR5IGV4aXN0c1wiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJjb25mbGljdFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDlcIikpIHtcbiAgICAgIHJldHVybiBuZXcgQ29uZmxpY3RFcnJvcihtZXNzYWdlKTtcbiAgICB9XG5cbiAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiaW52YWxpZFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJiYWQgcmVxdWVzdFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDBcIikpIHtcbiAgICAgIHJldHVybiBuZXcgQmFkUmVxdWVzdEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cblxuICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJ1bmF1dGhvcml6ZWRcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDAxXCIpKSB7XG4gICAgICByZXR1cm4gbmV3IE5vdEZvdW5kRXJyb3IobWVzc2FnZSk7XG4gICAgfVxuXG4gICAgaWYgKGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcImZvcmJpZGRlblwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDNcIikpIHtcbiAgICAgIHJldHVybiBuZXcgTm90Rm91bmRFcnJvcihtZXNzYWdlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEludGVybmFsRXJyb3IobWVzc2FnZSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJlcXVlc3QoXG4gICAgbWV0aG9kOiBcIkdFVFwiIHwgXCJQT1NUXCIgfCBcIlBVVFwiIHwgXCJERUxFVEVcIixcbiAgICB1cmw6IHN0cmluZyxcbiAgICBwYXlsb2FkOiB1bmtub3duLFxuICAgIGFwaVVzZXI6IEtpYmFuYVVzZXIgfCB1bmRlZmluZWQsXG4gICAgZXh0cmE6IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgc3VjY2Vzc0NvZGU6IG51bWJlcixcbiAgICAuLi5hcmdzOiBDb250ZXh0dWFsQXJnczxhbnk+XG4gICk6IFByb21pc2U8YW55PiB7XG4gICAgdGhpcy5sb2dDdHgoYXJncywgdGhpcy5yZXF1ZXN0KTtcbiAgICByZXR1cm4gdGhpcy5jbGllbnQucmVxdWVzdCh7XG4gICAgICBtZXRob2QsXG4gICAgICB1cmwsXG4gICAgICBkYXRhOlxuICAgICAgICBwYXlsb2FkID09PSB1bmRlZmluZWRcbiAgICAgICAgICA/IHVuZGVmaW5lZFxuICAgICAgICAgIDogdHlwZW9mIHBheWxvYWQgPT09IFwic3RyaW5nXCJcbiAgICAgICAgICAgID8gcGF5bG9hZFxuICAgICAgICAgICAgOiBKU09OLnN0cmluZ2lmeShwYXlsb2FkKSxcbiAgICAgIGF1dGg6IGFwaVVzZXJcbiAgICAgICAgPyB7IHVzZXJuYW1lOiBhcGlVc2VyLnVzZXJuYW1lLCBwYXNzd29yZDogYXBpVXNlci5wYXNzd29yZCB9XG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgdmFsaWRhdGVTdGF0dXM6ICgpID0+IHRydWUsXG4gICAgICBodHRwc0FnZW50OiBuZXcgaHR0cHMuQWdlbnQoe1xuICAgICAgICByZWplY3RVbmF1dGhvcml6ZWQ6IChyZXNvbHZlS2liYW5hSXNQcm9kdWN0aW9uKHRoaXMuY29uZmlnIGFzIGFueSkpLFxuICAgICAgfSksXG4gICAgICAuLi5leHRyYSxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
217
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS2liYW5hRGFzaGJvYXJkU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIktpYmFuYURhc2hib2FyZFNlcnZpY2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBSSxVQUFVLEdBQUcsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLFVBQVUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSTtJQUNqRixJQUFJLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzdILElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxJQUFJLE9BQU8sT0FBTyxDQUFDLFFBQVEsS0FBSyxVQUFVO1FBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7O1FBQzFILEtBQUssSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFBRSxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDO2dCQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVB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VCxVQUFVLENBQUMsYUFBYSxFQUFFLHdDQUFpQixDQUFDO0NBQy9DLEVBQUUsc0JBQXNCLENBQUMsU0FBUyxFQUFFLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQzVELDAvb0JBQTAvb0IiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19kZWNvcmF0ZSA9ICh0aGlzICYmIHRoaXMuX19kZWNvcmF0ZSkgfHwgZnVuY3Rpb24gKGRlY29yYXRvcnMsIHRhcmdldCwga2V5LCBkZXNjKSB7XG4gICAgdmFyIGMgPSBhcmd1bWVudHMubGVuZ3RoLCByID0gYyA8IDMgPyB0YXJnZXQgOiBkZXNjID09PSBudWxsID8gZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBrZXkpIDogZGVzYywgZDtcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QuZGVjb3JhdGUgPT09IFwiZnVuY3Rpb25cIikgciA9IFJlZmxlY3QuZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpO1xuICAgIGVsc2UgZm9yICh2YXIgaSA9IGRlY29yYXRvcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIGlmIChkID0gZGVjb3JhdG9yc1tpXSkgciA9IChjIDwgMyA/IGQocikgOiBjID4gMyA/IGQodGFyZ2V0LCBrZXksIHIpIDogZCh0YXJnZXQsIGtleSkpIHx8IHI7XG4gICAgcmV0dXJuIGMgPiAzICYmIHIgJiYgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCByKSwgcjtcbn07XG52YXIgX19tZXRhZGF0YSA9ICh0aGlzICYmIHRoaXMuX19tZXRhZGF0YSkgfHwgZnVuY3Rpb24gKGssIHYpIHtcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QubWV0YWRhdGEgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIFJlZmxlY3QubWV0YWRhdGEoaywgdik7XG59O1xuaW1wb3J0IHsgQmFkUmVxdWVzdEVycm9yLCBDb25mbGljdEVycm9yLCBJbnRlcm5hbEVycm9yLCBOb3RGb3VuZEVycm9yLCB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgQ2xpZW50QmFzZWRTZXJ2aWNlLCBzZXJ2aWNlIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgQXhpb3MgZnJvbSBcImF4aW9zXCI7XG5pbXBvcnQgKiBhcyBmcyBmcm9tIFwibm9kZTpmc1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgKiBhcyBodHRwcyBmcm9tIFwibm9kZTpodHRwc1wiO1xuaW1wb3J0IHsgcmVzb2x2ZUtpYmFuYUlzUHJvZHVjdGlvbiB9IGZyb20gXCIuL3J1bnRpbWUuanNcIjtcbmltcG9ydCBGb3JtRGF0YSBmcm9tIFwiZm9ybS1kYXRhXCI7XG5pbXBvcnQgeyBLaWJhbmFBdXRoU2VydmljZSB9IGZyb20gXCIuL0tpYmFuYUF1dGhTZXJ2aWNlLmpzXCI7XG5pbXBvcnQgeyBwYXJzZUpzb25Cb2R5IH0gZnJvbSBcIi4vLi4vLi4vc2hhcmVkL3J1bnRpbWUuanNcIjtcbmV4cG9ydCBjbGFzcyBLaWJhbmFEYXNoYm9hcmRTZXJ2aWNlIGV4dGVuZHMgQ2xpZW50QmFzZWRTZXJ2aWNlIHtcbiAgICBhc3luYyBpbml0aWFsaXplKC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJpbml0aWFsaXplXCIsIHRydWUpKS5mb3IodGhpcy5pbml0aWFsaXplKTtcbiAgICAgICAgY29uc3QgY29uZmlnID0gY3R4QXJnc1swXTtcbiAgICAgICAgdGhpcy5fY29uZmlnID0gY29uZmlnO1xuICAgICAgICBjb25zdCBjbGllbnQgPSB0aGlzLmNyZWF0ZUh0dHBDbGllbnQoY29uZmlnKTtcbiAgICAgICAgdGhpcy5fY2xpZW50ID0gY2xpZW50O1xuICAgICAgICByZXR1cm4geyBjb25maWcsIGNsaWVudCB9O1xuICAgIH1cbiAgICBhc3luYyBjbG9uZURlZmF1bHREYXNoYm9hcmRzKHJlYWxtTmFtZSwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImNsb25lRGVmYXVsdERhc2hib2FyZHNcIiwgdHJ1ZSkpLmZvcih0aGlzLmNsb25lRGVmYXVsdERhc2hib2FyZHMpO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMucmVxdWVzdChcIkdFVFwiLCBgL3MvZGVmYXVsdC9hcGkvc2F2ZWRfb2JqZWN0cy9fZmluZD90eXBlPWRhc2hib2FyZCZwZXJfcGFnZT0xMDAwYCwgdW5kZWZpbmVkLCB0aGlzLmNvbmZpZy5hZG1pbkFwaVVzZXIsIHsgaGVhZGVyczogeyBcImtibi14c3JmXCI6IFwidHJ1ZVwiIH0gfSwgMjAwLCAuLi5jdHhBcmdzKTtcbiAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gYFVuYWJsZSB0byBsaXN0IGRhc2hib2FyZHMgZnJvbSBkZWZhdWx0IHNwYWNlOiAke3Jlc3BvbnNlLnN0YXR1c1RleHR9YDtcbiAgICAgICAgICAgIHRocm93IG5ldyBCYWRSZXF1ZXN0RXJyb3IobWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZGF0YSA9IHBhcnNlSnNvbkJvZHkocmVzcG9uc2UuZGF0YSkgPz8ge307XG4gICAgICAgIGNvbnN0IGRhc2hib2FyZHMgPSBkYXRhLnNhdmVkX29iamVjdHMgPz8gW107XG4gICAgICAgIGlmIChkYXNoYm9hcmRzLmxlbmd0aCA9PT0gMClcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IGNvcHlSZXNwID0gYXdhaXQgdGhpcy5yZXF1ZXN0KFwiUE9TVFwiLCBgL2FwaS9zcGFjZXMvX2NvcHlfc2F2ZWRfb2JqZWN0c2AsIHtcbiAgICAgICAgICAgIHNwYWNlczogW3JlYWxtTmFtZV0sXG4gICAgICAgICAgICBvYmplY3RzOiBkYXNoYm9hcmRzLm1hcCgoZGFzaGJvYXJkKSA9PiAoe1xuICAgICAgICAgICAgICAgIGlkOiBkYXNoYm9hcmQuaWQsXG4gICAgICAgICAgICAgICAgdHlwZTogXCJkYXNoYm9hcmRcIixcbiAgICAgICAgICAgIH0pKSxcbiAgICAgICAgICAgIGluY2x1ZGVSZWZlcmVuY2VzOiB0cnVlLFxuICAgICAgICAgICAgY3JlYXRlTmV3Q29waWVzOiB0cnVlLFxuICAgICAgICAgICAgb3ZlcndyaXRlOiBmYWxzZSxcbiAgICAgICAgfSwgdGhpcy5jb25maWcuYWRtaW5BcGlVc2VyLCB7IGhlYWRlcnM6IHsgXCJrYm4teHNyZlwiOiBcInRydWVcIiwgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSB9LCAyMDAsIC4uLmN0eEFyZ3MpO1xuICAgICAgICBpZiAoY29weVJlc3Auc3RhdHVzID49IDMwMCkge1xuICAgICAgICAgICAgY29uc3QgbWVzc2FnZSA9IGBVbmFibGUgdG8gY29weSBkYXNoYm9hcmRzIHRvICR7cmVhbG1OYW1lfTogJHtjb3B5UmVzcC5zdGF0dXNUZXh0fWA7XG4gICAgICAgICAgICB0aHJvdyBuZXcgQmFkUmVxdWVzdEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFzc2V0Um9vdCA9IHRoaXMuY29uZmlnLmRhc2hib2FyZEltcG9ydFBhdGggPz8gdGhpcy5jb25maWcuYXNzZXRzO1xuICAgICAgICBpZiAoIWFzc2V0Um9vdCkge1xuICAgICAgICAgICAgcmV0dXJuIGRhc2hib2FyZHNbMF0/LmlkO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5kanNvblBhdGggPSBwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgYXNzZXRSb290LCBcInBsYS1zY2FuLm5kanNvblwiKTtcbiAgICAgICAgaWYgKCFmcy5leGlzdHNTeW5jKG5kanNvblBhdGgpKVxuICAgICAgICAgICAgcmV0dXJuIGRhc2hib2FyZHNbMF0/LmlkO1xuICAgICAgICBjb25zdCBmb3JtID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgICAgIGZvcm0uYXBwZW5kKFwiZmlsZVwiLCBmcy5jcmVhdGVSZWFkU3RyZWFtKG5kanNvblBhdGgpKTtcbiAgICAgICAgY29uc3QgaW1wb3J0UmVzcCA9IGF3YWl0IEF4aW9zLnBvc3QoYCR7dGhpcy5jb25maWcucHJvdG9jb2x9Oi8vJHt0aGlzLmNvbmZpZy5ob3N0fS9zLyR7cmVhbG1OYW1lfS9hcGkvc2F2ZWRfb2JqZWN0cy9faW1wb3J0P292ZXJ3cml0ZT10cnVlYCwgZm9ybSwge1xuICAgICAgICAgICAgYXV0aDogdGhpcy5jb25maWcuYWRtaW5BcGlVc2VyXG4gICAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICAgIHVzZXJuYW1lOiB0aGlzLmNvbmZpZy5hZG1pbkFwaVVzZXIudXNlcm5hbWUsXG4gICAgICAgICAgICAgICAgICAgIHBhc3N3b3JkOiB0aGlzLmNvbmZpZy5hZG1pbkFwaVVzZXIucGFzc3dvcmQsXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgIC4uLmZvcm0uZ2V0SGVhZGVycygpLFxuICAgICAgICAgICAgICAgIFwia2JuLXhzcmZcIjogXCJ0cnVlXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbWF4Qm9keUxlbmd0aDogSW5maW5pdHksXG4gICAgICAgICAgICBtYXhDb250ZW50TGVuZ3RoOiBJbmZpbml0eSxcbiAgICAgICAgICAgIHZhbGlkYXRlU3RhdHVzOiAoKSA9PiB0cnVlLFxuICAgICAgICAgICAgaHR0cHNBZ2VudDogbmV3IGh0dHBzLkFnZW50KHtcbiAgICAgICAgICAgICAgICByZWplY3RVbmF1dGhvcml6ZWQ6IChyZXNvbHZlS2liYW5hSXNQcm9kdWN0aW9uKHRoaXMuY29uZmlnKSksXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChpbXBvcnRSZXNwLnN0YXR1cyA+PSAzMDApIHtcbiAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgVW5hYmxlIHRvIGltcG9ydCBkYXNoYm9hcmRzIGZvciAke3JlYWxtTmFtZX06ICR7aW1wb3J0UmVzcC5zdGF0dXNUZXh0fWA7XG4gICAgICAgICAgICB0aHJvdyBuZXcgQmFkUmVxdWVzdEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkYXNoYm9hcmRzWzBdPy5pZDtcbiAgICB9XG4gICAgZ2VuZXJhdGVEYXNoYm9hcmRFbWJlZFVybChvcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IHsgc3BhY2UsIGRhc2hib2FyZElkLCBzaG93VGltZUZpbHRlciA9IGZhbHNlLCBzaG93UXVlcnlJbnB1dCA9IGZhbHNlLCBzaG93RmlsdGVyQmFyID0gZmFsc2UsIGhpZGVQYW5lbFRpdGxlcyA9IGZhbHNlLCB0aW1lUmFuZ2UsIH0gPSBvcHRpb25zO1xuICAgICAgICBjb25zdCBiYXNlID0gYCR7dGhpcy5jb25maWcucHJvdG9jb2x9Oi8vJHt0aGlzLmNvbmZpZy5ob3N0fWA7XG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoeyBlbWJlZDogXCJ0cnVlXCIgfSk7XG4gICAgICAgIGlmIChzaG93VGltZUZpbHRlcilcbiAgICAgICAgICAgIHBhcmFtcy5zZXQoXCJzaG93LXRpbWUtZmlsdGVyXCIsIFwidHJ1ZVwiKTtcbiAgICAgICAgaWYgKHNob3dRdWVyeUlucHV0KVxuICAgICAgICAgICAgcGFyYW1zLnNldChcInNob3ctcXVlcnktaW5wdXRcIiwgXCJ0cnVlXCIpO1xuICAgICAgICBpZiAoc2hvd0ZpbHRlckJhcilcbiAgICAgICAgICAgIHBhcmFtcy5zZXQoXCJzaG93LWZpbHRlci1iYXJcIiwgXCJ0cnVlXCIpO1xuICAgICAgICBpZiAoaGlkZVBhbmVsVGl0bGVzKVxuICAgICAgICAgICAgcGFyYW1zLnNldChcImhpZGUtcGFuZWwtdGl0bGVzXCIsIFwidHJ1ZVwiKTtcbiAgICAgICAgY29uc3QgdGltZUZyYWdtZW50ID0gdGltZVJhbmdlXG4gICAgICAgICAgICA/IGAmX2c9JHtlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoeyB0aW1lOiB0aW1lUmFuZ2UgfSkpfWBcbiAgICAgICAgICAgIDogXCJcIjtcbiAgICAgICAgcmV0dXJuIGAke2Jhc2V9L3MvJHtzcGFjZX0vYXBwL2Rhc2hib2FyZHMjL3ZpZXcvJHtkYXNoYm9hcmRJZH0/JHtwYXJhbXMudG9TdHJpbmcoKX0ke3RpbWVGcmFnbWVudH1gO1xuICAgIH1cbiAgICBhc3luYyB2ZXJpZnlTcGFjZVNldHVwKHJlYWxtTmFtZSwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcInZlcmlmeVNwYWNlU2V0dXBcIiwgdHJ1ZSkpLmZvcih0aGlzLnZlcmlmeVNwYWNlU2V0dXApO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMucmVxdWVzdChcIkdFVFwiLCBgL3MvJHtyZWFsbU5hbWV9L2FwaS9zYXZlZF9vYmplY3RzL19maW5kP3R5cGU9ZGFzaGJvYXJkJnBlcl9wYWdlPTFgLCB1bmRlZmluZWQsIHRoaXMuY29uZmlnLmFkbWluQXBpVXNlciwgeyBoZWFkZXJzOiB7IFwia2JuLXhzcmZcIjogXCJ0cnVlXCIgfSB9LCAyMDAsIC4uLmN0eEFyZ3MpO1xuICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgVW5hYmxlIHRvIHZlcmlmeSBzcGFjZSAke3JlYWxtTmFtZX06ICR7cmVzcG9uc2Uuc3RhdHVzVGV4dH1gO1xuICAgICAgICAgICAgdGhyb3cgbmV3IEJhZFJlcXVlc3RFcnJvcihtZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkYXRhID0gcGFyc2VKc29uQm9keShyZXNwb25zZS5kYXRhKTtcbiAgICAgICAgaWYgKChkYXRhPy50b3RhbCA/PyAwKSA9PT0gMCkge1xuICAgICAgICAgICAgY29uc3QgbWVzc2FnZSA9IGBObyBkYXNoYm9hcmRzIGZvdW5kIGluIHNwYWNlICR7cmVhbG1OYW1lfWA7XG4gICAgICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRFcnJvcihtZXNzYWdlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjcmVhdGVIdHRwQ2xpZW50KGNvbmZpZykge1xuICAgICAgICByZXR1cm4gQXhpb3MuY3JlYXRlKHtcbiAgICAgICAgICAgIGJhc2VVUkw6IGAke2NvbmZpZy5wcm90b2NvbH06Ly8ke2NvbmZpZy5ob3N0fWAsXG4gICAgICAgICAgICB2YWxpZGF0ZVN0YXR1czogKCkgPT4gdHJ1ZSxcbiAgICAgICAgICAgIGh0dHBzQWdlbnQ6IG5ldyBodHRwcy5BZ2VudCh7XG4gICAgICAgICAgICAgICAgcmVqZWN0VW5hdXRob3JpemVkOiAocmVzb2x2ZUtpYmFuYUlzUHJvZHVjdGlvbih0aGlzLmNvbmZpZykpLFxuICAgICAgICAgICAgfSksXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBwYXJzZUVycm9yKGVycm9yKSB7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBlcnJvci5tZXNzYWdlIHx8IGVycm9yLm5hbWUgfHwgXCJVbmtub3duIGVycm9yXCI7XG4gICAgICAgIGNvbnN0IGxvd2VyTWVzc2FnZSA9IG1lc3NhZ2UudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgaWYgKGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIm5vdCBmb3VuZFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDRcIikpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgTm90Rm91bmRFcnJvcihtZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiYWxyZWFkeSBleGlzdHNcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiY29uZmxpY3RcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDA5XCIpKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IENvbmZsaWN0RXJyb3IobWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcImludmFsaWRcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiYmFkIHJlcXVlc3RcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDAwXCIpKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEJhZFJlcXVlc3RFcnJvcihtZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwidW5hdXRob3JpemVkXCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQwMVwiKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBOb3RGb3VuZEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJmb3JiaWRkZW5cIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDAzXCIpKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IE5vdEZvdW5kRXJyb3IobWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBJbnRlcm5hbEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cbiAgICBhc3luYyByZXF1ZXN0KG1ldGhvZCwgdXJsLCBwYXlsb2FkLCBhcGlVc2VyLCBleHRyYSwgc3VjY2Vzc0NvZGUsIC4uLmFyZ3MpIHtcbiAgICAgICAgdGhpcy5sb2dDdHgoYXJncywgdGhpcy5yZXF1ZXN0KTtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2xpZW50LnJlcXVlc3Qoe1xuICAgICAgICAgICAgbWV0aG9kLFxuICAgICAgICAgICAgdXJsLFxuICAgICAgICAgICAgZGF0YTogcGF5bG9hZCA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgPyB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICA6IHR5cGVvZiBwYXlsb2FkID09PSBcInN0cmluZ1wiXG4gICAgICAgICAgICAgICAgICAgID8gcGF5bG9hZFxuICAgICAgICAgICAgICAgICAgICA6IEpTT04uc3RyaW5naWZ5KHBheWxvYWQpLFxuICAgICAgICAgICAgYXV0aDogYXBpVXNlclxuICAgICAgICAgICAgICAgID8geyB1c2VybmFtZTogYXBpVXNlci51c2VybmFtZSwgcGFzc3dvcmQ6IGFwaVVzZXIucGFzc3dvcmQgfVxuICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgdmFsaWRhdGVTdGF0dXM6ICgpID0+IHRydWUsXG4gICAgICAgICAgICBodHRwc0FnZW50OiBuZXcgaHR0cHMuQWdlbnQoe1xuICAgICAgICAgICAgICAgIHJlamVjdFVuYXV0aG9yaXplZDogKHJlc29sdmVLaWJhbmFJc1Byb2R1Y3Rpb24odGhpcy5jb25maWcpKSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgLi4uZXh0cmEsXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbl9fZGVjb3JhdGUoW1xuICAgIHNlcnZpY2UoKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgS2liYW5hQXV0aFNlcnZpY2UpXG5dLCBLaWJhbmFEYXNoYm9hcmRTZXJ2aWNlLnByb3RvdHlwZSwgXCJhdXRoU2VydmljZVwiLCB2b2lkIDApO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pUzJsaVlXNWhSR0Z6YUdKdllYSmtVMlZ5ZG1salpTNXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMeTR1THk0dUwzTnlZeTlyYVdKaGJtRXZjMlZ5ZG1salpYTXZTMmxpWVc1aFJHRnphR0p2WVhKa1UyVnlkbWxqWlM1MGN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaU96czdPenM3T3pzN1FVRkJRU3hQUVVGUExFVkJRMHdzWlVGQlpTeEZRVU5tTEdGQlFXRXNSVUZEWWl4aFFVRmhMRVZCUTJJc1lVRkJZU3hIUVVOa0xFMUJRVTBzZVVKQlFYbENMRU5CUVVNN1FVRkZha01zVDBGQlR5eEZRVUZGTEd0Q1FVRnJRaXhGUVVGRkxFOUJRVThzUlVGQlJTeE5RVUZOTEdkQ1FVRm5RaXhEUVVGRE8wRkJTemRFTEU5QlFVOHNTMEZCTmtJc1RVRkJUU3hQUVVGUExFTkJRVU03UVVGRGJFUXNUMEZCVHl4TFFVRkxMRVZCUVVVc1RVRkJUU3hUUVVGVExFTkJRVU03UVVGRE9VSXNUMEZCVHl4TFFVRkxMRWxCUVVrc1RVRkJUU3hYUVVGWExFTkJRVU03UVVGRGJFTXNUMEZCVHl4TFFVRkxMRXRCUVVzc1RVRkJUU3haUVVGWkxFTkJRVU03UVVGRGNFTXNUMEZCVHl4RlFVRkZMSGxDUVVGNVFpeEZRVUZGTEhGQ1FVRnJRanRCUVVOMFJDeFBRVUZQTEZGQlFWRXNUVUZCVFN4WFFVRlhMRU5CUVVNN1FVRkRha01zVDBGQlR5eEZRVUZGTEdsQ1FVRnBRaXhGUVVGRkxDdENRVUUwUWp0QlFVTjRSQ3hQUVVGUExFVkJRVVVzWVVGQllTeEZRVUZGTEd0RFFVRTJRanRCUVVWeVJDeE5RVUZOTEU5QlFVOHNjMEpCUVhWQ0xGTkJRVkVzYTBKQlJ6TkRPMGxCU1VNc1MwRkJTeXhEUVVGRExGVkJRVlVzUTBGRFpDeEhRVUZITEVsQlFUWkNPMUZCUldoRExFMUJRVTBzUlVGQlJTeFBRVUZQTEVWQlFVVXNSMEZCUnl4RFFVTnNRaXhOUVVGTkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RlFVRkZMRmxCUVZrc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGRE5VTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETzFGQlEzWkNMRTFCUVUwc1RVRkJUU3hIUVVGSExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFYTkNMRU5CUVVNN1VVRkRMME1zU1VGQlNTeERRVUZETEU5QlFVOHNSMEZCUnl4TlFVRk5MRU5CUVVNN1VVRkRkRUlzVFVGQlRTeE5RVUZOTEVkQlFVY3NTVUZCU1N4RFFVRkRMR2RDUVVGblFpeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMUZCUXpkRExFbEJRVWtzUTBGQlF5eFBRVUZQTEVkQlFVY3NUVUZCVFN4RFFVRkRPMUZCUTNSQ0xFOUJRVThzUlVGQlJTeE5RVUZOTEVWQlFVVXNUVUZCVFN4RlFVRkZMRU5CUVVNN1NVRkROVUlzUTBGQlF6dEpRVVZFTEV0QlFVc3NRMEZCUXl4elFrRkJjMElzUTBGRE1VSXNVMEZCYVVJc1JVRkRha0lzUjBGQlJ5eEpRVUUyUWp0UlFVVm9ReXhOUVVGTkxFVkJRVVVzVDBGQlR5eEZRVUZGTEVkQlFVY3NRMEZEYkVJc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NSVUZCUlN4M1FrRkJkMElzUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZEZUVRc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEhOQ1FVRnpRaXhEUVVGRExFTkJRVU03VVVGRGJrTXNUVUZCVFN4UlFVRlJMRWRCUVVjc1RVRkJUU3hKUVVGSkxFTkJRVU1zVDBGQlR5eERRVU5xUXl4TFFVRkxMRVZCUTB3c2FVVkJRV2xGTEVWQlEycEZMRk5CUVZNc1JVRkRWQ3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEZsQlFWa3NSVUZEZUVJc1JVRkJSU3hQUVVGUExFVkJRVVVzUlVGQlJTeFZRVUZWTEVWQlFVVXNUVUZCVFN4RlFVRkZMRVZCUVVVc1JVRkRia01zUjBGQlJ5eEZRVU5JTEVkQlFVY3NUMEZCVHl4RFFVTllMRU5CUVVNN1VVRkRSaXhKUVVGSkxGRkJRVkVzUTBGQlF5eE5RVUZOTEV0QlFVc3NSMEZCUnl4RlFVRkZMRU5CUVVNN1dVRkROVUlzVFVGQlRTeFBRVUZQTEVkQlFVY3NhVVJCUVdsRUxGRkJRVkVzUTBGQlF5eFZRVUZWTEVWQlFVVXNRMEZCUXp0WlFVTjJSaXhOUVVGTkxFbEJRVWtzWlVGQlpTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMUZCUTNKRExFTkJRVU03VVVGRFJDeE5RVUZOTEVsQlFVa3NSMEZCUnl4aFFVRmhMRU5CUVUwc1VVRkJVU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXp0UlFVTnlSQ3hOUVVGTkxGVkJRVlVzUjBGQk1FSXNTVUZCU1N4RFFVRkRMR0ZCUVdFc1NVRkJTU3hGUVVGRkxFTkJRVU03VVVGRGJrVXNTVUZCU1N4VlFVRlZMRU5CUVVNc1RVRkJUU3hMUVVGTExFTkJRVU03V1VGQlJTeFBRVUZQTEZOQlFWTXNRMEZCUXp0UlFVVTVReXhOUVVGTkxGRkJRVkVzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUTJwRExFMUJRVTBzUlVGRFRpeHBRMEZCYVVNc1JVRkRha003V1VGRFJTeE5RVUZOTEVWQlFVVXNRMEZCUXl4VFFVRlRMRU5CUVVNN1dVRkRia0lzVDBGQlR5eEZRVUZGTEZWQlFWVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhUUVVGVExFVkJRVVVzUlVGQlJTeERRVUZETEVOQlFVTTdaMEpCUTNSRExFVkJRVVVzUlVGQlJTeFRRVUZUTEVOQlFVTXNSVUZCUlR0blFrRkRhRUlzU1VGQlNTeEZRVUZGTEZkQlFWYzdZVUZEYkVJc1EwRkJReXhEUVVGRE8xbEJRMGdzYVVKQlFXbENMRVZCUVVVc1NVRkJTVHRaUVVOMlFpeGxRVUZsTEVWQlFVVXNTVUZCU1R0WlFVTnlRaXhUUVVGVExFVkJRVVVzUzBGQlN6dFRRVU5xUWl4RlFVTkVMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zV1VGQldTeEZRVU40UWl4RlFVRkZMRTlCUVU4c1JVRkJSU3hGUVVGRkxGVkJRVlVzUlVGQlJTeE5RVUZOTEVWQlFVVXNZMEZCWXl4RlFVRkZMR3RDUVVGclFpeEZRVUZGTEVWQlFVVXNSVUZEZGtVc1IwRkJSeXhGUVVOSUxFZEJRVWNzVDBGQlR5eERRVU5ZTEVOQlFVTTdVVUZEUml4SlFVRkpMRkZCUVZFc1EwRkJReXhOUVVGTkxFbEJRVWtzUjBGQlJ5eEZRVUZGTEVOQlFVTTdXVUZETTBJc1RVRkJUU3hQUVVGUExFZEJRVWNzWjBOQlFXZERMRk5CUVZNc1MwRkJTeXhSUVVGUkxFTkJRVU1zVlVGQlZTeEZRVUZGTEVOQlFVTTdXVUZEY0VZc1RVRkJUU3hKUVVGSkxHVkJRV1VzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVTnlReXhEUVVGRE8xRkJSVVFzVFVGQlRTeFRRVUZUTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXh0UWtGQmJVSXNTVUZCU1N4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFMUJRVTBzUTBGQlF6dFJRVU40UlN4SlFVRkpMRU5CUVVNc1UwRkJVeXhGUVVGRkxFTkJRVU03V1VGRFppeFBRVUZQTEZWQlFWVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU03VVVGRE0wSXNRMEZCUXp0UlFVVkVMRTFCUVUwc1ZVRkJWU3hIUVVGSExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWRCUVVjc1JVRkJSU3hGUVVGRkxGTkJRVk1zUlVGQlJTeHBRa0ZCYVVJc1EwRkJReXhEUVVGRE8xRkJRekZGTEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1ZVRkJWU3hEUVVGRExGVkJRVlVzUTBGQlF6dFpRVUZGTEU5QlFVOHNWVUZCVlN4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFVkJRVVVzUTBGQlF6dFJRVU42UkN4TlFVRk5MRWxCUVVrc1IwRkJSeXhKUVVGTExGRkJRV2RDTEVWQlFVVXNRMEZCUXp0UlFVTnlReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEUxQlFVMHNSVUZCUlN4RlFVRkZMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOeVJDeE5RVUZOTEZWQlFWVXNSMEZCUnl4TlFVRk5MRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRMnBETEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhSUVVGUkxFMUJRVTBzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRTFCUVUwc1UwRkJVeXd5UTBGQk1rTXNSVUZEZGtjc1NVRkJTU3hGUVVOS08xbEJRMFVzU1VGQlNTeEZRVUZGTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1dVRkJXVHRuUWtGRE5VSXNRMEZCUXl4RFFVRkRPMjlDUVVORkxGRkJRVkVzUlVGQlJTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRmxCUVZrc1EwRkJReXhSUVVGUk8yOUNRVU16UXl4UlFVRlJMRVZCUVVVc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eFpRVUZaTEVOQlFVTXNVVUZCVVR0cFFrRkROVU03WjBKQlEwZ3NRMEZCUXl4RFFVRkRMRk5CUVZNN1dVRkRZaXhQUVVGUExFVkJRVVU3WjBKQlExQXNSMEZCUnl4SlFVRkpMRU5CUVVNc1ZVRkJWU3hGUVVGRk8yZENRVU53UWl4VlFVRlZMRVZCUVVVc1RVRkJUVHRoUVVOdVFqdFpRVU5FTEdGQlFXRXNSVUZCUlN4UlFVRlJPMWxCUTNaQ0xHZENRVUZuUWl4RlFVRkZMRkZCUVZFN1dVRkRNVUlzWTBGQll5eEZRVUZGTEVkQlFVY3NSVUZCUlN4RFFVRkRMRWxCUVVrN1dVRkRNVUlzVlVGQlZTeEZRVUZGTEVsQlFVa3NTMEZCU3l4RFFVRkRMRXRCUVVzc1EwRkJRenRuUWtGRE1VSXNhMEpCUVd0Q0xFVkJRVVVzUTBGQlF5eDVRa0ZCZVVJc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQllTeERRVUZETEVOQlFVTTdZVUZEY0VVc1EwRkJRenRUUVVOSUxFTkJRMFlzUTBGQlF6dFJRVU5HTEVsQlFVa3NWVUZCVlN4RFFVRkRMRTFCUVUwc1NVRkJTU3hIUVVGSExFVkJRVVVzUTBGQlF6dFpRVU0zUWl4TlFVRk5MRTlCUVU4c1IwRkJSeXh0UTBGQmJVTXNVMEZCVXl4TFFVRkxMRlZCUVZVc1EwRkJReXhWUVVGVkxFVkJRVVVzUTBGQlF6dFpRVU42Uml4TlFVRk5MRWxCUVVrc1pVRkJaU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzFGQlEzSkRMRU5CUVVNN1VVRkRSQ3hQUVVGUExGVkJRVlVzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNN1NVRkRNMElzUTBGQlF6dEpRVVZFTEhsQ1FVRjVRaXhEUVVGRExFOUJVWHBDTzFGQlEwTXNUVUZCVFN4RlFVTktMRXRCUVVzc1JVRkRUQ3hYUVVGWExFVkJRMWdzWTBGQll5eEhRVUZITEV0QlFVc3NSVUZEZEVJc1kwRkJZeXhIUVVGSExFdEJRVXNzUlVGRGRFSXNZVUZCWVN4SFFVRkhMRXRCUVVzc1JVRkRja0lzWlVGQlpTeEhRVUZITEV0QlFVc3NSVUZEZGtJc1UwRkJVeXhIUVVOV0xFZEJRVWNzVDBGQlR5eERRVUZETzFGQlExb3NUVUZCVFN4SlFVRkpMRWRCUVVjc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEZGQlFWRXNUVUZCVFN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJTeERRVUZETzFGQlF6ZEVMRTFCUVUwc1RVRkJUU3hIUVVGSExFbEJRVWtzWlVGQlpTeERRVUZETEVWQlFVVXNTMEZCU3l4RlFVRkZMRTFCUVUwc1JVRkJSU3hEUVVGRExFTkJRVU03VVVGRGRFUXNTVUZCU1N4alFVRmpPMWxCUVVVc1RVRkJUU3hEUVVGRExFZEJRVWNzUTBGQlF5eHJRa0ZCYTBJc1JVRkJSU3hOUVVGTkxFTkJRVU1zUTBGQlF6dFJRVU16UkN4SlFVRkpMR05CUVdNN1dVRkJSU3hOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEd0Q1FVRnJRaXhGUVVGRkxFMUJRVTBzUTBGQlF5eERRVUZETzFGQlF6TkVMRWxCUVVrc1lVRkJZVHRaUVVGRkxFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTXNhVUpCUVdsQ0xFVkJRVVVzVFVGQlRTeERRVUZETEVOQlFVTTdVVUZEZWtRc1NVRkJTU3hsUVVGbE8xbEJRVVVzVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4dFFrRkJiVUlzUlVGQlJTeE5RVUZOTEVOQlFVTXNRMEZCUXp0UlFVTTNSQ3hOUVVGTkxGbEJRVmtzUjBGQlJ5eFRRVUZUTzFsQlF6VkNMRU5CUVVNc1EwRkJReXhQUVVGUExHdENRVUZyUWl4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zUlVGQlJTeEpRVUZKTEVWQlFVVXNVMEZCVXl4RlFVRkZMRU5CUVVNc1EwRkJReXhGUVVGRk8xbEJRMnhGTEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNN1VVRkRVQ3hQUVVGUExFZEJRVWNzU1VGQlNTeE5RVUZOTEV0QlFVc3NlVUpCUVhsQ0xGZEJRVmNzU1VGQlNTeE5RVUZOTEVOQlFVTXNVVUZCVVN4RlFVRkZMRWRCUVVjc1dVRkJXU3hGUVVGRkxFTkJRVU03U1VGRGRFY3NRMEZCUXp0SlFVVkVMRXRCUVVzc1EwRkJReXhuUWtGQlowSXNRMEZEY0VJc1UwRkJhVUlzUlVGRGFrSXNSMEZCUnl4SlFVRTJRanRSUVVWb1F5eE5RVUZOTEVWQlFVVXNUMEZCVHl4RlFVRkZMRWRCUVVjc1EwRkRiRUlzVFVGQlRTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1JVRkJSU3hyUWtGQmEwSXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkRiRVFzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMR2RDUVVGblFpeERRVUZETEVOQlFVTTdVVUZETjBJc1RVRkJUU3hSUVVGUkxFZEJRVWNzVFVGQlRTeEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVTnFReXhMUVVGTExFVkJRMHdzVFVGQlRTeFRRVUZUTEc5RVFVRnZSQ3hGUVVOdVJTeFRRVUZUTEVWQlExUXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhaUVVGWkxFVkJRM2hDTEVWQlFVVXNUMEZCVHl4RlFVRkZMRVZCUVVVc1ZVRkJWU3hGUVVGRkxFMUJRVTBzUlVGQlJTeEZRVUZGTEVWQlEyNURMRWRCUVVjc1JVRkRTQ3hIUVVGSExFOUJRVThzUTBGRFdDeERRVUZETzFGQlEwWXNTVUZCU1N4UlFVRlJMRU5CUVVNc1RVRkJUU3hMUVVGTExFZEJRVWNzUlVGQlJTeERRVUZETzFsQlF6VkNMRTFCUVUwc1QwRkJUeXhIUVVGSExEQkNRVUV3UWl4VFFVRlRMRXRCUVVzc1VVRkJVU3hEUVVGRExGVkJRVlVzUlVGQlJTeERRVUZETzFsQlF6bEZMRTFCUVUwc1NVRkJTU3hsUVVGbExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdVVUZEY2tNc1EwRkJRenRSUVVORUxFMUJRVTBzU1VGQlNTeEhRVUZITEdGQlFXRXNRMEZCVFN4UlFVRlJMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03VVVGREwwTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1JVRkJSU3hMUVVGTExFbEJRVWtzUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXl4RlFVRkZMRU5CUVVNN1dVRkROMElzVFVGQlRTeFBRVUZQTEVkQlFVY3NaME5CUVdkRExGTkJRVk1zUlVGQlJTeERRVUZETzFsQlF6VkVMRTFCUVUwc1NVRkJTU3hoUVVGaExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdVVUZEYmtNc1EwRkJRenRKUVVOSUxFTkJRVU03U1VGRlR5eG5Ra0ZCWjBJc1EwRkJReXhOUVVGNVFqdFJRVU5vUkN4UFFVRlBMRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRVU03V1VGRGJFSXNUMEZCVHl4RlFVRkZMRWRCUVVjc1RVRkJUU3hEUVVGRExGRkJRVkVzVFVGQlRTeE5RVUZOTEVOQlFVTXNTVUZCU1N4RlFVRkZPMWxCUXpsRExHTkJRV01zUlVGQlJTeEhRVUZITEVWQlFVVXNRMEZCUXl4SlFVRkpPMWxCUXpGQ0xGVkJRVlVzUlVGQlJTeEpRVUZKTEV0QlFVc3NRMEZCUXl4TFFVRkxMRU5CUVVNN1owSkJRekZDTEd0Q1FVRnJRaXhGUVVGRkxFTkJRVU1zZVVKQlFYbENMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRV0VzUTBGQlF5eERRVUZETzJGQlEzQkZMRU5CUVVNN1UwRkRTQ3hEUVVGRExFTkJRVU03U1VGRFRDeERRVUZETzBsQlJWTXNWVUZCVlN4RFFVRkRMRXRCUVZrN1VVRkRMMElzVFVGQlRTeFBRVUZQTEVkQlFVY3NTMEZCU3l4RFFVRkRMRTlCUVU4c1NVRkJTU3hMUVVGTExFTkJRVU1zU1VGQlNTeEpRVUZKTEdWQlFXVXNRMEZCUXp0UlFVTXZSQ3hOUVVGTkxGbEJRVmtzUjBGQlJ5eFBRVUZQTEVOQlFVTXNWMEZCVnl4RlFVRkZMRU5CUVVNN1VVRkZNME1zU1VGQlNTeFpRVUZaTEVOQlFVTXNVVUZCVVN4RFFVRkRMRmRCUVZjc1EwRkJReXhKUVVGSkxGbEJRVmtzUTBGQlF5eFJRVUZSTEVOQlFVTXNTMEZCU3l4RFFVRkRMRVZCUVVVc1EwRkJRenRaUVVOMlJTeFBRVUZQTEVsQlFVa3NZVUZCWVN4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8xRkJRM0JETEVOQlFVTTdVVUZGUkN4SlFVRkpMRmxCUVZrc1EwRkJReXhSUVVGUkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1NVRkJTU3haUVVGWkxFTkJRVU1zVVVGQlVTeERRVUZETEZWQlFWVXNRMEZCUXl4SlFVRkpMRmxCUVZrc1EwRkJReXhSUVVGUkxFTkJRVU1zUzBGQlN5eERRVUZETEVWQlFVVXNRMEZCUXp0WlFVTnFTQ3hQUVVGUExFbEJRVWtzWVVGQllTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMUZCUTNCRExFTkJRVU03VVVGRlJDeEpRVUZKTEZsQlFWa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1UwRkJVeXhEUVVGRExFbEJRVWtzV1VGQldTeERRVUZETEZGQlFWRXNRMEZCUXl4aFFVRmhMRU5CUVVNc1NVRkJTU3haUVVGWkxFTkJRVU1zVVVGQlVTeERRVUZETEV0QlFVc3NRMEZCUXl4RlFVRkZMRU5CUVVNN1dVRkROMGNzVDBGQlR5eEpRVUZKTEdWQlFXVXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRSUVVOMFF5eERRVUZETzFGQlJVUXNTVUZCU1N4WlFVRlpMRU5CUVVNc1VVRkJVU3hEUVVGRExHTkJRV01zUTBGQlF5eEpRVUZKTEZsQlFWa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1MwRkJTeXhEUVVGRExFVkJRVVVzUTBGQlF6dFpRVU14UlN4UFFVRlBMRWxCUVVrc1lVRkJZU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzFGQlEzQkRMRU5CUVVNN1VVRkZSQ3hKUVVGSkxGbEJRVmtzUTBGQlF5eFJRVUZSTEVOQlFVTXNWMEZCVnl4RFFVRkRMRWxCUVVrc1dVRkJXU3hEUVVGRExGRkJRVkVzUTBGQlF5eExRVUZMTEVOQlFVTXNSVUZCUlN4RFFVRkRPMWxCUTNaRkxFOUJRVThzU1VGQlNTeGhRVUZoTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1VVRkRjRU1zUTBGQlF6dFJRVVZFTEU5QlFVOHNTVUZCU1N4aFFVRmhMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03U1VGRGNFTXNRMEZCUXp0SlFVVlBMRXRCUVVzc1EwRkJReXhQUVVGUExFTkJRMjVDTEUxQlFYbERMRVZCUTNwRExFZEJRVmNzUlVGRFdDeFBRVUZuUWl4RlFVTm9RaXhQUVVFclFpeEZRVU12UWl4TFFVRXdRaXhGUVVNeFFpeFhRVUZ0UWl4RlFVTnVRaXhIUVVGSExFbEJRWGxDTzFGQlJUVkNMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeEZRVUZGTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRSUVVOb1F5eFBRVUZQTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1QwRkJUeXhEUVVGRE8xbEJRM3BDTEUxQlFVMDdXVUZEVGl4SFFVRkhPMWxCUTBnc1NVRkJTU3hGUVVOR0xFOUJRVThzUzBGQlN5eFRRVUZUTzJkQ1FVTnVRaXhEUVVGRExFTkJRVU1zVTBGQlV6dG5Ra0ZEV0N4RFFVRkRMRU5CUVVNc1QwRkJUeXhQUVVGUExFdEJRVXNzVVVGQlVUdHZRa0ZETTBJc1EwRkJReXhEUVVGRExFOUJRVTg3YjBKQlExUXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zVDBGQlR5eERRVUZETzFsQlF5OUNMRWxCUVVrc1JVRkJSU3hQUVVGUE8yZENRVU5ZTEVOQlFVTXNRMEZCUXl4RlFVRkZMRkZCUVZFc1JVRkJSU3hQUVVGUExFTkJRVU1zVVVGQlVTeEZRVUZGTEZGQlFWRXNSVUZCUlN4UFFVRlBMRU5CUVVNc1VVRkJVU3hGUVVGRk8yZENRVU0xUkN4RFFVRkRMRU5CUVVNc1UwRkJVenRaUVVOaUxHTkJRV01zUlVGQlJTeEhRVUZITEVWQlFVVXNRMEZCUXl4SlFVRkpPMWxCUXpGQ0xGVkJRVlVzUlVGQlJTeEpRVUZKTEV0QlFVc3NRMEZCUXl4TFFVRkxMRU5CUVVNN1owSkJRekZDTEd0Q1FVRnJRaXhGUVVGRkxFTkJRVU1zZVVKQlFYbENMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRV0VzUTBGQlF5eERRVUZETzJGQlEzQkZMRU5CUVVNN1dVRkRSaXhIUVVGSExFdEJRVXM3VTBGRFZDeERRVUZETEVOQlFVTTdTVUZEVEN4RFFVRkRPME5CUTBZN1FVRXZUbGM3U1VGRVZDeFBRVUZQTEVWQlFVVTdPRUpCUTJNc2FVSkJRV2xDT3pKRVFVRkRJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJSHRjYmlBZ1FtRmtVbVZ4ZFdWemRFVnljbTl5TEZ4dUlDQkRiMjVtYkdsamRFVnljbTl5TEZ4dUlDQkpiblJsY201aGJFVnljbTl5TEZ4dUlDQk9iM1JHYjNWdVpFVnljbTl5TEZ4dWZTQm1jbTl0SUZ3aVFHUmxZMkZtTFhSekwyUmlMV1JsWTI5eVlYUnZjbk5jSWp0Y2JtbHRjRzl5ZENCN0lFTnZiblJsZUhSMVlXeEJjbWR6TENCTllYbGlaVU52Ym5SbGVIUjFZV3hCY21jZ2ZTQm1jbTl0SUZ3aVFHUmxZMkZtTFhSekwyTnZjbVZjSWp0Y2JtbHRjRzl5ZENCN0lFTnNhV1Z1ZEVKaGMyVmtVMlZ5ZG1salpTd2djMlZ5ZG1salpTQjlJR1p5YjIwZ1hDSkFaR1ZqWVdZdGRITXZZMjl5WlZ3aU8xeHVhVzF3YjNKMElIUjVjR1VnZTF4dUlDQkxhV0poYm1GVFpYUjFjRU52Ym1acFp5eGNiaUFnUzJsaVlXNWhWWE5sY2l4Y2JuMGdabkp2YlNCY0lpNHVMM1I1Y0dWelhDSTdYRzVwYlhCdmNuUWdRWGhwYjNNc0lIc2dkSGx3WlNCQmVHbHZjMGx1YzNSaGJtTmxJSDBnWm5KdmJTQmNJbUY0YVc5elhDSTdYRzVwYlhCdmNuUWdLaUJoY3lCbWN5Qm1jbTl0SUZ3aWJtOWtaVHBtYzF3aU8xeHVhVzF3YjNKMElDb2dZWE1nY0dGMGFDQm1jbTl0SUZ3aWJtOWtaVHB3WVhSb1hDSTdYRzVwYlhCdmNuUWdLaUJoY3lCb2RIUndjeUJtY205dElGd2libTlrWlRwb2RIUndjMXdpTzF4dWFXMXdiM0owSUhzZ2NtVnpiMngyWlV0cFltRnVZVWx6VUhKdlpIVmpkR2x2YmlCOUlHWnliMjBnWENJdUwzSjFiblJwYldWY0lqdGNibWx0Y0c5eWRDQkdiM0p0UkdGMFlTQm1jbTl0SUZ3aVptOXliUzFrWVhSaFhDSTdYRzVwYlhCdmNuUWdleUJMYVdKaGJtRkJkWFJvVTJWeWRtbGpaU0I5SUdaeWIyMGdYQ0l1TDB0cFltRnVZVUYxZEdoVFpYSjJhV05sWENJN1hHNXBiWEJ2Y25RZ2V5QndZWEp6WlVwemIyNUNiMlI1SUgwZ1puSnZiU0JjSWk0dUx5NHVMM05vWVhKbFpDOXlkVzUwYVcxbFhDSTdYRzVjYm1WNGNHOXlkQ0JqYkdGemN5QkxhV0poYm1GRVlYTm9ZbTloY21SVFpYSjJhV05sSUdWNGRHVnVaSE1nUTJ4cFpXNTBRbUZ6WldSVFpYSjJhV05sUEZ4dUlDQkJlR2x2YzBsdWMzUmhibU5sTEZ4dUlDQkxhV0poYm1GVFpYUjFjRU52Ym1acFoxeHVQaUI3WEc0Z0lFQnpaWEoyYVdObEtDbGNiaUFnY0hKdmRHVmpkR1ZrSUdGMWRHaFRaWEoyYVdObElUb2dTMmxpWVc1aFFYVjBhRk5sY25acFkyVTdYRzVjYmlBZ1lYTjVibU1nYVc1cGRHbGhiR2w2WlNoY2JpQWdJQ0F1TGk1aGNtZHpPaUJOWVhsaVpVTnZiblJsZUhSMVlXeEJjbWM4WVc1NVBseHVJQ0FwT2lCUWNtOXRhWE5sUEhzZ1kyOXVabWxuT2lCTGFXSmhibUZUWlhSMWNFTnZibVpwWnpzZ1kyeHBaVzUwT2lCQmVHbHZjMGx1YzNSaGJtTmxJSDArSUh0Y2JpQWdJQ0JqYjI1emRDQjdJR04wZUVGeVozTWdmU0E5SUNoY2JpQWdJQ0FnSUdGM1lXbDBJSFJvYVhNdWJHOW5RM1I0S0dGeVozTXNJRndpYVc1cGRHbGhiR2w2WlZ3aUxDQjBjblZsS1Z4dUlDQWdJQ2t1Wm05eUtIUm9hWE11YVc1cGRHbGhiR2w2WlNrN1hHNGdJQ0FnWTI5dWMzUWdZMjl1Wm1sbklEMGdZM1I0UVhKbmMxc3dYU0JoY3lCTGFXSmhibUZUWlhSMWNFTnZibVpwWnp0Y2JpQWdJQ0IwYUdsekxsOWpiMjVtYVdjZ1BTQmpiMjVtYVdjN1hHNGdJQ0FnWTI5dWMzUWdZMnhwWlc1MElEMGdkR2hwY3k1amNtVmhkR1ZJZEhSd1EyeHBaVzUwS0dOdmJtWnBaeWs3WEc0Z0lDQWdkR2hwY3k1ZlkyeHBaVzUwSUQwZ1kyeHBaVzUwTzF4dUlDQWdJSEpsZEhWeWJpQjdJR052Ym1acFp5d2dZMnhwWlc1MElIMDdYRzRnSUgxY2JseHVJQ0JoYzNsdVl5QmpiRzl1WlVSbFptRjFiSFJFWVhOb1ltOWhjbVJ6S0Z4dUlDQWdJSEpsWVd4dFRtRnRaVG9nYzNSeWFXNW5MRnh1SUNBZ0lDNHVMbUZ5WjNNNklFMWhlV0psUTI5dWRHVjRkSFZoYkVGeVp6eGhibmsrWEc0Z0lDazZJRkJ5YjIxcGMyVThjM1J5YVc1bklId2dkVzVrWldacGJtVmtQaUI3WEc0Z0lDQWdZMjl1YzNRZ2V5QmpkSGhCY21keklIMGdQU0FvWEc0Z0lDQWdJQ0JoZDJGcGRDQjBhR2x6TG14dlowTjBlQ2hoY21kekxDQmNJbU5zYjI1bFJHVm1ZWFZzZEVSaGMyaGliMkZ5WkhOY0lpd2dkSEoxWlNsY2JpQWdJQ0FwTG1admNpaDBhR2x6TG1Oc2IyNWxSR1ZtWVhWc2RFUmhjMmhpYjJGeVpITXBPMXh1SUNBZ0lHTnZibk4wSUhKbGMzQnZibk5sSUQwZ1lYZGhhWFFnZEdocGN5NXlaWEYxWlhOMEtGeHVJQ0FnSUNBZ1hDSkhSVlJjSWl4Y2JpQWdJQ0FnSUdBdmN5OWtaV1poZFd4MEwyRndhUzl6WVhabFpGOXZZbXBsWTNSekwxOW1hVzVrUDNSNWNHVTlaR0Z6YUdKdllYSmtKbkJsY2w5d1lXZGxQVEV3TURCZ0xGeHVJQ0FnSUNBZ2RXNWtaV1pwYm1Wa0xGeHVJQ0FnSUNBZ2RHaHBjeTVqYjI1bWFXY3VZV1J0YVc1QmNHbFZjMlZ5TEZ4dUlDQWdJQ0FnZXlCb1pXRmtaWEp6T2lCN0lGd2lhMkp1TFhoemNtWmNJam9nWENKMGNuVmxYQ0lnZlNCOUxGeHVJQ0FnSUNBZ01qQXdMRnh1SUNBZ0lDQWdMaTR1WTNSNFFYSm5jMXh1SUNBZ0lDazdYRzRnSUNBZ2FXWWdLSEpsYzNCdmJuTmxMbk4wWVhSMWN5QWhQVDBnTWpBd0tTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCdFpYTnpZV2RsSUQwZ1lGVnVZV0pzWlNCMGJ5QnNhWE4wSUdSaGMyaGliMkZ5WkhNZ1puSnZiU0JrWldaaGRXeDBJSE53WVdObE9pQWtlM0psYzNCdmJuTmxMbk4wWVhSMWMxUmxlSFI5WUR0Y2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCQ1lXUlNaWEYxWlhOMFJYSnliM0lvYldWemMyRm5aU2s3WEc0Z0lDQWdmVnh1SUNBZ0lHTnZibk4wSUdSaGRHRWdQU0J3WVhKelpVcHpiMjVDYjJSNVBHRnVlVDRvY21WemNHOXVjMlV1WkdGMFlTa2dQejhnZTMwN1hHNGdJQ0FnWTI5dWMzUWdaR0Z6YUdKdllYSmtjem9nUVhKeVlYazhleUJwWkRvZ2MzUnlhVzVuSUgwK0lEMGdaR0YwWVM1ellYWmxaRjl2WW1wbFkzUnpJRDgvSUZ0ZE8xeHVJQ0FnSUdsbUlDaGtZWE5vWW05aGNtUnpMbXhsYm1kMGFDQTlQVDBnTUNrZ2NtVjBkWEp1SUhWdVpHVm1hVzVsWkR0Y2JseHVJQ0FnSUdOdmJuTjBJR052Y0hsU1pYTndJRDBnWVhkaGFYUWdkR2hwY3k1eVpYRjFaWE4wS0Z4dUlDQWdJQ0FnWENKUVQxTlVYQ0lzWEc0Z0lDQWdJQ0JnTDJGd2FTOXpjR0ZqWlhNdlgyTnZjSGxmYzJGMlpXUmZiMkpxWldOMGMyQXNYRzRnSUNBZ0lDQjdYRzRnSUNBZ0lDQWdJSE53WVdObGN6b2dXM0psWVd4dFRtRnRaVjBzWEc0Z0lDQWdJQ0FnSUc5aWFtVmpkSE02SUdSaGMyaGliMkZ5WkhNdWJXRndLQ2hrWVhOb1ltOWhjbVFwSUQwK0lDaDdYRzRnSUNBZ0lDQWdJQ0FnYVdRNklHUmhjMmhpYjJGeVpDNXBaQ3hjYmlBZ0lDQWdJQ0FnSUNCMGVYQmxPaUJjSW1SaGMyaGliMkZ5WkZ3aUxGeHVJQ0FnSUNBZ0lDQjlLU2tzWEc0Z0lDQWdJQ0FnSUdsdVkyeDFaR1ZTWldabGNtVnVZMlZ6T2lCMGNuVmxMRnh1SUNBZ0lDQWdJQ0JqY21WaGRHVk9aWGREYjNCcFpYTTZJSFJ5ZFdVc1hHNGdJQ0FnSUNBZ0lHOTJaWEozY21sMFpUb2dabUZzYzJVc1hHNGdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ2RHaHBjeTVqYjI1bWFXY3VZV1J0YVc1QmNHbFZjMlZ5TEZ4dUlDQWdJQ0FnZXlCb1pXRmtaWEp6T2lCN0lGd2lhMkp1TFhoemNtWmNJam9nWENKMGNuVmxYQ0lzSUZ3aVEyOXVkR1Z1ZEMxVWVYQmxYQ0k2SUZ3aVlYQndiR2xqWVhScGIyNHZhbk52Ymx3aUlIMGdmU3hjYmlBZ0lDQWdJREl3TUN4Y2JpQWdJQ0FnSUM0dUxtTjBlRUZ5WjNOY2JpQWdJQ0FwTzF4dUlDQWdJR2xtSUNoamIzQjVVbVZ6Y0M1emRHRjBkWE1nUGowZ016QXdLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQnRaWE56WVdkbElEMGdZRlZ1WVdKc1pTQjBieUJqYjNCNUlHUmhjMmhpYjJGeVpITWdkRzhnSkh0eVpXRnNiVTVoYldWOU9pQWtlMk52Y0hsU1pYTndMbk4wWVhSMWMxUmxlSFI5WUR0Y2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCQ1lXUlNaWEYxWlhOMFJYSnliM0lvYldWemMyRm5aU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdZMjl1YzNRZ1lYTnpaWFJTYjI5MElEMGdkR2hwY3k1amIyNW1hV2N1WkdGemFHSnZZWEprU1cxd2IzSjBVR0YwYUNBL1B5QjBhR2x6TG1OdmJtWnBaeTVoYzNObGRITTdYRzRnSUNBZ2FXWWdLQ0ZoYzNObGRGSnZiM1FwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJrWVhOb1ltOWhjbVJ6V3pCZFB5NXBaRHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQmpiMjV6ZENCdVpHcHpiMjVRWVhSb0lEMGdjR0YwYUM1cWIybHVLSEJ5YjJObGMzTXVZM2RrS0Nrc0lHRnpjMlYwVW05dmRDd2dYQ0p3YkdFdGMyTmhiaTV1WkdwemIyNWNJaWs3WEc0Z0lDQWdhV1lnS0NGbWN5NWxlR2x6ZEhOVGVXNWpLRzVrYW5OdmJsQmhkR2dwS1NCeVpYUjFjbTRnWkdGemFHSnZZWEprYzFzd1hUOHVhV1E3WEc0Z0lDQWdZMjl1YzNRZ1ptOXliU0E5SUc1bGR5QW9SbTl5YlVSaGRHRWdZWE1nWVc1NUtTZ3BPMXh1SUNBZ0lHWnZjbTB1WVhCd1pXNWtLRndpWm1sc1pWd2lMQ0JtY3k1amNtVmhkR1ZTWldGa1UzUnlaV0Z0S0c1a2FuTnZibEJoZEdncEtUdGNiaUFnSUNCamIyNXpkQ0JwYlhCdmNuUlNaWE53SUQwZ1lYZGhhWFFnUVhocGIzTXVjRzl6ZENoY2JpQWdJQ0FnSUdBa2UzUm9hWE11WTI5dVptbG5MbkJ5YjNSdlkyOXNmVG92THlSN2RHaHBjeTVqYjI1bWFXY3VhRzl6ZEgwdmN5OGtlM0psWVd4dFRtRnRaWDB2WVhCcEwzTmhkbVZrWDI5aWFtVmpkSE12WDJsdGNHOXlkRDl2ZG1WeWQzSnBkR1U5ZEhKMVpXQXNYRzRnSUNBZ0lDQm1iM0p0TEZ4dUlDQWdJQ0FnZTF4dUlDQWdJQ0FnSUNCaGRYUm9PaUIwYUdsekxtTnZibVpwWnk1aFpHMXBia0Z3YVZWelpYSmNiaUFnSUNBZ0lDQWdJQ0EvSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnZFhObGNtNWhiV1U2SUhSb2FYTXVZMjl1Wm1sbkxtRmtiV2x1UVhCcFZYTmxjaTUxYzJWeWJtRnRaU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdjR0Z6YzNkdmNtUTZJSFJvYVhNdVkyOXVabWxuTG1Ga2JXbHVRWEJwVlhObGNpNXdZWE56ZDI5eVpDeGNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQTZJSFZ1WkdWbWFXNWxaQ3hjYmlBZ0lDQWdJQ0FnYUdWaFpHVnljem9nZTF4dUlDQWdJQ0FnSUNBZ0lDNHVMbVp2Y20wdVoyVjBTR1ZoWkdWeWN5Z3BMRnh1SUNBZ0lDQWdJQ0FnSUZ3aWEySnVMWGh6Y21aY0lqb2dYQ0owY25WbFhDSXNYRzRnSUNBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0FnSUcxaGVFSnZaSGxNWlc1bmRHZzZJRWx1Wm1sdWFYUjVMRnh1SUNBZ0lDQWdJQ0J0WVhoRGIyNTBaVzUwVEdWdVozUm9PaUJKYm1acGJtbDBlU3hjYmlBZ0lDQWdJQ0FnZG1Gc2FXUmhkR1ZUZEdGMGRYTTZJQ2dwSUQwK0lIUnlkV1VzWEc0Z0lDQWdJQ0FnSUdoMGRIQnpRV2RsYm5RNklHNWxkeUJvZEhSd2N5NUJaMlZ1ZENoN1hHNGdJQ0FnSUNBZ0lDQWdjbVZxWldOMFZXNWhkWFJvYjNKcGVtVmtPaUFvY21WemIyeDJaVXRwWW1GdVlVbHpVSEp2WkhWamRHbHZiaWgwYUdsekxtTnZibVpwWnlCaGN5QmhibmtwS1N4Y2JpQWdJQ0FnSUNBZ2ZTa3NYRzRnSUNBZ0lDQjlYRzRnSUNBZ0tUdGNiaUFnSUNCcFppQW9hVzF3YjNKMFVtVnpjQzV6ZEdGMGRYTWdQajBnTXpBd0tTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCdFpYTnpZV2RsSUQwZ1lGVnVZV0pzWlNCMGJ5QnBiWEJ2Y25RZ1pHRnphR0p2WVhKa2N5Qm1iM0lnSkh0eVpXRnNiVTVoYldWOU9pQWtlMmx0Y0c5eWRGSmxjM0F1YzNSaGRIVnpWR1Y0ZEgxZ08xeHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFSmhaRkpsY1hWbGMzUkZjbkp2Y2lodFpYTnpZV2RsS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlHUmhjMmhpYjJGeVpITmJNRjAvTG1sa08xeHVJQ0I5WEc1Y2JpQWdaMlZ1WlhKaGRHVkVZWE5vWW05aGNtUkZiV0psWkZWeWJDaHZjSFJwYjI1ek9pQjdYRzRnSUNBZ2MzQmhZMlU2SUhOMGNtbHVaenRjYmlBZ0lDQmtZWE5vWW05aGNtUkpaRG9nYzNSeWFXNW5PMXh1SUNBZ0lITm9iM2RVYVcxbFJtbHNkR1Z5UHpvZ1ltOXZiR1ZoYmp0Y2JpQWdJQ0J6YUc5M1VYVmxjbmxKYm5CMWREODZJR0p2YjJ4bFlXNDdYRzRnSUNBZ2MyaHZkMFpwYkhSbGNrSmhjajg2SUdKdmIyeGxZVzQ3WEc0Z0lDQWdhR2xrWlZCaGJtVnNWR2wwYkdWelB6b2dZbTl2YkdWaGJqdGNiaUFnSUNCMGFXMWxVbUZ1WjJVL09pQjdJR1p5YjIwNklITjBjbWx1WnpzZ2RHODZJSE4wY21sdVp5QjlPMXh1SUNCOUtUb2djM1J5YVc1bklIdGNiaUFnSUNCamIyNXpkQ0I3WEc0Z0lDQWdJQ0J6Y0dGalpTeGNiaUFnSUNBZ0lHUmhjMmhpYjJGeVpFbGtMRnh1SUNBZ0lDQWdjMmh2ZDFScGJXVkdhV3gwWlhJZ1BTQm1ZV3h6WlN4Y2JpQWdJQ0FnSUhOb2IzZFJkV1Z5ZVVsdWNIVjBJRDBnWm1Gc2MyVXNYRzRnSUNBZ0lDQnphRzkzUm1sc2RHVnlRbUZ5SUQwZ1ptRnNjMlVzWEc0Z0lDQWdJQ0JvYVdSbFVHRnVaV3hVYVhSc1pYTWdQU0JtWVd4elpTeGNiaUFnSUNBZ0lIUnBiV1ZTWVc1blpTeGNiaUFnSUNCOUlEMGdiM0IwYVc5dWN6dGNiaUFnSUNCamIyNXpkQ0JpWVhObElEMGdZQ1I3ZEdocGN5NWpiMjVtYVdjdWNISnZkRzlqYjJ4OU9pOHZKSHQwYUdsekxtTnZibVpwWnk1b2IzTjBmV0E3WEc0Z0lDQWdZMjl1YzNRZ2NHRnlZVzF6SUQwZ2JtVjNJRlZTVEZObFlYSmphRkJoY21GdGN5aDdJR1Z0WW1Wa09pQmNJblJ5ZFdWY0lpQjlLVHRjYmlBZ0lDQnBaaUFvYzJodmQxUnBiV1ZHYVd4MFpYSXBJSEJoY21GdGN5NXpaWFFvWENKemFHOTNMWFJwYldVdFptbHNkR1Z5WENJc0lGd2lkSEoxWlZ3aUtUdGNiaUFnSUNCcFppQW9jMmh2ZDFGMVpYSjVTVzV3ZFhRcElIQmhjbUZ0Y3k1elpYUW9YQ0p6YUc5M0xYRjFaWEo1TFdsdWNIVjBYQ0lzSUZ3aWRISjFaVndpS1R0Y2JpQWdJQ0JwWmlBb2MyaHZkMFpwYkhSbGNrSmhjaWtnY0dGeVlXMXpMbk5sZENoY0luTm9iM2N0Wm1sc2RHVnlMV0poY2x3aUxDQmNJblJ5ZFdWY0lpazdYRzRnSUNBZ2FXWWdLR2hwWkdWUVlXNWxiRlJwZEd4bGN5a2djR0Z5WVcxekxuTmxkQ2hjSW1ocFpHVXRjR0Z1Wld3dGRHbDBiR1Z6WENJc0lGd2lkSEoxWlZ3aUtUdGNiaUFnSUNCamIyNXpkQ0IwYVcxbFJuSmhaMjFsYm5RZ1BTQjBhVzFsVW1GdVoyVmNiaUFnSUNBZ0lEOGdZQ1pmWnowa2UyVnVZMjlrWlZWU1NVTnZiWEJ2Ym1WdWRDaEtVMDlPTG5OMGNtbHVaMmxtZVNoN0lIUnBiV1U2SUhScGJXVlNZVzVuWlNCOUtTbDlZRnh1SUNBZ0lDQWdPaUJjSWx3aU8xeHVJQ0FnSUhKbGRIVnliaUJnSkh0aVlYTmxmUzl6THlSN2MzQmhZMlY5TDJGd2NDOWtZWE5vWW05aGNtUnpJeTkyYVdWM0x5UjdaR0Z6YUdKdllYSmtTV1I5UHlSN2NHRnlZVzF6TG5SdlUzUnlhVzVuS0NsOUpIdDBhVzFsUm5KaFoyMWxiblI5WUR0Y2JpQWdmVnh1WEc0Z0lHRnplVzVqSUhabGNtbG1lVk53WVdObFUyVjBkWEFvWEc0Z0lDQWdjbVZoYkcxT1lXMWxPaUJ6ZEhKcGJtY3NYRzRnSUNBZ0xpNHVZWEpuY3pvZ1RXRjVZbVZEYjI1MFpYaDBkV0ZzUVhKblBHRnVlVDVjYmlBZ0tUb2dVSEp2YldselpUeDJiMmxrUGlCN1hHNGdJQ0FnWTI5dWMzUWdleUJqZEhoQmNtZHpJSDBnUFNBb1hHNGdJQ0FnSUNCaGQyRnBkQ0IwYUdsekxteHZaME4wZUNoaGNtZHpMQ0JjSW5abGNtbG1lVk53WVdObFUyVjBkWEJjSWl3Z2RISjFaU2xjYmlBZ0lDQXBMbVp2Y2loMGFHbHpMblpsY21sbWVWTndZV05sVTJWMGRYQXBPMXh1SUNBZ0lHTnZibk4wSUhKbGMzQnZibk5sSUQwZ1lYZGhhWFFnZEdocGN5NXlaWEYxWlhOMEtGeHVJQ0FnSUNBZ1hDSkhSVlJjSWl4Y2JpQWdJQ0FnSUdBdmN5OGtlM0psWVd4dFRtRnRaWDB2WVhCcEwzTmhkbVZrWDI5aWFtVmpkSE12WDJacGJtUS9kSGx3WlQxa1lYTm9ZbTloY21RbWNHVnlYM0JoWjJVOU1XQXNYRzRnSUNBZ0lDQjFibVJsWm1sdVpXUXNYRzRnSUNBZ0lDQjBhR2x6TG1OdmJtWnBaeTVoWkcxcGJrRndhVlZ6WlhJc1hHNGdJQ0FnSUNCN0lHaGxZV1JsY25NNklIc2dYQ0pyWW00dGVITnlabHdpT2lCY0luUnlkV1ZjSWlCOUlIMHNYRzRnSUNBZ0lDQXlNREFzWEc0Z0lDQWdJQ0F1TGk1amRIaEJjbWR6WEc0Z0lDQWdLVHRjYmlBZ0lDQnBaaUFvY21WemNHOXVjMlV1YzNSaGRIVnpJQ0U5UFNBeU1EQXBJSHRjYmlBZ0lDQWdJR052Ym5OMElHMWxjM05oWjJVZ1BTQmdWVzVoWW14bElIUnZJSFpsY21sbWVTQnpjR0ZqWlNBa2UzSmxZV3h0VG1GdFpYMDZJQ1I3Y21WemNHOXVjMlV1YzNSaGRIVnpWR1Y0ZEgxZ08xeHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFSmhaRkpsY1hWbGMzUkZjbkp2Y2lodFpYTnpZV2RsS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdZMjl1YzNRZ1pHRjBZU0E5SUhCaGNuTmxTbk52YmtKdlpIazhZVzU1UGloeVpYTndiMjV6WlM1a1lYUmhLVHRjYmlBZ0lDQnBaaUFvS0dSaGRHRS9MblJ2ZEdGc0lEOC9JREFwSUQwOVBTQXdLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQnRaWE56WVdkbElEMGdZRTV2SUdSaGMyaGliMkZ5WkhNZ1ptOTFibVFnYVc0Z2MzQmhZMlVnSkh0eVpXRnNiVTVoYldWOVlEdGNiaUFnSUNBZ0lIUm9jbTkzSUc1bGR5Qk9iM1JHYjNWdVpFVnljbTl5S0cxbGMzTmhaMlVwTzF4dUlDQWdJSDFjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnWTNKbFlYUmxTSFIwY0VOc2FXVnVkQ2hqYjI1bWFXYzZJRXRwWW1GdVlWTmxkSFZ3UTI5dVptbG5LVG9nUVhocGIzTkpibk4wWVc1alpTQjdYRzRnSUNBZ2NtVjBkWEp1SUVGNGFXOXpMbU55WldGMFpTaDdYRzRnSUNBZ0lDQmlZWE5sVlZKTU9pQmdKSHRqYjI1bWFXY3VjSEp2ZEc5amIyeDlPaTh2Skh0amIyNW1hV2N1YUc5emRIMWdMRnh1SUNBZ0lDQWdkbUZzYVdSaGRHVlRkR0YwZFhNNklDZ3BJRDArSUhSeWRXVXNYRzRnSUNBZ0lDQm9kSFJ3YzBGblpXNTBPaUJ1WlhjZ2FIUjBjSE11UVdkbGJuUW9lMXh1SUNBZ0lDQWdJQ0J5WldwbFkzUlZibUYxZEdodmNtbDZaV1E2SUNoeVpYTnZiSFpsUzJsaVlXNWhTWE5RY205a2RXTjBhVzl1S0hSb2FYTXVZMjl1Wm1sbklHRnpJR0Z1ZVNrcExGeHVJQ0FnSUNBZ2ZTa3NYRzRnSUNBZ2ZTazdYRzRnSUgxY2JseHVJQ0J3Y205MFpXTjBaV1FnY0dGeWMyVkZjbkp2Y2lobGNuSnZjam9nUlhKeWIzSXBPaUJGY25KdmNpQjdYRzRnSUNBZ1kyOXVjM1FnYldWemMyRm5aU0E5SUdWeWNtOXlMbTFsYzNOaFoyVWdmSHdnWlhKeWIzSXVibUZ0WlNCOGZDQmNJbFZ1YTI1dmQyNGdaWEp5YjNKY0lqdGNiaUFnSUNCamIyNXpkQ0JzYjNkbGNrMWxjM05oWjJVZ1BTQnRaWE56WVdkbExuUnZURzkzWlhKRFlYTmxLQ2s3WEc1Y2JpQWdJQ0JwWmlBb2JHOTNaWEpOWlhOellXZGxMbWx1WTJ4MVpHVnpLRndpYm05MElHWnZkVzVrWENJcElIeDhJR3h2ZDJWeVRXVnpjMkZuWlM1cGJtTnNkV1JsY3loY0lqUXdORndpS1NrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUc1bGR5Qk9iM1JHYjNWdVpFVnljbTl5S0cxbGMzTmhaMlVwTzF4dUlDQWdJSDFjYmx4dUlDQWdJR2xtSUNoc2IzZGxjazFsYzNOaFoyVXVhVzVqYkhWa1pYTW9YQ0poYkhKbFlXUjVJR1Y0YVhOMGMxd2lLU0I4ZkNCc2IzZGxjazFsYzNOaFoyVXVhVzVqYkhWa1pYTW9YQ0pqYjI1bWJHbGpkRndpS1NCOGZDQnNiM2RsY2sxbGMzTmhaMlV1YVc1amJIVmtaWE1vWENJME1EbGNJaWtwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJ1WlhjZ1EyOXVabXhwWTNSRmNuSnZjaWh0WlhOellXZGxLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnBaaUFvYkc5M1pYSk5aWE56WVdkbExtbHVZMngxWkdWektGd2lhVzUyWVd4cFpGd2lLU0I4ZkNCc2IzZGxjazFsYzNOaFoyVXVhVzVqYkhWa1pYTW9YQ0ppWVdRZ2NtVnhkV1Z6ZEZ3aUtTQjhmQ0JzYjNkbGNrMWxjM05oWjJVdWFXNWpiSFZrWlhNb1hDSTBNREJjSWlrcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCdVpYY2dRbUZrVW1WeGRXVnpkRVZ5Y205eUtHMWxjM05oWjJVcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUdsbUlDaHNiM2RsY2sxbGMzTmhaMlV1YVc1amJIVmtaWE1vWENKMWJtRjFkR2h2Y21sNlpXUmNJaWtnZkh3Z2JHOTNaWEpOWlhOellXZGxMbWx1WTJ4MVpHVnpLRndpTkRBeFhDSXBLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdibVYzSUU1dmRFWnZkVzVrUlhKeWIzSW9iV1Z6YzJGblpTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2FXWWdLR3h2ZDJWeVRXVnpjMkZuWlM1cGJtTnNkV1JsY3loY0ltWnZjbUpwWkdSbGJsd2lLU0I4ZkNCc2IzZGxjazFsYzNOaFoyVXVhVzVqYkhWa1pYTW9YQ0kwTUROY0lpa3BJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQnVaWGNnVG05MFJtOTFibVJGY25KdmNpaHRaWE56WVdkbEtUdGNiaUFnSUNCOVhHNWNiaUFnSUNCeVpYUjFjbTRnYm1WM0lFbHVkR1Z5Ym1Gc1JYSnliM0lvYldWemMyRm5aU2s3WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUdGemVXNWpJSEpsY1hWbGMzUW9YRzRnSUNBZ2JXVjBhRzlrT2lCY0lrZEZWRndpSUh3Z1hDSlFUMU5VWENJZ2ZDQmNJbEJWVkZ3aUlId2dYQ0pFUlV4RlZFVmNJaXhjYmlBZ0lDQjFjbXc2SUhOMGNtbHVaeXhjYmlBZ0lDQndZWGxzYjJGa09pQjFibXR1YjNkdUxGeHVJQ0FnSUdGd2FWVnpaWEk2SUV0cFltRnVZVlZ6WlhJZ2ZDQjFibVJsWm1sdVpXUXNYRzRnSUNBZ1pYaDBjbUU2SUZKbFkyOXlaRHh6ZEhKcGJtY3NJR0Z1ZVQ0c1hHNGdJQ0FnYzNWalkyVnpjME52WkdVNklHNTFiV0psY2l4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJEYjI1MFpYaDBkV0ZzUVhKbmN6eGhibmsrWEc0Z0lDazZJRkJ5YjIxcGMyVThZVzU1UGlCN1hHNGdJQ0FnZEdocGN5NXNiMmREZEhnb1lYSm5jeXdnZEdocGN5NXlaWEYxWlhOMEtUdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NWpiR2xsYm5RdWNtVnhkV1Z6ZENoN1hHNGdJQ0FnSUNCdFpYUm9iMlFzWEc0Z0lDQWdJQ0IxY213c1hHNGdJQ0FnSUNCa1lYUmhPbHh1SUNBZ0lDQWdJQ0J3WVhsc2IyRmtJRDA5UFNCMWJtUmxabWx1WldSY2JpQWdJQ0FnSUNBZ0lDQS9JSFZ1WkdWbWFXNWxaRnh1SUNBZ0lDQWdJQ0FnSURvZ2RIbHdaVzltSUhCaGVXeHZZV1FnUFQwOUlGd2ljM1J5YVc1blhDSmNiaUFnSUNBZ0lDQWdJQ0FnSUQ4Z2NHRjViRzloWkZ4dUlDQWdJQ0FnSUNBZ0lDQWdPaUJLVTA5T0xuTjBjbWx1WjJsbWVTaHdZWGxzYjJGa0tTeGNiaUFnSUNBZ0lHRjFkR2c2SUdGd2FWVnpaWEpjYmlBZ0lDQWdJQ0FnUHlCN0lIVnpaWEp1WVcxbE9pQmhjR2xWYzJWeUxuVnpaWEp1WVcxbExDQndZWE56ZDI5eVpEb2dZWEJwVlhObGNpNXdZWE56ZDI5eVpDQjlYRzRnSUNBZ0lDQWdJRG9nZFc1a1pXWnBibVZrTEZ4dUlDQWdJQ0FnZG1Gc2FXUmhkR1ZUZEdGMGRYTTZJQ2dwSUQwK0lIUnlkV1VzWEc0Z0lDQWdJQ0JvZEhSd2MwRm5aVzUwT2lCdVpYY2dhSFIwY0hNdVFXZGxiblFvZTF4dUlDQWdJQ0FnSUNCeVpXcGxZM1JWYm1GMWRHaHZjbWw2WldRNklDaHlaWE52YkhabFMybGlZVzVoU1hOUWNtOWtkV04wYVc5dUtIUm9hWE11WTI5dVptbG5JR0Z6SUdGdWVTa3BMRnh1SUNBZ0lDQWdmU2tzWEc0Z0lDQWdJQ0F1TGk1bGVIUnlZU3hjYmlBZ0lDQjlLVHRjYmlBZ2ZWeHVmVnh1SWwxOSJdfQ==
|