@simpleangularcontrols/sac-bootstrap5 10.0.0-rc.6 → 10.0.0-rc.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/bundles/simpleangularcontrols-sac-bootstrap5.umd.js +176 -82
  2. package/bundles/simpleangularcontrols-sac-bootstrap5.umd.js.map +1 -1
  3. package/bundles/simpleangularcontrols-sac-bootstrap5.umd.min.js +1 -1
  4. package/bundles/simpleangularcontrols-sac-bootstrap5.umd.min.js.map +1 -1
  5. package/controls/checkbox/checkbox.module.d.ts.map +1 -1
  6. package/controls/checkbox/checkbox.module.ngfactory.d.ts.map +1 -1
  7. package/controls/datetime/datetime.module.d.ts.map +1 -1
  8. package/controls/datetime/datetime.module.ngfactory.d.ts.map +1 -1
  9. package/controls/grid/gridbutton.d.ts +1 -10
  10. package/controls/grid/gridbutton.d.ts.map +1 -1
  11. package/controls/input/input.module.d.ts.map +1 -1
  12. package/controls/input/input.module.ngfactory.d.ts.map +1 -1
  13. package/controls/list/dropdown.module.d.ts.map +1 -1
  14. package/controls/list/dropdown.module.ngfactory.d.ts.map +1 -1
  15. package/controls/list/list.module.d.ts.map +1 -1
  16. package/controls/list/list.module.ngfactory.d.ts.map +1 -1
  17. package/controls/multilanguage/multilanguage.module.d.ts.map +1 -1
  18. package/controls/multilanguage/multilanguage.module.ngfactory.d.ts.map +1 -1
  19. package/controls/static/staticlabel.module.d.ts.map +1 -1
  20. package/controls/static/staticlabel.module.ngfactory.d.ts.map +1 -1
  21. package/controls/tinymce/tinymce.module.d.ts.map +1 -1
  22. package/controls/tinymce/tinymce.module.ngfactory.d.ts.map +1 -1
  23. package/controls/tooltip/tooltip.d.ts +35 -0
  24. package/controls/tooltip/tooltip.d.ts.map +1 -0
  25. package/controls/tooltip/tooltip.module.d.ts +3 -0
  26. package/controls/tooltip/tooltip.module.d.ts.map +1 -0
  27. package/controls/tooltip/tooltip.module.ngfactory.d.ts +4 -0
  28. package/controls/tooltip/tooltip.module.ngfactory.d.ts.map +1 -0
  29. package/controls/tooltip/tooltip.ngfactory.d.ts +2 -0
  30. package/controls/tooltip/tooltip.ngfactory.d.ts.map +1 -0
  31. package/controls/upload/upload.module.d.ts.map +1 -1
  32. package/controls/upload/upload.module.ngfactory.d.ts.map +1 -1
  33. package/esm2015/controls/checkbox/checkbox.js +2 -2
  34. package/esm2015/controls/checkbox/checkbox.module.js +7 -2
  35. package/esm2015/controls/checkbox/checkbox.module.ngfactory.js +1 -1
  36. package/esm2015/controls/checkbox/radiobuttons.js +2 -2
  37. package/esm2015/controls/datetime/date.js +2 -2
  38. package/esm2015/controls/datetime/datetime.js +2 -2
  39. package/esm2015/controls/datetime/datetime.module.js +8 -2
  40. package/esm2015/controls/datetime/datetime.module.ngfactory.js +1 -1
  41. package/esm2015/controls/datetime/time.js +2 -2
  42. package/esm2015/controls/grid/grid.js +2 -2
  43. package/esm2015/controls/grid/grid.module.ngfactory.js +1 -1
  44. package/esm2015/controls/grid/gridbutton.js +3 -11
  45. package/esm2015/controls/input/input.js +2 -2
  46. package/esm2015/controls/input/input.module.js +7 -2
  47. package/esm2015/controls/input/input.module.ngfactory.js +1 -1
  48. package/esm2015/controls/input/inputarea.js +2 -2
  49. package/esm2015/controls/input/inputcurrency.js +2 -2
  50. package/esm2015/controls/input/inputdecimal.js +2 -2
  51. package/esm2015/controls/input/inputemail.js +2 -2
  52. package/esm2015/controls/input/inputinteger.js +2 -2
  53. package/esm2015/controls/input/inputpassword.js +2 -2
  54. package/esm2015/controls/input/inputsearch.js +2 -2
  55. package/esm2015/controls/list/dropdown.js +2 -2
  56. package/esm2015/controls/list/dropdown.module.js +7 -2
  57. package/esm2015/controls/list/dropdown.module.ngfactory.js +1 -1
  58. package/esm2015/controls/list/list.module.js +7 -2
  59. package/esm2015/controls/list/list.module.ngfactory.js +1 -1
  60. package/esm2015/controls/list/listbox.js +2 -2
  61. package/esm2015/controls/multilanguage/multilanguage.module.js +7 -2
  62. package/esm2015/controls/multilanguage/multilanguage.module.ngfactory.js +1 -1
  63. package/esm2015/controls/multilanguage/multilanguageinput.js +2 -2
  64. package/esm2015/controls/multilanguage/multilanguageinputarea.js +2 -2
  65. package/esm2015/controls/static/formcontainer.js +2 -2
  66. package/esm2015/controls/static/staticlabel.js +2 -2
  67. package/esm2015/controls/static/staticlabel.module.js +7 -2
  68. package/esm2015/controls/static/staticlabel.module.ngfactory.js +1 -1
  69. package/esm2015/controls/tinymce/tinymce.js +2 -2
  70. package/esm2015/controls/tinymce/tinymce.module.js +3 -1
  71. package/esm2015/controls/tinymce/tinymce.module.ngfactory.js +1 -1
  72. package/esm2015/controls/tooltip/tooltip.js +52 -0
  73. package/esm2015/controls/tooltip/tooltip.module.js +13 -0
  74. package/esm2015/controls/tooltip/tooltip.module.ngfactory.js +7 -0
  75. package/esm2015/controls/tooltip/tooltip.ngfactory.js +7 -0
  76. package/esm2015/controls/upload/dropzonemultiple.js +2 -2
  77. package/esm2015/controls/upload/dropzonesingle.js +2 -2
  78. package/esm2015/controls/upload/upload.js +2 -2
  79. package/esm2015/controls/upload/upload.module.js +8 -2
  80. package/esm2015/controls/upload/upload.module.ngfactory.js +1 -1
  81. package/esm2015/controls/upload/uploadmultiple.js +2 -2
  82. package/esm2015/public-api.js +2 -1
  83. package/esm2015/simpleangularcontrols-sac-bootstrap5.js +39 -38
  84. package/fesm2015/simpleangularcontrols-sac-bootstrap5.js +132 -45
  85. package/fesm2015/simpleangularcontrols-sac-bootstrap5.js.map +1 -1
  86. package/package.json +2 -2
  87. package/public-api.d.ts +1 -0
  88. package/public-api.d.ts.map +1 -1
  89. package/simpleangularcontrols-sac-bootstrap5-10.0.0-rc.8.tgz +0 -0
  90. package/simpleangularcontrols-sac-bootstrap5.d.ts +38 -37
  91. package/simpleangularcontrols-sac-bootstrap5.d.ts.map +1 -1
  92. package/simpleangularcontrols-sac-bootstrap5.metadata.json +1 -1
  93. package/simpleangularcontrols-sac-bootstrap5-10.0.0-rc.6.tgz +0 -0
