@sumaris-net/ngx-components 18.23.13 → 18.23.14

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.
@@ -189,4 +189,4 @@ export { UserSettings };
189
189
  export function accountToString(data) {
190
190
  return (data && ((data.firstName && data.firstName + ' ') || '') + (data.lastName || '')) || '';
191
191
  }
192
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9zZXJ2aWNlcy9tb2RlbC9hY2NvdW50Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQW9CLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkUsT0FBTyxFQUFFLE1BQU0sRUFBeUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV6QyxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBdUIsd0JBQXdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNqRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUU1RTs7R0FFRztBQUNILFdBQVc7QUFFSixJQUFNLE9BQU8sR0FBYixNQUFNLE9BQVEsU0FBUSxNQUFlOztJQUMxQyxNQUFNLENBQUMsVUFBVSxDQUF1QztJQUV4RCxRQUFRLEdBQWlCLElBQUksQ0FBQztJQUM5QixNQUFNLEdBQWdCLEVBQUUsQ0FBQztJQUV6QjtRQUNFLEtBQUssQ0FBQyxTQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUE0QjtRQUNuQyxNQUFNLE1BQU0sR0FBUSxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyw0Q0FBNEMsRUFBRSxDQUFDLENBQUM7UUFDNUcsTUFBTSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFB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LENBQUM7QUFDbEcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvY2FsU2V0dGluZ3MgfSBmcm9tICcuL3NldHRpbmdzLm1vZGVsJztcbmltcG9ydCB7IFBlcnNvbiwgUGVyc29uVXRpbHMsIFVzZXJQcm9maWxlTGFiZWwgfSBmcm9tICcuL3BlcnNvbi5tb2RlbCc7XG5pbXBvcnQgeyBFbnRpdHksIEVudGl0eUFzT2JqZWN0T3B0aW9ucyB9IGZyb20gJy4vZW50aXR5Lm1vZGVsJztcbmltcG9ydCB7IEVudGl0eUNsYXNzIH0gZnJvbSAnLi9lbnRpdHkuZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBTdGF0dXNJZHMgfSBmcm9tICcuL21vZGVsLmVudW0nO1xuaW1wb3J0IHsgTGF0TG9uZ1BhdHRlcm4gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvbWF0ZXJpYWwvbGF0bG9uZy9sYXRsb25nLnV0aWxzJztcbmltcG9ydCB7IGVxdWFscywgaXNOaWwsIGlzTm90RW1wdHlBcnJheSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9mdW5jdGlvbnMnO1xuaW1wb3J0IHsgVXNlclRva2VuIH0gZnJvbSAnLi90b2tlbi5tb2RlbCc7XG5pbXBvcnQgeyBGb3JtRmllbGREZWZpbml0aW9uLCBGb3JtRmllbGREZWZpbml0aW9uVXRpbHMgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZm9ybS9maWVsZC5tb2RlbCc7XG5pbXBvcnQgeyBBcHBQcm9wZXJ0aWVzVXRpbHMgfSBmcm9tICcuLi8uLi9mb3JtL3Byb3BlcnRpZXMvcHJvcGVydGllcy51dGlscyc7XG5cbi8qKlxuICogQSB1c2VyIGFjY291bnRcbiAqL1xuLy8gQGR5bmFtaWNcbkBFbnRpdHlDbGFzcyh7IHR5cGVuYW1lOiAnQWNjb3VudFZPJyB9KVxuZXhwb3J0IGNsYXNzIEFjY291bnQgZXh0ZW5kcyBQZXJzb248QWNjb3VudD4ge1xuICBzdGF0aWMgZnJvbU9iamVjdDogKHNvdXJjZTogYW55LCBvcHRzPzogYW55KSA9PiBBY2NvdW50O1xuXG4gIHNldHRpbmdzOiBVc2VyU2V0dGluZ3MgPSBudWxsO1xuICB0b2tlbnM6IFVzZXJUb2tlbltdID0gW107XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoQWNjb3VudC5UWVBFTkFNRSk7XG4gIH1cblxuICBhc09iamVjdChvcHRzPzogRW50aXR5QXNPYmplY3RPcHRpb25zKTogYW55IHtcbiAgICBjb25zdCB0YXJnZXQ6IGFueSA9IHN1cGVyLmFzT2JqZWN0KHsgLi4ub3B0cywgbWluaWZ5OiBmYWxzZSAvKmRpc2FibGUgUGVyc29uIG1pbmlmeSAodG9vIHJlc3RyaWN0aXZlKSAqLyB9KTtcbiAgICB0YXJnZXQuc2V0dGluZ3MgPSB0aGlzLnNldHRpbmdzPy5hc09iamVjdChvcHRzKTtcbiAgICB0YXJnZXQudG9rZW5zID0gdGhpcy50b2tlbnM/Lm1hcCgodmFsdWUpID0+IHZhbHVlLmFzT2JqZWN0KG9wdHMpKTtcbiAgICBpZiAob3B0cz8ubWluaWZ5KSB7XG4gICAgICBkZWxldGUgdGFyZ2V0Lm1haW5Qcm9maWxlOyAvLyBOb3Qga25vd24gb24gc2VydmVyXG4gICAgfVxuICAgIHJldHVybiB0YXJnZXQ7XG4gIH1cblxuICBmcm9tT2JqZWN0KHNvdXJjZTogYW55KSB7XG4gICAgc3VwZXIuZnJvbU9iamVjdChzb3VyY2UpO1xuICAgIHRoaXMuc2V0dGluZ3MgPSBzb3VyY2Uuc2V0dGluZ3MgJiYgVXNlclNldHRpbmdzLmZyb21PYmplY3Qoc291cmNlLnNldHRpbmdzKTtcbiAgICB0aGlzLnRva2VucyA9IHNvdXJjZS50b2tlbnM/Lm1hcCgodmFsdWUpID0+IFVzZXJUb2tlbi5mcm9tT2JqZWN0KHZhbHVlKSkgfHwgW107XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydCBpbnRvIGEgUGVyc29uLiBUaGlzIHdpbGwgZmlsbCBfX3R5cGVuYW1lIHdpdGggYSByaWdodCB2YWx1ZSwgZm9yIGRhdGEgY2FjaGVcbiAgICovXG4gIGFzUGVyc29uKCk6IFBlcnNvbiB7XG4gICAgY29uc3QgcGVyc29uID0gUGVyc29uLmZyb21PYmplY3QoXG4gICAgICB0aGlzLmFzT2JqZWN0KHtcbiAgICAgICAga2VlcFR5cGVuYW1lOiB0cnVlLCAvLyBUaGlzIGlzIG5lZWQgZm9yIHRoZSBkZXBhcnRtZW50IG9iamVjdFxuICAgICAgfSlcbiAgICApO1xuICAgIHBlcnNvbi5fX3R5cGVuYW1lID0gUGVyc29uLlRZUEVOQU1FOyAvLyBEbyBub3Qga2VlcCBBY2NvdW50Vk8gYXMgdHlwZW5hbWVcbiAgICByZXR1cm4gcGVyc29uO1xuICB9XG5cbiAgZ2V0IGRpc3BsYXlOYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGFjY291bnRUb1N0cmluZyh0aGlzKTtcbiAgfVxufVxuXG5leHBvcnQgdHlwZSBBY2NvdW50Vmlld05hbWUgPSAncmVnaXN0cmF0aW9uJyB8ICdhY2NvdW50JyB8ICd1c2VycycgfCAndXNlcnNGaWx0ZXInOyAvLyB8IHN0cmluZztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFjY291bnRVdGlscyB7XG4gIHN0YXRpYyBhY2NvdW50VG9TdHJpbmcgPSBhY2NvdW50VG9TdHJpbmc7XG5cbiAgc3RhdGljIGhhc01pblByb2ZpbGUoYWNjb3VudDogQWNjb3VudCB8IG51bGwsIHVzZXJQcm9maWxlOiBVc2VyUHJvZmlsZUxhYmVsKTogYm9vbGVhbiB7XG4gICAgLy8gc2hvdWxkIGJlIGxvZ2luLCBhbmQgc3RhdHVzIEVOQUJMRSBvciBURU1QT1JBUllcbiAgICBpZiAoIWFjY291bnQgfHwgIWFjY291bnQucHVia2V5IHx8IChhY2NvdW50LnN0YXR1c0lkICE9PSBTdGF0dXNJZHMuRU5BQkxFICYmIGFjY291bnQuc3RhdHVzSWQgIT09IFN0YXR1c0lkcy5URU1QT1JBUlkpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiBQZXJzb25VdGlscy5oYXNVcHBlck9yRXF1YWxzUHJvZmlsZShhY2NvdW50LnByb2ZpbGVzLCB1c2VyUHJvZmlsZSk7XG4gIH1cblxuICBzdGF0aWMgaGFzRXhhY3RQcm9maWxlKGFjY291bnQ6IEFjY291bnQgfCBudWxsLCBsYWJlbDogVXNlclByb2ZpbGVMYWJlbCk6IGJvb2xlYW4ge1xuICAgIC8vIHNob3VsZCBiZSBsb2dpbiwgYW5kIHN0YXR1cyBFTkFCTEUgb3IgVEVNUE9SQVJZXG4gICAgaWYgKCFhY2NvdW50IHx8ICFhY2NvdW50LnB1YmtleSB8fCAoYWNjb3VudC5zdGF0dXNJZCAhPT0gU3RhdHVzSWRzLkVOQUJMRSAmJiBhY2NvdW50LnN0YXR1c0lkICE9PSBTdGF0dXNJZHMuVEVNUE9SQVJZKSkgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiBhY2NvdW50LnByb2ZpbGVzLnNvbWUoKHByb2ZpbGUpID0+IHByb2ZpbGUgPT09IGxhYmVsKTtcbiAgfVxuXG4gIHN0YXRpYyBoYXNQcm9maWxlQW5kSXNFbmFibGUoYWNjb3VudDogQWNjb3VudCB8IG51bGwsIHVzZXJQcm9maWxlOiBVc2VyUHJvZmlsZUxhYmVsKTogYm9vbGVhbiB7XG4gICAgLy8gc2hvdWxkIGJlIGxvZ2luLCBhbmQgc3RhdHVzIEVOQUJMRVxuICAgIGlmICghYWNjb3VudCB8fCAhYWNjb3VudC5wdWJrZXkgfHwgYWNjb3VudC5zdGF0dXNJZCAhPT0gU3RhdHVzSWRzLkVOQUJMRSkgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiBQZXJzb25VdGlscy5oYXNVcHBlck9yRXF1YWxzUHJvZmlsZShhY2NvdW50LnByb2ZpbGVzLCB1c2VyUHJvZmlsZSk7XG4gIH1cblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIGFuIGFkZGl0aW9uYWwgZmllbGQgaXMgZW5hYmxlZCBmb3IgYSBwYXJ0aWN1bGFyIGFjY291bnQgVUkgcGFydCAoPXRoZSBtZXRhIGtleSkuXG4gICAqXG4gICAqIEBwYXJhbSB7Rm9ybUZpZWxkRGVmaW5pdGlvbn0gZmllbGQgLSBUaGUgZmllbGQgZGVmaW5pdGlvbiBvYmplY3QuXG4gICAqIEBwYXJhbSB7QWNjb3VudFZpZXdOYW1lfSB2aWV3TmFtZSAtIFRoZSBhY2NvdW50IHZpZXcsIHRvIGNoZWNrIHRoZSBmaWVsZCdzIHN0YXR1cy5cbiAgICogQHJldHVybiB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGZpZWxkIGlzIGVuYWJsZWQgZm9yIHRoZSBnaXZlbiBhY2NvdW50IHZpZXcsIG90aGVyd2lzZSBgZmFsc2VgLlxuICAgKi9cbiAgc3RhdGljIGlzRmllbGRFbmFibGVGb3IoZmllbGQ6IEZvcm1GaWVsZERlZmluaXRpb24sIHZpZXdOYW1lOiBBY2NvdW50Vmlld05hbWUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gRm9ybUZpZWxkRGVmaW5pdGlvblV0aWxzLmlzRmllbGRFbmFibGVGb3IoZmllbGQsIHZpZXdOYW1lKTtcbiAgfVxuXG4gIHN0YXRpYyBpc0ZpZWxkVmlzaWJsZUZvcihmaWVsZDogRm9ybUZpZWxkRGVmaW5pdGlvbiwgdmlld05hbWU6IEFjY291bnRWaWV3TmFtZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBGb3JtRmllbGREZWZpbml0aW9uVXRpbHMuaXNGaWVsZFZpc2libGVGb3IoZmllbGQsIHZpZXdOYW1lKTtcbiAgfVxufVxuXG4vLyBAZHluYW1pY1xuQEVudGl0eUNsYXNzKHsgdHlwZW5hbWU6ICdVc2VyU2V0dGluZ3NWTycgfSlcbmV4cG9ydCBjbGFzcyBVc2VyU2V0dGluZ3MgZXh0ZW5kcyBFbnRpdHk8VXNlclNldHRpbmdzPiB7XG4gIHN0YXRpYyBTRVRUSU5HU19QUk9QRVJUSUVTID0gWzxrZXlvZiBVc2VyU2V0dGluZ3M+J2xvY2FsZScsIDxrZXlvZiBVc2VyU2V0dGluZ3M+J2xhdExvbmdGb3JtYXQnXSBhcyBzdHJpbmdbXTtcbiAgc3RhdGljIGZyb21PYmplY3Q6IChzb3VyY2U6IGFueSwgb3B0cz86IGFueSkgPT4gVXNlclNldHRpbmdzO1xuXG4gIGxvY2FsZTogc3RyaW5nO1xuICBsYXRMb25nRm9ybWF0OiBMYXRMb25nUGF0dGVybjtcbiAgY29udGVudDogYW55O1xuICBub25jZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKFVzZXJTZXR0aW5ncy5UWVBFTkFNRSk7XG4gIH1cblxuICBhc09iamVjdChvcHRzPzogRW50aXR5QXNPYmplY3RPcHRpb25zKTogYW55IHtcbiAgICBjb25zdCB0YXJnZXQgPSBzdXBlci5hc09iamVjdChvcHRzKTtcbiAgICBpZiAob3B0cz8ubWluaWZ5KSB7XG4gICAgICAvLyBTdHJpbmdpZnkgY29udGVudFxuICAgICAgdGFyZ2V0LmNvbnRlbnQgPSB0aGlzLmNvbnRlbnQgPyBKU09OLnN0cmluZ2lmeSh0aGlzLmNvbnRlbnQpIDogdW5kZWZpbmVkO1xuICAgIH1cbiAgICByZXR1cm4gdGFyZ2V0O1xuICB9XG5cbiAgZnJvbU9iamVjdChzb3VyY2U6IGFueSwgb3B0cz86IGFueSkge1xuICAgIHN1cGVyLmZyb21PYmplY3Qoc291cmNlKTtcbiAgICB0aGlzLmxvY2FsZSA9IHNvdXJjZS5sb2NhbGU7XG4gICAgdGhpcy5sYXRMb25nRm9ybWF0ID0gc291cmNlLmxhdExvbmdGb3JtYXQgYXMgTGF0TG9uZ1BhdHRlcm47XG4gICAgaWYgKGlzTmlsKHNvdXJjZS5jb250ZW50KSB8fCB0eXBlb2Ygc291cmNlLmNvbnRlbnQgPT09ICdvYmplY3QnKSB7XG4gICAgICB0aGlzLmNvbnRlbnQgPSBzb3VyY2UuY29udGVudCB8fCB7fTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb250ZW50ID0gKHNvdXJjZS5jb250ZW50ICYmIEpTT04ucGFyc2Uoc291cmNlLmNvbnRlbnQpKSB8fCB7fTtcbiAgICB9XG4gICAgdGhpcy5ub25jZSA9IHNvdXJjZS5ub25jZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXJnZXMgdGhlIGdpdmVuIHNvdXJjZSBvYmplY3QgaW50byB0aGUgY3VycmVudCBpbnN0YW5jZS5cbiAgICpcbiAgICogQHBhcmFtIHtTfSBzb3VyY2UgLSBUaGUgc291cmNlIG9iamVjdCBjb250YWluaW5nIHByb3BlcnRpZXMgdG8gbWVyZ2UuXG4gICAqIEBwYXJhbSB7QXJyYXk8a2V5b2YgUyB8IHN0cmluZyB8IG51bWJlcj59IFtpbmNsdWRlZFByb3BlcnRpZXNdIC0gT3B0aW9uYWwgYXJyYXkgb2YgcHJvcGVydHkga2V5cyB0byBiZSBtZXJnZWQgaW50byB0aGUgY29udGVudCBtYXAuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW3Jlc2V0Q29udGVudF0gLSBPcHRpb25hbCBmbGFnIHRvIHJlc2V0IGV4aXN0aW5nIGNvbnRlbnQuIEZhbHNlIGJ5IGRlZmF1bHRcbiAgICogQHJldHVybiB7Ym9vbGVhbn0gLSBSZXR1cm5zIHRydWUgaWYgYW55IGNoYW5nZXMgd2VyZSBtYWRlOyBvdGhlcndpc2UsIGZhbHNlLlxuICAgKi9cbiAgbWVyZ2U8UyA9IExvY2FsU2V0dGluZ3M+KHNvdXJjZTogUywgaW5jbHVkZWRQcm9wZXJ0aWVzOiAoa2V5b2YgUyB8IHN0cmluZyB8IG51bWJlcilbXSwgcmVzZXRDb250ZW50PzogYm9vbGVhbik6IGJvb2xlYW4ge1xuICAgIGlmICghc291cmNlKSByZXR1cm47IC8vIFNraXBcblxuICAgIC8vIFJlc2V0IG9yIGluaXQgY29udGVudFxuICAgIHRoaXMuY29udGVudCA9IHJlc2V0Q29udGVudCA/IHt9IDogdGhpcy5jb250ZW50IHx8IHt9O1xuICAgIGxldCBoYXNDaGFuZ2VzID0gZmFsc2U7XG5cbiAgICAvLyBGb3IgZWFjaCBwcm9wZXJ0eSBvZiBzb3VyY2Ugb2JqZWN0XG4gICAgT2JqZWN0LmtleXMoc291cmNlKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIC8vIElmIHByb3BlcnR5IGV4aXN0cyBpbiBVc2VyU2V0dGluZ3MgY2xhc3M6IHN0b3JlIGl0IGRpcmVjdGx5XG4gICAgICBpZiAoVXNlclNldHRpbmdzLlNFVFRJTkdTX1BST1BFUlRJRVMuaW5jbHVkZXMoa2V5KSkge1xuICAgICAgICBpZiAoIWVxdWFscyh0aGlzW2tleV0sIHNvdXJjZVtrZXldKSkge1xuICAgICAgICAgIHRoaXNba2V5XSA9IHNvdXJjZVtrZXldO1xuICAgICAgICAgIGhhc0NoYW5nZXMgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvLyBFbHNlLCBzdG9yZSBwcm9wZXJ0eSBpbnRvIHRoZSAnY29udGVudCcgbWFwXG4gICAgICBlbHNlIGlmIChpbmNsdWRlZFByb3BlcnRpZXMgJiYgaW5jbHVkZWRQcm9wZXJ0aWVzLmluY2x1ZGVzKGtleSBhcyBrZXlvZiBTKSkge1xuICAgICAgICBjb25zdCBzb3VyY2VWYWx1ZSA9IHNvdXJjZVtrZXldO1xuICAgICAgICBpZiAoIWVxdWFscyh0aGlzLmNvbnRlbnRba2V5XSwgc291cmNlVmFsdWUpKSB7XG4gICAgICAgICAgaWYgKHR5cGVvZiBzb3VyY2VWYWx1ZSA9PT0gJ29iamVjdCcgJiYgc291cmNlVmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuY29udGVudFtrZXldID0geyAuLi50aGlzLmNvbnRlbnRba2V5XSwgLi4uc291cmNlVmFsdWUgfTsgLy8gTWVyZ2Ugb2JqZWN0XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY29udGVudFtrZXldID0gc291cmNlVmFsdWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGhhc0NoYW5nZXMgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGhhc0NoYW5nZXM7XG4gIH1cblxuICAvKipcbiAgICogVHJhbnNmb3JtIHVzZXIgc2V0dGluZ3MgaW50byBsb2NhbCBzZXR0aW5nc1xuICAgKiBAcGFyYW0gb3B0c1xuICAgKi9cbiAgYXNMb2NhbFNldHRpbmdzKG9wdHM/OiB7IGRlZmluaXRpb25zPzogRm9ybUZpZWxkRGVmaW5pdGlvbltdIH0pOiBQYXJ0aWFsPExvY2FsU2V0dGluZ3M+IHtcbiAgICBjb25zdCB0YXJnZXQgPSA8TG9jYWxTZXR0aW5ncz57fTtcbiAgICBVc2VyU2V0dGluZ3MuU0VUVElOR1NfUFJPUEVSVElFUy5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIHRhcmdldFtrZXldID0gdGhpc1trZXldO1xuICAgIH0pO1xuICAgIE9iamVjdC5rZXlzKHRoaXMuY29udGVudCkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICB0YXJnZXRba2V5XSA9IHRoaXMuY29udGVudFtrZXldO1xuICAgIH0pO1xuICAgIC8vIFNhbml0aXplIHByb3BlcnRpZXNcbiAgICBjb25zdCBpbmNsdWRlZEtleXMgPSBvcHRzPy5kZWZpbml0aW9ucz8ubWFwKChkZWYpID0+IGRlZi5rZXkpIHx8IFtdO1xuICAgIGlmIChpc05vdEVtcHR5QXJyYXkoaW5jbHVkZWRLZXlzKSkge1xuICAgICAgdGFyZ2V0LnByb3BlcnRpZXMgPSBBcHBQcm9wZXJ0aWVzVXRpbHMuc2FuaXRpemUodGFyZ2V0LnByb3BlcnRpZXMsIHsgaW5jbHVkZWRLZXlzIH0pO1xuICAgIH1cbiAgICAvLyBDbGVhciBwcm9wZXJ0aWVzIGlmIGVtcHR5LCB0byBhdm9pZCB0byByZXNldCB0aGUgZXhpc3RpbmcgcHJvcGVydGllcyAtIFNlZSBpc3N1ZSBzdW1hcmlzLWFwcCM4OTdcbiAgICBpZiAoT2JqZWN0LmtleXModGFyZ2V0LnByb3BlcnRpZXMgfHwge30pLmxlbmd0aCA9PT0gMCkge1xuICAgICAgZGVsZXRlIHRhcmdldC5wcm9wZXJ0aWVzO1xuICAgIH1cbiAgICByZXR1cm4gdGFyZ2V0O1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhY2NvdW50VG9TdHJpbmcoZGF0YTogQWNjb3VudCk6IHN0cmluZyB7XG4gIHJldHVybiAoZGF0YSAmJiAoKGRhdGEuZmlyc3ROYW1lICYmIGRhdGEuZmlyc3ROYW1lICsgJyAnKSB8fCAnJykgKyAoZGF0YS5sYXN0TmFtZSB8fCAnJykpIHx8ICcnO1xufVxuIl19
192
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9zZXJ2aWNlcy9tb2RlbC9hY2NvdW50Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQW9CLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkUsT0FBTyxFQUFFLE1BQU0sRUFBeUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV6QyxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBdUIsd0JBQXdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNqRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUU1RTs7R0FFRztBQUNILFdBQVc7QUFFSixJQUFNLE9BQU8sR0FBYixNQUFNLE9BQStDLFNBQVEsTUFBUzs7SUFDM0UsTUFBTSxDQUFDLFVBQVUsQ0FBdUM7SUFFeEQsUUFBUSxHQUFpQixJQUFJLENBQUM7SUFDOUIsTUFBTSxHQUFnQixFQUFFLENBQUM7SUFFekI7UUFDRSxLQUFLLENBQUMsU0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxRQUFRLENBQUMsSUFBNEI7UUFDbkMsTUFBTSxNQUFNLEdBQVEsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsNENBQTRDLEVBQUUsQ0FBQyxDQUFDO1FBQzVHLE1BQU0sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFB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RSxDQUFDO0FBQ2xHLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2NhbFNldHRpbmdzIH0gZnJvbSAnLi9zZXR0aW5ncy5tb2RlbCc7XG5pbXBvcnQgeyBQZXJzb24sIFBlcnNvblV0aWxzLCBVc2VyUHJvZmlsZUxhYmVsIH0gZnJvbSAnLi9wZXJzb24ubW9kZWwnO1xuaW1wb3J0IHsgRW50aXR5LCBFbnRpdHlBc09iamVjdE9wdGlvbnMgfSBmcm9tICcuL2VudGl0eS5tb2RlbCc7XG5pbXBvcnQgeyBFbnRpdHlDbGFzcyB9IGZyb20gJy4vZW50aXR5LmRlY29yYXRvcnMnO1xuaW1wb3J0IHsgU3RhdHVzSWRzIH0gZnJvbSAnLi9tb2RlbC5lbnVtJztcbmltcG9ydCB7IExhdExvbmdQYXR0ZXJuIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL21hdGVyaWFsL2xhdGxvbmcvbGF0bG9uZy51dGlscyc7XG5pbXBvcnQgeyBlcXVhbHMsIGlzTmlsLCBpc05vdEVtcHR5QXJyYXkgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZnVuY3Rpb25zJztcbmltcG9ydCB7IFVzZXJUb2tlbiB9IGZyb20gJy4vdG9rZW4ubW9kZWwnO1xuaW1wb3J0IHsgRm9ybUZpZWxkRGVmaW5pdGlvbiwgRm9ybUZpZWxkRGVmaW5pdGlvblV0aWxzIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2Zvcm0vZmllbGQubW9kZWwnO1xuaW1wb3J0IHsgQXBwUHJvcGVydGllc1V0aWxzIH0gZnJvbSAnLi4vLi4vZm9ybS9wcm9wZXJ0aWVzL3Byb3BlcnRpZXMudXRpbHMnO1xuXG4vKipcbiAqIEEgdXNlciBhY2NvdW50XG4gKi9cbi8vIEBkeW5hbWljXG5ARW50aXR5Q2xhc3MoeyB0eXBlbmFtZTogJ0FjY291bnRWTycgfSlcbmV4cG9ydCBjbGFzcyBBY2NvdW50PFQgZXh0ZW5kcyBBY2NvdW50PGFueT4gPSBBY2NvdW50PGFueT4+IGV4dGVuZHMgUGVyc29uPFQ+IHtcbiAgc3RhdGljIGZyb21PYmplY3Q6IChzb3VyY2U6IGFueSwgb3B0cz86IGFueSkgPT4gQWNjb3VudDtcblxuICBzZXR0aW5nczogVXNlclNldHRpbmdzID0gbnVsbDtcbiAgdG9rZW5zOiBVc2VyVG9rZW5bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKEFjY291bnQuVFlQRU5BTUUpO1xuICB9XG5cbiAgYXNPYmplY3Qob3B0cz86IEVudGl0eUFzT2JqZWN0T3B0aW9ucyk6IGFueSB7XG4gICAgY29uc3QgdGFyZ2V0OiBhbnkgPSBzdXBlci5hc09iamVjdCh7IC4uLm9wdHMsIG1pbmlmeTogZmFsc2UgLypkaXNhYmxlIFBlcnNvbiBtaW5pZnkgKHRvbyByZXN0cmljdGl2ZSkgKi8gfSk7XG4gICAgdGFyZ2V0LnNldHRpbmdzID0gdGhpcy5zZXR0aW5ncz8uYXNPYmplY3Qob3B0cyk7XG4gICAgdGFyZ2V0LnRva2VucyA9IHRoaXMudG9rZW5zPy5tYXAoKHZhbHVlKSA9PiB2YWx1ZS5hc09iamVjdChvcHRzKSk7XG4gICAgaWYgKG9wdHM/Lm1pbmlmeSkge1xuICAgICAgZGVsZXRlIHRhcmdldC5tYWluUHJvZmlsZTsgLy8gTm90IGtub3duIG9uIHNlcnZlclxuICAgIH1cbiAgICByZXR1cm4gdGFyZ2V0O1xuICB9XG5cbiAgZnJvbU9iamVjdChzb3VyY2U6IGFueSkge1xuICAgIHN1cGVyLmZyb21PYmplY3Qoc291cmNlKTtcbiAgICB0aGlzLnNldHRpbmdzID0gc291cmNlLnNldHRpbmdzICYmIFVzZXJTZXR0aW5ncy5mcm9tT2JqZWN0KHNvdXJjZS5zZXR0aW5ncyk7XG4gICAgdGhpcy50b2tlbnMgPSBzb3VyY2UudG9rZW5zPy5tYXAoKHZhbHVlKSA9PiBVc2VyVG9rZW4uZnJvbU9iamVjdCh2YWx1ZSkpIHx8IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnQgaW50byBhIFBlcnNvbi4gVGhpcyB3aWxsIGZpbGwgX190eXBlbmFtZSB3aXRoIGEgcmlnaHQgdmFsdWUsIGZvciBkYXRhIGNhY2hlXG4gICAqL1xuICBhc1BlcnNvbigpOiBQZXJzb24ge1xuICAgIGNvbnN0IHBlcnNvbiA9IFBlcnNvbi5mcm9tT2JqZWN0KFxuICAgICAgdGhpcy5hc09iamVjdCh7XG4gICAgICAgIGtlZXBUeXBlbmFtZTogdHJ1ZSwgLy8gVGhpcyBpcyBuZWVkIGZvciB0aGUgZGVwYXJ0bWVudCBvYmplY3RcbiAgICAgIH0pXG4gICAgKTtcbiAgICBwZXJzb24uX190eXBlbmFtZSA9IFBlcnNvbi5UWVBFTkFNRTsgLy8gRG8gbm90IGtlZXAgQWNjb3VudFZPIGFzIHR5cGVuYW1lXG4gICAgcmV0dXJuIHBlcnNvbjtcbiAgfVxuXG4gIGdldCBkaXNwbGF5TmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBhY2NvdW50VG9TdHJpbmcodGhpcyk7XG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgQWNjb3VudFZpZXdOYW1lID0gJ3JlZ2lzdHJhdGlvbicgfCAnYWNjb3VudCcgfCAndXNlcnMnIHwgJ3VzZXJzRmlsdGVyJzsgLy8gfCBzdHJpbmc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBY2NvdW50VXRpbHMge1xuICBzdGF0aWMgYWNjb3VudFRvU3RyaW5nID0gYWNjb3VudFRvU3RyaW5nO1xuXG4gIHN0YXRpYyBoYXNNaW5Qcm9maWxlKGFjY291bnQ6IEFjY291bnQgfCBudWxsLCB1c2VyUHJvZmlsZTogVXNlclByb2ZpbGVMYWJlbCk6IGJvb2xlYW4ge1xuICAgIC8vIHNob3VsZCBiZSBsb2dpbiwgYW5kIHN0YXR1cyBFTkFCTEUgb3IgVEVNUE9SQVJZXG4gICAgaWYgKCFhY2NvdW50IHx8ICFhY2NvdW50LnB1YmtleSB8fCAoYWNjb3VudC5zdGF0dXNJZCAhPT0gU3RhdHVzSWRzLkVOQUJMRSAmJiBhY2NvdW50LnN0YXR1c0lkICE9PSBTdGF0dXNJZHMuVEVNUE9SQVJZKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gUGVyc29uVXRpbHMuaGFzVXBwZXJPckVxdWFsc1Byb2ZpbGUoYWNjb3VudC5wcm9maWxlcywgdXNlclByb2ZpbGUpO1xuICB9XG5cbiAgc3RhdGljIGhhc0V4YWN0UHJvZmlsZShhY2NvdW50OiBBY2NvdW50IHwgbnVsbCwgbGFiZWw6IFVzZXJQcm9maWxlTGFiZWwpOiBib29sZWFuIHtcbiAgICAvLyBzaG91bGQgYmUgbG9naW4sIGFuZCBzdGF0dXMgRU5BQkxFIG9yIFRFTVBPUkFSWVxuICAgIGlmICghYWNjb3VudCB8fCAhYWNjb3VudC5wdWJrZXkgfHwgKGFjY291bnQuc3RhdHVzSWQgIT09IFN0YXR1c0lkcy5FTkFCTEUgJiYgYWNjb3VudC5zdGF0dXNJZCAhPT0gU3RhdHVzSWRzLlRFTVBPUkFSWSkpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gYWNjb3VudC5wcm9maWxlcy5zb21lKChwcm9maWxlKSA9PiBwcm9maWxlID09PSBsYWJlbCk7XG4gIH1cblxuICBzdGF0aWMgaGFzUHJvZmlsZUFuZElzRW5hYmxlKGFjY291bnQ6IEFjY291bnQgfCBudWxsLCB1c2VyUHJvZmlsZTogVXNlclByb2ZpbGVMYWJlbCk6IGJvb2xlYW4ge1xuICAgIC8vIHNob3VsZCBiZSBsb2dpbiwgYW5kIHN0YXR1cyBFTkFCTEVcbiAgICBpZiAoIWFjY291bnQgfHwgIWFjY291bnQucHVia2V5IHx8IGFjY291bnQuc3RhdHVzSWQgIT09IFN0YXR1c0lkcy5FTkFCTEUpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gUGVyc29uVXRpbHMuaGFzVXBwZXJPckVxdWFsc1Byb2ZpbGUoYWNjb3VudC5wcm9maWxlcywgdXNlclByb2ZpbGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgd2hldGhlciBhbiBhZGRpdGlvbmFsIGZpZWxkIGlzIGVuYWJsZWQgZm9yIGEgcGFydGljdWxhciBhY2NvdW50IFVJIHBhcnQgKD10aGUgbWV0YSBrZXkpLlxuICAgKlxuICAgKiBAcGFyYW0ge0Zvcm1GaWVsZERlZmluaXRpb259IGZpZWxkIC0gVGhlIGZpZWxkIGRlZmluaXRpb24gb2JqZWN0LlxuICAgKiBAcGFyYW0ge0FjY291bnRWaWV3TmFtZX0gdmlld05hbWUgLSBUaGUgYWNjb3VudCB2aWV3LCB0byBjaGVjayB0aGUgZmllbGQncyBzdGF0dXMuXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSBmaWVsZCBpcyBlbmFibGVkIGZvciB0aGUgZ2l2ZW4gYWNjb3VudCB2aWV3LCBvdGhlcndpc2UgYGZhbHNlYC5cbiAgICovXG4gIHN0YXRpYyBpc0ZpZWxkRW5hYmxlRm9yKGZpZWxkOiBGb3JtRmllbGREZWZpbml0aW9uLCB2aWV3TmFtZTogQWNjb3VudFZpZXdOYW1lKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIEZvcm1GaWVsZERlZmluaXRpb25VdGlscy5pc0ZpZWxkRW5hYmxlRm9yKGZpZWxkLCB2aWV3TmFtZSk7XG4gIH1cblxuICBzdGF0aWMgaXNGaWVsZFZpc2libGVGb3IoZmllbGQ6IEZvcm1GaWVsZERlZmluaXRpb24sIHZpZXdOYW1lOiBBY2NvdW50Vmlld05hbWUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gRm9ybUZpZWxkRGVmaW5pdGlvblV0aWxzLmlzRmllbGRWaXNpYmxlRm9yKGZpZWxkLCB2aWV3TmFtZSk7XG4gIH1cbn1cblxuLy8gQGR5bmFtaWNcbkBFbnRpdHlDbGFzcyh7IHR5cGVuYW1lOiAnVXNlclNldHRpbmdzVk8nIH0pXG5leHBvcnQgY2xhc3MgVXNlclNldHRpbmdzIGV4dGVuZHMgRW50aXR5PFVzZXJTZXR0aW5ncz4ge1xuICBzdGF0aWMgU0VUVElOR1NfUFJPUEVSVElFUyA9IFs8a2V5b2YgVXNlclNldHRpbmdzPidsb2NhbGUnLCA8a2V5b2YgVXNlclNldHRpbmdzPidsYXRMb25nRm9ybWF0J10gYXMgc3RyaW5nW107XG4gIHN0YXRpYyBmcm9tT2JqZWN0OiAoc291cmNlOiBhbnksIG9wdHM/OiBhbnkpID0+IFVzZXJTZXR0aW5ncztcblxuICBsb2NhbGU6IHN0cmluZztcbiAgbGF0TG9uZ0Zvcm1hdDogTGF0TG9uZ1BhdHRlcm47XG4gIGNvbnRlbnQ6IGFueTtcbiAgbm9uY2U6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihVc2VyU2V0dGluZ3MuVFlQRU5BTUUpO1xuICB9XG5cbiAgYXNPYmplY3Qob3B0cz86IEVudGl0eUFzT2JqZWN0T3B0aW9ucyk6IGFueSB7XG4gICAgY29uc3QgdGFyZ2V0ID0gc3VwZXIuYXNPYmplY3Qob3B0cyk7XG4gICAgaWYgKG9wdHM/Lm1pbmlmeSkge1xuICAgICAgLy8gU3RyaW5naWZ5IGNvbnRlbnRcbiAgICAgIHRhcmdldC5jb250ZW50ID0gdGhpcy5jb250ZW50ID8gSlNPTi5zdHJpbmdpZnkodGhpcy5jb250ZW50KSA6IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgcmV0dXJuIHRhcmdldDtcbiAgfVxuXG4gIGZyb21PYmplY3Qoc291cmNlOiBhbnksIG9wdHM/OiBhbnkpIHtcbiAgICBzdXBlci5mcm9tT2JqZWN0KHNvdXJjZSk7XG4gICAgdGhpcy5sb2NhbGUgPSBzb3VyY2UubG9jYWxlO1xuICAgIHRoaXMubGF0TG9uZ0Zvcm1hdCA9IHNvdXJjZS5sYXRMb25nRm9ybWF0IGFzIExhdExvbmdQYXR0ZXJuO1xuICAgIGlmIChpc05pbChzb3VyY2UuY29udGVudCkgfHwgdHlwZW9mIHNvdXJjZS5jb250ZW50ID09PSAnb2JqZWN0Jykge1xuICAgICAgdGhpcy5jb250ZW50ID0gc291cmNlLmNvbnRlbnQgfHwge307XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29udGVudCA9IChzb3VyY2UuY29udGVudCAmJiBKU09OLnBhcnNlKHNvdXJjZS5jb250ZW50KSkgfHwge307XG4gICAgfVxuICAgIHRoaXMubm9uY2UgPSBzb3VyY2Uubm9uY2U7XG4gIH1cblxuICAvKipcbiAgICogTWVyZ2VzIHRoZSBnaXZlbiBzb3VyY2Ugb2JqZWN0IGludG8gdGhlIGN1cnJlbnQgaW5zdGFuY2UuXG4gICAqXG4gICAqIEBwYXJhbSB7U30gc291cmNlIC0gVGhlIHNvdXJjZSBvYmplY3QgY29udGFpbmluZyBwcm9wZXJ0aWVzIHRvIG1lcmdlLlxuICAgKiBAcGFyYW0ge0FycmF5PGtleW9mIFMgfCBzdHJpbmcgfCBudW1iZXI+fSBbaW5jbHVkZWRQcm9wZXJ0aWVzXSAtIE9wdGlvbmFsIGFycmF5IG9mIHByb3BlcnR5IGtleXMgdG8gYmUgbWVyZ2VkIGludG8gdGhlIGNvbnRlbnQgbWFwLlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtyZXNldENvbnRlbnRdIC0gT3B0aW9uYWwgZmxhZyB0byByZXNldCBleGlzdGluZyBjb250ZW50LiBGYWxzZSBieSBkZWZhdWx0XG4gICAqIEByZXR1cm4ge2Jvb2xlYW59IC0gUmV0dXJucyB0cnVlIGlmIGFueSBjaGFuZ2VzIHdlcmUgbWFkZTsgb3RoZXJ3aXNlLCBmYWxzZS5cbiAgICovXG4gIG1lcmdlPFMgPSBMb2NhbFNldHRpbmdzPihzb3VyY2U6IFMsIGluY2x1ZGVkUHJvcGVydGllczogKGtleW9mIFMgfCBzdHJpbmcgfCBudW1iZXIpW10sIHJlc2V0Q29udGVudD86IGJvb2xlYW4pOiBib29sZWFuIHtcbiAgICBpZiAoIXNvdXJjZSkgcmV0dXJuOyAvLyBTa2lwXG5cbiAgICAvLyBSZXNldCBvciBpbml0IGNvbnRlbnRcbiAgICB0aGlzLmNvbnRlbnQgPSByZXNldENvbnRlbnQgPyB7fSA6IHRoaXMuY29udGVudCB8fCB7fTtcbiAgICBsZXQgaGFzQ2hhbmdlcyA9IGZhbHNlO1xuXG4gICAgLy8gRm9yIGVhY2ggcHJvcGVydHkgb2Ygc291cmNlIG9iamVjdFxuICAgIE9iamVjdC5rZXlzKHNvdXJjZSkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAvLyBJZiBwcm9wZXJ0eSBleGlzdHMgaW4gVXNlclNldHRpbmdzIGNsYXNzOiBzdG9yZSBpdCBkaXJlY3RseVxuICAgICAgaWYgKFVzZXJTZXR0aW5ncy5TRVRUSU5HU19QUk9QRVJUSUVTLmluY2x1ZGVzKGtleSkpIHtcbiAgICAgICAgaWYgKCFlcXVhbHModGhpc1trZXldLCBzb3VyY2Vba2V5XSkpIHtcbiAgICAgICAgICB0aGlzW2tleV0gPSBzb3VyY2Vba2V5XTtcbiAgICAgICAgICBoYXNDaGFuZ2VzID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy8gRWxzZSwgc3RvcmUgcHJvcGVydHkgaW50byB0aGUgJ2NvbnRlbnQnIG1hcFxuICAgICAgZWxzZSBpZiAoaW5jbHVkZWRQcm9wZXJ0aWVzICYmIGluY2x1ZGVkUHJvcGVydGllcy5pbmNsdWRlcyhrZXkgYXMga2V5b2YgUykpIHtcbiAgICAgICAgY29uc3Qgc291cmNlVmFsdWUgPSBzb3VyY2Vba2V5XTtcbiAgICAgICAgaWYgKCFlcXVhbHModGhpcy5jb250ZW50W2tleV0sIHNvdXJjZVZhbHVlKSkge1xuICAgICAgICAgIGlmICh0eXBlb2Ygc291cmNlVmFsdWUgPT09ICdvYmplY3QnICYmIHNvdXJjZVZhbHVlICE9PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRlbnRba2V5XSA9IHsgLi4udGhpcy5jb250ZW50W2tleV0sIC4uLnNvdXJjZVZhbHVlIH07IC8vIE1lcmdlIG9iamVjdFxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRlbnRba2V5XSA9IHNvdXJjZVZhbHVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBoYXNDaGFuZ2VzID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBoYXNDaGFuZ2VzO1xuICB9XG5cbiAgLyoqXG4gICAqIFRyYW5zZm9ybSB1c2VyIHNldHRpbmdzIGludG8gbG9jYWwgc2V0dGluZ3NcbiAgICogQHBhcmFtIG9wdHNcbiAgICovXG4gIGFzTG9jYWxTZXR0aW5ncyhvcHRzPzogeyBkZWZpbml0aW9ucz86IEZvcm1GaWVsZERlZmluaXRpb25bXSB9KTogUGFydGlhbDxMb2NhbFNldHRpbmdzPiB7XG4gICAgY29uc3QgdGFyZ2V0ID0gPExvY2FsU2V0dGluZ3M+e307XG4gICAgVXNlclNldHRpbmdzLlNFVFRJTkdTX1BST1BFUlRJRVMuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICB0YXJnZXRba2V5XSA9IHRoaXNba2V5XTtcbiAgICB9KTtcbiAgICBPYmplY3Qua2V5cyh0aGlzLmNvbnRlbnQpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgdGFyZ2V0W2tleV0gPSB0aGlzLmNvbnRlbnRba2V5XTtcbiAgICB9KTtcbiAgICAvLyBTYW5pdGl6ZSBwcm9wZXJ0aWVzXG4gICAgY29uc3QgaW5jbHVkZWRLZXlzID0gb3B0cz8uZGVmaW5pdGlvbnM/Lm1hcCgoZGVmKSA9PiBkZWYua2V5KSB8fCBbXTtcbiAgICBpZiAoaXNOb3RFbXB0eUFycmF5KGluY2x1ZGVkS2V5cykpIHtcbiAgICAgIHRhcmdldC5wcm9wZXJ0aWVzID0gQXBwUHJvcGVydGllc1V0aWxzLnNhbml0aXplKHRhcmdldC5wcm9wZXJ0aWVzLCB7IGluY2x1ZGVkS2V5cyB9KTtcbiAgICB9XG4gICAgLy8gQ2xlYXIgcHJvcGVydGllcyBpZiBlbXB0eSwgdG8gYXZvaWQgdG8gcmVzZXQgdGhlIGV4aXN0aW5nIHByb3BlcnRpZXMgLSBTZWUgaXNzdWUgc3VtYXJpcy1hcHAjODk3XG4gICAgaWYgKE9iamVjdC5rZXlzKHRhcmdldC5wcm9wZXJ0aWVzIHx8IHt9KS5sZW5ndGggPT09IDApIHtcbiAgICAgIGRlbGV0ZSB0YXJnZXQucHJvcGVydGllcztcbiAgICB9XG4gICAgcmV0dXJuIHRhcmdldDtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYWNjb3VudFRvU3RyaW5nKGRhdGE6IEFjY291bnQpOiBzdHJpbmcge1xuICByZXR1cm4gKGRhdGEgJiYgKChkYXRhLmZpcnN0TmFtZSAmJiBkYXRhLmZpcnN0TmFtZSArICcgJykgfHwgJycpICsgKGRhdGEubGFzdE5hbWUgfHwgJycpKSB8fCAnJztcbn1cbiJdfQ==
@@ -7,7 +7,7 @@ import { Message } from './message.model';
7
7
  import { MINIFY_ENTITY_FOR_POD } from '../../core/services/model/referential.model';
