@netgrif/components-core 6.2.1 → 6.2.3

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 (38) hide show
  1. package/commons/schema.d.ts +1 -0
  2. package/esm2020/assets/i18n/de.json +11 -9
  3. package/esm2020/assets/i18n/en.json +4 -2
  4. package/esm2020/assets/i18n/sk.json +4 -2
  5. package/esm2020/commons/schema.mjs +1 -1
  6. package/esm2020/lib/authentication/components/abstract-authentication-overlay.mjs +4 -1
  7. package/esm2020/lib/authorization/permission/access.service.mjs +2 -2
  8. package/esm2020/lib/authorization/role/role-guard.service.mjs +36 -11
  9. package/esm2020/lib/data-fields/file-field/abstract-file-field.component.mjs +7 -3
  10. package/esm2020/lib/data-fields/file-list-field/abstract-file-list-field.component.mjs +5 -2
  11. package/esm2020/lib/data-fields/i18n-field/i18n-divider-field/abstract-i18n-divider-field.component.mjs +7 -1
  12. package/esm2020/lib/data-fields/i18n-field/models/i18n-field.mjs +5 -5
  13. package/esm2020/lib/data-fields/models/abstract-data-field.mjs +1 -1
  14. package/esm2020/lib/data-fields/multichoice-field/multichoice-autocomplete-field/abstract-multichoice-autocomplete-field-component.component.mjs +5 -2
  15. package/esm2020/lib/data-fields/number-field/currency-number-field/abstract-currency-number-field.component.mjs +3 -2
  16. package/esm2020/lib/navigation/navigation-double-drawer/abstract-navigation-double-drawer.mjs +7 -4
  17. package/esm2020/lib/resources/engine-endpoint/task-resource.service.mjs +3 -3
  18. package/esm2020/lib/search/models/category/case/case-dataset.mjs +7 -4
  19. package/esm2020/lib/search/search-operand-input-component/abstract-search-operand-input.component.mjs +3 -3
  20. package/esm2020/lib/side-menu/content-components/new-case/abstract-new-case.component.mjs +34 -12
  21. package/esm2020/lib/task-content/field-component-resolver/abstract-field-component-resolver.component.mjs +2 -3
  22. package/fesm2015/netgrif-components-core.mjs +132 -56
  23. package/fesm2015/netgrif-components-core.mjs.map +1 -1
  24. package/fesm2020/netgrif-components-core.mjs +131 -56
  25. package/fesm2020/netgrif-components-core.mjs.map +1 -1
  26. package/lib/authorization/role/role-guard.service.d.ts +2 -1
  27. package/lib/data-fields/i18n-field/i18n-divider-field/abstract-i18n-divider-field.component.d.ts +1 -0
  28. package/lib/data-fields/models/abstract-data-field.d.ts +1 -1
  29. package/lib/data-fields/multichoice-field/multichoice-autocomplete-field/abstract-multichoice-autocomplete-field-component.component.d.ts +1 -0
  30. package/lib/data-fields/number-field/currency-number-field/abstract-currency-number-field.component.d.ts +1 -0
  31. package/lib/navigation/navigation-double-drawer/abstract-navigation-double-drawer.d.ts +1 -1
  32. package/lib/resources/engine-endpoint/task-resource.service.d.ts +2 -1
  33. package/lib/search/search-operand-input-component/abstract-search-operand-input.component.d.ts +1 -1
  34. package/lib/side-menu/content-components/new-case/abstract-new-case.component.d.ts +2 -0
  35. package/package.json +1 -1
  36. package/src/assets/i18n/de.json +11 -9
  37. package/src/assets/i18n/en.json +5 -2
  38. package/src/assets/i18n/sk.json +4 -2
@@ -21,8 +21,8 @@ export class I18nField extends DataField {
21
21
  && ((!a.translations && !!b.translations) || (!b.translations && !!a.translations)));
22
22
  }
