@dereekb/dbx-form 11.0.21 → 11.1.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 (62) hide show
  1. package/calendar/lib/calendar.schedule.selection.dialog.button.component.d.ts +1 -1
  2. package/calendar/lib/calendar.schedule.selection.range.component.d.ts +1 -1
  3. package/calendar/lib/calendar.schedule.selection.toggle.button.component.d.ts +1 -1
  4. package/calendar/lib/field/schedule/calendar.schedule.field.component.d.ts +1 -1
  5. package/esm2022/calendar/lib/calendar.schedule.selection.dialog.button.component.mjs +1 -1
  6. package/esm2022/calendar/lib/calendar.schedule.selection.range.component.mjs +1 -1
  7. package/esm2022/calendar/lib/calendar.schedule.selection.toggle.button.component.mjs +1 -1
  8. package/esm2022/calendar/lib/field/schedule/calendar.schedule.field.component.mjs +1 -1
  9. package/esm2022/lib/form/form.angular.util.mjs +1 -1
  10. package/esm2022/lib/form/form.mjs +1 -1
  11. package/esm2022/lib/form/io/form.changes.directive.mjs +1 -1
  12. package/esm2022/lib/form/io/form.input.directive.mjs +1 -1
  13. package/esm2022/lib/formly/field/checklist/checklist.field.mjs +1 -1
  14. package/esm2022/lib/formly/field/checklist/checklist.item.field.component.mjs +1 -1
  15. package/esm2022/lib/formly/field/checklist/checklist.item.mjs +1 -1
  16. package/esm2022/lib/formly/field/selection/pickable/pickable.list.field.component.mjs +1 -1
  17. package/esm2022/lib/formly/field/selection/selection.field.mjs +1 -1
  18. package/esm2022/lib/formly/field/selection/sourceselect/sourceselect.field.component.mjs +3 -3
  19. package/esm2022/lib/formly/field/texteditor/texteditor.field.component.mjs +1 -1
  20. package/esm2022/lib/formly/field/value/array/array.field.component.mjs +1 -1
  21. package/esm2022/lib/formly/field/value/date/datetime.field.component.mjs +3 -3
  22. package/esm2022/lib/formly/field/value/date/datetime.field.mjs +1 -1
  23. package/esm2022/lib/formly/field/value/date/datetime.field.service.mjs +1 -1
  24. package/esm2022/lib/formly/field/wrapper/section.wrapper.component.mjs +1 -1
  25. package/esm2022/lib/formly/field/wrapper/style.wrapper.component.mjs +1 -1
  26. package/esm2022/lib/formly/field/wrapper/subsection.wrapper.component.mjs +1 -1
  27. package/esm2022/lib/formly/field/wrapper/toggle.wrapper.component.mjs +1 -1
  28. package/esm2022/lib/formly/form/form.form.mjs +1 -1
  29. package/esm2022/lib/formly/formly.context.directive.mjs +1 -1
  30. package/esm2022/lib/formly/formly.context.mjs +1 -1
  31. package/esm2022/lib/formly/formly.directive.mjs +1 -1
  32. package/esm2022/lib/formly/formly.form.component.mjs +1 -1
  33. package/esm2022/lib/formly/template/login.mjs +1 -1
  34. package/esm2022/mapbox/lib/field/latlng/latlng.field.marker.component.mjs +1 -1
  35. package/fesm2022/dereekb-dbx-form-calendar.mjs.map +1 -1
  36. package/fesm2022/dereekb-dbx-form-mapbox.mjs.map +1 -1
  37. package/fesm2022/dereekb-dbx-form.mjs +3 -3
  38. package/fesm2022/dereekb-dbx-form.mjs.map +1 -1
  39. package/lib/form/form.angular.util.d.ts +1 -1
  40. package/lib/form/form.d.ts +1 -1
  41. package/lib/form/io/form.changes.directive.d.ts +1 -1
  42. package/lib/form/io/form.input.directive.d.ts +1 -1
  43. package/lib/formly/field/checklist/checklist.field.d.ts +1 -1
  44. package/lib/formly/field/checklist/checklist.item.d.ts +1 -1
  45. package/lib/formly/field/checklist/checklist.item.field.component.d.ts +1 -1
  46. package/lib/formly/field/selection/pickable/pickable.list.field.component.d.ts +1 -1
  47. package/lib/formly/field/texteditor/texteditor.field.component.d.ts +1 -1
  48. package/lib/formly/field/value/array/array.field.component.d.ts +1 -1
  49. package/lib/formly/field/wrapper/section.wrapper.component.d.ts +1 -1
  50. package/lib/formly/field/wrapper/style.wrapper.component.d.ts +1 -1
  51. package/lib/formly/field/wrapper/subsection.wrapper.component.d.ts +1 -1
  52. package/lib/formly/field/wrapper/toggle.wrapper.component.d.ts +1 -1
  53. package/lib/formly/form/form.form.d.ts +1 -1
  54. package/lib/formly/formly.context.d.ts +1 -1
  55. package/lib/formly/formly.context.directive.d.ts +1 -1
  56. package/lib/formly/formly.directive.d.ts +1 -1
  57. package/lib/formly/template/login.d.ts +1 -1
  58. package/mapbox/esm2022/lib/field/latlng/latlng.field.marker.component.mjs +1 -1
  59. package/mapbox/fesm2022/dereekb-dbx-form-mapbox.mjs.map +1 -1
  60. package/mapbox/lib/field/latlng/latlng.field.marker.component.d.ts +1 -1
  61. package/mapbox/package.json +1 -1
  62. package/package.json +1 -1
