@alauda-fe/network 1.0.1 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/esm2022/index.mjs +10 -2
  2. package/esm2022/lib/components/certificate-status/component.mjs +7 -6
  3. package/esm2022/lib/components/fixed-ip/component.mjs +135 -91
  4. package/esm2022/lib/components/loadbalancer-spec-form/component.mjs +57 -57
  5. package/esm2022/lib/components/service-annotations-form/annotations.component.mjs +136 -142
  6. package/esm2022/lib/components/service-annotations-form-item/annotations.component.mjs +24 -25
  7. package/esm2022/lib/components/service-form/component.mjs +34 -33
  8. package/esm2022/lib/components/service-form/fieldset/component.mjs +92 -95
  9. package/esm2022/lib/directives/subnet-validator.directive.mjs +5 -5
  10. package/esm2022/lib/features/network-policy/components/add-peer-rule-handler/component.mjs +69 -0
  11. package/esm2022/lib/features/network-policy/components/ip-block-display/component.mjs +54 -0
  12. package/esm2022/lib/features/network-policy/components/label-selector-display/component.mjs +117 -0
  13. package/esm2022/lib/features/network-policy/components/peer-container/component.mjs +81 -0
  14. package/esm2022/lib/features/network-policy/components/pod-review/component.mjs +250 -0
  15. package/esm2022/lib/features/network-policy/components/rule-table/component.mjs +269 -0
  16. package/esm2022/lib/features/network-policy/form/network-policy/component.mjs +429 -0
  17. package/esm2022/lib/features/network-policy/form/network-policy-ip-block/component.mjs +102 -0
  18. package/esm2022/lib/features/network-policy/form/network-policy-peer/component.mjs +247 -0
  19. package/esm2022/lib/features/network-policy/form/network-policy-ports/component.mjs +161 -0
  20. package/esm2022/lib/features/network-policy/form/network-policy-remote-except-input/component.mjs +128 -0
  21. package/esm2022/lib/features/network-policy/form/network-policy-rule/component.mjs +142 -0
  22. package/esm2022/lib/services/alb-api.service.mjs +26 -6
  23. package/esm2022/lib/services/certificate-api.service.mjs +4 -4
  24. package/esm2022/lib/services/network-util.service.mjs +22 -13
  25. package/esm2022/lib/services/subnet-util.service.mjs +118 -0
  26. package/esm2022/lib/types/alb-exports.mjs +1 -1
  27. package/esm2022/lib/types/k8s-exports.mjs +2 -1
  28. package/esm2022/lib/types/metallb-exports.mjs +2 -0
  29. package/esm2022/lib/types/resource-definition.mjs +28 -2
  30. package/esm2022/lib/utils/alb-exports.mjs +1 -1
  31. package/esm2022/lib/utils/cidr-exports.mjs +3 -3
  32. package/esm2022/lib/utils/common-exports.mjs +22 -0
  33. package/esm2022/lib/utils/service-exports.mjs +1 -1
  34. package/esm2022/lib/utils/validators-exports.mjs +44 -0
  35. package/index.d.ts +9 -1
  36. package/lib/components/fixed-ip/component.d.ts +10 -3
  37. package/lib/components/service-annotations-form/annotations.component.d.ts +6 -6
  38. package/lib/components/service-annotations-form-item/annotations.component.d.ts +1 -1
  39. package/lib/components/service-form/component.d.ts +1 -1
  40. package/lib/features/network-policy/components/add-peer-rule-handler/component.d.ts +8 -0
  41. package/lib/features/network-policy/components/ip-block-display/component.d.ts +7 -0
  42. package/lib/features/network-policy/components/label-selector-display/component.d.ts +13 -0
  43. package/lib/features/network-policy/components/peer-container/component.d.ts +18 -0
  44. package/lib/features/network-policy/components/pod-review/component.d.ts +37 -0
  45. package/lib/features/network-policy/components/rule-table/component.d.ts +21 -0
  46. package/lib/features/network-policy/form/network-policy/component.d.ts +70 -0
  47. package/lib/features/network-policy/form/network-policy-ip-block/component.d.ts +23 -0
  48. package/lib/features/network-policy/form/network-policy-peer/component.d.ts +43 -0
  49. package/lib/features/network-policy/form/network-policy-ports/component.d.ts +17 -0
  50. package/lib/features/network-policy/form/network-policy-remote-except-input/component.d.ts +23 -0
  51. package/lib/features/network-policy/form/network-policy-rule/component.d.ts +28 -0
  52. package/lib/services/alb-api.service.d.ts +4 -2
  53. package/lib/services/network-util.service.d.ts +4 -2
  54. package/lib/services/subnet-util.service.d.ts +26 -0
  55. package/lib/types/alb-exports.d.ts +23 -0
  56. package/lib/types/k8s-exports.d.ts +51 -1
  57. package/lib/types/metallb-exports.d.ts +65 -0
  58. package/lib/types/resource-definition.d.ts +154 -0
  59. package/lib/utils/common-exports.d.ts +5 -0
  60. package/lib/utils/validators-exports.d.ts +16 -0
  61. package/package.json +9 -4
  62. package/styles.css +1 -0
@@ -0,0 +1,118 @@
1
+ import { DialogService } from '@alauda/ui';
2
+ import { API_GATEWAY, K8sApiService, K8sUtilService, TranslateService, catchPromise, ConfirmDeleteComponent, AuthApiService, } from '@alauda-fe/common';
3
+ import { HttpClient } from '@angular/common/http';
4
+ import { Injectable } from '@angular/core';
5
+ import { flatMap } from 'lodash-es';
6
+ import { EMPTY, of, concatMap, map, switchMap, combineLatest } from 'rxjs';
7
+ import { INNER_NETWORK_RESOURCE_TYPES } from '../types/resource-definition';
8
+ import { adaptIpMode, IPMode } from '../utils/cidr-exports';
9
+ import { ConflictCidrType } from '../utils/subnet-exports';
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "@angular/common/http";
12
+ import * as i2 from "@alauda/ui";
13
+ import * as i3 from "@alauda-fe/common";
14
+ export class SubnetUtilService {
15
+ constructor(httpClient, dialog, translate, k8sUtil, k8sApi, authApi) {
16
+ this.httpClient = httpClient;
17
+ this.dialog = dialog;
18
+ this.translate = translate;
19
+ this.k8sUtil = k8sUtil;
20
+ this.k8sApi = k8sApi;
21
+ this.authApi = authApi;
22
+ }
23
+ getClusterNodeIp$(cluster) {
24
+ return this.httpClient.get(`${API_GATEWAY}/acp/v1/resources/${cluster}/nodes/ips`);
25
+ }
26
+ getTkeClusterCidr$(cluster) {
27
+ return this.authApi
28
+ .getCluster(cluster)
29
+ .pipe(map(resource => this.k8sUtil.getAnnotation(resource, 'service-cidr')));
30
+ }
31
+ getInterSubnets$(cluster) {
32
+ return combineLatest([
33
+ this.k8sApi.getGlobalResourceList({
34
+ type: INNER_NETWORK_RESOURCE_TYPES.INTER_CONNECTION_SUBNET,
35
+ }),
36
+ of(cluster),
37
+ ]).pipe(map(([{ items: allInterSubnets }, cluster]) => {
38
+ const filteredInterSubnets = allInterSubnets.filter(interSubnet => this.k8sUtil.getName(interSubnet) !== cluster);
39
+ // 不能简单地使用 fieldSelector 排除当前集群,因为需要判断当前集群是否在集群互联内
40
+ // 如果过滤后的长度有变化说明当前集群在集群互联内,直接返回过滤后的集群列表
41
+ // 否则不需要校验集群互联冲突
42
+ if (allInterSubnets.length !== filteredInterSubnets.length) {
43
+ return filteredInterSubnets;
44
+ }
45
+ return [];
46
+ }));
47
+ }
48
+ delete(subnet, cluster) {
49
+ const name = this.k8sUtil.getName(subnet);
50
+ const usingIPs = [
51
+ subnet.status?.v4usingIPs || subnet?.status?.usingIPs,
52
+ subnet.status?.v6usingIPs,
53
+ ].filter(Boolean);
54
+ const deleteApi = () => this.k8sApi.deleteResource({
55
+ type: INNER_NETWORK_RESOURCE_TYPES.SUBNET_KUBE_OVN,
56
+ cluster,
57
+ resource: subnet,
58
+ });
59
+ return of(usingIPs.length).pipe(switchMap(value => {
60
+ if (value) {
61
+ const dialogRef = this.dialog.open(ConfirmDeleteComponent, {
62
+ data: {
63
+ resourceName: name,
64
+ title: this.translate.get('delete_subnet'),
65
+ deleteTips: this.translate.get('delete_subnet_with_ips', {
66
+ name,
67
+ usingIPs,
68
+ }),
69
+ deleteResourceApi: deleteApi,
70
+ },
71
+ });
72
+ return dialogRef.afterClosed().pipe(concatMap(isConfirm => {
73
+ if (!isConfirm) {
74
+ return EMPTY;
75
+ }
76
+ return of(null);
77
+ }));
78
+ }
79
+ return catchPromise(this.dialog.confirm({
80
+ title: this.translate.get('delete_subnet_title', {
81
+ name,
82
+ }),
83
+ confirmText: this.translate.get('delete'),
84
+ cancelText: this.translate.get('cancel'),
85
+ beforeConfirm: deleteApi,
86
+ }));
87
+ }));
88
+ }
89
+ getUsedCidrBlock(subnets, nodeIps, clusterCidr, networkMode, interSubnets) {
90
+ return [
91
+ ...subnets.map(({ spec }) => ({
92
+ cidr: spec.cidrBlock,
93
+ type: ConflictCidrType.EXIST_SUBNET,
94
+ })),
95
+ ...flatMap(interSubnets.map(({ spec, metadata }) => (spec?.subnets || []).map(subnet => ({
96
+ cidr: subnet.cidr,
97
+ type: ConflictCidrType.EXIST_SUBNET,
98
+ cluster: metadata.name,
99
+ })))),
100
+ ...(nodeIps || []).map(nodeIp => ({
101
+ cidr: [
102
+ nodeIp,
103
+ adaptIpMode(nodeIp, networkMode) === IPMode.IPV4 ? '32' : '128',
104
+ ].join('/'),
105
+ type: ConflictCidrType.HOST_NETWORK,
106
+ })),
107
+ clusterCidr
108
+ ? { cidr: clusterCidr, type: ConflictCidrType.SERVICE_CIDR }
109
+ : null,
110
+ ].filter(Boolean);
111
+ }
112
+ static { this.ɵfac = function SubnetUtilService_Factory(t) { return new (t || SubnetUtilService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i2.DialogService), i0.ɵɵinject(i3.TranslateService), i0.ɵɵinject(i3.K8sUtilService), i0.ɵɵinject(i3.K8sApiService), i0.ɵɵinject(i3.AuthApiService)); }; }
113
+ static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: SubnetUtilService, factory: SubnetUtilService.ɵfac }); }
114
+ }
115
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SubnetUtilService, [{
116
+ type: Injectable
117
+ }], () => [{ type: i1.HttpClient }, { type: i2.DialogService }, { type: i3.TranslateService }, { type: i3.K8sUtilService }, { type: i3.K8sApiService }, { type: i3.AuthApiService }], null); })();
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VibmV0LXV0aWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvbmV0d29yay9zcmMvbGliL3NlcnZpY2VzL3N1Ym5ldC11dGlsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMzQyxPQUFPLEVBQ0wsV0FBVyxFQUNYLGFBQWEsRUFDYixjQUFjLEVBQ2QsZ0JBQWdCLEVBQ2hCLFlBQVksRUFDWixzQkFBc0IsRUFDdEIsY0FBYyxHQUNmLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHM0UsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDNUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQWUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7QUFHM0QsTUFBTSxPQUFPLGlCQUFpQjtJQUM1QixZQUNtQixVQUFzQixFQUN0QixNQUFxQixFQUNyQixTQUEyQixFQUMzQixPQUF1QixFQUN2QixNQUFxQixFQUNyQixPQUF1QjtRQUx2QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDckIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFDdkIsV0FB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QixDQUFDLFlBQVk7Z0JBQ25DLE9BQU8sRUFBRSxRQUFRLENBQUMsSUFBSTthQUN2QixDQUFDLENBQUMsQ0FDSixDQUNGO1lBQ0QsR0FBRyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNoQyxJQUFJLEVBQUU7b0JBQ0osTUFBTTtvQkFDTixXQUFXLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSztpQkFDaEUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO2dCQUNYLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxZQUFZO2FBQ3BDLENBQUMsQ0FBQztZQUNILFdBQVc7Z0JBQ1QsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsWUFBWSxFQUFFO2dCQUM1RCxDQUFDLENBQUMsSUFBSTtTQUNULENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3BCLENBQUM7a0ZBaElVLGlCQUFpQjt1RUFBakIsaUJBQWlCLFdBQWpCLGlCQUFpQjs7aUZBQWpCLGlCQUFpQjtjQUQ3QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJ0BhbGF1ZGEvdWknO1xuaW1wb3J0IHtcbiAgQVBJX0dBVEVXQVksXG4gIEs4c0FwaVNlcnZpY2UsXG4gIEs4c1V0aWxTZXJ2aWNlLFxuICBUcmFuc2xhdGVTZXJ2aWNlLFxuICBjYXRjaFByb21pc2UsXG4gIENvbmZpcm1EZWxldGVDb21wb25lbnQsXG4gIEF1dGhBcGlTZXJ2aWNlLFxufSBmcm9tICdAYWxhdWRhLWZlL2NvbW1vbic7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZmxhdE1hcCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBFTVBUWSwgb2YsIGNvbmNhdE1hcCwgbWFwLCBzd2l0Y2hNYXAsIGNvbWJpbmVMYXRlc3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgSW50ZXJDb25uZWN0aW9uU3VibmV0LCBTdWJuZXQgfSBmcm9tICcuLi90eXBlcy9rOHMtZXhwb3J0cyc7XG5pbXBvcnQgeyBJTk5FUl9ORVRXT1JLX1JFU09VUkNFX1RZUEVTIH0gZnJvbSAnLi4vdHlwZXMvcmVzb3VyY2UtZGVmaW5pdGlvbic7XG5pbXBvcnQgeyBhZGFwdElwTW9kZSwgSVBNb2RlLCBOZXR3b3JrTW9kZSB9IGZyb20gJy4uL3V0aWxzL2NpZHItZXhwb3J0cyc7XG5pbXBvcnQgeyBDb25mbGljdENpZHJUeXBlIH0gZnJvbSAnLi4vdXRpbHMvc3VibmV0LWV4cG9ydHMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU3VibmV0VXRpbFNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSByZWFkb25seSBkaWFsb2c6IERpYWxvZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBrOHNVdGlsOiBLOHNVdGlsU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGs4c0FwaTogSzhzQXBpU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGF1dGhBcGk6IEF1dGhBcGlTZXJ2aWNlLFxuICApIHt9XG5cbiAgZ2V0Q2x1c3Rlck5vZGVJcCQoY2x1c3Rlcjogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQ8c3RyaW5nW10+KFxuICAgICAgYCR7QVBJX0dBVEVXQVl9L2FjcC92MS9yZXNvdXJjZXMvJHtjbHVzdGVyfS9ub2Rlcy9pcHNgLFxuICAgICk7XG4gIH1cblxuICBnZXRUa2VDbHVzdGVyQ2lkciQoY2x1c3Rlcjogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXV0aEFwaVxuICAgICAgLmdldENsdXN0ZXIoY2x1c3RlcilcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAocmVzb3VyY2UgPT4gdGhpcy5rOHNVdGlsLmdldEFubm90YXRpb24ocmVzb3VyY2UsICdzZXJ2aWNlLWNpZHInKSksXG4gICAgICApO1xuICB9XG5cbiAgZ2V0SW50ZXJTdWJuZXRzJChjbHVzdGVyOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLms4c0FwaS5nZXRHbG9iYWxSZXNvdXJjZUxpc3Q8SW50ZXJDb25uZWN0aW9uU3VibmV0Pih7XG4gICAgICAgIHR5cGU6IElOTkVSX05FVFdPUktfUkVTT1VSQ0VfVFlQRVMuSU5URVJfQ09OTkVDVElPTl9TVUJORVQsXG4gICAgICB9KSxcbiAgICAgIG9mKGNsdXN0ZXIpLFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFt7IGl0ZW1zOiBhbGxJbnRlclN1Ym5ldHMgfSwgY2x1c3Rlcl0pID0+IHtcbiAgICAgICAgY29uc3QgZmlsdGVyZWRJbnRlclN1Ym5ldHMgPSBhbGxJbnRlclN1Ym5ldHMuZmlsdGVyKFxuICAgICAgICAgIGludGVyU3VibmV0ID0+IHRoaXMuazhzVXRpbC5nZXROYW1lKGludGVyU3VibmV0KSAhPT0gY2x1c3RlcixcbiAgICAgICAgKTtcbiAgICAgICAgLy8g5LiN6IO9566A5Y2V5Zyw5L2/55SoIGZpZWxkU2VsZWN0b3Ig5o6S6Zmk5b2T5YmN6ZuG576k77yM5Zug5Li66ZyA6KaB5Yik5pat5b2T5YmN6ZuG576k5piv5ZCm5Zyo6ZuG576k5LqS6IGU5YaFXG4gICAgICAgIC8vIOWmguaenOi/h+a7pOWQjueahOmVv+W6puacieWPmOWMluivtOaYjuW9k+WJjembhue+pOWcqOmbhue+pOS6kuiBlOWGhe+8jOebtOaOpei/lOWbnui/h+a7pOWQjueahOmbhue+pOWIl+ihqFxuICAgICAgICAvLyDlkKbliJnkuI3pnIDopoHmoKHpqozpm4bnvqTkupLogZTlhrLnqoFcbiAgICAgICAgaWYgKGFsbEludGVyU3VibmV0cy5sZW5ndGggIT09IGZpbHRlcmVkSW50ZXJTdWJuZXRzLmxlbmd0aCkge1xuICAgICAgICAgIHJldHVybiBmaWx0ZXJlZEludGVyU3VibmV0cztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gW107XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgZGVsZXRlKHN1Ym5ldDogU3VibmV0LCBjbHVzdGVyOiBzdHJpbmcpIHtcbiAgICBjb25zdCBuYW1lID0gdGhpcy5rOHNVdGlsLmdldE5hbWUoc3VibmV0KTtcbiAgICBjb25zdCB1c2luZ0lQcyA9IFtcbiAgICAgIHN1Ym5ldC5zdGF0dXM/LnY0dXNpbmdJUHMgfHwgc3VibmV0Py5zdGF0dXM/LnVzaW5nSVBzLFxuICAgICAgc3VibmV0LnN0YXR1cz8udjZ1c2luZ0lQcyxcbiAgICBdLmZpbHRlcihCb29sZWFuKTtcbiAgICBjb25zdCBkZWxldGVBcGkgPSAoKSA9PlxuICAgICAgdGhpcy5rOHNBcGkuZGVsZXRlUmVzb3VyY2Uoe1xuICAgICAgICB0eXBlOiBJTk5FUl9ORVRXT1JLX1JFU09VUkNFX1RZUEVTLlNVQk5FVF9LVUJFX09WTixcbiAgICAgICAgY2x1c3RlcixcbiAgICAgICAgcmVzb3VyY2U6IHN1Ym5ldCxcbiAgICAgIH0pO1xuXG4gICAgcmV0dXJuIG9mKHVzaW5nSVBzLmxlbmd0aCkucGlwZShcbiAgICAgIHN3aXRjaE1hcCh2YWx1ZSA9PiB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oQ29uZmlybURlbGV0ZUNvbXBvbmVudCwge1xuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICByZXNvdXJjZU5hbWU6IG5hbWUsXG4gICAgICAgICAgICAgIHRpdGxlOiB0aGlzLnRyYW5zbGF0ZS5nZXQoJ2RlbGV0ZV9zdWJuZXQnKSxcbiAgICAgICAgICAgICAgZGVsZXRlVGlwczogdGhpcy50cmFuc2xhdGUuZ2V0KCdkZWxldGVfc3VibmV0X3dpdGhfaXBzJywge1xuICAgICAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICAgICAgdXNpbmdJUHMsXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICBkZWxldGVSZXNvdXJjZUFwaTogZGVsZXRlQXBpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm4gZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkucGlwZShcbiAgICAgICAgICAgIGNvbmNhdE1hcChpc0NvbmZpcm0gPT4ge1xuICAgICAgICAgICAgICBpZiAoIWlzQ29uZmlybSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBFTVBUWTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjYXRjaFByb21pc2UoXG4gICAgICAgICAgdGhpcy5kaWFsb2cuY29uZmlybSh7XG4gICAgICAgICAgICB0aXRsZTogdGhpcy50cmFuc2xhdGUuZ2V0KCdkZWxldGVfc3VibmV0X3RpdGxlJywge1xuICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjb25maXJtVGV4dDogdGhpcy50cmFuc2xhdGUuZ2V0KCdkZWxldGUnKSxcbiAgICAgICAgICAgIGNhbmNlbFRleHQ6IHRoaXMudHJhbnNsYXRlLmdldCgnY2FuY2VsJyksXG4gICAgICAgICAgICBiZWZvcmVDb25maXJtOiBkZWxldGVBcGksXG4gICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgZ2V0VXNlZENpZHJCbG9jayhcbiAgICBzdWJuZXRzOiBTdWJuZXRbXSxcbiAgICBub2RlSXBzOiBzdHJpbmdbXSxcbiAgICBjbHVzdGVyQ2lkcjogc3RyaW5nLFxuICAgIG5ldHdvcmtNb2RlOiBOZXR3b3JrTW9kZSxcbiAgICBpbnRlclN1Ym5ldHM6IEludGVyQ29ubmVjdGlvblN1Ym5ldFtdLFxuICApIHtcbiAgICByZXR1cm4gW1xuICAgICAgLi4uc3VibmV0cy5tYXAoKHsgc3BlYyB9KSA9PiAoe1xuICAgICAgICBjaWRyOiBzcGVjLmNpZHJCbG9jayxcbiAgICAgICAgdHlwZTogQ29uZmxpY3RDaWRyVHlwZS5FWElTVF9TVUJORVQsXG4gICAgICB9KSksXG4gICAgICAuLi5mbGF0TWFwKFxuICAgICAgICBpbnRlclN1Ym5ldHMubWFwKCh7IHNwZWMsIG1ldGFkYXRhIH0pID0+XG4gICAgICAgICAgKHNwZWM/LnN1Ym5ldHMgfHwgW10pLm1hcChzdWJuZXQgPT4gKHtcbiAgICAgICAgICAgIGNpZHI6IHN1Ym5ldC5jaWRyLFxuICAgICAgICAgICAgdHlwZTogQ29uZmxpY3RDaWRyVHlwZS5FWElTVF9TVUJORVQsXG4gICAgICAgICAgICBjbHVzdGVyOiBtZXRhZGF0YS5uYW1lLFxuICAgICAgICAgIH0pKSxcbiAgICAgICAgKSxcbiAgICAgICksXG4gICAgICAuLi4obm9kZUlwcyB8fCBbXSkubWFwKG5vZGVJcCA9PiAoe1xuICAgICAgICBjaWRyOiBbXG4gICAgICAgICAgbm9kZUlwLFxuICAgICAgICAgIGFkYXB0SXBNb2RlKG5vZGVJcCwgbmV0d29ya01vZGUpID09PSBJUE1vZGUuSVBWNCA/ICczMicgOiAnMTI4JyxcbiAgICAgICAgXS5qb2luKCcvJyksXG4gICAgICAgIHR5cGU6IENvbmZsaWN0Q2lkclR5cGUuSE9TVF9ORVRXT1JLLFxuICAgICAgfSkpLFxuICAgICAgY2x1c3RlckNpZHJcbiAgICAgICAgPyB7IGNpZHI6IGNsdXN0ZXJDaWRyLCB0eXBlOiBDb25mbGljdENpZHJUeXBlLlNFUlZJQ0VfQ0lEUiB9XG4gICAgICAgIDogbnVsbCxcbiAgICBdLmZpbHRlcihCb29sZWFuKTtcbiAgfVxufVxuIl19
@@ -11,4 +11,4 @@ export var SpecModel;
11
11
  SpecModel["LARGE"] = "large";
12
12
  SpecModel["CUSTOMIZE"] = "customize";
