ctt-babylon 0.22.14 → 0.22.16

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.
@@ -78,7 +78,10 @@ export class BabylonListImgComponent {
78
78
  };
79
79
  }
80
80
  getItemTitle(item) {
81
- return item.title ?? item.name ?? '';
81
+ return (item.title ??
82
+ item.name ??
83
+ item.label ??
84
+ '');
82
85
  }
83
86
  getItemSubtitle(item) {
84
87
  return item.subtitle ?? item.description ?? '';
@@ -231,4 +234,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
231
234
  type: HostListener,
232
235
  args: ['window:resize']
233
236
  }] } });
234
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFieWxvbi1saXN0LWltZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvY29tcG9uZW50cy9jb3JlL2JhYnlsb24tbGlzdC1pbWcvYmFieWxvbi1saXN0LWltZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvY29tcG9uZW50cy9jb3JlL2JhYnlsb24tbGlzdC1pbWcvYmFieWxvbi1saXN0LWltZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEUsT0FBTyxFQUVILGdCQUFnQixFQUNoQixTQUFTLEVBRVQsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsV0FBVyxFQUNYLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN0RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFRbkQsT0FBTyxFQUNILGdDQUFnQyxFQUNoQyw0QkFBNEIsR0FDL0IsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFTeEMsTUFBTSxPQUFPLHVCQUF1QjtJQVBwQztRQVE0QyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFNaEQsaUJBQVksR0FBRyxDQUFDLENBQUM7UUFDakIsb0JBQWUsR0FBYSxLQUFLLENBQUM7UUFFM0MsUUFBRyxHQUFZLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFFL0Isc0VBQXNFO1FBQzdELGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBRTNCLG1DQUFtQztRQUMxQixhQUFRLEdBQUcsYUFBYSxDQUFDO1FBQ3pCLGFBQVEsR0FBRyxl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dUJDbkN4QyxtOFJBd0xBLDh0Z0NEM0pjLFlBQVksK0JBQUUsa0JBQWtCOzs0RkFJakMsdUJBQXVCO2tCQVBuQyxTQUFTOytCQUNJLHNCQUFzQixjQUNwQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsa0JBQWtCLENBQUM7OEJBS0gsU0FBUztzQkFBaEQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDRSxRQUFRO3NCQUEvQyxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUM3QixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUtHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBR0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQU9OLGNBQWM7c0JBRGIsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUcxQyxNQUFNO3NCQURMLFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFHMUMsY0FBYztzQkFEYixTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBRzFDLFVBQVU7c0JBRFQsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQXlHMUMsUUFBUTtzQkFEUCxZQUFZO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBib29sZWFuQXR0cmlidXRlLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgUExBVEZPUk1fSUQsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNsaWNrSW5pdERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZXMvc2xpZGVycy9zbGljay1pbml0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBUYWdUeXBlIH0gZnJvbSAnLi4vLi4vLi4vRW51bS90YWdzLmVudW1zJztcbmltcG9ydCB7XG4gICAgQmFieWxvbkljb25JbmZvSSxcbiAgICBCYWJ5bG9uTXVsdGltZWRpYUksXG4gICAgQmFieWxvblRleHRJbmZvSSxcbn0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBCYWJ5bG9uRXF1aXBtZW50SXRlbSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvYmFieWxvbi1lcXVpcG1lbnRzLWl0ZW0uaW50ZXJmYWNlJztcbmltcG9ydCB7IEJhYnlsb25Sb29tRGV0YWlsSSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvYmFieWxvbi1yb29tLWRldGFpbC5pbnRlcmZhY2UnO1xuaW1wb3J0IHtcbiAgICBnZXRGaXJzdEltYWdlQnlUYWdGcm9tTXVsdGltZWRpYSxcbiAgICBnZXRJbWFnZXNCeVRhZ0Zyb21NdWx0aW1lZGlhLFxufSBmcm9tICcuLi8uLi8uLi91dGlscy9tdXRpbWVkaWEudXRpbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2xpYi1iYWJ5bG9uLWxpc3QtaW1nJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFNsaWNrSW5pdERpcmVjdGl2ZV0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2JhYnlsb24tbGlzdC1pbWcuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2JhYnlsb24tbGlzdC1pbWcuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQmFieWxvbkxpc3RJbWdDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgcmlnaHRTaWRlID0gZmFsc2U7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGxlZnRTaWRlID0gZmFsc2U7XG4gICAgQElucHV0KCkgdGV4dHM/OiBCYWJ5bG9uVGV4dEluZm9JO1xuICAgIEBJbnB1dCgpIGl0ZW1zPzogQmFieWxvbkljb25JbmZvSVtdO1xuICAgIEBJbnB1dCgpIG11bHRpbWVkaWE/OiBCYWJ5bG9uTXVsdGltZWRpYUk7XG4gICAgQElucHV0KCkgZXF1aXBtZW50PzogQmFieWxvbkVxdWlwbWVudEl0ZW1bXTtcbiAgICBASW5wdXQoKSByb29tPzogQmFieWxvblJvb21EZXRhaWxJO1xuICAgIEBJbnB1dCgpIHZpc2libGVMaW1pdCA9IDM7XG4gICAgQElucHV0KCkgaWNvbnNMaWtlSW1hZ2VzPzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgdGFnOiBUYWdUeXBlID0gVGFnVHlwZS5MaXN0SW1nO1xuXG4gICAgLyoqIE9mZnNldCBwYXJhIGNhYmVjZXJhcyBzdGlja3kgKGRlc2t0b3ApLCBtb2RpZsOtY2FsbyBzaSBuZWNlc2l0YXMgKi9cbiAgICBASW5wdXQoKSBzY3JvbGxPZmZzZXQgPSA5NjtcblxuICAgIC8qKiBUZXh0byBkZWwgYm90w7NuICh0cmFkdWNpYmxlKSAqL1xuICAgIEBJbnB1dCgpIG1vcmVUZXh0ID0gJ01vc3RyYXIgbcOhcyc7XG4gICAgQElucHV0KCkgbGVzc1RleHQgPSAnTW9zdHJhciBtZW5vcyc7XG5cbiAgICAvKiogQ29udHJvbGEgZWwgZXN0YWRvIGRlbCBkZXNwbGVnYWJsZSAqL1xuICAgIG9wZW4gPSBmYWxzZTtcblxuICAgIC8qKiBSZWZlcmVuY2lhcyBhIERPTSBkZWwgcHJvcGlvIHRlbXBsYXRlICovXG4gICAgQFZpZXdDaGlsZCgnbW9yZUNvbnRlbnQnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIG1vcmVDb250ZW50UmVmITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG4gICAgQFZpZXdDaGlsZCgnYnRuTW9yZUxlc3MnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIGJ0blJlZiE6IEVsZW1lbnRSZWY8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xuICAgIEBWaWV3Q2hpbGQoJ3Jvb3RTZWN0aW9uJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgICByb290U2VjdGlvblJlZiE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuICAgIEBWaWV3Q2hpbGQoJ2hlYWRpbmdSZWYnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICBoZWFkaW5nUmVmPzogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICBwcml2YXRlIHBsYXRmb3JtSWQgPSBpbmplY3QoUExBVEZPUk1fSUQpO1xuXG4gICAgLyoqIGlkIMO6bmljbyBwYXJhIGFyaWEtY29udHJvbHMgKi9cbiAgICBjb250ZW50SWQgPSBgbW9yZS1jb250ZW50LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoMil9YDtcblxuICAgIGxpc3RJdGVtczogQXJyYXk8QmFieWxvbkVxdWlwbWVudEl0ZW0gfCBCYWJ5bG9uSWNvbkluZm9JPiA9IFtdO1xuICAgIHZpc2libGVJdGVtczogQXJyYXk8QmFieWxvbkVxdWlwbWVudEl0ZW0gfCBCYWJ5bG9uSWNvbkluZm9JPiA9IFtdO1xuICAgIGhpZGRlbkl0ZW1zOiBBcnJheTxCYWJ5bG9uRXF1aXBtZW50SXRlbSB8IEJhYnlsb25JY29uSW5mb0k+ID0gW107XG4gICAgc2hvd01vcmVCdXR0b24gPSBmYWxzZTtcblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmxpc3RJdGVtcyA9IHRoaXMuZXF1aXBtZW50Py5sZW5ndGhcbiAgICAgICAgICAgID8gdGhpcy5lcXVpcG1lbnRcbiAgICAgICAgICAgIDogdGhpcy5pdGVtcyB8fCBbXTtcbiAgICAgICAgdGhpcy52aXNpYmxlSXRlbXMgPSB0aGlzLmxpc3RJdGVtcy5zbGljZSgwLCB0aGlzLnZpc2libGVMaW1pdCk7XG4gICAgICAgIHRoaXMuaGlkZGVuSXRlbXMgPSB0aGlzLmxpc3RJdGVtcy5zbGljZSh0aGlzLnZpc2libGVMaW1pdCk7XG4gICAgICAgIHRoaXMuc2hvd01vcmVCdXR0b24gPSB0aGlzLmxpc3RJdGVtcy5sZW5ndGggPiB0aGlzLnZpc2libGVMaW1pdDtcbiAgICB9XG5cbiAgICBnZXQgdm0oKSB7XG4gICAgICAgIGxldCBjdXJyZW50VGV4dHM6IGFueSA9IHt9O1xuICAgICAgICBsZXQgY3VycmVudExpc3Q6IGFueVtdID0gW107XG4gICAgICAgIGxldCBjdXJyZW50TXVsdGltZWRpYTogYW55ID0gbnVsbDtcblxuICAgICAgICBpZiAodGhpcy5yb29tKSB7XG4gICAgICAgICAgICAvLyBDYXNvIFJvb21cbiAgICAgICAgICAgIGN1cnJlbnRUZXh0cyA9IHtcbiAgICAgICAgICAgICAgICB0aXRsZTogdGhpcy5yb29tLnRleHRzPy5uYW1lLFxuICAgICAgICAgICAgICAgIHN1YnRpdGxlOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRleHRzPy5tYWluVGl0bGUgfHxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yb29tLnRleHRzPy5hZGRpdGlvbmFsMSB8fFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvb20udGV4dHM/LmFkZGl0aW9uYWwyLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGN1cnJlbnRMaXN0ID0gdGhpcy5yb29tLmVxdWlwbWVudHMgfHwgW107XG4gICAgICAgICAgICBjdXJyZW50TXVsdGltZWRpYSA9IHRoaXMucm9vbS5tdWx0aW1lZGlhIHx8IG51bGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBDYXNvIHNpbiBSb29tXG4gICAgICAgICAgICBjdXJyZW50TGlzdCA9IHRoaXMuZXF1aXBtZW50Py5sZW5ndGhcbiAgICAgICAgICAgICAgICA/IHRoaXMuZXF1aXBtZW50XG4gICAgICAgICAgICAgICAgOiB0aGlzLml0ZW1zIHx8IFtdO1xuXG4gICAgICAgICAgICBjdXJyZW50TXVsdGltZWRpYSA9IHRoaXMubXVsdGltZWRpYT8uaW1hZ2VuZXMgfHwgbnVsbDtcblxuICAgICAgICAgICAgLy8gRmFsbGJhY2sgaW50ZWxpZ2VudGUgZGUgdGV4dG9zXG4gICAgICAgICAgICBpZiAodGhpcy50ZXh0cyAmJiBPYmplY3Qua2V5cyh0aGlzLnRleHRzKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50VGV4dHMgPSB0aGlzLnRleHRzO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaXJzdE1lZGlhID0gQXJyYXkuaXNBcnJheShjdXJyZW50TXVsdGltZWRpYSlcbiAgICAgICAgICAgICAgICAgICAgPyBjdXJyZW50TXVsdGltZWRpYVswXVxuICAgICAgICAgICAgICAgICAgICA6IGN1cnJlbnRNdWx0aW1lZGlhO1xuXG4gICAgICAgICAgICAgICAgY3VycmVudFRleHRzID0ge1xuICAgICAgICAgICAgICAgICAgICB0aXRsZTogZmlyc3RNZWRpYT8udGl0bGUgfHwgZmlyc3RNZWRpYT8ubmFtZSB8fCAnJyxcbiAgICAgICAgICAgICAgICAgICAgc3VidGl0bGU6IGZpcnN0TWVkaWE/LmRlc2NyaXB0aW9uIHx8IGZpcnN0TWVkaWE/LmFsdCB8fCAnJyxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHRleHRzOiBjdXJyZW50VGV4dHMsXG4gICAgICAgICAgICBtdWx0aW1lZGlhOiBjdXJyZW50TXVsdGltZWRpYSxcbiAgICAgICAgICAgIHZpc2libGVJdGVtczogY3VycmVudExpc3Quc2xpY2UoMCwgdGhpcy52aXNpYmxlTGltaXQpLFxuICAgICAgICAgICAgaGlkZGVuSXRlbXM6IGN1cnJlbnRMaXN0LnNsaWNlKHRoaXMudmlzaWJsZUxpbWl0KSxcbiAgICAgICAgICAgIHNob3dNb3JlQnV0dG9uOiBjdXJyZW50TGlzdC5sZW5ndGggPiB0aGlzLnZpc2libGVMaW1pdCxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBnZXRJdGVtVGl0bGUoaXRlbTogQmFieWxvbkVxdWlwbWVudEl0ZW0gfCBCYWJ5bG9uSWNvbkluZm9JKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIChpdGVtIGFzIEJhYnlsb25JY29uSW5mb0kpLnRpdGxlID8/IGl0ZW0ubmFtZSA/PyAnJztcbiAgICB9XG5cbiAgICBnZXRJdGVtU3VidGl0bGUoaXRlbTogQmFieWxvbkVxdWlwbWVudEl0ZW0gfCBCYWJ5bG9uSWNvbkluZm9JKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIChpdGVtIGFzIEJhYnlsb25JY29uSW5mb0kpLnN1YnRpdGxlID8/IGl0ZW0uZGVzY3JpcHRpb24gPz8gJyc7XG4gICAgfVxuXG4gICAgaXNJY29uQ2xhc3MoaWNvbj86IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIWljb24pIHJldHVybiBmYWxzZTtcbiAgICAgICAgLy8gU2kgZXMgVVJMIChjb250aWVuZSAvLCAuc3ZnLCBvICMpIGVzIGhyZWYsIG5vIGNsYXNzXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAhaWNvbi5pbmNsdWRlcygnLycpICYmICFpY29uLmluY2x1ZGVzKCcuc3ZnJykgJiYgIWljb24uaW5jbHVkZXMoJyMnKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldEljb25IcmVmKGljb24/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBpZiAoIWljb24pIHJldHVybiAnJztcbiAgICAgICAgaWYgKHRoaXMuaXNJY29uQ2xhc3MoaWNvbikpIHJldHVybiAnJztcbiAgICAgICAgaWYgKGljb24uc3RhcnRzV2l0aCgnIycpKSByZXR1cm4gaWNvbjtcbiAgICAgICAgaWYgKGljb24uaW5jbHVkZXMoJy5zdmcjJykpIHJldHVybiBpY29uO1xuICAgICAgICBpZiAoaWNvbi5zdGFydHNXaXRoKCcvJykpIHJldHVybiBpY29uO1xuICAgICAgICByZXR1cm4gYCMke2ljb259YDtcbiAgICB9XG5cbiAgICBnZXRJY29uQ2xhc3MoaWNvbj86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBpY29uICYmIHRoaXMuaXNJY29uQ2xhc3MoaWNvbikgPyBpY29uIDogJyc7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHJldHVybjtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnVwZGF0ZUJHSGVpZ2h0KCksIDEwMCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScpXG4gICAgb25SZXNpemUoKSB7XG4gICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUJHSGVpZ2h0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1cGRhdGVCR0hlaWdodCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSByZXR1cm47XG4gICAgICAgIC8vIEFzZWd1cmFtb3MgcXVlIGxvcyBlbGVtZW50b3MgZXhpc3RlbiAocHVlZGUgbm8gaGFiZXIgdGV4dG9zKVxuICAgICAgICBpZiAoXG4gICAgICAgICAgICAhdGhpcy5oZWFkaW5nUmVmPy5uYXRpdmVFbGVtZW50IHx8XG4gICAgICAgICAgICAhdGhpcy5yb290U2VjdGlvblJlZj8ubmF0aXZlRWxlbWVudFxuICAgICAgICApXG4gICAgICAgICAgICByZXR1cm47XG5cbiAgICAgICAgY29uc3QgaGVhZGluZyA9IHRoaXMuaGVhZGluZ1JlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICBjb25zdCByb290U2VjdGlvbiA9IHRoaXMucm9vdFNlY3Rpb25SZWYubmF0aXZlRWxlbWVudDtcblxuICAgICAgICBjb25zdCB0b3RhbFB4ID0gKGhlYWRpbmcub2Zmc2V0VG9wIHx8IDApICsgKGhlYWRpbmcub2Zmc2V0SGVpZ2h0IHx8IDApO1xuXG4gICAgICAgIC8vIEFwbGljYW1vcyBsYSB2YXJpYWJsZSBDU1MgYSBsYSBzZWNjacOzbiBwcmluY2lwYWxcbiAgICAgICAgcm9vdFNlY3Rpb24uc3R5bGUuc2V0UHJvcGVydHkoXG4gICAgICAgICAgICAnLS1iZy1oZWlnaHQnLFxuICAgICAgICAgICAgYCR7dGhpcy50b1JlbSh0b3RhbFB4KX1yZW1gXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gSGVscGVyIHBhcmEgY29udmVydGlyIFBYIGEgUkVNIChBanVzdGEgZWwgZGl2aXNvciBzaSB0dSBiYXNlIGZvbnQtc2l6ZSBubyBlcyAxMHB4KVxuICAgIHByaXZhdGUgdG9SZW0ocHg6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBweCAvIDEwOyAvLyBDYW1iaWEgYSBcInB4IC8gMTZcIiBzaSB0dSBodG1sIG5vIHRpZW5lIGZvbnQtc2l6ZTogNjIuNSVcbiAgICB9XG5cbiAgICB0b2dnbGVEaXNwbGF5KCk6IHZvaWQge1xuICAgICAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHJldHVybjtcbiAgICAgICAgdGhpcy5vcGVuID0gIXRoaXMub3BlbjtcblxuICAgICAgICAvLyBBY3R1YWxpemEgYXJpYS1leHBhbmRlZFxuICAgICAgICB0aGlzLmJ0blJlZj8ubmF0aXZlRWxlbWVudD8uc2V0QXR0cmlidXRlKFxuICAgICAgICAgICAgJ2FyaWEtZXhwYW5kZWQnLFxuICAgICAgICAgICAgU3RyaW5nKHRoaXMub3BlbilcbiAgICAgICAgKTtcblxuICAgICAgICAvLyBDbGFzZSBkZSBlc3RhZG8gZW4gbGEgc2VjY2nDs24gKHBhcmEgZXN0aWxvcylcbiAgICAgICAgY29uc3Qgc2VjdGlvbiA9IHRoaXMucm9vdFNlY3Rpb25SZWY/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIHNlY3Rpb24uY2xhc3NMaXN0LnRvZ2dsZSgnbW9yZUxlc3MtLWFjdGl2ZScsIHRoaXMub3Blbik7XG5cbiAgICAgICAgLy8gU2kgc2UgY2llcnJhLCBoYWNlbW9zIHNjcm9sbCBhbCBpbmljaW8gZGVsIGNvbXBvbmVudGUgY29uIG9mZnNldFxuICAgICAgICBpZiAoIXRoaXMub3Blbikge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zY3JvbGxUb0NvbXBvbmVudFRvcCgpO1xuICAgICAgICAgICAgfSwgMTAwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2Nyb2xsVG9Db21wb25lbnRUb3AoKTogdm9pZCB7XG4gICAgICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IHNlY3Rpb24gPSB0aGlzLnJvb3RTZWN0aW9uUmVmLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgLy8gMS4gQXNpZ25hbW9zIHR1IG9mZnNldCBkaW7DoW1pY2FtZW50ZSB1c2FuZG8gQ1NTIG1vZGVybm9cbiAgICAgICAgLy8gRXN0byBsZSBkaWNlIGFsIG5hdmVnYWRvcjogXCJDdWFuZG8gaGFnYXMgc2Nyb2xsIGhhY2lhIGFxdcOtLCBkZWphIGVzdGUgZXNwYWNpbyBhcnJpYmFcIlxuICAgICAgICBzZWN0aW9uLnN0eWxlLnNjcm9sbE1hcmdpblRvcCA9IGAke3RoaXMuZ2V0T2Zmc2V0Rm9yVmlld3BvcnQoKX1weGA7XG5cbiAgICAgICAgLy8gMi4gVXNhbW9zIHNjcm9sbEludG9WaWV3OiBFc3RhIGZ1bmNpw7NuIG5vIGZhbGxhLCBkYSBpZ3VhbCBxdcOpIGRpdiBjb250cm9sZSBlbCBzY3JvbGxcbiAgICAgICAgc2VjdGlvbi5zY3JvbGxJbnRvVmlldyh7XG4gICAgICAgICAgICBiZWhhdmlvcjogJ3Ntb290aCcsXG4gICAgICAgICAgICBibG9jazogJ3N0YXJ0JyxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIFB1ZWRlcyBhanVzdGFyIG9mZnNldCBzZWfDum4gdmlld3BvcnQgKGVqOiBzb2xvID41MDBweCkgKi9cbiAgICBwcml2YXRlIGdldE9mZnNldEZvclZpZXdwb3J0KCk6IG51bWJlciB7XG4gICAgICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuIDA7XG4gICAgICAgIHJldHVybiB3aW5kb3cuaW5uZXJXaWR0aCA+IDEwMjQgPyB0aGlzLnNjcm9sbE9mZnNldCA6IDYwO1xuICAgIH1cblxuICAgIGdldEltYWdlc0J5VGFnKHRhZ05hbWU6IHN0cmluZykge1xuICAgICAgICAvLyBFbiB0dSBKU09OIHZlbyBxdWUgcm9vbS5tdWx0aW1lZGlhIGVzIHVuIGFycmF5IGRpcmVjdG8gZGUgaW3DoWdlbmVzLFxuICAgICAgICAvLyBzaSBnZXRJbWFnZXNCeVRhZ0Zyb21NdWx0aW1lZGlhIGZhbGxhIGNvbiBhcnJheXMgZGlyZWN0b3MsIHBvZGVtb3MgYcOxYWRpciB1biBmYWxsYmFja1xuICAgICAgICBjb25zdCB0YWdnZWRJbWdzID0gZ2V0SW1hZ2VzQnlUYWdGcm9tTXVsdGltZWRpYShcbiAgICAgICAgICAgIHRoaXMudm0ubXVsdGltZWRpYSxcbiAgICAgICAgICAgIHRhZ05hbWVcbiAgICAgICAgKTtcblxuICAgICAgICAvLyBGYWxsYmFjazogU2kgbm8gc2FjYSBuYWRhIHBvciB0YWcgcGVybyB0ZW5lbW9zIGltw6FnZW5lcywgZGV2dWVsdmUgbGFzIHByaW1lcmFzXG4gICAgICAgIGlmICghdGFnZ2VkSW1ncyB8fCB0YWdnZWRJbWdzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy52bS5tdWx0aW1lZGlhKSkgcmV0dXJuIHRoaXMudm0ubXVsdGltZWRpYTtcbiAgICAgICAgICAgIGlmICh0aGlzLnZtLm11bHRpbWVkaWE/LmltYWdlbmVzKVxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnZtLm11bHRpbWVkaWEuaW1hZ2VuZXM7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGFnZ2VkSW1ncztcbiAgICB9XG5cbiAgICBnZXRGaXJzdEltYWdlQnlUYWcodGFnTmFtZTogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiBnZXRGaXJzdEltYWdlQnlUYWdGcm9tTXVsdGltZWRpYSh0aGlzLm11bHRpbWVkaWEsIHRhZ05hbWUpO1xuICAgIH1cbn1cbiIsIjxzZWN0aW9uXG4gICAgI3Jvb3RTZWN0aW9uXG4gICAgY2xhc3M9XCJsaXN0LWltZyBqcy1iZ0hlaWdodC1zZWN0aW9uXCJcbiAgICBbY2xhc3MubGlzdC1pbWctLXJpZ2h0XT1cInJpZ2h0U2lkZSB8fCBsZWZ0U2lkZVwiXG4gICAgW2NsYXNzLmxpc3QtaW1nLS1sZWZ0XT1cIiFyaWdodFNpZGUgfHwgIWxlZnRTaWRlXCJcbj5cbiAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJsaXN0LWltZ19faW5uZXJcIj5cbiAgICAgICAgICAgIEBpZiAoZ2V0SW1hZ2VzQnlUYWcodGFnKTsgYXMgaW1ncykge1xuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJsaXN0LWltZ19faW1hZ2UganMtYWN0aXZlLXNsaWRlclwiXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtc2xpZGVyX3BhdXNlPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICBkYXRhLXNsaWRlcl9zcGVlZD1cIjEwMFwiXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtc2xpZGVyX25hbWU9XCJqcy1saXN0LWltZ19faW1hZ2Utc2xpZGVyXCJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS1zbGlkZXJfc2hvd2J0bnM9XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtc2xpZGVyX3Nob3dkb3RzPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICBkYXRhLXNsaWRlcl9mYWRlPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtc2xpZGVyX2F1dG9wbGF5PVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtc2xpZGVyX2F1dG9wbGF5X3NwZWVkPVwiMTAwMFwiXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtc2xpZGVzX3BjPVwiMVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1pbWdfX2ltYWdlLS1pbm5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9jdXNhYmxlPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibGlzdC1pbWdfX2ltYWdlLS1ncmFwaGljLXRvcFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPVwiL2Fzc2V0cy9iYWJ5bG9uL3N2Zy9pY29uLWdyYXBoaWMuc3ZnI2ljb24tZ3JhcGhpY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvdXNlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2N1c2FibGU9XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJsaXN0LWltZ19faW1hZ2UtLWdyYXBoaWMtYm90dG9tXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dXNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9XCIvYXNzZXRzL2JhYnlsb24vc3ZnL2ljb24tZ3JhcGhpYy5zdmcjaWNvbi1ncmFwaGljXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC91c2U+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImpzLWxpc3QtaW1nX19pbWFnZS1zbGlkZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChpbWcgb2YgaW1nczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlndXJlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltZz8uaW1nPy5zcmMgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltZz8ucGF0aD8ub3JpZ2luYWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FsdF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltZz8uaW1nPy5hbHQgfHwgaW1nPy5hbHQgfHwgJydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9maWd1cmU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpc3QtaW1nX19jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgQGlmIChcbiAgICAgICAgICAgICAgICAgICAgdm0udGV4dHM/LnRpdGxlIHx8IHZtLnRleHRzPy5tYWluVGl0bGUgfHwgdm0udGV4dHM/LnN1YnRpdGxlXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibGlzdC1pbWdfX2hlYWRpbmcganMtYmdIZWlnaHQtaGVhZGluZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAjaGVhZGluZ1JlZlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHZtLnRleHRzLnRpdGxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIFtpbm5lckhUTUxdPVwidm0udGV4dHMudGl0bGVcIj48L2gyPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmICh2bS50ZXh0cy5zdWJ0aXRsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIFtpbm5lckhUTUxdPVwidm0udGV4dHMuc3VidGl0bGVcIj48L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmICh2bS50ZXh0cy5kZXNjcmlwdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgW2lubmVySFRNTF09XCJ2bS50ZXh0cy5kZXNjcmlwdGlvblwiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAaWYgKHZpc2libGVJdGVtcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaXN0LWltZ19fbGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoaXRlbSBvZiB2aXNpYmxlSXRlbXM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaXN0LWltZ19fbGlzdC1pdGVtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaXN0LWltZ19fbGlzdC1pdGVtLS10ZXh0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgW2lubmVySFRNTF09XCJnZXRJdGVtVGl0bGUoaXRlbSlcIj48L2gzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgW2lubmVySFRNTF09XCJnZXRJdGVtU3VidGl0bGUoaXRlbSlcIj48L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1pbWdfX2xpc3QtaXRlbS0taWNvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChpc0ljb25DbGFzcyhpdGVtLmljb24pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cImdldEljb25DbGFzcyhpdGVtLmljb24pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLm1vbm9dPVwiIWljb25zTGlrZUltYWdlc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9jdXNhYmxlPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuaHJlZl09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRJY29uSHJlZihpdGVtLmljb24pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC91c2U+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGhpZGRlbkl0ZW1zPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9yZS1jb250ZW50XCIgW2hpZGRlbl09XCIhb3BlblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChpdGVtIG9mIGhpZGRlbkl0ZW1zOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaXN0LWltZ19fbGlzdC1pdGVtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpc3QtaW1nX19saXN0LWl0ZW0tLXRleHRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cImdldEl0ZW1UaXRsZShpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2gzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRJdGVtU3VidGl0bGUoaXRlbSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpc3QtaW1nX19saXN0LWl0ZW0tLWljb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChpc0ljb25DbGFzcyhpdGVtLmljb24pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0SWNvbkNsYXNzKGl0ZW0uaWNvbilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLm1vbm9dPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFpY29uc0xpa2VJbWFnZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2N1c2FibGU9XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5ocmVmXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0SWNvbkhyZWYoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvdXNlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoc2hvd01vcmVCdXR0b24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuX19ncm91cFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0bl9fbW9yZUxlc3NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlRGlzcGxheSgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlbiA/ICd0cnVlJyA6ICdmYWxzZSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cImNvbnRlbnRJZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlbiA/IGxlc3NUZXh0IDogbW9yZVRleHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0bl9fbW9yZUxlc3MtLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5pcy1vcGVuXT1cIm9wZW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvc2VjdGlvbj5cbiJdfQ==
237
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFieWxvbi1saXN0LWltZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvY29tcG9uZW50cy9jb3JlL2JhYnlsb24tbGlzdC1pbWcvYmFieWxvbi1saXN0LWltZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvY29tcG9uZW50cy9jb3JlL2JhYnlsb24tbGlzdC1pbWcvYmFieWxvbi1saXN0LWltZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEUsT0FBTyxFQUVILGdCQUFnQixFQUNoQixTQUFTLEVBRVQsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsV0FBVyxFQUNYLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN0RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFRbkQsT0FBTyxFQUNILGdDQUFnQyxFQUNoQyw0QkFBNEIsR0FDL0IsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFTeEMsTUFBTSxPQUFPLHVCQUF1QjtJQVBwQztRQVE0QyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFNaEQsaUJBQVksR0FBRyxDQUFDLENBQUM7UUFDakIsb0JBQWUsR0FBYSxLQUFLLENBQUM7UUFFM0MsUUFBRyxHQUFZLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFFL0Isc0VBQXNFO1FBQzdELGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBRTNCLG1DQUFtQztRQUMxQixhQUFRLEdBQUcsYUFBYSxDQUFDO1FBQ3pCLGFBQVEsR0FBRyxl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QXVCLHdHQUNaLGdCQUFnQixzQ0FDaEIsZ0JBQWdCLDZ1QkNuQ3hDLG04UkF3TEEsOHRnQ0QzSmMsWUFBWSwrQkFBRSxrQkFBa0I7OzRGQUlqQyx1QkFBdUI7a0JBUG5DLFNBQVM7K0JBQ0ksc0JBQXNCLGNBQ3BCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxrQkFBa0IsQ0FBQzs4QkFLSCxTQUFTO3NCQUFoRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUNFLFFBQVE7c0JBQS9DLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQzdCLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBS0csWUFBWTtzQkFBcEIsS0FBSztnQkFHRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBT04sY0FBYztzQkFEYixTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBRzFDLE1BQU07c0JBREwsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUcxQyxjQUFjO3NCQURiLFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFHMUMsVUFBVTtzQkFEVCxTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBOEcxQyxRQUFRO3NCQURQLFlBQVk7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSwgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIGJvb2xlYW5BdHRyaWJ1dGUsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBQTEFURk9STV9JRCxcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2xpY2tJbml0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlcy9zbGlkZXJzL3NsaWNrLWluaXQuZGlyZWN0aXZlJztcbmltcG9ydCB7IFRhZ1R5cGUgfSBmcm9tICcuLi8uLi8uLi9FbnVtL3RhZ3MuZW51bXMnO1xuaW1wb3J0IHtcbiAgICBCYWJ5bG9uSWNvbkluZm9JLFxuICAgIEJhYnlsb25NdWx0aW1lZGlhSSxcbiAgICBCYWJ5bG9uVGV4dEluZm9JLFxufSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEJhYnlsb25FcXVpcG1lbnRJdGVtIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy9iYWJ5bG9uLWVxdWlwbWVudHMtaXRlbS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQmFieWxvblJvb21EZXRhaWxJIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy9iYWJ5bG9uLXJvb20tZGV0YWlsLmludGVyZmFjZSc7XG5pbXBvcnQge1xuICAgIGdldEZpcnN0SW1hZ2VCeVRhZ0Zyb21NdWx0aW1lZGlhLFxuICAgIGdldEltYWdlc0J5VGFnRnJvbU11bHRpbWVkaWEsXG59IGZyb20gJy4uLy4uLy4uL3V0aWxzL211dGltZWRpYS51dGlscyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbGliLWJhYnlsb24tbGlzdC1pbWcnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgU2xpY2tJbml0RGlyZWN0aXZlXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYmFieWxvbi1saXN0LWltZy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYmFieWxvbi1saXN0LWltZy5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBCYWJ5bG9uTGlzdEltZ0NvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSByaWdodFNpZGUgPSBmYWxzZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgbGVmdFNpZGUgPSBmYWxzZTtcbiAgICBASW5wdXQoKSB0ZXh0cz86IEJhYnlsb25UZXh0SW5mb0k7XG4gICAgQElucHV0KCkgaXRlbXM/OiBCYWJ5bG9uSWNvbkluZm9JW107XG4gICAgQElucHV0KCkgbXVsdGltZWRpYT86IEJhYnlsb25NdWx0aW1lZGlhSTtcbiAgICBASW5wdXQoKSBlcXVpcG1lbnQ/OiBCYWJ5bG9uRXF1aXBtZW50SXRlbVtdO1xuICAgIEBJbnB1dCgpIHJvb20/OiBCYWJ5bG9uUm9vbURldGFpbEk7XG4gICAgQElucHV0KCkgdmlzaWJsZUxpbWl0ID0gMztcbiAgICBASW5wdXQoKSBpY29uc0xpa2VJbWFnZXM/OiBib29sZWFuID0gZmFsc2U7XG5cbiAgICB0YWc6IFRhZ1R5cGUgPSBUYWdUeXBlLkxpc3RJbWc7XG5cbiAgICAvKiogT2Zmc2V0IHBhcmEgY2FiZWNlcmFzIHN0aWNreSAoZGVza3RvcCksIG1vZGlmw61jYWxvIHNpIG5lY2VzaXRhcyAqL1xuICAgIEBJbnB1dCgpIHNjcm9sbE9mZnNldCA9IDk2O1xuXG4gICAgLyoqIFRleHRvIGRlbCBib3TDs24gKHRyYWR1Y2libGUpICovXG4gICAgQElucHV0KCkgbW9yZVRleHQgPSAnTW9zdHJhciBtw6FzJztcbiAgICBASW5wdXQoKSBsZXNzVGV4dCA9ICdNb3N0cmFyIG1lbm9zJztcblxuICAgIC8qKiBDb250cm9sYSBlbCBlc3RhZG8gZGVsIGRlc3BsZWdhYmxlICovXG4gICAgb3BlbiA9IGZhbHNlO1xuXG4gICAgLyoqIFJlZmVyZW5jaWFzIGEgRE9NIGRlbCBwcm9waW8gdGVtcGxhdGUgKi9cbiAgICBAVmlld0NoaWxkKCdtb3JlQ29udGVudCcsIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgbW9yZUNvbnRlbnRSZWYhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcbiAgICBAVmlld0NoaWxkKCdidG5Nb3JlTGVzcycsIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgYnRuUmVmITogRWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD47XG4gICAgQFZpZXdDaGlsZCgncm9vdFNlY3Rpb24nLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIHJvb3RTZWN0aW9uUmVmITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG4gICAgQFZpZXdDaGlsZCgnaGVhZGluZ1JlZicsIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIGhlYWRpbmdSZWY/OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIHByaXZhdGUgcGxhdGZvcm1JZCA9IGluamVjdChQTEFURk9STV9JRCk7XG5cbiAgICAvKiogaWQgw7puaWNvIHBhcmEgYXJpYS1jb250cm9scyAqL1xuICAgIGNvbnRlbnRJZCA9IGBtb3JlLWNvbnRlbnQtJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgyKX1gO1xuXG4gICAgbGlzdEl0ZW1zOiBBcnJheTxCYWJ5bG9uRXF1aXBtZW50SXRlbSB8IEJhYnlsb25JY29uSW5mb0k+ID0gW107XG4gICAgdmlzaWJsZUl0ZW1zOiBBcnJheTxCYWJ5bG9uRXF1aXBtZW50SXRlbSB8IEJhYnlsb25JY29uSW5mb0k+ID0gW107XG4gICAgaGlkZGVuSXRlbXM6IEFycmF5PEJhYnlsb25FcXVpcG1lbnRJdGVtIHwgQmFieWxvbkljb25JbmZvST4gPSBbXTtcbiAgICBzaG93TW9yZUJ1dHRvbiA9IGZhbHNlO1xuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubGlzdEl0ZW1zID0gdGhpcy5lcXVpcG1lbnQ/Lmxlbmd0aFxuICAgICAgICAgICAgPyB0aGlzLmVxdWlwbWVudFxuICAgICAgICAgICAgOiB0aGlzLml0ZW1zIHx8IFtdO1xuICAgICAgICB0aGlzLnZpc2libGVJdGVtcyA9IHRoaXMubGlzdEl0ZW1zLnNsaWNlKDAsIHRoaXMudmlzaWJsZUxpbWl0KTtcbiAgICAgICAgdGhpcy5oaWRkZW5JdGVtcyA9IHRoaXMubGlzdEl0ZW1zLnNsaWNlKHRoaXMudmlzaWJsZUxpbWl0KTtcbiAgICAgICAgdGhpcy5zaG93TW9yZUJ1dHRvbiA9IHRoaXMubGlzdEl0ZW1zLmxlbmd0aCA+IHRoaXMudmlzaWJsZUxpbWl0O1xuICAgIH1cblxuICAgIGdldCB2bSgpIHtcbiAgICAgICAgbGV0IGN1cnJlbnRUZXh0czogYW55ID0ge307XG4gICAgICAgIGxldCBjdXJyZW50TGlzdDogYW55W10gPSBbXTtcbiAgICAgICAgbGV0IGN1cnJlbnRNdWx0aW1lZGlhOiBhbnkgPSBudWxsO1xuXG4gICAgICAgIGlmICh0aGlzLnJvb20pIHtcbiAgICAgICAgICAgIC8vIENhc28gUm9vbVxuICAgICAgICAgICAgY3VycmVudFRleHRzID0ge1xuICAgICAgICAgICAgICAgIHRpdGxlOiB0aGlzLnJvb20udGV4dHM/Lm5hbWUsXG4gICAgICAgICAgICAgICAgc3VidGl0bGU6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGV4dHM/Lm1haW5UaXRsZSB8fFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvb20udGV4dHM/LmFkZGl0aW9uYWwxIHx8XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucm9vbS50ZXh0cz8uYWRkaXRpb25hbDIsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY3VycmVudExpc3QgPSB0aGlzLnJvb20uZXF1aXBtZW50cyB8fCBbXTtcbiAgICAgICAgICAgIGN1cnJlbnRNdWx0aW1lZGlhID0gdGhpcy5yb29tLm11bHRpbWVkaWEgfHwgbnVsbDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIENhc28gc2luIFJvb21cbiAgICAgICAgICAgIGN1cnJlbnRMaXN0ID0gdGhpcy5lcXVpcG1lbnQ/Lmxlbmd0aFxuICAgICAgICAgICAgICAgID8gdGhpcy5lcXVpcG1lbnRcbiAgICAgICAgICAgICAgICA6IHRoaXMuaXRlbXMgfHwgW107XG5cbiAgICAgICAgICAgIGN1cnJlbnRNdWx0aW1lZGlhID0gdGhpcy5tdWx0aW1lZGlhPy5pbWFnZW5lcyB8fCBudWxsO1xuXG4gICAgICAgICAgICAvLyBGYWxsYmFjayBpbnRlbGlnZW50ZSBkZSB0ZXh0b3NcbiAgICAgICAgICAgIGlmICh0aGlzLnRleHRzICYmIE9iamVjdC5rZXlzKHRoaXMudGV4dHMpLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGN1cnJlbnRUZXh0cyA9IHRoaXMudGV4dHM7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpcnN0TWVkaWEgPSBBcnJheS5pc0FycmF5KGN1cnJlbnRNdWx0aW1lZGlhKVxuICAgICAgICAgICAgICAgICAgICA/IGN1cnJlbnRNdWx0aW1lZGlhWzBdXG4gICAgICAgICAgICAgICAgICAgIDogY3VycmVudE11bHRpbWVkaWE7XG5cbiAgICAgICAgICAgICAgICBjdXJyZW50VGV4dHMgPSB7XG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiBmaXJzdE1lZGlhPy50aXRsZSB8fCBmaXJzdE1lZGlhPy5uYW1lIHx8ICcnLFxuICAgICAgICAgICAgICAgICAgICBzdWJ0aXRsZTogZmlyc3RNZWRpYT8uZGVzY3JpcHRpb24gfHwgZmlyc3RNZWRpYT8uYWx0IHx8ICcnLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdGV4dHM6IGN1cnJlbnRUZXh0cyxcbiAgICAgICAgICAgIG11bHRpbWVkaWE6IGN1cnJlbnRNdWx0aW1lZGlhLFxuICAgICAgICAgICAgdmlzaWJsZUl0ZW1zOiBjdXJyZW50TGlzdC5zbGljZSgwLCB0aGlzLnZpc2libGVMaW1pdCksXG4gICAgICAgICAgICBoaWRkZW5JdGVtczogY3VycmVudExpc3Quc2xpY2UodGhpcy52aXNpYmxlTGltaXQpLFxuICAgICAgICAgICAgc2hvd01vcmVCdXR0b246IGN1cnJlbnRMaXN0Lmxlbmd0aCA+IHRoaXMudmlzaWJsZUxpbWl0LFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGdldEl0ZW1UaXRsZShpdGVtOiBCYWJ5bG9uRXF1aXBtZW50SXRlbSB8IEJhYnlsb25JY29uSW5mb0kpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgKGl0ZW0gYXMgQmFieWxvbkljb25JbmZvSSkudGl0bGUgPz9cbiAgICAgICAgICAgIGl0ZW0ubmFtZSA/P1xuICAgICAgICAgICAgKGl0ZW0gYXMgQmFieWxvbkljb25JbmZvSSkubGFiZWwgPz9cbiAgICAgICAgICAgICcnXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0SXRlbVN1YnRpdGxlKGl0ZW06IEJhYnlsb25FcXVpcG1lbnRJdGVtIHwgQmFieWxvbkljb25JbmZvSSk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAoaXRlbSBhcyBCYWJ5bG9uSWNvbkluZm9JKS5zdWJ0aXRsZSA/PyBpdGVtLmRlc2NyaXB0aW9uID8/ICcnO1xuICAgIH1cblxuICAgIGlzSWNvbkNsYXNzKGljb24/OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCFpY29uKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIC8vIFNpIGVzIFVSTCAoY29udGllbmUgLywgLnN2ZywgbyAjKSBlcyBocmVmLCBubyBjbGFzc1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgIWljb24uaW5jbHVkZXMoJy8nKSAmJiAhaWNvbi5pbmNsdWRlcygnLnN2ZycpICYmICFpY29uLmluY2x1ZGVzKCcjJylcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXRJY29uSHJlZihpY29uPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKCFpY29uKSByZXR1cm4gJyc7XG4gICAgICAgIGlmICh0aGlzLmlzSWNvbkNsYXNzKGljb24pKSByZXR1cm4gJyc7XG4gICAgICAgIGlmIChpY29uLnN0YXJ0c1dpdGgoJyMnKSkgcmV0dXJuIGljb247XG4gICAgICAgIGlmIChpY29uLmluY2x1ZGVzKCcuc3ZnIycpKSByZXR1cm4gaWNvbjtcbiAgICAgICAgaWYgKGljb24uc3RhcnRzV2l0aCgnLycpKSByZXR1cm4gaWNvbjtcbiAgICAgICAgcmV0dXJuIGAjJHtpY29ufWA7XG4gICAgfVxuXG4gICAgZ2V0SWNvbkNsYXNzKGljb24/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gaWNvbiAmJiB0aGlzLmlzSWNvbkNsYXNzKGljb24pID8gaWNvbiA6ICcnO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSByZXR1cm47XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy51cGRhdGVCR0hlaWdodCgpLCAxMDApO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnKVxuICAgIG9uUmVzaXplKCkge1xuICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVCR0hlaWdodCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdXBkYXRlQkdIZWlnaHQoKTogdm9pZCB7XG4gICAgICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuO1xuICAgICAgICAvLyBBc2VndXJhbW9zIHF1ZSBsb3MgZWxlbWVudG9zIGV4aXN0ZW4gKHB1ZWRlIG5vIGhhYmVyIHRleHRvcylcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgIXRoaXMuaGVhZGluZ1JlZj8ubmF0aXZlRWxlbWVudCB8fFxuICAgICAgICAgICAgIXRoaXMucm9vdFNlY3Rpb25SZWY/Lm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgKVxuICAgICAgICAgICAgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IGhlYWRpbmcgPSB0aGlzLmhlYWRpbmdSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3Qgcm9vdFNlY3Rpb24gPSB0aGlzLnJvb3RTZWN0aW9uUmVmLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgY29uc3QgdG90YWxQeCA9IChoZWFkaW5nLm9mZnNldFRvcCB8fCAwKSArIChoZWFkaW5nLm9mZnNldEhlaWdodCB8fCAwKTtcblxuICAgICAgICAvLyBBcGxpY2Ftb3MgbGEgdmFyaWFibGUgQ1NTIGEgbGEgc2VjY2nDs24gcHJpbmNpcGFsXG4gICAgICAgIHJvb3RTZWN0aW9uLnN0eWxlLnNldFByb3BlcnR5KFxuICAgICAgICAgICAgJy0tYmctaGVpZ2h0JyxcbiAgICAgICAgICAgIGAke3RoaXMudG9SZW0odG90YWxQeCl9cmVtYFxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8vIEhlbHBlciBwYXJhIGNvbnZlcnRpciBQWCBhIFJFTSAoQWp1c3RhIGVsIGRpdmlzb3Igc2kgdHUgYmFzZSBmb250LXNpemUgbm8gZXMgMTBweClcbiAgICBwcml2YXRlIHRvUmVtKHB4OiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gcHggLyAxMDsgLy8gQ2FtYmlhIGEgXCJweCAvIDE2XCIgc2kgdHUgaHRtbCBubyB0aWVuZSBmb250LXNpemU6IDYyLjUlXG4gICAgfVxuXG4gICAgdG9nZ2xlRGlzcGxheSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSByZXR1cm47XG4gICAgICAgIHRoaXMub3BlbiA9ICF0aGlzLm9wZW47XG5cbiAgICAgICAgLy8gQWN0dWFsaXphIGFyaWEtZXhwYW5kZWRcbiAgICAgICAgdGhpcy5idG5SZWY/Lm5hdGl2ZUVsZW1lbnQ/LnNldEF0dHJpYnV0ZShcbiAgICAgICAgICAgICdhcmlhLWV4cGFuZGVkJyxcbiAgICAgICAgICAgIFN0cmluZyh0aGlzLm9wZW4pXG4gICAgICAgICk7XG5cbiAgICAgICAgLy8gQ2xhc2UgZGUgZXN0YWRvIGVuIGxhIHNlY2Npw7NuIChwYXJhIGVzdGlsb3MpXG4gICAgICAgIGNvbnN0IHNlY3Rpb24gPSB0aGlzLnJvb3RTZWN0aW9uUmVmPy5uYXRpdmVFbGVtZW50O1xuICAgICAgICBzZWN0aW9uLmNsYXNzTGlzdC50b2dnbGUoJ21vcmVMZXNzLS1hY3RpdmUnLCB0aGlzLm9wZW4pO1xuXG4gICAgICAgIC8vIFNpIHNlIGNpZXJyYSwgaGFjZW1vcyBzY3JvbGwgYWwgaW5pY2lvIGRlbCBjb21wb25lbnRlIGNvbiBvZmZzZXRcbiAgICAgICAgaWYgKCF0aGlzLm9wZW4pIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsVG9Db21wb25lbnRUb3AoKTtcbiAgICAgICAgICAgIH0sIDEwMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNjcm9sbFRvQ29tcG9uZW50VG9wKCk6IHZvaWQge1xuICAgICAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHJldHVybjtcblxuICAgICAgICBjb25zdCBzZWN0aW9uID0gdGhpcy5yb290U2VjdGlvblJlZi5uYXRpdmVFbGVtZW50O1xuXG4gICAgICAgIC8vIDEuIEFzaWduYW1vcyB0dSBvZmZzZXQgZGluw6FtaWNhbWVudGUgdXNhbmRvIENTUyBtb2Rlcm5vXG4gICAgICAgIC8vIEVzdG8gbGUgZGljZSBhbCBuYXZlZ2Fkb3I6IFwiQ3VhbmRvIGhhZ2FzIHNjcm9sbCBoYWNpYSBhcXXDrSwgZGVqYSBlc3RlIGVzcGFjaW8gYXJyaWJhXCJcbiAgICAgICAgc2VjdGlvbi5zdHlsZS5zY3JvbGxNYXJnaW5Ub3AgPSBgJHt0aGlzLmdldE9mZnNldEZvclZpZXdwb3J0KCl9cHhgO1xuXG4gICAgICAgIC8vIDIuIFVzYW1vcyBzY3JvbGxJbnRvVmlldzogRXN0YSBmdW5jacOzbiBubyBmYWxsYSwgZGEgaWd1YWwgcXXDqSBkaXYgY29udHJvbGUgZWwgc2Nyb2xsXG4gICAgICAgIHNlY3Rpb24uc2Nyb2xsSW50b1ZpZXcoe1xuICAgICAgICAgICAgYmVoYXZpb3I6ICdzbW9vdGgnLFxuICAgICAgICAgICAgYmxvY2s6ICdzdGFydCcsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBQdWVkZXMgYWp1c3RhciBvZmZzZXQgc2Vnw7puIHZpZXdwb3J0IChlajogc29sbyA+NTAwcHgpICovXG4gICAgcHJpdmF0ZSBnZXRPZmZzZXRGb3JWaWV3cG9ydCgpOiBudW1iZXIge1xuICAgICAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHJldHVybiAwO1xuICAgICAgICByZXR1cm4gd2luZG93LmlubmVyV2lkdGggPiAxMDI0ID8gdGhpcy5zY3JvbGxPZmZzZXQgOiA2MDtcbiAgICB9XG5cbiAgICBnZXRJbWFnZXNCeVRhZyh0YWdOYW1lOiBzdHJpbmcpIHtcbiAgICAgICAgLy8gRW4gdHUgSlNPTiB2ZW8gcXVlIHJvb20ubXVsdGltZWRpYSBlcyB1biBhcnJheSBkaXJlY3RvIGRlIGltw6FnZW5lcyxcbiAgICAgICAgLy8gc2kgZ2V0SW1hZ2VzQnlUYWdGcm9tTXVsdGltZWRpYSBmYWxsYSBjb24gYXJyYXlzIGRpcmVjdG9zLCBwb2RlbW9zIGHDsWFkaXIgdW4gZmFsbGJhY2tcbiAgICAgICAgY29uc3QgdGFnZ2VkSW1ncyA9IGdldEltYWdlc0J5VGFnRnJvbU11bHRpbWVkaWEoXG4gICAgICAgICAgICB0aGlzLnZtLm11bHRpbWVkaWEsXG4gICAgICAgICAgICB0YWdOYW1lXG4gICAgICAgICk7XG5cbiAgICAgICAgLy8gRmFsbGJhY2s6IFNpIG5vIHNhY2EgbmFkYSBwb3IgdGFnIHBlcm8gdGVuZW1vcyBpbcOhZ2VuZXMsIGRldnVlbHZlIGxhcyBwcmltZXJhc1xuICAgICAgICBpZiAoIXRhZ2dlZEltZ3MgfHwgdGFnZ2VkSW1ncy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMudm0ubXVsdGltZWRpYSkpIHJldHVybiB0aGlzLnZtLm11bHRpbWVkaWE7XG4gICAgICAgICAgICBpZiAodGhpcy52bS5tdWx0aW1lZGlhPy5pbWFnZW5lcylcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy52bS5tdWx0aW1lZGlhLmltYWdlbmVzO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRhZ2dlZEltZ3M7XG4gICAgfVxuXG4gICAgZ2V0Rmlyc3RJbWFnZUJ5VGFnKHRhZ05hbWU6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gZ2V0Rmlyc3RJbWFnZUJ5VGFnRnJvbU11bHRpbWVkaWEodGhpcy5tdWx0aW1lZGlhLCB0YWdOYW1lKTtcbiAgICB9XG59XG4iLCI8c2VjdGlvblxuICAgICNyb290U2VjdGlvblxuICAgIGNsYXNzPVwibGlzdC1pbWcganMtYmdIZWlnaHQtc2VjdGlvblwiXG4gICAgW2NsYXNzLmxpc3QtaW1nLS1yaWdodF09XCJyaWdodFNpZGUgfHwgbGVmdFNpZGVcIlxuICAgIFtjbGFzcy5saXN0LWltZy0tbGVmdF09XCIhcmlnaHRTaWRlIHx8ICFsZWZ0U2lkZVwiXG4+XG4gICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1pbWdfX2lubmVyXCI+XG4gICAgICAgICAgICBAaWYgKGdldEltYWdlc0J5VGFnKHRhZyk7IGFzIGltZ3MpIHtcbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibGlzdC1pbWdfX2ltYWdlIGpzLWFjdGl2ZS1zbGlkZXJcIlxuICAgICAgICAgICAgICAgICAgICBkYXRhLXNsaWRlcl9wYXVzZT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS1zbGlkZXJfc3BlZWQ9XCIxMDBcIlxuICAgICAgICAgICAgICAgICAgICBkYXRhLXNsaWRlcl9uYW1lPVwianMtbGlzdC1pbWdfX2ltYWdlLXNsaWRlclwiXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtc2xpZGVyX3Nob3didG5zPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICBkYXRhLXNsaWRlcl9zaG93ZG90cz1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS1zbGlkZXJfZmFkZT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICBkYXRhLXNsaWRlcl9hdXRvcGxheT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICBkYXRhLXNsaWRlcl9hdXRvcGxheV9zcGVlZD1cIjEwMDBcIlxuICAgICAgICAgICAgICAgICAgICBkYXRhLXNsaWRlc19wYz1cIjFcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpc3QtaW1nX19pbWFnZS0taW5uZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvY3VzYWJsZT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImxpc3QtaW1nX19pbWFnZS0tZ3JhcGhpYy10b3BcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cIi9hc3NldHMvYmFieWxvbi9zdmcvaWNvbi1ncmFwaGljLnN2ZyNpY29uLWdyYXBoaWNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3VzZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9jdXNhYmxlPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibGlzdC1pbWdfX2ltYWdlLS1ncmFwaGljLWJvdHRvbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPVwiL2Fzc2V0cy9iYWJ5bG9uL3N2Zy9pY29uLWdyYXBoaWMuc3ZnI2ljb24tZ3JhcGhpY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvdXNlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJqcy1saXN0LWltZ19faW1hZ2Utc2xpZGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoaW1nIG9mIGltZ3M7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpZ3VyZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbWc/LmltZz8uc3JjIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbWc/LnBhdGg/Lm9yaWdpbmFsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthbHRdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbWc/LmltZz8uYWx0IHx8IGltZz8uYWx0IHx8ICcnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmlndXJlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaXN0LWltZ19fY29udGVudFwiPlxuICAgICAgICAgICAgICAgIEBpZiAoXG4gICAgICAgICAgICAgICAgICAgIHZtLnRleHRzPy50aXRsZSB8fCB2bS50ZXh0cz8ubWFpblRpdGxlIHx8IHZtLnRleHRzPy5zdWJ0aXRsZVxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImxpc3QtaW1nX19oZWFkaW5nIGpzLWJnSGVpZ2h0LWhlYWRpbmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgI2hlYWRpbmdSZWZcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmICh2bS50ZXh0cy50aXRsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMiBbaW5uZXJIVE1MXT1cInZtLnRleHRzLnRpdGxlXCI+PC9oMj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAodm0udGV4dHMuc3VidGl0bGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBbaW5uZXJIVE1MXT1cInZtLnRleHRzLnN1YnRpdGxlXCI+PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAodm0udGV4dHMuZGVzY3JpcHRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtpbm5lckhUTUxdPVwidm0udGV4dHMuZGVzY3JpcHRpb25cIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGlmICh2aXNpYmxlSXRlbXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1pbWdfX2xpc3RcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgdmlzaWJsZUl0ZW1zOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1pbWdfX2xpc3QtaXRlbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1pbWdfX2xpc3QtaXRlbS0tdGV4dFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIFtpbm5lckhUTUxdPVwiZ2V0SXRlbVRpdGxlKGl0ZW0pXCI+PC9oMz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIFtpbm5lckhUTUxdPVwiZ2V0SXRlbVN1YnRpdGxlKGl0ZW0pXCI+PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpc3QtaW1nX19saXN0LWl0ZW0tLWljb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaXNJY29uQ2xhc3MoaXRlbS5pY29uKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJnZXRJY29uQ2xhc3MoaXRlbS5pY29uKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5tb25vXT1cIiFpY29uc0xpa2VJbWFnZXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvY3VzYWJsZT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmhyZWZdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0SWNvbkhyZWYoaXRlbS5pY29uKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvdXNlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChoaWRkZW5JdGVtcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vcmUtY29udGVudFwiIFtoaWRkZW5dPVwiIW9wZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBoaWRkZW5JdGVtczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1pbWdfX2xpc3QtaXRlbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaXN0LWltZ19fbGlzdC1pdGVtLS10ZXh0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoM1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJnZXRJdGVtVGl0bGUoaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9oMz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0SXRlbVN1YnRpdGxlKGl0ZW0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaXN0LWltZ19fbGlzdC1pdGVtLS1pY29uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaXNJY29uQ2xhc3MoaXRlbS5pY29uKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldEljb25DbGFzcyhpdGVtLmljb24pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5tb25vXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhaWNvbnNMaWtlSW1hZ2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9jdXNhYmxlPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuaHJlZl09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldEljb25IcmVmKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3VzZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHNob3dNb3JlQnV0dG9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ0bl9fZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG5fX21vcmVMZXNzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZURpc3BsYXkoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZW4gPyAndHJ1ZScgOiAnZmFsc2UnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJjb250ZW50SWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZW4gPyBsZXNzVGV4dCA6IG1vcmVUZXh0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG5fX21vcmVMZXNzLS1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuaXMtb3Blbl09XCJvcGVuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L3NlY3Rpb24+XG4iXX0=