8
8
  import { Toasts } from '../../shared/toast/toasts';
9
9
  import { MessageModal } from './message.modal';
10
- import { PersonFragments } from '../../admin/users/testing/person.testing.sevice';
10
+ import { PersonFragments } from '../../admin/users/person.service';
11
11
  import * as i0 from "@angular/core";
12
12
  import * as i1 from "../../core/graphql/graphql.service";
13
13
  import * as i2 from "@ngx-translate/core";
@@ -195,4 +195,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
195
195
  type: Inject,
196
196
  args: [ENVIRONMENT]
197
197
  }] }] });
198
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zb2NpYWwvbWVzc2FnZS9tZXNzYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUlwRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNwRixPQUFPLEVBQWUsV0FBVyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDbkYsT0FBTyxFQUFFLE9BQU8sRUFBaUIsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNwRixPQUFPLEVBQW9CLE1BQU0sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxZQUFZLEVBQXVCLE1BQU0saUJBQWlCLENBQUM7QUFFcEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlEQUFpRCxDQUFDOzs7Ozs7QUFFbEYsTUFBTSxnQkFBZ0IsR0FBRztJQUN2QixPQUFPLEVBQUUsR0FBRyxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQlg7Q0FDRixDQUFDO0FBRUYsTUFBTSxPQUFPLEdBQUc7SUFDZCxJQUFJLEVBQUUsR0FBRyxDQUFBOzs7Ozs7TUFNTCxnQkFBZ0IsQ0FBQyxPQUFPO01BQ3hCLGVBQWUsQ0FBQyxXQUFXO01BQzNCLGVBQWUsQ0FBQyxZQUFZO0dBQy9CO0NBQ0YsQ0FBQztBQUNGLE1BQU0sU0FBUyxHQUFHO0lBQ2hCLElBQUksRUFBRSxHQUFHLENBQUE7Ozs7R0FJUjtJQUNELE1BQU0sRUFBRSxH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QUssQ0FBQyxxQ0FBcUMsRUFBRSxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFbEUsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELDZCQUE2QjtJQUVuQixLQUFLLENBQUMsU0FBUyxDQUFDLElBQXNCO1FBQzlDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDdkQsSUFBSSxFQUFFLE1BQU07WUFDWixPQUFPLEVBQUUsMEJBQTBCO1lBQ25DLEdBQUcsSUFBSTtTQUNSLENBQUMsQ0FBQztJQUNMLENBQUM7d0dBbklVLGNBQWMsOElBTUgsV0FBVzs0R0FOdEIsY0FBYyxjQURELE1BQU07OzRGQUNuQixjQUFjO2tCQUQxQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7MEJBTzdCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGdxbCB9IGZyb20gJ2Fwb2xsby1hbmd1bGFyJztcbmltcG9ydCB7IFNvY2lhbEVycm9yQ29kZXMgfSBmcm9tICcuLi9zb2NpYWwuZXJyb3JzJztcbmltcG9ydCB7IEdyYXBocWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9ncmFwaHFsL2dyYXBocWwuc2VydmljZSc7XG5pbXBvcnQgeyBNb2RhbENvbnRyb2xsZXIsIFRvYXN0Q29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEJhc2VHcmFwaHFsU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvYmFzZS1ncmFwaHFsLXNlcnZpY2UuY2xhc3MnO1xuaW1wb3J0IHsgRW52aXJvbm1lbnQsIEVOVklST05NRU5UIH0gZnJvbSAnLi4vLi4vLi4vZW52aXJvbm1lbnRzL2Vudmlyb25tZW50LmNsYXNzJztcbmltcG9ydCB7IE1lc3NhZ2UsIE1lc3NhZ2VGaWx0ZXIgfSBmcm9tICcuL21lc3NhZ2UubW9kZWwnO1xuaW1wb3J0IHsgTUlOSUZZX0VOVElUWV9GT1JfUE9EIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9tb2RlbC9yZWZlcmVudGlhbC5tb2RlbCc7XG5pbXBvcnQgeyBTaG93VG9hc3RPcHRpb25zLCBUb2FzdHMgfSBmcm9tICcuLi8uLi9zaGFyZWQvdG9hc3QvdG9hc3RzJztcbmltcG9ydCB7IE1lc3NhZ2VNb2RhbCwgTWVzc2FnZU1vZGFsT3B0aW9ucyB9IGZyb20gJy4vbWVzc2FnZS5tb2RhbCc7XG5pbXBvcnQgeyBPbWl0RnVuY3Rpb25zIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9tb2RlbC9lbnRpdHkubW9kZWwnO1xuaW1wb3J0IHsgUGVyc29uRnJhZ21lbnRzIH0gZnJvbSAnLi4vLi4vYWRtaW4vdXNlcnMvdGVzdGluZy9wZXJzb24udGVzdGluZy5zZXZpY2UnO1xuXG5jb25zdCBNZXNzYWdlRnJhZ21lbnRzID0ge1xuICBtZXNzYWdlOiBncWxgXG4gICAgZnJhZ21lbnQgTWVzc2FnZUZyYWdtZW50IG9uIE1lc3NhZ2VWTyB7XG4gICAgICBpZFxuICAgICAgc3ViamVjdFxuICAgICAgYm9keVxuICAgICAgdHlwZVxuICAgICAgcmVjaXBpZW50IHtcbiAgICAgICAgLi4uTGlnaHRQZXJzb25GcmFnbWVudFxuICAgICAgfVxuICAgICAgcmVjaXBpZW50cyB7XG4gICAgICAgIC4uLkxpZ2h0UGVyc29uRnJhZ21lbnRcbiAgICAgIH1cbiAgICAgIHJlY2lwaWVudEZpbHRlciB7XG4gICAgICAgIC4uLlBlcnNvbkZpbHRlckZyYWdtZW50XG4gICAgICB9XG4gICAgICBpc3N1ZXIge1xuICAgICAgICAuLi5MaWdodFBlcnNvbkZyYWdtZW50XG4gICAgICB9XG4gICAgICBjcmVhdGlvbkRhdGVcbiAgICAgIHVwZGF0ZURhdGVcbiAgICB9XG4gIGAsXG59O1xuXG5jb25zdCBRdWVyaWVzID0ge1xuICBsb2FkOiBncWxgXG4gICAgbXV0YXRpb24gTG9hZE1lc3NhZ2UoJGlkOiBJbnQhKSB7XG4gICAgICBkYXRhOiBtZXNzYWdlKGlkOiAkaWQpIHtcbiAgICAgICAgLi4uTWVzc2FnZUZyYWdtZW50XG4gICAgICB9XG4gICAgfVxuICAgICR7TWVzc2FnZUZyYWdtZW50cy5tZXNzYWdlfVxuICAgICR7UGVyc29uRnJhZ21lbnRzLmxpZ2h0UGVyc29ufVxuICAgICR7UGVyc29uRnJhZ21lbnRzLnBlcnNvbkZpbHRlcn1cbiAgYCxcbn07XG5jb25zdCBNdXRhdGlvbnMgPSB7XG4gIHNlbmQ6IGdxbGBcbiAgICBtdXRhdGlvbiBTZW5kTWVzc2FnZSgkZGF0YTogTWVzc2FnZVZPSW5wdXQpIHtcbiAgICAgIGRvbmU6IHNlbmRNZXNzYWdlKG1lc3NhZ2U6ICRkYXRhKVxuICAgIH1cbiAgYCxcbiAgZGVsZXRlOiBncWxgXG4gICAgbXV0YXRpb24gRGVsZXRlTWVzc2FnZSgkaWQ6IEludCEpIHtcbiAgICAgIGRvbmU6IGRlbGV0ZU1lc3NhZ2UoaWQ6ICRpZClcbiAgICB9XG4gIGAsXG59O1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIE1lc3NhZ2VTZXJ2aWNlIGV4dGVuZHMgQmFzZUdyYXBocWxTZXJ2aWNlPE1lc3NhZ2UsIE1lc3NhZ2VGaWx0ZXI+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGdyYXBocWw6IEdyYXBocWxTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIG1vZGFsQ3RybDogTW9kYWxDb250cm9sbGVyLFxuICAgIHByb3RlY3RlZCB0b2FzdENvbnRyb2xsZXI6IFRvYXN0Q29udHJvbGxlcixcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEVOVklST05NRU5UKSBwcm90ZWN0ZWQgZW52aXJvbm1lbnQ6IEVudmlyb25tZW50XG4gICkge1xuICAgIHN1cGVyKGdyYXBocWwsIGVudmlyb25tZW50KTtcblxuICAgIC8vIEZvciBERVYgb25seVxuICAgIHRoaXMuX2RlYnVnID0gIWVudmlyb25tZW50LnByb2R1Y3Rpb247XG4gIH1cblxuICAvKipcbiAgICogU2VuZCBhIG1lc3NhZ2UgdG8gcmVjaXBpZW50KHMpXG4gICAqXG4gICAqIEBwYXJhbSBlbnRpdHlcbiAgICogQHBhcmFtIG9wdHNcbiAgICovXG4gIGFzeW5jIHNlbmQoZW50aXR5OiBNZXNzYWdlLCBvcHRzPzogeyBzaG93VG9hc3Q/OiBib29sZWFuIH0pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAvLyBUcmFuc2Zvcm0gaW50byBqc29uXG4gICAgY29uc3QgZGF0YSA9IGVudGl0eS5hc09iamVjdChNSU5JRllfRU5USVRZX0ZPUl9QT0QpO1xuXG4gICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICBpZiAodGhpcy5fZGVidWcpIGNvbnNvbGUuZGVidWcoYFttZXNzYWdlLXNlcnZpY2VdIFNlbmRpbmcgbWVzc2FnZS4uLmApO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHsgZG9uZSB9ID0gYXdhaXQgdGhpcy5ncmFwaHFsLm11dGF0ZTx7IGRvbmU6IGJvb2xlYW4gfT4oe1xuICAgICAgICBtdXRhdGlvbjogTXV0YXRpb25zLnNlbmQsXG4gICAgICAgIHZhcmlhYmxlczogeyBkYXRhIH0sXG4gICAgICAgIGVycm9yOiB7IGNvZGU6IFNvY2lhbEVycm9yQ29kZXMuU0VORF9NRVNTQUdFX0VSUk9SLCBtZXNzYWdlOiAnU09DSUFMLkVSUk9SLlNFTkRfTUVTU0FHRV9FUlJPUicgfSxcbiAgICAgIH0pO1xuXG4gICAgICBpZiAodGhpcy5fZGVidWcpIGNvbnNvbGUuZGVidWcoYFttZXNzYWdlLXNlcnZpY2VdIFNlbmQgbWVzc2FnZSBbT0tdIGluICR7RGF0ZS5ub3coKSAtIG5vd31tc2ApO1xuXG4gICAgICBpZiAoZG9uZSAmJiAoIW9wdHMgfHwgb3B0cy5zaG93VG9hc3QgIT09IGZhbHNlKSkge1xuICAgICAgICBhd2FpdCB0aGlzLnNob3dUb2FzdCh7IHR5cGU6ICdpbmZvJywgbWVzc2FnZTogJ1NPQ0lBTC5JTkZPLk1FU1NBR0VfU0VOVCcgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZG9uZTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnN0IGVycm9yID0gKGVyciAmJiBlcnIubWVzc2FnZSkgfHwgZXJyO1xuICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG5cbiAgICAgIC8vIFNob3cgZXJyb3JcbiAgICAgIGlmICghb3B0cyB8fCBvcHRzLnNob3dUb2FzdCAhPT0gZmFsc2UpIHtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGVycm9yIHx8ICdTT0NJQUwuRVJST1IuU0VORF9NRVNTQUdFX0VSUk9SJztcbiAgICAgICAgYXdhaXQgdGhpcy5zaG93VG9hc3QoeyB0eXBlOiAnZXJyb3InLCBtZXNzYWdlIH0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxldGUgYSBtZXNzYWdlIGJ5IElEXG4gICAqXG4gICAqIEBwYXJhbSBpZFxuICAgKiBAcGFyYW0gb3B0c1xuICAgKi9cbiAgYXN5bmMgZGVsZXRlKGlkOiBudW1iZXIsIG9wdHM/OiB7IHNob3dUb2FzdD86IGJvb2xlYW4gfSk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gICAgaWYgKHRoaXMuX2RlYnVnKSBjb25zb2xlLmRlYnVnKGBbbWVzc2FnZS1zZXJ2aWNlXSBEZWxldGluZyBtZXNzYWdlICMke2lkfS4uLmApO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHsgZG9uZSB9ID0gYXdhaXQgdGhpcy5ncmFwaHFsLm11dGF0ZTx7IGRvbmU6IGJvb2xlYW4gfT4oe1xuICAgICAgICBtdXRhdGlvbjogTXV0YXRpb25zLmRlbGV0ZSxcbiAgICAgICAgdmFyaWFibGVzOiB7IGlkIH0sXG4gICAgICAgIGVycm9yOiB7IGNvZGU6IFNvY2lhbEVycm9yQ29kZXMuREVMRVRFX01FU1NBR0VfRVJST1IsIG1lc3NhZ2U6ICdTT0NJQUwuRVJST1IuREVMRVRFX01FU1NBR0VfRVJST1InIH0sXG4gICAgICB9KTtcblxuICAgICAgaWYgKHRoaXMuX2RlYnVnKSBjb25zb2xlLmRlYnVnKGBbbWVzc2FnZS1zZXJ2aWNlXSBEZWxldGUgbWVzc2FnZSBbT0tdIGluICR7RGF0ZS5ub3coKSAtIG5vd31tc2ApO1xuXG4gICAgICBpZiAoZG9uZSAmJiAoIW9wdHMgfHwgb3B0cy5zaG93VG9hc3QgIT09IGZhbHNlKSkge1xuICAgICAgICBhd2FpdCB0aGlzLnNob3dUb2FzdCh7IHR5cGU6ICdpbmZvJywgbWVzc2FnZTogJ1NPQ0lBTC5JTkZPLk1FU1NBR0VfREVMRVRFRCcgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZG9uZTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnN0IGVycm9yID0gKGVyciAmJiBlcnIubWVzc2FnZSkgfHwgZXJyO1xuICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG5cbiAgICAgIC8vIFNob3cgZXJyb3JcbiAgICAgIGlmICghb3B0cyB8fCBvcHRzLnNob3dUb2FzdCAhPT0gZmFsc2UpIHtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGVycm9yIHx8ICdTT0NJQUwuRVJST1IuREVMRVRFX01FU1NBR0VfRVJST1InO1xuICAgICAgICBhd2FpdCB0aGlzLnNob3dUb2FzdCh7IHR5cGU6ICdlcnJvcicsIG1lc3NhZ2UgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgb3BlbkNvbXBvc2VNb2RhbChvcHRpb25zOiBNZXNzYWdlTW9kYWxPcHRpb25zICYgeyBzaG93VG9hc3Q/OiBib29sZWFuIH0pOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IGhhc1RvcE1vZGFsID0gISEoYXdhaXQgdGhpcy5tb2RhbEN0cmwuZ2V0VG9wKCkpO1xuICAgIGNvbnN0IG1vZGFsID0gYXdhaXQgdGhpcy5tb2RhbEN0cmwuY3JlYXRlKHtcbiAgICAgIGNvbXBvbmVudDogTWVzc2FnZU1vZGFsLFxuICAgICAgY29tcG9uZW50UHJvcHM6IG9wdGlvbnMsXG4gICAgICBjc3NDbGFzczogaGFzVG9wTW9kYWwgJiYgJ3N0YWNrLW1vZGFsJyxcbiAgICB9KTtcblxuICAgIC8vIE9wZW4gdGhlIG1vZGFsXG4gICAgYXdhaXQgbW9kYWwucHJlc2VudCgpO1xuXG4gICAgLy8gT24gZGlzbWlzc1xuICAgIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgbW9kYWwub25EaWREaXNtaXNzKCk7XG4gICAgaWYgKCFkYXRhIHx8ICEoZGF0YSBpbnN0YW5jZW9mIE1lc3NhZ2UpKSByZXR1cm4gdHJ1ZTsgLy8gQ0FOQ0VMTEVEXG5cbiAgICAvLyBTZW5kIG1lc3NhZ2VcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5zZW5kKGRhdGEsIHsgc2hvd1RvYXN0OiBvcHRpb25zPy5zaG93VG9hc3QgfSk7XG4gIH1cblxuICBhc3luYyBsb2FkKGlkOiBudW1iZXIsIG9wdHM/OiB7IHRvRW50aXR5PzogYm9vbGVhbiB9KTogUHJvbWlzZTxNZXNzYWdlPiB7XG4gICAgY29uc3QgeyBkYXRhIH0gPSBhd2FpdCB0aGlzLmdyYXBocWwucXVlcnk8eyBkYXRhOiBPbWl0RnVuY3Rpb25zPE1lc3NhZ2U+IH0+KHtcbiAgICAgIHF1ZXJ5OiBRdWVyaWVzLmxvYWQsXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaWQsXG4gICAgICB9LFxuICAgICAgZmV0Y2hQb2xpY3k6ICduby1jYWNoZScsXG4gICAgfSk7XG4gICAgY29uc3QgZW50aXR5ID0gb3B0cz8udG9FbnRpdHkgIT09IGZhbHNlID8gTWVzc2FnZS5mcm9tT2JqZWN0KGRhdGEpIDogKGRhdGEgYXMgTWVzc2FnZSk7XG5cbiAgICBjb25zb2xlLmRlYnVnKGBbbWVzc2FnZS1zZXJ2aWNlXSBMb2FkZWQgbWVzc2FnZSAjJHtpZH06YCwgZW50aXR5KTtcblxuICAgIHJldHVybiBlbnRpdHk7XG4gIH1cblxuICAvKiAtLSBwcm90ZWN0ZWQgbWV0aG9kcyAtLSAqL1xuXG4gIHByb3RlY3RlZCBhc3luYyBzaG93VG9hc3Qob3B0czogU2hvd1RvYXN0T3B0aW9ucykge1xuICAgIHJldHVybiBUb2FzdHMuc2hvdyh0aGlzLnRvYXN0Q29udHJvbGxlciwgdGhpcy50cmFuc2xhdGUsIHtcbiAgICAgIHR5cGU6ICdpbmZvJyxcbiAgICAgIG1lc3NhZ2U6ICdTT0NJQUwuSU5GTy5NRVNTQUdFX1NFTlQnLFxuICAgICAgLi4ub3B0cyxcbiAgICB9KTtcbiAgfVxufVxuIl19
198
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zb2NpYWwvbWVzc2FnZS9tZXNzYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUlwRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNwRixPQUFPLEVBQWUsV0FBVyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDbkYsT0FBTyxFQUFFLE9BQU8sRUFBaUIsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNwRixPQUFPLEVBQW9CLE1BQU0sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxZQUFZLEVBQXVCLE1BQU0saUJBQWlCLENBQUM7QUFFcEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7QUFFbkUsTUFBTSxnQkFBZ0IsR0FBRztJQUN2QixPQUFPLEVBQUUsR0FBRyxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQlg7Q0FDRixDQUFDO0FBRUYsTUFBTSxPQUFPLEdBQUc7SUFDZCxJQUFJLEVBQUUsR0FBRyxDQUFBOzs7Ozs7TUFNTCxnQkFBZ0IsQ0FBQyxPQUFPO01BQ3hCLGVBQWUsQ0FBQyxXQUFXO01BQzNCLGVBQWUsQ0FBQyxZQUFZO0dBQy9CO0NBQ0YsQ0FBQztBQUNGLE1BQU0sU0FBUyxHQUFHO0lBQ2hCLElBQUksRUFBRSxHQUFHLENBQUE7Ozs7R0FJUjtJQUNELE1BQU0sRUFBRSxH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QUssQ0FBQyxxQ0FBcUMsRUFBRSxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFbEUsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELDZCQUE2QjtJQUVuQixLQUFLLENBQUMsU0FBUyxDQUFDLElBQXNCO1FBQzlDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDdkQsSUFBSSxFQUFFLE1BQU07WUFDWixPQUFPLEVBQUUsMEJBQTBCO1lBQ25DLEdBQUcsSUFBSTtTQUNSLENBQUMsQ0FBQztJQUNMLENBQUM7d0dBbklVLGNBQWMsOElBTUgsV0FBVzs0R0FOdEIsY0FBYyxjQURELE1BQU07OzRGQUNuQixjQUFjO2tCQUQxQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7MEJBTzdCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGdxbCB9IGZyb20gJ2Fwb2xsby1hbmd1bGFyJztcbmltcG9ydCB7IFNvY2lhbEVycm9yQ29kZXMgfSBmcm9tICcuLi9zb2NpYWwuZXJyb3JzJztcbmltcG9ydCB7IEdyYXBocWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9ncmFwaHFsL2dyYXBocWwuc2VydmljZSc7XG5pbXBvcnQgeyBNb2RhbENvbnRyb2xsZXIsIFRvYXN0Q29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEJhc2VHcmFwaHFsU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvYmFzZS1ncmFwaHFsLXNlcnZpY2UuY2xhc3MnO1xuaW1wb3J0IHsgRW52aXJvbm1lbnQsIEVOVklST05NRU5UIH0gZnJvbSAnLi4vLi4vLi4vZW52aXJvbm1lbnRzL2Vudmlyb25tZW50LmNsYXNzJztcbmltcG9ydCB7IE1lc3NhZ2UsIE1lc3NhZ2VGaWx0ZXIgfSBmcm9tICcuL21lc3NhZ2UubW9kZWwnO1xuaW1wb3J0IHsgTUlOSUZZX0VOVElUWV9GT1JfUE9EIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9tb2RlbC9yZWZlcmVudGlhbC5tb2RlbCc7XG5pbXBvcnQgeyBTaG93VG9hc3RPcHRpb25zLCBUb2FzdHMgfSBmcm9tICcuLi8uLi9zaGFyZWQvdG9hc3QvdG9hc3RzJztcbmltcG9ydCB7IE1lc3NhZ2VNb2RhbCwgTWVzc2FnZU1vZGFsT3B0aW9ucyB9IGZyb20gJy4vbWVzc2FnZS5tb2RhbCc7XG5pbXBvcnQgeyBPbWl0RnVuY3Rpb25zIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9tb2RlbC9lbnRpdHkubW9kZWwnO1xuaW1wb3J0IHsgUGVyc29uRnJhZ21lbnRzIH0gZnJvbSAnLi4vLi4vYWRtaW4vdXNlcnMvcGVyc29uLnNlcnZpY2UnO1xuXG5jb25zdCBNZXNzYWdlRnJhZ21lbnRzID0ge1xuICBtZXNzYWdlOiBncWxgXG4gICAgZnJhZ21lbnQgTWVzc2FnZUZyYWdtZW50IG9uIE1lc3NhZ2VWTyB7XG4gICAgICBpZFxuICAgICAgc3ViamVjdFxuICAgICAgYm9keVxuICAgICAgdHlwZVxuICAgICAgcmVjaXBpZW50IHtcbiAgICAgICAgLi4uTGlnaHRQZXJzb25GcmFnbWVudFxuICAgICAgfVxuICAgICAgcmVjaXBpZW50cyB7XG4gICAgICAgIC4uLkxpZ2h0UGVyc29uRnJhZ21lbnRcbiAgICAgIH1cbiAgICAgIHJlY2lwaWVudEZpbHRlciB7XG4gICAgICAgIC4uLlBlcnNvbkZpbHRlckZyYWdtZW50XG4gICAgICB9XG4gICAgICBpc3N1ZXIge1xuICAgICAgICAuLi5MaWdodFBlcnNvbkZyYWdtZW50XG4gICAgICB9XG4gICAgICBjcmVhdGlvbkRhdGVcbiAgICAgIHVwZGF0ZURhdGVcbiAgICB9XG4gIGAsXG59O1xuXG5jb25zdCBRdWVyaWVzID0ge1xuICBsb2FkOiBncWxgXG4gICAgbXV0YXRpb24gTG9hZE1lc3NhZ2UoJGlkOiBJbnQhKSB7XG4gICAgICBkYXRhOiBtZXNzYWdlKGlkOiAkaWQpIHtcbiAgICAgICAgLi4uTWVzc2FnZUZyYWdtZW50XG4gICAgICB9XG4gICAgfVxuICAgICR7TWVzc2FnZUZyYWdtZW50cy5tZXNzYWdlfVxuICAgICR7UGVyc29uRnJhZ21lbnRzLmxpZ2h0UGVyc29ufVxuICAgICR7UGVyc29uRnJhZ21lbnRzLnBlcnNvbkZpbHRlcn1cbiAgYCxcbn07XG5jb25zdCBNdXRhdGlvbnMgPSB7XG4gIHNlbmQ6IGdxbGBcbiAgICBtdXRhdGlvbiBTZW5kTWVzc2FnZSgkZGF0YTogTWVzc2FnZVZPSW5wdXQpIHtcbiAgICAgIGRvbmU6IHNlbmRNZXNzYWdlKG1lc3NhZ2U6ICRkYXRhKVxuICAgIH1cbiAgYCxcbiAgZGVsZXRlOiBncWxgXG4gICAgbXV0YXRpb24gRGVsZXRlTWVzc2FnZSgkaWQ6IEludCEpIHtcbiAgICAgIGRvbmU6IGRlbGV0ZU1lc3NhZ2UoaWQ6ICRpZClcbiAgICB9XG4gIGAsXG59O1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIE1lc3NhZ2VTZXJ2aWNlIGV4dGVuZHMgQmFzZUdyYXBocWxTZXJ2aWNlPE1lc3NhZ2UsIE1lc3NhZ2VGaWx0ZXI+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGdyYXBocWw6IEdyYXBocWxTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIG1vZGFsQ3RybDogTW9kYWxDb250cm9sbGVyLFxuICAgIHByb3RlY3RlZCB0b2FzdENvbnRyb2xsZXI6IFRvYXN0Q29udHJvbGxlcixcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEVOVklST05NRU5UKSBwcm90ZWN0ZWQgZW52aXJvbm1lbnQ6IEVudmlyb25tZW50XG4gICkge1xuICAgIHN1cGVyKGdyYXBocWwsIGVudmlyb25tZW50KTtcblxuICAgIC8vIEZvciBERVYgb25seVxuICAgIHRoaXMuX2RlYnVnID0gIWVudmlyb25tZW50LnByb2R1Y3Rpb247XG4gIH1cblxuICAvKipcbiAgICogU2VuZCBhIG1lc3NhZ2UgdG8gcmVjaXBpZW50KHMpXG4gICAqXG4gICAqIEBwYXJhbSBlbnRpdHlcbiAgICogQHBhcmFtIG9wdHNcbiAgICovXG4gIGFzeW5jIHNlbmQoZW50aXR5OiBNZXNzYWdlLCBvcHRzPzogeyBzaG93VG9hc3Q/OiBib29sZWFuIH0pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAvLyBUcmFuc2Zvcm0gaW50byBqc29uXG4gICAgY29uc3QgZGF0YSA9IGVudGl0eS5hc09iamVjdChNSU5JRllfRU5USVRZX0ZPUl9QT0QpO1xuXG4gICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICBpZiAodGhpcy5fZGVidWcpIGNvbnNvbGUuZGVidWcoYFttZXNzYWdlLXNlcnZpY2VdIFNlbmRpbmcgbWVzc2FnZS4uLmApO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHsgZG9uZSB9ID0gYXdhaXQgdGhpcy5ncmFwaHFsLm11dGF0ZTx7IGRvbmU6IGJvb2xlYW4gfT4oe1xuICAgICAgICBtdXRhdGlvbjogTXV0YXRpb25zLnNlbmQsXG4gICAgICAgIHZhcmlhYmxlczogeyBkYXRhIH0sXG4gICAgICAgIGVycm9yOiB7IGNvZGU6IFNvY2lhbEVycm9yQ29kZXMuU0VORF9NRVNTQUdFX0VSUk9SLCBtZXNzYWdlOiAnU09DSUFMLkVSUk9SLlNFTkRfTUVTU0FHRV9FUlJPUicgfSxcbiAgICAgIH0pO1xuXG4gICAgICBpZiAodGhpcy5fZGVidWcpIGNvbnNvbGUuZGVidWcoYFttZXNzYWdlLXNlcnZpY2VdIFNlbmQgbWVzc2FnZSBbT0tdIGluICR7RGF0ZS5ub3coKSAtIG5vd31tc2ApO1xuXG4gICAgICBpZiAoZG9uZSAmJiAoIW9wdHMgfHwgb3B0cy5zaG93VG9hc3QgIT09IGZhbHNlKSkge1xuICAgICAgICBhd2FpdCB0aGlzLnNob3dUb2FzdCh7IHR5cGU6ICdpbmZvJywgbWVzc2FnZTogJ1NPQ0lBTC5JTkZPLk1FU1NBR0VfU0VOVCcgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZG9uZTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnN0IGVycm9yID0gKGVyciAmJiBlcnIubWVzc2FnZSkgfHwgZXJyO1xuICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG5cbiAgICAgIC8vIFNob3cgZXJyb3JcbiAgICAgIGlmICghb3B0cyB8fCBvcHRzLnNob3dUb2FzdCAhPT0gZmFsc2UpIHtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGVycm9yIHx8ICdTT0NJQUwuRVJST1IuU0VORF9NRVNTQUdFX0VSUk9SJztcbiAgICAgICAgYXdhaXQgdGhpcy5zaG93VG9hc3QoeyB0eXBlOiAnZXJyb3InLCBtZXNzYWdlIH0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxldGUgYSBtZXNzYWdlIGJ5IElEXG4gICAqXG4gICAqIEBwYXJhbSBpZFxuICAgKiBAcGFyYW0gb3B0c1xuICAgKi9cbiAgYXN5bmMgZGVsZXRlKGlkOiBudW1iZXIsIG9wdHM/OiB7IHNob3dUb2FzdD86IGJvb2xlYW4gfSk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gICAgaWYgKHRoaXMuX2RlYnVnKSBjb25zb2xlLmRlYnVnKGBbbWVzc2FnZS1zZXJ2aWNlXSBEZWxldGluZyBtZXNzYWdlICMke2lkfS4uLmApO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHsgZG9uZSB9ID0gYXdhaXQgdGhpcy5ncmFwaHFsLm11dGF0ZTx7IGRvbmU6IGJvb2xlYW4gfT4oe1xuICAgICAgICBtdXRhdGlvbjogTXV0YXRpb25zLmRlbGV0ZSxcbiAgICAgICAgdmFyaWFibGVzOiB7IGlkIH0sXG4gICAgICAgIGVycm9yOiB7IGNvZGU6IFNvY2lhbEVycm9yQ29kZXMuREVMRVRFX01FU1NBR0VfRVJST1IsIG1lc3NhZ2U6ICdTT0NJQUwuRVJST1IuREVMRVRFX01FU1NBR0VfRVJST1InIH0sXG4gICAgICB9KTtcblxuICAgICAgaWYgKHRoaXMuX2RlYnVnKSBjb25zb2xlLmRlYnVnKGBbbWVzc2FnZS1zZXJ2aWNlXSBEZWxldGUgbWVzc2FnZSBbT0tdIGluICR7RGF0ZS5ub3coKSAtIG5vd31tc2ApO1xuXG4gICAgICBpZiAoZG9uZSAmJiAoIW9wdHMgfHwgb3B0cy5zaG93VG9hc3QgIT09IGZhbHNlKSkge1xuICAgICAgICBhd2FpdCB0aGlzLnNob3dUb2FzdCh7IHR5cGU6ICdpbmZvJywgbWVzc2FnZTogJ1NPQ0lBTC5JTkZPLk1FU1NBR0VfREVMRVRFRCcgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZG9uZTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnN0IGVycm9yID0gKGVyciAmJiBlcnIubWVzc2FnZSkgfHwgZXJyO1xuICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG5cbiAgICAgIC8vIFNob3cgZXJyb3JcbiAgICAgIGlmICghb3B0cyB8fCBvcHRzLnNob3dUb2FzdCAhPT0gZmFsc2UpIHtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGVycm9yIHx8ICdTT0NJQUwuRVJST1IuREVMRVRFX01FU1NBR0VfRVJST1InO1xuICAgICAgICBhd2FpdCB0aGlzLnNob3dUb2FzdCh7IHR5cGU6ICdlcnJvcicsIG1lc3NhZ2UgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgb3BlbkNvbXBvc2VNb2RhbChvcHRpb25zOiBNZXNzYWdlTW9kYWxPcHRpb25zICYgeyBzaG93VG9hc3Q/OiBib29sZWFuIH0pOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IGhhc1RvcE1vZGFsID0gISEoYXdhaXQgdGhpcy5tb2RhbEN0cmwuZ2V0VG9wKCkpO1xuICAgIGNvbnN0IG1vZGFsID0gYXdhaXQgdGhpcy5tb2RhbEN0cmwuY3JlYXRlKHtcbiAgICAgIGNvbXBvbmVudDogTWVzc2FnZU1vZGFsLFxuICAgICAgY29tcG9uZW50UHJvcHM6IG9wdGlvbnMsXG4gICAgICBjc3NDbGFzczogaGFzVG9wTW9kYWwgJiYgJ3N0YWNrLW1vZGFsJyxcbiAgICB9KTtcblxuICAgIC8vIE9wZW4gdGhlIG1vZGFsXG4gICAgYXdhaXQgbW9kYWwucHJlc2VudCgpO1xuXG4gICAgLy8gT24gZGlzbWlzc1xuICAgIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgbW9kYWwub25EaWREaXNtaXNzKCk7XG4gICAgaWYgKCFkYXRhIHx8ICEoZGF0YSBpbnN0YW5jZW9mIE1lc3NhZ2UpKSByZXR1cm4gdHJ1ZTsgLy8gQ0FOQ0VMTEVEXG5cbiAgICAvLyBTZW5kIG1lc3NhZ2VcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5zZW5kKGRhdGEsIHsgc2hvd1RvYXN0OiBvcHRpb25zPy5zaG93VG9hc3QgfSk7XG4gIH1cblxuICBhc3luYyBsb2FkKGlkOiBudW1iZXIsIG9wdHM/OiB7IHRvRW50aXR5PzogYm9vbGVhbiB9KTogUHJvbWlzZTxNZXNzYWdlPiB7XG4gICAgY29uc3QgeyBkYXRhIH0gPSBhd2FpdCB0aGlzLmdyYXBocWwucXVlcnk8eyBkYXRhOiBPbWl0RnVuY3Rpb25zPE1lc3NhZ2U+IH0+KHtcbiAgICAgIHF1ZXJ5OiBRdWVyaWVzLmxvYWQsXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaWQsXG4gICAgICB9LFxuICAgICAgZmV0Y2hQb2xpY3k6ICduby1jYWNoZScsXG4gICAgfSk7XG4gICAgY29uc3QgZW50aXR5ID0gb3B0cz8udG9FbnRpdHkgIT09IGZhbHNlID8gTWVzc2FnZS5mcm9tT2JqZWN0KGRhdGEpIDogKGRhdGEgYXMgTWVzc2FnZSk7XG5cbiAgICBjb25zb2xlLmRlYnVnKGBbbWVzc2FnZS1zZXJ2aWNlXSBMb2FkZWQgbWVzc2FnZSAjJHtpZH06YCwgZW50aXR5KTtcblxuICAgIHJldHVybiBlbnRpdHk7XG4gIH1cblxuICAvKiAtLSBwcm90ZWN0ZWQgbWV0aG9kcyAtLSAqL1xuXG4gIHByb3RlY3RlZCBhc3luYyBzaG93VG9hc3Qob3B0czogU2hvd1RvYXN0T3B0aW9ucykge1xuICAgIHJldHVybiBUb2FzdHMuc2hvdyh0aGlzLnRvYXN0Q29udHJvbGxlciwgdGhpcy50cmFuc2xhdGUsIHtcbiAgICAgIHR5cGU6ICdpbmZvJyxcbiAgICAgIG1lc3NhZ2U6ICdTT0NJQUwuSU5GTy5NRVNTQUdFX1NFTlQnLFxuICAgICAgLi4ub3B0cyxcbiAgICB9KTtcbiAgfVxufVxuIl19