@skyux/core 8.10.5 → 8.10.6

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.
@@ -4603,7 +4603,7 @@
4603
4603
  ]
4604
4604
  },
4605
4605
  {
4606
- "id": 719,
4606
+ "id": 720,
4607
4607
  "name": "SkyResizeObserverMediaQueryService",
4608
4608
  "kind": 128,
4609
4609
  "kindString": "Class",
@@ -4624,48 +4624,6 @@
4624
4624
  }
4625
4625
  ],
4626
4626
  "children": [
4627
- {
4628
- "id": 720,
4629
- "name": "constructor",
4630
- "kind": 512,
4631
- "kindString": "Constructor",
4632
- "flags": {},
4633
- "sources": [
4634
- {
4635
- "fileName": "projects/core/src/modules/resize-observer/resize-observer-media-query.service.ts",
4636
- "line": 57,
4637
- "character": 2
4638
- }
4639
- ],
4640
- "signatures": [
4641
- {
4642
- "id": 721,
4643
- "name": "new SkyResizeObserverMediaQueryService",
4644
- "kind": 16384,
4645
- "kindString": "Constructor signature",
4646
- "flags": {},
4647
- "parameters": [
4648
- {
4649
- "id": 722,
4650
- "name": "resizeObserverSvc",
4651
- "kind": 32768,
4652
- "kindString": "Parameter",
4653
- "flags": {},
4654
- "type": {
4655
- "type": "reference",
4656
- "id": 701,
4657
- "name": "SkyResizeObserverService"
4658
- }
4659
- }
4660
- ],
4661
- "type": {
4662
- "type": "reference",
4663
- "id": 719,
4664
- "name": "SkyResizeObserverMediaQueryService"
4665
- }
4666
- }
4667
- ]
4668
- },
4669
4627
  {
4670
4628
  "id": 723,
4671
4629
  "name": "current",
@@ -4710,7 +4668,7 @@
4710
4668
  "sources": [
4711
4669
  {
4712
4670
  "fileName": "projects/core/src/modules/resize-observer/resize-observer-media-query.service.ts",
4713
- "line": 61,
4671
+ "line": 57,
4714
4672
  "character": 9
4715
4673
  }
4716
4674
  ],
@@ -4747,7 +4705,7 @@
4747
4705
  "sources": [
4748
4706
  {
4749
4707
  "fileName": "projects/core/src/modules/resize-observer/resize-observer-media-query.service.ts",
4750
- "line": 79,
4708
+ "line": 75,
4751
4709
  "character": 9
4752
4710
  }
4753
4711
  ],
@@ -4809,7 +4767,7 @@
4809
4767
  "sources": [
4810
4768
  {
4811
4769
  "fileName": "libs/components/core/src/lib/modules/resize-observer/resize-observer-media-query.service.ts",
4812
- "line": 82,
4770
+ "line": 78,
4813
4771
  "character": 6
4814
4772
  }
4815
4773
  ],
@@ -4834,7 +4792,7 @@
4834
4792
  ],
4835
4793
  "type": {
4836
4794
  "type": "reference",
4837
- "id": 719,
4795
+ "id": 720,
4838
4796
  "name": "SkyResizeObserverMediaQueryService"
4839
4797
  }
4840
4798
  }
@@ -4851,7 +4809,7 @@
4851
4809
  "sources": [
4852
4810
  {
4853
4811
  "fileName": "projects/core/src/modules/resize-observer/resize-observer-media-query.service.ts",
4854
- "line": 121,
4812
+ "line": 117,
4855
4813
  "character": 9
4856
4814
  }
4857
4815
  ],
@@ -4899,7 +4857,7 @@
4899
4857
  "sources": [
4900
4858
  {
4901
4859
  "fileName": "projects/core/src/modules/resize-observer/resize-observer-media-query.service.ts",
4902
- "line": 112,
4860
+ "line": 108,
4903
4861
  "character": 9
4904
4862
  }
4905
4863
  ],
@@ -4926,7 +4884,7 @@
4926
4884
  "title": "Constructors",
4927
4885
  "kind": 512,
4928
4886
  "children": [
4929
- 720
4887
+ 721
4930
4888
  ]
4931
4889
  },
4932
4890
  {
@@ -4982,56 +4940,13 @@
4982
4940
  "name": "Injectable"
4983
4941
  },
4984
4942
  "arguments": {
4985
- "options": "{\n providedIn: 'any',\n}"
4943
+ "options": "{\n providedIn: 'root',\n}"
4986
4944
  }
4987
4945
  }
4988
4946
  ],
4989
4947
  "children": [
4990
4948
  {
4991
- "id": 702,
4992
- "name": "constructor",
4993
- "kind": 512,
4994
- "kindString": "Constructor",
4995
- "flags": {},
4996
- "sources": [
4997
- {
4998
- "fileName": "projects/core/src/modules/resize-observer/resize-observer.service.ts",
4999
- "line": 24,
5000
- "character": 2
5001
- }
5002
- ],
5003
- "signatures": [
5004
- {
5005
- "id": 703,
5006
- "name": "new SkyResizeObserverService",
5007
- "kind": 16384,
5008
- "kindString": "Constructor signature",
5009
- "flags": {},
5010
- "parameters": [
5011
- {
5012
- "id": 704,
5013
- "name": "zone",
5014
- "kind": 32768,
5015
- "kindString": "Parameter",
5016
- "flags": {},
5017
- "type": {
5018
- "type": "reference",
5019
- "qualifiedName": "NgZone",
5020
- "package": "@angular/core",
5021
- "name": "NgZone"
5022
- }
5023
- }
5024
- ],
5025
- "type": {
5026
- "type": "reference",
5027
- "id": 701,
5028
- "name": "SkyResizeObserverService"
5029
- }
5030
- }
5031
- ]
5032
- },
5033
- {
5034
- "id": 708,
4949
+ "id": 709,
5035
4950
  "name": "ngOnDestroy",
5036
4951
  "kind": 2048,
5037
4952
  "kindString": "Method",
@@ -5041,13 +4956,13 @@
5041
4956
  "sources": [
5042
4957
  {
5043
4958
  "fileName": "projects/core/src/modules/resize-observer/resize-observer.service.ts",
5044
- "line": 31,
4959
+ "line": 35,
5045
4960
  "character": 9
5046
4961
  }
5047
4962
  ],
5048
4963
  "signatures": [
5049
4964
  {
5050
- "id": 709,
4965
+ "id": 710,
5051
4966
  "name": "ngOnDestroy",
5052
4967
  "kind": 4096,
5053
4968
  "kindString": "Call signature",
@@ -5068,7 +4983,7 @@
5068
4983
  }
5069
4984
  },
5070
4985
  {
5071
- "id": 710,
4986
+ "id": 711,
5072
4987
  "name": "observe",
5073
4988
  "kind": 2048,
5074
4989
  "kindString": "Method",
@@ -5078,13 +4993,13 @@
5078
4993
  "sources": [
5079
4994
  {
5080
4995
  "fileName": "projects/core/src/modules/resize-observer/resize-observer.service.ts",
5081
- "line": 38,
4996
+ "line": 49,
5082
4997
  "character": 9
5083
4998
  }
5084
4999
  ],
5085
5000
  "signatures": [
5086
5001
  {
5087
- "id": 711,
5002
+ "id": 712,
5088
5003
  "name": "observe",
5089
5004
  "kind": 4096,
5090
5005
  "kindString": "Call signature",
@@ -5094,7 +5009,7 @@
5094
5009
  },
5095
5010
  "parameters": [
5096
5011
  {
5097
- "id": 712,
5012
+ "id": 713,
5098
5013
  "name": "element",
5099
5014
  "kind": 32768,
5100
5015
  "kindString": "Parameter",
@@ -5143,15 +5058,15 @@
5143
5058
  "title": "Methods",
5144
5059
  "kind": 2048,
5145
5060
  "children": [
5146
- 708,
5147
- 710
5061
+ 709,
5062
+ 711
5148
5063
  ]
5149
5064
  }
5150
5065
  ],
5151
5066
  "sources": [
5152
5067
  {
5153
5068
  "fileName": "projects/core/src/modules/resize-observer/resize-observer.service.ts",
5154
- "line": 18,
5069
+ "line": 26,
5155
5070
  "character": 13
5156
5071
  }
5157
5072
  ],
@@ -322,9 +322,9 @@ _SkyAffixer_affixedElement = new WeakMap(), _SkyAffixer_baseElement = new WeakMa
322
322
  }
323
323
  return offset;
324
324
  }, _SkyAffixer_getImmediateOverflowParent = function _SkyAffixer_getImmediateOverflowParent() {
325
- return __classPrivateFieldGet(this, _SkyAffixer_overflowParents, "f")[__classPrivateFieldGet(this, _SkyAffixer_overflowParents, "f").length - 1];
325
+ return __classPrivateFieldGet(this, _SkyAffixer_overflowParents, "f")[0];
326
326
  }, _SkyAffixer_getAutoFitContextParent = function _SkyAffixer_getAutoFitContextParent() {
327
- const bodyElement = __classPrivateFieldGet(this, _SkyAffixer_overflowParents, "f")[0];
327
+ const bodyElement = __classPrivateFieldGet(this, _SkyAffixer_overflowParents, "f")[__classPrivateFieldGet(this, _SkyAffixer_overflowParents, "f").length - 1];
328
328
  return __classPrivateFieldGet(this, _SkyAffixer_instances, "a", _SkyAffixer_config_get).autoFitContext === SkyAffixAutoFitContext.OverflowParent
329
329
  ? __classPrivateFieldGet(this, _SkyAffixer_instances, "m", _SkyAffixer_getImmediateOverflowParent).call(this)
330
330
  : bodyElement;
@@ -386,4 +386,4 @@ _SkyAffixer_affixedElement = new WeakMap(), _SkyAffixer_baseElement = new WeakMa
386
386
  });
387
387
  });
388
388
  };
