@posiwise/admin-module 0.0.148 → 0.0.150

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 (108) hide show
  1. package/esm2022/index.mjs +2 -1
  2. package/esm2022/lib/admin-module.routing.mjs +50 -5
  3. package/esm2022/lib/admin.module.mjs +16 -1
  4. package/esm2022/lib/components/TOS/terms-of-service/terms-of-service.component.mjs +3 -3
  5. package/esm2022/lib/components/config/global-config-details/global-config-details.component.mjs +11 -10
  6. package/esm2022/lib/components/contact-us/contact-us-list/contact-us-list.component.mjs +12 -11
  7. package/esm2022/lib/components/credentials/credentials/credentials.component.mjs +3 -3
  8. package/esm2022/lib/components/credentials/credentials-tab/credentials-tab.component.mjs +2 -2
  9. package/esm2022/lib/components/credentials/subscription-credentials-details/subscription-credentials-details.component.mjs +21 -9
  10. package/esm2022/lib/components/domain-config/domain-config-details/domain-config-build/domain-config-build.component.mjs +15 -13
  11. package/esm2022/lib/components/domain-config/domain-config-details/domain-config-core/domain-config-core.component.mjs +3 -3
  12. package/esm2022/lib/components/domain-config/domain-config-details/domain-config-details.component.mjs +3 -3
  13. package/esm2022/lib/components/domain-config/domain-config-details/domain-config-interface/domain-config-interface.component.mjs +3 -3
  14. package/esm2022/lib/components/domain-config/domain-config-details/domain-config-organization/domain-config-organization.component.mjs +3 -3
  15. package/esm2022/lib/components/domain-config/domain-config-details/domain-config-security/domain-config-security.component.mjs +3 -3
  16. package/esm2022/lib/components/domain-config/domain-config-list/domain-config-list.component.mjs +3 -3
  17. package/esm2022/lib/components/domain-config/domain-config-tabs/domain-config-tabs.component.mjs +2 -2
  18. package/esm2022/lib/components/faqs/add-faq/add-faq.component.mjs +3 -3
  19. package/esm2022/lib/components/incidents/incidents-list/incidents-list.component.mjs +3 -3
  20. package/esm2022/lib/components/login-notifications/login-notification-details/login-notification-details.component.mjs +14 -13
  21. package/esm2022/lib/components/login-notifications/login-notifications-list/login-notifications-list.component.mjs +3 -3
  22. package/esm2022/lib/components/mailer/mailer-list/mailer-list.component.mjs +3 -3
  23. package/esm2022/lib/components/newsletters/newsletter-details/newsletter-details.component.mjs +3 -3
  24. package/esm2022/lib/components/newsletters/newsletter-item-details/newsletter-item-details.component.mjs +3 -3
  25. package/esm2022/lib/components/newsletters/newsletters-items/newsletters-items.component.mjs +5 -3
  26. package/esm2022/lib/components/newsletters/newsletters-list/newsletters-list.component.mjs +3 -3
  27. package/esm2022/lib/components/newsletters/newsletters-tabs/newsletters-tabs.component.mjs +3 -3
  28. package/esm2022/lib/components/permissions/permissions-list/permissions-list.component.mjs +3 -3
  29. package/esm2022/lib/components/products/product-details/product-details.component.mjs +3 -3
  30. package/esm2022/lib/components/products/products-list/products-list.component.mjs +3 -3
  31. package/esm2022/lib/components/resources/resources-admin-details/resources-admin-details.component.mjs +231 -0
  32. package/esm2022/lib/components/resources/resources-admin-tabs/resources-admin-tabs.component.mjs +33 -0
  33. package/esm2022/lib/components/resources/resources-admin-tabs/resources-index/resources-index.component.mjs +108 -0
  34. package/esm2022/lib/components/resources/resources-admin-tabs/resources-insight/resources-insight.component.mjs +54 -0
  35. package/esm2022/lib/components/resources/resources-lists-insight/resources-lists-insight.component.mjs +61 -0
  36. package/esm2022/lib/components/subscriptions/subscription-details/subscription-details.component.mjs +16 -15
  37. package/esm2022/lib/components/subscriptions/subscriptions-insight/subscription-insight-average-price/subscription-insight-average-price.component.mjs +1 -1
  38. package/esm2022/lib/components/subscriptions/subscriptions-insight/subscription-insight-average-user/subscription-insight-average-user.component.mjs +1 -1
  39. package/esm2022/lib/components/subscriptions/subscriptions-insight/subscription-insight-nps/subscription-insight-nps.component.mjs +1 -1
  40. package/esm2022/lib/components/subscriptions/subscriptions-insight/subscription-insight-product-session/subscription-insight-product-session.component.mjs +1 -1
  41. package/esm2022/lib/components/subscriptions/subscriptions-list/invite-users/invite-users.component.mjs +8 -7
  42. package/esm2022/lib/components/subscriptions/subscriptions-list/subscriptions-list.component.mjs +16 -15
  43. package/esm2022/lib/components/tips/tips-list/tips-list.component.mjs +3 -3
  44. package/esm2022/lib/components/tracking/ahoy-events/ahoy-events.component.mjs +16 -15
  45. package/esm2022/lib/components/tracking/ahoy-messages/ahoy-messages.component.mjs +15 -14
  46. package/esm2022/lib/components/tracking/ahoy-visits/ahoy-visits.component.mjs +15 -14
  47. package/esm2022/lib/components/tracking/events/events.component.mjs +15 -14
  48. package/esm2022/lib/components/tracking/versions/versions.component.mjs +16 -15
  49. package/esm2022/lib/components/users/users-list/users-list.component.mjs +3 -3
  50. package/esm2022/lib/shared/interface/resource.interface.mjs +2 -0
  51. package/esm2022/lib/shared/routers/routers.mjs +5 -2
  52. package/fesm2022/posiwise-admin-module.mjs +679 -202
  53. package/fesm2022/posiwise-admin-module.mjs.map +1 -1
  54. package/index.d.ts +1 -0
  55. package/lib/admin.module.d.ts +73 -68
  56. package/lib/components/TOS/terms-of-service/terms-of-service.component.d.ts +3 -0
  57. package/lib/components/config/global-config-list/global-config-list.component.d.ts +3 -0
  58. package/lib/components/credentials/credentials/credentials.component.d.ts +3 -0
  59. package/lib/components/credentials/subscription-credentials/subscription-credentials.component.d.ts +3 -0
  60. package/lib/components/credentials/subscription-credentials-details/subscription-credentials-details.component.d.ts +2 -0
  61. package/lib/components/domain-config/domain-config-details/domain-config-build/domain-config-build.component.d.ts +3 -0
  62. package/lib/components/domain-config/domain-config-details/domain-config-core/domain-config-core.component.d.ts +3 -0
  63. package/lib/components/domain-config/domain-config-details/domain-config-details.component.d.ts +3 -0
  64. package/lib/components/domain-config/domain-config-details/domain-config-integrations/domain-config-integrations.component.d.ts +3 -0
  65. package/lib/components/domain-config/domain-config-details/domain-config-interface/domain-config-interface.component.d.ts +3 -0
  66. package/lib/components/domain-config/domain-config-details/domain-config-organization/domain-config-organization.component.d.ts +3 -0
  67. package/lib/components/domain-config/domain-config-details/domain-config-security/domain-config-security.component.d.ts +3 -0
  68. package/lib/components/domain-config/domain-config-details/domain-config-social/domain-config-social.component.d.ts +3 -0
  69. package/lib/components/domain-config/domain-config-list/domain-config-list.component.d.ts +3 -0
  70. package/lib/components/faqs/add-faq/add-faq.component.d.ts +3 -0
  71. package/lib/components/faqs/edit-faq/edit-faq.component.d.ts +3 -0
  72. package/lib/components/faqs/faqs-list/faqs-list.component.d.ts +3 -0
  73. package/lib/components/feedback-questions/feedback-questions-details/feedback-questions-details.component.d.ts +3 -0
  74. package/lib/components/feedback-questions/feedback-questions-list/feedback-questions-list.component.d.ts +3 -0
  75. package/lib/components/incidents/add-edit-incident/add-edit-incident.component.d.ts +3 -0
  76. package/lib/components/incidents/incidents-list/incidents-list.component.d.ts +3 -0
  77. package/lib/components/login-notifications/login-notification-details/login-notification-details.component.d.ts +3 -0
  78. package/lib/components/login-notifications/login-notifications-list/login-notifications-list.component.d.ts +3 -0
  79. package/lib/components/mailer/mailer-details/mailer-details.component.d.ts +3 -0
  80. package/lib/components/mailer/mailer-list/mailer-list.component.d.ts +3 -0
  81. package/lib/components/newsletters/newsletter-details/newsletter-details.component.d.ts +3 -0
  82. package/lib/components/newsletters/newsletter-item-details/newsletter-item-details.component.d.ts +3 -0
  83. package/lib/components/newsletters/newsletters-items/newsletters-items-view-details/newsletters-items-view-details.component.d.ts +3 -0
  84. package/lib/components/newsletters/newsletters-items/newsletters-items.component.d.ts +4 -0
  85. package/lib/components/newsletters/newsletters-list/newsletters-list.component.d.ts +3 -0
  86. package/lib/components/permissions/permissions-details/permissions-details.component.d.ts +3 -0
  87. package/lib/components/permissions/permissions-list/permissions-list.component.d.ts +3 -0
  88. package/lib/components/permissions/roles-list/roles-list.component.d.ts +3 -0
  89. package/lib/components/products/products-list/products-list.component.d.ts +3 -0
  90. package/lib/components/resources/resources-admin-details/resources-admin-details.component.d.ts +62 -0
  91. package/lib/components/resources/resources-admin-tabs/resources-admin-tabs.component.d.ts +10 -0
  92. package/lib/components/resources/resources-admin-tabs/resources-index/resources-index.component.d.ts +70 -0
  93. package/lib/components/resources/resources-admin-tabs/resources-insight/resources-insight.component.d.ts +24 -0
  94. package/lib/components/resources/resources-lists-insight/resources-lists-insight.component.d.ts +22 -0
  95. package/lib/components/subscriptions/subscription-product-details/subscription-product-details.component.d.ts +3 -0
  96. package/lib/components/subscriptions/subscription-products/subscription-products.component.d.ts +3 -0
  97. package/lib/components/subscriptions/subscription-users/subscription-users.component.d.ts +3 -0
  98. package/lib/components/subscriptions/subscriptions-insight/subscription-insight-average-price/subscription-insight-average-price.component.d.ts +1 -1
  99. package/lib/components/subscriptions/subscriptions-insight/subscription-insight-average-user/subscription-insight-average-user.component.d.ts +1 -1
  100. package/lib/components/subscriptions/subscriptions-insight/subscription-insight-nps/subscription-insight-nps.component.d.ts +1 -1
  101. package/lib/components/subscriptions/subscriptions-insight/subscription-insight-product-session/subscription-insight-product-session.component.d.ts +1 -1
  102. package/lib/components/subscriptions/subscriptions-list/invite-users/invite-users.component.d.ts +4 -1
  103. package/lib/components/subscriptions/subscriptions-list/subscriptions-list.component.d.ts +4 -1
  104. package/lib/components/tips/tips-list/tips-list.component.d.ts +3 -0
  105. package/lib/components/users/users-list/users-list.component.d.ts +3 -0
  106. package/lib/shared/interface/resource.interface.d.ts +73 -0
  107. package/lib/shared/routers/routers.d.ts +3 -0
  108. package/package.json +1 -1
@@ -66,4 +66,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
66
66
  type: ViewChild,
67
67
  args: ['showComment', { static: true }]
68
68
  }] } });
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vic2NyaXB0aW9uLWluc2lnaHQtYXZlcmFnZS11c2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9zdWJzY3JpcHRpb25zL3N1YnNjcmlwdGlvbnMtaW5zaWdodC9zdWJzY3JpcHRpb24taW5zaWdodC1hdmVyYWdlLXVzZXIvc3Vic2NyaXB0aW9uLWluc2lnaHQtYXZlcmFnZS11c2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9zdWJzY3JpcHRpb25zL3N1YnNjcmlwdGlvbnMtaW5zaWdodC9zdWJzY3JpcHRpb24taW5zaWdodC1hdmVyYWdlLXVzZXIvc3Vic2NyaXB0aW9uLWluc2lnaHQtYXZlcmFnZS11c2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFFBQVEsRUFHUixXQUFXLEVBQ1gsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQVUsNEJBQTRCLEVBQVEsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7QUFRM0QsTUFBTSxPQUFPLHVDQUNULFNBQVEsZ0JBQWdCO0lBNkJ4QixZQUNxQixZQUEwQixFQUMzQyxRQUFrQixFQUNELEdBQXNCO1FBRXZDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUpDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBRTFCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBdkIzQyxjQUFTLEdBQUcsRUFBRSxDQUFDO1FBRWYsWUFBTyxHQUFHLElBQUksQ0FBQztRQUVmLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFakIsU0FBSSxHQUFHLENBQUMsQ0FBQztJQW9CVCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxjQUFjLEdBQUcsaUJBQWlCLENBQUMsb0JBQW9CLEVBQUUsRUFBRSxDQUFDO1FBQ2pFLElBQUksQ0FBQyxVQUFVLEdBQUcsYUFBYSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDdkQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNsQyxJQUFJLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQztRQUNoQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCw2Q0FBNkM7SUFDckMsWUFBWTtRQUNoQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsWUFBWTthQUNaLHdCQUF3QixDQUNyQiw0QkFBNEIsQ0FBQyxhQUFhLEVBQzFDLElBQUksQ0FBQyxjQUFjLEVBQ25CLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxTQUFTO1lBQzdCLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7WUFDdkQsQ0FBQyxDQUFDLEVBQUUsRUFDUixJQUFJLENBQUMsaUJBQWlCLEVBQUUsT0FBTztZQUMzQixDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDO1lBQ3JELENBQUMsQ0FBQyxFQUFFLENBQ1g7YUFDQSxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDbEIsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUM7UUFDMUIsQ0FBQyxDQUFDO2FBQ0QsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNOLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELGlCQUFpQixDQUFDLEtBQTJEO1FBQ3pFLElBQUksQ0FBQyxpQkFBaUIsR0FBRyx3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDakYsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFUSxXQUFXO1FBQ2hCLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN4QixDQUFDOytHQWpGUSx1Q0FBdUM7bUdBQXZDLHVDQUF1Qyx5TkN4QnBELCtlQWNBOzs0RkRVYSx1Q0FBdUM7a0JBSm5ELFNBQVM7K0JBQ0ksc0NBQXNDO3dJQU9KLE9BQU87c0JBQWxELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3Q2hlY2tlZCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgSW5qZWN0b3IsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEFkbWluU2VydmljZSB9IGZyb20gJ0Bwb3Npd2lzZS9hZG1pbi1tb2R1bGUtdXRpbHMnO1xuaW1wb3J0IHsgQXBwQmFzZUNvbXBvbmVudCB9IGZyb20gJ0Bwb3Npd2lzZS9hcHAtYmFzZS1jb21wb25lbnQnO1xuaW1wb3J0IHsgUGVybWlzc2lvblNlcnZpY2UgfSBmcm9tICdAcG9zaXdpc2UvY29tbW9uLXNlcnZpY2VzJztcbmltcG9ydCB7IFBsb3RseSwgU1VCU0NSSVBUSU9OX0FOQUxZVElDU19UWVBFUywgVXNlciB9IGZyb20gJ0Bwb3Npd2lzZS9jb21tb24tdXRpbGl0aWVzJztcbmltcG9ydCB7IEhlbHBlclNlcnZpY2UgfSBmcm9tICdAcG9zaXdpc2UvaGVscGVyLXNlcnZpY2UnO1xuaW1wb3J0IHsgaGFuZGxlRGF0ZVJhbmdlU2VsZWN0aW9uIH0gZnJvbSAnQHBvc2l3aXNlL3V0aWxzJztcblxuaW1wb3J0IHsgQ29tbWVudENvbnRleHQgfSBmcm9tICdsaWJzL2FkbWluLW1vZHVsZS9zcmMvbGliL3NoYXJlZC9pbnRlcmZhY2UvYWRtaW4tbW9kdWxlLXNoYXJlZC5pbnRlcmZhY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3B3LXN1YnNjcmlwdGlvbi1pbnNpZ2h0LWF2ZXJhZ2UtdXNlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3N1YnNjcmlwdGlvbi1pbnNpZ2h0LWF2ZXJhZ2UtdXNlci5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgU3Vic2NyaXB0aW9uSW5zaWdodEF2ZXJhZ2VVc2VyQ29tcG9uZW50XG4gICAgZXh0ZW5kcyBBcHBCYXNlQ29tcG9uZW50XG4gICAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3Q2hlY2tlZFxue1xuICAgIEBWaWV3Q2hpbGQoJ3Nob3dDb21tZW50JywgeyBzdGF0aWM6IHRydWUgfSkgY29udGVudDogVGVtcGxhdGVSZWY8Q29tbWVudENvbnRleHQ+O1xuXG4gICAgZ3JhcGg6IFBsb3RseS5GaWd1cmU7XG5cbiAgICB0b3RhbFJlY29yZHM6IG51bWJlcjtcblxuICAgIGZlZWRiYWNrcyA9IFtdO1xuXG4gICAgbG9hZGluZyA9IHRydWU7XG5cbiAgICBpc0xvYWRlZCA9IGZhbHNlO1xuXG4gICAgcGFnZSA9IDE7XG5cbiAgICBncmFwaExvYWRpbmc6IGJvb2xlYW47XG5cbiAgICBzdWJzY3JpcHRpb25JZDogbnVtYmVyO1xuXG4gICAgY3VycmVudFVzZXI6IFVzZXI7XG5cbiAgICBjb21tZW50VG9TaG93OiBzdHJpbmc7XG5cbiAgICBzZWxlY3RlZERhdGVSYW5nZTtcblxuICAgIGRhdGVSYW5nZXM7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBhZG1pblNlcnZpY2U6IEFkbWluU2VydmljZSxcbiAgICAgICAgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICApIHtcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbklkID0gUGVybWlzc2lvblNlcnZpY2Uuc2VsZWN0ZWRTdWJzY3JpcHRpb24/LmlkO1xuICAgICAgICB0aGlzLmRhdGVSYW5nZXMgPSBIZWxwZXJTZXJ2aWNlLmluaXRpYWxpemVEYXRlUmFuZ2VzKCk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2UgPSAnJztcbiAgICAgICAgdGhpcy5nZXRDaGFydERhdGEoKTtcbiAgICAgICAgdGhpcy51c2VyU3RvcmUoKS5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50VXNlciA9IHJlc3BvbnNlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogRnVuY3Rpb24gdG8gZ2V0IHRoZSBkYXRhIGZvciB0aGUgZ3JhcGggKi9cbiAgICBwcml2YXRlIGdldENoYXJ0RGF0YSgpIHtcbiAgICAgICAgdGhpcy5ncmFwaExvYWRpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLmFkbWluU2VydmljZVxuICAgICAgICAgICAgLmdldFN1YnNjcmlwdGlvbkFuYWx5dGljcyhcbiAgICAgICAgICAgICAgICBTVUJTQ1JJUFRJT05fQU5BTFlUSUNTX1RZUEVTLkFWRVJBR0VfVVNFUlMsXG4gICAgICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25JZCxcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlPy5zdGFydERhdGVcbiAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlLnN0YXJ0RGF0ZS5mb3JtYXQoJ1lZWVktTU0tREQnKVxuICAgICAgICAgICAgICAgICAgICA6ICcnLFxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2U/LmVuZERhdGVcbiAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlLmVuZERhdGUuZm9ybWF0KCdZWVlZLU1NLUREJylcbiAgICAgICAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5ncmFwaCA9IHJlc3BvbnNlO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5hZGQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZ3JhcGhMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvbkRhdGVSYW5nZVNlbGVjdChldmVudDogeyBzdGFydERhdGU6IG1vbWVudC5Nb21lbnQ7IGVuZERhdGU6IG1vbWVudC5Nb21lbnQgfSkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlID0gaGFuZGxlRGF0ZVJhbmdlU2VsZWN0aW9uKGV2ZW50LCB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlKTtcbiAgICAgICAgdGhpcy5nZXRDaGFydERhdGEoKTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB9XG59XG4iLCI8YXBwLWRhdGUtcGlja2VyXG4gIFtzZWxlY3RlZERhdGVSYW5nZV09XCJzZWxlY3RlZERhdGVSYW5nZVwiXG4gIFtkYXRlUmFuZ2VzXT1cImRhdGVSYW5nZXNcIlxuICAoZGF0ZVJhbmdlQ2hhbmdlKT1cIm9uRGF0ZVJhbmdlU2VsZWN0KCRldmVudClcIj5cbjwvYXBwLWRhdGUtcGlja2VyPlxuPGRpdiBjbGFzcz1cInctMTAwIHRleHQtY2VudGVyIG10LTNcIiAqbmdJZj1cImdyYXBoTG9hZGluZ1wiPlxuICA8cC1wcm9ncmVzc1NwaW5uZXIgc3Ryb2tlV2lkdGg9XCIyXCI+IDwvcC1wcm9ncmVzc1NwaW5uZXI+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlIFtuZ0lmXT1cImdyYXBoXCI+XG4gIDxwbG90bHktcGxvdCBbZGF0YV09XCJncmFwaD8uZGF0YVwiXG4gIFtjb25maWddPVwiZ3JhcGg/LmNvbmZpZ1wiXG4gICAgW2xheW91dF09XCJncmFwaD8ubGF5b3V0XCIgW3VzZVJlc2l6ZUhhbmRsZXJdPVwidHJ1ZVwiPjwvcGxvdGx5LXBsb3Q+XG48L25nLXRlbXBsYXRlPlxuIl19
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vic2NyaXB0aW9uLWluc2lnaHQtYXZlcmFnZS11c2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9zdWJzY3JpcHRpb25zL3N1YnNjcmlwdGlvbnMtaW5zaWdodC9zdWJzY3JpcHRpb24taW5zaWdodC1hdmVyYWdlLXVzZXIvc3Vic2NyaXB0aW9uLWluc2lnaHQtYXZlcmFnZS11c2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9zdWJzY3JpcHRpb25zL3N1YnNjcmlwdGlvbnMtaW5zaWdodC9zdWJzY3JpcHRpb24taW5zaWdodC1hdmVyYWdlLXVzZXIvc3Vic2NyaXB0aW9uLWluc2lnaHQtYXZlcmFnZS11c2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFFBQVEsRUFHUixXQUFXLEVBQ1gsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQVUsNEJBQTRCLEVBQVEsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7QUFRM0QsTUFBTSxPQUFPLHVDQUNULFNBQVEsZ0JBQWdCO0lBNkJ4QixZQUNxQixZQUEwQixFQUMzQyxRQUFrQixFQUNELEdBQXNCO1FBRXZDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUpDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBRTFCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBdkIzQyxjQUFTLEdBQUcsRUFBRSxDQUFDO1FBRWYsWUFBTyxHQUFHLElBQUksQ0FBQztRQUVmLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFakIsU0FBSSxHQUFHLENBQUMsQ0FBQztJQW9CVCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxjQUFjLEdBQUcsaUJBQWlCLENBQUMsb0JBQW9CLEVBQUUsRUFBRSxDQUFDO1FBQ2pFLElBQUksQ0FBQyxVQUFVLEdBQUcsYUFBYSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDdkQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNsQyxJQUFJLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQztRQUNoQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCw2Q0FBNkM7SUFDckMsWUFBWTtRQUNoQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsWUFBWTthQUNaLHdCQUF3QixDQUNyQiw0QkFBNEIsQ0FBQyxhQUFhLEVBQzFDLElBQUksQ0FBQyxjQUFjLEVBQ25CLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxTQUFTO1lBQzdCLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7WUFDdkQsQ0FBQyxDQUFDLEVBQUUsRUFDUixJQUFJLENBQUMsaUJBQWlCLEVBQUUsT0FBTztZQUMzQixDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDO1lBQ3JELENBQUMsQ0FBQyxFQUFFLENBQ1g7YUFDQSxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDbEIsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUM7UUFDMUIsQ0FBQyxDQUFDO2FBQ0QsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNOLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELGlCQUFpQixDQUFDLEtBQTJEO1FBQ3pFLElBQUksQ0FBQyxpQkFBaUIsR0FBRyx3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDakYsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFUSxXQUFXO1FBQ2hCLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN4QixDQUFDOytHQWpGUSx1Q0FBdUM7bUdBQXZDLHVDQUF1Qyx5TkN4QnBELCtlQWNBOzs0RkRVYSx1Q0FBdUM7a0JBSm5ELFNBQVM7K0JBQ0ksc0NBQXNDO3dJQU9KLE9BQU87c0JBQWxELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3Q2hlY2tlZCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgSW5qZWN0b3IsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEFkbWluU2VydmljZSB9IGZyb20gJ0Bwb3Npd2lzZS9hZG1pbi1tb2R1bGUtdXRpbHMnO1xuaW1wb3J0IHsgQXBwQmFzZUNvbXBvbmVudCB9IGZyb20gJ0Bwb3Npd2lzZS9hcHAtYmFzZS1jb21wb25lbnQnO1xuaW1wb3J0IHsgUGVybWlzc2lvblNlcnZpY2UgfSBmcm9tICdAcG9zaXdpc2UvY29tbW9uLXNlcnZpY2VzJztcbmltcG9ydCB7IFBsb3RseSwgU1VCU0NSSVBUSU9OX0FOQUxZVElDU19UWVBFUywgVXNlciB9IGZyb20gJ0Bwb3Npd2lzZS9jb21tb24tdXRpbGl0aWVzJztcbmltcG9ydCB7IEhlbHBlclNlcnZpY2UgfSBmcm9tICdAcG9zaXdpc2UvaGVscGVyLXNlcnZpY2UnO1xuaW1wb3J0IHsgaGFuZGxlRGF0ZVJhbmdlU2VsZWN0aW9uIH0gZnJvbSAnQHBvc2l3aXNlL3V0aWxzJztcblxuaW1wb3J0IHsgQ29tbWVudENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvaW50ZXJmYWNlL2FkbWluLW1vZHVsZS1zaGFyZWQuaW50ZXJmYWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwdy1zdWJzY3JpcHRpb24taW5zaWdodC1hdmVyYWdlLXVzZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zdWJzY3JpcHRpb24taW5zaWdodC1hdmVyYWdlLXVzZXIuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFN1YnNjcmlwdGlvbkluc2lnaHRBdmVyYWdlVXNlckNvbXBvbmVudFxuICAgIGV4dGVuZHMgQXBwQmFzZUNvbXBvbmVudFxuICAgIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0NoZWNrZWRcbntcbiAgICBAVmlld0NoaWxkKCdzaG93Q29tbWVudCcsIHsgc3RhdGljOiB0cnVlIH0pIGNvbnRlbnQ6IFRlbXBsYXRlUmVmPENvbW1lbnRDb250ZXh0PjtcblxuICAgIGdyYXBoOiBQbG90bHkuRmlndXJlO1xuXG4gICAgdG90YWxSZWNvcmRzOiBudW1iZXI7XG5cbiAgICBmZWVkYmFja3MgPSBbXTtcblxuICAgIGxvYWRpbmcgPSB0cnVlO1xuXG4gICAgaXNMb2FkZWQgPSBmYWxzZTtcblxuICAgIHBhZ2UgPSAxO1xuXG4gICAgZ3JhcGhMb2FkaW5nOiBib29sZWFuO1xuXG4gICAgc3Vic2NyaXB0aW9uSWQ6IG51bWJlcjtcblxuICAgIGN1cnJlbnRVc2VyOiBVc2VyO1xuXG4gICAgY29tbWVudFRvU2hvdzogc3RyaW5nO1xuXG4gICAgc2VsZWN0ZWREYXRlUmFuZ2U7XG5cbiAgICBkYXRlUmFuZ2VzO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgYWRtaW5TZXJ2aWNlOiBBZG1pblNlcnZpY2UsXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGluamVjdG9yKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0NoZWNrZWQoKSB7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25JZCA9IFBlcm1pc3Npb25TZXJ2aWNlLnNlbGVjdGVkU3Vic2NyaXB0aW9uPy5pZDtcbiAgICAgICAgdGhpcy5kYXRlUmFuZ2VzID0gSGVscGVyU2VydmljZS5pbml0aWFsaXplRGF0ZVJhbmdlcygpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlID0gJyc7XG4gICAgICAgIHRoaXMuZ2V0Q2hhcnREYXRhKCk7XG4gICAgICAgIHRoaXMudXNlclN0b3JlKCkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFVzZXIgPSByZXNwb25zZTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEZ1bmN0aW9uIHRvIGdldCB0aGUgZGF0YSBmb3IgdGhlIGdyYXBoICovXG4gICAgcHJpdmF0ZSBnZXRDaGFydERhdGEoKSB7XG4gICAgICAgIHRoaXMuZ3JhcGhMb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5hZG1pblNlcnZpY2VcbiAgICAgICAgICAgIC5nZXRTdWJzY3JpcHRpb25BbmFseXRpY3MoXG4gICAgICAgICAgICAgICAgU1VCU0NSSVBUSU9OX0FOQUxZVElDU19UWVBFUy5BVkVSQUdFX1VTRVJTLFxuICAgICAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uSWQsXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVSYW5nZT8uc3RhcnREYXRlXG4gICAgICAgICAgICAgICAgICAgID8gdGhpcy5zZWxlY3RlZERhdGVSYW5nZS5zdGFydERhdGUuZm9ybWF0KCdZWVlZLU1NLUREJylcbiAgICAgICAgICAgICAgICAgICAgOiAnJyxcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlPy5lbmREYXRlXG4gICAgICAgICAgICAgICAgICAgID8gdGhpcy5zZWxlY3RlZERhdGVSYW5nZS5lbmREYXRlLmZvcm1hdCgnWVlZWS1NTS1ERCcpXG4gICAgICAgICAgICAgICAgICAgIDogJydcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZ3JhcGggPSByZXNwb25zZTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuYWRkKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmdyYXBoTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25EYXRlUmFuZ2VTZWxlY3QoZXZlbnQ6IHsgc3RhcnREYXRlOiBtb21lbnQuTW9tZW50OyBlbmREYXRlOiBtb21lbnQuTW9tZW50IH0pIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVSYW5nZSA9IGhhbmRsZURhdGVSYW5nZVNlbGVjdGlvbihldmVudCwgdGhpcy5zZWxlY3RlZERhdGVSYW5nZSk7XG4gICAgICAgIHRoaXMuZ2V0Q2hhcnREYXRhKCk7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgfVxufVxuIiwiPGFwcC1kYXRlLXBpY2tlclxuICBbc2VsZWN0ZWREYXRlUmFuZ2VdPVwic2VsZWN0ZWREYXRlUmFuZ2VcIlxuICBbZGF0ZVJhbmdlc109XCJkYXRlUmFuZ2VzXCJcbiAgKGRhdGVSYW5nZUNoYW5nZSk9XCJvbkRhdGVSYW5nZVNlbGVjdCgkZXZlbnQpXCI+XG48L2FwcC1kYXRlLXBpY2tlcj5cbjxkaXYgY2xhc3M9XCJ3LTEwMCB0ZXh0LWNlbnRlciBtdC0zXCIgKm5nSWY9XCJncmFwaExvYWRpbmdcIj5cbiAgPHAtcHJvZ3Jlc3NTcGlubmVyIHN0cm9rZVdpZHRoPVwiMlwiPiA8L3AtcHJvZ3Jlc3NTcGlubmVyPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSBbbmdJZl09XCJncmFwaFwiPlxuICA8cGxvdGx5LXBsb3QgW2RhdGFdPVwiZ3JhcGg/LmRhdGFcIlxuICBbY29uZmlnXT1cImdyYXBoPy5jb25maWdcIlxuICAgIFtsYXlvdXRdPVwiZ3JhcGg/LmxheW91dFwiIFt1c2VSZXNpemVIYW5kbGVyXT1cInRydWVcIj48L3Bsb3RseS1wbG90PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -105,4 +105,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
105
105
  type: ViewChild,