13
13
  })(SpecModel || (SpecModel = {}));
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxiLWV4cG9ydHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9tb2R1bGVzL25ldHdvcmsvc3JjL2xpYi90eXBlcy9hbGItZXhwb3J0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQU4sSUFBWSxlQUlYO0FBSkQsV0FBWSxlQUFlO0lBQ3pCLCtCQUFZLENBQUE7SUFDWix3Q0FBcUIsQ0FBQTtJQUNyQixnQ0FBYSxDQUFBO0FBQ2YsQ0FBQyxFQUpXLGVBQWUsS0FBZixlQUFlLFFBSTFCO0FBa0JELE1BQU0sQ0FBTixJQUFZLFNBS1g7QUFMRCxXQUFZLFNBQVM7SUFDbkIsNEJBQWUsQ0FBQTtJQUNmLDhCQUFpQixDQUFBO0lBQ2pCLDRCQUFlLENBQUE7SUFDZixvQ0FBdUIsQ0FBQTtBQUN6QixDQUFDLEVBTFcsU0FBUyxLQUFULFNBQVMsUUFLcEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZXNvdXJjZUxpbWl0IH0gZnJvbSAnLi4vdXRpbHMvYWxiLWludGVybmFscyc7XG5cbmV4cG9ydCBlbnVtIEFsYlJlc291cmNlVHlwZSB7XG4gIEFMQiA9ICdBTEIyJyxcbiAgRlJPTlRFTkQgPSAnRnJvbnRlbmQnLFxuICBSVUxFID0gJ1J1bGUnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBvcnRSYW5nZUl0ZW0ge1xuICBwb3J0OiBzdHJpbmc7XG4gIHByb2plY3RzOiBzdHJpbmdbXTtcbiAgdXNlZFBvcnRzPzogbnVtYmVyW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGxhaW5SZXNvdXJjZUxpbWl0IHtcbiAgY3B1Pzogc3RyaW5nO1xuICBtZW1vcnk/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWxiUmVzb3VyY2VzIHtcbiAgbGltaXRzPzogUGxhaW5SZXNvdXJjZUxpbWl0O1xuICByZXF1ZXN0cz86IFBsYWluUmVzb3VyY2VMaW1pdDtcbn1cblxuZXhwb3J0IGVudW0gU3BlY01vZGVsIHtcbiAgU01BTEwgPSAnc21hbGwnLFxuICBNRURJVU0gPSAnbWVkaXVtJyxcbiAgTEFSR0UgPSAnbGFyZ2UnLFxuICBDVVNUT01JWkUgPSAnY3VzdG9taXplJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBbGJSZXNvdXJjZUxpbWl0TW9kZWwge1xuICBzcGVjTW9kZWw6IFNwZWNNb2RlbDtcbiAgcmVzb3VyY2VMaW1pdDogUmVzb3VyY2VMaW1pdDtcbn1cbiJdfQ==
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxiLWV4cG9ydHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9tb2R1bGVzL25ldHdvcmsvc3JjL2xpYi90eXBlcy9hbGItZXhwb3J0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxNQUFNLENBQU4sSUFBWSxlQUlYO0FBSkQsV0FBWSxlQUFlO0lBQ3pCLCtCQUFZLENBQUE7SUFDWix3Q0FBcUIsQ0FBQTtJQUNyQixnQ0FBYSxDQUFBO0FBQ2YsQ0FBQyxFQUpXLGVBQWUsS0FBZixlQUFlLFFBSTFCO0FBa0JELE1BQU0sQ0FBTixJQUFZLFNBS1g7QUFMRCxXQUFZLFNBQVM7SUFDbkIsNEJBQWUsQ0FBQTtJQUNmLDhCQUFpQixDQUFBO0lBQ2pCLDRCQUFlLENBQUE7SUFDZixvQ0FBdUIsQ0FBQTtBQUN6QixDQUFDLEVBTFcsU0FBUyxLQUFULFNBQVMsUUFLcEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBbGJQcm90b2NvbCxcbiAgS3ViZXJuZXRlc1Jlc291cmNlLFxuICBTZXJ2aWNlR3JvdXAsXG59IGZyb20gJ0BhbGF1ZGEtZmUvY29tbW9uJztcblxuaW1wb3J0IHsgUmVzb3VyY2VMaW1pdCB9IGZyb20gJy4uL3V0aWxzL2FsYi1pbnRlcm5hbHMnO1xuXG5leHBvcnQgZW51bSBBbGJSZXNvdXJjZVR5cGUge1xuICBBTEIgPSAnQUxCMicsXG4gIEZST05URU5EID0gJ0Zyb250ZW5kJyxcbiAgUlVMRSA9ICdSdWxlJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQb3J0UmFuZ2VJdGVtIHtcbiAgcG9ydDogc3RyaW5nO1xuICBwcm9qZWN0czogc3RyaW5nW107XG4gIHVzZWRQb3J0cz86IG51bWJlcltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBsYWluUmVzb3VyY2VMaW1pdCB7XG4gIGNwdT86IHN0cmluZztcbiAgbWVtb3J5Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFsYlJlc291cmNlcyB7XG4gIGxpbWl0cz86IFBsYWluUmVzb3VyY2VMaW1pdDtcbiAgcmVxdWVzdHM/OiBQbGFpblJlc291cmNlTGltaXQ7XG59XG5cbmV4cG9ydCBlbnVtIFNwZWNNb2RlbCB7XG4gIFNNQUxMID0gJ3NtYWxsJyxcbiAgTUVESVVNID0gJ21lZGl1bScsXG4gIExBUkdFID0gJ2xhcmdlJyxcbiAgQ1VTVE9NSVpFID0gJ2N1c3RvbWl6ZScsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWxiUmVzb3VyY2VMaW1pdE1vZGVsIHtcbiAgc3BlY01vZGVsOiBTcGVjTW9kZWw7XG4gIHJlc291cmNlTGltaXQ6IFJlc291cmNlTGltaXQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnJvbnRlbmRTcGVjIHtcbiAgcG9ydD86IG51bWJlciB8ICcnO1xuICBwcm90b2NvbD86IEFsYlByb3RvY29sO1xuICBzb3VyY2U/OiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIG5hbWVzcGFjZTogc3RyaW5nO1xuICAgIHR5cGU6IHN0cmluZztcbiAgfTtcbiAgYmFja2VuZFByb3RvY29sPzogJ0hUVFAnIHwgJ0hUVFBTJyB8ICdnUlBDJztcbiAgc2VydmljZUdyb3VwPzogU2VydmljZUdyb3VwO1xuICBjZXJ0aWZpY2F0ZV9uYW1lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZyb250ZW5kU3RhdHVzIHtcbiAgaW5zdGFuY2VzOiBSZWNvcmQ8XG4gICAgc3RyaW5nLFxuICAgIHtcbiAgICAgIGNvbmZsaWN0OiBib29sZWFuO1xuICAgICAgcHJvYmVfdGltZTogc3RyaW5nO1xuICAgIH1cbiAgPjtcbn1cblxuLy8gaHR0cDovL2NvbmZsdWVuY2UuYWxhdWRhLmNuL3BhZ2VzL3ZpZXdwYWdlLmFjdGlvbj9wYWdlSWQ9MjcxNzc1Njdcbi8vIOWQjuerr+WvueS6jiBGcm9udGVuZCDnmoTotYTmupDlrprkuYlcbmV4cG9ydCBpbnRlcmZhY2UgRnJvbnRlbmQgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBzcGVjPzogRnJvbnRlbmRTcGVjO1xuICBzdGF0dXM/OiBGcm9udGVuZFN0YXR1cztcbn1cbiJdfQ==
@@ -1,3 +1,4 @@
1
+ // 存放通用网络资源及 CNI 相关的资源(NetworkPolicy、Subnet、VLAN、Provider-Network)
1
2
  export var EncapsulateProtocol;
2
3
  (function (EncapsulateProtocol) {
3
4
  EncapsulateProtocol["IPIP"] = "IPIP";
@@ -10,4 +11,4 @@ export var EncapsulateMode;
10
11
  EncapsulateMode["CROSS_SUBNET"] = "CrossSubnet";
11
12
  EncapsulateMode["NEVER"] = "Never";
12
13
  })(EncapsulateMode || (EncapsulateMode = {}));
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiazhzLWV4cG9ydHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9tb2R1bGVzL25ldHdvcmsvc3JjL2xpYi90eXBlcy9rOHMtZXhwb3J0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQU4sSUFBWSxtQkFJWDtBQUpELFdBQVksbUJBQW1CO0lBQzdCLG9DQUFhLENBQUE7SUFDYixzQ0FBZSxDQUFBO0lBQ2Ysc0NBQWUsQ0FBQTtBQUNqQixDQUFDLEVBSlcsbUJBQW1CLEtBQW5CLG1CQUFtQixRQUk5QjtBQUVELE1BQU0sQ0FBTixJQUFZLGVBSVg7QUFKRCxXQUFZLGVBQWU7SUFDekIsb0NBQWlCLENBQUE7SUFDakIsK0NBQTRCLENBQUE7SUFDNUIsa0NBQWUsQ0FBQTtBQUNqQixDQUFDLEVBSlcsZUFBZSxLQUFmLGVBQWUsUUFJMUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25kaXRpb24sIEt1YmVybmV0ZXNSZXNvdXJjZSwgU3RyaW5nTWFwIH0gZnJvbSAnQGFsYXVkYS1mZS9jb21tb24nO1xuXG5leHBvcnQgZW51bSBFbmNhcHN1bGF0ZVByb3RvY29sIHtcbiAgSVBJUCA9ICdJUElQJyxcbiAgVlhMQU4gPSAnVlhMQU4nLFxuICBORVZFUiA9ICdORVZFUicsXG59XG5cbmV4cG9ydCBlbnVtIEVuY2Fwc3VsYXRlTW9kZSB7XG4gIEFMV0FZUyA9ICdBbHdheXMnLFxuICBDUk9TU19TVUJORVQgPSAnQ3Jvc3NTdWJuZXQnLFxuICBORVZFUiA9ICdOZXZlcicsXG59XG5cbi8vIFN1Ym5ldFxuZXhwb3J0IGludGVyZmFjZSBTdWJuZXRTdGF0dXMge1xuICB1c2luZ0lQcz86IG51bWJlcjtcbiAgYXZhaWxhYmxlSVBzPzogbnVtYmVyO1xuICB2NHVzaW5nSVBzPzogbnVtYmVyO1xuICB2NGF2YWlsYWJsZUlQcz86IG51bWJlcjtcbiAgdjZ1c2luZ0lQcz86IG51bWJlcjtcbiAgdjZhdmFpbGFibGVJUHM/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3VibmV0U3BlYyB7XG4gIGRlZmF1bHQ6IGJvb2xlYW47IC8vIHdoZXRoZXIgZGVmYXVsdFxuICBwcm90b2NvbDogJ0lQdjQnIHwgJ0lQdjYnIHwgJ0R1YWwnO1xuICBuYW1lc3BhY2VzPzogc3RyaW5nW107XG4gIGNpZHJCbG9jazogc3RyaW5nOyAvLyBzZWdtZW50XG4gIG5hdE91dGdvaW5nPzogYm9vbGVhbjtcbiAgLy8gZm9yIGNhbGljb1xuICBpcGlwTW9kZT86IEVuY2Fwc3VsYXRlTW9kZTtcbiAgdnhsYW5Nb2RlPzogRW5jYXBzdWxhdGVNb2RlO1xuICBibG9ja1NpemU/OiBudW1iZXI7XG4gIHY0YmxvY2tTaXplPzogbnVtYmVyO1xuICB2NmJsb2NrU2l6ZT86IG51bWJlcjtcblxuICAvLyBmb3Iga3ViLW92blxuICBnYXRld2F5OiBzdHJpbmc7IC8vIGRlZmF1bHQsY2lkcl9ibG9jaydzIGZpcnN0IGF2YWlsYWJsZVxuICBleGNsdWRlSXBzOiBzdHJpbmdbXTtcbiAgZ2F0ZXdheVR5cGU6IHN0cmluZztcbiAgZ2F0ZXdheU5vZGU/OiBzdHJpbmc7IC8vIHJlcXVpcmVkIHdoZW4gZ2F0ZXdheV90eXBlIGlzIENlbnRyYWxpemVkXG4gIHByaXZhdGU/OiBib29sZWFuOyAvLyBwcml2YXRlIG5ldHdvcmssZGVmYXVsdCBmYWxzZVxuICBhbGxvd1N1Ym5ldHM/OiBzdHJpbmdbXTsgLy8gZW5hYmxlIHdoZW4gcHJpdmF0ZSBpcyB0cnVlXG4gIGVuYWJsZUVjbXA/OiBib29sZWFuOyAvLyByZXF1aXJlZCB3aGVuIGdhdGV3YXlfdHlwZSBpcyBDZW50cmFsaXplZC4gaHR0cHM6Ly9jb25mbHVlbmNlLmFsYXVkYS5jbi9wYWdlcy92aWV3cGFnZS5hY3Rpb24/cGFnZUlkPTE2MzA3MTA0MlxuXG4gIC8vIHVuZGVybGF5XG4gIHZsYW4/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3VibmV0IGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlIHtcbiAgc3BlYz86IFN1Ym5ldFNwZWM7XG4gIHN0YXR1cz86IFN1Ym5ldFN0YXR1cztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdWJuZXRJcFNwZWMge1xuICBwb2ROYW1lOiBzdHJpbmc7XG4gIG5hbWVzcGFjZTogc3RyaW5nO1xuICBzdWJuZXQ6IHN0cmluZztcbiAgbm9kZU5hbWU6IHN0cmluZztcbiAgaXBBZGRyZXNzPzogc3RyaW5nO1xuICBtYWNBZGRyZXNzOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3VibmV0SXAgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBzcGVjPzogU3VibmV0SXBTcGVjO1xufVxuXG4vLyBMb2FkQmFsYW5jZXJcbmV4cG9ydCBpbnRlcmZhY2UgTG9hZEJhbGFuY2VyIGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlIHtcbiAga2luZDogJ0FMQjInO1xuICBzcGVjPzogTG9hZEJhbGFuY2VyU3BlYztcbiAgc3RhdHVzPzogTG9hZEJhbGFuY2VyU3RhdHVzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExvYWRCYWxhbmNlclN0YXR1cyB7XG4gIHByb2JlVGltZTogc3RyaW5nO1xuICByZWFzb246IHN0cmluZztcbiAgc3RhdGU6ICdyZWFkeScgfCAnd2FybmluZyc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9hZEJhbGFuY2VyU3BlYyB7XG4gIGFkZHJlc3M6IHN0cmluZztcbiAgYmluZF9hZGRyZXNzOiBzdHJpbmc7XG4gIGRvbWFpbnM6IHN0cmluZ1tdO1xuICBpYWFzX2lkOiBzdHJpbmc7XG4gIHR5cGU6ICduZ2lueCc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQUxCMlN0YXR1cyBleHRlbmRzIENvbmRpdGlvbiB7XG4gIGRldGFpbD86IHtcbiAgICBhZGRyZXNzOiB7XG4gICAgICBob3N0OiBzdHJpbmdbXTtcbiAgICAgIGlwdjQ6IHN0cmluZ1tdO1xuICAgICAgaXB2Njogc3RyaW5nW107XG4gICAgICBtc2c/OiBzdHJpbmc7XG4gICAgICBvaz86IGJvb2xlYW47XG4gICAgfTtcbiAgICBhbGI/OiBTdHJpbmdNYXA7XG4gICAgdmVyc2lvbj86IHtcbiAgICAgIGltYWdlUGF0Y2g6IHN0cmluZztcbiAgICAgIHZlcnNpb246IHN0cmluZztcbiAgICB9O1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFMQjJTcGVjIHtcbiAgYWRkcmVzcz86IHN0cmluZztcbiAgY29uZmlnOiB7XG4gICAgZW5hYmxlQWxiPzogYm9vbGVhbjtcbiAgICB2aXA/OiB7XG4gICAgICBlbmFibGVMYlN2YzogYm9vbGVhbjtcbiAgICAgIGxiU3ZjQW5ub3RhdGlvbnM/OiBTdHJpbmdNYXA7XG4gICAgfTtcbiAgICBkaXNwbGF5TmFtZT86IHN0cmluZztcbiAgICBuZXR3b3JrTW9kZTogJ2hvc3QnIHwgJ2NvbnRhaW5lcic7XG4gICAgZW5hYmxlUG9ydFByb2plY3Q/OiBib29sZWFuO1xuICAgIC8qKlxuICAgIEFycmF5PHtcbiAgICAgIHBvcnQ6IHN0cmluZztcbiAgICAgIHByb2plY3RzOiBzdHJpbmdbXTtcbiAgICB9PlxuICAgICovXG4gICAgcG9ydFByb2plY3RzPzogc3RyaW5nO1xuICAgIG5vZGVTZWxlY3Rvcj86IFN0cmluZ01hcDtcbiAgICBwcm9qZWN0cz86IHN0cmluZ1tdO1xuICAgIHJlcGxpY2FzPzogbnVtYmVyO1xuICAgIHJlc291cmNlcz86IHtcbiAgICAgIGxpbWl0cz86IHtcbiAgICAgICAgY3B1OiBzdHJpbmc7XG4gICAgICAgIG1lbW9yeTogc3RyaW5nO1xuICAgICAgfTtcbiAgICAgIHJlcXVlc3RzPzoge1xuICAgICAgICBjcHU6IHN0cmluZztcbiAgICAgICAgbWVtb3J5OiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgZ2F0ZXdheT86IHtcbiAgICAgIG1vZGU6ICdzdGFuZGFsb25lJyB8ICdzaGFyZSc7XG4gICAgICBuYW1lOiBzdHJpbmc7XG4gICAgfTtcbiAgfTtcbiAgdHlwZTogJ25naW54Jztcbn1cblxuLy8gaHR0cHM6Ly9jb25mbHVlbmNlLmFsYXVkYS5jbi9wYWdlcy92aWV3cGFnZS5hY3Rpb24/cGFnZUlkPTEzMzA3MzU2NlxuZXhwb3J0IGludGVyZmFjZSBBTEIyIGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlIHtcbiAga2luZDogJ0FMQjInO1xuICBzcGVjOiBBTEIyU3BlYztcbiAgc3RhdHVzPzogQUxCMlN0YXR1cztcbn1cbiJdfQ==
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiazhzLWV4cG9ydHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9tb2R1bGVzL25ldHdvcmsvc3JjL2xpYi90eXBlcy9rOHMtZXhwb3J0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxrRUFBa0U7QUFFbEUsTUFBTSxDQUFOLElBQVksbUJBSVg7QUFKRCxXQUFZLG1CQUFtQjtJQUM3QixvQ0FBYSxDQUFBO0lBQ2Isc0NBQWUsQ0FBQTtJQUNmLHNDQUFlLENBQUE7QUFDakIsQ0FBQyxFQUpXLG1CQUFtQixLQUFuQixtQkFBbUIsUUFJOUI7QUFFRCxNQUFNLENBQU4sSUFBWSxlQUlYO0FBSkQsV0FBWSxlQUFlO0lBQ3pCLG9DQUFpQixDQUFBO0lBQ2pCLCtDQUE0QixDQUFBO0lBQzVCLGtDQUFlLENBQUE7QUFDakIsQ0FBQyxFQUpXLGVBQWUsS0FBZixlQUFlLFFBSTFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2VydGlmaWNhdGUsXG4gIENvbmRpdGlvbixcbiAgS3ViZXJuZXRlc1Jlc291cmNlLFxuICBMYWJlbFNlbGVjdG9yLFxuICBTdHJpbmdNYXAsXG59IGZyb20gJ0BhbGF1ZGEtZmUvY29tbW9uJztcblxuLy8g5a2Y5pS+6YCa55So572R57uc6LWE5rqQ5Y+KIENOSSDnm7jlhbPnmoTotYTmupDvvIhOZXR3b3JrUG9saWN544CBU3VibmV044CBVkxBTuOAgVByb3ZpZGVyLU5ldHdvcmvvvIlcblxuZXhwb3J0IGVudW0gRW5jYXBzdWxhdGVQcm90b2NvbCB7XG4gIElQSVAgPSAnSVBJUCcsXG4gIFZYTEFOID0gJ1ZYTEFOJyxcbiAgTkVWRVIgPSAnTkVWRVInLFxufVxuXG5leHBvcnQgZW51bSBFbmNhcHN1bGF0ZU1vZGUge1xuICBBTFdBWVMgPSAnQWx3YXlzJyxcbiAgQ1JPU1NfU1VCTkVUID0gJ0Nyb3NzU3VibmV0JyxcbiAgTkVWRVIgPSAnTmV2ZXInLFxufVxuXG4vLyBTdWJuZXRcbmV4cG9ydCBpbnRlcmZhY2UgU3VibmV0U3RhdHVzIHtcbiAgdXNpbmdJUHM/OiBudW1iZXI7XG4gIGF2YWlsYWJsZUlQcz86IG51bWJlcjtcbiAgdjR1c2luZ0lQcz86IG51bWJlcjtcbiAgdjRhdmFpbGFibGVJUHM/OiBudW1iZXI7XG4gIHY2dXNpbmdJUHM/OiBudW1iZXI7XG4gIHY2YXZhaWxhYmxlSVBzPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN1Ym5ldFNwZWMge1xuICBkZWZhdWx0OiBib29sZWFuOyAvLyB3aGV0aGVyIGRlZmF1bHRcbiAgcHJvdG9jb2w6ICdJUHY0JyB8ICdJUHY2JyB8ICdEdWFsJztcbiAgbmFtZXNwYWNlcz86IHN0cmluZ1tdO1xuICBjaWRyQmxvY2s6IHN0cmluZzsgLy8gc2VnbWVudFxuICBuYXRPdXRnb2luZz86IGJvb2xlYW47XG4gIC8vIGZvciBjYWxpY29cbiAgaXBpcE1vZGU/OiBFbmNhcHN1bGF0ZU1vZGU7XG4gIHZ4bGFuTW9kZT86IEVuY2Fwc3VsYXRlTW9kZTtcbiAgYmxvY2tTaXplPzogbnVtYmVyO1xuICB2NGJsb2NrU2l6ZT86IG51bWJlcjtcbiAgdjZibG9ja1NpemU/OiBudW1iZXI7XG5cbiAgLy8gZm9yIGt1Yi1vdm5cbiAgZ2F0ZXdheTogc3RyaW5nOyAvLyBkZWZhdWx0LGNpZHJfYmxvY2sncyBmaXJzdCBhdmFpbGFibGVcbiAgZXhjbHVkZUlwczogc3RyaW5nW107XG4gIGdhdGV3YXlUeXBlOiBzdHJpbmc7XG4gIGdhdGV3YXlOb2RlPzogc3RyaW5nOyAvLyByZXF1aXJlZCB3aGVuIGdhdGV3YXlfdHlwZSBpcyBDZW50cmFsaXplZFxuICBwcml2YXRlPzogYm9vbGVhbjsgLy8gcHJpdmF0ZSBuZXR3b3JrLGRlZmF1bHQgZmFsc2VcbiAgYWxsb3dTdWJuZXRzPzogc3RyaW5nW107IC8vIGVuYWJsZSB3aGVuIHByaXZhdGUgaXMgdHJ1ZVxuICBlbmFibGVFY21wPzogYm9vbGVhbjsgLy8gcmVxdWlyZWQgd2hlbiBnYXRld2F5X3R5cGUgaXMgQ2VudHJhbGl6ZWQuIGh0dHBzOi8vY29uZmx1ZW5jZS5hbGF1ZGEuY24vcGFnZXMvdmlld3BhZ2UuYWN0aW9uP3BhZ2VJZD0xNjMwNzEwNDJcblxuICBuYW1lc3BhY2VTZWxlY3RvcnM/OiBMYWJlbFNlbGVjdG9yW107XG4gIC8vIHVuZGVybGF5XG4gIHZsYW4/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3VibmV0IGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlIHtcbiAgc3BlYz86IFN1Ym5ldFNwZWM7XG4gIHN0YXR1cz86IFN1Ym5ldFN0YXR1cztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdWJuZXRJcFNwZWMge1xuICBwb2ROYW1lOiBzdHJpbmc7XG4gIG5hbWVzcGFjZTogc3RyaW5nO1xuICBzdWJuZXQ6IHN0cmluZztcbiAgbm9kZU5hbWU6IHN0cmluZztcbiAgaXBBZGRyZXNzPzogc3RyaW5nO1xuICBtYWNBZGRyZXNzOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3VibmV0SXAgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBzcGVjPzogU3VibmV0SXBTcGVjO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEludGVyQ29ubmVjdGlvblN1Ym5ldCBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZSB7XG4gIHNwZWM6IEludGVyQ29ubmVjdGlvblN1Ym5ldFNwZWM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW50ZXJDb25uZWN0aW9uU3VibmV0U3BlYyB7XG4gIHN1Ym5ldHM6IEFycmF5PHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgY2lkcjogc3RyaW5nO1xuICB9Pjtcbn1cblxuLy8gTG9hZEJhbGFuY2VyXG5leHBvcnQgaW50ZXJmYWNlIExvYWRCYWxhbmNlciBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZSB7XG4gIGtpbmQ6ICdBTEIyJztcbiAgc3BlYz86IExvYWRCYWxhbmNlclNwZWM7XG4gIHN0YXR1cz86IExvYWRCYWxhbmNlclN0YXR1cztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMb2FkQmFsYW5jZXJTdGF0dXMge1xuICBwcm9iZVRpbWU6IHN0cmluZztcbiAgcmVhc29uOiBzdHJpbmc7XG4gIHN0YXRlOiAncmVhZHknIHwgJ3dhcm5pbmcnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExvYWRCYWxhbmNlclNwZWMge1xuICBhZGRyZXNzOiBzdHJpbmc7XG4gIGJpbmRfYWRkcmVzczogc3RyaW5nO1xuICBkb21haW5zOiBzdHJpbmdbXTtcbiAgaWFhc19pZDogc3RyaW5nO1xuICB0eXBlOiAnbmdpbngnO1xufVxuXG4vLyBBTEIyXG5leHBvcnQgaW50ZXJmYWNlIEFMQjJTdGF0dXMgZXh0ZW5kcyBDb25kaXRpb24ge1xuICBkZXRhaWw/OiB7XG4gICAgYWRkcmVzczoge1xuICAgICAgaG9zdDogc3RyaW5nW107XG4gICAgICBpcHY0OiBzdHJpbmdbXTtcbiAgICAgIGlwdjY6IHN0cmluZ1tdO1xuICAgICAgbXNnPzogc3RyaW5nO1xuICAgICAgb2s/OiBib29sZWFuO1xuICAgIH07XG4gICAgYWxiPzogU3RyaW5nTWFwO1xuICAgIHZlcnNpb24/OiB7XG4gICAgICBpbWFnZVBhdGNoOiBzdHJpbmc7XG4gICAgICB2ZXJzaW9uOiBzdHJpbmc7XG4gICAgfTtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBTEIyU3BlYyB7XG4gIGFkZHJlc3M/OiBzdHJpbmc7XG4gIGNvbmZpZzoge1xuICAgIGVuYWJsZUFsYj86IGJvb2xlYW47XG4gICAgdmlwPzoge1xuICAgICAgZW5hYmxlTGJTdmM6IGJvb2xlYW47XG4gICAgICBsYlN2Y0Fubm90YXRpb25zPzogU3RyaW5nTWFwO1xuICAgIH07XG4gICAgZGlzcGxheU5hbWU/OiBzdHJpbmc7XG4gICAgbmV0d29ya01vZGU6ICdob3N0JyB8ICdjb250YWluZXInO1xuICAgIGVuYWJsZVBvcnRQcm9qZWN0PzogYm9vbGVhbjtcbiAgICAvKipcbiAgICBBcnJheTx7XG4gICAgICBwb3J0OiBzdHJpbmc7XG4gICAgICBwcm9qZWN0czogc3RyaW5nW107XG4gICAgfT5cbiAgICAqL1xuICAgIHBvcnRQcm9qZWN0cz86IHN0cmluZztcbiAgICBub2RlU2VsZWN0b3I/OiBTdHJpbmdNYXA7XG4gICAgcHJvamVjdHM/OiBzdHJpbmdbXTtcbiAgICByZXBsaWNhcz86IG51bWJlcjtcbiAgICByZXNvdXJjZXM/OiB7XG4gICAgICBsaW1pdHM/OiB7XG4gICAgICAgIGNwdTogc3RyaW5nO1xuICAgICAgICBtZW1vcnk6IHN0cmluZztcbiAgICAgIH07XG4gICAgICByZXF1ZXN0cz86IHtcbiAgICAgICAgY3B1OiBzdHJpbmc7XG4gICAgICAgIG1lbW9yeTogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIGdhdGV3YXk/OiB7XG4gICAgICBtb2RlOiAnc3RhbmRhbG9uZScgfCAnc2hhcmUnO1xuICAgICAgbmFtZTogc3RyaW5nO1xuICAgIH07XG4gIH07XG4gIHR5cGU6ICduZ2lueCc7XG59XG5cbi8vIGh0dHBzOi8vY29uZmx1ZW5jZS5hbGF1ZGEuY24vcGFnZXMvdmlld3BhZ2UuYWN0aW9uP3BhZ2VJZD0xMzMwNzM1NjZcbmV4cG9ydCBpbnRlcmZhY2UgQUxCMiBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZSB7XG4gIGtpbmQ6ICdBTEIyJztcbiAgc3BlYzogQUxCMlNwZWM7XG4gIHN0YXR1cz86IEFMQjJTdGF0dXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVBCbG9jayB7XG4gIGNpZHI6IHN0cmluZztcbiAgZXhjZXB0OiBzdHJpbmdbXTtcbn1cblxuLy8gTmV0d29ya1BvbGljeVxuZXhwb3J0IGludGVyZmFjZSBOZXR3b3JrUG9saWN5UG9ydCB7XG4gIHBvcnQ6IG51bWJlciB8IHN0cmluZztcbiAgcHJvdG9jb2w6IHN0cmluZztcbiAgZW5kUG9ydD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOZXR3b3JrUG9saWN5UGVlciB7XG4gIGlwQmxvY2s/OiBJUEJsb2NrO1xuICBuYW1lc3BhY2VTZWxlY3Rvcj86IExhYmVsU2VsZWN0b3I7XG4gIHBvZFNlbGVjdG9yPzogTGFiZWxTZWxlY3Rvcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOZXR3b3JrUG9saWN5RWdyZXNzUnVsZSB7XG4gIHBvcnRzPzogTmV0d29ya1BvbGljeVBvcnRbXTtcbiAgdG8/OiBOZXR3b3JrUG9saWN5UGVlcltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5ldHdvcmtQb2xpY3lJbmdyZXNzUnVsZSB7XG4gIGZyb20/OiBOZXR3b3JrUG9saWN5UGVlcltdO1xuICBwb3J0cz86IE5ldHdvcmtQb2xpY3lQb3J0W107XG59XG5cbmV4cG9ydCB0eXBlIFBvbGljeVR5cGUgPSAnSW5ncmVzcycgfCAnRWdyZXNzJztcblxuZXhwb3J0IGludGVyZmFjZSBOZXR3b3JrUG9saWN5U3BlYyB7XG4gIGVncmVzcz86IE5ldHdvcmtQb2xpY3lFZ3Jlc3NSdWxlW107XG4gIGluZ3Jlc3M/OiBOZXR3b3JrUG9saWN5SW5ncmVzc1J1bGVbXTtcbiAgcG9kU2VsZWN0b3I/OiBMYWJlbFNlbGVjdG9yO1xuICBwb2xpY3lUeXBlcz86IFBvbGljeVR5cGVbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOZXR3b3JrUG9saWN5IGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlIHtcbiAgc3BlYz86IE5ldHdvcmtQb2xpY3lTcGVjO1xufVxuXG4vLyBEb21haW5cbmV4cG9ydCBpbnRlcmZhY2UgRG9tYWluU3BlYyB7XG4gIG5hbWU6IHN0cmluZztcbiAga2luZDogJ2Z1bGwnIHwgJ2V4dGVuc2l2ZSc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRG9tYWluIGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlIHtcbiAgc3BlYz86IERvbWFpblNwZWM7XG4gIC8vIGZvciBVSSB1c2FnZVxuICBfY2VydGlmaWNhdGU/OiBDZXJ0aWZpY2F0ZTtcbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWxsYi1leHBvcnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9uZXR3b3JrL3NyYy9saWIvdHlwZXMvbWV0YWxsYi1leHBvcnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBLdWJlcm5ldGVzUmVzb3VyY2UsIExhYmVsU2VsZWN0b3IgfSBmcm9tICdAYWxhdWRhLWZlL2NvbW1vbic7XG5cbi8vIGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tZXRhbGxiL21ldGFsbGIvbWFpbi9jb25maWcvY3JkL2Jhc2VzL21ldGFsbGIuaW9fYmdwcGVlcnMueWFtbFxuZXhwb3J0IGludGVyZmFjZSBCR1BQZWVyU3BlYyB7XG4gIG15QVNOOiBudW1iZXI7XG4gIHBlZXJBU046IG51bWJlcjtcbiAgcGVlckFkZHJlc3M6IHN0cmluZztcbiAgYmZkUHJvZmlsZT86IHN0cmluZztcbiAgZWJncE11bHRpSG9wPzogYm9vbGVhbjtcbiAgaG9sZFRpbWU/OiBzdHJpbmc7XG4gIGtlZXBhbGl2ZVRpbWU/OiBzdHJpbmc7XG4gIG5vZGVTZWxlY3RvcnM/OiBMYWJlbFNlbGVjdG9yW107XG4gIHBhc3N3b3JkPzogc3RyaW5nO1xuICBwZWVyUG9ydD86IG51bWJlcjtcbiAgcm91dGVySUQ/OiBzdHJpbmc7XG4gIHNvdXJjZUFkZHJlc3M/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQkdQUGVlciBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZSB7XG4gIGtpbmQ6ICdCR1BQZWVyJztcbiAgc3BlYzogQkdQUGVlclNwZWM7XG59XG5cbi8vIGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tZXRhbGxiL21ldGFsbGIvbWFpbi9jb25maWcvY3JkL2Jhc2VzL21ldGFsbGIuaW9fYmdwYWR2ZXJ0aXNlbWVudHMueWFtbFxuZXhwb3J0IGludGVyZmFjZSBCR1BBZHZlcnRpc2VtZW50IGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlIHtcbiAga2luZDogJ0JHUEFkdmVydGlzZW1lbnQnO1xuICBzcGVjOiB7XG4gICAgYWdncmVnYXRpb25MZW5ndGg/OiBudW1iZXI7XG4gICAgYWdncmVnYXRpb25MZW5ndGhWNj86IG51bWJlcjtcbiAgICBjb21tdW5pdGllcz86IHN0cmluZ1tdO1xuICAgIGlwQWRkcmVzc1Bvb2xTZWxlY3RvcnM/OiBMYWJlbFNlbGVjdG9yO1xuICAgIGlwQWRkcmVzc1Bvb2xzPzogc3RyaW5nW107XG4gICAgbG9jYWxQcmVmPzogbnVtYmVyO1xuICAgIG5vZGVTZWxlY3RvcnM/OiBMYWJlbFNlbGVjdG9yW107XG4gICAgcGVlcnM6IHN0cmluZ1tdO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElQQWRkcmVzc1Bvb2wgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBraW5kOiAnSVBBZGRyZXNzUG9vbCc7XG4gIHNwZWM6IHtcbiAgICBhZGRyZXNzZXM6IHN0cmluZ1tdO1xuICAgIGF1dG9Bc3NpZ24/OiBib29sZWFuO1xuICAgIGF2b2lkQnVnZ3lJUHM/OiBib29sZWFuO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEwyQWR2ZXJ0aXNlbWVudCBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZSB7XG4gIGtpbmQ6ICdMMkFkdmVydGlzZW1lbnQnO1xuICBzcGVjOiB7XG4gICAgaXBBZGRyZXNzUG9vbHM6IFtzdHJpbmddO1xuICAgIG5vZGVTZWxlY3RvcnM6IExhYmVsU2VsZWN0b3JbXTtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJcFBvb2xVc2VkSXAge1xuICBpcDogc3RyaW5nO1xuICBub2RlSXA6IHN0cmluZztcbiAgc2VydmljZXM6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElwUG9vbFVzYWdlIGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlIHtcbiAgYXBpVmVyc2lvbjogJ21ldGFsbGIuaW8vdjFiZXRhMSc7XG4gIGtpbmQ6ICdJUEFkZHJlc3NQb29sVXNhZ2UnO1xuICBzdGF0dXM6IHtcbiAgICB1c2VkOiBudW1iZXI7XG4gICAgYXZhaWxhYmxlOiBudW1iZXI7XG4gICAgdXNlZElwczogSXBQb29sVXNlZElwW107XG4gICAgLy8gaHR0cHM6Ly9jb25mbHVlbmNlLmFsYXVkYS5jbi9wYWdlcy92aWV3cGFnZS5hY3Rpb24/cGFnZUlkPTE2MTM5NDQzOSNoZWFkaW5nLTMxNjFHRVRhY3B2MW1ldGFsbGJjbHVzdGVybmFtZXNwYWNlc21ldGFsbGItc3lzdGVtaXBhZGRyZXNzcG9vbHVzYWdlaXBwb29sbmFtZVxuICAgIGlwdjRhdmFpbGFibGU6IG51bWJlcjtcbiAgICBpcHY0dXNlZDogbnVtYmVyO1xuICAgIGlwdjZ1c2VkOiBudW1iZXI7XG4gICAgaXB2NmF2YWlsYWJsZTogbnVtYmVyO1xuICB9O1xufVxuIl19
@@ -1,4 +1,5 @@
1
- import { createResourceDefinitions } from '@alauda-fe/common';
1
+ import { COMMON_RESOURCE_DEFINITIONS, createResourceDefinitions, safeAssign, } from '@alauda-fe/common';
2
+ const METALLB_GROUP = 'metallb.io';
2
3
  export const KUBE_OVN_GROUP = 'kubeovn.io';