23
23
  static translationsEquality(a, b) {
24
- const aKeys = Object.keys(a.translations).sort();
25
- const bKeys = Object.keys(b.translations).sort();
24
+ const aKeys = !!a.translations ? Object.keys(a.translations).sort() : [];
25
+ const bKeys = !!b.translations ? Object.keys(b.translations).sort() : [];
26
26
  if (aKeys.length !== bKeys.length
27
27
  || !aKeys.every((element, index) => {
28
28
  return element === bKeys[index];
@@ -138,13 +138,13 @@ export class I18nField extends DataField {
138
138
  validTranslationRequired(countries) {
139
139
  return (fc) => {
140
140
  return countries.every(languageCode => languageCode in fc.value.translations)
141
- ? (null) : ({ translationRequired: true });
141
+ ? null : ({ translationRequired: true });
142
142
  };
143
143
  }
144
144
  validTranslationOnly(countries) {
145
145
  return (fc) => {
146
146
  return Object.keys(fc.value.translations).every(translation => countries.includes(translation))
147
- ? (null) : ({ translationOnly: true });
147
+ ? null : ({ translationOnly: true });
148
148
  };
149
149
  }
150
150
  validRequiredI18n(fc) {
@@ -152,4 +152,4 @@ export class I18nField extends DataField {
152
152
  ? ({ requiredI18n: true }) : null;
153
153
  }
154
154
  }
155
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi1maWVsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvZGF0YS1maWVsZHMvaTE4bi1maWVsZC9tb2RlbHMvaTE4bi1maWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFTM0QsTUFBTSxDQUFOLElBQVksbUJBSVg7QUFKRCxXQUFZLG1CQUFtQjtJQUMzQixtRUFBNEMsQ0FBQTtJQUM1QywyREFBb0MsQ0FBQTtJQUNwQyxxREFBOEIsQ0FBQTtBQUNsQyxDQUFDLEVBSlcsbUJBQW1CLEtBQW5CLG1CQUFtQixRQUk5QjtBQUVELE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLElBQUksQ0FBQztBQUUxQyxNQUFNLE9BQU8sU0FBVSxTQUFRLFNBQXlCO0lBRTVDLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFpQixFQUFFLENBQWlCO1FBQ3ZFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxJQUFJLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQztlQUN0QyxDQUNDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO21CQUNsQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQzttQkFDckMsQ0FBQyxDQUFDLENBQUMsWUFBWSxLQUFLLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FDekMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVPLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBaUIsRUFBRSxDQUFpQjtRQUM5RCxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFH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QyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztZQUNwRixDQUFDLENBQUMsQ0FBQyxFQUFDLFlBQVksRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDeEMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEYXRhRmllbGR9IGZyb20gJy4uLy4uL21vZGVscy9hYnN0cmFjdC1kYXRhLWZpZWxkJztcbmltcG9ydCB7QmVoYXZpb3J9IGZyb20gJy4uLy4uL21vZGVscy9iZWhhdmlvcic7XG5pbXBvcnQge0xheW91dH0gZnJvbSAnLi4vLi4vbW9kZWxzL2xheW91dCc7XG5pbXBvcnQge1ZhbGlkYXRpb259IGZyb20gJy4uLy4uL21vZGVscy92YWxpZGF0aW9uJztcbmltcG9ydCB7Q29tcG9uZW50fSBmcm9tICcuLi8uLi9tb2RlbHMvY29tcG9uZW50JztcbmltcG9ydCB7STE4bkZpZWxkVHJhbnNsYXRpb25zLCBJMThuRmllbGRWYWx1ZX0gZnJvbSAnLi9pMThuLWZpZWxkLXZhbHVlJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0Zvcm1Db250cm9sLCBWYWxpZGF0b3JGbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5leHBvcnQgZW51bSBJMThuRmllbGRWYWxpZGF0aW9uIHtcbiAgICBUUkFOU0xBVElPTl9SRVFVSVJFRCA9ICd0cmFuc2xhdGlvblJlcXVpcmVkJyxcbiAgICBUUkFOU0xBVElPTl9PTkxZID0gJ3RyYW5zbGF0aW9uT25seScsXG4gICAgUkVRVUlSRURfSTE4TiA9ICdyZXF1aXJlZEkxOG4nXG59XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0xBTkdVQUdFX0NPREUgPSAneHgnO1xuXG5leHBvcnQgY2xhc3MgSTE4bkZpZWxkIGV4dGVuZHMgRGF0YUZpZWxkPEkxOG5GaWVsZFZhbHVlPiB7XG5cbiAgICBwcml2YXRlIHN0YXRpYyBkZWZhdWx0VmFsdWVOb25FcXVhbGl0eShhOiBJMThuRmllbGRWYWx1ZSwgYjogSTE4bkZpZWxkVmFsdWUpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICghKCFhLmRlZmF1bHRWYWx1ZSAmJiAhYi5kZWZhdWx0VmFsdWUpXG4gICAgICAgICAgICAmJiAoXG4gICAgICAgICAgICAgICAgKCFhLmRlZmF1bHRWYWx1ZSAmJiAhIWIuZGVmYXVsdFZhbHVlKVxuICAgICAgICAgICAgICAgIHx8ICghYi5kZWZhdWx0VmFsdWUgJiYgISFhLmRlZmF1bHRWYWx1ZSlcbiAgICAgICAgICAgICAgICB8fCAoYS5kZWZhdWx0VmFsdWUgIT09IGIuZGVmYXVsdFZhbHVlKVxuICAgICAgICAgICAgKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMga2V5Tm9uRXF1YWxpdHkoYTogSTE4bkZpZWxkVmFsdWUsIGI6IEkxOG5GaWVsZFZhbHVlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoISghYS5rZXkgJiYgIWIua2V5KSAmJiAoKCFhLmtleSAmJiAhIWIua2V5KSB8fCAoIWIua2V5ICYmICEhYS5rZXkpIHx8IChhLmtleSAhPT0gYi5rZXkpKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgdHJhbnNsYXRpb25zTm9uRXF1YWxpdHkoYTogSTE4bkZpZWxkVmFsdWUsIGI6IEkxOG5GaWVsZFZhbHVlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoISghYS50cmFuc2xhdGlvbnMgJiYgIWIudHJhbnNsYXRpb25zKVxuICAgICAgICAgICAgJiYgKCghYS50cmFuc2xhdGlvbnMgJiYgISFiLnRyYW5zbGF0aW9ucykgfHwgKCFiLnRyYW5zbGF0aW9ucyAmJiAhIWEudHJhbnNsYXRpb25zKSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIHRyYW5zbGF0aW9uc0VxdWFsaXR5KGE6IEkxOG5GaWVsZFZhbHVlLCBiOiBJMThuRmllbGRWYWx1ZSk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBhS2V5cyA9IE9iamVjdC5rZXlzKGEudHJhbnNsYXRpb25zKS5zb3J0KCk7XG4gICAgICAgIGNvbnN0IGJLZXlzID0gT2JqZWN0LmtleXMoYi50cmFuc2xhdGlvbnMpLnNvcnQoKTtcbiAgICAgICAgaWYgKGFLZXlzLmxlbmd0aCAhPT0gYktleXMubGVuZ3RoXG4gICAgICAgICAgICB8fCAhYUtleXMuZXZlcnkoKGVsZW1lbnQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQgPT09IGJLZXlzW2luZGV4XTtcbiAgICAgICAgICAgIH0pKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBrIGluIGEudHJhbnNsYXRpb25zKSB7XG4gICAgICAgICAgICBpZiAoYS50cmFuc2xhdGlvbnNba10gIT09IGIudHJhbnNsYXRpb25zW2tdKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgdG9PYmplY3QodGVtcGxhdGVWYWx1ZTogSTE4bkZpZWxkVmFsdWUpOiBJMThuRmllbGRUcmFuc2xhdGlvbnMge1xuICAgICAgICBjb25zdCBvYmplY3QgPSB7fTtcbiAgICAgICAgb2JqZWN0W0RFRkFVTFRfTEFOR1VBR0VfQ09ERV0gPSB0ZW1wbGF0ZVZhbHVlLmRlZmF1bHRWYWx1ZTtcbiAgICAgICAgZm9yIChjb25zdCBrIGluIHRlbXBsYXRlVmFsdWUudHJhbnNsYXRpb25zKSB7XG4gICAgICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRlbXBsYXRlVmFsdWUudHJhbnNsYXRpb25zLCBrKSkge1xuICAgICAgICAgICAgICAgIG9iamVjdFtrXSA9IHRlbXBsYXRlVmFsdWUudHJhbnNsYXRpb25zW2tdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBmcm9tT2JqZWN0KHRlbXBsYXRlVmFsdWU6IEkxOG5GaWVsZFRyYW5zbGF0aW9ucywgdGVtcGxhdGVLZXk6IHN0cmluZyk6IEkxOG5GaWVsZFZhbHVlIHtcbiAgICAgICAgY29uc3QgaTE4bk9iamVjdCA9IHtcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogdGVtcGxhdGVWYWx1ZVtERUZBVUxUX0xBTkdVQUdFX0NPREVdLFxuICAgICAgICAgICAga2V5OiB0ZW1wbGF0ZUtleSxcbiAgICAgICAgICAgIHRyYW5zbGF0aW9uczoge31cbiAgICAgICAgfTtcbiAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModGVtcGxhdGVWYWx1ZSkpIHtcbiAgICAgICAgICAgIGlmIChrZXkgPT09IERFRkFVTFRfTEFOR1VBR0VfQ09ERSkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaTE4bk9iamVjdC50cmFuc2xhdGlvbnNba2V5XSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpMThuT2JqZWN0IGFzIEkxOG5GaWVsZFZhbHVlO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHN0cmluZ0lkOiBzdHJpbmcsIHRpdGxlOiBzdHJpbmcsIHZhbHVlOiBJMThuRmllbGRWYWx1ZSB8IHN0cmluZywgYmVoYXZpb3I6IEJlaGF2aW9yLCBwbGFjZWhvbGRlcj86IHN0cmluZyxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbj86IHN0cmluZywgbGF5b3V0PzogTGF5b3V0LCB2YWxpZGF0aW9ucz86IEFycmF5PFZhbGlkYXRpb24+LCBfY29tcG9uZW50PzogQ29tcG9uZW50KSB7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IHtkZWZhdWx0VmFsdWU6IHZhbHVlfTtcbiAgICAgICAgfVxuICAgICAgICBzdXBlcihzdHJpbmdJZCwgdGl0bGUsIHZhbHVlLCBiZWhhdmlvciwgcGxhY2Vob2xkZXIsIGRlc2NyaXB0aW9uLCBsYXlvdXQsIHZhbGlkYXRpb25zLCBfY29tcG9uZW50KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgdmFsdWVFcXVhbGl0eShhOiBJMThuRmllbGRWYWx1ZSwgYjogSTE4bkZpZWxkVmFsdWUpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCFhICYmICFiKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoKCFhICYmICEhYikgfHwgKCFiICYmICEhYSkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoKCFhLmRlZmF1bHRWYWx1ZSAmJiAhYi5kZWZhdWx0VmFsdWUpICYmICghYS50cmFuc2xhdGlvbnMgJiYgIWIudHJhbnNsYXRpb25zKSAmJiAoIWEua2V5ICYmICFiLmtleSkpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChJMThuRmllbGQuZGVmYXVsdFZhbHVlTm9uRXF1YWxpdHkoYSwgYikgfHwgSTE4bkZpZWxkLmtleU5vbkVxdWFsaXR5KGEsIGIpIHx8IEkxOG5GaWVsZC50cmFuc2xhdGlvbnNOb25FcXVhbGl0eShhLCBiKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBJMThuRmllbGQudHJhbnNsYXRpb25zRXF1YWxpdHkoYSwgYik7XG4gICAgfVxuXG4gICAgZ2V0IHVwZGF0ZWQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl91cGRhdGUuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNhbGN1bGF0ZVZhbGlkaXR5KGZvclZhbGlkUmVxdWlyZWQ6IGJvb2xlYW4sIGZvcm1Db250cm9sOiBGb3JtQ29udHJvbCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBpc0Rpc2FibGVkID0gZm9ybUNvbnRyb2wuZGlzYWJsZWQ7XG4gICAgICAgIGlmIChmb3JWYWxpZFJlcXVpcmVkKSB7XG4gICAgICAgICAgICBmb3JtQ29udHJvbC5lbmFibGUoKTtcbiAgICAgICAgfVxuICAgICAgICBmb3JtQ29udHJvbC5jbGVhclZhbGlkYXRvcnMoKTtcbiAgICAgICAgaWYgKGZvclZhbGlkUmVxdWlyZWQpIHtcbiAgICAgICAgICAgIGZvcm1Db250cm9sLnNldFZhbGlkYXRvcnModGhpcy5iZWhhdmlvci5yZXF1aXJlZCA/IFt0aGlzLnZhbGlkUmVxdWlyZWRJMThuXSA6IFtdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGZvcm1Db250cm9sLnNldFZhbGlkYXRvcnModGhpcy5yZXNvbHZlRm9ybUNvbnRyb2xWYWxpZGF0b3JzKCkpO1xuICAgICAgICB9XG4gICAgICAgIGZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgICAgY29uc3QgdmFsaWRpdHkgPSB0aGlzLl9kZXRlcm1pbmVGb3JtQ29udHJvbFZhbGlkaXR5KGZvcm1Db250cm9sKTtcbiAgICAgICAgaXNEaXNhYmxlZCA/IGZvcm1Db250cm9sLmRpc2FibGUoKSA6IGZvcm1Db250cm9sLmVuYWJsZSgpO1xuICAgICAgICByZXR1cm4gdmFsaWRpdHk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJlc29sdmVGb3JtQ29udHJvbFZhbGlkYXRvcnMoKTogQXJyYXk8VmFsaWRhdG9yRm4+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gW107XG5cbiAgICAgICAgaWYgKHRoaXMuYmVoYXZpb3IucmVxdWlyZWQpIHtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKHRoaXMudmFsaWRSZXF1aXJlZEkxOG4pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMudmFsaWRhdGlvbnMpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl92YWxpZGF0b3JzKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0LnB1c2goLi4udGhpcy5fdmFsaWRhdG9ycyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX3ZhbGlkYXRvcnMgPSB0aGlzLnJlc29sdmVWYWxpZGF0aW9ucygpO1xuICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKC4uLnRoaXMuX3ZhbGlkYXRvcnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgcmVzb2x2ZVZhbGlkYXRpb25zKCk6IEFycmF5PFZhbGlkYXRvckZuPiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuXG4gICAgICAgIHRoaXMudmFsaWRhdGlvbnMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgIGlmIChpdGVtLnZhbGlkYXRpb25SdWxlLmluY2x1ZGVzKEkxOG5GaWVsZFZhbGlkYXRpb24uVFJBTlNMQVRJT05fUkVRVUlSRUQpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdG1wID0gaXRlbS52YWxpZGF0aW9uUnVsZS5zcGxpdCgnICcpO1xuICAgICAgICAgICAgICAgIGlmICh0bXBbMV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaCh0aGlzLnZhbGlkVHJhbnNsYXRpb25SZXF1aXJlZCh0bXBbMV0ucmVwbGFjZSgnICcsICcnKS5zcGxpdCgnLCcpKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGl0ZW0udmFsaWRhdGlvblJ1bGUuaW5jbHVkZXMoSTE4bkZpZWxkVmFsaWRhdGlvbi5UUkFOU0xBVElPTl9PTkxZKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRtcCA9IGl0ZW0udmFsaWRhdGlvblJ1bGUuc3BsaXQoJyAnKTtcbiAgICAgICAgICAgICAgICBpZiAodG1wWzFdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnB1c2godGhpcy52YWxpZFRyYW5zbGF0aW9uT25seSh0bXBbMV0ucmVwbGFjZSgnICcsICcnKS5zcGxpdCgnLCcpKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHByaXZhdGUgdmFsaWRUcmFuc2xhdGlvblJlcXVpcmVkKGNvdW50cmllczogQXJyYXk8c3RyaW5nPik6IFZhbGlkYXRvckZuIHtcbiAgICAgICAgcmV0dXJuIChmYzogRm9ybUNvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHwgbnVsbCA9PiB7XG4gICAgICAgICAgICByZXR1cm4gY291bnRyaWVzLmV2ZXJ5KGxhbmd1YWdlQ29kZSA9PiBsYW5ndWFnZUNvZGUgaW4gZmMudmFsdWUudHJhbnNsYXRpb25zKVxuICAgICAgICAgICAgICAgID8gKG51bGwpIDogKHt0cmFuc2xhdGlvblJlcXVpcmVkOiB0cnVlfSk7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB2YWxpZFRyYW5zbGF0aW9uT25seShjb3VudHJpZXM6IEFycmF5PHN0cmluZz4pOiBWYWxpZGF0b3JGbiB7XG4gICAgICAgIHJldHVybiAoZmM6IEZvcm1Db250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IG51bGwgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKGZjLnZhbHVlLnRyYW5zbGF0aW9ucykuZXZlcnkodHJhbnNsYXRpb24gPT4gY291bnRyaWVzLmluY2x1ZGVzKHRyYW5zbGF0aW9uKSlcbiAgICAgICAgICAgICAgICA/IChudWxsKSA6ICh7dHJhbnNsYXRpb25Pbmx5OiB0cnVlfSk7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB2YWxpZFJlcXVpcmVkSTE4bihmYzogRm9ybUNvbnRyb2wpOiB7IFtrOiBzdHJpbmddOiBib29sZWFuIH0ge1xuICAgICAgICByZXR1cm4gKGZjLnZhbHVlLmRlZmF1bHRWYWx1ZSA9PT0gJycgJiYgT2JqZWN0LmtleXMoZmMudmFsdWUudHJhbnNsYXRpb25zKS5sZW5ndGggPT09IDApXG4gICAgICAgICAgICA/ICh7cmVxdWlyZWRJMThuOiB0cnVlfSkgOiBudWxsO1xuICAgIH1cbn1cbiJdfQ==
155
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi1maWVsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvZGF0YS1maWVsZHMvaTE4bi1maWVsZC9tb2RlbHMvaTE4bi1maWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFTM0QsTUFBTSxDQUFOLElBQVksbUJBSVg7QUFKRCxXQUFZLG1CQUFtQjtJQUMzQixtRUFBNEMsQ0FBQTtJQUM1QywyREFBb0MsQ0FBQTtJQUNwQyxxREFBOEIsQ0FBQTtBQUNsQyxDQUFDLEVBSlcsbUJBQW1CLEtBQW5CLG1CQUFtQixRQUk5QjtBQUVELE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLElBQUksQ0FBQztBQUUxQyxNQUFNLE9BQU8sU0FBVSxTQUFRLFNBQXlCO0lBRTVDLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFpQixFQUFFLENBQWlCO1FBQ3ZFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxJQUFJLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQztlQUN0QyxDQUNDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO21CQUNsQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQzttQkFDckMsQ0FBQyxDQUFDLENBQUMsWUFBWSxLQUFLLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FDekMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVPLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBaUIsRUFBRSxDQUFpQjtRQUM5RCxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFH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QkFBaUIsQ0FBQyxFQUFlO1FBQ3JDLE9BQU8sQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFlBQVksS0FBSyxFQUFFLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7WUFDcEYsQ0FBQyxDQUFDLENBQUMsRUFBQyxZQUFZLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3hDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGF0YUZpZWxkfSBmcm9tICcuLi8uLi9tb2RlbHMvYWJzdHJhY3QtZGF0YS1maWVsZCc7XG5pbXBvcnQge0JlaGF2aW9yfSBmcm9tICcuLi8uLi9tb2RlbHMvYmVoYXZpb3InO1xuaW1wb3J0IHtMYXlvdXR9IGZyb20gJy4uLy4uL21vZGVscy9sYXlvdXQnO1xuaW1wb3J0IHtWYWxpZGF0aW9ufSBmcm9tICcuLi8uLi9tb2RlbHMvdmFsaWRhdGlvbic7XG5pbXBvcnQge0NvbXBvbmVudH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NvbXBvbmVudCc7XG5pbXBvcnQge0kxOG5GaWVsZFRyYW5zbGF0aW9ucywgSTE4bkZpZWxkVmFsdWV9IGZyb20gJy4vaTE4bi1maWVsZC12YWx1ZSc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtGb3JtQ29udHJvbCwgVmFsaWRhdG9yRm59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuZXhwb3J0IGVudW0gSTE4bkZpZWxkVmFsaWRhdGlvbiB7XG4gICAgVFJBTlNMQVRJT05fUkVRVUlSRUQgPSAndHJhbnNsYXRpb25SZXF1aXJlZCcsXG4gICAgVFJBTlNMQVRJT05fT05MWSA9ICd0cmFuc2xhdGlvbk9ubHknLFxuICAgIFJFUVVJUkVEX0kxOE4gPSAncmVxdWlyZWRJMThuJ1xufVxuXG5leHBvcnQgY29uc3QgREVGQVVMVF9MQU5HVUFHRV9DT0RFID0gJ3h4JztcblxuZXhwb3J0IGNsYXNzIEkxOG5GaWVsZCBleHRlbmRzIERhdGFGaWVsZDxJMThuRmllbGRWYWx1ZT4ge1xuXG4gICAgcHJpdmF0ZSBzdGF0aWMgZGVmYXVsdFZhbHVlTm9uRXF1YWxpdHkoYTogSTE4bkZpZWxkVmFsdWUsIGI6IEkxOG5GaWVsZFZhbHVlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoISghYS5kZWZhdWx0VmFsdWUgJiYgIWIuZGVmYXVsdFZhbHVlKVxuICAgICAgICAgICAgJiYgKFxuICAgICAgICAgICAgICAgICghYS5kZWZhdWx0VmFsdWUgJiYgISFiLmRlZmF1bHRWYWx1ZSlcbiAgICAgICAgICAgICAgICB8fCAoIWIuZGVmYXVsdFZhbHVlICYmICEhYS5kZWZhdWx0VmFsdWUpXG4gICAgICAgICAgICAgICAgfHwgKGEuZGVmYXVsdFZhbHVlICE9PSBiLmRlZmF1bHRWYWx1ZSlcbiAgICAgICAgICAgICkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGtleU5vbkVxdWFsaXR5KGE6IEkxOG5GaWVsZFZhbHVlLCBiOiBJMThuRmllbGRWYWx1ZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKCEoIWEua2V5ICYmICFiLmtleSkgJiYgKCghYS5rZXkgJiYgISFiLmtleSkgfHwgKCFiLmtleSAmJiAhIWEua2V5KSB8fCAoYS5rZXkgIT09IGIua2V5KSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIHRyYW5zbGF0aW9uc05vbkVxdWFsaXR5KGE6IEkxOG5GaWVsZFZhbHVlLCBiOiBJMThuRmllbGRWYWx1ZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKCEoIWEudHJhbnNsYXRpb25zICYmICFiLnRyYW5zbGF0aW9ucylcbiAgICAgICAgICAgICYmICgoIWEudHJhbnNsYXRpb25zICYmICEhYi50cmFuc2xhdGlvbnMpIHx8ICghYi50cmFuc2xhdGlvbnMgJiYgISFhLnRyYW5zbGF0aW9ucykpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyB0cmFuc2xhdGlvbnNFcXVhbGl0eShhOiBJMThuRmllbGRWYWx1ZSwgYjogSTE4bkZpZWxkVmFsdWUpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgYUtleXMgPSAhIWEudHJhbnNsYXRpb25zID8gT2JqZWN0LmtleXMoYS50cmFuc2xhdGlvbnMpLnNvcnQoKSA6IFtdO1xuICAgICAgICBjb25zdCBiS2V5cyA9ICEhYi50cmFuc2xhdGlvbnMgPyBPYmplY3Qua2V5cyhiLnRyYW5zbGF0aW9ucykuc29ydCgpIDogW107XG4gICAgICAgIGlmIChhS2V5cy5sZW5ndGggIT09IGJLZXlzLmxlbmd0aFxuICAgICAgICAgICAgfHwgIWFLZXlzLmV2ZXJ5KChlbGVtZW50LCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBlbGVtZW50ID09PSBiS2V5c1tpbmRleF07XG4gICAgICAgICAgICB9KSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgayBpbiBhLnRyYW5zbGF0aW9ucykge1xuICAgICAgICAgICAgaWYgKGEudHJhbnNsYXRpb25zW2tdICE9PSBiLnRyYW5zbGF0aW9uc1trXSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIHRvT2JqZWN0KHRlbXBsYXRlVmFsdWU6IEkxOG5GaWVsZFZhbHVlKTogSTE4bkZpZWxkVHJhbnNsYXRpb25zIHtcbiAgICAgICAgY29uc3Qgb2JqZWN0ID0ge307XG4gICAgICAgIG9iamVjdFtERUZBVUxUX0xBTkdVQUdFX0NPREVdID0gdGVtcGxhdGVWYWx1ZS5kZWZhdWx0VmFsdWU7XG4gICAgICAgIGZvciAoY29uc3QgayBpbiB0ZW1wbGF0ZVZhbHVlLnRyYW5zbGF0aW9ucykge1xuICAgICAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0ZW1wbGF0ZVZhbHVlLnRyYW5zbGF0aW9ucywgaykpIHtcbiAgICAgICAgICAgICAgICBvYmplY3Rba10gPSB0ZW1wbGF0ZVZhbHVlLnRyYW5zbGF0aW9uc1trXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqZWN0O1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZnJvbU9iamVjdCh0ZW1wbGF0ZVZhbHVlOiBJMThuRmllbGRUcmFuc2xhdGlvbnMsIHRlbXBsYXRlS2V5OiBzdHJpbmcpOiBJMThuRmllbGRWYWx1ZSB7XG4gICAgICAgIGNvbnN0IGkxOG5PYmplY3QgPSB7XG4gICAgICAgICAgICBkZWZhdWx0VmFsdWU6IHRlbXBsYXRlVmFsdWVbREVGQVVMVF9MQU5HVUFHRV9DT0RFXSxcbiAgICAgICAgICAgIGtleTogdGVtcGxhdGVLZXksXG4gICAgICAgICAgICB0cmFuc2xhdGlvbnM6IHt9XG4gICAgICAgIH07XG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHRlbXBsYXRlVmFsdWUpKSB7XG4gICAgICAgICAgICBpZiAoa2V5ID09PSBERUZBVUxUX0xBTkdVQUdFX0NPREUpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGkxOG5PYmplY3QudHJhbnNsYXRpb25zW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaTE4bk9iamVjdCBhcyBJMThuRmllbGRWYWx1ZTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihzdHJpbmdJZDogc3RyaW5nLCB0aXRsZTogc3RyaW5nLCB2YWx1ZTogSTE4bkZpZWxkVmFsdWUgfCBzdHJpbmcsIGJlaGF2aW9yOiBCZWhhdmlvciwgcGxhY2Vob2xkZXI/OiBzdHJpbmcsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb24/OiBzdHJpbmcsIGxheW91dD86IExheW91dCwgdmFsaWRhdGlvbnM/OiBBcnJheTxWYWxpZGF0aW9uPiwgX2NvbXBvbmVudD86IENvbXBvbmVudCkge1xuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgdmFsdWUgPSB7ZGVmYXVsdFZhbHVlOiB2YWx1ZX07XG4gICAgICAgIH1cbiAgICAgICAgc3VwZXIoc3RyaW5nSWQsIHRpdGxlLCB2YWx1ZSwgYmVoYXZpb3IsIHBsYWNlaG9sZGVyLCBkZXNjcmlwdGlvbiwgbGF5b3V0LCB2YWxpZGF0aW9ucywgX2NvbXBvbmVudCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHZhbHVlRXF1YWxpdHkoYTogSTE4bkZpZWxkVmFsdWUsIGI6IEkxOG5GaWVsZFZhbHVlKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghYSAmJiAhYikge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCghYSAmJiAhIWIpIHx8ICghYiAmJiAhIWEpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCghYS5kZWZhdWx0VmFsdWUgJiYgIWIuZGVmYXVsdFZhbHVlKSAmJiAoIWEudHJhbnNsYXRpb25zICYmICFiLnRyYW5zbGF0aW9ucykgJiYgKCFhLmtleSAmJiAhYi5rZXkpKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoSTE4bkZpZWxkLmRlZmF1bHRWYWx1ZU5vbkVxdWFsaXR5KGEsIGIpIHx8IEkxOG5GaWVsZC5rZXlOb25FcXVhbGl0eShhLCBiKSB8fCBJMThuRmllbGQudHJhbnNsYXRpb25zTm9uRXF1YWxpdHkoYSwgYikpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gSTE4bkZpZWxkLnRyYW5zbGF0aW9uc0VxdWFsaXR5KGEsIGIpO1xuICAgIH1cblxuICAgIGdldCB1cGRhdGVkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdXBkYXRlLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjYWxjdWxhdGVWYWxpZGl0eShmb3JWYWxpZFJlcXVpcmVkOiBib29sZWFuLCBmb3JtQ29udHJvbDogRm9ybUNvbnRyb2wpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgaXNEaXNhYmxlZCA9IGZvcm1Db250cm9sLmRpc2FibGVkO1xuICAgICAgICBpZiAoZm9yVmFsaWRSZXF1aXJlZCkge1xuICAgICAgICAgICAgZm9ybUNvbnRyb2wuZW5hYmxlKCk7XG4gICAgICAgIH1cbiAgICAgICAgZm9ybUNvbnRyb2wuY2xlYXJWYWxpZGF0b3JzKCk7XG4gICAgICAgIGlmIChmb3JWYWxpZFJlcXVpcmVkKSB7XG4gICAgICAgICAgICBmb3JtQ29udHJvbC5zZXRWYWxpZGF0b3JzKHRoaXMuYmVoYXZpb3IucmVxdWlyZWQgPyBbdGhpcy52YWxpZFJlcXVpcmVkSTE4bl0gOiBbXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBmb3JtQ29udHJvbC5zZXRWYWxpZGF0b3JzKHRoaXMucmVzb2x2ZUZvcm1Db250cm9sVmFsaWRhdG9ycygpKTtcbiAgICAgICAgfVxuICAgICAgICBmb3JtQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICAgIGNvbnN0IHZhbGlkaXR5ID0gdGhpcy5fZGV0ZXJtaW5lRm9ybUNvbnRyb2xWYWxpZGl0eShmb3JtQ29udHJvbCk7XG4gICAgICAgIGlzRGlzYWJsZWQgPyBmb3JtQ29udHJvbC5kaXNhYmxlKCkgOiBmb3JtQ29udHJvbC5lbmFibGUoKTtcbiAgICAgICAgcmV0dXJuIHZhbGlkaXR5O1xuICAgIH1cblxuICAgIHByb3RlY3RlZCByZXNvbHZlRm9ybUNvbnRyb2xWYWxpZGF0b3JzKCk6IEFycmF5PFZhbGlkYXRvckZuPiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuXG4gICAgICAgIGlmICh0aGlzLmJlaGF2aW9yLnJlcXVpcmVkKSB7XG4gICAgICAgICAgICByZXN1bHQucHVzaCh0aGlzLnZhbGlkUmVxdWlyZWRJMThuKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnZhbGlkYXRpb25zKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5fdmFsaWRhdG9ycykge1xuICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKC4uLnRoaXMuX3ZhbGlkYXRvcnMpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLl92YWxpZGF0b3JzID0gdGhpcy5yZXNvbHZlVmFsaWRhdGlvbnMoKTtcbiAgICAgICAgICAgICAgICByZXN1bHQucHVzaCguLi50aGlzLl92YWxpZGF0b3JzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJlc29sdmVWYWxpZGF0aW9ucygpOiBBcnJheTxWYWxpZGF0b3JGbj4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBbXTtcblxuICAgICAgICB0aGlzLnZhbGlkYXRpb25zLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICBpZiAoaXRlbS52YWxpZGF0aW9uUnVsZS5pbmNsdWRlcyhJMThuRmllbGRWYWxpZGF0aW9uLlRSQU5TTEFUSU9OX1JFUVVJUkVEKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRtcCA9IGl0ZW0udmFsaWRhdGlvblJ1bGUuc3BsaXQoJyAnKTtcbiAgICAgICAgICAgICAgICBpZiAodG1wWzFdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnB1c2godGhpcy52YWxpZFRyYW5zbGF0aW9uUmVxdWlyZWQodG1wWzFdLnJlcGxhY2UoJyAnLCAnJykuc3BsaXQoJywnKSkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpdGVtLnZhbGlkYXRpb25SdWxlLmluY2x1ZGVzKEkxOG5GaWVsZFZhbGlkYXRpb24uVFJBTlNMQVRJT05fT05MWSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0bXAgPSBpdGVtLnZhbGlkYXRpb25SdWxlLnNwbGl0KCcgJyk7XG4gICAgICAgICAgICAgICAgaWYgKHRtcFsxXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKHRoaXMudmFsaWRUcmFuc2xhdGlvbk9ubHkodG1wWzFdLnJlcGxhY2UoJyAnLCAnJykuc3BsaXQoJywnKSkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHZhbGlkVHJhbnNsYXRpb25SZXF1aXJlZChjb3VudHJpZXM6IEFycmF5PHN0cmluZz4pOiBWYWxpZGF0b3JGbiB7XG4gICAgICAgIHJldHVybiAoZmM6IEZvcm1Db250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IG51bGwgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGNvdW50cmllcy5ldmVyeShsYW5ndWFnZUNvZGUgPT4gbGFuZ3VhZ2VDb2RlIGluIGZjLnZhbHVlLnRyYW5zbGF0aW9ucylcbiAgICAgICAgICAgICAgICA/IG51bGwgOiAoe3RyYW5zbGF0aW9uUmVxdWlyZWQ6IHRydWV9KTtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHZhbGlkVHJhbnNsYXRpb25Pbmx5KGNvdW50cmllczogQXJyYXk8c3RyaW5nPik6IFZhbGlkYXRvckZuIHtcbiAgICAgICAgcmV0dXJuIChmYzogRm9ybUNvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHwgbnVsbCA9PiB7XG4gICAgICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoZmMudmFsdWUudHJhbnNsYXRpb25zKS5ldmVyeSh0cmFuc2xhdGlvbiA9PiBjb3VudHJpZXMuaW5jbHVkZXModHJhbnNsYXRpb24pKVxuICAgICAgICAgICAgICAgID8gbnVsbCA6ICh7dHJhbnNsYXRpb25Pbmx5OiB0cnVlfSk7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB2YWxpZFJlcXVpcmVkSTE4bihmYzogRm9ybUNvbnRyb2wpOiB7IFtrOiBzdHJpbmddOiBib29sZWFuIH0ge1xuICAgICAgICByZXR1cm4gKGZjLnZhbHVlLmRlZmF1bHRWYWx1ZSA9PT0gJycgJiYgT2JqZWN0LmtleXMoZmMudmFsdWUudHJhbnNsYXRpb25zKS5sZW5ndGggPT09IDApXG4gICAgICAgICAgICA/ICh7cmVxdWlyZWRJMThuOiB0cnVlfSkgOiBudWxsO1xuICAgIH1cbn1cbiJdfQ==
@@ -405,4 +405,4 @@ export class DataField {
405
405
  }
406
406
  }
407
407
  }
408
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtZGF0YS1maWVsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvZGF0YS1maWVsZHMvbW9kZWxzL2Fic3RyYWN0LWRhdGEtZmllbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLGVBQWUsRUFBYyxPQUFPLEVBQWUsTUFBTSxNQUFNLENBQUM7QUFDeEUsT0FBTyxFQUEyQixVQUFVLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwRSxPQUFPLEVBQUMsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBTWxFOzs7R0FHRztBQUNILE1BQU0sT0FBZ0IsU0FBUztJQXlHM0I7Ozs7Ozs7Ozs7OztPQVlHO0lBQ0gsWUFBOEIsU0FBaUIsRUFBVSxNQUFjLEVBQUUsWUFBZSxFQUMxRCxTQUFtQixFQUFVLFlBQXFCLEVBQ2xELFlBQXFCLEVBQVUsT0FBZ0IsRUFBUyxXQUErQixFQUN2RixVQUFzQixFQUFVLGFBQXNCLEVBQVUsYUFBc0I7UUFIdEYsY0FBUyxHQUFULFNBQVMsQ0FBUTtRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDekMsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUFVLGlCQUFZLEdBQVosWUFBWSxDQUFTO1FBQ2xELGlCQUFZLEdBQVosWUFBWSxDQUFTO1FBQVUsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUFTLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUN2RixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQVUsa0JBQWEsR0FBYixhQUFhLENBQVM7UUFBVSxrQkFBYSxHQUFiLGFBQWEsQ0FBUztRQXJEcEg7O1dBRUc7UUFDSyx1QkFBa0IsR0FBRyxJQUFJLENBQUM7UUFDbEM7O1dBRUc7UUFDSyxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBK0N2QixJQUFJLENBQUMsTUFB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VyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ3hCO1FBQ0QsV0FBVyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQzlCLElBQUksZ0JBQWdCLEVBQUU7WUFDbEIsV0FBVyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ2xGO2FBQU07WUFDSCxXQUFXLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxDQUFDLENBQUM7U0FDbEU7UUFDRCxXQUFXLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUNyQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsNkJBQTZCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDakUsVUFBVSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMxRCxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0lBRU0sU0FBUyxDQUFDLFdBQXdCO1FBQ3JDLE9BQU8sQ0FBQyxXQUFXLENBQUMsUUFBUSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFDO0lBQzlFLENBQUM7SUFFRDs7T0FFRztJQUNJLGdCQUFnQjtRQUNuQixJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUFFO1lBQzVCLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBQyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUMsQ0FBQztTQUN6QzthQUFNO1lBQ0gsSUFBSSxDQUFDLFlBQVksR0FBRyxTQUFTLENBQUM7U0FDakM7SUFDTCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0JlaGF2aW9yfSBmcm9tICcuL2JlaGF2aW9yJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtGb3JtQ29udHJvbCwgVmFsaWRhdG9yRm4sIFZhbGlkYXRvcnN9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7Q2hhbmdlfSBmcm9tICcuL2NoYW5nZWQtZmllbGRzJztcbmltcG9ydCB7ZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgdGFrZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtMYXlvdXR9IGZyb20gJy4vbGF5b3V0JztcbmltcG9ydCB7Q29uZmlndXJhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uL2NvbmZpZ3VyYXRpb24vY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7Q29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudCc7XG5pbXBvcnQge1ZhbGlkYXRpb259IGZyb20gJy4vdmFsaWRhdGlvbic7XG5cbi8qKlxuICogSG9sZHMgdGhlIGxvZ2ljIGNvbW1vbiB0byBhbGwgZGF0YSBmaWVsZCBNb2RlbCBvYmplY3RzLlxuICogQHR5cGVwYXJhbSBUIC0gdHlwZSBvZiB0aGUgYHZhbHVlYCBwcm9wZXJ0eSBvZiB0aGUgZGF0YSBmaWVsZFxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRGF0YUZpZWxkPFQ+IHtcbiAgICAvKipcbiAgICAgKiBAaWdub3JlXG4gICAgICogQ3VycmVudCB2YWx1ZSBvZiB0aGUgZGF0YSBmaWVsZFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBfdmFsdWU6IEJlaGF2aW9yU3ViamVjdDxUPjtcbiAgICAvKipcbiAgICAgKiBAaWdub3JlXG4gICAgICogUHJldmlvdXMgdmFsdWUgb2YgdGhlIGRhdGEgZmllbGRcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX3ByZXZpb3VzVmFsdWU6IEJlaGF2aW9yU3ViamVjdDxUPjtcbiAgICAvKipcbiAgICAgKiBAaWdub3JlXG4gICAgICogV2hldGhlciB0aGUgZGF0YSBmaWVsZCBNb2RlbCBvYmplY3Qgd2FzIGluaXRpYWxpemVkLCB3ZSBwdXNoIHRoYXQgaW5mbyBpbnRvIHN0cmVhbVxuICAgICAqXG4gICAgICogU2VlIFtyZWdpc3RlckZvcm1Db250cm9sKClde0BsaW5rIERhdGFGaWVsZCNyZWdpc3RlckZvcm1Db250cm9sfSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX2luaXRpYWxpemVkJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+O1xuICAgIC8qKlxuICAgICAqIEBpZ25vcmVcbiAgICAgKiBXaGV0aGVyIHRoZSBmaWVsZCBmdWxmaWxscyBhbGwgb2YgaXQncyB2YWxpZGF0b3JzLlxuICAgICAqL1xuICAgIHByaXZhdGUgX3ZhbGlkOiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIEBpZ25vcmVcbiAgICAgKiBXaGV0aGVyIHRoZSBgdmFsdWVgIG9mIHRoZSBmaWVsZCBjaGFuZ2VkIHJlY2VudGx5LiBUaGUgZmxhZyBpcyBjbGVhcmVkIHdoZW4gY2hhbmdlcyBhcmUgc2VuZCB0byBiYWNrZW5kLlxuICAgICAqL1xuICAgIHByaXZhdGUgX2NoYW5nZWQ6IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogQGlnbm9yZVxuICAgICAqIERhdGEgZmllbGQgc3Vic2NyaWJlcyB0aGlzIHN0cmVhbS5cbiAgICAgKiBUaGUgZGF0YSBmaWVsZCB1cGRhdGVzIGl0J3MgVmFsaWRhdG9ycywgdmFsaWRpdHkgYW5kIGVuYWJsZWQvZGlzYWJsZWQgYWNjb3JkaW5nIHRvIGl0J3MgYmVoYXZpb3IuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF91cGRhdGU6IFN1YmplY3Q8dm9pZD47XG4gICAgLyoqXG4gICAgICogQGlnbm9yZVxuICAgICAqIERhdGEgZmllbGQgc3Vic2NyaWJlcyB0aGlzIHN0cmVhbS4gV2hlbiBhIGB0cnVlYCB2YWx1ZSBpcyByZWNlaXZlZCB0aGUgZGF0YSBmaWVsZCBkaXNhYmxlcyBpdHNlbGYuXG4gICAgICogV2hlbiBhIGBmYWxzZWB2YWx1ZSBpcyByZWNlaXZlZCBkYXRhIGZpZWxkIGRpc2FibGVzL2VuYWJsZXMgaXRzZWxmIGJhc2VkIG9uIGl0J3MgYmVoYXZpb3IuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9ibG9jazogU3ViamVjdDxib29sZWFuPjtcbiAgICAvKipcbiAgICAgKiBAaWdub3JlXG4gICAgICogV2hlbiBhIGB0cnVlYCB2YWx1ZSBpcyB0aGVyZSwgdGhlIGRhdGEgZmllbGQgaXMgZGlzYWJsZWQuXG4gICAgICogV2hlbiBhIGBmYWxzZWAgdmFsdWUgaXMgcmVjZWl2ZWQsIGRhdGEgZmllbGQgaXMgZGlzYWJsZWQvZW5hYmxlZCBiYXNlZCBvbiBpdCdzIGJlaGF2aW9yLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBfYmxvY2tlZDogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBAaWdub3JlXG4gICAgICogRGF0YSBmaWVsZCBzdWJzY3JpYmVzIHRoaXMgc3RyZWFtLiBTZXRzIHRoZSBzdGF0ZSBvZiB0aGUgZGF0YSBmaWVsZCB0byBcInRvdWNoZWRcIiBvciBcInVudG91Y2hlZFwiIChgdHJ1ZWAvYGZhbHNlYCkuXG4gICAgICogVmFsaWRpdHkgb2YgdGhlIGRhdGEgZmllbGQgaXMgbm90IGNoZWNrZWQgaW4gYW4gXCJ1bnRvdWNoZWRcIiBzdGF0ZS5cbiAgICAgKiBBbGwgZmllbGRzIGFyZSB0b3VjaGVkIGJlZm9yZSBhIHRhc2sgaXMgZmluaXNoZWQgdG8gY2hlY2sgdGhlaXIgdmFsaWRpdHkuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF90b3VjaDogU3ViamVjdDxib29sZWFuPjtcbiAgICBwcm90ZWN0ZWQgX3VwZGF0ZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICAgIHByb3RlY3RlZCBfYmxvY2tTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgICBwcm90ZWN0ZWQgX3RvdWNoU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gICAgcHJvdGVjdGVkIF9mb3JtQ29udHJvbFZhbHVlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gICAgcHJvdGVjdGVkIF9teVZhbHVlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gICAgLyoqXG4gICAgICogQGlnbm9yZVxuICAgICAqIEFwcGVhcmFuY2Ugb2YgZGF0YUZpZWxkcywgcG9zc2libGUgdmFsdWVzIC0gb3V0bGluZSwgc3RhbmRhcmQsIGZpbGwsIGxlZ2FjeVxuICAgICAqL1xuICAgIHB1YmxpYyBtYXRlcmlhbEFwcGVhcmFuY2U6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBAaWdub3JlXG4gICAgICogV2hldGhlciB0aGUgZmllbGQgZnVsZmlsbHMgcmVxdWlyZWQgdmFsaWRhdG9yLlxuICAgICAqL1xuICAgIHByaXZhdGUgX3ZhbGlkUmVxdWlyZWQ6IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogV2hldGhlciBpbnZhbGlkIGZpZWxkIHZhbHVlcyBzaG91bGQgYmUgc2VudCB0byBiYWNrZW5kLlxuICAgICAqL1xuICAgIHByaXZhdGUgX3NlbmRJbnZhbGlkVmFsdWVzID0gdHJ1ZTtcbiAgICAvKipcbiAgICAgKiBGbGFnIHRoYXQgaXMgc2V0IGR1cmluZyByZXZlcnRpbmdcbiAgICAgKi9cbiAgICBwcml2YXRlIF9yZXZlcnRpbmcgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFZhbGlkYXRvcnMgcmVzb2x2ZWQgZnJvbSBmaWVsZCB2YWxpZGF0aW9uc1xuICAgICAqL1xuICAgIHByb3RlY3RlZCBfdmFsaWRhdG9yczogQXJyYXk8VmFsaWRhdG9yRm4+O1xuXG4gICAgLyoqXG4gICAgICogU3RvcmVzIHRoZSBsYXN0IHN1YnNjcmlwdGlvbiB0byB0aGUgW19pbml0aWFsaXplZCRde0BsaW5rIEFic3RyYWN0RGF0YUZpZWxkI19pbml0aWFsaXplZCR9IFN0cmVhbSwgdG8gcHJldmVudCBtdWx0aXBsZSBibG9jayBldmVudHNcbiAgICAgKiBmcm9tIGV4ZWN1dGluZyBhdCB0aGUgc2FtZSB0aW1lXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9pbml0aWFsaXplZFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gICAgLyoqXG4gICAgICogQGlnbm9yZVxuICAgICAqIFdoZXRoZXIgdGhlIGNoYW5nZXMgZnJvbSBoYXMgYmVlbiByZXF1ZXN0ZWQuIFRoZSBmbGFnIGlzIGNsZWFyZWQgd2hlbiBjaGFuZ2VzIGFyZSByZWNlaXZlZCBmcm9tIGJhY2tlbmQuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfd2FpdGluZ0ZvclJlc3BvbnNlOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogU3RvcmVzIGEgY29weSBvZiB0aGUgZmllbGRzIGxheW91dCwgdGhhdCBjYW4gYmUgbW9kaWZpZWQgYnkgdGhlIGxheW91dGluZyBhbGdvcml0aG0gYXMgbmVlZGVkXG4gICAgICogd2l0aG91dCBhZmZlY3RpbmcgdGhlIGJhc2UgY29uZmlndXJhdGlvbi5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX2xvY2FsTGF5b3V0OiBMYXlvdXQ7XG5cbiAgICAvKipcbiAgICAgKiBMaXN0ZW5zIGZvciBsYXlvdXQgY2hhbmdlc1xuICAgICAqL1xuICAgIHByb3RlY3RlZCBsYXlvdXRTdWJqZWN0OiBCZWhhdmlvclN1YmplY3Q8TGF5b3V0PjtcblxuICAgIC8qKlxuICAgICAqIEBwYXJhbSBfc3RyaW5nSWQgLSBJRCBvZiB0aGUgZGF0YSBmaWVsZCBmcm9tIGJhY2tlbmRcbiAgICAgKiBAcGFyYW0gX3RpdGxlIC0gZGlzcGxheWVkIHRpdGxlIG9mIHRoZSBkYXRhIGZpZWxkIGZyb20gYmFja2VuZFxuICAgICAqIEBwYXJhbSBpbml0aWFsVmFsdWUgLSBpbml0aWFsIHZhbHVlIG9mIHRoZSBkYXRhIGZpZWxkXG4gICAgICogQHBhcmFtIF9iZWhhdmlvciAtIGRhdGEgZmllbGQgYmVoYXZpb3JcbiAgICAgKiBAcGFyYW0gX3BsYWNlaG9sZGVyIC0gcGxhY2Vob2xkZXIgZGlzcGxheWVkIGluIHRoZSBkYXRhZmllbGRcbiAgICAgKiBAcGFyYW0gX2Rlc2NyaXB0aW9uIC0gdG9vbHRpcCBvZiB0aGUgZGF0YWZpZWxkXG4gICAgICogQHBhcmFtIF9sYXlvdXQgLSBpbmZvcm1hdGlvbiByZWdhcmRpbmcgdGhlIGNvbXBvbmVudCByZW5kZXJpbmdcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbnNcbiAgICAgKiBAcGFyYW0gX2NvbXBvbmVudCAtIGNvbXBvbmVudCBkYXRhIG9mIGRhdGFmaWVsZFxuICAgICAqIEBwYXJhbSBfcGFyZW50VGFza0lkIC0gc3RyaW5nSWQgb2YgcGFyZW50IHRhc2ssIG9ubHkgZGVmaW5lZCBpZiBmaWVsZCBpcyBsb2FkZWQgdXNpbmcge0BsaW5rIFRhc2tSZWZGaWVsZH1cbiAgICAgKiBAcGFyYW0gX3BhcmVudENhc2VJZCAtIHN0cmluZ0lkIG9mIHBhcmVudCBjYXNlLCBvbmx5IGRlZmluZWQgaWYgZmllbGQgaXMgbG9hZGVkIHVzaW5nIHtAbGluayBUYXNrUmVmRmllbGR9XG4gICAgICovXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKHByaXZhdGUgX3N0cmluZ0lkOiBzdHJpbmcsIHByaXZhdGUgX3RpdGxlOiBzdHJpbmcsIGluaXRpYWxWYWx1ZTogVCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpdmF0ZSBfYmVoYXZpb3I6IEJlaGF2aW9yLCBwcml2YXRlIF9wbGFjZWhvbGRlcj86IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpdmF0ZSBfZGVzY3JpcHRpb24/OiBzdHJpbmcsIHByaXZhdGUgX2xheW91dD86IExheW91dCwgcHVibGljIHZhbGlkYXRpb25zPzogQXJyYXk8VmFsaWRhdGlvbj4sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByaXZhdGUgX2NvbXBvbmVudD86IENvbXBvbmVudCwgcHJpdmF0ZSBfcGFyZW50VGFza0lkPzogc3RyaW5nLCBwcml2YXRlIF9wYXJlbnRDYXNlSWQ/OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fdmFsdWUgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFQ+KGluaXRpYWxWYWx1ZSk7XG4gICAgICAgIHRoaXMuX3ByZXZpb3VzVmFsdWUgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFQ+KGluaXRpYWxWYWx1ZSk7XG4gICAgICAgIHRoaXMuX2luaXRpYWxpemVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAgICAgICB0aGlzLl92YWxpZCA9IHRydWU7XG4gICAgICAgIHRoaXMuX2NoYW5nZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fd2FpdGluZ0ZvclJlc3BvbnNlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX3VwZGF0ZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgICAgIHRoaXMuX2Jsb2NrID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgICAgICAgdGhpcy5fdG91Y2ggPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICAgICAgICB0aGlzLl92YWxpZFJlcXVpcmVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5sYXlvdXRTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxMYXlvdXQ+KF9sYXlvdXQpO1xuICAgICAgICB0aGlzLnJlc2V0TG9jYWxMYXlvdXQoKTtcbiAgICB9XG5cbiAgICBnZXQgc3RyaW5nSWQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0cmluZ0lkO1xuICAgIH1cblxuICAgIHNldCB0aXRsZSh0aXRsZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX3RpdGxlID0gdGl0bGU7XG4gICAgfVxuXG4gICAgZ2V0IHRpdGxlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl90aXRsZTtcbiAgICB9XG5cbiAgICBzZXQgcGxhY2Vob2xkZXIocGxhY2Vob2xkZXI6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9wbGFjZWhvbGRlciA9IHBsYWNlaG9sZGVyO1xuICAgIH1cblxuICAgIGdldCBwbGFjZWhvbGRlcigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fcGxhY2Vob2xkZXI7XG4gICAgfVxuXG4gICAgc2V0IGRlc2NyaXB0aW9uKGRlc2M6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9kZXNjcmlwdGlvbiA9IGRlc2M7XG4gICAgfVxuXG4gICAgZ2V0IGRlc2NyaXB0aW9uKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZXNjcmlwdGlvbjtcbiAgICB9XG5cbiAgICBzZXQgYmVoYXZpb3IoYmVoYXZpb3I6IEJlaGF2aW9yKSB7XG4gICAgICAgIHRoaXMuX2JlaGF2aW9yID0gYmVoYXZpb3I7XG4gICAgfVxuXG4gICAgZ2V0IGJlaGF2aW9yKCk6IEJlaGF2aW9yIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2JlaGF2aW9yO1xuICAgIH1cblxuICAgIGdldCB2YWx1ZSgpOiBUIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlLmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgc2V0IHZhbHVlKHZhbHVlOiBUKSB7XG4gICAgICAgIGlmICghdGhpcy52YWx1ZUVxdWFsaXR5KHRoaXMuX3ZhbHVlLmdldFZhbHVlKCksIHZhbHVlKSAmJiAhdGhpcy5fcmV2ZXJ0aW5nKSB7XG4gICAgICAgICAgICB0aGlzLl9jaGFuZ2VkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuX3dhaXRpbmdGb3JSZXNwb25zZSA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnJlc29sdmVQcmV2VmFsdWUodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3ZhbHVlLm5leHQodmFsdWUpO1xuICAgICAgICB0aGlzLl9yZXZlcnRpbmcgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBnZXQgcGFyZW50VGFza0lkKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wYXJlbnRUYXNrSWQ7XG4gICAgfVxuXG4gICAgZ2V0IHBhcmVudENhc2VJZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fcGFyZW50Q2FzZUlkO1xuICAgIH1cblxuICAgIGdldCBwcmV2aW91c1ZhbHVlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcHJldmlvdXNWYWx1ZS5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIHNldCBwcmV2aW91c1ZhbHVlKHZhbHVlOiBUKSB7XG4gICAgICAgIHRoaXMuX3ByZXZpb3VzVmFsdWUubmV4dCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHZhbHVlV2l0aG91dENoYW5nZSh2YWx1ZTogVCkge1xuICAgICAgICB0aGlzLl9jaGFuZ2VkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX3ZhbHVlLm5leHQodmFsdWUpO1xuICAgIH1cblxuICAgIHNldCBsYXlvdXQobGF5b3V0OiBMYXlvdXQpIHtcbiAgICAgICAgdGhpcy5fbGF5b3V0ID0gbGF5b3V0O1xuICAgICAgICB0aGlzLmxheW91dFN1YmplY3QubmV4dChsYXlvdXQpO1xuICAgIH1cblxuICAgIGdldCBsYXlvdXQoKTogTGF5b3V0IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xheW91dDtcbiAgICB9XG5cbiAgICBnZXQgbG9jYWxMYXlvdXQoKTogTGF5b3V0IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xvY2FsTGF5b3V0O1xuICAgIH1cblxuICAgIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5fYmVoYXZpb3IudmlzaWJsZSAmJiAhdGhpcy5fYmVoYXZpb3IuZWRpdGFibGU7XG4gICAgfVxuXG4gICAgZ2V0IGluaXRpYWxpemVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5pdGlhbGl6ZWQkLnZhbHVlO1xuICAgIH1cblxuICAgIGdldCBpbml0aWFsaXplZCQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbml0aWFsaXplZCQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgc2V0IHZhbGlkKHNldDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl92YWxpZCA9IHNldDtcbiAgICB9XG5cbiAgICBnZXQgdmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl92YWxpZDtcbiAgICB9XG5cbiAgICBzZXQgY2hhbmdlZChzZXQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fY2hhbmdlZCA9IHNldDtcbiAgICB9XG5cbiAgICBnZXQgY2hhbmdlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NoYW5nZWQ7XG4gICAgfVxuXG4gICAgc2V0IGJsb2NrKHNldDogYm9vbGVhbikge1xuICAgICAgICBpZiAodGhpcy5faW5pdGlhbGl6ZWRTdWJzY3JpcHRpb24gIT09IHVuZGVmaW5lZCAmJiAhdGhpcy5faW5pdGlhbGl6ZWRTdWJzY3JpcHRpb24uY2xvc2VkKSB7XG4gICAgICAgICAgICB0aGlzLl9pbml0aWFsaXplZFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2luaXRpYWxpemVkU3Vic2NyaXB0aW9uID0gdGhpcy5pbml0aWFsaXplZCQucGlwZShmaWx0ZXIoaSA9PiBpKSwgdGFrZSgxKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2Jsb2NrLm5leHQoc2V0KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2V0IHRvdWNoKHNldDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl90b3VjaC5uZXh0KHNldCk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXBvbmVudCgpOiBDb21wb25lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29tcG9uZW50O1xuICAgIH1cblxuICAgIHB1YmxpYyByZXZlcnRUb1ByZXZpb3VzVmFsdWUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2hhbmdlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9yZXZlcnRpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5wcmV2aW91c1ZhbHVlO1xuICAgIH1cblxuICAgIHNldCB2YWxpZFJlcXVpcmVkKHNldDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl92YWxpZFJlcXVpcmVkID0gc2V0O1xuICAgIH1cblxuICAgIGdldCB2YWxpZFJlcXVpcmVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsaWRSZXF1aXJlZDtcbiAgICB9XG5cbiAgICBnZXQgc2VuZEludmFsaWRWYWx1ZXMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zZW5kSW52YWxpZFZhbHVlcztcbiAgICB9XG5cbiAgICBzZXQgc2VuZEludmFsaWRWYWx1ZXModmFsdWU6IGJvb2xlYW4gfCBudWxsKSB7XG4gICAgICAgIHRoaXMuX3NlbmRJbnZhbGlkVmFsdWVzID0gdmFsdWUgPT09IG51bGwgfHwgdmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IHdhaXRpbmdGb3JSZXNwb25zZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3dhaXRpbmdGb3JSZXNwb25zZTtcbiAgICB9XG5cbiAgICBzZXQgd2FpdGluZ0ZvclJlc3BvbnNlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX3dhaXRpbmdGb3JSZXNwb25zZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyB1cGRhdGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3VwZGF0ZS5uZXh0KCk7XG4gICAgfVxuXG4gICAgcHVibGljIHZhbHVlQ2hhbmdlcygpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIHNldCByZXZlcnRpbmcoc2V0OiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX3JldmVydGluZyA9IHNldDtcbiAgICB9XG5cbiAgICBnZXQgcmV2ZXJ0aW5nKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmV2ZXJ0aW5nO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgZnVuY3Rpb24gcmVzb2x2ZSB0eXBlIG9mIGNvbXBvbmVudCBmb3IgSFRNTFxuICAgICAqIEByZXR1cm5zIHR5cGUgb2YgY29tcG9uZW50IGluIHN0cmluZ1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXRDb21wb25lbnRUeXBlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXBvbmVudD8ubmFtZSA/PyAnJztcbiAgICB9XG5cbiAgICBwdWJsaWMgZGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdmFsdWUuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5fcHJldmlvdXNWYWx1ZS5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLl91cGRhdGUuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5fdG91Y2guY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5fYmxvY2suY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5faW5pdGlhbGl6ZWQkLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMubGF5b3V0U3ViamVjdC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWdpc3RlckZvcm1Db250cm9sKGZvcm1Db250cm9sOiBGb3JtQ29udHJvbCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdEYXRhIGZpZWxkIGNhbiBiZSBpbml0aWFsaXplZCBvbmx5IG9uY2UhJ1xuICAgICAgICAgICAgICAgICsgJyBEaXNjb25uZWN0IHRoZSBwcmV2aW91cyBmb3JtIGNvbnRyb2wgYmVmb3JlIGluaXRpYWxpemluZyB0aGUgZGF0YSBmaWVsZCBhZ2FpbiEnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvcm1Db250cm9sLnNldFZhbGlkYXRvcnModGhpcy5yZXNvbHZlRm9ybUNvbnRyb2xWYWxpZGF0b3JzKCkpO1xuXG4gICAgICAgIHRoaXMuX2Zvcm1Db250cm9sVmFsdWVTdWJzY3JpcHRpb24gPSBmb3JtQ29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKHRoaXMudmFsdWVFcXVhbGl0eSlcbiAgICAgICAgKS5zdWJzY3JpYmUobmV3VmFsdWUgPT4ge1xuICAgICAgICAgICAgdGhpcy5fdmFsaWQgPSB0aGlzLl9kZXRlcm1pbmVGb3JtQ29udHJvbFZhbGlkaXR5KGZvcm1Db250cm9sKTtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBuZXdWYWx1ZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fbXlWYWx1ZVN1YnNjcmlwdGlvbiA9IHRoaXMuX3ZhbHVlLnBpcGUoXG4gICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCh0aGlzLnZhbHVlRXF1YWxpdHkpXG4gICAgICAgICkuc3Vic2NyaWJlKG5ld1ZhbHVlID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3ZhbGlkID0gdGhpcy5fZGV0ZXJtaW5lRm9ybUNvbnRyb2xWYWxpZGl0eShmb3JtQ29udHJvbCk7XG4gICAgICAgICAgICBmb3JtQ29udHJvbC5zZXRWYWx1ZShuZXdWYWx1ZSk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnVwZGF0ZUZvcm1Db250cm9sU3RhdGUoZm9ybUNvbnRyb2wpO1xuICAgICAgICB0aGlzLl9pbml0aWFsaXplZCQubmV4dCh0cnVlKTtcbiAgICAgICAgdGhpcy5fY2hhbmdlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLl93YWl0aW5nRm9yUmVzcG9uc2UgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZGlzY29ubmVjdEZvcm1Db250cm9sKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9pbml0aWFsaXplZCQubmV4dChmYWxzZSk7XG4gICAgICAgIGNvbnN0IHN1YnMgPSBbXG4gICAgICAgICAgICB0aGlzLl91cGRhdGVTdWJzY3JpcHRpb24sXG4gICAgICAgICAgICB0aGlzLl9ibG9ja1N1YnNjcmlwdGlvbixcbiAgICAgICAgICAgIHRoaXMuX3RvdWNoU3Vic2NyaXB0aW9uLFxuICAgICAgICAgICAgdGhpcy5fZm9ybUNvbnRyb2xWYWx1ZVN1YnNjcmlwdGlvbixcbiAgICAgICAgICAgIHRoaXMuX215VmFsdWVTdWJzY3JpcHRpb25cbiAgICAgICAgXTtcbiAgICAgICAgZm9yIChjb25zdCBzdWIgb2Ygc3Vicykge1xuICAgICAgICAgICAgaWYgKHN1Yikge1xuICAgICAgICAgICAgICAgIHN1Yi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHVwZGF0ZUZvcm1Db250cm9sU3RhdGUoZm9ybUNvbnRyb2w6IEZvcm1Db250cm9sKTogdm9pZCB7XG4gICAgICAgIGZvcm1Db250cm9sLnNldFZhbHVlKHRoaXMudmFsdWUpO1xuICAgICAgICB0aGlzLnN1YnNjcmliZVRvSW5uZXJTdWJqZWN0cyhmb3JtQ29udHJvbCk7XG4gICAgICAgIHRoaXMudXBkYXRlKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHN1YnNjcmliZVRvSW5uZXJTdWJqZWN0cyhmb3JtQ29udHJvbDogRm9ybUNvbnRyb2wpIHtcbiAgICAgICAgdGhpcy5fdXBkYXRlU3Vic2NyaXB0aW9uID0gdGhpcy5fdXBkYXRlLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnZhbGlkUmVxdWlyZWQgPSB0aGlzLmNhbGN1bGF0ZVZhbGlkaXR5KHRydWUsIGZvcm1Db250cm9sKTtcbiAgICAgICAgICAgIHRoaXMudmFsaWQgPSB0aGlzLmNhbGN1bGF0ZVZhbGlkaXR5KGZhbHNlLCBmb3JtQ29udHJvbCk7XG4gICAgICAgICAgICBpZiAoIXRoaXMuX2Jsb2NrZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRpc2FibGVkID8gZm9ybUNvbnRyb2wuZGlzYWJsZSgpIDogZm9ybUNvbnRyb2wuZW5hYmxlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX2Jsb2NrU3Vic2NyaXB0aW9uID0gdGhpcy5fYmxvY2suc3Vic2NyaWJlKGJvb2wgPT4ge1xuICAgICAgICAgICAgaWYgKGJvb2wpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9ibG9ja2VkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbC5kaXNhYmxlKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX2Jsb2NrZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLmRpc2FibGVkID8gZm9ybUNvbnRyb2wuZGlzYWJsZSgpIDogZm9ybUNvbnRyb2wuZW5hYmxlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX3RvdWNoU3Vic2NyaXB0aW9uID0gdGhpcy5fdG91Y2guc3Vic2NyaWJlKGJvb2wgPT4ge1xuICAgICAgICAgICAgaWYgKGJvb2wpIHtcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGZvcm1Db250cm9sLm1hcmtBc1VudG91Y2hlZCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb21wdXRlcyB3aGV0aGVyIHRoZSBGb3JtQ29udHJvbCBzaSB2YWxpZC5cbiAgICAgKiBAcGFyYW0gZm9ybUNvbnRyb2wgY2hlY2sgZm9ybSBjb250cm9sXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9kZXRlcm1pbmVGb3JtQ29udHJvbFZhbGlkaXR5KGZvcm1Db250cm9sOiBGb3JtQ29udHJvbCk6IGJvb2xlYW4ge1xuICAgICAgICAvLyBkaXNhYmxlZCBmb3JtIGNvbnRyb2xzIGFyZSBtYXJrZWQgYXMgaW52YWxpZCBhcyBwZXIgVzNDIHN0YW5kYXJkLCB0aGlzIHNvbHZlcyB0aGF0IHByb2JsZW1cbiAgICAgICAgcmV0dXJuIGZvcm1Db250cm9sLmRpc2FibGVkIHx8IGZvcm1Db250cm9sLnZhbGlkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgVmFsaWRhdG9yIG9iamVjdHMgYmFzZWQgb24gZmllbGQgYGJlaGF2aW9yYC4gT25seSB0aGUgYHJlcXVpcmVkYCBiZWhhdmlvciBpcyByZXNvbHZlZCBieSBkZWZhdWx0LlxuICAgICAqIFJlcXVpcmVkIGlzIHJlc29sdmVkIGFzIGBWYWxpZGF0b3JzLnJlcXVpcmVkYC5cbiAgICAgKiBJZiB5b3UgbmVlZCB0byByZXNvbHZlIGFkZGl0aW9uYWwgVmFsaWRhdG9ycyBvciBuZWVkIGEgZGlmZmVyZW50IHJlc29sdXRpb24gZm9yIHRoZSBgcmVxdWlyZWRgIFZhbGlkYXRvciBvdmVycmlkZSB0aGlzIG1ldGhvZC5cbiAgICAgKlxuICAgICAqIFNlZSB7QGxpbmsgQmVoYXZpb3J9IGZvciBpbmZvcm1hdGlvbiBhYm91dCBkYXRhIGZpZWxkIGJlaGF2aW9yLlxuICAgICAqXG4gICAgICogU2VlIHtAbGluayBWYWxpZGF0b3JGbn0gYW5kIHtAbGluayBWYWxpZGF0b3JzfSBmb3IgaW5mb3JtYXRpb24gYWJvdXQgVmFsaWRhdG9ycy5cbiAgICAgKlxuICAgICAqIEFsdGVybmF0aXZlbHkgc2VlIFtGb3JtIFZhbGlkYXRpb24gZ3VpZGVde0BsaW5rIGh0dHBzOi8vYW5ndWxhci5pby9ndWlkZS9mb3JtLXZhbGlkYXRpb24jcmVhY3RpdmUtZm9ybS12YWxpZGF0aW9ufSBmcm9tIEFuZ3VsYXIuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlc29sdmVGb3JtQ29udHJvbFZhbGlkYXRvcnMoKTogQXJyYXk8VmFsaWRhdG9yRm4+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gW107XG5cbiAgICAgICAgaWYgKHRoaXMuYmVoYXZpb3IucmVxdWlyZWQpIHtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMudmFsaWRhdGlvbnMpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl92YWxpZGF0b3JzKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0LnB1c2goLi4udGhpcy5fdmFsaWRhdG9ycyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX3ZhbGlkYXRvcnMgPSB0aGlzLnJlc29sdmVWYWxpZGF0aW9ucygpO1xuICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKC4uLnRoaXMuX3ZhbGlkYXRvcnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVwbGFjZVZhbGlkYXRpb25zKHZhbGlkYXRpb25zOiBBcnJheTxWYWxpZGF0aW9uPikge1xuICAgICAgICB0aGlzLmNsZWFyVmFsaWRhdG9ycygpO1xuICAgICAgICB0aGlzLnZhbGlkYXRpb25zID0gdmFsaWRhdGlvbnM7XG4gICAgfVxuXG4gICAgcHVibGljIGNsZWFyVmFsaWRhdG9ycygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdmFsaWRhdG9ycyA9IG51bGw7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJlc29sdmVWYWxpZGF0aW9ucygpOiBBcnJheTxWYWxpZGF0b3JGbj4ge1xuICAgICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGV0ZXJtaW5lcyBpZiB0d28gdmFsdWVzIG9mIHRoZSBkYXRhIGZpZWxkIGFyZSBlcXVhbC5cbiAgICAgKlxuICAgICAqIGBhID09PSBiYCBlcXVhbGl0eSBpcyB1c2VkIGJ5IGRlZmF1bHQuIElmIHlvdSB3YW50IGRpZmZlcmVudCBiZWhhdmlvciBvdmVycmlkZSB0aGlzIG1ldGhvZC5cbiAgICAgKiBAcGFyYW0gYSAtIGZpcnN0IGNvbXBhcmVkIHZhbHVlXG4gICAgICogQHBhcmFtIGIgLSBzZWNvbmQgY29tcGFyZWQgdmFsdWVcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgdmFsdWVFcXVhbGl0eShhOiBULCBiOiBUKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBhID09PSBiIHx8IChOdW1iZXIuaXNOYU4oYSkgJiYgTnVtYmVyLmlzTmFOKGIpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGVzIHRoZSBzdGF0ZSBvZiB0aGlzIGRhdGEgZmllbGQgbW9kZWwgb2JqZWN0LlxuICAgICAqIEBwYXJhbSBjaGFuZ2UgLSBvYmplY3QgZGVzY3JpYmluZyB0aGUgY2hhbmdlcyAtIHJldHVybmVkIGZyb20gYmFja2VuZFxuICAgICAqXG4gICAgICogQWxzbyBzZWUge0BsaW5rIENoYW5nZWRGaWVsZHN9LlxuICAgICAqL1xuICAgIHB1YmxpYyBhcHBseUNoYW5nZShjaGFuZ2U6IENoYW5nZSk6IHZvaWQge1xuICAgICAgICBPYmplY3Qua2V5cyhjaGFuZ2UpLmZvckVhY2goY2hhbmdlZEF0dHJpYnV0ZSA9PiB7XG4gICAgICAgICAgICBzd2l0Y2ggKGNoYW5nZWRBdHRyaWJ1dGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlICd2YWx1ZSc6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSBjaGFuZ2VbY2hhbmdlZEF0dHJpYnV0ZV07XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2JlaGF2aW9yJzpcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLmJlaGF2aW9yLCBjaGFuZ2VbY2hhbmdlZEF0dHJpYnV0ZV0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gYXR0cmlidXRlICcke2NoYW5nZWRBdHRyaWJ1dGV9JyBpbiBjaGFuZ2Ugb2JqZWN0YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyByZXNvbHZlQXBwZWFyYW5jZShjb25maWc6IENvbmZpZ3VyYXRpb25TZXJ2aWNlKTogdm9pZCB7XG4gICAgICAgIGxldCBhcHBlYXJhbmNlID0gJ291dGxpbmUnO1xuICAgICAgICBpZiAodGhpcy5sYXlvdXQgJiYgdGhpcy5sYXlvdXQuYXBwZWFyYW5jZSkge1xuICAgICAgICAgICAgYXBwZWFyYW5jZSA9IHRoaXMubGF5b3V0LmFwcGVhcmFuY2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBkYXRhZmllbGRDb25maWd1cmF0aW9uID0gY29uZmlnLmdldERhdGFmaWVsZENvbmZpZ3VyYXRpb24oKTtcbiAgICAgICAgICAgIGlmIChkYXRhZmllbGRDb25maWd1cmF0aW9uICYmIGRhdGFmaWVsZENvbmZpZ3VyYXRpb24uYXBwZWFyYW5jZSkge1xuICAgICAgICAgICAgICAgIGFwcGVhcmFuY2UgPSBkYXRhZmllbGRDb25maWd1cmF0aW9uLmFwcGVhcmFuY2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5tYXRlcmlhbEFwcGVhcmFuY2UgPSBhcHBlYXJhbmNlO1xuXG4gICAgICAgIC8qIExpc3RlbiBmb3IgY2hhbmdlcyBvZiBsYXlvdXQgaW4gZnV0dXJlICovXG4gICAgICAgIHRoaXMubGF5b3V0U3ViamVjdC5zdWJzY3JpYmUobGF5b3V0ID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmxheW91dCAmJiB0aGlzLmxheW91dC5hcHBlYXJhbmNlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tYXRlcmlhbEFwcGVhcmFuY2UgPSB0aGlzLmxheW91dC5hcHBlYXJhbmNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVzb2x2ZVByZXZWYWx1ZSh2YWx1ZTogVCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fdmFsdWUuZ2V0VmFsdWUoKSAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAmJiB0aGlzLl92YWx1ZS5nZXRWYWx1ZSgpICE9PSB2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5fcHJldmlvdXNWYWx1ZS5uZXh0KHRoaXMuX3ZhbHVlLmdldFZhbHVlKCkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNhbGN1bGF0ZVZhbGlkaXR5KGZvclZhbGlkUmVxdWlyZWQ6IGJvb2xlYW4sIGZvcm1Db250cm9sOiBGb3JtQ29udHJvbCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBpc0Rpc2FibGVkID0gZm9ybUNvbnRyb2wuZGlzYWJsZWQ7XG4gICAgICAgIGlmIChmb3JWYWxpZFJlcXVpcmVkKSB7XG4gICAgICAgICAgICBmb3JtQ29udHJvbC5lbmFibGUoKTtcbiAgICAgICAgfVxuICAgICAgICBmb3JtQ29udHJvbC5jbGVhclZhbGlkYXRvcnMoKTtcbiAgICAgICAgaWYgKGZvclZhbGlkUmVxdWlyZWQpIHtcbiAgICAgICAgICAgIGZvcm1Db250cm9sLnNldFZhbGlkYXRvcnModGhpcy5iZWhhdmlvci5yZXF1aXJlZCA/IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSA6IFtdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGZvcm1Db250cm9sLnNldFZhbGlkYXRvcnModGhpcy5yZXNvbHZlRm9ybUNvbnRyb2xWYWxpZGF0b3JzKCkpO1xuICAgICAgICB9XG4gICAgICAgIGZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgICAgY29uc3QgdmFsaWRpdHkgPSB0aGlzLl9kZXRlcm1pbmVGb3JtQ29udHJvbFZhbGlkaXR5KGZvcm1Db250cm9sKTtcbiAgICAgICAgaXNEaXNhYmxlZCA/IGZvcm1Db250cm9sLmRpc2FibGUoKSA6IGZvcm1Db250cm9sLmVuYWJsZSgpO1xuICAgICAgICByZXR1cm4gdmFsaWRpdHk7XG4gICAgfVxuXG4gICAgcHVibGljIGlzSW52YWxpZChmb3JtQ29udHJvbDogRm9ybUNvbnRyb2wpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICFmb3JtQ29udHJvbC5kaXNhYmxlZCAmJiAhZm9ybUNvbnRyb2wudmFsaWQgJiYgZm9ybUNvbnRyb2wudG91Y2hlZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb3BpZXMgdGhlIGxheW91dCBzZXR0aW5ncyBpbnRvIHRoZSBsb2NhbCBsYXlvdXQuXG4gICAgICovXG4gICAgcHVibGljIHJlc2V0TG9jYWxMYXlvdXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9sYXlvdXQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5fbG9jYWxMYXlvdXQgPSB7Li4udGhpcy5fbGF5b3V0fTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2xvY2FsTGF5b3V0ID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
408
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtZGF0YS1maWVsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvZGF0YS1maWVsZHMvbW9kZWxzL2Fic3RyYWN0LWRhdGEtZmllbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLGVBQWUsRUFBYyxPQUFPLEVBQWUsTUFBTSxNQUFNLENBQUM7QUFDeEUsT0FBTyxFQUEyQixVQUFVLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwRSxPQUFPLEVBQUMsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBTWxFOzs7R0FHRztBQUNILE1BQU0sT0FBZ0IsU0FBUztJQXlHM0I7Ozs7Ozs7Ozs7OztPQVlHO0lBQ0gsWUFBOEIsU0FBaUIsRUFBVSxNQUFjLEVBQUUsWUFBZSxFQUMxRCxTQUFtQixFQUFVLFlBQXFCLEVBQ2xELFlBQXFCLEVBQVUsT0FBZ0IsRUFBUyxXQUErQixFQUN2RixVQUFzQixFQUFVLGFBQXNCLEVBQVUsYUFBc0I7UUFIdEYsY0FBUyxHQUFULFNBQVMsQ0FBUTtRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDekMsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUFVLGlCQUFZLEdBQVosWUFBWSxDQUFTO1FBQ2xELGlCQUFZLEdBQVosWUFBWSxDQUFTO1FBQVUsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUFTLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUN2RixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQVUsa0JBQWEsR0FBYixhQUFhLENBQVM7UUFBVSxrQkFBYSxHQUFiLGFBQWEsQ0FBUztRQXJEcEg7O1dBRUc7UUFDSyx1QkFBa0IsR0FBRyxJQUFJLENBQUM7UUFDbEM7O1dBRUc7UUFDSyxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBK0N2QixJQUFJLENBQUMsTUFB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VyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ3hCO1FBQ0QsV0FBVyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQzlCLElBQUksZ0JBQWdCLEVBQUU7WUFDbEIsV0FBVyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ2xGO2FBQU07WUFDSCxXQUFXLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxDQUFDLENBQUM7U0FDbEU7UUFDRCxXQUFXLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUNyQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsNkJBQTZCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDakUsVUFBVSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMxRCxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0lBRU0sU0FBUyxDQUFDLFdBQXdCO1FBQ3JDLE9BQU8sQ0FBQyxXQUFXLENBQUMsUUFBUSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFDO0lBQzlFLENBQUM7SUFFRDs7T0FFRztJQUNJLGdCQUFnQjtRQUNuQixJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUFFO1lBQzVCLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBQyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUMsQ0FBQztTQUN6QzthQUFNO1lBQ0gsSUFBSSxDQUFDLFlBQVksR0FBRyxTQUFTLENBQUM7U0FDakM7SUFDTCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0JlaGF2aW9yfSBmcm9tICcuL2JlaGF2aW9yJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtGb3JtQ29udHJvbCwgVmFsaWRhdG9yRm4sIFZhbGlkYXRvcnN9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7Q2hhbmdlfSBmcm9tICcuL2NoYW5nZWQtZmllbGRzJztcbmltcG9ydCB7ZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgdGFrZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtMYXlvdXR9IGZyb20gJy4vbGF5b3V0JztcbmltcG9ydCB7Q29uZmlndXJhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uL2NvbmZpZ3VyYXRpb24vY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7Q29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudCc7XG5pbXBvcnQge1ZhbGlkYXRpb259IGZyb20gJy4vdmFsaWRhdGlvbic7XG5cbi8qKlxuICogSG9sZHMgdGhlIGxvZ2ljIGNvbW1vbiB0byBhbGwgZGF0YSBmaWVsZCBNb2RlbCBvYmplY3RzLlxuICogQHR5cGVwYXJhbSBUIC0gdHlwZSBvZiB0aGUgYHZhbHVlYCBwcm9wZXJ0eSBvZiB0aGUgZGF0YSBmaWVsZFxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRGF0YUZpZWxkPFQ+IHtcbiAgICAvKipcbiAgICAgKiBAaWdub3JlXG4gICAgICogQ3VycmVudCB2YWx1ZSBvZiB0aGUgZGF0YSBmaWVsZFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBfdmFsdWU6IEJlaGF2aW9yU3ViamVjdDxUPjtcbiAgICAvKipcbiAgICAgKiBAaWdub3JlXG4gICAgICogUHJldmlvdXMgdmFsdWUgb2YgdGhlIGRhdGEgZmllbGRcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX3ByZXZpb3VzVmFsdWU6IEJlaGF2aW9yU3ViamVjdDxUPjtcbiAgICAvKipcbiAgICAgKiBAaWdub3JlXG4gICAgICogV2hldGhlciB0aGUgZGF0YSBmaWVsZCBNb2RlbCBvYmplY3Qgd2FzIGluaXRpYWxpemVkLCB3ZSBwdXNoIHRoYXQgaW5mbyBpbnRvIHN0cmVhbVxuICAgICAqXG4gICAgICogU2VlIFtyZWdpc3RlckZvcm1Db250cm9sKClde0BsaW5rIERhdGFGaWVsZCNyZWdpc3RlckZvcm1Db250cm9sfSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX2luaXRpYWxpemVkJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+O1xuICAgIC8qKlxuICAgICAqIEBpZ25vcmVcbiAgICAgKiBXaGV0aGVyIHRoZSBmaWVsZCBmdWxmaWxscyBhbGwgb2YgaXQncyB2YWxpZGF0b3JzLlxuICAgICAqL1xuICAgIHByaXZhdGUgX3ZhbGlkOiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIEBpZ25vcmVcbiAgICAgKiBXaGV0aGVyIHRoZSBgdmFsdWVgIG9mIHRoZSBmaWVsZCBjaGFuZ2VkIHJlY2VudGx5LiBUaGUgZmxhZyBpcyBjbGVhcmVkIHdoZW4gY2hhbmdlcyBhcmUgc2VuZCB0byBiYWNrZW5kLlxuICAgICAqL1xuICAgIHByaXZhdGUgX2NoYW5nZWQ6IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogQGlnbm9yZVxuICAgICAqIERhdGEgZmllbGQgc3Vic2NyaWJlcyB0aGlzIHN0cmVhbS5cbiAgICAgKiBUaGUgZGF0YSBmaWVsZCB1cGRhdGVzIGl0J3MgVmFsaWRhdG9ycywgdmFsaWRpdHkgYW5kIGVuYWJsZWQvZGlzYWJsZWQgYWNjb3JkaW5nIHRvIGl0J3MgYmVoYXZpb3IuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF91cGRhdGU6IFN1YmplY3Q8dm9pZD47XG4gICAgLyoqXG4gICAgICogQGlnbm9yZVxuICAgICAqIERhdGEgZmllbGQgc3Vic2NyaWJlcyB0aGlzIHN0cmVhbS4gV2hlbiBhIGB0cnVlYCB2YWx1ZSBpcyByZWNlaXZlZCB0aGUgZGF0YSBmaWVsZCBkaXNhYmxlcyBpdHNlbGYuXG4gICAgICogV2hlbiBhIGBmYWxzZWB2YWx1ZSBpcyByZWNlaXZlZCBkYXRhIGZpZWxkIGRpc2FibGVzL2VuYWJsZXMgaXRzZWxmIGJhc2VkIG9uIGl0J3MgYmVoYXZpb3IuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9ibG9jazogU3ViamVjdDxib29sZWFuPjtcbiAgICAvKipcbiAgICAgKiBAaWdub3JlXG4gICAgICogV2hlbiBhIGB0cnVlYCB2YWx1ZSBpcyB0aGVyZSwgdGhlIGRhdGEgZmllbGQgaXMgZGlzYWJsZWQuXG4gICAgICogV2hlbiBhIGBmYWxzZWAgdmFsdWUgaXMgcmVjZWl2ZWQsIGRhdGEgZmllbGQgaXMgZGlzYWJsZWQvZW5hYmxlZCBiYXNlZCBvbiBpdCdzIGJlaGF2aW9yLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBfYmxvY2tlZDogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBAaWdub3JlXG4gICAgICogRGF0YSBmaWVsZCBzdWJzY3JpYmVzIHRoaXMgc3RyZWFtLiBTZXRzIHRoZSBzdGF0ZSBvZiB0aGUgZGF0YSBmaWVsZCB0byBcInRvdWNoZWRcIiBvciBcInVudG91Y2hlZFwiIChgdHJ1ZWAvYGZhbHNlYCkuXG4gICAgICogVmFsaWRpdHkgb2YgdGhlIGRhdGEgZmllbGQgaXMgbm90IGNoZWNrZWQgaW4gYW4gXCJ1bnRvdWNoZWRcIiBzdGF0ZS5cbiAgICAgKiBBbGwgZmllbGRzIGFyZSB0b3VjaGVkIGJlZm9yZSBhIHRhc2sgaXMgZmluaXNoZWQgdG8gY2hlY2sgdGhlaXIgdmFsaWRpdHkuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF90b3VjaDogU3ViamVjdDxib29sZWFuPjtcbiAgICBwcm90ZWN0ZWQgX3VwZGF0ZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICAgIHByb3RlY3RlZCBfYmxvY2tTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgICBwcm90ZWN0ZWQgX3RvdWNoU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gICAgcHJvdGVjdGVkIF9mb3JtQ29udHJvbFZhbHVlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gICAgcHJvdGVjdGVkIF9teVZhbHVlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gICAgLyoqXG4gICAgICogQGlnbm9yZVxuICAgICAqIEFwcGVhcmFuY2Ugb2YgZGF0YUZpZWxkcywgcG9zc2libGUgdmFsdWVzIC0gb3V0bGluZSwgc3RhbmRhcmQsIGZpbGwsIGxlZ2FjeVxuICAgICAqL1xuICAgIHB1YmxpYyBtYXRlcmlhbEFwcGVhcmFuY2U6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBAaWdub3JlXG4gICAgICogV2hldGhlciB0aGUgZmllbGQgZnVsZmlsbHMgcmVxdWlyZWQgdmFsaWRhdG9yLlxuICAgICAqL1xuICAgIHByaXZhdGUgX3ZhbGlkUmVxdWlyZWQ6IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogV2hldGhlciBpbnZhbGlkIGZpZWxkIHZhbHVlcyBzaG91bGQgYmUgc2VudCB0byBiYWNrZW5kLlxuICAgICAqL1xuICAgIHByaXZhdGUgX3NlbmRJbnZhbGlkVmFsdWVzID0gdHJ1ZTtcbiAgICAvKipcbiAgICAgKiBGbGFnIHRoYXQgaXMgc2V0IGR1cmluZyByZXZlcnRpbmdcbiAgICAgKi9cbiAgICBwcml2YXRlIF9yZXZlcnRpbmcgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFZhbGlkYXRvcnMgcmVzb2x2ZWQgZnJvbSBmaWVsZCB2YWxpZGF0aW9uc1xuICAgICAqL1xuICAgIHByb3RlY3RlZCBfdmFsaWRhdG9yczogQXJyYXk8VmFsaWRhdG9yRm4+O1xuXG4gICAgLyoqXG4gICAgICogU3RvcmVzIHRoZSBsYXN0IHN1YnNjcmlwdGlvbiB0byB0aGUgW19pbml0aWFsaXplZCRde0BsaW5rIEFic3RyYWN0RGF0YUZpZWxkI19pbml0aWFsaXplZCR9IFN0cmVhbSwgdG8gcHJldmVudCBtdWx0aXBsZSBibG9jayBldmVudHNcbiAgICAgKiBmcm9tIGV4ZWN1dGluZyBhdCB0aGUgc2FtZSB0aW1lXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9pbml0aWFsaXplZFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gICAgLyoqXG4gICAgICogQGlnbm9yZVxuICAgICAqIFdoZXRoZXIgdGhlIGNoYW5nZXMgZnJvbSBoYXMgYmVlbiByZXF1ZXN0ZWQuIFRoZSBmbGFnIGlzIGNsZWFyZWQgd2hlbiBjaGFuZ2VzIGFyZSByZWNlaXZlZCBmcm9tIGJhY2tlbmQuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfd2FpdGluZ0ZvclJlc3BvbnNlOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogU3RvcmVzIGEgY29weSBvZiB0aGUgZmllbGRzIGxheW91dCwgdGhhdCBjYW4gYmUgbW9kaWZpZWQgYnkgdGhlIGxheW91dGluZyBhbGdvcml0aG0gYXMgbmVlZGVkXG4gICAgICogd2l0aG91dCBhZmZlY3RpbmcgdGhlIGJhc2UgY29uZmlndXJhdGlvbi5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX2xvY2FsTGF5b3V0OiBMYXlvdXQ7XG5cbiAgICAvKipcbiAgICAgKiBMaXN0ZW5zIGZvciBsYXlvdXQgY2hhbmdlc1xuICAgICAqL1xuICAgIHByb3RlY3RlZCBsYXlvdXRTdWJqZWN0OiBCZWhhdmlvclN1YmplY3Q8TGF5b3V0PjtcblxuICAgIC8qKlxuICAgICAqIEBwYXJhbSBfc3RyaW5nSWQgLSBJRCBvZiB0aGUgZGF0YSBmaWVsZCBmcm9tIGJhY2tlbmRcbiAgICAgKiBAcGFyYW0gX3RpdGxlIC0gZGlzcGxheWVkIHRpdGxlIG9mIHRoZSBkYXRhIGZpZWxkIGZyb20gYmFja2VuZFxuICAgICAqIEBwYXJhbSBpbml0aWFsVmFsdWUgLSBpbml0aWFsIHZhbHVlIG9mIHRoZSBkYXRhIGZpZWxkXG4gICAgICogQHBhcmFtIF9iZWhhdmlvciAtIGRhdGEgZmllbGQgYmVoYXZpb3JcbiAgICAgKiBAcGFyYW0gX3BsYWNlaG9sZGVyIC0gcGxhY2Vob2xkZXIgZGlzcGxheWVkIGluIHRoZSBkYXRhZmllbGRcbiAgICAgKiBAcGFyYW0gX2Rlc2NyaXB0aW9uIC0gdG9vbHRpcCBvZiB0aGUgZGF0YWZpZWxkXG4gICAgICogQHBhcmFtIF9sYXlvdXQgLSBpbmZvcm1hdGlvbiByZWdhcmRpbmcgdGhlIGNvbXBvbmVudCByZW5kZXJpbmdcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbnNcbiAgICAgKiBAcGFyYW0gX2NvbXBvbmVudCAtIGNvbXBvbmVudCBkYXRhIG9mIGRhdGFmaWVsZFxuICAgICAqIEBwYXJhbSBfcGFyZW50VGFza0lkIC0gc3RyaW5nSWQgb2YgcGFyZW50IHRhc2ssIG9ubHkgZGVmaW5lZCBpZiBmaWVsZCBpcyBsb2FkZWQgdXNpbmcge0BsaW5rIFRhc2tSZWZGaWVsZH1cbiAgICAgKiBAcGFyYW0gX3BhcmVudENhc2VJZCAtIHN0cmluZ0lkIG9mIHBhcmVudCBjYXNlLCBvbmx5IGRlZmluZWQgaWYgZmllbGQgaXMgbG9hZGVkIHVzaW5nIHtAbGluayBUYXNrUmVmRmllbGR9XG4gICAgICovXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKHByaXZhdGUgX3N0cmluZ0lkOiBzdHJpbmcsIHByaXZhdGUgX3RpdGxlOiBzdHJpbmcsIGluaXRpYWxWYWx1ZTogVCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpdmF0ZSBfYmVoYXZpb3I6IEJlaGF2aW9yLCBwcml2YXRlIF9wbGFjZWhvbGRlcj86IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpdmF0ZSBfZGVzY3JpcHRpb24/OiBzdHJpbmcsIHByaXZhdGUgX2xheW91dD86IExheW91dCwgcHVibGljIHZhbGlkYXRpb25zPzogQXJyYXk8VmFsaWRhdGlvbj4sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByaXZhdGUgX2NvbXBvbmVudD86IENvbXBvbmVudCwgcHJpdmF0ZSBfcGFyZW50VGFza0lkPzogc3RyaW5nLCBwcml2YXRlIF9wYXJlbnRDYXNlSWQ/OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fdmFsdWUgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFQ+KGluaXRpYWxWYWx1ZSk7XG4gICAgICAgIHRoaXMuX3ByZXZpb3VzVmFsdWUgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFQ+KGluaXRpYWxWYWx1ZSk7XG4gICAgICAgIHRoaXMuX2luaXRpYWxpemVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAgICAgICB0aGlzLl92YWxpZCA9IHRydWU7XG4gICAgICAgIHRoaXMuX2NoYW5nZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fd2FpdGluZ0ZvclJlc3BvbnNlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX3VwZGF0ZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgICAgIHRoaXMuX2Jsb2NrID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgICAgICAgdGhpcy5fdG91Y2ggPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICAgICAgICB0aGlzLl92YWxpZFJlcXVpcmVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5sYXlvdXRTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxMYXlvdXQ+KF9sYXlvdXQpO1xuICAgICAgICB0aGlzLnJlc2V0TG9jYWxMYXlvdXQoKTtcbiAgICB9XG5cbiAgICBnZXQgc3RyaW5nSWQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0cmluZ0lkO1xuICAgIH1cblxuICAgIHNldCB0aXRsZSh0aXRsZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX3RpdGxlID0gdGl0bGU7XG4gICAgfVxuXG4gICAgZ2V0IHRpdGxlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl90aXRsZTtcbiAgICB9XG5cbiAgICBzZXQgcGxhY2Vob2xkZXIocGxhY2Vob2xkZXI6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9wbGFjZWhvbGRlciA9IHBsYWNlaG9sZGVyO1xuICAgIH1cblxuICAgIGdldCBwbGFjZWhvbGRlcigpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5fcGxhY2Vob2xkZXI7XG4gICAgfVxuXG4gICAgc2V0IGRlc2NyaXB0aW9uKGRlc2M6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9kZXNjcmlwdGlvbiA9IGRlc2M7XG4gICAgfVxuXG4gICAgZ2V0IGRlc2NyaXB0aW9uKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZXNjcmlwdGlvbjtcbiAgICB9XG5cbiAgICBzZXQgYmVoYXZpb3IoYmVoYXZpb3I6IEJlaGF2aW9yKSB7XG4gICAgICAgIHRoaXMuX2JlaGF2aW9yID0gYmVoYXZpb3I7XG4gICAgfVxuXG4gICAgZ2V0IGJlaGF2aW9yKCk6IEJlaGF2aW9yIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2JlaGF2aW9yO1xuICAgIH1cblxuICAgIGdldCB2YWx1ZSgpOiBUIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlLmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgc2V0IHZhbHVlKHZhbHVlOiBUKSB7XG4gICAgICAgIGlmICghdGhpcy52YWx1ZUVxdWFsaXR5KHRoaXMuX3ZhbHVlLmdldFZhbHVlKCksIHZhbHVlKSAmJiAhdGhpcy5fcmV2ZXJ0aW5nKSB7XG4gICAgICAgICAgICB0aGlzLl9jaGFuZ2VkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuX3dhaXRpbmdGb3JSZXNwb25zZSA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnJlc29sdmVQcmV2VmFsdWUodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3ZhbHVlLm5leHQodmFsdWUpO1xuICAgICAgICB0aGlzLl9yZXZlcnRpbmcgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBnZXQgcGFyZW50VGFza0lkKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wYXJlbnRUYXNrSWQ7XG4gICAgfVxuXG4gICAgZ2V0IHBhcmVudENhc2VJZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fcGFyZW50Q2FzZUlkO1xuICAgIH1cblxuICAgIGdldCBwcmV2aW91c1ZhbHVlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcHJldmlvdXNWYWx1ZS5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIHNldCBwcmV2aW91c1ZhbHVlKHZhbHVlOiBUKSB7XG4gICAgICAgIHRoaXMuX3ByZXZpb3VzVmFsdWUubmV4dCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHZhbHVlV2l0aG91dENoYW5nZSh2YWx1ZTogVCkge1xuICAgICAgICB0aGlzLl9jaGFuZ2VkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX3ZhbHVlLm5leHQodmFsdWUpO1xuICAgIH1cblxuICAgIHNldCBsYXlvdXQobGF5b3V0OiBMYXlvdXQpIHtcbiAgICAgICAgdGhpcy5fbGF5b3V0ID0gbGF5b3V0O1xuICAgICAgICB0aGlzLmxheW91dFN1YmplY3QubmV4dChsYXlvdXQpO1xuICAgIH1cblxuICAgIGdldCBsYXlvdXQoKTogTGF5b3V0IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xheW91dDtcbiAgICB9XG5cbiAgICBnZXQgbG9jYWxMYXlvdXQoKTogTGF5b3V0IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xvY2FsTGF5b3V0O1xuICAgIH1cblxuICAgIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5fYmVoYXZpb3IudmlzaWJsZSAmJiAhdGhpcy5fYmVoYXZpb3IuZWRpdGFibGU7XG4gICAgfVxuXG4gICAgZ2V0IGluaXRpYWxpemVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5pdGlhbGl6ZWQkLnZhbHVlO1xuICAgIH1cblxuICAgIGdldCBpbml0aWFsaXplZCQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbml0aWFsaXplZCQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgc2V0IHZhbGlkKHNldDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl92YWxpZCA9IHNldDtcbiAgICB9XG5cbiAgICBnZXQgdmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl92YWxpZDtcbiAgICB9XG5cbiAgICBzZXQgY2hhbmdlZChzZXQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fY2hhbmdlZCA9IHNldDtcbiAgICB9XG5cbiAgICBnZXQgY2hhbmdlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NoYW5nZWQ7XG4gICAgfVxuXG4gICAgc2V0IGJsb2NrKHNldDogYm9vbGVhbikge1xuICAgICAgICBpZiAodGhpcy5faW5pdGlhbGl6ZWRTdWJzY3JpcHRpb24gIT09IHVuZGVmaW5lZCAmJiAhdGhpcy5faW5pdGlhbGl6ZWRTdWJzY3JpcHRpb24uY2xvc2VkKSB7XG4gICAgICAgICAgICB0aGlzLl9pbml0aWFsaXplZFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2luaXRpYWxpemVkU3Vic2NyaXB0aW9uID0gdGhpcy5pbml0aWFsaXplZCQucGlwZShmaWx0ZXIoaSA9PiBpKSwgdGFrZSgxKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2Jsb2NrLm5leHQoc2V0KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2V0IHRvdWNoKHNldDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl90b3VjaC5uZXh0KHNldCk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXBvbmVudCgpOiBDb21wb25lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29tcG9uZW50O1xuICAgIH1cblxuICAgIHB1YmxpYyByZXZlcnRUb1ByZXZpb3VzVmFsdWUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2hhbmdlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9yZXZlcnRpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5wcmV2aW91c1ZhbHVlO1xuICAgIH1cblxuICAgIHNldCB2YWxpZFJlcXVpcmVkKHNldDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl92YWxpZFJlcXVpcmVkID0gc2V0O1xuICAgIH1cblxuICAgIGdldCB2YWxpZFJlcXVpcmVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsaWRSZXF1aXJlZDtcbiAgICB9XG5cbiAgICBnZXQgc2VuZEludmFsaWRWYWx1ZXMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zZW5kSW52YWxpZFZhbHVlcztcbiAgICB9XG5cbiAgICBzZXQgc2VuZEludmFsaWRWYWx1ZXModmFsdWU6IGJvb2xlYW4gfCBudWxsKSB7XG4gICAgICAgIHRoaXMuX3NlbmRJbnZhbGlkVmFsdWVzID0gdmFsdWUgPT09IG51bGwgfHwgdmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IHdhaXRpbmdGb3JSZXNwb25zZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3dhaXRpbmdGb3JSZXNwb25zZTtcbiAgICB9XG5cbiAgICBzZXQgd2FpdGluZ0ZvclJlc3BvbnNlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX3dhaXRpbmdGb3JSZXNwb25zZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyB1cGRhdGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3VwZGF0ZS5uZXh0KCk7XG4gICAgfVxuXG4gICAgcHVibGljIHZhbHVlQ2hhbmdlcygpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIHNldCByZXZlcnRpbmcoc2V0OiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX3JldmVydGluZyA9IHNldDtcbiAgICB9XG5cbiAgICBnZXQgcmV2ZXJ0aW5nKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmV2ZXJ0aW5nO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgZnVuY3Rpb24gcmVzb2x2ZSB0eXBlIG9mIGNvbXBvbmVudCBmb3IgSFRNTFxuICAgICAqIEByZXR1cm5zIHR5cGUgb2YgY29tcG9uZW50IGluIHN0cmluZ1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXRDb21wb25lbnRUeXBlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXBvbmVudD8ubmFtZSA/PyAnJztcbiAgICB9XG5cbiAgICBwdWJsaWMgZGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdmFsdWUuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5fcHJldmlvdXNWYWx1ZS5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLl91cGRhdGUuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5fdG91Y2guY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5fYmxvY2suY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5faW5pdGlhbGl6ZWQkLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMubGF5b3V0U3ViamVjdC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWdpc3RlckZvcm1Db250cm9sKGZvcm1Db250cm9sOiBGb3JtQ29udHJvbCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdEYXRhIGZpZWxkIGNhbiBiZSBpbml0aWFsaXplZCBvbmx5IG9uY2UhJ1xuICAgICAgICAgICAgICAgICsgJyBEaXNjb25uZWN0IHRoZSBwcmV2aW91cyBmb3JtIGNvbnRyb2wgYmVmb3JlIGluaXRpYWxpemluZyB0aGUgZGF0YSBmaWVsZCBhZ2FpbiEnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvcm1Db250cm9sLnNldFZhbGlkYXRvcnModGhpcy5yZXNvbHZlRm9ybUNvbnRyb2xWYWxpZGF0b3JzKCkpO1xuXG4gICAgICAgIHRoaXMuX2Zvcm1Db250cm9sVmFsdWVTdWJzY3JpcHRpb24gPSBmb3JtQ29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKHRoaXMudmFsdWVFcXVhbGl0eSlcbiAgICAgICAgKS5zdWJzY3JpYmUobmV3VmFsdWUgPT4ge1xuICAgICAgICAgICAgdGhpcy5fdmFsaWQgPSB0aGlzLl9kZXRlcm1pbmVGb3JtQ29udHJvbFZhbGlkaXR5KGZvcm1Db250cm9sKTtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBuZXdWYWx1ZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fbXlWYWx1ZVN1YnNjcmlwdGlvbiA9IHRoaXMuX3ZhbHVlLnBpcGUoXG4gICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCh0aGlzLnZhbHVlRXF1YWxpdHkpXG4gICAgICAgICkuc3Vic2NyaWJlKG5ld1ZhbHVlID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3ZhbGlkID0gdGhpcy5fZGV0ZXJtaW5lRm9ybUNvbnRyb2xWYWxpZGl0eShmb3JtQ29udHJvbCk7XG4gICAgICAgICAgICBmb3JtQ29udHJvbC5zZXRWYWx1ZShuZXdWYWx1ZSk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnVwZGF0ZUZvcm1Db250cm9sU3RhdGUoZm9ybUNvbnRyb2wpO1xuICAgICAgICB0aGlzLl9pbml0aWFsaXplZCQubmV4dCh0cnVlKTtcbiAgICAgICAgdGhpcy5fY2hhbmdlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLl93YWl0aW5nRm9yUmVzcG9uc2UgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZGlzY29ubmVjdEZvcm1Db250cm9sKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9pbml0aWFsaXplZCQubmV4dChmYWxzZSk7XG4gICAgICAgIGNvbnN0IHN1YnMgPSBbXG4gICAgICAgICAgICB0aGlzLl91cGRhdGVTdWJzY3JpcHRpb24sXG4gICAgICAgICAgICB0aGlzLl9ibG9ja1N1YnNjcmlwdGlvbixcbiAgICAgICAgICAgIHRoaXMuX3RvdWNoU3Vic2NyaXB0aW9uLFxuICAgICAgICAgICAgdGhpcy5fZm9ybUNvbnRyb2xWYWx1ZVN1YnNjcmlwdGlvbixcbiAgICAgICAgICAgIHRoaXMuX215VmFsdWVTdWJzY3JpcHRpb25cbiAgICAgICAgXTtcbiAgICAgICAgZm9yIChjb25zdCBzdWIgb2Ygc3Vicykge1xuICAgICAgICAgICAgaWYgKHN1Yikge1xuICAgICAgICAgICAgICAgIHN1Yi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHVwZGF0ZUZvcm1Db250cm9sU3RhdGUoZm9ybUNvbnRyb2w6IEZvcm1Db250cm9sKTogdm9pZCB7XG4gICAgICAgIGZvcm1Db250cm9sLnNldFZhbHVlKHRoaXMudmFsdWUpO1xuICAgICAgICB0aGlzLnN1YnNjcmliZVRvSW5uZXJTdWJqZWN0cyhmb3JtQ29udHJvbCk7XG4gICAgICAgIHRoaXMudXBkYXRlKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHN1YnNjcmliZVRvSW5uZXJTdWJqZWN0cyhmb3JtQ29udHJvbDogRm9ybUNvbnRyb2wpIHtcbiAgICAgICAgdGhpcy5fdXBkYXRlU3Vic2NyaXB0aW9uID0gdGhpcy5fdXBkYXRlLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnZhbGlkUmVxdWlyZWQgPSB0aGlzLmNhbGN1bGF0ZVZhbGlkaXR5KHRydWUsIGZvcm1Db250cm9sKTtcbiAgICAgICAgICAgIHRoaXMudmFsaWQgPSB0aGlzLmNhbGN1bGF0ZVZhbGlkaXR5KGZhbHNlLCBmb3JtQ29udHJvbCk7XG4gICAgICAgICAgICBpZiAoIXRoaXMuX2Jsb2NrZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRpc2FibGVkID8gZm9ybUNvbnRyb2wuZGlzYWJsZSgpIDogZm9ybUNvbnRyb2wuZW5hYmxlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX2Jsb2NrU3Vic2NyaXB0aW9uID0gdGhpcy5fYmxvY2suc3Vic2NyaWJlKGJvb2wgPT4ge1xuICAgICAgICAgICAgaWYgKGJvb2wpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9ibG9ja2VkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbC5kaXNhYmxlKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX2Jsb2NrZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLmRpc2FibGVkID8gZm9ybUNvbnRyb2wuZGlzYWJsZSgpIDogZm9ybUNvbnRyb2wuZW5hYmxlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX3RvdWNoU3Vic2NyaXB0aW9uID0gdGhpcy5fdG91Y2guc3Vic2NyaWJlKGJvb2wgPT4ge1xuICAgICAgICAgICAgaWYgKGJvb2wpIHtcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGZvcm1Db250cm9sLm1hcmtBc1VudG91Y2hlZCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb21wdXRlcyB3aGV0aGVyIHRoZSBGb3JtQ29udHJvbCBzaSB2YWxpZC5cbiAgICAgKiBAcGFyYW0gZm9ybUNvbnRyb2wgY2hlY2sgZm9ybSBjb250cm9sXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9kZXRlcm1pbmVGb3JtQ29udHJvbFZhbGlkaXR5KGZvcm1Db250cm9sOiBGb3JtQ29udHJvbCk6IGJvb2xlYW4ge1xuICAgICAgICAvLyBkaXNhYmxlZCBmb3JtIGNvbnRyb2xzIGFyZSBtYXJrZWQgYXMgaW52YWxpZCBhcyBwZXIgVzNDIHN0YW5kYXJkLCB0aGlzIHNvbHZlcyB0aGF0IHByb2JsZW1cbiAgICAgICAgcmV0dXJuIGZvcm1Db250cm9sLmRpc2FibGVkIHx8IGZvcm1Db250cm9sLnZhbGlkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgVmFsaWRhdG9yIG9iamVjdHMgYmFzZWQgb24gZmllbGQgYGJlaGF2aW9yYC4gT25seSB0aGUgYHJlcXVpcmVkYCBiZWhhdmlvciBpcyByZXNvbHZlZCBieSBkZWZhdWx0LlxuICAgICAqIFJlcXVpcmVkIGlzIHJlc29sdmVkIGFzIGBWYWxpZGF0b3JzLnJlcXVpcmVkYC5cbiAgICAgKiBJZiB5b3UgbmVlZCB0byByZXNvbHZlIGFkZGl0aW9uYWwgVmFsaWRhdG9ycyBvciBuZWVkIGEgZGlmZmVyZW50IHJlc29sdXRpb24gZm9yIHRoZSBgcmVxdWlyZWRgIFZhbGlkYXRvciBvdmVycmlkZSB0aGlzIG1ldGhvZC5cbiAgICAgKlxuICAgICAqIFNlZSB7QGxpbmsgQmVoYXZpb3J9IGZvciBpbmZvcm1hdGlvbiBhYm91dCBkYXRhIGZpZWxkIGJlaGF2aW9yLlxuICAgICAqXG4gICAgICogU2VlIHtAbGluayBWYWxpZGF0b3JGbn0gYW5kIHtAbGluayBWYWxpZGF0b3JzfSBmb3IgaW5mb3JtYXRpb24gYWJvdXQgVmFsaWRhdG9ycy5cbiAgICAgKlxuICAgICAqIEFsdGVybmF0aXZlbHkgc2VlIFtGb3JtIFZhbGlkYXRpb24gZ3VpZGVde0BsaW5rIGh0dHBzOi8vYW5ndWxhci5pby9ndWlkZS9mb3JtLXZhbGlkYXRpb24jcmVhY3RpdmUtZm9ybS12YWxpZGF0aW9ufSBmcm9tIEFuZ3VsYXIuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlc29sdmVGb3JtQ29udHJvbFZhbGlkYXRvcnMoKTogQXJyYXk8VmFsaWRhdG9yRm4+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gW107XG5cbiAgICAgICAgaWYgKHRoaXMuYmVoYXZpb3IucmVxdWlyZWQpIHtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMudmFsaWRhdGlvbnMpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl92YWxpZGF0b3JzKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0LnB1c2goLi4udGhpcy5fdmFsaWRhdG9ycyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX3ZhbGlkYXRvcnMgPSB0aGlzLnJlc29sdmVWYWxpZGF0aW9ucygpO1xuICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKC4uLnRoaXMuX3ZhbGlkYXRvcnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVwbGFjZVZhbGlkYXRpb25zKHZhbGlkYXRpb25zOiBBcnJheTxWYWxpZGF0aW9uPikge1xuICAgICAgICB0aGlzLmNsZWFyVmFsaWRhdG9ycygpO1xuICAgICAgICB0aGlzLnZhbGlkYXRpb25zID0gdmFsaWRhdGlvbnM7XG4gICAgfVxuXG4gICAgcHVibGljIGNsZWFyVmFsaWRhdG9ycygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdmFsaWRhdG9ycyA9IG51bGw7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJlc29sdmVWYWxpZGF0aW9ucygpOiBBcnJheTxWYWxpZGF0b3JGbj4ge1xuICAgICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGV0ZXJtaW5lcyBpZiB0d28gdmFsdWVzIG9mIHRoZSBkYXRhIGZpZWxkIGFyZSBlcXVhbC5cbiAgICAgKlxuICAgICAqIGBhID09PSBiYCBlcXVhbGl0eSBpcyB1c2VkIGJ5IGRlZmF1bHQuIElmIHlvdSB3YW50IGRpZmZlcmVudCBiZWhhdmlvciBvdmVycmlkZSB0aGlzIG1ldGhvZC5cbiAgICAgKiBAcGFyYW0gYSAtIGZpcnN0IGNvbXBhcmVkIHZhbHVlXG4gICAgICogQHBhcmFtIGIgLSBzZWNvbmQgY29tcGFyZWQgdmFsdWVcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgdmFsdWVFcXVhbGl0eShhOiBULCBiOiBUKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBhID09PSBiIHx8IChOdW1iZXIuaXNOYU4oYSkgJiYgTnVtYmVyLmlzTmFOKGIpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGVzIHRoZSBzdGF0ZSBvZiB0aGlzIGRhdGEgZmllbGQgbW9kZWwgb2JqZWN0LlxuICAgICAqIEBwYXJhbSBjaGFuZ2UgLSBvYmplY3QgZGVzY3JpYmluZyB0aGUgY2hhbmdlcyAtIHJldHVybmVkIGZyb20gYmFja2VuZFxuICAgICAqXG4gICAgICogQWxzbyBzZWUge0BsaW5rIENoYW5nZWRGaWVsZHN9LlxuICAgICAqL1xuICAgIHB1YmxpYyBhcHBseUNoYW5nZShjaGFuZ2U6IENoYW5nZSk6IHZvaWQge1xuICAgICAgICBPYmplY3Qua2V5cyhjaGFuZ2UpLmZvckVhY2goY2hhbmdlZEF0dHJpYnV0ZSA9PiB7XG4gICAgICAgICAgICBzd2l0Y2ggKGNoYW5nZWRBdHRyaWJ1dGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlICd2YWx1ZSc6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSBjaGFuZ2VbY2hhbmdlZEF0dHJpYnV0ZV07XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2JlaGF2aW9yJzpcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLmJlaGF2aW9yLCBjaGFuZ2VbY2hhbmdlZEF0dHJpYnV0ZV0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gYXR0cmlidXRlICcke2NoYW5nZWRBdHRyaWJ1dGV9JyBpbiBjaGFuZ2Ugb2JqZWN0YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyByZXNvbHZlQXBwZWFyYW5jZShjb25maWc6IENvbmZpZ3VyYXRpb25TZXJ2aWNlKTogdm9pZCB7XG4gICAgICAgIGxldCBhcHBlYXJhbmNlID0gJ291dGxpbmUnO1xuICAgICAgICBpZiAodGhpcy5sYXlvdXQgJiYgdGhpcy5sYXlvdXQuYXBwZWFyYW5jZSkge1xuICAgICAgICAgICAgYXBwZWFyYW5jZSA9IHRoaXMubGF5b3V0LmFwcGVhcmFuY2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBkYXRhZmllbGRDb25maWd1cmF0aW9uID0gY29uZmlnLmdldERhdGFmaWVsZENvbmZpZ3VyYXRpb24oKTtcbiAgICAgICAgICAgIGlmIChkYXRhZmllbGRDb25maWd1cmF0aW9uICYmIGRhdGFmaWVsZENvbmZpZ3VyYXRpb24uYXBwZWFyYW5jZSkge1xuICAgICAgICAgICAgICAgIGFwcGVhcmFuY2UgPSBkYXRhZmllbGRDb25maWd1cmF0aW9uLmFwcGVhcmFuY2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5tYXRlcmlhbEFwcGVhcmFuY2UgPSBhcHBlYXJhbmNlO1xuXG4gICAgICAgIC8qIExpc3RlbiBmb3IgY2hhbmdlcyBvZiBsYXlvdXQgaW4gZnV0dXJlICovXG4gICAgICAgIHRoaXMubGF5b3V0U3ViamVjdC5zdWJzY3JpYmUobGF5b3V0ID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmxheW91dCAmJiB0aGlzLmxheW91dC5hcHBlYXJhbmNlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tYXRlcmlhbEFwcGVhcmFuY2UgPSB0aGlzLmxheW91dC5hcHBlYXJhbmNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVzb2x2ZVByZXZWYWx1ZSh2YWx1ZTogVCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fdmFsdWUuZ2V0VmFsdWUoKSAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAmJiB0aGlzLl92YWx1ZS5nZXRWYWx1ZSgpICE9PSB2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5fcHJldmlvdXNWYWx1ZS5uZXh0KHRoaXMuX3ZhbHVlLmdldFZhbHVlKCkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNhbGN1bGF0ZVZhbGlkaXR5KGZvclZhbGlkUmVxdWlyZWQ6IGJvb2xlYW4sIGZvcm1Db250cm9sOiBGb3JtQ29udHJvbCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBpc0Rpc2FibGVkID0gZm9ybUNvbnRyb2wuZGlzYWJsZWQ7XG4gICAgICAgIGlmIChmb3JWYWxpZFJlcXVpcmVkKSB7XG4gICAgICAgICAgICBmb3JtQ29udHJvbC5lbmFibGUoKTtcbiAgICAgICAgfVxuICAgICAgICBmb3JtQ29udHJvbC5jbGVhclZhbGlkYXRvcnMoKTtcbiAgICAgICAgaWYgKGZvclZhbGlkUmVxdWlyZWQpIHtcbiAgICAgICAgICAgIGZvcm1Db250cm9sLnNldFZhbGlkYXRvcnModGhpcy5iZWhhdmlvci5yZXF1aXJlZCA/IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSA6IFtdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGZvcm1Db250cm9sLnNldFZhbGlkYXRvcnModGhpcy5yZXNvbHZlRm9ybUNvbnRyb2xWYWxpZGF0b3JzKCkpO1xuICAgICAgICB9XG4gICAgICAgIGZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgICAgY29uc3QgdmFsaWRpdHkgPSB0aGlzLl9kZXRlcm1pbmVGb3JtQ29udHJvbFZhbGlkaXR5KGZvcm1Db250cm9sKTtcbiAgICAgICAgaXNEaXNhYmxlZCA/IGZvcm1Db250cm9sLmRpc2FibGUoKSA6IGZvcm1Db250cm9sLmVuYWJsZSgpO1xuICAgICAgICByZXR1cm4gdmFsaWRpdHk7XG4gICAgfVxuXG4gICAgcHVibGljIGlzSW52YWxpZChmb3JtQ29udHJvbDogRm9ybUNvbnRyb2wpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICFmb3JtQ29udHJvbC5kaXNhYmxlZCAmJiAhZm9ybUNvbnRyb2wudmFsaWQgJiYgZm9ybUNvbnRyb2wudG91Y2hlZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb3BpZXMgdGhlIGxheW91dCBzZXR0aW5ncyBpbnRvIHRoZSBsb2NhbCBsYXlvdXQuXG4gICAgICovXG4gICAgcHVibGljIHJlc2V0TG9jYWxMYXlvdXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9sYXlvdXQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5fbG9jYWxMYXlvdXQgPSB7Li4udGhpcy5fbGF5b3V0fTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2xvY2FsTGF5b3V0ID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -22,7 +22,7 @@ export class AbstractMultichoiceAutocompleteFieldComponentComponent {
22
22
  this.filteredOptions = undefined;
23
23
  }
24
24
  add(event) {
25
- const value = (event.value || '').trim();
25
+ const value = (event['key'] || '').trim();
26
26
  if (value) {
27
27
  const choiceArray = [...this.multichoiceField.value];
28
28
  choiceArray.push(value);
@@ -57,6 +57,9 @@ export class AbstractMultichoiceAutocompleteFieldComponentComponent {
57
57
  return this.multichoiceField.choices.filter(option => option.value.toLowerCase().normalize('NFD')
58
58
  .replace(/[\u0300-\u036f]/g, '').indexOf(filterValue) === 0);
59
59
  }
60
+ getValueFromKey(key) {
61
+ return this.multichoiceField.choices.find(choice => choice.key === key)?.value;
62
+ }
60
63
  }
61
64
  AbstractMultichoiceAutocompleteFieldComponentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AbstractMultichoiceAutocompleteFieldComponentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
62
65
  AbstractMultichoiceAutocompleteFieldComponentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: AbstractMultichoiceAutocompleteFieldComponentComponent, selector: "ncc-abstract-multichoice-autocomplete-field", inputs: { multichoiceField: "multichoiceField", formControlRef: "formControlRef", showLargeLayout: "showLargeLayout" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: '', isInline: true });
@@ -76,4 +79,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
76
79
  type: ViewChild,
77
80
  args: ['input']
78
81
  }] } });
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtbXVsdGljaG9pY2UtYXV0b2NvbXBsZXRlLWZpZWxkLWNvbXBvbmVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMtY29yZS9zcmMvbGliL2RhdGEtZmllbGRzL211bHRpY2hvaWNlLWZpZWxkL211bHRpY2hvaWNlLWF1dG9jb21wbGV0ZS1maWVsZC9hYnN0cmFjdC1tdWx0aWNob2ljZS1hdXRvY29tcGxldGUtZmllbGQtY29tcG9uZW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLEtBQUssRUFBcUIsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBSXpGLE9BQU8sRUFBQyxLQUFLLEVBQUUsS0FBSyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFFbkQsT0FBTyxFQUFhLEVBQUUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUMsR0FBRyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDOztBQU05QyxNQUFNLE9BQWdCLHNEQUFzRDtJQUo1RTtRQVdJLHVCQUFrQixHQUFhLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBeUR2QyxvQkFBZSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDN0IsSUFBSSxHQUFHLEtBQUssU0FBUyxJQUFJLEdBQUcsS0FBSyxFQUFFLElBQUksR0FBRyxLQUFLLElBQUksRUFBRTtnQkFDakQsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLEVBQUU7b0JBQ2xFLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FB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Z0JBQWdCLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQzthQUM1RixPQUFPLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7O29KQTlEaUIsc0RBQXNEO3dJQUF0RCxzREFBc0QsMlNBRjlELEVBQUU7NEZBRU0sc0RBQXNEO2tCQUozRSxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSw2Q0FBNkM7b0JBQ3ZELFFBQVEsRUFBRSxFQUFFO2lCQUNmOzhCQUdZLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ2MsS0FBSztzQkFBeEIsU0FBUzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TXVsdGljaG9pY2VGaWVsZCwgTXVsdGljaG9pY2VGaWVsZFZhbHVlfSBmcm9tICcuLi9tb2RlbHMvbXVsdGljaG9pY2UtZmllbGQnO1xuaW1wb3J0IHtGb3JtQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtXcmFwcGVkQm9vbGVhbn0gZnJvbSAnLi4vLi4vZGF0YS1maWVsZC10ZW1wbGF0ZS9tb2RlbHMvd3JhcHBlZC1ib29sZWFuJztcbmltcG9ydCB7Q09NTUEsIEVOVEVSfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHtNYXRDaGlwSW5wdXRFdmVudH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hpcHMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBvZn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcCwgc3RhcnRXaXRofSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmNjLWFic3RyYWN0LW11bHRpY2hvaWNlLWF1dG9jb21wbGV0ZS1maWVsZCcsXG4gICAgdGVtcGxhdGU6ICcnXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0TXVsdGljaG9pY2VBdXRvY29tcGxldGVGaWVsZENvbXBvbmVudENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICAgIEBJbnB1dCgpIG11bHRpY2hvaWNlRmllbGQ6IE11bHRpY2hvaWNlRmllbGQ7XG4gICAgQElucHV0KCkgZm9ybUNvbnRyb2xSZWY6IEZvcm1Db250cm9sO1xuICAgIEBJbnB1dCgpIHNob3dMYXJnZUxheW91dDogV3JhcHBlZEJvb2xlYW47XG4gICAgQFZpZXdDaGlsZCgnaW5wdXQnKSBpbnB1dDogRWxlbWVudFJlZjtcblxuICAgIHNlcGFyYXRvcktleXNDb2RlczogbnVtYmVyW10gPSBbRU5URVIsIENPTU1BXTtcblxuICAgIGZpbHRlcmVkT3B0aW9uczogT2JzZXJ2YWJsZTxBcnJheTxNdWx0aWNob2ljZUZpZWxkVmFsdWU+PjtcblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IHRoaXMuZm9ybUNvbnRyb2xSZWYudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICBzdGFydFdpdGgoJycpLFxuICAgICAgICAgICAgbWFwKHZhbHVlID0+IHRoaXMuX2ZpbHRlcih2YWx1ZSkuZmlsdGVyKChvcHRpb24pID0+ICF0aGlzLm11bHRpY2hvaWNlRmllbGQudmFsdWUuaW5jbHVkZXMob3B0aW9uLmtleSkpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBhZGQoZXZlbnQ6IE1hdENoaXBJbnB1dEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gKGV2ZW50LnZhbHVlIHx8ICcnKS50cmltKCk7XG5cbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICBjb25zdCBjaG9pY2VBcnJheSA9IFsuLi50aGlzLm11bHRpY2hvaWNlRmllbGQudmFsdWVdO1xuICAgICAgICAgICAgY2hvaWNlQXJyYXkucHVzaCh2YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLm11bHRpY2hvaWNlRmllbGQudmFsdWUgPSBjaG9pY2VBcnJheTtcbiAgICAgICAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2UoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2UoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlbW92ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5tdWx0aWNob2ljZUZpZWxkLnZhbHVlLmluZGV4T2YodmFsdWUpO1xuXG4gICAgICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICAgICAgICBjb25zdCBjaG9pY2VBcnJheSA9IFsuLi50aGlzLm11bHRpY2hvaWNlRmllbGQudmFsdWVdO1xuICAgICAgICAgICAgY2hvaWNlQXJyYXkuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgICAgIHRoaXMubXVsdGljaG9pY2VGaWVsZC52YWx1ZSA9IGNob2ljZUFycmF5O1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2UoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNoYW5nZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IG9mKHRoaXMuX2ZpbHRlcih0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUpLmZpbHRlcigob3B0aW9uKSA9PiAhdGhpcy5tdWx0aWNob2ljZUZpZWxkLnZhbHVlLmluY2x1ZGVzKG9wdGlvbi5rZXkpKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9maWx0ZXIodmFsdWU6IHN0cmluZyk6IEFycmF5PE11bHRpY2hvaWNlRmllbGRWYWx1ZT4ge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHZhbHVlID0gJyc7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZmlsdGVyVmFsdWUgPSB2YWx1ZT8udG9Mb3dlckNhc2UoKS5ub3JtYWxpemUoJ05GRCcpLnJlcGxhY2UoL1tcXHUwMzAwLVxcdTAzNmZdL2csICcnKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5tdWx0aWNob2ljZUZpZWxkLmNob2ljZXMuZmlsdGVyKG9wdGlvbiA9PiBvcHRpb24udmFsdWUudG9Mb3dlckNhc2UoKS5ub3JtYWxpemUoJ05GRCcpXG4gICAgICAgICAgICAucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl0vZywgJycpLmluZGV4T2YoZmlsdGVyVmFsdWUpID09PSAwKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVuZGVyU2VsZWN0aW9uID0gKGtleSkgPT4ge1xuICAgICAgICBpZiAoa2V5ICE9PSB1bmRlZmluZWQgJiYga2V5ICE9PSAnJyAmJiBrZXkgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLm11bHRpY2hvaWNlRmllbGQuY2hvaWNlcy5maW5kKGNob2ljZSA9PiBjaG9pY2Uua2V5ID09PSBrZXkpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubXVsdGljaG9pY2VGaWVsZC5jaG9pY2VzLmZpbmQoY2hvaWNlID0+IGNob2ljZS5rZXkgPT09IGtleSkudmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGtleTtcbiAgICB9XG59XG4iXX0=
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtbXVsdGljaG9pY2UtYXV0b2NvbXBsZXRlLWZpZWxkLWNvbXBvbmVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMtY29yZS9zcmMvbGliL2RhdGEtZmllbGRzL211bHRpY2hvaWNlLWZpZWxkL211bHRpY2hvaWNlLWF1dG9jb21wbGV0ZS1maWVsZC9hYnN0cmFjdC1tdWx0aWNob2ljZS1hdXRvY29tcGxldGUtZmllbGQtY29tcG9uZW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLEtBQUssRUFBcUIsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBSXpGLE9BQU8sRUFBQyxLQUFLLEVBQUUsS0FBSyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFFbkQsT0FBTyxFQUFhLEVBQUUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUMsR0FBRyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDOztBQU05QyxNQUFNLE9BQWdCLHNEQUFzRDtJQUo1RTtRQVdJLHVCQUFrQixHQUFhLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBeUR2QyxvQkFBZSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDN0IsSUFBSSxHQUFHLEtBQUssU0FBUyxJQUFJLEdBQUcsS0FBSyxFQUFFLElBQUksR0FBRyxLQUFLLElBQUksRUFBRTtnQkFDakQsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLEVBQUU7b0JBQ2xFLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FB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Q0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO2FBQzVGLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQVdNLGVBQWUsQ0FBQyxHQUFXO1FBQzlCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQztJQUNuRixDQUFDOztvSkEzRWlCLHNEQUFzRDt3SUFBdEQsc0RBQXNELDJTQUY5RCxFQUFFOzRGQUVNLHNEQUFzRDtrQkFKM0UsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsNkNBQTZDO29CQUN2RCxRQUFRLEVBQUUsRUFBRTtpQkFDZjs4QkFHWSxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNjLEtBQUs7c0JBQXhCLFNBQVM7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge011bHRpY2hvaWNlRmllbGQsIE11bHRpY2hvaWNlRmllbGRWYWx1ZX0gZnJvbSAnLi4vbW9kZWxzL211bHRpY2hvaWNlLWZpZWxkJztcbmltcG9ydCB7Rm9ybUNvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7V3JhcHBlZEJvb2xlYW59IGZyb20gJy4uLy4uL2RhdGEtZmllbGQtdGVtcGxhdGUvbW9kZWxzL3dyYXBwZWQtYm9vbGVhbic7XG5pbXBvcnQge0NPTU1BLCBFTlRFUn0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7TWF0Q2hpcElucHV0RXZlbnR9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoaXBzJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgb2Z9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXAsIHN0YXJ0V2l0aH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25jYy1hYnN0cmFjdC1tdWx0aWNob2ljZS1hdXRvY29tcGxldGUtZmllbGQnLFxuICAgIHRlbXBsYXRlOiAnJ1xufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdE11bHRpY2hvaWNlQXV0b2NvbXBsZXRlRmllbGRDb21wb25lbnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgICBASW5wdXQoKSBtdWx0aWNob2ljZUZpZWxkOiBNdWx0aWNob2ljZUZpZWxkO1xuICAgIEBJbnB1dCgpIGZvcm1Db250cm9sUmVmOiBGb3JtQ29udHJvbDtcbiAgICBASW5wdXQoKSBzaG93TGFyZ2VMYXlvdXQ6IFdyYXBwZWRCb29sZWFuO1xuICAgIEBWaWV3Q2hpbGQoJ2lucHV0JykgaW5wdXQ6IEVsZW1lbnRSZWY7XG5cbiAgICBzZXBhcmF0b3JLZXlzQ29kZXM6IG51bWJlcltdID0gW0VOVEVSLCBDT01NQV07XG5cbiAgICBmaWx0ZXJlZE9wdGlvbnM6IE9ic2VydmFibGU8QXJyYXk8TXVsdGljaG9pY2VGaWVsZFZhbHVlPj47XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSB0aGlzLmZvcm1Db250cm9sUmVmLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgICAgICAgc3RhcnRXaXRoKCcnKSxcbiAgICAgICAgICAgIG1hcCh2YWx1ZSA9PiB0aGlzLl9maWx0ZXIodmFsdWUpLmZpbHRlcigob3B0aW9uKSA9PiAhdGhpcy5tdWx0aWNob2ljZUZpZWxkLnZhbHVlLmluY2x1ZGVzKG9wdGlvbi5rZXkpKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgYWRkKGV2ZW50OiBNYXRDaGlwSW5wdXRFdmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IChldmVudFsna2V5J10gfHwgJycpLnRyaW0oKTtcblxuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIGNvbnN0IGNob2ljZUFycmF5ID0gWy4uLnRoaXMubXVsdGljaG9pY2VGaWVsZC52YWx1ZV07XG4gICAgICAgICAgICBjaG9pY2VBcnJheS5wdXNoKHZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMubXVsdGljaG9pY2VGaWVsZC52YWx1ZSA9IGNob2ljZUFycmF5O1xuICAgICAgICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmVtb3ZlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLm11bHRpY2hvaWNlRmllbGQudmFsdWUuaW5kZXhPZih2YWx1ZSk7XG5cbiAgICAgICAgaWYgKGluZGV4ID49IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGNob2ljZUFycmF5ID0gWy4uLnRoaXMubXVsdGljaG9pY2VGaWVsZC52YWx1ZV07XG4gICAgICAgICAgICBjaG9pY2VBcnJheS5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICAgICAgdGhpcy5tdWx0aWNob2ljZUZpZWxkLnZhbHVlID0gY2hvaWNlQXJyYXk7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2hhbmdlKCkge1xuICAgICAgICBpZiAodGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gb2YodGhpcy5fZmlsdGVyKHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSkuZmlsdGVyKChvcHRpb24pID0+ICF0aGlzLm11bHRpY2hvaWNlRmllbGQudmFsdWUuaW5jbHVkZXMob3B0aW9uLmtleSkpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2ZpbHRlcih2YWx1ZTogc3RyaW5nKTogQXJyYXk8TXVsdGljaG9pY2VGaWVsZFZhbHVlPiB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgdmFsdWUgPSAnJztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBmaWx0ZXJWYWx1ZSA9IHZhbHVlPy50b0xvd2VyQ2FzZSgpLm5vcm1hbGl6ZSgnTkZEJykucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl0vZywgJycpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLm11bHRpY2hvaWNlRmllbGQuY2hvaWNlcy5maWx0ZXIob3B0aW9uID0+IG9wdGlvbi52YWx1ZS50b0xvd2VyQ2FzZSgpLm5vcm1hbGl6ZSgnTkZEJylcbiAgICAgICAgICAgIC5yZXBsYWNlKC9bXFx1MDMwMC1cXHUwMzZmXS9nLCAnJykuaW5kZXhPZihmaWx0ZXJWYWx1ZSkgPT09IDApO1xuICAgIH1cblxuICAgIHB1YmxpYyByZW5kZXJTZWxlY3Rpb24gPSAoa2V5KSA9PiB7XG4gICAgICAgIGlmIChrZXkgIT09IHVuZGVmaW5lZCAmJiBrZXkgIT09ICcnICYmIGtleSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgaWYgKHRoaXMubXVsdGljaG9pY2VGaWVsZC5jaG9pY2VzLmZpbmQoY2hvaWNlID0+IGNob2ljZS5rZXkgPT09IGtleSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5tdWx0aWNob2ljZUZpZWxkLmNob2ljZXMuZmluZChjaG9pY2UgPT4gY2hvaWNlLmtleSA9PT0ga2V5KS52YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ga2V5O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRWYWx1ZUZyb21LZXkoa2V5OiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5tdWx0aWNob2ljZUZpZWxkLmNob2ljZXMuZmluZChjaG9pY2UgPT4gY2hvaWNlLmtleSA9PT0ga2V5KT8udmFsdWU7XG4gICAgfVxufVxuIl19
@@ -10,6 +10,7 @@ export class AbstractCurrencyNumberFieldComponent extends AbstractNumberErrorsCo
10
10
  this._currencyPipe = _currencyPipe;