106
106
  args: ['showComment', { static: true }]
107
107
  }] } });
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vic2NyaXB0aW9uLWluc2lnaHQtbnBzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9zdWJzY3JpcHRpb25zL3N1YnNjcmlwdGlvbnMtaW5zaWdodC9zdWJzY3JpcHRpb24taW5zaWdodC1ucHMvc3Vic2NyaXB0aW9uLWluc2lnaHQtbnBzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9zdWJzY3JpcHRpb25zL3N1YnNjcmlwdGlvbnMtaW5zaWdodC9zdWJzY3JpcHRpb24taW5zaWdodC1ucHMvc3Vic2NyaXB0aW9uLWluc2lnaHQtbnBzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFFBQVEsRUFHUixXQUFXLEVBQ1gsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0UsT0FBTyxFQUNILFNBQVMsRUFHVCw0QkFBNEIsRUFFL0IsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFLM0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7Ozs7Ozs7OztBQU10RCxNQUFNLE9BQU8sK0JBQ1QsU0FBUSxnQkFB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QUFFLE9BQU87WUFDM0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztZQUNyRCxDQUFDLENBQUMsRUFBRSxDQUNYO2FBQ0EsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDO1FBQzFCLENBQUMsQ0FBQzthQUNELEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDTixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxLQUEyRDtRQUN6RSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsd0JBQXdCLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2pGLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRVEsV0FBVztRQUNoQixLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDeEIsQ0FBQzsrR0FuSFEsK0JBQStCO21HQUEvQiwrQkFBK0IsZ05DakM1QyxtNEhBa0hBOzs0RkRqRmEsK0JBQStCO2tCQUozQyxTQUFTOytCQUNJLDZCQUE2QjsyTEFPSyxPQUFPO3NCQUFsRCxTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0NoZWNrZWQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEluamVjdG9yLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBZG1pblNlcnZpY2UgfSBmcm9tICdAcG9zaXdpc2UvYWRtaW4tbW9kdWxlLXV0aWxzJztcbmltcG9ydCB7IEFwcEJhc2VDb21wb25lbnQgfSBmcm9tICdAcG9zaXdpc2UvYXBwLWJhc2UtY29tcG9uZW50JztcbmltcG9ydCB7IENvbW1vblNlcnZpY2UsIFBlcm1pc3Npb25TZXJ2aWNlIH0gZnJvbSAnQHBvc2l3aXNlL2NvbW1vbi1zZXJ2aWNlcyc7XG5pbXBvcnQge1xuICAgIFBBR0VfU0laRSxcbiAgICBQYWdpbmcsXG4gICAgUGxvdGx5LFxuICAgIFNVQlNDUklQVElPTl9BTkFMWVRJQ1NfVFlQRVMsXG4gICAgVXNlclxufSBmcm9tICdAcG9zaXdpc2UvY29tbW9uLXV0aWxpdGllcyc7XG5pbXBvcnQgeyBIZWxwZXJTZXJ2aWNlIH0gZnJvbSAnQHBvc2l3aXNlL2hlbHBlci1zZXJ2aWNlJztcbmltcG9ydCB7IGhhbmRsZURhdGVSYW5nZVNlbGVjdGlvbiB9IGZyb20gJ0Bwb3Npd2lzZS91dGlscyc7XG5cbmltcG9ydCB7IENvbW1lbnRDb250ZXh0IH0gZnJvbSAnbGlicy9hZG1pbi1tb2R1bGUvc3JjL2xpYi9zaGFyZWQvaW50ZXJmYWNlL2FkbWluLW1vZHVsZS1zaGFyZWQuaW50ZXJmYWNlJztcbmltcG9ydCB7IExhenlMb2FkRXZlbnQgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5cbmltcG9ydCB7IE5nYk1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3B3LXN1YnNjcmlwdGlvbi1pbnNpZ2h0LW5wcycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3N1YnNjcmlwdGlvbi1pbnNpZ2h0LW5wcy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgU3Vic2NyaXB0aW9uSW5zaWdodE5wc0NvbXBvbmVudFxuICAgIGV4dGVuZHMgQXBwQmFzZUNvbXBvbmVudFxuICAgIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0NoZWNrZWRcbntcbiAgICBAVmlld0NoaWxkKCdzaG93Q29tbWVudCcsIHsgc3RhdGljOiB0cnVlIH0pIGNvbnRlbnQ6IFRlbXBsYXRlUmVmPENvbW1lbnRDb250ZXh0PjtcblxuICAgIGdyYXBoOiBQbG90bHkuRmlndXJlO1xuXG4gICAgdG90YWxSZWNvcmRzOiBudW1iZXI7XG5cbiAgICBmZWVkYmFja3MgPSBbXTtcblxuICAgIGxvYWRpbmcgPSB0cnVlO1xuXG4gICAgaXNMb2FkZWQgPSBmYWxzZTtcblxuICAgIHBhZ2UgPSAxO1xuXG4gICAgZ3JhcGhMb2FkaW5nOiBib29sZWFuO1xuXG4gICAgc3Vic2NyaXB0aW9uSWQ6IG51bWJlcjtcblxuICAgIGN1cnJlbnRVc2VyOiBVc2VyO1xuXG4gICAgY29tbWVudFRvU2hvdzogc3RyaW5nO1xuXG4gICAgc2VsZWN0ZWREYXRlUmFuZ2U7XG5cbiAgICBkYXRlUmFuZ2VzO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgYWRtaW5TZXJ2aWNlOiBBZG1pblNlcnZpY2UsXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjb21tb25TZXJ2aWNlOiBDb21tb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG1vZGFsU2VydmljZTogTmdiTW9kYWwsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICAgICkge1xuICAgICAgICBzdXBlcihpbmplY3Rvcik7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdDaGVja2VkKCkge1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uSWQgPSBQZXJtaXNzaW9uU2VydmljZS5zZWxlY3RlZFN1YnNjcmlwdGlvbj8uaWQ7XG4gICAgICAgIHRoaXMuZGF0ZVJhbmdlcyA9IEhlbHBlclNlcnZpY2UuaW5pdGlhbGl6ZURhdGVSYW5nZXMoKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVSYW5nZSA9ICcnO1xuICAgICAgICB0aGlzLmdldENoYXJ0RGF0YSgpO1xuICAgICAgICB0aGlzLnVzZXJTdG9yZSgpLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRVc2VyID0gcmVzcG9uc2U7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uTGF6eUxvYWQoZXZlbnQ6IExhenlMb2FkRXZlbnQpIHtcbiAgICAgICAgY29uc3QgcGFnZURldGFpbHMgPSBIZWxwZXJTZXJ2aWNlLm9uVGFibGVMYXp5TG9hZChldmVudCk7XG4gICAgICAgIHRoaXMucGFnZSA9IHBhZ2VEZXRhaWxzLnBhZ2U7XG4gICAgICAgIHRoaXMuZ2V0QWxsRmVlZGJhY2tzKHtcbiAgICAgICAgICAgIHBhZ2U6IHRoaXMucGFnZSxcbiAgICAgICAgICAgIHBhZ2Vfc2l6ZTogUEFHRV9TSVpFLFxuICAgICAgICAgICAgb3JkZXJfYnk6IHBhZ2VEZXRhaWxzLnNvcnRGaWVsZCxcbiAgICAgICAgICAgIG9yZGVyX2RpcmVjdGlvbjogcGFnZURldGFpbHMuc29ydE9yZGVyXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0QWxsRmVlZGJhY2tzKHBhZ2luZzogUGFnaW5nKSB7XG4gICAgICAgIHRoaXMuY29tbW9uU2VydmljZVxuICAgICAgICAgICAgLmdldEFsbFVzZXJGZWVkYmFja3ModGhpcy5zdWJzY3JpcHRpb25JZCwgcGFnaW5nKVxuICAgICAgICAgICAgLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5mZWVkYmFja3MgPSByZXNwb25zZT8udXNlcl9mZWVkYmFja3M7XG4gICAgICAgICAgICAgICAgdGhpcy50b3RhbFJlY29yZHMgPSByZXNwb25zZT8ub2JqZWN0X2NvdW50O1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5hZGQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb3BlbkNvbW1lbnQodmFsOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5jb21tZW50VG9TaG93ID0gdmFsO1xuICAgICAgICB0aGlzLm1vZGFsU2VydmljZS5vcGVuKHRoaXMuY29udGVudCwge1xuICAgICAgICAgICAgY2VudGVyZWQ6IHRydWUsXG4gICAgICAgICAgICB3aW5kb3dDbGFzczogJ21vZGFsLWhvbGRlcidcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEZ1bmN0aW9uIHRvIGdldCB0aGUgZGF0YSBmb3IgdGhlIGdyYXBoICovXG4gICAgcHJpdmF0ZSBnZXRDaGFydERhdGEoKSB7XG4gICAgICAgIHRoaXMuZ3JhcGhMb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5hZG1pblNlcnZpY2VcbiAgICAgICAgICAgIC5nZXRTdWJzY3JpcHRpb25BbmFseXRpY3MoXG4gICAgICAgICAgICAgICAgU1VCU0NSSVBUSU9OX0FOQUxZVElDU19UWVBFUy5OUFMsXG4gICAgICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25JZCxcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlPy5zdGFydERhdGVcbiAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlLnN0YXJ0RGF0ZS5mb3JtYXQoJ1lZWVktTU0tREQnKVxuICAgICAgICAgICAgICAgICAgICA6ICcnLFxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2U/LmVuZERhdGVcbiAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlLmVuZERhdGUuZm9ybWF0KCdZWVlZLU1NLUREJylcbiAgICAgICAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5ncmFwaCA9IHJlc3BvbnNlO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5hZGQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZ3JhcGhMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvbkRhdGVSYW5nZVNlbGVjdChldmVudDogeyBzdGFydERhdGU6IG1vbWVudC5Nb21lbnQ7IGVuZERhdGU6IG1vbWVudC5Nb21lbnQgfSkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlID0gaGFuZGxlRGF0ZVJhbmdlU2VsZWN0aW9uKGV2ZW50LCB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlKTtcbiAgICAgICAgdGhpcy5nZXRDaGFydERhdGEoKTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB9XG59XG4iLCI8YXBwLWRhdGUtcGlja2VyXG4gIFtzZWxlY3RlZERhdGVSYW5nZV09XCJzZWxlY3RlZERhdGVSYW5nZVwiXG4gIFtkYXRlUmFuZ2VzXT1cImRhdGVSYW5nZXNcIlxuICAoZGF0ZVJhbmdlQ2hhbmdlKT1cIm9uRGF0ZVJhbmdlU2VsZWN0KCRldmVudClcIj5cbjwvYXBwLWRhdGUtcGlja2VyPlxuPGRpdiBjbGFzcz1cInctMTAwIHRleHQtY2VudGVyIG10LTNcIiAqbmdJZj1cImdyYXBoTG9hZGluZ1wiPlxuICA8cC1wcm9ncmVzc1NwaW5uZXIgc3Ryb2tlV2lkdGg9XCIyXCI+IDwvcC1wcm9ncmVzc1NwaW5uZXI+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlIFtuZ0lmXT1cImdyYXBoXCI+XG4gIDxwbG90bHktcGxvdCBbZGF0YV09XCJncmFwaD8uZGF0YVwiXG4gIFtjb25maWddPVwiZ3JhcGg/LmNvbmZpZ1wiXG4gICAgW2xheW91dF09XCJncmFwaD8ubGF5b3V0XCIgW3VzZVJlc2l6ZUhhbmRsZXJdPVwidHJ1ZVwiPjwvcGxvdGx5LXBsb3Q+XG48L25nLXRlbXBsYXRlPlxuXG48ZGl2IGNsYXNzPVwicm93IG0tMFwiPlxuICA8aDIgY2xhc3M9XCJjYXJkLXRpdGxlIHAtMCBteS00XCI+VXNlciBGZWVkYmFja3M8L2gyPlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJ3LTEwMCB0ZXh0LWNlbnRlciBtdC0zXCJcbiAgKm5nSWY9XCIhaXNMb2FkZWRcIj5cbiAgPHAtcHJvZ3Jlc3NTcGlubmVyIHN0cm9rZVdpZHRoPVwiMlwiPiA8L3AtcHJvZ3Jlc3NTcGlubmVyPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwicHJpbWVuZy1kYXRhdGFibGUtY29udGFpbmVyIHRhYmxlLXJlc3BvbnNpdmUgbXQtMFwiXG4gIFtjbGFzcy5oaWRlVGFibGVdPVwidG90YWxSZWNvcmRzID09PSAwXCI+XG4gIDxwLXRhYmxlICN0dFxuICAgIFt2YWx1ZV09XCJmZWVkYmFja3NcIlxuICAgIFtwYWdpbmF0b3JdPVwidG90YWxSZWNvcmRzICE9PSAwXCJcbiAgICBbcm93c109XCJQQUdFX1NJWkVcIlxuICAgIFt0b3RhbFJlY29yZHNdPVwidG90YWxSZWNvcmRzXCJcbiAgICBbbG9hZGluZ109XCJsb2FkaW5nXCJcbiAgICBbbGF6eV09XCJ0cnVlXCJcbiAgICAob25MYXp5TG9hZCk9XCJvbkxhenlMb2FkKCRldmVudClcIlxuICAgIFtmaWx0ZXJEZWxheV09XCIxMDAwXCJcbiAgICBbY3VzdG9tU29ydF09XCJ0cnVlXCI+XG4gICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiPlxuICAgICAgPHRyPlxuICAgICAgICA8dGggc2NvcGU9XCJ0cnVlXCJcbiAgICAgICAgICBwU29ydGFibGVDb2x1bW49XCJjcmVhdGVkX2F0XCI+XG4gICAgICAgICAgQ3JlYXRlZCBBdFxuICAgICAgICAgIDxwLXNvcnRJY29uIGZpZWxkPVwiY3JlYXRlZF9hdFwiPjwvcC1zb3J0SWNvbj5cbiAgICAgICAgPC90aD5cbiAgICAgICAgPHRoIHNjb3BlPVwidHJ1ZVwiPlVzZXIgTmFtZTwvdGg+XG4gICAgICAgIDx0aCBzY29wZT1cInRydWVcIj5Qcm9kdWN0IE5hbWU8L3RoPlxuICAgICAgICA8dGggc2NvcGU9XCJ0cnVlXCI+RmVlZGJhY2sgUXVlc3Rpb24gTmFtZTwvdGg+XG4gICAgICAgIDx0aCBzY29wZT1cInRydWVcIj5Db21tZW50PC90aD5cbiAgICAgICAgPHRoIHNjb3BlPVwidHJ1ZVwiXG4gICAgICAgICAgcFNvcnRhYmxlQ29sdW1uPVwidmFsdWVcIj5cbiAgICAgICAgICBWYWx1ZVxuICAgICAgICAgIDxwLXNvcnRJY29uIGZpZWxkPVwidmFsdWVcIj48L3Atc29ydEljb24+XG4gICAgICAgIDwvdGg+XG4gICAgICAgIDx0aCBjbGFzcz1cImFjdGlvbnMtbGlzdC10d29cIlxuICAgICAgICAgIHNjb3BlPVwidHJ1ZVwiPkFjdGlvbjwvdGg+XG4gICAgICA8L3RyPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPCEtLSBUYWJsZSBCb2R5IC0tPlxuICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJib2R5XCJcbiAgICAgIGxldC1pdGVtPlxuICAgICAgPHRyPlxuICAgICAgICA8dGQgZGF0YS1oZWFkPVwiY3JlYXRlZF9hdFwiPnt7IGl0ZW0/LmNyZWF0ZWRfYXQgfCBkYXRlRm9ybWF0IH19PC90ZD5cbiAgICAgICAgPHRkIGRhdGEtaGVhZD1cInVzZXJfbmFtZVwiPlxuICAgICAgICAgIDxhIFtyb3V0ZXJMaW5rXT1cIlsnL21lbWJlcnMvJyArIGl0ZW0udXNlcl9zbHVnXVwiPnt7IGl0ZW0/LnVzZXJfbmFtZSB9fTwvYT5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkIGRhdGEtaGVhZD1cInByb2R1Y3RfbmFtZVwiPnt7IGl0ZW0/LnByb2R1Y3RfbmFtZSB9fTwvdGQ+XG4gICAgICAgIDx0ZCBkYXRhLWhlYWQ9XCJmZWVkYmFja19xdWVzdGlvbl9uYW1lXCI+e3sgaXRlbT8uZmVlZGJhY2tfcXVlc3Rpb25fbmFtZSB9fTwvdGQ+XG4gICAgICAgIDx0ZCBkYXRhLWhlYWQ9XCJjb21tZW50XCI+XG4gICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cIml0ZW0/LmNvbW1lbnRcIlxuICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1pbmZvXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvcGVuQ29tbWVudChpdGVtPy5jb21tZW50KVwiPlxuICAgICAgICAgICAgRGlzcGxheVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQgZGF0YS1oZWFkPVwidmFsdWVcIj5cbiAgICAgICAgICA8c3BhbiBbbmdDbGFzc109XCJ7J2Z3LWJvbGQgdGV4dC1kYW5nZXInOml0ZW0/LnZhbHVlIDw9IDYsJ2Z3LWJvbGQgdGV4dC1zdWNjZXNzJzppdGVtLnZhbHVlPjh9XCI+XG4gICAgICAgICAgICB7eyBpdGVtPy52YWx1ZSB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkIGRhdGEtaGVhZD1cIkFjdGlvblwiPlxuICAgICAgICAgIDx1bCBjbGFzcz1cImxpc3QtdW5zdHlsZWQgbGlzdC1pbmxpbmUgbGlzdC1hY3Rpb25cIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJjdXJyZW50VXNlciAmJiBpdGVtLnVzZXJfaWQgIT09IGN1cnJlbnRVc2VyLmlkXCI+XG4gICAgICAgICAgICAgIDxsaSBuZ2JUb29sdGlwPVwiU2VuZCBDaGF0IE1lc3NhZ2VcIlxuICAgICAgICAgICAgICAgICpyYmFjQWxsb3c9XCInUGFnZXMuQ2hhdCdcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwibWUtMiBtZS1zbS0zXCJcbiAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJbJy9tZXNzYWdlJ11cIlxuICAgICAgICAgICAgICAgIFtmcmFnbWVudF09XCJpdGVtLnVzZXJfc2x1Z1wiPlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtY29tbWVudHMgY3RhMS1pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8L3VsPlxuICAgICAgICA8L3RkPlxuICAgICAgPC90cj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L3AtdGFibGU+XG4gIDxzcGFuIGNsYXNzPVwidG90YWwtcmVjb3Jkcy1jb3VudFwiICpuZ0lmPVwidG90YWxSZWNvcmRzICE9PSAwXCI+VG90YWw6IHt7IHRvdGFsUmVjb3JkcyB9fTwvc3Bhbj5cbjwvZGl2PlxuPGRpdiAqbmdJZj1cInRvdGFsUmVjb3JkcyA9PT0gMCAmJiBpc0xvYWRlZFwiPlxuICA8cHctbm8tZGF0YSBbd2l0aEltYWdlXT1cInRydWVcIiBtZXNzYWdlPVwiTm8gRmVlZGJhY2sgRm91bmRcIj4gPC9wdy1uby1kYXRhPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjc2hvd0NvbW1lbnRcbiAgbGV0LW1vZGFsPlxuICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyXCI+XG4gICAgPGg0IGNsYXNzPVwibWItMFwiPkNvbW1lbnQ8L2g0PlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXG4gICAgICBjbGFzcz1cImJ0bi1jbG9zZSBmbG9hdC1lbmRcIlxuICAgICAgYXJpYS1sYWJlbD1cIkNsb3NlXCJcbiAgICAgIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIj5cblxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj5cbiAgICA8aDYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBtb2RhbC1iYXNpYy10aXRsZVwiPnt7IGNvbW1lbnRUb1Nob3cgfX08L2g2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vic2NyaXB0aW9uLWluc2lnaHQtbnBzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9zdWJzY3JpcHRpb25zL3N1YnNjcmlwdGlvbnMtaW5zaWdodC9zdWJzY3JpcHRpb24taW5zaWdodC1ucHMvc3Vic2NyaXB0aW9uLWluc2lnaHQtbnBzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9zdWJzY3JpcHRpb25zL3N1YnNjcmlwdGlvbnMtaW5zaWdodC9zdWJzY3JpcHRpb24taW5zaWdodC1ucHMvc3Vic2NyaXB0aW9uLWluc2lnaHQtbnBzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFFBQVEsRUFHUixXQUFXLEVBQ1gsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0UsT0FBTyxFQUNILFNBQVMsRUFHVCw0QkFBNEIsRUFFL0IsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFJM0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7Ozs7Ozs7OztBQVF0RCxNQUFNLE9BQU8sK0JBQ1QsU0FBUSxnQkFB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QUFFLE9BQU87WUFDM0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztZQUNyRCxDQUFDLENBQUMsRUFBRSxDQUNYO2FBQ0EsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDO1FBQzFCLENBQUMsQ0FBQzthQUNELEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDTixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxLQUEyRDtRQUN6RSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsd0JBQXdCLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2pGLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRVEsV0FBVztRQUNoQixLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDeEIsQ0FBQzsrR0FuSFEsK0JBQStCO21HQUEvQiwrQkFBK0IsZ05DbEM1QyxtNEhBa0hBOzs0RkRoRmEsK0JBQStCO2tCQUozQyxTQUFTOytCQUNJLDZCQUE2QjsyTEFPSyxPQUFPO3NCQUFsRCxTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0NoZWNrZWQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEluamVjdG9yLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBZG1pblNlcnZpY2UgfSBmcm9tICdAcG9zaXdpc2UvYWRtaW4tbW9kdWxlLXV0aWxzJztcbmltcG9ydCB7IEFwcEJhc2VDb21wb25lbnQgfSBmcm9tICdAcG9zaXdpc2UvYXBwLWJhc2UtY29tcG9uZW50JztcbmltcG9ydCB7IENvbW1vblNlcnZpY2UsIFBlcm1pc3Npb25TZXJ2aWNlIH0gZnJvbSAnQHBvc2l3aXNlL2NvbW1vbi1zZXJ2aWNlcyc7XG5pbXBvcnQge1xuICAgIFBBR0VfU0laRSxcbiAgICBQYWdpbmcsXG4gICAgUGxvdGx5LFxuICAgIFNVQlNDUklQVElPTl9BTkFMWVRJQ1NfVFlQRVMsXG4gICAgVXNlclxufSBmcm9tICdAcG9zaXdpc2UvY29tbW9uLXV0aWxpdGllcyc7XG5pbXBvcnQgeyBIZWxwZXJTZXJ2aWNlIH0gZnJvbSAnQHBvc2l3aXNlL2hlbHBlci1zZXJ2aWNlJztcbmltcG9ydCB7IGhhbmRsZURhdGVSYW5nZVNlbGVjdGlvbiB9IGZyb20gJ0Bwb3Npd2lzZS91dGlscyc7XG5cbmltcG9ydCB7IExhenlMb2FkRXZlbnQgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5cbmltcG9ydCB7IE5nYk1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuXG5pbXBvcnQgeyBDb21tZW50Q29udGV4dCB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9pbnRlcmZhY2UvYWRtaW4tbW9kdWxlLXNoYXJlZC5pbnRlcmZhY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3B3LXN1YnNjcmlwdGlvbi1pbnNpZ2h0LW5wcycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3N1YnNjcmlwdGlvbi1pbnNpZ2h0LW5wcy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgU3Vic2NyaXB0aW9uSW5zaWdodE5wc0NvbXBvbmVudFxuICAgIGV4dGVuZHMgQXBwQmFzZUNvbXBvbmVudFxuICAgIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0NoZWNrZWRcbntcbiAgICBAVmlld0NoaWxkKCdzaG93Q29tbWVudCcsIHsgc3RhdGljOiB0cnVlIH0pIGNvbnRlbnQ6IFRlbXBsYXRlUmVmPENvbW1lbnRDb250ZXh0PjtcblxuICAgIGdyYXBoOiBQbG90bHkuRmlndXJlO1xuXG4gICAgdG90YWxSZWNvcmRzOiBudW1iZXI7XG5cbiAgICBmZWVkYmFja3MgPSBbXTtcblxuICAgIGxvYWRpbmcgPSB0cnVlO1xuXG4gICAgaXNMb2FkZWQgPSBmYWxzZTtcblxuICAgIHBhZ2UgPSAxO1xuXG4gICAgZ3JhcGhMb2FkaW5nOiBib29sZWFuO1xuXG4gICAgc3Vic2NyaXB0aW9uSWQ6IG51bWJlcjtcblxuICAgIGN1cnJlbnRVc2VyOiBVc2VyO1xuXG4gICAgY29tbWVudFRvU2hvdzogc3RyaW5nO1xuXG4gICAgc2VsZWN0ZWREYXRlUmFuZ2U7XG5cbiAgICBkYXRlUmFuZ2VzO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgYWRtaW5TZXJ2aWNlOiBBZG1pblNlcnZpY2UsXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjb21tb25TZXJ2aWNlOiBDb21tb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG1vZGFsU2VydmljZTogTmdiTW9kYWwsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICAgICkge1xuICAgICAgICBzdXBlcihpbmplY3Rvcik7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdDaGVja2VkKCkge1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uSWQgPSBQZXJtaXNzaW9uU2VydmljZS5zZWxlY3RlZFN1YnNjcmlwdGlvbj8uaWQ7XG4gICAgICAgIHRoaXMuZGF0ZVJhbmdlcyA9IEhlbHBlclNlcnZpY2UuaW5pdGlhbGl6ZURhdGVSYW5nZXMoKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVSYW5nZSA9ICcnO1xuICAgICAgICB0aGlzLmdldENoYXJ0RGF0YSgpO1xuICAgICAgICB0aGlzLnVzZXJTdG9yZSgpLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRVc2VyID0gcmVzcG9uc2U7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uTGF6eUxvYWQoZXZlbnQ6IExhenlMb2FkRXZlbnQpIHtcbiAgICAgICAgY29uc3QgcGFnZURldGFpbHMgPSBIZWxwZXJTZXJ2aWNlLm9uVGFibGVMYXp5TG9hZChldmVudCk7XG4gICAgICAgIHRoaXMucGFnZSA9IHBhZ2VEZXRhaWxzLnBhZ2U7XG4gICAgICAgIHRoaXMuZ2V0QWxsRmVlZGJhY2tzKHtcbiAgICAgICAgICAgIHBhZ2U6IHRoaXMucGFnZSxcbiAgICAgICAgICAgIHBhZ2Vfc2l6ZTogUEFHRV9TSVpFLFxuICAgICAgICAgICAgb3JkZXJfYnk6IHBhZ2VEZXRhaWxzLnNvcnRGaWVsZCxcbiAgICAgICAgICAgIG9yZGVyX2RpcmVjdGlvbjogcGFnZURldGFpbHMuc29ydE9yZGVyXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0QWxsRmVlZGJhY2tzKHBhZ2luZzogUGFnaW5nKSB7XG4gICAgICAgIHRoaXMuY29tbW9uU2VydmljZVxuICAgICAgICAgICAgLmdldEFsbFVzZXJGZWVkYmFja3ModGhpcy5zdWJzY3JpcHRpb25JZCwgcGFnaW5nKVxuICAgICAgICAgICAgLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5mZWVkYmFja3MgPSByZXNwb25zZT8udXNlcl9mZWVkYmFja3M7XG4gICAgICAgICAgICAgICAgdGhpcy50b3RhbFJlY29yZHMgPSByZXNwb25zZT8ub2JqZWN0X2NvdW50O1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5hZGQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb3BlbkNvbW1lbnQodmFsOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5jb21tZW50VG9TaG93ID0gdmFsO1xuICAgICAgICB0aGlzLm1vZGFsU2VydmljZS5vcGVuKHRoaXMuY29udGVudCwge1xuICAgICAgICAgICAgY2VudGVyZWQ6IHRydWUsXG4gICAgICAgICAgICB3aW5kb3dDbGFzczogJ21vZGFsLWhvbGRlcidcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEZ1bmN0aW9uIHRvIGdldCB0aGUgZGF0YSBmb3IgdGhlIGdyYXBoICovXG4gICAgcHJpdmF0ZSBnZXRDaGFydERhdGEoKSB7XG4gICAgICAgIHRoaXMuZ3JhcGhMb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5hZG1pblNlcnZpY2VcbiAgICAgICAgICAgIC5nZXRTdWJzY3JpcHRpb25BbmFseXRpY3MoXG4gICAgICAgICAgICAgICAgU1VCU0NSSVBUSU9OX0FOQUxZVElDU19UWVBFUy5OUFMsXG4gICAgICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25JZCxcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlPy5zdGFydERhdGVcbiAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlLnN0YXJ0RGF0ZS5mb3JtYXQoJ1lZWVktTU0tREQnKVxuICAgICAgICAgICAgICAgICAgICA6ICcnLFxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2U/LmVuZERhdGVcbiAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlLmVuZERhdGUuZm9ybWF0KCdZWVlZLU1NLUREJylcbiAgICAgICAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5ncmFwaCA9IHJlc3BvbnNlO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5hZGQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZ3JhcGhMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvbkRhdGVSYW5nZVNlbGVjdChldmVudDogeyBzdGFydERhdGU6IG1vbWVudC5Nb21lbnQ7IGVuZERhdGU6IG1vbWVudC5Nb21lbnQgfSkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlID0gaGFuZGxlRGF0ZVJhbmdlU2VsZWN0aW9uKGV2ZW50LCB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlKTtcbiAgICAgICAgdGhpcy5nZXRDaGFydERhdGEoKTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB9XG59XG4iLCI8YXBwLWRhdGUtcGlja2VyXG4gIFtzZWxlY3RlZERhdGVSYW5nZV09XCJzZWxlY3RlZERhdGVSYW5nZVwiXG4gIFtkYXRlUmFuZ2VzXT1cImRhdGVSYW5nZXNcIlxuICAoZGF0ZVJhbmdlQ2hhbmdlKT1cIm9uRGF0ZVJhbmdlU2VsZWN0KCRldmVudClcIj5cbjwvYXBwLWRhdGUtcGlja2VyPlxuPGRpdiBjbGFzcz1cInctMTAwIHRleHQtY2VudGVyIG10LTNcIiAqbmdJZj1cImdyYXBoTG9hZGluZ1wiPlxuICA8cC1wcm9ncmVzc1NwaW5uZXIgc3Ryb2tlV2lkdGg9XCIyXCI+IDwvcC1wcm9ncmVzc1NwaW5uZXI+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlIFtuZ0lmXT1cImdyYXBoXCI+XG4gIDxwbG90bHktcGxvdCBbZGF0YV09XCJncmFwaD8uZGF0YVwiXG4gIFtjb25maWddPVwiZ3JhcGg/LmNvbmZpZ1wiXG4gICAgW2xheW91dF09XCJncmFwaD8ubGF5b3V0XCIgW3VzZVJlc2l6ZUhhbmRsZXJdPVwidHJ1ZVwiPjwvcGxvdGx5LXBsb3Q+XG48L25nLXRlbXBsYXRlPlxuXG48ZGl2IGNsYXNzPVwicm93IG0tMFwiPlxuICA8aDIgY2xhc3M9XCJjYXJkLXRpdGxlIHAtMCBteS00XCI+VXNlciBGZWVkYmFja3M8L2gyPlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJ3LTEwMCB0ZXh0LWNlbnRlciBtdC0zXCJcbiAgKm5nSWY9XCIhaXNMb2FkZWRcIj5cbiAgPHAtcHJvZ3Jlc3NTcGlubmVyIHN0cm9rZVdpZHRoPVwiMlwiPiA8L3AtcHJvZ3Jlc3NTcGlubmVyPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwicHJpbWVuZy1kYXRhdGFibGUtY29udGFpbmVyIHRhYmxlLXJlc3BvbnNpdmUgbXQtMFwiXG4gIFtjbGFzcy5oaWRlVGFibGVdPVwidG90YWxSZWNvcmRzID09PSAwXCI+XG4gIDxwLXRhYmxlICN0dFxuICAgIFt2YWx1ZV09XCJmZWVkYmFja3NcIlxuICAgIFtwYWdpbmF0b3JdPVwidG90YWxSZWNvcmRzICE9PSAwXCJcbiAgICBbcm93c109XCJQQUdFX1NJWkVcIlxuICAgIFt0b3RhbFJlY29yZHNdPVwidG90YWxSZWNvcmRzXCJcbiAgICBbbG9hZGluZ109XCJsb2FkaW5nXCJcbiAgICBbbGF6eV09XCJ0cnVlXCJcbiAgICAob25MYXp5TG9hZCk9XCJvbkxhenlMb2FkKCRldmVudClcIlxuICAgIFtmaWx0ZXJEZWxheV09XCIxMDAwXCJcbiAgICBbY3VzdG9tU29ydF09XCJ0cnVlXCI+XG4gICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiPlxuICAgICAgPHRyPlxuICAgICAgICA8dGggc2NvcGU9XCJ0cnVlXCJcbiAgICAgICAgICBwU29ydGFibGVDb2x1bW49XCJjcmVhdGVkX2F0XCI+XG4gICAgICAgICAgQ3JlYXRlZCBBdFxuICAgICAgICAgIDxwLXNvcnRJY29uIGZpZWxkPVwiY3JlYXRlZF9hdFwiPjwvcC1zb3J0SWNvbj5cbiAgICAgICAgPC90aD5cbiAgICAgICAgPHRoIHNjb3BlPVwidHJ1ZVwiPlVzZXIgTmFtZTwvdGg+XG4gICAgICAgIDx0aCBzY29wZT1cInRydWVcIj5Qcm9kdWN0IE5hbWU8L3RoPlxuICAgICAgICA8dGggc2NvcGU9XCJ0cnVlXCI+RmVlZGJhY2sgUXVlc3Rpb24gTmFtZTwvdGg+XG4gICAgICAgIDx0aCBzY29wZT1cInRydWVcIj5Db21tZW50PC90aD5cbiAgICAgICAgPHRoIHNjb3BlPVwidHJ1ZVwiXG4gICAgICAgICAgcFNvcnRhYmxlQ29sdW1uPVwidmFsdWVcIj5cbiAgICAgICAgICBWYWx1ZVxuICAgICAgICAgIDxwLXNvcnRJY29uIGZpZWxkPVwidmFsdWVcIj48L3Atc29ydEljb24+XG4gICAgICAgIDwvdGg+XG4gICAgICAgIDx0aCBjbGFzcz1cImFjdGlvbnMtbGlzdC10d29cIlxuICAgICAgICAgIHNjb3BlPVwidHJ1ZVwiPkFjdGlvbjwvdGg+XG4gICAgICA8L3RyPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPCEtLSBUYWJsZSBCb2R5IC0tPlxuICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJib2R5XCJcbiAgICAgIGxldC1pdGVtPlxuICAgICAgPHRyPlxuICAgICAgICA8dGQgZGF0YS1oZWFkPVwiY3JlYXRlZF9hdFwiPnt7IGl0ZW0/LmNyZWF0ZWRfYXQgfCBkYXRlRm9ybWF0IH19PC90ZD5cbiAgICAgICAgPHRkIGRhdGEtaGVhZD1cInVzZXJfbmFtZVwiPlxuICAgICAgICAgIDxhIFtyb3V0ZXJMaW5rXT1cIlsnL21lbWJlcnMvJyArIGl0ZW0udXNlcl9zbHVnXVwiPnt7IGl0ZW0/LnVzZXJfbmFtZSB9fTwvYT5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkIGRhdGEtaGVhZD1cInByb2R1Y3RfbmFtZVwiPnt7IGl0ZW0/LnByb2R1Y3RfbmFtZSB9fTwvdGQ+XG4gICAgICAgIDx0ZCBkYXRhLWhlYWQ9XCJmZWVkYmFja19xdWVzdGlvbl9uYW1lXCI+e3sgaXRlbT8uZmVlZGJhY2tfcXVlc3Rpb25fbmFtZSB9fTwvdGQ+XG4gICAgICAgIDx0ZCBkYXRhLWhlYWQ9XCJjb21tZW50XCI+XG4gICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cIml0ZW0/LmNvbW1lbnRcIlxuICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1pbmZvXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvcGVuQ29tbWVudChpdGVtPy5jb21tZW50KVwiPlxuICAgICAgICAgICAgRGlzcGxheVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQgZGF0YS1oZWFkPVwidmFsdWVcIj5cbiAgICAgICAgICA8c3BhbiBbbmdDbGFzc109XCJ7J2Z3LWJvbGQgdGV4dC1kYW5nZXInOml0ZW0/LnZhbHVlIDw9IDYsJ2Z3LWJvbGQgdGV4dC1zdWNjZXNzJzppdGVtLnZhbHVlPjh9XCI+XG4gICAgICAgICAgICB7eyBpdGVtPy52YWx1ZSB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkIGRhdGEtaGVhZD1cIkFjdGlvblwiPlxuICAgICAgICAgIDx1bCBjbGFzcz1cImxpc3QtdW5zdHlsZWQgbGlzdC1pbmxpbmUgbGlzdC1hY3Rpb25cIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJjdXJyZW50VXNlciAmJiBpdGVtLnVzZXJfaWQgIT09IGN1cnJlbnRVc2VyLmlkXCI+XG4gICAgICAgICAgICAgIDxsaSBuZ2JUb29sdGlwPVwiU2VuZCBDaGF0IE1lc3NhZ2VcIlxuICAgICAgICAgICAgICAgICpyYmFjQWxsb3c9XCInUGFnZXMuQ2hhdCdcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwibWUtMiBtZS1zbS0zXCJcbiAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJbJy9tZXNzYWdlJ11cIlxuICAgICAgICAgICAgICAgIFtmcmFnbWVudF09XCJpdGVtLnVzZXJfc2x1Z1wiPlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtY29tbWVudHMgY3RhMS1pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8L3VsPlxuICAgICAgICA8L3RkPlxuICAgICAgPC90cj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L3AtdGFibGU+XG4gIDxzcGFuIGNsYXNzPVwidG90YWwtcmVjb3Jkcy1jb3VudFwiICpuZ0lmPVwidG90YWxSZWNvcmRzICE9PSAwXCI+VG90YWw6IHt7IHRvdGFsUmVjb3JkcyB9fTwvc3Bhbj5cbjwvZGl2PlxuPGRpdiAqbmdJZj1cInRvdGFsUmVjb3JkcyA9PT0gMCAmJiBpc0xvYWRlZFwiPlxuICA8cHctbm8tZGF0YSBbd2l0aEltYWdlXT1cInRydWVcIiBtZXNzYWdlPVwiTm8gRmVlZGJhY2sgRm91bmRcIj4gPC9wdy1uby1kYXRhPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjc2hvd0NvbW1lbnRcbiAgbGV0LW1vZGFsPlxuICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyXCI+XG4gICAgPGg0IGNsYXNzPVwibWItMFwiPkNvbW1lbnQ8L2g0PlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXG4gICAgICBjbGFzcz1cImJ0bi1jbG9zZSBmbG9hdC1lbmRcIlxuICAgICAgYXJpYS1sYWJlbD1cIkNsb3NlXCJcbiAgICAgIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIj5cblxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj5cbiAgICA8aDYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBtb2RhbC1iYXNpYy10aXRsZVwiPnt7IGNvbW1lbnRUb1Nob3cgfX08L2g2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -66,4 +66,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
66
66
  type: ViewChild,
