@plumile/backoffice-core 0.1.199 → 0.1.201

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/README.md +3 -1
  2. package/lib/esm/builders.d.ts +11 -5
  3. package/lib/esm/builders.d.ts.map +1 -1
  4. package/lib/esm/builders.js +1 -1
  5. package/lib/esm/config/entity-builders.d.ts +3 -3
  6. package/lib/esm/config/entity-builders.d.ts.map +1 -1
  7. package/lib/esm/config/entity-builders.js +3 -5
  8. package/lib/esm/detailParams.d.ts +8 -2
  9. package/lib/esm/detailParams.d.ts.map +1 -1
  10. package/lib/esm/detailParams.js +3 -3
  11. package/lib/esm/index.d.ts +1 -0
  12. package/lib/esm/index.d.ts.map +1 -1
  13. package/lib/esm/index.js +1 -1
  14. package/lib/esm/resolve.d.ts +2 -1
  15. package/lib/esm/resolve.d.ts.map +1 -1
  16. package/lib/esm/resolve.js +1 -1
  17. package/lib/esm/runtimeErasure.d.ts +2 -0
  18. package/lib/esm/runtimeErasure.d.ts.map +1 -0
  19. package/lib/esm/runtimeErasure.js +2 -0
  20. package/lib/esm/type-tests/operation-bound-config.test-d.d.ts.map +1 -1
  21. package/lib/esm/type-tests/operation-bound-config.test-d.js +1 -1
  22. package/lib/esm/types.d.ts +27 -24
  23. package/lib/esm/types.d.ts.map +1 -1
  24. package/lib/esm/types.js +1 -1
  25. package/lib/tsconfig.esm.tsbuildinfo +1 -1
  26. package/lib/types/builders.d.ts +11 -5
  27. package/lib/types/builders.d.ts.map +1 -1
  28. package/lib/types/config/entity-builders.d.ts +3 -3
  29. package/lib/types/config/entity-builders.d.ts.map +1 -1
  30. package/lib/types/detailParams.d.ts +8 -2
  31. package/lib/types/detailParams.d.ts.map +1 -1
  32. package/lib/types/index.d.ts +1 -0
  33. package/lib/types/index.d.ts.map +1 -1
  34. package/lib/types/resolve.d.ts +2 -1
  35. package/lib/types/resolve.d.ts.map +1 -1
  36. package/lib/types/runtimeErasure.d.ts +2 -0
  37. package/lib/types/runtimeErasure.d.ts.map +1 -0
  38. package/lib/types/type-tests/operation-bound-config.test-d.d.ts.map +1 -1
  39. package/lib/types/types.d.ts +27 -24
  40. package/lib/types/types.d.ts.map +1 -1
  41. package/package.json +3 -3
@@ -663,4 +663,4 @@ defineBackofficePicker()({
663
663
  };
664
664
  },
665
665
  });