@@ -110,4 +110,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
110
110
  `
111
111
  }]
112
112
  }] });
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2FibGUubGlzdC5maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZm9ybS9zcmMvbGliL2Zvcm1seS9maWVsZC9zZWxlY3Rpb24vcGlja2FibGUvcGlja2FibGUubGlzdC5maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZm9ybS9zcmMvbGliL2Zvcm1seS9maWVsZC9zZWxlY3Rpb24vcGlja2FibGUvcGlja2FibGUubGlzdC5maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVsRCxPQUFPLEVBQUUsdUNBQXVDLEVBQUUsd0NBQXdDLEVBQUUsa0JBQWtCLEVBQUUscUNBQXFDLEVBQUUscUNBQXFDLEVBQXNCLHlCQUF5QixFQUF3QixNQUFNLGtCQUFrQixDQUFDO0FBRTVSLE9BQU8sRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXhDLE9BQU8sRUFBRSxxQ0FBcUMsRUFBeUIsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7O0FBRTFHOztHQUVHO0FBSUgsTUFBTSxPQUFPLDZCQUFpQyxTQUFRLHFDQUF3QztJQUM1RixpQkFBaUIsQ0FBQyxLQUFjO1FBQzlCLE1BQU0sS0FBSyxHQUFJLEtBQStELENBQUMsS0FBSyxDQUFDO1FBQ3JGLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN6QixDQUFDO3dHQUxVLDZCQUE2Qjs0RkFBN0IsNkJBQTZCLDJFQ2QxQywrdkNBMEJBLGcrRERDYSxxQ0FBcUM7OzRGQWJyQyw2QkFBNkI7a0JBSHpDLFNBQVM7OztBQVdWLHVCQUF1QjtBQUt2QixNQUFNLE9BQU8scUNBQXlDLFNBQVEsd0NBQWtFO0lBQzlIO1FBQ0UsS0FBSyxDQUFDO1lBQ0osY0FBYyxFQUFFLHlDQUF5QztTQUMxRCxDQUFDLENBQUM7SUFDTCxDQUFDO3dHQUxVLHFDQUFxQzs0RkFBckMscUNBQXFDOzs0RkFBckMscUNBQXFDO2tCQUpqRCxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx3Q0FBd0M7b0JBQ2xELFFBQVEsRUFBRSx1Q0FBdUM7aUJBQ2xEOztBQVNEOztHQUVHO0FBT0gsTUFBTSxPQUFPLHlDQUE2QyxTQUFRLHFDQUEwQztJQUNqRyw2QkFBNkIsR0FBRyxNQUFNLENBQUMsQ0FBQSw2QkFBZ0MsQ0FBQSxDQUFDLENBQUM7SUFFbEYsNEVBQTRFO0lBRW5FLE1BQU0sR0FBZ0M7UUFDN0MsY0FBYyxFQUFFLDZDQUE2QztLQUM5RCxDQUFDO0lBRUYsSUFBSSxRQUFRO1FBQ1YsT0FBTyxDQUFDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxXQUFXLENBQUM7SUFDekQsQ0FBQztJQUVELElBQUksYUFBYTtRQUNmLElBQUksYUFBYSxHQUFnQyxRQUFRLENBQUM7UUFFMUQsSUFBSSxJQUFJLENBQUMsNkJBQTZCLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxtQ0FBbUMsRUFBRTtZQUN6SCxhQUFhLEdBQUcsTUFBTSxDQUFDO1NBQ3hCO1FBRUQsT0FBTyxhQUFhLENBQUM7SUFDdkIsQ0FBQztJQUVRLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUk7SUFDakMsbUtBQW1LO0lBQ25LLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUNyRCxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQzt3R0EzQlMseUNBQXlDOzRGQUF6Qyx5Q0FBeUMsdUNBRnpDLGtCQUFrQixDQUFDLHlDQUF5QyxDQUFDLGlEQUg5RDs7R0FFVDs7NEZBR1UseUNBQXlDO2tCQU5yRCxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRTs7R0FFVDtvQkFDRCxTQUFTLEVBQUUsa0JBQWtCLDJDQUEyQztpQkFDekU7O0FBd0NELE1BQU0sT0FBTyw2Q0FBaUQsU0FBUSxxQ0FBd0U7SUFDNUksSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQztJQUM3QixDQUFDO3dHQVhVLDZDQUE2Qzs0RkFBN0MsNkNBQTZDLDJFQVI5Qzs7Ozs7O0dBTVQ7OzRGQUVVLDZDQUE2QztrQkFUekQsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUU7Ozs7OztHQU1UO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERieEluamVjdGlvbkNvbXBvbmVudENvbmZpZyB9IGZyb20gJ0BkZXJlZWtiL2RieC1jb3JlJztcbmltcG9ydCB7IERFRkFVTFRfTElTVF9XUkFQUEVSX0RJUkVDVElWRV9URU1QTEFURSwgQWJzdHJhY3REYnhTZWxlY3Rpb25MaXN0V3JhcHBlckRpcmVjdGl2ZSwgcHJvdmlkZURieExpc3RWaWV3LCBBYnN0cmFjdERieFNlbGVjdGlvbkxpc3RWaWV3RGlyZWN0aXZlLCBBYnN0cmFjdERieFZhbHVlTGlzdFZpZXdJdGVtQ29tcG9uZW50LCBMaXN0U2VsZWN0aW9uU3RhdGUsIGFkZENvbmZpZ1RvVmFsdWVMaXN0SXRlbXMsIERieExpc3RTZWxlY3Rpb25Nb2RlIH0gZnJvbSAnQGRlcmVla2IvZGJ4LXdlYic7XG5pbXBvcnQgeyBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgbWFwLCBzaGFyZVJlcGxheSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUGlja2FibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlIH0gZnJvbSAnLi9waWNrYWJsZSc7XG5pbXBvcnQgeyBBYnN0cmFjdERieFBpY2thYmxlSXRlbUZpZWxkRGlyZWN0aXZlLCBQaWNrYWJsZUl0ZW1GaWVsZEl0ZW0gfSBmcm9tICcuL3BpY2thYmxlLmZpZWxkLmRpcmVjdGl2ZSc7XG5cbi8qKlxuICogVXNlZCBmb3IgcGlja2luZyBwcmUtc2V0IHZhbHVlcyB1c2luZyBhIHNlbGVjdGlvbiBsaXN0IGFzIHRoZSBwcmVzZW50YXRpb24uXG4gKi9cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJ3BpY2thYmxlLmxpc3QuZmllbGQuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIERieFBpY2thYmxlTGlzdEZpZWxkQ29tcG9uZW50PFQ+IGV4dGVuZHMgQWJzdHJhY3REYnhQaWNrYWJsZUl0ZW1GaWVsZERpcmVjdGl2ZTxUPiB7XG4gIG9uU2VsZWN0aW9uQ2hhbmdlKGV2ZW50OiB1bmtub3duKSB7XG4gICAgY29uc3QgaXRlbXMgPSAoZXZlbnQgYXMgTGlzdFNlbGVjdGlvblN0YXRlPFBpY2thYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZTxUPj4pLml0ZW1zO1xuICAgIGNvbnN0IHZhbHVlcyA9IGl0ZW1zLm1hcCgoeCkgPT4geC5pdGVtVmFsdWUudmFsdWUpO1xuICAgIHRoaXMuc2V0VmFsdWVzKHZhbHVlcyk7XG4gIH1cbn1cblxuLy8gTUFSSzogU2VsZWN0aW9uIExpc3RcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RieC1mb3JtLXBpY2thYmxlLWl0ZW0tZmllbGQtaXRlbS1saXN0JyxcbiAgdGVtcGxhdGU6IERFRkFVTFRfTElTVF9XUkFQUEVSX0RJUkVDVElWRV9URU1QTEFURVxufSlcbmV4cG9ydCBjbGFzcyBEYnhQaWNrYWJsZUxpc3RGaWVsZEl0ZW1MaXN0Q29tcG9uZW50PFQ+IGV4dGVuZHMgQWJzdHJhY3REYnhTZWxlY3Rpb25MaXN0V3JhcHBlckRpcmVjdGl2ZTxQaWNrYWJsZUl0ZW1GaWVsZEl0ZW08VD4+IHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoe1xuICAgICAgY29tcG9uZW50Q2xhc3M6IERieFBpY2thYmxlTGlzdEZpZWxkSXRlbUxpc3RWaWV3Q29tcG9uZW50XG4gICAgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBOT1RFOiBWYWx1ZXMgaW5wdXQgYXJlIFBpY2thYmxlSXRlbUZpZWxkSXRlbTxUPiwgYnV0IG91dHB1dCB2YWx1ZXMgYXJlIFBpY2thYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZTxUPi5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBgXG4gICAgPGRieC1zZWxlY3Rpb24tbGlzdC12aWV3LWNvbnRlbnQgW211bHRpcGxlXT1cIm11bHRpcGxlXCIgW3NlbGVjdGlvbk1vZGVdPVwic2VsZWN0aW9uTW9kZVwiIFtpdGVtc109XCJpdGVtcyQgfCBhc3luY1wiPjwvZGJ4LXNlbGVjdGlvbi1saXN0LXZpZXctY29udGVudD5cbiAgYCxcbiAgcHJvdmlkZXJzOiBwcm92aWRlRGJ4TGlzdFZpZXcoRGJ4UGlja2FibGVMaXN0RmllbGRJdGVtTGlzdFZpZXdDb21wb25lbnQpXG59KVxuZXhwb3J0IGNsYXNzIERieFBpY2thYmxlTGlzdEZpZWxkSXRlbUxpc3RWaWV3Q29tcG9uZW50PFQ+IGV4dGVuZHMgQWJzdHJhY3REYnhTZWxlY3Rpb25MaXN0Vmlld0RpcmVjdGl2ZTxhbnk+IHtcbiAgcmVhZG9ubHkgZGJ4UGlja2FibGVMaXN0RmllbGRDb21wb25lbnQgPSBpbmplY3QoRGJ4UGlja2FibGVMaXN0RmllbGRDb21wb25lbnQ8VD4pO1xuXG4gIC8vIFRPRE86IGFueSBiZWxvbmdzIGhlcmUgZm9yIG5vdywgYnV0IGl0ZW0gbGlzdCB0eXBpbmdzIG5lZWQgdG8gYmUgdXBkYXRlZC5cblxuICByZWFkb25seSBjb25maWc6IERieEluamVjdGlvbkNvbXBvbmVudENvbmZpZyA9IHtcbiAgICBjb21wb25lbnRDbGFzczogRGJ4UGlja2FibGVMaXN0RmllbGRJdGVtTGlzdFZpZXdJdGVtQ29tcG9uZW50XG4gIH07XG5cbiAgZ2V0IG11bHRpcGxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5kYnhQaWNrYWJsZUxpc3RGaWVsZENvbXBvbmVudC5waWNrT25seU9uZTtcbiAgfVxuXG4gIGdldCBzZWxlY3Rpb25Nb2RlKCk6IE1heWJlPERieExpc3RTZWxlY3Rpb25Nb2RlPiB7XG4gICAgbGV0IHNlbGVjdGlvbk1vZGU6IE1heWJlPERieExpc3RTZWxlY3Rpb25Nb2RlPiA9ICdzZWxlY3QnO1xuXG4gICAgaWYgKHRoaXMuZGJ4UGlja2FibGVMaXN0RmllbGRDb21wb25lbnQuZGlzYWJsZWQgJiYgdGhpcy5kYnhQaWNrYWJsZUxpc3RGaWVsZENvbXBvbmVudC5jaGFuZ2VTZWxlY3Rpb25Nb2RlVG9WaWV3T25EaXNhYmxlZCkge1xuICAgICAgc2VsZWN0aW9uTW9kZSA9ICd2aWV3JztcbiAgICB9XG5cbiAgICByZXR1cm4gc2VsZWN0aW9uTW9kZTtcbiAgfVxuXG4gIHJlYWRvbmx5IGl0ZW1zJCA9IHRoaXMudmFsdWVzJC5waXBlKFxuICAgIC8vIE5PVEU6IFRoaXMgY2F1c2VzIHRoZSBcInZhbHVlXCIgdG8gYmUgYSBQaWNrYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWU8VD4sIHdoaWNoIG1lYW5zIHdlIGVtaXQgUGlja2FibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlPFQ+IHRvIERieFBpY2thYmxlTGlzdEZpZWxkQ29tcG9uZW50LlxuICAgIG1hcCgoeCkgPT4gYWRkQ29uZmlnVG9WYWx1ZUxpc3RJdGVtcyh0aGlzLmNvbmZpZywgeCkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG59XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJkYngtZGVmYXVsdC1waWNrYWJsZS1pdGVtLWZpZWxkLWxpc3QtaXRlbSBkYngtZmxleC1iYXJcIj5cbiAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImRieC1pY29uLXNwYWNlclwiICpuZ0lmPVwiaWNvblwiPnt7IGljb24gfX08L21hdC1pY29uPlxuICAgICAgPHNwYW4gY2xhc3M9XCJkYngtY2hpcC1sYWJlbFwiPnt7IGxhYmVsIH19PC9zcGFuPlxuICAgICAgPHNwYW4gY2xhc3M9XCJkYngtY2hpcC1zdWJsYWJlbFwiICpuZ0lmPVwic3VibGFiZWxcIj4oe3sgc3VibGFiZWwgfX0pPC9zcGFuPlxuICAgIDwvZGl2PlxuICBgXG59KVxuZXhwb3J0IGNsYXNzIERieFBpY2thYmxlTGlzdEZpZWxkSXRlbUxpc3RWaWV3SXRlbUNvbXBvbmVudDxUPiBleHRlbmRzIEFic3RyYWN0RGJ4VmFsdWVMaXN0Vmlld0l0ZW1Db21wb25lbnQ8UGlja2FibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlPFQ+PiB7XG4gIGdldCBsYWJlbCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLml0ZW1WYWx1ZS5sYWJlbDtcbiAgfVxuXG4gIGdldCBzdWJsYWJlbCgpIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtVmFsdWUuc3VibGFiZWw7XG4gIH1cblxuICBnZXQgaWNvbigpIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtVmFsdWUuaWNvbjtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImRieC1waWNrYWJsZS1pdGVtLWZpZWxkXCI+XG4gIDxkYngtbG9hZGluZyBbY29udGV4dF09XCJjb250ZXh0XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dGaWx0ZXJJbnB1dFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImZpbHRlclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPCEtLSBDb250ZW50IC0tPlxuICAgIDxkaXYgY2xhc3M9XCJkYngtcGlja2FibGUtaXRlbS1maWVsZC1saXN0XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZGJ4LXBpY2thYmxlLWl0ZW0tZmllbGQtbGlzdC1jb250ZW50XCI+XG4gICAgICAgIDxkYngtZm9ybS1waWNrYWJsZS1pdGVtLWZpZWxkLWl0ZW0tbGlzdCBbZGlzYWJsZWRdPVwiaXNSZWFkb25seU9yRGlzYWJsZWRcIiBbc3RhdGUkXT1cImZpbHRlckl0ZW1zTG9hZGluZ1N0YXRlJFwiIChzZWxlY3Rpb25DaGFuZ2UpPVwib25TZWxlY3Rpb25DaGFuZ2UoJGV2ZW50KVwiPjwvZGJ4LWZvcm0tcGlja2FibGUtaXRlbS1maWVsZC1pdGVtLWxpc3Q+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkYngtaW5qZWN0aW9uIFtjb25maWddPVwiZm9vdGVyQ29uZmlnXCI+PC9kYngtaW5qZWN0aW9uPlxuICAgIDwvZGl2PlxuICA8L2RieC1sb2FkaW5nPlxuPC9kaXY+XG5cbjwhLS0gRmlsdGVyIElucHV0IC0tPlxuPG5nLXRlbXBsYXRlICNmaWx0ZXJUZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cImRieC1waWNrYWJsZS1pdGVtLWZpZWxkLWZpbHRlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJkYngtbGFiZWxcIj57eyBmaWx0ZXJMYWJlbCB9fTwvZGl2PlxuICAgIDxpbnB1dCBbbmFtZV09XCJuYW1lXCIgYXV0b2NvbXBsZXRlPVwie3sgYXV0b2NvbXBsZXRlIH19XCIgI2ZpbHRlck1hdElucHV0PVwibWF0SW5wdXRcIiBtYXRJbnB1dCBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIiBbZm9ybUNvbnRyb2xdPVwiaW5wdXRDdHJsXCIgLz5cbiAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgICA8ZGJ4LWxvYWRpbmcgW2xpbmVhcl09XCJ0cnVlXCIgW2NvbnRleHRdPVwiZmlsdGVyUmVzdWx0c0NvbnRleHRcIj48L2RieC1sb2FkaW5nPlxuICAgIDwhLS0gTm8gaXRlbXMgZm91bmQuIC0tPlxuICAgIDxwICpuZ0lmPVwibm9JdGVtc0F2YWlsYWJsZSQgfCBhc3luY1wiIGNsYXNzPVwiZGJ4LWxhYmVsXCI+Tm8gaXRlbXMgbWF0Y2ggdGhpcyBmaWx0ZXIuPC9wPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2FibGUubGlzdC5maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZm9ybS9zcmMvbGliL2Zvcm1seS9maWVsZC9zZWxlY3Rpb24vcGlja2FibGUvcGlja2FibGUubGlzdC5maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZm9ybS9zcmMvbGliL2Zvcm1seS9maWVsZC9zZWxlY3Rpb24vcGlja2FibGUvcGlja2FibGUubGlzdC5maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVsRCxPQUFPLEVBQUUsdUNBQXVDLEVBQUUsd0NBQXdDLEVBQUUsa0JBQWtCLEVBQUUscUNBQXFDLEVBQUUscUNBQXFDLEVBQXNCLHlCQUF5QixFQUF3QixNQUFNLGtCQUFrQixDQUFDO0FBRTVSLE9BQU8sRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXhDLE9BQU8sRUFBRSxxQ0FBcUMsRUFBeUIsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7O0FBRTFHOztHQUVHO0FBSUgsTUFBTSxPQUFPLDZCQUFpQyxTQUFRLHFDQUF3QztJQUM1RixpQkFBaUIsQ0FBQyxLQUFjO1FBQzlCLE1BQU0sS0FBSyxHQUFJLEtBQStELENBQUMsS0FBSyxDQUFDO1FBQ3JGLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN6QixDQUFDO3dHQUxVLDZCQUE2Qjs0RkFBN0IsNkJBQTZCLDJFQ2QxQywrdkNBMEJBLGcrRERDYSxxQ0FBcUM7OzRGQWJyQyw2QkFBNkI7a0JBSHpDLFNBQVM7OztBQVdWLHVCQUF1QjtBQUt2QixNQUFNLE9BQU8scUNBQXlDLFNBQVEsd0NBQWtFO0lBQzlIO1FBQ0UsS0FBSyxDQUFDO1lBQ0osY0FBYyxFQUFFLHlDQUF5QztTQUMxRCxDQUFDLENBQUM7SUFDTCxDQUFDO3dHQUxVLHFDQUFxQzs0RkFBckMscUNBQXFDOzs0RkFBckMscUNBQXFDO2tCQUpqRCxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx3Q0FBd0M7b0JBQ2xELFFBQVEsRUFBRSx1Q0FBdUM7aUJBQ2xEOztBQVNEOztHQUVHO0FBT0gsTUFBTSxPQUFPLHlDQUE2QyxTQUFRLHFDQUEwQztJQUNqRyw2QkFBNkIsR0FBRyxNQUFNLENBQUMsQ0FBQSw2QkFBZ0MsQ0FBQSxDQUFDLENBQUM7SUFFbEYsNEVBQTRFO0lBRW5FLE1BQU0sR0FBZ0M7UUFDN0MsY0FBYyxFQUFFLDZDQUE2QztLQUM5RCxDQUFDO0lBRUYsSUFBSSxRQUFRO1FBQ1YsT0FBTyxDQUFDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxXQUFXLENBQUM7SUFDekQsQ0FBQztJQUVELElBQUksYUFBYTtRQUNmLElBQUksYUFBYSxHQUFnQyxRQUFRLENBQUM7UUFFMUQsSUFBSSxJQUFJLENBQUMsNkJBQTZCLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxtQ0FBbUMsRUFBRTtZQUN6SCxhQUFhLEdBQUcsTUFBTSxDQUFDO1NBQ3hCO1FBRUQsT0FBTyxhQUFhLENBQUM7SUFDdkIsQ0FBQztJQUVRLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUk7SUFDakMsbUtBQW1LO0lBQ25LLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUNyRCxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQzt3R0EzQlMseUNBQXlDOzRGQUF6Qyx5Q0FBeUMsdUNBRnpDLGtCQUFrQixDQUFDLHlDQUF5QyxDQUFDLGlEQUg5RDs7R0FFVDs7NEZBR1UseUNBQXlDO2tCQU5yRCxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRTs7R0FFVDtvQkFDRCxTQUFTLEVBQUUsa0JBQWtCLDJDQUEyQztpQkFDekU7O0FBd0NELE1BQU0sT0FBTyw2Q0FBaUQsU0FBUSxxQ0FBd0U7SUFDNUksSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQztJQUM3QixDQUFDO3dHQVhVLDZDQUE2Qzs0RkFBN0MsNkNBQTZDLDJFQVI5Qzs7Ozs7O0dBTVQ7OzRGQUVVLDZDQUE2QztrQkFUekQsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUU7Ozs7OztHQU1UO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERieEluamVjdGlvbkNvbXBvbmVudENvbmZpZyB9IGZyb20gJ0BkZXJlZWtiL2RieC1jb3JlJztcbmltcG9ydCB7IERFRkFVTFRfTElTVF9XUkFQUEVSX0RJUkVDVElWRV9URU1QTEFURSwgQWJzdHJhY3REYnhTZWxlY3Rpb25MaXN0V3JhcHBlckRpcmVjdGl2ZSwgcHJvdmlkZURieExpc3RWaWV3LCBBYnN0cmFjdERieFNlbGVjdGlvbkxpc3RWaWV3RGlyZWN0aXZlLCBBYnN0cmFjdERieFZhbHVlTGlzdFZpZXdJdGVtQ29tcG9uZW50LCBMaXN0U2VsZWN0aW9uU3RhdGUsIGFkZENvbmZpZ1RvVmFsdWVMaXN0SXRlbXMsIERieExpc3RTZWxlY3Rpb25Nb2RlIH0gZnJvbSAnQGRlcmVla2IvZGJ4LXdlYic7XG5pbXBvcnQgeyB0eXBlIE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBtYXAsIHNoYXJlUmVwbGF5IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBQaWNrYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWUgfSBmcm9tICcuL3BpY2thYmxlJztcbmltcG9ydCB7IEFic3RyYWN0RGJ4UGlja2FibGVJdGVtRmllbGREaXJlY3RpdmUsIFBpY2thYmxlSXRlbUZpZWxkSXRlbSB9IGZyb20gJy4vcGlja2FibGUuZmllbGQuZGlyZWN0aXZlJztcblxuLyoqXG4gKiBVc2VkIGZvciBwaWNraW5nIHByZS1zZXQgdmFsdWVzIHVzaW5nIGEgc2VsZWN0aW9uIGxpc3QgYXMgdGhlIHByZXNlbnRhdGlvbi5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAncGlja2FibGUubGlzdC5maWVsZC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgRGJ4UGlja2FibGVMaXN0RmllbGRDb21wb25lbnQ8VD4gZXh0ZW5kcyBBYnN0cmFjdERieFBpY2thYmxlSXRlbUZpZWxkRGlyZWN0aXZlPFQ+IHtcbiAgb25TZWxlY3Rpb25DaGFuZ2UoZXZlbnQ6IHVua25vd24pIHtcbiAgICBjb25zdCBpdGVtcyA9IChldmVudCBhcyBMaXN0U2VsZWN0aW9uU3RhdGU8UGlja2FibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlPFQ+PikuaXRlbXM7XG4gICAgY29uc3QgdmFsdWVzID0gaXRlbXMubWFwKCh4KSA9PiB4Lml0ZW1WYWx1ZS52YWx1ZSk7XG4gICAgdGhpcy5zZXRWYWx1ZXModmFsdWVzKTtcbiAgfVxufVxuXG4vLyBNQVJLOiBTZWxlY3Rpb24gTGlzdFxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGJ4LWZvcm0tcGlja2FibGUtaXRlbS1maWVsZC1pdGVtLWxpc3QnLFxuICB0ZW1wbGF0ZTogREVGQVVMVF9MSVNUX1dSQVBQRVJfRElSRUNUSVZFX1RFTVBMQVRFXG59KVxuZXhwb3J0IGNsYXNzIERieFBpY2thYmxlTGlzdEZpZWxkSXRlbUxpc3RDb21wb25lbnQ8VD4gZXh0ZW5kcyBBYnN0cmFjdERieFNlbGVjdGlvbkxpc3RXcmFwcGVyRGlyZWN0aXZlPFBpY2thYmxlSXRlbUZpZWxkSXRlbTxUPj4ge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcih7XG4gICAgICBjb21wb25lbnRDbGFzczogRGJ4UGlja2FibGVMaXN0RmllbGRJdGVtTGlzdFZpZXdDb21wb25lbnRcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIE5PVEU6IFZhbHVlcyBpbnB1dCBhcmUgUGlja2FibGVJdGVtRmllbGRJdGVtPFQ+LCBidXQgb3V0cHV0IHZhbHVlcyBhcmUgUGlja2FibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlPFQ+LlxuICovXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGJ4LXNlbGVjdGlvbi1saXN0LXZpZXctY29udGVudCBbbXVsdGlwbGVdPVwibXVsdGlwbGVcIiBbc2VsZWN0aW9uTW9kZV09XCJzZWxlY3Rpb25Nb2RlXCIgW2l0ZW1zXT1cIml0ZW1zJCB8IGFzeW5jXCI+PC9kYngtc2VsZWN0aW9uLWxpc3Qtdmlldy1jb250ZW50PlxuICBgLFxuICBwcm92aWRlcnM6IHByb3ZpZGVEYnhMaXN0VmlldyhEYnhQaWNrYWJsZUxpc3RGaWVsZEl0ZW1MaXN0Vmlld0NvbXBvbmVudClcbn0pXG5leHBvcnQgY2xhc3MgRGJ4UGlja2FibGVMaXN0RmllbGRJdGVtTGlzdFZpZXdDb21wb25lbnQ8VD4gZXh0ZW5kcyBBYnN0cmFjdERieFNlbGVjdGlvbkxpc3RWaWV3RGlyZWN0aXZlPGFueT4ge1xuICByZWFkb25seSBkYnhQaWNrYWJsZUxpc3RGaWVsZENvbXBvbmVudCA9IGluamVjdChEYnhQaWNrYWJsZUxpc3RGaWVsZENvbXBvbmVudDxUPik7XG5cbiAgLy8gVE9ETzogYW55IGJlbG9uZ3MgaGVyZSBmb3Igbm93LCBidXQgaXRlbSBsaXN0IHR5cGluZ3MgbmVlZCB0byBiZSB1cGRhdGVkLlxuXG4gIHJlYWRvbmx5IGNvbmZpZzogRGJ4SW5qZWN0aW9uQ29tcG9uZW50Q29uZmlnID0ge1xuICAgIGNvbXBvbmVudENsYXNzOiBEYnhQaWNrYWJsZUxpc3RGaWVsZEl0ZW1MaXN0Vmlld0l0ZW1Db21wb25lbnRcbiAgfTtcblxuICBnZXQgbXVsdGlwbGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmRieFBpY2thYmxlTGlzdEZpZWxkQ29tcG9uZW50LnBpY2tPbmx5T25lO1xuICB9XG5cbiAgZ2V0IHNlbGVjdGlvbk1vZGUoKTogTWF5YmU8RGJ4TGlzdFNlbGVjdGlvbk1vZGU+IHtcbiAgICBsZXQgc2VsZWN0aW9uTW9kZTogTWF5YmU8RGJ4TGlzdFNlbGVjdGlvbk1vZGU+ID0gJ3NlbGVjdCc7XG5cbiAgICBpZiAodGhpcy5kYnhQaWNrYWJsZUxpc3RGaWVsZENvbXBvbmVudC5kaXNhYmxlZCAmJiB0aGlzLmRieFBpY2thYmxlTGlzdEZpZWxkQ29tcG9uZW50LmNoYW5nZVNlbGVjdGlvbk1vZGVUb1ZpZXdPbkRpc2FibGVkKSB7XG4gICAgICBzZWxlY3Rpb25Nb2RlID0gJ3ZpZXcnO1xuICAgIH1cblxuICAgIHJldHVybiBzZWxlY3Rpb25Nb2RlO1xuICB9XG5cbiAgcmVhZG9ubHkgaXRlbXMkID0gdGhpcy52YWx1ZXMkLnBpcGUoXG4gICAgLy8gTk9URTogVGhpcyBjYXVzZXMgdGhlIFwidmFsdWVcIiB0byBiZSBhIFBpY2thYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZTxUPiwgd2hpY2ggbWVhbnMgd2UgZW1pdCBQaWNrYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWU8VD4gdG8gRGJ4UGlja2FibGVMaXN0RmllbGRDb21wb25lbnQuXG4gICAgbWFwKCh4KSA9PiBhZGRDb25maWdUb1ZhbHVlTGlzdEl0ZW1zKHRoaXMuY29uZmlnLCB4KSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcbn1cblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImRieC1kZWZhdWx0LXBpY2thYmxlLWl0ZW0tZmllbGQtbGlzdC1pdGVtIGRieC1mbGV4LWJhclwiPlxuICAgICAgPG1hdC1pY29uIGNsYXNzPVwiZGJ4LWljb24tc3BhY2VyXCIgKm5nSWY9XCJpY29uXCI+e3sgaWNvbiB9fTwvbWF0LWljb24+XG4gICAgICA8c3BhbiBjbGFzcz1cImRieC1jaGlwLWxhYmVsXCI+e3sgbGFiZWwgfX08L3NwYW4+XG4gICAgICA8c3BhbiBjbGFzcz1cImRieC1jaGlwLXN1YmxhYmVsXCIgKm5nSWY9XCJzdWJsYWJlbFwiPih7eyBzdWJsYWJlbCB9fSk8L3NwYW4+XG4gICAgPC9kaXY+XG4gIGBcbn0pXG5leHBvcnQgY2xhc3MgRGJ4UGlja2FibGVMaXN0RmllbGRJdGVtTGlzdFZpZXdJdGVtQ29tcG9uZW50PFQ+IGV4dGVuZHMgQWJzdHJhY3REYnhWYWx1ZUxpc3RWaWV3SXRlbUNvbXBvbmVudDxQaWNrYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWU8VD4+IHtcbiAgZ2V0IGxhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbVZhbHVlLmxhYmVsO1xuICB9XG5cbiAgZ2V0IHN1YmxhYmVsKCkge1xuICAgIHJldHVybiB0aGlzLml0ZW1WYWx1ZS5zdWJsYWJlbDtcbiAgfVxuXG4gIGdldCBpY29uKCkge1xuICAgIHJldHVybiB0aGlzLml0ZW1WYWx1ZS5pY29uO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZGJ4LXBpY2thYmxlLWl0ZW0tZmllbGRcIj5cbiAgPGRieC1sb2FkaW5nIFtjb250ZXh0XT1cImNvbnRleHRcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd0ZpbHRlcklucHV0XCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZmlsdGVyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8IS0tIENvbnRlbnQgLS0+XG4gICAgPGRpdiBjbGFzcz1cImRieC1waWNrYWJsZS1pdGVtLWZpZWxkLWxpc3RcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJkYngtcGlja2FibGUtaXRlbS1maWVsZC1saXN0LWNvbnRlbnRcIj5cbiAgICAgICAgPGRieC1mb3JtLXBpY2thYmxlLWl0ZW0tZmllbGQtaXRlbS1saXN0IFtkaXNhYmxlZF09XCJpc1JlYWRvbmx5T3JEaXNhYmxlZFwiIFtzdGF0ZSRdPVwiZmlsdGVySXRlbXNMb2FkaW5nU3RhdGUkXCIgKHNlbGVjdGlvbkNoYW5nZSk9XCJvblNlbGVjdGlvbkNoYW5nZSgkZXZlbnQpXCI+PC9kYngtZm9ybS1waWNrYWJsZS1pdGVtLWZpZWxkLWl0ZW0tbGlzdD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRieC1pbmplY3Rpb24gW2NvbmZpZ109XCJmb290ZXJDb25maWdcIj48L2RieC1pbmplY3Rpb24+XG4gICAgPC9kaXY+XG4gIDwvZGJ4LWxvYWRpbmc+XG48L2Rpdj5cblxuPCEtLSBGaWx0ZXIgSW5wdXQgLS0+XG48bmctdGVtcGxhdGUgI2ZpbHRlclRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwiZGJ4LXBpY2thYmxlLWl0ZW0tZmllbGQtZmlsdGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImRieC1sYWJlbFwiPnt7IGZpbHRlckxhYmVsIH19PC9kaXY+XG4gICAgPGlucHV0IFtuYW1lXT1cIm5hbWVcIiBhdXRvY29tcGxldGU9XCJ7eyBhdXRvY29tcGxldGUgfX1cIiAjZmlsdGVyTWF0SW5wdXQ9XCJtYXRJbnB1dFwiIG1hdElucHV0IFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiIFtmb3JtQ29udHJvbF09XCJpbnB1dEN0cmxcIiAvPlxuICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgIDxkYngtbG9hZGluZyBbbGluZWFyXT1cInRydWVcIiBbY29udGV4dF09XCJmaWx0ZXJSZXN1bHRzQ29udGV4dFwiPjwvZGJ4LWxvYWRpbmc+XG4gICAgPCEtLSBObyBpdGVtcyBmb3VuZC4gLS0+XG4gICAgPHAgKm5nSWY9XCJub0l0ZW1zQXZhaWxhYmxlJCB8IGFzeW5jXCIgY2xhc3M9XCJkYngtbGFiZWxcIj5ObyBpdGVtcyBtYXRjaCB0aGlzIGZpbHRlci48L3A+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -36,4 +36,4 @@ export function addValueSelectionOptionFunction(label) {
36
36
  }
37
37
  };
38
38
  }
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLmZpZWxkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZvcm0vc3JjL2xpYi9mb3JtbHkvZmllbGQvc2VsZWN0aW9uL3NlbGVjdGlvbi5maWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNoRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUF1QixNQUFNLGVBQWUsQ0FBQztBQUVyRixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNCLE9BQU8sRUFBMEIsV0FBVyxFQUFrRSw0QkFBNEIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQXNDN0osTUFBTSxVQUFVLG1CQUFtQixDQUFJLE1BQW9DO0lBQ3pFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxHQUFHLEtBQUssRUFBRSxjQUFjLEdBQUcsS0FBSyxFQUFFLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLEdBQUcsTUFBTSxDQUFDO0lBQ2hKLElBQUkscUJBQXlELENBQUM7SUFFOUQsSUFBSSxvQkFBb0IsRUFBRTtRQUN4QixxQkFBcUIsR0FBRztZQUN0QixlQUFlLEVBQUUsT0FBTyxvQkFBb0IsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUUsb0JBQStCO1NBQzdHLENBQUM7S0FDSDtJQUVELE1BQU0sT0FBTyxHQUFHLGNBQWMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsK0JBQStCLENBQUMsT0FBTyxjQUFjLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO0lBQ3ZMLElBQUksT0FBTyxHQUFvQyxTQUFTLENBQUM7SUFFekQsT0FBTyxHQUFHLE1BQU0sQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFFMUUsT0FBTyxXQUFXLENBQUM7UUFDakIsR0FBRztRQUNILElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsUUFBUTtRQUN6QyxHQUFHLDRCQUE0QixDQUFDLE1BQU0sRUFBRTtZQUN0QyxHQUFHLGlCQUFpQjtZQUNwQixPQUFPO1lBQ1AsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRO1lBQ3pCLEdBQUcscUJBQXFCO1NBQ3pCLENBQUM7UUFDRixPQUFPO0tBQ1IsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sVUFBVSwrQkFBK0IsQ0FBSSxLQUEwQjtJQUMzRSxPQUFPLENBQUMsT0FBa0MsRUFBRSxFQUFFO1FBQzVDLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFFLENBQStCLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFFekYsSUFBSSxRQUFRLEVBQUU7WUFDWixPQUFPLE9BQU8sQ0FBQztTQUNoQjthQUFNO1lBQ0wsT0FBTyxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDO1NBQzdDO0lBQ0gsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFzT2JzZXJ2YWJsZSwgT2JzZXJ2YWJsZU9yVmFsdWUgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IGNvbnZlcnRNYXliZVRvQXJyYXksIGZpcnN0VmFsdWUsIExhYmVsZWRWYWx1ZSwgTWF5YmUgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IEZvcm1seUZpZWxkQ29uZmlnIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERlc2NyaXB0aW9uRmllbGRDb25maWcsIGZvcm1seUZpZWxkLCBGb3JtbHlWYWx1ZVBhcnNlciwgTGFiZWxlZEZpZWxkQ29uZmlnLCBNYXRlcmlhbEZvcm1GaWVsZENvbmZpZywgcHJvcHNBbmRDb25maWdGb3JGaWVsZENvbmZpZyB9IGZyb20gJy4uL2ZpZWxkJztcblxuZXhwb3J0IGludGVyZmFjZSBWYWx1ZVNlbGVjdGlvbk9wdGlvbldpdGhWYWx1ZTxUPiBleHRlbmRzIExhYmVsZWRWYWx1ZTxUPiB7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBWYWx1ZVNlbGVjdGlvbk9wdGlvbkNsZWFyIHtcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIGNsZWFyOiB0cnVlO1xufVxuXG5leHBvcnQgdHlwZSBWYWx1ZVNlbGVjdGlvbk9wdGlvbjxUPiA9IFZhbHVlU2VsZWN0aW9uT3B0aW9uV2l0aFZhbHVlPFQ+IHwgVmFsdWVTZWxlY3Rpb25PcHRpb25DbGVhcjtcblxuZXhwb3J0IGludGVyZmFjZSBWYWx1ZVNlbGVjdGlvbkZpZWxkQ29uZmlnPFQ+IGV4dGVuZHMgTGFiZWxlZEZpZWxkQ29uZmlnLCBEZXNjcmlwdGlvbkZpZWxkQ29uZmlnLCBNYXRlcmlhbEZvcm1GaWVsZENvbmZpZyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byB1c2UgdGhlIG5hdGl2ZSBzZWxlY3QuXG4gICAqXG4gICAqIEJlIHN1cmUgdG8gaW1wb3J0IEZvcm1seU1hdE5hdGl2ZVNlbGVjdE1vZHVsZS5cbiAgICovXG4gIHJlYWRvbmx5IG5hdGl2ZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBhZGQgYSBjbGVhciBvcHRpb24gdG8gdGhlIGlucHV0IHZhbHVlcy5cbiAgICovXG4gIHJlYWRvbmx5IGFkZENsZWFyT3B0aW9uPzogc3RyaW5nIHwgYm9vbGVhbjtcbiAgLyoqXG4gICAqIFZhbHVlcyB0byBzZWxlY3QgZnJvbS5cbiAgICovXG4gIHJlYWRvbmx5IG9wdGlvbnM6IE9ic2VydmFibGVPclZhbHVlPFZhbHVlU2VsZWN0aW9uT3B0aW9uPFQ+W10+O1xuICAvKipcbiAgICogQWxsb3cgc2VsZWN0aW5nIG11bHRpcGxlIHZhbHVlcyBhbmQgcmV0dXJuIGFuIGFycmF5LlxuICAgKi9cbiAgcmVhZG9ubHkgbXVsdGlwbGU/OiBib29sZWFuO1xuICAvKipcbiAgICogVGhlIHNlbGVjdCBhbGwgb3B0aW9uIGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICByZWFkb25seSBzZWxlY3RBbGxPcHRpb24/OiB0cnVlIHwgc3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFsdWVTZWxlY3Rpb25GaWVsZDxUPihjb25maWc6IFZhbHVlU2VsZWN0aW9uRmllbGRDb25maWc8VD4pOiBGb3JtbHlGaWVsZENvbmZpZyB7XG4gIGNvbnN0IHsga2V5LCBuYXRpdmUgPSBmYWxzZSwgYWRkQ2xlYXJPcHRpb24gPSBmYWxzZSwgc2VsZWN0QWxsT3B0aW9uOiBpbnB1dFNlbGVjdEFsbE9wdGlvbiwgb3B0aW9uczogaW5wdXRPcHRpb25zLCBtYXRlcmlhbEZvcm1GaWVsZCB9ID0gY29uZmlnO1xuICBsZXQgc2VsZWN0QWxsT3B0aW9uQ29uZmlnOiBNYXliZTx7IHNlbGVjdEFsbE9wdGlvbjogc3RyaW5nIH0+O1xuXG4gIGlmIChpbnB1dFNlbGVjdEFsbE9wdGlvbikge1xuICAgIHNlbGVjdEFsbE9wdGlvbkNvbmZpZyA9IHtcbiAgICAgIHNlbGVjdEFsbE9wdGlvbjogdHlwZW9mIGlucHV0U2VsZWN0QWxsT3B0aW9uID09PSAnYm9vbGVhbicgPyAnU2VsZWN0IEFsbCcgOiAoaW5wdXRTZWxlY3RBbGxPcHRpb24gYXMgc3RyaW5nKVxuICAgIH07XG4gIH1cblxuICBjb25zdCBvcHRpb25zID0gYWRkQ2xlYXJPcHRpb24gPyBhc09ic2VydmFibGUoaW5wdXRPcHRpb25zKS5waXBlKG1hcChhZGRWYWx1ZVNlbGVjdGlvbk9wdGlvbkZ1bmN0aW9uKHR5cGVvZiBhZGRDbGVhck9wdGlvbiA9PT0gJ3N0cmluZycgPyBhZGRDbGVhck9wdGlvbiA6IHVuZGVmaW5lZCkpKSA6IGlucHV0T3B0aW9ucztcbiAgbGV0IHBhcnNlcnM6IEZvcm1seVZhbHVlUGFyc2VyW10gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbiAgcGFyc2VycyA9IGNvbmZpZy5tdWx0aXBsZSAhPT0gdHJ1ZSA/IFtmaXJzdFZhbHVlXSA6IFtjb252ZXJ0TWF5YmVUb0FycmF5XTtcblxuICByZXR1cm4gZm9ybWx5RmllbGQoe1xuICAgIGtleSxcbiAgICB0eXBlOiBuYXRpdmUgPyAnbmF0aXZlLXNlbGVjdCcgOiAnc2VsZWN0JyxcbiAgICAuLi5wcm9wc0FuZENvbmZpZ0ZvckZpZWxkQ29uZmlnKGNvbmZpZywge1xuICAgICAgLi4ubWF0ZXJpYWxGb3JtRmllbGQsXG4gICAgICBvcHRpb25zLFxuICAgICAgbXVsdGlwbGU6IGNvbmZpZy5tdWx0aXBsZSxcbiAgICAgIC4uLnNlbGVjdEFsbE9wdGlvbkNvbmZpZ1xuICAgIH0pLFxuICAgIHBhcnNlcnNcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhZGRWYWx1ZVNlbGVjdGlvbk9wdGlvbkZ1bmN0aW9uPFQ+KGxhYmVsPzogc3RyaW5nIHwgdW5kZWZpbmVkKTogKG9wdGlvbnM6IFZhbHVlU2VsZWN0aW9uT3B0aW9uPFQ+W10pID0+IFZhbHVlU2VsZWN0aW9uT3B0aW9uPFQ+W10ge1xuICByZXR1cm4gKG9wdGlvbnM6IFZhbHVlU2VsZWN0aW9uT3B0aW9uPFQ+W10pID0+IHtcbiAgICBjb25zdCBoYXNDbGVhciA9IG9wdGlvbnMuZmluZEluZGV4KCh4KSA9PiAoeCBhcyBWYWx1ZVNlbGVjdGlvbk9wdGlvbkNsZWFyKS5jbGVhcikgIT09IC0xO1xuXG4gICAgaWYgKGhhc0NsZWFyKSB7XG4gICAgICByZXR1cm4gb3B0aW9ucztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFt7IGxhYmVsLCBjbGVhcjogdHJ1ZSB9LCAuLi5vcHRpb25zXTtcbiAgICB9XG4gIH07XG59XG4iXX0=
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLmZpZWxkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZvcm0vc3JjL2xpYi9mb3JtbHkvZmllbGQvc2VsZWN0aW9uL3NlbGVjdGlvbi5maWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNoRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUUxRixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNCLE9BQU8sRUFBMEIsV0FBVyxFQUFrRSw0QkFBNEIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQXNDN0osTUFBTSxVQUFVLG1CQUFtQixDQUFJLE1BQW9DO0lBQ3pFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxHQUFHLEtBQUssRUFBRSxjQUFjLEdBQUcsS0FBSyxFQUFFLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLEdBQUcsTUFBTSxDQUFDO0lBQ2hKLElBQUkscUJBQXlELENBQUM7SUFFOUQsSUFBSSxvQkFBb0IsRUFBRTtRQUN4QixxQkFBcUIsR0FBRztZQUN0QixlQUFlLEVBQUUsT0FBTyxvQkFBb0IsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUUsb0JBQStCO1NBQzdHLENBQUM7S0FDSDtJQUVELE1BQU0sT0FBTyxHQUFHLGNBQWMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsK0JBQStCLENBQUMsT0FBTyxjQUFjLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO0lBQ3ZMLElBQUksT0FBTyxHQUFvQyxTQUFTLENBQUM7SUFFekQsT0FBTyxHQUFHLE1BQU0sQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFFMUUsT0FBTyxXQUFXLENBQUM7UUFDakIsR0FBRztRQUNILElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsUUFBUTtRQUN6QyxHQUFHLDRCQUE0QixDQUFDLE1BQU0sRUFBRTtZQUN0QyxHQUFHLGlCQUFpQjtZQUNwQixPQUFPO1lBQ1AsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRO1lBQ3pCLEdBQUcscUJBQXFCO1NBQ3pCLENBQUM7UUFDRixPQUFPO0tBQ1IsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sVUFBVSwrQkFBK0IsQ0FBSSxLQUEwQjtJQUMzRSxPQUFPLENBQUMsT0FBa0MsRUFBRSxFQUFFO1FBQzVDLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFFLENBQStCLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFFekYsSUFBSSxRQUFRLEVBQUU7WUFDWixPQUFPLE9BQU8sQ0FBQztTQUNoQjthQUFNO1lBQ0wsT0FBTyxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDO1NBQzdDO0lBQ0gsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFzT2JzZXJ2YWJsZSwgT2JzZXJ2YWJsZU9yVmFsdWUgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IGNvbnZlcnRNYXliZVRvQXJyYXksIGZpcnN0VmFsdWUsIExhYmVsZWRWYWx1ZSwgdHlwZSBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgRm9ybWx5RmllbGRDb25maWcgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGVzY3JpcHRpb25GaWVsZENvbmZpZywgZm9ybWx5RmllbGQsIEZvcm1seVZhbHVlUGFyc2VyLCBMYWJlbGVkRmllbGRDb25maWcsIE1hdGVyaWFsRm9ybUZpZWxkQ29uZmlnLCBwcm9wc0FuZENvbmZpZ0ZvckZpZWxkQ29uZmlnIH0gZnJvbSAnLi4vZmllbGQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFZhbHVlU2VsZWN0aW9uT3B0aW9uV2l0aFZhbHVlPFQ+IGV4dGVuZHMgTGFiZWxlZFZhbHVlPFQ+IHtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFZhbHVlU2VsZWN0aW9uT3B0aW9uQ2xlYXIge1xuICBsYWJlbD86IHN0cmluZztcbiAgY2xlYXI6IHRydWU7XG59XG5cbmV4cG9ydCB0eXBlIFZhbHVlU2VsZWN0aW9uT3B0aW9uPFQ+ID0gVmFsdWVTZWxlY3Rpb25PcHRpb25XaXRoVmFsdWU8VD4gfCBWYWx1ZVNlbGVjdGlvbk9wdGlvbkNsZWFyO1xuXG5leHBvcnQgaW50ZXJmYWNlIFZhbHVlU2VsZWN0aW9uRmllbGRDb25maWc8VD4gZXh0ZW5kcyBMYWJlbGVkRmllbGRDb25maWcsIERlc2NyaXB0aW9uRmllbGRDb25maWcsIE1hdGVyaWFsRm9ybUZpZWxkQ29uZmlnIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIHVzZSB0aGUgbmF0aXZlIHNlbGVjdC5cbiAgICpcbiAgICogQmUgc3VyZSB0byBpbXBvcnQgRm9ybWx5TWF0TmF0aXZlU2VsZWN0TW9kdWxlLlxuICAgKi9cbiAgcmVhZG9ubHkgbmF0aXZlPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIGFkZCBhIGNsZWFyIG9wdGlvbiB0byB0aGUgaW5wdXQgdmFsdWVzLlxuICAgKi9cbiAgcmVhZG9ubHkgYWRkQ2xlYXJPcHRpb24/OiBzdHJpbmcgfCBib29sZWFuO1xuICAvKipcbiAgICogVmFsdWVzIHRvIHNlbGVjdCBmcm9tLlxuICAgKi9cbiAgcmVhZG9ubHkgb3B0aW9uczogT2JzZXJ2YWJsZU9yVmFsdWU8VmFsdWVTZWxlY3Rpb25PcHRpb248VD5bXT47XG4gIC8qKlxuICAgKiBBbGxvdyBzZWxlY3RpbmcgbXVsdGlwbGUgdmFsdWVzIGFuZCByZXR1cm4gYW4gYXJyYXkuXG4gICAqL1xuICByZWFkb25seSBtdWx0aXBsZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBUaGUgc2VsZWN0IGFsbCBvcHRpb24gY29uZmlndXJhdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IHNlbGVjdEFsbE9wdGlvbj86IHRydWUgfCBzdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWx1ZVNlbGVjdGlvbkZpZWxkPFQ+KGNvbmZpZzogVmFsdWVTZWxlY3Rpb25GaWVsZENvbmZpZzxUPik6IEZvcm1seUZpZWxkQ29uZmlnIHtcbiAgY29uc3QgeyBrZXksIG5hdGl2ZSA9IGZhbHNlLCBhZGRDbGVhck9wdGlvbiA9IGZhbHNlLCBzZWxlY3RBbGxPcHRpb246IGlucHV0U2VsZWN0QWxsT3B0aW9uLCBvcHRpb25zOiBpbnB1dE9wdGlvbnMsIG1hdGVyaWFsRm9ybUZpZWxkIH0gPSBjb25maWc7XG4gIGxldCBzZWxlY3RBbGxPcHRpb25Db25maWc6IE1heWJlPHsgc2VsZWN0QWxsT3B0aW9uOiBzdHJpbmcgfT47XG5cbiAgaWYgKGlucHV0U2VsZWN0QWxsT3B0aW9uKSB7XG4gICAgc2VsZWN0QWxsT3B0aW9uQ29uZmlnID0ge1xuICAgICAgc2VsZWN0QWxsT3B0aW9uOiB0eXBlb2YgaW5wdXRTZWxlY3RBbGxPcHRpb24gPT09ICdib29sZWFuJyA/ICdTZWxlY3QgQWxsJyA6IChpbnB1dFNlbGVjdEFsbE9wdGlvbiBhcyBzdHJpbmcpXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0IG9wdGlvbnMgPSBhZGRDbGVhck9wdGlvbiA/IGFzT2JzZXJ2YWJsZShpbnB1dE9wdGlvbnMpLnBpcGUobWFwKGFkZFZhbHVlU2VsZWN0aW9uT3B0aW9uRnVuY3Rpb24odHlwZW9mIGFkZENsZWFyT3B0aW9uID09PSAnc3RyaW5nJyA/IGFkZENsZWFyT3B0aW9uIDogdW5kZWZpbmVkKSkpIDogaW5wdXRPcHRpb25zO1xuICBsZXQgcGFyc2VyczogRm9ybWx5VmFsdWVQYXJzZXJbXSB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICBwYXJzZXJzID0gY29uZmlnLm11bHRpcGxlICE9PSB0cnVlID8gW2ZpcnN0VmFsdWVdIDogW2NvbnZlcnRNYXliZVRvQXJyYXldO1xuXG4gIHJldHVybiBmb3JtbHlGaWVsZCh7XG4gICAga2V5LFxuICAgIHR5cGU6IG5hdGl2ZSA/ICduYXRpdmUtc2VsZWN0JyA6ICdzZWxlY3QnLFxuICAgIC4uLnByb3BzQW5kQ29uZmlnRm9yRmllbGRDb25maWcoY29uZmlnLCB7XG4gICAgICAuLi5tYXRlcmlhbEZvcm1GaWVsZCxcbiAgICAgIG9wdGlvbnMsXG4gICAgICBtdWx0aXBsZTogY29uZmlnLm11bHRpcGxlLFxuICAgICAgLi4uc2VsZWN0QWxsT3B0aW9uQ29uZmlnXG4gICAgfSksXG4gICAgcGFyc2Vyc1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFkZFZhbHVlU2VsZWN0aW9uT3B0aW9uRnVuY3Rpb248VD4obGFiZWw/OiBzdHJpbmcgfCB1bmRlZmluZWQpOiAob3B0aW9uczogVmFsdWVTZWxlY3Rpb25PcHRpb248VD5bXSkgPT4gVmFsdWVTZWxlY3Rpb25PcHRpb248VD5bXSB7XG4gIHJldHVybiAob3B0aW9uczogVmFsdWVTZWxlY3Rpb25PcHRpb248VD5bXSkgPT4ge1xuICAgIGNvbnN0IGhhc0NsZWFyID0gb3B0aW9ucy5maW5kSW5kZXgoKHgpID0+ICh4IGFzIFZhbHVlU2VsZWN0aW9uT3B0aW9uQ2xlYXIpLmNsZWFyKSAhPT0gLTE7XG5cbiAgICBpZiAoaGFzQ2xlYXIpIHtcbiAgICAgIHJldHVybiBvcHRpb25zO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gW3sgbGFiZWwsIGNsZWFyOiB0cnVlIH0sIC4uLm9wdGlvbnNdO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ==
@@ -1,7 +1,7 @@
1
1
  import { filterMaybe, isLoadingStateWithDefinedValue, isLoadingStateLoading, startWithBeginLoading, SubscriptionObject, successResult, beginLoading, mapLoadingStateValueWithOperator, loadingStateContext, valueFromLoadingState } from '@dereekb/rxjs';
2
2
  import { Component, ElementRef, ViewChild } from '@angular/core';
3
3
  import { distinctUntilChanged, map, switchMap, shareReplay, startWith, mergeMap, scan, BehaviorSubject, tap, first, combineLatest, of } from 'rxjs';
4
- import { addToSetCopy, asArray, convertMaybeToArray, filterMaybeValues, lastValue, makeValuesGroupMap, mergeArrays, separateValues, setContainsAllValues, setsAreEquivalent, sortByStringFunction } from '@dereekb/util';
4
+ import { addToSetCopy, asArray, convertMaybeToArray, filterMaybeArrayValues, lastValue, makeValuesGroupMap, mergeArrays, separateValues, setContainsAllValues, setsAreEquivalent, sortByStringFunction } from '@dereekb/util';
5
5
  import { FieldType } from '@ngx-formly/material/form-field';
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "@angular/common";
@@ -123,7 +123,7 @@ export class DbxFormSourceSelectFieldComponent extends FieldType {
123
123
  const obs = this.getDisplayValuesForSelectValues(allUniqueValues).pipe(map((displayValues) => {
124
124
  const displayValuesMap = new Map(displayValues.map((x) => [x.value, x]));
125
125
  const displayGroups = simplifiedValuesGroups.map((valueGroup) => {
126
- const values = filterMaybeValues(valueGroup.values.map((x) => displayValuesMap.get(x.value)));
126
+ const values = filterMaybeArrayValues(valueGroup.values.map((x) => displayValuesMap.get(x.value)));
127
127
  return {
128
128
  label: valueGroup.label,
129
129
  values
@@ -323,4 +323,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
323
323
  type: ViewChild,
324
324
  args: ['button', { read: ElementRef, static: false }]
325
325
  }] } });
326
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlc2VsZWN0LmZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1mb3JtL3NyYy9saWIvZm9ybWx5L2ZpZWxkL3NlbGVjdGlvbi9zb3VyY2VzZWxlY3Qvc291cmNlc2VsZWN0LmZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1mb3JtL3NyYy9saWIvZm9ybWx5L2ZpZWxkL3NlbGVjdGlvbi9zb3VyY2VzZWxlY3Qvc291cmNlc2VsZWN0LmZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQWdCLDhCQUE4QixFQUFFLHFCQUFxQixFQUFnQyxxQkFBcUIsRUFBRSxrQkFBa0IsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLGdDQUFnQyxFQUFFLG1CQUFtQixFQUFFLHFCQUFxQixFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUN2VCxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBcUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBYyxhQUFhLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hLLE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBUyxXQUFXLEVBQWdCLGNBQWMsRUFBRSxvQkFBb0IsRUFBRSxpQkFBaUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5TyxPQUFPLEVBQUUsU0FBUyxFQUFvQixNQUFN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QUN0QyxTQUFTLEVBQUUsU0FBUzthQUNyQixDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxNQUFXO1FBQ25DLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JELE1BQU0sYUFBYSxHQUFHLENBQUMsR0FBRyxZQUFZLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFTyxlQUFlLENBQUMsYUFBa0I7UUFDeEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxnRUFBZ0U7UUFDeEksSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ25DLENBQUM7d0dBL2JVLGlDQUFpQzs0RkFBakMsaUNBQWlDLHdJQVVmLFVBQVUsb0RDakV6Qyxpb0NBcUJBOzs0RkRrQ2EsaUNBQWlDO2tCQUg3QyxTQUFTOzs4QkFjUixhQUFhO3NCQURaLFNBQVM7dUJBQUMsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZmlsdGVyTWF5YmUsIExvYWRpbmdTdGF0ZSwgaXNMb2FkaW5nU3RhdGVXaXRoRGVmaW5lZFZhbHVlLCBpc0xvYWRpbmdTdGF0ZUxvYWRpbmcsIExvYWRpbmdTdGF0ZVdpdGhEZWZpbmVkVmFsdWUsIHN0YXJ0V2l0aEJlZ2luTG9hZGluZywgU3Vic2NyaXB0aW9uT2JqZWN0LCBzdWNjZXNzUmVzdWx0LCBiZWdpbkxvYWRpbmcsIG1hcExvYWRpbmdTdGF0ZVZhbHVlV2l0aE9wZXJhdG9yLCBsb2FkaW5nU3RhdGVDb250ZXh0LCB2YWx1ZUZyb21Mb2FkaW5nU3RhdGUsIFdvcmtVc2luZ0NvbnRleHQgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgc3dpdGNoTWFwLCBzaGFyZVJlcGxheSwgc3RhcnRXaXRoLCBtZXJnZU1hcCwgc2NhbiwgQmVoYXZpb3JTdWJqZWN0LCB0YXAsIGZpcnN0LCBPYnNlcnZhYmxlLCBjb21iaW5lTGF0ZXN0LCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgYWRkVG9TZXRDb3B5LCBhc0FycmF5LCBjb252ZXJ0TWF5YmVUb0FycmF5LCBmaWx0ZXJNYXliZVZhbHVlcywgbGFzdFZhbHVlLCBtYWtlVmFsdWVzR3JvdXBNYXAsIE1heWJlLCBtZXJnZUFycmF5cywgUHJpbWF0aXZlS2V5LCBzZXBhcmF0ZVZhbHVlcywgc2V0Q29udGFpbnNBbGxWYWx1ZXMsIHNldHNBcmVFcXVpdmFsZW50LCBzb3J0QnlTdHJpbmdGdW5jdGlvbiB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgRmllbGRUeXBlLCBGb3JtbHlGaWVsZFByb3BzIH0gZnJvbSAnQG5neC1mb3JtbHkvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBGaWVsZFR5cGVDb25maWcgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7IFNvdXJjZVNlbGVjdFZhbHVlTWV0YUxvYWRlciwgU291cmNlU2VsZWN0TWV0YVZhbHVlUmVhZGVyLCBTb3VyY2VTZWxlY3RPcGVuRnVuY3Rpb24sIFNvdXJjZVNlbGVjdExvYWRTb3VyY2VzRnVuY3Rpb24sIFNvdXJjZVNlbGVjdExvYWRTb3VyY2UsIFNvdXJjZVNlbGVjdExvYWRTb3VyY2VMb2FkaW5nU3RhdGUsIFNvdXJjZVNlbGVjdERpc3BsYXlWYWx1ZSwgU291cmNlU2VsZWN0VmFsdWUsIFNvdXJjZVNlbGVjdERpc3BsYXlGdW5jdGlvbiwgU291cmNlU2VsZWN0RGlzcGxheVZhbHVlR3JvdXAsIFNvdXJjZVNlbGVjdFZhbHVlR3JvdXAsIFNvdXJjZVNlbGVjdE9wdGlvbnMsIFNvdXJjZVNlbGVjdE9wZW5Tb3VyY2VSZXN1bHQgfSBmcm9tICcuL3NvdXJjZXNlbGVjdCc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU291cmNlU2VsZWN0RmllbGRQcm9wczxUIGV4dGVuZHMgUHJpbWF0aXZlS2V5ID0gUHJpbWF0aXZlS2V5LCBNID0gdW5rbm93bj4gZXh0ZW5kcyBGb3JtbHlGaWVsZFByb3BzIHtcbiAgLyoqXG4gICAqIEZ1bmN0aW9uIHRvIG9wZW4gdGhlIHNvdXJjZSBhbmQgcmVxdWVzdCB2YWx1ZXMuXG4gICAqL1xuICByZWFkb25seSBvcGVuU291cmNlPzogU291cmNlU2VsZWN0T3BlbkZ1bmN0aW9uPE0+O1xuICAvKipcbiAgICogTG9hZHMgdGhlIHNvdXJjZXMgdG8gZGlzcGxheSBlbnRyaWVzIGZyb20uXG4gICAqL1xuICByZWFkb25seSBsb2FkU291cmNlcz86IFNvdXJjZVNlbGVjdExvYWRTb3VyY2VzRnVuY3Rpb248TT47XG4gIC8qKlxuICAgKiBSZWFkcyB0aGUgdmFsdWUgZnJvbSBhIG1ldGEgdmFsdWUuXG4gICAqL1xuICByZWFkb25seSB2YWx1ZVJlYWRlcjogU291cmNlU2VsZWN0TWV0YVZhbHVlUmVhZGVyPFQsIE0+O1xuICAvKipcbiAgICogTG9hZHMgbWV0YWRhdGEgZm9yIHRoZSBpbnB1dCB2YWx1ZXMuXG4gICAqL1xuICByZWFkb25seSBtZXRhTG9hZGVyOiBTb3VyY2VTZWxlY3RWYWx1ZU1ldGFMb2FkZXI8VCwgTT47XG4gIC8qKlxuICAgKiBVc2VkIGZvciBidWlsZGluZyBhIGRpc3BsYXkgdmFsdWUgZ2l2ZW4gdGhlIGlucHV0LlxuICAgKi9cbiAgcmVhZG9ubHkgZGlzcGxheUZvclZhbHVlOiBTb3VyY2VTZWxlY3REaXNwbGF5RnVuY3Rpb248VCwgTT47XG4gIC8qKlxuICAgKiBTZWxlY3QgYnV0dG9uIGljb25cbiAgICovXG4gIHJlYWRvbmx5IHNlbGVjdEJ1dHRvbkljb24/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0aGUgc2VsZWN0aW9uIGlzIGFzIGFuIGFycmF5LlxuICAgKi9cbiAgcmVhZG9ubHkgbXVsdGlwbGU/OiBib29sZWFuO1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBvYnNlcnZhYmxlIHRoYXQgd2lsbCB0cmlnZ2VyIHRoZSBjbGVhcmluZyBvZiBhbGwgY2FjaGVkIGRpc3BsYXkgdmFsdWVzLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVmcmVzaERpc3BsYXlWYWx1ZXMkPzogT2JzZXJ2YWJsZTx1bmtub3duPjtcbn1cblxuaW50ZXJmYWNlIFNlbGVjdEZpZWxkT3BlblNvdXJjZU1hcDxUIGV4dGVuZHMgUHJpbWF0aXZlS2V5ID0gUHJpbWF0aXZlS2V5LCBNID0gdW5rbm93bj4ge1xuICByZWFkb25seSB2YWx1ZXM6IFNvdXJjZVNlbGVjdFZhbHVlPFQsIE0+W107XG4gIHJlYWRvbmx5IHZhbHVlc1NldDogU2V0PFQ+O1xufVxuXG4vKipcbiAqIENvbXBvbmVudCB0aGF0IGRpc3BsYXlzIGEgc2VsZWN0IHZpZXcgKG11bHRpIG9yIG5vdClcbiAqL1xuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAnc291cmNlc2VsZWN0LmZpZWxkLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBEYnhGb3JtU291cmNlU2VsZWN0RmllbGRDb21wb25lbnQ8VCBleHRlbmRzIFByaW1hdGl2ZUtleSA9IFByaW1hdGl2ZUtleSwgTSA9IHVua25vd24+IGV4dGVuZHMgRmllbGRUeXBlPEZpZWxkVHlwZUNvbmZpZzxTb3VyY2VTZWxlY3RGaWVsZFByb3BzPFQsIE0+Pj4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2NhY2hlTWV0YVN1YiA9IG5ldyBTdWJzY3JpcHRpb25PYmplY3QoKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfY2xlYXJEaXNwbGF5SGFzaE1hcFN1YiA9IG5ldyBTdWJzY3JpcHRpb25PYmplY3QoKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfdmFsdWVNZXRhSGFzaE1hcCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWFwPFQsIFNvdXJjZVNlbGVjdFZhbHVlPFQsIE0+Pj4obmV3IE1hcCgpKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZGlzcGxheUhhc2hNYXAgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1hcDxULCBTb3VyY2VTZWxlY3REaXNwbGF5VmFsdWU8VCwgTT4+PihuZXcgTWFwKCkpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Zvcm1Db250cm9sT2JzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXliZTxBYnN0cmFjdENvbnRyb2w8VFtdPj4+KHVuZGVmaW5lZCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Zyb21PcGVuU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxTZWxlY3RGaWVsZE9wZW5Tb3VyY2VNYXA8VCwgTT4+KHsgdmFsdWVzOiBbXSwgdmFsdWVzU2V0OiBuZXcgU2V0KCkgfSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2xvYWRTb3VyY2VzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXliZTxPYnNlcnZhYmxlPFNvdXJjZVNlbGVjdExvYWRTb3VyY2U8TT5bXT4+Pih1bmRlZmluZWQpO1xuXG4gIEBWaWV3Q2hpbGQoJ2J1dHRvbicsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiBmYWxzZSB9KVxuICBidXR0b25FbGVtZW50ITogRWxlbWVudFJlZjtcblxuICByZWFkb25seSBmb3JtQ29udHJvbCQgPSB0aGlzLl9mb3JtQ29udHJvbE9icy5waXBlKGZpbHRlck1heWJlKCkpO1xuXG4gIHJlYWRvbmx5IGN1cnJlbnRGb3JtQ29udHJvbFZhbHVlJCA9IHRoaXMuZm9ybUNvbnRyb2wkLnBpcGUoXG4gICAgc3dpdGNoTWFwKChjb250cm9sKSA9PiBjb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKHN0YXJ0V2l0aChjb250cm9sLnZhbHVlKSkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgdmFsdWVzJDogT2JzZXJ2YWJsZTxUW10+ID0gdGhpcy5jdXJyZW50Rm9ybUNvbnRyb2xWYWx1ZSQucGlwZShtYXAoY29udmVydE1heWJlVG9BcnJheSksIHNoYXJlUmVwbGF5KDEpKTtcblxuICByZWFkb25seSBhbGxWYWx1ZXNFdmVyU2VsZWN0ZWQkOiBPYnNlcnZhYmxlPFRbXT4gPSB0aGlzLnZhbHVlcyQucGlwZShcbiAgICBzY2FuKChhY2MsIHZhbHVlcykgPT4ge1xuICAgICAgbGV0IHJlc3VsdDogU2V0PFQ+ID0gYWNjO1xuXG4gICAgICBpZiAoIXNldENvbnRhaW5zQWxsVmFsdWVzKGFjYywgdmFsdWVzKSkge1xuICAgICAgICByZXN1bHQgPSBhZGRUb1NldENvcHkoYWNjLCB2YWx1ZXMpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0sIG5ldyBTZXQ8VD4oKSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBtYXAoKHgpID0+IEFycmF5LmZyb20oeCkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgc291cmNlU2VsZWN0VmFsdWVzRnJvbVZhbHVlc1N0YXRlJDogT2JzZXJ2YWJsZTxMb2FkaW5nU3RhdGU8U291cmNlU2VsZWN0VmFsdWU8VCwgTT5bXT4+ID0gdGhpcy5hbGxWYWx1ZXNFdmVyU2VsZWN0ZWQkLnBpcGUoXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzd2l0Y2hNYXAoKHZhbHVlczogVFtdKSA9PiB0aGlzLmxvYWRTb3VyY2VTZWxlY3RWYWx1ZUZvclZhbHVlcyh2YWx1ZXMpKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGxvYWRTb3VyY2VzJDogT2JzZXJ2YWJsZTxMb2FkaW5nU3RhdGU8U291cmNlU2VsZWN0VmFsdWVHcm91cDxULCBNPltdPj4gPSB0aGlzLl9sb2FkU291cmNlcy5waXBlKFxuICAgIGZpbHRlck1heWJlKCksXG4gICAgc3dpdGNoTWFwKChsb2FkU291cmNlKSA9PiB7XG4gICAgICBjb25zdCB7IHZhbHVlUmVhZGVyIH0gPSB0aGlzO1xuXG4gICAgICByZXR1cm4gbG9hZFNvdXJjZS5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKHNvdXJjZXM6IFNvdXJjZVNlbGVjdExvYWRTb3VyY2U8TT5bXSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHNvdXJjZU9iczogT2JzZXJ2YWJsZTxTb3VyY2VTZWxlY3RMb2FkU291cmNlTG9hZGluZ1N0YXRlPE0+PltdID0gc291cmNlcy5tYXAoKHgpID0+IHgubWV0YS5waXBlKG1hcCgobWV0YVN0YXRlKSA9PiAoeyAuLi5tZXRhU3RhdGUsIGxhYmVsOiB4LmxhYmVsIH0pKSkpO1xuXG4gICAgICAgICAgaWYgKHNvdXJjZU9icy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBvZihzdWNjZXNzUmVzdWx0KFtdKSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KHNvdXJjZU9icykucGlwZShcbiAgICAgICAgICAgICAgbWFwKCh4KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhdGVzV2l0aFZhbHVlcyA9IHguZmlsdGVyKCh5KSA9PiBpc0xvYWRpbmdTdGF0ZVdpdGhEZWZpbmVkVmFsdWUoeSkpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGxvYWRpbmcgPSB4LmZpbmRJbmRleChpc0xvYWRpbmdTdGF0ZUxvYWRpbmcpICE9PSAtMTtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZTogU291cmNlU2VsZWN0VmFsdWVHcm91cDxULCBNPltdID0gc3RhdGVzV2l0aFZhbHVlcy5tYXAoKHkpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGdyb3VwOiBTb3VyY2VTZWxlY3RWYWx1ZUdyb3VwPFQsIE0+ID0ge1xuICAgICAgICAgICAgICAgICAgICBsYWJlbDogeS5sYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWVzOiAoeS52YWx1ZSBhcyBNW10pLm1hcCgobWV0YSkgPT4gKHsgbWV0YSwgdmFsdWU6IHZhbHVlUmVhZGVyKG1ldGEpIH0pKVxuICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgcmV0dXJuIGdyb3VwO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgIGxvYWRpbmcsXG4gICAgICAgICAgICAgICAgICB2YWx1ZVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSlcbiAgKTtcblxuICByZWFkb25seSBmcm9tT3BlblNvdXJjZSQ6IE9ic2VydmFibGU8U291cmNlU2VsZWN0VmFsdWVHcm91cDxULCBNPj4gPSB0aGlzLl9mcm9tT3BlblNvdXJjZS5waXBlKFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChhLCBiKSA9PiBzZXRzQXJlRXF1aXZhbGVudChhLnZhbHVlc1NldCwgYi52YWx1ZXNTZXQpKSxcbiAgICBtYXAoKHgpID0+IHtcbiAgICAgIGNvbnN0IGdyb3VwOiBTb3VyY2VTZWxlY3RWYWx1ZUdyb3VwPFQsIE0+ID0ge1xuICAgICAgICBsYWJlbDogJycsXG4gICAgICAgIHZhbHVlczogeC52YWx1ZXNcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBncm91cDtcbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IHZhbHVlR3JvdXBzRnJvbVNvdXJjZXNTdGF0ZSQ6IE9ic2VydmFibGU8TG9hZGluZ1N0YXRlV2l0aERlZmluZWRWYWx1ZTxTb3VyY2VTZWxlY3RWYWx1ZUdyb3VwPFQsIE0+W10+PiA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuZnJvbU9wZW5Tb3VyY2UkLCB0aGlzLmxvYWRTb3VyY2VzJF0pLnBpcGUoXG4gICAgbWFwKChbZnJvbU9wZW5Tb3VyY2VHcm91cCwgbG9hZFNvdXJjZXNdKSA9PiB7XG4gICAgICBjb25zdCBsb2FkU291cmNlc1ZhbHVlID0gbG9hZFNvdXJjZXMudmFsdWUgPz8gW107XG4gICAgICBjb25zdCB2YWx1ZTogU291cmNlU2VsZWN0VmFsdWVHcm91cDxULCBNPltdID0gW2Zyb21PcGVuU291cmNlR3JvdXAsIC4uLmxvYWRTb3VyY2VzVmFsdWVdO1xuXG4gICAgICBjb25zdCByZXN1bHQ6IExvYWRpbmdTdGF0ZVdpdGhEZWZpbmVkVmFsdWU8U291cmNlU2VsZWN0VmFsdWVHcm91cDxULCBNPltdPiA9IHtcbiAgICAgICAgbG9hZGluZzogbG9hZFNvdXJjZXMubG9hZGluZyxcbiAgICAgICAgdmFsdWVcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBhbGxWYWx1ZUdyb3Vwc1N0YXRlJDogT2JzZXJ2YWJsZTxMb2FkaW5nU3RhdGU8U291cmNlU2VsZWN0VmFsdWVHcm91cDxULCBNPltdPj4gPSB0aGlzLnNvdXJjZVNlbGVjdFZhbHVlc0Zyb21WYWx1ZXNTdGF0ZSQucGlwZShcbiAgICBzd2l0Y2hNYXAoKHNvdXJjZVNlbGVjdFZhbHVlc0Zyb21WYWx1ZXM6IExvYWRpbmdTdGF0ZTxTb3VyY2VTZWxlY3RWYWx1ZTxULCBNPltdPikgPT4ge1xuICAgICAgaWYgKGlzTG9hZGluZ1N0YXRlV2l0aERlZmluZWRWYWx1ZShzb3VyY2VTZWxlY3RWYWx1ZXNGcm9tVmFsdWVzKSkge1xuICAgICAgICBjb25zdCB2YWx1ZXNGcm9tVmFsdWVzR3JvdXA6IFNvdXJjZVNlbGVjdFZhbHVlR3JvdXA8VCwgTT4gPSB7XG4gICAgICAgICAgbGFiZWw6ICcnLFxuICAgICAgICAgIHZhbHVlczogc291cmNlU2VsZWN0VmFsdWVzRnJvbVZhbHVlcy52YWx1ZVxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlR3JvdXBzRnJvbVNvdXJjZXNTdGF0ZSQucGlwZShcbiAgICAgICAgICBtYXAoKHNvdXJjZXNTdGF0ZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYWxsR3JvdXBzOiBTb3VyY2VTZWxlY3RWYWx1ZUdyb3VwPFQsIE0+W10gPSBbdmFsdWVzRnJvbVZhbHVlc0dyb3VwLCAuLi5zb3VyY2VzU3RhdGUudmFsdWVdO1xuXG4gICAgICAgICAgICBjb25zdCByZXN1bHQ6IExvYWRpbmdTdGF0ZTxTb3VyY2VTZWxlY3RWYWx1ZUdyb3VwPFQsIE0+W10+ID0ge1xuICAgICAgICAgICAgICBsb2FkaW5nOiBzb3VyY2VTZWxlY3RWYWx1ZXNGcm9tVmFsdWVzLmxvYWRpbmcgfHwgc291cmNlc1N0YXRlLmxvYWRpbmcsXG4gICAgICAgICAgICAgIHZhbHVlOiBhbGxHcm91cHNcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBvZihiZWdpbkxvYWRpbmc8U291cmNlU2VsZWN0VmFsdWVHcm91cDxULCBNPltdPih7fSkpO1xuICAgICAgfVxuICAgIH0pLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgYWxsT3B0aW9uR3JvdXBzU3RhdGUkOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxTb3VyY2VTZWxlY3REaXNwbGF5VmFsdWVHcm91cDxULCBNPltdPj4gPSB0aGlzLmFsbFZhbHVlR3JvdXBzU3RhdGUkLnBpcGUoXG4gICAgbWFwTG9hZGluZ1N0YXRlVmFsdWVXaXRoT3BlcmF0b3IoXG4gICAgICBzd2l0Y2hNYXAoKGdyb3VwczogU291cmNlU2VsZWN0VmFsdWVHcm91cDxULCBNPltdKSA9PiB7XG4gICAgICAgIGNvbnN0IGFsbEdyb3Vwc1JlZHVjZWRCeUxhYmVsID0gbWFrZVZhbHVlc0dyb3VwTWFwKGdyb3VwcywgKHgpID0+IHgubGFiZWwpIGFzIE1hcDxzdHJpbmcsIFNvdXJjZVNlbGVjdFZhbHVlR3JvdXA8VCwgTT5bXT47XG5cbiAgICAgICAgY29uc3QgdmFsdWVzRW5jb3VudGVyZWQgPSBuZXcgU2V0PFQ+KCk7XG4gICAgICAgIGNvbnN0IGFsbFVuaXF1ZVZhbHVlczogU291cmNlU2VsZWN0VmFsdWU8VCwgTT5bXSA9IFtdO1xuXG4gICAgICAgIGNvbnN0IHNpbXBsaWZpZWRWYWx1ZXNHcm91cHM6IFNvdXJjZVNlbGVjdFZhbHVlR3JvdXA8VCwgTT5bXSA9IFtdO1xuXG4gICAgICAgIC8vIHNvcnQgdG8gcHV0IHRoZSBibGFuayBsYWJlbCBmaXJzdFxuICAgICAgICBBcnJheS5mcm9tKGFsbEdyb3Vwc1JlZHVjZWRCeUxhYmVsLmVudHJpZXMoKSlcbiAgICAgICAgICAuc29ydChzb3J0QnlTdHJpbmdGdW5jdGlvbigoeCkgPT4geFswXSkpXG4gICAgICAgICAgLmZvckVhY2goKFtsYWJlbCwgZ3JvdXBzXSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdmFsdWVzOiBTb3VyY2VTZWxlY3RWYWx1ZTxULCBNPltdID0gW107XG5cbiAgICAgICAgICAgIGdyb3Vwcy5mb3JFYWNoKChncm91cCkgPT4ge1xuICAgICAgICAgICAgICBncm91cC52YWx1ZXMuZm9yRWFjaCgoc2VsZWN0VmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXZhbHVlc0VuY291bnRlcmVkLmhhcyhzZWxlY3RWYWx1ZS52YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKHNlbGVjdFZhbHVlKTtcbiAgICAgICAgICAgICAgICAgIGFsbFVuaXF1ZVZhbHVlcy5wdXNoKHNlbGVjdFZhbHVlKTtcbiAgICAgICAgICAgICAgICAgIHZhbHVlc0VuY291bnRlcmVkLmFkZChzZWxlY3RWYWx1ZS52YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBpZiAodmFsdWVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgc2ltcGxpZmllZFZhbHVlc0dyb3Vwcy5wdXNoKHtcbiAgICAgICAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICAgICAgICB2YWx1ZXNcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3Qgb2JzID0gdGhpcy5nZXREaXNwbGF5VmFsdWVzRm9yU2VsZWN0VmFsdWVzKGFsbFVuaXF1ZVZhbHVlcykucGlwZShcbiAgICAgICAgICBtYXAoKGRpc3BsYXlWYWx1ZXMpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGRpc3BsYXlWYWx1ZXNNYXAgPSBuZXcgTWFwKGRpc3BsYXlWYWx1ZXMubWFwKCh4KSA9PiBbeC52YWx1ZSwgeF0pKTtcblxuICAgICAgICAgICAgY29uc3QgZGlzcGxheUdyb3VwczogU291cmNlU2VsZWN0RGlzcGxheVZhbHVlR3JvdXA8VCwgTT5bXSA9IHNpbXBsaWZpZWRWYWx1ZXNHcm91cHMubWFwKCh2YWx1ZUdyb3VwKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHZhbHVlcyA9IGZpbHRlck1heWJlVmFsdWVzKHZhbHVlR3JvdXAudmFsdWVzLm1hcCgoeCkgPT4gZGlzcGxheVZhbHVlc01hcC5nZXQoeC52YWx1ZSkpKTtcblxuICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGxhYmVsOiB2YWx1ZUdyb3VwLmxhYmVsLFxuICAgICAgICAgICAgICAgIHZhbHVlc1xuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHJldHVybiBkaXNwbGF5R3JvdXBzO1xuICAgICAgICAgIH0pXG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIG9icztcbiAgICAgIH0pXG4gICAgKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGFsbE9wdGlvbkdyb3VwcyQ6IE9ic2VydmFibGU8U291cmNlU2VsZWN0RGlzcGxheVZhbHVlR3JvdXA8VCwgTT5bXT4gPSB0aGlzLmFsbE9wdGlvbkdyb3Vwc1N0YXRlJC5waXBlKHZhbHVlRnJvbUxvYWRpbmdTdGF0ZSgpLCBzaGFyZVJlcGxheSgxKSk7XG5cbiAgcmVhZG9ubHkgb3B0aW9ucyQ6IE9ic2VydmFibGU8U291cmNlU2VsZWN0T3B0aW9uczxULCBNPj4gPSB0aGlzLmFsbE9wdGlvbkdyb3VwcyQucGlwZShcbiAgICBtYXAoKHgpID0+IHtcbiAgICAgIGNvbnN0IHsgaW5jbHVkZWQ6IGdyb3VwZWRWYWx1ZXMsIGV4Y2x1ZGVkOiBub25Hcm91cGVkR3JvdXAgfSA9IHNlcGFyYXRlVmFsdWVzKHgsICh5KSA9PiBCb29sZWFuKHkubGFiZWwpKTtcblxuICAgICAgY29uc3QgcmVzdWx0OiBTb3VyY2VTZWxlY3RPcHRpb25zPFQsIE0+ID0ge1xuICAgICAgICBub25Hcm91cGVkVmFsdWVzOiBub25Hcm91cGVkR3JvdXBbMF0/LnZhbHVlcyA/PyBbXSxcbiAgICAgICAgZ3JvdXBlZFZhbHVlc1xuICAgICAgfTtcblxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IG5vbkdyb3VwZWRWYWx1ZXMkID0gdGhpcy5vcHRpb25zJC5waXBlKG1hcCgoeCkgPT4geC5ub25Hcm91cGVkVmFsdWVzKSk7XG4gIHJlYWRvbmx5IGdyb3VwZWRPcHRpb25zJCA9IHRoaXMub3B0aW9ucyQucGlwZShtYXAoKHgpID0+IHguZ3JvdXBlZFZhbHVlcykpO1xuXG4gIGdldCBzb3VyY2VTZWxlY3RGaWVsZCgpOiBTb3VyY2VTZWxlY3RGaWVsZFByb3BzPFQsIE0+IHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcztcbiAgfVxuXG4gIGdldCBvcGVuU291cmNlKCkge1xuICAgIHJldHVybiB0aGlzLnByb3BzLm9wZW5Tb3VyY2U7XG4gIH1cblxuICBnZXQgc2hvd09wZW5Tb3VyY2VCdXR0b24oKSB7XG4gICAgcmV0dXJuIEJvb2xlYW4odGhpcy5vcGVuU291cmNlKTtcbiAgfVxuXG4gIGdldCBsb2FkU291cmNlcygpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5sb2FkU291cmNlcztcbiAgfVxuXG4gIGdldCB2YWx1ZVJlYWRlcigpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy52YWx1ZVJlYWRlcjtcbiAgfVxuXG4gIGdldCBtZXRhTG9hZGVyKCkge1xuICAgIHJldHVybiB0aGlzLnByb3BzLm1ldGFMb2FkZXI7XG4gIH1cblxuICBnZXQgZGlzcGxheUZvclZhbHVlKCk6IFNvdXJjZVNlbGVjdERpc3BsYXlGdW5jdGlvbjxULCBNPiB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuZGlzcGxheUZvclZhbHVlO1xuICB9XG5cbiAgZ2V0IHNlbGVjdEJ1dHRvbkljb24oKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuc2VsZWN0QnV0dG9uSWNvbiA/PyAnYWRkJztcbiAgfVxuXG4gIGdldCBtdWx0aXBsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5tdWx0aXBsZSB8fCBmYWxzZTtcbiAgfVxuXG4gIGdldCByZWZyZXNoRGlzcGxheVZhbHVlcyQoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMucmVmcmVzaERpc3BsYXlWYWx1ZXMkO1xuICB9XG5cbiAgbG9hZFNvdXJjZVNlbGVjdFZhbHVlRm9yVmFsdWVzKHZhbHVlczogVFtdKTogT2JzZXJ2YWJsZTxMb2FkaW5nU3RhdGU8U291cmNlU2VsZWN0VmFsdWU8VCwgTT5bXT4+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRTb3VyY2VTZWxlY3RWYWx1ZUZvclZhbHVlcyh2YWx1ZXMpLnBpcGUoXG4gICAgICBtYXAoKHNvdXJjZVNlbGVjdFZhbHVlczogU291cmNlU2VsZWN0VmFsdWU8VCwgTT5bXSkgPT4gc3VjY2Vzc1Jlc3VsdChzb3VyY2VTZWxlY3RWYWx1ZXMpKSxcbiAgICAgIHN0YXJ0V2l0aEJlZ2luTG9hZGluZygpLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApO1xuICB9XG5cbiAgZ2V0U291cmNlU2VsZWN0VmFsdWVGb3JWYWx1ZXModmFsdWVzOiBUW10pOiBPYnNlcnZhYmxlPFNvdXJjZVNlbGVjdFZhbHVlPFQsIE0+W10+IHtcbiAgICBjb25zdCB7IHZhbHVlUmVhZGVyIH0gPSB0aGlzO1xuXG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlTWV0YUhhc2hNYXAucGlwZShcbiAgICAgIG1lcmdlTWFwKChtZXRhTWFwKSA9PiB7XG4gICAgICAgIGNvbnN0IG1hcHBpbmdSZXN1bHQgPSB2YWx1ZXMubWFwKChoYXNoLCBpKSA9PiBbaSwgaGFzaCwgbWV0YU1hcC5nZXQoaGFzaCldIGFzIFtudW1iZXIsIFQsIFNvdXJjZVNlbGVjdFZhbHVlPFQsIE0+XSk7XG5cbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIC8vXG4gICAgICAgICAgaW5jbHVkZWQ6IGhhc01ldGEsXG4gICAgICAgICAgZXhjbHVkZWQ6IG5lZWRzTWV0YVxuICAgICAgICB9ID0gc2VwYXJhdGVWYWx1ZXMobWFwcGluZ1Jlc3VsdCwgKHgpID0+IEJvb2xlYW4oeFsyXSkpO1xuXG4gICAgICAgIGxldCBvYnM6IE9ic2VydmFibGU8U291cmNlU2VsZWN0VmFsdWU8VCwgTT5bXT47XG5cbiAgICAgICAgaWYgKG5lZWRzTWV0YS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgLy8gR28gZ2V0IHRoZSBtZXRhIHZhbHVlLlxuICAgICAgICAgIGNvbnN0IG1ldGFWYWx1ZXNPYnMgPSB0aGlzLm1ldGFMb2FkZXIobmVlZHNNZXRhLm1hcCgoeCkgPT4geFsxXSkpO1xuXG4gICAgICAgICAgb2JzID0gbWV0YVZhbHVlc09icy5waXBlKFxuICAgICAgICAgICAgZmlyc3QoKSxcbiAgICAgICAgICAgIG1hcCgobWV0YVJlc3VsdHMpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgbWV0YVJlc3VsdHNNYXBwaW5nOiBTb3VyY2VTZWxlY3RWYWx1ZTxULCBNPltdID0gbWV0YVJlc3VsdHMubWFwKChtZXRhKSA9PiAoeyBtZXRhLCB2YWx1ZTogdmFsdWVSZWFkZXIobWV0YSkgfSkpO1xuICAgICAgICAgICAgICBjb25zdCB2YWx1ZUluZGV4SGFzaE1hcCA9IG5ldyBNYXAobWV0YVJlc3VsdHNNYXBwaW5nLm1hcCgoeCkgPT4gW3gudmFsdWUsIHhdKSk7XG5cbiAgICAgICAgICAgICAgLy8gVXBkYXRlIG1ldGFNYXAuIE5vIG5lZWQgdG8gcHVzaCBhbiB1cGRhdGUgbm90aWZpY2F0aW9uLlxuICAgICAgICAgICAgICBtZXRhUmVzdWx0c01hcHBpbmcuZm9yRWFjaCgoeCkgPT4gbWV0YU1hcC5zZXQoeC52YWx1ZSwgeCkpO1xuXG4gICAgICAgICAgICAgIC8vIFppcCB2YWx1ZXMgYmFjayB0b2dldGhlci5cbiAgICAgICAgICAgICAgY29uc3QgbmV3RGlzcGxheVZhbHVlcyA9IG1hcHBpbmdSZXN1bHQubWFwKCh4KSA9PiB4WzJdID8/IHZhbHVlSW5kZXhIYXNoTWFwLmdldCh4WzFdKSk7XG5cbiAgICAgICAgICAgICAgLy8gUmV0dXJuIGRpc3BsYXkgdmFsdWVzLlxuICAgICAgICAgICAgICByZXR1cm4gbmV3RGlzcGxheVZhbHVlcztcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBJZiBhbGwgZGlzcGxheSB2YWx1ZXMgYXJlIGhhc2hlZCByZXR1cm4gdGhlbVxuICAgICAgICAgIG9icyA9IG9mKGhhc01ldGEubWFwKCh4KSA9PiB4WzJdKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gb2JzO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgbG9hZERpc3BsYXlWYWx1ZXNGb3JTZWxlY3RWYWx1ZXModmFsdWVzOiBTb3VyY2VTZWxlY3RWYWx1ZTxULCBNPltdKTogT2JzZXJ2YWJsZTxMb2FkaW5nU3RhdGU8U291cmNlU2VsZWN0RGlzcGxheVZhbHVlPFQsIE0+W10+PiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RGlzcGxheVZhbHVlc0ZvclNlbGVjdFZhbHVlcyh2YWx1ZXMpLnBpcGUoXG4gICAgICBtYXAoKGRpc3BsYXlWYWx1ZXM6IFNvdXJjZVNlbGVjdERpc3BsYXlWYWx1ZTxULCBNPltdKSA9PiBzdWNjZXNzUmVzdWx0KGRpc3BsYXlWYWx1ZXMpKSxcbiAgICAgIHN0YXJ0V2l0aEJlZ2luTG9hZGluZygpLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApO1xuICB9XG5cbiAgZ2V0RGlzcGxheVZhbHVlc0ZvclNlbGVjdFZhbHVlcyh2YWx1ZXM6IFNvdXJjZVNlbGVjdFZhbHVlPFQsIE0+W10pOiBPYnNlcnZhYmxlPFNvdXJjZVNlbGVjdERpc3BsYXlWYWx1ZTxULCBNPltdPiB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc3BsYXlIYXNoTWFwLnBpcGUoXG4gICAgICBtZXJnZU1hcCgobWV0YU1hcCkgPT4ge1xuICAgICAgICBjb25zdCBtYXBwaW5nUmVzdWx0ID0gdmFsdWVzLm1hcCgoeCkgPT4gW3gsIHgudmFsdWVdIGFzIFtTb3VyY2VTZWxlY3RWYWx1ZTxULCBNPiwgVF0pLm1hcCgoW3gsIGhhc2hdLCBpKSA9PiBbaSwgaGFzaCwgeCwgbWV0YU1hcC5nZXQoaGFzaCldIGFzIFtudW1iZXIsIFQsIFNvdXJjZVNlbGVjdFZhbHVlPFQsIE0+LCBTb3VyY2VTZWxlY3REaXNwbGF5VmFsdWU8VCwgTT5dKTtcblxuICAgICAgICBjb25zdCBoYXNEaXNwbGF5ID0gbWFwcGluZ1Jlc3VsdC5maWx0ZXIoKHgpID0+IEJvb2xlYW4oeFszXSkpO1xuICAgICAgICBjb25zdCBuZWVkc0Rpc3BsYXkgPSBtYXBwaW5nUmVzdWx0LmZpbHRlcigoeCkgPT4gIXhbM10pO1xuICAgICAgICBsZXQgb2JzOiBPYnNlcnZhYmxlPFNvdXJjZVNlbGVjdERpc3BsYXlWYWx1ZTxULCBNPltdPjtcblxuICAgICAgICBpZiAobmVlZHNEaXNwbGF5Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAvLyBHbyBnZXQgdGhlIGRpc3BsYXkgdmFsdWUuXG4gICAgICAgICAgY29uc3QgZGlzcGxheVZhbHVlc09icyA9IHRoaXMuZGlzcGxheUZvclZhbHVlKG5lZWRzRGlzcGxheS5tYXAoKHgpID0+IHhbMl0pKTtcblxuICAgICAgICAgIG9icyA9IGRpc3BsYXlWYWx1ZXNPYnMucGlwZShcbiAgICAgICAgICAgIGZpcnN0KCksXG4gICAgICAgICAgICBtYXAoKGRpc3BsYXlSZXN1bHRzKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGRpc3BsYXlSZXN1bHRzTWFwcGluZzogW1NvdXJjZVNlbGVjdERpc3BsYXlWYWx1ZTxULCBNPiwgVF1bXSA9IChkaXNwbGF5UmVzdWx0cyBhcyBTb3VyY2VTZWxlY3REaXNwbGF5VmFsdWU8VCwgTT5bXSkubWFwKCh4KSA9PiBbeCwgeC52YWx1ZV0pO1xuICAgICAgICAgICAgICBjb25zdCB2YWx1ZUluZGV4SGFzaE1hcCA9IG5ldyBNYXAoZGlzcGxheVJlc3VsdHNNYXBwaW5nLm1hcCgoW3gsIGhhc2hdKSA9PiBbaGFzaCwgeF0pKTtcblxuICAgICAgICAgICAgICAvLyBVcGRhdGUgbWV0YU1hcC4gTm8gbmVlZCB0byBwdXNoIGFuIHVwZGF0ZSBub3RpZmljYXRpb24uXG4gICAgICAgICAgICAgIGRpc3BsYXlSZXN1bHRzTWFwcGluZy5mb3JFYWNoKChbeCwgaGFzaF0pID0+IG1ldGFNYXAuc2V0KGhhc2gsIHgpKTtcblxuICAgICAgICAgICAgICAvLyBaaXAgdmFsdWVzIGJhY2sgdG9nZXRoZXIuXG4gICAgICAgICAgICAgIGNvbnN0IG5ld0Rpc3BsYXlWYWx1ZXMgPSBtYXBwaW5nUmVzdWx0Lm1hcCgoeCkgPT4geFszXSA/PyB2YWx1ZUluZGV4SGFzaE1hcC5nZXQoeFsxXSkpO1xuXG4gICAgICAgICAgICAgIC8vIFJldHVybiBkaXNwbGF5IHZhbHVlcy5cbiAgICAgICAgICAgICAgcmV0dXJuIG5ld0Rpc3BsYXlWYWx1ZXM7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gSWYgYWxsIGRpc3BsYXkgdmFsdWVzIGFyZSBoYXNoZWQgcmV0dXJuIHRoYXQuXG4gICAgICAgICAgb2JzID0gb2YoaGFzRGlzcGxheS5tYXAoKHgpID0+IHhbM10pKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBvYnM7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICByZWFkb25seSBjb250ZXh0ID0gbG9hZGluZ1N0YXRlQ29udGV4dCh7IG9iczogdGhpcy5hbGxPcHRpb25Hcm91cHNTdGF0ZSQgfSk7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29uc3QgeyBsb2FkU291cmNlcyB9ID0gdGhpcztcblxuICAgIHRoaXMuX2xvYWRTb3VyY2VzLm5leHQobG9hZFNvdXJjZXM/LigpIHx8IG9mKFtdKSk7XG5cbiAgICBpZiAodGhpcy5yZWZyZXNoRGlzcGxheVZhbHVlcyQgIT0gbnVsbCkge1xuICAgICAgdGhpcy5fY2xlYXJEaXNwbGF5SGFzaE1hcFN1Yi5zdWJzY3JpcHRpb24gPSB0aGlzLnJlZnJlc2hEaXNwbGF5VmFsdWVzJC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fZGlzcGxheUhhc2hNYXAubmV4dChuZXcgTWFwKCkpKTtcbiAgICB9XG5cbiAgICB0aGlzLl9mb3JtQ29udHJvbE9icy5uZXh0KHRoaXMuZm9ybUNvbnRyb2wpO1xuXG4gICAgLy8gY29weSBhbGwgdmFsdWVzIGZyb20gdGhlIHNvdXJjZXMgaW50byB0aGUgdmFsdWVzIGhhc2ggbWFwIHRvIHByZXZlbnQgcmVsb2FkaW5nXG4gICAgdGhpcy5fY2FjaGVNZXRhU3ViLnN1YnNjcmlwdGlvbiA9IHRoaXMudmFsdWVHcm91cHNGcm9tU291cmNlc1N0YXRlJC5zdWJzY3JpYmUoKHgpID0+IHtcbiAgICAgIGNvbnN0IGhhc2hNYXAgPSB0aGlzLl92YWx1ZU1ldGFIYXNoTWFwLnZhbHVlO1xuICAgICAgeC52YWx1ZS5mb3JFYWNoKCh4KSA9PiB4LnZhbHVlcy5mb3JFYWNoKCh5KSA9PiBoYXNoTWFwLnNldCh5LnZhbHVlLCB5KSkpO1xuICAgIH0pO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB0aGlzLl9jYWNoZU1ldGFTdWIuZGVzdHJveSgpO1xuICAgIHRoaXMuX2NsZWFyRGlzcGxheUhhc2hNYXBTdWIuZGVzdHJveSgpO1xuICAgIHRoaXMuX3ZhbHVlTWV0YUhhc2hNYXAuY29tcGxldGUoKTtcbiAgICB0aGlzLl9kaXNwbGF5SGFzaE1hcC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX2Zvcm1Db250cm9sT2JzLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fZnJvbU9wZW5Tb3VyY2UuY29tcGxldGUoKTtcbiAgICB0aGlzLl9sb2FkU291cmNlcy5jb21wbGV0ZSgpO1xuICAgIHRoaXMuY29udGV4dC5kZXN0cm95KCk7XG4gIH1cblxuICByZWFkb25seSBoYW5kbGVTZWxlY3RPcHRpb25zOiBXb3JrVXNpbmdDb250ZXh0PHVua25vd24+ID0gKF8sIGNvbnRleHQpID0+IHtcbiAgICBjb25zdCB7IG9wZW5Tb3VyY2UgfSA9IHRoaXM7XG5cbiAgICBpZiAob3BlblNvdXJjZSkge1xuICAgICAgY29uc3Qgb3JpZ2luID0gdGhpcy5idXR0b25FbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICBjb25zdCBzb3VyY2VPYnMgPSBvcGVuU291cmNlKHsgb3JpZ2luIH0pO1xuICAgICAgY29udGV4dC5zdGFydFdvcmtpbmdXaXRoT2JzZXJ2YWJsZShcbiAgICAgICAgc291cmNlT2JzLnBpcGUoXG4gICAgICAgICAgZmlyc3QoKSxcbiAgICAgICAgICB0YXAoKHJlc3VsdDogU291cmNlU2VsZWN0T3BlblNvdXJjZVJlc3VsdDxNPikgPT4ge1xuICAgICAgICAgICAgY29uc3QgdmFsdWVzVG9BZGQgPSBtZXJnZUFycmF5cyhbcmVzdWx0LnNlbGVjdCwgcmVzdWx0Lm9wdGlvbnNdKTtcblxuICAgICAgICAgICAgaWYgKHZhbHVlc1RvQWRkLmxlbmd0aCkge1xuICAgICAgICAgICAgICB0aGlzLmFkZFRvT3BlblNvdXJjZU1hcCh2YWx1ZXNUb0FkZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChyZXN1bHQuc2V0KSB7XG4gICAgICAgICAgICAgIHRoaXMuc2V0Q3VycmVudFZhbHVlKHJlc3VsdC5zZXQubWFwKCh4KSA9PiB0aGlzLnZhbHVlUmVhZGVyKHgpKSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdC5zZWxlY3QpIHtcbiAgICAgICAgICAgICAgdGhpcy5hZGRUb0N1cnJlbnRWYWx1ZShyZXN1bHQuc2VsZWN0Lm1hcCgoeCkgPT4gdGhpcy52YWx1ZVJlYWRlcih4KSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnRleHQucmVqZWN0KCk7XG4gICAgfVxuICB9O1xuXG4gIHByaXZhdGUgYWRkVG9PcGVuU291cmNlTWFwKGlucHV0OiBNW10pIHtcbiAgICBjb25zdCB7IHZhbHVlUmVhZGVyIH0gPSB0aGlzO1xuICAgIGNvbnN0IHsgdmFsdWVzOiBtZXRhLCB2YWx1ZXNTZXQ6IGluaXRpYWxWYWx1ZXMgfSA9IHRoaXMuX2Zyb21PcGVuU291cmNlLnZhbHVlO1xuXG4gICAgY29uc3QgbmV3TWV0YUZyb21JbnB1dDogU291cmNlU2VsZWN0VmFsdWU8VCwgTT5bXSA9IFtdO1xuICAgIGNvbnN0IHZhbHVlc1NldCA9IG5ldyBTZXQoaW5pdGlhbFZhbHVlcyk7XG5cbiAgICBpbnB1dC5mb3JFYWNoKCh4KSA9PiB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHZhbHVlUmVhZGVyKHgpO1xuXG4gICAgICBpZiAoIXZhbHVlc1NldC5oYXModmFsdWUpKSB7XG4gICAgICAgIG5ld01ldGFGcm9tSW5wdXQucHVzaCh7IG1ldGE6IHgsIHZhbHVlIH0pO1xuICAgICAgICB2YWx1ZXNTZXQuYWRkKHZhbHVlKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmIChuZXdNZXRhRnJvbUlucHV0Lmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuX2Zyb21PcGVuU291cmNlLm5leHQoe1xuICAgICAgICB2YWx1ZXM6IFsuLi5tZXRhLCAuLi5uZXdNZXRhRnJvbUlucHV0XSxcbiAgICAgICAgdmFsdWVzU2V0OiB2YWx1ZXNTZXRcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYWRkVG9DdXJyZW50VmFsdWUodmFsdWVzOiBUW10pIHtcbiAgICBjb25zdCBjdXJyZW50VmFsdWUgPSBhc0FycmF5KHRoaXMuZm9ybUNvbnRyb2wudmFsdWUpO1xuICAgIGNvbnN0IG5ld1ZhbHVlQXJyYXkgPSBbLi4uY3VycmVudFZhbHVlLCAuLi52YWx1ZXNdO1xuICAgIHRoaXMuc2V0Q3VycmVudFZhbHVlKG5ld1ZhbHVlQXJyYXkpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRDdXJyZW50VmFsdWUobmV3VmFsdWVBcnJheTogVFtdKSB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLm11bHRpcGxlID8gbmV3VmFsdWVBcnJheSA6IGxhc3RWYWx1ZShuZXdWYWx1ZUFycmF5KTsgLy8gcGljayBsYXN0IHZhbHVlLCBhcyB0aGUgbGFzdCB2YWx1ZSBhZGRlZCBpcyB0aGUgbmV3ZXN0IHZhbHVlLlxuICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUodmFsdWUpO1xuICAgIHRoaXMuZm9ybUNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgICB0aGlzLmZvcm1Db250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImRieC1zb3VyY2Utc2VsZWN0LWZpZWxkXCI+XG4gIDxkaXYgY2xhc3M9XCJkYngtc291cmNlLXNlbGVjdC1maWVsZC1jb250ZW50XCI+XG4gICAgPG1hdC1zZWxlY3QgY2xhc3M9XCJkYngtc291cmNlLXNlbGVjdC1maWVsZC1zZWxlY3RcIiBbaWRdPVwiaWRcIiBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIiBbbXVsdGlwbGVdPVwicHJvcHMubXVsdGlwbGVcIj5cbiAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCB2YWx1ZSBvZiBub25Hcm91cGVkVmFsdWVzJCB8IGFzeW5jXCIgW3ZhbHVlXT1cInZhbHVlLnZhbHVlXCI+XG4gICAgICAgIHt7IHZhbHVlLmxhYmVsIH19XG4gICAgICA8L21hdC1vcHRpb24+XG4gICAgICA8bWF0LW9wdGdyb3VwICpuZ0Zvcj1cImxldCBvcHRpb25Hcm91cCBvZiBncm91cGVkT3B0aW9ucyQgfCBhc3luY1wiIFtsYWJlbF09XCJvcHRpb25Hcm91cC5sYWJlbFwiPlxuICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgdmFsdWUgb2Ygb3B0aW9uR3JvdXAudmFsdWVzXCIgW3ZhbHVlXT1cInZhbHVlLnZhbHVlXCI+XG4gICAgICAgICAge3sgdmFsdWUubGFiZWwgfX1cbiAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgPC9tYXQtb3B0Z3JvdXA+XG4gICAgPC9tYXQtc2VsZWN0PlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93T3BlblNvdXJjZUJ1dHRvblwiPlxuICAgICAgPGRieC1idXR0b24tc3BhY2VyPjwvZGJ4LWJ1dHRvbi1zcGFjZXI+XG4gICAgICA8ZGJ4LWFjdGlvbiBkYnhBY3Rpb25WYWx1ZSBbZGJ4QWN0aW9uSGFuZGxlcl09XCJoYW5kbGVTZWxlY3RPcHRpb25zXCIgY2xhc3M9XCJkYngtc291cmNlLXNlbGVjdC1maWVsZC1idXR0b25cIj5cbiAgICAgICAgPGRieC1idXR0b24gI2J1dHRvbiBkYnhBY3Rpb25CdXR0b24gW2ljb25Pbmx5XT1cInRydWVcIiBbaWNvbl09XCJzZWxlY3RCdXR0b25JY29uXCI+PC9kYngtYnV0dG9uPlxuICAgICAgPC9kYngtYWN0aW9uPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbiAgPGRieC1sb2FkaW5nIGNsYXNzPVwiZGJ4LXNvdXJjZS1zZWxlY3QtZmllbGQtbG9hZGluZ1wiIFtsaW5lYXJdPVwidHJ1ZVwiIFtjb250ZXh0XT1cImNvbnRleHRcIj48L2RieC1sb2FkaW5nPlxuPC9kaXY+XG4iXX0=
326
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlc2VsZWN0LmZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1mb3JtL3NyYy9saWIvZm9ybWx5L2ZpZWxkL3NlbGVjdGlvbi9zb3VyY2VzZWxlY3Qvc291cmNlc2VsZWN0LmZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1mb3JtL3NyYy9saWIvZm9ybWx5L2ZpZWxkL3NlbGVjdGlvbi9zb3VyY2VzZWxlY3Qvc291cmNlc2VsZWN0LmZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQWdCLDhCQUE4QixFQUFFLHFCQUFxQixFQUFnQyxxQkFBcUIsRUFBRSxrQkFBa0IsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLGdDQUFnQyxFQUFFLG1CQUFtQixFQUFFLHFCQUFxQixFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUN2VCxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBcUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBYyxhQUFhLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hLLE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLHNCQUFzQixFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBUyxXQUFXLEVBQWdCLGNBQWMsRUFBRSxvQkFBb0IsRUFBRSxpQkFBaUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuUCxPQUFPLEVBQUUsU0FBUyxFQUFvQixNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7OztBQTZDOUU7O0dBRUc7QUFJSCxNQUFNLE9BQU8saUNBQXNGLFNBQVEsU0FBd0Q7SUFDaEosYUFBYSxHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQztJQUN6Qyx1QkFBdUIsR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7SUFDbkQsaUJBQWlCLEdBQUcsSUFBSSxlQUFlLENBQWtDLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQztJQUNwRixlQUFlLEdBQUcsSUFBSSxlQUFlLENBQXlDLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQztJQUV6RixlQUFlLEdBQUcsSUFBSSxlQUFlLENBQThCLFNBQVMsQ0FBQyxDQUFDO0lBQzlFLGVBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBaUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM1RyxZQUFZLEdBQUcsSUFBSSxlQUFlLENBQWlELFNBQVMsQ0FBQyxDQUFDO0lBRy9HLGFBQWEsQ0FBYztJQUVsQixZQUFZLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUV4RCx3QkFBd0IsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FDeEQsU0FBUyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFDM0UsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7SUFFTyxPQUFPLEdBQW9CLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFeEcsc0JBQXNCLEdBQW9CLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUNsRSxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUU7UUFDbkIsSUFBSSxNQUFNLEdBQVcsR0FBRyxDQUFDO1FBRXpCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLEVBQUU7WUFDdEMsTUFBTSxHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDcEM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQUssQ0FBQyxFQUNoQixvQkFBb0IsRUFBRSxFQUN0QixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDekIsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7SUFFTyxrQ0FBa0MsR0FBd0QsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FDakksb0JBQW9CLEVBQUUsRUFDdEIsU0FBUyxDQUFDLENBQUMsTUFBVyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsOEJBQThCLENBQUMsTUFBTSxDQUFDLENBQUMsRUFDdkUsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7SUFFTyxZQUFZLEdBQTZELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUN0RyxXQUFXLEVBQUUsRUFDYixTQUFTLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtRQUN2QixNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBRTdCLE9BQU8sVUFBVSxDQUFDLElBQUksQ0FDcEIsU0FBUyxDQUFDLENBQUMsT0FBb0MsRUFBRSxFQUFFO1lBQ2pELE1BQU0sU0FBUyxHQUF3RCxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFL0osSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtnQkFDMUIsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDOUI7aUJBQU07Z0JBQ0wsT0FBTyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUNsQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtvQkFDUixNQUFNLGdCQUFnQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLDhCQUE4QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQzVFLE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztvQkFDMUQsTUFBTSxLQUFLLEdBQW1DLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO3dCQUN2RSxNQUFNLEtBQUssR0FBaUM7NEJBQzFDLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSzs0QkFDZCxNQUFNLEVBQUcsQ0FBQyxDQUFDLEtBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7eUJBQzdFLENBQUM7d0JBRUYsT0FBTyxLQUFLLENBQUM7b0JBQ2YsQ0FBQyxDQUFDLENBQUM7b0JBRUgsT0FBTzt3QkFDTCxPQUFPO3dCQUNQLEtBQUs7cUJBQ04sQ0FBQztnQkFDSixDQUFDLENBQUMsQ0FDSCxDQUFDO2FBQ0g7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUVPLGVBQWUsR0FBNkMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQzVGLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsRUFDM0UsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7UUFDUixNQUFNLEtBQUssR0FBaUM7WUFDMUMsS0FBSyxFQUFFLEVBQUU7WUFDVCxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU07U0FDakIsQ0FBQztRQUVGLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQyxDQUFDLEVBQ0YsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7SUFFTyw0QkFBNEIsR0FBNkUsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQzdLLEdBQUcsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLEVBQUUsV0FBVyxDQUFDLEVBQUUsRUFBRTtRQUN6QyxNQUFNLGdCQUFnQixHQUFHLFdBQVcsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ2pELE1BQU0sS0FBSyxHQUFtQyxDQUFDLG1CQUFtQixFQUFFLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQztRQUV6RixNQUFNLE1BQU0sR0FBaUU7WUFDM0UsT0FBTyxFQUFFLFdBQVcsQ0FBQyxPQUFPO1lBQzVCLEtBQUs7U0FDTixDQUFDO1FBRUYsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQyxDQUFDLEVBQ0YsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7SUFFTyxvQkFBb0IsR0FBNkQsSUFBSSxDQUFDLGtDQUFrQyxDQUFDLElBQUksQ0FDcEksU0FBUyxDQUFDLENBQUMsNEJBQXFFLEVBQUUsRUFBRTtRQUNsRixJQUFJLDhCQUE4QixDQUFDLDRCQUE0QixDQUFDLEVBQUU7WUFDaEUsTUFBTSxxQkFBcUIsR0FBaUM7Z0JBQzFELEtBQUssRUFBRSxFQUFFO2dCQUNULE1BQU0sRUFBRSw0QkFBNEIsQ0FBQyxLQUFLO2FBQzNDLENBQUM7WUFFRixPQUFPLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLENBQzNDLEdBQUcsQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFO2dCQUNuQixNQUFNLFNBQVMsR0FBbUMsQ0FBQyxxQkFBcUIsRUFBRSxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFFakcsTUFBTSxNQUFNLEdBQWlEO29CQUMzRCxPQUFPLEVBQUUsNEJBQTRCLENBQUMsT0FBTyxJQUFJLFlBQVksQ0FBQyxPQUFPO29CQUNyRSxLQUFLLEVBQUUsU0FBUztpQkFDakIsQ0FBQztnQkFFRixPQUFPLE1BQU0sQ0FBQztZQUNoQixDQUFDLENBQUMsQ0FDSCxDQUFDO1NBQ0g7YUFBTTtZQUNMLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBaUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUM3RDtJQUNILENBQUMsQ0FBQyxFQUNGLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO0lBRU8scUJBQXFCLEdBQW9FLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQzlILGdDQUFnQyxDQUM5QixTQUFTLENBQUMsQ0FBQyxNQUFzQyxFQUFFLEVBQUU7UUFDbkQsTUFBTSx1QkFBdUIsR0FBRyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQWdELENBQUM7UUFFMUgsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLEdBQUcsRUFBSyxDQUFDO1FBQ3ZDLE1BQU0sZUFBZSxHQUE4QixFQUFFLENBQUM7UUFFdEQsTUFBTSxzQkFBc0IsR0FBbUMsRUFBRSxDQUFDO1FBRWxFLG9DQUFvQztRQUNwQyxLQUFLLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE9BQU8sRUFBRSxDQUFDO2FBQzFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDdkMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRTtZQUMzQixNQUFNLE1BQU0sR0FBOEIsRUFBRSxDQUFDO1lBRTdDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDdkIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRTtvQkFDbkMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEVBQUU7d0JBQzdDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7d0JBQ3pCLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7d0JBQ2xDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7cUJBQzFDO2dCQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7WUFFSCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUNyQixzQkFBc0IsQ0FBQyxJQUFJLENBQUM7b0JBQzFCLEtBQUs7b0JBQ0wsTUFBTTtpQkFDUCxDQUFDLENBQUM7YUFDSjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUwsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLCtCQUErQixDQUFDLGVBQWUsQ0FBQyxDQUFDLElBQUksQ0FDcEUsR0FBRyxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUU7WUFDcEIsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLEdBQUcsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXpFLE1BQU0sYUFBYSxHQUEwQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtnQkFDckcsTUFBTSxNQUFNLEdBQUcsc0JBQXNCLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUVuRyxPQUFPO29CQUNMLEtBQUssRUFBRSxVQUFVLENBQUMsS0FBSztvQkFDdkIsTUFBTTtpQkFDUCxDQUFDO1lBQ0osQ0FBQyxDQUFDLENBQUM7WUFFSCxPQUFPLGFBQWEsQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FDSCxDQUFDO1FBRUYsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDLENBQUMsQ0FDSCxFQUNELFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO0lBRU8sZ0JBQWdCLEdBQXNELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUUvSSxRQUFRLEdBQTBDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQ25GLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1FBQ1IsTUFBTSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRSxHQUFHLGNBQWMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUUxRyxNQUFNLE1BQU0sR0FBOEI7WUFDeEMsZ0JBQWdCLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sSUFBSSxFQUFFO1lBQ2xELGFBQWE7U0FDZCxDQUFDO1FBRUYsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQyxDQUFDLEVBQ0YsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7SUFFTyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7SUFDdkUsZUFBZSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFFM0UsSUFBSSxpQkFBaUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFJLG9CQUFvQjtRQUN0QixPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQUksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLElBQUksS0FBSyxDQUFDO0lBQzlDLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBSSxxQkFBcUI7UUFDdkIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFDO0lBQzFDLENBQUM7SUFFRCw4QkFBOEIsQ0FBQyxNQUFXO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLDZCQUE2QixDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FDcEQsR0FBRyxDQUFDLENBQUMsa0JBQTZDLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLEVBQ3pGLHFCQUFxQixFQUFFLEVBQ3ZCLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO0lBQ0osQ0FBQztJQUVELDZCQUE2QixDQUFDLE1BQVc7UUFDdkMsTUFBTSxFQUFFLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQztRQUU3QixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQ2hDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ25CLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBeUMsQ0FBQyxDQUFDO1lBRXBILE1BQU07WUFDSixFQUFFO1lBQ0YsUUFBUSxFQUFFLE9BQU8sRUFDakIsUUFBUSxFQUFFLFNBQVMsRUFDcEIsR0FBRyxjQUFjLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUV4RCxJQUFJLEdBQTBDLENBQUM7WUFFL0MsSUFBSSxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDeEIseUJBQXlCO2dCQUN6QixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBRWxFLEdBQUcsR0FBRyxhQUFhLENBQUMsSUFBSSxDQUN0QixLQUFLLEVBQUUsRUFDUCxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRTtvQkFDbEIsTUFBTSxrQkFBa0IsR0FBOEIsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO29CQUN0SCxNQUFNLGlCQUFpQixHQUFHLElBQUksR0FBRyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFFL0UsMERBQTBEO29CQUMxRCxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUUzRCw0QkFBNEI7b0JBQzVCLE1BQU0sZ0JBQWdCLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUV2Rix5QkFBeUI7b0JBQ3pCLE9BQU8sZ0JBQWdCLENBQUM7Z0JBQzFCLENBQUMsQ0FBQyxDQUNILENBQUM7YUFDSDtpQkFBTTtnQkFDTCwrQ0FBK0M7Z0JBQy9DLEdBQUcsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNwQztZQUVELE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxnQ0FBZ0MsQ0FBQyxNQUFpQztRQUNoRSxPQUFPLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQ3RELEdBQUcsQ0FBQyxDQUFDLGFBQStDLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUN0RixxQkFBcUIsRUFBRSxFQUN2QixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztJQUNKLENBQUM7SUFFRCwrQkFBK0IsQ0FBQyxNQUFpQztRQUMvRCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUM5QixRQUFRLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNuQixNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFpQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQXlFLENBQUMsQ0FBQztZQUVyTixNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM5RCxNQUFNLFlBQVksR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3hELElBQUksR0FBaUQsQ0FBQztZQUV0RCxJQUFJLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUMzQiw0QkFBNEI7Z0JBQzVCLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUU3RSxHQUFHLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxDQUN6QixLQUFLLEVBQUUsRUFDUCxHQUFHLENBQUMsQ0FBQyxjQUFjLEVBQUUsRUFBRTtvQkFDckIsTUFBTSxxQkFBcUIsR0FBMkMsY0FBbUQsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO29CQUNuSixNQUFNLGlCQUFpQixHQUFHLElBQUksR0FBRyxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBRXZGLDBEQUEwRDtvQkFDMUQscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBRW5FLDRCQUE0QjtvQkFDNUIsTUFBTSxnQkFBZ0IsR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBRXZGLHlCQUF5QjtvQkFDekIsT0FBTyxnQkFBZ0IsQ0FBQztnQkFDMUIsQ0FBQyxDQUFDLENBQ0gsQ0FBQzthQUNIO2lCQUFNO2dCQUNMLGdEQUFnRDtnQkFDaEQsR0FBRyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3ZDO1lBRUQsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVRLE9BQU8sR0FBRyxtQkFBbUIsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDO0lBRTVFLFFBQVE7UUFDTixNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBRTdCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFbEQsSUFBSSxJQUFJLENBQUMscUJBQXFCLElBQUksSUFBSSxFQUFFO1lBQ3RDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUM5SDtRQUVELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUU1QyxpRkFBaUY7UUFDakYsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2xGLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUM7WUFDN0MsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVRLFdBQVc7UUFDbEIsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVRLG1CQUFtQixHQUE4QixDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUN2RSxNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBRTVCLElBQUksVUFBVSxFQUFFO1lBQ2QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUM7WUFDaEQsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztZQUN6QyxPQUFPLENBQUMsMEJBQTBCLENBQ2hDLFNBQVMsQ0FBQyxJQUFJLENBQ1osS0FBSyxFQUFFLEVBQ1AsR0FBRyxDQUFDLENBQUMsTUFBdUMsRUFBRSxFQUFFO2dCQUM5QyxNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2dCQUVqRSxJQUFJLFdBQVcsQ0FBQyxNQUFNLEVBQUU7b0JBQ3RCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztpQkFDdEM7Z0JBRUQsSUFBSSxNQUFNLENBQUMsR0FBRyxFQUFFO29CQUNkLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUNsRTtxQkFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUU7b0JBQ3hCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ3ZFO1lBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FDRixDQUFDO1NBQ0g7YUFBTTtZQUNMLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUNsQjtJQUNILENBQUMsQ0FBQztJQUVNLGtCQUFrQixDQUFDLEtBQVU7UUFDbkMsTUFBTSxFQUFFLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQztRQUM3QixNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUM7UUFFOUUsTUFBTSxnQkFBZ0IsR0FBOEIsRUFBRSxDQUFDO1FBQ3ZELE1BQU0sU0FBUyxHQUFHLElBQUksR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXpDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNsQixNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFN0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3pCLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztnQkFDMUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUN0QjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQy9CLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDO2dCQUN4QixNQUFNLEVBQUUsQ0FBQyxHQUFHLElBQUksRUFBRSxHQUFHLGdCQUFnQixDQUFDO2dCQUN0QyxTQUFTLEVBQUUsU0FBUzthQUNyQixDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxNQUFXO1FBQ25DLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JELE1BQU0sYUFBYSxHQUFHLENBQUMsR0FBRyxZQUFZLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFTyxlQUFlLENBQUMsYUFBa0I7UUFDeEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxnRUFBZ0U7UUFDeEksSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ25DLENBQUM7d0dBL2JVLGlDQUFpQzs0RkFBakMsaUNBQWlDLHdJQVVmLFVBQVUsb0RDakV6Qyxpb0NBcUJBOzs0RkRrQ2EsaUNBQWlDO2tCQUg3QyxTQUFTOzs4QkFjUixhQUFhO3NCQURaLFNBQVM7dUJBQUMsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZmlsdGVyTWF5YmUsIExvYWRpbmdTdGF0ZSwgaXNMb2FkaW5nU3RhdGVXaXRoRGVmaW5lZFZhbHVlLCBpc0xvYWRpbmdTdGF0ZUxvYWRpbmcsIExvYWRpbmdTdGF0ZVdpdGhEZWZpbmVkVmFsdWUsIHN0YXJ0V2l0aEJlZ2luTG9hZGluZywgU3Vic2NyaXB0aW9uT2JqZWN0LCBzdWNjZXNzUmVzdWx0LCBiZWdpbkxvYWRpbmcsIG1hcExvYWRpbmdTdGF0ZVZhbHVlV2l0aE9wZXJhdG9yLCBsb2FkaW5nU3RhdGVDb250ZXh0LCB2YWx1ZUZyb21Mb2FkaW5nU3RhdGUsIFdvcmtVc2luZ0NvbnRleHQgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgc3dpdGNoTWFwLCBzaGFyZVJlcGxheSwgc3RhcnRXaXRoLCBtZXJnZU1hcCwgc2NhbiwgQmVoYXZpb3JTdWJqZWN0LCB0YXAsIGZpcnN0LCBPYnNlcnZhYmxlLCBjb21iaW5lTGF0ZXN0LCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgYWRkVG9TZXRDb3B5LCBhc0FycmF5LCBjb252ZXJ0TWF5YmVUb0FycmF5LCBmaWx0ZXJNYXliZUFycmF5VmFsdWVzLCBsYXN0VmFsdWUsIG1ha2VWYWx1ZXNHcm91cE1hcCwgTWF5YmUsIG1lcmdlQXJyYXlzLCBQcmltYXRpdmVLZXksIHNlcGFyYXRlVmFsdWVzLCBzZXRDb250YWluc0FsbFZhbHVlcywgc2V0c0FyZUVxdWl2YWxlbnQsIHNvcnRCeVN0cmluZ0Z1bmN0aW9uIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBGaWVsZFR5cGUsIEZvcm1seUZpZWxkUHJvcHMgfSBmcm9tICdAbmd4LWZvcm1seS9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IEZpZWxkVHlwZUNvbmZpZyB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHsgU291cmNlU2VsZWN0VmFsdWVNZXRhTG9hZGVyLCBTb3VyY2VTZWxlY3RNZXRhVmFsdWVSZWFkZXIsIFNvdXJjZVNlbGVjdE9wZW5GdW5jdGlvbiwgU291cmNlU2VsZWN0TG9hZFNvdXJjZXNGdW5jdGlvbiwgU291cmNlU2VsZWN0TG9hZFNvdXJjZSwgU291cmNlU2VsZWN0TG9hZFNvdXJjZUxvYWRpbmdTdGF0ZSwgU291cmNlU2VsZWN0RGlzcGxheVZhbHVlLCBTb3VyY2VTZWxlY3RWYWx1ZSwgU291cmNlU2VsZWN0RGlzcGxheUZ1bmN0aW9uLCBTb3VyY2VTZWxlY3REaXNwbGF5VmFsdWVHcm91cCwgU291cmNlU2VsZWN0VmFsdWVHcm91cCwgU291cmNlU2VsZWN0T3B0aW9ucywgU291cmNlU2VsZWN0T3BlblNvdXJjZVJlc3VsdCB9IGZyb20gJy4vc291cmNlc2VsZWN0JztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuZXhwb3J0IGludGVyZmFjZSBTb3VyY2VTZWxlY3RGaWVsZFByb3BzPFQgZXh0ZW5kcyBQcmltYXRpdmVLZXkgPSBQcmltYXRpdmVLZXksIE0gPSB1bmtub3duPiBleHRlbmRzIEZvcm1seUZpZWxkUHJvcHMge1xuICAvKipcbiAgICogRnVuY3Rpb24gdG8gb3BlbiB0aGUgc291cmNlIGFuZCByZXF1ZXN0IHZhbHVlcy5cbiAgICovXG4gIHJlYWRvbmx5IG9wZW5Tb3VyY2U/OiBTb3VyY2VTZWxlY3RPcGVuRnVuY3Rpb248TT47XG4gIC8qKlxuICAgKiBMb2FkcyB0aGUgc291cmNlcyB0byBkaXNwbGF5IGVudHJpZXMgZnJvbS5cbiAgICovXG4gIHJlYWRvbmx5IGxvYWRTb3VyY2VzPzogU291cmNlU2VsZWN0TG9hZFNvdXJjZXNGdW5jdGlvbjxNPjtcbiAgLyoqXG4gICAqIFJlYWRzIHRoZSB2YWx1ZSBmcm9tIGEgbWV0YSB2YWx1ZS5cbiAgICovXG4gIHJlYWRvbmx5IHZhbHVlUmVhZGVyOiBTb3VyY2VTZWxlY3RNZXRhVmFsdWVSZWFkZXI8VCwgTT47XG4gIC8qKlxuICAgKiBMb2FkcyBtZXRhZGF0YSBmb3IgdGhlIGlucHV0IHZhbHVlcy5cbiAgICovXG4gIHJlYWRvbmx5IG1ldGFMb2FkZXI6IFNvdXJjZVNlbGVjdFZhbHVlTWV0YUxvYWRlcjxULCBNPjtcbiAgLyoqXG4gICAqIFVzZWQgZm9yIGJ1aWxkaW5nIGEgZGlzcGxheSB2YWx1ZSBnaXZlbiB0aGUgaW5wdXQuXG4gICAqL1xuICByZWFkb25seSBkaXNwbGF5Rm9yVmFsdWU6IFNvdXJjZVNlbGVjdERpc3BsYXlGdW5jdGlvbjxULCBNPjtcbiAgLyoqXG4gICAqIFNlbGVjdCBidXR0b24gaWNvblxuICAgKi9cbiAgcmVhZG9ubHkgc2VsZWN0QnV0dG9uSWNvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRoZSBzZWxlY3Rpb24gaXMgYXMgYW4gYXJyYXkuXG4gICAqL1xuICByZWFkb25seSBtdWx0aXBsZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIG9ic2VydmFibGUgdGhhdCB3aWxsIHRyaWdnZXIgdGhlIGNsZWFyaW5nIG9mIGFsbCBjYWNoZWQgZGlzcGxheSB2YWx1ZXMuXG4gICAqL1xuICByZWFkb25seSByZWZyZXNoRGlzcGxheVZhbHVlcyQ/OiBPYnNlcnZhYmxlPHVua25vd24+O1xufVxuXG5pbnRlcmZhY2UgU2VsZWN0RmllbGRPcGVuU291cmNlTWFwPFQgZXh0ZW5kcyBQcmltYXRpdmVLZXkgPSBQcmltYXRpdmVLZXksIE0gPSB1bmtub3duPiB7XG4gIHJlYWRvbmx5IHZhbHVlczogU291cmNlU2VsZWN0VmFsdWU8VCwgTT5bXTtcbiAgcmVhZG9ubHkgdmFsdWVzU2V0OiBTZXQ8VD47XG59XG5cbi8qKlxuICogQ29tcG9uZW50IHRoYXQgZGlzcGxheXMgYSBzZWxlY3QgdmlldyAobXVsdGkgb3Igbm90KVxuICovXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6ICdzb3VyY2VzZWxlY3QuZmllbGQuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIERieEZvcm1Tb3VyY2VTZWxlY3RGaWVsZENvbXBvbmVudDxUIGV4dGVuZHMgUHJpbWF0aXZlS2V5ID0gUHJpbWF0aXZlS2V5LCBNID0gdW5rbm93bj4gZXh0ZW5kcyBGaWVsZFR5cGU8RmllbGRUeXBlQ29uZmlnPFNvdXJjZVNlbGVjdEZpZWxkUHJvcHM8VCwgTT4+PiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfY2FjaGVNZXRhU3ViID0gbmV3IFN1YnNjcmlwdGlvbk9iamVjdCgpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9jbGVhckRpc3BsYXlIYXNoTWFwU3ViID0gbmV3IFN1YnNjcmlwdGlvbk9iamVjdCgpO1xuICBwcml2YXRlIHJlYWRvbmx5IF92YWx1ZU1ldGFIYXNoTWFwID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXA8VCwgU291cmNlU2VsZWN0VmFsdWU8VCwgTT4+PihuZXcgTWFwKCkpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9kaXNwbGF5SGFzaE1hcCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWFwPFQsIFNvdXJjZVNlbGVjdERpc3BsYXlWYWx1ZTxULCBNPj4+KG5ldyBNYXAoKSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZm9ybUNvbnRyb2xPYnMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1heWJlPEFic3RyYWN0Q29udHJvbDxUW10+Pj4odW5kZWZpbmVkKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZnJvbU9wZW5Tb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNlbGVjdEZpZWxkT3BlblNvdXJjZU1hcDxULCBNPj4oeyB2YWx1ZXM6IFtdLCB2YWx1ZXNTZXQ6IG5ldyBTZXQoKSB9KTtcbiAgcHJpdmF0ZSByZWFkb25seSBfbG9hZFNvdXJjZXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1heWJlPE9ic2VydmFibGU8U291cmNlU2VsZWN0TG9hZFNvdXJjZTxNPltdPj4+KHVuZGVmaW5lZCk7XG5cbiAgQFZpZXdDaGlsZCgnYnV0dG9uJywgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IGZhbHNlIH0pXG4gIGJ1dHRvbkVsZW1lbnQhOiBFbGVtZW50UmVmO1xuXG4gIHJlYWRvbmx5IGZvcm1Db250cm9sJCA9IHRoaXMuX2Zvcm1Db250cm9sT2JzLnBpcGUoZmlsdGVyTWF5YmUoKSk7XG5cbiAgcmVhZG9ubHkgY3VycmVudEZvcm1Db250cm9sVmFsdWUkID0gdGhpcy5mb3JtQ29udHJvbCQucGlwZShcbiAgICBzd2l0Y2hNYXAoKGNvbnRyb2wpID0+IGNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKGNvbnRyb2wudmFsdWUpKSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSB2YWx1ZXMkOiBPYnNlcnZhYmxlPFRbXT4gPSB0aGlzLmN1cnJlbnRGb3JtQ29udHJvbFZhbHVlJC5waXBlKG1hcChjb252ZXJ0TWF5YmVUb0FycmF5KSwgc2hhcmVSZXBsYXkoMSkpO1xuXG4gIHJlYWRvbmx5IGFsbFZhbHVlc0V2ZXJTZWxlY3RlZCQ6IE9ic2VydmFibGU8VFtdPiA9IHRoaXMudmFsdWVzJC5waXBlKFxuICAgIHNjYW4oKGFjYywgdmFsdWVzKSA9PiB7XG4gICAgICBsZXQgcmVzdWx0OiBTZXQ8VD4gPSBhY2M7XG5cbiAgICAgIGlmICghc2V0Q29udGFpbnNBbGxWYWx1ZXMoYWNjLCB2YWx1ZXMpKSB7XG4gICAgICAgIHJlc3VsdCA9IGFkZFRvU2V0Q29weShhY2MsIHZhbHVlcyk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSwgbmV3IFNldDxUPigpKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIG1hcCgoeCkgPT4gQXJyYXkuZnJvbSh4KSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBzb3VyY2VTZWxlY3RWYWx1ZXNGcm9tVmFsdWVzU3RhdGUkOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxTb3VyY2VTZWxlY3RWYWx1ZTxULCBNPltdPj4gPSB0aGlzLmFsbFZhbHVlc0V2ZXJTZWxlY3RlZCQucGlwZShcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHN3aXRjaE1hcCgodmFsdWVzOiBUW10pID0+IHRoaXMubG9hZFNvdXJjZVNlbGVjdFZhbHVlRm9yVmFsdWVzKHZhbHVlcykpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgbG9hZFNvdXJjZXMkOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxTb3VyY2VTZWxlY3RWYWx1ZUdyb3VwPFQsIE0+W10+PiA9IHRoaXMuX2xvYWRTb3VyY2VzLnBpcGUoXG4gICAgZmlsdGVyTWF5YmUoKSxcbiAgICBzd2l0Y2hNYXAoKGxvYWRTb3VyY2UpID0+IHtcbiAgICAgIGNvbnN0IHsgdmFsdWVSZWFkZXIgfSA9IHRoaXM7XG5cbiAgICAgIHJldHVybiBsb2FkU291cmNlLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgoc291cmNlczogU291cmNlU2VsZWN0TG9hZFNvdXJjZTxNPltdKSA9PiB7XG4gICAgICAgICAgY29uc3Qgc291cmNlT2JzOiBPYnNlcnZhYmxlPFNvdXJjZVNlbGVjdExvYWRTb3VyY2VMb2FkaW5nU3RhdGU8TT4+W10gPSBzb3VyY2VzLm1hcCgoeCkgPT4geC5tZXRhLnBpcGUobWFwKChtZXRhU3RhdGUpID0+ICh7IC4uLm1ldGFTdGF0ZSwgbGFiZWw6IHgubGFiZWwgfSkpKSk7XG5cbiAgICAgICAgICBpZiAoc291cmNlT2JzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIG9mKHN1Y2Nlc3NSZXN1bHQoW10pKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3Qoc291cmNlT2JzKS5waXBlKFxuICAgICAgICAgICAgICBtYXAoKHgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdGF0ZXNXaXRoVmFsdWVzID0geC5maWx0ZXIoKHkpID0+IGlzTG9hZGluZ1N0YXRlV2l0aERlZmluZWRWYWx1ZSh5KSk7XG4gICAgICAgICAgICAgICAgY29uc3QgbG9hZGluZyA9IHguZmluZEluZGV4KGlzTG9hZGluZ1N0YXRlTG9hZGluZykgIT09IC0xO1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlOiBTb3VyY2VTZWxlY3RWYWx1ZUdyb3VwPFQsIE0+W10gPSBzdGF0ZXNXaXRoVmFsdWVzLm1hcCgoeSkgPT4ge1xuICAgICAgICAgICAgICAgICAgY29uc3QgZ3JvdXA6IFNvdXJjZVNlbGVjdFZhbHVlR3JvdXA8VCwgTT4gPSB7XG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiB5LmxhYmVsLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZXM6ICh5LnZhbHVlIGFzIE1bXSkubWFwKChtZXRhKSA9PiAoeyBtZXRhLCB2YWx1ZTogdmFsdWVSZWFkZXIobWV0YSkgfSkpXG4gICAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgICByZXR1cm4gZ3JvdXA7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgbG9hZGluZyxcbiAgICAgICAgICAgICAgICAgIHZhbHVlXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9KVxuICApO1xuXG4gIHJlYWRvbmx5IGZyb21PcGVuU291cmNlJDogT2JzZXJ2YWJsZTxTb3VyY2VTZWxlY3RWYWx1ZUdyb3VwPFQsIE0+PiA9IHRoaXMuX2Zyb21PcGVuU291cmNlLnBpcGUoXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKGEsIGIpID0+IHNldHNBcmVFcXVpdmFsZW50KGEudmFsdWVzU2V0LCBiLnZhbHVlc1NldCkpLFxuICAgIG1hcCgoeCkgPT4ge1xuICAgICAgY29uc3QgZ3JvdXA6IFNvdXJjZVNlbGVjdFZhbHVlR3JvdXA8VCwgTT4gPSB7XG4gICAgICAgIGxhYmVsOiAnJyxcbiAgICAgICAgdmFsdWVzOiB4LnZhbHVlc1xuICAgICAgfTtcblxuICAgICAgcmV0dXJuIGdyb3VwO1xuICAgIH0pLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgdmFsdWVHcm91cHNGcm9tU291cmNlc1N0YXRlJDogT2JzZXJ2YWJsZTxMb2FkaW5nU3RhdGVXaXRoRGVmaW5lZFZhbHVlPFNvdXJjZVNlbGVjdFZhbHVlR3JvdXA8VCwgTT5bXT4+ID0gY29tYmluZUxhdGVzdChbdGhpcy5mcm9tT3BlblNvdXJjZSQsIHRoaXMubG9hZFNvdXJjZXMkXSkucGlwZShcbiAgICBtYXAoKFtmcm9tT3BlblNvdXJjZUdyb3VwLCBsb2FkU291cmNlc10pID0+IHtcbiAgICAgIGNvbnN0IGxvYWRTb3VyY2VzVmFsdWUgPSBsb2FkU291cmNlcy52YWx1ZSA/PyBbXTtcbiAgICAgIGNvbnN0IHZhbHVlOiBTb3VyY2VTZWxlY3RWYWx1ZUdyb3VwPFQsIE0+W10gPSBbZnJvbU9wZW5Tb3VyY2VHcm91cCwgLi4ubG9hZFNvdXJjZXNWYWx1ZV07XG5cbiAgICAgIGNvbnN0IHJlc3VsdDogTG9hZGluZ1N0YXRlV2l0aERlZmluZWRWYWx1ZTxTb3VyY2VTZWxlY3RWYWx1ZUdyb3VwPFQsIE0+W10+ID0ge1xuICAgICAgICBsb2FkaW5nOiBsb2FkU291cmNlcy5sb2FkaW5nLFxuICAgICAgICB2YWx1ZVxuICAgICAgfTtcblxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGFsbFZhbHVlR3JvdXBzU3RhdGUkOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxTb3VyY2VTZWxlY3RWYWx1ZUdyb3VwPFQsIE0+W10+PiA9IHRoaXMuc291cmNlU2VsZWN0VmFsdWVzRnJvbVZhbHVlc1N0YXRlJC5waXBlKFxuICAgIHN3aXRjaE1hcCgoc291cmNlU2VsZWN0VmFsdWVzRnJvbVZhbHVlczogTG9hZGluZ1N0YXRlPFNvdXJjZVNlbGVjdFZhbHVlPFQsIE0+W10+KSA9PiB7XG4gICAgICBpZiAoaXNMb2FkaW5nU3RhdGVXaXRoRGVmaW5lZFZhbHVlKHNvdXJjZVNlbGVjdFZhbHVlc0Zyb21WYWx1ZXMpKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlc0Zyb21WYWx1ZXNHcm91cDogU291cmNlU2VsZWN0VmFsdWVHcm91cDxULCBNPiA9IHtcbiAgICAgICAgICBsYWJlbDogJycsXG4gICAgICAgICAgdmFsdWVzOiBzb3VyY2VTZWxlY3RWYWx1ZXNGcm9tVmFsdWVzLnZhbHVlXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVHcm91cHNGcm9tU291cmNlc1N0YXRlJC5waXBlKFxuICAgICAgICAgIG1hcCgoc291cmNlc1N0YXRlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBhbGxHcm91cHM6IFNvdXJjZVNlbGVjdFZhbHVlR3JvdXA8VCwgTT5bXSA9IFt2YWx1ZXNGcm9tVmFsdWVzR3JvdXAsIC4uLnNvdXJjZXNTdGF0ZS52YWx1ZV07XG5cbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdDogTG9hZGluZ1N0YXRlPFNvdXJjZVNlbGVjdFZhbHVlR3JvdXA8VCwgTT5bXT4gPSB7XG4gICAgICAgICAgICAgIGxvYWRpbmc6IHNvdXJjZVNlbGVjdFZhbHVlc0Zyb21WYWx1ZXMubG9hZGluZyB8fCBzb3VyY2VzU3RhdGUubG9hZGluZyxcbiAgICAgICAgICAgICAgdmFsdWU6IGFsbEdyb3Vwc1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG9mKGJlZ2luTG9hZGluZzxTb3VyY2VTZWxlY3RWYWx1ZUdyb3VwPFQsIE0+W10+KHt9KSk7XG4gICAgICB9XG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBhbGxPcHRpb25Hcm91cHNTdGF0ZSQ6IE9ic2VydmFibGU8TG9hZGluZ1N0YXRlPFNvdXJjZVNlbGVjdERpc3BsYXlWYWx1ZUdyb3VwPFQsIE0+W10+PiA9IHRoaXMuYWxsVmFsdWVHcm91cHNTdGF0ZSQucGlwZShcbiAgICBtYXBMb2FkaW5nU3RhdGVWYWx1ZVdpdGhPcGVyYXRvcihcbiAgICAgIHN3aXRjaE1hcCgoZ3JvdXBzOiBTb3VyY2VTZWxlY3RWYWx1ZUdyb3VwPFQsIE0+W10pID0+IHtcbiAgICAgICAgY29uc3QgYWxsR3JvdXBzUmVkdWNlZEJ5TGFiZWwgPSBtYWtlVmFsdWVzR3JvdXBNYXAoZ3JvdXBzLCAoeCkgPT4geC5sYWJlbCkgYXMgTWFwPHN0cmluZywgU291cmNlU2VsZWN0VmFsdWVHcm91cDxULCBNPltdPjtcblxuICAgICAgICBjb25zdCB2YWx1ZXNFbmNvdW50ZXJlZCA9IG5ldyBTZXQ8VD4oKTtcbiAgICAgICAgY29uc3QgYWxsVW5pcXVlVmFsdWVzOiBTb3VyY2VTZWxlY3RWYWx1ZTxULCBNPltdID0gW107XG5cbiAgICAgICAgY29uc3Qgc2ltcGxpZmllZFZhbHVlc0dyb3VwczogU291cmNlU2VsZWN0VmFsdWVHcm91cDxULCBNPltdID0gW107XG5cbiAgICAgICAgLy8gc29ydCB0byBwdXQgdGhlIGJsYW5rIGxhYmVsIGZpcnN0XG4gICAgICAgIEFycmF5LmZyb20oYWxsR3JvdXBzUmVkdWNlZEJ5TGFiZWwuZW50cmllcygpKVxuICAgICAgICAgIC5zb3J0KHNvcnRCeVN0cmluZ0Z1bmN0aW9uKCh4KSA9PiB4WzBdKSlcbiAgICAgICAgICAuZm9yRWFjaCgoW2xhYmVsLCBncm91cHNdKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZXM6IFNvdXJjZVNlbGVjdFZhbHVlPFQsIE0+W10gPSBbXTtcblxuICAgICAgICAgICAgZ3JvdXBzLmZvckVhY2goKGdyb3VwKSA9PiB7XG4gICAgICAgICAgICAgIGdyb3VwLnZhbHVlcy5mb3JFYWNoKChzZWxlY3RWYWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghdmFsdWVzRW5jb3VudGVyZWQuaGFzKHNlbGVjdFZhbHVlLnZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goc2VsZWN0VmFsdWUpO1xuICAgICAgICAgICAgICAgICAgYWxsVW5pcXVlVmFsdWVzLnB1c2goc2VsZWN0VmFsdWUpO1xuICAgICAgICAgICAgICAgICAgdmFsdWVzRW5jb3VudGVyZWQuYWRkKHNlbGVjdFZhbHVlLnZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGlmICh2YWx1ZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICBzaW1wbGlmaWVkVmFsdWVzR3JvdXBzLnB1c2goe1xuICAgICAgICAgICAgICAgIGxhYmVsLFxuICAgICAgICAgICAgICAgIHZhbHVlc1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBvYnMgPSB0aGlzLmdldERpc3BsYXlWYWx1ZXNGb3JTZWxlY3RWYWx1ZXMoYWxsVW5pcXVlVmFsdWVzKS5waXBlKFxuICAgICAgICAgIG1hcCgoZGlzcGxheVZhbHVlcykgPT4ge1xuICAgICAgICAgICAgY29uc3QgZGlzcGxheVZhbHVlc01hcCA9IG5ldyBNYXAoZGlzcGxheVZhbHVlcy5tYXAoKHgpID0+IFt4LnZhbHVlLCB4XSkpO1xuXG4gICAgICAgICAgICBjb25zdCBkaXNwbGF5R3JvdXBzOiBTb3VyY2VTZWxlY3REaXNwbGF5VmFsdWVHcm91cDxULCBNPltdID0gc2ltcGxpZmllZFZhbHVlc0dyb3Vwcy5tYXAoKHZhbHVlR3JvdXApID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgdmFsdWVzID0gZmlsdGVyTWF5YmVBcnJheVZhbHVlcyh2YWx1ZUdyb3VwLnZhbHVlcy5tYXAoKHgpID0+IGRpc3BsYXlWYWx1ZXNNYXAuZ2V0KHgudmFsdWUpKSk7XG5cbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBsYWJlbDogdmFsdWVHcm91cC5sYWJlbCxcbiAgICAgICAgICAgICAgICB2YWx1ZXNcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICByZXR1cm4gZGlzcGxheUdyb3VwcztcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiBvYnM7XG4gICAgICB9KVxuICAgICksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBhbGxPcHRpb25Hcm91cHMkOiBPYnNlcnZhYmxlPFNvdXJjZVNlbGVjdERpc3BsYXlWYWx1ZUdyb3VwPFQsIE0+W10+ID0gdGhpcy5hbGxPcHRpb25Hcm91cHNTdGF0ZSQucGlwZSh2YWx1ZUZyb21Mb2FkaW5nU3RhdGUoKSwgc2hhcmVSZXBsYXkoMSkpO1xuXG4gIHJlYWRvbmx5IG9wdGlvbnMkOiBPYnNlcnZhYmxlPFNvdXJjZVNlbGVjdE9wdGlvbnM8VCwgTT4+ID0gdGhpcy5hbGxPcHRpb25Hcm91cHMkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB7XG4gICAgICBjb25zdCB7IGluY2x1ZGVkOiBncm91cGVkVmFsdWVzLCBleGNsdWRlZDogbm9uR3JvdXBlZEdyb3VwIH0gPSBzZXBhcmF0ZVZhbHVlcyh4LCAoeSkgPT4gQm9vbGVhbih5LmxhYmVsKSk7XG5cbiAgICAgIGNvbnN0IHJlc3VsdDogU291cmNlU2VsZWN0T3B0aW9uczxULCBNPiA9IHtcbiAgICAgICAgbm9uR3JvdXBlZFZhbHVlczogbm9uR3JvdXBlZEdyb3VwWzBdPy52YWx1ZXMgPz8gW10sXG4gICAgICAgIGdyb3VwZWRWYWx1ZXNcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBub25Hcm91cGVkVmFsdWVzJCA9IHRoaXMub3B0aW9ucyQucGlwZShtYXAoKHgpID0+IHgubm9uR3JvdXBlZFZhbHVlcykpO1xuICByZWFkb25seSBncm91cGVkT3B0aW9ucyQgPSB0aGlzLm9wdGlvbnMkLnBpcGUobWFwKCh4KSA9PiB4Lmdyb3VwZWRWYWx1ZXMpKTtcblxuICBnZXQgc291cmNlU2VsZWN0RmllbGQoKTogU291cmNlU2VsZWN0RmllbGRQcm9wczxULCBNPiB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHM7XG4gIH1cblxuICBnZXQgb3BlblNvdXJjZSgpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5vcGVuU291cmNlO1xuICB9XG5cbiAgZ2V0IHNob3dPcGVuU291cmNlQnV0dG9uKCkge1xuICAgIHJldHVybiBCb29sZWFuKHRoaXMub3BlblNvdXJjZSk7XG4gIH1cblxuICBnZXQgbG9hZFNvdXJjZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMubG9hZFNvdXJjZXM7XG4gIH1cblxuICBnZXQgdmFsdWVSZWFkZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMudmFsdWVSZWFkZXI7XG4gIH1cblxuICBnZXQgbWV0YUxvYWRlcigpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5tZXRhTG9hZGVyO1xuICB9XG5cbiAgZ2V0IGRpc3BsYXlGb3JWYWx1ZSgpOiBTb3VyY2VTZWxlY3REaXNwbGF5RnVuY3Rpb248VCwgTT4ge1xuICAgIHJldHVybiB0aGlzLnByb3BzLmRpc3BsYXlGb3JWYWx1ZTtcbiAgfVxuXG4gIGdldCBzZWxlY3RCdXR0b25JY29uKCkge1xuICAgIHJldHVybiB0aGlzLnByb3BzLnNlbGVjdEJ1dHRvbkljb24gPz8gJ2FkZCc7XG4gIH1cblxuICBnZXQgbXVsdGlwbGUoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMubXVsdGlwbGUgfHwgZmFsc2U7XG4gIH1cblxuICBnZXQgcmVmcmVzaERpc3BsYXlWYWx1ZXMkKCkge1xuICAgIHJldHVybiB0aGlzLnByb3BzLnJlZnJlc2hEaXNwbGF5VmFsdWVzJDtcbiAgfVxuXG4gIGxvYWRTb3VyY2VTZWxlY3RWYWx1ZUZvclZhbHVlcyh2YWx1ZXM6IFRbXSk6IE9ic2VydmFibGU8TG9hZGluZ1N0YXRlPFNvdXJjZVNlbGVjdFZhbHVlPFQsIE0+W10+PiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0U291cmNlU2VsZWN0VmFsdWVGb3JWYWx1ZXModmFsdWVzKS5waXBlKFxuICAgICAgbWFwKChzb3VyY2VTZWxlY3RWYWx1ZXM6IFNvdXJjZVNlbGVjdFZhbHVlPFQsIE0+W10pID0+IHN1Y2Nlc3NSZXN1bHQoc291cmNlU2VsZWN0VmFsdWVzKSksXG4gICAgICBzdGFydFdpdGhCZWdpbkxvYWRpbmcoKSxcbiAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgKTtcbiAgfVxuXG4gIGdldFNvdXJjZVNlbGVjdFZhbHVlRm9yVmFsdWVzKHZhbHVlczogVFtdKTogT2JzZXJ2YWJsZTxTb3VyY2VTZWxlY3RWYWx1ZTxULCBNPltdPiB7XG4gICAgY29uc3QgeyB2YWx1ZVJlYWRlciB9ID0gdGhpcztcblxuICAgIHJldHVybiB0aGlzLl92YWx1ZU1ldGFIYXNoTWFwLnBpcGUoXG4gICAgICBtZXJnZU1hcCgobWV0YU1hcCkgPT4ge1xuICAgICAgICBjb25zdCBtYXBwaW5nUmVzdWx0ID0gdmFsdWVzLm1hcCgoaGFzaCwgaSkgPT4gW2ksIGhhc2gsIG1ldGFNYXAuZ2V0KGhhc2gpXSBhcyBbbnVtYmVyLCBULCBTb3VyY2VTZWxlY3RWYWx1ZTxULCBNPl0pO1xuXG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAvL1xuICAgICAgICAgIGluY2x1ZGVkOiBoYXNNZXRhLFxuICAgICAgICAgIGV4Y2x1ZGVkOiBuZWVkc01ldGFcbiAgICAgICAgfSA9IHNlcGFyYXRlVmFsdWVzKG1hcHBpbmdSZXN1bHQsICh4KSA9PiBCb29sZWFuKHhbMl0pKTtcblxuICAgICAgICBsZXQgb2JzOiBPYnNlcnZhYmxlPFNvdXJjZVNlbGVjdFZhbHVlPFQsIE0+W10+O1xuXG4gICAgICAgIGlmIChuZWVkc01ldGEubGVuZ3RoID4gMCkge1xuICAgICAgICAgIC8vIEdvIGdldCB0aGUgbWV0YSB2YWx1ZS5cbiAgICAgICAgICBjb25zdCBtZXRhVmFsdWVzT2JzID0gdGhpcy5tZXRhTG9hZGVyKG5lZWRzTWV0YS5tYXAoKHgpID0+IHhbMV0pKTtcblxuICAgICAgICAgIG9icyA9IG1ldGFWYWx1ZXNPYnMucGlwZShcbiAgICAgICAgICAgIGZpcnN0KCksXG4gICAgICAgICAgICBtYXAoKG1ldGFSZXN1bHRzKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IG1ldGFSZXN1bHRzTWFwcGluZzogU291cmNlU2VsZWN0VmFsdWU8VCwgTT5bXSA9IG1ldGFSZXN1bHRzLm1hcCgobWV0YSkgPT4gKHsgbWV0YSwgdmFsdWU6IHZhbHVlUmVhZGVyKG1ldGEpIH0pKTtcbiAgICAgICAgICAgICAgY29uc3QgdmFsdWVJbmRleEhhc2hNYXAgPSBuZXcgTWFwKG1ldGFSZXN1bHRzTWFwcGluZy5tYXAoKHgpID0+IFt4LnZhbHVlLCB4XSkpO1xuXG4gICAgICAgICAgICAgIC8vIFVwZGF0ZSBtZXRhTWFwLiBObyBuZWVkIHRvIHB1c2ggYW4gdXBkYXRlIG5vdGlmaWNhdGlvbi5cbiAgICAgICAgICAgICAgbWV0YVJlc3VsdHNNYXBwaW5nLmZvckVhY2goKHgpID0+IG1ldGFNYXAuc2V0KHgudmFsdWUsIHgpKTtcblxuICAgICAgICAgICAgICAvLyBaaXAgdmFsdWVzIGJhY2sgdG9nZXRoZXIuXG4gICAgICAgICAgICAgIGNvbnN0IG5ld0Rpc3BsYXlWYWx1ZXMgPSBtYXBwaW5nUmVzdWx0Lm1hcCgoeCkgPT4geFsyXSA/PyB2YWx1ZUluZGV4SGFzaE1hcC5nZXQoeFsxXSkpO1xuXG4gICAgICAgICAgICAgIC8vIFJldHVybiBkaXNwbGF5IHZhbHVlcy5cbiAgICAgICAgICAgICAgcmV0dXJuIG5ld0Rpc3BsYXlWYWx1ZXM7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gSWYgYWxsIGRpc3BsYXkgdmFsdWVzIGFyZSBoYXNoZWQgcmV0dXJuIHRoZW1cbiAgICAgICAgICBvYnMgPSBvZihoYXNNZXRhLm1hcCgoeCkgPT4geFsyXSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG9icztcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGxvYWREaXNwbGF5VmFsdWVzRm9yU2VsZWN0VmFsdWVzKHZhbHVlczogU291cmNlU2VsZWN0VmFsdWU8VCwgTT5bXSk6IE9ic2VydmFibGU8TG9hZGluZ1N0YXRlPFNvdXJjZVNlbGVjdERpc3BsYXlWYWx1ZTxULCBNPltdPj4ge1xuICAgIHJldHVybiB0aGlzLmdldERpc3BsYXlWYWx1ZXNGb3JTZWxlY3RWYWx1ZXModmFsdWVzKS5waXBlKFxuICAgICAgbWFwKChkaXNwbGF5VmFsdWVzOiBTb3VyY2VTZWxlY3REaXNwbGF5VmFsdWU8VCwgTT5bXSkgPT4gc3VjY2Vzc1Jlc3VsdChkaXNwbGF5VmFsdWVzKSksXG4gICAgICBzdGFydFdpdGhCZWdpbkxvYWRpbmcoKSxcbiAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgKTtcbiAgfVxuXG4gIGdldERpc3BsYXlWYWx1ZXNGb3JTZWxlY3RWYWx1ZXModmFsdWVzOiBTb3VyY2VTZWxlY3RWYWx1ZTxULCBNPltdKTogT2JzZXJ2YWJsZTxTb3VyY2VTZWxlY3REaXNwbGF5VmFsdWU8VCwgTT5bXT4ge1xuICAgIHJldHVybiB0aGlzLl9kaXNwbGF5SGFzaE1hcC5waXBlKFxuICAgICAgbWVyZ2VNYXAoKG1ldGFNYXApID0+IHtcbiAgICAgICAgY29uc3QgbWFwcGluZ1Jlc3VsdCA9IHZhbHVlcy5tYXAoKHgpID0+IFt4LCB4LnZhbHVlXSBhcyBbU291cmNlU2VsZWN0VmFsdWU8VCwgTT4sIFRdKS5tYXAoKFt4LCBoYXNoXSwgaSkgPT4gW2ksIGhhc2gsIHgsIG1ldGFNYXAuZ2V0KGhhc2gpXSBhcyBbbnVtYmVyLCBULCBTb3VyY2VTZWxlY3RWYWx1ZTxULCBNPiwgU291cmNlU2VsZWN0RGlzcGxheVZhbHVlPFQsIE0+XSk7XG5cbiAgICAgICAgY29uc3QgaGFzRGlzcGxheSA9IG1hcHBpbmdSZXN1bHQuZmlsdGVyKCh4KSA9PiBCb29sZWFuKHhbM10pKTtcbiAgICAgICAgY29uc3QgbmVlZHNEaXNwbGF5ID0gbWFwcGluZ1Jlc3VsdC5maWx0ZXIoKHgpID0+ICF4WzNdKTtcbiAgICAgICAgbGV0IG9iczogT2JzZXJ2YWJsZTxTb3VyY2VTZWxlY3REaXNwbGF5VmFsdWU8VCwgTT5bXT47XG5cbiAgICAgICAgaWYgKG5lZWRzRGlzcGxheS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgLy8gR28gZ2V0IHRoZSBkaXNwbGF5IHZhbHVlLlxuICAgICAgICAgIGNvbnN0IGRpc3BsYXlWYWx1ZXNPYnMgPSB0aGlzLmRpc3BsYXlGb3JWYWx1ZShuZWVkc0Rpc3BsYXkubWFwKCh4KSA9PiB4WzJdKSk7XG5cbiAgICAgICAgICBvYnMgPSBkaXNwbGF5VmFsdWVzT2JzLnBpcGUoXG4gICAgICAgICAgICBmaXJzdCgpLFxuICAgICAgICAgICAgbWFwKChkaXNwbGF5UmVzdWx0cykgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBkaXNwbGF5UmVzdWx0c01hcHBpbmc6IFtTb3VyY2VTZWxlY3REaXNwbGF5VmFsdWU8VCwgTT4sIFRdW10gPSAoZGlzcGxheVJlc3VsdHMgYXMgU291cmNlU2VsZWN0RGlzcGxheVZhbHVlPFQsIE0+W10pLm1hcCgoeCkgPT4gW3gsIHgudmFsdWVdKTtcbiAgICAgICAgICAgICAgY29uc3QgdmFsdWVJbmRleEhhc2hNYXAgPSBuZXcgTWFwKGRpc3BsYXlSZXN1bHRzTWFwcGluZy5tYXAoKFt4LCBoYXNoXSkgPT4gW2hhc2gsIHhdKSk7XG5cbiAgICAgICAgICAgICAgLy8gVXBkYXRlIG1ldGFNYXAuIE5vIG5lZWQgdG8gcHVzaCBhbiB1cGRhdGUgbm90aWZpY2F0aW9uLlxuICAgICAgICAgICAgICBkaXNwbGF5UmVzdWx0c01hcHBpbmcuZm9yRWFjaCgoW3gsIGhhc2hdKSA9PiBtZXRhTWFwLnNldChoYXNoLCB4KSk7XG5cbiAgICAgICAgICAgICAgLy8gWmlwIHZhbHVlcyBiYWNrIHRvZ2V0aGVyLlxuICAgICAgICAgICAgICBjb25zdCBuZXdEaXNwbGF5VmFsdWVzID0gbWFwcGluZ1Jlc3VsdC5tYXAoKHgpID0+IHhbM10gPz8gdmFsdWVJbmRleEhhc2hNYXAuZ2V0KHhbMV0pKTtcblxuICAgICAgICAgICAgICAvLyBSZXR1cm4gZGlzcGxheSB2YWx1ZXMuXG4gICAgICAgICAgICAgIHJldHVybiBuZXdEaXNwbGF5VmFsdWVzO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIElmIGFsbCBkaXNwbGF5IHZhbHVlcyBhcmUgaGFzaGVkIHJldHVybiB0aGF0LlxuICAgICAgICAgIG9icyA9IG9mKGhhc0Rpc3BsYXkubWFwKCh4KSA9PiB4WzNdKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gb2JzO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcmVhZG9ubHkgY29udGV4dCA9IGxvYWRpbmdTdGF0ZUNvbnRleHQoeyBvYnM6IHRoaXMuYWxsT3B0aW9uR3JvdXBzU3RhdGUkIH0pO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IHsgbG9hZFNvdXJjZXMgfSA9IHRoaXM7XG5cbiAgICB0aGlzLl9sb2FkU291cmNlcy5uZXh0KGxvYWRTb3VyY2VzPy4oKSB8fCBvZihbXSkpO1xuXG4gICAgaWYgKHRoaXMucmVmcmVzaERpc3BsYXlWYWx1ZXMkICE9IG51bGwpIHtcbiAgICAgIHRoaXMuX2NsZWFyRGlzcGxheUhhc2hNYXBTdWIuc3Vic2NyaXB0aW9uID0gdGhpcy5yZWZyZXNoRGlzcGxheVZhbHVlcyQuc3Vic2NyaWJlKCgpID0+IHRoaXMuX2Rpc3BsYXlIYXNoTWFwLm5leHQobmV3IE1hcCgpKSk7XG4gICAgfVxuXG4gICAgdGhpcy5fZm9ybUNvbnRyb2xPYnMubmV4dCh0aGlzLmZvcm1Db250cm9sKTtcblxuICAgIC8vIGNvcHkgYWxsIHZhbHVlcyBmcm9tIHRoZSBzb3VyY2VzIGludG8gdGhlIHZhbHVlcyBoYXNoIG1hcCB0byBwcmV2ZW50IHJlbG9hZGluZ1xuICAgIHRoaXMuX2NhY2hlTWV0YVN1Yi5zdWJzY3JpcHRpb24gPSB0aGlzLnZhbHVlR3JvdXBzRnJvbVNvdXJjZXNTdGF0ZSQuc3Vic2NyaWJlKCh4KSA9PiB7XG4gICAgICBjb25zdCBoYXNoTWFwID0gdGhpcy5fdmFsdWVNZXRhSGFzaE1hcC52YWx1ZTtcbiAgICAgIHgudmFsdWUuZm9yRWFjaCgoeCkgPT4geC52YWx1ZXMuZm9yRWFjaCgoeSkgPT4gaGFzaE1hcC5zZXQoeS52YWx1ZSwgeSkpKTtcbiAgICB9KTtcbiAgfVxuXG4gIG92ZXJyaWRlIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgdGhpcy5fY2FjaGVNZXRhU3ViLmRlc3Ryb3koKTtcbiAgICB0aGlzLl9jbGVhckRpc3BsYXlIYXNoTWFwU3ViLmRlc3Ryb3koKTtcbiAgICB0aGlzLl92YWx1ZU1ldGFIYXNoTWFwLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fZGlzcGxheUhhc2hNYXAuY29tcGxldGUoKTtcbiAgICB0aGlzLl9mb3JtQ29udHJvbE9icy5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX2Zyb21PcGVuU291cmNlLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fbG9hZFNvdXJjZXMuY29tcGxldGUoKTtcbiAgICB0aGlzLmNvbnRleHQuZGVzdHJveSgpO1xuICB9XG5cbiAgcmVhZG9ubHkgaGFuZGxlU2VsZWN0T3B0aW9uczogV29ya1VzaW5nQ29udGV4dDx1bmtub3duPiA9IChfLCBjb250ZXh0KSA9PiB7XG4gICAgY29uc3QgeyBvcGVuU291cmNlIH0gPSB0aGlzO1xuXG4gICAgaWYgKG9wZW5Tb3VyY2UpIHtcbiAgICAgIGNvbnN0IG9yaWdpbiA9IHRoaXMuYnV0dG9uRWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICAgICAgY29uc3Qgc291cmNlT2JzID0gb3BlblNvdXJjZSh7IG9yaWdpbiB9KTtcbiAgICAgIGNvbnRleHQuc3RhcnRXb3JraW5nV2l0aE9ic2VydmFibGUoXG4gICAgICAgIHNvdXJjZU9icy5waXBlKFxuICAgICAgICAgIGZpcnN0KCksXG4gICAgICAgICAgdGFwKChyZXN1bHQ6IFNvdXJjZVNlbGVjdE9wZW5Tb3VyY2VSZXN1bHQ8TT4pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlc1RvQWRkID0gbWVyZ2VBcnJheXMoW3Jlc3VsdC5zZWxlY3QsIHJlc3VsdC5vcHRpb25zXSk7XG5cbiAgICAgICAgICAgIGlmICh2YWx1ZXNUb0FkZC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgdGhpcy5hZGRUb09wZW5Tb3VyY2VNYXAodmFsdWVzVG9BZGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAocmVzdWx0LnNldCkge1xuICAgICAgICAgICAgICB0aGlzLnNldEN1cnJlbnRWYWx1ZShyZXN1bHQuc2V0Lm1hcCgoeCkgPT4gdGhpcy52YWx1ZVJlYWRlcih4KSkpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQuc2VsZWN0KSB7XG4gICAgICAgICAgICAgIHRoaXMuYWRkVG9DdXJyZW50VmFsdWUocmVzdWx0LnNlbGVjdC5tYXAoKHgpID0+IHRoaXMudmFsdWVSZWFkZXIoeCkpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb250ZXh0LnJlamVjdCgpO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIGFkZFRvT3BlblNvdXJjZU1hcChpbnB1dDogTVtdKSB7XG4gICAgY29uc3QgeyB2YWx1ZVJlYWRlciB9ID0gdGhpcztcbiAgICBjb25zdCB7IHZhbHVlczogbWV0YSwgdmFsdWVzU2V0OiBpbml0aWFsVmFsdWVzIH0gPSB0aGlzLl9mcm9tT3BlblNvdXJjZS52YWx1ZTtcblxuICAgIGNvbnN0IG5ld01ldGFGcm9tSW5wdXQ6IFNvdXJjZVNlbGVjdFZhbHVlPFQsIE0+W10gPSBbXTtcbiAgICBjb25zdCB2YWx1ZXNTZXQgPSBuZXcgU2V0KGluaXRpYWxWYWx1ZXMpO1xuXG4gICAgaW5wdXQuZm9yRWFjaCgoeCkgPT4ge1xuICAgICAgY29uc3QgdmFsdWUgPSB2YWx1ZVJlYWRlcih4KTtcblxuICAgICAgaWYgKCF2YWx1ZXNTZXQuaGFzKHZhbHVlKSkge1xuICAgICAgICBuZXdNZXRhRnJvbUlucHV0LnB1c2goeyBtZXRhOiB4LCB2YWx1ZSB9KTtcbiAgICAgICAgdmFsdWVzU2V0LmFkZCh2YWx1ZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAobmV3TWV0YUZyb21JbnB1dC5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLl9mcm9tT3BlblNvdXJjZS5uZXh0KHtcbiAgICAgICAgdmFsdWVzOiBbLi4ubWV0YSwgLi4ubmV3TWV0YUZyb21JbnB1dF0sXG4gICAgICAgIHZhbHVlc1NldDogdmFsdWVzU2V0XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFkZFRvQ3VycmVudFZhbHVlKHZhbHVlczogVFtdKSB7XG4gICAgY29uc3QgY3VycmVudFZhbHVlID0gYXNBcnJheSh0aGlzLmZvcm1Db250cm9sLnZhbHVlKTtcbiAgICBjb25zdCBuZXdWYWx1ZUFycmF5ID0gWy4uLmN1cnJlbnRWYWx1ZSwgLi4udmFsdWVzXTtcbiAgICB0aGlzLnNldEN1cnJlbnRWYWx1ZShuZXdWYWx1ZUFycmF5KTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Q3VycmVudFZhbHVlKG5ld1ZhbHVlQXJyYXk6IFRbXSkge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5tdWx0aXBsZSA/IG5ld1ZhbHVlQXJyYXkgOiBsYXN0VmFsdWUobmV3VmFsdWVBcnJheSk7IC8vIHBpY2sgbGFzdCB2YWx1ZSwgYXMgdGhlIGxhc3QgdmFsdWUgYWRkZWQgaXMgdGhlIG5ld2VzdCB2YWx1ZS5cbiAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKHZhbHVlKTtcbiAgICB0aGlzLmZvcm1Db250cm9sLm1hcmtBc0RpcnR5KCk7XG4gICAgdGhpcy5mb3JtQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkYngtc291cmNlLXNlbGVjdC1maWVsZFwiPlxuICA8ZGl2IGNsYXNzPVwiZGJ4LXNvdXJjZS1zZWxlY3QtZmllbGQtY29udGVudFwiPlxuICAgIDxtYXQtc2VsZWN0IGNsYXNzPVwiZGJ4LXNvdXJjZS1zZWxlY3QtZmllbGQtc2VsZWN0XCIgW2lkXT1cImlkXCIgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sXCIgW211bHRpcGxlXT1cInByb3BzLm11bHRpcGxlXCI+XG4gICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgdmFsdWUgb2Ygbm9uR3JvdXBlZFZhbHVlcyQgfCBhc3luY1wiIFt2YWx1ZV09XCJ2YWx1ZS52YWx1ZVwiPlxuICAgICAgICB7eyB2YWx1ZS5sYWJlbCB9fVxuICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgPG1hdC1vcHRncm91cCAqbmdGb3I9XCJsZXQgb3B0aW9uR3JvdXAgb2YgZ3JvdXBlZE9wdGlvbnMkIHwgYXN5bmNcIiBbbGFiZWxdPVwib3B0aW9uR3JvdXAubGFiZWxcIj5cbiAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHZhbHVlIG9mIG9wdGlvbkdyb3VwLnZhbHVlc1wiIFt2YWx1ZV09XCJ2YWx1ZS52YWx1ZVwiPlxuICAgICAgICAgIHt7IHZhbHVlLmxhYmVsIH19XG4gICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgIDwvbWF0LW9wdGdyb3VwPlxuICAgIDwvbWF0LXNlbGVjdD5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd09wZW5Tb3VyY2VCdXR0b25cIj5cbiAgICAgIDxkYngtYnV0dG9uLXNwYWNlcj48L2RieC1idXR0b24tc3BhY2VyPlxuICAgICAgPGRieC1hY3Rpb24gZGJ4QWN0aW9uVmFsdWUgW2RieEFjdGlvbkhhbmRsZXJdPVwiaGFuZGxlU2VsZWN0T3B0aW9uc1wiIGNsYXNzPVwiZGJ4LXNvdXJjZS1zZWxlY3QtZmllbGQtYnV0dG9uXCI+XG4gICAgICAgIDxkYngtYnV0dG9uICNidXR0b24gZGJ4QWN0aW9uQnV0dG9uIFtpY29uT25seV09XCJ0cnVlXCIgW2ljb25dPVwic2VsZWN0QnV0dG9uSWNvblwiPjwvZGJ4LWJ1dHRvbj5cbiAgICAgIDwvZGJ4LWFjdGlvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG4gIDxkYngtbG9hZGluZyBjbGFzcz1cImRieC1zb3VyY2Utc2VsZWN0LWZpZWxkLWxvYWRpbmdcIiBbbGluZWFyXT1cInRydWVcIiBbY29udGV4dF09XCJjb250ZXh0XCI+PC9kYngtbG9hZGluZz5cbjwvZGl2PlxuIl19
@@ -79,4 +79,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
79
79
  `
