@eo-sdk/client 9.6.1 → 9.6.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 (25) hide show
  1. package/assets/_default/i18n/de.json +1 -0
  2. package/assets/_default/i18n/en.json +1 -0
  3. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.js +4 -4
  4. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.js.map +1 -1
  5. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.min.js +1 -1
  6. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.min.js.map +1 -1
  7. package/bundles/eo-sdk-client.umd.js +9 -9
  8. package/bundles/eo-sdk-client.umd.js.map +1 -1
  9. package/bundles/eo-sdk-client.umd.min.js +1 -1
  10. package/bundles/eo-sdk-client.umd.min.js.map +1 -1
  11. package/eo-sdk-client.metadata.json +1 -1
  12. package/esm2015/app/eo-client/about-state/about-state.component.js +3 -3
  13. package/esm2015/app/eo-client/object-state/object-state/object-state.component.js +2 -2
  14. package/esm2015/app/eo-client/recyclebin-state/recyclebin-state.component.js +2 -2
  15. package/esm2015/app/eo-framework/media/media.component.js +3 -2
  16. package/esm2015/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.js +1 -2
  17. package/esm2015/app/eo-framework/object-form/object-form-helper.service.js +2 -2
  18. package/esm2015/app/eo-framework/recyclebin-details/recyclebin-details.component.js +3 -3
  19. package/esm2015/projects/eo-sdk/core/lib/service/prepare/prepare.service.js +5 -5
  20. package/fesm2015/eo-sdk-client-projects-eo-sdk-core.js +4 -4
  21. package/fesm2015/eo-sdk-client-projects-eo-sdk-core.js.map +1 -1
  22. package/fesm2015/eo-sdk-client.js +9 -9
  23. package/fesm2015/eo-sdk-client.js.map +1 -1
  24. package/package.json +2 -2
  25. package/projects/eo-sdk/core/package.json +1 -1