666
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0aW9uLWJvdW5kLWNvbmZpZy50ZXN0LWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHlwZS10ZXN0cy9vcGVyYXRpb24tYm91bmQtY29uZmlnLnRlc3QtZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzVFLE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsOEJBQThCLEVBQzlCLCtCQUErQixFQUMvQixtQ0FBbUMsRUFDbkMsbUNBQW1DLEVBQ25DLG9DQUFvQyxFQUNwQyxxQ0FBcUMsRUFDckMsa0NBQWtDLEVBQ2xDLHVCQUF1QixFQUN2Qiw4QkFBOEIsRUFDOUIsc0JBQXNCLEVBQ3RCLDhCQUE4QixFQUM5QixxQkFBcUIsRUFDckIsY0FBYyxFQUNkLGNBQWMsRUFDZCxVQUFVLEVBQ1YsWUFBWSxHQUNiLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFxSDVFLE1BQU0sS0FBSyxHQUFjLENBQUMsQ0FBQyxFQUFFLEVBQUU7SUFDN0IsT0FBTyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDM0IsQ0FBQyxDQUFDO0FBRUYsTUFBTSxtQkFBbUIsR0FBRyxZQUFZLENBQUM7SUFDdkMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztDQUMxQixDQUFDLENBQUM7QUFFSCxNQUFNLGtCQUFrQixHQUFHLDhCQUE4QixFQUFxQixDQUFDO0lBQzdFLFFBQVEsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFO0lBQ2xELFlBQVksRUFBRTtRQUNaLE1BQU0sRUFBRSxtQkFBbUI7UUFDM0IsT0FBTyxFQUFFLENBQUMs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VztJQUNsQixRQUFRLEVBQUUsRUFBVztJQUNyQixhQUFhLEVBQUUsR0FBRyxFQUFFO1FBQ2xCLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUNELEtBQUssRUFBRSxHQUFHLEVBQUU7UUFDVixPQUFPLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUNELFFBQVEsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO1FBQ2hCLE9BQU8sR0FBRyxDQUFDLEVBQUUsQ0FBQztJQUNoQixDQUFDO0lBRUQsbUJBQW1CLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7UUFDakMsT0FBTztZQUNMLEtBQUssRUFBRTtnQkFDTCxTQUFTLEVBQUcsS0FBNEMsRUFBRSxTQUFTO2FBQ3BFO1lBQ0QsS0FBSyxFQUFFLEVBQUU7WUFDVCxNQUFNLEVBQUUsSUFBSTtTQUNiLENBQUM7SUFDSixDQUFDO0NBQ0YsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBPcGVyYXRpb25UeXBlIH0gZnJvbSAncmVsYXktcnVudGltZSc7XG5pbXBvcnQgeyBkZWZpbmVTY2hlbWEsIHN0cmluZ0ZpZWxkIH0gZnJvbSAnQHBsdW1pbGUvZmlsdGVyLXF1ZXJ5L3NjaGVtYS5qcyc7XG5pbXBvcnQge1xuICBjcmVhdGVMaXN0RGV0YWlsTWFuaWZlc3QsXG4gIGRlZmluZUJhY2tvZmZpY2VDb25uZWN0aW9uTGlzdCxcbiAgZGVmaW5lQmFja29mZmljZURhc2hib2FyZENvbmZpZyxcbiAgZGVmaW5lQmFja29mZmljZURhc2hib2FyZEhyZWZUYXJnZXQsXG4gIGRlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRMaXN0VGFyZ2V0LFxuICBkZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkUXVlcnlXaWRnZXQsXG4gIGRlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRTdGF0aWNXaWRnZXQsXG4gIGRlZmluZUJhY2tvZmZpY2VGb3JtTXV0YXRpb25BY3Rpb24sXG4gIGRlZmluZUJhY2tvZmZpY2VGaWx0ZXJzLFxuICBkZWZpbmVCYWNrb2ZmaWNlTXV0YXRpb25BY3Rpb24sXG4gIGRlZmluZUJhY2tvZmZpY2VQaWNrZXIsXG4gIGRlZmluZUJhY2tvZmZpY2VSZWxhdGlvbkZpbHRlcixcbiAgZGVmaW5lQmFja29mZmljZVNvcnRzLFxuICBkYXRldGltZUZpbHRlcixcbiAgZW50aXR5SWRGaWx0ZXIsXG4gIGVudW1GaWx0ZXIsXG4gIG51bWJlckZpbHRlcixcbn0gZnJvbSAnLi4vYnVpbGRlcnMuanMnO1xuaW1wb3J0IHsgZGVmaW5lQmFja29mZmljZUxpc3ROYXZpZ2F0aW9uIH0gZnJvbSAnLi4vc3RhdGUvbGlzdE5hdmlnYXRpb24uanMnO1xuaW1wb3J0IHR5cGUge1xuICBCYWNrb2ZmaWNlRGFzaGJvYXJkQ29uZmlnLFxuICBCYWNrb2ZmaWNlRGV0YWlsVGl0bGVNZXRhSXRlbSxcbiAgQmFja29mZmljZUVudGl0eU1hbmlmZXN0SXRlbSxcbiAgQmFja29mZmljZU1hbmlmZXN0TGlzdFN0YXRlSW5wdXQsXG4gIEJhY2tvZmZpY2VMaXN0UmVzcG9uc2l2ZU1ldGFJdGVtLFxuICBCYWNrb2ZmaWNlT3BlcmF0aW9uV2hlcmUsXG4gIEkxOG5MYWJlbCxcbn0gZnJvbSAnLi4vdHlwZXMuanMnO1xuXG50eXBlIFRlc3RTb3J0ID0gJ0NSRUFURURfQVRfQVNDJyB8ICdDUkVBVEVEX0FUX0RFU0MnO1xudHlwZSBUZXN0S2luZCA9ICdBJyB8ICdCJztcbnR5cGUgVGVzdEN1cnJlbmN5ID0gJ0VVUicgfCAnVVNEJztcblxuaW50ZXJmYWNlIFRlc3RMaXN0T3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSB7XG4gIHZhcmlhYmxlczoge1xuICAgIHdoZXJlPzoge1xuICAgICAgcHJvamVjdElkPzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgICAgIGtpbmQ/OiBUZXN0S2luZCB8IG51bGwgfCB1bmRlZmluZWQ7XG4gICAgICBhdHRlbXB0PzogbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgICAgIGNyZWF0ZWRGcm9tPzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgICB9IHwgbnVsbDtcbiAgICBzb3J0PzogVGVzdFNvcnQgfCBudWxsIHwgdW5kZWZpbmVkO1xuICAgIGNvdW50OiBudW1iZXI7XG4gICAgY3Vyc29yPzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgfTtcbiAgcmVzcG9uc2U6IHtcbiAgICByZWFkb25seSByb3dzOiByZWFkb25seSB1bmtub3duW107XG4gIH07XG59XG5cbmludGVyZmFjZSBUZXN0UGlja2VyT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSB7XG4gIHZhcmlhYmxlczoge1xuICAgIHdoZXJlPzoge1xuICAgICAgb3JnYW5pemF0aW9uSWQ/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuICAgIH0gfCBudWxsO1xuICAgIGNvdW50OiBudW1iZXI7XG4gICAgY3Vyc29yPzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgfTtcbiAgcmVzcG9uc2U6IHtcbiAgICByZWFkb25seSByb3dzOiByZWFkb25seSB1bmtub3duW107XG4gIH07XG59XG5cbmludGVyZmFjZSBUZXN0Q291bnRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlIHtcbiAgdmFyaWFibGVzOiB7XG4gICAgd2hlcmU/OiBCYWNrb2ZmaWNlT3BlcmF0aW9uV2hlcmU8VGVzdExpc3RPcGVyYXRpb24+IHwgbnVsbDtcbiAgfTtcbiAgcmVzcG9uc2U6IHtcbiAgICByZWFkb25seSByb3dzQ291bnQ6IG51bWJlcjtcbiAgfTtcbn1cblxuaW50ZXJmYWNlIFRlc3REYXNoYm9hcmRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlIHtcbiAgdmFyaWFibGVzOiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj47XG4gIHJlc3BvbnNlOiB7XG4gICAgcmVhZG9ubHkgdXNlcnM6IHtcbiAgICAgIHJlYWRvbmx5IHRvdGFsQ291bnQ6IG51bWJlcjtcbiAgICB9O1xuICB9O1xufVxuXG5pbnRlcmZhY2UgVGVzdERhc2hib2FyZFdpbmRvd09wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUge1xuICB2YXJpYWJsZXM6IHtcbiAgICBmcm9tOiBzdHJpbmc7XG4gICAgdG86IHN0cmluZztcbiAgICBzZXZlcml0eT86IFRlc3RLaW5kIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgfTtcbiAgcmVzcG9uc2U6IHtcbiAgICByZWFkb25seSB0aHJvdWdocHV0Q291bnQ6IG51bWJlcjtcbiAgICByZWFkb25seSBmYWlsdXJlUmF0ZTogbnVtYmVyO1xuICAgIHJlYWRvbmx5IHRvcEZhaWx1cmVzOiByZWFkb25seSB7XG4gICAgICByZWFkb25seSBpZDogc3RyaW5nO1xuICAgICAgcmVhZG9ubHkgbGFiZWw6IHN0cmluZztcbiAgICAgIHJlYWRvbmx5IGNvdW50OiBudW1iZXI7XG4gICAgfVtdO1xuICAgIHJlYWRvbmx5IGJ1Y2tldHM6IHJlYWRvbmx5IHtcbiAgICAgIHJlYWRvbmx5IGJ1Y2tldDogc3RyaW5nO1xuICAgICAgcmVhZG9ubHkgY291bnQ6IG51bWJlcjtcbiAgICB9W107XG4gIH07XG59XG5cbmludGVyZmFjZSBUZXN0Q3JlYXRlT3JnYW5pemF0aW9uT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSB7XG4gIHZhcmlhYmxlczoge1xuICAgIGlucHV0OiB7XG4gICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICBjdXJyZW5jeTogVGVzdEN1cnJlbmN5O1xuICAgIH07XG4gIH07XG4gIHJlc3BvbnNlOiB7XG4gICAgcmVhZG9ubHkgY3JlYXRlT3JnYW5pemF0aW9uOiB7XG4gICAgICByZWFkb25seSBzdGF0dXM6IHN0cmluZztcbiAgICAgIHJlYWRvbmx5IG9yZ2FuaXphdGlvbjoge1xuICAgICAgICByZWFkb25seSBpZDogc3RyaW5nO1xuICAgICAgfSB8IG51bGw7XG4gICAgfTtcbiAgfTtcbn1cblxuaW50ZXJmYWNlIFRlc3RBcmNoaXZlT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSB7XG4gIHZhcmlhYmxlczoge1xuICAgIGlkOiBzdHJpbmc7XG4gIH07XG4gIHJlc3BvbnNlOiB7XG4gICAgcmVhZG9ubHkgYXJjaGl2ZToge1xuICAgICAgcmVhZG9ubHkgc3RhdHVzOiBzdHJpbmc7XG4gICAgfTtcbiAgfTtcbn1cblxudHlwZSBUZXN0Q3JlYXRlT3JnYW5pemF0aW9uRm9ybVZhbHVlcyA9IHtcbiAgbmFtZTogc3RyaW5nO1xuICBjdXJyZW5jeTogVGVzdEN1cnJlbmN5O1xufTtcblxuY29uc3QgbGFiZWw6IEkxOG5MYWJlbCA9ICh0KSA9PiB7XG4gIHJldHVybiB0KCdjb21tb24ubGFiZWwnKTtcbn07XG5cbmNvbnN0IHRlc3RMaXN0UXVlcnlTY2hlbWEgPSBkZWZpbmVTY2hlbWEoe1xuICBwcm9qZWN0SWQ6IHN0cmluZ0ZpZWxkKFsnZXEnXSksXG4gIGtpbmQ6IHN0cmluZ0ZpZWxkKFsnZXEnXSksXG59KTtcblxuY29uc3QgdGVzdExpc3ROYXZpZ2F0aW9uID0gZGVmaW5lQmFja29mZmljZUxpc3ROYXZpZ2F0aW9uPFRlc3RMaXN0T3BlcmF0aW9uPigpKHtcbiAgZGVmYXVsdHM6IHsgd2hlcmU6IG51bGwsIHNvcnQ6ICdDUkVBVEVEX0FUX0RFU0MnIH0sXG4gIGZpbHRlclNjaGVtYToge1xuICAgIHNjaGVtYTogdGVzdExpc3RRdWVyeVNjaGVtYSxcbiAgICB0b1doZXJlOiAoZmlsdGVycykgPT4ge1xuICAgICAgY29uc3QgcmF3S2luZCA9IGZpbHRlcnMua2luZD8uZXE7XG4gICAgICBsZXQga2luZDogVGVzdEtpbmQgfCB1bmRlZmluZWQ7XG4gICAgICBpZiAocmF3S2luZCA9PT0gJ0EnIHx8IHJhd0tpbmQgPT09ICdCJykge1xuICAgICAgICBraW5kID0gcmF3S2luZDtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHByb2plY3RJZDogZmlsdGVycy5wcm9qZWN0SWQ/LmVxLFxuICAgICAgICBraW5kLFxuICAgICAgfTtcbiAgICB9LFxuICAgIGZyb21XaGVyZTogKHdoZXJlKSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBwcm9qZWN0SWQ6IHsgZXE6IHdoZXJlPy5wcm9qZWN0SWQgPz8gdW5kZWZpbmVkIH0sXG4gICAgICAgIGtpbmQ6IHsgZXE6IHdoZXJlPy5raW5kID8/IHVuZGVmaW5lZCB9LFxuICAgICAgfTtcbiAgICB9LFxuICB9LFxuICBzb3J0SWRzOiBbJ0NSRUFURURfQVRfQVNDJywgJ0NSRUFURURfQVRfREVTQyddLFxufSk7XG5cbnRlc3RMaXN0TmF2aWdhdGlvbi5lbmNvZGUoe1xuICB3aGVyZTogeyBwcm9qZWN0SWQ6ICdwcm9qZWN0LTEnLCBraW5kOiAnQScgfSxcbiAgc29ydDogJ0NSRUFURURfQVRfQVNDJyxcbn0pO1xuXG50ZXN0TGlzdE5hdmlnYXRpb24uZW5jb2RlKHtcbiAgLy8gQHRzLWV4cGVjdC1lcnJvciBsaXN0IG5hdmlnYXRpb24gc3RhdGUgaXMgZXhhY3QgdG8gdGhlIG9wZXJhdGlvbiB3aGVyZSBpbnB1dC5cbiAgd2hlcmU6IHsgc3RhdHVzOiAnT1BFTicgfSxcbn0pO1xuXG50ZXN0TGlzdE5hdmlnYXRpb24uZGVjb2RlKHtcbiAgLy8gQHRzLWV4cGVjdC1lcnJvciBsaXN0IG5hdmlnYXRpb24gZmlsdGVycyBhcmUgZXhhY3QgdG8gdGhlIGRlc3RpbmF0aW9uIHNjaGVtYS5cbiAgZmlsdGVyczogeyBtaXNzaW5nOiB7IGVxOiAndmFsdWUnIH0gfSxcbn0pO1xuXG5jb25zdCB0eXBlZExpc3RNYW5pZmVzdCA9IGNyZWF0ZUxpc3REZXRhaWxNYW5pZmVzdCh7XG4gIGlkOiAndGFza3MnLFxuICByb3V0ZVNlZ21lbnQ6ICd0YXNrcycsXG4gIGxhYmVsLFxuICByb3V0ZXM6IHtcbiAgICBsaXN0OiAnL3Rhc2tzJyxcbiAgICBkZXRhaWw6IChpZCkgPT4ge1xuICAgICAgcmV0dXJuIGAvdGFza3MvJHtpZH1gO1xuICAgIH0sXG4gICAgZGV0YWlsUGFnZTogKGlkLCBwYWdlSWQpID0+IHtcbiAgICAgIHJldHVybiBgL3Rhc2tzLyR7aWR9LyR7cGFnZUlkfWA7XG4gICAgfSxcbiAgfSxcbiAgaGFzTGlzdDogdHJ1ZSxcbiAgbGlzdE5hdmlnYXRpb246IHRlc3RMaXN0TmF2aWdhdGlvbixcbiAgZGV0YWlsUGFnZXM6IFtcbiAgICB7XG4gICAgICBpZDogJ292ZXJ2aWV3JyxcbiAgICAgIHBhdGhTZWdtZW50OiAnb3ZlcnZpZXcnLFxuICAgICAgbGFiZWwsXG4gICAgICBpc0RlZmF1bHQ6IHRydWUsXG4gICAgfSxcbiAgXSxcbiAgZGVmYXVsdERldGFpbFBhZ2VJZDogJ292ZXJ2aWV3JyxcbiAgZmFjZXRzOiB7XG4gICAgbGlzdDogYXN5bmMgKCkgPT4ge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCd0eXBlIHRlc3QnKTtcbiAgICB9LFxuICAgIGRldGFpbExheW91dDogYXN5bmMgKCkgPT4ge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCd0eXBlIHRlc3QnKTtcbiAgICB9LFxuICAgIGRldGFpbFBhZ2U6IGFzeW5jICgpID0+IHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigndHlwZSB0ZXN0Jyk7XG4gICAgfSxcbiAgfSxcbn0pO1xuXG5jb25zdCBydW50aW1lTGlzdE1hbmlmZXN0OiBCYWNrb2ZmaWNlRW50aXR5TWFuaWZlc3RJdGVtID0gdHlwZWRMaXN0TWFuaWZlc3Q7XG5leHBvcnQgY29uc3QgcnVudGltZUxpc3RNYW5pZmVzdElkID0gcnVudGltZUxpc3RNYW5pZmVzdC5pZDtcblxudHlwZSBUeXBlZExpc3RTdGF0ZSA9IEJhY2tvZmZpY2VNYW5pZmVzdExpc3RTdGF0ZUlucHV0PFxuICB7IHRhc2tzOiB0eXBlb2YgdHlwZWRMaXN0TWFuaWZlc3QgfSxcbiAgJ3Rhc2tzJ1xuPjtcblxuZXhwb3J0IGNvbnN0IHR5cGVkTGlzdFN0YXRlOiBUeXBlZExpc3RTdGF0ZSA9IHtcbiAgd2hlcmU6IHsgcHJvamVjdElkOiAncHJvamVjdC0xJyB9LFxuICBzb3J0OiAnQ1JFQVRFRF9BVF9BU0MnLFxufTtcblxuZXhwb3J0IGNvbnN0IGludmFsaWRUeXBlZExpc3RTdGF0ZTogVHlwZWRMaXN0U3RhdGUgPSB7XG4gIC8vIEB0cy1leHBlY3QtZXJyb3IgbWFuaWZlc3QtZGVyaXZlZCBsaXN0IHN0YXRlIHJlamVjdHMgdW5rbm93biB3aGVyZSBmaWVsZHMuXG4gIHdoZXJlOiB7IHN0YXR1czogJ09QRU4nIH0sXG59O1xuXG5leHBvcnQgY29uc3QgcnVudGltZUxpc3RTdGF0ZTogQmFja29mZmljZU1hbmlmZXN0TGlzdFN0YXRlSW5wdXQ8XG4gIFJlY29yZDxzdHJpbmcsIEJhY2tvZmZpY2VFbnRpdHlNYW5pZmVzdEl0ZW0+LFxuICBzdHJpbmdcbj4gPSB7XG4gIHdoZXJlOiB7IHN0YXR1czogJ09QRU4nIH0sXG4gIHNvcnQ6ICdDUkVBVEVEX0FUX0RFU0MnLFxufTtcblxuLy8gQHRzLWV4cGVjdC1lcnJvciBsaXN0IG1hbmlmZXN0cyByZXF1aXJlIHN5bmNocm9ub3VzIGxpc3QgbmF2aWdhdGlvbi5cbmNyZWF0ZUxpc3REZXRhaWxNYW5pZmVzdCh7XG4gIGlkOiAndGFza3MnLFxuICByb3V0ZVNlZ21lbnQ6ICd0YXNrcycsXG4gIGxhYmVsLFxuICByb3V0ZXM6IHtcbiAgICBsaXN0OiAnL3Rhc2tzJyxcbiAgICBkZXRhaWw6IChpZCkgPT4ge1xuICAgICAgcmV0dXJuIGAvdGFza3MvJHtpZH1gO1xuICAgIH0sXG4gICAgZGV0YWlsUGFnZTogKGlkLCBwYWdlSWQpID0+IHtcbiAgICAgIHJldHVybiBgL3Rhc2tzLyR7aWR9LyR7cGFnZUlkfWA7XG4gICAgfSxcbiAgfSxcbiAgaGFzTGlzdDogdHJ1ZSxcbiAgZGV0YWlsUGFnZXM6IHR5cGVkTGlzdE1hbmlmZXN0LmRldGFpbFBhZ2VzLFxuICBkZWZhdWx0RGV0YWlsUGFnZUlkOiB0eXBlZExpc3RNYW5pZmVzdC5kZWZhdWx0RGV0YWlsUGFnZUlkLFxuICBmYWNldHM6IHtcbiAgICBsaXN0OiB0eXBlZExpc3RNYW5pZmVzdC5mYWNldHMubGlzdCxcbiAgICBkZXRhaWxMYXlvdXQ6IGFzeW5jICgpID0+IHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigndHlwZSB0ZXN0Jyk7XG4gICAgfSxcbiAgICBkZXRhaWxQYWdlOiBhc3luYyAoKSA9PiB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3R5cGUgdGVzdCcpO1xuICAgIH0sXG4gIH0sXG59KTtcblxuY3JlYXRlTGlzdERldGFpbE1hbmlmZXN0KHtcbiAgLi4udHlwZWRMaXN0TWFuaWZlc3QsXG4gIC8vIEB0cy1leHBlY3QtZXJyb3IgbGlzdCBuYXZpZ2F0aW9uIG11c3QgcHJvdmlkZSB0aGUgY29tcGxldGUgc3luY2hyb25vdXMgY29udHJhY3QuXG4gIGxpc3ROYXZpZ2F0aW9uOiB7IGtpbmQ6ICdsaXN0LW5hdmlnYXRpb24nIH0sXG59KTtcblxuY3JlYXRlTGlzdERldGFpbE1hbmlmZXN0KHtcbiAgLi4udHlwZWRMaXN0TWFuaWZlc3QsXG4gIC8vIEB0cy1leHBlY3QtZXJyb3IgbGlzdC1kZXRhaWwgbWFuaWZlc3RzIHJlcXVpcmUgYXQgbGVhc3Qgb25lIGRldGFpbCBwYWdlLlxuICBkZXRhaWxQYWdlczogW10sXG59KTtcblxuLy8gQHRzLWV4cGVjdC1lcnJvciBsaXN0IG1hbmlmZXN0cyByZXF1aXJlIGEgbGlzdCBmYWNldCBsb2FkZXIuXG5jcmVhdGVMaXN0RGV0YWlsTWFuaWZlc3Qoe1xuICAuLi50eXBlZExpc3RNYW5pZmVzdCxcbiAgZmFjZXRzOiB7XG4gICAgZGV0YWlsTGF5b3V0OiB0eXBlZExpc3RNYW5pZmVzdC5mYWNldHMuZGV0YWlsTGF5b3V0LFxuICAgIGRldGFpbFBhZ2U6IHR5cGVkTGlzdE1hbmlmZXN0LmZhY2V0cy5kZXRhaWxQYWdlLFxuICB9LFxufSk7XG5cbmNyZWF0ZUxpc3REZXRhaWxNYW5pZmVzdCh7XG4gIC4uLnR5cGVkTGlzdE1hbmlmZXN0LFxuICAvLyBAdHMtZXhwZWN0LWVycm9yIGxpc3QtZGV0YWlsIG1hbmlmZXN0cyByZXF1aXJlIGEgZGV0YWlsLWxheW91dCBmYWNldCBsb2FkZXIuXG4gIGZhY2V0czoge1xuICAgIGxpc3Q6IHR5cGVkTGlzdE1hbmlmZXN0LmZhY2V0cy5saXN0LFxuICAgIGRldGFpbFBhZ2U6IHR5cGVkTGlzdE1hbmlmZXN0LmZhY2V0cy5kZXRhaWxQYWdlLFxuICB9LFxufSk7XG5cbmNyZWF0ZUxpc3REZXRhaWxNYW5pZmVzdCh7XG4gIC4uLnR5cGVkTGlzdE1hbmlmZXN0LFxuICAvLyBAdHMtZXhwZWN0LWVycm9yIGxpc3QtZGV0YWlsIG1hbmlmZXN0cyByZXF1aXJlIGEgZGV0YWlsLXBhZ2UgZmFjZXQgbG9hZGVyLlxuICBmYWNldHM6IHtcbiAgICBsaXN0OiB0eXBlZExpc3RNYW5pZmVzdC5mYWNldHMubGlzdCxcbiAgICBkZXRhaWxMYXlvdXQ6IHR5cGVkTGlzdE1hbmlmZXN0LmZhY2V0cy5kZXRhaWxMYXlvdXQsXG4gIH0sXG59KTtcblxuZGVmaW5lQmFja29mZmljZUZvcm1NdXRhdGlvbkFjdGlvbjxcbiAgVGVzdENyZWF0ZU9yZ2FuaXphdGlvbk9wZXJhdGlvbixcbiAgbnVsbCxcbiAgVGVzdENyZWF0ZU9yZ2FuaXphdGlvbkZvcm1WYWx1ZXNcbj4oKSh7XG4gIGlkOiAnY3JlYXRlLW9yZ2FuaXphdGlvbicsXG4gIGtpbmQ6ICdmb3JtTXV0YXRpb24nLFxuICBsYWJlbCxcbiAgbXV0YXRpb246IHt9IGFzIG5ldmVyLFxuICBmaWVsZHM6IFtdLFxuICBnZXRWYXJpYWJsZXM6IChfbm9kZSwgdmFsdWVzKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlucHV0OiB7XG4gICAgICAgIG5hbWU6IHZhbHVlcy5uYW1lLFxuICAgICAgICBjdXJyZW5jeTogdmFsdWVzLmN1cnJlbmN5LFxuICAgICAgfSxcbiAgICB9O1xuICB9LFxuICB0b2FzdHM6IHtcbiAgICBzdWNjZXNzOiB7XG4gICAgICB0aXRsZTogbGFiZWwsXG4gICAgICB2aWV3OiB7XG4gICAgICAgIGVudGl0eUlkOiAnb3JnYW5pemF0aW9ucycsXG4gICAgICAgIGdldFRhcmdldElkOiAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICByZXR1cm4gcmVzcG9uc2UuY3JlYXRlT3JnYW5pemF0aW9uLm9yZ2FuaXphdGlvbj8uaWQgPz8gbnVsbDtcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbn0pO1xuXG5kZWZpbmVCYWNrb2ZmaWNlRm9ybU11dGF0aW9uQWN0aW9uPFxuICBUZXN0Q3JlYXRlT3JnYW5pemF0aW9uT3BlcmF0aW9uLFxuICBudWxsLFxuICBUZXN0Q3JlYXRlT3JnYW5pemF0aW9uRm9ybVZhbHVlc1xuPigpKHtcbiAgaWQ6ICdtaXNzaW5nLWN1cnJlbmN5JyxcbiAga2luZDogJ2Zvcm1NdXRhdGlvbicsXG4gIGxhYmVsLFxuICBtdXRhdGlvbjoge30gYXMgbmV2ZXIsXG4gIGZpZWxkczogW10sXG4gIC8vIEB0cy1leHBlY3QtZXJyb3IgY3JlYXRlIG9yZ2FuaXphdGlvbiB2YXJpYWJsZXMgbXVzdCBpbmNsdWRlIHJlcXVpcmVkIGlucHV0LmN1cnJlbmN5LlxuICBnZXRWYXJpYWJsZXM6IChfbm9kZSwgdmFsdWVzKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlucHV0OiB7XG4gICAgICAgIG5hbWU6IHZhbHVlcy5uYW1lLFxuICAgICAgfSxcbiAgICB9O1xuICB9LFxufSk7XG5cbmRlZmluZUJhY2tvZmZpY2VGb3JtTXV0YXRpb25BY3Rpb248XG4gIFRlc3RDcmVhdGVPcmdhbml6YXRpb25PcGVyYXRpb24sXG4gIG51bGwsXG4gIHsgbmFtZTogc3RyaW5nOyBjdXJyZW5jeTogJ0dCUCcgfVxuPigpKHtcbiAgaWQ6ICdpbnZhbGlkLWN1cnJlbmN5JyxcbiAga2luZDogJ2Zvcm1NdXRhdGlvbicsXG4gIGxhYmVsLFxuICBtdXRhdGlvbjoge30gYXMgbmV2ZXIsXG4gIGZpZWxkczogW10sXG4gIC8vIEB0cy1leHBlY3QtZXJyb3IgY3JlYXRlIG9yZ2FuaXphdGlvbiBjdXJyZW5jeSBtdXN0IGJlIG9uZSBvZiB0aGUgUmVsYXkgZ2VuZXJhdGVkIGVudW0gdmFsdWVzLlxuICBnZXRWYXJpYWJsZXM6IChfbm9kZSwgdmFsdWVzKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlucHV0OiB7XG4gICAgICAgIG5hbWU6IHZhbHVlcy5uYW1lLFxuICAgICAgICBjdXJyZW5jeTogdmFsdWVzLmN1cnJlbmN5LFxuICAgICAgfSxcbiAgICB9O1xuICB9LFxufSk7XG5cbmRlZmluZUJhY2tvZmZpY2VNdXRhdGlvbkFjdGlvbjxUZXN0QXJjaGl2ZU9wZXJhdGlvbiwgeyBpZDogc3RyaW5nIH0+KCkoe1xuICBpZDogJ2FyY2hpdmUnLFxuICBraW5kOiAnbXV0YXRpb24nLFxuICBsYWJlbCxcbiAgbXV0YXRpb246IHt9IGFzIG5ldmVyLFxuICBnZXRWYXJpYWJsZXM6IChub2RlKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiBub2RlLmlkLFxuICAgIH07XG4gIH0sXG59KTtcblxuZGVmaW5lQmFja29mZmljZU11dGF0aW9uQWN0aW9uPFRlc3RBcmNoaXZlT3BlcmF0aW9uLCB7IGlkOiBzdHJpbmcgfT4oKSh7XG4gIGlkOiAnYXJjaGl2ZS1taXNzaW5nLWlkJyxcbiAga2luZDogJ211dGF0aW9uJyxcbiAgbGFiZWwsXG4gIG11dGF0aW9uOiB7fSBhcyBuZXZlcixcbiAgLy8gQHRzLWV4cGVjdC1lcnJvciBtdXRhdGlvbiB2YXJpYWJsZXMgbXVzdCBpbmNsdWRlIHJlcXVpcmVkIGlkLlxuICBnZXRWYXJpYWJsZXM6ICgpID0+IHtcbiAgICByZXR1cm4ge307XG4gIH0sXG59KTtcblxuZXhwb3J0IGNvbnN0IHJlc3BvbnNpdmVNZXRhOiBCYWNrb2ZmaWNlTGlzdFJlc3BvbnNpdmVNZXRhSXRlbSA9IHtcbiAgaWQ6ICdzdGF0ZScsXG4gIGxhYmVsLFxuICB2YWx1ZTogJ3JlYWR5Jyxcbn07XG5cbmV4cG9ydCBjb25zdCBpbnZhbGlkUmVzcG9uc2l2ZU1ldGE6IEJhY2tvZmZpY2VMaXN0UmVzcG9uc2l2ZU1ldGFJdGVtID0ge1xuICBpZDogJ3N0YXRlJyxcbiAgLy8gQHRzLWV4cGVjdC1lcnJvciByZXNwb25zaXZlIG1ldGEgbGFiZWxzIG11c3QgYmUgaTE4biBsYWJlbCBmdW5jdGlvbnMsIG5vdCByYXcgc3RyaW5ncy5cbiAgbGFiZWw6ICdTdGF0ZScsXG4gIHZhbHVlOiAncmVhZHknLFxufTtcblxuZXhwb3J0IGNvbnN0IHRpdGxlTWV0YTogQmFja29mZmljZURldGFpbFRpdGxlTWV0YUl0ZW0gPSB7XG4gIGlkOiAnc3RhdGUnLFxuICBsYWJlbCxcbiAgdmFsdWU6ICdyZWFkeScsXG59O1xuXG5leHBvcnQgY29uc3QgaW52YWxpZFRpdGxlTWV0YTogQmFja29mZmljZURldGFpbFRpdGxlTWV0YUl0ZW0gPSB7XG4gIGlkOiAnc3RhdGUnLFxuICAvLyBAdHMtZXhwZWN0LWVycm9yIHRpdGxlIG1ldGEgbGFiZWxzIG11c3QgYmUgaTE4biBsYWJlbCBmdW5jdGlvbnMsIG5vdCByYXcgc3RyaW5ncy5cbiAgbGFiZWw6ICdTdGF0ZScsXG4gIHZhbHVlOiAncmVhZHknLFxufTtcblxuY29uc3QgZmlsdGVycyA9IGRlZmluZUJhY2tvZmZpY2VGaWx0ZXJzPFRlc3RMaXN0T3BlcmF0aW9uPigpKFtcbiAgZW50aXR5SWRGaWx0ZXI8QmFja29mZmljZU9wZXJhdGlvbldoZXJlPFRlc3RMaXN0T3BlcmF0aW9uPiwgJ3Byb2plY3RJZCc+KFxuICAgICdwcm9qZWN0SWQnLFxuICAgIHtcbiAgICAgIGVudGl0eTogJ3Byb2plY3RzJyxcbiAgICAgIGxhYmVsLFxuICAgIH0sXG4gICksXG4gIGVudW1GaWx0ZXI8QmFja29mZmljZU9wZXJhdGlvbldoZXJlPFRlc3RMaXN0T3BlcmF0aW9uPiwgJ2tpbmQnPigna2luZCcsIHtcbiAgICBsYWJlbCxcbiAgICBvcHRpb25zOiBbJ0EnLCAnQiddLFxuICB9KSxcbiAgbnVtYmVyRmlsdGVyPEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxUZXN0TGlzdE9wZXJhdGlvbj4sICdhdHRlbXB0Jz4oXG4gICAgJ2F0dGVtcHQnLFxuICAgIHtcbiAgICAgIGxhYmVsLFxuICAgIH0sXG4gICksXG4gIGRhdGV0aW1lRmlsdGVyPEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxUZXN0TGlzdE9wZXJhdGlvbj4sICdjcmVhdGVkRnJvbSc+KFxuICAgICdjcmVhdGVkRnJvbScsXG4gICAge1xuICAgICAgbGFiZWwsXG4gICAgICBtb2RlOiAnZnJvbScsXG4gICAgfSxcbiAgKSxcbl0pO1xuXG5kZWZpbmVCYWNrb2ZmaWNlU29ydHM8VGVzdExpc3RPcGVyYXRpb24+KCkoW3sgaWQ6ICdDUkVBVEVEX0FUX0RFU0MnLCBsYWJlbCB9XSk7XG5cbmRlZmluZUJhY2tvZmZpY2VDb25uZWN0aW9uTGlzdDxUZXN0TGlzdE9wZXJhdGlvbiwgVGVzdENvdW50T3BlcmF0aW9uPigpKHtcbiAgdGl0bGU6IGxhYmVsLFxuICBxdWVyeToge30gYXMgbmV2ZXIsXG4gIGZyYWdtZW50OiB7fSBhcyBuZXZlcixcbiAgY291bnQ6IHtcbiAgICBxdWVyeToge30gYXMgbmV2ZXIsXG4gICAgYnVpbGRWYXJpYWJsZXM6ICh7IHdoZXJlIH0pID0+IHtcbiAgICAgIHJldHVybiB7IHdoZXJlIH07XG4gICAgfSxcbiAgICBnZXRDb3VudDogKGRhdGEpID0+IHtcbiAgICAgIHJldHVybiAoZGF0YSBhcyBUZXN0Q291bnRPcGVyYXRpb25bJ3Jlc3BvbnNlJ10pLnJvd3NDb3VudDtcbiAgICB9LFxuICB9LFxuICBmaWx0ZXJzLFxuICBzb3J0czogZGVmaW5lQmFja29mZmljZVNvcnRzPFRlc3RMaXN0T3BlcmF0aW9uPigpKFtcbiAgICB7IGlkOiAnQ1JFQVRFRF9BVF9BU0MnLCBsYWJlbCB9LFxuICBdKSxcbiAgZGVmYXVsdFN0YXRlOiB7XG4gICAgd2hlcmU6IHsgcHJvamVjdElkOiAncHJvamVjdC0xJyB9LFxuICAgIHNvcnQ6ICdDUkVBVEVEX0FUX0RFU0MnLFxuICB9LFxuICBnZXRDb25uZWN0aW9uOiAoKSA9PiB7XG4gICAgcmV0dXJuIHsgZWRnZXM6IFtdIH07XG4gIH0sXG4gIHRvUm93OiAocm93KSA9PiB7XG4gICAgcmV0dXJuIHJvdztcbiAgfSxcbiAgZ2V0Um93SWQ6ICgpID0+IHtcbiAgICByZXR1cm4gJ3Jvdyc7XG4gIH0sXG4gIGNvbHVtbnM6IFtdLFxufSk7XG5cbmRlZmluZUJhY2tvZmZpY2VQaWNrZXI8VGVzdFBpY2tlck9wZXJhdGlvbj4oKSh7XG4gIHF1ZXJ5OiB7fSBhcyBuZXZlcixcbiAgZnJhZ21lbnQ6IHt9IGFzIG5ldmVyLFxuICBnZXRDb25uZWN0aW9uOiAoKSA9PiB7XG4gICAgcmV0dXJuIHsgZWRnZXM6IFtdIH07XG4gIH0sXG4gIHRvUm93OiAoKSA9PiB7XG4gICAgcmV0dXJuIHsgaWQ6ICdyb3cnLCB0aXRsZTogJ1JvdycgfTtcbiAgfSxcbiAgZ2V0Um93SWQ6IChyb3cpID0+IHtcbiAgICByZXR1cm4gcm93LmlkO1xuICB9LFxuICBidWlsZFF1ZXJ5VmFyaWFibGVzOiAoeyBzY29wZSB9KSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHdoZXJlOiB7XG4gICAgICAgIG9yZ2FuaXphdGlvbklkOiBzY29wZT8ub3JnYW5pemF0aW9uSWQsXG4gICAgICB9LFxuICAgICAgY291bnQ6IDIwLFxuICAgICAgY3Vyc29yOiBudWxsLFxuICAgIH07XG4gIH0sXG59KTtcblxuZGVmaW5lQmFja29mZmljZURhc2hib2FyZENvbmZpZyh7XG4gIHRpdGxlOiBsYWJlbCxcbiAgd2lkZ2V0czogW1xuICAgIGRlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRRdWVyeVdpZGdldDxUZXN0RGFzaGJvYXJkT3BlcmF0aW9uPigpKHtcbiAgICAgIGlkOiAndXNlcnMnLFxuICAgICAga2luZDogJ21ldHJpY0dyb3VwJyxcbiAgICAgIHF1ZXJ5OiB7fSBhcyBuZXZlcixcbiAgICAgIHZhcmlhYmxlczoge30sXG4gICAgICByZXNvbHZlOiAoZGF0YSkgPT4ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAndXNlcnMnLFxuICAgICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgICB2YWx1ZTogZGF0YS51c2Vycy50b3RhbENvdW50LFxuICAgICAgICAgICAgdGFyZ2V0OiBkZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkTGlzdFRhcmdldDxUZXN0TGlzdE9wZXJhdGlvbj4oKSh7XG4gICAgICAgICAgICAgIGVudGl0eUlkOiAndGFza3MnLFxuICAgICAgICAgICAgICBzdGF0ZToge1xuICAgICAgICAgICAgICAgIHdoZXJlOiB7IGtpbmQ6ICdBJyB9LFxuICAgICAgICAgICAgICAgIHNvcnQ6ICdDUkVBVEVEX0FUX0RFU0MnLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICAgIH0sXG4gICAgfSksXG4gICAgZGVmaW5lQmFja29mZmljZURhc2hib2FyZFN0YXRpY1dpZGdldCh7XG4gICAgICBpZDogJ3dpbmRvdycsXG4gICAgICBraW5kOiAnd2luZG93Q29udHJvbCcsXG4gICAgICB0aXRsZTogbGFiZWwsXG4gICAgfSksXG4gICAgZGVmaW5lQmFja29mZmljZURhc2hib2FyZFF1ZXJ5V2lkZ2V0PFRlc3REYXNoYm9hcmRXaW5kb3dPcGVyYXRpb24+KCkoe1xuICAgICAgaWQ6ICd0aHJvdWdocHV0JyxcbiAgICAgIGtpbmQ6ICd0cmVuZE1ldHJpYycsXG4gICAgICBxdWVyeToge30gYXMgbmV2ZXIsXG4gICAgICB2YXJpYWJsZXM6ICh7IHdpbmRvdyB9KSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZnJvbTogd2luZG93LmZyb20sXG4gICAgICAgICAgdG86IHdpbmRvdy50byxcbiAgICAgICAgICBzZXZlcml0eTogJ0EnLFxuICAgICAgICB9O1xuICAgICAgfSxcbiAgICAgIHJlc29sdmU6IChkYXRhKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgdmFsdWU6IGRhdGEudGhyb3VnaHB1dENvdW50LFxuICAgICAgICAgIGRlbHRhOiB7XG4gICAgICAgICAgICB2YWx1ZTogMTIsXG4gICAgICAgICAgICBkaXJlY3Rpb246ICd1cCcsXG4gICAgICAgICAgICB0b25lOiAnc3VjY2VzcycsXG4gICAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHNwYXJrbGluZTogW3sgeDogJzIwMjYtMDEtMDFUMDA6MDA6MDAuMDAwWicsIHk6IDEgfV0sXG4gICAgICAgICAgdGFyZ2V0OiBkZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkTGlzdFRhcmdldDxUZXN0TGlzdE9wZXJhdGlvbj4oKSh7XG4gICAgICAgICAgICBlbnRpdHlJZDogJ3Rhc2tzJyxcbiAgICAgICAgICAgIHN0YXRlOiB7XG4gICAgICAgICAgICAgIHdoZXJlOiB7IGtpbmQ6ICdBJyB9LFxuICAgICAgICAgICAgICBzb3J0OiAnQ1JFQVRFRF9BVF9ERVNDJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgIH07XG4gICAgICB9LFxuICAgIH0pLFxuICAgIGRlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRRdWVyeVdpZGdldDxUZXN0RGFzaGJvYXJkV2luZG93T3BlcmF0aW9uPigpKHtcbiAgICAgIGlkOiAnZmFpbHVyZS1yYXRlJyxcbiAgICAgIGtpbmQ6ICdzbGFHYXVnZScsXG4gICAgICBxdWVyeToge30gYXMgbmV2ZXIsXG4gICAgICB2YXJpYWJsZXM6ICh7IHdpbmRvdyB9KSA9PiB7XG4gICAgICAgIHJldHVybiB7IGZyb206IHdpbmRvdy5mcm9tLCB0bzogd2luZG93LnRvIH07XG4gICAgICB9LFxuICAgICAgcmVzb2x2ZTogKGRhdGEpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICB2YWx1ZTogZGF0YS5mYWlsdXJlUmF0ZSxcbiAgICAgICAgICBtYXg6IDEsXG4gICAgICAgICAgdGhyZXNob2xkOiAwLjA1LFxuICAgICAgICAgIHVuaXQ6ICclJyxcbiAgICAgICAgICB0b25lOiAnd2FybmluZycsXG4gICAgICAgIH07XG4gICAgICB9LFxuICAgIH0pLFxuICAgIGRlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRRdWVyeVdpZGdldDxUZXN0RGFzaGJvYXJkV2luZG93T3BlcmF0aW9uPigpKHtcbiAgICAgIGlkOiAndG9wLWZhaWx1cmVzJyxcbiAgICAgIGtpbmQ6ICdicmVha2Rvd25MaXN0JyxcbiAgICAgIHF1ZXJ5OiB7fSBhcyBuZXZlcixcbiAgICAgIHZhcmlhYmxlczogKHsgd2luZG93IH0pID0+IHtcbiAgICAgICAgcmV0dXJuIHsgZnJvbTogd2luZG93LmZyb20sIHRvOiB3aW5kb3cudG8gfTtcbiAgICAgIH0sXG4gICAgICByZXNvbHZlOiAoZGF0YSkgPT4ge1xuICAgICAgICByZXR1cm4gZGF0YS50b3BGYWlsdXJlcy5tYXAoKGZhaWx1cmUpID0+IHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaWQ6IGZhaWx1cmUuaWQsXG4gICAgICAgICAgICBsYWJlbDogKCkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gZmFpbHVyZS5sYWJlbDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB2YWx1ZTogZmFpbHVyZS5jb3VudCxcbiAgICAgICAgICAgIHRvbmU6ICdkYW5nZXInLFxuICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICB9KSxcbiAgICBkZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkUXVlcnlXaWRnZXQ8VGVzdERhc2hib2FyZFdpbmRvd09wZXJhdGlvbj4oKSh7XG4gICAgICBpZDogJ3RpbWVsaW5lJyxcbiAgICAgIGtpbmQ6ICd0aW1lbGluZUNoYXJ0JyxcbiAgICAgIHF1ZXJ5OiB7fSBhcyBuZXZlcixcbiAgICAgIHZhcmlhYmxlczogKHsgd2luZG93IH0pID0+IHtcbiAgICAgICAgcmV0dXJuIHsgZnJvbTogd2luZG93LmZyb20sIHRvOiB3aW5kb3cudG8gfTtcbiAgICAgIH0sXG4gICAgICBhcmlhTGFiZWw6IGxhYmVsLFxuICAgICAgY2hhcnQ6ICdiYXInLFxuICAgICAgcmVzb2x2ZTogKGRhdGEpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBzZXJpZXM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgaWQ6ICd0aHJvdWdocHV0JyxcbiAgICAgICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgICAgIGNvbG9yOiAnIzI1NjNlYicsXG4gICAgICAgICAgICAgIGRhdGE6IGRhdGEuYnVja2V0cy5tYXAoKGJ1Y2tldCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICB4OiBidWNrZXQuYnVja2V0LFxuICAgICAgICAgICAgICAgICAgeTogYnVja2V0LmNvdW50LFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9O1xuICAgICAgfSxcbiAgICB9KSxcbiAgICBkZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkUXVlcnlXaWRnZXQ8VGVzdERhc2hib2FyZFdpbmRvd09wZXJhdGlvbj4oKSh7XG4gICAgICBpZDogJ3Jpc2stcXVldWUnLFxuICAgICAga2luZDogJ3Jpc2tRdWV1ZScsXG4gICAgICBxdWVyeToge30gYXMgbmV2ZXIsXG4gICAgICB2YXJpYWJsZXM6ICh7IHdpbmRvdyB9KSA9PiB7XG4gICAgICAgIHJldHVybiB7IGZyb206IHdpbmRvdy5mcm9tLCB0bzogd2luZG93LnRvIH07XG4gICAgICB9LFxuICAgICAgcmVzb2x2ZTogKCkgPT4ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAnZGVhZC1vdXRib3gnLFxuICAgICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgICBzZXZlcml0eTogJ2RhbmdlcicsXG4gICAgICAgICAgICB2YWx1ZTogNCxcbiAgICAgICAgICB9LFxuICAgICAgICBdO1xuICAgICAgfSxcbiAgICB9KSxcbiAgICBkZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkUXVlcnlXaWRnZXQ8VGVzdERhc2hib2FyZFdpbmRvd09wZXJhdGlvbj4oKSh7XG4gICAgICBpZDogJ3Nwb3RsaWdodCcsXG4gICAgICBraW5kOiAnZW50aXR5U3BvdGxpZ2h0JyxcbiAgICAgIHF1ZXJ5OiB7fSBhcyBuZXZlcixcbiAgICAgIHZhcmlhYmxlczogKHsgd2luZG93IH0pID0+IHtcbiAgICAgICAgcmV0dXJuIHsgZnJvbTogd2luZG93LmZyb20sIHRvOiB3aW5kb3cudG8gfTtcbiAgICAgIH0sXG4gICAgICByZXNvbHZlOiAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgdGl0bGU6IGxhYmVsLFxuICAgICAgICAgIHRvbmU6ICdpbmZvJyxcbiAgICAgICAgICBtZXRhOiBbeyBpZDogJ2FnZScsIGxhYmVsLCB2YWx1ZTogJzQ1IG1pbicgfV0sXG4gICAgICAgIH07XG4gICAgICB9LFxuICAgIH0pLFxuICAgIGRlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRRdWVyeVdpZGdldDxUZXN0RGFzaGJvYXJkV2luZG93T3BlcmF0aW9uPigpKHtcbiAgICAgIGlkOiAnaGVhbHRoJyxcbiAgICAgIGtpbmQ6ICdoZWFsdGhNYXRyaXgnLFxuICAgICAgcXVlcnk6IHt9IGFzIG5ldmVyLFxuICAgICAgdmFyaWFibGVzOiAoeyB3aW5kb3cgfSkgPT4ge1xuICAgICAgICByZXR1cm4geyBmcm9tOiB3aW5kb3cuZnJvbSwgdG86IHdpbmRvdy50byB9O1xuICAgICAgfSxcbiAgICAgIHJlc29sdmU6ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogJ3dvcmsnLFxuICAgICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgICBjZWxsczogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaWQ6ICd0YXNrcycsXG4gICAgICAgICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgICAgICAgdmFsdWU6IDIsXG4gICAgICAgICAgICAgICAgdG9uZTogJ3dhcm5pbmcnLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICBdO1xuICAgICAgfSxcbiAgICB9KSxcbiAgICBkZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkU3RhdGljV2lkZ2V0KHtcbiAgICAgIGlkOiAnYWN0aW9ucycsXG4gICAgICBraW5kOiAncXVpY2tBY3Rpb25zJyxcbiAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGlkOiAndXNlcnMnLFxuICAgICAgICAgIGxhYmVsLFxuICAgICAgICAgIHRhcmdldDogZGVmaW5lQmFja29mZmljZURhc2hib2FyZEhyZWZUYXJnZXQoJy91c2VycycpLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KSxcbiAgXSxcbn0pO1xuXG5kZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkUXVlcnlXaWRnZXQ8VGVzdERhc2hib2FyZE9wZXJhdGlvbj4oKSh7XG4gIGlkOiAnaW52YWxpZC11c2VycycsXG4gIGtpbmQ6ICdtZXRyaWNHcm91cCcsXG4gIHF1ZXJ5OiB7fSBhcyBuZXZlcixcbiAgdmFyaWFibGVzOiB7fSxcbiAgcmVzb2x2ZTogKGRhdGEpID0+IHtcbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICBpZDogJ3VzZXJzJyxcbiAgICAgICAgbGFiZWwsXG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgZGFzaGJvYXJkIHdpZGdldCByZXNvbHZlIGRhdGEgaXMgdHlwZWQgZnJvbSB0aGUgb3BlcmF0aW9uIHJlc3BvbnNlLlxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1tZW1iZXItYWNjZXNzXG4gICAgICAgIHZhbHVlOiBkYXRhLnByb2plY3RzLnRvdGFsQ291bnQsXG4gICAgICB9LFxuICAgIF07XG4gIH0sXG59KTtcblxuZGVmaW5lQmFja29mZmljZURhc2hib2FyZFF1ZXJ5V2lkZ2V0PFRlc3REYXNoYm9hcmRXaW5kb3dPcGVyYXRpb24+KCkoe1xuICBpZDogJ2ludmFsaWQtd2luZG93LXZhcmlhYmxlcycsXG4gIGtpbmQ6ICd0cmVuZE1ldHJpYycsXG4gIHF1ZXJ5OiB7fSBhcyBuZXZlcixcbiAgLy8gQHRzLWV4cGVjdC1lcnJvciBkYXNoYm9hcmQgd2lkZ2V0IHZhcmlhYmxlcyBtdXN0IG1hdGNoIHRoZSBvcGVyYXRpb24gdmFyaWFibGVzLlxuICB2YXJpYWJsZXM6ICh7IHdpbmRvdyB9KSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGZyb206IHdpbmRvdy5mcm9tLFxuICAgIH07XG4gIH0sXG4gIHJlc29sdmU6IChkYXRhKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxhYmVsLFxuICAgICAgdmFsdWU6IGRhdGEudGhyb3VnaHB1dENvdW50LFxuICAgIH07XG4gIH0sXG59KTtcblxuZGVmaW5lQmFja29mZmljZURhc2hib2FyZExpc3RUYXJnZXQ8VGVzdExpc3RPcGVyYXRpb24+KCkoe1xuICBlbnRpdHlJZDogJ3Rhc2tzJyxcbiAgc3RhdGU6IHtcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yIGRhc2hib2FyZCBsaXN0IHRhcmdldCB3aGVyZSBtdXN0IG1hdGNoIHRoZSB0YXJnZXQgbGlzdCBvcGVyYXRpb24gd2hlcmUgaW5wdXQuXG4gICAgd2hlcmU6IHsgb3JnYW5pemF0aW9uSWQ6ICdvcmctMScgfSxcbiAgfSxcbn0pO1xuXG5kZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkTGlzdFRhcmdldDxUZXN0TGlzdE9wZXJhdGlvbj4oKSh7XG4gIGVudGl0eUlkOiAndGFza3MnLFxuICBzdGF0ZToge1xuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgZGFzaGJvYXJkIGxpc3QgdGFyZ2V0IHNvcnQgbXVzdCBtYXRjaCB0aGUgdGFyZ2V0IGxpc3Qgb3BlcmF0aW9uIHNvcnQgaW5wdXQuXG4gICAgc29ydDogJ1VQREFURURfQVRfREVTQycsXG4gIH0sXG59KTtcblxuZXhwb3J0IGNvbnN0IGludmFsaWREYXNoYm9hcmRDb25maWc6IEJhY2tvZmZpY2VEYXNoYm9hcmRDb25maWcgPSB7XG4gIHRpdGxlOiBsYWJlbCxcbiAgLy8gQHRzLWV4cGVjdC1lcnJvciBkYXNoYm9hcmQgY29uZmlncyBkbyBub3Qgc3VwcG9ydCBnbG9iYWwgcXVlcmllcy5cbiAgcXVlcnk6IHt9IGFzIG5ldmVyLFxuICB3aWRnZXRzOiBbXSxcbn07XG5cbi8vIEB0cy1leHBlY3QtZXJyb3IgZGF0YS1kcml2ZW4gZGFzaGJvYXJkIHdpZGdldHMgbXVzdCBkZWNsYXJlIGEgcXVlcnkuXG5kZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkUXVlcnlXaWRnZXQ8VGVzdERhc2hib2FyZE9wZXJhdGlvbj4oKSh7XG4gIGlkOiAnbWlzc2luZy1xdWVyeScsXG4gIGtpbmQ6ICdtZXRyaWNHcm91cCcsXG4gIHZhcmlhYmxlczoge30sXG4gIHJlc29sdmU6IChkYXRhKSA9PiB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAgaWQ6ICd1c2VycycsXG4gICAgICAgIGxhYmVsLFxuICAgICAgICB2YWx1ZTogZGF0YS51c2Vycy50b3RhbENvdW50LFxuICAgICAgfSxcbiAgICBdO1xuICB9LFxufSk7XG5cbmRlZmluZUJhY2tvZmZpY2VSZWxhdGlvbkZpbHRlcjxUZXN0TGlzdE9wZXJhdGlvbj4oKSh7XG4gIHRhcmdldDogJ3Byb2plY3RzJyxcbiAgd2hlcmVLZXk6ICdwcm9qZWN0SWQnLFxufSk7XG5cbmRlZmluZUJhY2tvZmZpY2VSZWxhdGlvbkZpbHRlcjxUZXN0TGlzdE9wZXJhdGlvbj4oKSh7XG4gIHRhcmdldDogJ3Byb2plY3RzJyxcbiAgLy8gQHRzLWV4cGVjdC1lcnJvciBvcmdhbml6YXRpb25JZCBpcyBub3QgZGVjbGFyZWQgYnkgdGhlIHRhcmdldCBsaXN0IHdoZXJlIGlucHV0LlxuICB3aGVyZUtleTogJ29yZ2FuaXphdGlvbklkJyxcbn0pO1xuXG5kZWZpbmVCYWNrb2ZmaWNlRmlsdGVyczxUZXN0TGlzdE9wZXJhdGlvbj4oKShbXG4gIC8vIEB0cy1leHBlY3QtZXJyb3IgbWlzc2luZ0ZpZWxkIGlzIG5vdCBkZWNsYXJlZCBieSB0aGUgb3BlcmF0aW9uIHdoZXJlIGlucHV0LlxuICBlbnRpdHlJZEZpbHRlcjxCYWNrb2ZmaWNlT3BlcmF0aW9uV2hlcmU8VGVzdExpc3RPcGVyYXRpb24+LCAnbWlzc2luZ0ZpZWxkJz4oXG4gICAgJ21pc3NpbmdGaWVsZCcsXG4gICAge1xuICAgICAgZW50aXR5OiAncHJvamVjdHMnLFxuICAgICAgbGFiZWwsXG4gICAgfSxcbiAgKSxcbl0pO1xuXG5kZWZpbmVCYWNrb2ZmaWNlRmlsdGVyczxUZXN0TGlzdE9wZXJhdGlvbj4oKShbXG4gIGVudW1GaWx0ZXI8QmFja29mZmljZU9wZXJhdGlvbldoZXJlPFRlc3RMaXN0T3BlcmF0aW9uPiwgJ2tpbmQnPigna2luZCcsIHtcbiAgICBsYWJlbCxcbiAgICBvcHRpb25zOiBbXG4gICAgICAnQScsXG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIEMgaXMgbm90IGEgdmFsaWQgVGVzdEtpbmQgdmFsdWUuXG4gICAgICAnQycsXG4gICAgXSxcbiAgfSksXG5dKTtcblxuZGVmaW5lQmFja29mZmljZUZpbHRlcnM8VGVzdExpc3RPcGVyYXRpb24+KCkoW1xuICAvLyBAdHMtZXhwZWN0LWVycm9yIGtpbmQgaXMgYW4gZW51bSBzdHJpbmcgZmllbGQsIG5vdCBhIG51bWJlciBmaWVsZC5cbiAgbnVtYmVyRmlsdGVyPEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxUZXN0TGlzdE9wZXJhdGlvbj4sICdraW5kJz4oJ2tpbmQnLCB7XG4gICAgbGFiZWwsXG4gIH0pLFxuXSk7XG5cbmRlZmluZUJhY2tvZmZpY2VGaWx0ZXJzPFRlc3RMaXN0T3BlcmF0aW9uPigpKFtcbiAgLy8gQHRzLWV4cGVjdC1lcnJvciBhdHRlbXB0IGlzIGEgbnVtYmVyIGZpZWxkLCBub3QgYSBkYXRldGltZSBzdHJpbmcgZmllbGQuXG4gIGRhdGV0aW1lRmlsdGVyPEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxUZXN0TGlzdE9wZXJhdGlvbj4sICdhdHRlbXB0Jz4oXG4gICAgJ2F0dGVtcHQnLFxuICAgIHtcbiAgICAgIGxhYmVsLFxuICAgIH0sXG4gICksXG5dKTtcblxuZGVmaW5lQmFja29mZmljZVNvcnRzPFRlc3RMaXN0T3BlcmF0aW9uPigpKFtcbiAgLy8gQHRzLWV4cGVjdC1lcnJvciBVUERBVEVEX0FUX0RFU0MgaXMgbm90IGRlY2xhcmVkIGJ5IHRoZSBvcGVyYXRpb24gc29ydC5cbiAgeyBpZDogJ1VQREFURURfQVRfREVTQycsIGxhYmVsIH0sXG5dKTtcblxuZGVmaW5lQmFja29mZmljZUNvbm5lY3Rpb25MaXN0PFRlc3RMaXN0T3BlcmF0aW9uLCBUZXN0Q291bnRPcGVyYXRpb24+KCkoe1xuICB0aXRsZTogbGFiZWwsXG4gIHF1ZXJ5OiB7fSBhcyBuZXZlcixcbiAgZnJhZ21lbnQ6IHt9IGFzIG5ldmVyLFxuICBjb3VudDoge1xuICAgIHF1ZXJ5OiB7fSBhcyBuZXZlcixcbiAgICBidWlsZFZhcmlhYmxlczogKHsgd2hlcmUgfSkgPT4ge1xuICAgICAgcmV0dXJuIHsgd2hlcmUgfTtcbiAgICB9LFxuICAgIGdldENvdW50OiAoZGF0YSkgPT4ge1xuICAgICAgcmV0dXJuIChkYXRhIGFzIFRlc3RDb3VudE9wZXJhdGlvblsncmVzcG9uc2UnXSkucm93c0NvdW50O1xuICAgIH0sXG4gIH0sXG4gIGZpbHRlcnMsXG4gIHNvcnRzOiBkZWZpbmVCYWNrb2ZmaWNlU29ydHM8VGVzdExpc3RPcGVyYXRpb24+KCkoW1xuICAgIHsgaWQ6ICdDUkVBVEVEX0FUX0FTQycsIGxhYmVsIH0sXG4gIF0pLFxuICBkZWZhdWx0U3RhdGU6IHtcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yIG9yZ2FuaXphdGlvbklkIGlzIG5vdCBkZWNsYXJlZCBieSB0aGUgbGlzdCB3aGVyZSBpbnB1dC5cbiAgICB3aGVyZTogeyBvcmdhbml6YXRpb25JZDogJ29yZy0xJyB9LFxuICAgIHNvcnQ6ICdDUkVBVEVEX0FUX0FTQycsXG4gIH0sXG4gIGdldENvbm5lY3Rpb246ICgpID0+IHtcbiAgICByZXR1cm4geyBlZGdlczogW10gfTtcbiAgfSxcbiAgdG9Sb3c6IChyb3cpID0+IHtcbiAgICByZXR1cm4gcm93O1xuICB9LFxuICBnZXRSb3dJZDogKCkgPT4ge1xuICAgIHJldHVybiAncm93JztcbiAgfSxcbiAgY29sdW1uczogW10sXG59KTtcblxuZGVmaW5lQmFja29mZmljZVBpY2tlcjxUZXN0UGlja2VyT3BlcmF0aW9uPigpKHtcbiAgcXVlcnk6IHt9IGFzIG5ldmVyLFxuICBmcmFnbWVudDoge30gYXMgbmV2ZXIsXG4gIGdldENvbm5lY3Rpb246ICgpID0+IHtcbiAgICByZXR1cm4geyBlZGdlczogW10gfTtcbiAgfSxcbiAgdG9Sb3c6ICgpID0+IHtcbiAgICByZXR1cm4geyBpZDogJ3JvdycsIHRpdGxlOiAnUm93JyB9O1xuICB9LFxuICBnZXRSb3dJZDogKHJvdykgPT4ge1xuICAgIHJldHVybiByb3cuaWQ7XG4gIH0sXG4gIC8vIEB0cy1leHBlY3QtZXJyb3IgcmV0dXJuZWQgd2hlcmUgc2hhcGUgaXMgbm90IGRlY2xhcmVkIGJ5IHRoZSBwaWNrZXIgb3BlcmF0aW9uLlxuICBidWlsZFF1ZXJ5VmFyaWFibGVzOiAoeyBzY29wZSB9KSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHdoZXJlOiB7XG4gICAgICAgIHByb2plY3RJZDogKHNjb3BlIGFzIHsgcHJvamVjdElkPzogc3RyaW5nIH0gfCB1bmRlZmluZWQpPy5wcm9qZWN0SWQsXG4gICAgICB9LFxuICAgICAgY291bnQ6IDIwLFxuICAgICAgY3Vyc29yOiBudWxsLFxuICAgIH07XG4gIH0sXG59KTtcbiJdfQ==
666
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0aW9uLWJvdW5kLWNvbmZpZy50ZXN0LWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHlwZS10ZXN0cy9vcGVyYXRpb24tYm91bmQtY29uZmlnLnRlc3QtZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzVFLE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsOEJBQThCLEVBQzlCLCtCQUErQixFQUMvQixtQ0FBbUMsRUFDbkMsbUNBQW1DLEVBQ25DLG9DQUFvQyxFQUNwQyxxQ0FBcUMsRUFDckMsa0NBQWtDLEVBQ2xDLHVCQUF1QixFQUN2Qiw4QkFBOEIsRUFDOUIsc0JBQXNCLEVBQ3RCLDhCQUE4QixFQUM5QixxQkFBcUIsRUFDckIsY0FBYyxFQUNkLGNBQWMsRUFDZCxVQUFVLEVBQ1YsWUFBWSxHQUNiLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFxSDVFLE1BQU0sS0FBSyxHQUFjLENBQUMsQ0FBQyxFQUFFLEVBQUU7SUFDN0IsT0FBTyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDM0IsQ0FBQyxDQUFDO0FBRUYsTUFBTSxtQkFBbUIsR0FBRyxZQUFZLENBQUM7SUFDdkMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztDQUMxQixDQUFDLENBQUM7QUFFSCxNQUFNLGtCQUFrQixHQUFHLDhCQUE4QixFQUFxQixDQUFDO0lBQzdFLFFBQVEsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFO0lBQ2xELFlBQVksRUFBRTtRQUNaLE1BQU0sRUFBRSxtQkFBbUI7UUFDM0IsT0FBTyxFQUFFLENBQUMs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VztJQUNsQixRQUFRLEVBQUUsRUFBVztJQUNyQixhQUFhLEVBQUUsR0FBRyxFQUFFO1FBQ2xCLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUNELEtBQUssRUFBRSxHQUFHLEVBQUU7UUFDVixPQUFPLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUNELFFBQVEsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO1FBQ2hCLE9BQU8sR0FBRyxDQUFDLEVBQUUsQ0FBQztJQUNoQixDQUFDO0lBRUQsbUJBQW1CLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7UUFDakMsT0FBTztZQUNMLEtBQUssRUFBRTtnQkFDTCxTQUFTLEVBQUcsS0FBNEMsRUFBRSxTQUFTO2FBQ3BFO1lBQ0QsS0FBSyxFQUFFLEVBQUU7WUFDVCxNQUFNLEVBQUUsSUFBSTtTQUNiLENBQUM7SUFDSixDQUFDO0NBQ0YsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBPcGVyYXRpb25UeXBlIH0gZnJvbSAncmVsYXktcnVudGltZSc7XG5pbXBvcnQgeyBkZWZpbmVTY2hlbWEsIHN0cmluZ0ZpZWxkIH0gZnJvbSAnQHBsdW1pbGUvZmlsdGVyLXF1ZXJ5L3NjaGVtYS5qcyc7XG5pbXBvcnQge1xuICBjcmVhdGVMaXN0RGV0YWlsTWFuaWZlc3QsXG4gIGRlZmluZUJhY2tvZmZpY2VDb25uZWN0aW9uTGlzdCxcbiAgZGVmaW5lQmFja29mZmljZURhc2hib2FyZENvbmZpZyxcbiAgZGVmaW5lQmFja29mZmljZURhc2hib2FyZEhyZWZUYXJnZXQsXG4gIGRlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRMaXN0VGFyZ2V0LFxuICBkZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkUXVlcnlXaWRnZXQsXG4gIGRlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRTdGF0aWNXaWRnZXQsXG4gIGRlZmluZUJhY2tvZmZpY2VGb3JtTXV0YXRpb25BY3Rpb24sXG4gIGRlZmluZUJhY2tvZmZpY2VGaWx0ZXJzLFxuICBkZWZpbmVCYWNrb2ZmaWNlTXV0YXRpb25BY3Rpb24sXG4gIGRlZmluZUJhY2tvZmZpY2VQaWNrZXIsXG4gIGRlZmluZUJhY2tvZmZpY2VSZWxhdGlvbkZpbHRlcixcbiAgZGVmaW5lQmFja29mZmljZVNvcnRzLFxuICBkYXRldGltZUZpbHRlcixcbiAgZW50aXR5SWRGaWx0ZXIsXG4gIGVudW1GaWx0ZXIsXG4gIG51bWJlckZpbHRlcixcbn0gZnJvbSAnLi4vYnVpbGRlcnMuanMnO1xuaW1wb3J0IHsgZGVmaW5lQmFja29mZmljZUxpc3ROYXZpZ2F0aW9uIH0gZnJvbSAnLi4vc3RhdGUvbGlzdE5hdmlnYXRpb24uanMnO1xuaW1wb3J0IHR5cGUge1xuICBCYWNrb2ZmaWNlRGFzaGJvYXJkQ29uZmlnLFxuICBCYWNrb2ZmaWNlRGV0YWlsVGl0bGVNZXRhSXRlbSxcbiAgQmFja29mZmljZUVudGl0eU1hbmlmZXN0SXRlbSxcbiAgQmFja29mZmljZU1hbmlmZXN0TGlzdFN0YXRlSW5wdXQsXG4gIEJhY2tvZmZpY2VMaXN0UmVzcG9uc2l2ZU1ldGFJdGVtLFxuICBCYWNrb2ZmaWNlT3BlcmF0aW9uV2hlcmUsXG4gIEkxOG5MYWJlbCxcbn0gZnJvbSAnLi4vdHlwZXMuanMnO1xuXG50eXBlIFRlc3RTb3J0ID0gJ0NSRUFURURfQVRfQVNDJyB8ICdDUkVBVEVEX0FUX0RFU0MnO1xudHlwZSBUZXN0S2luZCA9ICdBJyB8ICdCJztcbnR5cGUgVGVzdEN1cnJlbmN5ID0gJ0VVUicgfCAnVVNEJztcblxuaW50ZXJmYWNlIFRlc3RMaXN0T3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSB7XG4gIHZhcmlhYmxlczoge1xuICAgIHdoZXJlPzoge1xuICAgICAgcHJvamVjdElkPzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgICAgIGtpbmQ/OiBUZXN0S2luZCB8IG51bGwgfCB1bmRlZmluZWQ7XG4gICAgICBhdHRlbXB0PzogbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgICAgIGNyZWF0ZWRGcm9tPzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgICB9IHwgbnVsbDtcbiAgICBzb3J0PzogVGVzdFNvcnQgfCBudWxsIHwgdW5kZWZpbmVkO1xuICAgIGNvdW50OiBudW1iZXI7XG4gICAgY3Vyc29yPzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgfTtcbiAgcmVzcG9uc2U6IHtcbiAgICByZWFkb25seSByb3dzOiByZWFkb25seSB1bmtub3duW107XG4gIH07XG59XG5cbmludGVyZmFjZSBUZXN0UGlja2VyT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSB7XG4gIHZhcmlhYmxlczoge1xuICAgIHdoZXJlPzoge1xuICAgICAgb3JnYW5pemF0aW9uSWQ/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuICAgIH0gfCBudWxsO1xuICAgIGNvdW50OiBudW1iZXI7XG4gICAgY3Vyc29yPzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgfTtcbiAgcmVzcG9uc2U6IHtcbiAgICByZWFkb25seSByb3dzOiByZWFkb25seSB1bmtub3duW107XG4gIH07XG59XG5cbmludGVyZmFjZSBUZXN0Q291bnRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlIHtcbiAgdmFyaWFibGVzOiB7XG4gICAgd2hlcmU/OiBCYWNrb2ZmaWNlT3BlcmF0aW9uV2hlcmU8VGVzdExpc3RPcGVyYXRpb24+IHwgbnVsbDtcbiAgfTtcbiAgcmVzcG9uc2U6IHtcbiAgICByZWFkb25seSByb3dzQ291bnQ6IG51bWJlcjtcbiAgfTtcbn1cblxuaW50ZXJmYWNlIFRlc3REYXNoYm9hcmRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlIHtcbiAgdmFyaWFibGVzOiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj47XG4gIHJlc3BvbnNlOiB7XG4gICAgcmVhZG9ubHkgdXNlcnM6IHtcbiAgICAgIHJlYWRvbmx5IHRvdGFsQ291bnQ6IG51bWJlcjtcbiAgICB9O1xuICB9O1xufVxuXG5pbnRlcmZhY2UgVGVzdERhc2hib2FyZFdpbmRvd09wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUge1xuICB2YXJpYWJsZXM6IHtcbiAgICBmcm9tOiBzdHJpbmc7XG4gICAgdG86IHN0cmluZztcbiAgICBzZXZlcml0eT86IFRlc3RLaW5kIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgfTtcbiAgcmVzcG9uc2U6IHtcbiAgICByZWFkb25seSB0aHJvdWdocHV0Q291bnQ6IG51bWJlcjtcbiAgICByZWFkb25seSBmYWlsdXJlUmF0ZTogbnVtYmVyO1xuICAgIHJlYWRvbmx5IHRvcEZhaWx1cmVzOiByZWFkb25seSB7XG4gICAgICByZWFkb25seSBpZDogc3RyaW5nO1xuICAgICAgcmVhZG9ubHkgbGFiZWw6IHN0cmluZztcbiAgICAgIHJlYWRvbmx5IGNvdW50OiBudW1iZXI7XG4gICAgfVtdO1xuICAgIHJlYWRvbmx5IGJ1Y2tldHM6IHJlYWRvbmx5IHtcbiAgICAgIHJlYWRvbmx5IGJ1Y2tldDogc3RyaW5nO1xuICAgICAgcmVhZG9ubHkgY291bnQ6IG51bWJlcjtcbiAgICB9W107XG4gIH07XG59XG5cbmludGVyZmFjZSBUZXN0Q3JlYXRlT3JnYW5pemF0aW9uT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSB7XG4gIHZhcmlhYmxlczoge1xuICAgIGlucHV0OiB7XG4gICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICBjdXJyZW5jeTogVGVzdEN1cnJlbmN5O1xuICAgIH07XG4gIH07XG4gIHJlc3BvbnNlOiB7XG4gICAgcmVhZG9ubHkgY3JlYXRlT3JnYW5pemF0aW9uOiB7XG4gICAgICByZWFkb25seSBzdGF0dXM6IHN0cmluZztcbiAgICAgIHJlYWRvbmx5IG9yZ2FuaXphdGlvbjoge1xuICAgICAgICByZWFkb25seSBpZDogc3RyaW5nO1xuICAgICAgfSB8IG51bGw7XG4gICAgfTtcbiAgfTtcbn1cblxuaW50ZXJmYWNlIFRlc3RBcmNoaXZlT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSB7XG4gIHZhcmlhYmxlczoge1xuICAgIGlkOiBzdHJpbmc7XG4gIH07XG4gIHJlc3BvbnNlOiB7XG4gICAgcmVhZG9ubHkgYXJjaGl2ZToge1xuICAgICAgcmVhZG9ubHkgc3RhdHVzOiBzdHJpbmc7XG4gICAgfTtcbiAgfTtcbn1cblxudHlwZSBUZXN0Q3JlYXRlT3JnYW5pemF0aW9uRm9ybVZhbHVlcyA9IHtcbiAgbmFtZTogc3RyaW5nO1xuICBjdXJyZW5jeTogVGVzdEN1cnJlbmN5O1xufTtcblxuY29uc3QgbGFiZWw6IEkxOG5MYWJlbCA9ICh0KSA9PiB7XG4gIHJldHVybiB0KCdjb21tb24ubGFiZWwnKTtcbn07XG5cbmNvbnN0IHRlc3RMaXN0UXVlcnlTY2hlbWEgPSBkZWZpbmVTY2hlbWEoe1xuICBwcm9qZWN0SWQ6IHN0cmluZ0ZpZWxkKFsnZXEnXSksXG4gIGtpbmQ6IHN0cmluZ0ZpZWxkKFsnZXEnXSksXG59KTtcblxuY29uc3QgdGVzdExpc3ROYXZpZ2F0aW9uID0gZGVmaW5lQmFja29mZmljZUxpc3ROYXZpZ2F0aW9uPFRlc3RMaXN0T3BlcmF0aW9uPigpKHtcbiAgZGVmYXVsdHM6IHsgd2hlcmU6IG51bGwsIHNvcnQ6ICdDUkVBVEVEX0FUX0RFU0MnIH0sXG4gIGZpbHRlclNjaGVtYToge1xuICAgIHNjaGVtYTogdGVzdExpc3RRdWVyeVNjaGVtYSxcbiAgICB0b1doZXJlOiAoZmlsdGVycykgPT4ge1xuICAgICAgY29uc3QgcmF3S2luZCA9IGZpbHRlcnMua2luZD8uZXE7XG4gICAgICBsZXQga2luZDogVGVzdEtpbmQgfCB1bmRlZmluZWQ7XG4gICAgICBpZiAocmF3S2luZCA9PT0gJ0EnIHx8IHJhd0tpbmQgPT09ICdCJykge1xuICAgICAgICBraW5kID0gcmF3S2luZDtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHByb2plY3RJZDogZmlsdGVycy5wcm9qZWN0SWQ/LmVxLFxuICAgICAgICBraW5kLFxuICAgICAgfTtcbiAgICB9LFxuICAgIGZyb21XaGVyZTogKHdoZXJlKSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBwcm9qZWN0SWQ6IHsgZXE6IHdoZXJlPy5wcm9qZWN0SWQgPz8gdW5kZWZpbmVkIH0sXG4gICAgICAgIGtpbmQ6IHsgZXE6IHdoZXJlPy5raW5kID8/IHVuZGVmaW5lZCB9LFxuICAgICAgfTtcbiAgICB9LFxuICB9LFxuICBzb3J0SWRzOiBbJ0NSRUFURURfQVRfQVNDJywgJ0NSRUFURURfQVRfREVTQyddLFxufSk7XG5cbnRlc3RMaXN0TmF2aWdhdGlvbi5lbmNvZGUoe1xuICB3aGVyZTogeyBwcm9qZWN0SWQ6ICdwcm9qZWN0LTEnLCBraW5kOiAnQScgfSxcbiAgc29ydDogJ0NSRUFURURfQVRfQVNDJyxcbn0pO1xuXG50ZXN0TGlzdE5hdmlnYXRpb24uZW5jb2RlKHtcbiAgLy8gQHRzLWV4cGVjdC1lcnJvciBsaXN0IG5hdmlnYXRpb24gc3RhdGUgaXMgZXhhY3QgdG8gdGhlIG9wZXJhdGlvbiB3aGVyZSBpbnB1dC5cbiAgd2hlcmU6IHsgc3RhdHVzOiAnT1BFTicgfSxcbn0pO1xuXG50ZXN0TGlzdE5hdmlnYXRpb24uZGVjb2RlKHtcbiAgLy8gQHRzLWV4cGVjdC1lcnJvciBsaXN0IG5hdmlnYXRpb24gZmlsdGVycyBhcmUgZXhhY3QgdG8gdGhlIGRlc3RpbmF0aW9uIHNjaGVtYS5cbiAgZmlsdGVyczogeyBtaXNzaW5nOiB7IGVxOiAndmFsdWUnIH0gfSxcbn0pO1xuXG5jb25zdCB0eXBlZExpc3RNYW5pZmVzdCA9IGNyZWF0ZUxpc3REZXRhaWxNYW5pZmVzdCh7XG4gIGlkOiAndGFza3MnLFxuICByb3V0ZVNlZ21lbnQ6ICd0YXNrcycsXG4gIGxhYmVsLFxuICByb3V0ZXM6IHtcbiAgICBsaXN0OiAnL3Rhc2tzJyxcbiAgICBkZXRhaWw6IChpZCkgPT4ge1xuICAgICAgcmV0dXJuIGAvdGFza3MvJHtpZH1gO1xuICAgIH0sXG4gICAgZGV0YWlsUGFnZTogKGlkLCBwYWdlSWQpID0+IHtcbiAgICAgIHJldHVybiBgL3Rhc2tzLyR7aWR9LyR7cGFnZUlkfWA7XG4gICAgfSxcbiAgfSxcbiAgaGFzTGlzdDogdHJ1ZSxcbiAgbGlzdE5hdmlnYXRpb246IHRlc3RMaXN0TmF2aWdhdGlvbixcbiAgZGV0YWlsUGFnZXM6IFtcbiAgICB7XG4gICAgICBpZDogJ292ZXJ2aWV3JyxcbiAgICAgIHBhdGhTZWdtZW50OiAnb3ZlcnZpZXcnLFxuICAgICAgbGFiZWwsXG4gICAgICBpc0RlZmF1bHQ6IHRydWUsXG4gICAgfSxcbiAgXSxcbiAgZGVmYXVsdERldGFpbFBhZ2VJZDogJ292ZXJ2aWV3JyxcbiAgZmFjZXRzOiB7XG4gICAgbGlzdDogYXN5bmMgKCkgPT4ge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCd0eXBlIHRlc3QnKTtcbiAgICB9LFxuICAgIGRldGFpbExheW91dDogYXN5bmMgKCkgPT4ge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCd0eXBlIHRlc3QnKTtcbiAgICB9LFxuICAgIGRldGFpbFBhZ2U6IGFzeW5jICgpID0+IHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigndHlwZSB0ZXN0Jyk7XG4gICAgfSxcbiAgfSxcbn0pO1xuXG5jb25zdCBydW50aW1lTGlzdE1hbmlmZXN0OiBCYWNrb2ZmaWNlRW50aXR5TWFuaWZlc3RJdGVtID0gdHlwZWRMaXN0TWFuaWZlc3Q7XG5leHBvcnQgY29uc3QgcnVudGltZUxpc3RNYW5pZmVzdElkID0gcnVudGltZUxpc3RNYW5pZmVzdC5pZDtcblxudHlwZSBUeXBlZExpc3RTdGF0ZSA9IEJhY2tvZmZpY2VNYW5pZmVzdExpc3RTdGF0ZUlucHV0PFxuICB7IHRhc2tzOiB0eXBlb2YgdHlwZWRMaXN0TWFuaWZlc3QgfSxcbiAgJ3Rhc2tzJ1xuPjtcblxuZXhwb3J0IGNvbnN0IHR5cGVkTGlzdFN0YXRlOiBUeXBlZExpc3RTdGF0ZSA9IHtcbiAgd2hlcmU6IHsgcHJvamVjdElkOiAncHJvamVjdC0xJyB9LFxuICBzb3J0OiAnQ1JFQVRFRF9BVF9BU0MnLFxufTtcblxuZXhwb3J0IGNvbnN0IGludmFsaWRUeXBlZExpc3RTdGF0ZTogVHlwZWRMaXN0U3RhdGUgPSB7XG4gIC8vIEB0cy1leHBlY3QtZXJyb3IgbWFuaWZlc3QtZGVyaXZlZCBsaXN0IHN0YXRlIHJlamVjdHMgdW5rbm93biB3aGVyZSBmaWVsZHMuXG4gIHdoZXJlOiB7IHN0YXR1czogJ09QRU4nIH0sXG59O1xuXG5leHBvcnQgY29uc3QgcnVudGltZUxpc3RTdGF0ZTogQmFja29mZmljZU1hbmlmZXN0TGlzdFN0YXRlSW5wdXQ8XG4gIFJlY29yZDxzdHJpbmcsIEJhY2tvZmZpY2VFbnRpdHlNYW5pZmVzdEl0ZW0+LFxuICBzdHJpbmdcbj4gPSB7XG4gIHdoZXJlOiB7IHN0YXR1czogJ09QRU4nIH0sXG4gIHNvcnQ6ICdDUkVBVEVEX0FUX0RFU0MnLFxufTtcblxuLy8gQHRzLWV4cGVjdC1lcnJvciBsaXN0IG1hbmlmZXN0cyByZXF1aXJlIHN5bmNocm9ub3VzIGxpc3QgbmF2aWdhdGlvbi5cbmNyZWF0ZUxpc3REZXRhaWxNYW5pZmVzdCh7XG4gIGlkOiAndGFza3MnLFxuICByb3V0ZVNlZ21lbnQ6ICd0YXNrcycsXG4gIGxhYmVsLFxuICByb3V0ZXM6IHtcbiAgICBsaXN0OiAnL3Rhc2tzJyxcbiAgICBkZXRhaWw6IChpZCkgPT4ge1xuICAgICAgcmV0dXJuIGAvdGFza3MvJHtpZH1gO1xuICAgIH0sXG4gICAgZGV0YWlsUGFnZTogKGlkLCBwYWdlSWQpID0+IHtcbiAgICAgIHJldHVybiBgL3Rhc2tzLyR7aWR9LyR7cGFnZUlkfWA7XG4gICAgfSxcbiAgfSxcbiAgaGFzTGlzdDogdHJ1ZSxcbiAgZGV0YWlsUGFnZXM6IHR5cGVkTGlzdE1hbmlmZXN0LmRldGFpbFBhZ2VzLFxuICBkZWZhdWx0RGV0YWlsUGFnZUlkOiB0eXBlZExpc3RNYW5pZmVzdC5kZWZhdWx0RGV0YWlsUGFnZUlkLFxuICBmYWNldHM6IHtcbiAgICBsaXN0OiB0eXBlZExpc3RNYW5pZmVzdC5mYWNldHMubGlzdCxcbiAgICBkZXRhaWxMYXlvdXQ6IGFzeW5jICgpID0+IHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigndHlwZSB0ZXN0Jyk7XG4gICAgfSxcbiAgICBkZXRhaWxQYWdlOiBhc3luYyAoKSA9PiB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3R5cGUgdGVzdCcpO1xuICAgIH0sXG4gIH0sXG59KTtcblxuY3JlYXRlTGlzdERldGFpbE1hbmlmZXN0KHtcbiAgLi4udHlwZWRMaXN0TWFuaWZlc3QsXG4gIC8vIEB0cy1leHBlY3QtZXJyb3IgbGlzdCBuYXZpZ2F0aW9uIG11c3QgcHJvdmlkZSB0aGUgY29tcGxldGUgc3luY2hyb25vdXMgY29udHJhY3QuXG4gIGxpc3ROYXZpZ2F0aW9uOiB7IGtpbmQ6ICdsaXN0LW5hdmlnYXRpb24nIH0sXG59KTtcblxuY3JlYXRlTGlzdERldGFpbE1hbmlmZXN0KHtcbiAgLi4udHlwZWRMaXN0TWFuaWZlc3QsXG4gIC8vIEB0cy1leHBlY3QtZXJyb3IgbGlzdC1kZXRhaWwgbWFuaWZlc3RzIHJlcXVpcmUgYXQgbGVhc3Qgb25lIGRldGFpbCBwYWdlLlxuICBkZXRhaWxQYWdlczogW10sXG59KTtcblxuLy8gQHRzLWV4cGVjdC1lcnJvciBsaXN0IG1hbmlmZXN0cyByZXF1aXJlIGEgbGlzdCBmYWNldCBsb2FkZXIuXG5jcmVhdGVMaXN0RGV0YWlsTWFuaWZlc3Qoe1xuICAuLi50eXBlZExpc3RNYW5pZmVzdCxcbiAgZmFjZXRzOiB7XG4gICAgZGV0YWlsTGF5b3V0OiB0eXBlZExpc3RNYW5pZmVzdC5mYWNldHMuZGV0YWlsTGF5b3V0LFxuICAgIGRldGFpbFBhZ2U6IHR5cGVkTGlzdE1hbmlmZXN0LmZhY2V0cy5kZXRhaWxQYWdlLFxuICB9LFxufSk7XG5cbmNyZWF0ZUxpc3REZXRhaWxNYW5pZmVzdCh7XG4gIC4uLnR5cGVkTGlzdE1hbmlmZXN0LFxuICAvLyBAdHMtZXhwZWN0LWVycm9yIGxpc3QtZGV0YWlsIG1hbmlmZXN0cyByZXF1aXJlIGEgZGV0YWlsLWxheW91dCBmYWNldCBsb2FkZXIuXG4gIGZhY2V0czoge1xuICAgIGxpc3Q6IHR5cGVkTGlzdE1hbmlmZXN0LmZhY2V0cy5saXN0LFxuICAgIGRldGFpbFBhZ2U6IHR5cGVkTGlzdE1hbmlmZXN0LmZhY2V0cy5kZXRhaWxQYWdlLFxuICB9LFxufSk7XG5cbmNyZWF0ZUxpc3REZXRhaWxNYW5pZmVzdCh7XG4gIC4uLnR5cGVkTGlzdE1hbmlmZXN0LFxuICAvLyBAdHMtZXhwZWN0LWVycm9yIGxpc3QtZGV0YWlsIG1hbmlmZXN0cyByZXF1aXJlIGEgZGV0YWlsLXBhZ2UgZmFjZXQgbG9hZGVyLlxuICBmYWNldHM6IHtcbiAgICBsaXN0OiB0eXBlZExpc3RNYW5pZmVzdC5mYWNldHMubGlzdCxcbiAgICBkZXRhaWxMYXlvdXQ6IHR5cGVkTGlzdE1hbmlmZXN0LmZhY2V0cy5kZXRhaWxMYXlvdXQsXG4gIH0sXG59KTtcblxuZGVmaW5lQmFja29mZmljZUZvcm1NdXRhdGlvbkFjdGlvbjxcbiAgVGVzdENyZWF0ZU9yZ2FuaXphdGlvbk9wZXJhdGlvbixcbiAgbnVsbCxcbiAgVGVzdENyZWF0ZU9yZ2FuaXphdGlvbkZvcm1WYWx1ZXNcbj4oKSh7XG4gIGlkOiAnY3JlYXRlLW9yZ2FuaXphdGlvbicsXG4gIGtpbmQ6ICdmb3JtTXV0YXRpb24nLFxuICBsYWJlbCxcbiAgbXV0YXRpb246IHt9IGFzIG5ldmVyLFxuICBmaWVsZHM6IFtdLFxuICBnZXRWYXJpYWJsZXM6IChfbm9kZSwgdmFsdWVzKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlucHV0OiB7XG4gICAgICAgIG5hbWU6IHZhbHVlcy5uYW1lLFxuICAgICAgICBjdXJyZW5jeTogdmFsdWVzLmN1cnJlbmN5LFxuICAgICAgfSxcbiAgICB9O1xuICB9LFxuICB0b2FzdHM6IHtcbiAgICBzdWNjZXNzOiB7XG4gICAgICB0aXRsZTogbGFiZWwsXG4gICAgICB2aWV3OiB7XG4gICAgICAgIGVudGl0eUlkOiAnb3JnYW5pemF0aW9ucycsXG4gICAgICAgIGdldFRhcmdldElkOiAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICByZXR1cm4gcmVzcG9uc2UuY3JlYXRlT3JnYW5pemF0aW9uLm9yZ2FuaXphdGlvbj8uaWQgPz8gbnVsbDtcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbn0pO1xuXG5kZWZpbmVCYWNrb2ZmaWNlRm9ybU11dGF0aW9uQWN0aW9uPFxuICBUZXN0Q3JlYXRlT3JnYW5pemF0aW9uT3BlcmF0aW9uLFxuICBudWxsLFxuICBUZXN0Q3JlYXRlT3JnYW5pemF0aW9uRm9ybVZhbHVlc1xuPigpKHtcbiAgaWQ6ICdtaXNzaW5nLWN1cnJlbmN5JyxcbiAga2luZDogJ2Zvcm1NdXRhdGlvbicsXG4gIGxhYmVsLFxuICBtdXRhdGlvbjoge30gYXMgbmV2ZXIsXG4gIGZpZWxkczogW10sXG4gIC8vIEB0cy1leHBlY3QtZXJyb3IgY3JlYXRlIG9yZ2FuaXphdGlvbiB2YXJpYWJsZXMgbXVzdCBpbmNsdWRlIHJlcXVpcmVkIGlucHV0LmN1cnJlbmN5LlxuICBnZXRWYXJpYWJsZXM6IChfbm9kZSwgdmFsdWVzKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlucHV0OiB7XG4gICAgICAgIG5hbWU6IHZhbHVlcy5uYW1lLFxuICAgICAgfSxcbiAgICB9O1xuICB9LFxufSk7XG5cbmRlZmluZUJhY2tvZmZpY2VGb3JtTXV0YXRpb25BY3Rpb248XG4gIFRlc3RDcmVhdGVPcmdhbml6YXRpb25PcGVyYXRpb24sXG4gIG51bGwsXG4gIHsgbmFtZTogc3RyaW5nOyBjdXJyZW5jeTogJ0dCUCcgfVxuPigpKHtcbiAgaWQ6ICdpbnZhbGlkLWN1cnJlbmN5JyxcbiAga2luZDogJ2Zvcm1NdXRhdGlvbicsXG4gIGxhYmVsLFxuICBtdXRhdGlvbjoge30gYXMgbmV2ZXIsXG4gIGZpZWxkczogW10sXG4gIC8vIEB0cy1leHBlY3QtZXJyb3IgY3JlYXRlIG9yZ2FuaXphdGlvbiBjdXJyZW5jeSBtdXN0IGJlIG9uZSBvZiB0aGUgUmVsYXkgZ2VuZXJhdGVkIGVudW0gdmFsdWVzLlxuICBnZXRWYXJpYWJsZXM6IChfbm9kZSwgdmFsdWVzKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlucHV0OiB7XG4gICAgICAgIG5hbWU6IHZhbHVlcy5uYW1lLFxuICAgICAgICBjdXJyZW5jeTogdmFsdWVzLmN1cnJlbmN5LFxuICAgICAgfSxcbiAgICB9O1xuICB9LFxufSk7XG5cbmRlZmluZUJhY2tvZmZpY2VNdXRhdGlvbkFjdGlvbjxUZXN0QXJjaGl2ZU9wZXJhdGlvbiwgeyBpZDogc3RyaW5nIH0+KCkoe1xuICBpZDogJ2FyY2hpdmUnLFxuICBraW5kOiAnbXV0YXRpb24nLFxuICBsYWJlbCxcbiAgbXV0YXRpb246IHt9IGFzIG5ldmVyLFxuICBnZXRWYXJpYWJsZXM6IChub2RlKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiBub2RlLmlkLFxuICAgIH07XG4gIH0sXG59KTtcblxuZGVmaW5lQmFja29mZmljZU11dGF0aW9uQWN0aW9uPFRlc3RBcmNoaXZlT3BlcmF0aW9uLCB7IGlkOiBzdHJpbmcgfT4oKSh7XG4gIGlkOiAnYXJjaGl2ZS1taXNzaW5nLWlkJyxcbiAga2luZDogJ211dGF0aW9uJyxcbiAgbGFiZWwsXG4gIG11dGF0aW9uOiB7fSBhcyBuZXZlcixcbiAgLy8gQHRzLWV4cGVjdC1lcnJvciBtdXRhdGlvbiB2YXJpYWJsZXMgbXVzdCBpbmNsdWRlIHJlcXVpcmVkIGlkLlxuICBnZXRWYXJpYWJsZXM6ICgpID0+IHtcbiAgICByZXR1cm4ge307XG4gIH0sXG59KTtcblxuZXhwb3J0IGNvbnN0IHJlc3BvbnNpdmVNZXRhOiBCYWNrb2ZmaWNlTGlzdFJlc3BvbnNpdmVNZXRhSXRlbSA9IHtcbiAgaWQ6ICdzdGF0ZScsXG4gIGxhYmVsLFxuICB2YWx1ZTogJ3JlYWR5Jyxcbn07XG5cbmV4cG9ydCBjb25zdCBpbnZhbGlkUmVzcG9uc2l2ZU1ldGE6IEJhY2tvZmZpY2VMaXN0UmVzcG9uc2l2ZU1ldGFJdGVtID0ge1xuICBpZDogJ3N0YXRlJyxcbiAgLy8gQHRzLWV4cGVjdC1lcnJvciByZXNwb25zaXZlIG1ldGEgbGFiZWxzIG11c3QgYmUgaTE4biBsYWJlbCBmdW5jdGlvbnMsIG5vdCByYXcgc3RyaW5ncy5cbiAgbGFiZWw6ICdTdGF0ZScsXG4gIHZhbHVlOiAncmVhZHknLFxufTtcblxuZXhwb3J0IGNvbnN0IHRpdGxlTWV0YTogQmFja29mZmljZURldGFpbFRpdGxlTWV0YUl0ZW0gPSB7XG4gIGlkOiAnc3RhdGUnLFxuICBsYWJlbCxcbiAgdmFsdWU6ICdyZWFkeScsXG59O1xuXG5leHBvcnQgY29uc3QgaW52YWxpZFRpdGxlTWV0YTogQmFja29mZmljZURldGFpbFRpdGxlTWV0YUl0ZW0gPSB7XG4gIGlkOiAnc3RhdGUnLFxuICAvLyBAdHMtZXhwZWN0LWVycm9yIHRpdGxlIG1ldGEgbGFiZWxzIG11c3QgYmUgaTE4biBsYWJlbCBmdW5jdGlvbnMsIG5vdCByYXcgc3RyaW5ncy5cbiAgbGFiZWw6ICdTdGF0ZScsXG4gIHZhbHVlOiAncmVhZHknLFxufTtcblxuY29uc3QgZmlsdGVycyA9IGRlZmluZUJhY2tvZmZpY2VGaWx0ZXJzPFRlc3RMaXN0T3BlcmF0aW9uPigpKFtcbiAgZW50aXR5SWRGaWx0ZXI8QmFja29mZmljZU9wZXJhdGlvbldoZXJlPFRlc3RMaXN0T3BlcmF0aW9uPiwgJ3Byb2plY3RJZCc+KFxuICAgICdwcm9qZWN0SWQnLFxuICAgIHtcbiAgICAgIGVudGl0eTogJ3Byb2plY3RzJyxcbiAgICAgIGxhYmVsLFxuICAgIH0sXG4gICksXG4gIGVudW1GaWx0ZXI8QmFja29mZmljZU9wZXJhdGlvbldoZXJlPFRlc3RMaXN0T3BlcmF0aW9uPiwgJ2tpbmQnPigna2luZCcsIHtcbiAgICBsYWJlbCxcbiAgICBvcHRpb25zOiBbJ0EnLCAnQiddLFxuICB9KSxcbiAgbnVtYmVyRmlsdGVyPEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxUZXN0TGlzdE9wZXJhdGlvbj4sICdhdHRlbXB0Jz4oXG4gICAgJ2F0dGVtcHQnLFxuICAgIHtcbiAgICAgIGxhYmVsLFxuICAgIH0sXG4gICksXG4gIGRhdGV0aW1lRmlsdGVyPEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxUZXN0TGlzdE9wZXJhdGlvbj4sICdjcmVhdGVkRnJvbSc+KFxuICAgICdjcmVhdGVkRnJvbScsXG4gICAge1xuICAgICAgbGFiZWwsXG4gICAgICBtb2RlOiAnZnJvbScsXG4gICAgfSxcbiAgKSxcbl0pO1xuXG5kZWZpbmVCYWNrb2ZmaWNlU29ydHM8VGVzdExpc3RPcGVyYXRpb24+KCkoW3sgaWQ6ICdDUkVBVEVEX0FUX0RFU0MnLCBsYWJlbCB9XSk7XG5cbmRlZmluZUJhY2tvZmZpY2VDb25uZWN0aW9uTGlzdDxUZXN0TGlzdE9wZXJhdGlvbiwgVGVzdENvdW50T3BlcmF0aW9uPigpKHtcbiAgdGl0bGU6IGxhYmVsLFxuICBxdWVyeToge30gYXMgbmV2ZXIsXG4gIGZyYWdtZW50OiB7fSBhcyBuZXZlcixcbiAgY291bnQ6IHtcbiAgICBxdWVyeToge30gYXMgbmV2ZXIsXG4gICAgYnVpbGRWYXJpYWJsZXM6ICh7IHdoZXJlIH0pID0+IHtcbiAgICAgIHJldHVybiB7IHdoZXJlIH07XG4gICAgfSxcbiAgICBnZXRDb3VudDogKGRhdGEpID0+IHtcbiAgICAgIHJldHVybiAoZGF0YSBhcyBUZXN0Q291bnRPcGVyYXRpb25bJ3Jlc3BvbnNlJ10pLnJvd3NDb3VudDtcbiAgICB9LFxuICB9LFxuICBmaWx0ZXJzLFxuICBzb3J0czogZGVmaW5lQmFja29mZmljZVNvcnRzPFRlc3RMaXN0T3BlcmF0aW9uPigpKFtcbiAgICB7IGlkOiAnQ1JFQVRFRF9BVF9BU0MnLCBsYWJlbCB9LFxuICBdKSxcbiAgZGVmYXVsdFN0YXRlOiB7XG4gICAgd2hlcmU6IHsgcHJvamVjdElkOiAncHJvamVjdC0xJyB9LFxuICAgIHNvcnQ6ICdDUkVBVEVEX0FUX0RFU0MnLFxuICB9LFxuICBnZXRDb25uZWN0aW9uOiAoKSA9PiB7XG4gICAgcmV0dXJuIHsgZWRnZXM6IFtdIH07XG4gIH0sXG4gIHRvUm93OiAocm93KSA9PiB7XG4gICAgcmV0dXJuIHJvdztcbiAgfSxcbiAgZ2V0Um93SWQ6ICgpID0+IHtcbiAgICByZXR1cm4gJ3Jvdyc7XG4gIH0sXG4gIGNvbHVtbnM6IFtdLFxufSk7XG5cbmRlZmluZUJhY2tvZmZpY2VQaWNrZXI8VGVzdFBpY2tlck9wZXJhdGlvbj4oKSh7XG4gIHF1ZXJ5OiB7fSBhcyBuZXZlcixcbiAgZnJhZ21lbnQ6IHt9IGFzIG5ldmVyLFxuICBnZXRDb25uZWN0aW9uOiAoKSA9PiB7XG4gICAgcmV0dXJuIHsgZWRnZXM6IFtdIH07XG4gIH0sXG4gIHRvUm93OiAoKSA9PiB7XG4gICAgcmV0dXJuIHsgaWQ6ICdyb3cnLCB0aXRsZTogJ1JvdycgfTtcbiAgfSxcbiAgZ2V0Um93SWQ6IChyb3cpID0+IHtcbiAgICByZXR1cm4gcm93LmlkO1xuICB9LFxuICBidWlsZFF1ZXJ5VmFyaWFibGVzOiAoeyBzY29wZSB9KSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHdoZXJlOiB7XG4gICAgICAgIG9yZ2FuaXphdGlvbklkOiBzY29wZT8ub3JnYW5pemF0aW9uSWQsXG4gICAgICB9LFxuICAgICAgY291bnQ6IDIwLFxuICAgICAgY3Vyc29yOiBudWxsLFxuICAgIH07XG4gIH0sXG59KTtcblxuZGVmaW5lQmFja29mZmljZURhc2hib2FyZENvbmZpZyh7XG4gIHRpdGxlOiBsYWJlbCxcbiAgd2lkZ2V0czogW1xuICAgIGRlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRRdWVyeVdpZGdldDxUZXN0RGFzaGJvYXJkT3BlcmF0aW9uPigpKHtcbiAgICAgIGlkOiAndXNlcnMnLFxuICAgICAga2luZDogJ21ldHJpY0dyb3VwJyxcbiAgICAgIHF1ZXJ5OiB7fSBhcyBuZXZlcixcbiAgICAgIHZhcmlhYmxlczoge30sXG4gICAgICByZXNvbHZlOiAoZGF0YSkgPT4ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAndXNlcnMnLFxuICAgICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgICB2YWx1ZTogZGF0YS51c2Vycy50b3RhbENvdW50LFxuICAgICAgICAgICAgdGFyZ2V0OiBkZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkTGlzdFRhcmdldDxUZXN0TGlzdE9wZXJhdGlvbj4oKSh7XG4gICAgICAgICAgICAgIGVudGl0eUlkOiAndGFza3MnLFxuICAgICAgICAgICAgICBzdGF0ZToge1xuICAgICAgICAgICAgICAgIHdoZXJlOiB7IGtpbmQ6ICdBJyB9LFxuICAgICAgICAgICAgICAgIHNvcnQ6ICdDUkVBVEVEX0FUX0RFU0MnLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICAgIH0sXG4gICAgfSksXG4gICAgZGVmaW5lQmFja29mZmljZURhc2hib2FyZFN0YXRpY1dpZGdldCh7XG4gICAgICBpZDogJ3dpbmRvdycsXG4gICAgICBraW5kOiAnd2luZG93Q29udHJvbCcsXG4gICAgICB0aXRsZTogbGFiZWwsXG4gICAgfSksXG4gICAgZGVmaW5lQmFja29mZmljZURhc2hib2FyZFF1ZXJ5V2lkZ2V0PFRlc3REYXNoYm9hcmRXaW5kb3dPcGVyYXRpb24+KCkoe1xuICAgICAgaWQ6ICd0aHJvdWdocHV0JyxcbiAgICAgIGtpbmQ6ICd0cmVuZE1ldHJpYycsXG4gICAgICBxdWVyeToge30gYXMgbmV2ZXIsXG4gICAgICB2YXJpYWJsZXM6ICh7IHdpbmRvdyB9KSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZnJvbTogd2luZG93LmZyb20sXG4gICAgICAgICAgdG86IHdpbmRvdy50byxcbiAgICAgICAgICBzZXZlcml0eTogJ0EnLFxuICAgICAgICB9O1xuICAgICAgfSxcbiAgICAgIHJlc29sdmU6IChkYXRhKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgdmFsdWU6IGRhdGEudGhyb3VnaHB1dENvdW50LFxuICAgICAgICAgIGRlbHRhOiB7XG4gICAgICAgICAgICB2YWx1ZTogMTIsXG4gICAgICAgICAgICBkaXJlY3Rpb246ICd1cCcsXG4gICAgICAgICAgICB0b25lOiAnc3VjY2VzcycsXG4gICAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHNwYXJrbGluZTogW3sgeDogJzIwMjYtMDEtMDFUMDA6MDA6MDAuMDAwWicsIHk6IDEgfV0sXG4gICAgICAgICAgdGFyZ2V0OiBkZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkTGlzdFRhcmdldDxUZXN0TGlzdE9wZXJhdGlvbj4oKSh7XG4gICAgICAgICAgICBlbnRpdHlJZDogJ3Rhc2tzJyxcbiAgICAgICAgICAgIHN0YXRlOiB7XG4gICAgICAgICAgICAgIHdoZXJlOiB7IGtpbmQ6ICdBJyB9LFxuICAgICAgICAgICAgICBzb3J0OiAnQ1JFQVRFRF9BVF9ERVNDJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgIH07XG4gICAgICB9LFxuICAgIH0pLFxuICAgIGRlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRRdWVyeVdpZGdldDxUZXN0RGFzaGJvYXJkV2luZG93T3BlcmF0aW9uPigpKHtcbiAgICAgIGlkOiAnZmFpbHVyZS1yYXRlJyxcbiAgICAgIGtpbmQ6ICdzbGFHYXVnZScsXG4gICAgICBxdWVyeToge30gYXMgbmV2ZXIsXG4gICAgICB2YXJpYWJsZXM6ICh7IHdpbmRvdyB9KSA9PiB7XG4gICAgICAgIHJldHVybiB7IGZyb206IHdpbmRvdy5mcm9tLCB0bzogd2luZG93LnRvIH07XG4gICAgICB9LFxuICAgICAgcmVzb2x2ZTogKGRhdGEpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICB2YWx1ZTogZGF0YS5mYWlsdXJlUmF0ZSxcbiAgICAgICAgICBtYXg6IDEsXG4gICAgICAgICAgdGhyZXNob2xkOiAwLjA1LFxuICAgICAgICAgIHVuaXQ6ICclJyxcbiAgICAgICAgICB0b25lOiAnd2FybmluZycsXG4gICAgICAgIH07XG4gICAgICB9LFxuICAgIH0pLFxuICAgIGRlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRRdWVyeVdpZGdldDxUZXN0RGFzaGJvYXJkV2luZG93T3BlcmF0aW9uPigpKHtcbiAgICAgIGlkOiAndG9wLWZhaWx1cmVzJyxcbiAgICAgIGtpbmQ6ICdicmVha2Rvd25MaXN0JyxcbiAgICAgIHF1ZXJ5OiB7fSBhcyBuZXZlcixcbiAgICAgIHZhcmlhYmxlczogKHsgd2luZG93IH0pID0+IHtcbiAgICAgICAgcmV0dXJuIHsgZnJvbTogd2luZG93LmZyb20sIHRvOiB3aW5kb3cudG8gfTtcbiAgICAgIH0sXG4gICAgICByZXNvbHZlOiAoZGF0YSkgPT4ge1xuICAgICAgICByZXR1cm4gZGF0YS50b3BGYWlsdXJlcy5tYXAoKGZhaWx1cmUpID0+IHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaWQ6IGZhaWx1cmUuaWQsXG4gICAgICAgICAgICBsYWJlbDogKCkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gZmFpbHVyZS5sYWJlbDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB2YWx1ZTogZmFpbHVyZS5jb3VudCxcbiAgICAgICAgICAgIHRvbmU6ICdkYW5nZXInLFxuICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICB9KSxcbiAgICBkZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkUXVlcnlXaWRnZXQ8VGVzdERhc2hib2FyZFdpbmRvd09wZXJhdGlvbj4oKSh7XG4gICAgICBpZDogJ3RpbWVsaW5lJyxcbiAgICAgIGtpbmQ6ICd0aW1lbGluZUNoYXJ0JyxcbiAgICAgIHF1ZXJ5OiB7fSBhcyBuZXZlcixcbiAgICAgIHZhcmlhYmxlczogKHsgd2luZG93IH0pID0+IHtcbiAgICAgICAgcmV0dXJuIHsgZnJvbTogd2luZG93LmZyb20sIHRvOiB3aW5kb3cudG8gfTtcbiAgICAgIH0sXG4gICAgICBhcmlhTGFiZWw6IGxhYmVsLFxuICAgICAgY2hhcnQ6ICdiYXInLFxuICAgICAgcmVzb2x2ZTogKGRhdGEpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBzZXJpZXM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgaWQ6ICd0aHJvdWdocHV0JyxcbiAgICAgICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgICAgIGNvbG9yOiAnIzI1NjNlYicsXG4gICAgICAgICAgICAgIGRhdGE6IGRhdGEuYnVja2V0cy5tYXAoKGJ1Y2tldCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICB4OiBidWNrZXQuYnVja2V0LFxuICAgICAgICAgICAgICAgICAgeTogYnVja2V0LmNvdW50LFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9O1xuICAgICAgfSxcbiAgICB9KSxcbiAgICBkZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkUXVlcnlXaWRnZXQ8VGVzdERhc2hib2FyZFdpbmRvd09wZXJhdGlvbj4oKSh7XG4gICAgICBpZDogJ3Jpc2stcXVldWUnLFxuICAgICAga2luZDogJ3Jpc2tRdWV1ZScsXG4gICAgICBxdWVyeToge30gYXMgbmV2ZXIsXG4gICAgICB2YXJpYWJsZXM6ICh7IHdpbmRvdyB9KSA9PiB7XG4gICAgICAgIHJldHVybiB7IGZyb206IHdpbmRvdy5mcm9tLCB0bzogd2luZG93LnRvIH07XG4gICAgICB9LFxuICAgICAgcmVzb2x2ZTogKCkgPT4ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAnZGVhZC1vdXRib3gnLFxuICAgICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgICBzZXZlcml0eTogJ2RhbmdlcicsXG4gICAgICAgICAgICB2YWx1ZTogNCxcbiAgICAgICAgICB9LFxuICAgICAgICBdO1xuICAgICAgfSxcbiAgICB9KSxcbiAgICBkZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkUXVlcnlXaWRnZXQ8VGVzdERhc2hib2FyZFdpbmRvd09wZXJhdGlvbj4oKSh7XG4gICAgICBpZDogJ3Nwb3RsaWdodCcsXG4gICAgICBraW5kOiAnZW50aXR5U3BvdGxpZ2h0JyxcbiAgICAgIHF1ZXJ5OiB7fSBhcyBuZXZlcixcbiAgICAgIHZhcmlhYmxlczogKHsgd2luZG93IH0pID0+IHtcbiAgICAgICAgcmV0dXJuIHsgZnJvbTogd2luZG93LmZyb20sIHRvOiB3aW5kb3cudG8gfTtcbiAgICAgIH0sXG4gICAgICByZXNvbHZlOiAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgdGl0bGU6IGxhYmVsLFxuICAgICAgICAgIHRvbmU6ICdpbmZvJyxcbiAgICAgICAgICBtZXRhOiBbeyBpZDogJ2FnZScsIGxhYmVsLCB2YWx1ZTogJzQ1IG1pbicgfV0sXG4gICAgICAgIH07XG4gICAgICB9LFxuICAgIH0pLFxuICAgIGRlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRRdWVyeVdpZGdldDxUZXN0RGFzaGJvYXJkV2luZG93T3BlcmF0aW9uPigpKHtcbiAgICAgIGlkOiAnaGVhbHRoJyxcbiAgICAgIGtpbmQ6ICdoZWFsdGhNYXRyaXgnLFxuICAgICAgcXVlcnk6IHt9IGFzIG5ldmVyLFxuICAgICAgdmFyaWFibGVzOiAoeyB3aW5kb3cgfSkgPT4ge1xuICAgICAgICByZXR1cm4geyBmcm9tOiB3aW5kb3cuZnJvbSwgdG86IHdpbmRvdy50byB9O1xuICAgICAgfSxcbiAgICAgIHJlc29sdmU6ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogJ3dvcmsnLFxuICAgICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgICBjZWxsczogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaWQ6ICd0YXNrcycsXG4gICAgICAgICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgICAgICAgdmFsdWU6IDIsXG4gICAgICAgICAgICAgICAgdG9uZTogJ3dhcm5pbmcnLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICBdO1xuICAgICAgfSxcbiAgICB9KSxcbiAgICBkZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkU3RhdGljV2lkZ2V0KHtcbiAgICAgIGlkOiAnYWN0aW9ucycsXG4gICAgICBraW5kOiAncXVpY2tBY3Rpb25zJyxcbiAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGlkOiAndXNlcnMnLFxuICAgICAgICAgIGxhYmVsLFxuICAgICAgICAgIHRhcmdldDogZGVmaW5lQmFja29mZmljZURhc2hib2FyZEhyZWZUYXJnZXQoJy91c2VycycpLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KSxcbiAgXSxcbn0pO1xuXG5kZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkUXVlcnlXaWRnZXQ8VGVzdERhc2hib2FyZE9wZXJhdGlvbj4oKSh7XG4gIGlkOiAnaW52YWxpZC11c2VycycsXG4gIGtpbmQ6ICdtZXRyaWNHcm91cCcsXG4gIHF1ZXJ5OiB7fSBhcyBuZXZlcixcbiAgdmFyaWFibGVzOiB7fSxcbiAgcmVzb2x2ZTogKGRhdGEpID0+IHtcbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICBpZDogJ3VzZXJzJyxcbiAgICAgICAgbGFiZWwsXG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgZGFzaGJvYXJkIHdpZGdldCByZXNvbHZlIGRhdGEgaXMgdHlwZWQgZnJvbSB0aGUgb3BlcmF0aW9uIHJlc3BvbnNlLlxuICAgICAgICB2YWx1ZTogZGF0YS5wcm9qZWN0cy50b3RhbENvdW50LFxuICAgICAgfSxcbiAgICBdO1xuICB9LFxufSk7XG5cbmRlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRRdWVyeVdpZGdldDxUZXN0RGFzaGJvYXJkV2luZG93T3BlcmF0aW9uPigpKHtcbiAgaWQ6ICdpbnZhbGlkLXdpbmRvdy12YXJpYWJsZXMnLFxuICBraW5kOiAndHJlbmRNZXRyaWMnLFxuICBxdWVyeToge30gYXMgbmV2ZXIsXG4gIC8vIEB0cy1leHBlY3QtZXJyb3IgZGFzaGJvYXJkIHdpZGdldCB2YXJpYWJsZXMgbXVzdCBtYXRjaCB0aGUgb3BlcmF0aW9uIHZhcmlhYmxlcy5cbiAgdmFyaWFibGVzOiAoeyB3aW5kb3cgfSkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBmcm9tOiB3aW5kb3cuZnJvbSxcbiAgICB9O1xuICB9LFxuICByZXNvbHZlOiAoZGF0YSkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBsYWJlbCxcbiAgICAgIHZhbHVlOiBkYXRhLnRocm91Z2hwdXRDb3VudCxcbiAgICB9O1xuICB9LFxufSk7XG5cbmRlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRMaXN0VGFyZ2V0PFRlc3RMaXN0T3BlcmF0aW9uPigpKHtcbiAgZW50aXR5SWQ6ICd0YXNrcycsXG4gIHN0YXRlOiB7XG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciBkYXNoYm9hcmQgbGlzdCB0YXJnZXQgd2hlcmUgbXVzdCBtYXRjaCB0aGUgdGFyZ2V0IGxpc3Qgb3BlcmF0aW9uIHdoZXJlIGlucHV0LlxuICAgIHdoZXJlOiB7IG9yZ2FuaXphdGlvbklkOiAnb3JnLTEnIH0sXG4gIH0sXG59KTtcblxuZGVmaW5lQmFja29mZmljZURhc2hib2FyZExpc3RUYXJnZXQ8VGVzdExpc3RPcGVyYXRpb24+KCkoe1xuICBlbnRpdHlJZDogJ3Rhc2tzJyxcbiAgc3RhdGU6IHtcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yIGRhc2hib2FyZCBsaXN0IHRhcmdldCBzb3J0IG11c3QgbWF0Y2ggdGhlIHRhcmdldCBsaXN0IG9wZXJhdGlvbiBzb3J0IGlucHV0LlxuICAgIHNvcnQ6ICdVUERBVEVEX0FUX0RFU0MnLFxuICB9LFxufSk7XG5cbmV4cG9ydCBjb25zdCBpbnZhbGlkRGFzaGJvYXJkQ29uZmlnOiBCYWNrb2ZmaWNlRGFzaGJvYXJkQ29uZmlnID0ge1xuICB0aXRsZTogbGFiZWwsXG4gIC8vIEB0cy1leHBlY3QtZXJyb3IgZGFzaGJvYXJkIGNvbmZpZ3MgZG8gbm90IHN1cHBvcnQgZ2xvYmFsIHF1ZXJpZXMuXG4gIHF1ZXJ5OiB7fSBhcyBuZXZlcixcbiAgd2lkZ2V0czogW10sXG59O1xuXG4vLyBAdHMtZXhwZWN0LWVycm9yIGRhdGEtZHJpdmVuIGRhc2hib2FyZCB3aWRnZXRzIG11c3QgZGVjbGFyZSBhIHF1ZXJ5LlxuZGVmaW5lQmFja29mZmljZURhc2hib2FyZFF1ZXJ5V2lkZ2V0PFRlc3REYXNoYm9hcmRPcGVyYXRpb24+KCkoe1xuICBpZDogJ21pc3NpbmctcXVlcnknLFxuICBraW5kOiAnbWV0cmljR3JvdXAnLFxuICB2YXJpYWJsZXM6IHt9LFxuICByZXNvbHZlOiAoZGF0YSkgPT4ge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIGlkOiAndXNlcnMnLFxuICAgICAgICBsYWJlbCxcbiAgICAgICAgdmFsdWU6IGRhdGEudXNlcnMudG90YWxDb3VudCxcbiAgICAgIH0sXG4gICAgXTtcbiAgfSxcbn0pO1xuXG5kZWZpbmVCYWNrb2ZmaWNlUmVsYXRpb25GaWx0ZXI8VGVzdExpc3RPcGVyYXRpb24+KCkoe1xuICB0YXJnZXQ6ICdwcm9qZWN0cycsXG4gIHdoZXJlS2V5OiAncHJvamVjdElkJyxcbn0pO1xuXG5kZWZpbmVCYWNrb2ZmaWNlUmVsYXRpb25GaWx0ZXI8VGVzdExpc3RPcGVyYXRpb24+KCkoe1xuICB0YXJnZXQ6ICdwcm9qZWN0cycsXG4gIC8vIEB0cy1leHBlY3QtZXJyb3Igb3JnYW5pemF0aW9uSWQgaXMgbm90IGRlY2xhcmVkIGJ5IHRoZSB0YXJnZXQgbGlzdCB3aGVyZSBpbnB1dC5cbiAgd2hlcmVLZXk6ICdvcmdhbml6YXRpb25JZCcsXG59KTtcblxuZGVmaW5lQmFja29mZmljZUZpbHRlcnM8VGVzdExpc3RPcGVyYXRpb24+KCkoW1xuICAvLyBAdHMtZXhwZWN0LWVycm9yIG1pc3NpbmdGaWVsZCBpcyBub3QgZGVjbGFyZWQgYnkgdGhlIG9wZXJhdGlvbiB3aGVyZSBpbnB1dC5cbiAgZW50aXR5SWRGaWx0ZXI8QmFja29mZmljZU9wZXJhdGlvbldoZXJlPFRlc3RMaXN0T3BlcmF0aW9uPiwgJ21pc3NpbmdGaWVsZCc+KFxuICAgICdtaXNzaW5nRmllbGQnLFxuICAgIHtcbiAgICAgIGVudGl0eTogJ3Byb2plY3RzJyxcbiAgICAgIGxhYmVsLFxuICAgIH0sXG4gICksXG5dKTtcblxuZGVmaW5lQmFja29mZmljZUZpbHRlcnM8VGVzdExpc3RPcGVyYXRpb24+KCkoW1xuICBlbnVtRmlsdGVyPEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxUZXN0TGlzdE9wZXJhdGlvbj4sICdraW5kJz4oJ2tpbmQnLCB7XG4gICAgbGFiZWwsXG4gICAgb3B0aW9uczogW1xuICAgICAgJ0EnLFxuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBDIGlzIG5vdCBhIHZhbGlkIFRlc3RLaW5kIHZhbHVlLlxuICAgICAgJ0MnLFxuICAgIF0sXG4gIH0pLFxuXSk7XG5cbmRlZmluZUJhY2tvZmZpY2VGaWx0ZXJzPFRlc3RMaXN0T3BlcmF0aW9uPigpKFtcbiAgLy8gQHRzLWV4cGVjdC1lcnJvciBraW5kIGlzIGFuIGVudW0gc3RyaW5nIGZpZWxkLCBub3QgYSBudW1iZXIgZmllbGQuXG4gIG51bWJlckZpbHRlcjxCYWNrb2ZmaWNlT3BlcmF0aW9uV2hlcmU8VGVzdExpc3RPcGVyYXRpb24+LCAna2luZCc+KCdraW5kJywge1xuICAgIGxhYmVsLFxuICB9KSxcbl0pO1xuXG5kZWZpbmVCYWNrb2ZmaWNlRmlsdGVyczxUZXN0TGlzdE9wZXJhdGlvbj4oKShbXG4gIC8vIEB0cy1leHBlY3QtZXJyb3IgYXR0ZW1wdCBpcyBhIG51bWJlciBmaWVsZCwgbm90IGEgZGF0ZXRpbWUgc3RyaW5nIGZpZWxkLlxuICBkYXRldGltZUZpbHRlcjxCYWNrb2ZmaWNlT3BlcmF0aW9uV2hlcmU8VGVzdExpc3RPcGVyYXRpb24+LCAnYXR0ZW1wdCc+KFxuICAgICdhdHRlbXB0JyxcbiAgICB7XG4gICAgICBsYWJlbCxcbiAgICB9LFxuICApLFxuXSk7XG5cbmRlZmluZUJhY2tvZmZpY2VTb3J0czxUZXN0TGlzdE9wZXJhdGlvbj4oKShbXG4gIC8vIEB0cy1leHBlY3QtZXJyb3IgVVBEQVRFRF9BVF9ERVNDIGlzIG5vdCBkZWNsYXJlZCBieSB0aGUgb3BlcmF0aW9uIHNvcnQuXG4gIHsgaWQ6ICdVUERBVEVEX0FUX0RFU0MnLCBsYWJlbCB9LFxuXSk7XG5cbmRlZmluZUJhY2tvZmZpY2VDb25uZWN0aW9uTGlzdDxUZXN0TGlzdE9wZXJhdGlvbiwgVGVzdENvdW50T3BlcmF0aW9uPigpKHtcbiAgdGl0bGU6IGxhYmVsLFxuICBxdWVyeToge30gYXMgbmV2ZXIsXG4gIGZyYWdtZW50OiB7fSBhcyBuZXZlcixcbiAgY291bnQ6IHtcbiAgICBxdWVyeToge30gYXMgbmV2ZXIsXG4gICAgYnVpbGRWYXJpYWJsZXM6ICh7IHdoZXJlIH0pID0+IHtcbiAgICAgIHJldHVybiB7IHdoZXJlIH07XG4gICAgfSxcbiAgICBnZXRDb3VudDogKGRhdGEpID0+IHtcbiAgICAgIHJldHVybiAoZGF0YSBhcyBUZXN0Q291bnRPcGVyYXRpb25bJ3Jlc3BvbnNlJ10pLnJvd3NDb3VudDtcbiAgICB9LFxuICB9LFxuICBmaWx0ZXJzLFxuICBzb3J0czogZGVmaW5lQmFja29mZmljZVNvcnRzPFRlc3RMaXN0T3BlcmF0aW9uPigpKFtcbiAgICB7IGlkOiAnQ1JFQVRFRF9BVF9BU0MnLCBsYWJlbCB9LFxuICBdKSxcbiAgZGVmYXVsdFN0YXRlOiB7XG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciBvcmdhbml6YXRpb25JZCBpcyBub3QgZGVjbGFyZWQgYnkgdGhlIGxpc3Qgd2hlcmUgaW5wdXQuXG4gICAgd2hlcmU6IHsgb3JnYW5pemF0aW9uSWQ6ICdvcmctMScgfSxcbiAgICBzb3J0OiAnQ1JFQVRFRF9BVF9BU0MnLFxuICB9LFxuICBnZXRDb25uZWN0aW9uOiAoKSA9PiB7XG4gICAgcmV0dXJuIHsgZWRnZXM6IFtdIH07XG4gIH0sXG4gIHRvUm93OiAocm93KSA9PiB7XG4gICAgcmV0dXJuIHJvdztcbiAgfSxcbiAgZ2V0Um93SWQ6ICgpID0+IHtcbiAgICByZXR1cm4gJ3Jvdyc7XG4gIH0sXG4gIGNvbHVtbnM6IFtdLFxufSk7XG5cbmRlZmluZUJhY2tvZmZpY2VQaWNrZXI8VGVzdFBpY2tlck9wZXJhdGlvbj4oKSh7XG4gIHF1ZXJ5OiB7fSBhcyBuZXZlcixcbiAgZnJhZ21lbnQ6IHt9IGFzIG5ldmVyLFxuICBnZXRDb25uZWN0aW9uOiAoKSA9PiB7XG4gICAgcmV0dXJuIHsgZWRnZXM6IFtdIH07XG4gIH0sXG4gIHRvUm93OiAoKSA9PiB7XG4gICAgcmV0dXJuIHsgaWQ6ICdyb3cnLCB0aXRsZTogJ1JvdycgfTtcbiAgfSxcbiAgZ2V0Um93SWQ6IChyb3cpID0+IHtcbiAgICByZXR1cm4gcm93LmlkO1xuICB9LFxuICAvLyBAdHMtZXhwZWN0LWVycm9yIHJldHVybmVkIHdoZXJlIHNoYXBlIGlzIG5vdCBkZWNsYXJlZCBieSB0aGUgcGlja2VyIG9wZXJhdGlvbi5cbiAgYnVpbGRRdWVyeVZhcmlhYmxlczogKHsgc2NvcGUgfSkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICB3aGVyZToge1xuICAgICAgICBwcm9qZWN0SWQ6IChzY29wZSBhcyB7IHByb2plY3RJZD86IHN0cmluZyB9IHwgdW5kZWZpbmVkKT8ucHJvamVjdElkLFxuICAgICAgfSxcbiAgICAgIGNvdW50OiAyMCxcbiAgICAgIGN1cnNvcjogbnVsbCxcbiAgICB9O1xuICB9LFxufSk7XG4iXX0=
@@ -5,6 +5,7 @@ import type { GraphQLTaggedNode, OperationType, RecordSourceSelectorProxy } from
5
5
  import type { InferFilters, Schema } from '@plumile/filter-query/types.js';
