@gravitee/ui-components 3.17.0 → 3.17.4

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 (89) hide show
  1. package/package.json +18 -24
  2. package/src/atoms/gv-autocomplete.js +6 -5
  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 +5 -4
  6. package/src/atoms/gv-date-picker-cell.js +4 -4
  7. package/src/atoms/gv-date-picker.js +5 -4
  8. package/src/atoms/gv-file-upload.js +5 -4
  9. package/src/atoms/gv-icon.js +7 -15
  10. package/src/atoms/gv-image.js +4 -4
  11. package/src/atoms/gv-input-message.js +3 -2
  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 +4 -6
  17. package/src/atoms/gv-select.js +5 -5
  18. package/src/atoms/gv-spinner.js +2 -2
  19. package/src/atoms/gv-state.js +3 -3
  20. package/src/atoms/gv-switch.js +4 -4
  21. package/src/atoms/gv-tag.js +3 -3
  22. package/src/atoms/gv-text.js +4 -4
  23. package/src/charts/gv-chart-bar.js +2 -2
  24. package/src/charts/gv-chart-gauge.js +2 -2
  25. package/src/charts/gv-chart-histogram.js +2 -2
  26. package/src/charts/gv-chart-line.js +2 -2
  27. package/src/charts/gv-chart-map.js +2 -2
  28. package/src/charts/gv-chart-pie.js +2 -2
  29. package/src/lib/item.js +2 -2
  30. package/src/lib/studio.js +3 -3
  31. package/src/mixins/chart-element.js +4 -3
  32. package/src/mixins/input-element.js +3 -3
  33. package/src/mixins/item-resource.js +3 -3
  34. package/src/mixins/with-skeleton-attribute.js +2 -2
  35. package/src/molecules/gv-card-full.js +3 -3
  36. package/src/molecules/gv-card-list.js +4 -3
  37. package/src/molecules/gv-card.js +3 -3
  38. package/src/molecules/gv-category-list.js +3 -2
  39. package/src/molecules/gv-category.js +3 -3
  40. package/src/molecules/gv-code-hint.js +2 -2
  41. package/src/molecules/gv-code.js +3 -3
  42. package/src/molecules/gv-confirm.js +3 -2
  43. package/src/molecules/gv-cron-editor.js +3 -3
  44. package/src/molecules/gv-dropdown-menu.js +3 -2
  45. package/src/molecules/gv-expandable.js +3 -3
  46. package/src/molecules/gv-expression-language.js +3 -2
  47. package/src/molecules/gv-identity-picture.js +4 -3
  48. package/src/molecules/gv-list.js +4 -4
  49. package/src/molecules/gv-metrics.js +4 -4
  50. package/src/molecules/gv-modal.js +2 -2
  51. package/src/molecules/gv-nav.js +5 -5
  52. package/src/molecules/gv-option.js +6 -6
  53. package/src/molecules/gv-plans.js +6 -5
  54. package/src/molecules/gv-popover.js +4 -3
  55. package/src/molecules/gv-promote.js +3 -3
  56. package/src/molecules/gv-rating-list.js +5 -4
  57. package/src/molecules/gv-rating.js +4 -4
  58. package/src/molecules/gv-row-expandable.js +2 -2
  59. package/src/molecules/gv-row.js +3 -3
  60. package/src/molecules/gv-stats.js +4 -4
  61. package/src/molecules/gv-stepper.js +4 -4
  62. package/src/molecules/gv-table.js +8 -7
  63. package/src/molecules/gv-tree.js +4 -4
  64. package/src/organisms/gv-documentation.js +2 -2
  65. package/src/organisms/gv-header.js +6 -6
  66. package/src/organisms/gv-http-client.js +2 -2
  67. package/src/organisms/gv-menu.js +3 -3
  68. package/src/organisms/gv-newsletter-subscription.js +2 -2
  69. package/src/organisms/gv-pagination.js +2 -2
  70. package/src/organisms/gv-properties.js +3 -3
  71. package/src/organisms/gv-resizable-views.js +4 -3
  72. package/src/organisms/gv-resources.js +2 -2
  73. package/src/organisms/gv-schema-form-array.js +3 -3
  74. package/src/organisms/gv-schema-form-control-object.js +3 -3
  75. package/src/organisms/gv-schema-form-control.js +3 -2
  76. package/src/organisms/gv-schema-form.js +3 -3
  77. package/src/organisms/gv-tabs.js +3 -2
  78. package/src/organisms/gv-user-menu.js +4 -4
  79. package/src/organisms/gv-vertical-menu.js +2 -2
  80. package/src/policy-studio/gv-flow-step.js +3 -3
  81. package/src/policy-studio/gv-flow.js +3 -3
  82. package/src/policy-studio/gv-policy-studio-menu.js +4 -4
  83. package/src/policy-studio/gv-policy-studio.js +3 -3
  84. package/src/styles/empty.js +2 -2
  85. package/src/styles/input.js +2 -2
  86. package/src/styles/link.js +2 -2
  87. package/src/styles/skeleton.js +2 -2
  88. package/src/styles/zoom.js +2 -2
  89. package/src/theme/gv-theme.js +2 -2
