@colijnit/corecomponents_v12 12.1.7 → 12.1.9

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.
@@ -1,9 +1,19 @@
1
1
  export var FilterItemMode;
2
2
  (function (FilterItemMode) {
3
- FilterItemMode["FilterList"] = "filterList";
3
+ //This mode makes the Filter display a multi select list
4
+ // Input will be passed along directly as a string with the following syntax: "?>='choice 1', ?<='choice2'"
5
+ FilterItemMode["Filterlist"] = "filterlist";
6
+ //This mode makes the Filter display a single select list
7
+ // Input will be passed along directly as a simple string.
4
8
  FilterItemMode["SingleSelectList"] = "singleSelectList";
9
+ //This mode makes the Filter display a multi select list
10
+ // Input will be passed along directly as a simple string.
5
11
  FilterItemMode["SelectListWithStringCollectionOutput"] = "selectListWithStringCollectionOutput";
12
+ //This mode makes the Filter display a multi select list
13
+ // Available choices will need to have their identifying value be a number. The summation of all these numbers will be passed along.
6
14
  FilterItemMode["SelectListWithNumberOutput"] = "selectListWithNumberOutput";
15
+ //This mode makes the Filter display a min and max field. This should eventually be a slider.
16
+ // input is passed along as "min - max"
7
17
  FilterItemMode["Slider"] = "slider";
8
18
  //This mode makes the Filter display a simple textfield.
9
19
  // The value typed into the field will be passed along directly as a string.
@@ -24,7 +34,7 @@ export var FilterItemMode;
24
34
  // It's value will be passed along as either a "?='T'" or and "?='F'".
25
35
  FilterItemMode["CheckboxToText"] = "checkboxToText";
26
36
  //This mode makes the Filter display a simple checkBox.
27
- // It's value will be passed along as either a 'T' or and 'F'.
37
+ // It's value will be passed along as either a 1 or and 0.
28
38
  FilterItemMode["CheckboxToBinary"] = "checkboxToBinary";
29
39
  })(FilterItemMode || (FilterItemMode = {}));
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVySXRlbS1tb2RlLmVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlY29tcG9uZW50cy9zcmMvbGliL2NvcmUvZW51bS9maWx0ZXJJdGVtLW1vZGUuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxjQW9DWDtBQXBDRCxXQUFZLGNBQWM7SUFDeEIsMkNBQXlCLENBQUE7SUFDekIsdURBQXFDLENBQUE7SUFDckMsK0ZBQTZFLENBQUE7SUFDN0UsMkVBQXlELENBQUE7SUFDekQsbUNBQWlCLENBQUE7SUFFakIsd0RBQXdEO0lBQ3hELDRFQUE0RTtJQUM1RSx5Q0FBdUIsQ0FBQTtJQUV2Qix3REFBd0Q7SUFDeEQsOERBQThEO0lBQzlELHlDQUF1QixDQUFBO0lBRXZCLHVEQUF1RDtJQUN2RCxzSEFBc0g7SUFDdEgsbURBQWlDLENBQUE7SUFFakMsdURBQXVEO0lBQ3ZELHlEQUF5RDtJQUN6RCx1Q0FBcUIsQ0FBQTtJQUVyQix1REFBdUQ7SUFDdkQsOERBQThEO0lBQzlELCtEQUE2QyxDQUFBO0lBRTdDLHVEQUF1RDtJQUN2RCxzRUFBc0U7SUFDdEUsbURBQWlDLENBQUE7SUFDakMsdURBQXVEO0lBQ3ZELDhEQUE4RDtJQUM5RCx1REFBcUMsQ0FBQTtBQUl2QyxDQUFDLEVBcENXLGNBQWMsS0FBZCxjQUFjLFFBb0N6QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIEZpbHRlckl0ZW1Nb2RlIHtcclxuICBGaWx0ZXJMaXN0ID0gJ2ZpbHRlckxpc3QnLFxyXG4gIFNpbmdsZVNlbGVjdExpc3QgPSAnc2luZ2xlU2VsZWN0TGlzdCcsXHJcbiAgU2VsZWN0TGlzdFdpdGhTdHJpbmdDb2xsZWN0aW9uT3V0cHV0ID0gJ3NlbGVjdExpc3RXaXRoU3RyaW5nQ29sbGVjdGlvbk91dHB1dCcsXHJcbiAgU2VsZWN0TGlzdFdpdGhOdW1iZXJPdXRwdXQgPSAnc2VsZWN0TGlzdFdpdGhOdW1iZXJPdXRwdXQnLFxyXG4gIFNsaWRlciA9ICdzbGlkZXInLFxyXG5cclxuICAvL1RoaXMgbW9kZSBtYWtlcyB0aGUgRmlsdGVyIGRpc3BsYXkgYSBzaW1wbGUgdGV4dGZpZWxkLlxyXG4gIC8vIFRoZSB2YWx1ZSB0eXBlZCBpbnRvIHRoZSBmaWVsZCB3aWxsIGJlIHBhc3NlZCBhbG9uZyBkaXJlY3RseSBhcyBhIHN0cmluZy5cclxuICBUZXh0RmllbGQgPSAndGV4dEZpZWxkJyxcclxuXHJcbiAgLy9UaGlzIG1vZGUgbWFrZXMgdGhlIEZpbHRlciBkaXNwbGF5IGEgc2ltcGxlIGRhdGVGaWVsZC5cclxuICAvLyBGaWVsZCBpbnB1dCB3aWxsIGJlIHBhc3NlZCBhbG9uZyBkaXJlY3RseSBhcyBhIGRhdGUgb2JqZWN0LlxyXG4gIERhdGVGaWVsZCA9ICdkYXRlRmllbGQnLFxyXG5cclxuICAvL1RoaXMgbW9kZSBtYWtlcyB0aGUgRmlsdGVyIGRpc3BsYXkgYSBkYXRlUmFuZ2UgZmllbGQuXHJcbiAgLy8gRmllbGQgaW5wdXQgd2lsbCBiZSBwYXNzZWQgYWxvbmcgZGlyZWN0bHkgYXMgYSBzdHJpbmcgd2l0aCB0aGUgZm9sbG93aW5nIHN5bnRheDogXCI/Pj0nMDEtMDgtMjAyMicmID88PSczMS0wOC0yMDIyJ1wiXHJcbiAgRGF0ZVJhbmdlRmllbGQgPSAnZGF0ZVJhbmdlRmllbGQnLFxyXG5cclxuICAvL1RoaXMgbW9kZSBtYWtlcyB0aGUgRmlsdGVyIGRpc3BsYXkgYSBzaW1wbGUgY2hlY2tCb3guXHJcbiAgLy8gSXQncyB2YWx1ZSB3aWxsIGJlIHBhc3NlZCBhbG9uZyBkaXJlY3RseSBhcyBhIGJvb2xlYW4uXHJcbiAgQ2hlY2tib3ggPSAnY2hlY2tib3gnLFxyXG5cclxuICAvL1RoaXMgbW9kZSBtYWtlcyB0aGUgRmlsdGVyIGRpc3BsYXkgYSBzaW1wbGUgY2hlY2tCb3guXHJcbiAgLy8gSXQncyB2YWx1ZSB3aWxsIGJlIHBhc3NlZCBhbG9uZyBhcyBlaXRoZXIgYSAnVCcgb3IgYW5kICdGJy5cclxuICBDaGVja2JveFRvU2ltcGxlVGV4dCA9ICdjaGVja2JveFRvU2ltcGxlVGV4dCcsXHJcblxyXG4gIC8vVGhpcyBtb2RlIG1ha2VzIHRoZSBGaWx0ZXIgZGlzcGxheSBhIHNpbXBsZSBjaGVja0JveC5cclxuICAvLyBJdCdzIHZhbHVlIHdpbGwgYmUgcGFzc2VkIGFsb25nIGFzIGVpdGhlciBhIFwiPz0nVCdcIiBvciBhbmQgXCI/PSdGJ1wiLlxyXG4gIENoZWNrYm94VG9UZXh0ID0gJ2NoZWNrYm94VG9UZXh0JyxcclxuICAvL1RoaXMgbW9kZSBtYWtlcyB0aGUgRmlsdGVyIGRpc3BsYXkgYSBzaW1wbGUgY2hlY2tCb3guXHJcbiAgLy8gSXQncyB2YWx1ZSB3aWxsIGJlIHBhc3NlZCBhbG9uZyBhcyBlaXRoZXIgYSAnVCcgb3IgYW5kICdGJy5cclxuICBDaGVja2JveFRvQmluYXJ5ID0gJ2NoZWNrYm94VG9CaW5hcnknLFxyXG5cclxuXHJcblxyXG59XHJcbiJdfQ==
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVySXRlbS1tb2RlLmVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlY29tcG9uZW50cy9zcmMvbGliL2NvcmUvZW51bS9maWx0ZXJJdGVtLW1vZGUuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxjQW9EWDtBQXBERCxXQUFZLGNBQWM7SUFFeEIsd0RBQXdEO0lBQ3hELDJHQUEyRztJQUMzRywyQ0FBeUIsQ0FBQTtJQUV6Qix5REFBeUQ7SUFDekQsMERBQTBEO0lBQzFELHVEQUFxQyxDQUFBO0lBRXJDLHdEQUF3RDtJQUN4RCwwREFBMEQ7SUFDMUQsK0ZBQTZFLENBQUE7SUFFN0Usd0RBQXdEO0lBQ3hELG9JQUFvSTtJQUNwSSwyRUFBeUQsQ0FBQTtJQUV6RCw2RkFBNkY7SUFDN0YsdUNBQXVDO0lBQ3ZDLG1DQUFpQixDQUFBO0lBRWpCLHdEQUF3RDtJQUN4RCw0RUFBNEU7SUFDNUUseUNBQXVCLENBQUE7SUFFdkIsd0RBQXdEO0lBQ3hELDhEQUE4RDtJQUM5RCx5Q0FBdUIsQ0FBQTtJQUV2Qix1REFBdUQ7SUFDdkQsc0hBQXNIO0lBQ3RILG1EQUFpQyxDQUFBO0lBRWpDLHVEQUF1RDtJQUN2RCx5REFBeUQ7SUFDekQsdUNBQXFCLENBQUE7SUFFckIsdURBQXVEO0lBQ3ZELDhEQUE4RDtJQUM5RCwrREFBNkMsQ0FBQTtJQUU3Qyx1REFBdUQ7SUFDdkQsc0VBQXNFO0lBQ3RFLG1EQUFpQyxDQUFBO0lBRWpDLHVEQUF1RDtJQUN2RCwwREFBMEQ7SUFDMUQsdURBQXFDLENBQUE7QUFJdkMsQ0FBQyxFQXBEVyxjQUFjLEtBQWQsY0FBYyxRQW9EekIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBGaWx0ZXJJdGVtTW9kZSB7XHJcblxyXG4gIC8vVGhpcyBtb2RlIG1ha2VzIHRoZSBGaWx0ZXIgZGlzcGxheSBhIG11bHRpIHNlbGVjdCBsaXN0XHJcbiAgLy8gSW5wdXQgd2lsbCBiZSBwYXNzZWQgYWxvbmcgZGlyZWN0bHkgYXMgYSBzdHJpbmcgd2l0aCB0aGUgZm9sbG93aW5nIHN5bnRheDogXCI/Pj0nY2hvaWNlIDEnLCA/PD0nY2hvaWNlMidcIlxyXG4gIEZpbHRlcmxpc3QgPSAnZmlsdGVybGlzdCcsXHJcblxyXG4gIC8vVGhpcyBtb2RlIG1ha2VzIHRoZSBGaWx0ZXIgZGlzcGxheSBhIHNpbmdsZSBzZWxlY3QgbGlzdFxyXG4gIC8vIElucHV0IHdpbGwgYmUgcGFzc2VkIGFsb25nIGRpcmVjdGx5IGFzIGEgc2ltcGxlIHN0cmluZy5cclxuICBTaW5nbGVTZWxlY3RMaXN0ID0gJ3NpbmdsZVNlbGVjdExpc3QnLFxyXG5cclxuICAvL1RoaXMgbW9kZSBtYWtlcyB0aGUgRmlsdGVyIGRpc3BsYXkgYSBtdWx0aSBzZWxlY3QgbGlzdFxyXG4gIC8vIElucHV0IHdpbGwgYmUgcGFzc2VkIGFsb25nIGRpcmVjdGx5IGFzIGEgc2ltcGxlIHN0cmluZy5cclxuICBTZWxlY3RMaXN0V2l0aFN0cmluZ0NvbGxlY3Rpb25PdXRwdXQgPSAnc2VsZWN0TGlzdFdpdGhTdHJpbmdDb2xsZWN0aW9uT3V0cHV0JyxcclxuXHJcbiAgLy9UaGlzIG1vZGUgbWFrZXMgdGhlIEZpbHRlciBkaXNwbGF5IGEgbXVsdGkgc2VsZWN0IGxpc3RcclxuICAvLyBBdmFpbGFibGUgY2hvaWNlcyB3aWxsIG5lZWQgdG8gaGF2ZSB0aGVpciBpZGVudGlmeWluZyB2YWx1ZSBiZSBhIG51bWJlci4gVGhlIHN1bW1hdGlvbiBvZiBhbGwgdGhlc2UgbnVtYmVycyB3aWxsIGJlIHBhc3NlZCBhbG9uZy5cclxuICBTZWxlY3RMaXN0V2l0aE51bWJlck91dHB1dCA9ICdzZWxlY3RMaXN0V2l0aE51bWJlck91dHB1dCcsXHJcblxyXG4gIC8vVGhpcyBtb2RlIG1ha2VzIHRoZSBGaWx0ZXIgZGlzcGxheSBhIG1pbiBhbmQgbWF4IGZpZWxkLiBUaGlzIHNob3VsZCBldmVudHVhbGx5IGJlIGEgc2xpZGVyLlxyXG4gIC8vIGlucHV0IGlzIHBhc3NlZCBhbG9uZyBhcyBcIm1pbiAtIG1heFwiXHJcbiAgU2xpZGVyID0gJ3NsaWRlcicsXHJcblxyXG4gIC8vVGhpcyBtb2RlIG1ha2VzIHRoZSBGaWx0ZXIgZGlzcGxheSBhIHNpbXBsZSB0ZXh0ZmllbGQuXHJcbiAgLy8gVGhlIHZhbHVlIHR5cGVkIGludG8gdGhlIGZpZWxkIHdpbGwgYmUgcGFzc2VkIGFsb25nIGRpcmVjdGx5IGFzIGEgc3RyaW5nLlxyXG4gIFRleHRGaWVsZCA9ICd0ZXh0RmllbGQnLFxyXG5cclxuICAvL1RoaXMgbW9kZSBtYWtlcyB0aGUgRmlsdGVyIGRpc3BsYXkgYSBzaW1wbGUgZGF0ZUZpZWxkLlxyXG4gIC8vIEZpZWxkIGlucHV0IHdpbGwgYmUgcGFzc2VkIGFsb25nIGRpcmVjdGx5IGFzIGEgZGF0ZSBvYmplY3QuXHJcbiAgRGF0ZUZpZWxkID0gJ2RhdGVGaWVsZCcsXHJcblxyXG4gIC8vVGhpcyBtb2RlIG1ha2VzIHRoZSBGaWx0ZXIgZGlzcGxheSBhIGRhdGVSYW5nZSBmaWVsZC5cclxuICAvLyBGaWVsZCBpbnB1dCB3aWxsIGJlIHBhc3NlZCBhbG9uZyBkaXJlY3RseSBhcyBhIHN0cmluZyB3aXRoIHRoZSBmb2xsb3dpbmcgc3ludGF4OiBcIj8+PScwMS0wOC0yMDIyJyYgPzw9JzMxLTA4LTIwMjInXCJcclxuICBEYXRlUmFuZ2VGaWVsZCA9ICdkYXRlUmFuZ2VGaWVsZCcsXHJcblxyXG4gIC8vVGhpcyBtb2RlIG1ha2VzIHRoZSBGaWx0ZXIgZGlzcGxheSBhIHNpbXBsZSBjaGVja0JveC5cclxuICAvLyBJdCdzIHZhbHVlIHdpbGwgYmUgcGFzc2VkIGFsb25nIGRpcmVjdGx5IGFzIGEgYm9vbGVhbi5cclxuICBDaGVja2JveCA9ICdjaGVja2JveCcsXHJcblxyXG4gIC8vVGhpcyBtb2RlIG1ha2VzIHRoZSBGaWx0ZXIgZGlzcGxheSBhIHNpbXBsZSBjaGVja0JveC5cclxuICAvLyBJdCdzIHZhbHVlIHdpbGwgYmUgcGFzc2VkIGFsb25nIGFzIGVpdGhlciBhICdUJyBvciBhbmQgJ0YnLlxyXG4gIENoZWNrYm94VG9TaW1wbGVUZXh0ID0gJ2NoZWNrYm94VG9TaW1wbGVUZXh0JyxcclxuXHJcbiAgLy9UaGlzIG1vZGUgbWFrZXMgdGhlIEZpbHRlciBkaXNwbGF5IGEgc2ltcGxlIGNoZWNrQm94LlxyXG4gIC8vIEl0J3MgdmFsdWUgd2lsbCBiZSBwYXNzZWQgYWxvbmcgYXMgZWl0aGVyIGEgXCI/PSdUJ1wiIG9yIGFuZCBcIj89J0YnXCIuXHJcbiAgQ2hlY2tib3hUb1RleHQgPSAnY2hlY2tib3hUb1RleHQnLFxyXG5cclxuICAvL1RoaXMgbW9kZSBtYWtlcyB0aGUgRmlsdGVyIGRpc3BsYXkgYSBzaW1wbGUgY2hlY2tCb3guXHJcbiAgLy8gSXQncyB2YWx1ZSB3aWxsIGJlIHBhc3NlZCBhbG9uZyBhcyBlaXRoZXIgYSAxIG9yIGFuZCAwLlxyXG4gIENoZWNrYm94VG9CaW5hcnkgPSAnY2hlY2tib3hUb0JpbmFyeScsXHJcblxyXG5cclxuXHJcbn1cclxuIl19
@@ -1,6 +1,11 @@
1
1
  import { Directive, ElementRef, Input } from '@angular/core';