389
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWZmaXhlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jb3JlL3NyYy9saWIvbW9kdWxlcy9hZmZpeC9hZmZpeGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBR0EsT0FBTyxFQUFjLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFekQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFPbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLGdDQUFnQyxFQUNoQyxvQ0FBb0MsR0FDckMsTUFBTSxhQUFhLENBQUM7QUFrQnJCLE1BQU0sb0JBQW9CLEdBQTBCO0lBQ2xELGNBQWMsRUFBRSxzQkFBc0IsQ0FBQyxjQUFjO0lBQ3JELGFBQWEsRUFBRSxLQUFLO0lBQ3BCLG1CQUFtQixFQUFFLFFBQVE7SUFDN0IsUUFBUSxFQUFFLEtBQUs7SUFDZixTQUFTLEVBQUUsT0FBTztDQUNuQixDQUFDO0FBRUYsTUFBTSxPQUFPLFVBQVU7SUFDckI7O09BRUc7SUFDSCxJQUFXLFlBQVk7UUFDckIsT0FBTyx1QkFBQSxJQUFJLG1DQUFpQixDQUFDO0lBQy9CLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sdUJBQUEsSUFBSSxxQ0FBbUIsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBVyxlQUFlO1FBQ3hCLE9BQU8sdUJBQUEsSUFBSSxzQ0FBb0IsQ0FBQztJQUNsQyxDQUFDO0lBMkRELFlBQ0UsY0FBMkIsRUFDM0IsUUFBbUIsRUFDbkIsYUFBNEIsRUFDNUIsSUFBWTs7UUF4Q2QsNkNBQTZCO1FBRTdCLDBDQUFzQztRQUV0Qyw0Q0FBMkM7UUFFM0MsK0NBQWlEO1FBRWpE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YUFBYSxFQUFFLEVBQUU7WUFDaEIsYUFBYSxFQUFFLGdCQUFnQixDQUFDLFFBQVEsRUFBRSx1QkFBQSxJQUFJLHdDQUFzQixDQUFDLENBQUM7UUFDeEUsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7SUFHQyx1QkFBQSxJQUFJLHFDQUFtQixFQUFFLFdBQVcsRUFBRSxDQUFDO0lBRXZDLHVCQUFBLElBQUksd0JBQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7UUFDaEMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLGNBQWMsRUFBRSxHQUFHLHVCQUFBLElBQUksbUNBQWlCLENBQUMsQ0FBQyxPQUFPLENBQy9ELENBQUMsYUFBYSxFQUFFLEVBQUU7WUFDaEIsYUFBYSxFQUFFLG1CQUFtQixDQUNoQyxRQUFRLEVBQ1IsdUJBQUEsSUFBSSx3Q0FBc0IsQ0FDM0IsQ0FBQztRQUNKLENBQUMsQ0FDRixDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmlld3BvcnRSdWxlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IE5nWm9uZSwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTa3lBZmZpeEF1dG9GaXRDb250ZXh0IH0gZnJvbSAnLi9hZmZpeC1hdXRvLWZpdC1jb250ZXh0JztcbmltcG9ydCB7IFNreUFmZml4Q29uZmlnIH0gZnJvbSAnLi9hZmZpeC1jb25maWcnO1xuaW1wb3J0IHsgU2t5QWZmaXhPZmZzZXQgfSBmcm9tICcuL2FmZml4LW9mZnNldCc7XG5pbXBvcnQgeyBTa3lBZmZpeE9mZnNldENoYW5nZSB9IGZyb20gJy4vYWZmaXgtb2Zmc2V0LWNoYW5nZSc7XG5pbXBvcnQgeyBTa3lBZmZpeFBsYWNlbWVudCB9IGZyb20gJy4vYWZmaXgtcGxhY2VtZW50JztcbmltcG9ydCB7IFNreUFmZml4UGxhY2VtZW50Q2hhbmdlIH0gZnJvbSAnLi9hZmZpeC1wbGFjZW1lbnQtY2hhbmdlJztcbmltcG9ydCB7IEFmZml4UmVjdCB9IGZyb20gJy4vYWZmaXgtcmVjdCc7XG5pbXBvcnQgeyBnZXRJbnZlcnNlUGxhY2VtZW50LCBnZXROZXh0UGxhY2VtZW50IH0gZnJvbSAnLi9hZmZpeC11dGlscyc7XG5pbXBvcnQge1xuICBnZXRFbGVtZW50T2Zmc2V0LFxuICBnZXRPdmVyZmxvd1BhcmVudHMsXG4gIGlzT2Zmc2V0RnVsbHlWaXNpYmxlV2l0aGluUGFyZW50LFxuICBpc09mZnNldFBhcnRpYWxseVZpc2libGVXaXRoaW5QYXJlbnQsXG59IGZyb20gJy4vZG9tLXV0aWxzJztcblxuLyoqXG4gKiBNYWtlIHNwZWNpZmljIHByb3BlcnRpZXMgcmVxdWlyZWQsIHNvIHRoYXQgd2UgZG9uJ3QgaGF2ZSB0b1xuICogZG8gbnVsbCBjaGVja3MgdGhyb3VnaG91dCB0aGlzIGZpbGUuXG4gKi9cbnR5cGUgQWZmaXhDb25maWdPckRlZmF1bHRzID0gU2t5QWZmaXhDb25maWcgJlxuICBSZXF1aXJlZDxcbiAgICBQaWNrPFxuICAgICAgU2t5QWZmaXhDb25maWcsXG4gICAgICB8ICdhdXRvRml0Q29udGV4dCdcbiAgICAgIHwgJ2VuYWJsZUF1dG9GaXQnXG4gICAgICB8ICdob3Jpem9udGFsQWxpZ25tZW50J1xuICAgICAgfCAnaXNTdGlja3knXG4gICAgICB8ICdwbGFjZW1lbnQnXG4gICAgPlxuICA+O1xuXG5jb25zdCBERUZBVUxUX0FGRklYX0NPTkZJRzogQWZmaXhDb25maWdPckRlZmF1bHRzID0ge1xuICBhdXRvRml0Q29udGV4dDogU2t5QWZmaXhBdXRvRml0Q29udGV4dC5PdmVyZmxvd1BhcmVudCxcbiAgZW5hYmxlQXV0b0ZpdDogZmFsc2UsXG4gIGhvcml6b250YWxBbGlnbm1lbnQ6ICdjZW50ZXInLFxuICBpc1N0aWNreTogZmFsc2UsXG4gIHBsYWNlbWVudDogJ2Fib3ZlJyxcbn07XG5cbmV4cG9ydCBjbGFzcyBTa3lBZmZpeGVyIHtcbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIGFmZml4ZWQgZWxlbWVudCdzIG9mZnNldCBjaGFuZ2VzLlxuICAgKi9cbiAgcHVibGljIGdldCBvZmZzZXRDaGFuZ2UoKTogT2JzZXJ2YWJsZTxTa3lBZmZpeE9mZnNldENoYW5nZT4ge1xuICAgIHJldHVybiB0aGlzLiNvZmZzZXRDaGFuZ2VPYnM7XG4gIH1cblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGUgYmFzZSBlbGVtZW50J3MgbmVhcmVzdCBvdmVyZmxvdyBwYXJlbnQgaXMgc2Nyb2xsaW5nLiBUaGlzIGlzIHVzZWZ1bCBpZiB5b3UgbmVlZFxuICAgKiB0byBwZXJmb3JtIGFuIGFkZGl0aW9uYWwgYWN0aW9uIGR1cmluZyB0aGUgc2Nyb2xsIGV2ZW50IGJ1dCBkb24ndCB3YW50IHRvIGdlbmVyYXRlIGFub3RoZXJcbiAgICogZXZlbnQgbGlzdGVuZXIuXG4gICAqL1xuICBwdWJsaWMgZ2V0IG92ZXJmbG93U2Nyb2xsKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLiNvdmVyZmxvd1Njcm9sbE9icztcbiAgfVxuXG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoZSBwbGFjZW1lbnQgdmFsdWUgY2hhbmdlcy4gQSBgbnVsbGAgdmFsdWUgaW5kaWNhdGVzIHRoYXQgYSBzdWl0YWJsZVxuICAgKiBwbGFjZW1lbnQgY291bGQgbm90IGJlIGZvdW5kLlxuICAgKi9cbiAgcHVibGljIGdldCBwbGFjZW1lbnRDaGFuZ2UoKTogT2JzZXJ2YWJsZTxTa3lBZmZpeFBsYWNlbWVudENoYW5nZT4ge1xuICAgIHJldHVybiB0aGlzLiNwbGFjZW1lbnRDaGFuZ2VPYnM7XG4gIH1cblxuICBnZXQgI2NvbmZpZygpOiBBZmZpeENvbmZpZ09yRGVmYXVsdHMge1xuICAgIHJldHVybiB0aGlzLiNfY29uZmlnO1xuICB9XG5cbiAgc2V0ICNjb25maWcodmFsdWU6IFNreUFmZml4Q29uZmlnIHwgdW5kZWZpbmVkKSB7XG4gICAgY29uc3QgbWVyZ2VkOiBBZmZpeENvbmZpZ09yRGVmYXVsdHMgPSB7XG4gICAgICAuLi5ERUZBVUxUX0FGRklYX0NPTkZJRyxcbiAgICAgIC4uLnZhbHVlLFxuICAgIH07XG5cbiAgICAvLyBNYWtlIHN1cmUgbm9uZSBvZiB0aGUgdmFsdWVzIGFyZSB1bmRlZmluZWQuXG4gICAgbGV0IGtleToga2V5b2YgdHlwZW9mIG1lcmdlZDtcbiAgICBmb3IgKGtleSBpbiBtZXJnZWQpIHtcbiAgICAgIGlmIChtZXJnZWRba2V5XSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIChtZXJnZWQgYXMgYW55KVtrZXldID0gREVGQVVMVF9BRkZJWF9DT05GSUdba2V5XTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLiNfY29uZmlnID0gbWVyZ2VkO1xuICB9XG5cbiAgI2FmZml4ZWRFbGVtZW50OiBIVE1MRWxlbWVudDtcblxuICAjYmFzZUVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkO1xuXG4gICNjdXJyZW50T2Zmc2V0OiBTa3lBZmZpeE9mZnNldCB8IHVuZGVmaW5lZDtcblxuICAjY3VycmVudFBsYWNlbWVudDogU2t5QWZmaXhQbGFjZW1lbnQgfCB1bmRlZmluZWQ7XG5cbiAgI29mZnNldENoYW5nZTogU3ViamVjdDxTa3lBZmZpeE9mZnNldENoYW5nZT47XG5cbiAgI29mZnNldENoYW5nZU9iczogT2JzZXJ2YWJsZTxTa3lBZmZpeE9mZnNldENoYW5nZT47XG5cbiAgI292ZXJmbG93UGFyZW50czogSFRNTEVsZW1lbnRbXSA9IFtdO1xuXG4gICNvdmVyZmxvd1Njcm9sbDogU3ViamVjdDx2b2lkPjtcblxuICAjb3ZlcmZsb3dTY3JvbGxPYnM6IE9ic2VydmFibGU8dm9pZD47XG5cbiAgI3BsYWNlbWVudENoYW5nZTogU3ViamVjdDxTa3lBZmZpeFBsYWNlbWVudENoYW5nZT47XG5cbiAgI3BsYWNlbWVudENoYW5nZU9iczogT2JzZXJ2YWJsZTxTa3lBZmZpeFBsYWNlbWVudENoYW5nZT47XG5cbiAgI3JlbmRlcmVyOiBSZW5kZXJlcjI7XG5cbiAgI3Njcm9sbENoYW5nZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgI3ZpZXdwb3J0TGlzdGVuZXJzOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XG5cbiAgI3ZpZXdwb3J0UnVsZXI6IFZpZXdwb3J0UnVsZXI7XG5cbiAgI3pvbmU6IE5nWm9uZTtcblxuICAjX2NvbmZpZzogQWZmaXhDb25maWdPckRlZmF1bHRzID0gREVGQVVMVF9BRkZJWF9DT05GSUc7XG5cbiAgI3Njcm9sbENoYW5nZUxpc3RlbmVyOiAoKSA9PiB2b2lkID0gKCkgPT4gdGhpcy4jc2Nyb2xsQ2hhbmdlLm5leHQoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBhZmZpeGVkRWxlbWVudDogSFRNTEVsZW1lbnQsXG4gICAgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICB2aWV3cG9ydFJ1bGVyOiBWaWV3cG9ydFJ1bGVyLFxuICAgIHpvbmU6IE5nWm9uZVxuICApIHtcbiAgICB0aGlzLiNhZmZpeGVkRWxlbWVudCA9IGFmZml4ZWRFbGVtZW50O1xuICAgIHRoaXMuI3JlbmRlcmVyID0gcmVuZGVyZXI7XG4gICAgdGhpcy4jdmlld3BvcnRSdWxlciA9IHZpZXdwb3J0UnVsZXI7XG4gICAgdGhpcy4jem9uZSA9IHpvbmU7XG5cbiAgICB0aGlzLiNvZmZzZXRDaGFuZ2UgPSBuZXcgU3ViamVjdDxTa3lBZmZpeE9mZnNldENoYW5nZT4oKTtcbiAgICB0aGlzLiNvdmVyZmxvd1Njcm9sbCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgdGhpcy4jcGxhY2VtZW50Q2hhbmdlID0gbmV3IFN1YmplY3Q8U2t5QWZmaXhQbGFjZW1lbnRDaGFuZ2U+KCk7XG5cbiAgICB0aGlzLiNvZmZzZXRDaGFuZ2VPYnMgPSB0aGlzLiNvZmZzZXRDaGFuZ2UuYXNPYnNlcnZhYmxlKCk7XG4gICAgdGhpcy4jb3ZlcmZsb3dTY3JvbGxPYnMgPSB0aGlzLiNvdmVyZmxvd1Njcm9sbC5hc09ic2VydmFibGUoKTtcbiAgICB0aGlzLiNwbGFjZW1lbnRDaGFuZ2VPYnMgPSB0aGlzLiNwbGFjZW1lbnRDaGFuZ2UuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogQWZmaXhlcyBhbiBlbGVtZW50IHRvIGEgYmFzZSBlbGVtZW50LlxuICAgKiBAcGFyYW0gYmFzZUVsZW1lbnQgVGhlIGJhc2UgZWxlbWVudC5cbiAgICogQHBhcmFtIGNvbmZpZyBDb25maWd1cmF0aW9uIGZvciB0aGUgYWZmaXggYWN0aW9uLlxuICAgKi9cbiAgcHVibGljIGFmZml4VG8oYmFzZUVsZW1lbnQ6IEhUTUxFbGVtZW50LCBjb25maWc/OiBTa3lBZmZpeENvbmZpZyk6IHZvaWQge1xuICAgIHRoaXMuI3Jlc2V0KCk7XG5cbiAgICB0aGlzLiNjb25maWcgPSBjb25maWc7XG4gICAgdGhpcy4jYmFzZUVsZW1lbnQgPSBiYXNlRWxlbWVudDtcbiAgICB0aGlzLiNvdmVyZmxvd1BhcmVudHMgPSBnZXRPdmVyZmxvd1BhcmVudHMoYmFzZUVsZW1lbnQpO1xuXG4gICAgdGhpcy4jYWZmaXgoKTtcblxuICAgIGlmICh0aGlzLiNjb25maWcuaXNTdGlja3kpIHtcbiAgICAgIHRoaXMuI2FkZFZpZXdwb3J0TGlzdGVuZXJzKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldENvbmZpZygpOiBTa3lBZmZpeENvbmZpZyB7XG4gICAgcmV0dXJuIHRoaXMuI2NvbmZpZztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZS1ydW5zIHRoZSBhZmZpeCBjYWxjdWxhdGlvbi5cbiAgICovXG4gIHB1YmxpYyByZWFmZml4KCk6IHZvaWQge1xuICAgIC8vIFJlc2V0IGN1cnJlbnQgcGxhY2VtZW50IHRvIHByZWZlcnJlZCBwbGFjZW1lbnQuXG4gICAgdGhpcy4jY3VycmVudFBsYWNlbWVudCA9IHRoaXMuI2NvbmZpZy5wbGFjZW1lbnQ7XG4gICAgdGhpcy4jYWZmaXgoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXN0cm95cyB0aGUgYWZmaXhlci5cbiAgICovXG4gIHB1YmxpYyBkZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI3Jlc2V0KCk7XG4gICAgdGhpcy4jcGxhY2VtZW50Q2hhbmdlLmNvbXBsZXRlKCk7XG4gICAgdGhpcy4jb2Zmc2V0Q2hhbmdlLmNvbXBsZXRlKCk7XG4gICAgdGhpcy4jb3ZlcmZsb3dTY3JvbGwuY29tcGxldGUoKTtcbiAgICB0aGlzLiNzY3JvbGxDaGFuZ2UuY29tcGxldGUoKTtcbiAgfVxuXG4gICNhZmZpeCgpOiB2b2lkIHtcbiAgICBjb25zdCBvZmZzZXQgPSB0aGlzLiNnZXRPZmZzZXQoKTtcblxuICAgIGlmICh0aGlzLiNpc05ld09mZnNldChvZmZzZXQpKSB7XG4gICAgICB0aGlzLiNyZW5kZXJlci5zZXRTdHlsZSh0aGlzLiNhZmZpeGVkRWxlbWVudCwgJ3RvcCcsIGAke29mZnNldC50b3B9cHhgKTtcbiAgICAgIHRoaXMuI3JlbmRlcmVyLnNldFN0eWxlKHRoaXMuI2FmZml4ZWRFbGVtZW50LCAnbGVmdCcsIGAke29mZnNldC5sZWZ0fXB4YCk7XG5cbiAgICAgIHRoaXMuI29mZnNldENoYW5nZS5uZXh0KHsgb2Zmc2V0IH0pO1xuICAgIH1cbiAgfVxuXG4gICNnZXRPZmZzZXQoKTogU2t5QWZmaXhPZmZzZXQge1xuICAgIGNvbnN0IHBhcmVudCA9IHRoaXMuI2dldEF1dG9GaXRDb250ZXh0UGFyZW50KCk7XG5cbiAgICBjb25zdCBtYXhBdHRlbXB0cyA9IDQ7XG4gICAgbGV0IGF0dGVtcHRzID0gMDtcblxuICAgIGxldCBpc0FmZml4ZWRFbGVtZW50RnVsbHlWaXNpYmxlID0gZmFsc2U7XG4gICAgbGV0IG9mZnNldDogUmVxdWlyZWQ8U2t5QWZmaXhPZmZzZXQ+O1xuICAgIGxldCBwbGFjZW1lbnQgPSB0aGlzLiNjb25maWcucGxhY2VtZW50O1xuXG4gICAgY29uc3QgYXV0b0ZpdE92ZXJmbG93T2Zmc2V0ID0gdGhpcy4jY29uZmlnLmF1dG9GaXRPdmVyZmxvd09mZnNldCB8fCB7XG4gICAgICBib3R0b206IDAsXG4gICAgICBsZWZ0OiAwLFxuICAgICAgcmlnaHQ6IDAsXG4gICAgICB0b3A6IDAsXG4gICAgfTtcblxuICAgIGlmICh0aGlzLiNjb25maWcucG9zaXRpb24gPT09ICdhYnNvbHV0ZScpIHtcbiAgICAgIGNvbnN0IHsgdG9wLCBsZWZ0IH0gPSB0aGlzLiN2aWV3cG9ydFJ1bGVyLmdldFZpZXdwb3J0U2Nyb2xsUG9zaXRpb24oKTtcbiAgICAgIGF1dG9GaXRPdmVyZmxvd09mZnNldC50b3AgPSAoYXV0b0ZpdE92ZXJmbG93T2Zmc2V0LnRvcCB8fCAwKSArIHRvcDtcbiAgICAgIGF1dG9GaXRPdmVyZmxvd09mZnNldC5sZWZ0ID0gKGF1dG9GaXRPdmVyZmxvd09mZnNldC5sZWZ0IHx8IDApICsgbGVmdDtcbiAgICAgIGF1dG9GaXRPdmVyZmxvd09mZnNldC5ib3R0b20gPSAoYXV0b0ZpdE92ZXJmbG93T2Zmc2V0LmJvdHRvbSB8fCAwKSArIHRvcDtcbiAgICAgIGF1dG9GaXRPdmVyZmxvd09mZnNldC5yaWdodCA9IChhdXRvRml0T3ZlcmZsb3dPZmZzZXQucmlnaHQgfHwgMCkgKyBsZWZ0O1xuICAgIH1cblxuICAgIGRvIHtcbiAgICAgIG9mZnNldCA9IHRoaXMuI2dldFByZWZlcnJlZE9mZnNldChwbGFjZW1lbnQpO1xuICAgICAgaXNBZmZpeGVkRWxlbWVudEZ1bGx5VmlzaWJsZSA9IGlzT2Zmc2V0RnVsbHlWaXNpYmxlV2l0aGluUGFyZW50KFxuICAgICAgICBwYXJlbnQsXG4gICAgICAgIG9mZnNldCxcbiAgICAgICAgYXV0b0ZpdE92ZXJmbG93T2Zmc2V0XG4gICAgICApO1xuXG4gICAgICBpZiAoIXRoaXMuI2NvbmZpZy5lbmFibGVBdXRvRml0KSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBpZiAoIWlzQWZmaXhlZEVsZW1lbnRGdWxseVZpc2libGUpIHtcbiAgICAgICAgcGxhY2VtZW50ID1cbiAgICAgICAgICBhdHRlbXB0cyAlIDIgPT09IDBcbiAgICAgICAgICAgID8gZ2V0SW52ZXJzZVBsYWNlbWVudChwbGFjZW1lbnQpXG4gICAgICAgICAgICA6IGdldE5leHRQbGFjZW1lbnQocGxhY2VtZW50KTtcbiAgICAgIH1cblxuICAgICAgYXR0ZW1wdHMrKztcbiAgICB9IHdoaWxlICghaXNBZmZpeGVkRWxlbWVudEZ1bGx5VmlzaWJsZSAmJiBhdHRlbXB0cyA8IG1heEF0dGVtcHRzKTtcblxuICAgIGlmIChpc0FmZml4ZWRFbGVtZW50RnVsbHlWaXNpYmxlKSB7XG4gICAgICBpZiAodGhpcy4jaXNCYXNlRWxlbWVudFZpc2libGUoKSkge1xuICAgICAgICB0aGlzLiNub3RpZnlQbGFjZW1lbnRDaGFuZ2UocGxhY2VtZW50KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuI25vdGlmeVBsYWNlbWVudENoYW5nZShudWxsKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG9mZnNldDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy4jY29uZmlnLmVuYWJsZUF1dG9GaXQpIHtcbiAgICAgIHRoaXMuI25vdGlmeVBsYWNlbWVudENoYW5nZShudWxsKTtcbiAgICB9XG5cbiAgICAvLyBObyBzdWl0YWJsZSBwbGFjZW1lbnQgd2FzIGZvdW5kLCBzbyByZXZlcnQgdG8gcHJlZmVycmVkIHBsYWNlbWVudC5cbiAgICByZXR1cm4gdGhpcy4jZ2V0UHJlZmVycmVkT2Zmc2V0KHRoaXMuI2NvbmZpZy5wbGFjZW1lbnQpO1xuICB9XG5cbiAgI2dldFJlY3QoYmFzZUVsZW1lbnQ6IEhUTUxFbGVtZW50KTogQWZmaXhSZWN0IHtcbiAgICBjb25zdCBiYXNlRG9tUmVjdCA9IGJhc2VFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgY29uc3QgYmFzZVJlY3Q6IEFmZml4UmVjdCA9IHtcbiAgICAgIHRvcDogYmFzZURvbVJlY3QudG9wLFxuICAgICAgYm90dG9tOiBiYXNlRG9tUmVjdC5ib3R0b20sXG4gICAgICBsZWZ0OiBiYXNlRG9tUmVjdC5sZWZ0LFxuICAgICAgcmlnaHQ6IGJhc2VEb21SZWN0LnJpZ2h0LFxuICAgICAgd2lkdGg6IGJhc2VEb21SZWN0LndpZHRoLFxuICAgICAgaGVpZ2h0OiBiYXNlRG9tUmVjdC5oZWlnaHQsXG4gICAgfTtcblxuICAgIGlmICh0aGlzLiNjb25maWcucG9zaXRpb24gPT09ICdhYnNvbHV0ZScpIHtcbiAgICAgIGNvbnN0IHsgbGVmdCwgdG9wIH0gPSB0aGlzLiN2aWV3cG9ydFJ1bGVyLmdldFZpZXdwb3J0U2Nyb2xsUG9zaXRpb24oKTtcbiAgICAgIGJhc2VSZWN0LnRvcCArPSB0b3A7XG4gICAgICBiYXNlUmVjdC5sZWZ0ICs9IGxlZnQ7XG4gICAgICBiYXNlUmVjdC5ib3R0b20gKz0gdG9wO1xuICAgICAgYmFzZVJlY3QucmlnaHQgKz0gbGVmdDtcbiAgICB9XG5cbiAgICByZXR1cm4gYmFzZVJlY3Q7XG4gIH1cblxuICAjZ2V0UHJlZmVycmVkT2Zmc2V0KHBsYWNlbWVudDogU2t5QWZmaXhQbGFjZW1lbnQpOiBSZXF1aXJlZDxTa3lBZmZpeE9mZnNldD4ge1xuICAgIGlmICghdGhpcy4jYmFzZUVsZW1lbnQpIHtcbiAgICAgIHJldHVybiB7IHRvcDogMCwgbGVmdDogMCwgYm90dG9tOiAwLCByaWdodDogMCB9O1xuICAgIH1cblxuICAgIGNvbnN0IGFmZml4ZWRSZWN0ID0gdGhpcy4jZ2V0UmVjdCh0aGlzLiNhZmZpeGVkRWxlbWVudCk7XG4gICAgY29uc3QgYmFzZVJlY3QgPSB0aGlzLiNnZXRSZWN0KHRoaXMuI2Jhc2VFbGVtZW50KTtcblxuICAgIGNvbnN0IGhvcml6b250YWxBbGlnbm1lbnQgPSB0aGlzLiNjb25maWcuaG9yaXpvbnRhbEFsaWdubWVudDtcbiAgICBjb25zdCB2ZXJ0aWNhbEFsaWdubWVudCA9IHRoaXMuI2NvbmZpZy52ZXJ0aWNhbEFsaWdubWVudDtcbiAgICBjb25zdCBlbmFibGVBdXRvRml0ID0gdGhpcy4jY29uZmlnLmVuYWJsZUF1dG9GaXQ7XG5cbiAgICBsZXQgdG9wOiBudW1iZXI7XG4gICAgbGV0IGxlZnQ6IG51bWJlcjtcblxuICAgIGlmIChwbGFjZW1lbnQgPT09ICdhYm92ZScgfHwgcGxhY2VtZW50ID09PSAnYmVsb3cnKSB7XG4gICAgICBpZiAocGxhY2VtZW50ID09PSAnYWJvdmUnKSB7XG4gICAgICAgIHRvcCA9IGJhc2VSZWN0LnRvcCAtIGFmZml4ZWRSZWN0LmhlaWdodDtcblxuICAgICAgICBzd2l0Y2ggKHZlcnRpY2FsQWxpZ25tZW50KSB7XG4gICAgICAgICAgY2FzZSAndG9wJzpcbiAgICAgICAgICAgIHRvcCA9IHRvcCArIGFmZml4ZWRSZWN0LmhlaWdodDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ21pZGRsZSc6XG4gICAgICAgICAgICB0b3AgPSB0b3AgKyBhZmZpeGVkUmVjdC5oZWlnaHQgLyAyO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnYm90dG9tJzpcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRvcCA9IGJhc2VSZWN0LmJvdHRvbTtcblxuICAgICAgICBzd2l0Y2ggKHZlcnRpY2FsQWxpZ25tZW50KSB7XG4gICAgICAgICAgY2FzZSAndG9wJzpcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnbWlkZGxlJzpcbiAgICAgICAgICAgIHRvcCA9IHRvcCAtIGFmZml4ZWRSZWN0LmhlaWdodCAvIDI7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdib3R0b20nOlxuICAgICAgICAgICAgdG9wID0gdG9wIC0gYWZmaXhlZFJlY3QuaGVpZ2h0O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgc3dpdGNoIChob3Jpem9udGFsQWxpZ25tZW50KSB7XG4gICAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICAgIGxlZnQgPSBiYXNlUmVjdC5sZWZ0O1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ2NlbnRlcic6XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgbGVmdCA9IGJhc2VSZWN0LmxlZnQgKyBiYXNlUmVjdC53aWR0aCAvIDIgLSBhZmZpeGVkUmVjdC53aWR0aCAvIDI7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAncmlnaHQnOlxuICAgICAgICAgIGxlZnQgPSBiYXNlUmVjdC5yaWdodCAtIGFmZml4ZWRSZWN0LndpZHRoO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAocGxhY2VtZW50ID09PSAnbGVmdCcpIHtcbiAgICAgICAgbGVmdCA9IGJhc2VSZWN0LmxlZnQgLSBhZmZpeGVkUmVjdC53aWR0aDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxlZnQgPSBiYXNlUmVjdC5yaWdodDtcbiAgICAgIH1cblxuICAgICAgc3dpdGNoICh2ZXJ0aWNhbEFsaWdubWVudCkge1xuICAgICAgICBjYXNlICd0b3AnOlxuICAgICAgICAgIHRvcCA9IGJhc2VSZWN0LnRvcDtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdtaWRkbGUnOlxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHRvcCA9IGJhc2VSZWN0LnRvcCArIGJhc2VSZWN0LmhlaWdodCAvIDIgLSBhZmZpeGVkUmVjdC5oZWlnaHQgLyAyO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ2JvdHRvbSc6XG4gICAgICAgICAgdG9wID0gYmFzZVJlY3QuYm90dG9tIC0gYWZmaXhlZFJlY3QuaGVpZ2h0O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IG9mZnNldDogUmVxdWlyZWQ8U2t5QWZmaXhPZmZzZXQ+ID0geyB0b3AsIGxlZnQsIGJvdHRvbTogMCwgcmlnaHQ6IDAgfTtcblxuICAgIGlmIChlbmFibGVBdXRvRml0KSB7XG4gICAgICBjb25zdCBhZGp1c3RtZW50cyA9IHRoaXMuI2FkanVzdE9mZnNldFRvT3ZlcmZsb3dQYXJlbnQoXG4gICAgICAgIHsgdG9wLCBsZWZ0IH0sXG4gICAgICAgIHBsYWNlbWVudCxcbiAgICAgICAgdGhpcy4jYmFzZUVsZW1lbnRcbiAgICAgICk7XG4gICAgICBvZmZzZXQudG9wID0gYWRqdXN0bWVudHMudG9wO1xuICAgICAgb2Zmc2V0LmxlZnQgPSBhZGp1c3RtZW50cy5sZWZ0O1xuICAgIH1cblxuICAgIG9mZnNldC5ib3R0b20gPSBvZmZzZXQudG9wICsgYWZmaXhlZFJlY3QuaGVpZ2h0O1xuICAgIG9mZnNldC5yaWdodCA9IG9mZnNldC5sZWZ0ICsgYWZmaXhlZFJlY3Qud2lkdGg7XG5cbiAgICByZXR1cm4gb2Zmc2V0O1xuICB9XG5cbiAgLyoqXG4gICAqIFNsaWdodGx5IGFkanVzdCB0aGUgb2Zmc2V0IHRvIGZpdCB3aXRoaW4gdGhlIHNjcm9sbCBwYXJlbnQncyBib3VuZGFyaWVzIGlmXG4gICAqIHRoZSBhZmZpeGVkIGVsZW1lbnQgd291bGQgb3RoZXJ3aXNlIGJlIGNsaXBwZWQuXG4gICAqL1xuICAjYWRqdXN0T2Zmc2V0VG9PdmVyZmxvd1BhcmVudChcbiAgICBvZmZzZXQ6IHsgdG9wOiBudW1iZXI7IGxlZnQ6IG51bWJlciB9LFxuICAgIHBsYWNlbWVudDogU2t5QWZmaXhQbGFjZW1lbnQsXG4gICAgYmFzZUVsZW1lbnQ6IEhUTUxFbGVtZW50XG4gICk6IHsgdG9wOiBudW1iZXI7IGxlZnQ6IG51bWJlciB9IHtcbiAgICBjb25zdCBwYXJlbnQgPSB0aGlzLiNnZXRBdXRvRml0Q29udGV4dFBhcmVudCgpO1xuICAgIGNvbnN0IHBhcmVudE9mZnNldCA9IGdldEVsZW1lbnRPZmZzZXQoXG4gICAgICBwYXJlbnQsXG4gICAgICB0aGlzLiNjb25maWcuYXV0b0ZpdE92ZXJmbG93T2Zmc2V0XG4gICAgKTtcblxuICAgIGNvbnN0IGFmZml4ZWRSZWN0ID0gdGhpcy4jZ2V0UmVjdCh0aGlzLiNhZmZpeGVkRWxlbWVudCk7XG4gICAgY29uc3QgYmFzZVJlY3QgPSB0aGlzLiNnZXRSZWN0KGJhc2VFbGVtZW50KTtcblxuICAgIC8vIEEgcGl4ZWwgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBsZWV3YXkgYmV0d2VlbiB0aGUgZWRnZSBvZiB0aGUgb3ZlcmZsb3cgcGFyZW50IGFuZCB0aGUgZWRnZVxuICAgIC8vIG9mIHRoZSBiYXNlIGVsZW1lbnQgYmVmb3JlIGl0IGRpc2FwcGVhcnMgZnJvbSB2aWV3LlxuICAgIC8vIElmIHRoZSB2aXNpYmxlIHBvcnRpb24gb2YgdGhlIGJhc2UgZWxlbWVudCBpcyBsZXNzIHRoYW4gdGhpcyBwaXhlbCB2YWx1ZSwgdGhlIGF1dG8tZml0XG4gICAgLy8gZnVuY3Rpb25hbGl0eSBhdHRlbXB0cyB0byBmaW5kIGFub3RoZXIgcGxhY2VtZW50LlxuICAgIGNvbnN0IGRlZmF1bHRQaXhlbFRvbGVyYW5jZSA9IDQwO1xuICAgIGxldCBwaXhlbFRvbGVyYW5jZTogbnVtYmVyO1xuXG4gICAgY29uc3Qgb3JpZ2luYWxPZmZzZXRUb3AgPSBvZmZzZXQudG9wO1xuICAgIGNvbnN0IG9yaWdpbmFsT2Zmc2V0TGVmdCA9IG9mZnNldC5sZWZ0O1xuXG4gICAgc3dpdGNoIChwbGFjZW1lbnQpIHtcbiAgICAgIGNhc2UgJ2Fib3ZlJzpcbiAgICAgIGNhc2UgJ2JlbG93JzpcbiAgICAgICAgLy8gS2VlcCB0aGUgYWZmaXhlZCBlbGVtZW50IHdpdGhpbiB0aGUgb3ZlcmZsb3cgcGFyZW50LlxuICAgICAgICBpZiAob2Zmc2V0LmxlZnQgPCBwYXJlbnRPZmZzZXQubGVmdCkge1xuICAgICAgICAgIG9mZnNldC5sZWZ0ID0gcGFyZW50T2Zmc2V0LmxlZnQ7XG4gICAgICAgIH0gZWxzZSBpZiAob2Zmc2V0LmxlZnQgKyBhZmZpeGVkUmVjdC53aWR0aCA+IHBhcmVudE9mZnNldC5yaWdodCkge1xuICAgICAgICAgIG9mZnNldC5sZWZ0ID0gcGFyZW50T2Zmc2V0LnJpZ2h0IC0gYWZmaXhlZFJlY3Qud2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBVc2UgYSBzbWFsbGVyIHBpeGVsIHRvbGVyYW5jZSBpZiB0aGUgYmFzZSBlbGVtZW50IHdpZHRoIGlzIGxlc3MgdGhhbiB0aGUgZGVmYXVsdC5cbiAgICAgICAgcGl4ZWxUb2xlcmFuY2UgPSBNYXRoLm1pbihkZWZhdWx0UGl4ZWxUb2xlcmFuY2UsIGJhc2VSZWN0LndpZHRoKTtcblxuICAgICAgICAvLyBNYWtlIHN1cmUgdGhlIGFmZml4ZWQgZWxlbWVudCBuZXZlciBkZXRhY2hlcyBmcm9tIHRoZSBiYXNlIGVsZW1lbnQuXG4gICAgICAgIGlmIChcbiAgICAgICAgICBvZmZzZXQubGVmdCArIHBpeGVsVG9sZXJhbmNlID4gYmFzZVJlY3QucmlnaHQgfHxcbiAgICAgICAgICBvZmZzZXQubGVmdCArIGFmZml4ZWRSZWN0LndpZHRoIC0gcGl4ZWxUb2xlcmFuY2UgPCBiYXNlUmVjdC5sZWZ0XG4gICAgICAgICkge1xuICAgICAgICAgIG9mZnNldC5sZWZ0ID0gb3JpZ2luYWxPZmZzZXRMZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgY2FzZSAncmlnaHQnOlxuICAgICAgICAvLyBLZWVwIHRoZSBhZmZpeGVkIGVsZW1lbnQgd2l0aGluIHRoZSBvdmVyZmxvdyBwYXJlbnQuXG4gICAgICAgIGlmIChvZmZzZXQudG9wIDwgcGFyZW50T2Zmc2V0LnRvcCkge1xuICAgICAgICAgIG9mZnNldC50b3AgPSBwYXJlbnRPZmZzZXQudG9wO1xuICAgICAgICB9IGVsc2UgaWYgKG9mZnNldC50b3AgKyBhZmZpeGVkUmVjdC5oZWlnaHQgPiBwYXJlbnRPZmZzZXQuYm90dG9tKSB7XG4gICAgICAgICAgb2Zmc2V0LnRvcCA9IHBhcmVudE9mZnNldC5ib3R0b20gLSBhZmZpeGVkUmVjdC5oZWlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBVc2UgYSBzbWFsbGVyIHBpeGVsIHRvbGVyYW5jZSBpZiB0aGUgYmFzZSBlbGVtZW50IGhlaWdodCBpcyBsZXNzIHRoYW4gdGhlIGRlZmF1bHQuXG4gICAgICAgIHBpeGVsVG9sZXJhbmNlID0gTWF0aC5taW4oZGVmYXVsdFBpeGVsVG9sZXJhbmNlLCBiYXNlUmVjdC5oZWlnaHQpO1xuXG4gICAgICAgIC8vIE1ha2Ugc3VyZSB0aGUgYWZmaXhlZCBlbGVtZW50IG5ldmVyIGRldGFjaGVzIGZyb20gdGhlIGJhc2UgZWxlbWVudC5cbiAgICAgICAgaWYgKFxuICAgICAgICAgIG9mZnNldC50b3AgKyBwaXhlbFRvbGVyYW5jZSA+IGJhc2VSZWN0LmJvdHRvbSB8fFxuICAgICAgICAgIG9mZnNldC50b3AgKyBhZmZpeGVkUmVjdC5oZWlnaHQgLSBwaXhlbFRvbGVyYW5jZSA8IGJhc2VSZWN0LnRvcFxuICAgICAgICApIHtcbiAgICAgICAgICBvZmZzZXQudG9wID0gb3JpZ2luYWxPZmZzZXRUb3A7XG4gICAgICAgIH1cblxuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICByZXR1cm4gb2Zmc2V0O1xuICB9XG5cbiAgI2dldEltbWVkaWF0ZU92ZXJmbG93UGFyZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy4jb3ZlcmZsb3dQYXJlbnRzW3RoaXMuI292ZXJmbG93UGFyZW50cy5sZW5ndGggLSAxXTtcbiAgfVxuXG4gICNnZXRBdXRvRml0Q29udGV4dFBhcmVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgY29uc3QgYm9keUVsZW1lbnQgPSB0aGlzLiNvdmVyZmxvd1BhcmVudHNbMF07XG5cbiAgICByZXR1cm4gdGhpcy4jY29uZmlnLmF1dG9GaXRDb250ZXh0ID09PSBTa3lBZmZpeEF1dG9GaXRDb250ZXh0Lk92ZXJmbG93UGFyZW50XG4gICAgICA/IHRoaXMuI2dldEltbWVkaWF0ZU92ZXJmbG93UGFyZW50KClcbiAgICAgIDogYm9keUVsZW1lbnQ7XG4gIH1cblxuICAjbm90aWZ5UGxhY2VtZW50Q2hhbmdlKHBsYWNlbWVudDogU2t5QWZmaXhQbGFjZW1lbnQgfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuI2N1cnJlbnRQbGFjZW1lbnQgIT09IHBsYWNlbWVudCkge1xuICAgICAgdGhpcy4jY3VycmVudFBsYWNlbWVudCA9IHBsYWNlbWVudCA/PyB1bmRlZmluZWQ7XG4gICAgICB0aGlzLiNwbGFjZW1lbnRDaGFuZ2UubmV4dCh7XG4gICAgICAgIHBsYWNlbWVudCxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gICNyZXNldCgpOiB2b2lkIHtcbiAgICB0aGlzLiNyZW1vdmVWaWV3cG9ydExpc3RlbmVycygpO1xuXG4gICAgdGhpcy4jb3ZlcmZsb3dQYXJlbnRzID0gW107XG5cbiAgICB0aGlzLiNjb25maWcgPVxuICAgICAgdGhpcy4jYmFzZUVsZW1lbnQgPVxuICAgICAgdGhpcy4jY3VycmVudFBsYWNlbWVudCA9XG4gICAgICB0aGlzLiNjdXJyZW50T2Zmc2V0ID1cbiAgICAgICAgdW5kZWZpbmVkO1xuICB9XG5cbiAgI2lzTmV3T2Zmc2V0KG9mZnNldDogU2t5QWZmaXhPZmZzZXQpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy4jY3VycmVudE9mZnNldCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLiNjdXJyZW50T2Zmc2V0ID0gb2Zmc2V0O1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgdGhpcy4jY3VycmVudE9mZnNldC50b3AgPT09IG9mZnNldC50b3AgJiZcbiAgICAgIHRoaXMuI2N1cnJlbnRPZmZzZXQubGVmdCA9PT0gb2Zmc2V0LmxlZnRcbiAgICApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICB0aGlzLiNjdXJyZW50T2Zmc2V0ID0gb2Zmc2V0O1xuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAjaXNCYXNlRWxlbWVudFZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLiNiYXNlRWxlbWVudCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IGJhc2VSZWN0ID0gdGhpcy4jYmFzZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICByZXR1cm4gaXNPZmZzZXRQYXJ0aWFsbHlWaXNpYmxlV2l0aGluUGFyZW50KFxuICAgICAgdGhpcy4jZ2V0SW1tZWRpYXRlT3ZlcmZsb3dQYXJlbnQoKSxcbiAgICAgIHtcbiAgICAgICAgdG9wOiBiYXNlUmVjdC50b3AsXG4gICAgICAgIGxlZnQ6IGJhc2VSZWN0LmxlZnQsXG4gICAgICAgIHJpZ2h0OiBiYXNlUmVjdC5yaWdodCxcbiAgICAgICAgYm90dG9tOiBiYXNlUmVjdC5ib3R0b20sXG4gICAgICB9LFxuICAgICAgdGhpcy4jY29uZmlnLmF1dG9GaXRPdmVyZmxvd09mZnNldFxuICAgICk7XG4gIH1cblxuICAjYWRkVmlld3BvcnRMaXN0ZW5lcnMoKTogdm9pZCB7XG4gICAgdGhpcy4jdmlld3BvcnRMaXN0ZW5lcnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICAvLyBSZXNpemUgYW5kIG9yaWVudGF0aW9uIGNoYW5nZXMuXG4gICAgdGhpcy4jdmlld3BvcnRMaXN0ZW5lcnMuYWRkKFxuICAgICAgdGhpcy4jdmlld3BvcnRSdWxlci5jaGFuZ2UoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLiNhZmZpeCgpO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy4jdmlld3BvcnRMaXN0ZW5lcnMuYWRkKFxuICAgICAgdGhpcy4jc2Nyb2xsQ2hhbmdlLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuI2FmZml4KCk7XG4gICAgICAgIHRoaXMuI292ZXJmbG93U2Nyb2xsLm5leHQoKTtcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIC8vIExpc3RlbiBmb3Igc2Nyb2xsIGV2ZW50cyBvbiB0aGUgd2luZG93LCB2aXN1YWwgdmlld3BvcnQsIGFuZCBhbnkgb3ZlcmZsb3cgcGFyZW50cy5cbiAgICAvLyBodHRwczovL2RldmVsb3Blci5jaHJvbWUuY29tL2Jsb2cvdmlzdWFsLXZpZXdwb3J0LWFwaS8jZXZlbnRzLW9ubHktZmlyZS13aGVuLXRoZS12aXN1YWwtdmlld3BvcnQtY2hhbmdlc1xuICAgIHRoaXMuI3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgW3dpbmRvdywgd2luZG93LnZpc3VhbFZpZXdwb3J0LCAuLi50aGlzLiNvdmVyZmxvd1BhcmVudHNdLmZvckVhY2goXG4gICAgICAgIChwYXJlbnRFbGVtZW50KSA9PiB7XG4gICAgICAgICAgcGFyZW50RWxlbWVudD8uYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy4jc2Nyb2xsQ2hhbmdlTGlzdGVuZXIpO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgI3JlbW92ZVZpZXdwb3J0TGlzdGVuZXJzKCk6IHZvaWQge1xuICAgIHRoaXMuI3ZpZXdwb3J0TGlzdGVuZXJzPy51bnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy4jem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBbd2luZG93LCB3aW5kb3cudmlzdWFsVmlld3BvcnQsIC4uLnRoaXMuI292ZXJmbG93UGFyZW50c10uZm9yRWFjaChcbiAgICAgICAgKHBhcmVudEVsZW1lbnQpID0+IHtcbiAgICAgICAgICBwYXJlbnRFbGVtZW50Py5yZW1vdmVFdmVudExpc3RlbmVyKFxuICAgICAgICAgICAgJ3Njcm9sbCcsXG4gICAgICAgICAgICB0aGlzLiNzY3JvbGxDaGFuZ2VMaXN0ZW5lclxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
389
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWZmaXhlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jb3JlL3NyYy9saWIvbW9kdWxlcy9hZmZpeC9hZmZpeGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBR0EsT0FBTyxFQUFjLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFekQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFPbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLGdDQUFnQyxFQUNoQyxvQ0FBb0MsR0FDckMsTUFBTSxhQUFhLENBQUM7QUFrQnJCLE1BQU0sb0JBQW9CLEdBQTBCO0lBQ2xELGNBQWMsRUFBRSxzQkFBc0IsQ0FBQyxjQUFjO0lBQ3JELGFBQWEsRUFBRSxLQUFLO0lBQ3BCLG1CQUFtQixFQUFFLFFBQVE7SUFDN0IsUUFBUSxFQUFFLEtBQUs7SUFDZixTQUFTLEVBQUUsT0FBTztDQUNuQixDQUFDO0FBRUYsTUFBTSxPQUFPLFVBQVU7SUFDckI7O09BRUc7SUFDSCxJQUFXLFlBQVk7UUFDckIsT0FBTyx1QkFBQSxJQUFJLG1DQUFpQixDQUFDO0lBQy9CLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sdUJBQUEsSUFBSSxxQ0FBbUIsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBVyxlQUFlO1FBQ3hCLE9BQU8sdUJBQUEsSUFBSSxzQ0FBb0IsQ0FBQztJQUNsQyxDQUFDO0lBMkRELFlBQ0UsY0FBMkIsRUFDM0IsUUFBbUIsRUFDbkIsYUFBNEIsRUFDNUIsSUFBWTs7UUF4Q2QsNkNBQTZCO1FBRTdCLDBDQUFzQztRQUV0Qyw0Q0FBMkM7UUFFM0MsK0NBQWlEO1FBRWpE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YUFBYSxFQUFFLEVBQUU7WUFDaEIsYUFBYSxFQUFFLGdCQUFnQixDQUFDLFFBQVEsRUFBRSx1QkFBQSxJQUFJLHdDQUFzQixDQUFDLENBQUM7UUFDeEUsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7SUFHQyx1QkFBQSxJQUFJLHFDQUFtQixFQUFFLFdBQVcsRUFBRSxDQUFDO0lBRXZDLHVCQUFBLElBQUksd0JBQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7UUFDaEMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLGNBQWMsRUFBRSxHQUFHLHVCQUFBLElBQUksbUNBQWlCLENBQUMsQ0FBQyxPQUFPLENBQy9ELENBQUMsYUFBYSxFQUFFLEVBQUU7WUFDaEIsYUFBYSxFQUFFLG1CQUFtQixDQUNoQyxRQUFRLEVBQ1IsdUJBQUEsSUFBSSx3Q0FBc0IsQ0FDM0IsQ0FBQztRQUNKLENBQUMsQ0FDRixDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmlld3BvcnRSdWxlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IE5nWm9uZSwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTa3lBZmZpeEF1dG9GaXRDb250ZXh0IH0gZnJvbSAnLi9hZmZpeC1hdXRvLWZpdC1jb250ZXh0JztcbmltcG9ydCB7IFNreUFmZml4Q29uZmlnIH0gZnJvbSAnLi9hZmZpeC1jb25maWcnO1xuaW1wb3J0IHsgU2t5QWZmaXhPZmZzZXQgfSBmcm9tICcuL2FmZml4LW9mZnNldCc7XG5pbXBvcnQgeyBTa3lBZmZpeE9mZnNldENoYW5nZSB9IGZyb20gJy4vYWZmaXgtb2Zmc2V0LWNoYW5nZSc7XG5pbXBvcnQgeyBTa3lBZmZpeFBsYWNlbWVudCB9IGZyb20gJy4vYWZmaXgtcGxhY2VtZW50JztcbmltcG9ydCB7IFNreUFmZml4UGxhY2VtZW50Q2hhbmdlIH0gZnJvbSAnLi9hZmZpeC1wbGFjZW1lbnQtY2hhbmdlJztcbmltcG9ydCB7IEFmZml4UmVjdCB9IGZyb20gJy4vYWZmaXgtcmVjdCc7XG5pbXBvcnQgeyBnZXRJbnZlcnNlUGxhY2VtZW50LCBnZXROZXh0UGxhY2VtZW50IH0gZnJvbSAnLi9hZmZpeC11dGlscyc7XG5pbXBvcnQge1xuICBnZXRFbGVtZW50T2Zmc2V0LFxuICBnZXRPdmVyZmxvd1BhcmVudHMsXG4gIGlzT2Zmc2V0RnVsbHlWaXNpYmxlV2l0aGluUGFyZW50LFxuICBpc09mZnNldFBhcnRpYWxseVZpc2libGVXaXRoaW5QYXJlbnQsXG59IGZyb20gJy4vZG9tLXV0aWxzJztcblxuLyoqXG4gKiBNYWtlIHNwZWNpZmljIHByb3BlcnRpZXMgcmVxdWlyZWQsIHNvIHRoYXQgd2UgZG9uJ3QgaGF2ZSB0b1xuICogZG8gbnVsbCBjaGVja3MgdGhyb3VnaG91dCB0aGlzIGZpbGUuXG4gKi9cbnR5cGUgQWZmaXhDb25maWdPckRlZmF1bHRzID0gU2t5QWZmaXhDb25maWcgJlxuICBSZXF1aXJlZDxcbiAgICBQaWNrPFxuICAgICAgU2t5QWZmaXhDb25maWcsXG4gICAgICB8ICdhdXRvRml0Q29udGV4dCdcbiAgICAgIHwgJ2VuYWJsZUF1dG9GaXQnXG4gICAgICB8ICdob3Jpem9udGFsQWxpZ25tZW50J1xuICAgICAgfCAnaXNTdGlja3knXG4gICAgICB8ICdwbGFjZW1lbnQnXG4gICAgPlxuICA+O1xuXG5jb25zdCBERUZBVUxUX0FGRklYX0NPTkZJRzogQWZmaXhDb25maWdPckRlZmF1bHRzID0ge1xuICBhdXRvRml0Q29udGV4dDogU2t5QWZmaXhBdXRvRml0Q29udGV4dC5PdmVyZmxvd1BhcmVudCxcbiAgZW5hYmxlQXV0b0ZpdDogZmFsc2UsXG4gIGhvcml6b250YWxBbGlnbm1lbnQ6ICdjZW50ZXInLFxuICBpc1N0aWNreTogZmFsc2UsXG4gIHBsYWNlbWVudDogJ2Fib3ZlJyxcbn07XG5cbmV4cG9ydCBjbGFzcyBTa3lBZmZpeGVyIHtcbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIGFmZml4ZWQgZWxlbWVudCdzIG9mZnNldCBjaGFuZ2VzLlxuICAgKi9cbiAgcHVibGljIGdldCBvZmZzZXRDaGFuZ2UoKTogT2JzZXJ2YWJsZTxTa3lBZmZpeE9mZnNldENoYW5nZT4ge1xuICAgIHJldHVybiB0aGlzLiNvZmZzZXRDaGFuZ2VPYnM7XG4gIH1cblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGUgYmFzZSBlbGVtZW50J3MgbmVhcmVzdCBvdmVyZmxvdyBwYXJlbnQgaXMgc2Nyb2xsaW5nLiBUaGlzIGlzIHVzZWZ1bCBpZiB5b3UgbmVlZFxuICAgKiB0byBwZXJmb3JtIGFuIGFkZGl0aW9uYWwgYWN0aW9uIGR1cmluZyB0aGUgc2Nyb2xsIGV2ZW50IGJ1dCBkb24ndCB3YW50IHRvIGdlbmVyYXRlIGFub3RoZXJcbiAgICogZXZlbnQgbGlzdGVuZXIuXG4gICAqL1xuICBwdWJsaWMgZ2V0IG92ZXJmbG93U2Nyb2xsKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLiNvdmVyZmxvd1Njcm9sbE9icztcbiAgfVxuXG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoZSBwbGFjZW1lbnQgdmFsdWUgY2hhbmdlcy4gQSBgbnVsbGAgdmFsdWUgaW5kaWNhdGVzIHRoYXQgYSBzdWl0YWJsZVxuICAgKiBwbGFjZW1lbnQgY291bGQgbm90IGJlIGZvdW5kLlxuICAgKi9cbiAgcHVibGljIGdldCBwbGFjZW1lbnRDaGFuZ2UoKTogT2JzZXJ2YWJsZTxTa3lBZmZpeFBsYWNlbWVudENoYW5nZT4ge1xuICAgIHJldHVybiB0aGlzLiNwbGFjZW1lbnRDaGFuZ2VPYnM7XG4gIH1cblxuICBnZXQgI2NvbmZpZygpOiBBZmZpeENvbmZpZ09yRGVmYXVsdHMge1xuICAgIHJldHVybiB0aGlzLiNfY29uZmlnO1xuICB9XG5cbiAgc2V0ICNjb25maWcodmFsdWU6IFNreUFmZml4Q29uZmlnIHwgdW5kZWZpbmVkKSB7XG4gICAgY29uc3QgbWVyZ2VkOiBBZmZpeENvbmZpZ09yRGVmYXVsdHMgPSB7XG4gICAgICAuLi5ERUZBVUxUX0FGRklYX0NPTkZJRyxcbiAgICAgIC4uLnZhbHVlLFxuICAgIH07XG5cbiAgICAvLyBNYWtlIHN1cmUgbm9uZSBvZiB0aGUgdmFsdWVzIGFyZSB1bmRlZmluZWQuXG4gICAgbGV0IGtleToga2V5b2YgdHlwZW9mIG1lcmdlZDtcbiAgICBmb3IgKGtleSBpbiBtZXJnZWQpIHtcbiAgICAgIGlmIChtZXJnZWRba2V5XSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIChtZXJnZWQgYXMgYW55KVtrZXldID0gREVGQVVMVF9BRkZJWF9DT05GSUdba2V5XTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLiNfY29uZmlnID0gbWVyZ2VkO1xuICB9XG5cbiAgI2FmZml4ZWRFbGVtZW50OiBIVE1MRWxlbWVudDtcblxuICAjYmFzZUVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkO1xuXG4gICNjdXJyZW50T2Zmc2V0OiBTa3lBZmZpeE9mZnNldCB8IHVuZGVmaW5lZDtcblxuICAjY3VycmVudFBsYWNlbWVudDogU2t5QWZmaXhQbGFjZW1lbnQgfCB1bmRlZmluZWQ7XG5cbiAgI29mZnNldENoYW5nZTogU3ViamVjdDxTa3lBZmZpeE9mZnNldENoYW5nZT47XG5cbiAgI29mZnNldENoYW5nZU9iczogT2JzZXJ2YWJsZTxTa3lBZmZpeE9mZnNldENoYW5nZT47XG5cbiAgI292ZXJmbG93UGFyZW50czogSFRNTEVsZW1lbnRbXSA9IFtdO1xuXG4gICNvdmVyZmxvd1Njcm9sbDogU3ViamVjdDx2b2lkPjtcblxuICAjb3ZlcmZsb3dTY3JvbGxPYnM6IE9ic2VydmFibGU8dm9pZD47XG5cbiAgI3BsYWNlbWVudENoYW5nZTogU3ViamVjdDxTa3lBZmZpeFBsYWNlbWVudENoYW5nZT47XG5cbiAgI3BsYWNlbWVudENoYW5nZU9iczogT2JzZXJ2YWJsZTxTa3lBZmZpeFBsYWNlbWVudENoYW5nZT47XG5cbiAgI3JlbmRlcmVyOiBSZW5kZXJlcjI7XG5cbiAgI3Njcm9sbENoYW5nZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgI3ZpZXdwb3J0TGlzdGVuZXJzOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XG5cbiAgI3ZpZXdwb3J0UnVsZXI6IFZpZXdwb3J0UnVsZXI7XG5cbiAgI3pvbmU6IE5nWm9uZTtcblxuICAjX2NvbmZpZzogQWZmaXhDb25maWdPckRlZmF1bHRzID0gREVGQVVMVF9BRkZJWF9DT05GSUc7XG5cbiAgI3Njcm9sbENoYW5nZUxpc3RlbmVyOiAoKSA9PiB2b2lkID0gKCkgPT4gdGhpcy4jc2Nyb2xsQ2hhbmdlLm5leHQoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBhZmZpeGVkRWxlbWVudDogSFRNTEVsZW1lbnQsXG4gICAgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICB2aWV3cG9ydFJ1bGVyOiBWaWV3cG9ydFJ1bGVyLFxuICAgIHpvbmU6IE5nWm9uZVxuICApIHtcbiAgICB0aGlzLiNhZmZpeGVkRWxlbWVudCA9IGFmZml4ZWRFbGVtZW50O1xuICAgIHRoaXMuI3JlbmRlcmVyID0gcmVuZGVyZXI7XG4gICAgdGhpcy4jdmlld3BvcnRSdWxlciA9IHZpZXdwb3J0UnVsZXI7XG4gICAgdGhpcy4jem9uZSA9IHpvbmU7XG5cbiAgICB0aGlzLiNvZmZzZXRDaGFuZ2UgPSBuZXcgU3ViamVjdDxTa3lBZmZpeE9mZnNldENoYW5nZT4oKTtcbiAgICB0aGlzLiNvdmVyZmxvd1Njcm9sbCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgdGhpcy4jcGxhY2VtZW50Q2hhbmdlID0gbmV3IFN1YmplY3Q8U2t5QWZmaXhQbGFjZW1lbnRDaGFuZ2U+KCk7XG5cbiAgICB0aGlzLiNvZmZzZXRDaGFuZ2VPYnMgPSB0aGlzLiNvZmZzZXRDaGFuZ2UuYXNPYnNlcnZhYmxlKCk7XG4gICAgdGhpcy4jb3ZlcmZsb3dTY3JvbGxPYnMgPSB0aGlzLiNvdmVyZmxvd1Njcm9sbC5hc09ic2VydmFibGUoKTtcbiAgICB0aGlzLiNwbGFjZW1lbnRDaGFuZ2VPYnMgPSB0aGlzLiNwbGFjZW1lbnRDaGFuZ2UuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogQWZmaXhlcyBhbiBlbGVtZW50IHRvIGEgYmFzZSBlbGVtZW50LlxuICAgKiBAcGFyYW0gYmFzZUVsZW1lbnQgVGhlIGJhc2UgZWxlbWVudC5cbiAgICogQHBhcmFtIGNvbmZpZyBDb25maWd1cmF0aW9uIGZvciB0aGUgYWZmaXggYWN0aW9uLlxuICAgKi9cbiAgcHVibGljIGFmZml4VG8oYmFzZUVsZW1lbnQ6IEhUTUxFbGVtZW50LCBjb25maWc/OiBTa3lBZmZpeENvbmZpZyk6IHZvaWQge1xuICAgIHRoaXMuI3Jlc2V0KCk7XG5cbiAgICB0aGlzLiNjb25maWcgPSBjb25maWc7XG4gICAgdGhpcy4jYmFzZUVsZW1lbnQgPSBiYXNlRWxlbWVudDtcbiAgICB0aGlzLiNvdmVyZmxvd1BhcmVudHMgPSBnZXRPdmVyZmxvd1BhcmVudHMoYmFzZUVsZW1lbnQpO1xuXG4gICAgdGhpcy4jYWZmaXgoKTtcblxuICAgIGlmICh0aGlzLiNjb25maWcuaXNTdGlja3kpIHtcbiAgICAgIHRoaXMuI2FkZFZpZXdwb3J0TGlzdGVuZXJzKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldENvbmZpZygpOiBTa3lBZmZpeENvbmZpZyB7XG4gICAgcmV0dXJuIHRoaXMuI2NvbmZpZztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZS1ydW5zIHRoZSBhZmZpeCBjYWxjdWxhdGlvbi5cbiAgICovXG4gIHB1YmxpYyByZWFmZml4KCk6IHZvaWQge1xuICAgIC8vIFJlc2V0IGN1cnJlbnQgcGxhY2VtZW50IHRvIHByZWZlcnJlZCBwbGFjZW1lbnQuXG4gICAgdGhpcy4jY3VycmVudFBsYWNlbWVudCA9IHRoaXMuI2NvbmZpZy5wbGFjZW1lbnQ7XG4gICAgdGhpcy4jYWZmaXgoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXN0cm95cyB0aGUgYWZmaXhlci5cbiAgICovXG4gIHB1YmxpYyBkZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI3Jlc2V0KCk7XG4gICAgdGhpcy4jcGxhY2VtZW50Q2hhbmdlLmNvbXBsZXRlKCk7XG4gICAgdGhpcy4jb2Zmc2V0Q2hhbmdlLmNvbXBsZXRlKCk7XG4gICAgdGhpcy4jb3ZlcmZsb3dTY3JvbGwuY29tcGxldGUoKTtcbiAgICB0aGlzLiNzY3JvbGxDaGFuZ2UuY29tcGxldGUoKTtcbiAgfVxuXG4gICNhZmZpeCgpOiB2b2lkIHtcbiAgICBjb25zdCBvZmZzZXQgPSB0aGlzLiNnZXRPZmZzZXQoKTtcblxuICAgIGlmICh0aGlzLiNpc05ld09mZnNldChvZmZzZXQpKSB7XG4gICAgICB0aGlzLiNyZW5kZXJlci5zZXRTdHlsZSh0aGlzLiNhZmZpeGVkRWxlbWVudCwgJ3RvcCcsIGAke29mZnNldC50b3B9cHhgKTtcbiAgICAgIHRoaXMuI3JlbmRlcmVyLnNldFN0eWxlKHRoaXMuI2FmZml4ZWRFbGVtZW50LCAnbGVmdCcsIGAke29mZnNldC5sZWZ0fXB4YCk7XG5cbiAgICAgIHRoaXMuI29mZnNldENoYW5nZS5uZXh0KHsgb2Zmc2V0IH0pO1xuICAgIH1cbiAgfVxuXG4gICNnZXRPZmZzZXQoKTogU2t5QWZmaXhPZmZzZXQge1xuICAgIGNvbnN0IHBhcmVudCA9IHRoaXMuI2dldEF1dG9GaXRDb250ZXh0UGFyZW50KCk7XG5cbiAgICBjb25zdCBtYXhBdHRlbXB0cyA9IDQ7XG4gICAgbGV0IGF0dGVtcHRzID0gMDtcblxuICAgIGxldCBpc0FmZml4ZWRFbGVtZW50RnVsbHlWaXNpYmxlID0gZmFsc2U7XG4gICAgbGV0IG9mZnNldDogUmVxdWlyZWQ8U2t5QWZmaXhPZmZzZXQ+O1xuICAgIGxldCBwbGFjZW1lbnQgPSB0aGlzLiNjb25maWcucGxhY2VtZW50O1xuXG4gICAgY29uc3QgYXV0b0ZpdE92ZXJmbG93T2Zmc2V0ID0gdGhpcy4jY29uZmlnLmF1dG9GaXRPdmVyZmxvd09mZnNldCB8fCB7XG4gICAgICBib3R0b206IDAsXG4gICAgICBsZWZ0OiAwLFxuICAgICAgcmlnaHQ6IDAsXG4gICAgICB0b3A6IDAsXG4gICAgfTtcblxuICAgIGlmICh0aGlzLiNjb25maWcucG9zaXRpb24gPT09ICdhYnNvbHV0ZScpIHtcbiAgICAgIGNvbnN0IHsgdG9wLCBsZWZ0IH0gPSB0aGlzLiN2aWV3cG9ydFJ1bGVyLmdldFZpZXdwb3J0U2Nyb2xsUG9zaXRpb24oKTtcbiAgICAgIGF1dG9GaXRPdmVyZmxvd09mZnNldC50b3AgPSAoYXV0b0ZpdE92ZXJmbG93T2Zmc2V0LnRvcCB8fCAwKSArIHRvcDtcbiAgICAgIGF1dG9GaXRPdmVyZmxvd09mZnNldC5sZWZ0ID0gKGF1dG9GaXRPdmVyZmxvd09mZnNldC5sZWZ0IHx8IDApICsgbGVmdDtcbiAgICAgIGF1dG9GaXRPdmVyZmxvd09mZnNldC5ib3R0b20gPSAoYXV0b0ZpdE92ZXJmbG93T2Zmc2V0LmJvdHRvbSB8fCAwKSArIHRvcDtcbiAgICAgIGF1dG9GaXRPdmVyZmxvd09mZnNldC5yaWdodCA9IChhdXRvRml0T3ZlcmZsb3dPZmZzZXQucmlnaHQgfHwgMCkgKyBsZWZ0O1xuICAgIH1cblxuICAgIGRvIHtcbiAgICAgIG9mZnNldCA9IHRoaXMuI2dldFByZWZlcnJlZE9mZnNldChwbGFjZW1lbnQpO1xuICAgICAgaXNBZmZpeGVkRWxlbWVudEZ1bGx5VmlzaWJsZSA9IGlzT2Zmc2V0RnVsbHlWaXNpYmxlV2l0aGluUGFyZW50KFxuICAgICAgICBwYXJlbnQsXG4gICAgICAgIG9mZnNldCxcbiAgICAgICAgYXV0b0ZpdE92ZXJmbG93T2Zmc2V0XG4gICAgICApO1xuXG4gICAgICBpZiAoIXRoaXMuI2NvbmZpZy5lbmFibGVBdXRvRml0KSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBpZiAoIWlzQWZmaXhlZEVsZW1lbnRGdWxseVZpc2libGUpIHtcbiAgICAgICAgcGxhY2VtZW50ID1cbiAgICAgICAgICBhdHRlbXB0cyAlIDIgPT09IDBcbiAgICAgICAgICAgID8gZ2V0SW52ZXJzZVBsYWNlbWVudChwbGFjZW1lbnQpXG4gICAgICAgICAgICA6IGdldE5leHRQbGFjZW1lbnQocGxhY2VtZW50KTtcbiAgICAgIH1cblxuICAgICAgYXR0ZW1wdHMrKztcbiAgICB9IHdoaWxlICghaXNBZmZpeGVkRWxlbWVudEZ1bGx5VmlzaWJsZSAmJiBhdHRlbXB0cyA8IG1heEF0dGVtcHRzKTtcblxuICAgIGlmIChpc0FmZml4ZWRFbGVtZW50RnVsbHlWaXNpYmxlKSB7XG4gICAgICBpZiAodGhpcy4jaXNCYXNlRWxlbWVudFZpc2libGUoKSkge1xuICAgICAgICB0aGlzLiNub3RpZnlQbGFjZW1lbnRDaGFuZ2UocGxhY2VtZW50KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuI25vdGlmeVBsYWNlbWVudENoYW5nZShudWxsKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG9mZnNldDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy4jY29uZmlnLmVuYWJsZUF1dG9GaXQpIHtcbiAgICAgIHRoaXMuI25vdGlmeVBsYWNlbWVudENoYW5nZShudWxsKTtcbiAgICB9XG5cbiAgICAvLyBObyBzdWl0YWJsZSBwbGFjZW1lbnQgd2FzIGZvdW5kLCBzbyByZXZlcnQgdG8gcHJlZmVycmVkIHBsYWNlbWVudC5cbiAgICByZXR1cm4gdGhpcy4jZ2V0UHJlZmVycmVkT2Zmc2V0KHRoaXMuI2NvbmZpZy5wbGFjZW1lbnQpO1xuICB9XG5cbiAgI2dldFJlY3QoYmFzZUVsZW1lbnQ6IEhUTUxFbGVtZW50KTogQWZmaXhSZWN0IHtcbiAgICBjb25zdCBiYXNlRG9tUmVjdCA9IGJhc2VFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgY29uc3QgYmFzZVJlY3Q6IEFmZml4UmVjdCA9IHtcbiAgICAgIHRvcDogYmFzZURvbVJlY3QudG9wLFxuICAgICAgYm90dG9tOiBiYXNlRG9tUmVjdC5ib3R0b20sXG4gICAgICBsZWZ0OiBiYXNlRG9tUmVjdC5sZWZ0LFxuICAgICAgcmlnaHQ6IGJhc2VEb21SZWN0LnJpZ2h0LFxuICAgICAgd2lkdGg6IGJhc2VEb21SZWN0LndpZHRoLFxuICAgICAgaGVpZ2h0OiBiYXNlRG9tUmVjdC5oZWlnaHQsXG4gICAgfTtcblxuICAgIGlmICh0aGlzLiNjb25maWcucG9zaXRpb24gPT09ICdhYnNvbHV0ZScpIHtcbiAgICAgIGNvbnN0IHsgbGVmdCwgdG9wIH0gPSB0aGlzLiN2aWV3cG9ydFJ1bGVyLmdldFZpZXdwb3J0U2Nyb2xsUG9zaXRpb24oKTtcbiAgICAgIGJhc2VSZWN0LnRvcCArPSB0b3A7XG4gICAgICBiYXNlUmVjdC5sZWZ0ICs9IGxlZnQ7XG4gICAgICBiYXNlUmVjdC5ib3R0b20gKz0gdG9wO1xuICAgICAgYmFzZVJlY3QucmlnaHQgKz0gbGVmdDtcbiAgICB9XG5cbiAgICByZXR1cm4gYmFzZVJlY3Q7XG4gIH1cblxuICAjZ2V0UHJlZmVycmVkT2Zmc2V0KHBsYWNlbWVudDogU2t5QWZmaXhQbGFjZW1lbnQpOiBSZXF1aXJlZDxTa3lBZmZpeE9mZnNldD4ge1xuICAgIGlmICghdGhpcy4jYmFzZUVsZW1lbnQpIHtcbiAgICAgIHJldHVybiB7IHRvcDogMCwgbGVmdDogMCwgYm90dG9tOiAwLCByaWdodDogMCB9O1xuICAgIH1cblxuICAgIGNvbnN0IGFmZml4ZWRSZWN0ID0gdGhpcy4jZ2V0UmVjdCh0aGlzLiNhZmZpeGVkRWxlbWVudCk7XG4gICAgY29uc3QgYmFzZVJlY3QgPSB0aGlzLiNnZXRSZWN0KHRoaXMuI2Jhc2VFbGVtZW50KTtcblxuICAgIGNvbnN0IGhvcml6b250YWxBbGlnbm1lbnQgPSB0aGlzLiNjb25maWcuaG9yaXpvbnRhbEFsaWdubWVudDtcbiAgICBjb25zdCB2ZXJ0aWNhbEFsaWdubWVudCA9IHRoaXMuI2NvbmZpZy52ZXJ0aWNhbEFsaWdubWVudDtcbiAgICBjb25zdCBlbmFibGVBdXRvRml0ID0gdGhpcy4jY29uZmlnLmVuYWJsZUF1dG9GaXQ7XG5cbiAgICBsZXQgdG9wOiBudW1iZXI7XG4gICAgbGV0IGxlZnQ6IG51bWJlcjtcblxuICAgIGlmIChwbGFjZW1lbnQgPT09ICdhYm92ZScgfHwgcGxhY2VtZW50ID09PSAnYmVsb3cnKSB7XG4gICAgICBpZiAocGxhY2VtZW50ID09PSAnYWJvdmUnKSB7XG4gICAgICAgIHRvcCA9IGJhc2VSZWN0LnRvcCAtIGFmZml4ZWRSZWN0LmhlaWdodDtcblxuICAgICAgICBzd2l0Y2ggKHZlcnRpY2FsQWxpZ25tZW50KSB7XG4gICAgICAgICAgY2FzZSAndG9wJzpcbiAgICAgICAgICAgIHRvcCA9IHRvcCArIGFmZml4ZWRSZWN0LmhlaWdodDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ21pZGRsZSc6XG4gICAgICAgICAgICB0b3AgPSB0b3AgKyBhZmZpeGVkUmVjdC5oZWlnaHQgLyAyO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnYm90dG9tJzpcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRvcCA9IGJhc2VSZWN0LmJvdHRvbTtcblxuICAgICAgICBzd2l0Y2ggKHZlcnRpY2FsQWxpZ25tZW50KSB7XG4gICAgICAgICAgY2FzZSAndG9wJzpcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnbWlkZGxlJzpcbiAgICAgICAgICAgIHRvcCA9IHRvcCAtIGFmZml4ZWRSZWN0LmhlaWdodCAvIDI7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdib3R0b20nOlxuICAgICAgICAgICAgdG9wID0gdG9wIC0gYWZmaXhlZFJlY3QuaGVpZ2h0O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgc3dpdGNoIChob3Jpem9udGFsQWxpZ25tZW50KSB7XG4gICAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICAgIGxlZnQgPSBiYXNlUmVjdC5sZWZ0O1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ2NlbnRlcic6XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgbGVmdCA9IGJhc2VSZWN0LmxlZnQgKyBiYXNlUmVjdC53aWR0aCAvIDIgLSBhZmZpeGVkUmVjdC53aWR0aCAvIDI7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAncmlnaHQnOlxuICAgICAgICAgIGxlZnQgPSBiYXNlUmVjdC5yaWdodCAtIGFmZml4ZWRSZWN0LndpZHRoO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAocGxhY2VtZW50ID09PSAnbGVmdCcpIHtcbiAgICAgICAgbGVmdCA9IGJhc2VSZWN0LmxlZnQgLSBhZmZpeGVkUmVjdC53aWR0aDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxlZnQgPSBiYXNlUmVjdC5yaWdodDtcbiAgICAgIH1cblxuICAgICAgc3dpdGNoICh2ZXJ0aWNhbEFsaWdubWVudCkge1xuICAgICAgICBjYXNlICd0b3AnOlxuICAgICAgICAgIHRvcCA9IGJhc2VSZWN0LnRvcDtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdtaWRkbGUnOlxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHRvcCA9IGJhc2VSZWN0LnRvcCArIGJhc2VSZWN0LmhlaWdodCAvIDIgLSBhZmZpeGVkUmVjdC5oZWlnaHQgLyAyO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ2JvdHRvbSc6XG4gICAgICAgICAgdG9wID0gYmFzZVJlY3QuYm90dG9tIC0gYWZmaXhlZFJlY3QuaGVpZ2h0O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IG9mZnNldDogUmVxdWlyZWQ8U2t5QWZmaXhPZmZzZXQ+ID0geyB0b3AsIGxlZnQsIGJvdHRvbTogMCwgcmlnaHQ6IDAgfTtcblxuICAgIGlmIChlbmFibGVBdXRvRml0KSB7XG4gICAgICBjb25zdCBhZGp1c3RtZW50cyA9IHRoaXMuI2FkanVzdE9mZnNldFRvT3ZlcmZsb3dQYXJlbnQoXG4gICAgICAgIHsgdG9wLCBsZWZ0IH0sXG4gICAgICAgIHBsYWNlbWVudCxcbiAgICAgICAgdGhpcy4jYmFzZUVsZW1lbnRcbiAgICAgICk7XG4gICAgICBvZmZzZXQudG9wID0gYWRqdXN0bWVudHMudG9wO1xuICAgICAgb2Zmc2V0LmxlZnQgPSBhZGp1c3RtZW50cy5sZWZ0O1xuICAgIH1cblxuICAgIG9mZnNldC5ib3R0b20gPSBvZmZzZXQudG9wICsgYWZmaXhlZFJlY3QuaGVpZ2h0O1xuICAgIG9mZnNldC5yaWdodCA9IG9mZnNldC5sZWZ0ICsgYWZmaXhlZFJlY3Qud2lkdGg7XG5cbiAgICByZXR1cm4gb2Zmc2V0O1xuICB9XG5cbiAgLyoqXG4gICAqIFNsaWdodGx5IGFkanVzdCB0aGUgb2Zmc2V0IHRvIGZpdCB3aXRoaW4gdGhlIHNjcm9sbCBwYXJlbnQncyBib3VuZGFyaWVzIGlmXG4gICAqIHRoZSBhZmZpeGVkIGVsZW1lbnQgd291bGQgb3RoZXJ3aXNlIGJlIGNsaXBwZWQuXG4gICAqL1xuICAjYWRqdXN0T2Zmc2V0VG9PdmVyZmxvd1BhcmVudChcbiAgICBvZmZzZXQ6IHsgdG9wOiBudW1iZXI7IGxlZnQ6IG51bWJlciB9LFxuICAgIHBsYWNlbWVudDogU2t5QWZmaXhQbGFjZW1lbnQsXG4gICAgYmFzZUVsZW1lbnQ6IEhUTUxFbGVtZW50XG4gICk6IHsgdG9wOiBudW1iZXI7IGxlZnQ6IG51bWJlciB9IHtcbiAgICBjb25zdCBwYXJlbnQgPSB0aGlzLiNnZXRBdXRvRml0Q29udGV4dFBhcmVudCgpO1xuICAgIGNvbnN0IHBhcmVudE9mZnNldCA9IGdldEVsZW1lbnRPZmZzZXQoXG4gICAgICBwYXJlbnQsXG4gICAgICB0aGlzLiNjb25maWcuYXV0b0ZpdE92ZXJmbG93T2Zmc2V0XG4gICAgKTtcblxuICAgIGNvbnN0IGFmZml4ZWRSZWN0ID0gdGhpcy4jZ2V0UmVjdCh0aGlzLiNhZmZpeGVkRWxlbWVudCk7XG4gICAgY29uc3QgYmFzZVJlY3QgPSB0aGlzLiNnZXRSZWN0KGJhc2VFbGVtZW50KTtcblxuICAgIC8vIEEgcGl4ZWwgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBsZWV3YXkgYmV0d2VlbiB0aGUgZWRnZSBvZiB0aGUgb3ZlcmZsb3cgcGFyZW50IGFuZCB0aGUgZWRnZVxuICAgIC8vIG9mIHRoZSBiYXNlIGVsZW1lbnQgYmVmb3JlIGl0IGRpc2FwcGVhcnMgZnJvbSB2aWV3LlxuICAgIC8vIElmIHRoZSB2aXNpYmxlIHBvcnRpb24gb2YgdGhlIGJhc2UgZWxlbWVudCBpcyBsZXNzIHRoYW4gdGhpcyBwaXhlbCB2YWx1ZSwgdGhlIGF1dG8tZml0XG4gICAgLy8gZnVuY3Rpb25hbGl0eSBhdHRlbXB0cyB0byBmaW5kIGFub3RoZXIgcGxhY2VtZW50LlxuICAgIGNvbnN0IGRlZmF1bHRQaXhlbFRvbGVyYW5jZSA9IDQwO1xuICAgIGxldCBwaXhlbFRvbGVyYW5jZTogbnVtYmVyO1xuXG4gICAgY29uc3Qgb3JpZ2luYWxPZmZzZXRUb3AgPSBvZmZzZXQudG9wO1xuICAgIGNvbnN0IG9yaWdpbmFsT2Zmc2V0TGVmdCA9IG9mZnNldC5sZWZ0O1xuXG4gICAgc3dpdGNoIChwbGFjZW1lbnQpIHtcbiAgICAgIGNhc2UgJ2Fib3ZlJzpcbiAgICAgIGNhc2UgJ2JlbG93JzpcbiAgICAgICAgLy8gS2VlcCB0aGUgYWZmaXhlZCBlbGVtZW50IHdpdGhpbiB0aGUgb3ZlcmZsb3cgcGFyZW50LlxuICAgICAgICBpZiAob2Zmc2V0LmxlZnQgPCBwYXJlbnRPZmZzZXQubGVmdCkge1xuICAgICAgICAgIG9mZnNldC5sZWZ0ID0gcGFyZW50T2Zmc2V0LmxlZnQ7XG4gICAgICAgIH0gZWxzZSBpZiAob2Zmc2V0LmxlZnQgKyBhZmZpeGVkUmVjdC53aWR0aCA+IHBhcmVudE9mZnNldC5yaWdodCkge1xuICAgICAgICAgIG9mZnNldC5sZWZ0ID0gcGFyZW50T2Zmc2V0LnJpZ2h0IC0gYWZmaXhlZFJlY3Qud2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBVc2UgYSBzbWFsbGVyIHBpeGVsIHRvbGVyYW5jZSBpZiB0aGUgYmFzZSBlbGVtZW50IHdpZHRoIGlzIGxlc3MgdGhhbiB0aGUgZGVmYXVsdC5cbiAgICAgICAgcGl4ZWxUb2xlcmFuY2UgPSBNYXRoLm1pbihkZWZhdWx0UGl4ZWxUb2xlcmFuY2UsIGJhc2VSZWN0LndpZHRoKTtcblxuICAgICAgICAvLyBNYWtlIHN1cmUgdGhlIGFmZml4ZWQgZWxlbWVudCBuZXZlciBkZXRhY2hlcyBmcm9tIHRoZSBiYXNlIGVsZW1lbnQuXG4gICAgICAgIGlmIChcbiAgICAgICAgICBvZmZzZXQubGVmdCArIHBpeGVsVG9sZXJhbmNlID4gYmFzZVJlY3QucmlnaHQgfHxcbiAgICAgICAgICBvZmZzZXQubGVmdCArIGFmZml4ZWRSZWN0LndpZHRoIC0gcGl4ZWxUb2xlcmFuY2UgPCBiYXNlUmVjdC5sZWZ0XG4gICAgICAgICkge1xuICAgICAgICAgIG9mZnNldC5sZWZ0ID0gb3JpZ2luYWxPZmZzZXRMZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgY2FzZSAncmlnaHQnOlxuICAgICAgICAvLyBLZWVwIHRoZSBhZmZpeGVkIGVsZW1lbnQgd2l0aGluIHRoZSBvdmVyZmxvdyBwYXJlbnQuXG4gICAgICAgIGlmIChvZmZzZXQudG9wIDwgcGFyZW50T2Zmc2V0LnRvcCkge1xuICAgICAgICAgIG9mZnNldC50b3AgPSBwYXJlbnRPZmZzZXQudG9wO1xuICAgICAgICB9IGVsc2UgaWYgKG9mZnNldC50b3AgKyBhZmZpeGVkUmVjdC5oZWlnaHQgPiBwYXJlbnRPZmZzZXQuYm90dG9tKSB7XG4gICAgICAgICAgb2Zmc2V0LnRvcCA9IHBhcmVudE9mZnNldC5ib3R0b20gLSBhZmZpeGVkUmVjdC5oZWlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBVc2UgYSBzbWFsbGVyIHBpeGVsIHRvbGVyYW5jZSBpZiB0aGUgYmFzZSBlbGVtZW50IGhlaWdodCBpcyBsZXNzIHRoYW4gdGhlIGRlZmF1bHQuXG4gICAgICAgIHBpeGVsVG9sZXJhbmNlID0gTWF0aC5taW4oZGVmYXVsdFBpeGVsVG9sZXJhbmNlLCBiYXNlUmVjdC5oZWlnaHQpO1xuXG4gICAgICAgIC8vIE1ha2Ugc3VyZSB0aGUgYWZmaXhlZCBlbGVtZW50IG5ldmVyIGRldGFjaGVzIGZyb20gdGhlIGJhc2UgZWxlbWVudC5cbiAgICAgICAgaWYgKFxuICAgICAgICAgIG9mZnNldC50b3AgKyBwaXhlbFRvbGVyYW5jZSA+IGJhc2VSZWN0LmJvdHRvbSB8fFxuICAgICAgICAgIG9mZnNldC50b3AgKyBhZmZpeGVkUmVjdC5oZWlnaHQgLSBwaXhlbFRvbGVyYW5jZSA8IGJhc2VSZWN0LnRvcFxuICAgICAgICApIHtcbiAgICAgICAgICBvZmZzZXQudG9wID0gb3JpZ2luYWxPZmZzZXRUb3A7XG4gICAgICAgIH1cblxuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICByZXR1cm4gb2Zmc2V0O1xuICB9XG5cbiAgI2dldEltbWVkaWF0ZU92ZXJmbG93UGFyZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy4jb3ZlcmZsb3dQYXJlbnRzWzBdO1xuICB9XG5cbiAgI2dldEF1dG9GaXRDb250ZXh0UGFyZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICBjb25zdCBib2R5RWxlbWVudCA9IHRoaXMuI292ZXJmbG93UGFyZW50c1t0aGlzLiNvdmVyZmxvd1BhcmVudHMubGVuZ3RoIC0gMV07XG5cbiAgICByZXR1cm4gdGhpcy4jY29uZmlnLmF1dG9GaXRDb250ZXh0ID09PSBTa3lBZmZpeEF1dG9GaXRDb250ZXh0Lk92ZXJmbG93UGFyZW50XG4gICAgICA/IHRoaXMuI2dldEltbWVkaWF0ZU92ZXJmbG93UGFyZW50KClcbiAgICAgIDogYm9keUVsZW1lbnQ7XG4gIH1cblxuICAjbm90aWZ5UGxhY2VtZW50Q2hhbmdlKHBsYWNlbWVudDogU2t5QWZmaXhQbGFjZW1lbnQgfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuI2N1cnJlbnRQbGFjZW1lbnQgIT09IHBsYWNlbWVudCkge1xuICAgICAgdGhpcy4jY3VycmVudFBsYWNlbWVudCA9IHBsYWNlbWVudCA/PyB1bmRlZmluZWQ7XG4gICAgICB0aGlzLiNwbGFjZW1lbnRDaGFuZ2UubmV4dCh7XG4gICAgICAgIHBsYWNlbWVudCxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gICNyZXNldCgpOiB2b2lkIHtcbiAgICB0aGlzLiNyZW1vdmVWaWV3cG9ydExpc3RlbmVycygpO1xuXG4gICAgdGhpcy4jb3ZlcmZsb3dQYXJlbnRzID0gW107XG5cbiAgICB0aGlzLiNjb25maWcgPVxuICAgICAgdGhpcy4jYmFzZUVsZW1lbnQgPVxuICAgICAgdGhpcy4jY3VycmVudFBsYWNlbWVudCA9XG4gICAgICB0aGlzLiNjdXJyZW50T2Zmc2V0ID1cbiAgICAgICAgdW5kZWZpbmVkO1xuICB9XG5cbiAgI2lzTmV3T2Zmc2V0KG9mZnNldDogU2t5QWZmaXhPZmZzZXQpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy4jY3VycmVudE9mZnNldCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLiNjdXJyZW50T2Zmc2V0ID0gb2Zmc2V0O1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgdGhpcy4jY3VycmVudE9mZnNldC50b3AgPT09IG9mZnNldC50b3AgJiZcbiAgICAgIHRoaXMuI2N1cnJlbnRPZmZzZXQubGVmdCA9PT0gb2Zmc2V0LmxlZnRcbiAgICApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICB0aGlzLiNjdXJyZW50T2Zmc2V0ID0gb2Zmc2V0O1xuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAjaXNCYXNlRWxlbWVudFZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLiNiYXNlRWxlbWVudCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IGJhc2VSZWN0ID0gdGhpcy4jYmFzZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICByZXR1cm4gaXNPZmZzZXRQYXJ0aWFsbHlWaXNpYmxlV2l0aGluUGFyZW50KFxuICAgICAgdGhpcy4jZ2V0SW1tZWRpYXRlT3ZlcmZsb3dQYXJlbnQoKSxcbiAgICAgIHtcbiAgICAgICAgdG9wOiBiYXNlUmVjdC50b3AsXG4gICAgICAgIGxlZnQ6IGJhc2VSZWN0LmxlZnQsXG4gICAgICAgIHJpZ2h0OiBiYXNlUmVjdC5yaWdodCxcbiAgICAgICAgYm90dG9tOiBiYXNlUmVjdC5ib3R0b20sXG4gICAgICB9LFxuICAgICAgdGhpcy4jY29uZmlnLmF1dG9GaXRPdmVyZmxvd09mZnNldFxuICAgICk7XG4gIH1cblxuICAjYWRkVmlld3BvcnRMaXN0ZW5lcnMoKTogdm9pZCB7XG4gICAgdGhpcy4jdmlld3BvcnRMaXN0ZW5lcnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICAvLyBSZXNpemUgYW5kIG9yaWVudGF0aW9uIGNoYW5nZXMuXG4gICAgdGhpcy4jdmlld3BvcnRMaXN0ZW5lcnMuYWRkKFxuICAgICAgdGhpcy4jdmlld3BvcnRSdWxlci5jaGFuZ2UoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLiNhZmZpeCgpO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy4jdmlld3BvcnRMaXN0ZW5lcnMuYWRkKFxuICAgICAgdGhpcy4jc2Nyb2xsQ2hhbmdlLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuI2FmZml4KCk7XG4gICAgICAgIHRoaXMuI292ZXJmbG93U2Nyb2xsLm5leHQoKTtcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIC8vIExpc3RlbiBmb3Igc2Nyb2xsIGV2ZW50cyBvbiB0aGUgd2luZG93LCB2aXN1YWwgdmlld3BvcnQsIGFuZCBhbnkgb3ZlcmZsb3cgcGFyZW50cy5cbiAgICAvLyBodHRwczovL2RldmVsb3Blci5jaHJvbWUuY29tL2Jsb2cvdmlzdWFsLXZpZXdwb3J0LWFwaS8jZXZlbnRzLW9ubHktZmlyZS13aGVuLXRoZS12aXN1YWwtdmlld3BvcnQtY2hhbmdlc1xuICAgIHRoaXMuI3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgW3dpbmRvdywgd2luZG93LnZpc3VhbFZpZXdwb3J0LCAuLi50aGlzLiNvdmVyZmxvd1BhcmVudHNdLmZvckVhY2goXG4gICAgICAgIChwYXJlbnRFbGVtZW50KSA9PiB7XG4gICAgICAgICAgcGFyZW50RWxlbWVudD8uYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy4jc2Nyb2xsQ2hhbmdlTGlzdGVuZXIpO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgI3JlbW92ZVZpZXdwb3J0TGlzdGVuZXJzKCk6IHZvaWQge1xuICAgIHRoaXMuI3ZpZXdwb3J0TGlzdGVuZXJzPy51bnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy4jem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBbd2luZG93LCB3aW5kb3cudmlzdWFsVmlld3BvcnQsIC4uLnRoaXMuI292ZXJmbG93UGFyZW50c10uZm9yRWFjaChcbiAgICAgICAgKHBhcmVudEVsZW1lbnQpID0+IHtcbiAgICAgICAgICBwYXJlbnRFbGVtZW50Py5yZW1vdmVFdmVudExpc3RlbmVyKFxuICAgICAgICAgICAgJ3Njcm9sbCcsXG4gICAgICAgICAgICB0aGlzLiNzY3JvbGxDaGFuZ2VMaXN0ZW5lclxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -38,7 +38,7 @@ export function getElementOffset(element, bufferOffset) {
38
38
  }