11
11
  this.NUMBER_TYPE = 'number';
12
12
  this.TEXT_TYPE = 'text';
13
+ this.WHITESPACE = ' ';
13
14
  }
14
15
  ngAfterViewInit() {
15
16
  this.fieldType = this.TEXT_TYPE;
@@ -17,7 +18,7 @@ export class AbstractCurrencyNumberFieldComponent extends AbstractNumberErrorsCo
17
18
  this.numberField.valueChanges().subscribe(value => {
18
19
  if (value !== undefined) {
19
20
  if (this.fieldType === this.TEXT_TYPE) {
20
- this.transformedValue = this.transformCurrency(value.toString());
21
+ this.transformedValue = this.transformCurrency(value.toString()) + this.WHITESPACE;
21
22
  }
22
23
  }
23
24
  else {
@@ -60,4 +61,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
60
61
  template: ''
61
62
  }]
62
63
  }], ctorParameters: function () { return [{ type: i1.CurrencyPipe }, { type: i2.TranslateService }]; } });
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtY3VycmVuY3ktbnVtYmVyLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvZGF0YS1maWVsZHMvbnVtYmVyLWZpZWxkL2N1cnJlbmN5LW51bWJlci1maWVsZC9hYnN0cmFjdC1jdXJyZW5jeS1udW1iZXItZmllbGQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXhELE9BQU8sRUFBZSxpQkFBaUIsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ2hFLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLHFDQUFxQyxDQUFDOzs7O0FBTWxGLE1BQU0sT0FBZ0Isb0NBQXFDLFNBQVEsNkJBQTZCO0lBTzVGLFlBQWdDLGFBQTJCLEVBQUUsZ0JBQWtDO1FBQzNGLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBREksa0JBQWEsR0FBYixhQUFhLENBQWM7UUFIM0MsZ0JBQVcsR0FBRyxRQUFRLENBQUM7UUFDdkIsY0FBUyxHQUFHLE1BQU0sQ0FBQztJQUluQyxDQUFDO0lBRUQsZUFBZTtRQUNYLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNoQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDbkYsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDOUMsSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFO2dCQUNyQixJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssSUFBSSxDQUFDLFNBQVMsRUFBRTtv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QW9DO2tCQUp6RCxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSw2QkFBNkI7b0JBQ3ZDLFFBQVEsRUFBRSxFQUFFO2lCQUNmIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0N1cnJlbmN5UGlwZSwgZ2V0Q3VycmVuY3lTeW1ib2x9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0Fic3RyYWN0TnVtYmVyRXJyb3JzQ29tcG9uZW50fSBmcm9tICcuLi9hYnN0cmFjdC1udW1iZXItZXJyb3JzLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmNjLWFic3RyYWN0LWN1cnJlbmN5LWZpZWxkJyxcbiAgICB0ZW1wbGF0ZTogJydcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RDdXJyZW5jeU51bWJlckZpZWxkQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3ROdW1iZXJFcnJvcnNDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcblxuICAgIHRyYW5zZm9ybWVkVmFsdWU6IHN0cmluZztcbiAgICBmaWVsZFR5cGU6IHN0cmluZztcbiAgICBwdWJsaWMgcmVhZG9ubHkgTlVNQkVSX1RZUEUgPSAnbnVtYmVyJztcbiAgICBwdWJsaWMgcmVhZG9ubHkgVEVYVF9UWVBFID0gJ3RleHQnO1xuXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfY3VycmVuY3lQaXBlOiBDdXJyZW5jeVBpcGUsIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIodHJhbnNsYXRlU2VydmljZSk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICB0aGlzLmZpZWxkVHlwZSA9IHRoaXMuVEVYVF9UWVBFO1xuICAgICAgICB0aGlzLnRyYW5zZm9ybWVkVmFsdWUgPSB0aGlzLnRyYW5zZm9ybUN1cnJlbmN5KHRoaXMubnVtYmVyRmllbGQudmFsdWU/LnRvU3RyaW5nKCkpO1xuICAgICAgICB0aGlzLm51bWJlckZpZWxkLnZhbHVlQ2hhbmdlcygpLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICAgICAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmZpZWxkVHlwZSA9PT0gdGhpcy5URVhUX1RZUEUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50cmFuc2Zvcm1lZFZhbHVlID0gdGhpcy50cmFuc2Zvcm1DdXJyZW5jeSh2YWx1ZS50b1N0cmluZygpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMudHJhbnNmb3JtZWRWYWx1ZSA9ICcnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICB0cmFuc2Zvcm1Ub1RleHQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCk7XG4gICAgICAgIHRoaXMuZmllbGRUeXBlID0gdGhpcy5URVhUX1RZUEU7XG4gICAgICAgIHRoaXMudHJhbnNmb3JtZWRWYWx1ZSA9IHRoaXMudHJhbnNmb3JtQ3VycmVuY3kodGFyZ2V0LnZhbHVlKTtcbiAgICB9XG5cbiAgICB0cmFuc2Zvcm1Ub051bWJlcigpIHtcbiAgICAgICAgdGhpcy5maWVsZFR5cGUgPSB0aGlzLk5VTUJFUl9UWVBFO1xuICAgICAgICB0aGlzLnRyYW5zZm9ybWVkVmFsdWUgPSAhIXRoaXMubnVtYmVyRmllbGQudmFsdWUgPyB0aGlzLm51bWJlckZpZWxkLnZhbHVlLnRvU3RyaW5nKCkgOiAnMCc7XG4gICAgfVxuXG4gICAgZ2V0Q3VycmVuY3lTeW1ib2woKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMubnVtYmVyRmllbGQuX2Zvcm1hdEZpbHRlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0Q3VycmVuY3lTeW1ib2wodGhpcy5udW1iZXJGaWVsZC5jb21wb25lbnQucHJvcGVydGllc1snY29kZSddLFxuICAgICAgICAgICAgICAgICd3aWRlJywgdGhpcy5udW1iZXJGaWVsZC5jb21wb25lbnQucHJvcGVydGllc1snbG9jYWxlJ10pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBnZXRDdXJyZW5jeVN5bWJvbCh0aGlzLm51bWJlckZpZWxkLl9mb3JtYXRGaWx0ZXIuY29kZSwgJ3dpZGUnLCB0aGlzLm51bWJlckZpZWxkLl9mb3JtYXRGaWx0ZXIubG9jYWxlKTtcbiAgICB9XG5cbiAgICBpc051bWJlclR5cGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpZWxkVHlwZSA9PT0gdGhpcy5OVU1CRVJfVFlQRTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHRyYW5zZm9ybUN1cnJlbmN5KHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xuICAgICAgICB2YWx1ZSA9ICEhdmFsdWUgPyB2YWx1ZSA6ICcwJztcbiAgICAgICAgaWYgKHRoaXMubnVtYmVyRmllbGQuX2Zvcm1hdEZpbHRlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fY3VycmVuY3lQaXBlLnRyYW5zZm9ybShcbiAgICAgICAgICAgICAgICBwYXJzZUZsb2F0KHZhbHVlKSxcbiAgICAgICAgICAgICAgICB0aGlzLm51bWJlckZpZWxkLmNvbXBvbmVudC5wcm9wZXJ0aWVzWydjb2RlJ10sXG4gICAgICAgICAgICAgICAgJ3N5bWJvbCcsXG4gICAgICAgICAgICAgICAgJzEuJyArIHRoaXMubnVtYmVyRmllbGQuY29tcG9uZW50LnByb3BlcnRpZXNbJ2ZyYWN0aW9uU2l6ZSddICsgJy0nICsgdGhpcy5udW1iZXJGaWVsZC5jb21wb25lbnQucHJvcGVydGllc1snZnJhY3Rpb25TaXplJ10sXG4gICAgICAgICAgICAgICAgdGhpcy5udW1iZXJGaWVsZC5jb21wb25lbnQucHJvcGVydGllc1snbG9jYWxlJ10pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9jdXJyZW5jeVBpcGUudHJhbnNmb3JtKFxuICAgICAgICAgICAgcGFyc2VGbG9hdCh2YWx1ZSksXG4gICAgICAgICAgICB0aGlzLm51bWJlckZpZWxkLl9mb3JtYXRGaWx0ZXIuY29kZSxcbiAgICAgICAgICAgICdzeW1ib2wnLFxuICAgICAgICAgICAgJzEuJyArIHRoaXMubnVtYmVyRmllbGQuX2Zvcm1hdEZpbHRlci5mcmFjdGlvblNpemUgKyAnLScgKyB0aGlzLm51bWJlckZpZWxkLl9mb3JtYXRGaWx0ZXIuZnJhY3Rpb25TaXplLFxuICAgICAgICAgICAgdGhpcy5udW1iZXJGaWVsZC5fZm9ybWF0RmlsdGVyLmxvY2FsZSk7XG4gICAgfVxufVxuIl19
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtY3VycmVuY3ktbnVtYmVyLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvZGF0YS1maWVsZHMvbnVtYmVyLWZpZWxkL2N1cnJlbmN5LW51bWJlci1maWVsZC9hYnN0cmFjdC1jdXJyZW5jeS1udW1iZXItZmllbGQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXhELE9BQU8sRUFBZSxpQkFBaUIsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ2hFLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLHFDQUFxQyxDQUFDOzs7O0FBTWxGLE1BQU0sT0FBZ0Isb0NBQXFDLFNBQVEsNkJBQTZCO0lBUTVGLFlBQWdDLGFBQTJCLEVBQUUsZ0JBQWtDO1FBQzNGLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBREksa0JBQWEsR0FBYixhQUFhLENBQWM7UUFKM0MsZ0JBQVcsR0FBRyxRQUFRLENBQUM7UUFDdkIsY0FBUyxHQUFHLE1BQU0sQ0FBQztRQUNuQixlQUFVLEdBQUcsR0FBRyxDQUFDO0lBSWpDLENBQUM7SUFFRCxlQUFlO1FBQ1gsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUNuRixJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUM5QyxJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUU7Z0JBQ3JCLElBQUksSUFBSSxDQUFDLFNBQVMs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RWlCLG9DQUFvQztzSEFBcEMsb0NBQW9DLDBGQUY1QyxFQUFFOzRGQUVNLG9DQUFvQztrQkFKekQsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsNkJBQTZCO29CQUN2QyxRQUFRLEVBQUUsRUFBRTtpQkFDZiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtDdXJyZW5jeVBpcGUsIGdldEN1cnJlbmN5U3ltYm9sfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtBYnN0cmFjdE51bWJlckVycm9yc0NvbXBvbmVudH0gZnJvbSAnLi4vYWJzdHJhY3QtbnVtYmVyLWVycm9ycy5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25jYy1hYnN0cmFjdC1jdXJyZW5jeS1maWVsZCcsXG4gICAgdGVtcGxhdGU6ICcnXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0Q3VycmVuY3lOdW1iZXJGaWVsZENvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0TnVtYmVyRXJyb3JzQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgICB0cmFuc2Zvcm1lZFZhbHVlOiBzdHJpbmc7XG4gICAgZmllbGRUeXBlOiBzdHJpbmc7XG4gICAgcHVibGljIHJlYWRvbmx5IE5VTUJFUl9UWVBFID0gJ251bWJlcic7XG4gICAgcHVibGljIHJlYWRvbmx5IFRFWFRfVFlQRSA9ICd0ZXh0JztcbiAgICBwdWJsaWMgcmVhZG9ubHkgV0hJVEVTUEFDRSA9ICcgJztcblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX2N1cnJlbmN5UGlwZTogQ3VycmVuY3lQaXBlLCB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKHRyYW5zbGF0ZVNlcnZpY2UpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgdGhpcy5maWVsZFR5cGUgPSB0aGlzLlRFWFRfVFlQRTtcbiAgICAgICAgdGhpcy50cmFuc2Zvcm1lZFZhbHVlID0gdGhpcy50cmFuc2Zvcm1DdXJyZW5jeSh0aGlzLm51bWJlckZpZWxkLnZhbHVlPy50b1N0cmluZygpKTtcbiAgICAgICAgdGhpcy5udW1iZXJGaWVsZC52YWx1ZUNoYW5nZXMoKS5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5maWVsZFR5cGUgPT09IHRoaXMuVEVYVF9UWVBFKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudHJhbnNmb3JtZWRWYWx1ZSA9IHRoaXMudHJhbnNmb3JtQ3VycmVuY3kodmFsdWUudG9TdHJpbmcoKSkgKyB0aGlzLldISVRFU1BBQ0U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRyYW5zZm9ybWVkVmFsdWUgPSAnJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgdHJhbnNmb3JtVG9UZXh0KGV2ZW50OiBFdmVudCkge1xuICAgICAgICBjb25zdCB0YXJnZXQgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpO1xuICAgICAgICB0aGlzLmZpZWxkVHlwZSA9IHRoaXMuVEVYVF9UWVBFO1xuICAgICAgICB0aGlzLnRyYW5zZm9ybWVkVmFsdWUgPSB0aGlzLnRyYW5zZm9ybUN1cnJlbmN5KHRhcmdldC52YWx1ZSk7XG4gICAgfVxuXG4gICAgdHJhbnNmb3JtVG9OdW1iZXIoKSB7XG4gICAgICAgIHRoaXMuZmllbGRUeXBlID0gdGhpcy5OVU1CRVJfVFlQRTtcbiAgICAgICAgdGhpcy50cmFuc2Zvcm1lZFZhbHVlID0gISF0aGlzLm51bWJlckZpZWxkLnZhbHVlID8gdGhpcy5udW1iZXJGaWVsZC52YWx1ZS50b1N0cmluZygpIDogJzAnO1xuICAgIH1cblxuICAgIGdldEN1cnJlbmN5U3ltYm9sKCk6IHN0cmluZyB7XG4gICAgICAgIGlmICh0aGlzLm51bWJlckZpZWxkLl9mb3JtYXRGaWx0ZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIGdldEN1cnJlbmN5U3ltYm9sKHRoaXMubnVtYmVyRmllbGQuY29tcG9uZW50LnByb3BlcnRpZXNbJ2NvZGUnXSxcbiAgICAgICAgICAgICAgICAnd2lkZScsIHRoaXMubnVtYmVyRmllbGQuY29tcG9uZW50LnByb3BlcnRpZXNbJ2xvY2FsZSddKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZ2V0Q3VycmVuY3lTeW1ib2wodGhpcy5udW1iZXJGaWVsZC5fZm9ybWF0RmlsdGVyLmNvZGUsICd3aWRlJywgdGhpcy5udW1iZXJGaWVsZC5fZm9ybWF0RmlsdGVyLmxvY2FsZSk7XG4gICAgfVxuXG4gICAgaXNOdW1iZXJUeXBlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5maWVsZFR5cGUgPT09IHRoaXMuTlVNQkVSX1RZUEU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB0cmFuc2Zvcm1DdXJyZW5jeSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKTogc3RyaW5nIHtcbiAgICAgICAgdmFsdWUgPSAhIXZhbHVlID8gdmFsdWUgOiAnMCc7XG4gICAgICAgIGlmICh0aGlzLm51bWJlckZpZWxkLl9mb3JtYXRGaWx0ZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2N1cnJlbmN5UGlwZS50cmFuc2Zvcm0oXG4gICAgICAgICAgICAgICAgcGFyc2VGbG9hdCh2YWx1ZSksXG4gICAgICAgICAgICAgICAgdGhpcy5udW1iZXJGaWVsZC5jb21wb25lbnQucHJvcGVydGllc1snY29kZSddLFxuICAgICAgICAgICAgICAgICdzeW1ib2wnLFxuICAgICAgICAgICAgICAgICcxLicgKyB0aGlzLm51bWJlckZpZWxkLmNvbXBvbmVudC5wcm9wZXJ0aWVzWydmcmFjdGlvblNpemUnXSArICctJyArIHRoaXMubnVtYmVyRmllbGQuY29tcG9uZW50LnByb3BlcnRpZXNbJ2ZyYWN0aW9uU2l6ZSddLFxuICAgICAgICAgICAgICAgIHRoaXMubnVtYmVyRmllbGQuY29tcG9uZW50LnByb3BlcnRpZXNbJ2xvY2FsZSddKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fY3VycmVuY3lQaXBlLnRyYW5zZm9ybShcbiAgICAgICAgICAgIHBhcnNlRmxvYXQodmFsdWUpLFxuICAgICAgICAgICAgdGhpcy5udW1iZXJGaWVsZC5fZm9ybWF0RmlsdGVyLmNvZGUsXG4gICAgICAgICAgICAnc3ltYm9sJyxcbiAgICAgICAgICAgICcxLicgKyB0aGlzLm51bWJlckZpZWxkLl9mb3JtYXRGaWx0ZXIuZnJhY3Rpb25TaXplICsgJy0nICsgdGhpcy5udW1iZXJGaWVsZC5fZm9ybWF0RmlsdGVyLmZyYWN0aW9uU2l6ZSxcbiAgICAgICAgICAgIHRoaXMubnVtYmVyRmllbGQuX2Zvcm1hdEZpbHRlci5sb2NhbGUpO1xuICAgIH1cbn1cbiJdfQ==