3
4
  export const NetworkResourceDefinitions = {
4
5
  SUBNET_KUBE_OVN: {
@@ -9,8 +10,33 @@ export const NetworkResourceDefinitions = {
9
10
  type: 'ips',
10
11
  apiGroup: KUBE_OVN_GROUP,
11
12
  },
13
+ L2_ADVERTISEMENT: {
14
+ apiGroup: METALLB_GROUP,
15
+ apiVersion: 'v1beta1',
16
+ type: 'l2advertisements',
17
+ },
18
+ IP_POOL: {
19
+ apiGroup: METALLB_GROUP,
20
+ apiVersion: 'v1beta1',
21
+ type: 'ipaddresspools',
22
+ },
23
+ BGP_PEER: {
24
+ apiGroup: METALLB_GROUP,
25
+ apiVersion: 'v1beta2',
26
+ type: 'bgppeers',
27
+ },
28
+ BGP_ADVERTISEMENT: {
29
+ apiGroup: METALLB_GROUP,
30
+ apiVersion: 'v1beta1',
31
+ type: 'bgpadvertisements',
32
+ },
33
+ INTER_CONNECTION_SUBNET: {
34
+ type: 'interconnectionsubnets',
35
+ apiGroup: KUBE_OVN_GROUP,
36
+ },
12
37
  };
13
38
  const _ = createResourceDefinitions(NetworkResourceDefinitions);
39
+ export const INNER_NETWORK_RESOURCE_TYPES = createResourceDefinitions(safeAssign([COMMON_RESOURCE_DEFINITIONS, NetworkResourceDefinitions])).RESOURCE_TYPES;
14
40
  export const NETWORK_RESOURCE_DEFINITIONS = _.RESOURCE_DEFINITIONS;
15
41
  export const NETWORK_RESOURCE_TYPES = _.RESOURCE_TYPES;
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtZGVmaW5pdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvbmV0d29yay9zcmMvbGliL3R5cGVzL3Jlc291cmNlLWRlZmluaXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFOUQsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLFlBQVksQ0FBQztBQUUzQyxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRztJQUN4QyxlQUFlLEVBQUU7UUFDZixJQUFJLEVBQUUsU0FBUztRQUNmLFFBQVEsRUFBRSxjQUFjO0tBQ3pCO0lBQ0Qsa0JBQWtCLEVBQUU7UUFDbEIsSUFBSSxFQUFFLEtBQUs7UUFDWCxRQUFRLEVBQUUsY0FBYztLQUN6QjtDQUNPLENBQUM7QUFFWCxNQUFNLENBQUMsR0FBRyx5QkFBeUIsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0FBRWhFLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQztBQUNuRSxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLENBQUMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlUmVzb3VyY2VEZWZpbml0aW9ucyB9IGZyb20gJ0BhbGF1ZGEtZmUvY29tbW9uJztcblxuZXhwb3J0IGNvbnN0IEtVQkVfT1ZOX0dST1VQID0gJ2t1YmVvdm4uaW8nO1xuXG5leHBvcnQgY29uc3QgTmV0d29ya1Jlc291cmNlRGVmaW5pdGlvbnMgPSB7XG4gIFNVQk5FVF9LVUJFX09WTjoge1xuICAgIHR5cGU6ICdzdWJuZXRzJyxcbiAgICBhcGlHcm91cDogS1VCRV9PVk5fR1JPVVAsXG4gIH0sXG4gIFNVQk5FVF9LVUJFX09WTl9JUDoge1xuICAgIHR5cGU6ICdpcHMnLFxuICAgIGFwaUdyb3VwOiBLVUJFX09WTl9HUk9VUCxcbiAgfSxcbn0gYXMgY29uc3Q7XG5cbmNvbnN0IF8gPSBjcmVhdGVSZXNvdXJjZURlZmluaXRpb25zKE5ldHdvcmtSZXNvdXJjZURlZmluaXRpb25zKTtcblxuZXhwb3J0IGNvbnN0IE5FVFdPUktfUkVTT1VSQ0VfREVGSU5JVElPTlMgPSBfLlJFU09VUkNFX0RFRklOSVRJT05TO1xuZXhwb3J0IGNvbnN0IE5FVFdPUktfUkVTT1VSQ0VfVFlQRVMgPSBfLlJFU09VUkNFX1RZUEVTO1xuIl19
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtZGVmaW5pdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvbmV0d29yay9zcmMvbGliL3R5cGVzL3Jlc291cmNlLWRlZmluaXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLDJCQUEyQixFQUMzQix5QkFBeUIsRUFDekIsVUFBVSxHQUNYLE1BQU0sbUJBQW1CLENBQUM7QUFFM0IsTUFBTSxhQUFhLEdBQUcsWUFBWSxDQUFDO0FBQ25DLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxZQUFZLENBQUM7QUFFM0MsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUc7SUFDeEMsZUFBZSxFQUFFO1FBQ2YsSUFBSSxFQUFFLFNBQVM7UUFDZixRQUFRLEVBQUUsY0FBYztLQUN6QjtJQUNELGtCQUFrQixFQUFFO1FBQ2xCLElBQUksRUFBRSxLQUFLO1FBQ1gsUUFBUSxFQUFFLGNBQWM7S0FDekI7SUFDRCxnQkFBZ0IsRUFBRTtRQUNoQixRQUFRLEVBQUUsYUFBYTtRQUN2QixVQUFVLEVBQUUsU0FBUztRQUNyQixJQUFJLEVBQUUsa0JBQWtCO0tBQ3pCO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsUUFBUSxFQUFFLGFBQWE7UUFDdkIsVUFBVSxFQUFFLFNBQVM7UUFDckIsSUFBSSxFQUFFLGdCQUFnQjtLQUN2QjtJQUNELFFBQVEsRUFBRTtRQUNSLFFBQVEsRUFBRSxhQUFhO1FBQ3ZCLFVBQVUsRUFBRSxTQUFTO1FBQ3JCLElBQUksRUFBRSxVQUFVO0tBQ2pCO0lBQ0QsaUJBQWlCLEVBQUU7UUFDakIsUUFBUSxFQUFFLGFBQWE7UUFDdkIsVUFBVSxFQUFFLFNBQVM7UUFDckIsSUFBSSxFQUFFLG1CQUFtQjtLQUMxQjtJQUNELHVCQUF1QixFQUFFO1FBQ3ZCLElBQUksRUFBRSx3QkFBd0I7UUFDOUIsUUFBUSxFQUFFLGNBQWM7S0FDekI7Q0FDTyxDQUFDO0FBRVgsTUFBTSxDQUFDLEdBQUcseUJBQXlCLENBQUMsMEJBQTBCLENBQUMsQ0FBQztBQUVoRSxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyx5QkFBeUIsQ0FDbkUsVUFBVSxDQUFDLENBQUMsMkJBQTJCLEVBQUUsMEJBQTBCLENBQUMsQ0FBQyxDQUN0RSxDQUFDLGNBQWMsQ0FBQztBQUVqQixNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxDQUFDLENBQUMsb0JBQW9CLENBQUM7QUFDbkUsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxDQUFDLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENPTU1PTl9SRVNPVVJDRV9ERUZJTklUSU9OUyxcbiAgY3JlYXRlUmVzb3VyY2VEZWZpbml0aW9ucyxcbiAgc2FmZUFzc2lnbixcbn0gZnJvbSAnQGFsYXVkYS1mZS9jb21tb24nO1xuXG5jb25zdCBNRVRBTExCX0dST1VQID0gJ21ldGFsbGIuaW8nO1xuZXhwb3J0IGNvbnN0IEtVQkVfT1ZOX0dST1VQID0gJ2t1YmVvdm4uaW8nO1xuXG5leHBvcnQgY29uc3QgTmV0d29ya1Jlc291cmNlRGVmaW5pdGlvbnMgPSB7XG4gIFNVQk5FVF9LVUJFX09WTjoge1xuICAgIHR5cGU6ICdzdWJuZXRzJyxcbiAgICBhcGlHcm91cDogS1VCRV9PVk5fR1JPVVAsXG4gIH0sXG4gIFNVQk5FVF9LVUJFX09WTl9JUDoge1xuICAgIHR5cGU6ICdpcHMnLFxuICAgIGFwaUdyb3VwOiBLVUJFX09WTl9HUk9VUCxcbiAgfSxcbiAgTDJfQURWRVJUSVNFTUVOVDoge1xuICAgIGFwaUdyb3VwOiBNRVRBTExCX0dST1VQLFxuICAgIGFwaVZlcnNpb246ICd2MWJldGExJyxcbiAgICB0eXBlOiAnbDJhZHZlcnRpc2VtZW50cycsXG4gIH0sXG4gIElQX1BPT0w6IHtcbiAgICBhcGlHcm91cDogTUVUQUxMQl9HUk9VUCxcbiAgICBhcGlWZXJzaW9uOiAndjFiZXRhMScsXG4gICAgdHlwZTogJ2lwYWRkcmVzc3Bvb2xzJyxcbiAgfSxcbiAgQkdQX1BFRVI6IHtcbiAgICBhcGlHcm91cDogTUVUQUxMQl9HUk9VUCxcbiAgICBhcGlWZXJzaW9uOiAndjFiZXRhMicsXG4gICAgdHlwZTogJ2JncHBlZXJzJyxcbiAgfSxcbiAgQkdQX0FEVkVSVElTRU1FTlQ6IHtcbiAgICBhcGlHcm91cDogTUVUQUxMQl9HUk9VUCxcbiAgICBhcGlWZXJzaW9uOiAndjFiZXRhMScsXG4gICAgdHlwZTogJ2JncGFkdmVydGlzZW1lbnRzJyxcbiAgfSxcbiAgSU5URVJfQ09OTkVDVElPTl9TVUJORVQ6IHtcbiAgICB0eXBlOiAnaW50ZXJjb25uZWN0aW9uc3VibmV0cycsXG4gICAgYXBpR3JvdXA6IEtVQkVfT1ZOX0dST1VQLFxuICB9LFxufSBhcyBjb25zdDtcblxuY29uc3QgXyA9IGNyZWF0ZVJlc291cmNlRGVmaW5pdGlvbnMoTmV0d29ya1Jlc291cmNlRGVmaW5pdGlvbnMpO1xuXG5leHBvcnQgY29uc3QgSU5ORVJfTkVUV09SS19SRVNPVVJDRV9UWVBFUyA9IGNyZWF0ZVJlc291cmNlRGVmaW5pdGlvbnMoXG4gIHNhZmVBc3NpZ24oW0NPTU1PTl9SRVNPVVJDRV9ERUZJTklUSU9OUywgTmV0d29ya1Jlc291cmNlRGVmaW5pdGlvbnNdKSxcbikuUkVTT1VSQ0VfVFlQRVM7XG5cbmV4cG9ydCBjb25zdCBORVRXT1JLX1JFU09VUkNFX0RFRklOSVRJT05TID0gXy5SRVNPVVJDRV9ERUZJTklUSU9OUztcbmV4cG9ydCBjb25zdCBORVRXT1JLX1JFU09VUkNFX1RZUEVTID0gXy5SRVNPVVJDRV9UWVBFUztcbiJdfQ==
@@ -105,4 +105,4 @@ export function getAddressPriority(address) {
105
105
  export function sortAddressesByPriority(addresses) {
106
106
  return sortBy(addresses, getAddressPriority);
107
107
  }
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxiLWV4cG9ydHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9tb2R1bGVzL25ldHdvcmsvc3JjL2xpYi91dGlscy9hbGItZXhwb3J0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsVUFBVSxFQUNWLFFBQVEsRUFDUixlQUFlLEdBRWhCLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFMUMsT0FBTyxFQUVMLFNBQVMsR0FFVixNQUFNLHNCQUFzQixDQUFDO0FBSzlCLE1BQU0sdUJBQXVCLEdBQTRCO0lBQ3ZEO1FBQ0UsU0FBUyxFQUFFLFNBQVMsQ0FBQyxLQUFLO1FBQzFCLGFBQWEsRUFBRTtZQUNiLEdBQUcsRUFBRTtnQkFDSCxLQUFLLEVBQUUsR0FBRztnQkFDVixJQUFJLEVBQUUsR0FBRzthQUNWO1lBQ0QsTUFBTSxFQUFFO2dCQUNOLEtBQUssRUFBRSxHQUFHO2dCQUNWLElBQUksRUFBRSxJQUFJO2FBQ1g7U0FDRjtLQUNGO0lBQ0Q7UUFDRSxTQUFTLEVBQUUsU0FBUyxDQUFDLE1BQU07UUFDM0IsYUFBYSxFQUFFO1lBQ2IsR0FBRyxFQUFFO2dCQUNILEtBQUssRUFBRSxDQUFDO2dCQUNSLElBQUksRUFBRSxNQUFNO2FBQ2I7WUFDRCxNQUFNLEVBQUU7Z0JBQ04sS0FBSyxFQUFFLENBQUM7Z0JBQ1IsSUFBSSxFQUFFLElBQUk7YUFDWDtTQUNGO0tBQ0Y7SUFDRDtRQUNFLFNBQVMsRUFBRSxTQUFTLENBQUMsS0FBSztRQUMxQixhQUFhLEVBQUU7WUFDYixHQUFHLEVBQUU7Z0JBQ0gsS0FBSyxFQUFFLENBQUM7Z0JBQ1IsSUFBSSxFQUFFLE1BQU07YUFDYjtZQUNELE1BQU0sRUFBRTtnQkFDTixLQUFLLEVBQUUsQ0FBQztnQkFDUixJQUFJLEVBQUUsSUFBSTthQUNYO1NBQ0Y7S0FDRjtDQUNGLENBQUM7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TyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQy9ELENBQUM7QUFFRCxNQUFNLFVBQVUsdUJBQXVCLENBQUMsU0FBbUI7SUFDekQsT0FBTyxNQUFNLENBQUMsU0FBUyxFQUFFLGtCQUFrQixDQUFDLENBQUM7QUFDL0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIHRvVW5pdE51bU0sXG4gIHRvVW5pdE1pLFxuICBJUF9QQVRURVJOX0JBU0UsXG4gIExvb3NlVmFsdWVPZixcbn0gZnJvbSAnQGFsYXVkYS1mZS9jb21tb24nO1xuaW1wb3J0IHsgc29ydEJ5LCB1bmlvbiB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbmltcG9ydCB7XG4gIFBsYWluUmVzb3VyY2VMaW1pdCxcbiAgU3BlY01vZGVsLFxuICBBbGJSZXNvdXJjZUxpbWl0TW9kZWwsXG59IGZyb20gJy4uL3R5cGVzL2FsYi1leHBvcnRzJztcbmltcG9ydCB7IEFMQjIgfSBmcm9tICcuLi90eXBlcy9rOHMtZXhwb3J0cyc7XG5cbmltcG9ydCB7IFJlc291cmNlTGltaXQgfSBmcm9tICcuL2FsYi1pbnRlcm5hbHMnO1xuXG5jb25zdCBERUZJTkVEX1JFU09VUkNFX0xJTUlUUzogQWxiUmVzb3VyY2VMaW1pdE1vZGVsW10gPSBbXG4gIHtcbiAgICBzcGVjTW9kZWw6IFNwZWNNb2RlbC5TTUFMTCxcbiAgICByZXNvdXJjZUxpbWl0OiB7XG4gICAgICBjcHU6IHtcbiAgICAgICAgdmFsdWU6IDIwMCxcbiAgICAgICAgdW5pdDogJ20nLFxuICAgICAgfSxcbiAgICAgIG1lbW9yeToge1xuICAgICAgICB2YWx1ZTogMjU2LFxuICAgICAgICB1bml0OiAnTWknLFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxuICB7XG4gICAgc3BlY01vZGVsOiBTcGVjTW9kZWwuTUVESVVNLFxuICAgIHJlc291cmNlTGltaXQ6IHtcbiAgICAgIGNwdToge1xuICAgICAgICB2YWx1ZTogMixcbiAgICAgICAgdW5pdDogJ2NvcmUnLFxuICAgICAgfSxcbiAgICAgIG1lbW9yeToge1xuICAgICAgICB2YWx1ZTogMSxcbiAgICAgICAgdW5pdDogJ0dpJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbiAge1xuICAgIHNwZWNNb2RlbDogU3BlY01vZGVsLkxBUkdFLFxuICAgIHJlc291cmNlTGltaXQ6IHtcbiAgICAgIGNwdToge1xuICAgICAgICB2YWx1ZTogNCxcbiAgICAgICAgdW5pdDogJ2NvcmUnLFxuICAgICAgfSxcbiAgICAgIG1lbW9yeToge1xuICAgICAgICB2YWx1ZTogMixcbiAgICAgICAgdW5pdDogJ0dpJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbl07XG5cbmV4cG9ydCBjb25zdCBmb3JtYXRSZXNvdXJjZUxpbWl0ID0gKHtcbiAgdmFsdWUsXG4gIHVuaXQsXG59OiBMb29zZVZhbHVlT2Y8UmVzb3VyY2VMaW1pdD4pID0+XG4gIHZhbHVlIHx8IHZhbHVlID09PSAwID8gdmFsdWUgKyAodW5pdCA9PT0gJ2NvcmUnID8gJycgOiB1bml0KSA6IHVuZGVmaW5lZDtcblxuZXhwb3J0IGNvbnN0IHBhcnNlUmVzb3VyY2VMaW1pdCA9IChcbiAgcGxhaW5SZXNvdXJjZUxpbWl0OiBQbGFpblJlc291cmNlTGltaXQgPSB7fSxcbik6IHtcbiAgc3BlY01vZGVsOiBTcGVjTW9kZWw7XG4gIHJlc291cmNlTGltaXQ6IFBsYWluUmVzb3VyY2VMaW1pdDtcbn0gPT4ge1xuICBjb25zdCB7IGNwdSwgbWVtb3J5IH0gPSBwbGFpblJlc291cmNlTGltaXQ7XG5cbiAgY29uc3QgcmVzb3VyY2VMaW1pdE1vZGVsID0gREVGSU5FRF9SRVNPVVJDRV9MSU1JVFMuZmluZChcbiAgICAoeyByZXNvdXJjZUxpbWl0IH0pID0+XG4gICAgICBjcHUgPT09IGZvcm1hdFJlc291cmNlTGltaXQocmVzb3VyY2VMaW1pdC5jcHUpICYmXG4gICAgICBtZW1vcnkgPT09IGZvcm1hdFJlc291cmNlTGltaXQocmVzb3VyY2VMaW1pdC5tZW1vcnkpLFxuICApO1xuXG4gIHJldHVybiB7XG4gICAgc3BlY01vZGVsOiByZXNvdXJjZUxpbWl0TW9kZWw/LnNwZWNNb2RlbCB8fCBTcGVjTW9kZWwuQ1VTVE9NSVpFLFxuICAgIHJlc291cmNlTGltaXQ6IHBsYWluUmVzb3VyY2VMaW1pdCxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBSRVNPVVJDRV9MSU1JVF9NQVBQRVIgPSBERUZJTkVEX1JFU09VUkNFX0xJTUlUUy5yZWR1Y2U8XG4gIFBhcnRpYWw8UmVjb3JkPFNwZWNNb2RlbCwgUmVzb3VyY2VMaW1pdD4+XG4+KChhY2MsIGN1cnIpID0+IHtcbiAgYWNjW2N1cnIuc3BlY01vZGVsXSA9IGN1cnIucmVzb3VyY2VMaW1pdDtcbiAgcmV0dXJuIGFjYztcbn0sIHt9KTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlc291cmNlTGltaXQocmVzb3VyY2U6IEFMQjIpOiBBbGJSZXNvdXJjZUxpbWl0TW9kZWwge1xuICBjb25zdCByZXNvdXJjZXMgPSByZXNvdXJjZT8uc3BlYz8uY29uZmlnPy5yZXNvdXJjZXM7XG5cbiAgY29uc3QgeyBzcGVjTW9kZWwsIHJlc291cmNlTGltaXQgfSA9IHBhcnNlUmVzb3VyY2VMaW1pdChcbiAgICByZXNvdXJjZXM/LmxpbWl0cyB8fCByZXNvdXJjZXM/LnJlcXVlc3RzLFxuICApO1xuXG4gIGlmIChzcGVjTW9kZWwgIT09IFNwZWNNb2RlbC5DVVNUT01JWkUpIHtcbiAgICByZXR1cm4ge1xuICAgICAgc3BlY01vZGVsLFxuICAgICAgcmVzb3VyY2VMaW1pdDogUkVTT1VSQ0VfTElNSVRfTUFQUEVSW3NwZWNNb2RlbF0sXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0IGNwdU1WYWx1ZSA9IHBhcnNlSW50KHRvVW5pdE51bU0ocmVzb3VyY2VMaW1pdC5jcHUpKTtcbiAgY29uc3QgbWVtb3J5TWlWYWx1ZSA9IHBhcnNlSW50KHRvVW5pdE1pKHJlc291cmNlTGltaXQubWVtb3J5KSk7XG5cbiAgY29uc3QgY3B1Q29yZVZhbHVlID0gY3B1TVZhbHVlIC8gMTAwMDtcbiAgY29uc3QgaXNDb3JlID1cbiAgICBOdW1iZXIuaXNOYU4oY3B1Q29yZVZhbHVlKSB8fCBjcHVDb3JlVmFsdWUgPT09IE1hdGguZmxvb3IoY3B1Q29yZVZhbHVlKTtcblxuICBjb25zdCBtZW1vcnlHaVZhbHVlID0gbWVtb3J5TWlWYWx1ZSAvIDEwMjQ7XG4gIGNvbnN0IGlzR2kgPVxuICAgIE51bWJlci5pc05hTihtZW1vcnlHaVZhbHVlKSB8fCBtZW1vcnlHaVZhbHVlID09PSBNYXRoLmZsb29yKG1lbW9yeUdpVmFsdWUpO1xuXG4gIHJldHVybiB7XG4gICAgc3BlY01vZGVsLFxuICAgIHJlc291cmNlTGltaXQ6IHtcbiAgICAgIGNwdToge1xuICAgICAgICB2YWx1ZTpcbiAgICAgICAgICBjcHVNVmFsdWUgPT09IDAgPyAwIDogKGlzQ29yZSA/IGNwdUNvcmVWYWx1ZSA6IGNwdU1WYWx1ZSkgfHwgbnVsbCxcbiAgICAgICAgdW5pdDogaXNDb3JlID8gJ2NvcmUnIDogJ20nLFxuICAgICAgfSxcbiAgICAgIG1lbW9yeToge1xuICAgICAgICB2YWx1ZTpcbiAgICAgICAgICBtZW1vcnlNaVZhbHVlID09PSAwXG4gICAgICAgICAgICA/IDBcbiAgICAgICAgICAgIDogKGlzR2kgPyBtZW1vcnlHaVZhbHVlIDogbWVtb3J5TWlWYWx1ZSkgfHwgbnVsbCxcbiAgICAgICAgdW5pdDogaXNHaSA/ICdHaScgOiAnTWknLFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xufVxuXG5leHBvcnQgY29uc3QgTUVUQUxMQiA9ICdtZXRhbGxiJztcbmV4cG9ydCBjb25zdCBNRVRBTExCX05TID0gYCR7TUVUQUxMQn0tc3lzdGVtYCBhcyBjb25zdDtcblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQWRkcmVzc2VzKGFsYjI6IEFMQjIpIHtcbiAgY29uc3QgaXBBZGRyZXNzID0gW1xuICAgIC4uLihhbGIyPy5zdGF0dXM/LmRldGFpbD8uYWRkcmVzcz8uaG9zdCA/PyBbXSksXG4gICAgLi4uKGFsYjI/LnN0YXR1cz8uZGV0YWlsPy5hZGRyZXNzPy5pcHY0ID8/IFtdKSxcbiAgICAuLi4oYWxiMj8uc3RhdHVzPy5kZXRhaWw/LmFkZHJlc3M/LmlwdjYgPz8gW10pLFxuICAgIC4uLihhbGIyPy5zcGVjPy5hZGRyZXNzID8gYWxiMj8uc3BlYz8uYWRkcmVzcz8uc3BsaXQoJywnKSA6IFtdKSxcbiAgXTtcbiAgcmV0dXJuIHVuaW9uKGlwQWRkcmVzcyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBZGRyZXNzUHJpb3JpdHkoYWRkcmVzczogc3RyaW5nKSB7XG4gIGNvbnN0IHJlZyA9IG5ldyBSZWdFeHAoSVBfUEFUVEVSTl9CQVNFKTtcbiAgcmV0dXJuIGFkZHJlc3MuaW5jbHVkZXMoJzonKSA/IDIgOiByZWcudGVzdChhZGRyZXNzKSA/IDEgOiAwO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc29ydEFkZHJlc3Nlc0J5UHJpb3JpdHkoYWRkcmVzc2VzOiBzdHJpbmdbXSkge1xuICByZXR1cm4gc29ydEJ5KGFkZHJlc3NlcywgZ2V0QWRkcmVzc1ByaW9yaXR5KTtcbn1cbiJdfQ==
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxiLWV4cG9ydHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9tb2R1bGVzL25ldHdvcmsvc3JjL2xpYi91dGlscy9hbGItZXhwb3J0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsVUFBVSxFQUNWLFFBQVEsRUFDUixlQUFlLEdBRWhCLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFMUMsT0FBTyxFQUVMLFNBQVMsR0FFVixNQUFNLHNCQUFzQixDQUFDO0FBSzlCLE1BQU0sdUJBQXVCLEdBQTRCO0lBQ3ZEO1FBQ0UsU0FBUyxFQUFFLFNBQVMsQ0FBQyxLQUFLO1FBQzFCLGFBQWEsRUFBRTtZQUNiLEdBQUcsRUFBRTtnQkFDSCxLQUFLLEVBQUUsR0FBRztnQkFDVixJQUFJLEVBQUUsR0FBRzthQUNWO1lBQ0QsTUFBTSxFQUFFO2dCQUNOLEtBQUssRUFBRSxHQUFHO2dCQUNWLElBQUksRUFBRSxJQUFJO2FBQ1g7U0FDRjtLQUNGO0lBQ0Q7UUFDRSxTQUFTLEVBQUUsU0FBUyxDQUFDLE1BQU07UUFDM0IsYUFBYSxFQUFFO1lBQ2IsR0FBRyxFQUFFO2dCQUNILEtBQUssRUFBRSxDQUFDO2dCQUNSLElBQUksRUFBRSxNQUFNO2FBQ2I7WUFDRCxNQUFNLEVBQUU7Z0JBQ04sS0FBSyxFQUFFLENBQUM7Z0JBQ1IsSUFBSSxFQUFFLElBQUk7YUFDWDtTQUNGO0tBQ0Y7SUFDRDtRQUNFLFNBQVMsRUFBRSxTQUFTLENBQUMsS0FBSztRQUMxQixhQUFhLEVBQUU7WUFDYixHQUFHLEVBQUU7Z0JBQ0gsS0FBSyxFQUFFLENBQUM7Z0JBQ1IsSUFBSSxFQUFFLE1BQU07YUFDYjtZQUNELE1BQU0sRUFBRTtnQkFDTixLQUFLLEVBQUUsQ0FBQztnQkFDUixJQUFJLEVBQUUsSUFBSTthQUNYO1NBQ0Y7S0FDRjtDQUNGLENBQUM7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O0lBQ3hDLE9BQU8sT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMvRCxDQUFDO0FBRUQsTUFBTSxVQUFVLHVCQUF1QixDQUFDLFNBQW1CO0lBQ3pELE9BQU8sTUFBTSxDQUFDLFNBQVMsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO0FBQy9DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB0b1VuaXROdW1NLFxuICB0b1VuaXRNaSxcbiAgSVBfUEFUVEVSTl9CQVNFLFxuICBMb29zZVZhbHVlT2YsXG59IGZyb20gJ0BhbGF1ZGEtZmUvY29tbW9uJztcbmltcG9ydCB7IHNvcnRCeSwgdW5pb24gfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5pbXBvcnQge1xuICBQbGFpblJlc291cmNlTGltaXQsXG4gIFNwZWNNb2RlbCxcbiAgQWxiUmVzb3VyY2VMaW1pdE1vZGVsLFxufSBmcm9tICcuLi90eXBlcy9hbGItZXhwb3J0cyc7XG5pbXBvcnQgeyBBTEIyIH0gZnJvbSAnLi4vdHlwZXMvazhzLWV4cG9ydHMnO1xuXG5pbXBvcnQgeyBSZXNvdXJjZUxpbWl0IH0gZnJvbSAnLi9hbGItaW50ZXJuYWxzJztcblxuY29uc3QgREVGSU5FRF9SRVNPVVJDRV9MSU1JVFM6IEFsYlJlc291cmNlTGltaXRNb2RlbFtdID0gW1xuICB7XG4gICAgc3BlY01vZGVsOiBTcGVjTW9kZWwuU01BTEwsXG4gICAgcmVzb3VyY2VMaW1pdDoge1xuICAgICAgY3B1OiB7XG4gICAgICAgIHZhbHVlOiAyMDAsXG4gICAgICAgIHVuaXQ6ICdtJyxcbiAgICAgIH0sXG4gICAgICBtZW1vcnk6IHtcbiAgICAgICAgdmFsdWU6IDI1NixcbiAgICAgICAgdW5pdDogJ01pJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbiAge1xuICAgIHNwZWNNb2RlbDogU3BlY01vZGVsLk1FRElVTSxcbiAgICByZXNvdXJjZUxpbWl0OiB7XG4gICAgICBjcHU6IHtcbiAgICAgICAgdmFsdWU6IDIsXG4gICAgICAgIHVuaXQ6ICdjb3JlJyxcbiAgICAgIH0sXG4gICAgICBtZW1vcnk6IHtcbiAgICAgICAgdmFsdWU6IDEsXG4gICAgICAgIHVuaXQ6ICdHaScsXG4gICAgICB9LFxuICAgIH0sXG4gIH0sXG4gIHtcbiAgICBzcGVjTW9kZWw6IFNwZWNNb2RlbC5MQVJHRSxcbiAgICByZXNvdXJjZUxpbWl0OiB7XG4gICAgICBjcHU6IHtcbiAgICAgICAgdmFsdWU6IDQsXG4gICAgICAgIHVuaXQ6ICdjb3JlJyxcbiAgICAgIH0sXG4gICAgICBtZW1vcnk6IHtcbiAgICAgICAgdmFsdWU6IDIsXG4gICAgICAgIHVuaXQ6ICdHaScsXG4gICAgICB9LFxuICAgIH0sXG4gIH0sXG5dO1xuXG5leHBvcnQgY29uc3QgZm9ybWF0UmVzb3VyY2VMaW1pdCA9ICh7XG4gIHZhbHVlLFxuICB1bml0LFxufTogTG9vc2VWYWx1ZU9mPFJlc291cmNlTGltaXQ+KSA9PlxuICB2YWx1ZSB8fCB2YWx1ZSA9PT0gMCA/IHZhbHVlICsgKHVuaXQgPT09ICdjb3JlJyA/ICcnIDogdW5pdCkgOiB1bmRlZmluZWQ7XG5cbmV4cG9ydCBjb25zdCBwYXJzZVJlc291cmNlTGltaXQgPSAoXG4gIHBsYWluUmVzb3VyY2VMaW1pdDogUGxhaW5SZXNvdXJjZUxpbWl0ID0ge30sXG4pOiB7XG4gIHNwZWNNb2RlbDogU3BlY01vZGVsO1xuICByZXNvdXJjZUxpbWl0OiBQbGFpblJlc291cmNlTGltaXQ7XG59ID0+IHtcbiAgY29uc3QgeyBjcHUsIG1lbW9yeSB9ID0gcGxhaW5SZXNvdXJjZUxpbWl0O1xuXG4gIGNvbnN0IHJlc291cmNlTGltaXRNb2RlbCA9IERFRklORURfUkVTT1VSQ0VfTElNSVRTLmZpbmQoXG4gICAgKHsgcmVzb3VyY2VMaW1pdCB9KSA9PlxuICAgICAgY3B1ID09PSBmb3JtYXRSZXNvdXJjZUxpbWl0KHJlc291cmNlTGltaXQuY3B1KSAmJlxuICAgICAgbWVtb3J5ID09PSBmb3JtYXRSZXNvdXJjZUxpbWl0KHJlc291cmNlTGltaXQubWVtb3J5KSxcbiAgKTtcblxuICByZXR1cm4ge1xuICAgIHNwZWNNb2RlbDogcmVzb3VyY2VMaW1pdE1vZGVsPy5zcGVjTW9kZWwgfHwgU3BlY01vZGVsLkNVU1RPTUlaRSxcbiAgICByZXNvdXJjZUxpbWl0OiBwbGFpblJlc291cmNlTGltaXQsXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgUkVTT1VSQ0VfTElNSVRfTUFQUEVSID0gREVGSU5FRF9SRVNPVVJDRV9MSU1JVFMucmVkdWNlPFxuICBQYXJ0aWFsPFJlY29yZDxTcGVjTW9kZWwsIFJlc291cmNlTGltaXQ+PlxuPigoYWNjLCBjdXJyKSA9PiB7XG4gIGFjY1tjdXJyLnNwZWNNb2RlbF0gPSBjdXJyLnJlc291cmNlTGltaXQ7XG4gIHJldHVybiBhY2M7XG59LCB7fSk7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXNvdXJjZUxpbWl0KHJlc291cmNlOiBBTEIyKTogQWxiUmVzb3VyY2VMaW1pdE1vZGVsIHtcbiAgY29uc3QgcmVzb3VyY2VzID0gcmVzb3VyY2U/LnNwZWM/LmNvbmZpZz8ucmVzb3VyY2VzO1xuXG4gIGNvbnN0IHsgc3BlY01vZGVsLCByZXNvdXJjZUxpbWl0IH0gPSBwYXJzZVJlc291cmNlTGltaXQoXG4gICAgcmVzb3VyY2VzPy5saW1pdHMgfHwgcmVzb3VyY2VzPy5yZXF1ZXN0cyxcbiAgKTtcblxuICBpZiAoc3BlY01vZGVsICE9PSBTcGVjTW9kZWwuQ1VTVE9NSVpFKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNwZWNNb2RlbCxcbiAgICAgIHJlc291cmNlTGltaXQ6IFJFU09VUkNFX0xJTUlUX01BUFBFUltzcGVjTW9kZWxdLFxuICAgIH07XG4gIH1cblxuICBjb25zdCBjcHVNVmFsdWUgPSBwYXJzZUludCh0b1VuaXROdW1NKHJlc291cmNlTGltaXQuY3B1KSk7XG4gIGNvbnN0IG1lbW9yeU1pVmFsdWUgPSBwYXJzZUludCh0b1VuaXRNaShyZXNvdXJjZUxpbWl0Lm1lbW9yeSkpO1xuXG4gIGNvbnN0IGNwdUNvcmVWYWx1ZSA9IGNwdU1WYWx1ZSAvIDEwMDA7XG4gIGNvbnN0IGlzQ29yZSA9XG4gICAgTnVtYmVyLmlzTmFOKGNwdUNvcmVWYWx1ZSkgfHwgY3B1Q29yZVZhbHVlID09PSBNYXRoLmZsb29yKGNwdUNvcmVWYWx1ZSk7XG5cbiAgY29uc3QgbWVtb3J5R2lWYWx1ZSA9IG1lbW9yeU1pVmFsdWUgLyAxMDI0O1xuICBjb25zdCBpc0dpID1cbiAgICBOdW1iZXIuaXNOYU4obWVtb3J5R2lWYWx1ZSkgfHwgbWVtb3J5R2lWYWx1ZSA9PT0gTWF0aC5mbG9vcihtZW1vcnlHaVZhbHVlKTtcblxuICByZXR1cm4ge1xuICAgIHNwZWNNb2RlbCxcbiAgICByZXNvdXJjZUxpbWl0OiB7XG4gICAgICBjcHU6IHtcbiAgICAgICAgdmFsdWU6XG4gICAgICAgICAgY3B1TVZhbHVlID09PSAwID8gMCA6IChpc0NvcmUgPyBjcHVDb3JlVmFsdWUgOiBjcHVNVmFsdWUpIHx8IG51bGwsXG4gICAgICAgIHVuaXQ6IGlzQ29yZSA/ICdjb3JlJyA6ICdtJyxcbiAgICAgIH0sXG4gICAgICBtZW1vcnk6IHtcbiAgICAgICAgdmFsdWU6XG4gICAgICAgICAgbWVtb3J5TWlWYWx1ZSA9PT0gMFxuICAgICAgICAgICAgPyAwXG4gICAgICAgICAgICA6IChpc0dpID8gbWVtb3J5R2lWYWx1ZSA6IG1lbW9yeU1pVmFsdWUpIHx8IG51bGwsXG4gICAgICAgIHVuaXQ6IGlzR2kgPyAnR2knIDogJ01pJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IE1FVEFMTEIgPSAnbWV0YWxsYic7XG5leHBvcnQgY29uc3QgTUVUQUxMQl9OUyA9IGAke01FVEFMTEJ9LXN5c3RlbWAgYXMgY29uc3Q7XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUFkZHJlc3NlcyhhbGIyOiBBTEIyKSB7XG4gIGNvbnN0IGlwQWRkcmVzcyA9IFtcbiAgICAuLi4oYWxiMj8uc3RhdHVzPy5kZXRhaWw/LmFkZHJlc3M/Lmhvc3QgPz8gW10pLFxuICAgIC4uLihhbGIyPy5zdGF0dXM/LmRldGFpbD8uYWRkcmVzcz8uaXB2NCA/PyBbXSksXG4gICAgLi4uKGFsYjI/LnN0YXR1cz8uZGV0YWlsPy5hZGRyZXNzPy5pcHY2ID8/IFtdKSxcbiAgICAuLi4oYWxiMj8uc3BlYz8uYWRkcmVzcyA/IGFsYjI/LnNwZWM/LmFkZHJlc3M/LnNwbGl0KCcsJykgOiBbXSksXG4gIF07XG4gIHJldHVybiB1bmlvbihpcEFkZHJlc3MpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWRkcmVzc1ByaW9yaXR5KGFkZHJlc3M6IHN0cmluZykge1xuICBjb25zdCByZWcgPSBuZXcgUmVnRXhwKElQX1BBVFRFUk5fQkFTRSk7XG4gIHJldHVybiBhZGRyZXNzLmluY2x1ZGVzKCc6JykgPyAyIDogcmVnLnRlc3QoYWRkcmVzcykgPyAxIDogMDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNvcnRBZGRyZXNzZXNCeVByaW9yaXR5KGFkZHJlc3Nlczogc3RyaW5nW10pIHtcbiAgcmV0dXJuIHNvcnRCeShhZGRyZXNzZXMsIGdldEFkZHJlc3NQcmlvcml0eSk7XG59XG4iXX0=
@@ -257,7 +257,7 @@ export function getCidrMaximumPrefix(ipMode = IPMode.IPV4) {
257
257
  return DEFAULT_NETWORK_CIDR_PREFIX_MAPPER[ipMode];
258
258
  }
259
259
  export const adaptIpMode = (value, networkMode) => networkMode === NetworkMode.DUAL
260
- ? value.includes(':')
260
+ ? value?.includes(':')
261
261
  ? NetworkMode.IPV6
262
262
  : NetworkMode.IPV4
263
263
  : networkMode;
@@ -272,7 +272,7 @@ export const isIpPartValid = (part, isIpV4) => {
272
272
  return false;
273
273
  }
274
274
  if (/^[\da-f]+$/i.test(part)) {
275
- return Number.parseInt(part, 16) <= 65535;
275
+ return Number.parseInt(part, 16) <= 0xff_ff;
276
276
  }
277
277
  return false;
278
278
  };
@@ -356,4 +356,4 @@ export function invalidIpOrder(ipBegin, ipEnd) {
356
356
  const ipEndBigInt = ipEnd.bigInteger();
357
357
  return ipBeginBigInt.compareTo(ipEndBigInt) >= 0;
358
358
  }
359
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2lkci1leHBvcnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9uZXR3b3JrL3NyYy9saWIvdXRpbHMvY2lkci1leHBvcnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLHFCQUFxQixHQUV0QixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFPbEM7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHO0lBQ3BCLElBQUksRUFBRSxJQUFJO0lBQ1YsSUFBSSxFQUFFLElBQUk7Q0FDRixDQUFDO0FBSVgsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHO0lBQzFCLFNBQVMsRUFBRSxXQUFXO0lBQ3RCLE1BQU0sRUFBRSxRQUFRO0NBQ1IsQ0FBQztBQUlYLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBVSxDQUFDO0FBRTVELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRztJQUMzQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNO0lBQ3JCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU07Q0FDYixDQUFDO0FBRVgsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHO0lBQ3pCLEdBQUcsTUFBTTtJQUNULElBQUksRUFBRSxNQUFNO0NBQ0osQ0FBQztBQUlYOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FDMUIsT0FBZSxFQUNmLEtBQWEsRUFDYixTQUFpQixNQUFNLENBQUMsSUFBSTtJQUU1QixJQUNFLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FB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O1FBQ3JCLElBQUksQ0FBQyxJQUFJLENBQ1AsSUFBSSxDQUFDLFdBQVcsRUFDaEIsQ0FBQyxXQUFXLEtBQUssV0FBVyxDQUFDLElBQUksSUFBSSxvQkFBb0IsQ0FBQztZQUN4RCxJQUFJLENBQUMsV0FBVyxDQUNuQixDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDLEVBQUUsRUFBYyxDQUFDO1NBQ2pCLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUNyQixDQUFDO0FBRUQsaUNBQWlDO0FBQ2pDLE1BQU0sVUFBVSxjQUFjLENBQzVCLE9BQVUsRUFDVixLQUFRO0lBRVIsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQzNDLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN2QyxPQUFPLGFBQWEsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ25ELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBJTlRfWkVST19QQVRURVJOLFxuICBJUF9BRERSRVNTX1BBVFRFUk4sXG4gIElQX1Y2X0FERFJFU1NfUEFUVEVSTixcbiAgVmFsdWVPZixcbn0gZnJvbSAnQGFsYXVkYS1mZS9jb21tb24nO1xuaW1wb3J0IHsgQWRkcmVzczQsIEFkZHJlc3M2IH0gZnJvbSAnaXAtYWRkcmVzcyc7XG5pbXBvcnQgeyBCaWdJbnRlZ2VyIH0gZnJvbSAnanNibic7XG5cbmludGVyZmFjZSBTZWdtZW50TW9kZWwge1xuICBpcFY0U2VnbWVudD86IHN0cmluZztcbiAgaXBWNlNlZ21lbnQ/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogbm90ZTogd2UgZG9uJ3QgdXNlIGVudW0gaGVyZSBiZWNhdXNlIHRzIGRvIG5vdCBzdXBwb3J0IGV4dGVuZHMgZW51bSBmb3Igbm93XG4gKiBAbGluayBodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L1R5cGVTY3JpcHQvaXNzdWVzLzE3NTkyXG4gKi9cbmV4cG9ydCBjb25zdCBJUE1vZGUgPSB7XG4gIElQVjQ6ICd2NCcsXG4gIElQVjY6ICd2NicsXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgdHlwZSBJUE1vZGUgPSBWYWx1ZU9mPHR5cGVvZiBJUE1vZGU+O1xuXG5leHBvcnQgY29uc3QgQWRkcmVzc1R5cGVzID0ge1xuICBBRFZFUlRJU0U6ICdBZHZlcnRpc2UnLFxuICBQVUJMSUM6ICdQdWJsaWMnLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgQWRkcmVzc1R5cGVzID0gVmFsdWVPZjx0eXBlb2YgQWRkcmVzc1R5cGVzPjtcblxuZXhwb3J0IGNvbnN0IElQX01PREVTID0gW0lQTW9kZS5JUFY0LCBJUE1vZGUuSVBWNl0gYXMgY29uc3Q7XG5cbmV4cG9ydCBjb25zdCBJUF9NT0RFX1RFWFRTID0ge1xuICBbSVBNb2RlLklQVjRdOiAnSVB2NCcsXG4gIFtJUE1vZGUuSVBWNl06ICdJUHY2Jyxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCBjb25zdCBOZXR3b3JrTW9kZSA9IHtcbiAgLi4uSVBNb2RlLFxuICBEVUFMOiAnZHVhbCcsXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgdHlwZSBOZXR3b3JrTW9kZSA9IFZhbHVlT2Y8dHlwZW9mIE5ldHdvcmtNb2RlPjtcblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gY2lkclN0ciBjaWRyQmxvY2ssIGUuZy4gMTAuMTYuMC4wLzI0IG1heSBzdXBwb3J0IGlwdjZcbiAqIEBwYXJhbSB7c3RyaW5nfSBpcFN0ciBzcGVjaWZpYyBpcCwgZS5nLiAxMC4xNi4xLjIgbWF5IHN1cHBvcnQgaXB2NlxuICogQHBhcmFtIHtJUE1vZGV9IGlwTW9kZSBpcCBuZXR3b3JrIG1vZGUgaXB2NC9pcHY2XG4gKiBAcmV0dXJuIHtib29sZWFufSB3aGV0aGVyIGlwIGJlbG9uZ3MgdG8gY2lkclxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNCZWxvbmdDaWRyKFxuICBjaWRyU3RyOiBzdHJpbmcsXG4gIGlwU3RyOiBzdHJpbmcsXG4gIGlwTW9kZTogSVBNb2RlID0gSVBNb2RlLklQVjQsXG4pOiBib29sZWFuIHtcbiAgaWYgKFxuICAgICFpc0NpZHJBZGRyZXNzVmFsaWQoY2lkclN0ciwgaXBNb2RlKSB8fFxuICAgICFpc0lwQWRkcmVzc1ZhbGlkKGlwU3RyLCBpcE1vZGUpXG4gICkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IEJ1aWxkZXIgPSBnZXRBZGRyZXNzQnVpbGRlcihpcE1vZGUpO1xuICBjb25zdCBpcCA9IG5ldyBCdWlsZGVyKGlwU3RyKTtcbiAgY29uc3QgY2lkciA9IG5ldyBCdWlsZGVyKGNpZHJTdHIpO1xuICByZXR1cm4gaXAuaXNJblN1Ym5ldChjaWRyKTtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gaXAgc3BlY2lmaWMgaXAsIGUuZy4gMTAuMTYuMS4yXG4gKiBAcGFyYW0ge3N0cmluZ30gY2lkciBzcGVjaWZpYyBjaWRyIHdoaWNoIGlwIG1heSBiZWxvbmdzIHRvLCBlLmcuIDEwLjE2LjAuMC8yNFxuICogQHJldHVybiB7Ym9vbGVhbn0gd2hldGhlciBpcCBpcyBicm9hZGNhc3QgYWRkcmVzc1xuICovXG5leHBvcnQgZnVuY3Rpb24gaXNCcm9hZGNhc3RBZGRyKFxuICBpcFN0cjogc3RyaW5nLFxuICBjaWRyU3RyPzogc3RyaW5nLFxuICBpcE1vZGU6IElQTW9kZSA9IElQTW9kZS5JUFY0LFxuKTogYm9vbGVhbiB7XG4gIC8vIElQVjYg5peg5bm/5pKt5Zyw5Z2A5qaC5b+1XG4gIGlmIChpcE1vZGUgPT09IElQTW9kZS5JUFY2KSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGlmICghY2lkclN0cikge1xuICAgIHJldHVybiBpcFN0ciA9PT0gJzI1NS4yNTUuMjU1LjI1NSc7XG4gIH1cbiAgdHJ5IHtcbiAgICBjb25zdCBjaWRyID0gbmV3IEFkZHJlc3M0KGNpZHJTdHIpO1xuICAgIC8vIOWtkOe9keS4reeahOacgOWQjuS4gOS9jVxuICAgIHJldHVybiBpcFN0ciA9PT0gY2lkci5lbmRBZGRyZXNzKCkuYWRkcmVzcztcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0xvb3BiYWNrKGlwU3RyOiBzdHJpbmcsIGlwTW9kZTogSVBNb2RlID0gSVBNb2RlLklQVjQpIHtcbiAgY29uc3QgY2lkciA9IGlwTW9kZSA9PT0gSVBNb2RlLklQVjQgPyAnMTI3LjAuMC4wLzgnIDogJzo6MS8xMjgnO1xuICByZXR1cm4gaXNCZWxvbmdDaWRyKGNpZHIsIGlwU3RyLCBpcE1vZGUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNNdWx0aUJyb2FkY2FzdChpcFN0cjogc3RyaW5nLCBpcE1vZGU6IElQTW9kZSA9IElQTW9kZS5JUFY0KSB7XG4gIGNvbnN0IGNpZHIgPSBpcE1vZGUgPT09IElQTW9kZS5JUFY0ID8gJzIyNC4wLjAuMC80JyA6ICdmZjAwOjovOCc7XG4gIHJldHVybiBpc0JlbG9uZ0NpZHIoY2lkciwgaXBTdHIsIGlwTW9kZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0xpbmtMb2NhbChpcFN0cjogc3RyaW5nLCBpcE1vZGU6IElQTW9kZSA9IElQTW9kZS5JUFY0KSB7XG4gIGNvbnN0IGNpZHIgPSBpcE1vZGUgPT09IElQTW9kZS5JUFY0ID8gJzE2OS4yNTQuMC4wLzE2JyA6ICdmZTgwOjovMTAnO1xuICByZXR1cm4gaXNCZWxvbmdDaWRyKGNpZHIsIGlwU3RyLCBpcE1vZGUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNBbGxaZXJvKGlwU3RyOiBzdHJpbmcsIGlwTW9kZTogSVBNb2RlID0gSVBNb2RlLklQVjQpIHtcbiAgY29uc3QgY2lkciA9IGlwTW9kZSA9PT0gSVBNb2RlLklQVjQgPyAnMC4wLjAuMC8zMicgOiAnOjovMTI4JztcbiAgcmV0dXJuIGlzQmVsb25nQ2lkcihjaWRyLCBpcFN0ciwgaXBNb2RlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzTmV0d29ya0FkZHIoXG4gIGlwU3RyOiBzdHJpbmcsXG4gIGNpZHJTdHI/OiBzdHJpbmcsXG4gIGlwTW9kZTogSVBNb2RlID0gSVBNb2RlLklQVjQsXG4pIHtcbiAgaWYgKCFjaWRyU3RyKSB7XG4gICAgcmV0dXJuIGlwU3RyID09PSAnMC4wLjAuMCc7XG4gIH1cbiAgY29uc3QgQnVpbGRlciA9IGdldEFkZHJlc3NCdWlsZGVyKGlwTW9kZSk7XG4gIHRyeSB7XG4gICAgY29uc3QgY2lkciA9IG5ldyBCdWlsZGVyKGNpZHJTdHIpO1xuICAgIC8vIOWtkOe9keS4reeahOacgOWQjuS4gOS9jVxuICAgIHJldHVybiBpcFN0ciA9PT0gY2lkci5zdGFydEFkZHJlc3MoKS5hZGRyZXNzO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gY2lkckFTdHIgY2lkckJsb2NrIEEsIGUuZy4gMTAuMTYuMC4wLzI0LiBzdXBwb3J0IElQdjZcbiAqIEBwYXJhbSB7c3RyaW5nfSBjaWRyQlN0ciBjaWRyQmxvY2sgQiwgZS5nLiAxMC4xMC4wLjAvMTYuIHN1cHBvcnQgSVB2NlxuICogQHBhcmFtIHtJUE1vZGV9IGlwTW9kZSBpcE1vZGUsIHY0IG9yIHY2XG4gKiBAcmV0dXJuIHtib29sZWFufSB3aGV0aGVyIDIgY2lkciBibG9ja3MgbWF5IGNvbmZsaWN0LCBqdWRnZSBieSB3aGV0aGVyIGlwIGJlbG9uZ3MgdG8gY2lkckJsb2NrIEEgbWF5IGFsc28gYmVsb25ncyB0byBCXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0NpZHJDb25mbGljdChcbiAgY2lkckFTdHI6IHN0cmluZyxcbiAgY2lkckJTdHI6IHN0cmluZyxcbiAgaXBNb2RlOiBJUE1vZGUgPSBJUE1vZGUuSVBWNCxcbik6IGJvb2xlYW4ge1xuICBjb25zdCBCdWlsZGVyID0gZ2V0QWRkcmVzc0J1aWxkZXIoaXBNb2RlKTtcbiAgdHJ5IHtcbiAgICBjb25zdCBjaWRyQSA9IG5ldyBCdWlsZGVyKGNpZHJBU3RyKTtcbiAgICBjb25zdCBjaWRyQiA9IG5ldyBCdWlsZGVyKGNpZHJCU3RyKTtcbiAgICBjb25zdCBjaWRyQUZyb20gPSBjaWRyQS5zdGFydEFkZHJlc3MoKTtcbiAgICBjb25zdCBjaWRyQUVuZCA9IGNpZHJBLmVuZEFkZHJlc3MoKTtcbiAgICBjb25zdCBjaWRyQkZyb20gPSBjaWRyQi5zdGFydEFkZHJlc3MoKTtcbiAgICBjb25zdCBjaWRyQkVuZCA9IGNpZHJCLmVuZEFkZHJlc3MoKTtcbiAgICByZXR1cm4gKFxuICAgICAgY2lkckFGcm9tLmlzSW5TdWJuZXQoY2lkckIpIHx8XG4gICAgICBjaWRyQUVuZC5pc0luU3VibmV0KGNpZHJCKSB8fFxuICAgICAgY2lkckJGcm9tLmlzSW5TdWJuZXQoY2lkckEpIHx8XG4gICAgICBjaWRyQkVuZC5pc0luU3VibmV0KGNpZHJBKVxuICAgICk7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vLyB3aGV0aGVyIGNpZHJBIGNvbnRhaW5zIGNpZHJCIChjaWRyQSA+IGNpZHJCKVxuZXhwb3J0IGZ1bmN0aW9uIGlzQ2lkckNvbnRhaW4oXG4gIGNpZHJBU3RyOiBzdHJpbmcsXG4gIGNpZHJCU3RyOiBzdHJpbmcsXG4gIGlwTW9kZTogSVBNb2RlID0gSVBNb2RlLklQVjQsXG4pIHtcbiAgY29uc3QgQnVpbGRlciA9IGdldEFkZHJlc3NCdWlsZGVyKGlwTW9kZSk7XG4gIHRyeSB7XG4gICAgY29uc3QgY2lkckEgPSBuZXcgQnVpbGRlcihjaWRyQVN0cik7XG4gICAgY29uc3QgY2lkckIgPSBuZXcgQnVpbGRlcihjaWRyQlN0cik7XG4gICAgY29uc3QgY2lkckJGcm9tID0gY2lkckIuc3RhcnRBZGRyZXNzKCk7XG4gICAgY29uc3QgY2lkckJFbmQgPSBjaWRyQi5lbmRBZGRyZXNzKCk7XG4gICAgcmV0dXJuIGNpZHJCRnJvbS5pc0luU3VibmV0KGNpZHJBKSAmJiBjaWRyQkVuZC5pc0luU3VibmV0KGNpZHJBKTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBZGRyZXNzQnVpbGRlcihpcE1vZGU6IElQTW9kZSkge1xuICByZXR1cm4gaXBNb2RlID09PSBJUE1vZGUuSVBWNiA/IEFkZHJlc3M2IDogQWRkcmVzczQ7XG59XG5cbmV4cG9ydCBjb25zdCBwYXJzZUNJRFIgPSAoYWRkcmVzczogc3RyaW5nLCBpcE1vZGU6IElQTW9kZSA9IElQTW9kZS5JUFY0KSA9PiB7XG4gIGNvbnN0IEJ1aWxkZXIgPSBnZXRBZGRyZXNzQnVpbGRlcihpcE1vZGUpO1xuICB0cnkge1xuICAgIHJldHVybiBuZXcgQnVpbGRlcihhZGRyZXNzKTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBpcEFkZHJlc3NFcXVhbChcbiAgaXBBU3RyOiBzdHJpbmcsXG4gIGlwQlN0cjogc3RyaW5nLFxuICBpcE1vZGU6IElQTW9kZSA9IElQTW9kZS5JUFY0LFxuKSB7XG4gIGlmIChpcEFTdHIgPT09IGlwQlN0cikge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgaWYgKGlwTW9kZSA9PT0gSVBNb2RlLklQVjQpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB0cnkge1xuICAgIGNvbnN0IGlwQSA9IG5ldyBBZGRyZXNzNihpcEFTdHIpO1xuICAgIGNvbnN0IGlwQiA9IG5ldyBBZGRyZXNzNihpcEJTdHIpO1xuICAgIHJldHVybiBpcEEuYmlnSW50ZWdlcigpLmVxdWFscyhpcEIuYmlnSW50ZWdlcigpKTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0lwQWRkcmVzc1ZhbGlkKFxuICBhZGRyZXNzOiBzdHJpbmcsXG4gIGlwTW9kZTogSVBNb2RlID0gSVBNb2RlLklQVjQsXG4pIHtcbiAgY29uc3QgQnVpbGRlciA9IGdldEFkZHJlc3NCdWlsZGVyKGlwTW9kZSk7XG4gIHRyeSB7XG4gICAgY29uc3QgaXAgPSBuZXcgQnVpbGRlcihhZGRyZXNzKTtcbiAgICByZXR1cm4gIWlwLmFkZHJlc3MuaW5jbHVkZXMoJy8nKTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0NpZHJBZGRyZXNzVmFsaWQoXG4gIGFkZHJlc3M6IHN0cmluZyxcbiAgaXBNb2RlOiBJUE1vZGUgPSBJUE1vZGUuSVBWNCxcbikge1xuICBjb25zdCBjaWRyID0gcGFyc2VDSURSKGFkZHJlc3MsIGlwTW9kZSk7XG4gIHJldHVybiAhIWNpZHI/LmFkZHJlc3MuaW5jbHVkZXMoJy8nKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENpZHJUeXBlKGlwOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGlzSXB2NihpcD8uc3BsaXQoJy8nKT8uWzBdKSA/IElQTW9kZS5JUFY2IDogSVBNb2RlLklQVjQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0lwdjQodmFsdWU6IHN0cmluZykge1xuICByZXR1cm4gSVBfQUREUkVTU19QQVRURVJOLnBhdHRlcm4udGVzdCh2YWx1ZSk7XG59XG5leHBvcnQgZnVuY3Rpb24gaXNJcHY2KHZhbHVlOiBzdHJpbmcpIHtcbiAgcmV0dXJuIElQX1Y2X0FERFJFU1NfUEFUVEVSTi5wYXR0ZXJuLnRlc3QodmFsdWUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXBBZGRyZXNzKHZhbHVlOiBzdHJpbmcpIHtcbiAgaWYgKCF2YWx1ZSkge1xuICAgIHJldHVybiAnJztcbiAgfVxuICByZXR1cm4gaXNJcHY0KHZhbHVlKSA/IHZhbHVlIDogYFske3ZhbHVlfV1gO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3RyaWN0Q2lkcihjaWRyU3RyOiBzdHJpbmcsIGlwTW9kZTogSVBNb2RlKSB7XG4gIGlmICghY2lkclN0cikge1xuICAgIHJldHVybiBjaWRyU3RyO1xuICB9XG4gIGNvbnN0IEJ1aWxkZXIgPSBnZXRBZGRyZXNzQnVpbGRlcihpcE1vZGUpO1xuICB0cnkge1xuICAgIGNvbnN0IGNpZHIgPSBuZXcgQnVpbGRlcihjaWRyU3RyKTtcbiAgICByZXR1cm4gW2NpZHIuc3RhcnRBZGRyZXNzKCkuYWRkcmVzcywgY2lkci5zdWJuZXRdLmpvaW4oJycpO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IHBhcnNlU2VnbWVudCA9IChcbiAgc2VnbWVudD86IHN0cmluZyxcbiAgbmV0d29ya01vZGU/OiBOZXR3b3JrTW9kZSxcbik6IFNlZ21lbnRNb2RlbCA9PiB7XG4gIGlmICghc2VnbWVudCkge1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIGlmIChuZXR3b3JrTW9kZSA9PT0gTmV0d29ya01vZGUuSVBWNCkge1xuICAgIHJldHVybiB7XG4gICAgICBpcFY0U2VnbWVudDogc2VnbWVudCxcbiAgICB9O1xuICB9XG5cbiAgaWYgKG5ldHdvcmtNb2RlID09PSBOZXR3b3JrTW9kZS5JUFY2KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlwVjZTZWdtZW50OiBzZWdtZW50LFxuICAgIH07XG4gIH1cblxuICBsZXQgaXBWNFNlZ21lbnQ6IHN0cmluZztcbiAgbGV0IGlwVjZTZWdtZW50OiBzdHJpbmc7XG5cbiAgaWYgKHNlZ21lbnQuaW5jbHVkZXMoJywnKSkge1xuICAgIFtpcFY0U2VnbWVudCwgaXBWNlNlZ21lbnRdID0gc2VnbWVudC5zcGxpdCgnLCcpO1xuICB9IGVsc2UgaWYgKHNlZ21lbnQuaW5jbHVkZXMoJzonKSkge1xuICAgIGlwVjZTZWdtZW50ID0gc2VnbWVudDtcbiAgfSBlbHNlIHtcbiAgICBpcFY0U2VnbWVudCA9IHNlZ21lbnQ7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGlwVjRTZWdtZW50LFxuICAgIGlwVjZTZWdtZW50LFxuICB9O1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldENpZHJCbG9jayhcbiAgc2VnbWVudDogc3RyaW5nLFxuICBuZXR3b3JrVHlwZT86IE5ldHdvcmtNb2RlLFxuKTogc3RyaW5nO1xuZXhwb3J0IGZ1bmN0aW9uIGdldENpZHJCbG9jayh7XG4gIGlwVjRTZWdtZW50LFxuICBpcFY2U2VnbWVudCxcbn06IFNlZ21lbnRNb2RlbCk6IHN0cmluZztcbmV4cG9ydCBmdW5jdGlvbiBnZXRDaWRyQmxvY2soXG4gIHBhcmFtOiBTZWdtZW50TW9kZWwgfCBzdHJpbmcsXG4gIG5ldHdvcmtNb2RlPzogTmV0d29ya01vZGUsXG4pIHtcbiAgbGV0IGlwVjRTZWdtZW50OiBzdHJpbmc7XG4gIGxldCBpcFY2U2VnbWVudDogc3RyaW5nO1xuXG4gIGlmICh0eXBlb2YgcGFyYW0gPT09ICdzdHJpbmcnKSB7XG4gICAgY29uc3QgXyA9IHBhcnNlU2VnbWVudChwYXJhbSwgbmV0d29ya01vZGUpO1xuICAgIGlwVjRTZWdtZW50ID0gXy5pcFY0U2VnbWVudDtcbiAgICBpcFY2U2VnbWVudCA9IF8uaXBWNlNlZ21lbnQ7XG4gIH0gZWxzZSB7XG4gICAgaXBWNFNlZ21lbnQgPSBwYXJhbS5pcFY0U2VnbWVudDtcbiAgICBpcFY2U2VnbWVudCA9IHBhcmFtLmlwVjZTZWdtZW50O1xuICB9XG5cbiAgcmV0dXJuIFtcbiAgICBnZXRTdHJpY3RDaWRyKGlwVjRTZWdtZW50LCBJUE1vZGUuSVBWNCksXG4gICAgZ2V0U3RyaWN0Q2lkcihpcFY2U2VnbWVudCwgSVBNb2RlLklQVjYpLFxuICBdXG4gICAgLmZpbHRlcihCb29sZWFuKVxuICAgIC5qb2luKCcsJyk7XG59XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0lQVjRfTUFYX0NJRFJfUFJFRklYID0gMzE7XG5leHBvcnQgY29uc3QgREVGQVVMVF9JUFY2X01BWF9DSURSX1BSRUZJWCA9IDEyNztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfTkVUV09SS19DSURSX1BSRUZJWF9NQVBQRVIgPSB7XG4gIFtJUE1vZGUuSVBWNF06IERFRkFVTFRfSVBWNF9NQVhfQ0lEUl9QUkVGSVgsXG4gIFtJUE1vZGUuSVBWNl06IERFRkFVTFRfSVBWNl9NQVhfQ0lEUl9QUkVGSVgsXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2lkck1heGltdW1QcmVmaXgoaXBNb2RlOiBJUE1vZGUgPSBJUE1vZGUuSVBWNCkge1xuICByZXR1cm4gREVGQVVMVF9ORVRXT1JLX0NJRFJfUFJFRklYX01BUFBFUltpcE1vZGVdO1xufVxuXG5leHBvcnQgY29uc3QgYWRhcHRJcE1vZGUgPSAodmFsdWU6IHN0cmluZywgbmV0d29ya01vZGU6IE5ldHdvcmtNb2RlKSA9PlxuICBuZXR3b3JrTW9kZSA9PT0gTmV0d29ya01vZGUuRFVBTFxuICAgID8gdmFsdWUuaW5jbHVkZXMoJzonKVxuICAgICAgPyBOZXR3b3JrTW9kZS5JUFY2XG4gICAgICA6IE5ldHdvcmtNb2RlLklQVjRcbiAgICA6IG5ldHdvcmtNb2RlO1xuXG5leHBvcnQgY29uc3QgaXNJcFBhcnRWYWxpZCA9IChwYXJ0OiBzdHJpbmcsIGlzSXBWNDogYm9vbGVhbik6IGJvb2xlYW4gPT4ge1xuICBpZiAocGFydCA9PT0gJycpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBpZiAoaXNJcFY0KSB7XG4gICAgaWYgKElOVF9aRVJPX1BBVFRFUk4ucGF0dGVybi50ZXN0KHBhcnQpKSB7XG4gICAgICByZXR1cm4gTnVtYmVyKHBhcnQpIDw9IDI1NTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGlmICgvXltcXGRhLWZdKyQvaS50ZXN0KHBhcnQpKSB7XG4gICAgcmV0dXJuIE51bWJlci5wYXJzZUludChwYXJ0LCAxNikgPD0gMHhmZl9mZjtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59O1xuXG5leHBvcnQgY29uc3QgaXNJcFBhcnRzVmFsaWQgPSAocGFydHM6IHN0cmluZ1tdLCBpc0lwVjQ6IGJvb2xlYW4pOiBib29sZWFuID0+XG4gIHBhcnRzLmV2ZXJ5KHBhcnQgPT4gaXNJcFBhcnRWYWxpZChwYXJ0LCBpc0lwVjQpKTtcblxuZXhwb3J0IGNvbnN0IGlzSXBJbnB1dFZhbGlkID0gKGlucHV0OiBzdHJpbmcsIGlzSXBWNDogYm9vbGVhbik6IGJvb2xlYW4gPT4ge1xuICBjb25zdCBwYXJ0cyA9IGlucHV0LnNwbGl0KGlzSXBWNCA/ICcuJyA6ICc6Jyk7XG4gIHJldHVybiBwYXJ0cy5sZW5ndGggPD0gKGlzSXBWNCA/IDQgOiA4KSAmJiBpc0lwUGFydHNWYWxpZChwYXJ0cywgaXNJcFY0KTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRJcEFkZHJlc3NTdWdnZXN0aW9uc0J5Q2lkcnMgPSAoXG4gIGNpZHJzOiBzdHJpbmdbXSxcbiAgbmV0d29ya01vZGU6IE5ldHdvcmtNb2RlLFxuICB1c2VkSXBzOiBzdHJpbmdbXSxcbiAgaW5wdXRWYWx1ZTogc3RyaW5nLFxuICBpc0NhbGljbzogYm9vbGVhbixcbiAgbWF4U2l6ZSA9IDEwLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc29uYXJqcy9jb2duaXRpdmUtY29tcGxleGl0eVxuKTogc3RyaW5nW10gPT4ge1xuICBpbnB1dFZhbHVlID0gaW5wdXRWYWx1ZSA/PyAnJztcblxuICBjb25zdCBzdGFydCA9IHBlcmZvcm1hbmNlLm5vdygpO1xuXG4gIGNvbnN0IHJlc3VsdDogc3RyaW5nW10gPSBbXTtcblxuICBjb25zdCB1c2VkSXBWYWx1ZXMgPSBbXG4gICAgLi4udXNlZElwcy5yZWR1Y2U8U2V0PEJpZ0ludGVnZXI+PigoaXBWYWx1ZXMsIGlwKSA9PiB7XG4gICAgICBjb25zdCBCdWlsZGVyID0gZ2V0QWRkcmVzc0J1aWxkZXIoYWRhcHRJcE1vZGUoaXAsIG5ldHdvcmtNb2RlKSk7XG4gICAgICB0cnkge1xuICAgICAgICBpcFZhbHVlcy5hZGQobmV3IEJ1aWxkZXIoaXApLmJpZ0ludGVnZXIoKSk7XG4gICAgICB9IGNhdGNoIHt9XG4gICAgICByZXR1cm4gaXBWYWx1ZXM7XG4gICAgfSwgbmV3IFNldDxCaWdJbnRlZ2VyPigpKSxcbiAgXTtcblxuICBmb3IgKGNvbnN0IGNpZHIgb2YgY2lkcnMpIHtcbiAgICBjb25zdCBpcE1vZGUgPSBhZGFwdElwTW9kZShjaWRyLCBuZXR3b3JrTW9kZSk7XG5cbiAgICBjb25zdCBpc0lwVjQgPSBpcE1vZGUgPT09IElQTW9kZS5JUFY0O1xuXG4gICAgaWYgKCFpc0lwSW5wdXRWYWxpZChpbnB1dFZhbHVlLCBpc0lwVjQpKSB7XG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBjb25zdCBsb29wU3RhcnQgPSBwZXJmb3JtYW5jZS5ub3coKTtcblxuICAgIGNvbnN0IEJ1aWxkZXIgPSBnZXRBZGRyZXNzQnVpbGRlcihpcE1vZGUpO1xuXG4gICAgbGV0IGlwQ2lkcjogQWRkcmVzczQgfCBBZGRyZXNzNjtcblxuICAgIHRyeSB7XG4gICAgICBpcENpZHIgPSBuZXcgQnVpbGRlcihjaWRyKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IHN0YXJ0QWRkcmVzcyA9IGlwQ2lkci5fc3RhcnRBZGRyZXNzKCk7XG4gICAgY29uc3QgZW5kQWRkcmVzcyA9IGlwQ2lkci5fZW5kQWRkcmVzcygpO1xuXG4gICAgLy8g6Z2eIGNhbGljbyDmqKHlvI/kuIvvvIzkuI3lhYHorrjkvb/nlKjnvZHmrrXnmoTnrKzkuIDkuKrnvZHnu5wgSVAg5ZKM5pyA5ZCO5LiA5LiqIOW5v+aSrSBJUFxuICAgIGxldCBhZGRyZXNzID0gc3RhcnRBZGRyZXNzLmFkZChpc0NhbGljbyA/IEJpZ0ludGVnZXIuWkVSTyA6IEJpZ0ludGVnZXIuT05FKTtcblxuICAgIHdoaWxlIChhZGRyZXNzLmNvbXBhcmVUbyhlbmRBZGRyZXNzKSA8IChpc0NhbGljbyA/IDEgOiAwKSkge1xuICAgICAgY29uc3Qgbm93ID0gcGVyZm9ybWFuY2Uubm93KCk7XG5cbiAgICAgIC8vIENvbnNpZGVyaW5nIHRoZSBwZXJmb3JtYW5jZSwgd2UgZG9uJ3Qgd2FudCB0byBibG9jayB0aGUgVUkgdG9vIG11Y2hcbiAgICAgIGlmICghaXNJcFY0KSB7XG4gICAgICAgIGlmIChub3cgLSBsb29wU3RhcnQgPiAxMDApIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChub3cgLSBzdGFydCA+IDI1MCkge1xuICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKCF1c2VkSXBWYWx1ZXMuc29tZShpcCA9PiAhaXAuY29tcGFyZVRvKGFkZHJlc3MpKSkge1xuICAgICAgICBjb25zdCBpcEFkZHIgPSBCdWlsZGVyLmZyb21CaWdJbnRlZ2VyKGFkZHJlc3MpLmNvcnJlY3RGb3JtKCk7XG4gICAgICAgIGlmIChpcEFkZHIuaW5jbHVkZXMoaW5wdXRWYWx1ZSkpIHtcbiAgICAgICAgICByZXN1bHQucHVzaChpcEFkZHIpO1xuICAgICAgICAgIGlmIChyZXN1bHQubGVuZ3RoID49IG1heFNpemUpIHtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGFkZHJlc3MgPSBhZGRyZXNzLmFkZChCaWdJbnRlZ2VyLk9ORSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBhZGFwdFN1Ym5ldENpZHJzKFxuICBjaWRyczogc3RyaW5nLFxuICBuZXR3b3JrTW9kZTogTmV0d29ya01vZGUsXG4gIGVuYWJsZUZpeElwVjZGb3JEdWFsID0gZmFsc2UsXG4pIHtcbiAgcmV0dXJuIGNpZHJzXG4gICAgPy5zcGxpdCgnOycpXG4gICAgLm1hcChjaWRyID0+IHBhcnNlU2VnbWVudChjaWRyKSlcbiAgICAucmVkdWNlKChsaXN0LCBpdGVtKSA9PiB7XG4gICAgICBsaXN0LnB1c2goXG4gICAgICAgIGl0ZW0uaXBWNFNlZ21lbnQsXG4gICAgICAgIChuZXR3b3JrTW9kZSAhPT0gTmV0d29ya01vZGUuRFVBTCB8fCBlbmFibGVGaXhJcFY2Rm9yRHVhbCkgJiZcbiAgICAgICAgICBpdGVtLmlwVjZTZWdtZW50LFxuICAgICAgKTtcbiAgICAgIHJldHVybiBsaXN0O1xuICAgIH0sIFtdIGFzIHN0cmluZ1tdKVxuICAgIC5maWx0ZXIoQm9vbGVhbik7XG59XG5cbi8vIHJldHVybiB0cnVlIGlmIGlwQmVnaW4gPiBpcEVuZFxuZXhwb3J0IGZ1bmN0aW9uIGludmFsaWRJcE9yZGVyPFQgZXh0ZW5kcyBBZGRyZXNzNCB8IEFkZHJlc3M2PihcbiAgaXBCZWdpbjogVCxcbiAgaXBFbmQ6IFQsXG4pOiBib29sZWFuIHtcbiAgY29uc3QgaXBCZWdpbkJpZ0ludCA9IGlwQmVnaW4uYmlnSW50ZWdlcigpO1xuICBjb25zdCBpcEVuZEJpZ0ludCA9IGlwRW5kLmJpZ0ludGVnZXIoKTtcbiAgcmV0dXJuIGlwQmVnaW5CaWdJbnQuY29tcGFyZVRvKGlwRW5kQmlnSW50KSA+PSAwO1xufVxuIl19
359
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2lkci1leHBvcnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9uZXR3b3JrL3NyYy9saWIvdXRpbHMvY2lkci1leHBvcnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLHFCQUFxQixHQUV0QixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFPbEM7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHO0lBQ3BCLElBQUksRUFBRSxJQUFJO0lBQ1YsSUFBSSxFQUFFLElBQUk7Q0FDRixDQUFDO0FBSVgsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHO0lBQzFCLFNBQVMsRUFBRSxXQUFXO0lBQ3RCLE1BQU0sRUFBRSxRQUFRO0NBQ1IsQ0FBQztBQUlYLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBVSxDQUFDO0FBRTVELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRztJQUMzQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNO0lBQ3JCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU07Q0FDYixDQUFDO0FBRVgsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHO0lBQ3pCLEdBQUcsTUFBTTtJQUNULElBQUksRUFBRSxNQUFNO0NBQ0osQ0FBQztBQUlYOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FDMUIsT0FBZSxFQUNmLEtBQWEsRUFDYixTQUFpQixNQUFNLENBQUMsSUFBSTtJQUU1QixJQUNFLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQztRQUNwQyxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsRUFDaEMsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE1BQU0sT0FBTyxHQUFHLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzFDLE1BQU0sRUFBRSxHQUFHLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlCLE1BQU0sSUFBSSxHQUFHLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xDLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUM3QixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxlQUFlLENBQzdCLEtBQWEsRUFDYixPQUFnQixFQUNoQixTQUFpQixNQUFNLENBQUMsSUFBSTtJQUU1QixlQUFlO0lBQ2YsSUFBSSxNQUFNLEtBQUssTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUNELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNiLE9BQU8sS0FBSyxLQUFLLGlCQUFpQixDQUFDO0lBQ3JDLENBQUM7SUFDRCxJQUFJLENBQUM7UUFDSCxNQUFNLElBQUksR0FBRyxJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNuQyxXQUFXO1FBQ1gsT0FBTyxLQUFLLEtBQUssSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLE9BQU8sQ0FBQztJQUM3QyxDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxVQUFVLENBQUMsS0FBYSxFQUFFLFNBQWlCLE1BQU0sQ0FBQyxJQUFJO0lBQ3BFLE1BQU0sSUFBSSxHQUFHLE1BQU0sS0FBSyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNoRSxPQUFPLFlBQVksQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQzNDLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsS0FBYSxFQUFFLFNBQWlCLE1BQU0sQ0FBQyxJQUFJO0lBQzFFLE1BQU0sSUFBSSxHQUFHLE1BQU0sS0FBSyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQztJQUNqRSxPQUFPLFlBQVksQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQzNDLENBQUM7QUFFRCxNQUFNLFVBQVUsV0FBVyxDQUFDLEtBQWEsRUFBRSxTQUFpQixNQUFNLENBQUMsSUFBSTtJQUNyRSxNQUFNLElBQUksR0FBRyxNQUFNLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztJQUNyRSxPQUFPLFlBQVksQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQzNDLENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUyxDQUFDLEtBQWEsRUFBRSxTQUFpQixNQUFNLENBQUMsSUFBSTtJQUNuRSxNQUFNLElBQUksR0FBRyxNQUFNLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFDOUQsT0FBTyxZQUFZLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztBQUMzQyxDQUFDO0FBRUQsTUFBTSxVQUFVLGFBQWEsQ0FDM0IsS0FBYSxFQUNiLE9BQWdCLEVBQ2hCLFNBQWlCLE1BQU0sQ0FBQyxJQUFJO0lBRTVCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNiLE9BQU8sS0FBSyxLQUFLLFNBQVMsQ0FBQztJQUM3QixDQUFDO0lBQ0QsTUFBTSxPQUFPLEdBQUcsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUMsSUFBSSxDQUFDO1FBQ0gsTUFBTSxJQUFJLEdBQUcsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEMsV0FBVztRQUNYLE9BQU8sS0FBSyxLQUFLLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxPQUFPLENBQUM7SUFDL0MsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztBQUNILENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQzVCLFFBQWdCLEVBQ2hCLFFBQWdCLEVBQ2hCLFNBQWlCLE1BQU0sQ0FBQyxJQUFJO0lBRTVCLE1BQU0sT0FBTyxHQUFHLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzFDLElBQUksQ0FBQztRQUNILE1BQU0sS0FBSyxHQUFHLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sS0FBSyxHQUFHLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN2QyxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDcEMsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3ZDLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNwQyxPQUFPLENBQ0wsU0FBUyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUM7WUFDM0IsUUFBUSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUM7WUFDMUIsU0FBUyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUM7WUFDM0IsUUFBUSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FDM0IsQ0FBQztJQUNKLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7QUFDSCxDQUFDO0FBRUQsK0NBQStDO0FBQy9DLE1BQU0sVUFBVSxhQUFhLENBQzNCLFFBQWdCLEVBQ2hCLFFBQWdCLEVBQ2hCLFNBQWlCLE1BQU0sQ0FBQyxJQUFJO0lBRTVCLE1BQU0sT0FBTyxHQUFHLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzFDLElBQUksQ0FBQztRQUNILE1BQU0sS0FBSyxHQUFHLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sS0FBSyxHQUFHLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN2QyxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDcEMsT0FBTyxTQUFTLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLFFBQVEsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsTUFBYztJQUM5QyxPQUFPLE1BQU0sS0FBSyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztBQUN0RCxDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLENBQUMsT0FBZSxFQUFFLFNBQWlCLE1BQU0sQ0FBQyxJQUFJLEVBQUUsRUFBRTtJQUN6RSxNQUFNLE9BQU8sR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxQyxJQUFJLENBQUM7UUFDSCxPQUFPLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7QUFDSCxDQUFDLENBQUM7QUFFRixNQUFNLFVBQVUsY0FBYyxDQUM1QixNQUFjLEVBQ2QsTUFBYyxFQUNkLFNBQWlCLE1BQU0sQ0FBQyxJQUFJO0lBRTVCLElBQUksTUFBTSxLQUFLLE1BQU0sRUFBRSxDQUFDO1FBQ3RCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELElBQUksTUFBTSxLQUFLLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMzQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxJQUFJLENBQUM7UUFDSCxNQUFNLEdBQUcsR0FBRyxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNqQyxNQUFNLEdBQUcsR0FBRyxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNqQyxPQUFPLEdBQUcsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLE9BQWUsRUFDZixTQUFpQixNQUFNLENBQUMsSUFBSTtJQUU1QixNQUFNLE9BQU8sR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxQyxJQUFJLENBQUM7UUFDSCxNQUFNLEVBQUUsR0FBRyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsa0JBQWtCLENBQ2hDLE9BQWUsRUFDZixTQUFpQixNQUFNLENBQUMsSUFBSTtJQUU1QixNQUFNLElBQUksR0FBRyxTQUFTLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3hDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZDLENBQUM7QUFFRCxNQUFNLFVBQVUsV0FBVyxDQUFDLEVBQVU7SUFDcEMsT0FBTyxNQUFNLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7QUFDakUsQ0FBQztBQUVELE1BQU0sVUFBVSxNQUFNLENBQUMsS0FBYTtJQUNsQyxPQUFPLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDaEQsQ0FBQztBQUNELE1BQU0sVUFBVSxNQUFNLENBQUMsS0FBYTtJQUNsQyxPQUFPLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDbkQsQ0FBQztBQUVELE1BQU0sVUFBVSxTQUFTLENBQUMsS0FBYTtJQUNyQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDWCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssR0FBRyxDQUFDO0FBQzlDLENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFDLE9BQWUsRUFBRSxNQUFjO0lBQzNELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNiLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFDRCxNQUFNLE9BQU8sR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxQyxJQUFJLENBQUM7UUFDSCxNQUFNLElBQUksR0FBRyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsQyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7QUFDSCxDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQzFCLE9BQWdCLEVBQ2hCLFdBQXlCLEVBQ1gsRUFBRTtJQUNoQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDYixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxJQUFJLFdBQVcsS0FBSyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckMsT0FBTztZQUNMLFdBQVcsRUFBRSxPQUFPO1NBQ3JCLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxXQUFXLEtBQUssV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JDLE9BQU87WUFDTCxXQUFXLEVBQUUsT0FBTztTQUNyQixDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksV0FBbUIsQ0FBQztJQUN4QixJQUFJLFdBQW1CLENBQUM7SUFFeEIsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDMUIsQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNsRCxDQUFDO1NBQU0sSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDakMsV0FBVyxHQUFHLE9BQU8sQ0FBQztJQUN4QixDQUFDO1NBQU0sQ0FBQztRQUNOLFdBQVcsR0FBRyxPQUFPLENBQUM7SUFDeEIsQ0FBQztJQUVELE9BQU87UUFDTCxXQUFXO1FBQ1gsV0FBVztLQUNaLENBQUM7QUFDSixDQUFDLENBQUM7QUFVRixNQUFNLFVBQVUsWUFBWSxDQUMxQixLQUE0QixFQUM1QixXQUF5QjtJQUV6QixJQUFJLFdBQW1CLENBQUM7SUFDeEIsSUFBSSxXQUFtQixDQUFDO0lBRXhCLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDOUIsTUFBTSxDQUFDLEdBQUcsWUFBWSxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQztRQUMzQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQztRQUM1QixXQUFXLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQztJQUM5QixDQUFDO1NBQU0sQ0FBQztRQUNOLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDO1FBQ2hDLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxPQUFPO1FBQ0wsYUFBYSxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQ3ZDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQztLQUN4QztTQUNFLE1BQU0sQ0FBQyxPQUFPLENBQUM7U0FDZixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDZixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUcsRUFBRSxDQUFDO0FBQy9DLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLEdBQUcsQ0FBQztBQUVoRCxNQUFNLENBQUMsTUFBTSxrQ0FBa0MsR0FBRztJQUNoRCxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSw0QkFBNEI7SUFDM0MsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsNEJBQTRCO0NBQ25DLENBQUM7QUFFWCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsU0FBaUIsTUFBTSxDQUFDLElBQUk7SUFDL0QsT0FBTyxrQ0FBa0MsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNwRCxDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQUMsS0FBYSxFQUFFLFdBQXdCLEVBQUUsRUFBRSxDQUNyRSxXQUFXLEtBQUssV0FBVyxDQUFDLElBQUk7SUFDOUIsQ0FBQyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSTtRQUNsQixDQUFDLENBQUMsV0FBVyxDQUFDLElBQUk7SUFDcEIsQ0FBQyxDQUFDLFdBQVcsQ0FBQztBQUVsQixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxJQUFZLEVBQUUsTUFBZSxFQUFXLEVBQUU7SUFDdEUsSUFBSSxJQUFJLEtBQUssRUFBRSxFQUFFLENBQUM7UUFDaEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QsSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksZ0JBQWdCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3hDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQztRQUM3QixDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ0QsSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDN0IsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxPQUFPLENBQUM7SUFDOUMsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsS0FBZSxFQUFFLE1BQWUsRUFBVyxFQUFFLENBQzFFLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFFbkQsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsS0FBYSxFQUFFLE1BQWUsRUFBVyxFQUFFO0lBQ3hFLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzlDLE9BQU8sS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxjQUFjLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQzNFLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFHLENBQzVDLEtBQWUsRUFDZixXQUF3QixFQUN4QixPQUFpQixFQUNqQixVQUFrQixFQUNsQixRQUFpQixFQUNqQixPQUFPLEdBQUcsRUFBRSxFQUNGLEVBQUU7SUFDWixVQUFVLEdBQUcsVUFBVSxJQUFJLEVBQUUsQ0FBQztJQUU5QixNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUM7SUFFaEMsTUFBTSxNQUFNLEdBQWEsRUFBRSxDQUFDO0lBRTVCLE1BQU0sWUFBWSxHQUFHO1FBQ25CLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBa0IsQ0FBQyxRQUFRLEVBQUUsRUFBRSxFQUFFLEVBQUU7WUFDbEQsTUFBTSxPQUFPLEdBQUcsaUJBQWlCLENBQUMsV0FBVyxDQUFDLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQ2hFLElBQUksQ0FBQztnQkFDSCxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7WUFDN0MsQ0FBQztZQUFDLE1BQU0sQ0FBQyxDQUFBLENBQUM7WUFDVixPQUFPLFFBQVEsQ0FBQztRQUNsQixDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQWMsQ0FBQztLQUMxQixDQUFDO0lBRUYsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUN6QixNQUFNLE1BQU0sR0FBRyxXQUFXLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBRTlDLE1BQU0sTUFBTSxHQUFHLE1BQU0sS0FBSyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBRXRDLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDeEMsTUFBTTtRQUNSLENBQUM7UUFFRCxNQUFNLFNBQVMsR0FBRyxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUM7UUFFcEMsTUFBTSxPQUFPLEdBQUcsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFMUMsSUFBSSxNQUEyQixDQUFDO1FBRWhDLElBQUksQ0FBQztZQUNILE1BQU0sR0FBRyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QixDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1AsU0FBUztRQUNYLENBQUM7UUFFRCxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDNUMsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRXhDLDRDQUE0QztRQUM1QyxJQUFJLE9BQU8sR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRTVFLE9BQU8sT0FBTyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzFELE1BQU0sR0FBRyxHQUFHLFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUU5QixzRUFBc0U7WUFDdEUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNaLElBQUksR0FBRyxHQUFHLFNBQVMsR0FBRyxHQUFHLEVBQUUsQ0FBQztvQkFDMUIsTUFBTTtnQkFDUixDQUFDO2dCQUVELElBQUksR0FBRyxHQUFHLEtBQUssR0FBRyxHQUFHLEVBQUUsQ0FBQztvQkFDdEIsT0FBTyxNQUFNLENBQUM7Z0JBQ2hCLENBQUM7WUFDSCxDQUFDO1lBRUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNyRCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUM3RCxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztvQkFDaEMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDcEIsSUFBSSxNQUFNLENBQUMsTUFBTSxJQUFJLE9BQU8sRUFBRSxDQUFDO3dCQUM3QixPQUFPLE1BQU0sQ0FBQztvQkFDaEIsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztZQUVELE9BQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN4QyxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMsQ0FBQztBQUVGLE1BQU0sVUFBVSxnQkFBZ0IsQ0FDOUIsS0FBYSxFQUNiLFdBQXdCLEVBQ3hCLG9CQUFvQixHQUFHLEtBQUs7SUFFNUIsT0FBTyxLQUFLO1FBQ1YsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDO1NBQ1gsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQy9CLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRTtRQUNyQixJQUFJLENBQUMsSUFBSSxDQUNQLElBQUksQ0FBQyxXQUFXLEVBQ2hCLENBQUMsV0FBVyxLQUFLLFdBQVcsQ0FBQyxJQUFJLElBQUksb0JBQW9CLENBQUM7WUFDeEQsSUFBSSxDQUFDLFdBQVcsQ0FDbkIsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQyxFQUFFLEVBQWMsQ0FBQztTQUNqQixNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDckIsQ0FBQztBQUVELGlDQUFpQztBQUNqQyxNQUFNLFVBQVUsY0FBYyxDQUM1QixPQUFVLEVBQ1YsS0FBUTtJQUVSLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUMzQyxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDdkMsT0FBTyxhQUFhLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNuRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSU5UX1pFUk9fUEFUVEVSTixcbiAgSVBfQUREUkVTU19QQVRURVJOLFxuICBJUF9WNl9BRERSRVNTX1BBVFRFUk4sXG4gIFZhbHVlT2YsXG59IGZyb20gJ0BhbGF1ZGEtZmUvY29tbW9uJztcbmltcG9ydCB7IEFkZHJlc3M0LCBBZGRyZXNzNiB9IGZyb20gJ2lwLWFkZHJlc3MnO1xuaW1wb3J0IHsgQmlnSW50ZWdlciB9IGZyb20gJ2pzYm4nO1xuXG5pbnRlcmZhY2UgU2VnbWVudE1vZGVsIHtcbiAgaXBWNFNlZ21lbnQ/OiBzdHJpbmc7XG4gIGlwVjZTZWdtZW50Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIG5vdGU6IHdlIGRvbid0IHVzZSBlbnVtIGhlcmUgYmVjYXVzZSB0cyBkbyBub3Qgc3VwcG9ydCBleHRlbmRzIGVudW0gZm9yIG5vd1xuICogQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9UeXBlU2NyaXB0L2lzc3Vlcy8xNzU5MlxuICovXG5leHBvcnQgY29uc3QgSVBNb2RlID0ge1xuICBJUFY0OiAndjQnLFxuICBJUFY2OiAndjYnLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgSVBNb2RlID0gVmFsdWVPZjx0eXBlb2YgSVBNb2RlPjtcblxuZXhwb3J0IGNvbnN0IEFkZHJlc3NUeXBlcyA9IHtcbiAgQURWRVJUSVNFOiAnQWR2ZXJ0aXNlJyxcbiAgUFVCTElDOiAnUHVibGljJyxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIEFkZHJlc3NUeXBlcyA9IFZhbHVlT2Y8dHlwZW9mIEFkZHJlc3NUeXBlcz47XG5cbmV4cG9ydCBjb25zdCBJUF9NT0RFUyA9IFtJUE1vZGUuSVBWNCwgSVBNb2RlLklQVjZdIGFzIGNvbnN0O1xuXG5leHBvcnQgY29uc3QgSVBfTU9ERV9URVhUUyA9IHtcbiAgW0lQTW9kZS5JUFY0XTogJ0lQdjQnLFxuICBbSVBNb2RlLklQVjZdOiAnSVB2NicsXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgY29uc3QgTmV0d29ya01vZGUgPSB7XG4gIC4uLklQTW9kZSxcbiAgRFVBTDogJ2R1YWwnLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgTmV0d29ya01vZGUgPSBWYWx1ZU9mPHR5cGVvZiBOZXR3b3JrTW9kZT47XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IGNpZHJTdHIgY2lkckJsb2NrLCBlLmcuIDEwLjE2LjAuMC8yNCBtYXkgc3VwcG9ydCBpcHY2XG4gKiBAcGFyYW0ge3N0cmluZ30gaXBTdHIgc3BlY2lmaWMgaXAsIGUuZy4gMTAuMTYuMS4yIG1heSBzdXBwb3J0IGlwdjZcbiAqIEBwYXJhbSB7SVBNb2RlfSBpcE1vZGUgaXAgbmV0d29yayBtb2RlIGlwdjQvaXB2NlxuICogQHJldHVybiB7Ym9vbGVhbn0gd2hldGhlciBpcCBiZWxvbmdzIHRvIGNpZHJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQmVsb25nQ2lkcihcbiAgY2lkclN0cjogc3RyaW5nLFxuICBpcFN0cjogc3RyaW5nLFxuICBpcE1vZGU6IElQTW9kZSA9IElQTW9kZS5JUFY0LFxuKTogYm9vbGVhbiB7XG4gIGlmIChcbiAgICAhaXNDaWRyQWRkcmVzc1ZhbGlkKGNpZHJTdHIsIGlwTW9kZSkgfHxcbiAgICAhaXNJcEFkZHJlc3NWYWxpZChpcFN0ciwgaXBNb2RlKVxuICApIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBCdWlsZGVyID0gZ2V0QWRkcmVzc0J1aWxkZXIoaXBNb2RlKTtcbiAgY29uc3QgaXAgPSBuZXcgQnVpbGRlcihpcFN0cik7XG4gIGNvbnN0IGNpZHIgPSBuZXcgQnVpbGRlcihjaWRyU3RyKTtcbiAgcmV0dXJuIGlwLmlzSW5TdWJuZXQoY2lkcik7XG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IGlwIHNwZWNpZmljIGlwLCBlLmcuIDEwLjE2LjEuMlxuICogQHBhcmFtIHtzdHJpbmd9IGNpZHIgc3BlY2lmaWMgY2lkciB3aGljaCBpcCBtYXkgYmVsb25ncyB0bywgZS5nLiAxMC4xNi4wLjAvMjRcbiAqIEByZXR1cm4ge2Jvb2xlYW59IHdoZXRoZXIgaXAgaXMgYnJvYWRjYXN0IGFkZHJlc3NcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQnJvYWRjYXN0QWRkcihcbiAgaXBTdHI6IHN0cmluZyxcbiAgY2lkclN0cj86IHN0cmluZyxcbiAgaXBNb2RlOiBJUE1vZGUgPSBJUE1vZGUuSVBWNCxcbik6IGJvb2xlYW4ge1xuICAvLyBJUFY2IOaXoOW5v+aSreWcsOWdgOamguW/tVxuICBpZiAoaXBNb2RlID09PSBJUE1vZGUuSVBWNikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBpZiAoIWNpZHJTdHIpIHtcbiAgICByZXR1cm4gaXBTdHIgPT09ICcyNTUuMjU1LjI1NS4yNTUnO1xuICB9XG4gIHRyeSB7XG4gICAgY29uc3QgY2lkciA9IG5ldyBBZGRyZXNzNChjaWRyU3RyKTtcbiAgICAvLyDlrZDnvZHkuK3nmoTmnIDlkI7kuIDkvY1cbiAgICByZXR1cm4gaXBTdHIgPT09IGNpZHIuZW5kQWRkcmVzcygpLmFkZHJlc3M7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNMb29wYmFjayhpcFN0cjogc3RyaW5nLCBpcE1vZGU6IElQTW9kZSA9IElQTW9kZS5JUFY0KSB7XG4gIGNvbnN0IGNpZHIgPSBpcE1vZGUgPT09IElQTW9kZS5JUFY0ID8gJzEyNy4wLjAuMC84JyA6ICc6OjEvMTI4JztcbiAgcmV0dXJuIGlzQmVsb25nQ2lkcihjaWRyLCBpcFN0ciwgaXBNb2RlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzTXVsdGlCcm9hZGNhc3QoaXBTdHI6IHN0cmluZywgaXBNb2RlOiBJUE1vZGUgPSBJUE1vZGUuSVBWNCkge1xuICBjb25zdCBjaWRyID0gaXBNb2RlID09PSBJUE1vZGUuSVBWNCA/ICcyMjQuMC4wLjAvNCcgOiAnZmYwMDo6LzgnO1xuICByZXR1cm4gaXNCZWxvbmdDaWRyKGNpZHIsIGlwU3RyLCBpcE1vZGUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNMaW5rTG9jYWwoaXBTdHI6IHN0cmluZywgaXBNb2RlOiBJUE1vZGUgPSBJUE1vZGUuSVBWNCkge1xuICBjb25zdCBjaWRyID0gaXBNb2RlID09PSBJUE1vZGUuSVBWNCA/ICcxNjkuMjU0LjAuMC8xNicgOiAnZmU4MDo6LzEwJztcbiAgcmV0dXJuIGlzQmVsb25nQ2lkcihjaWRyLCBpcFN0ciwgaXBNb2RlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQWxsWmVybyhpcFN0cjogc3RyaW5nLCBpcE1vZGU6IElQTW9kZSA9IElQTW9kZS5JUFY0KSB7XG4gIGNvbnN0IGNpZHIgPSBpcE1vZGUgPT09IElQTW9kZS5JUFY0ID8gJzAuMC4wLjAvMzInIDogJzo6LzEyOCc7XG4gIHJldHVybiBpc0JlbG9uZ0NpZHIoY2lkciwgaXBTdHIsIGlwTW9kZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc05ldHdvcmtBZGRyKFxuICBpcFN0cjogc3RyaW5nLFxuICBjaWRyU3RyPzogc3RyaW5nLFxuICBpcE1vZGU6IElQTW9kZSA9IElQTW9kZS5JUFY0LFxuKSB7XG4gIGlmICghY2lkclN0cikge1xuICAgIHJldHVybiBpcFN0ciA9PT0gJzAuMC4wLjAnO1xuICB9XG4gIGNvbnN0IEJ1aWxkZXIgPSBnZXRBZGRyZXNzQnVpbGRlcihpcE1vZGUpO1xuICB0cnkge1xuICAgIGNvbnN0IGNpZHIgPSBuZXcgQnVpbGRlcihjaWRyU3RyKTtcbiAgICAvLyDlrZDnvZHkuK3nmoTmnIDlkI7kuIDkvY1cbiAgICByZXR1cm4gaXBTdHIgPT09IGNpZHIuc3RhcnRBZGRyZXNzKCkuYWRkcmVzcztcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IGNpZHJBU3RyIGNpZHJCbG9jayBBLCBlLmcuIDEwLjE2LjAuMC8yNC4gc3VwcG9ydCBJUHY2XG4gKiBAcGFyYW0ge3N0cmluZ30gY2lkckJTdHIgY2lkckJsb2NrIEIsIGUuZy4gMTAuMTAuMC4wLzE2LiBzdXBwb3J0IElQdjZcbiAqIEBwYXJhbSB7SVBNb2RlfSBpcE1vZGUgaXBNb2RlLCB2NCBvciB2NlxuICogQHJldHVybiB7Ym9vbGVhbn0gd2hldGhlciAyIGNpZHIgYmxvY2tzIG1heSBjb25mbGljdCwganVkZ2UgYnkgd2hldGhlciBpcCBiZWxvbmdzIHRvIGNpZHJCbG9jayBBIG1heSBhbHNvIGJlbG9uZ3MgdG8gQlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNDaWRyQ29uZmxpY3QoXG4gIGNpZHJBU3RyOiBzdHJpbmcsXG4gIGNpZHJCU3RyOiBzdHJpbmcsXG4gIGlwTW9kZTogSVBNb2RlID0gSVBNb2RlLklQVjQsXG4pOiBib29sZWFuIHtcbiAgY29uc3QgQnVpbGRlciA9IGdldEFkZHJlc3NCdWlsZGVyKGlwTW9kZSk7XG4gIHRyeSB7XG4gICAgY29uc3QgY2lkckEgPSBuZXcgQnVpbGRlcihjaWRyQVN0cik7XG4gICAgY29uc3QgY2lkckIgPSBuZXcgQnVpbGRlcihjaWRyQlN0cik7XG4gICAgY29uc3QgY2lkckFGcm9tID0gY2lkckEuc3RhcnRBZGRyZXNzKCk7XG4gICAgY29uc3QgY2lkckFFbmQgPSBjaWRyQS5lbmRBZGRyZXNzKCk7XG4gICAgY29uc3QgY2lkckJGcm9tID0gY2lkckIuc3RhcnRBZGRyZXNzKCk7XG4gICAgY29uc3QgY2lkckJFbmQgPSBjaWRyQi5lbmRBZGRyZXNzKCk7XG4gICAgcmV0dXJuIChcbiAgICAgIGNpZHJBRnJvbS5pc0luU3VibmV0KGNpZHJCKSB8fFxuICAgICAgY2lkckFFbmQuaXNJblN1Ym5ldChjaWRyQikgfHxcbiAgICAgIGNpZHJCRnJvbS5pc0luU3VibmV0KGNpZHJBKSB8fFxuICAgICAgY2lkckJFbmQuaXNJblN1Ym5ldChjaWRyQSlcbiAgICApO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLy8gd2hldGhlciBjaWRyQSBjb250YWlucyBjaWRyQiAoY2lkckEgPiBjaWRyQilcbmV4cG9ydCBmdW5jdGlvbiBpc0NpZHJDb250YWluKFxuICBjaWRyQVN0cjogc3RyaW5nLFxuICBjaWRyQlN0cjogc3RyaW5nLFxuICBpcE1vZGU6IElQTW9kZSA9IElQTW9kZS5JUFY0LFxuKSB7XG4gIGNvbnN0IEJ1aWxkZXIgPSBnZXRBZGRyZXNzQnVpbGRlcihpcE1vZGUpO1xuICB0cnkge1xuICAgIGNvbnN0IGNpZHJBID0gbmV3IEJ1aWxkZXIoY2lkckFTdHIpO1xuICAgIGNvbnN0IGNpZHJCID0gbmV3IEJ1aWxkZXIoY2lkckJTdHIpO1xuICAgIGNvbnN0IGNpZHJCRnJvbSA9IGNpZHJCLnN0YXJ0QWRkcmVzcygpO1xuICAgIGNvbnN0IGNpZHJCRW5kID0gY2lkckIuZW5kQWRkcmVzcygpO1xuICAgIHJldHVybiBjaWRyQkZyb20uaXNJblN1Ym5ldChjaWRyQSkgJiYgY2lkckJFbmQuaXNJblN1Ym5ldChjaWRyQSk7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWRkcmVzc0J1aWxkZXIoaXBNb2RlOiBJUE1vZGUpIHtcbiAgcmV0dXJuIGlwTW9kZSA9PT0gSVBNb2RlLklQVjYgPyBBZGRyZXNzNiA6IEFkZHJlc3M0O1xufVxuXG5leHBvcnQgY29uc3QgcGFyc2VDSURSID0gKGFkZHJlc3M6IHN0cmluZywgaXBNb2RlOiBJUE1vZGUgPSBJUE1vZGUuSVBWNCkgPT4ge1xuICBjb25zdCBCdWlsZGVyID0gZ2V0QWRkcmVzc0J1aWxkZXIoaXBNb2RlKTtcbiAgdHJ5IHtcbiAgICByZXR1cm4gbmV3IEJ1aWxkZXIoYWRkcmVzcyk7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBudWxsO1xuICB9XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gaXBBZGRyZXNzRXF1YWwoXG4gIGlwQVN0cjogc3RyaW5nLFxuICBpcEJTdHI6IHN0cmluZyxcbiAgaXBNb2RlOiBJUE1vZGUgPSBJUE1vZGUuSVBWNCxcbikge1xuICBpZiAoaXBBU3RyID09PSBpcEJTdHIpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGlmIChpcE1vZGUgPT09IElQTW9kZS5JUFY0KSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgdHJ5IHtcbiAgICBjb25zdCBpcEEgPSBuZXcgQWRkcmVzczYoaXBBU3RyKTtcbiAgICBjb25zdCBpcEIgPSBuZXcgQWRkcmVzczYoaXBCU3RyKTtcbiAgICByZXR1cm4gaXBBLmJpZ0ludGVnZXIoKS5lcXVhbHMoaXBCLmJpZ0ludGVnZXIoKSk7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNJcEFkZHJlc3NWYWxpZChcbiAgYWRkcmVzczogc3RyaW5nLFxuICBpcE1vZGU6IElQTW9kZSA9IElQTW9kZS5JUFY0LFxuKSB7XG4gIGNvbnN0IEJ1aWxkZXIgPSBnZXRBZGRyZXNzQnVpbGRlcihpcE1vZGUpO1xuICB0cnkge1xuICAgIGNvbnN0IGlwID0gbmV3IEJ1aWxkZXIoYWRkcmVzcyk7XG4gICAgcmV0dXJuICFpcC5hZGRyZXNzLmluY2x1ZGVzKCcvJyk7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNDaWRyQWRkcmVzc1ZhbGlkKFxuICBhZGRyZXNzOiBzdHJpbmcsXG4gIGlwTW9kZTogSVBNb2RlID0gSVBNb2RlLklQVjQsXG4pIHtcbiAgY29uc3QgY2lkciA9IHBhcnNlQ0lEUihhZGRyZXNzLCBpcE1vZGUpO1xuICByZXR1cm4gISFjaWRyPy5hZGRyZXNzLmluY2x1ZGVzKCcvJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDaWRyVHlwZShpcDogc3RyaW5nKSB7XG4gIHJldHVybiBpc0lwdjYoaXA/LnNwbGl0KCcvJyk/LlswXSkgPyBJUE1vZGUuSVBWNiA6IElQTW9kZS5JUFY0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNJcHY0KHZhbHVlOiBzdHJpbmcpIHtcbiAgcmV0dXJuIElQX0FERFJFU1NfUEFUVEVSTi5wYXR0ZXJuLnRlc3QodmFsdWUpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGlzSXB2Nih2YWx1ZTogc3RyaW5nKSB7XG4gIHJldHVybiBJUF9WNl9BRERSRVNTX1BBVFRFUk4ucGF0dGVybi50ZXN0KHZhbHVlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlwQWRkcmVzcyh2YWx1ZTogc3RyaW5nKSB7XG4gIGlmICghdmFsdWUpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cbiAgcmV0dXJuIGlzSXB2NCh2YWx1ZSkgPyB2YWx1ZSA6IGBbJHt2YWx1ZX1dYDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFN0cmljdENpZHIoY2lkclN0cjogc3RyaW5nLCBpcE1vZGU6IElQTW9kZSkge1xuICBpZiAoIWNpZHJTdHIpIHtcbiAgICByZXR1cm4gY2lkclN0cjtcbiAgfVxuICBjb25zdCBCdWlsZGVyID0gZ2V0QWRkcmVzc0J1aWxkZXIoaXBNb2RlKTtcbiAgdHJ5IHtcbiAgICBjb25zdCBjaWRyID0gbmV3IEJ1aWxkZXIoY2lkclN0cik7XG4gICAgcmV0dXJuIFtjaWRyLnN0YXJ0QWRkcmVzcygpLmFkZHJlc3MsIGNpZHIuc3VibmV0XS5qb2luKCcnKTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuICcnO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBwYXJzZVNlZ21lbnQgPSAoXG4gIHNlZ21lbnQ/OiBzdHJpbmcsXG4gIG5ldHdvcmtNb2RlPzogTmV0d29ya01vZGUsXG4pOiBTZWdtZW50TW9kZWwgPT4ge1xuICBpZiAoIXNlZ21lbnQpIHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICBpZiAobmV0d29ya01vZGUgPT09IE5ldHdvcmtNb2RlLklQVjQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgaXBWNFNlZ21lbnQ6IHNlZ21lbnQsXG4gICAgfTtcbiAgfVxuXG4gIGlmIChuZXR3b3JrTW9kZSA9PT0gTmV0d29ya01vZGUuSVBWNikge1xuICAgIHJldHVybiB7XG4gICAgICBpcFY2U2VnbWVudDogc2VnbWVudCxcbiAgICB9O1xuICB9XG5cbiAgbGV0IGlwVjRTZWdtZW50OiBzdHJpbmc7XG4gIGxldCBpcFY2U2VnbWVudDogc3RyaW5nO1xuXG4gIGlmIChzZWdtZW50LmluY2x1ZGVzKCcsJykpIHtcbiAgICBbaXBWNFNlZ21lbnQsIGlwVjZTZWdtZW50XSA9IHNlZ21lbnQuc3BsaXQoJywnKTtcbiAgfSBlbHNlIGlmIChzZWdtZW50LmluY2x1ZGVzKCc6JykpIHtcbiAgICBpcFY2U2VnbWVudCA9IHNlZ21lbnQ7XG4gIH0gZWxzZSB7XG4gICAgaXBWNFNlZ21lbnQgPSBzZWdtZW50O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBpcFY0U2VnbWVudCxcbiAgICBpcFY2U2VnbWVudCxcbiAgfTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDaWRyQmxvY2soXG4gIHNlZ21lbnQ6IHN0cmluZyxcbiAgbmV0d29ya1R5cGU/OiBOZXR3b3JrTW9kZSxcbik6IHN0cmluZztcbmV4cG9ydCBmdW5jdGlvbiBnZXRDaWRyQmxvY2soe1xuICBpcFY0U2VnbWVudCxcbiAgaXBWNlNlZ21lbnQsXG59OiBTZWdtZW50TW9kZWwpOiBzdHJpbmc7XG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2lkckJsb2NrKFxuICBwYXJhbTogU2VnbWVudE1vZGVsIHwgc3RyaW5nLFxuICBuZXR3b3JrTW9kZT86IE5ldHdvcmtNb2RlLFxuKSB7XG4gIGxldCBpcFY0U2VnbWVudDogc3RyaW5nO1xuICBsZXQgaXBWNlNlZ21lbnQ6IHN0cmluZztcblxuICBpZiAodHlwZW9mIHBhcmFtID09PSAnc3RyaW5nJykge1xuICAgIGNvbnN0IF8gPSBwYXJzZVNlZ21lbnQocGFyYW0sIG5ldHdvcmtNb2RlKTtcbiAgICBpcFY0U2VnbWVudCA9IF8uaXBWNFNlZ21lbnQ7XG4gICAgaXBWNlNlZ21lbnQgPSBfLmlwVjZTZWdtZW50O1xuICB9IGVsc2Uge1xuICAgIGlwVjRTZWdtZW50ID0gcGFyYW0uaXBWNFNlZ21lbnQ7XG4gICAgaXBWNlNlZ21lbnQgPSBwYXJhbS5pcFY2U2VnbWVudDtcbiAgfVxuXG4gIHJldHVybiBbXG4gICAgZ2V0U3RyaWN0Q2lkcihpcFY0U2VnbWVudCwgSVBNb2RlLklQVjQpLFxuICAgIGdldFN0cmljdENpZHIoaXBWNlNlZ21lbnQsIElQTW9kZS5JUFY2KSxcbiAgXVxuICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAuam9pbignLCcpO1xufVxuXG5leHBvcnQgY29uc3QgREVGQVVMVF9JUFY0X01BWF9DSURSX1BSRUZJWCA9IDMxO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfSVBWNl9NQVhfQ0lEUl9QUkVGSVggPSAxMjc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX05FVFdPUktfQ0lEUl9QUkVGSVhfTUFQUEVSID0ge1xuICBbSVBNb2RlLklQVjRdOiBERUZBVUxUX0lQVjRfTUFYX0NJRFJfUFJFRklYLFxuICBbSVBNb2RlLklQVjZdOiBERUZBVUxUX0lQVjZfTUFYX0NJRFJfUFJFRklYLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldENpZHJNYXhpbXVtUHJlZml4KGlwTW9kZTogSVBNb2RlID0gSVBNb2RlLklQVjQpIHtcbiAgcmV0dXJuIERFRkFVTFRfTkVUV09SS19DSURSX1BSRUZJWF9NQVBQRVJbaXBNb2RlXTtcbn1cblxuZXhwb3J0IGNvbnN0IGFkYXB0SXBNb2RlID0gKHZhbHVlOiBzdHJpbmcsIG5ldHdvcmtNb2RlOiBOZXR3b3JrTW9kZSkgPT5cbiAgbmV0d29ya01vZGUgPT09IE5ldHdvcmtNb2RlLkRVQUxcbiAgICA/IHZhbHVlPy5pbmNsdWRlcygnOicpXG4gICAgICA/IE5ldHdvcmtNb2RlLklQVjZcbiAgICAgIDogTmV0d29ya01vZGUuSVBWNFxuICAgIDogbmV0d29ya01vZGU7XG5cbmV4cG9ydCBjb25zdCBpc0lwUGFydFZhbGlkID0gKHBhcnQ6IHN0cmluZywgaXNJcFY0OiBib29sZWFuKTogYm9vbGVhbiA9PiB7XG4gIGlmIChwYXJ0ID09PSAnJykge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIGlmIChpc0lwVjQpIHtcbiAgICBpZiAoSU5UX1pFUk9fUEFUVEVSTi5wYXR0ZXJuLnRlc3QocGFydCkpIHtcbiAgICAgIHJldHVybiBOdW1iZXIocGFydCkgPD0gMjU1O1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgaWYgKC9eW1xcZGEtZl0rJC9pLnRlc3QocGFydCkpIHtcbiAgICByZXR1cm4gTnVtYmVyLnBhcnNlSW50KHBhcnQsIDE2KSA8PSAweGZmX2ZmO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc0lwUGFydHNWYWxpZCA9IChwYXJ0czogc3RyaW5nW10sIGlzSXBWNDogYm9vbGVhbik6IGJvb2xlYW4gPT5cbiAgcGFydHMuZXZlcnkocGFydCA9PiBpc0lwUGFydFZhbGlkKHBhcnQsIGlzSXBWNCkpO1xuXG5leHBvcnQgY29uc3QgaXNJcElucHV0VmFsaWQgPSAoaW5wdXQ6IHN0cmluZywgaXNJcFY0OiBib29sZWFuKTogYm9vbGVhbiA9PiB7XG4gIGNvbnN0IHBhcnRzID0gaW5wdXQuc3BsaXQoaXNJcFY0ID8gJy4nIDogJzonKTtcbiAgcmV0dXJuIHBhcnRzLmxlbmd0aCA8PSAoaXNJcFY0ID8gNCA6IDgpICYmIGlzSXBQYXJ0c1ZhbGlkKHBhcnRzLCBpc0lwVjQpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldElwQWRkcmVzc1N1Z2dlc3Rpb25zQnlDaWRycyA9IChcbiAgY2lkcnM6IHN0cmluZ1tdLFxuICBuZXR3b3JrTW9kZTogTmV0d29ya01vZGUsXG4gIHVzZWRJcHM6IHN0cmluZ1tdLFxuICBpbnB1dFZhbHVlOiBzdHJpbmcsXG4gIGlzQ2FsaWNvOiBib29sZWFuLFxuICBtYXhTaXplID0gMTAsXG4pOiBzdHJpbmdbXSA9PiB7XG4gIGlucHV0VmFsdWUgPSBpbnB1dFZhbHVlID8/ICcnO1xuXG4gIGNvbnN0IHN0YXJ0ID0gcGVyZm9ybWFuY2Uubm93KCk7XG5cbiAgY29uc3QgcmVzdWx0OiBzdHJpbmdbXSA9IFtdO1xuXG4gIGNvbnN0IHVzZWRJcFZhbHVlcyA9IFtcbiAgICAuLi51c2VkSXBzLnJlZHVjZTxTZXQ8QmlnSW50ZWdlcj4+KChpcFZhbHVlcywgaXApID0+IHtcbiAgICAgIGNvbnN0IEJ1aWxkZXIgPSBnZXRBZGRyZXNzQnVpbGRlcihhZGFwdElwTW9kZShpcCwgbmV0d29ya01vZGUpKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGlwVmFsdWVzLmFkZChuZXcgQnVpbGRlcihpcCkuYmlnSW50ZWdlcigpKTtcbiAgICAgIH0gY2F0Y2gge31cbiAgICAgIHJldHVybiBpcFZhbHVlcztcbiAgICB9LCBuZXcgU2V0PEJpZ0ludGVnZXI+KCkpLFxuICBdO1xuXG4gIGZvciAoY29uc3QgY2lkciBvZiBjaWRycykge1xuICAgIGNvbnN0IGlwTW9kZSA9IGFkYXB0SXBNb2RlKGNpZHIsIG5ldHdvcmtNb2RlKTtcblxuICAgIGNvbnN0IGlzSXBWNCA9IGlwTW9kZSA9PT0gSVBNb2RlLklQVjQ7XG5cbiAgICBpZiAoIWlzSXBJbnB1dFZhbGlkKGlucHV0VmFsdWUsIGlzSXBWNCkpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGNvbnN0IGxvb3BTdGFydCA9IHBlcmZvcm1hbmNlLm5vdygpO1xuXG4gICAgY29uc3QgQnVpbGRlciA9IGdldEFkZHJlc3NCdWlsZGVyKGlwTW9kZSk7XG5cbiAgICBsZXQgaXBDaWRyOiBBZGRyZXNzNCB8IEFkZHJlc3M2O1xuXG4gICAgdHJ5IHtcbiAgICAgIGlwQ2lkciA9IG5ldyBCdWlsZGVyKGNpZHIpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RhcnRBZGRyZXNzID0gaXBDaWRyLl9zdGFydEFkZHJlc3MoKTtcbiAgICBjb25zdCBlbmRBZGRyZXNzID0gaXBDaWRyLl9lbmRBZGRyZXNzKCk7XG5cbiAgICAvLyDpnZ4gY2FsaWNvIOaooeW8j+S4i++8jOS4jeWFgeiuuOS9v+eUqOe9keauteeahOesrOS4gOS4que9kee7nCBJUCDlkozmnIDlkI7kuIDkuKog5bm/5pKtIElQXG4gICAgbGV0IGFkZHJlc3MgPSBzdGFydEFkZHJlc3MuYWRkKGlzQ2FsaWNvID8gQmlnSW50ZWdlci5aRVJPIDogQmlnSW50ZWdlci5PTkUpO1xuXG4gICAgd2hpbGUgKGFkZHJlc3MuY29tcGFyZVRvKGVuZEFkZHJlc3MpIDwgKGlzQ2FsaWNvID8gMSA6IDApKSB7XG4gICAgICBjb25zdCBub3cgPSBwZXJmb3JtYW5jZS5ub3coKTtcblxuICAgICAgLy8gQ29uc2lkZXJpbmcgdGhlIHBlcmZvcm1hbmNlLCB3ZSBkb24ndCB3YW50IHRvIGJsb2NrIHRoZSBVSSB0b28gbXVjaFxuICAgICAgaWYgKCFpc0lwVjQpIHtcbiAgICAgICAgaWYgKG5vdyAtIGxvb3BTdGFydCA+IDEwMCkge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG5vdyAtIHN0YXJ0ID4gMjUwKSB7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoIXVzZWRJcFZhbHVlcy5zb21lKGlwID0+ICFpcC5jb21wYXJlVG8oYWRkcmVzcykpKSB7XG4gICAgICAgIGNvbnN0IGlwQWRkciA9IEJ1aWxkZXIuZnJvbUJpZ0ludGVnZXIoYWRkcmVzcykuY29ycmVjdEZvcm0oKTtcbiAgICAgICAgaWYgKGlwQWRkci5pbmNsdWRlcyhpbnB1dFZhbHVlKSkge1xuICAgICAgICAgIHJlc3VsdC5wdXNoKGlwQWRkcik7XG4gICAgICAgICAgaWYgKHJlc3VsdC5sZW5ndGggPj0gbWF4U2l6ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgYWRkcmVzcyA9IGFkZHJlc3MuYWRkKEJpZ0ludGVnZXIuT05FKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGFkYXB0U3VibmV0Q2lkcnMoXG4gIGNpZHJzOiBzdHJpbmcsXG4gIG5ldHdvcmtNb2RlOiBOZXR3b3JrTW9kZSxcbiAgZW5hYmxlRml4SXBWNkZvckR1YWwgPSBmYWxzZSxcbikge1xuICByZXR1cm4gY2lkcnNcbiAgICA/LnNwbGl0KCc7JylcbiAgICAubWFwKGNpZHIgPT4gcGFyc2VTZWdtZW50KGNpZHIpKVxuICAgIC5yZWR1Y2UoKGxpc3QsIGl0ZW0pID0+IHtcbiAgICAgIGxpc3QucHVzaChcbiAgICAgICAgaXRlbS5pcFY0U2VnbWVudCxcbiAgICAgICAgKG5ldHdvcmtNb2RlICE9PSBOZXR3b3JrTW9kZS5EVUFMIHx8IGVuYWJsZUZpeElwVjZGb3JEdWFsKSAmJlxuICAgICAgICAgIGl0ZW0uaXBWNlNlZ21lbnQsXG4gICAgICApO1xuICAgICAgcmV0dXJuIGxpc3Q7XG4gICAgfSwgW10gYXMgc3RyaW5nW10pXG4gICAgLmZpbHRlcihCb29sZWFuKTtcbn1cblxuLy8gcmV0dXJuIHRydWUgaWYgaXBCZWdpbiA+IGlwRW5kXG5leHBvcnQgZnVuY3Rpb24gaW52YWxpZElwT3JkZXI8VCBleHRlbmRzIEFkZHJlc3M0IHwgQWRkcmVzczY+KFxuICBpcEJlZ2luOiBULFxuICBpcEVuZDogVCxcbik6IGJvb2xlYW4ge1xuICBjb25zdCBpcEJlZ2luQmlnSW50ID0gaXBCZWdpbi5iaWdJbnRlZ2VyKCk7XG4gIGNvbnN0IGlwRW5kQmlnSW50ID0gaXBFbmQuYmlnSW50ZWdlcigpO1xuICByZXR1cm4gaXBCZWdpbkJpZ0ludC5jb21wYXJlVG8oaXBFbmRCaWdJbnQpID49IDA7XG59XG4iXX0=
@@ -0,0 +1,22 @@
1
+ function _getMatchedDomain(domains, domain) {
2
+ for (const d of domains) {
3
+ if (d.spec.kind === 'full' && d.spec.name === domain) {
4
+ return d;
5
+ }
6
+ if (d.spec.kind === 'extensive' && domain.endsWith(d.spec.name.slice(1))) {
7
+ return d;
8
+ }
9
+ }
10
+ }
11
+ export function getMatchedDomain(domains, domain) {
12
+ const matched = _getMatchedDomain(domains, domain);
13
+ if (matched?.spec.kind === 'extensive') {
14
+ const d = matched.spec.name;
15
+ return {
16
+ // `test.alauda.io` + `*.alauda.io` -> test
17
+ subDomain: domain.slice(0, domain.length - d.length + 1),
18
+ domain: d,
19
+ };
20
+ }
21
+ }
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLWV4cG9ydHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9tb2R1bGVzL25ldHdvcmsvc3JjL2xpYi91dGlscy9jb21tb24tZXhwb3J0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxTQUFTLGlCQUFpQixDQUFDLE9BQWlCLEVBQUUsTUFBYztJQUMxRCxLQUFLLE1BQU0sQ0FBQyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssTUFBTSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQ3JELE9BQU8sQ0FBQyxDQUFDO1FBQ1gsQ0FBQztRQUVELElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssV0FBVyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN6RSxPQUFPLENBQUMsQ0FBQztRQUNYLENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxPQUFpQixFQUFFLE1BQWM7SUFDaEUsTUFBTSxPQUFPLEdBQUcsaUJBQWlCLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ25ELElBQUksT0FBTyxFQUFFLElBQUksQ0FBQyxJQUFJLEtBQUssV0FBVyxFQUFFLENBQUM7UUFDdkMsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDNUIsT0FBTztZQUNMLDJDQUEyQztZQUMzQyxTQUFTLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztZQUN4RCxNQUFNLEVBQUUsQ0FBQztTQUNWLENBQUM7SUFDSixDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERvbWFpbiB9IGZyb20gJy4uL3R5cGVzL2s4cy1leHBvcnRzJztcblxuZnVuY3Rpb24gX2dldE1hdGNoZWREb21haW4oZG9tYWluczogRG9tYWluW10sIGRvbWFpbjogc3RyaW5nKSB7XG4gIGZvciAoY29uc3QgZCBvZiBkb21haW5zKSB7XG4gICAgaWYgKGQuc3BlYy5raW5kID09PSAnZnVsbCcgJiYgZC5zcGVjLm5hbWUgPT09IGRvbWFpbikge1xuICAgICAgcmV0dXJuIGQ7XG4gICAgfVxuXG4gICAgaWYgKGQuc3BlYy5raW5kID09PSAnZXh0ZW5zaXZlJyAmJiBkb21haW4uZW5kc1dpdGgoZC5zcGVjLm5hbWUuc2xpY2UoMSkpKSB7XG4gICAgICByZXR1cm4gZDtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE1hdGNoZWREb21haW4oZG9tYWluczogRG9tYWluW10sIGRvbWFpbjogc3RyaW5nKSB7XG4gIGNvbnN0IG1hdGNoZWQgPSBfZ2V0TWF0Y2hlZERvbWFpbihkb21haW5zLCBkb21haW4pO1xuICBpZiAobWF0Y2hlZD8uc3BlYy5raW5kID09PSAnZXh0ZW5zaXZlJykge1xuICAgIGNvbnN0IGQgPSBtYXRjaGVkLnNwZWMubmFtZTtcbiAgICByZXR1cm4ge1xuICAgICAgLy8gYHRlc3QuYWxhdWRhLmlvYCArIGAqLmFsYXVkYS5pb2AgLT4gdGVzdFxuICAgICAgc3ViRG9tYWluOiBkb21haW4uc2xpY2UoMCwgZG9tYWluLmxlbmd0aCAtIGQubGVuZ3RoICsgMSksXG4gICAgICBkb21haW46IGQsXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -55,4 +55,4 @@ export function completeDefaultServiceName(resource, networkMode) {
55
55
  },
56
56
  };