6
6
  import type { BackofficeFilterSchema } from './filters/schema.js';
7
7
  import type { BACKOFFICE_ENTITY_FACET_KINDS } from './constants.js';
8
+ import type { BackofficeErasedValue } from './runtimeErasure.js';
8
9
  export type I18nLabel = (t: TFunction) => string;
9
10
  type BivariantCallback<Fn> = Fn extends (...args: infer A) => infer R ? {
10
11
  bivarianceHack: (...args: A) => R;
@@ -130,7 +131,9 @@ export type BackofficeEntityRouteActionSpec<Node> = BackofficeEntityActionBase<N
130
131
  kind: 'route';
131
132
  to: BivariantCallback<(node: Node) => string>;
132
133
  };
133
- export type BackofficeEntityActionSpec<Node> = BackofficeEntityMutationActionSpec<Node, any> | BackofficeEntityFormMutationActionSpec<Node, any, any, any> | BackofficeEntityRouteActionSpec<Node>;
134
+ export type BackofficeRuntimeEntityMutationActionSpec<Node> = BackofficeEntityMutationActionSpec<Node, BackofficeErasedValue>;
135
+ export type BackofficeRuntimeEntityFormMutationActionSpec<Node> = BackofficeEntityFormMutationActionSpec<Node, BackofficeErasedValue, BackofficeErasedValue, BackofficeErasedValue>;
136
+ export type BackofficeEntityActionSpec<Node> = BackofficeRuntimeEntityMutationActionSpec<Node> | BackofficeRuntimeEntityFormMutationActionSpec<Node> | BackofficeEntityRouteActionSpec<Node>;
134
137
  export type BackofficeListActionSpec = BackofficeEntityActionSpec<null>;