@@ -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';
16
+ import { css, html, LitElement } from 'lit-element';
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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QzlDLElBQVQsQ0FBY2tILFdBQWQsRUFBL0IsRUFBNERDLFFBQTVELENBQXFFLEtBQUt6RyxPQUExRSxDQUFQO0FBQ0QsS0FGRCxDQURKLEdBSUksS0FBS1gsU0FMWDtBQU9BLFdBQU9ULElBQUksd0xBS21ELEtBQUtTLFNBQUwsQ0FBZWlGLE1BTGxFLGlLQVlvQixLQUFLa0IsaUJBWnpCLHNCQWFvQixLQUFLQyxnQkFiekIsZ0dBbUJlRSxPQW5CZixhQW9CYVksaUJBcEJiLG1CQXFCbUIsS0FBS2xHLGFBckJ4Qix1QkFzQnVCLEtBQUsrRCxpQkF0QjVCLDhGQThCYyxLQUFLaUIsYUFBTCxFQTlCZCxxQ0FBWDtBQWlDRDs7QUFFZ0IsYUFBTnFCLE1BQU0sR0FBRztBQUNsQixXQUFPLENBQ0x4SCxLQURLLEVBRUw7QUFDQVAsSUFBQUEsR0FBRyxrakNBSEUsQ0FBUDtBQWlIRDs7QUFyZjBEO0FBd2Y3RGdJLE1BQU0sQ0FBQ0MsY0FBUCxDQUFzQkMsTUFBdEIsQ0FBNkIsY0FBN0IsRUFBNkMxSCxXQUE3QyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBjc3MsIGh0bWwsIExpdEVsZW1lbnQgfSBmcm9tICdsaXQnO1xuXG5pbXBvcnQgJy4vZ3Ytc2NoZW1hLWZvcm0nO1xuaW1wb3J0ICcuL2d2LXJlc2l6YWJsZS12aWV3cyc7XG5pbXBvcnQgJy4vZ3YtZG9jdW1lbnRhdGlvbic7XG5pbXBvcnQgJy4uL21vbGVjdWxlcy9ndi10YWJsZSc7XG5pbXBvcnQgJy4uL2F0b21zL2d2LWJ1dHRvbic7XG5pbXBvcnQgJy4uL21vbGVjdWxlcy9ndi1vcHRpb24nO1xuaW1wb3J0ICcuLi9hdG9tcy9ndi1zd2l0Y2gnO1xuaW1wb3J0ICcuLi9hdG9tcy9ndi1pY29uJztcbmltcG9ydCB7IGRpc3BhdGNoQ3VzdG9tRXZlbnQgfSBmcm9tICcuLi9saWIvZXZlbnRzJztcbmltcG9ydCB7IHV1aWQgfSBmcm9tICcuLi9saWIvdXRpbHMnO1xuaW1wb3J0IHsgS2V5Ym9hcmRFbGVtZW50LCBLRVlTIH0gZnJvbSAnLi4vbWl4aW5zL2tleWJvYXJkLWVsZW1lbnQnO1xuaW1wb3J0IHsgZW1wdHkgfSBmcm9tICcuLi9zdHlsZXMvZW1wdHknO1xuXG5leHBvcnQgY2xhc3MgR3ZSZXNvdXJjZXMgZXh0ZW5kcyBLZXlib2FyZEVsZW1lbnQoTGl0RWxlbWVudCkge1xuICBzdGF0aWMgZ2V0IHByb3BlcnRpZXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHJlc291cmNlczogeyB0eXBlOiBBcnJheSB9LFxuICAgICAgX3Jlc291cmNlczogeyB0eXBlOiBBcnJheSwgYXR0cmlidXRlOiBmYWxzZSB9LFxuICAgICAgdHlwZXM6IHsgdHlwZTogQXJyYXkgfSxcbiAgICAgIGRvY3VtZW50YXRpb246IHsgdHlwZTogT2JqZWN0IH0sXG4gICAgICBfY3VycmVudFJlc291cmNlOiB7IHR5cGU6IE9iamVjdCwgYXR0cmlidXRlOiBmYWxzZSB9LFxuICAgICAgX2N1cnJlbnRSZXNvdXJjZUxvYWRpbmc6IHsgdHlwZTogQm9vbGVhbiwgYXR0cmlidXRlOiBmYWxzZSB9LFxuICAgICAgX2ZpbHRlcjogeyB0eXBlOiBTdHJpbmcgfSxcbiAgICAgIHJlYWRvbmx5OiB7IHR5cGU6IEJvb2xlYW4sIHJlZmxlY3Q6IHRydWUgfSxcbiAgICB9O1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnJlc291cmNlcyA9IFtdO1xuICAgIHRoaXMudHlwZXMgPSBbXTtcbiAgICB0aGlzLl9jdXJyZW50UmVzb3VyY2UgPSBudWxsO1xuICAgIHRoaXMuX2VtcHR5bWVzc2FnZSA9ICdObyByZXNvdXJjZSc7XG4gIH1cblxuICBvbktleWJvYXJkKCkge1xuICAgIGlmICh0aGlzLmlzUHJlc3NlZChLRVlTLkVzYykpIHtcbiAgICAgIHRoaXMuX29uQ2FuY2VsUmVzb3VyY2VGb3JtKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmlzUHJlc3NlZChLRVlTLlNoaWZ0LCBLRVlTLkN0cmwsIEtFWVMuU3BhY2UpKSB7XG4gICAgICBjb25zdCBzZWFyY2ggPSB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignI3NlYXJjaC1yZXNvdXJjZScpO1xuICAgICAgaWYgKHNlYXJjaCkge1xuICAgICAgICBzZWFyY2guZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmaXJzdFVwZGF0ZWQoKSB7XG4gICAgY29uc3Qgdmlld3MgPSB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignZ3YtcmVzaXphYmxlLXZpZXdzJyk7XG4gICAgaWYgKHZpZXdzICE9IG51bGwpIHtcbiAgICAgIHZpZXdzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCkgPT4ge1xuICAgICAgICB0aGlzLl9tYXhpbWl6ZVRvcFZpZXcoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHNldCByZXNvdXJjZXMocmVzb3VyY2VzKSB7XG4gICAgdGhpcy5fcmVzb3VyY2VzID0gdGhpcy5fZ2VuZXJhdGVJZChyZXNvdXJjZXMpO1xuICB9XG5cbiAgZ2V0IHJlc291cmNlcygpIHtcbiAgICByZXR1cm4gdGhpcy5fcmVzb3VyY2VzO1xuICB9XG5cbiAgX2dlbmVyYXRlSWQobGlzdCkge1xuICAgIGlmIChsaXN0KSB7XG4gICAgICByZXR1cm4gbGlzdC5tYXAoKGUpID0+IHtcbiAgICAgICAgaWYgKGUuX2lkID09IG51bGwpIHtcbiAgICAgICAgICBlLl9pZCA9IHV1aWQoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gbGlzdDtcbiAgfVxuXG4gIF9nZXRSZXNpemFibGVWaWV3cygpIHtcbiAgICByZXR1cm4gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2d2LXJlc2l6YWJsZS12aWV3cycpO1xuICB9XG5cbiAgX21heGltaXplVG9wVmlldygpIHtcbiAgICB0aGlzLl9nZXRSZXNpemFibGVWaWV3cygpLnJlc2l6ZSg2MCwgNDApO1xuICB9XG5cbiAgX21heGltaXplQm90dG9tVmlldygpIHtcbiAgICB0aGlzLl9nZXRSZXNpemFibGVWaWV3cygpLm1heGltaXplQm90dG9tKCk7XG4gIH1cblxuICBfc3BsaXRNYWluVmlld3MoKSB7XG4gICAgdGhpcy5fZ2V0UmVzaXphYmxlVmlld3MoKS5zcGxpdCgpO1xuICB9XG5cbiAgX29uQ2FuY2VsUmVzb3VyY2VGb3JtKCkge1xuICAgIHRoaXMuX2N1cnJlbnRSZXNvdXJjZSA9IG51bGw7XG4gICAgdGhpcy5kb2N1bWVudGF0aW9uID0gbnVsbDtcbiAgICB0aGlzLl9tYXhpbWl6ZVRvcFZpZXcoKTtcbiAgfVxuXG4gIF9yZW1vdmVSZXNvdXJjZShpdGVtKSB7XG4gICAgdGhpcy5yZXNvdXJjZXMgPSB0aGlzLnJlc291cmNlcy5maWx0ZXIoKHJlc291cmNlKSA9PiByZXNvdXJjZS5faWQgIT09IGl0ZW0uX2lkKTtcbiAgICB0aGlzLl9vbkNhbmNlbFJlc291cmNlRm9ybSgpO1xuICAgIGRpc3BhdGNoQ3VzdG9tRXZlbnQodGhpcywgJ2NoYW5nZScsIHsgcmVzb3VyY2VzOiB0aGlzLnJlc291cmNlcyB9KTtcbiAgfVxuXG4gIF9idWlsZFJlc291cmNlU2NoZW1hKHJlc291cmNlVHlwZSkge1xuICAgIGNvbnN0IGRlZmF1bHRTY2hlbWEgPSB7XG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIG5hbWU6IHtcbiAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICB0aXRsZTogJ1Jlc291cmNlIG5hbWUnLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHJlcXVpcmVkOiBbJ25hbWUnXSxcbiAgICB9O1xuXG4gICAgY29uc3Qgc2NoZW1hID0gdHlwZW9mIHJlc291cmNlVHlwZS5zY2hlbWEgPT09ICdzdHJpbmcnID8gSlNPTi5wYXJzZShyZXNvdXJjZVR5cGUuc2NoZW1hKSA6IHJlc291cmNlVHlwZS5zY2hlbWE7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcHJvcGVydGllczogeyAuLi5kZWZhdWx0U2NoZW1hLnByb3BlcnRpZXMsIC4uLnNjaGVtYS5wcm9wZXJ0aWVzIH0sXG4gICAgICByZXF1aXJlZDogWy4uLmRlZmF1bHRTY2hlbWEucmVxdWlyZWQsIC4uLnNjaGVtYS5yZXF1aXJlZF0sXG4gICAgfTtcbiAgfVxuXG4gIF9vbkNyZWF0ZVJlc291cmNlKHsgZGV0YWlsIH0pIHtcbiAgICB0aGlzLl9jdXJyZW50UmVzb3VyY2VMb2FkaW5nID0gdHJ1ZTtcbiAgICBjb25zdCBkZWZhdWx0UmVzb3VyY2VUeXBlID0gdGhpcy50eXBlcy5maW5kKCh0eXBlKSA9PiB0eXBlLmlkID09PSBkZXRhaWwuaWQpO1xuICAgIGNvbnN0IHNjaGVtYSA9IHRoaXMuX2J1aWxkUmVzb3VyY2VTY2hlbWEoZGVmYXVsdFJlc291cmNlVHlwZSk7XG4gICAgdGhpcy5fY3VycmVudFJlc291cmNlID0ge1xuICAgICAgdHlwZTogZGVmYXVsdFJlc291cmNlVHlwZS5pZCxcbiAgICAgIHRpdGxlOiAnQ3JlYXRlIHJlc291cmNlJyxcbiAgICAgIGljb246ICdjb2RlOnBsdXMnLFxuICAgICAgc2NoZW1hLFxuICAgICAgdmFsdWVzOiB7fSxcbiAgICAgIHN1Ym1pdExhYmVsOiAnQWRkJyxcbiAgICAgIGRpcnR5OiB0cnVlLFxuICAgIH07XG4gICAgdGhpcy5fbWF4aW1pemVCb3R0b21WaWV3KCk7XG4gICAgdGhpcy5fb25GZXRjaERvY3VtZW50YXRpb24oKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+ICh0aGlzLl9jdXJyZW50UmVzb3VyY2VMb2FkaW5nID0gZmFsc2UpLCA2MDApO1xuICB9XG5cbiAgX29uU3VibWl0UmVzb3VyY2VGb3JtKHsgZGV0YWlsIH0pIHtcbiAgICBkZWxldGUgdGhpcy5fY3VycmVudFJlc291cmNlLl92YWx1ZXM7XG4gICAgY29uc3QgeyB0eXBlIH0gPSB0aGlzLl9jdXJyZW50UmVzb3VyY2U7XG4gICAgY29uc3QgeyBfaWQsIG5hbWUsIC4uLmNvbmZpZ3VyYXRpb24gfSA9IGRldGFpbC52YWx1ZXM7XG5cbiAgICBjb25zdCByZXNvdXJjZSA9IHtcbiAgICAgIF9pZCxcbiAgICAgIHR5cGUsXG4gICAgICBuYW1lLFxuICAgICAgY29uZmlndXJhdGlvbixcbiAgICB9O1xuXG4gICAgaWYgKGRldGFpbC52YWx1ZXMuX2lkICE9IG51bGwpIHtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5yZXNvdXJjZXMuZmluZEluZGV4KChyKSA9PiByLl9pZCA9PT0gcmVzb3VyY2UuX2lkKTtcbiAgICAgIHRoaXMucmVzb3VyY2VzW2luZGV4XSA9IHsgLi4udGhpcy5yZXNvdXJjZXNbaW5kZXhdLCAuLi5yZXNvdXJjZSB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5yZXNvdXJjZXMgPT0gbnVsbCkge1xuICAgICAgICB0aGlzLnJlc291cmNlcyA9IFtdO1xuICAgICAgfVxuICAgICAgcmVzb3VyY2UuX2lkID0gdXVpZCgpO1xuICAgICAgcmVzb3VyY2UuZW5hYmxlZCA9IHRydWU7XG4gICAgICB0aGlzLnJlc291cmNlcy5wdXNoKHJlc291cmNlKTtcbiAgICB9XG4gICAgdGhpcy5fb25DYW5jZWxSZXNvdXJjZUZvcm0oKTtcbiAgICBkaXNwYXRjaEN1c3RvbUV2ZW50KHRoaXMsICdjaGFuZ2UnLCB7IHJlc291cmNlczogdGhpcy5yZXNvdXJjZXMgfSk7XG4gIH1cblxuICBfb25DaGFuZ2VSZXNvdXJjZUZvcm0oeyBkZXRhaWwgfSkge1xuICAgIHRoaXMuX2N1cnJlbnRSZXNvdXJjZS5fdmFsdWVzID0gZGV0YWlsLnZhbHVlcztcbiAgfVxuXG4gIF9vblJlc2V0UmVzb3VyY2VGb3JtKCkge1xuICAgIGRlbGV0ZSB0aGlzLl9jdXJyZW50UmVzb3VyY2UuX3ZhbHVlcztcbiAgfVxuXG4gIF9maW5kUmVzb3VyY2VCeUlkKGlkKSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZXMuZmluZCgocmVzb3VyY2UpID0+IHJlc291cmNlLmlkID09PSBpZCk7XG4gIH1cblxuICAvLyBGb3IgcmVhZG9ubHkgbW9kZVxuICBfb25TZWxlY3RSZXNvdXJjZSh7IGRldGFpbDogeyBpdGVtcyB9IH0pIHtcbiAgICBpZiAoaXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5fb25FZGl0UmVzb3VyY2UoaXRlbXNbMF0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9vbkNhbmNlbFJlc291cmNlRm9ybSgpO1xuICAgIH1cbiAgfVxuXG4gIF9vbkVkaXRSZXNvdXJjZShyZXNvdXJjZSkge1xuICAgIGNvbnN0IHZhbHVlcyA9IHsgLi4ucmVzb3VyY2UsIC4uLnJlc291cmNlLmNvbmZpZ3VyYXRpb24gfTtcbiAgICBkZWxldGUgdmFsdWVzLmNvbmZpZ3VyYXRpb247XG4gICAgY29uc3QgcmVzb3VyY2VUeXBlID0gdGhpcy5fZmluZFJlc291cmNlQnlJZChyZXNvdXJjZS50eXBlKTtcbiAgICB0aGlzLl9jdXJyZW50UmVzb3VyY2UgPSB7XG4gICAgICBfaWQ6IHJlc291cmNlLl9pZCxcbiAgICAgIHRpdGxlOiAnUmVzb3VyY2UgY29uZmlndXJhdGlvbicsXG4gICAgICB0eXBlOiByZXNvdXJjZS50eXBlLFxuICAgICAgaWNvbjogJ2Rlc2lnbjplZGl0JyxcbiAgICAgIHNjaGVtYTogdGhpcy5fYnVpbGRSZXNvdXJjZVNjaGVtYShyZXNvdXJjZVR5cGUpLFxuICAgICAgdmFsdWVzLFxuICAgICAgc3VibWl0TGFiZWw6ICdVcGRhdGUnLFxuICAgIH07XG4gICAgdGhpcy5fc3BsaXRNYWluVmlld3MoKTtcbiAgICB0aGlzLl9vbkZldGNoRG9jdW1lbnRhdGlvbigpO1xuICB9XG5cbiAgX29uQ2xvc2VEb2N1bWVudGF0aW9uKCkge1xuICAgIHRoaXMuZG9jdW1lbnRhdGlvbiA9IG51bGw7XG4gIH1cblxuICBfZ2V0Q3VycmVudFJlc291cmNlVHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fY3VycmVudFJlc291cmNlID8gdGhpcy5fZmluZFJlc291cmNlQnlJZCh0aGlzLl9jdXJyZW50UmVzb3VyY2UudHlwZSkgOiBudWxsO1xuICB9XG5cbiAgX29uRmV0Y2hEb2N1bWVudGF0aW9uKCkge1xuICAgIGRpc3BhdGNoQ3VzdG9tRXZlbnQodGhpcywgJ2ZldGNoLWRvY3VtZW50YXRpb24nLCB7IHRhcmdldDogdGhpcywgcmVzb3VyY2VUeXBlOiB0aGlzLl9nZXRDdXJyZW50UmVzb3VyY2VUeXBlKCkgfSk7XG4gIH1cblxuICBnZXQgZGlydHkoKSB7XG4gICAgY29uc3QgZm9ybSA9IHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdndi1zY2hlbWEtZm9ybScpO1xuICAgIHJldHVybiBmb3JtICYmIGZvcm0uZGlydHk7XG4gIH1cblxuICBjb25maXJtKCkge1xuICAgIGNvbnN0IGZvcm0gPSB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignZ3Ytc2NoZW1hLWZvcm0nKTtcbiAgICBpZiAoZm9ybSkge1xuICAgICAgcmV0dXJuIGZvcm0uY29uZmlybSgpLnRoZW4oKCkgPT4gdGhpcy5fb25DYW5jZWxSZXNvdXJjZUZvcm0oKSk7XG4gICAgfVxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgfVxuXG4gIF9vbkNoYW5nZVJlc291cmNlU3RhdGUoaXRlbSwgZXZlbnQpIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMucmVzb3VyY2VzLmZpbmQoKHIpID0+IHIuX2lkID09PSBpdGVtLl9pZCk7XG4gICAgdGhpcy5yZXNvdXJjZXNbaW5kZXhdID0geyAuLi50aGlzLnJlc291cmNlc1tpbmRleF0sIGVuYWJsZWQ6IGl0ZW0uZW5hYmxlZCB9O1xuICAgIGRpc3BhdGNoQ3VzdG9tRXZlbnQodGhpcywgJ2NoYW5nZScsIHsgcmVzb3VyY2VzOiB0aGlzLnJlc291cmNlcyB9KTtcbiAgfVxuXG4gIF9yZW5kZXJGb3JtKCkge1xuICAgIGNvbnN0IHZhbHVlcyA9IHsgLi4udGhpcy5fY3VycmVudFJlc291cmNlLnZhbHVlcywgLi4udGhpcy5fY3VycmVudFJlc291cmNlLl92YWx1ZXMgfTtcbiAgICByZXR1cm4gaHRtbGA8Z3Ytc2NoZW1hLWZvcm1cbiAgICAgIHNjcm9sbGFibGVcbiAgICAgIC5zY2hlbWE9XCIke3RoaXMuX2N1cnJlbnRSZXNvdXJjZS5zY2hlbWF9XCJcbiAgICAgIC52YWx1ZXM9XCIke3ZhbHVlc31cIlxuICAgICAgc3VibWl0TGFiZWw9XCIke3RoaXMuX2N1cnJlbnRSZXNvdXJjZS5zdWJtaXRMYWJlbH1cIlxuICAgICAgaGFzLWhlYWRlclxuICAgICAgLmljb249XCIke3RoaXMuX2N1cnJlbnRSZXNvdXJjZS5pY29ufVwiXG4gICAgICB2YWxpZGF0ZS1vbi1yZW5kZXJcbiAgICAgIC5kaXJ0eT1cIiR7dGhpcy5fY3VycmVudFJlc291cmNlLmRpcnR5IHx8IHRoaXMuX2N1cnJlbnRSZXNvdXJjZS5fdmFsdWVzICE9IG51bGx9XCJcbiAgICAgID9yZWFkb25seT1cIiR7dGhpcy5yZWFkb25seX1cIlxuICAgICAgQGd2LXNjaGVtYS1mb3JtOmNoYW5nZT1cIiR7dGhpcy5fb25DaGFuZ2VSZXNvdXJjZUZvcm19XCJcbiAgICAgIEBndi1zY2hlbWEtZm9ybTpyZXNldD1cIiR7dGhpcy5fb25SZXNldFJlc291cmNlRm9ybX1cIlxuICAgICAgQGd2LXNjaGVtYS1mb3JtOnN1Ym1pdD1cIiR7dGhpcy5fb25TdWJtaXRSZXNvdXJjZUZvcm19XCJcbiAgICA+XG4gICAgICA8ZGl2IHNsb3Q9XCJ0aXRsZVwiIGNsYXNzPVwiZm9ybS10aXRsZVwiPiR7dGhpcy5fY3VycmVudFJlc291cmNlLnRpdGxlfTwvZGl2PlxuICAgICAgPGd2LWJ1dHRvblxuICAgICAgICBzbG90PVwiaGVhZGVyLWxlZnRcIlxuICAgICAgICBpY29uPVwiZ2VuZXJhbDpjbG9zZVwiXG4gICAgICAgIG91dGxpbmVkXG4gICAgICAgIHNtYWxsXG4gICAgICAgIEBndi1idXR0b246Y2xpY2s9XCIke3RoaXMuX29uQ2FuY2VsUmVzb3VyY2VGb3JtfVwiXG4gICAgICAgIHRpdGxlPVwiQ2xvc2UgKGVzYylcIlxuICAgICAgPjwvZ3YtYnV0dG9uPlxuICAgICAgPGd2LWJ1dHRvblxuICAgICAgICBzbG90PVwiaGVhZGVyLWxlZnRcIlxuICAgICAgICBpY29uPVwiaG9tZTpib29rXCJcbiAgICAgICAgP2Rpc2FibGVkPVwiJHt0aGlzLmRvY3VtZW50YXRpb24gIT0gbnVsbH1cIlxuICAgICAgICBvdXRsaW5lZFxuICAgICAgICBzbWFsbFxuICAgICAgICBAZ3YtYnV0dG9uOmNsaWNrPVwiJHt0aGlzLl9vbkZldGNoRG9jdW1lbnRhdGlvbn1cIlxuICAgICAgICB0aXRsZT1cIk9wZW4gZG9jdW1lbnRhdGlvblwiXG4gICAgICA+PC9ndi1idXR0b24+XG4gICAgPC9ndi1zY2hlbWEtZm9ybT5gO1xuICB9XG5cbiAgX3JlbmRlckRvYygpIHtcbiAgICByZXR1cm4gaHRtbGA8Z3YtZG9jdW1lbnRhdGlvblxuICAgICAgLnRleHQ9XCIke3RoaXMuZG9jdW1lbnRhdGlvbi5jb250ZW50fVwiXG4gICAgICAuaW1hZ2U9XCIke3RoaXMuZG9jdW1lbnRhdGlvbi5pbWFnZX1cIlxuICAgICAgQGd2LWRvY3VtZW50YXRpb246Y2xvc2U9XCIke3RoaXMuX29uQ2xvc2VEb2N1bWVudGF0aW9ufVwiXG4gICAgPjwvZ3YtZG9jdW1lbnRhdGlvbj5gO1xuICB9XG5cbiAgX3JlbmRlckJvdHRvbSgpIHtcbiAgICBpZiAodGhpcy5kb2N1bWVudGF0aW9uICYmIHRoaXMuX2N1cnJlbnRSZXNvdXJjZSkge1xuICAgICAgcmV0dXJuIGh0bWxgIDxndi1yZXNpemFibGUtdmlld3MgZGlyZWN0aW9uPVwiaG9yaXpvbnRhbFwiIG5vLW92ZXJmbG93PlxuICAgICAgICA8ZGl2IHNsb3Q9XCJ0b3BcIj4ke3RoaXMuX3JlbmRlckZvcm0oKX08L2Rpdj5cbiAgICAgICAgPGRpdiBzbG90PVwiYm90dG9tXCI+JHt0aGlzLl9yZW5kZXJEb2MoKX08L2Rpdj5cbiAgICAgIDwvZ3YtcmVzaXphYmxlLXZpZXdzPmA7XG4gICAgfSBlbHNlIGlmICh0aGlzLl9jdXJyZW50UmVzb3VyY2UpIHtcbiAgICAgIHJldHVybiB0aGlzLl9yZW5kZXJGb3JtKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmRvY3VtZW50YXRpb24pIHtcbiAgICAgIHJldHVybiB0aGlzLl9yZW5kZXJEb2MoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucmVhZG9ubHkgIT09IHRydWUpIHtcbiAgICAgIGNvbnN0IHJlc291cmNlT3B0cyA9IHRoaXMudHlwZXMubWFwKChyZXNvdXJjZSkgPT4ge1xuICAgICAgICByZXR1cm4geyBpZDogcmVzb3VyY2UuaWQsIHRpdGxlOiByZXNvdXJjZS5uYW1lLCBkZXNjcmlwdGlvbjogcmVzb3VyY2UuZGVzY3JpcHRpb24sIGltYWdlOiByZXNvdXJjZS5pY29uIH07XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIGh0bWxgPGRpdiBjbGFzcz1cInJlc291cmNlcy1ib3R0b20tY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8Z3Ytb3B0aW9uIGNsYXNzPVwicmVzb3VyY2VfX29wdGlvblwiIC5vcHRpb25zPVwiJHtyZXNvdXJjZU9wdHN9XCIgQGd2LW9wdGlvbjpzZWxlY3Q9XCIke3RoaXMuX29uQ3JlYXRlUmVzb3VyY2V9XCI+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5gO1xuICAgIH0gZWxzZSBpZiAodGhpcy5yZWFkb25seSAmJiB0aGlzLnJlc291cmNlcy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gaHRtbGA8ZGl2IGNsYXNzPVwicmVzb3VyY2VzLWJvdHRvbS1jb250YWluZXIgZW1wdHlcIj5Zb3UgY2FuIHNlZSB0aGUgcmVzb3VyY2UgY29uZmlndXJhdGlvbiBieSBjbGlja2luZyBvbiBpdDwvZGl2PmA7XG4gICAgfVxuICB9XG5cbiAgX29uU2VhcmNoUmVzb3VyY2UoeyBkZXRhaWwgfSkge1xuICAgIHRoaXMuX2ZpbHRlciA9IGRldGFpbDtcbiAgfVxuXG4gIF9vbkNsZWFyUmVzb3VyY2UoKSB7XG4gICAgdGhpcy5fZmlsdGVyID0gbnVsbDtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgc2VsZWN0YWJsZTogdHJ1ZSxcbiAgICAgIGRhdGE6IFtcbiAgICAgICAgeyBmaWVsZDogJ25hbWUnLCBsYWJlbDogJ05hbWUnIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBmaWVsZDogJ3R5cGUnLFxuICAgICAgICAgIHdpZHRoOiAnNTBweCcsXG4gICAgICAgICAgdHlwZTogJ2d2LWltYWdlJyxcbiAgICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgICBzcmM6IChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHJlc291cmNlVHlwZSA9IHRoaXMuX2ZpbmRSZXNvdXJjZUJ5SWQoaXRlbS50eXBlKTtcbiAgICAgICAgICAgICAgcmV0dXJuIHJlc291cmNlVHlwZSA/IHJlc291cmNlVHlwZS5pY29uIDogbnVsbDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzdHlsZTogJ3dpZHRoOjQwcHg7aGVpZ2h0OjQwcHg7JyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB7IGZpZWxkOiAndHlwZScsIGxhYmVsOiAnVHlwZScgfSxcbiAgICAgICAge1xuICAgICAgICAgIGZpZWxkOiAnZW5hYmxlZCcsXG4gICAgICAgICAgdHlwZTogJ2d2LXN3aXRjaCcsXG4gICAgICAgICAgdGl0bGU6IChpdGVtKSA9PiAoaXRlbS5lbmFibGVkID8gJ0NsaWNrIHRvIGRpc2FibGUnIDogJ0NsaWNrIHRvIGVuYWJsZScpLFxuICAgICAgICAgIHdpZHRoOiAnNTBweCcsXG4gICAgICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICAgICAgcmVhZG9ubHk6IHRoaXMucmVhZG9ubHksXG4gICAgICAgICAgICAnb25ndi1zd2l0Y2g6aW5wdXQnOiAoaXRlbSwgZXZlbnQpID0+IHRoaXMuX29uQ2hhbmdlUmVzb3VyY2VTdGF0ZShpdGVtLCBldmVudCksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfTtcblxuICAgIGlmICh0aGlzLnJlYWRvbmx5ICE9PSB0cnVlKSB7XG4gICAgICBvcHRpb25zLmRhdGEucHVzaCh7XG4gICAgICAgIHR5cGU6ICdndi1idXR0b24nLFxuICAgICAgICB3aWR0aDogJzUwcHgnLFxuICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgb25DbGljazogKGl0ZW0pID0+IHRoaXMuX3JlbW92ZVJlc291cmNlKGl0ZW0pLFxuICAgICAgICAgIHRpdGxlOiAncmVtb3ZlJyxcbiAgICAgICAgICBkYW5nZXI6IHRydWUsXG4gICAgICAgICAgb3V0bGluZWQ6IHRydWUsXG4gICAgICAgICAgaWNvbjogJ2hvbWU6dHJhc2gnLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgZmlsdGVyZWRSZXNvdXJjZXMgPVxuICAgICAgdGhpcy5fZmlsdGVyICE9IG51bGxcbiAgICAgICAgPyB0aGlzLnJlc291cmNlcy5maWx0ZXIoKHJlc291cmNlKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gKHJlc291cmNlLm5hbWUudG9Mb3dlckNhc2UoKSArIHJlc291cmNlLnR5cGUudG9Mb3dlckNhc2UoKSkuaW5jbHVkZXModGhpcy5fZmlsdGVyKTtcbiAgICAgICAgICB9KVxuICAgICAgICA6IHRoaXMucmVzb3VyY2VzO1xuXG4gICAgcmV0dXJuIGh0bWxgPGRpdiBjbGFzcz1cInJlc291cmNlc1wiPlxuICAgICAgPGd2LXJlc2l6YWJsZS12aWV3cyBuby1vdmVyZmxvdz5cbiAgICAgICAgPGRpdiBzbG90PVwidG9wXCIgY2xhc3M9XCJib3hcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPk1hbmFnZSBnbG9iYWwgcmVzb3VyY2VzIDxzcGFuPigke3RoaXMucmVzb3VyY2VzLmxlbmd0aH0pPC9zcGFuPjwvZGl2PlxuICAgICAgICAgICAgICA8Z3YtaW5wdXRcbiAgICAgICAgICAgICAgICBpZD1cInNlYXJjaC1yZXNvdXJjZVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzZWFyY2gtaW5wdXRcIlxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRmlsdGVyIHJlc291cmNlcyAoU2hpZnQgKyBDdHJsICsgU3BhY2UpXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwic2VhcmNoXCJcbiAgICAgICAgICAgICAgICBzbWFsbFxuICAgICAgICAgICAgICAgIEBndi1pbnB1dDppbnB1dD1cIiR7dGhpcy5fb25TZWFyY2hSZXNvdXJjZX1cIlxuICAgICAgICAgICAgICAgIEBndi1pbnB1dDpjbGVhcj1cIiR7dGhpcy5fb25DbGVhclJlc291cmNlfVwiXG4gICAgICAgICAgICAgID48L2d2LWlucHV0PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgPGd2LXRhYmxlXG4gICAgICAgICAgICAgICAgICAub3B0aW9ucz1cIiR7b3B0aW9uc31cIlxuICAgICAgICAgICAgICAgICAgLml0ZW1zPVwiJHtmaWx0ZXJlZFJlc291cmNlc31cIlxuICAgICAgICAgICAgICAgICAgZW1wdHltZXNzYWdlPVwiJHt0aGlzLl9lbXB0eW1lc3NhZ2V9XCJcbiAgICAgICAgICAgICAgICAgIEBndi10YWJsZTpzZWxlY3Q9XCIke3RoaXMuX29uU2VsZWN0UmVzb3VyY2V9XCJcbiAgICAgICAgICAgICAgICAgIG9yZGVyPVwibmFtZVwiXG4gICAgICAgICAgICAgICAgICByb3doZWlnaHQ9XCI1MHB4XCJcbiAgICAgICAgICAgICAgICA+PC9ndi10YWJsZT5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgc2xvdD1cImJvdHRvbVwiPiR7dGhpcy5fcmVuZGVyQm90dG9tKCl9PC9kaXY+XG4gICAgICA8L2d2LXJlc2l6YWJsZS12aWV3cz5cbiAgICA8L2Rpdj5gO1xuICB9XG5cbiAgc3RhdGljIGdldCBzdHlsZXMoKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIGVtcHR5LFxuICAgICAgLy8gbGFuZ3VhZ2U9Q1NTXG4gICAgICBjc3NgXG4gICAgICAgIDpob3N0IHtcbiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIC5yZXNvdXJjZXMge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgZ3YtcmVzaXphYmxlLXZpZXdzIHtcbiAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBndi10YWJsZSB7XG4gICAgICAgICAgLS1ndi10YWJsZS1yb3dzLS1vdjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5oZWFkZXIge1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZDlkOWQ5O1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgbWluLWhlaWdodDogNDVweDtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgICBwYWRkaW5nOiAwIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5oZWFkZXIgLnRpdGxlIHtcbiAgICAgICAgICBjb2xvcjogIzI4NDQ0ZjtcbiAgICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgICAgZmxleDogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5oZWFkZXIgLnRpdGxlIHNwYW4ge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogOHB4O1xuICAgICAgICAgIG9wYWNpdHk6IDAuNztcbiAgICAgICAgfVxuXG4gICAgICAgIC5ib3gge1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNvbnRhaW5lciB7XG4gICAgICAgICAgZmxleC1ncm93OiAxO1xuXG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICAgLyogZm9yIEZpcmVmb3ggKi9cbiAgICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jb250ZW50IHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICAgICAgICBmbGV4LWdyb3c6IDE7XG5cbiAgICAgICAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICAgICAgIC8qIGZvciBGaXJlZm94ICovXG4gICAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtLXRpdGxlIHtcbiAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAucmVzb3VyY2VzLWJvdHRvbS1jb250YWluZXIge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAudGFibGUtY29udGFpbmVyIHtcbiAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAuc2VhcmNoLWlucHV0IHtcbiAgICAgICAgICB3aWR0aDogMzAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAucmVzb3VyY2VfX29wdGlvbiB7XG4gICAgICAgICAgLS1ndi1vcHRpb24tYnV0dG9uLS1tYXc6IDE3NXB4O1xuICAgICAgICB9XG4gICAgICBgLFxuICAgIF07XG4gIH1cbn1cblxud2luZG93LmN1c3RvbUVsZW1lbnRzLmRlZmluZSgnZ3YtcmVzb3VyY2VzJywgR3ZSZXNvdXJjZXMpO1xuIl19
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=
@@ -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';
16
+ import { css, html, LitElement } from 'lit-element';
17
17
  import { dispatchCustomEvent } from '../lib/events';
18
- import { classMap } from 'lit/directives/class-map';
18
+ import { classMap } from 'lit-html/directives/class-map';
19
19
  import { skeleton } from '../styles/skeleton';
