@gravitee/ui-components 3.21.7 → 3.24.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 (92) hide show
  1. package/package.json +22 -21
  2. package/src/atoms/gv-autocomplete.js +5 -6
  3. package/src/atoms/gv-button.js +4 -4
  4. package/src/atoms/gv-checkbox.js +3 -3
  5. package/src/atoms/gv-date-picker-calendar.js +4 -5
  6. package/src/atoms/gv-date-picker-cell.js +4 -4
  7. package/src/atoms/gv-date-picker.js +4 -5
  8. package/src/atoms/gv-file-upload.js +4 -5
  9. package/src/atoms/gv-icon.js +14 -7
  10. package/src/atoms/gv-image.js +4 -4
  11. package/src/atoms/gv-input-message.js +2 -3
  12. package/src/atoms/gv-input.js +3 -3
  13. package/src/atoms/gv-link.js +6 -6
  14. package/src/atoms/gv-message.js +3 -3
  15. package/src/atoms/gv-metric.js +3 -3
  16. package/src/atoms/gv-relative-time.js +6 -4
  17. package/src/atoms/gv-select-native.js +288 -0
  18. package/src/atoms/gv-select.js +10 -8
  19. package/src/atoms/gv-spinner.js +2 -2
  20. package/src/atoms/gv-state.js +3 -3
  21. package/src/atoms/gv-switch.js +4 -4
  22. package/src/atoms/gv-tag.js +3 -3
  23. package/src/atoms/gv-text.js +4 -4
  24. package/src/charts/gv-chart-bar.js +2 -2
  25. package/src/charts/gv-chart-gauge.js +2 -2
  26. package/src/charts/gv-chart-histogram.js +2 -2
  27. package/src/charts/gv-chart-line.js +2 -2
  28. package/src/charts/gv-chart-map.js +2 -2
  29. package/src/charts/gv-chart-pie.js +2 -2
  30. package/src/index.js +2 -1
  31. package/src/lib/item.js +2 -2
  32. package/src/lib/studio.js +3 -3
  33. package/src/mixins/chart-element.js +3 -4
  34. package/src/mixins/input-element.js +4 -4
  35. package/src/mixins/item-resource.js +3 -3
  36. package/src/mixins/with-skeleton-attribute.js +2 -2
  37. package/src/molecules/gv-card-full.js +7 -6
  38. package/src/molecules/gv-card-list.js +3 -4
  39. package/src/molecules/gv-card.js +3 -3
  40. package/src/molecules/gv-category-list.js +2 -3
  41. package/src/molecules/gv-category.js +3 -3
  42. package/src/molecules/gv-code-hint.js +2 -3
  43. package/src/molecules/gv-code.js +3 -3
  44. package/src/molecules/gv-confirm.js +2 -3
  45. package/src/molecules/gv-cron-editor.js +3 -3
  46. package/src/molecules/gv-dropdown-menu.js +2 -3
  47. package/src/molecules/gv-expandable.js +3 -3
  48. package/src/molecules/gv-expression-language.js +2 -3
  49. package/src/molecules/gv-identity-picture.js +3 -4
  50. package/src/molecules/gv-list.js +4 -4
  51. package/src/molecules/gv-metrics.js +4 -4
  52. package/src/molecules/gv-modal.js +2 -2
  53. package/src/molecules/gv-nav.js +5 -5
  54. package/src/molecules/gv-option.js +6 -6
  55. package/src/molecules/gv-plans.js +5 -6
  56. package/src/molecules/gv-popover.js +3 -4
  57. package/src/molecules/gv-promote.js +7 -6
  58. package/src/molecules/gv-rating-list.js +4 -5
  59. package/src/molecules/gv-rating.js +4 -4
  60. package/src/molecules/gv-row-expandable.js +2 -2
  61. package/src/molecules/gv-row.js +3 -3
  62. package/src/molecules/gv-stats.js +4 -4
  63. package/src/molecules/gv-stepper.js +4 -4
  64. package/src/molecules/gv-table.js +7 -8
  65. package/src/molecules/gv-tree.js +4 -4
  66. package/src/organisms/gv-documentation.js +2 -2
  67. package/src/organisms/gv-header.js +6 -6
  68. package/src/organisms/gv-http-client.js +2 -2
  69. package/src/organisms/gv-menu.js +3 -3
  70. package/src/organisms/gv-newsletter-subscription.js +2 -2
  71. package/src/organisms/gv-pagination.js +2 -2
  72. package/src/organisms/gv-properties.js +3 -3
  73. package/src/organisms/gv-resizable-views.js +3 -4
  74. package/src/organisms/gv-resources.js +2 -2
  75. package/src/organisms/gv-schema-form-array.js +5 -5
  76. package/src/organisms/gv-schema-form-control-object.js +5 -5
  77. package/src/organisms/gv-schema-form-control.js +11 -11
  78. package/src/organisms/gv-schema-form.js +8 -7
  79. package/src/organisms/gv-tabs.js +2 -3
  80. package/src/organisms/gv-user-menu.js +4 -4
  81. package/src/organisms/gv-vertical-menu.js +2 -2
  82. package/src/policy-studio/gv-flow-step.js +3 -3
  83. package/src/policy-studio/gv-flow.js +5 -5
  84. package/src/policy-studio/gv-policy-studio-menu.js +4 -4
  85. package/src/policy-studio/gv-policy-studio.js +5 -5
  86. package/src/styles/empty.js +2 -2
  87. package/src/styles/input.js +3 -3
  88. package/src/styles/link.js +2 -2
  89. package/src/styles/skeleton.js +2 -2
  90. package/src/styles/zoom.js +2 -2
  91. package/src/theme/gv-theme.js +2 -2
  92. package/wc/gv-select-native.js +1 -0
@@ -13,7 +13,7 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import { css, html, LitElement } from 'lit-element';
16
+ import { css, html, LitElement } from 'lit';
17
17
  import './gv-schema-form';
18
18
  import './gv-resizable-views';
19
19
  import './gv-documentation';
@@ -425,4 +425,4 @@ export class GvResources extends KeyboardElement(LitElement) {
425
425
 
426
426
  }
427
427
  window.customElements.define('gv-resources', GvResources);