135
138
  export type BackofficeEntityKind = 'list-detail' | 'tool';
136
139
  export type BackofficeEntityManifestKind = 'list-detail' | 'tool';
@@ -201,7 +204,7 @@ export type BackofficeEntityCountConfig<TOperation extends OperationType, TWhere
201
204
  buildVariables: (input: BackofficeCountQueryInput<TWhere>) => TOperation['variables'];
202
205
  getCount: BivariantCallback<(data: unknown) => number | null>;
203
206
  };
204
- export type BackofficeRuntimeEntityCountConfig<TWhere extends Record<string, unknown>> = BackofficeEntityCountConfig<any, TWhere>;
207
+ export type BackofficeRuntimeEntityCountConfig<TWhere extends Record<string, unknown>> = BackofficeEntityCountConfig<BackofficeRuntimeOperation, TWhere>;
205
208
  export type BackofficePickerScope<Where> = Partial<{
206
209
  [Key in keyof Where]: Extract<NonNullable<Where[Key]>, string>;
207
210
  }>;
@@ -294,7 +297,7 @@ export type BackofficeDashboardWidgetBase = {
294
297
  priority?: BackofficeDashboardWidgetPriority;
295
298
  minHeight?: 'sm' | 'md' | 'lg';
296
299
  };
297
- export type BackofficeDashboardWidgetResolver<TResult> = (data: OperationType['response'], context: BackofficeDashboardContext) => TResult;
300
+ export type BackofficeDashboardWidgetResolver<TResult> = (data: BackofficeErasedValue, context: BackofficeDashboardContext) => TResult;
298
301
  export type BackofficeDashboardEntityCountResult = {
299
302
  count: number | null;
300
303
  href?: string;
@@ -727,7 +730,7 @@ export type BackofficeFilterSpec<Where, EntityId extends string = string> = (Bac
727
730
  placeholderLabel?: I18nLabel;
728
731
  placeholderText?: I18nLabel;
729
732
  });
