@plumile/router 0.1.43 → 0.1.44

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.
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,aAAa,EAElB,KAAK,KAAK,EACV,KAAK,kBAAkB,EACxB,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EACV,kBAAkB,EAClB,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAS9C,wBAAgB,eAAe,CAAC,OAAO,SAAS,SAAS,EACvD,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,EAC5B,QAAQ,EAAE,QAAQ,GACjB,kBAAkB,CAAC,OAAO,CAAC,GAAG,IAAI,CAepC;AA+BD,wBAAgB,YAAY,CAAC,OAAO,SAAS,SAAS,EACpD,KAAK,EAAE,kBAAkB,CAAC,OAAO,CAAC,GAAG,IAAI,EACzC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,eAAe,CAAC,EAAE;IAChB,IAAI,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAC1C,MAAM,EAAE,sBAAsB,CAAC;IAC/B,QAAQ,EAAE,sBAAsB,CAAC;CAClC,GACA,aAAa,CAAC,OAAO,CAAC,CA0FxB;AAOD,wBAAgB,CAAC,CACf,SAAS,SAAS,aAAa,GAAG,aAAa,EAC/C,UAAU,SAAS,SAAS,GAAG,SAAS,EACxC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAEhE,KAAK,EAAE,KAAK,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,GAC1C,KAAK,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,CAEtC"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,aAAa,EAElB,KAAK,KAAK,EACV,KAAK,kBAAkB,EACxB,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EACV,kBAAkB,EAClB,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAS9C,wBAAgB,eAAe,CAAC,OAAO,SAAS,SAAS,EACvD,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,EAC5B,QAAQ,EAAE,QAAQ,GACjB,kBAAkB,CAAC,OAAO,CAAC,GAAG,IAAI,CAepC;AAgCD,wBAAgB,YAAY,CAAC,OAAO,SAAS,SAAS,EAAE,QAAQ,GAAG,OAAO,EACxE,KAAK,EAAE,kBAAkB,CAAC,OAAO,CAAC,GAAG,IAAI,EACzC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,eAAe,CAAC,EAAE;IAChB,IAAI,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAC1C,MAAM,EAAE,sBAAsB,CAAC;IAC/B,QAAQ,EAAE,sBAAsB,CAAC;CAClC,EACD,OAAO,CAAC,EAAE,QAAQ,GACjB,aAAa,CAAC,OAAO,CAAC,CA2FxB;AAOD,wBAAgB,CAAC,CACf,QAAQ,GAAG,OAAO,EAClB,SAAS,SAAS,aAAa,GAAG,aAAa,EAC/C,UAAU,SAAS,SAAS,GAAG,SAAS,EACxC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAEhE,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,GACpD,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,CAEhD"}
package/lib/esm/tools.js CHANGED
@@ -27,7 +27,7 @@ function buildHighlightId(routePath, index, moduleId) {
27
27
  parts.push(`index:${index}`);
28
28
  return parts.join('|');
29
29
  }
