barsa-sap-ui 1.0.286 → 1.0.288

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.
@@ -20,12 +20,12 @@ export function insertAvatar(elementRef, headerAvatarRef, titleRef, avatar) {
20
20
  }
21
21
  }
22
22
  }
23
- export const sort = (a, b, key) => {
23
+ export const sort = (a, b, key, isNumber) => {
24
24
  if (key) {
25
25
  a = getNestedValue(key, a);
26
26
  b = getNestedValue(key, b);
27
27
  }
28
- if (key === 'Rownumber') {
28
+ if (key === 'Rownumber' || isNumber) {
29
29
  return Number(a) > Number(b) ? 1 : -1;
30
30
  }
31
31
  else if (typeof a === 'string' && typeof b === 'string') {
@@ -410,4 +410,4 @@ export const IconBusinessSuite = [
410
410
  'stages-warning',
411
411
  'empty-warning'
412
412
  ];
413
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxZQUFZLENBQUMsVUFBVSxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsTUFBTTtJQUN0RSxJQUFJLE1BQU0sRUFBRTtRQUNSLE1BQU0sV0FBVyxHQUFHLE9BQU8sTUFBTSxLQUFLLFFBQVEsSUFBSSxNQUFNLENBQUMsV0FBVyxDQUFDO1FBQ3JFLE1BQU0sYUFBYSxHQUFHLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQztZQUNyRCxTQUFTLEVBQUUsTUFBTTtZQUNqQixNQUFNLEVBQUUsT0FBTyxNQUFNLEtBQUssUUFBUTtZQUNsQyxXQUFXO1NBQ2QsQ0FBQyxDQUFDO1FBQ0gsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2pCLFFBQVEsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDL0IsTUFBTSxFQUFFLEdBQUcsVUFBVSxDQUFDLGFBQTRCLENBQUM7UUFDbkQsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQyx5QkFBeUIsQ0FBZ0IsQ0FBQztRQUUzRSxNQUFNLGdCQUFnQixHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUMsbUNBQW1DLENBQWdCLENBQUM7UUFDOUYsTUFBTSxRQUFRLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQywwQkFBMEIsQ0FBZ0IsQ0FBQztRQUM3RSxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUMsNEJBQTRCLENBQWdCLENBQUM7UUFDakYsSUFBSSxVQUFVLEVBQUU7WUFDWix3Q0FBd0M7WUFDeEMsVUFBVSxDQUFDLEtBQUssQ0FBQyxZQUFZLEdBQUcsUUFBUSxHQUFHLGFBQWEsQ0FBQztTQUM1RDtLQUNKO0FBQ0wsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFtQixDQUFJLEVBQUUsQ0FBSSxFQUFFLEdBQWtCLEVBQVUsRUFBRTtJQUM3RSxJQUFJLEdBQUcsRUFBRTtRQUNMLENBQUMsR0FBRyxjQUFjLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzNCLENBQUMsR0FBRyxjQUFjLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO0tBQzlCO0lBQ0QsSUFBSSxHQUFHLEtBQUssV0FBVyxFQUFFO1FBQ3JCLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUN6QztTQUFNLElBQUksT0FBTyxDQUFDLEtBQUssUUFBUSxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsRUFBRTtRQUN2RCxPQUFPLFFBQVEsQ0FBQyxDQUFXLENBQUMsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQVcsQ0FBQyxDQUFDLENBQUM7S0FDckU7SUFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN4QyxDQUFDLENBQUM7QUFDRixNQUFNLFVBQVUsUUFBUSxDQUFDLEtBQWE7SUFDbEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDckMsSUFBSSxHQUFHLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUN2QixLQUFLLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDeEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDdEIsTUFBTTtTQUNUO1FBQ0QsR0FBRyxFQUFFLENBQUM7S0FDVDtJQUNELE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDL0IsQ0FBQztBQUNELE1BQU0sVUFBVSxjQUFjLENBQWdDLEdBQVcsRUFBRSxNQUFTO0lBQ2hGLE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDekQsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRztJQUNuQixpQkFBaUI7SUFDakIsWUFBWTtJQUNaLFlBQVk7SUFDWix1QkFBdUI7SUFDdkIsUUFBUTtJQUNSLFlBQVk7SUFDWixjQUFjO0lBQ2QsbUJBQW1CO0lBQ25CLG1CQUFtQjtJQUNuQixvQkFBb0I7SUFDcEIsa0JBQWtCO0lBQ2xCLHNCQUFzQjtJQUN0QixzQkFBc0I7SUFDdEIsWUFBWTtJQUNaLGFBQWE7SUFDYixRQUFRO0lBQ1IsYUFBYTtJQUNiLE9BQU87SUFDUCxPQUFPO0lBQ1AsY0FBYztJQUNkLFlBQVk7SUFDWixNQUFNO0lBQ04sTUFBTTtJQUNOLGtCQUFrQjtJQUNsQixrQkFBa0I7SUFDbEIsYUFBYTtJQUNiLFdBQVc7SUFDWCxTQUFTO0lBQ1Qsb0JBQW9CO0lBQ3BCLGVBQWU7SUFDZixhQUFhO0lBQ2IsV0FBVztJQUNYLGNBQWM7SUFDZCxhQUFhO0lBQ2IsU0FBUztJQUNULGtCQUFrQjtJQUNsQixtQkFBbUI7SUFDbkIsTUFBTTtJQUNOLFNBQVM7SUFDVCxNQUFNO0lBQ04sT0FBTztJQUNQLE1BQU07SUFDTixZQUFZO0lBQ1osTUFBTTtJQUNOLFVBQVU7SUFDVixRQUFRO0lBQ1IsUUFBUTtJQUNSLEtBQUs7SUFDTCxRQUFRO0lBQ1IsWUFBWTtJQUNaLGVBQWU7SUFDZixxQkFBcUI7SUFDckIsa0JBQWtCO0lBQ2xCLG1CQUFtQjtJQUNuQixjQUFjO0lBQ2QsaUJBQWlCO0lBQ2pCLHVCQUF1QjtJQUN2QiwyQkFBMkI7SUFDM0IsT0FBTztJQUNQLGlCQUFpQjtJQUNqQixPQUFPO0lBQ1Asd0JBQXdCO0lBQ3hCLFlBQVk7SUFDWixpQkFBaUI7SUFDakIsTUFBTTtJQUNOLFFBQVE7SUFDUixlQUFlO0lBQ2YsV0FBVztJQUNYLFlBQVk7SUFDWixnQkFBZ0I7SUFDaEIsYUFBYTtJQUNiLGFBQWE7SUFDYixhQUFhO0lBQ2IsTUFBTTtJQUNOLFlBQVk7SUFDWixXQUFXO0lBQ1gsWUFBWTtJQUNaLFlBQVk7SUFDWixZQUFZO0lBQ1osWUFBWTtJQUNaLE9BQU87SUFDUCxNQUFNO0lBQ04sUUFBUTtJQUNSLGtCQUFrQjtJQUNsQix5QkFBeUI7SUFDekIsa0JBQWtCO0lBQ2xCLGFBQWE7SUFDYixxQkFBcUI7SUFDckIsaUJBQWlCO0lBQ2pCLHdCQUF3QjtJQUN4QixzQ0FBc0M7SUFDdEMsVUFBVTtJQUNWLDBCQUEwQjtJQUMxQixvQkFBb0I7SUFDcEIsaUJBQWlCO0lBQ2pCLFNBQVM7SUFDVCxhQUFhO0lBQ2Isb0JBQW9CO0lBQ3BCLG9CQUFvQjtJQUNwQixhQUFhO0lBQ2IsV0FBVztJQUNYLG9CQUFvQjtJQUNwQixZQUFZO0lBQ1osVUFBVTtJQUNWLFdBQVc7SUFDWCxrQkFBa0I7SUFDbEIscUJBQXFCO0lBQ3JCLG1CQUFtQjtJQUNuQixzQkFBc0I7SUFDdEIsbUJBQW1CO0lBQ25CLG1CQUFtQjtJQUNuQixpQkFBaUI7SUFDakIsa0JBQWtCO0lBQ2xCLGFBQWE7SUFDYixXQUFXO0lBQ1gsb0JBQW9CO0lBQ3BCLGdCQUFnQjtJQUNoQixjQUFjO0lBQ2QsWUFBWTtJQUNaLGFBQWE7SUFDYixTQUFTO0lBQ1Qsa0JBQWtCO0lBQ2xCLHFCQUFxQjtJQUNyQixjQUFjO0lBQ2QsU0FBUztJQUNULHFCQUFxQjtJQUNyQixVQUFVO0lBQ1YsZ0JBQWdCO0lBQ2hCLGVBQWU7SUFDZixTQUFTO0lBQ1QsVUFBVTtJQUNWLEtBQUs7SUFDTCxPQUFPO0lBQ1AsVUFBVTtJQUNWLFFBQVE7SUFDUixRQUFRO0lBQ1IsV0FBVztJQUNYLFVBQVU7SUFDVixtQkFBbUI7SUFDbkIsa0JBQWtCO0lBQ2xCLG1CQUFtQjtJQUNuQixtQkFBbUI7SUFDbkIsb0JBQW9CO0lBQ3BCLHVCQUF1QjtJQUN2QixtQkFBbUI7SUFDbkIsZ0JBQWdCO0NBQ25CLENBQUM7QUFDRixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRztJQUM3QixPQUFPO0lBQ1AsU0FBUztJQUNULE1BQU07SUFDTixXQUFXO0lBQ1gsV0FBVztJQUNYLG1CQUFtQjtJQUNuQixjQUFjO0lBQ2QsS0FBSztJQUNMLFVBQVU7SUFDVixxQkFBcUI7SUFDckIsMkJBQTJCO0lBQzNCLDBCQUEwQjtJQUMxQixVQUFVO0lBQ1YsT0FBTztJQUNQLGFBQWE7SUFDYixnQkFBZ0I7SUFDaEIsU0FBUztJQUNULE9BQU87SUFDUCxXQUFXO0lBQ1gsZUFBZTtJQUNmLGFBQWE7SUFDYixnQkFBZ0I7SUFDaEIsZ0JBQWdCO0lBQ2hCLGlCQUFpQjtJQUNqQixnQkFBZ0I7SUFDaEIsb0JBQW9CO0lBQ3BCLGFBQWE7SUFDYixpQkFBaUI7SUFDakIsaUJBQWlCO0lBQ2pCLFlBQVk7SUFDWixZQUFZO0lBQ1osWUFBWTtJQUNaLEtBQUs7SUFDTCxXQUFXO0lBQ1gsd0JBQXdCO0lBQ3hCLGlCQUFpQjtJQUNqQixpQkFBaUI7SUFDakIsTUFBTTtJQUNOLFFBQVE7SUFDUixnQkFBZ0I7SUFDaEIsV0FBVztJQUNYLFNBQVM7SUFDVCxjQUFjO0lBQ2QsY0FBYztJQUNkLFVBQVU7SUFDVixpQkFBaUI7SUFDakIsaUJBQWlCO0lBQ2pCLGNBQWM7SUFDZCxPQUFPO0lBQ1AsS0FBSztJQUNMLFFBQVE7SUFDUixTQUFTO0lBQ1QsV0FBVztJQUNYLGtCQUFrQjtJQUNsQixlQUFlO0lBQ2YsYUFBYTtJQUNiLFNBQVM7SUFDVCxvQkFBb0I7SUFDcEIsZUFBZTtJQUNmLFNBQVM7SUFDVCxTQUFTO0lBQ1QsWUFBWTtJQUNaLFFBQVE7SUFDUixhQUFhO0lBQ2IsaUJBQWlCO0lBQ2pCLGlCQUFpQjtJQUNqQix5QkFBeUI7SUFDekIsY0FBYztJQUNkLE9BQU87SUFDUCxNQUFNO0lBQ04sZ0JBQWdCO0lBQ2hCLGNBQWM7SUFDZCxzQkFBc0I7SUFDdEIsZUFBZTtJQUNmLGtCQUFrQjtJQUNsQixrQkFBa0I7SUFDbEIsVUFBVTtJQUNWLFVBQVU7SUFDVixlQUFlO0lBQ2YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YscUJBQXFCO0lBQ3JCLGdCQUFnQjtJQUNoQixZQUFZO0lBQ1osWUFBWTtJQUNaLGdCQUFnQjtJQUNoQixtQkFBbUI7SUFDbkIsaUJBQWlCO0lBQ2pCLGdCQUFnQjtJQUNoQixjQUFjO0lBQ2Qsb0JBQW9CO0lBQ3BCLHdCQUF3QjtJQUN4QixnQkFBZ0I7SUFDaEIsVUFBVTtJQUNWLGdCQUFnQjtJQUNoQixxQkFBcUI7SUFDckIsY0FBYztJQUNkLGVBQWU7SUFDZixjQUFjO0lBQ2QsaUJBQWlCO0lBQ2pCLFlBQVk7SUFDWixjQUFjO0lBQ2Qsc0JBQXNCO0lBQ3RCLHlCQUF5QjtJQUN6QiwwQkFBMEI7SUFDMUIsZUFBZTtJQUNmLGFBQWE7SUFDYixXQUFXO0lBQ1gsVUFBVTtJQUNWLGNBQWM7SUFDZCxnQkFBZ0I7SUFDaEIsV0FBVztJQUNYLG1CQUFtQjtJQUNuQixhQUFhO0lBQ2IsVUFBVTtJQUNWLFdBQVc7SUFDWCxjQUFjO0lBQ2QsY0FBYztJQUNkLGNBQWM7SUFDZCxpQkFBaUI7SUFDakIsbUJBQW1CO0lBQ25CLHFCQUFxQjtJQUNyQixnQkFBZ0I7SUFDaEIsWUFBWTtJQUNaLG1CQUFtQjtJQUNuQiw0QkFBNEI7SUFDNUIsMEJBQTBCO0lBQzFCLFFBQVE7SUFDUixRQUFRO0lBQ1IsVUFBVTtJQUNWLFVBQVU7SUFDVixTQUFTO0lBQ1QsZ0JBQWdCO0lBQ2hCLGVBQWU7SUFDZixVQUFVO0lBQ1YsZ0JBQWdCO0lBQ2hCLGNBQWM7SUFDZCxpQkFBaUI7SUFDakIsWUFBWTtJQUNaLGlCQUFpQjtJQUNqQixZQUFZO0lBQ1osaUJBQWlCO0lBQ2pCLGlCQUFpQjtJQUNqQixPQUFPO0lBQ1AsVUFBVTtJQUNWLG1DQUFtQztJQUNuQyxRQUFRO0lBQ1IsZ0JBQWdCO0lBQ2hCLGdCQUFnQjtJQUNoQixVQUFVO0lBQ1YsV0FBVztJQUNYLE1BQU07SUFDTixPQUFPO0lBQ1AsS0FBSztJQUNMLFFBQVE7SUFDUixjQUFjO0lBQ2QscUNBQXFDO0lBQ3JDLFlBQVk7SUFDWixjQUFjO0lBQ2QsbUJBQW1CO0lBQ25CLFVBQVU7SUFDVixnQkFBZ0I7SUFDaEIsVUFBVTtJQUNWLGVBQWU7SUFDZixtQkFBbUI7SUFDbkIsZ0JBQWdCO0lBQ2hCLFlBQVk7SUFDWixhQUFhO0lBQ2Isa0JBQWtCO0lBQ2xCLFlBQVk7SUFDWixRQUFRO0lBQ1IsaUJBQWlCO0lBQ2pCLGdCQUFnQjtJQUNoQixjQUFjO0lBQ2QsV0FBVztJQUNYLGVBQWU7SUFDZixlQUFlO0lBQ2YsZ0JBQWdCO0lBQ2hCLGFBQWE7SUFDYixlQUFlO0lBQ2YsZUFBZTtJQUNmLFFBQVE7SUFDUixTQUFTO0lBQ1QsY0FBYztJQUNkLGdCQUFnQjtJQUNoQixjQUFjO0lBQ2QsZ0JBQWdCO0lBQ2hCLG9CQUFvQjtJQUNwQixNQUFNO0lBQ04sT0FBTztJQUNQLGVBQWU7SUFDZixjQUFjO0lBQ2QsdUJBQXVCO0lBQ3ZCLFlBQVk7SUFDWixhQUFhO0lBQ2IsZ0JBQWdCO0lBQ2hCLGdCQUFnQjtJQUNoQixlQUFlO0lBQ2YsT0FBTztJQUNQLFVBQVU7SUFDVixZQUFZO0lBQ1osVUFBVTtJQUNWLHVCQUF1QjtJQUN2QixLQUFLO0lBQ0wsZUFBZTtJQUNmLE1BQU07SUFDTixlQUFlO0lBQ2YsaUJBQWlCO0lBQ2pCLE1BQU07SUFDTiw0QkFBNEI7SUFDNUIsZ0JBQWdCO0lBQ2hCLGVBQWU7Q0FDbEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBpbnNlcnRBdmF0YXIoZWxlbWVudFJlZiwgaGVhZGVyQXZhdGFyUmVmLCB0aXRsZVJlZiwgYXZhdGFyKTogdm9pZCB7XHJcbiAgICBpZiAoYXZhdGFyKSB7XHJcbiAgICAgICAgY29uc3QgaXNOdWxsSW1hZ2UgPSB0eXBlb2YgYXZhdGFyID09PSAnb2JqZWN0JyAmJiBhdmF0YXIuSXNOdWxsSW1hZ2U7XHJcbiAgICAgICAgY29uc3QgYXZhdGFyVmlld1JlZiA9IGhlYWRlckF2YXRhclJlZi5jcmVhdGVFbWJlZGRlZFZpZXcoe1xyXG4gICAgICAgICAgICAkaW1wbGljaXQ6IGF2YXRhcixcclxuICAgICAgICAgICAgaXNJY29uOiB0eXBlb2YgYXZhdGFyID09PSAnc3RyaW5nJyxcclxuICAgICAgICAgICAgaXNOdWxsSW1hZ2VcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aXRsZVJlZi5jbGVhcigpO1xyXG4gICAgICAgIHRpdGxlUmVmLmluc2VydChhdmF0YXJWaWV3UmVmKTtcclxuICAgICAgICBjb25zdCBlbCA9IGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcclxuICAgICAgICBjb25zdCB0aXRsZUVsID0gZWwucXVlcnlTZWxlY3RvcignLmZkLWR5bmFtaWMtcGFnZV9fdGl0bGUnKSBhcyBIVE1MRWxlbWVudDtcclxuXHJcbiAgICAgICAgY29uc3QgdGl0bGVDb250YWluZXJFbCA9IGVsLnF1ZXJ5U2VsZWN0b3IoJy5mZC1keW5hbWljLXBhZ2VfX3RpdGxlLWNvbnRhaW5lcicpIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICAgIGNvbnN0IGF2YXRhckVsID0gZWwucXVlcnlTZWxlY3RvcignLmZkLWR5bmFtaWMtcGFnZV9fYXZhdGFyJykgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICAgICAgdGl0bGVDb250YWluZXJFbC5pbnNlcnRCZWZvcmUoYXZhdGFyRWwsIHRpdGxlRWwpO1xyXG4gICAgICAgIGNvbnN0IHN1YlRpdGxlRWwgPSBlbC5xdWVyeVNlbGVjdG9yKCcuZmQtZHluYW1pYy1wYWdlX19zdWJ0aXRsZScpIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICAgIGlmIChzdWJUaXRsZUVsKSB7XHJcbiAgICAgICAgICAgIC8vIGNvbnN0IGluTW9iaWxlID0gZ2V0RGV2aWNlSXNNb2JpbGUoKTtcclxuICAgICAgICAgICAgc3ViVGl0bGVFbC5zdHlsZS5wYWRkaW5nUmlnaHQgPSBgY2FsYygkezEuNX1yZW0gKyAxMHB4KWA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY29uc3Qgc29ydCA9IDxUIGV4dGVuZHMgb2JqZWN0PihhOiBULCBiOiBULCBrZXk6IHN0cmluZyB8IG51bGwpOiBudW1iZXIgPT4ge1xyXG4gICAgaWYgKGtleSkge1xyXG4gICAgICAgIGEgPSBnZXROZXN0ZWRWYWx1ZShrZXksIGEpO1xyXG4gICAgICAgIGIgPSBnZXROZXN0ZWRWYWx1ZShrZXksIGIpO1xyXG4gICAgfVxyXG4gICAgaWYgKGtleSA9PT0gJ1Jvd251bWJlcicpIHtcclxuICAgICAgICByZXR1cm4gTnVtYmVyKGEpID4gTnVtYmVyKGIpID8gMSA6IC0xO1xyXG4gICAgfSBlbHNlIGlmICh0eXBlb2YgYSA9PT0gJ3N0cmluZycgJiYgdHlwZW9mIGIgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgcmV0dXJuIF90cmltRW5kKGEgYXMgc3RyaW5nKS5sb2NhbGVDb21wYXJlKF90cmltRW5kKGIgYXMgc3RyaW5nKSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYSA+IGIgPyAxIDogYSA9PT0gYiA/IDAgOiAtMTtcclxufTtcclxuZXhwb3J0IGZ1bmN0aW9uIF90cmltRW5kKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgY2FjaGUgPSBuZXcgU2V0KFN0cmluZyh2YWx1ZSkpO1xyXG4gICAgbGV0IGVuZCA9IHZhbHVlLmxlbmd0aDtcclxuICAgIGZvciAobGV0IGkgPSB2YWx1ZS5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xyXG4gICAgICAgIGlmICghY2FjaGUuaGFzKHZhbHVlW2ldKSkge1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgICAgZW5kLS07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdmFsdWUuc2xpY2UoMCwgZW5kKTtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmVzdGVkVmFsdWU8VCBleHRlbmRzIFJlY29yZDxzdHJpbmcsIGFueT4+KGtleTogc3RyaW5nLCBvYmplY3Q6IFQpOiBhbnkge1xyXG4gICAgcmV0dXJuIGtleS5zcGxpdCgnLicpLnJlZHVjZSgoYSwgYikgPT4gYVtiXSwgb2JqZWN0KTtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IEljb25UTlQgPSBbXHJcbiAgICAndGVjaG5pY2Fsc3lzdGVtJyxcclxuICAgICdzeXN0ZW1qYXZhJyxcclxuICAgICdzeXN0ZW1hYmFwJyxcclxuICAgICdzeXN0ZW1yZWNvbW1lbmRhdGlvbnMnLFxyXG4gICAgJ3N5c3RlbScsXHJcbiAgICAnc3lzdGVtdHJleCcsXHJcbiAgICAnc3lzdGVtdHJhY2tzJyxcclxuICAgICd0ZWNobmljYWxzY2VuYXJpbycsXHJcbiAgICAndGVjaG5pY2FsaW5zdGFuY2UnLFxyXG4gICAgJ3Rocm91Z2hwdXQtYmFja2xvZycsXHJcbiAgICAnYmF0Y2gtcHJvY2Vzc2luZycsXHJcbiAgICAnZGF0YWJhc2UtY29uc2lzdGVuY3knLFxyXG4gICAgJ2ludGVybWVkaWF0ZS1tZXNzYWdlJyxcclxuICAgICdleGNlcHRpb25zJyxcclxuICAgICdzeXN0ZW0tSEFOQScsXHJcbiAgICAncHl0aG9uJyxcclxuICAgICdyYWlzZS1mYXVsdCcsXHJcbiAgICAnY29kZTEnLFxyXG4gICAgJ2NvZGUyJyxcclxuICAgICdzcGlrZS1hcnJlc3QnLFxyXG4gICAgJ3ZlcmlmeS1BUEknLFxyXG4gICAgJ3VzZXInLFxyXG4gICAgJ25vdGUnLFxyXG4gICAgJ3Rocm93aW5nLW1lc3NhZ2UnLFxyXG4gICAgJ2NhdGNoaW5nLW1lc3NhZ2UnLFxyXG4gICAgJ3N0YXJ0LWV2ZW50JyxcclxuICAgICdlbmQtZXZlbnQnLFxyXG4gICAgJ2dhdGV3YXknLFxyXG4gICAgJ3N1Yi1wcm9jZXNzLW1hcmtlcicsXHJcbiAgICAnYWQtaG9jLW1hcmtlcicsXHJcbiAgICAnbWFudWFsLXRhc2snLFxyXG4gICAgJ3NlbmQtdGFzaycsXHJcbiAgICAncmVjZWl2ZS10YXNrJyxcclxuICAgICdzY3JpcHQtdGFzaycsXHJcbiAgICAnbWFycXVlZScsXHJcbiAgICAnZGF0YS1pbnB1dC1hcnJvdycsXHJcbiAgICAnZGF0YS1vdXRwdXQtYXJyb3cnLFxyXG4gICAgJ21vcmUnLFxyXG4gICAgJ3BhdHRlcm4nLFxyXG4gICAgJ3Rhc2snLFxyXG4gICAgJ2Fycm93JyxcclxuICAgICdkYXRhJyxcclxuICAgICdkYXRhLXN0b3JlJyxcclxuICAgICdwb29sJyxcclxuICAgICdzd2ltbGFuZScsXHJcbiAgICAnc2VsZWN0JyxcclxuICAgICdjdXJzb3InLFxyXG4gICAgJ2FwaScsXHJcbiAgICAnby1kYXRhJyxcclxuICAgICdqYXZhc2NyaXB0JyxcclxuICAgICd2YWx1ZS1tYXBwaW5nJyxcclxuICAgICd0ZXJtaW5hdGUtZW5kLWV2ZW50JyxcclxuICAgICdwYXJhbGxlbC1nYXRld2F5JyxcclxuICAgICdleGNsdXNpdmUtZ2F0ZXdheScsXHJcbiAgICAnc2VydmljZS10YXNrJyxcclxuICAgICd3b3JrZmxvdy1lZGl0b3InLFxyXG4gICAgJ2JvdW5kYXJ5LWludGVycnVwdGluZycsXHJcbiAgICAnYm91bmRhcnktbm9uLWludGVycnVwdGluZycsXHJcbiAgICAnYmxvY2snLFxyXG4gICAgJ2NvbnN0cmFpbi1ibG9jaycsXHJcbiAgICAnYWN0b3InLFxyXG4gICAgJ2luc3RhbmNlLXNwZWNpZmljYXRpb24nLFxyXG4gICAgJ3ZhbHVlLXR5cGUnLFxyXG4gICAgJ2ludGVyZmFjZS1ibG9jaycsXHJcbiAgICAndW5pdCcsXHJcbiAgICAnc2lnbmFsJyxcclxuICAgICdxdWFudGl0eS1raW5kJyxcclxuICAgICdpdGVtLWZsb3cnLFxyXG4gICAgJ2RlcGVuZGVuY3knLFxyXG4gICAgJ2dlbmVyYWxpemF0aW9uJyxcclxuICAgICdhZ2dyZWdhdGlvbicsXHJcbiAgICAnY29tcG9zaXRpb24nLFxyXG4gICAgJ2Fzc29jaWF0aW9uJyxcclxuICAgICdwb3J0JyxcclxuICAgICdwcm94eS1wb3J0JyxcclxuICAgICdmdWxsLXBvcnQnLFxyXG4gICAgJ29wZXJhdGlvbnMnLFxyXG4gICAgJ2NvbnN0cmFpbnMnLFxyXG4gICAgJ3JlY2VwdGlvbnMnLFxyXG4gICAgJ3JlZmVyZW5jZXMnLFxyXG4gICAgJ3BhcnRzJyxcclxuICAgICdmbG93JyxcclxuICAgICd2YWx1ZXMnLFxyXG4gICAgJ2JpbGwtb2YtbWF0ZXJpYWwnLFxyXG4gICAgJ2RvY3VtZW50LWluZm8tcmVjb3JkaW5nJyxcclxuICAgICd1c2UtY2FzZS1kaWFncmFtJyxcclxuICAgICdiZGQtZGlhZ3JhbScsXHJcbiAgICAncmVxdWlyZW1lbnQtZGlhZ3JhbScsXHJcbiAgICAncGFja2FnZS1kaWFncmFtJyxcclxuICAgICdpbnRlcm5hbC1ibG9jay1kaWFncmFtJyxcclxuICAgICdyZXF1aXJlbWVudC1jb250YWlubWVudC1yZWxhdGlvbnNoaXAnLFxyXG4gICAgJ3VzZS1jYXNlJyxcclxuICAgICd1c2UtY2FzZS1leHRlbnNpb24tcG9pbnQnLFxyXG4gICAgJ2NvbW11bmljYXRpb24tcGF0aCcsXHJcbiAgICAnbm90ZS1jb25uZWN0aW9uJyxcclxuICAgICdzdWJqZWN0JyxcclxuICAgICdhdXRvLWxheW91dCcsXHJcbiAgICAncmVxdWlyZWQtaW50ZXJmYWNlJyxcclxuICAgICdwcm92aWRlZC1pbnRlcmZhY2UnLFxyXG4gICAgJ3N1Yi1jb250ZW50JyxcclxuICAgICdjb25uZWN0b3InLFxyXG4gICAgJ2xvY2FsLXByb2Nlc3MtY2FsbCcsXHJcbiAgICAnYWdncmVnYXRvcicsXHJcbiAgICAnc3BsaXR0ZXInLFxyXG4gICAgJ2NvbnZlcnRlcicsXHJcbiAgICAnY29udGVudC1tb2RpZmllcicsXHJcbiAgICAnbWVzc2FnZS1zdGFydC1ldmVudCcsXHJcbiAgICAnbWVzc2FnZS1lbmQtZXZlbnQnLFxyXG4gICAgJ2VzY2FsYXRpb24tZW5kLWV2ZW50JyxcclxuICAgICdzdGFydC10aW1lci1ldmVudCcsXHJcbiAgICAnZXJyb3Itc3RhcnQtZXZlbnQnLFxyXG4gICAgJ2Vycm9yLWVuZC1ldmVudCcsXHJcbiAgICAnY29udGVudC1lbnJpY2hlcicsXHJcbiAgICAncmVhbGl6YXRpb24nLFxyXG4gICAgJ2ludGVyZmFjZScsXHJcbiAgICAndXNpbmVzcy1jYXBhYmlsaXR5JyxcclxuICAgICdwcm9ncmVzcy1ncm91cCcsXHJcbiAgICAndmFsdWUtc3RyZWFtJyxcclxuICAgICd2YWx1ZS1mbG93JyxcclxuICAgICdhcHBsaWNhdGlvbicsXHJcbiAgICAnZXRsLWpvYicsXHJcbiAgICAnYnVzaW5lc3Mtc2VydmljZScsXHJcbiAgICAnYXBwbGljYXRpb24tc2VydmljZScsXHJcbiAgICAnbmV0d29yay1ub2RlJyxcclxuICAgICduZXR3b3JrJyxcclxuICAgICdkZXBsb3ltZW50LWluc3RhbmNlJyxcclxuICAgICdpbnRyYW5ldCcsXHJcbiAgICAnbW9iaWxlLW5ldHdvcmsnLFxyXG4gICAgJ3ByaXZhdGUtY2xvdWQnLFxyXG4gICAgJ2FudGVubmEnLFxyXG4gICAgJ2ZpcmV3YWxsJyxcclxuICAgICdodWInLFxyXG4gICAgJ21vZGVtJyxcclxuICAgICdyZXBlYXRlcicsXHJcbiAgICAncm91dGVyJyxcclxuICAgICdzd2l0Y2gnLFxyXG4gICAgJ3NhdGVsbGl0ZScsXHJcbiAgICAnc3lzdGVtLTInLFxyXG4gICAgJ3N0YXR1cy1hY3RpdmF0aW5nJyxcclxuICAgICdzdGF0dXMtc3VzcGVuZGVkJyxcclxuICAgICdzdGF0dXMtc3VzcGVuZGluZycsXHJcbiAgICAnc3RhdHVzLXRlcm1pbmF0ZWQnLFxyXG4gICAgJ3N0YXR1cy10ZXJtaW5hdGluZycsXHJcbiAgICAnc29sdXRpb24tbm90LWxpY2Vuc2VkJyxcclxuICAgICdjbGVhci1hbGwtbWFwcGluZycsXHJcbiAgICAnbWFwLWFsbC1maWVsZHMnXHJcbl07XHJcbmV4cG9ydCBjb25zdCBJY29uQnVzaW5lc3NTdWl0ZSA9IFtcclxuICAgICdoZWFydCcsXHJcbiAgICAncXVhcnRlcicsXHJcbiAgICAneWVhcicsXHJcbiAgICAnZXF1YWxpemVyJyxcclxuICAgICdjb21wb25lbnQnLFxyXG4gICAgJ2NvbXBvbmVudC1wcml2YXRlJyxcclxuICAgICdyYXctbWF0ZXJpYWwnLFxyXG4gICAgJ3NtcycsXHJcbiAgICAnYWRkLW5vdGUnLFxyXG4gICAgJ2NoYW5nZS10aW1lLWhvcml6b24nLFxyXG4gICAgJ3RhYmxlLWNoYXJ0LWN1c3RvbWl6YXRpb24nLFxyXG4gICAgJ2RlbGVnYXRlZC1pbXBvcnRhbnQtdGFzaycsXHJcbiAgICAnZm9ya2xpZnQnLFxyXG4gICAgJ2NvaW5zJyxcclxuICAgICdmaWx0ZXItbWVudScsXHJcbiAgICAndGFyZ2V0LXRvLWRhdGUnLFxyXG4gICAgJ3Byb2dyYW0nLFxyXG4gICAgJ3BoYXNlJyxcclxuICAgICdjaGVja2xpc3QnLFxyXG4gICAgJ21pcnJvcmVkLXRhc2snLFxyXG4gICAgJ3N1Yi1wcm9qZWN0JyxcclxuICAgICdjaGVja2xpc3QtaXRlbScsXHJcbiAgICAnYWRob2MtYW5hbHlzaXMnLFxyXG4gICAgJ2NoYW5nZS1hbmFseXNpcycsXHJcbiAgICAncmV2aWV3LWRlbWFuZHMnLFxyXG4gICAgJ3Byb2plY3QtZGVmaW5pdGlvbicsXHJcbiAgICAnZGF0YS1hY2Nlc3MnLFxyXG4gICAgJ2RlZmluZS1zaG9ydGFnZScsXHJcbiAgICAncmV2aWV3LXN1cHBsaWVzJyxcclxuICAgICdjaGFuZ2UtbG9nJyxcclxuICAgICdwcmlvcml0eS0xJyxcclxuICAgICdwcmlvcml0eS0yJyxcclxuICAgICdqYW0nLFxyXG4gICAgJ21pbGVzdG9uZScsXHJcbiAgICAnYnVsbGV0aW5nLXdpdGgtbnVtYmVycycsXHJcbiAgICAnZGVjcmVhc2UtaW5kZW50JyxcclxuICAgICdpbmNyZWFzZS1pbmRlbnQnLFxyXG4gICAgJ2JvbGQnLFxyXG4gICAgJ2l0YWxpYycsXHJcbiAgICAnc3RyaWtlLXRocm91Z2gnLFxyXG4gICAgJ3VuZGVybGluZScsXHJcbiAgICAnc2F2ZS1hcycsXHJcbiAgICAnc2VnbWVudGF0aW9uJyxcclxuICAgICdjb250ZXh0LW1lbnUnLFxyXG4gICAgJ3NuYXBzaG90JyxcclxuICAgICdzdWJ0cmFjdGlvbi1iLWEnLFxyXG4gICAgJ3N1YnRyYWN0aW9uLWEtYicsXHJcbiAgICAnaW50ZXJzZWN0aW9uJyxcclxuICAgICd1bmlvbicsXHJcbiAgICAndG9wJyxcclxuICAgICdib3R0b20nLFxyXG4gICAgJ3BhZ2UtdXAnLFxyXG4gICAgJ3BhZ2UtZG93bicsXHJcbiAgICAnY3JlYXRlLWRhc2hib2FyZCcsXHJcbiAgICAneGNlbHNpdXMtZmlsZScsXHJcbiAgICAnb3Blbi1mb2xkZXInLFxyXG4gICAgJ25ldXRyYWwnLFxyXG4gICAgJ3NwbGl0LXNlZ21lbnRhdGlvbicsXHJcbiAgICAnbWFuYWdlLWJ1ZGdldCcsXHJcbiAgICAnYmxvY2tlZCcsXHJcbiAgICAncGlwZXR0ZScsXHJcbiAgICAndG9wLXJlY2lwZScsXHJcbiAgICAncmVjaXBlJyxcclxuICAgICdpbmdyZWRpZW50cycsXHJcbiAgICAnbXVsdGlwbGUtY2hhcnRzJyxcclxuICAgICdkZXNjZW5kaW5nLWJhcnMnLFxyXG4gICAgJ2Rlc2NlbmRpbmctc3RhY2tlZC1iYXJzJyxcclxuICAgICdzY2F0dGVyLXBsb3QnLFxyXG4gICAgJ3NwaWxsJyxcclxuICAgICdmaXJlJyxcclxuICAgICdzdHJhdGlmaWNhdGlvbicsXHJcbiAgICAncmVsYXRpb25zaGlwJyxcclxuICAgICdtYXJnaW4tZGVjb21wb3NpdGlvbicsXHJcbiAgICAnY29udHJvbC1ncm91cCcsXHJcbiAgICAnY29tcGFyaXNvbi1jaGFydCcsXHJcbiAgICAncmVzcG9uc2libGUtYXJlYScsXHJcbiAgICAnaW5jcmVhc2UnLFxyXG4gICAgJ2RlY3JlYXNlJyxcclxuICAgICdjdXJyZW50LXN0b2NrJyxcclxuICAgICdleHBlZGl0ZScsXHJcbiAgICAncG9zdHBvbmUnLFxyXG4gICAgJ2FwcHJvdmVkJyxcclxuICAgICdwYXJ0aWFsbHktZGVsaXZlcmVkJyxcclxuICAgICdsaW5lLWJhci1jaGFydCcsXHJcbiAgICAnZXhwYW5kLWFsbCcsXHJcbiAgICAnc3VibWlzc2lvbicsXHJcbiAgICAnY2hhbmdlLXJlcXVlc3QnLFxyXG4gICAgJ2NvbHVtbi11bnNlbGVjdGVkJyxcclxuICAgICdjb2x1bW4tc2VsZWN0ZWQnLFxyXG4gICAgJ3Jvdy11bnNlbGVjdGVkJyxcclxuICAgICdyb3ctc2VsZWN0ZWQnLFxyXG4gICAgJ3N0b2NrLXJlcXVpcmVtZW50cycsXHJcbiAgICAnZ2VuZGVyLW1hbGUtYW5kLWZlbWFsZScsXHJcbiAgICAnbWFyaXRhbC1zdGF0dXMnLFxyXG4gICAgJ2JpcnRoZGF5JyxcclxuICAgICdjbGFzc2lmaWNhdGlvbicsXHJcbiAgICAnbWFya2VkLWZvci1kZWxldGlvbicsXHJcbiAgICAnYnVsbGV0LWNoYXJ0JyxcclxuICAgICdyZW1vdmUtZmlsdGVyJyxcclxuICAgICdiYW5rLWFjY291bnQnLFxyXG4gICAgJ3NhdmluZ3MtYWNjb3VudCcsXHJcbiAgICAnZGViaXQtY2FyZCcsXHJcbiAgICAndmlwLWN1c3RvbWVyJyxcclxuICAgICd1bmRlc2lyYWJsZS1jdXN0b21lcicsXHJcbiAgICAnYW5zd2VyZWQtY2hhbmdlLXJlcXVlc3QnLFxyXG4gICAgJ2NvbGxlY3RlZC1jaGFuZ2UtcmVxdWVzdCcsXHJcbiAgICAnZHJhdy1mcmVlaGFuZCcsXHJcbiAgICAnZHJhdy1jaXJjbGUnLFxyXG4gICAgJ2NvbXBsZXRlZCcsXHJcbiAgICAnYW5zd2VyZWQnLFxyXG4gICAgJ3RyYWZmaWMtY29uZScsXHJcbiAgICAndHJhZmZpYy1saWdodHMnLFxyXG4gICAgJ2NvbnRhaW5lcicsXHJcbiAgICAnY29udGFpbmVyLWxvYWRpbmcnLFxyXG4gICAgJ3RyYWZmaWMtamFtJyxcclxuICAgICdwcm9kdWN0cycsXHJcbiAgICAnc2lkZXBhbmVsJyxcclxuICAgICdzcGxpdC1zY3JlZW4nLFxyXG4gICAgJ3RydWNrLWRyaXZlcicsXHJcbiAgICAna2VlcC1zZWdtZW50JyxcclxuICAgICdleGNsdWRlLXNlZ21lbnQnLFxyXG4gICAgJ3NlcGFyYXRlLXNlZ21lbnRzJyxcclxuICAgICdkaXN0cmlidXRlLXNlZ21lbnRzJyxcclxuICAgICduZXh0LW9wZW4taXRlbScsXHJcbiAgICAnd2hlcmUtdXNlZCcsXHJcbiAgICAnb3V0Ym91bmQtZGVsaXZlcnknLFxyXG4gICAgJ291dGJvdW5kLWRlbGl2ZXJ5LWluYWN0aXZlJyxcclxuICAgICdvdXRib3VuZC1kZWxpdmVyeS1hY3RpdmUnLFxyXG4gICAgJ3RhcmdldCcsXHJcbiAgICAnc291cmNlJyxcclxuICAgICdtYXRlcmlhbCcsXHJcbiAgICAnZHVlLWRhdGUnLFxyXG4gICAgJ292ZXJkdWUnLFxyXG4gICAgJ3NldC1hcy1kZWZhdWx0JyxcclxuICAgICdmYWNlLXZlcnktYmFkJyxcclxuICAgICdmYWNlLWJhZCcsXHJcbiAgICAnZmFjZS1za2VwdGljYWwnLFxyXG4gICAgJ2ZhY2UtbmV1dHJhbCcsXHJcbiAgICAnZmFjZS1hc3RvbmlzaGVkJyxcclxuICAgICdmYWNlLWhhcHB5JyxcclxuICAgICdmYWNlLXZlcnktaGFwcHknLFxyXG4gICAgJ2ZhY2UtYXdmdWwnLFxyXG4gICAgJ2ZhY2UtZGV2YXN0YXRlZCcsXHJcbiAgICAnZmFjZS1va2V5LWRva2V5JyxcclxuICAgICdhbGFybScsXHJcbiAgICAnYWN0aXZhdGUnLFxyXG4gICAgJ3NlZ21lbnQtcHJldmlldy1yZWZlcmVuY2Utb2JqZWN0cycsXHJcbiAgICAncmFkaXVzJyxcclxuICAgICdwb2x5Z29uZS1ibGFjaycsXHJcbiAgICAncG9seWdvbmUtd2hpdGUnLFxyXG4gICAgJ3Bsb3lnb25lJyxcclxuICAgICduby1maWx0ZXInLFxyXG4gICAgJ2dyaXAnLFxyXG4gICAgJ3dhdGVyJyxcclxuICAgICdnYXMnLFxyXG4gICAgJ2xpcXVpZCcsXHJcbiAgICAndGltZS1kZXBvc2l0JyxcclxuICAgICdlYXJseS13aWR0aGRyYXdhbC1mb3ItdGltZS1kZXBvc2l0cycsXHJcbiAgICAndHJ1Y2stbG9hZCcsXHJcbiAgICAndHJ1Y2stdW5sb2FkJyxcclxuICAgICd0cnVjay1sb2FkLXVubG9hZCcsXHJcbiAgICAncGhhcm1hY3knLFxyXG4gICAgJ21lZGljaW5lLXN5cnVwJyxcclxuICAgICdyZW1pbmRlcicsXHJcbiAgICAnbWVkaWNpbmUtcGlsbCcsXHJcbiAgICAnbWVkaWNpbmUtb2ludG1lbnQnLFxyXG4gICAgJ21lZGljaW5lLWRyb3BzJyxcclxuICAgICdibG9vZC10ZXN0JyxcclxuICAgICd0ZW1wZXJhdHVyZScsXHJcbiAgICAnbWVkaWNpbmUtaW5oYWxlcicsXHJcbiAgICAnZm9vdC1zdGVwcycsXHJcbiAgICAnd2VpZ2h0JyxcclxuICAgICdoZWFsdGgtdHJhY2tpbmcnLFxyXG4gICAgJ2Jsb29kLXByZXNzdXJlJyxcclxuICAgICdpbW11bml6YXRpb24nLFxyXG4gICAgJ2FsbGVyZ2llcycsXHJcbiAgICAncmVzY2hlZHVsaW5nMicsXHJcbiAgICAncmVzZXF1ZW5jaW5nMicsXHJcbiAgICAnbm8tdGltZS1jaGFuZ2UnLFxyXG4gICAgJ3RpbWUtY2hhbmdlJyxcclxuICAgICdzbWFydC1tYXRjaGVyJyxcclxuICAgICdsZWdhbC1zZWN0aW9uJyxcclxuICAgICdjYXVzZXMnLFxyXG4gICAgJ2VmZmVjdHMnLFxyXG4gICAgJ3NoYXJlZC1ieS1tZScsXHJcbiAgICAnc2hhcmVkLXdpdGgtbWUnLFxyXG4gICAgJ2FsZXJ0LWdyb3VwcycsXHJcbiAgICAnZnVuY3Rpb24tYWxlcnQnLFxyXG4gICAgJ2Z1bmN0aW9uLWhpZXJhcmNoeScsXHJcbiAgICAncmZpZCcsXHJcbiAgICAnaW5wdXQnLFxyXG4gICAgJ3NvZnR3YXJlLWl0ZW0nLFxyXG4gICAgJ3Byb2R1Y3QtdmlldycsXHJcbiAgICAnc29mdHdhcmUtaXRlbS12YXJpYW50JyxcclxuICAgICdsaWdodGhvdXNlJyxcclxuICAgICdkZW1hbmQtdW5pdCcsXHJcbiAgICAnZm1hLW1hbmFnZW1lbnQnLFxyXG4gICAgJ2ZtYS12YWxpZGF0aW9uJyxcclxuICAgICdmbWEtYW5hbHl0aWNzJyxcclxuICAgICdjbGFzcycsXHJcbiAgICAnb3ZlcnZpZXcnLFxyXG4gICAgJ3Byb2R1Y3Rpb24nLFxyXG4gICAgJ3N1YmNsYXNzJyxcclxuICAgICd2YXJpYW50LWNvbmZpZ3VyYXRpb24nLFxyXG4gICAgJ3N1bScsXHJcbiAgICAnZW1wdHktdHJhaWxlcicsXHJcbiAgICAnZG9vcicsXHJcbiAgICAnbG9hZGluZy1wb2ludCcsXHJcbiAgICAnc3RvY2std2FyZWhvdXNlJyxcclxuICAgICdnYXRlJyxcclxuICAgICd0aW1lc2VyaWVzLXdhdGVyZmFsbC1jaGFydCcsXHJcbiAgICAnc3RhZ2VzLXdhcm5pbmcnLFxyXG4gICAgJ2VtcHR5LXdhcm5pbmcnXHJcbl07XHJcbiJdfQ==
413
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxZQUFZLENBQUMsVUFBVSxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsTUFBTTtJQUN0RSxJQUFJLE1BQU0sRUFBRTtRQUNSLE1BQU0sV0FBVyxHQUFHLE9BQU8sTUFBTSxLQUFLLFFBQVEsSUFBSSxNQUFNLENBQUMsV0FBVyxDQUFDO1FBQ3JFLE1BQU0sYUFBYSxHQUFHLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQztZQUNyRCxTQUFTLEVBQUUsTUFBTTtZQUNqQixNQUFNLEVBQUUsT0FBTyxNQUFNLEtBQUssUUFBUTtZQUNsQyxXQUFXO1NBQ2QsQ0FBQyxDQUFDO1FBQ0gsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2pCLFFBQVEsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDL0IsTUFBTSxFQUFFLEdBQUcsVUFBVSxDQUFDLGFBQTRCLENBQUM7UUFDbkQsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQyx5QkFBeUIsQ0FBZ0IsQ0FBQztRQUUzRSxNQUFNLGdCQUFnQixHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUMsbUNBQW1DLENBQWdCLENBQUM7UUFDOUYsTUFBTSxRQUFRLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQywwQkFBMEIsQ0FBZ0IsQ0FBQztRQUM3RSxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUMsNEJBQTRCLENBQWdCLENBQUM7UUFDakYsSUFBSSxVQUFVLEVBQUU7WUFDWix3Q0FBd0M7WUFDeEMsVUFBVSxDQUFDLEtBQUssQ0FBQyxZQUFZLEdBQUcsUUFBUSxHQUFHLGFB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dFJlZiwgaGVhZGVyQXZhdGFyUmVmLCB0aXRsZVJlZiwgYXZhdGFyKTogdm9pZCB7XG4gICAgaWYgKGF2YXRhcikge1xuICAgICAgICBjb25zdCBpc051bGxJbWFnZSA9IHR5cGVvZiBhdmF0YXIgPT09ICdvYmplY3QnICYmIGF2YXRhci5Jc051bGxJbWFnZTtcbiAgICAgICAgY29uc3QgYXZhdGFyVmlld1JlZiA9IGhlYWRlckF2YXRhclJlZi5jcmVhdGVFbWJlZGRlZFZpZXcoe1xuICAgICAgICAgICAgJGltcGxpY2l0OiBhdmF0YXIsXG4gICAgICAgICAgICBpc0ljb246IHR5cGVvZiBhdmF0YXIgPT09ICdzdHJpbmcnLFxuICAgICAgICAgICAgaXNOdWxsSW1hZ2VcbiAgICAgICAgfSk7XG4gICAgICAgIHRpdGxlUmVmLmNsZWFyKCk7XG4gICAgICAgIHRpdGxlUmVmLmluc2VydChhdmF0YXJWaWV3UmVmKTtcbiAgICAgICAgY29uc3QgZWwgPSBlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHRpdGxlRWwgPSBlbC5xdWVyeVNlbGVjdG9yKCcuZmQtZHluYW1pYy1wYWdlX190aXRsZScpIGFzIEhUTUxFbGVtZW50O1xuXG4gICAgICAgIGNvbnN0IHRpdGxlQ29udGFpbmVyRWwgPSBlbC5xdWVyeVNlbGVjdG9yKCcuZmQtZHluYW1pYy1wYWdlX190aXRsZS1jb250YWluZXInKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgY29uc3QgYXZhdGFyRWwgPSBlbC5xdWVyeVNlbGVjdG9yKCcuZmQtZHluYW1pYy1wYWdlX19hdmF0YXInKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgdGl0bGVDb250YWluZXJFbC5pbnNlcnRCZWZvcmUoYXZhdGFyRWwsIHRpdGxlRWwpO1xuICAgICAgICBjb25zdCBzdWJUaXRsZUVsID0gZWwucXVlcnlTZWxlY3RvcignLmZkLWR5bmFtaWMtcGFnZV9fc3VidGl0bGUnKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgaWYgKHN1YlRpdGxlRWwpIHtcbiAgICAgICAgICAgIC8vIGNvbnN0IGluTW9iaWxlID0gZ2V0RGV2aWNlSXNNb2JpbGUoKTtcbiAgICAgICAgICAgIHN1YlRpdGxlRWwuc3R5bGUucGFkZGluZ1JpZ2h0ID0gYGNhbGMoJHsxLjV9cmVtICsgMTBweClgO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY29uc3Qgc29ydCA9IDxUIGV4dGVuZHMgb2JqZWN0PihhOiBULCBiOiBULCBrZXk6IHN0cmluZyB8IG51bGwsIGlzTnVtYmVyPzogYm9vbGVhbik6IG51bWJlciA9PiB7XG4gICAgaWYgKGtleSkge1xuICAgICAgICBhID0gZ2V0TmVzdGVkVmFsdWUoa2V5LCBhKTtcbiAgICAgICAgYiA9IGdldE5lc3RlZFZhbHVlKGtleSwgYik7XG4gICAgfVxuICAgIGlmIChrZXkgPT09ICdSb3dudW1iZXInIHx8IGlzTnVtYmVyKSB7XG4gICAgICAgIHJldHVybiBOdW1iZXIoYSkgPiBOdW1iZXIoYikgPyAxIDogLTE7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgYSA9PT0gJ3N0cmluZycgJiYgdHlwZW9mIGIgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiBfdHJpbUVuZChhIGFzIHN0cmluZykubG9jYWxlQ29tcGFyZShfdHJpbUVuZChiIGFzIHN0cmluZykpO1xuICAgIH1cbiAgICByZXR1cm4gYSA+IGIgPyAxIDogYSA9PT0gYiA/IDAgOiAtMTtcbn07XG5leHBvcnQgZnVuY3Rpb24gX3RyaW1FbmQodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgY2FjaGUgPSBuZXcgU2V0KFN0cmluZyh2YWx1ZSkpO1xuICAgIGxldCBlbmQgPSB2YWx1ZS5sZW5ndGg7XG4gICAgZm9yIChsZXQgaSA9IHZhbHVlLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgIGlmICghY2FjaGUuaGFzKHZhbHVlW2ldKSkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZW5kLS07XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZS5zbGljZSgwLCBlbmQpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldE5lc3RlZFZhbHVlPFQgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+PihrZXk6IHN0cmluZywgb2JqZWN0OiBUKTogYW55IHtcbiAgICByZXR1cm4ga2V5LnNwbGl0KCcuJykucmVkdWNlKChhLCBiKSA9PiBhW2JdLCBvYmplY3QpO1xufVxuXG5leHBvcnQgY29uc3QgSWNvblROVCA9IFtcbiAgICAndGVjaG5pY2Fsc3lzdGVtJyxcbiAgICAnc3lzdGVtamF2YScsXG4gICAgJ3N5c3RlbWFiYXAnLFxuICAgICdzeXN0ZW1yZWNvbW1lbmRhdGlvbnMnLFxuICAgICdzeXN0ZW0nLFxuICAgICdzeXN0ZW10cmV4JyxcbiAgICAnc3lzdGVtdHJhY2tzJyxcbiAgICAndGVjaG5pY2Fsc2NlbmFyaW8nLFxuICAgICd0ZWNobmljYWxpbnN0YW5jZScsXG4gICAgJ3Rocm91Z2hwdXQtYmFja2xvZycsXG4gICAgJ2JhdGNoLXByb2Nlc3NpbmcnLFxuICAgICdkYXRhYmFzZS1jb25zaXN0ZW5jeScsXG4gICAgJ2ludGVybWVkaWF0ZS1tZXNzYWdlJyxcbiAgICAnZXhjZXB0aW9ucycsXG4gICAgJ3N5c3RlbS1IQU5BJyxcbiAgICAncHl0aG9uJyxcbiAgICAncmFpc2UtZmF1bHQnLFxuICAgICdjb2RlMScsXG4gICAgJ2NvZGUyJyxcbiAgICAnc3Bpa2UtYXJyZXN0JyxcbiAgICAndmVyaWZ5LUFQSScsXG4gICAgJ3VzZXInLFxuICAgICdub3RlJyxcbiAgICAndGhyb3dpbmctbWVzc2FnZScsXG4gICAgJ2NhdGNoaW5nLW1lc3NhZ2UnLFxuICAgICdzdGFydC1ldmVudCcsXG4gICAgJ2VuZC1ldmVudCcsXG4gICAgJ2dhdGV3YXknLFxuICAgICdzdWItcHJvY2Vzcy1tYXJrZXInLFxuICAgICdhZC1ob2MtbWFya2VyJyxcbiAgICAnbWFudWFsLXRhc2snLFxuICAgICdzZW5kLXRhc2snLFxuICAgICdyZWNlaXZlLXRhc2snLFxuICAgICdzY3JpcHQtdGFzaycsXG4gICAgJ21hcnF1ZWUnLFxuICAgICdkYXRhLWlucHV0LWFycm93JyxcbiAgICAnZGF0YS1vdXRwdXQtYXJyb3cnLFxuICAgICdtb3JlJyxcbiAgICAncGF0dGVybicsXG4gICAgJ3Rhc2snLFxuICAgICdhcnJvdycsXG4gICAgJ2RhdGEnLFxuICAgICdkYXRhLXN0b3JlJyxcbiAgICAncG9vbCcsXG4gICAgJ3N3aW1sYW5lJyxcbiAgICAnc2VsZWN0JyxcbiAgICAnY3Vyc29yJyxcbiAgICAnYXBpJyxcbiAgICAnby1kYXRhJyxcbiAgICAnamF2YXNjcmlwdCcsXG4gICAgJ3ZhbHVlLW1hcHBpbmcnLFxuICAgICd0ZXJtaW5hdGUtZW5kLWV2ZW50JyxcbiAgICAncGFyYWxsZWwtZ2F0ZXdheScsXG4gICAgJ2V4Y2x1c2l2ZS1nYXRld2F5JyxcbiAgICAnc2VydmljZS10YXNrJyxcbiAgICAnd29ya2Zsb3ctZWRpdG9yJyxcbiAgICAnYm91bmRhcnktaW50ZXJydXB0aW5nJyxcbiAgICAnYm91bmRhcnktbm9uLWludGVycnVwdGluZycsXG4gICAgJ2Jsb2NrJyxcbiAgICAnY29uc3RyYWluLWJsb2NrJyxcbiAgICAnYWN0b3InLFxuICAgICdpbnN0YW5jZS1zcGVjaWZpY2F0aW9uJyxcbiAgICAndmFsdWUtdHlwZScsXG4gICAgJ2ludGVyZmFjZS1ibG9jaycsXG4gICAgJ3VuaXQnLFxuICAgICdzaWduYWwnLFxuICAgICdxdWFudGl0eS1raW5kJyxcbiAgICAnaXRlbS1mbG93JyxcbiAgICAnZGVwZW5kZW5jeScsXG4gICAgJ2dlbmVyYWxpemF0aW9uJyxcbiAgICAnYWdncmVnYXRpb24nLFxuICAgICdjb21wb3NpdGlvbicsXG4gICAgJ2Fzc29jaWF0aW9uJyxcbiAgICAncG9ydCcsXG4gICAgJ3Byb3h5LXBvcnQnLFxuICAgICdmdWxsLXBvcnQnLFxuICAgICdvcGVyYXRpb25zJyxcbiAgICAnY29uc3RyYWlucycsXG4gICAgJ3JlY2VwdGlvbnMnLFxuICAgICdyZWZlcmVuY2VzJyxcbiAgICAncGFydHMnLFxuICAgICdmbG93JyxcbiAgICAndmFsdWVzJyxcbiAgICAnYmlsbC1vZi1tYXRlcmlhbCcsXG4gICAgJ2RvY3VtZW50LWluZm8tcmVjb3JkaW5nJyxcbiAgICAndXNlLWNhc2UtZGlhZ3JhbScsXG4gICAgJ2JkZC1kaWFncmFtJyxcbiAgICAncmVxdWlyZW1lbnQtZGlhZ3JhbScsXG4gICAgJ3BhY2thZ2UtZGlhZ3JhbScsXG4gICAgJ2ludGVybmFsLWJsb2NrLWRpYWdyYW0nLFxuICAgICdyZXF1aXJlbWVudC1jb250YWlubWVudC1yZWxhdGlvbnNoaXAnLFxuICAgICd1c2UtY2FzZScsXG4gICAgJ3VzZS1jYXNlLWV4dGVuc2lvbi1wb2ludCcsXG4gICAgJ2NvbW11bmljYXRpb24tcGF0aCcsXG4gICAgJ25vdGUtY29ubmVjdGlvbicsXG4gICAgJ3N1YmplY3QnLFxuICAgICdhdXRvLWxheW91dCcsXG4gICAgJ3JlcXVpcmVkLWludGVyZmFjZScsXG4gICAgJ3Byb3ZpZGVkLWludGVyZmFjZScsXG4gICAgJ3N1Yi1jb250ZW50JyxcbiAgICAnY29ubmVjdG9yJyxcbiAgICAnbG9jYWwtcHJvY2Vzcy1jYWxsJyxcbiAgICAnYWdncmVnYXRvcicsXG4gICAgJ3NwbGl0dGVyJyxcbiAgICAnY29udmVydGVyJyxcbiAgICAnY29udGVudC1tb2RpZmllcicsXG4gICAgJ21lc3NhZ2Utc3RhcnQtZXZlbnQnLFxuICAgICdtZXNzYWdlLWVuZC1ldmVudCcsXG4gICAgJ2VzY2FsYXRpb24tZW5kLWV2ZW50JyxcbiAgICAnc3RhcnQtdGltZXItZXZlbnQnLFxuICAgICdlcnJvci1zdGFydC1ldmVudCcsXG4gICAgJ2Vycm9yLWVuZC1ldmVudCcsXG4gICAgJ2NvbnRlbnQtZW5yaWNoZXInLFxuICAgICdyZWFsaXphdGlvbicsXG4gICAgJ2ludGVyZmFjZScsXG4gICAgJ3VzaW5lc3MtY2FwYWJpbGl0eScsXG4gICAgJ3Byb2dyZXNzLWdyb3VwJyxcbiAgICAndmFsdWUtc3RyZWFtJyxcbiAgICAndmFsdWUtZmxvdycsXG4gICAgJ2FwcGxpY2F0aW9uJyxcbiAgICAnZXRsLWpvYicsXG4gICAgJ2J1c2luZXNzLXNlcnZpY2UnLFxuICAgICdhcHBsaWNhdGlvbi1zZXJ2aWNlJyxcbiAgICAnbmV0d29yay1ub2RlJyxcbiAgICAnbmV0d29yaycsXG4gICAgJ2RlcGxveW1lbnQtaW5zdGFuY2UnLFxuICAgICdpbnRyYW5ldCcsXG4gICAgJ21vYmlsZS1uZXR3b3JrJyxcbiAgICAncHJpdmF0ZS1jbG91ZCcsXG4gICAgJ2FudGVubmEnLFxuICAgICdmaXJld2FsbCcsXG4gICAgJ2h1YicsXG4gICAgJ21vZGVtJyxcbiAgICAncmVwZWF0ZXInLFxuICAgICdyb3V0ZXInLFxuICAgICdzd2l0Y2gnLFxuICAgICdzYXRlbGxpdGUnLFxuICAgICdzeXN0ZW0tMicsXG4gICAgJ3N0YXR1cy1hY3RpdmF0aW5nJyxcbiAgICAnc3RhdHVzLXN1c3BlbmRlZCcsXG4gICAgJ3N0YXR1cy1zdXNwZW5kaW5nJyxcbiAgICAnc3RhdHVzLXRlcm1pbmF0ZWQnLFxuICAgICdzdGF0dXMtdGVybWluYXRpbmcnLFxuICAgICdzb2x1dGlvbi1ub3QtbGljZW5zZWQnLFxuICAgICdjbGVhci1hbGwtbWFwcGluZycsXG4gICAgJ21hcC1hbGwtZmllbGRzJ1xuXTtcbmV4cG9ydCBjb25zdCBJY29uQnVzaW5lc3NTdWl0ZSA9IFtcbiAgICAnaGVhcnQnLFxuICAgICdxdWFydGVyJyxcbiAgICAneWVhcicsXG4gICAgJ2VxdWFsaXplcicsXG4gICAgJ2NvbXBvbmVudCcsXG4gICAgJ2NvbXBvbmVudC1wcml2YXRlJyxcbiAgICAncmF3LW1hdGVyaWFsJyxcbiAgICAnc21zJyxcbiAgICAnYWRkLW5vdGUnLFxuICAgICdjaGFuZ2UtdGltZS1ob3Jpem9uJyxcbiAgICAndGFibGUtY2hhcnQtY3VzdG9taXphdGlvbicsXG4gICAgJ2RlbGVnYXRlZC1pbXBvcnRhbnQtdGFzaycsXG4gICAgJ2ZvcmtsaWZ0JyxcbiAgICAnY29pbnMnLFxuICAgICdmaWx0ZXItbWVudScsXG4gICAgJ3RhcmdldC10by1kYXRlJyxcbiAgICAncHJvZ3JhbScsXG4gICAgJ3BoYXNlJyxcbiAgICAnY2hlY2tsaXN0JyxcbiAgICAnbWlycm9yZWQtdGFzaycsXG4gICAgJ3N1Yi1wcm9qZWN0JyxcbiAgICAnY2hlY2tsaXN0LWl0ZW0nLFxuICAgICdhZGhvYy1hbmFseXNpcycsXG4gICAgJ2NoYW5nZS1hbmFseXNpcycsXG4gICAgJ3Jldmlldy1kZW1hbmRzJyxcbiAgICAncHJvamVjdC1kZWZpbml0aW9uJyxcbiAgICAnZGF0YS1hY2Nlc3MnLFxuICAgICdkZWZpbmUtc2hvcnRhZ2UnLFxuICAgICdyZXZpZXctc3VwcGxpZXMnLFxuICAgICdjaGFuZ2UtbG9nJyxcbiAgICAncHJpb3JpdHktMScsXG4gICAgJ3ByaW9yaXR5LTInLFxuICAgICdqYW0nLFxuICAgICdtaWxlc3RvbmUnLFxuICAgICdidWxsZXRpbmctd2l0aC1udW1iZXJzJyxcbiAgICAnZGVjcmVhc2UtaW5kZW50JyxcbiAgICAnaW5jcmVhc2UtaW5kZW50JyxcbiAgICAnYm9sZCcsXG4gICAgJ2l0YWxpYycsXG4gICAgJ3N0cmlrZS10aHJvdWdoJyxcbiAgICAndW5kZXJsaW5lJyxcbiAgICAnc2F2ZS1hcycsXG4gICAgJ3NlZ21lbnRhdGlvbicsXG4gICAgJ2NvbnRleHQtbWVudScsXG4gICAgJ3NuYXBzaG90JyxcbiAgICAnc3VidHJhY3Rpb24tYi1hJyxcbiAgICAnc3VidHJhY3Rpb24tYS1iJyxcbiAgICAnaW50ZXJzZWN0aW9uJyxcbiAgICAndW5pb24nLFxuICAgICd0b3AnLFxuICAgICdib3R0b20nLFxuICAgICdwYWdlLXVwJyxcbiAgICAncGFnZS1kb3duJyxcbiAgICAnY3JlYXRlLWRhc2hib2FyZCcsXG4gICAgJ3hjZWxzaXVzLWZpbGUnLFxuICAgICdvcGVuLWZvbGRlcicsXG4gICAgJ25ldXRyYWwnLFxuICAgICdzcGxpdC1zZWdtZW50YXRpb24nLFxuICAgICdtYW5hZ2UtYnVkZ2V0JyxcbiAgICAnYmxvY2tlZCcsXG4gICAgJ3BpcGV0dGUnLFxuICAgICd0b3AtcmVjaXBlJyxcbiAgICAncmVjaXBlJyxcbiAgICAnaW5ncmVkaWVudHMnLFxuICAgICdtdWx0aXBsZS1jaGFydHMnLFxuICAgICdkZXNjZW5kaW5nLWJhcnMnLFxuICAgICdkZXNjZW5kaW5nLXN0YWNrZWQtYmFycycsXG4gICAgJ3NjYXR0ZXItcGxvdCcsXG4gICAgJ3NwaWxsJyxcbiAgICAnZmlyZScsXG4gICAgJ3N0cmF0aWZpY2F0aW9uJyxcbiAgICAncmVsYXRpb25zaGlwJyxcbiAgICAnbWFyZ2luLWRlY29tcG9zaXRpb24nLFxuICAgICdjb250cm9sLWdyb3VwJyxcbiAgICAnY29tcGFyaXNvbi1jaGFydCcsXG4gICAgJ3Jlc3BvbnNpYmxlLWFyZWEnLFxuICAgICdpbmNyZWFzZScsXG4gICAgJ2RlY3JlYXNlJyxcbiAgICAnY3VycmVudC1zdG9jaycsXG4gICAgJ2V4cGVkaXRlJyxcbiAgICAncG9zdHBvbmUnLFxuICAgICdhcHByb3ZlZCcsXG4gICAgJ3BhcnRpYWxseS1kZWxpdmVyZWQnLFxuICAgICdsaW5lLWJhci1jaGFydCcsXG4gICAgJ2V4cGFuZC1hbGwnLFxuICAgICdzdWJtaXNzaW9uJyxcbiAgICAnY2hhbmdlLXJlcXVlc3QnLFxuICAgICdjb2x1bW4tdW5zZWxlY3RlZCcsXG4gICAgJ2NvbHVtbi1zZWxlY3RlZCcsXG4gICAgJ3Jvdy11bnNlbGVjdGVkJyxcbiAgICAncm93LXNlbGVjdGVkJyxcbiAgICAnc3RvY2stcmVxdWlyZW1lbnRzJyxcbiAgICAnZ2VuZGVyLW1hbGUtYW5kLWZlbWFsZScsXG4gICAgJ21hcml0YWwtc3RhdHVzJyxcbiAgICAnYmlydGhkYXknLFxuICAgICdjbGFzc2lmaWNhdGlvbicsXG4gICAgJ21hcmtlZC1mb3ItZGVsZXRpb24nLFxuICAgICdidWxsZXQtY2hhcnQnLFxuICAgICdyZW1vdmUtZmlsdGVyJyxcbiAgICAnYmFuay1hY2NvdW50JyxcbiAgICAnc2F2aW5ncy1hY2NvdW50JyxcbiAgICAnZGViaXQtY2FyZCcsXG4gICAgJ3ZpcC1jdXN0b21lcicsXG4gICAgJ3VuZGVzaXJhYmxlLWN1c3RvbWVyJyxcbiAgICAnYW5zd2VyZWQtY2hhbmdlLXJlcXVlc3QnLFxuICAgICdjb2xsZWN0ZWQtY2hhbmdlLXJlcXVlc3QnLFxuICAgICdkcmF3LWZyZWVoYW5kJyxcbiAgICAnZHJhdy1jaXJjbGUnLFxuICAgICdjb21wbGV0ZWQnLFxuICAgICdhbnN3ZXJlZCcsXG4gICAgJ3RyYWZmaWMtY29uZScsXG4gICAgJ3RyYWZmaWMtbGlnaHRzJyxcbiAgICAnY29udGFpbmVyJyxcbiAgICAnY29udGFpbmVyLWxvYWRpbmcnLFxuICAgICd0cmFmZmljLWphbScsXG4gICAgJ3Byb2R1Y3RzJyxcbiAgICAnc2lkZXBhbmVsJyxcbiAgICAnc3BsaXQtc2NyZWVuJyxcbiAgICAndHJ1Y2stZHJpdmVyJyxcbiAgICAna2VlcC1zZWdtZW50JyxcbiAgICAnZXhjbHVkZS1zZWdtZW50JyxcbiAgICAnc2VwYXJhdGUtc2VnbWVudHMnLFxuICAgICdkaXN0cmlidXRlLXNlZ21lbnRzJyxcbiAgICAnbmV4dC1vcGVuLWl0ZW0nLFxuICAgICd3aGVyZS11c2VkJyxcbiAgICAnb3V0Ym91bmQtZGVsaXZlcnknLFxuICAgICdvdXRib3VuZC1kZWxpdmVyeS1pbmFjdGl2ZScsXG4gICAgJ291dGJvdW5kLWRlbGl2ZXJ5LWFjdGl2ZScsXG4gICAgJ3RhcmdldCcsXG4gICAgJ3NvdXJjZScsXG4gICAgJ21hdGVyaWFsJyxcbiAgICAnZHVlLWRhdGUnLFxuICAgICdvdmVyZHVlJyxcbiAgICAnc2V0LWFzLWRlZmF1bHQnLFxuICAgICdmYWNlLXZlcnktYmFkJyxcbiAgICAnZmFjZS1iYWQnLFxuICAgICdmYWNlLXNrZXB0aWNhbCcsXG4gICAgJ2ZhY2UtbmV1dHJhbCcsXG4gICAgJ2ZhY2UtYXN0b25pc2hlZCcsXG4gICAgJ2ZhY2UtaGFwcHknLFxuICAgICdmYWNlLXZlcnktaGFwcHknLFxuICAgICdmYWNlLWF3ZnVsJyxcbiAgICAnZmFjZS1kZXZhc3RhdGVkJyxcbiAgICAnZmFjZS1va2V5LWRva2V5JyxcbiAgICAnYWxhcm0nLFxuICAgICdhY3RpdmF0ZScsXG4gICAgJ3NlZ21lbnQtcHJldmlldy1yZWZlcmVuY2Utb2JqZWN0cycsXG4gICAgJ3JhZGl1cycsXG4gICAgJ3BvbHlnb25lLWJsYWNrJyxcbiAgICAncG9seWdvbmUtd2hpdGUnLFxuICAgICdwbG95Z29uZScsXG4gICAgJ25vLWZpbHRlcicsXG4gICAgJ2dyaXAnLFxuICAgICd3YXRlcicsXG4gICAgJ2dhcycsXG4gICAgJ2xpcXVpZCcsXG4gICAgJ3RpbWUtZGVwb3NpdCcsXG4gICAgJ2Vhcmx5LXdpZHRoZHJhd2FsLWZvci10aW1lLWRlcG9zaXRzJyxcbiAgICAndHJ1Y2stbG9hZCcsXG4gICAgJ3RydWNrLXVubG9hZCcsXG4gICAgJ3RydWNrLWxvYWQtdW5sb2FkJyxcbiAgICAncGhhcm1hY3knLFxuICAgICdtZWRpY2luZS1zeXJ1cCcsXG4gICAgJ3JlbWluZGVyJyxcbiAgICAnbWVkaWNpbmUtcGlsbCcsXG4gICAgJ21lZGljaW5lLW9pbnRtZW50JyxcbiAgICAnbWVkaWNpbmUtZHJvcHMnLFxuICAgICdibG9vZC10ZXN0JyxcbiAgICAndGVtcGVyYXR1cmUnLFxuICAgICdtZWRpY2luZS1pbmhhbGVyJyxcbiAgICAnZm9vdC1zdGVwcycsXG4gICAgJ3dlaWdodCcsXG4gICAgJ2hlYWx0aC10cmFja2luZycsXG4gICAgJ2Jsb29kLXByZXNzdXJlJyxcbiAgICAnaW1tdW5pemF0aW9uJyxcbiAgICAnYWxsZXJnaWVzJyxcbiAgICAncmVzY2hlZHVsaW5nMicsXG4gICAgJ3Jlc2VxdWVuY2luZzInLFxuICAgICduby10aW1lLWNoYW5nZScsXG4gICAgJ3RpbWUtY2hhbmdlJyxcbiAgICAnc21hcnQtbWF0Y2hlcicsXG4gICAgJ2xlZ2FsLXNlY3Rpb24nLFxuICAgICdjYXVzZXMnLFxuICAgICdlZmZlY3RzJyxcbiAgICAnc2hhcmVkLWJ5LW1lJyxcbiAgICAnc2hhcmVkLXdpdGgtbWUnLFxuICAgICdhbGVydC1ncm91cHMnLFxuICAgICdmdW5jdGlvbi1hbGVydCcsXG4gICAgJ2Z1bmN0aW9uLWhpZXJhcmNoeScsXG4gICAgJ3JmaWQnLFxuICAgICdpbnB1dCcsXG4gICAgJ3NvZnR3YXJlLWl0ZW0nLFxuICAgICdwcm9kdWN0LXZpZXcnLFxuICAgICdzb2Z0d2FyZS1pdGVtLXZhcmlhbnQnLFxuICAgICdsaWdodGhvdXNlJyxcbiAgICAnZGVtYW5kLXVuaXQnLFxuICAgICdmbWEtbWFuYWdlbWVudCcsXG4gICAgJ2ZtYS12YWxpZGF0aW9uJyxcbiAgICAnZm1hLWFuYWx5dGljcycsXG4gICAgJ2NsYXNzJyxcbiAgICAnb3ZlcnZpZXcnLFxuICAgICdwcm9kdWN0aW9uJyxcbiAgICAnc3ViY2xhc3MnLFxuICAgICd2YXJpYW50LWNvbmZpZ3VyYXRpb24nLFxuICAgICdzdW0nLFxuICAgICdlbXB0eS10cmFpbGVyJyxcbiAgICAnZG9vcicsXG4gICAgJ2xvYWRpbmctcG9pbnQnLFxuICAgICdzdG9jay13YXJlaG91c2UnLFxuICAgICdnYXRlJyxcbiAgICAndGltZXNlcmllcy13YXRlcmZhbGwtY2hhcnQnLFxuICAgICdzdGFnZXMtd2FybmluZycsXG4gICAgJ2VtcHR5LXdhcm5pbmcnXG5dO1xuIl19
@@ -11,13 +11,14 @@ export class GridMoDataList {
11
11
  // items.forEach((item) => (item.$Visibility = true));
12
12
  // return items;
13
13
  // }),
14
- tap((items) => (this.resultItems = items)));
14
+ tap((items) => (this.resultItems = items)), tap((items) => console.log(items)));
15
15
  }
16
16
  getSortby() {
17
17
  return this.gridSetting.SortSettingList.map((c) => ({
18
18
  field: c.Name,
19
- direction: this.getSortDirection(c.SortDirection)
20
- })).concat({ field: '$NewInlineMo', direction: SortDirection.DESC });
19
+ direction: this.getSortDirection(c.SortDirection),
20
+ isNumber: this.visibleColumns?.find((d) => d.Name === c.Name)?.FieldType === 'عدد'
21
+ })).concat({ field: '$NewInlineMo', direction: SortDirection.DESC, isNumber: false });
21
22
  }