@@ -0,0 +1,13 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { SacTooltipComponent } from './tooltip';
4
+ export class SACBootstrap5TooltipModule {
5
+ }
6
+ SACBootstrap5TooltipModule.decorators = [
7
+ { type: NgModule, args: [{
8
+ declarations: [SacTooltipComponent],
9
+ imports: [CommonModule],
10
+ exports: [SacTooltipComponent],
11
+ },] }
12
+ ];
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiQzovUHJvamVrdGUvc2ltcGxlYW5ndWxhcmNvbnRyb2xzLW5nMTAvY2guam5ldHdvcmsuc2FjLWNvbnRyb2xzL3Byb2plY3RzL3NhYy1ib290c3RyYXA1L3NyYy8iLCJzb3VyY2VzIjpbImNvbnRyb2xzL3Rvb2x0aXAvdG9vbHRpcC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBT2hELE1BQU0sT0FBTywwQkFBMEI7OztZQUx0QyxRQUFRLFNBQUM7Z0JBQ1IsWUFBWSxFQUFFLENBQUMsbUJBQW1CLENBQUM7Z0JBQ25DLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztnQkFDdkIsT0FBTyxFQUFFLENBQUMsbUJBQW1CLENBQUM7YUFDL0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTYWNUb29sdGlwQ29tcG9uZW50IH0gZnJvbSAnLi90b29sdGlwJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbU2FjVG9vbHRpcENvbXBvbmVudF0sXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXHJcbiAgZXhwb3J0czogW1NhY1Rvb2x0aXBDb21wb25lbnRdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU0FDQm9vdHN0cmFwNVRvb2x0aXBNb2R1bGUge31cclxuIl19
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @fileoverview This file was generated by the Angular template compiler. Do not edit.
3
+ *
4
+ * @suppress {suspiciousCode,uselessCode,missingProperties,missingOverride,checkTypes,extraRequire}
5
+ * tslint:disable
6
+ */
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5tb2R1bGUubmdmYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IkM6L1Byb2pla3RlL3NpbXBsZWFuZ3VsYXJjb250cm9scy1uZzEwL2NoLmpuZXR3b3JrLnNhYy1jb250cm9scy9wcm9qZWN0cy9zYWMtYm9vdHN0cmFwNS9zcmMvIiwic291cmNlcyI6WyJjb250cm9scy90b29sdGlwL3Rvb2x0aXAubW9kdWxlLm5nZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgaTAgZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyBpMSBmcm9tICcuL3Rvb2x0aXAubW9kdWxlJztcbmltcG9ydCAqIGFzIGkyIGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgKiBhcyBpMyBmcm9tICcuL3Rvb2x0aXAnO1xuZXhwb3J0IGNvbnN0IFNBQ0Jvb3RzdHJhcDVUb29sdGlwTW9kdWxlTmdGYWN0b3J5OmkwLk5nTW9kdWxlRmFjdG9yeTxpMS5TQUNCb290c3RyYXA1VG9vbHRpcE1vZHVsZT4gPSAobnVsbCBhcyBhbnkpO1xudmFyIF9kZWNsMF8wOmkyLk5nQ2xhc3MgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTppMi5OZ0NvbXBvbmVudE91dGxldCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yOmkyLk5nRm9yT2Y8YW55LGFueT4gPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzppMi5OZ0lmPGFueT4gPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDppMi5OZ1RlbXBsYXRlT3V0bGV0ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzU6aTIuTmdTdHlsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF82OmkyLk5nU3dpdGNoID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzc6aTIuTmdTd2l0Y2hDYXNlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzg6aTIuTmdTd2l0Y2hEZWZhdWx0ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzk6aTIuTmdQbHVyYWwgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTA6aTIuTmdQbHVyYWxDYXNlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzExOmkzLlNhY1Rvb2x0aXBDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTI6aTIuQXN5bmNQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEzOmkyLlVwcGVyQ2FzZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTQ6aTIuTG93ZXJDYXNlUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNTppMi5Kc29uUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNjppMi5TbGljZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTc6aTIuRGVjaW1hbFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTg6aTIuUGVyY2VudFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTk6aTIuVGl0bGVDYXNlUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yMDppMi5DdXJyZW5jeVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjE6aTIuRGF0ZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjI6aTIuSTE4blBsdXJhbFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjM6aTIuSTE4blNlbGVjdFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjQ6aTIuS2V5VmFsdWVQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzI1OmkyLkNvbW1vbk1vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yNjppMC5UZW1wbGF0ZVJlZjxhbnk+ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzI3OmkwLkVsZW1lbnRSZWY8YW55PiA9ICg8YW55PihudWxsIGFzIGFueSkpO1xuZnVuY3Rpb24gX1ZpZXdfU2FjVG9vbHRpcENvbXBvbmVudF9Ib3N0XzFfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVG9vbHRpcENvbXBvbmVudF8xXzEoKTp2b2lkIHtcbiAgaWYgKF9kZWNsMF8xMS5Jc1Rvb2x0aXBWaXNpYmxlKCkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMTEuSXNUb29sdGlwQ29udGVudFZpc2libGU7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBfZGVjbDBfMTEuTGVmdFBvcztcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IF9kZWNsMF8xMS5Ub3BQb3M7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IGN1cnJWYWxfMzphbnkgPSAoX2RlY2wwXzExLkdldFRvb2x0aXBQb3NpdGlvbigpID09PSBfZGVjbDBfMTEuVG9vbHRpcFBvc2l0aW9uLnRvcCk7XG4gICAgY3VyclZhbF8zO1xuICAgIGNvbnN0IGN1cnJWYWxfNDphbnkgPSAoX2RlY2wwXzExLkdldFRvb2x0aXBQb3NpdGlvbigpID09PSBfZGVjbDBfMTEuVG9vbHRpcFBvc2l0aW9uLmxlZnQpO1xuICAgIGN1cnJWYWxfNDtcbiAgICBjb25zdCBjdXJyVmFsXzU6YW55ID0gKF9kZWNsMF8xMS5HZXRUb29sdGlwUG9zaXRpb24oKSA9PT0gX2RlY2wwXzExLlRvb2x0aXBQb3NpdGlvbi5yaWdodCk7XG4gICAgY3VyclZhbF81O1xuICAgIGNvbnN0IGN1cnJWYWxfNjphbnkgPSAoX2RlY2wwXzExLkdldFRvb2x0aXBQb3NpdGlvbigpID09PSBfZGVjbDBfMTEuVG9vbHRpcFBvc2l0aW9uLmJvdHRvbSk7XG4gICAgY3VyclZhbF82O1xuICAgIGNvbnN0IGN1cnJWYWxfNzphbnkgPSAoKF9kZWNsMF8xMS5HZXRUb29sdGlwUG9zaXRpb24oKSA9PSBfZGVjbDBfMTEuVG9vbHRpcFBvc2l0aW9uLnJpZ2h0KT8gJ3JpZ2h0JzogKChfZGVjbDBfMTEuR2V0VG9vbHRpcFBvc2l0aW9uKCkgPT0gX2RlY2wwXzExLlRvb2x0aXBQb3NpdGlvbi5sZWZ0KT8gJ2xlZnQnOiAoKF9kZWNsMF8xMS5HZXRUb29sdGlwUG9zaXRpb24oKSA9PSBfZGVjbDBfMTEuVG9vbHRpcFBvc2l0aW9uLnRvcCk/ICd0b3AnOiAoKF9kZWNsMF8xMS5HZXRUb29sdGlwUG9zaXRpb24oKSA9PSBfZGVjbDBfMTEuVG9vbHRpcFBvc2l0aW9uLmJvdHRvbSk/ICdib3R0b20nOiBudWxsKSkpKTtcbiAgICBjdXJyVmFsXzc7XG4gICAgY29uc3QgY3VyclZhbF84OmFueSA9ICgoKF9kZWNsMF8xMS5HZXRUb29sdGlwUG9zaXRpb24oKSA9PT0gX2RlY2wwXzExLlRvb2x0aXBQb3NpdGlvbi5sZWZ0KSB8fCAoX2RlY2wwXzExLkdldFRvb2x0aXBQb3NpdGlvbigpID09PSBfZGVjbDBfMTEuVG9vbHRpcFBvc2l0aW9uLnJpZ2h0KSk/ICgoX2RlY2wwXzExLmdldFRvb2xUaXBIZWlnaHQoKSAvIDIpIC0gNi41KTogbnVsbCk7XG4gICAgY3VyclZhbF84O1xuICAgIGNvbnN0IGN1cnJWYWxfOTphbnkgPSAoKChfZGVjbDBfMTEuR2V0VG9vbHRpcFBvc2l0aW9uKCkgPT09IF9kZWNsMF8xMS5Ub29sdGlwUG9zaXRpb24uYm90dG9tKSB8fCAoX2RlY2wwXzExLkdldFRvb2x0aXBQb3NpdGlvbigpID09PSBfZGVjbDBfMTEuVG9vbHRpcFBvc2l0aW9uLnRvcCkpPyAoKF9kZWNsMF8xMS5nZXRUb29sVGlwV2lkdGgoKSAvIDIpIC0gNi41KTogbnVsbCk7XG4gICAgY3VyclZhbF85O1xuICAgIGNvbnN0IGN1cnJWYWxfMTA6YW55ID0gX2RlY2wwXzExLnRvb2x0aXB0ZXh0O1xuICAgIGN1cnJWYWxfMTA7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1Rvb2x0aXBDb21wb25lbnRfMV8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAoX2RlY2wwXzExLmlubGluZW1vZGU/ICdpbmxpbmUnOiBudWxsKTtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gKF9kZWNsMF8xMS5pbmxpbmVtb2RlPyAnaW5saW5lJzogbnVsbCk7XG4gIGN1cnJWYWxfMTtcbiAgY29uc3QgY3VyclZhbF8yOmFueSA9IF9kZWNsMF8xMS5Jc1Rvb2x0aXBWaXNpYmxlKCk7XG4gIGN1cnJWYWxfMjtcbiAgY29uc3QgcGRfMzphbnkgPSAoKDxhbnk+X2RlY2wwXzExLlNob3dUb29sdGlwKCkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzQ6YW55ID0gKCg8YW55Pl9kZWNsMF8xMS5IaWRlVG9vbHRpcCgpKSAhPT0gZmFsc2UpO1xufVxuIl19
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @fileoverview This file was generated by the Angular template compiler. Do not edit.
3
+ *
4
+ * @suppress {suspiciousCode,uselessCode,missingProperties,missingOverride,checkTypes,extraRequire}
5
+ * tslint:disable
6
+ */
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5uZ2ZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiQzovUHJvamVrdGUvc2ltcGxlYW5ndWxhcmNvbnRyb2xzLW5nMTAvY2guam5ldHdvcmsuc2FjLWNvbnRyb2xzL3Byb2plY3RzL3NhYy1ib290c3RyYXA1L3NyYy8iLCJzb3VyY2VzIjpbImNvbnRyb2xzL3Rvb2x0aXAvdG9vbHRpcC5uZ2ZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGkwIGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaTAuQ29tcG9uZW50RmFjdG9yeTtcbiJdfQ==
@@ -30,7 +30,7 @@ export class SacDropzoneMultipleComponent extends SacDropzoneMultipleCommon {
30
30
  SacDropzoneMultipleComponent.decorators = [
31
31
  { type: Component, args: [{
32
32
  selector: 'sac-dropzonemultiple',
33
- template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}_label\"\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'visually-hidden', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"dropzone d-flex justify-content-center position-relative\"\r\n (drop)=\"dropHandler($event)\"\r\n (dragover)=\"onDragOver($event)\"\r\n (dragleave)=\"onDragLeave($event)\"\r\n [class.active]=\"active\"\r\n [style.min-height]=\"uploadheight\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n >\r\n <div\r\n class=\"content d-flex justify-content-center\"\r\n *ngIf=\"uploads.length === 0\"\r\n >\r\n <div class=\"align-self-center text-center\">\r\n <div\r\n [class.is-invalid]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"content d-flex justify-content-center align-items-center w-50 my-3\"\r\n *ngIf=\"uploads.length > 0\"\r\n >\r\n <div class=\"flex-fill progress-container\">\r\n <div\r\n class=\"dropzone-uploadstates\"\r\n [class.mt-1]=\"i > 0\"\r\n *ngFor=\"let file of uploads; let i = index\"\r\n >\r\n <div\r\n class=\"input-group upload-component upload-component-multiple\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <div class=\"form-control upload-progress border-secondary\">\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"file.progress===100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"file.progress\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"file.progress\"\r\n >\r\n <span class=\"progress-text text-dark\">{{ file.name }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <a\r\n class=\"btn\"\r\n (click)=\"cancel(file.uploadId)\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <input\r\n #files\r\n multiple\r\n id=\"{{ name }}_uploadinput\"\r\n type=\"file\"\r\n class=\"custom-file-input\"\r\n (click)=\"files.value = ''\"\r\n (uploadxState)=\"onUpload($event)\"\r\n [disabled]=\"HasQueueItem()\"\r\n />\r\n </div>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
33
+ template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}_label\"\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'visually-hidden', componentHeight | toLabelHeight]\"\r\n >{{label}}<sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\"\r\n >\r\n <span [ngClass]=\"HelptextTooltipIcon\" class=\"ms-1\"></span> </sac-tooltip\r\n ></label>\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"dropzone d-flex justify-content-center position-relative\"\r\n (drop)=\"dropHandler($event)\"\r\n (dragover)=\"onDragOver($event)\"\r\n (dragleave)=\"onDragLeave($event)\"\r\n [class.active]=\"active\"\r\n [style.min-height]=\"uploadheight\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n >\r\n <div\r\n class=\"content d-flex justify-content-center\"\r\n *ngIf=\"uploads.length === 0\"\r\n >\r\n <div class=\"align-self-center text-center\">\r\n <div\r\n [class.is-invalid]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"content d-flex justify-content-center align-items-center w-50 my-3\"\r\n *ngIf=\"uploads.length > 0\"\r\n >\r\n <div class=\"flex-fill progress-container\">\r\n <div\r\n class=\"dropzone-uploadstates\"\r\n [class.mt-1]=\"i > 0\"\r\n *ngFor=\"let file of uploads; let i = index\"\r\n >\r\n <div\r\n class=\"input-group upload-component upload-component-multiple\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <div class=\"form-control upload-progress border-secondary\">\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"file.progress===100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"file.progress\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"file.progress\"\r\n >\r\n <span class=\"progress-text text-dark\">{{ file.name }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <a\r\n class=\"btn\"\r\n (click)=\"cancel(file.uploadId)\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <input\r\n #files\r\n multiple\r\n id=\"{{ name }}_uploadinput\"\r\n type=\"file\"\r\n class=\"custom-file-input\"\r\n (click)=\"files.value = ''\"\r\n (uploadxState)=\"onUpload($event)\"\r\n [disabled]=\"HasQueueItem()\"\r\n />\r\n </div>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n <div *ngIf=\"helptextmode === 'text' && helptext\" class=\"form-text\">\r\n {{helptext}}\r\n </div>\r\n </div>\r\n</div>\r\n",
34
34
  providers: [
35
35
  {
36
36
  provide: NG_VALUE_ACCESSOR,
@@ -52,4 +52,4 @@ SacDropzoneMultipleComponent.ctorParameters = () => [
52
52
  { type: Renderer2 },
53
53
  { type: NgZone }
54
54
  ];
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcHpvbmVtdWx0aXBsZS5qcyIsInNvdXJjZVJvb3QiOiJDOi9Qcm9qZWt0ZS9zaW1wbGVhbmd1bGFyY29udHJvbHMtbmcxMC9jaC5qbmV0d29yay5zYWMtY29udHJvbHMvcHJvamVjdHMvc2FjLWJvb3RzdHJhcDUvc3JjLyIsInNvdXJjZXMiOlsiY29udHJvbHMvdXBsb2FkL2Ryb3B6b25lbXVsdGlwbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsSUFBSSxFQUNKLFFBQVEsRUFDUixNQUFNLEVBRU4sUUFBUSxFQUNSLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDOUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFeEU7OztHQUdHO0FBa0JILE1BQU0sT0FBTyw0QkFDWCxTQUFRLHlCQUF5QjtJQUdqQyx1QkFBdUI7SUFFdkI7Ozs7OztPQU1HO0lBQ0gsWUFDc0IsVUFBa0MsRUFDdEQsUUFBa0IsRUFDbEIsUUFBbUIsRUFDbkIsTUFBYztRQUVkLEtBQUssQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsMEJBQTBCO0lBRTFCLHlCQUF5QjtJQUV6Qjs7T0FFRztJQUNJLFFBQVE7UUFDYixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbkIsQ0FBQzs7O1lBaERGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsc0JBQXNCO2dCQUNoQyxzakhBQXNDO2dCQUV0QyxTQUFTLEVBQUU7b0JBQ1Q7d0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjt3QkFDMUIsS0FBSyxFQUFFLElBQUk7d0JBQ1gsV0FBVyxFQUFFLDRCQUE0QjtxQkFDMUM7b0JBQ0Q7d0JBQ0UsT0FBTyxFQUFFLGFBQWE7d0JBQ3RCLEtBQUssRUFBRSxJQUFJO3dCQUNYLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsNEJBQTRCLENBQUM7cUJBQzVEO2lCQUNGOzthQUNGOzs7WUF0QlEsc0JBQXNCLHVCQXFDMUIsSUFBSSxZQUFJLFFBQVE7WUE3Q25CLFFBQVE7WUFJUixTQUFTO1lBSFQsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgSG9zdCxcclxuICBJbmplY3RvcixcclxuICBOZ1pvbmUsXHJcbiAgT25Jbml0LFxyXG4gIE9wdGlvbmFsLFxyXG4gIFJlbmRlcmVyMixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTkdfVkFMSURBVE9SUywgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFNhY0Ryb3B6b25lTXVsdGlwbGVDb21tb24gfSBmcm9tICdAc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NhYy1jb21tb24nO1xyXG5pbXBvcnQgeyBTYWNGb3JtTGF5b3V0RGlyZWN0aXZlIH0gZnJvbSAnLi4vbGF5b3V0L2Zvcm1sYXlvdXQuZGlyZWN0aXZlJztcclxuXHJcbi8qKlxyXG4gKiBEcm9wem9uZSBLb21wb25lbnRlIGbDvHIgbWVocmVyZSBVcGxvYWRzXHJcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2t1a2hhcmlldi9uZ3gtdXBsb2FkeC9cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2FjLWRyb3B6b25lbXVsdGlwbGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kcm9wem9uZW11bHRpcGxlLmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2Ryb3B6b25lLnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICB1c2VFeGlzdGluZzogU2FjRHJvcHpvbmVNdWx0aXBsZUNvbXBvbmVudCxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTYWNEcm9wem9uZU11bHRpcGxlQ29tcG9uZW50KSxcclxuICAgIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNhY0Ryb3B6b25lTXVsdGlwbGVDb21wb25lbnRcclxuICBleHRlbmRzIFNhY0Ryb3B6b25lTXVsdGlwbGVDb21tb25cclxuICBpbXBsZW1lbnRzIE9uSW5pdFxyXG57XHJcbiAgLy8gI3JlZ2lvbiBDb25zdHJ1Y3RvcnNcclxuXHJcbiAgLyoqXHJcbiAgICogQ29uc3RydWN0b3JcclxuICAgKiBAcGFyYW0gZm9ybUxheW91dCBTYWNGb3JtTGF5b3V0IHRvIGRlZmluZSBzY29wZWQgbGF5b3V0IHNldHRpbmdzXHJcbiAgICogQHBhcmFtIGluamVjdG9yIEluamVjdG9yIGZvciBpbmplY3Rpbmcgc2VydmljZXNcclxuICAgKiBAcGFyYW0gcmVuZGVyZXIgQW5ndWxhciByZW5kZXJpbmcgZW5naW5lXHJcbiAgICogQHBhcmFtIG5nWm9uZSBuZ1pvbmUgdG8gbWFuYWdlIGV4dGVybmFsIGphdmFzY3JpcHRzXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASG9zdCgpIEBPcHRpb25hbCgpIGZvcm1MYXlvdXQ6IFNhY0Zvcm1MYXlvdXREaXJlY3RpdmUsXHJcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgbmdab25lOiBOZ1pvbmVcclxuICApIHtcclxuICAgIHN1cGVyKGZvcm1MYXlvdXQsIGluamVjdG9yLCByZW5kZXJlciwgbmdab25lKTtcclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb24gQ29uc3RydWN0b3JzXHJcblxyXG4gIC8vICNyZWdpb24gUHVibGljIE1ldGhvZHNcclxuXHJcbiAgLyoqXHJcbiAgICogSW5pdGlhbGlzaWVydCBkYXMgQ29udHJvbFxyXG4gICAqL1xyXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcclxuICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBNZXRob2RzXHJcbn1cclxuIl19
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcHpvbmVtdWx0aXBsZS5qcyIsInNvdXJjZVJvb3QiOiJDOi9Qcm9qZWt0ZS9zaW1wbGVhbmd1bGFyY29udHJvbHMtbmcxMC9jaC5qbmV0d29yay5zYWMtY29udHJvbHMvcHJvamVjdHMvc2FjLWJvb3RzdHJhcDUvc3JjLyIsInNvdXJjZXMiOlsiY29udHJvbHMvdXBsb2FkL2Ryb3B6b25lbXVsdGlwbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsSUFBSSxFQUNKLFFBQVEsRUFDUixNQUFNLEVBRU4sUUFBUSxFQUNSLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDOUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFeEU7OztHQUdHO0FBa0JILE1BQU0sT0FBTyw0QkFDWCxTQUFRLHlCQUF5QjtJQUdqQyx1QkFBdUI7SUFFdkI7Ozs7OztPQU1HO0lBQ0gsWUFDc0IsVUFBa0MsRUFDdEQsUUFBa0IsRUFDbEIsUUFBbUIsRUFDbkIsTUFBYztRQUVkLEtBQUssQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsMEJBQTBCO0lBRTFCLHlCQUF5QjtJQUV6Qjs7T0FFRztJQUNJLFFBQVE7UUFDYixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbkIsQ0FBQzs7O1lBaERGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsc0JBQXNCO2dCQUNoQyxrNUhBQXNDO2dCQUV0QyxTQUFTLEVBQUU7b0JBQ1Q7d0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjt3QkFDMUIsS0FBSyxFQUFFLElBQUk7d0JBQ1gsV0FBVyxFQUFFLDRCQUE0QjtxQkFDMUM7b0JBQ0Q7d0JBQ0UsT0FBTyxFQUFFLGFBQWE7d0JBQ3RCLEtBQUssRUFBRSxJQUFJO3dCQUNYLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsNEJBQTRCLENBQUM7cUJBQzVEO2lCQUNGOzthQUNGOzs7WUF0QlEsc0JBQXNCLHVCQXFDMUIsSUFBSSxZQUFJLFFBQVE7WUE3Q25CLFFBQVE7WUFJUixTQUFTO1lBSFQsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgSG9zdCxcclxuICBJbmplY3RvcixcclxuICBOZ1pvbmUsXHJcbiAgT25Jbml0LFxyXG4gIE9wdGlvbmFsLFxyXG4gIFJlbmRlcmVyMixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTkdfVkFMSURBVE9SUywgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFNhY0Ryb3B6b25lTXVsdGlwbGVDb21tb24gfSBmcm9tICdAc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NhYy1jb21tb24nO1xyXG5pbXBvcnQgeyBTYWNGb3JtTGF5b3V0RGlyZWN0aXZlIH0gZnJvbSAnLi4vbGF5b3V0L2Zvcm1sYXlvdXQuZGlyZWN0aXZlJztcclxuXHJcbi8qKlxyXG4gKiBEcm9wem9uZSBLb21wb25lbnRlIGbDvHIgbWVocmVyZSBVcGxvYWRzXHJcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2t1a2hhcmlldi9uZ3gtdXBsb2FkeC9cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2FjLWRyb3B6b25lbXVsdGlwbGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kcm9wem9uZW11bHRpcGxlLmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2Ryb3B6b25lLnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICB1c2VFeGlzdGluZzogU2FjRHJvcHpvbmVNdWx0aXBsZUNvbXBvbmVudCxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTYWNEcm9wem9uZU11bHRpcGxlQ29tcG9uZW50KSxcclxuICAgIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNhY0Ryb3B6b25lTXVsdGlwbGVDb21wb25lbnRcclxuICBleHRlbmRzIFNhY0Ryb3B6b25lTXVsdGlwbGVDb21tb25cclxuICBpbXBsZW1lbnRzIE9uSW5pdFxyXG57XHJcbiAgLy8gI3JlZ2lvbiBDb25zdHJ1Y3RvcnNcclxuXHJcbiAgLyoqXHJcbiAgICogQ29uc3RydWN0b3JcclxuICAgKiBAcGFyYW0gZm9ybUxheW91dCBTYWNGb3JtTGF5b3V0IHRvIGRlZmluZSBzY29wZWQgbGF5b3V0IHNldHRpbmdzXHJcbiAgICogQHBhcmFtIGluamVjdG9yIEluamVjdG9yIGZvciBpbmplY3Rpbmcgc2VydmljZXNcclxuICAgKiBAcGFyYW0gcmVuZGVyZXIgQW5ndWxhciByZW5kZXJpbmcgZW5naW5lXHJcbiAgICogQHBhcmFtIG5nWm9uZSBuZ1pvbmUgdG8gbWFuYWdlIGV4dGVybmFsIGphdmFzY3JpcHRzXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASG9zdCgpIEBPcHRpb25hbCgpIGZvcm1MYXlvdXQ6IFNhY0Zvcm1MYXlvdXREaXJlY3RpdmUsXHJcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgbmdab25lOiBOZ1pvbmVcclxuICApIHtcclxuICAgIHN1cGVyKGZvcm1MYXlvdXQsIGluamVjdG9yLCByZW5kZXJlciwgbmdab25lKTtcclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb24gQ29uc3RydWN0b3JzXHJcblxyXG4gIC8vICNyZWdpb24gUHVibGljIE1ldGhvZHNcclxuXHJcbiAgLyoqXHJcbiAgICogSW5pdGlhbGlzaWVydCBkYXMgQ29udHJvbFxyXG4gICAqL1xyXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcclxuICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBNZXRob2RzXHJcbn1cclxuIl19
@@ -30,7 +30,7 @@ export class SacDropzoneSingleComponent extends SacDropzoneSingleCommon {
30
30
  SacDropzoneSingleComponent.decorators = [
31
31
  { type: Component, args: [{
32
32
  selector: 'sac-dropzonesingle',
33
- template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}_label\"\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'visually-hidden', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"dropzone d-flex justify-content-center position-relative\"\r\n (drop)=\"dropHandler($event)\"\r\n (dragover)=\"onDragOver($event)\"\r\n (dragleave)=\"onDragLeave($event)\"\r\n [style.min-height]=\"uploadheight\"\r\n [class.active]=\"active\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n >\r\n <div\r\n class=\"content d-flex justify-content-center position-relative\"\r\n *ngIf=\"uploads.length === 0\"\r\n >\r\n <div class=\"align-self-center text-center\">\r\n <div\r\n [class.is-invalid]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"content d-flex justify-content-center align-items-center w-50 my-3\"\r\n *ngIf=\"uploads.length > 0\"\r\n >\r\n <div class=\"flex-fill progress-container\">\r\n <div class=\"dropzone-uploadstates\" *ngFor=\"let file of uploads\">\r\n <div\r\n class=\"input-group upload-component upload-component-multiple\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <div class=\"form-control upload-progress border-secondary\">\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"file.progress===100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"file.progress\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"file.progress\"\r\n >\r\n <span class=\"progress-text text-dark\">{{ file.name }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <a\r\n class=\"btn\"\r\n (click)=\"cancel(file.uploadId)\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <input\r\n #files\r\n id=\"{{ name }}_uploadinput\"\r\n type=\"file\"\r\n class=\"custom-file-input\"\r\n (click)=\"files.value = ''\"\r\n (uploadxState)=\"onUpload($event)\"\r\n [disabled]=\"HasQueueItem()\"\r\n />\r\n </div>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
33
+ template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}_label\"\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'visually-hidden', componentHeight | toLabelHeight]\"\r\n >{{label}}<sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\"\r\n >\r\n <span [ngClass]=\"HelptextTooltipIcon\" class=\"ms-1\"></span> </sac-tooltip\r\n ></label>\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"dropzone d-flex justify-content-center position-relative\"\r\n (drop)=\"dropHandler($event)\"\r\n (dragover)=\"onDragOver($event)\"\r\n (dragleave)=\"onDragLeave($event)\"\r\n [style.min-height]=\"uploadheight\"\r\n [class.active]=\"active\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n >\r\n <div\r\n class=\"content d-flex justify-content-center position-relative\"\r\n *ngIf=\"uploads.length === 0\"\r\n >\r\n <div class=\"align-self-center text-center\">\r\n <div\r\n [class.is-invalid]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"content d-flex justify-content-center align-items-center w-50 my-3\"\r\n *ngIf=\"uploads.length > 0\"\r\n >\r\n <div class=\"flex-fill progress-container\">\r\n <div class=\"dropzone-uploadstates\" *ngFor=\"let file of uploads\">\r\n <div\r\n class=\"input-group upload-component upload-component-multiple\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <div class=\"form-control upload-progress border-secondary\">\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"file.progress===100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"file.progress\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"file.progress\"\r\n >\r\n <span class=\"progress-text text-dark\">{{ file.name }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <a\r\n class=\"btn\"\r\n (click)=\"cancel(file.uploadId)\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <input\r\n #files\r\n id=\"{{ name }}_uploadinput\"\r\n type=\"file\"\r\n class=\"custom-file-input\"\r\n (click)=\"files.value = ''\"\r\n (uploadxState)=\"onUpload($event)\"\r\n [disabled]=\"HasQueueItem()\"\r\n />\r\n </div>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n <div *ngIf=\"helptextmode === 'text' && helptext\" class=\"form-text\">\r\n {{helptext}}\r\n </div>\r\n </div>\r\n</div>\r\n",
34
34
  providers: [
35
35
  {
36
36
  provide: NG_VALUE_ACCESSOR,
@@ -52,4 +52,4 @@ SacDropzoneSingleComponent.ctorParameters = () => [
52
52
  { type: Renderer2 },
53
53
  { type: NgZone }
54
54
  ];
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcHpvbmVzaW5nbGUuanMiLCJzb3VyY2VSb290IjoiQzovUHJvamVrdGUvc2ltcGxlYW5ndWxhcmNvbnRyb2xzLW5nMTAvY2guam5ldHdvcmsuc2FjLWNvbnRyb2xzL3Byb2plY3RzL3NhYy1ib290c3RyYXA1L3NyYy8iLCJzb3VyY2VzIjpbImNvbnRyb2xzL3VwbG9hZC9kcm9wem9uZXNpbmdsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixJQUFJLEVBQ0osUUFBUSxFQUNSLE1BQU0sRUFFTixRQUFRLEVBQ1IsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV4RTs7O0dBR0c7QUFrQkgsTUFBTSxPQUFPLDBCQUNYLFNBQVEsdUJBQXVCO0lBRy9CLHVCQUF1QjtJQUV2Qjs7Ozs7O09BTUc7SUFDSCxZQUNzQixVQUFrQyxFQUN0RCxRQUFrQixFQUNsQixRQUFtQixFQUNuQixNQUFjO1FBRWQsS0FBSyxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCwwQkFBMEI7SUFFMUIseUJBQXlCO0lBRXpCOztPQUVHO0lBQ0ksUUFBUTtRQUNiLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNuQixDQUFDOzs7WUFoREYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxvQkFBb0I7Z0JBQzlCLG05R0FBb0M7Z0JBRXBDLFNBQVMsRUFBRTtvQkFDVDt3QkFDRSxPQUFPLEVBQUUsaUJBQWlCO3dCQUMxQixLQUFLLEVBQUUsSUFBSTt3QkFDWCxXQUFXLEVBQUUsMEJBQTBCO3FCQUN4QztvQkFDRDt3QkFDRSxPQUFPLEVBQUUsYUFBYTt3QkFDdEIsS0FBSyxFQUFFLElBQUk7d0JBQ1gsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQztxQkFDMUQ7aUJBQ0Y7O2FBQ0Y7OztZQXRCUSxzQkFBc0IsdUJBcUMxQixJQUFJLFlBQUksUUFBUTtZQTdDbkIsUUFBUTtZQUlSLFNBQVM7WUFIVCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgZm9yd2FyZFJlZixcclxuICBIb3N0LFxyXG4gIEluamVjdG9yLFxyXG4gIE5nWm9uZSxcclxuICBPbkluaXQsXHJcbiAgT3B0aW9uYWwsXHJcbiAgUmVuZGVyZXIyLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOR19WQUxJREFUT1JTLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgU2FjRHJvcHpvbmVTaW5nbGVDb21tb24gfSBmcm9tICdAc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NhYy1jb21tb24nO1xyXG5pbXBvcnQgeyBTYWNGb3JtTGF5b3V0RGlyZWN0aXZlIH0gZnJvbSAnLi4vbGF5b3V0L2Zvcm1sYXlvdXQuZGlyZWN0aXZlJztcclxuXHJcbi8qKlxyXG4gKiBEcm9wem9uZSBLb21wb25lbnRlIGbDvHIgZGVuIFVwbG9hZCBlaW5lcyBGaWxlc1xyXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9rdWtoYXJpZXYvbmd4LXVwbG9hZHgvXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NhYy1kcm9wem9uZXNpbmdsZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Ryb3B6b25lc2luZ2xlLmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2Ryb3B6b25lLnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICB1c2VFeGlzdGluZzogU2FjRHJvcHpvbmVTaW5nbGVDb21wb25lbnQsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2FjRHJvcHpvbmVTaW5nbGVDb21wb25lbnQpLFxyXG4gICAgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2FjRHJvcHpvbmVTaW5nbGVDb21wb25lbnRcclxuICBleHRlbmRzIFNhY0Ryb3B6b25lU2luZ2xlQ29tbW9uXHJcbiAgaW1wbGVtZW50cyBPbkluaXRcclxue1xyXG4gIC8vICNyZWdpb24gQ29uc3RydWN0b3JzXHJcblxyXG4gIC8qKlxyXG4gICAqIENvbnN0cnVjdG9yXHJcbiAgICogQHBhcmFtIGZvcm1MYXlvdXQgU2FjRm9ybUxheW91dCB0byBkZWZpbmUgc2NvcGVkIGxheW91dCBzZXR0aW5nc1xyXG4gICAqIEBwYXJhbSBpbmplY3RvciBJbmplY3RvciBmb3IgaW5qZWN0aW5nIHNlcnZpY2VzXHJcbiAgICogQHBhcmFtIHJlbmRlcmVyIEFuZ3VsYXIgcmVuZGVyaW5nIGVuZ2luZVxyXG4gICAqIEBwYXJhbSBuZ1pvbmUgbmdab25lIHRvIG1hbmFnZSBleHRlcm5hbCBqYXZhc2NyaXB0c1xyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEhvc3QoKSBAT3B0aW9uYWwoKSBmb3JtTGF5b3V0OiBTYWNGb3JtTGF5b3V0RGlyZWN0aXZlLFxyXG4gICAgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIG5nWm9uZTogTmdab25lXHJcbiAgKSB7XHJcbiAgICBzdXBlcihmb3JtTGF5b3V0LCBpbmplY3RvciwgcmVuZGVyZXIsIG5nWm9uZSk7XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xyXG5cclxuICAvLyAjcmVnaW9uIFB1YmxpYyBNZXRob2RzXHJcblxyXG4gIC8qKlxyXG4gICAqIEluaXRpYWxpc2llcnQgZGFzIENvbnRyb2xcclxuICAgKi9cclxuICBwdWJsaWMgbmdPbkluaXQoKSB7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gIH1cclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgTWV0aG9kc1xyXG59XHJcbiJdfQ==
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcHpvbmVzaW5nbGUuanMiLCJzb3VyY2VSb290IjoiQzovUHJvamVrdGUvc2ltcGxlYW5ndWxhcmNvbnRyb2xzLW5nMTAvY2guam5ldHdvcmsuc2FjLWNvbnRyb2xzL3Byb2plY3RzL3NhYy1ib290c3RyYXA1L3NyYy8iLCJzb3VyY2VzIjpbImNvbnRyb2xzL3VwbG9hZC9kcm9wem9uZXNpbmdsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixJQUFJLEVBQ0osUUFBUSxFQUNSLE1BQU0sRUFFTixRQUFRLEVBQ1IsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV4RTs7O0dBR0c7QUFrQkgsTUFBTSxPQUFPLDBCQUNYLFNBQVEsdUJBQXVCO0lBRy9CLHVCQUF1QjtJQUV2Qjs7Ozs7O09BTUc7SUFDSCxZQUNzQixVQUFrQyxFQUN0RCxRQUFrQixFQUNsQixRQUFtQixFQUNuQixNQUFjO1FBRWQsS0FBSyxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCwwQkFBMEI7SUFFMUIseUJBQXlCO0lBRXpCOztPQUVHO0lBQ0ksUUFBUTtRQUNiLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNuQixDQUFDOzs7WUFoREYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxvQkFBb0I7Z0JBQzlCLCt5SEFBb0M7Z0JBRXBDLFNBQVMsRUFBRTtvQkFDVDt3QkFDRSxPQUFPLEVBQUUsaUJBQWlCO3dCQUMxQixLQUFLLEVBQUUsSUFBSTt3QkFDWCxXQUFXLEVBQUUsMEJBQTBCO3FCQUN4QztvQkFDRDt3QkFDRSxPQUFPLEVBQUUsYUFBYTt3QkFDdEIsS0FBSyxFQUFFLElBQUk7d0JBQ1gsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQztxQkFDMUQ7aUJBQ0Y7O2FBQ0Y7OztZQXRCUSxzQkFBc0IsdUJBcUMxQixJQUFJLFlBQUksUUFBUTtZQTdDbkIsUUFBUTtZQUlSLFNBQVM7WUFIVCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgZm9yd2FyZFJlZixcclxuICBIb3N0LFxyXG4gIEluamVjdG9yLFxyXG4gIE5nWm9uZSxcclxuICBPbkluaXQsXHJcbiAgT3B0aW9uYWwsXHJcbiAgUmVuZGVyZXIyLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOR19WQUxJREFUT1JTLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgU2FjRHJvcHpvbmVTaW5nbGVDb21tb24gfSBmcm9tICdAc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NhYy1jb21tb24nO1xyXG5pbXBvcnQgeyBTYWNGb3JtTGF5b3V0RGlyZWN0aXZlIH0gZnJvbSAnLi4vbGF5b3V0L2Zvcm1sYXlvdXQuZGlyZWN0aXZlJztcclxuXHJcbi8qKlxyXG4gKiBEcm9wem9uZSBLb21wb25lbnRlIGbDvHIgZGVuIFVwbG9hZCBlaW5lcyBGaWxlc1xyXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9rdWtoYXJpZXYvbmd4LXVwbG9hZHgvXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NhYy1kcm9wem9uZXNpbmdsZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Ryb3B6b25lc2luZ2xlLmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2Ryb3B6b25lLnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICB1c2VFeGlzdGluZzogU2FjRHJvcHpvbmVTaW5nbGVDb21wb25lbnQsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2FjRHJvcHpvbmVTaW5nbGVDb21wb25lbnQpLFxyXG4gICAgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2FjRHJvcHpvbmVTaW5nbGVDb21wb25lbnRcclxuICBleHRlbmRzIFNhY0Ryb3B6b25lU2luZ2xlQ29tbW9uXHJcbiAgaW1wbGVtZW50cyBPbkluaXRcclxue1xyXG4gIC8vICNyZWdpb24gQ29uc3RydWN0b3JzXHJcblxyXG4gIC8qKlxyXG4gICAqIENvbnN0cnVjdG9yXHJcbiAgICogQHBhcmFtIGZvcm1MYXlvdXQgU2FjRm9ybUxheW91dCB0byBkZWZpbmUgc2NvcGVkIGxheW91dCBzZXR0aW5nc1xyXG4gICAqIEBwYXJhbSBpbmplY3RvciBJbmplY3RvciBmb3IgaW5qZWN0aW5nIHNlcnZpY2VzXHJcbiAgICogQHBhcmFtIHJlbmRlcmVyIEFuZ3VsYXIgcmVuZGVyaW5nIGVuZ2luZVxyXG4gICAqIEBwYXJhbSBuZ1pvbmUgbmdab25lIHRvIG1hbmFnZSBleHRlcm5hbCBqYXZhc2NyaXB0c1xyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEhvc3QoKSBAT3B0aW9uYWwoKSBmb3JtTGF5b3V0OiBTYWNGb3JtTGF5b3V0RGlyZWN0aXZlLFxyXG4gICAgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIG5nWm9uZTogTmdab25lXHJcbiAgKSB7XHJcbiAgICBzdXBlcihmb3JtTGF5b3V0LCBpbmplY3RvciwgcmVuZGVyZXIsIG5nWm9uZSk7XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xyXG5cclxuICAvLyAjcmVnaW9uIFB1YmxpYyBNZXRob2RzXHJcblxyXG4gIC8qKlxyXG4gICAqIEluaXRpYWxpc2llcnQgZGFzIENvbnRyb2xcclxuICAgKi9cclxuICBwdWJsaWMgbmdPbkluaXQoKSB7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gIH1cclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgTWV0aG9kc1xyXG59XHJcbiJdfQ==
@@ -22,7 +22,7 @@ export class SacUploadComponent extends SacUploadSingleCommon {
22
22
  SacUploadComponent.decorators = [
23
23
  { type: Component, args: [{
24
24
  selector: 'sac-upload',
25
- template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}_label\"\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'visually-hidden', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"input-group upload-component upload-single\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n [class.is-invalid]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <!-- image-preview-input -->\r\n <div\r\n class=\"btn upload-input custom-file\"\r\n [class.disabled]=\"HasQueueItem()\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <i class=\"pe-2\" [class]=\"IconBrowse\"></i>\r\n <span class=\"upload-browse\"\r\n >{{\r\n lngResourceService.GetString(validationKeyService.UploadButtonBrowse)\r\n | async }}</span\r\n >\r\n <input\r\n type=\"file\"\r\n class=\"custom-file-input\"\r\n #files\r\n (click)=\"files.value = ''\"\r\n (uploadxState)=\"onUpload($event)\"\r\n multiple\r\n [disabled]=\"HasQueueItem()\"\r\n />\r\n </div>\r\n <div\r\n class=\"form-control upload-progress\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n >\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"Progress()===100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"Progress()\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"Progress()\"\r\n >\r\n <span class=\"progress-text text-dark\"\r\n >{{ Filename() | async }}</span\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <button\r\n class=\"btn\"\r\n (click)=\"cancelAll()\"\r\n [attr.disabled]=\"HasQueueItem() === false ? 'disabled' : null\"\r\n [class.disabled]=\"HasQueueItem() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"(autoupload === false && enablepause) || (autoupload && enablepause && IsPaused() === false)\"\r\n class=\"btn\"\r\n (click)=\"pauseAll()\"\r\n [attr.disabled]=\"IsUploading() === false ? 'disabled' : null\"\r\n [class.disabled]=\"IsUploading() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconPause\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload && enablepause && IsPaused()\"\r\n class=\"btn\"\r\n (click)=\"uploadAll()\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconContinue\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload === false\"\r\n class=\"btn text-nowrap\"\r\n (click)=\"uploadAll()\"\r\n [attr.disabled]=\"IsStateToUpload() === false ? 'disabled' : null\"\r\n [class.disabled]=\"IsStateToUpload() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconUpload\" class=\"pe-2\"></span>{{\r\n lngResourceService.GetString(validationKeyService.UploadButtonUpload) |\r\n async }}\r\n </button>\r\n </div>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n",
25
+ template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}_label\"\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'visually-hidden', componentHeight | toLabelHeight]\"\r\n >{{label}}<sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\"\r\n >\r\n <span [ngClass]=\"HelptextTooltipIcon\" class=\"ms-1\"></span></sac-tooltip\r\n ></label>\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"input-group upload-component upload-single\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n [class.is-invalid]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <!-- image-preview-input -->\r\n <div\r\n class=\"btn upload-input custom-file\"\r\n [class.disabled]=\"HasQueueItem()\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <i class=\"pe-2\" [class]=\"IconBrowse\"></i>\r\n <span class=\"upload-browse\"\r\n >{{\r\n lngResourceService.GetString(validationKeyService.UploadButtonBrowse)\r\n | async }}</span\r\n >\r\n <input\r\n type=\"file\"\r\n class=\"custom-file-input\"\r\n #files\r\n (click)=\"files.value = ''\"\r\n (uploadxState)=\"onUpload($event)\"\r\n multiple\r\n [disabled]=\"HasQueueItem()\"\r\n />\r\n </div>\r\n <div\r\n class=\"form-control upload-progress\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n >\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"Progress()===100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"Progress()\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"Progress()\"\r\n >\r\n <span class=\"progress-text text-dark\"\r\n >{{ Filename() | async }}</span\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <button\r\n class=\"btn\"\r\n (click)=\"cancelAll()\"\r\n [attr.disabled]=\"HasQueueItem() === false ? 'disabled' : null\"\r\n [class.disabled]=\"HasQueueItem() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"(autoupload === false && enablepause) || (autoupload && enablepause && IsPaused() === false)\"\r\n class=\"btn\"\r\n (click)=\"pauseAll()\"\r\n [attr.disabled]=\"IsUploading() === false ? 'disabled' : null\"\r\n [class.disabled]=\"IsUploading() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconPause\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload && enablepause && IsPaused()\"\r\n class=\"btn\"\r\n (click)=\"uploadAll()\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconContinue\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload === false\"\r\n class=\"btn text-nowrap\"\r\n (click)=\"uploadAll()\"\r\n [attr.disabled]=\"IsStateToUpload() === false ? 'disabled' : null\"\r\n [class.disabled]=\"IsStateToUpload() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconUpload\" class=\"pe-2\"></span>{{\r\n lngResourceService.GetString(validationKeyService.UploadButtonUpload) |\r\n async }}\r\n </button>\r\n </div>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n <div *ngIf=\"helptextmode === 'text' && helptext\" class=\"form-text\">\r\n {{helptext}}\r\n </div>\r\n </div>\r\n</div>\r\n",
26
26
  providers: [
27
27
  {
28
28
  provide: NG_VALUE_ACCESSOR,
@@ -44,4 +44,4 @@ SacUploadComponent.ctorParameters = () => [
44
44
  { type: Renderer2 },
45
45
  { type: NgZone }
46
46
  ];
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLmpzIiwic291cmNlUm9vdCI6IkM6L1Byb2pla3RlL3NpbXBsZWFuZ3VsYXJjb250cm9scy1uZzEwL2NoLmpuZXR3b3JrLnNhYy1jb250cm9scy9wcm9qZWN0cy9zYWMtYm9vdHN0cmFwNS9zcmMvIiwic291cmNlcyI6WyJjb250cm9scy91cGxvYWQvdXBsb2FkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLElBQUksRUFDSixRQUFRLEVBQ1IsTUFBTSxFQUNOLFFBQVEsRUFDUixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXhFOzs7R0FHRztBQWtCSCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEscUJBQXFCO0lBQzNELHVCQUF1QjtJQUV2Qjs7Ozs7O09BTUc7SUFDSCxZQUNzQixVQUFrQyxFQUN0RCxRQUFrQixFQUNsQixRQUFtQixFQUNuQixNQUFjO1FBRWQsS0FBSyxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hELENBQUM7OztZQWxDRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFlBQVk7Z0JBQ3RCLHNoSkFBNEI7Z0JBRTVCLFNBQVMsRUFBRTtvQkFDVDt3QkFDRSxPQUFPLEVBQUUsaUJBQWlCO3dCQUMxQixLQUFLLEVBQUUsSUFBSTt3QkFDWCxXQUFXLEVBQUUsa0JBQWtCO3FCQUNoQztvQkFDRDt3QkFDRSxPQUFPLEVBQUUsYUFBYTt3QkFDdEIsS0FBSyxFQUFFLElBQUk7d0JBQ1gsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztxQkFDbEQ7aUJBQ0Y7O2FBQ0Y7OztZQXRCUSxzQkFBc0IsdUJBa0MxQixJQUFJLFlBQUksUUFBUTtZQXpDbkIsUUFBUTtZQUdSLFNBQVM7WUFGVCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgZm9yd2FyZFJlZixcclxuICBIb3N0LFxyXG4gIEluamVjdG9yLFxyXG4gIE5nWm9uZSxcclxuICBPcHRpb25hbCxcclxuICBSZW5kZXJlcjIsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5HX1ZBTElEQVRPUlMsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTYWNVcGxvYWRTaW5nbGVDb21tb24gfSBmcm9tICdAc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NhYy1jb21tb24nO1xyXG5pbXBvcnQgeyBTYWNGb3JtTGF5b3V0RGlyZWN0aXZlIH0gZnJvbSAnLi4vbGF5b3V0L2Zvcm1sYXlvdXQuZGlyZWN0aXZlJztcclxuXHJcbi8qKlxyXG4gKiBVcGxvYWQgS29tcG9udGVuXHJcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2t1a2hhcmlldi9uZ3gtdXBsb2FkeC9cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2FjLXVwbG9hZCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3VwbG9hZC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi91cGxvYWQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBTYWNVcGxvYWRDb21wb25lbnQsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2FjVXBsb2FkQ29tcG9uZW50KSxcclxuICAgIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNhY1VwbG9hZENvbXBvbmVudCBleHRlbmRzIFNhY1VwbG9hZFNpbmdsZUNvbW1vbiB7XHJcbiAgLy8gI3JlZ2lvbiBDb25zdHJ1Y3RvcnNcclxuXHJcbiAgLyoqXHJcbiAgICogQ29uc3RydWN0b3JcclxuICAgKiBAcGFyYW0gZm9ybUxheW91dCBTYWNGb3JtTGF5b3V0IHRvIGRlZmluZSBzY29wZWQgbGF5b3V0IHNldHRpbmdzXHJcbiAgICogQHBhcmFtIGluamVjdG9yIEluamVjdG9yIGZvciBpbmplY3Rpbmcgc2VydmljZXNcclxuICAgKiBAcGFyYW0gcmVuZGVyZXIgQW5ndWxhciByZW5kZXJpbmcgZW5naW5lXHJcbiAgICogQHBhcmFtIG5nWm9uZSBuZ1pvbmUgdG8gbWFuYWdlIGV4dGVybmFsIGphdmFzY3JpcHRzXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASG9zdCgpIEBPcHRpb25hbCgpIGZvcm1MYXlvdXQ6IFNhY0Zvcm1MYXlvdXREaXJlY3RpdmUsXHJcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgbmdab25lOiBOZ1pvbmVcclxuICApIHtcclxuICAgIHN1cGVyKGZvcm1MYXlvdXQsIGluamVjdG9yLCByZW5kZXJlciwgbmdab25lKTtcclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb24gQ29uc3RydWN0b3JzXHJcbn1cclxuIl19
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLmpzIiwic291cmNlUm9vdCI6IkM6L1Byb2pla3RlL3NpbXBsZWFuZ3VsYXJjb250cm9scy1uZzEwL2NoLmpuZXR3b3JrLnNhYy1jb250cm9scy9wcm9qZWN0cy9zYWMtYm9vdHN0cmFwNS9zcmMvIiwic291cmNlcyI6WyJjb250cm9scy91cGxvYWQvdXBsb2FkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLElBQUksRUFDSixRQUFRLEVBQ1IsTUFBTSxFQUNOLFFBQVEsRUFDUixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXhFOzs7R0FHRztBQWtCSCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEscUJBQXFCO0lBQzNELHVCQUF1QjtJQUV2Qjs7Ozs7O09BTUc7SUFDSCxZQUNzQixVQUFrQyxFQUN0RCxRQUFrQixFQUNsQixRQUFtQixFQUNuQixNQUFjO1FBRWQsS0FBSyxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hELENBQUM7OztZQWxDRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFlBQVk7Z0JBQ3RCLGkzSkFBNEI7Z0JBRTVCLFNBQVMsRUFBRTtvQkFDVDt3QkFDRSxPQUFPLEVBQUUsaUJBQWlCO3dCQUMxQixLQUFLLEVBQUUsSUFBSTt3QkFDWCxXQUFXLEVBQUUsa0JBQWtCO3FCQUNoQztvQkFDRDt3QkFDRSxPQUFPLEVBQUUsYUFBYTt3QkFDdEIsS0FBSyxFQUFFLElBQUk7d0JBQ1gsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztxQkFDbEQ7aUJBQ0Y7O2FBQ0Y7OztZQXRCUSxzQkFBc0IsdUJBa0MxQixJQUFJLFlBQUksUUFBUTtZQXpDbkIsUUFBUTtZQUdSLFNBQVM7WUFGVCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgZm9yd2FyZFJlZixcclxuICBIb3N0LFxyXG4gIEluamVjdG9yLFxyXG4gIE5nWm9uZSxcclxuICBPcHRpb25hbCxcclxuICBSZW5kZXJlcjIsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5HX1ZBTElEQVRPUlMsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTYWNVcGxvYWRTaW5nbGVDb21tb24gfSBmcm9tICdAc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NhYy1jb21tb24nO1xyXG5pbXBvcnQgeyBTYWNGb3JtTGF5b3V0RGlyZWN0aXZlIH0gZnJvbSAnLi4vbGF5b3V0L2Zvcm1sYXlvdXQuZGlyZWN0aXZlJztcclxuXHJcbi8qKlxyXG4gKiBVcGxvYWQgS29tcG9udGVuXHJcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2t1a2hhcmlldi9uZ3gtdXBsb2FkeC9cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2FjLXVwbG9hZCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3VwbG9hZC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi91cGxvYWQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBTYWNVcGxvYWRDb21wb25lbnQsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2FjVXBsb2FkQ29tcG9uZW50KSxcclxuICAgIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNhY1VwbG9hZENvbXBvbmVudCBleHRlbmRzIFNhY1VwbG9hZFNpbmdsZUNvbW1vbiB7XHJcbiAgLy8gI3JlZ2lvbiBDb25zdHJ1Y3RvcnNcclxuXHJcbiAgLyoqXHJcbiAgICogQ29uc3RydWN0b3JcclxuICAgKiBAcGFyYW0gZm9ybUxheW91dCBTYWNGb3JtTGF5b3V0IHRvIGRlZmluZSBzY29wZWQgbGF5b3V0IHNldHRpbmdzXHJcbiAgICogQHBhcmFtIGluamVjdG9yIEluamVjdG9yIGZvciBpbmplY3Rpbmcgc2VydmljZXNcclxuICAgKiBAcGFyYW0gcmVuZGVyZXIgQW5ndWxhciByZW5kZXJpbmcgZW5naW5lXHJcbiAgICogQHBhcmFtIG5nWm9uZSBuZ1pvbmUgdG8gbWFuYWdlIGV4dGVybmFsIGphdmFzY3JpcHRzXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASG9zdCgpIEBPcHRpb25hbCgpIGZvcm1MYXlvdXQ6IFNhY0Zvcm1MYXlvdXREaXJlY3RpdmUsXHJcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgbmdab25lOiBOZ1pvbmVcclxuICApIHtcclxuICAgIHN1cGVyKGZvcm1MYXlvdXQsIGluamVjdG9yLCByZW5kZXJlciwgbmdab25lKTtcclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb24gQ29uc3RydWN0b3JzXHJcbn1cclxuIl19
@@ -2,6 +2,7 @@ import { CommonModule } from '@angular/common';
2
2
  import { NgModule } from '@angular/core';
3
3
  import { FormsModule } from '@angular/forms';
4
4
  import { SACBootstrap5LayoutModule } from '../layout/layout.module';
5
+ import { SACBootstrap5TooltipModule } from '../tooltip/tooltip.module';
5
6
  import { SacDropzoneMultipleComponent } from './dropzonemultiple';
6
7
  import { SacDropzoneSingleComponent } from './dropzonesingle';
7
8
  import { SacUploadComponent } from './upload';
@@ -16,7 +17,12 @@ SACBootstrap5UploadModule.decorators = [
16
17
  SacDropzoneSingleComponent,
17
18
  SacDropzoneMultipleComponent,
18
19
  ],
19
- imports: [CommonModule, FormsModule, SACBootstrap5LayoutModule],
20
+ imports: [
21
+ CommonModule,
22
+ FormsModule,
23
+ SACBootstrap5LayoutModule,
24
+ SACBootstrap5TooltipModule,
25
+ ],
20
26
  exports: [
21
27
  SacUploadComponent,
22
28
  SacUploadMultipleComponent,
@@ -25,4 +31,4 @@ SACBootstrap5UploadModule.decorators = [
25
31
  ],
26
32
  },] }
27
33
  ];
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJDOi9Qcm9qZWt0ZS9zaW1wbGVhbmd1bGFyY29udHJvbHMtbmcxMC9jaC5qbmV0d29yay5zYWMtY29udHJvbHMvcHJvamVjdHMvc2FjLWJvb3RzdHJhcDUvc3JjLyIsInNvdXJjZXMiOlsiY29udHJvbHMvdXBsb2FkL3VwbG9hZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzlELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM5QyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQWlCOUQsTUFBTSxPQUFPLHlCQUF5Qjs7O1lBZnJDLFFBQVEsU0FBQztnQkFDUixZQUFZLEVBQUU7b0JBQ1osa0JBQWtCO29CQUNsQiwwQkFBMEI7b0JBQzFCLDBCQUEwQjtvQkFDMUIsNEJBQTRCO2lCQUM3QjtnQkFDRCxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLHlCQUF5QixDQUFDO2dCQUMvRCxPQUFPLEVBQUU7b0JBQ1Asa0JBQWtCO29CQUNsQiwwQkFBMEI7b0JBQzFCLDBCQUEwQjtvQkFDMUIsNEJBQTRCO2lCQUM3QjthQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFNBQ0Jvb3RzdHJhcDVMYXlvdXRNb2R1bGUgfSBmcm9tICcuLi9sYXlvdXQvbGF5b3V0Lm1vZHVsZSc7XHJcbmltcG9ydCB7IFNhY0Ryb3B6b25lTXVsdGlwbGVDb21wb25lbnQgfSBmcm9tICcuL2Ryb3B6b25lbXVsdGlwbGUnO1xyXG5pbXBvcnQgeyBTYWNEcm9wem9uZVNpbmdsZUNvbXBvbmVudCB9IGZyb20gJy4vZHJvcHpvbmVzaW5nbGUnO1xyXG5pbXBvcnQgeyBTYWNVcGxvYWRDb21wb25lbnQgfSBmcm9tICcuL3VwbG9hZCc7XHJcbmltcG9ydCB7IFNhY1VwbG9hZE11bHRpcGxlQ29tcG9uZW50IH0gZnJvbSAnLi91cGxvYWRtdWx0aXBsZSc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgU2FjVXBsb2FkQ29tcG9uZW50LFxyXG4gICAgU2FjVXBsb2FkTXVsdGlwbGVDb21wb25lbnQsXHJcbiAgICBTYWNEcm9wem9uZVNpbmdsZUNvbXBvbmVudCxcclxuICAgIFNhY0Ryb3B6b25lTXVsdGlwbGVDb21wb25lbnQsXHJcbiAgXSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgU0FDQm9vdHN0cmFwNUxheW91dE1vZHVsZV0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgU2FjVXBsb2FkQ29tcG9uZW50LFxyXG4gICAgU2FjVXBsb2FkTXVsdGlwbGVDb21wb25lbnQsXHJcbiAgICBTYWNEcm9wem9uZVNpbmdsZUNvbXBvbmVudCxcclxuICAgIFNhY0Ryb3B6b25lTXVsdGlwbGVDb21wb25lbnQsXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNBQ0Jvb3RzdHJhcDVVcGxvYWRNb2R1bGUge31cclxuIl19
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJDOi9Qcm9qZWt0ZS9zaW1wbGVhbmd1bGFyY29udHJvbHMtbmcxMC9jaC5qbmV0d29yay5zYWMtY29udHJvbHMvcHJvamVjdHMvc2FjLWJvb3RzdHJhcDUvc3JjLyIsInNvdXJjZXMiOlsiY29udHJvbHMvdXBsb2FkL3VwbG9hZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzlELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM5QyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQXNCOUQsTUFBTSxPQUFPLHlCQUF5Qjs7O1lBcEJyQyxRQUFRLFNBQUM7Z0JBQ1IsWUFBWSxFQUFFO29CQUNaLGtCQUFrQjtvQkFDbEIsMEJBQTBCO29CQUMxQiwwQkFBMEI7b0JBQzFCLDRCQUE0QjtpQkFDN0I7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1osV0FBVztvQkFDWCx5QkFBeUI7b0JBQ3pCLDBCQUEwQjtpQkFDM0I7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLGtCQUFrQjtvQkFDbEIsMEJBQTBCO29CQUMxQiwwQkFBMEI7b0JBQzFCLDRCQUE0QjtpQkFDN0I7YUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTQUNCb290c3RyYXA1TGF5b3V0TW9kdWxlIH0gZnJvbSAnLi4vbGF5b3V0L2xheW91dC5tb2R1bGUnO1xyXG5pbXBvcnQgeyBTQUNCb290c3RyYXA1VG9vbHRpcE1vZHVsZSB9IGZyb20gJy4uL3Rvb2x0aXAvdG9vbHRpcC5tb2R1bGUnO1xyXG5pbXBvcnQgeyBTYWNEcm9wem9uZU11bHRpcGxlQ29tcG9uZW50IH0gZnJvbSAnLi9kcm9wem9uZW11bHRpcGxlJztcclxuaW1wb3J0IHsgU2FjRHJvcHpvbmVTaW5nbGVDb21wb25lbnQgfSBmcm9tICcuL2Ryb3B6b25lc2luZ2xlJztcclxuaW1wb3J0IHsgU2FjVXBsb2FkQ29tcG9uZW50IH0gZnJvbSAnLi91cGxvYWQnO1xyXG5pbXBvcnQgeyBTYWNVcGxvYWRNdWx0aXBsZUNvbXBvbmVudCB9IGZyb20gJy4vdXBsb2FkbXVsdGlwbGUnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIFNhY1VwbG9hZENvbXBvbmVudCxcclxuICAgIFNhY1VwbG9hZE11bHRpcGxlQ29tcG9uZW50LFxyXG4gICAgU2FjRHJvcHpvbmVTaW5nbGVDb21wb25lbnQsXHJcbiAgICBTYWNEcm9wem9uZU11bHRpcGxlQ29tcG9uZW50LFxyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBTQUNCb290c3RyYXA1TGF5b3V0TW9kdWxlLFxyXG4gICAgU0FDQm9vdHN0cmFwNVRvb2x0aXBNb2R1bGUsXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBTYWNVcGxvYWRDb21wb25lbnQsXHJcbiAgICBTYWNVcGxvYWRNdWx0aXBsZUNvbXBvbmVudCxcclxuICAgIFNhY0Ryb3B6b25lU2luZ2xlQ29tcG9uZW50LFxyXG4gICAgU2FjRHJvcHpvbmVNdWx0aXBsZUNvbXBvbmVudCxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU0FDQm9vdHN0cmFwNVVwbG9hZE1vZHVsZSB7fVxyXG4iXX0=
@@ -4,4 +4,4 @@
4
4
  * @suppress {suspiciousCode,uselessCode,missingProperties,missingOverride,checkTypes,extraRequire}
5
5
  * tslint:disable
6
6
  */
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLm1vZHVsZS5uZ2ZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiQzovUHJvamVrdGUvc2ltcGxlYW5ndWxhcmNvbnRyb2xzLW5nMTAvY2guam5ldHdvcmsuc2FjLWNvbnRyb2xzL3Byb2plY3RzL3NhYy1ib290c3RyYXA1L3NyYy8iLCJzb3VyY2VzIjpbImNvbnRyb2xzL3VwbG9hZC91cGxvYWQubW9kdWxlLm5nZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgaTAgZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyBpMSBmcm9tICcuL3VwbG9hZC5tb2R1bGUnO1xuaW1wb3J0ICogYXMgaTIgZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCAqIGFzIGkzIGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCAqIGFzIGk0IGZyb20gJy4uL2xheW91dC9mb3JtbGF5b3V0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgKiBhcyBpNSBmcm9tICcuL3VwbG9hZCc7XG5pbXBvcnQgKiBhcyBpNiBmcm9tICcuL3VwbG9hZG11bHRpcGxlJztcbmltcG9ydCAqIGFzIGk3IGZyb20gJy4vZHJvcHpvbmVzaW5nbGUnO1xuaW1wb3J0ICogYXMgaTggZnJvbSAnLi9kcm9wem9uZW11bHRpcGxlJztcbmltcG9ydCAqIGFzIGk5IGZyb20gJy4uL2xheW91dC90b2NvbnRyb2xoZWlnaHQucGlwZSc7XG5pbXBvcnQgKiBhcyBpMTAgZnJvbSAnLi4vbGF5b3V0L3RvY29udHJvbHdpZHRoY3NzLnBpcGUnO1xuaW1wb3J0ICogYXMgaTExIGZyb20gJy4uL2xheW91dC90b2xhYmVsaGVpZ2h0LnBpcGUnO1xuaW1wb3J0ICogYXMgaTEyIGZyb20gJy4uL2xheW91dC90b2xhYmVsd2lkdGhjc3MucGlwZSc7XG5pbXBvcnQgKiBhcyBpMTMgZnJvbSAnLi4vbGF5b3V0L2xheW91dC5tb2R1bGUnO1xuZXhwb3J0IGNvbnN0IFNBQ0Jvb3RzdHJhcDVVcGxvYWRNb2R1bGVOZ0ZhY3Rvcnk6aTAuTmdNb2R1bGVGYWN0b3J5PGkxLlNBQ0Jvb3RzdHJhcDVVcGxvYWRNb2R1bGU+ID0gKG51bGwgYXMgYW55KTtcbnZhciBfZGVjbDBfMDppMi5OZ0NsYXNzID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE6aTIuTmdDb21wb25lbnRPdXRsZXQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjppMi5OZ0Zvck9mPGFueSxhbnk+ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzM6aTIuTmdJZjxhbnk+ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzQ6aTIuTmdUZW1wbGF0ZU91dGxldCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81OmkyLk5nU3R5bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNjppMi5OZ1N3aXRjaCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF83OmkyLk5nU3dpdGNoQ2FzZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF84OmkyLk5nU3dpdGNoRGVmYXVsdCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF85OmkyLk5nUGx1cmFsID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEwOmkyLk5nUGx1cmFsQ2FzZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMTppMy7JtWFuZ3VsYXJfcGFja2FnZXNfZm9ybXNfZm9ybXNfeSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMjppMy5OZ1NlbGVjdE9wdGlvbiA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMzppMy7JtWFuZ3VsYXJfcGFja2FnZXNfZm9ybXNfZm9ybXNfeCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNDppMy5EZWZhdWx0VmFsdWVBY2Nlc3NvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNTppMy5OdW1iZXJWYWx1ZUFjY2Vzc29yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE2OmkzLlJhbmdlVmFsdWVBY2Nlc3NvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNzppMy5DaGVja2JveENvbnRyb2xWYWx1ZUFjY2Vzc29yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE4OmkzLlNlbGVjdENvbnRyb2xWYWx1ZUFjY2Vzc29yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE5OmkzLlNlbGVjdE11bHRpcGxlQ29udHJvbFZhbHVlQWNjZXNzb3IgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjA6aTMuUmFkaW9Db250cm9sVmFsdWVBY2Nlc3NvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yMTppMy5OZ0NvbnRyb2xTdGF0dXMgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjI6aTMuTmdDb250cm9sU3RhdHVzR3JvdXAgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjM6aTMuUmVxdWlyZWRWYWxpZGF0b3IgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjQ6aTMuTWluTGVuZ3RoVmFsaWRhdG9yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzI1OmkzLk1heExlbmd0aFZhbGlkYXRvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yNjppMy5QYXR0ZXJuVmFsaWRhdG9yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzI3OmkzLkNoZWNrYm94UmVxdWlyZWRWYWxpZGF0b3IgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjg6aTMuRW1haWxWYWxpZGF0b3IgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjk6aTMuTmdNb2RlbCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zMDppMy5OZ01vZGVsR3JvdXAgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzE6aTMuTmdGb3JtID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzMyOmk0LlNhY0Zvcm1MYXlvdXREaXJlY3RpdmUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzM6aTUuU2FjVXBsb2FkQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzM0Omk2LlNhY1VwbG9hZE11bHRpcGxlQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzM1Omk3LlNhY0Ryb3B6b25lU2luZ2xlQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzM2Omk4LlNhY0Ryb3B6b25lTXVsdGlwbGVDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzc6aTIuQXN5bmNQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzM4OmkyLlVwcGVyQ2FzZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzk6aTIuTG93ZXJDYXNlUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF80MDppMi5Kc29uUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF80MTppMi5TbGljZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDI6aTIuRGVjaW1hbFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDM6aTIuUGVyY2VudFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDQ6aTIuVGl0bGVDYXNlUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF80NTppMi5DdXJyZW5jeVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDY6aTIuRGF0ZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDc6aTIuSTE4blBsdXJhbFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDg6aTIuSTE4blNlbGVjdFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDk6aTIuS2V5VmFsdWVQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzUwOmk5LlNhY1RvQ29udHJvbEhlaWdodFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTE6aTEwLlNhY1RvQ29udHJvbFdpZHRoQ3NzUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81MjppMTEuU2FjVG9MYWJlbEhlaWdodFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTM6aTEyLlNhY1RvTGFiZWxXaWR0aENzc1BpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTQ6aTIuQ29tbW9uTW9kdWxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzU1OmkzLkZvcm1zTW9kdWxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzU2OmkxMy5TQUNCb290c3RyYXA1TGF5b3V0TW9kdWxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzU3OmkwLlRlbXBsYXRlUmVmPGFueT4gPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTg6aTAuRWxlbWVudFJlZjxhbnk+ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG5mdW5jdGlvbiBfVmlld19TYWNVcGxvYWRDb21wb25lbnRfSG9zdF8xXzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1VwbG9hZENvbXBvbmVudF8xXzEoKTp2b2lkIHtcbiAgaWYgKCgoX2RlY2wwXzMzLmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpICYmICFfZGVjbDBfMzMuaXNBZGFwdGl2ZUxhYmVsKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9ICdjb2wtMTIgY29sLWZvcm0tbGFiZWwnO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gWygoX2RlY2wwXzMzLmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpPyBfZGVjbDBfNTMudHJhbnNmb3JtKF9kZWNsMF8zMy5sYWJlbFNpemVzKTogJ3Zpc3VhbGx5LWhpZGRlbicpLFxuICAgICAgICBfZGVjbDBfNTIudHJhbnNmb3JtKF9kZWNsMF8zMy5jb21wb25lbnRIZWlnaHQpXTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IGkwLsm1aW5saW5lSW50ZXJwb2xhdGUoMSwnJyxfZGVjbDBfMzMubmFtZSwnX2xhYmVsJyk7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBpMC7JtWlubGluZUludGVycG9sYXRlKDEsJycsX2RlY2wwXzMzLm5hbWUsJycpO1xuICAgIGN1cnJWYWxfMztcbiAgICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gX2RlY2wwXzMzLmxhYmVsO1xuICAgIGN1cnJWYWxfNDtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVXBsb2FkQ29tcG9uZW50XzFfMigpOnZvaWQge1xuICBpZiAoKCgoX2RlY2wwXzMzLmF1dG91cGxvYWQgPT09IGZhbHNlKSAmJiBfZGVjbDBfMzMuZW5hYmxlcGF1c2UpIHx8ICgoX2RlY2wwXzMzLmF1dG91cGxvYWQgJiYgX2RlY2wwXzMzLmVuYWJsZXBhdXNlKSAmJiAoX2RlY2wwXzMzLklzUGF1c2VkKCkgPT09IGZhbHNlKSkpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gKChfZGVjbDBfMzMuSXNVcGxvYWRpbmcoKSA9PT0gZmFsc2UpPyAnZGlzYWJsZWQnOiBudWxsKTtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9ICgoX2RlY2wwXzMzLklzVXBsb2FkaW5nKCkgPT09IGZhbHNlKT8gJ2Rpc2FibGVkJzogbnVsbCk7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSAhKF9kZWNsMF8zMy5pbnZhbGlkICYmIChfZGVjbDBfMzMuZGlydHkgfHwgX2RlY2wwXzMzLnRvdWNoZWQpKTtcbiAgICBjdXJyVmFsXzI7XG4gICAgY29uc3QgY3VyclZhbF8zOmFueSA9IChfZGVjbDBfMzMuaW52YWxpZCAmJiAoX2RlY2wwXzMzLmRpcnR5IHx8IF9kZWNsMF8zMy50b3VjaGVkKSk7XG4gICAgY3VyclZhbF8zO1xuICAgIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfZGVjbDBfMzMuSWNvblBhdXNlO1xuICAgIGN1cnJWYWxfNDtcbiAgICBjb25zdCBwZF81OmFueSA9ICgoPGFueT5fZGVjbDBfMzMucGF1c2VBbGwoKSkgIT09IGZhbHNlKTtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVXBsb2FkQ29tcG9uZW50XzFfMygpOnZvaWQge1xuICBpZiAoKChfZGVjbDBfMzMuYXV0b3VwbG9hZCAmJiBfZGVjbDBfMzMuZW5hYmxlcGF1c2UpICYmIF9kZWNsMF8zMy5Jc1BhdXNlZCgpKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9ICEoX2RlY2wwXzMzLmludmFsaWQgJiYgKF9kZWNsMF8zMy5kaXJ0eSB8fCBfZGVjbDBfMzMudG91Y2hlZCkpO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gKF9kZWNsMF8zMy5pbnZhbGlkICYmIChfZGVjbDBfMzMuZGlydHkgfHwgX2RlY2wwXzMzLnRvdWNoZWQpKTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IF9kZWNsMF8zMy5JY29uQ29udGludWU7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IHBkXzM6YW55ID0gKCg8YW55Pl9kZWNsMF8zMy51cGxvYWRBbGwoKSkgIT09IGZhbHNlKTtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVXBsb2FkQ29tcG9uZW50XzFfNCgpOnZvaWQge1xuICBpZiAoKF9kZWNsMF8zMy5hdXRvdXBsb2FkID09PSBmYWxzZSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAoKF9kZWNsMF8zMy5Jc1N0YXRlVG9VcGxvYWQoKSA9PT0gZmFsc2UpPyAnZGlzYWJsZWQnOiBudWxsKTtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9ICgoX2RlY2wwXzMzLklzU3RhdGVUb1VwbG9hZCgpID09PSBmYWxzZSk/ICdkaXNhYmxlZCc6IG51bGwpO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gIShfZGVjbDBfMzMuaW52YWxpZCAmJiAoX2RlY2wwXzMzLmRpcnR5IHx8IF9kZWNsMF8zMy50b3VjaGVkKSk7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IGN1cnJWYWxfMzphbnkgPSAoX2RlY2wwXzMzLmludmFsaWQgJiYgKF9kZWNsMF8zMy5kaXJ0eSB8fCBfZGVjbDBfMzMudG91Y2hlZCkpO1xuICAgIGN1cnJWYWxfMztcbiAgICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gX2RlY2wwXzMzLkljb25VcGxvYWQ7XG4gICAgY3VyclZhbF80O1xuICAgIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBfZGVjbDBfMzcudHJhbnNmb3JtKF9kZWNsMF8zMy5sbmdSZXNvdXJjZVNlcnZpY2UuR2V0U3RyaW5nKF9kZWNsMF8zMy52YWxpZGF0aW9uS2V5U2VydmljZS5VcGxvYWRCdXR0b25VcGxvYWQpKTtcbiAgICBjdXJyVmFsXzU7XG4gICAgY29uc3QgcGRfNjphbnkgPSAoKDxhbnk+X2RlY2wwXzMzLnVwbG9hZEFsbCgpKSAhPT0gZmFsc2UpO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNVcGxvYWRDb21wb25lbnRfMV81KCk6dm9pZCB7XG4gIGlmICgoKF9kZWNsMF8zMy5pc2lubGluZWVycm9yZW5hYmxlZCAmJiBfZGVjbDBfMzMuaW52YWxpZCkgJiYgKF9kZWNsMF8zMy5kaXJ0eSB8fCBfZGVjbDBfMzMudG91Y2hlZCkpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzM3LnRyYW5zZm9ybShfZGVjbDBfMzMuR2V0RXJyb3JNZXNzYWdlKCkpO1xuICAgIGN1cnJWYWxfMDtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVXBsb2FkQ29tcG9uZW50XzFfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzMzLmRpc2FibGVsYWJlbDtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gKChfZGVjbDBfMzMuZGlzYWJsZWxhYmVsID09PSBmYWxzZSkgJiYgIV9kZWNsMF8zMy5pc0FkYXB0aXZlTGFiZWwpO1xuICBjdXJyVmFsXzE7XG4gIGNvbnN0IGN1cnJWYWxfMjphbnkgPSAnY29sLTEyJztcbiAgY3VyclZhbF8yO1xuICBjb25zdCBjdXJyVmFsXzM6YW55ID0gWygoX2RlY2wwXzMzLmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpPyBfZGVjbDBfNTEudHJhbnNmb3JtKF9kZWNsMF8zMy5sYWJlbFNpemVzKTogJycpXTtcbiAgY3VyclZhbF8zO1xuICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gKF9kZWNsMF8zMy5jb21wb25lbnRIZWlnaHQgPT09IF9kZWNsMF8zMy5Db250cm9sSGVpZ2h0LlNtYWxsKTtcbiAgY3VyclZhbF80O1xuICBjb25zdCBjdXJyVmFsXzU6YW55ID0gKF9kZWNsMF8zMy5jb21wb25lbnRIZWlnaHQgPT09IF9kZWNsMF8zMy5Db250cm9sSGVpZ2h0LkxhcmdlKTtcbiAgY3VyclZhbF81O1xuICBjb25zdCBjdXJyVmFsXzY6YW55ID0gKChfZGVjbDBfMzMuaXNpbmxpbmVlcnJvcmVuYWJsZWQgJiYgX2RlY2wwXzMzLmludmFsaWQpICYmIChfZGVjbDBfMzMuZGlydHkgfHwgX2RlY2wwXzMzLnRvdWNoZWQpKTtcbiAgY3VyclZhbF82O1xuICBjb25zdCBjdXJyVmFsXzc6YW55ID0gX2RlY2wwXzMzLkhhc1F1ZXVlSXRlbSgpO1xuICBjdXJyVmFsXzc7XG4gIGNvbnN0IGN1cnJWYWxfODphbnkgPSAhKF9kZWNsMF8zMy5pbnZhbGlkICYmIChfZGVjbDBfMzMuZGlydHkgfHwgX2RlY2wwXzMzLnRvdWNoZWQpKTtcbiAgY3VyclZhbF84O1xuICBjb25zdCBjdXJyVmFsXzk6YW55ID0gKF9kZWNsMF8zMy5pbnZhbGlkICYmIChfZGVjbDBfMzMuZGlydHkgfHwgX2RlY2wwXzMzLnRvdWNoZWQpKTtcbiAgY3VyclZhbF85O1xuICBjb25zdCBjdXJyVmFsXzEwOmFueSA9IF9kZWNsMF8zMy5JY29uQnJvd3NlO1xuICBjdXJyVmFsXzEwO1xuICBjb25zdCBjdXJyVmFsXzExOmFueSA9IF9kZWNsMF8zNy50cmFuc2Zvcm0oX2RlY2wwXzMzLmxuZ1Jlc291cmNlU2VydmljZS5HZXRTdHJpbmcoX2RlY2wwXzMzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlVwbG9hZEJ1dHRvbkJyb3dzZSkpO1xuICBjdXJyVmFsXzExO1xuICBjb25zdCBjdXJyVmFsXzEyOmFueSA9IF9kZWNsMF8zMy5IYXNRdWV1ZUl0ZW0oKTtcbiAgY3VyclZhbF8xMjtcbiAgY29uc3QgY3VyclZhbF8xMzphbnkgPSAnZm9ybS1jb250cm9sIHVwbG9hZC1wcm9ncmVzcyc7XG4gIGN1cnJWYWxfMTM7XG4gIGNvbnN0IGN1cnJWYWxfMTQ6YW55ID0gW19kZWNsMF81MC50cmFuc2Zvcm0oX2RlY2wwXzMzLmNvbXBvbmVudEhlaWdodCldO1xuICBjdXJyVmFsXzE0O1xuICBjb25zdCBjdXJyVmFsXzE1OmFueSA9IChfZGVjbDBfMzMuaW52YWxpZCAmJiAoX2RlY2wwXzMzLmRpcnR5IHx8IF9kZWNsMF8zMy50b3VjaGVkKSk7XG4gIGN1cnJWYWxfMTU7XG4gIGNvbnN0IGN1cnJWYWxfMTY6YW55ID0gKF9kZWNsMF8zMy5Qcm9ncmVzcygpID09PSAxMDApO1xuICBjdXJyVmFsXzE2O1xuICBjb25zdCBjdXJyVmFsXzE3OmFueSA9IF9kZWNsMF8zMy5Qcm9ncmVzcygpO1xuICBjdXJyVmFsXzE3O1xuICBjb25zdCBjdXJyVmFsXzE4OmFueSA9IF9kZWNsMF8zMy5Qcm9ncmVzcygpO1xuICBjdXJyVmFsXzE4O1xuICBjb25zdCBjdXJyVmFsXzE5OmFueSA9IF9kZWNsMF8zNy50cmFuc2Zvcm0oX2RlY2wwXzMzLkZpbGVuYW1lKCkpO1xuICBjdXJyVmFsXzE5O1xuICBjb25zdCBjdXJyVmFsXzIwOmFueSA9ICgoX2RlY2wwXzMzLkhhc1F1ZXVlSXRlbSgpID09PSBmYWxzZSk/ICdkaXNhYmxlZCc6IG51bGwpO1xuICBjdXJyVmFsXzIwO1xuICBjb25zdCBjdXJyVmFsXzIxOmFueSA9ICgoX2RlY2wwXzMzLkhhc1F1ZXVlSXRlbSgpID09PSBmYWxzZSk/ICdkaXNhYmxlZCc6IG51bGwpO1xuICBjdXJyVmFsXzIxO1xuICBjb25zdCBjdXJyVmFsXzIyOmFueSA9ICEoX2RlY2wwXzMzLmludmFsaWQgJiYgKF9kZWNsMF8zMy5kaXJ0eSB8fCBfZGVjbDBfMzMudG91Y2hlZCkpO1xuICBjdXJyVmFsXzIyO1xuICBjb25zdCBjdXJyVmFsXzIzOmFueSA9IChfZGVjbDBfMzMuaW52YWxpZCAmJiAoX2RlY2wwXzMzLmRpcnR5IHx8IF9kZWNsMF8zMy50b3VjaGVkKSk7XG4gIGN1cnJWYWxfMjM7XG4gIGNvbnN0IGN1cnJWYWxfMjQ6YW55ID0gX2RlY2wwXzMzLkljb25EZWxldGU7XG4gIGN1cnJWYWxfMjQ7XG4gIGNvbnN0IGN1cnJWYWxfMjU6YW55ID0gKCgoX2RlY2wwXzMzLmF1dG91cGxvYWQgPT09IGZhbHNlKSAmJiBfZGVjbDBfMzMuZW5hYmxlcGF1c2UpIHx8ICgoX2RlY2wwXzMzLmF1dG91cGxvYWQgJiYgX2RlY2wwXzMzLmVuYWJsZXBhdXNlKSAmJiAoX2RlY2wwXzMzLklzUGF1c2VkKCkgPT09IGZhbHNlKSkpO1xuICBjdXJyVmFsXzI1O1xuICBjb25zdCBjdXJyVmFsXzI2OmFueSA9ICgoX2RlY2wwXzMzLmF1dG91cGxvYWQgJiYgX2RlY2wwXzMzLmVuYWJsZXBhdXNlKSAmJiBfZGVjbDBfMzMuSXNQYXVzZWQoKSk7XG4gIGN1cnJWYWxfMjY7XG4gIGNvbnN0IGN1cnJWYWxfMjc6YW55ID0gKF9kZWNsMF8zMy5hdXRvdXBsb2FkID09PSBmYWxzZSk7XG4gIGN1cnJWYWxfMjc7XG4gIGNvbnN0IGN1cnJWYWxfMjg6YW55ID0gKChfZGVjbDBfMzMuaXNpbmxpbmVlcnJvcmVuYWJsZWQgJiYgX2RlY2wwXzMzLmludmFsaWQpICYmIChfZGVjbDBfMzMuZGlydHkgfHwgX2RlY2wwXzMzLnRvdWNoZWQpKTtcbiAgY3VyclZhbF8yODtcbiAgY29uc3QgcGRfMjk6YW55ID0gKCg8YW55PihfYW55LnZhbHVlID0gJycpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8zMDphbnkgPSAoKDxhbnk+X2RlY2wwXzMzLm9uVXBsb2FkKF9hbnkpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8zMTphbnkgPSAoKDxhbnk+X2RlY2wwXzMzLmNhbmNlbEFsbCgpKSAhPT0gZmFsc2UpO1xufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVXBsb2FkTXVsdGlwbGVDb21wb25lbnRfSG9zdF8yXzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1VwbG9hZE11bHRpcGxlQ29tcG9uZW50XzJfMSgpOnZvaWQge1xuICBpZiAoKChfZGVjbDBfMzQuZGlzYWJsZWxhYmVsID09PSBmYWxzZSkgJiYgIV9kZWNsMF8zNC5pc0FkYXB0aXZlTGFiZWwpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gJ2NvbC0xMiBjb2wtZm9ybS1sYWJlbCc7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBbKChfZGVjbDBfMzQuZGlzYWJsZWxhYmVsID09PSBmYWxzZSk/IF9kZWNsMF81My50cmFuc2Zvcm0oX2RlY2wwXzM0LmxhYmVsU2l6ZXMpOiAndmlzdWFsbHktaGlkZGVuJyksXG4gICAgICAgIF9kZWNsMF81Mi50cmFuc2Zvcm0oX2RlY2wwXzM0LmNvbXBvbmVudEhlaWdodCldO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gaTAuybVpbmxpbmVJbnRlcnBvbGF0ZSgxLCcnLF9kZWNsMF8zNC5uYW1lLCdfbGFiZWwnKTtcbiAgICBjdXJyVmFsXzI7XG4gICAgY29uc3QgY3VyclZhbF8zOmFueSA9IGkwLsm1aW5saW5lSW50ZXJwb2xhdGUoMSwnJyxfZGVjbDBfMzQubmFtZSwnJyk7XG4gICAgY3VyclZhbF8zO1xuICAgIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfZGVjbDBfMzQubGFiZWw7XG4gICAgY3VyclZhbF80O1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNVcGxvYWRNdWx0aXBsZUNvbXBvbmVudF8yXzIoKTp2b2lkIHtcbiAgaWYgKCgoKF9kZWNsMF8zNC5hdXRvdXBsb2FkID09PSBmYWxzZSkgJiYgX2RlY2wwXzM0LmVuYWJsZXBhdXNlKSB8fCAoKF9kZWNsMF8zNC5hdXRvdXBsb2FkICYmIF9kZWNsMF8zNC5lbmFibGVwYXVzZSkgJiYgKF9kZWNsMF8zNC5Jc1BhdXNlZCgpID09PSBmYWxzZSkpKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9ICgoX2RlY2wwXzM0LklzVXBsb2FkaW5nKCkgPT09IGZhbHNlKT8gJ2Rpc2FibGVkJzogbnVsbCk7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSAhKF9kZWNsMF8zNC5pbnZhbGlkICYmIChfZGVjbDBfMzQuZGlydHkgfHwgX2RlY2wwXzM0LnRvdWNoZWQpKTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IChfZGVjbDBfMzQuaW52YWxpZCAmJiAoX2RlY2wwXzM0LmRpcnR5IHx8IF9kZWNsMF8zNC50b3VjaGVkKSk7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfZGVjbDBfMzQuSWNvblBhdXNlO1xuICAgIGN1cnJWYWxfMztcbiAgICBjb25zdCBwZF80OmFueSA9ICgoPGFueT5fZGVjbDBfMzQucGF1c2VBbGwoKSkgIT09IGZhbHNlKTtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVXBsb2FkTXVsdGlwbGVDb21wb25lbnRfMl8zKCk6dm9pZCB7XG4gIGlmICgoKF9kZWNsMF8zNC5hdXRvdXBsb2FkICYmIF9kZWNsMF8zNC5lbmFibGVwYXVzZSkgJiYgKF9kZWNsMF8zNC5Jc1BhdXNlZCgpID09PSB0cnVlKSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAhKF9kZWNsMF8zNC5pbnZhbGlkICYmIChfZGVjbDBfMzQuZGlydHkgfHwgX2RlY2wwXzM0LnRvdWNoZWQpKTtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IChfZGVjbDBfMzQuaW52YWxpZCAmJiAoX2RlY2wwXzM0LmRpcnR5IHx8IF9kZWNsMF8zNC50b3VjaGVkKSk7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBfZGVjbDBfMzQuSWNvbkNvbnRpbnVlO1xuICAgIGN1cnJWYWxfMjtcbiAgICBjb25zdCBwZF8zOmFueSA9ICgoPGFueT5fZGVjbDBfMzQudXBsb2FkQWxsKCkpICE9PSBmYWxzZSk7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1VwbG9hZE11bHRpcGxlQ29tcG9uZW50XzJfNCgpOnZvaWQge1xuICBpZiAoKF9kZWNsMF8zNC5hdXRvdXBsb2FkID09PSBmYWxzZSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAoKF9kZWNsMF8zNC5Jc1N0YXRlVG9VcGxvYWQoKSA9PT0gZmFsc2UpPyAnZGlzYWJsZWQnOiBudWxsKTtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9ICEoX2RlY2wwXzM0LmludmFsaWQgJiYgKF9kZWNsMF8zNC5kaXJ0eSB8fCBfZGVjbDBfMzQudG91Y2hlZCkpO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gKF9kZWNsMF8zNC5pbnZhbGlkICYmIChfZGVjbDBfMzQuZGlydHkgfHwgX2RlY2wwXzM0LnRvdWNoZWQpKTtcbiAgICBjdXJyVmFsXzI7XG4gICAgY29uc3QgY3VyclZhbF8zOmFueSA9IF9kZWNsMF8zNC5JY29uVXBsb2FkO1xuICAgIGN1cnJWYWxfMztcbiAgICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gX2RlY2wwXzM3LnRyYW5zZm9ybShfZGVjbDBfMzQubG5nUmVzb3VyY2VTZXJ2aWNlLkdldFN0cmluZyhfZGVjbDBfMzQudmFsaWRhdGlvbktleVNlcnZpY2UuVXBsb2FkQnV0dG9uVXBsb2FkKSk7XG4gICAgY3VyclZhbF80O1xuICAgIGNvbnN0IHBkXzU6YW55ID0gKCg8YW55Pl9kZWNsMF8zNC51cGxvYWRBbGwoKSkgIT09IGZhbHNlKTtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVXBsb2FkTXVsdGlwbGVDb21wb25lbnRfMl81KCk6dm9pZCB7XG4gIGlmICgoKF9kZWNsMF8zNC5pc2lubGluZWVycm9yZW5hYmxlZCAmJiBfZGVjbDBfMzQuaW52YWxpZCkgJiYgKF9kZWNsMF8zNC5kaXJ0eSB8fCBfZGVjbDBfMzQudG91Y2hlZCkpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzM3LnRyYW5zZm9ybShfZGVjbDBfMzQuR2V0RXJyb3JNZXNzYWdlKCkpO1xuICAgIGN1cnJWYWxfMDtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVXBsb2FkTXVsdGlwbGVDb21wb25lbnRfMl83KCk6dm9pZCB7XG4gIGlmICgoKChfZGVjbDBfMzQuYXV0b3VwbG9hZCA9PT0gZmFsc2UpICYmIF9kZWNsMF8zNC5lbmFibGVwYXVzZSkgfHwgKChfZGVjbDBfMzQuYXV0b3VwbG9hZCAmJiBfZGVjbDBfMzQuZW5hYmxlcGF1c2UpICYmIChfYW55LnN0YXR1cyAhPT0gJ3BhdXNlZCcpKSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAoKF9hbnkuc3RhdHVzICE9PSAndXBsb2FkaW5nJyk/ICdkaXNhYmxlZCc6IG51bGwpO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gIShfZGVjbDBfMzQuaW52YWxpZCAmJiAoX2RlY2wwXzM0LmRpcnR5IHx8IF9kZWNsMF8zNC50b3VjaGVkKSk7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSAoX2RlY2wwXzM0LmludmFsaWQgJiYgKF9kZWNsMF8zNC5kaXJ0eSB8fCBfZGVjbDBfMzQudG91Y2hlZCkpO1xuICAgIGN1cnJWYWxfMjtcbiAgICBjb25zdCBjdXJyVmFsXzM6YW55ID0gX2RlY2wwXzM0Lkljb25QYXVzZTtcbiAgICBjdXJyVmFsXzM7XG4gICAgY29uc3QgcGRfNDphbnkgPSAoKDxhbnk+X2RlY2wwXzM0LnBhdXNlKF9hbnkudXBsb2FkSWQpKSAhPT0gZmFsc2UpO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNVcGxvYWRNdWx0aXBsZUNvbXBvbmVudF8yXzgoKTp2b2lkIHtcbiAgaWYgKCgoX2RlY2wwXzM0LmF1dG91cGxvYWQgJiYgX2RlY2wwXzM0LmVuYWJsZXBhdXNlKSAmJiAoX2FueS5zdGF0dXMgPT09ICdwYXVzZWQnKSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAhKF9kZWNsMF8zNC5pbnZhbGlkICYmIChfZGVjbDBfMzQuZGlydHkgfHwgX2RlY2wwXzM0LnRvdWNoZWQpKTtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IChfZGVjbDBfMzQuaW52YWxpZCAmJiAoX2RlY2wwXzM0LmRpcnR5IHx8IF9kZWNsMF8zNC50b3VjaGVkKSk7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBfZGVjbDBfMzQuSWNvbkNvbnRpbnVlO1xuICAgIGN1cnJWYWxfMjtcbiAgICBjb25zdCBwZF8zOmFueSA9ICgoPGFueT5fZGVjbDBfMzQudXBsb2FkKF9hbnkudXBsb2FkSWQpKSAhPT0gZmFsc2UpO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNVcGxvYWRNdWx0aXBsZUNvbXBvbmVudF8yXzkoKTp2b2lkIHtcbiAgaWYgKChfZGVjbDBfMzQuYXV0b3VwbG9hZCA9PT0gZmFsc2UpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gKCgoX2FueS5zdGF0dXMgIT09ICdhZGRlZCcpICYmIChfYW55LnN0YXR1cyAhPT0gJ3BhdXNlZCcpKT8gJ2Rpc2FibGVkJzogbnVsbCk7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSAhKF9kZWNsMF8zNC5pbnZhbGlkICYmIChfZGVjbDBfMzQuZGlydHkgfHwgX2RlY2wwXzM0LnRvdWNoZWQpKTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IChfZGVjbDBfMzQuaW52YWxpZCAmJiAoX2RlY2wwXzM0LmRpcnR5IHx8IF9kZWNsMF8zNC50b3VjaGVkKSk7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfZGVjbDBfMzQuSWNvblVwbG9hZDtcbiAgICBjdXJyVmFsXzM7XG4gICAgY29uc3QgY3VyclZhbF80OmFueSA9IF9kZWNsMF8zNy50cmFuc2Zvcm0oX2RlY2wwXzM0LmxuZ1Jlc291cmNlU2VydmljZS5HZXRTdHJpbmcoX2RlY2wwXzM0LnZhbGlkYXRpb25LZXlTZXJ2aWNlLlVwbG9hZEJ1dHRvblVwbG9hZCkpO1xuICAgIGN1cnJWYWxfNDtcbiAgICBjb25zdCBwZF81OmFueSA9ICgoPGFueT5fZGVjbDBfMzQudXBsb2FkKF9hbnkudXBsb2FkSWQpKSAhPT0gZmFsc2UpO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNVcGxvYWRNdWx0aXBsZUNvbXBvbmVudF8yXzYoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9IChfZGVjbDBfMzQuY29tcG9uZW50SGVpZ2h0ID09PSBfZGVjbDBfMzQuQ29udHJvbEhlaWdodC5TbWFsbCk7XG4gIGN1cnJWYWxfMDtcbiAgY29uc3QgY3VyclZhbF8xOmFueSA9IChfZGVjbDBfMzQuY29tcG9uZW50SGVpZ2h0ID09PSBfZGVjbDBfMzQuQ29udHJvbEhlaWdodC5MYXJnZSk7XG4gIGN1cnJWYWxfMTtcbiAgY29uc3QgY3VyclZhbF8yOmFueSA9IChfZGVjbDBfMzQuaW52YWxpZCAmJiAoX2RlY2wwXzM0LmRpcnR5IHx8IF9kZWNsMF8zNC50b3VjaGVkKSk7XG4gIGN1cnJWYWxfMjtcbiAgY29uc3QgY3VyclZhbF8zOmFueSA9IChfYW55LnByb2dyZXNzID09PSAxMDApO1xuICBjdXJyVmFsXzM7XG4gIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfYW55LnByb2dyZXNzO1xuICBjdXJyVmFsXzQ7XG4gIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBfYW55LnByb2dyZXNzO1xuICBjdXJyVmFsXzU7XG4gIGNvbnN0IGN1cnJWYWxfNjphbnkgPSBfYW55Lm5hbWU7XG4gIGN1cnJWYWxfNjtcbiAgY29uc3QgY3VyclZhbF83OmFueSA9ICEoX2RlY2wwXzM0LmludmFsaWQgJiYgKF9kZWNsMF8zNC5kaXJ0eSB8fCBfZGVjbDBfMzQudG91Y2hlZCkpO1xuICBjdXJyVmFsXzc7XG4gIGNvbnN0IGN1cnJWYWxfODphbnkgPSAoX2RlY2wwXzM0LmludmFsaWQgJiYgKF9kZWNsMF8zNC5kaXJ0eSB8fCBfZGVjbDBfMzQudG91Y2hlZCkpO1xuICBjdXJyVmFsXzg7XG4gIGNvbnN0IGN1cnJWYWxfOTphbnkgPSBfZGVjbDBfMzQuSWNvbkRlbGV0ZTtcbiAgY3VyclZhbF85O1xuICBjb25zdCBjdXJyVmFsXzEwOmFueSA9ICgoKF9kZWNsMF8zNC5hdXRvdXBsb2FkID09PSBmYWxzZSkgJiYgX2RlY2wwXzM0LmVuYWJsZXBhdXNlKSB8fCAoKF9kZWNsMF8zNC5hdXRvdXBsb2FkICYmIF9kZWNsMF8zNC5lbmFibGVwYXVzZSkgJiYgKF9hbnkuc3RhdHVzICE9PSAncGF1c2VkJykpKTtcbiAgY3VyclZhbF8xMDtcbiAgY29uc3QgY3VyclZhbF8xMTphbnkgPSAoKF9kZWNsMF8zNC5hdXRvdXBsb2FkICYmIF9kZWNsMF8zNC5lbmFibGVwYXVzZSkgJiYgKF9hbnkuc3RhdHVzID09PSAncGF1c2VkJykpO1xuICBjdXJyVmFsXzExO1xuICBjb25zdCBjdXJyVmFsXzEyOmFueSA9IChfZGVjbDBfMzQuYXV0b3VwbG9hZCA9PT0gZmFsc2UpO1xuICBjdXJyVmFsXzEyO1xuICBjb25zdCBwZF8xMzphbnkgPSAoKDxhbnk+X2RlY2wwXzM0LmNhbmNlbChfYW55LnVwbG9hZElkKSkgIT09IGZhbHNlKTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1VwbG9hZE11bHRpcGxlQ29tcG9uZW50XzJfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzM0LmRpc2FibGVsYWJlbDtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gKChfZGVjbDBfMzQuZGlzYWJsZWxhYmVsID09PSBmYWxzZSkgJiYgIV9kZWNsMF8zNC5pc0FkYXB0aXZlTGFiZWwpO1xuICBjdXJyVmFsXzE7XG4gIGNvbnN0IGN1cnJWYWxfMjphbnkgPSAnY29sLTEyJztcbiAgY3VyclZhbF8yO1xuICBjb25zdCBjdXJyVmFsXzM6YW55ID0gWygoX2RlY2wwXzM0LmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpPyBfZGVjbDBfNTEudHJhbnNmb3JtKF9kZWNsMF8zNC5sYWJlbFNpemVzKTogJycpXTtcbiAgY3VyclZhbF8zO1xuICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gKF9kZWNsMF8zNC5jb21wb25lbnRIZWlnaHQgPT09IF9kZWNsMF8zNC5Db250cm9sSGVpZ2h0LlNtYWxsKTtcbiAgY3VyclZhbF80O1xuICBjb25zdCBjdXJyVmFsXzU6YW55ID0gKF9kZWNsMF8zNC5jb21wb25lbnRIZWlnaHQgPT09IF9kZWNsMF8zNC5Db250cm9sSGVpZ2h0LkxhcmdlKTtcbiAgY3VyclZhbF81O1xuICBjb25zdCBjdXJyVmFsXzY6YW55ID0gKChfZGVjbDBfMzQuaXNpbmxpbmVlcnJvcmVuYWJsZWQgJiYgX2RlY2wwXzM0LmludmFsaWQpICYmIChfZGVjbDBfMzQuZGlydHkgfHwgX2RlY2wwXzM0LnRvdWNoZWQpKTtcbiAgY3VyclZhbF82O1xuICBjb25zdCBjdXJyVmFsXzc6YW55ID0gKChfZGVjbDBfMzQubWF4ZmlsZXMgPiAwKSAmJiAoX2RlY2wwXzM0LnVwbG9hZHMubGVuZ3RoID49IF9kZWNsMF8zNC5tYXhmaWxlcykpO1xuICBjdXJyVmFsXzc7XG4gIGNvbnN0IGN1cnJWYWxfODphbnkgPSAhKF9kZWNsMF8zNC5pbnZhbGlkICYmIChfZGVjbDBfMzQuZGlydHkgfHwgX2RlY2wwXzM0LnRvdWNoZWQpKTtcbiAgY3VyclZhbF84O1xuICBjb25zdCBjdXJyVmFsXzk6YW55ID0gKF9kZWNsMF8zNC5pbnZhbGlkICYmIChfZGVjbDBfMzQuZGlydHkgfHwgX2RlY2wwXzM0LnRvdWNoZWQpKTtcbiAgY3VyclZhbF85O1xuICBjb25zdCBjdXJyVmFsXzEwOmFueSA9IF9kZWNsMF8zNC5JY29uQnJvd3NlO1xuICBjdXJyVmFsXzEwO1xuICBjb25zdCBjdXJyVmFsXzExOmFueSA9ICgoX2RlY2wwXzM0Lm1heGZpbGVzID4gMCkgJiYgKF9kZWNsMF8zNC51cGxvYWRzLmxlbmd0aCA+PSBfZGVjbDBfMzQubWF4ZmlsZXMpKTtcbiAgY3VyclZhbF8xMTtcbiAgY29uc3QgY3VyclZhbF8xMjphbnkgPSAoX2RlY2wwXzM0LmNvbXBvbmVudEhlaWdodCA9PT0gX2RlY2wwXzM0LkNvbnRyb2xIZWlnaHQuU21hbGwpO1xuICBjdXJyVmFsXzEyO1xuICBjb25zdCBjdXJyVmFsXzEzOmFueSA9IChfZGVjbDBfMzQuY29tcG9uZW50SGVpZ2h0ID09PSBfZGVjbDBfMzQuQ29udHJvbEhlaWdodC5MYXJnZSk7XG4gIGN1cnJWYWxfMTM7XG4gIGNvbnN0IGN1cnJWYWxfMTQ6YW55ID0gKChfZGVjbDBfMzQuSGFzUXVldWVJdGVtKCkgPT09IGZhbHNlKT8gJ2Rpc2FibGVkJzogbnVsbCk7XG4gIGN1cnJWYWxfMTQ7XG4gIGNvbnN0IGN1cnJWYWxfMTU6YW55ID0gIShfZGVjbDBfMzQuaW52YWxpZCAmJiAoX2RlY2wwXzM0LmRpcnR5IHx8IF9kZWNsMF8zNC50b3VjaGVkKSk7XG4gIGN1cnJWYWxfMTU7XG4gIGNvbnN0IGN1cnJWYWxfMTY6YW55ID0gKF9kZWNsMF8zNC5pbnZhbGlkICYmIChfZGVjbDBfMzQuZGlydHkgfHwgX2RlY2wwXzM0LnRvdWNoZWQpKTtcbiAgY3VyclZhbF8xNjtcbiAgY29uc3QgY3VyclZhbF8xNzphbnkgPSBfZGVjbDBfMzQuSWNvbkRlbGV0ZTtcbiAgY3VyclZhbF8xNztcbiAgY29uc3QgY3VyclZhbF8xODphbnkgPSAoKChfZGVjbDBfMzQuYXV0b3VwbG9hZCA9PT0gZmFsc2UpICYmIF9kZWNsMF8zNC5lbmFibGVwYXVzZSkgfHwgKChfZGVjbDBfMzQuYXV0b3VwbG9hZCAmJiBfZGVjbDBfMzQuZW5hYmxlcGF1c2UpICYmIChfZGVjbDBfMzQuSXNQYXVzZWQoKSA9PT0gZmFsc2UpKSk7XG4gIGN1cnJWYWxfMTg7XG4gIGNvbnN0IGN1cnJWYWxfMTk6YW55ID0gKChfZGVjbDBfMzQuYXV0b3VwbG9hZCAmJiBfZGVjbDBfMzQuZW5hYmxlcGF1c2UpICYmIChfZGVjbDBfMzQuSXNQYXVzZWQoKSA9PT0gdHJ1ZSkpO1xuICBjdXJyVmFsXzE5O1xuICBjb25zdCBjdXJyVmFsXzIwOmFueSA9IChfZGVjbDBfMzQuYXV0b3VwbG9hZCA9PT0gZmFsc2UpO1xuICBjdXJyVmFsXzIwO1xuICBjb25zdCBjdXJyVmFsXzIxOmFueSA9ICgoX2RlY2wwXzM0LmlzaW5saW5lZXJyb3JlbmFibGVkICYmIF9kZWNsMF8zNC5pbnZhbGlkKSAmJiAoX2RlY2wwXzM0LmRpcnR5IHx8IF9kZWNsMF8zNC50b3VjaGVkKSk7XG4gIGN1cnJWYWxfMjE7XG4gIGNvbnN0IGN1cnJWYWxfMjI6YW55ID0gX2RlY2wwXzM0LnVwbG9hZHM7XG4gIGN1cnJWYWxfMjI7XG4gIGNvbnN0IHBkXzIzOmFueSA9ICgoPGFueT4oX2FueS52YWx1ZSA9ICcnKSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMjQ6YW55ID0gKCg8YW55Pl9kZWNsMF8zNC5vblVwbG9hZChfYW55KSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMjU6YW55ID0gKCg8YW55Pl9kZWNsMF8zNC5jYW5jZWxBbGwoKSkgIT09IGZhbHNlKTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY0Ryb3B6b25lU2luZ2xlQ29tcG9uZW50X0hvc3RfM18wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG59XG5mdW5jdGlvbiBfVmlld19TYWNEcm9wem9uZVNpbmdsZUNvbXBvbmVudF8zXzEoKTp2b2lkIHtcbiAgaWYgKCgoX2RlY2wwXzM1LmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpICYmICFfZGVjbDBfMzUuaXNBZGFwdGl2ZUxhYmVsKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9ICdjb2wtMTIgY29sLWZvcm0tbGFiZWwnO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gWygoX2RlY2wwXzM1LmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpPyBfZGVjbDBfNTMudHJhbnNmb3JtKF9kZWNsMF8zNS5sYWJlbFNpemVzKTogJ3Zpc3VhbGx5LWhpZGRlbicpLFxuICAgICAgICBfZGVjbDBfNTIudHJhbnNmb3JtKF9kZWNsMF8zNS5jb21wb25lbnRIZWlnaHQpXTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IGkwLsm1aW5saW5lSW50ZXJwb2xhdGUoMSwnJyxfZGVjbDBfMzUubmFtZSwnX2xhYmVsJyk7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBpMC7JtWlubGluZUludGVycG9sYXRlKDEsJycsX2RlY2wwXzM1Lm5hbWUsJycpO1xuICAgIGN1cnJWYWxfMztcbiAgICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gX2RlY2wwXzM1LmxhYmVsO1xuICAgIGN1cnJWYWxfNDtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjRHJvcHpvbmVTaW5nbGVDb21wb25lbnRfM18yKCk6dm9pZCB7XG4gIGlmICgoX2RlY2wwXzM1LnVwbG9hZHMubGVuZ3RoID09PSAwKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9ICgoX2RlY2wwXzM1LmlzaW5saW5lZXJyb3JlbmFibGVkICYmIF9kZWNsMF8zNS5pbnZhbGlkKSAmJiAoX2RlY2wwXzM1LmRpcnR5IHx8IF9kZWNsMF8zNS50b3VjaGVkKSk7XG4gICAgY3VyclZhbF8wO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNEcm9wem9uZVNpbmdsZUNvbXBvbmVudF8zXzQoKTp2b2lkIHtcbiAgaWYgKChfZGVjbDBfMzUudXBsb2Fkcy5sZW5ndGggPiAwKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IChfZGVjbDBfMzUuY29tcG9uZW50SGVpZ2h0ID09PSBfZGVjbDBfMzUuQ29udHJvbEhlaWdodC5TbWFsbCk7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSAoX2RlY2wwXzM1LmNvbXBvbmVudEhlaWdodCA9PT0gX2RlY2wwXzM1LkNvbnRyb2xIZWlnaHQuTGFyZ2UpO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gKF9hbnkucHJvZ3Jlc3MgPT09IDEwMCk7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfYW55LnByb2dyZXNzO1xuICAgIGN1cnJWYWxfMztcbiAgICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gX2FueS5wcm9ncmVzcztcbiAgICBjdXJyVmFsXzQ7XG4gICAgY29uc3QgY3VyclZhbF81OmFueSA9IF9hbnkubmFtZTtcbiAgICBjdXJyVmFsXzU7XG4gICAgY29uc3QgY3VyclZhbF82OmFueSA9ICEoX2RlY2wwXzM1LmludmFsaWQgJiYgKF9kZWNsMF8zNS5kaXJ0eSB8fCBfZGVjbDBfMzUudG91Y2hlZCkpO1xuICAgIGN1cnJWYWxfNjtcbiAgICBjb25zdCBjdXJyVmFsXzc6YW55ID0gKF9kZWNsMF8zNS5pbnZhbGlkICYmIChfZGVjbDBfMzUuZGlydHkgfHwgX2RlY2wwXzM1LnRvdWNoZWQpKTtcbiAgICBjdXJyVmFsXzc7XG4gICAgY29uc3QgY3VyclZhbF84OmFueSA9IF9kZWNsMF8zNS5JY29uRGVsZXRlO1xuICAgIGN1cnJWYWxfODtcbiAgICBjb25zdCBwZF85OmFueSA9ICgoPGFueT5fZGVjbDBfMzUuY2FuY2VsKF9hbnkudXBsb2FkSWQpKSAhPT0gZmFsc2UpO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNEcm9wem9uZVNpbmdsZUNvbXBvbmVudF8zXzMoKTp2b2lkIHtcbiAgaWYgKChfZGVjbDBfMzUudXBsb2Fkcy5sZW5ndGggPiAwKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8zNS51cGxvYWRzO1xuICAgIGN1cnJWYWxfMDtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjRHJvcHpvbmVTaW5nbGVDb21wb25lbnRfM181KCk6dm9pZCB7XG4gIGlmICgoKF9kZWNsMF8zNS5pc2lubGluZWVycm9yZW5hYmxlZCAmJiBfZGVjbDBfMzUuaW52YWxpZCkgJiYgKF9kZWNsMF8zNS5kaXJ0eSB8fCBfZGVjbDBfMzUudG91Y2hlZCkpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzM3LnRyYW5zZm9ybShfZGVjbDBfMzUuR2V0RXJyb3JNZXNzYWdlKCkpO1xuICAgIGN1cnJWYWxfMDtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjRHJvcHpvbmVTaW5nbGVDb21wb25lbnRfM18wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMzUuZGlzYWJsZWxhYmVsO1xuICBjdXJyVmFsXzA7XG4gIGNvbnN0IGN1cnJWYWxfMTphbnkgPSAoKF9kZWNsMF8zNS5kaXNhYmxlbGFiZWwgPT09IGZhbHNlKSAmJiAhX2RlY2wwXzM1LmlzQWRhcHRpdmVMYWJlbCk7XG4gIGN1cnJWYWxfMTtcbiAgY29uc3QgY3VyclZhbF8yOmFueSA9ICdjb2wtMTInO1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBbKChfZGVjbDBfMzUuZGlzYWJsZWxhYmVsID09PSBmYWxzZSk/IF9kZWNsMF81MS50cmFuc2Zvcm0oX2RlY2wwXzM1LmxhYmVsU2l6ZXMpOiAnJyldO1xuICBjdXJyVmFsXzM7XG4gIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfZGVjbDBfMzUudXBsb2FkaGVpZ2h0O1xuICBjdXJyVmFsXzQ7XG4gIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBfZGVjbDBfMzUuYWN0aXZlO1xuICBjdXJyVmFsXzU7XG4gIGNvbnN0IGN1cnJWYWxfNjphbnkgPSAoX2RlY2wwXzM1LmludmFsaWQgJiYgKF9kZWNsMF8zNS5kaXJ0eSB8fCBfZGVjbDBfMzUudG91Y2hlZCkpO1xuICBjdXJyVmFsXzY7XG4gIGNvbnN0IGN1cnJWYWxfNzphbnkgPSAoX2RlY2wwXzM1LnVwbG9hZHMubGVuZ3RoID09PSAwKTtcbiAgY3VyclZhbF83O1xuICBjb25zdCBjdXJyVmFsXzg6YW55ID0gKF9kZWNsMF8zNS51cGxvYWRzLmxlbmd0aCA+IDApO1xuICBjdXJyVmFsXzg7XG4gIGNvbnN0IGN1cnJWYWxfOTphbnkgPSBpMC7JtWlubGluZUludGVycG9sYXRlKDEsJycsX2RlY2wwXzM1Lm5hbWUsJ191cGxvYWRpbnB1dCcpO1xuICBjdXJyVmFsXzk7XG4gIGNvbnN0IGN1cnJWYWxfMTA6YW55ID0gX2RlY2wwXzM1Lkhhc1F1ZXVlSXRlbSgpO1xuICBjdXJyVmFsXzEwO1xuICBjb25zdCBjdXJyVmFsXzExOmFueSA9ICgoX2RlY2wwXzM1LmlzaW5saW5lZXJyb3JlbmFibGVkICYmIF9kZWNsMF8zNS5pbnZhbGlkKSAmJiAoX2RlY2wwXzM1LmRpcnR5IHx8IF9kZWNsMF8zNS50b3VjaGVkKSk7XG4gIGN1cnJWYWxfMTE7XG4gIGNvbnN0IHBkXzEyOmFueSA9ICgoPGFueT5fZGVjbDBfMzUuZHJvcEhhbmRsZXIoX2FueSkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzEzOmFueSA9ICgoPGFueT5fZGVjbDBfMzUub25EcmFnT3ZlcihfYW55KSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMTQ6YW55ID0gKCg8YW55Pl9kZWNsMF8zNS5vbkRyYWdMZWF2ZShfYW55KSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMTU6YW55ID0gKCg8YW55PihfYW55LnZhbHVlID0gJycpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xNjphbnkgPSAoKDxhbnk+X2RlY2wwXzM1Lm9uVXBsb2FkKF9hbnkpKSAhPT0gZmFsc2UpO1xufVxuZnVuY3Rpb24gX1ZpZXdfU2FjRHJvcHpvbmVNdWx0aXBsZUNvbXBvbmVudF9Ib3N0XzRfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xufVxuZnVuY3Rpb24gX1ZpZXdfU2FjRHJvcHpvbmVNdWx0aXBsZUNvbXBvbmVudF80XzEoKTp2b2lkIHtcbiAgaWYgKCgoX2RlY2wwXzM2LmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpICYmICFfZGVjbDBfMzYuaXNBZGFwdGl2ZUxhYmVsKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9ICdjb2wtMTIgY29sLWZvcm0tbGFiZWwnO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gWygoX2RlY2wwXzM2LmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpPyBfZGVjbDBfNTMudHJhbnNmb3JtKF9kZWNsMF8zNi5sYWJlbFNpemVzKTogJ3Zpc3VhbGx5LWhpZGRlbicpLFxuICAgICAgICBfZGVjbDBfNTIudHJhbnNmb3JtKF9kZWNsMF8zNi5jb21wb25lbnRIZWlnaHQpXTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IGkwLsm1aW5saW5lSW50ZXJwb2xhdGUoMSwnJyxfZGVjbDBfMzYubmFtZSwnX2xhYmVsJyk7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBpMC7JtWlubGluZUludGVycG9sYXRlKDEsJycsX2RlY2wwXzM2Lm5hbWUsJycpO1xuICAgIGN1cnJWYWxfMztcbiAgICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gX2RlY2wwXzM2LmxhYmVsO1xuICAgIGN1cnJWYWxfNDtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjRHJvcHpvbmVNdWx0aXBsZUNvbXBvbmVudF80XzIoKTp2b2lkIHtcbiAgaWYgKChfZGVjbDBfMzYudXBsb2Fkcy5sZW5ndGggPT09IDApKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gKChfZGVjbDBfMzYuaXNpbmxpbmVlcnJvcmVuYWJsZWQgJiYgX2RlY2wwXzM2LmludmFsaWQpICYmIChfZGVjbDBfMzYuZGlydHkgfHwgX2RlY2wwXzM2LnRvdWNoZWQpKTtcbiAgICBjdXJyVmFsXzA7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY0Ryb3B6b25lTXVsdGlwbGVDb21wb25lbnRfNF80KCk6dm9pZCB7XG4gIGlmICgoX2RlY2wwXzM2LnVwbG9hZHMubGVuZ3RoID4gMCkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAoX2FueSA+IDApO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gKF9kZWNsMF8zNi5jb21wb25lbnRIZWlnaHQgPT09IF9kZWNsMF8zNi5Db250cm9sSGVpZ2h0LlNtYWxsKTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IChfZGVjbDBfMzYuY29tcG9uZW50SGVpZ2h0ID09PSBfZGVjbDBfMzYuQ29udHJvbEhlaWdodC5MYXJnZSk7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IGN1cnJWYWxfMzphbnkgPSAoX2FueS5wcm9ncmVzcyA9PT0gMTAwKTtcbiAgICBjdXJyVmFsXzM7XG4gICAgY29uc3QgY3VyclZhbF80OmFueSA9IF9hbnkucHJvZ3Jlc3M7XG4gICAgY3VyclZhbF80O1xuICAgIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBfYW55LnByb2dyZXNzO1xuICAgIGN1cnJWYWxfNTtcbiAgICBjb25zdCBjdXJyVmFsXzY6YW55ID0gX2FueS5uYW1lO1xuICAgIGN1cnJWYWxfNjtcbiAgICBjb25zdCBjdXJyVmFsXzc6YW55ID0gIShfZGVjbDBfMzYuaW52YWxpZCAmJiAoX2RlY2wwXzM2LmRpcnR5IHx8IF9kZWNsMF8zNi50b3VjaGVkKSk7XG4gICAgY3VyclZhbF83O1xuICAgIGNvbnN0IGN1cnJWYWxfODphbnkgPSAoX2RlY2wwXzM2LmludmFsaWQgJiYgKF9kZWNsMF8zNi5kaXJ0eSB8fCBfZGVjbDBfMzYudG91Y2hlZCkpO1xuICAgIGN1cnJWYWxfODtcbiAgICBjb25zdCBjdXJyVmFsXzk6YW55ID0gX2RlY2wwXzM2Lkljb25EZWxldGU7XG4gICAgY3VyclZhbF85O1xuICAgIGNvbnN0IHBkXzEwOmFueSA9ICgoPGFueT5fZGVjbDBfMzYuY2FuY2VsKF9hbnkudXBsb2FkSWQpKSAhPT0gZmFsc2UpO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNEcm9wem9uZU11bHRpcGxlQ29tcG9uZW50XzRfMygpOnZvaWQge1xuICBpZiAoKF9kZWNsMF8zNi51cGxvYWRzLmxlbmd0aCA+IDApKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzM2LnVwbG9hZHM7XG4gICAgY3VyclZhbF8wO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNEcm9wem9uZU11bHRpcGxlQ29tcG9uZW50XzRfNSgpOnZvaWQge1xuICBpZiAoKChfZGVjbDBfMzYuaXNpbmxpbmVlcnJvcmVuYWJsZWQgJiYgX2RlY2wwXzM2LmludmFsaWQpICYmIChfZGVjbDBfMzYuZGlydHkgfHwgX2RlY2wwXzM2LnRvdWNoZWQpKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8zNy50cmFuc2Zvcm0oX2RlY2wwXzM2LkdldEVycm9yTWVzc2FnZSgpKTtcbiAgICBjdXJyVmFsXzA7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY0Ryb3B6b25lTXVsdGlwbGVDb21wb25lbnRfNF8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMzYuZGlzYWJsZWxhYmVsO1xuICBjdXJyVmFsXzA7XG4gIGNvbnN0IGN1cnJWYWxfMTphbnkgPSAoKF9kZWNsMF8zNi5kaXNhYmxlbGFiZWwgPT09IGZhbHNlKSAmJiAhX2RlY2wwXzM2LmlzQWRhcHRpdmVMYWJlbCk7XG4gIGN1cnJWYWxfMTtcbiAgY29uc3QgY3VyclZhbF8yOmFueSA9ICdjb2wtMTInO1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBbKChfZGVjbDBfMzYuZGlzYWJsZWxhYmVsID09PSBmYWxzZSk/IF9kZWNsMF81MS50cmFuc2Zvcm0oX2RlY2wwXzM2LmxhYmVsU2l6ZXMpOiAnJyldO1xuICBjdXJyVmFsXzM7XG4gIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfZGVjbDBfMzYuYWN0aXZlO1xuICBjdXJyVmFsXzQ7XG4gIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBfZGVjbDBfMzYudXBsb2FkaGVpZ2h0O1xuICBjdXJyVmFsXzU7XG4gIGNvbnN0IGN1cnJWYWxfNjphbnkgPSAoX2RlY2wwXzM2LmludmFsaWQgJiYgKF9kZWNsMF8zNi5kaXJ0eSB8fCBfZGVjbDBfMzYudG91Y2hlZCkpO1xuICBjdXJyVmFsXzY7XG4gIGNvbnN0IGN1cnJWYWxfNzphbnkgPSAoX2RlY2wwXzM2LnVwbG9hZHMubGVuZ3RoID09PSAwKTtcbiAgY3VyclZhbF83O1xuICBjb25zdCBjdXJyVmFsXzg6YW55ID0gKF9kZWNsMF8zNi51cGxvYWRzLmxlbmd0aCA+IDApO1xuICBjdXJyVmFsXzg7XG4gIGNvbnN0IGN1cnJWYWxfOTphbnkgPSBpMC7JtWlubGluZUludGVycG9sYXRlKDEsJycsX2RlY2wwXzM2Lm5hbWUsJ191cGxvYWRpbnB1dCcpO1xuICBjdXJyVmFsXzk7XG4gIGNvbnN0IGN1cnJWYWxfMTA6YW55ID0gX2RlY2wwXzM2Lkhhc1F1ZXVlSXRlbSgpO1xuICBjdXJyVmFsXzEwO1xuICBjb25zdCBjdXJyVmFsXzExOmFueSA9ICgoX2RlY2wwXzM2LmlzaW5saW5lZXJyb3JlbmFibGVkICYmIF9kZWNsMF8zNi5pbnZhbGlkKSAmJiAoX2RlY2wwXzM2LmRpcnR5IHx8IF9kZWNsMF8zNi50b3VjaGVkKSk7XG4gIGN1cnJWYWxfMTE7XG4gIGNvbnN0IHBkXzEyOmFueSA9ICgoPGFueT5fZGVjbDBfMzYuZHJvcEhhbmRsZXIoX2FueSkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzEzOmFueSA9ICgoPGFueT5fZGVjbDBfMzYub25EcmFnT3ZlcihfYW55KSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMTQ6YW55ID0gKCg8YW55Pl9kZWNsMF8zNi5vbkRyYWdMZWF2ZShfYW55KSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMTU6YW55ID0gKCg8YW55PihfYW55LnZhbHVlID0gJycpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xNjphbnkgPSAoKDxhbnk+X2RlY2wwXzM2Lm9uVXBsb2FkKF9hbnkpKSAhPT0gZmFsc2UpO1xufVxuIl19
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLm1vZHVsZS5uZ2ZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiQzovUHJvamVrdGUvc2ltcGxlYW5ndWxhcmNvbnRyb2xzLW5nMTAvY2guam5ldHdvcmsuc2FjLWNvbnRyb2xzL3Byb2plY3RzL3NhYy1ib290c3RyYXA1L3NyYy8iLCJzb3VyY2VzIjpbImNvbnRyb2xzL3VwbG9hZC91cGxvYWQubW9kdWxlLm5nZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgaTAgZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyBpMSBmcm9tICcuL3VwbG9hZC5tb2R1bGUnO1xuaW1wb3J0ICogYXMgaTIgZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCAqIGFzIGkzIGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCAqIGFzIGk0IGZyb20gJy4uL2xheW91dC9mb3JtbGF5b3V0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgKiBhcyBpNSBmcm9tICcuLi90b29sdGlwL3Rvb2x0aXAnO1xuaW1wb3J0ICogYXMgaTYgZnJvbSAnLi91cGxvYWQnO1xuaW1wb3J0ICogYXMgaTcgZnJvbSAnLi91cGxvYWRtdWx0aXBsZSc7XG5pbXBvcnQgKiBhcyBpOCBmcm9tICcuL2Ryb3B6b25lc2luZ2xlJztcbmltcG9ydCAqIGFzIGk5IGZyb20gJy4vZHJvcHpvbmVtdWx0aXBsZSc7XG5pbXBvcnQgKiBhcyBpMTAgZnJvbSAnLi4vbGF5b3V0L3RvY29udHJvbGhlaWdodC5waXBlJztcbmltcG9ydCAqIGFzIGkxMSBmcm9tICcuLi9sYXlvdXQvdG9jb250cm9sd2lkdGhjc3MucGlwZSc7XG5pbXBvcnQgKiBhcyBpMTIgZnJvbSAnLi4vbGF5b3V0L3RvbGFiZWxoZWlnaHQucGlwZSc7XG5pbXBvcnQgKiBhcyBpMTMgZnJvbSAnLi4vbGF5b3V0L3RvbGFiZWx3aWR0aGNzcy5waXBlJztcbmltcG9ydCAqIGFzIGkxNCBmcm9tICcuLi9sYXlvdXQvbGF5b3V0Lm1vZHVsZSc7XG5pbXBvcnQgKiBhcyBpMTUgZnJvbSAnLi4vdG9vbHRpcC90b29sdGlwLm1vZHVsZSc7XG5leHBvcnQgY29uc3QgU0FDQm9vdHN0cmFwNVVwbG9hZE1vZHVsZU5nRmFjdG9yeTppMC5OZ01vZHVsZUZhY3Rvcnk8aTEuU0FDQm9vdHN0cmFwNVVwbG9hZE1vZHVsZT4gPSAobnVsbCBhcyBhbnkpO1xudmFyIF9kZWNsMF8wOmkyLk5nQ2xhc3MgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTppMi5OZ0NvbXBvbmVudE91dGxldCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yOmkyLk5nRm9yT2Y8YW55LGFueT4gPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzppMi5OZ0lmPGFueT4gPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDppMi5OZ1RlbXBsYXRlT3V0bGV0ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzU6aTIuTmdTdHlsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF82OmkyLk5nU3dpdGNoID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzc6aTIuTmdTd2l0Y2hDYXNlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzg6aTIuTmdTd2l0Y2hEZWZhdWx0ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzk6aTIuTmdQbHVyYWwgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTA6aTIuTmdQbHVyYWxDYXNlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzExOmkzLsm1YW5ndWxhcl9wYWNrYWdlc19mb3Jtc19mb3Jtc195ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEyOmkzLk5nU2VsZWN0T3B0aW9uID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEzOmkzLsm1YW5ndWxhcl9wYWNrYWdlc19mb3Jtc19mb3Jtc194ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE0OmkzLkRlZmF1bHRWYWx1ZUFjY2Vzc29yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE1OmkzLk51bWJlclZhbHVlQWNjZXNzb3IgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTY6aTMuUmFuZ2VWYWx1ZUFjY2Vzc29yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE3OmkzLkNoZWNrYm94Q29udHJvbFZhbHVlQWNjZXNzb3IgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTg6aTMuU2VsZWN0Q29udHJvbFZhbHVlQWNjZXNzb3IgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTk6aTMuU2VsZWN0TXVsdGlwbGVDb250cm9sVmFsdWVBY2Nlc3NvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yMDppMy5SYWRpb0NvbnRyb2xWYWx1ZUFjY2Vzc29yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzIxOmkzLk5nQ29udHJvbFN0YXR1cyA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yMjppMy5OZ0NvbnRyb2xTdGF0dXNHcm91cCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yMzppMy5SZXF1aXJlZFZhbGlkYXRvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yNDppMy5NaW5MZW5ndGhWYWxpZGF0b3IgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjU6aTMuTWF4TGVuZ3RoVmFsaWRhdG9yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzI2OmkzLlBhdHRlcm5WYWxpZGF0b3IgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjc6aTMuQ2hlY2tib3hSZXF1aXJlZFZhbGlkYXRvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yODppMy5FbWFpbFZhbGlkYXRvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yOTppMy5OZ01vZGVsID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzMwOmkzLk5nTW9kZWxHcm91cCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zMTppMy5OZ0Zvcm0gPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzI6aTQuU2FjRm9ybUxheW91dERpcmVjdGl2ZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zMzppNS5TYWNUb29sdGlwQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzM0Omk2LlNhY1VwbG9hZENvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zNTppNy5TYWNVcGxvYWRNdWx0aXBsZUNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zNjppOC5TYWNEcm9wem9uZVNpbmdsZUNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zNzppOS5TYWNEcm9wem9uZU11bHRpcGxlQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzM4OmkyLkFzeW5jUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zOTppMi5VcHBlckNhc2VQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzQwOmkyLkxvd2VyQ2FzZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDE6aTIuSnNvblBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDI6aTIuU2xpY2VQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzQzOmkyLkRlY2ltYWxQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzQ0OmkyLlBlcmNlbnRQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzQ1OmkyLlRpdGxlQ2FzZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDY6aTIuQ3VycmVuY3lQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzQ3OmkyLkRhdGVQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzQ4OmkyLkkxOG5QbHVyYWxQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzQ5OmkyLkkxOG5TZWxlY3RQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzUwOmkyLktleVZhbHVlUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81MTppMTAuU2FjVG9Db250cm9sSGVpZ2h0UGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81MjppMTEuU2FjVG9Db250cm9sV2lkdGhDc3NQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzUzOmkxMi5TYWNUb0xhYmVsSGVpZ2h0UGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81NDppMTMuU2FjVG9MYWJlbFdpZHRoQ3NzUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81NTppMi5Db21tb25Nb2R1bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTY6aTMuRm9ybXNNb2R1bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTc6aTE0LlNBQ0Jvb3RzdHJhcDVMYXlvdXRNb2R1bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTg6aTE1LlNBQ0Jvb3RzdHJhcDVUb29sdGlwTW9kdWxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzU5OmkwLlRlbXBsYXRlUmVmPGFueT4gPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNjA6aTAuRWxlbWVudFJlZjxhbnk+ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG5mdW5jdGlvbiBfVmlld19TYWNVcGxvYWRDb21wb25lbnRfSG9zdF8xXzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1VwbG9hZENvbXBvbmVudF8xXzIoKTp2b2lkIHtcbiAgaWYgKCgoKF9kZWNsMF8zNC5kaXNhYmxlbGFiZWwgPT09IGZhbHNlKSAmJiAhX2RlY2wwXzM0LmlzQWRhcHRpdmVMYWJlbCkgJiYgKChfZGVjbDBfMzQuaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcpICYmIF9kZWNsMF8zNC5oZWxwdGV4dCkpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzM0LmhlbHB0ZXh0O1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gdHJ1ZTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9ICdtcy0xJztcbiAgICBjdXJyVmFsXzI7XG4gICAgY29uc3QgY3VyclZhbF8zOmFueSA9IF9kZWNsMF8zNC5IZWxwdGV4dFRvb2x0aXBJY29uO1xuICAgIGN1cnJWYWxfMztcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVXBsb2FkQ29tcG9uZW50XzFfMSgpOnZvaWQge1xuICBpZiAoKChfZGVjbDBfMzQuZGlzYWJsZWxhYmVsID09PSBmYWxzZSkgJiYgIV9kZWNsMF8zNC5pc0FkYXB0aXZlTGFiZWwpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gJ2NvbC0xMiBjb2wtZm9ybS1sYWJlbCc7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBbKChfZGVjbDBfMzQuZGlzYWJsZWxhYmVsID09PSBmYWxzZSk/IF9kZWNsMF81NC50cmFuc2Zvcm0oX2RlY2wwXzM0LmxhYmVsU2l6ZXMpOiAndmlzdWFsbHktaGlkZGVuJyksXG4gICAgICAgIF9kZWNsMF81My50cmFuc2Zvcm0oX2RlY2wwXzM0LmNvbXBvbmVudEhlaWdodCldO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gaTAuybVpbmxpbmVJbnRlcnBvbGF0ZSgxLCcnLF9kZWNsMF8zNC5uYW1lLCdfbGFiZWwnKTtcbiAgICBjdXJyVmFsXzI7XG4gICAgY29uc3QgY3VyclZhbF8zOmFueSA9IGkwLsm1aW5saW5lSW50ZXJwb2xhdGUoMSwnJyxfZGVjbDBfMzQubmFtZSwnJyk7XG4gICAgY3VyclZhbF8zO1xuICAgIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfZGVjbDBfMzQubGFiZWw7XG4gICAgY3VyclZhbF80O1xuICAgIGNvbnN0IGN1cnJWYWxfNTphbnkgPSAoKF9kZWNsMF8zNC5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzM0LmhlbHB0ZXh0KTtcbiAgICBjdXJyVmFsXzU7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1VwbG9hZENvbXBvbmVudF8xXzMoKTp2b2lkIHtcbiAgaWYgKCgoKF9kZWNsMF8zNC5hdXRvdXBsb2FkID09PSBmYWxzZSkgJiYgX2RlY2wwXzM0LmVuYWJsZXBhdXNlKSB8fCAoKF9kZWNsMF8zNC5hdXRvdXBsb2FkICYmIF9kZWNsMF8zNC5lbmFibGVwYXVzZSkgJiYgKF9kZWNsMF8zNC5Jc1BhdXNlZCgpID09PSBmYWxzZSkpKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9ICgoX2RlY2wwXzM0LklzVXBsb2FkaW5nKCkgPT09IGZhbHNlKT8gJ2Rpc2FibGVkJzogbnVsbCk7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSAoKF9kZWNsMF8zNC5Jc1VwbG9hZGluZygpID09PSBmYWxzZSk/ICdkaXNhYmxlZCc6IG51bGwpO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gIShfZGVjbDBfMzQuaW52YWxpZCAmJiAoX2RlY2wwXzM0LmRpcnR5IHx8IF9kZWNsMF8zNC50b3VjaGVkKSk7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IGN1cnJWYWxfMzphbnkgPSAoX2RlY2wwXzM0LmludmFsaWQgJiYgKF9kZWNsMF8zNC5kaXJ0eSB8fCBfZGVjbDBfMzQudG91Y2hlZCkpO1xuICAgIGN1cnJWYWxfMztcbiAgICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gX2RlY2wwXzM0Lkljb25QYXVzZTtcbiAgICBjdXJyVmFsXzQ7XG4gICAgY29uc3QgcGRfNTphbnkgPSAoKDxhbnk+X2RlY2wwXzM0LnBhdXNlQWxsKCkpICE9PSBmYWxzZSk7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1VwbG9hZENvbXBvbmVudF8xXzQoKTp2b2lkIHtcbiAgaWYgKCgoX2RlY2wwXzM0LmF1dG91cGxvYWQgJiYgX2RlY2wwXzM0LmVuYWJsZXBhdXNlKSAmJiBfZGVjbDBfMzQuSXNQYXVzZWQoKSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAhKF9kZWNsMF8zNC5pbnZhbGlkICYmIChfZGVjbDBfMzQuZGlydHkgfHwgX2RlY2wwXzM0LnRvdWNoZWQpKTtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IChfZGVjbDBfMzQuaW52YWxpZCAmJiAoX2RlY2wwXzM0LmRpcnR5IHx8IF9kZWNsMF8zNC50b3VjaGVkKSk7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBfZGVjbDBfMzQuSWNvbkNvbnRpbnVlO1xuICAgIGN1cnJWYWxfMjtcbiAgICBjb25zdCBwZF8zOmFueSA9ICgoPGFueT5fZGVjbDBfMzQudXBsb2FkQWxsKCkpICE9PSBmYWxzZSk7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1VwbG9hZENvbXBvbmVudF8xXzUoKTp2b2lkIHtcbiAgaWYgKChfZGVjbDBfMzQuYXV0b3VwbG9hZCA9PT0gZmFsc2UpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gKChfZGVjbDBfMzQuSXNTdGF0ZVRvVXBsb2FkKCkgPT09IGZhbHNlKT8gJ2Rpc2FibGVkJzogbnVsbCk7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSAoKF9kZWNsMF8zNC5Jc1N0YXRlVG9VcGxvYWQoKSA9PT0gZmFsc2UpPyAnZGlzYWJsZWQnOiBudWxsKTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9ICEoX2RlY2wwXzM0LmludmFsaWQgJiYgKF9kZWNsMF8zNC5kaXJ0eSB8fCBfZGVjbDBfMzQudG91Y2hlZCkpO1xuICAgIGN1cnJWYWxfMjtcbiAgICBjb25zdCBjdXJyVmFsXzM6YW55ID0gKF9kZWNsMF8zNC5pbnZhbGlkICYmIChfZGVjbDBfMzQuZGlydHkgfHwgX2RlY2wwXzM0LnRvdWNoZWQpKTtcbiAgICBjdXJyVmFsXzM7XG4gICAgY29uc3QgY3VyclZhbF80OmFueSA9IF9kZWNsMF8zNC5JY29uVXBsb2FkO1xuICAgIGN1cnJWYWxfNDtcbiAgICBjb25zdCBjdXJyVmFsXzU6YW55ID0gX2RlY2wwXzM4LnRyYW5zZm9ybShfZGVjbDBfMzQubG5nUmVzb3VyY2VTZXJ2aWNlLkdldFN0cmluZyhfZGVjbDBfMzQudmFsaWRhdGlvbktleVNlcnZpY2UuVXBsb2FkQnV0dG9uVXBsb2FkKSk7XG4gICAgY3VyclZhbF81O1xuICAgIGNvbnN0IHBkXzY6YW55ID0gKCg8YW55Pl9kZWNsMF8zNC51cGxvYWRBbGwoKSkgIT09IGZhbHNlKTtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVXBsb2FkQ29tcG9uZW50XzFfNigpOnZvaWQge1xuICBpZiAoKChfZGVjbDBfMzQuaXNpbmxpbmVlcnJvcmVuYWJsZWQgJiYgX2RlY2wwXzM0LmludmFsaWQpICYmIChfZGVjbDBfMzQuZGlydHkgfHwgX2RlY2wwXzM0LnRvdWNoZWQpKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8zOC50cmFuc2Zvcm0oX2RlY2wwXzM0LkdldEVycm9yTWVzc2FnZSgpKTtcbiAgICBjdXJyVmFsXzA7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1VwbG9hZENvbXBvbmVudF8xXzcoKTp2b2lkIHtcbiAgaWYgKCgoX2RlY2wwXzM0LmhlbHB0ZXh0bW9kZSA9PT0gJ3RleHQnKSAmJiBfZGVjbDBfMzQuaGVscHRleHQpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzM0LmhlbHB0ZXh0O1xuICAgIGN1cnJWYWxfMDtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVXBsb2FkQ29tcG9uZW50XzFfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzM0LmRpc2FibGVsYWJlbDtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gKChfZGVjbDBfMzQuZGlzYWJsZWxhYmVsID09PSBmYWxzZSkgJiYgIV9kZWNsMF8zNC5pc0FkYXB0aXZlTGFiZWwpO1xuICBjdXJyVmFsXzE7XG4gIGNvbnN0IGN1cnJWYWxfMjphbnkgPSAnY29sLTEyJztcbiAgY3VyclZhbF8yO1xuICBjb25zdCBjdXJyVmFsXzM6YW55ID0gWygoX2RlY2wwXzM0LmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpPyBfZGVjbDBfNTIudHJhbnNmb3JtKF9kZWNsMF8zNC5sYWJlbFNpemVzKTogJycpXTtcbiAgY3VyclZhbF8zO1xuICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gKF9kZWNsMF8zNC5jb21wb25lbnRIZWlnaHQgPT09IF9kZWNsMF8zNC5Db250cm9sSGVpZ2h0LlNtYWxsKTtcbiAgY3VyclZhbF80O1xuICBjb25zdCBjdXJyVmFsXzU6YW55ID0gKF9kZWNsMF8zNC5jb21wb25lbnRIZWlnaHQgPT09IF9kZWNsMF8zNC5Db250cm9sSGVpZ2h0LkxhcmdlKTtcbiAgY3VyclZhbF81O1xuICBjb25zdCBjdXJyVmFsXzY6YW55ID0gKChfZGVjbDBfMzQuaXNpbmxpbmVlcnJvcmVuYWJsZWQgJiYgX2RlY2wwXzM0LmludmFsaWQpICYmIChfZGVjbDBfMzQuZGlydHkgfHwgX2RlY2wwXzM0LnRvdWNoZWQpKTtcbiAgY3VyclZhbF82O1xuICBjb25zdCBjdXJyVmFsXzc6YW55ID0gX2RlY2wwXzM0Lkhhc1F1ZXVlSXRlbSgpO1xuICBjdXJyVmFsXzc7XG4gIGNvbnN0IGN1cnJWYWxfODphbnkgPSAhKF9kZWNsMF8zNC5pbnZhbGlkICYmIChfZGVjbDBfMzQuZGlydHkgfHwgX2RlY2wwXzM0LnRvdWNoZWQpKTtcbiAgY3VyclZhbF84O1xuICBjb25zdCBjdXJyVmFsXzk6YW55ID0gKF9kZWNsMF8zNC5pbnZhbGlkICYmIChfZGVjbDBfMzQuZGlydHkgfHwgX2RlY2wwXzM0LnRvdWNoZWQpKTtcbiAgY3VyclZhbF85O1xuICBjb25zdCBjdXJyVmFsXzEwOmFueSA9IF9kZWNsMF8zNC5JY29uQnJvd3NlO1xuICBjdXJyVmFsXzEwO1xuICBjb25zdCBjdXJyVmFsXzExOmFueSA9IF9kZWNsMF8zOC50cmFuc2Zvcm0oX2RlY2wwXzM0LmxuZ1Jlc291cmNlU2VydmljZS5HZXRTdHJpbmcoX2RlY2wwXzM0LnZhbGlkYXRpb25LZXlTZXJ2aWNlLlVwbG9hZEJ1dHRvbkJyb3dzZSkpO1xuICBjdXJyVmFsXzExO1xuICBjb25zdCBjdXJyVmFsXzEyOmFueSA9IF9kZWNsMF8zNC5IYXNRdWV1ZUl0ZW0oKTtcbiAgY3VyclZhbF8xMjtcbiAgY29uc3QgY3VyclZhbF8xMzphbnkgPSAnZm9ybS1jb250cm9sIHVwbG9hZC1wcm9ncmVzcyc7XG4gIGN1cnJWYWxfMTM7XG4gIGNvbnN0IGN1cnJWYWxfMTQ6YW55ID0gW19kZWNsMF81MS50cmFuc2Zvcm0oX2RlY2wwXzM0LmNvbXBvbmVudEhlaWdodCldO1xuICBjdXJyVmFsXzE0O1xuICBjb25zdCBjdXJyVmFsXzE1OmFueSA9IChfZGVjbDBfMzQuaW52YWxpZCAmJiAoX2RlY2wwXzM0LmRpcnR5IHx8IF9kZWNsMF8zNC50b3VjaGVkKSk7XG4gIGN1cnJWYWxfMTU7XG4gIGNvbnN0IGN1cnJWYWxfMTY6YW55ID0gKF9kZWNsMF8zNC5Qcm9ncmVzcygpID09PSAxMDApO1xuICBjdXJyVmFsXzE2O1xuICBjb25zdCBjdXJyVmFsXzE3OmFueSA9IF9kZWNsMF8zNC5Qcm9ncmVzcygpO1xuICBjdXJyVmFsXzE3O1xuICBjb25zdCBjdXJyVmFsXzE4OmFueSA9IF9kZWNsMF8zNC5Qcm9ncmVzcygpO1xuICBjdXJyVmFsXzE4O1xuICBjb25zdCBjdXJyVmFsXzE5OmFueSA9IF9kZWNsMF8zOC50cmFuc2Zvcm0oX2RlY2wwXzM0LkZpbGVuYW1lKCkpO1xuICBjdXJyVmFsXzE5O1xuICBjb25zdCBjdXJyVmFsXzIwOmFueSA9ICgoX2RlY2wwXzM0Lkhhc1F1ZXVlSXRlbSgpID09PSBmYWxzZSk/ICdkaXNhYmxlZCc6IG51bGwpO1xuICBjdXJyVmFsXzIwO1xuICBjb25zdCBjdXJyVmFsXzIxOmFueSA9ICgoX2RlY2wwXzM0Lkhhc1F1ZXVlSXRlbSgpID09PSBmYWxzZSk/ICdkaXNhYmxlZCc6IG51bGwpO1xuICBjdXJyVmFsXzIxO1xuICBjb25zdCBjdXJyVmFsXzIyOmFueSA9ICEoX2RlY2wwXzM0LmludmFsaWQgJiYgKF9kZWNsMF8zNC5kaXJ0eSB8fCBfZGVjbDBfMzQudG91Y2hlZCkpO1xuICBjdXJyVmFsXzIyO1xuICBjb25zdCBjdXJyVmFsXzIzOmFueSA9IChfZGVjbDBfMzQuaW52YWxpZCAmJiAoX2RlY2wwXzM0LmRpcnR5IHx8IF9kZWNsMF8zNC50b3VjaGVkKSk7XG4gIGN1cnJWYWxfMjM7XG4gIGNvbnN0IGN1cnJWYWxfMjQ6YW55ID0gX2RlY2wwXzM0Lkljb25EZWxldGU7XG4gIGN1cnJWYWxfMjQ7XG4gIGNvbnN0IGN1cnJWYWxfMjU6YW55ID0gKCgoX2RlY2wwXzM0LmF1dG91cGxvYWQgPT09IGZhbHNlKSAmJiBfZGVjbDBfMzQuZW5hYmxlcGF1c2UpIHx8ICgoX2RlY2wwXzM0LmF1dG91cGxvYWQgJiYgX2RlY2wwXzM0LmVuYWJsZXBhdXNlKSAmJiAoX2RlY2wwXzM0LklzUGF1c2VkKCkgPT09IGZhbHNlKSkpO1xuICBjdXJyVmFsXzI1O1xuICBjb25zdCBjdXJyVmFsXzI2OmFueSA9ICgoX2RlY2wwXzM0LmF1dG91cGxvYWQgJiYgX2RlY2wwXzM0LmVuYWJsZXBhdXNlKSAmJiBfZGVjbDBfMzQuSXNQYXVzZWQoKSk7XG4gIGN1cnJWYWxfMjY7XG4gIGNvbnN0IGN1cnJWYWxfMjc6YW55ID0gKF9kZWNsMF8zNC5hdXRvdXBsb2FkID09PSBmYWxzZSk7XG4gIGN1cnJWYWxfMjc7XG4gIGNvbnN0IGN1cnJWYWxfMjg6YW55ID0gKChfZGVjbDBfMzQuaXNpbmxpbmVlcnJvcmVuYWJsZWQgJiYgX2RlY2wwXzM0LmludmFsaWQpICYmIChfZGVjbDBfMzQuZGlydHkgfHwgX2RlY2wwXzM0LnRvdWNoZWQpKTtcbiAgY3VyclZhbF8yODtcbiAgY29uc3QgY3VyclZhbF8yOTphbnkgPSAoKF9kZWNsMF8zNC5oZWxwdGV4dG1vZGUgPT09ICd0ZXh0JykgJiYgX2RlY2wwXzM0LmhlbHB0ZXh0KTtcbiAgY3VyclZhbF8yOTtcbiAgY29uc3QgcGRfMzA6YW55ID0gKCg8YW55PihfYW55LnZhbHVlID0gJycpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8zMTphbnkgPSAoKDxhbnk+X2RlY2wwXzM0Lm9uVXBsb2FkKF9hbnkpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8zMjphbnkgPSAoKDxhbnk+X2RlY2wwXzM0LmNhbmNlbEFsbCgpKSAhPT0gZmFsc2UpO1xufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVXBsb2FkTXVsdGlwbGVDb21wb25lbnRfSG9zdF8yXzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1VwbG9hZE11bHRpcGxlQ29tcG9uZW50XzJfMigpOnZvaWQge1xuICBpZiAoKCgoX2RlY2wwXzM1LmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpICYmICFfZGVjbDBfMzUuaXNBZGFwdGl2ZUxhYmVsKSAmJiAoKF9kZWNsMF8zNS5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzM1LmhlbHB0ZXh0KSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMzUuaGVscHRleHQ7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSB0cnVlO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gJ21zLTEnO1xuICAgIGN1cnJWYWxfMjtcbiAgICBjb25zdCBjdXJyVmFsXzM6YW55ID0gX2RlY2wwXzM1LkhlbHB0ZXh0VG9vbHRpcEljb247XG4gICAgY3VyclZhbF8zO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNVcGxvYWRNdWx0aXBsZUNvbXBvbmVudF8yXzEoKTp2b2lkIHtcbiAgaWYgKCgoX2RlY2wwXzM1LmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpICYmICFfZGVjbDBfMzUuaXNBZGFwdGl2ZUxhYmVsKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9ICdjb2wtMTIgY29sLWZvcm0tbGFiZWwnO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gWygoX2RlY2wwXzM1LmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpPyBfZGVjbDBfNTQudHJhbnNmb3JtKF9kZWNsMF8zNS5sYWJlbFNpemVzKTogJ3Zpc3VhbGx5LWhpZGRlbicpLFxuICAgICAgICBfZGVjbDBfNTMudHJhbnNmb3JtKF9kZWNsMF8zNS5jb21wb25lbnRIZWlnaHQpXTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IGkwLsm1aW5saW5lSW50ZXJwb2xhdGUoMSwnJyxfZGVjbDBfMzUubmFtZSwnX2xhYmVsJyk7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBpMC7JtWlubGluZUludGVycG9sYXRlKDEsJycsX2RlY2wwXzM1Lm5hbWUsJycpO1xuICAgIGN1cnJWYWxfMztcbiAgICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gX2RlY2wwXzM1LmxhYmVsO1xuICAgIGN1cnJWYWxfNDtcbiAgICBjb25zdCBjdXJyVmFsXzU6YW55ID0gKChfZGVjbDBfMzUuaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcpICYmIF9kZWNsMF8zNS5oZWxwdGV4dCk7XG4gICAgY3VyclZhbF81O1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNVcGxvYWRNdWx0aXBsZUNvbXBvbmVudF8yXzMoKTp2b2lkIHtcbiAgaWYgKCgoKF9kZWNsMF8zNS5hdXRvdXBsb2FkID09PSBmYWxzZSkgJiYgX2RlY2wwXzM1LmVuYWJsZXBhdXNlKSB8fCAoKF9kZWNsMF8zNS5hdXRvdXBsb2FkICYmIF9kZWNsMF8zNS5lbmFibGVwYXVzZSkgJiYgKF9kZWNsMF8zNS5Jc1BhdXNlZCgpID09PSBmYWxzZSkpKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9ICgoX2RlY2wwXzM1LklzVXBsb2FkaW5nKCkgPT09IGZhbHNlKT8gJ2Rpc2FibGVkJzogbnVsbCk7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSAhKF9kZWNsMF8zNS5pbnZhbGlkICYmIChfZGVjbDBfMzUuZGlydHkgfHwgX2RlY2wwXzM1LnRvdWNoZWQpKTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IChfZGVjbDBfMzUuaW52YWxpZCAmJiAoX2RlY2wwXzM1LmRpcnR5IHx8IF9kZWNsMF8zNS50b3VjaGVkKSk7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfZGVjbDBfMzUuSWNvblBhdXNlO1xuICAgIGN1cnJWYWxfMztcbiAgICBjb25zdCBwZF80OmFueSA9ICgoPGFueT5fZGVjbDBfMzUucGF1c2VBbGwoKSkgIT09IGZhbHNlKTtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVXBsb2FkTXVsdGlwbGVDb21wb25lbnRfMl80KCk6dm9pZCB7XG4gIGlmICgoKF9kZWNsMF8zNS5hdXRvdXBsb2FkICYmIF9kZWNsMF8zNS5lbmFibGVwYXVzZSkgJiYgKF9kZWNsMF8zNS5Jc1BhdXNlZCgpID09PSB0cnVlKSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAhKF9kZWNsMF8zNS5pbnZhbGlkICYmIChfZGVjbDBfMzUuZGlydHkgfHwgX2RlY2wwXzM1LnRvdWNoZWQpKTtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IChfZGVjbDBfMzUuaW52YWxpZCAmJiAoX2RlY2wwXzM1LmRpcnR5IHx8IF9kZWNsMF8zNS50b3VjaGVkKSk7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBfZGVjbDBfMzUuSWNvbkNvbnRpbnVlO1xuICAgIGN1cnJWYWxfMjtcbiAgICBjb25zdCBwZF8zOmFueSA9ICgoPGFueT5fZGVjbDBfMzUudXBsb2FkQWxsKCkpICE9PSBmYWxzZSk7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1VwbG9hZE11bHRpcGxlQ29tcG9uZW50XzJfNSgpOnZvaWQge1xuICBpZiAoKF9kZWNsMF8zNS5hdXRvdXBsb2FkID09PSBmYWxzZSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAoKF9kZWNsMF8zNS5Jc1N0YXRlVG9VcGxvYWQoKSA9PT0gZmFsc2UpPyAnZGlzYWJsZWQnOiBudWxsKTtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9ICEoX2RlY2wwXzM1LmludmFsaWQgJiYgKF9kZWNsMF8zNS5kaXJ0eSB8fCBfZGVjbDBfMzUudG91Y2hlZCkpO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gKF9kZWNsMF8zNS5pbnZhbGlkICYmIChfZGVjbDBfMzUuZGlydHkgfHwgX2RlY2wwXzM1LnRvdWNoZWQpKTtcbiAgICBjdXJyVmFsXzI7XG4gICAgY29uc3QgY3VyclZhbF8zOmFueSA9IF9kZWNsMF8zNS5JY29uVXBsb2FkO1xuICAgIGN1cnJWYWxfMztcbiAgICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gX2RlY2wwXzM4LnRyYW5zZm9ybShfZGVjbDBfMzUubG5nUmVzb3VyY2VTZXJ2aWNlLkdldFN0cmluZyhfZGVjbDBfMzUudmFsaWRhdGlvbktleVNlcnZpY2UuVXBsb2FkQnV0dG9uVXBsb2FkKSk7XG4gICAgY3VyclZhbF80O1xuICAgIGNvbnN0IHBkXzU6YW55ID0gKCg8YW55Pl9kZWNsMF8zNS51cGxvYWRBbGwoKSkgIT09IGZhbHNlKTtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVXBsb2FkTXVsdGlwbGVDb21wb25lbnRfMl82KCk6dm9pZCB7XG4gIGlmICgoKF9kZWNsMF8zNS5pc2lubGluZWVycm9yZW5hYmxlZCAmJiBfZGVjbDBfMzUuaW52YWxpZCkgJiYgKF9kZWNsMF8zNS5kaXJ0eSB8fCBfZGVjbDBfMzUudG91Y2hlZCkpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzM4LnRyYW5zZm9ybShfZGVjbDBfMzUuR2V0RXJyb3JNZXNzYWdlKCkpO1xuICAgIGN1cnJWYWxfMDtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVXBsb2FkTXVsdGlwbGVDb21wb25lbnRfMl83KCk6dm9pZCB7XG4gIGlmICgoKF9kZWNsMF8zNS5oZWxwdGV4dG1vZGUgPT09ICd0ZXh0JykgJiYgX2RlY2wwXzM1LmhlbHB0ZXh0KSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8zNS5oZWxwdGV4dDtcbiAgICBjdXJyVmFsXzA7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1VwbG9hZE11bHRpcGxlQ29tcG9uZW50XzJfOSgpOnZvaWQge1xuICBpZiAoKCgoX2RlY2wwXzM1LmF1dG91cGxvYWQgPT09IGZhbHNlKSAmJiBfZGVjbDBfMzUuZW5hYmxlcGF1c2UpIHx8ICgoX2RlY2wwXzM1LmF1dG91cGxvYWQgJiYgX2RlY2wwXzM1LmVuYWJsZXBhdXNlKSAmJiAoX2FueS5zdGF0dXMgIT09ICdwYXVzZWQnKSkpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gKChfYW55LnN0YXR1cyAhPT0gJ3VwbG9hZGluZycpPyAnZGlzYWJsZWQnOiBudWxsKTtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9ICEoX2RlY2wwXzM1LmludmFsaWQgJiYgKF9kZWNsMF8zNS5kaXJ0eSB8fCBfZGVjbDBfMzUudG91Y2hlZCkpO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gKF9kZWNsMF8zNS5pbnZhbGlkICYmIChfZGVjbDBfMzUuZGlydHkgfHwgX2RlY2wwXzM1LnRvdWNoZWQpKTtcbiAgICBjdXJyVmFsXzI7XG4gICAgY29uc3QgY3VyclZhbF8zOmFueSA9IF9kZWNsMF8zNS5JY29uUGF1c2U7XG4gICAgY3VyclZhbF8zO1xuICAgIGNvbnN0IHBkXzQ6YW55ID0gKCg8YW55Pl9kZWNsMF8zNS5wYXVzZShfYW55LnVwbG9hZElkKSkgIT09IGZhbHNlKTtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVXBsb2FkTXVsdGlwbGVDb21wb25lbnRfMl8xMCgpOnZvaWQge1xuICBpZiAoKChfZGVjbDBfMzUuYXV0b3VwbG9hZCAmJiBfZGVjbDBfMzUuZW5hYmxlcGF1c2UpICYmIChfYW55LnN0YXR1cyA9PT0gJ3BhdXNlZCcpKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9ICEoX2RlY2wwXzM1LmludmFsaWQgJiYgKF9kZWNsMF8zNS5kaXJ0eSB8fCBfZGVjbDBfMzUudG91Y2hlZCkpO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gKF9kZWNsMF8zNS5pbnZhbGlkICYmIChfZGVjbDBfMzUuZGlydHkgfHwgX2RlY2wwXzM1LnRvdWNoZWQpKTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IF9kZWNsMF8zNS5JY29uQ29udGludWU7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IHBkXzM6YW55ID0gKCg8YW55Pl9kZWNsMF8zNS51cGxvYWQoX2FueS51cGxvYWRJZCkpICE9PSBmYWxzZSk7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1VwbG9hZE11bHRpcGxlQ29tcG9uZW50XzJfMTEoKTp2b2lkIHtcbiAgaWYgKChfZGVjbDBfMzUuYXV0b3VwbG9hZCA9PT0gZmFsc2UpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gKCgoX2FueS5zdGF0dXMgIT09ICdhZGRlZCcpICYmIChfYW55LnN0YXR1cyAhPT0gJ3BhdXNlZCcpKT8gJ2Rpc2FibGVkJzogbnVsbCk7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSAhKF9kZWNsMF8zNS5pbnZhbGlkICYmIChfZGVjbDBfMzUuZGlydHkgfHwgX2RlY2wwXzM1LnRvdWNoZWQpKTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IChfZGVjbDBfMzUuaW52YWxpZCAmJiAoX2RlY2wwXzM1LmRpcnR5IHx8IF9kZWNsMF8zNS50b3VjaGVkKSk7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfZGVjbDBfMzUuSWNvblVwbG9hZDtcbiAgICBjdXJyVmFsXzM7XG4gICAgY29uc3QgY3VyclZhbF80OmFueSA9IF9kZWNsMF8zOC50cmFuc2Zvcm0oX2RlY2wwXzM1LmxuZ1Jlc291cmNlU2VydmljZS5HZXRTdHJpbmcoX2RlY2wwXzM1LnZhbGlkYXRpb25LZXlTZXJ2aWNlLlVwbG9hZEJ1dHRvblVwbG9hZCkpO1xuICAgIGN1cnJWYWxfNDtcbiAgICBjb25zdCBwZF81OmFueSA9ICgoPGFueT5fZGVjbDBfMzUudXBsb2FkKF9hbnkudXBsb2FkSWQpKSAhPT0gZmFsc2UpO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNVcGxvYWRNdWx0aXBsZUNvbXBvbmVudF8yXzgoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9IChfZGVjbDBfMzUuY29tcG9uZW50SGVpZ2h0ID09PSBfZGVjbDBfMzUuQ29udHJvbEhlaWdodC5TbWFsbCk7XG4gIGN1cnJWYWxfMDtcbiAgY29uc3QgY3VyclZhbF8xOmFueSA9IChfZGVjbDBfMzUuY29tcG9uZW50SGVpZ2h0ID09PSBfZGVjbDBfMzUuQ29udHJvbEhlaWdodC5MYXJnZSk7XG4gIGN1cnJWYWxfMTtcbiAgY29uc3QgY3VyclZhbF8yOmFueSA9IChfZGVjbDBfMzUuaW52YWxpZCAmJiAoX2RlY2wwXzM1LmRpcnR5IHx8IF9kZWNsMF8zNS50b3VjaGVkKSk7XG4gIGN1cnJWYWxfMjtcbiAgY29uc3QgY3VyclZhbF8zOmFueSA9IChfYW55LnByb2dyZXNzID09PSAxMDApO1xuICBjdXJyVmFsXzM7XG4gIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfYW55LnByb2dyZXNzO1xuICBjdXJyVmFsXzQ7XG4gIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBfYW55LnByb2dyZXNzO1xuICBjdXJyVmFsXzU7XG4gIGNvbnN0IGN1cnJWYWxfNjphbnkgPSBfYW55Lm5hbWU7XG4gIGN1cnJWYWxfNjtcbiAgY29uc3QgY3VyclZhbF83OmFueSA9ICEoX2RlY2wwXzM1LmludmFsaWQgJiYgKF9kZWNsMF8zNS5kaXJ0eSB8fCBfZGVjbDBfMzUudG91Y2hlZCkpO1xuICBjdXJyVmFsXzc7XG4gIGNvbnN0IGN1cnJWYWxfODphbnkgPSAoX2RlY2wwXzM1LmludmFsaWQgJiYgKF9kZWNsMF8zNS5kaXJ0eSB8fCBfZGVjbDBfMzUudG91Y2hlZCkpO1xuICBjdXJyVmFsXzg7XG4gIGNvbnN0IGN1cnJWYWxfOTphbnkgPSBfZGVjbDBfMzUuSWNvbkRlbGV0ZTtcbiAgY3VyclZhbF85O1xuICBjb25zdCBjdXJyVmFsXzEwOmFueSA9ICgoKF9kZWNsMF8zNS5hdXRvdXBsb2FkID09PSBmYWxzZSkgJiYgX2RlY2wwXzM1LmVuYWJsZXBhdXNlKSB8fCAoKF9kZWNsMF8zNS5hdXRvdXBsb2FkICYmIF9kZWNsMF8zNS5lbmFibGVwYXVzZSkgJiYgKF9hbnkuc3RhdHVzICE9PSAncGF1c2VkJykpKTtcbiAgY3VyclZhbF8xMDtcbiAgY29uc3QgY3VyclZhbF8xMTphbnkgPSAoKF9kZWNsMF8zNS5hdXRvdXBsb2FkICYmIF9kZWNsMF8zNS5lbmFibGVwYXVzZSkgJiYgKF9hbnkuc3RhdHVzID09PSAncGF1c2VkJykpO1xuICBjdXJyVmFsXzExO1xuICBjb25zdCBjdXJyVmFsXzEyOmFueSA9IChfZGVjbDBfMzUuYXV0b3VwbG9hZCA9PT0gZmFsc2UpO1xuICBjdXJyVmFsXzEyO1xuICBjb25zdCBwZF8xMzphbnkgPSAoKDxhbnk+X2RlY2wwXzM1LmNhbmNlbChfYW55LnVwbG9hZElkKSkgIT09IGZhbHNlKTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1VwbG9hZE11bHRpcGxlQ29tcG9uZW50XzJfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzM1LmRpc2FibGVsYWJlbDtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gKChfZGVjbDBfMzUuZGlzYWJsZWxhYmVsID09PSBmYWxzZSkgJiYgIV9kZWNsMF8zNS5pc0FkYXB0aXZlTGFiZWwpO1xuICBjdXJyVmFsXzE7XG4gIGNvbnN0IGN1cnJWYWxfMjphbnkgPSAnY29sLTEyJztcbiAgY3VyclZhbF8yO1xuICBjb25zdCBjdXJyVmFsXzM6YW55ID0gWygoX2RlY2wwXzM1LmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpPyBfZGVjbDBfNTIudHJhbnNmb3JtKF9kZWNsMF8zNS5sYWJlbFNpemVzKTogJycpXTtcbiAgY3VyclZhbF8zO1xuICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gKF9kZWNsMF8zNS5jb21wb25lbnRIZWlnaHQgPT09IF9kZWNsMF8zNS5Db250cm9sSGVpZ2h0LlNtYWxsKTtcbiAgY3VyclZhbF80O1xuICBjb25zdCBjdXJyVmFsXzU6YW55ID0gKF9kZWNsMF8zNS5jb21wb25lbnRIZWlnaHQgPT09IF9kZWNsMF8zNS5Db250cm9sSGVpZ2h0LkxhcmdlKTtcbiAgY3VyclZhbF81O1xuICBjb25zdCBjdXJyVmFsXzY6YW55ID0gKChfZGVjbDBfMzUuaXNpbmxpbmVlcnJvcmVuYWJsZWQgJiYgX2RlY2wwXzM1LmludmFsaWQpICYmIChfZGVjbDBfMzUuZGlydHkgfHwgX2RlY2wwXzM1LnRvdWNoZWQpKTtcbiAgY3VyclZhbF82O1xuICBjb25zdCBjdXJyVmFsXzc6YW55ID0gKChfZGVjbDBfMzUubWF4ZmlsZXMgPiAwKSAmJiAoX2RlY2wwXzM1LnVwbG9hZHMubGVuZ3RoID49IF9kZWNsMF8zNS5tYXhmaWxlcykpO1xuICBjdXJyVmFsXzc7XG4gIGNvbnN0IGN1cnJWYWxfODphbnkgPSAhKF9kZWNsMF8zNS5pbnZhbGlkICYmIChfZGVjbDBfMzUuZGlydHkgfHwgX2RlY2wwXzM1LnRvdWNoZWQpKTtcbiAgY3VyclZhbF84O1xuICBjb25zdCBjdXJyVmFsXzk6YW55ID0gKF9kZWNsMF8zNS5pbnZhbGlkICYmIChfZGVjbDBfMzUuZGlydHkgfHwgX2RlY2wwXzM1LnRvdWNoZWQpKTtcbiAgY3VyclZhbF85O1xuICBjb25zdCBjdXJyVmFsXzEwOmFueSA9IF9kZWNsMF8zNS5JY29uQnJvd3NlO1xuICBjdXJyVmFsXzEwO1xuICBjb25zdCBjdXJyVmFsXzExOmFueSA9ICgoX2RlY2wwXzM1Lm1heGZpbGVzID4gMCkgJiYgKF9kZWNsMF8zNS51cGxvYWRzLmxlbmd0aCA+PSBfZGVjbDBfMzUubWF4ZmlsZXMpKTtcbiAgY3VyclZhbF8xMTtcbiAgY29uc3QgY3VyclZhbF8xMjphbnkgPSAoX2RlY2wwXzM1LmNvbXBvbmVudEhlaWdodCA9PT0gX2RlY2wwXzM1LkNvbnRyb2xIZWlnaHQuU21hbGwpO1xuICBjdXJyVmFsXzEyO1xuICBjb25zdCBjdXJyVmFsXzEzOmFueSA9IChfZGVjbDBfMzUuY29tcG9uZW50SGVpZ2h0ID09PSBfZGVjbDBfMzUuQ29udHJvbEhlaWdodC5MYXJnZSk7XG4gIGN1cnJWYWxfMTM7XG4gIGNvbnN0IGN1cnJWYWxfMTQ6YW55ID0gKChfZGVjbDBfMzUuSGFzUXVldWVJdGVtKCkgPT09IGZhbHNlKT8gJ2Rpc2FibGVkJzogbnVsbCk7XG4gIGN1cnJWYWxfMTQ7XG4gIGNvbnN0IGN1cnJWYWxfMTU6YW55ID0gIShfZGVjbDBfMzUuaW52YWxpZCAmJiAoX2RlY2wwXzM1LmRpcnR5IHx8IF9kZWNsMF8zNS50b3VjaGVkKSk7XG4gIGN1cnJWYWxfMTU7XG4gIGNvbnN0IGN1cnJWYWxfMTY6YW55ID0gKF9kZWNsMF8zNS5pbnZhbGlkICYmIChfZGVjbDBfMzUuZGlydHkgfHwgX2RlY2wwXzM1LnRvdWNoZWQpKTtcbiAgY3VyclZhbF8xNjtcbiAgY29uc3QgY3VyclZhbF8xNzphbnkgPSBfZGVjbDBfMzUuSWNvbkRlbGV0ZTtcbiAgY3VyclZhbF8xNztcbiAgY29uc3QgY3VyclZhbF8xODphbnkgPSAoKChfZGVjbDBfMzUuYXV0b3VwbG9hZCA9PT0gZmFsc2UpICYmIF9kZWNsMF8zNS5lbmFibGVwYXVzZSkgfHwgKChfZGVjbDBfMzUuYXV0b3VwbG9hZCAmJiBfZGVjbDBfMzUuZW5hYmxlcGF1c2UpICYmIChfZGVjbDBfMzUuSXNQYXVzZWQoKSA9PT0gZmFsc2UpKSk7XG4gIGN1cnJWYWxfMTg7XG4gIGNvbnN0IGN1cnJWYWxfMTk6YW55ID0gKChfZGVjbDBfMzUuYXV0b3VwbG9hZCAmJiBfZGVjbDBfMzUuZW5hYmxlcGF1c2UpICYmIChfZGVjbDBfMzUuSXNQYXVzZWQoKSA9PT0gdHJ1ZSkpO1xuICBjdXJyVmFsXzE5O1xuICBjb25zdCBjdXJyVmFsXzIwOmFueSA9IChfZGVjbDBfMzUuYXV0b3VwbG9hZCA9PT0gZmFsc2UpO1xuICBjdXJyVmFsXzIwO1xuICBjb25zdCBjdXJyVmFsXzIxOmFueSA9ICgoX2RlY2wwXzM1LmlzaW5saW5lZXJyb3JlbmFibGVkICYmIF9kZWNsMF8zNS5pbnZhbGlkKSAmJiAoX2RlY2wwXzM1LmRpcnR5IHx8IF9kZWNsMF8zNS50b3VjaGVkKSk7XG4gIGN1cnJWYWxfMjE7XG4gIGNvbnN0IGN1cnJWYWxfMjI6YW55ID0gKChfZGVjbDBfMzUuaGVscHRleHRtb2RlID09PSAndGV4dCcpICYmIF9kZWNsMF8zNS5oZWxwdGV4dCk7XG4gIGN1cnJWYWxfMjI7XG4gIGNvbnN0IGN1cnJWYWxfMjM6YW55ID0gX2RlY2wwXzM1LnVwbG9hZHM7XG4gIGN1cnJWYWxfMjM7XG4gIGNvbnN0IHBkXzI0OmFueSA9ICgoPGFueT4oX2FueS52YWx1ZSA9ICcnKSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMjU6YW55ID0gKCg8YW55Pl9kZWNsMF8zNS5vblVwbG9hZChfYW55KSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMjY6YW55ID0gKCg8YW55Pl9kZWNsMF8zNS5jYW5jZWxBbGwoKSkgIT09IGZhbHNlKTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY0Ryb3B6b25lU2luZ2xlQ29tcG9uZW50X0hvc3RfM18wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG59XG5mdW5jdGlvbiBfVmlld19TYWNEcm9wem9uZVNpbmdsZUNvbXBvbmVudF8zXzIoKTp2b2lkIHtcbiAgaWYgKCgoKF9kZWNsMF8zNi5kaXNhYmxlbGFiZWwgPT09IGZhbHNlKSAmJiAhX2RlY2wwXzM2LmlzQWRhcHRpdmVMYWJlbCkgJiYgKChfZGVjbDBfMzYuaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcpICYmIF9kZWNsMF8zNi5oZWxwdGV4dCkpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzM2LmhlbHB0ZXh0O1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gdHJ1ZTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9ICdtcy0xJztcbiAgICBjdXJyVmFsXzI7XG4gICAgY29uc3QgY3VyclZhbF8zOmFueSA9IF9kZWNsMF8zNi5IZWxwdGV4dFRvb2x0aXBJY29uO1xuICAgIGN1cnJWYWxfMztcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjRHJvcHpvbmVTaW5nbGVDb21wb25lbnRfM18xKCk6dm9pZCB7XG4gIGlmICgoKF9kZWNsMF8zNi5kaXNhYmxlbGFiZWwgPT09IGZhbHNlKSAmJiAhX2RlY2wwXzM2LmlzQWRhcHRpdmVMYWJlbCkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAnY29sLTEyIGNvbC1mb3JtLWxhYmVsJztcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IFsoKF9kZWNsMF8zNi5kaXNhYmxlbGFiZWwgPT09IGZhbHNlKT8gX2RlY2wwXzU0LnRyYW5zZm9ybShfZGVjbDBfMzYubGFiZWxTaXplcyk6ICd2aXN1YWxseS1oaWRkZW4nKSxcbiAgICAgICAgX2RlY2wwXzUzLnRyYW5zZm9ybShfZGVjbDBfMzYuY29tcG9uZW50SGVpZ2h0KV07XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBpMC7JtWlubGluZUludGVycG9sYXRlKDEsJycsX2RlY2wwXzM2Lm5hbWUsJ19sYWJlbCcpO1xuICAgIGN1cnJWYWxfMjtcbiAgICBjb25zdCBjdXJyVmFsXzM6YW55ID0gaTAuybVpbmxpbmVJbnRlcnBvbGF0ZSgxLCcnLF9kZWNsMF8zNi5uYW1lLCcnKTtcbiAgICBjdXJyVmFsXzM7XG4gICAgY29uc3QgY3VyclZhbF80OmFueSA9IF9kZWNsMF8zNi5sYWJlbDtcbiAgICBjdXJyVmFsXzQ7XG4gICAgY29uc3QgY3VyclZhbF81OmFueSA9ICgoX2RlY2wwXzM2LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMzYuaGVscHRleHQpO1xuICAgIGN1cnJWYWxfNTtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjRHJvcHpvbmVTaW5nbGVDb21wb25lbnRfM18zKCk6dm9pZCB7XG4gIGlmICgoX2RlY2wwXzM2LnVwbG9hZHMubGVuZ3RoID09PSAwKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9ICgoX2RlY2wwXzM2LmlzaW5saW5lZXJyb3JlbmFibGVkICYmIF9kZWNsMF8zNi5pbnZhbGlkKSAmJiAoX2RlY2wwXzM2LmRpcnR5IHx8IF9kZWNsMF8zNi50b3VjaGVkKSk7XG4gICAgY3VyclZhbF8wO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNEcm9wem9uZVNpbmdsZUNvbXBvbmVudF8zXzUoKTp2b2lkIHtcbiAgaWYgKChfZGVjbDBfMzYudXBsb2Fkcy5sZW5ndGggPiAwKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IChfZGVjbDBfMzYuY29tcG9uZW50SGVpZ2h0ID09PSBfZGVjbDBfMzYuQ29udHJvbEhlaWdodC5TbWFsbCk7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSAoX2RlY2wwXzM2LmNvbXBvbmVudEhlaWdodCA9PT0gX2RlY2wwXzM2LkNvbnRyb2xIZWlnaHQuTGFyZ2UpO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gKF9hbnkucHJvZ3Jlc3MgPT09IDEwMCk7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfYW55LnByb2dyZXNzO1xuICAgIGN1cnJWYWxfMztcbiAgICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gX2FueS5wcm9ncmVzcztcbiAgICBjdXJyVmFsXzQ7XG4gICAgY29uc3QgY3VyclZhbF81OmFueSA9IF9hbnkubmFtZTtcbiAgICBjdXJyVmFsXzU7XG4gICAgY29uc3QgY3VyclZhbF82OmFueSA9ICEoX2RlY2wwXzM2LmludmFsaWQgJiYgKF9kZWNsMF8zNi5kaXJ0eSB8fCBfZGVjbDBfMzYudG91Y2hlZCkpO1xuICAgIGN1cnJWYWxfNjtcbiAgICBjb25zdCBjdXJyVmFsXzc6YW55ID0gKF9kZWNsMF8zNi5pbnZhbGlkICYmIChfZGVjbDBfMzYuZGlydHkgfHwgX2RlY2wwXzM2LnRvdWNoZWQpKTtcbiAgICBjdXJyVmFsXzc7XG4gICAgY29uc3QgY3VyclZhbF84OmFueSA9IF9kZWNsMF8zNi5JY29uRGVsZXRlO1xuICAgIGN1cnJWYWxfODtcbiAgICBjb25zdCBwZF85OmFueSA9ICgoPGFueT5fZGVjbDBfMzYuY2FuY2VsKF9hbnkudXBsb2FkSWQpKSAhPT0gZmFsc2UpO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNEcm9wem9uZVNpbmdsZUNvbXBvbmVudF8zXzQoKTp2b2lkIHtcbiAgaWYgKChfZGVjbDBfMzYudXBsb2Fkcy5sZW5ndGggPiAwKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8zNi51cGxvYWRzO1xuICAgIGN1cnJWYWxfMDtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjRHJvcHpvbmVTaW5nbGVDb21wb25lbnRfM182KCk6dm9pZCB7XG4gIGlmICgoKF9kZWNsMF8zNi5pc2lubGluZWVycm9yZW5hYmxlZCAmJiBfZGVjbDBfMzYuaW52YWxpZCkgJiYgKF9kZWNsMF8zNi5kaXJ0eSB8fCBfZGVjbDBfMzYudG91Y2hlZCkpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzM4LnRyYW5zZm9ybShfZGVjbDBfMzYuR2V0RXJyb3JNZXNzYWdlKCkpO1xuICAgIGN1cnJWYWxfMDtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjRHJvcHpvbmVTaW5nbGVDb21wb25lbnRfM183KCk6dm9pZCB7XG4gIGlmICgoKF9kZWNsMF8zNi5oZWxwdGV4dG1vZGUgPT09ICd0ZXh0JykgJiYgX2RlY2wwXzM2LmhlbHB0ZXh0KSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8zNi5oZWxwdGV4dDtcbiAgICBjdXJyVmFsXzA7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY0Ryb3B6b25lU2luZ2xlQ29tcG9uZW50XzNfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzM2LmRpc2FibGVsYWJlbDtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gKChfZGVjbDBfMzYuZGlzYWJsZWxhYmVsID09PSBmYWxzZSkgJiYgIV9kZWNsMF8zNi5pc0FkYXB0aXZlTGFiZWwpO1xuICBjdXJyVmFsXzE7XG4gIGNvbnN0IGN1cnJWYWxfMjphbnkgPSAnY29sLTEyJztcbiAgY3VyclZhbF8yO1xuICBjb25zdCBjdXJyVmFsXzM6YW55ID0gWygoX2RlY2wwXzM2LmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpPyBfZGVjbDBfNTIudHJhbnNmb3JtKF9kZWNsMF8zNi5sYWJlbFNpemVzKTogJycpXTtcbiAgY3VyclZhbF8zO1xuICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gX2RlY2wwXzM2LnVwbG9hZGhlaWdodDtcbiAgY3VyclZhbF80O1xuICBjb25zdCBjdXJyVmFsXzU6YW55ID0gX2RlY2wwXzM2LmFjdGl2ZTtcbiAgY3VyclZhbF81O1xuICBjb25zdCBjdXJyVmFsXzY6YW55ID0gKF9kZWNsMF8zNi5pbnZhbGlkICYmIChfZGVjbDBfMzYuZGlydHkgfHwgX2RlY2wwXzM2LnRvdWNoZWQpKTtcbiAgY3VyclZhbF82O1xuICBjb25zdCBjdXJyVmFsXzc6YW55ID0gKF9kZWNsMF8zNi51cGxvYWRzLmxlbmd0aCA9PT0gMCk7XG4gIGN1cnJWYWxfNztcbiAgY29uc3QgY3VyclZhbF84OmFueSA9IChfZGVjbDBfMzYudXBsb2Fkcy5sZW5ndGggPiAwKTtcbiAgY3VyclZhbF84O1xuICBjb25zdCBjdXJyVmFsXzk6YW55ID0gaTAuybVpbmxpbmVJbnRlcnBvbGF0ZSgxLCcnLF9kZWNsMF8zNi5uYW1lLCdfdXBsb2FkaW5wdXQnKTtcbiAgY3VyclZhbF85O1xuICBjb25zdCBjdXJyVmFsXzEwOmFueSA9IF9kZWNsMF8zNi5IYXNRdWV1ZUl0ZW0oKTtcbiAgY3VyclZhbF8xMDtcbiAgY29uc3QgY3VyclZhbF8xMTphbnkgPSAoKF9kZWNsMF8zNi5pc2lubGluZWVycm9yZW5hYmxlZCAmJiBfZGVjbDBfMzYuaW52YWxpZCkgJiYgKF9kZWNsMF8zNi5kaXJ0eSB8fCBfZGVjbDBfMzYudG91Y2hlZCkpO1xuICBjdXJyVmFsXzExO1xuICBjb25zdCBjdXJyVmFsXzEyOmFueSA9ICgoX2RlY2wwXzM2LmhlbHB0ZXh0bW9kZSA9PT0gJ3RleHQnKSAmJiBfZGVjbDBfMzYuaGVscHRleHQpO1xuICBjdXJyVmFsXzEyO1xuICBjb25zdCBwZF8xMzphbnkgPSAoKDxhbnk+X2RlY2wwXzM2LmRyb3BIYW5kbGVyKF9hbnkpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xNDphbnkgPSAoKDxhbnk+X2RlY2wwXzM2Lm9uRHJhZ092ZXIoX2FueSkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzE1OmFueSA9ICgoPGFueT5fZGVjbDBfMzYub25EcmFnTGVhdmUoX2FueSkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzE2OmFueSA9ICgoPGFueT4oX2FueS52YWx1ZSA9ICcnKSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMTc6YW55ID0gKCg8YW55Pl9kZWNsMF8zNi5vblVwbG9hZChfYW55KSkgIT09IGZhbHNlKTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY0Ryb3B6b25lTXVsdGlwbGVDb21wb25lbnRfSG9zdF80XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY0Ryb3B6b25lTXVsdGlwbGVDb21wb25lbnRfNF8yKCk6dm9pZCB7XG4gIGlmICgoKChfZGVjbDBfMzcuZGlzYWJsZWxhYmVsID09PSBmYWxzZSkgJiYgIV9kZWNsMF8zNy5pc0FkYXB0aXZlTGFiZWwpICYmICgoX2RlY2wwXzM3LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMzcuaGVscHRleHQpKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8zNy5oZWxwdGV4dDtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IHRydWU7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSAnbXMtMSc7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfZGVjbDBfMzcuSGVscHRleHRUb29sdGlwSWNvbjtcbiAgICBjdXJyVmFsXzM7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY0Ryb3B6b25lTXVsdGlwbGVDb21wb25lbnRfNF8xKCk6dm9pZCB7XG4gIGlmICgoKF9kZWNsMF8zNy5kaXNhYmxlbGFiZWwgPT09IGZhbHNlKSAmJiAhX2RlY2wwXzM3LmlzQWRhcHRpdmVMYWJlbCkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAnY29sLTEyIGNvbC1mb3JtLWxhYmVsJztcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IFsoKF9kZWNsMF8zNy5kaXNhYmxlbGFiZWwgPT09IGZhbHNlKT8gX2RlY2wwXzU0LnRyYW5zZm9ybShfZGVjbDBfMzcubGFiZWxTaXplcyk6ICd2aXN1YWxseS1oaWRkZW4nKSxcbiAgICAgICAgX2RlY2wwXzUzLnRyYW5zZm9ybShfZGVjbDBfMzcuY29tcG9uZW50SGVpZ2h0KV07XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBpMC7JtWlubGluZUludGVycG9sYXRlKDEsJycsX2RlY2wwXzM3Lm5hbWUsJ19sYWJlbCcpO1xuICAgIGN1cnJWYWxfMjtcbiAgICBjb25zdCBjdXJyVmFsXzM6YW55ID0gaTAuybVpbmxpbmVJbnRlcnBvbGF0ZSgxLCcnLF9kZWNsMF8zNy5uYW1lLCcnKTtcbiAgICBjdXJyVmFsXzM7XG4gICAgY29uc3QgY3VyclZhbF80OmFueSA9IF9kZWNsMF8zNy5sYWJlbDtcbiAgICBjdXJyVmFsXzQ7XG4gICAgY29uc3QgY3VyclZhbF81OmFueSA9ICgoX2RlY2wwXzM3LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMzcuaGVscHRleHQpO1xuICAgIGN1cnJWYWxfNTtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjRHJvcHpvbmVNdWx0aXBsZUNvbXBvbmVudF80XzMoKTp2b2lkIHtcbiAgaWYgKChfZGVjbDBfMzcudXBsb2Fkcy5sZW5ndGggPT09IDApKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gKChfZGVjbDBfMzcuaXNpbmxpbmVlcnJvcmVuYWJsZWQgJiYgX2RlY2wwXzM3LmludmFsaWQpICYmIChfZGVjbDBfMzcuZGlydHkgfHwgX2RlY2wwXzM3LnRvdWNoZWQpKTtcbiAgICBjdXJyVmFsXzA7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY0Ryb3B6b25lTXVsdGlwbGVDb21wb25lbnRfNF81KCk6dm9pZCB7XG4gIGlmICgoX2RlY2wwXzM3LnVwbG9hZHMubGVuZ3RoID4gMCkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAoX2FueSA+IDApO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gKF9kZWNsMF8zNy5jb21wb25lbnRIZWlnaHQgPT09IF9kZWNsMF8zNy5Db250cm9sSGVpZ2h0LlNtYWxsKTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IChfZGVjbDBfMzcuY29tcG9uZW50SGVpZ2h0ID09PSBfZGVjbDBfMzcuQ29udHJvbEhlaWdodC5MYXJnZSk7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IGN1cnJWYWxfMzphbnkgPSAoX2FueS5wcm9ncmVzcyA9PT0gMTAwKTtcbiAgICBjdXJyVmFsXzM7XG4gICAgY29uc3QgY3VyclZhbF80OmFueSA9IF9hbnkucHJvZ3Jlc3M7XG4gICAgY3VyclZhbF80O1xuICAgIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBfYW55LnByb2dyZXNzO1xuICAgIGN1cnJWYWxfNTtcbiAgICBjb25zdCBjdXJyVmFsXzY6YW55ID0gX2FueS5uYW1lO1xuICAgIGN1cnJWYWxfNjtcbiAgICBjb25zdCBjdXJyVmFsXzc6YW55ID0gIShfZGVjbDBfMzcuaW52YWxpZCAmJiAoX2RlY2wwXzM3LmRpcnR5IHx8IF9kZWNsMF8zNy50b3VjaGVkKSk7XG4gICAgY3VyclZhbF83O1xuICAgIGNvbnN0IGN1cnJWYWxfODphbnkgPSAoX2RlY2wwXzM3LmludmFsaWQgJiYgKF9kZWNsMF8zNy5kaXJ0eSB8fCBfZGVjbDBfMzcudG91Y2hlZCkpO1xuICAgIGN1cnJWYWxfODtcbiAgICBjb25zdCBjdXJyVmFsXzk6YW55ID0gX2RlY2wwXzM3Lkljb25EZWxldGU7XG4gICAgY3VyclZhbF85O1xuICAgIGNvbnN0IHBkXzEwOmFueSA9ICgoPGFueT5fZGVjbDBfMzcuY2FuY2VsKF9hbnkudXBsb2FkSWQpKSAhPT0gZmFsc2UpO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNEcm9wem9uZU11bHRpcGxlQ29tcG9uZW50XzRfNCgpOnZvaWQge1xuICBpZiAoKF9kZWNsMF8zNy51cGxvYWRzLmxlbmd0aCA+IDApKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzM3LnVwbG9hZHM7XG4gICAgY3VyclZhbF8wO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNEcm9wem9uZU11bHRpcGxlQ29tcG9uZW50XzRfNigpOnZvaWQge1xuICBpZiAoKChfZGVjbDBfMzcuaXNpbmxpbmVlcnJvcmVuYWJsZWQgJiYgX2RlY2wwXzM3LmludmFsaWQpICYmIChfZGVjbDBfMzcuZGlydHkgfHwgX2RlY2wwXzM3LnRvdWNoZWQpKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8zOC50cmFuc2Zvcm0oX2RlY2wwXzM3LkdldEVycm9yTWVzc2FnZSgpKTtcbiAgICBjdXJyVmFsXzA7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY0Ryb3B6b25lTXVsdGlwbGVDb21wb25lbnRfNF83KCk6dm9pZCB7XG4gIGlmICgoKF9kZWNsMF8zNy5oZWxwdGV4dG1vZGUgPT09ICd0ZXh0JykgJiYgX2RlY2wwXzM3LmhlbHB0ZXh0KSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8zNy5oZWxwdGV4dDtcbiAgICBjdXJyVmFsXzA7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY0Ryb3B6b25lTXVsdGlwbGVDb21wb25lbnRfNF8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMzcuZGlzYWJsZWxhYmVsO1xuICBjdXJyVmFsXzA7XG4gIGNvbnN0IGN1cnJWYWxfMTphbnkgPSAoKF9kZWNsMF8zNy5kaXNhYmxlbGFiZWwgPT09IGZhbHNlKSAmJiAhX2RlY2wwXzM3LmlzQWRhcHRpdmVMYWJlbCk7XG4gIGN1cnJWYWxfMTtcbiAgY29uc3QgY3VyclZhbF8yOmFueSA9ICdjb2wtMTInO1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBbKChfZGVjbDBfMzcuZGlzYWJsZWxhYmVsID09PSBmYWxzZSk/IF9kZWNsMF81Mi50cmFuc2Zvcm0oX2RlY2wwXzM3LmxhYmVsU2l6ZXMpOiAnJyldO1xuICBjdXJyVmFsXzM7XG4gIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfZGVjbDBfMzcuYWN0aXZlO1xuICBjdXJyVmFsXzQ7XG4gIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBfZGVjbDBfMzcudXBsb2FkaGVpZ2h0O1xuICBjdXJyVmFsXzU7XG4gIGNvbnN0IGN1cnJWYWxfNjphbnkgPSAoX2RlY2wwXzM3LmludmFsaWQgJiYgKF9kZWNsMF8zNy5kaXJ0eSB8fCBfZGVjbDBfMzcudG91Y2hlZCkpO1xuICBjdXJyVmFsXzY7XG4gIGNvbnN0IGN1cnJWYWxfNzphbnkgPSAoX2RlY2wwXzM3LnVwbG9hZHMubGVuZ3RoID09PSAwKTtcbiAgY3VyclZhbF83O1xuICBjb25zdCBjdXJyVmFsXzg6YW55ID0gKF9kZWNsMF8zNy51cGxvYWRzLmxlbmd0aCA+IDApO1xuICBjdXJyVmFsXzg7XG4gIGNvbnN0IGN1cnJWYWxfOTphbnkgPSBpMC7JtWlubGluZUludGVycG9sYXRlKDEsJycsX2RlY2wwXzM3Lm5hbWUsJ191cGxvYWRpbnB1dCcpO1xuICBjdXJyVmFsXzk7XG4gIGNvbnN0IGN1cnJWYWxfMTA6YW55ID0gX2RlY2wwXzM3Lkhhc1F1ZXVlSXRlbSgpO1xuICBjdXJyVmFsXzEwO1xuICBjb25zdCBjdXJyVmFsXzExOmFueSA9ICgoX2RlY2wwXzM3LmlzaW5saW5lZXJyb3JlbmFibGVkICYmIF9kZWNsMF8zNy5pbnZhbGlkKSAmJiAoX2RlY2wwXzM3LmRpcnR5IHx8IF9kZWNsMF8zNy50b3VjaGVkKSk7XG4gIGN1cnJWYWxfMTE7XG4gIGNvbnN0IGN1cnJWYWxfMTI6YW55ID0gKChfZGVjbDBfMzcuaGVscHRleHRtb2RlID09PSAndGV4dCcpICYmIF9kZWNsMF8zNy5oZWxwdGV4dCk7XG4gIGN1cnJWYWxfMTI7XG4gIGNvbnN0IHBkXzEzOmFueSA9ICgoPGFueT5fZGVjbDBfMzcuZHJvcEhhbmRsZXIoX2FueSkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzE0OmFueSA9ICgoPGFueT5fZGVjbDBfMzcub25EcmFnT3ZlcihfYW55KSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMTU6YW55ID0gKCg8YW55Pl9kZWNsMF8zNy5vbkRyYWdMZWF2ZShfYW55KSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMTY6YW55ID0gKCg8YW55PihfYW55LnZhbHVlID0gJycpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xNzphbnkgPSAoKDxhbnk+X2RlY2wwXzM3Lm9uVXBsb2FkKF9hbnkpKSAhPT0gZmFsc2UpO1xufVxuIl19
@@ -22,7 +22,7 @@ export class SacUploadMultipleComponent extends SacUploadMultipleCommon {
22
22
  SacUploadMultipleComponent.decorators = [
23
23
  { type: Component, args: [{
24
24
  selector: 'sac-uploadmultiple',
25
- template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}_label\"\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'visually-hidden', componentHeight | toLabelHeight]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div class=\"upload-component\">\r\n <div class=\"row\">\r\n <div class=\"col-12\">\r\n <div\r\n class=\"btn-group\"\r\n [class.btn-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.btn-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n [class.is-invalid]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <div\r\n class=\"btn upload-input custom-file\"\r\n [class.disabled]=\"maxfiles > 0 && uploads.length >= maxfiles\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <i [class]=\"IconBrowse\" class=\"pe-2\"></i>\r\n <span class=\"upload-browse\">Browse</span>\r\n <input\r\n type=\"file\"\r\n class=\"custom-file-input\"\r\n #files\r\n (click)=\"files.value = ''\"\r\n (uploadxState)=\"onUpload($event)\"\r\n multiple\r\n [disabled]=\"maxfiles > 0 && uploads.length >= maxfiles\"\r\n />\r\n </div>\r\n\r\n <div\r\n class=\"btn-group\"\r\n [class.btn-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.btn-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <!-- image-preview-clear button -->\r\n <button\r\n class=\"btn\"\r\n (click)=\"cancelAll()\"\r\n [attr.disabled]=\"HasQueueItem() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"(autoupload === false && enablepause) || (autoupload && enablepause && IsPaused() === false)\"\r\n class=\"btn\"\r\n (click)=\"pauseAll()\"\r\n [attr.disabled]=\"IsUploading() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconPause\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload && enablepause && IsPaused() === true\"\r\n class=\"btn\"\r\n (click)=\"uploadAll()\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconContinue\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload === false\"\r\n class=\"btn text-nowrap\"\r\n (click)=\"uploadAll()\"\r\n [attr.disabled]=\"IsStateToUpload() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconUpload\" class=\"pe-2\"></span> {{\r\n lngResourceService.GetString(validationKeyService.UploadButtonUpload)\r\n | async }}\r\n </button>\r\n </div>\r\n </div>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngFor=\"let file of uploads\" style=\"margin-top: 5px\">\r\n <div\r\n class=\"input-group upload-component upload-multiple\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <div\r\n class=\"form-control upload-progress\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n >\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"file.progress===100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"file.progress\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"file.progress\"\r\n >\r\n <span class=\"progress-text text-dark\">{{ file.name }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <button\r\n class=\"btn\"\r\n (click)=\"cancel(file.uploadId)\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"(autoupload === false && enablepause) || (autoupload && enablepause && file.status !== 'paused')\"\r\n class=\"btn\"\r\n (click)=\"pause(file.uploadId)\"\r\n [attr.disabled]=\"file.status !== 'uploading' ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconPause\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload && enablepause && file.status === 'paused'\"\r\n class=\"btn\"\r\n (click)=\"upload(file.uploadId)\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconContinue\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload === false\"\r\n class=\"btn text-nowrap\"\r\n (click)=\"upload(file.uploadId)\"\r\n [attr.disabled]=\"file.status !== 'added' && file.status !== 'paused' ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconUpload\" class=\"pe-2\"></span>{{\r\n lngResourceService.GetString(validationKeyService.UploadButtonUpload)\r\n | async }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n",
25
+ template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}_label\"\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'visually-hidden', componentHeight | toLabelHeight]\"\r\n >{{label}}<sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\"\r\n >\r\n <span [ngClass]=\"HelptextTooltipIcon\" class=\"ms-1\"></span></sac-tooltip\r\n ></label>\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div class=\"upload-component\">\r\n <div class=\"row\">\r\n <div class=\"col-12\">\r\n <div\r\n class=\"btn-group\"\r\n [class.btn-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.btn-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n [class.is-invalid]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <div\r\n class=\"btn upload-input custom-file\"\r\n [class.disabled]=\"maxfiles > 0 && uploads.length >= maxfiles\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <i [class]=\"IconBrowse\" class=\"pe-2\"></i>\r\n <span class=\"upload-browse\">Browse</span>\r\n <input\r\n type=\"file\"\r\n class=\"custom-file-input\"\r\n #files\r\n (click)=\"files.value = ''\"\r\n (uploadxState)=\"onUpload($event)\"\r\n multiple\r\n [disabled]=\"maxfiles > 0 && uploads.length >= maxfiles\"\r\n />\r\n </div>\r\n\r\n <div\r\n class=\"btn-group\"\r\n [class.btn-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.btn-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <!-- image-preview-clear button -->\r\n <button\r\n class=\"btn\"\r\n (click)=\"cancelAll()\"\r\n [attr.disabled]=\"HasQueueItem() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"(autoupload === false && enablepause) || (autoupload && enablepause && IsPaused() === false)\"\r\n class=\"btn\"\r\n (click)=\"pauseAll()\"\r\n [attr.disabled]=\"IsUploading() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconPause\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload && enablepause && IsPaused() === true\"\r\n class=\"btn\"\r\n (click)=\"uploadAll()\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconContinue\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload === false\"\r\n class=\"btn text-nowrap\"\r\n (click)=\"uploadAll()\"\r\n [attr.disabled]=\"IsStateToUpload() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconUpload\" class=\"pe-2\"></span> {{\r\n lngResourceService.GetString(validationKeyService.UploadButtonUpload)\r\n | async }}\r\n </button>\r\n </div>\r\n </div>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n <div *ngIf=\"helptextmode === 'text' && helptext\" class=\"form-text\">\r\n {{helptext}}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngFor=\"let file of uploads\" style=\"margin-top: 5px\">\r\n <div\r\n class=\"input-group upload-component upload-multiple\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n >\r\n <div\r\n class=\"form-control upload-progress\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n >\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"file.progress===100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"file.progress\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"file.progress\"\r\n >\r\n <span class=\"progress-text text-dark\">{{ file.name }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <button\r\n class=\"btn\"\r\n (click)=\"cancel(file.uploadId)\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"(autoupload === false && enablepause) || (autoupload && enablepause && file.status !== 'paused')\"\r\n class=\"btn\"\r\n (click)=\"pause(file.uploadId)\"\r\n [attr.disabled]=\"file.status !== 'uploading' ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconPause\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload && enablepause && file.status === 'paused'\"\r\n class=\"btn\"\r\n (click)=\"upload(file.uploadId)\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconContinue\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload === false\"\r\n class=\"btn text-nowrap\"\r\n (click)=\"upload(file.uploadId)\"\r\n [attr.disabled]=\"file.status !== 'added' && file.status !== 'paused' ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconUpload\" class=\"pe-2\"></span>{{\r\n lngResourceService.GetString(validationKeyService.UploadButtonUpload)\r\n | async }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n",
26
26
  providers: [
27
27
  {
28
28
  provide: NG_VALUE_ACCESSOR,
@@ -44,4 +44,4 @@ SacUploadMultipleComponent.ctorParameters = () => [
44
44
  { type: Renderer2 },
45
45
  { type: NgZone }
46
46
  ];
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkbXVsdGlwbGUuanMiLCJzb3VyY2VSb290IjoiQzovUHJvamVrdGUvc2ltcGxlYW5ndWxhcmNvbnRyb2xzLW5nMTAvY2guam5ldHdvcmsuc2FjLWNvbnRyb2xzL3Byb2plY3RzL3NhYy1ib290c3RyYXA1L3NyYy8iLCJzb3VyY2VzIjpbImNvbnRyb2xzL3VwbG9hZC91cGxvYWRtdWx0aXBsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixJQUFJLEVBQ0osUUFBUSxFQUNSLE1BQU0sRUFDTixRQUFRLEVBQ1IsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV4RTs7O0dBR0c7QUFrQkgsTUFBTSxPQUFPLDBCQUEyQixTQUFRLHVCQUF1QjtJQUNyRSx1QkFBdUI7SUFFdkI7Ozs7OztPQU1HO0lBQ0gsWUFDc0IsVUFBa0MsRUFDdEQsUUFBa0IsRUFDbEIsUUFBbUIsRUFDbkIsTUFBYztRQUVkLEtBQUssQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNoRCxDQUFDOzs7WUFsQ0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxvQkFBb0I7Z0JBQzlCLHd6T0FBb0M7Z0JBRXBDLFNBQVMsRUFBRTtvQkFDVDt3QkFDRSxPQUFPLEVBQUUsaUJBQWlCO3dCQUMxQixLQUFLLEVBQUUsSUFBSTt3QkFDWCxXQUFXLEVBQUUsMEJBQTBCO3FCQUN4QztvQkFDRDt3QkFDRSxPQUFPLEVBQUUsYUFBYTt3QkFDdEIsS0FBSyxFQUFFLElBQUk7d0JBQ1gsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQztxQkFDMUQ7aUJBQ0Y7O2FBQ0Y7OztZQXRCUSxzQkFBc0IsdUJBa0MxQixJQUFJLFlBQUksUUFBUTtZQXpDbkIsUUFBUTtZQUdSLFNBQVM7WUFGVCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgZm9yd2FyZFJlZixcclxuICBIb3N0LFxyXG4gIEluamVjdG9yLFxyXG4gIE5nWm9uZSxcclxuICBPcHRpb25hbCxcclxuICBSZW5kZXJlcjIsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5HX1ZBTElEQVRPUlMsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTYWNVcGxvYWRNdWx0aXBsZUNvbW1vbiB9IGZyb20gJ0BzaW1wbGVhbmd1bGFyY29udHJvbHMvc2FjLWNvbW1vbic7XHJcbmltcG9ydCB7IFNhY0Zvcm1MYXlvdXREaXJlY3RpdmUgfSBmcm9tICcuLi9sYXlvdXQvZm9ybWxheW91dC5kaXJlY3RpdmUnO1xyXG5cclxuLyoqXHJcbiAqIFVwbG9hZCBLb21wb25lbnRlIGbDvHIgZGVuIFVwbG9hZCBtZWhyZXIgRmlsZXNcclxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20va3VraGFyaWV2L25neC11cGxvYWR4L1xyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzYWMtdXBsb2FkbXVsdGlwbGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi91cGxvYWRtdWx0aXBsZS5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi91cGxvYWQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBTYWNVcGxvYWRNdWx0aXBsZUNvbXBvbmVudCxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTYWNVcGxvYWRNdWx0aXBsZUNvbXBvbmVudCksXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTYWNVcGxvYWRNdWx0aXBsZUNvbXBvbmVudCBleHRlbmRzIFNhY1VwbG9hZE11bHRpcGxlQ29tbW9uIHtcclxuICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xyXG5cclxuICAvKipcclxuICAgKiBDb25zdHJ1Y3RvclxyXG4gICAqIEBwYXJhbSBmb3JtTGF5b3V0IFNhY0Zvcm1MYXlvdXQgdG8gZGVmaW5lIHNjb3BlZCBsYXlvdXQgc2V0dGluZ3NcclxuICAgKiBAcGFyYW0gaW5qZWN0b3IgSW5qZWN0b3IgZm9yIGluamVjdGluZyBzZXJ2aWNlc1xyXG4gICAqIEBwYXJhbSByZW5kZXJlciBBbmd1bGFyIHJlbmRlcmluZyBlbmdpbmVcclxuICAgKiBAcGFyYW0gbmdab25lIG5nWm9uZSB0byBtYW5hZ2UgZXh0ZXJuYWwgamF2YXNjcmlwdHNcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBIb3N0KCkgQE9wdGlvbmFsKCkgZm9ybUxheW91dDogU2FjRm9ybUxheW91dERpcmVjdGl2ZSxcclxuICAgIGluamVjdG9yOiBJbmplY3RvcixcclxuICAgIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBuZ1pvbmU6IE5nWm9uZVxyXG4gICkge1xyXG4gICAgc3VwZXIoZm9ybUxheW91dCwgaW5qZWN0b3IsIHJlbmRlcmVyLCBuZ1pvbmUpO1xyXG4gIH1cclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBDb25zdHJ1Y3RvcnNcclxufVxyXG4iXX0=
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkbXVsdGlwbGUuanMiLCJzb3VyY2VSb290IjoiQzovUHJvamVrdGUvc2ltcGxlYW5ndWxhcmNvbnRyb2xzLW5nMTAvY2guam5ldHdvcmsuc2FjLWNvbnRyb2xzL3Byb2plY3RzL3NhYy1ib290c3RyYXA1L3NyYy8iLCJzb3VyY2VzIjpbImNvbnRyb2xzL3VwbG9hZC91cGxvYWRtdWx0aXBsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixJQUFJLEVBQ0osUUFBUSxFQUNSLE1BQU0sRUFDTixRQUFRLEVBQ1IsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV4RTs7O0dBR0c7QUFrQkgsTUFBTSxPQUFPLDBCQUEyQixTQUFRLHVCQUF1QjtJQUNyRSx1QkFBdUI7SUFFdkI7Ozs7OztPQU1HO0lBQ0gsWUFDc0IsVUFBa0MsRUFDdEQsUUFBa0IsRUFDbEIsUUFBbUIsRUFDbkIsTUFBYztRQUVkLEtBQUssQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNoRCxDQUFDOzs7WUFsQ0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxvQkFBb0I7Z0JBQzlCLHFxUEFBb0M7Z0JBRXBDLFNBQVMsRUFBRTtvQkFDVDt3QkFDRSxPQUFPLEVBQUUsaUJBQWlCO3dCQUMxQixLQUFLLEVBQUUsSUFBSTt3QkFDWCxXQUFXLEVBQUUsMEJBQTBCO3FCQUN4QztvQkFDRDt3QkFDRSxPQUFPLEVBQUUsYUFBYTt3QkFDdEIsS0FBSyxFQUFFLElBQUk7d0JBQ1gsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQztxQkFDMUQ7aUJBQ0Y7O2FBQ0Y7OztZQXRCUSxzQkFBc0IsdUJBa0MxQixJQUFJLFlBQUksUUFBUTtZQXpDbkIsUUFBUTtZQUdSLFNBQVM7WUFGVCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgZm9yd2FyZFJlZixcclxuICBIb3N0LFxyXG4gIEluamVjdG9yLFxyXG4gIE5nWm9uZSxcclxuICBPcHRpb25hbCxcclxuICBSZW5kZXJlcjIsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5HX1ZBTElEQVRPUlMsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTYWNVcGxvYWRNdWx0aXBsZUNvbW1vbiB9IGZyb20gJ0BzaW1wbGVhbmd1bGFyY29udHJvbHMvc2FjLWNvbW1vbic7XHJcbmltcG9ydCB7IFNhY0Zvcm1MYXlvdXREaXJlY3RpdmUgfSBmcm9tICcuLi9sYXlvdXQvZm9ybWxheW91dC5kaXJlY3RpdmUnO1xyXG5cclxuLyoqXHJcbiAqIFVwbG9hZCBLb21wb25lbnRlIGbDvHIgZGVuIFVwbG9hZCBtZWhyZXIgRmlsZXNcclxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20va3VraGFyaWV2L25neC11cGxvYWR4L1xyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzYWMtdXBsb2FkbXVsdGlwbGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi91cGxvYWRtdWx0aXBsZS5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi91cGxvYWQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBTYWNVcGxvYWRNdWx0aXBsZUNvbXBvbmVudCxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTYWNVcGxvYWRNdWx0aXBsZUNvbXBvbmVudCksXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTYWNVcGxvYWRNdWx0aXBsZUNvbXBvbmVudCBleHRlbmRzIFNhY1VwbG9hZE11bHRpcGxlQ29tbW9uIHtcclxuICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xyXG5cclxuICAvKipcclxuICAgKiBDb25zdHJ1Y3RvclxyXG4gICAqIEBwYXJhbSBmb3JtTGF5b3V0IFNhY0Zvcm1MYXlvdXQgdG8gZGVmaW5lIHNjb3BlZCBsYXlvdXQgc2V0dGluZ3NcclxuICAgKiBAcGFyYW0gaW5qZWN0b3IgSW5qZWN0b3IgZm9yIGluamVjdGluZyBzZXJ2aWNlc1xyXG4gICAqIEBwYXJhbSByZW5kZXJlciBBbmd1bGFyIHJlbmRlcmluZyBlbmdpbmVcclxuICAgKiBAcGFyYW0gbmdab25lIG5nWm9uZSB0byBtYW5hZ2UgZXh0ZXJuYWwgamF2YXNjcmlwdHNcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBIb3N0KCkgQE9wdGlvbmFsKCkgZm9ybUxheW91dDogU2FjRm9ybUxheW91dERpcmVjdGl2ZSxcclxuICAgIGluamVjdG9yOiBJbmplY3RvcixcclxuICAgIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBuZ1pvbmU6IE5nWm9uZVxyXG4gICkge1xyXG4gICAgc3VwZXIoZm9ybUxheW91dCwgaW5qZWN0b3IsIHJlbmRlcmVyLCBuZ1pvbmUpO1xyXG4gIH1cclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBDb25zdHJ1Y3RvcnNcclxufVxyXG4iXX0=
@@ -20,7 +20,8 @@ export * from './controls/multilanguage/multilanguage.module';
20
20
  export * from './controls/static/staticlabel.module';
21
21
  export * from './controls/tabs/tabs.module';
22
22
  export * from './controls/tinymce/tinymce.module';
23
+ export * from './controls/tooltip/tooltip.module';
23
24
  export * from './controls/upload/upload.module';
24
25
  export * from './controls/validation/validationsummary.module';
25
26
  export * from './controls/wizard/wizard.module';
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJDOi9Qcm9qZWt0ZS9zaW1wbGVhbmd1bGFyY29udHJvbHMtbmcxMC9jaC5qbmV0d29yay5zYWMtY29udHJvbHMvcHJvamVjdHMvc2FjLWJvb3RzdHJhcDUvc3JjLyIsInNvdXJjZXMiOlsicHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELE9BQU8sRUFDTCwwQkFBMEIsRUFDMUIsY0FBYyxHQUNmLE1BQU0sbUNBQW1DLENBQUM7QUFDM0MsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsaUNBQWlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygc2FjLWJvb3RzdHJhcDVcclxuICovXHJcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9icm93c2VyL2Jyb3dzZXIubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9jb250cm9scy9idXR0b25zL2J1dHRvbi5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbnRyb2xzL2NoZWNrYm94L2NoZWNrYm94Lm1vZHVsZSc7XHJcbmV4cG9ydCB7XHJcbiAgU0FDQm9vdHN0cmFwNUNvbmZpcm1Nb2R1bGUsXHJcbiAgU2VydmljZUNvbmZpcm0sXHJcbn0gZnJvbSAnLi9jb250cm9scy9jb25maXJtL2NvbmZpcm0ubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9jb250cm9scy9jb250ZXh0bWVudS9jb250ZXh0bWVudS5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbnRyb2xzL2RhdGV0aW1lL2RhdGV0aW1lLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29udHJvbHMvZGlhbG9nL2RpYWxvZy5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbnRyb2xzL2Zvcm0vZm9ybSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29udHJvbHMvZm9ybS9mb3JtLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29udHJvbHMvZm9ybS9pbmhlcml0Zm9ybS5kaXJlY3RpdmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbnRyb2xzL2dyaWQvZ3JpZC5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbnRyb2xzL2lucHV0L2lucHV0Lm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29udHJvbHMvbGF5b3V0L2xheW91dC5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbnRyb2xzL2xpc3QvZHJvcGRvd24ubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9jb250cm9scy9saXN0L2xpc3QubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9jb250cm9scy9tdWx0aWxhbmd1YWdlL211bHRpbGFuZ3VhZ2UubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9jb250cm9scy9zdGF0aWMvc3RhdGljbGFiZWwubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9jb250cm9scy90YWJzL3RhYnMubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9jb250cm9scy90aW55bWNlL3RpbnltY2UubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9jb250cm9scy91cGxvYWQvdXBsb2FkLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29udHJvbHMvdmFsaWRhdGlvbi92YWxpZGF0aW9uc3VtbWFyeS5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbnRyb2xzL3dpemFyZC93aXphcmQubW9kdWxlJztcclxuIl19
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJDOi9Qcm9qZWt0ZS9zaW1wbGVhbmd1bGFyY29udHJvbHMtbmcxMC9jaC5qbmV0d29yay5zYWMtY29udHJvbHMvcHJvamVjdHMvc2FjLWJvb3RzdHJhcDUvc3JjLyIsInNvdXJjZXMiOlsicHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELE9BQU8sRUFDTCwwQkFBMEIsRUFDMUIsY0FBYyxHQUNmLE1BQU0sbUNBQW1DLENBQUM7QUFDM0MsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyxpQ0FBaUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBzYWMtYm9vdHN0cmFwNVxyXG4gKi9cclxuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2Jyb3dzZXIvYnJvd3Nlci5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbnRyb2xzL2J1dHRvbnMvYnV0dG9uLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29udHJvbHMvY2hlY2tib3gvY2hlY2tib3gubW9kdWxlJztcclxuZXhwb3J0IHtcclxuICBTQUNCb290c3RyYXA1Q29uZmlybU1vZHVsZSxcclxuICBTZXJ2aWNlQ29uZmlybSxcclxufSBmcm9tICcuL2NvbnRyb2xzL2NvbmZpcm0vY29uZmlybS5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbnRyb2xzL2NvbnRleHRtZW51L2NvbnRleHRtZW51Lm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29udHJvbHMvZGF0ZXRpbWUvZGF0ZXRpbWUubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9jb250cm9scy9kaWFsb2cvZGlhbG9nLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29udHJvbHMvZm9ybS9mb3JtJztcclxuZXhwb3J0ICogZnJvbSAnLi9jb250cm9scy9mb3JtL2Zvcm0ubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9jb250cm9scy9mb3JtL2luaGVyaXRmb3JtLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29udHJvbHMvZ3JpZC9ncmlkLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29udHJvbHMvaW5wdXQvaW5wdXQubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9jb250cm9scy9sYXlvdXQvbGF5b3V0Lm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29udHJvbHMvbGlzdC9kcm9wZG93bi5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbnRyb2xzL2xpc3QvbGlzdC5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbnRyb2xzL211bHRpbGFuZ3VhZ2UvbXVsdGlsYW5ndWFnZS5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbnRyb2xzL3N0YXRpYy9zdGF0aWNsYWJlbC5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbnRyb2xzL3RhYnMvdGFicy5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbnRyb2xzL3RpbnltY2UvdGlueW1jZS5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbnRyb2xzL3Rvb2x0aXAvdG9vbHRpcC5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbnRyb2xzL3VwbG9hZC91cGxvYWQubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9jb250cm9scy92YWxpZGF0aW9uL3ZhbGlkYXRpb25zdW1tYXJ5Lm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29udHJvbHMvd2l6YXJkL3dpemFyZC5tb2R1bGUnO1xyXG4iXX0=