@po-ui/ng-components 14.1.0 → 14.3.0

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 (63) hide show
  1. package/esm2020/lib/components/po-breadcrumb/po-breadcrumb-dropdown/po-breadcrumb-dropdown.component.mjs +5 -3
  2. package/esm2020/lib/components/po-button/po-button-base.component.mjs +58 -8
  3. package/esm2020/lib/components/po-button/po-button-size.enum.mjs +6 -0
  4. package/esm2020/lib/components/po-button/po-button.component.mjs +4 -4
  5. package/esm2020/lib/components/po-button-group/po-button-group-base.component.mjs +8 -1
  6. package/esm2020/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-field.interface.mjs +1 -1
  7. package/esm2020/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-fields/po-dynamic-form-fields.component.mjs +12 -12
  8. package/esm2020/lib/components/po-field/po-checkbox/po-checkbox-base.component.mjs +11 -2
  9. package/esm2020/lib/components/po-field/po-checkbox/po-checkbox.component.mjs +24 -12
  10. package/esm2020/lib/components/po-field/po-checkbox-group/po-checkbox-group.component.mjs +14 -20
  11. package/esm2020/lib/components/po-field/po-checkbox-group/po-checkbox-group.module.mjs +5 -4
  12. package/esm2020/lib/components/po-field/po-combo/po-combo-base.component.mjs +74 -43
  13. package/esm2020/lib/components/po-field/po-combo/po-combo.component.mjs +17 -15
  14. package/esm2020/lib/components/po-field/po-datepicker/po-datepicker-base.component.mjs +3 -8
  15. package/esm2020/lib/components/po-field/po-datepicker/po-datepicker.component.mjs +2 -1
  16. package/esm2020/lib/components/po-field/po-datepicker-range/po-datepicker-range-base.component.mjs +25 -2
  17. package/esm2020/lib/components/po-field/po-datepicker-range/po-datepicker-range.component.mjs +5 -5
  18. package/esm2020/lib/components/po-field/po-lookup/po-lookup-base.component.mjs +28 -2
  19. package/esm2020/lib/components/po-field/po-lookup/po-lookup-modal/po-lookup-modal-base.component.mjs +28 -2
  20. package/esm2020/lib/components/po-field/po-lookup/po-lookup-modal/po-lookup-modal.component.mjs +4 -4
  21. package/esm2020/lib/components/po-field/po-lookup/po-lookup.component.mjs +5 -3
  22. package/esm2020/lib/components/po-field/po-lookup/services/po-lookup-modal.service.mjs +6 -2
  23. package/esm2020/lib/components/po-field/po-multiselect/po-multiselect.component.mjs +2 -2
  24. package/esm2020/lib/components/po-field/po-rich-text/po-rich-text-toolbar/po-rich-text-toolbar.component.mjs +9 -9
  25. package/esm2020/lib/components/po-field/po-select/po-select.component.mjs +90 -25
  26. package/esm2020/lib/components/po-field/po-upload/po-upload-base.service.mjs +4 -2
  27. package/esm2020/lib/components/po-list-view/po-list-view.component.mjs +3 -3
  28. package/esm2020/lib/components/po-table/po-table-base.component.mjs +21 -2
  29. package/esm2020/lib/components/po-table/po-table-column-manager/po-table-column-manager.component.mjs +3 -3
  30. package/esm2020/lib/components/po-table/po-table.component.mjs +511 -476
  31. package/esm2020/lib/components/po-widget/po-widget-base.component.mjs +3 -2
  32. package/esm2020/lib/components/po-widget/po-widget.component.mjs +24 -12
  33. package/esm2020/lib/utils/util.mjs +21 -12
  34. package/fesm2015/po-ui-ng-components.mjs +1288 -952
  35. package/fesm2015/po-ui-ng-components.mjs.map +1 -1
  36. package/fesm2020/po-ui-ng-components.mjs +1266 -937
  37. package/fesm2020/po-ui-ng-components.mjs.map +1 -1
  38. package/lib/components/po-button/po-button-base.component.d.ts +29 -4
  39. package/lib/components/po-button/po-button-size.enum.d.ts +4 -0
  40. package/lib/components/po-button-group/po-button-group-base.component.d.ts +7 -0
  41. package/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-field.interface.d.ts +18 -0
  42. package/lib/components/po-field/po-checkbox/po-checkbox-base.component.d.ts +2 -1
  43. package/lib/components/po-field/po-checkbox-group/po-checkbox-group.module.d.ts +2 -1
  44. package/lib/components/po-field/po-combo/po-combo-base.component.d.ts +27 -22
  45. package/lib/components/po-field/po-datepicker-range/po-datepicker-range-base.component.d.ts +13 -1
  46. package/lib/components/po-field/po-lookup/po-lookup-base.component.d.ts +21 -1
  47. package/lib/components/po-field/po-lookup/po-lookup-modal/po-lookup-modal-base.component.d.ts +21 -1
  48. package/lib/components/po-field/po-lookup/services/po-lookup-modal.service.d.ts +4 -0
  49. package/lib/components/po-field/po-select/po-select.component.d.ts +36 -7
  50. package/lib/components/po-table/po-table-base.component.d.ts +12 -1
  51. package/lib/components/po-table/po-table.component.d.ts +6 -0
  52. package/lib/components/po-widget/po-widget-base.component.d.ts +1 -0
  53. package/lib/utils/util.d.ts +2 -1
  54. package/package.json +4 -4
  55. package/po-ui-ng-components-14.3.0.tgz +0 -0
  56. package/schematics/ng-add/index.js +1 -1
  57. package/schematics/ng-update/v14/index.js +1 -1
  58. package/schematics/ng-update/v2/index.js +1 -1
  59. package/schematics/ng-update/v3/index.js +1 -1
  60. package/schematics/ng-update/v4/index.js +1 -1
  61. package/schematics/ng-update/v5/index.js +1 -1
  62. package/schematics/ng-update/v6/index.js +1 -1
  63. package/po-ui-ng-components-14.1.0.tgz +0 -0
@@ -1,5 +1,5 @@
1
1
  import { Input, Output, EventEmitter, Directive } from '@angular/core';
2
- import { convertToBoolean, isTypeof } from '../../utils/util';
2
+ import { convertToBoolean, isTypeof, uuid } from '../../utils/util';
3
3
  import * as i0 from "@angular/core";
4
4
  /**
5
5
  *
@@ -63,6 +63,7 @@ export class PoWidgetBaseComponent {
63
63
  */
64
64
  this.titleAction = new EventEmitter();
65
65
  this.containerHeight = 'auto';
66
+ this.id = uuid();
66
67
  this._disabled = false;
67
68
  this._noShadow = false;
68
69
  this._primary = false;
@@ -244,4 +245,4 @@ PoWidgetBaseComponent.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PoWid
244
245
  type: Input,
245
246
  args: ['p-title']
246
247
  }] }); })();
247
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8td2lkZ2V0LWJhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jb21wb25lbnRzL3BvLXdpZGdldC9wby13aWRnZXQtYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBRTlEOzs7Ozs7Ozs7Ozs7R0FZRztBQUVILE1BQU0sT0FBZ0IscUJBQXFCO0lBRDNDO1FBS0U7Ozs7OztXQU1HO1FBQ2dCLFVBQUssR0FBNkIsSUFBSSxZQUFZLEVBQWMsQ0FBQztRQUVwRjs7Ozs7O1dBTUc7UUFDc0IsZUFBVSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBRWpGOzs7Ozs7V0FNRztRQUN5QixrQkFBYSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBRXZGOzs7Ozs7V0FNRztRQUMyQixvQkFBZSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBRTNGOzs7OztXQUtHO1FBQ2tCLFlBQU8sR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUUxRTs7Ozs7V0FLRztRQUN1QixnQkFBVyxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBRW5GLG9CQUFlLEdBQVksTUFBTSxDQUFDO1FBRzFCLGNBQVMsR0FBYSxLQUFLLENBQUM7UUFHNUIsY0FBUyxHQUFhLEtBQUssQ0FBQztRQUM1QixhQUFRLEdBQWEsS0FBSyxDQUFDO0tBb0pwQztJQWhKQzs7Ozs7Ozs7O09BU0c7SUFDSCxJQUEyQixVQUFVLENBQUMsS0FBYTtRQUNqRCxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLENB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TSxDQUFDO0lBQ3JCLENBQUM7OzBGQWhObUIscUJBQXFCO3dFQUFyQixxQkFBcUI7dUZBQXJCLHFCQUFxQjtjQUQxQyxTQUFTO2dCQUdvQixjQUFjO2tCQUF6QyxLQUFLO21CQUFDLG1CQUFtQjtZQVNQLEtBQUs7a0JBQXZCLE1BQU07bUJBQUMsU0FBUztZQVNRLFVBQVU7a0JBQWxDLE1BQU07bUJBQUMsZUFBZTtZQVNLLGFBQWE7a0JBQXhDLE1BQU07bUJBQUMsa0JBQWtCO1lBU0ksZUFBZTtrQkFBNUMsTUFBTTttQkFBQyxvQkFBb0I7WUFRUCxPQUFPO2tCQUEzQixNQUFNO21CQUFDLFdBQVc7WUFRTyxXQUFXO2tCQUFwQyxNQUFNO21CQUFDLGdCQUFnQjtZQXVCRyxVQUFVO2tCQUFwQyxLQUFLO21CQUFDLGNBQWM7WUFpQkksUUFBUTtrQkFBaEMsS0FBSzttQkFBQyxZQUFZO1lBb0JJLE1BQU07a0JBQTVCLEtBQUs7bUJBQUMsVUFBVTtZQWdCSSxJQUFJO2tCQUF4QixLQUFLO21CQUFDLFFBQVE7WUFrQlcsUUFBUTtrQkFBakMsS0FBSzttQkFBQyxhQUFhO1lBa0JJLE9BQU87a0JBQTlCLEtBQUs7bUJBQUMsV0FBVztZQWlCWSxZQUFZO2tCQUF6QyxLQUFLO21CQUFDLGlCQUFpQjtZQWtCRixLQUFLO2tCQUExQixLQUFLO21CQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBjb252ZXJ0VG9Cb29sZWFuLCBpc1R5cGVvZiB9IGZyb20gJy4uLy4uL3V0aWxzL3V0aWwnO1xuXG4vKipcbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqXG4gKiBPIGNvbXBvbmVudGUgYHBvLXdpZGdldGAgw6kgcmVjb21lbmRhZG8gcGFyYSBleGliacOnw6NvIGRlICpkYXNoYm9hcmRzKiwgcG9kZW5kbyBzZXIgdXRpbGl6YWRvXG4gKiBwYXJhIGluY2x1aXIgdsOhcmlvcyB0aXBvcyBkZSBjb250ZcO6ZG8gY29tbzogZ3LDoWZpY29zLCB0YWJlbGFzLCBncmlkcyBlIGltYWdlbnMuXG4gKlxuICogQWzDqW0gZGEgZXhpYmnDp8OjbyBkZSBjb250ZcO6ZG9zLCBlc3RlIGNvbXBvbmVudGUgcG9zc2liaWxpdGEgYWRpY2lvbmFyIGHDp8O1ZXMgZSB1bSBsaW5rXG4gKiBwYXJhIGFqdWRhLCBjb21vIHRhbWLDqW0gcG9zc2liaWxpdGEgc2VyIHV0aWxpemFkbyBjb20gb3Ugc2VtIHNvbWJyYS5cbiAqXG4gKiBQYXJhIGNvbnRyb2xhciBzdWEgbGFyZ3VyYSwgw6kgcG9zc8OtdmVsIHV0aWxpemFyIG8gW0dyaWQgU3lzdGVtXSgvZ3VpZGVzL2dyaWQtc3lzdGVtKSBwYXJhIHVtIG1haW9yXG4gKiBjb250cm9sZSBkZSBzZXUgcmVkaW1lbnNpb25hbWVudG8sIGFzc2ltIHBvc3NpYmlsaXRhbmRvIG8gdHJhdGFtZW50byBwYXJhIGRpZmVyZW50ZXMgcmVzb2x1w6fDtWVzLlxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQb1dpZGdldEJhc2VDb21wb25lbnQge1xuICAvKiogRGVzY3Jpw6fDo28gZGEgc2VndW5kYSBhw6fDo28uICovXG4gIEBJbnB1dCgncC1zZWNvbmRhcnktbGFiZWwnKSBzZWNvbmRhcnlMYWJlbD86IHN0cmluZztcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBBw6fDo28gcXVlIHNlcsOhIGV4ZWN1dGFkYSBxdWFuZG8gbyB1c3XDoXJpbyBjbGljYXIgc29icmUgYSDDoXJlYSB0b3RhbCBkbyBgcG8td2lkZ2V0YC5cbiAgICovXG4gIEBPdXRwdXQoJ3AtY2xpY2snKSBjbGljazogRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIEZ1bsOnw6NvIHF1ZSBzZXLDoSBkaXNwYXJhZGEgY29tIG8gdmFsb3IgZG8gYHAtZGlzYWJsZWRgIHF1YW5kbyBlc3RhIHByb3ByaWVkYWRlIGZvciBhbHRlcmFkYS5cbiAgICovXG4gIEBPdXRwdXQoJ3Atb24tZGlzYWJsZWQnKSBvbkRpc2FibGVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIEZ1bsOnw6NvIHF1ZSBzZXLDoSBjaGFtYWRhIG5hIHByaW1laXJhIGHDp8Ojby5cbiAgICovXG4gIEBPdXRwdXQoJ3AtcHJpbWFyeS1hY3Rpb24nKSBwcmltYXJ5QWN0aW9uOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIEZ1bsOnw6NvIHF1ZSBzZXLDoSBjaGFtYWRhIG5hIHNlZ3VuZGEgYcOnw6NvLlxuICAgKi9cbiAgQE91dHB1dCgncC1zZWNvbmRhcnktYWN0aW9uJykgc2Vjb25kYXJ5QWN0aW9uOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEZ1bsOnw6NvIGNoYW1hZGEgYW8gY2xpY2FyIG5vIMOtY29uZSBkZSBjb25maWd1cmHDp8Ojb1xuICAgKi9cbiAgQE91dHB1dCgncC1zZXR0aW5nJykgc2V0dGluZzogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBGdW7Dp8OjbyBxdWUgc2Vyw6EgY2hhbWFkYSBhbyBjbGljYXIgbm8gdMOtdHVsby5cbiAgICovXG4gIEBPdXRwdXQoJ3AtdGl0bGUtYWN0aW9uJykgdGl0bGVBY3Rpb246IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgY29udGFpbmVySGVpZ2h0Pzogc3RyaW5nID0gJ2F1dG8nO1xuXG4gIHByaXZhdGUgX2JhY2tncm91bmQ/OiBzdHJpbmc7XG4gIHByaXZhdGUgX2Rpc2FibGVkPzogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF9oZWlnaHQ/OiBudW1iZXI7XG4gIHByaXZhdGUgX2hlbHA/OiBzdHJpbmc7XG4gIHByaXZhdGUgX25vU2hhZG93PzogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF9wcmltYXJ5PzogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF9wcmltYXJ5TGFiZWw/OiBzdHJpbmc7XG4gIHByaXZhdGUgX3RpdGxlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIEFwbGljYcOnw6NvIGRlIGltYWdlbSBkZSBmdW5kby5cbiAgICogPiBTZSBhIGltYWdlbSBlc2NvbGhpZGEgaW50ZXJ2aXIgbmEgbGVnaWJpbGlkYWRlIGRvIHRleHRvIGNvbnRpZG8gbm8gYHAtd2lkZ2V0YCxcbiAgICogcG9kZS1zZSB1dGlsaXphciBhIHByb3ByaWVkYWRlIGBwLXByaW1hcnlgIGVtIGNvbmp1bnRvIHBhcmEgcXVlIG9zIHRleHRvcyBmaXF1ZW0gbmEgY29yIGJyYW5jYS5cbiAgICpcbiAgICovXG4gIEBJbnB1dCgncC1iYWNrZ3JvdW5kJykgc2V0IGJhY2tncm91bmQodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2JhY2tncm91bmQgPSB2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnID8gdmFsdWUgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBnZXQgYmFja2dyb3VuZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fYmFja2dyb3VuZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIERlc2FiaWxpdGEgdG9kYXMgYXMgYcOnw7VlcyBkbyBjb21wb25lbnRlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICBASW5wdXQoJ3AtZGlzYWJsZWQnKSBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9kaXNhYmxlZCA9IGNvbnZlcnRUb0Jvb2xlYW4odmFsdWUpO1xuXG4gICAgdGhpcy5vbkRpc2FibGVkLmVtaXQodGhpcy5kaXNhYmxlZCk7XG4gIH1cblxuICBnZXQgZGlzYWJsZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRGVmaW5lIGEgYWx0dXJhIGRvIGBwby13aWRnZXRgLlxuICAgKiBBIGFsdHVyYSBtw61uaW1hIHBhcmEgbyBgcG8td2lkZ2V0YCBkZXBlbmRlIGRvIHF1ZSBzZXLDoSBleGliaWRvIGF0cmF2w6lzIGRhcyBwcm9wcmllZGFkZXMgYHAtcHJpbWFyeS1sYWJlbGAsXG4gICAqIGBwLXNldHRpbmdgLCBgcC1oZWxwYCBlIGBwLXRpdGxlYC5cbiAgICogPiBDYXNvIG7Do28gc2VqYSBpbmZvcm1hZG8gdmFsb3IsIGEgcHJvcHJpZWRhZGUgaXLDoSBhc3N1bWlyIG8gdGFtYW5obyBkbyBjb250ZcO6ZG8uXG4gICAqL1xuICBASW5wdXQoJ3AtaGVpZ2h0Jykgc2V0IGhlaWdodCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5faGVpZ2h0ID0gcGFyc2VJbnQoPGFueT52YWx1ZSwgMTApO1xuICAgIHRoaXMuc2V0SGVpZ2h0KHRoaXMuaGVpZ2h0KTtcbiAgfVxuXG4gIGdldCBoZWlnaHQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5faGVpZ2h0O1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogTGluayBkZSBhanVkYVxuICAgKi9cbiAgQElucHV0KCdwLWhlbHAnKSBzZXQgaGVscCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5faGVscCA9IGlzVHlwZW9mKHZhbHVlLCAnc3RyaW5nJykgPyB2YWx1ZSA6ICcnO1xuICAgIHRoaXMuc2V0SGVpZ2h0KHRoaXMuaGVpZ2h0KTtcbiAgfVxuXG4gIGdldCBoZWxwKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2hlbHA7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBEZXNhYmlsaXRhIGEgc29tYnJhIGRvIGBwby13aWRnZXRgLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgdHJ1ZWBcbiAgICovXG4gIEBJbnB1dCgncC1uby1zaGFkb3cnKSBzZXQgbm9TaGFkb3codmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9ub1NoYWRvdyA9IDxhbnk+dmFsdWUgPT09ICcnID8gdHJ1ZSA6IGNvbnZlcnRUb0Jvb2xlYW4odmFsdWUpO1xuICAgIHRoaXMuc2V0SGVpZ2h0KHRoaXMuaGVpZ2h0KTtcbiAgfVxuXG4gIGdldCBub1NoYWRvdygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fbm9TaGFkb3c7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBPcMOnw6NvIHBhcmEgcXVlIG8gYHBvLXdpZGdldGAgZmlxdWUgZW0gZGVzdGFxdWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIEBJbnB1dCgncC1wcmltYXJ5Jykgc2V0IHByaW1hcnkodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9wcmltYXJ5ID0gPGFueT52YWx1ZSA9PT0gJycgPyB0cnVlIDogY29udmVydFRvQm9vbGVhbih2YWx1ZSk7XG4gIH1cblxuICBnZXQgcHJpbWFyeSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcHJpbWFyeTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIERlc2NyacOnw6NvIGRhIHByaW1laXJhIGHDp8Ojby5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgQElucHV0KCdwLXByaW1hcnktbGFiZWwnKSBzZXQgcHJpbWFyeUxhYmVsKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9wcmltYXJ5TGFiZWwgPSBpc1R5cGVvZih2YWx1ZSwgJ3N0cmluZycpID8gdmFsdWUgOiAnJztcbiAgICB0aGlzLnNldEhlaWdodCh0aGlzLmhlaWdodCk7XG4gIH1cblxuICBnZXQgcHJpbWFyeUxhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3ByaW1hcnlMYWJlbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIFTDrXR1bG8gZG8gYHBvLXdpZGdldGAuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIEBJbnB1dCgncC10aXRsZScpIHNldCB0aXRsZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fdGl0bGUgPSBpc1R5cGVvZih2YWx1ZSwgJ3N0cmluZycpID8gdmFsdWUgOiAnJztcbiAgICB0aGlzLnNldEhlaWdodCh0aGlzLmhlaWdodCk7XG4gIH1cblxuICBnZXQgdGl0bGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fdGl0bGU7XG4gIH1cblxuICBhYnN0cmFjdCBzZXRIZWlnaHQoaGVpZ2h0OiBudW1iZXIpO1xufVxuIl19
248
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8td2lkZ2V0LWJhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jb21wb25lbnRzL3BvLXdpZGdldC9wby13aWRnZXQtYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQUVwRTs7Ozs7Ozs7Ozs7O0dBWUc7QUFFSCxNQUFNLE9BQWdCLHFCQUFxQjtJQUQzQztRQUtFOzs7Ozs7V0FNRztRQUNnQixVQUFLLEdBQTZCLElBQUksWUFBWSxFQUFjLENBQUM7UUFFcEY7Ozs7OztXQU1HO1FBQ3NCLGVBQVUsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUVqRjs7Ozs7O1dBTUc7UUFDeUIsa0JBQWEsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUV2Rjs7Ozs7O1dBTUc7UUFDMkIsb0JBQWUsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUUzRjs7Ozs7V0FLRztRQUNrQixZQUFPLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFFMUU7Ozs7O1dBS0c7UUFDdUIsZ0JBQVcsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUVuRixvQkFBZSxHQUFZLE1BQU0sQ0FBQztRQUNsQyxPQUFFLEdBQUcsSUFBSSxFQUFFLENBQUM7UUFHSixjQUFTLEdBQWEsS0FBSyxDQUFDO1FBRzVCLGNBQVMsR0FBYSxLQUFLLENBQUM7UUFDNUIsYUFBUSxHQUFhLEtBQUssQ0FBQztLQW9KcEM7SUFoSkM7Ozs7Ozs7OztPQVNHO0lBQ0gsSUFBMkIsVUFBVSxDQUFDLEtBQWE7UUFDakQsSUFBSSxDQUFDLFdB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QztJQUVELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDOzswRkFqTm1CLHFCQUFxQjt3RUFBckIscUJBQXFCO3VGQUFyQixxQkFBcUI7Y0FEMUMsU0FBUztnQkFHb0IsY0FBYztrQkFBekMsS0FBSzttQkFBQyxtQkFBbUI7WUFTUCxLQUFLO2tCQUF2QixNQUFNO21CQUFDLFNBQVM7WUFTUSxVQUFVO2tCQUFsQyxNQUFNO21CQUFDLGVBQWU7WUFTSyxhQUFhO2tCQUF4QyxNQUFNO21CQUFDLGtCQUFrQjtZQVNJLGVBQWU7a0JBQTVDLE1BQU07bUJBQUMsb0JBQW9CO1lBUVAsT0FBTztrQkFBM0IsTUFBTTttQkFBQyxXQUFXO1lBUU8sV0FBVztrQkFBcEMsTUFBTTttQkFBQyxnQkFBZ0I7WUF3QkcsVUFBVTtrQkFBcEMsS0FBSzttQkFBQyxjQUFjO1lBaUJJLFFBQVE7a0JBQWhDLEtBQUs7bUJBQUMsWUFBWTtZQW9CSSxNQUFNO2tCQUE1QixLQUFLO21CQUFDLFVBQVU7WUFnQkksSUFBSTtrQkFBeEIsS0FBSzttQkFBQyxRQUFRO1lBa0JXLFFBQVE7a0JBQWpDLEtBQUs7bUJBQUMsYUFBYTtZQWtCSSxPQUFPO2tCQUE5QixLQUFLO21CQUFDLFdBQVc7WUFpQlksWUFBWTtrQkFBekMsS0FBSzttQkFBQyxpQkFBaUI7WUFrQkYsS0FBSztrQkFBMUIsS0FBSzttQkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgY29udmVydFRvQm9vbGVhbiwgaXNUeXBlb2YsIHV1aWQgfSBmcm9tICcuLi8uLi91dGlscy91dGlsJztcblxuLyoqXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKlxuICogTyBjb21wb25lbnRlIGBwby13aWRnZXRgIMOpIHJlY29tZW5kYWRvIHBhcmEgZXhpYmnDp8OjbyBkZSAqZGFzaGJvYXJkcyosIHBvZGVuZG8gc2VyIHV0aWxpemFkb1xuICogcGFyYSBpbmNsdWlyIHbDoXJpb3MgdGlwb3MgZGUgY29udGXDumRvIGNvbW86IGdyw6FmaWNvcywgdGFiZWxhcywgZ3JpZHMgZSBpbWFnZW5zLlxuICpcbiAqIEFsw6ltIGRhIGV4aWJpw6fDo28gZGUgY29udGXDumRvcywgZXN0ZSBjb21wb25lbnRlIHBvc3NpYmlsaXRhIGFkaWNpb25hciBhw6fDtWVzIGUgdW0gbGlua1xuICogcGFyYSBhanVkYSwgY29tbyB0YW1iw6ltIHBvc3NpYmlsaXRhIHNlciB1dGlsaXphZG8gY29tIG91IHNlbSBzb21icmEuXG4gKlxuICogUGFyYSBjb250cm9sYXIgc3VhIGxhcmd1cmEsIMOpIHBvc3PDrXZlbCB1dGlsaXphciBvIFtHcmlkIFN5c3RlbV0oL2d1aWRlcy9ncmlkLXN5c3RlbSkgcGFyYSB1bSBtYWlvclxuICogY29udHJvbGUgZGUgc2V1IHJlZGltZW5zaW9uYW1lbnRvLCBhc3NpbSBwb3NzaWJpbGl0YW5kbyBvIHRyYXRhbWVudG8gcGFyYSBkaWZlcmVudGVzIHJlc29sdcOnw7Vlcy5cbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUG9XaWRnZXRCYXNlQ29tcG9uZW50IHtcbiAgLyoqIERlc2NyacOnw6NvIGRhIHNlZ3VuZGEgYcOnw6NvLiAqL1xuICBASW5wdXQoJ3Atc2Vjb25kYXJ5LWxhYmVsJykgc2Vjb25kYXJ5TGFiZWw/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogQcOnw6NvIHF1ZSBzZXLDoSBleGVjdXRhZGEgcXVhbmRvIG8gdXN1w6FyaW8gY2xpY2FyIHNvYnJlIGEgw6FyZWEgdG90YWwgZG8gYHBvLXdpZGdldGAuXG4gICAqL1xuICBAT3V0cHV0KCdwLWNsaWNrJykgY2xpY2s6IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4oKTtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBGdW7Dp8OjbyBxdWUgc2Vyw6EgZGlzcGFyYWRhIGNvbSBvIHZhbG9yIGRvIGBwLWRpc2FibGVkYCBxdWFuZG8gZXN0YSBwcm9wcmllZGFkZSBmb3IgYWx0ZXJhZGEuXG4gICAqL1xuICBAT3V0cHV0KCdwLW9uLWRpc2FibGVkJykgb25EaXNhYmxlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBGdW7Dp8OjbyBxdWUgc2Vyw6EgY2hhbWFkYSBuYSBwcmltZWlyYSBhw6fDo28uXG4gICAqL1xuICBAT3V0cHV0KCdwLXByaW1hcnktYWN0aW9uJykgcHJpbWFyeUFjdGlvbjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBGdW7Dp8OjbyBxdWUgc2Vyw6EgY2hhbWFkYSBuYSBzZWd1bmRhIGHDp8Ojby5cbiAgICovXG4gIEBPdXRwdXQoJ3Atc2Vjb25kYXJ5LWFjdGlvbicpIHNlY29uZGFyeUFjdGlvbjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBGdW7Dp8OjbyBjaGFtYWRhIGFvIGNsaWNhciBubyDDrWNvbmUgZGUgY29uZmlndXJhw6fDo29cbiAgICovXG4gIEBPdXRwdXQoJ3Atc2V0dGluZycpIHNldHRpbmc6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogRnVuw6fDo28gcXVlIHNlcsOhIGNoYW1hZGEgYW8gY2xpY2FyIG5vIHTDrXR1bG8uXG4gICAqL1xuICBAT3V0cHV0KCdwLXRpdGxlLWFjdGlvbicpIHRpdGxlQWN0aW9uOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIGNvbnRhaW5lckhlaWdodD86IHN0cmluZyA9ICdhdXRvJztcbiAgaWQgPSB1dWlkKCk7XG5cbiAgcHJpdmF0ZSBfYmFja2dyb3VuZD86IHN0cmluZztcbiAgcHJpdmF0ZSBfZGlzYWJsZWQ/OiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX2hlaWdodD86IG51bWJlcjtcbiAgcHJpdmF0ZSBfaGVscD86IHN0cmluZztcbiAgcHJpdmF0ZSBfbm9TaGFkb3c/OiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX3ByaW1hcnk/OiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX3ByaW1hcnlMYWJlbD86IHN0cmluZztcbiAgcHJpdmF0ZSBfdGl0bGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogQXBsaWNhw6fDo28gZGUgaW1hZ2VtIGRlIGZ1bmRvLlxuICAgKiA+IFNlIGEgaW1hZ2VtIGVzY29saGlkYSBpbnRlcnZpciBuYSBsZWdpYmlsaWRhZGUgZG8gdGV4dG8gY29udGlkbyBubyBgcC13aWRnZXRgLFxuICAgKiBwb2RlLXNlIHV0aWxpemFyIGEgcHJvcHJpZWRhZGUgYHAtcHJpbWFyeWAgZW0gY29uanVudG8gcGFyYSBxdWUgb3MgdGV4dG9zIGZpcXVlbSBuYSBjb3IgYnJhbmNhLlxuICAgKlxuICAgKi9cbiAgQElucHV0KCdwLWJhY2tncm91bmQnKSBzZXQgYmFja2dyb3VuZCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fYmFja2dyb3VuZCA9IHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgPyB2YWx1ZSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGdldCBiYWNrZ3JvdW5kKCkge1xuICAgIHJldHVybiB0aGlzLl9iYWNrZ3JvdW5kO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRGVzYWJpbGl0YSB0b2RhcyBhcyBhw6fDtWVzIGRvIGNvbXBvbmVudGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIEBJbnB1dCgncC1kaXNhYmxlZCcpIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2Rpc2FibGVkID0gY29udmVydFRvQm9vbGVhbih2YWx1ZSk7XG5cbiAgICB0aGlzLm9uRGlzYWJsZWQuZW1pdCh0aGlzLmRpc2FibGVkKTtcbiAgfVxuXG4gIGdldCBkaXNhYmxlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBEZWZpbmUgYSBhbHR1cmEgZG8gYHBvLXdpZGdldGAuXG4gICAqIEEgYWx0dXJhIG3DrW5pbWEgcGFyYSBvIGBwby13aWRnZXRgIGRlcGVuZGUgZG8gcXVlIHNlcsOhIGV4aWJpZG8gYXRyYXbDqXMgZGFzIHByb3ByaWVkYWRlcyBgcC1wcmltYXJ5LWxhYmVsYCxcbiAgICogYHAtc2V0dGluZ2AsIGBwLWhlbHBgIGUgYHAtdGl0bGVgLlxuICAgKiA+IENhc28gbsOjbyBzZWphIGluZm9ybWFkbyB2YWxvciwgYSBwcm9wcmllZGFkZSBpcsOhIGFzc3VtaXIgbyB0YW1hbmhvIGRvIGNvbnRlw7pkby5cbiAgICovXG4gIEBJbnB1dCgncC1oZWlnaHQnKSBzZXQgaGVpZ2h0KHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl9oZWlnaHQgPSBwYXJzZUludCg8YW55PnZhbHVlLCAxMCk7XG4gICAgdGhpcy5zZXRIZWlnaHQodGhpcy5oZWlnaHQpO1xuICB9XG5cbiAgZ2V0IGhlaWdodCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9oZWlnaHQ7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBMaW5rIGRlIGFqdWRhXG4gICAqL1xuICBASW5wdXQoJ3AtaGVscCcpIHNldCBoZWxwKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9oZWxwID0gaXNUeXBlb2YodmFsdWUsICdzdHJpbmcnKSA/IHZhbHVlIDogJyc7XG4gICAgdGhpcy5zZXRIZWlnaHQodGhpcy5oZWlnaHQpO1xuICB9XG5cbiAgZ2V0IGhlbHAoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5faGVscDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIERlc2FiaWxpdGEgYSBzb21icmEgZG8gYHBvLXdpZGdldGAuXG4gICAqXG4gICAqIEBkZWZhdWx0IGB0cnVlYFxuICAgKi9cbiAgQElucHV0KCdwLW5vLXNoYWRvdycpIHNldCBub1NoYWRvdyh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX25vU2hhZG93ID0gPGFueT52YWx1ZSA9PT0gJycgPyB0cnVlIDogY29udmVydFRvQm9vbGVhbih2YWx1ZSk7XG4gICAgdGhpcy5zZXRIZWlnaHQodGhpcy5oZWlnaHQpO1xuICB9XG5cbiAgZ2V0IG5vU2hhZG93KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9ub1NoYWRvdztcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIE9ww6fDo28gcGFyYSBxdWUgbyBgcG8td2lkZ2V0YCBmaXF1ZSBlbSBkZXN0YXF1ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgQElucHV0KCdwLXByaW1hcnknKSBzZXQgcHJpbWFyeSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3ByaW1hcnkgPSA8YW55PnZhbHVlID09PSAnJyA/IHRydWUgOiBjb252ZXJ0VG9Cb29sZWFuKHZhbHVlKTtcbiAgfVxuXG4gIGdldCBwcmltYXJ5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9wcmltYXJ5O1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRGVzY3Jpw6fDo28gZGEgcHJpbWVpcmEgYcOnw6NvLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICBASW5wdXQoJ3AtcHJpbWFyeS1sYWJlbCcpIHNldCBwcmltYXJ5TGFiZWwodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX3ByaW1hcnlMYWJlbCA9IGlzVHlwZW9mKHZhbHVlLCAnc3RyaW5nJykgPyB2YWx1ZSA6ICcnO1xuICAgIHRoaXMuc2V0SGVpZ2h0KHRoaXMuaGVpZ2h0KTtcbiAgfVxuXG4gIGdldCBwcmltYXJ5TGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fcHJpbWFyeUxhYmVsO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogVMOtdHVsbyBkbyBgcG8td2lkZ2V0YC5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgQElucHV0KCdwLXRpdGxlJykgc2V0IHRpdGxlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl90aXRsZSA9IGlzVHlwZW9mKHZhbHVlLCAnc3RyaW5nJykgPyB2YWx1ZSA6ICcnO1xuICAgIHRoaXMuc2V0SGVpZ2h0KHRoaXMuaGVpZ2h0KTtcbiAgfVxuXG4gIGdldCB0aXRsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl90aXRsZTtcbiAgfVxuXG4gIGFic3RyYWN0IHNldEhlaWdodChoZWlnaHQ6IG51bWJlcik7XG59XG4iXX0=
@@ -25,17 +25,23 @@ function PoWidgetComponent_div_1_div_4_span_1_Template(rf, ctx) { if (rf & 1) {
25
25
  i0.ɵɵelementStart(0, "span", 13);
26
26
  i0.ɵɵlistener("click", function PoWidgetComponent_div_1_div_4_span_1_Template_span_click_0_listener($event) { i0.ɵɵrestoreView(_r11); const ctx_r10 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r10.settingOutput($event)); });
27
27
  i0.ɵɵelementEnd();
28
+ } if (rf & 2) {
29
+ const ctx_r8 = i0.ɵɵnextContext(3);
30
+ i0.ɵɵpropertyInterpolate1("id", "settingAction-", ctx_r8.id, "");
28
31
  } }