80
80
  }]
81
81
  }] });
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGVkaXRvci5maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZm9ybS9zcmMvbGliL2Zvcm1seS9maWVsZC90ZXh0ZWRpdG9yL3RleHRlZGl0b3IuZmllbGQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxTQUFTLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVyRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDakQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNwQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBbUJuRCxNQUFNLE9BQU8sMkJBQXFHLFNBQVEsU0FBNkI7SUFDcEksb0JBQW9CLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFFaEYsT0FBTyxDQUFVO0lBQ2pCLElBQUksR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7SUFFL0IsYUFBYSxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxLQUFLLEVBQUU7UUFDM0UsT0FBTyxFQUFFLDhCQUE4QjtLQUN4QyxDQUFDLENBQUM7SUFFSCxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBYSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxJQUFpQixDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxPQUFpQixDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQztJQUNoQyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFOUIsc0VBQXNFO1FBQ3RFLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWTthQUM5QyxJQUFJLENBQ0gsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUNqQixNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FDMUM7YUFDQSxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1lBQzFDLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRVEsV0FBVztRQUNsQixLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFcEIsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN0QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7U0FDckI7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3RCLENBQUM7d0dBckRVLDJCQUEyQjs0RkFBM0IsMkJBQTJCLDJFQWI1Qjs7Ozs7Ozs7Ozs7R0FXVDs7NEZBRVUsMkJBQTJCO2tCQWR2QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7R0FXVDtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvbXBhY3RDb250ZXh0U3RvcmUsIG1hcENvbXBhY3RNb2RlT2JzIH0gZnJvbSAnQGRlcmVla2IvZGJ4LXdlYic7XG5pbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZpZWxkVHlwZUNvbmZpZywgRm9ybWx5RmllbGRQcm9wcyB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHsgRmllbGRUeXBlIH0gZnJvbSAnQG5neC1mb3JtbHkvbWF0ZXJpYWwnO1xuaW1wb3J0IHsgRWRpdG9yIH0gZnJvbSAnbmd4LWVkaXRvcic7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZpbHRlciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uT2JqZWN0IH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuXG5leHBvcnQgdHlwZSBUZXh0RWRpdG9yQ29tcG9uZW50RmllbGRQcm9wcyA9IEZvcm1seUZpZWxkUHJvcHM7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJkYngtdGV4dGVkaXRvci1maWVsZFwiIFtuZ0NsYXNzXT1cIihjb21wYWN0Q2xhc3MkIHwgYXN5bmMpID8/ICcnXCIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiZGJ4LWxhYmVsXCIgKm5nSWY9XCJsYWJlbFwiPnt7IGxhYmVsIH19PC9zcGFuPlxuICAgICAgPGRpdiBjbGFzcz1cImRieC10ZXh0ZWRpdG9yLWZpZWxkLWlucHV0XCI+XG4gICAgICAgIDxuZ3gtZWRpdG9yIFtlZGl0b3JdPVwiZWRpdG9yXCIgb3V0cHV0Rm9ybWF0PVwiaHRtbFwiIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiIFtmb3JtQ29udHJvbE5hbWVdPVwiZm9ybUdyb3VwTmFtZVwiPjwvbmd4LWVkaXRvcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImRieC10ZXh0ZWRpdG9yLWZpZWxkLW1lbnVcIj5cbiAgICAgICAgPG5neC1lZGl0b3ItbWVudSBbZWRpdG9yXT1cImVkaXRvclwiPjwvbmd4LWVkaXRvci1tZW51PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZGJ4LWZvcm0tZGVzY3JpcHRpb25cIiAqbmdJZj1cImRlc2NyaXB0aW9uXCI+e3sgZGVzY3JpcHRpb24gfX08L2Rpdj5cbiAgICA8L2Rpdj5cbiAgYFxufSlcbmV4cG9ydCBjbGFzcyBEYnhUZXh0RWRpdG9yRmllbGRDb21wb25lbnQ8VCBleHRlbmRzIFRleHRFZGl0b3JDb21wb25lbnRGaWVsZFByb3BzID0gVGV4dEVkaXRvckNvbXBvbmVudEZpZWxkUHJvcHM+IGV4dGVuZHMgRmllbGRUeXBlPEZpZWxkVHlwZUNvbmZpZzxUPj4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2NvbXBhY3RDb250ZXh0U3RvcmUgPSBpbmplY3QoQ29tcGFjdENvbnRleHRTdG9yZSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICBwcml2YXRlIF9lZGl0b3I/OiBFZGl0b3I7XG4gIHByaXZhdGUgX3N1YiA9IG5ldyBTdWJzY3JpcHRpb25PYmplY3QoKTtcblxuICByZWFkb25seSBjb21wYWN0Q2xhc3MkID0gbWFwQ29tcGFjdE1vZGVPYnModGhpcy5fY29tcGFjdENvbnRleHRTdG9yZT8ubW9kZSQsIHtcbiAgICBjb21wYWN0OiAnZGJ4LXRleHRlZGl0b3ItZmllbGQtY29tcGFjdCdcbiAgfSk7XG5cbiAgZ2V0IGZvcm1Hcm91cE5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5maWVsZC5rZXkgYXMgc3RyaW5nO1xuICB9XG5cbiAgZ2V0IGZvcm1Hcm91cCgpOiBGb3JtR3JvdXAge1xuICAgIHJldHVybiB0aGlzLmZvcm0gYXMgRm9ybUdyb3VwO1xuICB9XG5cbiAgZ2V0IGVkaXRvcigpOiBFZGl0b3Ige1xuICAgIHJldHVybiB0aGlzLl9lZGl0b3IgYXMgRWRpdG9yO1xuICB9XG5cbiAgZ2V0IGxhYmVsKCk6IE1heWJlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLmZpZWxkLnByb3BzPy5sYWJlbDtcbiAgfVxuXG4gIGdldCBkZXNjcmlwdGlvbigpOiBNYXliZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5kZXNjcmlwdGlvbjtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX2VkaXRvciA9IG5ldyBFZGl0b3Ioe30pO1xuXG4gICAgLy8gV2F0Y2ggZm9yIHZhbHVlIGNoYW5nZXMgZXZlcnkgc2Vjb25kIGFuZCB1cGRhdGUgdGhlIHByaXN0aW5lIGxldmVsLlxuICAgIHRoaXMuX3N1Yi5zdWJzY3JpcHRpb24gPSB0aGlzLmVkaXRvci52YWx1ZUNoYW5nZXNcbiAgICAgIC5waXBlKFxuICAgICAgICBkZWJvdW5jZVRpbWUoMTAwKSxcbiAgICAgICAgZmlsdGVyKCgpID0+IHRoaXMuZWRpdG9yLnZpZXcuaGFzRm9jdXMoKSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5tYXJrQXNEaXJ0eSgpO1xuICAgICAgfSk7XG4gIH1cblxuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuXG4gICAgaWYgKHRoaXMuZWRpdG9yKSB7XG4gICAgICB0aGlzLmVkaXRvci5kZXN0cm95KCk7XG4gICAgICBkZWxldGUgdGhpcy5fZWRpdG9yO1xuICAgIH1cbiAgICB0aGlzLl9zdWIuZGVzdHJveSgpO1xuICB9XG59XG4iXX0=
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGVkaXRvci5maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZm9ybS9zcmMvbGliL2Zvcm1seS9maWVsZC90ZXh0ZWRpdG9yL3RleHRlZGl0b3IuZmllbGQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxTQUFTLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVyRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDakQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNwQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBbUJuRCxNQUFNLE9BQU8sMkJBQXFHLFNBQVEsU0FBNkI7SUFDcEksb0JBQW9CLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFFaEYsT0FBTyxDQUFVO0lBQ2pCLElBQUksR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7SUFFL0IsYUFBYSxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxLQUFLLEVBQUU7UUFDM0UsT0FBTyxFQUFFLDhCQUE4QjtLQUN4QyxDQUFDLENBQUM7SUFFSCxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBYSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxJQUFpQixDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxPQUFpQixDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQztJQUNoQyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFOUIsc0VBQXNFO1FBQ3RFLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWTthQUM5QyxJQUFJLENBQ0gsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUNqQixNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FDMUM7YUFDQSxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1lBQzFDLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRVEsV0FBVztRQUNsQixLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFcEIsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN0QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7U0FDckI7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3RCLENBQUM7d0dBckRVLDJCQUEyQjs0RkFBM0IsMkJBQTJCLDJFQWI1Qjs7Ozs7Ozs7Ozs7R0FXVDs7NEZBRVUsMkJBQTJCO2tCQWR2QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7R0FXVDtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvbXBhY3RDb250ZXh0U3RvcmUsIG1hcENvbXBhY3RNb2RlT2JzIH0gZnJvbSAnQGRlcmVla2IvZGJ4LXdlYic7XG5pbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZpZWxkVHlwZUNvbmZpZywgRm9ybWx5RmllbGRQcm9wcyB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHsgRmllbGRUeXBlIH0gZnJvbSAnQG5neC1mb3JtbHkvbWF0ZXJpYWwnO1xuaW1wb3J0IHsgRWRpdG9yIH0gZnJvbSAnbmd4LWVkaXRvcic7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZpbHRlciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uT2JqZWN0IH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyB0eXBlIE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5cbmV4cG9ydCB0eXBlIFRleHRFZGl0b3JDb21wb25lbnRGaWVsZFByb3BzID0gRm9ybWx5RmllbGRQcm9wcztcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImRieC10ZXh0ZWRpdG9yLWZpZWxkXCIgW25nQ2xhc3NdPVwiKGNvbXBhY3RDbGFzcyQgfCBhc3luYykgPz8gJydcIiBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJkYngtbGFiZWxcIiAqbmdJZj1cImxhYmVsXCI+e3sgbGFiZWwgfX08L3NwYW4+XG4gICAgICA8ZGl2IGNsYXNzPVwiZGJ4LXRleHRlZGl0b3ItZmllbGQtaW5wdXRcIj5cbiAgICAgICAgPG5neC1lZGl0b3IgW2VkaXRvcl09XCJlZGl0b3JcIiBvdXRwdXRGb3JtYXQ9XCJodG1sXCIgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgW2Zvcm1Db250cm9sTmFtZV09XCJmb3JtR3JvdXBOYW1lXCI+PC9uZ3gtZWRpdG9yPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZGJ4LXRleHRlZGl0b3ItZmllbGQtbWVudVwiPlxuICAgICAgICA8bmd4LWVkaXRvci1tZW51IFtlZGl0b3JdPVwiZWRpdG9yXCI+PC9uZ3gtZWRpdG9yLW1lbnU+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJkYngtZm9ybS1kZXNjcmlwdGlvblwiICpuZ0lmPVwiZGVzY3JpcHRpb25cIj57eyBkZXNjcmlwdGlvbiB9fTwvZGl2PlxuICAgIDwvZGl2PlxuICBgXG59KVxuZXhwb3J0IGNsYXNzIERieFRleHRFZGl0b3JGaWVsZENvbXBvbmVudDxUIGV4dGVuZHMgVGV4dEVkaXRvckNvbXBvbmVudEZpZWxkUHJvcHMgPSBUZXh0RWRpdG9yQ29tcG9uZW50RmllbGRQcm9wcz4gZXh0ZW5kcyBGaWVsZFR5cGU8RmllbGRUeXBlQ29uZmlnPFQ+PiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfY29tcGFjdENvbnRleHRTdG9yZSA9IGluamVjdChDb21wYWN0Q29udGV4dFN0b3JlLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIHByaXZhdGUgX2VkaXRvcj86IEVkaXRvcjtcbiAgcHJpdmF0ZSBfc3ViID0gbmV3IFN1YnNjcmlwdGlvbk9iamVjdCgpO1xuXG4gIHJlYWRvbmx5IGNvbXBhY3RDbGFzcyQgPSBtYXBDb21wYWN0TW9kZU9icyh0aGlzLl9jb21wYWN0Q29udGV4dFN0b3JlPy5tb2RlJCwge1xuICAgIGNvbXBhY3Q6ICdkYngtdGV4dGVkaXRvci1maWVsZC1jb21wYWN0J1xuICB9KTtcblxuICBnZXQgZm9ybUdyb3VwTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmZpZWxkLmtleSBhcyBzdHJpbmc7XG4gIH1cblxuICBnZXQgZm9ybUdyb3VwKCk6IEZvcm1Hcm91cCB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybSBhcyBGb3JtR3JvdXA7XG4gIH1cblxuICBnZXQgZWRpdG9yKCk6IEVkaXRvciB7XG4gICAgcmV0dXJuIHRoaXMuX2VkaXRvciBhcyBFZGl0b3I7XG4gIH1cblxuICBnZXQgbGFiZWwoKTogTWF5YmU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGQucHJvcHM/LmxhYmVsO1xuICB9XG5cbiAgZ2V0IGRlc2NyaXB0aW9uKCk6IE1heWJlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLnByb3BzLmRlc2NyaXB0aW9uO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fZWRpdG9yID0gbmV3IEVkaXRvcih7fSk7XG5cbiAgICAvLyBXYXRjaCBmb3IgdmFsdWUgY2hhbmdlcyBldmVyeSBzZWNvbmQgYW5kIHVwZGF0ZSB0aGUgcHJpc3RpbmUgbGV2ZWwuXG4gICAgdGhpcy5fc3ViLnN1YnNjcmlwdGlvbiA9IHRoaXMuZWRpdG9yLnZhbHVlQ2hhbmdlc1xuICAgICAgLnBpcGUoXG4gICAgICAgIGRlYm91bmNlVGltZSgxMDApLFxuICAgICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5lZGl0b3Iudmlldy5oYXNGb2N1cygpKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuZm9ybUNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgICB0aGlzLmZvcm1Db250cm9sLm1hcmtBc0RpcnR5KCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG92ZXJyaWRlIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG5cbiAgICBpZiAodGhpcy5lZGl0b3IpIHtcbiAgICAgIHRoaXMuZWRpdG9yLmRlc3Ryb3koKTtcbiAgICAgIGRlbGV0ZSB0aGlzLl9lZGl0b3I7XG4gICAgfVxuICAgIHRoaXMuX3N1Yi5kZXN0cm95KCk7XG4gIH1cbn1cbiJdfQ==
@@ -206,4 +206,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
206
206
  `
207
207
  }]
208
208
  }] });
209
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXkuZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZvcm0vc3JjL2xpYi9mb3JtbHkvZmllbGQvdmFsdWUvYXJyYXkvYXJyYXkuZmllbGQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQW1CLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQXNELGtCQUFrQixFQUFZLFVBQVUsRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUN0SyxPQUFPLEVBQXdCLGNBQWMsRUFBdUMsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7Ozs7QUF1RjdHLE1BQU0sT0FBTywrQkFBNkMsU0FBUSxjQUE4RDtJQUN0SCxjQUFjLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRTtRQUN6QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDO1FBRWxELElBQUksT0FBTyxLQUFLLEtBQUssVUFBVSxFQUFFO1lBQy9CLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7YUFBTTtZQUNMLE9BQU8sVUFBVSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQztTQUNoQztJQUNILENBQUMsQ0FBQyxDQUFDO0lBRUssWUFBWSxHQUF3RCxZQUFZLENBQUMsR0FBRyxFQUFFO1FBQzVGLE9BQU8sa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2hFLENBQUMsQ0FBQyxDQUFDO0lBRUssZUFBZSxHQUF3RCxZQUFZLENBQUMsR0FBRyxFQUFFO1FBQy9GLE9BQU8sa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsY0FBYyxJQUFJLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM3RSxD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SSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsV0FBVyxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDMUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBSSxDQUFDLEtBQTJCO1FBQzlCLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELFlBQVksQ0FBQyxXQUE4QixFQUFFLENBQVM7UUFDcEQsTUFBTSxLQUFLLEdBQWMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNwQyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFNLENBQUM7UUFFNUIsT0FBTyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUU7WUFDL0MsQ0FBQztZQUNELEtBQUs7WUFDTCxXQUFXO1NBQ1osQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt3R0FwS1UsK0JBQStCOzRGQUEvQiwrQkFBK0IsMkVBOUJoQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRCVDs7NEZBRVUsK0JBQStCO2tCQS9CM0MsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0QlQ7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZGtEcmFnRHJvcCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBUcmFja0J5RnVuY3Rpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGFzRGVjaXNpb25GdW5jdGlvbiwgY2FjaGVkR2V0dGVyLCBEZWNpc2lvbkZ1bmN0aW9uLCBGYWN0b3J5V2l0aFJlcXVpcmVkSW5wdXQsIEdldHRlciwgZ2V0VmFsdWVGcm9tR2V0dGVyLCBJbmRleFJlZiwgbWFrZUdldHRlciwgTWF5YmUgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IEZpZWxkQXJyYXlUeXBlQ29uZmlnLCBGaWVsZEFycmF5VHlwZSwgRm9ybWx5RmllbGRDb25maWcsIEZvcm1seUZpZWxkUHJvcHMgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBEYnhGb3JtUmVwZWF0QXJyYXlQYWlyPFQgPSB1bmtub3duPiBleHRlbmRzIEluZGV4UmVmIHtcbiAgdmFsdWU/OiBUIHwgdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERieEZvcm1SZXBlYXRBcnJheUZpZWxkQ29uZmlnUGFpcjxUID0gdW5rbm93bj4gZXh0ZW5kcyBQYXJ0aWFsPERieEZvcm1SZXBlYXRBcnJheVBhaXI8VD4+IHtcbiAgZmllbGRDb25maWc6IEZvcm1seUZpZWxkQ29uZmlnO1xufVxuXG5leHBvcnQgdHlwZSBEYnhGb3JtUmVwZWF0QXJyYXlBZGRUZW1wbGF0ZUZ1bmN0aW9uPFQ+ID0gRmFjdG9yeVdpdGhSZXF1aXJlZElucHV0PFBhcnRpYWw8TWF5YmU8VD4+LCBudW1iZXI+O1xuXG5leHBvcnQgaW50ZXJmYWNlIERieEZvcm1SZXBlYXRBcnJheUNvbmZpZzxUID0gdW5rbm93bj4gZXh0ZW5kcyBQaWNrPEZvcm1seUZpZWxkUHJvcHMsICdtYXhMZW5ndGgnIHwgJ2xhYmVsJyB8ICdkZXNjcmlwdGlvbic+IHtcbiAgbGFiZWxGb3JGaWVsZD86IHN0cmluZyB8IEZhY3RvcnlXaXRoUmVxdWlyZWRJbnB1dDxzdHJpbmcsIERieEZvcm1SZXBlYXRBcnJheUZpZWxkQ29uZmlnUGFpcjxUPj47XG4gIC8qKlxuICAgKiBUZXh0IGZvciB0aGUgYWRkIGJ1dHRvbi5cbiAgICovXG4gIGFkZFRleHQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBPcHRpb25hbCB0ZW1wbGF0ZSBmdW5jdGlvbiB0byBjcmVhdGUgYSBuZXcgdGVtcGxhdGUgd2hlbiB1c2luZyB0aGUgYWRkIGJ1dHRvbi5cbiAgICovXG4gIGFkZFRlbXBsYXRlPzogRGJ4Rm9ybVJlcGVhdEFycmF5QWRkVGVtcGxhdGVGdW5jdGlvbjxUPjtcbiAgLyoqXG4gICAqIFRleHQgZm9yIHRoZSBkdXBsaWNhdGUgYnV0dG9uLlxuICAgKi9cbiAgZHVwbGljYXRlVGV4dD86IHN0cmluZztcbiAgLyoqXG4gICAqIFRleHQgZm9yIHRoZSByZW1vdmUgYnV0dG9uLlxuICAgKi9cbiAgcmVtb3ZlVGV4dD86IHN0cmluZztcbiAgLyoqXG4gICAqIFdoZXRoZSBvciBub3QgdG8gZGlzYWJsZSByZWFycmFuZ2luZyBpdGVtcy5cbiAgICpcbiAgICogRmFsc2UgYnkgZGVmYXVsdC5cbiAgICovXG4gIGRpc2FibGVSZWFycmFuZ2U/OiBib29sZWFuO1xuICAvKipcbiAgICogV2V0aGVyIG9yIG5vdCB0byBzaG93IHRoZSBhZGQgYnV0dG9uLlxuICAgKlxuICAgKiBUcnVlIGJ5IGRlZmF1bHQuXG4gICAqL1xuICBhbGxvd0FkZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBhbGxvdyBkdXBsaWNhdGVpbmcgaXRlbXMuIENhbiBvcHRpb25hbGx5IHBhc3MgYSBkZWNpc2lvbiBmdW5jdGlvbiB0aGF0IGRlY2lkZXMgd2hldGhlciBvciBub3QgYSBzcGVjaWZpYyBpdGVtIGNhbiBiZSByZW1vdmVkLlxuICAgKi9cbiAgYWxsb3dEdXBsaWNhdGU/OiBib29sZWFuIHwgRGVjaXNpb25GdW5jdGlvbjxEYnhGb3JtUmVwZWF0QXJyYXlQYWlyPFQ+PjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIGFsbG93IHJlbW92aW5nIGl0ZW1zLiBDYW4gb3B0aW9uYWxseSBwYXNzIGEgZGVjaXNpb24gZnVuY3Rpb24gdGhhdCBkZWNpZGVzIHdoZXRoZXIgb3Igbm90IGEgc3BlY2lmaWMgaXRlbSBjYW4gYmUgcmVtb3ZlZC5cbiAgICovXG4gIGFsbG93UmVtb3ZlPzogYm9vbGVhbiB8IERlY2lzaW9uRnVuY3Rpb248RGJ4Rm9ybVJlcGVhdEFycmF5UGFpcjxUPj47XG4gIC8qKlxuICAgKiBBZGRzIHRoZSBkdXBsaWNhdGUgdG8gdGhlIGVuZCBvZiB0aGUgdmFsdWVzXG4gICAqL1xuICBhZGREdXBsaWNhdGVUb0VuZD86IGJvb2xlYW47XG59XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJkYngtZm9ybS1yZXBlYXQtYXJyYXlcIj5cbiAgICAgIDxkYngtc3Vic2VjdGlvbiBbaGVhZGVyXT1cImxhYmVsXCIgW2hpbnRdPVwiZGVzY3JpcHRpb25cIj5cbiAgICAgICAgPCEtLSBGaWVsZHMgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkYngtZm9ybS1yZXBlYXQtYXJyYXktZmllbGRzXCIgY2RrRHJvcExpc3QgW2Nka0Ryb3BMaXN0RGlzYWJsZWRdPVwiZGlzYWJsZVJlYXJyYW5nZVwiIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgkZXZlbnQpXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRieC1mb3JtLXJlcGVhdC1hcnJheS1maWVsZFwiIGNka0RyYWcgY2RrRHJhZ0xvY2tBeGlzPVwieVwiICpuZ0Zvcj1cImxldCBmaWVsZCBvZiBmaWVsZC5maWVsZEdyb3VwOyB0cmFja0J5OiB0cmFja0J5RnVuY3Rpb247IGxldCBpID0gaW5kZXg7IGxldCBsYXN0ID0gbGFzdFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRieC1mb3JtLXJlcGVhdC1hcnJheS1kcmFnLXBsYWNlaG9sZGVyXCIgKmNka0RyYWdQbGFjZWhvbGRlcj48L2Rpdj5cbiAgICAgICAgICAgIDxkYngtYmFyIGNsYXNzPVwiZGJ4LWZvcm0tcmVwZWF0LWFycmF5LWJhciBkYngtYmFyLWZpeGVkLWhlaWdodFwiPlxuICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiZGJ4LWZvcm0tcmVwZWF0LWFycmF5LWRyYWctYnV0dG9uXCIgKm5nSWY9XCIhZGlzYWJsZVJlYXJyYW5nZVwiIGNka0RyYWdIYW5kbGUgbWF0LXN0cm9rZWQtYnV0dG9uPjxtYXQtaWNvbj5kcmFnX2hhbmRsZTwvbWF0LWljb24+PC9idXR0b24+XG4gICAgICAgICAgICAgIDxkYngtYnV0dG9uLXNwYWNlcj48L2RieC1idXR0b24tc3BhY2VyPlxuICAgICAgICAgICAgICA8aDQ+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZXBlYXQtYXJyYXktbnVtYmVyXCI+e3sgaSArIDEgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4+e3sgbGFiZWxGb3JJdGVtKGZpZWxkLCBpKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9oND5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkYngtc3BhY2VyXCI+PC9zcGFuPlxuICAgICAgICAgICAgICA8ZGJ4LWJ1dHRvbiAqbmdJZj1cImFsbG93RHVwbGljYXRlKGkpXCIgW3N0cm9rZWRdPVwidHJ1ZVwiIFt0ZXh0XT1cImR1cGxpY2F0ZVRleHRcIiAoYnV0dG9uQ2xpY2spPVwiZHVwbGljYXRlKGkpXCI+PC9kYngtYnV0dG9uPlxuICAgICAgICAgICAgICA8ZGJ4LWJ1dHRvbi1zcGFjZXI+PC9kYngtYnV0dG9uLXNwYWNlcj5cbiAgICAgICAgICAgICAgPGRieC1idXR0b24gKm5nSWY9XCJhbGxvd1JlbW92ZShpKVwiIGNvbG9yPVwid2FyblwiIFtzdHJva2VkXT1cInRydWVcIiBbdGV4dF09XCJyZW1vdmVUZXh0XCIgKGJ1dHRvbkNsaWNrKT1cInJlbW92ZShpKVwiPjwvZGJ4LWJ1dHRvbj5cbiAgICAgICAgICAgIDwvZGJ4LWJhcj5cbiAgICAgICAgICAgIDxmb3JtbHktZmllbGQgY2xhc3M9XCJkYngtZm9ybS1yZXBlYXQtYXJyYXktZmllbGQtY29udGVudFwiIFtmaWVsZF09XCJmaWVsZFwiPjwvZm9ybWx5LWZpZWxkPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPCEtLSBBZGQgQnV0dG9uIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGJ4LWZvcm0tcmVwZWF0LWFycmF5LWZvb3RlclwiPlxuICAgICAgICAgIDxkYngtYnV0dG9uICpuZ0lmPVwiYWxsb3dBZGRcIiBbcmFpc2VkXT1cInRydWVcIiBbZGlzYWJsZWRdPVwiYWRkSXRlbURpc2FibGVkXCIgW3RleHRdPVwiYWRkVGV4dFwiIChidXR0b25DbGljayk9XCJhZGRDbGlja2VkKClcIj48L2RieC1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kYngtc3Vic2VjdGlvbj5cbiAgICA8L2Rpdj5cbiAgYFxufSlcbmV4cG9ydCBjbGFzcyBEYnhGb3JtUmVwZWF0QXJyYXlUeXBlQ29tcG9uZW50PFQgPSB1bmtub3duPiBleHRlbmRzIEZpZWxkQXJyYXlUeXBlPEZpZWxkQXJyYXlUeXBlQ29uZmlnPERieEZvcm1SZXBlYXRBcnJheUNvbmZpZz4+IHtcbiAgcHJpdmF0ZSBfbGFiZWxGb3JGaWVsZCA9IGNhY2hlZEdldHRlcigoKSA9PiB7XG4gICAgY29uc3QgaW5wdXQgPSB0aGlzLnJlcGVhdEFycmF5RmllbGQubGFiZWxGb3JGaWVsZDtcblxuICAgIGlmICh0eXBlb2YgaW5wdXQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiBpbnB1dDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG1ha2VHZXR0ZXIoaW5wdXQgPz8gJycpO1xuICAgIH1cbiAgfSk7XG5cbiAgcHJpdmF0ZSBfYWxsb3dSZW1vdmU6IEdldHRlcjxEZWNpc2lvbkZ1bmN0aW9uPERieEZvcm1SZXBlYXRBcnJheVBhaXI8VD4+PiA9IGNhY2hlZEdldHRlcigoKSA9PiB7XG4gICAgcmV0dXJuIGFzRGVjaXNpb25GdW5jdGlvbih0aGlzLmZpZWxkLnByb3BzLmFsbG93UmVtb3ZlLCB0cnVlKTtcbiAgfSk7XG5cbiAgcHJpdmF0ZSBfYWxsb3dEdXBsaWNhdGU6IEdldHRlcjxEZWNpc2lvbkZ1bmN0aW9uPERieEZvcm1SZXBlYXRBcnJheVBhaXI8VD4+PiA9IGNhY2hlZEdldHRlcigoKSA9PiB7XG4gICAgcmV0dXJuIGFzRGVjaXNpb25GdW5jdGlvbih0aGlzLmZpZWxkLnByb3BzLmFsbG93RHVwbGljYXRlIHx8IGZhbHNlLCBmYWxzZSk7XG4gIH0pO1xuXG4gIGdldCByZXBlYXRBcnJheUZpZWxkKCk6IERieEZvcm1SZXBlYXRBcnJheUNvbmZpZyB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGQucHJvcHM7XG4gIH1cblxuICBnZXQgbGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5maWVsZC5wcm9wcy5sYWJlbCA/PyAodGhpcy5maWVsZC5rZXkgYXMgc3RyaW5nKTtcbiAgfVxuXG4gIGdldCBkZXNjcmlwdGlvbigpOiBNYXliZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5maWVsZC5wcm9wcy5kZXNjcmlwdGlvbjtcbiAgfVxuXG4gIGdldCBkdXBsaWNhdGVUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVwZWF0QXJyYXlGaWVsZC5hZGRUZXh0ID8/ICdEdXBsaWNhdGUnO1xuICB9XG5cbiAgZ2V0IGFkZFRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZXBlYXRBcnJheUZpZWxkLmFkZFRleHQgPz8gJ0FkZCc7XG4gIH1cblxuICBnZXQgYWRkVGVtcGxhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVwZWF0QXJyYXlGaWVsZC5hZGRUZW1wbGF0ZTtcbiAgfVxuXG4gIGdldCByZW1vdmVUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVwZWF0QXJyYXlGaWVsZC5yZW1vdmVUZXh0ID8/ICdSZW1vdmUnO1xuICB9XG5cbiAgZ2V0IG1heCgpOiBNYXliZTxudW1iZXI+IHtcbiAgICByZXR1cm4gdGhpcy5maWVsZC5wcm9wcy5tYXhMZW5ndGg7XG4gIH1cblxuICBnZXQgY291bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5maWVsZC5maWVsZEdyb3VwPy5sZW5ndGggPz8gMDtcbiAgfVxuXG4gIGdldCBkaXNhYmxlUmVhcnJhbmdlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBCb29sZWFuKHRoaXMuZmllbGQucHJvcHMuZGlzYWJsZVJlYXJyYW5nZSk7XG4gIH1cblxuICBnZXQgYWxsb3dBZGQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGQucHJvcHMuYWxsb3dBZGQgPz8gdHJ1ZTtcbiAgfVxuXG4gIGdldCBhZGREdXBsaWNhdGVUb0VuZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5maWVsZC5wcm9wcy5hZGREdXBsaWNhdGVUb0VuZCA/PyBmYWxzZTtcbiAgfVxuXG4gIGFsbG93UmVtb3ZlKGk6IG51bWJlcikge1xuICAgIGNvbnN0IGFycmF5OiB1bmtub3duW10gPSB0aGlzLm1vZGVsO1xuICAgIGNvbnN0IHZhbHVlID0gYXJyYXlbaV0gYXMgVCB8IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gdGhpcy5fYWxsb3dSZW1vdmUoKSh7XG4gICAgICBpLFxuICAgICAgdmFsdWVcbiAgICB9KTtcbiAgfVxuXG4gIGFsbG93RHVwbGljYXRlKGk6IG51bWJlcikge1xuICAgIGNvbnN0IGFycmF5OiB1bmtub3duW10gPSB0aGlzLm1vZGVsO1xuICAgIGNvbnN0IHZhbHVlID0gYXJyYXlbaV0gYXMgVDtcbiAgICByZXR1cm4gdGhpcy5fYWxsb3dEdXBsaWNhdGUoKSh7XG4gICAgICBpLFxuICAgICAgdmFsdWVcbiAgICB9KTtcbiAgfVxuXG4gIGdldCBhZGRJdGVtRGlzYWJsZWQoKSB7XG4gICAgcmV0dXJuICF0aGlzLmNhbkFkZEl0ZW07XG4gIH1cblxuICBnZXQgY2FuQWRkSXRlbSgpOiBib29sZWFuIHtcbiAgICBjb25zdCBtYXggPSB0aGlzLm1heDtcblxuICAgIGlmIChtYXggPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmNvdW50IDwgbWF4O1xuICAgIH1cbiAgfVxuXG4gIHJlYWRvbmx5IHRyYWNrQnlGdW5jdGlvbjogVHJhY2tCeUZ1bmN0aW9uPEZvcm1seUZpZWxkQ29uZmlnPiA9IChpLCB4KSA9PiB7XG4gICAgcmV0dXJuIHgua2V5O1xuICB9O1xuXG4gIC8qKlxuICAgKiBNb3ZlcyB0aGUgdGFyZ2V0IGluZGV4IHVwIG9uZSB2YWx1ZS5cbiAgICpcbiAgICogQHBhcmFtIGluZGV4XG4gICAqL1xuICBtb3ZlVXAoaW5kZXg6IG51bWJlcikge1xuICAgIGlmIChpbmRleCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc3dhcEluZGV4ZXMoaW5kZXgsIGluZGV4IC0gMSk7XG4gIH1cblxuICBtb3ZlRG93bihpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5zd2FwSW5kZXhlcyhpbmRleCwgaW5kZXggKyAxKTtcbiAgfVxuXG4gIGFkZENsaWNrZWQoKSB7XG4gICAgY29uc3QgYWRkVGVtcGxhdGUgPSB0aGlzLmFkZFRlbXBsYXRlO1xuICAgIGNvbnN0IHRlbXBsYXRlID0gYWRkVGVtcGxhdGUgPyBhZGRUZW1wbGF0ZSh0aGlzLmNvdW50KSA6IHVuZGVmaW5lZDtcbiAgICB0aGlzLmFkZCh1bmRlZmluZWQsIHRlbXBsYXRlKTtcbiAgfVxuXG4gIGR1cGxpY2F0ZShpbmRleDogbnVtYmVyKSB7XG4gICAgY29uc3QgYXJyYXk6IHVua25vd25bXSA9IHRoaXMubW9kZWw7XG4gICAgY29uc3QgdGFyZ2V0VmFsdWUgPSBhcnJheVtpbmRleF07XG5cbiAgICBpZiAoIXRhcmdldFZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdGFyZ2V0SW5kZXggPSB0aGlzLmFkZER1cGxpY2F0ZVRvRW5kID8gYXJyYXkubGVuZ3RoIDogaW5kZXg7XG4gICAgdGhpcy5hZGQodGFyZ2V0SW5kZXgsIHRhcmdldFZhbHVlLCB7IG1hcmtBc0RpcnR5OiB0cnVlIH0pO1xuICB9XG5cbiAgc3dhcEluZGV4ZXMoY3VycmVudEluZGV4OiBudW1iZXIsIHRhcmdldEluZGV4OiBudW1iZXIpIHtcbiAgICBjb25zdCBhcnJheTogdW5rbm93bltdID0gdGhpcy5tb2RlbDtcbiAgICBjb25zdCB0YXJnZXRWYWx1ZSA9IGFycmF5W2N1cnJlbnRJbmRleF07XG5cbiAgICBpZiAoIXRhcmdldFZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5yZW1vdmUoY3VycmVudEluZGV4KTtcbiAgICB0aGlzLmFkZCh0YXJnZXRJbmRleCwgdGFyZ2V0VmFsdWUsIHsgbWFya0FzRGlydHk6IHRydWUgfSk7XG4gICAgdGhpcy5mb3JtQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gIH1cblxuICBkcm9wKGV2ZW50OiBDZGtEcmFnRHJvcDx1bmtub3duPikge1xuICAgIHRoaXMuc3dhcEluZGV4ZXMoZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcbiAgfVxuXG4gIGxhYmVsRm9ySXRlbShmaWVsZENvbmZpZzogRm9ybWx5RmllbGRDb25maWcsIGk6IG51bWJlcik6IHN0cmluZyB7XG4gICAgY29uc3QgYXJyYXk6IHVua25vd25bXSA9IHRoaXMubW9kZWw7XG4gICAgY29uc3QgdmFsdWUgPSBhcnJheVtpXSBhcyBUO1xuXG4gICAgcmV0dXJuIGdldFZhbHVlRnJvbUdldHRlcih0aGlzLl9sYWJlbEZvckZpZWxkKCksIHtcbiAgICAgIGksXG4gICAgICB2YWx1ZSxcbiAgICAgIGZpZWxkQ29uZmlnXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
209
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXkuZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZvcm0vc3JjL2xpYi9mb3JtbHkvZmllbGQvdmFsdWUvYXJyYXkvYXJyYXkuZmllbGQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQW1CLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQXNELGtCQUFrQixFQUFZLFVBQVUsRUFBYyxNQUFNLGVBQWUsQ0FBQztBQUMzSyxPQUFPLEVBQXdCLGNBQWMsRUFBdUMsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7Ozs7QUF1RjdHLE1BQU0sT0FBTywrQkFBNkMsU0FBUSxjQUE4RDtJQUN0SCxjQUFjLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRTtRQUN6QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDO1FBRWxELElBQUksT0FBTyxLQUFLLEtBQUssVUFBVSxFQUFFO1lBQy9CLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7YUFBTTtZQUNMLE9BQU8sVUFBVSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQztTQUNoQztJQUNILENBQUMsQ0FBQyxDQUFDO0lBRUssWUFBWSxHQUF3RCxZQUFZLENBQUMsR0FBRyxFQUFFO1FBQzVGLE9BQU8sa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2hFLENBQUMsQ0FBQyxDQUFDO0lBRUssZUFBZSxHQUF3RCxZQUFZLENBQUMsR0FBRyxFQUFFO1FBQy9GLE9BQU8sa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsY0FBYyxJQUFJLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM3RSxD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SSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsV0FBVyxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDMUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBSSxDQUFDLEtBQTJCO1FBQzlCLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELFlBQVksQ0FBQyxXQUE4QixFQUFFLENBQVM7UUFDcEQsTUFBTSxLQUFLLEdBQWMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNwQyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFNLENBQUM7UUFFNUIsT0FBTyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUU7WUFDL0MsQ0FBQztZQUNELEtBQUs7WUFDTCxXQUFXO1NBQ1osQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt3R0FwS1UsK0JBQStCOzRGQUEvQiwrQkFBK0IsMkVBOUJoQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRCVDs7NEZBRVUsK0JBQStCO2tCQS9CM0MsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0QlQ7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZGtEcmFnRHJvcCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBUcmFja0J5RnVuY3Rpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGFzRGVjaXNpb25GdW5jdGlvbiwgY2FjaGVkR2V0dGVyLCBEZWNpc2lvbkZ1bmN0aW9uLCBGYWN0b3J5V2l0aFJlcXVpcmVkSW5wdXQsIEdldHRlciwgZ2V0VmFsdWVGcm9tR2V0dGVyLCBJbmRleFJlZiwgbWFrZUdldHRlciwgdHlwZSBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgRmllbGRBcnJheVR5cGVDb25maWcsIEZpZWxkQXJyYXlUeXBlLCBGb3JtbHlGaWVsZENvbmZpZywgRm9ybWx5RmllbGRQcm9wcyB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERieEZvcm1SZXBlYXRBcnJheVBhaXI8VCA9IHVua25vd24+IGV4dGVuZHMgSW5kZXhSZWYge1xuICB2YWx1ZT86IFQgfCB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGJ4Rm9ybVJlcGVhdEFycmF5RmllbGRDb25maWdQYWlyPFQgPSB1bmtub3duPiBleHRlbmRzIFBhcnRpYWw8RGJ4Rm9ybVJlcGVhdEFycmF5UGFpcjxUPj4ge1xuICBmaWVsZENvbmZpZzogRm9ybWx5RmllbGRDb25maWc7XG59XG5cbmV4cG9ydCB0eXBlIERieEZvcm1SZXBlYXRBcnJheUFkZFRlbXBsYXRlRnVuY3Rpb248VD4gPSBGYWN0b3J5V2l0aFJlcXVpcmVkSW5wdXQ8UGFydGlhbDxNYXliZTxUPj4sIG51bWJlcj47XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGJ4Rm9ybVJlcGVhdEFycmF5Q29uZmlnPFQgPSB1bmtub3duPiBleHRlbmRzIFBpY2s8Rm9ybWx5RmllbGRQcm9wcywgJ21heExlbmd0aCcgfCAnbGFiZWwnIHwgJ2Rlc2NyaXB0aW9uJz4ge1xuICBsYWJlbEZvckZpZWxkPzogc3RyaW5nIHwgRmFjdG9yeVdpdGhSZXF1aXJlZElucHV0PHN0cmluZywgRGJ4Rm9ybVJlcGVhdEFycmF5RmllbGRDb25maWdQYWlyPFQ+PjtcbiAgLyoqXG4gICAqIFRleHQgZm9yIHRoZSBhZGQgYnV0dG9uLlxuICAgKi9cbiAgYWRkVGV4dD86IHN0cmluZztcbiAgLyoqXG4gICAqIE9wdGlvbmFsIHRlbXBsYXRlIGZ1bmN0aW9uIHRvIGNyZWF0ZSBhIG5ldyB0ZW1wbGF0ZSB3aGVuIHVzaW5nIHRoZSBhZGQgYnV0dG9uLlxuICAgKi9cbiAgYWRkVGVtcGxhdGU/OiBEYnhGb3JtUmVwZWF0QXJyYXlBZGRUZW1wbGF0ZUZ1bmN0aW9uPFQ+O1xuICAvKipcbiAgICogVGV4dCBmb3IgdGhlIGR1cGxpY2F0ZSBidXR0b24uXG4gICAqL1xuICBkdXBsaWNhdGVUZXh0Pzogc3RyaW5nO1xuICAvKipcbiAgICogVGV4dCBmb3IgdGhlIHJlbW92ZSBidXR0b24uXG4gICAqL1xuICByZW1vdmVUZXh0Pzogc3RyaW5nO1xuICAvKipcbiAgICogV2hldGhlIG9yIG5vdCB0byBkaXNhYmxlIHJlYXJyYW5naW5nIGl0ZW1zLlxuICAgKlxuICAgKiBGYWxzZSBieSBkZWZhdWx0LlxuICAgKi9cbiAgZGlzYWJsZVJlYXJyYW5nZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXZXRoZXIgb3Igbm90IHRvIHNob3cgdGhlIGFkZCBidXR0b24uXG4gICAqXG4gICAqIFRydWUgYnkgZGVmYXVsdC5cbiAgICovXG4gIGFsbG93QWRkPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIGFsbG93IGR1cGxpY2F0ZWluZyBpdGVtcy4gQ2FuIG9wdGlvbmFsbHkgcGFzcyBhIGRlY2lzaW9uIGZ1bmN0aW9uIHRoYXQgZGVjaWRlcyB3aGV0aGVyIG9yIG5vdCBhIHNwZWNpZmljIGl0ZW0gY2FuIGJlIHJlbW92ZWQuXG4gICAqL1xuICBhbGxvd0R1cGxpY2F0ZT86IGJvb2xlYW4gfCBEZWNpc2lvbkZ1bmN0aW9uPERieEZvcm1SZXBlYXRBcnJheVBhaXI8VD4+O1xuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gYWxsb3cgcmVtb3ZpbmcgaXRlbXMuIENhbiBvcHRpb25hbGx5IHBhc3MgYSBkZWNpc2lvbiBmdW5jdGlvbiB0aGF0IGRlY2lkZXMgd2hldGhlciBvciBub3QgYSBzcGVjaWZpYyBpdGVtIGNhbiBiZSByZW1vdmVkLlxuICAgKi9cbiAgYWxsb3dSZW1vdmU/OiBib29sZWFuIHwgRGVjaXNpb25GdW5jdGlvbjxEYnhGb3JtUmVwZWF0QXJyYXlQYWlyPFQ+PjtcbiAgLyoqXG4gICAqIEFkZHMgdGhlIGR1cGxpY2F0ZSB0byB0aGUgZW5kIG9mIHRoZSB2YWx1ZXNcbiAgICovXG4gIGFkZER1cGxpY2F0ZVRvRW5kPzogYm9vbGVhbjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImRieC1mb3JtLXJlcGVhdC1hcnJheVwiPlxuICAgICAgPGRieC1zdWJzZWN0aW9uIFtoZWFkZXJdPVwibGFiZWxcIiBbaGludF09XCJkZXNjcmlwdGlvblwiPlxuICAgICAgICA8IS0tIEZpZWxkcyAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRieC1mb3JtLXJlcGVhdC1hcnJheS1maWVsZHNcIiBjZGtEcm9wTGlzdCBbY2RrRHJvcExpc3REaXNhYmxlZF09XCJkaXNhYmxlUmVhcnJhbmdlXCIgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudClcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGJ4LWZvcm0tcmVwZWF0LWFycmF5LWZpZWxkXCIgY2RrRHJhZyBjZGtEcmFnTG9ja0F4aXM9XCJ5XCIgKm5nRm9yPVwibGV0IGZpZWxkIG9mIGZpZWxkLmZpZWxkR3JvdXA7IHRyYWNrQnk6IHRyYWNrQnlGdW5jdGlvbjsgbGV0IGkgPSBpbmRleDsgbGV0IGxhc3QgPSBsYXN0XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGJ4LWZvcm0tcmVwZWF0LWFycmF5LWRyYWctcGxhY2Vob2xkZXJcIiAqY2RrRHJhZ1BsYWNlaG9sZGVyPjwvZGl2PlxuICAgICAgICAgICAgPGRieC1iYXIgY2xhc3M9XCJkYngtZm9ybS1yZXBlYXQtYXJyYXktYmFyIGRieC1iYXItZml4ZWQtaGVpZ2h0XCI+XG4gICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJkYngtZm9ybS1yZXBlYXQtYXJyYXktZHJhZy1idXR0b25cIiAqbmdJZj1cIiFkaXNhYmxlUmVhcnJhbmdlXCIgY2RrRHJhZ0hhbmRsZSBtYXQtc3Ryb2tlZC1idXR0b24+PG1hdC1pY29uPmRyYWdfaGFuZGxlPC9tYXQtaWNvbj48L2J1dHRvbj5cbiAgICAgICAgICAgICAgPGRieC1idXR0b24tc3BhY2VyPjwvZGJ4LWJ1dHRvbi1zcGFjZXI+XG4gICAgICAgICAgICAgIDxoND5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInJlcGVhdC1hcnJheS1udW1iZXJcIj57eyBpICsgMSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3Bhbj57eyBsYWJlbEZvckl0ZW0oZmllbGQsIGkpIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8L2g0PlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRieC1zcGFjZXJcIj48L3NwYW4+XG4gICAgICAgICAgICAgIDxkYngtYnV0dG9uICpuZ0lmPVwiYWxsb3dEdXBsaWNhdGUoaSlcIiBbc3Ryb2tlZF09XCJ0cnVlXCIgW3RleHRdPVwiZHVwbGljYXRlVGV4dFwiIChidXR0b25DbGljayk9XCJkdXBsaWNhdGUoaSlcIj48L2RieC1idXR0b24+XG4gICAgICAgICAgICAgIDxkYngtYnV0dG9uLXNwYWNlcj48L2RieC1idXR0b24tc3BhY2VyPlxuICAgICAgICAgICAgICA8ZGJ4LWJ1dHRvbiAqbmdJZj1cImFsbG93UmVtb3ZlKGkpXCIgY29sb3I9XCJ3YXJuXCIgW3N0cm9rZWRdPVwidHJ1ZVwiIFt0ZXh0XT1cInJlbW92ZVRleHRcIiAoYnV0dG9uQ2xpY2spPVwicmVtb3ZlKGkpXCI+PC9kYngtYnV0dG9uPlxuICAgICAgICAgICAgPC9kYngtYmFyPlxuICAgICAgICAgICAgPGZvcm1seS1maWVsZCBjbGFzcz1cImRieC1mb3JtLXJlcGVhdC1hcnJheS1maWVsZC1jb250ZW50XCIgW2ZpZWxkXT1cImZpZWxkXCI+PC9mb3JtbHktZmllbGQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8IS0tIEFkZCBCdXR0b24gLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkYngtZm9ybS1yZXBlYXQtYXJyYXktZm9vdGVyXCI+XG4gICAgICAgICAgPGRieC1idXR0b24gKm5nSWY9XCJhbGxvd0FkZFwiIFtyYWlzZWRdPVwidHJ1ZVwiIFtkaXNhYmxlZF09XCJhZGRJdGVtRGlzYWJsZWRcIiBbdGV4dF09XCJhZGRUZXh0XCIgKGJ1dHRvbkNsaWNrKT1cImFkZENsaWNrZWQoKVwiPjwvZGJ4LWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2RieC1zdWJzZWN0aW9uPlxuICAgIDwvZGl2PlxuICBgXG59KVxuZXhwb3J0IGNsYXNzIERieEZvcm1SZXBlYXRBcnJheVR5cGVDb21wb25lbnQ8VCA9IHVua25vd24+IGV4dGVuZHMgRmllbGRBcnJheVR5cGU8RmllbGRBcnJheVR5cGVDb25maWc8RGJ4Rm9ybVJlcGVhdEFycmF5Q29uZmlnPj4ge1xuICBwcml2YXRlIF9sYWJlbEZvckZpZWxkID0gY2FjaGVkR2V0dGVyKCgpID0+IHtcbiAgICBjb25zdCBpbnB1dCA9IHRoaXMucmVwZWF0QXJyYXlGaWVsZC5sYWJlbEZvckZpZWxkO1xuXG4gICAgaWYgKHR5cGVvZiBpbnB1dCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIGlucHV0O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbWFrZUdldHRlcihpbnB1dCA/PyAnJyk7XG4gICAgfVxuICB9KTtcblxuICBwcml2YXRlIF9hbGxvd1JlbW92ZTogR2V0dGVyPERlY2lzaW9uRnVuY3Rpb248RGJ4Rm9ybVJlcGVhdEFycmF5UGFpcjxUPj4+ID0gY2FjaGVkR2V0dGVyKCgpID0+IHtcbiAgICByZXR1cm4gYXNEZWNpc2lvbkZ1bmN0aW9uKHRoaXMuZmllbGQucHJvcHMuYWxsb3dSZW1vdmUsIHRydWUpO1xuICB9KTtcblxuICBwcml2YXRlIF9hbGxvd0R1cGxpY2F0ZTogR2V0dGVyPERlY2lzaW9uRnVuY3Rpb248RGJ4Rm9ybVJlcGVhdEFycmF5UGFpcjxUPj4+ID0gY2FjaGVkR2V0dGVyKCgpID0+IHtcbiAgICByZXR1cm4gYXNEZWNpc2lvbkZ1bmN0aW9uKHRoaXMuZmllbGQucHJvcHMuYWxsb3dEdXBsaWNhdGUgfHwgZmFsc2UsIGZhbHNlKTtcbiAgfSk7XG5cbiAgZ2V0IHJlcGVhdEFycmF5RmllbGQoKTogRGJ4Rm9ybVJlcGVhdEFycmF5Q29uZmlnIHtcbiAgICByZXR1cm4gdGhpcy5maWVsZC5wcm9wcztcbiAgfVxuXG4gIGdldCBsYWJlbCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmZpZWxkLnByb3BzLmxhYmVsID8/ICh0aGlzLmZpZWxkLmtleSBhcyBzdHJpbmcpO1xuICB9XG5cbiAgZ2V0IGRlc2NyaXB0aW9uKCk6IE1heWJlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLmZpZWxkLnByb3BzLmRlc2NyaXB0aW9uO1xuICB9XG5cbiAgZ2V0IGR1cGxpY2F0ZVRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZXBlYXRBcnJheUZpZWxkLmFkZFRleHQgPz8gJ0R1cGxpY2F0ZSc7XG4gIH1cblxuICBnZXQgYWRkVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlcGVhdEFycmF5RmllbGQuYWRkVGV4dCA/PyAnQWRkJztcbiAgfVxuXG4gIGdldCBhZGRUZW1wbGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5yZXBlYXRBcnJheUZpZWxkLmFkZFRlbXBsYXRlO1xuICB9XG5cbiAgZ2V0IHJlbW92ZVRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZXBlYXRBcnJheUZpZWxkLnJlbW92ZVRleHQgPz8gJ1JlbW92ZSc7XG4gIH1cblxuICBnZXQgbWF4KCk6IE1heWJlPG51bWJlcj4ge1xuICAgIHJldHVybiB0aGlzLmZpZWxkLnByb3BzLm1heExlbmd0aDtcbiAgfVxuXG4gIGdldCBjb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmZpZWxkLmZpZWxkR3JvdXA/Lmxlbmd0aCA/PyAwO1xuICB9XG5cbiAgZ2V0IGRpc2FibGVSZWFycmFuZ2UoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIEJvb2xlYW4odGhpcy5maWVsZC5wcm9wcy5kaXNhYmxlUmVhcnJhbmdlKTtcbiAgfVxuXG4gIGdldCBhbGxvd0FkZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5maWVsZC5wcm9wcy5hbGxvd0FkZCA/PyB0cnVlO1xuICB9XG5cbiAgZ2V0IGFkZER1cGxpY2F0ZVRvRW5kKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZpZWxkLnByb3BzLmFkZER1cGxpY2F0ZVRvRW5kID8/IGZhbHNlO1xuICB9XG5cbiAgYWxsb3dSZW1vdmUoaTogbnVtYmVyKSB7XG4gICAgY29uc3QgYXJyYXk6IHVua25vd25bXSA9IHRoaXMubW9kZWw7XG4gICAgY29uc3QgdmFsdWUgPSBhcnJheVtpXSBhcyBUIHwgdW5kZWZpbmVkO1xuICAgIHJldHVybiB0aGlzLl9hbGxvd1JlbW92ZSgpKHtcbiAgICAgIGksXG4gICAgICB2YWx1ZVxuICAgIH0pO1xuICB9XG5cbiAgYWxsb3dEdXBsaWNhdGUoaTogbnVtYmVyKSB7XG4gICAgY29uc3QgYXJyYXk6IHVua25vd25bXSA9IHRoaXMubW9kZWw7XG4gICAgY29uc3QgdmFsdWUgPSBhcnJheVtpXSBhcyBUO1xuICAgIHJldHVybiB0aGlzLl9hbGxvd0R1cGxpY2F0ZSgpKHtcbiAgICAgIGksXG4gICAgICB2YWx1ZVxuICAgIH0pO1xuICB9XG5cbiAgZ2V0IGFkZEl0ZW1EaXNhYmxlZCgpIHtcbiAgICByZXR1cm4gIXRoaXMuY2FuQWRkSXRlbTtcbiAgfVxuXG4gIGdldCBjYW5BZGRJdGVtKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IG1heCA9IHRoaXMubWF4O1xuXG4gICAgaWYgKG1heCA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuY291bnQgPCBtYXg7XG4gICAgfVxuICB9XG5cbiAgcmVhZG9ubHkgdHJhY2tCeUZ1bmN0aW9uOiBUcmFja0J5RnVuY3Rpb248Rm9ybWx5RmllbGRDb25maWc+ID0gKGksIHgpID0+IHtcbiAgICByZXR1cm4geC5rZXk7XG4gIH07XG5cbiAgLyoqXG4gICAqIE1vdmVzIHRoZSB0YXJnZXQgaW5kZXggdXAgb25lIHZhbHVlLlxuICAgKlxuICAgKiBAcGFyYW0gaW5kZXhcbiAgICovXG4gIG1vdmVVcChpbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKGluZGV4ID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zd2FwSW5kZXhlcyhpbmRleCwgaW5kZXggLSAxKTtcbiAgfVxuXG4gIG1vdmVEb3duKGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLnN3YXBJbmRleGVzKGluZGV4LCBpbmRleCArIDEpO1xuICB9XG5cbiAgYWRkQ2xpY2tlZCgpIHtcbiAgICBjb25zdCBhZGRUZW1wbGF0ZSA9IHRoaXMuYWRkVGVtcGxhdGU7XG4gICAgY29uc3QgdGVtcGxhdGUgPSBhZGRUZW1wbGF0ZSA/IGFkZFRlbXBsYXRlKHRoaXMuY291bnQpIDogdW5kZWZpbmVkO1xuICAgIHRoaXMuYWRkKHVuZGVmaW5lZCwgdGVtcGxhdGUpO1xuICB9XG5cbiAgZHVwbGljYXRlKGluZGV4OiBudW1iZXIpIHtcbiAgICBjb25zdCBhcnJheTogdW5rbm93bltdID0gdGhpcy5tb2RlbDtcbiAgICBjb25zdCB0YXJnZXRWYWx1ZSA9IGFycmF5W2luZGV4XTtcblxuICAgIGlmICghdGFyZ2V0VmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB0YXJnZXRJbmRleCA9IHRoaXMuYWRkRHVwbGljYXRlVG9FbmQgPyBhcnJheS5sZW5ndGggOiBpbmRleDtcbiAgICB0aGlzLmFkZCh0YXJnZXRJbmRleCwgdGFyZ2V0VmFsdWUsIHsgbWFya0FzRGlydHk6IHRydWUgfSk7XG4gIH1cblxuICBzd2FwSW5kZXhlcyhjdXJyZW50SW5kZXg6IG51bWJlciwgdGFyZ2V0SW5kZXg6IG51bWJlcikge1xuICAgIGNvbnN0IGFycmF5OiB1bmtub3duW10gPSB0aGlzLm1vZGVsO1xuICAgIGNvbnN0IHRhcmdldFZhbHVlID0gYXJyYXlbY3VycmVudEluZGV4XTtcblxuICAgIGlmICghdGFyZ2V0VmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnJlbW92ZShjdXJyZW50SW5kZXgpO1xuICAgIHRoaXMuYWRkKHRhcmdldEluZGV4LCB0YXJnZXRWYWx1ZSwgeyBtYXJrQXNEaXJ0eTogdHJ1ZSB9KTtcbiAgICB0aGlzLmZvcm1Db250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgfVxuXG4gIGRyb3AoZXZlbnQ6IENka0RyYWdEcm9wPHVua25vd24+KSB7XG4gICAgdGhpcy5zd2FwSW5kZXhlcyhldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xuICB9XG5cbiAgbGFiZWxGb3JJdGVtKGZpZWxkQ29uZmlnOiBGb3JtbHlGaWVsZENvbmZpZywgaTogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBjb25zdCBhcnJheTogdW5rbm93bltdID0gdGhpcy5tb2RlbDtcbiAgICBjb25zdCB2YWx1ZSA9IGFycmF5W2ldIGFzIFQ7XG5cbiAgICByZXR1cm4gZ2V0VmFsdWVGcm9tR2V0dGVyKHRoaXMuX2xhYmVsRm9yRmllbGQoKSwge1xuICAgICAgaSxcbiAgICAgIHZhbHVlLFxuICAgICAgZmllbGRDb25maWdcbiAgICB9KTtcbiAgfVxufVxuIl19