2
2
  export class OverlayDirective {
3
3
  constructor(elementRef) {
4
+ /**
5
+ * true; Element is added to the parent template
6
+ * false; Element is added to the bottom of the DOM
7
+ */
8
+ this.inline = false;
4
9
  this.keepInView = false;
5
10
  this.inheritWidth = false;
6
11
  this.rightAlign = false;
@@ -61,12 +66,25 @@ export class OverlayDirective {
61
66
  if (this._elementRef && this._elementRef.nativeElement && this._parent && this._parent.nativeElement) {
62
67
  const elementRect = this._elementRef.nativeElement.getBoundingClientRect();
63
68
  const parentBoundingRect = this._parent.nativeElement.getBoundingClientRect();
64
- const parentRect = {
65
- bottom: this._parent.nativeElement.offsetTop + parentBoundingRect.height,
66
- right: this._parent.nativeElement.offsetLeft + parentBoundingRect.width,
67
- left: this._parent.nativeElement.offsetLeft,
68
- top: this._parent.nativeElement.offsetTop
69
- };
69
+ let parentRect = {};
70
+ if (!this.inline) {
71
+ parentRect = {
72
+ bottom: parentBoundingRect.bottom,
73
+ right: parentBoundingRect.right,
74
+ left: parentBoundingRect.left,
75
+ top: parentBoundingRect.top,
76
+ width: parentBoundingRect.width
77
+ };
78
+ }
79
+ else {
80
+ parentRect = {
81
+ bottom: this._parent.nativeElement.offsetTop + parentBoundingRect.height,
82
+ right: this._parent.nativeElement.offsetLeft + parentBoundingRect.width,
83
+ left: this._parent.nativeElement.offsetLeft,
84
+ top: this._parent.nativeElement.offsetTop,
85
+ width: parentBoundingRect.width
86
+ };
87
+ }
70
88
  this._placeElement(window.innerHeight, window.innerWidth, parentRect, elementRect);
71
89
  }
72
90
  }
@@ -119,9 +137,10 @@ OverlayDirective.ctorParameters = () => [
119
137
  OverlayDirective.propDecorators = {
120
138
  parent: [{ type: Input, args: ["overlay",] }],
121
139
  view: [{ type: Input }],
140
+ inline: [{ type: Input }],
122
141
  keepInView: [{ type: Input }],
123
142
  inheritWidth: [{ type: Input }],
124
143
  rightAlign: [{ type: Input }],
125
144
  fullSize: [{ type: Input }]
126
145
  };
127
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlY29tcG9uZW50cy9zcmMvbGliL2RpcmVjdGl2ZXMvb3ZlcmxheS9vdmVybGF5LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBTTlFLE1BQU0sT0FBTyxnQkFBZ0I7SUFpQzNCLFlBQ0ksVUFBc0I7UUFqQm5CLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFHNUIsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFHOUIsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUc1QixhQUFRLEdBQVksS0FBSyxDQUFDO1FBdUQxQixpQkFBWSxHQUFHLENBQUMsS0FBWSxFQUFFLEVBQUU7WUFDckMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDL0IsQ0FBQyxDQUFBO1FBL0NDLElBQUksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDO0lBQ2hDLENBQUM7SUFuQ0QsSUFDVyxNQUFNLENBQUMsS0FBMEM7UUFDMUQsSUFBSSxLQUFLLEVBQUU7WUFDVCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssWUFBWSxVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQztTQUN2RTthQUFNO1lBQ0wsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7Z0JBQ3hDLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxFQUFFLENBQUM7YUFDbkM7U0FDRjtJQUNILENBQUM7SUE0Qk0sV0FBVztRQUNoQixRQUFRLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDaEUsSUFBSSxJQUFJLENBQUMscUJBQXFCLEVBQUU7WUFDOUIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQ3pDO1FBQ0QsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxFQUFFLENBQUM7U0FDbkM7UUFDRCxJQUFJLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQztRQUM3QixJQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQztJQUMzQixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUU7WUFDeEQsT0FBTztTQUNSO1FBQ0QsUUFBUSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxjQUFjLENBQ3JDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDVixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUMvQixDQUFDLENBQ0osQ0FBQztRQUNGLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLG9CQUFvQixDQUNqRCxDQUFDLE9BQW9DLEVBQUUsRUFBRTtZQUN2QyxJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDakMsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxLQUFLLEtBQUssRUFBRTtvQkFDdkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxtQ0FBbUM7aUJBQ3RGO3FCQUFNO29CQUNMLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO2lCQUNsRDthQUNGO1FBQ0gsQ0FBQyxFQUFFO1lBQ0QsSUFBSSxFQUFFLElBQUk7U0FDWCxDQUNKLENBQUM7UUFDRixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsZ0NBQWdDO1NBQ2pHO1FBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFNTyxxQkFBcUI7UUFDM0IsSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUU7WUFDcEcsTUFBTSxXQUFXLEdBQWUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUN2RixNQUFNLGtCQUFrQixHQUFlLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDMUYsTUFBTSxVQUFVLEdBQU87Z0JBQ3JCLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxTQUFTLEdBQUcsa0JBQWtCLENBQUMsTUFBTTtnQkFDeEUsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFVBQVUsR0FBRyxrQkFBa0IsQ0FBQyxLQUFLO2dCQUN2RSxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsVUFBVTtnQkFDM0MsR0FBRyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFNBQVM7YUFDMUMsQ0FBQTtZQUNELElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FBQztTQUNwRjtJQUNILENBQUM7SUFFTyxhQUFhLENBQUMsTUFBYyxFQUFFLEtBQWEsRUFBRSxVQUFlLEVBQUUsV0FBdUI7UUFDM0YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7UUFDeEQsSUFBSSxNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sR0FBRyxXQUFXLENBQUMsTUFBTSxFQUFFLEVBQUUsa0NBQWtDO1lBQ3ZGLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUM7WUFDeEYsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNyRDthQUFNO1lBQ0wsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN2RCxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1NBQ3JFO1FBQ0QsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7U0FDdEU7UUFDRCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxLQUFLLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQztTQUMzRjthQUFNLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUN4QixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztTQUNuRDthQUFNO1lBQ0wsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztTQUNwRTtRQUNELElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixNQUFNLFlBQVksR0FBUSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7WUFDekQsTUFBTSxTQUFTLEdBQVcsWUFBWSxDQUFDLFVBQVUsSUFBSSxZQUFZLENBQUMsV0FBVyxDQUFDO1lBQzlFLElBQUksV0FBVyxDQUFDLEtBQUssR0FBRyxTQUFTLEVBQUU7Z0JBQ2pDLG1DQUFtQztnQkFDbkMsSUFBSSxDQUFDLENBQUMsU0FBUyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7b0JBQzNELElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQztpQkFDcEY7cUJBQU0sRUFBRSw2QkFBNkI7b0JBQ3BDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsU0FBUyxHQUFHLElBQUksQ0FBQztvQkFDOUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxZQUFZLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztpQkFDNUU7YUFDRjtTQUNGO0lBQ0gsQ0FBQzs7O1lBdElGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsV0FBVzthQUN0Qjs7O1lBTGtCLFVBQVU7OztxQkFRMUIsS0FBSyxTQUFDLFNBQVM7bUJBV2YsS0FBSzt5QkFHTCxLQUFLOzJCQUdMLEtBQUs7eUJBR0wsS0FBSzt1QkFHTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7T3ZlcmxheVBhcmVudERpcmVjdGl2ZX0gZnJvbSAnLi9vdmVybGF5LXBhcmVudC5kaXJlY3RpdmUnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6IFwiW292ZXJsYXldXCJcclxufSlcclxuZXhwb3J0IGNsYXNzIE92ZXJsYXlEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uSW5pdCB7XHJcblxyXG4gIEBJbnB1dChcIm92ZXJsYXlcIilcclxuICBwdWJsaWMgc2V0IHBhcmVudCh2YWx1ZTogT3ZlcmxheVBhcmVudERpcmVjdGl2ZSB8IEVsZW1lbnRSZWYpIHtcclxuICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICB0aGlzLl9wYXJlbnQgPSB2YWx1ZSBpbnN0YW5jZW9mIEVsZW1lbnRSZWYgPyB2YWx1ZSA6IHZhbHVlLmVsZW1lbnRSZWY7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5fcGFyZW50ICYmIHRoaXMuX3Jlc2l6ZU9ic2VydmVyKSB7XHJcbiAgICAgICAgdGhpcy5fcmVzaXplT2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyB2aWV3OiBIVE1MRWxlbWVudDtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMga2VlcEluVmlldzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBpbmhlcml0V2lkdGg6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgcmlnaHRBbGlnbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBmdWxsU2l6ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmO1xyXG4gIHByaXZhdGUgX3Jlc2l6ZU9ic2VydmVyOiBSZXNpemVPYnNlcnZlcjtcclxuICBwcml2YXRlIF9pbnRlcnNlY3Rpb25PYnNlcnZlcjogSW50ZXJzZWN0aW9uT2JzZXJ2ZXI7XHJcbiAgcHJpdmF0ZSBfcGFyZW50OiBFbGVtZW50UmVmO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgICAgZWxlbWVudFJlZjogRWxlbWVudFJlZlxyXG4gICkge1xyXG4gICAgdGhpcy5fZWxlbWVudFJlZiA9IGVsZW1lbnRSZWY7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIHRoaXMuaGFuZGxlU2Nyb2xsLCB0cnVlKTtcclxuICAgIGlmICh0aGlzLl9pbnRlcnNlY3Rpb25PYnNlcnZlcikge1xyXG4gICAgICB0aGlzLl9pbnRlcnNlY3Rpb25PYnNlcnZlci5kaXNjb25uZWN0KCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5fcmVzaXplT2JzZXJ2ZXIpIHtcclxuICAgICAgdGhpcy5fcmVzaXplT2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fZWxlbWVudFJlZiA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMuX3BhcmVudCA9IHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLl9lbGVtZW50UmVmIHx8ICF0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLCB0aGlzLmhhbmRsZVNjcm9sbCwgdHJ1ZSk7XHJcbiAgICB0aGlzLl9jaGVja0FuZFBsYWNlRWxlbWVudCgpO1xyXG4gICAgdGhpcy5fcmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoXHJcbiAgICAgICAgKGVudHJpZXMpID0+IHtcclxuICAgICAgICAgIHRoaXMuX2NoZWNrQW5kUGxhY2VFbGVtZW50KCk7XHJcbiAgICAgICAgfVxyXG4gICAgKTtcclxuICAgIHRoaXMuX2ludGVyc2VjdGlvbk9ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKFxyXG4gICAgICAgIChlbnRyaWVzOiBJbnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5W10pID0+IHtcclxuICAgICAgICAgIGlmIChlbnRyaWVzICYmIGVudHJpZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBpZiAoZW50cmllc1swXS5pc0ludGVyc2VjdGluZyA9PT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUub3BhY2l0eSA9IDA7IC8vIGhpZGUgY2F1c2UgcGFyZW50IGlzIG5vdCB2aXNpYmxlXHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLm9wYWNpdHkgPSAxO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSwge1xyXG4gICAgICAgICAgcm9vdDogbnVsbFxyXG4gICAgICAgIH1cclxuICAgICk7XHJcbiAgICBpZiAodGhpcy5fcGFyZW50KSB7XHJcbiAgICAgIHRoaXMuX2ludGVyc2VjdGlvbk9ic2VydmVyLm9ic2VydmUodGhpcy5fcGFyZW50Lm5hdGl2ZUVsZW1lbnQpOyAvLyBvYnNlcnZlIHBhcmVudCBmb3IgdmlzaWJpbGl0eVxyXG4gICAgfVxyXG4gICAgdGhpcy5fcmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudC5ib2R5KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVTY3JvbGwgPSAoZXZlbnQ6IEV2ZW50KSA9PiB7XHJcbiAgICB0aGlzLl9jaGVja0FuZFBsYWNlRWxlbWVudCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY2hlY2tBbmRQbGFjZUVsZW1lbnQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5fZWxlbWVudFJlZiAmJiB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgJiYgdGhpcy5fcGFyZW50ICYmIHRoaXMuX3BhcmVudC5uYXRpdmVFbGVtZW50KSB7XHJcbiAgICAgIGNvbnN0IGVsZW1lbnRSZWN0OiBDbGllbnRSZWN0ID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICBjb25zdCBwYXJlbnRCb3VuZGluZ1JlY3Q6IENsaWVudFJlY3QgPSB0aGlzLl9wYXJlbnQubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgY29uc3QgcGFyZW50UmVjdDoge30gPSB7XHJcbiAgICAgICAgYm90dG9tOiB0aGlzLl9wYXJlbnQubmF0aXZlRWxlbWVudC5vZmZzZXRUb3AgKyBwYXJlbnRCb3VuZGluZ1JlY3QuaGVpZ2h0LFxyXG4gICAgICAgIHJpZ2h0OiB0aGlzLl9wYXJlbnQubmF0aXZlRWxlbWVudC5vZmZzZXRMZWZ0ICsgcGFyZW50Qm91bmRpbmdSZWN0LndpZHRoLFxyXG4gICAgICAgIGxlZnQ6IHRoaXMuX3BhcmVudC5uYXRpdmVFbGVtZW50Lm9mZnNldExlZnQsXHJcbiAgICAgICAgdG9wOiB0aGlzLl9wYXJlbnQubmF0aXZlRWxlbWVudC5vZmZzZXRUb3BcclxuICAgICAgfVxyXG4gICAgICB0aGlzLl9wbGFjZUVsZW1lbnQod2luZG93LmlubmVySGVpZ2h0LCB3aW5kb3cuaW5uZXJXaWR0aCwgcGFyZW50UmVjdCwgZWxlbWVudFJlY3QpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcGxhY2VFbGVtZW50KGJvdHRvbTogbnVtYmVyLCByaWdodDogbnVtYmVyLCBwYXJlbnRSZWN0OiBhbnksIGVsZW1lbnRSZWN0OiBDbGllbnRSZWN0KTogdm9pZCB7XHJcbiAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUucG9zaXRpb24gPSBcImZpeGVkXCI7XHJcbiAgICBpZiAoYm90dG9tIDwgcGFyZW50UmVjdC5ib3R0b20gKyBlbGVtZW50UmVjdC5oZWlnaHQpIHsgLy8gbWFrZSBzdXJlIGl0IGZpdHMgYXQgdGhlIGJvdHRvbVxyXG4gICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUudG9wID0gKHBhcmVudFJlY3QudG9wIC0gZWxlbWVudFJlY3QuaGVpZ2h0KSArIFwicHhcIjtcclxuICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ3RvcCcpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ3RvcCcpO1xyXG4gICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUudG9wID0gcGFyZW50UmVjdC5ib3R0b20gKyBcInB4XCI7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5pbmhlcml0V2lkdGgpIHtcclxuICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLndpZHRoID0gcGFyZW50UmVjdC53aWR0aCArIFwicHhcIjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnJpZ2h0QWxpZ24pIHtcclxuICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLmxlZnQgPSAocGFyZW50UmVjdC5yaWdodCAtIGVsZW1lbnRSZWN0LndpZHRoKSArIFwicHhcIjtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5mdWxsU2l6ZSkge1xyXG4gICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUubGVmdCA9IFwiMHB4XCI7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUubGVmdCA9IHBhcmVudFJlY3QubGVmdCArIFwicHhcIjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmtlZXBJblZpZXcpIHtcclxuICAgICAgY29uc3Qgdmlld1RvS2VlcEluOiBhbnkgPSB0aGlzLnZpZXcgPyB0aGlzLnZpZXcgOiB3aW5kb3c7XHJcbiAgICAgIGNvbnN0IHZpZXdXaWR0aDogbnVtYmVyID0gdmlld1RvS2VlcEluLmlubmVyV2lkdGggfHwgdmlld1RvS2VlcEluLmNsaWVudFdpZHRoO1xyXG4gICAgICBpZiAoZWxlbWVudFJlY3QucmlnaHQgPiB2aWV3V2lkdGgpIHtcclxuICAgICAgICAvL3NlZSBpZiB3ZSBjYW4gbW92ZSBpdCB0byB0aGUgbGVmdFxyXG4gICAgICAgIGlmICgoKHZpZXdXaWR0aCAtIGVsZW1lbnRSZWN0LndpZHRoKSA+IDApICYmICF0aGlzLmZ1bGxTaXplKSB7XHJcbiAgICAgICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUubGVmdCA9ICh2aWV3V2lkdGggLSBlbGVtZW50UmVjdC53aWR0aCkgKyBcInB4XCI7XHJcbiAgICAgICAgfSBlbHNlIHsgLy9yZXNpemUgc28gaXQgZml0cyBpbnRvIHZpZXdcclxuICAgICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS53aWR0aCA9IHZpZXdXaWR0aCArIFwicHhcIjtcclxuICAgICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5sZWZ0ID0gdmlld1RvS2VlcEluLm9mZnNldExlZnQgKyBcInB4XCI7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
146
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlY29tcG9uZW50cy9zcmMvbGliL2RpcmVjdGl2ZXMvb3ZlcmxheS9vdmVybGF5LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBTTlFLE1BQU0sT0FBTyxnQkFBZ0I7SUF3QzNCLFlBQ0ksVUFBc0I7UUF6QjFCOzs7V0FHRztRQUVJLFdBQU0sR0FBWSxLQUFLLENBQUM7UUFHeEIsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUc1QixpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUc5QixlQUFVLEdBQVksS0FBSyxDQUFDO1FBRzVCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUF1RDFCLGlCQUFZLEdBQUcsQ0FBQyxLQUFZLEVBQUUsRUFBRTtZQUNyQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUMvQixDQUFDLENBQUE7UUEvQ0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUM7SUFDaEMsQ0FBQztJQTFDRCxJQUNXLE1BQU0sQ0FBQyxLQUEwQztRQUMxRCxJQUFJLEtBQUssRUFBRTtZQUNULElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxZQUFZLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDO1NBQ3ZFO2FBQU07WUFDTCxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtnQkFDeEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUNuQztTQUNGO0lBQ0gsQ0FBQztJQW1DTSxXQUFXO1FBQ2hCLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNoRSxJQUFJLElBQUksQ0FBQyxxQkFBcUIsRUFBRTtZQUM5QixJQUFJLENBQUMscUJBQXFCLENBQUMsVUFBVSxFQUFFLENBQUM7U0FDekM7UUFDRCxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDeEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztTQUNuQztRQUNELElBQUksQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDO1FBQzdCLElBQUksQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFDO0lBQzNCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRTtZQUN4RCxPQUFPO1NBQ1I7UUFDRCxRQUFRLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLGNBQWMsQ0FDckMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNWLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQy9CLENBQUMsQ0FDSixDQUFDO1FBQ0YsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksb0JBQW9CLENBQ2pELENBQUMsT0FBb0MsRUFBRSxFQUFFO1lBQ3ZDLElBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUNqQyxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLEtBQUssS0FBSyxFQUFFO29CQUN2QyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLG1DQUFtQztpQkFDdEY7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7aUJBQ2xEO2FBQ0Y7UUFDSCxDQUFDLEVBQUU7WUFDRCxJQUFJLEVBQUUsSUFBSTtTQUNYLENBQ0osQ0FBQztRQUNGLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNoQixJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxnQ0FBZ0M7U0FDakc7UUFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQU1PLHFCQUFxQjtRQUMzQixJQUFJLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRTtZQUNwRyxNQUFNLFdBQVcsR0FBZSxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQ3ZGLE1BQU0sa0JBQWtCLEdBQWUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUMxRixJQUFJLFVBQVUsR0FBTyxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQ2hCLFVBQVUsR0FBRztvQkFDWCxNQUFNLEVBQUUsa0JBQWtCLENBQUMsTUFBTTtvQkFDakMsS0FBSyxFQUFFLGtCQUFrQixDQUFDLEtBQUs7b0JBQy9CLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxJQUFJO29CQUM3QixHQUFHLEVBQUUsa0JBQWtCLENBQUMsR0FBRztvQkFDM0IsS0FBSyxFQUFFLGtCQUFrQixDQUFDLEtBQUs7aUJBQ2hDLENBQUE7YUFDRjtpQkFBTTtnQkFDTCxVQUFVLEdBQUc7b0JBQ1gsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFNBQVMsR0FBRyxrQkFBa0IsQ0FBQyxNQUFNO29CQUN4RSxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsVUFBVSxHQUFHLGtCQUFrQixDQUFDLEtBQUs7b0JBQ3ZFLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxVQUFVO29CQUMzQyxHQUFHLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsU0FBUztvQkFDekMsS0FBSyxFQUFFLGtCQUFrQixDQUFDLEtBQUs7aUJBQ2hDLENBQUE7YUFDRjtZQUNELElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FBQztTQUNwRjtJQUNILENBQUM7SUFFTyxhQUFhLENBQUMsTUFBYyxFQUFFLEtBQWEsRUFBRSxVQUFlLEVBQUUsV0FBdUI7UUFDM0YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7UUFDeEQsSUFBSSxNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sR0FBRyxXQUFXLENBQUMsTUFBTSxFQUFFLEVBQUUsa0NBQWtDO1lBQ3ZGLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUM7WUFDeEYsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNyRDthQUFNO1lBQ0wsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN2RCxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1NBQ3JFO1FBQ0QsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7U0FDdEU7UUFDRCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxLQUFLLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQztTQUMzRjthQUFNLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUN4QixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztTQUNuRDthQUFNO1lBQ0wsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztTQUNwRTtRQUNELElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixNQUFNLFlBQVksR0FBUSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7WUFDekQsTUFBTSxTQUFTLEdBQVcsWUFBWSxDQUFDLFVBQVUsSUFBSSxZQUFZLENBQUMsV0FBVyxDQUFDO1lBQzlFLElBQUksV0FBVyxDQUFDLEtBQUssR0FBRyxTQUFTLEVBQUU7Z0JBQ2pDLG1DQUFtQztnQkFDbkMsSUFBSSxDQUFDLENBQUMsU0FBUyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7b0JBQzNELElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQztpQkFDcEY7cUJBQU0sRUFBRSw2QkFBNkI7b0JBQ3BDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsU0FBUyxHQUFHLElBQUksQ0FBQztvQkFDOUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxZQUFZLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztpQkFDNUU7YUFDRjtTQUNGO0lBQ0gsQ0FBQzs7O1lBekpGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsV0FBVzthQUN0Qjs7O1lBTGtCLFVBQVU7OztxQkFRMUIsS0FBSyxTQUFDLFNBQVM7bUJBV2YsS0FBSztxQkFPTCxLQUFLO3lCQUdMLEtBQUs7MkJBR0wsS0FBSzt5QkFHTCxLQUFLO3VCQUdMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtPdmVybGF5UGFyZW50RGlyZWN0aXZlfSBmcm9tICcuL292ZXJsYXktcGFyZW50LmRpcmVjdGl2ZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogXCJbb3ZlcmxheV1cIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgT3ZlcmxheURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25Jbml0IHtcclxuXHJcbiAgQElucHV0KFwib3ZlcmxheVwiKVxyXG4gIHB1YmxpYyBzZXQgcGFyZW50KHZhbHVlOiBPdmVybGF5UGFyZW50RGlyZWN0aXZlIHwgRWxlbWVudFJlZikge1xyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIHRoaXMuX3BhcmVudCA9IHZhbHVlIGluc3RhbmNlb2YgRWxlbWVudFJlZiA/IHZhbHVlIDogdmFsdWUuZWxlbWVudFJlZjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLl9wYXJlbnQgJiYgdGhpcy5fcmVzaXplT2JzZXJ2ZXIpIHtcclxuICAgICAgICB0aGlzLl9yZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHZpZXc6IEhUTUxFbGVtZW50O1xyXG5cclxuICAvKipcclxuICAgKiB0cnVlOyBFbGVtZW50IGlzIGFkZGVkIHRvIHRoZSBwYXJlbnQgdGVtcGxhdGVcclxuICAgKiBmYWxzZTsgRWxlbWVudCBpcyBhZGRlZCB0byB0aGUgYm90dG9tIG9mIHRoZSBET01cclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBpbmxpbmU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMga2VlcEluVmlldzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBpbmhlcml0V2lkdGg6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgcmlnaHRBbGlnbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBmdWxsU2l6ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmO1xyXG4gIHByaXZhdGUgX3Jlc2l6ZU9ic2VydmVyOiBSZXNpemVPYnNlcnZlcjtcclxuICBwcml2YXRlIF9pbnRlcnNlY3Rpb25PYnNlcnZlcjogSW50ZXJzZWN0aW9uT2JzZXJ2ZXI7XHJcbiAgcHJpdmF0ZSBfcGFyZW50OiBFbGVtZW50UmVmO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgICAgZWxlbWVudFJlZjogRWxlbWVudFJlZlxyXG4gICkge1xyXG4gICAgdGhpcy5fZWxlbWVudFJlZiA9IGVsZW1lbnRSZWY7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIHRoaXMuaGFuZGxlU2Nyb2xsLCB0cnVlKTtcclxuICAgIGlmICh0aGlzLl9pbnRlcnNlY3Rpb25PYnNlcnZlcikge1xyXG4gICAgICB0aGlzLl9pbnRlcnNlY3Rpb25PYnNlcnZlci5kaXNjb25uZWN0KCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5fcmVzaXplT2JzZXJ2ZXIpIHtcclxuICAgICAgdGhpcy5fcmVzaXplT2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fZWxlbWVudFJlZiA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMuX3BhcmVudCA9IHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLl9lbGVtZW50UmVmIHx8ICF0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLCB0aGlzLmhhbmRsZVNjcm9sbCwgdHJ1ZSk7XHJcbiAgICB0aGlzLl9jaGVja0FuZFBsYWNlRWxlbWVudCgpO1xyXG4gICAgdGhpcy5fcmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoXHJcbiAgICAgICAgKGVudHJpZXMpID0+IHtcclxuICAgICAgICAgIHRoaXMuX2NoZWNrQW5kUGxhY2VFbGVtZW50KCk7XHJcbiAgICAgICAgfVxyXG4gICAgKTtcclxuICAgIHRoaXMuX2ludGVyc2VjdGlvbk9ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKFxyXG4gICAgICAgIChlbnRyaWVzOiBJbnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5W10pID0+IHtcclxuICAgICAgICAgIGlmIChlbnRyaWVzICYmIGVudHJpZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBpZiAoZW50cmllc1swXS5pc0ludGVyc2VjdGluZyA9PT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUub3BhY2l0eSA9IDA7IC8vIGhpZGUgY2F1c2UgcGFyZW50IGlzIG5vdCB2aXNpYmxlXHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLm9wYWNpdHkgPSAxO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSwge1xyXG4gICAgICAgICAgcm9vdDogbnVsbFxyXG4gICAgICAgIH1cclxuICAgICk7XHJcbiAgICBpZiAodGhpcy5fcGFyZW50KSB7XHJcbiAgICAgIHRoaXMuX2ludGVyc2VjdGlvbk9ic2VydmVyLm9ic2VydmUodGhpcy5fcGFyZW50Lm5hdGl2ZUVsZW1lbnQpOyAvLyBvYnNlcnZlIHBhcmVudCBmb3IgdmlzaWJpbGl0eVxyXG4gICAgfVxyXG4gICAgdGhpcy5fcmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudC5ib2R5KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVTY3JvbGwgPSAoZXZlbnQ6IEV2ZW50KSA9PiB7XHJcbiAgICB0aGlzLl9jaGVja0FuZFBsYWNlRWxlbWVudCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY2hlY2tBbmRQbGFjZUVsZW1lbnQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5fZWxlbWVudFJlZiAmJiB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgJiYgdGhpcy5fcGFyZW50ICYmIHRoaXMuX3BhcmVudC5uYXRpdmVFbGVtZW50KSB7XHJcbiAgICAgIGNvbnN0IGVsZW1lbnRSZWN0OiBDbGllbnRSZWN0ID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICBjb25zdCBwYXJlbnRCb3VuZGluZ1JlY3Q6IENsaWVudFJlY3QgPSB0aGlzLl9wYXJlbnQubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgbGV0IHBhcmVudFJlY3Q6IHt9ID0ge307XHJcbiAgICAgIGlmICghdGhpcy5pbmxpbmUpIHtcclxuICAgICAgICBwYXJlbnRSZWN0ID0ge1xyXG4gICAgICAgICAgYm90dG9tOiBwYXJlbnRCb3VuZGluZ1JlY3QuYm90dG9tLFxyXG4gICAgICAgICAgcmlnaHQ6IHBhcmVudEJvdW5kaW5nUmVjdC5yaWdodCxcclxuICAgICAgICAgIGxlZnQ6IHBhcmVudEJvdW5kaW5nUmVjdC5sZWZ0LFxyXG4gICAgICAgICAgdG9wOiBwYXJlbnRCb3VuZGluZ1JlY3QudG9wLFxyXG4gICAgICAgICAgd2lkdGg6IHBhcmVudEJvdW5kaW5nUmVjdC53aWR0aFxyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBwYXJlbnRSZWN0ID0ge1xyXG4gICAgICAgICAgYm90dG9tOiB0aGlzLl9wYXJlbnQubmF0aXZlRWxlbWVudC5vZmZzZXRUb3AgKyBwYXJlbnRCb3VuZGluZ1JlY3QuaGVpZ2h0LFxyXG4gICAgICAgICAgcmlnaHQ6IHRoaXMuX3BhcmVudC5uYXRpdmVFbGVtZW50Lm9mZnNldExlZnQgKyBwYXJlbnRCb3VuZGluZ1JlY3Qud2lkdGgsXHJcbiAgICAgICAgICBsZWZ0OiB0aGlzLl9wYXJlbnQubmF0aXZlRWxlbWVudC5vZmZzZXRMZWZ0LFxyXG4gICAgICAgICAgdG9wOiB0aGlzLl9wYXJlbnQubmF0aXZlRWxlbWVudC5vZmZzZXRUb3AsXHJcbiAgICAgICAgICB3aWR0aDogcGFyZW50Qm91bmRpbmdSZWN0LndpZHRoXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuX3BsYWNlRWxlbWVudCh3aW5kb3cuaW5uZXJIZWlnaHQsIHdpbmRvdy5pbm5lcldpZHRoLCBwYXJlbnRSZWN0LCBlbGVtZW50UmVjdCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9wbGFjZUVsZW1lbnQoYm90dG9tOiBudW1iZXIsIHJpZ2h0OiBudW1iZXIsIHBhcmVudFJlY3Q6IGFueSwgZWxlbWVudFJlY3Q6IENsaWVudFJlY3QpOiB2b2lkIHtcclxuICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5wb3NpdGlvbiA9IFwiZml4ZWRcIjtcclxuICAgIGlmIChib3R0b20gPCBwYXJlbnRSZWN0LmJvdHRvbSArIGVsZW1lbnRSZWN0LmhlaWdodCkgeyAvLyBtYWtlIHN1cmUgaXQgZml0cyBhdCB0aGUgYm90dG9tXHJcbiAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS50b3AgPSAocGFyZW50UmVjdC50b3AgLSBlbGVtZW50UmVjdC5oZWlnaHQpICsgXCJweFwiO1xyXG4gICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgndG9wJyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgndG9wJyk7XHJcbiAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS50b3AgPSBwYXJlbnRSZWN0LmJvdHRvbSArIFwicHhcIjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmluaGVyaXRXaWR0aCkge1xyXG4gICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUud2lkdGggPSBwYXJlbnRSZWN0LndpZHRoICsgXCJweFwiO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMucmlnaHRBbGlnbikge1xyXG4gICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUubGVmdCA9IChwYXJlbnRSZWN0LnJpZ2h0IC0gZWxlbWVudFJlY3Qud2lkdGgpICsgXCJweFwiO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmZ1bGxTaXplKSB7XHJcbiAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5sZWZ0ID0gXCIwcHhcIjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5sZWZ0ID0gcGFyZW50UmVjdC5sZWZ0ICsgXCJweFwiO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMua2VlcEluVmlldykge1xyXG4gICAgICBjb25zdCB2aWV3VG9LZWVwSW46IGFueSA9IHRoaXMudmlldyA/IHRoaXMudmlldyA6IHdpbmRvdztcclxuICAgICAgY29uc3Qgdmlld1dpZHRoOiBudW1iZXIgPSB2aWV3VG9LZWVwSW4uaW5uZXJXaWR0aCB8fCB2aWV3VG9LZWVwSW4uY2xpZW50V2lkdGg7XHJcbiAgICAgIGlmIChlbGVtZW50UmVjdC5yaWdodCA+IHZpZXdXaWR0aCkge1xyXG4gICAgICAgIC8vc2VlIGlmIHdlIGNhbiBtb3ZlIGl0IHRvIHRoZSBsZWZ0XHJcbiAgICAgICAgaWYgKCgodmlld1dpZHRoIC0gZWxlbWVudFJlY3Qud2lkdGgpID4gMCkgJiYgIXRoaXMuZnVsbFNpemUpIHtcclxuICAgICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5sZWZ0ID0gKHZpZXdXaWR0aCAtIGVsZW1lbnRSZWN0LndpZHRoKSArIFwicHhcIjtcclxuICAgICAgICB9IGVsc2UgeyAvL3Jlc2l6ZSBzbyBpdCBmaXRzIGludG8gdmlld1xyXG4gICAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLndpZHRoID0gdmlld1dpZHRoICsgXCJweFwiO1xyXG4gICAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLmxlZnQgPSB2aWV3VG9LZWVwSW4ub2Zmc2V0TGVmdCArIFwicHhcIjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19