57
57
  }
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1leHBvcnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9uZXR3b3JrL3NyYy9saWIvdXRpbHMvc2VydmljZS1leHBvcnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFJTCwyQkFBMkIsRUFDM0IsMEJBQTBCLEVBQzFCLGFBQWEsRUFFYixlQUFlLEdBRWhCLE1BQU0sbUJBQW1CLENBQUM7QUFHM0IsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFRNUQsTUFBTSxVQUFVLGlCQUFpQixDQUFDLFNBQWlCLEVBQUUsSUFBSSxHQUFHLEVBQUU7SUFDNUQsTUFBTSxRQUFRLEdBQUcsMkJBQTJCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEQsT0FBTztRQUNMLEdBQUcsZUFBZTtRQUNsQixRQUFRLEVBQUU7WUFDUixJQUFJO1lBQ0osU0FBUztTQUNWO1FBQ0QsSUFBSSxFQUFFO1lBQ0osSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUM7WUFDdEIsZUFBZSxFQUFFLDBCQUEwQixDQUFDLENBQUMsQ0FBQztZQUM5QyxLQUFLLEVBQUU7Z0JBQ0w7b0JBQ0UsUUFBUTtvQkFDUixJQUFJLEVBQUUsRUFBRTtvQkFDUixJQUFJLEVBQUUsSUFBSTtvQkFDVixVQUFVLEVBQUUsRUFBRTtvQkFDZCxXQUFXLEVBQUUsUUFBUSxDQUFDLFdBQVcsRUFBVztpQkFDN0M7YUFDRjtTQUNGO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBRWxDLE9BQWdCLEVBQ2hCLElBQUksR0FBRyxJQUFJO0lBRVgsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQzVDLE9BQU8sRUFDUCxXQUFXLEVBQ1gsVUFBVSxDQUNYLENBQUM7SUFDRixJQUFJLENBQUMsV0FBVyxFQUFFO1FBQ2hCLE9BQU87S0FDUjtJQUNELElBQUk7UUFDRixNQUFNLFNBQVMsR0FBYSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3BELE1BQU0sQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBR2hELENBQUM7UUFDRixPQUFPO1lBQ0wsT0FBTztZQUNQLE9BQU87U0FDUixDQUFDO0tBQ0g7SUFBQyxNQUFNLEdBQUU7QUFDWixDQUFDO0FBRUQsTUFBTSxVQUFVLDBCQUEwQixDQUN4QyxRQUFpQixFQUNqQixXQUF3QjtJQUV4QixNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztJQUNoQyxPQUFPO1FBQ0wsR0FBRyxRQUFRO1FBQ1gsSUFBSSxFQUNGLElBQUksS0FBSyxjQUFjO1lBQ3JCLENBQUMsQ0FBQyxFQUFFLEdBQUcsUUFBUSxFQUFFLElBQUksRUFBRTtZQUN2QixDQUFDLENBQUM7Z0JBQ0UsVUFBVSxFQUFFLFdBQVcsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO2dCQUM1RCxjQUFjLEVBQUUsaUJBQWlCO2dCQUNqQyxHQUFHLFFBQVEsRUFBRSxJQUFJO2dCQUNqQixLQUFLLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDaEQsR0FBRyxXQUFXO29CQUNkLElBQUksRUFBRSxXQUFXLENBQUMsSUFBSSxJQUFJLHFCQUFxQixDQUFDLFdBQVcsQ0FBQztpQkFDN0QsQ0FBQyxDQUFDO2FBQ0o7S0FDUixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERhZW1vblNldCxcbiAgRGVwbG95bWVudCxcbiAgSzhzVXRpbFNlcnZpY2UsXG4gIFNFUlZJQ0VfUE9SVF9CQVNFX1BST1RPQ09MUyxcbiAgU0VSVklDRV9TRVNTSU9OX0FGRklOSVRJRVMsXG4gIFNFUlZJQ0VfVFlQRVMsXG4gIFNlcnZpY2UsXG4gIFNlcnZpY2VUeXBlTWV0YSxcbiAgU3RhdGVmdWxTZXQsXG59IGZyb20gJ0BhbGF1ZGEtZmUvY29tbW9uJztcblxuaW1wb3J0IHsgTmV0d29ya01vZGUgfSBmcm9tICcuL2NpZHItZXhwb3J0cyc7XG5pbXBvcnQgeyBnZXRTZXJ2aWNlRGVmYXVsdE5hbWUgfSBmcm9tICcuL3NlcnZpY2UtaW50ZXJuYWxzJztcblxuaW50ZXJmYWNlIFdvcmtsb2FkcyB7XG4gIERlcGxveW1lbnQ/OiBEZXBsb3ltZW50W107XG4gIERhZW1vblNldD86IERhZW1vblNldFtdO1xuICBTdGF0ZWZ1bFNldD86IFN0YXRlZnVsU2V0W107XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWZhdWx0U2VydmljZShuYW1lc3BhY2U6IHN0cmluZywgbmFtZSA9ICcnKTogU2VydmljZSB7XG4gIGNvbnN0IHByb3RvY29sID0gU0VSVklDRV9QT1JUX0JBU0VfUFJPVE9DT0xTWzBdO1xuICByZXR1cm4ge1xuICAgIC4uLlNlcnZpY2VUeXBlTWV0YSxcbiAgICBtZXRhZGF0YToge1xuICAgICAgbmFtZSxcbiAgICAgIG5hbWVzcGFjZSxcbiAgICB9LFxuICAgIHNwZWM6IHtcbiAgICAgIHR5cGU6IFNFUlZJQ0VfVFlQRVNbMF0sXG4gICAgICBzZXNzaW9uQWZmaW5pdHk6IFNFUlZJQ0VfU0VTU0lPTl9BRkZJTklUSUVTWzBdLFxuICAgICAgcG9ydHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHByb3RvY29sLFxuICAgICAgICAgIG5hbWU6ICcnLFxuICAgICAgICAgIHBvcnQ6IG51bGwsXG4gICAgICAgICAgdGFyZ2V0UG9ydDogJycsXG4gICAgICAgICAgYXBwUHJvdG9jb2w6IHByb3RvY29sLnRvTG93ZXJDYXNlKCkgYXMgJ3RjcCcsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXNvdXJjZVJlZmVyZW5jZShcbiAgdGhpczogeyBrOHNVdGlsOiBLOHNVdGlsU2VydmljZSB9LFxuICBzZXJ2aWNlOiBTZXJ2aWNlLFxuICBzZWxmID0gdGhpcyxcbikge1xuICBjb25zdCByZXNvdXJjZVJlZiA9IHNlbGYuazhzVXRpbC5nZXRBbm5vdGF0aW9uKFxuICAgIHNlcnZpY2UsXG4gICAgJ3JlZmVyZW5jZScsXG4gICAgJ3Jlc291cmNlJyxcbiAgKTtcbiAgaWYgKCFyZXNvdXJjZVJlZikge1xuICAgIHJldHVybjtcbiAgfVxuICB0cnkge1xuICAgIGNvbnN0IHJlZmVyZW5jZTogc3RyaW5nW10gPSBKU09OLnBhcnNlKHJlc291cmNlUmVmKTtcbiAgICBjb25zdCBbcmVmVHlwZSwgcmVmTmFtZV0gPSByZWZlcmVuY2VbMF0uc3BsaXQoJy4nKSBhcyBbXG4gICAgICBrZXlvZiBXb3JrbG9hZHMgfCAnVmlydHVhbE1hY2hpbmUnIHwgJ1ZpcnR1YWxNYWNoaW5lUG9vbCcsXG4gICAgICBzdHJpbmcsXG4gICAgXTtcbiAgICByZXR1cm4ge1xuICAgICAgcmVmVHlwZSxcbiAgICAgIHJlZk5hbWUsXG4gICAgfTtcbiAgfSBjYXRjaCB7fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY29tcGxldGVEZWZhdWx0U2VydmljZU5hbWUoXG4gIHJlc291cmNlOiBTZXJ2aWNlLFxuICBuZXR3b3JrTW9kZTogTmV0d29ya01vZGUsXG4pOiBTZXJ2aWNlIHtcbiAgY29uc3QgdHlwZSA9IHJlc291cmNlLnNwZWMudHlwZTtcbiAgcmV0dXJuIHtcbiAgICAuLi5yZXNvdXJjZSxcbiAgICBzcGVjOlxuICAgICAgdHlwZSA9PT0gJ0V4dGVybmFsTmFtZSdcbiAgICAgICAgPyB7IC4uLnJlc291cmNlPy5zcGVjIH1cbiAgICAgICAgOiB7XG4gICAgICAgICAgICBpcEZhbWlsaWVzOiBuZXR3b3JrTW9kZSA9PT0gJ2R1YWwnID8gWydJUHY0JywgJ0lQdjYnXSA6IG51bGwsXG4gICAgICAgICAgICBpcEZhbWlseVBvbGljeTogJ1ByZWZlckR1YWxTdGFjaycsXG4gICAgICAgICAgICAuLi5yZXNvdXJjZT8uc3BlYyxcbiAgICAgICAgICAgIHBvcnRzOiByZXNvdXJjZT8uc3BlYz8ucG9ydHM/Lm1hcChzZXJ2aWNlUG9ydCA9PiAoe1xuICAgICAgICAgICAgICAuLi5zZXJ2aWNlUG9ydCxcbiAgICAgICAgICAgICAgbmFtZTogc2VydmljZVBvcnQubmFtZSB8fCBnZXRTZXJ2aWNlRGVmYXVsdE5hbWUoc2VydmljZVBvcnQpLFxuICAgICAgICAgICAgfSkpLFxuICAgICAgICAgIH0sXG4gIH07XG59XG4iXX0=
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1leHBvcnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9uZXR3b3JrL3NyYy9saWIvdXRpbHMvc2VydmljZS1leHBvcnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFJTCwyQkFBMkIsRUFDM0IsMEJBQTBCLEVBQzFCLGFBQWEsRUFFYixlQUFlLEdBRWhCLE1BQU0sbUJBQW1CLENBQUM7QUFHM0IsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFRNUQsTUFBTSxVQUFVLGlCQUFpQixDQUFDLFNBQWlCLEVBQUUsSUFBSSxHQUFHLEVBQUU7SUFDNUQsTUFBTSxRQUFRLEdBQUcsMkJBQTJCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEQsT0FBTztRQUNMLEdBQUcsZUFBZTtRQUNsQixRQUFRLEVBQUU7WUFDUixJQUFJO1lBQ0osU0FBUztTQUNWO1FBQ0QsSUFBSSxFQUFFO1lBQ0osSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUM7WUFDdEIsZUFBZSxFQUFFLDBCQUEwQixDQUFDLENBQUMsQ0FBQztZQUM5QyxLQUFLLEVBQUU7Z0JBQ0w7b0JBQ0UsUUFBUTtvQkFDUixJQUFJLEVBQUUsRUFBRTtvQkFDUixJQUFJLEVBQUUsSUFBSTtvQkFDVixVQUFVLEVBQUUsRUFBRTtvQkFDZCxXQUFXLEVBQUUsUUFBUSxDQUFDLFdBQVcsRUFBVztpQkFDN0M7YUFDRjtTQUNGO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBRWxDLE9BQWdCLEVBQ2hCLElBQUksR0FBRyxJQUFJO0lBRVgsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQzVDLE9BQU8sRUFDUCxXQUFXLEVBQ1gsVUFBVSxDQUNYLENBQUM7SUFDRixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDakIsT0FBTztJQUNULENBQUM7SUFDRCxJQUFJLENBQUM7UUFDSCxNQUFNLFNBQVMsR0FBYSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3BELE1BQU0sQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBR2hELENBQUM7UUFDRixPQUFPO1lBQ0wsT0FBTztZQUNQLE9BQU87U0FDUixDQUFDO0lBQ0osQ0FBQztJQUFDLE1BQU0sQ0FBQyxDQUFBLENBQUM7QUFDWixDQUFDO0FBRUQsTUFBTSxVQUFVLDBCQUEwQixDQUN4QyxRQUFpQixFQUNqQixXQUF3QjtJQUV4QixNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztJQUNoQyxPQUFPO1FBQ0wsR0FBRyxRQUFRO1FBQ1gsSUFBSSxFQUNGLElBQUksS0FBSyxjQUFjO1lBQ3JCLENBQUMsQ0FBQyxFQUFFLEdBQUcsUUFBUSxFQUFFLElBQUksRUFBRTtZQUN2QixDQUFDLENBQUM7Z0JBQ0UsVUFBVSxFQUFFLFdBQVcsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO2dCQUM1RCxjQUFjLEVBQUUsaUJBQWlCO2dCQUNqQyxHQUFHLFFBQVEsRUFBRSxJQUFJO2dCQUNqQixLQUFLLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDaEQsR0FBRyxXQUFXO29CQUNkLElBQUksRUFBRSxXQUFXLENBQUMsSUFBSSxJQUFJLHFCQUFxQixDQUFDLFdBQVcsQ0FBQztpQkFDN0QsQ0FBQyxDQUFDO2FBQ0o7S0FDUixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERhZW1vblNldCxcbiAgRGVwbG95bWVudCxcbiAgSzhzVXRpbFNlcnZpY2UsXG4gIFNFUlZJQ0VfUE9SVF9CQVNFX1BST1RPQ09MUyxcbiAgU0VSVklDRV9TRVNTSU9OX0FGRklOSVRJRVMsXG4gIFNFUlZJQ0VfVFlQRVMsXG4gIFNlcnZpY2UsXG4gIFNlcnZpY2VUeXBlTWV0YSxcbiAgU3RhdGVmdWxTZXQsXG59IGZyb20gJ0BhbGF1ZGEtZmUvY29tbW9uJztcblxuaW1wb3J0IHsgTmV0d29ya01vZGUgfSBmcm9tICcuL2NpZHItZXhwb3J0cyc7XG5pbXBvcnQgeyBnZXRTZXJ2aWNlRGVmYXVsdE5hbWUgfSBmcm9tICcuL3NlcnZpY2UtaW50ZXJuYWxzJztcblxuaW50ZXJmYWNlIFdvcmtsb2FkcyB7XG4gIERlcGxveW1lbnQ/OiBEZXBsb3ltZW50W107XG4gIERhZW1vblNldD86IERhZW1vblNldFtdO1xuICBTdGF0ZWZ1bFNldD86IFN0YXRlZnVsU2V0W107XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWZhdWx0U2VydmljZShuYW1lc3BhY2U6IHN0cmluZywgbmFtZSA9ICcnKTogU2VydmljZSB7XG4gIGNvbnN0IHByb3RvY29sID0gU0VSVklDRV9QT1JUX0JBU0VfUFJPVE9DT0xTWzBdO1xuICByZXR1cm4ge1xuICAgIC4uLlNlcnZpY2VUeXBlTWV0YSxcbiAgICBtZXRhZGF0YToge1xuICAgICAgbmFtZSxcbiAgICAgIG5hbWVzcGFjZSxcbiAgICB9LFxuICAgIHNwZWM6IHtcbiAgICAgIHR5cGU6IFNFUlZJQ0VfVFlQRVNbMF0sXG4gICAgICBzZXNzaW9uQWZmaW5pdHk6IFNFUlZJQ0VfU0VTU0lPTl9BRkZJTklUSUVTWzBdLFxuICAgICAgcG9ydHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHByb3RvY29sLFxuICAgICAgICAgIG5hbWU6ICcnLFxuICAgICAgICAgIHBvcnQ6IG51bGwsXG4gICAgICAgICAgdGFyZ2V0UG9ydDogJycsXG4gICAgICAgICAgYXBwUHJvdG9jb2w6IHByb3RvY29sLnRvTG93ZXJDYXNlKCkgYXMgJ3RjcCcsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXNvdXJjZVJlZmVyZW5jZShcbiAgdGhpczogeyBrOHNVdGlsOiBLOHNVdGlsU2VydmljZSB9LFxuICBzZXJ2aWNlOiBTZXJ2aWNlLFxuICBzZWxmID0gdGhpcyxcbikge1xuICBjb25zdCByZXNvdXJjZVJlZiA9IHNlbGYuazhzVXRpbC5nZXRBbm5vdGF0aW9uKFxuICAgIHNlcnZpY2UsXG4gICAgJ3JlZmVyZW5jZScsXG4gICAgJ3Jlc291cmNlJyxcbiAgKTtcbiAgaWYgKCFyZXNvdXJjZVJlZikge1xuICAgIHJldHVybjtcbiAgfVxuICB0cnkge1xuICAgIGNvbnN0IHJlZmVyZW5jZTogc3RyaW5nW10gPSBKU09OLnBhcnNlKHJlc291cmNlUmVmKTtcbiAgICBjb25zdCBbcmVmVHlwZSwgcmVmTmFtZV0gPSByZWZlcmVuY2VbMF0uc3BsaXQoJy4nKSBhcyBbXG4gICAgICBrZXlvZiBXb3JrbG9hZHMgfCAnVmlydHVhbE1hY2hpbmUnIHwgJ1ZpcnR1YWxNYWNoaW5lUG9vbCcsXG4gICAgICBzdHJpbmcsXG4gICAgXTtcbiAgICByZXR1cm4ge1xuICAgICAgcmVmVHlwZSxcbiAgICAgIHJlZk5hbWUsXG4gICAgfTtcbiAgfSBjYXRjaCB7fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY29tcGxldGVEZWZhdWx0U2VydmljZU5hbWUoXG4gIHJlc291cmNlOiBTZXJ2aWNlLFxuICBuZXR3b3JrTW9kZTogTmV0d29ya01vZGUsXG4pOiBTZXJ2aWNlIHtcbiAgY29uc3QgdHlwZSA9IHJlc291cmNlLnNwZWMudHlwZTtcbiAgcmV0dXJuIHtcbiAgICAuLi5yZXNvdXJjZSxcbiAgICBzcGVjOlxuICAgICAgdHlwZSA9PT0gJ0V4dGVybmFsTmFtZSdcbiAgICAgICAgPyB7IC4uLnJlc291cmNlPy5zcGVjIH1cbiAgICAgICAgOiB7XG4gICAgICAgICAgICBpcEZhbWlsaWVzOiBuZXR3b3JrTW9kZSA9PT0gJ2R1YWwnID8gWydJUHY0JywgJ0lQdjYnXSA6IG51bGwsXG4gICAgICAgICAgICBpcEZhbWlseVBvbGljeTogJ1ByZWZlckR1YWxTdGFjaycsXG4gICAgICAgICAgICAuLi5yZXNvdXJjZT8uc3BlYyxcbiAgICAgICAgICAgIHBvcnRzOiByZXNvdXJjZT8uc3BlYz8ucG9ydHM/Lm1hcChzZXJ2aWNlUG9ydCA9PiAoe1xuICAgICAgICAgICAgICAuLi5zZXJ2aWNlUG9ydCxcbiAgICAgICAgICAgICAgbmFtZTogc2VydmljZVBvcnQubmFtZSB8fCBnZXRTZXJ2aWNlRGVmYXVsdE5hbWUoc2VydmljZVBvcnQpLFxuICAgICAgICAgICAgfSkpLFxuICAgICAgICAgIH0sXG4gIH07XG59XG4iXX0=
@@ -0,0 +1,44 @@
1
+ import { DOMAIN_PATTERN, publishRef, } from '@alauda-fe/common';
2
+ import { Validators } from '@angular/forms';
3
+ import { map } from 'rxjs';
4
+ export const getHostPrefixErrorMapper = (translate) => ({
5
+ hostPrefixExtensivePosition: translate.get('network.domain_extensive_starts_tip'),
6
+ hostPrefixPattern: translate.get('network.host_prefix_pattern_error'),
7
+ maxlength: translate.get('network.extra_long_domain_name'),
8
+ hostPrefixIncludeDotError: translate.get('network.host_prefix_input_dot_error'),
9
+ });
10
+ export const getHostPrefixErrorMapper$ = (translate) => translate.locale$.pipe(map(() => getHostPrefixErrorMapper(translate)), publishRef());
11
+ export const hostPrefixValidator = (hostPrefixCtrl) => {
12
+ let hostPrefix = hostPrefixCtrl.value;
13
+ if (!hostPrefix) {
14
+ return;
15
+ }
16
+ if (hostPrefix.includes('.')) {
17
+ return {
18
+ hostPrefixIncludeDotError: true,
19
+ };
20
+ }
21
+ if (hostPrefix.includes('*')) {
22
+ if (hostPrefix === '*') {
23
+ return;
24
+ }
25
+ const startExtensive = hostPrefix.startsWith('*.');
26
+ if (hostPrefix.lastIndexOf('*') !== 0 ||
27
+ (hostPrefix.length > 1 && !startExtensive)) {
28
+ return {
29
+ hostPrefixExtensivePosition: true,
30
+ };
31
+ }
32
+ if (startExtensive) {
33
+ hostPrefix = hostPrefix.slice(2);
34
+ }
35
+ }
36
+ if (!DOMAIN_PATTERN.pattern.test(hostPrefix + '.example.org')) {
37
+ return { hostPrefixPattern: true };
38
+ }
39
+ };
40
+ export const getHostPrefixCompleteValidators = (domainLength) => [
41
+ hostPrefixValidator,
42
+ Validators.maxLength(domainLength),
43
+ ];
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy1leHBvcnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9uZXR3b3JrL3NyYy9saWIvdXRpbHMvdmFsaWRhdG9ycy1leHBvcnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxjQUFjLEVBRWQsVUFBVSxHQUNYLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUFxQyxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTNCLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLENBQUMsU0FBMkIsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN4RSwyQkFBMkIsRUFBRSxTQUFTLENBQUMsR0FBRyxDQUN4QyxxQ0FBcUMsQ0FDdEM7SUFDRCxpQkFBaUIsRUFBRSxTQUFTLENBQUMsR0FBRyxDQUFDLG1DQUFtQyxDQUFDO0lBQ3JFLFNBQVMsRUFBRSxTQUFTLENBQUMsR0FBRyxDQUFDLGdDQUFnQyxDQUFDO0lBQzFELHlCQUF5QixFQUFFLFNBQVMsQ0FBQyxHQUFHLENBQ3RDLHFDQUFxQyxDQUN0QztDQUNGLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLENBQUMsU0FBMkIsRUFBRSxFQUFFLENBQ3ZFLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUNwQixHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsd0JBQXdCLENBQUMsU0FBUyxDQUFDLENBQUMsRUFDOUMsVUFBVSxFQUFFLENBQ2IsQ0FBQztBQUVKLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQ2pDLGNBQStCLEVBQ2IsRUFBRTtJQUNwQixJQUFJLFVBQVUsR0FBVyxjQUFjLENBQUMsS0FBSyxDQUFDO0lBRTlDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNoQixPQUFPO0lBQ1QsQ0FBQztJQUVELElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQzdCLE9BQU87WUFDTCx5QkFBeUIsRUFBRSxJQUFJO1NBQ2hDLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDN0IsSUFBSSxVQUFVLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDdkIsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLGNBQWMsR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRW5ELElBQ0UsVUFBVSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO1lBQ2pDLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsRUFDMUMsQ0FBQztZQUNELE9BQU87Z0JBQ0wsMkJBQTJCLEVBQUUsSUFBSTthQUNsQyxDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksY0FBYyxFQUFFLENBQUM7WUFDbkIsVUFBVSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkMsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLGNBQWMsQ0FBQyxFQUFFLENBQUM7UUFDOUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxDQUFDO0lBQ3JDLENBQUM7QUFDSCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSwrQkFBK0IsR0FBRyxDQUFDLFlBQW9CLEVBQUUsRUFBRSxDQUFDO0lBQ3ZFLG1CQUFtQjtJQUNuQixVQUFVLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQztDQUNuQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRE9NQUlOX1BBVFRFUk4sXG4gIFRyYW5zbGF0ZVNlcnZpY2UsXG4gIHB1Ymxpc2hSZWYsXG59IGZyb20gJ0BhbGF1ZGEtZmUvY29tbW9uJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgY29uc3QgZ2V0SG9zdFByZWZpeEVycm9yTWFwcGVyID0gKHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSkgPT4gKHtcbiAgaG9zdFByZWZpeEV4dGVuc2l2ZVBvc2l0aW9uOiB0cmFuc2xhdGUuZ2V0KFxuICAgICduZXR3b3JrLmRvbWFpbl9leHRlbnNpdmVfc3RhcnRzX3RpcCcsXG4gICksXG4gIGhvc3RQcmVmaXhQYXR0ZXJuOiB0cmFuc2xhdGUuZ2V0KCduZXR3b3JrLmhvc3RfcHJlZml4X3BhdHRlcm5fZXJyb3InKSxcbiAgbWF4bGVuZ3RoOiB0cmFuc2xhdGUuZ2V0KCduZXR3b3JrLmV4dHJhX2xvbmdfZG9tYWluX25hbWUnKSxcbiAgaG9zdFByZWZpeEluY2x1ZGVEb3RFcnJvcjogdHJhbnNsYXRlLmdldChcbiAgICAnbmV0d29yay5ob3N0X3ByZWZpeF9pbnB1dF9kb3RfZXJyb3InLFxuICApLFxufSk7XG5cbmV4cG9ydCBjb25zdCBnZXRIb3N0UHJlZml4RXJyb3JNYXBwZXIkID0gKHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSkgPT5cbiAgdHJhbnNsYXRlLmxvY2FsZSQucGlwZShcbiAgICBtYXAoKCkgPT4gZ2V0SG9zdFByZWZpeEVycm9yTWFwcGVyKHRyYW5zbGF0ZSkpLFxuICAgIHB1Ymxpc2hSZWYoKSxcbiAgKTtcblxuZXhwb3J0IGNvbnN0IGhvc3RQcmVmaXhWYWxpZGF0b3IgPSAoXG4gIGhvc3RQcmVmaXhDdHJsOiBBYnN0cmFjdENvbnRyb2wsXG4pOiBWYWxpZGF0aW9uRXJyb3JzID0+IHtcbiAgbGV0IGhvc3RQcmVmaXg6IHN0cmluZyA9IGhvc3RQcmVmaXhDdHJsLnZhbHVlO1xuXG4gIGlmICghaG9zdFByZWZpeCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmIChob3N0UHJlZml4LmluY2x1ZGVzKCcuJykpIHtcbiAgICByZXR1cm4ge1xuICAgICAgaG9zdFByZWZpeEluY2x1ZGVEb3RFcnJvcjogdHJ1ZSxcbiAgICB9O1xuICB9XG5cbiAgaWYgKGhvc3RQcmVmaXguaW5jbHVkZXMoJyonKSkge1xuICAgIGlmIChob3N0UHJlZml4ID09PSAnKicpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzdGFydEV4dGVuc2l2ZSA9IGhvc3RQcmVmaXguc3RhcnRzV2l0aCgnKi4nKTtcblxuICAgIGlmIChcbiAgICAgIGhvc3RQcmVmaXgubGFzdEluZGV4T2YoJyonKSAhPT0gMCB8fFxuICAgICAgKGhvc3RQcmVmaXgubGVuZ3RoID4gMSAmJiAhc3RhcnRFeHRlbnNpdmUpXG4gICAgKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBob3N0UHJlZml4RXh0ZW5zaXZlUG9zaXRpb246IHRydWUsXG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmIChzdGFydEV4dGVuc2l2ZSkge1xuICAgICAgaG9zdFByZWZpeCA9IGhvc3RQcmVmaXguc2xpY2UoMik7XG4gICAgfVxuICB9XG5cbiAgaWYgKCFET01BSU5fUEFUVEVSTi5wYXR0ZXJuLnRlc3QoaG9zdFByZWZpeCArICcuZXhhbXBsZS5vcmcnKSkge1xuICAgIHJldHVybiB7IGhvc3RQcmVmaXhQYXR0ZXJuOiB0cnVlIH07XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBnZXRIb3N0UHJlZml4Q29tcGxldGVWYWxpZGF0b3JzID0gKGRvbWFpbkxlbmd0aDogbnVtYmVyKSA9PiBbXG4gIGhvc3RQcmVmaXhWYWxpZGF0b3IsXG4gIFZhbGlkYXRvcnMubWF4TGVuZ3RoKGRvbWFpbkxlbmd0aCksXG5dO1xuIl19