22
23
  getSortDirection(direction) {
23
24
  switch (direction) {
@@ -80,9 +81,9 @@ const sortEx = (sortBy, moDataList) => {
80
81
  return items.sort((a, b) =>
81
82
  /* eslint-disable */
82
83
  newSortBy
83
- .map(({ field, direction }) => {
84
+ .map(({ field, direction, isNumber }) => {
84
85
  const ascModifier = direction === SortDirection.ASC ? 1 : -1;
85
- return Constants.sort(a, b, field) * ascModifier;
86
+ return Constants.sort(a, b, field, isNumber) * ascModifier;
86
87
  })
87
88
  .find((result, index, list) => result !== 0 || index === list.length - 1));
88
89
  };
@@ -216,4 +217,4 @@ const filterBySelect = (item, collectionSelectFilter) => {
216
217
  }
217
218
  return !filterValues.length || collectionSelectFilter.exclude ? !result : result;
218
219
  };
219
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1kYXRhLXByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvbW9kZWxzL2dyaWQtZGF0YS1wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBT0gsYUFBYSxFQUNiLGlCQUFpQixFQUVwQixNQUFNLDJCQUEyQixDQUFDO0FBRW5DLE9BQU8sRUFBRSxLQUFLLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR2xELE9BQU8sS0FBSyxTQUFTLE1BQU0sY0FBYyxDQUFDO0FBRTFDLE1BQU0sT0FBTyxjQUFjO0lBT3ZCLFlBQ0ksV0FBOEMsRUFDOUMsWUFBcUMsRUFDckMsZUFBK0MsRUFDL0MsV0FBK0I7UUFFL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQ2QsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQ3RELFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUN6RSxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFDckUsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUMsQ0FBQyxD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UyxHQUFHLFNBQVMsQ0FBQyxjQUFjLENBQUMsdUJBQXVCLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2hGLElBQUksTUFBTSxHQUFHLEtBQUssQ0FBQztJQUVuQixRQUFRLHVCQUF1QixDQUFDLFFBQVEsRUFBRTtRQUN0QyxLQUFLLFNBQVMsQ0FBQztRQUNmO1lBQ0ksTUFBTSxHQUFHLFNBQVMsS0FBSyxXQUFXLENBQUM7S0FDMUM7SUFFRCxPQUFPLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztBQUM5RCxDQUFDLENBQUM7QUFFRixNQUFNLGNBQWMsR0FBRyxDQUFDLElBQXlCLEVBQUUsc0JBQThDLEVBQVcsRUFBRTtJQUMxRyxNQUFNLFlBQVksR0FBRyxzQkFBc0IsQ0FBQyxLQUFLLENBQUM7SUFDbEQsTUFBTSxTQUFTLEdBQUcsU0FBUyxDQUFDLGNBQWMsQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDL0UsSUFBSSxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBRW5CLFFBQVEsc0JBQXNCLENBQUMsUUFBUSxFQUFFO1FBQ3JDLEtBQUssU0FBUyxDQUFDO1FBQ2Y7WUFDSSxNQUFNLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztLQUNqRDtJQUVELE9BQU8sQ0FBQyxZQUFZLENBQUMsTUFBTSxJQUFJLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztBQUNyRixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQ29sbGVjdGlvbkJvb2xlYW5GaWx0ZXIsXHJcbiAgICBDb2xsZWN0aW9uRGF0ZUZpbHRlcixcclxuICAgIENvbGxlY3Rpb25OdW1iZXJGaWx0ZXIsXHJcbiAgICBDb2xsZWN0aW9uU2VsZWN0RmlsdGVyLFxyXG4gICAgQ29sbGVjdGlvblNvcnQsXHJcbiAgICBDb2xsZWN0aW9uU3RyaW5nRmlsdGVyLFxyXG4gICAgU29ydERpcmVjdGlvbixcclxuICAgIFRhYmxlRGF0YVByb3ZpZGVyLFxyXG4gICAgVGFibGVTdGF0ZVxyXG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0nO1xyXG5pbXBvcnQgeyBEYXRldGltZUFkYXB0ZXIsIEZkRGF0ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZSc7XHJcbmltcG9ydCB7IG1lcmdlLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgR3JpZFNldHRpbmcsIE1ldGFvYmplY3REYXRhTW9kZWwsIFJlcG9ydFZpZXdDb2x1bW4gfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XHJcbmltcG9ydCAqIGFzIENvbnN0YW50cyBmcm9tICcuLi9jb25zdGFudHMnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEdyaWRNb0RhdGFMaXN0IHtcclxuICAgIGl0ZW1zOiBNZXRhb2JqZWN0RGF0YU1vZGVsW107XHJcbiAgICByZXN1bHRJdGVtczogTWV0YW9iamVjdERhdGFNb2RlbFtdO1xyXG4gICAgZ3JpZFNldHRpbmc6IEdyaWRTZXR0aW5nO1xyXG4gICAgdmlzaWJsZUNvbHVtbnM6IFJlcG9ydFZpZXdDb2x1bW5bXTtcclxuICAgIHNlYXJjaFRlcm06IHN0cmluZztcclxuICAgIGRhdGEkOiBPYnNlcnZhYmxlPE1ldGFvYmplY3REYXRhTW9kZWxbXT47XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBtb0RhdGFMaXN0JDogT2JzZXJ2YWJsZTxNZXRhb2JqZWN0RGF0YU1vZGVsW10+LFxyXG4gICAgICAgIGdyaWRTZXR0aW5nJDogT2JzZXJ2YWJsZTxHcmlkU2V0dGluZz4sXHJcbiAgICAgICAgdmlzaWJsZUNvbHVtbnMkOiBPYnNlcnZhYmxlPFJlcG9ydFZpZXdDb2x1bW5bXT4sXHJcbiAgICAgICAgc2VhcmNoVGVybSQ6IE9ic2VydmFibGU8c3RyaW5nPlxyXG4gICAgKSB7XHJcbiAgICAgICAgdGhpcy5kYXRhJCA9IG1lcmdlKFxyXG4gICAgICAgICAgICBtb0RhdGFMaXN0JC5waXBlKHRhcCgoaXRlbXMpID0+ICh0aGlzLml0ZW1zID0gaXRlbXMpKSksXHJcbiAgICAgICAgICAgIGdyaWRTZXR0aW5nJC5waXBlKHRhcCgoZ3JpZFNldHRpbmcpID0+ICh0aGlzLmdyaWRTZXR0aW5nID0gZ3JpZFNldHRpbmcpKSksXHJcbiAgICAgICAgICAgIHNlYXJjaFRlcm0kLnBpcGUodGFwKChzZWFyY2hUZXJtKSA9PiAodGhpcy5zZWFyY2hUZXJtID0gc2VhcmNoVGVybSkpKSxcclxuICAgICAgICAgICAgdmlzaWJsZUNvbHVtbnMkLnBpcGUodGFwKCh2aXNpYmxlQ29sdW1ucykgPT4gKHRoaXMudmlzaWJsZUNvbHVtbnMgPSB2aXNpYmxlQ29sdW1ucykpKVxyXG4gICAgICAgICkucGlwZShcclxuICAgICAgICAgICAgZmlsdGVyKCgpID0+ICEhdGhpcy5pdGVtcyksXHJcbiAgICAgICAgICAgIG1hcCgoKSA9PlxyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWFyY2hUZXJtXHJcbiAgICAgICAgICAgICAgICAgICAgPyBzZWFyY2hFeChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaFRlcm0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52aXNpYmxlQ29sdW1ucy5tYXAoKGMpID0+IGMuTmFtZSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pdGVtc1xyXG4gICAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICAgIDogdGhpcy5pdGVtc1xyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgICAgICBtYXAoKCkgPT4gKHRoaXMuZ3JpZFNldHRpbmc/LlNvcnRTZXR0aW5nTGlzdCA/IHNvcnRFeCh0aGlzLmdldFNvcnRieSgpLCB0aGlzLml0ZW1zKSA6IHRoaXMuaXRlbXMpKSxcclxuICAgICAgICAgICAgLy8gbWFwKChpdGVtcykgPT4ge1xyXG4gICAgICAgICAgICAvLyAgICAgaXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4gKGl0ZW0uJFZpc2liaWxpdHkgPSB0cnVlKSk7XHJcbiAgICAgICAgICAgIC8vICAgICByZXR1cm4gaXRlbXM7XHJcbiAgICAgICAgICAgIC8vIH0pLFxyXG4gICAgICAgICAgICB0YXAoKGl0ZW1zKSA9PiAodGhpcy5yZXN1bHRJdGVtcyA9IGl0ZW1zKSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG4gICAgZ2V0U29ydGJ5KCk6IENvbGxlY3Rpb25Tb3J0W10ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdyaWRTZXR0aW5nLlNvcnRTZXR0aW5nTGlzdC5tYXAoKGMpID0+ICh7XHJcbiAgICAgICAgICAgIGZpZWxkOiBjLk5hbWUsXHJcbiAgICAgICAgICAgIGRpcmVjdGlvbjogdGhpcy5nZXRTb3J0RGlyZWN0aW9uKGMuU29ydERpcmVjdGlvbilcclxuICAgICAgICB9KSkuY29uY2F0KHsgZmllbGQ6ICckTmV3SW5saW5lTW8nLCBkaXJlY3Rpb246IFNvcnREaXJlY3Rpb24uREVTQyB9KTtcclxuICAgIH1cclxuICAgIGdldFNvcnREaXJlY3Rpb24oZGlyZWN0aW9uKTogU29ydERpcmVjdGlvbiB7XHJcbiAgICAgICAgc3dpdGNoIChkaXJlY3Rpb24pIHtcclxuICAgICAgICAgICAgY2FzZSAnQVNDJzpcclxuICAgICAgICAgICAgICAgIHJldHVybiBTb3J0RGlyZWN0aW9uLkFTQztcclxuICAgICAgICAgICAgY2FzZSAnREVTQyc6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gU29ydERpcmVjdGlvbi5ERVNDO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gU29ydERpcmVjdGlvbi5OT05FO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgR3JpZERhdGFQcm92aWRlciBleHRlbmRzIFRhYmxlRGF0YVByb3ZpZGVyPE1ldGFvYmplY3REYXRhTW9kZWw+IHtcclxuICAgIGl0ZW1zOiBNZXRhb2JqZWN0RGF0YU1vZGVsW10gPSBbXTtcclxuICAgIG1vRGF0YUxpc3QkOiBPYnNlcnZhYmxlPE1ldGFvYmplY3REYXRhTW9kZWxbXT47XHJcbiAgICB0b3RhbEl0ZW1zID0gMDtcclxuICAgIGxhc3RTdGF0ZTogVGFibGVTdGF0ZTtcclxuICAgIGRhdGVUaW1lQWRhcHRlcjogRGF0ZXRpbWVBZGFwdGVyPEZkRGF0ZT47XHJcbiAgICBjb25zdHJ1Y3Rvcihtb0RhdGFMaXN0OiBNZXRhb2JqZWN0RGF0YU1vZGVsW10pIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIHRoaXMuaXRlbXMgPSBtb0RhdGFMaXN0O1xyXG4gICAgfVxyXG4gICAgZmV0Y2godGFibGVTdGF0ZTogVGFibGVTdGF0ZSk6IE9ic2VydmFibGU8TWV0YW9iamVjdERhdGFNb2RlbFtdPiB7XHJcbiAgICAgICAgdGhpcy5sYXN0U3RhdGUgPSB0YWJsZVN0YXRlO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldE1vRGF0YUxpc3QodGFibGVTdGF0ZSk7XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIGdldE1vRGF0YUxpc3QodGFibGVTdGF0ZTogVGFibGVTdGF0ZSk6IE9ic2VydmFibGU8YW55W10+IHtcclxuICAgICAgICB0aGlzLnRvdGFsSXRlbXMgPSB0aGlzLml0ZW1zLmxlbmd0aDtcclxuICAgICAgICByZXR1cm4gb2YodGhpcy5pdGVtcykucGlwZShcclxuICAgICAgICAgICAgbWFwKChpdGVtcykgPT4gKHRhYmxlU3RhdGUuc2VhcmNoSW5wdXQgPyBzZWFyY2godGFibGVTdGF0ZSwgaXRlbXMpIDogaXRlbXMpKSxcclxuICAgICAgICAgICAgbWFwKChpdGVtcykgPT4gKHRhYmxlU3RhdGUuc29ydEJ5ID8gc29ydCh0YWJsZVN0YXRlLCBpdGVtcykgOiBpdGVtcykpXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGZpbHRlcih7IGZpbHRlckJ5IH06IFRhYmxlU3RhdGUpOiBNZXRhb2JqZWN0RGF0YU1vZGVsW10ge1xyXG4gICAgICAgIGxldCBpdGVtcyA9IHRoaXMuaXRlbXM7XHJcblxyXG4gICAgICAgIGZpbHRlckJ5XHJcbiAgICAgICAgICAgIC5maWx0ZXIoKHsgZmllbGQgfSkgPT4gISFmaWVsZClcclxuICAgICAgICAgICAgLmZvckVhY2goKHJ1bGUpID0+IHtcclxuICAgICAgICAgICAgICAgIGl0ZW1zID0gaXRlbXMuZmlsdGVyKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChydWxlLmZpZWxkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ25hbWUnOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdkZXNjcmlwdGlvbic6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3N0YXR1cyc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3N0YXR1c0NvbG9yJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmaWx0ZXJCeVN0cmluZyhpdGVtLCBydWxlIGFzIENvbGxlY3Rpb25TdHJpbmdGaWx0ZXIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdwcmljZS52YWx1ZSc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmlsdGVyQnlOdW1iZXIoaXRlbSwgcnVsZSBhcyBDb2xsZWN0aW9uTnVtYmVyRmlsdGVyKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAndmVyaWZpZWQnOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZpbHRlckJ5Qm9vbGVhbihpdGVtLCBydWxlIGFzIENvbGxlY3Rpb25Cb29sZWFuRmlsdGVyKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnZGF0ZSc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmlsdGVyQnlEYXRlKGl0ZW0sIHJ1bGUgYXMgQ29sbGVjdGlvbkJvb2xlYW5GaWx0ZXIsIHRoaXMuZGF0ZVRpbWVBZGFwdGVyKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHJldHVybiBpdGVtcztcclxuICAgIH1cclxufVxyXG5jb25zdCBzb3J0ID0gKHsgc29ydEJ5IH06IFRhYmxlU3RhdGUsIG1vRGF0YUxpc3Q6IE1ldGFvYmplY3REYXRhTW9kZWxbXSk6IE1ldGFvYmplY3REYXRhTW9kZWxbXSA9PlxyXG4gICAgc29ydEV4KHNvcnRCeSwgbW9EYXRhTGlzdCk7XHJcblxyXG5jb25zdCBzb3J0RXggPSAoXHJcbiAgICBzb3J0Qnk6IHsgZmllbGQ6IHN0cmluZyB8IG51bGw7IGRpcmVjdGlvbjogc3RyaW5nIH1bXSxcclxuICAgIG1vRGF0YUxpc3Q6IE1ldGFvYmplY3REYXRhTW9kZWxbXVxyXG4pOiBNZXRhb2JqZWN0RGF0YU1vZGVsW10gPT4ge1xyXG4gICAgY29uc3QgaXRlbXMgPSBtb0RhdGFMaXN0LnNsaWNlKCk7XHJcblxyXG4gICAgY29uc3QgbmV3U29ydEJ5ID0gc29ydEJ5LmZpbHRlcigoeyBmaWVsZCB9KSA9PiAhIWZpZWxkKTtcclxuXHJcbiAgICBpZiAobmV3U29ydEJ5Lmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIHJldHVybiBpdGVtcztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gaXRlbXMuc29ydChcclxuICAgICAgICAoYSwgYikgPT5cclxuICAgICAgICAgICAgLyogZXNsaW50LWRpc2FibGUgKi9cclxuICAgICAgICAgICAgbmV3U29ydEJ5XHJcbiAgICAgICAgICAgICAgICAubWFwKCh7IGZpZWxkLCBkaXJlY3Rpb24gfSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFzY01vZGlmaWVyID0gZGlyZWN0aW9uID09PSBTb3J0RGlyZWN0aW9uLkFTQyA/IDEgOiAtMTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ29uc3RhbnRzLnNvcnQoYSwgYiwgZmllbGQpICogYXNjTW9kaWZpZXI7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgLmZpbmQoKHJlc3VsdCwgaW5kZXgsIGxpc3QpID0+IHJlc3VsdCAhPT0gMCB8fCBpbmRleCA9PT0gbGlzdC5sZW5ndGggLSAxKSFcclxuICAgICk7XHJcbn07XHJcbmNvbnN0IHNlYXJjaCA9ICh7IHNlYXJjaElucHV0LCBjb2x1bW5zIH06IFRhYmxlU3RhdGUsIGl0ZW1zOiBNZXRhb2JqZWN0RGF0YU1vZGVsW10pOiBNZXRhb2JqZWN0RGF0YU1vZGVsW10gPT4ge1xyXG4gICAgcmV0dXJuIHNlYXJjaEV4KHNlYXJjaElucHV0Py50ZXh0LCBjb2x1bW5zLCBpdGVtcyk7XHJcbn07XHJcbmNvbnN0IHNlYXJjaEV4ID0gKHNlYXJjaFRlcm0sIGNvbHVtbnM6IHN0cmluZ1tdLCBpdGVtczogTWV0YW9iamVjdERhdGFNb2RlbFtdKTogTWV0YW9iamVjdERhdGFNb2RlbFtdID0+IHtcclxuICAgIGNvbnN0IHNlYXJjaFRleHQgPSBzZWFyY2hUZXJtIHx8ICcnO1xyXG4gICAgY29uc3Qga2V5c1RvU2VhcmNoQnkgPSBjb2x1bW5zO1xyXG5cclxuICAgIGlmIChzZWFyY2hUZXh0LnRyaW0oKSA9PT0gJycgfHwga2V5c1RvU2VhcmNoQnkubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgcmV0dXJuIGl0ZW1zO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGl0ZW1zLmZpbHRlcigoaXRlbSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHZhbHVlc0ZvclNlYXJjaCA9IGtleXNUb1NlYXJjaEJ5Lm1hcCgoa2V5KSA9PiBDb25zdGFudHMuZ2V0TmVzdGVkVmFsdWUoa2V5LCBpdGVtKSk7XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlc0ZvclNlYXJjaFxyXG4gICAgICAgICAgICAuZmlsdGVyKCh2YWx1ZSkgPT4gISF2YWx1ZSlcclxuICAgICAgICAgICAgLm1hcCgodmFsdWUpOiBzdHJpbmcgPT4gdmFsdWUudG9TdHJpbmcoKSlcclxuICAgICAgICAgICAgLnNvbWUoKHZhbHVlKSA9PiB2YWx1ZS50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFRleHQudG9Mb2NhbGVMb3dlckNhc2UoKSkpO1xyXG4gICAgfSk7XHJcbn07XHJcbmNvbnN0IGZpbHRlckJ5U3RyaW5nID0gKGl0ZW06IE1ldGFvYmplY3REYXRhTW9kZWwsIGNvbGxlY3Rpb25TdHJpbmdGaWx0ZXI6IENvbGxlY3Rpb25TdHJpbmdGaWx0ZXIpOiBib29sZWFuID0+IHtcclxuICAgIGNvbnN0IGZpbHRlclZhbHVlID0gY29sbGVjdGlvblN0cmluZ0ZpbHRlci52YWx1ZSAmJiBjb2xsZWN0aW9uU3RyaW5nRmlsdGVyLnZhbHVlLnRvTG9jYWxlTG93ZXJDYXNlKCk7XHJcbiAgICBjb25zdCBmaWx0ZXJWYWx1ZTIgPSAoY29sbGVjdGlvblN0cmluZ0ZpbHRlci52YWx1ZTIgJiYgY29sbGVjdGlvblN0cmluZ0ZpbHRlci52YWx1ZTIudG9Mb2NhbGVMb3dlckNhc2UoKSkgfHwgJyc7XHJcbiAgICBjb25zdCBpdGVtVmFsdWUgPSBDb25zdGFudHMuZ2V0TmVzdGVkVmFsdWUoY29sbGVjdGlvblN0cmluZ0ZpbHRlci5maWVsZCwgaXRlbSkudG9Mb2NhbGVMb3dlckNhc2UoKTtcclxuICAgIGxldCByZXN1bHQgPSBmYWxzZTtcclxuXHJcbiAgICBzd2l0Y2ggKGNvbGxlY3Rpb25TdHJpbmdGaWx0ZXIuc3RyYXRlZ3kpIHtcclxuICAgICAgICBjYXNlICdlcXVhbFRvJzpcclxuICAgICAgICAgICAgcmVzdWx0ID0gaXRlbVZhbHVlID09PSBmaWx0ZXJWYWx1ZTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnZ3JlYXRlclRoYW4nOlxyXG4gICAgICAgICAgICByZXN1bHQgPSBpdGVtVmFsdWUgPiBmaWx0ZXJWYWx1ZTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnZ3JlYXRlclRoYW5PckVxdWFsVG8nOlxyXG4gICAgICAgICAgICByZXN1bHQgPSBpdGVtVmFsdWUgPj0gZmlsdGVyVmFsdWU7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2xlc3NUaGFuJzpcclxuICAgICAgICAgICAgcmVzdWx0ID0gaXRlbVZhbHVlIDwgZmlsdGVyVmFsdWU7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2xlc3NUaGFuT3JFcXVhbFRvJzpcclxuICAgICAgICAgICAgcmVzdWx0ID0gaXRlbVZhbHVlIDw9IGZpbHRlclZhbHVlO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdiZXR3ZWVuJzpcclxuICAgICAgICAgICAgcmVzdWx0ID0gaXRlbVZhbHVlID49IGZpbHRlclZhbHVlICYmIGl0ZW1WYWx1ZSA8PSBmaWx0ZXJWYWx1ZTI7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2JlZ2luc1dpdGgnOlxyXG4gICAgICAgICAgICByZXN1bHQgPSBpdGVtVmFsdWUuc3RhcnRzV2l0aChmaWx0ZXJWYWx1ZSk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2VuZHNXaXRoJzpcclxuICAgICAgICAgICAgcmVzdWx0ID0gaXRlbVZhbHVlLmVuZHNXaXRoKGZpbHRlclZhbHVlKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnY29udGFpbnMnOlxyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIHJlc3VsdCA9IGl0ZW1WYWx1ZS5pbmNsdWRlcyhmaWx0ZXJWYWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGNvbGxlY3Rpb25TdHJpbmdGaWx0ZXIuZXhjbHVkZSA/ICFyZXN1bHQgOiByZXN1bHQ7XHJcbn07XHJcblxyXG5jb25zdCBmaWx0ZXJCeU51bWJlciA9IChpdGVtOiBNZXRhb2JqZWN0RGF0YU1vZGVsLCBjb2xsZWN0aW9uTnVtYmVyRmlsdGVyOiBDb2xsZWN0aW9uTnVtYmVyRmlsdGVyKTogYm9vbGVhbiA9PiB7XHJcbiAgICBjb25zdCBmaWx0ZXJWYWx1ZSA9IE51bWJlci5wYXJzZUZsb2F0KGNvbGxlY3Rpb25OdW1iZXJGaWx0ZXIudmFsdWUgYXMgdW5rbm93biBhcyBzdHJpbmcpO1xyXG4gICAgY29uc3QgZmlsdGVyVmFsdWUyID0gTnVtYmVyLnBhcnNlRmxvYXQoY29sbGVjdGlvbk51bWJlckZpbHRlci52YWx1ZTIgYXMgdW5rbm93biBhcyBzdHJpbmcpIHx8IDA7XHJcbiAgICBjb25zdCBpdGVtVmFsdWUgPSBOdW1iZXIucGFyc2VGbG9hdChDb25zdGFudHMuZ2V0TmVzdGVkVmFsdWUoY29sbGVjdGlvbk51bWJlckZpbHRlci5maWVsZCwgaXRlbSkpO1xyXG4gICAgbGV0IHJlc3VsdCA9IGZhbHNlO1xyXG5cclxuICAgIHN3aXRjaCAoY29sbGVjdGlvbk51bWJlckZpbHRlci5zdHJhdGVneSkge1xyXG4gICAgICAgIGNhc2UgJ2dyZWF0ZXJUaGFuJzpcclxuICAgICAgICAgICAgcmVzdWx0ID0gaXRlbVZhbHVlID4gZmlsdGVyVmFsdWU7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2dyZWF0ZXJUaGFuT3JFcXVhbFRvJzpcclxuICAgICAgICAgICAgcmVzdWx0ID0gaXRlbVZhbHVlID49IGZpbHRlclZhbHVlO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdsZXNzVGhhbic6XHJcbiAgICAgICAgICAgIHJlc3VsdCA9IGl0ZW1WYWx1ZSA8IGZpbHRlclZhbHVlO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdsZXNzVGhhbk9yRXF1YWxUbyc6XHJcbiAgICAgICAgICAgIHJlc3VsdCA9IGl0ZW1WYWx1ZSA8PSBmaWx0ZXJWYWx1ZTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnYmV0d2Vlbic6XHJcbiAgICAgICAgICAgIHJlc3VsdCA9IGl0ZW1WYWx1ZSA+PSBmaWx0ZXJWYWx1ZSAmJiBpdGVtVmFsdWUgPD0gZmlsdGVyVmFsdWUyO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdlcXVhbFRvJzpcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICByZXN1bHQgPSBpdGVtVmFsdWUgPT09IGZpbHRlclZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBjb2xsZWN0aW9uTnVtYmVyRmlsdGVyLmV4Y2x1ZGUgPyAhcmVzdWx0IDogcmVzdWx0O1xyXG59O1xyXG5cclxuY29uc3QgZmlsdGVyQnlEYXRlID0gPEQgPSBGZERhdGU+KFxyXG4gICAgaXRlbTogTWV0YW9iamVjdERhdGFNb2RlbCxcclxuICAgIGNvbGxlY3RvaW5EYXRlRmlsdGVyOiBDb2xsZWN0aW9uRGF0ZUZpbHRlcixcclxuICAgIGFkYXB0ZXI6IERhdGV0aW1lQWRhcHRlcjxEPlxyXG4pOiBib29sZWFuID0+IHtcclxuICAgIGNvbnN0IGZpbHRlclZhbHVlID0gY29sbGVjdG9pbkRhdGVGaWx0ZXIudmFsdWU7XHJcbiAgICBjb25zdCBmaWx0ZXJWYWx1ZTIgPSBjb2xsZWN0b2luRGF0ZUZpbHRlci52YWx1ZTI7XHJcbiAgICBjb25zdCBpdGVtVmFsdWUgPSBDb25zdGFudHMuZ2V0TmVzdGVkVmFsdWUoY29sbGVjdG9pbkRhdGVGaWx0ZXIuZmllbGQsIGl0ZW0pO1xyXG4gICAgY29uc3QgZGlmZiA9IGFkYXB0ZXIuY29tcGFyZURhdGUoaXRlbVZhbHVlLCBmaWx0ZXJWYWx1ZSk7XHJcbiAgICBsZXQgcmVzdWx0ID0gZmFsc2U7XHJcblxyXG4gICAgc3dpdGNoIChjb2xsZWN0b2luRGF0ZUZpbHRlci5zdHJhdGVneSkge1xyXG4gICAgICAgIGNhc2UgJ2FmdGVyJzpcclxuICAgICAgICAgICAgcmVzdWx0ID0gZGlmZiA+IDA7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ29uT3JBZnRlcic6XHJcbiAgICAgICAgICAgIHJlc3VsdCA9IGRpZmYgPj0gMDtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnYmVmb3JlJzpcclxuICAgICAgICAgICAgcmVzdWx0ID0gZGlmZiA8IDA7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2JlZm9yZU9yT24nOlxyXG4gICAgICAgICAgICByZXN1bHQgPSBkaWZmIDw9IDA7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2JldHdlZW4nOlxyXG4gICAgICAgICAgICByZXN1bHQgPSBhZGFwdGVyLmlzQmV0d2VlbihpdGVtVmFsdWUsIGZpbHRlclZhbHVlLCBmaWx0ZXJWYWx1ZTIpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgY2FzZSAnZXF1YWxUbyc6XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgcmVzdWx0ID0gYWRhcHRlci5kYXRlVGltZXNFcXVhbChpdGVtVmFsdWUsIGZpbHRlclZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gY29sbGVjdG9pbkRhdGVGaWx0ZXIuZXhjbHVkZSA/ICFyZXN1bHQgOiByZXN1bHQ7XHJcbn07XHJcblxyXG5jb25zdCBmaWx0ZXJCeUJvb2xlYW4gPSAoaXRlbTogTWV0YW9iamVjdERhdGFNb2RlbCwgY29sbGVjdGlvbkJvb2xlYW5GaWx0ZXI6IENvbGxlY3Rpb25Cb29sZWFuRmlsdGVyKTogYm9vbGVhbiA9PiB7XHJcbiAgICBjb25zdCBmaWx0ZXJWYWx1ZSA9IGNvbGxlY3Rpb25Cb29sZWFuRmlsdGVyLnZhbHVlO1xyXG4gICAgY29uc3QgaXRlbVZhbHVlID0gQ29uc3RhbnRzLmdldE5lc3RlZFZhbHVlKGNvbGxlY3Rpb25Cb29sZWFuRmlsdGVyLmZpZWxkLCBpdGVtKTtcclxuICAgIGxldCByZXN1bHQgPSBmYWxzZTtcclxuXHJcbiAgICBzd2l0Y2ggKGNvbGxlY3Rpb25Cb29sZWFuRmlsdGVyLnN0cmF0ZWd5KSB7XHJcbiAgICAgICAgY2FzZSAnZXF1YWxUbyc6XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgcmVzdWx0ID0gaXRlbVZhbHVlID09PSBmaWx0ZXJWYWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gY29sbGVjdGlvbkJvb2xlYW5GaWx0ZXIuZXhjbHVkZSA/ICFyZXN1bHQgOiByZXN1bHQ7XHJcbn07XHJcblxyXG5jb25zdCBmaWx0ZXJCeVNlbGVjdCA9IChpdGVtOiBNZXRhb2JqZWN0RGF0YU1vZGVsLCBjb2xsZWN0aW9uU2VsZWN0RmlsdGVyOiBDb2xsZWN0aW9uU2VsZWN0RmlsdGVyKTogYm9vbGVhbiA9PiB7XHJcbiAgICBjb25zdCBmaWx0ZXJWYWx1ZXMgPSBjb2xsZWN0aW9uU2VsZWN0RmlsdGVyLnZhbHVlO1xyXG4gICAgY29uc3QgaXRlbVZhbHVlID0gQ29uc3RhbnRzLmdldE5lc3RlZFZhbHVlKGNvbGxlY3Rpb25TZWxlY3RGaWx0ZXIuZmllbGQsIGl0ZW0pO1xyXG4gICAgbGV0IHJlc3VsdCA9IGZhbHNlO1xyXG5cclxuICAgIHN3aXRjaCAoY29sbGVjdGlvblNlbGVjdEZpbHRlci5zdHJhdGVneSkge1xyXG4gICAgICAgIGNhc2UgJ2VxdWFsVG8nOlxyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIHJlc3VsdCA9IGZpbHRlclZhbHVlcy5pbmNsdWRlcyhpdGVtVmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiAhZmlsdGVyVmFsdWVzLmxlbmd0aCB8fCBjb2xsZWN0aW9uU2VsZWN0RmlsdGVyLmV4Y2x1ZGUgPyAhcmVzdWx0IDogcmVzdWx0O1xyXG59O1xyXG4iXX0=
220
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1kYXRhLXByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvbW9kZWxzL2dyaWQtZGF0YS1wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBT0gsYUFBYSxFQUNiLGlCQUFpQixFQUVwQixNQUFNLDJCQUEyQixDQUFDO0FBRW5DLE9BQU8sRUFBRSxLQUFLLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR2xELE9BQU8sS0FBSyxTQUFTLE1BQU0sY0FBYyxDQUFDO0FBRTFDLE1BQU0sT0FBTyxjQUFjO0lBT3ZCLFlBQ0ksV0FBOEMsRUFDOUMsWUFBcUMsRUFDckMsZUFBK0MsRUFDL0MsV0FBK0I7UUFFL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQ2QsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQ3RELFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUN6RSxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFDckUsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQ3hGLENBQUMsSUFBSSxDQUNGLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUMxQixHQUFHLENBQUMsR0FBRyxFQUFFLENBQ0wsSUFBSSxDQUFDLFVBQVU7WUFDWCxDQUFDLENBQUMsUUFBUSxDQUNKLElBQUksQ0FBQyxVQUFVLEVBQ2YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFDdEMsSUFBSSxDQUFDLEtBQUssQ0FDYjtZQUNILENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUNuQixFQUNELEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xHLG1CQUFtQjtRQUNuQiwwREFBMEQ7UUFDMUQsb0JBQW9CO1FBQ3BCLE1BQU07UUFDTixHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUMxQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDckMsQ0FBQztJQUNOLENBQUM7SUFDRCxTQUFTO1FBQ0wsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDaEQsS0FBSyxFQUFFLENBQUMsQ0FBQyxJQUFJO1lBQ2IsU0FBUyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDO1lBQ2pELFFBQVEsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxLQUFLLEtBQUs7U0FDckYsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsYUFBYSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUMxRixDQUFDO0lBQ0QsZ0JBQWdCLENBQUMsU0FBUztRQUN0QixRQUFRLFNBQVMsRUFBRTtZQUNmLEtBQUssS0FBSztnQkFDTixPQUFPLGFBQWEsQ0FBQyxHQUFHLENBQUM7WUFDN0IsS0FBSyxNQUFNO2dCQUNQLE9BQU8sYUFBYSxDQUFDLElBQUksQ0FBQztTQUNqQztRQUNELE9BQU8sYUFBYSxDQUFDLElBQUksQ0FBQztJQUM5QixDQUFDO0NBQ0o7QUFFRCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsaUJBQXNDO0lBTXhFLFlBQVksVUFBaUM7UUFDekMsS0FBSyxFQUFFLENBQUM7UUFOWixVQUFLLEdBQTBCLEVBQUUsQ0FBQztRQUVsQyxlQUFVLEdBQUcsQ0FBQyxDQUFDO1FBS1gsSUFBSSxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUM7SUFDNUIsQ0FBQztJQUNELEtBQUssQ0FBQyxVQUFzQjtRQUN4QixJQUFJLENBQUMsU0FBUyxHQUFHLFVBQVUsQ0FBQztRQUM1QixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUNPLGFBQWEsQ0FBQyxVQUFzQjtRQUN4QyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO1FBQ3BDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQ3RCLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUM1RSxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDeEUsQ0FBQztJQUNOLENBQUM7SUFFTyxNQUFNLENBQUMsRUFBRSxRQUFRLEVBQWM7UUFDbkMsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUV2QixRQUFRO2FBQ0gsTUFBTSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQzthQUM5QixPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNkLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQzFCLFFBQVEsSUFBSSxDQUFDLEtBQUssRUFBRTtvQkFDaEIsS0FBSyxNQUFNLENBQUM7b0JBQ1osS0FBSyxhQUFhLENBQUM7b0JBQ25CLEtBQUssUUFBUSxDQUFDO29CQUNkLEtBQUssYUFBYTt3QkFDZCxPQUFPLGNBQWMsQ0FBQyxJQUFJLEVBQUUsSUFBOEIsQ0FBQyxDQUFDO29CQUNoRSxLQUFLLGFBQWE7d0JBQ2QsT0FBTyxjQUFjLENBQUMsSUFBSSxFQUFFLElBQThCLENBQUMsQ0FBQztvQkFDaEUsS0FBSyxVQUFVO3dCQUNYLE9BQU8sZUFBZSxDQUFDLElBQUksRUFBRSxJQUErQixDQUFDLENBQUM7b0JBQ2xFLEtBQUssTUFBTTt3QkFDUCxPQUFPLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBK0IsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7b0JBQ3JGO3dCQUNJLE9BQU8sS0FBSyxDQUFDO2lCQUNwQjtZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7UUFFUCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0NBQ0o7QUFDRCxNQUFNLElBQUksR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFjLEVBQUUsVUFBaUMsRUFBeUIsRUFBRSxDQUM5RixNQUFNLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBRS9CLE1BQU0sTUFBTSxHQUFHLENBQ1gsTUFBeUUsRUFDekUsVUFBaUMsRUFDWixFQUFFO0lBQ3ZCLE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUVqQyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRXhELElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7UUFDeEIsT0FBTyxLQUFLLENBQUM7S0FDaEI7SUFFRCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQ2IsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7SUFDTCxvQkFBb0I7SUFDcEIsU0FBUztTQUNKLEdBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFO1FBQ3BDLE1BQU0sV0FBVyxHQUFHLFNBQVMsS0FBSyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdELE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsR0FBRyxXQUFXLENBQUM7SUFDL0QsQ0FBQyxDQUFDO1NBQ0QsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFFLENBQ3JGLENBQUM7QUFDTixDQUFDLENBQUM7QUFDRixNQUFNLE1BQU0sR0FBRyxDQUFDLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBYyxFQUFFLEtBQTRCLEVBQXlCLEVBQUU7SUFDekcsT0FBTyxRQUFRLENBQUMsV0FBVyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDdkQsQ0FBQyxDQUFDO0FBQ0YsTUFBTSxRQUFRLEdBQUcsQ0FBQyxVQUFVLEVBQUUsT0FBaUIsRUFBRSxLQUE0QixFQUF5QixFQUFFO0lBQ3BHLE1BQU0sVUFBVSxHQUFHLFVBQVUsSUFBSSxFQUFFLENBQUM7SUFDcEMsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDO0lBRS9CLElBQUksVUFBVSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxjQUFjLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtRQUN6RCxPQUFPLEtBQUssQ0FBQztLQUNoQjtJQUNELE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1FBQ3pCLE1BQU0sZUFBZSxHQUFHLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDekYsT0FBTyxlQUFlO2FBQ2pCLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQzthQUMxQixHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQVUsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQzthQUN4QyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDN0YsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUM7QUFDRixNQUFNLGNBQWMsR0FBRyxDQUFDLElBQXlCLEVBQUUsc0JBQThDLEVBQVcsRUFBRTtJQUMxRyxNQUFNLFdBQVcsR0FBRyxzQkFBc0IsQ0FBQyxLQUFLLElBQUksc0JBQXNCLENBQUMsS0FBSyxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDckcsTUFBTSxZQUFZLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLElBQUksc0JBQXNCLENBQUMsTUFBTSxDQUFDLGlCQUFpQixFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDaEgsTUFBTSxTQUFTLEdBQUcsU0FBUyxDQUFDLGNBQWMsQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUNuRyxJQUFJLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFFbkIsUUFBUSxzQkFBc0IsQ0FBQyxRQUFRLEVBQUU7UUFDckMsS0FBSyxTQUFTO1lBQ1YsTUFBTSxHQUFHLFNBQVMsS0FBSyxXQUFXLENBQUM7WUFDbkMsTUFBTTtRQUNWLEtBQUssYUFBYTtZQUNkLE1BQU0sR0FBRyxTQUFTLEdBQUcsV0FBVyxDQUFDO1lBQ2pDLE1BQU07UUFDVixLQUFLLHNCQUFzQjtZQUN2QixNQUFNLEdBQUcsU0FBUyxJQUFJLFdBQVcsQ0FBQztZQUNsQyxNQUFNO1FBQ1YsS0FBSyxVQUFVO1lBQ1gsTUFBTSxHQUFHLFNBQVMsR0FBRyxXQUFXLENBQUM7WUFDakMsTUFBTTtRQUNWLEtBQUssbUJBQW1CO1lBQ3BCLE1BQU0sR0FBRyxTQUFTLElBQUksV0FBVyxDQUFDO1lBQ2xDLE1BQU07UUFDVixLQUFLLFNBQVM7WUFDVixNQUFNLEdBQUcsU0FBUyxJQUFJLFdBQVcsSUFBSSxTQUFTLElBQUksWUFBWSxDQUFDO1lBQy9ELE1BQU07UUFDVixLQUFLLFlBQVk7WUFDYixNQUFNLEdBQUcsU0FBUyxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUMzQyxNQUFNO1FBQ1YsS0FBSyxVQUFVO1lBQ1gsTUFBTSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDekMsTUFBTTtRQUNWLEtBQUssVUFBVSxDQUFDO1FBQ2hCO1lBQ0ksTUFBTSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7S0FDaEQ7SUFFRCxPQUFPLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztBQUM3RCxDQUFDLENBQUM7QUFFRixNQUFNLGNBQWMsR0FBRyxDQUFDLElBQXlCLEVBQUUsc0JBQThDLEVBQVcsRUFBRTtJQUMxRyxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLHNCQUFzQixDQUFDLEtBQTBCLENBQUMsQ0FBQztJQUN6RixNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLHNCQUFzQixDQUFDLE1BQTJCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEcsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLHNCQUFzQixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ2xHLElBQUksTUFBTSxHQUFHLEtBQUssQ0FBQztJQUVuQixRQUFRLHNCQUFzQixDQUFDLFFBQVEsRUFBRTtRQUNyQyxLQUFLLGFBQWE7WUFDZCxNQUFNLEdBQUcsU0FBUyxHQUFHLFdBQVcsQ0FBQztZQUNqQyxNQUFNO1FBQ1YsS0FBSyxzQkFBc0I7WUFDdkIsTUFBTSxHQUFHLFNBQVMsSUFBSSxXQUFXLENBQUM7WUFDbEMsTUFBTTtRQUNWLEtBQUssVUFBVTtZQUNYLE1BQU0sR0FBRyxTQUFTLEdBQUcsV0FBVyxDQUFDO1lBQ2pDLE1BQU07UUFDVixLQUFLLG1CQUFtQjtZQUNwQixNQUFNLEdBQUcsU0FBUyxJQUFJLFdBQVcsQ0FBQztZQUNsQyxNQUFNO1FBQ1YsS0FBSyxTQUFTO1lBQ1YsTUFBTSxHQUFHLFNBQVMsSUFBSSxXQUFXLElBQUksU0FBUyxJQUFJLFlBQVksQ0FBQztZQUMvRCxNQUFNO1FBQ1YsS0FBSyxTQUFTLENBQUM7UUFDZjtZQUNJLE1BQU0sR0FBRyxTQUFTLEtBQUssV0FBVyxDQUFDO0tBQzFDO0lBRUQsT0FBTyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7QUFDN0QsQ0FBQyxDQUFDO0FBRUYsTUFBTSxZQUFZLEdBQUcsQ0FDakIsSUFBeUIsRUFDekIsb0JBQTBDLEVBQzFDLE9BQTJCLEVBQ3BCLEVBQUU7SUFDVCxNQUFNLFdBQVcsR0FBRyxvQkFBb0IsQ0FBQyxLQUFLLENBQUM7SUFDL0MsTUFBTSxZQUFZLEdBQUcsb0JBQW9CLENBQUMsTUFBTSxDQUFDO0lBQ2pELE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxjQUFjLENBQUMsb0JBQW9CLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzdFLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3pELElBQUksTUFBTSxHQUFHLEtBQUssQ0FBQztJQUVuQixRQUFRLG9CQUFvQixDQUFDLFFBQVEsRUFBRTtRQUNuQyxLQUFLLE9BQU87WUFDUixNQUFNLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQztZQUNsQixNQUFNO1FBQ1YsS0FBSyxXQUFXO1lBQ1osTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLENBQUM7WUFDbkIsTUFBTTtRQUNWLEtBQUssUUFBUTtZQUNULE1BQU0sR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1lBQ2xCLE1BQU07UUFDVixLQUFLLFlBQVk7WUFDYixNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQztZQUNuQixNQUFNO1FBQ1YsS0FBSyxTQUFTO1lBQ1YsTUFBTSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxZQUFZLENBQUMsQ0FBQztZQUNqRSxNQUFNO1FBRVYsS0FBSyxTQUFTLENBQUM7UUFDZjtZQUNJLE1BQU0sR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQztLQUMvRDtJQUVELE9BQU8sb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0FBQzNELENBQUMsQ0FBQztBQUVGLE1BQU0sZUFBZSxHQUFHLENBQUMsSUFBeUIsRUFBRSx1QkFBZ0QsRUFBVyxFQUFFO0lBQzdHLE1BQU0sV0FBVyxHQUFHLHVCQUF1QixDQUFDLEtBQUssQ0FBQztJQUNsRCxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsY0FBYyxDQUFDLHVCQUF1QixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNoRixJQUFJLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFFbkIsUUFBUSx1QkFBdUIsQ0FBQyxRQUFRLEVBQUU7UUFDdEMsS0FBSyxTQUFTLENBQUM7UUFDZjtZQUNJLE1BQU0sR0FBRyxTQUFTLEtBQUssV0FBVyxDQUFDO0tBQzFDO0lBRUQsT0FBTyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7QUFDOUQsQ0FBQyxDQUFDO0FBRUYsTUFBTSxjQUFjLEdBQUcsQ0FBQyxJQUF5QixFQUFFLHNCQUE4QyxFQUFXLEVBQUU7SUFDMUcsTUFBTSxZQUFZLEdBQUcsc0JBQXNCLENBQUMsS0FBSyxDQUFDO0lBQ2xELE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxjQUFjLENBQUMsc0JBQXNCLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQy9FLElBQUksTUFBTSxHQUFHLEtBQUssQ0FBQztJQUVuQixRQUFRLHNCQUFzQixDQUFDLFFBQVEsRUFBRTtRQUNyQyxLQUFLLFNBQVMsQ0FBQztRQUNmO1lBQ0ksTUFBTSxHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7S0FDakQ7SUFFRCxPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sSUFBSSxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7QUFDckYsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb2xsZWN0aW9uQm9vbGVhbkZpbHRlcixcbiAgICBDb2xsZWN0aW9uRGF0ZUZpbHRlcixcbiAgICBDb2xsZWN0aW9uTnVtYmVyRmlsdGVyLFxuICAgIENvbGxlY3Rpb25TZWxlY3RGaWx0ZXIsXG4gICAgQ29sbGVjdGlvblNvcnQsXG4gICAgQ29sbGVjdGlvblN0cmluZ0ZpbHRlcixcbiAgICBTb3J0RGlyZWN0aW9uLFxuICAgIFRhYmxlRGF0YVByb3ZpZGVyLFxuICAgIFRhYmxlU3RhdGVcbn0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybSc7XG5pbXBvcnQgeyBEYXRldGltZUFkYXB0ZXIsIEZkRGF0ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZSc7XG5pbXBvcnQgeyBtZXJnZSwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgbWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEdyaWRTZXR0aW5nLCBNZXRhb2JqZWN0RGF0YU1vZGVsLCBSZXBvcnRWaWV3Q29sdW1uIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuaW1wb3J0ICogYXMgQ29uc3RhbnRzIGZyb20gJy4uL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBjbGFzcyBHcmlkTW9EYXRhTGlzdCB7XG4gICAgaXRlbXM6IE1ldGFvYmplY3REYXRhTW9kZWxbXTtcbiAgICByZXN1bHRJdGVtczogTWV0YW9iamVjdERhdGFNb2RlbFtdO1xuICAgIGdyaWRTZXR0aW5nOiBHcmlkU2V0dGluZztcbiAgICB2aXNpYmxlQ29sdW1uczogUmVwb3J0Vmlld0NvbHVtbltdO1xuICAgIHNlYXJjaFRlcm06IHN0cmluZztcbiAgICBkYXRhJDogT2JzZXJ2YWJsZTxNZXRhb2JqZWN0RGF0YU1vZGVsW10+O1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBtb0RhdGFMaXN0JDogT2JzZXJ2YWJsZTxNZXRhb2JqZWN0RGF0YU1vZGVsW10+LFxuICAgICAgICBncmlkU2V0dGluZyQ6IE9ic2VydmFibGU8R3JpZFNldHRpbmc+LFxuICAgICAgICB2aXNpYmxlQ29sdW1ucyQ6IE9ic2VydmFibGU8UmVwb3J0Vmlld0NvbHVtbltdPixcbiAgICAgICAgc2VhcmNoVGVybSQ6IE9ic2VydmFibGU8c3RyaW5nPlxuICAgICkge1xuICAgICAgICB0aGlzLmRhdGEkID0gbWVyZ2UoXG4gICAgICAgICAgICBtb0RhdGFMaXN0JC5waXBlKHRhcCgoaXRlbXMpID0+ICh0aGlzLml0ZW1zID0gaXRlbXMpKSksXG4gICAgICAgICAgICBncmlkU2V0dGluZyQucGlwZSh0YXAoKGdyaWRTZXR0aW5nKSA9PiAodGhpcy5ncmlkU2V0dGluZyA9IGdyaWRTZXR0aW5nKSkpLFxuICAgICAgICAgICAgc2VhcmNoVGVybSQucGlwZSh0YXAoKHNlYXJjaFRlcm0pID0+ICh0aGlzLnNlYXJjaFRlcm0gPSBzZWFyY2hUZXJtKSkpLFxuICAgICAgICAgICAgdmlzaWJsZUNvbHVtbnMkLnBpcGUodGFwKCh2aXNpYmxlQ29sdW1ucykgPT4gKHRoaXMudmlzaWJsZUNvbHVtbnMgPSB2aXNpYmxlQ29sdW1ucykpKVxuICAgICAgICApLnBpcGUoXG4gICAgICAgICAgICBmaWx0ZXIoKCkgPT4gISF0aGlzLml0ZW1zKSxcbiAgICAgICAgICAgIG1hcCgoKSA9PlxuICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoVGVybVxuICAgICAgICAgICAgICAgICAgICA/IHNlYXJjaEV4KFxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaFRlcm0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmlzaWJsZUNvbHVtbnMubWFwKChjKSA9PiBjLk5hbWUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLml0ZW1zXG4gICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICA6IHRoaXMuaXRlbXNcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBtYXAoKCkgPT4gKHRoaXMuZ3JpZFNldHRpbmc/LlNvcnRTZXR0aW5nTGlzdCA/IHNvcnRFeCh0aGlzLmdldFNvcnRieSgpLCB0aGlzLml0ZW1zKSA6IHRoaXMuaXRlbXMpKSxcbiAgICAgICAgICAgIC8vIG1hcCgoaXRlbXMpID0+IHtcbiAgICAgICAgICAgIC8vICAgICBpdGVtcy5mb3JFYWNoKChpdGVtKSA9PiAoaXRlbS4kVmlzaWJpbGl0eSA9IHRydWUpKTtcbiAgICAgICAgICAgIC8vICAgICByZXR1cm4gaXRlbXM7XG4gICAgICAgICAgICAvLyB9KSxcbiAgICAgICAgICAgIHRhcCgoaXRlbXMpID0+ICh0aGlzLnJlc3VsdEl0ZW1zID0gaXRlbXMpKSxcbiAgICAgICAgICAgIHRhcCgoaXRlbXMpID0+IGNvbnNvbGUubG9nKGl0ZW1zKSlcbiAgICAgICAgKTtcbiAgICB9XG4gICAgZ2V0U29ydGJ5KCk6IENvbGxlY3Rpb25Tb3J0W10ge1xuICAgICAgICByZXR1cm4gdGhpcy5ncmlkU2V0dGluZy5Tb3J0U2V0dGluZ0xpc3QubWFwKChjKSA9PiAoe1xuICAgICAgICAgICAgZmllbGQ6IGMuTmFtZSxcbiAgICAgICAgICAgIGRpcmVjdGlvbjogdGhpcy5nZXRTb3J0RGlyZWN0aW9uKGMuU29ydERpcmVjdGlvbiksXG4gICAgICAgICAgICBpc051bWJlcjogdGhpcy52aXNpYmxlQ29sdW1ucz8uZmluZCgoZCkgPT4gZC5OYW1lID09PSBjLk5hbWUpPy5GaWVsZFR5cGUgPT09ICfYudiv2K8nXG4gICAgICAgIH0pKS5jb25jYXQoeyBmaWVsZDogJyROZXdJbmxpbmVNbycsIGRpcmVjdGlvbjogU29ydERpcmVjdGlvbi5ERVNDLCBpc051bWJlcjogZmFsc2UgfSk7XG4gICAgfVxuICAgIGdldFNvcnREaXJlY3Rpb24oZGlyZWN0aW9uKTogU29ydERpcmVjdGlvbiB7XG4gICAgICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7XG4gICAgICAgICAgICBjYXNlICdBU0MnOlxuICAgICAgICAgICAgICAgIHJldHVybiBTb3J0RGlyZWN0aW9uLkFTQztcbiAgICAgICAgICAgIGNhc2UgJ0RFU0MnOlxuICAgICAgICAgICAgICAgIHJldHVybiBTb3J0RGlyZWN0aW9uLkRFU0M7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFNvcnREaXJlY3Rpb24uTk9ORTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBHcmlkRGF0YVByb3ZpZGVyIGV4dGVuZHMgVGFibGVEYXRhUHJvdmlkZXI8TWV0YW9iamVjdERhdGFNb2RlbD4ge1xuICAgIGl0ZW1zOiBNZXRhb2JqZWN0RGF0YU1vZGVsW10gPSBbXTtcbiAgICBtb0RhdGFMaXN0JDogT2JzZXJ2YWJsZTxNZXRhb2JqZWN0RGF0YU1vZGVsW10+O1xuICAgIHRvdGFsSXRlbXMgPSAwO1xuICAgIGxhc3RTdGF0ZTogVGFibGVTdGF0ZTtcbiAgICBkYXRlVGltZUFkYXB0ZXI6IERhdGV0aW1lQWRhcHRlcjxGZERhdGU+O1xuICAgIGNvbnN0cnVjdG9yKG1vRGF0YUxpc3Q6IE1ldGFvYmplY3REYXRhTW9kZWxbXSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLml0ZW1zID0gbW9EYXRhTGlzdDtcbiAgICB9XG4gICAgZmV0Y2godGFibGVTdGF0ZTogVGFibGVTdGF0ZSk6IE9ic2VydmFibGU8TWV0YW9iamVjdERhdGFNb2RlbFtdPiB7XG4gICAgICAgIHRoaXMubGFzdFN0YXRlID0gdGFibGVTdGF0ZTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TW9EYXRhTGlzdCh0YWJsZVN0YXRlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBnZXRNb0RhdGFMaXN0KHRhYmxlU3RhdGU6IFRhYmxlU3RhdGUpOiBPYnNlcnZhYmxlPGFueVtdPiB7XG4gICAgICAgIHRoaXMudG90YWxJdGVtcyA9IHRoaXMuaXRlbXMubGVuZ3RoO1xuICAgICAgICByZXR1cm4gb2YodGhpcy5pdGVtcykucGlwZShcbiAgICAgICAgICAgIG1hcCgoaXRlbXMpID0+ICh0YWJsZVN0YXRlLnNlYXJjaElucHV0ID8gc2VhcmNoKHRhYmxlU3RhdGUsIGl0ZW1zKSA6IGl0ZW1zKSksXG4gICAgICAgICAgICBtYXAoKGl0ZW1zKSA9PiAodGFibGVTdGF0ZS5zb3J0QnkgPyBzb3J0KHRhYmxlU3RhdGUsIGl0ZW1zKSA6IGl0ZW1zKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZpbHRlcih7IGZpbHRlckJ5IH06IFRhYmxlU3RhdGUpOiBNZXRhb2JqZWN0RGF0YU1vZGVsW10ge1xuICAgICAgICBsZXQgaXRlbXMgPSB0aGlzLml0ZW1zO1xuXG4gICAgICAgIGZpbHRlckJ5XG4gICAgICAgICAgICAuZmlsdGVyKCh7IGZpZWxkIH0pID0+ICEhZmllbGQpXG4gICAgICAgICAgICAuZm9yRWFjaCgocnVsZSkgPT4ge1xuICAgICAgICAgICAgICAgIGl0ZW1zID0gaXRlbXMuZmlsdGVyKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAocnVsZS5maWVsZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnbmFtZSc6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdkZXNjcmlwdGlvbic6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdzdGF0dXMnOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnc3RhdHVzQ29sb3InOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmaWx0ZXJCeVN0cmluZyhpdGVtLCBydWxlIGFzIENvbGxlY3Rpb25TdHJpbmdGaWx0ZXIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAncHJpY2UudmFsdWUnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmaWx0ZXJCeU51bWJlcihpdGVtLCBydWxlIGFzIENvbGxlY3Rpb25OdW1iZXJGaWx0ZXIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAndmVyaWZpZWQnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmaWx0ZXJCeUJvb2xlYW4oaXRlbSwgcnVsZSBhcyBDb2xsZWN0aW9uQm9vbGVhbkZpbHRlcik7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdkYXRlJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmlsdGVyQnlEYXRlKGl0ZW0sIHJ1bGUgYXMgQ29sbGVjdGlvbkJvb2xlYW5GaWx0ZXIsIHRoaXMuZGF0ZVRpbWVBZGFwdGVyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gaXRlbXM7XG4gICAgfVxufVxuY29uc3Qgc29ydCA9ICh7IHNvcnRCeSB9OiBUYWJsZVN0YXRlLCBtb0RhdGFMaXN0OiBNZXRhb2JqZWN0RGF0YU1vZGVsW10pOiBNZXRhb2JqZWN0RGF0YU1vZGVsW10gPT5cbiAgICBzb3J0RXgoc29ydEJ5LCBtb0RhdGFMaXN0KTtcblxuY29uc3Qgc29ydEV4ID0gKFxuICAgIHNvcnRCeTogeyBmaWVsZDogc3RyaW5nIHwgbnVsbDsgZGlyZWN0aW9uOiBzdHJpbmc7IGlzTnVtYmVyPzogYm9vbGVhbiB9W10sXG4gICAgbW9EYXRhTGlzdDogTWV0YW9iamVjdERhdGFNb2RlbFtdXG4pOiBNZXRhb2JqZWN0RGF0YU1vZGVsW10gPT4ge1xuICAgIGNvbnN0IGl0ZW1zID0gbW9EYXRhTGlzdC5zbGljZSgpO1xuXG4gICAgY29uc3QgbmV3U29ydEJ5ID0gc29ydEJ5LmZpbHRlcigoeyBmaWVsZCB9KSA9PiAhIWZpZWxkKTtcblxuICAgIGlmIChuZXdTb3J0QnkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiBpdGVtcztcbiAgICB9XG5cbiAgICByZXR1cm4gaXRlbXMuc29ydChcbiAgICAgICAgKGEsIGIpID0+XG4gICAgICAgICAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAgICAgICAgICAgbmV3U29ydEJ5XG4gICAgICAgICAgICAgICAgLm1hcCgoeyBmaWVsZCwgZGlyZWN0aW9uLCBpc051bWJlciB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFzY01vZGlmaWVyID0gZGlyZWN0aW9uID09PSBTb3J0RGlyZWN0aW9uLkFTQyA/IDEgOiAtMTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENvbnN0YW50cy5zb3J0KGEsIGIsIGZpZWxkLCBpc051bWJlcikgKiBhc2NNb2RpZmllcjtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5maW5kKChyZXN1bHQsIGluZGV4LCBsaXN0KSA9PiByZXN1bHQgIT09IDAgfHwgaW5kZXggPT09IGxpc3QubGVuZ3RoIC0gMSkhXG4gICAgKTtcbn07XG5jb25zdCBzZWFyY2ggPSAoeyBzZWFyY2hJbnB1dCwgY29sdW1ucyB9OiBUYWJsZVN0YXRlLCBpdGVtczogTWV0YW9iamVjdERhdGFNb2RlbFtdKTogTWV0YW9iamVjdERhdGFNb2RlbFtdID0+IHtcbiAgICByZXR1cm4gc2VhcmNoRXgoc2VhcmNoSW5wdXQ/LnRleHQsIGNvbHVtbnMsIGl0ZW1zKTtcbn07XG5jb25zdCBzZWFyY2hFeCA9IChzZWFyY2hUZXJtLCBjb2x1bW5zOiBzdHJpbmdbXSwgaXRlbXM6IE1ldGFvYmplY3REYXRhTW9kZWxbXSk6IE1ldGFvYmplY3REYXRhTW9kZWxbXSA9PiB7XG4gICAgY29uc3Qgc2VhcmNoVGV4dCA9IHNlYXJjaFRlcm0gfHwgJyc7XG4gICAgY29uc3Qga2V5c1RvU2VhcmNoQnkgPSBjb2x1bW5zO1xuXG4gICAgaWYgKHNlYXJjaFRleHQudHJpbSgpID09PSAnJyB8fCBrZXlzVG9TZWFyY2hCeS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIGl0ZW1zO1xuICAgIH1cbiAgICByZXR1cm4gaXRlbXMuZmlsdGVyKChpdGVtKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbHVlc0ZvclNlYXJjaCA9IGtleXNUb1NlYXJjaEJ5Lm1hcCgoa2V5KSA9PiBDb25zdGFudHMuZ2V0TmVzdGVkVmFsdWUoa2V5LCBpdGVtKSk7XG4gICAgICAgIHJldHVybiB2YWx1ZXNGb3JTZWFyY2hcbiAgICAgICAgICAgIC5maWx0ZXIoKHZhbHVlKSA9PiAhIXZhbHVlKVxuICAgICAgICAgICAgLm1hcCgodmFsdWUpOiBzdHJpbmcgPT4gdmFsdWUudG9TdHJpbmcoKSlcbiAgICAgICAgICAgIC5zb21lKCh2YWx1ZSkgPT4gdmFsdWUudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hUZXh0LnRvTG9jYWxlTG93ZXJDYXNlKCkpKTtcbiAgICB9KTtcbn07XG5jb25zdCBmaWx0ZXJCeVN0cmluZyA9IChpdGVtOiBNZXRhb2JqZWN0RGF0YU1vZGVsLCBjb2xsZWN0aW9uU3RyaW5nRmlsdGVyOiBDb2xsZWN0aW9uU3RyaW5nRmlsdGVyKTogYm9vbGVhbiA9PiB7XG4gICAgY29uc3QgZmlsdGVyVmFsdWUgPSBjb2xsZWN0aW9uU3RyaW5nRmlsdGVyLnZhbHVlICYmIGNvbGxlY3Rpb25TdHJpbmdGaWx0ZXIudmFsdWUudG9Mb2NhbGVMb3dlckNhc2UoKTtcbiAgICBjb25zdCBmaWx0ZXJWYWx1ZTIgPSAoY29sbGVjdGlvblN0cmluZ0ZpbHRlci52YWx1ZTIgJiYgY29sbGVjdGlvblN0cmluZ0ZpbHRlci52YWx1ZTIudG9Mb2NhbGVMb3dlckNhc2UoKSkgfHwgJyc7XG4gICAgY29uc3QgaXRlbVZhbHVlID0gQ29uc3RhbnRzLmdldE5lc3RlZFZhbHVlKGNvbGxlY3Rpb25TdHJpbmdGaWx0ZXIuZmllbGQsIGl0ZW0pLnRvTG9jYWxlTG93ZXJDYXNlKCk7XG4gICAgbGV0IHJlc3VsdCA9IGZhbHNlO1xuXG4gICAgc3dpdGNoIChjb2xsZWN0aW9uU3RyaW5nRmlsdGVyLnN0cmF0ZWd5KSB7XG4gICAgICAgIGNhc2UgJ2VxdWFsVG8nOlxuICAgICAgICAgICAgcmVzdWx0ID0gaXRlbVZhbHVlID09PSBmaWx0ZXJWYWx1ZTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdncmVhdGVyVGhhbic6XG4gICAgICAgICAgICByZXN1bHQgPSBpdGVtVmFsdWUgPiBmaWx0ZXJWYWx1ZTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdncmVhdGVyVGhhbk9yRXF1YWxUbyc6XG4gICAgICAgICAgICByZXN1bHQgPSBpdGVtVmFsdWUgPj0gZmlsdGVyVmFsdWU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnbGVzc1RoYW4nOlxuICAgICAgICAgICAgcmVzdWx0ID0gaXRlbVZhbHVlIDwgZmlsdGVyVmFsdWU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnbGVzc1RoYW5PckVxdWFsVG8nOlxuICAgICAgICAgICAgcmVzdWx0ID0gaXRlbVZhbHVlIDw9IGZpbHRlclZhbHVlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2JldHdlZW4nOlxuICAgICAgICAgICAgcmVzdWx0ID0gaXRlbVZhbHVlID49IGZpbHRlclZhbHVlICYmIGl0ZW1WYWx1ZSA8PSBmaWx0ZXJWYWx1ZTI7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnYmVnaW5zV2l0aCc6XG4gICAgICAgICAgICByZXN1bHQgPSBpdGVtVmFsdWUuc3RhcnRzV2l0aChmaWx0ZXJWYWx1ZSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnZW5kc1dpdGgnOlxuICAgICAgICAgICAgcmVzdWx0ID0gaXRlbVZhbHVlLmVuZHNXaXRoKGZpbHRlclZhbHVlKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdjb250YWlucyc6XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXN1bHQgPSBpdGVtVmFsdWUuaW5jbHVkZXMoZmlsdGVyVmFsdWUpO1xuICAgIH1cblxuICAgIHJldHVybiBjb2xsZWN0aW9uU3RyaW5nRmlsdGVyLmV4Y2x1ZGUgPyAhcmVzdWx0IDogcmVzdWx0O1xufTtcblxuY29uc3QgZmlsdGVyQnlOdW1iZXIgPSAoaXRlbTogTWV0YW9iamVjdERhdGFNb2RlbCwgY29sbGVjdGlvbk51bWJlckZpbHRlcjogQ29sbGVjdGlvbk51bWJlckZpbHRlcik6IGJvb2xlYW4gPT4ge1xuICAgIGNvbnN0IGZpbHRlclZhbHVlID0gTnVtYmVyLnBhcnNlRmxvYXQoY29sbGVjdGlvbk51bWJlckZpbHRlci52YWx1ZSBhcyB1bmtub3duIGFzIHN0cmluZyk7XG4gICAgY29uc3QgZmlsdGVyVmFsdWUyID0gTnVtYmVyLnBhcnNlRmxvYXQoY29sbGVjdGlvbk51bWJlckZpbHRlci52YWx1ZTIgYXMgdW5rbm93biBhcyBzdHJpbmcpIHx8IDA7XG4gICAgY29uc3QgaXRlbVZhbHVlID0gTnVtYmVyLnBhcnNlRmxvYXQoQ29uc3RhbnRzLmdldE5lc3RlZFZhbHVlKGNvbGxlY3Rpb25OdW1iZXJGaWx0ZXIuZmllbGQsIGl0ZW0pKTtcbiAgICBsZXQgcmVzdWx0ID0gZmFsc2U7XG5cbiAgICBzd2l0Y2ggKGNvbGxlY3Rpb25OdW1iZXJGaWx0ZXIuc3RyYXRlZ3kpIHtcbiAgICAgICAgY2FzZSAnZ3JlYXRlclRoYW4nOlxuICAgICAgICAgICAgcmVzdWx0ID0gaXRlbVZhbHVlID4gZmlsdGVyVmFsdWU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnZ3JlYXRlclRoYW5PckVxdWFsVG8nOlxuICAgICAgICAgICAgcmVzdWx0ID0gaXRlbVZhbHVlID49IGZpbHRlclZhbHVlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2xlc3NUaGFuJzpcbiAgICAgICAgICAgIHJlc3VsdCA9IGl0ZW1WYWx1ZSA8IGZpbHRlclZhbHVlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2xlc3NUaGFuT3JFcXVhbFRvJzpcbiAgICAgICAgICAgIHJlc3VsdCA9IGl0ZW1WYWx1ZSA8PSBmaWx0ZXJWYWx1ZTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdiZXR3ZWVuJzpcbiAgICAgICAgICAgIHJlc3VsdCA9IGl0ZW1WYWx1ZSA+PSBmaWx0ZXJWYWx1ZSAmJiBpdGVtVmFsdWUgPD0gZmlsdGVyVmFsdWUyO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2VxdWFsVG8nOlxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmVzdWx0ID0gaXRlbVZhbHVlID09PSBmaWx0ZXJWYWx1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29sbGVjdGlvbk51bWJlckZpbHRlci5leGNsdWRlID8gIXJlc3VsdCA6IHJlc3VsdDtcbn07XG5cbmNvbnN0IGZpbHRlckJ5RGF0ZSA9IDxEID0gRmREYXRlPihcbiAgICBpdGVtOiBNZXRhb2JqZWN0RGF0YU1vZGVsLFxuICAgIGNvbGxlY3RvaW5EYXRlRmlsdGVyOiBDb2xsZWN0aW9uRGF0ZUZpbHRlcixcbiAgICBhZGFwdGVyOiBEYXRldGltZUFkYXB0ZXI8RD5cbik6IGJvb2xlYW4gPT4ge1xuICAgIGNvbnN0IGZpbHRlclZhbHVlID0gY29sbGVjdG9pbkRhdGVGaWx0ZXIudmFsdWU7XG4gICAgY29uc3QgZmlsdGVyVmFsdWUyID0gY29sbGVjdG9pbkRhdGVGaWx0ZXIudmFsdWUyO1xuICAgIGNvbnN0IGl0ZW1WYWx1ZSA9IENvbnN0YW50cy5nZXROZXN0ZWRWYWx1ZShjb2xsZWN0b2luRGF0ZUZpbHRlci5maWVsZCwgaXRlbSk7XG4gICAgY29uc3QgZGlmZiA9IGFkYXB0ZXIuY29tcGFyZURhdGUoaXRlbVZhbHVlLCBmaWx0ZXJWYWx1ZSk7XG4gICAgbGV0IHJlc3VsdCA9IGZhbHNlO1xuXG4gICAgc3dpdGNoIChjb2xsZWN0b2luRGF0ZUZpbHRlci5zdHJhdGVneSkge1xuICAgICAgICBjYXNlICdhZnRlcic6XG4gICAgICAgICAgICByZXN1bHQgPSBkaWZmID4gMDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdvbk9yQWZ0ZXInOlxuICAgICAgICAgICAgcmVzdWx0ID0gZGlmZiA+PSAwO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2JlZm9yZSc6XG4gICAgICAgICAgICByZXN1bHQgPSBkaWZmIDwgMDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdiZWZvcmVPck9uJzpcbiAgICAgICAgICAgIHJlc3VsdCA9IGRpZmYgPD0gMDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdiZXR3ZWVuJzpcbiAgICAgICAgICAgIHJlc3VsdCA9IGFkYXB0ZXIuaXNCZXR3ZWVuKGl0ZW1WYWx1ZSwgZmlsdGVyVmFsdWUsIGZpbHRlclZhbHVlMik7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdlcXVhbFRvJzpcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJlc3VsdCA9IGFkYXB0ZXIuZGF0ZVRpbWVzRXF1YWwoaXRlbVZhbHVlLCBmaWx0ZXJWYWx1ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbGxlY3RvaW5EYXRlRmlsdGVyLmV4Y2x1ZGUgPyAhcmVzdWx0IDogcmVzdWx0O1xufTtcblxuY29uc3QgZmlsdGVyQnlCb29sZWFuID0gKGl0ZW06IE1ldGFvYmplY3REYXRhTW9kZWwsIGNvbGxlY3Rpb25Cb29sZWFuRmlsdGVyOiBDb2xsZWN0aW9uQm9vbGVhbkZpbHRlcik6IGJvb2xlYW4gPT4ge1xuICAgIGNvbnN0IGZpbHRlclZhbHVlID0gY29sbGVjdGlvbkJvb2xlYW5GaWx0ZXIudmFsdWU7XG4gICAgY29uc3QgaXRlbVZhbHVlID0gQ29uc3RhbnRzLmdldE5lc3RlZFZhbHVlKGNvbGxlY3Rpb25Cb29sZWFuRmlsdGVyLmZpZWxkLCBpdGVtKTtcbiAgICBsZXQgcmVzdWx0ID0gZmFsc2U7XG5cbiAgICBzd2l0Y2ggKGNvbGxlY3Rpb25Cb29sZWFuRmlsdGVyLnN0cmF0ZWd5KSB7XG4gICAgICAgIGNhc2UgJ2VxdWFsVG8nOlxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmVzdWx0ID0gaXRlbVZhbHVlID09PSBmaWx0ZXJWYWx1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29sbGVjdGlvbkJvb2xlYW5GaWx0ZXIuZXhjbHVkZSA/ICFyZXN1bHQgOiByZXN1bHQ7XG59O1xuXG5jb25zdCBmaWx0ZXJCeVNlbGVjdCA9IChpdGVtOiBNZXRhb2JqZWN0RGF0YU1vZGVsLCBjb2xsZWN0aW9uU2VsZWN0RmlsdGVyOiBDb2xsZWN0aW9uU2VsZWN0RmlsdGVyKTogYm9vbGVhbiA9PiB7XG4gICAgY29uc3QgZmlsdGVyVmFsdWVzID0gY29sbGVjdGlvblNlbGVjdEZpbHRlci52YWx1ZTtcbiAgICBjb25zdCBpdGVtVmFsdWUgPSBDb25zdGFudHMuZ2V0TmVzdGVkVmFsdWUoY29sbGVjdGlvblNlbGVjdEZpbHRlci5maWVsZCwgaXRlbSk7XG4gICAgbGV0IHJlc3VsdCA9IGZhbHNlO1xuXG4gICAgc3dpdGNoIChjb2xsZWN0aW9uU2VsZWN0RmlsdGVyLnN0cmF0ZWd5KSB7XG4gICAgICAgIGNhc2UgJ2VxdWFsVG8nOlxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmVzdWx0ID0gZmlsdGVyVmFsdWVzLmluY2x1ZGVzKGl0ZW1WYWx1ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuICFmaWx0ZXJWYWx1ZXMubGVuZ3RoIHx8IGNvbGxlY3Rpb25TZWxlY3RGaWx0ZXIuZXhjbHVkZSA/ICFyZXN1bHQgOiByZXN1bHQ7XG59O1xuIl19