30
- export function prepareMatch(match, query, instrumentation) {
30
+ export function prepareMatch(match, query, instrumentation, context) {
31
31
  if (match == null) {
32
32
  return {
33
33
  match,
@@ -63,6 +63,7 @@ export function prepareMatch(match, query, instrumentation) {
63
63
  prepared = prepare({
64
64
  match,
65
65
  matchedRoute,
66
+ context,
66
67
  resourcePage,
67
68
  variables: { ...match.params },
68
69
  query: query ?? {},
@@ -103,4 +104,4 @@ export function prepareMatch(match, query, instrumentation) {
103
104
  export function r(route) {
104
105
  return route;
105
106
  }
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdG9vbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBeUJBLE1BQU0sVUFBVSxlQUFlLENBQzdCLE1BQTRCLEVBQzVCLFFBQWtCO0lBRWxCLEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxFQUFFLENBQUM7UUFDM0IsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDckQsSUFBSSxLQUFLLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDcEIsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUM7WUFDL0IsT0FBTztnQkFDTCxLQUFLO2dCQUNMLEtBQUs7Z0JBQ0wsSUFBSTtnQkFDSixNQUFNO2FBQ1AsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBS0QsU0FBUyxnQkFBZ0IsQ0FDdkIsU0FBNkIsRUFDN0IsS0FBYSxFQUNiLFFBQWlCO0lBRWpCLE1BQU0sS0FBSyxHQUFhLEVBQUUsQ0FBQztJQUMzQixJQUFJLE9BQU8sUUFBUSxLQUFLLFFBQVEsSUFBSSxRQUFRLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7UUFDM0QsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUNELElBQUksT0FBTyxTQUFTLEtBQUssUUFBUSxJQUFJLFNBQVMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUM3RCxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7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QUFDLFVBQVUsSUFBSSxJQUFJO1lBQzNDLE1BQU07WUFDTixZQUFZO1lBQ1osV0FBVyxFQUFFLGdCQUFnQixDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsUUFBUSxDQUFDO1NBQzFELENBQUM7SUFDSixDQUFDLENBQ0YsQ0FBQztJQUVGLE9BQU87UUFDTCxLQUFLO1FBQ0wsTUFBTTtLQUNQLENBQUM7QUFDSixDQUFDO0FBT0QsTUFBTSxVQUFVLENBQUMsQ0FLZixLQUEyQztJQUUzQyxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFBhcmFtRGF0YSB9IGZyb20gJ3BhdGgtdG8tcmVnZXhwJztcblxuaW1wb3J0IHtcbiAgdHlwZSBQcmVwYXJlUmVzdWx0LFxuICB0eXBlIFByZXBhcmVkTWF0Y2gsXG4gIHR5cGUgUHJlcGFyZWRNYXRjaFJvdXRlLFxuICB0eXBlIFJvdXRlLFxuICB0eXBlIFJvdXRlck1hdGNoZWRSb3V0ZSxcbn0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbmltcG9ydCB0eXBlIHtcbiAgUm91dGVyUHJlcGFyZUV2ZW50LFxuICBSb3V0ZXJOYXZpZ2F0aW9uU291cmNlLFxuICBSb3V0ZXJMb2NhdGlvblNuYXBzaG90LFxufSBmcm9tICcuL2luc3RydW1lbnRhdGlvbi9JbnN0cnVtZW50YXRpb24uanMnO1xuXG5pbXBvcnQgdHlwZSB7IEZsYXRSb3V0ZSB9IGZyb20gJy4vYnVpbGRlci5qcyc7XG5cbi8qKlxuICogRmluZHMgdGhlIGZpcnN0IGZsYXQgcm91dGUgbWF0Y2hpbmcgdGhlIHByb3ZpZGVkIGxvY2F0aW9uLlxuICpcbiAqIEBwYXJhbSByb3V0ZXMgLSBGbGF0dGVuZWQgcm91dGUgbGlzdCB0byBldmFsdWF0ZS5cbiAqIEBwYXJhbSBsb2NhdGlvbiAtIEJyb3dzZXIgbG9jYXRpb24gd2hvc2UgcGF0aG5hbWUgc2hvdWxkIGJlIG1hdGNoZWQuXG4gKiBAcmV0dXJucyBNYXRjaGVkIHJvdXRlIHdpdGggcGFyYW1zIG9yIGBudWxsYCBpZiBub25lIG1hdGNoLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TWF0Y2hlZFJvdXRlPFRQYXJhbXMgZXh0ZW5kcyBQYXJhbURhdGE+KFxuICByb3V0ZXM6IEZsYXRSb3V0ZTxUUGFyYW1zPltdLFxuICBsb2NhdGlvbjogTG9jYXRpb24sXG4pOiBSb3V0ZXJNYXRjaGVkUm91dGU8VFBhcmFtcz4gfCBudWxsIHtcbiAgZm9yIChjb25zdCByb3V0ZSBvZiByb3V0ZXMpIHtcbiAgICBjb25zdCBtYXRjaCA9IHJvdXRlLm1hdGNoRnVuY3Rpb24obG9jYXRpb24ucGF0aG5hbWUpO1xuICAgIGlmIChtYXRjaCAhPT0gZmFsc2UpIHtcbiAgICAgIGNvbnN0IHsgcGF0aCwgcGFyYW1zIH0gPSBtYXRjaDtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG1hdGNoLFxuICAgICAgICByb3V0ZSxcbiAgICAgICAgcGF0aCxcbiAgICAgICAgcGFyYW1zLFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuLyoqXG4gKiBEZXJpdmVzIGEgZGV0ZXJtaW5pc3RpYyBpZGVudGlmaWVyIHRoYXQgbGlua3MgcHJlcGFyZWQgcm91dGVzIHRvIERPTSBtYXJrZXJzLlxuICovXG5mdW5jdGlvbiBidWlsZEhpZ2hsaWdodElkKFxuICByb3V0ZVBhdGg6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgaW5kZXg6IG51bWJlcixcbiAgbW9kdWxlSWQ/OiBzdHJpbmcsXG4pOiBzdHJpbmcge1xuICBjb25zdCBwYXJ0czogc3RyaW5nW10gPSBbXTtcbiAgaWYgKHR5cGVvZiBtb2R1bGVJZCA9PT0gJ3N0cmluZycgJiYgbW9kdWxlSWQudHJpbSgpICE9PSAnJykge1xuICAgIHBhcnRzLnB1c2goYG1vZHVsZToke21vZHVsZUlkfWApO1xuICB9XG4gIGlmICh0eXBlb2Ygcm91dGVQYXRoID09PSAnc3RyaW5nJyAmJiByb3V0ZVBhdGgudHJpbSgpICE9PSAnJykge1xuICAgIHBhcnRzLnB1c2goYHBhdGg6JHtyb3V0ZVBhdGh9YCk7XG4gIH1cbiAgaWYgKHBhcnRzLmxlbmd0aCA9PT0gMCkge1xuICAgIHBhcnRzLnB1c2goJ3JvdXRlJyk7XG4gIH1cbiAgcGFydHMucHVzaChgaW5kZXg6JHtpbmRleH1gKTtcbiAgcmV0dXJuIHBhcnRzLmpvaW4oJ3wnKTtcbn1cblxuLyoqXG4gKiBQcmVwYXJlcyBhIG1hdGNoZWQgcm91dGUgYnkgZXhlY3V0aW5nIGBwcmVwYXJlYCBjYWxsYmFja3MgYW5kIHJlc29sdmluZyByZXNvdXJjZSBwYWdlcy5cbiAqXG4gKiBAcGFyYW0gbWF0Y2ggLSBNYXRjaGVkIHJvdXRlIGRlc2NyaXB0b3IgKG9yIGBudWxsYCB3aGVuIG5vdGhpbmcgbWF0Y2hlZCkuXG4gKiBAcGFyYW0gcXVlcnkgLSBPcHRpb25hbCBxdWVyeSBvYmplY3QgZm9yd2FyZGVkIHRvIHByZXBhcmUgZnVuY3Rpb25zLlxuICogQHJldHVybnMgUHJlcGFyZWQgaGllcmFyY2h5IHJlYWR5IGZvciB0aGUgcmVuZGVyZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcmVwYXJlTWF0Y2g8VFBhcmFtcyBleHRlbmRzIFBhcmFtRGF0YT4oXG4gIG1hdGNoOiBSb3V0ZXJNYXRjaGVkUm91dGU8VFBhcmFtcz4gfCBudWxsLFxuICBxdWVyeT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICBpbnN0cnVtZW50YXRpb24/OiB7XG4gICAgZW1pdDogKGV2ZW50OiBSb3V0ZXJQcmVwYXJlRXZlbnQpID0+IHZvaWQ7XG4gICAgc291cmNlOiBSb3V0ZXJOYXZpZ2F0aW9uU291cmNlO1xuICAgIGxvY2F0aW9uOiBSb3V0ZXJMb2NhdGlvblNuYXBzaG90O1xuICB9LFxuKTogUHJlcGFyZWRNYXRjaDxUUGFyYW1zPiB7XG4gIC8vIE5PVEU6IFJ1bnRpbWUgcmV0YWlucyBhIGdlbmVyaWMgUHJlcGFyZWRSZXN1bHQ7IHR5cGUtbGV2ZWwgbmFycm93aW5nIGlzIGFjaGlldmVkIGV4dGVybmFsbHlcbiAgLy8gdGhyb3VnaCB0aGUgcm91dGUgdW5pb24gYW5kIFByZXBhcmVkQWNjZXNzIGhlbHBlcnMuIFdlIGludGVudGlvbmFsbHkgYXZvaWQgaW5qZWN0aW5nXG4gIC8vIGdlbmVyaWMgcGFyYW1ldGVycyBoZXJlIHRvIGtlZXAgcnVudGltZSBsaWdodHdlaWdodCB3aGlsZSBzdGlsbCBlbmFibGluZyBjb21waWxlLXRpbWVcbiAgLy8gZGlzY3JpbWluYXRpb24gaW4gdXNlcmxhbmQgdmlhIGNyZWF0ZVJvdXRlciBnZW5lcmljcy5cbiAgaWYgKG1hdGNoID09IG51bGwpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbWF0Y2gsXG4gICAgICByb3V0ZXM6IFtdLFxuICAgIH07XG4gIH1cblxuICBjb25zdCBtYXRjaGVkUm91dGUgPSBtYXRjaC5yb3V0ZTtcblxuICBjb25zdCByb3V0ZXM6IFByZXBhcmVkTWF0Y2hSb3V0ZVtdID0gbWF0Y2gucm91dGUucm91dGVzLm1hcChcbiAgICAocm91dGUsIHJvdXRlSW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IHsgcGF0aCwgcHJlcGFyZSwgcmVzb3VyY2VQYWdlLCByZW5kZXIgfSA9IHJvdXRlO1xuICAgICAgbGV0IG1vZHVsZUlkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICBpZiAoXG4gICAgICAgIHJlc291cmNlUGFnZSAhPSBudWxsICYmXG4gICAgICAgIHR5cGVvZiByZXNvdXJjZVBhZ2UuZ2V0TW9kdWxlSWQgPT09ICdmdW5jdGlvbidcbiAgICAgICkge1xuICAgICAgICBjb25zdCByZXNvbHZlZE1vZHVsZUlkID0gcmVzb3VyY2VQYWdlLmdldE1vZHVsZUlkKCk7XG4gICAgICAgIGlmICh0eXBlb2YgcmVzb2x2ZWRNb2R1bGVJZCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICBtb2R1bGVJZCA9IHJlc29sdmVkTW9kdWxlSWQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgbGV0IENvbXBvbmVudDogdW5rbm93bjtcbiAgICAgIGxldCBwcmVwYXJlZDogUHJlcGFyZVJlc3VsdCB8IHVuZGVmaW5lZDtcblxuICAgICAgbGV0IHByZXBhcmVTdGFydGVkQXQgPSAwO1xuICAgICAgaWYgKGluc3RydW1lbnRhdGlvbiAhPSBudWxsKSB7XG4gICAgICAgIHByZXBhcmVTdGFydGVkQXQgPSBEYXRlLm5vdygpO1xuICAgICAgICBpbnN0cnVtZW50YXRpb24uZW1pdCh7XG4gICAgICAgICAga2luZDogJ3ByZXBhcmUtc3RhcnQnLFxuICAgICAgICAgIHNvdXJjZTogaW5zdHJ1bWVudGF0aW9uLnNvdXJjZSxcbiAgICAgICAgICB0aW1lc3RhbXA6IHByZXBhcmVTdGFydGVkQXQsXG4gICAgICAgICAgbG9jYXRpb246IGluc3RydW1lbnRhdGlvbi5sb2NhdGlvbixcbiAgICAgICAgICByb3V0ZVBhdGg6IHBhdGgsXG4gICAgICAgICAgbW9kdWxlSWQsXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAocHJlcGFyZSAhPSBudWxsKSB7XG4gICAgICAgIHByZXBhcmVkID0gcHJlcGFyZSh7XG4gICAgICAgICAgbWF0Y2gsXG4gICAgICAgICAgbWF0Y2hlZFJvdXRlLFxuICAgICAgICAgIHJlc291cmNlUGFnZSxcbiAgICAgICAgICAvLyBGaXggT2JqZWN0LmNyZWF0ZShudWxsKSBpc3N1ZSBpbiBwYXRoLXRvLXJlZ2V4cFxuICAgICAgICAgIHZhcmlhYmxlczogeyAuLi5tYXRjaC5wYXJhbXMgfSxcbiAgICAgICAgICBxdWVyeTogcXVlcnkgPz8ge30sXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAoaW5zdHJ1bWVudGF0aW9uICE9IG51bGwpIHtcbiAgICAgICAgY29uc3QgZmluaXNoZWRBdCA9IERhdGUubm93KCk7XG4gICAgICAgIGluc3RydW1lbnRhdGlvbi5lbWl0KHtcbiAgICAgICAgICBraW5kOiAncHJlcGFyZS1lbmQnLFxuICAgICAgICAgIHNvdXJjZTogaW5zdHJ1bWVudGF0aW9uLnNvdXJjZSxcbiAgICAgICAgICB0aW1lc3RhbXA6IGZpbmlzaGVkQXQsXG4gICAgICAgICAgbG9jYXRpb246IGluc3RydW1lbnRhdGlvbi5sb2NhdGlvbixcbiAgICAgICAgICByb3V0ZVBhdGg6IHBhdGgsXG4gICAgICAgICAgZHVyYXRpb25NczogZmluaXNoZWRBdCAtIHByZXBhcmVTdGFydGVkQXQsXG4gICAgICAgICAgaGFzUHJlcGFyZWQ6IHByZXBhcmUgIT0gbnVsbCxcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChyZXNvdXJjZVBhZ2UgIT0gbnVsbCkge1xuICAgICAgICBDb21wb25lbnQgPSByZXNvdXJjZVBhZ2UuZ2V0KCk7XG4gICAgICAgIGlmIChDb21wb25lbnQgPT0gbnVsbCkge1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZmxvYXRpbmctcHJvbWlzZXNcbiAgICAgICAgICByZXNvdXJjZVBhZ2UubG9hZCgpOyAvLyBlYWdlcmx5IGxvYWRcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcGF0aCxcbiAgICAgICAgcHJlcGFyZWQsXG4gICAgICAgIHJlZGlyZWN0VG86IG1hdGNoZWRSb3V0ZS5yZWRpcmVjdFRvID8/IG51bGwsXG4gICAgICAgIHJlbmRlcixcbiAgICAgICAgcmVzb3VyY2VQYWdlLFxuICAgICAgICBoaWdobGlnaHRJZDogYnVpbGRIaWdobGlnaHRJZChwYXRoLCByb3V0ZUluZGV4LCBtb2R1bGVJZCksXG4gICAgICB9O1xuICAgIH0sXG4gICk7XG5cbiAgcmV0dXJuIHtcbiAgICBtYXRjaCxcbiAgICByb3V0ZXMsXG4gIH07XG59XG5cbi8qKlxuICogUm91dGUgaGVscGVyIHRoYXQgcHJlc2VydmVzIFR5cGVTY3JpcHQgaW5mZXJlbmNlIChpbmNsdWRpbmcgY29uZGl0aW9uYWwgcXVlcnktc2NoZW1hIGluZmVyZW5jZSkuXG4gKlxuICogQHBhcmFtIHJvdXRlIC0gUm91dGUgZGVmaW5pdGlvbiB0byByZXR1cm4gdW5jaGFuZ2VkIHdpdGggaW5mZXJyZWQgZ2VuZXJpY3MuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByPFxuICBUUHJlcGFyZWQgZXh0ZW5kcyBQcmVwYXJlUmVzdWx0ID0gUHJlcGFyZVJlc3VsdCxcbiAgVFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YSA9IFBhcmFtRGF0YSxcbiAgVFF1ZXJ5IGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbj4oXG4gIHJvdXRlOiBSb3V0ZTxUUHJlcGFyZWQsIFRWYXJpYWJsZXMsIFRRdWVyeT4sXG4pOiBSb3V0ZTxUUHJlcGFyZWQsIFRWYXJpYWJsZXMsIFRRdWVyeT4ge1xuICByZXR1cm4gcm91dGU7XG59XG4iXX0=
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdG9vbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBeUJBLE1BQU0sVUFBVSxlQUFlLENBQzdCLE1BQTRCLEVBQzVCLFFBQWtCO0lBRWxCLEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxFQUFFLENBQUM7UUFDM0IsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDckQsSUFBSSxLQUFLLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDcEIsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUM7WUFDL0IsT0FBTztnQkFDTCxLQUFLO2dCQUNMLEtBQUs7Z0JBQ0wsSUFBSTtnQkFDSixNQUFNO2FBQ1AsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBS0QsU0FBUyxnQkFBZ0IsQ0FDdkIsU0FBNkIsRUFDN0IsS0FBYSxFQUNiLFFBQWlCO0lBRWpCLE1BQU0sS0FBSyxHQUFhLEVBQUUsQ0FBQztJQUMzQixJQUFJLE9BQU8sUUFBUSxLQUFLLFFBQVEsSUFBSSxRQUFRLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7UUFDM0QsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUNELElBQUksT0FBTyxTQUFTLEtBQUssUUFBUSxJQUFJLFNBQVMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUM3RCxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7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UTtZQUNSLFVBQVUsRUFBRSxZQUFZLENBQUMsVUFBVSxJQUFJLElBQUk7WUFDM0MsTUFBTTtZQUNOLFlBQVk7WUFDWixXQUFXLEVBQUUsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxRQUFRLENBQUM7U0FDMUQsQ0FBQztJQUNKLENBQUMsQ0FDRixDQUFDO0lBRUYsT0FBTztRQUNMLEtBQUs7UUFDTCxNQUFNO0tBQ1AsQ0FBQztBQUNKLENBQUM7QUFPRCxNQUFNLFVBQVUsQ0FBQyxDQU1mLEtBQXFEO0lBRXJELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUGFyYW1EYXRhIH0gZnJvbSAncGF0aC10by1yZWdleHAnO1xuXG5pbXBvcnQge1xuICB0eXBlIFByZXBhcmVSZXN1bHQsXG4gIHR5cGUgUHJlcGFyZWRNYXRjaCxcbiAgdHlwZSBQcmVwYXJlZE1hdGNoUm91dGUsXG4gIHR5cGUgUm91dGUsXG4gIHR5cGUgUm91dGVyTWF0Y2hlZFJvdXRlLFxufSBmcm9tICcuL3R5cGVzLmpzJztcblxuaW1wb3J0IHR5cGUge1xuICBSb3V0ZXJQcmVwYXJlRXZlbnQsXG4gIFJvdXRlck5hdmlnYXRpb25Tb3VyY2UsXG4gIFJvdXRlckxvY2F0aW9uU25hcHNob3QsXG59IGZyb20gJy4vaW5zdHJ1bWVudGF0aW9uL0luc3RydW1lbnRhdGlvbi5qcyc7XG5cbmltcG9ydCB0eXBlIHsgRmxhdFJvdXRlIH0gZnJvbSAnLi9idWlsZGVyLmpzJztcblxuLyoqXG4gKiBGaW5kcyB0aGUgZmlyc3QgZmxhdCByb3V0ZSBtYXRjaGluZyB0aGUgcHJvdmlkZWQgbG9jYXRpb24uXG4gKlxuICogQHBhcmFtIHJvdXRlcyAtIEZsYXR0ZW5lZCByb3V0ZSBsaXN0IHRvIGV2YWx1YXRlLlxuICogQHBhcmFtIGxvY2F0aW9uIC0gQnJvd3NlciBsb2NhdGlvbiB3aG9zZSBwYXRobmFtZSBzaG91bGQgYmUgbWF0Y2hlZC5cbiAqIEByZXR1cm5zIE1hdGNoZWQgcm91dGUgd2l0aCBwYXJhbXMgb3IgYG51bGxgIGlmIG5vbmUgbWF0Y2guXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRNYXRjaGVkUm91dGU8VFBhcmFtcyBleHRlbmRzIFBhcmFtRGF0YT4oXG4gIHJvdXRlczogRmxhdFJvdXRlPFRQYXJhbXM+W10sXG4gIGxvY2F0aW9uOiBMb2NhdGlvbixcbik6IFJvdXRlck1hdGNoZWRSb3V0ZTxUUGFyYW1zPiB8IG51bGwge1xuICBmb3IgKGNvbnN0IHJvdXRlIG9mIHJvdXRlcykge1xuICAgIGNvbnN0IG1hdGNoID0gcm91dGUubWF0Y2hGdW5jdGlvbihsb2NhdGlvbi5wYXRobmFtZSk7XG4gICAgaWYgKG1hdGNoICE9PSBmYWxzZSkge1xuICAgICAgY29uc3QgeyBwYXRoLCBwYXJhbXMgfSA9IG1hdGNoO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbWF0Y2gsXG4gICAgICAgIHJvdXRlLFxuICAgICAgICBwYXRoLFxuICAgICAgICBwYXJhbXMsXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG4vKipcbiAqIERlcml2ZXMgYSBkZXRlcm1pbmlzdGljIGlkZW50aWZpZXIgdGhhdCBsaW5rcyBwcmVwYXJlZCByb3V0ZXMgdG8gRE9NIG1hcmtlcnMuXG4gKi9cbmZ1bmN0aW9uIGJ1aWxkSGlnaGxpZ2h0SWQoXG4gIHJvdXRlUGF0aDogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICBpbmRleDogbnVtYmVyLFxuICBtb2R1bGVJZD86IHN0cmluZyxcbik6IHN0cmluZyB7XG4gIGNvbnN0IHBhcnRzOiBzdHJpbmdbXSA9IFtdO1xuICBpZiAodHlwZW9mIG1vZHVsZUlkID09PSAnc3RyaW5nJyAmJiBtb2R1bGVJZC50cmltKCkgIT09ICcnKSB7XG4gICAgcGFydHMucHVzaChgbW9kdWxlOiR7bW9kdWxlSWR9YCk7XG4gIH1cbiAgaWYgKHR5cGVvZiByb3V0ZVBhdGggPT09ICdzdHJpbmcnICYmIHJvdXRlUGF0aC50cmltKCkgIT09ICcnKSB7XG4gICAgcGFydHMucHVzaChgcGF0aDoke3JvdXRlUGF0aH1gKTtcbiAgfVxuICBpZiAocGFydHMubGVuZ3RoID09PSAwKSB7XG4gICAgcGFydHMucHVzaCgncm91dGUnKTtcbiAgfVxuICBwYXJ0cy5wdXNoKGBpbmRleDoke2luZGV4fWApO1xuICByZXR1cm4gcGFydHMuam9pbignfCcpO1xufVxuXG4vKipcbiAqIFByZXBhcmVzIGEgbWF0Y2hlZCByb3V0ZSBieSBleGVjdXRpbmcgYHByZXBhcmVgIGNhbGxiYWNrcyBhbmQgcmVzb2x2aW5nIHJlc291cmNlIHBhZ2VzLlxuICpcbiAqIEBwYXJhbSBtYXRjaCAtIE1hdGNoZWQgcm91dGUgZGVzY3JpcHRvciAob3IgYG51bGxgIHdoZW4gbm90aGluZyBtYXRjaGVkKS5cbiAqIEBwYXJhbSBxdWVyeSAtIE9wdGlvbmFsIHF1ZXJ5IG9iamVjdCBmb3J3YXJkZWQgdG8gcHJlcGFyZSBmdW5jdGlvbnMuXG4gKiBAcGFyYW0gY29udGV4dCAtIE9wdGlvbmFsIHJvdXRlciBjb250ZXh0IGZvcndhcmRlZCB0byBwcmVwYXJlIGZ1bmN0aW9ucy5cbiAqIEByZXR1cm5zIFByZXBhcmVkIGhpZXJhcmNoeSByZWFkeSBmb3IgdGhlIHJlbmRlcmVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJlcGFyZU1hdGNoPFRQYXJhbXMgZXh0ZW5kcyBQYXJhbURhdGEsIFRDb250ZXh0ID0gdW5rbm93bj4oXG4gIG1hdGNoOiBSb3V0ZXJNYXRjaGVkUm91dGU8VFBhcmFtcz4gfCBudWxsLFxuICBxdWVyeT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICBpbnN0cnVtZW50YXRpb24/OiB7XG4gICAgZW1pdDogKGV2ZW50OiBSb3V0ZXJQcmVwYXJlRXZlbnQpID0+IHZvaWQ7XG4gICAgc291cmNlOiBSb3V0ZXJOYXZpZ2F0aW9uU291cmNlO1xuICAgIGxvY2F0aW9uOiBSb3V0ZXJMb2NhdGlvblNuYXBzaG90O1xuICB9LFxuICBjb250ZXh0PzogVENvbnRleHQsXG4pOiBQcmVwYXJlZE1hdGNoPFRQYXJhbXM+IHtcbiAgLy8gTk9URTogUnVudGltZSByZXRhaW5zIGEgZ2VuZXJpYyBQcmVwYXJlZFJlc3VsdDsgdHlwZS1sZXZlbCBuYXJyb3dpbmcgaXMgYWNoaWV2ZWQgZXh0ZXJuYWxseVxuICAvLyB0aHJvdWdoIHRoZSByb3V0ZSB1bmlvbiBhbmQgUHJlcGFyZWRBY2Nlc3MgaGVscGVycy4gV2UgaW50ZW50aW9uYWxseSBhdm9pZCBpbmplY3RpbmdcbiAgLy8gZ2VuZXJpYyBwYXJhbWV0ZXJzIGhlcmUgdG8ga2VlcCBydW50aW1lIGxpZ2h0d2VpZ2h0IHdoaWxlIHN0aWxsIGVuYWJsaW5nIGNvbXBpbGUtdGltZVxuICAvLyBkaXNjcmltaW5hdGlvbiBpbiB1c2VybGFuZCB2aWEgY3JlYXRlUm91dGVyIGdlbmVyaWNzLlxuICBpZiAobWF0Y2ggPT0gbnVsbCkge1xuICAgIHJldHVybiB7XG4gICAgICBtYXRjaCxcbiAgICAgIHJvdXRlczogW10sXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0IG1hdGNoZWRSb3V0ZSA9IG1hdGNoLnJvdXRlO1xuXG4gIGNvbnN0IHJvdXRlczogUHJlcGFyZWRNYXRjaFJvdXRlW10gPSBtYXRjaC5yb3V0ZS5yb3V0ZXMubWFwKFxuICAgIChyb3V0ZSwgcm91dGVJbmRleCkgPT4ge1xuICAgICAgY29uc3QgeyBwYXRoLCBwcmVwYXJlLCByZXNvdXJjZVBhZ2UsIHJlbmRlciB9ID0gcm91dGU7XG4gICAgICBsZXQgbW9kdWxlSWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAgIGlmIChcbiAgICAgICAgcmVzb3VyY2VQYWdlICE9IG51bGwgJiZcbiAgICAgICAgdHlwZW9mIHJlc291cmNlUGFnZS5nZXRNb2R1bGVJZCA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IHJlc29sdmVkTW9kdWxlSWQgPSByZXNvdXJjZVBhZ2UuZ2V0TW9kdWxlSWQoKTtcbiAgICAgICAgaWYgKHR5cGVvZiByZXNvbHZlZE1vZHVsZUlkID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIG1vZHVsZUlkID0gcmVzb2x2ZWRNb2R1bGVJZDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBsZXQgQ29tcG9uZW50OiB1bmtub3duO1xuICAgICAgbGV0IHByZXBhcmVkOiBQcmVwYXJlUmVzdWx0IHwgdW5kZWZpbmVkO1xuXG4gICAgICBsZXQgcHJlcGFyZVN0YXJ0ZWRBdCA9IDA7XG4gICAgICBpZiAoaW5zdHJ1bWVudGF0aW9uICE9IG51bGwpIHtcbiAgICAgICAgcHJlcGFyZVN0YXJ0ZWRBdCA9IERhdGUubm93KCk7XG4gICAgICAgIGluc3RydW1lbnRhdGlvbi5lbWl0KHtcbiAgICAgICAgICBraW5kOiAncHJlcGFyZS1zdGFydCcsXG4gICAgICAgICAgc291cmNlOiBpbnN0cnVtZW50YXRpb24uc291cmNlLFxuICAgICAgICAgIHRpbWVzdGFtcDogcHJlcGFyZVN0YXJ0ZWRBdCxcbiAgICAgICAgICBsb2NhdGlvbjogaW5zdHJ1bWVudGF0aW9uLmxvY2F0aW9uLFxuICAgICAgICAgIHJvdXRlUGF0aDogcGF0aCxcbiAgICAgICAgICBtb2R1bGVJZCxcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChwcmVwYXJlICE9IG51bGwpIHtcbiAgICAgICAgcHJlcGFyZWQgPSBwcmVwYXJlKHtcbiAgICAgICAgICBtYXRjaCxcbiAgICAgICAgICBtYXRjaGVkUm91dGUsXG4gICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICByZXNvdXJjZVBhZ2UsXG4gICAgICAgICAgLy8gRml4IE9iamVjdC5jcmVhdGUobnVsbCkgaXNzdWUgaW4gcGF0aC10by1yZWdleHBcbiAgICAgICAgICB2YXJpYWJsZXM6IHsgLi4ubWF0Y2gucGFyYW1zIH0sXG4gICAgICAgICAgcXVlcnk6IHF1ZXJ5ID8/IHt9LFxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKGluc3RydW1lbnRhdGlvbiAhPSBudWxsKSB7XG4gICAgICAgIGNvbnN0IGZpbmlzaGVkQXQgPSBEYXRlLm5vdygpO1xuICAgICAgICBpbnN0cnVtZW50YXRpb24uZW1pdCh7XG4gICAgICAgICAga2luZDogJ3ByZXBhcmUtZW5kJyxcbiAgICAgICAgICBzb3VyY2U6IGluc3RydW1lbnRhdGlvbi5zb3VyY2UsXG4gICAgICAgICAgdGltZXN0YW1wOiBmaW5pc2hlZEF0LFxuICAgICAgICAgIGxvY2F0aW9uOiBpbnN0cnVtZW50YXRpb24ubG9jYXRpb24sXG4gICAgICAgICAgcm91dGVQYXRoOiBwYXRoLFxuICAgICAgICAgIGR1cmF0aW9uTXM6IGZpbmlzaGVkQXQgLSBwcmVwYXJlU3RhcnRlZEF0LFxuICAgICAgICAgIGhhc1ByZXBhcmVkOiBwcmVwYXJlICE9IG51bGwsXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAocmVzb3VyY2VQYWdlICE9IG51bGwpIHtcbiAgICAgICAgQ29tcG9uZW50ID0gcmVzb3VyY2VQYWdlLmdldCgpO1xuICAgICAgICBpZiAoQ29tcG9uZW50ID09IG51bGwpIHtcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWZsb2F0aW5nLXByb21pc2VzXG4gICAgICAgICAgcmVzb3VyY2VQYWdlLmxvYWQoKTsgLy8gZWFnZXJseSBsb2FkXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBhdGgsXG4gICAgICAgIHByZXBhcmVkLFxuICAgICAgICByZWRpcmVjdFRvOiBtYXRjaGVkUm91dGUucmVkaXJlY3RUbyA/PyBudWxsLFxuICAgICAgICByZW5kZXIsXG4gICAgICAgIHJlc291cmNlUGFnZSxcbiAgICAgICAgaGlnaGxpZ2h0SWQ6IGJ1aWxkSGlnaGxpZ2h0SWQocGF0aCwgcm91dGVJbmRleCwgbW9kdWxlSWQpLFxuICAgICAgfTtcbiAgICB9LFxuICApO1xuXG4gIHJldHVybiB7XG4gICAgbWF0Y2gsXG4gICAgcm91dGVzLFxuICB9O1xufVxuXG4vKipcbiAqIFJvdXRlIGhlbHBlciB0aGF0IHByZXNlcnZlcyBUeXBlU2NyaXB0IGluZmVyZW5jZSAoaW5jbHVkaW5nIGNvbmRpdGlvbmFsIHF1ZXJ5LXNjaGVtYSBpbmZlcmVuY2UpLlxuICpcbiAqIEBwYXJhbSByb3V0ZSAtIFJvdXRlIGRlZmluaXRpb24gdG8gcmV0dXJuIHVuY2hhbmdlZCB3aXRoIGluZmVycmVkIGdlbmVyaWNzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcjxcbiAgVENvbnRleHQgPSB1bmtub3duLFxuICBUUHJlcGFyZWQgZXh0ZW5kcyBQcmVwYXJlUmVzdWx0ID0gUHJlcGFyZVJlc3VsdCxcbiAgVFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YSA9IFBhcmFtRGF0YSxcbiAgVFF1ZXJ5IGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbj4oXG4gIHJvdXRlOiBSb3V0ZTxUQ29udGV4dCwgVFByZXBhcmVkLCBUVmFyaWFibGVzLCBUUXVlcnk+LFxuKTogUm91dGU8VENvbnRleHQsIFRQcmVwYXJlZCwgVFZhcmlhYmxlcywgVFF1ZXJ5PiB7XG4gIHJldHVybiByb3V0ZTtcbn1cbiJdfQ==
@@ -8,7 +8,7 @@ export type FlatRouteInput<TVariables extends ParamData> = {
8
8
  path: string;
9
9
  redirectTo?: string;
10
10
  matchFunction: MatchFunction<TVariables>;
11
- routes: Route<any, any>[];
11
+ routes: AnyRoute[];
12
12
  };
13
13
  export type RouterMatchedRoute<TVariables extends ParamData> = {
14
14
  match: Match<TVariables>;
@@ -17,20 +17,22 @@ export type RouterMatchedRoute<TVariables extends ParamData> = {
17
17
  route: FlatRoute<TVariables>;
18
18
  };
19
19
  export type RouteReactComponent<TProps = Record<string, unknown>> = (props: TProps) => JSX.Element | null;
20
- export type RouteRenderOpts<TPrepared extends PrepareResult, TVariables extends ParamData = ParamData, TQueryShape extends Record<string, unknown> = Record<string, unknown>> = {
20
+ export type RouteRenderOpts<TContext, TPrepared extends PrepareResult, TVariables extends ParamData = ParamData, TQueryShape extends Record<string, unknown> = Record<string, unknown>> = {
21
21
  children: ReactNode;
22
22
  Component?: RouteReactComponent;
23
23
  prepared: TPrepared | undefined;
24
24
  preparedRoute: PreparedMatchRoute;
25
25
  route: FlatRoute<TVariables> | null;
26
+ context: TContext;
26
27
  rawQuery: Record<string, string | string[]>;
27
28
  query: TQueryShape;
28
29
  };
29
- export type RouteRender<TPrepared extends PrepareResult, TVariables extends ParamData = ParamData, TQueryShape extends Record<string, unknown> = Record<string, unknown>> = (opts: RouteRenderOpts<TPrepared, TVariables, TQueryShape>) => ReactElement | null;
30
+ export type RouteRender<TContext, TPrepared extends PrepareResult, TVariables extends ParamData = ParamData, TQueryShape extends Record<string, unknown> = Record<string, unknown>> = (opts: RouteRenderOpts<TContext, TPrepared, TVariables, TQueryShape>) => ReactElement | null;
31
+ export type RouteRenderArgs<TContext, TPrepared extends PrepareResult, TVariables extends ParamData = ParamData, TQueryShape extends Record<string, unknown> = Record<string, unknown>> = RouteRenderOpts<TContext, TPrepared, TVariables, TQueryShape>;
30
32
  export type PreparedMatchRoute = {
31
33
  path?: string;
32
34
  prepared: PrepareResult | undefined;
33
- render?: RouteRender<any, any>;
35
+ render?: RouteRender<any, any, any, any>;
34
36
  redirectTo: string | null;
35
37
  resourcePage?: ResourcePage | null;
36
38
  highlightId?: string;
@@ -39,8 +41,9 @@ export type PreparedMatch<TVariables extends ParamData> = {
39
41
  match: RouterMatchedRoute<TVariables> | null;
40
42
  routes: PreparedMatchRoute[];
41
43
  };
42
- export type RouteEntry<TVariables extends ParamData, S extends FilterSchema | undefined = FilterSchema | undefined> = {
44
+ export type RouteEntry<TVariables extends ParamData, S extends FilterSchema | undefined = FilterSchema | undefined, TContext = unknown> = {
43
45
  preparedMatch: PreparedMatch<TVariables>;
46
+ context: TContext;
44
47
  location: Location;
45
48
  route: RouterMatchedRoute<TVariables> | null;
46
49
  forceRerender: boolean;
@@ -61,39 +64,41 @@ export type Redirect = {
61
64
  status?: RouterRedirectStatus;
62
65
  };
63
66
  export type PrepareResult = Record<string, any>;
64
- export type PrepareParams<TVariables extends ParamData, TQueryShape extends Record<string, unknown> = Record<string, unknown>> = {
67
+ export type PrepareParams<TContext, TVariables extends ParamData, TQueryShape extends Record<string, unknown> = Record<string, unknown>> = {
65
68
  match: RouterMatchedRoute<TVariables>;
66
69
  matchedRoute: FlatRoute<TVariables>;
70
+ context: TContext;
67
71
  resourcePage?: ResourcePage | null;
68
72
  variables: TVariables;
69
73
  query: TQueryShape;
70
74
  };
71
- export type RoutePrepare<TPrepared extends PrepareResult, TVariables extends ParamData = ParamData, TQueryShape extends Record<string, unknown> = Record<string, unknown>> = (params: PrepareParams<TVariables, TQueryShape>) => TPrepared;
72
- export type Route<TPrepared extends PrepareResult, TVariables extends ParamData = ParamData, TQueryShape extends Record<string, unknown> = Record<string, unknown>, S extends FilterSchema | undefined = FilterSchema | undefined> = {
75
+ export type RoutePrepareArgs<TContext, TVariables extends ParamData = ParamData, TQueryShape extends Record<string, unknown> = Record<string, unknown>> = PrepareParams<TContext, TVariables, TQueryShape>;
76
+ export type RoutePrepare<TContext, TPrepared extends PrepareResult, TVariables extends ParamData = ParamData, TQueryShape extends Record<string, unknown> = Record<string, unknown>> = (params: PrepareParams<TContext, TVariables, TQueryShape>) => TPrepared;
77
+ export type Route<TContext, TPrepared extends PrepareResult, TVariables extends ParamData = ParamData, TQueryShape extends Record<string, unknown> = Record<string, unknown>, S extends FilterSchema | undefined = FilterSchema | undefined> = {
73
78
  children?: (AnyRoute | Redirect)[];
74
79
  resourcePage?: ResourcePage | null;
75
80
  path?: string;
76
- prepare?: RoutePrepare<TPrepared, TVariables, TQueryShape>;
77
- render?: RouteRender<TPrepared, TVariables, TQueryShape>;
81
+ prepare?: RoutePrepare<TContext, TPrepared, TVariables, TQueryShape>;
82
+ render?: RouteRender<TContext, TPrepared, TVariables, TQueryShape>;
78
83
  querySchema?: S;
79
84
  };
80
85
  export type RouteComponentProps<TVariables extends ParamData, S extends FilterSchema | undefined = FilterSchema | undefined, TQueryShape extends Record<string, unknown> = Record<string, unknown>> = {
81
86
  children: ReactElement;
82
87
  routerContext: RoutingContextType<TVariables, S, TQueryShape>;
83
- route: Route<any, any, any, S>;
88
+ route: Route<any, any, any, any, S>;
84
89
  };
85
- export type SubscribeCallback<TVariables extends ParamData> = (nextEntry: RouteEntry<TVariables>) => void;
90
+ export type SubscribeCallback<TVariables extends ParamData, S extends FilterSchema | undefined = FilterSchema | undefined, TContext = unknown> = (nextEntry: RouteEntry<TVariables, S, TContext>) => void;
86
91
  export type PreloadTarget = {
87
92
  pathname: string;
88
93
  search?: string;
89
94
  source?: string;
90
95
  };
91
- export type RoutingContextType<TVariables extends ParamData, S extends FilterSchema | undefined = FilterSchema | undefined, TQueryShape extends Record<string, unknown> = Record<string, unknown>> = {
96
+ export type RoutingContextType<TVariables extends ParamData, S extends FilterSchema | undefined = FilterSchema | undefined, TQueryShape extends Record<string, unknown> = Record<string, unknown>, TContext = unknown> = {
92
97
  history: BrowserHistory;
93
- get: () => RouteEntry<TVariables, S>;
98
+ get: () => RouteEntry<TVariables, S, TContext>;
94
99
  preloadCode: (target: PreloadTarget) => void;
95
100
  preload: (target: PreloadTarget) => void;
96
- subscribe: (callback: SubscribeCallback<TVariables>) => () => void;
101
+ subscribe: (callback: SubscribeCallback<TVariables, S, TContext>) => () => void;
97
102
  navigate: (opts: {
98
103
  pathname?: string;
99
104
  query?: TQueryShape;
@@ -122,10 +127,10 @@ export type TypedFilterActions<S extends FilterSchema> = {
122
127
  replace?: boolean;
123
128
  }) => void;
124
129
  };
125
- export type AnyRoute = Route<any, any, any, any>;
126
- export type PreparedOf<R> = R extends Route<infer P, any, any, any> ? P : never;
127
- export type VariablesOf<R> = R extends Route<any, infer V, any, any> ? V : never;
128
- export type QueryShapeOf<R> = R extends Route<any, any, infer Q, any> ? Q : never;
130
+ export type AnyRoute<TContext = any> = Route<TContext, any, any, any, any>;
131
+ export type PreparedOf<R> = R extends Route<any, infer P, any, any, any> ? P : never;
132
+ export type VariablesOf<R> = R extends Route<any, any, infer V, any, any> ? V : never;
133
+ export type QueryShapeOf<R> = R extends Route<any, any, any, infer Q, any> ? Q : never;
129
134
  export type PathOf<R> = R extends {
130
135
  path?: infer P;
131
136
  } ? P extends string ? P : never : never;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
package/lib/esm/types.js CHANGED
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ29tcG9uZW50VHlwZSwgUmVhY3RFbGVtZW50LCBSZWFjdE5vZGUsIEpTWCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB0eXBlIHtcbiAgU2NoZW1hIGFzIEZpbHRlclNjaGVtYSxcbiAgSW5mZXJGaWx0ZXJzIGFzIEluZmVyRmlsdGVyUmVzdWx0LFxuICBJbmZlckZpZWxkIGFzIEluZmVyRmlsdGVyRmllbGQsXG4gIERpYWdub3N0aWMgYXMgRmlsdGVyRGlhZ25vc3RpYyxcbn0gZnJvbSAnQHBsdW1pbGUvZmlsdGVyLXF1ZXJ5JztcbmltcG9ydCB0eXBlIHsgTWF0Y2gsIE1hdGNoRnVuY3Rpb24sIFBhcmFtRGF0YSB9IGZyb20gJ3BhdGgtdG8tcmVnZXhwJztcblxuaW1wb3J0IHR5cGUgeyBGbGF0Um91dGUgfSBmcm9tICcuL2J1aWxkZXIuanMnO1xuaW1wb3J0IHR5cGUgeyBSZXNvdXJjZVBhZ2UgfSBmcm9tICcuL1Jlc291cmNlUGFnZS5qcyc7XG5pbXBvcnQgdHlwZSB7IEJyb3dzZXJIaXN0b3J5IH0gZnJvbSAnLi9oaXN0b3J5L2luZGV4LmpzJztcblxuLyoqXG4gKiBJbnB1dCB0eXBlIGZvciBjcmVhdGluZyBhIEZsYXRSb3V0ZSBpbnN0YW5jZS5cbiAqIEB0ZW1wbGF0ZSBUVmFyaWFibGVzIC0gUm91dGUgcGFyYW1ldGVyIHR5cGVzIGV4dHJhY3RlZCBmcm9tIHRoZSBVUkwgcGF0aFxuICovXG5leHBvcnQgdHlwZSBGbGF0Um91dGVJbnB1dDxUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhPiA9IHtcbiAgLyoqIFRoZSBVUkwgcGF0aCBwYXR0ZXJuIGZvciB0aGlzIHJvdXRlICovXG4gIHBhdGg6IHN0cmluZztcbiAgLyoqIE9wdGlvbmFsIHJlZGlyZWN0IGRlc3RpbmF0aW9uIGlmIHRoaXMgcm91dGUgc2hvdWxkIHJlZGlyZWN0ICovXG4gIHJlZGlyZWN0VG8/OiBzdHJpbmc7XG4gIC8qKiBGdW5jdGlvbiB0byBtYXRjaCBVUkwgcGF0aHMgYWdhaW5zdCB0aGlzIHJvdXRlIHBhdHRlcm4gKi9cbiAgbWF0Y2hGdW5jdGlvbjogTWF0Y2hGdW5jdGlvbjxUVmFyaWFibGVzPjtcbiAgLyoqIE5lc3RlZCByb3V0ZXMgdGhhdCBzaG91bGQgYmUgcmVuZGVyZWQgd2l0aGluIHRoaXMgcm91dGUgKi9cbiAgcm91dGVzOiBSb3V0ZTxhbnksIGFueT5bXTtcbn07XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIG1hdGNoZWQgcm91dGUgd2l0aCBleHRyYWN0ZWQgcGFyYW1ldGVycyBhbmQgbWV0YWRhdGEuXG4gKiBAdGVtcGxhdGUgVFZhcmlhYmxlcyAtIFJvdXRlIHBhcmFtZXRlciB0eXBlcyBleHRyYWN0ZWQgZnJvbSB0aGUgVVJMIHBhdGhcbiAqL1xuZXhwb3J0IHR5cGUgUm91dGVyTWF0Y2hlZFJvdXRlPFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGE+ID0ge1xuICAvKiogVGhlIG1hdGNoIHJlc3VsdCBmcm9tIHBhdGgtdG8tcmVnZXhwICovXG4gIG1hdGNoOiBNYXRjaDxUVmFyaWFibGVzPjtcbiAgLyoqIEV4dHJhY3RlZCBwYXJhbWV0ZXJzIGZyb20gdGhlIFVSTCBwYXRoICovXG4gIHBhcmFtczogVFZhcmlhYmxlcztcbiAgLyoqIFRoZSBtYXRjaGVkIHBhdGggc3RyaW5nICovXG4gIHBhdGg6IHN0cmluZztcbiAgLyoqIFRoZSBmbGF0IHJvdXRlIHRoYXQgd2FzIG1hdGNoZWQgKi9cbiAgcm91dGU6IEZsYXRSb3V0ZTxUVmFyaWFibGVzPjtcbn07XG5cbi8qKlxuICogQSBSZWFjdCBjb21wb25lbnQgdGhhdCBjYW4gYmUgdXNlZCBhcyBhIHJvdXRlIGNvbXBvbmVudC5cbiAqIEB0ZW1wbGF0ZSBUUHJvcHMgLSBUaGUgcHJvcHMgdHlwZSBmb3IgdGhlIGNvbXBvbmVudFxuICovXG5leHBvcnQgdHlwZSBSb3V0ZVJlYWN0Q29tcG9uZW50PFRQcm9wcyA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+PiA9IChcbiAgcHJvcHM6IFRQcm9wcyxcbikgPT4gSlNYLkVsZW1lbnQgfCBudWxsO1xuXG4vKipcbiAqIE9wdGlvbnMgcGFzc2VkIHRvIGEgcm91dGUgcmVuZGVyIGZ1bmN0aW9uLlxuICogQHRlbXBsYXRlIFRQcmVwYXJlZCAtIFRoZSB0eXBlIG9mIHByZXBhcmVkIGRhdGEgcmV0dXJuZWQgYnkgdGhlIHJvdXRlJ3MgcHJlcGFyZSBmdW5jdGlvblxuICogQHRlbXBsYXRlIFRWYXJpYWJsZXMgLSBSb3V0ZSBwYXJhbWV0ZXIgdHlwZXMgZXh0cmFjdGVkIGZyb20gdGhlIFVSTCBwYXRoXG4gKi9cbmV4cG9ydCB0eXBlIFJvdXRlUmVuZGVyT3B0czxcbiAgVFByZXBhcmVkIGV4dGVuZHMgUHJlcGFyZVJlc3VsdCxcbiAgVFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YSA9IFBhcmFtRGF0YSxcbiAgVFF1ZXJ5U2hhcGUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuPiA9IHtcbiAgLyoqIENoaWxkIGNvbXBvbmVudHMgdG8gcmVuZGVyIHdpdGhpbiB0aGlzIHJvdXRlICovXG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gIC8qKiBPcHRpb25hbCBjb21wb25lbnQgdG8gcmVuZGVyIChmcm9tIFJlc291cmNlUGFnZSkgKi9cbiAgQ29tcG9uZW50PzogUm91dGVSZWFjdENvbXBvbmVudDtcbiAgLyoqIERhdGEgcHJlcGFyZWQgYnkgdGhlIHJvdXRlJ3MgcHJlcGFyZSBmdW5jdGlvbiAqL1xuICBwcmVwYXJlZDogVFByZXBhcmVkIHwgdW5kZWZpbmVkO1xuICAvKiogVGhlIHByZXBhcmVkIHJvdXRlIHRoYXQgaXMgYmVpbmcgcmVuZGVyZWQgKi9cbiAgcHJlcGFyZWRSb3V0ZTogUHJlcGFyZWRNYXRjaFJvdXRlO1xuICAvKiogVGhlIG1hdGNoZWQgcm91dGUgb3IgbnVsbCBpZiBubyBtYXRjaCAqL1xuICByb3V0ZTogRmxhdFJvdXRlPFRWYXJpYWJsZXM+IHwgbnVsbDtcbiAgLyoqIFJhdyBxdWVyeSBvYmplY3QgKFBoYXNlIDIgZ2VuZXJpYyBwYXJzaW5nKSAqL1xuICByYXdRdWVyeTogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgc3RyaW5nW10+O1xuICAvKiogVHlwZWQgcXVlcnkgb2JqZWN0IChQaGFzZSAzKS4gRmFsbHMgYmFjayB0byByYXdRdWVyeSBpZiBubyBzY2hlbWEgKi9cbiAgcXVlcnk6IFRRdWVyeVNoYXBlO1xufTtcblxuLyoqXG4gKiBGdW5jdGlvbiB0byByZW5kZXIgYSByb3V0ZSB3aXRoIGN1c3RvbSBsb2dpYy5cbiAqIEB0ZW1wbGF0ZSBUUHJlcGFyZWQgLSBUaGUgdHlwZSBvZiBwcmVwYXJlZCBkYXRhIHJldHVybmVkIGJ5IHRoZSByb3V0ZSdzIHByZXBhcmUgZnVuY3Rpb25cbiAqIEB0ZW1wbGF0ZSBUVmFyaWFibGVzIC0gUm91dGUgcGFyYW1ldGVyIHR5cGVzIGV4dHJhY3RlZCBmcm9tIHRoZSBVUkwgcGF0aFxuICovXG5leHBvcnQgdHlwZSBSb3V0ZVJlbmRlcjxcbiAgVFByZXBhcmVkIGV4dGVuZHMgUHJlcGFyZVJlc3VsdCxcbiAgVFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YSA9IFBhcmFtRGF0YSxcbiAgVFF1ZXJ5U2hhcGUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuPiA9IChcbiAgb3B0czogUm91dGVSZW5kZXJPcHRzPFRQcmVwYXJlZCwgVFZhcmlhYmxlcywgVFF1ZXJ5U2hhcGU+LFxuKSA9PiBSZWFjdEVsZW1lbnQgfCBudWxsO1xuXG4vKipcbiAqIEEgcm91dGUgdGhhdCBoYXMgYmVlbiBwcmVwYXJlZCBmb3IgcmVuZGVyaW5nIHdpdGggbG9hZGVkIGRhdGEgYW5kIGNvbXBvbmVudHMuXG4gKi9cbmV4cG9ydCB0eXBlIFByZXBhcmVkTWF0Y2hSb3V0ZSA9IHtcbiAgLyoqIFRoZSBwYXRoIHRoYXQgd2FzIG1hdGNoZWQgKi9cbiAgcGF0aD86IHN0cmluZztcbiAgLyoqIERhdGEgcHJlcGFyZWQgYnkgdGhlIHJvdXRlJ3MgcHJlcGFyZSBmdW5jdGlvbiAqL1xuICBwcmVwYXJlZDogUHJlcGFyZVJlc3VsdCB8IHVuZGVmaW5lZDtcbiAgLyoqIEN1c3RvbSByZW5kZXIgZnVuY3Rpb24gZm9yIHRoaXMgcm91dGUgKi9cbiAgcmVuZGVyPzogUm91dGVSZW5kZXI8YW55LCBhbnk+O1xuICAvKiogUmVkaXJlY3QgZGVzdGluYXRpb24gaWYgdGhpcyByb3V0ZSBzaG91bGQgcmVkaXJlY3QgKi9cbiAgcmVkaXJlY3RUbzogc3RyaW5nIHwgbnVsbDtcbiAgLyoqIFJlc291cmNlIHBhZ2UgZm9yIGxhenktbG9hZGVkIGNvbXBvbmVudHMgKi9cbiAgcmVzb3VyY2VQYWdlPzogUmVzb3VyY2VQYWdlIHwgbnVsbDtcbiAgLyoqIElkZW50aWZpZXIgdXNlZCBieSBkZXZlbG9wZXIgdG9vbGluZyB0byBtYXAgcmVuZGVyZWQgRE9NIHJlZ2lvbnMgKi9cbiAgaGlnaGxpZ2h0SWQ/OiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIFJlc3VsdCBvZiBwcmVwYXJpbmcgYSBtYXRjaGVkIHJvdXRlLCBpbmNsdWRpbmcgYWxsIG5lc3RlZCByb3V0ZXMuXG4gKiBAdGVtcGxhdGUgVFZhcmlhYmxlcyAtIFJvdXRlIHBhcmFtZXRlciB0eXBlcyBleHRyYWN0ZWQgZnJvbSB0aGUgVVJMIHBhdGhcbiAqL1xuZXhwb3J0IHR5cGUgUHJlcGFyZWRNYXRjaDxUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhPiA9IHtcbiAgLyoqIFRoZSBtYXRjaGVkIHJvdXRlIG9yIG51bGwgaWYgbm8gbWF0Y2ggKi9cbiAgbWF0Y2g6IFJvdXRlck1hdGNoZWRSb3V0ZTxUVmFyaWFibGVzPiB8IG51bGw7XG4gIC8qKiBBcnJheSBvZiBwcmVwYXJlZCByb3V0ZXMgZm9yIHJlbmRlcmluZyAqL1xuICByb3V0ZXM6IFByZXBhcmVkTWF0Y2hSb3V0ZVtdO1xufTtcblxuLyoqXG4gKiBDb21wbGV0ZSByb3V0ZSBlbnRyeSByZXByZXNlbnRpbmcgdGhlIGN1cnJlbnQgcm91dGVyIHN0YXRlLlxuICogQHRlbXBsYXRlIFRWYXJpYWJsZXMgLSBSb3V0ZSBwYXJhbWV0ZXIgdHlwZXMgZXh0cmFjdGVkIGZyb20gdGhlIFVSTCBwYXRoXG4gKi9cbmV4cG9ydCB0eXBlIFJvdXRlRW50cnk8XG4gIFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGEsXG4gIFMgZXh0ZW5kcyBGaWx0ZXJTY2hlbWEgfCB1bmRlZmluZWQgPSBGaWx0ZXJTY2hlbWEgfCB1bmRlZmluZWQsXG4+ID0ge1xuICAvKiogVGhlIHByZXBhcmVkIG1hdGNoIHdpdGggbG9hZGVkIGRhdGEgYW5kIGNvbXBvbmVudHMgKi9cbiAgcHJlcGFyZWRNYXRjaDogUHJlcGFyZWRNYXRjaDxUVmFyaWFibGVzPjtcbiAgLyoqIEN1cnJlbnQgYnJvd3NlciBsb2NhdGlvbiAqL1xuICBsb2NhdGlvbjogTG9jYXRpb247XG4gIC8qKiBUaGUgbWF0Y2hlZCByb3V0ZSBvciBudWxsIGlmIG5vIG1hdGNoICovXG4gIHJvdXRlOiBSb3V0ZXJNYXRjaGVkUm91dGU8VFZhcmlhYmxlcz4gfCBudWxsO1xuICAvKiogV2hldGhlciB0byBmb3JjZSBhIHJlLXJlbmRlciBldmVuIGlmIHRoZSBwYXRoIGhhc24ndCBjaGFuZ2VkICovXG4gIGZvcmNlUmVyZW5kZXI6IGJvb2xlYW47XG4gIC8qKiBSYXcgc2VhcmNoIHN0cmluZyAocXVlcnkgcGFydCkgb2YgdGhlIGxvY2F0aW9uIGZvciBjaGFuZ2UgZGV0ZWN0aW9uICovXG4gIHJhd1NlYXJjaD86IHN0cmluZztcbiAgLyoqIFBhcnNlZCByYXcgcXVlcnkgcGFyYW1ldGVycyAodmFsdWVzIGFnZ3JlZ2F0ZWQ7IGR1cGxpY2F0ZXMgPT4gYXJyYXkpICovXG4gIHF1ZXJ5OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBzdHJpbmdbXT47XG4gIC8qKiBMZWdhY3kgdHlwZWRRdWVyeSByZW1vdmVkIOKAkyB1bmlmaWVkIGZpbHRlcnMgaGFuZGxlIHR5cGVkIGFjY2VzcyAqL1xuICAvLyB0eXBlZFF1ZXJ5PzogbmV2ZXI7XG4gIC8qKiBQYXJzZWQgZmlsdGVycyBvYmplY3QgZGVyaXZlZCBmcm9tIHRoZSBkZWVwZXN0IGFjdGl2ZSBxdWVyeVNjaGVtYSAoaWYgYW55KSAqL1xuICBmaWx0ZXJzPzogUyBleHRlbmRzIEZpbHRlclNjaGVtYVxuICAgID8gSW5mZXJGaWx0ZXJSZXN1bHQ8Uz5cbiAgICA6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAvKiogRGlhZ25vc3RpY3MgZnJvbSBmaWx0ZXIgcGFyc2luZyAoaWYgYW55KSAqL1xuICBmaWx0ZXJEaWFnbm9zdGljcz86IEZpbHRlckRpYWdub3N0aWNbXTtcbiAgLyoqIERlZXBlc3QgYWN0aXZlIHF1ZXJ5IHNjaGVtYSAoRmlsdGVyU2NoZW1hIGZyb20gQHBsdW1pbGUvZmlsdGVyLXF1ZXJ5KSBmb3IgY3VycmVudCBtYXRjaGVkIHJvdXRlICovXG4gIGFjdGl2ZVF1ZXJ5U2NoZW1hPzogUztcbn07XG5cbi8vIFF1ZXJ5U2NoZW1hICYgZGVzY3JpcHRvcnMgcmVtb3ZlZCAoUGhhc2UgMiB1bmlmaWVkIG1vZGVsKSDigJMgaGlzdG9yaWNhbCB0eXBlcyBpbnRlbnRpb25hbGx5IG9taXR0ZWQuXG5cbi8qKlxuICogSFRUUCBzdGF0dXMgY29kZXMgZm9yIHJlZGlyZWN0cy5cbiAqL1xuZXhwb3J0IHR5cGUgUm91dGVyUmVkaXJlY3RTdGF0dXMgPSAzMDEgfCAzMDI7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIG1hdGNoZWQgcm91dGUgd2l0aCByZWdleCBtYXRjaCByZXN1bHQuXG4gKiBAdGVtcGxhdGUgVFZhcmlhYmxlcyAtIFJvdXRlIHBhcmFtZXRlciB0eXBlcyBleHRyYWN0ZWQgZnJvbSB0aGUgVVJMIHBhdGhcbiAqL1xuZXhwb3J0IHR5cGUgTWF0Y2hlZFJvdXRlPFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGE+ID0ge1xuICAvKiogVGhlIHJlZ2V4IG1hdGNoIHJlc3VsdCAqL1xuICBtYXRjaDogUmVnRXhwRXhlY0FycmF5O1xuICAvKiogVGhlIGZsYXQgcm91dGUgdGhhdCB3YXMgbWF0Y2hlZCAqL1xuICByb3V0ZTogRmxhdFJvdXRlPFRWYXJpYWJsZXM+O1xufTtcblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciBhIHJvdXRlIHJlZGlyZWN0LlxuICovXG5leHBvcnQgdHlwZSBSZWRpcmVjdCA9IHtcbiAgLyoqIE9wdGlvbmFsIHNvdXJjZSBwYXRoIHBhdHRlcm4gKi9cbiAgcGF0aD86IHN0cmluZztcbiAgLyoqIERlc3RpbmF0aW9uIHBhdGggZm9yIHRoZSByZWRpcmVjdCAqL1xuICB0bzogc3RyaW5nO1xuICAvKiogSFRUUCBzdGF0dXMgY29kZSBmb3IgdGhlIHJlZGlyZWN0ICovXG4gIHN0YXR1cz86IFJvdXRlclJlZGlyZWN0U3RhdHVzO1xufTtcblxuLyoqXG4gKiBCYXNlIHR5cGUgZm9yIGRhdGEgcHJlcGFyZWQgYnkgcm91dGUgcHJlcGFyZSBmdW5jdGlvbnMuXG4gKi9cbi8vIFByZXBhcmVkIGRhdGEgY2FuIGJlIGFueSByZWNvcmQ7IHJldGFpbiBhbnkgdG8gYXZvaWQgb3Zlci1jb25zdHJhaW5pbmcgdXNlciBjb2RlLlxuZXhwb3J0IHR5cGUgUHJlcGFyZVJlc3VsdCA9IFJlY29yZDxzdHJpbmcsIGFueT47XG5cbi8qKlxuICogUGFyYW1ldGVycyBwYXNzZWQgdG8gYSByb3V0ZSdzIHByZXBhcmUgZnVuY3Rpb24uXG4gKiBAdGVtcGxhdGUgVFZhcmlhYmxlcyAtIFJvdXRlIHBhcmFtZXRlciB0eXBlcyBleHRyYWN0ZWQgZnJvbSB0aGUgVVJMIHBhdGhcbiAqL1xuZXhwb3J0IHR5cGUgUHJlcGFyZVBhcmFtczxcbiAgVFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YSxcbiAgVFF1ZXJ5U2hhcGUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuPiA9IHtcbiAgLyoqIFRoZSBtYXRjaGVkIHJvdXRlIHdpdGggZXh0cmFjdGVkIHBhcmFtZXRlcnMgKi9cbiAgbWF0Y2g6IFJvdXRlck1hdGNoZWRSb3V0ZTxUVmFyaWFibGVzPjtcbiAgLyoqIFRoZSBmbGF0IHJvdXRlIHRoYXQgd2FzIG1hdGNoZWQgKi9cbiAgbWF0Y2hlZFJvdXRlOiBGbGF0Um91dGU8VFZhcmlhYmxlcz47XG4gIC8qKiBSZXNvdXJjZSBwYWdlIGZvciBsYXp5LWxvYWRlZCBjb21wb25lbnRzICovXG4gIHJlc291cmNlUGFnZT86IFJlc291cmNlUGFnZSB8IG51bGw7XG4gIC8qKiBFeHRyYWN0ZWQgVVJMIHBhcmFtZXRlcnMgKi9cbiAgdmFyaWFibGVzOiBUVmFyaWFibGVzO1xuICAvKiogVHlwZWQgcXVlcnkgb2JqZWN0ICovXG4gIHF1ZXJ5OiBUUXVlcnlTaGFwZTtcbn07XG5cbi8qKlxuICogRnVuY3Rpb24gdG8gcHJlcGFyZSBkYXRhIGZvciBhIHJvdXRlIGJlZm9yZSByZW5kZXJpbmcuXG4gKiBAdGVtcGxhdGUgVFByZXBhcmVkIC0gVGhlIHR5cGUgb2YgZGF0YSB0aGlzIGZ1bmN0aW9uIHJldHVybnNcbiAqIEB0ZW1wbGF0ZSBUVmFyaWFibGVzIC0gUm91dGUgcGFyYW1ldGVyIHR5cGVzIGV4dHJhY3RlZCBmcm9tIHRoZSBVUkwgcGF0aFxuICovXG5leHBvcnQgdHlwZSBSb3V0ZVByZXBhcmU8XG4gIFRQcmVwYXJlZCBleHRlbmRzIFByZXBhcmVSZXN1bHQsXG4gIFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGEgPSBQYXJhbURhdGEsXG4gIFRRdWVyeVNoYXBlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbj4gPSAocGFyYW1zOiBQcmVwYXJlUGFyYW1zPFRWYXJpYWJsZXMsIFRRdWVyeVNoYXBlPikgPT4gVFByZXBhcmVkO1xuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIGEgc2luZ2xlIHJvdXRlIGluIHRoZSByb3V0ZXIuXG4gKiBAdGVtcGxhdGUgVFByZXBhcmVkIC0gVGhlIHR5cGUgb2YgcHJlcGFyZWQgZGF0YSByZXR1cm5lZCBieSB0aGUgcm91dGUncyBwcmVwYXJlIGZ1bmN0aW9uXG4gKiBAdGVtcGxhdGUgVFZhcmlhYmxlcyAtIFJvdXRlIHBhcmFtZXRlciB0eXBlcyBleHRyYWN0ZWQgZnJvbSB0aGUgVVJMIHBhdGhcbiAqL1xuZXhwb3J0IHR5cGUgUm91dGU8XG4gIFRQcmVwYXJlZCBleHRlbmRzIFByZXBhcmVSZXN1bHQsXG4gIFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGEgPSBQYXJhbURhdGEsXG4gIFRRdWVyeVNoYXBlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgUyBleHRlbmRzIEZpbHRlclNjaGVtYSB8IHVuZGVmaW5lZCA9IEZpbHRlclNjaGVtYSB8IHVuZGVmaW5lZCxcbj4gPSB7XG4gIC8qKlxuICAgKiBOZXN0ZWQgY2hpbGQgcm91dGVzIG9yIHJlZGlyZWN0cy5cbiAgICpcbiAgICogSU1QT1JUQU5UOiBUaGlzIHVzZWQgdG8gYmUgdHlwZWQgYXMgYChSb3V0ZTxQcmVwYXJlUmVzdWx0PiB8IFJlZGlyZWN0KVtdYCB3aGljaFxuICAgKiB3aWRlbmVkIChlcmFzZWQpIHRoZSBnZW5lcmljIHBhcmFtZXRlciB0eXBlcyAobm90YWJseSB0aGUgYFRWYXJpYWJsZXNgIG9mIGVhY2hcbiAgICogY2hpbGQpLiBUaGF0IGNhdXNlZCBUeXBlU2NyaXB0IHRvIHRyZWF0IGV2ZXJ5IGNoaWxkIHJvdXRlJ3MgYHByZXBhcmVgIGNhbGxiYWNrXG4gICAqIGFzIGFjY2VwdGluZyB0aGUgZGVmYXVsdCBgUGFyYW1EYXRhYCBzaGFwZSAoZWZmZWN0aXZlbHkgYFBhcnRpYWw8UmVjb3JkPHN0cmluZyxzdHJpbmd8c3RyaW5nW10+PmApLlxuICAgKiBXaGVuIHVzZXIgY29kZSBzcGVjaWZpZWQgYSBtb3JlIHNwZWNpZmljIHBhcmFtZXRlciBvYmplY3QgKGUuZy4gYHsgc2x1Zzogc3RyaW5nIH1gKVxuICAgKiBmb3IgYSBwYXRoIGxpa2UgYDpzbHVnYCwgdGhlIGZ1bmN0aW9uIHR5cGUgYmVjYW1lIG5vbuKAkWFzc2lnbmFibGUgYmVjYXVzZSBpdHNcbiAgICogcGFyYW1ldGVyIHdhcyBzdHJpY3RlciB0aGFuIHRoZSB3aWRlbmVkIHZlcnNpb24uIEJ5IHN3aXRjaGluZyB0byBgQW55Um91dGVgIHdlXG4gICAqIHJldGFpbiBgYW55YCBpbiB0aGUgZXJhc2VkIHBvc2l0aW9uIGluc3RlYWQgb2YgYSBjb25jcmV0ZSBgUGFyYW1EYXRhYCwgd2hpY2hcbiAgICogYWxsb3dzIHN0cmljdGVyIGNoaWxkIGB2YXJpYWJsZXNgIHNoYXBlcyB3aXRob3V0IGNvbmZsaWN0LlxuICAgKlxuICAgKiBVc2luZyBgQW55Um91dGVgIHB1cnBvc2VseSBwcmVzZXJ2ZXMgaW5kZXBlbmRlbmNlIG9mIGVhY2ggcm91dGUncyBnZW5lcmljXG4gICAqIHBhcmFtZXRlcnMgd2hpbGUgc3RpbGwga2VlcGluZyBydW50aW1lIHJlcHJlc2VudGF0aW9uIGlkZW50aWNhbC5cbiAgICovXG4gIGNoaWxkcmVuPzogKEFueVJvdXRlIHwgUmVkaXJlY3QpW107XG4gIC8qKiBSZXNvdXJjZSBwYWdlIGZvciBsYXp5LWxvYWRlZCBjb21wb25lbnRzICovXG4gIHJlc291cmNlUGFnZT86IFJlc291cmNlUGFnZSB8IG51bGw7XG4gIC8qKiBVUkwgcGF0aCBwYXR0ZXJuIGZvciB0aGlzIHJvdXRlICovXG4gIHBhdGg/OiBzdHJpbmc7XG4gIC8qKiBGdW5jdGlvbiB0byBwcmVwYXJlIGRhdGEgYmVmb3JlIHJlbmRlcmluZyAqL1xuICBwcmVwYXJlPzogUm91dGVQcmVwYXJlPFRQcmVwYXJlZCwgVFZhcmlhYmxlcywgVFF1ZXJ5U2hhcGU+O1xuICAvKiogQ3VzdG9tIHJlbmRlciBmdW5jdGlvbiBmb3IgdGhpcyByb3V0ZSAqL1xuICByZW5kZXI/OiBSb3V0ZVJlbmRlcjxUUHJlcGFyZWQsIFRWYXJpYWJsZXMsIFRRdWVyeVNoYXBlPjtcbiAgLyoqIFVuaWZpZWQgc2NoZW1hIChmaWx0ZXIgLyBxdWVyeSkgKi9cbiAgcXVlcnlTY2hlbWE/OiBTO1xufTtcblxuLyoqXG4gKiBQcm9wcyBwYXNzZWQgdG8gUm91dGVDb21wb25lbnQgaW5zdGFuY2VzLlxuICogQHRlbXBsYXRlIFRWYXJpYWJsZXMgLSBSb3V0ZSBwYXJhbWV0ZXIgdHlwZXMgZXh0cmFjdGVkIGZyb20gdGhlIFVSTCBwYXRoXG4gKi9cbmV4cG9ydCB0eXBlIFJvdXRlQ29tcG9uZW50UHJvcHM8XG4gIFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGEsXG4gIFMgZXh0ZW5kcyBGaWx0ZXJTY2hlbWEgfCB1bmRlZmluZWQgPSBGaWx0ZXJTY2hlbWEgfCB1bmRlZmluZWQsXG4gIFRRdWVyeVNoYXBlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbj4gPSB7XG4gIC8qKiBDaGlsZCBjb21wb25lbnRzIHRvIHJlbmRlciAqL1xuICBjaGlsZHJlbjogUmVhY3RFbGVtZW50O1xuICAvKiogUm91dGVyIGNvbnRleHQgY29udGFpbmluZyBuYXZpZ2F0aW9uIGFuZCBzdGF0ZSAqL1xuICByb3V0ZXJDb250ZXh0OiBSb3V0aW5nQ29udGV4dFR5cGU8VFZhcmlhYmxlcywgUywgVFF1ZXJ5U2hhcGU+O1xuICAvKiogVGhlIHJvdXRlIGNvbmZpZ3VyYXRpb24gKi9cbiAgcm91dGU6IFJvdXRlPGFueSwgYW55LCBhbnksIFM+O1xufTtcblxuLyoqXG4gKiBDYWxsYmFjayBmdW5jdGlvbiBmb3Igcm91dGUgY2hhbmdlcy5cbiAqIEB0ZW1wbGF0ZSBUVmFyaWFibGVzIC0gUm91dGUgcGFyYW1ldGVyIHR5cGVzIGV4dHJhY3RlZCBmcm9tIHRoZSBVUkwgcGF0aFxuICovXG5leHBvcnQgdHlwZSBTdWJzY3JpYmVDYWxsYmFjazxUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhPiA9IChcbiAgbmV4dEVudHJ5OiBSb3V0ZUVudHJ5PFRWYXJpYWJsZXM+LFxuKSA9PiB2b2lkO1xuXG5leHBvcnQgdHlwZSBQcmVsb2FkVGFyZ2V0ID0ge1xuICBwYXRobmFtZTogc3RyaW5nO1xuICBzZWFyY2g/OiBzdHJpbmc7XG4gIHNvdXJjZT86IHN0cmluZztcbn07XG5cbi8qKlxuICogUm91dGVyIGNvbnRleHQgdHlwZSB0aGF0IHByb3ZpZGVzIG5hdmlnYXRpb24gYW5kIHN0YXRlIG1hbmFnZW1lbnQuXG4gKiBAdGVtcGxhdGUgVFZhcmlhYmxlcyAtIFJvdXRlIHBhcmFtZXRlciB0eXBlcyBleHRyYWN0ZWQgZnJvbSB0aGUgVVJMIHBhdGhcbiAqL1xuZXhwb3J0IHR5cGUgUm91dGluZ0NvbnRleHRUeXBlPFxuICBUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhLFxuICBTIGV4dGVuZHMgRmlsdGVyU2NoZW1hIHwgdW5kZWZpbmVkID0gRmlsdGVyU2NoZW1hIHwgdW5kZWZpbmVkLFxuICBUUXVlcnlTaGFwZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4+ID0ge1xuICAvKiogQnJvd3NlciBoaXN0b3J5IGluc3RhbmNlIGZvciBuYXZpZ2F0aW9uICovXG4gIGhpc3Rvcnk6IEJyb3dzZXJIaXN0b3J5O1xuICAvKiogR2V0IHRoZSBjdXJyZW50IHJvdXRlIGVudHJ5ICovXG4gIGdldDogKCkgPT4gUm91dGVFbnRyeTxUVmFyaWFibGVzLCBTPjtcbiAgLyoqIFByZWxvYWQgY29kZSBmb3IgYSByb3V0ZSB3aXRob3V0IHN0b3JpbmcgdGhlIHJlc3VsdCAqL1xuICBwcmVsb2FkQ29kZTogKHRhcmdldDogUHJlbG9hZFRhcmdldCkgPT4gdm9pZDtcbiAgLyoqIFByZWxvYWQgY29kZSBhbmQgZGF0YSBmb3IgYSByb3V0ZSB3aXRob3V0IHN0b3JpbmcgdGhlIHJlc3VsdCAqL1xuICBwcmVsb2FkOiAodGFyZ2V0OiBQcmVsb2FkVGFyZ2V0KSA9PiB2b2lkO1xuICAvKiogU3Vic2NyaWJlIHRvIHJvdXRlIGNoYW5nZXMgKHNjaGVtYSBkZXJpdmFibGUsIG5vdCBuZWVkZWQgaW4gc2lnbmF0dXJlKSAqL1xuICBzdWJzY3JpYmU6IChjYWxsYmFjazogU3Vic2NyaWJlQ2FsbGJhY2s8VFZhcmlhYmxlcz4pID0+ICgpID0+IHZvaWQ7XG4gIC8qKiBOYXZpZ2F0ZSB3aXRoIG9wdGlvbmFsIHBhdGhuYW1lIGFuZCB0eXBlZC9yYXcgcXVlcnkgb2JqZWN0ICovXG4gIG5hdmlnYXRlOiAob3B0czoge1xuICAgIHBhdGhuYW1lPzogc3RyaW5nO1xuICAgIHF1ZXJ5PzogVFF1ZXJ5U2hhcGU7XG4gICAgLyoqIE9wdGlvbmFsIGZpbHRlcnMgb2JqZWN0IHRvIHNlcmlhbGl6ZSB1c2luZyB0aGUgYWN0aXZlIHF1ZXJ5U2NoZW1hICovXG4gICAgZmlsdGVycz86IFMgZXh0ZW5kcyBGaWx0ZXJTY2hlbWFcbiAgICAgID8gSW5mZXJGaWx0ZXJSZXN1bHQ8Uz5cbiAgICAgIDogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgcmVwbGFjZT86IGJvb2xlYW47XG4gIH0pID0+IHZvaWQ7XG59O1xuXG4vKipcbiAqIFJldHVybiB0eXBlIGZvciByZXNvdXJjZSBwYWdlIGxvYWRlcnMuXG4gKi9cbmV4cG9ydCB0eXBlIFJlc291cmNlUGFnZVJldHVybiA9XG4gIHwgeyBkZWZhdWx0OiBDb21wb25lbnRUeXBlPGFueT4gfVxuICB8IENvbXBvbmVudFR5cGU8YW55PjtcblxuLyoqXG4gKiBGdW5jdGlvbiB0aGF0IGxvYWRzIGEgcmVzb3VyY2UgcGFnZSBjb21wb25lbnQuXG4gKi9cbmV4cG9ydCB0eXBlIFJlc291cmNlUGFnZUxvYWRlciA9ICgpID0+IFByb21pc2U8UmVzb3VyY2VQYWdlUmV0dXJuPjtcblxuLyoqIFV0aWxpdHk6IGluZmVyIGZpbHRlcnMgdHlwZSBmb3IgYSBnaXZlbiBxdWVyeSBzY2hlbWEgKi9cbmV4cG9ydCB0eXBlIEluZmVyRmlsdGVyczxTIGV4dGVuZHMgRmlsdGVyU2NoZW1hIHwgdW5kZWZpbmVkPiA9XG4gIFMgZXh0ZW5kcyBGaWx0ZXJTY2hlbWEgPyBJbmZlckZpbHRlclJlc3VsdDxTPiA6IFJlY29yZDxzdHJpbmcsIG5ldmVyPjtcblxuZXhwb3J0IHR5cGUgeyBGaWx0ZXJTY2hlbWEgfTtcblxuLyoqIFJlLWV4cG9ydCBoZWxwZXIgZmlsdGVyLXF1ZXJ5IHR5cGUgZm9yIHVzZXIgY29udmVuaWVuY2UgKi9cbmV4cG9ydCB0eXBlIHsgSW5mZXJGaWx0ZXJGaWVsZCBhcyBJbmZlckZpZWxkIH07XG5cbi8qKlxuICogU3Ryb25nbHkgdHlwZWQgZmlsdGVyIGFjdGlvbnMgKFBoYXNlIDEgYmFzZSB0eXBlcykuIEltcGxlbWVudGF0aW9uIHdpbGwgYmUgd2lyZWRcbiAqIGluIGEgbGF0ZXIgcGhhc2Ugd2hlbiBgdXNlRmlsdGVyc2AgYmVjb21lcyBnZW5lcmljLlxuICpcbiAqIFM6IFNjaGVtYSB0eXBlIHBhc3NlZCB0byB0aGUgaG9vay9yb3V0ZS5cbiAqL1xuZXhwb3J0IHR5cGUgVHlwZWRGaWx0ZXJBY3Rpb25zPFMgZXh0ZW5kcyBGaWx0ZXJTY2hlbWE+ID0ge1xuICAvKiogU2V0IG9yIHVuc2V0ICh2YWx1ZSA9IHVuZGVmaW5lZCkgYSBzcGVjaWZpYyBvcGVyYXRvciB2YWx1ZSBmb3IgYSBmaWVsZCAqL1xuICBzZXQ6IDxcbiAgICBGIGV4dGVuZHMga2V5b2YgUyAmIHN0cmluZyxcbiAgICBPIGV4dGVuZHMga2V5b2YgTm9uTnVsbGFibGU8SW5mZXJGaWx0ZXJSZXN1bHQ8Uz5bRl0+ICYgc3RyaW5nLFxuICA+KFxuICAgIGZpZWxkOiBGLFxuICAgIG9wZXJhdG9yOiBPLFxuICAgIHZhbHVlOiBOb25OdWxsYWJsZTxJbmZlckZpbHRlclJlc3VsdDxTPltGXT5bT10gfCB1bmRlZmluZWQsXG4gICAgb3B0cz86IHsgcmVwbGFjZT86IGJvb2xlYW4gfSxcbiAgKSA9PiB2b2lkO1xuICAvKiogUmVtb3ZlIGEgd2hvbGUgZmllbGQgb3IgYSBzcGVjaWZpYyBvcGVyYXRvciAqL1xuICByZW1vdmU6IDxcbiAgICBGIGV4dGVuZHMga2V5b2YgUyAmIHN0cmluZyxcbiAgICBPIGV4dGVuZHMga2V5b2YgTm9uTnVsbGFibGU8SW5mZXJGaWx0ZXJSZXN1bHQ8Uz5bRl0+ICYgc3RyaW5nLFxuICA+KFxuICAgIGZpZWxkOiBGLFxuICAgIG9wZXJhdG9yPzogTyxcbiAgICBvcHRzPzogeyByZXBsYWNlPzogYm9vbGVhbiB9LFxuICApID0+IHZvaWQ7XG4gIC8qKiBNZXJnZSBhIHBhcnRpYWwgZmlsdGVycyBvYmplY3QgKi9cbiAgbWVyZ2U6IChcbiAgICBwYXRjaDogUGFydGlhbDxJbmZlckZpbHRlclJlc3VsdDxTPj4sXG4gICAgb3B0cz86IHsgcmVwbGFjZT86IGJvb2xlYW4gfSxcbiAgKSA9PiB2b2lkO1xuICAvKiogQ2xlYXIgYWxsIGZpbHRlcnMgKi9cbiAgY2xlYXI6IChvcHRzPzogeyByZXBsYWNlPzogYm9vbGVhbiB9KSA9PiB2b2lkO1xufTtcblxuLyoqXG4gKiBDb252ZW5pZW5jZSB1bWJyZWxsYSByb3V0ZSB0eXBlLlxuICogVXNlZCB3aGVyZSB3ZSBqdXN0IHdhbnQgdG8gY2FycnkgYXJiaXRyYXJ5IHJvdXRlIGdlbmVyaWNzIGZvcndhcmQgd2l0aG91dCBlcmFzdXJlLlxuICovXG5leHBvcnQgdHlwZSBBbnlSb3V0ZSA9IFJvdXRlPGFueSwgYW55LCBhbnksIGFueT47XG5cbi8qKiBFeHRyYWN0IHRoZSBwcmVwYXJlZCB0eXBlIGZyb20gYSBSb3V0ZSAqL1xuZXhwb3J0IHR5cGUgUHJlcGFyZWRPZjxSPiA9IFIgZXh0ZW5kcyBSb3V0ZTxpbmZlciBQLCBhbnksIGFueSwgYW55PiA/IFAgOiBuZXZlcjtcbi8qKiBFeHRyYWN0IHRoZSB2YXJpYWJsZXMgdHlwZSBmcm9tIGEgUm91dGUgKi9cbmV4cG9ydCB0eXBlIFZhcmlhYmxlc09mPFI+ID1cbiAgUiBleHRlbmRzIFJvdXRlPGFueSwgaW5mZXIgViwgYW55LCBhbnk+ID8gViA6IG5ldmVyO1xuLyoqIEV4dHJhY3QgdGhlIHF1ZXJ5IHNoYXBlIHR5cGUgZnJvbSBhIFJvdXRlICovXG5leHBvcnQgdHlwZSBRdWVyeVNoYXBlT2Y8Uj4gPVxuICBSIGV4dGVuZHMgUm91dGU8YW55LCBhbnksIGluZmVyIFEsIGFueT4gPyBRIDogbmV2ZXI7XG5cbi8qKiBQYXRoIGxpdGVyYWwgdHlwZSBpZiBwcmVzZW50ICovXG5leHBvcnQgdHlwZSBQYXRoT2Y8Uj4gPSBSIGV4dGVuZHMgeyBwYXRoPzogaW5mZXIgUCB9XG4gID8gUCBleHRlbmRzIHN0cmluZ1xuICAgID8gUFxuICAgIDogbmV2ZXJcbiAgOiBuZXZlcjtcblxuLyoqIFVuaW9uIG9mIGFsbCBjb25jcmV0ZSBwYXRoIHN0cmluZ3MgZnJvbSBhIHR1cGxlL2FycmF5IG9mIHJvdXRlcyAobm9uLXJlY3Vyc2l2ZSkgKi9cbmV4cG9ydCB0eXBlIFBhdGhzT2Y8Um91dGVzIGV4dGVuZHMgcmVhZG9ubHkgQW55Um91dGVbXT4gPSBQYXRoT2Y8XG4gIFJvdXRlc1tudW1iZXJdXG4+O1xuXG4vKiogTWFwIHBhdGggLT4gcHJlcGFyZWQgdHlwZSAodW5kZWZpbmVkIGlmIHJvdXRlIGxhY2tzIHByZXBhcmUpICovXG5leHBvcnQgdHlwZSBQcmVwYXJlZE1hcDxSb3V0ZXMgZXh0ZW5kcyByZWFkb25seSBBbnlSb3V0ZVtdPiA9IHtcbiAgW0sgaW4gUGF0aHNPZjxSb3V0ZXM+XTpcbiAgICB8IFByZXBhcmVkT2Y8RXh0cmFjdDxSb3V0ZXNbbnVtYmVyXSwgeyBwYXRoPzogSyB9Pj5cbiAgICB8IHVuZGVmaW5lZDtcbn07XG5cbi8qKiBNYXAgcGF0aCAtPiBxdWVyeSBzaGFwZSAqL1xuZXhwb3J0IHR5cGUgUXVlcnlTaGFwZU1hcDxSb3V0ZXMgZXh0ZW5kcyByZWFkb25seSBBbnlSb3V0ZVtdPiA9IHtcbiAgW0sgaW4gUGF0aHNPZjxSb3V0ZXM+XTogUXVlcnlTaGFwZU9mPEV4dHJhY3Q8Um91dGVzW251bWJlcl0sIHsgcGF0aD86IEsgfT4+O1xufTtcblxuLyoqIEV4dHJhY3Qgc2NoZW1hIGZyb20gYSByb3V0ZSAodW5kZWZpbmVkIGlmIGFic2VudCkgKi9cbmV4cG9ydCB0eXBlIFNjaGVtYU9mPFI+ID0gUiBleHRlbmRzIHsgcXVlcnlTY2hlbWE/OiBpbmZlciBTIH1cbiAgPyBTIGV4dGVuZHMgRmlsdGVyU2NoZW1hXG4gICAgPyBTXG4gICAgOiB1bmRlZmluZWRcbiAgOiB1bmRlZmluZWQ7XG5cbi8qKiBGaWx0ZXJzIGluZmVycmVkIGZyb20gdGhlIHJvdXRlJ3Mgc2NoZW1hICovXG5leHBvcnQgdHlwZSBGaWx0ZXJzT2Y8Uj4gPVxuICBTY2hlbWFPZjxSPiBleHRlbmRzIEZpbHRlclNjaGVtYVxuICAgID8gSW5mZXJGaWx0ZXJSZXN1bHQ8U2NoZW1hT2Y8Uj4+XG4gICAgOiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj47XG5cbi8qKiBNYXAgcGF0aCAtPiBpbmZlcnJlZCBmaWx0ZXJzIHR5cGUgKi9cbmV4cG9ydCB0eXBlIEZpbHRlcnNNYXA8Um91dGVzIGV4dGVuZHMgcmVhZG9ubHkgQW55Um91dGVbXT4gPSB7XG4gIFtLIGluIFBhdGhzT2Y8Um91dGVzPl06IEZpbHRlcnNPZjxFeHRyYWN0PFJvdXRlc1tudW1iZXJdLCB7IHBhdGg/OiBLIH0+Pjtcbn07XG5cbi8qKiBSdW50aW1lIGhlbHBlciBpbnRlcmZhY2UgYXVnbWVudGF0aW9uIGZvciByb3V0ZXIgY29udGV4dCAoYWRkZWQgaW4gY3JlYXRlUm91dGVyKSAqL1xuZXhwb3J0IGludGVyZmFjZSBQcmVwYXJlZEFjY2VzczxSb3V0ZXMgZXh0ZW5kcyByZWFkb25seSBBbnlSb3V0ZVtdPiB7XG4gIC8qKiBSZXRyaWV2ZSB0aGUgcHJlcGFyZWQgb2JqZWN0IGZvciBhIGNvbmNyZXRlIHBhdGggKGlmIGN1cnJlbnQgbWF0Y2ggaW5jbHVkZXMgaXQpICovXG4gIGdldFByZXBhcmVkOiA8UCBleHRlbmRzIFBhdGhzT2Y8Um91dGVzPj4ocGF0aDogUCkgPT4gUHJlcGFyZWRNYXA8Um91dGVzPltQXTtcbiAgLy8gZ2V0VHlwZWRRdWVyeSByZW1vdmVkIOKAkyB1c2UgZmlsdGVycy9xdWVyeSBkaXJlY3RseVxufVxuXG4vKiogSW5wdXQgc2hhcGUgZm9yIGEgbmF2aWdhdGlvbiB0byBhIHNwZWNpZmljIHBhdGggKHR5cGVkIHF1ZXJ5KSAqL1xuZXhwb3J0IHR5cGUgTmF2aWdhdGVJbnB1dEZvclBhdGg8XG4gIFJvdXRlcyBleHRlbmRzIHJlYWRvbmx5IEFueVJvdXRlW10sXG4gIFAgZXh0ZW5kcyBQYXRoc09mPFJvdXRlcz4sXG4+ID0ge1xuICBwYXRobmFtZTogUDtcbiAgcXVlcnk/OiBRdWVyeVNoYXBlTWFwPFJvdXRlcz5bUF07XG4gIGZpbHRlcnM/OiBGaWx0ZXJzTWFwPFJvdXRlcz5bUF07XG4gIHJlcGxhY2U/OiBib29sZWFuO1xufTtcblxuLyoqIEZhbGxiYWNrIHVudHlwZWQgbmF2aWdhdGUgaW5wdXQgKi9cbmV4cG9ydCB0eXBlIE5hdmlnYXRlSW5wdXRVbnR5cGVkID0ge1xuICBwYXRobmFtZT86IHN0cmluZztcbiAgcXVlcnk/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICBmaWx0ZXJzPzogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgcmVwbGFjZT86IGJvb2xlYW47XG59O1xuXG4vKiogT3ZlcmxvYWRlZCBuYXZpZ2F0ZSBmdW5jdGlvbiB0eXBlIChjb21waWxlLXRpbWUgb25seTsgcnVudGltZSBzaW5nbGUgaW1wbCkgKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmF2aWdhdGVPdmVybG9hZHM8Um91dGVzIGV4dGVuZHMgcmVhZG9ubHkgQW55Um91dGVbXT4ge1xuICA8UCBleHRlbmRzIFBhdGhzT2Y8Um91dGVzPj4ob3B0czogTmF2aWdhdGVJbnB1dEZvclBhdGg8Um91dGVzLCBQPik6IHZvaWQ7XG4gIChvcHRzOiBOYXZpZ2F0ZUlucHV0VW50eXBlZCk6IHZvaWQ7XG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ29tcG9uZW50VHlwZSwgUmVhY3RFbGVtZW50LCBSZWFjdE5vZGUsIEpTWCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB0eXBlIHtcbiAgU2NoZW1hIGFzIEZpbHRlclNjaGVtYSxcbiAgSW5mZXJGaWx0ZXJzIGFzIEluZmVyRmlsdGVyUmVzdWx0LFxuICBJbmZlckZpZWxkIGFzIEluZmVyRmlsdGVyRmllbGQsXG4gIERpYWdub3N0aWMgYXMgRmlsdGVyRGlhZ25vc3RpYyxcbn0gZnJvbSAnQHBsdW1pbGUvZmlsdGVyLXF1ZXJ5JztcbmltcG9ydCB0eXBlIHsgTWF0Y2gsIE1hdGNoRnVuY3Rpb24sIFBhcmFtRGF0YSB9IGZyb20gJ3BhdGgtdG8tcmVnZXhwJztcblxuaW1wb3J0IHR5cGUgeyBGbGF0Um91dGUgfSBmcm9tICcuL2J1aWxkZXIuanMnO1xuaW1wb3J0IHR5cGUgeyBSZXNvdXJjZVBhZ2UgfSBmcm9tICcuL1Jlc291cmNlUGFnZS5qcyc7XG5pbXBvcnQgdHlwZSB7IEJyb3dzZXJIaXN0b3J5IH0gZnJvbSAnLi9oaXN0b3J5L2luZGV4LmpzJztcblxuLyoqXG4gKiBJbnB1dCB0eXBlIGZvciBjcmVhdGluZyBhIEZsYXRSb3V0ZSBpbnN0YW5jZS5cbiAqIEB0ZW1wbGF0ZSBUVmFyaWFibGVzIC0gUm91dGUgcGFyYW1ldGVyIHR5cGVzIGV4dHJhY3RlZCBmcm9tIHRoZSBVUkwgcGF0aFxuICovXG5leHBvcnQgdHlwZSBGbGF0Um91dGVJbnB1dDxUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhPiA9IHtcbiAgLyoqIFRoZSBVUkwgcGF0aCBwYXR0ZXJuIGZvciB0aGlzIHJvdXRlICovXG4gIHBhdGg6IHN0cmluZztcbiAgLyoqIE9wdGlvbmFsIHJlZGlyZWN0IGRlc3RpbmF0aW9uIGlmIHRoaXMgcm91dGUgc2hvdWxkIHJlZGlyZWN0ICovXG4gIHJlZGlyZWN0VG8/OiBzdHJpbmc7XG4gIC8qKiBGdW5jdGlvbiB0byBtYXRjaCBVUkwgcGF0aHMgYWdhaW5zdCB0aGlzIHJvdXRlIHBhdHRlcm4gKi9cbiAgbWF0Y2hGdW5jdGlvbjogTWF0Y2hGdW5jdGlvbjxUVmFyaWFibGVzPjtcbiAgLyoqIE5lc3RlZCByb3V0ZXMgdGhhdCBzaG91bGQgYmUgcmVuZGVyZWQgd2l0aGluIHRoaXMgcm91dGUgKi9cbiAgcm91dGVzOiBBbnlSb3V0ZVtdO1xufTtcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgbWF0Y2hlZCByb3V0ZSB3aXRoIGV4dHJhY3RlZCBwYXJhbWV0ZXJzIGFuZCBtZXRhZGF0YS5cbiAqIEB0ZW1wbGF0ZSBUVmFyaWFibGVzIC0gUm91dGUgcGFyYW1ldGVyIHR5cGVzIGV4dHJhY3RlZCBmcm9tIHRoZSBVUkwgcGF0aFxuICovXG5leHBvcnQgdHlwZSBSb3V0ZXJNYXRjaGVkUm91dGU8VFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YT4gPSB7XG4gIC8qKiBUaGUgbWF0Y2ggcmVzdWx0IGZyb20gcGF0aC10by1yZWdleHAgKi9cbiAgbWF0Y2g6IE1hdGNoPFRWYXJpYWJsZXM+O1xuICAvKiogRXh0cmFjdGVkIHBhcmFtZXRlcnMgZnJvbSB0aGUgVVJMIHBhdGggKi9cbiAgcGFyYW1zOiBUVmFyaWFibGVzO1xuICAvKiogVGhlIG1hdGNoZWQgcGF0aCBzdHJpbmcgKi9cbiAgcGF0aDogc3RyaW5nO1xuICAvKiogVGhlIGZsYXQgcm91dGUgdGhhdCB3YXMgbWF0Y2hlZCAqL1xuICByb3V0ZTogRmxhdFJvdXRlPFRWYXJpYWJsZXM+O1xufTtcblxuLyoqXG4gKiBBIFJlYWN0IGNvbXBvbmVudCB0aGF0IGNhbiBiZSB1c2VkIGFzIGEgcm91dGUgY29tcG9uZW50LlxuICogQHRlbXBsYXRlIFRQcm9wcyAtIFRoZSBwcm9wcyB0eXBlIGZvciB0aGUgY29tcG9uZW50XG4gKi9cbmV4cG9ydCB0eXBlIFJvdXRlUmVhY3RDb21wb25lbnQ8VFByb3BzID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj4+ID0gKFxuICBwcm9wczogVFByb3BzLFxuKSA9PiBKU1guRWxlbWVudCB8IG51bGw7XG5cbi8qKlxuICogT3B0aW9ucyBwYXNzZWQgdG8gYSByb3V0ZSByZW5kZXIgZnVuY3Rpb24uXG4gKiBAdGVtcGxhdGUgVFByZXBhcmVkIC0gVGhlIHR5cGUgb2YgcHJlcGFyZWQgZGF0YSByZXR1cm5lZCBieSB0aGUgcm91dGUncyBwcmVwYXJlIGZ1bmN0aW9uXG4gKiBAdGVtcGxhdGUgVFZhcmlhYmxlcyAtIFJvdXRlIHBhcmFtZXRlciB0eXBlcyBleHRyYWN0ZWQgZnJvbSB0aGUgVVJMIHBhdGhcbiAqL1xuZXhwb3J0IHR5cGUgUm91dGVSZW5kZXJPcHRzPFxuICBUQ29udGV4dCxcbiAgVFByZXBhcmVkIGV4dGVuZHMgUHJlcGFyZVJlc3VsdCxcbiAgVFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YSA9IFBhcmFtRGF0YSxcbiAgVFF1ZXJ5U2hhcGUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuPiA9IHtcbiAgLyoqIENoaWxkIGNvbXBvbmVudHMgdG8gcmVuZGVyIHdpdGhpbiB0aGlzIHJvdXRlICovXG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gIC8qKiBPcHRpb25hbCBjb21wb25lbnQgdG8gcmVuZGVyIChmcm9tIFJlc291cmNlUGFnZSkgKi9cbiAgQ29tcG9uZW50PzogUm91dGVSZWFjdENvbXBvbmVudDtcbiAgLyoqIERhdGEgcHJlcGFyZWQgYnkgdGhlIHJvdXRlJ3MgcHJlcGFyZSBmdW5jdGlvbiAqL1xuICBwcmVwYXJlZDogVFByZXBhcmVkIHwgdW5kZWZpbmVkO1xuICAvKiogVGhlIHByZXBhcmVkIHJvdXRlIHRoYXQgaXMgYmVpbmcgcmVuZGVyZWQgKi9cbiAgcHJlcGFyZWRSb3V0ZTogUHJlcGFyZWRNYXRjaFJvdXRlO1xuICAvKiogVGhlIG1hdGNoZWQgcm91dGUgb3IgbnVsbCBpZiBubyBtYXRjaCAqL1xuICByb3V0ZTogRmxhdFJvdXRlPFRWYXJpYWJsZXM+IHwgbnVsbDtcbiAgLyoqIFJvdXRlci1sZXZlbCBjb250ZXh0ICovXG4gIGNvbnRleHQ6IFRDb250ZXh0O1xuICAvKiogUmF3IHF1ZXJ5IG9iamVjdCAoUGhhc2UgMiBnZW5lcmljIHBhcnNpbmcpICovXG4gIHJhd1F1ZXJ5OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBzdHJpbmdbXT47XG4gIC8qKiBUeXBlZCBxdWVyeSBvYmplY3QgKFBoYXNlIDMpLiBGYWxscyBiYWNrIHRvIHJhd1F1ZXJ5IGlmIG5vIHNjaGVtYSAqL1xuICBxdWVyeTogVFF1ZXJ5U2hhcGU7XG59O1xuXG4vKipcbiAqIEZ1bmN0aW9uIHRvIHJlbmRlciBhIHJvdXRlIHdpdGggY3VzdG9tIGxvZ2ljLlxuICogQHRlbXBsYXRlIFRQcmVwYXJlZCAtIFRoZSB0eXBlIG9mIHByZXBhcmVkIGRhdGEgcmV0dXJuZWQgYnkgdGhlIHJvdXRlJ3MgcHJlcGFyZSBmdW5jdGlvblxuICogQHRlbXBsYXRlIFRWYXJpYWJsZXMgLSBSb3V0ZSBwYXJhbWV0ZXIgdHlwZXMgZXh0cmFjdGVkIGZyb20gdGhlIFVSTCBwYXRoXG4gKi9cbmV4cG9ydCB0eXBlIFJvdXRlUmVuZGVyPFxuICBUQ29udGV4dCxcbiAgVFByZXBhcmVkIGV4dGVuZHMgUHJlcGFyZVJlc3VsdCxcbiAgVFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YSA9IFBhcmFtRGF0YSxcbiAgVFF1ZXJ5U2hhcGUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuPiA9IChcbiAgb3B0czogUm91dGVSZW5kZXJPcHRzPFRDb250ZXh0LCBUUHJlcGFyZWQsIFRWYXJpYWJsZXMsIFRRdWVyeVNoYXBlPixcbikgPT4gUmVhY3RFbGVtZW50IHwgbnVsbDtcblxuLyoqIEFsaWFzIGZvciByZW5kZXIgYXJncyAoa2VwdCBmb3IgcHVibGljIEFQSSBjbGFyaXR5KS4gKi9cbmV4cG9ydCB0eXBlIFJvdXRlUmVuZGVyQXJnczxcbiAgVENvbnRleHQsXG4gIFRQcmVwYXJlZCBleHRlbmRzIFByZXBhcmVSZXN1bHQsXG4gIFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGEgPSBQYXJhbURhdGEsXG4gIFRRdWVyeVNoYXBlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbj4gPSBSb3V0ZVJlbmRlck9wdHM8VENvbnRleHQsIFRQcmVwYXJlZCwgVFZhcmlhYmxlcywgVFF1ZXJ5U2hhcGU+O1xuXG4vKipcbiAqIEEgcm91dGUgdGhhdCBoYXMgYmVlbiBwcmVwYXJlZCBmb3IgcmVuZGVyaW5nIHdpdGggbG9hZGVkIGRhdGEgYW5kIGNvbXBvbmVudHMuXG4gKi9cbmV4cG9ydCB0eXBlIFByZXBhcmVkTWF0Y2hSb3V0ZSA9IHtcbiAgLyoqIFRoZSBwYXRoIHRoYXQgd2FzIG1hdGNoZWQgKi9cbiAgcGF0aD86IHN0cmluZztcbiAgLyoqIERhdGEgcHJlcGFyZWQgYnkgdGhlIHJvdXRlJ3MgcHJlcGFyZSBmdW5jdGlvbiAqL1xuICBwcmVwYXJlZDogUHJlcGFyZVJlc3VsdCB8IHVuZGVmaW5lZDtcbiAgLyoqIEN1c3RvbSByZW5kZXIgZnVuY3Rpb24gZm9yIHRoaXMgcm91dGUgKi9cbiAgcmVuZGVyPzogUm91dGVSZW5kZXI8YW55LCBhbnksIGFueSwgYW55PjtcbiAgLyoqIFJlZGlyZWN0IGRlc3RpbmF0aW9uIGlmIHRoaXMgcm91dGUgc2hvdWxkIHJlZGlyZWN0ICovXG4gIHJlZGlyZWN0VG86IHN0cmluZyB8IG51bGw7XG4gIC8qKiBSZXNvdXJjZSBwYWdlIGZvciBsYXp5LWxvYWRlZCBjb21wb25lbnRzICovXG4gIHJlc291cmNlUGFnZT86IFJlc291cmNlUGFnZSB8IG51bGw7XG4gIC8qKiBJZGVudGlmaWVyIHVzZWQgYnkgZGV2ZWxvcGVyIHRvb2xpbmcgdG8gbWFwIHJlbmRlcmVkIERPTSByZWdpb25zICovXG4gIGhpZ2hsaWdodElkPzogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBSZXN1bHQgb2YgcHJlcGFyaW5nIGEgbWF0Y2hlZCByb3V0ZSwgaW5jbHVkaW5nIGFsbCBuZXN0ZWQgcm91dGVzLlxuICogQHRlbXBsYXRlIFRWYXJpYWJsZXMgLSBSb3V0ZSBwYXJhbWV0ZXIgdHlwZXMgZXh0cmFjdGVkIGZyb20gdGhlIFVSTCBwYXRoXG4gKi9cbmV4cG9ydCB0eXBlIFByZXBhcmVkTWF0Y2g8VFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YT4gPSB7XG4gIC8qKiBUaGUgbWF0Y2hlZCByb3V0ZSBvciBudWxsIGlmIG5vIG1hdGNoICovXG4gIG1hdGNoOiBSb3V0ZXJNYXRjaGVkUm91dGU8VFZhcmlhYmxlcz4gfCBudWxsO1xuICAvKiogQXJyYXkgb2YgcHJlcGFyZWQgcm91dGVzIGZvciByZW5kZXJpbmcgKi9cbiAgcm91dGVzOiBQcmVwYXJlZE1hdGNoUm91dGVbXTtcbn07XG5cbi8qKlxuICogQ29tcGxldGUgcm91dGUgZW50cnkgcmVwcmVzZW50aW5nIHRoZSBjdXJyZW50IHJvdXRlciBzdGF0ZS5cbiAqIEB0ZW1wbGF0ZSBUVmFyaWFibGVzIC0gUm91dGUgcGFyYW1ldGVyIHR5cGVzIGV4dHJhY3RlZCBmcm9tIHRoZSBVUkwgcGF0aFxuICovXG5leHBvcnQgdHlwZSBSb3V0ZUVudHJ5PFxuICBUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhLFxuICBTIGV4dGVuZHMgRmlsdGVyU2NoZW1hIHwgdW5kZWZpbmVkID0gRmlsdGVyU2NoZW1hIHwgdW5kZWZpbmVkLFxuICBUQ29udGV4dCA9IHVua25vd24sXG4+ID0ge1xuICAvKiogVGhlIHByZXBhcmVkIG1hdGNoIHdpdGggbG9hZGVkIGRhdGEgYW5kIGNvbXBvbmVudHMgKi9cbiAgcHJlcGFyZWRNYXRjaDogUHJlcGFyZWRNYXRjaDxUVmFyaWFibGVzPjtcbiAgLyoqIFJvdXRlci1sZXZlbCBjb250ZXh0IHJlc29sdmVkIGZvciB0aGlzIGVudHJ5ICovXG4gIGNvbnRleHQ6IFRDb250ZXh0O1xuICAvKiogQ3VycmVudCBicm93c2VyIGxvY2F0aW9uICovXG4gIGxvY2F0aW9uOiBMb2NhdGlvbjtcbiAgLyoqIFRoZSBtYXRjaGVkIHJvdXRlIG9yIG51bGwgaWYgbm8gbWF0Y2ggKi9cbiAgcm91dGU6IFJvdXRlck1hdGNoZWRSb3V0ZTxUVmFyaWFibGVzPiB8IG51bGw7XG4gIC8qKiBXaGV0aGVyIHRvIGZvcmNlIGEgcmUtcmVuZGVyIGV2ZW4gaWYgdGhlIHBhdGggaGFzbid0IGNoYW5nZWQgKi9cbiAgZm9yY2VSZXJlbmRlcjogYm9vbGVhbjtcbiAgLyoqIFJhdyBzZWFyY2ggc3RyaW5nIChxdWVyeSBwYXJ0KSBvZiB0aGUgbG9jYXRpb24gZm9yIGNoYW5nZSBkZXRlY3Rpb24gKi9cbiAgcmF3U2VhcmNoPzogc3RyaW5nO1xuICAvKiogUGFyc2VkIHJhdyBxdWVyeSBwYXJhbWV0ZXJzICh2YWx1ZXMgYWdncmVnYXRlZDsgZHVwbGljYXRlcyA9PiBhcnJheSkgKi9cbiAgcXVlcnk6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IHN0cmluZ1tdPjtcbiAgLyoqIExlZ2FjeSB0eXBlZFF1ZXJ5IHJlbW92ZWQg4oCTIHVuaWZpZWQgZmlsdGVycyBoYW5kbGUgdHlwZWQgYWNjZXNzICovXG4gIC8vIHR5cGVkUXVlcnk/OiBuZXZlcjtcbiAgLyoqIFBhcnNlZCBmaWx0ZXJzIG9iamVjdCBkZXJpdmVkIGZyb20gdGhlIGRlZXBlc3QgYWN0aXZlIHF1ZXJ5U2NoZW1hIChpZiBhbnkpICovXG4gIGZpbHRlcnM/OiBTIGV4dGVuZHMgRmlsdGVyU2NoZW1hXG4gICAgPyBJbmZlckZpbHRlclJlc3VsdDxTPlxuICAgIDogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIC8qKiBEaWFnbm9zdGljcyBmcm9tIGZpbHRlciBwYXJzaW5nIChpZiBhbnkpICovXG4gIGZpbHRlckRpYWdub3N0aWNzPzogRmlsdGVyRGlhZ25vc3RpY1tdO1xuICAvKiogRGVlcGVzdCBhY3RpdmUgcXVlcnkgc2NoZW1hIChGaWx0ZXJTY2hlbWEgZnJvbSBAcGx1bWlsZS9maWx0ZXItcXVlcnkpIGZvciBjdXJyZW50IG1hdGNoZWQgcm91dGUgKi9cbiAgYWN0aXZlUXVlcnlTY2hlbWE/OiBTO1xufTtcblxuLy8gUXVlcnlTY2hlbWEgJiBkZXNjcmlwdG9ycyByZW1vdmVkIChQaGFzZSAyIHVuaWZpZWQgbW9kZWwpIOKAkyBoaXN0b3JpY2FsIHR5cGVzIGludGVudGlvbmFsbHkgb21pdHRlZC5cblxuLyoqXG4gKiBIVFRQIHN0YXR1cyBjb2RlcyBmb3IgcmVkaXJlY3RzLlxuICovXG5leHBvcnQgdHlwZSBSb3V0ZXJSZWRpcmVjdFN0YXR1cyA9IDMwMSB8IDMwMjtcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgbWF0Y2hlZCByb3V0ZSB3aXRoIHJlZ2V4IG1hdGNoIHJlc3VsdC5cbiAqIEB0ZW1wbGF0ZSBUVmFyaWFibGVzIC0gUm91dGUgcGFyYW1ldGVyIHR5cGVzIGV4dHJhY3RlZCBmcm9tIHRoZSBVUkwgcGF0aFxuICovXG5leHBvcnQgdHlwZSBNYXRjaGVkUm91dGU8VFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YT4gPSB7XG4gIC8qKiBUaGUgcmVnZXggbWF0Y2ggcmVzdWx0ICovXG4gIG1hdGNoOiBSZWdFeHBFeGVjQXJyYXk7XG4gIC8qKiBUaGUgZmxhdCByb3V0ZSB0aGF0IHdhcyBtYXRjaGVkICovXG4gIHJvdXRlOiBGbGF0Um91dGU8VFZhcmlhYmxlcz47XG59O1xuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIGEgcm91dGUgcmVkaXJlY3QuXG4gKi9cbmV4cG9ydCB0eXBlIFJlZGlyZWN0ID0ge1xuICAvKiogT3B0aW9uYWwgc291cmNlIHBhdGggcGF0dGVybiAqL1xuICBwYXRoPzogc3RyaW5nO1xuICAvKiogRGVzdGluYXRpb24gcGF0aCBmb3IgdGhlIHJlZGlyZWN0ICovXG4gIHRvOiBzdHJpbmc7XG4gIC8qKiBIVFRQIHN0YXR1cyBjb2RlIGZvciB0aGUgcmVkaXJlY3QgKi9cbiAgc3RhdHVzPzogUm91dGVyUmVkaXJlY3RTdGF0dXM7XG59O1xuXG4vKipcbiAqIEJhc2UgdHlwZSBmb3IgZGF0YSBwcmVwYXJlZCBieSByb3V0ZSBwcmVwYXJlIGZ1bmN0aW9ucy5cbiAqL1xuLy8gUHJlcGFyZWQgZGF0YSBjYW4gYmUgYW55IHJlY29yZDsgcmV0YWluIGFueSB0byBhdm9pZCBvdmVyLWNvbnN0cmFpbmluZyB1c2VyIGNvZGUuXG5leHBvcnQgdHlwZSBQcmVwYXJlUmVzdWx0ID0gUmVjb3JkPHN0cmluZywgYW55PjtcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIHBhc3NlZCB0byBhIHJvdXRlJ3MgcHJlcGFyZSBmdW5jdGlvbi5cbiAqIEB0ZW1wbGF0ZSBUVmFyaWFibGVzIC0gUm91dGUgcGFyYW1ldGVyIHR5cGVzIGV4dHJhY3RlZCBmcm9tIHRoZSBVUkwgcGF0aFxuICovXG5leHBvcnQgdHlwZSBQcmVwYXJlUGFyYW1zPFxuICBUQ29udGV4dCxcbiAgVFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YSxcbiAgVFF1ZXJ5U2hhcGUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuPiA9IHtcbiAgLyoqIFRoZSBtYXRjaGVkIHJvdXRlIHdpdGggZXh0cmFjdGVkIHBhcmFtZXRlcnMgKi9cbiAgbWF0Y2g6IFJvdXRlck1hdGNoZWRSb3V0ZTxUVmFyaWFibGVzPjtcbiAgLyoqIFRoZSBmbGF0IHJvdXRlIHRoYXQgd2FzIG1hdGNoZWQgKi9cbiAgbWF0Y2hlZFJvdXRlOiBGbGF0Um91dGU8VFZhcmlhYmxlcz47XG4gIC8qKiBSb3V0ZXItbGV2ZWwgY29udGV4dCAqL1xuICBjb250ZXh0OiBUQ29udGV4dDtcbiAgLyoqIFJlc291cmNlIHBhZ2UgZm9yIGxhenktbG9hZGVkIGNvbXBvbmVudHMgKi9cbiAgcmVzb3VyY2VQYWdlPzogUmVzb3VyY2VQYWdlIHwgbnVsbDtcbiAgLyoqIEV4dHJhY3RlZCBVUkwgcGFyYW1ldGVycyAqL1xuICB2YXJpYWJsZXM6IFRWYXJpYWJsZXM7XG4gIC8qKiBUeXBlZCBxdWVyeSBvYmplY3QgKi9cbiAgcXVlcnk6IFRRdWVyeVNoYXBlO1xufTtcblxuLyoqIEFsaWFzIGZvciBwcmVwYXJlIGFyZ3MgKGtlcHQgZm9yIHB1YmxpYyBBUEkgY2xhcml0eSkuICovXG5leHBvcnQgdHlwZSBSb3V0ZVByZXBhcmVBcmdzPFxuICBUQ29udGV4dCxcbiAgVFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YSA9IFBhcmFtRGF0YSxcbiAgVFF1ZXJ5U2hhcGUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuPiA9IFByZXBhcmVQYXJhbXM8VENvbnRleHQsIFRWYXJpYWJsZXMsIFRRdWVyeVNoYXBlPjtcblxuLyoqXG4gKiBGdW5jdGlvbiB0byBwcmVwYXJlIGRhdGEgZm9yIGEgcm91dGUgYmVmb3JlIHJlbmRlcmluZy5cbiAqIEB0ZW1wbGF0ZSBUUHJlcGFyZWQgLSBUaGUgdHlwZSBvZiBkYXRhIHRoaXMgZnVuY3Rpb24gcmV0dXJuc1xuICogQHRlbXBsYXRlIFRWYXJpYWJsZXMgLSBSb3V0ZSBwYXJhbWV0ZXIgdHlwZXMgZXh0cmFjdGVkIGZyb20gdGhlIFVSTCBwYXRoXG4gKi9cbmV4cG9ydCB0eXBlIFJvdXRlUHJlcGFyZTxcbiAgVENvbnRleHQsXG4gIFRQcmVwYXJlZCBleHRlbmRzIFByZXBhcmVSZXN1bHQsXG4gIFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGEgPSBQYXJhbURhdGEsXG4gIFRRdWVyeVNoYXBlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbj4gPSAocGFyYW1zOiBQcmVwYXJlUGFyYW1zPFRDb250ZXh0LCBUVmFyaWFibGVzLCBUUXVlcnlTaGFwZT4pID0+IFRQcmVwYXJlZDtcblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciBhIHNpbmdsZSByb3V0ZSBpbiB0aGUgcm91dGVyLlxuICogQHRlbXBsYXRlIFRQcmVwYXJlZCAtIFRoZSB0eXBlIG9mIHByZXBhcmVkIGRhdGEgcmV0dXJuZWQgYnkgdGhlIHJvdXRlJ3MgcHJlcGFyZSBmdW5jdGlvblxuICogQHRlbXBsYXRlIFRWYXJpYWJsZXMgLSBSb3V0ZSBwYXJhbWV0ZXIgdHlwZXMgZXh0cmFjdGVkIGZyb20gdGhlIFVSTCBwYXRoXG4gKi9cbmV4cG9ydCB0eXBlIFJvdXRlPFxuICBUQ29udGV4dCxcbiAgVFByZXBhcmVkIGV4dGVuZHMgUHJlcGFyZVJlc3VsdCxcbiAgVFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YSA9IFBhcmFtRGF0YSxcbiAgVFF1ZXJ5U2hhcGUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICBTIGV4dGVuZHMgRmlsdGVyU2NoZW1hIHwgdW5kZWZpbmVkID0gRmlsdGVyU2NoZW1hIHwgdW5kZWZpbmVkLFxuPiA9IHtcbiAgLyoqXG4gICAqIE5lc3RlZCBjaGlsZCByb3V0ZXMgb3IgcmVkaXJlY3RzLlxuICAgKlxuICAgKiBJTVBPUlRBTlQ6IFRoaXMgdXNlZCB0byBiZSB0eXBlZCBhcyBgKFJvdXRlPGFueSwgUHJlcGFyZVJlc3VsdD4gfCBSZWRpcmVjdClbXWAgd2hpY2hcbiAgICogd2lkZW5lZCAoZXJhc2VkKSB0aGUgZ2VuZXJpYyBwYXJhbWV0ZXIgdHlwZXMgKG5vdGFibHkgdGhlIGBUVmFyaWFibGVzYCBvZiBlYWNoXG4gICAqIGNoaWxkKS4gVGhhdCBjYXVzZWQgVHlwZVNjcmlwdCB0byB0cmVhdCBldmVyeSBjaGlsZCByb3V0ZSdzIGBwcmVwYXJlYCBjYWxsYmFja1xuICAgKiBhcyBhY2NlcHRpbmcgdGhlIGRlZmF1bHQgYFBhcmFtRGF0YWAgc2hhcGUgKGVmZmVjdGl2ZWx5IGBQYXJ0aWFsPFJlY29yZDxzdHJpbmcsc3RyaW5nfHN0cmluZ1tdPj5gKS5cbiAgICogV2hlbiB1c2VyIGNvZGUgc3BlY2lmaWVkIGEgbW9yZSBzcGVjaWZpYyBwYXJhbWV0ZXIgb2JqZWN0IChlLmcuIGB7IHNsdWc6IHN0cmluZyB9YClcbiAgICogZm9yIGEgcGF0aCBsaWtlIGA6c2x1Z2AsIHRoZSBmdW5jdGlvbiB0eXBlIGJlY2FtZSBub27igJFhc3NpZ25hYmxlIGJlY2F1c2UgaXRzXG4gICAqIHBhcmFtZXRlciB3YXMgc3RyaWN0ZXIgdGhhbiB0aGUgd2lkZW5lZCB2ZXJzaW9uLiBCeSBzd2l0Y2hpbmcgdG8gYEFueVJvdXRlYCB3ZVxuICAgKiByZXRhaW4gYGFueWAgaW4gdGhlIGVyYXNlZCBwb3NpdGlvbiBpbnN0ZWFkIG9mIGEgY29uY3JldGUgYFBhcmFtRGF0YWAsIHdoaWNoXG4gICAqIGFsbG93cyBzdHJpY3RlciBjaGlsZCBgdmFyaWFibGVzYCBzaGFwZXMgd2l0aG91dCBjb25mbGljdC5cbiAgICpcbiAgICogVXNpbmcgYEFueVJvdXRlYCBwdXJwb3NlbHkgcHJlc2VydmVzIGluZGVwZW5kZW5jZSBvZiBlYWNoIHJvdXRlJ3MgZ2VuZXJpY1xuICAgKiBwYXJhbWV0ZXJzIHdoaWxlIHN0aWxsIGtlZXBpbmcgcnVudGltZSByZXByZXNlbnRhdGlvbiBpZGVudGljYWwuXG4gICAqL1xuICBjaGlsZHJlbj86IChBbnlSb3V0ZSB8IFJlZGlyZWN0KVtdO1xuICAvKiogUmVzb3VyY2UgcGFnZSBmb3IgbGF6eS1sb2FkZWQgY29tcG9uZW50cyAqL1xuICByZXNvdXJjZVBhZ2U/OiBSZXNvdXJjZVBhZ2UgfCBudWxsO1xuICAvKiogVVJMIHBhdGggcGF0dGVybiBmb3IgdGhpcyByb3V0ZSAqL1xuICBwYXRoPzogc3RyaW5nO1xuICAvKiogRnVuY3Rpb24gdG8gcHJlcGFyZSBkYXRhIGJlZm9yZSByZW5kZXJpbmcgKi9cbiAgcHJlcGFyZT86IFJvdXRlUHJlcGFyZTxUQ29udGV4dCwgVFByZXBhcmVkLCBUVmFyaWFibGVzLCBUUXVlcnlTaGFwZT47XG4gIC8qKiBDdXN0b20gcmVuZGVyIGZ1bmN0aW9uIGZvciB0aGlzIHJvdXRlICovXG4gIHJlbmRlcj86IFJvdXRlUmVuZGVyPFRDb250ZXh0LCBUUHJlcGFyZWQsIFRWYXJpYWJsZXMsIFRRdWVyeVNoYXBlPjtcbiAgLyoqIFVuaWZpZWQgc2NoZW1hIChmaWx0ZXIgLyBxdWVyeSkgKi9cbiAgcXVlcnlTY2hlbWE/OiBTO1xufTtcblxuLyoqXG4gKiBQcm9wcyBwYXNzZWQgdG8gUm91dGVDb21wb25lbnQgaW5zdGFuY2VzLlxuICogQHRlbXBsYXRlIFRWYXJpYWJsZXMgLSBSb3V0ZSBwYXJhbWV0ZXIgdHlwZXMgZXh0cmFjdGVkIGZyb20gdGhlIFVSTCBwYXRoXG4gKi9cbmV4cG9ydCB0eXBlIFJvdXRlQ29tcG9uZW50UHJvcHM8XG4gIFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGEsXG4gIFMgZXh0ZW5kcyBGaWx0ZXJTY2hlbWEgfCB1bmRlZmluZWQgPSBGaWx0ZXJTY2hlbWEgfCB1bmRlZmluZWQsXG4gIFRRdWVyeVNoYXBlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbj4gPSB7XG4gIC8qKiBDaGlsZCBjb21wb25lbnRzIHRvIHJlbmRlciAqL1xuICBjaGlsZHJlbjogUmVhY3RFbGVtZW50O1xuICAvKiogUm91dGVyIGNvbnRleHQgY29udGFpbmluZyBuYXZpZ2F0aW9uIGFuZCBzdGF0ZSAqL1xuICByb3V0ZXJDb250ZXh0OiBSb3V0aW5nQ29udGV4dFR5cGU8VFZhcmlhYmxlcywgUywgVFF1ZXJ5U2hhcGU+O1xuICAvKiogVGhlIHJvdXRlIGNvbmZpZ3VyYXRpb24gKi9cbiAgcm91dGU6IFJvdXRlPGFueSwgYW55LCBhbnksIGFueSwgUz47XG59O1xuXG4vKipcbiAqIENhbGxiYWNrIGZ1bmN0aW9uIGZvciByb3V0ZSBjaGFuZ2VzLlxuICogQHRlbXBsYXRlIFRWYXJpYWJsZXMgLSBSb3V0ZSBwYXJhbWV0ZXIgdHlwZXMgZXh0cmFjdGVkIGZyb20gdGhlIFVSTCBwYXRoXG4gKi9cbmV4cG9ydCB0eXBlIFN1YnNjcmliZUNhbGxiYWNrPFxuICBUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhLFxuICBTIGV4dGVuZHMgRmlsdGVyU2NoZW1hIHwgdW5kZWZpbmVkID0gRmlsdGVyU2NoZW1hIHwgdW5kZWZpbmVkLFxuICBUQ29udGV4dCA9IHVua25vd24sXG4+ID0gKG5leHRFbnRyeTogUm91dGVFbnRyeTxUVmFyaWFibGVzLCBTLCBUQ29udGV4dD4pID0+IHZvaWQ7XG5cbmV4cG9ydCB0eXBlIFByZWxvYWRUYXJnZXQgPSB7XG4gIHBhdGhuYW1lOiBzdHJpbmc7XG4gIHNlYXJjaD86IHN0cmluZztcbiAgc291cmNlPzogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBSb3V0ZXIgY29udGV4dCB0eXBlIHRoYXQgcHJvdmlkZXMgbmF2aWdhdGlvbiBhbmQgc3RhdGUgbWFuYWdlbWVudC5cbiAqIEB0ZW1wbGF0ZSBUVmFyaWFibGVzIC0gUm91dGUgcGFyYW1ldGVyIHR5cGVzIGV4dHJhY3RlZCBmcm9tIHRoZSBVUkwgcGF0aFxuICovXG5leHBvcnQgdHlwZSBSb3V0aW5nQ29udGV4dFR5cGU8XG4gIFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGEsXG4gIFMgZXh0ZW5kcyBGaWx0ZXJTY2hlbWEgfCB1bmRlZmluZWQgPSBGaWx0ZXJTY2hlbWEgfCB1bmRlZmluZWQsXG4gIFRRdWVyeVNoYXBlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgVENvbnRleHQgPSB1bmtub3duLFxuPiA9IHtcbiAgLyoqIEJyb3dzZXIgaGlzdG9yeSBpbnN0YW5jZSBmb3IgbmF2aWdhdGlvbiAqL1xuICBoaXN0b3J5OiBCcm93c2VySGlzdG9yeTtcbiAgLyoqIEdldCB0aGUgY3VycmVudCByb3V0ZSBlbnRyeSAqL1xuICBnZXQ6ICgpID0+IFJvdXRlRW50cnk8VFZhcmlhYmxlcywgUywgVENvbnRleHQ+O1xuICAvKiogUHJlbG9hZCBjb2RlIGZvciBhIHJvdXRlIHdpdGhvdXQgc3RvcmluZyB0aGUgcmVzdWx0ICovXG4gIHByZWxvYWRDb2RlOiAodGFyZ2V0OiBQcmVsb2FkVGFyZ2V0KSA9PiB2b2lkO1xuICAvKiogUHJlbG9hZCBjb2RlIGFuZCBkYXRhIGZvciBhIHJvdXRlIHdpdGhvdXQgc3RvcmluZyB0aGUgcmVzdWx0ICovXG4gIHByZWxvYWQ6ICh0YXJnZXQ6IFByZWxvYWRUYXJnZXQpID0+IHZvaWQ7XG4gIC8qKiBTdWJzY3JpYmUgdG8gcm91dGUgY2hhbmdlcyAoc2NoZW1hIGRlcml2YWJsZSwgbm90IG5lZWRlZCBpbiBzaWduYXR1cmUpICovXG4gIHN1YnNjcmliZTogKFxuICAgIGNhbGxiYWNrOiBTdWJzY3JpYmVDYWxsYmFjazxUVmFyaWFibGVzLCBTLCBUQ29udGV4dD4sXG4gICkgPT4gKCkgPT4gdm9pZDtcbiAgLyoqIE5hdmlnYXRlIHdpdGggb3B0aW9uYWwgcGF0aG5hbWUgYW5kIHR5cGVkL3JhdyBxdWVyeSBvYmplY3QgKi9cbiAgbmF2aWdhdGU6IChvcHRzOiB7XG4gICAgcGF0aG5hbWU/OiBzdHJpbmc7XG4gICAgcXVlcnk/OiBUUXVlcnlTaGFwZTtcbiAgICAvKiogT3B0aW9uYWwgZmlsdGVycyBvYmplY3QgdG8gc2VyaWFsaXplIHVzaW5nIHRoZSBhY3RpdmUgcXVlcnlTY2hlbWEgKi9cbiAgICBmaWx0ZXJzPzogUyBleHRlbmRzIEZpbHRlclNjaGVtYVxuICAgICAgPyBJbmZlckZpbHRlclJlc3VsdDxTPlxuICAgICAgOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICByZXBsYWNlPzogYm9vbGVhbjtcbiAgfSkgPT4gdm9pZDtcbn07XG5cbi8qKlxuICogUmV0dXJuIHR5cGUgZm9yIHJlc291cmNlIHBhZ2UgbG9hZGVycy5cbiAqL1xuZXhwb3J0IHR5cGUgUmVzb3VyY2VQYWdlUmV0dXJuID1cbiAgfCB7IGRlZmF1bHQ6IENvbXBvbmVudFR5cGU8YW55PiB9XG4gIHwgQ29tcG9uZW50VHlwZTxhbnk+O1xuXG4vKipcbiAqIEZ1bmN0aW9uIHRoYXQgbG9hZHMgYSByZXNvdXJjZSBwYWdlIGNvbXBvbmVudC5cbiAqL1xuZXhwb3J0IHR5cGUgUmVzb3VyY2VQYWdlTG9hZGVyID0gKCkgPT4gUHJvbWlzZTxSZXNvdXJjZVBhZ2VSZXR1cm4+O1xuXG4vKiogVXRpbGl0eTogaW5mZXIgZmlsdGVycyB0eXBlIGZvciBhIGdpdmVuIHF1ZXJ5IHNjaGVtYSAqL1xuZXhwb3J0IHR5cGUgSW5mZXJGaWx0ZXJzPFMgZXh0ZW5kcyBGaWx0ZXJTY2hlbWEgfCB1bmRlZmluZWQ+ID1cbiAgUyBleHRlbmRzIEZpbHRlclNjaGVtYSA/IEluZmVyRmlsdGVyUmVzdWx0PFM+IDogUmVjb3JkPHN0cmluZywgbmV2ZXI+O1xuXG5leHBvcnQgdHlwZSB7IEZpbHRlclNjaGVtYSB9O1xuXG4vKiogUmUtZXhwb3J0IGhlbHBlciBmaWx0ZXItcXVlcnkgdHlwZSBmb3IgdXNlciBjb252ZW5pZW5jZSAqL1xuZXhwb3J0IHR5cGUgeyBJbmZlckZpbHRlckZpZWxkIGFzIEluZmVyRmllbGQgfTtcblxuLyoqXG4gKiBTdHJvbmdseSB0eXBlZCBmaWx0ZXIgYWN0aW9ucyAoUGhhc2UgMSBiYXNlIHR5cGVzKS4gSW1wbGVtZW50YXRpb24gd2lsbCBiZSB3aXJlZFxuICogaW4gYSBsYXRlciBwaGFzZSB3aGVuIGB1c2VGaWx0ZXJzYCBiZWNvbWVzIGdlbmVyaWMuXG4gKlxuICogUzogU2NoZW1hIHR5cGUgcGFzc2VkIHRvIHRoZSBob29rL3JvdXRlLlxuICovXG5leHBvcnQgdHlwZSBUeXBlZEZpbHRlckFjdGlvbnM8UyBleHRlbmRzIEZpbHRlclNjaGVtYT4gPSB7XG4gIC8qKiBTZXQgb3IgdW5zZXQgKHZhbHVlID0gdW5kZWZpbmVkKSBhIHNwZWNpZmljIG9wZXJhdG9yIHZhbHVlIGZvciBhIGZpZWxkICovXG4gIHNldDogPFxuICAgIEYgZXh0ZW5kcyBrZXlvZiBTICYgc3RyaW5nLFxuICAgIE8gZXh0ZW5kcyBrZXlvZiBOb25OdWxsYWJsZTxJbmZlckZpbHRlclJlc3VsdDxTPltGXT4gJiBzdHJpbmcsXG4gID4oXG4gICAgZmllbGQ6IEYsXG4gICAgb3BlcmF0b3I6IE8sXG4gICAgdmFsdWU6IE5vbk51bGxhYmxlPEluZmVyRmlsdGVyUmVzdWx0PFM+W0ZdPltPXSB8IHVuZGVmaW5lZCxcbiAgICBvcHRzPzogeyByZXBsYWNlPzogYm9vbGVhbiB9LFxuICApID0+IHZvaWQ7XG4gIC8qKiBSZW1vdmUgYSB3aG9sZSBmaWVsZCBvciBhIHNwZWNpZmljIG9wZXJhdG9yICovXG4gIHJlbW92ZTogPFxuICAgIEYgZXh0ZW5kcyBrZXlvZiBTICYgc3RyaW5nLFxuICAgIE8gZXh0ZW5kcyBrZXlvZiBOb25OdWxsYWJsZTxJbmZlckZpbHRlclJlc3VsdDxTPltGXT4gJiBzdHJpbmcsXG4gID4oXG4gICAgZmllbGQ6IEYsXG4gICAgb3BlcmF0b3I/OiBPLFxuICAgIG9wdHM/OiB7IHJlcGxhY2U/OiBib29sZWFuIH0sXG4gICkgPT4gdm9pZDtcbiAgLyoqIE1lcmdlIGEgcGFydGlhbCBmaWx0ZXJzIG9iamVjdCAqL1xuICBtZXJnZTogKFxuICAgIHBhdGNoOiBQYXJ0aWFsPEluZmVyRmlsdGVyUmVzdWx0PFM+PixcbiAgICBvcHRzPzogeyByZXBsYWNlPzogYm9vbGVhbiB9LFxuICApID0+IHZvaWQ7XG4gIC8qKiBDbGVhciBhbGwgZmlsdGVycyAqL1xuICBjbGVhcjogKG9wdHM/OiB7IHJlcGxhY2U/OiBib29sZWFuIH0pID0+IHZvaWQ7XG59O1xuXG4vKipcbiAqIENvbnZlbmllbmNlIHVtYnJlbGxhIHJvdXRlIHR5cGUuXG4gKiBVc2VkIHdoZXJlIHdlIGp1c3Qgd2FudCB0byBjYXJyeSBhcmJpdHJhcnkgcm91dGUgZ2VuZXJpY3MgZm9yd2FyZCB3aXRob3V0IGVyYXN1cmUuXG4gKi9cbmV4cG9ydCB0eXBlIEFueVJvdXRlPFRDb250ZXh0ID0gYW55PiA9IFJvdXRlPFRDb250ZXh0LCBhbnksIGFueSwgYW55LCBhbnk+O1xuXG4vKiogRXh0cmFjdCB0aGUgcHJlcGFyZWQgdHlwZSBmcm9tIGEgUm91dGUgKi9cbmV4cG9ydCB0eXBlIFByZXBhcmVkT2Y8Uj4gPVxuICBSIGV4dGVuZHMgUm91dGU8YW55LCBpbmZlciBQLCBhbnksIGFueSwgYW55PiA/IFAgOiBuZXZlcjtcbi8qKiBFeHRyYWN0IHRoZSB2YXJpYWJsZXMgdHlwZSBmcm9tIGEgUm91dGUgKi9cbmV4cG9ydCB0eXBlIFZhcmlhYmxlc09mPFI+ID1cbiAgUiBleHRlbmRzIFJvdXRlPGFueSwgYW55LCBpbmZlciBWLCBhbnksIGFueT4gPyBWIDogbmV2ZXI7XG4vKiogRXh0cmFjdCB0aGUgcXVlcnkgc2hhcGUgdHlwZSBmcm9tIGEgUm91dGUgKi9cbmV4cG9ydCB0eXBlIFF1ZXJ5U2hhcGVPZjxSPiA9XG4gIFIgZXh0ZW5kcyBSb3V0ZTxhbnksIGFueSwgYW55LCBpbmZlciBRLCBhbnk+ID8gUSA6IG5ldmVyO1xuXG4vKiogUGF0aCBsaXRlcmFsIHR5cGUgaWYgcHJlc2VudCAqL1xuZXhwb3J0IHR5cGUgUGF0aE9mPFI+ID0gUiBleHRlbmRzIHsgcGF0aD86IGluZmVyIFAgfVxuICA/IFAgZXh0ZW5kcyBzdHJpbmdcbiAgICA/IFBcbiAgICA6IG5ldmVyXG4gIDogbmV2ZXI7XG5cbi8qKiBVbmlvbiBvZiBhbGwgY29uY3JldGUgcGF0aCBzdHJpbmdzIGZyb20gYSB0dXBsZS9hcnJheSBvZiByb3V0ZXMgKG5vbi1yZWN1cnNpdmUpICovXG5leHBvcnQgdHlwZSBQYXRoc09mPFJvdXRlcyBleHRlbmRzIHJlYWRvbmx5IEFueVJvdXRlW10+ID0gUGF0aE9mPFxuICBSb3V0ZXNbbnVtYmVyXVxuPjtcblxuLyoqIE1hcCBwYXRoIC0+IHByZXBhcmVkIHR5cGUgKHVuZGVmaW5lZCBpZiByb3V0ZSBsYWNrcyBwcmVwYXJlKSAqL1xuZXhwb3J0IHR5cGUgUHJlcGFyZWRNYXA8Um91dGVzIGV4dGVuZHMgcmVhZG9ubHkgQW55Um91dGVbXT4gPSB7XG4gIFtLIGluIFBhdGhzT2Y8Um91dGVzPl06XG4gICAgfCBQcmVwYXJlZE9mPEV4dHJhY3Q8Um91dGVzW251bWJlcl0sIHsgcGF0aD86IEsgfT4+XG4gICAgfCB1bmRlZmluZWQ7XG59O1xuXG4vKiogTWFwIHBhdGggLT4gcXVlcnkgc2hhcGUgKi9cbmV4cG9ydCB0eXBlIFF1ZXJ5U2hhcGVNYXA8Um91dGVzIGV4dGVuZHMgcmVhZG9ubHkgQW55Um91dGVbXT4gPSB7XG4gIFtLIGluIFBhdGhzT2Y8Um91dGVzPl06IFF1ZXJ5U2hhcGVPZjxFeHRyYWN0PFJvdXRlc1tudW1iZXJdLCB7IHBhdGg/OiBLIH0+Pjtcbn07XG5cbi8qKiBFeHRyYWN0IHNjaGVtYSBmcm9tIGEgcm91dGUgKHVuZGVmaW5lZCBpZiBhYnNlbnQpICovXG5leHBvcnQgdHlwZSBTY2hlbWFPZjxSPiA9IFIgZXh0ZW5kcyB7IHF1ZXJ5U2NoZW1hPzogaW5mZXIgUyB9XG4gID8gUyBleHRlbmRzIEZpbHRlclNjaGVtYVxuICAgID8gU1xuICAgIDogdW5kZWZpbmVkXG4gIDogdW5kZWZpbmVkO1xuXG4vKiogRmlsdGVycyBpbmZlcnJlZCBmcm9tIHRoZSByb3V0ZSdzIHNjaGVtYSAqL1xuZXhwb3J0IHR5cGUgRmlsdGVyc09mPFI+ID1cbiAgU2NoZW1hT2Y8Uj4gZXh0ZW5kcyBGaWx0ZXJTY2hlbWFcbiAgICA/IEluZmVyRmlsdGVyUmVzdWx0PFNjaGVtYU9mPFI+PlxuICAgIDogUmVjb3JkPHN0cmluZywgbmV2ZXI+O1xuXG4vKiogTWFwIHBhdGggLT4gaW5mZXJyZWQgZmlsdGVycyB0eXBlICovXG5leHBvcnQgdHlwZSBGaWx0ZXJzTWFwPFJvdXRlcyBleHRlbmRzIHJlYWRvbmx5IEFueVJvdXRlW10+ID0ge1xuICBbSyBpbiBQYXRoc09mPFJvdXRlcz5dOiBGaWx0ZXJzT2Y8RXh0cmFjdDxSb3V0ZXNbbnVtYmVyXSwgeyBwYXRoPzogSyB9Pj47XG59O1xuXG4vKiogUnVudGltZSBoZWxwZXIgaW50ZXJmYWNlIGF1Z21lbnRhdGlvbiBmb3Igcm91dGVyIGNvbnRleHQgKGFkZGVkIGluIGNyZWF0ZVJvdXRlcikgKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJlcGFyZWRBY2Nlc3M8Um91dGVzIGV4dGVuZHMgcmVhZG9ubHkgQW55Um91dGVbXT4ge1xuICAvKiogUmV0cmlldmUgdGhlIHByZXBhcmVkIG9iamVjdCBmb3IgYSBjb25jcmV0ZSBwYXRoIChpZiBjdXJyZW50IG1hdGNoIGluY2x1ZGVzIGl0KSAqL1xuICBnZXRQcmVwYXJlZDogPFAgZXh0ZW5kcyBQYXRoc09mPFJvdXRlcz4+KHBhdGg6IFApID0+IFByZXBhcmVkTWFwPFJvdXRlcz5bUF07XG4gIC8vIGdldFR5cGVkUXVlcnkgcmVtb3ZlZCDigJMgdXNlIGZpbHRlcnMvcXVlcnkgZGlyZWN0bHlcbn1cblxuLyoqIElucHV0IHNoYXBlIGZvciBhIG5hdmlnYXRpb24gdG8gYSBzcGVjaWZpYyBwYXRoICh0eXBlZCBxdWVyeSkgKi9cbmV4cG9ydCB0eXBlIE5hdmlnYXRlSW5wdXRGb3JQYXRoPFxuICBSb3V0ZXMgZXh0ZW5kcyByZWFkb25seSBBbnlSb3V0ZVtdLFxuICBQIGV4dGVuZHMgUGF0aHNPZjxSb3V0ZXM+LFxuPiA9IHtcbiAgcGF0aG5hbWU6IFA7XG4gIHF1ZXJ5PzogUXVlcnlTaGFwZU1hcDxSb3V0ZXM+W1BdO1xuICBmaWx0ZXJzPzogRmlsdGVyc01hcDxSb3V0ZXM+W1BdO1xuICByZXBsYWNlPzogYm9vbGVhbjtcbn07XG5cbi8qKiBGYWxsYmFjayB1bnR5cGVkIG5hdmlnYXRlIGlucHV0ICovXG5leHBvcnQgdHlwZSBOYXZpZ2F0ZUlucHV0VW50eXBlZCA9IHtcbiAgcGF0aG5hbWU/OiBzdHJpbmc7XG4gIHF1ZXJ5PzogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgZmlsdGVycz86IFJlY29yZDxzdHJpbmcsIGFueT47XG4gIHJlcGxhY2U/OiBib29sZWFuO1xufTtcblxuLyoqIE92ZXJsb2FkZWQgbmF2aWdhdGUgZnVuY3Rpb24gdHlwZSAoY29tcGlsZS10aW1lIG9ubHk7IHJ1bnRpbWUgc2luZ2xlIGltcGwpICovXG5leHBvcnQgaW50ZXJmYWNlIE5hdmlnYXRlT3ZlcmxvYWRzPFJvdXRlcyBleHRlbmRzIHJlYWRvbmx5IEFueVJvdXRlW10+IHtcbiAgPFAgZXh0ZW5kcyBQYXRoc09mPFJvdXRlcz4+KG9wdHM6IE5hdmlnYXRlSW5wdXRGb3JQYXRoPFJvdXRlcywgUD4pOiB2b2lkO1xuICAob3B0czogTmF2aWdhdGVJbnB1dFVudHlwZWQpOiB2b2lkO1xufVxuIl19