428
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL29yZ2FuaXNtcy9ndi1yZXNvdXJjZXMuanMiXSwibmFtZXMiOlsiY3NzIiwiaHRtbCIsIkxpdEVsZW1lbnQiLCJkaXNwYXRjaEN1c3RvbUV2ZW50IiwidXVpZCIsIktleWJvYXJkRWxlbWVudCIsIktFWVMiLCJlbXB0eSIsIkd2UmVzb3VyY2VzIiwicHJvcGVydGllcyIsInJlc291cmNlcyIsInR5cGUiLCJBcnJheSIsIl9yZXNvdXJjZXMiLCJhdHRyaWJ1dGUiLCJ0eXBlcyIsImRvY3VtZW50YXRpb24iLCJPYmplY3QiLCJfY3VycmVudFJlc291cmNlIiwiX2N1cnJlbnRSZXNvdXJjZUxvYWRpbmciLCJCb29sZWFuIiwiX2ZpbHRlciIsIlN0cmluZyIsInJlYWRvbmx5IiwicmVmbGVjdCIsImNvbnN0cnVjdG9yIiwiX2VtcHR5bWVzc2FnZSIsIm9uS2V5Ym9hcmQiLCJpc1ByZXNzZWQiLCJFc2MiLCJfb25DYW5jZWxSZXNvdXJjZUZvcm0iLCJTaGlmdCIsIkN0cmwiLCJTcGFjZSIsInNlYXJjaCIsInNoYWRvd1Jvb3QiLCJxdWVyeVNlbGVjdG9yIiwiZm9jdXMiLCJmaXJzdFVwZGF0ZWQiLCJ2aWV3cyIsInVwZGF0ZUNvbXBsZXRlIiwidGhlbiIsIl9tYXhpbWl6ZVRvcFZpZXciLCJfZ2VuZXJhdGVJZCIsImxpc3QiLCJtYXAiLCJlIiwiX2lkIiwiX2dldFJlc2l6YWJsZVZpZXdzIiwicmVzaXplIiwiX21heGltaXplQm90dG9tVmlldyIsIm1heGltaXplQm90dG9tIiwiX3NwbGl0TWFpblZpZXdzIiwic3BsaXQiLCJfcmVtb3ZlUmVzb3VyY2UiLCJpdGVtIiwiZmlsdGVyIiwicmVzb3VyY2UiLCJfYnVpbGRSZXNvdXJjZVNjaGVtYSIsInJlc291cmNlVHlwZSIsImRlZmF1bHRTY2hlbWEiLCJuYW1lIiwidGl0bGUiLCJyZXF1aXJlZCIsInNjaGVtYSIsIkpTT04iLCJwYXJzZSIsIl9vbkNyZWF0ZVJlc291cmNlIiwiZGV0YWlsIiwiZGVmYXVsdFJlc291cmNlVHlwZSIsImZpbmQiLCJpZCIsImljb24iLCJ2YWx1ZXMiLCJzdWJtaXRMYWJlbCIsImRpcnR5IiwiX29uRmV0Y2hEb2N1bWVudGF0aW9uIiwic2V0VGltZW91dCIsIl9vblN1Ym1pdFJlc291cmNlRm9ybSIsIl92YWx1ZXMiLCJjb25maWd1cmF0aW9uIiwiaW5kZXgiLCJmaW5kSW5kZXgiLCJyIiwiZW5hYmxlZCIsInB1c2giLCJfb25DaGFuZ2VSZXNvdXJjZUZvcm0iLCJfb25SZXNldFJlc291cmNlRm9ybSIsIl9maW5kUmVzb3VyY2VCeUlkIiwiX29uU2VsZWN0UmVzb3VyY2UiLCJpdGVtcyIsImxlbmd0aCIsIl9vbkVkaXRSZXNvdXJjZSIsIl9vbkNsb3NlRG9jdW1lbnRhdGlvbiIsIl9nZXRDdXJyZW50UmVzb3VyY2VUeXBlIiwidGFyZ2V0IiwiZm9ybSIsImNvbmZpcm0iLCJQcm9taXNlIiwicmVzb2x2ZSIsIl9vbkNoYW5nZVJlc291cmNlU3RhdGUiLCJldmVudCIsIl9yZW5kZXJGb3JtIiwiX3JlbmRlckRvYyIsImNvbnRlbnQiLCJpbWFnZSIsIl9yZW5kZXJCb3R0b20iLCJyZXNvdXJjZU9wdHMiLCJkZXNjcmlwdGlvbiIsIl9vblNlYXJjaFJlc291cmNlIiwiX29uQ2xlYXJSZXNvdXJjZSIsInJlbmRlciIsIm9wdGlvbnMiLCJzZWxlY3RhYmxlIiwiZGF0YSIsImZpZWxkIiwibGFiZWwiLCJ3aWR0aCIsImF0dHJpYnV0ZXMiLCJzcmMiLCJzdHlsZSIsIm9uQ2xpY2siLCJkYW5nZXIiLCJvdXRsaW5lZCIsImZpbHRlcmVkUmVzb3VyY2VzIiwidG9Mb3dlckNhc2UiLCJpbmNsdWRlcyIsInN0eWxlcyIsIndpbmRvdyIsImN1c3RvbUVsZW1lbnRzIiwiZGVmaW5lIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FB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QzlDLElBQVQsQ0FBY2tILFdBQWQsRUFBL0IsRUFBNERDLFFBQTVELENBQXFFLEtBQUt6RyxPQUExRSxDQUFQO0FBQ0QsS0FGRCxDQURKLEdBSUksS0FBS1gsU0FMWDtBQU9BLFdBQU9ULElBQUksd0xBS21ELEtBQUtTLFNBQUwsQ0FBZWlGLE1BTGxFLGlLQVlvQixLQUFLa0IsaUJBWnpCLHNCQWFvQixLQUFLQyxnQkFiekIsZ0dBbUJlRSxPQW5CZixhQW9CYVksaUJBcEJiLG1CQXFCbUIsS0FBS2xHLGFBckJ4Qix1QkFzQnVCLEtBQUsrRCxpQkF0QjVCLDhGQThCYyxLQUFLaUIsYUFBTCxFQTlCZCxxQ0FBWDtBQWlDRDs7QUFFZ0IsYUFBTnFCLE1BQU0sR0FBRztBQUNsQixXQUFPLENBQ0x4SCxLQURLLEVBRUw7QUFDQVAsSUFBQUEsR0FBRyxrakNBSEUsQ0FBUDtBQWlIRDs7QUFyZjBEO0FBd2Y3RGdJLE1BQU0sQ0FBQ0MsY0FBUCxDQUFzQkMsTUFBdEIsQ0FBNkIsY0FBN0IsRUFBNkMxSCxXQUE3QyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBjc3MsIGh0bWwsIExpdEVsZW1lbnQgfSBmcm9tICdsaXQtZWxlbWVudCc7XG5cbmltcG9ydCAnLi9ndi1zY2hlbWEtZm9ybSc7XG5pbXBvcnQgJy4vZ3YtcmVzaXphYmxlLXZpZXdzJztcbmltcG9ydCAnLi9ndi1kb2N1bWVudGF0aW9uJztcbmltcG9ydCAnLi4vbW9sZWN1bGVzL2d2LXRhYmxlJztcbmltcG9ydCAnLi4vYXRvbXMvZ3YtYnV0dG9uJztcbmltcG9ydCAnLi4vbW9sZWN1bGVzL2d2LW9wdGlvbic7XG5pbXBvcnQgJy4uL2F0b21zL2d2LXN3aXRjaCc7XG5pbXBvcnQgJy4uL2F0b21zL2d2LWljb24nO1xuaW1wb3J0IHsgZGlzcGF0Y2hDdXN0b21FdmVudCB9IGZyb20gJy4uL2xpYi9ldmVudHMnO1xuaW1wb3J0IHsgdXVpZCB9IGZyb20gJy4uL2xpYi91dGlscyc7XG5pbXBvcnQgeyBLZXlib2FyZEVsZW1lbnQsIEtFWVMgfSBmcm9tICcuLi9taXhpbnMva2V5Ym9hcmQtZWxlbWVudCc7XG5pbXBvcnQgeyBlbXB0eSB9IGZyb20gJy4uL3N0eWxlcy9lbXB0eSc7XG5cbmV4cG9ydCBjbGFzcyBHdlJlc291cmNlcyBleHRlbmRzIEtleWJvYXJkRWxlbWVudChMaXRFbGVtZW50KSB7XG4gIHN0YXRpYyBnZXQgcHJvcGVydGllcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgcmVzb3VyY2VzOiB7IHR5cGU6IEFycmF5IH0sXG4gICAgICBfcmVzb3VyY2VzOiB7IHR5cGU6IEFycmF5LCBhdHRyaWJ1dGU6IGZhbHNlIH0sXG4gICAgICB0eXBlczogeyB0eXBlOiBBcnJheSB9LFxuICAgICAgZG9jdW1lbnRhdGlvbjogeyB0eXBlOiBPYmplY3QgfSxcbiAgICAgIF9jdXJyZW50UmVzb3VyY2U6IHsgdHlwZTogT2JqZWN0LCBhdHRyaWJ1dGU6IGZhbHNlIH0sXG4gICAgICBfY3VycmVudFJlc291cmNlTG9hZGluZzogeyB0eXBlOiBCb29sZWFuLCBhdHRyaWJ1dGU6IGZhbHNlIH0sXG4gICAgICBfZmlsdGVyOiB7IHR5cGU6IFN0cmluZyB9LFxuICAgICAgcmVhZG9ubHk6IHsgdHlwZTogQm9vbGVhbiwgcmVmbGVjdDogdHJ1ZSB9LFxuICAgIH07XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMucmVzb3VyY2VzID0gW107XG4gICAgdGhpcy50eXBlcyA9IFtdO1xuICAgIHRoaXMuX2N1cnJlbnRSZXNvdXJjZSA9IG51bGw7XG4gICAgdGhpcy5fZW1wdHltZXNzYWdlID0gJ05vIHJlc291cmNlJztcbiAgfVxuXG4gIG9uS2V5Ym9hcmQoKSB7XG4gICAgaWYgKHRoaXMuaXNQcmVzc2VkKEtFWVMuRXNjKSkge1xuICAgICAgdGhpcy5fb25DYW5jZWxSZXNvdXJjZUZvcm0oKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaXNQcmVzc2VkKEtFWVMuU2hpZnQsIEtFWVMuQ3RybCwgS0VZUy5TcGFjZSkpIHtcbiAgICAgIGNvbnN0IHNlYXJjaCA9IHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcjc2VhcmNoLXJlc291cmNlJyk7XG4gICAgICBpZiAoc2VhcmNoKSB7XG4gICAgICAgIHNlYXJjaC5mb2N1cygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZpcnN0VXBkYXRlZCgpIHtcbiAgICBjb25zdCB2aWV3cyA9IHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdndi1yZXNpemFibGUtdmlld3MnKTtcbiAgICBpZiAodmlld3MgIT0gbnVsbCkge1xuICAgICAgdmlld3MudXBkYXRlQ29tcGxldGUudGhlbigoKSA9PiB7XG4gICAgICAgIHRoaXMuX21heGltaXplVG9wVmlldygpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgc2V0IHJlc291cmNlcyhyZXNvdXJjZXMpIHtcbiAgICB0aGlzLl9yZXNvdXJjZXMgPSB0aGlzLl9nZW5lcmF0ZUlkKHJlc291cmNlcyk7XG4gIH1cblxuICBnZXQgcmVzb3VyY2VzKCkge1xuICAgIHJldHVybiB0aGlzLl9yZXNvdXJjZXM7XG4gIH1cblxuICBfZ2VuZXJhdGVJZChsaXN0KSB7XG4gICAgaWYgKGxpc3QpIHtcbiAgICAgIHJldHVybiBsaXN0Lm1hcCgoZSkgPT4ge1xuICAgICAgICBpZiAoZS5faWQgPT0gbnVsbCkge1xuICAgICAgICAgIGUuX2lkID0gdXVpZCgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBlO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBsaXN0O1xuICB9XG5cbiAgX2dldFJlc2l6YWJsZVZpZXdzKCkge1xuICAgIHJldHVybiB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignZ3YtcmVzaXphYmxlLXZpZXdzJyk7XG4gIH1cblxuICBfbWF4aW1pemVUb3BWaWV3KCkge1xuICAgIHRoaXMuX2dldFJlc2l6YWJsZVZpZXdzKCkucmVzaXplKDYwLCA0MCk7XG4gIH1cblxuICBfbWF4aW1pemVCb3R0b21WaWV3KCkge1xuICAgIHRoaXMuX2dldFJlc2l6YWJsZVZpZXdzKCkubWF4aW1pemVCb3R0b20oKTtcbiAgfVxuXG4gIF9zcGxpdE1haW5WaWV3cygpIHtcbiAgICB0aGlzLl9nZXRSZXNpemFibGVWaWV3cygpLnNwbGl0KCk7XG4gIH1cblxuICBfb25DYW5jZWxSZXNvdXJjZUZvcm0oKSB7XG4gICAgdGhpcy5fY3VycmVudFJlc291cmNlID0gbnVsbDtcbiAgICB0aGlzLmRvY3VtZW50YXRpb24gPSBudWxsO1xuICAgIHRoaXMuX21heGltaXplVG9wVmlldygpO1xuICB9XG5cbiAgX3JlbW92ZVJlc291cmNlKGl0ZW0pIHtcbiAgICB0aGlzLnJlc291cmNlcyA9IHRoaXMucmVzb3VyY2VzLmZpbHRlcigocmVzb3VyY2UpID0+IHJlc291cmNlLl9pZCAhPT0gaXRlbS5faWQpO1xuICAgIHRoaXMuX29uQ2FuY2VsUmVzb3VyY2VGb3JtKCk7XG4gICAgZGlzcGF0Y2hDdXN0b21FdmVudCh0aGlzLCAnY2hhbmdlJywgeyByZXNvdXJjZXM6IHRoaXMucmVzb3VyY2VzIH0pO1xuICB9XG5cbiAgX2J1aWxkUmVzb3VyY2VTY2hlbWEocmVzb3VyY2VUeXBlKSB7XG4gICAgY29uc3QgZGVmYXVsdFNjaGVtYSA9IHtcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgbmFtZToge1xuICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgIHRpdGxlOiAnUmVzb3VyY2UgbmFtZScsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgcmVxdWlyZWQ6IFsnbmFtZSddLFxuICAgIH07XG5cbiAgICBjb25zdCBzY2hlbWEgPSB0eXBlb2YgcmVzb3VyY2VUeXBlLnNjaGVtYSA9PT0gJ3N0cmluZycgPyBKU09OLnBhcnNlKHJlc291cmNlVHlwZS5zY2hlbWEpIDogcmVzb3VyY2VUeXBlLnNjaGVtYTtcblxuICAgIHJldHVybiB7XG4gICAgICBwcm9wZXJ0aWVzOiB7IC4uLmRlZmF1bHRTY2hlbWEucHJvcGVydGllcywgLi4uc2NoZW1hLnByb3BlcnRpZXMgfSxcbiAgICAgIHJlcXVpcmVkOiBbLi4uZGVmYXVsdFNjaGVtYS5yZXF1aXJlZCwgLi4uc2NoZW1hLnJlcXVpcmVkXSxcbiAgICB9O1xuICB9XG5cbiAgX29uQ3JlYXRlUmVzb3VyY2UoeyBkZXRhaWwgfSkge1xuICAgIHRoaXMuX2N1cnJlbnRSZXNvdXJjZUxvYWRpbmcgPSB0cnVlO1xuICAgIGNvbnN0IGRlZmF1bHRSZXNvdXJjZVR5cGUgPSB0aGlzLnR5cGVzLmZpbmQoKHR5cGUpID0+IHR5cGUuaWQgPT09IGRldGFpbC5pZCk7XG4gICAgY29uc3Qgc2NoZW1hID0gdGhpcy5fYnVpbGRSZXNvdXJjZVNjaGVtYShkZWZhdWx0UmVzb3VyY2VUeXBlKTtcbiAgICB0aGlzLl9jdXJyZW50UmVzb3VyY2UgPSB7XG4gICAgICB0eXBlOiBkZWZhdWx0UmVzb3VyY2VUeXBlLmlkLFxuICAgICAgdGl0bGU6ICdDcmVhdGUgcmVzb3VyY2UnLFxuICAgICAgaWNvbjogJ2NvZGU6cGx1cycsXG4gICAgICBzY2hlbWEsXG4gICAgICB2YWx1ZXM6IHt9LFxuICAgICAgc3VibWl0TGFiZWw6ICdBZGQnLFxuICAgICAgZGlydHk6IHRydWUsXG4gICAgfTtcbiAgICB0aGlzLl9tYXhpbWl6ZUJvdHRvbVZpZXcoKTtcbiAgICB0aGlzLl9vbkZldGNoRG9jdW1lbnRhdGlvbigpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4gKHRoaXMuX2N1cnJlbnRSZXNvdXJjZUxvYWRpbmcgPSBmYWxzZSksIDYwMCk7XG4gIH1cblxuICBfb25TdWJtaXRSZXNvdXJjZUZvcm0oeyBkZXRhaWwgfSkge1xuICAgIGRlbGV0ZSB0aGlzLl9jdXJyZW50UmVzb3VyY2UuX3ZhbHVlcztcbiAgICBjb25zdCB7IHR5cGUgfSA9IHRoaXMuX2N1cnJlbnRSZXNvdXJjZTtcbiAgICBjb25zdCB7IF9pZCwgbmFtZSwgLi4uY29uZmlndXJhdGlvbiB9ID0gZGV0YWlsLnZhbHVlcztcblxuICAgIGNvbnN0IHJlc291cmNlID0ge1xuICAgICAgX2lkLFxuICAgICAgdHlwZSxcbiAgICAgIG5hbWUsXG4gICAgICBjb25maWd1cmF0aW9uLFxuICAgIH07XG5cbiAgICBpZiAoZGV0YWlsLnZhbHVlcy5faWQgIT0gbnVsbCkge1xuICAgICAgY29uc3QgaW5kZXggPSB0aGlzLnJlc291cmNlcy5maW5kSW5kZXgoKHIpID0+IHIuX2lkID09PSByZXNvdXJjZS5faWQpO1xuICAgICAgdGhpcy5yZXNvdXJjZXNbaW5kZXhdID0geyAuLi50aGlzLnJlc291cmNlc1tpbmRleF0sIC4uLnJlc291cmNlIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLnJlc291cmNlcyA9PSBudWxsKSB7XG4gICAgICAgIHRoaXMucmVzb3VyY2VzID0gW107XG4gICAgICB9XG4gICAgICByZXNvdXJjZS5faWQgPSB1dWlkKCk7XG4gICAgICByZXNvdXJjZS5lbmFibGVkID0gdHJ1ZTtcbiAgICAgIHRoaXMucmVzb3VyY2VzLnB1c2gocmVzb3VyY2UpO1xuICAgIH1cbiAgICB0aGlzLl9vbkNhbmNlbFJlc291cmNlRm9ybSgpO1xuICAgIGRpc3BhdGNoQ3VzdG9tRXZlbnQodGhpcywgJ2NoYW5nZScsIHsgcmVzb3VyY2VzOiB0aGlzLnJlc291cmNlcyB9KTtcbiAgfVxuXG4gIF9vbkNoYW5nZVJlc291cmNlRm9ybSh7IGRldGFpbCB9KSB7XG4gICAgdGhpcy5fY3VycmVudFJlc291cmNlLl92YWx1ZXMgPSBkZXRhaWwudmFsdWVzO1xuICB9XG5cbiAgX29uUmVzZXRSZXNvdXJjZUZvcm0oKSB7XG4gICAgZGVsZXRlIHRoaXMuX2N1cnJlbnRSZXNvdXJjZS5fdmFsdWVzO1xuICB9XG5cbiAgX2ZpbmRSZXNvdXJjZUJ5SWQoaWQpIHtcbiAgICByZXR1cm4gdGhpcy50eXBlcy5maW5kKChyZXNvdXJjZSkgPT4gcmVzb3VyY2UuaWQgPT09IGlkKTtcbiAgfVxuXG4gIC8vIEZvciByZWFkb25seSBtb2RlXG4gIF9vblNlbGVjdFJlc291cmNlKHsgZGV0YWlsOiB7IGl0ZW1zIH0gfSkge1xuICAgIGlmIChpdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLl9vbkVkaXRSZXNvdXJjZShpdGVtc1swXSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX29uQ2FuY2VsUmVzb3VyY2VGb3JtKCk7XG4gICAgfVxuICB9XG5cbiAgX29uRWRpdFJlc291cmNlKHJlc291cmNlKSB7XG4gICAgY29uc3QgdmFsdWVzID0geyAuLi5yZXNvdXJjZSwgLi4ucmVzb3VyY2UuY29uZmlndXJhdGlvbiB9O1xuICAgIGRlbGV0ZSB2YWx1ZXMuY29uZmlndXJhdGlvbjtcbiAgICBjb25zdCByZXNvdXJjZVR5cGUgPSB0aGlzLl9maW5kUmVzb3VyY2VCeUlkKHJlc291cmNlLnR5cGUpO1xuICAgIHRoaXMuX2N1cnJlbnRSZXNvdXJjZSA9IHtcbiAgICAgIF9pZDogcmVzb3VyY2UuX2lkLFxuICAgICAgdGl0bGU6ICdSZXNvdXJjZSBjb25maWd1cmF0aW9uJyxcbiAgICAgIHR5cGU6IHJlc291cmNlLnR5cGUsXG4gICAgICBpY29uOiAnZGVzaWduOmVkaXQnLFxuICAgICAgc2NoZW1hOiB0aGlzLl9idWlsZFJlc291cmNlU2NoZW1hKHJlc291cmNlVHlwZSksXG4gICAgICB2YWx1ZXMsXG4gICAgICBzdWJtaXRMYWJlbDogJ1VwZGF0ZScsXG4gICAgfTtcbiAgICB0aGlzLl9zcGxpdE1haW5WaWV3cygpO1xuICAgIHRoaXMuX29uRmV0Y2hEb2N1bWVudGF0aW9uKCk7XG4gIH1cblxuICBfb25DbG9zZURvY3VtZW50YXRpb24oKSB7XG4gICAgdGhpcy5kb2N1bWVudGF0aW9uID0gbnVsbDtcbiAgfVxuXG4gIF9nZXRDdXJyZW50UmVzb3VyY2VUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLl9jdXJyZW50UmVzb3VyY2UgPyB0aGlzLl9maW5kUmVzb3VyY2VCeUlkKHRoaXMuX2N1cnJlbnRSZXNvdXJjZS50eXBlKSA6IG51bGw7XG4gIH1cblxuICBfb25GZXRjaERvY3VtZW50YXRpb24oKSB7XG4gICAgZGlzcGF0Y2hDdXN0b21FdmVudCh0aGlzLCAnZmV0Y2gtZG9jdW1lbnRhdGlvbicsIHsgdGFyZ2V0OiB0aGlzLCByZXNvdXJjZVR5cGU6IHRoaXMuX2dldEN1cnJlbnRSZXNvdXJjZVR5cGUoKSB9KTtcbiAgfVxuXG4gIGdldCBkaXJ0eSgpIHtcbiAgICBjb25zdCBmb3JtID0gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2d2LXNjaGVtYS1mb3JtJyk7XG4gICAgcmV0dXJuIGZvcm0gJiYgZm9ybS5kaXJ0eTtcbiAgfVxuXG4gIGNvbmZpcm0oKSB7XG4gICAgY29uc3QgZm9ybSA9IHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdndi1zY2hlbWEtZm9ybScpO1xuICAgIGlmIChmb3JtKSB7XG4gICAgICByZXR1cm4gZm9ybS5jb25maXJtKCkudGhlbigoKSA9PiB0aGlzLl9vbkNhbmNlbFJlc291cmNlRm9ybSgpKTtcbiAgICB9XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICB9XG5cbiAgX29uQ2hhbmdlUmVzb3VyY2VTdGF0ZShpdGVtLCBldmVudCkge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5yZXNvdXJjZXMuZmluZCgocikgPT4gci5faWQgPT09IGl0ZW0uX2lkKTtcbiAgICB0aGlzLnJlc291cmNlc1tpbmRleF0gPSB7IC4uLnRoaXMucmVzb3VyY2VzW2luZGV4XSwgZW5hYmxlZDogaXRlbS5lbmFibGVkIH07XG4gICAgZGlzcGF0Y2hDdXN0b21FdmVudCh0aGlzLCAnY2hhbmdlJywgeyByZXNvdXJjZXM6IHRoaXMucmVzb3VyY2VzIH0pO1xuICB9XG5cbiAgX3JlbmRlckZvcm0oKSB7XG4gICAgY29uc3QgdmFsdWVzID0geyAuLi50aGlzLl9jdXJyZW50UmVzb3VyY2UudmFsdWVzLCAuLi50aGlzLl9jdXJyZW50UmVzb3VyY2UuX3ZhbHVlcyB9O1xuICAgIHJldHVybiBodG1sYDxndi1zY2hlbWEtZm9ybVxuICAgICAgc2Nyb2xsYWJsZVxuICAgICAgLnNjaGVtYT1cIiR7dGhpcy5fY3VycmVudFJlc291cmNlLnNjaGVtYX1cIlxuICAgICAgLnZhbHVlcz1cIiR7dmFsdWVzfVwiXG4gICAgICBzdWJtaXRMYWJlbD1cIiR7dGhpcy5fY3VycmVudFJlc291cmNlLnN1Ym1pdExhYmVsfVwiXG4gICAgICBoYXMtaGVhZGVyXG4gICAgICAuaWNvbj1cIiR7dGhpcy5fY3VycmVudFJlc291cmNlLmljb259XCJcbiAgICAgIHZhbGlkYXRlLW9uLXJlbmRlclxuICAgICAgLmRpcnR5PVwiJHt0aGlzLl9jdXJyZW50UmVzb3VyY2UuZGlydHkgfHwgdGhpcy5fY3VycmVudFJlc291cmNlLl92YWx1ZXMgIT0gbnVsbH1cIlxuICAgICAgP3JlYWRvbmx5PVwiJHt0aGlzLnJlYWRvbmx5fVwiXG4gICAgICBAZ3Ytc2NoZW1hLWZvcm06Y2hhbmdlPVwiJHt0aGlzLl9vbkNoYW5nZVJlc291cmNlRm9ybX1cIlxuICAgICAgQGd2LXNjaGVtYS1mb3JtOnJlc2V0PVwiJHt0aGlzLl9vblJlc2V0UmVzb3VyY2VGb3JtfVwiXG4gICAgICBAZ3Ytc2NoZW1hLWZvcm06c3VibWl0PVwiJHt0aGlzLl9vblN1Ym1pdFJlc291cmNlRm9ybX1cIlxuICAgID5cbiAgICAgIDxkaXYgc2xvdD1cInRpdGxlXCIgY2xhc3M9XCJmb3JtLXRpdGxlXCI+JHt0aGlzLl9jdXJyZW50UmVzb3VyY2UudGl0bGV9PC9kaXY+XG4gICAgICA8Z3YtYnV0dG9uXG4gICAgICAgIHNsb3Q9XCJoZWFkZXItbGVmdFwiXG4gICAgICAgIGljb249XCJnZW5lcmFsOmNsb3NlXCJcbiAgICAgICAgb3V0bGluZWRcbiAgICAgICAgc21hbGxcbiAgICAgICAgQGd2LWJ1dHRvbjpjbGljaz1cIiR7dGhpcy5fb25DYW5jZWxSZXNvdXJjZUZvcm19XCJcbiAgICAgICAgdGl0bGU9XCJDbG9zZSAoZXNjKVwiXG4gICAgICA+PC9ndi1idXR0b24+XG4gICAgICA8Z3YtYnV0dG9uXG4gICAgICAgIHNsb3Q9XCJoZWFkZXItbGVmdFwiXG4gICAgICAgIGljb249XCJob21lOmJvb2tcIlxuICAgICAgICA/ZGlzYWJsZWQ9XCIke3RoaXMuZG9jdW1lbnRhdGlvbiAhPSBudWxsfVwiXG4gICAgICAgIG91dGxpbmVkXG4gICAgICAgIHNtYWxsXG4gICAgICAgIEBndi1idXR0b246Y2xpY2s9XCIke3RoaXMuX29uRmV0Y2hEb2N1bWVudGF0aW9ufVwiXG4gICAgICAgIHRpdGxlPVwiT3BlbiBkb2N1bWVudGF0aW9uXCJcbiAgICAgID48L2d2LWJ1dHRvbj5cbiAgICA8L2d2LXNjaGVtYS1mb3JtPmA7XG4gIH1cblxuICBfcmVuZGVyRG9jKCkge1xuICAgIHJldHVybiBodG1sYDxndi1kb2N1bWVudGF0aW9uXG4gICAgICAudGV4dD1cIiR7dGhpcy5kb2N1bWVudGF0aW9uLmNvbnRlbnR9XCJcbiAgICAgIC5pbWFnZT1cIiR7dGhpcy5kb2N1bWVudGF0aW9uLmltYWdlfVwiXG4gICAgICBAZ3YtZG9jdW1lbnRhdGlvbjpjbG9zZT1cIiR7dGhpcy5fb25DbG9zZURvY3VtZW50YXRpb259XCJcbiAgICA+PC9ndi1kb2N1bWVudGF0aW9uPmA7XG4gIH1cblxuICBfcmVuZGVyQm90dG9tKCkge1xuICAgIGlmICh0aGlzLmRvY3VtZW50YXRpb24gJiYgdGhpcy5fY3VycmVudFJlc291cmNlKSB7XG4gICAgICByZXR1cm4gaHRtbGAgPGd2LXJlc2l6YWJsZS12aWV3cyBkaXJlY3Rpb249XCJob3Jpem9udGFsXCIgbm8tb3ZlcmZsb3c+XG4gICAgICAgIDxkaXYgc2xvdD1cInRvcFwiPiR7dGhpcy5fcmVuZGVyRm9ybSgpfTwvZGl2PlxuICAgICAgICA8ZGl2IHNsb3Q9XCJib3R0b21cIj4ke3RoaXMuX3JlbmRlckRvYygpfTwvZGl2PlxuICAgICAgPC9ndi1yZXNpemFibGUtdmlld3M+YDtcbiAgICB9IGVsc2UgaWYgKHRoaXMuX2N1cnJlbnRSZXNvdXJjZSkge1xuICAgICAgcmV0dXJuIHRoaXMuX3JlbmRlckZvcm0oKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuZG9jdW1lbnRhdGlvbikge1xuICAgICAgcmV0dXJuIHRoaXMuX3JlbmRlckRvYygpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5yZWFkb25seSAhPT0gdHJ1ZSkge1xuICAgICAgY29uc3QgcmVzb3VyY2VPcHRzID0gdGhpcy50eXBlcy5tYXAoKHJlc291cmNlKSA9PiB7XG4gICAgICAgIHJldHVybiB7IGlkOiByZXNvdXJjZS5pZCwgdGl0bGU6IHJlc291cmNlLm5hbWUsIGRlc2NyaXB0aW9uOiByZXNvdXJjZS5kZXNjcmlwdGlvbiwgaW1hZ2U6IHJlc291cmNlLmljb24gfTtcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gaHRtbGA8ZGl2IGNsYXNzPVwicmVzb3VyY2VzLWJvdHRvbS1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxndi1vcHRpb24gY2xhc3M9XCJyZXNvdXJjZV9fb3B0aW9uXCIgLm9wdGlvbnM9XCIke3Jlc291cmNlT3B0c31cIiBAZ3Ytb3B0aW9uOnNlbGVjdD1cIiR7dGhpcy5fb25DcmVhdGVSZXNvdXJjZX1cIj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PmA7XG4gICAgfSBlbHNlIGlmICh0aGlzLnJlYWRvbmx5ICYmIHRoaXMucmVzb3VyY2VzLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiBodG1sYDxkaXYgY2xhc3M9XCJyZXNvdXJjZXMtYm90dG9tLWNvbnRhaW5lciBlbXB0eVwiPllvdSBjYW4gc2VlIHRoZSByZXNvdXJjZSBjb25maWd1cmF0aW9uIGJ5IGNsaWNraW5nIG9uIGl0PC9kaXY+YDtcbiAgICB9XG4gIH1cblxuICBfb25TZWFyY2hSZXNvdXJjZSh7IGRldGFpbCB9KSB7XG4gICAgdGhpcy5fZmlsdGVyID0gZGV0YWlsO1xuICB9XG5cbiAgX29uQ2xlYXJSZXNvdXJjZSgpIHtcbiAgICB0aGlzLl9maWx0ZXIgPSBudWxsO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICBzZWxlY3RhYmxlOiB0cnVlLFxuICAgICAgZGF0YTogW1xuICAgICAgICB7IGZpZWxkOiAnbmFtZScsIGxhYmVsOiAnTmFtZScgfSxcbiAgICAgICAge1xuICAgICAgICAgIGZpZWxkOiAndHlwZScsXG4gICAgICAgICAgd2lkdGg6ICc1MHB4JyxcbiAgICAgICAgICB0eXBlOiAnZ3YtaW1hZ2UnLFxuICAgICAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICAgIHNyYzogKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgcmVzb3VyY2VUeXBlID0gdGhpcy5fZmluZFJlc291cmNlQnlJZChpdGVtLnR5cGUpO1xuICAgICAgICAgICAgICByZXR1cm4gcmVzb3VyY2VUeXBlID8gcmVzb3VyY2VUeXBlLmljb24gOiBudWxsO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHN0eWxlOiAnd2lkdGg6NDBweDtoZWlnaHQ6NDBweDsnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHsgZmllbGQ6ICd0eXBlJywgbGFiZWw6ICdUeXBlJyB9LFxuICAgICAgICB7XG4gICAgICAgICAgZmllbGQ6ICdlbmFibGVkJyxcbiAgICAgICAgICB0eXBlOiAnZ3Ytc3dpdGNoJyxcbiAgICAgICAgICB0aXRsZTogKGl0ZW0pID0+IChpdGVtLmVuYWJsZWQgPyAnQ2xpY2sgdG8gZGlzYWJsZScgOiAnQ2xpY2sgdG8gZW5hYmxlJyksXG4gICAgICAgICAgd2lkdGg6ICc1MHB4JyxcbiAgICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgICByZWFkb25seTogdGhpcy5yZWFkb25seSxcbiAgICAgICAgICAgICdvbmd2LXN3aXRjaDppbnB1dCc6IChpdGVtLCBldmVudCkgPT4gdGhpcy5fb25DaGFuZ2VSZXNvdXJjZVN0YXRlKGl0ZW0sIGV2ZW50KSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9O1xuXG4gICAgaWYgKHRoaXMucmVhZG9ubHkgIT09IHRydWUpIHtcbiAgICAgIG9wdGlvbnMuZGF0YS5wdXNoKHtcbiAgICAgICAgdHlwZTogJ2d2LWJ1dHRvbicsXG4gICAgICAgIHdpZHRoOiAnNTBweCcsXG4gICAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICBvbkNsaWNrOiAoaXRlbSkgPT4gdGhpcy5fcmVtb3ZlUmVzb3VyY2UoaXRlbSksXG4gICAgICAgICAgdGl0bGU6ICdyZW1vdmUnLFxuICAgICAgICAgIGRhbmdlcjogdHJ1ZSxcbiAgICAgICAgICBvdXRsaW5lZDogdHJ1ZSxcbiAgICAgICAgICBpY29uOiAnaG9tZTp0cmFzaCcsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdCBmaWx0ZXJlZFJlc291cmNlcyA9XG4gICAgICB0aGlzLl9maWx0ZXIgIT0gbnVsbFxuICAgICAgICA/IHRoaXMucmVzb3VyY2VzLmZpbHRlcigocmVzb3VyY2UpID0+IHtcbiAgICAgICAgICAgIHJldHVybiAocmVzb3VyY2UubmFtZS50b0xvd2VyQ2FzZSgpICsgcmVzb3VyY2UudHlwZS50b0xvd2VyQ2FzZSgpKS5pbmNsdWRlcyh0aGlzLl9maWx0ZXIpO1xuICAgICAgICAgIH0pXG4gICAgICAgIDogdGhpcy5yZXNvdXJjZXM7XG5cbiAgICByZXR1cm4gaHRtbGA8ZGl2IGNsYXNzPVwicmVzb3VyY2VzXCI+XG4gICAgICA8Z3YtcmVzaXphYmxlLXZpZXdzIG5vLW92ZXJmbG93PlxuICAgICAgICA8ZGl2IHNsb3Q9XCJ0b3BcIiBjbGFzcz1cImJveFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXJcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlXCI+TWFuYWdlIGdsb2JhbCByZXNvdXJjZXMgPHNwYW4+KCR7dGhpcy5yZXNvdXJjZXMubGVuZ3RofSk8L3NwYW4+PC9kaXY+XG4gICAgICAgICAgICAgIDxndi1pbnB1dFxuICAgICAgICAgICAgICAgIGlkPVwic2VhcmNoLXJlc291cmNlXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInNlYXJjaC1pbnB1dFwiXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJGaWx0ZXIgcmVzb3VyY2VzIChTaGlmdCArIEN0cmwgKyBTcGFjZSlcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJzZWFyY2hcIlxuICAgICAgICAgICAgICAgIHNtYWxsXG4gICAgICAgICAgICAgICAgQGd2LWlucHV0OmlucHV0PVwiJHt0aGlzLl9vblNlYXJjaFJlc291cmNlfVwiXG4gICAgICAgICAgICAgICAgQGd2LWlucHV0OmNsZWFyPVwiJHt0aGlzLl9vbkNsZWFyUmVzb3VyY2V9XCJcbiAgICAgICAgICAgICAgPjwvZ3YtaW5wdXQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50XCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICA8Z3YtdGFibGVcbiAgICAgICAgICAgICAgICAgIC5vcHRpb25zPVwiJHtvcHRpb25zfVwiXG4gICAgICAgICAgICAgICAgICAuaXRlbXM9XCIke2ZpbHRlcmVkUmVzb3VyY2VzfVwiXG4gICAgICAgICAgICAgICAgICBlbXB0eW1lc3NhZ2U9XCIke3RoaXMuX2VtcHR5bWVzc2FnZX1cIlxuICAgICAgICAgICAgICAgICAgQGd2LXRhYmxlOnNlbGVjdD1cIiR7dGhpcy5fb25TZWxlY3RSZXNvdXJjZX1cIlxuICAgICAgICAgICAgICAgICAgb3JkZXI9XCJuYW1lXCJcbiAgICAgICAgICAgICAgICAgIHJvd2hlaWdodD1cIjUwcHhcIlxuICAgICAgICAgICAgICAgID48L2d2LXRhYmxlPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBzbG90PVwiYm90dG9tXCI+JHt0aGlzLl9yZW5kZXJCb3R0b20oKX08L2Rpdj5cbiAgICAgIDwvZ3YtcmVzaXphYmxlLXZpZXdzPlxuICAgIDwvZGl2PmA7XG4gIH1cblxuICBzdGF0aWMgZ2V0IHN0eWxlcygpIHtcbiAgICByZXR1cm4gW1xuICAgICAgZW1wdHksXG4gICAgICAvLyBsYW5ndWFnZT1DU1NcbiAgICAgIGNzc2BcbiAgICAgICAgOmhvc3Qge1xuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgLnJlc291cmNlcyB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBndi1yZXNpemFibGUtdmlld3Mge1xuICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIGd2LXRhYmxlIHtcbiAgICAgICAgICAtLWd2LXRhYmxlLXJvd3MtLW92OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLmhlYWRlciB7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkOWQ5ZDk7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBtaW4taGVpZ2h0OiA0NXB4O1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICAgIHBhZGRpbmc6IDAgMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmhlYWRlciAudGl0bGUge1xuICAgICAgICAgIGNvbG9yOiAjMjg0NDRmO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgLmhlYWRlciAudGl0bGUgc3BhbiB7XG4gICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4gICAgICAgICAgb3BhY2l0eTogMC43O1xuICAgICAgICB9XG5cbiAgICAgICAgLmJveCB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAuY29udGFpbmVyIHtcbiAgICAgICAgICBmbGV4LWdyb3c6IDE7XG5cbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgICAvKiBmb3IgRmlyZWZveCAqL1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNvbnRlbnQge1xuICAgICAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgICAgIGZsZXgtZ3JvdzogMTtcblxuICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgICAgLyogZm9yIEZpcmVmb3ggKi9cbiAgICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvcm0tdGl0bGUge1xuICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5yZXNvdXJjZXMtYm90dG9tLWNvbnRhaW5lciB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIC50YWJsZS1jb250YWluZXIge1xuICAgICAgICAgIG1heC13aWR0aDogMTIwMHB4O1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zZWFyY2gtaW5wdXQge1xuICAgICAgICAgIHdpZHRoOiAzMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5yZXNvdXJjZV9fb3B0aW9uIHtcbiAgICAgICAgICAtLWd2LW9wdGlvbi1idXR0b24tLW1hdzogMTc1cHg7XG4gICAgICAgIH1cbiAgICAgIGAsXG4gICAgXTtcbiAgfVxufVxuXG53aW5kb3cuY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdndi1yZXNvdXJjZXMnLCBHdlJlc291cmNlcyk7XG4iXX0=
428
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL29yZ2FuaXNtcy9ndi1yZXNvdXJjZXMuanMiXSwibmFtZXMiOlsiY3NzIiwiaHRtbCIsIkxpdEVsZW1lbnQiLCJkaXNwYXRjaEN1c3RvbUV2ZW50IiwidXVpZCIsIktleWJvYXJkRWxlbWVudCIsIktFWVMiLCJlbXB0eSIsIkd2UmVzb3VyY2VzIiwicHJvcGVydGllcyIsInJlc291cmNlcyIsInR5cGUiLCJBcnJheSIsIl9yZXNvdXJjZXMiLCJhdHRyaWJ1dGUiLCJ0eXBlcyIsImRvY3VtZW50YXRpb24iLCJPYmplY3QiLCJfY3VycmVudFJlc291cmNlIiwiX2N1cnJlbnRSZXNvdXJjZUxvYWRpbmciLCJCb29sZWFuIiwiX2ZpbHRlciIsIlN0cmluZyIsInJlYWRvbmx5IiwicmVmbGVjdCIsImNvbnN0cnVjdG9yIiwiX2VtcHR5bWVzc2FnZSIsIm9uS2V5Ym9hcmQiLCJpc1ByZXNzZWQiLCJFc2MiLCJfb25DYW5jZWxSZXNvdXJjZUZvcm0iLCJTaGlmdCIsIkN0cmwiLCJTcGFjZSIsInNlYXJjaCIsInNoYWRvd1Jvb3QiLCJxdWVyeVNlbGVjdG9yIiwiZm9jdXMiLCJmaXJzdFVwZGF0ZWQiLCJ2aWV3cyIsInVwZGF0ZUNvbXBsZXRlIiwidGhlbiIsIl9tYXhpbWl6ZVRvcFZpZXciLCJfZ2VuZXJhdGVJZCIsImxpc3QiLCJtYXAiLCJlIiwiX2lkIiwiX2dldFJlc2l6YWJsZVZpZXdzIiwicmVzaXplIiwiX21heGltaXplQm90dG9tVmlldyIsIm1heGltaXplQm90dG9tIiwiX3NwbGl0TWFpblZpZXdzIiwic3BsaXQiLCJfcmVtb3ZlUmVzb3VyY2UiLCJpdGVtIiwiZmlsdGVyIiwicmVzb3VyY2UiLCJfYnVpbGRSZXNvdXJjZVNjaGVtYSIsInJlc291cmNlVHlwZSIsImRlZmF1bHRTY2hlbWEiLCJuYW1lIiwidGl0bGUiLCJyZXF1aXJlZCIsInNjaGVtYSIsIkpTT04iLCJwYXJzZSIsIl9vbkNyZWF0ZVJlc291cmNlIiwiZGV0YWlsIiwiZGVmYXVsdFJlc291cmNlVHlwZSIsImZpbmQiLCJpZCIsImljb24iLCJ2YWx1ZXMiLCJzdWJtaXRMYWJlbCIsImRpcnR5IiwiX29uRmV0Y2hEb2N1bWVudGF0aW9uIiwic2V0VGltZW91dCIsIl9vblN1Ym1pdFJlc291cmNlRm9ybSIsIl92YWx1ZXMiLCJjb25maWd1cmF0aW9uIiwiaW5kZXgiLCJmaW5kSW5kZXgiLCJyIiwiZW5hYmxlZCIsInB1c2giLCJfb25DaGFuZ2VSZXNvdXJjZUZvcm0iLCJfb25SZXNldFJlc291cmNlRm9ybSIsIl9maW5kUmVzb3VyY2VCeUlkIiwiX29uU2VsZWN0UmVzb3VyY2UiLCJpdGVtcyIsImxlbmd0aCIsIl9vbkVkaXRSZXNvdXJjZSIsIl9vbkNsb3NlRG9jdW1lbnRhdGlvbiIsIl9nZXRDdXJyZW50UmVzb3VyY2VUeXBlIiwidGFyZ2V0IiwiZm9ybSIsImNvbmZpcm0iLCJQcm9taXNlIiwicmVzb2x2ZSIsIl9vbkNoYW5nZVJlc291cmNlU3RhdGUiLCJldmVudCIsIl9yZW5kZXJGb3JtIiwiX3JlbmRlckRvYyIsImNvbnRlbnQiLCJpbWFnZSIsIl9yZW5kZXJCb3R0b20iLCJyZXNvdXJjZU9wdHMiLCJkZXNjcmlwdGlvbiIsIl9vblNlYXJjaFJlc291cmNlIiwiX29uQ2xlYXJSZXNvdXJjZSIsInJlbmRlciIsIm9wdGlvbnMiLCJzZWxlY3RhYmxlIiwiZGF0YSIsImZpZWxkIiwibGFiZWwiLCJ3aWR0aCIsImF0dHJpYnV0ZXMiLCJzcmMiLCJzdHlsZSIsIm9uQ2xpY2siLCJkYW5nZXIiLCJvdXRsaW5lZCIsImZpbHRlcmVkUmVzb3VyY2VzIiwidG9Mb3dlckNhc2UiLCJpbmNsdWRlcyIsInN0eWxlcyIsIndpbmRvdyIsImN1c3RvbUVsZW1lbnRzIiwiZGVmaW5lIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FB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QzlDLElBQVQsQ0FBY2tILFdBQWQsRUFBL0IsRUFBNERDLFFBQTVELENBQXFFLEtBQUt6RyxPQUExRSxDQUFQO0FBQ0QsS0FGRCxDQURKLEdBSUksS0FBS1gsU0FMWDtBQU9BLFdBQU9ULElBQUksd0xBS21ELEtBQUtTLFNBQUwsQ0FBZWlGLE1BTGxFLGlLQVlvQixLQUFLa0IsaUJBWnpCLHNCQWFvQixLQUFLQyxnQkFiekIsZ0dBbUJlRSxPQW5CZixhQW9CYVksaUJBcEJiLG1CQXFCbUIsS0FBS2xHLGFBckJ4Qix1QkFzQnVCLEtBQUsrRCxpQkF0QjVCLDhGQThCYyxLQUFLaUIsYUFBTCxFQTlCZCxxQ0FBWDtBQWlDRDs7QUFFZ0IsYUFBTnFCLE1BQU0sR0FBRztBQUNsQixXQUFPLENBQ0x4SCxLQURLLEVBRUw7QUFDQVAsSUFBQUEsR0FBRyxrakNBSEUsQ0FBUDtBQWlIRDs7QUFyZjBEO0FBd2Y3RGdJLE1BQU0sQ0FBQ0MsY0FBUCxDQUFzQkMsTUFBdEIsQ0FBNkIsY0FBN0IsRUFBNkMxSCxXQUE3QyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBjc3MsIGh0bWwsIExpdEVsZW1lbnQgfSBmcm9tICdsaXQnO1xuXG5pbXBvcnQgJy4vZ3Ytc2NoZW1hLWZvcm0nO1xuaW1wb3J0ICcuL2d2LXJlc2l6YWJsZS12aWV3cyc7XG5pbXBvcnQgJy4vZ3YtZG9jdW1lbnRhdGlvbic7XG5pbXBvcnQgJy4uL21vbGVjdWxlcy9ndi10YWJsZSc7XG5pbXBvcnQgJy4uL2F0b21zL2d2LWJ1dHRvbic7XG5pbXBvcnQgJy4uL21vbGVjdWxlcy9ndi1vcHRpb24nO1xuaW1wb3J0ICcuLi9hdG9tcy9ndi1zd2l0Y2gnO1xuaW1wb3J0ICcuLi9hdG9tcy9ndi1pY29uJztcbmltcG9ydCB7IGRpc3BhdGNoQ3VzdG9tRXZlbnQgfSBmcm9tICcuLi9saWIvZXZlbnRzJztcbmltcG9ydCB7IHV1aWQgfSBmcm9tICcuLi9saWIvdXRpbHMnO1xuaW1wb3J0IHsgS2V5Ym9hcmRFbGVtZW50LCBLRVlTIH0gZnJvbSAnLi4vbWl4aW5zL2tleWJvYXJkLWVsZW1lbnQnO1xuaW1wb3J0IHsgZW1wdHkgfSBmcm9tICcuLi9zdHlsZXMvZW1wdHknO1xuXG5leHBvcnQgY2xhc3MgR3ZSZXNvdXJjZXMgZXh0ZW5kcyBLZXlib2FyZEVsZW1lbnQoTGl0RWxlbWVudCkge1xuICBzdGF0aWMgZ2V0IHByb3BlcnRpZXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHJlc291cmNlczogeyB0eXBlOiBBcnJheSB9LFxuICAgICAgX3Jlc291cmNlczogeyB0eXBlOiBBcnJheSwgYXR0cmlidXRlOiBmYWxzZSB9LFxuICAgICAgdHlwZXM6IHsgdHlwZTogQXJyYXkgfSxcbiAgICAgIGRvY3VtZW50YXRpb246IHsgdHlwZTogT2JqZWN0IH0sXG4gICAgICBfY3VycmVudFJlc291cmNlOiB7IHR5cGU6IE9iamVjdCwgYXR0cmlidXRlOiBmYWxzZSB9LFxuICAgICAgX2N1cnJlbnRSZXNvdXJjZUxvYWRpbmc6IHsgdHlwZTogQm9vbGVhbiwgYXR0cmlidXRlOiBmYWxzZSB9LFxuICAgICAgX2ZpbHRlcjogeyB0eXBlOiBTdHJpbmcgfSxcbiAgICAgIHJlYWRvbmx5OiB7IHR5cGU6IEJvb2xlYW4sIHJlZmxlY3Q6IHRydWUgfSxcbiAgICB9O1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnJlc291cmNlcyA9IFtdO1xuICAgIHRoaXMudHlwZXMgPSBbXTtcbiAgICB0aGlzLl9jdXJyZW50UmVzb3VyY2UgPSBudWxsO1xuICAgIHRoaXMuX2VtcHR5bWVzc2FnZSA9ICdObyByZXNvdXJjZSc7XG4gIH1cblxuICBvbktleWJvYXJkKCkge1xuICAgIGlmICh0aGlzLmlzUHJlc3NlZChLRVlTLkVzYykpIHtcbiAgICAgIHRoaXMuX29uQ2FuY2VsUmVzb3VyY2VGb3JtKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmlzUHJlc3NlZChLRVlTLlNoaWZ0LCBLRVlTLkN0cmwsIEtFWVMuU3BhY2UpKSB7XG4gICAgICBjb25zdCBzZWFyY2ggPSB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignI3NlYXJjaC1yZXNvdXJjZScpO1xuICAgICAgaWYgKHNlYXJjaCkge1xuICAgICAgICBzZWFyY2guZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmaXJzdFVwZGF0ZWQoKSB7XG4gICAgY29uc3Qgdmlld3MgPSB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignZ3YtcmVzaXphYmxlLXZpZXdzJyk7XG4gICAgaWYgKHZpZXdzICE9IG51bGwpIHtcbiAgICAgIHZpZXdzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCkgPT4ge1xuICAgICAgICB0aGlzLl9tYXhpbWl6ZVRvcFZpZXcoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHNldCByZXNvdXJjZXMocmVzb3VyY2VzKSB7XG4gICAgdGhpcy5fcmVzb3VyY2VzID0gdGhpcy5fZ2VuZXJhdGVJZChyZXNvdXJjZXMpO1xuICB9XG5cbiAgZ2V0IHJlc291cmNlcygpIHtcbiAgICByZXR1cm4gdGhpcy5fcmVzb3VyY2VzO1xuICB9XG5cbiAgX2dlbmVyYXRlSWQobGlzdCkge1xuICAgIGlmIChsaXN0KSB7XG4gICAgICByZXR1cm4gbGlzdC5tYXAoKGUpID0+IHtcbiAgICAgICAgaWYgKGUuX2lkID09IG51bGwpIHtcbiAgICAgICAgICBlLl9pZCA9IHV1aWQoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gbGlzdDtcbiAgfVxuXG4gIF9nZXRSZXNpemFibGVWaWV3cygpIHtcbiAgICByZXR1cm4gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2d2LXJlc2l6YWJsZS12aWV3cycpO1xuICB9XG5cbiAgX21heGltaXplVG9wVmlldygpIHtcbiAgICB0aGlzLl9nZXRSZXNpemFibGVWaWV3cygpLnJlc2l6ZSg2MCwgNDApO1xuICB9XG5cbiAgX21heGltaXplQm90dG9tVmlldygpIHtcbiAgICB0aGlzLl9nZXRSZXNpemFibGVWaWV3cygpLm1heGltaXplQm90dG9tKCk7XG4gIH1cblxuICBfc3BsaXRNYWluVmlld3MoKSB7XG4gICAgdGhpcy5fZ2V0UmVzaXphYmxlVmlld3MoKS5zcGxpdCgpO1xuICB9XG5cbiAgX29uQ2FuY2VsUmVzb3VyY2VGb3JtKCkge1xuICAgIHRoaXMuX2N1cnJlbnRSZXNvdXJjZSA9IG51bGw7XG4gICAgdGhpcy5kb2N1bWVudGF0aW9uID0gbnVsbDtcbiAgICB0aGlzLl9tYXhpbWl6ZVRvcFZpZXcoKTtcbiAgfVxuXG4gIF9yZW1vdmVSZXNvdXJjZShpdGVtKSB7XG4gICAgdGhpcy5yZXNvdXJjZXMgPSB0aGlzLnJlc291cmNlcy5maWx0ZXIoKHJlc291cmNlKSA9PiByZXNvdXJjZS5faWQgIT09IGl0ZW0uX2lkKTtcbiAgICB0aGlzLl9vbkNhbmNlbFJlc291cmNlRm9ybSgpO1xuICAgIGRpc3BhdGNoQ3VzdG9tRXZlbnQodGhpcywgJ2NoYW5nZScsIHsgcmVzb3VyY2VzOiB0aGlzLnJlc291cmNlcyB9KTtcbiAgfVxuXG4gIF9idWlsZFJlc291cmNlU2NoZW1hKHJlc291cmNlVHlwZSkge1xuICAgIGNvbnN0IGRlZmF1bHRTY2hlbWEgPSB7XG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIG5hbWU6IHtcbiAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICB0aXRsZTogJ1Jlc291cmNlIG5hbWUnLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHJlcXVpcmVkOiBbJ25hbWUnXSxcbiAgICB9O1xuXG4gICAgY29uc3Qgc2NoZW1hID0gdHlwZW9mIHJlc291cmNlVHlwZS5zY2hlbWEgPT09ICdzdHJpbmcnID8gSlNPTi5wYXJzZShyZXNvdXJjZVR5cGUuc2NoZW1hKSA6IHJlc291cmNlVHlwZS5zY2hlbWE7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcHJvcGVydGllczogeyAuLi5kZWZhdWx0U2NoZW1hLnByb3BlcnRpZXMsIC4uLnNjaGVtYS5wcm9wZXJ0aWVzIH0sXG4gICAgICByZXF1aXJlZDogWy4uLmRlZmF1bHRTY2hlbWEucmVxdWlyZWQsIC4uLnNjaGVtYS5yZXF1aXJlZF0sXG4gICAgfTtcbiAgfVxuXG4gIF9vbkNyZWF0ZVJlc291cmNlKHsgZGV0YWlsIH0pIHtcbiAgICB0aGlzLl9jdXJyZW50UmVzb3VyY2VMb2FkaW5nID0gdHJ1ZTtcbiAgICBjb25zdCBkZWZhdWx0UmVzb3VyY2VUeXBlID0gdGhpcy50eXBlcy5maW5kKCh0eXBlKSA9PiB0eXBlLmlkID09PSBkZXRhaWwuaWQpO1xuICAgIGNvbnN0IHNjaGVtYSA9IHRoaXMuX2J1aWxkUmVzb3VyY2VTY2hlbWEoZGVmYXVsdFJlc291cmNlVHlwZSk7XG4gICAgdGhpcy5fY3VycmVudFJlc291cmNlID0ge1xuICAgICAgdHlwZTogZGVmYXVsdFJlc291cmNlVHlwZS5pZCxcbiAgICAgIHRpdGxlOiAnQ3JlYXRlIHJlc291cmNlJyxcbiAgICAgIGljb246ICdjb2RlOnBsdXMnLFxuICAgICAgc2NoZW1hLFxuICAgICAgdmFsdWVzOiB7fSxcbiAgICAgIHN1Ym1pdExhYmVsOiAnQWRkJyxcbiAgICAgIGRpcnR5OiB0cnVlLFxuICAgIH07XG4gICAgdGhpcy5fbWF4aW1pemVCb3R0b21WaWV3KCk7XG4gICAgdGhpcy5fb25GZXRjaERvY3VtZW50YXRpb24oKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+ICh0aGlzLl9jdXJyZW50UmVzb3VyY2VMb2FkaW5nID0gZmFsc2UpLCA2MDApO1xuICB9XG5cbiAgX29uU3VibWl0UmVzb3VyY2VGb3JtKHsgZGV0YWlsIH0pIHtcbiAgICBkZWxldGUgdGhpcy5fY3VycmVudFJlc291cmNlLl92YWx1ZXM7XG4gICAgY29uc3QgeyB0eXBlIH0gPSB0aGlzLl9jdXJyZW50UmVzb3VyY2U7XG4gICAgY29uc3QgeyBfaWQsIG5hbWUsIC4uLmNvbmZpZ3VyYXRpb24gfSA9IGRldGFpbC52YWx1ZXM7XG5cbiAgICBjb25zdCByZXNvdXJjZSA9IHtcbiAgICAgIF9pZCxcbiAgICAgIHR5cGUsXG4gICAgICBuYW1lLFxuICAgICAgY29uZmlndXJhdGlvbixcbiAgICB9O1xuXG4gICAgaWYgKGRldGFpbC52YWx1ZXMuX2lkICE9IG51bGwpIHtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5yZXNvdXJjZXMuZmluZEluZGV4KChyKSA9PiByLl9pZCA9PT0gcmVzb3VyY2UuX2lkKTtcbiAgICAgIHRoaXMucmVzb3VyY2VzW2luZGV4XSA9IHsgLi4udGhpcy5yZXNvdXJjZXNbaW5kZXhdLCAuLi5yZXNvdXJjZSB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5yZXNvdXJjZXMgPT0gbnVsbCkge1xuICAgICAgICB0aGlzLnJlc291cmNlcyA9IFtdO1xuICAgICAgfVxuICAgICAgcmVzb3VyY2UuX2lkID0gdXVpZCgpO1xuICAgICAgcmVzb3VyY2UuZW5hYmxlZCA9IHRydWU7XG4gICAgICB0aGlzLnJlc291cmNlcy5wdXNoKHJlc291cmNlKTtcbiAgICB9XG4gICAgdGhpcy5fb25DYW5jZWxSZXNvdXJjZUZvcm0oKTtcbiAgICBkaXNwYXRjaEN1c3RvbUV2ZW50KHRoaXMsICdjaGFuZ2UnLCB7IHJlc291cmNlczogdGhpcy5yZXNvdXJjZXMgfSk7XG4gIH1cblxuICBfb25DaGFuZ2VSZXNvdXJjZUZvcm0oeyBkZXRhaWwgfSkge1xuICAgIHRoaXMuX2N1cnJlbnRSZXNvdXJjZS5fdmFsdWVzID0gZGV0YWlsLnZhbHVlcztcbiAgfVxuXG4gIF9vblJlc2V0UmVzb3VyY2VGb3JtKCkge1xuICAgIGRlbGV0ZSB0aGlzLl9jdXJyZW50UmVzb3VyY2UuX3ZhbHVlcztcbiAgfVxuXG4gIF9maW5kUmVzb3VyY2VCeUlkKGlkKSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZXMuZmluZCgocmVzb3VyY2UpID0+IHJlc291cmNlLmlkID09PSBpZCk7XG4gIH1cblxuICAvLyBGb3IgcmVhZG9ubHkgbW9kZVxuICBfb25TZWxlY3RSZXNvdXJjZSh7IGRldGFpbDogeyBpdGVtcyB9IH0pIHtcbiAgICBpZiAoaXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5fb25FZGl0UmVzb3VyY2UoaXRlbXNbMF0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9vbkNhbmNlbFJlc291cmNlRm9ybSgpO1xuICAgIH1cbiAgfVxuXG4gIF9vbkVkaXRSZXNvdXJjZShyZXNvdXJjZSkge1xuICAgIGNvbnN0IHZhbHVlcyA9IHsgLi4ucmVzb3VyY2UsIC4uLnJlc291cmNlLmNvbmZpZ3VyYXRpb24gfTtcbiAgICBkZWxldGUgdmFsdWVzLmNvbmZpZ3VyYXRpb247XG4gICAgY29uc3QgcmVzb3VyY2VUeXBlID0gdGhpcy5fZmluZFJlc291cmNlQnlJZChyZXNvdXJjZS50eXBlKTtcbiAgICB0aGlzLl9jdXJyZW50UmVzb3VyY2UgPSB7XG4gICAgICBfaWQ6IHJlc291cmNlLl9pZCxcbiAgICAgIHRpdGxlOiAnUmVzb3VyY2UgY29uZmlndXJhdGlvbicsXG4gICAgICB0eXBlOiByZXNvdXJjZS50eXBlLFxuICAgICAgaWNvbjogJ2Rlc2lnbjplZGl0JyxcbiAgICAgIHNjaGVtYTogdGhpcy5fYnVpbGRSZXNvdXJjZVNjaGVtYShyZXNvdXJjZVR5cGUpLFxuICAgICAgdmFsdWVzLFxuICAgICAgc3VibWl0TGFiZWw6ICdVcGRhdGUnLFxuICAgIH07XG4gICAgdGhpcy5fc3BsaXRNYWluVmlld3MoKTtcbiAgICB0aGlzLl9vbkZldGNoRG9jdW1lbnRhdGlvbigpO1xuICB9XG5cbiAgX29uQ2xvc2VEb2N1bWVudGF0aW9uKCkge1xuICAgIHRoaXMuZG9jdW1lbnRhdGlvbiA9IG51bGw7XG4gIH1cblxuICBfZ2V0Q3VycmVudFJlc291cmNlVHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fY3VycmVudFJlc291cmNlID8gdGhpcy5fZmluZFJlc291cmNlQnlJZCh0aGlzLl9jdXJyZW50UmVzb3VyY2UudHlwZSkgOiBudWxsO1xuICB9XG5cbiAgX29uRmV0Y2hEb2N1bWVudGF0aW9uKCkge1xuICAgIGRpc3BhdGNoQ3VzdG9tRXZlbnQodGhpcywgJ2ZldGNoLWRvY3VtZW50YXRpb24nLCB7IHRhcmdldDogdGhpcywgcmVzb3VyY2VUeXBlOiB0aGlzLl9nZXRDdXJyZW50UmVzb3VyY2VUeXBlKCkgfSk7XG4gIH1cblxuICBnZXQgZGlydHkoKSB7XG4gICAgY29uc3QgZm9ybSA9IHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdndi1zY2hlbWEtZm9ybScpO1xuICAgIHJldHVybiBmb3JtICYmIGZvcm0uZGlydHk7XG4gIH1cblxuICBjb25maXJtKCkge1xuICAgIGNvbnN0IGZvcm0gPSB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignZ3Ytc2NoZW1hLWZvcm0nKTtcbiAgICBpZiAoZm9ybSkge1xuICAgICAgcmV0dXJuIGZvcm0uY29uZmlybSgpLnRoZW4oKCkgPT4gdGhpcy5fb25DYW5jZWxSZXNvdXJjZUZvcm0oKSk7XG4gICAgfVxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgfVxuXG4gIF9vbkNoYW5nZVJlc291cmNlU3RhdGUoaXRlbSwgZXZlbnQpIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMucmVzb3VyY2VzLmZpbmQoKHIpID0+IHIuX2lkID09PSBpdGVtLl9pZCk7XG4gICAgdGhpcy5yZXNvdXJjZXNbaW5kZXhdID0geyAuLi50aGlzLnJlc291cmNlc1tpbmRleF0sIGVuYWJsZWQ6IGl0ZW0uZW5hYmxlZCB9O1xuICAgIGRpc3BhdGNoQ3VzdG9tRXZlbnQodGhpcywgJ2NoYW5nZScsIHsgcmVzb3VyY2VzOiB0aGlzLnJlc291cmNlcyB9KTtcbiAgfVxuXG4gIF9yZW5kZXJGb3JtKCkge1xuICAgIGNvbnN0IHZhbHVlcyA9IHsgLi4udGhpcy5fY3VycmVudFJlc291cmNlLnZhbHVlcywgLi4udGhpcy5fY3VycmVudFJlc291cmNlLl92YWx1ZXMgfTtcbiAgICByZXR1cm4gaHRtbGA8Z3Ytc2NoZW1hLWZvcm1cbiAgICAgIHNjcm9sbGFibGVcbiAgICAgIC5zY2hlbWE9XCIke3RoaXMuX2N1cnJlbnRSZXNvdXJjZS5zY2hlbWF9XCJcbiAgICAgIC52YWx1ZXM9XCIke3ZhbHVlc31cIlxuICAgICAgc3VibWl0TGFiZWw9XCIke3RoaXMuX2N1cnJlbnRSZXNvdXJjZS5zdWJtaXRMYWJlbH1cIlxuICAgICAgaGFzLWhlYWRlclxuICAgICAgLmljb249XCIke3RoaXMuX2N1cnJlbnRSZXNvdXJjZS5pY29ufVwiXG4gICAgICB2YWxpZGF0ZS1vbi1yZW5kZXJcbiAgICAgIC5kaXJ0eT1cIiR7dGhpcy5fY3VycmVudFJlc291cmNlLmRpcnR5IHx8IHRoaXMuX2N1cnJlbnRSZXNvdXJjZS5fdmFsdWVzICE9IG51bGx9XCJcbiAgICAgID9yZWFkb25seT1cIiR7dGhpcy5yZWFkb25seX1cIlxuICAgICAgQGd2LXNjaGVtYS1mb3JtOmNoYW5nZT1cIiR7dGhpcy5fb25DaGFuZ2VSZXNvdXJjZUZvcm19XCJcbiAgICAgIEBndi1zY2hlbWEtZm9ybTpyZXNldD1cIiR7dGhpcy5fb25SZXNldFJlc291cmNlRm9ybX1cIlxuICAgICAgQGd2LXNjaGVtYS1mb3JtOnN1Ym1pdD1cIiR7dGhpcy5fb25TdWJtaXRSZXNvdXJjZUZvcm19XCJcbiAgICA+XG4gICAgICA8ZGl2IHNsb3Q9XCJ0aXRsZVwiIGNsYXNzPVwiZm9ybS10aXRsZVwiPiR7dGhpcy5fY3VycmVudFJlc291cmNlLnRpdGxlfTwvZGl2PlxuICAgICAgPGd2LWJ1dHRvblxuICAgICAgICBzbG90PVwiaGVhZGVyLWxlZnRcIlxuICAgICAgICBpY29uPVwiZ2VuZXJhbDpjbG9zZVwiXG4gICAgICAgIG91dGxpbmVkXG4gICAgICAgIHNtYWxsXG4gICAgICAgIEBndi1idXR0b246Y2xpY2s9XCIke3RoaXMuX29uQ2FuY2VsUmVzb3VyY2VGb3JtfVwiXG4gICAgICAgIHRpdGxlPVwiQ2xvc2UgKGVzYylcIlxuICAgICAgPjwvZ3YtYnV0dG9uPlxuICAgICAgPGd2LWJ1dHRvblxuICAgICAgICBzbG90PVwiaGVhZGVyLWxlZnRcIlxuICAgICAgICBpY29uPVwiaG9tZTpib29rXCJcbiAgICAgICAgP2Rpc2FibGVkPVwiJHt0aGlzLmRvY3VtZW50YXRpb24gIT0gbnVsbH1cIlxuICAgICAgICBvdXRsaW5lZFxuICAgICAgICBzbWFsbFxuICAgICAgICBAZ3YtYnV0dG9uOmNsaWNrPVwiJHt0aGlzLl9vbkZldGNoRG9jdW1lbnRhdGlvbn1cIlxuICAgICAgICB0aXRsZT1cIk9wZW4gZG9jdW1lbnRhdGlvblwiXG4gICAgICA+PC9ndi1idXR0b24+XG4gICAgPC9ndi1zY2hlbWEtZm9ybT5gO1xuICB9XG5cbiAgX3JlbmRlckRvYygpIHtcbiAgICByZXR1cm4gaHRtbGA8Z3YtZG9jdW1lbnRhdGlvblxuICAgICAgLnRleHQ9XCIke3RoaXMuZG9jdW1lbnRhdGlvbi5jb250ZW50fVwiXG4gICAgICAuaW1hZ2U9XCIke3RoaXMuZG9jdW1lbnRhdGlvbi5pbWFnZX1cIlxuICAgICAgQGd2LWRvY3VtZW50YXRpb246Y2xvc2U9XCIke3RoaXMuX29uQ2xvc2VEb2N1bWVudGF0aW9ufVwiXG4gICAgPjwvZ3YtZG9jdW1lbnRhdGlvbj5gO1xuICB9XG5cbiAgX3JlbmRlckJvdHRvbSgpIHtcbiAgICBpZiAodGhpcy5kb2N1bWVudGF0aW9uICYmIHRoaXMuX2N1cnJlbnRSZXNvdXJjZSkge1xuICAgICAgcmV0dXJuIGh0bWxgIDxndi1yZXNpemFibGUtdmlld3MgZGlyZWN0aW9uPVwiaG9yaXpvbnRhbFwiIG5vLW92ZXJmbG93PlxuICAgICAgICA8ZGl2IHNsb3Q9XCJ0b3BcIj4ke3RoaXMuX3JlbmRlckZvcm0oKX08L2Rpdj5cbiAgICAgICAgPGRpdiBzbG90PVwiYm90dG9tXCI+JHt0aGlzLl9yZW5kZXJEb2MoKX08L2Rpdj5cbiAgICAgIDwvZ3YtcmVzaXphYmxlLXZpZXdzPmA7XG4gICAgfSBlbHNlIGlmICh0aGlzLl9jdXJyZW50UmVzb3VyY2UpIHtcbiAgICAgIHJldHVybiB0aGlzLl9yZW5kZXJGb3JtKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmRvY3VtZW50YXRpb24pIHtcbiAgICAgIHJldHVybiB0aGlzLl9yZW5kZXJEb2MoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucmVhZG9ubHkgIT09IHRydWUpIHtcbiAgICAgIGNvbnN0IHJlc291cmNlT3B0cyA9IHRoaXMudHlwZXMubWFwKChyZXNvdXJjZSkgPT4ge1xuICAgICAgICByZXR1cm4geyBpZDogcmVzb3VyY2UuaWQsIHRpdGxlOiByZXNvdXJjZS5uYW1lLCBkZXNjcmlwdGlvbjogcmVzb3VyY2UuZGVzY3JpcHRpb24sIGltYWdlOiByZXNvdXJjZS5pY29uIH07XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIGh0bWxgPGRpdiBjbGFzcz1cInJlc291cmNlcy1ib3R0b20tY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8Z3Ytb3B0aW9uIGNsYXNzPVwicmVzb3VyY2VfX29wdGlvblwiIC5vcHRpb25zPVwiJHtyZXNvdXJjZU9wdHN9XCIgQGd2LW9wdGlvbjpzZWxlY3Q9XCIke3RoaXMuX29uQ3JlYXRlUmVzb3VyY2V9XCI+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5gO1xuICAgIH0gZWxzZSBpZiAodGhpcy5yZWFkb25seSAmJiB0aGlzLnJlc291cmNlcy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gaHRtbGA8ZGl2IGNsYXNzPVwicmVzb3VyY2VzLWJvdHRvbS1jb250YWluZXIgZW1wdHlcIj5Zb3UgY2FuIHNlZSB0aGUgcmVzb3VyY2UgY29uZmlndXJhdGlvbiBieSBjbGlja2luZyBvbiBpdDwvZGl2PmA7XG4gICAgfVxuICB9XG5cbiAgX29uU2VhcmNoUmVzb3VyY2UoeyBkZXRhaWwgfSkge1xuICAgIHRoaXMuX2ZpbHRlciA9IGRldGFpbDtcbiAgfVxuXG4gIF9vbkNsZWFyUmVzb3VyY2UoKSB7XG4gICAgdGhpcy5fZmlsdGVyID0gbnVsbDtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgc2VsZWN0YWJsZTogdHJ1ZSxcbiAgICAgIGRhdGE6IFtcbiAgICAgICAgeyBmaWVsZDogJ25hbWUnLCBsYWJlbDogJ05hbWUnIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBmaWVsZDogJ3R5cGUnLFxuICAgICAgICAgIHdpZHRoOiAnNTBweCcsXG4gICAgICAgICAgdHlwZTogJ2d2LWltYWdlJyxcbiAgICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgICBzcmM6IChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHJlc291cmNlVHlwZSA9IHRoaXMuX2ZpbmRSZXNvdXJjZUJ5SWQoaXRlbS50eXBlKTtcbiAgICAgICAgICAgICAgcmV0dXJuIHJlc291cmNlVHlwZSA/IHJlc291cmNlVHlwZS5pY29uIDogbnVsbDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzdHlsZTogJ3dpZHRoOjQwcHg7aGVpZ2h0OjQwcHg7JyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB7IGZpZWxkOiAndHlwZScsIGxhYmVsOiAnVHlwZScgfSxcbiAgICAgICAge1xuICAgICAgICAgIGZpZWxkOiAnZW5hYmxlZCcsXG4gICAgICAgICAgdHlwZTogJ2d2LXN3aXRjaCcsXG4gICAgICAgICAgdGl0bGU6IChpdGVtKSA9PiAoaXRlbS5lbmFibGVkID8gJ0NsaWNrIHRvIGRpc2FibGUnIDogJ0NsaWNrIHRvIGVuYWJsZScpLFxuICAgICAgICAgIHdpZHRoOiAnNTBweCcsXG4gICAgICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICAgICAgcmVhZG9ubHk6IHRoaXMucmVhZG9ubHksXG4gICAgICAgICAgICAnb25ndi1zd2l0Y2g6aW5wdXQnOiAoaXRlbSwgZXZlbnQpID0+IHRoaXMuX29uQ2hhbmdlUmVzb3VyY2VTdGF0ZShpdGVtLCBldmVudCksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfTtcblxuICAgIGlmICh0aGlzLnJlYWRvbmx5ICE9PSB0cnVlKSB7XG4gICAgICBvcHRpb25zLmRhdGEucHVzaCh7XG4gICAgICAgIHR5cGU6ICdndi1idXR0b24nLFxuICAgICAgICB3aWR0aDogJzUwcHgnLFxuICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgb25DbGljazogKGl0ZW0pID0+IHRoaXMuX3JlbW92ZVJlc291cmNlKGl0ZW0pLFxuICAgICAgICAgIHRpdGxlOiAncmVtb3ZlJyxcbiAgICAgICAgICBkYW5nZXI6IHRydWUsXG4gICAgICAgICAgb3V0bGluZWQ6IHRydWUsXG4gICAgICAgICAgaWNvbjogJ2hvbWU6dHJhc2gnLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgZmlsdGVyZWRSZXNvdXJjZXMgPVxuICAgICAgdGhpcy5fZmlsdGVyICE9IG51bGxcbiAgICAgICAgPyB0aGlzLnJlc291cmNlcy5maWx0ZXIoKHJlc291cmNlKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gKHJlc291cmNlLm5hbWUudG9Mb3dlckNhc2UoKSArIHJlc291cmNlLnR5cGUudG9Mb3dlckNhc2UoKSkuaW5jbHVkZXModGhpcy5fZmlsdGVyKTtcbiAgICAgICAgICB9KVxuICAgICAgICA6IHRoaXMucmVzb3VyY2VzO1xuXG4gICAgcmV0dXJuIGh0bWxgPGRpdiBjbGFzcz1cInJlc291cmNlc1wiPlxuICAgICAgPGd2LXJlc2l6YWJsZS12aWV3cyBuby1vdmVyZmxvdz5cbiAgICAgICAgPGRpdiBzbG90PVwidG9wXCIgY2xhc3M9XCJib3hcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPk1hbmFnZSBnbG9iYWwgcmVzb3VyY2VzIDxzcGFuPigke3RoaXMucmVzb3VyY2VzLmxlbmd0aH0pPC9zcGFuPjwvZGl2PlxuICAgICAgICAgICAgICA8Z3YtaW5wdXRcbiAgICAgICAgICAgICAgICBpZD1cInNlYXJjaC1yZXNvdXJjZVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzZWFyY2gtaW5wdXRcIlxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRmlsdGVyIHJlc291cmNlcyAoU2hpZnQgKyBDdHJsICsgU3BhY2UpXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwic2VhcmNoXCJcbiAgICAgICAgICAgICAgICBzbWFsbFxuICAgICAgICAgICAgICAgIEBndi1pbnB1dDppbnB1dD1cIiR7dGhpcy5fb25TZWFyY2hSZXNvdXJjZX1cIlxuICAgICAgICAgICAgICAgIEBndi1pbnB1dDpjbGVhcj1cIiR7dGhpcy5fb25DbGVhclJlc291cmNlfVwiXG4gICAgICAgICAgICAgID48L2d2LWlucHV0PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgPGd2LXRhYmxlXG4gICAgICAgICAgICAgICAgICAub3B0aW9ucz1cIiR7b3B0aW9uc31cIlxuICAgICAgICAgICAgICAgICAgLml0ZW1zPVwiJHtmaWx0ZXJlZFJlc291cmNlc31cIlxuICAgICAgICAgICAgICAgICAgZW1wdHltZXNzYWdlPVwiJHt0aGlzLl9lbXB0eW1lc3NhZ2V9XCJcbiAgICAgICAgICAgICAgICAgIEBndi10YWJsZTpzZWxlY3Q9XCIke3RoaXMuX29uU2VsZWN0UmVzb3VyY2V9XCJcbiAgICAgICAgICAgICAgICAgIG9yZGVyPVwibmFtZVwiXG4gICAgICAgICAgICAgICAgICByb3doZWlnaHQ9XCI1MHB4XCJcbiAgICAgICAgICAgICAgICA+PC9ndi10YWJsZT5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgc2xvdD1cImJvdHRvbVwiPiR7dGhpcy5fcmVuZGVyQm90dG9tKCl9PC9kaXY+XG4gICAgICA8L2d2LXJlc2l6YWJsZS12aWV3cz5cbiAgICA8L2Rpdj5gO1xuICB9XG5cbiAgc3RhdGljIGdldCBzdHlsZXMoKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIGVtcHR5LFxuICAgICAgLy8gbGFuZ3VhZ2U9Q1NTXG4gICAgICBjc3NgXG4gICAgICAgIDpob3N0IHtcbiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIC5yZXNvdXJjZXMge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgZ3YtcmVzaXphYmxlLXZpZXdzIHtcbiAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBndi10YWJsZSB7XG4gICAgICAgICAgLS1ndi10YWJsZS1yb3dzLS1vdjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5oZWFkZXIge1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZDlkOWQ5O1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgbWluLWhlaWdodDogNDVweDtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgICBwYWRkaW5nOiAwIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5oZWFkZXIgLnRpdGxlIHtcbiAgICAgICAgICBjb2xvcjogIzI4NDQ0ZjtcbiAgICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgICAgZmxleDogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5oZWFkZXIgLnRpdGxlIHNwYW4ge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogOHB4O1xuICAgICAgICAgIG9wYWNpdHk6IDAuNztcbiAgICAgICAgfVxuXG4gICAgICAgIC5ib3gge1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNvbnRhaW5lciB7XG4gICAgICAgICAgZmxleC1ncm93OiAxO1xuXG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICAgLyogZm9yIEZpcmVmb3ggKi9cbiAgICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jb250ZW50IHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICAgICAgICBmbGV4LWdyb3c6IDE7XG5cbiAgICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICAgIC8qIGZvciBGaXJlZm94ICovXG4gICAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtLXRpdGxlIHtcbiAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAucmVzb3VyY2VzLWJvdHRvbS1jb250YWluZXIge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAudGFibGUtY29udGFpbmVyIHtcbiAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAuc2VhcmNoLWlucHV0IHtcbiAgICAgICAgICB3aWR0aDogMzAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAucmVzb3VyY2VfX29wdGlvbiB7XG4gICAgICAgICAgLS1ndi1vcHRpb24tYnV0dG9uLS1tYXc6IDE3NXB4O1xuICAgICAgICB9XG4gICAgICBgLFxuICAgIF07XG4gIH1cbn1cblxud2luZG93LmN1c3RvbUVsZW1lbnRzLmRlZmluZSgnZ3YtcmVzb3VyY2VzJywgR3ZSZXNvdXJjZXMpO1xuIl19
@@ -13,10 +13,10 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import { css, html, LitElement } from 'lit-element';
16
+ import { css, html, LitElement } from 'lit';
17
17
  import { canInline } from '../lib/schema-form';