20
20
  /**
21
21
  * Schema form array component
@@ -129,4 +129,4 @@ export class GvSchemaFormArray extends LitElement {
129
129
 
130
130
  }
131
131
  window.customElements.define('gv-schema-form-array', GvSchemaFormArray);
132
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL29yZ2FuaXNtcy9ndi1zY2hlbWEtZm9ybS1hcnJheS5qcyJdLCJuYW1lcyI6WyJjc3MiLCJodG1sIiwiTGl0RWxlbWVudCIsImRpc3BhdGNoQ3VzdG9tRXZlbnQiLCJjbGFzc01hcCIsInNrZWxldG9uIiwiR3ZTY2hlbWFGb3JtQXJyYXkiLCJwcm9wZXJ0aWVzIiwic2NoZW1hIiwidHlwZSIsIk9iamVjdCIsInZhbHVlIiwiQXJyYXkiLCJpZCIsIlN0cmluZyIsInJlZmxlY3QiLCJ0aXRsZSIsIkJvb2xlYW4iLCJlcnJvcnMiLCJyZWFkb25seSIsImNvbnN0cnVjdG9yIiwiX29uTmV3IiwibmV3VmFsdWUiLCJfb25SZW1vdmUiLCJpbmRleCIsInNwbGljZSIsImZpbHRlciIsImUiLCJfcmVuZGVyVmFsdWUiLCJpc1JlcXVpcmVkIiwicmVxdWlyZWQiLCJpc0Rpc2FibGVkIiwiZGlzYWJsZWQiLCJjb250cm9sIiwiX29uTW91c2VMZWF2ZSIsImJpbmQiLCJzZWxlY3QiLCJzaGFkb3dSb290IiwicXVlcnlTZWxlY3RvckFsbCIsImZvckVhY2giLCJzIiwiY2xvc2UiLCJnZXRDb250cm9scyIsImZyb20iLCJnZXRDb250cm9sIiwicXVlcnlTZWxlY3RvciIsIl9nZXRVcGRhdGVDb21wbGV0ZSIsIlByb21pc2UiLCJhbGwiLCJtYXAiLCJ1cGRhdGVDb21wbGV0ZSIsInNob3VsZFVwZGF0ZSIsImNoYW5nZWRQcm9wZXJ0aWVzIiwiaGFzIiwicmVuZGVyIiwibGVuZ3RoIiwiaXNBcnJheSIsInN0eWxlcyIsIndpbmRvdyIsImN1c3RvbUVsZW1lbnRzIiwiZGVmaW5lIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSxHQUFULEVBQWNDLElBQWQsRUFBb0JDLFVBQXBC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QXJEIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoQykgMjAxNSBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7IGNzcywgaHRtbCwgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB7IGRpc3BhdGNoQ3VzdG9tRXZlbnQgfSBmcm9tICcuLi9saWIvZXZlbnRzJztcbmltcG9ydCB7IGNsYXNzTWFwIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvY2xhc3MtbWFwJztcbmltcG9ydCB7IHNrZWxldG9uIH0gZnJvbSAnLi4vc3R5bGVzL3NrZWxldG9uJztcblxuLyoqXG4gKiBTY2hlbWEgZm9ybSBhcnJheSBjb21wb25lbnRcbiAqXG4gKi9cbmV4cG9ydCBjbGFzcyBHdlNjaGVtYUZvcm1BcnJheSBleHRlbmRzIExpdEVsZW1lbnQge1xuICBzdGF0aWMgZ2V0IHByb3BlcnRpZXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNjaGVtYTogeyB0eXBlOiBPYmplY3QgfSxcbiAgICAgIHZhbHVlOiB7IHR5cGU6IEFycmF5IH0sXG4gICAgICBpZDogeyB0eXBlOiBTdHJpbmcsIHJlZmxlY3Q6IHRydWUgfSxcbiAgICAgIHRpdGxlOiB7IHR5cGU6IFN0cmluZywgcmVmbGVjdDogdHJ1ZSB9LFxuICAgICAgc2tlbGV0b246IHsgdHlwZTogQm9vbGVhbiwgcmVmbGVjdDogdHJ1ZSB9LFxuICAgICAgZXJyb3JzOiB7IHR5cGU6IEFycmF5IH0sXG4gICAgICByZWFkb25seTogeyB0eXBlOiBCb29sZWFuLCByZWZsZWN0OiB0cnVlIH0sXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy52YWx1ZSA9IFtdO1xuICB9XG5cbiAgX29uTmV3KCkge1xuICAgIGNvbnN0IG5ld1ZhbHVlID0gdGhpcy5zY2hlbWEudHlwZSA9PT0gJ29iamVjdCcgPyB7fSA6ICcnO1xuICAgIHRoaXMudmFsdWUgPSBbLi4udGhpcy52YWx1ZSwgbmV3VmFsdWVdO1xuICAgIGRpc3BhdGNoQ3VzdG9tRXZlbnQodGhpcywgJ2lucHV0JywgdGhpcy52YWx1ZSk7XG4gIH1cblxuICBfb25SZW1vdmUoaW5kZXgpIHtcbiAgICB0aGlzLnZhbHVlLnNwbGljZShpbmRleCwgMSwgbnVsbCk7XG4gICAgdGhpcy52YWx1ZSA9IHRoaXMudmFsdWUuZmlsdGVyKChlKSA9PiBlICE9IG51bGwpO1xuICAgIGRpc3BhdGNoQ3VzdG9tRXZlbnQodGhpcywgJ2lucHV0JywgdGhpcy52YWx1ZSk7XG4gIH1cblxuICBfcmVuZGVyVmFsdWUodmFsdWUsIGluZGV4KSB7XG4gICAgY29uc3QgaXNSZXF1aXJlZCA9IHRoaXMuc2NoZW1hLnJlcXVpcmVkO1xuICAgIGNvbnN0IGlzRGlzYWJsZWQgPSB0aGlzLnNjaGVtYS5kaXNhYmxlZDtcbiAgICBjb25zdCBpZCA9IGAke3RoaXMuaWR9LiR7aW5kZXh9YDtcbiAgICBjb25zdCBjb250cm9sID0geyAuLi50aGlzLnNjaGVtYSwgdGl0bGU6IG51bGwgfTtcbiAgICByZXR1cm4gaHRtbGA8ZGl2IGNsYXNzPVwiZm9ybV9faXRlbVwiIEBtb3VzZWxlYXZlPVwiJHt0aGlzLl9vbk1vdXNlTGVhdmV9XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiJHtjbGFzc01hcCh7ICdmb3JtX19pdGVtLWxhYmVsJzogdHJ1ZSwgc2tlbGV0b246IHRoaXMuc2tlbGV0b24gfSl9XCI+XG4gICAgICAgIDxsYWJlbD4ke3RoaXMuc2NoZW1hLnRpdGxlfTwvbGFiZWw+XG4gICAgICAgICR7dGhpcy5yZWFkb25seSAhPT0gdHJ1ZVxuICAgICAgICAgID8gaHRtbGA8Z3YtYnV0dG9uXG4gICAgICAgICAgICAgIGxpbmtcbiAgICAgICAgICAgICAgc21hbGxcbiAgICAgICAgICAgICAgQGd2LWJ1dHRvbjpjbGljaz1cIiR7dGhpcy5fb25SZW1vdmUuYmluZCh0aGlzLCBpbmRleCl9XCJcbiAgICAgICAgICAgICAgaWNvbj1cImdlbmVyYWw6Y2xvc2VcIlxuICAgICAgICAgICAgICB0aXRsZT1cIlJlbW92ZVwiXG4gICAgICAgICAgICA+PC9ndi1idXR0b24+YFxuICAgICAgICAgIDogJyd9XG4gICAgICA8L2Rpdj5cbiAgICAgIDxndi1zY2hlbWEtZm9ybS1jb250cm9sXG4gICAgICAgIC5pZD1cIiR7aWR9XCJcbiAgICAgICAgLnNrZWxldG9uPVwiJHt0aGlzLnNrZWxldG9ufVwiXG4gICAgICAgIC5jb250cm9sPVwiJHtjb250cm9sfVwiXG4gICAgICAgIC52YWx1ZT1cIiR7dmFsdWV9XCJcbiAgICAgICAgP3JlcXVpcmVkPVwiJHtpc1JlcXVpcmVkfVwiXG4gICAgICAgID9kaXNhYmxlZD1cIiR7aXNEaXNhYmxlZH1cIlxuICAgICAgICA/cmVhZG9ubHk9XCIke3RoaXMucmVhZG9ubHl9XCJcbiAgICAgID48L2d2LXNjaGVtYS1mb3JtLWNvbnRyb2w+XG4gICAgPC9kaXY+IGA7XG4gIH1cblxuICBfb25Nb3VzZUxlYXZlKCkge1xuICAgIGNvbnN0IHNlbGVjdCA9IHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKGBndi1zZWxlY3RgKTtcbiAgICBzZWxlY3QuZm9yRWFjaCgocykgPT4gcy5jbG9zZSgpKTtcbiAgfVxuXG4gIGdldENvbnRyb2xzKCkge1xuICAgIHJldHVybiBbXG4gICAgICAuLi5BcnJheS5mcm9tKHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCdndi1zY2hlbWEtZm9ybS1jb250cm9sJykpLFxuICAgICAgLi4uQXJyYXkuZnJvbSh0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgnZ3Ytc2NoZW1hLWZvcm0tY29udHJvbC1hcnJheScpKSxcbiAgICAgIC4uLkFycmF5LmZyb20odGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoJ2d2LXNjaGVtYS1mb3JtLWNvbnRyb2wtb2JqZWN0JykpLFxuICAgIF07XG4gIH1cblxuICBnZXRDb250cm9sKGlkKSB7XG4gICAgcmV0dXJuIHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKGBbaWQ9XCIke2lkfVwiXWApO1xuICB9XG5cbiAgYXN5bmMgX2dldFVwZGF0ZUNvbXBsZXRlKCkge1xuICAgIGF3YWl0IHN1cGVyLl9nZXRVcGRhdGVDb21wbGV0ZSgpO1xuICAgIGF3YWl0IFByb21pc2UuYWxsKHRoaXMuZ2V0Q29udHJvbHMoKS5tYXAoKGUpID0+IGUudXBkYXRlQ29tcGxldGUpKTtcbiAgfVxuXG4gIHNob3VsZFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcykge1xuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2Vycm9ycycpKSB7XG4gICAgICB0aGlzLmdldENvbnRyb2xzKCkuZm9yRWFjaCgoY29udHJvbCkgPT4ge1xuICAgICAgICBjb250cm9sLmVycm9ycyA9IHRoaXMuZXJyb3JzO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBzdXBlci5zaG91bGRVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGlmICh0aGlzLnNjaGVtYSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gaHRtbGBgO1xuICAgIH1cbiAgICByZXR1cm4gaHRtbGA8ZGl2IGNsYXNzPVwiZm9ybV9fY29udHJvbC1hcnJheVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImZvcm1fX2l0ZW0tZ3JvdXBcIiBpZD1cIiR7dGhpcy5pZH1cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIiR7Y2xhc3NNYXAoeyAnZm9ybV9faXRlbS1ncm91cC1oZWFkZXInOiB0cnVlLCBza2VsZXRvbjogdGhpcy5za2VsZXRvbiB9KX1cIj5cbiAgICAgICAgICA8bGFiZWw+PHNwYW4+JHt0aGlzLnRpdGxlIHx8IHRoaXMuaWR9PC9zcGFuPjxzcGFuIGNsYXNzPVwiZm9ybV9faXRlbS1sZW5ndGhcIj4oJHt0aGlzLnZhbHVlLmxlbmd0aH0pPC9zcGFuPjwvbGFiZWw+XG4gICAgICAgICAgJHt0aGlzLnJlYWRvbmx5ICE9PSB0cnVlXG4gICAgICAgICAgICA/IGh0bWxgPGd2LWJ1dHRvbiBvdXRsaW5lZCBzbWFsbCBpY29uPVwiY29kZTpwbHVzXCIgQGd2LWJ1dHRvbjpjbGljaz1cIiR7dGhpcy5fb25OZXd9XCI+TmV3ICR7dGhpcy5zY2hlbWEudGl0bGV9PC9ndi1idXR0b24+YFxuICAgICAgICAgICAgOiAnJ31cbiAgICAgICAgPC9kaXY+XG4gICAgICAgICR7dGhpcy52YWx1ZSAhPSBudWxsICYmIEFycmF5LmlzQXJyYXkodGhpcy52YWx1ZSkgPyB0aGlzLnZhbHVlLm1hcCgodmFsdWUsIGluZGV4KSA9PiB0aGlzLl9yZW5kZXJWYWx1ZSh2YWx1ZSwgaW5kZXgpKSA6ICcnfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+YDtcbiAgfVxuXG4gIHN0YXRpYyBnZXQgc3R5bGVzKCkge1xuICAgIHJldHVybiBbXG4gICAgICBza2VsZXRvbixcbiAgICAgIC8vIGxhbmd1YWdlPUNTU1xuICAgICAgY3NzYFxuICAgICAgICAuZm9ybV9faXRlbS1sZW5ndGgge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgICBjb2xvcjogI2JmYmZiZjtcbiAgICAgICAgICBtYXJnaW46IDAgMC4ycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvcm1fX2l0ZW0tZ3JvdXAge1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtX19pdGVtLWdyb3VwOmhvdmVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWZlZmVmO1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvcm1fX2l0ZW0tZ3JvdXAtaGVhZGVyOmJlZm9yZSxcbiAgICAgICAgLmZvcm1fX2l0ZW0tZ3JvdXAtaGVhZGVyOmFmdGVyIHtcbiAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMzVweCk7XG4gICAgICAgICAgYm9yZGVyLWxlZnQ6IDNweCBkb3R0ZWQgI2Q5ZDlkOTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtX19pdGVtLWdyb3VwLXJlcXVpcmVkID4gLmZvcm1fX2l0ZW0tZ3JvdXAtaGVhZGVyOmJlZm9yZSxcbiAgICAgICAgLmZvcm1fX2l0ZW0tZ3JvdXAtcmVxdWlyZWQgPiAuZm9ybV9faXRlbS1ncm91cC1oZWFkZXI6YWZ0ZXIge1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZ3YtdGhlbWUtY29sb3ItZXJyb3ItZGFyaywgI2QzMmYyZik7XG4gICAgICAgIH1cblxuICAgICAgICAuZm9ybV9faXRlbS1ncm91cC1oZWFkZXI6YmVmb3JlIHtcbiAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvcm1fX2l0ZW0tZ3JvdXAtaGVhZGVyOmFmdGVyIHtcbiAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtX19pdGVtLWdyb3VwLWhlYWRlciB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4ycmVtO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMnJlbTtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UtaW4tb3V0O1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvcm1fX2l0ZW0tZ3JvdXAtaGVhZGVyIGxhYmVsIHtcbiAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtX19pdGVtLWdyb3VwLWhlYWRlcixcbiAgICAgICAgLmZvcm1fX2l0ZW0tZ3JvdXAge1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZDlkOWQ5O1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvcm1fX2l0ZW0ge1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkOWQ5ZDk7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UtaW4tb3V0O1xuICAgICAgICAgIHotaW5kZXg6IDUwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvcm1fX2l0ZW06aG92ZXIge1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDEwcHggMjBweCAtMTBweCAjYmZiZmJmO1xuICAgICAgICAgIHotaW5kZXg6IDYwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvcm1fX2l0ZW0tbGFiZWwge1xuICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkOWQ5ZDk7XG4gICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvcm1fX2l0ZW0tbGFiZWwgPiBsYWJlbCB7XG4gICAgICAgICAgZmxleDogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtX19pdGVtIC5mb3JtX2NvbnRyb2wtaW5saW5lID4gKiB7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAuZm9ybV9faXRlbSAuZm9ybV9jb250cm9sLWlubGluZSA+ICo6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cbiAgICAgIGAsXG4gICAgXTtcbiAgfVxufVxuXG53aW5kb3cuY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdndi1zY2hlbWEtZm9ybS1hcnJheScsIEd2U2NoZW1hRm9ybUFycmF5KTtcbiJdfQ==
132
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL29yZ2FuaXNtcy9ndi1zY2hlbWEtZm9ybS1hcnJheS5qcyJdLCJuYW1lcyI6WyJjc3MiLCJodG1sIiwiTGl0RWxlbWVudCIsImRpc3BhdGNoQ3VzdG9tRXZlbnQiLCJjbGFzc01hcCIsInNrZWxldG9uIiwiR3ZTY2hlbWFGb3JtQXJyYXkiLCJwcm9wZXJ0aWVzIiwic2NoZW1hIiwidHlwZSIsIk9iamVjdCIsInZhbHVlIiwiQXJyYXkiLCJpZCIsIlN0cmluZyIsInJlZmxlY3QiLCJ0aXRsZSIsIkJvb2xlYW4iLCJlcnJvcnMiLCJyZWFkb25seSIsImNvbnN0cnVjdG9yIiwiX29uTmV3IiwibmV3VmFsdWUiLCJfb25SZW1vdmUiLCJpbmRleCIsInNwbGljZSIsImZpbHRlciIsImUiLCJfcmVuZGVyVmFsdWUiLCJpc1JlcXVpcmVkIiwicmVxdWlyZWQiLCJpc0Rpc2FibGVkIiwiZGlzYWJsZWQiLCJjb250cm9sIiwiX29uTW91c2VMZWF2ZSIsImJpbmQiLCJzZWxlY3QiLCJzaGFkb3dSb290IiwicXVlcnlTZWxlY3RvckFsbCIsImZvckVhY2giLCJzIiwiY2xvc2UiLCJnZXRDb250cm9scyIsImZyb20iLCJnZXRDb250cm9sIiwicXVlcnlTZWxlY3RvciIsIl9nZXRVcGRhdGVDb21wbGV0ZSIsIlByb21pc2UiLCJhbGwiLCJtYXAiLCJ1cGRhdGVDb21wbGV0ZSIsInNob3VsZFVwZGF0ZSIsImNoYW5nZWRQcm9wZXJ0aWVzIiwiaGFzIiwicmVuZGVyIiwibGVuZ3RoIiwiaXNBcnJheSIsInN0eWxlcyIsIndpbmRvdyIsImN1c3RvbUVsZW1lbnRzIiwiZGVmaW5lIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSxHQUFULEVBQWNDLElBQWQsRUFBb0JDLFVBQXBC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QXJEIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoQykgMjAxNSBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7IGNzcywgaHRtbCwgTGl0RWxlbWVudCB9IGZyb20gJ2xpdC1lbGVtZW50JztcblxuaW1wb3J0IHsgZGlzcGF0Y2hDdXN0b21FdmVudCB9IGZyb20gJy4uL2xpYi9ldmVudHMnO1xuaW1wb3J0IHsgY2xhc3NNYXAgfSBmcm9tICdsaXQtaHRtbC9kaXJlY3RpdmVzL2NsYXNzLW1hcCc7XG5pbXBvcnQgeyBza2VsZXRvbiB9IGZyb20gJy4uL3N0eWxlcy9za2VsZXRvbic7XG5cbi8qKlxuICogU2NoZW1hIGZvcm0gYXJyYXkgY29tcG9uZW50XG4gKlxuICovXG5leHBvcnQgY2xhc3MgR3ZTY2hlbWFGb3JtQXJyYXkgZXh0ZW5kcyBMaXRFbGVtZW50IHtcbiAgc3RhdGljIGdldCBwcm9wZXJ0aWVzKCkge1xuICAgIHJldHVybiB7XG4gICAgICBzY2hlbWE6IHsgdHlwZTogT2JqZWN0IH0sXG4gICAgICB2YWx1ZTogeyB0eXBlOiBBcnJheSB9LFxuICAgICAgaWQ6IHsgdHlwZTogU3RyaW5nLCByZWZsZWN0OiB0cnVlIH0sXG4gICAgICB0aXRsZTogeyB0eXBlOiBTdHJpbmcsIHJlZmxlY3Q6IHRydWUgfSxcbiAgICAgIHNrZWxldG9uOiB7IHR5cGU6IEJvb2xlYW4sIHJlZmxlY3Q6IHRydWUgfSxcbiAgICAgIGVycm9yczogeyB0eXBlOiBBcnJheSB9LFxuICAgICAgcmVhZG9ubHk6IHsgdHlwZTogQm9vbGVhbiwgcmVmbGVjdDogdHJ1ZSB9LFxuICAgIH07XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMudmFsdWUgPSBbXTtcbiAgfVxuXG4gIF9vbk5ldygpIHtcbiAgICBjb25zdCBuZXdWYWx1ZSA9IHRoaXMuc2NoZW1hLnR5cGUgPT09ICdvYmplY3QnID8ge30gOiAnJztcbiAgICB0aGlzLnZhbHVlID0gWy4uLnRoaXMudmFsdWUsIG5ld1ZhbHVlXTtcbiAgICBkaXNwYXRjaEN1c3RvbUV2ZW50KHRoaXMsICdpbnB1dCcsIHRoaXMudmFsdWUpO1xuICB9XG5cbiAgX29uUmVtb3ZlKGluZGV4KSB7XG4gICAgdGhpcy52YWx1ZS5zcGxpY2UoaW5kZXgsIDEsIG51bGwpO1xuICAgIHRoaXMudmFsdWUgPSB0aGlzLnZhbHVlLmZpbHRlcigoZSkgPT4gZSAhPSBudWxsKTtcbiAgICBkaXNwYXRjaEN1c3RvbUV2ZW50KHRoaXMsICdpbnB1dCcsIHRoaXMudmFsdWUpO1xuICB9XG5cbiAgX3JlbmRlclZhbHVlKHZhbHVlLCBpbmRleCkge1xuICAgIGNvbnN0IGlzUmVxdWlyZWQgPSB0aGlzLnNjaGVtYS5yZXF1aXJlZDtcbiAgICBjb25zdCBpc0Rpc2FibGVkID0gdGhpcy5zY2hlbWEuZGlzYWJsZWQ7XG4gICAgY29uc3QgaWQgPSBgJHt0aGlzLmlkfS4ke2luZGV4fWA7XG4gICAgY29uc3QgY29udHJvbCA9IHsgLi4udGhpcy5zY2hlbWEsIHRpdGxlOiBudWxsIH07XG4gICAgcmV0dXJuIGh0bWxgPGRpdiBjbGFzcz1cImZvcm1fX2l0ZW1cIiBAbW91c2VsZWF2ZT1cIiR7dGhpcy5fb25Nb3VzZUxlYXZlfVwiPlxuICAgICAgPGRpdiBjbGFzcz1cIiR7Y2xhc3NNYXAoeyAnZm9ybV9faXRlbS1sYWJlbCc6IHRydWUsIHNrZWxldG9uOiB0aGlzLnNrZWxldG9uIH0pfVwiPlxuICAgICAgICA8bGFiZWw+JHt0aGlzLnNjaGVtYS50aXRsZX08L2xhYmVsPlxuICAgICAgICAke3RoaXMucmVhZG9ubHkgIT09IHRydWVcbiAgICAgICAgICA/IGh0bWxgPGd2LWJ1dHRvblxuICAgICAgICAgICAgICBsaW5rXG4gICAgICAgICAgICAgIHNtYWxsXG4gICAgICAgICAgICAgIEBndi1idXR0b246Y2xpY2s9XCIke3RoaXMuX29uUmVtb3ZlLmJpbmQodGhpcywgaW5kZXgpfVwiXG4gICAgICAgICAgICAgIGljb249XCJnZW5lcmFsOmNsb3NlXCJcbiAgICAgICAgICAgICAgdGl0bGU9XCJSZW1vdmVcIlxuICAgICAgICAgICAgPjwvZ3YtYnV0dG9uPmBcbiAgICAgICAgICA6ICcnfVxuICAgICAgPC9kaXY+XG4gICAgICA8Z3Ytc2NoZW1hLWZvcm0tY29udHJvbFxuICAgICAgICAuaWQ9XCIke2lkfVwiXG4gICAgICAgIC5za2VsZXRvbj1cIiR7dGhpcy5za2VsZXRvbn1cIlxuICAgICAgICAuY29udHJvbD1cIiR7Y29udHJvbH1cIlxuICAgICAgICAudmFsdWU9XCIke3ZhbHVlfVwiXG4gICAgICAgID9yZXF1aXJlZD1cIiR7aXNSZXF1aXJlZH1cIlxuICAgICAgICA/ZGlzYWJsZWQ9XCIke2lzRGlzYWJsZWR9XCJcbiAgICAgICAgP3JlYWRvbmx5PVwiJHt0aGlzLnJlYWRvbmx5fVwiXG4gICAgICA+PC9ndi1zY2hlbWEtZm9ybS1jb250cm9sPlxuICAgIDwvZGl2PiBgO1xuICB9XG5cbiAgX29uTW91c2VMZWF2ZSgpIHtcbiAgICBjb25zdCBzZWxlY3QgPSB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbChgZ3Ytc2VsZWN0YCk7XG4gICAgc2VsZWN0LmZvckVhY2goKHMpID0+IHMuY2xvc2UoKSk7XG4gIH1cblxuICBnZXRDb250cm9scygpIHtcbiAgICByZXR1cm4gW1xuICAgICAgLi4uQXJyYXkuZnJvbSh0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgnZ3Ytc2NoZW1hLWZvcm0tY29udHJvbCcpKSxcbiAgICAgIC4uLkFycmF5LmZyb20odGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoJ2d2LXNjaGVtYS1mb3JtLWNvbnRyb2wtYXJyYXknKSksXG4gICAgICAuLi5BcnJheS5mcm9tKHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCdndi1zY2hlbWEtZm9ybS1jb250cm9sLW9iamVjdCcpKSxcbiAgICBdO1xuICB9XG5cbiAgZ2V0Q29udHJvbChpZCkge1xuICAgIHJldHVybiB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihgW2lkPVwiJHtpZH1cIl1gKTtcbiAgfVxuXG4gIGFzeW5jIF9nZXRVcGRhdGVDb21wbGV0ZSgpIHtcbiAgICBhd2FpdCBzdXBlci5fZ2V0VXBkYXRlQ29tcGxldGUoKTtcbiAgICBhd2FpdCBQcm9taXNlLmFsbCh0aGlzLmdldENvbnRyb2xzKCkubWFwKChlKSA9PiBlLnVwZGF0ZUNvbXBsZXRlKSk7XG4gIH1cblxuICBzaG91bGRVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpIHtcbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdlcnJvcnMnKSkge1xuICAgICAgdGhpcy5nZXRDb250cm9scygpLmZvckVhY2goKGNvbnRyb2wpID0+IHtcbiAgICAgICAgY29udHJvbC5lcnJvcnMgPSB0aGlzLmVycm9ycztcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gc3VwZXIuc2hvdWxkVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBpZiAodGhpcy5zY2hlbWEgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIGh0bWxgYDtcbiAgICB9XG4gICAgcmV0dXJuIGh0bWxgPGRpdiBjbGFzcz1cImZvcm1fX2NvbnRyb2wtYXJyYXlcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtX19pdGVtLWdyb3VwXCIgaWQ9XCIke3RoaXMuaWR9XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCIke2NsYXNzTWFwKHsgJ2Zvcm1fX2l0ZW0tZ3JvdXAtaGVhZGVyJzogdHJ1ZSwgc2tlbGV0b246IHRoaXMuc2tlbGV0b24gfSl9XCI+XG4gICAgICAgICAgPGxhYmVsPjxzcGFuPiR7dGhpcy50aXRsZSB8fCB0aGlzLmlkfTwvc3Bhbj48c3BhbiBjbGFzcz1cImZvcm1fX2l0ZW0tbGVuZ3RoXCI+KCR7dGhpcy52YWx1ZS5sZW5ndGh9KTwvc3Bhbj48L2xhYmVsPlxuICAgICAgICAgICR7dGhpcy5yZWFkb25seSAhPT0gdHJ1ZVxuICAgICAgICAgICAgPyBodG1sYDxndi1idXR0b24gb3V0bGluZWQgc21hbGwgaWNvbj1cImNvZGU6cGx1c1wiIEBndi1idXR0b246Y2xpY2s9XCIke3RoaXMuX29uTmV3fVwiPk5ldyAke3RoaXMuc2NoZW1hLnRpdGxlfTwvZ3YtYnV0dG9uPmBcbiAgICAgICAgICAgIDogJyd9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICAke3RoaXMudmFsdWUgIT0gbnVsbCAmJiBBcnJheS5pc0FycmF5KHRoaXMudmFsdWUpID8gdGhpcy52YWx1ZS5tYXAoKHZhbHVlLCBpbmRleCkgPT4gdGhpcy5fcmVuZGVyVmFsdWUodmFsdWUsIGluZGV4KSkgOiAnJ31cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PmA7XG4gIH1cblxuICBzdGF0aWMgZ2V0IHN0eWxlcygpIHtcbiAgICByZXR1cm4gW1xuICAgICAgc2tlbGV0b24sXG4gICAgICAvLyBsYW5ndWFnZT1DU1NcbiAgICAgIGNzc2BcbiAgICAgICAgLmZvcm1fX2l0ZW0tbGVuZ3RoIHtcbiAgICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgICAgY29sb3I6ICNiZmJmYmY7XG4gICAgICAgICAgbWFyZ2luOiAwIDAuMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtX19pdGVtLWdyb3VwIHtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQ7XG4gICAgICAgIH1cblxuICAgICAgICAuZm9ybV9faXRlbS1ncm91cDpob3ZlciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2VmZWZlZjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtX19pdGVtLWdyb3VwLWhlYWRlcjpiZWZvcmUsXG4gICAgICAgIC5mb3JtX19pdGVtLWdyb3VwLWhlYWRlcjphZnRlciB7XG4gICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDM1cHgpO1xuICAgICAgICAgIGJvcmRlci1sZWZ0OiAzcHggZG90dGVkICNkOWQ5ZDk7XG4gICAgICAgIH1cblxuICAgICAgICAuZm9ybV9faXRlbS1ncm91cC1yZXF1aXJlZCA+IC5mb3JtX19pdGVtLWdyb3VwLWhlYWRlcjpiZWZvcmUsXG4gICAgICAgIC5mb3JtX19pdGVtLWdyb3VwLXJlcXVpcmVkID4gLmZvcm1fX2l0ZW0tZ3JvdXAtaGVhZGVyOmFmdGVyIHtcbiAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWd2LXRoZW1lLWNvbG9yLWVycm9yLWRhcmssICNkMzJmMmYpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvcm1fX2l0ZW0tZ3JvdXAtaGVhZGVyOmJlZm9yZSB7XG4gICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtX19pdGVtLWdyb3VwLWhlYWRlcjphZnRlciB7XG4gICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAuZm9ybV9faXRlbS1ncm91cC1oZWFkZXIge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMnJlbTtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjJyZW07XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtX19pdGVtLWdyb3VwLWhlYWRlciBsYWJlbCB7XG4gICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAuZm9ybV9faXRlbS1ncm91cC1oZWFkZXIsXG4gICAgICAgIC5mb3JtX19pdGVtLWdyb3VwIHtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2Q5ZDlkOTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtX19pdGVtIHtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZDlkOWQ5O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDtcbiAgICAgICAgICB6LWluZGV4OiA1MDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtX19pdGVtOmhvdmVyIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDIwcHggLTEwcHggI2JmYmZiZjtcbiAgICAgICAgICB6LWluZGV4OiA2MDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtX19pdGVtLWxhYmVsIHtcbiAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZDlkOWQ5O1xuICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtX19pdGVtLWxhYmVsID4gbGFiZWwge1xuICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAuZm9ybV9faXRlbSAuZm9ybV9jb250cm9sLWlubGluZSA+ICoge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvcm1fX2l0ZW0gLmZvcm1fY29udHJvbC1pbmxpbmUgPiAqOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG4gICAgICBgLFxuICAgIF07XG4gIH1cbn1cblxud2luZG93LmN1c3RvbUVsZW1lbnRzLmRlZmluZSgnZ3Ytc2NoZW1hLWZvcm0tYXJyYXknLCBHdlNjaGVtYUZvcm1BcnJheSk7XG4iXX0=
@@ -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';
16
+ import { css, html, LitElement } from 'lit-element';
17
17
  import { isCodemirror } from '../lib/schema-form';
18
- import { classMap } from 'lit/directives/class-map';
18
+ import { classMap } from 'lit-html/directives/class-map';
19
19
  import { skeleton } from '../styles/skeleton';
20
20
  /**
21
21
  * Schema form control object component
@@ -111,4 +111,4 @@ export class GvSchemaFormControlObject extends LitElement {
111
111
 
112
112
  }
113
113
  window.customElements.define('gv-schema-form-control-object', GvSchemaFormControlObject);
114
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL29yZ2FuaXNtcy9ndi1zY2hlbWEtZm9ybS1jb250cm9sLW9iamVjdC5qcyJdLCJuYW1lcyI6WyJjc3MiLCJodG1sIiwiTGl0RWxlbWVudCIsImlzQ29kZW1pcnJvciIsImNsYXNzTWFwIiwic2tlbGV0b24iLCJHdlNjaGVtYUZvcm1Db250cm9sT2JqZWN0IiwicHJvcGVydGllcyIsInNjaGVtYSIsInR5cGUiLCJPYmplY3QiLCJ2YWx1ZSIsInJlZmxlY3QiLCJpZCIsIlN0cmluZyIsInRpdGxlIiwiZXJyb3JzIiwiQXJyYXkiLCJCb29sZWFuIiwicmVhZG9ubHkiLCJjb25zdHJ1Y3RvciIsIl9yZW5kZXJQYXJ0Iiwic3ViS2V5IiwiaXNSZXF1aXJlZCIsInJlcXVpcmVkIiwiaW5jbHVkZXMiLCJpc0Rpc2FibGVkIiwiZGlzYWJsZWQiLCJmdWxsS2V5IiwiY29udHJvbCIsImdldENvbnRyb2xzIiwiZnJvbSIsInNoYWRvd1Jvb3QiLCJxdWVyeVNlbGVjdG9yQWxsIiwiZ2V0Q29udHJvbCIsInF1ZXJ5U2VsZWN0b3IiLCJfZ2V0VXBkYXRlQ29tcGxldGUiLCJQcm9taXNlIiwiYWxsIiwibWFwIiwiZSIsInVwZGF0ZUNvbXBsZXRlIiwic2hvdWxkVXBkYXRlIiwiY2hhbmdlZFByb3BlcnRpZXMiLCJoYXMiLCJmb3JFYWNoIiwicmVuZGVyIiwia2V5cyIsImNsYXNzZXMiLCJsZW5ndGgiLCJmaW5kIiwia2V5IiwidGl0bGVDbGFzc2VzIiwic3R5bGVzIiwid2luZG93IiwiY3VzdG9tRWxlbWVudHMiLCJkZWZpbmUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVNBLEdBQVQsRUFBY0MsSUFBZCxFQUFvQkMsVUFBcEIsUUFBc0MsS0FBdEM7QUFDQSxTQUFTQyxZQUFU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QUFqQixHQUFzRyxFQUQvRixJQUVQZ0MsSUFBSSxDQUFDUixHQUFMLENBQVVZLEdBQUQsSUFBUyxLQUFLOUIsV0FBTCxDQUFpQjhCLEdBQWpCLENBQWxCLENBRk8sU0FBWDtBQUlEOztBQUVnQixhQUFORSxNQUFNLEdBQUc7QUFDbEIsV0FBTyxDQUNMaEQsUUFESyxFQUVMO0FBQ0FMLElBQUFBLEdBQUcsNkVBSEUsQ0FBUDtBQVVEOztBQTNGdUQ7QUE4RjFEc0QsTUFBTSxDQUFDQyxjQUFQLENBQXNCQyxNQUF0QixDQUE2QiwrQkFBN0IsRUFBOERsRCx5QkFBOUQiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgY3NzLCBodG1sLCBMaXRFbGVtZW50IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGlzQ29kZW1pcnJvciB9IGZyb20gJy4uL2xpYi9zY2hlbWEtZm9ybSc7XG5pbXBvcnQgeyBjbGFzc01hcCB9IGZyb20gJ2xpdC9kaXJlY3RpdmVzL2NsYXNzLW1hcCc7XG5pbXBvcnQgeyBza2VsZXRvbiB9IGZyb20gJy4uL3N0eWxlcy9za2VsZXRvbic7XG5cbi8qKlxuICogU2NoZW1hIGZvcm0gY29udHJvbCBvYmplY3QgY29tcG9uZW50XG4gKi9cbmV4cG9ydCBjbGFzcyBHdlNjaGVtYUZvcm1Db250cm9sT2JqZWN0IGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gIHN0YXRpYyBnZXQgcHJvcGVydGllcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgc2NoZW1hOiB7IHR5cGU6IE9iamVjdCB9LFxuICAgICAgdmFsdWU6IHsgdHlwZTogT2JqZWN0LCByZWZsZWN0OiB0cnVlIH0sXG4gICAgICBpZDogeyB0eXBlOiBTdHJpbmcsIHJlZmxlY3Q6IHRydWUgfSxcbiAgICAgIHRpdGxlOiB7IHR5cGU6IFN0cmluZywgcmVmbGVjdDogdHJ1ZSB9LFxuICAgICAgZXJyb3JzOiB7IHR5cGU6IEFycmF5IH0sXG4gICAgICBza2VsZXRvbjogeyB0eXBlOiBCb29sZWFuLCByZWZsZWN0OiB0cnVlIH0sXG4gICAgICByZWFkb25seTogeyB0eXBlOiBCb29sZWFuLCByZWZsZWN0OiB0cnVlIH0sXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy52YWx1ZSA9IFtdO1xuICB9XG5cbiAgX3JlbmRlclBhcnQoc3ViS2V5KSB7XG4gICAgY29uc3QgaXNSZXF1aXJlZCA9IHRoaXMuc2NoZW1hLnJlcXVpcmVkICYmIHRoaXMuc2NoZW1hLnJlcXVpcmVkLmluY2x1ZGVzKHN1YktleSk7XG4gICAgY29uc3QgaXNEaXNhYmxlZCA9IHRoaXMuc2NoZW1hLmRpc2FibGVkICYmIHRoaXMuc2NoZW1hLmRpc2FibGVkLmluY2x1ZGVzKHN1YktleSk7XG5cbiAgICBjb25zdCBmdWxsS2V5ID0gdGhpcy5pZCAhPSBudWxsID8gYCR7dGhpcy5pZH0uJHtzdWJLZXl9YCA6IHN1YktleTtcbiAgICBjb25zdCBjb250cm9sID0geyAuLi50aGlzLnNjaGVtYS5wcm9wZXJ0aWVzW3N1YktleV0gfTtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMudmFsdWUgIT0gbnVsbCA/IHRoaXMudmFsdWVbc3ViS2V5XSA6IG51bGw7XG4gICAgcmV0dXJuIGh0bWxgPGd2LXNjaGVtYS1mb3JtLWNvbnRyb2xcbiAgICAgIC5pZD1cIiR7ZnVsbEtleX1cIlxuICAgICAgLmNvbnRyb2w9XCIke2NvbnRyb2x9XCJcbiAgICAgIC52YWx1ZT1cIiR7dmFsdWV9XCJcbiAgICAgIC5za2VsZXRvbj1cIiR7dGhpcy5za2VsZXRvbn1cIlxuICAgICAgP3JlcXVpcmVkPVwiJHtpc1JlcXVpcmVkfVwiXG4gICAgICA/ZGlzYWJsZWQ9XCIke2lzRGlzYWJsZWR9XCJcbiAgICAgID9yZWFkb25seT1cIiR7dGhpcy5yZWFkb25seX1cIlxuICAgICAgY2xhc3M9XCJjb250cm9sXCJcbiAgICA+PC9ndi1zY2hlbWEtZm9ybS1jb250cm9sPmA7XG4gIH1cblxuICBnZXRDb250cm9scygpIHtcbiAgICByZXR1cm4gW1xuICAgICAgLi4uQXJyYXkuZnJvbSh0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgnZ3Ytc2NoZW1hLWZvcm0tY29udHJvbCcpKSxcbiAgICAgIC4uLkFycmF5LmZyb20odGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoJ2d2LXNjaGVtYS1mb3JtLWNvbnRyb2wtYXJyYXknKSksXG4gICAgICAuLi5BcnJheS5mcm9tKHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCdndi1zY2hlbWEtZm9ybS1jb250cm9sLW9iamVjdCcpKSxcbiAgICBdO1xuICB9XG5cbiAgZ2V0Q29udHJvbChpZCkge1xuICAgIHJldHVybiB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihgW2lkPVwiJHtpZH1cIl1gKTtcbiAgfVxuXG4gIGFzeW5jIF9nZXRVcGRhdGVDb21wbGV0ZSgpIHtcbiAgICBhd2FpdCBzdXBlci5fZ2V0VXBkYXRlQ29tcGxldGUoKTtcbiAgICBhd2FpdCBQcm9taXNlLmFsbCh0aGlzLmdldENvbnRyb2xzKCkubWFwKChlKSA9PiBlLnVwZGF0ZUNvbXBsZXRlKSk7XG4gIH1cblxuICBzaG91bGRVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpIHtcbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdlcnJvcnMnKSkge1xuICAgICAgdGhpcy5nZXRDb250cm9scygpLmZvckVhY2goKGNvbnRyb2wpID0+IHtcbiAgICAgICAgY29udHJvbC5lcnJvcnMgPSB0aGlzLmVycm9ycztcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gc3VwZXIuc2hvdWxkVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXModGhpcy5zY2hlbWEucHJvcGVydGllcyk7XG4gICAgY29uc3QgY2xhc3NlcyA9IHtcbiAgICAgICdmb3JtX19jb250cm9sLW9iamVjdCc6IHRydWUsXG4gICAgICAnZm9ybV9jb250cm9sLWlubGluZSc6IGtleXMubGVuZ3RoIDw9IDIgJiYga2V5cy5maW5kKChrZXkpID0+IGlzQ29kZW1pcnJvcih0aGlzLnNjaGVtYS5wcm9wZXJ0aWVzW2tleV0pKSA9PSBudWxsLFxuICAgIH07XG5cbiAgICBjb25zdCB0aXRsZUNsYXNzZXMgPSB7XG4gICAgICAnZm9ybV9fY29udHJvbC1ncm91cC10aXRsZSc6IHRydWUsXG4gICAgICBza2VsZXRvbjogdGhpcy5za2VsZXRvbixcbiAgICB9O1xuICAgIHJldHVybiBodG1sYDxkaXYgY2xhc3M9XCIke2NsYXNzTWFwKGNsYXNzZXMpfVwiPlxuICAgICAgJHt0aGlzLnRpdGxlID8gaHRtbGA8ZGl2IGNsYXNzPVwiJHtjbGFzc01hcCh0aXRsZUNsYXNzZXMpfVwiIHRpdGxlPVwiJHt0aGlzLnRpdGxlfVwiPiR7dGhpcy50aXRsZX08L2Rpdj5gIDogJyd9XG4gICAgICAke2tleXMubWFwKChrZXkpID0+IHRoaXMuX3JlbmRlclBhcnQoa2V5KSl9XG4gICAgPC9kaXY+YDtcbiAgfVxuXG4gIHN0YXRpYyBnZXQgc3R5bGVzKCkge1xuICAgIHJldHVybiBbXG4gICAgICBza2VsZXRvbixcbiAgICAgIC8vIGxhbmd1YWdlPUNTU1xuICAgICAgY3NzYFxuICAgICAgICAuZm9ybV9fY29udHJvbC1ncm91cC10aXRsZSB7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNiZmJmYmY7XG4gICAgICAgICAgcGFkZGluZzogMC41cmVtIDA7XG4gICAgICAgIH1cbiAgICAgIGAsXG4gICAgXTtcbiAgfVxufVxuXG53aW5kb3cuY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdndi1zY2hlbWEtZm9ybS1jb250cm9sLW9iamVjdCcsIEd2U2NoZW1hRm9ybUNvbnRyb2xPYmplY3QpO1xuIl19
114
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL29yZ2FuaXNtcy9ndi1zY2hlbWEtZm9ybS1jb250cm9sLW9iamVjdC5qcyJdLCJuYW1lcyI6WyJjc3MiLCJodG1sIiwiTGl0RWxlbWVudCIsImlzQ29kZW1pcnJvciIsImNsYXNzTWFwIiwic2tlbGV0b24iLCJHdlNjaGVtYUZvcm1Db250cm9sT2JqZWN0IiwicHJvcGVydGllcyIsInNjaGVtYSIsInR5cGUiLCJPYmplY3QiLCJ2YWx1ZSIsInJlZmxlY3QiLCJpZCIsIlN0cmluZyIsInRpdGxlIiwiZXJyb3JzIiwiQXJyYXkiLCJCb29sZWFuIiwicmVhZG9ubHkiLCJjb25zdHJ1Y3RvciIsIl9yZW5kZXJQYXJ0Iiwic3ViS2V5IiwiaXNSZXF1aXJlZCIsInJlcXVpcmVkIiwiaW5jbHVkZXMiLCJpc0Rpc2FibGVkIiwiZGlzYWJsZWQiLCJmdWxsS2V5IiwiY29udHJvbCIsImdldENvbnRyb2xzIiwiZnJvbSIsInNoYWRvd1Jvb3QiLCJxdWVyeVNlbGVjdG9yQWxsIiwiZ2V0Q29udHJvbCIsInF1ZXJ5U2VsZWN0b3IiLCJfZ2V0VXBkYXRlQ29tcGxldGUiLCJQcm9taXNlIiwiYWxsIiwibWFwIiwiZSIsInVwZGF0ZUNvbXBsZXRlIiwic2hvdWxkVXBkYXRlIiwiY2hhbmdlZFByb3BlcnRpZXMiLCJoYXMiLCJmb3JFYWNoIiwicmVuZGVyIiwia2V5cyIsImNsYXNzZXMiLCJsZW5ndGgiLCJmaW5kIiwia2V5IiwidGl0bGVDbGFzc2VzIiwic3R5bGVzIiwid2luZG93IiwiY3VzdG9tRWxlbWVudHMiLCJkZWZpbmUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVNBLEdBQVQsRUFBY0MsSUFBZCxFQUFvQkMsVUFBcEIsUUFBc0MsYUFBdEM7QUFDQSxTQUFTQyxZQUFU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QUFqQixHQUFzRyxFQUQvRixJQUVQZ0MsSUFBSSxDQUFDUixHQUFMLENBQVVZLEdBQUQsSUFBUyxLQUFLOUIsV0FBTCxDQUFpQjhCLEdBQWpCLENBQWxCLENBRk8sU0FBWDtBQUlEOztBQUVnQixhQUFORSxNQUFNLEdBQUc7QUFDbEIsV0FBTyxDQUNMaEQsUUFESyxFQUVMO0FBQ0FMLElBQUFBLEdBQUcsNkVBSEUsQ0FBUDtBQVVEOztBQTNGdUQ7QUE4RjFEc0QsTUFBTSxDQUFDQyxjQUFQLENBQXNCQyxNQUF0QixDQUE2QiwrQkFBN0IsRUFBOERsRCx5QkFBOUQiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgY3NzLCBodG1sLCBMaXRFbGVtZW50IH0gZnJvbSAnbGl0LWVsZW1lbnQnO1xuaW1wb3J0IHsgaXNDb2RlbWlycm9yIH0gZnJvbSAnLi4vbGliL3NjaGVtYS1mb3JtJztcbmltcG9ydCB7IGNsYXNzTWFwIH0gZnJvbSAnbGl0LWh0bWwvZGlyZWN0aXZlcy9jbGFzcy1tYXAnO1xuaW1wb3J0IHsgc2tlbGV0b24gfSBmcm9tICcuLi9zdHlsZXMvc2tlbGV0b24nO1xuXG4vKipcbiAqIFNjaGVtYSBmb3JtIGNvbnRyb2wgb2JqZWN0IGNvbXBvbmVudFxuICovXG5leHBvcnQgY2xhc3MgR3ZTY2hlbWFGb3JtQ29udHJvbE9iamVjdCBleHRlbmRzIExpdEVsZW1lbnQge1xuICBzdGF0aWMgZ2V0IHByb3BlcnRpZXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNjaGVtYTogeyB0eXBlOiBPYmplY3QgfSxcbiAgICAgIHZhbHVlOiB7IHR5cGU6IE9iamVjdCwgcmVmbGVjdDogdHJ1ZSB9LFxuICAgICAgaWQ6IHsgdHlwZTogU3RyaW5nLCByZWZsZWN0OiB0cnVlIH0sXG4gICAgICB0aXRsZTogeyB0eXBlOiBTdHJpbmcsIHJlZmxlY3Q6IHRydWUgfSxcbiAgICAgIGVycm9yczogeyB0eXBlOiBBcnJheSB9LFxuICAgICAgc2tlbGV0b246IHsgdHlwZTogQm9vbGVhbiwgcmVmbGVjdDogdHJ1ZSB9LFxuICAgICAgcmVhZG9ubHk6IHsgdHlwZTogQm9vbGVhbiwgcmVmbGVjdDogdHJ1ZSB9LFxuICAgIH07XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMudmFsdWUgPSBbXTtcbiAgfVxuXG4gIF9yZW5kZXJQYXJ0KHN1YktleSkge1xuICAgIGNvbnN0IGlzUmVxdWlyZWQgPSB0aGlzLnNjaGVtYS5yZXF1aXJlZCAmJiB0aGlzLnNjaGVtYS5yZXF1aXJlZC5pbmNsdWRlcyhzdWJLZXkpO1xuICAgIGNvbnN0IGlzRGlzYWJsZWQgPSB0aGlzLnNjaGVtYS5kaXNhYmxlZCAmJiB0aGlzLnNjaGVtYS5kaXNhYmxlZC5pbmNsdWRlcyhzdWJLZXkpO1xuXG4gICAgY29uc3QgZnVsbEtleSA9IHRoaXMuaWQgIT0gbnVsbCA/IGAke3RoaXMuaWR9LiR7c3ViS2V5fWAgOiBzdWJLZXk7XG4gICAgY29uc3QgY29udHJvbCA9IHsgLi4udGhpcy5zY2hlbWEucHJvcGVydGllc1tzdWJLZXldIH07XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLnZhbHVlICE9IG51bGwgPyB0aGlzLnZhbHVlW3N1YktleV0gOiBudWxsO1xuICAgIHJldHVybiBodG1sYDxndi1zY2hlbWEtZm9ybS1jb250cm9sXG4gICAgICAuaWQ9XCIke2Z1bGxLZXl9XCJcbiAgICAgIC5jb250cm9sPVwiJHtjb250cm9sfVwiXG4gICAgICAudmFsdWU9XCIke3ZhbHVlfVwiXG4gICAgICAuc2tlbGV0b249XCIke3RoaXMuc2tlbGV0b259XCJcbiAgICAgID9yZXF1aXJlZD1cIiR7aXNSZXF1aXJlZH1cIlxuICAgICAgP2Rpc2FibGVkPVwiJHtpc0Rpc2FibGVkfVwiXG4gICAgICA/cmVhZG9ubHk9XCIke3RoaXMucmVhZG9ubHl9XCJcbiAgICAgIGNsYXNzPVwiY29udHJvbFwiXG4gICAgPjwvZ3Ytc2NoZW1hLWZvcm0tY29udHJvbD5gO1xuICB9XG5cbiAgZ2V0Q29udHJvbHMoKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLkFycmF5LmZyb20odGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoJ2d2LXNjaGVtYS1mb3JtLWNvbnRyb2wnKSksXG4gICAgICAuLi5BcnJheS5mcm9tKHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCdndi1zY2hlbWEtZm9ybS1jb250cm9sLWFycmF5JykpLFxuICAgICAgLi4uQXJyYXkuZnJvbSh0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgnZ3Ytc2NoZW1hLWZvcm0tY29udHJvbC1vYmplY3QnKSksXG4gICAgXTtcbiAgfVxuXG4gIGdldENvbnRyb2woaWQpIHtcbiAgICByZXR1cm4gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoYFtpZD1cIiR7aWR9XCJdYCk7XG4gIH1cblxuICBhc3luYyBfZ2V0VXBkYXRlQ29tcGxldGUoKSB7XG4gICAgYXdhaXQgc3VwZXIuX2dldFVwZGF0ZUNvbXBsZXRlKCk7XG4gICAgYXdhaXQgUHJvbWlzZS5hbGwodGhpcy5nZXRDb250cm9scygpLm1hcCgoZSkgPT4gZS51cGRhdGVDb21wbGV0ZSkpO1xuICB9XG5cbiAgc2hvdWxkVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKSB7XG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnZXJyb3JzJykpIHtcbiAgICAgIHRoaXMuZ2V0Q29udHJvbHMoKS5mb3JFYWNoKChjb250cm9sKSA9PiB7XG4gICAgICAgIGNvbnRyb2wuZXJyb3JzID0gdGhpcy5lcnJvcnM7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHN1cGVyLnNob3VsZFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHRoaXMuc2NoZW1hLnByb3BlcnRpZXMpO1xuICAgIGNvbnN0IGNsYXNzZXMgPSB7XG4gICAgICAnZm9ybV9fY29udHJvbC1vYmplY3QnOiB0cnVlLFxuICAgICAgJ2Zvcm1fY29udHJvbC1pbmxpbmUnOiBrZXlzLmxlbmd0aCA8PSAyICYmIGtleXMuZmluZCgoa2V5KSA9PiBpc0NvZGVtaXJyb3IodGhpcy5zY2hlbWEucHJvcGVydGllc1trZXldKSkgPT0gbnVsbCxcbiAgICB9O1xuXG4gICAgY29uc3QgdGl0bGVDbGFzc2VzID0ge1xuICAgICAgJ2Zvcm1fX2NvbnRyb2wtZ3JvdXAtdGl0bGUnOiB0cnVlLFxuICAgICAgc2tlbGV0b246IHRoaXMuc2tlbGV0b24sXG4gICAgfTtcbiAgICByZXR1cm4gaHRtbGA8ZGl2IGNsYXNzPVwiJHtjbGFzc01hcChjbGFzc2VzKX1cIj5cbiAgICAgICR7dGhpcy50aXRsZSA/IGh0bWxgPGRpdiBjbGFzcz1cIiR7Y2xhc3NNYXAodGl0bGVDbGFzc2VzKX1cIiB0aXRsZT1cIiR7dGhpcy50aXRsZX1cIj4ke3RoaXMudGl0bGV9PC9kaXY+YCA6ICcnfVxuICAgICAgJHtrZXlzLm1hcCgoa2V5KSA9PiB0aGlzLl9yZW5kZXJQYXJ0KGtleSkpfVxuICAgIDwvZGl2PmA7XG4gIH1cblxuICBzdGF0aWMgZ2V0IHN0eWxlcygpIHtcbiAgICByZXR1cm4gW1xuICAgICAgc2tlbGV0b24sXG4gICAgICAvLyBsYW5ndWFnZT1DU1NcbiAgICAgIGNzc2BcbiAgICAgICAgLmZvcm1fX2NvbnRyb2wtZ3JvdXAtdGl0bGUge1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjYmZiZmJmO1xuICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwO1xuICAgICAgICB9XG4gICAgICBgLFxuICAgIF07XG4gIH1cbn1cblxud2luZG93LmN1c3RvbUVsZW1lbnRzLmRlZmluZSgnZ3Ytc2NoZW1hLWZvcm0tY29udHJvbC1vYmplY3QnLCBHdlNjaGVtYUZvcm1Db250cm9sT2JqZWN0KTtcbiJdfQ==
@@ -13,7 +13,8 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import { css, LitElement, html } from 'lit';
16
+ import { css, LitElement } from 'lit-element';
17
+ import { html } from 'lit-html';
17
18
  import { dispatchCustomEvent } from '../lib/events';
18
19
  import '../atoms/gv-input';
19
20
  import '../atoms/gv-input-message';
@@ -386,4 +387,4 @@ export class GvSchemaFormControl extends LitElement {
386
387
 
387
388
  }
388
389
  window.customElements.define('gv-schema-form-control', GvSchemaFormControl);
389
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL29yZ2FuaXNtcy9ndi1zY2hlbWEtZm9ybS1jb250cm9sLmpzIl0sIm5hbWVzIjpbImNzcyIsIkxpdEVsZW1lbnQiLCJodG1sIiwiZGlzcGF0Y2hDdXN0b21FdmVudCIsImlzQ29kZW1pcnJvciIsIkd2U2NoZW1hRm9ybUNvbnRyb2wiLCJwcm9wZXJ0aWVzIiwidHlwZSIsIlN0cmluZyIsImlkIiwicmVmbGVjdCIsIm5hbWUiLCJyZXF1aXJlZCIsIkJvb2xlYW4iLCJkaXNhYmxlZCIsInJlYWRvbmx5IiwidGl0bGUiLCJwYXR0ZXJuIiwiY29udHJvbCIsIk9iamVjdCIsImVycm9ycyIsIkFycmF5IiwidmFsdWUiLCJza2VsZXRvbiIsImhpZGRlbiIsIndyaXRlT25seSIsImNvbnN0cnVjdG9yIiwiX29ic2VydmVkUHJvcGVydGllcyIsImlzRXhwcmVzc2lvbkxhbmd1YWdlIiwiaXNDcm9uRXhwcmVzc2lvbiIsImlzUGFzc3dvcmQiLCJnZXRQbGFjZWhvbGRlciIsInBsYWNlaG9sZGVyIiwiaXNBdXRvY29tcGxldGUiLCJldmVudCIsImdldEVsZW1lbnROYW1lIiwiZW51bSIsIml0ZW1zIiwiaXNDb21wbGV4QXJyYXkiLCJfdXBkYXRlUHJvcGVydGllcyIsImVsZW1lbnQiLCJmb3JFYWNoIiwicHJvcGVydHkiLCJfcmVuZGVyQ29udHJvbCIsImVsZW1lbnROYW1lIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NMaXN0IiwiYWRkIiwiX3NldFZhbHVlIiwiZGVmYXVsdCIsImN1cnJlbnRUYXJnZXQiLCJzY2hlbWEiLCJsYWJlbCIsInRtcCIsInNwbGl0IiwibGVuZ3RoIiwiaXNOYU4iLCJwYXJzZUludCIsIm9wdGlvbnMiLCJ0aXRsZU1hcCIsIm1hcCIsIm11bHRpcGxlIiwiY29kZW1pcnJvck9wdGlvbnMiLCJyb3dzIiwiZGVzY3JpcHRpb24iLCJhZGRFdmVudExpc3RlbmVyIiwiX29uSW5wdXQiLCJiaW5kIiwiYXV0b2NvbXBsZXRlIiwibWluQ2hhcnMiLCJmaWx0ZXIiLCJjbGVhcmFibGUiLCJhcHBlbmRDaGlsZCIsImV2ZW50TmFtZSIsImUiLCJwcmV2ZW50RGVmYXVsdCIsInN0b3BQcm9wYWdhdGlvbiIsInRhcmdldCIsInRhZ05hbWUiLCJkZXRhaWwiLCJnZXRDb250cm9scyIsImZyb20iLCJzaGFkb3dSb290IiwicXVlcnlTZWxlY3RvckFsbCIsImdldENvbnRyb2wiLCJxdWVyeVNlbGVjdG9yIiwiY29udHJvbEVsZW1lbnQiLCJ0b1N0cmluZyIsInVwZGF0ZWQiLCJjaGFuZ2VkUHJvcGVydGllcyIsImhhcyIsIlByb21pc2UiLCJhbGwiLCJ1cGRhdGVDb21wbGV0ZSIsInRoZW4iLCJnZXRVcGRhdGVDb21wbGV0ZSIsImZvcm1hdEVycm9yTWVzc2FnZSIsImVycm9yIiwiYXJndW1lbnQiLCJtZXNzYWdlIiwicmVwbGFjZSIsInNob3VsZFVwZGF0ZSIsImZpbmQiLCJlcnJvckNvbnRhaW5lciIsImNvbnRhaW5lciIsImlubmVySFRNTCIsImtleSIsImxldmVsIiwicmVuZGVyIiwic3R5bGVzIiwid2luZG93IiwiY3VzdG9tRWxlbWVudHMiLCJkZWZpbmUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVNBLEdBQVQsRUFBY0MsVUFBZCxFQUEwQkMsSUFBMUIsUUFBc0MsS0FBdEM7QUFDQSxTQUFTQyxtQkFBVCxRQUFvQyxlQUFwQztBQUNBLE9BQU8sbUJBQVA7QUFDQSxPQUFPLDJCQUFQO0FBQ0EsT0FBTyxvQkFBUDtBQUNBLE9BQU8sb0JBQVA7QUFDQSxPQUFPLHNCQUFQO0FBQ0EsT0FBTyxxQ0FBUDtBQUNBLE9BQU8sNkJBQVA7QUFDQSxPQUFPLDBCQUFQO0FBQ0EsT0FBTyxtQ0FBUDtBQUNBLE9BQU8sNENBQVA7QUFDQSxTQUFTQyxZQUFU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RWdCLGFBQU5xRyxNQUFNLEdBQUc7QUFDbEIsV0FBTyxDQUNMO0FBQ0E5RyxJQUFBQSxHQUFHLDY1QkFGRSxDQUFQO0FBNkZEOztBQTVZaUQ7QUErWXBEK0csTUFBTSxDQUFDQyxjQUFQLENBQXNCQyxNQUF0QixDQUE2Qix3QkFBN0IsRUFBdUQ1RyxtQkFBdkQiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgY3NzLCBMaXRFbGVtZW50LCBodG1sIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGRpc3BhdGNoQ3VzdG9tRXZlbnQgfSBmcm9tICcuLi9saWIvZXZlbnRzJztcbmltcG9ydCAnLi4vYXRvbXMvZ3YtaW5wdXQnO1xuaW1wb3J0ICcuLi9hdG9tcy9ndi1pbnB1dC1tZXNzYWdlJztcbmltcG9ydCAnLi4vYXRvbXMvZ3Ytc2VsZWN0JztcbmltcG9ydCAnLi4vYXRvbXMvZ3Ytc3dpdGNoJztcbmltcG9ydCAnLi4vbW9sZWN1bGVzL2d2LWNvZGUnO1xuaW1wb3J0ICcuLi9tb2xlY3VsZXMvZ3YtZXhwcmVzc2lvbi1sYW5ndWFnZSc7XG5pbXBvcnQgJy4uL21vbGVjdWxlcy9ndi1jcm9uLWVkaXRvcic7XG5pbXBvcnQgJy4uL2F0b21zL2d2LWF1dG9jb21wbGV0ZSc7XG5pbXBvcnQgJy4uL29yZ2FuaXNtcy9ndi1zY2hlbWEtZm9ybS1hcnJheSc7XG5pbXBvcnQgJy4uL29yZ2FuaXNtcy9ndi1zY2hlbWEtZm9ybS1jb250cm9sLW9iamVjdCc7XG5pbXBvcnQgeyBpc0NvZGVtaXJyb3IgfSBmcm9tICcuLi9saWIvc2NoZW1hLWZvcm0nO1xuXG5leHBvcnQgY2xhc3MgR3ZTY2hlbWFGb3JtQ29udHJvbCBleHRlbmRzIExpdEVsZW1lbnQge1xuICBzdGF0aWMgZ2V0IHByb3BlcnRpZXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IHsgdHlwZTogU3RyaW5nIH0sXG4gICAgICBpZDogeyB0eXBlOiBTdHJpbmcsIHJlZmxlY3Q6IHRydWUgfSxcbiAgICAgIG5hbWU6IHsgdHlwZTogU3RyaW5nLCByZWZsZWN0OiB0cnVlIH0sXG4gICAgICByZXF1aXJlZDogeyB0eXBlOiBCb29sZWFuLCByZWZsZWN0OiB0cnVlIH0sXG4gICAgICBkaXNhYmxlZDogeyB0eXBlOiBCb29sZWFuLCByZWZsZWN0OiB0cnVlIH0sXG4gICAgICByZWFkb25seTogeyB0eXBlOiBCb29sZWFuLCByZWZsZWN0OiB0cnVlIH0sXG4gICAgICB0aXRsZTogeyB0eXBlOiBTdHJpbmcsIHJlZmxlY3Q6IHRydWUgfSxcbiAgICAgIHBhdHRlcm46IHsgdHlwZTogU3RyaW5nIH0sXG4gICAgICBjb250cm9sOiB7IHR5cGU6IE9iamVjdCB9LFxuICAgICAgZXJyb3JzOiB7IHR5cGU6IEFycmF5IH0sXG4gICAgICB2YWx1ZTogeyB0eXBlOiBPYmplY3QsIHJlZmxlY3Q6IHRydWUgfSxcbiAgICAgIHNrZWxldG9uOiB7IHR5cGU6IEJvb2xlYW4sIHJlZmxlY3Q6IHRydWUgfSxcbiAgICAgIGhpZGRlbjogeyB0eXBlOiBCb29sZWFuLCByZWZsZWN0OiB0cnVlIH0sXG4gICAgICB3cml0ZU9ubHk6IHsgdHlwZTogQm9vbGVhbiwgcmVmbGVjdDogdHJ1ZSB9LFxuICAgIH07XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIC8vIFdoZW4gZm9ybSBoYXMgZXJyb3JzLCB0aGUgY29udHJvbCBpcyBub3QgdXBkYXRlIHRvIGNvbnNlcnZlIHRoZSBlcnJvciBzdGF0ZS5cbiAgICAvLyBUaGlzIGxpc3QgaXMgdXNlZCB0byBmb3JjZSB0aGUgdXBkYXRlIG9mIHByb3BlcnRpZXMgZXZlbiBpbiBlcnJvciBjYXNlLlxuICAgIHRoaXMuX29ic2VydmVkUHJvcGVydGllcyA9IFsnZGlzYWJsZWQnLCAncmVhZG9ubHknLCAncmVxdWlyZWQnXTtcbiAgfVxuXG4gIGlzRXhwcmVzc2lvbkxhbmd1YWdlKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2xbJ3gtc2NoZW1hLWZvcm0nXSAmJiB0aGlzLmNvbnRyb2xbJ3gtc2NoZW1hLWZvcm0nXVsnZXhwcmVzc2lvbi1sYW5ndWFnZSddICE9IG51bGw7XG4gIH1cblxuICBpc0Nyb25FeHByZXNzaW9uKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2xbJ3gtc2NoZW1hLWZvcm0nXSAmJiB0aGlzLmNvbnRyb2xbJ3gtc2NoZW1hLWZvcm0nXVsnY3Jvbi1leHByZXNzaW9uJ10gPT09IHRydWU7XG4gIH1cblxuICBpc1Bhc3N3b3JkKCkge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmNvbnRyb2wud3JpdGVPbmx5ID09PSB0cnVlIHx8XG4gICAgICAodGhpcy5jb250cm9sWyd4LXNjaGVtYS1mb3JtJ10gJiYgdGhpcy5jb250cm9sWyd4LXNjaGVtYS1mb3JtJ10udHlwZSAhPSBudWxsICYmIHRoaXMuY29udHJvbFsneC1zY2hlbWEtZm9ybSddLnR5cGUgPT09ICdwYXNzd29yZCcpXG4gICAgKTtcbiAgfVxuXG4gIGdldFBsYWNlaG9sZGVyKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2xbJ3gtc2NoZW1hLWZvcm0nXSAmJiB0aGlzLmNvbnRyb2xbJ3gtc2NoZW1hLWZvcm0nXS5wbGFjZWhvbGRlciA/IHRoaXMuY29udHJvbFsneC1zY2hlbWEtZm9ybSddLnBsYWNlaG9sZGVyIDogbnVsbDtcbiAgfVxuXG4gIGlzQ29kZW1pcnJvcigpIHtcbiAgICByZXR1cm4gaXNDb2RlbWlycm9yKHRoaXMuY29udHJvbCk7XG4gIH1cblxuICBpc0F1dG9jb21wbGV0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sWyd4LXNjaGVtYS1mb3JtJ10gJiYgdGhpcy5jb250cm9sWyd4LXNjaGVtYS1mb3JtJ10uZXZlbnQgIT0gbnVsbCAmJiB0aGlzLmNvbnRyb2wudHlwZSA9PT0gJ3N0cmluZyc7XG4gIH1cblxuICBnZXRFbGVtZW50TmFtZSgpIHtcbiAgICBpZiAodGhpcy5jb250cm9sLnR5cGUgPT09ICdvYmplY3QnKSB7XG4gICAgICByZXR1cm4gJ2d2LXNjaGVtYS1mb3JtLWNvbnRyb2wtb2JqZWN0JztcbiAgICB9XG4gICAgaWYgKCh0aGlzLmNvbnRyb2wuZW51bSB8fCAodGhpcy5jb250cm9sLml0ZW1zICYmIHRoaXMuY29udHJvbC5pdGVtcy5lbnVtKSkgJiYgIXRoaXMuaXNBdXRvY29tcGxldGUoKSkge1xuICAgICAgcmV0dXJuICdndi1zZWxlY3QnO1xuICAgIH0gZWxzZSBpZiAodGhpcy5pc0NvbXBsZXhBcnJheSgpKSB7XG4gICAgICByZXR1cm4gJ2d2LXNjaGVtYS1mb3JtLWFycmF5JztcbiAgICB9IGVsc2UgaWYgKHRoaXMuY29udHJvbC50eXBlID09PSAnYXJyYXknKSB7XG4gICAgICByZXR1cm4gJ2d2LWJ1dHRvbic7XG4gICAgfSBlbHNlIGlmICh0aGlzLmNvbnRyb2wudHlwZSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICByZXR1cm4gJ2d2LXN3aXRjaCc7XG4gICAgfSBlbHNlIGlmICh0aGlzLmlzRXhwcmVzc2lvbkxhbmd1YWdlKCkpIHtcbiAgICAgIHJldHVybiAnZ3YtZXhwcmVzc2lvbi1sYW5ndWFnZSc7XG4gICAgfSBlbHNlIGlmICh0aGlzLmlzQ29kZW1pcnJvcigpKSB7XG4gICAgICByZXR1cm4gJ2d2LWNvZGUnO1xuICAgIH0gZWxzZSBpZiAodGhpcy5pc0Nyb25FeHByZXNzaW9uKCkpIHtcbiAgICAgIHJldHVybiAnZ3YtY3Jvbi1lZGl0b3InO1xuICAgIH1cblxuICAgIHJldHVybiAnZ3YtaW5wdXQnO1xuICB9XG5cbiAgaXNDb21wbGV4QXJyYXkoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbC50eXBlID09PSAnYXJyYXknICYmICF0aGlzLmNvbnRyb2wuaXRlbXMuZW51bTtcbiAgfVxuXG4gIF91cGRhdGVQcm9wZXJ0aWVzKGVsZW1lbnQpIHtcbiAgICBpZiAoZWxlbWVudCAhPSBudWxsKSB7XG4gICAgICB0aGlzLl9vYnNlcnZlZFByb3BlcnRpZXMuZm9yRWFjaCgocHJvcGVydHkpID0+IHtcbiAgICAgICAgaWYgKHRoaXNbcHJvcGVydHldICE9IG51bGwpIHtcbiAgICAgICAgICBlbGVtZW50W3Byb3BlcnR5XSA9IHRoaXNbcHJvcGVydHldO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBfcmVuZGVyQ29udHJvbCgpIHtcbiAgICBjb25zdCBlbGVtZW50TmFtZSA9IHRoaXMuZ2V0RWxlbWVudE5hbWUoKTtcbiAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChlbGVtZW50TmFtZSk7XG4gICAgZWxlbWVudC5pZCA9IHRoaXMuaWQ7XG4gICAgZWxlbWVudC5uYW1lID0gdGhpcy5pZDtcbiAgICBlbGVtZW50LnNrZWxldG9uID0gdGhpcy5za2VsZXRvbjtcbiAgICBlbGVtZW50LmNsYXNzTGlzdC5hZGQoJ2Zvcm1fX2NvbnRyb2wnKTtcblxuICAgIGlmICh0aGlzLnZhbHVlICE9IG51bGwpIHtcbiAgICAgIHRoaXMuX3NldFZhbHVlKGVsZW1lbnQpO1xuICAgIH1cbiAgICBpZiAodGhpcy52YWx1ZSA9PSBudWxsICYmIHRoaXMuY29udHJvbC5kZWZhdWx0ICE9IG51bGwpIHtcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmNvbnRyb2wuZGVmYXVsdDtcbiAgICAgIGRpc3BhdGNoQ3VzdG9tRXZlbnQodGhpcywgJ2RlZmF1bHQtdmFsdWUnLCB7IHZhbHVlOiB0aGlzLnZhbHVlLCBjdXJyZW50VGFyZ2V0OiBlbGVtZW50LCBjb250cm9sOiB0aGlzLmNvbnRyb2wgfSk7XG4gICAgfVxuICAgIGlmICh0aGlzLnZhbHVlICE9IG51bGwpIHtcbiAgICAgIHRoaXMuX3NldFZhbHVlKGVsZW1lbnQpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNvbnRyb2wudHlwZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGVsZW1lbnQuc2NoZW1hID0gdGhpcy5jb250cm9sO1xuICAgIH0gZWxzZSBpZiAodGhpcy5pc0NvbXBsZXhBcnJheSgpKSB7XG4gICAgICBlbGVtZW50LnNjaGVtYSA9IHRoaXMuY29udHJvbC5pdGVtcztcbiAgICB9XG5cbiAgICB0aGlzLl91cGRhdGVQcm9wZXJ0aWVzKGVsZW1lbnQpO1xuXG4gICAgaWYgKHRoaXMuY29udHJvbC50aXRsZSkge1xuICAgICAgZWxlbWVudC5sYWJlbCA9IHRoaXMuY29udHJvbC50aXRsZTtcbiAgICAgIGVsZW1lbnQudGl0bGUgPSB0aGlzLmNvbnRyb2wudGl0bGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHRtcCA9IHRoaXMuaWQuc3BsaXQoJy4nKTtcbiAgICAgIGNvbnN0IHRpdGxlID0gdG1wW3RtcC5sZW5ndGggLSAxXTtcbiAgICAgIGlmIChpc05hTihwYXJzZUludCh0aXRsZSwgMTApKSkge1xuICAgICAgICBlbGVtZW50LmxhYmVsID0gdGl0bGU7XG4gICAgICAgIGVsZW1lbnQudGl0bGUgPSB0aXRsZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5jb250cm9sLnBhdHRlcm4pIHtcbiAgICAgIGVsZW1lbnQucGF0dGVybiA9IHRoaXMuY29udHJvbC5wYXR0ZXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNvbnRyb2wudHlwZSA9PT0gJ2ludGVnZXInKSB7XG4gICAgICBlbGVtZW50LnR5cGUgPSAnbnVtYmVyJztcbiAgICB9XG5cbiAgICBjb25zdCBwbGFjZWhvbGRlciA9IHRoaXMuZ2V0UGxhY2Vob2xkZXIoKTtcblxuICAgIGlmICh0aGlzLmNvbnRyb2wuZW51bSB8fCAodGhpcy5jb250cm9sLml0ZW1zICYmIHRoaXMuY29udHJvbC5pdGVtcy5lbnVtKSkge1xuICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuY29udHJvbC5lbnVtIHx8IHRoaXMuY29udHJvbC5pdGVtcy5lbnVtO1xuICAgICAgaWYgKHRoaXMuY29udHJvbFsneC1zY2hlbWEtZm9ybSddICYmIHRoaXMuY29udHJvbFsneC1zY2hlbWEtZm9ybSddLnRpdGxlTWFwKSB7XG4gICAgICAgIGVsZW1lbnQub3B0aW9ucyA9IG9wdGlvbnMubWFwKCh2YWx1ZSkgPT4gKHtcbiAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICBsYWJlbDogdGhpcy5jb250cm9sWyd4LXNjaGVtYS1mb3JtJ10udGl0bGVNYXBbdmFsdWVdIHx8IHZhbHVlLFxuICAgICAgICB9KSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlbGVtZW50Lm9wdGlvbnMgPSBvcHRpb25zO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuY29udHJvbC50eXBlID09PSAnYXJyYXknKSB7XG4gICAgICAgIGVsZW1lbnQubXVsdGlwbGUgPSB0cnVlO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy5pc0NvZGVtaXJyb3IoKSkge1xuICAgICAgZWxlbWVudC5vcHRpb25zID0gdGhpcy5jb250cm9sWyd4LXNjaGVtYS1mb3JtJ10uY29kZW1pcnJvck9wdGlvbnM7XG4gICAgICBpZiAodGhpcy5jb250cm9sLmRlZmF1bHQgIT0gbnVsbCAmJiBlbGVtZW50Lm9wdGlvbnMudmFsdWUgPT0gbnVsbCkge1xuICAgICAgICBlbGVtZW50Lm9wdGlvbnMudmFsdWUgPSB0aGlzLmNvbnRyb2wuZGVmYXVsdDtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNFeHByZXNzaW9uTGFuZ3VhZ2UoKSkge1xuICAgICAgZWxlbWVudC5vcHRpb25zID0ge307XG4gICAgICBlbGVtZW50LnJvd3MgPSAxO1xuICAgIH0gZWxzZSBpZiAodGhpcy5pc1Bhc3N3b3JkKCkpIHtcbiAgICAgIGVsZW1lbnQudHlwZSA9ICdwYXNzd29yZCc7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY29udHJvbC5kZXNjcmlwdGlvbikge1xuICAgICAgZWxlbWVudC5kZXNjcmlwdGlvbiA9IHRoaXMuY29udHJvbC5kZXNjcmlwdGlvbjtcbiAgICB9XG5cbiAgICBpZiAocGxhY2Vob2xkZXIgIT0gbnVsbCkge1xuICAgICAgaWYgKHRoaXMuaXNFeHByZXNzaW9uTGFuZ3VhZ2UoKSB8fCB0aGlzLmlzQ29kZW1pcnJvcigpKSB7XG4gICAgICAgIGVsZW1lbnQub3B0aW9ucy5wbGFjZWhvbGRlciA9IHBsYWNlaG9sZGVyO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZWxlbWVudC5wbGFjZWhvbGRlciA9IHBsYWNlaG9sZGVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihgJHtlbGVtZW50TmFtZX06aW5wdXRgLCB0aGlzLl9vbklucHV0LmJpbmQodGhpcykpO1xuXG4gICAgbGV0IGN1cnJlbnRUYXJnZXQ7XG4gICAgaWYgKHRoaXMuaXNBdXRvY29tcGxldGUoKSkge1xuICAgICAgY29uc3QgYXV0b2NvbXBsZXRlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZ3YtYXV0b2NvbXBsZXRlJyk7XG4gICAgICBhdXRvY29tcGxldGUubWluQ2hhcnMgPSAwO1xuICAgICAgYXV0b2NvbXBsZXRlLmZpbHRlciA9IHRydWU7XG4gICAgICBlbGVtZW50LmNsZWFyYWJsZSA9IHRydWU7XG4gICAgICBhdXRvY29tcGxldGUuaWQgPSB0aGlzLmlkO1xuICAgICAgYXV0b2NvbXBsZXRlLmFwcGVuZENoaWxkKGVsZW1lbnQpO1xuICAgICAgYXV0b2NvbXBsZXRlLmFkZEV2ZW50TGlzdGVuZXIoYGd2LWF1dG9jb21wbGV0ZTpzZWxlY3RgLCB0aGlzLl9vbklucHV0LmJpbmQodGhpcykpO1xuICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKGBndi1pbnB1dDpjbGVhcmAsIHRoaXMuX29uSW5wdXQuYmluZCh0aGlzKSk7XG4gICAgICBjdXJyZW50VGFyZ2V0ID0gYXV0b2NvbXBsZXRlO1xuICAgIH0gZWxzZSB7XG4gICAgICBjdXJyZW50VGFyZ2V0ID0gZWxlbWVudDtcbiAgICB9XG4gICAgaWYgKHRoaXMuY29udHJvbFsneC1zY2hlbWEtZm9ybSddICE9IG51bGwgJiYgdGhpcy5jb250cm9sWyd4LXNjaGVtYS1mb3JtJ10uZXZlbnQgIT0gbnVsbCkge1xuICAgICAgY29uc3QgbmFtZSA9IHRoaXMuY29udHJvbFsneC1zY2hlbWEtZm9ybSddLmV2ZW50Lm5hbWU7XG4gICAgICBkaXNwYXRjaEN1c3RvbUV2ZW50KHRoaXMsICdjb250cm9sLXJlYWR5Jywge1xuICAgICAgICAuLi50aGlzLmNvbnRyb2xbJ3gtc2NoZW1hLWZvcm0nXS5ldmVudCxcbiAgICAgICAgY3VycmVudFRhcmdldCxcbiAgICAgICAgZXZlbnROYW1lOiBuYW1lLFxuICAgICAgICBjb250cm9sOiB0aGlzLmNvbnRyb2wsXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGN1cnJlbnRUYXJnZXQ7XG4gIH1cblxuICBfb25JbnB1dChlKSB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgbGV0IHZhbHVlID0gbnVsbDtcbiAgICBpZiAoZS50YXJnZXQudGFnTmFtZSA9PT0gJ0dWLUFVVE9DT01QTEVURScpIHtcbiAgICAgIHZhbHVlID0gZS5kZXRhaWwudmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbHVlID0gZS5kZXRhaWw7XG4gICAgfVxuICAgIGRpc3BhdGNoQ3VzdG9tRXZlbnQodGhpcywgJ2NoYW5nZScsIHsgdmFsdWUsIGN1cnJlbnRUYXJnZXQ6IGUudGFyZ2V0LCBjb250cm9sOiB0aGlzLmNvbnRyb2wgfSk7XG4gIH1cblxuICBnZXRDb250cm9scygpIHtcbiAgICByZXR1cm4gW1xuICAgICAgLi4uQXJyYXkuZnJvbSh0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgnZ3Ytc2NoZW1hLWZvcm0tY29udHJvbCcpKSxcbiAgICAgIC4uLkFycmF5LmZyb20odGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoJ2d2LXNjaGVtYS1mb3JtLWNvbnRyb2wtYXJyYXknKSksXG4gICAgICAuLi5BcnJheS5mcm9tKHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCdndi1zY2hlbWEtZm9ybS1jb250cm9sLW9iamVjdCcpKSxcbiAgICBdO1xuICB9XG5cbiAgZ2V0Q29udHJvbChpZCkge1xuICAgIGlmIChpZCA9PSBudWxsKSB7XG4gICAgICBpZCA9IHRoaXMuaWQ7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihgW2lkPVwiJHtpZH1cIl1gKTtcbiAgfVxuXG4gIF9zZXRWYWx1ZShjb250cm9sRWxlbWVudCkge1xuICAgIGlmICh0aGlzLnZhbHVlICE9IG51bGwgJiYgY29udHJvbEVsZW1lbnQgIT0gbnVsbCkge1xuICAgICAgaWYgKHRoaXMuY29udHJvbC50eXBlID09PSAnYm9vbGVhbicgfHwgdGhpcy5jb250cm9sLnR5cGUgPT09ICdhcnJheScgfHwgdGhpcy5jb250cm9sLnR5cGUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIGNvbnRyb2xFbGVtZW50LnZhbHVlID0gdGhpcy52YWx1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnRyb2xFbGVtZW50LnZhbHVlID0gdGhpcy52YWx1ZS50b1N0cmluZyA/IHRoaXMudmFsdWUudG9TdHJpbmcoKSA6IHRoaXMudmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjb250cm9sRWxlbWVudDtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpIHtcbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCd2YWx1ZScpKSB7XG4gICAgICBQcm9taXNlLmFsbCh0aGlzLmdldENvbnRyb2xzKCkubWFwKChjb250cm9sKSA9PiBjb250cm9sLnVwZGF0ZUNvbXBsZXRlKSkudGhlbigoKSA9PiB7XG4gICAgICAgIHRoaXMuX3NldFZhbHVlKHRoaXMuZ2V0Q29udHJvbCgpKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGdldFVwZGF0ZUNvbXBsZXRlKCkge1xuICAgIGF3YWl0IHN1cGVyLmdldFVwZGF0ZUNvbXBsZXRlKCk7XG4gICAgYXdhaXQgUHJvbWlzZS5hbGwodGhpcy5nZXRDb250cm9scygpLm1hcCgoZSkgPT4gZS51cGRhdGVDb21wbGV0ZSkpO1xuICB9XG5cbiAgZm9ybWF0RXJyb3JNZXNzYWdlKGVycm9yKSB7XG4gICAgaWYgKGVycm9yLnNjaGVtYS5wcm9wZXJ0aWVzICE9IG51bGwgJiYgZXJyb3Iuc2NoZW1hLnByb3BlcnRpZXNbZXJyb3IuYXJndW1lbnRdICE9IG51bGwpIHtcbiAgICAgIGNvbnN0IHRpdGxlID0gZXJyb3Iuc2NoZW1hLnByb3BlcnRpZXNbZXJyb3IuYXJndW1lbnRdLnRpdGxlO1xuICAgICAgaWYgKHRpdGxlKSB7XG4gICAgICAgIHJldHVybiBlcnJvci5tZXNzYWdlLnJlcGxhY2UoZXJyb3IuYXJndW1lbnQsIHRpdGxlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGVycm9yLm1lc3NhZ2U7XG4gIH1cblxuICBzaG91bGRVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpIHtcbiAgICBpZiAodGhpcy5fb2JzZXJ2ZWRQcm9wZXJ0aWVzLmZpbmQoKHByb3BlcnR5KSA9PiBjaGFuZ2VkUHJvcGVydGllcy5oYXMocHJvcGVydHkpKSAhPSBudWxsKSB7XG4gICAgICB0aGlzLl91cGRhdGVQcm9wZXJ0aWVzKHRoaXMuZ2V0Q29udHJvbCgpKTtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdlcnJvcnMnKSAmJiB0aGlzLmVycm9ycyAhPSBudWxsKSB7XG4gICAgICAvLyBTZXQgZXJyb3JzIHRvIGNvbXBsZXggY29udHJvbHNcbiAgICAgIHRoaXMuZ2V0Q29udHJvbHMoKS5mb3JFYWNoKChjb250cm9sKSA9PiB7XG4gICAgICAgIGNvbnRyb2wuZXJyb3JzID0gdGhpcy5lcnJvcnM7XG4gICAgICB9KTtcblxuICAgICAgLy8gRmluZCBzaW1wbGUgY29udHJvbHMgYW5kIGFwcGVuZCBlcnJvciBtZXNzYWdlXG4gICAgICBjb25zdCBlcnJvckNvbnRhaW5lciA9IHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCcuZm9ybV9fY29udHJvbC1lcnJvcicpO1xuICAgICAgZXJyb3JDb250YWluZXIuZm9yRWFjaCgoY29udGFpbmVyKSA9PiAoY29udGFpbmVyLmlubmVySFRNTCA9ICcnKSk7XG4gICAgICB0aGlzLmVycm9ycy5mb3JFYWNoKChlcnJvcikgPT4ge1xuICAgICAgICBjb25zdCBrZXkgPSBlcnJvci5wcm9wZXJ0eSA9PT0gJ2luc3RhbmNlJyA/IGVycm9yLmFyZ3VtZW50IDogZXJyb3IucHJvcGVydHkucmVwbGFjZSgnaW5zdGFuY2UuJywgJycpO1xuICAgICAgICBjb25zdCBlcnJvckNvbnRhaW5lciA9IHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKGBbaWQ9XCIke2tleX0tZXJyb3JcIl1gKTtcbiAgICAgICAgaWYgKGVycm9yQ29udGFpbmVyKSB7XG4gICAgICAgICAgY29uc3QgbWVzc2FnZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2d2LWlucHV0LW1lc3NhZ2UnKTtcbiAgICAgICAgICBtZXNzYWdlLmlubmVySFRNTCA9IHRoaXMuZm9ybWF0RXJyb3JNZXNzYWdlKGVycm9yKTtcbiAgICAgICAgICBtZXNzYWdlLmxldmVsID0gJ3dhcm4nO1xuICAgICAgICAgIGVycm9yQ29udGFpbmVyLmFwcGVuZENoaWxkKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHN1cGVyLnNob3VsZFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICAke3RoaXMuX3JlbmRlckNvbnRyb2woKX1cbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtX19jb250cm9sLWVycm9yXCIgaWQ9XCIke3RoaXMuaWQgKyAnLWVycm9yJ31cIj48L2Rpdj5cbiAgICBgO1xuICB9XG5cbiAgc3RhdGljIGdldCBzdHlsZXMoKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIC8vIGxhbmd1YWdlPUNTU1xuICAgICAgY3NzYFxuICAgICAgICA6aG9zdCB7XG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICBtYXJnaW46IDAuNHJlbTtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIDpob3N0KFtoaWRkZW5dKSB7XG4gICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvcm1fX2NvbnRyb2wtZGVzY3JpcHRpb24sXG4gICAgICAgIC5mb3JtX19jb250cm9sLWVycm9yIHtcbiAgICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIH1cblxuICAgICAgICAuZm9ybV9fY29udHJvbC1kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgb3BhY2l0eTogMC44O1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvcm1fX2NvbnRyb2wtbGFiZWwge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2Q5ZDlkOTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICBtYXJnaW46IDAuMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtX19jb250cm9sLWxhYmVsIGxhYmVsIHtcbiAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvcm1fX2NvbnRyb2wtYXJyYXksXG4gICAgICAgIC5mb3JtX19jb250cm9sLW9iamVjdCB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvcm1fX2NvbnRyb2wtZW51bSB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAvKmFsaWduLWl0ZW1zOiBmbGV4LWVuZDsqL1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvcm1fX2NvbnRyb2wtYXJyYXkgZ3YtYnV0dG9uIHtcbiAgICAgICAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtX19jb250cm9sIHtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAuZm9ybV9jb250cm9sLWlubGluZSB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtX2NvbnRyb2wtaW5saW5lID4gKiB7XG4gICAgICAgICAgZmxleDogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jb250ZW50ID4gLmZvcm1fY29udHJvbC1pbmxpbmUgPiAqIHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jb250ZW50ID4gLmZvcm1fY29udHJvbC1pbmxpbmUgPiAqOmxhc3QtY2hpbGQge1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGd2LXNlbGVjdCxcbiAgICAgICAgZ3YtaW5wdXQsXG4gICAgICAgIGd2LWNvZGUsXG4gICAgICAgIGd2LXN3aXRjaCxcbiAgICAgICAgZ3YtZXhwcmVzc2lvbi1sYW5ndWFnZSB7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgbWFyZ2luOiAwLjJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGd2LXNlbGVjdDpob3ZlcixcbiAgICAgICAgZ3YtYXV0b2NvbXBsZXRlOmhvdmVyIHtcbiAgICAgICAgICB6LWluZGV4OiA3MDtcbiAgICAgICAgfVxuICAgICAgYCxcbiAgICBdO1xuICB9XG59XG5cbndpbmRvdy5jdXN0b21FbGVtZW50cy5kZWZpbmUoJ2d2LXNjaGVtYS1mb3JtLWNvbnRyb2wnLCBHdlNjaGVtYUZvcm1Db250cm9sKTtcbiJdfQ==
390
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL29yZ2FuaXNtcy9ndi1zY2hlbWEtZm9ybS1jb250cm9sLmpzIl0sIm5hbWVzIjpbImNzcyIsIkxpdEVsZW1lbnQiLCJodG1sIiwiZGlzcGF0Y2hDdXN0b21FdmVudCIsImlzQ29kZW1pcnJvciIsIkd2U2NoZW1hRm9ybUNvbnRyb2wiLCJwcm9wZXJ0aWVzIiwidHlwZSIsIlN0cmluZyIsImlkIiwicmVmbGVjdCIsIm5hbWUiLCJyZXF1aXJlZCIsIkJvb2xlYW4iLCJkaXNhYmxlZCIsInJlYWRvbmx5IiwidGl0bGUiLCJwYXR0ZXJuIiwiY29udHJvbCIsIk9iamVjdCIsImVycm9ycyIsIkFycmF5IiwidmFsdWUiLCJza2VsZXRvbiIsImhpZGRlbiIsIndyaXRlT25seSIsImNvbnN0cnVjdG9yIiwiX29ic2VydmVkUHJvcGVydGllcyIsImlzRXhwcmVzc2lvbkxhbmd1YWdlIiwiaXNDcm9uRXhwcmVzc2lvbiIsImlzUGFzc3dvcmQiLCJnZXRQbGFjZWhvbGRlciIsInBsYWNlaG9sZGVyIiwiaXNBdXRvY29tcGxldGUiLCJldmVudCIsImdldEVsZW1lbnROYW1lIiwiZW51bSIsIml0ZW1zIiwiaXNDb21wbGV4QXJyYXkiLCJfdXBkYXRlUHJvcGVydGllcyIsImVsZW1lbnQiLCJmb3JFYWNoIiwicHJvcGVydHkiLCJfcmVuZGVyQ29udHJvbCIsImVsZW1lbnROYW1lIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NMaXN0IiwiYWRkIiwiX3NldFZhbHVlIiwiZGVmYXVsdCIsImN1cnJlbnRUYXJnZXQiLCJzY2hlbWEiLCJsYWJlbCIsInRtcCIsInNwbGl0IiwibGVuZ3RoIiwiaXNOYU4iLCJwYXJzZUludCIsIm9wdGlvbnMiLCJ0aXRsZU1hcCIsIm1hcCIsIm11bHRpcGxlIiwiY29kZW1pcnJvck9wdGlvbnMiLCJyb3dzIiwiZGVzY3JpcHRpb24iLCJhZGRFdmVudExpc3RlbmVyIiwiX29uSW5wdXQiLCJiaW5kIiwiYXV0b2NvbXBsZXRlIiwibWluQ2hhcnMiLCJmaWx0ZXIiLCJjbGVhcmFibGUiLCJhcHBlbmRDaGlsZCIsImV2ZW50TmFtZSIsImUiLCJwcmV2ZW50RGVmYXVsdCIsInN0b3BQcm9wYWdhdGlvbiIsInRhcmdldCIsInRhZ05hbWUiLCJkZXRhaWwiLCJnZXRDb250cm9scyIsImZyb20iLCJzaGFkb3dSb290IiwicXVlcnlTZWxlY3RvckFsbCIsImdldENvbnRyb2wiLCJxdWVyeVNlbGVjdG9yIiwiY29udHJvbEVsZW1lbnQiLCJ0b1N0cmluZyIsInVwZGF0ZWQiLCJjaGFuZ2VkUHJvcGVydGllcyIsImhhcyIsIlByb21pc2UiLCJhbGwiLCJ1cGRhdGVDb21wbGV0ZSIsInRoZW4iLCJnZXRVcGRhdGVDb21wbGV0ZSIsImZvcm1hdEVycm9yTWVzc2FnZSIsImVycm9yIiwiYXJndW1lbnQiLCJtZXNzYWdlIiwicmVwbGFjZSIsInNob3VsZFVwZGF0ZSIsImZpbmQiLCJlcnJvckNvbnRhaW5lciIsImNvbnRhaW5lciIsImlubmVySFRNTCIsImtleSIsImxldmVsIiwicmVuZGVyIiwic3R5bGVzIiwid2luZG93IiwiY3VzdG9tRWxlbWVudHMiLCJkZWZpbmUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVNBLEdBQVQsRUFBY0MsVUFBZCxRQUFnQyxhQUFoQztBQUNBLFNBQVNDLElBQVQsUUFBcUIsVUFBckI7QUFDQSxTQUFTQyxtQkFBVCxRQUFvQyxlQUFwQztBQUNBLE9BQU8sbUJBQVA7QUFDQSxPQUFPLDJCQUFQO0FBQ0EsT0FBTyxvQkFBUDtBQUNBLE9BQU8sb0JBQVA7QUFDQSxPQUFPLHNCQUFQO0FBQ0EsT0FBTyxxQ0FBUDtBQUNBLE9BQU8sNkJBQVA7QUFDQSxPQUFPLDBCQUFQO0FBQ0EsT0FBTyxtQ0FBUDtBQUNBLE9BQU8sNENBQVA7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QyxXQUFYO0FBSUQ7O0FBRWdCLGFBQU5xRyxNQUFNLEdBQUc7QUFDbEIsV0FBTyxDQUNMO0FBQ0E5RyxJQUFBQSxHQUFHLDY1QkFGRSxDQUFQO0FBNkZEOztBQTVZaUQ7QUErWXBEK0csTUFBTSxDQUFDQyxjQUFQLENBQXNCQyxNQUF0QixDQUE2Qix3QkFBN0IsRUFBdUQ1RyxtQkFBdkQiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgY3NzLCBMaXRFbGVtZW50IH0gZnJvbSAnbGl0LWVsZW1lbnQnO1xuaW1wb3J0IHsgaHRtbCB9IGZyb20gJ2xpdC1odG1sJztcbmltcG9ydCB7IGRpc3BhdGNoQ3VzdG9tRXZlbnQgfSBmcm9tICcuLi9saWIvZXZlbnRzJztcbmltcG9ydCAnLi4vYXRvbXMvZ3YtaW5wdXQnO1xuaW1wb3J0ICcuLi9hdG9tcy9ndi1pbnB1dC1tZXNzYWdlJztcbmltcG9ydCAnLi4vYXRvbXMvZ3Ytc2VsZWN0JztcbmltcG9ydCAnLi4vYXRvbXMvZ3Ytc3dpdGNoJztcbmltcG9ydCAnLi4vbW9sZWN1bGVzL2d2LWNvZGUnO1xuaW1wb3J0ICcuLi9tb2xlY3VsZXMvZ3YtZXhwcmVzc2lvbi1sYW5ndWFnZSc7XG5pbXBvcnQgJy4uL21vbGVjdWxlcy9ndi1jcm9uLWVkaXRvcic7XG5pbXBvcnQgJy4uL2F0b21zL2d2LWF1dG9jb21wbGV0ZSc7XG5pbXBvcnQgJy4uL29yZ2FuaXNtcy9ndi1zY2hlbWEtZm9ybS1hcnJheSc7XG5pbXBvcnQgJy4uL29yZ2FuaXNtcy9ndi1zY2hlbWEtZm9ybS1jb250cm9sLW9iamVjdCc7XG5pbXBvcnQgeyBpc0NvZGVtaXJyb3IgfSBmcm9tICcuLi9saWIvc2NoZW1hLWZvcm0nO1xuXG5leHBvcnQgY2xhc3MgR3ZTY2hlbWFGb3JtQ29udHJvbCBleHRlbmRzIExpdEVsZW1lbnQge1xuICBzdGF0aWMgZ2V0IHByb3BlcnRpZXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IHsgdHlwZTogU3RyaW5nIH0sXG4gICAgICBpZDogeyB0eXBlOiBTdHJpbmcsIHJlZmxlY3Q6IHRydWUgfSxcbiAgICAgIG5hbWU6IHsgdHlwZTogU3RyaW5nLCByZWZsZWN0OiB0cnVlIH0sXG4gICAgICByZXF1aXJlZDogeyB0eXBlOiBCb29sZWFuLCByZWZsZWN0OiB0cnVlIH0sXG4gICAgICBkaXNhYmxlZDogeyB0eXBlOiBCb29sZWFuLCByZWZsZWN0OiB0cnVlIH0sXG4gICAgICByZWFkb25seTogeyB0eXBlOiBCb29sZWFuLCByZWZsZWN0OiB0cnVlIH0sXG4gICAgICB0aXRsZTogeyB0eXBlOiBTdHJpbmcsIHJlZmxlY3Q6IHRydWUgfSxcbiAgICAgIHBhdHRlcm46IHsgdHlwZTogU3RyaW5nIH0sXG4gICAgICBjb250cm9sOiB7IHR5cGU6IE9iamVjdCB9LFxuICAgICAgZXJyb3JzOiB7IHR5cGU6IEFycmF5IH0sXG4gICAgICB2YWx1ZTogeyB0eXBlOiBPYmplY3QsIHJlZmxlY3Q6IHRydWUgfSxcbiAgICAgIHNrZWxldG9uOiB7IHR5cGU6IEJvb2xlYW4sIHJlZmxlY3Q6IHRydWUgfSxcbiAgICAgIGhpZGRlbjogeyB0eXBlOiBCb29sZWFuLCByZWZsZWN0OiB0cnVlIH0sXG4gICAgICB3cml0ZU9ubHk6IHsgdHlwZTogQm9vbGVhbiwgcmVmbGVjdDogdHJ1ZSB9LFxuICAgIH07XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIC8vIFdoZW4gZm9ybSBoYXMgZXJyb3JzLCB0aGUgY29udHJvbCBpcyBub3QgdXBkYXRlIHRvIGNvbnNlcnZlIHRoZSBlcnJvciBzdGF0ZS5cbiAgICAvLyBUaGlzIGxpc3QgaXMgdXNlZCB0byBmb3JjZSB0aGUgdXBkYXRlIG9mIHByb3BlcnRpZXMgZXZlbiBpbiBlcnJvciBjYXNlLlxuICAgIHRoaXMuX29ic2VydmVkUHJvcGVydGllcyA9IFsnZGlzYWJsZWQnLCAncmVhZG9ubHknLCAncmVxdWlyZWQnXTtcbiAgfVxuXG4gIGlzRXhwcmVzc2lvbkxhbmd1YWdlKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2xbJ3gtc2NoZW1hLWZvcm0nXSAmJiB0aGlzLmNvbnRyb2xbJ3gtc2NoZW1hLWZvcm0nXVsnZXhwcmVzc2lvbi1sYW5ndWFnZSddICE9IG51bGw7XG4gIH1cblxuICBpc0Nyb25FeHByZXNzaW9uKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2xbJ3gtc2NoZW1hLWZvcm0nXSAmJiB0aGlzLmNvbnRyb2xbJ3gtc2NoZW1hLWZvcm0nXVsnY3Jvbi1leHByZXNzaW9uJ10gPT09IHRydWU7XG4gIH1cblxuICBpc1Bhc3N3b3JkKCkge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmNvbnRyb2wud3JpdGVPbmx5ID09PSB0cnVlIHx8XG4gICAgICAodGhpcy5jb250cm9sWyd4LXNjaGVtYS1mb3JtJ10gJiYgdGhpcy5jb250cm9sWyd4LXNjaGVtYS1mb3JtJ10udHlwZSAhPSBudWxsICYmIHRoaXMuY29udHJvbFsneC1zY2hlbWEtZm9ybSddLnR5cGUgPT09ICdwYXNzd29yZCcpXG4gICAgKTtcbiAgfVxuXG4gIGdldFBsYWNlaG9sZGVyKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2xbJ3gtc2NoZW1hLWZvcm0nXSAmJiB0aGlzLmNvbnRyb2xbJ3gtc2NoZW1hLWZvcm0nXS5wbGFjZWhvbGRlciA/IHRoaXMuY29udHJvbFsneC1zY2hlbWEtZm9ybSddLnBsYWNlaG9sZGVyIDogbnVsbDtcbiAgfVxuXG4gIGlzQ29kZW1pcnJvcigpIHtcbiAgICByZXR1cm4gaXNDb2RlbWlycm9yKHRoaXMuY29udHJvbCk7XG4gIH1cblxuICBpc0F1dG9jb21wbGV0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sWyd4LXNjaGVtYS1mb3JtJ10gJiYgdGhpcy5jb250cm9sWyd4LXNjaGVtYS1mb3JtJ10uZXZlbnQgIT0gbnVsbCAmJiB0aGlzLmNvbnRyb2wudHlwZSA9PT0gJ3N0cmluZyc7XG4gIH1cblxuICBnZXRFbGVtZW50TmFtZSgpIHtcbiAgICBpZiAodGhpcy5jb250cm9sLnR5cGUgPT09ICdvYmplY3QnKSB7XG4gICAgICByZXR1cm4gJ2d2LXNjaGVtYS1mb3JtLWNvbnRyb2wtb2JqZWN0JztcbiAgICB9XG4gICAgaWYgKCh0aGlzLmNvbnRyb2wuZW51bSB8fCAodGhpcy5jb250cm9sLml0ZW1zICYmIHRoaXMuY29udHJvbC5pdGVtcy5lbnVtKSkgJiYgIXRoaXMuaXNBdXRvY29tcGxldGUoKSkge1xuICAgICAgcmV0dXJuICdndi1zZWxlY3QnO1xuICAgIH0gZWxzZSBpZiAodGhpcy5pc0NvbXBsZXhBcnJheSgpKSB7XG4gICAgICByZXR1cm4gJ2d2LXNjaGVtYS1mb3JtLWFycmF5JztcbiAgICB9IGVsc2UgaWYgKHRoaXMuY29udHJvbC50eXBlID09PSAnYXJyYXknKSB7XG4gICAgICByZXR1cm4gJ2d2LWJ1dHRvbic7XG4gICAgfSBlbHNlIGlmICh0aGlzLmNvbnRyb2wudHlwZSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICByZXR1cm4gJ2d2LXN3aXRjaCc7XG4gICAgfSBlbHNlIGlmICh0aGlzLmlzRXhwcmVzc2lvbkxhbmd1YWdlKCkpIHtcbiAgICAgIHJldHVybiAnZ3YtZXhwcmVzc2lvbi1sYW5ndWFnZSc7XG4gICAgfSBlbHNlIGlmICh0aGlzLmlzQ29kZW1pcnJvcigpKSB7XG4gICAgICByZXR1cm4gJ2d2LWNvZGUnO1xuICAgIH0gZWxzZSBpZiAodGhpcy5pc0Nyb25FeHByZXNzaW9uKCkpIHtcbiAgICAgIHJldHVybiAnZ3YtY3Jvbi1lZGl0b3InO1xuICAgIH1cblxuICAgIHJldHVybiAnZ3YtaW5wdXQnO1xuICB9XG5cbiAgaXNDb21wbGV4QXJyYXkoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbC50eXBlID09PSAnYXJyYXknICYmICF0aGlzLmNvbnRyb2wuaXRlbXMuZW51bTtcbiAgfVxuXG4gIF91cGRhdGVQcm9wZXJ0aWVzKGVsZW1lbnQpIHtcbiAgICBpZiAoZWxlbWVudCAhPSBudWxsKSB7XG4gICAgICB0aGlzLl9vYnNlcnZlZFByb3BlcnRpZXMuZm9yRWFjaCgocHJvcGVydHkpID0+IHtcbiAgICAgICAgaWYgKHRoaXNbcHJvcGVydHldICE9IG51bGwpIHtcbiAgICAgICAgICBlbGVtZW50W3Byb3BlcnR5XSA9IHRoaXNbcHJvcGVydHldO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBfcmVuZGVyQ29udHJvbCgpIHtcbiAgICBjb25zdCBlbGVtZW50TmFtZSA9IHRoaXMuZ2V0RWxlbWVudE5hbWUoKTtcbiAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChlbGVtZW50TmFtZSk7XG4gICAgZWxlbWVudC5pZCA9IHRoaXMuaWQ7XG4gICAgZWxlbWVudC5uYW1lID0gdGhpcy5pZDtcbiAgICBlbGVtZW50LnNrZWxldG9uID0gdGhpcy5za2VsZXRvbjtcbiAgICBlbGVtZW50LmNsYXNzTGlzdC5hZGQoJ2Zvcm1fX2NvbnRyb2wnKTtcblxuICAgIGlmICh0aGlzLnZhbHVlICE9IG51bGwpIHtcbiAgICAgIHRoaXMuX3NldFZhbHVlKGVsZW1lbnQpO1xuICAgIH1cbiAgICBpZiAodGhpcy52YWx1ZSA9PSBudWxsICYmIHRoaXMuY29udHJvbC5kZWZhdWx0ICE9IG51bGwpIHtcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmNvbnRyb2wuZGVmYXVsdDtcbiAgICAgIGRpc3BhdGNoQ3VzdG9tRXZlbnQodGhpcywgJ2RlZmF1bHQtdmFsdWUnLCB7IHZhbHVlOiB0aGlzLnZhbHVlLCBjdXJyZW50VGFyZ2V0OiBlbGVtZW50LCBjb250cm9sOiB0aGlzLmNvbnRyb2wgfSk7XG4gICAgfVxuICAgIGlmICh0aGlzLnZhbHVlICE9IG51bGwpIHtcbiAgICAgIHRoaXMuX3NldFZhbHVlKGVsZW1lbnQpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNvbnRyb2wudHlwZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGVsZW1lbnQuc2NoZW1hID0gdGhpcy5jb250cm9sO1xuICAgIH0gZWxzZSBpZiAodGhpcy5pc0NvbXBsZXhBcnJheSgpKSB7XG4gICAgICBlbGVtZW50LnNjaGVtYSA9IHRoaXMuY29udHJvbC5pdGVtcztcbiAgICB9XG5cbiAgICB0aGlzLl91cGRhdGVQcm9wZXJ0aWVzKGVsZW1lbnQpO1xuXG4gICAgaWYgKHRoaXMuY29udHJvbC50aXRsZSkge1xuICAgICAgZWxlbWVudC5sYWJlbCA9IHRoaXMuY29udHJvbC50aXRsZTtcbiAgICAgIGVsZW1lbnQudGl0bGUgPSB0aGlzLmNvbnRyb2wudGl0bGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHRtcCA9IHRoaXMuaWQuc3BsaXQoJy4nKTtcbiAgICAgIGNvbnN0IHRpdGxlID0gdG1wW3RtcC5sZW5ndGggLSAxXTtcbiAgICAgIGlmIChpc05hTihwYXJzZUludCh0aXRsZSwgMTApKSkge1xuICAgICAgICBlbGVtZW50LmxhYmVsID0gdGl0bGU7XG4gICAgICAgIGVsZW1lbnQudGl0bGUgPSB0aXRsZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5jb250cm9sLnBhdHRlcm4pIHtcbiAgICAgIGVsZW1lbnQucGF0dGVybiA9IHRoaXMuY29udHJvbC5wYXR0ZXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNvbnRyb2wudHlwZSA9PT0gJ2ludGVnZXInKSB7XG4gICAgICBlbGVtZW50LnR5cGUgPSAnbnVtYmVyJztcbiAgICB9XG5cbiAgICBjb25zdCBwbGFjZWhvbGRlciA9IHRoaXMuZ2V0UGxhY2Vob2xkZXIoKTtcblxuICAgIGlmICh0aGlzLmNvbnRyb2wuZW51bSB8fCAodGhpcy5jb250cm9sLml0ZW1zICYmIHRoaXMuY29udHJvbC5pdGVtcy5lbnVtKSkge1xuICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuY29udHJvbC5lbnVtIHx8IHRoaXMuY29udHJvbC5pdGVtcy5lbnVtO1xuICAgICAgaWYgKHRoaXMuY29udHJvbFsneC1zY2hlbWEtZm9ybSddICYmIHRoaXMuY29udHJvbFsneC1zY2hlbWEtZm9ybSddLnRpdGxlTWFwKSB7XG4gICAgICAgIGVsZW1lbnQub3B0aW9ucyA9IG9wdGlvbnMubWFwKCh2YWx1ZSkgPT4gKHtcbiAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICBsYWJlbDogdGhpcy5jb250cm9sWyd4LXNjaGVtYS1mb3JtJ10udGl0bGVNYXBbdmFsdWVdIHx8IHZhbHVlLFxuICAgICAgICB9KSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlbGVtZW50Lm9wdGlvbnMgPSBvcHRpb25zO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuY29udHJvbC50eXBlID09PSAnYXJyYXknKSB7XG4gICAgICAgIGVsZW1lbnQubXVsdGlwbGUgPSB0cnVlO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy5pc0NvZGVtaXJyb3IoKSkge1xuICAgICAgZWxlbWVudC5vcHRpb25zID0gdGhpcy5jb250cm9sWyd4LXNjaGVtYS1mb3JtJ10uY29kZW1pcnJvck9wdGlvbnM7XG4gICAgICBpZiAodGhpcy5jb250cm9sLmRlZmF1bHQgIT0gbnVsbCAmJiBlbGVtZW50Lm9wdGlvbnMudmFsdWUgPT0gbnVsbCkge1xuICAgICAgICBlbGVtZW50Lm9wdGlvbnMudmFsdWUgPSB0aGlzLmNvbnRyb2wuZGVmYXVsdDtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNFeHByZXNzaW9uTGFuZ3VhZ2UoKSkge1xuICAgICAgZWxlbWVudC5vcHRpb25zID0ge307XG4gICAgICBlbGVtZW50LnJvd3MgPSAxO1xuICAgIH0gZWxzZSBpZiAodGhpcy5pc1Bhc3N3b3JkKCkpIHtcbiAgICAgIGVsZW1lbnQudHlwZSA9ICdwYXNzd29yZCc7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY29udHJvbC5kZXNjcmlwdGlvbikge1xuICAgICAgZWxlbWVudC5kZXNjcmlwdGlvbiA9IHRoaXMuY29udHJvbC5kZXNjcmlwdGlvbjtcbiAgICB9XG5cbiAgICBpZiAocGxhY2Vob2xkZXIgIT0gbnVsbCkge1xuICAgICAgaWYgKHRoaXMuaXNFeHByZXNzaW9uTGFuZ3VhZ2UoKSB8fCB0aGlzLmlzQ29kZW1pcnJvcigpKSB7XG4gICAgICAgIGVsZW1lbnQub3B0aW9ucy5wbGFjZWhvbGRlciA9IHBsYWNlaG9sZGVyO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZWxlbWVudC5wbGFjZWhvbGRlciA9IHBsYWNlaG9sZGVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihgJHtlbGVtZW50TmFtZX06aW5wdXRgLCB0aGlzLl9vbklucHV0LmJpbmQodGhpcykpO1xuXG4gICAgbGV0IGN1cnJlbnRUYXJnZXQ7XG4gICAgaWYgKHRoaXMuaXNBdXRvY29tcGxldGUoKSkge1xuICAgICAgY29uc3QgYXV0b2NvbXBsZXRlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZ3YtYXV0b2NvbXBsZXRlJyk7XG4gICAgICBhdXRvY29tcGxldGUubWluQ2hhcnMgPSAwO1xuICAgICAgYXV0b2NvbXBsZXRlLmZpbHRlciA9IHRydWU7XG4gICAgICBlbGVtZW50LmNsZWFyYWJsZSA9IHRydWU7XG4gICAgICBhdXRvY29tcGxldGUuaWQgPSB0aGlzLmlkO1xuICAgICAgYXV0b2NvbXBsZXRlLmFwcGVuZENoaWxkKGVsZW1lbnQpO1xuICAgICAgYXV0b2NvbXBsZXRlLmFkZEV2ZW50TGlzdGVuZXIoYGd2LWF1dG9jb21wbGV0ZTpzZWxlY3RgLCB0aGlzLl9vbklucHV0LmJpbmQodGhpcykpO1xuICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKGBndi1pbnB1dDpjbGVhcmAsIHRoaXMuX29uSW5wdXQuYmluZCh0aGlzKSk7XG4gICAgICBjdXJyZW50VGFyZ2V0ID0gYXV0b2NvbXBsZXRlO1xuICAgIH0gZWxzZSB7XG4gICAgICBjdXJyZW50VGFyZ2V0ID0gZWxlbWVudDtcbiAgICB9XG4gICAgaWYgKHRoaXMuY29udHJvbFsneC1zY2hlbWEtZm9ybSddICE9IG51bGwgJiYgdGhpcy5jb250cm9sWyd4LXNjaGVtYS1mb3JtJ10uZXZlbnQgIT0gbnVsbCkge1xuICAgICAgY29uc3QgbmFtZSA9IHRoaXMuY29udHJvbFsneC1zY2hlbWEtZm9ybSddLmV2ZW50Lm5hbWU7XG4gICAgICBkaXNwYXRjaEN1c3RvbUV2ZW50KHRoaXMsICdjb250cm9sLXJlYWR5Jywge1xuICAgICAgICAuLi50aGlzLmNvbnRyb2xbJ3gtc2NoZW1hLWZvcm0nXS5ldmVudCxcbiAgICAgICAgY3VycmVudFRhcmdldCxcbiAgICAgICAgZXZlbnROYW1lOiBuYW1lLFxuICAgICAgICBjb250cm9sOiB0aGlzLmNvbnRyb2wsXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGN1cnJlbnRUYXJnZXQ7XG4gIH1cblxuICBfb25JbnB1dChlKSB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgbGV0IHZhbHVlID0gbnVsbDtcbiAgICBpZiAoZS50YXJnZXQudGFnTmFtZSA9PT0gJ0dWLUFVVE9DT01QTEVURScpIHtcbiAgICAgIHZhbHVlID0gZS5kZXRhaWwudmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbHVlID0gZS5kZXRhaWw7XG4gICAgfVxuICAgIGRpc3BhdGNoQ3VzdG9tRXZlbnQodGhpcywgJ2NoYW5nZScsIHsgdmFsdWUsIGN1cnJlbnRUYXJnZXQ6IGUudGFyZ2V0LCBjb250cm9sOiB0aGlzLmNvbnRyb2wgfSk7XG4gIH1cblxuICBnZXRDb250cm9scygpIHtcbiAgICByZXR1cm4gW1xuICAgICAgLi4uQXJyYXkuZnJvbSh0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgnZ3Ytc2NoZW1hLWZvcm0tY29udHJvbCcpKSxcbiAgICAgIC4uLkFycmF5LmZyb20odGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoJ2d2LXNjaGVtYS1mb3JtLWNvbnRyb2wtYXJyYXknKSksXG4gICAgICAuLi5BcnJheS5mcm9tKHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCdndi1zY2hlbWEtZm9ybS1jb250cm9sLW9iamVjdCcpKSxcbiAgICBdO1xuICB9XG5cbiAgZ2V0Q29udHJvbChpZCkge1xuICAgIGlmIChpZCA9PSBudWxsKSB7XG4gICAgICBpZCA9IHRoaXMuaWQ7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihgW2lkPVwiJHtpZH1cIl1gKTtcbiAgfVxuXG4gIF9zZXRWYWx1ZShjb250cm9sRWxlbWVudCkge1xuICAgIGlmICh0aGlzLnZhbHVlICE9IG51bGwgJiYgY29udHJvbEVsZW1lbnQgIT0gbnVsbCkge1xuICAgICAgaWYgKHRoaXMuY29udHJvbC50eXBlID09PSAnYm9vbGVhbicgfHwgdGhpcy5jb250cm9sLnR5cGUgPT09ICdhcnJheScgfHwgdGhpcy5jb250cm9sLnR5cGUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIGNvbnRyb2xFbGVtZW50LnZhbHVlID0gdGhpcy52YWx1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnRyb2xFbGVtZW50LnZhbHVlID0gdGhpcy52YWx1ZS50b1N0cmluZyA/IHRoaXMudmFsdWUudG9TdHJpbmcoKSA6IHRoaXMudmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjb250cm9sRWxlbWVudDtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpIHtcbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCd2YWx1ZScpKSB7XG4gICAgICBQcm9taXNlLmFsbCh0aGlzLmdldENvbnRyb2xzKCkubWFwKChjb250cm9sKSA9PiBjb250cm9sLnVwZGF0ZUNvbXBsZXRlKSkudGhlbigoKSA9PiB7XG4gICAgICAgIHRoaXMuX3NldFZhbHVlKHRoaXMuZ2V0Q29udHJvbCgpKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGdldFVwZGF0ZUNvbXBsZXRlKCkge1xuICAgIGF3YWl0IHN1cGVyLmdldFVwZGF0ZUNvbXBsZXRlKCk7XG4gICAgYXdhaXQgUHJvbWlzZS5hbGwodGhpcy5nZXRDb250cm9scygpLm1hcCgoZSkgPT4gZS51cGRhdGVDb21wbGV0ZSkpO1xuICB9XG5cbiAgZm9ybWF0RXJyb3JNZXNzYWdlKGVycm9yKSB7XG4gICAgaWYgKGVycm9yLnNjaGVtYS5wcm9wZXJ0aWVzICE9IG51bGwgJiYgZXJyb3Iuc2NoZW1hLnByb3BlcnRpZXNbZXJyb3IuYXJndW1lbnRdICE9IG51bGwpIHtcbiAgICAgIGNvbnN0IHRpdGxlID0gZXJyb3Iuc2NoZW1hLnByb3BlcnRpZXNbZXJyb3IuYXJndW1lbnRdLnRpdGxlO1xuICAgICAgaWYgKHRpdGxlKSB7XG4gICAgICAgIHJldHVybiBlcnJvci5tZXNzYWdlLnJlcGxhY2UoZXJyb3IuYXJndW1lbnQsIHRpdGxlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGVycm9yLm1lc3NhZ2U7XG4gIH1cblxuICBzaG91bGRVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpIHtcbiAgICBpZiAodGhpcy5fb2JzZXJ2ZWRQcm9wZXJ0aWVzLmZpbmQoKHByb3BlcnR5KSA9PiBjaGFuZ2VkUHJvcGVydGllcy5oYXMocHJvcGVydHkpKSAhPSBudWxsKSB7XG4gICAgICB0aGlzLl91cGRhdGVQcm9wZXJ0aWVzKHRoaXMuZ2V0Q29udHJvbCgpKTtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdlcnJvcnMnKSAmJiB0aGlzLmVycm9ycyAhPSBudWxsKSB7XG4gICAgICAvLyBTZXQgZXJyb3JzIHRvIGNvbXBsZXggY29udHJvbHNcbiAgICAgIHRoaXMuZ2V0Q29udHJvbHMoKS5mb3JFYWNoKChjb250cm9sKSA9PiB7XG4gICAgICAgIGNvbnRyb2wuZXJyb3JzID0gdGhpcy5lcnJvcnM7XG4gICAgICB9KTtcblxuICAgICAgLy8gRmluZCBzaW1wbGUgY29udHJvbHMgYW5kIGFwcGVuZCBlcnJvciBtZXNzYWdlXG4gICAgICBjb25zdCBlcnJvckNvbnRhaW5lciA9IHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCcuZm9ybV9fY29udHJvbC1lcnJvcicpO1xuICAgICAgZXJyb3JDb250YWluZXIuZm9yRWFjaCgoY29udGFpbmVyKSA9PiAoY29udGFpbmVyLmlubmVySFRNTCA9ICcnKSk7XG4gICAgICB0aGlzLmVycm9ycy5mb3JFYWNoKChlcnJvcikgPT4ge1xuICAgICAgICBjb25zdCBrZXkgPSBlcnJvci5wcm9wZXJ0eSA9PT0gJ2luc3RhbmNlJyA/IGVycm9yLmFyZ3VtZW50IDogZXJyb3IucHJvcGVydHkucmVwbGFjZSgnaW5zdGFuY2UuJywgJycpO1xuICAgICAgICBjb25zdCBlcnJvckNvbnRhaW5lciA9IHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKGBbaWQ9XCIke2tleX0tZXJyb3JcIl1gKTtcbiAgICAgICAgaWYgKGVycm9yQ29udGFpbmVyKSB7XG4gICAgICAgICAgY29uc3QgbWVzc2FnZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2d2LWlucHV0LW1lc3NhZ2UnKTtcbiAgICAgICAgICBtZXNzYWdlLmlubmVySFRNTCA9IHRoaXMuZm9ybWF0RXJyb3JNZXNzYWdlKGVycm9yKTtcbiAgICAgICAgICBtZXNzYWdlLmxldmVsID0gJ3dhcm4nO1xuICAgICAgICAgIGVycm9yQ29udGFpbmVyLmFwcGVuZENoaWxkKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHN1cGVyLnNob3VsZFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICAke3RoaXMuX3JlbmRlckNvbnRyb2woKX1cbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtX19jb250cm9sLWVycm9yXCIgaWQ9XCIke3RoaXMuaWQgKyAnLWVycm9yJ31cIj48L2Rpdj5cbiAgICBgO1xuICB9XG5cbiAgc3RhdGljIGdldCBzdHlsZXMoKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIC8vIGxhbmd1YWdlPUNTU1xuICAgICAgY3NzYFxuICAgICAgICA6aG9zdCB7XG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICBtYXJnaW46IDAuNHJlbTtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIDpob3N0KFtoaWRkZW5dKSB7XG4gICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvcm1fX2NvbnRyb2wtZGVzY3JpcHRpb24sXG4gICAgICAgIC5mb3JtX19jb250cm9sLWVycm9yIHtcbiAgICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIH1cblxuICAgICAgICAuZm9ybV9fY29udHJvbC1kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgb3BhY2l0eTogMC44O1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvcm1fX2NvbnRyb2wtbGFiZWwge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2Q5ZDlkOTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICBtYXJnaW46IDAuMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtX19jb250cm9sLWxhYmVsIGxhYmVsIHtcbiAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvcm1fX2NvbnRyb2wtYXJyYXksXG4gICAgICAgIC5mb3JtX19jb250cm9sLW9iamVjdCB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvcm1fX2NvbnRyb2wtZW51bSB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAvKmFsaWduLWl0ZW1zOiBmbGV4LWVuZDsqL1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvcm1fX2NvbnRyb2wtYXJyYXkgZ3YtYnV0dG9uIHtcbiAgICAgICAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtX19jb250cm9sIHtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAuZm9ybV9jb250cm9sLWlubGluZSB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtX2NvbnRyb2wtaW5saW5lID4gKiB7XG4gICAgICAgICAgZmxleDogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jb250ZW50ID4gLmZvcm1fY29udHJvbC1pbmxpbmUgPiAqIHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jb250ZW50ID4gLmZvcm1fY29udHJvbC1pbmxpbmUgPiAqOmxhc3QtY2hpbGQge1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGd2LXNlbGVjdCxcbiAgICAgICAgZ3YtaW5wdXQsXG4gICAgICAgIGd2LWNvZGUsXG4gICAgICAgIGd2LXN3aXRjaCxcbiAgICAgICAgZ3YtZXhwcmVzc2lvbi1sYW5ndWFnZSB7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgbWFyZ2luOiAwLjJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGd2LXNlbGVjdDpob3ZlcixcbiAgICAgICAgZ3YtYXV0b2NvbXBsZXRlOmhvdmVyIHtcbiAgICAgICAgICB6LWluZGV4OiA3MDtcbiAgICAgICAgfVxuICAgICAgYCxcbiAgICBdO1xuICB9XG59XG5cbndpbmRvdy5jdXN0b21FbGVtZW50cy5kZWZpbmUoJ2d2LXNjaGVtYS1mb3JtLWNvbnRyb2wnLCBHdlNjaGVtYUZvcm1Db250cm9sKTtcbiJdfQ==