@valtimo/plugin 12.4.2 → 12.5.1

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 (28) hide show
  1. package/esm2022/lib/plugins/documenten-api/components/documenten-api-configuration/documenten-api-configuration.component.mjs +3 -3
  2. package/esm2022/lib/plugins/documenten-api/components/download-document/download-document-configuration.component.mjs +3 -3
  3. package/esm2022/lib/plugins/documenten-api/components/store-temp-document/store-temp-document-configuration.component.mjs +3 -3
  4. package/esm2022/lib/plugins/documenten-api/components/store-uploaded-document/store-uploaded-document-configuration.component.mjs +3 -3
  5. package/esm2022/lib/plugins/documenten-api/components/store-uploaded-document-in-parts/store-uploaded-document-in-parts-configuration.component.mjs +60 -0
  6. package/esm2022/lib/plugins/documenten-api/documenten-api-plugin.module.mjs +6 -1
  7. package/esm2022/lib/plugins/documenten-api/documenten-api-plugin.specification.mjs +9 -1
  8. package/esm2022/lib/plugins/verzoek/components/verzoek-configuration/verzoek-configuration.component.mjs +25 -24
  9. package/esm2022/lib/plugins/verzoek/verzoek-plugin.module.mjs +7 -4
  10. package/esm2022/public-api.mjs +2 -1
  11. package/fesm2022/valtimo-plugin.mjs +110 -41
  12. package/fesm2022/valtimo-plugin.mjs.map +1 -1
  13. package/lib/plugins/documenten-api/components/documenten-api-configuration/documenten-api-configuration.component.d.ts.map +1 -1
  14. package/lib/plugins/documenten-api/components/download-document/download-document-configuration.component.d.ts.map +1 -1
  15. package/lib/plugins/documenten-api/components/store-temp-document/store-temp-document-configuration.component.d.ts.map +1 -1
  16. package/lib/plugins/documenten-api/components/store-uploaded-document/store-uploaded-document-configuration.component.d.ts.map +1 -1
  17. package/lib/plugins/documenten-api/components/store-uploaded-document-in-parts/store-uploaded-document-in-parts-configuration.component.d.ts +20 -0
  18. package/lib/plugins/documenten-api/components/store-uploaded-document-in-parts/store-uploaded-document-in-parts-configuration.component.d.ts.map +1 -0
  19. package/lib/plugins/documenten-api/documenten-api-plugin.module.d.ts +6 -5
  20. package/lib/plugins/documenten-api/documenten-api-plugin.module.d.ts.map +1 -1
  21. package/lib/plugins/documenten-api/documenten-api-plugin.specification.d.ts.map +1 -1
  22. package/lib/plugins/verzoek/components/verzoek-configuration/verzoek-configuration.component.d.ts +6 -8
  23. package/lib/plugins/verzoek/components/verzoek-configuration/verzoek-configuration.component.d.ts.map +1 -1
  24. package/lib/plugins/verzoek/verzoek-plugin.module.d.ts +1 -1
  25. package/lib/plugins/verzoek/verzoek-plugin.module.d.ts.map +1 -1
  26. package/package.json +1 -1
  27. package/public-api.d.ts +1 -0
  28. package/public-api.d.ts.map +1 -1
@@ -18,6 +18,7 @@ import { DOCUMENTEN_API_PLUGIN_LOGO_BASE64 } from './assets';
18
18
  import { DocumentenApiConfigurationComponent } from './components/documenten-api-configuration/documenten-api-configuration.component';
19
19
  import { StoreUploadedDocumentConfigurationComponent } from './components/store-uploaded-document/store-uploaded-document-configuration.component';
20
20
  import { DownloadDocumentConfigurationComponent } from './components/download-document/download-document-configuration.component';