18
18
  import { dispatchCustomEvent } from '../lib/events';
19
- import { classMap } from 'lit-html/directives/class-map';
19
+ import { classMap } from 'lit/directives/class-map';
20
20
  import { skeleton } from '../styles/skeleton';
21
21
  import { UpdateAfterBrowser } from '../mixins/update-after-browser';
22
22
  /**
@@ -106,8 +106,8 @@ export class GvSchemaFormArray extends UpdateAfterBrowser(LitElement) {
106
106
  return this.shadowRoot.querySelector(`[id="${id}"]`);
107
107
  }
108
108
 
109
- async _getUpdateComplete() {
110
- await super._getUpdateComplete();
109
+ async getUpdateComplete() {
110
+ await super.getUpdateComplete();
111
111
  await Promise.all(this.getControls().map(e => e.updateComplete));
112
112
  }
113
113
 
@@ -137,4 +137,4 @@ export class GvSchemaFormArray extends UpdateAfterBrowser(LitElement) {
137
137
 
138
138
  }
139
139
  window.customElements.define('gv-schema-form-array', GvSchemaFormArray);
140
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL29yZ2FuaXNtcy9ndi1zY2hlbWEtZm9ybS1hcnJheS5qcyJdLCJuYW1lcyI6WyJjc3MiLCJodG1sIiwiTGl0RWxlbWVudCIsImNhbklubGluZSIsImRpc3BhdGNoQ3VzdG9tRXZlbnQiLCJjbGFzc01hcCIsInNrZWxldG9uIiwiVXBkYXRlQWZ0ZXJCcm93c2VyIiwiR3ZTY2hlbWFGb3JtQXJyYXkiLCJwcm9wZXJ0aWVzIiwic2NoZW1hIiwidHlwZSIsIk9iamVjdCIsInZhbHVlIiwiQXJyYXkiLCJpZCIsIlN0cmluZyIsInJlZmxlY3QiLCJ0aXRsZSIsImRlc2NyaXB0aW9uIiwiQm9vbGVhbiIsImVycm9ycyIsInJlYWRvbmx5IiwiY29uc3RydWN0b3IiLCJfb25OZXciLCJuZXdWYWx1ZSIsIl9vblJlbW92ZSIsImluZGV4Iiwic3BsaWNlIiwiZmlsdGVyIiwiZSIsIl9yZW5kZXJWYWx1ZSIsImlzUmVxdWlyZWQiLCJyZXF1aXJlZCIsImlzRGlzYWJsZWQiLCJkaXNhYmxlZCIsImNvbnRyb2wiLCJpc0lubGluZSIsImNsYXNzZXMiLCJmb3JtX19pdGVtIiwiZm9ybV9faXRlbV9jYXJkcyIsIl9vbk1vdXNlTGVhdmUiLCJiaW5kIiwic2VsZWN0Iiwic2hhZG93Um9vdCIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJmb3JFYWNoIiwicyIsImNsb3NlIiwiZ2V0Q29udHJvbHMiLCJmcm9tIiwiZ2V0Q29udHJvbCIsInF1ZXJ5U2VsZWN0b3IiLCJfZ2V0VXBkYXRlQ29tcGxldGUiLCJQcm9taXNlIiwiYWxsIiwibWFwIiwidXBkYXRlQ29tcGxldGUiLCJzaG91bGRVcGRhdGUiLCJjaGFuZ2VkUHJvcGVydGllcyIsImhhcyIsInJlbmRlciIsIm9wZW4iLCJsZW5ndGgiLCJpc0FycmF5Iiwic3R5bGVzIiwid2luZG93IiwiY3VzdG9tRWxlbWVudHMiLCJkZWZpbmUiXSwibWFwcGluZ3MiOiJBQUFBO0FB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NkJvRCxJQUE3QixLQUFzQyxLQUEzRjtBQUNBLFdBQU83RCxJQUFJLHFEQUFxRDZELElBQXJELDZHQUdVLEtBQUs1QyxLQUFMLElBQWMsS0FBS0gsRUFIN0IsMkNBRzBFLEtBQUtGLEtBQUwsQ0FBV2tELE1BSHJGLG9CQUlILEtBQUs1QyxXQUFMLEdBQW1CbEIsSUFBSSw0QkFBNEIsS0FBS2tCLFdBQWpDLFFBQXZCLEdBQThFLEVBSjNFLFdBTUwsS0FBS0csUUFBTCxLQUFrQixJQUFsQixHQUNFckIsSUFBSSxnRUFBZ0UsS0FBS3VCLE1BQXJFLFNBQW9GLEtBQUtkLE1BQUwsQ0FBWVEsS0FBaEcsY0FETixHQUVFLEVBUkcsNkNBVTJCLEtBQUtILEVBVmhDLHFCQVdMLEtBQUtGLEtBQUwsSUFBYyxJQUFkLElBQXNCQyxLQUFLLENBQUNrRCxPQUFOLENBQWMsS0FBS25ELEtBQW5CLENBQXRCLEdBQWtELEtBQUtBLEtBQUwsQ0FBVzJDLEdBQVgsQ0FBZSxDQUFDM0MsS0FBRCxFQUFRYyxLQUFSLEtBQWtCLEtBQUtJLFlBQUwsQ0FBa0JsQixLQUFsQixFQUF5QmMsS0FBekIsQ0FBakMsQ0FBbEQsR0FBc0gsRUFYakgsMEJBQVg7QUFjRDs7QUFFZ0IsYUFBTnNDLE1BQU0sR0FBRztBQUNsQixXQUFPLENBQ0wzRCxRQURLLEVBRUw7QUFDQU4sSUFBQUEsR0FBRyx3a0NBSEUsQ0FBUDtBQXVGRDs7QUE1Tm1FO0FBK050RWtFLE1BQU0sQ0FBQ0MsY0FBUCxDQUFzQkMsTUFBdEIsQ0FBNkIsc0JBQTdCLEVBQXFENUQsaUJBQXJEIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoQykgMjAxNSBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7IGNzcywgaHRtbCwgTGl0RWxlbWVudCB9IGZyb20gJ2xpdC1lbGVtZW50JztcbmltcG9ydCB7IGNhbklubGluZSB9IGZyb20gJy4uL2xpYi9zY2hlbWEtZm9ybSc7XG5pbXBvcnQgeyBkaXNwYXRjaEN1c3RvbUV2ZW50IH0gZnJvbSAnLi4vbGliL2V2ZW50cyc7XG5pbXBvcnQgeyBjbGFzc01hcCB9IGZyb20gJ2xpdC1odG1sL2RpcmVjdGl2ZXMvY2xhc3MtbWFwJztcbmltcG9ydCB7IHNrZWxldG9uIH0gZnJvbSAnLi4vc3R5bGVzL3NrZWxldG9uJztcbmltcG9ydCB7IFVwZGF0ZUFmdGVyQnJvd3NlciB9IGZyb20gJy4uL21peGlucy91cGRhdGUtYWZ0ZXItYnJvd3Nlcic7XG5cbi8qKlxuICogU2NoZW1hIGZvcm0gYXJyYXkgY29tcG9uZW50XG4gKlxuICovXG5leHBvcnQgY2xhc3MgR3ZTY2hlbWFGb3JtQXJyYXkgZXh0ZW5kcyBVcGRhdGVBZnRlckJyb3dzZXIoTGl0RWxlbWVudCkge1xuICBzdGF0aWMgZ2V0IHByb3BlcnRpZXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNjaGVtYTogeyB0eXBlOiBPYmplY3QgfSxcbiAgICAgIHZhbHVlOiB7IHR5cGU6IEFycmF5IH0sXG4gICAgICBpZDogeyB0eXBlOiBTdHJpbmcsIHJlZmxlY3Q6IHRydWUgfSxcbiAgICAgIHRpdGxlOiB7IHR5cGU6IFN0cmluZywgcmVmbGVjdDogdHJ1ZSB9LFxuICAgICAgZGVzY3JpcHRpb246IHsgdHlwZTogU3RyaW5nIH0sXG4gICAgICBza2VsZXRvbjogeyB0eXBlOiBCb29sZWFuLCByZWZsZWN0OiB0cnVlIH0sXG4gICAgICBlcnJvcnM6IHsgdHlwZTogQXJyYXkgfSxcbiAgICAgIHJlYWRvbmx5OiB7IHR5cGU6IEJvb2xlYW4sIHJlZmxlY3Q6IHRydWUgfSxcbiAgICB9O1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnZhbHVlID0gW107XG4gIH1cblxuICBfb25OZXcoKSB7XG4gICAgY29uc3QgbmV3VmFsdWUgPSB0aGlzLnNjaGVtYS50eXBlID09PSAnb2JqZWN0JyA/IHt9IDogJyc7XG4gICAgdGhpcy52YWx1ZSA9IFsuLi50aGlzLnZhbHVlLCBuZXdWYWx1ZV07XG4gICAgZGlzcGF0Y2hDdXN0b21FdmVudCh0aGlzLCAnaW5wdXQnLCB0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIF9vblJlbW92ZShpbmRleCkge1xuICAgIHRoaXMudmFsdWUuc3BsaWNlKGluZGV4LCAxLCBudWxsKTtcbiAgICB0aGlzLnZhbHVlID0gdGhpcy52YWx1ZS5maWx0ZXIoKGUpID0+IGUgIT0gbnVsbCk7XG4gICAgZGlzcGF0Y2hDdXN0b21FdmVudCh0aGlzLCAnaW5wdXQnLCB0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIF9yZW5kZXJWYWx1ZSh2YWx1ZSwgaW5kZXgpIHtcbiAgICBjb25zdCBpc1JlcXVpcmVkID0gdGhpcy5zY2hlbWEucmVxdWlyZWQ7XG4gICAgY29uc3QgaXNEaXNhYmxlZCA9IHRoaXMuc2NoZW1hLmRpc2FibGVkO1xuICAgIGNvbnN0IGlkID0gYCR7dGhpcy5pZH0uJHtpbmRleH1gO1xuICAgIGNvbnN0IGNvbnRyb2wgPSB7IC4uLnRoaXMuc2NoZW1hLCB0aXRsZTogbnVsbCB9O1xuICAgIGNvbnN0IGlzSW5saW5lID0gY2FuSW5saW5lKHRoaXMuc2NoZW1hKTtcbiAgICBjb25zdCBjbGFzc2VzID0ge1xuICAgICAgZm9ybV9faXRlbTogdHJ1ZSxcbiAgICAgIGZvcm1fX2l0ZW1fY2FyZHM6ICFpc0lubGluZSxcbiAgICB9O1xuICAgIHJldHVybiBodG1sYDxkaXYgY2xhc3M9XCIke2NsYXNzTWFwKGNsYXNzZXMpfVwiIEBtb3VzZWxlYXZlPVwiJHt0aGlzLl9vbk1vdXNlTGVhdmV9XCI+XG4gICAgICAkeyFpc0lubGluZVxuICAgICAgICA/IGh0bWxgPGRpdiBjbGFzcz1cIiR7Y2xhc3NNYXAoeyAnZm9ybV9faXRlbS1sYWJlbCc6IHRydWUsIHNrZWxldG9uOiB0aGlzLnNrZWxldG9uIH0pfVwiPlxuICAgICAgICAgICAgPGxhYmVsPiR7dGhpcy5zY2hlbWEudGl0bGV9PC9sYWJlbD5cbiAgICAgICAgICAgICR7dGhpcy5yZWFkb25seSAhPT0gdHJ1ZVxuICAgICAgICAgICAgICA/IGh0bWxgPGd2LWJ1dHRvblxuICAgICAgICAgICAgICAgICAgbGlua1xuICAgICAgICAgICAgICAgICAgc21hbGxcbiAgICAgICAgICAgICAgICAgIEBndi1idXR0b246Y2xpY2s9XCIke3RoaXMuX29uUmVtb3ZlLmJpbmQodGhpcywgaW5kZXgpfVwiXG4gICAgICAgICAgICAgICAgICBpY29uPVwiZ2VuZXJhbDpjbG9zZVwiXG4gICAgICAgICAgICAgICAgICB0aXRsZT1cIlJlbW92ZVwiXG4gICAgICAgICAgICAgICAgPjwvZ3YtYnV0dG9uPmBcbiAgICAgICAgICAgICAgOiAnJ31cbiAgICAgICAgICA8L2Rpdj5gXG4gICAgICAgIDogJyd9XG4gICAgICA8ZGl2IGNsYXNzPVwiZm9ybV9faXRlbV9lbnRyeVwiPlxuICAgICAgICA8Z3Ytc2NoZW1hLWZvcm0tY29udHJvbFxuICAgICAgICAgIC5pZD1cIiR7aWR9XCJcbiAgICAgICAgICAuc2tlbGV0b249XCIke3RoaXMuc2tlbGV0b259XCJcbiAgICAgICAgICAuY29udHJvbD1cIiR7Y29udHJvbH1cIlxuICAgICAgICAgIC52YWx1ZT1cIiR7dmFsdWV9XCJcbiAgICAgICAgICA/cmVxdWlyZWQ9XCIke2lzUmVxdWlyZWR9XCJcbiAgICAgICAgICA/ZGlzYWJsZWQ9XCIke2lzRGlzYWJsZWR9XCJcbiAgICAgICAgICA/cmVhZG9ubHk9XCIke3RoaXMucmVhZG9ubHl9XCJcbiAgICAgICAgICBjb21wYWN0XG4gICAgICAgID48L2d2LXNjaGVtYS1mb3JtLWNvbnRyb2w+XG4gICAgICAgICR7IWlzSW5saW5lXG4gICAgICAgICAgPyAnJ1xuICAgICAgICAgIDogaHRtbGA8Z3YtYnV0dG9uXG4gICAgICAgICAgICAgIGxpbmtcbiAgICAgICAgICAgICAgc21hbGxcbiAgICAgICAgICAgICAgQGd2LWJ1dHRvbjpjbGljaz1cIiR7dGhpcy5fb25SZW1vdmUuYmluZCh0aGlzLCBpbmRleCl9XCJcbiAgICAgICAgICAgICAgaWNvbj1cImdlbmVyYWw6Y2xvc2VcIlxuICAgICAgICAgICAgICB0aXRsZT1cIlJlbW92ZVwiXG4gICAgICAgICAgICA+PC9ndi1idXR0b24+YH1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PiBgO1xuICB9XG5cbiAgX29uTW91c2VMZWF2ZSgpIHtcbiAgICBjb25zdCBzZWxlY3QgPSB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbChgZ3Ytc2VsZWN0YCk7XG4gICAgc2VsZWN0LmZvckVhY2goKHMpID0+IHMuY2xvc2UoKSk7XG4gIH1cblxuICBnZXRDb250cm9scygpIHtcbiAgICByZXR1cm4gW1xuICAgICAgLi4uQXJyYXkuZnJvbSh0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgnZ3Ytc2NoZW1hLWZvcm0tY29udHJvbCcpKSxcbiAgICAgIC4uLkFycmF5LmZyb20odGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoJ2d2LXNjaGVtYS1mb3JtLWNvbnRyb2wtYXJyYXknKSksXG4gICAgICAuLi5BcnJheS5mcm9tKHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCdndi1zY2hlbWEtZm9ybS1jb250cm9sLW9iamVjdCcpKSxcbiAgICBdO1xuICB9XG5cbiAgZ2V0Q29udHJvbChpZCkge1xuICAgIHJldHVybiB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihgW2lkPVwiJHtpZH1cIl1gKTtcbiAgfVxuXG4gIGFzeW5jIF9nZXRVcGRhdGVDb21wbGV0ZSgpIHtcbiAgICBhd2FpdCBzdXBlci5fZ2V0VXBkYXRlQ29tcGxldGUoKTtcbiAgICBhd2FpdCBQcm9taXNlLmFsbCh0aGlzLmdldENvbnRyb2xzKCkubWFwKChlKSA9PiBlLnVwZGF0ZUNvbXBsZXRlKSk7XG4gIH1cblxuICBzaG91bGRVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpIHtcbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdlcnJvcnMnKSkge1xuICAgICAgdGhpcy5nZXRDb250cm9scygpLmZvckVhY2goKGNvbnRyb2wpID0+IHtcbiAgICAgICAgY29udHJvbC5lcnJvcnMgPSB0aGlzLmVycm9ycztcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gc3VwZXIuc2hvdWxkVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBpZiAodGhpcy5zY2hlbWEgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIGh0bWxgYDtcbiAgICB9XG4gICAgY29uc3Qgb3BlbiA9IHRoaXMuc2NoZW1hWyd4LXNjaGVtYS1mb3JtJ10gPT0gbnVsbCB8fCB0aGlzLnNjaGVtYVsneC1zY2hlbWEtZm9ybSddLm9wZW4gIT09IGZhbHNlO1xuICAgIHJldHVybiBodG1sYDxndi1leHBhbmRhYmxlIGNsYXNzPVwiZm9ybV9fY29udHJvbC1hcnJheVwiID9vcGVuPVwiJHtvcGVufVwiPlxuICAgICAgPGRpdiBzbG90PVwic3VtbWFyeVwiIGNsYXNzPVwiZm9ybV9faXRlbS1ncm91cC1oZWFkZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm1fX2l0ZW0tZ3JvdXAtdGl0bGVcIj5cbiAgICAgICAgICA8bGFiZWw+PHNwYW4+JHt0aGlzLnRpdGxlIHx8IHRoaXMuaWR9PC9zcGFuPjxzcGFuIGNsYXNzPVwiZm9ybV9faXRlbS1sZW5ndGhcIj4oJHt0aGlzLnZhbHVlLmxlbmd0aH0pPC9zcGFuPjwvbGFiZWw+XG4gICAgICAgICAgJHt0aGlzLmRlc2NyaXB0aW9uID8gaHRtbGA8ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb25cIj4ke3RoaXMuZGVzY3JpcHRpb259PC9kaXY+YCA6ICcnfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgJHt0aGlzLnJlYWRvbmx5ICE9PSB0cnVlXG4gICAgICAgICAgPyBodG1sYDxndi1idXR0b24gb3V0bGluZWQgc21hbGwgaWNvbj1cImNvZGU6cGx1c1wiIEBndi1idXR0b246Y2xpY2s9XCIke3RoaXMuX29uTmV3fVwiPk5ldyAke3RoaXMuc2NoZW1hLnRpdGxlfTwvZ3YtYnV0dG9uPmBcbiAgICAgICAgICA6ICcnfVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZm9ybV9faXRlbS1ncm91cFwiIGlkPVwiJHt0aGlzLmlkfVwiIHNsb3Q9XCJkZXRhaWxzXCI+XG4gICAgICAgICR7dGhpcy52YWx1ZSAhPSBudWxsICYmIEFycmF5LmlzQXJyYXkodGhpcy52YWx1ZSkgPyB0aGlzLnZhbHVlLm1hcCgodmFsdWUsIGluZGV4KSA9PiB0aGlzLl9yZW5kZXJWYWx1ZSh2YWx1ZSwgaW5kZXgpKSA6ICcnfVxuICAgICAgPC9kaXY+XG4gICAgPC9ndi1leHBhbmRhYmxlPmA7XG4gIH1cblxuICBzdGF0aWMgZ2V0IHN0eWxlcygpIHtcbiAgICByZXR1cm4gW1xuICAgICAgc2tlbGV0b24sXG4gICAgICAvLyBsYW5ndWFnZT1DU1NcbiAgICAgIGNzc2BcbiAgICAgICAgLmZvcm1fX2l0ZW0tbGVuZ3RoIHtcbiAgICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgICAgY29sb3I6ICNiZmJmYmY7XG4gICAgICAgICAgbWFyZ2luOiAwIDAuMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtX19pdGVtLWdyb3VwIHtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQ7XG4gICAgICAgIH1cblxuICAgICAgICAuZm9ybV9faXRlbV9jYXJkcyBmb3JtX19pdGVtLWdyb3VwOmhvdmVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWZlZmVmO1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvcm1fX2l0ZW0tZ3JvdXAtaGVhZGVyIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ndi1zY2hlbWEtZm9ybS0tYmdjLCAjZmZmZmZmKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtX19pdGVtLWdyb3VwLWhlYWRlciBsYWJlbCB7XG4gICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAuZm9ybV9faXRlbS1ncm91cC10aXRsZSB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAuZGVzY3JpcHRpb24ge1xuICAgICAgICAgIG9wYWNpdHk6IDAuNjtcbiAgICAgICAgICBmb250LXNpemU6IHZhcigtLWd2LXRoZW1lLWZvbnQtc2l6ZS1zLCAxMnB4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtX19pdGVtX2NhcmRzIHtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZDlkOWQ5O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDtcbiAgICAgICAgICB6LWluZGV4OiA1MDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtX19pdGVtX2NhcmRzOmhvdmVyIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDIwcHggLTEwcHggI2JmYmZiZjtcbiAgICAgICAgICB6LWluZGV4OiA2MDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtX19pdGVtX2VudHJ5IHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvcm1fX2l0ZW1fZW50cnkgZ3Ytc2NoZW1hLWZvcm0tY29udHJvbCB7XG4gICAgICAgICAgZmxleDogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtX19pdGVtLWxhYmVsIHtcbiAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZDlkOWQ5O1xuICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtX19pdGVtLWxhYmVsID4gbGFiZWwge1xuICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAuZm9ybV9faXRlbSAuZm9ybV9jb250cm9sLWlubGluZSA+ICoge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvcm1fX2l0ZW0gLmZvcm1fY29udHJvbC1pbmxpbmUgPiAqOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG4gICAgICBgLFxuICAgIF07XG4gIH1cbn1cblxud2luZG93LmN1c3RvbUVsZW1lbnRzLmRlZmluZSgnZ3Ytc2NoZW1hLWZvcm0tYXJyYXknLCBHdlNjaGVtYUZvcm1BcnJheSk7XG4iXX0=
140
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL29yZ2FuaXNtcy9ndi1zY2hlbWEtZm9ybS1hcnJheS5qcyJdLCJuYW1lcyI6WyJjc3MiLCJodG1sIiwiTGl0RWxlbWVudCIsImNhbklubGluZSIsImRpc3BhdGNoQ3VzdG9tRXZlbnQiLCJjbGFzc01hcCIsInNrZWxldG9uIiwiVXBkYXRlQWZ0ZXJCcm93c2VyIiwiR3ZTY2hlbWFGb3JtQXJyYXkiLCJwcm9wZXJ0aWVzIiwic2NoZW1hIiwidHlwZSIsIk9iamVjdCIsInZhbHVlIiwiQXJyYXkiLCJpZCIsIlN0cmluZyIsInJlZmxlY3QiLCJ0aXRsZSIsImRlc2NyaXB0aW9uIiwiQm9vbGVhbiIsImVycm9ycyIsInJlYWRvbmx5IiwiY29uc3RydWN0b3IiLCJfb25OZXciLCJuZXdWYWx1ZSIsIl9vblJlbW92ZSIsImluZGV4Iiwic3BsaWNlIiwiZmlsdGVyIiwiZSIsIl9yZW5kZXJWYWx1ZSIsImlzUmVxdWlyZWQiLCJyZXF1aXJlZCIsImlzRGlzYWJsZWQiLCJkaXNhYmxlZCIsImNvbnRyb2wiLCJpc0lubGluZSIsImNsYXNzZXMiLCJmb3JtX19pdGVtIiwiZm9ybV9faXRlbV9jYXJkcyIsIl9vbk1vdXNlTGVhdmUiLCJiaW5kIiwic2VsZWN0Iiwic2hhZG93Um9vdCIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJmb3JFYWNoIiwicyIsImNsb3NlIiwiZ2V0Q29udHJvbHMiLCJmcm9tIiwiZ2V0Q29udHJvbCIsInF1ZXJ5U2VsZWN0b3IiLCJnZXRVcGRhdGVDb21wbGV0ZSIsIlByb21pc2UiLCJhbGwiLCJtYXAiLCJ1cGRhdGVDb21wbGV0ZSIsInNob3VsZFVwZGF0ZSIsImNoYW5nZWRQcm9wZXJ0aWVzIiwiaGFzIiwicmVuZGVyIiwib3BlbiIsImxlbmd0aCIsImlzQXJyYXkiLCJzdHlsZXMiLCJ3aW5kb3ciLCJjdXN0b21FbGVtZW50cyIsImRlZmluZSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFD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Qm9ELElBQTdCLEtBQXNDLEtBQTNGO0FBQ0EsV0FBTzdELElBQUkscURBQXFENkQsSUFBckQsNkdBR1UsS0FBSzVDLEtBQUwsSUFBYyxLQUFLSCxFQUg3QiwyQ0FHMEUsS0FBS0YsS0FBTCxDQUFXa0QsTUFIckYsb0JBSUgsS0FBSzVDLFdBQUwsR0FBbUJsQixJQUFJLDRCQUE0QixLQUFLa0IsV0FBakMsUUFBdkIsR0FBOEUsRUFKM0UsV0FNTCxLQUFLRyxRQUFMLEtBQWtCLElBQWxCLEdBQ0VyQixJQUFJLGdFQUFnRSxLQUFLdUIsTUFBckUsU0FBb0YsS0FBS2QsTUFBTCxDQUFZUSxLQUFoRyxjQUROLEdBRUUsRUFSRyw2Q0FVMkIsS0FBS0gsRUFWaEMscUJBV0wsS0FBS0YsS0FBTCxJQUFjLElBQWQsSUFBc0JDLEtBQUssQ0FBQ2tELE9BQU4sQ0FBYyxLQUFLbkQsS0FBbkIsQ0FBdEIsR0FBa0QsS0FBS0EsS0FBTCxDQUFXMkMsR0FBWCxDQUFlLENBQUMzQyxLQUFELEVBQVFjLEtBQVIsS0FBa0IsS0FBS0ksWUFBTCxDQUFrQmxCLEtBQWxCLEVBQXlCYyxLQUF6QixDQUFqQyxDQUFsRCxHQUFzSCxFQVhqSCwwQkFBWDtBQWNEOztBQUVnQixhQUFOc0MsTUFBTSxHQUFHO0FBQ2xCLFdBQU8sQ0FDTDNELFFBREssRUFFTDtBQUNBTixJQUFBQSxHQUFHLHdrQ0FIRSxDQUFQO0FBdUZEOztBQTVObUU7QUErTnRFa0UsTUFBTSxDQUFDQyxjQUFQLENBQXNCQyxNQUF0QixDQUE2QixzQkFBN0IsRUFBcUQ1RCxpQkFBckQiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgY3NzLCBodG1sLCBMaXRFbGVtZW50IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGNhbklubGluZSB9IGZyb20gJy4uL2xpYi9zY2hlbWEtZm9ybSc7XG5pbXBvcnQgeyBkaXNwYXRjaEN1c3RvbUV2ZW50IH0gZnJvbSAnLi4vbGliL2V2ZW50cyc7XG5pbXBvcnQgeyBjbGFzc01hcCB9IGZyb20gJ2xpdC9kaXJlY3RpdmVzL2NsYXNzLW1hcCc7XG5pbXBvcnQgeyBza2VsZXRvbiB9IGZyb20gJy4uL3N0eWxlcy9za2VsZXRvbic7XG5pbXBvcnQgeyBVcGRhdGVBZnRlckJyb3dzZXIgfSBmcm9tICcuLi9taXhpbnMvdXBkYXRlLWFmdGVyLWJyb3dzZXInO1xuXG4vKipcbiAqIFNjaGVtYSBmb3JtIGFycmF5IGNvbXBvbmVudFxuICpcbiAqL1xuZXhwb3J0IGNsYXNzIEd2U2NoZW1hRm9ybUFycmF5IGV4dGVuZHMgVXBkYXRlQWZ0ZXJCcm93c2VyKExpdEVsZW1lbnQpIHtcbiAgc3RhdGljIGdldCBwcm9wZXJ0aWVzKCkge1xuICAgIHJldHVybiB7XG4gICAgICBzY2hlbWE6IHsgdHlwZTogT2JqZWN0IH0sXG4gICAgICB2YWx1ZTogeyB0eXBlOiBBcnJheSB9LFxuICAgICAgaWQ6IHsgdHlwZTogU3RyaW5nLCByZWZsZWN0OiB0cnVlIH0sXG4gICAgICB0aXRsZTogeyB0eXBlOiBTdHJpbmcsIHJlZmxlY3Q6IHRydWUgfSxcbiAgICAgIGRlc2NyaXB0aW9uOiB7IHR5cGU6IFN0cmluZyB9LFxuICAgICAgc2tlbGV0b246IHsgdHlwZTogQm9vbGVhbiwgcmVmbGVjdDogdHJ1ZSB9LFxuICAgICAgZXJyb3JzOiB7IHR5cGU6IEFycmF5IH0sXG4gICAgICByZWFkb25seTogeyB0eXBlOiBCb29sZWFuLCByZWZsZWN0OiB0cnVlIH0sXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy52YWx1ZSA9IFtdO1xuICB9XG5cbiAgX29uTmV3KCkge1xuICAgIGNvbnN0IG5ld1ZhbHVlID0gdGhpcy5zY2hlbWEudHlwZSA9PT0gJ29iamVjdCcgPyB7fSA6ICcnO1xuICAgIHRoaXMudmFsdWUgPSBbLi4udGhpcy52YWx1ZSwgbmV3VmFsdWVdO1xuICAgIGRpc3BhdGNoQ3VzdG9tRXZlbnQodGhpcywgJ2lucHV0JywgdGhpcy52YWx1ZSk7XG4gIH1cblxuICBfb25SZW1vdmUoaW5kZXgpIHtcbiAgICB0aGlzLnZhbHVlLnNwbGljZShpbmRleCwgMSwgbnVsbCk7XG4gICAgdGhpcy52YWx1ZSA9IHRoaXMudmFsdWUuZmlsdGVyKChlKSA9PiBlICE9IG51bGwpO1xuICAgIGRpc3BhdGNoQ3VzdG9tRXZlbnQodGhpcywgJ2lucHV0JywgdGhpcy52YWx1ZSk7XG4gIH1cblxuICBfcmVuZGVyVmFsdWUodmFsdWUsIGluZGV4KSB7XG4gICAgY29uc3QgaXNSZXF1aXJlZCA9IHRoaXMuc2NoZW1hLnJlcXVpcmVkO1xuICAgIGNvbnN0IGlzRGlzYWJsZWQgPSB0aGlzLnNjaGVtYS5kaXNhYmxlZDtcbiAgICBjb25zdCBpZCA9IGAke3RoaXMuaWR9LiR7aW5kZXh9YDtcbiAgICBjb25zdCBjb250cm9sID0geyAuLi50aGlzLnNjaGVtYSwgdGl0bGU6IG51bGwgfTtcbiAgICBjb25zdCBpc0lubGluZSA9IGNhbklubGluZSh0aGlzLnNjaGVtYSk7XG4gICAgY29uc3QgY2xhc3NlcyA9IHtcbiAgICAgIGZvcm1fX2l0ZW06IHRydWUsXG4gICAgICBmb3JtX19pdGVtX2NhcmRzOiAhaXNJbmxpbmUsXG4gICAgfTtcbiAgICByZXR1cm4gaHRtbGA8ZGl2IGNsYXNzPVwiJHtjbGFzc01hcChjbGFzc2VzKX1cIiBAbW91c2VsZWF2ZT1cIiR7dGhpcy5fb25Nb3VzZUxlYXZlfVwiPlxuICAgICAgJHshaXNJbmxpbmVcbiAgICAgICAgPyBodG1sYDxkaXYgY2xhc3M9XCIke2NsYXNzTWFwKHsgJ2Zvcm1fX2l0ZW0tbGFiZWwnOiB0cnVlLCBza2VsZXRvbjogdGhpcy5za2VsZXRvbiB9KX1cIj5cbiAgICAgICAgICAgIDxsYWJlbD4ke3RoaXMuc2NoZW1hLnRpdGxlfTwvbGFiZWw+XG4gICAgICAgICAgICAke3RoaXMucmVhZG9ubHkgIT09IHRydWVcbiAgICAgICAgICAgICAgPyBodG1sYDxndi1idXR0b25cbiAgICAgICAgICAgICAgICAgIGxpbmtcbiAgICAgICAgICAgICAgICAgIHNtYWxsXG4gICAgICAgICAgICAgICAgICBAZ3YtYnV0dG9uOmNsaWNrPVwiJHt0aGlzLl9vblJlbW92ZS5iaW5kKHRoaXMsIGluZGV4KX1cIlxuICAgICAgICAgICAgICAgICAgaWNvbj1cImdlbmVyYWw6Y2xvc2VcIlxuICAgICAgICAgICAgICAgICAgdGl0bGU9XCJSZW1vdmVcIlxuICAgICAgICAgICAgICAgID48L2d2LWJ1dHRvbj5gXG4gICAgICAgICAgICAgIDogJyd9XG4gICAgICAgICAgPC9kaXY+YFxuICAgICAgICA6ICcnfVxuICAgICAgPGRpdiBjbGFzcz1cImZvcm1fX2l0ZW1fZW50cnlcIj5cbiAgICAgICAgPGd2LXNjaGVtYS1mb3JtLWNvbnRyb2xcbiAgICAgICAgICAuaWQ9XCIke2lkfVwiXG4gICAgICAgICAgLnNrZWxldG9uPVwiJHt0aGlzLnNrZWxldG9ufVwiXG4gICAgICAgICAgLmNvbnRyb2w9XCIke2NvbnRyb2x9XCJcbiAgICAgICAgICAudmFsdWU9XCIke3ZhbHVlfVwiXG4gICAgICAgICAgP3JlcXVpcmVkPVwiJHtpc1JlcXVpcmVkfVwiXG4gICAgICAgICAgP2Rpc2FibGVkPVwiJHtpc0Rpc2FibGVkfVwiXG4gICAgICAgICAgP3JlYWRvbmx5PVwiJHt0aGlzLnJlYWRvbmx5fVwiXG4gICAgICAgICAgY29tcGFjdFxuICAgICAgICA+PC9ndi1zY2hlbWEtZm9ybS1jb250cm9sPlxuICAgICAgICAkeyFpc0lubGluZVxuICAgICAgICAgID8gJydcbiAgICAgICAgICA6IGh0bWxgPGd2LWJ1dHRvblxuICAgICAgICAgICAgICBsaW5rXG4gICAgICAgICAgICAgIHNtYWxsXG4gICAgICAgICAgICAgIEBndi1idXR0b246Y2xpY2s9XCIke3RoaXMuX29uUmVtb3ZlLmJpbmQodGhpcywgaW5kZXgpfVwiXG4gICAgICAgICAgICAgIGljb249XCJnZW5lcmFsOmNsb3NlXCJcbiAgICAgICAgICAgICAgdGl0bGU9XCJSZW1vdmVcIlxuICAgICAgICAgICAgPjwvZ3YtYnV0dG9uPmB9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj4gYDtcbiAgfVxuXG4gIF9vbk1vdXNlTGVhdmUoKSB7XG4gICAgY29uc3Qgc2VsZWN0ID0gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoYGd2LXNlbGVjdGApO1xuICAgIHNlbGVjdC5mb3JFYWNoKChzKSA9PiBzLmNsb3NlKCkpO1xuICB9XG5cbiAgZ2V0Q29udHJvbHMoKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLkFycmF5LmZyb20odGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoJ2d2LXNjaGVtYS1mb3JtLWNvbnRyb2wnKSksXG4gICAgICAuLi5BcnJheS5mcm9tKHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCdndi1zY2hlbWEtZm9ybS1jb250cm9sLWFycmF5JykpLFxuICAgICAgLi4uQXJyYXkuZnJvbSh0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgnZ3Ytc2NoZW1hLWZvcm0tY29udHJvbC1vYmplY3QnKSksXG4gICAgXTtcbiAgfVxuXG4gIGdldENvbnRyb2woaWQpIHtcbiAgICByZXR1cm4gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoYFtpZD1cIiR7aWR9XCJdYCk7XG4gIH1cblxuICBhc3luYyBnZXRVcGRhdGVDb21wbGV0ZSgpIHtcbiAgICBhd2FpdCBzdXBlci5nZXRVcGRhdGVDb21wbGV0ZSgpO1xuICAgIGF3YWl0IFByb21pc2UuYWxsKHRoaXMuZ2V0Q29udHJvbHMoKS5tYXAoKGUpID0+IGUudXBkYXRlQ29tcGxldGUpKTtcbiAgfVxuXG4gIHNob3VsZFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcykge1xuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2Vycm9ycycpKSB7XG4gICAgICB0aGlzLmdldENvbnRyb2xzKCkuZm9yRWFjaCgoY29udHJvbCkgPT4ge1xuICAgICAgICBjb250cm9sLmVycm9ycyA9IHRoaXMuZXJyb3JzO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBzdXBlci5zaG91bGRVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGlmICh0aGlzLnNjaGVtYSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gaHRtbGBgO1xuICAgIH1cbiAgICBjb25zdCBvcGVuID0gdGhpcy5zY2hlbWFbJ3gtc2NoZW1hLWZvcm0nXSA9PSBudWxsIHx8IHRoaXMuc2NoZW1hWyd4LXNjaGVtYS1mb3JtJ10ub3BlbiAhPT0gZmFsc2U7XG4gICAgcmV0dXJuIGh0bWxgPGd2LWV4cGFuZGFibGUgY2xhc3M9XCJmb3JtX19jb250cm9sLWFycmF5XCIgP29wZW49XCIke29wZW59XCI+XG4gICAgICA8ZGl2IHNsb3Q9XCJzdW1tYXJ5XCIgY2xhc3M9XCJmb3JtX19pdGVtLWdyb3VwLWhlYWRlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybV9faXRlbS1ncm91cC10aXRsZVwiPlxuICAgICAgICAgIDxsYWJlbD48c3Bhbj4ke3RoaXMudGl0bGUgfHwgdGhpcy5pZH08L3NwYW4+PHNwYW4gY2xhc3M9XCJmb3JtX19pdGVtLWxlbmd0aFwiPigke3RoaXMudmFsdWUubGVuZ3RofSk8L3NwYW4+PC9sYWJlbD5cbiAgICAgICAgICAke3RoaXMuZGVzY3JpcHRpb24gPyBodG1sYDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvblwiPiR7dGhpcy5kZXNjcmlwdGlvbn08L2Rpdj5gIDogJyd9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICAke3RoaXMucmVhZG9ubHkgIT09IHRydWVcbiAgICAgICAgICA/IGh0bWxgPGd2LWJ1dHRvbiBvdXRsaW5lZCBzbWFsbCBpY29uPVwiY29kZTpwbHVzXCIgQGd2LWJ1dHRvbjpjbGljaz1cIiR7dGhpcy5fb25OZXd9XCI+TmV3ICR7dGhpcy5zY2hlbWEudGl0bGV9PC9ndi1idXR0b24+YFxuICAgICAgICAgIDogJyd9XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtX19pdGVtLWdyb3VwXCIgaWQ9XCIke3RoaXMuaWR9XCIgc2xvdD1cImRldGFpbHNcIj5cbiAgICAgICAgJHt0aGlzLnZhbHVlICE9IG51bGwgJiYgQXJyYXkuaXNBcnJheSh0aGlzLnZhbHVlKSA/IHRoaXMudmFsdWUubWFwKCh2YWx1ZSwgaW5kZXgpID0+IHRoaXMuX3JlbmRlclZhbHVlKHZhbHVlLCBpbmRleCkpIDogJyd9XG4gICAgICA8L2Rpdj5cbiAgICA8L2d2LWV4cGFuZGFibGU+YDtcbiAgfVxuXG4gIHN0YXRpYyBnZXQgc3R5bGVzKCkge1xuICAgIHJldHVybiBbXG4gICAgICBza2VsZXRvbixcbiAgICAgIC8vIGxhbmd1YWdlPUNTU1xuICAgICAgY3NzYFxuICAgICAgICAuZm9ybV9faXRlbS1sZW5ndGgge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgICBjb2xvcjogI2JmYmZiZjtcbiAgICAgICAgICBtYXJnaW46IDAgMC4ycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvcm1fX2l0ZW0tZ3JvdXAge1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtX19pdGVtX2NhcmRzIGZvcm1fX2l0ZW0tZ3JvdXA6aG92ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlZmVmZWY7XG4gICAgICAgIH1cblxuICAgICAgICAuZm9ybV9faXRlbS1ncm91cC1oZWFkZXIge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UtaW4tb3V0O1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWd2LXNjaGVtYS1mb3JtLS1iZ2MsICNmZmZmZmYpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvcm1fX2l0ZW0tZ3JvdXAtaGVhZGVyIGxhYmVsIHtcbiAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtX19pdGVtLWdyb3VwLXRpdGxlIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgZmxleDogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgb3BhY2l0eTogMC42O1xuICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZ3YtdGhlbWUtZm9udC1zaXplLXMsIDEycHgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvcm1fX2l0ZW1fY2FyZHMge1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkOWQ5ZDk7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UtaW4tb3V0O1xuICAgICAgICAgIHotaW5kZXg6IDUwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvcm1fX2l0ZW1fY2FyZHM6aG92ZXIge1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDEwcHggMjBweCAtMTBweCAjYmZiZmJmO1xuICAgICAgICAgIHotaW5kZXg6IDYwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvcm1fX2l0ZW1fZW50cnkge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAuZm9ybV9faXRlbV9lbnRyeSBndi1zY2hlbWEtZm9ybS1jb250cm9sIHtcbiAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvcm1fX2l0ZW0tbGFiZWwge1xuICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkOWQ5ZDk7XG4gICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvcm1fX2l0ZW0tbGFiZWwgPiBsYWJlbCB7XG4gICAgICAgICAgZmxleDogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtX19pdGVtIC5mb3JtX2NvbnRyb2wtaW5saW5lID4gKiB7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAuZm9ybV9faXRlbSAuZm9ybV9jb250cm9sLWlubGluZSA+ICo6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cbiAgICAgIGAsXG4gICAgXTtcbiAgfVxufVxuXG53aW5kb3cuY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdndi1zY2hlbWEtZm9ybS1hcnJheScsIEd2U2NoZW1hRm9ybUFycmF5KTtcbiJdfQ==
@@ -13,9 +13,9 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import { css, html, LitElement } from 'lit-element';
16
+ import { css, html, LitElement } from 'lit';
17
17
  import { canInline, canGrid } from '../lib/schema-form';
18
- import { classMap } from 'lit-html/directives/class-map';
18
+ import { classMap } from 'lit/directives/class-map';
19
19
  import { skeleton } from '../styles/skeleton';
20
20
  import '../molecules/gv-expandable';
21
21
  import { UpdateAfterBrowser } from '../mixins/update-after-browser';
@@ -93,8 +93,8 @@ export class GvSchemaFormControlObject extends UpdateAfterBrowser(LitElement) {
93
93
  return this.shadowRoot.querySelector(`[id="${id}"]`);
94
94
  }
95
95
 
96
- async _getUpdateComplete() {
97
- await super._getUpdateComplete();
96
+ async getUpdateComplete() {
97
+ await super.getUpdateComplete();
98
98
  await Promise.all(this.getControls().map(e => e.updateComplete));
99
99
  }
100
100
 
@@ -137,4 +137,4 @@ export class GvSchemaFormControlObject extends UpdateAfterBrowser(LitElement) {
137
137
 
138
138
  }
139
139
  window.customElements.define('gv-schema-form-control-object', GvSchemaFormControlObject);
140
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL29yZ2FuaXNtcy9ndi1zY2hlbWEtZm9ybS1jb250cm9sLW9iamVjdC5qcyJdLCJuYW1lcyI6WyJjc3MiLCJodG1sIiwiTGl0RWxlbWVudCIsImNhbklubGluZSIsImNhbkdyaWQiLCJjbGFzc01hcCIsInNrZWxldG9uIiwiVXBkYXRlQWZ0ZXJCcm93c2VyIiwiR3ZTY2hlbWFGb3JtQ29udHJvbE9iamVjdCIsInByb3BlcnRpZXMiLCJzY2hlbWEiLCJ0eXBlIiwiT2JqZWN0IiwidmFsdWUiLCJyZWZsZWN0IiwiaWQiLCJTdHJpbmciLCJ0aXRsZSIsImVycm9ycyIsIkFycmF5IiwiQm9vbGVhbiIsInJlYWRvbmx5IiwiZGlzYWJsZWQiLCJyZXF1aXJlZCIsImhpZGRlbiIsImNvbXBhY3QiLCJjb25zdHJ1Y3RvciIsIl9yZW5kZXJQYXJ0Iiwic3ViS2V5IiwiaXNSZXF1aXJlZCIsImluY2x1ZGVzIiwiaXNEaXNhYmxlZCIsImZ1bGxLZXkiLCJjb250cm9sIiwiZ2V0Q29udHJvbHMiLCJmcm9tIiwic2hhZG93Um9vdCIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJnZXRDb250cm9sIiwicXVlcnlTZWxlY3RvciIsIl9nZXRVcGRhdGVDb21wbGV0ZSIsIlByb21pc2UiLCJhbGwiLCJtYXAiLCJlIiwidXBkYXRlQ29tcGxldGUiLCJzaG91bGRVcGRhdGUiLCJjaGFuZ2VkUHJvcGVydGllcyIsImhhcyIsImZvckVhY2giLCJyZW5kZXIiLCJrZXlzIiwiaXNHcmlkIiwiY2xhc3NlcyIsImxlbmd0aCIsInRpdGxlQ2xhc3NlcyIsImRldGFpbHMiLCJrZXkiLCJvcGVuIiwic3R5bGVzIiwid2luZG93IiwiY3VzdG9tRWxlbWVudHMiLCJkZWZpbmUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtB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QUVMO0FBQ0FOLElBQUFBLEdBQUcsa1ZBSEUsQ0FBUDtBQTRCRDs7QUE3SDJFO0FBZ0k5RTRELE1BQU0sQ0FBQ0MsY0FBUCxDQUFzQkMsTUFBdEIsQ0FBNkIsK0JBQTdCLEVBQThEdEQseUJBQTlEIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoQykgMjAxNSBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7IGNzcywgaHRtbCwgTGl0RWxlbWVudCB9IGZyb20gJ2xpdC1lbGVtZW50JztcbmltcG9ydCB7IGNhbklubGluZSwgY2FuR3JpZCB9IGZyb20gJy4uL2xpYi9zY2hlbWEtZm9ybSc7XG5pbXBvcnQgeyBjbGFzc01hcCB9IGZyb20gJ2xpdC1odG1sL2RpcmVjdGl2ZXMvY2xhc3MtbWFwJztcbmltcG9ydCB7IHNrZWxldG9uIH0gZnJvbSAnLi4vc3R5bGVzL3NrZWxldG9uJztcbmltcG9ydCAnLi4vbW9sZWN1bGVzL2d2LWV4cGFuZGFibGUnO1xuaW1wb3J0IHsgVXBkYXRlQWZ0ZXJCcm93c2VyIH0gZnJvbSAnLi4vbWl4aW5zL3VwZGF0ZS1hZnRlci1icm93c2VyJztcblxuLyoqXG4gKiBTY2hlbWEgZm9ybSBjb250cm9sIG9iamVjdCBjb21wb25lbnRcbiAqL1xuZXhwb3J0IGNsYXNzIEd2U2NoZW1hRm9ybUNvbnRyb2xPYmplY3QgZXh0ZW5kcyBVcGRhdGVBZnRlckJyb3dzZXIoTGl0RWxlbWVudCkge1xuICBzdGF0aWMgZ2V0IHByb3BlcnRpZXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNjaGVtYTogeyB0eXBlOiBPYmplY3QgfSxcbiAgICAgIHZhbHVlOiB7IHR5cGU6IE9iamVjdCwgcmVmbGVjdDogdHJ1ZSB9LFxuICAgICAgaWQ6IHsgdHlwZTogU3RyaW5nLCByZWZsZWN0OiB0cnVlIH0sXG4gICAgICB0aXRsZTogeyB0eXBlOiBTdHJpbmcsIHJlZmxlY3Q6IHRydWUgfSxcbiAgICAgIGVycm9yczogeyB0eXBlOiBBcnJheSB9LFxuICAgICAgc2tlbGV0b246IHsgdHlwZTogQm9vbGVhbiwgcmVmbGVjdDogdHJ1ZSB9LFxuICAgICAgcmVhZG9ubHk6IHsgdHlwZTogQm9vbGVhbiwgcmVmbGVjdDogdHJ1ZSB9LFxuICAgICAgZGlzYWJsZWQ6IHsgdHlwZTogQm9vbGVhbiwgcmVmbGVjdDogdHJ1ZSB9LFxuICAgICAgcmVxdWlyZWQ6IHsgdHlwZTogQm9vbGVhbiwgcmVmbGVjdDogdHJ1ZSB9LFxuICAgICAgaGlkZGVuOiB7IHR5cGU6IEJvb2xlYW4sIHJlZmxlY3Q6IHRydWUgfSxcbiAgICAgIGNvbXBhY3Q6IHsgdHlwZTogQm9vbGVhbiB9LFxuICAgIH07XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMudmFsdWUgPSBbXTtcbiAgfVxuXG4gIF9yZW5kZXJQYXJ0KHN1YktleSkge1xuICAgIGNvbnN0IGlzUmVxdWlyZWQgPSB0aGlzLnJlcXVpcmVkIHx8ICh0aGlzLnNjaGVtYS5yZXF1aXJlZCAmJiB0aGlzLnNjaGVtYS5yZXF1aXJlZC5pbmNsdWRlcyhzdWJLZXkpKTtcbiAgICBjb25zdCBpc0Rpc2FibGVkID0gdGhpcy5kaXNhYmxlZCB8fCAodGhpcy5zY2hlbWEuZGlzYWJsZWQgJiYgdGhpcy5zY2hlbWEuZGlzYWJsZWQuaW5jbHVkZXMoc3ViS2V5KSk7XG5cbiAgICBjb25zdCBmdWxsS2V5ID0gdGhpcy5pZCAhPSBudWxsID8gYCR7dGhpcy5pZH0uJHtzdWJLZXl9YCA6IHN1YktleTtcbiAgICBjb25zdCBjb250cm9sID0geyAuLi50aGlzLnNjaGVtYS5wcm9wZXJ0aWVzW3N1YktleV0gfTtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMudmFsdWUgIT0gbnVsbCA/IHRoaXMudmFsdWVbc3ViS2V5XSA6IG51bGw7XG4gICAgcmV0dXJuIGh0bWxgPGd2LXNjaGVtYS1mb3JtLWNvbnRyb2xcbiAgICAgIC5pZD1cIiR7ZnVsbEtleX1cIlxuICAgICAgLmNvbnRyb2w9XCIke2NvbnRyb2x9XCJcbiAgICAgIC52YWx1ZT1cIiR7dmFsdWV9XCJcbiAgICAgIC5za2VsZXRvbj1cIiR7dGhpcy5za2VsZXRvbn1cIlxuICAgICAgP3JlcXVpcmVkPVwiJHtpc1JlcXVpcmVkfVwiXG4gICAgICA/ZGlzYWJsZWQ9XCIke2lzRGlzYWJsZWR9XCJcbiAgICAgID9yZWFkb25seT1cIiR7dGhpcy5yZWFkb25seX1cIlxuICAgICAgP2hpZGRlbj1cIiR7dGhpcy5oaWRkZW59XCJcbiAgICAgIGNsYXNzPVwiY29udHJvbFwiXG4gICAgICA/Y29tcGFjdD1cIiR7dGhpcy5jb21wYWN0fVwiXG4gICAgPjwvZ3Ytc2NoZW1hLWZvcm0tY29udHJvbD5gO1xuICB9XG5cbiAgZ2V0Q29udHJvbHMoKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLkFycmF5LmZyb20odGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoJ2d2LXNjaGVtYS1mb3JtLWNvbnRyb2wnKSksXG4gICAgICAuLi5BcnJheS5mcm9tKHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCdndi1zY2hlbWEtZm9ybS1jb250cm9sLWFycmF5JykpLFxuICAgICAgLi4uQXJyYXkuZnJvbSh0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgnZ3Ytc2NoZW1hLWZvcm0tY29udHJvbC1vYmplY3QnKSksXG4gICAgXTtcbiAgfVxuXG4gIGdldENvbnRyb2woaWQpIHtcbiAgICByZXR1cm4gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoYFtpZD1cIiR7aWR9XCJdYCk7XG4gIH1cblxuICBhc3luYyBfZ2V0VXBkYXRlQ29tcGxldGUoKSB7XG4gICAgYXdhaXQgc3VwZXIuX2dldFVwZGF0ZUNvbXBsZXRlKCk7XG4gICAgYXdhaXQgUHJvbWlzZS5hbGwodGhpcy5nZXRDb250cm9scygpLm1hcCgoZSkgPT4gZS51cGRhdGVDb21wbGV0ZSkpO1xuICB9XG5cbiAgc2hvdWxkVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKSB7XG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnZXJyb3JzJykpIHtcbiAgICAgIHRoaXMuZ2V0Q29udHJvbHMoKS5mb3JFYWNoKChjb250cm9sKSA9PiB7XG4gICAgICAgIGNvbnRyb2wuZXJyb3JzID0gdGhpcy5lcnJvcnM7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHN1cGVyLnNob3VsZFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHRoaXMuc2NoZW1hLnByb3BlcnRpZXMpO1xuICAgIGNvbnN0IGlzR3JpZCA9IGNhbkdyaWQodGhpcy5zY2hlbWEpO1xuICAgIGNvbnN0IGNsYXNzZXMgPSB7XG4gICAgICAnZm9ybV9jb250cm9sLWlubGluZSc6IGNhbklubGluZSh0aGlzLnNjaGVtYSksXG4gICAgICAnZm9ybV9jb250cm9sLWdyaWQnOiBpc0dyaWQsXG4gICAgICAnZm9ybV9jb250cm9sLWdyaWQtb2RkJzogaXNHcmlkICYmIGtleXMubGVuZ3RoICUgMiAhPT0gMCxcbiAgICB9O1xuXG4gICAgY29uc3QgdGl0bGVDbGFzc2VzID0ge1xuICAgICAgJ2Zvcm1fX2NvbnRyb2wtZ3JvdXAtdGl0bGUnOiB0cnVlLFxuICAgICAgc2tlbGV0b246IHRoaXMuc2tlbGV0b24sXG4gICAgfTtcblxuICAgIGNvbnN0IGRldGFpbHMgPSBrZXlzLm1hcCgoa2V5KSA9PiB0aGlzLl9yZW5kZXJQYXJ0KGtleSkpO1xuXG4gICAgaWYgKHRoaXMudGl0bGUpIHtcbiAgICAgIGNvbnN0IG9wZW4gPSB0aGlzLnNjaGVtYVsneC1zY2hlbWEtZm9ybSddID09IG51bGwgfHwgdGhpcy5zY2hlbWFbJ3gtc2NoZW1hLWZvcm0nXS5vcGVuICE9PSBmYWxzZTtcbiAgICAgIHJldHVybiBodG1sYDxndi1leHBhbmRhYmxlID9vcGVuPVwiJHtvcGVufVwiPlxuICAgICAgICA8ZGl2IHNsb3Q9XCJzdW1tYXJ5XCIgY2xhc3M9XCIke2NsYXNzTWFwKHRpdGxlQ2xhc3Nlcyl9XCIgdGl0bGU9XCIke3RoaXMudGl0bGV9XCI+JHt0aGlzLnRpdGxlfTwvZGl2PlxuICAgICAgICA8ZGl2IHNsb3Q9XCJkZXRhaWxzXCIgY2xhc3M9XCIke2NsYXNzTWFwKGNsYXNzZXMpfVwiPiR7ZGV0YWlsc308L2Rpdj5cbiAgICAgIDwvZ3YtZXhwYW5kYWJsZT5gO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gaHRtbGA8ZGl2IGNsYXNzPVwiJHtjbGFzc01hcChjbGFzc2VzKX1cIj4ke2RldGFpbHN9PC9kaXY+YDtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgZ2V0IHN0eWxlcygpIHtcbiAgICByZXR1cm4gW1xuICAgICAgc2tlbGV0b24sXG4gICAgICAvLyBsYW5ndWFnZT1DU1NcbiAgICAgIGNzc2BcbiAgICAgICAgLmZvcm1fX2NvbnRyb2wtZ3JvdXAtdGl0bGUge1xuICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvcm1fY29udHJvbC1pbmxpbmUsXG4gICAgICAgIC5mb3JtX2NvbnRyb2wtZ3JpZCB7XG4gICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvcm1fY29udHJvbC1ncmlkLW9kZCAqOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICBncmlkLWNvbHVtbjogMSAvIDM7XG4gICAgICAgIH1cblxuICAgICAgICAuZm9ybV9jb250cm9sLWlubGluZSA+ICoge1xuICAgICAgICAgIC0tZ3Ytc2NoZW1hLWZvcm0tY29udHJvbC0tbTogMCAwLjJyZW0gMCAwO1xuICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvcm1fY29udHJvbC1pbmxpbmUgPiAqOmxhc3QtY2hpbGQge1xuICAgICAgICAgIC0tZ3Ytc2NoZW1hLWZvcm0tY29udHJvbC0tbTogMCAwIDAgMC4ycmVtO1xuICAgICAgICB9XG4gICAgICBgLFxuICAgIF07XG4gIH1cbn1cblxud2luZG93LmN1c3RvbUVsZW1lbnRzLmRlZmluZSgnZ3Ytc2NoZW1hLWZvcm0tY29udHJvbC1vYmplY3QnLCBHdlNjaGVtYUZvcm1Db250cm9sT2JqZWN0KTtcbiJdfQ==
140
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL29yZ2FuaXNtcy9ndi1zY2hlbWEtZm9ybS1jb250cm9sLW9iamVjdC5qcyJdLCJuYW1lcyI6WyJjc3MiLCJodG1sIiwiTGl0RWxlbWVudCIsImNhbklubGluZSIsImNhbkdyaWQiLCJjbGFzc01hcCIsInNrZWxldG9uIiwiVXBkYXRlQWZ0ZXJCcm93c2VyIiwiR3ZTY2hlbWFGb3JtQ29udHJvbE9iamVjdCIsInByb3BlcnRpZXMiLCJzY2hlbWEiLCJ0eXBlIiwiT2JqZWN0IiwidmFsdWUiLCJyZWZsZWN0IiwiaWQiLCJTdHJpbmciLCJ0aXRsZSIsImVycm9ycyIsIkFycmF5IiwiQm9vbGVhbiIsInJlYWRvbmx5IiwiZGlzYWJsZWQiLCJyZXF1aXJlZCIsImhpZGRlbiIsImNvbXBhY3QiLCJjb25zdHJ1Y3RvciIsIl9yZW5kZXJQYXJ0Iiwic3ViS2V5IiwiaXNSZXF1aXJlZCIsImluY2x1ZGVzIiwiaXNEaXNhYmxlZCIsImZ1bGxLZXkiLCJjb250cm9sIiwiZ2V0Q29udHJvbHMiLCJmcm9tIiwic2hhZG93Um9vdCIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJnZXRDb250cm9sIiwicXVlcnlTZWxlY3RvciIsImdldFVwZGF0ZUNvbXBsZXRlIiwiUHJvbWlzZSIsImFsbCIsIm1hcCIsImUiLCJ1cGRhdGVDb21wbGV0ZSIsInNob3VsZFVwZGF0ZSIsImNoYW5nZWRQcm9wZXJ0aWVzIiwiaGFzIiwiZm9yRWFjaCIsInJlbmRlciIsImtleXMiLCJpc0dyaWQiLCJjbGFzc2VzIiwibGVuZ3RoIiwidGl0bGVDbGFzc2VzIiwiZGV0YWlscyIsImtleSIsIm9wZW4iLCJzdHlsZXMiLCJ3aW5kb3ciLCJjdXN0b21FbGVtZW50cyIsImRlZmluZSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FB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RUw7QUFDQU4sSUFBQUEsR0FBRyxrVkFIRSxDQUFQO0FBNEJEOztBQTdIMkU7QUFnSTlFNEQsTUFBTSxDQUFDQyxjQUFQLENBQXNCQyxNQUF0QixDQUE2QiwrQkFBN0IsRUFBOER0RCx5QkFBOUQiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgY3NzLCBodG1sLCBMaXRFbGVtZW50IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGNhbklubGluZSwgY2FuR3JpZCB9IGZyb20gJy4uL2xpYi9zY2hlbWEtZm9ybSc7XG5pbXBvcnQgeyBjbGFzc01hcCB9IGZyb20gJ2xpdC9kaXJlY3RpdmVzL2NsYXNzLW1hcCc7XG5pbXBvcnQgeyBza2VsZXRvbiB9IGZyb20gJy4uL3N0eWxlcy9za2VsZXRvbic7XG5pbXBvcnQgJy4uL21vbGVjdWxlcy9ndi1leHBhbmRhYmxlJztcbmltcG9ydCB7IFVwZGF0ZUFmdGVyQnJvd3NlciB9IGZyb20gJy4uL21peGlucy91cGRhdGUtYWZ0ZXItYnJvd3Nlcic7XG5cbi8qKlxuICogU2NoZW1hIGZvcm0gY29udHJvbCBvYmplY3QgY29tcG9uZW50XG4gKi9cbmV4cG9ydCBjbGFzcyBHdlNjaGVtYUZvcm1Db250cm9sT2JqZWN0IGV4dGVuZHMgVXBkYXRlQWZ0ZXJCcm93c2VyKExpdEVsZW1lbnQpIHtcbiAgc3RhdGljIGdldCBwcm9wZXJ0aWVzKCkge1xuICAgIHJldHVybiB7XG4gICAgICBzY2hlbWE6IHsgdHlwZTogT2JqZWN0IH0sXG4gICAgICB2YWx1ZTogeyB0eXBlOiBPYmplY3QsIHJlZmxlY3Q6IHRydWUgfSxcbiAgICAgIGlkOiB7IHR5cGU6IFN0cmluZywgcmVmbGVjdDogdHJ1ZSB9LFxuICAgICAgdGl0bGU6IHsgdHlwZTogU3RyaW5nLCByZWZsZWN0OiB0cnVlIH0sXG4gICAgICBlcnJvcnM6IHsgdHlwZTogQXJyYXkgfSxcbiAgICAgIHNrZWxldG9uOiB7IHR5cGU6IEJvb2xlYW4sIHJlZmxlY3Q6IHRydWUgfSxcbiAgICAgIHJlYWRvbmx5OiB7IHR5cGU6IEJvb2xlYW4sIHJlZmxlY3Q6IHRydWUgfSxcbiAgICAgIGRpc2FibGVkOiB7IHR5cGU6IEJvb2xlYW4sIHJlZmxlY3Q6IHRydWUgfSxcbiAgICAgIHJlcXVpcmVkOiB7IHR5cGU6IEJvb2xlYW4sIHJlZmxlY3Q6IHRydWUgfSxcbiAgICAgIGhpZGRlbjogeyB0eXBlOiBCb29sZWFuLCByZWZsZWN0OiB0cnVlIH0sXG4gICAgICBjb21wYWN0OiB7IHR5cGU6IEJvb2xlYW4gfSxcbiAgICB9O1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnZhbHVlID0gW107XG4gIH1cblxuICBfcmVuZGVyUGFydChzdWJLZXkpIHtcbiAgICBjb25zdCBpc1JlcXVpcmVkID0gdGhpcy5yZXF1aXJlZCB8fCAodGhpcy5zY2hlbWEucmVxdWlyZWQgJiYgdGhpcy5zY2hlbWEucmVxdWlyZWQuaW5jbHVkZXMoc3ViS2V5KSk7XG4gICAgY29uc3QgaXNEaXNhYmxlZCA9IHRoaXMuZGlzYWJsZWQgfHwgKHRoaXMuc2NoZW1hLmRpc2FibGVkICYmIHRoaXMuc2NoZW1hLmRpc2FibGVkLmluY2x1ZGVzKHN1YktleSkpO1xuXG4gICAgY29uc3QgZnVsbEtleSA9IHRoaXMuaWQgIT0gbnVsbCA/IGAke3RoaXMuaWR9LiR7c3ViS2V5fWAgOiBzdWJLZXk7XG4gICAgY29uc3QgY29udHJvbCA9IHsgLi4udGhpcy5zY2hlbWEucHJvcGVydGllc1tzdWJLZXldIH07XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLnZhbHVlICE9IG51bGwgPyB0aGlzLnZhbHVlW3N1YktleV0gOiBudWxsO1xuICAgIHJldHVybiBodG1sYDxndi1zY2hlbWEtZm9ybS1jb250cm9sXG4gICAgICAuaWQ9XCIke2Z1bGxLZXl9XCJcbiAgICAgIC5jb250cm9sPVwiJHtjb250cm9sfVwiXG4gICAgICAudmFsdWU9XCIke3ZhbHVlfVwiXG4gICAgICAuc2tlbGV0b249XCIke3RoaXMuc2tlbGV0b259XCJcbiAgICAgID9yZXF1aXJlZD1cIiR7aXNSZXF1aXJlZH1cIlxuICAgICAgP2Rpc2FibGVkPVwiJHtpc0Rpc2FibGVkfVwiXG4gICAgICA/cmVhZG9ubHk9XCIke3RoaXMucmVhZG9ubHl9XCJcbiAgICAgID9oaWRkZW49XCIke3RoaXMuaGlkZGVufVwiXG4gICAgICBjbGFzcz1cImNvbnRyb2xcIlxuICAgICAgP2NvbXBhY3Q9XCIke3RoaXMuY29tcGFjdH1cIlxuICAgID48L2d2LXNjaGVtYS1mb3JtLWNvbnRyb2w+YDtcbiAgfVxuXG4gIGdldENvbnRyb2xzKCkge1xuICAgIHJldHVybiBbXG4gICAgICAuLi5BcnJheS5mcm9tKHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCdndi1zY2hlbWEtZm9ybS1jb250cm9sJykpLFxuICAgICAgLi4uQXJyYXkuZnJvbSh0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgnZ3Ytc2NoZW1hLWZvcm0tY29udHJvbC1hcnJheScpKSxcbiAgICAgIC4uLkFycmF5LmZyb20odGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoJ2d2LXNjaGVtYS1mb3JtLWNvbnRyb2wtb2JqZWN0JykpLFxuICAgIF07XG4gIH1cblxuICBnZXRDb250cm9sKGlkKSB7XG4gICAgcmV0dXJuIHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKGBbaWQ9XCIke2lkfVwiXWApO1xuICB9XG5cbiAgYXN5bmMgZ2V0VXBkYXRlQ29tcGxldGUoKSB7XG4gICAgYXdhaXQgc3VwZXIuZ2V0VXBkYXRlQ29tcGxldGUoKTtcbiAgICBhd2FpdCBQcm9taXNlLmFsbCh0aGlzLmdldENvbnRyb2xzKCkubWFwKChlKSA9PiBlLnVwZGF0ZUNvbXBsZXRlKSk7XG4gIH1cblxuICBzaG91bGRVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpIHtcbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdlcnJvcnMnKSkge1xuICAgICAgdGhpcy5nZXRDb250cm9scygpLmZvckVhY2goKGNvbnRyb2wpID0+IHtcbiAgICAgICAgY29udHJvbC5lcnJvcnMgPSB0aGlzLmVycm9ycztcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gc3VwZXIuc2hvdWxkVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXModGhpcy5zY2hlbWEucHJvcGVydGllcyk7XG4gICAgY29uc3QgaXNHcmlkID0gY2FuR3JpZCh0aGlzLnNjaGVtYSk7XG4gICAgY29uc3QgY2xhc3NlcyA9IHtcbiAgICAgICdmb3JtX2NvbnRyb2wtaW5saW5lJzogY2FuSW5saW5lKHRoaXMuc2NoZW1hKSxcbiAgICAgICdmb3JtX2NvbnRyb2wtZ3JpZCc6IGlzR3JpZCxcbiAgICAgICdmb3JtX2NvbnRyb2wtZ3JpZC1vZGQnOiBpc0dyaWQgJiYga2V5cy5sZW5ndGggJSAyICE9PSAwLFxuICAgIH07XG5cbiAgICBjb25zdCB0aXRsZUNsYXNzZXMgPSB7XG4gICAgICAnZm9ybV9fY29udHJvbC1ncm91cC10aXRsZSc6IHRydWUsXG4gICAgICBza2VsZXRvbjogdGhpcy5za2VsZXRvbixcbiAgICB9O1xuXG4gICAgY29uc3QgZGV0YWlscyA9IGtleXMubWFwKChrZXkpID0+IHRoaXMuX3JlbmRlclBhcnQoa2V5KSk7XG5cbiAgICBpZiAodGhpcy50aXRsZSkge1xuICAgICAgY29uc3Qgb3BlbiA9IHRoaXMuc2NoZW1hWyd4LXNjaGVtYS1mb3JtJ10gPT0gbnVsbCB8fCB0aGlzLnNjaGVtYVsneC1zY2hlbWEtZm9ybSddLm9wZW4gIT09IGZhbHNlO1xuICAgICAgcmV0dXJuIGh0bWxgPGd2LWV4cGFuZGFibGUgP29wZW49XCIke29wZW59XCI+XG4gICAgICAgIDxkaXYgc2xvdD1cInN1bW1hcnlcIiBjbGFzcz1cIiR7Y2xhc3NNYXAodGl0bGVDbGFzc2VzKX1cIiB0aXRsZT1cIiR7dGhpcy50aXRsZX1cIj4ke3RoaXMudGl0bGV9PC9kaXY+XG4gICAgICAgIDxkaXYgc2xvdD1cImRldGFpbHNcIiBjbGFzcz1cIiR7Y2xhc3NNYXAoY2xhc3Nlcyl9XCI+JHtkZXRhaWxzfTwvZGl2PlxuICAgICAgPC9ndi1leHBhbmRhYmxlPmA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBodG1sYDxkaXYgY2xhc3M9XCIke2NsYXNzTWFwKGNsYXNzZXMpfVwiPiR7ZGV0YWlsc308L2Rpdj5gO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBnZXQgc3R5bGVzKCkge1xuICAgIHJldHVybiBbXG4gICAgICBza2VsZXRvbixcbiAgICAgIC8vIGxhbmd1YWdlPUNTU1xuICAgICAgY3NzYFxuICAgICAgICAuZm9ybV9fY29udHJvbC1ncm91cC10aXRsZSB7XG4gICAgICAgICAgcGFkZGluZzogMC41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAuZm9ybV9jb250cm9sLWlubGluZSxcbiAgICAgICAgLmZvcm1fY29udHJvbC1ncmlkIHtcbiAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gICAgICAgIH1cblxuICAgICAgICAuZm9ybV9jb250cm9sLWdyaWQtb2RkICo6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgIGdyaWQtY29sdW1uOiAxIC8gMztcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtX2NvbnRyb2wtaW5saW5lID4gKiB7XG4gICAgICAgICAgLS1ndi1zY2hlbWEtZm9ybS1jb250cm9sLS1tOiAwIDAuMnJlbSAwIDA7XG4gICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAuZm9ybV9jb250cm9sLWlubGluZSA+ICo6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgLS1ndi1zY2hlbWEtZm9ybS1jb250cm9sLS1tOiAwIDAgMCAwLjJyZW07XG4gICAgICAgIH1cbiAgICAgIGAsXG4gICAgXTtcbiAgfVxufVxuXG53aW5kb3cuY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdndi1zY2hlbWEtZm9ybS1jb250cm9sLW9iamVjdCcsIEd2U2NoZW1hRm9ybUNvbnRyb2xPYmplY3QpO1xuIl19