730
- export type BackofficeConnectionListConfig<TOperation extends OperationType, RowRef, RowView, ListFragmentData = unknown, TWhere extends Record<string, unknown> = BackofficeOperationWhere<TOperation>, TSort extends string = BackofficeOperationSort<TOperation>, TCountOperation extends OperationType = any, TEntityId extends string = string> = {
733
+ export type BackofficeConnectionListConfig<TOperation extends OperationType, RowRef, RowView, ListFragmentData = unknown, TWhere extends Record<string, unknown> = BackofficeOperationWhere<TOperation>, TSort extends string = BackofficeOperationSort<TOperation>, TCountOperation extends OperationType = OperationType, TEntityId extends string = string> = {
731
734
  kind: 'connection';
732
735
  title: I18nLabel;
733
736
  query: GraphQLTaggedNode;
@@ -745,7 +748,7 @@ export type BackofficeConnectionListConfig<TOperation extends OperationType, Row
745
748
  ui?: BackofficeListUiConfig;
746
749
  defaultState?: BackofficeListState<TWhere, TSort>;
747
750
  };
748
- export type BackofficeEntityListConfig<TOperation extends OperationType, RowRef, RowView, ListFragmentData = unknown, TWhere extends Record<string, unknown> = BackofficeOperationWhere<TOperation>, TSort extends string = BackofficeOperationSort<TOperation>, TCountOperation extends OperationType = any, TEntityId extends string = string> = BackofficeConnectionListConfig<TOperation, RowRef, RowView, ListFragmentData, TWhere, TSort, TCountOperation, TEntityId>;
751
+ export type BackofficeEntityListConfig<TOperation extends OperationType, RowRef, RowView, ListFragmentData = unknown, TWhere extends Record<string, unknown> = BackofficeOperationWhere<TOperation>, TSort extends string = BackofficeOperationSort<TOperation>, TCountOperation extends OperationType = OperationType, TEntityId extends string = string> = BackofficeConnectionListConfig<TOperation, RowRef, RowView, ListFragmentData, TWhere, TSort, TCountOperation, TEntityId>;
749
752
  export type BackofficeBadgeItem = {
750
753
  id: string;
751
754
  label: string | I18nLabel;
@@ -1101,7 +1104,7 @@ export type BackofficeCustomBlockSpec<Node> = {
1101
1104
  placement?: BackofficeDetailPlacement;
1102
1105
  presentation?: BackofficeDetailPresentation;
1103
1106
  };
1104
- export type BackofficeDetailBlockSpec<Node> = BackofficeSemanticDetailBlockSpec<Node> | BackofficeDetailTableBlockSpec<Node, any> | BackofficeCustomBlockSpec<Node>;
1107
+ export type BackofficeDetailBlockSpec<Node> = BackofficeSemanticDetailBlockSpec<Node> | BackofficeDetailTableBlockSpec<Node, BackofficeErasedValue> | BackofficeCustomBlockSpec<Node>;
1105
1108
  export type BackofficeDetailContentSpec<Node> = BackofficeFieldSetBlockSpec<Node> | BackofficeDetailBlockSpec<Node>;
1106
1109
  export type BackofficeDetailViewLayoutSpec = {
1107
1110
  readonly density?: BackofficeDensity;
@@ -1184,7 +1187,7 @@ export type BackofficePickerValueConfig<RowRef, RowView, ValueQueryData = unknow
1184
1187
  resolveRow: (data: ValueQueryData) => RowRef | null;
1185
1188
  toRow: BivariantCallback<(rowRef: RowRef) => RowView>;
1186
1189
  };
1187
- export type BackofficeEntityDetailConfig<LayoutData = any, LayoutView = any, MainData = LayoutData, MainView = LayoutView, SubData = MainData, SubView = MainView, LayoutQueryData = unknown, MainQueryData = unknown, SubQueryData = MainQueryData, LayoutFragmentKey = unknown, MainFragmentKey = unknown, SubFragmentKey = MainFragmentKey, LayoutQueryVariables = Record<string, unknown>, MainQueryVariables = Record<string, unknown>, SubQueryVariables = MainQueryVariables> = {
1190
+ export type BackofficeEntityDetailConfig<LayoutData = unknown, LayoutView = unknown, MainData = LayoutData, MainView = LayoutView, SubData = MainData, SubView = MainView, LayoutQueryData = unknown, MainQueryData = unknown, SubQueryData = MainQueryData, LayoutFragmentKey = unknown, MainFragmentKey = unknown, SubFragmentKey = MainFragmentKey, LayoutQueryVariables = Record<string, unknown>, MainQueryVariables = Record<string, unknown>, SubQueryVariables = MainQueryVariables> = {
1188
1191
  title: I18nLabel;
1189
1192
  header: BackofficeDetailHeaderConfig<LayoutView>;
1190
1193
  relations?: readonly BackofficeEntityRelationSpec<LayoutView>[];
@@ -1216,7 +1219,7 @@ export type BackofficeToolEntityConfig = {
1216
1219
  picker?: never;
1217
1220
  routes?: never;
1218
1221
  };
1219
- export type BackofficeListFacetConfig<TOperation extends OperationType, RowRef, RowView, ListFragmentData, TWhere extends Record<string, unknown> = BackofficeOperationWhere<TOperation>, TSort extends string = BackofficeOperationSort<TOperation>, TCountOperation extends OperationType = any, TEntityId extends string = string> = {
1222
+ export type BackofficeListFacetConfig<TOperation extends OperationType, RowRef, RowView, ListFragmentData, TWhere extends Record<string, unknown> = BackofficeOperationWhere<TOperation>, TSort extends string = BackofficeOperationSort<TOperation>, TCountOperation extends OperationType = OperationType, TEntityId extends string = string> = {
1220
1223
  kind: 'list';
1221
1224
  id: string;
1222
1225
  label: I18nLabel;
@@ -1236,7 +1239,7 @@ export type BackofficeDetailPagesSpec<LayoutView = unknown, Page extends Backoff
1236
1239
  subPages?: readonly Page[];
1237
1240
  defaultPageId: string;
1238
1241
  };
1239
- export type BackofficeDetailLayoutFacetConfig<LayoutData = any, LayoutView = any, LayoutQueryData = unknown, LayoutFragmentKey = unknown, LayoutQueryVariables = Record<string, unknown>> = {
1242
+ export type BackofficeDetailLayoutFacetConfig<LayoutData = unknown, LayoutView = unknown, LayoutQueryData = unknown, LayoutFragmentKey = unknown, LayoutQueryVariables = Record<string, unknown>> = {
1240
1243
  kind: 'detail-layout';
1241
1244
  id: string;
1242
1245
  label: I18nLabel;
@@ -1246,7 +1249,7 @@ export type BackofficeDetailLayoutFacetConfig<LayoutData = any, LayoutView = any
1246
1249
  layoutPage: BackofficeDetailLayoutSpec<LayoutView, LayoutData, LayoutQueryData, LayoutFragmentKey, LayoutQueryVariables>;
1247
1250
  pages: BackofficeDetailPagesSpec<LayoutView>;
1248
1251
  };
1249
- export type BackofficeDetailPageFacetConfig<LayoutView = unknown, DetailData = any, DetailView = any, DetailQueryData = unknown, DetailFragmentKey = unknown, DetailQueryVariables = Record<string, unknown>> = {
1252
+ export type BackofficeDetailPageFacetConfig<LayoutView = unknown, DetailData = unknown, DetailView = unknown, DetailQueryData = unknown, DetailFragmentKey = unknown, DetailQueryVariables = Record<string, unknown>> = {
1250
1253
  kind: 'detail-page';
1251
1254
  id: string;
1252
1255
  label: I18nLabel;
@@ -1298,8 +1301,8 @@ export type BackofficeRuntimeOperation = OperationType & {
1298
1301
  };
1299
1302
  response: unknown;
1300
1303
  };
1301
- export type BackofficeRuntimeListFacetConfig = BackofficeListFacetConfig<any, any, any, any, Record<string, any>, any>;
1302
- export type BackofficeRuntimePickerFacetConfig = BackofficePickerFacetConfig<any, any, any, any, Record<string, any>, any>;
1304
+ export type BackofficeRuntimeListFacetConfig = BackofficeListFacetConfig<BackofficeErasedValue, BackofficeErasedValue, BackofficeErasedValue, BackofficeErasedValue, Record<string, BackofficeErasedValue>, BackofficeErasedValue>;
1305
+ export type BackofficeRuntimePickerFacetConfig = BackofficePickerFacetConfig<BackofficeErasedValue, BackofficeErasedValue, BackofficeErasedValue, BackofficeErasedValue, Record<string, BackofficeErasedValue>, BackofficeErasedValue>;
1303
1306
  export type BackofficeLoadedEntityFacetModule = BackofficeLoadedListFacetModule | BackofficeLoadedPickerFacetModule | BackofficeLoadedDetailLayoutFacetModule | BackofficeLoadedDetailPageFacetModule | BackofficeLoadedToolFacetModule;
1304
1307
  export type BackofficeListFacetLoader = () => Promise<BackofficeLoadedListFacetModule>;
1305
1308
  export type BackofficePickerFacetLoader = () => Promise<BackofficeLoadedPickerFacetModule>;
@@ -1381,7 +1384,7 @@ export type BackofficeManifestDetailPageId<TManifest, TEntityId extends Backoffi
1381
1384
  } ? TPage extends {
1382
1385
  id: infer TPageId;
1383
1386
  } ? Extract<TPageId, string> : string : string;
1384
- export type BackofficeResolvedListFacetConfig<TOperation extends OperationType, RowRef, RowView, ListFragmentData, TWhere extends Record<string, unknown> = BackofficeOperationWhere<TOperation>, TSort extends string = BackofficeOperationSort<TOperation>, TCountOperation extends OperationType = any> = BackofficeListFacetConfig<TOperation, RowRef, RowView, ListFragmentData, TWhere, TSort, TCountOperation> & {
1387
+ export type BackofficeResolvedListFacetConfig<TOperation extends OperationType, RowRef, RowView, ListFragmentData, TWhere extends Record<string, unknown> = BackofficeOperationWhere<TOperation>, TSort extends string = BackofficeOperationSort<TOperation>, TCountOperation extends OperationType = OperationType> = BackofficeListFacetConfig<TOperation, RowRef, RowView, ListFragmentData, TWhere, TSort, TCountOperation> & {
1385
1388
  routes: BackofficeEntityRoutes;
1386
1389
  listNavigation: BackofficeListNavigation<TWhere, TSort>;
1387
1390
  listUrlCodec: BackofficeListUrlCodec<TWhere, TSort>;
@@ -1390,10 +1393,10 @@ export type BackofficeResolvedListFacetConfig<TOperation extends OperationType,
1390
1393
  export type BackofficeResolvedPickerFacetConfig<TOperation extends OperationType, RowRef, RowView, PickerFragmentData, TWhere extends Record<string, unknown> = BackofficeOperationWhere<TOperation>> = BackofficePickerFacetConfig<TOperation, RowRef, RowView, PickerFragmentData, TWhere> & {
1391
1394
  routes: BackofficeEntityRoutes;
1392
1395
  };
1393
- export type BackofficeResolvedDetailLayoutFacetConfig<LayoutRef = any, LayoutView = any, LayoutQueryData = unknown, LayoutFragmentRef = unknown, LayoutQueryVariables = Record<string, unknown>> = BackofficeDetailLayoutFacetConfig<LayoutRef, LayoutView, LayoutQueryData, LayoutFragmentRef, LayoutQueryVariables> & {
1396
+ export type BackofficeResolvedDetailLayoutFacetConfig<LayoutRef = unknown, LayoutView = unknown, LayoutQueryData = unknown, LayoutFragmentRef = unknown, LayoutQueryVariables = Record<string, unknown>> = BackofficeDetailLayoutFacetConfig<LayoutRef, LayoutView, LayoutQueryData, LayoutFragmentRef, LayoutQueryVariables> & {
1394
1397
  routes: BackofficeEntityRoutes;
1395
1398
  };
1396
- export type BackofficeResolvedDetailPageFacetConfig<LayoutView = unknown, DetailRef = any, DetailView = any, DetailQueryData = unknown, DetailFragmentRef = unknown, DetailQueryVariables = Record<string, unknown>> = BackofficeDetailPageFacetConfig<LayoutView, DetailRef, DetailView, DetailQueryData, DetailFragmentRef, DetailQueryVariables> & {
1399
+ export type BackofficeResolvedDetailPageFacetConfig<LayoutView = unknown, DetailRef = unknown, DetailView = unknown, DetailQueryData = unknown, DetailFragmentRef = unknown, DetailQueryVariables = Record<string, unknown>> = BackofficeDetailPageFacetConfig<LayoutView, DetailRef, DetailView, DetailQueryData, DetailFragmentRef, DetailQueryVariables> & {
1397
1400
  routes: BackofficeEntityRoutes;
1398
1401
  };
1399
1402
  export type BackofficeResolvedToolFacetConfig = BackofficeToolFacetConfig & {
@@ -1435,17 +1438,17 @@ export type BackofficeResolvedToolFacetModule = {
1435
1438
  export type BackofficeResolvedEntityFacetModule = BackofficeResolvedListFacetModule | BackofficeResolvedPickerFacetModule | BackofficeResolvedDetailLayoutFacetModule | BackofficeResolvedDetailPageFacetModule | BackofficeResolvedToolFacetModule;
1436
1439
  export type BackofficeListFacetConfigBase = BackofficeRuntimeListFacetConfig;
1437
1440
  export type BackofficePickerFacetConfigBase = BackofficeRuntimePickerFacetConfig;
1438
- export type BackofficeDetailLayoutFacetConfigBase = BackofficeDetailLayoutFacetConfig<any, any, any, any, any>;
1439
- export type BackofficeDetailPageFacetConfigBase = BackofficeDetailPageFacetConfig<any, any, any, any, any, any>;
1440
- export type BackofficeResolvedListFacetConfigBase = BackofficeResolvedListFacetConfig<any, any, any, any, Record<string, any>, any>;
1441
- export type BackofficeResolvedPickerFacetConfigBase = BackofficeResolvedPickerFacetConfig<any, any, any, any, Record<string, any>>;
1442
- export type BackofficeResolvedDetailLayoutFacetConfigBase = BackofficeResolvedDetailLayoutFacetConfig<any, any, any, any, any>;
1443
- export type BackofficeResolvedDetailPageFacetConfigBase = BackofficeResolvedDetailPageFacetConfig<any, any, any, any, any, any>;
1441
+ export type BackofficeDetailLayoutFacetConfigBase = BackofficeDetailLayoutFacetConfig<BackofficeErasedValue, BackofficeErasedValue, BackofficeErasedValue, BackofficeErasedValue, BackofficeErasedValue>;
1442
+ export type BackofficeDetailPageFacetConfigBase = BackofficeDetailPageFacetConfig<BackofficeErasedValue, BackofficeErasedValue, BackofficeErasedValue, BackofficeErasedValue, BackofficeErasedValue, BackofficeErasedValue>;
1443
+ export type BackofficeResolvedListFacetConfigBase = BackofficeResolvedListFacetConfig<BackofficeErasedValue, BackofficeErasedValue, BackofficeErasedValue, BackofficeErasedValue, Record<string, BackofficeErasedValue>, BackofficeErasedValue>;
1444
+ export type BackofficeResolvedPickerFacetConfigBase = BackofficeResolvedPickerFacetConfig<BackofficeErasedValue, BackofficeErasedValue, BackofficeErasedValue, BackofficeErasedValue, Record<string, BackofficeErasedValue>>;
1445
+ export type BackofficeResolvedDetailLayoutFacetConfigBase = BackofficeResolvedDetailLayoutFacetConfig<BackofficeErasedValue, BackofficeErasedValue, BackofficeErasedValue, BackofficeErasedValue, BackofficeErasedValue>;
1446
+ export type BackofficeResolvedDetailPageFacetConfigBase = BackofficeResolvedDetailPageFacetConfig<BackofficeErasedValue, BackofficeErasedValue, BackofficeErasedValue, BackofficeErasedValue, BackofficeErasedValue, BackofficeErasedValue>;
1444
1447
  export type BackofficeRuntimeResolvedListFacetConfig = BackofficeResolvedListFacetConfigBase;
1445
1448
  export type BackofficeRuntimeResolvedPickerFacetConfig = BackofficeResolvedPickerFacetConfigBase;
1446
- export type BackofficeRuntimeConnectionListConfig = BackofficeConnectionListConfig<any, any, any, any, Record<string, any>, any>;
1447
- export type BackofficeRuntimeEntityListConfig = BackofficeEntityListConfig<any, any, any, any, Record<string, any>, any>;
1448
- export type BackofficeRuntimeEntityPickerConfig = BackofficeEntityPickerConfig<any, any, any, any, Record<string, any>>;
1449
+ export type BackofficeRuntimeConnectionListConfig = BackofficeConnectionListConfig<BackofficeErasedValue, BackofficeErasedValue, BackofficeErasedValue, BackofficeErasedValue, Record<string, BackofficeErasedValue>, BackofficeErasedValue>;
1450
+ export type BackofficeRuntimeEntityListConfig = BackofficeEntityListConfig<BackofficeErasedValue, BackofficeErasedValue, BackofficeErasedValue, BackofficeErasedValue, Record<string, BackofficeErasedValue>, BackofficeErasedValue>;
1451
+ export type BackofficeRuntimeEntityPickerConfig = BackofficeEntityPickerConfig<BackofficeErasedValue, BackofficeErasedValue, BackofficeErasedValue, BackofficeErasedValue, Record<string, BackofficeErasedValue>>;
1449
1452
  export type BackofficeEntityFacetModuleCacheEntry = {
1450
1453
  status: BackofficeEntityModuleStatus;
1451
1454
  promise?: Promise<BackofficeResolvedEntityFacetModule>;