@@ -210,7 +210,7 @@ export class PrepareService {
210
210
  * @returns Observable<any>
211
211
  */
212
212
  uploadContent(preparedItemId, file) {
213
- const uri = `${this.backend.getServiceBase()}/prepare/${preparedItemId}/content.json?form=true&contentmeta=true`;
213
+ const uri = `${this.backend.getBaseWithContext(this.backend.getServiceBase())}/prepare/${preparedItemId}/content.json?form=true&contentmeta=true`;
214
214
  return this.uploadService
215
215
  .upload(uri, [file])
216
216
  .pipe(
@@ -246,7 +246,7 @@ export class PrepareService {
246
246
  *
247
247
  * @type string
248
248
  */
249
- uri = this.backend.getServiceBase() + this.createPreparedItemPostUrl({
249
+ uri = this.backend.getBaseWithContext(this.backend.getServiceBase()) + this.createPreparedItemPostUrl({
250
250
  parentId: null,
251
251
  createMany: !useBatchUpload
252
252
  });
@@ -256,7 +256,7 @@ export class PrepareService {
256
256
  * upload to dms object, means adding or replacing content file
257
257
  */
258
258
  const { referenceObject } = uploadTarget;
259
- uri = `${this.backend.getServiceBase()}/dms/${referenceObject.id}/contents?type=${referenceObject.type.name}`;
259
+ uri = `${this.backend.getBaseWithContext(this.backend.getServiceBase())}/dms/${referenceObject.id}/contents?type=${referenceObject.type.name}`;
260
260
  }
261
261
  else if (uploadTarget.type === UploadTarget.CONTEXT || uploadTarget.type === UploadTarget.CONTEXT_TREE) {
262
262
  /**
@@ -266,7 +266,7 @@ export class PrepareService {
266
266
  *
267
267
  * @type string
268
268
  */
269
- uri = this.backend.getServiceBase() + this.createPreparedItemPostUrl({
269
+ uri = this.backend.getBaseWithContext(this.backend.getServiceBase()) + this.createPreparedItemPostUrl({
270
270
  parentId: uploadTarget.referenceObject.id,
271
271
  createMany: !useBatchUpload,
272
272
  childType: uploadTarget.subFolder && uploadTarget.subFolder.data.type ? uploadTarget.subFolder.data.type : null
@@ -297,4 +297,4 @@ PrepareService.ctorParameters = () => [
297
297
  { type: BackendService },
298
298
  { type: UploadService }
299
299
  ];
300
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlcGFyZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW8tc2RrL2NvcmUvc3JjL2xpYi9zZXJ2aWNlL3ByZXBhcmUvcHJlcGFyZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2xELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQWEsYUFBYSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUN6RCxPQUFPLEVBQUMsWUFBWSxFQUF1QixNQUFNLGlDQUFpQyxDQUFDO0FBQ25GLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFpQjdEOztHQUVHO0FBRUgsTUFBTSxPQUFPLGNBQWM7SUFVekIsWUFBb0IsT0FBdUIsRUFDdkIsYUFBNEI7UUFENUIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFDdkIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFSeEMsd0JBQW1CLEdBQUcsSUFBSSxhQUFhLENBQWlCLENBQUMsQ0FBQyxDQUFDO1FBQzVELG1CQUFjLEdBQStCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUdwRiw0QkFBdUIsR0FBRyxJQUFJLGFBQWEsQ0FBUyxDQUFDLENBQUMsQ0FBQztRQUN4RCx1QkFBa0IsR0FBdUIsSUFBSSxDQUFDLHVCQUF1QixDQUFD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LEVBQUU7Z0JBQ3pDLFVBQVUsRUFBRSxDQUFDLGNBQWM7Z0JBQzNCLFNBQVMsRUFBRSxZQUFZLENBQUMsU0FBUyxJQUFJLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJO2FBQ2hILENBQUMsQ0FBQztTQUNKO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSSx5QkFBeUIsQ0FBQyxjQUFzQixFQUFFLEtBQWM7UUFDckUsTUFBTSxHQUFHLEdBQUcsWUFBWSxjQUFjLFVBQVUsR0FBRyxDQUFDLEtBQUssS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLFVBQVUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2xHLE9BQU8sSUFBSSxDQUFDLE9BQU87YUFDaEIsR0FBRyxDQUFDLEdBQUcsQ0FBQzthQUNSLElBQUksQ0FDSCxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUNsQyxDQUFDO0lBQ04sQ0FBQzs7O1lBbFZGLFVBQVU7OztZQXpCSCxjQUFjO1lBSWQsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7bWVyZ2VNYXAsIG1hcCwgdGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtVdGlsc30gZnJvbSAnLi4vLi4vdXRpbC91dGlscyc7XG5pbXBvcnQge0JhY2tlbmRTZXJ2aWNlfSBmcm9tICcuLi9iYWNrZW5kL2JhY2tlbmQuc2VydmljZSc7XG5pbXBvcnQge09ic2VydmFibGUsIFJlcGxheVN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtPYmplY3RUeXBlfSBmcm9tICcuLi8uLi9tb2RlbC9vYmplY3QtdHlwZS5tb2RlbCc7XG5pbXBvcnQge1ByZXBhcmVkSXRlbSwgUHJlcGFyZWRJdGVtVGVtcGxhdGV9IGZyb20gJy4uLy4uL21vZGVsL3ByZXBhcmVkLWl0ZW0ubW9kZWwnO1xuaW1wb3J0IHtVcGxvYWRTZXJ2aWNlfSBmcm9tICcuLi91cGxvYWQvdXBsb2FkLnNlcnZpY2UnO1xuaW1wb3J0IHtVcGxvYWRUYXJnZXR9IGZyb20gJy4uLy4uL21vZGVsL3VwbG9hZC10YXJnZXQubW9kZWwnO1xuaW1wb3J0IHtVcGxvYWRGaWxlSXRlbX0gZnJvbSAnLi4vLi4vbW9kZWwvdXBsb2FkLWZpbGUtaXRlbS5tb2RlbCc7XG5pbXBvcnQge0lQcmVwYXJlQ2hpbGRUeXBlc30gZnJvbSAnLi9vYmplY3RUeXBlcy5pbnRlcmZhY2UnO1xuXG4vKipcbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcmVwYXJlZFBvc3RQYXJhbSB7XG4gIHBhcmVudElkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBmbGFnIGluZGljYXRpbmcgd2hldGhlciBvciBub3QgdG8gY3JlYXRlIG9uZSBQcmVwYXJlZEl0ZW0gdXNpbmcgbXVsdGlwbGUgZmlsZXMgdXBsb2FkZWQgKGZhbHNlKVxuICAgKiBvciBjcmVhdGluZyBhIFByZXBhcmVkSXRlbSBmb3IgZWFjaCBmaWxlIHBvc3RlZCB0byB0aGUgVVJMICh0cnVlKVxuICAgKi9cbiAgY3JlYXRlTWFueT86IGJvb2xlYW47XG4gIGNoaWxkVHlwZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb2xsZWN0aW9uIG9mIFByZXBhcmUgU2VydmljZXNcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFByZXBhcmVTZXJ2aWNlIHtcblxuICBwcml2YXRlIHByZXBhcmVkSXRlbXM6IFByZXBhcmVkSXRlbVtdO1xuICBwcml2YXRlIHByZXBhcmVkSXRlbXNTb3VyY2UgPSBuZXcgUmVwbGF5U3ViamVjdDxQcmVwYXJlZEl0ZW1bXT4oMSk7XG4gIHB1YmxpYyBwcmVwYXJlZEl0ZW1zJDogT2JzZXJ2YWJsZTxQcmVwYXJlZEl0ZW1bXT4gPSB0aGlzLnByZXBhcmVkSXRlbXNTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XG5cbiAgcHJpdmF0ZSBwcmVwYXJlZEl0ZW1Db3VudDogbnVtYmVyO1xuICBwcml2YXRlIHByZXBhcmVkSXRlbUNvdW50U291cmNlID0gbmV3IFJlcGxheVN1YmplY3Q8bnVtYmVyPigxKTtcbiAgcHVibGljIHByZXBhcmVkSXRlbUNvdW50JDogT2JzZXJ2YWJsZTxudW1iZXI+ID0gdGhpcy5wcmVwYXJlZEl0ZW1Db3VudFNvdXJjZS5hc09ic2VydmFibGUoKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGJhY2tlbmQ6IEJhY2tlbmRTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHVwbG9hZFNlcnZpY2U6IFVwbG9hZFNlcnZpY2UpIHtcbiAgfVxuXG4gIC8qKlxuICAgKiBQdWJsaWMgRmV0Y2ggUHJlcGFyZSBpdGVtc1xuICAgKi9cbiAgcmVmcmVzaFByZXBhcmVkSXRlbXNDb3VudCgpIHtcbiAgICB0aGlzLmZldGNoUHJlcGFyZWRJdGVtc0NvdW50KCk7XG4gIH1cblxuICAvKipcbiAgICogRmV0Y2hlcyB0aGUgbnVtYmVyIG9mIHByZXBhcmVkIGl0ZW1zIGZvciB0aGUgY3VycmVudCB1c2VyLlxuICAgKi9cbiAgcHJpdmF0ZSBmZXRjaFByZXBhcmVkSXRlbXNDb3VudCgpIHtcbiAgICB0aGlzLmJhY2tlbmQuZ2V0SnNvbignL3ByZXBhcmUvc3RhdGUnKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzKSA9PiByZXMuY291bnQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgICAgdGhpcy5wcmVwYXJlZEl0ZW1Db3VudCA9IHJlcztcbiAgICAgICAgdGhpcy5wcmVwYXJlZEl0ZW1Db3VudFNvdXJjZS5uZXh0KHRoaXMucHJlcGFyZWRJdGVtQ291bnQpO1xuICAgICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHByZXBhcmVkIGl0ZW0gb24gdGhlIGJhY2tlZCBzaWRlLlxuICAgKlxuICAgKiBAcGFyYW0gcGFyZW50SWQgVGhlIElEIG9mIHRoZSBwYXJlbnQgZG1zIG9iamVjdCB0byBhZGQgdGhlIHByZXBhcmVkIGl0ZW0gdG9cbiAgICogQHBhcmFtIGNoaWxkVHlwZSBUaGUgdHlwZSBvZiBvYmplY3QgdG8gYmUgY3JlYXRlZFxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPGFueT5cbiAgICovXG4gIHB1YmxpYyBjcmVhdGVQcmVwYXJlZEl0ZW0ocGFyZW50SWQ6IHN0cmluZywgY2hpbGRUeXBlPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcblxuICAgIHJldHVybiB0aGlzLmJhY2tlbmRcbiAgICAgIC5wb3N0KHRoaXMuY3JlYXRlUHJlcGFyZWRJdGVtUG9zdFVybCh7XG4gICAgICAgIHBhcmVudElkOiBwYXJlbnRJZCxcbiAgICAgICAgY2hpbGRUeXBlOiBjaGlsZFR5cGUgPyBjaGlsZFR5cGUgOiBudWxsXG4gICAgICB9KSwge30pXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuZ2V0UHJlcGFyZWRJdGVtcyQoKSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHByZXBhcmVkSXRlbUlkXG4gICAqIEBwYXJhbSBkYXRhXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8YW55PlxuICAgKi9cbiAgcHVibGljIHVwZGF0ZVByZXBhcmVkSXRlbUluZGV4RGF0YShwcmVwYXJlZEl0ZW1JZCwgZGF0YSkge1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmRcbiAgICAgIC5wdXQoJy9wcmVwYXJlLycgKyBwcmVwYXJlZEl0ZW1JZCwgZGF0YSlcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5nZXRQcmVwYXJlZEl0ZW1zJCgpKVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIFVSTCBmb3IgY3JlYXRpbmcgYSBQcmVwYXJlZEl0ZW0uXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMgUGFyYW1zIGZvciBnZW5lcmF0aW5nIGFwcHJvcHJpYXRlIHVyaS5cbiAgICogQHJldHVybnMgc3RyaW5nIEEgUE9TVCBVUkwgZm9yIGNyZWF0aW5nIFByZXBhcmVkSXRlbXNcbiAgICovXG4gIHB1YmxpYyBjcmVhdGVQcmVwYXJlZEl0ZW1Qb3N0VXJsKHBhcmFtczogUHJlcGFyZWRQb3N0UGFyYW0pOiBzdHJpbmcge1xuXG4gICAgbGV0IHVybCA9IHBhcmFtcy5jcmVhdGVNYW55ID8gJy9wcmVwYXJlL2NyZWF0ZW1hbnknIDogJy9wcmVwYXJlL2NyZWF0ZSc7XG4gICAgaWYgKHBhcmFtcykge1xuICAgICAgdXJsID0gVXRpbHMuYnVpbGRVcmkodXJsLCBwYXJhbXMpO1xuICAgIH1cbiAgICByZXR1cm4gdXJsO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyBhIGxpc3Qgb2YgdGhlIHVzZXJzIHByZXBhcmVkIGl0ZW1zLlxuICAgKlxuICAgKiBAcGFyYW0gbm9Gb3JtcyBJZiBzZXQgdG8gdHJ1ZSB0aGUgcHJlcGFyZWQgaXRlbXMgd2lsbCBiZSBmZXRjaGVkIHdpdGhvdXQgdGhlIGZvcm0gd2hpY2ggaXMgZmFzdGVyXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8UHJlcGFyZWRJdGVtW10+IEEgY29sbGVjdGlvbiBvZiBwcmVwYXJlZCBpdGVtIG9iamVjdHNcbiAgICovXG4gIHB1YmxpYyBnZXRQcmVwYXJlZEl0ZW1zJChub0Zvcm1zPzogYm9vbGVhbik6IE9ic2VydmFibGU8UHJlcGFyZWRJdGVtW10+IHtcbiAgICB0aGlzLmZldGNoUHJlcGFyZWRJdGVtcyhub0Zvcm1zKS5zdWJzY3JpYmUoKTtcbiAgICByZXR1cm4gdGhpcy5wcmVwYXJlZEl0ZW1zJDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZSBQcmVwYXJlSXRlbXMgYW5kIGZvcm0gdGhlbVxuICAgKlxuICAgKiBAcGFyYW0gYm9vbGVhbiBub0Zvcm1zXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8UHJlcGFyZWRJdGVtW10+XG4gICAqL1xuICBwcml2YXRlIGZldGNoUHJlcGFyZWRJdGVtcyhub0Zvcm1zPzogYm9vbGVhbik6IE9ic2VydmFibGU8UHJlcGFyZWRJdGVtW10+IHtcbiAgICBsZXQgdXJpID0gKG5vRm9ybXMpID8gJy9wcmVwYXJlJyA6ICcvcHJlcGFyZT9mb3JtPXRydWUnO1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmRcbiAgICAgIC5nZXRKc29uKHVyaSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlczogYW55KSA9PiByZXMubWFwKGkgPT4gbmV3IFByZXBhcmVkSXRlbShpKSkpLFxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5mZXRjaFByZXBhcmVkSXRlbXNDb3VudCgpKSxcbiAgICAgICAgdGFwKChwcmVwYXJlZEl0ZW1zOiBQcmVwYXJlZEl0ZW1bXSkgPT4gdGhpcy5wcmVwYXJlZEl0ZW1zU291cmNlLm5leHQocHJlcGFyZWRJdGVtcy5zb3J0KFV0aWxzLnNvcnRWYWx1ZXMoJ2NyZWF0ZWQnLCAnZGVzYycpKSkpXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgYSBwcmVwYXJlZCBpdGVtLlxuICAgKlxuICAgKiBAcGFyYW0gcHJlcGFyZWRJdGVtSWQgSUQgb2YgdGhlIGl0ZW0gdG8gYmUgcmVtb3ZlZFxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPGFueT4gU2VydmVyIHJlc3BvbnNlXG4gICAqL1xuICBkZWxldGVQcmVwYXJlZEl0ZW0ocHJlcGFyZWRJdGVtSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZFxuICAgICAgLmRlbChgL3ByZXBhcmUvJHtwcmVwYXJlZEl0ZW1JZH1gKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoKSA9PiB0aGlzLmdldFByZXBhcmVkSXRlbXMkKCkpXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoZXMgYSBsaXN0IG9mIG9iamVjdCB0eXBlcyBhbGxvd2VkIHRvIGJlIHBsYWNlZCBkaXJlY3RseSBiZWxvdyByb290LlxuICAgKlxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPE9iamVjdFR5cGVbXT4gQSBsaXN0IG9mIHN1cHBvcnRlZCBvYmplY3QgdHlwZXNcbiAgICovXG4gIHB1YmxpYyBnZXRQcmVwYXJlUm9vdFR5cGVzKCk6IE9ic2VydmFibGU8T2JqZWN0VHlwZVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZFxuICAgICAgLmdldFZpYVRlbXBDYWNoZSgnL3ByZXBhcmUvdHlwZXMnKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzKSA9PiByZXMudHlwZXMubWFwKCh0eXBlKSA9PiBuZXcgT2JqZWN0VHlwZSh0eXBlKSkpXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoZXMgYSBsaXN0IG9mIGFsbG93ZWQgY2hpbGQgb2JqZWN0IHR5cGVzIGZvciBhIHNlbGVjdGVkIHBhcmVudC5cbiAgICpcbiAgICogQHBhcmFtIHBhcmVudElkIFRoZSBpZCBvZiB0aGUgcGFyZW50IGRtcyBvYmplY3QgKGNvbnRleHQgZm9sZGVyKVxuICAgKiBAcGFyYW0gd2l0aENvbnRlbnRPbmx5IElmIHNldCB0byB0cnVlIG9ubHkgY2hpbGQgdHlwZXMsIHRoYXQgc3VwcG9ydCBjb250ZW50IGFyZSByZXR1cm5lZC5cbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxJUHJlcGFyZUNoaWxkVHlwZXM+IEEgbGlzdCBvZiBzdXBwb3J0ZWQgb2JqZWN0IHR5cGVzXG4gICAqL1xuICBwdWJsaWMgZ2V0UHJlcGFyZUNoaWxkVHlwZXMocGFyZW50SWQ6IHN0cmluZywgd2l0aENvbnRlbnRPbmx5PzogYm9vbGVhbik6IE9ic2VydmFibGU8SVByZXBhcmVDaGlsZFR5cGVzPiB7XG4gICAgY29uc3QgcGFyYW1zID0gcGFyZW50SWQgPyB7cGFyZW50SWQsIHdpdGhjb250ZW50OiB3aXRoQ29udGVudE9ubHl9IDoge3dpdGhjb250ZW50OiB3aXRoQ29udGVudE9ubHl9XG4gICAgY29uc3QgdXJpID0gVXRpbHMuYnVpbGRVcmkoJy9wcmVwYXJlL3R5cGVzJywgcGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXG4gICAgICAuZ2V0VmlhVGVtcENhY2hlKHVyaSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAocmVzID0+ICh7cGFyZW50OiByZXMucGFyZW50LCB0eXBlczogcmVzLnR5cGVzLm1hcCgodHlwZSkgPT4gbmV3IE9iamVjdFR5cGUodHlwZSkpfSkpXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIGZldGNoIHRoZSBwcmV2aWV3IHVyaSBmb3IgYSBwcmVwYXJlZCBpdGVtXG4gICAqXG4gICAqIEBwYXJhbSBpZCBUaGUgaWQgb2YgdGhlIHByZXBhcmVkIGl0ZW1cbiAgICogQHBhcmFtIGluZGV4IFdoZW4gYSBwcmVwYXJlZCBpdGVtIGNvbnRhaW5zIG1vcmUgdGhhbiBvbmUgY29udGVudHMsIHRoZSBpbmRleCBzcGVjaWZpZXMgd2hpY2ggY29udGVudFxuICAgKiBAcGFyYW0gcmVuZGl0aW9uIFRhcmdldCByZW5kaXRpb24gKFBERilcbiAgICogdG8gcmV0cmlldmUgdGhlIHByZXZpZXcgdXJpIGZvclxuICAgKiBAcmV0dXJucyBzdHJpbmcgUHJldmlldyB1cmlcbiAgICovXG4gIHB1YmxpYyBnZXRQcmV2aWV3VXJpKGlkOiBzdHJpbmcsIGluZGV4PzogbnVtYmVyLCByZW5kaXRpb24/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBVdGlscy5idWlsZFVyaShgJHt0aGlzLmJhY2tlbmQuZ2V0U2VydmljZUJhc2UoKX0vcHJlcGFyZS8ke2lkfS9jb250ZW50YCwge3JlbmRpdGlvbiwgaW5kZXh9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBwcmVwYXJlZCBpdGVtcyB0YXJnZXQgb2JqZWN0IHR5cGUuXG4gICAqXG4gICAqIEBwYXJhbSBvYmplY3RUeXBlIFRoZSB0YXJnZXQgb2JqZWN0IHR5cGVzIG5hbWVcbiAgICogQHBhcmFtIHByZXBhcmVkSXRlbUlkIFRoZSBpZCBvZiB0aGUgcHJlcGFyZWQgaXRlbSB0byBzZXQgdGhlIHR5cGUgZm9yXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8UHJlcGFyZWRJdGVtPiBUaGUgdXBkYXRlZCBwcmVwYXJlZCBpdGVtXG4gICAqL1xuICBwdWJsaWMgdXBkYXRlQ2hpbGRUeXBlKG9iamVjdFR5cGU6IHN0cmluZywgcHJlcGFyZWRJdGVtSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8UHJlcGFyZWRJdGVtPiB7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZFxuICAgICAgLnB1dChgL3ByZXBhcmUvJHtwcmVwYXJlZEl0ZW1JZH0vJHtvYmplY3RUeXBlfT9mb3JtPXRydWUmY29udGVudG1ldGE9dHJ1ZWApXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKHJlcyA9PiBuZXcgUHJlcGFyZWRJdGVtKHJlcykpXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIHRlbXBsYXRlIHRvIGEgcHJlcGFyZWQgaXRlbS5cbiAgICpcbiAgICogQHBhcmFtIHByZXBhcmVkSXRlbUlkIFRoZSBpZCBvZiB0aGUgcHJlcGFyZWQgaXRlbSB0byBhZGQgdGhlIHRlbXBsYXRlIHRvXG4gICAqIEBwYXJhbSB0ZW1wbGF0ZUlkIFRoZSBpZCBvZiB0aGUgdGVtcGxhdGUgdG8gYmUgYWRkZWRcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxQcmVwYXJlZEl0ZW0+ICBUaGUgdXBkYXRlZCBwcmVwYXJlZCBpdGVtXG4gICAqL1xuICBwdWJsaWMgYWRkVGVtcGxhdGUocHJlcGFyZWRJdGVtSWQsIHRlbXBsYXRlSWQpOiBPYnNlcnZhYmxlPFByZXBhcmVkSXRlbT4ge1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmRcbiAgICAgIC5wdXQoYC9wcmVwYXJlLyR7cHJlcGFyZWRJdGVtSWR9L3RlbXBsYXRlP3RlbXBsYXRlaWQ9JHt0ZW1wbGF0ZUlkfWApXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKHJlcyA9PiBuZXcgUHJlcGFyZWRJdGVtKHJlcykpXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoZXMgYSBsaXN0IG9mIGF2YWlsYWJsZSB0ZW1wbGF0ZXMgZm9yIGEgZ2l2ZW4gb2JqZWN0IHR5cGUuXG4gICAqXG4gICAqIEBwYXJhbSBPYnNlcnZhYmxlPFByZXBhcmVkSXRlbVRlbXBsYXRlW10+IG9iamVjdFR5cGVOYW1lXG4gICAqL1xuICBwdWJsaWMgZ2V0VGVtcGxhdGVzKG9iamVjdFR5cGVOYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFByZXBhcmVkSXRlbVRlbXBsYXRlW10+IHtcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXG4gICAgICAuZ2V0SnNvbignL3RlbXBsYXRlL2xpc3Q/dHlwZT0nICsgb2JqZWN0VHlwZU5hbWUpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXM6IGFueSkgPT4gcmVzIGFzIFByZXBhcmVkSXRlbVRlbXBsYXRlW10pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdXJsIG9mIGEgdGVtcGxhdGUgcHJldmlld1xuICAgKlxuICAgKiBAcGFyYW0gaWQgVGVtcGxhdGUgSURcbiAgICogQHBhcmFtIHJlbmRpdGlvbiBUYXJnZXQgcmVuZGl0aW9uIChQREYpXG4gICAqIEByZXR1cm5zIHN0cmluZyBUaGUgdGVtcGxhdGUgcHJldmlldyB1cmwuXG4gICAqL1xuICBwdWJsaWMgZ2V0VGVtcGxhdGVQcmV2aWV3VXJpKGlkLCByZW5kaXRpb24/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBVdGlscy5idWlsZFVyaShgJHt0aGlzLmJhY2tlbmQuZ2V0U2VydmljZUJhc2UoKX0vdGVtcGxhdGUvJHtpZH0vY29udGVudGAsIHtyZW5kaXRpb259KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb21taXQgYSBwcmVwYXJlZCBpdGVtLiBUaGlzIHdpbGwgY3JlYXRlIGFuIGFjdHVhbCBkbXMgb2JqZWN0LlxuICAgKiBVcGRhdGVzIHRoZSBwcmVwYXJlZCBjcmVhdGlvbiBvYmplY3QgdGFyZ2V0IHR5cGVcbiAgICpcbiAgICogQHBhcmFtIHByZXBhcmVkSXRlbUlkIElEIG9mIHRoZSBwcmVwYXJlZCBpdGVtXG4gICAqIEBwYXJhbSBwcmVwYXJlZEl0ZW1UeXBlIE5hbWUgb2YgdGhlIHByZXBhcmVkIGl0ZW1zIHRhcmdldCBvYmplY3QgdHlwZVxuICAgKiBAcGFyYW0gcHJlcGFyZWRJdGVtRGF0YSBPYmplY3QgaG9sZGluZyBkYXRhIG9mIHRoZSBwcmVwYXJlZCBpdGVtXG4gICAqIEByZXR1cm5zIFRoZSBpZCBvZiB0aGUgY3JlYXRlZCBkbXMgb2JqZWN0XG4gICAqL1xuICBwdWJsaWMgY29tbWl0UHJlcGFyZWRJdGVtKHByZXBhcmVkSXRlbUlkLCBwcmVwYXJlZEl0ZW1UeXBlLCBwcmVwYXJlZEl0ZW1EYXRhKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXG4gICAgICAucHV0KGAvcHJlcGFyZS8ke3ByZXBhcmVkSXRlbUlkfS8ke3ByZXBhcmVkSXRlbVR5cGV9YClcbiAgICAgIC5waXBlKFxuICAgICAgICBtZXJnZU1hcCgoKSA9PiB0aGlzLmJhY2tlbmQucG9zdChgL3ByZXBhcmUvY29tbWl0LyR7cHJlcGFyZWRJdGVtSWR9YCwgcHJlcGFyZWRJdGVtRGF0YSkpLFxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5nZXRQcmVwYXJlZEl0ZW1zJCgpKSxcbiAgICAgICAgbWFwKHJlcyA9PiByZXMuaWQpXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwbG9hZCBDb250ZW50XG4gICAqXG4gICAqIEBwYXJhbSBzdHJpbmcgcHJlcGFyZWRJdGVtSWRcbiAgICogQHBhcmFtIEZpbGUgZmlsZVxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPGFueT5cbiAgICovXG4gIHVwbG9hZENvbnRlbnQocHJlcGFyZWRJdGVtSWQ6IHN0cmluZywgZmlsZTogRmlsZSkge1xuICAgIGNvbnN0IHVyaSA9IGAke3RoaXMuYmFja2VuZC5nZXRTZXJ2aWNlQmFzZSgpfS9wcmVwYXJlLyR7cHJlcGFyZWRJdGVtSWR9L2NvbnRlbnQuanNvbj9mb3JtPXRydWUmY29udGVudG1ldGE9dHJ1ZWA7XG4gICAgcmV0dXJuIHRoaXMudXBsb2FkU2VydmljZVxuICAgICAgLnVwbG9hZCh1cmksIFtmaWxlXSlcbiAgICAgIC5waXBlKFxuICAgICAgICAvLyB0YXAoKCkgPT4gdGhpcy5nZXRQcmVwYXJlZEl0ZW1zJCgpKVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGxvYWRzIGZpbGVzIHRvIGFuIHVwbG9hZCB0YXJnZXQuXG4gICAqXG4gICAqIEBwYXJhbSB1cGxvYWRUYXJnZXQgVGhlIHVwbG9hZCB0YXJnZXQgdG8gdXBsb2FkIGZpbGVzIHRvXG4gICAqIEBwYXJhbSB1cGxvYWRGaWxlcyBGaWxlcyB0byBiZSB1cGxvYWRlZFxuICAgKiBAcGFyYW0gdXNlQmF0Y2hVcGxvYWQgRmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgb3Igbm90IHRvIHVzZSBiYXRjaCBwcm9jZXNzaW5nIG9uIHRoZSBiYWNrZW5kIHNpZGVcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxhbnk+XG4gICAqL1xuICB1cGxvYWRUb1RhcmdldCh1cGxvYWRUYXJnZXQ6IFVwbG9hZFRhcmdldCwgdXBsb2FkRmlsZXM6IFVwbG9hZEZpbGVJdGVtW10sIHVzZUJhdGNoVXBsb2FkPzogYm9vbGVhbik6IE9ic2VydmFibGU8YW55PiB7XG5cbiAgICBjb25zdCBmaWxlcyA9IHVwbG9hZEZpbGVzLm1hcChmID0+IGYuX2ZpbGUpO1xuICAgIHJldHVybiB0aGlzLnVwbG9hZFNlcnZpY2VcbiAgICAgIC51cGxvYWQodGhpcy5nZXRVcGxvYWRUYXJnZXQodXBsb2FkVGFyZ2V0LCB1c2VCYXRjaFVwbG9hZCksIGZpbGVzKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoKSA9PiB0aGlzLmdldFByZXBhcmVkSXRlbXMkKCkpXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgdXJpIHRvIHBvc3QgZmlsZXMgdG8gYmFzZWQgb24gdGhlIHVwbG9hZCB0YXJnZXQuXG4gICAqXG4gICAqIEBwYXJhbSB1cGxvYWRUYXJnZXQgVGhlIHRhcmdldCB0byB1cGxvYWQgZmlsZXMgdG9cbiAgICogQHBhcmFtIHVzZUJhdGNoVXBsb2FkIEZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIG9yIG5vdCB0byB1cGxvYWQgYWxsIGZpbGVzIGluIGEgc2luZ2xlIHBvc3RcbiAgICogQHJldHVybnMgc3RyaW5nIHRoZSB1cmlcbiAgICovXG4gIHByaXZhdGUgZ2V0VXBsb2FkVGFyZ2V0KHVwbG9hZFRhcmdldDogVXBsb2FkVGFyZ2V0LCB1c2VCYXRjaFVwbG9hZD86IGJvb2xlYW4pOiBzdHJpbmcge1xuICAgIGxldCB1cmk7XG5cbiAgICBpZiAodXBsb2FkVGFyZ2V0LnR5cGUgPT09IFVwbG9hZFRhcmdldC5ST09UKSB7XG4gICAgICAvKipcbiAgICAgICAqIHVwbG9hZCB0byBnZW5lcmFsIGZpbGluZyBsb2NhdGlvblxuICAgICAgICpcbiAgICAgICAqIEB0eXBlIHN0cmluZ1xuICAgICAgICovXG4gICAgICB1cmkgPSB0aGlzLmJhY2tlbmQuZ2V0U2VydmljZUJhc2UoKSArIHRoaXMuY3JlYXRlUHJlcGFyZWRJdGVtUG9zdFVybCh7XG4gICAgICAgICAgcGFyZW50SWQ6IG51bGwsXG4gICAgICAgICAgY3JlYXRlTWFueTogIXVzZUJhdGNoVXBsb2FkXG4gICAgICAgIH1cbiAgICAgICk7XG5cbiAgICB9IGVsc2UgaWYgKHVwbG9hZFRhcmdldC50eXBlID09PSBVcGxvYWRUYXJnZXQuT0JKRUNUKSB7XG4gICAgICAvKipcbiAgICAgICAqIHVwbG9hZCB0byBkbXMgb2JqZWN0LCBtZWFucyBhZGRpbmcgb3IgcmVwbGFjaW5nIGNvbnRlbnQgZmlsZVxuICAgICAgICovXG4gICAgICBjb25zdCB7cmVmZXJlbmNlT2JqZWN0fSA9IHVwbG9hZFRhcmdldDtcbiAgICAgIHVyaSA9IGAke3RoaXMuYmFja2VuZC5nZXRTZXJ2aWNlQmFzZSgpfS9kbXMvJHtyZWZlcmVuY2VPYmplY3QuaWR9L2NvbnRlbnRzP3R5cGU9JHtyZWZlcmVuY2VPYmplY3QudHlwZS5uYW1lfWA7XG5cbiAgICB9IGVsc2UgaWYgKHVwbG9hZFRhcmdldC50eXBlID09PSBVcGxvYWRUYXJnZXQuQ09OVEVYVCB8fCB1cGxvYWRUYXJnZXQudHlwZSA9PT0gVXBsb2FkVGFyZ2V0LkNPTlRFWFRfVFJFRSkge1xuICAgICAgLyoqXG4gICAgICAgKiB1cGxvYWQgdG8gY29udGV4dCBmb2xkZXIsIG1lYW5zIGFkZGluZyBhIG5ldyBkbXMgb2JqZWN0IHRvIGEgc3BlY2lmaWNcbiAgICAgICAqIGNvbnRleHQgZm9sZGVyIC4uLlxuICAgICAgICogLi4uIGlmIHdlIGdvdCBhIHN1YkZvbGRlciAobm9kZSBmcm9tIHRoZSBjb250ZXh0IHRyZWUpIHNldCB1cCB3ZSdsbCBhZGQgdGhhdCB0b29cbiAgICAgICAqXG4gICAgICAgKiBAdHlwZSBzdHJpbmdcbiAgICAgICAqL1xuICAgICAgdXJpID0gdGhpcy5iYWNrZW5kLmdldFNlcnZpY2VCYXNlKCkgKyB0aGlzLmNyZWF0ZVByZXBhcmVkSXRlbVBvc3RVcmwoe1xuICAgICAgICBwYXJlbnRJZDogdXBsb2FkVGFyZ2V0LnJlZmVyZW5jZU9iamVjdC5pZCxcbiAgICAgICAgY3JlYXRlTWFueTogIXVzZUJhdGNoVXBsb2FkLFxuICAgICAgICBjaGlsZFR5cGU6IHVwbG9hZFRhcmdldC5zdWJGb2xkZXIgJiYgdXBsb2FkVGFyZ2V0LnN1YkZvbGRlci5kYXRhLnR5cGUgPyB1cGxvYWRUYXJnZXQuc3ViRm9sZGVyLmRhdGEudHlwZSA6IG51bGxcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gdXJpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlbGV0ZXMgYSBwcmVwYXJlZCBjcmVhdGlvbiBvYmplY3QgY29udGVudCBlbGVtZW50IGJ5IGluZGV4IG9yIHRoZSBjb21wbGV0ZSBjb250ZW50LlxuICAgKiBJZiB5b3UgcHJvdmlkZSBhbiBpbmRleCB0aGUgY29udGVudCBjb25zaXN0cyBvbmx5IG9mIG9uZSBlbGVtZW50LFxuICAgKiB0aGUgY29udGVudCBpcyBjb21wbGV0ZWx5IHJlbW92ZWQgZnJvbSB0aGUgcHJlcGFyZWQgY3JlYXRpb24gb2JqZWN0LlxuICAgKiBcbiAgICogQHBhcmFtIHByZXBhcmVkSXRlbUlkIElEIG9mIHRoZSBpdGVtIHdpdGggdGhlIGNvbnRlbnQgdG8gYmUgcmVtb3ZlZFxuICAgKiBAcGFyYW0gaW5kZXggUGFyYW1ldGVyIHRoYXQgZGV0ZXJtaW5lcyB3aGljaCBjb250ZW50IGVsZW1lbnQgc2hvdWxkIGJlIGRlbGV0ZWQuXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8UHJlcGFyZWRJdGVtPiBUaGUgdXBkYXRlZCBwcmVwYXJlZCBpdGVtXG4gICAqL1xuICBwdWJsaWMgZGVsZXRlUHJlcGFyZWRJdGVtQ29udGVudChwcmVwYXJlZEl0ZW1JZDogc3RyaW5nLCBpbmRleD86IG51bWJlcik6IE9ic2VydmFibGU8UHJlcGFyZWRJdGVtPiB7XG4gICAgY29uc3QgdXJsID0gYC9wcmVwYXJlLyR7cHJlcGFyZWRJdGVtSWR9L2NvbnRlbnRgICsgKGluZGV4ICE9PSB1bmRlZmluZWQgPyBgP2luZGV4PSR7aW5kZXh9YCA6ICcnKTtcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXG4gICAgICAuZGVsKHVybClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAocmVzID0+IG5ldyBQcmVwYXJlZEl0ZW0ocmVzKSlcbiAgICAgICk7XG4gIH1cbn1cbiJdfQ==
300
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlcGFyZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW8tc2RrL2NvcmUvc3JjL2xpYi9zZXJ2aWNlL3ByZXBhcmUvcHJlcGFyZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2xELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQWEsYUFBYSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUN6RCxPQUFPLEVBQUMsWUFBWSxFQUF1QixNQUFNLGlDQUFpQyxDQUFDO0FBQ25GLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFpQjdEOztHQUVHO0FBRUgsTUFBTSxPQUFPLGNBQWM7SUFVekIsWUFBb0IsT0FBdUIsRUFDdkIsYUFBNEI7UUFENUIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFDdkIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFSeEMsd0JBQW1CLEdBQUcsSUFBSSxhQUFhLENBQWlCLENBQUMsQ0FBQyxDQUFDO1FBQzVELG1CQUFjLEdBQStCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUdwRiw0QkFBdUIsR0FBRyxJQUFJLGFBQWEsQ0FBUyxDQUFDLENBQUMsQ0FBQztRQUN4RCx1QkFBa0IsR0FBdUIsSUFBSSxDQUFDLHVCQUF1QixDQUFD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TUc7WUFDSCxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDO2dCQUNwRyxRQUFRLEVBQUUsWUFBWSxDQUFDLGVBQWUsQ0FBQyxFQUFFO2dCQUN6QyxVQUFVLEVBQUUsQ0FBQyxjQUFjO2dCQUMzQixTQUFTLEVBQUUsWUFBWSxDQUFDLFNBQVMsSUFBSSxZQUFZLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSTthQUNoSCxDQUFDLENBQUM7U0FDSjtRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0kseUJBQXlCLENBQUMsY0FBc0IsRUFBRSxLQUFjO1FBQ3JFLE1BQU0sR0FBRyxHQUFHLFlBQVksY0FBYyxVQUFVLEdBQUcsQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxVQUFVLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNsRyxPQUFPLElBQUksQ0FBQyxPQUFPO2FBQ2hCLEdBQUcsQ0FBQyxHQUFHLENBQUM7YUFDUixJQUFJLENBQ0gsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FDbEMsQ0FBQztJQUNOLENBQUM7OztZQWxWRixVQUFVOzs7WUF6QkgsY0FBYztZQUlkLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge21lcmdlTWFwLCBtYXAsIHRhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VXRpbHN9IGZyb20gJy4uLy4uL3V0aWwvdXRpbHMnO1xuaW1wb3J0IHtCYWNrZW5kU2VydmljZX0gZnJvbSAnLi4vYmFja2VuZC9iYWNrZW5kLnNlcnZpY2UnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7T2JqZWN0VHlwZX0gZnJvbSAnLi4vLi4vbW9kZWwvb2JqZWN0LXR5cGUubW9kZWwnO1xuaW1wb3J0IHtQcmVwYXJlZEl0ZW0sIFByZXBhcmVkSXRlbVRlbXBsYXRlfSBmcm9tICcuLi8uLi9tb2RlbC9wcmVwYXJlZC1pdGVtLm1vZGVsJztcbmltcG9ydCB7VXBsb2FkU2VydmljZX0gZnJvbSAnLi4vdXBsb2FkL3VwbG9hZC5zZXJ2aWNlJztcbmltcG9ydCB7VXBsb2FkVGFyZ2V0fSBmcm9tICcuLi8uLi9tb2RlbC91cGxvYWQtdGFyZ2V0Lm1vZGVsJztcbmltcG9ydCB7VXBsb2FkRmlsZUl0ZW19IGZyb20gJy4uLy4uL21vZGVsL3VwbG9hZC1maWxlLWl0ZW0ubW9kZWwnO1xuaW1wb3J0IHtJUHJlcGFyZUNoaWxkVHlwZXN9IGZyb20gJy4vb2JqZWN0VHlwZXMuaW50ZXJmYWNlJztcblxuLyoqXG4gKiBAaWdub3JlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJlcGFyZWRQb3N0UGFyYW0ge1xuICBwYXJlbnRJZDogc3RyaW5nO1xuICAvKipcbiAgICogZmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgb3Igbm90IHRvIGNyZWF0ZSBvbmUgUHJlcGFyZWRJdGVtIHVzaW5nIG11bHRpcGxlIGZpbGVzIHVwbG9hZGVkIChmYWxzZSlcbiAgICogb3IgY3JlYXRpbmcgYSBQcmVwYXJlZEl0ZW0gZm9yIGVhY2ggZmlsZSBwb3N0ZWQgdG8gdGhlIFVSTCAodHJ1ZSlcbiAgICovXG4gIGNyZWF0ZU1hbnk/OiBib29sZWFuO1xuICBjaGlsZFR5cGU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ29sbGVjdGlvbiBvZiBQcmVwYXJlIFNlcnZpY2VzXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBQcmVwYXJlU2VydmljZSB7XG5cbiAgcHJpdmF0ZSBwcmVwYXJlZEl0ZW1zOiBQcmVwYXJlZEl0ZW1bXTtcbiAgcHJpdmF0ZSBwcmVwYXJlZEl0ZW1zU291cmNlID0gbmV3IFJlcGxheVN1YmplY3Q8UHJlcGFyZWRJdGVtW10+KDEpO1xuICBwdWJsaWMgcHJlcGFyZWRJdGVtcyQ6IE9ic2VydmFibGU8UHJlcGFyZWRJdGVtW10+ID0gdGhpcy5wcmVwYXJlZEl0ZW1zU291cmNlLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIHByaXZhdGUgcHJlcGFyZWRJdGVtQ291bnQ6IG51bWJlcjtcbiAgcHJpdmF0ZSBwcmVwYXJlZEl0ZW1Db3VudFNvdXJjZSA9IG5ldyBSZXBsYXlTdWJqZWN0PG51bWJlcj4oMSk7XG4gIHB1YmxpYyBwcmVwYXJlZEl0ZW1Db3VudCQ6IE9ic2VydmFibGU8bnVtYmVyPiA9IHRoaXMucHJlcGFyZWRJdGVtQ291bnRTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBiYWNrZW5kOiBCYWNrZW5kU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSB1cGxvYWRTZXJ2aWNlOiBVcGxvYWRTZXJ2aWNlKSB7XG4gIH1cblxuICAvKipcbiAgICogUHVibGljIEZldGNoIFByZXBhcmUgaXRlbXNcbiAgICovXG4gIHJlZnJlc2hQcmVwYXJlZEl0ZW1zQ291bnQoKSB7XG4gICAgdGhpcy5mZXRjaFByZXBhcmVkSXRlbXNDb3VudCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoZXMgdGhlIG51bWJlciBvZiBwcmVwYXJlZCBpdGVtcyBmb3IgdGhlIGN1cnJlbnQgdXNlci5cbiAgICovXG4gIHByaXZhdGUgZmV0Y2hQcmVwYXJlZEl0ZW1zQ291bnQoKSB7XG4gICAgdGhpcy5iYWNrZW5kLmdldEpzb24oJy9wcmVwYXJlL3N0YXRlJylcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlcykgPT4gcmVzLmNvdW50KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgocmVzKSA9PiB7XG4gICAgICAgIHRoaXMucHJlcGFyZWRJdGVtQ291bnQgPSByZXM7XG4gICAgICAgIHRoaXMucHJlcGFyZWRJdGVtQ291bnRTb3VyY2UubmV4dCh0aGlzLnByZXBhcmVkSXRlbUNvdW50KTtcbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBwcmVwYXJlZCBpdGVtIG9uIHRoZSBiYWNrZWQgc2lkZS5cbiAgICpcbiAgICogQHBhcmFtIHBhcmVudElkIFRoZSBJRCBvZiB0aGUgcGFyZW50IGRtcyBvYmplY3QgdG8gYWRkIHRoZSBwcmVwYXJlZCBpdGVtIHRvXG4gICAqIEBwYXJhbSBjaGlsZFR5cGUgVGhlIHR5cGUgb2Ygb2JqZWN0IHRvIGJlIGNyZWF0ZWRcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxhbnk+XG4gICAqL1xuICBwdWJsaWMgY3JlYXRlUHJlcGFyZWRJdGVtKHBhcmVudElkOiBzdHJpbmcsIGNoaWxkVHlwZT86IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG5cbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXG4gICAgICAucG9zdCh0aGlzLmNyZWF0ZVByZXBhcmVkSXRlbVBvc3RVcmwoe1xuICAgICAgICBwYXJlbnRJZDogcGFyZW50SWQsXG4gICAgICAgIGNoaWxkVHlwZTogY2hpbGRUeXBlID8gY2hpbGRUeXBlIDogbnVsbFxuICAgICAgfSksIHt9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoKSA9PiB0aGlzLmdldFByZXBhcmVkSXRlbXMkKCkpXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSBwcmVwYXJlZEl0ZW1JZFxuICAgKiBAcGFyYW0gZGF0YVxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPGFueT5cbiAgICovXG4gIHB1YmxpYyB1cGRhdGVQcmVwYXJlZEl0ZW1JbmRleERhdGEocHJlcGFyZWRJdGVtSWQsIGRhdGEpIHtcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXG4gICAgICAucHV0KCcvcHJlcGFyZS8nICsgcHJlcGFyZWRJdGVtSWQsIGRhdGEpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuZ2V0UHJlcGFyZWRJdGVtcyQoKSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhbiBVUkwgZm9yIGNyZWF0aW5nIGEgUHJlcGFyZWRJdGVtLlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zIFBhcmFtcyBmb3IgZ2VuZXJhdGluZyBhcHByb3ByaWF0ZSB1cmkuXG4gICAqIEByZXR1cm5zIHN0cmluZyBBIFBPU1QgVVJMIGZvciBjcmVhdGluZyBQcmVwYXJlZEl0ZW1zXG4gICAqL1xuICBwdWJsaWMgY3JlYXRlUHJlcGFyZWRJdGVtUG9zdFVybChwYXJhbXM6IFByZXBhcmVkUG9zdFBhcmFtKTogc3RyaW5nIHtcblxuICAgIGxldCB1cmwgPSBwYXJhbXMuY3JlYXRlTWFueSA/ICcvcHJlcGFyZS9jcmVhdGVtYW55JyA6ICcvcHJlcGFyZS9jcmVhdGUnO1xuICAgIGlmIChwYXJhbXMpIHtcbiAgICAgIHVybCA9IFV0aWxzLmJ1aWxkVXJpKHVybCwgcGFyYW1zKTtcbiAgICB9XG4gICAgcmV0dXJuIHVybDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgYSBsaXN0IG9mIHRoZSB1c2VycyBwcmVwYXJlZCBpdGVtcy5cbiAgICpcbiAgICogQHBhcmFtIG5vRm9ybXMgSWYgc2V0IHRvIHRydWUgdGhlIHByZXBhcmVkIGl0ZW1zIHdpbGwgYmUgZmV0Y2hlZCB3aXRob3V0IHRoZSBmb3JtIHdoaWNoIGlzIGZhc3RlclxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPFByZXBhcmVkSXRlbVtdPiBBIGNvbGxlY3Rpb24gb2YgcHJlcGFyZWQgaXRlbSBvYmplY3RzXG4gICAqL1xuICBwdWJsaWMgZ2V0UHJlcGFyZWRJdGVtcyQobm9Gb3Jtcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPFByZXBhcmVkSXRlbVtdPiB7XG4gICAgdGhpcy5mZXRjaFByZXBhcmVkSXRlbXMobm9Gb3Jtcykuc3Vic2NyaWJlKCk7XG4gICAgcmV0dXJuIHRoaXMucHJlcGFyZWRJdGVtcyQ7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmUgUHJlcGFyZUl0ZW1zIGFuZCBmb3JtIHRoZW1cbiAgICpcbiAgICogQHBhcmFtIGJvb2xlYW4gbm9Gb3Jtc1xuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPFByZXBhcmVkSXRlbVtdPlxuICAgKi9cbiAgcHJpdmF0ZSBmZXRjaFByZXBhcmVkSXRlbXMobm9Gb3Jtcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPFByZXBhcmVkSXRlbVtdPiB7XG4gICAgbGV0IHVyaSA9IChub0Zvcm1zKSA/ICcvcHJlcGFyZScgOiAnL3ByZXBhcmU/Zm9ybT10cnVlJztcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXG4gICAgICAuZ2V0SnNvbih1cmkpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXM6IGFueSkgPT4gcmVzLm1hcChpID0+IG5ldyBQcmVwYXJlZEl0ZW0oaSkpKSxcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuZmV0Y2hQcmVwYXJlZEl0ZW1zQ291bnQoKSksXG4gICAgICAgIHRhcCgocHJlcGFyZWRJdGVtczogUHJlcGFyZWRJdGVtW10pID0+IHRoaXMucHJlcGFyZWRJdGVtc1NvdXJjZS5uZXh0KHByZXBhcmVkSXRlbXMuc29ydChVdGlscy5zb3J0VmFsdWVzKCdjcmVhdGVkJywgJ2Rlc2MnKSkpKVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIGEgcHJlcGFyZWQgaXRlbS5cbiAgICpcbiAgICogQHBhcmFtIHByZXBhcmVkSXRlbUlkIElEIG9mIHRoZSBpdGVtIHRvIGJlIHJlbW92ZWRcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxhbnk+IFNlcnZlciByZXNwb25zZVxuICAgKi9cbiAgZGVsZXRlUHJlcGFyZWRJdGVtKHByZXBhcmVkSXRlbUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmRcbiAgICAgIC5kZWwoYC9wcmVwYXJlLyR7cHJlcGFyZWRJdGVtSWR9YClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5nZXRQcmVwYXJlZEl0ZW1zJCgpKVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaGVzIGEgbGlzdCBvZiBvYmplY3QgdHlwZXMgYWxsb3dlZCB0byBiZSBwbGFjZWQgZGlyZWN0bHkgYmVsb3cgcm9vdC5cbiAgICpcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxPYmplY3RUeXBlW10+IEEgbGlzdCBvZiBzdXBwb3J0ZWQgb2JqZWN0IHR5cGVzXG4gICAqL1xuICBwdWJsaWMgZ2V0UHJlcGFyZVJvb3RUeXBlcygpOiBPYnNlcnZhYmxlPE9iamVjdFR5cGVbXT4ge1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmRcbiAgICAgIC5nZXRWaWFUZW1wQ2FjaGUoJy9wcmVwYXJlL3R5cGVzJylcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlcykgPT4gcmVzLnR5cGVzLm1hcCgodHlwZSkgPT4gbmV3IE9iamVjdFR5cGUodHlwZSkpKVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaGVzIGEgbGlzdCBvZiBhbGxvd2VkIGNoaWxkIG9iamVjdCB0eXBlcyBmb3IgYSBzZWxlY3RlZCBwYXJlbnQuXG4gICAqXG4gICAqIEBwYXJhbSBwYXJlbnRJZCBUaGUgaWQgb2YgdGhlIHBhcmVudCBkbXMgb2JqZWN0IChjb250ZXh0IGZvbGRlcilcbiAgICogQHBhcmFtIHdpdGhDb250ZW50T25seSBJZiBzZXQgdG8gdHJ1ZSBvbmx5IGNoaWxkIHR5cGVzLCB0aGF0IHN1cHBvcnQgY29udGVudCBhcmUgcmV0dXJuZWQuXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8SVByZXBhcmVDaGlsZFR5cGVzPiBBIGxpc3Qgb2Ygc3VwcG9ydGVkIG9iamVjdCB0eXBlc1xuICAgKi9cbiAgcHVibGljIGdldFByZXBhcmVDaGlsZFR5cGVzKHBhcmVudElkOiBzdHJpbmcsIHdpdGhDb250ZW50T25seT86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPElQcmVwYXJlQ2hpbGRUeXBlcz4ge1xuICAgIGNvbnN0IHBhcmFtcyA9IHBhcmVudElkID8ge3BhcmVudElkLCB3aXRoY29udGVudDogd2l0aENvbnRlbnRPbmx5fSA6IHt3aXRoY29udGVudDogd2l0aENvbnRlbnRPbmx5fVxuICAgIGNvbnN0IHVyaSA9IFV0aWxzLmJ1aWxkVXJpKCcvcHJlcGFyZS90eXBlcycsIHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZFxuICAgICAgLmdldFZpYVRlbXBDYWNoZSh1cmkpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKHJlcyA9PiAoe3BhcmVudDogcmVzLnBhcmVudCwgdHlwZXM6IHJlcy50eXBlcy5tYXAoKHR5cGUpID0+IG5ldyBPYmplY3RUeXBlKHR5cGUpKX0pKVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBmZXRjaCB0aGUgcHJldmlldyB1cmkgZm9yIGEgcHJlcGFyZWQgaXRlbVxuICAgKlxuICAgKiBAcGFyYW0gaWQgVGhlIGlkIG9mIHRoZSBwcmVwYXJlZCBpdGVtXG4gICAqIEBwYXJhbSBpbmRleCBXaGVuIGEgcHJlcGFyZWQgaXRlbSBjb250YWlucyBtb3JlIHRoYW4gb25lIGNvbnRlbnRzLCB0aGUgaW5kZXggc3BlY2lmaWVzIHdoaWNoIGNvbnRlbnRcbiAgICogQHBhcmFtIHJlbmRpdGlvbiBUYXJnZXQgcmVuZGl0aW9uIChQREYpXG4gICAqIHRvIHJldHJpZXZlIHRoZSBwcmV2aWV3IHVyaSBmb3JcbiAgICogQHJldHVybnMgc3RyaW5nIFByZXZpZXcgdXJpXG4gICAqL1xuICBwdWJsaWMgZ2V0UHJldmlld1VyaShpZDogc3RyaW5nLCBpbmRleD86IG51bWJlciwgcmVuZGl0aW9uPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gVXRpbHMuYnVpbGRVcmkoYCR7dGhpcy5iYWNrZW5kLmdldFNlcnZpY2VCYXNlKCl9L3ByZXBhcmUvJHtpZH0vY29udGVudGAsIHtyZW5kaXRpb24sIGluZGV4fSk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgcHJlcGFyZWQgaXRlbXMgdGFyZ2V0IG9iamVjdCB0eXBlLlxuICAgKlxuICAgKiBAcGFyYW0gb2JqZWN0VHlwZSBUaGUgdGFyZ2V0IG9iamVjdCB0eXBlcyBuYW1lXG4gICAqIEBwYXJhbSBwcmVwYXJlZEl0ZW1JZCBUaGUgaWQgb2YgdGhlIHByZXBhcmVkIGl0ZW0gdG8gc2V0IHRoZSB0eXBlIGZvclxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPFByZXBhcmVkSXRlbT4gVGhlIHVwZGF0ZWQgcHJlcGFyZWQgaXRlbVxuICAgKi9cbiAgcHVibGljIHVwZGF0ZUNoaWxkVHlwZShvYmplY3RUeXBlOiBzdHJpbmcsIHByZXBhcmVkSXRlbUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFByZXBhcmVkSXRlbT4ge1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmRcbiAgICAgIC5wdXQoYC9wcmVwYXJlLyR7cHJlcGFyZWRJdGVtSWR9LyR7b2JqZWN0VHlwZX0/Zm9ybT10cnVlJmNvbnRlbnRtZXRhPXRydWVgKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcChyZXMgPT4gbmV3IFByZXBhcmVkSXRlbShyZXMpKVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSB0ZW1wbGF0ZSB0byBhIHByZXBhcmVkIGl0ZW0uXG4gICAqXG4gICAqIEBwYXJhbSBwcmVwYXJlZEl0ZW1JZCBUaGUgaWQgb2YgdGhlIHByZXBhcmVkIGl0ZW0gdG8gYWRkIHRoZSB0ZW1wbGF0ZSB0b1xuICAgKiBAcGFyYW0gdGVtcGxhdGVJZCBUaGUgaWQgb2YgdGhlIHRlbXBsYXRlIHRvIGJlIGFkZGVkXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8UHJlcGFyZWRJdGVtPiAgVGhlIHVwZGF0ZWQgcHJlcGFyZWQgaXRlbVxuICAgKi9cbiAgcHVibGljIGFkZFRlbXBsYXRlKHByZXBhcmVkSXRlbUlkLCB0ZW1wbGF0ZUlkKTogT2JzZXJ2YWJsZTxQcmVwYXJlZEl0ZW0+IHtcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXG4gICAgICAucHV0KGAvcHJlcGFyZS8ke3ByZXBhcmVkSXRlbUlkfS90ZW1wbGF0ZT90ZW1wbGF0ZWlkPSR7dGVtcGxhdGVJZH1gKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcChyZXMgPT4gbmV3IFByZXBhcmVkSXRlbShyZXMpKVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaGVzIGEgbGlzdCBvZiBhdmFpbGFibGUgdGVtcGxhdGVzIGZvciBhIGdpdmVuIG9iamVjdCB0eXBlLlxuICAgKlxuICAgKiBAcGFyYW0gT2JzZXJ2YWJsZTxQcmVwYXJlZEl0ZW1UZW1wbGF0ZVtdPiBvYmplY3RUeXBlTmFtZVxuICAgKi9cbiAgcHVibGljIGdldFRlbXBsYXRlcyhvYmplY3RUeXBlTmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxQcmVwYXJlZEl0ZW1UZW1wbGF0ZVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZFxuICAgICAgLmdldEpzb24oJy90ZW1wbGF0ZS9saXN0P3R5cGU9JyArIG9iamVjdFR5cGVOYW1lKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzOiBhbnkpID0+IHJlcyBhcyBQcmVwYXJlZEl0ZW1UZW1wbGF0ZVtdKVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHVybCBvZiBhIHRlbXBsYXRlIHByZXZpZXdcbiAgICpcbiAgICogQHBhcmFtIGlkIFRlbXBsYXRlIElEXG4gICAqIEBwYXJhbSByZW5kaXRpb24gVGFyZ2V0IHJlbmRpdGlvbiAoUERGKVxuICAgKiBAcmV0dXJucyBzdHJpbmcgVGhlIHRlbXBsYXRlIHByZXZpZXcgdXJsLlxuICAgKi9cbiAgcHVibGljIGdldFRlbXBsYXRlUHJldmlld1VyaShpZCwgcmVuZGl0aW9uPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gVXRpbHMuYnVpbGRVcmkoYCR7dGhpcy5iYWNrZW5kLmdldFNlcnZpY2VCYXNlKCl9L3RlbXBsYXRlLyR7aWR9L2NvbnRlbnRgLCB7cmVuZGl0aW9ufSk7XG4gIH1cblxuICAvKipcbiAgICogQ29tbWl0IGEgcHJlcGFyZWQgaXRlbS4gVGhpcyB3aWxsIGNyZWF0ZSBhbiBhY3R1YWwgZG1zIG9iamVjdC5cbiAgICogVXBkYXRlcyB0aGUgcHJlcGFyZWQgY3JlYXRpb24gb2JqZWN0IHRhcmdldCB0eXBlXG4gICAqXG4gICAqIEBwYXJhbSBwcmVwYXJlZEl0ZW1JZCBJRCBvZiB0aGUgcHJlcGFyZWQgaXRlbVxuICAgKiBAcGFyYW0gcHJlcGFyZWRJdGVtVHlwZSBOYW1lIG9mIHRoZSBwcmVwYXJlZCBpdGVtcyB0YXJnZXQgb2JqZWN0IHR5cGVcbiAgICogQHBhcmFtIHByZXBhcmVkSXRlbURhdGEgT2JqZWN0IGhvbGRpbmcgZGF0YSBvZiB0aGUgcHJlcGFyZWQgaXRlbVxuICAgKiBAcmV0dXJucyBUaGUgaWQgb2YgdGhlIGNyZWF0ZWQgZG1zIG9iamVjdFxuICAgKi9cbiAgcHVibGljIGNvbW1pdFByZXBhcmVkSXRlbShwcmVwYXJlZEl0ZW1JZCwgcHJlcGFyZWRJdGVtVHlwZSwgcHJlcGFyZWRJdGVtRGF0YSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZFxuICAgICAgLnB1dChgL3ByZXBhcmUvJHtwcmVwYXJlZEl0ZW1JZH0vJHtwcmVwYXJlZEl0ZW1UeXBlfWApXG4gICAgICAucGlwZShcbiAgICAgICAgbWVyZ2VNYXAoKCkgPT4gdGhpcy5iYWNrZW5kLnBvc3QoYC9wcmVwYXJlL2NvbW1pdC8ke3ByZXBhcmVkSXRlbUlkfWAsIHByZXBhcmVkSXRlbURhdGEpKSxcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuZ2V0UHJlcGFyZWRJdGVtcyQoKSksXG4gICAgICAgIG1hcChyZXMgPT4gcmVzLmlkKVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGxvYWQgQ29udGVudFxuICAgKlxuICAgKiBAcGFyYW0gc3RyaW5nIHByZXBhcmVkSXRlbUlkXG4gICAqIEBwYXJhbSBGaWxlIGZpbGVcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxhbnk+XG4gICAqL1xuICB1cGxvYWRDb250ZW50KHByZXBhcmVkSXRlbUlkOiBzdHJpbmcsIGZpbGU6IEZpbGUpIHtcbiAgICBjb25zdCB1cmkgPSBgJHt0aGlzLmJhY2tlbmQuZ2V0QmFzZVdpdGhDb250ZXh0KHRoaXMuYmFja2VuZC5nZXRTZXJ2aWNlQmFzZSgpKX0vcHJlcGFyZS8ke3ByZXBhcmVkSXRlbUlkfS9jb250ZW50Lmpzb24/Zm9ybT10cnVlJmNvbnRlbnRtZXRhPXRydWVgO1xuICAgIHJldHVybiB0aGlzLnVwbG9hZFNlcnZpY2VcbiAgICAgIC51cGxvYWQodXJpLCBbZmlsZV0pXG4gICAgICAucGlwZShcbiAgICAgICAgLy8gdGFwKCgpID0+IHRoaXMuZ2V0UHJlcGFyZWRJdGVtcyQoKSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVXBsb2FkcyBmaWxlcyB0byBhbiB1cGxvYWQgdGFyZ2V0LlxuICAgKlxuICAgKiBAcGFyYW0gdXBsb2FkVGFyZ2V0IFRoZSB1cGxvYWQgdGFyZ2V0IHRvIHVwbG9hZCBmaWxlcyB0b1xuICAgKiBAcGFyYW0gdXBsb2FkRmlsZXMgRmlsZXMgdG8gYmUgdXBsb2FkZWRcbiAgICogQHBhcmFtIHVzZUJhdGNoVXBsb2FkIEZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIG9yIG5vdCB0byB1c2UgYmF0Y2ggcHJvY2Vzc2luZyBvbiB0aGUgYmFja2VuZCBzaWRlXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8YW55PlxuICAgKi9cbiAgdXBsb2FkVG9UYXJnZXQodXBsb2FkVGFyZ2V0OiBVcGxvYWRUYXJnZXQsIHVwbG9hZEZpbGVzOiBVcGxvYWRGaWxlSXRlbVtdLCB1c2VCYXRjaFVwbG9hZD86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPGFueT4ge1xuXG4gICAgY29uc3QgZmlsZXMgPSB1cGxvYWRGaWxlcy5tYXAoZiA9PiBmLl9maWxlKTtcbiAgICByZXR1cm4gdGhpcy51cGxvYWRTZXJ2aWNlXG4gICAgICAudXBsb2FkKHRoaXMuZ2V0VXBsb2FkVGFyZ2V0KHVwbG9hZFRhcmdldCwgdXNlQmF0Y2hVcGxvYWQpLCBmaWxlcylcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5nZXRQcmVwYXJlZEl0ZW1zJCgpKVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHVyaSB0byBwb3N0IGZpbGVzIHRvIGJhc2VkIG9uIHRoZSB1cGxvYWQgdGFyZ2V0LlxuICAgKlxuICAgKiBAcGFyYW0gdXBsb2FkVGFyZ2V0IFRoZSB0YXJnZXQgdG8gdXBsb2FkIGZpbGVzIHRvXG4gICAqIEBwYXJhbSB1c2VCYXRjaFVwbG9hZCBGbGFnIGluZGljYXRpbmcgd2hldGhlciBvciBub3QgdG8gdXBsb2FkIGFsbCBmaWxlcyBpbiBhIHNpbmdsZSBwb3N0XG4gICAqIEByZXR1cm5zIHN0cmluZyB0aGUgdXJpXG4gICAqL1xuICBwcml2YXRlIGdldFVwbG9hZFRhcmdldCh1cGxvYWRUYXJnZXQ6IFVwbG9hZFRhcmdldCwgdXNlQmF0Y2hVcGxvYWQ/OiBib29sZWFuKTogc3RyaW5nIHtcbiAgICBsZXQgdXJpO1xuXG4gICAgaWYgKHVwbG9hZFRhcmdldC50eXBlID09PSBVcGxvYWRUYXJnZXQuUk9PVCkge1xuICAgICAgLyoqXG4gICAgICAgKiB1cGxvYWQgdG8gZ2VuZXJhbCBmaWxpbmcgbG9jYXRpb25cbiAgICAgICAqXG4gICAgICAgKiBAdHlwZSBzdHJpbmdcbiAgICAgICAqL1xuICAgICAgdXJpID0gdGhpcy5iYWNrZW5kLmdldEJhc2VXaXRoQ29udGV4dCh0aGlzLmJhY2tlbmQuZ2V0U2VydmljZUJhc2UoKSkgKyB0aGlzLmNyZWF0ZVByZXBhcmVkSXRlbVBvc3RVcmwoe1xuICAgICAgICAgIHBhcmVudElkOiBudWxsLFxuICAgICAgICAgIGNyZWF0ZU1hbnk6ICF1c2VCYXRjaFVwbG9hZFxuICAgICAgICB9XG4gICAgICApO1xuXG4gICAgfSBlbHNlIGlmICh1cGxvYWRUYXJnZXQudHlwZSA9PT0gVXBsb2FkVGFyZ2V0Lk9CSkVDVCkge1xuICAgICAgLyoqXG4gICAgICAgKiB1cGxvYWQgdG8gZG1zIG9iamVjdCwgbWVhbnMgYWRkaW5nIG9yIHJlcGxhY2luZyBjb250ZW50IGZpbGVcbiAgICAgICAqL1xuICAgICAgY29uc3Qge3JlZmVyZW5jZU9iamVjdH0gPSB1cGxvYWRUYXJnZXQ7XG4gICAgICB1cmkgPSBgJHt0aGlzLmJhY2tlbmQuZ2V0QmFzZVdpdGhDb250ZXh0KHRoaXMuYmFja2VuZC5nZXRTZXJ2aWNlQmFzZSgpKX0vZG1zLyR7cmVmZXJlbmNlT2JqZWN0LmlkfS9jb250ZW50cz90eXBlPSR7cmVmZXJlbmNlT2JqZWN0LnR5cGUubmFtZX1gO1xuXG4gICAgfSBlbHNlIGlmICh1cGxvYWRUYXJnZXQudHlwZSA9PT0gVXBsb2FkVGFyZ2V0LkNPTlRFWFQgfHwgdXBsb2FkVGFyZ2V0LnR5cGUgPT09IFVwbG9hZFRhcmdldC5DT05URVhUX1RSRUUpIHtcbiAgICAgIC8qKlxuICAgICAgICogdXBsb2FkIHRvIGNvbnRleHQgZm9sZGVyLCBtZWFucyBhZGRpbmcgYSBuZXcgZG1zIG9iamVjdCB0byBhIHNwZWNpZmljXG4gICAgICAgKiBjb250ZXh0IGZvbGRlciAuLi5cbiAgICAgICAqIC4uLiBpZiB3ZSBnb3QgYSBzdWJGb2xkZXIgKG5vZGUgZnJvbSB0aGUgY29udGV4dCB0cmVlKSBzZXQgdXAgd2UnbGwgYWRkIHRoYXQgdG9vXG4gICAgICAgKlxuICAgICAgICogQHR5cGUgc3RyaW5nXG4gICAgICAgKi9cbiAgICAgIHVyaSA9IHRoaXMuYmFja2VuZC5nZXRCYXNlV2l0aENvbnRleHQodGhpcy5iYWNrZW5kLmdldFNlcnZpY2VCYXNlKCkpICsgdGhpcy5jcmVhdGVQcmVwYXJlZEl0ZW1Qb3N0VXJsKHtcbiAgICAgICAgcGFyZW50SWQ6IHVwbG9hZFRhcmdldC5yZWZlcmVuY2VPYmplY3QuaWQsXG4gICAgICAgIGNyZWF0ZU1hbnk6ICF1c2VCYXRjaFVwbG9hZCxcbiAgICAgICAgY2hpbGRUeXBlOiB1cGxvYWRUYXJnZXQuc3ViRm9sZGVyICYmIHVwbG9hZFRhcmdldC5zdWJGb2xkZXIuZGF0YS50eXBlID8gdXBsb2FkVGFyZ2V0LnN1YkZvbGRlci5kYXRhLnR5cGUgOiBudWxsXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHVyaTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxldGVzIGEgcHJlcGFyZWQgY3JlYXRpb24gb2JqZWN0IGNvbnRlbnQgZWxlbWVudCBieSBpbmRleCBvciB0aGUgY29tcGxldGUgY29udGVudC5cbiAgICogSWYgeW91IHByb3ZpZGUgYW4gaW5kZXggdGhlIGNvbnRlbnQgY29uc2lzdHMgb25seSBvZiBvbmUgZWxlbWVudCxcbiAgICogdGhlIGNvbnRlbnQgaXMgY29tcGxldGVseSByZW1vdmVkIGZyb20gdGhlIHByZXBhcmVkIGNyZWF0aW9uIG9iamVjdC5cbiAgICpcbiAgICogQHBhcmFtIHByZXBhcmVkSXRlbUlkIElEIG9mIHRoZSBpdGVtIHdpdGggdGhlIGNvbnRlbnQgdG8gYmUgcmVtb3ZlZFxuICAgKiBAcGFyYW0gaW5kZXggUGFyYW1ldGVyIHRoYXQgZGV0ZXJtaW5lcyB3aGljaCBjb250ZW50IGVsZW1lbnQgc2hvdWxkIGJlIGRlbGV0ZWQuXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8UHJlcGFyZWRJdGVtPiBUaGUgdXBkYXRlZCBwcmVwYXJlZCBpdGVtXG4gICAqL1xuICBwdWJsaWMgZGVsZXRlUHJlcGFyZWRJdGVtQ29udGVudChwcmVwYXJlZEl0ZW1JZDogc3RyaW5nLCBpbmRleD86IG51bWJlcik6IE9ic2VydmFibGU8UHJlcGFyZWRJdGVtPiB7XG4gICAgY29uc3QgdXJsID0gYC9wcmVwYXJlLyR7cHJlcGFyZWRJdGVtSWR9L2NvbnRlbnRgICsgKGluZGV4ICE9PSB1bmRlZmluZWQgPyBgP2luZGV4PSR7aW5kZXh9YCA6ICcnKTtcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXG4gICAgICAuZGVsKHVybClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAocmVzID0+IG5ldyBQcmVwYXJlZEl0ZW0ocmVzKSlcbiAgICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -2877,7 +2877,7 @@ class PrepareService {
2877
2877
  * @returns Observable<any>
2878
2878
  */
2879
2879
  uploadContent(preparedItemId, file) {
2880
- const uri = `${this.backend.getServiceBase()}/prepare/${preparedItemId}/content.json?form=true&contentmeta=true`;
2880
+ const uri = `${this.backend.getBaseWithContext(this.backend.getServiceBase())}/prepare/${preparedItemId}/content.json?form=true&contentmeta=true`;
2881
2881
  return this.uploadService
2882
2882
  .upload(uri, [file])
2883
2883
  .pipe(
@@ -2913,7 +2913,7 @@ class PrepareService {
2913
2913
  *
2914
2914
  * @type string
2915
2915
  */
2916
- uri = this.backend.getServiceBase() + this.createPreparedItemPostUrl({
2916
+ uri = this.backend.getBaseWithContext(this.backend.getServiceBase()) + this.createPreparedItemPostUrl({
2917
2917
  parentId: null,
2918
2918
  createMany: !useBatchUpload
2919
2919
  });
@@ -2923,7 +2923,7 @@ class PrepareService {
2923
2923
  * upload to dms object, means adding or replacing content file
2924
2924
  */
2925
2925
  const { referenceObject } = uploadTarget;
2926
- uri = `${this.backend.getServiceBase()}/dms/${referenceObject.id}/contents?type=${referenceObject.type.name}`;
2926
+ uri = `${this.backend.getBaseWithContext(this.backend.getServiceBase())}/dms/${referenceObject.id}/contents?type=${referenceObject.type.name}`;
2927
2927
  }
2928
2928
  else if (uploadTarget.type === UploadTarget.CONTEXT || uploadTarget.type === UploadTarget.CONTEXT_TREE) {
2929
2929
  /**
@@ -2933,7 +2933,7 @@ class PrepareService {
2933
2933
  *
2934
2934
  * @type string
2935
2935
  */
2936
- uri = this.backend.getServiceBase() + this.createPreparedItemPostUrl({
2936
+ uri = this.backend.getBaseWithContext(this.backend.getServiceBase()) + this.createPreparedItemPostUrl({
2937
2937
  parentId: uploadTarget.referenceObject.id,
2938
2938
  createMany: !useBatchUpload,
2939
2939
  childType: uploadTarget.subFolder && uploadTarget.subFolder.data.type ? uploadTarget.subFolder.data.type : null