67
67
  args: ['showComment', { static: true }]
68
68
  }] } });
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vic2NyaXB0aW9uLWluc2lnaHQtcHJvZHVjdC1zZXNzaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9zdWJzY3JpcHRpb25zL3N1YnNjcmlwdGlvbnMtaW5zaWdodC9zdWJzY3JpcHRpb24taW5zaWdodC1wcm9kdWN0LXNlc3Npb24vc3Vic2NyaXB0aW9uLWluc2lnaHQtcHJvZHVjdC1zZXNzaW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9zdWJzY3JpcHRpb25zL3N1YnNjcmlwdGlvbnMtaW5zaWdodC9zdWJzY3JpcHRpb24taW5zaWdodC1wcm9kdWN0LXNlc3Npb24vc3Vic2NyaXB0aW9uLWluc2lnaHQtcHJvZHVjdC1zZXNzaW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFFBQVEsRUFHUixXQUFXLEVBQ1gsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQVUsNEJBQTRCLEVBQVEsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7QUFRM0QsTUFBTSxPQUFPLDBDQUNULFNBQVEsZ0JBQWdCO0lBNkJ4QixZQUNxQixZQUEwQixFQUMzQyxRQUFrQixFQUNELEdBQXNCO1FBRXZDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUpDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBRTFCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBdkIzQyxjQUFTLEdBQUcsRUFBRSxDQUFDO1FBRWYsWUFBTyxHQUFHLElBQUksQ0FBQztRQUVmLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFakIsU0FBSSxHQUFHLENBQUMsQ0FBQztJQW9CVCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxjQUFjLEdBQUcsaUJBQWlCLENBQUMsb0JBQW9CLEVBQUUsRUFBRSxDQUFDO1FBQ2pFLElBQUksQ0FBQyxVQUFVLEdBQUcsYUFBYSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDdkQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNsQyxJQUFJLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQztRQUNoQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCw2Q0FBNkM7SUFDckMsWUFBWTtRQUNoQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsWUFBWTthQUNaLHdCQUF3QixDQUNyQiw0QkFBNEIsQ0FBQyxhQUFhLEVBQzFDLElBQUksQ0FBQyxjQUFjLEVBQ25CLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxTQUFTO1lBQzdCLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7WUFDdkQsQ0FBQyxDQUFDLEVBQUUsRUFDUixJQUFJLENBQUMsaUJBQWlCLEVBQUUsT0FBTztZQUMzQixDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDO1lBQ3JELENBQUMsQ0FBQyxFQUFFLENBQ1g7YUFDQSxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDbEIsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUM7UUFDMUIsQ0FBQyxDQUFDO2FBQ0QsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNOLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELGlCQUFpQixDQUFDLEtBQTJEO1FBQ3pFLElBQUksQ0FBQyxpQkFBaUIsR0FBRyx3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDakYsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFUSxXQUFXO1FBQ2hCLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN4QixDQUFDOytHQWpGUSwwQ0FBMEM7bUdBQTFDLDBDQUEwQyw0TkN4QnZELGlmQWNBOzs0RkRVYSwwQ0FBMEM7a0JBSnRELFNBQVM7K0JBQ0kseUNBQXlDO3dJQU9QLE9BQU87c0JBQWxELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3Q2hlY2tlZCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgSW5qZWN0b3IsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEFkbWluU2VydmljZSB9IGZyb20gJ0Bwb3Npd2lzZS9hZG1pbi1tb2R1bGUtdXRpbHMnO1xuaW1wb3J0IHsgQXBwQmFzZUNvbXBvbmVudCB9IGZyb20gJ0Bwb3Npd2lzZS9hcHAtYmFzZS1jb21wb25lbnQnO1xuaW1wb3J0IHsgUGVybWlzc2lvblNlcnZpY2UgfSBmcm9tICdAcG9zaXdpc2UvY29tbW9uLXNlcnZpY2VzJztcbmltcG9ydCB7IFBsb3RseSwgU1VCU0NSSVBUSU9OX0FOQUxZVElDU19UWVBFUywgVXNlciB9IGZyb20gJ0Bwb3Npd2lzZS9jb21tb24tdXRpbGl0aWVzJztcbmltcG9ydCB7IEhlbHBlclNlcnZpY2UgfSBmcm9tICdAcG9zaXdpc2UvaGVscGVyLXNlcnZpY2UnO1xuaW1wb3J0IHsgaGFuZGxlRGF0ZVJhbmdlU2VsZWN0aW9uIH0gZnJvbSAnQHBvc2l3aXNlL3V0aWxzJztcblxuaW1wb3J0IHsgQ29tbWVudENvbnRleHQgfSBmcm9tICdsaWJzL2FkbWluLW1vZHVsZS9zcmMvbGliL3NoYXJlZC9pbnRlcmZhY2UvYWRtaW4tbW9kdWxlLXNoYXJlZC5pbnRlcmZhY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3B3LXN1YnNjcmlwdGlvbi1pbnNpZ2h0LXByb2R1Y3Qtc2Vzc2lvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3N1YnNjcmlwdGlvbi1pbnNpZ2h0LXByb2R1Y3Qtc2Vzc2lvbi5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgU3Vic2NyaXB0aW9uSW5zaWdodFByb2N1Y3RTZXNzaW9uQ29tcG9uZW50XG4gICAgZXh0ZW5kcyBBcHBCYXNlQ29tcG9uZW50XG4gICAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3Q2hlY2tlZFxue1xuICAgIEBWaWV3Q2hpbGQoJ3Nob3dDb21tZW50JywgeyBzdGF0aWM6IHRydWUgfSkgY29udGVudDogVGVtcGxhdGVSZWY8Q29tbWVudENvbnRleHQ+O1xuXG4gICAgZ3JhcGg6IFBsb3RseS5GaWd1cmU7XG5cbiAgICB0b3RhbFJlY29yZHM6IG51bWJlcjtcblxuICAgIGZlZWRiYWNrcyA9IFtdO1xuXG4gICAgbG9hZGluZyA9IHRydWU7XG5cbiAgICBpc0xvYWRlZCA9IGZhbHNlO1xuXG4gICAgcGFnZSA9IDE7XG5cbiAgICBncmFwaExvYWRpbmc6IGJvb2xlYW47XG5cbiAgICBzdWJzY3JpcHRpb25JZDogbnVtYmVyO1xuXG4gICAgY3VycmVudFVzZXI6IFVzZXI7XG5cbiAgICBjb21tZW50VG9TaG93OiBzdHJpbmc7XG5cbiAgICBzZWxlY3RlZERhdGVSYW5nZTtcblxuICAgIGRhdGVSYW5nZXM7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBhZG1pblNlcnZpY2U6IEFkbWluU2VydmljZSxcbiAgICAgICAgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICApIHtcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbklkID0gUGVybWlzc2lvblNlcnZpY2Uuc2VsZWN0ZWRTdWJzY3JpcHRpb24/LmlkO1xuICAgICAgICB0aGlzLmRhdGVSYW5nZXMgPSBIZWxwZXJTZXJ2aWNlLmluaXRpYWxpemVEYXRlUmFuZ2VzKCk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2UgPSAnJztcbiAgICAgICAgdGhpcy5nZXRDaGFydERhdGEoKTtcbiAgICAgICAgdGhpcy51c2VyU3RvcmUoKS5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50VXNlciA9IHJlc3BvbnNlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogRnVuY3Rpb24gdG8gZ2V0IHRoZSBkYXRhIGZvciB0aGUgZ3JhcGggKi9cbiAgICBwcml2YXRlIGdldENoYXJ0RGF0YSgpIHtcbiAgICAgICAgdGhpcy5ncmFwaExvYWRpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLmFkbWluU2VydmljZVxuICAgICAgICAgICAgLmdldFN1YnNjcmlwdGlvbkFuYWx5dGljcyhcbiAgICAgICAgICAgICAgICBTVUJTQ1JJUFRJT05fQU5BTFlUSUNTX1RZUEVTLlNFU1NJT05fQ09VTlQsXG4gICAgICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25JZCxcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlPy5zdGFydERhdGVcbiAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlLnN0YXJ0RGF0ZS5mb3JtYXQoJ1lZWVktTU0tREQnKVxuICAgICAgICAgICAgICAgICAgICA6ICcnLFxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2U/LmVuZERhdGVcbiAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlLmVuZERhdGUuZm9ybWF0KCdZWVlZLU1NLUREJylcbiAgICAgICAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5ncmFwaCA9IHJlc3BvbnNlO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5hZGQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZ3JhcGhMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvbkRhdGVSYW5nZVNlbGVjdChldmVudDogeyBzdGFydERhdGU6IG1vbWVudC5Nb21lbnQ7IGVuZERhdGU6IG1vbWVudC5Nb21lbnQgfSkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlID0gaGFuZGxlRGF0ZVJhbmdlU2VsZWN0aW9uKGV2ZW50LCB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlKTtcbiAgICAgICAgdGhpcy5nZXRDaGFydERhdGEoKTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB9XG59XG4iLCI8YXBwLWRhdGUtcGlja2VyXG4gIFtzZWxlY3RlZERhdGVSYW5nZV09XCJzZWxlY3RlZERhdGVSYW5nZVwiXG4gIFtkYXRlUmFuZ2VzXT1cImRhdGVSYW5nZXNcIlxuICAoZGF0ZVJhbmdlQ2hhbmdlKT1cIm9uRGF0ZVJhbmdlU2VsZWN0KCRldmVudClcIj5cbjwvYXBwLWRhdGUtcGlja2VyPlxuPGRpdiBjbGFzcz1cInctMTAwIHRleHQtY2VudGVyIG10LTNcIiAqbmdJZj1cImdyYXBoTG9hZGluZ1wiPlxuICA8cC1wcm9ncmVzc1NwaW5uZXIgc3Ryb2tlV2lkdGg9XCIyXCI+IDwvcC1wcm9ncmVzc1NwaW5uZXI+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlIFtuZ0lmXT1cImdyYXBoXCI+XG4gIDxwbG90bHktcGxvdCBbZGF0YV09XCJncmFwaD8uZGF0YVwiXG4gICAgW2NvbmZpZ109XCJncmFwaD8uY29uZmlnXCJcbiAgICBbbGF5b3V0XT1cImdyYXBoPy5sYXlvdXRcIiBbdXNlUmVzaXplSGFuZGxlcl09XCJ0cnVlXCI+PC9wbG90bHktcGxvdD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vic2NyaXB0aW9uLWluc2lnaHQtcHJvZHVjdC1zZXNzaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9zdWJzY3JpcHRpb25zL3N1YnNjcmlwdGlvbnMtaW5zaWdodC9zdWJzY3JpcHRpb24taW5zaWdodC1wcm9kdWN0LXNlc3Npb24vc3Vic2NyaXB0aW9uLWluc2lnaHQtcHJvZHVjdC1zZXNzaW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9zdWJzY3JpcHRpb25zL3N1YnNjcmlwdGlvbnMtaW5zaWdodC9zdWJzY3JpcHRpb24taW5zaWdodC1wcm9kdWN0LXNlc3Npb24vc3Vic2NyaXB0aW9uLWluc2lnaHQtcHJvZHVjdC1zZXNzaW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFFBQVEsRUFHUixXQUFXLEVBQ1gsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQVUsNEJBQTRCLEVBQVEsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7QUFRM0QsTUFBTSxPQUFPLDBDQUNULFNBQVEsZ0JBQWdCO0lBNkJ4QixZQUNxQixZQUEwQixFQUMzQyxRQUFrQixFQUNELEdBQXNCO1FBRXZDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUpDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBRTFCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBdkIzQyxjQUFTLEdBQUcsRUFBRSxDQUFDO1FBRWYsWUFBTyxHQUFHLElBQUksQ0FBQztRQUVmLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFakIsU0FBSSxHQUFHLENBQUMsQ0FBQztJQW9CVCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxjQUFjLEdBQUcsaUJBQWlCLENBQUMsb0JBQW9CLEVBQUUsRUFBRSxDQUFDO1FBQ2pFLElBQUksQ0FBQyxVQUFVLEdBQUcsYUFBYSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDdkQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNsQyxJQUFJLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQztRQUNoQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCw2Q0FBNkM7SUFDckMsWUFBWTtRQUNoQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsWUFBWTthQUNaLHdCQUF3QixDQUNyQiw0QkFBNEIsQ0FBQyxhQUFhLEVBQzFDLElBQUksQ0FBQyxjQUFjLEVBQ25CLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxTQUFTO1lBQzdCLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7WUFDdkQsQ0FBQyxDQUFDLEVBQUUsRUFDUixJQUFJLENBQUMsaUJBQWlCLEVBQUUsT0FBTztZQUMzQixDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDO1lBQ3JELENBQUMsQ0FBQyxFQUFFLENBQ1g7YUFDQSxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDbEIsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUM7UUFDMUIsQ0FBQyxDQUFDO2FBQ0QsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNOLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELGlCQUFpQixDQUFDLEtBQTJEO1FBQ3pFLElBQUksQ0FBQyxpQkFBaUIsR0FBRyx3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDakYsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFUSxXQUFXO1FBQ2hCLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN4QixDQUFDOytHQWpGUSwwQ0FBMEM7bUdBQTFDLDBDQUEwQyw0TkN4QnZELGlmQWNBOzs0RkRVYSwwQ0FBMEM7a0JBSnRELFNBQVM7K0JBQ0kseUNBQXlDO3dJQU9QLE9BQU87c0JBQWxELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3Q2hlY2tlZCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgSW5qZWN0b3IsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEFkbWluU2VydmljZSB9IGZyb20gJ0Bwb3Npd2lzZS9hZG1pbi1tb2R1bGUtdXRpbHMnO1xuaW1wb3J0IHsgQXBwQmFzZUNvbXBvbmVudCB9IGZyb20gJ0Bwb3Npd2lzZS9hcHAtYmFzZS1jb21wb25lbnQnO1xuaW1wb3J0IHsgUGVybWlzc2lvblNlcnZpY2UgfSBmcm9tICdAcG9zaXdpc2UvY29tbW9uLXNlcnZpY2VzJztcbmltcG9ydCB7IFBsb3RseSwgU1VCU0NSSVBUSU9OX0FOQUxZVElDU19UWVBFUywgVXNlciB9IGZyb20gJ0Bwb3Npd2lzZS9jb21tb24tdXRpbGl0aWVzJztcbmltcG9ydCB7IEhlbHBlclNlcnZpY2UgfSBmcm9tICdAcG9zaXdpc2UvaGVscGVyLXNlcnZpY2UnO1xuaW1wb3J0IHsgaGFuZGxlRGF0ZVJhbmdlU2VsZWN0aW9uIH0gZnJvbSAnQHBvc2l3aXNlL3V0aWxzJztcblxuaW1wb3J0IHsgQ29tbWVudENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvaW50ZXJmYWNlL2FkbWluLW1vZHVsZS1zaGFyZWQuaW50ZXJmYWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwdy1zdWJzY3JpcHRpb24taW5zaWdodC1wcm9kdWN0LXNlc3Npb24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zdWJzY3JpcHRpb24taW5zaWdodC1wcm9kdWN0LXNlc3Npb24uY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFN1YnNjcmlwdGlvbkluc2lnaHRQcm9jdWN0U2Vzc2lvbkNvbXBvbmVudFxuICAgIGV4dGVuZHMgQXBwQmFzZUNvbXBvbmVudFxuICAgIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0NoZWNrZWRcbntcbiAgICBAVmlld0NoaWxkKCdzaG93Q29tbWVudCcsIHsgc3RhdGljOiB0cnVlIH0pIGNvbnRlbnQ6IFRlbXBsYXRlUmVmPENvbW1lbnRDb250ZXh0PjtcblxuICAgIGdyYXBoOiBQbG90bHkuRmlndXJlO1xuXG4gICAgdG90YWxSZWNvcmRzOiBudW1iZXI7XG5cbiAgICBmZWVkYmFja3MgPSBbXTtcblxuICAgIGxvYWRpbmcgPSB0cnVlO1xuXG4gICAgaXNMb2FkZWQgPSBmYWxzZTtcblxuICAgIHBhZ2UgPSAxO1xuXG4gICAgZ3JhcGhMb2FkaW5nOiBib29sZWFuO1xuXG4gICAgc3Vic2NyaXB0aW9uSWQ6IG51bWJlcjtcblxuICAgIGN1cnJlbnRVc2VyOiBVc2VyO1xuXG4gICAgY29tbWVudFRvU2hvdzogc3RyaW5nO1xuXG4gICAgc2VsZWN0ZWREYXRlUmFuZ2U7XG5cbiAgICBkYXRlUmFuZ2VzO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgYWRtaW5TZXJ2aWNlOiBBZG1pblNlcnZpY2UsXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGluamVjdG9yKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0NoZWNrZWQoKSB7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25JZCA9IFBlcm1pc3Npb25TZXJ2aWNlLnNlbGVjdGVkU3Vic2NyaXB0aW9uPy5pZDtcbiAgICAgICAgdGhpcy5kYXRlUmFuZ2VzID0gSGVscGVyU2VydmljZS5pbml0aWFsaXplRGF0ZVJhbmdlcygpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlID0gJyc7XG4gICAgICAgIHRoaXMuZ2V0Q2hhcnREYXRhKCk7XG4gICAgICAgIHRoaXMudXNlclN0b3JlKCkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFVzZXIgPSByZXNwb25zZTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEZ1bmN0aW9uIHRvIGdldCB0aGUgZGF0YSBmb3IgdGhlIGdyYXBoICovXG4gICAgcHJpdmF0ZSBnZXRDaGFydERhdGEoKSB7XG4gICAgICAgIHRoaXMuZ3JhcGhMb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5hZG1pblNlcnZpY2VcbiAgICAgICAgICAgIC5nZXRTdWJzY3JpcHRpb25BbmFseXRpY3MoXG4gICAgICAgICAgICAgICAgU1VCU0NSSVBUSU9OX0FOQUxZVElDU19UWVBFUy5TRVNTSU9OX0NPVU5ULFxuICAgICAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uSWQsXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVSYW5nZT8uc3RhcnREYXRlXG4gICAgICAgICAgICAgICAgICAgID8gdGhpcy5zZWxlY3RlZERhdGVSYW5nZS5zdGFydERhdGUuZm9ybWF0KCdZWVlZLU1NLUREJylcbiAgICAgICAgICAgICAgICAgICAgOiAnJyxcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlPy5lbmREYXRlXG4gICAgICAgICAgICAgICAgICAgID8gdGhpcy5zZWxlY3RlZERhdGVSYW5nZS5lbmREYXRlLmZvcm1hdCgnWVlZWS1NTS1ERCcpXG4gICAgICAgICAgICAgICAgICAgIDogJydcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZ3JhcGggPSByZXNwb25zZTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuYWRkKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmdyYXBoTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25EYXRlUmFuZ2VTZWxlY3QoZXZlbnQ6IHsgc3RhcnREYXRlOiBtb21lbnQuTW9tZW50OyBlbmREYXRlOiBtb21lbnQuTW9tZW50IH0pIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVSYW5nZSA9IGhhbmRsZURhdGVSYW5nZVNlbGVjdGlvbihldmVudCwgdGhpcy5zZWxlY3RlZERhdGVSYW5nZSk7XG4gICAgICAgIHRoaXMuZ2V0Q2hhcnREYXRhKCk7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgfVxufVxuIiwiPGFwcC1kYXRlLXBpY2tlclxuICBbc2VsZWN0ZWREYXRlUmFuZ2VdPVwic2VsZWN0ZWREYXRlUmFuZ2VcIlxuICBbZGF0ZVJhbmdlc109XCJkYXRlUmFuZ2VzXCJcbiAgKGRhdGVSYW5nZUNoYW5nZSk9XCJvbkRhdGVSYW5nZVNlbGVjdCgkZXZlbnQpXCI+XG48L2FwcC1kYXRlLXBpY2tlcj5cbjxkaXYgY2xhc3M9XCJ3LTEwMCB0ZXh0LWNlbnRlciBtdC0zXCIgKm5nSWY9XCJncmFwaExvYWRpbmdcIj5cbiAgPHAtcHJvZ3Jlc3NTcGlubmVyIHN0cm9rZVdpZHRoPVwiMlwiPiA8L3AtcHJvZ3Jlc3NTcGlubmVyPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSBbbmdJZl09XCJncmFwaFwiPlxuICA8cGxvdGx5LXBsb3QgW2RhdGFdPVwiZ3JhcGg/LmRhdGFcIlxuICAgIFtjb25maWddPVwiZ3JhcGg/LmNvbmZpZ1wiXG4gICAgW2xheW91dF09XCJncmFwaD8ubGF5b3V0XCIgW3VzZVJlc2l6ZUhhbmRsZXJdPVwidHJ1ZVwiPjwvcGxvdGx5LXBsb3Q+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -14,10 +14,11 @@ import * as i1 from "@angular/forms";
14
14
  import * as i2 from "@posiwise/admin-module-utils";
