@alauda-fe/common 1.4.30-beta.1 → 1.4.31-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/api/platform-ui.service.d.ts +0 -6
- package/business/resource-select/exports/cluster-list/component.d.ts +1 -1
- package/core/types/k8s/raw.d.ts +2 -1
- package/core/types/resource-definitions.d.ts +1 -1
- package/core/utils/version.d.ts +1 -1
- package/esm2022/api/platform-ui.service.mjs +1 -7
- package/esm2022/business/resource-select/exports/namespace-list/component.mjs +2 -2
- package/esm2022/code/yaml-examples.mjs +141 -57
- package/esm2022/code/yaml-sidebar/component.mjs +4 -4
- package/esm2022/core/abstract/base-form-container.mjs +3 -2
- package/esm2022/core/types/k8s/raw.mjs +1 -1
- package/esm2022/license/license-api.mjs +28 -24
- package/esm2022/license/license.service.mjs +25 -34
- package/esm2022/metric-chart/utils.mjs +4 -2
- package/esm2022/page-scaffold/navigation/breadcrumb/breadcrumb.component.mjs +37 -36
- package/esm2022/page-scaffold/page-header/component.mjs +18 -7
- package/esm2022/page-scaffold/page-header/header-notify/component/header-notify.component.mjs +25 -26
- package/esm2022/page-scaffold/page-header/help-menu/component/component.mjs +2 -2
- package/esm2022/view-zchart/units.mjs +2 -2
- package/license/license-api.d.ts +5 -8
- package/license/license.service.d.ts +2 -8
- package/package.json +1 -1
- package/page-scaffold/page-header/component.d.ts +1 -0
- package/styles/markdown-body.scss +2 -0
- package/table/component.d.ts +1 -1
- package/table/helper.d.ts +1 -1
|
@@ -7,8 +7,6 @@ export declare const DEFAULT_PLATFORM_NAME_ZH_KEY = "originPlatformNameZH";
|
|
|
7
7
|
export declare const DEFAULT_PLATFORM_NAME_EN_KEY = "originPlatformNameEN";
|
|
8
8
|
export declare const PORTAL_MAIN_TITLE_EN_KEY = "portalMainTitleEN";
|
|
9
9
|
export declare const PORTAL_MAIN_TITLE_ZH_KEY = "portalMainTitleZH";
|
|
10
|
-
export declare const PORTAL_SUB_TITLE_ZH_KEY = "portalSubTitleZH";
|
|
11
|
-
export declare const PORTAL_SUB_TITLE_EN_KEY = "portalSubTitleEN";
|
|
12
10
|
export declare const PORTAL_UI_CM_NAME = "ui-portal";
|
|
13
11
|
export declare const PORTAL_UI_CM_NAME_DEFAULT = "ui-portal-default";
|
|
14
12
|
export declare const PORTAL_TOP_IMAGE_KEY = "top-bg";
|
|
@@ -30,10 +28,6 @@ export declare class PlatformUIService {
|
|
|
30
28
|
zh: string;
|
|
31
29
|
en: string;
|
|
32
30
|
};
|
|
33
|
-
subTitle: {
|
|
34
|
-
zh: string;
|
|
35
|
-
en: string;
|
|
36
|
-
};
|
|
37
31
|
}>;
|
|
38
32
|
getBackgroundImages(): import("rxjs").Observable<{
|
|
39
33
|
topImage: string;
|
|
@@ -19,7 +19,7 @@ export declare class ClusterListComponent extends ResourceListBase implements On
|
|
|
19
19
|
private setSelected;
|
|
20
20
|
ngOnDestroy(): void;
|
|
21
21
|
mapResource(list: Cluster[]): ClusterDataItem[];
|
|
22
|
-
getClusterStatus(cluster?: Cluster): "
|
|
22
|
+
getClusterStatus(cluster?: Cluster): "abnormal" | "normal";
|
|
23
23
|
static ɵfac: i0.ɵɵFactoryDeclaration<ClusterListComponent, never>;
|
|
24
24
|
static ɵcmp: i0.ɵɵComponentDeclaration<ClusterListComponent, "acl-cluster-list", never, { "value": { "alias": "value"; "required": false; }; }, {}, never, never, false, never>;
|
|
25
25
|
}
|
package/core/types/k8s/raw.d.ts
CHANGED
|
@@ -372,7 +372,8 @@ export interface FeatureGateEnterpriseSupportStatus {
|
|
|
372
372
|
reason: EnterpriseSupportStatusReason[];
|
|
373
373
|
baremetalClusterCPUCoreNum: number;
|
|
374
374
|
importedClusterNodeNum: number;
|
|
375
|
-
|
|
375
|
+
currentProductVersion: string;
|
|
376
|
+
licenseExempted?: boolean;
|
|
376
377
|
}
|
|
377
378
|
export declare enum EnterpriseSupportStatusType {
|
|
378
379
|
inService = "InService",
|
|
@@ -788,7 +788,7 @@ export declare const RESOURCE_TYPES: {
|
|
|
788
788
|
readonly TUNNEL_CLUSTER: "TUNNEL_CLUSTER";
|
|
789
789
|
readonly K8S_CLUSTER: "K8S_CLUSTER";
|
|
790
790
|
};
|
|
791
|
-
export declare const getYamlApiVersion: (definition: "ALAUDA_LOADBALANCER2" | "ALB2" | "HELM_REQUEST" | "HELM_REQUEST_V1" | "DEPLOYMENT" | "DAEMONSET" | "STATEFULSET" | "FRONTEND" | "RULE" | "POD" | "PODS_EXEC" | "PODS_ROOT_EXEC" | "CONFIG_MAP" | "ALERT_TEMPLATE" | "APPLICATION" | "APPLICATION_HISTORY" | "CLUSTER" | "CLUSTER_VIEW" | "DAEMON_SET" | "STATEFUL_SET" | "DOMAIN" | "FEATURE" | "ALAUDA_FEATURE_GATE" | "CLUSTER_ALAUDA_FEATURE_GATE" | "HORIZONTAL_POD_AUTOSCALER" | "LOG" | "
|
|
791
|
+
export declare const getYamlApiVersion: (definition: "PROJECT" | "ALAUDA_LOADBALANCER2" | "ALB2" | "HELM_REQUEST" | "HELM_REQUEST_V1" | "DEPLOYMENT" | "DAEMONSET" | "STATEFULSET" | "FRONTEND" | "RULE" | "POD" | "PODS_EXEC" | "PODS_ROOT_EXEC" | "CONFIG_MAP" | "ALERT_TEMPLATE" | "APPLICATION" | "APPLICATION_HISTORY" | "CLUSTER" | "CLUSTER_VIEW" | "DAEMON_SET" | "STATEFUL_SET" | "DOMAIN" | "FEATURE" | "ALAUDA_FEATURE_GATE" | "CLUSTER_ALAUDA_FEATURE_GATE" | "HORIZONTAL_POD_AUTOSCALER" | "LOG" | "PROMETHEUS_RULE" | "ALERT_HISTORY" | "SELF_SUBJECT_ACCESS_REVIEW" | "VIEW" | "SERVICE" | "LIMIT_RANGE" | "SECRET" | "CRON_JOB" | "ADVANCED_CRON_JOB" | "JOB" | "INGRESS" | "PERSISTENT_VOLUME_CLAIM" | "NAMESPACE" | "NODE" | "NODE_METRICS" | "PV" | "CRD" | "CHART_REPO" | "CHART" | "NETWORK_POLICY" | "SERVICE_ACCOUNT" | "REPLICA_SET" | "POD_SECURITY_POLICY" | "NAMESPACE_OVERVIEW" | "CSP" | "RESOURCE_QUOTA" | "CLUSTER_NETWORK_POLICY" | "PROJECT_QUOTA" | "TKE_CLUSTER" | "TKE_MACHINE" | "MACHINE" | "NODE_GROUP" | "CLUSTERSERVICEVERSION" | "TENANT" | "SUBSCRIPTION" | "PACKAGE_MANIFEST" | "BUCKET_CLASS" | "PRODUCT_CONFIG" | "STORAGE_CLASS" | "VOLUME_SNAPSHOT_CLASS" | "PRODUCT_BASE" | "MODULE_INFO" | "MODULE_CONFIG" | "MODULE_PLUGIN" | "PRODUCT_ENTRY" | "PRODUCT_DOCS_ENTRY" | "SERVICEMESH_GROUP" | "CLUSTER_MODULE" | "USER_SECURITY_POLICY" | "CONNECTOR" | "ACCESS_TOKEN_INFO" | "FUNCTION_RESOURCE" | "USER_BINDING" | "USER" | "GROUP" | "PROJECT_MEMBER" | "ROLE_TEMPLATE" | "BATCH_ACTION" | "EVENT" | "SERVICE_MONITOR" | "OAM_APPLICATION" | "ARGOCD_APPLICATION_SET" | "ARGOCD_APPLICATION" | "OPERATOR_VIEW" | "MODULE_PLUGIN_VIEW" | "RESOURCE_PATCH" | "COMPONENT_PROBER" | "INSPECTION" | "INSPECTION_DETAILS" | "INSPECTION_ITEMS" | "MESSAGE" | "MODULE_HEALTH" | "MODULE_HEALTH_RECORD" | "AUDIT" | "LOG_POLICY" | "FUNCTION_TEST" | "PROJECT_BINDING" | "PROBE" | "REPORT" | "NAMESPACE_RESOURCE_RATIO" | "CUSTOM_RESOURCE_DEFINITION" | "LICENSE" | "RECORD" | "CSI_NODE" | "TSF" | "TDSQL" | "PORTAL" | "NAMESPACE_IMPORT" | "CLUSTER_ADDON_TYPE" | "CLUSTER_CREDENTIAL" | "CODING" | "TI_MATRIX" | "SYSTEM_CONFIG" | "CERTIFICATE" | "SECURITY_RULE" | "REGION" | "TOPOLVM_CLUSTER_V2" | "BUCKET" | "SCHEDULE" | "BACKUP_STORAGE_LOCATION" | "BACKUP_STORAGE_LOCATION_REPO" | "BACKUP" | "DELETE_BACKUP_REQUEST" | "ETCD_BACKUP_RECORD" | "RESTORE" | "RAW_DEVICE" | "APP_RELEASES" | "NOTIFICATION_TEMPLATE" | "NOTIFICATION_GROUP" | "NOTIFICATION" | "TUNNEL_CLUSTER" | "K8S_CLUSTER" | {
|
|
792
792
|
apiGroup: string;
|
|
793
793
|
type: string;
|
|
794
794
|
} | {
|
package/core/utils/version.d.ts
CHANGED
|
@@ -36,4 +36,4 @@ export declare const compareVersion: {
|
|
|
36
36
|
gte: (v1: string, v2: string) => boolean;
|
|
37
37
|
cmp: (v1: string, v2: string, operator: CompareOperator) => boolean;
|
|
38
38
|
};
|
|
39
|
-
export declare const compareMinorVersion: (v1: string, v2: string) =>
|
|
39
|
+
export declare const compareMinorVersion: (v1: string, v2: string) => 1 | 0 | -1;
|
|
@@ -11,8 +11,6 @@ export const DEFAULT_PLATFORM_NAME_ZH_KEY = 'originPlatformNameZH';
|
|
|
11
11
|
export const DEFAULT_PLATFORM_NAME_EN_KEY = 'originPlatformNameEN';
|
|
12
12
|
export const PORTAL_MAIN_TITLE_EN_KEY = 'portalMainTitleEN';
|
|
13
13
|
export const PORTAL_MAIN_TITLE_ZH_KEY = 'portalMainTitleZH';
|
|
14
|
-
export const PORTAL_SUB_TITLE_ZH_KEY = 'portalSubTitleZH';
|
|
15
|
-
export const PORTAL_SUB_TITLE_EN_KEY = 'portalSubTitleEN';
|
|
16
14
|
export const PORTAL_UI_CM_NAME = 'ui-portal';
|
|
17
15
|
export const PORTAL_UI_CM_NAME_DEFAULT = 'ui-portal-default';
|
|
18
16
|
export const PORTAL_TOP_IMAGE_KEY = 'top-bg';
|
|
@@ -53,10 +51,6 @@ export class PlatformUIService {
|
|
|
53
51
|
zh: cm.data[PORTAL_MAIN_TITLE_ZH_KEY],
|
|
54
52
|
en: cm.data[PORTAL_MAIN_TITLE_EN_KEY],
|
|
55
53
|
},
|
|
56
|
-
subTitle: {
|
|
57
|
-
zh: cm.data[PORTAL_SUB_TITLE_ZH_KEY],
|
|
58
|
-
en: cm.data[PORTAL_SUB_TITLE_EN_KEY],
|
|
59
|
-
},
|
|
60
54
|
})));
|
|
61
55
|
}
|
|
62
56
|
getBackgroundImages() {
|
|
@@ -87,4 +81,4 @@ export class PlatformUIService {
|
|
|
87
81
|
type: Injectable,
|
|
88
82
|
args: [{ providedIn: 'root' }]
|
|
89
83
|
}], null, null); })();
|
|
90
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGZvcm0tdWkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9hcGkvcGxhdGZvcm0tdWkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXRDLE9BQU8sRUFDTCxpQkFBaUIsRUFHakIsY0FBYyxHQUNmLE1BQU0sb0JBQW9CLENBQUM7QUFFNUIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQUVsRCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxlQUFlLENBQUM7QUFDckQsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsZ0JBQWdCLENBQUM7QUFDckQsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsZ0JBQWdCLENBQUM7QUFDckQsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUcsc0JBQXNCLENBQUM7QUFDbkUsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUcsc0JBQXNCLENBQUM7QUFFbkUsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsbUJBQW1CLENBQUM7QUFDNUQsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsbUJBQW1CLENBQUM7QUFDNUQsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsV0FBVyxDQUFDO0FBQzdDLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLG1CQUFtQixDQUFDO0FBQzdELE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLFFBQVEsQ0FBQztBQUM3QyxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxXQUFXLENBQUM7QUFFbkQsTUFBTSxDQUFD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ZSB9IGZyb20gJ0BhbGF1ZGEvdWknO1xuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBtYXAsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICBhcHBlbmRJbWFnZUhlYWRlcixcbiAgQ29uZmlnTWFwLFxuICBQcm9kdWN0RW50cnksXG4gIFJFU09VUkNFX1RZUEVTLFxufSBmcm9tICcuLi9jb3JlL3B1YmxpYy1hcGknO1xuXG5pbXBvcnQgeyBLOHNBcGlTZXJ2aWNlIH0gZnJvbSAnLi9rOHMtYXBpLnNlcnZpY2UnO1xuXG5leHBvcnQgY29uc3QgUExBVEZPUk1fSU5GT19DTV9OQU1FID0gJ3BsYXRmb3JtLWluZm8nO1xuZXhwb3J0IGNvbnN0IFBMQVRGT1JNX05BTUVfWkhfS0VZID0gJ3BsYXRmb3JtTmFtZVpIJztcbmV4cG9ydCBjb25zdCBQTEFURk9STV9OQU1FX0VOX0tFWSA9ICdwbGF0Zm9ybU5hbWVFTic7XG5leHBvcnQgY29uc3QgREVGQVVMVF9QTEFURk9STV9OQU1FX1pIX0tFWSA9ICdvcmlnaW5QbGF0Zm9ybU5hbWVaSCc7XG5leHBvcnQgY29uc3QgREVGQVVMVF9QTEFURk9STV9OQU1FX0VOX0tFWSA9ICdvcmlnaW5QbGF0Zm9ybU5hbWVFTic7XG5cbmV4cG9ydCBjb25zdCBQT1JUQUxfTUFJTl9USVRMRV9FTl9LRVkgPSAncG9ydGFsTWFpblRpdGxlRU4nO1xuZXhwb3J0IGNvbnN0IFBPUlRBTF9NQUlOX1RJVExFX1pIX0tFWSA9ICdwb3J0YWxNYWluVGl0bGVaSCc7XG5leHBvcnQgY29uc3QgUE9SVEFMX1VJX0NNX05BTUUgPSAndWktcG9ydGFsJztcbmV4cG9ydCBjb25zdCBQT1JUQUxfVUlfQ01fTkFNRV9ERUZBVUxUID0gJ3VpLXBvcnRhbC1kZWZhdWx0JztcbmV4cG9ydCBjb25zdCBQT1JUQUxfVE9QX0lNQUdFX0tFWSA9ICd0b3AtYmcnO1xuZXhwb3J0IGNvbnN0IFBPUlRBTF9CT1RUT01fSU1BR0VfS0VZID0gJ2JvdHRvbS1iZyc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX1BPUlRBTF9UT1BfUkVTT1VSQ0VfTkFNRSA9ICdwb3J0YWwtdG9wLnBuZyc7XG5leHBvcnQgY29uc3QgREVGQVVMVF9QT1JUQUxfQk9UVE9NX1JFU09VUkNFX05BTUUgPSAncG9ydGFsLWJvdHRvbS5wbmcnO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfUE9SVEFMX1RPUF9SRVNPVVJDRV9VUkwgPSAnaW1hZ2VzL2xpZ2h0L3BvcnRhbC10b3AucG5nJztcbmV4cG9ydCBjb25zdCBERUZBVUxUX1BPUlRBTF9CT1RUT01fUkVTT1VSQ0VfVVJMID1cbiAgJ2ltYWdlcy9saWdodC9wb3J0YWwtYm90dG9tLnBuZyc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgUGxhdGZvcm1VSVNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IGs4c0FwaSA9IGluamVjdChLOHNBcGlTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSB0aGVtZSA9IGluamVjdChUaGVtZVNlcnZpY2UpO1xuXG4gIGdldEVudHJpZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuazhzQXBpXG4gICAgICAuZ2V0R2xvYmFsUmVzb3VyY2VMaXN0PFByb2R1Y3RFbnRyeT4oe1xuICAgICAgICB0eXBlOiBSRVNPVVJDRV9UWVBFUy5QUk9EVUNUX0VOVFJZLFxuICAgICAgICBxdWVyeVBhcmFtczoge1xuICAgICAgICAgIGZpZWxkU2VsZWN0b3I6ICdtZXRhZGF0YS5uYW1lIT1jb25zb2xlLXBvcnRhbCcsXG4gICAgICAgICAgbGltaXQ6ICcwJyxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgICAucGlwZShtYXAobGlzdCA9PiBsaXN0Lml0ZW1zKSk7XG4gIH1cblxuICBnZXRQbGF0Zm9ybUluZm8oKSB7XG4gICAgcmV0dXJuIHRoaXMuazhzQXBpXG4gICAgICAuZ2V0R2xvYmFsUmVzb3VyY2U8Q29uZmlnTWFwPih7XG4gICAgICAgIHR5cGU6IFJFU09VUkNFX1RZUEVTLkNPTkZJR19NQVAsXG4gICAgICAgIG5hbWU6IFBMQVRGT1JNX0lORk9fQ01fTkFNRSxcbiAgICAgICAgbmFtZXNwYWNlZDogdHJ1ZSxcbiAgICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKGNtID0+ICh7XG4gICAgICAgICAgbmFtZToge1xuICAgICAgICAgICAgemg6IGNtLmRhdGFbUExBVEZPUk1fTkFNRV9aSF9LRVldLFxuICAgICAgICAgICAgZW46IGNtLmRhdGFbUExBVEZPUk1fTkFNRV9FTl9LRVldLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbWFpblRpdGxlOiB7XG4gICAgICAgICAgICB6aDogY20uZGF0YVtQT1JUQUxfTUFJTl9USVRMRV9aSF9LRVldLFxuICAgICAgICAgICAgZW46IGNtLmRhdGFbUE9SVEFMX01BSU5fVElUTEVfRU5fS0VZXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KSksXG4gICAgICApO1xuICB9XG5cbiAgZ2V0QmFja2dyb3VuZEltYWdlcygpIHtcbiAgICByZXR1cm4gdGhpcy5rOHNBcGlcbiAgICAgIC5nZXRHbG9iYWxSZXNvdXJjZTxDb25maWdNYXA+KHtcbiAgICAgICAgdHlwZTogUkVTT1VSQ0VfVFlQRVMuQ09ORklHX01BUCxcbiAgICAgICAgbmFtZTogUE9SVEFMX1VJX0NNX05BTUUsXG4gICAgICAgIG5hbWVzcGFjZWQ6IHRydWUsXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcChjbSA9PiB7XG4gICAgICAgICAgY29uc3QgdG9wSW1hZ2UgPSBjbS5iaW5hcnlEYXRhPy5bUE9SVEFMX1RPUF9JTUFHRV9LRVldO1xuICAgICAgICAgIGNvbnN0IGJvdHRvbUltYWdlID0gY20uYmluYXJ5RGF0YT8uW1BPUlRBTF9CT1RUT01fSU1BR0VfS0VZXTtcblxuICAgICAgICAgIHJldHVybiB0aGlzLnRoZW1lLmN1cnJlbnRUaGVtZSQucGlwZShcbiAgICAgICAgICAgIG1hcCh0aGVtZSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgdG9wSW1hZ2U6XG4gICAgICAgICAgICAgICAgICBhcHBlbmRJbWFnZUhlYWRlcih0b3BJbWFnZSkgfHxcbiAgICAgICAgICAgICAgICAgIGBpbWFnZXMvJHt0aGVtZX0vJHtERUZBVUxUX1BPUlRBTF9UT1BfUkVTT1VSQ0VfTkFNRX1gLFxuICAgICAgICAgICAgICAgIGJvdHRvbUltYWdlOlxuICAgICAgICAgICAgICAgICAgYXBwZW5kSW1hZ2VIZWFkZXIoYm90dG9tSW1hZ2UpIHx8XG4gICAgICAgICAgICAgICAgICBgaW1hZ2VzLyR7dGhlbWV9LyR7REVGQVVMVF9QT1JUQUxfQk9UVE9NX1JFU09VUkNFX05BTUV9YCxcbiAgICAgICAgICAgICAgICBoYXNDdXN0b21pemVkOiAhIXRvcEltYWdlIHx8ICEhYm90dG9tSW1hZ2UsXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICApO1xuICAgICAgICB9KSxcbiAgICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -166,7 +166,7 @@ export class NamespaceListComponent extends ResourceListBase {
|
|
|
166
166
|
this.getClusterDisplayName$ = memoize((cluster) => this.clusters$.pipe(map(clusters => this.k8sUtil.getDisplayName(clusters.find(i => this.k8sUtil.getName(i) === cluster)))));
|
|
167
167
|
this.checkClusterError$ = memoize((cluster) => this.clusters$.pipe(map(clusters => this.checkClusterError(clusters, cluster))));
|
|
168
168
|
this.namespaces$ = combineLatest([
|
|
169
|
-
this.load
|
|
169
|
+
this.load$$.pipe(startWith({ project: null, cluster: '' })),
|
|
170
170
|
this.reload$$.pipe(startWith(null)),
|
|
171
171
|
]).pipe(switchMap(([{ project, cluster }]) => {
|
|
172
172
|
if (!project || !cluster) {
|
|
@@ -474,4 +474,4 @@ export class NamespaceListComponent extends ResourceListBase {
|
|
|
474
474
|
type: Output
|
|
475
475
|
}] }); })();
|
|
476
476
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(NamespaceListComponent, { className: "NamespaceListComponent" }); })();
|
|
477
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2J1c2luZXNzL3Jlc291cmNlLXNlbGVjdC9leHBvcnRzL25hbWVzcGFjZS1saXN0L2NvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9idXNpbmVzcy9yZXNvdXJjZS1zZWxlY3QvZXhwb3J0cy9uYW1lc3BhY2UtbGlzdC90ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sV0FBVyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNyRCxPQUFPLEVBQ0wsYUFBYSxFQUNiLGFBQWEsRUFDYixRQUFRLEVBQ1IsRUFBRSxFQUNGLFVBQVUsRUFDVixRQUFRLEVBQ1IsR0FBRyxFQUNILFNBQVMsRUFDVCxTQUFTLEVBQ1QsU0FBUyxFQUNULEdBQUcsR0FDSixNQUFNLE1BQU0sQ0FBQztBQUVkLE9BQU8sRUFDTCxXQUFXLEVBRVgsY0FBYyxFQUVkLFVBQVUsRUFJVixtQkFBbUIsRUFDbkIsWUFBWSxHQUNiLE1BQU0sNkJBQTZCLENBQUM7QUFDckMsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDbEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckUsT0FBTyxFQUFFLGNBQWMsRUFBRSxrQkFBa0IsRUFB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QUFLO1lBSU4sS0FBSztrQkFESixLQUFLO1lBSU4sa0JBQWtCO2tCQURqQixLQUFLO1lBSU4sYUFBYTtrQkFEWixNQUFNO1lBSVAsYUFBYTtrQkFEWixNQUFNOztrRkFuQkksc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VsZWN0RmlsdGVyT3B0aW9uIH0gZnJvbSAnQGFsYXVkYS91aSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG1lbW9pemUsIHBhcnRpdGlvbiwgdW5pcSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQge1xuICBSZXBsYXlTdWJqZWN0LFxuICBjb21iaW5lTGF0ZXN0LFxuICBmb3JrSm9pbixcbiAgb2YsXG4gIGNhdGNoRXJyb3IsXG4gIGZpbmFsaXplLFxuICBtYXAsXG4gIHN0YXJ0V2l0aCxcbiAgc3dpdGNoTWFwLFxuICB0YWtlVW50aWwsXG4gIHRhcCxcbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gIEFQSV9HQVRFV0FZLFxuICBDbHVzdGVyLFxuICBLOHNVdGlsU2VydmljZSxcbiAgUHJvamVjdCxcbiAgcHVibGlzaFJlZixcbiAgU2VydmljZU1lc2hHcm91cCxcbiAgS3ViZXJuZXRlc1Jlc291cmNlLFxuICBLdWJlcm5ldGVzUmVzb3VyY2VMaXN0LFxuICBnZXREb21haW5Bbm5vdGF0aW9uLFxuICBESVNQTEFZX05BTUUsXG59IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvcHVibGljLWFwaSc7XG5pbXBvcnQgeyBDb21tb25MYXlvdXRDb250ZXh0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3BhZ2Utc2NhZmZvbGQvcHVibGljLWFwaSc7XG5pbXBvcnQgeyBSZXNvdXJjZUxpc3RCYXNlIH0gZnJvbSAnLi4vLi4vYmFzZS1saXN0JztcbmltcG9ydCB7IFJlc291cmNlU2VsZWN0Q29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb250ZXh0LnNlcnZpY2UnO1xuaW1wb3J0IHsgZ2V0RGlzcGxheUFyY2gsIGdldFdvcmtzcGFjZVBhcmFtcyB9IGZyb20gJy4uLy4uL3V0aWxzJztcblxuaW1wb3J0IHsgSzhzQXBpU2VydmljZSB9IGZyb20gJy4vLi4vLi4vLi4vLi4vYXBpL3B1YmxpYy1hcGknO1xuaW1wb3J0IHtcbiAgQ2x1c3RlckFyY2gsXG4gIERpc2FibGVGbixcbiAgTmFtZXNwYWNlRGF0YUl0ZW0sXG4gIFNlbGVjdGVkTmFtZXNwYWNlVmFsdWUsXG59IGZyb20gJy4vLi4vLi4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhY2wtbmFtZXNwYWNlLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGVtcGxhdGUuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3N0eWxlLnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5hbWVzcGFjZUxpc3RDb21wb25lbnRcbiAgZXh0ZW5kcyBSZXNvdXJjZUxpc3RCYXNlXG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3lcbntcbiAgQElucHV0KClcbiAgYWN0aW9uVGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQElucHV0KClcbiAgZGlzYWJsZUZuOiBEaXNhYmxlRm47XG5cbiAgQElucHV0KClcbiAgdmFsdWU6IFNlbGVjdGVkTmFtZXNwYWNlVmFsdWU7XG5cbiAgQElucHV0KClcbiAgZGlzcGxheVNlcnZpY2VNZXNoID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpXG4gIGNsdXN0ZXJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBAT3V0cHV0KClcbiAgcHJvamVjdENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIHByb2plY3RzOiBQcm9qZWN0W10gPSBbXTtcblxuICBzZWxlY3RlZFByb2plY3Q6IFByb2plY3Q7XG4gIHNlbGVjdGVkQ2x1c3Rlcjogc3RyaW5nO1xuICBjbHVzdGVyczogc3RyaW5nW10gPSBbXTtcbiAgcHJvamVjdHNMb2FkaW5nID0gdHJ1ZTtcblxuICBzZXJ2aWNlTWVzaGVzOiBTZXJ2aWNlTWVzaEdyb3VwW10gPSBbXTtcbiAgcHJvamVjdFNlcnZpY2VNZXNoZXM6IFNlcnZpY2VNZXNoR3JvdXBbXSA9IFtdO1xuICBzZWxlY3RlZFNlcnZpY2VNZXNoOiBTZXJ2aWNlTWVzaEdyb3VwO1xuXG4gIHR5cGUgPSAnbmFtZXNwYWNlJztcblxuICBkaXNwbGF5ZWREYXRhOiBOYW1lc3BhY2VEYXRhSXRlbVtdID0gW107XG5cbiAgbmFtZXNwYWNlQ2x1c3Rlck1hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuXG4gIGdyaWRTdGF0ZU1hcDogUmVjb3JkPHN0cmluZywgUmV0dXJuVHlwZTxEaXNhYmxlRm4+PiA9IHt9O1xuXG4gIHNlbGVjdGVkVWlkOiBzdHJpbmc7XG5cbiAgbG9hZCQkID0gbmV3IFJlcGxheVN1YmplY3Q8eyBwcm9qZWN0OiBQcm9qZWN0OyBjbHVzdGVyOiBzdHJpbmcgfT4oMSk7XG5cbiAgc2VydmljZU1lc2hlcyQgPSB0aGlzLms4c1NlcnZpY2VcbiAgICAuZ2V0R2xvYmFsUmVzb3VyY2VMaXN0PFNlcnZpY2VNZXNoR3JvdXA+KHtcbiAgICAgIGRlZmluaXRpb246IHtcbiAgICAgICAgYXBpR3JvdXA6ICdhc20uYWxhdWRhLmlvJyxcbiAgICAgICAgYXBpVmVyc2lvbjogJ3YxYWxwaGExJyxcbiAgICAgICAgdHlwZTogJ3NlcnZpY2VtZXNoZ3JvdXBzJyxcbiAgICAgIH0sXG4gICAgICBuYW1lc3BhY2VkOiB0cnVlLFxuICAgIH0pXG4gICAgLnBpcGUobWFwKHJlcyA9PiByZXMuaXRlbXMpKTtcblxuICBjbHVzdGVycyQgPSB0aGlzLmh0dHBcbiAgICAuZ2V0PFxuICAgICAgS3ViZXJuZXRlc1Jlc291cmNlTGlzdDxDbHVzdGVyPlxuICAgID4oYCR7QVBJX0dBVEVXQVl9L2F1dGgvdjEvY2x1c3RlcnM/YXZhaWxhYmxlQ2x1c3RlcnM9ZmFsc2VgKVxuICAgIC5waXBlKFxuICAgICAgbWFwKHJlcyA9PiByZXM/Lml0ZW1zKSxcbiAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YoW10gYXMgQ2x1c3RlcltdKSksXG4gICAgICBwdWJsaXNoUmVmKCksXG4gICAgKTtcblxuICBnZXRDbHVzdGVyRGlzcGxheU5hbWUkID0gbWVtb2l6ZSgoY2x1c3Rlcjogc3RyaW5nKSA9PlxuICAgIHRoaXMuY2x1c3RlcnMkLnBpcGUoXG4gICAgICBtYXAoY2x1c3RlcnMgPT5cbiAgICAgICAgdGhpcy5rOHNVdGlsLmdldERpc3BsYXlOYW1lKFxuICAgICAgICAgIGNsdXN0ZXJzLmZpbmQoaSA9PiB0aGlzLms4c1V0aWwuZ2V0TmFtZShpKSA9PT0gY2x1c3RlciksXG4gICAgICAgICksXG4gICAgICApLFxuICAgICksXG4gICk7XG5cbiAgY2hlY2tDbHVzdGVyRXJyb3IkID0gbWVtb2l6ZSgoY2x1c3Rlcjogc3RyaW5nKSA9PlxuICAgIHRoaXMuY2x1c3RlcnMkLnBpcGUoXG4gICAgICBtYXAoY2x1c3RlcnMgPT4gdGhpcy5jaGVja0NsdXN0ZXJFcnJvcihjbHVzdGVycywgY2x1c3RlcikpLFxuICAgICksXG4gICk7XG5cbiAgbmFtZXNwYWNlcyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLmxvYWQkJCxcbiAgICB0aGlzLnJlbG9hZCQkLnBpcGUoc3RhcnRXaXRoKG51bGwgYXMgdm9pZCkpLFxuICBdKS5waXBlKFxuICAgIHN3aXRjaE1hcCgoW3sgcHJvamVjdCwgY2x1c3RlciB9XSkgPT4ge1xuICAgICAgaWYgKCFwcm9qZWN0IHx8ICFjbHVzdGVyKSB7XG4gICAgICAgIHJldHVybiBvZihbXSBhcyBLdWJlcm5ldGVzUmVzb3VyY2VbXSk7XG4gICAgICB9XG4gICAgICBjb25zdCBjbHVzdGVycyA9IGNsdXN0ZXIgPT09ICdfX2FsbCcgPyB0aGlzLmNsdXN0ZXJzIDogW2NsdXN0ZXJdO1xuICAgICAgcmV0dXJuIGNsdXN0ZXJzLmxlbmd0aFxuICAgICAgICA/IGZvcmtKb2luKFxuICAgICAgICAgICAgY2x1c3RlcnMubWFwKGNsdXN0ZXIgPT5cbiAgICAgICAgICAgICAgdGhpcy5jb21tb25MYXlvdXRTZXJ2aWNlXG4gICAgICAgICAgICAgICAgLmdldENsdXN0ZXJOYW1lc3BhY2VzKHByb2plY3QubWV0YWRhdGEubmFtZSwgY2x1c3RlcilcbiAgICAgICAgICAgICAgICAucGlwZShjYXRjaEVycm9yKCgpID0+IG9mKFtdKSkpLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICApLnBpcGUoXG4gICAgICAgICAgICB0YXAobGlzdHMgPT4ge1xuICAgICAgICAgICAgICB0aGlzLm5hbWVzcGFjZUNsdXN0ZXJNYXAgPSBsaXN0cy5yZWR1Y2UoXG4gICAgICAgICAgICAgICAgKGFjYywgY3VyLCBpKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgLi4uYWNjLFxuICAgICAgICAgICAgICAgICAgLi4uY3VyLnJlZHVjZShcbiAgICAgICAgICAgICAgICAgICAgKHN1YkFjYywgc3ViQ3VycikgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgICAuLi5zdWJBY2MsXG4gICAgICAgICAgICAgICAgICAgICAgW3N1YkN1cnIubWV0YWRhdGEudWlkXTogY2x1c3RlcnNbaV0sXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICB7fSxcbiAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAge30sXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIG1hcCgobGlzdHM6IEt1YmVybmV0ZXNSZXNvdXJjZVtdW10pID0+IGxpc3RzLmZsYXQoKSksXG4gICAgICAgICAgKVxuICAgICAgICA6IG9mKFtdIGFzIEt1YmVybmV0ZXNSZXNvdXJjZVtdKTtcbiAgICB9KSxcbiAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCQpLFxuICAgIHB1Ymxpc2hSZWYoKSxcbiAgKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbW1vbkxheW91dFNlcnZpY2U6IENvbW1vbkxheW91dENvbnRleHRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgazhzU2VydmljZTogSzhzQXBpU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGh0dHA6IEh0dHBDbGllbnQsXG4gICAgY29udGV4dFNlcnZpY2U6IFJlc291cmNlU2VsZWN0Q29udGV4dFNlcnZpY2UsXG4gICAgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBrOHNVdGlsOiBLOHNVdGlsU2VydmljZSxcbiAgKSB7XG4gICAgc3VwZXIoY2RyLCBrOHNVdGlsLCBjb250ZXh0U2VydmljZSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICAvLyBGcm9tIGNhY2hlXG4gICAgdGhpcy5wcm9qZWN0cyA9IHRoaXMuY29udGV4dFNlcnZpY2UuY2FjaGVkUHJvamVjdFJlc291cmNlcztcbiAgICB0aGlzLnNlcnZpY2VNZXNoZXMgPSB0aGlzLmNvbnRleHRTZXJ2aWNlLmNhY2hlZFNlcnZpY2VNZXNoR3JvdXBSZXNvdXJjZXM7XG4gICAgaWYgKHRoaXMucHJvamVjdHMubGVuZ3RoKSB7XG4gICAgICB0aGlzLmluaXRQcm9qZWN0KHRoaXMucHJvamVjdHMpO1xuICAgIH1cblxuICAgIC8vIEdldCBsYXRlc3QgZGF0YSBpbiB0aGUgYmFja2dyb3VuZFxuICAgIGZvcmtKb2luKFtcbiAgICAgIHRoaXMuY29tbW9uTGF5b3V0U2VydmljZVxuICAgICAgICAuZ2V0UHJvamVjdHMoKVxuICAgICAgICAucGlwZShjYXRjaEVycm9yKCgpID0+IG9mKFtdIGFzIFByb2plY3RbXSkpKSxcbiAgICAgIHRoaXMuZGlzcGxheVNlcnZpY2VNZXNoXG4gICAgICAgID8gdGhpcy5zZXJ2aWNlTWVzaGVzJFxuICAgICAgICA6IG9mKFtdIGFzIFNlcnZpY2VNZXNoR3JvdXBbXSksXG4gICAgXSlcbiAgICAgIC5waXBlKFxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5wcm9qZWN0c0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkJCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChbcHJvamVjdHMsIHNlcnZpY2VNZXNoZXNdKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmRpc3BsYXlTZXJ2aWNlTWVzaCkge1xuICAgICAgICAgIHRoaXMuc2VydmljZU1lc2hlcyA9IHNlcnZpY2VNZXNoZXM7XG4gICAgICAgICAgdGhpcy5jb250ZXh0U2VydmljZS5jYWNoZWRTZXJ2aWNlTWVzaEdyb3VwUmVzb3VyY2VzID0gc2VydmljZU1lc2hlcztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnByb2plY3RzID0gcHJvamVjdHM7XG4gICAgICAgIGlmICghdGhpcy5jb250ZXh0U2VydmljZS5jYWNoZWRQcm9qZWN0UmVzb3VyY2VzPy5sZW5ndGgpIHtcbiAgICAgICAgICB0aGlzLmluaXRQcm9qZWN0KHByb2plY3RzKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNvbnRleHRTZXJ2aWNlLmNhY2hlZFByb2plY3RSZXNvdXJjZXMgPSB0aGlzLnByb2plY3RzO1xuICAgICAgfSk7XG5cbiAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLmNsdXN0ZXJzJCwgdGhpcy5uYW1lc3BhY2VzJF0pLnN1YnNjcmliZShcbiAgICAgIChbY2x1c3RlcnMsIGRhdGFdKSA9PiB7XG4gICAgICAgIGNvbnN0IGlzTXVsdGlBcmNoID1cbiAgICAgICAgICB1bmlxKGNsdXN0ZXJzLm1hcChjID0+IHRoaXMuazhzVXRpbC5nZXRMYWJlbChjLCAnYXJjaCcpKSkubGVuZ3RoID4gMTtcbiAgICAgICAgdGhpcy5kaXNwbGF5ZWREYXRhID0gdGhpcy5tYXBSZXNvdXJjZShkYXRhLCB7XG4gICAgICAgICAgY2x1c3RlcnMsXG4gICAgICAgICAgaXNNdWx0aUFyY2gsXG4gICAgICAgIH0pLmZpbHRlcihucyA9PiB0aGlzLmNvbnRleHQgPT09ICdwYWdlJyB8fCAhbnMuc3RhdGU/LmRpc2FibGVkKTtcbiAgICAgICAgdGhpcy5zZXRTZWxlY3RlZE5hbWVzcGFjZSh0aGlzLmRpc3BsYXllZERhdGEpO1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZFVpZCkge1xuICAgICAgICAgIHRoaXMuZGlzcGxheWVkRGF0YSA9IHRoaXMuZ2V0U29ydGVkTmFtZXNwYWNlKFxuICAgICAgICAgICAgdGhpcy5kaXNwbGF5ZWREYXRhLFxuICAgICAgICAgICAgdGhpcy52YWx1ZS5uYW1lLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZm9yY2VMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc3RvcmVOYW1lc3BhY2VzKCk7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSxcbiAgICApO1xuICB9XG5cbiAgZ2V0U29ydGVkTmFtZXNwYWNlKHJhd0RhdGE6IE5hbWVzcGFjZURhdGFJdGVtW10sIG5hbWVzcGFjZT86IHN0cmluZykge1xuICAgIGlmICghbmFtZXNwYWNlKSB7XG4gICAgICByZXR1cm4gcmF3RGF0YTtcbiAgICB9XG4gICAgY29uc3QgW3NlbGVjdGVkLCBvdGhlcnNdID0gcGFydGl0aW9uKFxuICAgICAgdGhpcy5kaXNwbGF5ZWREYXRhLFxuICAgICAgaXRlbSA9PiBpdGVtLm5hbWUgPT09IG5hbWVzcGFjZSxcbiAgICApO1xuICAgIHJldHVybiBbLi4uc2VsZWN0ZWQsIC4uLm90aGVyc107XG4gIH1cblxuICBzdG9yZU5hbWVzcGFjZXMoKSB7XG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkUHJvamVjdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5zZWxlY3RlZENsdXN0ZXIgPT09ICdfX2FsbCcpIHtcbiAgICAgIGZvciAoY29uc3QgY2x1c3RlciBvZiB0aGlzLmNsdXN0ZXJzKSB7XG4gICAgICAgIHRoaXMuY29udGV4dFNlcnZpY2Uuc3RvcmVOYW1lc3BhY2VzKFxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRQcm9qZWN0Lm1ldGFkYXRhLm5hbWUsXG4gICAgICAgICAgY2x1c3RlcixcbiAgICAgICAgICB0aGlzLmRpc3BsYXllZERhdGEuZmlsdGVyKGl0ZW0gPT4gaXRlbS5jbHVzdGVyID09PSBjbHVzdGVyKSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5jb250ZXh0U2VydmljZS5zdG9yZU5hbWVzcGFjZXMoXG4gICAgICB0aGlzLnNlbGVjdGVkUHJvamVjdC5tZXRhZGF0YS5uYW1lLFxuICAgICAgdGhpcy5zZWxlY3RlZENsdXN0ZXIsXG4gICAgICB0aGlzLmRpc3BsYXllZERhdGEsXG4gICAgKTtcbiAgfVxuXG4gIHByb2plY3RGaWx0ZXJGbiA9IChrZXl3b3JkID0gJycsIG9wdGlvbjogU2VsZWN0RmlsdGVyT3B0aW9uPFByb2plY3Q+KSA9PiB7XG4gICAgY29uc3QgayA9IGtleXdvcmQudG9Mb3dlckNhc2UoKTtcbiAgICByZXR1cm4gKFxuICAgICAgb3B0aW9uLnZhbHVlLm1ldGFkYXRhLm5hbWUuaW5jbHVkZXMoaykgfHxcbiAgICAgIGdldERvbWFpbkFubm90YXRpb24oRElTUExBWV9OQU1FLCBvcHRpb24udmFsdWUpXG4gICAgICAgID8udG9Mb3dlckNhc2UoKVxuICAgICAgICA/LmluY2x1ZGVzKGspXG4gICAgKTtcbiAgfTtcblxuICBjbHVzdGVyRmlsdGVyRm4gPSAoa2V5d29yZCA9ICcnLCBvcHRpb246IFNlbGVjdEZpbHRlck9wdGlvbjxzdHJpbmc+KSA9PiB7XG4gICAgY29uc3QgayA9IGtleXdvcmQudG9Mb3dlckNhc2UoKTtcbiAgICBpZiAob3B0aW9uLnZhbHVlID09PSAnX19hbGwnKSB7XG4gICAgICByZXR1cm4gKG9wdGlvbi5sYWJlbCBhcyBzdHJpbmcpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoayk7XG4gICAgfVxuXG4gICAgY29uc3QgeyBuYW1lLCBkaXNwbGF5TmFtZSB9ID0gb3B0aW9uLmxhYmVsQ29udGV4dCBhcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcmV0dXJuIG5hbWUuaW5jbHVkZXMoaykgfHwgZGlzcGxheU5hbWU/LnRvTG93ZXJDYXNlKCk/LmluY2x1ZGVzKGspO1xuICB9O1xuXG4gIHNlcnZpY2VNZXNoRmlsdGVyRm4gPSAoXG4gICAga2V5d29yZCA9ICcnLFxuICAgIG9wdGlvbjogU2VsZWN0RmlsdGVyT3B0aW9uPFNlcnZpY2VNZXNoR3JvdXA+LFxuICApID0+IHtcbiAgICBjb25zdCBrID0ga2V5d29yZC50b0xvd2VyQ2FzZSgpO1xuICAgIGNvbnN0IHZlcnNpb24gPSBvcHRpb24udmFsdWUuc3BlYz8uaXN0aW9WZXJzaW9uXG4gICAgICA/IGBJc3RpbyAke29wdGlvbi52YWx1ZS5zcGVjLmlzdGlvVmVyc2lvbn1gXG4gICAgICA6ICcnO1xuICAgIHJldHVybiAoXG4gICAgICBvcHRpb24udmFsdWUubWV0YWRhdGEubmFtZS5pbmNsdWRlcyhrKSB8fFxuICAgICAgdmVyc2lvbi50b0xvd2VyQ2FzZSgpPy5pbmNsdWRlcyhrKVxuICAgICk7XG4gIH07XG5cbiAgcHJvamVjdFRyYWNrRm4gPSAocHJvamVjdDogUHJvamVjdCkgPT4gcHJvamVjdD8ubWV0YWRhdGEubmFtZTtcblxuICBzZXJ2aWNlTWVzaFRyYWNrRm4gPSAobWVzaDogU2VydmljZU1lc2hHcm91cCkgPT4gbWVzaD8ubWV0YWRhdGEubmFtZTtcblxuICBwcml2YXRlIGluaXRQcm9qZWN0KHByb2plY3RzOiBQcm9qZWN0W10pIHtcbiAgICB0aGlzLnNlbGVjdFByb2plY3QoXG4gICAgICAocHJvamVjdHMgfHwgW10pLmxlbmd0aFxuICAgICAgICA/IHByb2plY3RzLmZpbmQoaXRlbSA9PiBpdGVtLm1ldGFkYXRhLm5hbWUgPT09IHRoaXMudmFsdWU/LnByb2plY3QpIHx8XG4gICAgICAgICAgICBwcm9qZWN0c1swXVxuICAgICAgICA6IG51bGwsXG4gICAgICB0cnVlLFxuICAgICk7XG4gICAgdGhpcy5sb2FkLmVtaXQoe1xuICAgICAgcHJvamVjdDogcHJvamVjdHMubGVuZ3RoLFxuICAgICAgY2x1c3RlcjogdW5pcShcbiAgICAgICAgcHJvamVjdHMucmVkdWNlKFxuICAgICAgICAgIChhY2MsIGN1cikgPT4gWy4uLmFjYywgLi4uKGN1ci5zcGVjLmNsdXN0ZXJzIHx8IFtdKS5tYXAoYyA9PiBjLm5hbWUpXSxcbiAgICAgICAgICBbXSxcbiAgICAgICAgKSxcbiAgICAgICkubGVuZ3RoLFxuICAgIH0pO1xuICB9XG5cbiAgc2VsZWN0U2VydmljZU1lc2goc2VydmljZU1lc2g6IFNlcnZpY2VNZXNoR3JvdXApIHtcbiAgICB0aGlzLnNlbGVjdGVkU2VydmljZU1lc2ggPSBzZXJ2aWNlTWVzaDtcbiAgICB0aGlzLmNsdXN0ZXJzID0gKHRoaXMuc2VsZWN0ZWRQcm9qZWN0LnNwZWMuY2x1c3RlcnMgfHwgW10pXG4gICAgICAubWFwKGMgPT4gYy5uYW1lKVxuICAgICAgLmZpbHRlcihjbHVzdGVyID0+XG4gICAgICAgIHRoaXMuc2VydmljZU1lc2hlc1xuICAgICAgICAgIC5maW5kKFxuICAgICAgICAgICAgbWVzaCA9PlxuICAgICAgICAgICAgICB0aGlzLms4c1V0aWwuZ2V0TmFtZShtZXNoKSA9PT0gdGhpcy5rOHNVdGlsLmdldE5hbWUoc2VydmljZU1lc2gpLFxuICAgICAgICAgIClcbiAgICAgICAgICAuc3BlYy5jbHVzdGVycy5pbmNsdWRlcyhjbHVzdGVyKSxcbiAgICAgICk7XG4gICAgdGhpcy5zZWxlY3RDbHVzdGVyKCdfX2FsbCcpO1xuICB9XG5cbiAgc2VsZWN0UHJvamVjdChwcm9qZWN0OiBQcm9qZWN0LCBpbml0aWFsID0gZmFsc2UpIHtcbiAgICB0aGlzLnByb2plY3RDaGFuZ2UuZW1pdChwcm9qZWN0Py5tZXRhZGF0YS5uYW1lKTtcbiAgICB0aGlzLnNlbGVjdGVkUHJvamVjdCA9IHByb2plY3Q7XG4gICAgdGhpcy5jbHVzdGVycyA9IHByb2plY3RcbiAgICAgID8gKHByb2plY3Quc3BlYy5jbHVzdGVycyB8fCBbXSkubWFwKGMgPT4gYy5uYW1lKVxuICAgICAgOiBbXTtcbiAgICBpZiAodGhpcy5kaXNwbGF5U2VydmljZU1lc2gpIHtcbiAgICAgIHRoaXMucHJvamVjdFNlcnZpY2VNZXNoZXMgPSB0aGlzLnNlcnZpY2VNZXNoZXMuZmlsdGVyKG1lc2ggPT5cbiAgICAgICAgbWVzaC5zcGVjLmNsdXN0ZXJzLnNvbWUoY2x1c3RlciA9PiB0aGlzLmNsdXN0ZXJzLmluY2x1ZGVzKGNsdXN0ZXIpKSxcbiAgICAgICk7XG4gICAgICBpZiAodGhpcy5wcm9qZWN0U2VydmljZU1lc2hlcz8ubGVuZ3RoKSB7XG4gICAgICAgIGxldCBtZXNoTmFtZSA9IHRoaXMudmFsdWU/LnNlcnZpY2VtZXNoO1xuXG4gICAgICAgIGlmICghbWVzaE5hbWUpIHtcbiAgICAgICAgICB0aGlzLmF1dGguZ2V0QWNjb3VudEluZm8oKS5zdWJzY3JpYmUoKHsgZW1haWwgfSkgPT4ge1xuICAgICAgICAgICAgbWVzaE5hbWUgPSBnZXRXb3Jrc3BhY2VQYXJhbXMoZW1haWwpPy5zZXJ2aWNlbWVzaDtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkU2VydmljZU1lc2ggPVxuICAgICAgICAgIHRoaXMucHJvamVjdFNlcnZpY2VNZXNoZXMuZmluZChcbiAgICAgICAgICAgIG1lc2ggPT4gdGhpcy5rOHNVdGlsLmdldE5hbWUobWVzaCkgPT09IG1lc2hOYW1lLFxuICAgICAgICAgICkgfHwgdGhpcy5wcm9qZWN0U2VydmljZU1lc2hlc1swXTtcbiAgICAgICAgdGhpcy5zZWxlY3RTZXJ2aWNlTWVzaChzZWxlY3RlZFNlcnZpY2VNZXNoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRTZXJ2aWNlTWVzaCA9IG51bGw7XG4gICAgICAgIHRoaXMuY2x1c3RlcnMgPSBbXTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5zZWxlY3RDbHVzdGVyKCdfX2FsbCcsIGluaXRpYWwpO1xuICB9XG5cbiAgc2VsZWN0Q2x1c3RlcihjbHVzdGVyTmFtZTogc3RyaW5nLCBpbml0aWFsID0gZmFsc2UpIHtcbiAgICB0aGlzLnNlbGVjdGVkQ2x1c3RlciA9IGNsdXN0ZXJOYW1lO1xuICAgIGNvbnN0IGRpc3BsYXllZERhdGEgPVxuICAgICAgdGhpcy5jb250ZXh0U2VydmljZS5nZXRDYWNoZWROYW1lc3BhY2VzKFxuICAgICAgICB0aGlzLnNlbGVjdGVkUHJvamVjdD8ubWV0YWRhdGEubmFtZSxcbiAgICAgICAgdGhpcy5zZWxlY3RlZENsdXN0ZXIsXG4gICAgICApIHx8IFtdO1xuICAgIHRoaXMuZGlzcGxheWVkRGF0YSA9IHRoaXMuZ2V0U29ydGVkTmFtZXNwYWNlKFxuICAgICAgZGlzcGxheWVkRGF0YSxcbiAgICAgIGluaXRpYWwgPyB0aGlzLnZhbHVlPy5uYW1lIDogbnVsbCxcbiAgICApO1xuICAgIHRoaXMuc2V0U2VsZWN0ZWROYW1lc3BhY2UodGhpcy5kaXNwbGF5ZWREYXRhKTtcblxuICAgIHRoaXMuY2x1c3RlckNoYW5nZS5lbWl0KFxuICAgICAgdGhpcy5zZWxlY3RlZENsdXN0ZXIgPT09ICdfX2FsbCcgPyBudWxsIDogY2x1c3Rlck5hbWUsXG4gICAgKTtcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMubG9hZCQkLm5leHQoe1xuICAgICAgcHJvamVjdDogdGhpcy5zZWxlY3RlZFByb2plY3QsXG4gICAgICBjbHVzdGVyOiBjbHVzdGVyTmFtZSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0U2VsZWN0ZWROYW1lc3BhY2UoZGF0YTogTmFtZXNwYWNlRGF0YUl0ZW1bXSkge1xuICAgIGNvbnN0IHNlbGVjdGVkTmFtZXNwYWNlID0gdGhpcy52YWx1ZVxuICAgICAgPyBkYXRhLmZpbmQoXG4gICAgICAgICAgaXRlbSA9PlxuICAgICAgICAgICAgaXRlbS5uYW1lID09PSB0aGlzLnZhbHVlLm5hbWUgJiZcbiAgICAgICAgICAgIHRoaXMudmFsdWUuY2x1c3RlciA9PT0gaXRlbS5jbHVzdGVyLFxuICAgICAgICApXG4gICAgICA6IG51bGw7XG4gICAgdGhpcy5zZWxlY3RlZFVpZCA9IHNlbGVjdGVkTmFtZXNwYWNlXG4gICAgICA/IHNlbGVjdGVkTmFtZXNwYWNlLl9fb3JpZ2luLm1ldGFkYXRhLnVpZFxuICAgICAgOiBudWxsO1xuICB9XG5cbiAgbWFwUmVzb3VyY2UgPSAoXG4gICAgbGlzdDogS3ViZXJuZXRlc1Jlc291cmNlW10sXG4gICAge1xuICAgICAgaXNNdWx0aUFyY2gsXG4gICAgICBjbHVzdGVycyxcbiAgICB9OiB7XG4gICAgICBpc011bHRpQXJjaDogYm9vbGVhbjtcbiAgICAgIGNsdXN0ZXJzOiBDbHVzdGVyW107XG4gICAgfSxcbiAgKTogTmFtZXNwYWNlRGF0YUl0ZW1bXSA9PlxuICAgIGxpc3QubWFwKGl0ZW0gPT4ge1xuICAgICAgY29uc3QgY2x1c3RlciA9IHRoaXMubmFtZXNwYWNlQ2x1c3Rlck1hcFtpdGVtLm1ldGFkYXRhLnVpZF07XG4gICAgICBjb25zdCBpdGVtRGlzYWJsZWQgPSB0aGlzLmRpc2FibGVGbiA/IHRoaXMuZGlzYWJsZUZuKGl0ZW0pIDogbnVsbDtcbiAgICAgIGNvbnN0IGNhY2hlZEl0ZW0gPSB0aGlzLmRpc3BsYXllZERhdGEuZmluZChcbiAgICAgICAgbnMgPT4gbnMuX19vcmlnaW4ubWV0YWRhdGEudWlkID09PSBpdGVtLm1ldGFkYXRhLnVpZCxcbiAgICAgICk7XG4gICAgICBjb25zdCBzZXJ2aWNlbWVzaCA9IHRoaXMuc2VydmljZU1lc2hlcy5maW5kKGl0ZW0gPT5cbiAgICAgICAgaXRlbS5zcGVjLmNsdXN0ZXJzLmluY2x1ZGVzKGNhY2hlZEl0ZW0/LmNsdXN0ZXIgfHwgY2x1c3RlciksXG4gICAgICApO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbmFtZTogdGhpcy5rOHNVdGlsLmdldE5hbWUoaXRlbSksXG4gICAgICAgIGRpc3BsYXlOYW1lOiB0aGlzLms4c1V0aWwuZ2V0RGlzcGxheU5hbWUoaXRlbSksXG4gICAgICAgIGNsdXN0ZXI6IGNhY2hlZEl0ZW0/LmNsdXN0ZXIgfHwgY2x1c3RlcixcbiAgICAgICAgY2x1c3RlckRpc3BsYXlOYW1lOlxuICAgICAgICAgIGNhY2hlZEl0ZW0/LmNsdXN0ZXJEaXNwbGF5TmFtZSB8fFxuICAgICAgICAgIHRoaXMuazhzVXRpbC5nZXREaXNwbGF5TmFtZShcbiAgICAgICAgICAgIGNsdXN0ZXJzLmZpbmQoYyA9PiBjLm1ldGFkYXRhLm5hbWUgPT09IGNsdXN0ZXIpLFxuICAgICAgICAgICksXG4gICAgICAgIGNsdXN0ZXJBcmNoOlxuICAgICAgICAgIGNhY2hlZEl0ZW0/LmNsdXN0ZXJBcmNoIHx8IGlzTXVsdGlBcmNoXG4gICAgICAgICAgICA/IHRoaXMuZ2V0Q2x1c3RlckFyY2goXG4gICAgICAgICAgICAgICAgY2x1c3RlcnMuZmluZChjID0+IGMubWV0YWRhdGEubmFtZSA9PT0gY2x1c3RlciksXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIDogbnVsbCxcbiAgICAgICAgc2VydmljZU1lc2hOYW1lOiBzZXJ2aWNlbWVzaCA/IHRoaXMuazhzVXRpbC5nZXROYW1lKHNlcnZpY2VtZXNoKSA6ICcnLFxuICAgICAgICBzZXJ2aWNlTWVzaENsdXN0ZXJzOiBzZXJ2aWNlbWVzaCA/IHNlcnZpY2VtZXNoLnNwZWMuY2x1c3RlcnMgOiBbXSxcbiAgICAgICAgc2VydmljZU1lc2hJc3Rpb1ZlcnNpb246IHNlcnZpY2VtZXNoXG4gICAgICAgICAgPyBzZXJ2aWNlbWVzaC5zcGVjLmlzdGlvVmVyc2lvblxuICAgICAgICAgIDogJycsXG4gICAgICAgIGFkbWluOiBjYWNoZWRJdGVtPy5hZG1pbiB8fCAnLScsXG4gICAgICAgIHRpbWVzdGFtcDogdGhpcy5rOHNVdGlsLmdldENyZWF0aW9uVGltZXN0YW1wKGl0ZW0pLFxuICAgICAgICBzdGF0ZToge1xuICAgICAgICAgIGRpc2FibGVkOlxuICAgICAgICAgICAgdGhpcy5ncmlkU3RhdGVNYXBbY2x1c3Rlcl0/LmRpc2FibGVkIHx8XG4gICAgICAgICAgICBpdGVtRGlzYWJsZWQ/LmRpc2FibGVkIHx8XG4gICAgICAgICAgICB0aGlzLmNoZWNrQ2x1c3RlckVycm9yKGNsdXN0ZXJzLCBjYWNoZWRJdGVtPy5jbHVzdGVyIHx8IGNsdXN0ZXIpIHx8XG4gICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICB0b29sdGlwOiB0aGlzLmdyaWRTdGF0ZU1hcFtjbHVzdGVyXT8uZGlzYWJsZWRcbiAgICAgICAgICAgID8gdGhpcy5ncmlkU3RhdGVNYXBbY2x1c3Rlcl0/LnRvb2x0aXAgfHwgJydcbiAgICAgICAgICAgIDogaXRlbURpc2FibGVkPy50b29sdGlwLFxuICAgICAgICB9LFxuICAgICAgICBfX29yaWdpbjogaXRlbSxcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgcHJpdmF0ZSBnZXRDbHVzdGVyQXJjaChjbHVzdGVyOiBDbHVzdGVyKSB7XG4gICAgcmV0dXJuIGdldERpc3BsYXlBcmNoKFxuICAgICAgdGhpcy5rOHNVdGlsLmdldExhYmVsKGNsdXN0ZXIsICdhcmNoJyksXG4gICAgKSBhcyBDbHVzdGVyQXJjaDtcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tDbHVzdGVyRXJyb3IoY2x1c3RlcnM6IENsdXN0ZXJbXSwgY2x1c3Rlcjogc3RyaW5nKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIGNsdXN0ZXJzXG4gICAgICAgIC5maW5kKGkgPT4gdGhpcy5rOHNVdGlsLmdldE5hbWUoaSkgPT09IGNsdXN0ZXIpXG4gICAgICAgID8uc3RhdHVzLmNvbmRpdGlvbnMuZmluZChjID0+IGMudHlwZSA9PT0gJ05vZGVOb3RSZWFkeScpPy5zdGF0dXMgIT09XG4gICAgICAnRmFsc2UnXG4gICAgKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZpbHRlclwiPlxuICA8YXVpLWZvcm0taXRlbT5cbiAgICA8bGFiZWwgYXVpRm9ybUl0ZW1MYWJlbD57eyAncHJvamVjdCcgfCB0cmFuc2xhdGUgfX08L2xhYmVsPlxuICAgIDxhdWktc2VsZWN0XG4gICAgICBbbmdDbGFzc109XCJkaXNwbGF5U2VydmljZU1lc2ggPyAnbGFuZy1ub3Qtemg6IXR3LXctWzIzMHB4XScgOiAnJ1wiXG4gICAgICBhdWlGb3JtSXRlbUNvbnRyb2xcbiAgICAgIG5hbWU9XCJwcm9qZWN0XCJcbiAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRQcm9qZWN0XCJcbiAgICAgIFtmaWx0ZXJGbl09XCJwcm9qZWN0RmlsdGVyRm5cIlxuICAgICAgW3RyYWNrRm5dPVwicHJvamVjdFRyYWNrRm5cIlxuICAgICAgKHZhbHVlQ2hhbmdlKT1cInNlbGVjdFByb2plY3QoJGV2ZW50KVwiXG4gICAgICBbbG9hZGluZ109XCIhcHJvamVjdHMubGVuZ3RoICYmIHByb2plY3RzTG9hZGluZ1wiXG4gICAgPlxuICAgICAgPGF1aS1vcHRpb25cbiAgICAgICAgKm5nRm9yPVwibGV0IHByb2plY3Qgb2YgcHJvamVjdHNcIlxuICAgICAgICBbdmFsdWVdPVwicHJvamVjdFwiXG4gICAgICAgIFtsYWJlbF09XCJwcm9qZWN0IHwgYWNsVW5pb25EaXNwbGF5TmFtZVwiXG4gICAgICA+XG4gICAgICAgIHt7IHByb2plY3QgfCBhY2xVbmlvbkRpc3BsYXlOYW1lIH19XG4gICAgICA8L2F1aS1vcHRpb24+XG4gICAgICA8YXVpLW9wdGlvbi1wbGFjZWhvbGRlcj5cbiAgICAgICAge3sgJ25vX2RhdGEnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2F1aS1vcHRpb24tcGxhY2Vob2xkZXI+XG4gICAgPC9hdWktc2VsZWN0PlxuICA8L2F1aS1mb3JtLWl0ZW0+XG4gIDwhLS0gQVNNIOmAieaLqee9keagvOi/h+a7pOmbhue+pOmAiemhuSAtLT5cbiAgPGF1aS1mb3JtLWl0ZW0gKm5nSWY9XCJkaXNwbGF5U2VydmljZU1lc2hcIj5cbiAgICA8bGFiZWwgYXVpRm9ybUl0ZW1MYWJlbD57eyAnc2VydmljZV9tZXNoJyB8IHRyYW5zbGF0ZSB9fTwvbGFiZWw+XG4gICAgPGF1aS1zZWxlY3RcbiAgICAgIGNsYXNzPVwibGFuZy1ub3Qtemg6IXR3LXctWzIzMHB4XVwiXG4gICAgICBhdWlGb3JtSXRlbUNvbnRyb2xcbiAgICAgIG5hbWU9XCJzZXJ2aWNlTWVzaFByb2plY3RcIlxuICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFNlcnZpY2VNZXNoXCJcbiAgICAgIFt0cmFja0ZuXT1cInNlcnZpY2VNZXNoVHJhY2tGblwiXG4gICAgICAodmFsdWVDaGFuZ2UpPVwic2VsZWN0U2VydmljZU1lc2goJGV2ZW50KVwiXG4gICAgICBbbG9hZGluZ109XCIhcHJvamVjdHMubGVuZ3RoICYmIHByb2plY3RzTG9hZGluZ1wiXG4gICAgPlxuICAgICAgPGF1aS1vcHRpb25cbiAgICAgICAgKm5nRm9yPVwibGV0IG1lc2ggb2YgcHJvamVjdFNlcnZpY2VNZXNoZXNcIlxuICAgICAgICBbdmFsdWVdPVwibWVzaFwiXG4gICAgICAgIFtsYWJlbF09XCJcbiAgICAgICAgICAobWVzaCB8IGFjbE5hbWUpICtcbiAgICAgICAgICAobWVzaC5zcGVjPy5pc3Rpb1ZlcnNpb25cbiAgICAgICAgICAgID8gJyAoSXN0aW8gJyArIG1lc2guc3BlYy5pc3Rpb1ZlcnNpb24gKyAnKSdcbiAgICAgICAgICAgIDogJycpXG4gICAgICAgIFwiXG4gICAgICA+XG4gICAgICAgIHt7IG1lc2ggfCBhY2xOYW1lIH19XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJtZXNoLnNwZWM/LmlzdGlvVmVyc2lvblwiPlxuICAgICAgICAgIChJc3RpbyB7eyBtZXNoLnNwZWMuaXN0aW9WZXJzaW9uIH19KVxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvYXVpLW9wdGlvbj5cbiAgICAgIDxhdWktb3B0aW9uLXBsYWNlaG9sZGVyPlxuICAgICAgICB7eyAnbm9fZGF0YScgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvYXVpLW9wdGlvbi1wbGFjZWhvbGRlcj5cbiAgICA8L2F1aS1zZWxlY3Q+XG4gIDwvYXVpLWZvcm0taXRlbT5cbiAgPGF1aS1mb3JtLWl0ZW0+XG4gICAgPGxhYmVsIGF1aUZvcm1JdGVtTGFiZWw+e3sgJ2NsdXN0ZXInIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cbiAgICA8YXVpLXNlbGVjdFxuICAgICAgW25nQ2xhc3NdPVwiZGlzcGxheVNlcnZpY2VNZXNoID8gJ2xhbmctbm90LXpoOiF0dy13LVsyMzBweF0nIDogJydcIlxuICAgICAgYXVpRm9ybUl0ZW1Db250cm9sXG4gICAgICBuYW1lPVwiY2x1c3RlclwiXG4gICAgICBbZmlsdGVyRm5dPVwiY2x1c3RlckZpbHRlckZuXCJcbiAgICAgIFtsb2FkaW5nXT1cIiFwcm9qZWN0cy5sZW5ndGggJiYgcHJvamVjdHNMb2FkaW5nXCJcbiAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRDbHVzdGVyXCJcbiAgICAgICh2YWx1ZUNoYW5nZSk9XCJzZWxlY3RDbHVzdGVyKCRldmVudClcIlxuICAgID5cbiAgICAgIDxhdWktb3B0aW9uXG4gICAgICAgIFt2YWx1ZV09XCInX19hbGwnXCJcbiAgICAgICAgW2xhYmVsXT1cIidhbGwnIHwgdHJhbnNsYXRlXCJcbiAgICAgID5cbiAgICAgICAge3sgJ2FsbCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvYXVpLW9wdGlvbj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNsdXN0ZXJOYW1lIG9mIGNsdXN0ZXJzXCI+XG4gICAgICAgIDxhdWktb3B0aW9uXG4gICAgICAgICAgKmRlY2xhcmU9XCJ7XG4gICAgICAgICAgICBuYW1lOiBjbHVzdGVyTmFtZSxcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiBjbHVzdGVyTmFtZSB8IHB1cmU6IGdldENsdXN0ZXJEaXNwbGF5TmFtZSQgfCBhc3luYyxcbiAgICAgICAgICB9IGFzIGNsdXN0ZXJcIlxuICAgICAgICAgIFt2YWx1ZV09XCJjbHVzdGVyTmFtZVwiXG4gICAgICAgICAgW2xhYmVsXT1cImNsdXN0ZXJMYWJlbFwiXG4gICAgICAgICAgW2xhYmVsQ29udGV4dF09XCJjbHVzdGVyXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiY2x1c3Rlck5hbWUgfCBwdXJlOiBjaGVja0NsdXN0ZXJFcnJvciQgfCBhc3luY1wiXG4gICAgICAgICAgW2F1aVRvb2x0aXBdPVwiJ2N1cnJlbnRfY2x1c3Rlcl9zdGF0dXNfYWJub3JtYWwnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICBbYXVpVG9vbHRpcERpc2FibGVkXT1cIlxuICAgICAgICAgICAgIShjbHVzdGVyTmFtZSB8IHB1cmU6IGNoZWNrQ2x1c3RlckVycm9yJCB8IGFzeW5jKVxuICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImNsdXN0ZXJMYWJlbDsgY29udGV4dDogY2x1c3RlclwiXG4gICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2F1aS1vcHRpb24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxhdWktb3B0aW9uLXBsYWNlaG9sZGVyPlxuICAgICAgICB7eyAnbm9fZGF0YScgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvYXVpLW9wdGlvbi1wbGFjZWhvbGRlcj5cbiAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAjY2x1c3RlckxhYmVsXG4gICAgICAgIGxldC1uYW1lPVwibmFtZVwiXG4gICAgICAgIGxldC1kaXNwbGF5TmFtZT1cImRpc3BsYXlOYW1lXCJcbiAgICAgID5cbiAgICAgICAge3sgbmFtZSB9fVxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGlzcGxheU5hbWVcIj4oe3sgZGlzcGxheU5hbWUgfX0pPC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvYXVpLXNlbGVjdD5cbiAgPC9hdWktZm9ybS1pdGVtPlxuPC9kaXY+XG48YWNsLXJlc291cmNlLWRhdGEtZ3JpZFxuICBbZGF0YV09XCJkaXNwbGF5ZWREYXRhIHx8IFtdXCJcbiAgW2ZpZWxkc109XCJmaWVsZHNcIlxuICBbY29udGV4dF09XCJjb250ZXh0XCJcbiAgKHNlbGVjdEl0ZW0pPVwib25TZWxlY3QoJGV2ZW50KVwiXG4gIFthY3Rpb25UZW1wbGF0ZVJlZl09XCJhY3Rpb25UZW1wbGF0ZVJlZlwiXG4gIFtzZWxlY3RlZFVpZF09XCJzZWxlY3RlZFVpZFwiXG4gIFtsb2FkaW5nXT1cImZvcmNlTG9hZGluZyB8fCAoIWRpc3BsYXllZERhdGE/Lmxlbmd0aCAmJiBsb2FkaW5nKVwiXG4gIChyZWxvYWQpPVwicmVsb2FkKClcIlxuPlxuICA8bmctY29udGFpbmVyIGFjbFJlc291cmNlR3JpZEhlYWRlcj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvbmctY29udGFpbmVyPlxuPC9hY2wtcmVzb3VyY2UtZGF0YS1ncmlkPlxuIl19
|
|
477
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2J1c2luZXNzL3Jlc291cmNlLXNlbGVjdC9leHBvcnRzL25hbWVzcGFjZS1saXN0L2NvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9idXNpbmVzcy9yZXNvdXJjZS1zZWxlY3QvZXhwb3J0cy9uYW1lc3BhY2UtbGlzdC90ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sV0FBVyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNyRCxPQUFPLEVBQ0wsYUFBYSxFQUNiLGFBQWEsRUFDYixRQUFRLEVBQ1IsRUFBRSxFQUNGLFVBQVUsRUFDVixRQUFRLEVBQ1IsR0FBRyxFQUNILFNBQVMsRUFDVCxTQUFTLEVBQ1QsU0FBUyxFQUNULEdBQUcsR0FDSixNQUFNLE1BQU0sQ0FBQztBQUVkLE9BQU8sRUFDTCxXQUFXLEVBRVgsY0FBYyxFQUVkLFVBQVUsRUFJVixtQkFBbUIsRUFDbkIsWUFBWSxHQUNiLE1BQU0sNkJBQTZCLENBQUM7QUFDckMsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDbEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckUsT0FBTyxFQUFFLGNBQWMsRUFBRSxrQkFBa0IsRUFB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UzsyQkFDRSxvQkFBb0IsbUJBR2IsdUJBQXVCLENBQUMsTUFBTTt3TkFPL0MsaUJBQWlCO2tCQURoQixLQUFLO1lBSU4sU0FBUztrQkFEUixLQUFLO1lBSU4sS0FBSztrQkFESixLQUFLO1lBSU4sa0JBQWtCO2tCQURqQixLQUFLO1lBSU4sYUFBYTtrQkFEWixNQUFNO1lBSVAsYUFBYTtrQkFEWixNQUFNOztrRkFuQkksc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VsZWN0RmlsdGVyT3B0aW9uIH0gZnJvbSAnQGFsYXVkYS91aSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG1lbW9pemUsIHBhcnRpdGlvbiwgdW5pcSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQge1xuICBSZXBsYXlTdWJqZWN0LFxuICBjb21iaW5lTGF0ZXN0LFxuICBmb3JrSm9pbixcbiAgb2YsXG4gIGNhdGNoRXJyb3IsXG4gIGZpbmFsaXplLFxuICBtYXAsXG4gIHN0YXJ0V2l0aCxcbiAgc3dpdGNoTWFwLFxuICB0YWtlVW50aWwsXG4gIHRhcCxcbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gIEFQSV9HQVRFV0FZLFxuICBDbHVzdGVyLFxuICBLOHNVdGlsU2VydmljZSxcbiAgUHJvamVjdCxcbiAgcHVibGlzaFJlZixcbiAgU2VydmljZU1lc2hHcm91cCxcbiAgS3ViZXJuZXRlc1Jlc291cmNlLFxuICBLdWJlcm5ldGVzUmVzb3VyY2VMaXN0LFxuICBnZXREb21haW5Bbm5vdGF0aW9uLFxuICBESVNQTEFZX05BTUUsXG59IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvcHVibGljLWFwaSc7XG5pbXBvcnQgeyBDb21tb25MYXlvdXRDb250ZXh0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3BhZ2Utc2NhZmZvbGQvcHVibGljLWFwaSc7XG5pbXBvcnQgeyBSZXNvdXJjZUxpc3RCYXNlIH0gZnJvbSAnLi4vLi4vYmFzZS1saXN0JztcbmltcG9ydCB7IFJlc291cmNlU2VsZWN0Q29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb250ZXh0LnNlcnZpY2UnO1xuaW1wb3J0IHsgZ2V0RGlzcGxheUFyY2gsIGdldFdvcmtzcGFjZVBhcmFtcyB9IGZyb20gJy4uLy4uL3V0aWxzJztcblxuaW1wb3J0IHsgSzhzQXBpU2VydmljZSB9IGZyb20gJy4vLi4vLi4vLi4vLi4vYXBpL3B1YmxpYy1hcGknO1xuaW1wb3J0IHtcbiAgQ2x1c3RlckFyY2gsXG4gIERpc2FibGVGbixcbiAgTmFtZXNwYWNlRGF0YUl0ZW0sXG4gIFNlbGVjdGVkTmFtZXNwYWNlVmFsdWUsXG59IGZyb20gJy4vLi4vLi4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhY2wtbmFtZXNwYWNlLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGVtcGxhdGUuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3N0eWxlLnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5hbWVzcGFjZUxpc3RDb21wb25lbnRcbiAgZXh0ZW5kcyBSZXNvdXJjZUxpc3RCYXNlXG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3lcbntcbiAgQElucHV0KClcbiAgYWN0aW9uVGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQElucHV0KClcbiAgZGlzYWJsZUZuOiBEaXNhYmxlRm47XG5cbiAgQElucHV0KClcbiAgdmFsdWU6IFNlbGVjdGVkTmFtZXNwYWNlVmFsdWU7XG5cbiAgQElucHV0KClcbiAgZGlzcGxheVNlcnZpY2VNZXNoID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpXG4gIGNsdXN0ZXJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBAT3V0cHV0KClcbiAgcHJvamVjdENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIHByb2plY3RzOiBQcm9qZWN0W10gPSBbXTtcblxuICBzZWxlY3RlZFByb2plY3Q6IFByb2plY3Q7XG4gIHNlbGVjdGVkQ2x1c3Rlcjogc3RyaW5nO1xuICBjbHVzdGVyczogc3RyaW5nW10gPSBbXTtcbiAgcHJvamVjdHNMb2FkaW5nID0gdHJ1ZTtcblxuICBzZXJ2aWNlTWVzaGVzOiBTZXJ2aWNlTWVzaEdyb3VwW10gPSBbXTtcbiAgcHJvamVjdFNlcnZpY2VNZXNoZXM6IFNlcnZpY2VNZXNoR3JvdXBbXSA9IFtdO1xuICBzZWxlY3RlZFNlcnZpY2VNZXNoOiBTZXJ2aWNlTWVzaEdyb3VwO1xuXG4gIHR5cGUgPSAnbmFtZXNwYWNlJztcblxuICBkaXNwbGF5ZWREYXRhOiBOYW1lc3BhY2VEYXRhSXRlbVtdID0gW107XG5cbiAgbmFtZXNwYWNlQ2x1c3Rlck1hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuXG4gIGdyaWRTdGF0ZU1hcDogUmVjb3JkPHN0cmluZywgUmV0dXJuVHlwZTxEaXNhYmxlRm4+PiA9IHt9O1xuXG4gIHNlbGVjdGVkVWlkOiBzdHJpbmc7XG5cbiAgbG9hZCQkID0gbmV3IFJlcGxheVN1YmplY3Q8eyBwcm9qZWN0OiBQcm9qZWN0OyBjbHVzdGVyOiBzdHJpbmcgfT4oMSk7XG5cbiAgc2VydmljZU1lc2hlcyQgPSB0aGlzLms4c1NlcnZpY2VcbiAgICAuZ2V0R2xvYmFsUmVzb3VyY2VMaXN0PFNlcnZpY2VNZXNoR3JvdXA+KHtcbiAgICAgIGRlZmluaXRpb246IHtcbiAgICAgICAgYXBpR3JvdXA6ICdhc20uYWxhdWRhLmlvJyxcbiAgICAgICAgYXBpVmVyc2lvbjogJ3YxYWxwaGExJyxcbiAgICAgICAgdHlwZTogJ3NlcnZpY2VtZXNoZ3JvdXBzJyxcbiAgICAgIH0sXG4gICAgICBuYW1lc3BhY2VkOiB0cnVlLFxuICAgIH0pXG4gICAgLnBpcGUobWFwKHJlcyA9PiByZXMuaXRlbXMpKTtcblxuICBjbHVzdGVycyQgPSB0aGlzLmh0dHBcbiAgICAuZ2V0PFxuICAgICAgS3ViZXJuZXRlc1Jlc291cmNlTGlzdDxDbHVzdGVyPlxuICAgID4oYCR7QVBJX0dBVEVXQVl9L2F1dGgvdjEvY2x1c3RlcnM/YXZhaWxhYmxlQ2x1c3RlcnM9ZmFsc2VgKVxuICAgIC5waXBlKFxuICAgICAgbWFwKHJlcyA9PiByZXM/Lml0ZW1zKSxcbiAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YoW10gYXMgQ2x1c3RlcltdKSksXG4gICAgICBwdWJsaXNoUmVmKCksXG4gICAgKTtcblxuICBnZXRDbHVzdGVyRGlzcGxheU5hbWUkID0gbWVtb2l6ZSgoY2x1c3Rlcjogc3RyaW5nKSA9PlxuICAgIHRoaXMuY2x1c3RlcnMkLnBpcGUoXG4gICAgICBtYXAoY2x1c3RlcnMgPT5cbiAgICAgICAgdGhpcy5rOHNVdGlsLmdldERpc3BsYXlOYW1lKFxuICAgICAgICAgIGNsdXN0ZXJzLmZpbmQoaSA9PiB0aGlzLms4c1V0aWwuZ2V0TmFtZShpKSA9PT0gY2x1c3RlciksXG4gICAgICAgICksXG4gICAgICApLFxuICAgICksXG4gICk7XG5cbiAgY2hlY2tDbHVzdGVyRXJyb3IkID0gbWVtb2l6ZSgoY2x1c3Rlcjogc3RyaW5nKSA9PlxuICAgIHRoaXMuY2x1c3RlcnMkLnBpcGUoXG4gICAgICBtYXAoY2x1c3RlcnMgPT4gdGhpcy5jaGVja0NsdXN0ZXJFcnJvcihjbHVzdGVycywgY2x1c3RlcikpLFxuICAgICksXG4gICk7XG5cbiAgbmFtZXNwYWNlcyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLmxvYWQkJC5waXBlKHN0YXJ0V2l0aCh7IHByb2plY3Q6IG51bGwsIGNsdXN0ZXI6ICcnIH0pKSxcbiAgICB0aGlzLnJlbG9hZCQkLnBpcGUoc3RhcnRXaXRoKG51bGwgYXMgdm9pZCkpLFxuICBdKS5waXBlKFxuICAgIHN3aXRjaE1hcCgoW3sgcHJvamVjdCwgY2x1c3RlciB9XSkgPT4ge1xuICAgICAgaWYgKCFwcm9qZWN0IHx8ICFjbHVzdGVyKSB7XG4gICAgICAgIHJldHVybiBvZihbXSBhcyBLdWJlcm5ldGVzUmVzb3VyY2VbXSk7XG4gICAgICB9XG4gICAgICBjb25zdCBjbHVzdGVycyA9IGNsdXN0ZXIgPT09ICdfX2FsbCcgPyB0aGlzLmNsdXN0ZXJzIDogW2NsdXN0ZXJdO1xuICAgICAgcmV0dXJuIGNsdXN0ZXJzLmxlbmd0aFxuICAgICAgICA/IGZvcmtKb2luKFxuICAgICAgICAgICAgY2x1c3RlcnMubWFwKGNsdXN0ZXIgPT5cbiAgICAgICAgICAgICAgdGhpcy5jb21tb25MYXlvdXRTZXJ2aWNlXG4gICAgICAgICAgICAgICAgLmdldENsdXN0ZXJOYW1lc3BhY2VzKHByb2plY3QubWV0YWRhdGEubmFtZSwgY2x1c3RlcilcbiAgICAgICAgICAgICAgICAucGlwZShjYXRjaEVycm9yKCgpID0+IG9mKFtdKSkpLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICApLnBpcGUoXG4gICAgICAgICAgICB0YXAobGlzdHMgPT4ge1xuICAgICAgICAgICAgICB0aGlzLm5hbWVzcGFjZUNsdXN0ZXJNYXAgPSBsaXN0cy5yZWR1Y2UoXG4gICAgICAgICAgICAgICAgKGFjYywgY3VyLCBpKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgLi4uYWNjLFxuICAgICAgICAgICAgICAgICAgLi4uY3VyLnJlZHVjZShcbiAgICAgICAgICAgICAgICAgICAgKHN1YkFjYywgc3ViQ3VycikgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgICAuLi5zdWJBY2MsXG4gICAgICAgICAgICAgICAgICAgICAgW3N1YkN1cnIubWV0YWRhdGEudWlkXTogY2x1c3RlcnNbaV0sXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICB7fSxcbiAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAge30sXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIG1hcCgobGlzdHM6IEt1YmVybmV0ZXNSZXNvdXJjZVtdW10pID0+IGxpc3RzLmZsYXQoKSksXG4gICAgICAgICAgKVxuICAgICAgICA6IG9mKFtdIGFzIEt1YmVybmV0ZXNSZXNvdXJjZVtdKTtcbiAgICB9KSxcbiAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCQpLFxuICAgIHB1Ymxpc2hSZWYoKSxcbiAgKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbW1vbkxheW91dFNlcnZpY2U6IENvbW1vbkxheW91dENvbnRleHRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgazhzU2VydmljZTogSzhzQXBpU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGh0dHA6IEh0dHBDbGllbnQsXG4gICAgY29udGV4dFNlcnZpY2U6IFJlc291cmNlU2VsZWN0Q29udGV4dFNlcnZpY2UsXG4gICAgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBrOHNVdGlsOiBLOHNVdGlsU2VydmljZSxcbiAgKSB7XG4gICAgc3VwZXIoY2RyLCBrOHNVdGlsLCBjb250ZXh0U2VydmljZSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICAvLyBGcm9tIGNhY2hlXG4gICAgdGhpcy5wcm9qZWN0cyA9IHRoaXMuY29udGV4dFNlcnZpY2UuY2FjaGVkUHJvamVjdFJlc291cmNlcztcbiAgICB0aGlzLnNlcnZpY2VNZXNoZXMgPSB0aGlzLmNvbnRleHRTZXJ2aWNlLmNhY2hlZFNlcnZpY2VNZXNoR3JvdXBSZXNvdXJjZXM7XG4gICAgaWYgKHRoaXMucHJvamVjdHMubGVuZ3RoKSB7XG4gICAgICB0aGlzLmluaXRQcm9qZWN0KHRoaXMucHJvamVjdHMpO1xuICAgIH1cblxuICAgIC8vIEdldCBsYXRlc3QgZGF0YSBpbiB0aGUgYmFja2dyb3VuZFxuICAgIGZvcmtKb2luKFtcbiAgICAgIHRoaXMuY29tbW9uTGF5b3V0U2VydmljZVxuICAgICAgICAuZ2V0UHJvamVjdHMoKVxuICAgICAgICAucGlwZShjYXRjaEVycm9yKCgpID0+IG9mKFtdIGFzIFByb2plY3RbXSkpKSxcbiAgICAgIHRoaXMuZGlzcGxheVNlcnZpY2VNZXNoXG4gICAgICAgID8gdGhpcy5zZXJ2aWNlTWVzaGVzJFxuICAgICAgICA6IG9mKFtdIGFzIFNlcnZpY2VNZXNoR3JvdXBbXSksXG4gICAgXSlcbiAgICAgIC5waXBlKFxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5wcm9qZWN0c0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkJCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChbcHJvamVjdHMsIHNlcnZpY2VNZXNoZXNdKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmRpc3BsYXlTZXJ2aWNlTWVzaCkge1xuICAgICAgICAgIHRoaXMuc2VydmljZU1lc2hlcyA9IHNlcnZpY2VNZXNoZXM7XG4gICAgICAgICAgdGhpcy5jb250ZXh0U2VydmljZS5jYWNoZWRTZXJ2aWNlTWVzaEdyb3VwUmVzb3VyY2VzID0gc2VydmljZU1lc2hlcztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnByb2plY3RzID0gcHJvamVjdHM7XG4gICAgICAgIGlmICghdGhpcy5jb250ZXh0U2VydmljZS5jYWNoZWRQcm9qZWN0UmVzb3VyY2VzPy5sZW5ndGgpIHtcbiAgICAgICAgICB0aGlzLmluaXRQcm9qZWN0KHByb2plY3RzKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNvbnRleHRTZXJ2aWNlLmNhY2hlZFByb2plY3RSZXNvdXJjZXMgPSB0aGlzLnByb2plY3RzO1xuICAgICAgfSk7XG5cbiAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLmNsdXN0ZXJzJCwgdGhpcy5uYW1lc3BhY2VzJF0pLnN1YnNjcmliZShcbiAgICAgIChbY2x1c3RlcnMsIGRhdGFdKSA9PiB7XG4gICAgICAgIGNvbnN0IGlzTXVsdGlBcmNoID1cbiAgICAgICAgICB1bmlxKGNsdXN0ZXJzLm1hcChjID0+IHRoaXMuazhzVXRpbC5nZXRMYWJlbChjLCAnYXJjaCcpKSkubGVuZ3RoID4gMTtcbiAgICAgICAgdGhpcy5kaXNwbGF5ZWREYXRhID0gdGhpcy5tYXBSZXNvdXJjZShkYXRhLCB7XG4gICAgICAgICAgY2x1c3RlcnMsXG4gICAgICAgICAgaXNNdWx0aUFyY2gsXG4gICAgICAgIH0pLmZpbHRlcihucyA9PiB0aGlzLmNvbnRleHQgPT09ICdwYWdlJyB8fCAhbnMuc3RhdGU/LmRpc2FibGVkKTtcbiAgICAgICAgdGhpcy5zZXRTZWxlY3RlZE5hbWVzcGFjZSh0aGlzLmRpc3BsYXllZERhdGEpO1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZFVpZCkge1xuICAgICAgICAgIHRoaXMuZGlzcGxheWVkRGF0YSA9IHRoaXMuZ2V0U29ydGVkTmFtZXNwYWNlKFxuICAgICAgICAgICAgdGhpcy5kaXNwbGF5ZWREYXRhLFxuICAgICAgICAgICAgdGhpcy52YWx1ZS5uYW1lLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZm9yY2VMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc3RvcmVOYW1lc3BhY2VzKCk7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSxcbiAgICApO1xuICB9XG5cbiAgZ2V0U29ydGVkTmFtZXNwYWNlKHJhd0RhdGE6IE5hbWVzcGFjZURhdGFJdGVtW10sIG5hbWVzcGFjZT86IHN0cmluZykge1xuICAgIGlmICghbmFtZXNwYWNlKSB7XG4gICAgICByZXR1cm4gcmF3RGF0YTtcbiAgICB9XG4gICAgY29uc3QgW3NlbGVjdGVkLCBvdGhlcnNdID0gcGFydGl0aW9uKFxuICAgICAgdGhpcy5kaXNwbGF5ZWREYXRhLFxuICAgICAgaXRlbSA9PiBpdGVtLm5hbWUgPT09IG5hbWVzcGFjZSxcbiAgICApO1xuICAgIHJldHVybiBbLi4uc2VsZWN0ZWQsIC4uLm90aGVyc107XG4gIH1cblxuICBzdG9yZU5hbWVzcGFjZXMoKSB7XG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkUHJvamVjdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5zZWxlY3RlZENsdXN0ZXIgPT09ICdfX2FsbCcpIHtcbiAgICAgIGZvciAoY29uc3QgY2x1c3RlciBvZiB0aGlzLmNsdXN0ZXJzKSB7XG4gICAgICAgIHRoaXMuY29udGV4dFNlcnZpY2Uuc3RvcmVOYW1lc3BhY2VzKFxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRQcm9qZWN0Lm1ldGFkYXRhLm5hbWUsXG4gICAgICAgICAgY2x1c3RlcixcbiAgICAgICAgICB0aGlzLmRpc3BsYXllZERhdGEuZmlsdGVyKGl0ZW0gPT4gaXRlbS5jbHVzdGVyID09PSBjbHVzdGVyKSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5jb250ZXh0U2VydmljZS5zdG9yZU5hbWVzcGFjZXMoXG4gICAgICB0aGlzLnNlbGVjdGVkUHJvamVjdC5tZXRhZGF0YS5uYW1lLFxuICAgICAgdGhpcy5zZWxlY3RlZENsdXN0ZXIsXG4gICAgICB0aGlzLmRpc3BsYXllZERhdGEsXG4gICAgKTtcbiAgfVxuXG4gIHByb2plY3RGaWx0ZXJGbiA9IChrZXl3b3JkID0gJycsIG9wdGlvbjogU2VsZWN0RmlsdGVyT3B0aW9uPFByb2plY3Q+KSA9PiB7XG4gICAgY29uc3QgayA9IGtleXdvcmQudG9Mb3dlckNhc2UoKTtcbiAgICByZXR1cm4gKFxuICAgICAgb3B0aW9uLnZhbHVlLm1ldGFkYXRhLm5hbWUuaW5jbHVkZXMoaykgfHxcbiAgICAgIGdldERvbWFpbkFubm90YXRpb24oRElTUExBWV9OQU1FLCBvcHRpb24udmFsdWUpXG4gICAgICAgID8udG9Mb3dlckNhc2UoKVxuICAgICAgICA/LmluY2x1ZGVzKGspXG4gICAgKTtcbiAgfTtcblxuICBjbHVzdGVyRmlsdGVyRm4gPSAoa2V5d29yZCA9ICcnLCBvcHRpb246IFNlbGVjdEZpbHRlck9wdGlvbjxzdHJpbmc+KSA9PiB7XG4gICAgY29uc3QgayA9IGtleXdvcmQudG9Mb3dlckNhc2UoKTtcbiAgICBpZiAob3B0aW9uLnZhbHVlID09PSAnX19hbGwnKSB7XG4gICAgICByZXR1cm4gKG9wdGlvbi5sYWJlbCBhcyBzdHJpbmcpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoayk7XG4gICAgfVxuXG4gICAgY29uc3QgeyBuYW1lLCBkaXNwbGF5TmFtZSB9ID0gb3B0aW9uLmxhYmVsQ29udGV4dCBhcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcmV0dXJuIG5hbWUuaW5jbHVkZXMoaykgfHwgZGlzcGxheU5hbWU/LnRvTG93ZXJDYXNlKCk/LmluY2x1ZGVzKGspO1xuICB9O1xuXG4gIHNlcnZpY2VNZXNoRmlsdGVyRm4gPSAoXG4gICAga2V5d29yZCA9ICcnLFxuICAgIG9wdGlvbjogU2VsZWN0RmlsdGVyT3B0aW9uPFNlcnZpY2VNZXNoR3JvdXA+LFxuICApID0+IHtcbiAgICBjb25zdCBrID0ga2V5d29yZC50b0xvd2VyQ2FzZSgpO1xuICAgIGNvbnN0IHZlcnNpb24gPSBvcHRpb24udmFsdWUuc3BlYz8uaXN0aW9WZXJzaW9uXG4gICAgICA/IGBJc3RpbyAke29wdGlvbi52YWx1ZS5zcGVjLmlzdGlvVmVyc2lvbn1gXG4gICAgICA6ICcnO1xuICAgIHJldHVybiAoXG4gICAgICBvcHRpb24udmFsdWUubWV0YWRhdGEubmFtZS5pbmNsdWRlcyhrKSB8fFxuICAgICAgdmVyc2lvbi50b0xvd2VyQ2FzZSgpPy5pbmNsdWRlcyhrKVxuICAgICk7XG4gIH07XG5cbiAgcHJvamVjdFRyYWNrRm4gPSAocHJvamVjdDogUHJvamVjdCkgPT4gcHJvamVjdD8ubWV0YWRhdGEubmFtZTtcblxuICBzZXJ2aWNlTWVzaFRyYWNrRm4gPSAobWVzaDogU2VydmljZU1lc2hHcm91cCkgPT4gbWVzaD8ubWV0YWRhdGEubmFtZTtcblxuICBwcml2YXRlIGluaXRQcm9qZWN0KHByb2plY3RzOiBQcm9qZWN0W10pIHtcbiAgICB0aGlzLnNlbGVjdFByb2plY3QoXG4gICAgICAocHJvamVjdHMgfHwgW10pLmxlbmd0aFxuICAgICAgICA/IHByb2plY3RzLmZpbmQoaXRlbSA9PiBpdGVtLm1ldGFkYXRhLm5hbWUgPT09IHRoaXMudmFsdWU/LnByb2plY3QpIHx8XG4gICAgICAgICAgICBwcm9qZWN0c1swXVxuICAgICAgICA6IG51bGwsXG4gICAgICB0cnVlLFxuICAgICk7XG4gICAgdGhpcy5sb2FkLmVtaXQoe1xuICAgICAgcHJvamVjdDogcHJvamVjdHMubGVuZ3RoLFxuICAgICAgY2x1c3RlcjogdW5pcShcbiAgICAgICAgcHJvamVjdHMucmVkdWNlKFxuICAgICAgICAgIChhY2MsIGN1cikgPT4gWy4uLmFjYywgLi4uKGN1ci5zcGVjLmNsdXN0ZXJzIHx8IFtdKS5tYXAoYyA9PiBjLm5hbWUpXSxcbiAgICAgICAgICBbXSxcbiAgICAgICAgKSxcbiAgICAgICkubGVuZ3RoLFxuICAgIH0pO1xuICB9XG5cbiAgc2VsZWN0U2VydmljZU1lc2goc2VydmljZU1lc2g6IFNlcnZpY2VNZXNoR3JvdXApIHtcbiAgICB0aGlzLnNlbGVjdGVkU2VydmljZU1lc2ggPSBzZXJ2aWNlTWVzaDtcbiAgICB0aGlzLmNsdXN0ZXJzID0gKHRoaXMuc2VsZWN0ZWRQcm9qZWN0LnNwZWMuY2x1c3RlcnMgfHwgW10pXG4gICAgICAubWFwKGMgPT4gYy5uYW1lKVxuICAgICAgLmZpbHRlcihjbHVzdGVyID0+XG4gICAgICAgIHRoaXMuc2VydmljZU1lc2hlc1xuICAgICAgICAgIC5maW5kKFxuICAgICAgICAgICAgbWVzaCA9PlxuICAgICAgICAgICAgICB0aGlzLms4c1V0aWwuZ2V0TmFtZShtZXNoKSA9PT0gdGhpcy5rOHNVdGlsLmdldE5hbWUoc2VydmljZU1lc2gpLFxuICAgICAgICAgIClcbiAgICAgICAgICAuc3BlYy5jbHVzdGVycy5pbmNsdWRlcyhjbHVzdGVyKSxcbiAgICAgICk7XG4gICAgdGhpcy5zZWxlY3RDbHVzdGVyKCdfX2FsbCcpO1xuICB9XG5cbiAgc2VsZWN0UHJvamVjdChwcm9qZWN0OiBQcm9qZWN0LCBpbml0aWFsID0gZmFsc2UpIHtcbiAgICB0aGlzLnByb2plY3RDaGFuZ2UuZW1pdChwcm9qZWN0Py5tZXRhZGF0YS5uYW1lKTtcbiAgICB0aGlzLnNlbGVjdGVkUHJvamVjdCA9IHByb2plY3Q7XG4gICAgdGhpcy5jbHVzdGVycyA9IHByb2plY3RcbiAgICAgID8gKHByb2plY3Quc3BlYy5jbHVzdGVycyB8fCBbXSkubWFwKGMgPT4gYy5uYW1lKVxuICAgICAgOiBbXTtcbiAgICBpZiAodGhpcy5kaXNwbGF5U2VydmljZU1lc2gpIHtcbiAgICAgIHRoaXMucHJvamVjdFNlcnZpY2VNZXNoZXMgPSB0aGlzLnNlcnZpY2VNZXNoZXMuZmlsdGVyKG1lc2ggPT5cbiAgICAgICAgbWVzaC5zcGVjLmNsdXN0ZXJzLnNvbWUoY2x1c3RlciA9PiB0aGlzLmNsdXN0ZXJzLmluY2x1ZGVzKGNsdXN0ZXIpKSxcbiAgICAgICk7XG4gICAgICBpZiAodGhpcy5wcm9qZWN0U2VydmljZU1lc2hlcz8ubGVuZ3RoKSB7XG4gICAgICAgIGxldCBtZXNoTmFtZSA9IHRoaXMudmFsdWU/LnNlcnZpY2VtZXNoO1xuXG4gICAgICAgIGlmICghbWVzaE5hbWUpIHtcbiAgICAgICAgICB0aGlzLmF1dGguZ2V0QWNjb3VudEluZm8oKS5zdWJzY3JpYmUoKHsgZW1haWwgfSkgPT4ge1xuICAgICAgICAgICAgbWVzaE5hbWUgPSBnZXRXb3Jrc3BhY2VQYXJhbXMoZW1haWwpPy5zZXJ2aWNlbWVzaDtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkU2VydmljZU1lc2ggPVxuICAgICAgICAgIHRoaXMucHJvamVjdFNlcnZpY2VNZXNoZXMuZmluZChcbiAgICAgICAgICAgIG1lc2ggPT4gdGhpcy5rOHNVdGlsLmdldE5hbWUobWVzaCkgPT09IG1lc2hOYW1lLFxuICAgICAgICAgICkgfHwgdGhpcy5wcm9qZWN0U2VydmljZU1lc2hlc1swXTtcbiAgICAgICAgdGhpcy5zZWxlY3RTZXJ2aWNlTWVzaChzZWxlY3RlZFNlcnZpY2VNZXNoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRTZXJ2aWNlTWVzaCA9IG51bGw7XG4gICAgICAgIHRoaXMuY2x1c3RlcnMgPSBbXTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5zZWxlY3RDbHVzdGVyKCdfX2FsbCcsIGluaXRpYWwpO1xuICB9XG5cbiAgc2VsZWN0Q2x1c3RlcihjbHVzdGVyTmFtZTogc3RyaW5nLCBpbml0aWFsID0gZmFsc2UpIHtcbiAgICB0aGlzLnNlbGVjdGVkQ2x1c3RlciA9IGNsdXN0ZXJOYW1lO1xuICAgIGNvbnN0IGRpc3BsYXllZERhdGEgPVxuICAgICAgdGhpcy5jb250ZXh0U2VydmljZS5nZXRDYWNoZWROYW1lc3BhY2VzKFxuICAgICAgICB0aGlzLnNlbGVjdGVkUHJvamVjdD8ubWV0YWRhdGEubmFtZSxcbiAgICAgICAgdGhpcy5zZWxlY3RlZENsdXN0ZXIsXG4gICAgICApIHx8IFtdO1xuICAgIHRoaXMuZGlzcGxheWVkRGF0YSA9IHRoaXMuZ2V0U29ydGVkTmFtZXNwYWNlKFxuICAgICAgZGlzcGxheWVkRGF0YSxcbiAgICAgIGluaXRpYWwgPyB0aGlzLnZhbHVlPy5uYW1lIDogbnVsbCxcbiAgICApO1xuICAgIHRoaXMuc2V0U2VsZWN0ZWROYW1lc3BhY2UodGhpcy5kaXNwbGF5ZWREYXRhKTtcblxuICAgIHRoaXMuY2x1c3RlckNoYW5nZS5lbWl0KFxuICAgICAgdGhpcy5zZWxlY3RlZENsdXN0ZXIgPT09ICdfX2FsbCcgPyBudWxsIDogY2x1c3Rlck5hbWUsXG4gICAgKTtcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMubG9hZCQkLm5leHQoe1xuICAgICAgcHJvamVjdDogdGhpcy5zZWxlY3RlZFByb2plY3QsXG4gICAgICBjbHVzdGVyOiBjbHVzdGVyTmFtZSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0U2VsZWN0ZWROYW1lc3BhY2UoZGF0YTogTmFtZXNwYWNlRGF0YUl0ZW1bXSkge1xuICAgIGNvbnN0IHNlbGVjdGVkTmFtZXNwYWNlID0gdGhpcy52YWx1ZVxuICAgICAgPyBkYXRhLmZpbmQoXG4gICAgICAgICAgaXRlbSA9PlxuICAgICAgICAgICAgaXRlbS5uYW1lID09PSB0aGlzLnZhbHVlLm5hbWUgJiZcbiAgICAgICAgICAgIHRoaXMudmFsdWUuY2x1c3RlciA9PT0gaXRlbS5jbHVzdGVyLFxuICAgICAgICApXG4gICAgICA6IG51bGw7XG4gICAgdGhpcy5zZWxlY3RlZFVpZCA9IHNlbGVjdGVkTmFtZXNwYWNlXG4gICAgICA/IHNlbGVjdGVkTmFtZXNwYWNlLl9fb3JpZ2luLm1ldGFkYXRhLnVpZFxuICAgICAgOiBudWxsO1xuICB9XG5cbiAgbWFwUmVzb3VyY2UgPSAoXG4gICAgbGlzdDogS3ViZXJuZXRlc1Jlc291cmNlW10sXG4gICAge1xuICAgICAgaXNNdWx0aUFyY2gsXG4gICAgICBjbHVzdGVycyxcbiAgICB9OiB7XG4gICAgICBpc011bHRpQXJjaDogYm9vbGVhbjtcbiAgICAgIGNsdXN0ZXJzOiBDbHVzdGVyW107XG4gICAgfSxcbiAgKTogTmFtZXNwYWNlRGF0YUl0ZW1bXSA9PlxuICAgIGxpc3QubWFwKGl0ZW0gPT4ge1xuICAgICAgY29uc3QgY2x1c3RlciA9IHRoaXMubmFtZXNwYWNlQ2x1c3Rlck1hcFtpdGVtLm1ldGFkYXRhLnVpZF07XG4gICAgICBjb25zdCBpdGVtRGlzYWJsZWQgPSB0aGlzLmRpc2FibGVGbiA/IHRoaXMuZGlzYWJsZUZuKGl0ZW0pIDogbnVsbDtcbiAgICAgIGNvbnN0IGNhY2hlZEl0ZW0gPSB0aGlzLmRpc3BsYXllZERhdGEuZmluZChcbiAgICAgICAgbnMgPT4gbnMuX19vcmlnaW4ubWV0YWRhdGEudWlkID09PSBpdGVtLm1ldGFkYXRhLnVpZCxcbiAgICAgICk7XG4gICAgICBjb25zdCBzZXJ2aWNlbWVzaCA9IHRoaXMuc2VydmljZU1lc2hlcy5maW5kKGl0ZW0gPT5cbiAgICAgICAgaXRlbS5zcGVjLmNsdXN0ZXJzLmluY2x1ZGVzKGNhY2hlZEl0ZW0/LmNsdXN0ZXIgfHwgY2x1c3RlciksXG4gICAgICApO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbmFtZTogdGhpcy5rOHNVdGlsLmdldE5hbWUoaXRlbSksXG4gICAgICAgIGRpc3BsYXlOYW1lOiB0aGlzLms4c1V0aWwuZ2V0RGlzcGxheU5hbWUoaXRlbSksXG4gICAgICAgIGNsdXN0ZXI6IGNhY2hlZEl0ZW0/LmNsdXN0ZXIgfHwgY2x1c3RlcixcbiAgICAgICAgY2x1c3RlckRpc3BsYXlOYW1lOlxuICAgICAgICAgIGNhY2hlZEl0ZW0/LmNsdXN0ZXJEaXNwbGF5TmFtZSB8fFxuICAgICAgICAgIHRoaXMuazhzVXRpbC5nZXREaXNwbGF5TmFtZShcbiAgICAgICAgICAgIGNsdXN0ZXJzLmZpbmQoYyA9PiBjLm1ldGFkYXRhLm5hbWUgPT09IGNsdXN0ZXIpLFxuICAgICAgICAgICksXG4gICAgICAgIGNsdXN0ZXJBcmNoOlxuICAgICAgICAgIGNhY2hlZEl0ZW0/LmNsdXN0ZXJBcmNoIHx8IGlzTXVsdGlBcmNoXG4gICAgICAgICAgICA/IHRoaXMuZ2V0Q2x1c3RlckFyY2goXG4gICAgICAgICAgICAgICAgY2x1c3RlcnMuZmluZChjID0+IGMubWV0YWRhdGEubmFtZSA9PT0gY2x1c3RlciksXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIDogbnVsbCxcbiAgICAgICAgc2VydmljZU1lc2hOYW1lOiBzZXJ2aWNlbWVzaCA/IHRoaXMuazhzVXRpbC5nZXROYW1lKHNlcnZpY2VtZXNoKSA6ICcnLFxuICAgICAgICBzZXJ2aWNlTWVzaENsdXN0ZXJzOiBzZXJ2aWNlbWVzaCA/IHNlcnZpY2VtZXNoLnNwZWMuY2x1c3RlcnMgOiBbXSxcbiAgICAgICAgc2VydmljZU1lc2hJc3Rpb1ZlcnNpb246IHNlcnZpY2VtZXNoXG4gICAgICAgICAgPyBzZXJ2aWNlbWVzaC5zcGVjLmlzdGlvVmVyc2lvblxuICAgICAgICAgIDogJycsXG4gICAgICAgIGFkbWluOiBjYWNoZWRJdGVtPy5hZG1pbiB8fCAnLScsXG4gICAgICAgIHRpbWVzdGFtcDogdGhpcy5rOHNVdGlsLmdldENyZWF0aW9uVGltZXN0YW1wKGl0ZW0pLFxuICAgICAgICBzdGF0ZToge1xuICAgICAgICAgIGRpc2FibGVkOlxuICAgICAgICAgICAgdGhpcy5ncmlkU3RhdGVNYXBbY2x1c3Rlcl0/LmRpc2FibGVkIHx8XG4gICAgICAgICAgICBpdGVtRGlzYWJsZWQ/LmRpc2FibGVkIHx8XG4gICAgICAgICAgICB0aGlzLmNoZWNrQ2x1c3RlckVycm9yKGNsdXN0ZXJzLCBjYWNoZWRJdGVtPy5jbHVzdGVyIHx8IGNsdXN0ZXIpIHx8XG4gICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICB0b29sdGlwOiB0aGlzLmdyaWRTdGF0ZU1hcFtjbHVzdGVyXT8uZGlzYWJsZWRcbiAgICAgICAgICAgID8gdGhpcy5ncmlkU3RhdGVNYXBbY2x1c3Rlcl0/LnRvb2x0aXAgfHwgJydcbiAgICAgICAgICAgIDogaXRlbURpc2FibGVkPy50b29sdGlwLFxuICAgICAgICB9LFxuICAgICAgICBfX29yaWdpbjogaXRlbSxcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgcHJpdmF0ZSBnZXRDbHVzdGVyQXJjaChjbHVzdGVyOiBDbHVzdGVyKSB7XG4gICAgcmV0dXJuIGdldERpc3BsYXlBcmNoKFxuICAgICAgdGhpcy5rOHNVdGlsLmdldExhYmVsKGNsdXN0ZXIsICdhcmNoJyksXG4gICAgKSBhcyBDbHVzdGVyQXJjaDtcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tDbHVzdGVyRXJyb3IoY2x1c3RlcnM6IENsdXN0ZXJbXSwgY2x1c3Rlcjogc3RyaW5nKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIGNsdXN0ZXJzXG4gICAgICAgIC5maW5kKGkgPT4gdGhpcy5rOHNVdGlsLmdldE5hbWUoaSkgPT09IGNsdXN0ZXIpXG4gICAgICAgID8uc3RhdHVzLmNvbmRpdGlvbnMuZmluZChjID0+IGMudHlwZSA9PT0gJ05vZGVOb3RSZWFkeScpPy5zdGF0dXMgIT09XG4gICAgICAnRmFsc2UnXG4gICAgKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZpbHRlclwiPlxuICA8YXVpLWZvcm0taXRlbT5cbiAgICA8bGFiZWwgYXVpRm9ybUl0ZW1MYWJlbD57eyAncHJvamVjdCcgfCB0cmFuc2xhdGUgfX08L2xhYmVsPlxuICAgIDxhdWktc2VsZWN0XG4gICAgICBbbmdDbGFzc109XCJkaXNwbGF5U2VydmljZU1lc2ggPyAnbGFuZy1ub3Qtemg6IXR3LXctWzIzMHB4XScgOiAnJ1wiXG4gICAgICBhdWlGb3JtSXRlbUNvbnRyb2xcbiAgICAgIG5hbWU9XCJwcm9qZWN0XCJcbiAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRQcm9qZWN0XCJcbiAgICAgIFtmaWx0ZXJGbl09XCJwcm9qZWN0RmlsdGVyRm5cIlxuICAgICAgW3RyYWNrRm5dPVwicHJvamVjdFRyYWNrRm5cIlxuICAgICAgKHZhbHVlQ2hhbmdlKT1cInNlbGVjdFByb2plY3QoJGV2ZW50KVwiXG4gICAgICBbbG9hZGluZ109XCIhcHJvamVjdHMubGVuZ3RoICYmIHByb2plY3RzTG9hZGluZ1wiXG4gICAgPlxuICAgICAgPGF1aS1vcHRpb25cbiAgICAgICAgKm5nRm9yPVwibGV0IHByb2plY3Qgb2YgcHJvamVjdHNcIlxuICAgICAgICBbdmFsdWVdPVwicHJvamVjdFwiXG4gICAgICAgIFtsYWJlbF09XCJwcm9qZWN0IHwgYWNsVW5pb25EaXNwbGF5TmFtZVwiXG4gICAgICA+XG4gICAgICAgIHt7IHByb2plY3QgfCBhY2xVbmlvbkRpc3BsYXlOYW1lIH19XG4gICAgICA8L2F1aS1vcHRpb24+XG4gICAgICA8YXVpLW9wdGlvbi1wbGFjZWhvbGRlcj5cbiAgICAgICAge3sgJ25vX2RhdGEnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2F1aS1vcHRpb24tcGxhY2Vob2xkZXI+XG4gICAgPC9hdWktc2VsZWN0PlxuICA8L2F1aS1mb3JtLWl0ZW0+XG4gIDwhLS0gQVNNIOmAieaLqee9keagvOi/h+a7pOmbhue+pOmAiemhuSAtLT5cbiAgPGF1aS1mb3JtLWl0ZW0gKm5nSWY9XCJkaXNwbGF5U2VydmljZU1lc2hcIj5cbiAgICA8bGFiZWwgYXVpRm9ybUl0ZW1MYWJlbD57eyAnc2VydmljZV9tZXNoJyB8IHRyYW5zbGF0ZSB9fTwvbGFiZWw+XG4gICAgPGF1aS1zZWxlY3RcbiAgICAgIGNsYXNzPVwibGFuZy1ub3Qtemg6IXR3LXctWzIzMHB4XVwiXG4gICAgICBhdWlGb3JtSXRlbUNvbnRyb2xcbiAgICAgIG5hbWU9XCJzZXJ2aWNlTWVzaFByb2plY3RcIlxuICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFNlcnZpY2VNZXNoXCJcbiAgICAgIFt0cmFja0ZuXT1cInNlcnZpY2VNZXNoVHJhY2tGblwiXG4gICAgICAodmFsdWVDaGFuZ2UpPVwic2VsZWN0U2VydmljZU1lc2goJGV2ZW50KVwiXG4gICAgICBbbG9hZGluZ109XCIhcHJvamVjdHMubGVuZ3RoICYmIHByb2plY3RzTG9hZGluZ1wiXG4gICAgPlxuICAgICAgPGF1aS1vcHRpb25cbiAgICAgICAgKm5nRm9yPVwibGV0IG1lc2ggb2YgcHJvamVjdFNlcnZpY2VNZXNoZXNcIlxuICAgICAgICBbdmFsdWVdPVwibWVzaFwiXG4gICAgICAgIFtsYWJlbF09XCJcbiAgICAgICAgICAobWVzaCB8IGFjbE5hbWUpICtcbiAgICAgICAgICAobWVzaC5zcGVjPy5pc3Rpb1ZlcnNpb25cbiAgICAgICAgICAgID8gJyAoSXN0aW8gJyArIG1lc2guc3BlYy5pc3Rpb1ZlcnNpb24gKyAnKSdcbiAgICAgICAgICAgIDogJycpXG4gICAgICAgIFwiXG4gICAgICA+XG4gICAgICAgIHt7IG1lc2ggfCBhY2xOYW1lIH19XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJtZXNoLnNwZWM/LmlzdGlvVmVyc2lvblwiPlxuICAgICAgICAgIChJc3RpbyB7eyBtZXNoLnNwZWMuaXN0aW9WZXJzaW9uIH19KVxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvYXVpLW9wdGlvbj5cbiAgICAgIDxhdWktb3B0aW9uLXBsYWNlaG9sZGVyPlxuICAgICAgICB7eyAnbm9fZGF0YScgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvYXVpLW9wdGlvbi1wbGFjZWhvbGRlcj5cbiAgICA8L2F1aS1zZWxlY3Q+XG4gIDwvYXVpLWZvcm0taXRlbT5cbiAgPGF1aS1mb3JtLWl0ZW0+XG4gICAgPGxhYmVsIGF1aUZvcm1JdGVtTGFiZWw+e3sgJ2NsdXN0ZXInIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cbiAgICA8YXVpLXNlbGVjdFxuICAgICAgW25nQ2xhc3NdPVwiZGlzcGxheVNlcnZpY2VNZXNoID8gJ2xhbmctbm90LXpoOiF0dy13LVsyMzBweF0nIDogJydcIlxuICAgICAgYXVpRm9ybUl0ZW1Db250cm9sXG4gICAgICBuYW1lPVwiY2x1c3RlclwiXG4gICAgICBbZmlsdGVyRm5dPVwiY2x1c3RlckZpbHRlckZuXCJcbiAgICAgIFtsb2FkaW5nXT1cIiFwcm9qZWN0cy5sZW5ndGggJiYgcHJvamVjdHNMb2FkaW5nXCJcbiAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRDbHVzdGVyXCJcbiAgICAgICh2YWx1ZUNoYW5nZSk9XCJzZWxlY3RDbHVzdGVyKCRldmVudClcIlxuICAgID5cbiAgICAgIDxhdWktb3B0aW9uXG4gICAgICAgIFt2YWx1ZV09XCInX19hbGwnXCJcbiAgICAgICAgW2xhYmVsXT1cIidhbGwnIHwgdHJhbnNsYXRlXCJcbiAgICAgID5cbiAgICAgICAge3sgJ2FsbCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvYXVpLW9wdGlvbj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNsdXN0ZXJOYW1lIG9mIGNsdXN0ZXJzXCI+XG4gICAgICAgIDxhdWktb3B0aW9uXG4gICAgICAgICAgKmRlY2xhcmU9XCJ7XG4gICAgICAgICAgICBuYW1lOiBjbHVzdGVyTmFtZSxcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiBjbHVzdGVyTmFtZSB8IHB1cmU6IGdldENsdXN0ZXJEaXNwbGF5TmFtZSQgfCBhc3luYyxcbiAgICAgICAgICB9IGFzIGNsdXN0ZXJcIlxuICAgICAgICAgIFt2YWx1ZV09XCJjbHVzdGVyTmFtZVwiXG4gICAgICAgICAgW2xhYmVsXT1cImNsdXN0ZXJMYWJlbFwiXG4gICAgICAgICAgW2xhYmVsQ29udGV4dF09XCJjbHVzdGVyXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiY2x1c3Rlck5hbWUgfCBwdXJlOiBjaGVja0NsdXN0ZXJFcnJvciQgfCBhc3luY1wiXG4gICAgICAgICAgW2F1aVRvb2x0aXBdPVwiJ2N1cnJlbnRfY2x1c3Rlcl9zdGF0dXNfYWJub3JtYWwnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICBbYXVpVG9vbHRpcERpc2FibGVkXT1cIlxuICAgICAgICAgICAgIShjbHVzdGVyTmFtZSB8IHB1cmU6IGNoZWNrQ2x1c3RlckVycm9yJCB8IGFzeW5jKVxuICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImNsdXN0ZXJMYWJlbDsgY29udGV4dDogY2x1c3RlclwiXG4gICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2F1aS1vcHRpb24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxhdWktb3B0aW9uLXBsYWNlaG9sZGVyPlxuICAgICAgICB7eyAnbm9fZGF0YScgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvYXVpLW9wdGlvbi1wbGFjZWhvbGRlcj5cbiAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAjY2x1c3RlckxhYmVsXG4gICAgICAgIGxldC1uYW1lPVwibmFtZVwiXG4gICAgICAgIGxldC1kaXNwbGF5TmFtZT1cImRpc3BsYXlOYW1lXCJcbiAgICAgID5cbiAgICAgICAge3sgbmFtZSB9fVxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGlzcGxheU5hbWVcIj4oe3sgZGlzcGxheU5hbWUgfX0pPC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvYXVpLXNlbGVjdD5cbiAgPC9hdWktZm9ybS1pdGVtPlxuPC9kaXY+XG48YWNsLXJlc291cmNlLWRhdGEtZ3JpZFxuICBbZGF0YV09XCJkaXNwbGF5ZWREYXRhIHx8IFtdXCJcbiAgW2ZpZWxkc109XCJmaWVsZHNcIlxuICBbY29udGV4dF09XCJjb250ZXh0XCJcbiAgKHNlbGVjdEl0ZW0pPVwib25TZWxlY3QoJGV2ZW50KVwiXG4gIFthY3Rpb25UZW1wbGF0ZVJlZl09XCJhY3Rpb25UZW1wbGF0ZVJlZlwiXG4gIFtzZWxlY3RlZFVpZF09XCJzZWxlY3RlZFVpZFwiXG4gIFtsb2FkaW5nXT1cImZvcmNlTG9hZGluZyB8fCAoIWRpc3BsYXllZERhdGE/Lmxlbmd0aCAmJiBsb2FkaW5nKVwiXG4gIChyZWxvYWQpPVwicmVsb2FkKClcIlxuPlxuICA8bmctY29udGFpbmVyIGFjbFJlc291cmNlR3JpZEhlYWRlcj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvbmctY29udGFpbmVyPlxuPC9hY2wtcmVzb3VyY2UtZGF0YS1ncmlkPlxuIl19
|