39
39
  export function getOverflowParents(child) {
40
40
  const bodyElement = window.document.body;
41
- const results = [bodyElement];
41
+ const results = [];
42
42
  let parentElement = child?.parentNode;
43
43
  while (parentElement !== undefined &&
44
44
  parentElement !== bodyElement &&
@@ -53,6 +53,7 @@ export function getOverflowParents(child) {
53
53
  }
54
54
  parentElement = parentElement.parentNode;
55
55
  }
56
+ results.push(bodyElement);
56
57
  return results;
57
58
  }
58
59
  /**
@@ -74,4 +75,4 @@ export function isOffsetPartiallyVisibleWithinParent(parent, offset, bufferOffse
74
75
  parentOffset.bottom <= offset.top ||
75
76
  parentOffset.left >= offset.right);
76
77
  }
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvcmUvc3JjL2xpYi9tb2R1bGVzL2FmZml4L2RvbS11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQixDQUM5QixPQUFvQixFQUNwQixZQUE2QjtJQUU3QixNQUFNLGtCQUFrQixHQUFHLFlBQVksRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDO0lBQ3JELE1BQU0sZ0JBQWdCLEdBQUcsWUFBWSxFQUFFLElBQUksSUFBSSxDQUFDLENBQUM7SUFDakQsTUFBTSxpQkFBaUIsR0FBRyxZQUFZLEVBQUUsS0FBSyxJQUFJLENBQUMsQ0FBQztJQUNuRCxNQUFNLGVBQWUsR0FBRyxZQUFZLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUUvQyxJQUFJLEdBQVcsQ0FBQztJQUNoQixJQUFJLElBQVksQ0FBQztJQUNqQixJQUFJLEtBQWEsQ0FBQztJQUNsQixJQUFJLE1BQWMsQ0FBQztJQUVuQixJQUFJLE9BQU8sS0FBSyxRQUFRLENBQUMsSUFBSSxFQUFFO1FBQzdCLElBQUksR0FBRyxDQUFDLENBQUM7UUFDVCxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ1IsS0FBSyxHQUFHLFFBQVEsQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDO1FBQzdDLE1BQU0sR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQztLQUNoRDtTQUFNO1FBQ0wsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDbkQsSUFBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUM7UUFDdkIsR0FBRyxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUM7UUFDckIsS0FBSyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUM7UUFDekIsTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7S0FDNUI7SUFFRCxNQUFNLElBQUksa0JBQWtCLENBQUM7SUFDN0IsSUFBSSxJQUFJLGdCQUFnQixDQUFDO0lBQ3pCLEtBQUssSUFBSSxpQkFBaUIsQ0FBQztJQUMzQixHQUFHLElBQUksZUFBZSxDQUFDO0lBRXZCLE9BQU87UUFDTCxNQUFNO1FBQ04sSUFBSTtRQUNKLEtBQUs7UUFDTCxHQUFHO0tBQ0osQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsS0FBa0I7SUFDbkQsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7SUFDekMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUU5QixJQUFJLGFBQWEsR0FBRyxLQUFLLEVBQUUsVUFBVSxDQUFDO0lBRXRDLE9BQ0UsYUFBYSxLQUFLLFNBQVM7UUFDM0IsYUFBYSxLQUFLLFdBQVc7UUFDN0IsYUFBYSxZQUFZLFdBQVcsRUFDcEM7UUFDQSxNQUFNLFNBQVMsR0FBRyxNQUFNO2FBQ3JCLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUM7YUFDMUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRTNCLElBQ0UsU0FBUyxLQUFLLE1BQU07WUFDcEIsU0FBUyxLQUFLLFFBQVE7WUFDdEIsU0FBUyxLQUFLLFFBQVEsRUFDdEI7WUFDQSxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQzdCO1FBRUQsYUFBYSxHQUFHLGFBQWEsQ0FBQyxVQUFVLENBQUM7S0FDMUM7SUFFRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxnQ0FBZ0MsQ0FDOUMsTUFBbUIsRUFDbkIsTUFBZ0MsRUFDaEMsWUFBNkI7SUFFN0IsTUFBTSxZQUFZLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBRTVELE9BQU8sQ0FBQyxDQUNOLFlBQVksQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLEdBQUc7UUFDN0IsWUFBWSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSztRQUNqQyxZQUFZLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNO1FBQ25DLFlBQVksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FDaEMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsb0NBQW9DLENBQ2xELE1BQW1CLEVBQ25CLE1BQWdDLEVBQ2hDLFlBQTZCO0lBRTdCLE1BQU0sWUFBWSxHQUFHLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsQ0FBQztJQUU1RCxPQUFPLENBQUMsQ0FDTixZQUFZLENBQUMsR0FBRyxJQUFJLE1BQU0sQ0FBQyxNQUFNO1FBQ2pDLFlBQVksQ0FBQyxLQUFLLElBQUksTUFBTSxDQUFDLElBQUk7UUFDakMsWUFBWSxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsR0FBRztRQUNqQyxZQUFZLENBQUMsSUFBSSxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQ2xDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2t5QWZmaXhPZmZzZXQgfSBmcm9tICcuL2FmZml4LW9mZnNldCc7XG5cbi8qKlxuICogUmV0dXJucyB0aGUgb2Zmc2V0IHZhbHVlcyBvZiBhIGdpdmVuIGVsZW1lbnQuXG4gKiBAcGFyYW0gZWxlbWVudCBUaGUgSFRNTCBlbGVtZW50LlxuICogQHBhcmFtIGJ1ZmZlck9mZnNldCBBbiBvcHRpb25hbCBvZmZzZXQgdG8gYWRkL3N1YnRyYWN0IHRvIHRoZSBlbGVtZW50J3MgYWN0dWFsIG9mZnNldC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEVsZW1lbnRPZmZzZXQoXG4gIGVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICBidWZmZXJPZmZzZXQ/OiBTa3lBZmZpeE9mZnNldFxuKTogUmVxdWlyZWQ8U2t5QWZmaXhPZmZzZXQ+IHtcbiAgY29uc3QgYnVmZmVyT2Zmc2V0Qm90dG9tID0gYnVmZmVyT2Zmc2V0Py5ib3R0b20gfHwgMDtcbiAgY29uc3QgYnVmZmVyT2Zmc2V0TGVmdCA9IGJ1ZmZlck9mZnNldD8ubGVmdCB8fCAwO1xuICBjb25zdCBidWZmZXJPZmZzZXRSaWdodCA9IGJ1ZmZlck9mZnNldD8ucmlnaHQgfHwgMDtcbiAgY29uc3QgYnVmZmVyT2Zmc2V0VG9wID0gYnVmZmVyT2Zmc2V0Py50b3AgfHwgMDtcblxuICBsZXQgdG9wOiBudW1iZXI7XG4gIGxldCBsZWZ0OiBudW1iZXI7XG4gIGxldCByaWdodDogbnVtYmVyO1xuICBsZXQgYm90dG9tOiBudW1iZXI7XG5cbiAgaWYgKGVsZW1lbnQgPT09IGRvY3VtZW50LmJvZHkpIHtcbiAgICBsZWZ0ID0gMDtcbiAgICB0b3AgPSAwO1xuICAgIHJpZ2h0ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoO1xuICAgIGJvdHRvbSA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQ7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgY2xpZW50UmVjdCA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgbGVmdCA9IGNsaWVudFJlY3QubGVmdDtcbiAgICB0b3AgPSBjbGllbnRSZWN0LnRvcDtcbiAgICByaWdodCA9IGNsaWVudFJlY3QucmlnaHQ7XG4gICAgYm90dG9tID0gY2xpZW50UmVjdC5ib3R0b207XG4gIH1cblxuICBib3R0b20gLT0gYnVmZmVyT2Zmc2V0Qm90dG9tO1xuICBsZWZ0ICs9IGJ1ZmZlck9mZnNldExlZnQ7XG4gIHJpZ2h0IC09IGJ1ZmZlck9mZnNldFJpZ2h0O1xuICB0b3AgKz0gYnVmZmVyT2Zmc2V0VG9wO1xuXG4gIHJldHVybiB7XG4gICAgYm90dG9tLFxuICAgIGxlZnQsXG4gICAgcmlnaHQsXG4gICAgdG9wLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0T3ZlcmZsb3dQYXJlbnRzKGNoaWxkOiBIVE1MRWxlbWVudCk6IEhUTUxFbGVtZW50W10ge1xuICBjb25zdCBib2R5RWxlbWVudCA9IHdpbmRvdy5kb2N1bWVudC5ib2R5O1xuICBjb25zdCByZXN1bHRzID0gW2JvZHlFbGVtZW50XTtcblxuICBsZXQgcGFyZW50RWxlbWVudCA9IGNoaWxkPy5wYXJlbnROb2RlO1xuXG4gIHdoaWxlIChcbiAgICBwYXJlbnRFbGVtZW50ICE9PSB1bmRlZmluZWQgJiZcbiAgICBwYXJlbnRFbGVtZW50ICE9PSBib2R5RWxlbWVudCAmJlxuICAgIHBhcmVudEVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudFxuICApIHtcbiAgICBjb25zdCBvdmVyZmxvd1kgPSB3aW5kb3dcbiAgICAgIC5nZXRDb21wdXRlZFN0eWxlKHBhcmVudEVsZW1lbnQsIHVuZGVmaW5lZClcbiAgICAgIC5vdmVyZmxvd1kudG9Mb3dlckNhc2UoKTtcblxuICAgIGlmIChcbiAgICAgIG92ZXJmbG93WSA9PT0gJ2F1dG8nIHx8XG4gICAgICBvdmVyZmxvd1kgPT09ICdoaWRkZW4nIHx8XG4gICAgICBvdmVyZmxvd1kgPT09ICdzY3JvbGwnXG4gICAgKSB7XG4gICAgICByZXN1bHRzLnB1c2gocGFyZW50RWxlbWVudCk7XG4gICAgfVxuXG4gICAgcGFyZW50RWxlbWVudCA9IHBhcmVudEVsZW1lbnQucGFyZW50Tm9kZTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHRzO1xufVxuXG4vKipcbiAqIENvbmZpcm1zIG9mZnNldCBpcyBmdWxseSB2aXNpYmxlIHdpdGhpbiBhIHBhcmVudCBlbGVtZW50LlxuICogQHBhcmFtIHBhcmVudFxuICogQHBhcmFtIG9mZnNldFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNPZmZzZXRGdWxseVZpc2libGVXaXRoaW5QYXJlbnQoXG4gIHBhcmVudDogSFRNTEVsZW1lbnQsXG4gIG9mZnNldDogUmVxdWlyZWQ8U2t5QWZmaXhPZmZzZXQ+LFxuICBidWZmZXJPZmZzZXQ/OiBTa3lBZmZpeE9mZnNldFxuKTogYm9vbGVhbiB7XG4gIGNvbnN0IHBhcmVudE9mZnNldCA9IGdldEVsZW1lbnRPZmZzZXQocGFyZW50LCBidWZmZXJPZmZzZXQpO1xuXG4gIHJldHVybiAhKFxuICAgIHBhcmVudE9mZnNldC50b3AgPiBvZmZzZXQudG9wIHx8XG4gICAgcGFyZW50T2Zmc2V0LnJpZ2h0IDwgb2Zmc2V0LnJpZ2h0IHx8XG4gICAgcGFyZW50T2Zmc2V0LmJvdHRvbSA8IG9mZnNldC5ib3R0b20gfHxcbiAgICBwYXJlbnRPZmZzZXQubGVmdCA+IG9mZnNldC5sZWZ0XG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc09mZnNldFBhcnRpYWxseVZpc2libGVXaXRoaW5QYXJlbnQoXG4gIHBhcmVudDogSFRNTEVsZW1lbnQsXG4gIG9mZnNldDogUmVxdWlyZWQ8U2t5QWZmaXhPZmZzZXQ+LFxuICBidWZmZXJPZmZzZXQ/OiBTa3lBZmZpeE9mZnNldFxuKTogYm9vbGVhbiB7XG4gIGNvbnN0IHBhcmVudE9mZnNldCA9IGdldEVsZW1lbnRPZmZzZXQocGFyZW50LCBidWZmZXJPZmZzZXQpO1xuXG4gIHJldHVybiAhKFxuICAgIHBhcmVudE9mZnNldC50b3AgPj0gb2Zmc2V0LmJvdHRvbSB8fFxuICAgIHBhcmVudE9mZnNldC5yaWdodCA8PSBvZmZzZXQubGVmdCB8fFxuICAgIHBhcmVudE9mZnNldC5ib3R0b20gPD0gb2Zmc2V0LnRvcCB8fFxuICAgIHBhcmVudE9mZnNldC5sZWZ0ID49IG9mZnNldC5yaWdodFxuICApO1xufVxuIl19
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvcmUvc3JjL2xpYi9tb2R1bGVzL2FmZml4L2RvbS11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQixDQUM5QixPQUFvQixFQUNwQixZQUE2QjtJQUU3QixNQUFNLGtCQUFrQixHQUFHLFlBQVksRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDO0lBQ3JELE1BQU0sZ0JBQWdCLEdBQUcsWUFBWSxFQUFFLElBQUksSUFBSSxDQUFDLENBQUM7SUFDakQsTUFBTSxpQkFBaUIsR0FBRyxZQUFZLEVBQUUsS0FBSyxJQUFJLENBQUMsQ0FBQztJQUNuRCxNQUFNLGVBQWUsR0FBRyxZQUFZLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUUvQyxJQUFJLEdBQVcsQ0FBQztJQUNoQixJQUFJLElBQVksQ0FBQztJQUNqQixJQUFJLEtBQWEsQ0FBQztJQUNsQixJQUFJLE1BQWMsQ0FBQztJQUVuQixJQUFJLE9BQU8sS0FBSyxRQUFRLENBQUMsSUFBSSxFQUFFO1FBQzdCLElBQUksR0FBRyxDQUFDLENBQUM7UUFDVCxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ1IsS0FBSyxHQUFHLFFBQVEsQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDO1FBQzdDLE1BQU0sR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQztLQUNoRDtTQUFNO1FBQ0wsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDbkQsSUFBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUM7UUFDdkIsR0FBRyxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUM7UUFDckIsS0FBSyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUM7UUFDekIsTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7S0FDNUI7SUFFRCxNQUFNLElBQUksa0JBQWtCLENBQUM7SUFDN0IsSUFBSSxJQUFJLGdCQUFnQixDQUFDO0lBQ3pCLEtBQUssSUFBSSxpQkFBaUIsQ0FBQztJQUMzQixHQUFHLElBQUksZUFBZSxDQUFDO0lBRXZCLE9BQU87UUFDTCxNQUFNO1FBQ04sSUFBSTtRQUNKLEtBQUs7UUFDTCxHQUFHO0tBQ0osQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsS0FBa0I7SUFDbkQsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7SUFDekMsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDO0lBRW5CLElBQUksYUFBYSxHQUFHLEtBQUssRUFBRSxVQUFVLENBQUM7SUFFdEMsT0FDRSxhQUFhLEtBQUssU0FBUztRQUMzQixhQUFhLEtBQUssV0FBVztRQUM3QixhQUFhLFlBQVksV0FBVyxFQUNwQztRQUNBLE1BQU0sU0FBUyxHQUFHLE1BQU07YUFDckIsZ0JBQWdCLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQzthQUMxQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFM0IsSUFDRSxTQUFTLEtBQUssTUFBTTtZQUNwQixTQUFTLEtBQUssUUFBUTtZQUN0QixTQUFTLEtBQUssUUFBUSxFQUN0QjtZQUNBLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDN0I7UUFFRCxhQUFhLEdBQUcsYUFBYSxDQUFDLFVBQVUsQ0FBQztLQUMxQztJQUVELE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFMUIsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsZ0NBQWdDLENBQzlDLE1BQW1CLEVBQ25CLE1BQWdDLEVBQ2hDLFlBQTZCO0lBRTdCLE1BQU0sWUFBWSxHQUFHLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsQ0FBQztJQUU1RCxPQUFPLENBQUMsQ0FDTixZQUFZLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHO1FBQzdCLFlBQVksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUs7UUFDakMsWUFBWSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTTtRQUNuQyxZQUFZLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQ2hDLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLG9DQUFvQyxDQUNsRCxNQUFtQixFQUNuQixNQUFnQyxFQUNoQyxZQUE2QjtJQUU3QixNQUFNLFlBQVksR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFFNUQsT0FBTyxDQUFDLENBQ04sWUFBWSxDQUFDLEdBQUcsSUFBSSxNQUFNLENBQUMsTUFBTTtRQUNqQyxZQUFZLENBQUMsS0FBSyxJQUFJLE1BQU0sQ0FBQyxJQUFJO1FBQ2pDLFlBQVksQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLEdBQUc7UUFDakMsWUFBWSxDQUFDLElBQUksSUFBSSxNQUFNLENBQUMsS0FBSyxDQUNsQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNreUFmZml4T2Zmc2V0IH0gZnJvbSAnLi9hZmZpeC1vZmZzZXQnO1xuXG4vKipcbiAqIFJldHVybnMgdGhlIG9mZnNldCB2YWx1ZXMgb2YgYSBnaXZlbiBlbGVtZW50LlxuICogQHBhcmFtIGVsZW1lbnQgVGhlIEhUTUwgZWxlbWVudC5cbiAqIEBwYXJhbSBidWZmZXJPZmZzZXQgQW4gb3B0aW9uYWwgb2Zmc2V0IHRvIGFkZC9zdWJ0cmFjdCB0byB0aGUgZWxlbWVudCdzIGFjdHVhbCBvZmZzZXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRFbGVtZW50T2Zmc2V0KFxuICBlbGVtZW50OiBIVE1MRWxlbWVudCxcbiAgYnVmZmVyT2Zmc2V0PzogU2t5QWZmaXhPZmZzZXRcbik6IFJlcXVpcmVkPFNreUFmZml4T2Zmc2V0PiB7XG4gIGNvbnN0IGJ1ZmZlck9mZnNldEJvdHRvbSA9IGJ1ZmZlck9mZnNldD8uYm90dG9tIHx8IDA7XG4gIGNvbnN0IGJ1ZmZlck9mZnNldExlZnQgPSBidWZmZXJPZmZzZXQ/LmxlZnQgfHwgMDtcbiAgY29uc3QgYnVmZmVyT2Zmc2V0UmlnaHQgPSBidWZmZXJPZmZzZXQ/LnJpZ2h0IHx8IDA7XG4gIGNvbnN0IGJ1ZmZlck9mZnNldFRvcCA9IGJ1ZmZlck9mZnNldD8udG9wIHx8IDA7XG5cbiAgbGV0IHRvcDogbnVtYmVyO1xuICBsZXQgbGVmdDogbnVtYmVyO1xuICBsZXQgcmlnaHQ6IG51bWJlcjtcbiAgbGV0IGJvdHRvbTogbnVtYmVyO1xuXG4gIGlmIChlbGVtZW50ID09PSBkb2N1bWVudC5ib2R5KSB7XG4gICAgbGVmdCA9IDA7XG4gICAgdG9wID0gMDtcbiAgICByaWdodCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aDtcbiAgICBib3R0b20gPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0O1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IGNsaWVudFJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGxlZnQgPSBjbGllbnRSZWN0LmxlZnQ7XG4gICAgdG9wID0gY2xpZW50UmVjdC50b3A7XG4gICAgcmlnaHQgPSBjbGllbnRSZWN0LnJpZ2h0O1xuICAgIGJvdHRvbSA9IGNsaWVudFJlY3QuYm90dG9tO1xuICB9XG5cbiAgYm90dG9tIC09IGJ1ZmZlck9mZnNldEJvdHRvbTtcbiAgbGVmdCArPSBidWZmZXJPZmZzZXRMZWZ0O1xuICByaWdodCAtPSBidWZmZXJPZmZzZXRSaWdodDtcbiAgdG9wICs9IGJ1ZmZlck9mZnNldFRvcDtcblxuICByZXR1cm4ge1xuICAgIGJvdHRvbSxcbiAgICBsZWZ0LFxuICAgIHJpZ2h0LFxuICAgIHRvcCxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE92ZXJmbG93UGFyZW50cyhjaGlsZDogSFRNTEVsZW1lbnQpOiBIVE1MRWxlbWVudFtdIHtcbiAgY29uc3QgYm9keUVsZW1lbnQgPSB3aW5kb3cuZG9jdW1lbnQuYm9keTtcbiAgY29uc3QgcmVzdWx0cyA9IFtdO1xuXG4gIGxldCBwYXJlbnRFbGVtZW50ID0gY2hpbGQ/LnBhcmVudE5vZGU7XG5cbiAgd2hpbGUgKFxuICAgIHBhcmVudEVsZW1lbnQgIT09IHVuZGVmaW5lZCAmJlxuICAgIHBhcmVudEVsZW1lbnQgIT09IGJvZHlFbGVtZW50ICYmXG4gICAgcGFyZW50RWxlbWVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50XG4gICkge1xuICAgIGNvbnN0IG92ZXJmbG93WSA9IHdpbmRvd1xuICAgICAgLmdldENvbXB1dGVkU3R5bGUocGFyZW50RWxlbWVudCwgdW5kZWZpbmVkKVxuICAgICAgLm92ZXJmbG93WS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgaWYgKFxuICAgICAgb3ZlcmZsb3dZID09PSAnYXV0bycgfHxcbiAgICAgIG92ZXJmbG93WSA9PT0gJ2hpZGRlbicgfHxcbiAgICAgIG92ZXJmbG93WSA9PT0gJ3Njcm9sbCdcbiAgICApIHtcbiAgICAgIHJlc3VsdHMucHVzaChwYXJlbnRFbGVtZW50KTtcbiAgICB9XG5cbiAgICBwYXJlbnRFbGVtZW50ID0gcGFyZW50RWxlbWVudC5wYXJlbnROb2RlO1xuICB9XG5cbiAgcmVzdWx0cy5wdXNoKGJvZHlFbGVtZW50KTtcblxuICByZXR1cm4gcmVzdWx0cztcbn1cblxuLyoqXG4gKiBDb25maXJtcyBvZmZzZXQgaXMgZnVsbHkgdmlzaWJsZSB3aXRoaW4gYSBwYXJlbnQgZWxlbWVudC5cbiAqIEBwYXJhbSBwYXJlbnRcbiAqIEBwYXJhbSBvZmZzZXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzT2Zmc2V0RnVsbHlWaXNpYmxlV2l0aGluUGFyZW50KFxuICBwYXJlbnQ6IEhUTUxFbGVtZW50LFxuICBvZmZzZXQ6IFJlcXVpcmVkPFNreUFmZml4T2Zmc2V0PixcbiAgYnVmZmVyT2Zmc2V0PzogU2t5QWZmaXhPZmZzZXRcbik6IGJvb2xlYW4ge1xuICBjb25zdCBwYXJlbnRPZmZzZXQgPSBnZXRFbGVtZW50T2Zmc2V0KHBhcmVudCwgYnVmZmVyT2Zmc2V0KTtcblxuICByZXR1cm4gIShcbiAgICBwYXJlbnRPZmZzZXQudG9wID4gb2Zmc2V0LnRvcCB8fFxuICAgIHBhcmVudE9mZnNldC5yaWdodCA8IG9mZnNldC5yaWdodCB8fFxuICAgIHBhcmVudE9mZnNldC5ib3R0b20gPCBvZmZzZXQuYm90dG9tIHx8XG4gICAgcGFyZW50T2Zmc2V0LmxlZnQgPiBvZmZzZXQubGVmdFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNPZmZzZXRQYXJ0aWFsbHlWaXNpYmxlV2l0aGluUGFyZW50KFxuICBwYXJlbnQ6IEhUTUxFbGVtZW50LFxuICBvZmZzZXQ6IFJlcXVpcmVkPFNreUFmZml4T2Zmc2V0PixcbiAgYnVmZmVyT2Zmc2V0PzogU2t5QWZmaXhPZmZzZXRcbik6IGJvb2xlYW4ge1xuICBjb25zdCBwYXJlbnRPZmZzZXQgPSBnZXRFbGVtZW50T2Zmc2V0KHBhcmVudCwgYnVmZmVyT2Zmc2V0KTtcblxuICByZXR1cm4gIShcbiAgICBwYXJlbnRPZmZzZXQudG9wID49IG9mZnNldC5ib3R0b20gfHxcbiAgICBwYXJlbnRPZmZzZXQucmlnaHQgPD0gb2Zmc2V0LmxlZnQgfHxcbiAgICBwYXJlbnRPZmZzZXQuYm90dG9tIDw9IG9mZnNldC50b3AgfHxcbiAgICBwYXJlbnRPZmZzZXQubGVmdCA+PSBvZmZzZXQucmlnaHRcbiAgKTtcbn1cbiJdfQ==
@@ -1,23 +1,17 @@
1
1
  var _SkyResizeObserverMediaQueryService_instances, _SkyResizeObserverMediaQueryService_breakpoints, _SkyResizeObserverMediaQueryService_currentBreakpoint, _SkyResizeObserverMediaQueryService_currentBreakpointObs, _SkyResizeObserverMediaQueryService_ngUnsubscribe, _SkyResizeObserverMediaQueryService_resizeObserverSvc, _SkyResizeObserverMediaQueryService_target, _SkyResizeObserverMediaQueryService_updateBreakpoint, _SkyResizeObserverMediaQueryService_updateResponsiveClasses, _SkyResizeObserverMediaQueryService_removeResponsiveClasses, _SkyResizeObserverMediaQueryService_getClassForBreakpoint, _SkyResizeObserverMediaQueryService_checkBreakpoint, _SkyResizeObserverMediaQueryService_checkWidth;
2
2
  import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
3
- import { Injectable } from '@angular/core';
3
+ import { Injectable, inject } from '@angular/core';
4
4
  import { ReplaySubject, Subject } from 'rxjs';
5
5
  import { takeUntil } from 'rxjs/operators';
6
6
  import { SkyMediaBreakpoints } from '../media-query/media-breakpoints';
7
+ import { SkyResizeObserverService } from './resize-observer.service';
7
8
  import * as i0 from "@angular/core";
8
- import * as i1 from "./resize-observer.service";
9
9
  const DEFAULT_BREAKPOINT = SkyMediaBreakpoints.md;
10
10
  /**
11
11
  * Acts like `SkyMediaQueryService` for a container element, emitting the same responsive breakpoints.
12
12
  */