15
15
  import * as i3 from "@posiwise/common-services";
16
16
  import * as i4 from "primeng/autocomplete";
17
- import * as i5 from "@angular/common";
18
- import * as i6 from "@posiwise/shared-components";
19
- import * as i7 from "@posiwise/directives";
20
- import * as i8 from "@jsverse/transloco";
17
+ import * as i5 from "primeng/dropdown";
18
+ import * as i6 from "@angular/common";
19
+ import * as i7 from "@posiwise/shared-components";
20
+ import * as i8 from "@posiwise/directives";
21
+ import * as i9 from "@jsverse/transloco";
21
22
  export class InviteUsersComponent extends AppBaseComponent {
22
23
  constructor(fb, adminService, productService, injector, commonService, cdr) {
23
24
  super(injector);
@@ -219,13 +220,13 @@ export class InviteUsersComponent extends AppBaseComponent {
219
220
  super.ngOnDestroy();
220
221
  }
221
222
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: InviteUsersComponent, deps: [{ token: i1.UntypedFormBuilder }, { token: i2.AdminService }, { token: i3.ProductService }, { token: i0.Injector }, { token: i3.CommonService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
222
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: InviteUsersComponent, selector: "pw-invite-users", viewQueries: [{ propertyName: "refProduct", first: true, predicate: ["refProduct"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"container-fluid pw-tab overflow-hidden\">\n <div class=\"dashboard user-details\">\n <div class=\"dashboard-body\">\n\n <div class=\"me-auto col-xs-6 mt-4\">\n <a aria-label=\"Navigate to Target\"\n (click)=\"back()\"\n class=\"previous\"><i class=\"fa fa-arrow-alt-circle-left\" aria-hidden=\"true\"></i></a>\n <h3 class=\"\">Invite New User</h3>\n <p>Here you can send an invitation to a new user to try any of our products</p>\n </div>\n\n <div class=\"p-2 mt-3\">\n <form [formGroup]=\"form\"\n (ngSubmit)=\"onSave()\">\n <div class=\"row\">\n <div class=\"mb-3 col-sm-4\">\n <pw-input-container [label]=\"'Label.FirstName' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.FirstName' | transloco\"\n class=\"col-md-6 p-0\"\n name=\"first_name\"\n [errorMsg]=\"'Admin.Subscriptions.Validation.FirstName' | transloco\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"first_name\"\n [ngClass]=\"{\n 'is-invalid':\n form.get('first_name').touched && form.get('first_name').invalid\n }\" />\n </pw-input-container>\n </div>\n <div class=\"mb-3 col-sm-4\">\n <pw-input-container [label]=\"'Label.LastName' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.LastName' | transloco\"\n class=\"col-md-6 p-0\"\n name=\"last_name\"\n [errorMsg]=\"'Admin.Subscriptions.Validation.LastName' | transloco\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"last_name\"\n [ngClass]=\"{\n 'is-invalid': form.get('last_name').touched && form.get('last_name').invalid\n }\" />\n </pw-input-container>\n </div>\n <div class=\"mb-3 col-sm-4\">\n <pw-input-container [label]=\"'Label.Email' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.Email' | transloco\"\n class=\"col-md-6 p-0\"\n name=\"email\"\n [errorMsg]=\"'Admin.Subscriptions.Validation.Email' | transloco\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"email\"\n [ngClass]=\"{\n 'is-invalid': form.get('email').touched && form.get('email').invalid\n }\" />\n </pw-input-container>\n </div>\n <div class=\"mb-3 col-sm-4\">\n <pw-input-container [label]=\"'Label.Product' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.SubscriptionProduct' | transloco\"\n name=\"product_id\"\n [errorMsg]=\"'Admin.Subscriptions.Validation.Product' | transloco\">\n <p-autoComplete #refProduct\n [suggestions]=\"filteredProducts\"\n formControlName=\"product_id\"\n dataKey=\"id\"\n field=\"label\"\n [dropdown]=\"true\"\n [delay]=\"1000\"\n [type]=\"'search'\"\n (completeMethod)=\"searchProduct($event)\"\n (onSelect)=\"onProductChange($event)\"\n (onClear)=\"onProductClear($event)\"\n styleClass=\"w-100\"\n placeholder=\"Search Product\"\n [inputStyle]=\"\n form.get('product_id').touched && form.get('product_id').invalid\n ? { border: '1px solid #ff586b' }\n : { border: '1px solid gray' }\n \"\n [multiple]=\"false\">\n </p-autoComplete>\n </pw-input-container>\n </div>\n <div class=\"mb-3 col-sm-4\">\n <pw-input-container label=\"{{'Label.Seats' | transloco}}{{unitsText}}\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.Units' | transloco\"\n class=\"col-md-6 p-0\"\n name=\"units\"\n [errorMsg]=\"'Admin.Subscriptions.Validation.Units' | transloco\">\n <input type=\"number\"\n class=\"form-control\"\n formControlName=\"units\"\n [ngClass]=\"{\n 'is-invalid': form.get('units').touched && form.get('units').invalid\n }\" />\n </pw-input-container>\n </div>\n <div class=\"mb-3 col-sm-4\">\n <pw-input-container [label]=\"'Admin.Subscriptions.MinUnits' | transloco\"\n [showTooltip]=\"true\"\n name=\"min_units\"\n [errorMsg]=\"'Admin.Subscriptions.Validation.MinUnits' | transloco\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.MinUnits' | transloco\">\n <input type=\"number\"\n min=\"0\"\n [max]=\"form.get('units').value\"\n class=\"form-control\"\n formControlName=\"min_units\" />\n </pw-input-container>\n </div>\n <div class=\"mb-3 col-sm-4\"\n *ngIf=\"organizationIndustries$ | async as industries\">\n <pw-input-container [label]=\"'Organization.OrganizationIndustry' | transloco\"\n name=\"organization_industry_id\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.OrganizationIndustry'| transloco\">\n <select formControlName=\"organization_industry_id\"\n class=\"form-control form-select\">\n <option *ngFor=\"let option of industries['organization_industries']\"\n [value]=\"option.id\">\n {{ option.name }}\n </option>\n </select>\n </pw-input-container>\n </div>\n <div class=\"mb-3 col-sm-4\">\n <pw-input-container [label]=\"'Organization.OrganizationName' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.OrganizationName'| transloco\"\n class=\"col-md-6 p-0\"\n name=\"name\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"name\"\n [ngClass]=\"{\n 'is-invalid': form.get('name').touched && form.get('name').invalid\n }\" />\n </pw-input-container>\n </div>\n <div class=\"mb-3 col-sm-4\"\n *ngIf=\"organizationTypes$ | async as types\">\n <pw-input-container [label]=\"'Organization.OrganizationType' | transloco\"\n name=\"organization_type_id\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.OrganizationType'| transloco\">\n <select formControlName=\"organization_type_id\"\n class=\"form-control form-select\">\n <option *ngFor=\"let option of types['organization_types']\"\n [value]=\"option.id\">\n {{ option.name }}\n </option>\n </select>\n </pw-input-container>\n </div>\n <div class=\"mb-3 col-sm-4\"\n *ngIf=\"organizationSizes$ | async as sizes\">\n <pw-input-container [label]=\"'Organization.OrganizationSize' | transloco\"\n name=\"organization_size_id\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.OrganizationSize'| transloco\">\n <select formControlName=\"organization_size_id\"\n class=\"form-control form-select\">\n <option *ngFor=\"let option of sizes['organization_sizes']\"\n [value]=\"option.id\">\n {{ option.name }}\n </option>\n </select>\n </pw-input-container>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-12 text-end\">\n <input type=\"button\"\n class=\"btn btn-outline-primary me-3\"\n value=\"Cancel\"\n (click)=\"form.reset(); totalRecordsUnFiltered = 0; back()\" />\n <button type=\"submit\"\n [buttonBusy]=\"buttonBusy\"\n [disabled]=\"buttonBusy\"\n class=\"btn btn-primary\">Invite</button>\n </div>\n </div>\n</form>\n </div>\n </div>\n </div>\n</div>", styles: [":root{--first: rgb(23 105 225);--second: rgb(54 194 131);--third: rgb(255 171 0);--text: rgb(34 34 34);--tabs_bg: rgb(23 105 225);--tabs_sub_bg: rgb(70, 136, 236);--tabs_text: rgb(255 255 255);--titles: rgb(34 34 34);--sidebar_bg: rgb(0, 48, 63);--sidebar_text: rgb(255 255 255)}\n"], dependencies: [{ kind: "component", type: i4.AutoComplete, selector: "p-autoComplete", inputs: ["minLength", "delay", "style", "panelStyle", "styleClass", "panelStyleClass", "inputStyle", "inputId", "inputStyleClass", "placeholder", "readonly", "disabled", "scrollHeight", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "maxlength", "name", "required", "size", "appendTo", "autoHighlight", "forceSelection", "type", "autoZIndex", "baseZIndex", "ariaLabel", "dropdownAriaLabel", "ariaLabelledBy", "dropdownIcon", "unique", "group", "completeOnFocus", "showClear", "field", "dropdown", "showEmptyMessage", "dropdownMode", "multiple", "tabindex", "dataKey", "emptyMessage", "showTransitionOptions", "hideTransitionOptions", "autofocus", "autocomplete", "optionGroupChildren", "optionGroupLabel", "overlayOptions", "suggestions", "itemSize", "optionLabel", "optionValue", "id", "searchMessage", "emptySelectionMessage", "selectionMessage", "autoOptionFocus", "selectOnFocus", "searchLocale", "optionDisabled", "focusOnHover", "variant"], outputs: ["completeMethod", "onSelect", "onUnselect", "onFocus", "onBlur", "onDropdownClick", "onClear", "onKeyUp", "onShow", "onHide", "onLazyLoad"] }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i1.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "component", type: i6.InputContainerComponent, selector: "pw-input-container", inputs: ["name", "label", "labelClass", "tooltipPosition", "required", "errorMsg", "isReadOnly", "showTooltip", "tooltipText", "showTriangle", "afterLabel", "showAfterLabel", "showTriangleText", "isLeftTooltip"] }, { kind: "directive", type: i7.ButtonBusyDirective, selector: "[buttonBusy]", inputs: ["buttonBusy", "busyText"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i8.TranslocoPipe, name: "transloco" }] }); }
223
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: InviteUsersComponent, selector: "pw-invite-users", viewQueries: [{ propertyName: "refProduct", first: true, predicate: ["refProduct"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"container-fluid pw-tab overflow-hidden\">\n <div class=\"dashboard user-details\">\n <div class=\"dashboard-body\">\n\n <div class=\"me-auto col-xs-6 mt-4\">\n <a aria-label=\"Navigate to Target\"\n (click)=\"back()\"\n class=\"previous\"><i class=\"fa fa-arrow-alt-circle-left\" aria-hidden=\"true\"></i></a>\n <h3 class=\"\">Invite New User</h3>\n <p>Here you can send an invitation to a new user to try any of our products</p>\n </div>\n\n <div class=\"p-2 mt-3\">\n <form [formGroup]=\"form\"\n (ngSubmit)=\"onSave()\">\n <div class=\"row\">\n <div class=\"mb-3 col-sm-4\">\n <pw-input-container [label]=\"'Label.FirstName' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.FirstName' | transloco\"\n class=\"col-md-6 p-0\"\n name=\"first_name\"\n [errorMsg]=\"'Admin.Subscriptions.Validation.FirstName' | transloco\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"first_name\"\n [ngClass]=\"{\n 'is-invalid':\n form.get('first_name').touched && form.get('first_name').invalid\n }\" />\n </pw-input-container>\n </div>\n <div class=\"mb-3 col-sm-4\">\n <pw-input-container [label]=\"'Label.LastName' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.LastName' | transloco\"\n class=\"col-md-6 p-0\"\n name=\"last_name\"\n [errorMsg]=\"'Admin.Subscriptions.Validation.LastName' | transloco\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"last_name\"\n [ngClass]=\"{\n 'is-invalid': form.get('last_name').touched && form.get('last_name').invalid\n }\" />\n </pw-input-container>\n </div>\n <div class=\"mb-3 col-sm-4\">\n <pw-input-container [label]=\"'Label.Email' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.Email' | transloco\"\n class=\"col-md-6 p-0\"\n name=\"email\"\n [errorMsg]=\"'Admin.Subscriptions.Validation.Email' | transloco\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"email\"\n [ngClass]=\"{\n 'is-invalid': form.get('email').touched && form.get('email').invalid\n }\" />\n </pw-input-container>\n </div>\n <div class=\"mb-3 col-sm-4\">\n <pw-input-container [label]=\"'Label.Product' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.SubscriptionProduct' | transloco\"\n name=\"product_id\"\n [errorMsg]=\"'Admin.Subscriptions.Validation.Product' | transloco\">\n <p-autoComplete #refProduct\n [suggestions]=\"filteredProducts\"\n formControlName=\"product_id\"\n dataKey=\"id\"\n field=\"label\"\n [dropdown]=\"true\"\n [delay]=\"1000\"\n [type]=\"'search'\"\n (completeMethod)=\"searchProduct($event)\"\n (onSelect)=\"onProductChange($event)\"\n (onClear)=\"onProductClear($event)\"\n styleClass=\"w-100\"\n placeholder=\"Search Product\"\n [inputStyle]=\"\n form.get('product_id').touched && form.get('product_id').invalid\n ? { border: '1px solid #ff586b' }\n : { border: '1px solid gray' }\n \"\n [multiple]=\"false\">\n </p-autoComplete>\n </pw-input-container>\n </div>\n <div class=\"mb-3 col-sm-4\">\n <pw-input-container label=\"{{'Label.Seats' | transloco}}{{unitsText}}\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.Units' | transloco\"\n class=\"col-md-6 p-0\"\n name=\"units\"\n [errorMsg]=\"'Admin.Subscriptions.Validation.Units' | transloco\">\n <input type=\"number\"\n class=\"form-control\"\n formControlName=\"units\"\n [ngClass]=\"{\n 'is-invalid': form.get('units').touched && form.get('units').invalid\n }\" />\n </pw-input-container>\n </div>\n <div class=\"mb-3 col-sm-4\">\n <pw-input-container [label]=\"'Admin.Subscriptions.MinUnits' | transloco\"\n [showTooltip]=\"true\"\n name=\"min_units\"\n [errorMsg]=\"'Admin.Subscriptions.Validation.MinUnits' | transloco\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.MinUnits' | transloco\">\n <input type=\"number\"\n min=\"0\"\n [max]=\"form.get('units').value\"\n class=\"form-control\"\n formControlName=\"min_units\" />\n </pw-input-container>\n </div>\n <div class=\"mb-3 col-sm-4\"\n *ngIf=\"organizationIndustries$ | async as industries\">\n <pw-input-container [label]=\"'Organization.OrganizationIndustry' | transloco\"\n name=\"organization_industry_id\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.OrganizationIndustry'| transloco\">\n <p-dropdown\n [options]=\"industries['organization_industries']\"\n formControlName=\"organization_industry_id\"\n [placeholder]=\"'Select Organization Industry'\"\n optionValue=\"id\"\n optionLabel=\"name\">\n </p-dropdown>\n </pw-input-container>\n </div>\n <div class=\"mb-3 col-sm-4\">\n <pw-input-container [label]=\"'Organization.OrganizationName' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.OrganizationName'| transloco\"\n class=\"col-md-6 p-0\"\n name=\"name\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"name\"\n [ngClass]=\"{\n 'is-invalid': form.get('name').touched && form.get('name').invalid\n }\" />\n </pw-input-container>\n </div>\n <div class=\"mb-3 col-sm-4\"\n *ngIf=\"organizationTypes$ | async as types\">\n <pw-input-container [label]=\"'Organization.OrganizationType' | transloco\"\n name=\"organization_type_id\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.OrganizationType'| transloco\">\n <p-dropdown\n [options]=\"types['organization_types']\"\n formControlName=\"organization_type_id\"\n [placeholder]=\"'Select Organization Type'\"\n optionValue=\"id\"\n optionLabel=\"name\">\n </p-dropdown>\n </pw-input-container>\n </div>\n <div class=\"mb-3 col-sm-4\"\n *ngIf=\"organizationSizes$ | async as sizes\">\n <pw-input-container [label]=\"'Organization.OrganizationSize' | transloco\"\n name=\"organization_size_id\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.OrganizationSize'| transloco\">\n <p-dropdown\n [options]=\"sizes['organization_sizes']\"\n formControlName=\"organization_size_id\"\n [placeholder]=\"'Select Organization Size'\"\n optionValue=\"id\"\n optionLabel=\"name\">\n </p-dropdown>\n </pw-input-container>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-12 text-end\">\n <input type=\"button\"\n class=\"btn btn-outline-primary me-3\"\n value=\"Cancel\"\n (click)=\"form.reset(); totalRecordsUnFiltered = 0; back()\" />\n <button type=\"submit\"\n [buttonBusy]=\"buttonBusy\"\n [disabled]=\"buttonBusy\"\n class=\"btn btn-primary\">Invite</button>\n </div>\n </div>\n</form>\n </div>\n </div>\n </div>\n</div>", styles: [":root{--first: rgb(23 105 225);--second: rgb(54 194 131);--third: rgb(255 171 0);--text: rgb(34 34 34);--tabs_bg: rgb(23 105 225);--tabs_sub_bg: rgb(70, 136, 236);--tabs_text: rgb(255 255 255);--titles: rgb(34 34 34);--sidebar_bg: rgb(0, 48, 63);--sidebar_text: rgb(255 255 255)}\n"], dependencies: [{ kind: "component", type: i4.AutoComplete, selector: "p-autoComplete", inputs: ["minLength", "delay", "style", "panelStyle", "styleClass", "panelStyleClass", "inputStyle", "inputId", "inputStyleClass", "placeholder", "readonly", "disabled", "scrollHeight", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "maxlength", "name", "required", "size", "appendTo", "autoHighlight", "forceSelection", "type", "autoZIndex", "baseZIndex", "ariaLabel", "dropdownAriaLabel", "ariaLabelledBy", "dropdownIcon", "unique", "group", "completeOnFocus", "showClear", "field", "dropdown", "showEmptyMessage", "dropdownMode", "multiple", "tabindex", "dataKey", "emptyMessage", "showTransitionOptions", "hideTransitionOptions", "autofocus", "autocomplete", "optionGroupChildren", "optionGroupLabel", "overlayOptions", "suggestions", "itemSize", "optionLabel", "optionValue", "id", "searchMessage", "emptySelectionMessage", "selectionMessage", "autoOptionFocus", "selectOnFocus", "searchLocale", "optionDisabled", "focusOnHover", "variant"], outputs: ["completeMethod", "onSelect", "onUnselect", "onFocus", "onBlur", "onDropdownClick", "onClear", "onKeyUp", "onShow", "onHide", "onLazyLoad"] }, { kind: "component", type: i5.Dropdown, selector: "p-dropdown", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "variant", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i1.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "component", type: i7.InputContainerComponent, selector: "pw-input-container", inputs: ["name", "label", "labelClass", "tooltipPosition", "required", "errorMsg", "isReadOnly", "showTooltip", "tooltipText", "showTriangle", "afterLabel", "showAfterLabel", "showTriangleText", "isLeftTooltip"] }, { kind: "directive", type: i8.ButtonBusyDirective, selector: "[buttonBusy]", inputs: ["buttonBusy", "busyText"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i9.TranslocoPipe, name: "transloco" }] }); }
223
224
  }
224
225
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: InviteUsersComponent, decorators: [{
225
226
  type: Component,
226
- args: [{ selector: 'pw-invite-users', template: "<div class=\"container-fluid pw-tab overflow-hidden\">\n <div class=\"dashboard user-details\">\n <div class=\"dashboard-body\">\n\n <div class=\"me-auto col-xs-6 mt-4\">\n <a aria-label=\"Navigate to Target\"\n (click)=\"back()\"\n class=\"previous\"><i class=\"fa fa-arrow-alt-circle-left\" aria-hidden=\"true\"></i></a>\n <h3 class=\"\">Invite New User</h3>\n <p>Here you can send an invitation to a new user to try any of our products</p>\n </div>\n\n <div class=\"p-2 mt-3\">\n <form [formGroup]=\"form\"\n (ngSubmit)=\"onSave()\">\n <div class=\"row\">\n <div class=\"mb-3 col-sm-4\">\n <pw-input-container [label]=\"'Label.FirstName' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.FirstName' | transloco\"\n class=\"col-md-6 p-0\"\n name=\"first_name\"\n [errorMsg]=\"'Admin.Subscriptions.Validation.FirstName' | transloco\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"first_name\"\n [ngClass]=\"{\n 'is-invalid':\n form.get('first_name').touched && form.get('first_name').invalid\n }\" />\n </pw-input-container>\n </div>\n <div class=\"mb-3 col-sm-4\">\n <pw-input-container [label]=\"'Label.LastName' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.LastName' | transloco\"\n class=\"col-md-6 p-0\"\n name=\"last_name\"\n [errorMsg]=\"'Admin.Subscriptions.Validation.LastName' | transloco\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"last_name\"\n [ngClass]=\"{\n 'is-invalid': form.get('last_name').touched && form.get('last_name').invalid\n }\" />\n </pw-input-container>\n </div>\n <div class=\"mb-3 col-sm-4\">\n <pw-input-container [label]=\"'Label.Email' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.Email' | transloco\"\n class=\"col-md-6 p-0\"\n name=\"email\"\n [errorMsg]=\"'Admin.Subscriptions.Validation.Email' | transloco\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"email\"\n [ngClass]=\"{\n 'is-invalid': form.get('email').touched && form.get('email').invalid\n }\" />\n </pw-input-container>\n </div>\n <div class=\"mb-3 col-sm-4\">\n <pw-input-container [label]=\"'Label.Product' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.SubscriptionProduct' | transloco\"\n name=\"product_id\"\n [errorMsg]=\"'Admin.Subscriptions.Validation.Product' | transloco\">\n <p-autoComplete #refProduct\n [suggestions]=\"filteredProducts\"\n formControlName=\"product_id\"\n dataKey=\"id\"\n field=\"label\"\n [dropdown]=\"true\"\n [delay]=\"1000\"\n [type]=\"'search'\"\n (completeMethod)=\"searchProduct($event)\"\n (onSelect)=\"onProductChange($event)\"\n (onClear)=\"onProductClear($event)\"\n styleClass=\"w-100\"\n placeholder=\"Search Product\"\n [inputStyle]=\"\n form.get('product_id').touched && form.get('product_id').invalid\n ? { border: '1px solid #ff586b' }\n : { border: '1px solid gray' }\n \"\n [multiple]=\"false\">\n </p-autoComplete>\n </pw-input-container>\n </div>\n <div class=\"mb-3 col-sm-4\">\n <pw-input-container label=\"{{'Label.Seats' | transloco}}{{unitsText}}\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.Units' | transloco\"\n class=\"col-md-6 p-0\"\n name=\"units\"\n [errorMsg]=\"'Admin.Subscriptions.Validation.Units' | transloco\">\n <input type=\"number\"\n class=\"form-control\"\n formControlName=\"units\"\n [ngClass]=\"{\n 'is-invalid': form.get('units').touched && form.get('units').invalid\n }\" />\n </pw-input-container>\n </div>\n <div class=\"mb-3 col-sm-4\">\n <pw-input-container [label]=\"'Admin.Subscriptions.MinUnits' | transloco\"\n [showTooltip]=\"true\"\n name=\"min_units\"\n [errorMsg]=\"'Admin.Subscriptions.Validation.MinUnits' | transloco\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.MinUnits' | transloco\">\n <input type=\"number\"\n min=\"0\"\n [max]=\"form.get('units').value\"\n class=\"form-control\"\n formControlName=\"min_units\" />\n </pw-input-container>\n </div>\n <div class=\"mb-3 col-sm-4\"\n *ngIf=\"organizationIndustries$ | async as industries\">\n <pw-input-container [label]=\"'Organization.OrganizationIndustry' | transloco\"\n name=\"organization_industry_id\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.OrganizationIndustry'| transloco\">\n <select formControlName=\"organization_industry_id\"\n class=\"form-control form-select\">\n <option *ngFor=\"let option of industries['organization_industries']\"\n [value]=\"option.id\">\n {{ option.name }}\n </option>\n </select>\n </pw-input-container>\n </div>\n <div class=\"mb-3 col-sm-4\">\n <pw-input-container [label]=\"'Organization.OrganizationName' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.OrganizationName'| transloco\"\n class=\"col-md-6 p-0\"\n name=\"name\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"name\"\n [ngClass]=\"{\n 'is-invalid': form.get('name').touched && form.get('name').invalid\n }\" />\n </pw-input-container>\n </div>\n <div class=\"mb-3 col-sm-4\"\n *ngIf=\"organizationTypes$ | async as types\">\n <pw-input-container [label]=\"'Organization.OrganizationType' | transloco\"\n name=\"organization_type_id\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.OrganizationType'| transloco\">\n <select formControlName=\"organization_type_id\"\n class=\"form-control form-select\">\n <option *ngFor=\"let option of types['organization_types']\"\n [value]=\"option.id\">\n {{ option.name }}\n </option>\n </select>\n </pw-input-container>\n </div>\n <div class=\"mb-3 col-sm-4\"\n *ngIf=\"organizationSizes$ | async as sizes\">\n <pw-input-container [label]=\"'Organization.OrganizationSize' | transloco\"\n name=\"organization_size_id\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.OrganizationSize'| transloco\">\n <select formControlName=\"organization_size_id\"\n class=\"form-control form-select\">\n <option *ngFor=\"let option of sizes['organization_sizes']\"\n [value]=\"option.id\">\n {{ option.name }}\n </option>\n </select>\n </pw-input-container>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-12 text-end\">\n <input type=\"button\"\n class=\"btn btn-outline-primary me-3\"\n value=\"Cancel\"\n (click)=\"form.reset(); totalRecordsUnFiltered = 0; back()\" />\n <button type=\"submit\"\n [buttonBusy]=\"buttonBusy\"\n [disabled]=\"buttonBusy\"\n class=\"btn btn-primary\">Invite</button>\n </div>\n </div>\n</form>\n </div>\n </div>\n </div>\n</div>", styles: [":root{--first: rgb(23 105 225);--second: rgb(54 194 131);--third: rgb(255 171 0);--text: rgb(34 34 34);--tabs_bg: rgb(23 105 225);--tabs_sub_bg: rgb(70, 136, 236);--tabs_text: rgb(255 255 255);--titles: rgb(34 34 34);--sidebar_bg: rgb(0, 48, 63);--sidebar_text: rgb(255 255 255)}\n"] }]
227
+ args: [{ selector: 'pw-invite-users', template: "<div class=\"container-fluid pw-tab overflow-hidden\">\n <div class=\"dashboard user-details\">\n <div class=\"dashboard-body\">\n\n <div class=\"me-auto col-xs-6 mt-4\">\n <a aria-label=\"Navigate to Target\"\n (click)=\"back()\"\n class=\"previous\"><i class=\"fa fa-arrow-alt-circle-left\" aria-hidden=\"true\"></i></a>\n <h3 class=\"\">Invite New User</h3>\n <p>Here you can send an invitation to a new user to try any of our products</p>\n </div>\n\n <div class=\"p-2 mt-3\">\n <form [formGroup]=\"form\"\n (ngSubmit)=\"onSave()\">\n <div class=\"row\">\n <div class=\"mb-3 col-sm-4\">\n <pw-input-container [label]=\"'Label.FirstName' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.FirstName' | transloco\"\n class=\"col-md-6 p-0\"\n name=\"first_name\"\n [errorMsg]=\"'Admin.Subscriptions.Validation.FirstName' | transloco\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"first_name\"\n [ngClass]=\"{\n 'is-invalid':\n form.get('first_name').touched && form.get('first_name').invalid\n }\" />\n </pw-input-container>\n </div>\n <div class=\"mb-3 col-sm-4\">\n <pw-input-container [label]=\"'Label.LastName' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.LastName' | transloco\"\n class=\"col-md-6 p-0\"\n name=\"last_name\"\n [errorMsg]=\"'Admin.Subscriptions.Validation.LastName' | transloco\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"last_name\"\n [ngClass]=\"{\n 'is-invalid': form.get('last_name').touched && form.get('last_name').invalid\n }\" />\n </pw-input-container>\n </div>\n <div class=\"mb-3 col-sm-4\">\n <pw-input-container [label]=\"'Label.Email' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.Email' | transloco\"\n class=\"col-md-6 p-0\"\n name=\"email\"\n [errorMsg]=\"'Admin.Subscriptions.Validation.Email' | transloco\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"email\"\n [ngClass]=\"{\n 'is-invalid': form.get('email').touched && form.get('email').invalid\n }\" />\n </pw-input-container>\n </div>\n <div class=\"mb-3 col-sm-4\">\n <pw-input-container [label]=\"'Label.Product' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.SubscriptionProduct' | transloco\"\n name=\"product_id\"\n [errorMsg]=\"'Admin.Subscriptions.Validation.Product' | transloco\">\n <p-autoComplete #refProduct\n [suggestions]=\"filteredProducts\"\n formControlName=\"product_id\"\n dataKey=\"id\"\n field=\"label\"\n [dropdown]=\"true\"\n [delay]=\"1000\"\n [type]=\"'search'\"\n (completeMethod)=\"searchProduct($event)\"\n (onSelect)=\"onProductChange($event)\"\n (onClear)=\"onProductClear($event)\"\n styleClass=\"w-100\"\n placeholder=\"Search Product\"\n [inputStyle]=\"\n form.get('product_id').touched && form.get('product_id').invalid\n ? { border: '1px solid #ff586b' }\n : { border: '1px solid gray' }\n \"\n [multiple]=\"false\">\n </p-autoComplete>\n </pw-input-container>\n </div>\n <div class=\"mb-3 col-sm-4\">\n <pw-input-container label=\"{{'Label.Seats' | transloco}}{{unitsText}}\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.Units' | transloco\"\n class=\"col-md-6 p-0\"\n name=\"units\"\n [errorMsg]=\"'Admin.Subscriptions.Validation.Units' | transloco\">\n <input type=\"number\"\n class=\"form-control\"\n formControlName=\"units\"\n [ngClass]=\"{\n 'is-invalid': form.get('units').touched && form.get('units').invalid\n }\" />\n </pw-input-container>\n </div>\n <div class=\"mb-3 col-sm-4\">\n <pw-input-container [label]=\"'Admin.Subscriptions.MinUnits' | transloco\"\n [showTooltip]=\"true\"\n name=\"min_units\"\n [errorMsg]=\"'Admin.Subscriptions.Validation.MinUnits' | transloco\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.MinUnits' | transloco\">\n <input type=\"number\"\n min=\"0\"\n [max]=\"form.get('units').value\"\n class=\"form-control\"\n formControlName=\"min_units\" />\n </pw-input-container>\n </div>\n <div class=\"mb-3 col-sm-4\"\n *ngIf=\"organizationIndustries$ | async as industries\">\n <pw-input-container [label]=\"'Organization.OrganizationIndustry' | transloco\"\n name=\"organization_industry_id\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.OrganizationIndustry'| transloco\">\n <p-dropdown\n [options]=\"industries['organization_industries']\"\n formControlName=\"organization_industry_id\"\n [placeholder]=\"'Select Organization Industry'\"\n optionValue=\"id\"\n optionLabel=\"name\">\n </p-dropdown>\n </pw-input-container>\n </div>\n <div class=\"mb-3 col-sm-4\">\n <pw-input-container [label]=\"'Organization.OrganizationName' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.OrganizationName'| transloco\"\n class=\"col-md-6 p-0\"\n name=\"name\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"name\"\n [ngClass]=\"{\n 'is-invalid': form.get('name').touched && form.get('name').invalid\n }\" />\n </pw-input-container>\n </div>\n <div class=\"mb-3 col-sm-4\"\n *ngIf=\"organizationTypes$ | async as types\">\n <pw-input-container [label]=\"'Organization.OrganizationType' | transloco\"\n name=\"organization_type_id\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.OrganizationType'| transloco\">\n <p-dropdown\n [options]=\"types['organization_types']\"\n formControlName=\"organization_type_id\"\n [placeholder]=\"'Select Organization Type'\"\n optionValue=\"id\"\n optionLabel=\"name\">\n </p-dropdown>\n </pw-input-container>\n </div>\n <div class=\"mb-3 col-sm-4\"\n *ngIf=\"organizationSizes$ | async as sizes\">\n <pw-input-container [label]=\"'Organization.OrganizationSize' | transloco\"\n name=\"organization_size_id\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.OrganizationSize'| transloco\">\n <p-dropdown\n [options]=\"sizes['organization_sizes']\"\n formControlName=\"organization_size_id\"\n [placeholder]=\"'Select Organization Size'\"\n optionValue=\"id\"\n optionLabel=\"name\">\n </p-dropdown>\n </pw-input-container>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-12 text-end\">\n <input type=\"button\"\n class=\"btn btn-outline-primary me-3\"\n value=\"Cancel\"\n (click)=\"form.reset(); totalRecordsUnFiltered = 0; back()\" />\n <button type=\"submit\"\n [buttonBusy]=\"buttonBusy\"\n [disabled]=\"buttonBusy\"\n class=\"btn btn-primary\">Invite</button>\n </div>\n </div>\n</form>\n </div>\n </div>\n </div>\n</div>", styles: [":root{--first: rgb(23 105 225);--second: rgb(54 194 131);--third: rgb(255 171 0);--text: rgb(34 34 34);--tabs_bg: rgb(23 105 225);--tabs_sub_bg: rgb(70, 136, 236);--tabs_text: rgb(255 255 255);--titles: rgb(34 34 34);--sidebar_bg: rgb(0, 48, 63);--sidebar_text: rgb(255 255 255)}\n"] }]
227
228
  }], ctorParameters: () => [{ type: i1.UntypedFormBuilder }, { type: i2.AdminService }, { type: i3.ProductService }, { type: i0.Injector }, { type: i3.CommonService }, { type: i0.ChangeDetectorRef }], propDecorators: { refProduct: [{
228
229
  type: ViewChild,
229
230
  args: ['refProduct']
230
231
  }] } });
231
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52aXRlLXVzZXJzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9zdWJzY3JpcHRpb25zL3N1YnNjcmlwdGlvbnMtbGlzdC9pbnZpdGUtdXNlcnMvaW52aXRlLXVzZXJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9zdWJzY3JpcHRpb25zL3N1YnNjcmlwdGlvbnMtbGlzdC9pbnZpdGUtdXNlcnMvaW52aXRlLXVzZXJzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFFBQVEsRUFHUixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFvQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFaEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFDSCxhQUFhLEVBQ2IsaUJBQWlCLEVBQ2pCLGlCQUFpQixFQUNqQixjQUFjLEVBQ2pCLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBR3pELE9BQU8sT0FBTyxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRCxPQUFPLEVBQWMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV0RCxPQUFPLEVB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QUMsVUFBVTtZQUMzQixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbkIsV0FBVyxFQUFFLElBQUksQ0FBQyxtQkFBbUI7U0FDeEMsQ0FBQztRQUNGLFlBQVksQ0FBQyxPQUFPLENBQUMseUJBQXlCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLE1BQU0sUUFBUSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMzRCxJQUFJLEtBQUssWUFBWSxhQUFhLEVBQUUsQ0FBQztnQkFDakMsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztvQkFDckQsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMseUJBQXlCLENBQUMsQ0FBQztvQkFDekQsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDdEIsQ0FBQztZQUNMLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN4QixDQUFDOytHQW5RUSxvQkFBb0I7bUdBQXBCLG9CQUFvQix3TENuQ2pDLGcyUEFrTU07OzRGRC9KTyxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0ksaUJBQWlCO2tPQVFGLFVBQVU7c0JBQWxDLFNBQVM7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3Q2hlY2tlZCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgSW5qZWN0b3IsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUJ1aWxkZXIsIFVudHlwZWRGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uRW5kIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgQWRtaW5TZXJ2aWNlIH0gZnJvbSAnQHBvc2l3aXNlL2FkbWluLW1vZHVsZS11dGlscyc7XG5pbXBvcnQgeyBBcHBCYXNlQ29tcG9uZW50IH0gZnJvbSAnQHBvc2l3aXNlL2FwcC1iYXNlLWNvbXBvbmVudCc7XG5pbXBvcnQge1xuICAgIENvbW1vblNlcnZpY2UsXG4gICAgRm9ybUhlbHBlclNlcnZpY2UsXG4gICAgUGVybWlzc2lvblNlcnZpY2UsXG4gICAgUHJvZHVjdFNlcnZpY2Vcbn0gZnJvbSAnQHBvc2l3aXNlL2NvbW1vbi1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBIZWxwZXJTZXJ2aWNlIH0gZnJvbSAnQHBvc2l3aXNlL2hlbHBlci1zZXJ2aWNlJztcblxuaW1wb3J0IHsgRmVhdHVyZUtleSB9IGZyb20gJ2xpYnMvYWRtaW4tbW9kdWxlL3NyYy9saWIvc2hhcmVkL2ludGVyZmFjZS9uZXdzbGV0dGVyLmludGVyZmFjZSc7XG5pbXBvcnQgZ3JvdXBCeSBmcm9tICdsb2Rhc2gvZ3JvdXBCeSc7XG5pbXBvcnQgeyBMYXp5TG9hZEV2ZW50IH0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHsgQXV0b0NvbXBsZXRlIH0gZnJvbSAncHJpbWVuZy9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFJPVVRFUlMgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvcm91dGVycy9yb3V0ZXJzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwdy1pbnZpdGUtdXNlcnMnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnZpdGUtdXNlcnMuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2ludml0ZS11c2Vycy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEludml0ZVVzZXJzQ29tcG9uZW50XG4gICAgZXh0ZW5kcyBBcHBCYXNlQ29tcG9uZW50XG4gICAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3Q2hlY2tlZFxue1xuICAgIEBWaWV3Q2hpbGQoJ3JlZlByb2R1Y3QnKSByZWZQcm9kdWN0OiBBdXRvQ29tcGxldGU7XG5cbiAgICBvcmdhbml6YXRpb25TaXplcyQ6IE9ic2VydmFibGU8RmVhdHVyZUtleVtdPjtcbiAgICBvcmdhbml6YXRpb25UeXBlcyQ6IE9ic2VydmFibGU8RmVhdHVyZUtleVtdPjtcbiAgICBvcmdhbml6YXRpb25JbmR1c3RyaWVzJDogT2JzZXJ2YWJsZTxGZWF0dXJlS2V5W10+O1xuXG4gICAgcHJpdmF0ZSBwYWdlID0gMTtcblxuICAgIHRvdGFsUmVjb3JkcyA9IDA7XG5cbiAgICBsb2FkaW5nID0gdHJ1ZTtcblxuICAgIHNlYXJjaFRleHQgPSAnJztcblxuICAgIHN1YnNjcmlwdGlvbnMgPSBbXTtcblxuICAgIGZvcm06IFVudHlwZWRGb3JtR3JvdXA7XG5cbiAgICBwcm9kdWN0cyA9IFtdO1xuXG4gICAgc2VhcmNoT3B0aW9uczogeyBpZDogdW5rbm93bjsgbGFiZWw6IHVua25vd24gfVtdID0gW107XG5cbiAgICBmaWx0ZXJCeUZlYXR1cmVLZXlzID0gW107XG5cbiAgICBpc0xvYWRlZCA9IHRydWU7XG5cbiAgICBiaWxsaW5nRnJlcXVlbmN5ID0gWyd3ZWVrJywgJ21vbnRoJywgJ3llYXInXTtcbiAgICBzdWJzY3JpcHRpb25TdGF0dXMgPSBbJ2FsbCcsICdleHBpcmVkJywgJ2FjdGl2ZScsICdwYWlkJ107XG5cbiAgICByb3V0ZXJzID0gUk9VVEVSUztcblxuICAgIHN0YXR1cyA9ICcnO1xuICAgIHVuaXRzVGV4dCA9ICcnO1xuXG4gICAgc3Vic2NyaXB0aW9uSWQ6IG51bWJlcjtcblxuICAgIHRvdGFsUmVjb3Jkc1VuRmlsdGVyZWQgPSAwO1xuXG4gICAgZmlsdGVyZWRQcm9kdWN0cyA9IFtdO1xuICAgIGN1cnJlbmN5ID0gW107XG5cbiAgICBvYmplY3RLZXlzID0gT2JqZWN0LmtleXM7XG5cbiAgICBidXR0b25CdXN5ID0gZmFsc2U7XG5cbiAgICBzZWxlY3RlZEZlYXR1cmVLZXlzOiBGZWF0dXJlS2V5W107XG4gICAgc3Vic2NyaXB0aW9uSW5zaWdodHM6IEZlYXR1cmVLZXlbXTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGZiOiBVbnR5cGVkRm9ybUJ1aWxkZXIsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgYWRtaW5TZXJ2aWNlOiBBZG1pblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvZHVjdFNlcnZpY2U6IFByb2R1Y3RTZXJ2aWNlLFxuICAgICAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY29tbW9uU2VydmljZTogQ29tbW9uU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGluamVjdG9yKTtcbiAgICAgICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICAgICAgICBwcm9kdWN0X2lkOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgICAgICAgZmlyc3RfbmFtZTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICAgICAgIGxhc3RfbmFtZTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICAgICAgIGVtYWlsOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLmVtYWlsXV0sXG4gICAgICAgICAgICBvcmdhbml6YXRpb25faW5kdXN0cnlfaWQ6IFsnJ10sXG4gICAgICAgICAgICBvcmdhbml6YXRpb25fdHlwZV9pZDogWycnXSxcbiAgICAgICAgICAgIG9yZ2FuaXphdGlvbl9zaXplX2lkOiBbJyddLFxuICAgICAgICAgICAgbmFtZTogWycnXSxcbiAgICAgICAgICAgIHVuaXRzOiBbJyddLFxuICAgICAgICAgICAgbWluX3VuaXRzOiBbJyddXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmdldFRhYmxlU3RhdGUoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5vcmdhbml6YXRpb25JbmR1c3RyaWVzJCA9IHRoaXMuY29tbW9uU2VydmljZS5nZXRPcmdhbml6YXRpb25JbmR1c3RyaWVzKCk7XG4gICAgICAgIHRoaXMub3JnYW5pemF0aW9uVHlwZXMkID0gdGhpcy5jb21tb25TZXJ2aWNlLmdldE9yZ2FuaXphdGlvblR5cGVzKCk7XG4gICAgICAgIHRoaXMub3JnYW5pemF0aW9uU2l6ZXMkID0gdGhpcy5jb21tb25TZXJ2aWNlLmdldE9yZ2FuaXphdGlvblNpemVzKCk7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uSWQgPSBQZXJtaXNzaW9uU2VydmljZS5zZWxlY3RlZFN1YnNjcmlwdGlvbj8uaWQ7XG4gICAgICAgIHRoaXMuZ2V0U3VwcG9ydGVkQ3VycmVuY3koKTtcbiAgICAgICAgdGhpcy5nZXRQcm9kdWN0c0xpc3QoKTtcbiAgICAgICAgdGhpcy5nZXRNaW5NYXhVbml0cygpO1xuICAgIH1cblxuICAgIGdldFRhYmxlU3RhdGUoKSB7XG4gICAgICAgIHRoaXMubG9jYWxTdG9yYWdlLmdldEl0ZW0kKCdzdWJzY3JpcHRpb24tbGlzdC1zdGF0ZScpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgICAgaWYgKHJlcykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IEpTT04ucGFyc2UocmVzKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaFRleHQgPSByZXN1bHQ/LnNlYXJjaFRleHQgfHwgJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0dXMgPSByZXN1bHQ/LnN0YXR1cyB8fCAnJztcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRmVhdHVyZUtleXMgPSByZXN1bHQ/LmZlYXR1cmVLZXlzIHx8IFtdO1xuICAgICAgICAgICAgICAgIHRoaXMuZmlsdGVyQnlGZWF0dXJlS2V5cyA9IHRoaXMuc2VsZWN0ZWRGZWF0dXJlS2V5cztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdDaGVja2VkKCkge1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgb25MYXp5TG9hZChldmVudDogTGF6eUxvYWRFdmVudCkge1xuICAgICAgICBjb25zdCBwYWdlRGV0YWlscyA9IEhlbHBlclNlcnZpY2Uub25UYWJsZUxhenlMb2FkKGV2ZW50KTtcbiAgICAgICAgdGhpcy5wYWdlID0gcGFnZURldGFpbHMucGFnZTtcbiAgICB9XG5cbiAgICBnZXRTdXBwb3J0ZWRDdXJyZW5jeSgpIHtcbiAgICAgICAgdGhpcy5wcm9kdWN0U2VydmljZS5nZXRTdXBwb3J0ZWRDdXJyZW5jeSgpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW5jeSA9IHJlcz8ucmVnaW9ucztcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0TWluTWF4VW5pdHMoKSB7XG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ3Byb2R1Y3RfaWQnKS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHggPT4ge1xuICAgICAgICAgICAgdGhpcy51bml0c1RleHQgPSB4Py51bml0c1RleHQgfHwgJyc7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uU2F2ZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuZm9ybS5pbnZhbGlkKSB7XG4gICAgICAgICAgICBGb3JtSGVscGVyU2VydmljZS52YWxpZGF0ZUFsbEZvcm1GaWVsZHModGhpcy5mb3JtKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuYnV0dG9uQnVzeSA9IHRydWU7XG4gICAgICAgICAgICBjb25zdCBwcm9kdWN0SWQgPSB0aGlzLmZvcm0uZ2V0KCdwcm9kdWN0X2lkJykudmFsdWUuaWQ7XG4gICAgICAgICAgICBjb25zdCBpbnZpdGVPYmogPSB7XG4gICAgICAgICAgICAgICAgZW1haWw6IHRoaXMuZm9ybS5nZXQoJ2VtYWlsJykudmFsdWUsXG4gICAgICAgICAgICAgICAgZmlyc3RfbmFtZTogdGhpcy5mb3JtLmdldCgnZmlyc3RfbmFtZScpLnZhbHVlLFxuICAgICAgICAgICAgICAgIGxhc3RfbmFtZTogdGhpcy5mb3JtLmdldCgnbGFzdF9uYW1lJykudmFsdWUsXG4gICAgICAgICAgICAgICAgdW5pdHM6IHRoaXMuZm9ybS5nZXQoJ3VuaXRzJykudmFsdWUsXG4gICAgICAgICAgICAgICAgb3JnYW5pemF0aW9uX2luZHVzdHJ5X2lkOiB0aGlzLmZvcm0uZ2V0KCdvcmdhbml6YXRpb25faW5kdXN0cnlfaWQnKS52YWx1ZSxcbiAgICAgICAgICAgICAgICBvcmdhbml6YXRpb25fdHlwZV9pZDogdGhpcy5mb3JtLmdldCgnb3JnYW5pemF0aW9uX3R5cGVfaWQnKS52YWx1ZSxcbiAgICAgICAgICAgICAgICBvcmdhbml6YXRpb25fc2l6ZV9pZDogdGhpcy5mb3JtLmdldCgnb3JnYW5pemF0aW9uX3NpemVfaWQnKS52YWx1ZSxcbiAgICAgICAgICAgICAgICBuYW1lOiB0aGlzLmZvcm0uZ2V0KCduYW1lJykudmFsdWUsXG4gICAgICAgICAgICAgICAgbWluX3VuaXRzOiB0aGlzLmZvcm0uZ2V0KCdtaW5fdW5pdHMnKS52YWx1ZSxcbiAgICAgICAgICAgICAgICBwcm9kdWN0X2lkOiBwcm9kdWN0SWRcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB0aGlzLnByb2R1Y3RTZXJ2aWNlXG4gICAgICAgICAgICAgICAgLmludml0ZUZvclRyaWFsKHByb2R1Y3RJZCwgaW52aXRlT2JqLCB0aGlzLnN1YnNjcmlwdGlvbklkKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0ucmVzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG9hc3Quc3VjY2VzcyhcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudHJhbnNsYXRpb24udHJhbnNsYXRlKCdBZG1pbi5TdWJzY3JpcHRpb25zLkludml0YXRpb25TZW50JylcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2Ake3RoaXMucm91dGVycy5zdWJzY3JpcHRpb25MaXN0fWBdKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5hZGQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmJ1dHRvbkJ1c3kgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UHJvZHVjdHNMaXN0KCkge1xuICAgICAgICB0aGlzLnByb2R1Y3RTZXJ2aWNlLmdldFByb2R1Y3RMaXN0KHt9LCB0aGlzLnN1YnNjcmlwdGlvbklkKS5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgY29uc3QgZmVhdHVyZUtleXMgPSBBcnJheS5mcm9tKFxuICAgICAgICAgICAgICAgIG5ldyBTZXQocmVzcG9uc2UucHJvZHVjdHMubWFwKGl0ZW0gPT4gaXRlbS5mZWF0dXJlX2tleSkpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hPcHRpb25zID0gZmVhdHVyZUtleXMubWFwKGVsZW1lbnQgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGlkOiBlbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogZWxlbWVudCB8fCAnJ1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzb3J0T2JqKG9iaikge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMob2JqKVxuICAgICAgICAgICAgLnNvcnQoKGEsIGIpID0+IGEubG9jYWxlQ29tcGFyZShiKSlcbiAgICAgICAgICAgIC5yZWR1Y2UoKHJlc3VsdCwga2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgcmVzdWx0W2tleV0gPSBvYmpba2V5XTtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgfSwge30pO1xuICAgIH1cblxuICAgIHNlYXJjaFByb2R1Y3QoZXZlbnQpIHtcbiAgICAgICAgdGhpcy5wcm9kdWN0U2VydmljZVxuICAgICAgICAgICAgLmdldFByb2R1Y3RMaXN0KHsgc2VhcmNoOiBldmVudC5xdWVyeSB9LCB0aGlzLnN1YnNjcmlwdGlvbklkKVxuICAgICAgICAgICAgLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJlZFByb2R1Y3RzID0gdGhpcy5ncm91cFByb2R1Y3RzKHJlc3BvbnNlLnByb2R1Y3RzKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uUHJvZHVjdENoYW5nZShldmVudCkge1xuICAgICAgICBjb25zdCBwcm9kdWN0SWQgPSBOdW1iZXIoZXZlbnQ/LnZhbHVlLmlkKTtcbiAgICAgICAgY29uc3QgcHJvZHVjdE9iaiA9IHRoaXMuZmlsdGVyZWRQcm9kdWN0cy5maW5kKHggPT4geC5pZCA9PT0gcHJvZHVjdElkKTtcbiAgICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICAgICAgcHJvZHVjdF9pZDogcHJvZHVjdE9ialxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvblByb2R1Y3RDbGVhcihfZXZlbnQpIHtcbiAgICAgICAgaWYgKCF0aGlzLnJlZlByb2R1Y3QuaW5wdXRFTC5uYXRpdmVFbGVtZW50LnZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm0uZ2V0KCdwcm9kdWN0X2lkJykuc2V0VmFsdWUoJycpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBncm91cFByb2R1Y3RzKHByb2R1Y3RzKSB7XG4gICAgICAgIGlmIChwcm9kdWN0cz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICBwcm9kdWN0cyA9IHByb2R1Y3RzLmZpbHRlcih4ID0+IHguZGVwZW5kZW5jeV9wcm9kdWN0cz8ubGVuZ3RoIDwgMSAmJiB4LmFjdGl2ZSk7XG4gICAgICAgICAgICBwcm9kdWN0cyA9IGdyb3VwQnkocHJvZHVjdHMsICdjdXJyZW5jeScpO1xuICAgICAgICAgICAgcHJvZHVjdHMgPSB0aGlzLnNvcnRPYmoocHJvZHVjdHMpO1xuICAgICAgICAgICAgbGV0IGdyb3VwZWRBcnJheSA9IFtdO1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXJlc3RyaWN0ZWQtc3ludGF4XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHAgaW4gcHJvZHVjdHMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHByb2R1Y3RzW3BdLnNvcnQoXG4gICAgICAgICAgICAgICAgICAgIChhLCBiKSA9PiBOdW1iZXIoYi5wcmljZV9wZXJfdW5pdCkgLSBOdW1iZXIoYS5wcmljZV9wZXJfdW5pdClcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGdyb3VwZWRBcnJheS5wdXNoKC4uLnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGdyb3VwZWRBcnJheSA9XG4gICAgICAgICAgICAgICAgZ3JvdXBlZEFycmF5Py5tYXAoeCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogeC5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBgJHt4Lm5hbWV9IHwgJHt4LnJlZ2lvbn0gfCAke3guYmlsbGluZ19mcmVxdWVuY3l9IHwgJHt4Lm1pbl91bml0c30geCAkeyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4LnByaWNlX3Blcl91bml0IC8gMTAwXG4gICAgICAgICAgICAgICAgICAgICAgICApLnRvRml4ZWQoMil9IHwgJHt4LmN1cnJlbmN5fWAsXG4gICAgICAgICAgICAgICAgICAgICAgICB1bml0c1RleHQ6IGAobWluICR7eC5taW5fdW5pdHN9IC0gbWF4ICR7eC5tYXhfdW5pdHN9KWBcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9KSB8fCBbXTtcblxuICAgICAgICAgICAgcmV0dXJuIGdyb3VwZWRBcnJheTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBnZXRFeHBpcmVzQXRDb2xvcihpdGVtKSB7XG4gICAgICAgIGNvbnN0IGQgPSBuZXcgRGF0ZSgpO1xuICAgICAgICBjb25zdCBtb250aEJlZm9yZSA9IGQuc2V0TW9udGgoZC5nZXRNb250aCgpIC0gMSk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICd0ZXh0LWRhbmdlciBmdy1ib2xkJzogbmV3IERhdGUoaXRlbS5leHBpcmVzX2F0KSA8IG5ldyBEYXRlKCksXG4gICAgICAgICAgICAndGV4dC13YXJuaW5nIHRleHQtYm9sZC03MDAnOlxuICAgICAgICAgICAgICAgIGl0ZW0uYmlsbGluZ0ZyZXF1ZW5jeSA9PT0gJ3llYXInICYmXG4gICAgICAgICAgICAgICAgbmV3IERhdGUoaXRlbS5leHBpcmVzX2F0KSA8IG5ldyBEYXRlKG1vbnRoQmVmb3JlKSAmJlxuICAgICAgICAgICAgICAgIG5ldyBEYXRlKGl0ZW0uZXhwaXJlc19hdCkgPiBuZXcgRGF0ZSgpXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgICBzZWFyY2hUZXh0OiB0aGlzLnNlYXJjaFRleHQsXG4gICAgICAgICAgICBzdGF0dXM6IHRoaXMuc3RhdHVzLFxuICAgICAgICAgICAgZmVhdHVyZUtleXM6IHRoaXMuZmlsdGVyQnlGZWF0dXJlS2V5c1xuICAgICAgICB9O1xuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnc3Vic2NyaXB0aW9uLWxpc3Qtc3RhdGUnLCBKU09OLnN0cmluZ2lmeShkYXRhKSk7XG4gICAgICAgIGNvbnN0IG5vdGlmaWVyID0gbmV3IFN1YmplY3QoKTtcbiAgICAgICAgdGhpcy5yb3V0ZXIuZXZlbnRzLnBpcGUodGFrZVVudGlsKG5vdGlmaWVyKSkuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgICAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWV2ZW50LnVybEFmdGVyUmVkaXJlY3RzLmluY2x1ZGVzKCcvc3Vic2NyaXB0aW9uJykpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSQoJ3N1YnNjcmlwdGlvbi1saXN0LXN0YXRlJyk7XG4gICAgICAgICAgICAgICAgICAgIG5vdGlmaWVyLm5leHQoJycpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZCBwdy10YWIgb3ZlcmZsb3ctaGlkZGVuXCI+XG4gIDxkaXYgY2xhc3M9XCJkYXNoYm9hcmQgdXNlci1kZXRhaWxzXCI+XG4gICAgPGRpdiBjbGFzcz1cImRhc2hib2FyZC1ib2R5XCI+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJtZS1hdXRvIGNvbC14cy02IG10LTRcIj5cbiAgICAgICAgPGEgYXJpYS1sYWJlbD1cIk5hdmlnYXRlIHRvIFRhcmdldFwiXG4gICAgICAgICAgKGNsaWNrKT1cImJhY2soKVwiXG4gICAgICAgICAgY2xhc3M9XCJwcmV2aW91c1wiPjxpIGNsYXNzPVwiZmEgZmEtYXJyb3ctYWx0LWNpcmNsZS1sZWZ0XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPjwvYT5cbiAgICAgICAgICA8aDMgY2xhc3M9XCJcIj5JbnZpdGUgTmV3IFVzZXI8L2gzPlxuICAgICAgICAgIDxwPkhlcmUgeW91IGNhbiBzZW5kIGFuIGludml0YXRpb24gdG8gYSBuZXcgdXNlciB0byB0cnkgYW55IG9mIG91ciBwcm9kdWN0czwvcD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwicC0yIG10LTNcIj5cbiAgICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCJcbiAgKG5nU3VibWl0KT1cIm9uU2F2ZSgpXCI+XG4gIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICA8ZGl2IGNsYXNzPVwibWItMyBjb2wtc20tNFwiPlxuICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbbGFiZWxdPVwiJ0xhYmVsLkZpcnN0TmFtZScgfCB0cmFuc2xvY29cIlxuICAgICAgICBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiXG4gICAgICAgIFt0b29sdGlwVGV4dF09XCInQWRtaW4uU3Vic2NyaXB0aW9ucy5Ub29sdGlwLkZpcnN0TmFtZScgfCB0cmFuc2xvY29cIlxuICAgICAgICBjbGFzcz1cImNvbC1tZC02IHAtMFwiXG4gICAgICAgIG5hbWU9XCJmaXJzdF9uYW1lXCJcbiAgICAgICAgW2Vycm9yTXNnXT1cIidBZG1pbi5TdWJzY3JpcHRpb25zLlZhbGlkYXRpb24uRmlyc3ROYW1lJyB8IHRyYW5zbG9jb1wiPlxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIlxuICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJmaXJzdF9uYW1lXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAnaXMtaW52YWxpZCc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybS5nZXQoJ2ZpcnN0X25hbWUnKS50b3VjaGVkICYmIGZvcm0uZ2V0KCdmaXJzdF9uYW1lJykuaW52YWxpZFxuICAgICAgICAgICAgICAgICAgICB9XCIgLz5cbiAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJtYi0zIGNvbC1zbS00XCI+XG4gICAgICA8cHctaW5wdXQtY29udGFpbmVyIFtsYWJlbF09XCInTGFiZWwuTGFzdE5hbWUnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgW3Nob3dUb29sdGlwXT1cInRydWVcIlxuICAgICAgICBbdG9vbHRpcFRleHRdPVwiJ0FkbWluLlN1YnNjcmlwdGlvbnMuVG9vbHRpcC5MYXN0TmFtZScgfCB0cmFuc2xvY29cIlxuICAgICAgICBjbGFzcz1cImNvbC1tZC02IHAtMFwiXG4gICAgICAgIG5hbWU9XCJsYXN0X25hbWVcIlxuICAgICAgICBbZXJyb3JNc2ddPVwiJ0FkbWluLlN1YnNjcmlwdGlvbnMuVmFsaWRhdGlvbi5MYXN0TmFtZScgfCB0cmFuc2xvY29cIj5cbiAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibGFzdF9uYW1lXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAnaXMtaW52YWxpZCc6IGZvcm0uZ2V0KCdsYXN0X25hbWUnKS50b3VjaGVkICYmIGZvcm0uZ2V0KCdsYXN0X25hbWUnKS5pbnZhbGlkXG4gICAgICAgICAgICAgICAgICAgIH1cIiAvPlxuICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm1iLTMgY29sLXNtLTRcIj5cbiAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW2xhYmVsXT1cIidMYWJlbC5FbWFpbCcgfCB0cmFuc2xvY29cIlxuICAgICAgICBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiXG4gICAgICAgIFt0b29sdGlwVGV4dF09XCInQWRtaW4uU3Vic2NyaXB0aW9ucy5Ub29sdGlwLkVtYWlsJyB8IHRyYW5zbG9jb1wiXG4gICAgICAgIGNsYXNzPVwiY29sLW1kLTYgcC0wXCJcbiAgICAgICAgbmFtZT1cImVtYWlsXCJcbiAgICAgICAgW2Vycm9yTXNnXT1cIidBZG1pbi5TdWJzY3JpcHRpb25zLlZhbGlkYXRpb24uRW1haWwnIHwgdHJhbnNsb2NvXCI+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImVtYWlsXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAnaXMtaW52YWxpZCc6IGZvcm0uZ2V0KCdlbWFpbCcpLnRvdWNoZWQgJiYgZm9ybS5nZXQoJ2VtYWlsJykuaW52YWxpZFxuICAgICAgICAgICAgICAgICAgICB9XCIgLz5cbiAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJtYi0zIGNvbC1zbS00XCI+XG4gICAgICA8cHctaW5wdXQtY29udGFpbmVyIFtsYWJlbF09XCInTGFiZWwuUHJvZHVjdCcgfCB0cmFuc2xvY29cIlxuICAgICAgICBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiXG4gICAgICAgIFt0b29sdGlwVGV4dF09XCInQWRtaW4uU3Vic2NyaXB0aW9ucy5Ub29sdGlwLlN1YnNjcmlwdGlvblByb2R1Y3QnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgbmFtZT1cInByb2R1Y3RfaWRcIlxuICAgICAgICBbZXJyb3JNc2ddPVwiJ0FkbWluLlN1YnNjcmlwdGlvbnMuVmFsaWRhdGlvbi5Qcm9kdWN0JyB8IHRyYW5zbG9jb1wiPlxuICAgICAgICA8cC1hdXRvQ29tcGxldGUgI3JlZlByb2R1Y3RcbiAgICAgICAgW3N1Z2dlc3Rpb25zXT1cImZpbHRlcmVkUHJvZHVjdHNcIlxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInByb2R1Y3RfaWRcIlxuICAgICAgICAgIGRhdGFLZXk9XCJpZFwiXG4gICAgICAgICAgZmllbGQ9XCJsYWJlbFwiXG4gICAgICAgICAgW2Ryb3Bkb3duXT1cInRydWVcIlxuICAgICAgICAgIFtkZWxheV09XCIxMDAwXCJcbiAgICAgICAgICBbdHlwZV09XCInc2VhcmNoJ1wiXG4gICAgICAgICAgKGNvbXBsZXRlTWV0aG9kKT1cInNlYXJjaFByb2R1Y3QoJGV2ZW50KVwiXG4gICAgICAgICAgKG9uU2VsZWN0KT1cIm9uUHJvZHVjdENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAob25DbGVhcik9XCJvblByb2R1Y3RDbGVhcigkZXZlbnQpXCJcbiAgICAgICAgICBzdHlsZUNsYXNzPVwidy0xMDBcIlxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VhcmNoIFByb2R1Y3RcIlxuICAgICAgICAgIFtpbnB1dFN0eWxlXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybS5nZXQoJ3Byb2R1Y3RfaWQnKS50b3VjaGVkICYmIGZvcm0uZ2V0KCdwcm9kdWN0X2lkJykuaW52YWxpZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8geyBib3JkZXI6ICcxcHggc29saWQgI2ZmNTg2YicgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogeyBib3JkZXI6ICcxcHggc29saWQgZ3JheScgfVxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgIFttdWx0aXBsZV09XCJmYWxzZVwiPlxuICAgICAgICA8L3AtYXV0b0NvbXBsZXRlPlxuICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm1iLTMgY29sLXNtLTRcIj5cbiAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgbGFiZWw9XCJ7eydMYWJlbC5TZWF0cycgfCB0cmFuc2xvY299fXt7dW5pdHNUZXh0fX1cIlxuICAgICAgICBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiXG4gICAgICAgIFt0b29sdGlwVGV4dF09XCInQWRtaW4uU3Vic2NyaXB0aW9ucy5Ub29sdGlwLlVuaXRzJyB8IHRyYW5zbG9jb1wiXG4gICAgICAgIGNsYXNzPVwiY29sLW1kLTYgcC0wXCJcbiAgICAgICAgbmFtZT1cInVuaXRzXCJcbiAgICAgICAgW2Vycm9yTXNnXT1cIidBZG1pbi5TdWJzY3JpcHRpb25zLlZhbGlkYXRpb24uVW5pdHMnIHwgdHJhbnNsb2NvXCI+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidW5pdHNcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICdpcy1pbnZhbGlkJzogZm9ybS5nZXQoJ3VuaXRzJykudG91Y2hlZCAmJiBmb3JtLmdldCgndW5pdHMnKS5pbnZhbGlkXG4gICAgICAgICAgICAgICAgICAgIH1cIiAvPlxuICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm1iLTMgY29sLXNtLTRcIj5cbiAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW2xhYmVsXT1cIidBZG1pbi5TdWJzY3JpcHRpb25zLk1pblVuaXRzJyB8IHRyYW5zbG9jb1wiXG4gICAgICAgIFtzaG93VG9vbHRpcF09XCJ0cnVlXCJcbiAgICAgICAgbmFtZT1cIm1pbl91bml0c1wiXG4gICAgICAgIFtlcnJvck1zZ109XCInQWRtaW4uU3Vic2NyaXB0aW9ucy5WYWxpZGF0aW9uLk1pblVuaXRzJyB8IHRyYW5zbG9jb1wiXG4gICAgICAgIFt0b29sdGlwVGV4dF09XCInQWRtaW4uU3Vic2NyaXB0aW9ucy5Ub29sdGlwLk1pblVuaXRzJyB8IHRyYW5zbG9jb1wiPlxuICAgICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgbWluPVwiMFwiXG4gICAgICAgICAgW21heF09XCJmb3JtLmdldCgndW5pdHMnKS52YWx1ZVwiXG4gICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm1pbl91bml0c1wiIC8+XG4gICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibWItMyBjb2wtc20tNFwiXG4gICAgICAqbmdJZj1cIm9yZ2FuaXphdGlvbkluZHVzdHJpZXMkIHwgYXN5bmMgYXMgaW5kdXN0cmllc1wiPlxuICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbbGFiZWxdPVwiJ09yZ2FuaXphdGlvbi5Pcmdhbml6YXRpb25JbmR1c3RyeScgfCB0cmFuc2xvY29cIlxuICAgICAgICBuYW1lPVwib3JnYW5pemF0aW9uX2luZHVzdHJ5X2lkXCJcbiAgICAgICAgW3Nob3dUb29sdGlwXT1cInRydWVcIlxuICAgICAgICBbdG9vbHRpcFRleHRdPVwiJ0FkbWluLlN1YnNjcmlwdGlvbnMuVG9vbHRpcC5Pcmdhbml6YXRpb25JbmR1c3RyeSd8IHRyYW5zbG9jb1wiPlxuICAgICAgICA8c2VsZWN0IGZvcm1Db250cm9sTmFtZT1cIm9yZ2FuaXphdGlvbl9pbmR1c3RyeV9pZFwiXG4gICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1zZWxlY3RcIj5cbiAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgaW5kdXN0cmllc1snb3JnYW5pemF0aW9uX2luZHVzdHJpZXMnXVwiXG4gICAgICAgICAgICBbdmFsdWVdPVwib3B0aW9uLmlkXCI+XG4gICAgICAgICAgICB7eyBvcHRpb24ubmFtZSB9fVxuICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICA8L3NlbGVjdD5cbiAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJtYi0zIGNvbC1zbS00XCI+XG4gICAgICA8cHctaW5wdXQtY29udGFpbmVyIFtsYWJlbF09XCInT3JnYW5pemF0aW9uLk9yZ2FuaXphdGlvbk5hbWUnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgW3Nob3dUb29sdGlwXT1cInRydWVcIlxuICAgICAgICBbdG9vbHRpcFRleHRdPVwiJ0FkbWluLlN1YnNjcmlwdGlvbnMuVG9vbHRpcC5Pcmdhbml6YXRpb25OYW1lJ3wgdHJhbnNsb2NvXCJcbiAgICAgICAgY2xhc3M9XCJjb2wtbWQtNiBwLTBcIlxuICAgICAgICBuYW1lPVwibmFtZVwiPlxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIlxuICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAnaXMtaW52YWxpZCc6IGZvcm0uZ2V0KCduYW1lJykudG91Y2hlZCAmJiBmb3JtLmdldCgnbmFtZScpLmludmFsaWRcbiAgICAgICAgICAgICAgICAgICAgfVwiIC8+XG4gICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibWItMyBjb2wtc20tNFwiXG4gICAgICAqbmdJZj1cIm9yZ2FuaXphdGlvblR5cGVzJCB8IGFzeW5jIGFzIHR5cGVzXCI+XG4gICAgICA8cHctaW5wdXQtY29udGFpbmVyIFtsYWJlbF09XCInT3JnYW5pemF0aW9uLk9yZ2FuaXphdGlvblR5cGUnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgbmFtZT1cIm9yZ2FuaXphdGlvbl90eXBlX2lkXCJcbiAgICAgICAgW3Nob3dUb29sdGlwXT1cInRydWVcIlxuICAgICAgICBbdG9vbHRpcFRleHRdPVwiJ0FkbWluLlN1YnNjcmlwdGlvbnMuVG9vbHRpcC5Pcmdhbml6YXRpb25UeXBlJ3wgdHJhbnNsb2NvXCI+XG4gICAgICAgIDxzZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwib3JnYW5pemF0aW9uX3R5cGVfaWRcIlxuICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tc2VsZWN0XCI+XG4gICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIHR5cGVzWydvcmdhbml6YXRpb25fdHlwZXMnXVwiXG4gICAgICAgICAgICBbdmFsdWVdPVwib3B0aW9uLmlkXCI+XG4gICAgICAgICAgICB7eyBvcHRpb24ubmFtZSB9fVxuICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICA8L3NlbGVjdD5cbiAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJtYi0zIGNvbC1zbS00XCJcbiAgICAgICpuZ0lmPVwib3JnYW5pemF0aW9uU2l6ZXMkIHwgYXN5bmMgYXMgc2l6ZXNcIj5cbiAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW2xhYmVsXT1cIidPcmdhbml6YXRpb24uT3JnYW5pemF0aW9uU2l6ZScgfCB0cmFuc2xvY29cIlxuICAgICAgICBuYW1lPVwib3JnYW5pemF0aW9uX3NpemVfaWRcIlxuICAgICAgICBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiXG4gICAgICAgIFt0b29sdGlwVGV4dF09XCInQWRtaW4uU3Vic2NyaXB0aW9ucy5Ub29sdGlwLk9yZ2FuaXphdGlvblNpemUnfCB0cmFuc2xvY29cIj5cbiAgICAgICAgPHNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJvcmdhbml6YXRpb25fc2l6ZV9pZFwiXG4gICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1zZWxlY3RcIj5cbiAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygc2l6ZXNbJ29yZ2FuaXphdGlvbl9zaXplcyddXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJvcHRpb24uaWRcIj5cbiAgICAgICAgICAgIHt7IG9wdGlvbi5uYW1lIH19XG4gICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgIDwvc2VsZWN0PlxuICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbC0xMiB0ZXh0LWVuZFwiPlxuICAgICAgPGlucHV0IHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1wcmltYXJ5IG1lLTNcIlxuICAgICAgICB2YWx1ZT1cIkNhbmNlbFwiXG4gICAgICAgIChjbGljayk9XCJmb3JtLnJlc2V0KCk7IHRvdGFsUmVjb3Jkc1VuRmlsdGVyZWQgPSAwOyBiYWNrKClcIiAvPlxuICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgW2J1dHRvbkJ1c3ldPVwiYnV0dG9uQnVzeVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJidXR0b25CdXN5XCJcbiAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIj5JbnZpdGU8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Zvcm0+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj4iXX0=
232
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52aXRlLXVzZXJzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9zdWJzY3JpcHRpb25zL3N1YnNjcmlwdGlvbnMtbGlzdC9pbnZpdGUtdXNlcnMvaW52aXRlLXVzZXJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9zdWJzY3JpcHRpb25zL3N1YnNjcmlwdGlvbnMtbGlzdC9pbnZpdGUtdXNlcnMvaW52aXRlLXVzZXJzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFFBQVEsRUFHUixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFvQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFaEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFDSCxhQUFhLEVBQ2IsaUJBQWlCLEVBQ2pCLGlCQUFpQixFQUNqQixjQUFjLEVBQ2pCLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXpELE9BQU8sT0FBTyxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRCxPQUFPLEVBQWMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUd0RCxPQUFPLEVB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QUFDLFVBQVU7WUFDM0IsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLFdBQVcsRUFBRSxJQUFJLENBQUMsbUJBQW1CO1NBQ3hDLENBQUM7UUFDRixZQUFZLENBQUMsT0FBTyxDQUFDLHlCQUF5QixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN0RSxNQUFNLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQy9CLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDM0QsSUFBSSxLQUFLLFlBQVksYUFBYSxFQUFFLENBQUM7Z0JBQ2pDLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7b0JBQ3JELElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLHlCQUF5QixDQUFDLENBQUM7b0JBQ3pELFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3RCLENBQUM7WUFDTCxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDSCxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDeEIsQ0FBQzsrR0FuUVEsb0JBQW9CO21HQUFwQixvQkFBb0Isd0xDbkNqQyw0MFBBa01NOzs0RkQvSk8sb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNJLGlCQUFpQjtrT0FRRixVQUFVO3NCQUFsQyxTQUFTO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0NoZWNrZWQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEluamVjdG9yLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1CdWlsZGVyLCBVbnR5cGVkRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkVuZCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IEFkbWluU2VydmljZSB9IGZyb20gJ0Bwb3Npd2lzZS9hZG1pbi1tb2R1bGUtdXRpbHMnO1xuaW1wb3J0IHsgQXBwQmFzZUNvbXBvbmVudCB9IGZyb20gJ0Bwb3Npd2lzZS9hcHAtYmFzZS1jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgICBDb21tb25TZXJ2aWNlLFxuICAgIEZvcm1IZWxwZXJTZXJ2aWNlLFxuICAgIFBlcm1pc3Npb25TZXJ2aWNlLFxuICAgIFByb2R1Y3RTZXJ2aWNlXG59IGZyb20gJ0Bwb3Npd2lzZS9jb21tb24tc2VydmljZXMnO1xuaW1wb3J0IHsgSGVscGVyU2VydmljZSB9IGZyb20gJ0Bwb3Npd2lzZS9oZWxwZXItc2VydmljZSc7XG5cbmltcG9ydCBncm91cEJ5IGZyb20gJ2xvZGFzaC9ncm91cEJ5JztcbmltcG9ydCB7IExhenlMb2FkRXZlbnQgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBBdXRvQ29tcGxldGUgfSBmcm9tICdwcmltZW5nL2F1dG9jb21wbGV0ZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgRmVhdHVyZUtleSB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9pbnRlcmZhY2UvbmV3c2xldHRlci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUk9VVEVSUyB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9yb3V0ZXJzL3JvdXRlcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3B3LWludml0ZS11c2VycycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ludml0ZS11c2Vycy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaW52aXRlLXVzZXJzLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgSW52aXRlVXNlcnNDb21wb25lbnRcbiAgICBleHRlbmRzIEFwcEJhc2VDb21wb25lbnRcbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdDaGVja2VkXG57XG4gICAgQFZpZXdDaGlsZCgncmVmUHJvZHVjdCcpIHJlZlByb2R1Y3Q6IEF1dG9Db21wbGV0ZTtcblxuICAgIG9yZ2FuaXphdGlvblNpemVzJDogT2JzZXJ2YWJsZTxGZWF0dXJlS2V5W10+O1xuICAgIG9yZ2FuaXphdGlvblR5cGVzJDogT2JzZXJ2YWJsZTxGZWF0dXJlS2V5W10+O1xuICAgIG9yZ2FuaXphdGlvbkluZHVzdHJpZXMkOiBPYnNlcnZhYmxlPEZlYXR1cmVLZXlbXT47XG5cbiAgICBwcml2YXRlIHBhZ2UgPSAxO1xuXG4gICAgdG90YWxSZWNvcmRzID0gMDtcblxuICAgIGxvYWRpbmcgPSB0cnVlO1xuXG4gICAgc2VhcmNoVGV4dCA9ICcnO1xuXG4gICAgc3Vic2NyaXB0aW9ucyA9IFtdO1xuXG4gICAgZm9ybTogVW50eXBlZEZvcm1Hcm91cDtcblxuICAgIHByb2R1Y3RzID0gW107XG5cbiAgICBzZWFyY2hPcHRpb25zOiB7IGlkOiB1bmtub3duOyBsYWJlbDogdW5rbm93biB9W10gPSBbXTtcblxuICAgIGZpbHRlckJ5RmVhdHVyZUtleXMgPSBbXTtcblxuICAgIGlzTG9hZGVkID0gdHJ1ZTtcblxuICAgIGJpbGxpbmdGcmVxdWVuY3kgPSBbJ3dlZWsnLCAnbW9udGgnLCAneWVhciddO1xuICAgIHN1YnNjcmlwdGlvblN0YXR1cyA9IFsnYWxsJywgJ2V4cGlyZWQnLCAnYWN0aXZlJywgJ3BhaWQnXTtcblxuICAgIHJvdXRlcnMgPSBST1VURVJTO1xuXG4gICAgc3RhdHVzID0gJyc7XG4gICAgdW5pdHNUZXh0ID0gJyc7XG5cbiAgICBzdWJzY3JpcHRpb25JZDogbnVtYmVyO1xuXG4gICAgdG90YWxSZWNvcmRzVW5GaWx0ZXJlZCA9IDA7XG5cbiAgICBmaWx0ZXJlZFByb2R1Y3RzID0gW107XG4gICAgY3VycmVuY3kgPSBbXTtcblxuICAgIG9iamVjdEtleXMgPSBPYmplY3Qua2V5cztcblxuICAgIGJ1dHRvbkJ1c3kgPSBmYWxzZTtcblxuICAgIHNlbGVjdGVkRmVhdHVyZUtleXM6IEZlYXR1cmVLZXlbXTtcbiAgICBzdWJzY3JpcHRpb25JbnNpZ2h0czogRmVhdHVyZUtleVtdO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZmI6IFVudHlwZWRGb3JtQnVpbGRlcixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBhZG1pblNlcnZpY2U6IEFkbWluU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBwcm9kdWN0U2VydmljZTogUHJvZHVjdFNlcnZpY2UsXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjb21tb25TZXJ2aWNlOiBDb21tb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICApIHtcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xuICAgICAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICAgICAgIHByb2R1Y3RfaWQ6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICAgICAgICBmaXJzdF9uYW1lOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgICAgICAgbGFzdF9uYW1lOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgICAgICAgZW1haWw6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMuZW1haWxdXSxcbiAgICAgICAgICAgIG9yZ2FuaXphdGlvbl9pbmR1c3RyeV9pZDogWycnXSxcbiAgICAgICAgICAgIG9yZ2FuaXphdGlvbl90eXBlX2lkOiBbJyddLFxuICAgICAgICAgICAgb3JnYW5pemF0aW9uX3NpemVfaWQ6IFsnJ10sXG4gICAgICAgICAgICBuYW1lOiBbJyddLFxuICAgICAgICAgICAgdW5pdHM6IFsnJ10sXG4gICAgICAgICAgICBtaW5fdW5pdHM6IFsnJ11cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuZ2V0VGFibGVTdGF0ZSgpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLm9yZ2FuaXphdGlvbkluZHVzdHJpZXMkID0gdGhpcy5jb21tb25TZXJ2aWNlLmdldE9yZ2FuaXphdGlvbkluZHVzdHJpZXMoKTtcbiAgICAgICAgdGhpcy5vcmdhbml6YXRpb25UeXBlcyQgPSB0aGlzLmNvbW1vblNlcnZpY2UuZ2V0T3JnYW5pemF0aW9uVHlwZXMoKTtcbiAgICAgICAgdGhpcy5vcmdhbml6YXRpb25TaXplcyQgPSB0aGlzLmNvbW1vblNlcnZpY2UuZ2V0T3JnYW5pemF0aW9uU2l6ZXMoKTtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25JZCA9IFBlcm1pc3Npb25TZXJ2aWNlLnNlbGVjdGVkU3Vic2NyaXB0aW9uPy5pZDtcbiAgICAgICAgdGhpcy5nZXRTdXBwb3J0ZWRDdXJyZW5jeSgpO1xuICAgICAgICB0aGlzLmdldFByb2R1Y3RzTGlzdCgpO1xuICAgICAgICB0aGlzLmdldE1pbk1heFVuaXRzKCk7XG4gICAgfVxuXG4gICAgZ2V0VGFibGVTdGF0ZSgpIHtcbiAgICAgICAgdGhpcy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSQoJ3N1YnNjcmlwdGlvbi1saXN0LXN0YXRlJykuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgICBpZiAocmVzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gSlNPTi5wYXJzZShyZXMpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoVGV4dCA9IHJlc3VsdD8uc2VhcmNoVGV4dCB8fCAnJztcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXR1cyA9IHJlc3VsdD8uc3RhdHVzIHx8ICcnO1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGZWF0dXJlS2V5cyA9IHJlc3VsdD8uZmVhdHVyZUtleXMgfHwgW107XG4gICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJCeUZlYXR1cmVLZXlzID0gdGhpcy5zZWxlY3RlZEZlYXR1cmVLZXlzO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0NoZWNrZWQoKSB7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBvbkxhenlMb2FkKGV2ZW50OiBMYXp5TG9hZEV2ZW50KSB7XG4gICAgICAgIGNvbnN0IHBhZ2VEZXRhaWxzID0gSGVscGVyU2VydmljZS5vblRhYmxlTGF6eUxvYWQoZXZlbnQpO1xuICAgICAgICB0aGlzLnBhZ2UgPSBwYWdlRGV0YWlscy5wYWdlO1xuICAgIH1cblxuICAgIGdldFN1cHBvcnRlZEN1cnJlbmN5KCkge1xuICAgICAgICB0aGlzLnByb2R1Y3RTZXJ2aWNlLmdldFN1cHBvcnRlZEN1cnJlbmN5KCkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbmN5ID0gcmVzPy5yZWdpb25zO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXRNaW5NYXhVbml0cygpIHtcbiAgICAgICAgdGhpcy5mb3JtLmdldCgncHJvZHVjdF9pZCcpLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoeCA9PiB7XG4gICAgICAgICAgICB0aGlzLnVuaXRzVGV4dCA9IHg/LnVuaXRzVGV4dCB8fCAnJztcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25TYXZlKCkge1xuICAgICAgICBpZiAodGhpcy5mb3JtLmludmFsaWQpIHtcbiAgICAgICAgICAgIEZvcm1IZWxwZXJTZXJ2aWNlLnZhbGlkYXRlQWxsRm9ybUZpZWxkcyh0aGlzLmZvcm0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5idXR0b25CdXN5ID0gdHJ1ZTtcbiAgICAgICAgICAgIGNvbnN0IHByb2R1Y3RJZCA9IHRoaXMuZm9ybS5nZXQoJ3Byb2R1Y3RfaWQnKS52YWx1ZS5pZDtcbiAgICAgICAgICAgIGNvbnN0IGludml0ZU9iaiA9IHtcbiAgICAgICAgICAgICAgICBlbWFpbDogdGhpcy5mb3JtLmdldCgnZW1haWwnKS52YWx1ZSxcbiAgICAgICAgICAgICAgICBmaXJzdF9uYW1lOiB0aGlzLmZvcm0uZ2V0KCdmaXJzdF9uYW1lJykudmFsdWUsXG4gICAgICAgICAgICAgICAgbGFzdF9uYW1lOiB0aGlzLmZvcm0uZ2V0KCdsYXN0X25hbWUnKS52YWx1ZSxcbiAgICAgICAgICAgICAgICB1bml0czogdGhpcy5mb3JtLmdldCgndW5pdHMnKS52YWx1ZSxcbiAgICAgICAgICAgICAgICBvcmdhbml6YXRpb25faW5kdXN0cnlfaWQ6IHRoaXMuZm9ybS5nZXQoJ29yZ2FuaXphdGlvbl9pbmR1c3RyeV9pZCcpLnZhbHVlLFxuICAgICAgICAgICAgICAgIG9yZ2FuaXphdGlvbl90eXBlX2lkOiB0aGlzLmZvcm0uZ2V0KCdvcmdhbml6YXRpb25fdHlwZV9pZCcpLnZhbHVlLFxuICAgICAgICAgICAgICAgIG9yZ2FuaXphdGlvbl9zaXplX2lkOiB0aGlzLmZvcm0uZ2V0KCdvcmdhbml6YXRpb25fc2l6ZV9pZCcpLnZhbHVlLFxuICAgICAgICAgICAgICAgIG5hbWU6IHRoaXMuZm9ybS5nZXQoJ25hbWUnKS52YWx1ZSxcbiAgICAgICAgICAgICAgICBtaW5fdW5pdHM6IHRoaXMuZm9ybS5nZXQoJ21pbl91bml0cycpLnZhbHVlLFxuICAgICAgICAgICAgICAgIHByb2R1Y3RfaWQ6IHByb2R1Y3RJZFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHRoaXMucHJvZHVjdFNlcnZpY2VcbiAgICAgICAgICAgICAgICAuaW52aXRlRm9yVHJpYWwocHJvZHVjdElkLCBpbnZpdGVPYmosIHRoaXMuc3Vic2NyaXB0aW9uSWQpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5yZXNldCgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdC5zdWNjZXNzKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50cmFuc2xhdGlvbi50cmFuc2xhdGUoJ0FkbWluLlN1YnNjcmlwdGlvbnMuSW52aXRhdGlvblNlbnQnKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbYCR7dGhpcy5yb3V0ZXJzLnN1YnNjcmlwdGlvbkxpc3R9YF0pO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmFkZCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYnV0dG9uQnVzeSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRQcm9kdWN0c0xpc3QoKSB7XG4gICAgICAgIHRoaXMucHJvZHVjdFNlcnZpY2UuZ2V0UHJvZHVjdExpc3Qoe30sIHRoaXMuc3Vic2NyaXB0aW9uSWQpLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmZWF0dXJlS2V5cyA9IEFycmF5LmZyb20oXG4gICAgICAgICAgICAgICAgbmV3IFNldChyZXNwb25zZS5wcm9kdWN0cy5tYXAoaXRlbSA9PiBpdGVtLmZlYXR1cmVfa2V5KSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLnNlYXJjaE9wdGlvbnMgPSBmZWF0dXJlS2V5cy5tYXAoZWxlbWVudCA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgaWQ6IGVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiBlbGVtZW50IHx8ICcnXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNvcnRPYmoob2JqKSB7XG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhvYmopXG4gICAgICAgICAgICAuc29ydCgoYSwgYikgPT4gYS5sb2NhbGVDb21wYXJlKGIpKVxuICAgICAgICAgICAgLnJlZHVjZSgocmVzdWx0LCBrZXkpID0+IHtcbiAgICAgICAgICAgICAgICByZXN1bHRba2V5XSA9IG9ialtrZXldO1xuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICB9LCB7fSk7XG4gICAgfVxuXG4gICAgc2VhcmNoUHJvZHVjdChldmVudCkge1xuICAgICAgICB0aGlzLnByb2R1Y3RTZXJ2aWNlXG4gICAgICAgICAgICAuZ2V0UHJvZHVjdExpc3QoeyBzZWFyY2g6IGV2ZW50LnF1ZXJ5IH0sIHRoaXMuc3Vic2NyaXB0aW9uSWQpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmZpbHRlcmVkUHJvZHVjdHMgPSB0aGlzLmdyb3VwUHJvZHVjdHMocmVzcG9uc2UucHJvZHVjdHMpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25Qcm9kdWN0Q2hhbmdlKGV2ZW50KSB7XG4gICAgICAgIGNvbnN0IHByb2R1Y3RJZCA9IE51bWJlcihldmVudD8udmFsdWUuaWQpO1xuICAgICAgICBjb25zdCBwcm9kdWN0T2JqID0gdGhpcy5maWx0ZXJlZFByb2R1Y3RzLmZpbmQoeCA9PiB4LmlkID09PSBwcm9kdWN0SWQpO1xuICAgICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgICBwcm9kdWN0X2lkOiBwcm9kdWN0T2JqXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uUHJvZHVjdENsZWFyKF9ldmVudCkge1xuICAgICAgICBpZiAoIXRoaXMucmVmUHJvZHVjdC5pbnB1dEVMLm5hdGl2ZUVsZW1lbnQudmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybS5nZXQoJ3Byb2R1Y3RfaWQnKS5zZXRWYWx1ZSgnJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdyb3VwUHJvZHVjdHMocHJvZHVjdHMpIHtcbiAgICAgICAgaWYgKHByb2R1Y3RzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHByb2R1Y3RzID0gcHJvZHVjdHMuZmlsdGVyKHggPT4geC5kZXBlbmRlbmN5X3Byb2R1Y3RzPy5sZW5ndGggPCAxICYmIHguYWN0aXZlKTtcbiAgICAgICAgICAgIHByb2R1Y3RzID0gZ3JvdXBCeShwcm9kdWN0cywgJ2N1cnJlbmN5Jyk7XG4gICAgICAgICAgICBwcm9kdWN0cyA9IHRoaXMuc29ydE9iaihwcm9kdWN0cyk7XG4gICAgICAgICAgICBsZXQgZ3JvdXBlZEFycmF5ID0gW107XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVzdHJpY3RlZC1zeW50YXhcbiAgICAgICAgICAgIGZvciAoY29uc3QgcCBpbiBwcm9kdWN0cykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gcHJvZHVjdHNbcF0uc29ydChcbiAgICAgICAgICAgICAgICAgICAgKGEsIGIpID0+IE51bWJlcihiLnByaWNlX3Blcl91bml0KSAtIE51bWJlcihhLnByaWNlX3Blcl91bml0KVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgZ3JvdXBlZEFycmF5LnB1c2goLi4udmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZ3JvdXBlZEFycmF5ID1cbiAgICAgICAgICAgICAgICBncm91cGVkQXJyYXk/Lm1hcCh4ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiB4LmlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGAke3gubmFtZX0gfCAke3gucmVnaW9ufSB8ICR7eC5iaWxsaW5nX2ZyZXF1ZW5jeX0gfCAke3gubWluX3VuaXRzfSB4ICR7KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgucHJpY2VfcGVyX3VuaXQgLyAxMDBcbiAgICAgICAgICAgICAgICAgICAgICAgICkudG9GaXhlZCgyKX0gfCAke3guY3VycmVuY3l9YCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVuaXRzVGV4dDogYChtaW4gJHt4Lm1pbl91bml0c30gLSBtYXggJHt4Lm1heF91bml0c30pYFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH0pIHx8IFtdO1xuXG4gICAgICAgICAgICByZXR1cm4gZ3JvdXBlZEFycmF5O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGdldEV4cGlyZXNBdENvbG9yKGl0ZW0pIHtcbiAgICAgICAgY29uc3QgZCA9IG5ldyBEYXRlKCk7XG4gICAgICAgIGNvbnN0IG1vbnRoQmVmb3JlID0gZC5zZXRNb250aChkLmdldE1vbnRoKCkgLSAxKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgJ3RleHQtZGFuZ2VyIGZ3LWJvbGQnOiBuZXcgRGF0ZShpdGVtLmV4cGlyZXNfYXQpIDwgbmV3IERhdGUoKSxcbiAgICAgICAgICAgICd0ZXh0LXdhcm5pbmcgdGV4dC1ib2xkLTcwMCc6XG4gICAgICAgICAgICAgICAgaXRlbS5iaWxsaW5nRnJlcXVlbmN5ID09PSAneWVhcicgJiZcbiAgICAgICAgICAgICAgICBuZXcgRGF0ZShpdGVtLmV4cGlyZXNfYXQpIDwgbmV3IERhdGUobW9udGhCZWZvcmUpICYmXG4gICAgICAgICAgICAgICAgbmV3IERhdGUoaXRlbS5leHBpcmVzX2F0KSA+IG5ldyBEYXRlKClcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgIHNlYXJjaFRleHQ6IHRoaXMuc2VhcmNoVGV4dCxcbiAgICAgICAgICAgIHN0YXR1czogdGhpcy5zdGF0dXMsXG4gICAgICAgICAgICBmZWF0dXJlS2V5czogdGhpcy5maWx0ZXJCeUZlYXR1cmVLZXlzXG4gICAgICAgIH07XG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdzdWJzY3JpcHRpb24tbGlzdC1zdGF0ZScsIEpTT04uc3RyaW5naWZ5KGRhdGEpKTtcbiAgICAgICAgY29uc3Qgbm90aWZpZXIgPSBuZXcgU3ViamVjdCgpO1xuICAgICAgICB0aGlzLnJvdXRlci5ldmVudHMucGlwZSh0YWtlVW50aWwobm90aWZpZXIpKS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkge1xuICAgICAgICAgICAgICAgIGlmICghZXZlbnQudXJsQWZ0ZXJSZWRpcmVjdHMuaW5jbHVkZXMoJy9zdWJzY3JpcHRpb24nKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtJCgnc3Vic2NyaXB0aW9uLWxpc3Qtc3RhdGUnKTtcbiAgICAgICAgICAgICAgICAgICAgbm90aWZpZXIubmV4dCgnJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWZsdWlkIHB3LXRhYiBvdmVyZmxvdy1oaWRkZW5cIj5cbiAgPGRpdiBjbGFzcz1cImRhc2hib2FyZCB1c2VyLWRldGFpbHNcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZGFzaGJvYXJkLWJvZHlcIj5cblxuICAgICAgPGRpdiBjbGFzcz1cIm1lLWF1dG8gY29sLXhzLTYgbXQtNFwiPlxuICAgICAgICA8YSBhcmlhLWxhYmVsPVwiTmF2aWdhdGUgdG8gVGFyZ2V0XCJcbiAgICAgICAgICAoY2xpY2spPVwiYmFjaygpXCJcbiAgICAgICAgICBjbGFzcz1cInByZXZpb3VzXCI+PGkgY2xhc3M9XCJmYSBmYS1hcnJvdy1hbHQtY2lyY2xlLWxlZnRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+PC9hPlxuICAgICAgICAgIDxoMyBjbGFzcz1cIlwiPkludml0ZSBOZXcgVXNlcjwvaDM+XG4gICAgICAgICAgPHA+SGVyZSB5b3UgY2FuIHNlbmQgYW4gaW52aXRhdGlvbiB0byBhIG5ldyB1c2VyIHRvIHRyeSBhbnkgb2Ygb3VyIHByb2R1Y3RzPC9wPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJwLTIgbXQtM1wiPlxuICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIlxuICAobmdTdWJtaXQpPVwib25TYXZlKClcIj5cbiAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgIDxkaXYgY2xhc3M9XCJtYi0zIGNvbC1zbS00XCI+XG4gICAgICA8cHctaW5wdXQtY29udGFpbmVyIFtsYWJlbF09XCInTGFiZWwuRmlyc3ROYW1lJyB8IHRyYW5zbG9jb1wiXG4gICAgICAgIFtzaG93VG9vbHRpcF09XCJ0cnVlXCJcbiAgICAgICAgW3Rvb2x0aXBUZXh0XT1cIidBZG1pbi5TdWJzY3JpcHRpb25zLlRvb2x0aXAuRmlyc3ROYW1lJyB8IHRyYW5zbG9jb1wiXG4gICAgICAgIGNsYXNzPVwiY29sLW1kLTYgcC0wXCJcbiAgICAgICAgbmFtZT1cImZpcnN0X25hbWVcIlxuICAgICAgICBbZXJyb3JNc2ddPVwiJ0FkbWluLlN1YnNjcmlwdGlvbnMuVmFsaWRhdGlvbi5GaXJzdE5hbWUnIHwgdHJhbnNsb2NvXCI+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImZpcnN0X25hbWVcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICdpcy1pbnZhbGlkJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtLmdldCgnZmlyc3RfbmFtZScpLnRvdWNoZWQgJiYgZm9ybS5nZXQoJ2ZpcnN0X25hbWUnKS5pbnZhbGlkXG4gICAgICAgICAgICAgICAgICAgIH1cIiAvPlxuICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm1iLTMgY29sLXNtLTRcIj5cbiAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW2xhYmVsXT1cIidMYWJlbC5MYXN0TmFtZScgfCB0cmFuc2xvY29cIlxuICAgICAgICBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiXG4gICAgICAgIFt0b29sdGlwVGV4dF09XCInQWRtaW4uU3Vic2NyaXB0aW9ucy5Ub29sdGlwLkxhc3ROYW1lJyB8IHRyYW5zbG9jb1wiXG4gICAgICAgIGNsYXNzPVwiY29sLW1kLTYgcC0wXCJcbiAgICAgICAgbmFtZT1cImxhc3RfbmFtZVwiXG4gICAgICAgIFtlcnJvck1zZ109XCInQWRtaW4uU3Vic2NyaXB0aW9ucy5WYWxpZGF0aW9uLkxhc3ROYW1lJyB8IHRyYW5zbG9jb1wiPlxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIlxuICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJsYXN0X25hbWVcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICdpcy1pbnZhbGlkJzogZm9ybS5nZXQoJ2xhc3RfbmFtZScpLnRvdWNoZWQgJiYgZm9ybS5nZXQoJ2xhc3RfbmFtZScpLmludmFsaWRcbiAgICAgICAgICAgICAgICAgICAgfVwiIC8+XG4gICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibWItMyBjb2wtc20tNFwiPlxuICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbbGFiZWxdPVwiJ0xhYmVsLkVtYWlsJyB8IHRyYW5zbG9jb1wiXG4gICAgICAgIFtzaG93VG9vbHRpcF09XCJ0cnVlXCJcbiAgICAgICAgW3Rvb2x0aXBUZXh0XT1cIidBZG1pbi5TdWJzY3JpcHRpb25zLlRvb2x0aXAuRW1haWwnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgY2xhc3M9XCJjb2wtbWQtNiBwLTBcIlxuICAgICAgICBuYW1lPVwiZW1haWxcIlxuICAgICAgICBbZXJyb3JNc2ddPVwiJ0FkbWluLlN1YnNjcmlwdGlvbnMuVmFsaWRhdGlvbi5FbWFpbCcgfCB0cmFuc2xvY29cIj5cbiAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZW1haWxcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICdpcy1pbnZhbGlkJzogZm9ybS5nZXQoJ2VtYWlsJykudG91Y2hlZCAmJiBmb3JtLmdldCgnZW1haWwnKS5pbnZhbGlkXG4gICAgICAgICAgICAgICAgICAgIH1cIiAvPlxuICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm1iLTMgY29sLXNtLTRcIj5cbiAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW2xhYmVsXT1cIidMYWJlbC5Qcm9kdWN0JyB8IHRyYW5zbG9jb1wiXG4gICAgICAgIFtzaG93VG9vbHRpcF09XCJ0cnVlXCJcbiAgICAgICAgW3Rvb2x0aXBUZXh0XT1cIidBZG1pbi5TdWJzY3JpcHRpb25zLlRvb2x0aXAuU3Vic2NyaXB0aW9uUHJvZHVjdCcgfCB0cmFuc2xvY29cIlxuICAgICAgICBuYW1lPVwicHJvZHVjdF9pZFwiXG4gICAgICAgIFtlcnJvck1zZ109XCInQWRtaW4uU3Vic2NyaXB0aW9ucy5WYWxpZGF0aW9uLlByb2R1Y3QnIHwgdHJhbnNsb2NvXCI+XG4gICAgICAgIDxwLWF1dG9Db21wbGV0ZSAjcmVmUHJvZHVjdFxuICAgICAgICBbc3VnZ2VzdGlvbnNdPVwiZmlsdGVyZWRQcm9kdWN0c1wiXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicHJvZHVjdF9pZFwiXG4gICAgICAgICAgZGF0YUtleT1cImlkXCJcbiAgICAgICAgICBmaWVsZD1cImxhYmVsXCJcbiAgICAgICAgICBbZHJvcGRvd25dPVwidHJ1ZVwiXG4gICAgICAgICAgW2RlbGF5XT1cIjEwMDBcIlxuICAgICAgICAgIFt0eXBlXT1cIidzZWFyY2gnXCJcbiAgICAgICAgICAoY29tcGxldGVNZXRob2QpPVwic2VhcmNoUHJvZHVjdCgkZXZlbnQpXCJcbiAgICAgICAgICAob25TZWxlY3QpPVwib25Qcm9kdWN0Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAgIChvbkNsZWFyKT1cIm9uUHJvZHVjdENsZWFyKCRldmVudClcIlxuICAgICAgICAgIHN0eWxlQ2xhc3M9XCJ3LTEwMFwiXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWFyY2ggUHJvZHVjdFwiXG4gICAgICAgICAgW2lucHV0U3R5bGVdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtLmdldCgncHJvZHVjdF9pZCcpLnRvdWNoZWQgJiYgZm9ybS5nZXQoJ3Byb2R1Y3RfaWQnKS5pbnZhbGlkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7IGJvcmRlcjogJzFweCBzb2xpZCAjZmY1ODZiJyB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7IGJvcmRlcjogJzFweCBzb2xpZCBncmF5JyB9XG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgW211bHRpcGxlXT1cImZhbHNlXCI+XG4gICAgICAgIDwvcC1hdXRvQ29tcGxldGU+XG4gICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibWItMyBjb2wtc20tNFwiPlxuICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBsYWJlbD1cInt7J0xhYmVsLlNlYXRzJyB8IHRyYW5zbG9jb319e3t1bml0c1RleHR9fVwiXG4gICAgICAgIFtzaG93VG9vbHRpcF09XCJ0cnVlXCJcbiAgICAgICAgW3Rvb2x0aXBUZXh0XT1cIidBZG1pbi5TdWJzY3JpcHRpb25zLlRvb2x0aXAuVW5pdHMnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgY2xhc3M9XCJjb2wtbWQtNiBwLTBcIlxuICAgICAgICBuYW1lPVwidW5pdHNcIlxuICAgICAgICBbZXJyb3JNc2ddPVwiJ0FkbWluLlN1YnNjcmlwdGlvbnMuVmFsaWRhdGlvbi5Vbml0cycgfCB0cmFuc2xvY29cIj5cbiAgICAgICAgPGlucHV0IHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ1bml0c1wiXG4gICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgJ2lzLWludmFsaWQnOiBmb3JtLmdldCgndW5pdHMnKS50b3VjaGVkICYmIGZvcm0uZ2V0KCd1bml0cycpLmludmFsaWRcbiAgICAgICAgICAgICAgICAgICAgfVwiIC8+XG4gICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibWItMyBjb2wtc20tNFwiPlxuICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbbGFiZWxdPVwiJ0FkbWluLlN1YnNjcmlwdGlvbnMuTWluVW5pdHMnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgW3Nob3dUb29sdGlwXT1cInRydWVcIlxuICAgICAgICBuYW1lPVwibWluX3VuaXRzXCJcbiAgICAgICAgW2Vycm9yTXNnXT1cIidBZG1pbi5TdWJzY3JpcHRpb25zLlZhbGlkYXRpb24uTWluVW5pdHMnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgW3Rvb2x0aXBUZXh0XT1cIidBZG1pbi5TdWJzY3JpcHRpb25zLlRvb2x0aXAuTWluVW5pdHMnIHwgdHJhbnNsb2NvXCI+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICBtaW49XCIwXCJcbiAgICAgICAgICBbbWF4XT1cImZvcm0uZ2V0KCd1bml0cycpLnZhbHVlXCJcbiAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibWluX3VuaXRzXCIgLz5cbiAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJtYi0zIGNvbC1zbS00XCJcbiAgICAgICpuZ0lmPVwib3JnYW5pemF0aW9uSW5kdXN0cmllcyQgfCBhc3luYyBhcyBpbmR1c3RyaWVzXCI+XG4gICAgICA8cHctaW5wdXQtY29udGFpbmVyIFtsYWJlbF09XCInT3JnYW5pemF0aW9uLk9yZ2FuaXphdGlvbkluZHVzdHJ5JyB8IHRyYW5zbG9jb1wiXG4gICAgICAgIG5hbWU9XCJvcmdhbml6YXRpb25faW5kdXN0cnlfaWRcIlxuICAgICAgICBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiXG4gICAgICAgIFt0b29sdGlwVGV4dF09XCInQWRtaW4uU3Vic2NyaXB0aW9ucy5Ub29sdGlwLk9yZ2FuaXphdGlvbkluZHVzdHJ5J3wgdHJhbnNsb2NvXCI+XG4gICAgICAgIDxwLWRyb3Bkb3duXG4gICAgICAgICAgW29wdGlvbnNdPVwiaW5kdXN0cmllc1snb3JnYW5pemF0aW9uX2luZHVzdHJpZXMnXVwiXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwib3JnYW5pemF0aW9uX2luZHVzdHJ5X2lkXCJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1NlbGVjdCBPcmdhbml6YXRpb24gSW5kdXN0cnknXCJcbiAgICAgICAgICBvcHRpb25WYWx1ZT1cImlkXCJcbiAgICAgICAgICBvcHRpb25MYWJlbD1cIm5hbWVcIj5cbiAgICAgICAgPC9wLWRyb3Bkb3duPlxuICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm1iLTMgY29sLXNtLTRcIj5cbiAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW2xhYmVsXT1cIidPcmdhbml6YXRpb24uT3JnYW5pemF0aW9uTmFtZScgfCB0cmFuc2xvY29cIlxuICAgICAgICBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiXG4gICAgICAgIFt0b29sdGlwVGV4dF09XCInQWRtaW4uU3Vic2NyaXB0aW9ucy5Ub29sdGlwLk9yZ2FuaXphdGlvbk5hbWUnfCB0cmFuc2xvY29cIlxuICAgICAgICBjbGFzcz1cImNvbC1tZC02IHAtMFwiXG4gICAgICAgIG5hbWU9XCJuYW1lXCI+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICdpcy1pbnZhbGlkJzogZm9ybS5nZXQoJ25hbWUnKS50b3VjaGVkICYmIGZvcm0uZ2V0KCduYW1lJykuaW52YWxpZFxuICAgICAgICAgICAgICAgICAgICB9XCIgLz5cbiAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJtYi0zIGNvbC1zbS00XCJcbiAgICAgICpuZ0lmPVwib3JnYW5pemF0aW9uVHlwZXMkIHwgYXN5bmMgYXMgdHlwZXNcIj5cbiAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW2xhYmVsXT1cIidPcmdhbml6YXRpb24uT3JnYW5pemF0aW9uVHlwZScgfCB0cmFuc2xvY29cIlxuICAgICAgICBuYW1lPVwib3JnYW5pemF0aW9uX3R5cGVfaWRcIlxuICAgICAgICBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiXG4gICAgICAgIFt0b29sdGlwVGV4dF09XCInQWRtaW4uU3Vic2NyaXB0aW9ucy5Ub29sdGlwLk9yZ2FuaXphdGlvblR5cGUnfCB0cmFuc2xvY29cIj5cbiAgICAgICAgPHAtZHJvcGRvd25cbiAgICAgICAgICBbb3B0aW9uc109XCJ0eXBlc1snb3JnYW5pemF0aW9uX3R5cGVzJ11cIlxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm9yZ2FuaXphdGlvbl90eXBlX2lkXCJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1NlbGVjdCBPcmdhbml6YXRpb24gVHlwZSdcIlxuICAgICAgICAgIG9wdGlvblZhbHVlPVwiaWRcIlxuICAgICAgICAgIG9wdGlvbkxhYmVsPVwibmFtZVwiPlxuICAgICAgICA8L3AtZHJvcGRvd24+XG4gICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibWItMyBjb2wtc20tNFwiXG4gICAgICAqbmdJZj1cIm9yZ2FuaXphdGlvblNpemVzJCB8IGFzeW5jIGFzIHNpemVzXCI+XG4gICAgICA8cHctaW5wdXQtY29udGFpbmVyIFtsYWJlbF09XCInT3JnYW5pemF0aW9uLk9yZ2FuaXphdGlvblNpemUnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgbmFtZT1cIm9yZ2FuaXphdGlvbl9zaXplX2lkXCJcbiAgICAgICAgW3Nob3dUb29sdGlwXT1cInRydWVcIlxuICAgICAgICBbdG9vbHRpcFRleHRdPVwiJ0FkbWluLlN1YnNjcmlwdGlvbnMuVG9vbHRpcC5Pcmdhbml6YXRpb25TaXplJ3wgdHJhbnNsb2NvXCI+XG4gICAgICAgIDxwLWRyb3Bkb3duXG4gICAgICAgICAgICAgIFtvcHRpb25zXT1cInNpemVzWydvcmdhbml6YXRpb25fc2l6ZXMnXVwiXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm9yZ2FuaXphdGlvbl9zaXplX2lkXCJcbiAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidTZWxlY3QgT3JnYW5pemF0aW9uIFNpemUnXCJcbiAgICAgICAgICAgICAgb3B0aW9uVmFsdWU9XCJpZFwiXG4gICAgICAgICAgICAgIG9wdGlvbkxhYmVsPVwibmFtZVwiPlxuICAgICAgICAgICAgPC9wLWRyb3Bkb3duPlxuICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbC0xMiB0ZXh0LWVuZFwiPlxuICAgICAgPGlucHV0IHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1wcmltYXJ5IG1lLTNcIlxuICAgICAgICB2YWx1ZT1cIkNhbmNlbFwiXG4gICAgICAgIChjbGljayk9XCJmb3JtLnJlc2V0KCk7IHRvdGFsUmVjb3Jkc1VuRmlsdGVyZWQgPSAwOyBiYWNrKClcIiAvPlxuICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgW2J1dHRvbkJ1c3ldPVwiYnV0dG9uQnVzeVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJidXR0b25CdXN5XCJcbiAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIj5JbnZpdGU8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Zvcm0+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj4iXX0=