29
32
  function PoWidgetComponent_div_1_div_4_span_2_Template(rf, ctx) { if (rf & 1) {
30
33
  const _r13 = i0.ɵɵgetCurrentView();
31
34
  i0.ɵɵelementStart(0, "span", 14);
32
35
  i0.ɵɵlistener("click", function PoWidgetComponent_div_1_div_4_span_2_Template_span_click_0_listener($event) { i0.ɵɵrestoreView(_r13); const ctx_r12 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r12.openHelp($event)); });
33
36
  i0.ɵɵelementEnd();
37
+ } if (rf & 2) {
38
+ const ctx_r9 = i0.ɵɵnextContext(3);
39
+ i0.ɵɵpropertyInterpolate1("id", "helpLink-", ctx_r9.id, "");
34
40
  } }
35
41
  function PoWidgetComponent_div_1_div_4_Template(rf, ctx) { if (rf & 1) {
36
42
  i0.ɵɵelementStart(0, "div", 10);
37
- i0.ɵɵtemplate(1, PoWidgetComponent_div_1_div_4_span_1_Template, 1, 0, "span", 11);
38
- i0.ɵɵtemplate(2, PoWidgetComponent_div_1_div_4_span_2_Template, 1, 0, "span", 12);
43
+ i0.ɵɵtemplate(1, PoWidgetComponent_div_1_div_4_span_1_Template, 1, 1, "span", 11);
44
+ i0.ɵɵtemplate(2, PoWidgetComponent_div_1_div_4_span_2_Template, 1, 1, "span", 12);
39
45
  i0.ɵɵelementEnd();
40
46
  } if (rf & 2) {
41
47
  const ctx_r5 = i0.ɵɵnextContext(2);
@@ -66,7 +72,9 @@ function PoWidgetComponent_div_5_div_1_Template(rf, ctx) { if (rf & 1) {
66
72
  i0.ɵɵelementEnd()();
67
73
  } if (rf & 2) {
68
74
  const ctx_r14 = i0.ɵɵnextContext(2);
69
- i0.ɵɵadvance(2);
75
+ i0.ɵɵadvance(1);
76
+ i0.ɵɵpropertyInterpolate1("id", "primaryAct-", ctx_r14.id, "");
77
+ i0.ɵɵadvance(1);
70
78
  i0.ɵɵtextInterpolate(ctx_r14.primaryLabel);
71
79
  } }
72
80
  function PoWidgetComponent_div_5_div_2_Template(rf, ctx) { if (rf & 1) {
@@ -77,25 +85,29 @@ function PoWidgetComponent_div_5_div_2_Template(rf, ctx) { if (rf & 1) {
77
85
  i0.ɵɵelementEnd()();
78
86
  } if (rf & 2) {
79
87
  const ctx_r15 = i0.ɵɵnextContext(2);
80
- i0.ɵɵadvance(2);
88
+ i0.ɵɵadvance(1);
89
+ i0.ɵɵpropertyInterpolate1("id", "primaryAct-", ctx_r15.id, "");
90
+ i0.ɵɵadvance(1);
81
91
  i0.ɵɵtextInterpolate(ctx_r15.primaryLabel);
82
92
  } }
83
93
  function PoWidgetComponent_div_5_div_3_Template(rf, ctx) { if (rf & 1) {
84
94
  const _r22 = i0.ɵɵgetCurrentView();
85
- i0.ɵɵelementStart(0, "div", 20)(1, "a", 21);
95
+ i0.ɵɵelementStart(0, "div", 20)(1, "a", 19);
86
96
  i0.ɵɵlistener("click", function PoWidgetComponent_div_5_div_3_Template_a_click_1_listener($event) { i0.ɵɵrestoreView(_r22); const ctx_r21 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r21.runSecondaryAction($event)); });
87
97
  i0.ɵɵtext(2);
88
98
  i0.ɵɵelementEnd()();
89
99
  } if (rf & 2) {
90
100
  const ctx_r16 = i0.ɵɵnextContext(2);
91
- i0.ɵɵadvance(2);
101
+ i0.ɵɵadvance(1);
102
+ i0.ɵɵpropertyInterpolate1("id", "secondaryAct-", ctx_r16.id, "");
103
+ i0.ɵɵadvance(1);
92
104
  i0.ɵɵtextInterpolate(ctx_r16.secondaryLabel);
93
105
  } }
94
106
  function PoWidgetComponent_div_5_Template(rf, ctx) { if (rf & 1) {
95
107
  i0.ɵɵelementStart(0, "div", 15);
96
- i0.ɵɵtemplate(1, PoWidgetComponent_div_5_div_1_Template, 3, 1, "div", 16);
97
- i0.ɵɵtemplate(2, PoWidgetComponent_div_5_div_2_Template, 3, 1, "div", 17);
98
- i0.ɵɵtemplate(3, PoWidgetComponent_div_5_div_3_Template, 3, 1, "div", 17);
108
+ i0.ɵɵtemplate(1, PoWidgetComponent_div_5_div_1_Template, 3, 2, "div", 16);
109
+ i0.ɵɵtemplate(2, PoWidgetComponent_div_5_div_2_Template, 3, 2, "div", 17);
110
+ i0.ɵɵtemplate(3, PoWidgetComponent_div_5_div_3_Template, 3, 2, "div", 17);
99
111
  i0.ɵɵelementEnd();
100
112
  } if (rf & 2) {
101
113
  const ctx_r1 = i0.ɵɵnextContext();
@@ -210,7 +222,7 @@ export class PoWidgetComponent extends PoWidgetBaseComponent {
210
222
  }
211
223
  }
212
224
  PoWidgetComponent.ɵfac = function PoWidgetComponent_Factory(t) { return new (t || PoWidgetComponent)(i0.ɵɵdirectiveInject(i0.ViewContainerRef)); };
213
- PoWidgetComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PoWidgetComponent, selectors: [["po-widget"]], features: [i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c0, decls: 6, vars: 15, consts: [[3, "click"], ["class", "po-widget-header", 4, "ngIf"], ["p-no-border", "", 3, "p-height"], [1, "po-widget-body"], ["class", "po-widget-footer", 4, "ngIf"], [1, "po-widget-header"], ["class", "po-widget-title-action", 3, "click", 4, "ngIf", "ngIfElse"], ["noTitleAction", ""], ["class", "po-pull-right", 4, "ngIf"], [1, "po-widget-title-action", 3, "click"], [1, "po-pull-right"], ["id", "settingAction", "class", "po-clickable po-icon po-icon-settings", 3, "click", 4, "ngIf"], ["id", "helpLink", "class", "po-clickable po-icon po-icon-help", 3, "click", 4, "ngIf"], ["id", "settingAction", 1, "po-clickable", "po-icon", "po-icon-settings", 3, "click"], ["id", "helpLink", 1, "po-clickable", "po-icon", "po-icon-help", 3, "click"], [1, "po-widget-footer"], ["class", "po-widget-xl", 4, "ngIf"], ["class", "po-widget-md", 4, "ngIf"], [1, "po-widget-xl"], ["id", "primaryAct", 1, "po-widget-action", 3, "click"], [1, "po-widget-md"], ["id", "secondaryAct", 1, "po-widget-action", 3, "click"]], template: function PoWidgetComponent_Template(rf, ctx) { if (rf & 1) {
225
+ PoWidgetComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PoWidgetComponent, selectors: [["po-widget"]], features: [i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c0, decls: 6, vars: 15, consts: [[3, "click"], ["class", "po-widget-header", 4, "ngIf"], ["p-no-border", "", 3, "p-height"], [1, "po-widget-body"], ["class", "po-widget-footer", 4, "ngIf"], [1, "po-widget-header"], ["class", "po-widget-title-action", 3, "click", 4, "ngIf", "ngIfElse"], ["noTitleAction", ""], ["class", "po-pull-right", 4, "ngIf"], [1, "po-widget-title-action", 3, "click"], [1, "po-pull-right"], ["class", "po-clickable po-icon po-icon-settings", 3, "id", "click", 4, "ngIf"], ["class", "po-clickable po-icon po-icon-help", 3, "id", "click", 4, "ngIf"], [1, "po-clickable", "po-icon", "po-icon-settings", 3, "id", "click"], [1, "po-clickable", "po-icon", "po-icon-help", 3, "id", "click"], [1, "po-widget-footer"], ["class", "po-widget-xl", 4, "ngIf"], ["class", "po-widget-md", 4, "ngIf"], [1, "po-widget-xl"], [1, "po-widget-action", 3, "id", "click"], [1, "po-widget-md"]], template: function PoWidgetComponent_Template(rf, ctx) { if (rf & 1) {
214
226
  i0.ɵɵprojectionDef();
215
227
  i0.ɵɵelementStart(0, "div", 0);
216
228
  i0.ɵɵlistener("click", function PoWidgetComponent_Template_div_click_0_listener($event) { return ctx.onClick($event); });
@@ -232,6 +244,6 @@ PoWidgetComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PoWidgetC
232
244
  } }, dependencies: [i1.NgIf, i2.PoContainerComponent], encapsulation: 2 });
233
245
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoWidgetComponent, [{
234
246
  type: Component,
235
- args: [{ selector: 'po-widget', template: "<div\n [class.po-clickable]=\"click.observers.length\"\n [class.po-widget]=\"!primary\"\n [class.po-widget-disabled]=\"disabled\"\n [class.po-widget-primary]=\"primary\"\n [class.po-widget-no-shadow]=\"noShadow\"\n [style.background-image]=\"background ? 'url(' + background + ')' : undefined\"\n (click)=\"onClick($event)\"\n>\n <div *ngIf=\"hasTitleHelpOrSetting()\" class=\"po-widget-header\">\n <span *ngIf=\"showTitleAction; else noTitleAction\" class=\"po-widget-title-action\" (click)=\"runTitleAction($event)\">\n {{ title }}\n </span>\n <ng-template #noTitleAction>{{ title }}</ng-template>\n\n <div *ngIf=\"setting.observers[0] || help\" class=\"po-pull-right\">\n <span\n id=\"settingAction\"\n *ngIf=\"setting.observers[0]\"\n class=\"po-clickable po-icon po-icon-settings\"\n (click)=\"settingOutput($event)\"\n >\n </span>\n <span id=\"helpLink\" *ngIf=\"help\" class=\"po-clickable po-icon po-icon-help\" (click)=\"openHelp($event)\"> </span>\n </div>\n </div>\n\n <po-container p-no-border [p-height]=\"containerHeight\">\n <div class=\"po-widget-body\">\n <ng-content></ng-content>\n </div>\n </po-container>\n\n <div *ngIf=\"primaryLabel\" class=\"po-widget-footer\">\n <div class=\"po-widget-xl\" *ngIf=\"!secondaryLabel\">\n <a class=\"po-widget-action\" id=\"primaryAct\" (click)=\"runPrimaryAction($event)\">{{ primaryLabel }}</a>\n </div>\n\n <div class=\"po-widget-md\" *ngIf=\"secondaryLabel\">\n <a class=\"po-widget-action\" id=\"primaryAct\" (click)=\"runPrimaryAction($event)\">{{ primaryLabel }}</a>\n </div>\n <div class=\"po-widget-md\" *ngIf=\"secondaryLabel\">\n <a class=\"po-widget-action\" id=\"secondaryAct\" (click)=\"runSecondaryAction($event)\">{{ secondaryLabel }}</a>\n </div>\n </div>\n</div>\n" }]
247
+ args: [{ selector: 'po-widget', template: "<div\n [class.po-clickable]=\"click.observers.length\"\n [class.po-widget]=\"!primary\"\n [class.po-widget-disabled]=\"disabled\"\n [class.po-widget-primary]=\"primary\"\n [class.po-widget-no-shadow]=\"noShadow\"\n [style.background-image]=\"background ? 'url(' + background + ')' : undefined\"\n (click)=\"onClick($event)\"\n>\n <div *ngIf=\"hasTitleHelpOrSetting()\" class=\"po-widget-header\">\n <span *ngIf=\"showTitleAction; else noTitleAction\" class=\"po-widget-title-action\" (click)=\"runTitleAction($event)\">\n {{ title }}\n </span>\n <ng-template #noTitleAction>{{ title }}</ng-template>\n\n <div *ngIf=\"setting.observers[0] || help\" class=\"po-pull-right\">\n <span\n id=\"settingAction-{{ id }}\"\n *ngIf=\"setting.observers[0]\"\n class=\"po-clickable po-icon po-icon-settings\"\n (click)=\"settingOutput($event)\"\n >\n </span>\n <span id=\"helpLink-{{ id }}\" *ngIf=\"help\" class=\"po-clickable po-icon po-icon-help\" (click)=\"openHelp($event)\">\n </span>\n </div>\n </div>\n\n <po-container p-no-border [p-height]=\"containerHeight\">\n <div class=\"po-widget-body\">\n <ng-content></ng-content>\n </div>\n </po-container>\n\n <div *ngIf=\"primaryLabel\" class=\"po-widget-footer\">\n <div class=\"po-widget-xl\" *ngIf=\"!secondaryLabel\">\n <a class=\"po-widget-action\" id=\"primaryAct-{{ id }}\" (click)=\"runPrimaryAction($event)\">{{ primaryLabel }}</a>\n </div>\n\n <div class=\"po-widget-md\" *ngIf=\"secondaryLabel\">\n <a class=\"po-widget-action\" id=\"primaryAct-{{ id }}\" (click)=\"runPrimaryAction($event)\">{{ primaryLabel }}</a>\n </div>\n <div class=\"po-widget-md\" *ngIf=\"secondaryLabel\">\n <a class=\"po-widget-action\" id=\"secondaryAct-{{ id }}\" (click)=\"runSecondaryAction($event)\">{{\n secondaryLabel\n }}</a>\n </div>\n </div>\n</div>\n" }]
236
248
  }], function () { return [{ type: i0.ViewContainerRef }]; }, null); })();
237
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8td2lkZ2V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby13aWRnZXQvcG8td2lkZ2V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby13aWRnZXQvcG8td2lkZ2V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQTRCLE1BQU0sZUFBZSxDQUFDO0FBRXBFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7SUNRL0QsK0JBQWtIO0lBQWpDLDBLQUFTLGVBQUEsNkJBQXNCLENBQUEsSUFBQztJQUMvRyxZQUNGO0lBQUEsaUJBQU87OztJQURMLGVBQ0Y7SUFERSw2Q0FDRjs7O0lBQzRCLFlBQVc7OztJQUFYLGtDQUFXOzs7O0lBR3JDLGdDQUtDO0lBREMsa0xBQVMsZUFBQSw2QkFBcUIsQ0FBQSxJQUFDO0lBRWpDLGlCQUFPOzs7O0lBQ1AsZ0NBQXNHO0lBQTNCLGtMQUFTLGVBQUEsd0JBQWdCLENBQUEsSUFBQztJQUFFLGlCQUFPOzs7SUFSaEgsK0JBQWdFO0lBQzlELGlGQU1PO0lBQ1AsaUZBQThHO0lBQ2hILGlCQUFNOzs7SUFORCxlQUEwQjtJQUExQixrREFBMEI7SUFLUixlQUFVO0lBQVYsa0NBQVU7OztJQWRuQyw4QkFBOEQ7SUFDNUQsMEVBRU87SUFDUCx5SEFBcUQ7SUFFckQsd0VBU007SUFDUixpQkFBTTs7OztJQWZHLGVBQXVCO0lBQXZCLDZDQUF1QixpQkFBQTtJQUt4QixlQUFrQztJQUFsQyxpRUFBa0M7Ozs7SUFtQnhDLCtCQUFrRCxZQUFBO0lBQ0osd0tBQVMsZUFBQSxnQ0FBd0IsQ0FBQSxJQUFDO0lBQUMsWUFBa0I7SUFBQSxpQkFBSSxFQUFBOzs7SUFB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cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgUG9XaWRnZXRCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi9wby13aWRnZXQtYmFzZS5jb21wb25lbnQnO1xuXG4vKipcbiAqIEBkb2NzRXh0ZW5kcyBQb1dpZGdldEJhc2VDb21wb25lbnRcbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby13aWRnZXQtYmFzaWNcIiB0aXRsZT1cIlBPIFdpZGdldCBCYXNpY1wiPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8td2lkZ2V0LWJhc2ljL3NhbXBsZS1wby13aWRnZXQtYmFzaWMuY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8td2lkZ2V0LWJhc2ljL3NhbXBsZS1wby13aWRnZXQtYmFzaWMuY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cbiAqIDwvZXhhbXBsZT5cbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8td2lkZ2V0LWxhYnNcIiB0aXRsZT1cIlBPIFdpZGdldCBMYWJzXCI+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby13aWRnZXQtbGFicy9zYW1wbGUtcG8td2lkZ2V0LWxhYnMuY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8td2lkZ2V0LWxhYnMvc2FtcGxlLXBvLXdpZGdldC1sYWJzLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLXdpZGdldC1maW5hbmNlLWRhc2hib2FyZFwiIHRpdGxlPVwiUE8gV2lkZ2V0IC0gRmluYW5jZSBkYXNoYm9hcmRcIj5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXdpZGdldC1maW5hbmNlLWRhc2hib2FyZC9zYW1wbGUtcG8td2lkZ2V0LWZpbmFuY2UtZGFzaGJvYXJkLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXdpZGdldC1maW5hbmNlLWRhc2hib2FyZC9zYW1wbGUtcG8td2lkZ2V0LWZpbmFuY2UtZGFzaGJvYXJkLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLXdpZGdldC1jYXJkXCIgdGl0bGU9XCJQTyBXaWRnZXQgLSBDYXJkXCI+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby13aWRnZXQtY2FyZC9zYW1wbGUtcG8td2lkZ2V0LWNhcmQuY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8td2lkZ2V0LWNhcmQvc2FtcGxlLXBvLXdpZGdldC1jYXJkLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwby13aWRnZXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vcG8td2lkZ2V0LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBQb1dpZGdldENvbXBvbmVudCBleHRlbmRzIFBvV2lkZ2V0QmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGdldCBzaG93VGl0bGVBY3Rpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy50aXRsZUFjdGlvbi5vYnNlcnZlcnNbMF07XG4gIH1cblxuICBjb25zdHJ1Y3Rvcih2aWV3UmVmOiBWaWV3Q29udGFpbmVyUmVmKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc2V0SGVpZ2h0KHRoaXMuaGVpZ2h0KTtcbiAgfVxuXG4gIGhhc1RpdGxlSGVscE9yU2V0dGluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLnRpdGxlIHx8ICEhdGhpcy5oZWxwIHx8ICEhdGhpcy5zZXR0aW5nLm9ic2VydmVyc1swXTtcbiAgfVxuXG4gIG9uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuY2xpY2suZW1pdChldmVudCk7XG4gICAgfVxuICB9XG5cbiAgb3BlbkhlbHAoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgd2luZG93Lm9wZW4odGhpcy5oZWxwLCAnX2JsYW5rJyk7XG4gICAgfVxuICB9XG5cbiAgcnVuUHJpbWFyeUFjdGlvbihldmVudDogTW91c2VFdmVudCkge1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICB0aGlzLnByaW1hcnlBY3Rpb24uZW1pdCgpO1xuICAgIH1cbiAgfVxuXG4gIHJ1blNlY29uZGFyeUFjdGlvbihldmVudDogTW91c2VFdmVudCkge1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICB0aGlzLnNlY29uZGFyeUFjdGlvbi5lbWl0KCk7XG4gICAgfVxuICB9XG5cbiAgcnVuVGl0bGVBY3Rpb24oZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgdGhpcy50aXRsZUFjdGlvbi5lbWl0KCk7XG4gICAgfVxuICB9XG5cbiAgc2V0SGVpZ2h0KGhlaWdodDogbnVtYmVyKSB7XG4gICAgaWYgKGhlaWdodCkge1xuICAgICAgbGV0IGJvZHlIZWlnaHQgPSBoZWlnaHQ7XG4gICAgICBjb25zdCBoYXNTZXR0aW5nT3JIZWxwID0gdGhpcy5zZXR0aW5nLm9ic2VydmVycy5sZW5ndGggPiAwIHx8IHRoaXMuaGVscDtcbiAgICAgIGNvbnN0IGZvb3RlckJvcmRlciA9IDE7XG4gICAgICBjb25zdCBmb290ZXJIZWlnaHQgPSA0MDtcbiAgICAgIGNvbnN0IHNldHRpbmdIZWlnaHQgPSAzNztcbiAgICAgIGNvbnN0IHNoYWRvd0hlaWdodCA9IDI7XG4gICAgICBjb25zdCB0aXRsZUhlaWdodCA9IDUwO1xuXG4gICAgICBpZiAodGhpcy5ub1NoYWRvdykge1xuICAgICAgICBib2R5SGVpZ2h0IC09IHNoYWRvd0hlaWdodDtcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc1NldHRpbmdPckhlbHAgJiYgIXRoaXMudGl0bGUpIHtcbiAgICAgICAgYm9keUhlaWdodCAtPSBzZXR0aW5nSGVpZ2h0O1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy50aXRsZSkge1xuICAgICAgICBib2R5SGVpZ2h0IC09IHRpdGxlSGVpZ2h0O1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5wcmltYXJ5TGFiZWwpIHtcbiAgICAgICAgYm9keUhlaWdodCAtPSBmb290ZXJIZWlnaHQgKyBmb290ZXJCb3JkZXI7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuY29udGFpbmVySGVpZ2h0ID0gYCR7Ym9keUhlaWdodH1weGA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29udGFpbmVySGVpZ2h0ID0gYGF1dG9gO1xuICAgIH1cbiAgfVxuXG4gIHNldHRpbmdPdXRwdXQoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgdGhpcy5zZXR0aW5nLmVtaXQoKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXZcbiAgW2NsYXNzLnBvLWNsaWNrYWJsZV09XCJjbGljay5vYnNlcnZlcnMubGVuZ3RoXCJcbiAgW2NsYXNzLnBvLXdpZGdldF09XCIhcHJpbWFyeVwiXG4gIFtjbGFzcy5wby13aWRnZXQtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICBbY2xhc3MucG8td2lkZ2V0LXByaW1hcnldPVwicHJpbWFyeVwiXG4gIFtjbGFzcy5wby13aWRnZXQtbm8tc2hhZG93XT1cIm5vU2hhZG93XCJcbiAgW3N0eWxlLmJhY2tncm91bmQtaW1hZ2VdPVwiYmFja2dyb3VuZCA/ICd1cmwoJyArIGJhY2tncm91bmQgKyAnKScgOiB1bmRlZmluZWRcIlxuICAoY2xpY2spPVwib25DbGljaygkZXZlbnQpXCJcbj5cbiAgPGRpdiAqbmdJZj1cImhhc1RpdGxlSGVscE9yU2V0dGluZygpXCIgY2xhc3M9XCJwby13aWRnZXQtaGVhZGVyXCI+XG4gICAgPHNwYW4gKm5nSWY9XCJzaG93VGl0bGVBY3Rpb247IGVsc2Ugbm9UaXRsZUFjdGlvblwiIGNsYXNzPVwicG8td2lkZ2V0LXRpdGxlLWFjdGlvblwiIChjbGljayk9XCJydW5UaXRsZUFjdGlvbigkZXZlbnQpXCI+XG4gICAgICB7eyB0aXRsZSB9fVxuICAgIDwvc3Bhbj5cbiAgICA8bmctdGVtcGxhdGUgI25vVGl0bGVBY3Rpb24+e3sgdGl0bGUgfX08L25nLXRlbXBsYXRlPlxuXG4gICAgPGRpdiAqbmdJZj1cInNldHRpbmcub2JzZXJ2ZXJzWzBdIHx8IGhlbHBcIiBjbGFzcz1cInBvLXB1bGwtcmlnaHRcIj5cbiAgICAgIDxzcGFuXG4gICAgICAgIGlkPVwic2V0dGluZ0FjdGlvblwiXG4gICAgICAgICpuZ0lmPVwic2V0dGluZy5vYnNlcnZlcnNbMF1cIlxuICAgICAgICBjbGFzcz1cInBvLWNsaWNrYWJsZSBwby1pY29uIHBvLWljb24tc2V0dGluZ3NcIlxuICAgICAgICAoY2xpY2spPVwic2V0dGluZ091dHB1dCgkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxzcGFuIGlkPVwiaGVscExpbmtcIiAqbmdJZj1cImhlbHBcIiBjbGFzcz1cInBvLWNsaWNrYWJsZSBwby1pY29uIHBvLWljb24taGVscFwiIChjbGljayk9XCJvcGVuSGVscCgkZXZlbnQpXCI+IDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPHBvLWNvbnRhaW5lciBwLW5vLWJvcmRlciBbcC1oZWlnaHRdPVwiY29udGFpbmVySGVpZ2h0XCI+XG4gICAgPGRpdiBjbGFzcz1cInBvLXdpZGdldC1ib2R5XCI+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gIDwvcG8tY29udGFpbmVyPlxuXG4gIDxkaXYgKm5nSWY9XCJwcmltYXJ5TGFiZWxcIiBjbGFzcz1cInBvLXdpZGdldC1mb290ZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwicG8td2lkZ2V0LXhsXCIgKm5nSWY9XCIhc2Vjb25kYXJ5TGFiZWxcIj5cbiAgICAgIDxhIGNsYXNzPVwicG8td2lkZ2V0LWFjdGlvblwiIGlkPVwicHJpbWFyeUFjdFwiIChjbGljayk9XCJydW5QcmltYXJ5QWN0aW9uKCRldmVudClcIj57eyBwcmltYXJ5TGFiZWwgfX08L2E+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwicG8td2lkZ2V0LW1kXCIgKm5nSWY9XCJzZWNvbmRhcnlMYWJlbFwiPlxuICAgICAgPGEgY2xhc3M9XCJwby13aWRnZXQtYWN0aW9uXCIgaWQ9XCJwcmltYXJ5QWN0XCIgKGNsaWNrKT1cInJ1blByaW1hcnlBY3Rpb24oJGV2ZW50KVwiPnt7IHByaW1hcnlMYWJlbCB9fTwvYT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicG8td2lkZ2V0LW1kXCIgKm5nSWY9XCJzZWNvbmRhcnlMYWJlbFwiPlxuICAgICAgPGEgY2xhc3M9XCJwby13aWRnZXQtYWN0aW9uXCIgaWQ9XCJzZWNvbmRhcnlBY3RcIiAoY2xpY2spPVwicnVuU2Vjb25kYXJ5QWN0aW9uKCRldmVudClcIj57eyBzZWNvbmRhcnlMYWJlbCB9fTwvYT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
249
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8td2lkZ2V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby13aWRnZXQvcG8td2lkZ2V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby13aWRnZXQvcG8td2lkZ2V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQTRCLE1BQU0sZUFBZSxDQUFDO0FBRXBFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7SUNRL0QsK0JBQWtIO0lBQWpDLDBLQUFTLGVBQUEsNkJBQXNCLENBQUEsSUFBQztJQUMvRyxZQUNGO0lBQUEsaUJBQU87OztJQURMLGVBQ0Y7SUFERSw2Q0FDRjs7O0lBQzRCLFlBQVc7OztJQUFYLGtDQUFXOzs7O0lBR3JDLGdDQUtDO0lBREMsa0xBQVMsZUFBQSw2QkFBcUIsQ0FBQSxJQUFDO0lBRWpDLGlCQUFPOzs7SUFMTCxnRUFBMkI7Ozs7SUFNN0IsZ0NBQStHO0lBQTNCLGtMQUFTLGVBQUEsd0JBQWdCLENBQUEsSUFBQztJQUM5RyxpQkFBTzs7O0lBREQsMkRBQXNCOzs7SUFSOUIsK0JBQWdFO0lBQzlELGlGQU1PO0lBQ1AsaUZBQ087SUFDVCxpQkFBTTs7O0lBUEQsZUFBMEI7SUFBMUIsa0RBQTBCO0lBS0MsZUFBVTtJQUFWLGtDQUFVOzs7SUFkNUMsOEJBQThEO0lBQzVELDBFQUVPO0lBQ1AseUhBQXFEO0lBRXJELHdFQVVNO0lBQ1IsaUJBQU07Ozs7SUFoQkcsZUFBdUI7SUFBdkIsNkNBQXVCLGlCQUFBO0lBS3hCLGVBQWtDO0lBQWxDLGlFQUFrQzs7OztJQW9CeEMsK0JBQWtELFlBQUE7SUFDSyx3S0FBUyxlQUFBLGdDQUF3QixDQUFBLElBQUM7SUFB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QUE3QixrREFBNkI7UUFtQlQsZUFBNEI7UUFBNUIsOENBQTRCO1FBTWhELGVBQWtCO1FBQWxCLHVDQUFrQjs7dUZEQWIsaUJBQWlCO2NBSjdCLFNBQVM7MkJBQ0UsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFBvV2lkZ2V0QmFzZUNvbXBvbmVudCB9IGZyb20gJy4vcG8td2lkZ2V0LWJhc2UuY29tcG9uZW50JztcblxuLyoqXG4gKiBAZG9jc0V4dGVuZHMgUG9XaWRnZXRCYXNlQ29tcG9uZW50XG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8td2lkZ2V0LWJhc2ljXCIgdGl0bGU9XCJQTyBXaWRnZXQgQmFzaWNcIj5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXdpZGdldC1iYXNpYy9zYW1wbGUtcG8td2lkZ2V0LWJhc2ljLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXdpZGdldC1iYXNpYy9zYW1wbGUtcG8td2lkZ2V0LWJhc2ljLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLXdpZGdldC1sYWJzXCIgdGl0bGU9XCJQTyBXaWRnZXQgTGFic1wiPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8td2lkZ2V0LWxhYnMvc2FtcGxlLXBvLXdpZGdldC1sYWJzLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXdpZGdldC1sYWJzL3NhbXBsZS1wby13aWRnZXQtbGFicy5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby13aWRnZXQtZmluYW5jZS1kYXNoYm9hcmRcIiB0aXRsZT1cIlBPIFdpZGdldCAtIEZpbmFuY2UgZGFzaGJvYXJkXCI+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby13aWRnZXQtZmluYW5jZS1kYXNoYm9hcmQvc2FtcGxlLXBvLXdpZGdldC1maW5hbmNlLWRhc2hib2FyZC5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby13aWRnZXQtZmluYW5jZS1kYXNoYm9hcmQvc2FtcGxlLXBvLXdpZGdldC1maW5hbmNlLWRhc2hib2FyZC5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby13aWRnZXQtY2FyZFwiIHRpdGxlPVwiUE8gV2lkZ2V0IC0gQ2FyZFwiPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8td2lkZ2V0LWNhcmQvc2FtcGxlLXBvLXdpZGdldC1jYXJkLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXdpZGdldC1jYXJkL3NhbXBsZS1wby13aWRnZXQtY2FyZC5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncG8td2lkZ2V0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BvLXdpZGdldC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUG9XaWRnZXRDb21wb25lbnQgZXh0ZW5kcyBQb1dpZGdldEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBnZXQgc2hvd1RpdGxlQWN0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMudGl0bGVBY3Rpb24ub2JzZXJ2ZXJzWzBdO1xuICB9XG5cbiAgY29uc3RydWN0b3Iodmlld1JlZjogVmlld0NvbnRhaW5lclJlZikge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnNldEhlaWdodCh0aGlzLmhlaWdodCk7XG4gIH1cblxuICBoYXNUaXRsZUhlbHBPclNldHRpbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy50aXRsZSB8fCAhIXRoaXMuaGVscCB8fCAhIXRoaXMuc2V0dGluZy5vYnNlcnZlcnNbMF07XG4gIH1cblxuICBvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLmNsaWNrLmVtaXQoZXZlbnQpO1xuICAgIH1cbiAgfVxuXG4gIG9wZW5IZWxwKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIHdpbmRvdy5vcGVuKHRoaXMuaGVscCwgJ19ibGFuaycpO1xuICAgIH1cbiAgfVxuXG4gIHJ1blByaW1hcnlBY3Rpb24oZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgdGhpcy5wcmltYXJ5QWN0aW9uLmVtaXQoKTtcbiAgICB9XG4gIH1cblxuICBydW5TZWNvbmRhcnlBY3Rpb24oZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgdGhpcy5zZWNvbmRhcnlBY3Rpb24uZW1pdCgpO1xuICAgIH1cbiAgfVxuXG4gIHJ1blRpdGxlQWN0aW9uKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIHRoaXMudGl0bGVBY3Rpb24uZW1pdCgpO1xuICAgIH1cbiAgfVxuXG4gIHNldEhlaWdodChoZWlnaHQ6IG51bWJlcikge1xuICAgIGlmIChoZWlnaHQpIHtcbiAgICAgIGxldCBib2R5SGVpZ2h0ID0gaGVpZ2h0O1xuICAgICAgY29uc3QgaGFzU2V0dGluZ09ySGVscCA9IHRoaXMuc2V0dGluZy5vYnNlcnZlcnMubGVuZ3RoID4gMCB8fCB0aGlzLmhlbHA7XG4gICAgICBjb25zdCBmb290ZXJCb3JkZXIgPSAxO1xuICAgICAgY29uc3QgZm9vdGVySGVpZ2h0ID0gNDA7XG4gICAgICBjb25zdCBzZXR0aW5nSGVpZ2h0ID0gMzc7XG4gICAgICBjb25zdCBzaGFkb3dIZWlnaHQgPSAyO1xuICAgICAgY29uc3QgdGl0bGVIZWlnaHQgPSA1MDtcblxuICAgICAgaWYgKHRoaXMubm9TaGFkb3cpIHtcbiAgICAgICAgYm9keUhlaWdodCAtPSBzaGFkb3dIZWlnaHQ7XG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNTZXR0aW5nT3JIZWxwICYmICF0aGlzLnRpdGxlKSB7XG4gICAgICAgIGJvZHlIZWlnaHQgLT0gc2V0dGluZ0hlaWdodDtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMudGl0bGUpIHtcbiAgICAgICAgYm9keUhlaWdodCAtPSB0aXRsZUhlaWdodDtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMucHJpbWFyeUxhYmVsKSB7XG4gICAgICAgIGJvZHlIZWlnaHQgLT0gZm9vdGVySGVpZ2h0ICsgZm9vdGVyQm9yZGVyO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmNvbnRhaW5lckhlaWdodCA9IGAke2JvZHlIZWlnaHR9cHhgO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvbnRhaW5lckhlaWdodCA9IGBhdXRvYDtcbiAgICB9XG4gIH1cblxuICBzZXR0aW5nT3V0cHV0KGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIHRoaXMuc2V0dGluZy5lbWl0KCk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2XG4gIFtjbGFzcy5wby1jbGlja2FibGVdPVwiY2xpY2sub2JzZXJ2ZXJzLmxlbmd0aFwiXG4gIFtjbGFzcy5wby13aWRnZXRdPVwiIXByaW1hcnlcIlxuICBbY2xhc3MucG8td2lkZ2V0LWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgW2NsYXNzLnBvLXdpZGdldC1wcmltYXJ5XT1cInByaW1hcnlcIlxuICBbY2xhc3MucG8td2lkZ2V0LW5vLXNoYWRvd109XCJub1NoYWRvd1wiXG4gIFtzdHlsZS5iYWNrZ3JvdW5kLWltYWdlXT1cImJhY2tncm91bmQgPyAndXJsKCcgKyBiYWNrZ3JvdW5kICsgJyknIDogdW5kZWZpbmVkXCJcbiAgKGNsaWNrKT1cIm9uQ2xpY2soJGV2ZW50KVwiXG4+XG4gIDxkaXYgKm5nSWY9XCJoYXNUaXRsZUhlbHBPclNldHRpbmcoKVwiIGNsYXNzPVwicG8td2lkZ2V0LWhlYWRlclwiPlxuICAgIDxzcGFuICpuZ0lmPVwic2hvd1RpdGxlQWN0aW9uOyBlbHNlIG5vVGl0bGVBY3Rpb25cIiBjbGFzcz1cInBvLXdpZGdldC10aXRsZS1hY3Rpb25cIiAoY2xpY2spPVwicnVuVGl0bGVBY3Rpb24oJGV2ZW50KVwiPlxuICAgICAge3sgdGl0bGUgfX1cbiAgICA8L3NwYW4+XG4gICAgPG5nLXRlbXBsYXRlICNub1RpdGxlQWN0aW9uPnt7IHRpdGxlIH19PC9uZy10ZW1wbGF0ZT5cblxuICAgIDxkaXYgKm5nSWY9XCJzZXR0aW5nLm9ic2VydmVyc1swXSB8fCBoZWxwXCIgY2xhc3M9XCJwby1wdWxsLXJpZ2h0XCI+XG4gICAgICA8c3BhblxuICAgICAgICBpZD1cInNldHRpbmdBY3Rpb24te3sgaWQgfX1cIlxuICAgICAgICAqbmdJZj1cInNldHRpbmcub2JzZXJ2ZXJzWzBdXCJcbiAgICAgICAgY2xhc3M9XCJwby1jbGlja2FibGUgcG8taWNvbiBwby1pY29uLXNldHRpbmdzXCJcbiAgICAgICAgKGNsaWNrKT1cInNldHRpbmdPdXRwdXQoJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICA8L3NwYW4+XG4gICAgICA8c3BhbiBpZD1cImhlbHBMaW5rLXt7IGlkIH19XCIgKm5nSWY9XCJoZWxwXCIgY2xhc3M9XCJwby1jbGlja2FibGUgcG8taWNvbiBwby1pY29uLWhlbHBcIiAoY2xpY2spPVwib3BlbkhlbHAoJGV2ZW50KVwiPlxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8cG8tY29udGFpbmVyIHAtbm8tYm9yZGVyIFtwLWhlaWdodF09XCJjb250YWluZXJIZWlnaHRcIj5cbiAgICA8ZGl2IGNsYXNzPVwicG8td2lkZ2V0LWJvZHlcIj5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgPC9wby1jb250YWluZXI+XG5cbiAgPGRpdiAqbmdJZj1cInByaW1hcnlMYWJlbFwiIGNsYXNzPVwicG8td2lkZ2V0LWZvb3RlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJwby13aWRnZXQteGxcIiAqbmdJZj1cIiFzZWNvbmRhcnlMYWJlbFwiPlxuICAgICAgPGEgY2xhc3M9XCJwby13aWRnZXQtYWN0aW9uXCIgaWQ9XCJwcmltYXJ5QWN0LXt7IGlkIH19XCIgKGNsaWNrKT1cInJ1blByaW1hcnlBY3Rpb24oJGV2ZW50KVwiPnt7IHByaW1hcnlMYWJlbCB9fTwvYT5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJwby13aWRnZXQtbWRcIiAqbmdJZj1cInNlY29uZGFyeUxhYmVsXCI+XG4gICAgICA8YSBjbGFzcz1cInBvLXdpZGdldC1hY3Rpb25cIiBpZD1cInByaW1hcnlBY3Qte3sgaWQgfX1cIiAoY2xpY2spPVwicnVuUHJpbWFyeUFjdGlvbigkZXZlbnQpXCI+e3sgcHJpbWFyeUxhYmVsIH19PC9hPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJwby13aWRnZXQtbWRcIiAqbmdJZj1cInNlY29uZGFyeUxhYmVsXCI+XG4gICAgICA8YSBjbGFzcz1cInBvLXdpZGdldC1hY3Rpb25cIiBpZD1cInNlY29uZGFyeUFjdC17eyBpZCB9fVwiIChjbGljayk9XCJydW5TZWNvbmRhcnlBY3Rpb24oJGV2ZW50KVwiPnt7XG4gICAgICAgIHNlY29uZGFyeUxhYmVsXG4gICAgICB9fTwvYT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -119,20 +119,10 @@ export function convertIsoToDate(value, start, end) {
119
119
  return date;
120
120
  }
121
121
  else {
122
- const milliseconds = Date.parse(value);
123
- const timezone = new Date().getTimezoneOffset() * 60000;
124
- return new Date(milliseconds + timezone);
122
+ return new Date(year, month - 1, day);
125
123
  }
126
124
  }
127
125
  }
128
- export function convertIsoToDateNoTimezone(value) {
129
- if (value) {
130
- const day = parseInt(value.substring(8, 10), 10);
131
- const month = parseInt(value.substring(5, 7), 10);
132
- const year = parseInt(value.substring(0, 4), 10);
133
- return new Date(year, month - 1, day);
134
- }
135
- }
136
126
  export function convertDateToISODate(date) {
137
127
  if (date) {
138
128
  const getMonth = date.getMonth() + 1;
@@ -283,6 +273,17 @@ export function removeDuplicatedOptions(list) {
283
273
  }
284
274
  }
285
275
  }
276
+ export function removeDuplicatedOptionsWithFieldValue(list, newValue) {
277
+ for (let i = 0; i < list.length; i++) {
278
+ if (i === 0) {
279
+ continue;
280
+ }
281
+ if (list.findIndex(op => op[newValue] === list[i][newValue]) !== i) {
282
+ list.splice(i, 1);
283
+ i--;
284
+ }
285
+ }
286
+ }
286
287
  export function removeUndefinedAndNullOptions(list) {
287
288
  for (let i = 0; i < list.length; i++) {
288
289
  if (list[i].value === undefined || list[i].value === null) {
@@ -291,6 +292,14 @@ export function removeUndefinedAndNullOptions(list) {
291
292
  }
292
293
  }
293
294
  }
295
+ export function removeUndefinedAndNullOptionsWithFieldValue(list, newValue) {
296
+ for (let i = 0; i < list.length; i++) {
297
+ if (list[i][newValue] === undefined || list[i][newValue] === null) {
298
+ list.splice(i, 1);
299
+ i--;
300
+ }
301
+ }
302
+ }
294
303
  export function validValue(value) {
295
304
  return (value !== null && value !== undefined && value !== '') || value === false;
296
305
  }
@@ -516,4 +525,4 @@ export function getFocusableElements(parentElement) {
516
525
  const focusableElements = 'button:not([disabled]), [href], input, select, textarea, [tabindex]:not([tabindex="-1"]';
517
526
  return parentElement.querySelectorAll(focusableElements);
518
527
  }
519
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvdXRpbHMvdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBRTFGOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxlQUFlO0lBQzdCLE9BQU8sdUJBQXVCLEVBQUUsQ0FBQztBQUNuQyxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQU0sVUFBVSxXQUFXLENBQUMsS0FBYSxFQUFFLFFBQVEsR0FBRyxDQUFDO0lBQ3JELElBQUksQ0FBQyxLQUFLLEVBQUU7UUFDVixPQUFPLFNBQVMsQ0FBQztLQUNsQjtJQUVELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQztJQUN4QixNQUFNLEtBQUssR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDeEUsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUNsRSxRQUFRLEdBQUcsUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFFdkMsT0FBTyxHQUFHLFVBQVUsQ0FBQyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO0FBQ3BHLENBQUM7QUFFRDs7R0FFRztBQUNI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QUFFO1FBQ3JDLElBQUksV0FBVyxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksSUFBSSxXQUFXLENBQUMsR0FBRyxDQUFDLEtBQUssU0FBUyxFQUFFO1lBQy9ELFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDckM7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sV0FBVyxDQUFDO0FBQ3JCLENBQUM7QUFFRCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsS0FBVTtJQUMzQyxPQUFPLFFBQVEsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUNoRixDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsYUFBc0I7SUFDekQsTUFBTSxpQkFBaUIsR0FBRyx5RkFBeUYsQ0FBQztJQUNwSCxPQUFPLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBQzNELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBwb0xvY2FsZXMsIHBvTG9jYWxlRGVmYXVsdCB9IGZyb20gJy4uL3NlcnZpY2VzL3BvLWxhbmd1YWdlL3BvLWxhbmd1YWdlLmNvbnN0YW50JztcblxuLyoqXG4gKiBAZGVwcmVjYXRlZFxuICogVXRpbGl6ZSBvIG3DqXRvZG8gYGdldFNob3J0QnJvd3Nlckxhbmd1YWdlYC5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFJldG9ybmEgaWRpb21hIGRvIGJyb3dzZXIgb3UgbyBpZGlvbWEgcGFkcsOjby5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJyb3dzZXJMYW5ndWFnZSgpIHtcbiAgcmV0dXJuIGdldFNob3J0QnJvd3Nlckxhbmd1YWdlKCk7XG59XG5cbi8qKlxuICogQ29udmVydGUgZSBmb3JtYXRhIG9zIGJ5dGVzIGVtIGZvcm1hdG8gbWFpcyBsZWfDrXZlbCBwYXJhIG8gdXN1w6FyaW8uXG4gKlxuICogUG9yIGV4ZW1wbG86XG4gKiAtIDMxNDU3MjgwIGVtIDMwIE1CLlxuICogLSAyMTQ3NDgzNjQ4MCBlbSAyMCBHQi5cbiAqIC0gMTIuNTY2NjY2NiBlbSAxMi41NyBCeXRlcyAoZHVhcyBjYXNhcyBkZWNpbWFpcykuXG4gKlxuICogQHBhcmFtIGJ5dGVzIHtudW1iZXJ9IFZhbG9yIGVtIGJ5dGVzXG4gKiBAcGFyYW0gZGVjaW1hbHMge251bWJlcn0gUXVhbnRpZGFkZSBkZSBjYXNhcyBkZWNpbWFpcyBxdWUgdGVyw6EgYXDDs3MgYSBjb252ZXJzw6NvLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0Qnl0ZXMoYnl0ZXM6IG51bWJlciwgZGVjaW1hbHMgPSAyKTogc3RyaW5nIHtcbiAgaWYgKCFieXRlcykge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCBtdWx0aXBsaWVyID0gMTAyNDtcbiAgY29uc3Qgc2l6ZXMgPSBbJ0J5dGVzJywgJ0tCJywgJ01CJywgJ0dCJywgJ1RCJywgJ1BCJywgJ0VCJywgJ1pCJywgJ1lCJ107XG4gIGNvbnN0IHJlc3VsdCA9IE1hdGguZmxvb3IoTWF0aC5sb2coYnl0ZXMpIC8gTWF0aC5sb2cobXVsdGlwbGllcikpO1xuICBkZWNpbWFscyA9IGRlY2ltYWxzIDwgMCA/IDAgOiBkZWNpbWFscztcblxuICByZXR1cm4gYCR7cGFyc2VGbG9hdCgoYnl0ZXMgLyBNYXRoLnBvdyhtdWx0aXBsaWVyLCByZXN1bHQpKS50b0ZpeGVkKGRlY2ltYWxzKSl9ICR7c2l6ZXNbcmVzdWx0XX1gO1xufVxuXG4vKipcbiAqIFJldG9ybmEgbyBpZGlvbWEgYXR1YWwgZG8gbmF2ZWdhZG9yXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRCcm93c2VyTGFuZ3VhZ2UoKTogc3RyaW5nIHtcbiAgLy8gbmF2aWdhdG9yLnVzZXJMYW5ndWFnZSBpcyB0aGUgdmFsdWUgZm9yIElFMTBcbiAgY29uc3QgbGFuZ3VhZ2UgPSBuYXZpZ2F0b3IubGFuZ3VhZ2UgfHwgbmF2aWdhdG9yWyd1c2VyTGFuZ3VhZ2UnXTtcbiAgY29uc3Qgc2hvcnRMYW5ndWFnZSA9IGdldFNob3J0TGFuZ3VhZ2UobGFuZ3VhZ2UpO1xuXG4gIHJldHVybiBwb0xvY2FsZXMuaW5jbHVkZXMoc2hvcnRMYW5ndWFnZSkgPyBsYW5ndWFnZSA6IHBvTG9jYWxlRGVmYXVsdDtcbn1cblxuLyoqXG4gKiBSZXRvcm5hIG8gaWRpb21hIGRvIG5hdmVnYWRvciwgY29tIHNvbWVudGUgYXMgZHVhcyBwcmltZWlyYXMgbGV0cmFzLiBQb3IgZXhlbXBsbzogXCJwdFwiIG91IFwiZXNcIi5cbiAqXG4gKiBDYXNvIG8gdmFsb3IgcmV0b3JuYWRvIHBlbG8gbmF2ZWdhZG9yIG7Do28gZXN0aXZlciBkZW50cm8gZG9zIGlkaW9tYXMgc3Vwb3J0YWRvcyBwZWxvIFBPLFxuICogc2Vyw6EgcmV0b3JuYWRvIGEgbGluZ3VhZ2VtIHBhZHLDo28gKHBvTG9jYWxlRGVmYXVsdCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTaG9ydEJyb3dzZXJMYW5ndWFnZSgpOiBzdHJpbmcge1xuICByZXR1cm4gZ2V0U2hvcnRMYW5ndWFnZShnZXRCcm93c2VyTGFuZ3VhZ2UoKSk7XG59XG5cbi8qKlxuICogUmV0b3JuYSBvIGlkaW9tYSBjb20gc29tZW50ZSBhIGFicmV2aWHDp8OjbyBkbyBpZGlvbWEgKGR1YXMgcHJpbWVpcmFzIGxldHJhcykuXG4gKiBQb3IgZXhlbXBsbzogXCJwdFwiIG91IFwiZXNcIi5cbiAqXG4gKiBAcGFyYW0gbGFuZ3VhZ2Uge3N0cmluZ30gbGluZ3VhZ2VtLlxuICpcbiAqIEByZXR1cm5zIHNpZ2xhIGRvIGlkaW9tYSBwYWRyw6NvIHtzdHJpbmd9LlxuICpcbiAqIEBkZWZhdWx0IHB0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTaG9ydExhbmd1YWdlKGxhbmd1YWdlOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gKGxhbmd1YWdlIHx8IHBvTG9jYWxlRGVmYXVsdCkudG9Mb3dlckNhc2UoKS5zdWJzdHJpbmcoMCwgMik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0xhbmd1YWdlKHZhbHVlKSB7XG4gIGNvbnN0IGxhbmd1YWdlUmVnZXggPSBuZXcgUmVnRXhwKCdeW2Etel17Mn0oLVthLXpdezJ9KT8kJywgJ2knKTtcblxuICByZXR1cm4gbGFuZ3VhZ2VSZWdleC50ZXN0KHZhbHVlKTtcbn1cblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbmV4cG9ydCBmdW5jdGlvbiByZWxvYWRDdXJyZW50UGFnZSgpIHtcbiAgd2luZG93LmxvY2F0aW9uLmFzc2lnbihsb2NhdGlvbi5ocmVmKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRUb0Jvb2xlYW4odmFsOiBhbnkpOiBib29sZWFuIHtcbiAgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnKSB7XG4gICAgdmFsID0gdmFsLnRvTG93ZXJDYXNlKCkudHJpbSgpO1xuICAgIHJldHVybiB2YWwgPT09ICd0cnVlJyB8fCB2YWwgPT09ICdvbicgfHwgdmFsID09PSAnJztcbiAgfVxuXG4gIGlmICh0eXBlb2YgdmFsID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiB2YWwgPT09IDE7XG4gIH1cblxuICByZXR1cm4gISF2YWw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0VG9JbnQodmFsdWU6IGFueSwgdmFsdWVEZWZhdWx0PzogYW55KTogbnVtYmVyIHtcbiAgY29uc3QgdmFsaWROdW1iZXIgPSBwYXJzZUludCh2YWx1ZSwgMTApO1xuICBjb25zdCB2YWxpZERlZmF1bHRWYWx1ZSA9IHBhcnNlSW50KHZhbHVlRGVmYXVsdCwgMTApO1xuICBjb25zdCBkZWZhdWx0VmFsdWUgPSB2YWxpZERlZmF1bHRWYWx1ZSB8fCB2YWxpZERlZmF1bHRWYWx1ZSA9PT0gMCA/IHZhbGlkRGVmYXVsdFZhbHVlIDogdW5kZWZpbmVkO1xuXG4gIHJldHVybiB2YWxpZE51bWJlciB8fCB2YWxpZE51bWJlciA9PT0gMCA/IHZhbGlkTnVtYmVyIDogZGVmYXVsdFZhbHVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNUeXBlb2Yob2JqZWN0OiBhbnksIHR5cGU6IGFueSkge1xuICByZXR1cm4gdHlwZW9mIG9iamVjdCA9PT0gdHlwZTtcbn1cblxuLyoqXG4gKlxuICogQHBhcmFtIGZuIEZ1bsOnw6NvIHF1ZSBzZXLDoSBleGVjdXRhZGEgZGVudHJvIGRvIGNvbnRleHRvLiBQb2RlbmRvIHNlciBvIG5vbWUgZGEgZnVuw6fDo29cbiAqIG91IGEgcmVmZXLDqm5jaWEgZGEgbWVzbWEuXG4gKlxuICogQHBhcmFtIGNvbnRleHQgQ29udGV4dG8gZG8gcXVhbCBhIGZ1bsOnw6NvIHNlcsOhIGV4ZWN1dGFkYS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNhbGxGdW5jdGlvbihmbjogYW55LCBjb250ZXh0OiBhbnksIHBhcmFtPyk6IHZvaWQge1xuICBpZiAoaXNUeXBlb2YoZm4sICdmdW5jdGlvbicpKSB7XG4gICAgZm4uY2FsbChjb250ZXh0LCBwYXJhbSk7XG4gIH0gZWxzZSB7XG4gICAgY29udGV4dFtmbl0ocGFyYW0pO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0SXNvVG9EYXRlKHZhbHVlOiBzdHJpbmcsIHN0YXJ0OiBib29sZWFuLCBlbmQ6IGJvb2xlYW4pIHtcbiAgaWYgKHZhbHVlKSB7XG4gICAgY29uc3QgZGF5ID0gcGFyc2VJbnQodmFsdWUuc3Vic3RyaW5nKDgsIDEwKSwgMTApO1xuICAgIGNvbnN0IG1vbnRoID0gcGFyc2VJbnQodmFsdWUuc3Vic3RyaW5nKDUsIDcpLCAxMCk7XG4gICAgY29uc3QgeWVhciA9IHBhcnNlSW50KHZhbHVlLnN1YnN0cmluZygwLCA0KSwgMTApO1xuICAgIGlmIChzdGFydCkge1xuICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHllYXIsIG1vbnRoIC0gMSwgZGF5LCAwLCAwLCAwKTtcblxuICAgICAgc2V0WWVhckZyb20wVG8xMDAoZGF0ZSwgeWVhcik7XG5cbiAgICAgIHJldHVybiBkYXRlO1xuICAgIH0gZWxzZSBpZiAoZW5kKSB7XG4gICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoeWVhciwgbW9udGggLSAxLCBkYXksIDIzLCA1OSwgNTkpO1xuXG4gICAgICBzZXRZZWFyRnJvbTBUbzEwMChkYXRlLCB5ZWFyKTtcblxuICAgICAgcmV0dXJuIGRhdGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG1pbGxpc2Vjb25kcyA9IERhdGUucGFyc2UodmFsdWUpO1xuICAgICAgY29uc3QgdGltZXpvbmUgPSBuZXcgRGF0ZSgpLmdldFRpbWV6b25lT2Zmc2V0KCkgKiA2MDAwMDtcbiAgICAgIHJldHVybiBuZXcgRGF0ZShtaWxsaXNlY29uZHMgKyB0aW1lem9uZSk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0SXNvVG9EYXRlTm9UaW1lem9uZSh2YWx1ZTogc3RyaW5nKSB7XG4gIGlmICh2YWx1ZSkge1xuICAgIGNvbnN0IGRheSA9IHBhcnNlSW50KHZhbHVlLnN1YnN0cmluZyg4LCAxMCksIDEwKTtcbiAgICBjb25zdCBtb250aCA9IHBhcnNlSW50KHZhbHVlLnN1YnN0cmluZyg1LCA3KSwgMTApO1xuICAgIGNvbnN0IHllYXIgPSBwYXJzZUludCh2YWx1ZS5zdWJzdHJpbmcoMCwgNCksIDEwKTtcblxuICAgIHJldHVybiBuZXcgRGF0ZSh5ZWFyLCBtb250aCAtIDEsIGRheSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnREYXRlVG9JU09EYXRlKGRhdGU6IERhdGUpIHtcbiAgaWYgKGRhdGUpIHtcbiAgICBjb25zdCBnZXRNb250aCA9IGRhdGUuZ2V0TW9udGgoKSArIDE7XG4gICAgY29uc3QgZGF5ID0gZGF0ZS5nZXREYXRlKCkgPCAxMCA/ICcwJyArIGRhdGUuZ2V0RGF0ZSgpIDogZGF0ZS5nZXREYXRlKCk7XG4gICAgY29uc3QgbW9udGggPSBnZXRNb250aCA8IDEwID8gJzAnICsgZ2V0TW9udGggOiBnZXRNb250aDtcbiAgICBjb25zdCB5ZWFyID0gZm9ybWF0WWVhcihkYXRlLmdldEZ1bGxZZWFyKCkpO1xuXG4gICAgcmV0dXJuIHllYXIgKyAnLScgKyBtb250aCArICctJyArIGRheTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY29udmVydERhdGVUb0lTT0V4dGVuZGVkKGRhdGU6IERhdGUsIHRpbWU/OiBzdHJpbmcpIHtcbiAgaWYgKGRhdGUpIHtcbiAgICBjb25zdCBnZXRNb250aCA9IGRhdGUuZ2V0TW9udGgoKSArIDE7XG4gICAgY29uc3QgZGF5ID0gZGF0ZS5nZXREYXRlKCkgPCAxMCA/ICcwJyArIGRhdGUuZ2V0RGF0ZSgpIDogZGF0ZS5nZXREYXRlKCk7XG4gICAgY29uc3QgbW9udGggPSBnZXRNb250aCA8IDEwID8gJzAnICsgZ2V0TW9udGggOiBnZXRNb250aDtcbiAgICBjb25zdCB5ZWFyID0gZm9ybWF0WWVhcihkYXRlLmdldEZ1bGxZZWFyKCkpO1xuXG4gICAgY29uc3QgZGF0ZVN0cmluZyA9IGRhdGUudG9TdHJpbmcoKTtcblxuICAgIGlmICh0aW1lICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4geWVhciArICctJyArIG1vbnRoICsgJy0nICsgZGF5ICsgdGltZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgeWVhciArXG4gICAgICAgICctJyArXG4gICAgICAgIG1vbnRoICtcbiAgICAgICAgJy0nICtcbiAgICAgICAgZGF5ICtcbiAgICAgICAgJ1QnICtcbiAgICAgICAgZGF0ZVN0cmluZy5zdWJzdHJpbmcoMTYsIDI0KSArXG4gICAgICAgIGRhdGVTdHJpbmcuc3Vic3RyaW5nKDI4LCAzMSkgK1xuICAgICAgICAnOicgK1xuICAgICAgICBkYXRlU3RyaW5nLnN1YnN0cmluZygzMSwgMzMpXG4gICAgICApO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG4vKipcbiAqIFRyYW5zZm9ybWEgbyBhbm8gZW0gdW1hIHN0cmluZyBubyBmb3JtYXRvIHl5eXkgZSBjYXNvIG8gYW5vIHNlamEgbWVub3IgcXVlIDEwMDAgcHJlZW5jaGUgY29tIHplcm9zIGEgZXNxdWVyZGEuXG4gKlxuICogQHBhcmFtIHllYXIgQW5vXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRZZWFyKHllYXI6IG51bWJlcikge1xuICBpZiAoeWVhciA+PSAxMDAwKSB7XG4gICAgcmV0dXJuIHllYXIudG9TdHJpbmcoKTtcbiAgfVxuXG4gIGlmICh5ZWFyID4gOTkgJiYgeWVhciA8IDEwMDApIHtcbiAgICByZXR1cm4gYDAke3llYXJ9YDtcbiAgfVxuXG4gIGlmICh5ZWFyID4gOSAmJiB5ZWFyIDwgMTAwKSB7XG4gICAgcmV0dXJuIGAwMCR7eWVhcn1gO1xuICB9XG5cbiAgaWYgKHllYXIgPj0gMCAmJiB5ZWFyIDwgMTApIHtcbiAgICByZXR1cm4gYDAwMCR7eWVhcn1gO1xuICB9XG59XG4vLyBWZXJpZmljYSBzZSBvIG5hdmVnYWRvciBlbSBxdWUgZXN0w6Egc2VuZG8gdXNhZG8gw6kgSW50ZXJuZXQgRXhwbG9yZXIgb3UgRWRnZVxuZXhwb3J0IGZ1bmN0aW9uIGlzSUVPckVkZ2UoKSB7XG4gIGNvbnN0IHVzZXJBZ2VudCA9IHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50O1xuXG4gIHJldHVybiAvbXNpZVxcc3x0cmlkZW50XFwvfGVkZ2VcXC8vaS50ZXN0KHVzZXJBZ2VudCk7XG59XG5cbi8vIFZlcmlmaWNhIHNlIG8gbmF2ZWdhZG9yIGVtIHF1ZSBlc3TDoSBzZW5kbyB1c2FkbyDDqSBJbnRlcm5ldCBFeHBsb3JlclxuZXhwb3J0IGZ1bmN0aW9uIGlzSUUoKSB7XG4gIGNvbnN0IHVzZXJBZ2VudCA9IHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50O1xuXG4gIHJldHVybiAvbXNpZVxcc3x0cmlkZW50L2kudGVzdCh1c2VyQWdlbnQpO1xufVxuXG4vLyBWZXJpZmljYSBzZSBvIG5hdmVnYWRvciBlbSBxdWUgZXN0w6Egc2VuZG8gdXNhZG8gw6kgRmlyZWZveFxuZXhwb3J0IGZ1bmN0aW9uIGlzRmlyZWZveCgpIHtcbiAgY29uc3QgdXNlckFnZW50ID0gd2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQ7XG5cbiAgcmV0dXJuIHVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLmluZGV4T2YoJ2ZpcmVmb3gnKSA+IC0xO1xufVxuXG4vLyBWZXJpZmljYSBxdWFsIG8gZGlzcG9zaXRpdm8gcXVlIGVzdMOhIHNlbmRvIHVzYWRvXG5leHBvcnQgZnVuY3Rpb24gaXNNb2JpbGUoKSB7XG4gIGNvbnN0IHVzZXJBZ2VudCA9IHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50O1xuXG4gIHJldHVybiB1c2VyQWdlbnQubWF0Y2goL0FuZHJvaWR8d2ViT1N8aVBob25lfGlQYWR8aVBvZHxCbGFja0JlcnJ5fFdpbmRvd3MgUGhvbmUvaSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0VxdWFscyh2YWx1ZSwgY29tcGFyZWRWYWx1ZSkge1xuICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodmFsdWUpID09PSBKU09OLnN0cmluZ2lmeShjb21wYXJlZFZhbHVlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzS2V5Q29kZUVudGVyKGV2ZW50OiBhbnkpOiBib29sZWFuIHtcbiAgcmV0dXJuIGV2ZW50LmtleUNvZGUgPT09IDEzIHx8IGV2ZW50LndoaWNoID09PSAxMztcbn1cblxuLyoqXG4gKiBDYXNvIG8gYW5vIG9yaWdpbmFsIGRhIGRhdGEgc2VqYSBlbnRyZSAwIGUgMTAwIGF0cmlidWkgZXNzZSB2YWxvciBhbyBhbm8sIHBvaXMgbyBgbmV3IERhdGVgIGRvIGphdmFzY3JpcHQgdHJhbnNmb3JtYSBvIGFubyBwYXJhIDE5MFguXG4gKlxuICogQHBhcmFtIGRhdGUgRGF0YVxuICogQHBhcmFtIHllYXIgQW5vIG9yaWdpbmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXRZZWFyRnJvbTBUbzEwMChkYXRlOiBEYXRlLCB5ZWFyOiBudW1iZXIpIHtcbiAgaWYgKHllYXIgPj0gMCAmJiB5ZWFyIDwgMTAwKSB7XG4gICAgZGF0ZS5zZXRGdWxsWWVhcih5ZWFyKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc29ydE9wdGlvbnNCeVByb3BlcnR5KG9wdGlvbnM6IEFycmF5PGFueT4sIHByb3BlcnR5OiBzdHJpbmcpIHtcbiAgb3B0aW9ucy5zb3J0KChvcHRpb25BLCBvcHRpb25CKSA9PiB7XG4gICAgb3B0aW9uQSA9IG9wdGlvbkFbcHJvcGVydHldLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKTtcbiAgICBvcHRpb25CID0gb3B0aW9uQltwcm9wZXJ0eV0udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgaWYgKG9wdGlvbkEgPCBvcHRpb25CKSB7XG4gICAgICByZXR1cm4gLTE7XG4gICAgfVxuICAgIGlmIChvcHRpb25BID4gb3B0aW9uQikge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfVxuICAgIHJldHVybiAwO1xuICB9KTtcbn1cblxuLyoqXG4gKiBPcmRlbmEgbyBjYW1wb3MgYmFzZWFkbyBubyB2YWxvciBkYSBwcm9wcmllZGFkZSBgb3JkZXJgLlxuICpcbiAqIFPDsyBzZXLDo28gYWNlaXRvcyB2YWxvcmVzIGNvbSBuw7ptZXJvcyBpbnRlaXJvcyBtYWlvcmVzIGRvIHF1ZSB6ZXJvIHBhcmEgYSBvcmRlbmHDp8Ojby5cbiAqXG4gKiBDYW1wb3Mgc2VtIGBvcmRlcmAgb3UgY29tIHZhbG9yZXMgbmVnYXRpdm9zLCB6ZXJhZG9zIG91IGludsOhbGlkb3NcbiAqIHJlY2ViZXLDo28gbyB2YWxvciBkZWZhdWx0IGUgc2VndWlyw6NvIG8gcG9zaWNpb25hbWVudG8gZGVudHJvIGRvXG4gKiBhcnJheS5cbiAqXG4gKiBAcGFyYW0gZmllbGRzIGNhbXBvIHF1ZSBzZSBkZXNlamEgb3JkZW5hci5cbiAqIEBwYXJhbSBkZWZhdWx0T3JkZXJpbmcgdmFsb3IgcXVlIHNlcsOhIHV0aWxpemFkbyBwYXJhIG1hbnRlciBuYSBwb3Npw6fDo28gZG8gYXJyYXkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzb3J0RmllbGRzKGZpZWxkcyA9IFtdLCBkZWZhdWx0T3JkZXJpbmcgPSAtMSkge1xuICBjb25zdCByZXN1bHRDbGFzc2lmaWNhdGlvbiA9IHsgZmllbGRBQ29tZXNGaXJzdDogLTEsIGZpZWxkQUNvbWVzQWZ0ZXI6IDEsIGtlZXBQb3NpdGlvbnM6IDAgfTtcblxuICBjb25zdCBpc09yZGVyVmFsaWQgPSAob3JkZXI6IG51bWJlcikgPT4gaXNUeXBlb2Yob3JkZXIsICdudW1iZXInKSAmJiBvcmRlciA+IDA7XG4gIGNvbnN0IGFwcGx5RGVmYXVsdE9yZGVyaW5nID0gKG9yZGVyOiBudW1iZXIpID0+IChpc09yZGVyVmFsaWQob3JkZXIpID8gb3JkZXIgOiBkZWZhdWx0T3JkZXJpbmcpO1xuXG4gIHJldHVybiBmaWVsZHMuc29ydCgoZmllbGRBLCBmaWVsZEIpID0+IHtcbiAgICBjb25zdCBvcmRlckEgPSBhcHBseURlZmF1bHRPcmRlcmluZyhmaWVsZEEub3JkZXIpO1xuICAgIGNvbnN0IG9yZGVyQiA9IGFwcGx5RGVmYXVsdE9yZGVyaW5nKGZpZWxkQi5vcmRlcik7XG5cbiAgICBpZiAob3JkZXJBID09PSBvcmRlckIpIHtcbiAgICAgIHJldHVybiByZXN1bHRDbGFzc2lmaWNhdGlvbi5rZWVwUG9zaXRpb25zO1xuICAgIH1cblxuICAgIGlmIChvcmRlckEgPT09IGRlZmF1bHRPcmRlcmluZykge1xuICAgICAgcmV0dXJuIHJlc3VsdENsYXNzaWZpY2F0aW9uLmZpZWxkQUNvbWVzQWZ0ZXI7XG4gICAgfVxuXG4gICAgaWYgKG9yZGVyQiA9PT0gZGVmYXVsdE9yZGVyaW5nKSB7XG4gICAgICByZXR1cm4gcmVzdWx0Q2xhc3NpZmljYXRpb24uZmllbGRBQ29tZXNGaXJzdDtcbiAgICB9XG5cbiAgICByZXR1cm4gb3JkZXJBIC0gb3JkZXJCO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZUR1cGxpY2F0ZWRPcHRpb25zKGxpc3Q6IEFycmF5PGFueT4pIHtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGkgPT09IDApIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGlmIChsaXN0LmZpbmRJbmRleChvcCA9PiBvcC52YWx1ZSA9PT0gbGlzdFtpXS52YWx1ZSkgIT09IGkpIHtcbiAgICAgIGxpc3Quc3BsaWNlKGksIDEpO1xuICAgICAgaS0tO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlVW5kZWZpbmVkQW5kTnVsbE9wdGlvbnMobGlzdDogQXJyYXk8YW55Pikge1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAobGlzdFtpXS52YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IGxpc3RbaV0udmFsdWUgPT09IG51bGwpIHtcbiAgICAgIGxpc3Quc3BsaWNlKGksIDEpO1xuICAgICAgaS0tO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRWYWx1ZSh2YWx1ZTogYW55KSB7XG4gIHJldHVybiAodmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZSAhPT0gJycpIHx8IHZhbHVlID09PSBmYWxzZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRXh0ZXJuYWxMaW5rKHVybCk6IGJvb2xlYW4ge1xuICByZXR1cm4gdXJsID8gdXJsLnN0YXJ0c1dpdGgoJ2h0dHAnKSA6IGZhbHNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gb3BlbkV4dGVybmFsTGluayh1cmwpOiB2b2lkIHtcbiAgd2luZG93Lm9wZW4odXJsLCAnX2JsYW5rJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGb3JtYXR0ZWRMaW5rKGxpbms6IHN0cmluZyk6IHN0cmluZyB7XG4gIGxldCBmb3JtYXR0ZWRMaW5rID0gJyc7XG4gIC8vIFJldGlyYSB0b2RvcyBvcyBwb250b3Mgbm8gY29tZcOnbyBkYSBVUkwuXG4gIGlmIChsaW5rKSB7XG4gICAgZm9ybWF0dGVkTGluayA9IGxpbmsucmVwbGFjZSgvXihcXC4pKy9nLCAnJyk7XG4gIH1cbiAgLy8gVmVyaWZpY2Egc2UgZm9pIHV0aWxpemFkbyB1bWEgcm90YSBxdWUgbsOjbyBjb21lY2UgY29tIGJhcnJhLlxuICBpZiAoIWZvcm1hdHRlZExpbmsuc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgZm9ybWF0dGVkTGluayA9ICcvJy5jb25jYXQoZm9ybWF0dGVkTGluayk7XG4gIH1cbiAgcmV0dXJuIGZvcm1hdHRlZExpbms7XG59XG5cbi8qKlxuICogTcOpdG9kbyByZXNwb25zw6F2ZWwgcG9yIG9yZGVuYXIgZG9pcyB2YWxvcmVzLlxuICpcbiAqIEBwYXJhbSBsZWZ0U2lkZSBQcmltZWlybyB2YWxvciBhIHNlciBjb21wYXJhZG8uXG4gKiBAcGFyYW0gcmlnaHRTaWRlIFNlZ3VuZG8gdmFsb3IgYSBzZXIgY29tcGFyYWRvLlxuICogQHBhcmFtIGFzY2VuZGluZyBEZXRlcm1pbmEgc2Ugc2Vyw6EgZW0gb3JkZW0gYXNjZW5kZW50ZSBvdSBkZXNjZW5kZW50ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNvcnRWYWx1ZXMobGVmdFNpZGU6IHN0cmluZyB8IERhdGUsIHJpZ2h0U2lkZTogc3RyaW5nIHwgRGF0ZSwgYXNjZW5kaW5nOiBib29sZWFuID0gdHJ1ZSk6IG51bWJlciB7XG4gIGNvbnN0IGxlZnQgPSBpc1R5cGVvZihsZWZ0U2lkZSwgJ3N0cmluZycpID8gKGxlZnRTaWRlIGFzIHN0cmluZykudG9Mb3dlckNhc2UoKSA6IGxlZnRTaWRlO1xuICBjb25zdCByaWdodCA9IGlzVHlwZW9mKHJpZ2h0U2lkZSwgJ3N0cmluZycpID8gKHJpZ2h0U2lkZSBhcyBzdHJpbmcpLnRvTG93ZXJDYXNlKCkgOiByaWdodFNpZGU7XG5cbiAgY29uc3QgbGVmdElzSW52YWxpZCA9IGxlZnQgPT09IG51bGwgfHwgbGVmdCA9PT0gdW5kZWZpbmVkIHx8IE51bWJlci5pc05hTihsZWZ0KTtcbiAgY29uc3QgcmlnaHRJc0ludmFsaWQgPSByaWdodCA9PT0gbnVsbCB8fCByaWdodCA9PT0gdW5kZWZpbmVkIHx8IE51bWJlci5pc05hTihyaWdodCk7XG5cbiAgaWYgKGFzY2VuZGluZykge1xuICAgIGlmIChsZWZ0IDwgcmlnaHQgfHwgbGVmdElzSW52YWxpZCkge1xuICAgICAgcmV0dXJuIC0xO1xuICAgIH0gZWxzZSBpZiAobGVmdCA+IHJpZ2h0IHx8IHJpZ2h0SXNJbnZhbGlkKSB7XG4gICAgICByZXR1cm4gMTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoYXNjZW5kaW5nID09PSBmYWxzZSkge1xuICAgIGlmIChsZWZ0IDwgcmlnaHQgfHwgbGVmdElzSW52YWxpZCkge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfSBlbHNlIGlmIChsZWZ0ID4gcmlnaHQgfHwgcmlnaHRJc0ludmFsaWQpIHtcbiAgICAgIHJldHVybiAtMTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIDA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZURhdGVSYW5nZShkYXRlOiBEYXRlLCBkYXRlU3RhcnQ6IERhdGUsIGRhdGVFbmQ6IERhdGUpIHtcbiAgaWYgKGRhdGVTdGFydCAmJiBkYXRlRW5kKSB7XG4gICAgcmV0dXJuIGRhdGUgPj0gZGF0ZVN0YXJ0ICYmIGRhdGUgPD0gZGF0ZUVuZDtcbiAgfSBlbHNlIGlmIChkYXRlU3RhcnQgJiYgIWRhdGVFbmQpIHtcbiAgICByZXR1cm4gZGF0ZSA+PSBkYXRlU3RhcnQ7XG4gIH0gZWxzZSBpZiAoIWRhdGVTdGFydCAmJiBkYXRlRW5kKSB7XG4gICAgcmV0dXJuIGRhdGUgPD0gZGF0ZUVuZDtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdXVpZCgpIHtcbiAgZnVuY3Rpb24gaGV4NCgpIHtcbiAgICByZXR1cm4gTWF0aC5mbG9vcigoMSArIE1hdGgucmFuZG9tKCkpICogMHgxMDAwMClcbiAgICAgIC50b1N0cmluZygxNilcbiAgICAgIC5zdWJzdHJpbmcoMSk7XG4gIH1cblxuICByZXR1cm4gaGV4NCgpICsgaGV4NCgpICsgJy0nICsgaGV4NCgpICsgJy0nICsgaGV4NCgpICsgJy0nICsgaGV4NCgpICsgJy0nICsgaGV4NCgpICsgaGV4NCgpICsgaGV4NCgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKHRleHQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBgJHt0ZXh0LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpfSR7dGV4dC5zbGljZSgxKX1gO1xufVxuXG4vKipcbiAqIE1hcGVpYSB1bSBub3ZvIGFycmF5IGFwZW5hcyBjb20gYXMgcHJvcHJpZWRhZGVzIGRlZmluaWRhcyBwZWxvIGRlc2Vudm9sdmVkb3IgYmFzZWFkbyBlbSB1bSBhcnJheSBkZVxuICogb3JpZ2VtLlxuICpcbiAqIEV4ZW1wbG86XG4gKlxuICogYGBgXG4gKiBjb25zdCBwZW9wbGUgPSBbXG4gKiAgeyBpZDogMSwgbmFtZTogJ0Z1bGFubycsIGJpcnRoZGF0ZTogJzE5ODAtMTEtMDEnLCBnZW5yZTogJ01hbGUnLCBjaXR5OiAnU8OjbyBQYXVsbycsIGRlcGVuZGVudHM6IDIgfSxcbiAqICB7IGlkOiAyLCBuYW1lOiAnQmVsdHJhbm8nLCBiaXJ0aGRhdGU6ICcxOTk3LTAxLTIxJywgZ2VucmU6ICdGZW1hbGUnLCBjaXR5OiAnSm9pbnZpbGxlJywgZGVwZW5kZW50czogMCB9LFxuICogIHsgaWQ6IDMsIG5hbWU6ICdTaWNsYW5vJywgYmlydGhkYXRlOiAnMTk5NS0wNy0xNScsIGdlbnJlOiAnTWFsZScsIGNpdHk6ICdKb2ludmlsbGUnLCBkZXBlbmRlbnRzOiAwIH1cbiAqIF07XG4gKlxuICogY29uc3QgcHJvcGVydGllcyA9IFsnaWQnLCAnbmFtZSddO1xuICpcbiAqIGNvbnN0IGlkQW5kTmFtZSA9IG1hcEFycmF5QnlQcm9wZXJ0aWVzKHBlb3BsZSwgcHJvcGVydGllcyk7XG4gKlxuICogY29uc29sZS5sb2coaWRBbmROYW1lKTsgLy8gW3sgaWQ6IDEsIG5hbWU6ICdGdWxhbm8nIH0sIHsgaWQ6IDIsIG5hbWU6ICdCZWx0cmFubycgfSwgeyBpZDogMywgbmFtZTogJ1NpY2xhbm8nIH1dXG4gKiBgYGBcbiAqXG4gKiBVbSBvdXRybyB1c28gcGFyYSBvIG3DqXRvZG8gw6kgXCJwYXJlYXJcIiB0b2RvcyBvcyBvYmpldG9zIGRvIGFycmF5IGNvbSBhcyBtZXNtYXMgcHJvcHJpZWRhZGVzLlxuICpcbiAqIGBgYFxuICogY29uc3QgY3VzdG9tZXJzID0gW1xuICogIHsgaWQ6IDEsIG5hbWU6ICdGdWxhbm8nLCBjaXR5OiAnU8OjbyBQYXVsbycsIGRlcGVuZGVudHM6IDIgfSwgLy8gc2VtIGdlbnJlXG4gKiAgeyBpZDogMiwgbmFtZTogJ0JlbHRyYW5vJywgZ2VucmU6ICdGZW1hbGUnLCBjaXR5OiAnSm9pbnZpbGxlJyB9LCAvLyBzZW0gZGVwZW5kZW50c1xuICogIHsgaWQ6IDMsIG5hbWU6ICdTaWNsYW5vJywgZ2VucmU6ICdNYWxlJywgY2l0eTogJ0pvaW52aWxsZScsIGRlcGVuZGVudHM6IDAgfVxuICogXTtcbiAqIGNvbnN0IHByb3BlcnRpZXMgPSBbJ2lkJywgJ25hbWUnLCAnY2l0eScsICdnZW5yZScsICdkZXBlbmRlbnRzJ107XG4gKlxuICogY29uc3QgcGF0dGVybiA9IG1hcEFycmF5QnlQcm9wZXJ0aWVzKGN1c3RvbWVycywgcHJvcGVydGllcyk7XG4gKiBjb25zb2xlLmxvZyhwYXR0ZXJuKTtcbiAqXG4gKiAvLyBbXG4gKiAvLyAgIHsgaWQ6IDEsIG5hbWU6ICdGdWxhbm8nLCBjaXR5OiAnU8OjbyBQYXVsbycsIGdlbnJlOiB1bmRlZmluZWQsIGRlcGVuZGVudHM6IDIgfSxcbiAqIC8vICAgeyBpZDogMiwgbmFtZTogJ0JlbHRyYW5vJywgY2l0eTogJ0pvaW52aWxsZScsIGdlbnJlOiAnRmVtYWxlJywgZGVwZW5kZW50czogdW5kZWZpbmVkIH0sXG4gKiAvLyAgIHsgaWQ6IDMsIG5hbWU6ICdTaWNsYW5vJywgY2l0eTogJ0pvaW52aWxsZScsIGdlbnJlOiAnTWFsZScsIGRlcGVuZGVudHM6IDAgfVxuICogLy8gXVxuICogYGBgXG4gKlxuICogQHBhcmFtIGl0ZW1zIHtBcnJheTxhbnk+fSBBcnJheSBkZSBpdGVtcyBvcmlnaW5hbC5cbiAqIEBwYXJhbSBwcm9wZXJ0aWVzIHtBcnJheTxzdHJpbmc+fSBBcnJheSBkZSBzdHJpbmcgY29tIGEgbGlzdGEgZGUgcHJvcHJpZWRhZGVzIHF1ZSBkZXZlbSBzZXIgcmV0b3JuYWRhcy5cbiAqXG4gKiBAcmV0dXJucyBBcnJheTxhbnk+XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYXBBcnJheUJ5UHJvcGVydGllcyhpdGVtczogQXJyYXk8YW55PiA9IFtdLCBwcm9wZXJ0aWVzOiBBcnJheTxzdHJpbmc+ID0gW10pOiBBcnJheTxhbnk+IHtcbiAgcmV0dXJuIGl0ZW1zLm1hcChpdGVtID0+IG1hcE9iamVjdEJ5UHJvcGVydGllcyhpdGVtLCBwcm9wZXJ0aWVzKSk7XG59XG5cbi8qKlxuICogTWFwZWlhIHVtIG5vdm8gb2JqZXRvIGFwZW5hcyBjb20gYXMgcHJvcHJpZWRhZGVzIGRlZmluaWRhcyBwZWxvIGRlc2Vudm9sdmVkb3IuXG4gKlxuICogRXhlbXBsbzpcbiAqXG4gKiBgYGBcbiAqIGNvbnN0IHBlcnNvbiA9IHsgaWQ6IDEsIG5hbWU6ICdGdWxhbm8nLCBiaXJ0aGRhdGU6ICcxOTgwLTExLTAxJywgZ2VucmU6ICdNYWxlJywgY2l0eTogJ1PDo28gUGF1bG8nLCBkZXBlbmRlbnRzOiAyIH07XG4gKlxuICogY29uc3QgcHJvcGVydGllcyA9IFsnaWQnLCAnbmFtZSddO1xuICpcbiAqIGNvbnN0IGlkQW5kTmFtZSA9IG1hcE9iamVjdEJ5UHJvcGVydGllcyhwZXJzb24sIHByb3BlcnRpZXMpO1xuICpcbiAqIGNvbnNvbGUubG9nKGlkQW5kTmFtZSk7IC8vIHsgaWQ6IDEsIG5hbWU6ICdGdWxhbm8nIH1cbiAqIGBgYFxuICpcbiAqIEBwYXJhbSBvYmplY3Qge0FycmF5PGFueT59IEFycmF5IGRlIGl0ZW1zIG9yaWdpbmFsLlxuICogQHBhcmFtIHByb3BlcnRpZXMge0FycmF5PHN0cmluZz59IEFycmF5IGRlIHN0cmluZyBjb20gYSBsaXN0YSBkZSBwcm9wcmllZGFkZXMgcXVlIGRldmVtIHNlciByZXRvcm5hZGFzLlxuICpcbiAqIEByZXR1cm5zIEFycmF5PGFueT5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1hcE9iamVjdEJ5UHJvcGVydGllcyhvYmplY3Q6IGFueSA9IHt9LCBwcm9wZXJ0aWVzOiBBcnJheTxzdHJpbmc+ID0gW10pIHtcbiAgY29uc3QgZ2V0U2VsZWN0ZWRQcm9wZXJ0aWVzID0gKHNlbGVjdGVkUHJvcGVydGllcywgcHJvcGVydHkpID0+ICh7XG4gICAgLi4uc2VsZWN0ZWRQcm9wZXJ0aWVzLFxuICAgIFtwcm9wZXJ0eV06IG9iamVjdFtwcm9wZXJ0eV1cbiAgfSk7XG5cbiAgcmV0dXJuIHByb3BlcnRpZXMucmVkdWNlKGdldFNlbGVjdGVkUHJvcGVydGllcywge30pO1xufVxuXG4vKipcbiAqIFJldG9ybmEgb3MgdmFsb3JlcyBkZSB1bSBvYmpldG8gZGVudHJvIGRlIHVtIGFycmF5LlxuICpcbiAqID4gU2ltdWxhIG8gT2JqZWN0LnZhbHVlcyhvYmopLCBvIG1lc21vIGRldmUgc2VyIHJlbW92aWRvIGFzc2ltIHF1ZSBhIHZlcnPDo28gdHlwZXNjcml0IGZvciBhdHVhbGl6YWRhLlxuICpcbiAqIEBwYXJhbSBvYmplY3QgT2JqZXRvIGRlIG9uZGUgc2Vyw6EgcGVnbyBvcyB2YWxvcmVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsdWVzRnJvbU9iamVjdChvYmplY3Q6IGFueSA9IHt9KTogQXJyYXk8YW55PiB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhvYmplY3QpLm1hcChwcm9wZXJ0eSA9PiBvYmplY3RbcHJvcGVydHldKTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0ZSB1bSBhcnF1aXZvIGVtIGJhc2U2NC5cbiAqXG4gKiBAcGFyYW0gZmlsZSBhcnF1aXZvIHF1ZSBzZXLDoSBjb252ZXJ0aWRvLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29udmVydEltYWdlVG9CYXNlNjQoZmlsZTogRmlsZSk6IFByb21pc2U8YW55PiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcblxuICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xuICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiByZXNvbHZlKHJlYWRlci5yZXN1bHQpO1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgcmVhZGVyLm9uZXJyb3IgPSBlcnJvciA9PiByZWplY3QoZXJyb3IpO1xuICB9KTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0ZSB1bSBuw7ptZXJvIGVtIGRlY2ltYWwgYmFzZWFkbyBuYSBxdWFudGlkYWRlIGRlIGNhc2FzIGRlY2ltYWlzLlxuICpcbiAqIENhc28gbyB2YWxvciBzZWphIGludsOhbGlkbywgc2Vyw6EgcmV0b3JuYWRvIG8gdmFsb3IgYHVuZGVmaW5lZGAuXG4gKiBWYWxvcmVzIGludsOhbGlkb3Mgc8OjbzogYGZhbHNlYCwgYE5hTmAsIGBzdHJpbmdzYCBxdWUgbsOjbyBudW3DqXJpY2FzLCBgdW5kZWZpbmVkYCBlIGBudWxsYC5cbiAqXG4gKiBAcGFyYW0gbnVtYmVyIHZhbG9yIHF1ZSBzZXLDoSBjb252ZXJ0aWRvXG4gKiBAcGFyYW0gZGVjaW1hbHNQbGFjZSBxdWFudGlkYWRlIGRlIGNhc2FzIGRlY2ltYWlzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0TnVtYmVyVG9EZWNpbWFsKG51bWJlcjogYW55LCBkZWNpbWFsc1BsYWNlOiBudW1iZXIpOiBudW1iZXIge1xuICBjb25zdCBpc1ZhbGlkVmFsdWUgPSAobnVtYmVyIHx8IG51bWJlciA9PT0gMCkgJiYgIWlzTmFOKG51bWJlcik7XG5cbiAgY29uc3QgZmxvYXRWYWx1ZSA9IGlzVmFsaWRWYWx1ZSA/IHBhcnNlRmxvYXQobnVtYmVyKSA6IHVuZGVmaW5lZDtcblxuICB0cnkge1xuICAgIHJldHVybiBwYXJzZUZsb2F0KGZsb2F0VmFsdWUudG9GaXhlZChkZWNpbWFsc1BsYWNlKSk7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBmbG9hdFZhbHVlO1xuICB9XG59XG5cbi8qKlxuICogUmV0b3JuYSB1bWEgY29waWEgZG8gb2JqZXRvIHN1am8sIHNlbSBhcyBwcm9wcmllZGFkZXMgbnVsYXMgb3UgaW5kZWZpbmlkYXMuXG4gKiBSZXRvcm5hIG8gb2JqZXRvIHNlbSBhcyBwcm9wcmllZGFkZXMgcXVlIGNvbnTDqW0gdmFsb3JlcyBudWxvcyBvdSBpbmRlZmluaWRvcy5cbiAqXG4gKiBAcGFyYW0gZGlydHlPYmplY3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNsZWFyT2JqZWN0KGRpcnR5T2JqZWN0OiBvYmplY3QpOiBhbnkge1xuICBjb25zdCBjbGVhbk9iamVjdCA9IHt9O1xuXG4gIE9iamVjdC5rZXlzKGRpcnR5T2JqZWN0KS5mb3JFYWNoKGtleSA9PiB7XG4gICAgaWYgKGRpcnR5T2JqZWN0W2tleV0gIT09IG51bGwgJiYgZGlydHlPYmplY3Rba2V5XSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjbGVhbk9iamVjdFtrZXldID0gZGlydHlPYmplY3Rba2V5XTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBjbGVhbk9iamVjdDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlT2JqZWN0VHlwZSh2YWx1ZTogYW55KSB7XG4gIHJldHVybiBpc1R5cGVvZih2YWx1ZSwgJ29iamVjdCcpICYmICFBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIFJldG9ybmEgb3MgZWxlbWVudG9zIERPTSBjYXBhemVzIGRlIHJlY2ViZXIgZm9jby5cbiAqXG4gKiA+IEF0dWFsbWVudGUgc8OjbyBjb25zaWRlcmFkb3MgXCJmb2PDoXZlaXNcIiBvcyBlbGVtZW50b3MgRE9NIGBpbnB1dGAsIGBzZWxlY3RgLFxuICogYHRleHRhcmVhYCwgYGJ1dHRvbmAgZSBgYWAuXG4gKlxuICogQHBhcmFtIHBhcmVudEVsZW1lbnQgRWxlbWVudG8gRE9NIHBhaS5cbiAqIEByZXR1cm5zIExpc3RhIGRvcyBlbGVtZW50b3MgRE9NIGZpbGhvcyBcImZvY8OhdmVpc1wiLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9jdXNhYmxlRWxlbWVudHMocGFyZW50RWxlbWVudDogRWxlbWVudCk6IE5vZGVMaXN0T2Y8RWxlbWVudD4ge1xuICBjb25zdCBmb2N1c2FibGVFbGVtZW50cyA9ICdidXR0b246bm90KFtkaXNhYmxlZF0pLCBbaHJlZl0sIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBbdGFiaW5kZXhdOm5vdChbdGFiaW5kZXg9XCItMVwiXSc7XG4gIHJldHVybiBwYXJlbnRFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoZm9jdXNhYmxlRWxlbWVudHMpO1xufVxuIl19
528
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvdXRpbHMvdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBRTFGOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxlQUFlO0lBQzdCLE9BQU8sdUJBQXVCLEVBQUUsQ0FBQztBQUNuQyxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQU0sVUFBVSxXQUFXLENBQUMsS0FBYSxFQUFFLFFBQVEsR0FBRyxDQUFDO0lBQ3JELElBQUksQ0FBQyxLQUFLLEVBQUU7UUFDVixPQUFPLFNBQVMsQ0FBQztLQUNsQjtJQUVELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQztJQUN4QixNQUFNLEtBQUssR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDeEUsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUNsRSxRQUFRLEdBQUcsUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFFdkMsT0FBTyxHQUFHLFVBQVUsQ0FBQyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO0FBQ3BHLENBQUM7QUFFRDs7R0FFRztBQUNI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QUMsQ0FBQyxDQUFDO0tBQ3REO0lBQUMsTUFBTTtRQUNOLE9BQU8sVUFBVSxDQUFDO0tBQ25CO0FBQ0gsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLFdBQVcsQ0FBQyxXQUFtQjtJQUM3QyxNQUFNLFdBQVcsR0FBRyxFQUFFLENBQUM7SUFFdkIsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDckMsSUFBSSxXQUFXLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxJQUFJLFdBQVcsQ0FBQyxHQUFHLENBQUMsS0FBSyxTQUFTLEVBQUU7WUFDL0QsV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNyQztJQUNILENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxXQUFXLENBQUM7QUFDckIsQ0FBQztBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxLQUFVO0lBQzNDLE9BQU8sUUFBUSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQ2hGLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxhQUFzQjtJQUN6RCxNQUFNLGlCQUFpQixHQUFHLHlGQUF5RixDQUFDO0lBQ3BILE9BQU8sYUFBYSxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFDM0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHBvTG9jYWxlcywgcG9Mb2NhbGVEZWZhdWx0IH0gZnJvbSAnLi4vc2VydmljZXMvcG8tbGFuZ3VhZ2UvcG8tbGFuZ3VhZ2UuY29uc3RhbnQnO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkXG4gKiBVdGlsaXplIG8gbcOpdG9kbyBgZ2V0U2hvcnRCcm93c2VyTGFuZ3VhZ2VgLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogUmV0b3JuYSBpZGlvbWEgZG8gYnJvd3NlciBvdSBvIGlkaW9tYSBwYWRyw6NvLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYnJvd3Nlckxhbmd1YWdlKCkge1xuICByZXR1cm4gZ2V0U2hvcnRCcm93c2VyTGFuZ3VhZ2UoKTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0ZSBlIGZvcm1hdGEgb3MgYnl0ZXMgZW0gZm9ybWF0byBtYWlzIGxlZ8OtdmVsIHBhcmEgbyB1c3XDoXJpby5cbiAqXG4gKiBQb3IgZXhlbXBsbzpcbiAqIC0gMzE0NTcyODAgZW0gMzAgTUIuXG4gKiAtIDIxNDc0ODM2NDgwIGVtIDIwIEdCLlxuICogLSAxMi41NjY2NjY2IGVtIDEyLjU3IEJ5dGVzIChkdWFzIGNhc2FzIGRlY2ltYWlzKS5cbiAqXG4gKiBAcGFyYW0gYnl0ZXMge251bWJlcn0gVmFsb3IgZW0gYnl0ZXNcbiAqIEBwYXJhbSBkZWNpbWFscyB7bnVtYmVyfSBRdWFudGlkYWRlIGRlIGNhc2FzIGRlY2ltYWlzIHF1ZSB0ZXLDoSBhcMOzcyBhIGNvbnZlcnPDo28uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRCeXRlcyhieXRlczogbnVtYmVyLCBkZWNpbWFscyA9IDIpOiBzdHJpbmcge1xuICBpZiAoIWJ5dGVzKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNvbnN0IG11bHRpcGxpZXIgPSAxMDI0O1xuICBjb25zdCBzaXplcyA9IFsnQnl0ZXMnLCAnS0InLCAnTUInLCAnR0InLCAnVEInLCAnUEInLCAnRUInLCAnWkInLCAnWUInXTtcbiAgY29uc3QgcmVzdWx0ID0gTWF0aC5mbG9vcihNYXRoLmxvZyhieXRlcykgLyBNYXRoLmxvZyhtdWx0aXBsaWVyKSk7XG4gIGRlY2ltYWxzID0gZGVjaW1hbHMgPCAwID8gMCA6IGRlY2ltYWxzO1xuXG4gIHJldHVybiBgJHtwYXJzZUZsb2F0KChieXRlcyAvIE1hdGgucG93KG11bHRpcGxpZXIsIHJlc3VsdCkpLnRvRml4ZWQoZGVjaW1hbHMpKX0gJHtzaXplc1tyZXN1bHRdfWA7XG59XG5cbi8qKlxuICogUmV0b3JuYSBvIGlkaW9tYSBhdHVhbCBkbyBuYXZlZ2Fkb3JcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEJyb3dzZXJMYW5ndWFnZSgpOiBzdHJpbmcge1xuICAvLyBuYXZpZ2F0b3IudXNlckxhbmd1YWdlIGlzIHRoZSB2YWx1ZSBmb3IgSUUxMFxuICBjb25zdCBsYW5ndWFnZSA9IG5hdmlnYXRvci5sYW5ndWFnZSB8fCBuYXZpZ2F0b3JbJ3VzZXJMYW5ndWFnZSddO1xuICBjb25zdCBzaG9ydExhbmd1YWdlID0gZ2V0U2hvcnRMYW5ndWFnZShsYW5ndWFnZSk7XG5cbiAgcmV0dXJuIHBvTG9jYWxlcy5pbmNsdWRlcyhzaG9ydExhbmd1YWdlKSA/IGxhbmd1YWdlIDogcG9Mb2NhbGVEZWZhdWx0O1xufVxuXG4vKipcbiAqIFJldG9ybmEgbyBpZGlvbWEgZG8gbmF2ZWdhZG9yLCBjb20gc29tZW50ZSBhcyBkdWFzIHByaW1laXJhcyBsZXRyYXMuIFBvciBleGVtcGxvOiBcInB0XCIgb3UgXCJlc1wiLlxuICpcbiAqIENhc28gbyB2YWxvciByZXRvcm5hZG8gcGVsbyBuYXZlZ2Fkb3IgbsOjbyBlc3RpdmVyIGRlbnRybyBkb3MgaWRpb21hcyBzdXBvcnRhZG9zIHBlbG8gUE8sXG4gKiBzZXLDoSByZXRvcm5hZG8gYSBsaW5ndWFnZW0gcGFkcsOjbyAocG9Mb2NhbGVEZWZhdWx0KS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNob3J0QnJvd3Nlckxhbmd1YWdlKCk6IHN0cmluZyB7XG4gIHJldHVybiBnZXRTaG9ydExhbmd1YWdlKGdldEJyb3dzZXJMYW5ndWFnZSgpKTtcbn1cblxuLyoqXG4gKiBSZXRvcm5hIG8gaWRpb21hIGNvbSBzb21lbnRlIGEgYWJyZXZpYcOnw6NvIGRvIGlkaW9tYSAoZHVhcyBwcmltZWlyYXMgbGV0cmFzKS5cbiAqIFBvciBleGVtcGxvOiBcInB0XCIgb3UgXCJlc1wiLlxuICpcbiAqIEBwYXJhbSBsYW5ndWFnZSB7c3RyaW5nfSBsaW5ndWFnZW0uXG4gKlxuICogQHJldHVybnMgc2lnbGEgZG8gaWRpb21hIHBhZHLDo28ge3N0cmluZ30uXG4gKlxuICogQGRlZmF1bHQgcHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNob3J0TGFuZ3VhZ2UobGFuZ3VhZ2U6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiAobGFuZ3VhZ2UgfHwgcG9Mb2NhbGVEZWZhdWx0KS50b0xvd2VyQ2FzZSgpLnN1YnN0cmluZygwLCAyKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzTGFuZ3VhZ2UodmFsdWUpIHtcbiAgY29uc3QgbGFuZ3VhZ2VSZWdleCA9IG5ldyBSZWdFeHAoJ15bYS16XXsyfSgtW2Etel17Mn0pPyQnLCAnaScpO1xuXG4gIHJldHVybiBsYW5ndWFnZVJlZ2V4LnRlc3QodmFsdWUpO1xufVxuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbG9hZEN1cnJlbnRQYWdlKCkge1xuICB3aW5kb3cubG9jYXRpb24uYXNzaWduKGxvY2F0aW9uLmhyZWYpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29udmVydFRvQm9vbGVhbih2YWw6IGFueSk6IGJvb2xlYW4ge1xuICBpZiAodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycpIHtcbiAgICB2YWwgPSB2YWwudG9Mb3dlckNhc2UoKS50cmltKCk7XG4gICAgcmV0dXJuIHZhbCA9PT0gJ3RydWUnIHx8IHZhbCA9PT0gJ29uJyB8fCB2YWwgPT09ICcnO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB2YWwgPT09ICdudW1iZXInKSB7XG4gICAgcmV0dXJuIHZhbCA9PT0gMTtcbiAgfVxuXG4gIHJldHVybiAhIXZhbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRUb0ludCh2YWx1ZTogYW55LCB2YWx1ZURlZmF1bHQ/OiBhbnkpOiBudW1iZXIge1xuICBjb25zdCB2YWxpZE51bWJlciA9IHBhcnNlSW50KHZhbHVlLCAxMCk7XG4gIGNvbnN0IHZhbGlkRGVmYXVsdFZhbHVlID0gcGFyc2VJbnQodmFsdWVEZWZhdWx0LCAxMCk7XG4gIGNvbnN0IGRlZmF1bHRWYWx1ZSA9IHZhbGlkRGVmYXVsdFZhbHVlIHx8IHZhbGlkRGVmYXVsdFZhbHVlID09PSAwID8gdmFsaWREZWZhdWx0VmFsdWUgOiB1bmRlZmluZWQ7XG5cbiAgcmV0dXJuIHZhbGlkTnVtYmVyIHx8IHZhbGlkTnVtYmVyID09PSAwID8gdmFsaWROdW1iZXIgOiBkZWZhdWx0VmFsdWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1R5cGVvZihvYmplY3Q6IGFueSwgdHlwZTogYW55KSB7XG4gIHJldHVybiB0eXBlb2Ygb2JqZWN0ID09PSB0eXBlO1xufVxuXG4vKipcbiAqXG4gKiBAcGFyYW0gZm4gRnVuw6fDo28gcXVlIHNlcsOhIGV4ZWN1dGFkYSBkZW50cm8gZG8gY29udGV4dG8uIFBvZGVuZG8gc2VyIG8gbm9tZSBkYSBmdW7Dp8Ojb1xuICogb3UgYSByZWZlcsOqbmNpYSBkYSBtZXNtYS5cbiAqXG4gKiBAcGFyYW0gY29udGV4dCBDb250ZXh0byBkbyBxdWFsIGEgZnVuw6fDo28gc2Vyw6EgZXhlY3V0YWRhLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2FsbEZ1bmN0aW9uKGZuOiBhbnksIGNvbnRleHQ6IGFueSwgcGFyYW0/KTogdm9pZCB7XG4gIGlmIChpc1R5cGVvZihmbiwgJ2Z1bmN0aW9uJykpIHtcbiAgICBmbi5jYWxsKGNvbnRleHQsIHBhcmFtKTtcbiAgfSBlbHNlIHtcbiAgICBjb250ZXh0W2ZuXShwYXJhbSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRJc29Ub0RhdGUodmFsdWU6IHN0cmluZywgc3RhcnQ6IGJvb2xlYW4sIGVuZDogYm9vbGVhbikge1xuICBpZiAodmFsdWUpIHtcbiAgICBjb25zdCBkYXkgPSBwYXJzZUludCh2YWx1ZS5zdWJzdHJpbmcoOCwgMTApLCAxMCk7XG4gICAgY29uc3QgbW9udGggPSBwYXJzZUludCh2YWx1ZS5zdWJzdHJpbmcoNSwgNyksIDEwKTtcbiAgICBjb25zdCB5ZWFyID0gcGFyc2VJbnQodmFsdWUuc3Vic3RyaW5nKDAsIDQpLCAxMCk7XG5cbiAgICBpZiAoc3RhcnQpIHtcbiAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh5ZWFyLCBtb250aCAtIDEsIGRheSwgMCwgMCwgMCk7XG5cbiAgICAgIHNldFllYXJGcm9tMFRvMTAwKGRhdGUsIHllYXIpO1xuXG4gICAgICByZXR1cm4gZGF0ZTtcbiAgICB9IGVsc2UgaWYgKGVuZCkge1xuICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHllYXIsIG1vbnRoIC0gMSwgZGF5LCAyMywgNTksIDU5KTtcblxuICAgICAgc2V0WWVhckZyb20wVG8xMDAoZGF0ZSwgeWVhcik7XG5cbiAgICAgIHJldHVybiBkYXRlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbmV3IERhdGUoeWVhciwgbW9udGggLSAxLCBkYXkpO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY29udmVydERhdGVUb0lTT0RhdGUoZGF0ZTogRGF0ZSkge1xuICBpZiAoZGF0ZSkge1xuICAgIGNvbnN0IGdldE1vbnRoID0gZGF0ZS5nZXRNb250aCgpICsgMTtcbiAgICBjb25zdCBkYXkgPSBkYXRlLmdldERhdGUoKSA8IDEwID8gJzAnICsgZGF0ZS5nZXREYXRlKCkgOiBkYXRlLmdldERhdGUoKTtcbiAgICBjb25zdCBtb250aCA9IGdldE1vbnRoIDwgMTAgPyAnMCcgKyBnZXRNb250aCA6IGdldE1vbnRoO1xuICAgIGNvbnN0IHllYXIgPSBmb3JtYXRZZWFyKGRhdGUuZ2V0RnVsbFllYXIoKSk7XG5cbiAgICByZXR1cm4geWVhciArICctJyArIG1vbnRoICsgJy0nICsgZGF5O1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0RGF0ZVRvSVNPRXh0ZW5kZWQoZGF0ZTogRGF0ZSwgdGltZT86IHN0cmluZykge1xuICBpZiAoZGF0ZSkge1xuICAgIGNvbnN0IGdldE1vbnRoID0gZGF0ZS5nZXRNb250aCgpICsgMTtcbiAgICBjb25zdCBkYXkgPSBkYXRlLmdldERhdGUoKSA8IDEwID8gJzAnICsgZGF0ZS5nZXREYXRlKCkgOiBkYXRlLmdldERhdGUoKTtcbiAgICBjb25zdCBtb250aCA9IGdldE1vbnRoIDwgMTAgPyAnMCcgKyBnZXRNb250aCA6IGdldE1vbnRoO1xuICAgIGNvbnN0IHllYXIgPSBmb3JtYXRZZWFyKGRhdGUuZ2V0RnVsbFllYXIoKSk7XG5cbiAgICBjb25zdCBkYXRlU3RyaW5nID0gZGF0ZS50b1N0cmluZygpO1xuXG4gICAgaWYgKHRpbWUgIT09IG51bGwpIHtcbiAgICAgIHJldHVybiB5ZWFyICsgJy0nICsgbW9udGggKyAnLScgKyBkYXkgKyB0aW1lO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICB5ZWFyICtcbiAgICAgICAgJy0nICtcbiAgICAgICAgbW9udGggK1xuICAgICAgICAnLScgK1xuICAgICAgICBkYXkgK1xuICAgICAgICAnVCcgK1xuICAgICAgICBkYXRlU3RyaW5nLnN1YnN0cmluZygxNiwgMjQpICtcbiAgICAgICAgZGF0ZVN0cmluZy5zdWJzdHJpbmcoMjgsIDMxKSArXG4gICAgICAgICc6JyArXG4gICAgICAgIGRhdGVTdHJpbmcuc3Vic3RyaW5nKDMxLCAzMylcbiAgICAgICk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbi8qKlxuICogVHJhbnNmb3JtYSBvIGFubyBlbSB1bWEgc3RyaW5nIG5vIGZvcm1hdG8geXl5eSBlIGNhc28gbyBhbm8gc2VqYSBtZW5vciBxdWUgMTAwMCBwcmVlbmNoZSBjb20gemVyb3MgYSBlc3F1ZXJkYS5cbiAqXG4gKiBAcGFyYW0geWVhciBBbm9cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFllYXIoeWVhcjogbnVtYmVyKSB7XG4gIGlmICh5ZWFyID49IDEwMDApIHtcbiAgICByZXR1cm4geWVhci50b1N0cmluZygpO1xuICB9XG5cbiAgaWYgKHllYXIgPiA5OSAmJiB5ZWFyIDwgMTAwMCkge1xuICAgIHJldHVybiBgMCR7eWVhcn1gO1xuICB9XG5cbiAgaWYgKHllYXIgPiA5ICYmIHllYXIgPCAxMDApIHtcbiAgICByZXR1cm4gYDAwJHt5ZWFyfWA7XG4gIH1cblxuICBpZiAoeWVhciA+PSAwICYmIHllYXIgPCAxMCkge1xuICAgIHJldHVybiBgMDAwJHt5ZWFyfWA7XG4gIH1cbn1cblxuLy8gVmVyaWZpY2Egc2UgbyBuYXZlZ2Fkb3IgZW0gcXVlIGVzdMOhIHNlbmRvIHVzYWRvIMOpIEludGVybmV0IEV4cGxvcmVyIG91IEVkZ2VcbmV4cG9ydCBmdW5jdGlvbiBpc0lFT3JFZGdlKCkge1xuICBjb25zdCB1c2VyQWdlbnQgPSB3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudDtcblxuICByZXR1cm4gL21zaWVcXHN8dHJpZGVudFxcL3xlZGdlXFwvL2kudGVzdCh1c2VyQWdlbnQpO1xufVxuXG4vLyBWZXJpZmljYSBzZSBvIG5hdmVnYWRvciBlbSBxdWUgZXN0w6Egc2VuZG8gdXNhZG8gw6kgSW50ZXJuZXQgRXhwbG9yZXJcbmV4cG9ydCBmdW5jdGlvbiBpc0lFKCkge1xuICBjb25zdCB1c2VyQWdlbnQgPSB3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudDtcblxuICByZXR1cm4gL21zaWVcXHN8dHJpZGVudC9pLnRlc3QodXNlckFnZW50KTtcbn1cblxuLy8gVmVyaWZpY2Egc2UgbyBuYXZlZ2Fkb3IgZW0gcXVlIGVzdMOhIHNlbmRvIHVzYWRvIMOpIEZpcmVmb3hcbmV4cG9ydCBmdW5jdGlvbiBpc0ZpcmVmb3goKSB7XG4gIGNvbnN0IHVzZXJBZ2VudCA9IHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50O1xuXG4gIHJldHVybiB1c2VyQWdlbnQudG9Mb3dlckNhc2UoKS5pbmRleE9mKCdmaXJlZm94JykgPiAtMTtcbn1cblxuLy8gVmVyaWZpY2EgcXVhbCBvIGRpc3Bvc2l0aXZvIHF1ZSBlc3TDoSBzZW5kbyB1c2Fkb1xuZXhwb3J0IGZ1bmN0aW9uIGlzTW9iaWxlKCkge1xuICBjb25zdCB1c2VyQWdlbnQgPSB3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudDtcblxuICByZXR1cm4gdXNlckFnZW50Lm1hdGNoKC9BbmRyb2lkfHdlYk9TfGlQaG9uZXxpUGFkfGlQb2R8QmxhY2tCZXJyeXxXaW5kb3dzIFBob25lL2kpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNFcXVhbHModmFsdWUsIGNvbXBhcmVkVmFsdWUpIHtcbiAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHZhbHVlKSA9PT0gSlNPTi5zdHJpbmdpZnkoY29tcGFyZWRWYWx1ZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0tleUNvZGVFbnRlcihldmVudDogYW55KTogYm9vbGVhbiB7XG4gIHJldHVybiBldmVudC5rZXlDb2RlID09PSAxMyB8fCBldmVudC53aGljaCA9PT0gMTM7XG59XG5cbi8qKlxuICogQ2FzbyBvIGFubyBvcmlnaW5hbCBkYSBkYXRhIHNlamEgZW50cmUgMCBlIDEwMCBhdHJpYnVpIGVzc2UgdmFsb3IgYW8gYW5vLCBwb2lzIG8gYG5ldyBEYXRlYCBkbyBqYXZhc2NyaXB0IHRyYW5zZm9ybWEgbyBhbm8gcGFyYSAxOTBYLlxuICpcbiAqIEBwYXJhbSBkYXRlIERhdGFcbiAqIEBwYXJhbSB5ZWFyIEFubyBvcmlnaW5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gc2V0WWVhckZyb20wVG8xMDAoZGF0ZTogRGF0ZSwgeWVhcjogbnVtYmVyKSB7XG4gIGlmICh5ZWFyID49IDAgJiYgeWVhciA8IDEwMCkge1xuICAgIGRhdGUuc2V0RnVsbFllYXIoeWVhcik7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNvcnRPcHRpb25zQnlQcm9wZXJ0eShvcHRpb25zOiBBcnJheTxhbnk+LCBwcm9wZXJ0eTogc3RyaW5nKSB7XG4gIG9wdGlvbnMuc29ydCgob3B0aW9uQSwgb3B0aW9uQikgPT4ge1xuICAgIG9wdGlvbkEgPSBvcHRpb25BW3Byb3BlcnR5XS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCk7XG4gICAgb3B0aW9uQiA9IG9wdGlvbkJbcHJvcGVydHldLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKTtcblxuICAgIGlmIChvcHRpb25BIDwgb3B0aW9uQikge1xuICAgICAgcmV0dXJuIC0xO1xuICAgIH1cbiAgICBpZiAob3B0aW9uQSA+IG9wdGlvbkIpIHtcbiAgICAgIHJldHVybiAxO1xuICAgIH1cbiAgICByZXR1cm4gMDtcbiAgfSk7XG59XG5cbi8qKlxuICogT3JkZW5hIG8gY2FtcG9zIGJhc2VhZG8gbm8gdmFsb3IgZGEgcHJvcHJpZWRhZGUgYG9yZGVyYC5cbiAqXG4gKiBTw7Mgc2Vyw6NvIGFjZWl0b3MgdmFsb3JlcyBjb20gbsO6bWVyb3MgaW50ZWlyb3MgbWFpb3JlcyBkbyBxdWUgemVybyBwYXJhIGEgb3JkZW5hw6fDo28uXG4gKlxuICogQ2FtcG9zIHNlbSBgb3JkZXJgIG91IGNvbSB2YWxvcmVzIG5lZ2F0aXZvcywgemVyYWRvcyBvdSBpbnbDoWxpZG9zXG4gKiByZWNlYmVyw6NvIG8gdmFsb3IgZGVmYXVsdCBlIHNlZ3VpcsOjbyBvIHBvc2ljaW9uYW1lbnRvIGRlbnRybyBkb1xuICogYXJyYXkuXG4gKlxuICogQHBhcmFtIGZpZWxkcyBjYW1wbyBxdWUgc2UgZGVzZWphIG9yZGVuYXIuXG4gKiBAcGFyYW0gZGVmYXVsdE9yZGVyaW5nIHZhbG9yIHF1ZSBzZXLDoSB1dGlsaXphZG8gcGFyYSBtYW50ZXIgbmEgcG9zacOnw6NvIGRvIGFycmF5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gc29ydEZpZWxkcyhmaWVsZHMgPSBbXSwgZGVmYXVsdE9yZGVyaW5nID0gLTEpIHtcbiAgY29uc3QgcmVzdWx0Q2xhc3NpZmljYXRpb24gPSB7IGZpZWxkQUNvbWVzRmlyc3Q6IC0xLCBmaWVsZEFDb21lc0FmdGVyOiAxLCBrZWVwUG9zaXRpb25zOiAwIH07XG5cbiAgY29uc3QgaXNPcmRlclZhbGlkID0gKG9yZGVyOiBudW1iZXIpID0+IGlzVHlwZW9mKG9yZGVyLCAnbnVtYmVyJykgJiYgb3JkZXIgPiAwO1xuICBjb25zdCBhcHBseURlZmF1bHRPcmRlcmluZyA9IChvcmRlcjogbnVtYmVyKSA9PiAoaXNPcmRlclZhbGlkKG9yZGVyKSA/IG9yZGVyIDogZGVmYXVsdE9yZGVyaW5nKTtcblxuICByZXR1cm4gZmllbGRzLnNvcnQoKGZpZWxkQSwgZmllbGRCKSA9PiB7XG4gICAgY29uc3Qgb3JkZXJBID0gYXBwbHlEZWZhdWx0T3JkZXJpbmcoZmllbGRBLm9yZGVyKTtcbiAgICBjb25zdCBvcmRlckIgPSBhcHBseURlZmF1bHRPcmRlcmluZyhmaWVsZEIub3JkZXIpO1xuXG4gICAgaWYgKG9yZGVyQSA9PT0gb3JkZXJCKSB7XG4gICAgICByZXR1cm4gcmVzdWx0Q2xhc3NpZmljYXRpb24ua2VlcFBvc2l0aW9ucztcbiAgICB9XG5cbiAgICBpZiAob3JkZXJBID09PSBkZWZhdWx0T3JkZXJpbmcpIHtcbiAgICAgIHJldHVybiByZXN1bHRDbGFzc2lmaWNhdGlvbi5maWVsZEFDb21lc0FmdGVyO1xuICAgIH1cblxuICAgIGlmIChvcmRlckIgPT09IGRlZmF1bHRPcmRlcmluZykge1xuICAgICAgcmV0dXJuIHJlc3VsdENsYXNzaWZpY2F0aW9uLmZpZWxkQUNvbWVzRmlyc3Q7XG4gICAgfVxuXG4gICAgcmV0dXJuIG9yZGVyQSAtIG9yZGVyQjtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVEdXBsaWNhdGVkT3B0aW9ucyhsaXN0OiBBcnJheTxhbnk+KSB7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKykge1xuICAgIGlmIChpID09PSAwKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAobGlzdC5maW5kSW5kZXgob3AgPT4gb3AudmFsdWUgPT09IGxpc3RbaV0udmFsdWUpICE9PSBpKSB7XG4gICAgICBsaXN0LnNwbGljZShpLCAxKTtcbiAgICAgIGktLTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZUR1cGxpY2F0ZWRPcHRpb25zV2l0aEZpZWxkVmFsdWUobGlzdDogQXJyYXk8YW55PiwgbmV3VmFsdWUpIHtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGkgPT09IDApIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGlmIChsaXN0LmZpbmRJbmRleChvcCA9PiBvcFtuZXdWYWx1ZV0gPT09IGxpc3RbaV1bbmV3VmFsdWVdKSAhPT0gaSkge1xuICAgICAgbGlzdC5zcGxpY2UoaSwgMSk7XG4gICAgICBpLS07XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVVbmRlZmluZWRBbmROdWxsT3B0aW9ucyhsaXN0OiBBcnJheTxhbnk+KSB7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKykge1xuICAgIGlmIChsaXN0W2ldLnZhbHVlID09PSB1bmRlZmluZWQgfHwgbGlzdFtpXS52YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgbGlzdC5zcGxpY2UoaSwgMSk7XG4gICAgICBpLS07XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVVbmRlZmluZWRBbmROdWxsT3B0aW9uc1dpdGhGaWVsZFZhbHVlKGxpc3Q6IEFycmF5PGFueT4sIG5ld1ZhbHVlKSB7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKykge1xuICAgIGlmIChsaXN0W2ldW25ld1ZhbHVlXSA9PT0gdW5kZWZpbmVkIHx8IGxpc3RbaV1bbmV3VmFsdWVdID09PSBudWxsKSB7XG4gICAgICBsaXN0LnNwbGljZShpLCAxKTtcbiAgICAgIGktLTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkVmFsdWUodmFsdWU6IGFueSkge1xuICByZXR1cm4gKHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09ICcnKSB8fCB2YWx1ZSA9PT0gZmFsc2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0V4dGVybmFsTGluayh1cmwpOiBib29sZWFuIHtcbiAgcmV0dXJuIHVybCA/IHVybC5zdGFydHNXaXRoKCdodHRwJykgOiBmYWxzZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG9wZW5FeHRlcm5hbExpbmsodXJsKTogdm9pZCB7XG4gIHdpbmRvdy5vcGVuKHVybCwgJ19ibGFuaycpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9ybWF0dGVkTGluayhsaW5rOiBzdHJpbmcpOiBzdHJpbmcge1xuICBsZXQgZm9ybWF0dGVkTGluayA9ICcnO1xuICAvLyBSZXRpcmEgdG9kb3Mgb3MgcG9udG9zIG5vIGNvbWXDp28gZGEgVVJMLlxuICBpZiAobGluaykge1xuICAgIGZvcm1hdHRlZExpbmsgPSBsaW5rLnJlcGxhY2UoL14oXFwuKSsvZywgJycpO1xuICB9XG4gIC8vIFZlcmlmaWNhIHNlIGZvaSB1dGlsaXphZG8gdW1hIHJvdGEgcXVlIG7Do28gY29tZWNlIGNvbSBiYXJyYS5cbiAgaWYgKCFmb3JtYXR0ZWRMaW5rLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgIGZvcm1hdHRlZExpbmsgPSAnLycuY29uY2F0KGZvcm1hdHRlZExpbmspO1xuICB9XG4gIHJldHVybiBmb3JtYXR0ZWRMaW5rO1xufVxuXG4vKipcbiAqIE3DqXRvZG8gcmVzcG9uc8OhdmVsIHBvciBvcmRlbmFyIGRvaXMgdmFsb3Jlcy5cbiAqXG4gKiBAcGFyYW0gbGVmdFNpZGUgUHJpbWVpcm8gdmFsb3IgYSBzZXIgY29tcGFyYWRvLlxuICogQHBhcmFtIHJpZ2h0U2lkZSBTZWd1bmRvIHZhbG9yIGEgc2VyIGNvbXBhcmFkby5cbiAqIEBwYXJhbSBhc2NlbmRpbmcgRGV0ZXJtaW5hIHNlIHNlcsOhIGVtIG9yZGVtIGFzY2VuZGVudGUgb3UgZGVzY2VuZGVudGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzb3J0VmFsdWVzKGxlZnRTaWRlOiBzdHJpbmcgfCBEYXRlLCByaWdodFNpZGU6IHN0cmluZyB8IERhdGUsIGFzY2VuZGluZzogYm9vbGVhbiA9IHRydWUpOiBudW1iZXIge1xuICBjb25zdCBsZWZ0ID0gaXNUeXBlb2YobGVmdFNpZGUsICdzdHJpbmcnKSA/IChsZWZ0U2lkZSBhcyBzdHJpbmcpLnRvTG93ZXJDYXNlKCkgOiBsZWZ0U2lkZTtcbiAgY29uc3QgcmlnaHQgPSBpc1R5cGVvZihyaWdodFNpZGUsICdzdHJpbmcnKSA/IChyaWdodFNpZGUgYXMgc3RyaW5nKS50b0xvd2VyQ2FzZSgpIDogcmlnaHRTaWRlO1xuXG4gIGNvbnN0IGxlZnRJc0ludmFsaWQgPSBsZWZ0ID09PSBudWxsIHx8IGxlZnQgPT09IHVuZGVmaW5lZCB8fCBOdW1iZXIuaXNOYU4obGVmdCk7XG4gIGNvbnN0IHJpZ2h0SXNJbnZhbGlkID0gcmlnaHQgPT09IG51bGwgfHwgcmlnaHQgPT09IHVuZGVmaW5lZCB8fCBOdW1iZXIuaXNOYU4ocmlnaHQpO1xuXG4gIGlmIChhc2NlbmRpbmcpIHtcbiAgICBpZiAobGVmdCA8IHJpZ2h0IHx8IGxlZnRJc0ludmFsaWQpIHtcbiAgICAgIHJldHVybiAtMTtcbiAgICB9IGVsc2UgaWYgKGxlZnQgPiByaWdodCB8fCByaWdodElzSW52YWxpZCkge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfVxuICB9IGVsc2UgaWYgKGFzY2VuZGluZyA9PT0gZmFsc2UpIHtcbiAgICBpZiAobGVmdCA8IHJpZ2h0IHx8IGxlZnRJc0ludmFsaWQpIHtcbiAgICAgIHJldHVybiAxO1xuICAgIH0gZWxzZSBpZiAobGVmdCA+IHJpZ2h0IHx8IHJpZ2h0SXNJbnZhbGlkKSB7XG4gICAgICByZXR1cm4gLTE7XG4gICAgfVxuICB9XG4gIHJldHVybiAwO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVEYXRlUmFuZ2UoZGF0ZTogRGF0ZSwgZGF0ZVN0YXJ0OiBEYXRlLCBkYXRlRW5kOiBEYXRlKSB7XG4gIGlmIChkYXRlU3RhcnQgJiYgZGF0ZUVuZCkge1xuICAgIHJldHVybiBkYXRlID49IGRhdGVTdGFydCAmJiBkYXRlIDw9IGRhdGVFbmQ7XG4gIH0gZWxzZSBpZiAoZGF0ZVN0YXJ0ICYmICFkYXRlRW5kKSB7XG4gICAgcmV0dXJuIGRhdGUgPj0gZGF0ZVN0YXJ0O1xuICB9IGVsc2UgaWYgKCFkYXRlU3RhcnQgJiYgZGF0ZUVuZCkge1xuICAgIHJldHVybiBkYXRlIDw9IGRhdGVFbmQ7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHV1aWQoKSB7XG4gIGZ1bmN0aW9uIGhleDQoKSB7XG4gICAgcmV0dXJuIE1hdGguZmxvb3IoKDEgKyBNYXRoLnJhbmRvbSgpKSAqIDB4MTAwMDApXG4gICAgICAudG9TdHJpbmcoMTYpXG4gICAgICAuc3Vic3RyaW5nKDEpO1xuICB9XG5cbiAgcmV0dXJuIGhleDQoKSArIGhleDQoKSArICctJyArIGhleDQoKSArICctJyArIGhleDQoKSArICctJyArIGhleDQoKSArICctJyArIGhleDQoKSArIGhleDQoKSArIGhleDQoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNhcGl0YWxpemVGaXJzdExldHRlcih0ZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gYCR7dGV4dC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKX0ke3RleHQuc2xpY2UoMSl9YDtcbn1cblxuLyoqXG4gKiBNYXBlaWEgdW0gbm92byBhcnJheSBhcGVuYXMgY29tIGFzIHByb3ByaWVkYWRlcyBkZWZpbmlkYXMgcGVsbyBkZXNlbnZvbHZlZG9yIGJhc2VhZG8gZW0gdW0gYXJyYXkgZGVcbiAqIG9yaWdlbS5cbiAqXG4gKiBFeGVtcGxvOlxuICpcbiAqIGBgYFxuICogY29uc3QgcGVvcGxlID0gW1xuICogIHsgaWQ6IDEsIG5hbWU6ICdGdWxhbm8nLCBiaXJ0aGRhdGU6ICcxOTgwLTExLTAxJywgZ2VucmU6ICdNYWxlJywgY2l0eTogJ1PDo28gUGF1bG8nLCBkZXBlbmRlbnRzOiAyIH0sXG4gKiAgeyBpZDogMiwgbmFtZTogJ0JlbHRyYW5vJywgYmlydGhkYXRlOiAnMTk5Ny0wMS0yMScsIGdlbnJlOiAnRmVtYWxlJywgY2l0eTogJ0pvaW52aWxsZScsIGRlcGVuZGVudHM6IDAgfSxcbiAqICB7IGlkOiAzLCBuYW1lOiAnU2ljbGFubycsIGJpcnRoZGF0ZTogJzE5OTUtMDctMTUnLCBnZW5yZTogJ01hbGUnLCBjaXR5OiAnSm9pbnZpbGxlJywgZGVwZW5kZW50czogMCB9XG4gKiBdO1xuICpcbiAqIGNvbnN0IHByb3BlcnRpZXMgPSBbJ2lkJywgJ25hbWUnXTtcbiAqXG4gKiBjb25zdCBpZEFuZE5hbWUgPSBtYXBBcnJheUJ5UHJvcGVydGllcyhwZW9wbGUsIHByb3BlcnRpZXMpO1xuICpcbiAqIGNvbnNvbGUubG9nKGlkQW5kTmFtZSk7IC8vIFt7IGlkOiAxLCBuYW1lOiAnRnVsYW5vJyB9LCB7IGlkOiAyLCBuYW1lOiAnQmVsdHJhbm8nIH0sIHsgaWQ6IDMsIG5hbWU6ICdTaWNsYW5vJyB9XVxuICogYGBgXG4gKlxuICogVW0gb3V0cm8gdXNvIHBhcmEgbyBtw6l0b2RvIMOpIFwicGFyZWFyXCIgdG9kb3Mgb3Mgb2JqZXRvcyBkbyBhcnJheSBjb20gYXMgbWVzbWFzIHByb3ByaWVkYWRlcy5cbiAqXG4gKiBgYGBcbiAqIGNvbnN0IGN1c3RvbWVycyA9IFtcbiAqICB7IGlkOiAxLCBuYW1lOiAnRnVsYW5vJywgY2l0eTogJ1PDo28gUGF1bG8nLCBkZXBlbmRlbnRzOiAyIH0sIC8vIHNlbSBnZW5yZVxuICogIHsgaWQ6IDIsIG5hbWU6ICdCZWx0cmFubycsIGdlbnJlOiAnRmVtYWxlJywgY2l0eTogJ0pvaW52aWxsZScgfSwgLy8gc2VtIGRlcGVuZGVudHNcbiAqICB7IGlkOiAzLCBuYW1lOiAnU2ljbGFubycsIGdlbnJlOiAnTWFsZScsIGNpdHk6ICdKb2ludmlsbGUnLCBkZXBlbmRlbnRzOiAwIH1cbiAqIF07XG4gKiBjb25zdCBwcm9wZXJ0aWVzID0gWydpZCcsICduYW1lJywgJ2NpdHknLCAnZ2VucmUnLCAnZGVwZW5kZW50cyddO1xuICpcbiAqIGNvbnN0IHBhdHRlcm4gPSBtYXBBcnJheUJ5UHJvcGVydGllcyhjdXN0b21lcnMsIHByb3BlcnRpZXMpO1xuICogY29uc29sZS5sb2cocGF0dGVybik7XG4gKlxuICogLy8gW1xuICogLy8gICB7IGlkOiAxLCBuYW1lOiAnRnVsYW5vJywgY2l0eTogJ1PDo28gUGF1bG8nLCBnZW5yZTogdW5kZWZpbmVkLCBkZXBlbmRlbnRzOiAyIH0sXG4gKiAvLyAgIHsgaWQ6IDIsIG5hbWU6ICdCZWx0cmFubycsIGNpdHk6ICdKb2ludmlsbGUnLCBnZW5yZTogJ0ZlbWFsZScsIGRlcGVuZGVudHM6IHVuZGVmaW5lZCB9LFxuICogLy8gICB7IGlkOiAzLCBuYW1lOiAnU2ljbGFubycsIGNpdHk6ICdKb2ludmlsbGUnLCBnZW5yZTogJ01hbGUnLCBkZXBlbmRlbnRzOiAwIH1cbiAqIC8vIF1cbiAqIGBgYFxuICpcbiAqIEBwYXJhbSBpdGVtcyB7QXJyYXk8YW55Pn0gQXJyYXkgZGUgaXRlbXMgb3JpZ2luYWwuXG4gKiBAcGFyYW0gcHJvcGVydGllcyB7QXJyYXk8c3RyaW5nPn0gQXJyYXkgZGUgc3RyaW5nIGNvbSBhIGxpc3RhIGRlIHByb3ByaWVkYWRlcyBxdWUgZGV2ZW0gc2VyIHJldG9ybmFkYXMuXG4gKlxuICogQHJldHVybnMgQXJyYXk8YW55PlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWFwQXJyYXlCeVByb3BlcnRpZXMoaXRlbXM6IEFycmF5PGFueT4gPSBbXSwgcHJvcGVydGllczogQXJyYXk8c3RyaW5nPiA9IFtdKTogQXJyYXk8YW55PiB7XG4gIHJldHVybiBpdGVtcy5tYXAoaXRlbSA9PiBtYXBPYmplY3RCeVByb3BlcnRpZXMoaXRlbSwgcHJvcGVydGllcykpO1xufVxuXG4vKipcbiAqIE1hcGVpYSB1bSBub3ZvIG9iamV0byBhcGVuYXMgY29tIGFzIHByb3ByaWVkYWRlcyBkZWZpbmlkYXMgcGVsbyBkZXNlbnZvbHZlZG9yLlxuICpcbiAqIEV4ZW1wbG86XG4gKlxuICogYGBgXG4gKiBjb25zdCBwZXJzb24gPSB7IGlkOiAxLCBuYW1lOiAnRnVsYW5vJywgYmlydGhkYXRlOiAnMTk4MC0xMS0wMScsIGdlbnJlOiAnTWFsZScsIGNpdHk6ICdTw6NvIFBhdWxvJywgZGVwZW5kZW50czogMiB9O1xuICpcbiAqIGNvbnN0IHByb3BlcnRpZXMgPSBbJ2lkJywgJ25hbWUnXTtcbiAqXG4gKiBjb25zdCBpZEFuZE5hbWUgPSBtYXBPYmplY3RCeVByb3BlcnRpZXMocGVyc29uLCBwcm9wZXJ0aWVzKTtcbiAqXG4gKiBjb25zb2xlLmxvZyhpZEFuZE5hbWUpOyAvLyB7IGlkOiAxLCBuYW1lOiAnRnVsYW5vJyB9XG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0gb2JqZWN0IHtBcnJheTxhbnk+fSBBcnJheSBkZSBpdGVtcyBvcmlnaW5hbC5cbiAqIEBwYXJhbSBwcm9wZXJ0aWVzIHtBcnJheTxzdHJpbmc+fSBBcnJheSBkZSBzdHJpbmcgY29tIGEgbGlzdGEgZGUgcHJvcHJpZWRhZGVzIHF1ZSBkZXZlbSBzZXIgcmV0b3JuYWRhcy5cbiAqXG4gKiBAcmV0dXJucyBBcnJheTxhbnk+XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYXBPYmplY3RCeVByb3BlcnRpZXMob2JqZWN0OiBhbnkgPSB7fSwgcHJvcGVydGllczogQXJyYXk8c3RyaW5nPiA9IFtdKSB7XG4gIGNvbnN0IGdldFNlbGVjdGVkUHJvcGVydGllcyA9IChzZWxlY3RlZFByb3BlcnRpZXMsIHByb3BlcnR5KSA9PiAoe1xuICAgIC4uLnNlbGVjdGVkUHJvcGVydGllcyxcbiAgICBbcHJvcGVydHldOiBvYmplY3RbcHJvcGVydHldXG4gIH0pO1xuXG4gIHJldHVybiBwcm9wZXJ0aWVzLnJlZHVjZShnZXRTZWxlY3RlZFByb3BlcnRpZXMsIHt9KTtcbn1cblxuLyoqXG4gKiBSZXRvcm5hIG9zIHZhbG9yZXMgZGUgdW0gb2JqZXRvIGRlbnRybyBkZSB1bSBhcnJheS5cbiAqXG4gKiA+IFNpbXVsYSBvIE9iamVjdC52YWx1ZXMob2JqKSwgbyBtZXNtbyBkZXZlIHNlciByZW1vdmlkbyBhc3NpbSBxdWUgYSB2ZXJzw6NvIHR5cGVzY3JpdCBmb3IgYXR1YWxpemFkYS5cbiAqXG4gKiBAcGFyYW0gb2JqZWN0IE9iamV0byBkZSBvbmRlIHNlcsOhIHBlZ28gb3MgdmFsb3Jlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbHVlc0Zyb21PYmplY3Qob2JqZWN0OiBhbnkgPSB7fSk6IEFycmF5PGFueT4ge1xuICByZXR1cm4gT2JqZWN0LmtleXMob2JqZWN0KS5tYXAocHJvcGVydHkgPT4gb2JqZWN0W3Byb3BlcnR5XSk7XG59XG5cbi8qKlxuICogQ29udmVydGUgdW0gYXJxdWl2byBlbSBiYXNlNjQuXG4gKlxuICogQHBhcmFtIGZpbGUgYXJxdWl2byBxdWUgc2Vyw6EgY29udmVydGlkby5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRJbWFnZVRvQmFzZTY0KGZpbGU6IEZpbGUpOiBQcm9taXNlPGFueT4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG5cbiAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcbiAgICByZWFkZXIub25sb2FkID0gKCkgPT4gcmVzb2x2ZShyZWFkZXIucmVzdWx0KTtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIHJlYWRlci5vbmVycm9yID0gZXJyb3IgPT4gcmVqZWN0KGVycm9yKTtcbiAgfSk7XG59XG5cbi8qKlxuICogQ29udmVydGUgdW0gbsO6bWVybyBlbSBkZWNpbWFsIGJhc2VhZG8gbmEgcXVhbnRpZGFkZSBkZSBjYXNhcyBkZWNpbWFpcy5cbiAqXG4gKiBDYXNvIG8gdmFsb3Igc2VqYSBpbnbDoWxpZG8sIHNlcsOhIHJldG9ybmFkbyBvIHZhbG9yIGB1bmRlZmluZWRgLlxuICogVmFsb3JlcyBpbnbDoWxpZG9zIHPDo286IGBmYWxzZWAsIGBOYU5gLCBgc3RyaW5nc2AgcXVlIG7Do28gbnVtw6lyaWNhcywgYHVuZGVmaW5lZGAgZSBgbnVsbGAuXG4gKlxuICogQHBhcmFtIG51bWJlciB2YWxvciBxdWUgc2Vyw6EgY29udmVydGlkb1xuICogQHBhcmFtIGRlY2ltYWxzUGxhY2UgcXVhbnRpZGFkZSBkZSBjYXNhcyBkZWNpbWFpc1xuICovXG5leHBvcnQgZnVuY3Rpb24gY29udmVydE51bWJlclRvRGVjaW1hbChudW1iZXI6IGFueSwgZGVjaW1hbHNQbGFjZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgY29uc3QgaXNWYWxpZFZhbHVlID0gKG51bWJlciB8fCBudW1iZXIgPT09IDApICYmICFpc05hTihudW1iZXIpO1xuXG4gIGNvbnN0IGZsb2F0VmFsdWUgPSBpc1ZhbGlkVmFsdWUgPyBwYXJzZUZsb2F0KG51bWJlcikgOiB1bmRlZmluZWQ7XG5cbiAgdHJ5IHtcbiAgICByZXR1cm4gcGFyc2VGbG9hdChmbG9hdFZhbHVlLnRvRml4ZWQoZGVjaW1hbHNQbGFjZSkpO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZmxvYXRWYWx1ZTtcbiAgfVxufVxuXG4vKipcbiAqIFJldG9ybmEgdW1hIGNvcGlhIGRvIG9iamV0byBzdWpvLCBzZW0gYXMgcHJvcHJpZWRhZGVzIG51bGFzIG91IGluZGVmaW5pZGFzLlxuICogUmV0b3JuYSBvIG9iamV0byBzZW0gYXMgcHJvcHJpZWRhZGVzIHF1ZSBjb250w6ltIHZhbG9yZXMgbnVsb3Mgb3UgaW5kZWZpbmlkb3MuXG4gKlxuICogQHBhcmFtIGRpcnR5T2JqZWN0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjbGVhck9iamVjdChkaXJ0eU9iamVjdDogb2JqZWN0KTogYW55IHtcbiAgY29uc3QgY2xlYW5PYmplY3QgPSB7fTtcblxuICBPYmplY3Qua2V5cyhkaXJ0eU9iamVjdCkuZm9yRWFjaChrZXkgPT4ge1xuICAgIGlmIChkaXJ0eU9iamVjdFtrZXldICE9PSBudWxsICYmIGRpcnR5T2JqZWN0W2tleV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgY2xlYW5PYmplY3Rba2V5XSA9IGRpcnR5T2JqZWN0W2tleV07XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gY2xlYW5PYmplY3Q7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZU9iamVjdFR5cGUodmFsdWU6IGFueSkge1xuICByZXR1cm4gaXNUeXBlb2YodmFsdWUsICdvYmplY3QnKSAmJiAhQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBSZXRvcm5hIG9zIGVsZW1lbnRvcyBET00gY2FwYXplcyBkZSByZWNlYmVyIGZvY28uXG4gKlxuICogPiBBdHVhbG1lbnRlIHPDo28gY29uc2lkZXJhZG9zIFwiZm9jw6F2ZWlzXCIgb3MgZWxlbWVudG9zIERPTSBgaW5wdXRgLCBgc2VsZWN0YCxcbiAqIGB0ZXh0YXJlYWAsIGBidXR0b25gIGUgYGFgLlxuICpcbiAqIEBwYXJhbSBwYXJlbnRFbGVtZW50IEVsZW1lbnRvIERPTSBwYWkuXG4gKiBAcmV0dXJucyBMaXN0YSBkb3MgZWxlbWVudG9zIERPTSBmaWxob3MgXCJmb2PDoXZlaXNcIi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEZvY3VzYWJsZUVsZW1lbnRzKHBhcmVudEVsZW1lbnQ6IEVsZW1lbnQpOiBOb2RlTGlzdE9mPEVsZW1lbnQ+IHtcbiAgY29uc3QgZm9jdXNhYmxlRWxlbWVudHMgPSAnYnV0dG9uOm5vdChbZGlzYWJsZWRdKSwgW2hyZWZdLCBpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSwgW3RhYmluZGV4XTpub3QoW3RhYmluZGV4PVwiLTFcIl0nO1xuICByZXR1cm4gcGFyZW50RWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKGZvY3VzYWJsZUVsZW1lbnRzKTtcbn1cbiJdfQ==