13
13
  export class SkyResizeObserverMediaQueryService {
14
- /**
15
- * Returns the current breakpoint.
16
- */
17
- get current() {
18
- return __classPrivateFieldGet(this, _SkyResizeObserverMediaQueryService_currentBreakpoint, "f");
19
- }
20
- constructor(resizeObserverSvc) {
14
+ constructor() {
21
15
  _SkyResizeObserverMediaQueryService_instances.add(this);
22
16
  _SkyResizeObserverMediaQueryService_breakpoints.set(this, [
23
17
  {
@@ -40,9 +34,14 @@ export class SkyResizeObserverMediaQueryService {
40
34
  _SkyResizeObserverMediaQueryService_currentBreakpoint.set(this, DEFAULT_BREAKPOINT);
41
35
  _SkyResizeObserverMediaQueryService_currentBreakpointObs.set(this, new ReplaySubject(1));
42
36
  _SkyResizeObserverMediaQueryService_ngUnsubscribe.set(this, new Subject());
43
- _SkyResizeObserverMediaQueryService_resizeObserverSvc.set(this, void 0);
37
+ _SkyResizeObserverMediaQueryService_resizeObserverSvc.set(this, inject(SkyResizeObserverService));
44
38
  _SkyResizeObserverMediaQueryService_target.set(this, void 0);
45
- __classPrivateFieldSet(this, _SkyResizeObserverMediaQueryService_resizeObserverSvc, resizeObserverSvc, "f");
39
+ }
40
+ /**
41
+ * Returns the current breakpoint.
42
+ */
43
+ get current() {
44
+ return __classPrivateFieldGet(this, _SkyResizeObserverMediaQueryService_currentBreakpoint, "f");
46
45
  }
47
46
  ngOnDestroy() {
48
47
  this.unobserve();
@@ -131,9 +130,9 @@ _SkyResizeObserverMediaQueryService_breakpoints = new WeakMap(), _SkyResizeObser
131
130
  __classPrivateFieldGet(this, _SkyResizeObserverMediaQueryService_instances, "m", _SkyResizeObserverMediaQueryService_updateBreakpoint).call(this, breakpoint, updateResponsiveClasses);
132
131
  }
133
132
  };
134
- SkyResizeObserverMediaQueryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyResizeObserverMediaQueryService, deps: [{ token: i1.SkyResizeObserverService }], target: i0.ɵɵFactoryTarget.Injectable });
133
+ SkyResizeObserverMediaQueryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyResizeObserverMediaQueryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
135
134
  SkyResizeObserverMediaQueryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyResizeObserverMediaQueryService });
136
135
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyResizeObserverMediaQueryService, decorators: [{
137
136
  type: Injectable
138
- }], ctorParameters: function () { return [{ type: i1.SkyResizeObserverService }]; } });
139
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLW9ic2VydmVyLW1lZGlhLXF1ZXJ5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29yZS9zcmMvbGliL21vZHVsZXMvcmVzaXplLW9ic2VydmVyL3Jlc2l6ZS1vYnNlcnZlci1tZWRpYS1xdWVyeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFjLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUVsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7QUFLdkUsTUFBTSxrQkFBa0IsR0FBRyxtQkFBbUIsQ0FBQyxFQUFFLENBQUM7QUFFbEQ7O0dBRUc7QUFFSCxNQUFNLE9BQU8sa0NBQWtDO0lBQzdDOztPQUVHO0lBQ0gsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sdUJBQUEsSUFBSSw2REFBbUIsQ0FBQztJQUNqQyxDQUFDO0lBa0NELFlBQVksaUJBQTJDOztRQWhDdkQsMERBR007WUFDSjtnQkFDRSxLQUFLLEVBQUUsQ0FBQyxLQUFhLEVBQVcsRUFBRSxDQUFDLEtBQUssR0FBRyxDQUFDLElBQUksS0FBSyxJQUFJLEdBQUc7Z0JBQzVELElBQUksRUFBRSxtQkFBbUIsQ0FBQyxFQUFFO2FBQzdCO1lBQ0Q7Z0JBQ0UsS0FBSyxFQUFFLENBQUMsS0FBYSxFQUFXLEVBQUUsQ0FBQyxLQUFLLEdBQUcsR0FBRyxJQUFJLEtBQUssSUFBSSxHQUFHO2dCQUM5RCxJQUFJLEVBQUUsbUJBQW1CLENBQUMsRUFBRTthQUM3QjtZQUNEO2dCQUNFLEtBQUssRUFBRSxDQUFDLEtBQWEsRUFBVyxFQUFFLENBQUMsS0FBSyxHQUFHLEdBQUcs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QUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQ2xELENBQUMsMkdBRVcsRUFBYyxFQUFFLHVCQUFpQztJQUMzRCxNQUFNLEtBQUssR0FBSSxFQUFFLENBQUMsYUFBNkIsQ0FBQyxXQUFXLElBQUksQ0FBQyxDQUFDO0lBQ2pFLE1BQU0sVUFBVSxHQUFHLHVCQUFBLElBQUksMEdBQWlCLE1BQXJCLElBQUksRUFBa0IsS0FBSyxDQUFDLENBQUM7SUFFaEQsSUFBSSxVQUFVLEVBQUU7UUFDZCx1QkFBQSxJQUFJLDJHQUFrQixNQUF0QixJQUFJLEVBQW1CLFVBQVUsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO0tBQzdEO0FBQ0gsQ0FBQzsrSEF4S1Usa0NBQWtDO21JQUFsQyxrQ0FBa0M7MkZBQWxDLGtDQUFrQztrQkFEOUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYsIEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBSZXBsYXlTdWJqZWN0LCBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5TWVkaWFCcmVha3BvaW50cyB9IGZyb20gJy4uL21lZGlhLXF1ZXJ5L21lZGlhLWJyZWFrcG9pbnRzJztcbmltcG9ydCB7IFNreU1lZGlhUXVlcnlMaXN0ZW5lciB9IGZyb20gJy4uL21lZGlhLXF1ZXJ5L21lZGlhLXF1ZXJ5LWxpc3RlbmVyJztcblxuaW1wb3J0IHsgU2t5UmVzaXplT2JzZXJ2ZXJTZXJ2aWNlIH0gZnJvbSAnLi9yZXNpemUtb2JzZXJ2ZXIuc2VydmljZSc7XG5cbmNvbnN0IERFRkFVTFRfQlJFQUtQT0lOVCA9IFNreU1lZGlhQnJlYWtwb2ludHMubWQ7XG5cbi8qKlxuICogQWN0cyBsaWtlIGBTa3lNZWRpYVF1ZXJ5U2VydmljZWAgZm9yIGEgY29udGFpbmVyIGVsZW1lbnQsIGVtaXR0aW5nIHRoZSBzYW1lIHJlc3BvbnNpdmUgYnJlYWtwb2ludHMuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTa3lSZXNpemVPYnNlcnZlck1lZGlhUXVlcnlTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGN1cnJlbnQgYnJlYWtwb2ludC5cbiAgICovXG4gIHB1YmxpYyBnZXQgY3VycmVudCgpOiBTa3lNZWRpYUJyZWFrcG9pbnRzIHtcbiAgICByZXR1cm4gdGhpcy4jY3VycmVudEJyZWFrcG9pbnQ7XG4gIH1cblxuICAjYnJlYWtwb2ludHM6IHtcbiAgICBjaGVjazogKHdpZHRoOiBudW1iZXIpID0+IGJvb2xlYW47XG4gICAgbmFtZTogU2t5TWVkaWFCcmVha3BvaW50cztcbiAgfVtdID0gW1xuICAgIHtcbiAgICAgIGNoZWNrOiAod2lkdGg6IG51bWJlcik6IGJvb2xlYW4gPT4gd2lkdGggPiAwICYmIHdpZHRoIDw9IDc2NyxcbiAgICAgIG5hbWU6IFNreU1lZGlhQnJlYWtwb2ludHMueHMsXG4gICAgfSxcbiAgICB7XG4gICAgICBjaGVjazogKHdpZHRoOiBudW1iZXIpOiBib29sZWFuID0+IHdpZHRoID4gNzY3ICYmIHdpZHRoIDw9IDk5MSxcbiAgICAgIG5hbWU6IFNreU1lZGlhQnJlYWtwb2ludHMuc20sXG4gICAgfSxcbiAgICB7XG4gICAgICBjaGVjazogKHdpZHRoOiBudW1iZXIpOiBib29sZWFuID0+IHdpZHRoID4gOTkxICYmIHdpZHRoIDw9IDExOTksXG4gICAgICBuYW1lOiBTa3lNZWRpYUJyZWFrcG9pbnRzLm1kLFxuICAgIH0sXG4gICAge1xuICAgICAgY2hlY2s6ICh3aWR0aDogbnVtYmVyKTogYm9vbGVhbiA9PiB3aWR0aCA+IDExOTksXG4gICAgICBuYW1lOiBTa3lNZWRpYUJyZWFrcG9pbnRzLmxnLFxuICAgIH0sXG4gIF07XG5cbiAgI2N1cnJlbnRCcmVha3BvaW50OiBTa3lNZWRpYUJyZWFrcG9pbnRzID0gREVGQVVMVF9CUkVBS1BPSU5UO1xuXG4gICNjdXJyZW50QnJlYWtwb2ludE9icyA9IG5ldyBSZXBsYXlTdWJqZWN0PFNreU1lZGlhQnJlYWtwb2ludHM+KDEpO1xuXG4gICNuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAjcmVzaXplT2JzZXJ2ZXJTdmM6IFNreVJlc2l6ZU9ic2VydmVyU2VydmljZTtcblxuICAjdGFyZ2V0OiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKHJlc2l6ZU9ic2VydmVyU3ZjOiBTa3lSZXNpemVPYnNlcnZlclNlcnZpY2UpIHtcbiAgICB0aGlzLiNyZXNpemVPYnNlcnZlclN2YyA9IHJlc2l6ZU9ic2VydmVyU3ZjO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMudW5vYnNlcnZlKCk7XG5cbiAgICB0aGlzLiN0YXJnZXQgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy4jY3VycmVudEJyZWFrcG9pbnRPYnMuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBkZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMubmdPbkRlc3Ryb3koKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBjb250YWluZXIgZWxlbWVudCB0byB3YXRjaC4gVGhlIGBTa3lSZXNpemVPYnNlcnZlck1lZGlhUXVlcnlTZXJ2aWNlYCB3aWxsIG9ubHkgb2JzZXJ2ZSBvbmUgZWxlbWVudCBhdCBhXG4gICAqIHRpbWUuIEFueSBwcmV2aW91cyBzdWJzY3JpcHRpb25zIHdpbGwgYmUgdW5zdWJzY3JpYmVkIHdoZW4gYSBuZXcgZWxlbWVudCBpcyBvYnNlcnZlZC5cbiAgICovXG4gIHB1YmxpYyBvYnNlcnZlKFxuICAgIGVsZW1lbnQ6IEVsZW1lbnRSZWYsXG4gICAgb3B0aW9ucz86IHtcbiAgICAgIHVwZGF0ZVJlc3BvbnNpdmVDbGFzc2VzPzogYm9vbGVhbjtcbiAgICB9XG4gICk6IFNreVJlc2l6ZU9ic2VydmVyTWVkaWFRdWVyeVNlcnZpY2Uge1xuICAgIGlmICh0aGlzLiN0YXJnZXQpIHtcbiAgICAgIGlmICh0aGlzLiN0YXJnZXQgPT09IGVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9XG5cbiAgICAgIHRoaXMudW5vYnNlcnZlKCk7XG4gICAgfVxuXG4gICAgdGhpcy4jdGFyZ2V0ID0gZWxlbWVudDtcblxuICAgIHRoaXMuI2NoZWNrV2lkdGgoZWxlbWVudCwgb3B0aW9ucz8udXBkYXRlUmVzcG9uc2l2ZUNsYXNzZXMpO1xuXG4gICAgdGhpcy4jcmVzaXplT2JzZXJ2ZXJTdmNcbiAgICAgIC5vYnNlcnZlKGVsZW1lbnQpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICBjb25zdCBicmVha3BvaW50ID0gdGhpcy4jY2hlY2tCcmVha3BvaW50KHZhbHVlLmNvbnRlbnRSZWN0LndpZHRoKTtcbiAgICAgICAgaWYgKGJyZWFrcG9pbnQpIHtcbiAgICAgICAgICB0aGlzLiN1cGRhdGVCcmVha3BvaW50KGJyZWFrcG9pbnQsIG9wdGlvbnM/LnVwZGF0ZVJlc3BvbnNpdmVDbGFzc2VzKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU3RvcCB3YXRjaGluZyB0aGUgY29udGFpbmVyIGVsZW1lbnQgYW5kIHJlbW92ZSBhbnkgYWRkZWQgY2xhc3Nlcy5cbiAgICovXG4gIHB1YmxpYyB1bm9ic2VydmUoKTogdm9pZCB7XG4gICAgdGhpcy4jcmVtb3ZlUmVzcG9uc2l2ZUNsYXNzZXMoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvKipcbiAgICogU3Vic2NyaWJlcyB0byBlbGVtZW50IHNpemUgY2hhbmdlcyB0aGF0IGNyb3NzIGJyZWFrcG9pbnRzLlxuICAgKi9cbiAgcHVibGljIHN1YnNjcmliZShsaXN0ZW5lcjogU2t5TWVkaWFRdWVyeUxpc3RlbmVyKTogU3Vic2NyaXB0aW9uIHtcbiAgICByZXR1cm4gdGhpcy4jY3VycmVudEJyZWFrcG9pbnRPYnNcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgIGxpc3RlbmVyKHZhbHVlKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgI3VwZGF0ZUJyZWFrcG9pbnQoXG4gICAgYnJlYWtwb2ludDogU2t5TWVkaWFCcmVha3BvaW50cyxcbiAgICB1cGRhdGVSZXNwb25zaXZlQ2xhc3Nlcz86IGJvb2xlYW5cbiAgKTogdm9pZCB7XG4gICAgaWYgKHVwZGF0ZVJlc3BvbnNpdmVDbGFzc2VzKSB7XG4gICAgICB0aGlzLiN1cGRhdGVSZXNwb25zaXZlQ2xhc3Nlcyh0aGlzLmN1cnJlbnQsIGJyZWFrcG9pbnQpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmN1cnJlbnQgIT09IGJyZWFrcG9pbnQpIHtcbiAgICAgIHRoaXMuI2N1cnJlbnRCcmVha3BvaW50T2JzLm5leHQoYnJlYWtwb2ludCk7XG4gICAgfVxuICAgIHRoaXMuI2N1cnJlbnRCcmVha3BvaW50ID0gYnJlYWtwb2ludDtcbiAgfVxuXG4gICN1cGRhdGVSZXNwb25zaXZlQ2xhc3NlcyhcbiAgICBvbGRCcmVha3BvaW50OiBTa3lNZWRpYUJyZWFrcG9pbnRzLFxuICAgIG5ld0JyZWFrcG9pbnQ6IFNreU1lZGlhQnJlYWtwb2ludHNcbiAgKTogdm9pZCB7XG4gICAgY29uc3Qgb2xkQ2xhc3MgPSB0aGlzLiNnZXRDbGFzc0ZvckJyZWFrcG9pbnQob2xkQnJlYWtwb2ludCk7XG4gICAgY29uc3QgbmV3Q2xhc3MgPSB0aGlzLiNnZXRDbGFzc0ZvckJyZWFrcG9pbnQobmV3QnJlYWtwb2ludCk7XG5cbiAgICBjb25zdCB0YXJnZXRDbGFzc0xpc3QgPSB0aGlzLiN0YXJnZXQ/Lm5hdGl2ZUVsZW1lbnQ/LmNsYXNzTGlzdDtcblxuICAgIHRhcmdldENsYXNzTGlzdD8ucmVtb3ZlKG9sZENsYXNzKTtcbiAgICB0YXJnZXRDbGFzc0xpc3Q/LmFkZChuZXdDbGFzcyk7XG4gIH1cblxuICAjcmVtb3ZlUmVzcG9uc2l2ZUNsYXNzZXMoKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBicmVha3BvaW50IG9mIE9iamVjdC52YWx1ZXMoU2t5TWVkaWFCcmVha3BvaW50cykpIHtcbiAgICAgIGlmICh0eXBlb2YgYnJlYWtwb2ludCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgY29uc3QgY2xhc3NOYW1lID0gdGhpcy4jZ2V0Q2xhc3NGb3JCcmVha3BvaW50KGJyZWFrcG9pbnQpO1xuXG4gICAgICAgIHRoaXMuI3RhcmdldD8ubmF0aXZlRWxlbWVudD8uY2xhc3NMaXN0Py5yZW1vdmUoY2xhc3NOYW1lKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAjZ2V0Q2xhc3NGb3JCcmVha3BvaW50KGJyZWFrcG9pbnQ6IFNreU1lZGlhQnJlYWtwb2ludHMpOiBzdHJpbmcge1xuICAgIHJldHVybiBgc2t5LXJlc3BvbnNpdmUtY29udGFpbmVyLSR7U2t5TWVkaWFCcmVha3BvaW50c1ticmVha3BvaW50XX1gO1xuICB9XG5cbiAgI2NoZWNrQnJlYWtwb2ludCh3aWR0aDogbnVtYmVyKTogU2t5TWVkaWFCcmVha3BvaW50cyB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgYnJlYWtwb2ludCA9IHRoaXMuI2JyZWFrcG9pbnRzLmZpbmQoKGJyZWFrcG9pbnQpID0+XG4gICAgICBicmVha3BvaW50LmNoZWNrKHdpZHRoKVxuICAgICk7XG5cbiAgICByZXR1cm4gYnJlYWtwb2ludCA/IGJyZWFrcG9pbnQubmFtZSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gICNjaGVja1dpZHRoKGVsOiBFbGVtZW50UmVmLCB1cGRhdGVSZXNwb25zaXZlQ2xhc3Nlcz86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBjb25zdCB3aWR0aCA9IChlbC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5vZmZzZXRXaWR0aCB8fCAwO1xuICAgIGNvbnN0IGJyZWFrcG9pbnQgPSB0aGlzLiNjaGVja0JyZWFrcG9pbnQod2lkdGgpO1xuXG4gICAgaWYgKGJyZWFrcG9pbnQpIHtcbiAgICAgIHRoaXMuI3VwZGF0ZUJyZWFrcG9pbnQoYnJlYWtwb2ludCwgdXBkYXRlUmVzcG9uc2l2ZUNsYXNzZXMpO1xuICAgIH1cbiAgfVxufVxuIl19
137
+ }] });
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLW9ic2VydmVyLW1lZGlhLXF1ZXJ5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29yZS9zcmMvbGliL21vZHVsZXMvcmVzaXplLW9ic2VydmVyL3Jlc2l6ZS1vYnNlcnZlci1tZWRpYS1xdWVyeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFjLFVBQVUsRUFBYSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQzVELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUd2RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUFFckUsTUFBTSxrQkFBa0IsR0FBRyxtQkFBbUIsQ0FBQyxFQUFFLENBQUM7QUFFbEQ7O0dBRUc7QUFFSCxNQUFNLE9BQU8sa0NBQWtDO0lBRC9DOztRQVNFLDBEQUdNO1lBQ0o7Z0JBQ0UsS0FBSyxFQUFFLENBQUMsS0FBYSxFQUFXLEVBQUUsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxJQUFJLEtBQUssSUFBSSxHQUFHO2dCQUM1RCxJQUFJLEVBQUUsbUJBQW1CLENBQUMsRUFBRTthQUM3QjtZQUNEO2dCQUNFLEtBQUssRUFBRSxDQUFDLEtBQWEsRUFBVyxFQUFFLENBQUMsS0FBSyxHQUFHLEdBQUcsSUFBSSxLQUFLLElBQUksR0FBRztnQkFDOUQsSUFBSSxFQUFFLG1CQUFtQixDQUFDLEVBQUU7YUFDN0I7WUFDRDtnQkFDRSxLQUFLLEVBQUUsQ0FBQyxLQUFhLEVBQVcsRUFBRSxDQUFDLEtBQUssR0FBRyxHQUFHLElBQUksS0FBSyxJQUFJLElBQUk7Z0JBQy9ELElBQUks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LE9BQU8sVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7QUFDbEQsQ0FBQywyR0FFVyxFQUFjLEVBQUUsdUJBQWlDO0lBQzNELE1BQU0sS0FBSyxHQUFJLEVBQUUsQ0FBQyxhQUE2QixDQUFDLFdBQVcsSUFBSSxDQUFDLENBQUM7SUFDakUsTUFBTSxVQUFVLEdBQUcsdUJBQUEsSUFBSSwwR0FBaUIsTUFBckIsSUFBSSxFQUFrQixLQUFLLENBQUMsQ0FBQztJQUVoRCxJQUFJLFVBQVUsRUFBRTtRQUNkLHVCQUFBLElBQUksMkdBQWtCLE1BQXRCLElBQUksRUFBbUIsVUFBVSxFQUFFLHVCQUF1QixDQUFDLENBQUM7S0FDN0Q7QUFDSCxDQUFDOytIQXBLVSxrQ0FBa0M7bUlBQWxDLGtDQUFrQzsyRkFBbEMsa0NBQWtDO2tCQUQ5QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgSW5qZWN0YWJsZSwgT25EZXN0cm95LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgUmVwbGF5U3ViamVjdCwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreU1lZGlhQnJlYWtwb2ludHMgfSBmcm9tICcuLi9tZWRpYS1xdWVyeS9tZWRpYS1icmVha3BvaW50cyc7XG5pbXBvcnQgeyBTa3lNZWRpYVF1ZXJ5TGlzdGVuZXIgfSBmcm9tICcuLi9tZWRpYS1xdWVyeS9tZWRpYS1xdWVyeS1saXN0ZW5lcic7XG5cbmltcG9ydCB7IFNreVJlc2l6ZU9ic2VydmVyU2VydmljZSB9IGZyb20gJy4vcmVzaXplLW9ic2VydmVyLnNlcnZpY2UnO1xuXG5jb25zdCBERUZBVUxUX0JSRUFLUE9JTlQgPSBTa3lNZWRpYUJyZWFrcG9pbnRzLm1kO1xuXG4vKipcbiAqIEFjdHMgbGlrZSBgU2t5TWVkaWFRdWVyeVNlcnZpY2VgIGZvciBhIGNvbnRhaW5lciBlbGVtZW50LCBlbWl0dGluZyB0aGUgc2FtZSByZXNwb25zaXZlIGJyZWFrcG9pbnRzLlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2t5UmVzaXplT2JzZXJ2ZXJNZWRpYVF1ZXJ5U2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IGJyZWFrcG9pbnQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGN1cnJlbnQoKTogU2t5TWVkaWFCcmVha3BvaW50cyB7XG4gICAgcmV0dXJuIHRoaXMuI2N1cnJlbnRCcmVha3BvaW50O1xuICB9XG5cbiAgI2JyZWFrcG9pbnRzOiB7XG4gICAgY2hlY2s6ICh3aWR0aDogbnVtYmVyKSA9PiBib29sZWFuO1xuICAgIG5hbWU6IFNreU1lZGlhQnJlYWtwb2ludHM7XG4gIH1bXSA9IFtcbiAgICB7XG4gICAgICBjaGVjazogKHdpZHRoOiBudW1iZXIpOiBib29sZWFuID0+IHdpZHRoID4gMCAmJiB3aWR0aCA8PSA3NjcsXG4gICAgICBuYW1lOiBTa3lNZWRpYUJyZWFrcG9pbnRzLnhzLFxuICAgIH0sXG4gICAge1xuICAgICAgY2hlY2s6ICh3aWR0aDogbnVtYmVyKTogYm9vbGVhbiA9PiB3aWR0aCA+IDc2NyAmJiB3aWR0aCA8PSA5OTEsXG4gICAgICBuYW1lOiBTa3lNZWRpYUJyZWFrcG9pbnRzLnNtLFxuICAgIH0sXG4gICAge1xuICAgICAgY2hlY2s6ICh3aWR0aDogbnVtYmVyKTogYm9vbGVhbiA9PiB3aWR0aCA+IDk5MSAmJiB3aWR0aCA8PSAxMTk5LFxuICAgICAgbmFtZTogU2t5TWVkaWFCcmVha3BvaW50cy5tZCxcbiAgICB9LFxuICAgIHtcbiAgICAgIGNoZWNrOiAod2lkdGg6IG51bWJlcik6IGJvb2xlYW4gPT4gd2lkdGggPiAxMTk5LFxuICAgICAgbmFtZTogU2t5TWVkaWFCcmVha3BvaW50cy5sZyxcbiAgICB9LFxuICBdO1xuXG4gICNjdXJyZW50QnJlYWtwb2ludDogU2t5TWVkaWFCcmVha3BvaW50cyA9IERFRkFVTFRfQlJFQUtQT0lOVDtcblxuICAjY3VycmVudEJyZWFrcG9pbnRPYnMgPSBuZXcgUmVwbGF5U3ViamVjdDxTa3lNZWRpYUJyZWFrcG9pbnRzPigxKTtcblxuICAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgI3Jlc2l6ZU9ic2VydmVyU3ZjID0gaW5qZWN0KFNreVJlc2l6ZU9ic2VydmVyU2VydmljZSk7XG5cbiAgI3RhcmdldDogRWxlbWVudFJlZiB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy51bm9ic2VydmUoKTtcblxuICAgIHRoaXMuI3RhcmdldCA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLiNjdXJyZW50QnJlYWtwb2ludE9icy5jb21wbGV0ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5uZ09uRGVzdHJveSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGNvbnRhaW5lciBlbGVtZW50IHRvIHdhdGNoLiBUaGUgYFNreVJlc2l6ZU9ic2VydmVyTWVkaWFRdWVyeVNlcnZpY2VgIHdpbGwgb25seSBvYnNlcnZlIG9uZSBlbGVtZW50IGF0IGFcbiAgICogdGltZS4gQW55IHByZXZpb3VzIHN1YnNjcmlwdGlvbnMgd2lsbCBiZSB1bnN1YnNjcmliZWQgd2hlbiBhIG5ldyBlbGVtZW50IGlzIG9ic2VydmVkLlxuICAgKi9cbiAgcHVibGljIG9ic2VydmUoXG4gICAgZWxlbWVudDogRWxlbWVudFJlZixcbiAgICBvcHRpb25zPzoge1xuICAgICAgdXBkYXRlUmVzcG9uc2l2ZUNsYXNzZXM/OiBib29sZWFuO1xuICAgIH1cbiAgKTogU2t5UmVzaXplT2JzZXJ2ZXJNZWRpYVF1ZXJ5U2VydmljZSB7XG4gICAgaWYgKHRoaXMuI3RhcmdldCkge1xuICAgICAgaWYgKHRoaXMuI3RhcmdldCA9PT0gZWxlbWVudCkge1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH1cblxuICAgICAgdGhpcy51bm9ic2VydmUoKTtcbiAgICB9XG5cbiAgICB0aGlzLiN0YXJnZXQgPSBlbGVtZW50O1xuXG4gICAgdGhpcy4jY2hlY2tXaWR0aChlbGVtZW50LCBvcHRpb25zPy51cGRhdGVSZXNwb25zaXZlQ2xhc3Nlcyk7XG5cbiAgICB0aGlzLiNyZXNpemVPYnNlcnZlclN2Y1xuICAgICAgLm9ic2VydmUoZWxlbWVudClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgIGNvbnN0IGJyZWFrcG9pbnQgPSB0aGlzLiNjaGVja0JyZWFrcG9pbnQodmFsdWUuY29udGVudFJlY3Qud2lkdGgpO1xuICAgICAgICBpZiAoYnJlYWtwb2ludCkge1xuICAgICAgICAgIHRoaXMuI3VwZGF0ZUJyZWFrcG9pbnQoYnJlYWtwb2ludCwgb3B0aW9ucz8udXBkYXRlUmVzcG9uc2l2ZUNsYXNzZXMpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTdG9wIHdhdGNoaW5nIHRoZSBjb250YWluZXIgZWxlbWVudCBhbmQgcmVtb3ZlIGFueSBhZGRlZCBjbGFzc2VzLlxuICAgKi9cbiAgcHVibGljIHVub2JzZXJ2ZSgpOiB2b2lkIHtcbiAgICB0aGlzLiNyZW1vdmVSZXNwb25zaXZlQ2xhc3NlcygpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdWJzY3JpYmVzIHRvIGVsZW1lbnQgc2l6ZSBjaGFuZ2VzIHRoYXQgY3Jvc3MgYnJlYWtwb2ludHMuXG4gICAqL1xuICBwdWJsaWMgc3Vic2NyaWJlKGxpc3RlbmVyOiBTa3lNZWRpYVF1ZXJ5TGlzdGVuZXIpOiBTdWJzY3JpcHRpb24ge1xuICAgIHJldHVybiB0aGlzLiNjdXJyZW50QnJlYWtwb2ludE9ic1xuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgbGlzdGVuZXIodmFsdWUpO1xuICAgICAgfSk7XG4gIH1cblxuICAjdXBkYXRlQnJlYWtwb2ludChcbiAgICBicmVha3BvaW50OiBTa3lNZWRpYUJyZWFrcG9pbnRzLFxuICAgIHVwZGF0ZVJlc3BvbnNpdmVDbGFzc2VzPzogYm9vbGVhblxuICApOiB2b2lkIHtcbiAgICBpZiAodXBkYXRlUmVzcG9uc2l2ZUNsYXNzZXMpIHtcbiAgICAgIHRoaXMuI3VwZGF0ZVJlc3BvbnNpdmVDbGFzc2VzKHRoaXMuY3VycmVudCwgYnJlYWtwb2ludCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY3VycmVudCAhPT0gYnJlYWtwb2ludCkge1xuICAgICAgdGhpcy4jY3VycmVudEJyZWFrcG9pbnRPYnMubmV4dChicmVha3BvaW50KTtcbiAgICB9XG4gICAgdGhpcy4jY3VycmVudEJyZWFrcG9pbnQgPSBicmVha3BvaW50O1xuICB9XG5cbiAgI3VwZGF0ZVJlc3BvbnNpdmVDbGFzc2VzKFxuICAgIG9sZEJyZWFrcG9pbnQ6IFNreU1lZGlhQnJlYWtwb2ludHMsXG4gICAgbmV3QnJlYWtwb2ludDogU2t5TWVkaWFCcmVha3BvaW50c1xuICApOiB2b2lkIHtcbiAgICBjb25zdCBvbGRDbGFzcyA9IHRoaXMuI2dldENsYXNzRm9yQnJlYWtwb2ludChvbGRCcmVha3BvaW50KTtcbiAgICBjb25zdCBuZXdDbGFzcyA9IHRoaXMuI2dldENsYXNzRm9yQnJlYWtwb2ludChuZXdCcmVha3BvaW50KTtcblxuICAgIGNvbnN0IHRhcmdldENsYXNzTGlzdCA9IHRoaXMuI3RhcmdldD8ubmF0aXZlRWxlbWVudD8uY2xhc3NMaXN0O1xuXG4gICAgdGFyZ2V0Q2xhc3NMaXN0Py5yZW1vdmUob2xkQ2xhc3MpO1xuICAgIHRhcmdldENsYXNzTGlzdD8uYWRkKG5ld0NsYXNzKTtcbiAgfVxuXG4gICNyZW1vdmVSZXNwb25zaXZlQ2xhc3NlcygpOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IGJyZWFrcG9pbnQgb2YgT2JqZWN0LnZhbHVlcyhTa3lNZWRpYUJyZWFrcG9pbnRzKSkge1xuICAgICAgaWYgKHR5cGVvZiBicmVha3BvaW50ID09PSAnbnVtYmVyJykge1xuICAgICAgICBjb25zdCBjbGFzc05hbWUgPSB0aGlzLiNnZXRDbGFzc0ZvckJyZWFrcG9pbnQoYnJlYWtwb2ludCk7XG5cbiAgICAgICAgdGhpcy4jdGFyZ2V0Py5uYXRpdmVFbGVtZW50Py5jbGFzc0xpc3Q/LnJlbW92ZShjbGFzc05hbWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICNnZXRDbGFzc0ZvckJyZWFrcG9pbnQoYnJlYWtwb2ludDogU2t5TWVkaWFCcmVha3BvaW50cyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBza3ktcmVzcG9uc2l2ZS1jb250YWluZXItJHtTa3lNZWRpYUJyZWFrcG9pbnRzW2JyZWFrcG9pbnRdfWA7XG4gIH1cblxuICAjY2hlY2tCcmVha3BvaW50KHdpZHRoOiBudW1iZXIpOiBTa3lNZWRpYUJyZWFrcG9pbnRzIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBicmVha3BvaW50ID0gdGhpcy4jYnJlYWtwb2ludHMuZmluZCgoYnJlYWtwb2ludCkgPT5cbiAgICAgIGJyZWFrcG9pbnQuY2hlY2sod2lkdGgpXG4gICAgKTtcblxuICAgIHJldHVybiBicmVha3BvaW50ID8gYnJlYWtwb2ludC5uYW1lIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgI2NoZWNrV2lkdGgoZWw6IEVsZW1lbnRSZWYsIHVwZGF0ZVJlc3BvbnNpdmVDbGFzc2VzPzogYm9vbGVhbik6IHZvaWQge1xuICAgIGNvbnN0IHdpZHRoID0gKGVsLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLm9mZnNldFdpZHRoIHx8IDA7XG4gICAgY29uc3QgYnJlYWtwb2ludCA9IHRoaXMuI2NoZWNrQnJlYWtwb2ludCh3aWR0aCk7XG5cbiAgICBpZiAoYnJlYWtwb2ludCkge1xuICAgICAgdGhpcy4jdXBkYXRlQnJlYWtwb2ludChicmVha3BvaW50LCB1cGRhdGVSZXNwb25zaXZlQ2xhc3Nlcyk7XG4gICAgfVxuICB9XG59XG4iXX0=