21
+ import { StoreUploadedDocumentInPartsConfigurationComponent } from './components/store-uploaded-document-in-parts/store-uploaded-document-in-parts-configuration.component';
21
22
  const documentenApiPluginSpecification = {
22
23
  pluginId: 'documentenapi',
23
24
  pluginConfigurationComponent: DocumentenApiConfigurationComponent,
@@ -25,6 +26,7 @@ const documentenApiPluginSpecification = {
25
26
  functionConfigurationComponents: {
26
27
  'store-temp-document': StoreTempDocumentConfigurationComponent,
27
28
  'store-uploaded-document': StoreUploadedDocumentConfigurationComponent,
29
+ 'store-uploaded-document-in-parts': StoreUploadedDocumentInPartsConfigurationComponent,
28
30
  'download-document': DownloadDocumentConfigurationComponent,
29
31
  },
30
32
  pluginTranslations: {
@@ -33,8 +35,10 @@ const documentenApiPluginSpecification = {
33
35
  description: 'API voor opslag en ontsluiting van documenten en daarbij behorende metadata.',
34
36
  'store-temp-document': 'Document opslaan',
35
37
  'store-uploaded-document': 'Geupload document opslaan',
38
+ 'store-uploaded-document-in-parts': 'Geupload document opslaan in bestandsdelen',
36
39
  'download-document': 'Download document',
37
40
  storeUploadedDocumentMessage: 'Het opslaan van een geupload document heeft geen configuratie nodig.',
41
+ storeUploadedDocumentInPartsMessage: 'Het opslaan van een geupload document in bestandsdelen heeft geen configuratie nodig',
38
42
  configurationTitle: 'Configuratienaam',
39
43
  configurationTitleTooltip: 'Hier kunt je een eigen naam verzinnen. Onder deze naam zal de plugin te herkennen zijn in de rest van de applicatie',
40
44
  url: 'Documenten API URL',
@@ -82,8 +86,10 @@ const documentenApiPluginSpecification = {
82
86
  description: 'API for storing and accessing documents and associated metadata.',
83
87
  'store-temp-document': 'Save document',
84
88
  'store-uploaded-document': 'Save uploaded document',
89
+ 'store-uploaded-document-in-parts': 'Save uploaded document in parts',
85
90
  'download-document': 'Download document',
86
91
  storeUploadedDocumentMessage: 'Saving an uploaded document does not require any configuration.',
92
+ storeUploadedDocumentInPartsMessage: 'Saving an uploaded document in parts does not require any configuration.',
87
93
  configurationTitle: 'Configuration name',
88
94
  configurationTitleTooltip: 'Here you can enter a name for the plugin. This name will be used to recognize the plugin throughout the rest of the application',
89
95
  url: 'Documenten API URL',
@@ -131,8 +137,10 @@ const documentenApiPluginSpecification = {
131
137
  description: 'API zum Speichern und Zugreifen auf Dokumente und zugehörige Metadaten.',
132
138
  'store-temp-document': 'Dokument speichern',
133
139
  'store-uploaded-document': 'Hochgeladenes Dokument speichern',
140
+ 'store-uploaded-document-in-parts': 'Hochgeladenes Dokument in Teilen speichern',
134
141
  'download-document': 'Dokument herunterladen',
135
142
  storeUploadedDocumentMessage: 'Das Speichern eines hochgeladenen Dokuments erfordert keine Konfiguration.',
143
+ storeUploadedDocumentInPartsMessage: 'Das Speichern eines hochgeladenen Dokuments in Teilen erfordert keine Konfiguration.',
136
144
  configurationTitle: 'Konfigurationsname',
137
145
  configurationTitleTooltip: 'Hier können Sie einen Namen für das Plugin eingeben. Dieser Name wird verwendet, um das Plugin im Rest der Anwendung zu erkennen',
138
146
  url: 'Documenten API URL',
@@ -178,4 +186,4 @@ const documentenApiPluginSpecification = {
178
186
  },
179
187
  };
180
188
  export { documentenApiPluginSpecification };
181
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnRlbi1hcGktcGx1Z2luLnNwZWNpZmljYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL3BsdWdpbi9zcmMvbGliL3BsdWdpbnMvZG9jdW1lbnRlbi1hcGkvZG9jdW1lbnRlbi1hcGktcGx1Z2luLnNwZWNpZmljYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFHSCxPQUFPLEVBQUMsdUNBQXVDLEVBQUMsTUFBTSw4RUFBOEUsQ0FBQztBQUNySSxPQUFPLEVBQUMsaUNBQWlDLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDM0QsT0FBTyxFQUFDLG1DQUFtQyxFQUFDLE1BQU0sa0ZBQWtGLENBQUM7QUFDckksT0FBTyxFQUFDLDJDQUEyQyxFQUFDLE1BQU0sc0ZBQXNGLENBQUM7QUFDakosT0FBTyxFQUFDLHNDQUFzQyxFQUFDLE1BQU0sMEVBQTBFLENBQUM7QUFFaEksTUFBTSxnQ0FBZ0MsR0FBd0I7SUFDNUQsUUFBUSxFQUFFLGVBQWU7SUFDekIsNEJBQTRCLEVBQUUsbUNBQW1DO0lBQ2pFLGdCQUFnQixFQUFFLGlDQUFpQztJQUNuRCwrQkFBK0IsRUFBRTtRQUMvQixxQkFBcUIsRUFBRSx1Q0FBdUM7UUFDOUQseUJBQXlCLEVBQUUsMkNBQTJDO1FBQ3RFLG1CQUFtQixFQUFFLHNDQUFzQztLQUM1RDtJQUNELGtCQUFrQixFQUFFO1FBQ2xCLEVBQUUsRUFBRTtZQUNGLEtBQUssRUFBRSxnQkFBZ0I7WUFDdkIsV0FBVyxFQUFFLDhFQUE4RTtZQUMzRixxQkFBcUIsRUFBRSxrQkFBa0I7WUFDekMseUJBQXlCLEVBQUUsMkJBQTJCO1lBQ3RELG1CQUFtQixFQUFFLG1CQUFtQjtZQUN4Qyw0QkFBNEIsRUFDMUIsc0VBQXNFO1lBQ3hFLGtCQUFrQixFQUFFLGtCQUFrQjtZQUN0Qyx5QkFBeUIsRUFDdkIscUhBQXFIO1lB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O1lBQ25CLFdBQVcsRUFBRSxhQUFhO1lBQzFCLHFCQUFxQixFQUFFLG1DQUFtQztZQUMxRCw0QkFBNEIsRUFDMUIscUdBQXFHO1lBQ3ZHLGlCQUFpQixFQUFFLDBEQUEwRDtZQUM3RSx1QkFBdUIsRUFDckIsd0lBQXdJO1lBQzFJLElBQUksRUFBRSxTQUFTO1lBQ2YsTUFBTSxFQUFFLFFBQVE7WUFDaEIsb0JBQW9CLEVBQUUsK0JBQStCO1lBQ3JELDJCQUEyQixFQUN6QixnTEFBZ0w7WUFDbEwsR0FBRyxFQUFFLGdCQUFnQjtZQUNyQixZQUFZLEVBQUUsZ0JBQWdCO1lBQzlCLGdCQUFnQixFQUFFLGNBQWM7WUFDaEMsVUFBVSxFQUFFLFdBQVc7WUFDdkIsWUFBWSxFQUFFLFlBQVk7WUFDMUIsaUNBQWlDLEVBQUUseUNBQXlDO1lBQzVFLHdDQUF3QyxFQUN0QyxrTEFBa0w7WUFDcEwsVUFBVSxFQUFFLHdCQUF3QjtZQUNwQyxpQkFBaUIsRUFBRSwrQ0FBK0M7WUFDbEUsdUJBQXVCLEVBQ3JCLHlGQUF5RjtZQUMzRixtQkFBbUIsRUFDakIsMEZBQTBGO1NBQzdGO0tBQ0Y7Q0FDRixDQUFDO0FBRUYsT0FBTyxFQUFDLGdDQUFnQyxFQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge1BsdWdpblNwZWNpZmljYXRpb259IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQge1N0b3JlVGVtcERvY3VtZW50Q29uZmlndXJhdGlvbkNvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL3N0b3JlLXRlbXAtZG9jdW1lbnQvc3RvcmUtdGVtcC1kb2N1bWVudC1jb25maWd1cmF0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQge0RPQ1VNRU5URU5fQVBJX1BMVUdJTl9MT0dPX0JBU0U2NH0gZnJvbSAnLi9hc3NldHMnO1xuaW1wb3J0IHtEb2N1bWVudGVuQXBpQ29uZmlndXJhdGlvbkNvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL2RvY3VtZW50ZW4tYXBpLWNvbmZpZ3VyYXRpb24vZG9jdW1lbnRlbi1hcGktY29uZmlndXJhdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHtTdG9yZVVwbG9hZGVkRG9jdW1lbnRDb25maWd1cmF0aW9uQ29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvc3RvcmUtdXBsb2FkZWQtZG9jdW1lbnQvc3RvcmUtdXBsb2FkZWQtZG9jdW1lbnQtY29uZmlndXJhdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHtEb3dubG9hZERvY3VtZW50Q29uZmlndXJhdGlvbkNvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL2Rvd25sb2FkLWRvY3VtZW50L2Rvd25sb2FkLWRvY3VtZW50LWNvbmZpZ3VyYXRpb24uY29tcG9uZW50JztcblxuY29uc3QgZG9jdW1lbnRlbkFwaVBsdWdpblNwZWNpZmljYXRpb246IFBsdWdpblNwZWNpZmljYXRpb24gPSB7XG4gIHBsdWdpbklkOiAnZG9jdW1lbnRlbmFwaScsXG4gIHBsdWdpbkNvbmZpZ3VyYXRpb25Db21wb25lbnQ6IERvY3VtZW50ZW5BcGlDb25maWd1cmF0aW9uQ29tcG9uZW50LFxuICBwbHVnaW5Mb2dvQmFzZTY0OiBET0NVTUVOVEVOX0FQSV9QTFVHSU5fTE9HT19CQVNFNjQsXG4gIGZ1bmN0aW9uQ29uZmlndXJhdGlvbkNvbXBvbmVudHM6IHtcbiAgICAnc3RvcmUtdGVtcC1kb2N1bWVudCc6IFN0b3JlVGVtcERvY3VtZW50Q29uZmlndXJhdGlvbkNvbXBvbmVudCxcbiAgICAnc3RvcmUtdXBsb2FkZWQtZG9jdW1lbnQnOiBTdG9yZVVwbG9hZGVkRG9jdW1lbnRDb25maWd1cmF0aW9uQ29tcG9uZW50LFxuICAgICdkb3dubG9hZC1kb2N1bWVudCc6IERvd25sb2FkRG9jdW1lbnRDb25maWd1cmF0aW9uQ29tcG9uZW50LFxuICB9LFxuICBwbHVnaW5UcmFuc2xhdGlvbnM6IHtcbiAgICBubDoge1xuICAgICAgdGl0bGU6ICdEb2N1bWVudGVuIEFQSScsXG4gICAgICBkZXNjcmlwdGlvbjogJ0FQSSB2b29yIG9wc2xhZyBlbiBvbnRzbHVpdGluZyB2YW4gZG9jdW1lbnRlbiBlbiBkYWFyYmlqIGJlaG9yZW5kZSBtZXRhZGF0YS4nLFxuICAgICAgJ3N0b3JlLXRlbXAtZG9jdW1lbnQnOiAnRG9jdW1lbnQgb3BzbGFhbicsXG4gICAgICAnc3RvcmUtdXBsb2FkZWQtZG9jdW1lbnQnOiAnR2V1cGxvYWQgZG9jdW1lbnQgb3BzbGFhbicsXG4gICAgICAnZG93bmxvYWQtZG9jdW1lbnQnOiAnRG93bmxvYWQgZG9jdW1lbnQnLFxuICAgICAgc3RvcmVVcGxvYWRlZERvY3VtZW50TWVzc2FnZTpcbiAgICAgICAgJ0hldCBvcHNsYWFuIHZhbiBlZW4gZ2V1cGxvYWQgZG9jdW1lbnQgaGVlZnQgZ2VlbiBjb25maWd1cmF0aWUgbm9kaWcuJyxcbiAgICAgIGNvbmZpZ3VyYXRpb25UaXRsZTogJ0NvbmZpZ3VyYXRpZW5hYW0nLFxuICAgICAgY29uZmlndXJhdGlvblRpdGxlVG9vbHRpcDpcbiAgICAgICAgJ0hpZXIga3VudCBqZSBlZW4gZWlnZW4gbmFhbSB2ZXJ6aW5uZW4uIE9uZGVyIGRlemUgbmFhbSB6YWwgZGUgcGx1Z2luIHRlIGhlcmtlbm5lbiB6aWpuIGluIGRlIHJlc3QgdmFuIGRlIGFwcGxpY2F0aWUnLFxuICAgICAgdXJsOiAnRG9jdW1lbnRlbiBBUEkgVVJMJyxcbiAgICAgIHVybFRvb2x0aXA6XG4gICAgICAgICdJbiBkaXQgdmVsZCBtb2V0IGRlIHZlcndpanppbmcga29tZW4gbmFhciBkZSBSRVNUIEFQSSB2YW4gRG9jdW1lbnRlbi4gRGV6ZSB1cmwgbW9ldCBkdXMgZWluZGlnZW4gb3AgL2RvY3VtZW50ZW4vYXBpL3YxLycsXG4gICAgICBicm9ub3JnYW5pc2F0aWU6ICdCcm9ub3JnYW5pc2F0aWUgUlNJTicsXG4gICAgICBicm9ub3JnYW5pc2F0aWVUb29sdGlwOlxuICAgICAgICAnVnVsIGhpZXIgaGV0IFJTSU4gdmFuIGRlIG9yZ2FuaXNhdGllIGluIGRpZSB2ZXJhbnR3b29yZGVsaWprIGlzIHZvb3IgZGUgZG9jdW1lbnRlbicsXG4gICAgICBmaWxlTmFtZTogJ0Jlc3RhbmRzbmFhbScsXG4gICAgICBmaWxlTmFtZVRvb2x0aXA6XG4gICAgICAgICdEZSBuYWFtIHZhbiBoZXQgZnlzaWVrZSBiZXN0YW5kIHdhYXJpbiBkZSBpbmhvdWQgdmFuIGhldCBkb2N1bWVudCBpcyB2YXN0Z2VsZWdkLCBpbmNsdXNpZWYgZXh0ZW5zaWUnLFxuICAgICAgY29uZmlkZW50aWFsaXR5TGV2ZWw6ICdWZXJ0cm91d2VsaWpraGVpZHNhYW5kdWlkaW5nJyxcbiAgICAgIGNvbmZpZGVudGlhbGl0eUxldmVsVG9vbHRpcDpcbiAgICAgICAgJ0FhbmR1aWRpbmcgdmFuIGRlIG1hdGUgd2FhcmluIGhldCBkb2N1bWVudCB2b29yIGRlIG9wZW5iYWFyaGVpZCBiZXN0ZW1kIGlzJyxcbiAgICAgIGlucHV0VGl0bGU6ICdUaXRlbCcsXG4gICAgICBpbnB1dFRpdGxlVG9vbHRpcDogJ0RlIG5hYW0gd2Fhcm9uZGVyIGhldCBkb2N1bWVudCBmb3JtZWVsIGJla2VuZCBpcycsXG4gICAgICBpbnB1dERlc2NyaXB0aW9uOiAnQmVzY2hyaWp2aW5nJyxcbiAgICAgIGlucHV0RGVzY3JpcHRpb25Ub29sdGlwOiAnRWVuIGdlbmVyaWVrZSBiZXNjaHJpanZpbmcgdmFuIGRlIGluaG91ZCB2YW4gaGV0IGRvY3VtZW50JyxcbiAgICAgIG9wZW5iYWFyOiAnT3BlbmJhYXInLFxuICAgICAgYmVwZXJrdF9vcGVuYmFhcjogJ0JlcGVya3Qgb3BlbmJhYXInLFxuICAgICAgaW50ZXJuOiAnSW50ZXJuJyxcbiAgICAgIHphYWt2ZXJ0cm91d2VsaWprOiAnWmFha3ZlcnRyb3V3ZWxpamsnLFxuICAgICAgdmVydHJvdXdlbGlqazogJ1ZlcnRyb3V3ZWxpamsnLFxuICAgICAgY29uZmlkZW50aWVlbDogJ0NvbmZpZGVudGllZWwnLFxuICAgICAgZ2VoZWltOiAnR2VoZWltJyxcbiAgICAgIHplZXJfZ2VoZWltOiAnWmVlciBnZWhlaW0nLFxuICAgICAgbG9jYWxEb2N1bWVudExvY2F0aW9uOiAnTmFhbSBwcm9jZXN2YXJpYWJlbGUgbWV0IGRvY3VtZW50JyxcbiAgICAgIGxvY2FsRG9jdW1lbnRMb2NhdGlvblRvb2x0aXA6XG4gICAgICAgICdIaWVyIG1vZXQgZGUgcHJvY2VzdmFyaWFiZWxlIGluZ2V2dWxkIHdvcmRlbiBkaWUgd2lqc3QgbmFhciBkZSBsb2NhdGllIHdhYXIgaGV0IGRvY3VtZW50IGxva2FhbCBzdGFhdCBvcGdlc2xhZ2VuJyxcbiAgICAgIHN0b3JlZERvY3VtZW50VXJsOiAnTmFhbSBwcm9jZXN2YXJpYWJlbGUgdm9vciBvcHNsYWcgZG9jdW1lbnQtVVJMJyxcbiAgICAgIHN0b3JlRG9jdW1lbnRVcmxUb29sdGlwOlxuICAgICAgICAnTmFkYXQgaGV0IGRvY3VtZW50IGdldXBsb2FkIGlzIG5hYXIgZGUgRG9jdW1lbnRlbiBBUEkgemFsIGRlIGFwcGxpY2F0aWUgaW4gZGV6ZSBwcm9jZXN2YXJpYWJlbGUgZGUgVVJMIG5hYXIgaGV0IGRvY3VtZW50IG9wc2xhYW4uJyxcbiAgICAgIHRhYWw6ICdUYWFsJyxcbiAgICAgIHN0YXR1czogJ1N0YXR1cycsXG4gICAgICBpbmZvcm1hdGllb2JqZWN0dHlwZTogJ1VSTCBuYWFyIGhldCBpbmZvcm1hdGllb2JqZWN0dHlwZScsXG4gICAgICBpbmZvcm1hdGllb2JqZWN0dHlwZVRvb2x0aXA6XG4gICAgICAgICdWdWwgaW4gZGl0IHZlbGQgZGUgdm9sbGVkaWdlIFVSTCBuYWFyIGVlbiBpbmZvcm1hdGllb2JqZWN0dHlwZSB2YW4gZWVuIFphYWsgY2F0YWxvZ3VzLiBEZXplIFVSTCBtb2V0IGR1cyBlaW5kaWdlbiBvcCAvY2F0YWxvZ2kvYXBpL3YxL2luZm9ybWF0aWVvYmplY3R0eXBlbi97dXVpZH0nLFxuICAgICAgbmxkOiAnTmVkZXJsYW5kcycsXG4gICAgICBpbl9iZXdlcmtpbmc6ICdJbiBiZXdlcmtpbmcnLFxuICAgICAgdGVyX3Zhc3RzdGVsbGluZzogJ1RlciB2YXN0c3RlbGxpbmcnLFxuICAgICAgZGVmaW5pdGllZjogJ0RlZmluaXRpZWYnLFxuICAgICAgZ2VhcmNoaXZlZXJkOiAnR2VhcmNoaXZlZXJkJyxcbiAgICAgIGF1dGhlbnRpY2F0aW9uUGx1Z2luQ29uZmlndXJhdGlvbjogJ0NvbmZpZ3VyYXRpZSBhdXRoZW50aWNhdGllLXBsdWctaW4nLFxuICAgICAgYXV0aGVudGljYXRpb25QbHVnaW5Db25maWd1cmF0aW9uVG9vbHRpcDpcbiAgICAgICAgJ1NlbGVjdGVlciBkZSBwbHVnaW4gZGllIGRlIGF1dGhlbnRpY2F0aWUga2FuIGFmaGFuZGVsZW4uIFdhbm5lZXIgZGUgc2VsZWN0aWVib3ggbGVlZyBibGlqZnQgemFsIGRlIGF1dGhlbnRpY2F0aWUgcGx1Z2luIChidi4gT3BlblphYWspIGVlcnN0IGFhbmdlbWFha3QgbW9ldGVuIHdvcmRlbicsXG4gICAgICBhcGlWZXJzaW9uOiAnRG9jdW1lbnRlbiBBUEkgdmVyc2llJyxcbiAgICAgIGFwaVZlcnNpb25Ub29sdGlwOiAnU2VsZWN0ZWVyIGRlIHZlcnNpZSB2YW4gZGUgRG9jdW1lbnRlbiBBUEknLFxuICAgICAgZG93bmxvYWREb2N1bWVudE1lc3NhZ2U6XG4gICAgICAgICdIZXQgZG93bmxvYWRlbiB2YW4gZWVuIGRvY3VtZW50IHZhbnVpdCBkZSBEb2N1bWVudGVuIEFQSSB2ZXJlaXN0IGdlZW4gY29uZmlndXJhdGllLicsXG4gICAgICBwcm9jZXNzVmFyaWFibGVOYW1lOlxuICAgICAgICAnV2F0IGlzIGRlIG5hYW0gdmFuIGRlIHByb2Nlc3ZhcmlhYmVsZSB3YWFybmFhciB1IGhldCBkb2N1bWVudCB3aWx0IGRvd25sb2FkZW4/JyxcbiAgICB9LFxuICAgIGVuOiB7XG4gICAgICB0aXRsZTogJ0RvY3VtZW50ZW4gQVBJJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnQVBJIGZvciBzdG9yaW5nIGFuZCBhY2Nlc3NpbmcgZG9jdW1lbnRzIGFuZCBhc3NvY2lhdGVkIG1ldGFkYXRhLicsXG4gICAgICAnc3RvcmUtdGVtcC1kb2N1bWVudCc6ICdTYXZlIGRvY3VtZW50JyxcbiAgICAgICdzdG9yZS11cGxvYWRlZC1kb2N1bWVudCc6ICdTYXZlIHVwbG9hZGVkIGRvY3VtZW50JyxcbiAgICAgICdkb3dubG9hZC1kb2N1bWVudCc6ICdEb3dubG9hZCBkb2N1bWVudCcsXG4gICAgICBzdG9yZVVwbG9hZGVkRG9jdW1lbnRNZXNzYWdlOlxuICAgICAgICAnU2F2aW5nIGFuIHVwbG9hZGVkIGRvY3VtZW50IGRvZXMgbm90IHJlcXVpcmUgYW55IGNvbmZpZ3VyYXRpb24uJyxcbiAgICAgIGNvbmZpZ3VyYXRpb25UaXRsZTogJ0NvbmZpZ3VyYXRpb24gbmFtZScsXG4gICAgICBjb25maWd1cmF0aW9uVGl0bGVUb29sdGlwOlxuICAgICAgICAnSGVyZSB5b3UgY2FuIGVudGVyIGEgbmFtZSBmb3IgdGhlIHBsdWdpbi4gVGhpcyBuYW1lIHdpbGwgYmUgdXNlZCB0byByZWNvZ25pemUgdGhlIHBsdWdpbiB0aHJvdWdob3V0IHRoZSByZXN0IG9mIHRoZSBhcHBsaWNhdGlvbicsXG4gICAgICB1cmw6ICdEb2N1bWVudGVuIEFQSSBVUkwnLFxuICAgICAgdXJsVG9vbHRpcDpcbiAgICAgICAgJ1RoaXMgZmllbGQgbXVzdCBjb250YWluIHRoZSBVUkwgdG8gdGhlIFJFU1QgQVBJIG9mIERvY3VtZW50ZW4sIHRoZXJlZm9yZSB0aGlzIFVSTCBzaG91bGQgZW5kIHdpdGggL2RvY3VtZW50ZW4vYXBpL3YxLycsXG4gICAgICBicm9ub3JnYW5pc2F0aWU6ICdPcmdhbmlzYXRpb24gUlNJTicsXG4gICAgICBicm9ub3JnYW5pc2F0aWVUb29sdGlwOlxuICAgICAgICAnRW50ZXIgaGVyZSB0aGUgUlNJTiBvZiB0aGUgb3JnYW5pemF0aW9uIHJlc3BvbnNpYmxlIGZvciB0aGUgZG9jdW1lbnRzLiBUaGUgUlNJTiBpcyBhIGR1dGNoIGlkZW50aWZpY2F0aW9uIG51bWJlciBmb3IgbGVnYWwgZW50aXRpZXMgYW5kIHBhcnRuZXJzaGlwcyAnLFxuICAgICAgZmlsZU5hbWU6ICdGaWxlIG5hbWUnLFxuICAgICAgZmlsZU5hbWVUb29sdGlwOlxuICAgICAgICAnVGhlIG5hbWUgb2YgdGhlIHBoeXNpY2FsIGZpbGUgaW4gd2hpY2ggdGhlIGNvbnRlbnQgb2YgdGhlIGRvY3VtZW50IGlzIGNhcHR1cmVkLCBpbmNsdWRpbmcgZXh0ZW5zaW9uJyxcbiAgICAgIGNvbmZpZGVudGlhbGl0eUxldmVsOiAnQ29uZmlkZW50aWFsaXR5IGxldmVsJyxcbiAgICAgIGNvbmZpZGVudGlhbGl0eUxldmVsVG9vbHRpcDpcbiAgICAgICAgJ0luZGljYXRpb24gb2YgdGhlIGV4dGVudCB0byB3aGljaCB0aGUgZG9jdW1lbnQgaXMgaW50ZW5kZWQgZm9yIHB1YmxpYyBhY2Nlc3MnLFxuICAgICAgaW5wdXRUaXRsZTogJ1RpdGxlJyxcbiAgICAgIGlucHV0VGl0bGVUb29sdGlwOiAnVGhlIG5hbWUgYnkgd2hpY2ggdGhlIGRvY3VtZW50IGlzIGZvcm1hbGx5IGtub3duJyxcbiAgICAgIGlucHV0RGVzY3JpcHRpb246ICdEZXNjcmlwdGlvbicsXG4gICAgICBpbnB1dERlc2NyaXB0aW9uVG9vbHRpcDogJ0EgZ2VuZXJpYyBkZXNjcmlwdGlvbiBvZiB0aGUgY29udGVudCBvZiB0aGUgZG9jdW1lbnQnLFxuICAgICAgb3BlbmJhYXI6ICdQdWJsaWMnLFxuICAgICAgYmVwZXJrdF9vcGVuYmFhcjogJ1Jlc3RyaWN0ZWQgcHVibGljJyxcbiAgICAgIGludGVybjogJ0ludGVybmFsJyxcbiAgICAgIHphYWt2ZXJ0cm91d2VsaWprOiAnQ2FzZSBjb25maWRlbnRpYWwnLFxuICAgICAgdmVydHJvdXdlbGlqazogJ1ByaXZhdGUnLFxuICAgICAgY29uZmlkZW50aWVlbDogJ0NvbmZpZGVudGlhbCcsXG4gICAgICBnZWhlaW06ICdTZWNyZXQnLFxuICAgICAgemVlcl9nZWhlaW06ICdWZXJ5IHNlY3JldCcsXG4gICAgICBsb2NhbERvY3VtZW50TG9jYXRpb246ICdOYW1lIG9mIHByb2Nlc3MgdmFyaWFibGUgd2l0aCBkb2N1bWVudCcsXG4gICAgICBsb2NhbERvY3VtZW50TG9jYXRpb25Ub29sdGlwOlxuICAgICAgICAnRW50ZXIgdGhlIHByb2Nlc3MgdmFyaWFibGUgdGhhdCBwb2ludHMgdG8gdGhlIGxvY2F0aW9uIHdoZXJlIHRoZSBkb2N1bWVudCBpcyBzdG9yZWQgbG9jYWxseScsXG4gICAgICBzdG9yZWREb2N1bWVudFVybDogJ1Byb2Nlc3MgdmFyaWFibGUgbmFtZSBmb3Igc3RvcmluZyBkb2N1bWVudCBVUkwnLFxuICAgICAgc3RvcmVEb2N1bWVudFVybFRvb2x0aXA6XG4gICAgICAgICdBZnRlciB0aGUgZG9jdW1lbnQgaGFzIGJlZW4gdXBsb2FkZWQgdG8gdGhlIERvY3VtZW50ZW4gQVBJLCB0aGUgYXBwbGljYXRpb24gd2lsbCBzdG9yZSB0aGUgVVJMIHRvIHRoZSBkb2N1bWVudCBpbiB0aGlzIHByb2Nlc3MgdmFyaWFibGUuJyxcbiAgICAgIHRhYWw6ICdMYW5ndWFnZScsXG4gICAgICBzdGF0dXM6ICdTdGF0dXMnLFxuICAgICAgaW5mb3JtYXRpZW9iamVjdHR5cGU6ICdVUkwgdG8gdGhlIGluZm9ybWF0aW9ub2JqZWN0dHlwZScsXG4gICAgICBpbmZvcm1hdGllb2JqZWN0dHlwZVRvb2x0aXA6XG4gICAgICAgICdFbnRlciB0aGUgZnVsbCBVUkwgdG8gYW4gaW5mb3JtYXRpb24gb2JqZWN0IHR5cGUgb2YgYSBaYWFrIGNhdGFsb2cgaW4gdGhpcyBmaWVsZC4gU28gdGhpcyBVUkwgbXVzdCBlbmQgd2l0aCAvY2F0YWxvZ2kvYXBpL3YxL2luZm9ybWF0aWVvYmplY3R0eXBlbi97dXVpZH0nLFxuICAgICAgbmxkOiAnRHV0Y2gnLFxuICAgICAgaW5fYmV3ZXJraW5nOiAnRWRpdGluZycsXG4gICAgICB0ZXJfdmFzdHN0ZWxsaW5nOiAnVG8gYmUgY29uZmlybWVkJyxcbiAgICAgIGRlZmluaXRpZWY6ICdGaW5hbCcsXG4gICAgICBnZWFyY2hpdmVlcmQ6ICdBcmNoaXZlZCcsXG4gICAgICBhdXRoZW50aWNhdGlvblBsdWdpbkNvbmZpZ3VyYXRpb246ICdBdXRoZW50aWNhdGlvbiBwbHVnaW4gY29uZmlndXJhdGlvbicsXG4gICAgICBhdXRoZW50aWNhdGlvblBsdWdpbkNvbmZpZ3VyYXRpb25Ub29sdGlwOlxuICAgICAgICAnU2VsZWN0IHRoZSBwbHVnaW4gdGhhdCBjYW4gaGFuZGxlIHRoZSBhdXRoZW50aWNhdGlvbi4gSWYgdGhlIHNlbGVjdGlvbiBib3ggcmVtYWlucyBlbXB0eSwgdGhlIGF1dGhlbnRpY2F0aW9uIHBsdWdpbiAoZS5nLiBPcGVuWmFhaykgd2lsbCBoYXZlIHRvIGJlIGNyZWF0ZWQgZmlyc3QnLFxuICAgICAgYXBpVmVyc2lvbjogJ0RvY3VtZW50ZW4gQVBJIHZlcnNpb24nLFxuICAgICAgYXBpVmVyc2lvblRvb2x0aXA6ICdTZWxlY3QgdGhlIHZlcnNpb24gb2YgdGhlIERvY3VtZW50ZW4gQVBJJyxcbiAgICAgIGRvd25sb2FkRG9jdW1lbnRNZXNzYWdlOlxuICAgICAgICAnRG93bmxvYWRpbmcgYSBkb2N1bWVudCBmb3JtIHRoZSBEb2N1bWVudGVuIEFQSSBkb2VzIG5vdCByZXF1aXJlIGFueSBjb25maWd1cmF0aW9uLicsXG4gICAgICBwcm9jZXNzVmFyaWFibGVOYW1lOlxuICAgICAgICAnV2hhdCBpcyB0aGUgbmFtZSBvZiB0aGUgcHJvY2VzcyB2YXJpYWJsZSB5b3Ugd2FudCB0byBkb3dubG9hZCB0aGUgZG9jdW1lbnQgdG8/JyxcbiAgICB9LFxuICAgIGRlOiB7XG4gICAgICB0aXRsZTogJ0RvY3VtZW50ZW4gQVBJJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnQVBJIHp1bSBTcGVpY2hlcm4gdW5kIFp1Z3JlaWZlbiBhdWYgRG9rdW1lbnRlIHVuZCB6dWdlaMO2cmlnZSBNZXRhZGF0ZW4uJyxcbiAgICAgICdzdG9yZS10ZW1wLWRvY3VtZW50JzogJ0Rva3VtZW50IHNwZWljaGVybicsXG4gICAgICAnc3RvcmUtdXBsb2FkZWQtZG9jdW1lbnQnOiAnSG9jaGdlbGFkZW5lcyBEb2t1bWVudCBzcGVpY2hlcm4nLFxuICAgICAgJ2Rvd25sb2FkLWRvY3VtZW50JzogJ0Rva3VtZW50IGhlcnVudGVybGFkZW4nLFxuICAgICAgc3RvcmVVcGxvYWRlZERvY3VtZW50TWVzc2FnZTpcbiAgICAgICAgJ0RhcyBTcGVpY2hlcm4gZWluZXMgaG9jaGdlbGFkZW5lbiBEb2t1bWVudHMgZXJmb3JkZXJ0IGtlaW5lIEtvbmZpZ3VyYXRpb24uJyxcbiAgICAgIGNvbmZpZ3VyYXRpb25UaXRsZTogJ0tvbmZpZ3VyYXRpb25zbmFtZScsXG4gICAgICBjb25maWd1cmF0aW9uVGl0bGVUb29sdGlwOlxuICAgICAgICAnSGllciBrw7ZubmVuIFNpZSBlaW5lbiBOYW1lbiBmw7xyIGRhcyBQbHVnaW4gZWluZ2ViZW4uIERpZXNlciBOYW1lIHdpcmQgdmVyd2VuZGV0LCB1bSBkYXMgUGx1Z2luIGltIFJlc3QgZGVyIEFud2VuZHVuZyB6dSBlcmtlbm5lbicsXG4gICAgICB1cmw6ICdEb2N1bWVudGVuIEFQSSBVUkwnLFxuICAgICAgdXJsVG9vbHRpcDpcbiAgICAgICAgJ0RpZXNlcyBGZWxkIG11c3MgZGllIFVSTCB6dXIgUkVTVCBBUEkgdm9uIERvY3VtZW50ZW4gZW50aGFsdGVuLCBkYWhlciBzb2xsdGUgZGllc2UgVVJMIG1pdCBlbmRlbiAvZG9jdW1lbnRlbi9hcGkvdjEvJyxcbiAgICAgIGJyb25vcmdhbmlzYXRpZTogJ09yZ2FuaXNhdGlvbiBSU0lOJyxcbiAgICAgIGJyb25vcmdhbmlzYXRpZVRvb2x0aXA6XG4gICAgICAgICdHZWJlbiBTaWUgaGllciBkZW4gUkFJTiBkZXIgZsO8ciBkaWUgRG9rdW1lbnRlIHZlcmFudHdvcnRsaWNoZW4gT3JnYW5pc2F0aW9uIGVpbi4gRGVyIFJBSU4gaXN0IGVpbmUgbmllZGVybMOkbmRpc2NoZSBJZGVudGlmaWthdGlvbnNudW1tZXIgZsO8ciBqdXJpc3Rpc2NoZSBQZXJzb25lbiB1bmQgUGVyc29uZW5nZXNlbGxzY2hhZnRlbicsXG4gICAgICBmaWxlTmFtZTogJ0RhdGVpbmFtZScsXG4gICAgICBmaWxlTmFtZVRvb2x0aXA6XG4gICAgICAgICdEZXIgTmFtZSBkZXIgcGh5c2lzY2hlbiBEYXRlaSwgaW4gZGVyIGRlciBJbmhhbHQgZGVzIERva3VtZW50cyBlcmZhc3N0IHdpcmQsIGVpbnNjaGxpZcOfbGljaCBFcndlaXRlcnVuZycsXG4gICAgICBjb25maWRlbnRpYWxpdHlMZXZlbDogJ1ZlcnRyYXVsaWNoa2VpdHNoaW53ZWlzJyxcbiAgICAgIGNvbmZpZGVudGlhbGl0eUxldmVsVG9vbHRpcDpcbiAgICAgICAgJ0FuZ2FiZSwgaW53aWV3ZWl0IGRhcyBEb2t1bWVudCBmw7xyIGRpZSDDlmZmZW50bGljaGtlaXQgYmVzdGltbXQgaXN0JyxcbiAgICAgIGlucHV0VGl0bGU6ICdUaXRlbCcsXG4gICAgICBpbnB1dFRpdGxlVG9vbHRpcDogJ0RlciBOYW1lLCB1bnRlciBkZW0gZGFzIERva3VtZW50IG9mZml6aWVsbCBiZWthbm50IGlzdCcsXG4gICAgICBpbnB1dERlc2NyaXB0aW9uOiAnQmVzY2hyZWlidW5nJyxcbiAgICAgIGlucHV0RGVzY3JpcHRpb25Ub29sdGlwOiAnRWluZSBhbGxnZW1laW5lIEJlc2NocmVpYnVuZyBkZXMgSW5oYWx0cyBkZXMgRG9rdW1lbnRzJyxcbiAgICAgIG9wZW5iYWFyOiAnw5ZmZmVudGxpY2hrZWl0JyxcbiAgICAgIGJlcGVya3Rfb3BlbmJhYXI6ICdFaW5nZXNjaHLDpG5rdF/DtmZmZW50bGljaCcsXG4gICAgICBpbnRlcm46ICdJbnRlcm4nLFxuICAgICAgemFha3ZlcnRyb3V3ZWxpams6ICdHZXNjaMOkZnRsaWNoIHZlcnRyYXVsaWNoJyxcbiAgICAgIHZlcnRyb3V3ZWxpams6ICdWZXJ0cmF1bGljaCcsXG4gICAgICBjb25maWRlbnRpZWVsOiAnR2VoZWltJyxcbiAgICAgIGdlaGVpbTogJ0dlaGVpbW5pcycsXG4gICAgICB6ZWVyX2dlaGVpbTogJ1NlaHIgZ2VoZWltJyxcbiAgICAgIGxvY2FsRG9jdW1lbnRMb2NhdGlvbjogJ05hbWUgUHJvemVzc3ZhcmlhYmxlIG1pdCBEb2t1bWVudCcsXG4gICAgICBsb2NhbERvY3VtZW50TG9jYXRpb25Ub29sdGlwOlxuICAgICAgICAnR2ViZW4gU2llIGRpZSBQcm96ZXNzdmFyaWFibGUgZWluLCBkaWUgYXVmIGRlbiBPcnQgemVpZ3QsIGFuIGRlbSBkYXMgRG9rdW1lbnQgbG9rYWwgZ2VzcGVpY2hlcnQgaXN0JyxcbiAgICAgIHN0b3JlZERvY3VtZW50VXJsOiAnTmFtZSBkZXIgUHJvemVzc3ZhcmlhYmxlbiB6dW0gU3BlaWNoZXJuIGRlciBEb2t1bWVudC1VUkwnLFxuICAgICAgc3RvcmVEb2N1bWVudFVybFRvb2x0aXA6XG4gICAgICAgICdOYWNoZGVtIGRhcyBEb2t1bWVudCBpbiBkaWUgRG9rdW1lbnRlbi1BUEkgaG9jaGdlbGFkZW4gd3VyZGUsIHNwZWljaGVydCBkaWUgQW53ZW5kdW5nIGRpZSBVUkwgenVtIERva3VtZW50IGluIGRpZXNlciBQcm96ZXNzdmFyaWFibGVuLicsXG4gICAgICB0YWFsOiAnU3ByYWNoZScsXG4gICAgICBzdGF0dXM6ICdTdGF0dXMnLFxuICAgICAgaW5mb3JtYXRpZW9iamVjdHR5cGU6ICdVUkwgenVtIEluZm9ybWF0aW9uc29iamVrdHR5cCcsXG4gICAgICBpbmZvcm1hdGllb2JqZWN0dHlwZVRvb2x0aXA6XG4gICAgICAgICdHZWJlbiBTaWUgaW4gZGllc2VtIEZlbGQgZGllIHZvbGxzdMOkbmRpZ2UgVVJMIHp1IGVpbmVtIEluZm9ybWF0aW9uc29iamVrdHR5cCBlaW5lcyBDYXNlIEthdGFsb2dzLiBEaWVzZSBVUkwgbXVzcyBkYWhlciBtaXQgZW5kZW4gL2NhdGFsb2dpL2FwaS92MS9pbmZvcm1hdGllb2JqZWN0dHlwZW4ve3V1aWR9JyxcbiAgICAgIG5sZDogJ05pZWRlcmzDpG5kaXNjaCcsXG4gICAgICBpbl9iZXdlcmtpbmc6ICdJbiBCZWFyYmVpdHVuZycsXG4gICAgICB0ZXJfdmFzdHN0ZWxsaW5nOiAnWnUgYmVzdGltbWVuJyxcbiAgICAgIGRlZmluaXRpZWY6ICdFbmRnw7xsdGlnJyxcbiAgICAgIGdlYXJjaGl2ZWVyZDogJ0FyY2hpdmllcnQnLFxuICAgICAgYXV0aGVudGljYXRpb25QbHVnaW5Db25maWd1cmF0aW9uOiAnQXV0aGVudGlmaXppZXJ1bmdzLVBsdWdpbi1Lb25maWd1cmF0aW9uJyxcbiAgICAgIGF1dGhlbnRpY2F0aW9uUGx1Z2luQ29uZmlndXJhdGlvblRvb2x0aXA6XG4gICAgICAgICdXw6RobGVuIFNpZSBkYXMgUGx1Z2luIGF1cywgZGFzIGRpZSBBdXRoZW50aWZpemllcnVuZyB2ZXJhcmJlaXRlbiBrYW5uLiBCbGVpYnQgZGFzIEF1c3dhaGxmZWxkIGxlZXIsIG11c3MgenVuw6RjaHN0IGRhcyBBdXRoZW50aWZpemllcnVuZ3MtUGx1Z2luICh6LiBCLiBPcGVuWmFhaykgZXJzdGVsbHQgd2VyZGVuJyxcbiAgICAgIGFwaVZlcnNpb246ICdEb2N1bWVudGVuLUFQSS1WZXJzaW9uJyxcbiAgICAgIGFwaVZlcnNpb25Ub29sdGlwOiAnV8OkaGxlbiBTaWUgZGllIFZlcnNpb24gZGVyIERvY3VtZW50ZW4tQVBJIGF1cycsXG4gICAgICBkb3dubG9hZERvY3VtZW50TWVzc2FnZTpcbiAgICAgICAgJ0RhcyBIZXJ1bnRlcmxhZGVuIGVpbmVzIERva3VtZW50cyBhdXMgZGVyIERvY3VtZW50ZW4tQVBJIGVyZm9yZGVydCBrZWluZSBLb25maWd1cmF0aW9uLicsXG4gICAgICBwcm9jZXNzVmFyaWFibGVOYW1lOlxuICAgICAgICAnV2llIGxhdXRldCBkZXIgTmFtZSBkZXIgUHJvemVzc3ZhcmlhYmxlbiwgaW4gZGllIFNpZSBkYXMgRG9rdW1lbnQgaGVydW50ZXJsYWRlbiBtw7ZjaHRlbj8nLFxuICAgIH0sXG4gIH0sXG59O1xuXG5leHBvcnQge2RvY3VtZW50ZW5BcGlQbHVnaW5TcGVjaWZpY2F0aW9ufTtcbiJdfQ==
189
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnRlbi1hcGktcGx1Z2luLnNwZWNpZmljYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL3BsdWdpbi9zcmMvbGliL3BsdWdpbnMvZG9jdW1lbnRlbi1hcGkvZG9jdW1lbnRlbi1hcGktcGx1Z2luLnNwZWNpZmljYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFHSCxPQUFPLEVBQUMsdUNBQXVDLEVBQUMsTUFBTSw4RUFBOEUsQ0FBQztBQUNySSxPQUFPLEVBQUMsaUNBQWlDLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDM0QsT0FBTyxFQUFDLG1DQUFtQyxFQUFDLE1BQU0sa0ZBQWtGLENBQUM7QUFDckksT0FBTyxFQUFDLDJDQUEyQyxFQUFDLE1BQU0sc0ZBQXNGLENBQUM7QUFDakosT0FBTyxFQUFDLHNDQUFzQyxFQUFDLE1BQU0sMEVBQTBFLENBQUM7QUFDaEksT0FBTyxFQUFDLGtEQUFrRCxFQUFDLE1BQU0sd0dBQXdHLENBQUM7QUFFMUssTUFBTSxnQ0FBZ0MsR0FBd0I7SUFDNUQsUUFBUSxFQUFFLGVBQWU7SUFDekIsNEJBQTRCLEVBQUUsbUNBQW1DO0lBQ2pFLGdCQUFnQixFQUFFLGlDQUFpQztJQUNuRCwrQkFBK0IsRUFBRTtRQUMvQixxQkFBcUIsRUFBRSx1Q0FBdUM7UUFDOUQseUJBQXlCLEVBQUUsMkNBQTJDO1FBQ3RFLGtDQUFrQyxFQUFFLGtEQUFrRDtRQUN0RixtQkFBbUIsRUFBRSxzQ0FBc0M7S0FDNUQ7SUFDRCxrQkFBa0IsRUFBRTtRQUNsQixFQUFFLEVBQUU7WUFDRixLQUFLLEVBQUUsZ0JBQWdCO1lBQ3ZCLFdBQVcsRUFBRSw4RUFBOEU7WUFDM0YscUJBQXFCLEVBQUUsa0JBQWtCO1lBQ3pDLHlCQUF5QixFQUFFLDJCQUEyQjtZQUN0RCxrQ0FBa0MsRUFBRSw0Q0FBNEM7WUFDaEYsbUJB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aUJBQWlCLEVBQUUsd0RBQXdEO1lBQzNFLGdCQUFnQixFQUFFLGNBQWM7WUFDaEMsdUJBQXVCLEVBQUUsd0RBQXdEO1lBQ2pGLFFBQVEsRUFBRSxnQkFBZ0I7WUFDMUIsZ0JBQWdCLEVBQUUsMEJBQTBCO1lBQzVDLE1BQU0sRUFBRSxRQUFRO1lBQ2hCLGlCQUFpQixFQUFFLDBCQUEwQjtZQUM3QyxhQUFhLEVBQUUsYUFBYTtZQUM1QixhQUFhLEVBQUUsUUFBUTtZQUN2QixNQUFNLEVBQUUsV0FBVztZQUNuQixXQUFXLEVBQUUsYUFBYTtZQUMxQixxQkFBcUIsRUFBRSxtQ0FBbUM7WUFDMUQsNEJBQTRCLEVBQzFCLHFHQUFxRztZQUN2RyxpQkFBaUIsRUFBRSwwREFBMEQ7WUFDN0UsdUJBQXVCLEVBQ3JCLHdJQUF3STtZQUMxSSxJQUFJLEVBQUUsU0FBUztZQUNmLE1BQU0sRUFBRSxRQUFRO1lBQ2hCLG9CQUFvQixFQUFFLCtCQUErQjtZQUNyRCwyQkFBMkIsRUFDekIsZ0xBQWdMO1lBQ2xMLEdBQUcsRUFBRSxnQkFBZ0I7WUFDckIsWUFBWSxFQUFFLGdCQUFnQjtZQUM5QixnQkFBZ0IsRUFBRSxjQUFjO1lBQ2hDLFVBQVUsRUFBRSxXQUFXO1lBQ3ZCLFlBQVksRUFBRSxZQUFZO1lBQzFCLGlDQUFpQyxFQUFFLHlDQUF5QztZQUM1RSx3Q0FBd0MsRUFDdEMsa0xBQWtMO1lBQ3BMLFVBQVUsRUFBRSx3QkFBd0I7WUFDcEMsaUJBQWlCLEVBQUUsK0NBQStDO1lBQ2xFLHVCQUF1QixFQUNyQix5RkFBeUY7WUFDM0YsbUJBQW1CLEVBQ2pCLDBGQUEwRjtTQUM3RjtLQUNGO0NBQ0YsQ0FBQztBQUVGLE9BQU8sRUFBQyxnQ0FBZ0MsRUFBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtQbHVnaW5TcGVjaWZpY2F0aW9ufSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtTdG9yZVRlbXBEb2N1bWVudENvbmZpZ3VyYXRpb25Db21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50cy9zdG9yZS10ZW1wLWRvY3VtZW50L3N0b3JlLXRlbXAtZG9jdW1lbnQtY29uZmlndXJhdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHtET0NVTUVOVEVOX0FQSV9QTFVHSU5fTE9HT19CQVNFNjR9IGZyb20gJy4vYXNzZXRzJztcbmltcG9ydCB7RG9jdW1lbnRlbkFwaUNvbmZpZ3VyYXRpb25Db21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50cy9kb2N1bWVudGVuLWFwaS1jb25maWd1cmF0aW9uL2RvY3VtZW50ZW4tYXBpLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7U3RvcmVVcGxvYWRlZERvY3VtZW50Q29uZmlndXJhdGlvbkNvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL3N0b3JlLXVwbG9hZGVkLWRvY3VtZW50L3N0b3JlLXVwbG9hZGVkLWRvY3VtZW50LWNvbmZpZ3VyYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7RG93bmxvYWREb2N1bWVudENvbmZpZ3VyYXRpb25Db21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50cy9kb3dubG9hZC1kb2N1bWVudC9kb3dubG9hZC1kb2N1bWVudC1jb25maWd1cmF0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQge1N0b3JlVXBsb2FkZWREb2N1bWVudEluUGFydHNDb25maWd1cmF0aW9uQ29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvc3RvcmUtdXBsb2FkZWQtZG9jdW1lbnQtaW4tcGFydHMvc3RvcmUtdXBsb2FkZWQtZG9jdW1lbnQtaW4tcGFydHMtY29uZmlndXJhdGlvbi5jb21wb25lbnQnO1xuXG5jb25zdCBkb2N1bWVudGVuQXBpUGx1Z2luU3BlY2lmaWNhdGlvbjogUGx1Z2luU3BlY2lmaWNhdGlvbiA9IHtcbiAgcGx1Z2luSWQ6ICdkb2N1bWVudGVuYXBpJyxcbiAgcGx1Z2luQ29uZmlndXJhdGlvbkNvbXBvbmVudDogRG9jdW1lbnRlbkFwaUNvbmZpZ3VyYXRpb25Db21wb25lbnQsXG4gIHBsdWdpbkxvZ29CYXNlNjQ6IERPQ1VNRU5URU5fQVBJX1BMVUdJTl9MT0dPX0JBU0U2NCxcbiAgZnVuY3Rpb25Db25maWd1cmF0aW9uQ29tcG9uZW50czoge1xuICAgICdzdG9yZS10ZW1wLWRvY3VtZW50JzogU3RvcmVUZW1wRG9jdW1lbnRDb25maWd1cmF0aW9uQ29tcG9uZW50LFxuICAgICdzdG9yZS11cGxvYWRlZC1kb2N1bWVudCc6IFN0b3JlVXBsb2FkZWREb2N1bWVudENvbmZpZ3VyYXRpb25Db21wb25lbnQsXG4gICAgJ3N0b3JlLXVwbG9hZGVkLWRvY3VtZW50LWluLXBhcnRzJzogU3RvcmVVcGxvYWRlZERvY3VtZW50SW5QYXJ0c0NvbmZpZ3VyYXRpb25Db21wb25lbnQsXG4gICAgJ2Rvd25sb2FkLWRvY3VtZW50JzogRG93bmxvYWREb2N1bWVudENvbmZpZ3VyYXRpb25Db21wb25lbnQsXG4gIH0sXG4gIHBsdWdpblRyYW5zbGF0aW9uczoge1xuICAgIG5sOiB7XG4gICAgICB0aXRsZTogJ0RvY3VtZW50ZW4gQVBJJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnQVBJIHZvb3Igb3BzbGFnIGVuIG9udHNsdWl0aW5nIHZhbiBkb2N1bWVudGVuIGVuIGRhYXJiaWogYmVob3JlbmRlIG1ldGFkYXRhLicsXG4gICAgICAnc3RvcmUtdGVtcC1kb2N1bWVudCc6ICdEb2N1bWVudCBvcHNsYWFuJyxcbiAgICAgICdzdG9yZS11cGxvYWRlZC1kb2N1bWVudCc6ICdHZXVwbG9hZCBkb2N1bWVudCBvcHNsYWFuJyxcbiAgICAgICdzdG9yZS11cGxvYWRlZC1kb2N1bWVudC1pbi1wYXJ0cyc6ICdHZXVwbG9hZCBkb2N1bWVudCBvcHNsYWFuIGluIGJlc3RhbmRzZGVsZW4nLFxuICAgICAgJ2Rvd25sb2FkLWRvY3VtZW50JzogJ0Rvd25sb2FkIGRvY3VtZW50JyxcbiAgICAgIHN0b3JlVXBsb2FkZWREb2N1bWVudE1lc3NhZ2U6XG4gICAgICAgICdIZXQgb3BzbGFhbiB2YW4gZWVuIGdldXBsb2FkIGRvY3VtZW50IGhlZWZ0IGdlZW4gY29uZmlndXJhdGllIG5vZGlnLicsXG4gICAgICBzdG9yZVVwbG9hZGVkRG9jdW1lbnRJblBhcnRzTWVzc2FnZTpcbiAgICAgICAgJ0hldCBvcHNsYWFuIHZhbiBlZW4gZ2V1cGxvYWQgZG9jdW1lbnQgaW4gYmVzdGFuZHNkZWxlbiBoZWVmdCBnZWVuIGNvbmZpZ3VyYXRpZSBub2RpZycsXG4gICAgICBjb25maWd1cmF0aW9uVGl0bGU6ICdDb25maWd1cmF0aWVuYWFtJyxcbiAgICAgIGNvbmZpZ3VyYXRpb25UaXRsZVRvb2x0aXA6XG4gICAgICAgICdIaWVyIGt1bnQgamUgZWVuIGVpZ2VuIG5hYW0gdmVyemlubmVuLiBPbmRlciBkZXplIG5hYW0gemFsIGRlIHBsdWdpbiB0ZSBoZXJrZW5uZW4gemlqbiBpbiBkZSByZXN0IHZhbiBkZSBhcHBsaWNhdGllJyxcbiAgICAgIHVybDogJ0RvY3VtZW50ZW4gQVBJIFVSTCcsXG4gICAgICB1cmxUb29sdGlwOlxuICAgICAgICAnSW4gZGl0IHZlbGQgbW9ldCBkZSB2ZXJ3aWp6aW5nIGtvbWVuIG5hYXIgZGUgUkVTVCBBUEkgdmFuIERvY3VtZW50ZW4uIERlemUgdXJsIG1vZXQgZHVzIGVpbmRpZ2VuIG9wIC9kb2N1bWVudGVuL2FwaS92MS8nLFxuICAgICAgYnJvbm9yZ2FuaXNhdGllOiAnQnJvbm9yZ2FuaXNhdGllIFJTSU4nLFxuICAgICAgYnJvbm9yZ2FuaXNhdGllVG9vbHRpcDpcbiAgICAgICAgJ1Z1bCBoaWVyIGhldCBSU0lOIHZhbiBkZSBvcmdhbmlzYXRpZSBpbiBkaWUgdmVyYW50d29vcmRlbGlqayBpcyB2b29yIGRlIGRvY3VtZW50ZW4nLFxuICAgICAgZmlsZU5hbWU6ICdCZXN0YW5kc25hYW0nLFxuICAgICAgZmlsZU5hbWVUb29sdGlwOlxuICAgICAgICAnRGUgbmFhbSB2YW4gaGV0IGZ5c2lla2UgYmVzdGFuZCB3YWFyaW4gZGUgaW5ob3VkIHZhbiBoZXQgZG9jdW1lbnQgaXMgdmFzdGdlbGVnZCwgaW5jbHVzaWVmIGV4dGVuc2llJyxcbiAgICAgIGNvbmZpZGVudGlhbGl0eUxldmVsOiAnVmVydHJvdXdlbGlqa2hlaWRzYWFuZHVpZGluZycsXG4gICAgICBjb25maWRlbnRpYWxpdHlMZXZlbFRvb2x0aXA6XG4gICAgICAgICdBYW5kdWlkaW5nIHZhbiBkZSBtYXRlIHdhYXJpbiBoZXQgZG9jdW1lbnQgdm9vciBkZSBvcGVuYmFhcmhlaWQgYmVzdGVtZCBpcycsXG4gICAgICBpbnB1dFRpdGxlOiAnVGl0ZWwnLFxuICAgICAgaW5wdXRUaXRsZVRvb2x0aXA6ICdEZSBuYWFtIHdhYXJvbmRlciBoZXQgZG9jdW1lbnQgZm9ybWVlbCBiZWtlbmQgaXMnLFxuICAgICAgaW5wdXREZXNjcmlwdGlvbjogJ0Jlc2NocmlqdmluZycsXG4gICAgICBpbnB1dERlc2NyaXB0aW9uVG9vbHRpcDogJ0VlbiBnZW5lcmlla2UgYmVzY2hyaWp2aW5nIHZhbiBkZSBpbmhvdWQgdmFuIGhldCBkb2N1bWVudCcsXG4gICAgICBvcGVuYmFhcjogJ09wZW5iYWFyJyxcbiAgICAgIGJlcGVya3Rfb3BlbmJhYXI6ICdCZXBlcmt0IG9wZW5iYWFyJyxcbiAgICAgIGludGVybjogJ0ludGVybicsXG4gICAgICB6YWFrdmVydHJvdXdlbGlqazogJ1phYWt2ZXJ0cm91d2VsaWprJyxcbiAgICAgIHZlcnRyb3V3ZWxpams6ICdWZXJ0cm91d2VsaWprJyxcbiAgICAgIGNvbmZpZGVudGllZWw6ICdDb25maWRlbnRpZWVsJyxcbiAgICAgIGdlaGVpbTogJ0dlaGVpbScsXG4gICAgICB6ZWVyX2dlaGVpbTogJ1plZXIgZ2VoZWltJyxcbiAgICAgIGxvY2FsRG9jdW1lbnRMb2NhdGlvbjogJ05hYW0gcHJvY2VzdmFyaWFiZWxlIG1ldCBkb2N1bWVudCcsXG4gICAgICBsb2NhbERvY3VtZW50TG9jYXRpb25Ub29sdGlwOlxuICAgICAgICAnSGllciBtb2V0IGRlIHByb2Nlc3ZhcmlhYmVsZSBpbmdldnVsZCB3b3JkZW4gZGllIHdpanN0IG5hYXIgZGUgbG9jYXRpZSB3YWFyIGhldCBkb2N1bWVudCBsb2thYWwgc3RhYXQgb3BnZXNsYWdlbicsXG4gICAgICBzdG9yZWREb2N1bWVudFVybDogJ05hYW0gcHJvY2VzdmFyaWFiZWxlIHZvb3Igb3BzbGFnIGRvY3VtZW50LVVSTCcsXG4gICAgICBzdG9yZURvY3VtZW50VXJsVG9vbHRpcDpcbiAgICAgICAgJ05hZGF0IGhldCBkb2N1bWVudCBnZXVwbG9hZCBpcyBuYWFyIGRlIERvY3VtZW50ZW4gQVBJIHphbCBkZSBhcHBsaWNhdGllIGluIGRlemUgcHJvY2VzdmFyaWFiZWxlIGRlIFVSTCBuYWFyIGhldCBkb2N1bWVudCBvcHNsYWFuLicsXG4gICAgICB0YWFsOiAnVGFhbCcsXG4gICAgICBzdGF0dXM6ICdTdGF0dXMnLFxuICAgICAgaW5mb3JtYXRpZW9iamVjdHR5cGU6ICdVUkwgbmFhciBoZXQgaW5mb3JtYXRpZW9iamVjdHR5cGUnLFxuICAgICAgaW5mb3JtYXRpZW9iamVjdHR5cGVUb29sdGlwOlxuICAgICAgICAnVnVsIGluIGRpdCB2ZWxkIGRlIHZvbGxlZGlnZSBVUkwgbmFhciBlZW4gaW5mb3JtYXRpZW9iamVjdHR5cGUgdmFuIGVlbiBaYWFrIGNhdGFsb2d1cy4gRGV6ZSBVUkwgbW9ldCBkdXMgZWluZGlnZW4gb3AgL2NhdGFsb2dpL2FwaS92MS9pbmZvcm1hdGllb2JqZWN0dHlwZW4ve3V1aWR9JyxcbiAgICAgIG5sZDogJ05lZGVybGFuZHMnLFxuICAgICAgaW5fYmV3ZXJraW5nOiAnSW4gYmV3ZXJraW5nJyxcbiAgICAgIHRlcl92YXN0c3RlbGxpbmc6ICdUZXIgdmFzdHN0ZWxsaW5nJyxcbiAgICAgIGRlZmluaXRpZWY6ICdEZWZpbml0aWVmJyxcbiAgICAgIGdlYXJjaGl2ZWVyZDogJ0dlYXJjaGl2ZWVyZCcsXG4gICAgICBhdXRoZW50aWNhdGlvblBsdWdpbkNvbmZpZ3VyYXRpb246ICdDb25maWd1cmF0aWUgYXV0aGVudGljYXRpZS1wbHVnLWluJyxcbiAgICAgIGF1dGhlbnRpY2F0aW9uUGx1Z2luQ29uZmlndXJhdGlvblRvb2x0aXA6XG4gICAgICAgICdTZWxlY3RlZXIgZGUgcGx1Z2luIGRpZSBkZSBhdXRoZW50aWNhdGllIGthbiBhZmhhbmRlbGVuLiBXYW5uZWVyIGRlIHNlbGVjdGllYm94IGxlZWcgYmxpamZ0IHphbCBkZSBhdXRoZW50aWNhdGllIHBsdWdpbiAoYnYuIE9wZW5aYWFrKSBlZXJzdCBhYW5nZW1hYWt0IG1vZXRlbiB3b3JkZW4nLFxuICAgICAgYXBpVmVyc2lvbjogJ0RvY3VtZW50ZW4gQVBJIHZlcnNpZScsXG4gICAgICBhcGlWZXJzaW9uVG9vbHRpcDogJ1NlbGVjdGVlciBkZSB2ZXJzaWUgdmFuIGRlIERvY3VtZW50ZW4gQVBJJyxcbiAgICAgIGRvd25sb2FkRG9jdW1lbnRNZXNzYWdlOlxuICAgICAgICAnSGV0IGRvd25sb2FkZW4gdmFuIGVlbiBkb2N1bWVudCB2YW51aXQgZGUgRG9jdW1lbnRlbiBBUEkgdmVyZWlzdCBnZWVuIGNvbmZpZ3VyYXRpZS4nLFxuICAgICAgcHJvY2Vzc1ZhcmlhYmxlTmFtZTpcbiAgICAgICAgJ1dhdCBpcyBkZSBuYWFtIHZhbiBkZSBwcm9jZXN2YXJpYWJlbGUgd2Fhcm5hYXIgdSBoZXQgZG9jdW1lbnQgd2lsdCBkb3dubG9hZGVuPycsXG4gICAgfSxcbiAgICBlbjoge1xuICAgICAgdGl0bGU6ICdEb2N1bWVudGVuIEFQSScsXG4gICAgICBkZXNjcmlwdGlvbjogJ0FQSSBmb3Igc3RvcmluZyBhbmQgYWNjZXNzaW5nIGRvY3VtZW50cyBhbmQgYXNzb2NpYXRlZCBtZXRhZGF0YS4nLFxuICAgICAgJ3N0b3JlLXRlbXAtZG9jdW1lbnQnOiAnU2F2ZSBkb2N1bWVudCcsXG4gICAgICAnc3RvcmUtdXBsb2FkZWQtZG9jdW1lbnQnOiAnU2F2ZSB1cGxvYWRlZCBkb2N1bWVudCcsXG4gICAgICAnc3RvcmUtdXBsb2FkZWQtZG9jdW1lbnQtaW4tcGFydHMnOiAnU2F2ZSB1cGxvYWRlZCBkb2N1bWVudCBpbiBwYXJ0cycsXG4gICAgICAnZG93bmxvYWQtZG9jdW1lbnQnOiAnRG93bmxvYWQgZG9jdW1lbnQnLFxuICAgICAgc3RvcmVVcGxvYWRlZERvY3VtZW50TWVzc2FnZTpcbiAgICAgICAgJ1NhdmluZyBhbiB1cGxvYWRlZCBkb2N1bWVudCBkb2VzIG5vdCByZXF1aXJlIGFueSBjb25maWd1cmF0aW9uLicsXG4gICAgICBzdG9yZVVwbG9hZGVkRG9jdW1lbnRJblBhcnRzTWVzc2FnZTpcbiAgICAgICAgJ1NhdmluZyBhbiB1cGxvYWRlZCBkb2N1bWVudCBpbiBwYXJ0cyBkb2VzIG5vdCByZXF1aXJlIGFueSBjb25maWd1cmF0aW9uLicsXG4gICAgICBjb25maWd1cmF0aW9uVGl0bGU6ICdDb25maWd1cmF0aW9uIG5hbWUnLFxuICAgICAgY29uZmlndXJhdGlvblRpdGxlVG9vbHRpcDpcbiAgICAgICAgJ0hlcmUgeW91IGNhbiBlbnRlciBhIG5hbWUgZm9yIHRoZSBwbHVnaW4uIFRoaXMgbmFtZSB3aWxsIGJlIHVzZWQgdG8gcmVjb2duaXplIHRoZSBwbHVnaW4gdGhyb3VnaG91dCB0aGUgcmVzdCBvZiB0aGUgYXBwbGljYXRpb24nLFxuICAgICAgdXJsOiAnRG9jdW1lbnRlbiBBUEkgVVJMJyxcbiAgICAgIHVybFRvb2x0aXA6XG4gICAgICAgICdUaGlzIGZpZWxkIG11c3QgY29udGFpbiB0aGUgVVJMIHRvIHRoZSBSRVNUIEFQSSBvZiBEb2N1bWVudGVuLCB0aGVyZWZvcmUgdGhpcyBVUkwgc2hvdWxkIGVuZCB3aXRoIC9kb2N1bWVudGVuL2FwaS92MS8nLFxuICAgICAgYnJvbm9yZ2FuaXNhdGllOiAnT3JnYW5pc2F0aW9uIFJTSU4nLFxuICAgICAgYnJvbm9yZ2FuaXNhdGllVG9vbHRpcDpcbiAgICAgICAgJ0VudGVyIGhlcmUgdGhlIFJTSU4gb2YgdGhlIG9yZ2FuaXphdGlvbiByZXNwb25zaWJsZSBmb3IgdGhlIGRvY3VtZW50cy4gVGhlIFJTSU4gaXMgYSBkdXRjaCBpZGVudGlmaWNhdGlvbiBudW1iZXIgZm9yIGxlZ2FsIGVudGl0aWVzIGFuZCBwYXJ0bmVyc2hpcHMgJyxcbiAgICAgIGZpbGVOYW1lOiAnRmlsZSBuYW1lJyxcbiAgICAgIGZpbGVOYW1lVG9vbHRpcDpcbiAgICAgICAgJ1RoZSBuYW1lIG9mIHRoZSBwaHlzaWNhbCBmaWxlIGluIHdoaWNoIHRoZSBjb250ZW50IG9mIHRoZSBkb2N1bWVudCBpcyBjYXB0dXJlZCwgaW5jbHVkaW5nIGV4dGVuc2lvbicsXG4gICAgICBjb25maWRlbnRpYWxpdHlMZXZlbDogJ0NvbmZpZGVudGlhbGl0eSBsZXZlbCcsXG4gICAgICBjb25maWRlbnRpYWxpdHlMZXZlbFRvb2x0aXA6XG4gICAgICAgICdJbmRpY2F0aW9uIG9mIHRoZSBleHRlbnQgdG8gd2hpY2ggdGhlIGRvY3VtZW50IGlzIGludGVuZGVkIGZvciBwdWJsaWMgYWNjZXNzJyxcbiAgICAgIGlucHV0VGl0bGU6ICdUaXRsZScsXG4gICAgICBpbnB1dFRpdGxlVG9vbHRpcDogJ1RoZSBuYW1lIGJ5IHdoaWNoIHRoZSBkb2N1bWVudCBpcyBmb3JtYWxseSBrbm93bicsXG4gICAgICBpbnB1dERlc2NyaXB0aW9uOiAnRGVzY3JpcHRpb24nLFxuICAgICAgaW5wdXREZXNjcmlwdGlvblRvb2x0aXA6ICdBIGdlbmVyaWMgZGVzY3JpcHRpb24gb2YgdGhlIGNvbnRlbnQgb2YgdGhlIGRvY3VtZW50JyxcbiAgICAgIG9wZW5iYWFyOiAnUHVibGljJyxcbiAgICAgIGJlcGVya3Rfb3BlbmJhYXI6ICdSZXN0cmljdGVkIHB1YmxpYycsXG4gICAgICBpbnRlcm46ICdJbnRlcm5hbCcsXG4gICAgICB6YWFrdmVydHJvdXdlbGlqazogJ0Nhc2UgY29uZmlkZW50aWFsJyxcbiAgICAgIHZlcnRyb3V3ZWxpams6ICdQcml2YXRlJyxcbiAgICAgIGNvbmZpZGVudGllZWw6ICdDb25maWRlbnRpYWwnLFxuICAgICAgZ2VoZWltOiAnU2VjcmV0JyxcbiAgICAgIHplZXJfZ2VoZWltOiAnVmVyeSBzZWNyZXQnLFxuICAgICAgbG9jYWxEb2N1bWVudExvY2F0aW9uOiAnTmFtZSBvZiBwcm9jZXNzIHZhcmlhYmxlIHdpdGggZG9jdW1lbnQnLFxuICAgICAgbG9jYWxEb2N1bWVudExvY2F0aW9uVG9vbHRpcDpcbiAgICAgICAgJ0VudGVyIHRoZSBwcm9jZXNzIHZhcmlhYmxlIHRoYXQgcG9pbnRzIHRvIHRoZSBsb2NhdGlvbiB3aGVyZSB0aGUgZG9jdW1lbnQgaXMgc3RvcmVkIGxvY2FsbHknLFxuICAgICAgc3RvcmVkRG9jdW1lbnRVcmw6ICdQcm9jZXNzIHZhcmlhYmxlIG5hbWUgZm9yIHN0b3JpbmcgZG9jdW1lbnQgVVJMJyxcbiAgICAgIHN0b3JlRG9jdW1lbnRVcmxUb29sdGlwOlxuICAgICAgICAnQWZ0ZXIgdGhlIGRvY3VtZW50IGhhcyBiZWVuIHVwbG9hZGVkIHRvIHRoZSBEb2N1bWVudGVuIEFQSSwgdGhlIGFwcGxpY2F0aW9uIHdpbGwgc3RvcmUgdGhlIFVSTCB0byB0aGUgZG9jdW1lbnQgaW4gdGhpcyBwcm9jZXNzIHZhcmlhYmxlLicsXG4gICAgICB0YWFsOiAnTGFuZ3VhZ2UnLFxuICAgICAgc3RhdHVzOiAnU3RhdHVzJyxcbiAgICAgIGluZm9ybWF0aWVvYmplY3R0eXBlOiAnVVJMIHRvIHRoZSBpbmZvcm1hdGlvbm9iamVjdHR5cGUnLFxuICAgICAgaW5mb3JtYXRpZW9iamVjdHR5cGVUb29sdGlwOlxuICAgICAgICAnRW50ZXIgdGhlIGZ1bGwgVVJMIHRvIGFuIGluZm9ybWF0aW9uIG9iamVjdCB0eXBlIG9mIGEgWmFhayBjYXRhbG9nIGluIHRoaXMgZmllbGQuIFNvIHRoaXMgVVJMIG11c3QgZW5kIHdpdGggL2NhdGFsb2dpL2FwaS92MS9pbmZvcm1hdGllb2JqZWN0dHlwZW4ve3V1aWR9JyxcbiAgICAgIG5sZDogJ0R1dGNoJyxcbiAgICAgIGluX2Jld2Vya2luZzogJ0VkaXRpbmcnLFxuICAgICAgdGVyX3Zhc3RzdGVsbGluZzogJ1RvIGJlIGNvbmZpcm1lZCcsXG4gICAgICBkZWZpbml0aWVmOiAnRmluYWwnLFxuICAgICAgZ2VhcmNoaXZlZXJkOiAnQXJjaGl2ZWQnLFxuICAgICAgYXV0aGVudGljYXRpb25QbHVnaW5Db25maWd1cmF0aW9uOiAnQXV0aGVudGljYXRpb24gcGx1Z2luIGNvbmZpZ3VyYXRpb24nLFxuICAgICAgYXV0aGVudGljYXRpb25QbHVnaW5Db25maWd1cmF0aW9uVG9vbHRpcDpcbiAgICAgICAgJ1NlbGVjdCB0aGUgcGx1Z2luIHRoYXQgY2FuIGhhbmRsZSB0aGUgYXV0aGVudGljYXRpb24uIElmIHRoZSBzZWxlY3Rpb24gYm94IHJlbWFpbnMgZW1wdHksIHRoZSBhdXRoZW50aWNhdGlvbiBwbHVnaW4gKGUuZy4gT3BlblphYWspIHdpbGwgaGF2ZSB0byBiZSBjcmVhdGVkIGZpcnN0JyxcbiAgICAgIGFwaVZlcnNpb246ICdEb2N1bWVudGVuIEFQSSB2ZXJzaW9uJyxcbiAgICAgIGFwaVZlcnNpb25Ub29sdGlwOiAnU2VsZWN0IHRoZSB2ZXJzaW9uIG9mIHRoZSBEb2N1bWVudGVuIEFQSScsXG4gICAgICBkb3dubG9hZERvY3VtZW50TWVzc2FnZTpcbiAgICAgICAgJ0Rvd25sb2FkaW5nIGEgZG9jdW1lbnQgZm9ybSB0aGUgRG9jdW1lbnRlbiBBUEkgZG9lcyBub3QgcmVxdWlyZSBhbnkgY29uZmlndXJhdGlvbi4nLFxuICAgICAgcHJvY2Vzc1ZhcmlhYmxlTmFtZTpcbiAgICAgICAgJ1doYXQgaXMgdGhlIG5hbWUgb2YgdGhlIHByb2Nlc3MgdmFyaWFibGUgeW91IHdhbnQgdG8gZG93bmxvYWQgdGhlIGRvY3VtZW50IHRvPycsXG4gICAgfSxcbiAgICBkZToge1xuICAgICAgdGl0bGU6ICdEb2N1bWVudGVuIEFQSScsXG4gICAgICBkZXNjcmlwdGlvbjogJ0FQSSB6dW0gU3BlaWNoZXJuIHVuZCBadWdyZWlmZW4gYXVmIERva3VtZW50ZSB1bmQgenVnZWjDtnJpZ2UgTWV0YWRhdGVuLicsXG4gICAgICAnc3RvcmUtdGVtcC1kb2N1bWVudCc6ICdEb2t1bWVudCBzcGVpY2hlcm4nLFxuICAgICAgJ3N0b3JlLXVwbG9hZGVkLWRvY3VtZW50JzogJ0hvY2hnZWxhZGVuZXMgRG9rdW1lbnQgc3BlaWNoZXJuJyxcbiAgICAgICdzdG9yZS11cGxvYWRlZC1kb2N1bWVudC1pbi1wYXJ0cyc6ICdIb2NoZ2VsYWRlbmVzIERva3VtZW50IGluIFRlaWxlbiBzcGVpY2hlcm4nLFxuICAgICAgJ2Rvd25sb2FkLWRvY3VtZW50JzogJ0Rva3VtZW50IGhlcnVudGVybGFkZW4nLFxuICAgICAgc3RvcmVVcGxvYWRlZERvY3VtZW50TWVzc2FnZTpcbiAgICAgICAgJ0RhcyBTcGVpY2hlcm4gZWluZXMgaG9jaGdlbGFkZW5lbiBEb2t1bWVudHMgZXJmb3JkZXJ0IGtlaW5lIEtvbmZpZ3VyYXRpb24uJyxcbiAgICAgIHN0b3JlVXBsb2FkZWREb2N1bWVudEluUGFydHNNZXNzYWdlOlxuICAgICAgICAnRGFzIFNwZWljaGVybiBlaW5lcyBob2NoZ2VsYWRlbmVuIERva3VtZW50cyBpbiBUZWlsZW4gZXJmb3JkZXJ0IGtlaW5lIEtvbmZpZ3VyYXRpb24uJyxcbiAgICAgIGNvbmZpZ3VyYXRpb25UaXRsZTogJ0tvbmZpZ3VyYXRpb25zbmFtZScsXG4gICAgICBjb25maWd1cmF0aW9uVGl0bGVUb29sdGlwOlxuICAgICAgICAnSGllciBrw7ZubmVuIFNpZSBlaW5lbiBOYW1lbiBmw7xyIGRhcyBQbHVnaW4gZWluZ2ViZW4uIERpZXNlciBOYW1lIHdpcmQgdmVyd2VuZGV0LCB1bSBkYXMgUGx1Z2luIGltIFJlc3QgZGVyIEFud2VuZHVuZyB6dSBlcmtlbm5lbicsXG4gICAgICB1cmw6ICdEb2N1bWVudGVuIEFQSSBVUkwnLFxuICAgICAgdXJsVG9vbHRpcDpcbiAgICAgICAgJ0RpZXNlcyBGZWxkIG11c3MgZGllIFVSTCB6dXIgUkVTVCBBUEkgdm9uIERvY3VtZW50ZW4gZW50aGFsdGVuLCBkYWhlciBzb2xsdGUgZGllc2UgVVJMIG1pdCBlbmRlbiAvZG9jdW1lbnRlbi9hcGkvdjEvJyxcbiAgICAgIGJyb25vcmdhbmlzYXRpZTogJ09yZ2FuaXNhdGlvbiBSU0lOJyxcbiAgICAgIGJyb25vcmdhbmlzYXRpZVRvb2x0aXA6XG4gICAgICAgICdHZWJlbiBTaWUgaGllciBkZW4gUkFJTiBkZXIgZsO8ciBkaWUgRG9rdW1lbnRlIHZlcmFudHdvcnRsaWNoZW4gT3JnYW5pc2F0aW9uIGVpbi4gRGVyIFJBSU4gaXN0IGVpbmUgbmllZGVybMOkbmRpc2NoZSBJZGVudGlmaWthdGlvbnNudW1tZXIgZsO8ciBqdXJpc3Rpc2NoZSBQZXJzb25lbiB1bmQgUGVyc29uZW5nZXNlbGxzY2hhZnRlbicsXG4gICAgICBmaWxlTmFtZTogJ0RhdGVpbmFtZScsXG4gICAgICBmaWxlTmFtZVRvb2x0aXA6XG4gICAgICAgICdEZXIgTmFtZSBkZXIgcGh5c2lzY2hlbiBEYXRlaSwgaW4gZGVyIGRlciBJbmhhbHQgZGVzIERva3VtZW50cyBlcmZhc3N0IHdpcmQsIGVpbnNjaGxpZcOfbGljaCBFcndlaXRlcnVuZycsXG4gICAgICBjb25maWRlbnRpYWxpdHlMZXZlbDogJ1ZlcnRyYXVsaWNoa2VpdHNoaW53ZWlzJyxcbiAgICAgIGNvbmZpZGVudGlhbGl0eUxldmVsVG9vbHRpcDpcbiAgICAgICAgJ0FuZ2FiZSwgaW53aWV3ZWl0IGRhcyBEb2t1bWVudCBmw7xyIGRpZSDDlmZmZW50bGljaGtlaXQgYmVzdGltbXQgaXN0JyxcbiAgICAgIGlucHV0VGl0bGU6ICdUaXRlbCcsXG4gICAgICBpbnB1dFRpdGxlVG9vbHRpcDogJ0RlciBOYW1lLCB1bnRlciBkZW0gZGFzIERva3VtZW50IG9mZml6aWVsbCBiZWthbm50IGlzdCcsXG4gICAgICBpbnB1dERlc2NyaXB0aW9uOiAnQmVzY2hyZWlidW5nJyxcbiAgICAgIGlucHV0RGVzY3JpcHRpb25Ub29sdGlwOiAnRWluZSBhbGxnZW1laW5lIEJlc2NocmVpYnVuZyBkZXMgSW5oYWx0cyBkZXMgRG9rdW1lbnRzJyxcbiAgICAgIG9wZW5iYWFyOiAnw5ZmZmVudGxpY2hrZWl0JyxcbiAgICAgIGJlcGVya3Rfb3BlbmJhYXI6ICdFaW5nZXNjaHLDpG5rdF/DtmZmZW50bGljaCcsXG4gICAgICBpbnRlcm46ICdJbnRlcm4nLFxuICAgICAgemFha3ZlcnRyb3V3ZWxpams6ICdHZXNjaMOkZnRsaWNoIHZlcnRyYXVsaWNoJyxcbiAgICAgIHZlcnRyb3V3ZWxpams6ICdWZXJ0cmF1bGljaCcsXG4gICAgICBjb25maWRlbnRpZWVsOiAnR2VoZWltJyxcbiAgICAgIGdlaGVpbTogJ0dlaGVpbW5pcycsXG4gICAgICB6ZWVyX2dlaGVpbTogJ1NlaHIgZ2VoZWltJyxcbiAgICAgIGxvY2FsRG9jdW1lbnRMb2NhdGlvbjogJ05hbWUgUHJvemVzc3ZhcmlhYmxlIG1pdCBEb2t1bWVudCcsXG4gICAgICBsb2NhbERvY3VtZW50TG9jYXRpb25Ub29sdGlwOlxuICAgICAgICAnR2ViZW4gU2llIGRpZSBQcm96ZXNzdmFyaWFibGUgZWluLCBkaWUgYXVmIGRlbiBPcnQgemVpZ3QsIGFuIGRlbSBkYXMgRG9rdW1lbnQgbG9rYWwgZ2VzcGVpY2hlcnQgaXN0JyxcbiAgICAgIHN0b3JlZERvY3VtZW50VXJsOiAnTmFtZSBkZXIgUHJvemVzc3ZhcmlhYmxlbiB6dW0gU3BlaWNoZXJuIGRlciBEb2t1bWVudC1VUkwnLFxuICAgICAgc3RvcmVEb2N1bWVudFVybFRvb2x0aXA6XG4gICAgICAgICdOYWNoZGVtIGRhcyBEb2t1bWVudCBpbiBkaWUgRG9rdW1lbnRlbi1BUEkgaG9jaGdlbGFkZW4gd3VyZGUsIHNwZWljaGVydCBkaWUgQW53ZW5kdW5nIGRpZSBVUkwgenVtIERva3VtZW50IGluIGRpZXNlciBQcm96ZXNzdmFyaWFibGVuLicsXG4gICAgICB0YWFsOiAnU3ByYWNoZScsXG4gICAgICBzdGF0dXM6ICdTdGF0dXMnLFxuICAgICAgaW5mb3JtYXRpZW9iamVjdHR5cGU6ICdVUkwgenVtIEluZm9ybWF0aW9uc29iamVrdHR5cCcsXG4gICAgICBpbmZvcm1hdGllb2JqZWN0dHlwZVRvb2x0aXA6XG4gICAgICAgICdHZWJlbiBTaWUgaW4gZGllc2VtIEZlbGQgZGllIHZvbGxzdMOkbmRpZ2UgVVJMIHp1IGVpbmVtIEluZm9ybWF0aW9uc29iamVrdHR5cCBlaW5lcyBDYXNlIEthdGFsb2dzLiBEaWVzZSBVUkwgbXVzcyBkYWhlciBtaXQgZW5kZW4gL2NhdGFsb2dpL2FwaS92MS9pbmZvcm1hdGllb2JqZWN0dHlwZW4ve3V1aWR9JyxcbiAgICAgIG5sZDogJ05pZWRlcmzDpG5kaXNjaCcsXG4gICAgICBpbl9iZXdlcmtpbmc6ICdJbiBCZWFyYmVpdHVuZycsXG4gICAgICB0ZXJfdmFzdHN0ZWxsaW5nOiAnWnUgYmVzdGltbWVuJyxcbiAgICAgIGRlZmluaXRpZWY6ICdFbmRnw7xsdGlnJyxcbiAgICAgIGdlYXJjaGl2ZWVyZDogJ0FyY2hpdmllcnQnLFxuICAgICAgYXV0aGVudGljYXRpb25QbHVnaW5Db25maWd1cmF0aW9uOiAnQXV0aGVudGlmaXppZXJ1bmdzLVBsdWdpbi1Lb25maWd1cmF0aW9uJyxcbiAgICAgIGF1dGhlbnRpY2F0aW9uUGx1Z2luQ29uZmlndXJhdGlvblRvb2x0aXA6XG4gICAgICAgICdXw6RobGVuIFNpZSBkYXMgUGx1Z2luIGF1cywgZGFzIGRpZSBBdXRoZW50aWZpemllcnVuZyB2ZXJhcmJlaXRlbiBrYW5uLiBCbGVpYnQgZGFzIEF1c3dhaGxmZWxkIGxlZXIsIG11c3MgenVuw6RjaHN0IGRhcyBBdXRoZW50aWZpemllcnVuZ3MtUGx1Z2luICh6LiBCLiBPcGVuWmFhaykgZXJzdGVsbHQgd2VyZGVuJyxcbiAgICAgIGFwaVZlcnNpb246ICdEb2N1bWVudGVuLUFQSS1WZXJzaW9uJyxcbiAgICAgIGFwaVZlcnNpb25Ub29sdGlwOiAnV8OkaGxlbiBTaWUgZGllIFZlcnNpb24gZGVyIERvY3VtZW50ZW4tQVBJIGF1cycsXG4gICAgICBkb3dubG9hZERvY3VtZW50TWVzc2FnZTpcbiAgICAgICAgJ0RhcyBIZXJ1bnRlcmxhZGVuIGVpbmVzIERva3VtZW50cyBhdXMgZGVyIERvY3VtZW50ZW4tQVBJIGVyZm9yZGVydCBrZWluZSBLb25maWd1cmF0aW9uLicsXG4gICAgICBwcm9jZXNzVmFyaWFibGVOYW1lOlxuICAgICAgICAnV2llIGxhdXRldCBkZXIgTmFtZSBkZXIgUHJvemVzc3ZhcmlhYmxlbiwgaW4gZGllIFNpZSBkYXMgRG9rdW1lbnQgaGVydW50ZXJsYWRlbiBtw7ZjaHRlbj8nLFxuICAgIH0sXG4gIH0sXG59O1xuXG5leHBvcnQge2RvY3VtZW50ZW5BcGlQbHVnaW5TcGVjaWZpY2F0aW9ufTtcbiJdfQ==
@@ -13,26 +13,28 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import { Component, EventEmitter, Input, Output } from '@angular/core';
16
+ import { Component, EventEmitter, Input, Output, ViewChildren, } from '@angular/core';
17
17
  import { BehaviorSubject, combineLatest, filter, map, of, take, tap, } from 'rxjs';
18
+ import { VModalComponent, } from '@valtimo/components';
18
19
  import * as i0 from "@angular/core";
19
20
  import * as i1 from "../../../../services";
20
21
  import * as i2 from "@ngx-translate/core";
21
22
  import * as i3 from "../../services";
22
23
  import * as i4 from "@valtimo/process";
23
24
  import * as i5 from "@valtimo/document";
24
- import * as i6 from "@angular/common";
25
- import * as i7 from "@valtimo/components";
25
+ import * as i6 from "@valtimo/components";
26
+ import * as i7 from "@angular/common";
26
27
  import * as i8 from "carbon-components-angular";
27
28
  import * as i9 from "../../../../pipes/plugin-translate/plugin-translate.pipe";
28
29
  export class VerzoekConfigurationComponent {
29
- constructor(pluginManagementService, translateService, pluginTranslationService, verzoekPluginService, processService, documentService) {
30
+ constructor(pluginManagementService, translateService, pluginTranslationService, verzoekPluginService, processService, documentService, modalService) {
30
31
  this.pluginManagementService = pluginManagementService;
31
32
  this.translateService = translateService;
32
33
  this.pluginTranslationService = pluginTranslationService;
33
34
  this.verzoekPluginService = verzoekPluginService;
34
35
  this.processService = processService;
35
36
  this.documentService = documentService;
37
+ this.modalService = modalService;
36
38
  this.valid = new EventEmitter();
37
39
  this.configuration = new EventEmitter();
38
40
  this.notificatiePluginSelectItems$ = combineLatest([
@@ -67,7 +69,6 @@ export class VerzoekConfigurationComponent {
67
69
  }))));
68
70
  this.rolTypeSelectItemsObservables = {};
69
71
  this.showMappingButtons = {};
70
- this.showMappingModals = {};
71
72
  this.showMappingModalsDelay = {};
72
73
  this.tempMappings = {};
73
74
  this.mappings = {};
@@ -111,11 +112,11 @@ export class VerzoekConfigurationComponent {
111
112
  delete this.rolTypeSelectItemsObservables[uuid];
112
113
  }
113
114
  openMappingModal(uuid) {
114
- this.showMappingModals[uuid] = true;
115
115
  this.showMappingModalsDelay[uuid] = true;
116
+ this.modalService.openModal(this.mappingModals.find(mappingModal => mappingModal.parentId === uuid));
116
117
  }
117
118
  closeMappingModal(uuid) {
118
- this.showMappingModals[uuid] = false;
119
+ this.modalService.closeModal();
119
120
  setTimeout(() => {
120
121
  this.showMappingModalsDelay[uuid] = false;
121
122
  }, 250);
@@ -190,29 +191,29 @@ export class VerzoekConfigurationComponent {
190
191
  })), tap(prefill => {
191
192
  setTimeout(() => {
192
193
  this.formValue$.pipe(take(1)).subscribe(formValue => {
193
- if (!this.mappingSet) {
194
- const prefillVerzoeken = prefill?.verzoekProperties;
195
- const formValueVerzoeken = formValue?.verzoekProperties;
196
- prefillVerzoeken.forEach((verzoek, index) => {
197
- const mappingForVerzoek = verzoek?.mapping;
198
- const uuidForMapping = formValueVerzoeken[index].uuid;
199
- if (mappingForVerzoek && uuidForMapping) {
200
- this.mappings[uuidForMapping] = mappingForVerzoek;
201
- }
202
- });
203
- this.mappingSet = true;
204
- }
194
+ const prefillVerzoeken = prefill?.verzoekProperties;
195
+ const formValueVerzoeken = formValue?.verzoekProperties;
196
+ prefillVerzoeken.forEach((verzoek, index) => {
197
+ const mappingForVerzoek = verzoek?.mapping;
198
+ const uuidForMapping = formValueVerzoeken[index].uuid;
199
+ if (mappingForVerzoek && uuidForMapping) {
200
+ this.mappings[uuidForMapping] = mappingForVerzoek;
201
+ }
202
+ });
205
203
  });
206
204
  }, 250);
207
205
  }));
208
206
  }
209
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: VerzoekConfigurationComponent, deps: [{ token: i1.PluginManagementService }, { token: i2.TranslateService }, { token: i1.PluginTranslationService }, { token: i3.VerzoekPluginService }, { token: i4.ProcessService }, { token: i5.DocumentService }], target: i0.ɵɵFactoryTarget.Component }); }
210
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: VerzoekConfigurationComponent, selector: "valtimo-verzoek-configuration", inputs: { save$: "save$", disabled$: "disabled$", pluginId: "pluginId", prefillConfiguration$: "prefillConfiguration$" }, outputs: { valid: "valid", configuration: "configuration" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<v-form\n (valueChange)=\"formValueChange($event)\"\n *ngIf=\"{\n disabled: disabled$ | async,\n prefill: mappedPrefill$ ? (mappedPrefill$ | async) : null,\n } as obs\"\n>\n <v-input\n name=\"configurationTitle\"\n [title]=\"'configurationTitle' | pluginTranslate: pluginId | async\"\n [margin]=\"true\"\n [disabled]=\"obs.disabled\"\n [defaultValue]=\"obs.prefill?.configurationTitle\"\n [required]=\"true\"\n [tooltip]=\"'configurationTitleTooltip' | pluginTranslate: pluginId | async\"\n placeholder=\"Verzoek Plugin\"\n >\n </v-input>\n <ng-container\n *ngIf=\"{notificatiePluginSelectItems: notificatiePluginSelectItems$ | async} as vars\"\n >\n <v-select\n [items]=\"vars.notificatiePluginSelectItems\"\n [margin]=\"true\"\n name=\"notificatiesApiPluginConfiguration\"\n [title]=\"'notificatiesApiPluginConfiguration' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled\"\n [defaultSelectionId]=\"obs.prefill?.notificatiesApiPluginConfiguration\"\n [required]=\"true\"\n [loading]=\"!vars.notificatiePluginSelectItems\"\n [tooltip]=\"'notificatiesApiPluginConfigurationTooltip' | pluginTranslate: pluginId | async\"\n ></v-select>\n </ng-container>\n <ng-container *ngIf=\"{processSelectItems: processSelectItems$ | async} as vars\">\n <v-select\n [items]=\"vars.processSelectItems\"\n [margin]=\"true\"\n name=\"processToStart\"\n [title]=\"'processToStart' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled\"\n [defaultSelectionId]=\"obs.prefill?.processToStart\"\n [required]=\"true\"\n [loading]=\"!vars.processSelectItems\"\n [tooltip]=\"'processToStartTooltip' | pluginTranslate: pluginId | async\"\n ></v-select>\n </ng-container>\n <v-input\n name=\"rsin\"\n [title]=\"'rsin' | pluginTranslate: pluginId | async\"\n [margin]=\"true\"\n [disabled]=\"obs.disabled\"\n [defaultValue]=\"obs.prefill?.rsin\"\n [required]=\"true\"\n [tooltip]=\"'rsinTooltip' | pluginTranslate: pluginId | async\"\n placeholder=\"\"\n >\n </v-input>\n <v-multi-input-form\n name=\"verzoekProperties\"\n [title]=\"'verzoekProperties' | pluginTranslate: pluginId | async\"\n [formTemplate]=\"mappingForm\"\n [addRowText]=\"'addVerzoekType' | pluginTranslate: pluginId | async\"\n [required]=\"false\"\n [tooltip]=\"'verzoekPropertiesTooltip' | pluginTranslate: pluginId | async\"\n (deleteRowEvent)=\"deleteRow($event)\"\n [initialAmountOfRows]=\"0\"\n [minimumAmountOfRows]=\"0\"\n [defaultValues]=\"obs.prefill?.verzoekProperties\"\n >\n </v-multi-input-form>\n</v-form>\n\n<ng-template\n #mappingForm\n let-index=\"index\"\n let-uuid=\"uuid\"\n let-changeFunction=\"changeFunction\"\n let-prefill=\"prefill\"\n>\n <ng-container\n *ngIf=\"{\n disabled: disabled$ | async,\n } as obs\"\n >\n <v-form (valueChange)=\"changeFunction($event, uuid); verzoekTypeFormChange($event, uuid)\">\n <v-input\n name=\"type\"\n [title]=\"'type' | pluginTranslate: pluginId | async\"\n [margin]=\"false\"\n [disabled]=\"obs.disabled\"\n [defaultValue]=\"prefill?.type\"\n [required]=\"true\"\n [tooltip]=\"'typeTooltip' | pluginTranslate: pluginId | async\"\n [smallMargin]=\"true\"\n placeholder=\"\"\n >\n </v-input>\n <ng-container *ngIf=\"{documentSelectItems: documentSelectItems$ | async} as vars\">\n <v-select\n [items]=\"vars.documentSelectItems\"\n [smallMargin]=\"true\"\n name=\"caseDefinitionName\"\n [title]=\"'caseDefinitionName' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled\"\n [defaultSelectionId]=\"prefill?.caseDefinitionName\"\n [required]=\"true\"\n [loading]=\"!vars.documentSelectItems\"\n [tooltip]=\"'caseDefinitionNameTooltip' | pluginTranslate: pluginId | async\"\n ></v-select>\n </ng-container>\n <ng-container\n *ngIf=\"{objectManagementSelectItems: objectManagementSelectItems$ | async} as vars\"\n >\n <v-select\n [items]=\"vars.objectManagementSelectItems\"\n [smallMargin]=\"true\"\n name=\"objectManagementId\"\n [title]=\"'objectManagementId' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled\"\n [defaultSelectionId]=\"prefill?.objectManagementId\"\n [required]=\"true\"\n [loading]=\"!vars.objectManagementSelectItems\"\n [tooltip]=\"'objectManagementIdTooltip' | pluginTranslate: pluginId | async\"\n ></v-select>\n </ng-container>\n <v-select\n [items]=\"\n rolTypeSelectItemsObservables[uuid]?.caseDefinitionName &&\n (rolTypeSelectItemsObservables[uuid].items | async)\n \"\n [smallMargin]=\"true\"\n name=\"initiatorRoltypeUrl\"\n [title]=\"'initiatorRoltypeUrl' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled || !rolTypeSelectItemsObservables[uuid]?.caseDefinitionName\"\n [defaultSelectionId]=\"prefill?.initiatorRoltypeUrl\"\n [required]=\"true\"\n [tooltip]=\"'initiatorRoltypeUrlTooltip' | pluginTranslate: pluginId | async\"\n ></v-select>\n <v-input\n name=\"initiatorRolDescription\"\n [title]=\"'initiatorRolDescription' | pluginTranslate: pluginId | async\"\n [margin]=\"false\"\n [disabled]=\"obs.disabled\"\n [defaultValue]=\"prefill?.initiatorRolDescription || 'Initiator'\"\n [required]=\"true\"\n [tooltip]=\"'initiatorRolDescriptionTooltip' | pluginTranslate: pluginId | async\"\n [smallMargin]=\"true\"\n placeholder=\"\"\n >\n </v-input>\n <ng-container *ngIf=\"{processSelectItems: processSelectItems$ | async} as vars\">\n <v-select\n [items]=\"vars.processSelectItems\"\n [smallMargin]=\"true\"\n name=\"processDefinitionKey\"\n [title]=\"'processDefinitionKey' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled\"\n [defaultSelectionId]=\"prefill?.processDefinitionKey\"\n [required]=\"true\"\n [loading]=\"!vars.processSelectItems\"\n [tooltip]=\"'processDefinitionKeyTooltip' | pluginTranslate: pluginId | async\"\n ></v-select>\n </ng-container>\n <v-radio\n name=\"copyStrategy\"\n [disabled]=\"obs.disabled\"\n [title]=\"'copyStrategy' | pluginTranslate: pluginId | async\"\n [tooltip]=\"'copyStrategyTooltip' | pluginTranslate: pluginId | async\"\n [radioValues]=\"radioItems$ | async\"\n [smallMargin]=\"true\"\n [defaultValue]=\"prefill?.copyStrategy || 'full'\"\n >\n </v-radio>\n <ng-container *ngIf=\"showMappingButtons[uuid]\">\n <v-input-label\n [title]=\"'mapping' | pluginTranslate: pluginId | async\"\n [tooltip]=\"'mappingTooltip' | pluginTranslate: pluginId | async\"\n >\n </v-input-label>\n <v-button (clickEvent)=\"openMappingModal(uuid)\" mdiIcon=\"table\"\n >{{ 'setMapping' | pluginTranslate: pluginId | async }}\n </v-button>\n </ng-container>\n <v-input class=\"hidden-input\" name=\"uuid\" [defaultValue]=\"uuid\"> </v-input>\n </v-form>\n <cds-modal cdsModal [open]=\"showMappingModals[uuid]\">\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeMappingModal(uuid)\">\n <h3 cdsModalHeaderHeading>{{ 'setMapping' | pluginTranslate: pluginId | async }}</h3>\n </cds-modal-header>\n <section cdsModalContent>\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label [disabled]=\"obs.disabled\">\n <span class=\"label-with-tooltip select-label\">\n {{ 'mapping' | pluginTranslate: pluginId | async }}\n <v-tooltip-icon\n [tooltip]=\"'mappingTooltip' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled\"\n ></v-tooltip-icon>\n </span>\n </cds-label>\n <valtimo-carbon-multi-input\n *ngIf=\"showMappingModalsDelay[uuid]\"\n type=\"keyValue\"\n (valueChange)=\"mappingValueChange($event, uuid)\"\n [defaultValues]=\"mappings[uuid] || prefill?.mapping\"\n [valueColumnTitle]=\"'target' | pluginTranslate: pluginId | async\"\n [keyColumnTitle]=\"'source' | pluginTranslate: pluginId | async\"\n [fullWidth]=\"true\"\n ></valtimo-carbon-multi-input>\n </div>\n </section>\n <cds-modal-footer>\n <ng-container>\n <button\n cdsButton=\"secondary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"closeMappingModal(uuid)\"\n [disabled]=\"obs.disabled\"\n >\n {{ 'close' | pluginTranslate: pluginId | async }}\n </button>\n <button\n cdsButton=\"primary\"\n [attr.modal-primary-focus]=\"true\"\n [disabled]=\"obs.disabled\"\n (click)=\"saveMapping(uuid)\"\n [disabled]=\"obs.disabled\"\n >\n {{ 'save' | pluginTranslate: pluginId | async }}\n </button>\n </ng-container>\n </cds-modal-footer>\n </cds-modal>\n </ng-container>\n</ng-template>\n", styles: [".label-with-tooltip{display:flex;align-items:center}.select-label{padding-bottom:.5rem;width:250px}.hidden-input{display:none}.cds--text-input__field-wrapper{flex-direction:column}::ng-deep .cds--modal-container{transform:none!important}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.FormComponent, selector: "v-form", inputs: ["className"], outputs: ["valueChange"] }, { kind: "component", type: i7.InputComponent, selector: "v-input", inputs: ["name", "type", "title", "titleTranslationKey", "defaultValue", "widthPx", "fullWidth", "margin", "smallMargin", "disabled", "step", "min", "maxLength", "tooltip", "required", "hideNumberSpinBox", "smallLabel", "rows", "clear$", "carbonTheme", "placeholder", "dataTestId"], outputs: ["valueChange"] }, { kind: "component", type: i7.SelectComponent, selector: "v-select", inputs: ["items", "defaultSelection", "defaultSelectionId", "defaultSelectionIds", "disabled", "dropUp", "multiple", "margin", "widthInPx", "notFoundText", "clearAllText", "clearText", "name", "title", "titleTranslationKey", "clearSelectionSubject$", "tooltip", "required", "loading", "loadingText", "placeholder", "smallMargin", "carbonTheme", "appendInline", "dataTestId"], outputs: ["selectedChange"] }, { kind: "component", type: i7.MultiInputFormComponent, selector: "v-multi-input-form", inputs: ["name", "title", "titleTranslationKey", "type", "initialAmountOfRows", "minimumAmountOfRows", "maxRows", "addRowText", "addRowTranslationKey", "deleteRowText", "deleteRowTranslationKey", "disabled", "defaultValues", "margin", "tooltip", "required", "formTemplate"], outputs: ["valueChange", "deleteRowEvent"] }, { kind: "component", type: i7.RadioComponent, selector: "v-radio", inputs: ["name", "title", "titleTranslationKey", "defaultValue", "widthPx", "fullWidth", "margin", "smallMargin", "disabled", "tooltip", "required", "smallLabel", "rows", "clear$", "radioValues"], outputs: ["valueChange"] }, { kind: "component", type: i7.InputLabelComponent, selector: "v-input-label", inputs: ["name", "tooltip", "largeMargin", "small", "noMargin", "title", "titleTranslationKey", "required", "disabled", "carbonTheme"] }, { kind: "component", type: i7.ButtonComponent, selector: "v-button", inputs: ["type", "mdiIcon", "disabled", "title", "titleTranslationKey"], outputs: ["clickEvent"] }, { kind: "component", type: i8.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i8.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i8.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i8.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i8.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "component", type: i8.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "component", type: i7.TooltipIconComponent, selector: "v-tooltip-icon", inputs: ["tooltip", "disabled"] }, { kind: "component", type: i7.CarbonMultiInputComponent, selector: "valtimo-carbon-multi-input", inputs: ["name", "title", "titleTranslationKey", "type", "arbitraryValueAmount", "arbitraryAmountTitles", "initialAmountOfRows", "minimumAmountOfRows", "maxRows", "addRowText", "addRowTranslationKey", "deleteRowText", "deleteRowTranslationKey", "disabled", "defaultValues", "margin", "tooltip", "required", "keyColumnTitle", "valueColumnTitle", "dropdownColumnTitle", "hideDeleteButton", "hideAddButton", "dropdownItems", "dropdownWidth", "fullWidth", "carbonTheme"], outputs: ["valueChange", "allValuesValidEvent"] }, { kind: "directive", type: i8.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i9.PluginTranslatePipe, name: "pluginTranslate" }] }); }
207
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: VerzoekConfigurationComponent, deps: [{ token: i1.PluginManagementService }, { token: i2.TranslateService }, { token: i1.PluginTranslationService }, { token: i3.VerzoekPluginService }, { token: i4.ProcessService }, { token: i5.DocumentService }, { token: i6.ModalService }], target: i0.ɵɵFactoryTarget.Component }); }
208
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: VerzoekConfigurationComponent, selector: "valtimo-verzoek-configuration", inputs: { save$: "save$", disabled$: "disabled$", pluginId: "pluginId", prefillConfiguration$: "prefillConfiguration$" }, outputs: { valid: "valid", configuration: "configuration" }, viewQueries: [{ propertyName: "mappingModals", predicate: VModalComponent, descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<v-form\n (valueChange)=\"formValueChange($event)\"\n *ngIf=\"{\n disabled: disabled$ | async,\n prefill: mappedPrefill$ ? (mappedPrefill$ | async) : null,\n } as obs\"\n>\n <v-input\n name=\"configurationTitle\"\n [title]=\"'configurationTitle' | pluginTranslate: pluginId | async\"\n [margin]=\"true\"\n [disabled]=\"obs.disabled\"\n [defaultValue]=\"obs.prefill?.configurationTitle\"\n [required]=\"true\"\n [tooltip]=\"'configurationTitleTooltip' | pluginTranslate: pluginId | async\"\n placeholder=\"Verzoek Plugin\"\n >\n </v-input>\n <ng-container\n *ngIf=\"{notificatiePluginSelectItems: notificatiePluginSelectItems$ | async} as vars\"\n >\n <v-select\n [items]=\"vars.notificatiePluginSelectItems\"\n [margin]=\"true\"\n name=\"notificatiesApiPluginConfiguration\"\n [title]=\"'notificatiesApiPluginConfiguration' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled\"\n [defaultSelectionId]=\"obs.prefill?.notificatiesApiPluginConfiguration\"\n [required]=\"true\"\n [loading]=\"!vars.notificatiePluginSelectItems\"\n [tooltip]=\"'notificatiesApiPluginConfigurationTooltip' | pluginTranslate: pluginId | async\"\n ></v-select>\n </ng-container>\n <ng-container *ngIf=\"{processSelectItems: processSelectItems$ | async} as vars\">\n <v-select\n [items]=\"vars.processSelectItems\"\n [margin]=\"true\"\n name=\"processToStart\"\n [title]=\"'processToStart' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled\"\n [defaultSelectionId]=\"obs.prefill?.processToStart\"\n [required]=\"true\"\n [loading]=\"!vars.processSelectItems\"\n [tooltip]=\"'processToStartTooltip' | pluginTranslate: pluginId | async\"\n ></v-select>\n </ng-container>\n <v-input\n name=\"rsin\"\n [title]=\"'rsin' | pluginTranslate: pluginId | async\"\n [margin]=\"true\"\n [disabled]=\"obs.disabled\"\n [defaultValue]=\"obs.prefill?.rsin\"\n [required]=\"true\"\n [tooltip]=\"'rsinTooltip' | pluginTranslate: pluginId | async\"\n placeholder=\"\"\n >\n </v-input>\n <v-multi-input-form\n name=\"verzoekProperties\"\n [title]=\"'verzoekProperties' | pluginTranslate: pluginId | async\"\n [formTemplate]=\"mappingForm\"\n [addRowText]=\"'addVerzoekType' | pluginTranslate: pluginId | async\"\n [required]=\"false\"\n [tooltip]=\"'verzoekPropertiesTooltip' | pluginTranslate: pluginId | async\"\n (deleteRowEvent)=\"deleteRow($event)\"\n [initialAmountOfRows]=\"0\"\n [minimumAmountOfRows]=\"0\"\n [defaultValues]=\"obs.prefill?.verzoekProperties\"\n >\n </v-multi-input-form>\n</v-form>\n\n<ng-template\n #mappingForm\n let-index=\"index\"\n let-uuid=\"uuid\"\n let-changeFunction=\"changeFunction\"\n let-prefill=\"prefill\"\n>\n <ng-container\n *ngIf=\"{\n disabled: disabled$ | async,\n } as obs\"\n >\n <v-form (valueChange)=\"changeFunction($event, uuid); verzoekTypeFormChange($event, uuid)\">\n <v-input\n name=\"type\"\n [title]=\"'type' | pluginTranslate: pluginId | async\"\n [margin]=\"false\"\n [disabled]=\"obs.disabled\"\n [defaultValue]=\"prefill?.type\"\n [required]=\"true\"\n [tooltip]=\"'typeTooltip' | pluginTranslate: pluginId | async\"\n [smallMargin]=\"true\"\n placeholder=\"\"\n >\n </v-input>\n <ng-container *ngIf=\"{documentSelectItems: documentSelectItems$ | async} as vars\">\n <v-select\n [items]=\"vars.documentSelectItems\"\n [smallMargin]=\"true\"\n name=\"caseDefinitionName\"\n [title]=\"'caseDefinitionName' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled\"\n [defaultSelectionId]=\"prefill?.caseDefinitionName\"\n [required]=\"true\"\n [loading]=\"!vars.documentSelectItems\"\n [tooltip]=\"'caseDefinitionNameTooltip' | pluginTranslate: pluginId | async\"\n ></v-select>\n </ng-container>\n <ng-container\n *ngIf=\"{objectManagementSelectItems: objectManagementSelectItems$ | async} as vars\"\n >\n <v-select\n [items]=\"vars.objectManagementSelectItems\"\n [smallMargin]=\"true\"\n name=\"objectManagementId\"\n [title]=\"'objectManagementId' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled\"\n [defaultSelectionId]=\"prefill?.objectManagementId\"\n [required]=\"true\"\n [loading]=\"!vars.objectManagementSelectItems\"\n [tooltip]=\"'objectManagementIdTooltip' | pluginTranslate: pluginId | async\"\n ></v-select>\n </ng-container>\n <v-select\n [items]=\"\n rolTypeSelectItemsObservables[uuid]?.caseDefinitionName &&\n (rolTypeSelectItemsObservables[uuid].items | async)\n \"\n [smallMargin]=\"true\"\n name=\"initiatorRoltypeUrl\"\n [title]=\"'initiatorRoltypeUrl' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled || !rolTypeSelectItemsObservables[uuid]?.caseDefinitionName\"\n [defaultSelectionId]=\"prefill?.initiatorRoltypeUrl\"\n [required]=\"true\"\n [tooltip]=\"'initiatorRoltypeUrlTooltip' | pluginTranslate: pluginId | async\"\n ></v-select>\n <v-input\n name=\"initiatorRolDescription\"\n [title]=\"'initiatorRolDescription' | pluginTranslate: pluginId | async\"\n [margin]=\"false\"\n [disabled]=\"obs.disabled\"\n [defaultValue]=\"prefill?.initiatorRolDescription || 'Initiator'\"\n [required]=\"true\"\n [tooltip]=\"'initiatorRolDescriptionTooltip' | pluginTranslate: pluginId | async\"\n [smallMargin]=\"true\"\n placeholder=\"\"\n >\n </v-input>\n <ng-container *ngIf=\"{processSelectItems: processSelectItems$ | async} as vars\">\n <v-select\n [items]=\"vars.processSelectItems\"\n [smallMargin]=\"true\"\n name=\"processDefinitionKey\"\n [title]=\"'processDefinitionKey' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled\"\n [defaultSelectionId]=\"prefill?.processDefinitionKey\"\n [required]=\"true\"\n [loading]=\"!vars.processSelectItems\"\n [tooltip]=\"'processDefinitionKeyTooltip' | pluginTranslate: pluginId | async\"\n ></v-select>\n </ng-container>\n <v-radio\n name=\"copyStrategy\"\n [disabled]=\"obs.disabled\"\n [title]=\"'copyStrategy' | pluginTranslate: pluginId | async\"\n [tooltip]=\"'copyStrategyTooltip' | pluginTranslate: pluginId | async\"\n [radioValues]=\"radioItems$ | async\"\n [smallMargin]=\"true\"\n [defaultValue]=\"prefill?.copyStrategy || 'full'\"\n >\n </v-radio>\n <ng-container *ngIf=\"showMappingButtons[uuid]\">\n <v-input-label\n [title]=\"'mapping' | pluginTranslate: pluginId | async\"\n [tooltip]=\"'mappingTooltip' | pluginTranslate: pluginId | async\"\n >\n </v-input-label>\n <v-button (clickEvent)=\"openMappingModal(uuid)\" mdiIcon=\"table\"\n >{{ 'setMapping' | pluginTranslate: pluginId | async }}\n </v-button>\n </ng-container>\n <v-input class=\"hidden-input\" name=\"uuid\" [defaultValue]=\"uuid\"> </v-input>\n </v-form>\n <v-modal [parentId]=\"uuid\" (closeEvent)=\"closeMappingModal(uuid)\">\n <div role=\"header\">\n <h3 cdsModalHeaderHeading>{{ 'setMapping' | pluginTranslate: pluginId | async }}</h3>\n </div>\n\n <div role=\"content\">\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label [disabled]=\"obs.disabled\">\n <span class=\"label-with-tooltip select-label\">\n {{ 'mapping' | pluginTranslate: pluginId | async }}\n <v-tooltip-icon\n [tooltip]=\"'mappingTooltip' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled\"\n ></v-tooltip-icon>\n </span>\n </cds-label>\n <valtimo-carbon-multi-input\n *ngIf=\"showMappingModalsDelay[uuid]\"\n type=\"keyValue\"\n (valueChange)=\"mappingValueChange($event, uuid)\"\n [defaultValues]=\"mappings[uuid] || prefill?.mapping\"\n [valueColumnTitle]=\"'target' | pluginTranslate: pluginId | async\"\n [keyColumnTitle]=\"'source' | pluginTranslate: pluginId | async\"\n [fullWidth]=\"true\"\n ></valtimo-carbon-multi-input>\n </div>\n </div>\n\n <div role=\"footer\">\n <ng-container>\n <button\n cdsButton=\"secondary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"closeMappingModal(uuid)\"\n [disabled]=\"obs.disabled\"\n >\n {{ 'close' | pluginTranslate: pluginId | async }}\n </button>\n <button\n cdsButton=\"primary\"\n [attr.modal-primary-focus]=\"true\"\n [disabled]=\"obs.disabled\"\n (click)=\"saveMapping(uuid)\"\n [disabled]=\"obs.disabled\"\n >\n {{ 'save' | pluginTranslate: pluginId | async }}\n </button>\n </ng-container>\n </div>\n </v-modal>\n </ng-container>\n</ng-template>\n", styles: [".label-with-tooltip{display:flex;align-items:center}.select-label{padding-bottom:.5rem;width:250px}.hidden-input{display:none}.cds--text-input__field-wrapper{flex-direction:column}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.FormComponent, selector: "v-form", inputs: ["className"], outputs: ["valueChange"] }, { kind: "component", type: i6.InputComponent, selector: "v-input", inputs: ["name", "type", "title", "titleTranslationKey", "defaultValue", "widthPx", "fullWidth", "margin", "smallMargin", "disabled", "step", "min", "maxLength", "tooltip", "required", "hideNumberSpinBox", "smallLabel", "rows", "clear$", "carbonTheme", "placeholder", "dataTestId"], outputs: ["valueChange"] }, { kind: "component", type: i6.SelectComponent, selector: "v-select", inputs: ["items", "defaultSelection", "defaultSelectionId", "defaultSelectionIds", "disabled", "dropUp", "multiple", "margin", "widthInPx", "notFoundText", "clearAllText", "clearText", "name", "title", "titleTranslationKey", "clearSelectionSubject$", "tooltip", "required", "loading", "loadingText", "placeholder", "smallMargin", "carbonTheme", "appendInline", "dataTestId"], outputs: ["selectedChange"] }, { kind: "component", type: i6.MultiInputFormComponent, selector: "v-multi-input-form", inputs: ["name", "title", "titleTranslationKey", "type", "initialAmountOfRows", "minimumAmountOfRows", "maxRows", "addRowText", "addRowTranslationKey", "deleteRowText", "deleteRowTranslationKey", "disabled", "defaultValues", "margin", "tooltip", "required", "formTemplate"], outputs: ["valueChange", "deleteRowEvent"] }, { kind: "component", type: i6.RadioComponent, selector: "v-radio", inputs: ["name", "title", "titleTranslationKey", "defaultValue", "widthPx", "fullWidth", "margin", "smallMargin", "disabled", "tooltip", "required", "smallLabel", "rows", "clear$", "radioValues"], outputs: ["valueChange"] }, { kind: "component", type: i6.InputLabelComponent, selector: "v-input-label", inputs: ["name", "tooltip", "largeMargin", "small", "noMargin", "title", "titleTranslationKey", "required", "disabled", "carbonTheme"] }, { kind: "component", type: i6.ButtonComponent, selector: "v-button", inputs: ["type", "mdiIcon", "disabled", "title", "titleTranslationKey"], outputs: ["clickEvent"] }, { kind: "directive", type: i8.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "component", type: i8.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "component", type: i6.TooltipIconComponent, selector: "v-tooltip-icon", inputs: ["tooltip", "disabled"] }, { kind: "component", type: i6.CarbonMultiInputComponent, selector: "valtimo-carbon-multi-input", inputs: ["name", "title", "titleTranslationKey", "type", "arbitraryValueAmount", "arbitraryAmountTitles", "initialAmountOfRows", "minimumAmountOfRows", "maxRows", "addRowText", "addRowTranslationKey", "deleteRowText", "deleteRowTranslationKey", "disabled", "defaultValues", "margin", "tooltip", "required", "keyColumnTitle", "valueColumnTitle", "dropdownColumnTitle", "hideDeleteButton", "hideAddButton", "dropdownItems", "dropdownWidth", "fullWidth", "carbonTheme"], outputs: ["valueChange", "allValuesValidEvent"] }, { kind: "directive", type: i8.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "component", type: i6.VModalComponent, selector: "v-modal", inputs: ["appearingDelayMs", "maxWidthPx", "hideFooter", "parentId"], outputs: ["closeEvent"] }, { kind: "pipe", type: i7.AsyncPipe, name: "async" }, { kind: "pipe", type: i9.PluginTranslatePipe, name: "pluginTranslate" }] }); }
211
209
  }
212
210
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: VerzoekConfigurationComponent, decorators: [{
213
211
  type: Component,
214
- args: [{ selector: 'valtimo-verzoek-configuration', template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<v-form\n (valueChange)=\"formValueChange($event)\"\n *ngIf=\"{\n disabled: disabled$ | async,\n prefill: mappedPrefill$ ? (mappedPrefill$ | async) : null,\n } as obs\"\n>\n <v-input\n name=\"configurationTitle\"\n [title]=\"'configurationTitle' | pluginTranslate: pluginId | async\"\n [margin]=\"true\"\n [disabled]=\"obs.disabled\"\n [defaultValue]=\"obs.prefill?.configurationTitle\"\n [required]=\"true\"\n [tooltip]=\"'configurationTitleTooltip' | pluginTranslate: pluginId | async\"\n placeholder=\"Verzoek Plugin\"\n >\n </v-input>\n <ng-container\n *ngIf=\"{notificatiePluginSelectItems: notificatiePluginSelectItems$ | async} as vars\"\n >\n <v-select\n [items]=\"vars.notificatiePluginSelectItems\"\n [margin]=\"true\"\n name=\"notificatiesApiPluginConfiguration\"\n [title]=\"'notificatiesApiPluginConfiguration' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled\"\n [defaultSelectionId]=\"obs.prefill?.notificatiesApiPluginConfiguration\"\n [required]=\"true\"\n [loading]=\"!vars.notificatiePluginSelectItems\"\n [tooltip]=\"'notificatiesApiPluginConfigurationTooltip' | pluginTranslate: pluginId | async\"\n ></v-select>\n </ng-container>\n <ng-container *ngIf=\"{processSelectItems: processSelectItems$ | async} as vars\">\n <v-select\n [items]=\"vars.processSelectItems\"\n [margin]=\"true\"\n name=\"processToStart\"\n [title]=\"'processToStart' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled\"\n [defaultSelectionId]=\"obs.prefill?.processToStart\"\n [required]=\"true\"\n [loading]=\"!vars.processSelectItems\"\n [tooltip]=\"'processToStartTooltip' | pluginTranslate: pluginId | async\"\n ></v-select>\n </ng-container>\n <v-input\n name=\"rsin\"\n [title]=\"'rsin' | pluginTranslate: pluginId | async\"\n [margin]=\"true\"\n [disabled]=\"obs.disabled\"\n [defaultValue]=\"obs.prefill?.rsin\"\n [required]=\"true\"\n [tooltip]=\"'rsinTooltip' | pluginTranslate: pluginId | async\"\n placeholder=\"\"\n >\n </v-input>\n <v-multi-input-form\n name=\"verzoekProperties\"\n [title]=\"'verzoekProperties' | pluginTranslate: pluginId | async\"\n [formTemplate]=\"mappingForm\"\n [addRowText]=\"'addVerzoekType' | pluginTranslate: pluginId | async\"\n [required]=\"false\"\n [tooltip]=\"'verzoekPropertiesTooltip' | pluginTranslate: pluginId | async\"\n (deleteRowEvent)=\"deleteRow($event)\"\n [initialAmountOfRows]=\"0\"\n [minimumAmountOfRows]=\"0\"\n [defaultValues]=\"obs.prefill?.verzoekProperties\"\n >\n </v-multi-input-form>\n</v-form>\n\n<ng-template\n #mappingForm\n let-index=\"index\"\n let-uuid=\"uuid\"\n let-changeFunction=\"changeFunction\"\n let-prefill=\"prefill\"\n>\n <ng-container\n *ngIf=\"{\n disabled: disabled$ | async,\n } as obs\"\n >\n <v-form (valueChange)=\"changeFunction($event, uuid); verzoekTypeFormChange($event, uuid)\">\n <v-input\n name=\"type\"\n [title]=\"'type' | pluginTranslate: pluginId | async\"\n [margin]=\"false\"\n [disabled]=\"obs.disabled\"\n [defaultValue]=\"prefill?.type\"\n [required]=\"true\"\n [tooltip]=\"'typeTooltip' | pluginTranslate: pluginId | async\"\n [smallMargin]=\"true\"\n placeholder=\"\"\n >\n </v-input>\n <ng-container *ngIf=\"{documentSelectItems: documentSelectItems$ | async} as vars\">\n <v-select\n [items]=\"vars.documentSelectItems\"\n [smallMargin]=\"true\"\n name=\"caseDefinitionName\"\n [title]=\"'caseDefinitionName' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled\"\n [defaultSelectionId]=\"prefill?.caseDefinitionName\"\n [required]=\"true\"\n [loading]=\"!vars.documentSelectItems\"\n [tooltip]=\"'caseDefinitionNameTooltip' | pluginTranslate: pluginId | async\"\n ></v-select>\n </ng-container>\n <ng-container\n *ngIf=\"{objectManagementSelectItems: objectManagementSelectItems$ | async} as vars\"\n >\n <v-select\n [items]=\"vars.objectManagementSelectItems\"\n [smallMargin]=\"true\"\n name=\"objectManagementId\"\n [title]=\"'objectManagementId' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled\"\n [defaultSelectionId]=\"prefill?.objectManagementId\"\n [required]=\"true\"\n [loading]=\"!vars.objectManagementSelectItems\"\n [tooltip]=\"'objectManagementIdTooltip' | pluginTranslate: pluginId | async\"\n ></v-select>\n </ng-container>\n <v-select\n [items]=\"\n rolTypeSelectItemsObservables[uuid]?.caseDefinitionName &&\n (rolTypeSelectItemsObservables[uuid].items | async)\n \"\n [smallMargin]=\"true\"\n name=\"initiatorRoltypeUrl\"\n [title]=\"'initiatorRoltypeUrl' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled || !rolTypeSelectItemsObservables[uuid]?.caseDefinitionName\"\n [defaultSelectionId]=\"prefill?.initiatorRoltypeUrl\"\n [required]=\"true\"\n [tooltip]=\"'initiatorRoltypeUrlTooltip' | pluginTranslate: pluginId | async\"\n ></v-select>\n <v-input\n name=\"initiatorRolDescription\"\n [title]=\"'initiatorRolDescription' | pluginTranslate: pluginId | async\"\n [margin]=\"false\"\n [disabled]=\"obs.disabled\"\n [defaultValue]=\"prefill?.initiatorRolDescription || 'Initiator'\"\n [required]=\"true\"\n [tooltip]=\"'initiatorRolDescriptionTooltip' | pluginTranslate: pluginId | async\"\n [smallMargin]=\"true\"\n placeholder=\"\"\n >\n </v-input>\n <ng-container *ngIf=\"{processSelectItems: processSelectItems$ | async} as vars\">\n <v-select\n [items]=\"vars.processSelectItems\"\n [smallMargin]=\"true\"\n name=\"processDefinitionKey\"\n [title]=\"'processDefinitionKey' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled\"\n [defaultSelectionId]=\"prefill?.processDefinitionKey\"\n [required]=\"true\"\n [loading]=\"!vars.processSelectItems\"\n [tooltip]=\"'processDefinitionKeyTooltip' | pluginTranslate: pluginId | async\"\n ></v-select>\n </ng-container>\n <v-radio\n name=\"copyStrategy\"\n [disabled]=\"obs.disabled\"\n [title]=\"'copyStrategy' | pluginTranslate: pluginId | async\"\n [tooltip]=\"'copyStrategyTooltip' | pluginTranslate: pluginId | async\"\n [radioValues]=\"radioItems$ | async\"\n [smallMargin]=\"true\"\n [defaultValue]=\"prefill?.copyStrategy || 'full'\"\n >\n </v-radio>\n <ng-container *ngIf=\"showMappingButtons[uuid]\">\n <v-input-label\n [title]=\"'mapping' | pluginTranslate: pluginId | async\"\n [tooltip]=\"'mappingTooltip' | pluginTranslate: pluginId | async\"\n >\n </v-input-label>\n <v-button (clickEvent)=\"openMappingModal(uuid)\" mdiIcon=\"table\"\n >{{ 'setMapping' | pluginTranslate: pluginId | async }}\n </v-button>\n </ng-container>\n <v-input class=\"hidden-input\" name=\"uuid\" [defaultValue]=\"uuid\"> </v-input>\n </v-form>\n <cds-modal cdsModal [open]=\"showMappingModals[uuid]\">\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeMappingModal(uuid)\">\n <h3 cdsModalHeaderHeading>{{ 'setMapping' | pluginTranslate: pluginId | async }}</h3>\n </cds-modal-header>\n <section cdsModalContent>\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label [disabled]=\"obs.disabled\">\n <span class=\"label-with-tooltip select-label\">\n {{ 'mapping' | pluginTranslate: pluginId | async }}\n <v-tooltip-icon\n [tooltip]=\"'mappingTooltip' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled\"\n ></v-tooltip-icon>\n </span>\n </cds-label>\n <valtimo-carbon-multi-input\n *ngIf=\"showMappingModalsDelay[uuid]\"\n type=\"keyValue\"\n (valueChange)=\"mappingValueChange($event, uuid)\"\n [defaultValues]=\"mappings[uuid] || prefill?.mapping\"\n [valueColumnTitle]=\"'target' | pluginTranslate: pluginId | async\"\n [keyColumnTitle]=\"'source' | pluginTranslate: pluginId | async\"\n [fullWidth]=\"true\"\n ></valtimo-carbon-multi-input>\n </div>\n </section>\n <cds-modal-footer>\n <ng-container>\n <button\n cdsButton=\"secondary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"closeMappingModal(uuid)\"\n [disabled]=\"obs.disabled\"\n >\n {{ 'close' | pluginTranslate: pluginId | async }}\n </button>\n <button\n cdsButton=\"primary\"\n [attr.modal-primary-focus]=\"true\"\n [disabled]=\"obs.disabled\"\n (click)=\"saveMapping(uuid)\"\n [disabled]=\"obs.disabled\"\n >\n {{ 'save' | pluginTranslate: pluginId | async }}\n </button>\n </ng-container>\n </cds-modal-footer>\n </cds-modal>\n </ng-container>\n</ng-template>\n", styles: [".label-with-tooltip{display:flex;align-items:center}.select-label{padding-bottom:.5rem;width:250px}.hidden-input{display:none}.cds--text-input__field-wrapper{flex-direction:column}::ng-deep .cds--modal-container{transform:none!important}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
215
- }], ctorParameters: () => [{ type: i1.PluginManagementService }, { type: i2.TranslateService }, { type: i1.PluginTranslationService }, { type: i3.VerzoekPluginService }, { type: i4.ProcessService }, { type: i5.DocumentService }], propDecorators: { save$: [{
212
+ args: [{ selector: 'valtimo-verzoek-configuration', template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<v-form\n (valueChange)=\"formValueChange($event)\"\n *ngIf=\"{\n disabled: disabled$ | async,\n prefill: mappedPrefill$ ? (mappedPrefill$ | async) : null,\n } as obs\"\n>\n <v-input\n name=\"configurationTitle\"\n [title]=\"'configurationTitle' | pluginTranslate: pluginId | async\"\n [margin]=\"true\"\n [disabled]=\"obs.disabled\"\n [defaultValue]=\"obs.prefill?.configurationTitle\"\n [required]=\"true\"\n [tooltip]=\"'configurationTitleTooltip' | pluginTranslate: pluginId | async\"\n placeholder=\"Verzoek Plugin\"\n >\n </v-input>\n <ng-container\n *ngIf=\"{notificatiePluginSelectItems: notificatiePluginSelectItems$ | async} as vars\"\n >\n <v-select\n [items]=\"vars.notificatiePluginSelectItems\"\n [margin]=\"true\"\n name=\"notificatiesApiPluginConfiguration\"\n [title]=\"'notificatiesApiPluginConfiguration' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled\"\n [defaultSelectionId]=\"obs.prefill?.notificatiesApiPluginConfiguration\"\n [required]=\"true\"\n [loading]=\"!vars.notificatiePluginSelectItems\"\n [tooltip]=\"'notificatiesApiPluginConfigurationTooltip' | pluginTranslate: pluginId | async\"\n ></v-select>\n </ng-container>\n <ng-container *ngIf=\"{processSelectItems: processSelectItems$ | async} as vars\">\n <v-select\n [items]=\"vars.processSelectItems\"\n [margin]=\"true\"\n name=\"processToStart\"\n [title]=\"'processToStart' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled\"\n [defaultSelectionId]=\"obs.prefill?.processToStart\"\n [required]=\"true\"\n [loading]=\"!vars.processSelectItems\"\n [tooltip]=\"'processToStartTooltip' | pluginTranslate: pluginId | async\"\n ></v-select>\n </ng-container>\n <v-input\n name=\"rsin\"\n [title]=\"'rsin' | pluginTranslate: pluginId | async\"\n [margin]=\"true\"\n [disabled]=\"obs.disabled\"\n [defaultValue]=\"obs.prefill?.rsin\"\n [required]=\"true\"\n [tooltip]=\"'rsinTooltip' | pluginTranslate: pluginId | async\"\n placeholder=\"\"\n >\n </v-input>\n <v-multi-input-form\n name=\"verzoekProperties\"\n [title]=\"'verzoekProperties' | pluginTranslate: pluginId | async\"\n [formTemplate]=\"mappingForm\"\n [addRowText]=\"'addVerzoekType' | pluginTranslate: pluginId | async\"\n [required]=\"false\"\n [tooltip]=\"'verzoekPropertiesTooltip' | pluginTranslate: pluginId | async\"\n (deleteRowEvent)=\"deleteRow($event)\"\n [initialAmountOfRows]=\"0\"\n [minimumAmountOfRows]=\"0\"\n [defaultValues]=\"obs.prefill?.verzoekProperties\"\n >\n </v-multi-input-form>\n</v-form>\n\n<ng-template\n #mappingForm\n let-index=\"index\"\n let-uuid=\"uuid\"\n let-changeFunction=\"changeFunction\"\n let-prefill=\"prefill\"\n>\n <ng-container\n *ngIf=\"{\n disabled: disabled$ | async,\n } as obs\"\n >\n <v-form (valueChange)=\"changeFunction($event, uuid); verzoekTypeFormChange($event, uuid)\">\n <v-input\n name=\"type\"\n [title]=\"'type' | pluginTranslate: pluginId | async\"\n [margin]=\"false\"\n [disabled]=\"obs.disabled\"\n [defaultValue]=\"prefill?.type\"\n [required]=\"true\"\n [tooltip]=\"'typeTooltip' | pluginTranslate: pluginId | async\"\n [smallMargin]=\"true\"\n placeholder=\"\"\n >\n </v-input>\n <ng-container *ngIf=\"{documentSelectItems: documentSelectItems$ | async} as vars\">\n <v-select\n [items]=\"vars.documentSelectItems\"\n [smallMargin]=\"true\"\n name=\"caseDefinitionName\"\n [title]=\"'caseDefinitionName' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled\"\n [defaultSelectionId]=\"prefill?.caseDefinitionName\"\n [required]=\"true\"\n [loading]=\"!vars.documentSelectItems\"\n [tooltip]=\"'caseDefinitionNameTooltip' | pluginTranslate: pluginId | async\"\n ></v-select>\n </ng-container>\n <ng-container\n *ngIf=\"{objectManagementSelectItems: objectManagementSelectItems$ | async} as vars\"\n >\n <v-select\n [items]=\"vars.objectManagementSelectItems\"\n [smallMargin]=\"true\"\n name=\"objectManagementId\"\n [title]=\"'objectManagementId' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled\"\n [defaultSelectionId]=\"prefill?.objectManagementId\"\n [required]=\"true\"\n [loading]=\"!vars.objectManagementSelectItems\"\n [tooltip]=\"'objectManagementIdTooltip' | pluginTranslate: pluginId | async\"\n ></v-select>\n </ng-container>\n <v-select\n [items]=\"\n rolTypeSelectItemsObservables[uuid]?.caseDefinitionName &&\n (rolTypeSelectItemsObservables[uuid].items | async)\n \"\n [smallMargin]=\"true\"\n name=\"initiatorRoltypeUrl\"\n [title]=\"'initiatorRoltypeUrl' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled || !rolTypeSelectItemsObservables[uuid]?.caseDefinitionName\"\n [defaultSelectionId]=\"prefill?.initiatorRoltypeUrl\"\n [required]=\"true\"\n [tooltip]=\"'initiatorRoltypeUrlTooltip' | pluginTranslate: pluginId | async\"\n ></v-select>\n <v-input\n name=\"initiatorRolDescription\"\n [title]=\"'initiatorRolDescription' | pluginTranslate: pluginId | async\"\n [margin]=\"false\"\n [disabled]=\"obs.disabled\"\n [defaultValue]=\"prefill?.initiatorRolDescription || 'Initiator'\"\n [required]=\"true\"\n [tooltip]=\"'initiatorRolDescriptionTooltip' | pluginTranslate: pluginId | async\"\n [smallMargin]=\"true\"\n placeholder=\"\"\n >\n </v-input>\n <ng-container *ngIf=\"{processSelectItems: processSelectItems$ | async} as vars\">\n <v-select\n [items]=\"vars.processSelectItems\"\n [smallMargin]=\"true\"\n name=\"processDefinitionKey\"\n [title]=\"'processDefinitionKey' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled\"\n [defaultSelectionId]=\"prefill?.processDefinitionKey\"\n [required]=\"true\"\n [loading]=\"!vars.processSelectItems\"\n [tooltip]=\"'processDefinitionKeyTooltip' | pluginTranslate: pluginId | async\"\n ></v-select>\n </ng-container>\n <v-radio\n name=\"copyStrategy\"\n [disabled]=\"obs.disabled\"\n [title]=\"'copyStrategy' | pluginTranslate: pluginId | async\"\n [tooltip]=\"'copyStrategyTooltip' | pluginTranslate: pluginId | async\"\n [radioValues]=\"radioItems$ | async\"\n [smallMargin]=\"true\"\n [defaultValue]=\"prefill?.copyStrategy || 'full'\"\n >\n </v-radio>\n <ng-container *ngIf=\"showMappingButtons[uuid]\">\n <v-input-label\n [title]=\"'mapping' | pluginTranslate: pluginId | async\"\n [tooltip]=\"'mappingTooltip' | pluginTranslate: pluginId | async\"\n >\n </v-input-label>\n <v-button (clickEvent)=\"openMappingModal(uuid)\" mdiIcon=\"table\"\n >{{ 'setMapping' | pluginTranslate: pluginId | async }}\n </v-button>\n </ng-container>\n <v-input class=\"hidden-input\" name=\"uuid\" [defaultValue]=\"uuid\"> </v-input>\n </v-form>\n <v-modal [parentId]=\"uuid\" (closeEvent)=\"closeMappingModal(uuid)\">\n <div role=\"header\">\n <h3 cdsModalHeaderHeading>{{ 'setMapping' | pluginTranslate: pluginId | async }}</h3>\n </div>\n\n <div role=\"content\">\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label [disabled]=\"obs.disabled\">\n <span class=\"label-with-tooltip select-label\">\n {{ 'mapping' | pluginTranslate: pluginId | async }}\n <v-tooltip-icon\n [tooltip]=\"'mappingTooltip' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled\"\n ></v-tooltip-icon>\n </span>\n </cds-label>\n <valtimo-carbon-multi-input\n *ngIf=\"showMappingModalsDelay[uuid]\"\n type=\"keyValue\"\n (valueChange)=\"mappingValueChange($event, uuid)\"\n [defaultValues]=\"mappings[uuid] || prefill?.mapping\"\n [valueColumnTitle]=\"'target' | pluginTranslate: pluginId | async\"\n [keyColumnTitle]=\"'source' | pluginTranslate: pluginId | async\"\n [fullWidth]=\"true\"\n ></valtimo-carbon-multi-input>\n </div>\n </div>\n\n <div role=\"footer\">\n <ng-container>\n <button\n cdsButton=\"secondary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"closeMappingModal(uuid)\"\n [disabled]=\"obs.disabled\"\n >\n {{ 'close' | pluginTranslate: pluginId | async }}\n </button>\n <button\n cdsButton=\"primary\"\n [attr.modal-primary-focus]=\"true\"\n [disabled]=\"obs.disabled\"\n (click)=\"saveMapping(uuid)\"\n [disabled]=\"obs.disabled\"\n >\n {{ 'save' | pluginTranslate: pluginId | async }}\n </button>\n </ng-container>\n </div>\n </v-modal>\n </ng-container>\n</ng-template>\n", styles: [".label-with-tooltip{display:flex;align-items:center}.select-label{padding-bottom:.5rem;width:250px}.hidden-input{display:none}.cds--text-input__field-wrapper{flex-direction:column}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
213
+ }], ctorParameters: () => [{ type: i1.PluginManagementService }, { type: i2.TranslateService }, { type: i1.PluginTranslationService }, { type: i3.VerzoekPluginService }, { type: i4.ProcessService }, { type: i5.DocumentService }, { type: i6.ModalService }], propDecorators: { mappingModals: [{
214
+ type: ViewChildren,
215
+ args: [VModalComponent]
216
+ }], save$: [{
216
217
  type: Input
217
218
  }], disabled$: [{
218
219
  type: Input
@@ -225,4 +226,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
225
226
  }], configuration: [{
226
227
  type: Output
227
228
  }] } });
228
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyem9lay1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vcGx1Z2luL3NyYy9saWIvcGx1Z2lucy92ZXJ6b2VrL2NvbXBvbmVudHMvdmVyem9lay1jb25maWd1cmF0aW9uL3ZlcnpvZWstY29uZmlndXJhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL3BsdWdpbi9zcmMvbGliL3BsdWdpbnMvdmVyem9lay9jb21wb25lbnRzL3ZlcnpvZWstY29uZmlndXJhdGlvbi92ZXJ6b2VrLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV4RixPQUFPLEVBQ0wsZUFBZSxFQUNmLGFBQWEsRUFDYixNQUFNLEVBQ04sR0FBRyxFQUVILEVBQUUsRUFFRixJQUFJLEVBQ0osR0FBRyxHQUNKLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7OztBQWNkLE1BQU0sT0FBTyw2QkFBNkI7SUEwRnhDLFlBQ21CLHVCQUFnRCxFQUNoRCxnQkFBa0MsRUFDbEMsd0JBQWtELEVBQ2xELG9CQUEwQyxFQUMxQyxjQUE4QixFQUM5QixlQUFnQztRQUxoQyw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXlCO1FBQ2hELHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUNsRCx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQzFDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUF6RnpD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SSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsR0FBRyxpQkFBaUIsQ0FBQzs0QkFDcEQsQ0FBQzt3QkFDSCxDQUFDLENBQUMsQ0FBQzt3QkFFSCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztvQkFDekIsQ0FBQztnQkFDSCxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNWLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDOytHQXZRVSw2QkFBNkI7bUdBQTdCLDZCQUE2Qiw0UEMxQzFDLCs4VEEyUEE7OzRGRGpOYSw2QkFBNkI7a0JBTHpDLFNBQVM7K0JBQ0UsK0JBQStCO2dRQU9oQyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDSSxLQUFLO3NCQUFkLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7UGx1Z2luQ29uZmlndXJhdGlvbkNvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgY29tYmluZUxhdGVzdCxcbiAgZmlsdGVyLFxuICBtYXAsXG4gIE9ic2VydmFibGUsXG4gIG9mLFxuICBTdWJzY3JpcHRpb24sXG4gIHRha2UsXG4gIHRhcCxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0NvcHlTdHJhdGVneSwgVmVyem9la0NvbmZpZywgVmVyem9la1R5cGV9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQge1BsdWdpbk1hbmFnZW1lbnRTZXJ2aWNlLCBQbHVnaW5UcmFuc2xhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge011bHRpSW5wdXRWYWx1ZXMsIFJhZGlvVmFsdWUsIFNlbGVjdEl0ZW19IGZyb20gJ0B2YWx0aW1vL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtWZXJ6b2VrUGx1Z2luU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHtQcm9jZXNzU2VydmljZX0gZnJvbSAnQHZhbHRpbW8vcHJvY2Vzcyc7XG5pbXBvcnQge0RvY3VtZW50U2VydmljZX0gZnJvbSAnQHZhbHRpbW8vZG9jdW1lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLXZlcnpvZWstY29uZmlndXJhdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi92ZXJ6b2VrLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi92ZXJ6b2VrLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgVmVyem9la0NvbmZpZ3VyYXRpb25Db21wb25lbnRcbiAgaW1wbGVtZW50cyBQbHVnaW5Db25maWd1cmF0aW9uQ29tcG9uZW50LCBPbkluaXQsIE9uRGVzdHJveVxue1xuICBASW5wdXQoKSBzYXZlJDogT2JzZXJ2YWJsZTx2b2lkPjtcbiAgQElucHV0KCkgZGlzYWJsZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBASW5wdXQoKSBwbHVnaW5JZDogc3RyaW5nO1xuICBASW5wdXQoKSBwcmVmaWxsQ29uZmlndXJhdGlvbiQ6IE9ic2VydmFibGU8VmVyem9la0NvbmZpZz47XG4gIEBPdXRwdXQoKSB2YWxpZDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBAT3V0cHV0KCkgY29uZmlndXJhdGlvbjogRXZlbnRFbWl0dGVyPFZlcnpvZWtDb25maWc+ID0gbmV3IEV2ZW50RW1pdHRlcjxWZXJ6b2VrQ29uZmlnPigpO1xuXG4gIG1hcHBlZFByZWZpbGwkOiBPYnNlcnZhYmxlPFZlcnpvZWtDb25maWc+O1xuXG4gIHByaXZhdGUgbWFwcGluZ1NldCE6IGJvb2xlYW47XG5cbiAgcmVhZG9ubHkgbm90aWZpY2F0aWVQbHVnaW5TZWxlY3RJdGVtcyQ6IE9ic2VydmFibGU8QXJyYXk8U2VsZWN0SXRlbT4+ID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5wbHVnaW5NYW5hZ2VtZW50U2VydmljZS5nZXRQbHVnaW5Db25maWd1cmF0aW9uc0J5UGx1Z2luRGVmaW5pdGlvbktleSgnbm90aWZpY2F0aWVzYXBpJyksXG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnN0cmVhbSgna2V5JyksXG4gIF0pLnBpcGUoXG4gICAgbWFwKChbY29uZmlndXJhdGlvbnNdKSA9PlxuICAgICAgY29uZmlndXJhdGlvbnMubWFwKGNvbmZpZ3VyYXRpb24gPT4gKHtcbiAgICAgICAgaWQ6IGNvbmZpZ3VyYXRpb24uaWQsXG4gICAgICAgIHRleHQ6IGAke2NvbmZpZ3VyYXRpb24udGl0bGV9IC0gJHt0aGlzLnBsdWdpblRyYW5zbGF0aW9uU2VydmljZS5pbnN0YW50KFxuICAgICAgICAgICd0aXRsZScsXG4gICAgICAgICAgY29uZmlndXJhdGlvbi5wbHVnaW5EZWZpbml0aW9uLmtleVxuICAgICAgICApfWAsXG4gICAgICB9KSlcbiAgICApXG4gICk7XG5cbiAgcmVhZG9ubHkgb2JqZWN0TWFuYWdlbWVudFNlbGVjdEl0ZW1zJDogT2JzZXJ2YWJsZTxBcnJheTxTZWxlY3RJdGVtPj4gPSB0aGlzLnZlcnpvZWtQbHVnaW5TZXJ2aWNlXG4gICAgLmdldEFsbE9iamVjdHMoKVxuICAgIC5waXBlKFxuICAgICAgbWFwKG9iamVjdHMgPT5cbiAgICAgICAgb2JqZWN0cy5tYXAob2JqZWN0ID0+ICh7XG4gICAgICAgICAgaWQ6IG9iamVjdC5pZCxcbiAgICAgICAgICB0ZXh0OiBvYmplY3QudGl0bGUsXG4gICAgICAgIH0pKVxuICAgICAgKVxuICAgICk7XG5cbiAgcmVhZG9ubHkgcHJvY2Vzc1NlbGVjdEl0ZW1zJDogT2JzZXJ2YWJsZTxBcnJheTxTZWxlY3RJdGVtPj4gPSB0aGlzLnByb2Nlc3NTZXJ2aWNlXG4gICAgLmdldFByb2Nlc3NEZWZpbml0aW9ucygpXG4gICAgLnBpcGUoXG4gICAgICBtYXAocHJvY2Vzc0RlZmluaXRpb25zID0+XG4gICAgICAgIHByb2Nlc3NEZWZpbml0aW9ucy5tYXAocHJvY2Vzc0RlZmluaXRpb24gPT4gKHtcbiAgICAgICAgICBpZDogcHJvY2Vzc0RlZmluaXRpb24ua2V5LFxuICAgICAgICAgIHRleHQ6IHByb2Nlc3NEZWZpbml0aW9uLm5hbWUgPz8gJycsXG4gICAgICAgIH0pKVxuICAgICAgKVxuICAgICk7XG5cbiAgcmVhZG9ubHkgZG9jdW1lbnRTZWxlY3RJdGVtcyQ6IE9ic2VydmFibGU8QXJyYXk8U2VsZWN0SXRlbT4+ID0gdGhpcy5kb2N1bWVudFNlcnZpY2VcbiAgICAuZ2V0QWxsRGVmaW5pdGlvbnMoKVxuICAgIC5waXBlKFxuICAgICAgbWFwKGRvY3VtZW50RGVmaW5pdGlvbnMgPT5cbiAgICAgICAgZG9jdW1lbnREZWZpbml0aW9ucy5jb250ZW50Lm1hcChkb2N1bWVudERlZmluaXRpb24gPT4gKHtcbiAgICAgICAgICBpZDogZG9jdW1lbnREZWZpbml0aW9uLmlkLm5hbWUsXG4gICAgICAgICAgdGV4dDogZG9jdW1lbnREZWZpbml0aW9uLmlkLm5hbWUsXG4gICAgICAgIH0pKVxuICAgICAgKVxuICAgICk7XG5cbiAgcmVhZG9ubHkgUkFESU9fSVRFTVM6IEFycmF5PENvcHlTdHJhdGVneT4gPSBbJ2Z1bGwnLCAnc3BlY2lmaWVkJ107XG4gIHJlYWRvbmx5IHJhZGlvSXRlbXMkOiBPYnNlcnZhYmxlPEFycmF5PFJhZGlvVmFsdWU+PiA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5zdHJlYW0oJ2tleScpLnBpcGUoXG4gICAgbWFwKCgpID0+XG4gICAgICB0aGlzLlJBRElPX0lURU1TLm1hcChyYWRpb0l0ZW0gPT4gKHtcbiAgICAgICAgdmFsdWU6IHJhZGlvSXRlbSxcbiAgICAgICAgdGl0bGU6IHRoaXMucGx1Z2luVHJhbnNsYXRpb25TZXJ2aWNlLmluc3RhbnQocmFkaW9JdGVtLCB0aGlzLnBsdWdpbklkKSxcbiAgICAgIH0pKVxuICAgIClcbiAgKTtcblxuICByZWFkb25seSByb2xUeXBlU2VsZWN0SXRlbXNPYnNlcnZhYmxlczoge1xuICAgIFt1dWlkOiBzdHJpbmddOiB7Y2FzZURlZmluaXRpb25OYW1lOiBzdHJpbmc7IGl0ZW1zOiBPYnNlcnZhYmxlPEFycmF5PFNlbGVjdEl0ZW0+Pn07XG4gIH0gPSB7fTtcblxuICByZWFkb25seSBzaG93TWFwcGluZ0J1dHRvbnM6IHtbdXVpZDogc3RyaW5nXTogYm9vbGVhbn0gPSB7fTtcblxuICByZWFkb25seSBzaG93TWFwcGluZ01vZGFsczoge1t1dWlkOiBzdHJpbmddOiBib29sZWFufSA9IHt9O1xuICByZWFkb25seSBzaG93TWFwcGluZ01vZGFsc0RlbGF5OiB7W3V1aWQ6IHN0cmluZ106IGJvb2xlYW59ID0ge307XG5cbiAgcmVhZG9ubHkgdGVtcE1hcHBpbmdzOiB7W3V1aWQ6IHN0cmluZ106IE11bHRpSW5wdXRWYWx1ZXN9ID0ge307XG5cbiAgcmVhZG9ubHkgbWFwcGluZ3M6IHtbdXVpZDogc3RyaW5nXTogTXVsdGlJbnB1dFZhbHVlc30gPSB7fTtcblxuICBwcml2YXRlIHNhdmVTdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XG5cbiAgcHJpdmF0ZSByZWFkb25seSBmb3JtVmFsdWUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxWZXJ6b2VrQ29uZmlnIHwgbnVsbD4obnVsbCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgdmFsaWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBwbHVnaW5NYW5hZ2VtZW50U2VydmljZTogUGx1Z2luTWFuYWdlbWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcGx1Z2luVHJhbnNsYXRpb25TZXJ2aWNlOiBQbHVnaW5UcmFuc2xhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB2ZXJ6b2VrUGx1Z2luU2VydmljZTogVmVyem9la1BsdWdpblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcm9jZXNzU2VydmljZTogUHJvY2Vzc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudFNlcnZpY2U6IERvY3VtZW50U2VydmljZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5vcGVuU2F2ZVN1YnNjcmlwdGlvbigpO1xuICAgIHRoaXMuc2V0TWFwcGVkUHJlZmlsbCgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zYXZlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgZm9ybVZhbHVlQ2hhbmdlKGZvcm1WYWx1ZTogVmVyem9la0NvbmZpZyk6IHZvaWQge1xuICAgIHRoaXMuZm9ybVZhbHVlJC5uZXh0KGZvcm1WYWx1ZSk7XG4gICAgdGhpcy5oYW5kbGVWYWxpZChmb3JtVmFsdWUpO1xuICB9XG5cbiAgdmVyem9la1R5cGVGb3JtQ2hhbmdlKGZvcm1WYWx1ZTogVmVyem9la1R5cGUsIHV1aWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGNhc2VEZWZpbml0aW9uTmFtZSA9IGZvcm1WYWx1ZT8uY2FzZURlZmluaXRpb25OYW1lO1xuICAgIGNvbnN0IHJvbFR5cGVTZWxlY3RJdGVtc09ic2VydmFibGVzID0gdGhpcy5yb2xUeXBlU2VsZWN0SXRlbXNPYnNlcnZhYmxlcztcblxuICAgIHRoaXMuc2hvd01hcHBpbmdCdXR0b25zW3V1aWRdID0gZm9ybVZhbHVlLmNvcHlTdHJhdGVneSA9PT0gJ3NwZWNpZmllZCc7XG5cbiAgICBpZiAoY2FzZURlZmluaXRpb25OYW1lKSB7XG4gICAgICBpZiAoXG4gICAgICAgICFyb2xUeXBlU2VsZWN0SXRlbXNPYnNlcnZhYmxlc1t1dWlkXSB8fFxuICAgICAgICByb2xUeXBlU2VsZWN0SXRlbXNPYnNlcnZhYmxlc1t1dWlkXS5jYXNlRGVmaW5pdGlvbk5hbWUgIT09IGNhc2VEZWZpbml0aW9uTmFtZVxuICAgICAgKSB7XG4gICAgICAgIHJvbFR5cGVTZWxlY3RJdGVtc09ic2VydmFibGVzW3V1aWRdID0ge1xuICAgICAgICAgIGNhc2VEZWZpbml0aW9uTmFtZSxcbiAgICAgICAgICBpdGVtczogdGhpcy52ZXJ6b2VrUGx1Z2luU2VydmljZVxuICAgICAgICAgICAgLmdldFJvbHR5cGVzQnlEb2N1bWVudERlZmluaXRpb25OYW1lKGNhc2VEZWZpbml0aW9uTmFtZSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICBtYXAocm9sVHlwZXMgPT4gcm9sVHlwZXMubWFwKHJvbFR5cGUgPT4gKHt0ZXh0OiByb2xUeXBlLm5hbWUsIGlkOiByb2xUeXBlLnVybH0pKSlcbiAgICAgICAgICAgICksXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJvbFR5cGVTZWxlY3RJdGVtc09ic2VydmFibGVzW3V1aWRdID0ge1xuICAgICAgICBjYXNlRGVmaW5pdGlvbk5hbWUsXG4gICAgICAgIGl0ZW1zOiBvZihbXSksXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIGRlbGV0ZVJvdyh1dWlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBkZWxldGUgdGhpcy5yb2xUeXBlU2VsZWN0SXRlbXNPYnNlcnZhYmxlc1t1dWlkXTtcbiAgfVxuXG4gIG9wZW5NYXBwaW5nTW9kYWwodXVpZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5zaG93TWFwcGluZ01vZGFsc1t1dWlkXSA9IHRydWU7XG4gICAgdGhpcy5zaG93TWFwcGluZ01vZGFsc0RlbGF5W3V1aWRdID0gdHJ1ZTtcbiAgfVxuXG4gIGNsb3NlTWFwcGluZ01vZGFsKHV1aWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuc2hvd01hcHBpbmdNb2RhbHNbdXVpZF0gPSBmYWxzZTtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5zaG93TWFwcGluZ01vZGFsc0RlbGF5W3V1aWRdID0gZmFsc2U7XG4gICAgfSwgMjUwKTtcbiAgfVxuXG4gIG1hcHBpbmdWYWx1ZUNoYW5nZShuZXdWYWx1ZTogTXVsdGlJbnB1dFZhbHVlcywgdXVpZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy50ZW1wTWFwcGluZ3NbdXVpZF0gPSBuZXdWYWx1ZTtcbiAgfVxuXG4gIHNhdmVNYXBwaW5nKHV1aWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMubWFwcGluZ3NbdXVpZF0gPSBbLi4udGhpcy50ZW1wTWFwcGluZ3NbdXVpZF1dO1xuICAgIHRoaXMudGVtcE1hcHBpbmdzW3V1aWRdID0gW107XG4gICAgdGhpcy5jbG9zZU1hcHBpbmdNb2RhbCh1dWlkKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlVmFsaWQoZm9ybVZhbHVlOiBWZXJ6b2VrQ29uZmlnKTogdm9pZCB7XG4gICAgY29uc3QgdmFsaWRGb3JtID0gISEoXG4gICAgICBmb3JtVmFsdWUuY29uZmlndXJhdGlvblRpdGxlICYmXG4gICAgICBmb3JtVmFsdWUubm90aWZpY2F0aWVzQXBpUGx1Z2luQ29uZmlndXJhdGlvbiAmJlxuICAgICAgZm9ybVZhbHVlLnJzaW4gJiZcbiAgICAgIGZvcm1WYWx1ZS5wcm9jZXNzVG9TdGFydFxuICAgICk7XG4gICAgY29uc3QgdmVyem9la1R5cGVuID0gZm9ybVZhbHVlLnZlcnpvZWtQcm9wZXJ0aWVzIHx8IFtdO1xuICAgIGNvbnN0IHZhbGlkVmVyem9la1R5cGVuID0gdmVyem9la1R5cGVuLmZpbHRlcihcbiAgICAgIHR5cGUgPT5cbiAgICAgICAgISEoXG4gICAgICAgICAgdHlwZS50eXBlICYmXG4gICAgICAgICAgdHlwZS5jYXNlRGVmaW5pdGlvbk5hbWUgJiZcbiAgICAgICAgICB0eXBlLm9iamVjdE1hbmFnZW1lbnRJZCAmJlxuICAgICAgICAgIHR5cGUuaW5pdGlhdG9yUm9sdHlwZVVybCAmJlxuICAgICAgICAgIHR5cGUucHJvY2Vzc0RlZmluaXRpb25LZXkgJiZcbiAgICAgICAgICB0eXBlLmluaXRpYXRvclJvbERlc2NyaXB0aW9uXG4gICAgICAgIClcbiAgICApO1xuICAgIGNvbnN0IHZhbGlkID0gdmFsaWRGb3JtICYmIHZlcnpvZWtUeXBlbi5sZW5ndGggPT09IHZhbGlkVmVyem9la1R5cGVuLmxlbmd0aDtcbiAgICB0aGlzLnZhbGlkJC5uZXh0KHZhbGlkKTtcbiAgICB0aGlzLnZhbGlkLmVtaXQodmFsaWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBvcGVuU2F2ZVN1YnNjcmlwdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLnNhdmVTdWJzY3JpcHRpb24gPSB0aGlzLnNhdmUkPy5zdWJzY3JpYmUoc2F2ZSA9PiB7XG4gICAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLmZvcm1WYWx1ZSQsIHRoaXMudmFsaWQkXSlcbiAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgLnN1YnNjcmliZSgoW2Zvcm1WYWx1ZSwgdmFsaWRdKSA9PiB7XG4gICAgICAgICAgY29uc3QgZm9ybVZhbHVlVG9TYXZlOiBWZXJ6b2VrQ29uZmlnID0ge1xuICAgICAgICAgICAgLi4uZm9ybVZhbHVlLFxuICAgICAgICAgICAgdmVyem9la1Byb3BlcnRpZXM6IGZvcm1WYWx1ZS52ZXJ6b2VrUHJvcGVydGllcy5tYXAodmVyem9layA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHZlcnpvZWtUb1JldHVybjogVmVyem9la1R5cGUgPSB7Li4udmVyem9la307XG4gICAgICAgICAgICAgIGRlbGV0ZSB2ZXJ6b2VrVG9SZXR1cm4udXVpZDtcblxuICAgICAgICAgICAgICBpZiAodGhpcy5tYXBwaW5nc1t2ZXJ6b2VrLnV1aWRdICYmIHZlcnpvZWsuY29weVN0cmF0ZWd5ID09PSAnc3BlY2lmaWVkJykge1xuICAgICAgICAgICAgICAgIHZlcnpvZWtUb1JldHVybi5tYXBwaW5nID0gdGhpcy5tYXBwaW5nc1t2ZXJ6b2VrLnV1aWRdO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi52ZXJ6b2VrVG9SZXR1cm4sXG4gICAgICAgICAgICAgICAgLi4uKHZlcnpvZWtUb1JldHVybi5tYXBwaW5nICYmIHtcbiAgICAgICAgICAgICAgICAgIG1hcHBpbmc6IHZlcnpvZWtUb1JldHVybi5tYXBwaW5nLm1hcCh2ZXJ6b2VrTWFwcGluZyA9PiAoe1xuICAgICAgICAgICAgICAgICAgICBzb3VyY2U6IHZlcnpvZWtNYXBwaW5nLmtleSxcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0OiB2ZXJ6b2VrTWFwcGluZy52YWx1ZSxcbiAgICAgICAgICAgICAgICAgIH0pKSBhcyBBcnJheTxhbnk+LFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgfTtcbiAgICAgICAgICBpZiAodmFsaWQpIHtcbiAgICAgICAgICAgIHRoaXMuY29uZmlndXJhdGlvbi5lbWl0KGZvcm1WYWx1ZVRvU2F2ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0TWFwcGVkUHJlZmlsbCgpOiB2b2lkIHtcbiAgICB0aGlzLm1hcHBlZFByZWZpbGwkID0gdGhpcy5wcmVmaWxsQ29uZmlndXJhdGlvbiQucGlwZShcbiAgICAgIGZpbHRlcihwcmVmaWxsID0+ICEhcHJlZmlsbCksXG4gICAgICBtYXAocHJlZmlsbCA9PiAoe1xuICAgICAgICAuLi5wcmVmaWxsLFxuICAgICAgICB2ZXJ6b2VrUHJvcGVydGllczogcHJlZmlsbC52ZXJ6b2VrUHJvcGVydGllcy5tYXAodmVyem9la1R5cGUgPT4gKHtcbiAgICAgICAgICAuLi52ZXJ6b2VrVHlwZSxcbiAgICAgICAgICAuLi4odmVyem9la1R5cGUubWFwcGluZyAmJlxuICAgICAgICAgICAgQXJyYXkuaXNBcnJheSh2ZXJ6b2VrVHlwZS5tYXBwaW5nKSAmJiB7XG4gICAgICAgICAgICAgIG1hcHBpbmc6IHZlcnpvZWtUeXBlLm1hcHBpbmcubWFwKG1hcHBpbmcgPT4gKHtcbiAgICAgICAgICAgICAgICBrZXk6IG1hcHBpbmcuc291cmNlLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBtYXBwaW5nLnRhcmdldCxcbiAgICAgICAgICAgICAgfSkpLFxuICAgICAgICAgICAgfSksXG4gICAgICAgIH0pKSxcbiAgICAgIH0pKSxcbiAgICAgIHRhcChwcmVmaWxsID0+IHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5mb3JtVmFsdWUkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKGZvcm1WYWx1ZSA9PiB7XG4gICAgICAgICAgICBpZiAoIXRoaXMubWFwcGluZ1NldCkge1xuICAgICAgICAgICAgICBjb25zdCBwcmVmaWxsVmVyem9la2VuID0gcHJlZmlsbD8udmVyem9la1Byb3BlcnRpZXM7XG4gICAgICAgICAgICAgIGNvbnN0IGZvcm1WYWx1ZVZlcnpvZWtlbiA9IGZvcm1WYWx1ZT8udmVyem9la1Byb3BlcnRpZXM7XG5cbiAgICAgICAgICAgICAgcHJlZmlsbFZlcnpvZWtlbi5mb3JFYWNoKCh2ZXJ6b2VrLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1hcHBpbmdGb3JWZXJ6b2VrID0gdmVyem9laz8ubWFwcGluZztcbiAgICAgICAgICAgICAgICBjb25zdCB1dWlkRm9yTWFwcGluZyA9IGZvcm1WYWx1ZVZlcnpvZWtlbltpbmRleF0udXVpZDtcblxuICAgICAgICAgICAgICAgIGlmIChtYXBwaW5nRm9yVmVyem9layAmJiB1dWlkRm9yTWFwcGluZykge1xuICAgICAgICAgICAgICAgICAgdGhpcy5tYXBwaW5nc1t1dWlkRm9yTWFwcGluZ10gPSBtYXBwaW5nRm9yVmVyem9laztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgIHRoaXMubWFwcGluZ1NldCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sIDI1MCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAgflxuICB+IExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICB+IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgfiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgflxuICB+IGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAgflxuICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgfiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gIH4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIH4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICB+IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICAtLT5cblxuPHYtZm9ybVxuICAodmFsdWVDaGFuZ2UpPVwiZm9ybVZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAqbmdJZj1cIntcbiAgICBkaXNhYmxlZDogZGlzYWJsZWQkIHwgYXN5bmMsXG4gICAgcHJlZmlsbDogbWFwcGVkUHJlZmlsbCQgPyAobWFwcGVkUHJlZmlsbCQgfCBhc3luYykgOiBudWxsLFxuICB9IGFzIG9ic1wiXG4+XG4gIDx2LWlucHV0XG4gICAgbmFtZT1cImNvbmZpZ3VyYXRpb25UaXRsZVwiXG4gICAgW3RpdGxlXT1cIidjb25maWd1cmF0aW9uVGl0bGUnIHwgcGx1Z2luVHJhbnNsYXRlOiBwbHVnaW5JZCB8IGFzeW5jXCJcbiAgICBbbWFyZ2luXT1cInRydWVcIlxuICAgIFtkaXNhYmxlZF09XCJvYnMuZGlzYWJsZWRcIlxuICAgIFtkZWZhdWx0VmFsdWVdPVwib2JzLnByZWZpbGw/LmNvbmZpZ3VyYXRpb25UaXRsZVwiXG4gICAgW3JlcXVpcmVkXT1cInRydWVcIlxuICAgIFt0b29sdGlwXT1cIidjb25maWd1cmF0aW9uVGl0bGVUb29sdGlwJyB8IHBsdWdpblRyYW5zbGF0ZTogcGx1Z2luSWQgfCBhc3luY1wiXG4gICAgcGxhY2Vob2xkZXI9XCJWZXJ6b2VrIFBsdWdpblwiXG4gID5cbiAgPC92LWlucHV0PlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nSWY9XCJ7bm90aWZpY2F0aWVQbHVnaW5TZWxlY3RJdGVtczogbm90aWZpY2F0aWVQbHVnaW5TZWxlY3RJdGVtcyQgfCBhc3luY30gYXMgdmFyc1wiXG4gID5cbiAgICA8di1zZWxlY3RcbiAgICAgIFtpdGVtc109XCJ2YXJzLm5vdGlmaWNhdGllUGx1Z2luU2VsZWN0SXRlbXNcIlxuICAgICAgW21hcmdpbl09XCJ0cnVlXCJcbiAgICAgIG5hbWU9XCJub3RpZmljYXRpZXNBcGlQbHVnaW5Db25maWd1cmF0aW9uXCJcbiAgICAgIFt0aXRsZV09XCInbm90aWZpY2F0aWVzQXBpUGx1Z2luQ29uZmlndXJhdGlvbicgfCBwbHVnaW5UcmFuc2xhdGU6IHBsdWdpbklkIHwgYXN5bmNcIlxuICAgICAgW2Rpc2FibGVkXT1cIm9icy5kaXNhYmxlZFwiXG4gICAgICBbZGVmYXVsdFNlbGVjdGlvbklkXT1cIm9icy5wcmVmaWxsPy5ub3RpZmljYXRpZXNBcGlQbHVnaW5Db25maWd1cmF0aW9uXCJcbiAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgIFtsb2FkaW5nXT1cIiF2YXJzLm5vdGlmaWNhdGllUGx1Z2luU2VsZWN0SXRlbXNcIlxuICAgICAgW3Rvb2x0aXBdPVwiJ25vdGlmaWNhdGllc0FwaVBsdWdpbkNvbmZpZ3VyYXRpb25Ub29sdGlwJyB8IHBsdWdpblRyYW5zbGF0ZTogcGx1Z2luSWQgfCBhc3luY1wiXG4gICAgPjwvdi1zZWxlY3Q+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwie3Byb2Nlc3NTZWxlY3RJdGVtczogcHJvY2Vzc1NlbGVjdEl0ZW1zJCB8IGFzeW5jfSBhcyB2YXJzXCI+XG4gICAgPHYtc2VsZWN0XG4gICAgICBbaXRlbXNdPVwidmFycy5wcm9jZXNzU2VsZWN0SXRlbXNcIlxuICAgICAgW21hcmdpbl09XCJ0cnVlXCJcbiAgICAgIG5hbWU9XCJwcm9jZXNzVG9TdGFydFwiXG4gICAgICBbdGl0bGVdPVwiJ3Byb2Nlc3NUb1N0YXJ0JyB8IHBsdWdpblRyYW5zbGF0ZTogcGx1Z2luSWQgfCBhc3luY1wiXG4gICAgICBbZGlzYWJsZWRdPVwib2JzLmRpc2FibGVkXCJcbiAgICAgIFtkZWZhdWx0U2VsZWN0aW9uSWRdPVwib2JzLnByZWZpbGw/LnByb2Nlc3NUb1N0YXJ0XCJcbiAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgIFtsb2FkaW5nXT1cIiF2YXJzLnByb2Nlc3NTZWxlY3RJdGVtc1wiXG4gICAgICBbdG9vbHRpcF09XCIncHJvY2Vzc1RvU3RhcnRUb29sdGlwJyB8IHBsdWdpblRyYW5zbGF0ZTogcGx1Z2luSWQgfCBhc3luY1wiXG4gICAgPjwvdi1zZWxlY3Q+XG4gIDwvbmctY29udGFpbmVyPlxuICA8di1pbnB1dFxuICAgIG5hbWU9XCJyc2luXCJcbiAgICBbdGl0bGVdPVwiJ3JzaW4nIHwgcGx1Z2luVHJhbnNsYXRlOiBwbHVnaW5JZCB8IGFzeW5jXCJcbiAgICBbbWFyZ2luXT1cInRydWVcIlxuICAgIFtkaXNhYmxlZF09XCJvYnMuZGlzYWJsZWRcIlxuICAgIFtkZWZhdWx0VmFsdWVdPVwib2JzLnByZWZpbGw/LnJzaW5cIlxuICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICBbdG9vbHRpcF09XCIncnNpblRvb2x0aXAnIHwgcGx1Z2luVHJhbnNsYXRlOiBwbHVnaW5JZCB8IGFzeW5jXCJcbiAgICBwbGFjZWhvbGRlcj1cIlwiXG4gID5cbiAgPC92LWlucHV0PlxuICA8di1tdWx0aS1pbnB1dC1mb3JtXG4gICAgbmFtZT1cInZlcnpvZWtQcm9wZXJ0aWVzXCJcbiAgICBbdGl0bGVdPVwiJ3ZlcnpvZWtQcm9wZXJ0aWVzJyB8IHBsdWdpblRyYW5zbGF0ZTogcGx1Z2luSWQgfCBhc3luY1wiXG4gICAgW2Zvcm1UZW1wbGF0ZV09XCJtYXBwaW5nRm9ybVwiXG4gICAgW2FkZFJvd1RleHRdPVwiJ2FkZFZlcnpvZWtUeXBlJyB8IHBsdWdpblRyYW5zbGF0ZTogcGx1Z2luSWQgfCBhc3luY1wiXG4gICAgW3JlcXVpcmVkXT1cImZhbHNlXCJcbiAgICBbdG9vbHRpcF09XCIndmVyem9la1Byb3BlcnRpZXNUb29sdGlwJyB8IHBsdWdpblRyYW5zbGF0ZTogcGx1Z2luSWQgfCBhc3luY1wiXG4gICAgKGRlbGV0ZVJvd0V2ZW50KT1cImRlbGV0ZVJvdygkZXZlbnQpXCJcbiAgICBbaW5pdGlhbEFtb3VudE9mUm93c109XCIwXCJcbiAgICBbbWluaW11bUFtb3VudE9mUm93c109XCIwXCJcbiAgICBbZGVmYXVsdFZhbHVlc109XCJvYnMucHJlZmlsbD8udmVyem9la1Byb3BlcnRpZXNcIlxuICA+XG4gIDwvdi1tdWx0aS1pbnB1dC1mb3JtPlxuPC92LWZvcm0+XG5cbjxuZy10ZW1wbGF0ZVxuICAjbWFwcGluZ0Zvcm1cbiAgbGV0LWluZGV4PVwiaW5kZXhcIlxuICBsZXQtdXVpZD1cInV1aWRcIlxuICBsZXQtY2hhbmdlRnVuY3Rpb249XCJjaGFuZ2VGdW5jdGlvblwiXG4gIGxldC1wcmVmaWxsPVwicHJlZmlsbFwiXG4+XG4gIDxuZy1jb250YWluZXJcbiAgICAqbmdJZj1cIntcbiAgICAgIGRpc2FibGVkOiBkaXNhYmxlZCQgfCBhc3luYyxcbiAgICB9IGFzIG9ic1wiXG4gID5cbiAgICA8di1mb3JtICh2YWx1ZUNoYW5nZSk9XCJjaGFuZ2VGdW5jdGlvbigkZXZlbnQsIHV1aWQpOyB2ZXJ6b2VrVHlwZUZvcm1DaGFuZ2UoJGV2ZW50LCB1dWlkKVwiPlxuICAgICAgPHYtaW5wdXRcbiAgICAgICAgbmFtZT1cInR5cGVcIlxuICAgICAgICBbdGl0bGVdPVwiJ3R5cGUnIHwgcGx1Z2luVHJhbnNsYXRlOiBwbHVnaW5JZCB8IGFzeW5jXCJcbiAgICAgICAgW21hcmdpbl09XCJmYWxzZVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJvYnMuZGlzYWJsZWRcIlxuICAgICAgICBbZGVmYXVsdFZhbHVlXT1cInByZWZpbGw/LnR5cGVcIlxuICAgICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICAgIFt0b29sdGlwXT1cIid0eXBlVG9vbHRpcCcgfCBwbHVnaW5UcmFuc2xhdGU6IHBsdWdpbklkIHwgYXN5bmNcIlxuICAgICAgICBbc21hbGxNYXJnaW5dPVwidHJ1ZVwiXG4gICAgICAgIHBsYWNlaG9sZGVyPVwiXCJcbiAgICAgID5cbiAgICAgIDwvdi1pbnB1dD5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ7ZG9jdW1lbnRTZWxlY3RJdGVtczogZG9jdW1lbnRTZWxlY3RJdGVtcyQgfCBhc3luY30gYXMgdmFyc1wiPlxuICAgICAgICA8di1zZWxlY3RcbiAgICAgICAgICBbaXRlbXNdPVwidmFycy5kb2N1bWVudFNlbGVjdEl0ZW1zXCJcbiAgICAgICAgICBbc21hbGxNYXJnaW5dPVwidHJ1ZVwiXG4gICAgICAgICAgbmFtZT1cImNhc2VEZWZpbml0aW9uTmFtZVwiXG4gICAgICAgICAgW3RpdGxlXT1cIidjYXNlRGVmaW5pdGlvbk5hbWUnIHwgcGx1Z2luVHJhbnNsYXRlOiBwbHVnaW5JZCB8IGFzeW5jXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwib2JzLmRpc2FibGVkXCJcbiAgICAgICAgICBbZGVmYXVsdFNlbGVjdGlvbklkXT1cInByZWZpbGw/LmNhc2VEZWZpbml0aW9uTmFtZVwiXG4gICAgICAgICAgW3JlcXVpcmVkXT1cInRydWVcIlxuICAgICAgICAgIFtsb2FkaW5nXT1cIiF2YXJzLmRvY3VtZW50U2VsZWN0SXRlbXNcIlxuICAgICAgICAgIFt0b29sdGlwXT1cIidjYXNlRGVmaW5pdGlvbk5hbWVUb29sdGlwJyB8IHBsdWdpblRyYW5zbGF0ZTogcGx1Z2luSWQgfCBhc3luY1wiXG4gICAgICAgID48L3Ytc2VsZWN0PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ0lmPVwie29iamVjdE1hbmFnZW1lbnRTZWxlY3RJdGVtczogb2JqZWN0TWFuYWdlbWVudFNlbGVjdEl0ZW1zJCB8IGFzeW5jfSBhcyB2YXJzXCJcbiAgICAgID5cbiAgICAgICAgPHYtc2VsZWN0XG4gICAgICAgICAgW2l0ZW1zXT1cInZhcnMub2JqZWN0TWFuYWdlbWVudFNlbGVjdEl0ZW1zXCJcbiAgICAgICAgICBbc21hbGxNYXJnaW5dPVwidHJ1ZVwiXG4gICAgICAgICAgbmFtZT1cIm9iamVjdE1hbmFnZW1lbnRJZFwiXG4gICAgICAgICAgW3RpdGxlXT1cIidvYmplY3RNYW5hZ2VtZW50SWQnIHwgcGx1Z2luVHJhbnNsYXRlOiBwbHVnaW5JZCB8IGFzeW5jXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwib2JzLmRpc2FibGVkXCJcbiAgICAgICAgICBbZGVmYXVsdFNlbGVjdGlvbklkXT1cInByZWZpbGw/Lm9iamVjdE1hbmFnZW1lbnRJZFwiXG4gICAgICAgICAgW3JlcXVpcmVkXT1cInRydWVcIlxuICAgICAgICAgIFtsb2FkaW5nXT1cIiF2YXJzLm9iamVjdE1hbmFnZW1lbnRTZWxlY3RJdGVtc1wiXG4gICAgICAgICAgW3Rvb2x0aXBdPVwiJ29iamVjdE1hbmFnZW1lbnRJZFRvb2x0aXAnIHwgcGx1Z2luVHJhbnNsYXRlOiBwbHVnaW5JZCB8IGFzeW5jXCJcbiAgICAgICAgPjwvdi1zZWxlY3Q+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDx2LXNlbGVjdFxuICAgICAgICBbaXRlbXNdPVwiXG4gICAgICAgICAgcm9sVHlwZVNlbGVjdEl0ZW1zT2JzZXJ2YWJsZXNbdXVpZF0/LmNhc2VEZWZpbml0aW9uTmFtZSAmJlxuICAgICAgICAgIChyb2xUeXBlU2VsZWN0SXRlbXNPYnNlcnZhYmxlc1t1dWlkXS5pdGVtcyB8IGFzeW5jKVxuICAgICAgICBcIlxuICAgICAgICBbc21hbGxNYXJnaW5dPVwidHJ1ZVwiXG4gICAgICAgIG5hbWU9XCJpbml0aWF0b3JSb2x0eXBlVXJsXCJcbiAgICAgICAgW3RpdGxlXT1cIidpbml0aWF0b3JSb2x0eXBlVXJsJyB8IHBsdWdpblRyYW5zbGF0ZTogcGx1Z2luSWQgfCBhc3luY1wiXG4gICAgICAgIFtkaXNhYmxlZF09XCJvYnMuZGlzYWJsZWQgfHwgIXJvbFR5cGVTZWxlY3RJdGVtc09ic2VydmFibGVzW3V1aWRdPy5jYXNlRGVmaW5pdGlvbk5hbWVcIlxuICAgICAgICBbZGVmYXVsdFNlbGVjdGlvbklkXT1cInByZWZpbGw/LmluaXRpYXRvclJvbHR5cGVVcmxcIlxuICAgICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICAgIFt0b29sdGlwXT1cIidpbml0aWF0b3JSb2x0eXBlVXJsVG9vbHRpcCcgfCBwbHVnaW5UcmFuc2xhdGU6IHBsdWdpbklkIHwgYXN5bmNcIlxuICAgICAgPjwvdi1zZWxlY3Q+XG4gICAgICA8di1pbnB1dFxuICAgICAgICBuYW1lPVwiaW5pdGlhdG9yUm9sRGVzY3JpcHRpb25cIlxuICAgICAgICBbdGl0bGVdPVwiJ2luaXRpYXRvclJvbERlc2NyaXB0aW9uJyB8IHBsdWdpblRyYW5zbGF0ZTogcGx1Z2luSWQgfCBhc3luY1wiXG4gICAgICAgIFttYXJnaW5dPVwiZmFsc2VcIlxuICAgICAgICBbZGlzYWJsZWRdPVwib2JzLmRpc2FibGVkXCJcbiAgICAgICAgW2RlZmF1bHRWYWx1ZV09XCJwcmVmaWxsPy5pbml0aWF0b3JSb2xEZXNjcmlwdGlvbiB8fCAnSW5pdGlhdG9yJ1wiXG4gICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgW3Rvb2x0aXBdPVwiJ2luaXRpYXRvclJvbERlc2NyaXB0aW9uVG9vbHRpcCcgfCBwbHVnaW5UcmFuc2xhdGU6IHBsdWdpbklkIHwgYXN5bmNcIlxuICAgICAgICBbc21hbGxNYXJnaW5dPVwidHJ1ZVwiXG4gICAgICAgIHBsYWNlaG9sZGVyPVwiXCJcbiAgICAgID5cbiAgICAgIDwvdi1pbnB1dD5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ7cHJvY2Vzc1NlbGVjdEl0ZW1zOiBwcm9jZXNzU2VsZWN0SXRlbXMkIHwgYXN5bmN9IGFzIHZhcnNcIj5cbiAgICAgICAgPHYtc2VsZWN0XG4gICAgICAgICAgW2l0ZW1zXT1cInZhcnMucHJvY2Vzc1NlbGVjdEl0ZW1zXCJcbiAgICAgICAgICBbc21hbGxNYXJnaW5dPVwidHJ1ZVwiXG4gICAgICAgICAgbmFtZT1cInByb2Nlc3NEZWZpbml0aW9uS2V5XCJcbiAgICAgICAgICBbdGl0bGVdPVwiJ3Byb2Nlc3NEZWZpbml0aW9uS2V5JyB8IHBsdWdpblRyYW5zbGF0ZTogcGx1Z2luSWQgfCBhc3luY1wiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIm9icy5kaXNhYmxlZFwiXG4gICAgICAgICAgW2RlZmF1bHRTZWxlY3Rpb25JZF09XCJwcmVmaWxsPy5wcm9jZXNzRGVmaW5pdGlvbktleVwiXG4gICAgICAgICAgW3JlcXVpcmVkXT1cInRydWVcIlxuICAgICAgICAgIFtsb2FkaW5nXT1cIiF2YXJzLnByb2Nlc3NTZWxlY3RJdGVtc1wiXG4gICAgICAgICAgW3Rvb2x0aXBdPVwiJ3Byb2Nlc3NEZWZpbml0aW9uS2V5VG9vbHRpcCcgfCBwbHVnaW5UcmFuc2xhdGU6IHBsdWdpbklkIHwgYXN5bmNcIlxuICAgICAgICA+PC92LXNlbGVjdD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPHYtcmFkaW9cbiAgICAgICAgbmFtZT1cImNvcHlTdHJhdGVneVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJvYnMuZGlzYWJsZWRcIlxuICAgICAgICBbdGl0bGVdPVwiJ2NvcHlTdHJhdGVneScgfCBwbHVnaW5UcmFuc2xhdGU6IHBsdWdpbklkIHwgYXN5bmNcIlxuICAgICAgICBbdG9vbHRpcF09XCInY29weVN0cmF0ZWd5VG9vbHRpcCcgfCBwbHVnaW5UcmFuc2xhdGU6IHBsdWdpbklkIHwgYXN5bmNcIlxuICAgICAgICBbcmFkaW9WYWx1ZXNdPVwicmFkaW9JdGVtcyQgfCBhc3luY1wiXG4gICAgICAgIFtzbWFsbE1hcmdpbl09XCJ0cnVlXCJcbiAgICAgICAgW2RlZmF1bHRWYWx1ZV09XCJwcmVmaWxsPy5jb3B5U3RyYXRlZ3kgfHwgJ2Z1bGwnXCJcbiAgICAgID5cbiAgICAgIDwvdi1yYWRpbz5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93TWFwcGluZ0J1dHRvbnNbdXVpZF1cIj5cbiAgICAgICAgPHYtaW5wdXQtbGFiZWxcbiAgICAgICAgICBbdGl0bGVdPVwiJ21hcHBpbmcnIHwgcGx1Z2luVHJhbnNsYXRlOiBwbHVnaW5JZCB8IGFzeW5jXCJcbiAgICAgICAgICBbdG9vbHRpcF09XCInbWFwcGluZ1Rvb2x0aXAnIHwgcGx1Z2luVHJhbnNsYXRlOiBwbHVnaW5JZCB8IGFzeW5jXCJcbiAgICAgICAgPlxuICAgICAgICA8L3YtaW5wdXQtbGFiZWw+XG4gICAgICAgIDx2LWJ1dHRvbiAoY2xpY2tFdmVudCk9XCJvcGVuTWFwcGluZ01vZGFsKHV1aWQpXCIgbWRpSWNvbj1cInRhYmxlXCJcbiAgICAgICAgICA+e3sgJ3NldE1hcHBpbmcnIHwgcGx1Z2luVHJhbnNsYXRlOiBwbHVnaW5JZCB8IGFzeW5jIH19XG4gICAgICAgIDwvdi1idXR0b24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDx2LWlucHV0IGNsYXNzPVwiaGlkZGVuLWlucHV0XCIgbmFtZT1cInV1aWRcIiBbZGVmYXVsdFZhbHVlXT1cInV1aWRcIj4gPC92LWlucHV0PlxuICAgIDwvdi1mb3JtPlxuICAgIDxjZHMtbW9kYWwgY2RzTW9kYWwgW29wZW5dPVwic2hvd01hcHBpbmdNb2RhbHNbdXVpZF1cIj5cbiAgICAgIDxjZHMtbW9kYWwtaGVhZGVyIFtzaG93Q2xvc2VCdXR0b25dPVwidHJ1ZVwiIChjbG9zZVNlbGVjdCk9XCJjbG9zZU1hcHBpbmdNb2RhbCh1dWlkKVwiPlxuICAgICAgICA8aDMgY2RzTW9kYWxIZWFkZXJIZWFkaW5nPnt7ICdzZXRNYXBwaW5nJyB8IHBsdWdpblRyYW5zbGF0ZTogcGx1Z2luSWQgfCBhc3luYyB9fTwvaDM+XG4gICAgICA8L2Nkcy1tb2RhbC1oZWFkZXI+XG4gICAgICA8c2VjdGlvbiBjZHNNb2RhbENvbnRlbnQ+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjZHMtLXRleHQtaW5wdXRfX2ZpZWxkLXdyYXBwZXJcIj5cbiAgICAgICAgICA8Y2RzLWxhYmVsIFtkaXNhYmxlZF09XCJvYnMuZGlzYWJsZWRcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGFiZWwtd2l0aC10b29sdGlwIHNlbGVjdC1sYWJlbFwiPlxuICAgICAgICAgICAgICB7eyAnbWFwcGluZycgfCBwbHVnaW5UcmFuc2xhdGU6IHBsdWdpbklkIHwgYXN5bmMgfX1cbiAgICAgICAgICAgICAgPHYtdG9vbHRpcC1pY29uXG4gICAgICAgICAgICAgICAgW3Rvb2x0aXBdPVwiJ21hcHBpbmdUb29sdGlwJyB8IHBsdWdpblRyYW5zbGF0ZTogcGx1Z2luSWQgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIm9icy5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgID48L3YtdG9vbHRpcC1pY29uPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvY2RzLWxhYmVsPlxuICAgICAgICAgIDx2YWx0aW1vLWNhcmJvbi1tdWx0aS1pbnB1dFxuICAgICAgICAgICAgKm5nSWY9XCJzaG93TWFwcGluZ01vZGFsc0RlbGF5W3V1aWRdXCJcbiAgICAgICAgICAgIHR5cGU9XCJrZXlWYWx1ZVwiXG4gICAgICAgICAgICAodmFsdWVDaGFuZ2UpPVwibWFwcGluZ1ZhbHVlQ2hhbmdlKCRldmVudCwgdXVpZClcIlxuICAgICAgICAgICAgW2RlZmF1bHRWYWx1ZXNdPVwibWFwcGluZ3NbdXVpZF0gfHwgcHJlZmlsbD8ubWFwcGluZ1wiXG4gICAgICAgICAgICBbdmFsdWVDb2x1bW5UaXRsZV09XCIndGFyZ2V0JyB8IHBsdWdpblRyYW5zbGF0ZTogcGx1Z2luSWQgfCBhc3luY1wiXG4gICAgICAgICAgICBba2V5Q29sdW1uVGl0bGVdPVwiJ3NvdXJjZScgfCBwbHVnaW5UcmFuc2xhdGU6IHBsdWdpbklkIHwgYXN5bmNcIlxuICAgICAgICAgICAgW2Z1bGxXaWR0aF09XCJ0cnVlXCJcbiAgICAgICAgICA+PC92YWx0aW1vLWNhcmJvbi1tdWx0aS1pbnB1dD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L3NlY3Rpb24+XG4gICAgICA8Y2RzLW1vZGFsLWZvb3Rlcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBjZHNCdXR0b249XCJzZWNvbmRhcnlcIlxuICAgICAgICAgICAgW2F0dHIubW9kYWwtcHJpbWFyeS1mb2N1c109XCJ0cnVlXCJcbiAgICAgICAgICAgIChjbGljayk9XCJjbG9zZU1hcHBpbmdNb2RhbCh1dWlkKVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwib2JzLmRpc2FibGVkXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyAnY2xvc2UnIHwgcGx1Z2luVHJhbnNsYXRlOiBwbHVnaW5JZCB8IGFzeW5jIH19XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgY2RzQnV0dG9uPVwicHJpbWFyeVwiXG4gICAgICAgICAgICBbYXR0ci5tb2RhbC1wcmltYXJ5LWZvY3VzXT1cInRydWVcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIm9icy5kaXNhYmxlZFwiXG4gICAgICAgICAgICAoY2xpY2spPVwic2F2ZU1hcHBpbmcodXVpZClcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIm9icy5kaXNhYmxlZFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgJ3NhdmUnIHwgcGx1Z2luVHJhbnNsYXRlOiBwbHVnaW5JZCB8IGFzeW5jIH19XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9jZHMtbW9kYWwtZm9vdGVyPlxuICAgIDwvY2RzLW1vZGFsPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
229
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyem9lay1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vcGx1Z2luL3NyYy9saWIvcGx1Z2lucy92ZXJ6b2VrL2NvbXBvbmVudHMvdmVyem9lay1jb25maWd1cmF0aW9uL3ZlcnpvZWstY29uZmlndXJhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL3BsdWdpbi9zcmMvbGliL3BsdWdpbnMvdmVyem9lay9jb21wb25lbnRzL3ZlcnpvZWstY29uZmlndXJhdGlvbi92ZXJ6b2VrLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUVOLFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQ0wsZUFBZSxFQUNmLGFBQWEsRUFDYixNQUFNLEVBQ04sR0FBRyxFQUVILEVBQUUsRUFFRixJQUFJLEVBQ0osR0FBRyxHQUNKLE1BQU0sTUFBTSxDQUFDO0FBSWQsT0FBTyxFQUtMLGVBQWUsR0FDaEIsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7Ozs7QUFVN0IsTUFBTSxPQUFPLDZCQUE2QjtJQXlGeEMsWUFDbUIsdUJBQWdELEVBQ2hELGdCQUFrQyxFQUNsQyx3QkFBa0QsRUFDbEQsb0JBQTBDLEVBQzFDLGNBQThCLEVBQzlCLGVBQWdDLEVBQ2hDLFlBQTBCO1FBTjFCLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7UUFDaEQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ2xELHlCQUFvQixHQUFwQixvQkFBb0IsQ0FB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QWtCLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDO3dCQUV0RCxJQUFJLGlCQUFpQixJQUFJLGNBQWMsRUFBRSxDQUFDOzRCQUN4QyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxHQUFHLGlCQUFpQixDQUFDO3dCQUNwRCxDQUFDO29CQUNILENBQUMsQ0FBQyxDQUFDO2dCQUNMLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ1YsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7K0dBclFVLDZCQUE2QjttR0FBN0IsNkJBQTZCLDhSQUcxQixlQUFlLGdEQzVEL0IsZzRUQTZQQTs7NEZEcE1hLDZCQUE2QjtrQkFMekMsU0FBUzsrQkFDRSwrQkFBK0I7MlJBT1YsYUFBYTtzQkFBM0MsWUFBWTt1QkFBQyxlQUFlO2dCQUVwQixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDSSxLQUFLO3NCQUFkLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBWaWV3Q2hpbGRyZW4sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtQbHVnaW5Db25maWd1cmF0aW9uQ29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBjb21iaW5lTGF0ZXN0LFxuICBmaWx0ZXIsXG4gIG1hcCxcbiAgT2JzZXJ2YWJsZSxcbiAgb2YsXG4gIFN1YnNjcmlwdGlvbixcbiAgdGFrZSxcbiAgdGFwLFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7Q29weVN0cmF0ZWd5LCBWZXJ6b2VrQ29uZmlnLCBWZXJ6b2VrVHlwZX0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7UGx1Z2luTWFuYWdlbWVudFNlcnZpY2UsIFBsdWdpblRyYW5zbGF0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7XG4gIE1vZGFsU2VydmljZSxcbiAgTXVsdGlJbnB1dFZhbHVlcyxcbiAgUmFkaW9WYWx1ZSxcbiAgU2VsZWN0SXRlbSxcbiAgVk1vZGFsQ29tcG9uZW50LFxufSBmcm9tICdAdmFsdGltby9jb21wb25lbnRzJztcbmltcG9ydCB7VmVyem9la1BsdWdpblNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7UHJvY2Vzc1NlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL3Byb2Nlc3MnO1xuaW1wb3J0IHtEb2N1bWVudFNlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL2RvY3VtZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby12ZXJ6b2VrLWNvbmZpZ3VyYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vdmVyem9lay1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdmVyem9lay1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFZlcnpvZWtDb25maWd1cmF0aW9uQ29tcG9uZW50XG4gIGltcGxlbWVudHMgUGx1Z2luQ29uZmlndXJhdGlvbkNvbXBvbmVudCwgT25Jbml0LCBPbkRlc3Ryb3lcbntcbiAgQFZpZXdDaGlsZHJlbihWTW9kYWxDb21wb25lbnQpIG1hcHBpbmdNb2RhbHM6IFF1ZXJ5TGlzdDxWTW9kYWxDb21wb25lbnQ+O1xuXG4gIEBJbnB1dCgpIHNhdmUkOiBPYnNlcnZhYmxlPHZvaWQ+O1xuICBASW5wdXQoKSBkaXNhYmxlZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIEBJbnB1dCgpIHBsdWdpbklkOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHByZWZpbGxDb25maWd1cmF0aW9uJDogT2JzZXJ2YWJsZTxWZXJ6b2VrQ29uZmlnPjtcbiAgQE91dHB1dCgpIHZhbGlkOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIEBPdXRwdXQoKSBjb25maWd1cmF0aW9uOiBFdmVudEVtaXR0ZXI8VmVyem9la0NvbmZpZz4gPSBuZXcgRXZlbnRFbWl0dGVyPFZlcnpvZWtDb25maWc+KCk7XG5cbiAgbWFwcGVkUHJlZmlsbCQ6IE9ic2VydmFibGU8VmVyem9la0NvbmZpZz47XG5cbiAgcmVhZG9ubHkgbm90aWZpY2F0aWVQbHVnaW5TZWxlY3RJdGVtcyQ6IE9ic2VydmFibGU8QXJyYXk8U2VsZWN0SXRlbT4+ID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5wbHVnaW5NYW5hZ2VtZW50U2VydmljZS5nZXRQbHVnaW5Db25maWd1cmF0aW9uc0J5UGx1Z2luRGVmaW5pdGlvbktleSgnbm90aWZpY2F0aWVzYXBpJyksXG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnN0cmVhbSgna2V5JyksXG4gIF0pLnBpcGUoXG4gICAgbWFwKChbY29uZmlndXJhdGlvbnNdKSA9PlxuICAgICAgY29uZmlndXJhdGlvbnMubWFwKGNvbmZpZ3VyYXRpb24gPT4gKHtcbiAgICAgICAgaWQ6IGNvbmZpZ3VyYXRpb24uaWQsXG4gICAgICAgIHRleHQ6IGAke2NvbmZpZ3VyYXRpb24udGl0bGV9IC0gJHt0aGlzLnBsdWdpblRyYW5zbGF0aW9uU2VydmljZS5pbnN0YW50KFxuICAgICAgICAgICd0aXRsZScsXG4gICAgICAgICAgY29uZmlndXJhdGlvbi5wbHVnaW5EZWZpbml0aW9uLmtleVxuICAgICAgICApfWAsXG4gICAgICB9KSlcbiAgICApXG4gICk7XG5cbiAgcmVhZG9ubHkgb2JqZWN0TWFuYWdlbWVudFNlbGVjdEl0ZW1zJDogT2JzZXJ2YWJsZTxBcnJheTxTZWxlY3RJdGVtPj4gPSB0aGlzLnZlcnpvZWtQbHVnaW5TZXJ2aWNlXG4gICAgLmdldEFsbE9iamVjdHMoKVxuICAgIC5waXBlKFxuICAgICAgbWFwKG9iamVjdHMgPT5cbiAgICAgICAgb2JqZWN0cy5tYXAob2JqZWN0ID0+ICh7XG4gICAgICAgICAgaWQ6IG9iamVjdC5pZCxcbiAgICAgICAgICB0ZXh0OiBvYmplY3QudGl0bGUsXG4gICAgICAgIH0pKVxuICAgICAgKVxuICAgICk7XG5cbiAgcmVhZG9ubHkgcHJvY2Vzc1NlbGVjdEl0ZW1zJDogT2JzZXJ2YWJsZTxBcnJheTxTZWxlY3RJdGVtPj4gPSB0aGlzLnByb2Nlc3NTZXJ2aWNlXG4gICAgLmdldFByb2Nlc3NEZWZpbml0aW9ucygpXG4gICAgLnBpcGUoXG4gICAgICBtYXAocHJvY2Vzc0RlZmluaXRpb25zID0+XG4gICAgICAgIHByb2Nlc3NEZWZpbml0aW9ucy5tYXAocHJvY2Vzc0RlZmluaXRpb24gPT4gKHtcbiAgICAgICAgICBpZDogcHJvY2Vzc0RlZmluaXRpb24ua2V5LFxuICAgICAgICAgIHRleHQ6IHByb2Nlc3NEZWZpbml0aW9uLm5hbWUgPz8gJycsXG4gICAgICAgIH0pKVxuICAgICAgKVxuICAgICk7XG5cbiAgcmVhZG9ubHkgZG9jdW1lbnRTZWxlY3RJdGVtcyQ6IE9ic2VydmFibGU8QXJyYXk8U2VsZWN0SXRlbT4+ID0gdGhpcy5kb2N1bWVudFNlcnZpY2VcbiAgICAuZ2V0QWxsRGVmaW5pdGlvbnMoKVxuICAgIC5waXBlKFxuICAgICAgbWFwKGRvY3VtZW50RGVmaW5pdGlvbnMgPT5cbiAgICAgICAgZG9jdW1lbnREZWZpbml0aW9ucy5jb250ZW50Lm1hcChkb2N1bWVudERlZmluaXRpb24gPT4gKHtcbiAgICAgICAgICBpZDogZG9jdW1lbnREZWZpbml0aW9uLmlkLm5hbWUsXG4gICAgICAgICAgdGV4dDogZG9jdW1lbnREZWZpbml0aW9uLmlkLm5hbWUsXG4gICAgICAgIH0pKVxuICAgICAgKVxuICAgICk7XG5cbiAgcmVhZG9ubHkgUkFESU9fSVRFTVM6IEFycmF5PENvcHlTdHJhdGVneT4gPSBbJ2Z1bGwnLCAnc3BlY2lmaWVkJ107XG4gIHJlYWRvbmx5IHJhZGlvSXRlbXMkOiBPYnNlcnZhYmxlPEFycmF5PFJhZGlvVmFsdWU+PiA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5zdHJlYW0oJ2tleScpLnBpcGUoXG4gICAgbWFwKCgpID0+XG4gICAgICB0aGlzLlJBRElPX0lURU1TLm1hcChyYWRpb0l0ZW0gPT4gKHtcbiAgICAgICAgdmFsdWU6IHJhZGlvSXRlbSxcbiAgICAgICAgdGl0bGU6IHRoaXMucGx1Z2luVHJhbnNsYXRpb25TZXJ2aWNlLmluc3RhbnQocmFkaW9JdGVtLCB0aGlzLnBsdWdpbklkKSxcbiAgICAgIH0pKVxuICAgIClcbiAgKTtcblxuICByZWFkb25seSByb2xUeXBlU2VsZWN0SXRlbXNPYnNlcnZhYmxlczoge1xuICAgIFt1dWlkOiBzdHJpbmddOiB7Y2FzZURlZmluaXRpb25OYW1lOiBzdHJpbmc7IGl0ZW1zOiBPYnNlcnZhYmxlPEFycmF5PFNlbGVjdEl0ZW0+Pn07XG4gIH0gPSB7fTtcblxuICByZWFkb25seSBzaG93TWFwcGluZ0J1dHRvbnM6IHtbdXVpZDogc3RyaW5nXTogYm9vbGVhbn0gPSB7fTtcblxuICByZWFkb25seSBzaG93TWFwcGluZ01vZGFsc0RlbGF5OiB7W3V1aWQ6IHN0cmluZ106IGJvb2xlYW59ID0ge307XG5cbiAgcmVhZG9ubHkgdGVtcE1hcHBpbmdzOiB7W3V1aWQ6IHN0cmluZ106IE11bHRpSW5wdXRWYWx1ZXN9ID0ge307XG5cbiAgcmVhZG9ubHkgbWFwcGluZ3M6IHtbdXVpZDogc3RyaW5nXTogTXVsdGlJbnB1dFZhbHVlc30gPSB7fTtcblxuICBwcml2YXRlIHNhdmVTdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XG5cbiAgcHJpdmF0ZSByZWFkb25seSBmb3JtVmFsdWUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxWZXJ6b2VrQ29uZmlnIHwgbnVsbD4obnVsbCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgdmFsaWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBwbHVnaW5NYW5hZ2VtZW50U2VydmljZTogUGx1Z2luTWFuYWdlbWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcGx1Z2luVHJhbnNsYXRpb25TZXJ2aWNlOiBQbHVnaW5UcmFuc2xhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB2ZXJ6b2VrUGx1Z2luU2VydmljZTogVmVyem9la1BsdWdpblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcm9jZXNzU2VydmljZTogUHJvY2Vzc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudFNlcnZpY2U6IERvY3VtZW50U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1vZGFsU2VydmljZTogTW9kYWxTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm9wZW5TYXZlU3Vic2NyaXB0aW9uKCk7XG4gICAgdGhpcy5zZXRNYXBwZWRQcmVmaWxsKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnNhdmVTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBmb3JtVmFsdWVDaGFuZ2UoZm9ybVZhbHVlOiBWZXJ6b2VrQ29uZmlnKTogdm9pZCB7XG4gICAgdGhpcy5mb3JtVmFsdWUkLm5leHQoZm9ybVZhbHVlKTtcbiAgICB0aGlzLmhhbmRsZVZhbGlkKGZvcm1WYWx1ZSk7XG4gIH1cblxuICB2ZXJ6b2VrVHlwZUZvcm1DaGFuZ2UoZm9ybVZhbHVlOiBWZXJ6b2VrVHlwZSwgdXVpZDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgY2FzZURlZmluaXRpb25OYW1lID0gZm9ybVZhbHVlPy5jYXNlRGVmaW5pdGlvbk5hbWU7XG4gICAgY29uc3Qgcm9sVHlwZVNlbGVjdEl0ZW1zT2JzZXJ2YWJsZXMgPSB0aGlzLnJvbFR5cGVTZWxlY3RJdGVtc09ic2VydmFibGVzO1xuXG4gICAgdGhpcy5zaG93TWFwcGluZ0J1dHRvbnNbdXVpZF0gPSBmb3JtVmFsdWUuY29weVN0cmF0ZWd5ID09PSAnc3BlY2lmaWVkJztcblxuICAgIGlmIChjYXNlRGVmaW5pdGlvbk5hbWUpIHtcbiAgICAgIGlmIChcbiAgICAgICAgIXJvbFR5cGVTZWxlY3RJdGVtc09ic2VydmFibGVzW3V1aWRdIHx8XG4gICAgICAgIHJvbFR5cGVTZWxlY3RJdGVtc09ic2VydmFibGVzW3V1aWRdLmNhc2VEZWZpbml0aW9uTmFtZSAhPT0gY2FzZURlZmluaXRpb25OYW1lXG4gICAgICApIHtcbiAgICAgICAgcm9sVHlwZVNlbGVjdEl0ZW1zT2JzZXJ2YWJsZXNbdXVpZF0gPSB7XG4gICAgICAgICAgY2FzZURlZmluaXRpb25OYW1lLFxuICAgICAgICAgIGl0ZW1zOiB0aGlzLnZlcnpvZWtQbHVnaW5TZXJ2aWNlXG4gICAgICAgICAgICAuZ2V0Um9sdHlwZXNCeURvY3VtZW50RGVmaW5pdGlvbk5hbWUoY2FzZURlZmluaXRpb25OYW1lKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgIG1hcChyb2xUeXBlcyA9PiByb2xUeXBlcy5tYXAocm9sVHlwZSA9PiAoe3RleHQ6IHJvbFR5cGUubmFtZSwgaWQ6IHJvbFR5cGUudXJsfSkpKVxuICAgICAgICAgICAgKSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcm9sVHlwZVNlbGVjdEl0ZW1zT2JzZXJ2YWJsZXNbdXVpZF0gPSB7XG4gICAgICAgIGNhc2VEZWZpbml0aW9uTmFtZSxcbiAgICAgICAgaXRlbXM6IG9mKFtdKSxcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgZGVsZXRlUm93KHV1aWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGRlbGV0ZSB0aGlzLnJvbFR5cGVTZWxlY3RJdGVtc09ic2VydmFibGVzW3V1aWRdO1xuICB9XG5cbiAgb3Blbk1hcHBpbmdNb2RhbCh1dWlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dNYXBwaW5nTW9kYWxzRGVsYXlbdXVpZF0gPSB0cnVlO1xuICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW5Nb2RhbChcbiAgICAgIHRoaXMubWFwcGluZ01vZGFscy5maW5kKG1hcHBpbmdNb2RhbCA9PiBtYXBwaW5nTW9kYWwucGFyZW50SWQgPT09IHV1aWQpXG4gICAgKTtcbiAgfVxuXG4gIGNsb3NlTWFwcGluZ01vZGFsKHV1aWQpOiB2b2lkIHtcbiAgICB0aGlzLm1vZGFsU2VydmljZS5jbG9zZU1vZGFsKCk7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuc2hvd01hcHBpbmdNb2RhbHNEZWxheVt1dWlkXSA9IGZhbHNlO1xuICAgIH0sIDI1MCk7XG4gIH1cblxuICBtYXBwaW5nVmFsdWVDaGFuZ2UobmV3VmFsdWU6IE11bHRpSW5wdXRWYWx1ZXMsIHV1aWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMudGVtcE1hcHBpbmdzW3V1aWRdID0gbmV3VmFsdWU7XG4gIH1cblxuICBzYXZlTWFwcGluZyh1dWlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLm1hcHBpbmdzW3V1aWRdID0gWy4uLnRoaXMudGVtcE1hcHBpbmdzW3V1aWRdXTtcbiAgICB0aGlzLnRlbXBNYXBwaW5nc1t1dWlkXSA9IFtdO1xuICAgIHRoaXMuY2xvc2VNYXBwaW5nTW9kYWwodXVpZCk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVZhbGlkKGZvcm1WYWx1ZTogVmVyem9la0NvbmZpZyk6IHZvaWQge1xuICAgIGNvbnN0IHZhbGlkRm9ybSA9ICEhKFxuICAgICAgZm9ybVZhbHVlLmNvbmZpZ3VyYXRpb25UaXRsZSAmJlxuICAgICAgZm9ybVZhbHVlLm5vdGlmaWNhdGllc0FwaVBsdWdpbkNvbmZpZ3VyYXRpb24gJiZcbiAgICAgIGZvcm1WYWx1ZS5yc2luICYmXG4gICAgICBmb3JtVmFsdWUucHJvY2Vzc1RvU3RhcnRcbiAgICApO1xuICAgIGNvbnN0IHZlcnpvZWtUeXBlbiA9IGZvcm1WYWx1ZS52ZXJ6b2VrUHJvcGVydGllcyB8fCBbXTtcbiAgICBjb25zdCB2YWxpZFZlcnpvZWtUeXBlbiA9IHZlcnpvZWtUeXBlbi5maWx0ZXIoXG4gICAgICB0eXBlID0+XG4gICAgICAgICEhKFxuICAgICAgICAgIHR5cGUudHlwZSAmJlxuICAgICAgICAgIHR5cGUuY2FzZURlZmluaXRpb25OYW1lICYmXG4gICAgICAgICAgdHlwZS5vYmplY3RNYW5hZ2VtZW50SWQgJiZcbiAgICAgICAgICB0eXBlLmluaXRpYXRvclJvbHR5cGVVcmwgJiZcbiAgICAgICAgICB0eXBlLnByb2Nlc3NEZWZpbml0aW9uS2V5ICYmXG4gICAgICAgICAgdHlwZS5pbml0aWF0b3JSb2xEZXNjcmlwdGlvblxuICAgICAgICApXG4gICAgKTtcbiAgICBjb25zdCB2YWxpZCA9IHZhbGlkRm9ybSAmJiB2ZXJ6b2VrVHlwZW4ubGVuZ3RoID09PSB2YWxpZFZlcnpvZWtUeXBlbi5sZW5ndGg7XG4gICAgdGhpcy52YWxpZCQubmV4dCh2YWxpZCk7XG4gICAgdGhpcy52YWxpZC5lbWl0KHZhbGlkKTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlblNhdmVTdWJzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5zYXZlU3Vic2NyaXB0aW9uID0gdGhpcy5zYXZlJD8uc3Vic2NyaWJlKHNhdmUgPT4ge1xuICAgICAgY29tYmluZUxhdGVzdChbdGhpcy5mb3JtVmFsdWUkLCB0aGlzLnZhbGlkJF0pXG4gICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKFtmb3JtVmFsdWUsIHZhbGlkXSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGZvcm1WYWx1ZVRvU2F2ZTogVmVyem9la0NvbmZpZyA9IHtcbiAgICAgICAgICAgIC4uLmZvcm1WYWx1ZSxcbiAgICAgICAgICAgIHZlcnpvZWtQcm9wZXJ0aWVzOiBmb3JtVmFsdWUudmVyem9la1Byb3BlcnRpZXMubWFwKHZlcnpvZWsgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB2ZXJ6b2VrVG9SZXR1cm46IFZlcnpvZWtUeXBlID0gey4uLnZlcnpvZWt9O1xuICAgICAgICAgICAgICBkZWxldGUgdmVyem9la1RvUmV0dXJuLnV1aWQ7XG5cbiAgICAgICAgICAgICAgaWYgKHRoaXMubWFwcGluZ3NbdmVyem9lay51dWlkXSAmJiB2ZXJ6b2VrLmNvcHlTdHJhdGVneSA9PT0gJ3NwZWNpZmllZCcpIHtcbiAgICAgICAgICAgICAgICB2ZXJ6b2VrVG9SZXR1cm4ubWFwcGluZyA9IHRoaXMubWFwcGluZ3NbdmVyem9lay51dWlkXTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4udmVyem9la1RvUmV0dXJuLFxuICAgICAgICAgICAgICAgIC4uLih2ZXJ6b2VrVG9SZXR1cm4ubWFwcGluZyAmJiB7XG4gICAgICAgICAgICAgICAgICBtYXBwaW5nOiB2ZXJ6b2VrVG9SZXR1cm4ubWFwcGluZy5tYXAodmVyem9la01hcHBpbmcgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgc291cmNlOiB2ZXJ6b2VrTWFwcGluZy5rZXksXG4gICAgICAgICAgICAgICAgICAgIHRhcmdldDogdmVyem9la01hcHBpbmcudmFsdWUsXG4gICAgICAgICAgICAgICAgICB9KSkgYXMgQXJyYXk8YW55PixcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIH07XG4gICAgICAgICAgaWYgKHZhbGlkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb24uZW1pdChmb3JtVmFsdWVUb1NhdmUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldE1hcHBlZFByZWZpbGwoKTogdm9pZCB7XG4gICAgdGhpcy5tYXBwZWRQcmVmaWxsJCA9IHRoaXMucHJlZmlsbENvbmZpZ3VyYXRpb24kLnBpcGUoXG4gICAgICBmaWx0ZXIocHJlZmlsbCA9PiAhIXByZWZpbGwpLFxuICAgICAgbWFwKHByZWZpbGwgPT4gKHtcbiAgICAgICAgLi4ucHJlZmlsbCxcbiAgICAgICAgdmVyem9la1Byb3BlcnRpZXM6IHByZWZpbGwudmVyem9la1Byb3BlcnRpZXMubWFwKHZlcnpvZWtUeXBlID0+ICh7XG4gICAgICAgICAgLi4udmVyem9la1R5cGUsXG4gICAgICAgICAgLi4uKHZlcnpvZWtUeXBlLm1hcHBpbmcgJiZcbiAgICAgICAgICAgIEFycmF5LmlzQXJyYXkodmVyem9la1R5cGUubWFwcGluZykgJiYge1xuICAgICAgICAgICAgICBtYXBwaW5nOiB2ZXJ6b2VrVHlwZS5tYXBwaW5nLm1hcChtYXBwaW5nID0+ICh7XG4gICAgICAgICAgICAgICAga2V5OiBtYXBwaW5nLnNvdXJjZSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogbWFwcGluZy50YXJnZXQsXG4gICAgICAgICAgICAgIH0pKSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICB9KSksXG4gICAgICB9KSksXG4gICAgICB0YXAocHJlZmlsbCA9PiB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuZm9ybVZhbHVlJC5waXBlKHRha2UoMSkpLnN1YnNjcmliZShmb3JtVmFsdWUgPT4ge1xuICAgICAgICAgICAgY29uc3QgcHJlZmlsbFZlcnpvZWtlbiA9IHByZWZpbGw/LnZlcnpvZWtQcm9wZXJ0aWVzO1xuICAgICAgICAgICAgY29uc3QgZm9ybVZhbHVlVmVyem9la2VuID0gZm9ybVZhbHVlPy52ZXJ6b2VrUHJvcGVydGllcztcblxuICAgICAgICAgICAgcHJlZmlsbFZlcnpvZWtlbi5mb3JFYWNoKCh2ZXJ6b2VrLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBtYXBwaW5nRm9yVmVyem9layA9IHZlcnpvZWs/Lm1hcHBpbmc7XG4gICAgICAgICAgICAgIGNvbnN0IHV1aWRGb3JNYXBwaW5nID0gZm9ybVZhbHVlVmVyem9la2VuW2luZGV4XS51dWlkO1xuXG4gICAgICAgICAgICAgIGlmIChtYXBwaW5nRm9yVmVyem9layAmJiB1dWlkRm9yTWFwcGluZykge1xuICAgICAgICAgICAgICAgIHRoaXMubWFwcGluZ3NbdXVpZEZvck1hcHBpbmddID0gbWFwcGluZ0ZvclZlcnpvZWs7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9LCAyNTApO1xuICAgICAgfSlcbiAgICApO1xuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjx2LWZvcm1cbiAgKHZhbHVlQ2hhbmdlKT1cImZvcm1WYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgKm5nSWY9XCJ7XG4gICAgZGlzYWJsZWQ6IGRpc2FibGVkJCB8IGFzeW5jLFxuICAgIHByZWZpbGw6IG1hcHBlZFByZWZpbGwkID8gKG1hcHBlZFByZWZpbGwkIHwgYXN5bmMpIDogbnVsbCxcbiAgfSBhcyBvYnNcIlxuPlxuICA8di1pbnB1dFxuICAgIG5hbWU9XCJjb25maWd1cmF0aW9uVGl0bGVcIlxuICAgIFt0aXRsZV09XCInY29uZmlndXJhdGlvblRpdGxlJyB8IHBsdWdpblRyYW5zbGF0ZTogcGx1Z2luSWQgfCBhc3luY1wiXG4gICAgW21hcmdpbl09XCJ0cnVlXCJcbiAgICBbZGlzYWJsZWRdPVwib2JzLmRpc2FibGVkXCJcbiAgICBbZGVmYXVsdFZhbHVlXT1cIm9icy5wcmVmaWxsPy5jb25maWd1cmF0aW9uVGl0bGVcIlxuICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICBbdG9vbHRpcF09XCInY29uZmlndXJhdGlvblRpdGxlVG9vbHRpcCcgfCBwbHVnaW5UcmFuc2xhdGU6IHBsdWdpbklkIHwgYXN5bmNcIlxuICAgIHBsYWNlaG9sZGVyPVwiVmVyem9layBQbHVnaW5cIlxuICA+XG4gIDwvdi1pbnB1dD5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0lmPVwie25vdGlmaWNhdGllUGx1Z2luU2VsZWN0SXRlbXM6IG5vdGlmaWNhdGllUGx1Z2luU2VsZWN0SXRlbXMkIHwgYXN5bmN9IGFzIHZhcnNcIlxuICA+XG4gICAgPHYtc2VsZWN0XG4gICAgICBbaXRlbXNdPVwidmFycy5ub3RpZmljYXRpZVBsdWdpblNlbGVjdEl0ZW1zXCJcbiAgICAgIFttYXJnaW5dPVwidHJ1ZVwiXG4gICAgICBuYW1lPVwibm90aWZpY2F0aWVzQXBpUGx1Z2luQ29uZmlndXJhdGlvblwiXG4gICAgICBbdGl0bGVdPVwiJ25vdGlmaWNhdGllc0FwaVBsdWdpbkNvbmZpZ3VyYXRpb24nIHwgcGx1Z2luVHJhbnNsYXRlOiBwbHVnaW5JZCB8IGFzeW5jXCJcbiAgICAgIFtkaXNhYmxlZF09XCJvYnMuZGlzYWJsZWRcIlxuICAgICAgW2RlZmF1bHRTZWxlY3Rpb25JZF09XCJvYnMucHJlZmlsbD8ubm90aWZpY2F0aWVzQXBpUGx1Z2luQ29uZmlndXJhdGlvblwiXG4gICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICBbbG9hZGluZ109XCIhdmFycy5ub3RpZmljYXRpZVBsdWdpblNlbGVjdEl0ZW1zXCJcbiAgICAgIFt0b29sdGlwXT1cIidub3RpZmljYXRpZXNBcGlQbHVnaW5Db25maWd1cmF0aW9uVG9vbHRpcCcgfCBwbHVnaW5UcmFuc2xhdGU6IHBsdWdpbklkIHwgYXN5bmNcIlxuICAgID48L3Ytc2VsZWN0PlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIntwcm9jZXNzU2VsZWN0SXRlbXM6IHByb2Nlc3NTZWxlY3RJdGVtcyQgfCBhc3luY30gYXMgdmFyc1wiPlxuICAgIDx2LXNlbGVjdFxuICAgICAgW2l0ZW1zXT1cInZhcnMucHJvY2Vzc1NlbGVjdEl0ZW1zXCJcbiAgICAgIFttYXJnaW5dPVwidHJ1ZVwiXG4gICAgICBuYW1lPVwicHJvY2Vzc1RvU3RhcnRcIlxuICAgICAgW3RpdGxlXT1cIidwcm9jZXNzVG9TdGFydCcgfCBwbHVnaW5UcmFuc2xhdGU6IHBsdWdpbklkIHwgYXN5bmNcIlxuICAgICAgW2Rpc2FibGVkXT1cIm9icy5kaXNhYmxlZFwiXG4gICAgICBbZGVmYXVsdFNlbGVjdGlvbklkXT1cIm9icy5wcmVmaWxsPy5wcm9jZXNzVG9TdGFydFwiXG4gICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICBbbG9hZGluZ109XCIhdmFycy5wcm9jZXNzU2VsZWN0SXRlbXNcIlxuICAgICAgW3Rvb2x0aXBdPVwiJ3Byb2Nlc3NUb1N0YXJ0VG9vbHRpcCcgfCBwbHVnaW5UcmFuc2xhdGU6IHBsdWdpbklkIHwgYXN5bmNcIlxuICAgID48L3Ytc2VsZWN0PlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPHYtaW5wdXRcbiAgICBuYW1lPVwicnNpblwiXG4gICAgW3RpdGxlXT1cIidyc2luJyB8IHBsdWdpblRyYW5zbGF0ZTogcGx1Z2luSWQgfCBhc3luY1wiXG4gICAgW21hcmdpbl09XCJ0cnVlXCJcbiAgICBbZGlzYWJsZWRdPVwib2JzLmRpc2FibGVkXCJcbiAgICBbZGVmYXVsdFZhbHVlXT1cIm9icy5wcmVmaWxsPy5yc2luXCJcbiAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgW3Rvb2x0aXBdPVwiJ3JzaW5Ub29sdGlwJyB8IHBsdWdpblRyYW5zbGF0ZTogcGx1Z2luSWQgfCBhc3luY1wiXG4gICAgcGxhY2Vob2xkZXI9XCJcIlxuICA+XG4gIDwvdi1pbnB1dD5cbiAgPHYtbXVsdGktaW5wdXQtZm9ybVxuICAgIG5hbWU9XCJ2ZXJ6b2VrUHJvcGVydGllc1wiXG4gICAgW3RpdGxlXT1cIid2ZXJ6b2VrUHJvcGVydGllcycgfCBwbHVnaW5UcmFuc2xhdGU6IHBsdWdpbklkIHwgYXN5bmNcIlxuICAgIFtmb3JtVGVtcGxhdGVdPVwibWFwcGluZ0Zvcm1cIlxuICAgIFthZGRSb3dUZXh0XT1cIidhZGRWZXJ6b2VrVHlwZScgfCBwbHVnaW5UcmFuc2xhdGU6IHBsdWdpbklkIHwgYXN5bmNcIlxuICAgIFtyZXF1aXJlZF09XCJmYWxzZVwiXG4gICAgW3Rvb2x0aXBdPVwiJ3ZlcnpvZWtQcm9wZXJ0aWVzVG9vbHRpcCcgfCBwbHVnaW5UcmFuc2xhdGU6IHBsdWdpbklkIHwgYXN5bmNcIlxuICAgIChkZWxldGVSb3dFdmVudCk9XCJkZWxldGVSb3coJGV2ZW50KVwiXG4gICAgW2luaXRpYWxBbW91bnRPZlJvd3NdPVwiMFwiXG4gICAgW21pbmltdW1BbW91bnRPZlJvd3NdPVwiMFwiXG4gICAgW2RlZmF1bHRWYWx1ZXNdPVwib2JzLnByZWZpbGw/LnZlcnpvZWtQcm9wZXJ0aWVzXCJcbiAgPlxuICA8L3YtbXVsdGktaW5wdXQtZm9ybT5cbjwvdi1mb3JtPlxuXG48bmctdGVtcGxhdGVcbiAgI21hcHBpbmdGb3JtXG4gIGxldC1pbmRleD1cImluZGV4XCJcbiAgbGV0LXV1aWQ9XCJ1dWlkXCJcbiAgbGV0LWNoYW5nZUZ1bmN0aW9uPVwiY2hhbmdlRnVuY3Rpb25cIlxuICBsZXQtcHJlZmlsbD1cInByZWZpbGxcIlxuPlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nSWY9XCJ7XG4gICAgICBkaXNhYmxlZDogZGlzYWJsZWQkIHwgYXN5bmMsXG4gICAgfSBhcyBvYnNcIlxuICA+XG4gICAgPHYtZm9ybSAodmFsdWVDaGFuZ2UpPVwiY2hhbmdlRnVuY3Rpb24oJGV2ZW50LCB1dWlkKTsgdmVyem9la1R5cGVGb3JtQ2hhbmdlKCRldmVudCwgdXVpZClcIj5cbiAgICAgIDx2LWlucHV0XG4gICAgICAgIG5hbWU9XCJ0eXBlXCJcbiAgICAgICAgW3RpdGxlXT1cIid0eXBlJyB8IHBsdWdpblRyYW5zbGF0ZTogcGx1Z2luSWQgfCBhc3luY1wiXG4gICAgICAgIFttYXJnaW5dPVwiZmFsc2VcIlxuICAgICAgICBbZGlzYWJsZWRdPVwib2JzLmRpc2FibGVkXCJcbiAgICAgICAgW2RlZmF1bHRWYWx1ZV09XCJwcmVmaWxsPy50eXBlXCJcbiAgICAgICAgW3JlcXVpcmVkXT1cInRydWVcIlxuICAgICAgICBbdG9vbHRpcF09XCIndHlwZVRvb2x0aXAnIHwgcGx1Z2luVHJhbnNsYXRlOiBwbHVnaW5JZCB8IGFzeW5jXCJcbiAgICAgICAgW3NtYWxsTWFyZ2luXT1cInRydWVcIlxuICAgICAgICBwbGFjZWhvbGRlcj1cIlwiXG4gICAgICA+XG4gICAgICA8L3YtaW5wdXQ+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwie2RvY3VtZW50U2VsZWN0SXRlbXM6IGRvY3VtZW50U2VsZWN0SXRlbXMkIHwgYXN5bmN9IGFzIHZhcnNcIj5cbiAgICAgICAgPHYtc2VsZWN0XG4gICAgICAgICAgW2l0ZW1zXT1cInZhcnMuZG9jdW1lbnRTZWxlY3RJdGVtc1wiXG4gICAgICAgICAgW3NtYWxsTWFyZ2luXT1cInRydWVcIlxuICAgICAgICAgIG5hbWU9XCJjYXNlRGVmaW5pdGlvbk5hbWVcIlxuICAgICAgICAgIFt0aXRsZV09XCInY2FzZURlZmluaXRpb25OYW1lJyB8IHBsdWdpblRyYW5zbGF0ZTogcGx1Z2luSWQgfCBhc3luY1wiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIm9icy5kaXNhYmxlZFwiXG4gICAgICAgICAgW2RlZmF1bHRTZWxlY3Rpb25JZF09XCJwcmVmaWxsPy5jYXNlRGVmaW5pdGlvbk5hbWVcIlxuICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgICBbbG9hZGluZ109XCIhdmFycy5kb2N1bWVudFNlbGVjdEl0ZW1zXCJcbiAgICAgICAgICBbdG9vbHRpcF09XCInY2FzZURlZmluaXRpb25OYW1lVG9vbHRpcCcgfCBwbHVnaW5UcmFuc2xhdGU6IHBsdWdpbklkIHwgYXN5bmNcIlxuICAgICAgICA+PC92LXNlbGVjdD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdJZj1cIntvYmplY3RNYW5hZ2VtZW50U2VsZWN0SXRlbXM6IG9iamVjdE1hbmFnZW1lbnRTZWxlY3RJdGVtcyQgfCBhc3luY30gYXMgdmFyc1wiXG4gICAgICA+XG4gICAgICAgIDx2LXNlbGVjdFxuICAgICAgICAgIFtpdGVtc109XCJ2YXJzLm9iamVjdE1hbmFnZW1lbnRTZWxlY3RJdGVtc1wiXG4gICAgICAgICAgW3NtYWxsTWFyZ2luXT1cInRydWVcIlxuICAgICAgICAgIG5hbWU9XCJvYmplY3RNYW5hZ2VtZW50SWRcIlxuICAgICAgICAgIFt0aXRsZV09XCInb2JqZWN0TWFuYWdlbWVudElkJyB8IHBsdWdpblRyYW5zbGF0ZTogcGx1Z2luSWQgfCBhc3luY1wiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIm9icy5kaXNhYmxlZFwiXG4gICAgICAgICAgW2RlZmF1bHRTZWxlY3Rpb25JZF09XCJwcmVmaWxsPy5vYmplY3RNYW5hZ2VtZW50SWRcIlxuICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgICBbbG9hZGluZ109XCIhdmFycy5vYmplY3RNYW5hZ2VtZW50U2VsZWN0SXRlbXNcIlxuICAgICAgICAgIFt0b29sdGlwXT1cIidvYmplY3RNYW5hZ2VtZW50SWRUb29sdGlwJyB8IHBsdWdpblRyYW5zbGF0ZTogcGx1Z2luSWQgfCBhc3luY1wiXG4gICAgICAgID48L3Ytc2VsZWN0PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8di1zZWxlY3RcbiAgICAgICAgW2l0ZW1zXT1cIlxuICAgICAgICAgIHJvbFR5cGVTZWxlY3RJdGVtc09ic2VydmFibGVzW3V1aWRdPy5jYXNlRGVmaW5pdGlvbk5hbWUgJiZcbiAgICAgICAgICAocm9sVHlwZVNlbGVjdEl0ZW1zT2JzZXJ2YWJsZXNbdXVpZF0uaXRlbXMgfCBhc3luYylcbiAgICAgICAgXCJcbiAgICAgICAgW3NtYWxsTWFyZ2luXT1cInRydWVcIlxuICAgICAgICBuYW1lPVwiaW5pdGlhdG9yUm9sdHlwZVVybFwiXG4gICAgICAgIFt0aXRsZV09XCInaW5pdGlhdG9yUm9sdHlwZVVybCcgfCBwbHVnaW5UcmFuc2xhdGU6IHBsdWdpbklkIHwgYXN5bmNcIlxuICAgICAgICBbZGlzYWJsZWRdPVwib2JzLmRpc2FibGVkIHx8ICFyb2xUeXBlU2VsZWN0SXRlbXNPYnNlcnZhYmxlc1t1dWlkXT8uY2FzZURlZmluaXRpb25OYW1lXCJcbiAgICAgICAgW2RlZmF1bHRTZWxlY3Rpb25JZF09XCJwcmVmaWxsPy5pbml0aWF0b3JSb2x0eXBlVXJsXCJcbiAgICAgICAgW3JlcXVpcmVkXT1cInRydWVcIlxuICAgICAgICBbdG9vbHRpcF09XCInaW5pdGlhdG9yUm9sdHlwZVVybFRvb2x0aXAnIHwgcGx1Z2luVHJhbnNsYXRlOiBwbHVnaW5JZCB8IGFzeW5jXCJcbiAgICAgID48L3Ytc2VsZWN0PlxuICAgICAgPHYtaW5wdXRcbiAgICAgICAgbmFtZT1cImluaXRpYXRvclJvbERlc2NyaXB0aW9uXCJcbiAgICAgICAgW3RpdGxlXT1cIidpbml0aWF0b3JSb2xEZXNjcmlwdGlvbicgfCBwbHVnaW5UcmFuc2xhdGU6IHBsdWdpbklkIHwgYXN5bmNcIlxuICAgICAgICBbbWFyZ2luXT1cImZhbHNlXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIm9icy5kaXNhYmxlZFwiXG4gICAgICAgIFtkZWZhdWx0VmFsdWVdPVwicHJlZmlsbD8uaW5pdGlhdG9yUm9sRGVzY3JpcHRpb24gfHwgJ0luaXRpYXRvcidcIlxuICAgICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICAgIFt0b29sdGlwXT1cIidpbml0aWF0b3JSb2xEZXNjcmlwdGlvblRvb2x0aXAnIHwgcGx1Z2luVHJhbnNsYXRlOiBwbHVnaW5JZCB8IGFzeW5jXCJcbiAgICAgICAgW3NtYWxsTWFyZ2luXT1cInRydWVcIlxuICAgICAgICBwbGFjZWhvbGRlcj1cIlwiXG4gICAgICA+XG4gICAgICA8L3YtaW5wdXQ+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwie3Byb2Nlc3NTZWxlY3RJdGVtczogcHJvY2Vzc1NlbGVjdEl0ZW1zJCB8IGFzeW5jfSBhcyB2YXJzXCI+XG4gICAgICAgIDx2LXNlbGVjdFxuICAgICAgICAgIFtpdGVtc109XCJ2YXJzLnByb2Nlc3NTZWxlY3RJdGVtc1wiXG4gICAgICAgICAgW3NtYWxsTWFyZ2luXT1cInRydWVcIlxuICAgICAgICAgIG5hbWU9XCJwcm9jZXNzRGVmaW5pdGlvbktleVwiXG4gICAgICAgICAgW3RpdGxlXT1cIidwcm9jZXNzRGVmaW5pdGlvbktleScgfCBwbHVnaW5UcmFuc2xhdGU6IHBsdWdpbklkIHwgYXN5bmNcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJvYnMuZGlzYWJsZWRcIlxuICAgICAgICAgIFtkZWZhdWx0U2VsZWN0aW9uSWRdPVwicHJlZmlsbD8ucHJvY2Vzc0RlZmluaXRpb25LZXlcIlxuICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgICBbbG9hZGluZ109XCIhdmFycy5wcm9jZXNzU2VsZWN0SXRlbXNcIlxuICAgICAgICAgIFt0b29sdGlwXT1cIidwcm9jZXNzRGVmaW5pdGlvbktleVRvb2x0aXAnIHwgcGx1Z2luVHJhbnNsYXRlOiBwbHVnaW5JZCB8IGFzeW5jXCJcbiAgICAgICAgPjwvdi1zZWxlY3Q+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDx2LXJhZGlvXG4gICAgICAgIG5hbWU9XCJjb3B5U3RyYXRlZ3lcIlxuICAgICAgICBbZGlzYWJsZWRdPVwib2JzLmRpc2FibGVkXCJcbiAgICAgICAgW3RpdGxlXT1cIidjb3B5U3RyYXRlZ3knIHwgcGx1Z2luVHJhbnNsYXRlOiBwbHVnaW5JZCB8IGFzeW5jXCJcbiAgICAgICAgW3Rvb2x0aXBdPVwiJ2NvcHlTdHJhdGVneVRvb2x0aXAnIHwgcGx1Z2luVHJhbnNsYXRlOiBwbHVnaW5JZCB8IGFzeW5jXCJcbiAgICAgICAgW3JhZGlvVmFsdWVzXT1cInJhZGlvSXRlbXMkIHwgYXN5bmNcIlxuICAgICAgICBbc21hbGxNYXJnaW5dPVwidHJ1ZVwiXG4gICAgICAgIFtkZWZhdWx0VmFsdWVdPVwicHJlZmlsbD8uY29weVN0cmF0ZWd5IHx8ICdmdWxsJ1wiXG4gICAgICA+XG4gICAgICA8L3YtcmFkaW8+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd01hcHBpbmdCdXR0b25zW3V1aWRdXCI+XG4gICAgICAgIDx2LWlucHV0LWxhYmVsXG4gICAgICAgICAgW3RpdGxlXT1cIidtYXBwaW5nJyB8IHBsdWdpblRyYW5zbGF0ZTogcGx1Z2luSWQgfCBhc3luY1wiXG4gICAgICAgICAgW3Rvb2x0aXBdPVwiJ21hcHBpbmdUb29sdGlwJyB8IHBsdWdpblRyYW5zbGF0ZTogcGx1Z2luSWQgfCBhc3luY1wiXG4gICAgICAgID5cbiAgICAgICAgPC92LWlucHV0LWxhYmVsPlxuICAgICAgICA8di1idXR0b24gKGNsaWNrRXZlbnQpPVwib3Blbk1hcHBpbmdNb2RhbCh1dWlkKVwiIG1kaUljb249XCJ0YWJsZVwiXG4gICAgICAgICAgPnt7ICdzZXRNYXBwaW5nJyB8IHBsdWdpblRyYW5zbGF0ZTogcGx1Z2luSWQgfCBhc3luYyB9fVxuICAgICAgICA8L3YtYnV0dG9uPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8di1pbnB1dCBjbGFzcz1cImhpZGRlbi1pbnB1dFwiIG5hbWU9XCJ1dWlkXCIgW2RlZmF1bHRWYWx1ZV09XCJ1dWlkXCI+IDwvdi1pbnB1dD5cbiAgICA8L3YtZm9ybT5cbiAgICA8di1tb2RhbCBbcGFyZW50SWRdPVwidXVpZFwiIChjbG9zZUV2ZW50KT1cImNsb3NlTWFwcGluZ01vZGFsKHV1aWQpXCI+XG4gICAgICA8ZGl2IHJvbGU9XCJoZWFkZXJcIj5cbiAgICAgICAgPGgzIGNkc01vZGFsSGVhZGVySGVhZGluZz57eyAnc2V0TWFwcGluZycgfCBwbHVnaW5UcmFuc2xhdGU6IHBsdWdpbklkIHwgYXN5bmMgfX08L2gzPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgcm9sZT1cImNvbnRlbnRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNkcy0tdGV4dC1pbnB1dF9fZmllbGQtd3JhcHBlclwiPlxuICAgICAgICAgIDxjZHMtbGFiZWwgW2Rpc2FibGVkXT1cIm9icy5kaXNhYmxlZFwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsYWJlbC13aXRoLXRvb2x0aXAgc2VsZWN0LWxhYmVsXCI+XG4gICAgICAgICAgICAgIHt7ICdtYXBwaW5nJyB8IHBsdWdpblRyYW5zbGF0ZTogcGx1Z2luSWQgfCBhc3luYyB9fVxuICAgICAgICAgICAgICA8di10b29sdGlwLWljb25cbiAgICAgICAgICAgICAgICBbdG9vbHRpcF09XCInbWFwcGluZ1Rvb2x0aXAnIHwgcGx1Z2luVHJhbnNsYXRlOiBwbHVnaW5JZCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwib2JzLmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgPjwvdi10b29sdGlwLWljb24+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9jZHMtbGFiZWw+XG4gICAgICAgICAgPHZhbHRpbW8tY2FyYm9uLW11bHRpLWlucHV0XG4gICAgICAgICAgICAqbmdJZj1cInNob3dNYXBwaW5nTW9kYWxzRGVsYXlbdXVpZF1cIlxuICAgICAgICAgICAgdHlwZT1cImtleVZhbHVlXCJcbiAgICAgICAgICAgICh2YWx1ZUNoYW5nZSk9XCJtYXBwaW5nVmFsdWVDaGFuZ2UoJGV2ZW50LCB1dWlkKVwiXG4gICAgICAgICAgICBbZGVmYXVsdFZhbHVlc109XCJtYXBwaW5nc1t1dWlkXSB8fCBwcmVmaWxsPy5tYXBwaW5nXCJcbiAgICAgICAgICAgIFt2YWx1ZUNvbHVtblRpdGxlXT1cIid0YXJnZXQnIHwgcGx1Z2luVHJhbnNsYXRlOiBwbHVnaW5JZCB8IGFzeW5jXCJcbiAgICAgICAgICAgIFtrZXlDb2x1bW5UaXRsZV09XCInc291cmNlJyB8IHBsdWdpblRyYW5zbGF0ZTogcGx1Z2luSWQgfCBhc3luY1wiXG4gICAgICAgICAgICBbZnVsbFdpZHRoXT1cInRydWVcIlxuICAgICAgICAgID48L3ZhbHRpbW8tY2FyYm9uLW11bHRpLWlucHV0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IHJvbGU9XCJmb290ZXJcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBjZHNCdXR0b249XCJzZWNvbmRhcnlcIlxuICAgICAgICAgICAgW2F0dHIubW9kYWwtcHJpbWFyeS1mb2N1c109XCJ0cnVlXCJcbiAgICAgICAgICAgIChjbGljayk9XCJjbG9zZU1hcHBpbmdNb2RhbCh1dWlkKVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwib2JzLmRpc2FibGVkXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyAnY2xvc2UnIHwgcGx1Z2luVHJhbnNsYXRlOiBwbHVnaW5JZCB8IGFzeW5jIH19XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgY2RzQnV0dG9uPVwicHJpbWFyeVwiXG4gICAgICAgICAgICBbYXR0ci5tb2RhbC1wcmltYXJ5LWZvY3VzXT1cInRydWVcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIm9icy5kaXNhYmxlZFwiXG4gICAgICAgICAgICAoY2xpY2spPVwic2F2ZU1hcHBpbmcodXVpZClcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIm9icy5kaXNhYmxlZFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgJ3NhdmUnIHwgcGx1Z2luVHJhbnNsYXRlOiBwbHVnaW5JZCB8IGFzeW5jIH19XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC92LW1vZGFsPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=