tnx-shared 5.3.182 → 5.3.184
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/tnx-shared.umd.js +48 -12
- package/bundles/tnx-shared.umd.js.map +1 -1
- package/bundles/tnx-shared.umd.min.js +1 -1
- package/bundles/tnx-shared.umd.min.js.map +1 -1
- package/classes/base/data-form-base.d.ts.map +1 -1
- package/classes/form-schema.d.ts +2 -1
- package/classes/form-schema.d.ts.map +1 -1
- package/components/common-search-form/common-search-form.component.d.ts +2 -0
- package/components/common-search-form/common-search-form.component.d.ts.map +1 -1
- package/esm2015/classes/base/data-form-base.js +6 -1
- package/esm2015/classes/form-schema.js +3 -2
- package/esm2015/components/common-search-form/common-search-form.component.js +33 -12
- package/esm2015/components/dropdown/dropdown.component.js +2 -2
- package/fesm2015/tnx-shared.js +39 -13
- package/fesm2015/tnx-shared.js.map +1 -1
- package/package.json +2 -2
- package/tnx-shared.metadata.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-form-base.d.ts","sourceRoot":"","sources":["../../../../projects/tnx-shared/src/lib/classes/base/data-form-base.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,aAAa,EAEb,UAAU,EACV,YAAY,EACZ,QAAQ,EAER,SAAS,EACT,MAAM,EAGT,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,qDAAqD,CAAC;AAMzG,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAEvE,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAgB,MAAM,cAAc,CAAC;AAEvD,OAAO,EAEH,YAAY,EACZ,eAAe,EACf,eAAe,EAIf,SAAS,EAGT,eAAe,EAKlB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAGvE,8BACsB,YAAa,SAAQ,uBAAwB,YAAW,MAAM,EAAE,aAAa,EAAE,SAAS;IAEzD,QAAQ,EAAE,iBAAiB,CAAC;IACjC,WAAW,EAAE,UAAU,CAAC;IAC5B,OAAO,EAAE,UAAU,CAAC;IAEnD,aAAa,EAAE,eAAe,CAAC;IAC/B,KAAK,EAAE,YAAY,CAAsB;IACzC,aAAa,EAAE,OAAO,CAAS;IAE9B,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,CAA2B;IACpD,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,CAA2B;IACrD,QAAQ,EAAE,YAAY,CAAC,GAAG,CAAC,CAA2B;IACtD,SAAS,EAAE,YAAY,CAAC,GAAG,CAAC,CAA2B;IACvD,WAAW,EAAE,YAAY,CAAC,GAAG,CAAC,CAA2B;IACzD,YAAY,EAAE,YAAY,CAAC,GAAG,CAAC,CAA2B;IAEpE,qBAAqB,UAAS;IAC9B,OAAO,CAAC,2BAA2B,CAAqC;IACxE,oBAAoB,SAAM;IAC1B,oBAAoB,SAAM;IAC1B,OAAO,EAAE,eAAe,CAAyB;IAEjD,EAAE;;;;;;;;;MAA8B;IAEhC,YAAY,EAAE,GAAG,CAAC;IAClB,gBAAgB,KAAM;IACtB,WAAW,EAAE,GAAG,CAAM;IACtB,eAAe,EAAE,MAAM,CAAC;IAExB,aAAa,UAAQ;IACrB,QAAQ,UAAQ;IAChB,WAAW,UAAQ;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,MAAM,UAAS;IACf,gBAAgB,MAAQ;IACxB,aAAa,MAAQ;IACrB,cAAc,EAAE,GAAG,CAAM;IACzB,eAAe,UAAQ;IACvB,qBAAqB,UAAQ;IAC7B,WAAW,UAAQ;IACZ,YAAY,EAAE,OAAO,CAAS;IAE9B,gBAAgB,EAAE,eAAe,CAAC;IAClC,kBAAkB,EAAE,iBAAiB,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,cAAc,CAAC;IAChC,iBAAiB,EAAE,gBAAgB,CAAC;IACpC,oBAAoB,EAAE,mBAAmB,CAAC;IAC1C,YAAY,EAAE,WAAW,CAAC;IAC1B,WAAW,EAAE,UAAU,CAAC;IACxB,sBAAsB,EAAE,qBAAqB,CAAC;IAC9C,YAAY,EAAE,WAAW,CAAC;gBAG7B,SAAS,EAAE,QAAQ;IAmBvB,QAAQ;IAgBR,eAAe;IAEf,eAAe,CAAC,cAAc,KAAA;IAmB9B,aAAa;IA+EP,wBAAwB,CAAC,GAAG,EAAE,SAAS;IAI7C,qBAAqB,CAAC,GAAG,EAAE,SAAS,EAAE,eAAe,KAAA;IAU/C,gBAAgB,CAAC,SAAS,EAAE,SAAS;YAM7B,iBAAiB;IAc/B,iBAAiB;IAYX,iBAAiB;IAGjB,eAAe,IAAI,OAAO,CAAC,cAAc,CAAC;IAI1C,eAAe,IAAI,OAAO,CAAC,cAAc,CAAC;YAIlC,SAAS;IA4DjB,WAAW,CAAC,GAAG,EAAE,SAAS;IAEhC,OAAO,CAAC,6BAA6B;IAMrC;;OAEG;IACG,oBAAoB,CAAC,IAAI,KAAA;IAsD/B,OAAO,CAAC,YAAY;IA6CpB,OAAO,CAAC,mBAAmB;IAU3B,qBAAqB,CAAC,MAAM,EAAE,eAAe;IAc7C,wBAAwB,CAAC,MAAM,EAAE,eAAe;IAchD,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG;IAKxC,oBAAoB,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,GAAG;IAKhD,gBAAgB,CAAC,IAAI,KAAA;IAG3B,YAAY;YAIE,IAAI;IAyBlB,gBAAgB;IAIhB,qBAAqB;IAIf,kBAAkB;IAIlB,YAAY,CAAC,kBAAkB,EAAE,OAAO;YAIhC,gBAAgB;IAkB9B,oBAAoB,CAAC,SAAS,KAAA;IAI9B,UAAU;IAIV,qBAAqB,CAAC,SAAS,KAAA;IAI/B,YAAY,IAAI,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC;IAGvC,WAAW,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC;IAG9D,OAAO,CAAC,YAAY;IAMd,gBAAgB;YAIR,QAAQ;IAoBtB,OAAO,CAAC,sBAAsB;YAkBhB,OAAO;IA4BrB,sBAAsB,IAAI,OAAO,CAAC,cAAc,CAAC;IAIjD,iBAAiB;YAIH,QAAQ;IA4BtB,iBAAiB;IAIjB,sBAAsB,IAAI,OAAO,CAAC,cAAc,CAAC;IAIjD,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,sBAAsB;
|
|
1
|
+
{"version":3,"file":"data-form-base.d.ts","sourceRoot":"","sources":["../../../../projects/tnx-shared/src/lib/classes/base/data-form-base.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,aAAa,EAEb,UAAU,EACV,YAAY,EACZ,QAAQ,EAER,SAAS,EACT,MAAM,EAGT,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,qDAAqD,CAAC;AAMzG,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAEvE,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAgB,MAAM,cAAc,CAAC;AAEvD,OAAO,EAEH,YAAY,EACZ,eAAe,EACf,eAAe,EAIf,SAAS,EAGT,eAAe,EAKlB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAGvE,8BACsB,YAAa,SAAQ,uBAAwB,YAAW,MAAM,EAAE,aAAa,EAAE,SAAS;IAEzD,QAAQ,EAAE,iBAAiB,CAAC;IACjC,WAAW,EAAE,UAAU,CAAC;IAC5B,OAAO,EAAE,UAAU,CAAC;IAEnD,aAAa,EAAE,eAAe,CAAC;IAC/B,KAAK,EAAE,YAAY,CAAsB;IACzC,aAAa,EAAE,OAAO,CAAS;IAE9B,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,CAA2B;IACpD,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,CAA2B;IACrD,QAAQ,EAAE,YAAY,CAAC,GAAG,CAAC,CAA2B;IACtD,SAAS,EAAE,YAAY,CAAC,GAAG,CAAC,CAA2B;IACvD,WAAW,EAAE,YAAY,CAAC,GAAG,CAAC,CAA2B;IACzD,YAAY,EAAE,YAAY,CAAC,GAAG,CAAC,CAA2B;IAEpE,qBAAqB,UAAS;IAC9B,OAAO,CAAC,2BAA2B,CAAqC;IACxE,oBAAoB,SAAM;IAC1B,oBAAoB,SAAM;IAC1B,OAAO,EAAE,eAAe,CAAyB;IAEjD,EAAE;;;;;;;;;MAA8B;IAEhC,YAAY,EAAE,GAAG,CAAC;IAClB,gBAAgB,KAAM;IACtB,WAAW,EAAE,GAAG,CAAM;IACtB,eAAe,EAAE,MAAM,CAAC;IAExB,aAAa,UAAQ;IACrB,QAAQ,UAAQ;IAChB,WAAW,UAAQ;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,MAAM,UAAS;IACf,gBAAgB,MAAQ;IACxB,aAAa,MAAQ;IACrB,cAAc,EAAE,GAAG,CAAM;IACzB,eAAe,UAAQ;IACvB,qBAAqB,UAAQ;IAC7B,WAAW,UAAQ;IACZ,YAAY,EAAE,OAAO,CAAS;IAE9B,gBAAgB,EAAE,eAAe,CAAC;IAClC,kBAAkB,EAAE,iBAAiB,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,cAAc,CAAC;IAChC,iBAAiB,EAAE,gBAAgB,CAAC;IACpC,oBAAoB,EAAE,mBAAmB,CAAC;IAC1C,YAAY,EAAE,WAAW,CAAC;IAC1B,WAAW,EAAE,UAAU,CAAC;IACxB,sBAAsB,EAAE,qBAAqB,CAAC;IAC9C,YAAY,EAAE,WAAW,CAAC;gBAG7B,SAAS,EAAE,QAAQ;IAmBvB,QAAQ;IAgBR,eAAe;IAEf,eAAe,CAAC,cAAc,KAAA;IAmB9B,aAAa;IA+EP,wBAAwB,CAAC,GAAG,EAAE,SAAS;IAI7C,qBAAqB,CAAC,GAAG,EAAE,SAAS,EAAE,eAAe,KAAA;IAU/C,gBAAgB,CAAC,SAAS,EAAE,SAAS;YAM7B,iBAAiB;IAc/B,iBAAiB;IAYX,iBAAiB;IAGjB,eAAe,IAAI,OAAO,CAAC,cAAc,CAAC;IAI1C,eAAe,IAAI,OAAO,CAAC,cAAc,CAAC;YAIlC,SAAS;IA4DjB,WAAW,CAAC,GAAG,EAAE,SAAS;IAEhC,OAAO,CAAC,6BAA6B;IAMrC;;OAEG;IACG,oBAAoB,CAAC,IAAI,KAAA;IAsD/B,OAAO,CAAC,YAAY;IA6CpB,OAAO,CAAC,mBAAmB;IAU3B,qBAAqB,CAAC,MAAM,EAAE,eAAe;IAc7C,wBAAwB,CAAC,MAAM,EAAE,eAAe;IAchD,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG;IAKxC,oBAAoB,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,GAAG;IAKhD,gBAAgB,CAAC,IAAI,KAAA;IAG3B,YAAY;YAIE,IAAI;IAyBlB,gBAAgB;IAIhB,qBAAqB;IAIf,kBAAkB;IAIlB,YAAY,CAAC,kBAAkB,EAAE,OAAO;YAIhC,gBAAgB;IAkB9B,oBAAoB,CAAC,SAAS,KAAA;IAI9B,UAAU;IAIV,qBAAqB,CAAC,SAAS,KAAA;IAI/B,YAAY,IAAI,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC;IAGvC,WAAW,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC;IAG9D,OAAO,CAAC,YAAY;IAMd,gBAAgB;YAIR,QAAQ;IAoBtB,OAAO,CAAC,sBAAsB;YAkBhB,OAAO;IA4BrB,sBAAsB,IAAI,OAAO,CAAC,cAAc,CAAC;IAIjD,iBAAiB;YAIH,QAAQ;IA4BtB,iBAAiB;IAIjB,sBAAsB,IAAI,OAAO,CAAC,cAAc,CAAC;IAIjD,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,sBAAsB;IAc9B,OAAO,CAAC,sBAAsB;IAa9B,mBAAmB,CAAC,KAAK,KAAA;IAYnB,iBAAiB,CAAC,IAAI,EAAE,SAAS;IAIvC,mBAAmB,CAAC,GAAG,KAAA;IAKvB,WAAW,CAAC,GAAG,KAAA;IAOf,aAAa,CAAC,GAAG,KAAA;IAIjB,cAAc,CAAC,GAAG,KAAA;IAIlB,kBAAkB,CAAC,WAAW,KAAA,EAAE,UAAU,KAAA;IAI1C,iBAAiB,CAAC,WAAW,KAAA,EAAE,QAAQ,KAAA;IAIvC,aAAa,IAAI,SAAS;IAI1B,aAAa;IAIb,WAAW;IAIX,WAAW;CAGd"}
|
package/classes/form-schema.d.ts
CHANGED
|
@@ -114,6 +114,7 @@ export declare class CrudListSetting {
|
|
|
114
114
|
disableViewWorkflowAttach: boolean;
|
|
115
115
|
hiddenWorkflowCoreStatus: boolean;
|
|
116
116
|
requiredVanBanDiAfterTrinhKy: boolean;
|
|
117
|
+
disableLazyLoadCommonSearch: boolean;
|
|
117
118
|
groupColumn?: ColumnSchemaBase;
|
|
118
119
|
showExportAll: boolean;
|
|
119
120
|
showExportSelectedItems: boolean;
|
|
@@ -310,6 +311,7 @@ export declare class FormSchemaBase extends SchemaBase {
|
|
|
310
311
|
isHorizontallyLabel?: boolean;
|
|
311
312
|
order?: number;
|
|
312
313
|
errorLabel?: string;
|
|
314
|
+
isLazyLoad?: boolean;
|
|
313
315
|
constructor(init?: FormSchemaBase);
|
|
314
316
|
}
|
|
315
317
|
export declare class ContainerSchema extends FormSchemaBase {
|
|
@@ -816,7 +818,6 @@ export declare class DropdownControlSchema extends DataSourceControlSchema {
|
|
|
816
818
|
searchMultiple?: boolean;
|
|
817
819
|
disableDisplayFieldServerSearch?: boolean;
|
|
818
820
|
loadOnInit?: boolean;
|
|
819
|
-
isLazyLoad?: boolean;
|
|
820
821
|
allowLoadDataWhenParentNull?: boolean;
|
|
821
822
|
disabledParentItem?: boolean;
|
|
822
823
|
onAdjustedValue?: Function;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-schema.d.ts","sourceRoot":"","sources":["../../../projects/tnx-shared/src/lib/classes/form-schema.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"form-schema.d.ts","sourceRoot":"","sources":["../../../projects/tnx-shared/src/lib/classes/form-schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,6 +18,7 @@ export declare class CommonSearchFormComponent extends DataFormBase implements O
|
|
|
18
18
|
lstBoolControl: any[];
|
|
19
19
|
lstControlNotIn: any[];
|
|
20
20
|
lstControlAddToGridInfo: any[];
|
|
21
|
+
lstControlLazyLoad: any[];
|
|
21
22
|
defaultValues: {};
|
|
22
23
|
isAddDefaultValues: boolean;
|
|
23
24
|
mapControlBindingFilter: Map<any, any>;
|
|
@@ -32,6 +33,7 @@ export declare class CommonSearchFormComponent extends DataFormBase implements O
|
|
|
32
33
|
handleSearch(data?: any, field?: string): void;
|
|
33
34
|
clearFilter(): void;
|
|
34
35
|
toggleMenuSearch(): void;
|
|
36
|
+
triggerLazyLoadDropdown(): Promise<void>;
|
|
35
37
|
onFormInitialized(formEvent: EventData): Promise<void>;
|
|
36
38
|
modifyDetailData(data: any): Promise<void>;
|
|
37
39
|
ngAfterViewInit(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common-search-form.component.d.ts","sourceRoot":"","sources":["../../../../projects/tnx-shared/src/lib/components/common-search-form/common-search-form.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAS,MAAM,EAAqB,MAAM,eAAe,CAAC;AAEhH,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAwH,SAAS,EAAE,cAAc,EAAyD,MAAM,2BAA2B,CAAC;AAEnP,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"common-search-form.component.d.ts","sourceRoot":"","sources":["../../../../projects/tnx-shared/src/lib/components/common-search-form/common-search-form.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAS,MAAM,EAAqB,MAAM,eAAe,CAAC;AAEhH,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAwH,SAAS,EAAE,cAAc,EAAyD,MAAM,2BAA2B,CAAC;AAEnP,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAE9D,qBAMa,yBAA0B,SAAQ,YAAa,YAAW,MAAM;IAyBrE,SAAS,CAAC,SAAS,EAAE,QAAQ;IAC7B,SAAS,CAAC,cAAc,EAAE,aAAa;IAzBc,oBAAoB,EAAE,UAAU,CAAC;IACjF,cAAc,EAAE,GAAG,CAAM;IACzB,gBAAgB,SAAgC;IAC/C,aAAa,oBAA2B;IACxC,uBAAuB,oBAA2B;IAE5D,OAAO,SAAK;IACZ,kBAAkB,QAAM;IACxB,kBAAkB,QAAM;IACxB,qBAAqB,QAAM;IAC3B,cAAc,QAAM;IACpB,cAAc,QAAM;IACpB,eAAe,QAAM;IACrB,uBAAuB,QAAM;IAC7B,kBAAkB,QAAM;IACxB,aAAa,KAAM;IACnB,kBAAkB,UAAS;IAC3B,uBAAuB,gBAAa;IACpC,QAAQ,SAAM;IACd,UAAU,UAAS;IACnB,sBAAsB,UAAS;IAC/B,iBAAiB,UAAS;gBAGZ,SAAS,EAAE,QAAQ,EACnB,cAAc,EAAE,aAAa;IAK3C,QAAQ;IAoDR,aAAa,CAAC,OAAO,EAAE,GAAG;IAkG1B,YAAY,CAAC,OAAO,KAAA;IAwBpB,YAAY,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,MAAM;IAuEvC,WAAW;IAiBX,gBAAgB;IAQV,uBAAuB;IAQvB,iBAAiB,CAAC,SAAS,EAAE,SAAS;IAKtC,gBAAgB,CAAC,IAAI,KAAA;IAI3B,eAAe;CAKlB"}
|
|
@@ -644,6 +644,9 @@ export class DataFormBase extends ComponentBaseWithButton {
|
|
|
644
644
|
}
|
|
645
645
|
showMessageAfterInsert(isSuccess = false, error) {
|
|
646
646
|
if (isSuccess) {
|
|
647
|
+
if (!this.messageInsertSuccess) {
|
|
648
|
+
this.messageInsertSuccess = this._translateService.instant('MESSAGE.INSERT_DATA_SUCCESS');
|
|
649
|
+
}
|
|
647
650
|
if (this.messageInsertSuccess) {
|
|
648
651
|
this._notifierService.showSuccess(this.messageInsertSuccess);
|
|
649
652
|
}
|
|
@@ -654,6 +657,8 @@ export class DataFormBase extends ComponentBaseWithButton {
|
|
|
654
657
|
}
|
|
655
658
|
showMessageAfterUpdate(isSuccess = false, error) {
|
|
656
659
|
if (isSuccess) {
|
|
660
|
+
if (!this.messageUpdateSuccess)
|
|
661
|
+
this.messageUpdateSuccess = this._translateService.instant('MESSAGE.UPDATE_DATA_SUCCESS');
|
|
657
662
|
if (this.messageUpdateSuccess) {
|
|
658
663
|
this._notifierService.showSuccess(this.messageUpdateSuccess);
|
|
659
664
|
}
|
|
@@ -733,4 +738,4 @@ DataFormBase.propDecorators = {
|
|
|
733
738
|
onFormReady: [{ type: Output }],
|
|
734
739
|
onDataBinded: [{ type: Output }]
|
|
735
740
|
};
|
|
736
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1mb3JtLWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90bngtc2hhcmVkL3NyYy9saWIvY2xhc3Nlcy9iYXNlL2RhdGEtZm9ybS1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRUgsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osUUFBUSxFQUNSLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzFELE9BQU8sRUFBbUIsaUJBQWlCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUN6RyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDM0UsT0FBTyxFQUFFLDRCQUE0QixFQUFFLDJCQUEyQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDL0YsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVoRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzFELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3Q0FBd0Ms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Q0FBQztJQUVELGlCQUFpQixDQUFDLFdBQVcsRUFBRSxRQUFRO1FBQ25DLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUM7SUFDOUQsQ0FBQztJQUVELGFBQWE7UUFDVCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxhQUFhO1FBQ1QsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksU0FBUyxDQUFDLEdBQUcsQ0FBQztJQUNqRCxDQUFDO0lBRUQsV0FBVztRQUNQLE9BQU8sSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUM7SUFDbEQsQ0FBQztJQUVELFdBQVc7UUFDUCxPQUFPLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDO0lBQ2xELENBQUM7OztZQTN2QkosU0FBUzs7O1lBaEROLFFBQVE7Ozt1QkFtRFAsU0FBUyxTQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTswQkFDOUMsU0FBUyxTQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7c0JBQ3pDLFNBQVMsU0FBQyxTQUFTLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFOzRCQUVyQyxLQUFLO29CQUNMLEtBQUs7NEJBQ0wsS0FBSztxQkFFTCxNQUFNO3NCQUNOLE1BQU07dUJBQ04sTUFBTTt3QkFDTixNQUFNOzBCQUNOLE1BQU07MkJBQ04sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5qZWN0b3IsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBGaWxlVXBsb2FkIH0gZnJvbSAndG4tY3VzdG9tLXByaW1lbmcvZmlsZXVwbG9hZCc7XG5pbXBvcnQgeyBDb250cm9sVHJlZU5vZGUsIENydWRGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9jcnVkL2NydWQtZm9ybS9jcnVkLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IENPTkZJR19DQUxFTkRBUl9WSUVUTkFNRVNFIH0gZnJvbSAnLi4vLi4vY29uZmlncy9jYWxlbmRhci5jb25maWcnO1xuaW1wb3J0IHsgQ29tQ3R4Q29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vY29uZmlncy9jb21wb25lbnQtY29udGV4dC5jb25zdGFudCc7XG5pbXBvcnQgeyBGaWVsZERlZmluZUlzVGFza0Zvcm1Db250cm9sLCBGaWVsZFdvcmtmbG93Q29kZUluQ3J1ZEZvcm0gfSBmcm9tICcuLi8uLi9jb25zdC9jb21tb24nO1xuaW1wb3J0IHsgUGVybWlzc2lvbkJhc2UgfSBmcm9tICcuLi8uLi9lbnVtcy9jb21tb24nO1xuaW1wb3J0IHsgRmlsdGVyIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2dyaWQtaW5mbyc7XG5pbXBvcnQgeyBSZXNwb25zZVJlc3VsdCB9IGZyb20gJy4uLy4uL21vZGVscy9yZXNwb25zZS1yZXN1bHQnO1xuaW1wb3J0IHsgQ29tbW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NvbW1vbi5zZXJ2aWNlJztcbmltcG9ydCB7IENydWRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY3J1ZC5zZXJ2aWNlJztcbmltcG9ydCB7IEN1c3RvbVJvdXRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jdXN0b20tcm91dGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRG9tU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RvbS5zZXJ2aWNlJztcbmltcG9ydCB7IEVudGl0eU1ldGFkYXRhU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2VudGl0eS1tZXRhZGF0YS5zZXJ2aWNlJztcbmltcG9ydCB7IE1hc3RlckRhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbWFzdGVyLWRhdGEuc2VydmljZSc7XG5pbXBvcnQgeyBNb2R1bGVDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbW9kdWxlLWNvbmZpZy5zZXJ2aWNlJztcbmltcG9ydCB7IE5vdGlmaWVyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL25vdGlmaWVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXNlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91c2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9ybVN0YXRlLCBLZXlGbGFzaFNob3cgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgaXNMaXRlcmFsT2JqZWN0LCBpc1ZhbGlkRGF0ZSB9IGZyb20gJy4uL2Vudmlyb25tZW50LXNjaGVtYSc7XG5pbXBvcnQge1xuICAgIENvbnRhaW5lclNjaGVtYSxcbiAgICBDcnVkRm9ybURhdGEsXG4gICAgQ3J1ZEZvcm1TZXR0aW5nLFxuICAgIENydWRMaXN0U2V0dGluZyxcbiAgICBDdXN0b21Db250cm9sU2NoZW1hLFxuICAgIERhdGVUaW1lQ29udHJvbFNjaGVtYSxcbiAgICBEcm9wZG93bkNvbnRyb2xTY2hlbWEsXG4gICAgRXZlbnREYXRhLFxuICAgIEV2ZW50VHlwZSxcbiAgICBGaWxlTWFuYWdlckNvbnRyb2xTY2hlbWEsXG4gICAgRm9ybUNvbnRyb2xCYXNlLFxuICAgIE9wZXJhdG9yLFxuICAgIFN3aXRjaENvbnRyb2xTY2hlbWEsXG4gICAgVGFibGVTY2hlbWEsXG4gICAgVGl0bGVTY2hlbWFcbn0gZnJvbSAnLi4vZm9ybS1zY2hlbWEnO1xuaW1wb3J0IHsgQ29tcG9uZW50QmFzZVdpdGhCdXR0b24gfSBmcm9tICcuL2NvbXBvbmVudC1iYXNlLXdpdGgtYnV0dG9uJztcbmltcG9ydCB7IFJlcXVpcmVkVmFsaWRhdG9yIH0gZnJvbSAnLi92YWxpZGF0b3JzJztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRGF0YUZvcm1CYXNlIGV4dGVuZHMgQ29tcG9uZW50QmFzZVdpdGhCdXR0b24gaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cbiAgICBAVmlld0NoaWxkKENydWRGb3JtQ29tcG9uZW50LCB7IHN0YXRpYzogZmFsc2UgfSkgY3J1ZEZvcm06IENydWRGb3JtQ29tcG9uZW50O1xuICAgIEBWaWV3Q2hpbGQoJ2Zvcm1FbGVtZW50JywgeyBzdGF0aWM6IHRydWUgfSkgZm9ybUVsZW1lbnQ6IEVsZW1lbnRSZWY7XG4gICAgQFZpZXdDaGlsZCgncFVwbG9hZCcsIHsgc3RhdGljOiB0cnVlIH0pIHBVcGxvYWQ6IEZpbGVVcGxvYWQ7XG5cbiAgICBASW5wdXQoKSBwYXJlbnRTZXR0aW5nOiBDcnVkTGlzdFNldHRpbmc7XG4gICAgQElucHV0KCkgbW9kZWw6IENydWRGb3JtRGF0YSA9IG5ldyBDcnVkRm9ybURhdGEoKTtcbiAgICBASW5wdXQoKSBmb3JjZU9ubHlWaWV3OiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBAT3V0cHV0KCkgb25TYXZlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBvblNhdmVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBvbkNhbmNlbDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgb25NZXNzYWdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBvbkZvcm1SZWFkeTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgb25EYXRhQmluZGVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgZG9Ob3RDaGVja0Jhc2VTZXJ2aWNlID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBub3RDb25maWdCYXNlU2VydmljZU1lc3NhZ2UgPSAnQ2jGsGEgY+G6pXUgaMOsbmggQ1JVRCBiYXNlIHNlcnZpY2UnO1xuICAgIG1lc3NhZ2VJbnNlcnRTdWNjZXNzID0gJyc7XG4gICAgbWVzc2FnZVVwZGF0ZVN1Y2Nlc3MgPSAnJztcbiAgICBzZXR0aW5nOiBDcnVkRm9ybVNldHRpbmcgPSBuZXcgQ3J1ZEZvcm1TZXR0aW5nKCk7XG5cbiAgICB2aSA9IENPTkZJR19DQUxFTkRBUl9WSUVUTkFNRVNFO1xuXG4gICAgZm9ybUNvbnRyb2xzOiBhbnk7XG4gICAgZm9ybUNvbnRyb2xzTGlzdCA9IHt9O1xuICAgIGVudmlyb25tZW50OiBhbnkgPSB7fTtcbiAgICBtZFdpZHRoV29ya2Zsb3c6IG51bWJlcjtcblxuICAgIGF1dG9HZXREZXRhaWwgPSB0cnVlO1xuICAgIGF1dG9TYXZlID0gdHJ1ZTtcbiAgICBpc0Nsb3NlRm9ybSA9IHRydWU7XG4gICAgbWVzc2FnZUNvbmZpcm1TYXZlOiBzdHJpbmc7XG4gICAgc2F2aW5nID0gZmFsc2U7XG4gICAgZ2V0RGV0YWlsUGx1c1VybCA9IG51bGw7XG4gICAgaW5zZXJ0UGx1c1VybCA9IG51bGw7XG4gICAgZHluYW1pY0NvbnRyb2w6IGFueSA9IHt9O1xuICAgIHNldFZhbGlkYXRlRm9ybSA9IHRydWU7XG4gICAgaGF2ZUVudGl0eU1ldGFkYXRhQVBJID0gdHJ1ZTtcbiAgICBpc0Jhc2VNb2RlbCA9IHRydWU7XG4gICAgcHVibGljIF9faXNGb3JtVmlldzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgcHVibGljIF9ub3RpZmllclNlcnZpY2U6IE5vdGlmaWVyU2VydmljZTtcbiAgICBwdWJsaWMgX21hc3RlckRhdGFTZXJ2aWNlOiBNYXN0ZXJEYXRhU2VydmljZTtcbiAgICBwdWJsaWMgX3JvdXRlcjogUm91dGVyO1xuICAgIHB1YmxpYyBfYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlO1xuICAgIHB1YmxpYyBfdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZTtcbiAgICBwdWJsaWMgX2N1c3RvbVJvdXRlclNlcnZpY2U6IEN1c3RvbVJvdXRlclNlcnZpY2U7XG4gICAgcHVibGljIF9jcnVkU2VydmljZTogQ3J1ZFNlcnZpY2U7XG4gICAgcHVibGljIF9kb21TZXJ2aWNlOiBEb21TZXJ2aWNlO1xuICAgIHB1YmxpYyBfZW50aXR5TWV0YWRhdGFTZXJ2aWNlOiBFbnRpdHlNZXRhZGF0YVNlcnZpY2U7XG4gICAgcHVibGljIF91c2VyU2VydmljZTogVXNlclNlcnZpY2U7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgX2luamVjdG9yOiBJbmplY3RvclxuICAgICkge1xuICAgICAgICBzdXBlcihfaW5qZWN0b3IpO1xuICAgICAgICBjb25zdCBtb2R1bGVDb25maWdTZXJ2aWNlID0gX2luamVjdG9yLmdldChNb2R1bGVDb25maWdTZXJ2aWNlKTtcbiAgICAgICAgdGhpcy5lbnZpcm9ubWVudCA9IG1vZHVsZUNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCkuZW52aXJvbm1lbnQ7XG4gICAgICAgIHRoaXMuX25vdGlmaWVyU2VydmljZSA9IHRoaXMuX2luamVjdG9yLmdldChOb3RpZmllclNlcnZpY2UpO1xuICAgICAgICB0aGlzLl9tYXN0ZXJEYXRhU2VydmljZSA9IHRoaXMuX2luamVjdG9yLmdldChNYXN0ZXJEYXRhU2VydmljZSk7XG4gICAgICAgIHRoaXMuX3JvdXRlciA9IHRoaXMuX2luamVjdG9yLmdldChSb3V0ZXIpO1xuICAgICAgICB0aGlzLl9hY3RpdmF0ZWRSb3V0ZSA9IHRoaXMuX2luamVjdG9yLmdldChBY3RpdmF0ZWRSb3V0ZSk7XG4gICAgICAgIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UgPSB0aGlzLl9pbmplY3Rvci5nZXQoVHJhbnNsYXRlU2VydmljZSk7XG4gICAgICAgIHRoaXMuX2N1c3RvbVJvdXRlclNlcnZpY2UgPSB0aGlzLl9pbmplY3Rvci5nZXQoQ3VzdG9tUm91dGVyU2VydmljZSk7XG4gICAgICAgIHRoaXMuX2NydWRTZXJ2aWNlID0gdGhpcy5faW5qZWN0b3IuZ2V0KENydWRTZXJ2aWNlKTtcbiAgICAgICAgdGhpcy5fZG9tU2VydmljZSA9IHRoaXMuX2luamVjdG9yLmdldChEb21TZXJ2aWNlKTtcbiAgICAgICAgdGhpcy5fZW50aXR5TWV0YWRhdGFTZXJ2aWNlID0gdGhpcy5faW5qZWN0b3IuZ2V0KEVudGl0eU1ldGFkYXRhU2VydmljZSk7XG4gICAgICAgIHRoaXMuX3VzZXJTZXJ2aWNlID0gdGhpcy5faW5qZWN0b3IuZ2V0KFVzZXJTZXJ2aWNlKTtcbiAgICAgICAgdGhpcy5fY29tbW9uU2VydmljZSA9IHRoaXMuX2luamVjdG9yLmdldChDb21tb25TZXJ2aWNlKTtcblxuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICAvLyB0aGlzLmNoZWNrUGVybWlzc2lvbih0aGlzLm1vZGVsLmRhdGEuYmFzZVBlcm1pc3Npb24pO1xuXG4gICAgICAgIGNvbnN0IGRlZmF1bHRTZXR0aW5nID0gbmV3IENydWRGb3JtU2V0dGluZygpO1xuICAgICAgICBjb25zdCBjYXVIaW5oTmdoaWVwVnUgPSB0aGlzLmVudmlyb25tZW50Py5jYXVIaW5oTmdoaWVwVnU7XG4gICAgICAgIGlmIChjYXVIaW5oTmdoaWVwVnUpIHtcbiAgICAgICAgICAgIGZvciAobGV0IGtleSBpbiBjYXVIaW5oTmdoaWVwVnUpIHtcbiAgICAgICAgICAgICAgICBpZiAoZGVmYXVsdFNldHRpbmdba2V5XSA9PSB0aGlzLnNldHRpbmdba2V5XVxuICAgICAgICAgICAgICAgICAgICAmJiB0aGlzLnNldHRpbmdba2V5XSAhPSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgJiYgY2F1SGluaE5naGllcFZ1W2tleV0gIT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICYmIHRoaXMuc2V0dGluZ1trZXldICE9IGNhdUhpbmhOZ2hpZXBWdVtrZXldKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0dGluZ1trZXldID0gY2F1SGluaE5naGllcFZ1W2tleV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB9XG4gICAgY2hlY2tQZXJtaXNzaW9uKGJhc2VQZXJtaXNzaW9uKSB7XG4gICAgICAgIGlmICh0aGlzLmlzQmFzZU1vZGVsKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5tb2RlbC5mb3JtU3RhdGUgPT0gRm9ybVN0YXRlLkVESVQpIHtcbiAgICAgICAgICAgICAgICBpZiAoYmFzZVBlcm1pc3Npb24gJiBQZXJtaXNzaW9uQmFzZS5FRElUKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubW9kZWwuZm9ybVN0YXRlID0gRm9ybVN0YXRlLkVESVQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1vZGVsLmZvcm1TdGF0ZSA9IEZvcm1TdGF0ZS5WSUVXO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLm1vZGVsLmRhdGEuaXNCdWlsZEluQWxsICYmICF0aGlzLl91c2VyU2VydmljZS5pc1N1cGVyVXNlcigpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubW9kZWwuZm9ybVN0YXRlID0gRm9ybVN0YXRlLlZJRVc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9faXNGb3JtVmlldyA9IHRoaXMuX2lzRm9ybVZpZXcoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFkZFNjaGVtYUJhc2UoKSB7XG4gICAgICAgIGlmICh0aGlzLl91c2VyU2VydmljZS5pc1N1cGVyVXNlcigpXG4gICAgICAgICAgICAmJiB0aGlzLm1vZGVsXG4gICAgICAgICAgICAmJiB0aGlzLm1vZGVsLmRhdGEuaGFzQnVpbGRJblxuICAgICAgICAgICAgJiYgdGhpcy5zZXR0aW5nLnNjaGVtYVxuICAgICAgICAgICAgJiYgdGhpcy5zZXR0aW5nLnNjaGVtYS5sZW5ndGggPiAwXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5zZXR0aW5nLnNjaGVtYS5wdXNoKFxuICAgICAgICAgICAgICAgIG5ldyBTd2l0Y2hDb250cm9sU2NoZW1hKHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6ICdpc0J1aWxkSW4nLFxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ0tow7NhIG3DoycsXG4gICAgICAgICAgICAgICAgICAgIG1kV2lkdGg6IDRcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMuc2V0dGluZy5zY2hlbWEucHVzaChcbiAgICAgICAgICAgICAgICBuZXcgU3dpdGNoQ29udHJvbFNjaGVtYSh7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiAnaXNCdWlsZEluQWxsJyxcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdLaMOzYSBi4bqjbiBnaGknLFxuICAgICAgICAgICAgICAgICAgICBtZFdpZHRoOiA0XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5wYXJlbnRTZXR0aW5nXG4gICAgICAgICAgICAmJiB0aGlzLl9pc0Zvcm1BZGROZXcoKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIGxldCBkYXRhU291cmNlID0gW10sIGRlZmF1bHRWYWx1ZSA9IG51bGwsIGhhc1dvcmtmbG93ID0gZmFsc2U7XG4gICAgICAgICAgICBjb25zdCBpbml0RGF0YVRhc2tGb3JtOiBhbnkgPSB7fTtcbiAgICAgICAgICAgIGlmICh0aGlzLnBhcmVudFNldHRpbmcud29ya2Zsb3dTZXR0aW5nTmV3ICYmIHRoaXMucGFyZW50U2V0dGluZy53b3JrZmxvd1NldHRpbmdOZXcud29ya2Zsb3dzLmxlbmd0aCA+IDBcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIGRhdGFTb3VyY2UgPSB0aGlzLnBhcmVudFNldHRpbmcud29ya2Zsb3dTZXR0aW5nTmV3LndvcmtmbG93cztcbiAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWUgPSB0aGlzLnBhcmVudFNldHRpbmcud29ya2Zsb3dTZXR0aW5nTmV3LndvcmtmbG93Q29kZTtcbiAgICAgICAgICAgICAgICBoYXNXb3JrZmxvdyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5tb2RlbC5kYXRhLmNyZWF0ZVRhc2tJbnN0ZWFkID0gdGhpcy5wYXJlbnRTZXR0aW5nLndvcmtmbG93U2V0dGluZ05ldy5jcmVhdGVUYXNrSW5zdGVhZDtcbiAgICAgICAgICAgICAgICBpbml0RGF0YVRhc2tGb3JtLmlkTG9haUNvbmdWaWVjID0gdGhpcy5wYXJlbnRTZXR0aW5nLndvcmtmbG93U2V0dGluZ05ldy5pZExvYWlDb25nVmllY0RlZmF1bHQ7XG4gICAgICAgICAgICAgICAgaW5pdERhdGFUYXNrRm9ybS5fX3RlbXBsYXRlVGFza05hbWUgPSB0aGlzLnBhcmVudFNldHRpbmcud29ya2Zsb3dTZXR0aW5nTmV3LnRlbXBsYXRlVGFza05hbWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICh0aGlzLnBhcmVudFNldHRpbmcuaXNXb3JrZmxvd1RyZWUpIHtcbiAgICAgICAgICAgICAgICBoYXNXb3JrZmxvdyA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaGFzV29ya2Zsb3cpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmR5bmFtaWNDb250cm9sW0ZpZWxkRGVmaW5lSXNUYXNrRm9ybUNvbnRyb2xdID0gbmV3IEN1c3RvbUNvbnRyb2xTY2hlbWEoe1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogRmllbGREZWZpbmVJc1Rhc2tGb3JtQ29udHJvbCxcbiAgICAgICAgICAgICAgICAgICAgbWRXaWR0aDogMTIsXG4gICAgICAgICAgICAgICAgICAgIHNob3dMYWJlbDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzOiAnbm8tcGFkZGluZycsXG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IGluaXREYXRhVGFza0Zvcm0sXG4gICAgICAgICAgICAgICAgICAgIGhpZGRlbkNoZWNrOiAocm9vdE1vZGVsKSA9PiAhcm9vdE1vZGVsIHx8ICFyb290TW9kZWwuY3JlYXRlVGFza0luc3RlYWRcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLnNldHRpbmcuc2NoZW1hLnB1c2goXG4gICAgICAgICAgICAgICAgICAgIG5ldyBEcm9wZG93bkNvbnRyb2xTY2hlbWEoe1xuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEZpZWxkV29ya2Zsb3dDb2RlSW5DcnVkRm9ybSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnUXV5IHRyw6xuaCBz4butIGThu6VuZycsXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhU291cmNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVGaWVsZDogJ2NvZGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheUZpZWxkOiAndGl0bGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWRXaWR0aDogdGhpcy5tZFdpZHRoV29ya2Zsb3cgfHwgMTIsXG4gICAgICAgICAgICAgICAgICAgICAgICBlbmFibGVDYWNoaW5nOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhpZGRlbkNoZWNrOiAocm9vdE1vZGVsKSA9PiAhcm9vdE1vZGVsIHx8IHJvb3RNb2RlbC5jcmVhdGVUYXNrSW5zdGVhZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlZDogYXN5bmMgKGV2dDogRXZlbnREYXRhKSA9PiBhd2FpdCB0aGlzLmhhbmRsZUNoYW5nZVdvcmtmbG93Q29kZShldnQpLFxuICAgICAgICAgICAgICAgICAgICAgICAgb25BZGp1c3RlZFZhbHVlOiBhc3luYyAoZXZ0OiBFdmVudERhdGEpID0+IGF3YWl0IHRoaXMuaGFuZGxlQ2hhbmdlV29ya2Zsb3dDb2RlKGV2dClcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnBhcmVudFNldHRpbmcud29ya2Zsb3dTZXR0aW5nTmV3XG4gICAgICAgICAgICAgICAgICAgICYmIHRoaXMucGFyZW50U2V0dGluZy53b3JrZmxvd1NldHRpbmdOZXcudGFza0luc2lkZUJ1c2luZXNzRm9ybVxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldHRpbmcuc2NoZW1hLnB1c2goXG4gICAgICAgICAgICAgICAgICAgICAgICBuZXcgVGl0bGVTY2hlbWEoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6ICdDw7RuZyB2aeG7h2MnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpZGRlbkNoZWNrOiAocm9vdE1vZGVsKSA9PiAhcm9vdE1vZGVsIHx8ICFyb290TW9kZWwuY3JlYXRlVGFza0luc3RlYWRcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5keW5hbWljQ29udHJvbFtGaWVsZERlZmluZUlzVGFza0Zvcm1Db250cm9sXVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFzeW5jIGhhbmRsZUNoYW5nZVdvcmtmbG93Q29kZShldnQ6IEV2ZW50RGF0YSkge1xuXG4gICAgfVxuXG4gICAgc2V0V29ya2Zsb3dEYXRhc291cmNlKGV2dDogRXZlbnREYXRhLCB3b3JrZmxvd1NldHRpbmcpIHtcbiAgICAgICAgZXZ0LmZvcm1Db250cm9sc1tGaWVsZFdvcmtmbG93Q29kZUluQ3J1ZEZvcm1dLmRhdGFTb3VyY2UgPSB3b3JrZmxvd1NldHRpbmcud29ya2Zsb3dzO1xuICAgICAgICBpZiAoIWV2dC5yb290TW9kZWxbRmllbGRXb3JrZmxvd0NvZGVJbkNydWRGb3JtXSkge1xuICAgICAgICAgICAgZXZ0LnJvb3RNb2RlbFtGaWVsZFdvcmtmbG93Q29kZUluQ3J1ZEZvcm1dID0gd29ya2Zsb3dTZXR0aW5nLndvcmtmbG93Q29kZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICghd29ya2Zsb3dTZXR0aW5nLndvcmtmbG93cy5zb21lKHggPT4geC5jb2RlID09IGV2dC5yb290TW9kZWxbRmllbGRXb3JrZmxvd0NvZGVJbkNydWRGb3JtXSkpIHtcbiAgICAgICAgICAgIGV2dC5yb290TW9kZWxbRmllbGRXb3JrZmxvd0NvZGVJbkNydWRGb3JtXSA9IHdvcmtmbG93U2V0dGluZy53b3JrZmxvd0NvZGU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhc3luYyBfaGFuZGxlRm9ybVJlYWR5KGZvcm1FdmVudDogRXZlbnREYXRhKSB7XG4gICAgICAgIHRoaXMubWVzc2FnZUluc2VydFN1Y2Nlc3MgPSB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ01FU1NBR0UuSU5TRVJUX0RBVEFfU1VDQ0VTUycpO1xuICAgICAgICB0aGlzLm1lc3NhZ2VVcGRhdGVTdWNjZXNzID0gdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLlVQREFURV9EQVRBX1NVQ0NFU1MnKTtcbiAgICAgICAgYXdhaXQgdGhpcy5fX2hhbmRsZUZvcm1SZWFkeShmb3JtRXZlbnQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgX19oYW5kbGVGb3JtUmVhZHkoZm9ybUV2ZW50OiBFdmVudERhdGEpIHtcbiAgICAgICAgaWYgKCF0aGlzLmRvTm90Q2hlY2tCYXNlU2VydmljZSAmJiAhdGhpcy5zZXR0aW5nLmJhc2VTZXJ2aWNlKSB7XG4gICAgICAgICAgICB0aGlzLl9ub3RpZmllclNlcnZpY2Uuc2hvd1dhcm5pbmcodGhpcy5ub3RDb25maWdCYXNlU2VydmljZU1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZm9ybUNvbnRyb2xzID0gZm9ybUV2ZW50LmZvcm1Db250cm9scztcbiAgICAgICAgYXdhaXQgdGhpcy5vbkZvcm1Jbml0aWFsaXplZChmb3JtRXZlbnQpO1xuICAgICAgICB0aGlzLm9uRm9ybVJlYWR5LmVtaXQoe1xuICAgICAgICAgICAgZWxlbWVudDogdGhpcyxcbiAgICAgICAgICAgIHNldHRpbmc6IHRoaXMuc2V0dGluZyxcbiAgICAgICAgICAgIGZvcm1FdmVudFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5fdHJpZ2dlckdldERldGFpbCgpO1xuICAgIH1cblxuICAgIF90cmlnZ2VyR2V0RGV0YWlsKCkge1xuICAgICAgICBpZiAodGhpcy5hdXRvR2V0RGV0YWlsKSB7XG4gICAgICAgICAgICB0aGlzLmdldERldGFpbCgpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMuY3J1ZEZvcm0pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNydWRGb3JtLmluaXRDb250cm9sRGVmYXVsdFZhbHVlRnJvbUV4dGVybmFsKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5jcnVkRm9ybS5maXJlTW9kZWxDaGFuZ2VkKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhc3luYyBvbkJlZm9yZUdldERldGFpbCgpIHtcbiAgICB9XG5cbiAgICBhc3luYyBnZXRPYmplY3REZXRhaWwoKTogUHJvbWlzZTxSZXNwb25zZVJlc3VsdD4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5zZXR0aW5nLmJhc2VTZXJ2aWNlLmdldERldGFpbFdpdGhQZXJtaXNzaW9uKHRoaXMubW9kZWwuZGF0YS5pZCwgdGhpcy5tb2RlbC5kYXRhLnBpZCwgdGhpcy5nZXREZXRhaWxQbHVzVXJsKTtcbiAgICB9XG5cbiAgICBhc3luYyBnZXREZXRhaWxDdXN0b20oKTogUHJvbWlzZTxSZXNwb25zZVJlc3VsdD4ge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIGdldERldGFpbCgpIHtcbiAgICAgICAgY29uc3QgcmVzdWx0Q2hlY2sgPSBhd2FpdCB0aGlzLmdldERldGFpbEN1c3RvbSgpO1xuICAgICAgICAvLyBLaMO0bmcgb3ZlcnJpZGVcbiAgICAgICAgaWYgKHJlc3VsdENoZWNrID09IG51bGwpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5faXNGb3JtQWRkTmV3KCkpIHtcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLm9uQmVmb3JlR2V0RGV0YWlsKCk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY3J1ZEZvcm0pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jcnVkRm9ybS5zZXRJc0xvYWRlZERhdGFFZGl0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmdldE9iamVjdERldGFpbCgpO1xuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5kYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMubW9kaWZ5RGV0YWlsRGF0YShyZXNwb25zZS5kYXRhKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fcHJvY2Vzc0FmdGVyR2V0RGF0YShyZXNwb25zZS5kYXRhKTtcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLm9uQWZ0ZXJHZXREZXRhaWwoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmNydWRGb3JtKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGV2ZW50ID0gbmV3IEV2ZW50RGF0YSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50Tm9kZTogdGhpcy5jcnVkRm9ybS5fcm9vdE5vZGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudFR5cGU6IEV2ZW50VHlwZS5GT1JNX1JFQURZLFxuICAgICAgICAgICAgICAgICAgICAgICAgY3J1ZEZvcm06IHRoaXMuY3J1ZEZvcm1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuaW5pdERhdGFBZGQoZXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluaXREZWZhdWx0U2V0dGluZ0ZpbGVDb250cm9sKGV2ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jcnVkRm9ybS5pbml0Q29udHJvbERlZmF1bHRWYWx1ZUZyb21FeHRlcm5hbCgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNydWRGb3JtLmZpcmVNb2RlbENoYW5nZWQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gT3ZlcnJpZGUgY8OhY2ggbOG6pXkgZOG7ryBsaeG7h3UgZ2V0RGV0YWlsXG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKHJlc3VsdENoZWNrLnN1Y2Nlc3MgJiYgcmVzdWx0Q2hlY2suZGF0YSkge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5tb2RlbC5mb3JtU3RhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tb2RlbC5mb3JtU3RhdGUgPSBGb3JtU3RhdGUuRURJVDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY3J1ZEZvcm0pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jcnVkRm9ybS5zZXRJc0xvYWRlZERhdGFFZGl0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5tb2RpZnlEZXRhaWxEYXRhKHJlc3VsdENoZWNrLmRhdGEpO1xuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX3Byb2Nlc3NBZnRlckdldERhdGEocmVzdWx0Q2hlY2suZGF0YSk7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5vbkFmdGVyR2V0RGV0YWlsKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLm1vZGVsLmZvcm1TdGF0ZSA9IEZvcm1TdGF0ZS5BREQ7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY3J1ZEZvcm0pIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXZlbnQgPSBuZXcgRXZlbnREYXRhKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnROb2RlOiB0aGlzLmNydWRGb3JtLl9yb290Tm9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50VHlwZTogJ2Zvcm1SZWFkeScsXG4gICAgICAgICAgICAgICAgICAgICAgICBjcnVkRm9ybTogdGhpcy5jcnVkRm9ybVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5pbml0RGF0YUFkZChldmVudCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdERlZmF1bHRTZXR0aW5nRmlsZUNvbnRyb2woZXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNydWRGb3JtLmluaXRDb250cm9sRGVmYXVsdFZhbHVlRnJvbUV4dGVybmFsKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3J1ZEZvcm0uZmlyZU1vZGVsQ2hhbmdlZCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFzeW5jIGluaXREYXRhQWRkKGV2dDogRXZlbnREYXRhKSB7IH1cblxuICAgIHByaXZhdGUgaW5pdERlZmF1bHRTZXR0aW5nRmlsZUNvbnRyb2woZXZ0OiBFdmVudERhdGEpIHtcbiAgICAgICAgaWYgKCFldnQucm9vdE1vZGVsLmlkICYmIHRoaXMuc2V0dGluZy5zY2hlbWEuc29tZShwID0+IChwIGluc3RhbmNlb2YgRmlsZU1hbmFnZXJDb250cm9sU2NoZW1hKSkpIHtcbiAgICAgICAgICAgIGV2dC5yb290TW9kZWwuaWQgPSB0aGlzLl9jb21tb25TZXJ2aWNlLmd1aWQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBo4bqjaSBn4buNaSBow6BtIG7DoHkga2hpIG92ZXJyaWRlIGdldERldGFpbFxuICAgICAqL1xuICAgIGFzeW5jIF9wcm9jZXNzQWZ0ZXJHZXREYXRhKGRhdGEpIHtcbiAgICAgICAgaWYgKCFkYXRhKSB7XG4gICAgICAgICAgICBkYXRhID0ge307XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAvLyBEdXnhu4d0IGPDoWMgY29udHJvbCBkYXRldGltZSDEkeG7gyBjb252ZXJ0IHZhbHVlIHNhbmcgZGF0ZXRpbWVcbiAgICAgICAgICAgIHRoaXMuc2V0dGluZy5zY2hlbWEuZm9yRWFjaChzY2hlbWEgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZml4RGF0ZVZhbHVlKHNjaGVtYSwgZGF0YSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBkYXRhLl9fZGlzYWJsZUVkaXQgPSB0aGlzLm1vZGVsLmRhdGEuX19kaXNhYmxlRWRpdDtcblxuICAgICAgICAvLyBTZXQgYmFzZVBlcm1pc3Npb24gdOG7qyBjcnVkbGlzdFxuICAgICAgICBpZiAodGhpcy5tb2RlbC5kYXRhLmJhc2VQZXJtaXNzaW9uICYmIHRoaXMubW9kZWwuZGF0YS5iYXNlUGVybWlzc2lvbiA9PT0gUGVybWlzc2lvbkJhc2UuRlVMTCkge1xuICAgICAgICAgICAgZGF0YS5iYXNlUGVybWlzc2lvbiA9IHRoaXMubW9kZWwuZGF0YS5iYXNlUGVybWlzc2lvbjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubW9kZWwuZGF0YSA9IGRhdGE7XG4gICAgICAgIGlmIChkYXRhLnBpZCAmJiBkYXRhLnBpZCAhPSB0aGlzLmd1aWRFbXB0eSAmJiBkYXRhLmJhc2VQZXJtaXNzaW9uQnlQaWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5jaGVja1Blcm1pc3Npb24oZGF0YS5iYXNlUGVybWlzc2lvbkJ5UGlkKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tQZXJtaXNzaW9uKGRhdGEuYmFzZVBlcm1pc3Npb24pO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmZvcmNlT25seVZpZXcpIHtcbiAgICAgICAgICAgIHRoaXMuX19pc0Zvcm1WaWV3ID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMubW9kZWwuZm9ybVN0YXRlID0gRm9ybVN0YXRlLlZJRVc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5jcnVkRm9ybSkge1xuICAgICAgICAgICAgdGhpcy5jcnVkRm9ybS5zd2l0Y2hWaWV3TW9kZSh0aGlzLl9faXNGb3JtVmlldyk7XG4gICAgICAgICAgICB0aGlzLmNydWRGb3JtLmRhdGEgPSBkYXRhO1xuICAgICAgICAgICAgdGhpcy5jcnVkRm9ybS5zZXRJc0xvYWRlZERhdGFFZGl0KHRydWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuc2V0dGluZy5iYXNlU2VydmljZVxuICAgICAgICAgICAgJiYgdGhpcy5oYXZlRW50aXR5TWV0YWRhdGFBUEkgLy8gc2V0dGluZyDEkeG7gyBmaXggbOG7l2kgayBsb2FkIGRjIGVudGl0eSBtZXRhZGF0YSBjaG8gY8ahIGPhuqV1IHThu5UgY2jhu6ljIHNlcnZpY2VcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLl9lbnRpdHlNZXRhZGF0YVNlcnZpY2UubG9hZCh0aGlzLnNldHRpbmcuYmFzZVNlcnZpY2UsIHRoaXMuY29udGV4dCwgdHJ1ZSk7IC8vIGZvcmNlIGxvYWQgxJHhu4MgxJHhu41jIHThu6sgY3NkbFxuICAgICAgICAgICAgY29uc3QgZW5hYmxlVmVyc2lvbiA9IHRoaXMuX2VudGl0eU1ldGFkYXRhU2VydmljZS5nZXRCeUNvZGUoJ2VuYWJsZVZlcnNpb24nKTtcbiAgICAgICAgICAgIGlmIChlbmFibGVWZXJzaW9uID09ICcxJykge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0dGluZy5maWx0ZXJDaGVja0V4aXN0QnlWZXJzaW9uID0gW1xuICAgICAgICAgICAgICAgICAgICBuZXcgRmlsdGVyKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkOiAnY29kZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRvcjogT3BlcmF0b3Iubm90RXF1YWwsXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogSlNPTi5zdHJpbmdpZnkodGhpcy5tb2RlbC5kYXRhLmNvZGUpXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZGlzYWJsZUJ1aWxkSW5GaWVsZCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZml4RGF0ZVZhbHVlKGNvbnRyb2wsIHBhcmVudE1vZGVsLCBwYXJlbnRQYXRoPykge1xuICAgICAgICBsZXQgX3BhcmVudFBhdGggPSBjb250cm9sLmZpZWxkO1xuICAgICAgICBpZiAocGFyZW50UGF0aCAhPSBudWxsKSBfcGFyZW50UGF0aCA9IHBhcmVudFBhdGggKyAnLicgKyBfcGFyZW50UGF0aDtcblxuICAgICAgICBpZiAoY29udHJvbCBpbnN0YW5jZW9mIFRhYmxlU2NoZW1hKSB7XG4gICAgICAgICAgICBpZiAoIXBhcmVudE1vZGVsW2NvbnRyb2wuZmllbGRdIHx8ICEocGFyZW50TW9kZWxbY29udHJvbC5maWVsZF0gaW5zdGFuY2VvZiBBcnJheSkpIHtcbiAgICAgICAgICAgICAgICBwYXJlbnRNb2RlbFtjb250cm9sLmZpZWxkXSA9IFtdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IGkgPSAwO1xuICAgICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHBhcmVudE1vZGVsW2NvbnRyb2wuZmllbGRdKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBzdWJDb250cm9sIG9mIGNvbnRyb2wucm93VGVtcGxhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5maXhEYXRlVmFsdWUoc3ViQ29udHJvbCwgaXRlbSwgX3BhcmVudFBhdGggKyAnWycgKyBpICsgJ10nKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaSsrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBDb250YWluZXJTY2hlbWEpIHtcbiAgICAgICAgICAgIGlmIChwYXJlbnRNb2RlbFtjb250cm9sLmZpZWxkXSA9PSBudWxsIHx8ICFpc0xpdGVyYWxPYmplY3QocGFyZW50TW9kZWxbY29udHJvbC5maWVsZF0pKSB7XG4gICAgICAgICAgICAgICAgcGFyZW50TW9kZWxbY29udHJvbC5maWVsZF0gPSB7fTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZm9yIChjb25zdCBzdWJDb250cm9sIG9mIGNvbnRyb2wuY29udHJvbHMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZpeERhdGVWYWx1ZShzdWJDb250cm9sLCBwYXJlbnRNb2RlbFtjb250cm9sLmZpZWxkXSwgX3BhcmVudFBhdGgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBEYXRlVGltZUNvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgICAgICAgICBpZiAoIShwYXJlbnRNb2RlbFtjb250cm9sLmZpZWxkXSBpbnN0YW5jZW9mIERhdGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghY29udHJvbC50aW1lT25seSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKFN0cmluZyhwYXJlbnRNb2RlbFtjb250cm9sLmZpZWxkXSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzVmFsaWREYXRlKGRhdGUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50TW9kZWxbY29udHJvbC5maWVsZF0gPSBkYXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50TW9kZWxbY29udHJvbC5maWVsZF0gPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50TW9kZWxbY29udHJvbC5maWVsZF0gPSB0aGlzLl9jb21tb25TZXJ2aWNlLmdldFRpbWUocGFyZW50TW9kZWxbY29udHJvbC5maWVsZF0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkaXNhYmxlQnVpbGRJbkZpZWxkKCkge1xuICAgICAgICBpZiAoIXRoaXMuX2lzRm9ybUFkZE5ldygpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5tb2RlbC5kYXRhLmlzQnVpbGRJbkFsbCAmJiAhdGhpcy5fdXNlclNlcnZpY2UuaXNTdXBlclVzZXIoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0dGluZy5zY2hlbWEuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaXRlbS5kaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBfYWRkUmVxdWlyZWRWYWxpZGF0b3Ioc2NoZW1hOiBGb3JtQ29udHJvbEJhc2UpIHtcbiAgICAgICAgbGV0IGV4aXN0ID0gZmFsc2U7XG4gICAgICAgIGZvciAoY29uc3QgdmFsaWRhdG9yIG9mIHNjaGVtYS52YWxpZGF0b3JzKSB7XG4gICAgICAgICAgICBpZiAodmFsaWRhdG9yIGluc3RhbmNlb2YgUmVxdWlyZWRWYWxpZGF0b3IpIHtcbiAgICAgICAgICAgICAgICBleGlzdCA9IHRydWU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFleGlzdCkge1xuICAgICAgICAgICAgc2NoZW1hLnZhbGlkYXRvcnMucHVzaChuZXcgUmVxdWlyZWRWYWxpZGF0b3IoKSk7XG4gICAgICAgIH1cbiAgICAgICAgc2NoZW1hLnJlcXVpcmVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBfcmVtb3ZlUmVxdWlyZWRWYWxpZGF0b3Ioc2NoZW1hOiBGb3JtQ29udHJvbEJhc2UpIHtcbiAgICAgICAgY29uc3QgdmFsaWRhdG9ycyA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IHZhbGlkYXRvciBvZiBzY2hlbWEudmFsaWRhdG9ycykge1xuICAgICAgICAgICAgaWYgKHZhbGlkYXRvciBpbnN0YW5jZW9mIFJlcXVpcmVkVmFsaWRhdG9yKSB7XG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHZhbGlkYXRvcnMucHVzaCh2YWxpZGF0b3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHNjaGVtYS52YWxpZGF0b3JzID0gdmFsaWRhdG9ycztcbiAgICAgICAgc2NoZW1hLnJlcXVpcmVkID0gZmFsc2U7XG4gICAgfVxuXG4gICAgX3NldE1vZGVsVmFsdWUoZmllbGQ6IHN0cmluZywgdmFsdWU6IGFueSkge1xuICAgICAgICBjb25zdCBub2RlID0gdGhpcy5jcnVkRm9ybS5fcm9vdE5vZGUuZ2V0Tm9kZUJ5UGF0aChmaWVsZCk7XG4gICAgICAgIHRoaXMuX3NldE1vZGVsVmFsdWVCeU5vZGUobm9kZSwgdmFsdWUpO1xuICAgIH1cblxuICAgIF9zZXRNb2RlbFZhbHVlQnlOb2RlKG5vZGU6IENvbnRyb2xUcmVlTm9kZSwgdmFsdWU6IGFueSkge1xuICAgICAgICBub2RlLnNldFZhbHVlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5jcnVkRm9ybS5maXJlTW9kZWxDaGFuZ2VkKCk7XG4gICAgfVxuXG4gICAgYXN5bmMgbW9kaWZ5RGV0YWlsRGF0YShkYXRhKSB7XG4gICAgfVxuXG4gICAgX3RyaWdnZXJTYXZlKCkge1xuICAgICAgICB0aGlzLnNhdmUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIHNhdmUoKSB7XG4gICAgICAgIGNvbnN0IHZhbGlkYXRlZCA9IGF3YWl0IHRoaXMudmFsaWRhdGVGb3JtQmFzZSgpO1xuICAgICAgICBpZiAodmFsaWRhdGVkKSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLm9uQmVmb3JlU2F2ZSgpO1xuICAgICAgICAgICAgdGhpcy50cmlnZ2VyU2F2ZUZpbGVVcGxvYWQoKTtcbiAgICAgICAgICAgIGlmICh0aGlzLmF1dG9TYXZlKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2lzRm9ybUVkaXQoKSB8fCB0aGlzLl9pc0Zvcm1WaWV3KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5vblVwZGF0ZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmICh0aGlzLl9pc0Zvcm1BZGROZXcoKSkge1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLm9uSW5zZXJ0KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBmb3JtIHZpZXcsIGRvIG5vdGhpbmdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZU1hbnVhbFNhdmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubW9kZWwuc3VibWl0dGluZyA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGFuZGxlTWFudWFsU2F2ZSgpIHtcblxuICAgIH1cblxuICAgIHRyaWdnZXJTYXZlRmlsZVVwbG9hZCgpIHtcbiAgICAgICAgdGhpcy5yb290Q29udGV4dC5maXJlRXZlbnQoQ29tQ3R4Q29uc3RhbnRzLkNPTU1PTi5TQVZFX0ZJTEVfSU5fRk9STSk7XG4gICAgfVxuXG4gICAgYXN5bmMgX2dldFJlc3VsdFZhbGlkYXRlKCkge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy52YWxpZGF0ZUZvcm1CYXNlKCk7XG4gICAgfVxuXG4gICAgYXN5bmMgdmFsaWRhdGVGb3JtKHJlc3VsdFZhbGlkYXRlQmFzZTogYm9vbGVhbikge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIHZhbGlkYXRlRm9ybUJhc2UoKSB7XG4gICAgICAgIGxldCByZXN1bHRWYWxpZGF0ZUJhc2UgPSB0cnVlO1xuICAgICAgICAvLyBDw7MgdGjhu4MgY8OzIGZvcm0gayBjw7MgY3J1ZC1mb3JtIChWw6wgbMOgIGZvcm0gbWFzdGVyIGPhu6dhIGPDoWMgZm9ybSBjb24pXG4gICAgICAgIGlmICh0aGlzLmNydWRGb3JtKSB7XG4gICAgICAgICAgICByZXN1bHRWYWxpZGF0ZUJhc2UgPSBhd2FpdCB0aGlzLmNydWRGb3JtLnZhbGlkYXRlRm9ybSh0aGlzLnNldFZhbGlkYXRlRm9ybSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmVzdWx0VmFsaWRhdGUgPSBhd2FpdCB0aGlzLnZhbGlkYXRlRm9ybShyZXN1bHRWYWxpZGF0ZUJhc2UpO1xuICAgICAgICAvLyBC4buPIGNoZWNrIHZhbGlkIGZvcm0gY8O0bmcgdmnhu4djLiBu4bq/dSBuaMawIGZvcm0gY8O0bmcgdmnhu4djIGtow7RuZyB2YWxpZCB0aMOsIGtow7RuZyB04buxIMSR4buZbmcgdOG6oW8gY8O0bmcgdmnhu4djXG4gICAgICAgIC8vIGlmICh0aGlzLmR5bmFtaWNDb250cm9sW0ZpZWxkRGVmaW5lSXNUYXNrRm9ybUNvbnRyb2xdXG4gICAgICAgIC8vICAgICAmJiB0aGlzLmR5bmFtaWNDb250cm9sW0ZpZWxkRGVmaW5lSXNUYXNrRm9ybUNvbnRyb2xdLl9jb21wb25lbnRcbiAgICAgICAgLy8gKSB7XG4gICAgICAgIC8vICAgICBjb25zdCB0YXNrRm9ybSA9IHRoaXMuZHluYW1pY0NvbnRyb2xbRmllbGREZWZpbmVJc1Rhc2tGb3JtQ29udHJvbF0uX2NvbXBvbmVudDtcbiAgICAgICAgLy8gICAgIGNvbnN0IHJlc3VsdFZhbGlkYXRlRm9ybVRhc2sgPSBhd2FpdCB0YXNrRm9ybS5fZ2V0UmVzdWx0VmFsaWRhdGUoKTtcbiAgICAgICAgLy8gICAgIHJlc3VsdFZhbGlkYXRlID0gcmVzdWx0VmFsaWRhdGVGb3JtVGFzayAmJiByZXN1bHRWYWxpZGF0ZTtcbiAgICAgICAgLy8gfVxuICAgICAgICByZXR1cm4gcmVzdWx0VmFsaWRhdGUgJiYgcmVzdWx0VmFsaWRhdGVCYXNlO1xuICAgIH1cblxuICAgIF92YWxpZGF0ZUZvcm1Db250cm9sKGZpZWxkUGF0aCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jcnVkRm9ybS52YWxpZGF0ZUZvcm1Db250cm9sKGZpZWxkUGF0aCk7XG4gICAgfVxuXG4gICAgX2NsZWFuRm9ybSgpIHtcbiAgICAgICAgdGhpcy5jcnVkRm9ybS5jbGVhbigpO1xuICAgIH1cblxuICAgIF90cmlnZ2VyQ29udHJvbENoYW5nZShmaWVsZFBhdGgpIHtcbiAgICAgICAgdGhpcy5jcnVkRm9ybS50cmlnZ2VyQ2hhbmdlKGZpZWxkUGF0aCk7XG4gICAgfVxuXG4gICAgb25CZWZvcmVTYXZlKCk6IHZvaWQgfCBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICB9XG5cbiAgICBvbkFmdGVyU2F2ZShyZXNwb25zZTogUmVzcG9uc2VSZXN1bHQpOiB2b2lkIHwgUHJvbWlzZTxib29sZWFuPiB7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfb25BZnRlclNhdmUoKSB7XG4gICAgICAgIGlmICghdGhpcy5pc0Nsb3NlRm9ybSkge1xuICAgICAgICAgICAgdGhpcy5tb2RlbC5kYXRhLmlkID0gdGhpcy5fY29tbW9uU2VydmljZS5ndWlkKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhc3luYyBvbkFmdGVyR2V0RGV0YWlsKCkge1xuXG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBvbkluc2VydCgpIHtcbiAgICAgICAgdGhpcy5zZXREZWZhdWx0VmFsdWUodGhpcy5tb2RlbC5kYXRhKTtcbiAgICAgICAgaWYgKHRoaXMuZHluYW1pY0NvbnRyb2xbRmllbGREZWZpbmVJc1Rhc2tGb3JtQ29udHJvbF1cbiAgICAgICAgICAgICYmIHRoaXMuZHluYW1pY0NvbnRyb2xbRmllbGREZWZpbmVJc1Rhc2tGb3JtQ29udHJvbF0uX2NvbXBvbmVudFxuICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IHRhc2tGb3JtID0gdGhpcy5keW5hbWljQ29udHJvbFtGaWVsZERlZmluZUlzVGFza0Zvcm1Db250cm9sXS5fY29tcG9uZW50O1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0VmFsaWRhdGVGb3JtVGFzayA9IGF3YWl0IHRhc2tGb3JtLl9nZXRSZXN1bHRWYWxpZGF0ZSgpO1xuICAgICAgICAgICAgaWYgKHJlc3VsdFZhbGlkYXRlRm9ybVRhc2spIHtcbiAgICAgICAgICAgICAgICB0aGlzLm1vZGVsLmRhdGEuaXRlbUNvbmdWaWVjID0gdGFza0Zvcm0ubW9kZWwuZGF0YTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5tb2RlbC5kYXRhLmNyZWF0ZVRhc2tJbnN0ZWFkKSB7XG4gICAgICAgICAgICAvLyByZXNldCBmaWVsZCBfV29ya2Zsb3dDb2RlIMSR4buDIGJhY2tlbmQga2jDtG5nIGNo4bqheSBxdXkgdHLDrG5oIGLhuqNuIGdoaVxuICAgICAgICAgICAgdGhpcy5tb2RlbC5kYXRhW0ZpZWxkV29ya2Zsb3dDb2RlSW5DcnVkRm9ybV0gPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNvbmZpcm1lZCA9IGF3YWl0IHRoaXMuY3JlYXRlQ29uZmlybUlmUmVxdWlyZSgpO1xuICAgICAgICBpZiAoIWNvbmZpcm1lZCkgcmV0dXJuO1xuICAgICAgICBhd2FpdCB0aGlzLl9pbnNlcnQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUNvbmZpcm1JZlJlcXVpcmUoKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzLCByZWopID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLm1lc3NhZ2VDb25maXJtU2F2ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX25vdGlmaWVyU2VydmljZS5zaG93Q29uZmlybSh0aGlzLm1lc3NhZ2VDb25maXJtU2F2ZSlcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4ocmVzID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcmVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzKGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXModHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVzKHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIF9pbnNlcnQoKSB7XG4gICAgICAgIHRoaXMuZ2V0UHJvbWlzZUFjdGlvbkluc2VydCgpXG4gICAgICAgICAgICAudGhlbihhc3luYyByZXNwb25zZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5tb2RlbC5zdWJtaXR0aW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5zaG93TWVzc2FnZUFmdGVySW5zZXJ0KHJlc3BvbnNlLnN1Y2Nlc3MsIHJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2Vzcykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1vZGVsLmRhdGEuaWQgPSByZXNwb25zZS5kYXRhO1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLm9uQWZ0ZXJTYXZlKHJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vblNhdmVkLmVtaXQoe1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IHRoaXMubW9kZWwuZGF0YS5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGluc2VydDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzQ2xvc2VGb3JtOiB0aGlzLmlzQ2xvc2VGb3JtXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vbkFmdGVyU2F2ZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVJbnNlcnRFcnJvcigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIGVycm9yID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIWVycm9yLmVycm9yLnN1Y2Nlc3MgJiYgZXJyb3IuZXJyb3IuZXJyb3JDaGVja0V4aXN0KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubW9kZWwuc3VibWl0dGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMubW9kZWwuc3VibWl0dGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMuc2hvd01lc3NhZ2VBZnRlckluc2VydChmYWxzZSwgZXJyb3IpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0UHJvbWlzZUFjdGlvbkluc2VydCgpOiBQcm9taXNlPFJlc3BvbnNlUmVzdWx0PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNldHRpbmcuYmFzZVNlcnZpY2UucG9zdCh0aGlzLm1vZGVsLmRhdGEsIHRoaXMuaW5zZXJ0UGx1c1VybCk7XG4gICAgfVxuXG4gICAgaGFuZGxlSW5zZXJ0RXJyb3IoKSB7XG5cbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIG9uVXBkYXRlKCkge1xuICAgICAgICB0aGlzLnNldERlZmF1bHRWYWx1ZSh0aGlzLm1vZGVsLmRhdGEpO1xuICAgICAgICB0aGlzLmdldFByb21pc2VBY3Rpb25VcGRhdGUoKVxuICAgICAgICAgICAgLnRoZW4oYXN5bmMgcmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubW9kZWwuc3VibWl0dGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMuc2hvd01lc3NhZ2VBZnRlclVwZGF0ZShyZXNwb25zZS5zdWNjZXNzLCByZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5vbkFmdGVyU2F2ZShyZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25TYXZlZC5lbWl0KHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiB0aGlzLm1vZGVsLmRhdGEuaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBpbnNlcnQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNDbG9zZUZvcm06IHRoaXMuaXNDbG9zZUZvcm1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29uQWZ0ZXJTYXZlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZVVwZGF0ZUVycm9yKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgZXJyb3IgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghZXJyb3IuZXJyb3Iuc3VjY2VzcyAmJiBlcnJvci5lcnJvci5lcnJvckNoZWNrRXhpc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tb2RlbC5zdWJtaXR0aW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5tb2RlbC5zdWJtaXR0aW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5zaG93TWVzc2FnZUFmdGVyVXBkYXRlKGZhbHNlLCBlcnJvcik7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBoYW5kbGVVcGRhdGVFcnJvcigpIHtcblxuICAgIH1cblxuICAgIGdldFByb21pc2VBY3Rpb25VcGRhdGUoKTogUHJvbWlzZTxSZXNwb25zZVJlc3VsdD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zZXR0aW5nLmJhc2VTZXJ2aWNlLnB1dCh0aGlzLm1vZGVsLmRhdGEuaWQudG9TdHJpbmcoKSwgdGhpcy5tb2RlbC5kYXRhKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldERlZmF1bHRWYWx1ZShtb2RlbCkge1xuICAgICAgICBpZiAobW9kZWwuaXNCdWlsZEluID09PSBudWxsIHx8IG1vZGVsLmlzQnVpbGRJbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBtb2RlbC5pc0J1aWxkSW4gPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChtb2RlbC5pc0J1aWxkSW5BbGwgPT09IG51bGwgfHwgbW9kZWwuaXNCdWlsZEluQWxsID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIG1vZGVsLmlzQnVpbGRJbkFsbCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnBhcmVudFNldHRpbmc/LmVuYWJsZVJlb3JkZXJSb3cgJiYgdGhpcy5wYXJlbnRTZXR0aW5nLmNvbHVtblNldHRpbmcuc29ydEZpZWxkKSB7XG4gICAgICAgICAgICB0aGlzLm1vZGVsLmRhdGFbdGhpcy5wYXJlbnRTZXR0aW5nLmNvbHVtblNldHRpbmcuc29ydEZpZWxkXSA/Pz0gdGhpcy5wYXJlbnRNb2RlbC50b3RhbCArIDE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNob3dNZXNzYWdlQWZ0ZXJJbnNlcnQoaXNTdWNjZXNzOiBib29sZWFuID0gZmFsc2UsIGVycm9yPzogYW55KSB7XG4gICAgICAgIGlmIChpc1N1Y2Nlc3MpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLm1lc3NhZ2VJbnNlcnRTdWNjZXNzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbm90aWZpZXJTZXJ2aWNlLnNob3dTdWNjZXNzKHRoaXMubWVzc2FnZUluc2VydFN1Y2Nlc3MpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVSZXNwb25zZUVycm9yKGVycm9yKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2hvd01lc3NhZ2VBZnRlclVwZGF0ZShpc1N1Y2Nlc3M6IGJvb2xlYW4gPSBmYWxzZSwgZXJyb3I/OiBhbnkpIHtcbiAgICAgICAgaWYgKGlzU3VjY2Vzcykge1xuICAgICAgICAgICAgaWYgKHRoaXMubWVzc2FnZVVwZGF0ZVN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9ub3RpZmllclNlcnZpY2Uuc2hvd1N1Y2Nlc3ModGhpcy5tZXNzYWdlVXBkYXRlU3VjY2Vzcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZVJlc3BvbnNlRXJyb3IoZXJyb3IpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGFuZGxlUmVzcG9uc2VFcnJvcihlcnJvcikge1xuICAgICAgICBpZiAoZXJyb3IubWVzc2FnZSkge1xuICAgICAgICAgICAgdGhpcy5fbm90aWZpZXJTZXJ2aWNlLnNob3dXYXJuaW5nKGVycm9yLm1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGVycm9yLmVycm9yKSB7XG4gICAgICAgICAgICB0aGlzLl9ub3RpZmllclNlcnZpY2Uuc2hvd1dhcm5pbmcoZXJyb3IuZXJyb3IpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fbm90aWZpZXJTZXJ2aWNlLnNob3dXYXJuaW5nKCdDw7MgbOG7l2kgeOG6o3kgcmEsIGxpw6puIGjhu4cgcXXhuqNuIHRy4buLIHZpw6puIMSR4buDIGJp4bq/dCB0aMOqbSBjaGkgdGnhur90Jyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhc3luYyBvbkZvcm1Jbml0aWFsaXplZChkYXRhOiBFdmVudERhdGEpIHtcblxuICAgIH1cblxuICAgIF9oYW5kbGVBZnRlclRyaW5oS3koZXZ0KSB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLm1vZGVsLmRhdGFbS2V5Rmxhc2hTaG93XTtcbiAgICAgICAgdGhpcy5faGFuZGxlQ2FuY2VsKGV2dCk7XG4gICAgfVxuXG4gICAgX2hhbmRsZVNhdmUoZXZ0KSB7XG4gICAgICAgIGlmICh0aGlzLm1vZGVsLnN1Ym1pdHRpbmcpIHJldHVybjtcbiAgICAgICAgdGhpcy5tb2RlbC5zdWJtaXR0aW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zYXZlKCk7XG4gICAgICAgIHRoaXMub25TYXZlLmVtaXQoZXZ0KTtcbiAgICB9XG5cbiAgICBfaGFuZGxlQ2FuY2VsKGV2dCkge1xuICAgICAgICB0aGlzLm9uQ2FuY2VsLmVtaXQoZXZ0KTtcbiAgICB9XG5cbiAgICBfaGFuZGxlTWVzc2FnZShldnQpIHtcbiAgICAgICAgdGhpcy5vbk1lc3NhZ2UuZW1pdChldnQpO1xuICAgIH1cblxuICAgIF9zZXREaXNhYmxlQ29udHJvbCh1bmlxdWVGaWVsZCwgaXNEaXNhYmxlZCkge1xuICAgICAgICB0aGlzLmNydWRGb3JtLmZvcm1Db250cm9sc1t1bmlxdWVGaWVsZF0uZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIH1cblxuICAgIF9zZXRIaWRkZW5Db250cm9sKHVuaXF1ZUZpZWxkLCBpc0hpZGRlbikge1xuICAgICAgICB0aGlzLmNydWRGb3JtLmZvcm1Db250cm9sc1t1bmlxdWVGaWVsZF0uaGlkZGVuID0gaXNIaWRkZW47XG4gICAgfVxuXG4gICAgX2dldEZvcm1TdGF0ZSgpOiBGb3JtU3RhdGUge1xuICAgICAgICByZXR1cm4gdGhpcy5tb2RlbC5mb3JtU3RhdGU7XG4gICAgfVxuXG4gICAgX2lzRm9ybUFkZE5ldygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldEZvcm1TdGF0ZSgpID09IEZvcm1TdGF0ZS5BREQ7XG4gICAgfVxuXG4gICAgX2lzRm9ybUVkaXQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRGb3JtU3RhdGUoKSA9PSBGb3JtU3RhdGUuRURJVDtcbiAgICB9XG5cbiAgICBfaXNGb3JtVmlldygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldEZvcm1TdGF0ZSgpID09IEZvcm1TdGF0ZS5WSUVXO1xuICAgIH1cbn0iXX0=
|
|
741
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1mb3JtLWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90bngtc2hhcmVkL3NyYy9saWIvY2xhc3Nlcy9iYXNlL2RhdGEtZm9ybS1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRUgsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osUUFBUSxFQUNSLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzFELE9BQU8sRUFBbUIsaUJBQWlCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUN6RyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDM0UsT0FBTyxFQUFFLDRCQUE0QixFQUFFLDJCQUEyQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDL0YsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVoRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzFELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3Q0FBd0Ms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TUFBTTswQkFDTixNQUFNOzJCQUNOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEluamVjdG9yLFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgRmlsZVVwbG9hZCB9IGZyb20gJ3RuLWN1c3RvbS1wcmltZW5nL2ZpbGV1cGxvYWQnO1xuaW1wb3J0IHsgQ29udHJvbFRyZWVOb2RlLCBDcnVkRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvY3J1ZC9jcnVkLWZvcm0vY3J1ZC1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDT05GSUdfQ0FMRU5EQVJfVklFVE5BTUVTRSB9IGZyb20gJy4uLy4uL2NvbmZpZ3MvY2FsZW5kYXIuY29uZmlnJztcbmltcG9ydCB7IENvbUN0eENvbnN0YW50cyB9IGZyb20gJy4uLy4uL2NvbmZpZ3MvY29tcG9uZW50LWNvbnRleHQuY29uc3RhbnQnO1xuaW1wb3J0IHsgRmllbGREZWZpbmVJc1Rhc2tGb3JtQ29udHJvbCwgRmllbGRXb3JrZmxvd0NvZGVJbkNydWRGb3JtIH0gZnJvbSAnLi4vLi4vY29uc3QvY29tbW9uJztcbmltcG9ydCB7IFBlcm1pc3Npb25CYXNlIH0gZnJvbSAnLi4vLi4vZW51bXMvY29tbW9uJztcbmltcG9ydCB7IEZpbHRlciB9IGZyb20gJy4uLy4uL21vZGVscy9ncmlkLWluZm8nO1xuaW1wb3J0IHsgUmVzcG9uc2VSZXN1bHQgfSBmcm9tICcuLi8uLi9tb2RlbHMvcmVzcG9uc2UtcmVzdWx0JztcbmltcG9ydCB7IENvbW1vblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb21tb24uc2VydmljZSc7XG5pbXBvcnQgeyBDcnVkU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NydWQuc2VydmljZSc7XG5pbXBvcnQgeyBDdXN0b21Sb3V0ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY3VzdG9tLXJvdXRlci5zZXJ2aWNlJztcbmltcG9ydCB7IERvbVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kb20uc2VydmljZSc7XG5pbXBvcnQgeyBFbnRpdHlNZXRhZGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9lbnRpdHktbWV0YWRhdGEuc2VydmljZSc7XG5pbXBvcnQgeyBNYXN0ZXJEYXRhU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL21hc3Rlci1kYXRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgTW9kdWxlQ29uZmlnU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL21vZHVsZS1jb25maWcuc2VydmljZSc7XG5pbXBvcnQgeyBOb3RpZmllclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9ub3RpZmllci5zZXJ2aWNlJztcbmltcG9ydCB7IFVzZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdXNlci5zZXJ2aWNlJztcbmltcG9ydCB7IEZvcm1TdGF0ZSwgS2V5Rmxhc2hTaG93IH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IGlzTGl0ZXJhbE9iamVjdCwgaXNWYWxpZERhdGUgfSBmcm9tICcuLi9lbnZpcm9ubWVudC1zY2hlbWEnO1xuaW1wb3J0IHtcbiAgICBDb250YWluZXJTY2hlbWEsXG4gICAgQ3J1ZEZvcm1EYXRhLFxuICAgIENydWRGb3JtU2V0dGluZyxcbiAgICBDcnVkTGlzdFNldHRpbmcsXG4gICAgQ3VzdG9tQ29udHJvbFNjaGVtYSxcbiAgICBEYXRlVGltZUNvbnRyb2xTY2hlbWEsXG4gICAgRHJvcGRvd25Db250cm9sU2NoZW1hLFxuICAgIEV2ZW50RGF0YSxcbiAgICBFdmVudFR5cGUsXG4gICAgRmlsZU1hbmFnZXJDb250cm9sU2NoZW1hLFxuICAgIEZvcm1Db250cm9sQmFzZSxcbiAgICBPcGVyYXRvcixcbiAgICBTd2l0Y2hDb250cm9sU2NoZW1hLFxuICAgIFRhYmxlU2NoZW1hLFxuICAgIFRpdGxlU2NoZW1hXG59IGZyb20gJy4uL2Zvcm0tc2NoZW1hJztcbmltcG9ydCB7IENvbXBvbmVudEJhc2VXaXRoQnV0dG9uIH0gZnJvbSAnLi9jb21wb25lbnQtYmFzZS13aXRoLWJ1dHRvbic7XG5pbXBvcnQgeyBSZXF1aXJlZFZhbGlkYXRvciB9IGZyb20gJy4vdmFsaWRhdG9ycyc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIERhdGFGb3JtQmFzZSBleHRlbmRzIENvbXBvbmVudEJhc2VXaXRoQnV0dG9uIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuXG4gICAgQFZpZXdDaGlsZChDcnVkRm9ybUNvbXBvbmVudCwgeyBzdGF0aWM6IGZhbHNlIH0pIGNydWRGb3JtOiBDcnVkRm9ybUNvbXBvbmVudDtcbiAgICBAVmlld0NoaWxkKCdmb3JtRWxlbWVudCcsIHsgc3RhdGljOiB0cnVlIH0pIGZvcm1FbGVtZW50OiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoJ3BVcGxvYWQnLCB7IHN0YXRpYzogdHJ1ZSB9KSBwVXBsb2FkOiBGaWxlVXBsb2FkO1xuXG4gICAgQElucHV0KCkgcGFyZW50U2V0dGluZzogQ3J1ZExpc3RTZXR0aW5nO1xuICAgIEBJbnB1dCgpIG1vZGVsOiBDcnVkRm9ybURhdGEgPSBuZXcgQ3J1ZEZvcm1EYXRhKCk7XG4gICAgQElucHV0KCkgZm9yY2VPbmx5VmlldzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQE91dHB1dCgpIG9uU2F2ZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgb25TYXZlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgb25DYW5jZWw6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIG9uTWVzc2FnZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgb25Gb3JtUmVhZHk6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIG9uRGF0YUJpbmRlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIGRvTm90Q2hlY2tCYXNlU2VydmljZSA9IGZhbHNlO1xuICAgIHByaXZhdGUgbm90Q29uZmlnQmFzZVNlcnZpY2VNZXNzYWdlID0gJ0NoxrBhIGPhuqV1IGjDrG5oIENSVUQgYmFzZSBzZXJ2aWNlJztcbiAgICBtZXNzYWdlSW5zZXJ0U3VjY2VzcyA9ICcnO1xuICAgIG1lc3NhZ2VVcGRhdGVTdWNjZXNzID0gJyc7XG4gICAgc2V0dGluZzogQ3J1ZEZvcm1TZXR0aW5nID0gbmV3IENydWRGb3JtU2V0dGluZygpO1xuXG4gICAgdmkgPSBDT05GSUdfQ0FMRU5EQVJfVklFVE5BTUVTRTtcblxuICAgIGZvcm1Db250cm9sczogYW55O1xuICAgIGZvcm1Db250cm9sc0xpc3QgPSB7fTtcbiAgICBlbnZpcm9ubWVudDogYW55ID0ge307XG4gICAgbWRXaWR0aFdvcmtmbG93OiBudW1iZXI7XG5cbiAgICBhdXRvR2V0RGV0YWlsID0gdHJ1ZTtcbiAgICBhdXRvU2F2ZSA9IHRydWU7XG4gICAgaXNDbG9zZUZvcm0gPSB0cnVlO1xuICAgIG1lc3NhZ2VDb25maXJtU2F2ZTogc3RyaW5nO1xuICAgIHNhdmluZyA9IGZhbHNlO1xuICAgIGdldERldGFpbFBsdXNVcmwgPSBudWxsO1xuICAgIGluc2VydFBsdXNVcmwgPSBudWxsO1xuICAgIGR5bmFtaWNDb250cm9sOiBhbnkgPSB7fTtcbiAgICBzZXRWYWxpZGF0ZUZvcm0gPSB0cnVlO1xuICAgIGhhdmVFbnRpdHlNZXRhZGF0YUFQSSA9IHRydWU7XG4gICAgaXNCYXNlTW9kZWwgPSB0cnVlO1xuICAgIHB1YmxpYyBfX2lzRm9ybVZpZXc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIHB1YmxpYyBfbm90aWZpZXJTZXJ2aWNlOiBOb3RpZmllclNlcnZpY2U7XG4gICAgcHVibGljIF9tYXN0ZXJEYXRhU2VydmljZTogTWFzdGVyRGF0YVNlcnZpY2U7XG4gICAgcHVibGljIF9yb3V0ZXI6IFJvdXRlcjtcbiAgICBwdWJsaWMgX2FjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZTtcbiAgICBwdWJsaWMgX3RyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2U7XG4gICAgcHVibGljIF9jdXN0b21Sb3V0ZXJTZXJ2aWNlOiBDdXN0b21Sb3V0ZXJTZXJ2aWNlO1xuICAgIHB1YmxpYyBfY3J1ZFNlcnZpY2U6IENydWRTZXJ2aWNlO1xuICAgIHB1YmxpYyBfZG9tU2VydmljZTogRG9tU2VydmljZTtcbiAgICBwdWJsaWMgX2VudGl0eU1ldGFkYXRhU2VydmljZTogRW50aXR5TWV0YWRhdGFTZXJ2aWNlO1xuICAgIHB1YmxpYyBfdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIF9pbmplY3RvcjogSW5qZWN0b3JcbiAgICApIHtcbiAgICAgICAgc3VwZXIoX2luamVjdG9yKTtcbiAgICAgICAgY29uc3QgbW9kdWxlQ29uZmlnU2VydmljZSA9IF9pbmplY3Rvci5nZXQoTW9kdWxlQ29uZmlnU2VydmljZSk7XG4gICAgICAgIHRoaXMuZW52aXJvbm1lbnQgPSBtb2R1bGVDb25maWdTZXJ2aWNlLmdldENvbmZpZygpLmVudmlyb25tZW50O1xuICAgICAgICB0aGlzLl9ub3RpZmllclNlcnZpY2UgPSB0aGlzLl9pbmplY3Rvci5nZXQoTm90aWZpZXJTZXJ2aWNlKTtcbiAgICAgICAgdGhpcy5fbWFzdGVyRGF0YVNlcnZpY2UgPSB0aGlzLl9pbmplY3Rvci5nZXQoTWFzdGVyRGF0YVNlcnZpY2UpO1xuICAgICAgICB0aGlzLl9yb3V0ZXIgPSB0aGlzLl9pbmplY3Rvci5nZXQoUm91dGVyKTtcbiAgICAgICAgdGhpcy5fYWN0aXZhdGVkUm91dGUgPSB0aGlzLl9pbmplY3Rvci5nZXQoQWN0aXZhdGVkUm91dGUpO1xuICAgICAgICB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlID0gdGhpcy5faW5qZWN0b3IuZ2V0KFRyYW5zbGF0ZVNlcnZpY2UpO1xuICAgICAgICB0aGlzLl9jdXN0b21Sb3V0ZXJTZXJ2aWNlID0gdGhpcy5faW5qZWN0b3IuZ2V0KEN1c3RvbVJvdXRlclNlcnZpY2UpO1xuICAgICAgICB0aGlzLl9jcnVkU2VydmljZSA9IHRoaXMuX2luamVjdG9yLmdldChDcnVkU2VydmljZSk7XG4gICAgICAgIHRoaXMuX2RvbVNlcnZpY2UgPSB0aGlzLl9pbmplY3Rvci5nZXQoRG9tU2VydmljZSk7XG4gICAgICAgIHRoaXMuX2VudGl0eU1ldGFkYXRhU2VydmljZSA9IHRoaXMuX2luamVjdG9yLmdldChFbnRpdHlNZXRhZGF0YVNlcnZpY2UpO1xuICAgICAgICB0aGlzLl91c2VyU2VydmljZSA9IHRoaXMuX2luamVjdG9yLmdldChVc2VyU2VydmljZSk7XG4gICAgICAgIHRoaXMuX2NvbW1vblNlcnZpY2UgPSB0aGlzLl9pbmplY3Rvci5nZXQoQ29tbW9uU2VydmljZSk7XG5cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgLy8gdGhpcy5jaGVja1Blcm1pc3Npb24odGhpcy5tb2RlbC5kYXRhLmJhc2VQZXJtaXNzaW9uKTtcblxuICAgICAgICBjb25zdCBkZWZhdWx0U2V0dGluZyA9IG5ldyBDcnVkRm9ybVNldHRpbmcoKTtcbiAgICAgICAgY29uc3QgY2F1SGluaE5naGllcFZ1ID0gdGhpcy5lbnZpcm9ubWVudD8uY2F1SGluaE5naGllcFZ1O1xuICAgICAgICBpZiAoY2F1SGluaE5naGllcFZ1KSB7XG4gICAgICAgICAgICBmb3IgKGxldCBrZXkgaW4gY2F1SGluaE5naGllcFZ1KSB7XG4gICAgICAgICAgICAgICAgaWYgKGRlZmF1bHRTZXR0aW5nW2tleV0gPT0gdGhpcy5zZXR0aW5nW2tleV1cbiAgICAgICAgICAgICAgICAgICAgJiYgdGhpcy5zZXR0aW5nW2tleV0gIT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICYmIGNhdUhpbmhOZ2hpZXBWdVtrZXldICE9IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAmJiB0aGlzLnNldHRpbmdba2V5XSAhPSBjYXVIaW5oTmdoaWVwVnVba2V5XSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldHRpbmdba2V5XSA9IGNhdUhpbmhOZ2hpZXBWdVtrZXldO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgfVxuICAgIGNoZWNrUGVybWlzc2lvbihiYXNlUGVybWlzc2lvbikge1xuICAgICAgICBpZiAodGhpcy5pc0Jhc2VNb2RlbCkge1xuICAgICAgICAgICAgaWYgKHRoaXMubW9kZWwuZm9ybVN0YXRlID09IEZvcm1TdGF0ZS5FRElUKSB7XG4gICAgICAgICAgICAgICAgaWYgKGJhc2VQZXJtaXNzaW9uICYgUGVybWlzc2lvbkJhc2UuRURJVCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1vZGVsLmZvcm1TdGF0ZSA9IEZvcm1TdGF0ZS5FRElUO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tb2RlbC5mb3JtU3RhdGUgPSBGb3JtU3RhdGUuVklFVztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5tb2RlbC5kYXRhLmlzQnVpbGRJbkFsbCAmJiAhdGhpcy5fdXNlclNlcnZpY2UuaXNTdXBlclVzZXIoKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1vZGVsLmZvcm1TdGF0ZSA9IEZvcm1TdGF0ZS5WSUVXO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fX2lzRm9ybVZpZXcgPSB0aGlzLl9pc0Zvcm1WaWV3KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhZGRTY2hlbWFCYXNlKCkge1xuICAgICAgICBpZiAodGhpcy5fdXNlclNlcnZpY2UuaXNTdXBlclVzZXIoKVxuICAgICAgICAgICAgJiYgdGhpcy5tb2RlbFxuICAgICAgICAgICAgJiYgdGhpcy5tb2RlbC5kYXRhLmhhc0J1aWxkSW5cbiAgICAgICAgICAgICYmIHRoaXMuc2V0dGluZy5zY2hlbWFcbiAgICAgICAgICAgICYmIHRoaXMuc2V0dGluZy5zY2hlbWEubGVuZ3RoID4gMFxuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuc2V0dGluZy5zY2hlbWEucHVzaChcbiAgICAgICAgICAgICAgICBuZXcgU3dpdGNoQ29udHJvbFNjaGVtYSh7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiAnaXNCdWlsZEluJyxcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdLaMOzYSBtw6MnLFxuICAgICAgICAgICAgICAgICAgICBtZFdpZHRoOiA0XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLnNldHRpbmcuc2NoZW1hLnB1c2goXG4gICAgICAgICAgICAgICAgbmV3IFN3aXRjaENvbnRyb2xTY2hlbWEoe1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogJ2lzQnVpbGRJbkFsbCcsXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnS2jDs2EgYuG6o24gZ2hpJyxcbiAgICAgICAgICAgICAgICAgICAgbWRXaWR0aDogNFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMucGFyZW50U2V0dGluZ1xuICAgICAgICAgICAgJiYgdGhpcy5faXNGb3JtQWRkTmV3KClcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBsZXQgZGF0YVNvdXJjZSA9IFtdLCBkZWZhdWx0VmFsdWUgPSBudWxsLCBoYXNXb3JrZmxvdyA9IGZhbHNlO1xuICAgICAgICAgICAgY29uc3QgaW5pdERhdGFUYXNrRm9ybTogYW55ID0ge307XG4gICAgICAgICAgICBpZiAodGhpcy5wYXJlbnRTZXR0aW5nLndvcmtmbG93U2V0dGluZ05ldyAmJiB0aGlzLnBhcmVudFNldHRpbmcud29ya2Zsb3dTZXR0aW5nTmV3LndvcmtmbG93cy5sZW5ndGggPiAwXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBkYXRhU291cmNlID0gdGhpcy5wYXJlbnRTZXR0aW5nLndvcmtmbG93U2V0dGluZ05ldy53b3JrZmxvd3M7XG4gICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlID0gdGhpcy5wYXJlbnRTZXR0aW5nLndvcmtmbG93U2V0dGluZ05ldy53b3JrZmxvd0NvZGU7XG4gICAgICAgICAgICAgICAgaGFzV29ya2Zsb3cgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMubW9kZWwuZGF0YS5jcmVhdGVUYXNrSW5zdGVhZCA9IHRoaXMucGFyZW50U2V0dGluZy53b3JrZmxvd1NldHRpbmdOZXcuY3JlYXRlVGFza0luc3RlYWQ7XG4gICAgICAgICAgICAgICAgaW5pdERhdGFUYXNrRm9ybS5pZExvYWlDb25nVmllYyA9IHRoaXMucGFyZW50U2V0dGluZy53b3JrZmxvd1NldHRpbmdOZXcuaWRMb2FpQ29uZ1ZpZWNEZWZhdWx0O1xuICAgICAgICAgICAgICAgIGluaXREYXRhVGFza0Zvcm0uX190ZW1wbGF0ZVRhc2tOYW1lID0gdGhpcy5wYXJlbnRTZXR0aW5nLndvcmtmbG93U2V0dGluZ05ldy50ZW1wbGF0ZVRhc2tOYW1lO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5wYXJlbnRTZXR0aW5nLmlzV29ya2Zsb3dUcmVlKSB7XG4gICAgICAgICAgICAgICAgaGFzV29ya2Zsb3cgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGhhc1dvcmtmbG93KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5keW5hbWljQ29udHJvbFtGaWVsZERlZmluZUlzVGFza0Zvcm1Db250cm9sXSA9IG5ldyBDdXN0b21Db250cm9sU2NoZW1hKHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IEZpZWxkRGVmaW5lSXNUYXNrRm9ybUNvbnRyb2wsXG4gICAgICAgICAgICAgICAgICAgIG1kV2lkdGg6IDEyLFxuICAgICAgICAgICAgICAgICAgICBzaG93TGFiZWw6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBjbGFzczogJ25vLXBhZGRpbmcnLFxuICAgICAgICAgICAgICAgICAgICBkYXRhOiBpbml0RGF0YVRhc2tGb3JtLFxuICAgICAgICAgICAgICAgICAgICBoaWRkZW5DaGVjazogKHJvb3RNb2RlbCkgPT4gIXJvb3RNb2RlbCB8fCAhcm9vdE1vZGVsLmNyZWF0ZVRhc2tJbnN0ZWFkXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXR0aW5nLnNjaGVtYS5wdXNoKFxuICAgICAgICAgICAgICAgICAgICBuZXcgRHJvcGRvd25Db250cm9sU2NoZW1hKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkOiBGaWVsZFdvcmtmbG93Q29kZUluQ3J1ZEZvcm0sXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ1F1eSB0csOsbmggc+G7rSBk4bulbmcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVNvdXJjZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlRmllbGQ6ICdjb2RlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlGaWVsZDogJ3RpdGxlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1kV2lkdGg6IHRoaXMubWRXaWR0aFdvcmtmbG93IHx8IDEyLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW5hYmxlQ2FjaGluZzogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBoaWRkZW5DaGVjazogKHJvb3RNb2RlbCkgPT4gIXJvb3RNb2RlbCB8fCByb290TW9kZWwuY3JlYXRlVGFza0luc3RlYWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZWQ6IGFzeW5jIChldnQ6IEV2ZW50RGF0YSkgPT4gYXdhaXQgdGhpcy5oYW5kbGVDaGFuZ2VXb3JrZmxvd0NvZGUoZXZ0KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQWRqdXN0ZWRWYWx1ZTogYXN5bmMgKGV2dDogRXZlbnREYXRhKSA9PiBhd2FpdCB0aGlzLmhhbmRsZUNoYW5nZVdvcmtmbG93Q29kZShldnQpXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5wYXJlbnRTZXR0aW5nLndvcmtmbG93U2V0dGluZ05ld1xuICAgICAgICAgICAgICAgICAgICAmJiB0aGlzLnBhcmVudFNldHRpbmcud29ya2Zsb3dTZXR0aW5nTmV3LnRhc2tJbnNpZGVCdXNpbmVzc0Zvcm1cbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXR0aW5nLnNjaGVtYS5wdXNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFRpdGxlU2NoZW1hKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiAnQ8O0bmcgdmnhu4djJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaWRkZW5DaGVjazogKHJvb3RNb2RlbCkgPT4gIXJvb3RNb2RlbCB8fCAhcm9vdE1vZGVsLmNyZWF0ZVRhc2tJbnN0ZWFkXG4gICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZHluYW1pY0NvbnRyb2xbRmllbGREZWZpbmVJc1Rhc2tGb3JtQ29udHJvbF1cbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhc3luYyBoYW5kbGVDaGFuZ2VXb3JrZmxvd0NvZGUoZXZ0OiBFdmVudERhdGEpIHtcblxuICAgIH1cblxuICAgIHNldFdvcmtmbG93RGF0YXNvdXJjZShldnQ6IEV2ZW50RGF0YSwgd29ya2Zsb3dTZXR0aW5nKSB7XG4gICAgICAgIGV2dC5mb3JtQ29udHJvbHNbRmllbGRXb3JrZmxvd0NvZGVJbkNydWRGb3JtXS5kYXRhU291cmNlID0gd29ya2Zsb3dTZXR0aW5nLndvcmtmbG93cztcbiAgICAgICAgaWYgKCFldnQucm9vdE1vZGVsW0ZpZWxkV29ya2Zsb3dDb2RlSW5DcnVkRm9ybV0pIHtcbiAgICAgICAgICAgIGV2dC5yb290TW9kZWxbRmllbGRXb3JrZmxvd0NvZGVJbkNydWRGb3JtXSA9IHdvcmtmbG93U2V0dGluZy53b3JrZmxvd0NvZGU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoIXdvcmtmbG93U2V0dGluZy53b3JrZmxvd3Muc29tZSh4ID0+IHguY29kZSA9PSBldnQucm9vdE1vZGVsW0ZpZWxkV29ya2Zsb3dDb2RlSW5DcnVkRm9ybV0pKSB7XG4gICAgICAgICAgICBldnQucm9vdE1vZGVsW0ZpZWxkV29ya2Zsb3dDb2RlSW5DcnVkRm9ybV0gPSB3b3JrZmxvd1NldHRpbmcud29ya2Zsb3dDb2RlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYXN5bmMgX2hhbmRsZUZvcm1SZWFkeShmb3JtRXZlbnQ6IEV2ZW50RGF0YSkge1xuICAgICAgICB0aGlzLm1lc3NhZ2VJbnNlcnRTdWNjZXNzID0gdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLklOU0VSVF9EQVRBX1NVQ0NFU1MnKTtcbiAgICAgICAgdGhpcy5tZXNzYWdlVXBkYXRlU3VjY2VzcyA9IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5VUERBVEVfREFUQV9TVUNDRVNTJyk7XG4gICAgICAgIGF3YWl0IHRoaXMuX19oYW5kbGVGb3JtUmVhZHkoZm9ybUV2ZW50KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIF9faGFuZGxlRm9ybVJlYWR5KGZvcm1FdmVudDogRXZlbnREYXRhKSB7XG4gICAgICAgIGlmICghdGhpcy5kb05vdENoZWNrQmFzZVNlcnZpY2UgJiYgIXRoaXMuc2V0dGluZy5iYXNlU2VydmljZSkge1xuICAgICAgICAgICAgdGhpcy5fbm90aWZpZXJTZXJ2aWNlLnNob3dXYXJuaW5nKHRoaXMubm90Q29uZmlnQmFzZVNlcnZpY2VNZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmZvcm1Db250cm9scyA9IGZvcm1FdmVudC5mb3JtQ29udHJvbHM7XG4gICAgICAgIGF3YWl0IHRoaXMub25Gb3JtSW5pdGlhbGl6ZWQoZm9ybUV2ZW50KTtcbiAgICAgICAgdGhpcy5vbkZvcm1SZWFkeS5lbWl0KHtcbiAgICAgICAgICAgIGVsZW1lbnQ6IHRoaXMsXG4gICAgICAgICAgICBzZXR0aW5nOiB0aGlzLnNldHRpbmcsXG4gICAgICAgICAgICBmb3JtRXZlbnRcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX3RyaWdnZXJHZXREZXRhaWwoKTtcbiAgICB9XG5cbiAgICBfdHJpZ2dlckdldERldGFpbCgpIHtcbiAgICAgICAgaWYgKHRoaXMuYXV0b0dldERldGFpbCkge1xuICAgICAgICAgICAgdGhpcy5nZXREZXRhaWwoKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmNydWRGb3JtKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jcnVkRm9ybS5pbml0Q29udHJvbERlZmF1bHRWYWx1ZUZyb21FeHRlcm5hbCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuY3J1ZEZvcm0uZmlyZU1vZGVsQ2hhbmdlZCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgYXN5bmMgb25CZWZvcmVHZXREZXRhaWwoKSB7XG4gICAgfVxuXG4gICAgYXN5bmMgZ2V0T2JqZWN0RGV0YWlsKCk6IFByb21pc2U8UmVzcG9uc2VSZXN1bHQ+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuc2V0dGluZy5iYXNlU2VydmljZS5nZXREZXRhaWxXaXRoUGVybWlzc2lvbih0aGlzLm1vZGVsLmRhdGEuaWQsIHRoaXMubW9kZWwuZGF0YS5waWQsIHRoaXMuZ2V0RGV0YWlsUGx1c1VybCk7XG4gICAgfVxuXG4gICAgYXN5bmMgZ2V0RGV0YWlsQ3VzdG9tKCk6IFByb21pc2U8UmVzcG9uc2VSZXN1bHQ+IHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBnZXREZXRhaWwoKSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdENoZWNrID0gYXdhaXQgdGhpcy5nZXREZXRhaWxDdXN0b20oKTtcbiAgICAgICAgLy8gS2jDtG5nIG92ZXJyaWRlXG4gICAgICAgIGlmIChyZXN1bHRDaGVjayA9PSBudWxsKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuX2lzRm9ybUFkZE5ldygpKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5vbkJlZm9yZUdldERldGFpbCgpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmNydWRGb3JtKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3J1ZEZvcm0uc2V0SXNMb2FkZWREYXRhRWRpdChmYWxzZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5nZXRPYmplY3REZXRhaWwoKTtcbiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UuZGF0YSkge1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLm1vZGlmeURldGFpbERhdGEocmVzcG9uc2UuZGF0YSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX3Byb2Nlc3NBZnRlckdldERhdGEocmVzcG9uc2UuZGF0YSk7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5vbkFmdGVyR2V0RGV0YWlsKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jcnVkRm9ybSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBldmVudCA9IG5ldyBFdmVudERhdGEoe1xuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudE5vZGU6IHRoaXMuY3J1ZEZvcm0uX3Jvb3ROb2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRUeXBlOiBFdmVudFR5cGUuRk9STV9SRUFEWSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNydWRGb3JtOiB0aGlzLmNydWRGb3JtXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLmluaXREYXRhQWRkKGV2ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbml0RGVmYXVsdFNldHRpbmdGaWxlQ29udHJvbChldmVudCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3J1ZEZvcm0uaW5pdENvbnRyb2xEZWZhdWx0VmFsdWVGcm9tRXh0ZXJuYWwoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jcnVkRm9ybS5maXJlTW9kZWxDaGFuZ2VkKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIE92ZXJyaWRlIGPDoWNoIGzhuqV5IGThu68gbGnhu4d1IGdldERldGFpbFxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGlmIChyZXN1bHRDaGVjay5zdWNjZXNzICYmIHJlc3VsdENoZWNrLmRhdGEpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMubW9kZWwuZm9ybVN0YXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubW9kZWwuZm9ybVN0YXRlID0gRm9ybVN0YXRlLkVESVQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmNydWRGb3JtKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3J1ZEZvcm0uc2V0SXNMb2FkZWREYXRhRWRpdChmYWxzZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMubW9kaWZ5RGV0YWlsRGF0YShyZXN1bHRDaGVjay5kYXRhKTtcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLl9wcm9jZXNzQWZ0ZXJHZXREYXRhKHJlc3VsdENoZWNrLmRhdGEpO1xuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMub25BZnRlckdldERldGFpbCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tb2RlbC5mb3JtU3RhdGUgPSBGb3JtU3RhdGUuQUREO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmNydWRGb3JtKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGV2ZW50ID0gbmV3IEV2ZW50RGF0YSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50Tm9kZTogdGhpcy5jcnVkRm9ybS5fcm9vdE5vZGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudFR5cGU6ICdmb3JtUmVhZHknLFxuICAgICAgICAgICAgICAgICAgICAgICAgY3J1ZEZvcm06IHRoaXMuY3J1ZEZvcm1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuaW5pdERhdGFBZGQoZXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluaXREZWZhdWx0U2V0dGluZ0ZpbGVDb250cm9sKGV2ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jcnVkRm9ybS5pbml0Q29udHJvbERlZmF1bHRWYWx1ZUZyb21FeHRlcm5hbCgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNydWRGb3JtLmZpcmVNb2RlbENoYW5nZWQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhc3luYyBpbml0RGF0YUFkZChldnQ6IEV2ZW50RGF0YSkgeyB9XG5cbiAgICBwcml2YXRlIGluaXREZWZhdWx0U2V0dGluZ0ZpbGVDb250cm9sKGV2dDogRXZlbnREYXRhKSB7XG4gICAgICAgIGlmICghZXZ0LnJvb3RNb2RlbC5pZCAmJiB0aGlzLnNldHRpbmcuc2NoZW1hLnNvbWUocCA9PiAocCBpbnN0YW5jZW9mIEZpbGVNYW5hZ2VyQ29udHJvbFNjaGVtYSkpKSB7XG4gICAgICAgICAgICBldnQucm9vdE1vZGVsLmlkID0gdGhpcy5fY29tbW9uU2VydmljZS5ndWlkKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQaOG6o2kgZ+G7jWkgaMOgbSBuw6B5IGtoaSBvdmVycmlkZSBnZXREZXRhaWxcbiAgICAgKi9cbiAgICBhc3luYyBfcHJvY2Vzc0FmdGVyR2V0RGF0YShkYXRhKSB7XG4gICAgICAgIGlmICghZGF0YSkge1xuICAgICAgICAgICAgZGF0YSA9IHt9O1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgLy8gRHV54buHdCBjw6FjIGNvbnRyb2wgZGF0ZXRpbWUgxJHhu4MgY29udmVydCB2YWx1ZSBzYW5nIGRhdGV0aW1lXG4gICAgICAgICAgICB0aGlzLnNldHRpbmcuc2NoZW1hLmZvckVhY2goc2NoZW1hID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmZpeERhdGVWYWx1ZShzY2hlbWEsIGRhdGEpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZGF0YS5fX2Rpc2FibGVFZGl0ID0gdGhpcy5tb2RlbC5kYXRhLl9fZGlzYWJsZUVkaXQ7XG5cbiAgICAgICAgLy8gU2V0IGJhc2VQZXJtaXNzaW9uIHThu6sgY3J1ZGxpc3RcbiAgICAgICAgaWYgKHRoaXMubW9kZWwuZGF0YS5iYXNlUGVybWlzc2lvbiAmJiB0aGlzLm1vZGVsLmRhdGEuYmFzZVBlcm1pc3Npb24gPT09IFBlcm1pc3Npb25CYXNlLkZVTEwpIHtcbiAgICAgICAgICAgIGRhdGEuYmFzZVBlcm1pc3Npb24gPSB0aGlzLm1vZGVsLmRhdGEuYmFzZVBlcm1pc3Npb247XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm1vZGVsLmRhdGEgPSBkYXRhO1xuICAgICAgICBpZiAoZGF0YS5waWQgJiYgZGF0YS5waWQgIT0gdGhpcy5ndWlkRW1wdHkgJiYgZGF0YS5iYXNlUGVybWlzc2lvbkJ5UGlkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tQZXJtaXNzaW9uKGRhdGEuYmFzZVBlcm1pc3Npb25CeVBpZCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmNoZWNrUGVybWlzc2lvbihkYXRhLmJhc2VQZXJtaXNzaW9uKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5mb3JjZU9ubHlWaWV3KSB7XG4gICAgICAgICAgICB0aGlzLl9faXNGb3JtVmlldyA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLm1vZGVsLmZvcm1TdGF0ZSA9IEZvcm1TdGF0ZS5WSUVXO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuY3J1ZEZvcm0pIHtcbiAgICAgICAgICAgIHRoaXMuY3J1ZEZvcm0uc3dpdGNoVmlld01vZGUodGhpcy5fX2lzRm9ybVZpZXcpO1xuICAgICAgICAgICAgdGhpcy5jcnVkRm9ybS5kYXRhID0gZGF0YTtcbiAgICAgICAgICAgIHRoaXMuY3J1ZEZvcm0uc2V0SXNMb2FkZWREYXRhRWRpdCh0cnVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnNldHRpbmcuYmFzZVNlcnZpY2VcbiAgICAgICAgICAgICYmIHRoaXMuaGF2ZUVudGl0eU1ldGFkYXRhQVBJIC8vIHNldHRpbmcgxJHhu4MgZml4IGzhu5dpIGsgbG9hZCBkYyBlbnRpdHkgbWV0YWRhdGEgY2hvIGPGoSBj4bqldSB04buVIGNo4bupYyBzZXJ2aWNlXG4gICAgICAgICkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5fZW50aXR5TWV0YWRhdGFTZXJ2aWNlLmxvYWQodGhpcy5zZXR0aW5nLmJhc2VTZXJ2aWNlLCB0aGlzLmNvbnRleHQsIHRydWUpOyAvLyBmb3JjZSBsb2FkIMSR4buDIMSR4buNYyB04burIGNzZGxcbiAgICAgICAgICAgIGNvbnN0IGVuYWJsZVZlcnNpb24gPSB0aGlzLl9lbnRpdHlNZXRhZGF0YVNlcnZpY2UuZ2V0QnlDb2RlKCdlbmFibGVWZXJzaW9uJyk7XG4gICAgICAgICAgICBpZiAoZW5hYmxlVmVyc2lvbiA9PSAnMScpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldHRpbmcuZmlsdGVyQ2hlY2tFeGlzdEJ5VmVyc2lvbiA9IFtcbiAgICAgICAgICAgICAgICAgICAgbmV3IEZpbHRlcih7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZDogJ2NvZGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3I6IE9wZXJhdG9yLm5vdEVxdWFsLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IEpTT04uc3RyaW5naWZ5KHRoaXMubW9kZWwuZGF0YS5jb2RlKVxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmRpc2FibGVCdWlsZEluRmllbGQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZpeERhdGVWYWx1ZShjb250cm9sLCBwYXJlbnRNb2RlbCwgcGFyZW50UGF0aD8pIHtcbiAgICAgICAgbGV0IF9wYXJlbnRQYXRoID0gY29udHJvbC5maWVsZDtcbiAgICAgICAgaWYgKHBhcmVudFBhdGggIT0gbnVsbCkgX3BhcmVudFBhdGggPSBwYXJlbnRQYXRoICsgJy4nICsgX3BhcmVudFBhdGg7XG5cbiAgICAgICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBUYWJsZVNjaGVtYSkge1xuICAgICAgICAgICAgaWYgKCFwYXJlbnRNb2RlbFtjb250cm9sLmZpZWxkXSB8fCAhKHBhcmVudE1vZGVsW2NvbnRyb2wuZmllbGRdIGluc3RhbmNlb2YgQXJyYXkpKSB7XG4gICAgICAgICAgICAgICAgcGFyZW50TW9kZWxbY29udHJvbC5maWVsZF0gPSBbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBpID0gMDtcbiAgICAgICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBwYXJlbnRNb2RlbFtjb250cm9sLmZpZWxkXSkge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3Qgc3ViQ29udHJvbCBvZiBjb250cm9sLnJvd1RlbXBsYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZml4RGF0ZVZhbHVlKHN1YkNvbnRyb2wsIGl0ZW0sIF9wYXJlbnRQYXRoICsgJ1snICsgaSArICddJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGkrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChjb250cm9sIGluc3RhbmNlb2YgQ29udGFpbmVyU2NoZW1hKSB7XG4gICAgICAgICAgICBpZiAocGFyZW50TW9kZWxbY29udHJvbC5maWVsZF0gPT0gbnVsbCB8fCAhaXNMaXRlcmFsT2JqZWN0KHBhcmVudE1vZGVsW2NvbnRyb2wuZmllbGRdKSkge1xuICAgICAgICAgICAgICAgIHBhcmVudE1vZGVsW2NvbnRyb2wuZmllbGRdID0ge307XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGZvciAoY29uc3Qgc3ViQ29udHJvbCBvZiBjb250cm9sLmNvbnRyb2xzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5maXhEYXRlVmFsdWUoc3ViQ29udHJvbCwgcGFyZW50TW9kZWxbY29udHJvbC5maWVsZF0sIF9wYXJlbnRQYXRoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgRGF0ZVRpbWVDb250cm9sU2NoZW1hKSB7XG4gICAgICAgICAgICAgICAgaWYgKCEocGFyZW50TW9kZWxbY29udHJvbC5maWVsZF0gaW5zdGFuY2VvZiBEYXRlKSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWNvbnRyb2wudGltZU9ubHkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZShTdHJpbmcocGFyZW50TW9kZWxbY29udHJvbC5maWVsZF0pKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc1ZhbGlkRGF0ZShkYXRlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudE1vZGVsW2NvbnRyb2wuZmllbGRdID0gZGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudE1vZGVsW2NvbnRyb2wuZmllbGRdID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudE1vZGVsW2NvbnRyb2wuZmllbGRdID0gdGhpcy5fY29tbW9uU2VydmljZS5nZXRUaW1lKHBhcmVudE1vZGVsW2NvbnRyb2wuZmllbGRdKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZGlzYWJsZUJ1aWxkSW5GaWVsZCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLl9pc0Zvcm1BZGROZXcoKSkge1xuICAgICAgICAgICAgaWYgKHRoaXMubW9kZWwuZGF0YS5pc0J1aWxkSW5BbGwgJiYgIXRoaXMuX3VzZXJTZXJ2aWNlLmlzU3VwZXJVc2VyKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldHRpbmcuc2NoZW1hLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgX2FkZFJlcXVpcmVkVmFsaWRhdG9yKHNjaGVtYTogRm9ybUNvbnRyb2xCYXNlKSB7XG4gICAgICAgIGxldCBleGlzdCA9IGZhbHNlO1xuICAgICAgICBmb3IgKGNvbnN0IHZhbGlkYXRvciBvZiBzY2hlbWEudmFsaWRhdG9ycykge1xuICAgICAgICAgICAgaWYgKHZhbGlkYXRvciBpbnN0YW5jZW9mIFJlcXVpcmVkVmFsaWRhdG9yKSB7XG4gICAgICAgICAgICAgICAgZXhpc3QgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICghZXhpc3QpIHtcbiAgICAgICAgICAgIHNjaGVtYS52YWxpZGF0b3JzLnB1c2gobmV3IFJlcXVpcmVkVmFsaWRhdG9yKCkpO1xuICAgICAgICB9XG4gICAgICAgIHNjaGVtYS5yZXF1aXJlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgX3JlbW92ZVJlcXVpcmVkVmFsaWRhdG9yKHNjaGVtYTogRm9ybUNvbnRyb2xCYXNlKSB7XG4gICAgICAgIGNvbnN0IHZhbGlkYXRvcnMgPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCB2YWxpZGF0b3Igb2Ygc2NoZW1hLnZhbGlkYXRvcnMpIHtcbiAgICAgICAgICAgIGlmICh2YWxpZGF0b3IgaW5zdGFuY2VvZiBSZXF1aXJlZFZhbGlkYXRvcikge1xuXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB2YWxpZGF0b3JzLnB1c2godmFsaWRhdG9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBzY2hlbWEudmFsaWRhdG9ycyA9IHZhbGlkYXRvcnM7XG4gICAgICAgIHNjaGVtYS5yZXF1aXJlZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIF9zZXRNb2RlbFZhbHVlKGZpZWxkOiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcbiAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXMuY3J1ZEZvcm0uX3Jvb3ROb2RlLmdldE5vZGVCeVBhdGgoZmllbGQpO1xuICAgICAgICB0aGlzLl9zZXRNb2RlbFZhbHVlQnlOb2RlKG5vZGUsIHZhbHVlKTtcbiAgICB9XG5cbiAgICBfc2V0TW9kZWxWYWx1ZUJ5Tm9kZShub2RlOiBDb250cm9sVHJlZU5vZGUsIHZhbHVlOiBhbnkpIHtcbiAgICAgICAgbm9kZS5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMuY3J1ZEZvcm0uZmlyZU1vZGVsQ2hhbmdlZCgpO1xuICAgIH1cblxuICAgIGFzeW5jIG1vZGlmeURldGFpbERhdGEoZGF0YSkge1xuICAgIH1cblxuICAgIF90cmlnZ2VyU2F2ZSgpIHtcbiAgICAgICAgdGhpcy5zYXZlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBzYXZlKCkge1xuICAgICAgICBjb25zdCB2YWxpZGF0ZWQgPSBhd2FpdCB0aGlzLnZhbGlkYXRlRm9ybUJhc2UoKTtcbiAgICAgICAgaWYgKHZhbGlkYXRlZCkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5vbkJlZm9yZVNhdmUoKTtcbiAgICAgICAgICAgIHRoaXMudHJpZ2dlclNhdmVGaWxlVXBsb2FkKCk7XG4gICAgICAgICAgICBpZiAodGhpcy5hdXRvU2F2ZSkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLl9pc0Zvcm1FZGl0KCkgfHwgdGhpcy5faXNGb3JtVmlldygpKSB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMub25VcGRhdGUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5faXNGb3JtQWRkTmV3KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5vbkluc2VydCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gZm9ybSB2aWV3LCBkbyBub3RoaW5nXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVNYW51YWxTYXZlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm1vZGVsLnN1Ym1pdHRpbmcgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhhbmRsZU1hbnVhbFNhdmUoKSB7XG5cbiAgICB9XG5cbiAgICB0cmlnZ2VyU2F2ZUZpbGVVcGxvYWQoKSB7XG4gICAgICAgIHRoaXMucm9vdENvbnRleHQuZmlyZUV2ZW50KENvbUN0eENvbnN0YW50cy5DT01NT04uU0FWRV9GSUxFX0lOX0ZPUk0pO1xuICAgIH1cblxuICAgIGFzeW5jIF9nZXRSZXN1bHRWYWxpZGF0ZSgpIHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMudmFsaWRhdGVGb3JtQmFzZSgpO1xuICAgIH1cblxuICAgIGFzeW5jIHZhbGlkYXRlRm9ybShyZXN1bHRWYWxpZGF0ZUJhc2U6IGJvb2xlYW4pIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyB2YWxpZGF0ZUZvcm1CYXNlKCkge1xuICAgICAgICBsZXQgcmVzdWx0VmFsaWRhdGVCYXNlID0gdHJ1ZTtcbiAgICAgICAgLy8gQ8OzIHRo4buDIGPDsyBmb3JtIGsgY8OzIGNydWQtZm9ybSAoVsOsIGzDoCBmb3JtIG1hc3RlciBj4bunYSBjw6FjIGZvcm0gY29uKVxuICAgICAgICBpZiAodGhpcy5jcnVkRm9ybSkge1xuICAgICAgICAgICAgcmVzdWx0VmFsaWRhdGVCYXNlID0gYXdhaXQgdGhpcy5jcnVkRm9ybS52YWxpZGF0ZUZvcm0odGhpcy5zZXRWYWxpZGF0ZUZvcm0pO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJlc3VsdFZhbGlkYXRlID0gYXdhaXQgdGhpcy52YWxpZGF0ZUZvcm0ocmVzdWx0VmFsaWRhdGVCYXNlKTtcbiAgICAgICAgLy8gQuG7jyBjaGVjayB2YWxpZCBmb3JtIGPDtG5nIHZp4buHYy4gbuG6v3UgbmjGsCBmb3JtIGPDtG5nIHZp4buHYyBraMO0bmcgdmFsaWQgdGjDrCBraMO0bmcgdOG7sSDEkeG7mW5nIHThuqFvIGPDtG5nIHZp4buHY1xuICAgICAgICAvLyBpZiAodGhpcy5keW5hbWljQ29udHJvbFtGaWVsZERlZmluZUlzVGFza0Zvcm1Db250cm9sXVxuICAgICAgICAvLyAgICAgJiYgdGhpcy5keW5hbWljQ29udHJvbFtGaWVsZERlZmluZUlzVGFza0Zvcm1Db250cm9sXS5fY29tcG9uZW50XG4gICAgICAgIC8vICkge1xuICAgICAgICAvLyAgICAgY29uc3QgdGFza0Zvcm0gPSB0aGlzLmR5bmFtaWNDb250cm9sW0ZpZWxkRGVmaW5lSXNUYXNrRm9ybUNvbnRyb2xdLl9jb21wb25lbnQ7XG4gICAgICAgIC8vICAgICBjb25zdCByZXN1bHRWYWxpZGF0ZUZvcm1UYXNrID0gYXdhaXQgdGFza0Zvcm0uX2dldFJlc3VsdFZhbGlkYXRlKCk7XG4gICAgICAgIC8vICAgICByZXN1bHRWYWxpZGF0ZSA9IHJlc3VsdFZhbGlkYXRlRm9ybVRhc2sgJiYgcmVzdWx0VmFsaWRhdGU7XG4gICAgICAgIC8vIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdFZhbGlkYXRlICYmIHJlc3VsdFZhbGlkYXRlQmFzZTtcbiAgICB9XG5cbiAgICBfdmFsaWRhdGVGb3JtQ29udHJvbChmaWVsZFBhdGgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3J1ZEZvcm0udmFsaWRhdGVGb3JtQ29udHJvbChmaWVsZFBhdGgpO1xuICAgIH1cblxuICAgIF9jbGVhbkZvcm0oKSB7XG4gICAgICAgIHRoaXMuY3J1ZEZvcm0uY2xlYW4oKTtcbiAgICB9XG5cbiAgICBfdHJpZ2dlckNvbnRyb2xDaGFuZ2UoZmllbGRQYXRoKSB7XG4gICAgICAgIHRoaXMuY3J1ZEZvcm0udHJpZ2dlckNoYW5nZShmaWVsZFBhdGgpO1xuICAgIH1cblxuICAgIG9uQmVmb3JlU2F2ZSgpOiB2b2lkIHwgUHJvbWlzZTxib29sZWFuPiB7XG4gICAgfVxuXG4gICAgb25BZnRlclNhdmUocmVzcG9uc2U6IFJlc3BvbnNlUmVzdWx0KTogdm9pZCB8IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIH1cblxuICAgIHByaXZhdGUgX29uQWZ0ZXJTYXZlKCkge1xuICAgICAgICBpZiAoIXRoaXMuaXNDbG9zZUZvcm0pIHtcbiAgICAgICAgICAgIHRoaXMubW9kZWwuZGF0YS5pZCA9IHRoaXMuX2NvbW1vblNlcnZpY2UuZ3VpZCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYXN5bmMgb25BZnRlckdldERldGFpbCgpIHtcblxuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgb25JbnNlcnQoKSB7XG4gICAgICAgIHRoaXMuc2V0RGVmYXVsdFZhbHVlKHRoaXMubW9kZWwuZGF0YSk7XG4gICAgICAgIGlmICh0aGlzLmR5bmFtaWNDb250cm9sW0ZpZWxkRGVmaW5lSXNUYXNrRm9ybUNvbnRyb2xdXG4gICAgICAgICAgICAmJiB0aGlzLmR5bmFtaWNDb250cm9sW0ZpZWxkRGVmaW5lSXNUYXNrRm9ybUNvbnRyb2xdLl9jb21wb25lbnRcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCB0YXNrRm9ybSA9IHRoaXMuZHluYW1pY0NvbnRyb2xbRmllbGREZWZpbmVJc1Rhc2tGb3JtQ29udHJvbF0uX2NvbXBvbmVudDtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdFZhbGlkYXRlRm9ybVRhc2sgPSBhd2FpdCB0YXNrRm9ybS5fZ2V0UmVzdWx0VmFsaWRhdGUoKTtcbiAgICAgICAgICAgIGlmIChyZXN1bHRWYWxpZGF0ZUZvcm1UYXNrKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tb2RlbC5kYXRhLml0ZW1Db25nVmllYyA9IHRhc2tGb3JtLm1vZGVsLmRhdGE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMubW9kZWwuZGF0YS5jcmVhdGVUYXNrSW5zdGVhZCkge1xuICAgICAgICAgICAgLy8gcmVzZXQgZmllbGQgX1dvcmtmbG93Q29kZSDEkeG7gyBiYWNrZW5kIGtow7RuZyBjaOG6oXkgcXV5IHRyw6xuaCBi4bqjbiBnaGlcbiAgICAgICAgICAgIHRoaXMubW9kZWwuZGF0YVtGaWVsZFdvcmtmbG93Q29kZUluQ3J1ZEZvcm1dID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb25maXJtZWQgPSBhd2FpdCB0aGlzLmNyZWF0ZUNvbmZpcm1JZlJlcXVpcmUoKTtcbiAgICAgICAgaWYgKCFjb25maXJtZWQpIHJldHVybjtcbiAgICAgICAgYXdhaXQgdGhpcy5faW5zZXJ0KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVDb25maXJtSWZSZXF1aXJlKCkge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlcywgcmVqKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5tZXNzYWdlQ29uZmlybVNhdmUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9ub3RpZmllclNlcnZpY2Uuc2hvd0NvbmZpcm0odGhpcy5tZXNzYWdlQ29uZmlybVNhdmUpXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKHJlcyA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXJlcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcyhmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHJlcyh0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBfaW5zZXJ0KCkge1xuICAgICAgICB0aGlzLmdldFByb21pc2VBY3Rpb25JbnNlcnQoKVxuICAgICAgICAgICAgLnRoZW4oYXN5bmMgcmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubW9kZWwuc3VibWl0dGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMuc2hvd01lc3NhZ2VBZnRlckluc2VydChyZXNwb25zZS5zdWNjZXNzLCByZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tb2RlbC5kYXRhLmlkID0gcmVzcG9uc2UuZGF0YTtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5vbkFmdGVyU2F2ZShyZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25TYXZlZC5lbWl0KHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiB0aGlzLm1vZGVsLmRhdGEuaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBpbnNlcnQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0Nsb3NlRm9ybTogdGhpcy5pc0Nsb3NlRm9ybVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb25BZnRlclNhdmUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlSW5zZXJ0RXJyb3IoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCBlcnJvciA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFlcnJvci5lcnJvci5zdWNjZXNzICYmIGVycm9yLmVycm9yLmVycm9yQ2hlY2tFeGlzdCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1vZGVsLnN1Ym1pdHRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLm1vZGVsLnN1Ym1pdHRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLnNob3dNZXNzYWdlQWZ0ZXJJbnNlcnQoZmFsc2UsIGVycm9yKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldFByb21pc2VBY3Rpb25JbnNlcnQoKTogUHJvbWlzZTxSZXNwb25zZVJlc3VsdD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zZXR0aW5nLmJhc2VTZXJ2aWNlLnBvc3QodGhpcy5tb2RlbC5kYXRhLCB0aGlzLmluc2VydFBsdXNVcmwpO1xuICAgIH1cblxuICAgIGhhbmRsZUluc2VydEVycm9yKCkge1xuXG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBvblVwZGF0ZSgpIHtcbiAgICAgICAgdGhpcy5zZXREZWZhdWx0VmFsdWUodGhpcy5tb2RlbC5kYXRhKTtcbiAgICAgICAgdGhpcy5nZXRQcm9taXNlQWN0aW9uVXBkYXRlKClcbiAgICAgICAgICAgIC50aGVuKGFzeW5jIHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm1vZGVsLnN1Ym1pdHRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLnNob3dNZXNzYWdlQWZ0ZXJVcGRhdGUocmVzcG9uc2Uuc3VjY2VzcywgcmVzcG9uc2UpO1xuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzKSB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMub25BZnRlclNhdmUocmVzcG9uc2UpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uU2F2ZWQuZW1pdCh7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogdGhpcy5tb2RlbC5kYXRhLmlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5zZXJ0OiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzQ2xvc2VGb3JtOiB0aGlzLmlzQ2xvc2VGb3JtXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vbkFmdGVyU2F2ZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVVcGRhdGVFcnJvcigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIGVycm9yID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIWVycm9yLmVycm9yLnN1Y2Nlc3MgJiYgZXJyb3IuZXJyb3IuZXJyb3JDaGVja0V4aXN0KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubW9kZWwuc3VibWl0dGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMubW9kZWwuc3VibWl0dGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMuc2hvd01lc3NhZ2VBZnRlclVwZGF0ZShmYWxzZSwgZXJyb3IpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgaGFuZGxlVXBkYXRlRXJyb3IoKSB7XG5cbiAgICB9XG5cbiAgICBnZXRQcm9taXNlQWN0aW9uVXBkYXRlKCk6IFByb21pc2U8UmVzcG9uc2VSZXN1bHQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2V0dGluZy5iYXNlU2VydmljZS5wdXQodGhpcy5tb2RlbC5kYXRhLmlkLnRvU3RyaW5nKCksIHRoaXMubW9kZWwuZGF0YSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXREZWZhdWx0VmFsdWUobW9kZWwpIHtcbiAgICAgICAgaWYgKG1vZGVsLmlzQnVpbGRJbiA9PT0gbnVsbCB8fCBtb2RlbC5pc0J1aWxkSW4gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgbW9kZWwuaXNCdWlsZEluID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobW9kZWwuaXNCdWlsZEluQWxsID09PSBudWxsIHx8IG1vZGVsLmlzQnVpbGRJbkFsbCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBtb2RlbC5pc0J1aWxkSW5BbGwgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5wYXJlbnRTZXR0aW5nPy5lbmFibGVSZW9yZGVyUm93ICYmIHRoaXMucGFyZW50U2V0dGluZy5jb2x1bW5TZXR0aW5nLnNvcnRGaWVsZCkge1xuICAgICAgICAgICAgdGhpcy5tb2RlbC5kYXRhW3RoaXMucGFyZW50U2V0dGluZy5jb2x1bW5TZXR0aW5nLnNvcnRGaWVsZF0gPz89IHRoaXMucGFyZW50TW9kZWwudG90YWwgKyAxO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzaG93TWVzc2FnZUFmdGVySW5zZXJ0KGlzU3VjY2VzczogYm9vbGVhbiA9IGZhbHNlLCBlcnJvcj86IGFueSkge1xuICAgICAgICBpZiAoaXNTdWNjZXNzKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMubWVzc2FnZUluc2VydFN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm1lc3NhZ2VJbnNlcnRTdWNjZXNzID0gdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLklOU0VSVF9EQVRBX1NVQ0NFU1MnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLm1lc3NhZ2VJbnNlcnRTdWNjZXNzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbm90aWZpZXJTZXJ2aWNlLnNob3dTdWNjZXNzKHRoaXMubWVzc2FnZUluc2VydFN1Y2Nlc3MpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVSZXNwb25zZUVycm9yKGVycm9yKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2hvd01lc3NhZ2VBZnRlclVwZGF0ZShpc1N1Y2Nlc3M6IGJvb2xlYW4gPSBmYWxzZSwgZXJyb3I/OiBhbnkpIHtcbiAgICAgICAgaWYgKGlzU3VjY2Vzcykge1xuICAgICAgICAgICAgaWYgKCF0aGlzLm1lc3NhZ2VVcGRhdGVTdWNjZXNzKVxuICAgICAgICAgICAgICAgIHRoaXMubWVzc2FnZVVwZGF0ZVN1Y2Nlc3MgPSB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ01FU1NBR0UuVVBEQVRFX0RBVEFfU1VDQ0VTUycpO1xuICAgICAgICAgICAgaWYgKHRoaXMubWVzc2FnZVVwZGF0ZVN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9ub3RpZmllclNlcnZpY2Uuc2hvd1N1Y2Nlc3ModGhpcy5tZXNzYWdlVXBkYXRlU3VjY2Vzcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZVJlc3BvbnNlRXJyb3IoZXJyb3IpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGFuZGxlUmVzcG9uc2VFcnJvcihlcnJvcikge1xuICAgICAgICBpZiAoZXJyb3IubWVzc2FnZSkge1xuICAgICAgICAgICAgdGhpcy5fbm90aWZpZXJTZXJ2aWNlLnNob3dXYXJuaW5nKGVycm9yLm1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGVycm9yLmVycm9yKSB7XG4gICAgICAgICAgICB0aGlzLl9ub3RpZmllclNlcnZpY2Uuc2hvd1dhcm5pbmcoZXJyb3IuZXJyb3IpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fbm90aWZpZXJTZXJ2aWNlLnNob3dXYXJuaW5nKCdDw7MgbOG7l2kgeOG6o3kgcmEsIGxpw6puIGjhu4cgcXXhuqNuIHRy4buLIHZpw6puIMSR4buDIGJp4bq/dCB0aMOqbSBjaGkgdGnhur90Jyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhc3luYyBvbkZvcm1Jbml0aWFsaXplZChkYXRhOiBFdmVudERhdGEpIHtcblxuICAgIH1cblxuICAgIF9oYW5kbGVBZnRlclRyaW5oS3koZXZ0KSB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLm1vZGVsLmRhdGFbS2V5Rmxhc2hTaG93XTtcbiAgICAgICAgdGhpcy5faGFuZGxlQ2FuY2VsKGV2dCk7XG4gICAgfVxuXG4gICAgX2hhbmRsZVNhdmUoZXZ0KSB7XG4gICAgICAgIGlmICh0aGlzLm1vZGVsLnN1Ym1pdHRpbmcpIHJldHVybjtcbiAgICAgICAgdGhpcy5tb2RlbC5zdWJtaXR0aW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zYXZlKCk7XG4gICAgICAgIHRoaXMub25TYXZlLmVtaXQoZXZ0KTtcbiAgICB9XG5cbiAgICBfaGFuZGxlQ2FuY2VsKGV2dCkge1xuICAgICAgICB0aGlzLm9uQ2FuY2VsLmVtaXQoZXZ0KTtcbiAgICB9XG5cbiAgICBfaGFuZGxlTWVzc2FnZShldnQpIHtcbiAgICAgICAgdGhpcy5vbk1lc3NhZ2UuZW1pdChldnQpO1xuICAgIH1cblxuICAgIF9zZXREaXNhYmxlQ29udHJvbCh1bmlxdWVGaWVsZCwgaXNEaXNhYmxlZCkge1xuICAgICAgICB0aGlzLmNydWRGb3JtLmZvcm1Db250cm9sc1t1bmlxdWVGaWVsZF0uZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIH1cblxuICAgIF9zZXRIaWRkZW5Db250cm9sKHVuaXF1ZUZpZWxkLCBpc0hpZGRlbikge1xuICAgICAgICB0aGlzLmNydWRGb3JtLmZvcm1Db250cm9sc1t1bmlxdWVGaWVsZF0uaGlkZGVuID0gaXNIaWRkZW47XG4gICAgfVxuXG4gICAgX2dldEZvcm1TdGF0ZSgpOiBGb3JtU3RhdGUge1xuICAgICAgICByZXR1cm4gdGhpcy5tb2RlbC5mb3JtU3RhdGU7XG4gICAgfVxuXG4gICAgX2lzRm9ybUFkZE5ldygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldEZvcm1TdGF0ZSgpID09IEZvcm1TdGF0ZS5BREQ7XG4gICAgfVxuXG4gICAgX2lzRm9ybUVkaXQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRGb3JtU3RhdGUoKSA9PSBGb3JtU3RhdGUuRURJVDtcbiAgICB9XG5cbiAgICBfaXNGb3JtVmlldygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldEZvcm1TdGF0ZSgpID09IEZvcm1TdGF0ZS5WSUVXO1xuICAgIH1cbn0iXX0=
|