@ieeesa-npm/presentation 0.27.8 → 0.28.0
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.
- package/esm2022/lib/assets/constants.json +3 -3
- package/esm2022/lib/components/dynamic-form/dynamic-form.component.mjs +1 -1
- package/esm2022/lib/components/file-download/file-download.component.mjs +18 -18
- package/esm2022/lib/components/file-upload/file-upload.component.mjs +4 -4
- package/esm2022/lib/components/list/list.component.mjs +4 -4
- package/esm2022/lib/components/modal/modal.component.mjs +2 -1
- package/esm2022/lib/directives/dynamic-form-field/dynamic-form-field.directive.mjs +2 -2
- package/esm2022/lib/models/file-download-config.model.mjs +1 -1
- package/esm2022/lib/services/file-upload.service.mjs +9 -9
- package/fesm2022/ieeesa-npm-presentation.mjs +36 -35
- package/fesm2022/ieeesa-npm-presentation.mjs.map +1 -1
- package/lib/components/chips/chips.component.d.ts +2 -2
- package/lib/components/dynamic-form/dynamic-form.component.d.ts +1 -1
- package/lib/components/file-download/file-download.component.d.ts +12 -11
- package/lib/components/file-upload/file-upload.component.d.ts +4 -28
- package/lib/components/list/list.component.d.ts +2 -2
- package/lib/components/modal/modal.component.d.ts +1 -0
- package/lib/directives/dynamic-form-field/dynamic-form-field.directive.d.ts +1 -1
- package/lib/models/file-download-config.model.d.ts +5 -5
- package/lib/services/file-upload.service.d.ts +12 -5
- package/package.json +1 -1
- package/src/lib/assets/constants.json +3 -3
|
@@ -582,7 +582,7 @@
|
|
|
582
582
|
],
|
|
583
583
|
"message": {
|
|
584
584
|
"error": {
|
|
585
|
-
"
|
|
585
|
+
"ER1002": "File is damaged or unreadable.",
|
|
586
586
|
"invalidFileFormat": "Invalid file format. Please upload SVG, PNG and JPG file format only.",
|
|
587
587
|
"invalidFileSize": "File size exceeds the maximum limit.",
|
|
588
588
|
"2026": "Invalid file format. Please upload SVG, PNG and JPG file format only.",
|
|
@@ -617,7 +617,7 @@
|
|
|
617
617
|
"buttons": [
|
|
618
618
|
{
|
|
619
619
|
"id": 1,
|
|
620
|
-
"ariaLabel": "
|
|
620
|
+
"ariaLabel": "Delete file.",
|
|
621
621
|
"iconURL": "assets/images/sprites/sprites.svg#icon-file-delete",
|
|
622
622
|
"toolTip": "",
|
|
623
623
|
"disabled": false
|
|
@@ -626,7 +626,7 @@
|
|
|
626
626
|
"preSignedDuration": "5",
|
|
627
627
|
"message": {
|
|
628
628
|
"errors": {
|
|
629
|
-
"
|
|
629
|
+
"ER1002": "File is damaged or unreadable.",
|
|
630
630
|
"5038": "Presigned duration is either null/empty.",
|
|
631
631
|
"6027": "Attachment id is either null/empty.",
|
|
632
632
|
"6028": "Agenda item attachment id does not exist."
|
|
@@ -568,4 +568,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
568
568
|
}], formRichTextEditorContentChange: [{
|
|
569
569
|
type: Output
|
|
570
570
|
}] } });
|
|
571
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXNlbnRhdGlvbi9zcmMvbGliL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2R5bmFtaWMtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzZW50YXRpb24vc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9keW5hbWljLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFTixZQUFZLEVBQ1osaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxTQUFTLEVBRVQsV0FBVyxFQUVYLG1CQUFtQixFQUNuQixVQUFVLEdBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBSTNELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGtFQUFrRSxDQUFDO0FBQzdHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSw4RUFBOEUsQ0FBQztBQUU5SCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFTeEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMERBQTBELENBQUM7Ozs7O0FBSWxHOzs7Ozs7R0FNRztBQWlCSCxNQUFNLE9BQU8sb0JBQW9CO0lBTS9COzs7T0FHRztJQUNILElBQ0ksVUFBVSxDQUFDLEtBQWdCO1FBQzdCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3pC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LHNCQUFzQjtzQkFBL0IsTUFBTTtnQkFFRyxnQ0FBZ0M7c0JBQXpDLE1BQU07Z0JBRUcsMEJBQTBCO3NCQUFuQyxNQUFNO2dCQUNHLG9CQUFvQjtzQkFBN0IsTUFBTTtnQkFDRyxxQkFBcUI7c0JBQTlCLE1BQU07Z0JBSUcsWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ0csb0JBQW9CO3NCQUE3QixNQUFNO2dCQUNHLHFCQUFxQjtzQkFBOUIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLG9CQUFvQjtzQkFBN0IsTUFBTTtnQkFDRyxxQkFBcUI7c0JBQTlCLE1BQU07Z0JBQ0csdUJBQXVCO3NCQUFoQyxNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csaUNBQWlDO3NCQUExQyxNQUFNO2dCQUVHLDJDQUEyQztzQkFBcEQsTUFBTTtnQkFFRyxzQ0FBc0M7c0JBQS9DLE1BQU07Z0JBR0csK0JBQStCO3NCQUF4QyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlckNvbnRlbnRJbml0LFxyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgUXVlcnlMaXN0LFxyXG4gIFZpZXdDaGlsZHJlbixcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBGb3JtQXJyYXksXHJcbiAgRm9ybUJ1aWxkZXIsXHJcbiAgRm9ybUNvbnRyb2wsXHJcbiAgRm9ybUdyb3VwLFxyXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgVmFsaWRhdG9ycyxcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IEZvcm1Nb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9mb3JtLm1vZGVsJztcclxuaW1wb3J0IHsgRmllbGRDb25maWcgfSBmcm9tICcuLi8uLi9tb2RlbHMvZmllbGQtY29uZmlnLm1vZGVsJztcclxuaW1wb3J0IHsgRm9ybUdyaWQgfSBmcm9tICcuLi8uLi9tb2RlbHMvZm9ybS1ncmlkLm1vZGVsJztcclxuaW1wb3J0IHsgRHluYW1pY0Zvcm1GaWVsZERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvZHluYW1pYy1mb3JtLWZpZWxkL2R5bmFtaWMtZm9ybS1maWVsZC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBBbGlnblR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvYWxpZ24tdHlwZS5tb2RlbCc7XHJcbmltcG9ydCB7IEZvY3VzSW52YWxpZEZvcm1GaWVsZERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvZm9jdXMtaW52YWxpZC1mb3JtLWZpZWxkL2ZvY3VzLWludmFsaWQtZm9ybS1maWVsZC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDaGVja2JveE9wdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9jaGVja2JveC1vcHRpb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbFR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvZm9ybS1jb250cm9sLXR5cGVzLm1vZGVsJztcclxuaW1wb3J0IHsgU2VsZWN0ZWREYXRlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NlbGVjdGVkLWRhdGUubW9kZWwnO1xyXG5pbXBvcnQgeyBTZWxlY3RlZFRpbWUgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2VsZWN0ZWQtdGltZS5tb2RlbCc7XHJcbmltcG9ydCB7IExpbmtFdmVudEVtaXRUeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2V2ZW50LWVtaXQtdHlwZS5tb2RlbCc7XHJcbmltcG9ydCB7IFNsaWRlVG9nZ2xlT3B0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NsaWRlLXRvZ2dsZS1vcHRpb25zLm1vZGVsJztcclxuaW1wb3J0IHsgU2VsZWN0T3BlbmVkU3RhdGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2VsZWN0LW9wZW5lZC1zdGF0ZS5tb2RlbCc7XHJcbmltcG9ydCB7IFJhZGlvT3B0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3JhZGlvLW9wdGlvbi5tb2RlbCc7XHJcbmltcG9ydCB7IEljb25CdXR0b24gfSBmcm9tICcuLi8uLi9tb2RlbHMvaWNvbi1idXR0b24ubW9kZWwnO1xyXG5pbXBvcnQgeyBBdXRvQ29tcGxldGVPcHRpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMvYXV0b2NvbXBsZXRlLW9wdGlvbi5tb2RlbCc7XHJcbmltcG9ydCB7IFRleHRUcnVuY2F0ZWREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3RleHQtdHJ1bmNhdGVkL3RleHQtdHJ1bmNhdGVkLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEZpbGVVcGxvYWRTdGF0dXMgfSBmcm9tICcuLi8uLi9tb2RlbHMvZmlsZS11cGxvYWQtc3RhdHVzLm1vZGVsJztcclxuaW1wb3J0IHsgRmlsZURvd25sb2FkQ29uZmlnIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2ZpbGUtZG93bmxvYWQtY29uZmlnLm1vZGVsJztcclxuXHJcbi8qKlxyXG4gKiBDcmVhdGVzIGEgcmVhY3RpdmUgZm9ybSBkeW5hbWljYWxseSBiYXNlZCBvbiB0aGUgcGFzc2VkIGZvcm0gZmllbGQgY29uZmlndXJhdGlvbiBhbmQgaGFuZGxlcyB0aGUgZm9ybSBldmVudHMuXHJcbiAqIEBleHBvcnRcclxuICogQGNsYXNzIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAqIEBpbXBsZW1lbnRzIHtPbkluaXR9XHJcbiAqIEBpbXBsZW1lbnRzIHtBZnRlckNvbnRlbnRJbml0fVxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgZXhwb3J0QXM6ICdkeW5hbWljRm9ybScsXHJcbiAgc2VsZWN0b3I6ICdpZWVlc2EtZHluYW1pYy1mb3JtJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBEeW5hbWljRm9ybUZpZWxkRGlyZWN0aXZlLFxyXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgRm9jdXNJbnZhbGlkRm9ybUZpZWxkRGlyZWN0aXZlLFxyXG4gICAgVGV4dFRydW5jYXRlZERpcmVjdGl2ZSxcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9keW5hbWljLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2R5bmFtaWMtZm9ybS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gIGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdJbml0XHJcbntcclxuICBAVmlld0NoaWxkcmVuKER5bmFtaWNGb3JtRmllbGREaXJlY3RpdmUpXHJcbiAgZm9ybUZpZWxkcyE6IFF1ZXJ5TGlzdDxEeW5hbWljRm9ybUZpZWxkRGlyZWN0aXZlPjtcclxuICBwcml2YXRlIF9mb3JtR3JvdXBzITogRm9ybU1vZGVsO1xyXG4gIC8qKlxyXG4gICAqIEZvcm1Hcm91cHMgcGFzc2VkIGFuIGFuIGlucHV0IGFuZCB3aGljaCBjb250YWlucyBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIG9mIGV2ZXJ5IGZvcm0gZmllbGRzLlxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGZvcm1Hcm91cHModmFsdWU6IEZvcm1Nb2RlbCkge1xyXG4gICAgdGhpcy5fZm9ybUdyb3VwcyA9IHZhbHVlO1xyXG4gICAgdGhpcy5jcmVhdGVGb3JtR3JvdXBBcnJheSgpO1xyXG4gIH1cclxuICBnZXQgZm9ybUdyb3VwcygpOiBGb3JtTW9kZWwge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1Hcm91cHM7XHJcbiAgfVxyXG5cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIHByaXZhdGUgX3N1Ym1pdFJlc3BvbnNlITogYW55O1xyXG4gIC8qKlxyXG4gICAqIFNldHMgc3VibWl0IHJlc3BvbnNlIG9uIGZvcm0gc3VibWl0XHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIHNldCBzdWJtaXRSZXNwb25zZSh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLl9zdWJtaXRSZXNwb25zZSA9IHZhbHVlO1xyXG4gIH1cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGdldCBzdWJtaXRSZXNwb25zZSgpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3N1Ym1pdFJlc3BvbnNlO1xyXG4gIH1cclxuXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBwcml2YXRlIF9zZWFyY2hSZXNwb25zZSE6IGFueTtcclxuICAvKipcclxuICAgKiBTZXRzIHNlYXJjaCByZXNwb25zZSBvbiBmb3JtIHNlYXJjaCBldmVudFxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBzZXQgc2VhcmNoUmVzcG9uc2UodmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5fc2VhcmNoUmVzcG9uc2UgPSB2YWx1ZTtcclxuICB9XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBnZXQgc2VhcmNoUmVzcG9uc2UoKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLl9zZWFyY2hSZXNwb25zZTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfZmlsZVVwbG9hZFN0YXR1cyE6IEZpbGVVcGxvYWRTdGF0dXM7XHJcblxyXG4gIEBJbnB1dCgpIGdldCBmaWxlVXBsb2FkU3RhdHVzKCk6IEZpbGVVcGxvYWRTdGF0dXMge1xyXG4gICAgcmV0dXJuIHRoaXMuX2ZpbGVVcGxvYWRTdGF0dXM7XHJcbiAgfVxyXG4gIHNldCBmaWxlVXBsb2FkU3RhdHVzKHZhbHVlOiBGaWxlVXBsb2FkU3RhdHVzKSB7XHJcbiAgICB0aGlzLl9maWxlVXBsb2FkU3RhdHVzID0gdmFsdWU7XHJcbiAgfVxyXG4gIEBJbnB1dCgpIGNvbFdpZHRoITogRm9ybUdyaWQ7XHJcbiAgQElucHV0KCkgaXNMZWdlbmRWaXNpYmxlITogYm9vbGVhbjtcclxuICBASW5wdXQoKSByaWdodEJ1dHRvbkxhYmVsITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGxlZnRCdXR0b25MYWJlbCE6IHN0cmluZztcclxuICBASW5wdXQoKSBpc1N1Ym1pdEJ1dHRvbkRpc2FibGVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgaXNMZWZ0QnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBpc0xlZnRCdXR0b25OZWVkZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBpc1JpZ2h0QnV0dG9uTmVlZGVkID0gdHJ1ZTtcclxuICBASW5wdXQoKSBhY3Rpb25CdXR0b25BbGlnbiE6IEFsaWduVHlwZTtcclxuICBfZmlsZURvd25sb2FkQ29uZmlnITogRmlsZURvd25sb2FkQ29uZmlnO1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGZpbGVEb3dubG9hZENvbmZpZyh2YWx1ZTogRmlsZURvd25sb2FkQ29uZmlnKSB7XHJcbiAgICB0aGlzLl9maWxlRG93bmxvYWRDb25maWcgPSB2YWx1ZTtcclxuICB9XHJcbiAgZ2V0IGZpbGVEb3dubG9hZENvbmZpZygpOiBGaWxlRG93bmxvYWRDb25maWcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2ZpbGVEb3dubG9hZENvbmZpZztcclxuICB9XHJcbiAgYWxpZ25tZW50VHlwZSA9IEFsaWduVHlwZTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIEBPdXRwdXQoKSBmb3JtU3VibWl0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgQE91dHB1dCgpIGZvcm1DaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBAT3V0cHV0KCkgZm9ybUlucHV0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgQE91dHB1dCgpIGZvcm1MZWZ0QnV0dG9uQ2xpY2tlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIEBPdXRwdXQoKSBmb3JtU2VhcmNoQXBwbHk6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcclxuICBAT3V0cHV0KCkgZm9ybUdyb3Vwc1JlZmVyZW5jZSA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9ybUdyb3VwW10+KCk7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBAT3V0cHV0KCkgZHJvcGRvd25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcclxuICBAT3V0cHV0KCkgZm9ybUNoZWNrYm94U2VsZWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxDaGVja2JveE9wdGlvbj4oKTtcclxuICBAT3V0cHV0KCkgZm9ybURhdGVTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8U2VsZWN0ZWREYXRlPigpO1xyXG4gIEBPdXRwdXQoKSBmb3JtU2VsZWN0U2VhcmNoID0gbmV3IEV2ZW50RW1pdHRlcjx7XHJcbiAgICBzZWFyY2hFdmVudDogRXZlbnQ7XHJcbiAgICBjb250cm9sTmFtZTogc3RyaW5nO1xyXG4gIH0+KCk7XHJcbiAgQE91dHB1dCgpIGZvcm1Db250cm9sQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcclxuICBAT3V0cHV0KCkgZm9ybUF1dG9Db21wbGV0ZVNlYXJjaDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPVxyXG4gICAgbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQE91dHB1dCgpIGZvcm1BdXRvQ29tcGxldGVDbGVhclNlYXJjaFZhbHVlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9XHJcbiAgICBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICBAT3V0cHV0KCkgYXV0b0NvbXBsZXRlT3B0aW9uU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEZvcm1Hcm91cFtdPigpO1xyXG4gIEBPdXRwdXQoKSBmb3JtQWZ0ZXJDb250ZW50SW5pdCA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9ybUdyb3VwW10+KCk7XHJcbiAgQE91dHB1dCgpIGZvcm1TZWxlY3RlZERhdGVSYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8e1xyXG4gICAgc3RhcnREYXRlOiBzdHJpbmc7XHJcbiAgICBlbmREYXRlOiBzdHJpbmc7XHJcbiAgfT4oKTtcclxuICBAT3V0cHV0KCkgYWRkRm9ybUdyb3VwID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcclxuICBAT3V0cHV0KCkgZm9ybVRpbWVTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8U2VsZWN0ZWRUaW1lPigpO1xyXG4gIEBPdXRwdXQoKSBzdXBwb3J0VGV4dExpbmtDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8TGlua0V2ZW50RW1pdFR5cGU+KCk7XHJcbiAgQE91dHB1dCgpIGZvcm1TbGlkZVRvZ2dsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8U2xpZGVUb2dnbGVPcHRpb24+KCk7XHJcbiAgQE91dHB1dCgpIGZvcm1GaWxlVXBsb2FkID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlIHwgRmlsZUxpc3Q+KCk7XHJcbiAgQE91dHB1dCgpIGRyb3Bkb3duT3BlbmVkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxTZWxlY3RPcGVuZWRTdGF0ZT4oKTtcclxuICBAT3V0cHV0KCkgZm9ybUNvbG9yUGlja2VyQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQE91dHB1dCgpIGZvcm1SYWRpb09wdGlvblNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxSYWRpb09wdGlvbj4oKTtcclxuICBAT3V0cHV0KCkgY3RhQnV0dG9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEljb25CdXR0b24+KCk7XHJcbiAgQE91dHB1dCgpIGZvcm1NdWx0aVNlbGVjdEF1dG9Db21wbGV0ZVNlYXJjaDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPVxyXG4gICAgbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQE91dHB1dCgpIGZvcm1NdWx0aVNlbGVjdEF1dG9Db21wbGV0ZUNsZWFyU2VhcmNoVmFsdWU6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID1cclxuICAgIG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBPdXRwdXQoKSBtdWx0aVNlbGVjdEF1dG9Db21wbGV0ZU9wdGlvbnNTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8XHJcbiAgICBBdXRvQ29tcGxldGVPcHRpb25bXVxyXG4gID4oKTtcclxuICBAT3V0cHV0KCkgZm9ybVJpY2hUZXh0RWRpdG9yQ29udGVudENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIGZvcm0hOiBGb3JtR3JvdXA7XHJcbiAgZm9ybUdyb3VwQXJyYXk6IEZvcm1Hcm91cFtdID0gW107XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBmb3JtQ29udHJvbEFycmF5OiBhbnlbXSA9IFtdO1xyXG4gIGxlZ2VuZHNBcnJheTogc3RyaW5nW10gPSBbXTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnMsIG5vLWVtcHR5LWZ1bmN0aW9uXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZikge31cclxuXHJcbiAgLyoqXHJcbiAgICogSW1wbGVtZW50YXRpb24gb2YgbmdPbkluaXQgbGlmZWN5Y2xlIGhvb2sgbWV0aG9kIHRvIGNyZWF0ZSBmb3JtIGdyb3VwXHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNyZWF0ZUZvcm1Hcm91cEFycmF5KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFbWl0IGdlbmVyYXRlZCBmb3JtIHJlZmVyZW5jZSBvbiBuZ0FmdGVyQ29udGVudEluaXQgbGlmZWN5Y2xlIGhvb2suXHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtQWZ0ZXJDb250ZW50SW5pdC5lbWl0KHRoaXMuZm9ybUdyb3VwQXJyYXkpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSBmb2N1cyB0byB0aGUgZmlyc3QgZmllbGQuXHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgY29uc3QgZmlyc3RGb2N1c2FibGVFbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihcclxuICAgICAgJ2lucHV0LCBtYXQtc2VsZWN0LCB0ZXh0YXJlYSwgbWF0LWNoZWNrYm94LCBtYXQtcmFkaW8tYnV0dG9uJ1xyXG4gICAgKSBhcyBIVE1MRWxlbWVudDtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4gZmlyc3RGb2N1c2FibGVFbGVtZW50Py5mb2N1cygpLCAwKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBmb3JtIGdyb3VwIG9uIHRoZSBiYXNpcyBvZiBmb3JtR3JvdXBzIGNvbmZpZ3VyYXRpb24gaW5wdXRcclxuICAgKiBAcmV0dXJuIHt2b2lkfVxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIGNyZWF0ZUZvcm1Hcm91cEFycmF5KCk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtR3JvdXBBcnJheSA9IFtdO1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbEFycmF5ID0gW107XHJcbiAgICB0aGlzLmxlZ2VuZHNBcnJheSA9IFtdO1xyXG4gICAgaWYgKCF0aGlzLmZvcm1Hcm91cHMpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5mb3JtR3JvdXBzPy5mb3JtR3JvdXA/LmZvckVhY2goKGVsZW1lbnQpID0+IHtcclxuICAgICAgY29uc3QgY29udHJvbHMgPSBlbGVtZW50LmNvbnRyb2xzLmZpbHRlcihcclxuICAgICAgICAoY29udHJvbCkgPT4gY29udHJvbC50eXBlICE9PSAnYnV0dG9uJ1xyXG4gICAgICApO1xyXG4gICAgICB0aGlzLmZvcm1Hcm91cEFycmF5LnB1c2godGhpcy5jcmVhdGVHcm91cChjb250cm9scykpO1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sQXJyYXkucHVzaChjb250cm9scyk7XHJcbiAgICAgIHRoaXMubGVnZW5kc0FycmF5LnB1c2goZWxlbWVudC5sZWdlbmQpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgY2hpbGRyZW46IHRoaXMuZm9ybUdyb3VwQXJyYXksXHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmZvcm1Hcm91cHNSZWZlcmVuY2UuZW1pdCh0aGlzLmZvcm1Hcm91cEFycmF5KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBmb3JtIGdyb3VwIHVzaW5nIGZvcm0gYnVpbGRlclxyXG4gICAqIEBwYXJhbSB7YW55W119IGNvbnRyb2xzXHJcbiAgICogQHJldHVybiB7Rm9ybUdyb3VwfVxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgY3JlYXRlR3JvdXAoY29udHJvbHM6IGFueVtdKTogRm9ybUdyb3VwIHtcclxuICAgIGNvbnN0IGdyb3VwID0gdGhpcy5mYi5ncm91cCh7fSk7XHJcbiAgICBjb250cm9scy5mb3JFYWNoKChjb250cm9sOiBGaWVsZENvbmZpZykgPT4ge1xyXG4gICAgICBpZiAoY29udHJvbC50eXBlID09PSBGb3JtQ29udHJvbFR5cGUuQ0hFQ0tCT1gpIHtcclxuICAgICAgICBncm91cC5hZGRDb250cm9sKGNvbnRyb2wuY29udHJvbE5hbWUsIHRoaXMuY3JlYXRlRm9ybUFycmF5KGNvbnRyb2wpKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBncm91cC5hZGRDb250cm9sKGNvbnRyb2wuY29udHJvbE5hbWUsIHRoaXMuY3JlYXRlQ29udHJvbChjb250cm9sKSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBDcmVhdGVzIGZvcm0gYXJyYXkgZm9yIENoZWNrYm94IGdyb3VwIGFuZCByZXR1cm5zLlxyXG4gICAqIEBwYXJhbSB7RmllbGRDb25maWd9IGNvbnRyb2xzXHJcbiAgICogQHJldHVybiB7Rm9ybUFycmF5PGFueT59XHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBjcmVhdGVGb3JtQXJyYXkoY29udHJvbHM6IEZpZWxkQ29uZmlnKTogRm9ybUFycmF5PGFueT4ge1xyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgIGxldCBmb3JtQXJyYXk6IEZvcm1BcnJheTxhbnk+O1xyXG4gICAgY29uc3QgZ3JvdXAgPSB0aGlzLmZiLmdyb3VwKHt9KTtcclxuICAgIGdyb3VwLmFkZENvbnRyb2woY29udHJvbHMuY29udHJvbE5hbWUsIHRoaXMuY3JlYXRlQ29udHJvbChjb250cm9scykpO1xyXG4gICAgY29uc3QgaXNSZXF1aXJlZFZhbGlkYXRvciA9IGdyb3VwXHJcbiAgICAgID8uZ2V0KGNvbnRyb2xzLmNvbnRyb2xOYW1lKVxyXG4gICAgICA/Lmhhc1ZhbGlkYXRvcihWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgIGlmIChpc1JlcXVpcmVkVmFsaWRhdG9yKVxyXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICBmb3JtQXJyYXkgPSBuZXcgRm9ybUFycmF5PGFueT4oXHJcbiAgICAgICAgW10sXHJcbiAgICAgICAgdGhpcy5jaGVja2JveFNlbGVjdGlvblJlcXVpcmVkVmFsaWRhdG9yKGNvbnRyb2xzPy5taW5TZWxlY3Rpb25SZXF1aXJlZClcclxuICAgICAgKTtcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICBlbHNlIGZvcm1BcnJheSA9IG5ldyBGb3JtQXJyYXk8YW55PihbXSk7XHJcbiAgICBjb250cm9scz8uY2hlY2tib3hPcHRpb25zPy5mb3JFYWNoKChjb250cm9sKSA9PiB7XHJcbiAgICAgIGZvcm1BcnJheS5wdXNoKFxyXG4gICAgICAgIG5ldyBGb3JtQ29udHJvbCh7IHZhbHVlOiBjb250cm9sLmNoZWNrZWQsIGRpc2FibGVkOiBjb250cm9sLmRpc2FibGVkIH0pXHJcbiAgICAgICk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBmb3JtQXJyYXk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDdXN0b20gdmFsaWRhdG9yIHRvIHNldCByZXF1aXJlZCBmaWxlZCB2YWxpZGF0aW9uIGVycm9yIGZvciB0aGUgY2hlY2tib3ggZmllbGQgdHlwZSBiYXNlZCBvbiB0aGUgbnVtYmVyIG9mIGNvbmZpZ3VyZWQgbWluaW11bSBjaGVja2JveCBvcHRpb25zIHRvIGJlIHNlbGVjdGVkIHdoZW5ldmVyIHRoZSBmaWxlZCBjb25maWd1cmVkIHdpdGggcmVxdWlyZWQuXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IFttaW5TZWxlY3Rpb25SZXF1aXJlZD0xXVxyXG4gICAqIEByZXR1cm4geyp9XHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBjaGVja2JveFNlbGVjdGlvblJlcXVpcmVkVmFsaWRhdG9yKG1pblNlbGVjdGlvblJlcXVpcmVkID0gMSk6IGFueSB7XHJcbiAgICByZXR1cm4gZnVuY3Rpb24gdmFsaWRhdGUoZm9ybUdyb3VwOiBGb3JtR3JvdXApIHtcclxuICAgICAgbGV0IGNoZWNrZWQgPSAwO1xyXG4gICAgICBPYmplY3Qua2V5cyhmb3JtR3JvdXAuY29udHJvbHMpLmZvckVhY2goKGtleSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGNvbnRyb2wgPSBmb3JtR3JvdXAuY29udHJvbHNba2V5XTtcclxuICAgICAgICBpZiAoY29udHJvbC52YWx1ZSkge1xyXG4gICAgICAgICAgY2hlY2tlZCsrO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGlmIChjaGVja2VkIDwgbWluU2VsZWN0aW9uUmVxdWlyZWQpIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgY2hlY2tib3hTZWxlY3Rpb25SZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH07XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZXMgZm9ybSBjb250cm9sIGJhc2VkIG9uIGZvcm0gZmllbGQgY29uZmlndXJhdGlvblxyXG4gICAqIEBwYXJhbSB7RmllbGRDb25maWd9IGNvbnRyb2xcclxuICAgKiBAcmV0dXJuIHtGb3JtQ29udHJvbH1cclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBjcmVhdGVDb250cm9sKGNvbnRyb2w6IEZpZWxkQ29uZmlnKTogRm9ybUNvbnRyb2wge1xyXG4gICAgY29uc3QgeyBkaXNhYmxlZCwgdmFsaWRhdGlvbiwgdmFsdWUgfSA9IGNvbnRyb2w7XHJcbiAgICByZXR1cm4gdGhpcy5mYi5jb250cm9sKHsgZGlzYWJsZWQsIHZhbHVlIH0sIHZhbGlkYXRpb24pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRW1pdHMgZm9ybUdyb3VwQXJyYXlcclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBvbkZvcm1TdWJtaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1TdWJtaXQuZW1pdCh0aGlzLmZvcm1Hcm91cEFycmF5KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIGZvcm1Hcm91cEFycmF5XHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25MZWZ0QnV0dG9uQ2xpY2tlZCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybUxlZnRCdXR0b25DbGlja2VkLmVtaXQodGhpcy5mb3JtR3JvdXBBcnJheSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFbWl0cyBmb3JtR3JvdXBBcnJheVxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uRm9ybUNoYW5nZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybUNoYW5nZS5lbWl0KHRoaXMuZm9ybUdyb3VwQXJyYXkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxlcyBmb3JtIGZpZWxkIHNlbGVjdCB0eXBlIGRyb3AgZG93biBzZWxlY3Rpb24gZXZlbnRcclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBvbkRyb3Bkb3duQ2hhbmdlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kcm9wZG93bkNoYW5nZS5lbWl0KHRoaXMuZm9ybUdyb3VwQXJyYXkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxlcyBmb3JtIGlucHV0IGNoYW5nZSBldmVudFxyXG4gICAqIEBwYXJhbSB7RXZlbnR9IGV2ZW50XHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZm9ybUlucHV0Q2hhbmdlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbENoYW5nZS5lbWl0KGV2ZW50KTtcclxuICAgIHRoaXMuZm9ybUlucHV0LmVtaXQodGhpcy5mb3JtR3JvdXBBcnJheSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGZvcm0gZmllbGQgc2VhcmNoIGFwcGx5IGV2ZW50XHJcbiAgICogQHBhcmFtIHtFdmVudH0gZXZlbnRcclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBvblNlYXJjaEFwcGx5KGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtU2VhcmNoQXBwbHkuZW1pdChldmVudCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIHNlYXJjaCBldmVudCBpbnNpZGUgZm9ybSBmaWVsZCBzZWxlY3RcclxuICAgKiBAcGFyYW0ge0V2ZW50fSBldmVudFxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uU2VsZWN0U2VhcmNoKGV2ZW50OiB7IHNlYXJjaEV2ZW50OiBFdmVudDsgY29udHJvbE5hbWU6IHN0cmluZyB9KTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1TZWxlY3RTZWFyY2guZW1pdChldmVudCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUYWtlcyB0aGUgaW5kZXggYW5kIHRoZSBmb3JtR3JvdXAgYXMgYXJndW1lbnRzIGFuZCBuZWVkcyB0byByZXR1cm4gdGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIGZvcm1Hcm91cC5cclxuICAgKiBAcGFyYW0ge251bWJlcn0gaW5kZXhcclxuICAgKiBAcGFyYW0ge0Zvcm1Hcm91cH0gZm9ybUdyb3VwXHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgdHJhY2tCeUZvcm1Hcm91cChpbmRleDogbnVtYmVyLCBmb3JtR3JvdXA6IEZvcm1Hcm91cCkge1xyXG4gICAgcmV0dXJuIGZvcm1Hcm91cC5jb250cm9scztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgZm9ybSBkYXRlIHNlbGVjdGlvbiBldmVudFxyXG4gICAqIEBwYXJhbSB7U2VsZWN0ZWREYXRlfSBzZWxlY3RlZERhdGVcclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBvbkRhdGVTZWxlY3RlZChzZWxlY3RlZERhdGU6IFNlbGVjdGVkRGF0ZSk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtRGF0ZVNlbGVjdGVkLmVtaXQoc2VsZWN0ZWREYXRlKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogSGFuZGxlcyBmb3JtIHRpbWUgc2VsZWN0aW9uIGV2ZW50XHJcbiAgICogQHBhcmFtIHtTZWxlY3RlZFRpbWV9IHNlbGVjdGVkVGltZVxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uVGltZVNlbGVjdGVkKHNlbGVjdGVkVGltZTogU2VsZWN0ZWRUaW1lKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1UaW1lU2VsZWN0ZWQuZW1pdChzZWxlY3RlZFRpbWUpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBFbWl0cyBzZWxlY3RlZCBmb3JtIGRhdGUgcmFuZ2VcclxuICAgKiBAcGFyYW0ge3tzdGFydERhdGU6IHN0cmluZywgZW5kRGF0ZTogc3RyaW5nfX0gZGF0ZVJhbmdlXHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25TZWxlY3RlZERhdGVSYW5nZShkYXRlUmFuZ2U6IHsgc3RhcnREYXRlOiBzdHJpbmc7IGVuZERhdGU6IHN0cmluZyB9KSB7XHJcbiAgICB0aGlzLmZvcm1TZWxlY3RlZERhdGVSYW5nZS5lbWl0KGRhdGVSYW5nZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGZvcm0gZmllbGQgYXV0byBjb21wbGV0ZSBzZWFyY2ggZXZlbnRcclxuICAgKiBAcGFyYW0ge3N0cmluZ30gZXZlbnRcclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBvbkF1dG9Db21wbGV0ZVNlYXJjaChldmVudDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1BdXRvQ29tcGxldGVTZWFyY2guZW1pdChldmVudCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgZm9ybSBmaWVsZCBhdXRvIGNvbXBsZXRlIHNlYXJjaCBjbGVhciBldmVudFxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBldmVudFxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uQXV0b0NvbXBsZXRlQ2xlYXJTZWFyY2hWYWx1ZShldmVudDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1BdXRvQ29tcGxldGVDbGVhclNlYXJjaFZhbHVlLmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxlcyBmb3JtIGZpZWxkIGNoZWNrYm94IHNlbGVjdGlvbiBldmVudFxyXG4gICAqIEBwYXJhbSB7Q2hlY2tib3hPcHRpb259IG9wdGlvblxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uQ2hlY2tib3hTZWxlY3Rpb24ob3B0aW9uOiBDaGVja2JveE9wdGlvbik6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtQ2hlY2tib3hTZWxlY3Rpb24uZW1pdChvcHRpb24pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxlcyBmb3JtIGZpZWxkIGF1dG8gY29tcGxldGUgb3B0aW9uIHNlbGVjdGlvbiBldmVudFxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uQXV0b0NvbXBsZXRlT3B0aW9uU2VsZWN0ZWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmF1dG9Db21wbGV0ZU9wdGlvblNlbGVjdGVkLmVtaXQodGhpcy5mb3JtR3JvdXBBcnJheSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogTGlzdGVucyBmb3JtIGZpZWxkIG11bHRpIHNlbGVjdCBhdXRvIGNvbXBsZXRlIHNlYXJjaCBldmVudCBhbmQgZW1pdHMgZm9ybU11bHRpU2VsZWN0QXV0b0NvbXBsZXRlU2VhcmNoIGV2ZW50LlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBldmVudFxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uTXVsdGlTZWxlY3RBdXRvQ29tcGxldGVTZWFyY2goZXZlbnQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtTXVsdGlTZWxlY3RBdXRvQ29tcGxldGVTZWFyY2guZW1pdChldmVudCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBMaXN0ZW5zIGZvcm0gZmllbGQgbXVsdGkgc2VsZWN0IGF1dG8gY29tcGxldGUgc2VhcmNoIGNsZWFyIGV2ZW50IGFuZCBlbWl0cyBmb3JtTXVsdGlTZWxlY3RBdXRvQ29tcGxldGVDbGVhclNlYXJjaFZhbHVlIGV2ZW50LlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBldmVudFxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uTXVsdGlTZWxlY3RBdXRvQ29tcGxldGVDbGVhclNlYXJjaFZhbHVlKGV2ZW50OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybU11bHRpU2VsZWN0QXV0b0NvbXBsZXRlQ2xlYXJTZWFyY2hWYWx1ZS5lbWl0KGV2ZW50KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogTGlzdGVucyBmb3JtIGZpZWxkIG11bHRpIHNlbGVjdCBhdXRvIGNvbXBsZXRlIG9wdGlvbiBzZWxlY3Rpb24gZXZlbnQgYW5kIGVtaXRzIG11bHRpU2VsZWN0QXV0b0NvbXBsZXRlT3B0aW9uU2VsZWN0ZWQgZXZlbnQuXHJcbiAgICogQHBhcmFtIHtBdXRvQ29tcGxldGVPcHRpb25bXX0gZXZlbnRcclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBvbk11bHRpU2VsZWN0QXV0b0NvbXBsZXRlT3B0aW9uc1NlbGVjdGVkKGV2ZW50OiBBdXRvQ29tcGxldGVPcHRpb25bXSk6IHZvaWQge1xyXG4gICAgdGhpcy5tdWx0aVNlbGVjdEF1dG9Db21wbGV0ZU9wdGlvbnNTZWxlY3RlZC5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgZm9ybSBzbGlkZSB0b2dnbGUgZXZlbnQgYW5kIGVtaXRzIGZvcm1TbGlkZVRvZ2dsZUNoYW5nZSBldmVudC5cclxuICAgKiBAcGFyYW0ge1NsaWRlVG9nZ2xlT3B0aW9ufSB0b2dnbGVcclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBvbkZvcm1TbGlkZVRvZ2dsZUNoYW5nZSh0b2dnbGU6IFNsaWRlVG9nZ2xlT3B0aW9uKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1TbGlkZVRvZ2dsZUNoYW5nZS5lbWl0KHRvZ2dsZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGZvcm0gY29sb3IgcGlja2VyIGV2ZW50IGFuZCBlbWl0cyBmb3JtQ29sb3JQaWNrZXJDaGFuZ2UgZXZlbnQuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGNvbG9yQ29kZVxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uRm9ybUNvbG9yUGlja2VyQ2hhbmdlKGNvbG9yQ29kZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1Db2xvclBpY2tlckNoYW5nZS5lbWl0KGNvbG9yQ29kZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGZvcm0gcmljaCB0ZXh0IGVkaXRvciBldmVudCBhbmQgZW1pdHMgZm9ybVJpY2hUZXh0RWRpdG9yQ29udGVudENoYW5nZSBldmVudC5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gaHRtbE1hcmt1cFRleHRcclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBvbkZvcm1SaWNoVGV4dEVkaXRvckNvbnRlbnRDaGFuZ2UoaHRtbE1hcmt1cFRleHQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtUmljaFRleHRFZGl0b3JDb250ZW50Q2hhbmdlLmVtaXQoaHRtbE1hcmt1cFRleHQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxlcyBmaWxlIHVwbG9hZCBldmVudCBhbmQgZW1pdHMgZm9ybUZpbGVVcGxvYWQgZXZlbnRcclxuICAgKiBAcGFyYW0geyhGaWxlIHwgRmlsZUxpc3QpfSBmaWxlXHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25GaWxlVXBsb2FkKGZpbGU6IEZpbGUgfCBGaWxlTGlzdCk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtRmlsZVVwbG9hZC5lbWl0KGZpbGUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxlcyBmb3JtIGZpZWxkIHJhZGlvIGJ1dHRvbiBzZWxlY3Rpb24gZXZlbnRcclxuICAgKiBAcGFyYW0ge1JhZGlvT3B0aW9ufSBvcHRpb25cclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBvblJhZGlvT3B0aW9uU2VsZWN0aW9uKG9wdGlvbjogUmFkaW9PcHRpb24pOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybVJhZGlvT3B0aW9uU2VsZWN0ZWQuZW1pdChvcHRpb24pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ29udmVydHMgcGFzc2VkIGNvbnRyb2wgbmFtZSBpbiBoeXBoZW5hdGVkIGNzcyBjbGFzcyBuYW1lXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGNsYXNzTmFtZVxyXG4gICAqIEByZXR1cm4ge3N0cmluZ31cclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBnZXRSb3dDbGFzc05hbWUoY2xhc3NOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGNsYXNzTmFtZVxyXG4gICAgICAucmVwbGFjZSgvKFtBLVpdKS9nLCAnICQxJylcclxuICAgICAgLnRvTG93ZXJDYXNlKClcclxuICAgICAgLnNwbGl0KCcgJylcclxuICAgICAgLmpvaW4oJy0nKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogRW1pdHMgdGhlIGFkZEZvcm1Hcm91cCBldmVudFxyXG4gICAqIEBwYXJhbSB7RXZlbnR9IGV2ZW50XHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25BZGRGb3JtR3JvdXAoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLmFkZEZvcm1Hcm91cC5lbWl0KGV2ZW50KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogRW1pdHMgc3VwcG9ydFRleHRMaW5rQ2xpY2sgZXZlbnQgb24gY2xpY2sgb2YgZm9ybSBzdXBwb3J0IHRleHQgbGlua1xyXG4gICAqIEBwYXJhbSB7TGlua0V2ZW50RW1pdFR5cGV9IGV2ZW50XHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25TdXBwb3J0VGV4dExpbmtDbGljayhldmVudDogTGlua0V2ZW50RW1pdFR5cGUpOiB2b2lkIHtcclxuICAgIHRoaXMuc3VwcG9ydFRleHRMaW5rQ2xpY2suZW1pdChldmVudCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIExpc3RlbnMgc2VsZWN0IGZvcm0gZmllbGQgZHJvcGRvd25PcGVuZWRDaGFuZ2UgZXZlbnQgYW5kIGVtaXRzIGRyb3Bkb3duT3BlbmVkQ2hhbmdlIGV2ZW50LlxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqIEBwYXJhbSB7U2VsZWN0T3BlbmVkU3RhdGV9IGV2ZW50XHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25Ecm9wZG93bk9wZW5lZENoYW5nZShldmVudDogU2VsZWN0T3BlbmVkU3RhdGUpOiB2b2lkIHtcclxuICAgIHRoaXMuZHJvcGRvd25PcGVuZWRDaGFuZ2UuZW1pdChldmVudCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFbWl0cyBjdGFCdXR0b25DbGljayBldmVudCBhbG9uZyB3aXRoIGNsaWNrZWQgYnV0dG9uIGluZm9ybWF0aW9uLlxyXG4gICAqIEBwYXJhbSB7SWNvbkJ1dHRvbn0gZXZlbnRcclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBvbkNoZWNrYm94Q1RBQnV0dG9uQ2xpY2soZXZlbnQ6IEljb25CdXR0b24pOiB2b2lkIHtcclxuICAgIHRoaXMuY3RhQnV0dG9uQ2xpY2suZW1pdChldmVudCk7XHJcbiAgfVxyXG59XHJcbiIsIjxmb3JtXHJcbiAgY2xhc3M9XCJpZWVlc2EtZHluYW1pYy1mb3JtXCJcclxuICBbZm9ybUdyb3VwXT1cImZvcm1cIlxyXG4gIChjaGFuZ2UpPVwib25Gb3JtQ2hhbmdlKClcIlxyXG4gIChuZ1N1Ym1pdCk9XCJvbkZvcm1TdWJtaXQoKVwiXHJcbiAgKGlucHV0KT1cImZvcm1JbnB1dENoYW5nZSgkZXZlbnQpXCJcclxuICBpZWVlc2FGb2N1c0ludmFsaWRGb3JtRmllbGRcclxuPlxyXG4gIDxmaWVsZHNldFxyXG4gICAgY2xhc3M9XCJpZWVlc2EtZHluYW1pYy1mb3JtX19maWVsZHNldFwiXHJcbiAgICAqbmdGb3I9XCJcclxuICAgICAgbGV0IGZvcm1HcnAgb2YgZm9ybUdyb3VwQXJyYXk7XHJcbiAgICAgIGxldCBpID0gaW5kZXg7XHJcbiAgICAgIHRyYWNrQnk6IHRyYWNrQnlGb3JtR3JvdXBcclxuICAgIFwiXHJcbiAgPlxyXG4gICAgPGxlZ2VuZFxyXG4gICAgICBjbGFzcz1cImZsb2F0LW5vbmUgdy1hdXRvIHAtMiBpZWVlc2EtZHluYW1pYy1mb3JtX19sZWdlbmRcIlxyXG4gICAgICAqbmdJZj1cImlzTGVnZW5kVmlzaWJsZVwiXHJcbiAgICA+XHJcbiAgICAgIHt7IGxlZ2VuZHNBcnJheVtpXSB9fVxyXG4gICAgPC9sZWdlbmQ+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzcz1cImNvbC17eyBjb2xXaWR0aC54cyB9fSBjb2wtc20te3sgY29sV2lkdGguc20gfX0gY29sLW1kLXt7XHJcbiAgICAgICAgICBjb2xXaWR0aC5tZFxyXG4gICAgICAgIH19IGNvbC1sZy17eyBjb2xXaWR0aC5sZyB9fSBjb2wteGwte3sgY29sV2lkdGgueGwgfX1cclxuICAgICAgICBpZWVlc2EtZHluYW1pYy1mb3JtX19mb3JtLWZpZWxkXCJcclxuICAgICAgICBbbmdDbGFzc109XCJnZXRSb3dDbGFzc05hbWUoZm9ybUNvbnRyb2xBcnJheVtpXVtqXS5jb250cm9sTmFtZSlcIlxyXG4gICAgICAgICpuZ0Zvcj1cImxldCBjb250cm9sIG9mIGZvcm1Db250cm9sQXJyYXlbaV07IGxldCBqID0gaW5kZXhcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgICAgICBpZWVlc2FEeW5hbWljRm9ybUZpZWxkXHJcbiAgICAgICAgICBbY29uZmlnXT1cImZvcm1Db250cm9sQXJyYXlbaV1bal1cIlxyXG4gICAgICAgICAgW2dyb3VwXT1cImZvcm1HcnBcIlxyXG4gICAgICAgICAgW3N1Ym1pdFJlc3BvbnNlXT1cInN1Ym1pdFJlc3BvbnNlXCJcclxuICAgICAgICAgIFtzZWFyY2hSZXNwb25zZV09XCJzZWFyY2hSZXNwb25zZVwiXHJcbiAgICAgICAgICBbZmlsZVVwbG9hZFN0YXR1c109XCJmaWxlVXBsb2FkU3RhdHVzXCJcclxuICAgICAgICAgIFtmaWxlRG93bmxvYWRDb25maWddPVwiZmlsZURvd25sb2FkQ29uZmlnXCJcclxuICAgICAgICAgIChmb3JtU2VhcmNoQXBwbHkpPVwib25TZWFyY2hBcHBseSgkZXZlbnQpXCJcclxuICAgICAgICAgIChmb3JtRHJvcGRvd25TZWxlY3RlZCk9XCJvbkZvcm1DaGFuZ2UoKTsgb25Ecm9wZG93bkNoYW5nZSgpXCJcclxuICAgICAgICAgIChmb3JtRGF0ZVNlbGVjdGVkKT1cIm9uRm9ybUNoYW5nZSgpOyBvbkRhdGVTZWxlY3RlZCgkZXZlbnQpXCJcclxuICAgICAgICAgIChmb3JtU2VsZWN0ZWREYXRlUmFuZ2UpPVwib25TZWxlY3RlZERhdGVSYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgIChmb3JtU2VsZWN0U2VhcmNoKT1cIm9uU2VsZWN0U2VhcmNoKCRldmVudClcIlxyXG4gICAgICAgICAgKGZvcm1BdXRvQ29tcGxldGVTZWFyY2gpPVwib25BdXRvQ29tcGxldGVTZWFyY2goJGV2ZW50KVwiXHJcbiAgICAgICAgICAoYXV0b0NvbXBsZXRlQ2xlYXJTZWFyY2hWYWx1ZSk9XCJcclxuICAgICAgICAgICAgb25BdXRvQ29tcGxldGVDbGVhclNlYXJjaFZhbHVlKCRldmVudClcclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgICAoYXV0b0NvbXBsZXRlT3B0aW9uU2VsZWN0ZWQpPVwiXHJcbiAgICAgICAgICAgIG9uRm9ybUNoYW5nZSgpOyBvbkF1dG9Db21wbGV0ZU9wdGlvblNlbGVjdGVkKClcclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgICAoZm9ybUNoZWNrYm94U2VsZWN0aW9uKT1cIm9uQ2hlY2tib3hTZWxlY3Rpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAoY3RhQnV0dG9uQ2xpY2spPVwib25DaGVja2JveENUQUJ1dHRvbkNsaWNrKCRldmVudClcIlxyXG4gICAgICAgICAgKGZvcm1JbnB1dFZhbHVlKT1cIm9uRm9ybUNoYW5nZSgpXCJcclxuICAgICAgICAgIChhZGRGb3JtR3JvdXApPVwib25BZGRGb3JtR3JvdXAoJGV2ZW50KVwiXHJcbiAgICAgICAgICAoZm9ybVRpbWVTZWxlY3RlZCk9XCJvbkZvcm1DaGFuZ2UoKTsgb25UaW1lU2VsZWN0ZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAoc3VwcG9ydFRleHRMaW5rQ2xpY2spPVwib25TdXBwb3J0VGV4dExpbmtDbGljaygkZXZlbnQpXCJcclxuICAgICAgICAgIChmb3JtU2xpZGVUb2dnbGVDaGFuZ2UpPVwib25Gb3JtU2xpZGVUb2dnbGVDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAoZm9ybUZpbGVVcGxvYWQpPVwib25GaWxlVXBsb2FkKCRldmVudClcIlxyXG4gICAgICAgICAgKGRyb3Bkb3duT3BlbmVkQ2hhbmdlKT1cIm9uRHJvcGRvd25PcGVuZWRDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAoZm9ybUNvbG9yUGlja2VyQ2hhbmdlKT1cIm9uRm9ybUNvbG9yUGlja2VyQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgKGZvcm1SYWRpb09wdGlvblNlbGVjdGVkKT1cIm9uUmFkaW9PcHRpb25TZWxlY3Rpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAoZm9ybU11bHRpU2VsZWN0QXV0b0NvbXBsZXRlU2VhcmNoKT1cIlxyXG4gICAgICAgICAgICBvbk11bHRpU2VsZWN0QXV0b0NvbXBsZXRlU2VhcmNoKCRldmVudClcclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgICAobXVsdGlTZWxlY3RBdXRvQ29tcGxldGVDbGVhclNlYXJjaFZhbHVlKT1cIlxyXG4gICAgICAgICAgICBvbk11bHRpU2VsZWN0QXV0b0NvbXBsZXRlQ2xlYXJTZWFyY2hWYWx1ZSgkZXZlbnQpXHJcbiAgICAgICAgICBcIlxyXG4gICAgICAgICAgKG11bHRpU2VsZWN0QXV0b0NvbXBsZXRlT3B0aW9uc1NlbGVjdGVkKT1cIlxyXG4gICAgICAgICAgICBvbkZvcm1DaGFuZ2UoKTsgb25NdWx0aVNlbGVjdEF1dG9Db21wbGV0ZU9wdGlvbnNTZWxlY3RlZCgkZXZlbnQpXHJcbiAgICAgICAgICBcIlxyXG4gICAgICAgICAgKGZvcm1SaWNoVGV4dEVkaXRvckNvbnRlbnRDaGFuZ2UpPVwiXHJcbiAgICAgICAgICAgIG9uRm9ybVJpY2hUZXh0RWRpdG9yQ29udGVudENoYW5nZSgkZXZlbnQpXHJcbiAgICAgICAgICBcIlxyXG4gICAgICAgID5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZmllbGRzZXQ+XHJcbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2NvbXBvbmVudF1cIj48L25nLWNvbnRlbnQ+XHJcbiAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cImNvbC0xMiBpZWVlc2EtZHluYW1pYy1mb3JtX19hY3Rpb25zXCJcclxuICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICdqdXN0aWZ5LWNvbnRlbnQtZW5kJzogYWN0aW9uQnV0dG9uQWxpZ24gPT09IGFsaWdubWVudFR5cGUuTEVGVCxcclxuICAgICAgICAnanVzdGlmeS1jb250ZW50LWNlbnRlcic6IGFjdGlvbkJ1dHRvbkFsaWduID09PSBhbGlnbm1lbnRUeXBlLk1JRERMRSxcclxuICAgICAgICAnanVzdGlmeS1jb250ZW50LXN0YXJ0JzogYWN0aW9uQnV0dG9uQWxpZ24gPT09IGFsaWdubWVudFR5cGUuUklHSFRcclxuICAgICAgfVwiXHJcbiAgICA+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICAqbmdJZj1cImlzUmlnaHRCdXR0b25OZWVkZWRcIlxyXG4gICAgICAgIHR5cGU9XCJzdWJtaXRcIlxyXG4gICAgICAgIG1hdC1idXR0b25cclxuICAgICAgICBjbGFzcz1cIm1hdC1wcmltYXJ5LWJ1dHRvbiBpZWVlc2EtZHluYW1pYy1mb3JtX19hY3Rpb25zLS1yaWdodC1idG5cIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJpc1N1Ym1pdEJ1dHRvbkRpc2FibGVkXCJcclxuICAgICAgPlxyXG4gICAgICAgIHt7IHJpZ2h0QnV0dG9uTGFiZWwgfX1cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICAqbmdJZj1cImlzTGVmdEJ1dHRvbk5lZWRlZFwiXHJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgbWF0LWJ1dHRvblxyXG4gICAgICAgIGNsYXNzPVwibWF0LXRlcnRpYXJ5LWJ1dHRvbiBpZWVlc2EtZHluYW1pYy1mb3JtX19hY3Rpb25zLS1sZWZ0LWJ0blwiXHJcbiAgICAgICAgKGNsaWNrKT1cIm9uTGVmdEJ1dHRvbkNsaWNrZWQoKVwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImlzTGVmdEJ1dHRvbkRpc2FibGVkXCJcclxuICAgICAgPlxyXG4gICAgICAgIHt7IGxlZnRCdXR0b25MYWJlbCB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Zvcm0+XHJcbiJdfQ==
|
|
571
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXNlbnRhdGlvbi9zcmMvbGliL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2R5bmFtaWMtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzZW50YXRpb24vc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9keW5hbWljLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFTixZQUFZLEVBQ1osaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxTQUFTLEVBRVQsV0FBVyxFQUVYLG1CQUFtQixFQUNuQixVQUFVLEdBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBSTNELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGtFQUFrRSxDQUFDO0FBQzdHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSw4RUFBOEUsQ0FBQztBQUU5SCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFTeEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMERBQTBELENBQUM7Ozs7O0FBSWxHOzs7Ozs7R0FNRztBQWlCSCxNQUFNLE9BQU8sb0JBQW9CO0lBTS9COzs7T0FHRztJQUNILElBQ0ksVUFBVSxDQUFDLEtBQWdCO1FBQzdCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3pC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LHNCQUFzQjtzQkFBL0IsTUFBTTtnQkFFRyxnQ0FBZ0M7c0JBQXpDLE1BQU07Z0JBRUcsMEJBQTBCO3NCQUFuQyxNQUFNO2dCQUNHLG9CQUFvQjtzQkFBN0IsTUFBTTtnQkFDRyxxQkFBcUI7c0JBQTlCLE1BQU07Z0JBSUcsWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ0csb0JBQW9CO3NCQUE3QixNQUFNO2dCQUNHLHFCQUFxQjtzQkFBOUIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLG9CQUFvQjtzQkFBN0IsTUFBTTtnQkFDRyxxQkFBcUI7c0JBQTlCLE1BQU07Z0JBQ0csdUJBQXVCO3NCQUFoQyxNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csaUNBQWlDO3NCQUExQyxNQUFNO2dCQUVHLDJDQUEyQztzQkFBcEQsTUFBTTtnQkFFRyxzQ0FBc0M7c0JBQS9DLE1BQU07Z0JBR0csK0JBQStCO3NCQUF4QyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlckNvbnRlbnRJbml0LFxyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgUXVlcnlMaXN0LFxyXG4gIFZpZXdDaGlsZHJlbixcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBGb3JtQXJyYXksXHJcbiAgRm9ybUJ1aWxkZXIsXHJcbiAgRm9ybUNvbnRyb2wsXHJcbiAgRm9ybUdyb3VwLFxyXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgVmFsaWRhdG9ycyxcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IEZvcm1Nb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9mb3JtLm1vZGVsJztcclxuaW1wb3J0IHsgRmllbGRDb25maWcgfSBmcm9tICcuLi8uLi9tb2RlbHMvZmllbGQtY29uZmlnLm1vZGVsJztcclxuaW1wb3J0IHsgRm9ybUdyaWQgfSBmcm9tICcuLi8uLi9tb2RlbHMvZm9ybS1ncmlkLm1vZGVsJztcclxuaW1wb3J0IHsgRHluYW1pY0Zvcm1GaWVsZERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvZHluYW1pYy1mb3JtLWZpZWxkL2R5bmFtaWMtZm9ybS1maWVsZC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBBbGlnblR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvYWxpZ24tdHlwZS5tb2RlbCc7XHJcbmltcG9ydCB7IEZvY3VzSW52YWxpZEZvcm1GaWVsZERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvZm9jdXMtaW52YWxpZC1mb3JtLWZpZWxkL2ZvY3VzLWludmFsaWQtZm9ybS1maWVsZC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDaGVja2JveE9wdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9jaGVja2JveC1vcHRpb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbFR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvZm9ybS1jb250cm9sLXR5cGVzLm1vZGVsJztcclxuaW1wb3J0IHsgU2VsZWN0ZWREYXRlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NlbGVjdGVkLWRhdGUubW9kZWwnO1xyXG5pbXBvcnQgeyBTZWxlY3RlZFRpbWUgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2VsZWN0ZWQtdGltZS5tb2RlbCc7XHJcbmltcG9ydCB7IExpbmtFdmVudEVtaXRUeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2V2ZW50LWVtaXQtdHlwZS5tb2RlbCc7XHJcbmltcG9ydCB7IFNsaWRlVG9nZ2xlT3B0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NsaWRlLXRvZ2dsZS1vcHRpb25zLm1vZGVsJztcclxuaW1wb3J0IHsgU2VsZWN0T3BlbmVkU3RhdGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2VsZWN0LW9wZW5lZC1zdGF0ZS5tb2RlbCc7XHJcbmltcG9ydCB7IFJhZGlvT3B0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3JhZGlvLW9wdGlvbi5tb2RlbCc7XHJcbmltcG9ydCB7IEljb25CdXR0b24gfSBmcm9tICcuLi8uLi9tb2RlbHMvaWNvbi1idXR0b24ubW9kZWwnO1xyXG5pbXBvcnQgeyBBdXRvQ29tcGxldGVPcHRpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMvYXV0b2NvbXBsZXRlLW9wdGlvbi5tb2RlbCc7XHJcbmltcG9ydCB7IFRleHRUcnVuY2F0ZWREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3RleHQtdHJ1bmNhdGVkL3RleHQtdHJ1bmNhdGVkLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEZpbGVVcGxvYWRTdGF0dXMgfSBmcm9tICcuLi8uLi9tb2RlbHMvZmlsZS11cGxvYWQtc3RhdHVzLm1vZGVsJztcclxuaW1wb3J0IHsgRmlsZURvd25sb2FkQ29uZmlnIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2ZpbGUtZG93bmxvYWQtY29uZmlnLm1vZGVsJztcclxuXHJcbi8qKlxyXG4gKiBDcmVhdGVzIGEgcmVhY3RpdmUgZm9ybSBkeW5hbWljYWxseSBiYXNlZCBvbiB0aGUgcGFzc2VkIGZvcm0gZmllbGQgY29uZmlndXJhdGlvbiBhbmQgaGFuZGxlcyB0aGUgZm9ybSBldmVudHMuXHJcbiAqIEBleHBvcnRcclxuICogQGNsYXNzIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAqIEBpbXBsZW1lbnRzIHtPbkluaXR9XHJcbiAqIEBpbXBsZW1lbnRzIHtBZnRlckNvbnRlbnRJbml0fVxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgZXhwb3J0QXM6ICdkeW5hbWljRm9ybScsXHJcbiAgc2VsZWN0b3I6ICdpZWVlc2EtZHluYW1pYy1mb3JtJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBEeW5hbWljRm9ybUZpZWxkRGlyZWN0aXZlLFxyXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgRm9jdXNJbnZhbGlkRm9ybUZpZWxkRGlyZWN0aXZlLFxyXG4gICAgVGV4dFRydW5jYXRlZERpcmVjdGl2ZSxcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9keW5hbWljLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2R5bmFtaWMtZm9ybS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gIGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdJbml0XHJcbntcclxuICBAVmlld0NoaWxkcmVuKER5bmFtaWNGb3JtRmllbGREaXJlY3RpdmUpXHJcbiAgZm9ybUZpZWxkcyE6IFF1ZXJ5TGlzdDxEeW5hbWljRm9ybUZpZWxkRGlyZWN0aXZlPjtcclxuICBwcml2YXRlIF9mb3JtR3JvdXBzITogRm9ybU1vZGVsO1xyXG4gIC8qKlxyXG4gICAqIEZvcm1Hcm91cHMgcGFzc2VkIGFuIGFuIGlucHV0IGFuZCB3aGljaCBjb250YWlucyBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIG9mIGV2ZXJ5IGZvcm0gZmllbGRzLlxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGZvcm1Hcm91cHModmFsdWU6IEZvcm1Nb2RlbCkge1xyXG4gICAgdGhpcy5fZm9ybUdyb3VwcyA9IHZhbHVlO1xyXG4gICAgdGhpcy5jcmVhdGVGb3JtR3JvdXBBcnJheSgpO1xyXG4gIH1cclxuICBnZXQgZm9ybUdyb3VwcygpOiBGb3JtTW9kZWwge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1Hcm91cHM7XHJcbiAgfVxyXG5cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIHByaXZhdGUgX3N1Ym1pdFJlc3BvbnNlITogYW55O1xyXG4gIC8qKlxyXG4gICAqIFNldHMgc3VibWl0IHJlc3BvbnNlIG9uIGZvcm0gc3VibWl0XHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIHNldCBzdWJtaXRSZXNwb25zZSh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLl9zdWJtaXRSZXNwb25zZSA9IHZhbHVlO1xyXG4gIH1cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGdldCBzdWJtaXRSZXNwb25zZSgpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3N1Ym1pdFJlc3BvbnNlO1xyXG4gIH1cclxuXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBwcml2YXRlIF9zZWFyY2hSZXNwb25zZSE6IGFueTtcclxuICAvKipcclxuICAgKiBTZXRzIHNlYXJjaCByZXNwb25zZSBvbiBmb3JtIHNlYXJjaCBldmVudFxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBzZXQgc2VhcmNoUmVzcG9uc2UodmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5fc2VhcmNoUmVzcG9uc2UgPSB2YWx1ZTtcclxuICB9XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBnZXQgc2VhcmNoUmVzcG9uc2UoKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLl9zZWFyY2hSZXNwb25zZTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfZmlsZVVwbG9hZFN0YXR1cyE6IEZpbGVVcGxvYWRTdGF0dXM7XHJcblxyXG4gIEBJbnB1dCgpIGdldCBmaWxlVXBsb2FkU3RhdHVzKCk6IEZpbGVVcGxvYWRTdGF0dXMge1xyXG4gICAgcmV0dXJuIHRoaXMuX2ZpbGVVcGxvYWRTdGF0dXM7XHJcbiAgfVxyXG4gIHNldCBmaWxlVXBsb2FkU3RhdHVzKHZhbHVlOiBGaWxlVXBsb2FkU3RhdHVzKSB7XHJcbiAgICB0aGlzLl9maWxlVXBsb2FkU3RhdHVzID0gdmFsdWU7XHJcbiAgfVxyXG4gIEBJbnB1dCgpIGNvbFdpZHRoITogRm9ybUdyaWQ7XHJcbiAgQElucHV0KCkgaXNMZWdlbmRWaXNpYmxlITogYm9vbGVhbjtcclxuICBASW5wdXQoKSByaWdodEJ1dHRvbkxhYmVsITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGxlZnRCdXR0b25MYWJlbCE6IHN0cmluZztcclxuICBASW5wdXQoKSBpc1N1Ym1pdEJ1dHRvbkRpc2FibGVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgaXNMZWZ0QnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBpc0xlZnRCdXR0b25OZWVkZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBpc1JpZ2h0QnV0dG9uTmVlZGVkID0gdHJ1ZTtcclxuICBASW5wdXQoKSBhY3Rpb25CdXR0b25BbGlnbiE6IEFsaWduVHlwZTtcclxuICBwcml2YXRlIF9maWxlRG93bmxvYWRDb25maWchOiBGaWxlRG93bmxvYWRDb25maWc7XHJcbiAgQElucHV0KClcclxuICBzZXQgZmlsZURvd25sb2FkQ29uZmlnKHZhbHVlOiBGaWxlRG93bmxvYWRDb25maWcpIHtcclxuICAgIHRoaXMuX2ZpbGVEb3dubG9hZENvbmZpZyA9IHZhbHVlO1xyXG4gIH1cclxuICBnZXQgZmlsZURvd25sb2FkQ29uZmlnKCk6IEZpbGVEb3dubG9hZENvbmZpZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fZmlsZURvd25sb2FkQ29uZmlnO1xyXG4gIH1cclxuICBhbGlnbm1lbnRUeXBlID0gQWxpZ25UeXBlO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgQE91dHB1dCgpIGZvcm1TdWJtaXQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBAT3V0cHV0KCkgZm9ybUNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIEBPdXRwdXQoKSBmb3JtSW5wdXQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBAT3V0cHV0KCkgZm9ybUxlZnRCdXR0b25DbGlja2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgQE91dHB1dCgpIGZvcm1TZWFyY2hBcHBseTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xyXG4gIEBPdXRwdXQoKSBmb3JtR3JvdXBzUmVmZXJlbmNlID0gbmV3IEV2ZW50RW1pdHRlcjxGb3JtR3JvdXBbXT4oKTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIEBPdXRwdXQoKSBkcm9wZG93bkNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xyXG4gIEBPdXRwdXQoKSBmb3JtQ2hlY2tib3hTZWxlY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPENoZWNrYm94T3B0aW9uPigpO1xyXG4gIEBPdXRwdXQoKSBmb3JtRGF0ZVNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxTZWxlY3RlZERhdGU+KCk7XHJcbiAgQE91dHB1dCgpIGZvcm1TZWxlY3RTZWFyY2ggPSBuZXcgRXZlbnRFbWl0dGVyPHtcclxuICAgIHNlYXJjaEV2ZW50OiBFdmVudDtcclxuICAgIGNvbnRyb2xOYW1lOiBzdHJpbmc7XHJcbiAgfT4oKTtcclxuICBAT3V0cHV0KCkgZm9ybUNvbnRyb2xDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xyXG4gIEBPdXRwdXQoKSBmb3JtQXV0b0NvbXBsZXRlU2VhcmNoOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9XHJcbiAgICBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICBAT3V0cHV0KCkgZm9ybUF1dG9Db21wbGV0ZUNsZWFyU2VhcmNoVmFsdWU6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID1cclxuICAgIG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBPdXRwdXQoKSBhdXRvQ29tcGxldGVPcHRpb25TZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9ybUdyb3VwW10+KCk7XHJcbiAgQE91dHB1dCgpIGZvcm1BZnRlckNvbnRlbnRJbml0ID0gbmV3IEV2ZW50RW1pdHRlcjxGb3JtR3JvdXBbXT4oKTtcclxuICBAT3V0cHV0KCkgZm9ybVNlbGVjdGVkRGF0ZVJhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjx7XHJcbiAgICBzdGFydERhdGU6IHN0cmluZztcclxuICAgIGVuZERhdGU6IHN0cmluZztcclxuICB9PigpO1xyXG4gIEBPdXRwdXQoKSBhZGRGb3JtR3JvdXAgPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xyXG4gIEBPdXRwdXQoKSBmb3JtVGltZVNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxTZWxlY3RlZFRpbWU+KCk7XHJcbiAgQE91dHB1dCgpIHN1cHBvcnRUZXh0TGlua0NsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxMaW5rRXZlbnRFbWl0VHlwZT4oKTtcclxuICBAT3V0cHV0KCkgZm9ybVNsaWRlVG9nZ2xlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxTbGlkZVRvZ2dsZU9wdGlvbj4oKTtcclxuICBAT3V0cHV0KCkgZm9ybUZpbGVVcGxvYWQgPSBuZXcgRXZlbnRFbWl0dGVyPEZpbGUgfCBGaWxlTGlzdD4oKTtcclxuICBAT3V0cHV0KCkgZHJvcGRvd25PcGVuZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFNlbGVjdE9wZW5lZFN0YXRlPigpO1xyXG4gIEBPdXRwdXQoKSBmb3JtQ29sb3JQaWNrZXJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICBAT3V0cHV0KCkgZm9ybVJhZGlvT3B0aW9uU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFJhZGlvT3B0aW9uPigpO1xyXG4gIEBPdXRwdXQoKSBjdGFCdXR0b25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8SWNvbkJ1dHRvbj4oKTtcclxuICBAT3V0cHV0KCkgZm9ybU11bHRpU2VsZWN0QXV0b0NvbXBsZXRlU2VhcmNoOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9XHJcbiAgICBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICBAT3V0cHV0KCkgZm9ybU11bHRpU2VsZWN0QXV0b0NvbXBsZXRlQ2xlYXJTZWFyY2hWYWx1ZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPVxyXG4gICAgbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQE91dHB1dCgpIG11bHRpU2VsZWN0QXV0b0NvbXBsZXRlT3B0aW9uc1NlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxcclxuICAgIEF1dG9Db21wbGV0ZU9wdGlvbltdXHJcbiAgPigpO1xyXG4gIEBPdXRwdXQoKSBmb3JtUmljaFRleHRFZGl0b3JDb250ZW50Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgZm9ybSE6IEZvcm1Hcm91cDtcclxuICBmb3JtR3JvdXBBcnJheTogRm9ybUdyb3VwW10gPSBbXTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGZvcm1Db250cm9sQXJyYXk6IGFueVtdID0gW107XHJcbiAgbGVnZW5kc0FycmF5OiBzdHJpbmdbXSA9IFtdO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFycywgbm8tZW1wdHktZnVuY3Rpb25cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZiOiBGb3JtQnVpbGRlciwgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7fVxyXG5cclxuICAvKipcclxuICAgKiBJbXBsZW1lbnRhdGlvbiBvZiBuZ09uSW5pdCBsaWZlY3ljbGUgaG9vayBtZXRob2QgdG8gY3JlYXRlIGZvcm0gZ3JvdXBcclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY3JlYXRlRm9ybUdyb3VwQXJyYXkoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtaXQgZ2VuZXJhdGVkIGZvcm0gcmVmZXJlbmNlIG9uIG5nQWZ0ZXJDb250ZW50SW5pdCBsaWZlY3ljbGUgaG9vay5cclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1BZnRlckNvbnRlbnRJbml0LmVtaXQodGhpcy5mb3JtR3JvdXBBcnJheSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIGZvY3VzIHRvIHRoZSBmaXJzdCBmaWVsZC5cclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBmaXJzdEZvY3VzYWJsZUVsZW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKFxyXG4gICAgICAnaW5wdXQsIG1hdC1zZWxlY3QsIHRleHRhcmVhLCBtYXQtY2hlY2tib3gsIG1hdC1yYWRpby1idXR0b24nXHJcbiAgICApIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiBmaXJzdEZvY3VzYWJsZUVsZW1lbnQ/LmZvY3VzKCksIDApO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBDcmVhdGVzIGZvcm0gZ3JvdXAgb24gdGhlIGJhc2lzIG9mIGZvcm1Hcm91cHMgY29uZmlndXJhdGlvbiBpbnB1dFxyXG4gICAqIEByZXR1cm4ge3ZvaWR9XHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgY3JlYXRlRm9ybUdyb3VwQXJyYXkoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1Hcm91cEFycmF5ID0gW107XHJcbiAgICB0aGlzLmZvcm1Db250cm9sQXJyYXkgPSBbXTtcclxuICAgIHRoaXMubGVnZW5kc0FycmF5ID0gW107XHJcbiAgICBpZiAoIXRoaXMuZm9ybUdyb3Vwcykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmZvcm1Hcm91cHM/LmZvcm1Hcm91cD8uZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xyXG4gICAgICBjb25zdCBjb250cm9scyA9IGVsZW1lbnQuY29udHJvbHMuZmlsdGVyKFxyXG4gICAgICAgIChjb250cm9sKSA9PiBjb250cm9sLnR5cGUgIT09ICdidXR0b24nXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMuZm9ybUdyb3VwQXJyYXkucHVzaCh0aGlzLmNyZWF0ZUdyb3VwKGNvbnRyb2xzKSk7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2xBcnJheS5wdXNoKGNvbnRyb2xzKTtcclxuICAgICAgdGhpcy5sZWdlbmRzQXJyYXkucHVzaChlbGVtZW50LmxlZ2VuZCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuZm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICBjaGlsZHJlbjogdGhpcy5mb3JtR3JvdXBBcnJheSxcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZm9ybUdyb3Vwc1JlZmVyZW5jZS5lbWl0KHRoaXMuZm9ybUdyb3VwQXJyYXkpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBDcmVhdGVzIGZvcm0gZ3JvdXAgdXNpbmcgZm9ybSBidWlsZGVyXHJcbiAgICogQHBhcmFtIHthbnlbXX0gY29udHJvbHNcclxuICAgKiBAcmV0dXJuIHtGb3JtR3JvdXB9XHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBjcmVhdGVHcm91cChjb250cm9sczogYW55W10pOiBGb3JtR3JvdXAge1xyXG4gICAgY29uc3QgZ3JvdXAgPSB0aGlzLmZiLmdyb3VwKHt9KTtcclxuICAgIGNvbnRyb2xzLmZvckVhY2goKGNvbnRyb2w6IEZpZWxkQ29uZmlnKSA9PiB7XHJcbiAgICAgIGlmIChjb250cm9sLnR5cGUgPT09IEZvcm1Db250cm9sVHlwZS5DSEVDS0JPWCkge1xyXG4gICAgICAgIGdyb3VwLmFkZENvbnRyb2woY29udHJvbC5jb250cm9sTmFtZSwgdGhpcy5jcmVhdGVGb3JtQXJyYXkoY29udHJvbCkpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGdyb3VwLmFkZENvbnRyb2woY29udHJvbC5jb250cm9sTmFtZSwgdGhpcy5jcmVhdGVDb250cm9sKGNvbnRyb2wpKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZXMgZm9ybSBhcnJheSBmb3IgQ2hlY2tib3ggZ3JvdXAgYW5kIHJldHVybnMuXHJcbiAgICogQHBhcmFtIHtGaWVsZENvbmZpZ30gY29udHJvbHNcclxuICAgKiBAcmV0dXJuIHtGb3JtQXJyYXk8YW55Pn1cclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGNyZWF0ZUZvcm1BcnJheShjb250cm9sczogRmllbGRDb25maWcpOiBGb3JtQXJyYXk8YW55PiB7XHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgbGV0IGZvcm1BcnJheTogRm9ybUFycmF5PGFueT47XHJcbiAgICBjb25zdCBncm91cCA9IHRoaXMuZmIuZ3JvdXAoe30pO1xyXG4gICAgZ3JvdXAuYWRkQ29udHJvbChjb250cm9scy5jb250cm9sTmFtZSwgdGhpcy5jcmVhdGVDb250cm9sKGNvbnRyb2xzKSk7XHJcbiAgICBjb25zdCBpc1JlcXVpcmVkVmFsaWRhdG9yID0gZ3JvdXBcclxuICAgICAgPy5nZXQoY29udHJvbHMuY29udHJvbE5hbWUpXHJcbiAgICAgID8uaGFzVmFsaWRhdG9yKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICAgaWYgKGlzUmVxdWlyZWRWYWxpZGF0b3IpXHJcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgIGZvcm1BcnJheSA9IG5ldyBGb3JtQXJyYXk8YW55PihcclxuICAgICAgICBbXSxcclxuICAgICAgICB0aGlzLmNoZWNrYm94U2VsZWN0aW9uUmVxdWlyZWRWYWxpZGF0b3IoY29udHJvbHM/Lm1pblNlbGVjdGlvblJlcXVpcmVkKVxyXG4gICAgICApO1xyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgIGVsc2UgZm9ybUFycmF5ID0gbmV3IEZvcm1BcnJheTxhbnk+KFtdKTtcclxuICAgIGNvbnRyb2xzPy5jaGVja2JveE9wdGlvbnM/LmZvckVhY2goKGNvbnRyb2wpID0+IHtcclxuICAgICAgZm9ybUFycmF5LnB1c2goXHJcbiAgICAgICAgbmV3IEZvcm1Db250cm9sKHsgdmFsdWU6IGNvbnRyb2wuY2hlY2tlZCwgZGlzYWJsZWQ6IGNvbnRyb2wuZGlzYWJsZWQgfSlcclxuICAgICAgKTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGZvcm1BcnJheTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEN1c3RvbSB2YWxpZGF0b3IgdG8gc2V0IHJlcXVpcmVkIGZpbGVkIHZhbGlkYXRpb24gZXJyb3IgZm9yIHRoZSBjaGVja2JveCBmaWVsZCB0eXBlIGJhc2VkIG9uIHRoZSBudW1iZXIgb2YgY29uZmlndXJlZCBtaW5pbXVtIGNoZWNrYm94IG9wdGlvbnMgdG8gYmUgc2VsZWN0ZWQgd2hlbmV2ZXIgdGhlIGZpbGVkIGNvbmZpZ3VyZWQgd2l0aCByZXF1aXJlZC5cclxuICAgKiBAcGFyYW0ge251bWJlcn0gW21pblNlbGVjdGlvblJlcXVpcmVkPTFdXHJcbiAgICogQHJldHVybiB7Kn1cclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGNoZWNrYm94U2VsZWN0aW9uUmVxdWlyZWRWYWxpZGF0b3IobWluU2VsZWN0aW9uUmVxdWlyZWQgPSAxKTogYW55IHtcclxuICAgIHJldHVybiBmdW5jdGlvbiB2YWxpZGF0ZShmb3JtR3JvdXA6IEZvcm1Hcm91cCkge1xyXG4gICAgICBsZXQgY2hlY2tlZCA9IDA7XHJcbiAgICAgIE9iamVjdC5rZXlzKGZvcm1Hcm91cC5jb250cm9scykuZm9yRWFjaCgoa2V5KSA9PiB7XHJcbiAgICAgICAgY29uc3QgY29udHJvbCA9IGZvcm1Hcm91cC5jb250cm9sc1trZXldO1xyXG4gICAgICAgIGlmIChjb250cm9sLnZhbHVlKSB7XHJcbiAgICAgICAgICBjaGVja2VkKys7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgaWYgKGNoZWNrZWQgPCBtaW5TZWxlY3Rpb25SZXF1aXJlZCkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBjaGVja2JveFNlbGVjdGlvblJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBmb3JtIGNvbnRyb2wgYmFzZWQgb24gZm9ybSBmaWVsZCBjb25maWd1cmF0aW9uXHJcbiAgICogQHBhcmFtIHtGaWVsZENvbmZpZ30gY29udHJvbFxyXG4gICAqIEByZXR1cm4ge0Zvcm1Db250cm9sfVxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIGNyZWF0ZUNvbnRyb2woY29udHJvbDogRmllbGRDb25maWcpOiBGb3JtQ29udHJvbCB7XHJcbiAgICBjb25zdCB7IGRpc2FibGVkLCB2YWxpZGF0aW9uLCB2YWx1ZSB9ID0gY29udHJvbDtcclxuICAgIHJldHVybiB0aGlzLmZiLmNvbnRyb2woeyBkaXNhYmxlZCwgdmFsdWUgfSwgdmFsaWRhdGlvbik7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFbWl0cyBmb3JtR3JvdXBBcnJheVxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uRm9ybVN1Ym1pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybVN1Ym1pdC5lbWl0KHRoaXMuZm9ybUdyb3VwQXJyYXkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRW1pdHMgZm9ybUdyb3VwQXJyYXlcclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBvbkxlZnRCdXR0b25DbGlja2VkKCk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtTGVmdEJ1dHRvbkNsaWNrZWQuZW1pdCh0aGlzLmZvcm1Hcm91cEFycmF5KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIGZvcm1Hcm91cEFycmF5XHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25Gb3JtQ2hhbmdlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtQ2hhbmdlLmVtaXQodGhpcy5mb3JtR3JvdXBBcnJheSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGZvcm0gZmllbGQgc2VsZWN0IHR5cGUgZHJvcCBkb3duIHNlbGVjdGlvbiBldmVudFxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uRHJvcGRvd25DaGFuZ2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRyb3Bkb3duQ2hhbmdlLmVtaXQodGhpcy5mb3JtR3JvdXBBcnJheSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGZvcm0gaW5wdXQgY2hhbmdlIGV2ZW50XHJcbiAgICogQHBhcmFtIHtFdmVudH0gZXZlbnRcclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBmb3JtSW5wdXRDaGFuZ2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sQ2hhbmdlLmVtaXQoZXZlbnQpO1xyXG4gICAgdGhpcy5mb3JtSW5wdXQuZW1pdCh0aGlzLmZvcm1Hcm91cEFycmF5KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgZm9ybSBmaWVsZCBzZWFyY2ggYXBwbHkgZXZlbnRcclxuICAgKiBAcGFyYW0ge0V2ZW50fSBldmVudFxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uU2VhcmNoQXBwbHkoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1TZWFyY2hBcHBseS5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgc2VhcmNoIGV2ZW50IGluc2lkZSBmb3JtIGZpZWxkIHNlbGVjdFxyXG4gICAqIEBwYXJhbSB7RXZlbnR9IGV2ZW50XHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25TZWxlY3RTZWFyY2goZXZlbnQ6IHsgc2VhcmNoRXZlbnQ6IEV2ZW50OyBjb250cm9sTmFtZTogc3RyaW5nIH0pOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybVNlbGVjdFNlYXJjaC5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRha2VzIHRoZSBpbmRleCBhbmQgdGhlIGZvcm1Hcm91cCBhcyBhcmd1bWVudHMgYW5kIG5lZWRzIHRvIHJldHVybiB0aGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoaXMgZm9ybUdyb3VwLlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleFxyXG4gICAqIEBwYXJhbSB7Rm9ybUdyb3VwfSBmb3JtR3JvdXBcclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICB0cmFja0J5Rm9ybUdyb3VwKGluZGV4OiBudW1iZXIsIGZvcm1Hcm91cDogRm9ybUdyb3VwKSB7XHJcbiAgICByZXR1cm4gZm9ybUdyb3VwLmNvbnRyb2xzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxlcyBmb3JtIGRhdGUgc2VsZWN0aW9uIGV2ZW50XHJcbiAgICogQHBhcmFtIHtTZWxlY3RlZERhdGV9IHNlbGVjdGVkRGF0ZVxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uRGF0ZVNlbGVjdGVkKHNlbGVjdGVkRGF0ZTogU2VsZWN0ZWREYXRlKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1EYXRlU2VsZWN0ZWQuZW1pdChzZWxlY3RlZERhdGUpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGZvcm0gdGltZSBzZWxlY3Rpb24gZXZlbnRcclxuICAgKiBAcGFyYW0ge1NlbGVjdGVkVGltZX0gc2VsZWN0ZWRUaW1lXHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25UaW1lU2VsZWN0ZWQoc2VsZWN0ZWRUaW1lOiBTZWxlY3RlZFRpbWUpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybVRpbWVTZWxlY3RlZC5lbWl0KHNlbGVjdGVkVGltZSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIHNlbGVjdGVkIGZvcm0gZGF0ZSByYW5nZVxyXG4gICAqIEBwYXJhbSB7e3N0YXJ0RGF0ZTogc3RyaW5nLCBlbmREYXRlOiBzdHJpbmd9fSBkYXRlUmFuZ2VcclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBvblNlbGVjdGVkRGF0ZVJhbmdlKGRhdGVSYW5nZTogeyBzdGFydERhdGU6IHN0cmluZzsgZW5kRGF0ZTogc3RyaW5nIH0pIHtcclxuICAgIHRoaXMuZm9ybVNlbGVjdGVkRGF0ZVJhbmdlLmVtaXQoZGF0ZVJhbmdlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgZm9ybSBmaWVsZCBhdXRvIGNvbXBsZXRlIHNlYXJjaCBldmVudFxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBldmVudFxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uQXV0b0NvbXBsZXRlU2VhcmNoKGV2ZW50OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybUF1dG9Db21wbGV0ZVNlYXJjaC5lbWl0KGV2ZW50KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogSGFuZGxlcyBmb3JtIGZpZWxkIGF1dG8gY29tcGxldGUgc2VhcmNoIGNsZWFyIGV2ZW50XHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGV2ZW50XHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25BdXRvQ29tcGxldGVDbGVhclNlYXJjaFZhbHVlKGV2ZW50OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybUF1dG9Db21wbGV0ZUNsZWFyU2VhcmNoVmFsdWUuZW1pdChldmVudCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGZvcm0gZmllbGQgY2hlY2tib3ggc2VsZWN0aW9uIGV2ZW50XHJcbiAgICogQHBhcmFtIHtDaGVja2JveE9wdGlvbn0gb3B0aW9uXHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25DaGVja2JveFNlbGVjdGlvbihvcHRpb246IENoZWNrYm94T3B0aW9uKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1DaGVja2JveFNlbGVjdGlvbi5lbWl0KG9wdGlvbik7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGZvcm0gZmllbGQgYXV0byBjb21wbGV0ZSBvcHRpb24gc2VsZWN0aW9uIGV2ZW50XHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25BdXRvQ29tcGxldGVPcHRpb25TZWxlY3RlZCgpOiB2b2lkIHtcclxuICAgIHRoaXMuYXV0b0NvbXBsZXRlT3B0aW9uU2VsZWN0ZWQuZW1pdCh0aGlzLmZvcm1Hcm91cEFycmF5KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBMaXN0ZW5zIGZvcm0gZmllbGQgbXVsdGkgc2VsZWN0IGF1dG8gY29tcGxldGUgc2VhcmNoIGV2ZW50IGFuZCBlbWl0cyBmb3JtTXVsdGlTZWxlY3RBdXRvQ29tcGxldGVTZWFyY2ggZXZlbnQuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGV2ZW50XHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25NdWx0aVNlbGVjdEF1dG9Db21wbGV0ZVNlYXJjaChldmVudDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1NdWx0aVNlbGVjdEF1dG9Db21wbGV0ZVNlYXJjaC5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIExpc3RlbnMgZm9ybSBmaWVsZCBtdWx0aSBzZWxlY3QgYXV0byBjb21wbGV0ZSBzZWFyY2ggY2xlYXIgZXZlbnQgYW5kIGVtaXRzIGZvcm1NdWx0aVNlbGVjdEF1dG9Db21wbGV0ZUNsZWFyU2VhcmNoVmFsdWUgZXZlbnQuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGV2ZW50XHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25NdWx0aVNlbGVjdEF1dG9Db21wbGV0ZUNsZWFyU2VhcmNoVmFsdWUoZXZlbnQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtTXVsdGlTZWxlY3RBdXRvQ29tcGxldGVDbGVhclNlYXJjaFZhbHVlLmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBMaXN0ZW5zIGZvcm0gZmllbGQgbXVsdGkgc2VsZWN0IGF1dG8gY29tcGxldGUgb3B0aW9uIHNlbGVjdGlvbiBldmVudCBhbmQgZW1pdHMgbXVsdGlTZWxlY3RBdXRvQ29tcGxldGVPcHRpb25TZWxlY3RlZCBldmVudC5cclxuICAgKiBAcGFyYW0ge0F1dG9Db21wbGV0ZU9wdGlvbltdfSBldmVudFxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uTXVsdGlTZWxlY3RBdXRvQ29tcGxldGVPcHRpb25zU2VsZWN0ZWQoZXZlbnQ6IEF1dG9Db21wbGV0ZU9wdGlvbltdKTogdm9pZCB7XHJcbiAgICB0aGlzLm11bHRpU2VsZWN0QXV0b0NvbXBsZXRlT3B0aW9uc1NlbGVjdGVkLmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxlcyBmb3JtIHNsaWRlIHRvZ2dsZSBldmVudCBhbmQgZW1pdHMgZm9ybVNsaWRlVG9nZ2xlQ2hhbmdlIGV2ZW50LlxyXG4gICAqIEBwYXJhbSB7U2xpZGVUb2dnbGVPcHRpb259IHRvZ2dsZVxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uRm9ybVNsaWRlVG9nZ2xlQ2hhbmdlKHRvZ2dsZTogU2xpZGVUb2dnbGVPcHRpb24pOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybVNsaWRlVG9nZ2xlQ2hhbmdlLmVtaXQodG9nZ2xlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgZm9ybSBjb2xvciBwaWNrZXIgZXZlbnQgYW5kIGVtaXRzIGZvcm1Db2xvclBpY2tlckNoYW5nZSBldmVudC5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gY29sb3JDb2RlXHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25Gb3JtQ29sb3JQaWNrZXJDaGFuZ2UoY29sb3JDb2RlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybUNvbG9yUGlja2VyQ2hhbmdlLmVtaXQoY29sb3JDb2RlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgZm9ybSByaWNoIHRleHQgZWRpdG9yIGV2ZW50IGFuZCBlbWl0cyBmb3JtUmljaFRleHRFZGl0b3JDb250ZW50Q2hhbmdlIGV2ZW50LlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBodG1sTWFya3VwVGV4dFxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uRm9ybVJpY2hUZXh0RWRpdG9yQ29udGVudENoYW5nZShodG1sTWFya3VwVGV4dDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1SaWNoVGV4dEVkaXRvckNvbnRlbnRDaGFuZ2UuZW1pdChodG1sTWFya3VwVGV4dCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGZpbGUgdXBsb2FkIGV2ZW50IGFuZCBlbWl0cyBmb3JtRmlsZVVwbG9hZCBldmVudFxyXG4gICAqIEBwYXJhbSB7KEZpbGUgfCBGaWxlTGlzdCl9IGZpbGVcclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBvbkZpbGVVcGxvYWQoZmlsZTogRmlsZSB8IEZpbGVMaXN0KTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1GaWxlVXBsb2FkLmVtaXQoZmlsZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGZvcm0gZmllbGQgcmFkaW8gYnV0dG9uIHNlbGVjdGlvbiBldmVudFxyXG4gICAqIEBwYXJhbSB7UmFkaW9PcHRpb259IG9wdGlvblxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uUmFkaW9PcHRpb25TZWxlY3Rpb24ob3B0aW9uOiBSYWRpb09wdGlvbik6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtUmFkaW9PcHRpb25TZWxlY3RlZC5lbWl0KG9wdGlvbik7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb252ZXJ0cyBwYXNzZWQgY29udHJvbCBuYW1lIGluIGh5cGhlbmF0ZWQgY3NzIGNsYXNzIG5hbWVcclxuICAgKiBAcGFyYW0ge3N0cmluZ30gY2xhc3NOYW1lXHJcbiAgICogQHJldHVybiB7c3RyaW5nfVxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldFJvd0NsYXNzTmFtZShjbGFzc05hbWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gY2xhc3NOYW1lXHJcbiAgICAgIC5yZXBsYWNlKC8oW0EtWl0pL2csICcgJDEnKVxyXG4gICAgICAudG9Mb3dlckNhc2UoKVxyXG4gICAgICAuc3BsaXQoJyAnKVxyXG4gICAgICAuam9pbignLScpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBFbWl0cyB0aGUgYWRkRm9ybUdyb3VwIGV2ZW50XHJcbiAgICogQHBhcmFtIHtFdmVudH0gZXZlbnRcclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBvbkFkZEZvcm1Hcm91cChldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuYWRkRm9ybUdyb3VwLmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBFbWl0cyBzdXBwb3J0VGV4dExpbmtDbGljayBldmVudCBvbiBjbGljayBvZiBmb3JtIHN1cHBvcnQgdGV4dCBsaW5rXHJcbiAgICogQHBhcmFtIHtMaW5rRXZlbnRFbWl0VHlwZX0gZXZlbnRcclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBvblN1cHBvcnRUZXh0TGlua0NsaWNrKGV2ZW50OiBMaW5rRXZlbnRFbWl0VHlwZSk6IHZvaWQge1xyXG4gICAgdGhpcy5zdXBwb3J0VGV4dExpbmtDbGljay5lbWl0KGV2ZW50KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogTGlzdGVucyBzZWxlY3QgZm9ybSBmaWVsZCBkcm9wZG93bk9wZW5lZENoYW5nZSBldmVudCBhbmQgZW1pdHMgZHJvcGRvd25PcGVuZWRDaGFuZ2UgZXZlbnQuXHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICogQHBhcmFtIHtTZWxlY3RPcGVuZWRTdGF0ZX0gZXZlbnRcclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBvbkRyb3Bkb3duT3BlbmVkQ2hhbmdlKGV2ZW50OiBTZWxlY3RPcGVuZWRTdGF0ZSk6IHZvaWQge1xyXG4gICAgdGhpcy5kcm9wZG93bk9wZW5lZENoYW5nZS5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIGN0YUJ1dHRvbkNsaWNrIGV2ZW50IGFsb25nIHdpdGggY2xpY2tlZCBidXR0b24gaW5mb3JtYXRpb24uXHJcbiAgICogQHBhcmFtIHtJY29uQnV0dG9ufSBldmVudFxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uQ2hlY2tib3hDVEFCdXR0b25DbGljayhldmVudDogSWNvbkJ1dHRvbik6IHZvaWQge1xyXG4gICAgdGhpcy5jdGFCdXR0b25DbGljay5lbWl0KGV2ZW50KTtcclxuICB9XHJcbn1cclxuIiwiPGZvcm1cclxuICBjbGFzcz1cImllZWVzYS1keW5hbWljLWZvcm1cIlxyXG4gIFtmb3JtR3JvdXBdPVwiZm9ybVwiXHJcbiAgKGNoYW5nZSk9XCJvbkZvcm1DaGFuZ2UoKVwiXHJcbiAgKG5nU3VibWl0KT1cIm9uRm9ybVN1Ym1pdCgpXCJcclxuICAoaW5wdXQpPVwiZm9ybUlucHV0Q2hhbmdlKCRldmVudClcIlxyXG4gIGllZWVzYUZvY3VzSW52YWxpZEZvcm1GaWVsZFxyXG4+XHJcbiAgPGZpZWxkc2V0XHJcbiAgICBjbGFzcz1cImllZWVzYS1keW5hbWljLWZvcm1fX2ZpZWxkc2V0XCJcclxuICAgICpuZ0Zvcj1cIlxyXG4gICAgICBsZXQgZm9ybUdycCBvZiBmb3JtR3JvdXBBcnJheTtcclxuICAgICAgbGV0IGkgPSBpbmRleDtcclxuICAgICAgdHJhY2tCeTogdHJhY2tCeUZvcm1Hcm91cFxyXG4gICAgXCJcclxuICA+XHJcbiAgICA8bGVnZW5kXHJcbiAgICAgIGNsYXNzPVwiZmxvYXQtbm9uZSB3LWF1dG8gcC0yIGllZWVzYS1keW5hbWljLWZvcm1fX2xlZ2VuZFwiXHJcbiAgICAgICpuZ0lmPVwiaXNMZWdlbmRWaXNpYmxlXCJcclxuICAgID5cclxuICAgICAge3sgbGVnZW5kc0FycmF5W2ldIH19XHJcbiAgICA8L2xlZ2VuZD5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwiY29sLXt7IGNvbFdpZHRoLnhzIH19IGNvbC1zbS17eyBjb2xXaWR0aC5zbSB9fSBjb2wtbWQte3tcclxuICAgICAgICAgIGNvbFdpZHRoLm1kXHJcbiAgICAgICAgfX0gY29sLWxnLXt7IGNvbFdpZHRoLmxnIH19IGNvbC14bC17eyBjb2xXaWR0aC54bCB9fVxyXG4gICAgICAgIGllZWVzYS1keW5hbWljLWZvcm1fX2Zvcm0tZmllbGRcIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cImdldFJvd0NsYXNzTmFtZShmb3JtQ29udHJvbEFycmF5W2ldW2pdLmNvbnRyb2xOYW1lKVwiXHJcbiAgICAgICAgKm5nRm9yPVwibGV0IGNvbnRyb2wgb2YgZm9ybUNvbnRyb2xBcnJheVtpXTsgbGV0IGogPSBpbmRleFwiXHJcbiAgICAgID5cclxuICAgICAgICA8bmctdGVtcGxhdGVcclxuICAgICAgICAgIGllZWVzYUR5bmFtaWNGb3JtRmllbGRcclxuICAgICAgICAgIFtjb25maWddPVwiZm9ybUNvbnRyb2xBcnJheVtpXVtqXVwiXHJcbiAgICAgICAgICBbZ3JvdXBdPVwiZm9ybUdycFwiXHJcbiAgICAgICAgICBbc3VibWl0UmVzcG9uc2VdPVwic3VibWl0UmVzcG9uc2VcIlxyXG4gICAgICAgICAgW3NlYXJjaFJlc3BvbnNlXT1cInNlYXJjaFJlc3BvbnNlXCJcclxuICAgICAgICAgIFtmaWxlVXBsb2FkU3RhdHVzXT1cImZpbGVVcGxvYWRTdGF0dXNcIlxyXG4gICAgICAgICAgW2ZpbGVEb3dubG9hZENvbmZpZ109XCJmaWxlRG93bmxvYWRDb25maWdcIlxyXG4gICAgICAgICAgKGZvcm1TZWFyY2hBcHBseSk9XCJvblNlYXJjaEFwcGx5KCRldmVudClcIlxyXG4gICAgICAgICAgKGZvcm1Ecm9wZG93blNlbGVjdGVkKT1cIm9uRm9ybUNoYW5nZSgpOyBvbkRyb3Bkb3duQ2hhbmdlKClcIlxyXG4gICAgICAgICAgKGZvcm1EYXRlU2VsZWN0ZWQpPVwib25Gb3JtQ2hhbmdlKCk7IG9uRGF0ZVNlbGVjdGVkKCRldmVudClcIlxyXG4gICAgICAgICAgKGZvcm1TZWxlY3RlZERhdGVSYW5nZSk9XCJvblNlbGVjdGVkRGF0ZVJhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgKGZvcm1TZWxlY3RTZWFyY2gpPVwib25TZWxlY3RTZWFyY2goJGV2ZW50KVwiXHJcbiAgICAgICAgICAoZm9ybUF1dG9Db21wbGV0ZVNlYXJjaCk9XCJvbkF1dG9Db21wbGV0ZVNlYXJjaCgkZXZlbnQpXCJcclxuICAgICAgICAgIChhdXRvQ29tcGxldGVDbGVhclNlYXJjaFZhbHVlKT1cIlxyXG4gICAgICAgICAgICBvbkF1dG9Db21wbGV0ZUNsZWFyU2VhcmNoVmFsdWUoJGV2ZW50KVxyXG4gICAgICAgICAgXCJcclxuICAgICAgICAgIChhdXRvQ29tcGxldGVPcHRpb25TZWxlY3RlZCk9XCJcclxuICAgICAgICAgICAgb25Gb3JtQ2hhbmdlKCk7IG9uQXV0b0NvbXBsZXRlT3B0aW9uU2VsZWN0ZWQoKVxyXG4gICAgICAgICAgXCJcclxuICAgICAgICAgIChmb3JtQ2hlY2tib3hTZWxlY3Rpb24pPVwib25DaGVja2JveFNlbGVjdGlvbigkZXZlbnQpXCJcclxuICAgICAgICAgIChjdGFCdXR0b25DbGljayk9XCJvbkNoZWNrYm94Q1RBQnV0dG9uQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgICAoZm9ybUlucHV0VmFsdWUpPVwib25Gb3JtQ2hhbmdlKClcIlxyXG4gICAgICAgICAgKGFkZEZvcm1Hcm91cCk9XCJvbkFkZEZvcm1Hcm91cCgkZXZlbnQpXCJcclxuICAgICAgICAgIChmb3JtVGltZVNlbGVjdGVkKT1cIm9uRm9ybUNoYW5nZSgpOyBvblRpbWVTZWxlY3RlZCgkZXZlbnQpXCJcclxuICAgICAgICAgIChzdXBwb3J0VGV4dExpbmtDbGljayk9XCJvblN1cHBvcnRUZXh0TGlua0NsaWNrKCRldmVudClcIlxyXG4gICAgICAgICAgKGZvcm1TbGlkZVRvZ2dsZUNoYW5nZSk9XCJvbkZvcm1TbGlkZVRvZ2dsZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgIChmb3JtRmlsZVVwbG9hZCk9XCJvbkZpbGVVcGxvYWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAoZHJvcGRvd25PcGVuZWRDaGFuZ2UpPVwib25Ecm9wZG93bk9wZW5lZENoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgIChmb3JtQ29sb3JQaWNrZXJDaGFuZ2UpPVwib25Gb3JtQ29sb3JQaWNrZXJDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAoZm9ybVJhZGlvT3B0aW9uU2VsZWN0ZWQpPVwib25SYWRpb09wdGlvblNlbGVjdGlvbigkZXZlbnQpXCJcclxuICAgICAgICAgIChmb3JtTXVsdGlTZWxlY3RBdXRvQ29tcGxldGVTZWFyY2gpPVwiXHJcbiAgICAgICAgICAgIG9uTXVsdGlTZWxlY3RBdXRvQ29tcGxldGVTZWFyY2goJGV2ZW50KVxyXG4gICAgICAgICAgXCJcclxuICAgICAgICAgIChtdWx0aVNlbGVjdEF1dG9Db21wbGV0ZUNsZWFyU2VhcmNoVmFsdWUpPVwiXHJcbiAgICAgICAgICAgIG9uTXVsdGlTZWxlY3RBdXRvQ29tcGxldGVDbGVhclNlYXJjaFZhbHVlKCRldmVudClcclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgICAobXVsdGlTZWxlY3RBdXRvQ29tcGxldGVPcHRpb25zU2VsZWN0ZWQpPVwiXHJcbiAgICAgICAgICAgIG9uRm9ybUNoYW5nZSgpOyBvbk11bHRpU2VsZWN0QXV0b0NvbXBsZXRlT3B0aW9uc1NlbGVjdGVkKCRldmVudClcclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgICAoZm9ybVJpY2hUZXh0RWRpdG9yQ29udGVudENoYW5nZSk9XCJcclxuICAgICAgICAgICAgb25Gb3JtUmljaFRleHRFZGl0b3JDb250ZW50Q2hhbmdlKCRldmVudClcclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9maWVsZHNldD5cclxuICA8bmctY29udGVudCBzZWxlY3Q9XCJbY29tcG9uZW50XVwiPjwvbmctY29udGVudD5cclxuICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiY29sLTEyIGllZWVzYS1keW5hbWljLWZvcm1fX2FjdGlvbnNcIlxyXG4gICAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICAgJ2p1c3RpZnktY29udGVudC1lbmQnOiBhY3Rpb25CdXR0b25BbGlnbiA9PT0gYWxpZ25tZW50VHlwZS5MRUZULFxyXG4gICAgICAgICdqdXN0aWZ5LWNvbnRlbnQtY2VudGVyJzogYWN0aW9uQnV0dG9uQWxpZ24gPT09IGFsaWdubWVudFR5cGUuTUlERExFLFxyXG4gICAgICAgICdqdXN0aWZ5LWNvbnRlbnQtc3RhcnQnOiBhY3Rpb25CdXR0b25BbGlnbiA9PT0gYWxpZ25tZW50VHlwZS5SSUdIVFxyXG4gICAgICB9XCJcclxuICAgID5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgICpuZ0lmPVwiaXNSaWdodEJ1dHRvbk5lZWRlZFwiXHJcbiAgICAgICAgdHlwZT1cInN1Ym1pdFwiXHJcbiAgICAgICAgbWF0LWJ1dHRvblxyXG4gICAgICAgIGNsYXNzPVwibWF0LXByaW1hcnktYnV0dG9uIGllZWVzYS1keW5hbWljLWZvcm1fX2FjdGlvbnMtLXJpZ2h0LWJ0blwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImlzU3VibWl0QnV0dG9uRGlzYWJsZWRcIlxyXG4gICAgICA+XHJcbiAgICAgICAge3sgcmlnaHRCdXR0b25MYWJlbCB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgICpuZ0lmPVwiaXNMZWZ0QnV0dG9uTmVlZGVkXCJcclxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICBtYXQtYnV0dG9uXHJcbiAgICAgICAgY2xhc3M9XCJtYXQtdGVydGlhcnktYnV0dG9uIGllZWVzYS1keW5hbWljLWZvcm1fX2FjdGlvbnMtLWxlZnQtYnRuXCJcclxuICAgICAgICAoY2xpY2spPVwib25MZWZ0QnV0dG9uQ2xpY2tlZCgpXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiaXNMZWZ0QnV0dG9uRGlzYWJsZWRcIlxyXG4gICAgICA+XHJcbiAgICAgICAge3sgbGVmdEJ1dHRvbkxhYmVsIH19XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZm9ybT5cclxuIl19
|
|
@@ -42,16 +42,16 @@ export class FileDownloadComponent {
|
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
44
|
/**
|
|
45
|
-
* Gets the download AWS pre-signed URL from API on button click or emit the downloadSelectedFile if
|
|
45
|
+
* Gets the download AWS pre-signed URL from API on button click or emit the downloadSelectedFile if canDownloadFileInternally flg is true.
|
|
46
46
|
* @param {File } file
|
|
47
47
|
* @memberof FileDownloadedComponent
|
|
48
48
|
*/
|
|
49
49
|
onDownloadFile(file) {
|
|
50
|
-
if (this.fileDownloadConfig?.
|
|
51
|
-
this.
|
|
50
|
+
if (this.fileDownloadConfig?.canDownloadFileInternally) {
|
|
51
|
+
this.getFileDownloadPresignedUrls(file);
|
|
52
52
|
}
|
|
53
53
|
else {
|
|
54
|
-
this.
|
|
54
|
+
this.downloadSelectedFile.emit(file);
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
57
|
/**
|
|
@@ -60,21 +60,20 @@ export class FileDownloadComponent {
|
|
|
60
60
|
*/
|
|
61
61
|
getFileDownloadPresignedUrls(file) {
|
|
62
62
|
this.fileUploadService
|
|
63
|
-
.getFileDownloadPresignedUrls(file, this.isPublicAPI, this.domainUrl, this.fileDownloadConfig?.
|
|
63
|
+
.getFileDownloadPresignedUrls(file, this.isPublicAPI, this.domainUrl, this.fileDownloadConfig?.downloadFileAPIUrl)
|
|
64
64
|
.pipe(takeUntil(this.destroy$))
|
|
65
65
|
.subscribe({
|
|
66
66
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
67
67
|
next: (response) => {
|
|
68
68
|
if (response.body === 'string') {
|
|
69
69
|
this.preSignedUrl = response.body;
|
|
70
|
-
this.fileName = file.
|
|
70
|
+
this.fileName = file.name;
|
|
71
71
|
}
|
|
72
72
|
else {
|
|
73
73
|
this.preSignedUrl = response.body.preSignedUrl;
|
|
74
74
|
this.fileName = response.body.fileName;
|
|
75
75
|
}
|
|
76
|
-
|
|
77
|
-
this.downloadFileFromPresignedUrl(this.preSignedUrl, this.fileName);
|
|
76
|
+
this.downloadFileFromS3(this.preSignedUrl, this.fileName);
|
|
78
77
|
},
|
|
79
78
|
error: (error) => {
|
|
80
79
|
this.sharedService.handleErrors(error, this.constants?.fileDownload?.message.errors);
|
|
@@ -82,27 +81,28 @@ export class FileDownloadComponent {
|
|
|
82
81
|
});
|
|
83
82
|
}
|
|
84
83
|
/**
|
|
85
|
-
*
|
|
84
|
+
* Emits deleteSelectedFile event or deletes the selected file by calling deleteFile() if the file can be deleted internally.
|
|
86
85
|
* @param {number} index
|
|
87
86
|
* @param {File } file
|
|
88
87
|
* @memberof FileDownloadedComponent
|
|
89
88
|
*/
|
|
90
89
|
onDeleteFile(file, index) {
|
|
91
|
-
if (this.fileDownloadConfig?.
|
|
92
|
-
this.
|
|
90
|
+
if (this.fileDownloadConfig?.canDeleteFileInternally) {
|
|
91
|
+
this.deleteFile(this.downloadFiles[index]?.attachmentId, index);
|
|
93
92
|
}
|
|
94
93
|
else {
|
|
95
|
-
this.
|
|
94
|
+
this.deleteSelectedFile.emit(file);
|
|
96
95
|
}
|
|
97
96
|
}
|
|
98
97
|
/**
|
|
99
|
-
* Deletes file by given agendaAttachmentId
|
|
98
|
+
* Deletes the file by given agendaAttachmentId,index
|
|
100
99
|
* @param {string} agendaAttachmentId
|
|
100
|
+
* @param {number} index
|
|
101
101
|
* @memberof UploadAttachmentsComponent
|
|
102
102
|
*/
|
|
103
103
|
deleteFile(agendaAttachmentId, index) {
|
|
104
104
|
this.fileUploadService
|
|
105
|
-
.deleteFile(`${this.fileDownloadConfig.
|
|
105
|
+
.deleteFile(`${this.fileDownloadConfig.deleteFileAPIUrl}${agendaAttachmentId}`)
|
|
106
106
|
.pipe(takeUntil(this.destroy$))
|
|
107
107
|
.subscribe({
|
|
108
108
|
// eslint-disable-next-line no-empty-function, @typescript-eslint/no-empty-function
|
|
@@ -138,15 +138,15 @@ export class FileDownloadComponent {
|
|
|
138
138
|
* @param {string} fileName
|
|
139
139
|
* @memberof FileDownloadComponent
|
|
140
140
|
*/
|
|
141
|
-
|
|
141
|
+
downloadFileFromS3(fileDownloadPresignedUrl, fileName) {
|
|
142
142
|
saveAs(fileDownloadPresignedUrl, fileName);
|
|
143
143
|
}
|
|
144
144
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FileDownloadComponent, deps: [{ token: i1.FormUtilityService }, { token: i2.SharedService }, { token: i3.FileUploadService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
145
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FileDownloadComponent, isStandalone: true, selector: "ieeesa-file-download", inputs: { downloadFiles: "downloadFiles", fileDownloadConfig: "fileDownloadConfig", isPublicAPI: "isPublicAPI", domainUrl: "domainUrl", apiBaseUrl: "apiBaseUrl" }, outputs: { downloadSelectedFile: "downloadSelectedFile", deleteSelectedFile: "deleteSelectedFile" }, ngImport: i0, template: "<div class=\"ieeesa-file-download\">\r\n <mat-list\r\n [ngClass]=\"\r\n fileDownloadConfig?.isAlignedVertical\r\n ? ''\r\n : 'ieeesa-file-download__horizantal-list-item'\r\n \"\r\n >\r\n <ng-container\r\n *ngFor=\"let item of downloadFiles; let index = index; trackBy: trackByFn\"\r\n >\r\n <mat-list-item\r\n [ngClass]=\"\r\n fileDownloadConfig?.isAlignedVertical ? '' : 'download-list-item'\r\n \"\r\n >\r\n <button\r\n mat-button\r\n [disabled]=\"fileDownloadConfig?.isFileDownloadNotNeeded\"\r\n (click)=\"onDownloadFile(item)\"\r\n class=\"ieeesa-btn-label-lg-bold-16 ieeesa-file-download__download-file-name\"\r\n >\r\n {{ item.fileName }}\r\n </button>\r\n <ieeesa-icon-button\r\n *ngIf=\"fileDownloadConfig?.isDeleteNeeded\"\r\n class=\"ieeesa-file-download--download-btn\"\r\n [iconButton]=\"fileDeleteBtn\"\r\n [isLabelNeeded]=\"false\"\r\n (iconButtonClick)=\"onDeleteFile(item, index)\"\r\n >\r\n </ieeesa-icon-button>\r\n </mat-list-item>\r\n </ng-container>\r\n </mat-list>\r\n</div>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:focus{background:#1f75a7}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:focus{background:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:focus{background-color:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-file-download__horizantal-list-item{display:flex!important;flex-flow:row wrap}.ieeesa-file-download .mat-mdc-list-base .mat-mdc-list-item.download-list-item{display:initial;width:auto;height:auto;padding:0 .375em!important}.ieeesa-file-download__download-file-name{padding:0!important;white-space:normal;border:none;background:none;min-width:auto!important;text-decoration:underline;font-size:.875rem!important}.ieeesa-file-download--download-btn .ieeesa-icon-button__1{padding:0!important;margin-left:.25em}.ieeesa-file-download--download-btn .ieeesa-icon-button__svg{height:1.5em;width:1.5em;margin-top:.25em}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i5.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i5.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: IconButtonComponent, selector: "ieeesa-icon-button", inputs: ["iconButton", "isLabelNeeded"], outputs: ["iconButtonClick"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
145
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FileDownloadComponent, isStandalone: true, selector: "ieeesa-file-download", inputs: { downloadFiles: "downloadFiles", fileDownloadConfig: "fileDownloadConfig", isPublicAPI: "isPublicAPI", domainUrl: "domainUrl", apiBaseUrl: "apiBaseUrl" }, outputs: { downloadSelectedFile: "downloadSelectedFile", deleteSelectedFile: "deleteSelectedFile" }, ngImport: i0, template: "<div class=\"ieeesa-file-download\">\r\n <mat-list\r\n [ngClass]=\"\r\n fileDownloadConfig?.isAlignedVertical\r\n ? ''\r\n : 'ieeesa-file-download__align-horizontal'\r\n \"\r\n >\r\n <ng-container\r\n *ngFor=\"let item of downloadFiles; let index = index; trackBy: trackByFn\"\r\n >\r\n <mat-list-item\r\n [ngClass]=\"\r\n fileDownloadConfig?.isAlignedVertical\r\n ? ''\r\n : 'ieeesa-list-file-by-horizontal'\r\n \"\r\n >\r\n <button\r\n mat-button\r\n type=\"button\"\r\n [disabled]=\"!fileDownloadConfig?.isDownloadNeeded\"\r\n (click)=\"onDownloadFile(item)\"\r\n class=\"ieeesa-btn-label-lg-bold-16 ieeesa-file-download__file-download-button\"\r\n >\r\n {{ item.fileName }}\r\n </button>\r\n <ieeesa-icon-button\r\n *ngIf=\"fileDownloadConfig?.isDeleteNeeded\"\r\n class=\"ieeesa-file-download--file-delete-button\"\r\n [iconButton]=\"fileDeleteBtn\"\r\n [isLabelNeeded]=\"false\"\r\n (iconButtonClick)=\"onDeleteFile(item, index)\"\r\n >\r\n </ieeesa-icon-button>\r\n </mat-list-item>\r\n </ng-container>\r\n </mat-list>\r\n</div>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:focus{background:#1f75a7}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:focus{background:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:focus{background-color:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-file-download__align-horizontal{display:flex!important;flex-flow:row wrap}.ieeesa-file-download .mat-mdc-list-base .mat-mdc-list-item.ieeesa-list-file-by-horizontal{display:initial;width:auto;height:auto;padding:0 .375em!important}.ieeesa-file-download__file-download-button{padding:0!important;white-space:normal;border:none;background:none;min-width:auto!important;text-decoration:underline;font-size:.875rem!important}.ieeesa-file-download--file-delete-button .ieeesa-icon-button__1{padding:0!important;margin-left:.25em}.ieeesa-file-download--file-delete-button .ieeesa-icon-button__svg{height:1.5em;width:1.5em;margin-top:.25em}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i5.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i5.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: IconButtonComponent, selector: "ieeesa-icon-button", inputs: ["iconButton", "isLabelNeeded"], outputs: ["iconButtonClick"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
146
146
|
}
|
|
147
147
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FileDownloadComponent, decorators: [{
|
|
148
148
|
type: Component,
|
|
149
|
-
args: [{ selector: 'ieeesa-file-download', standalone: true, imports: [CommonModule, MatListModule, MatIconModule, IconButtonComponent], encapsulation: ViewEncapsulation.None, template: "<div class=\"ieeesa-file-download\">\r\n <mat-list\r\n [ngClass]=\"\r\n fileDownloadConfig?.isAlignedVertical\r\n ? ''\r\n : 'ieeesa-file-download__horizantal-list-item'\r\n \"\r\n >\r\n <ng-container\r\n *ngFor=\"let item of downloadFiles; let index = index; trackBy: trackByFn\"\r\n >\r\n <mat-list-item\r\n [ngClass]=\"\r\n fileDownloadConfig?.isAlignedVertical ? '' : 'download-list-item'\r\n \"\r\n >\r\n <button\r\n mat-button\r\n [disabled]=\"fileDownloadConfig?.isFileDownloadNotNeeded\"\r\n (click)=\"onDownloadFile(item)\"\r\n class=\"ieeesa-btn-label-lg-bold-16 ieeesa-file-download__download-file-name\"\r\n >\r\n {{ item.fileName }}\r\n </button>\r\n <ieeesa-icon-button\r\n *ngIf=\"fileDownloadConfig?.isDeleteNeeded\"\r\n class=\"ieeesa-file-download--download-btn\"\r\n [iconButton]=\"fileDeleteBtn\"\r\n [isLabelNeeded]=\"false\"\r\n (iconButtonClick)=\"onDeleteFile(item, index)\"\r\n >\r\n </ieeesa-icon-button>\r\n </mat-list-item>\r\n </ng-container>\r\n </mat-list>\r\n</div>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:focus{background:#1f75a7}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:focus{background:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:focus{background-color:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-file-download__horizantal-list-item{display:flex!important;flex-flow:row wrap}.ieeesa-file-download .mat-mdc-list-base .mat-mdc-list-item.download-list-item{display:initial;width:auto;height:auto;padding:0 .375em!important}.ieeesa-file-download__download-file-name{padding:0!important;white-space:normal;border:none;background:none;min-width:auto!important;text-decoration:underline;font-size:.875rem!important}.ieeesa-file-download--download-btn .ieeesa-icon-button__1{padding:0!important;margin-left:.25em}.ieeesa-file-download--download-btn .ieeesa-icon-button__svg{height:1.5em;width:1.5em;margin-top:.25em}\n"] }]
|
|
149
|
+
args: [{ selector: 'ieeesa-file-download', standalone: true, imports: [CommonModule, MatListModule, MatIconModule, IconButtonComponent], encapsulation: ViewEncapsulation.None, template: "<div class=\"ieeesa-file-download\">\r\n <mat-list\r\n [ngClass]=\"\r\n fileDownloadConfig?.isAlignedVertical\r\n ? ''\r\n : 'ieeesa-file-download__align-horizontal'\r\n \"\r\n >\r\n <ng-container\r\n *ngFor=\"let item of downloadFiles; let index = index; trackBy: trackByFn\"\r\n >\r\n <mat-list-item\r\n [ngClass]=\"\r\n fileDownloadConfig?.isAlignedVertical\r\n ? ''\r\n : 'ieeesa-list-file-by-horizontal'\r\n \"\r\n >\r\n <button\r\n mat-button\r\n type=\"button\"\r\n [disabled]=\"!fileDownloadConfig?.isDownloadNeeded\"\r\n (click)=\"onDownloadFile(item)\"\r\n class=\"ieeesa-btn-label-lg-bold-16 ieeesa-file-download__file-download-button\"\r\n >\r\n {{ item.fileName }}\r\n </button>\r\n <ieeesa-icon-button\r\n *ngIf=\"fileDownloadConfig?.isDeleteNeeded\"\r\n class=\"ieeesa-file-download--file-delete-button\"\r\n [iconButton]=\"fileDeleteBtn\"\r\n [isLabelNeeded]=\"false\"\r\n (iconButtonClick)=\"onDeleteFile(item, index)\"\r\n >\r\n </ieeesa-icon-button>\r\n </mat-list-item>\r\n </ng-container>\r\n </mat-list>\r\n</div>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:focus{background:#1f75a7}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:focus{background:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:focus{background-color:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-file-download__align-horizontal{display:flex!important;flex-flow:row wrap}.ieeesa-file-download .mat-mdc-list-base .mat-mdc-list-item.ieeesa-list-file-by-horizontal{display:initial;width:auto;height:auto;padding:0 .375em!important}.ieeesa-file-download__file-download-button{padding:0!important;white-space:normal;border:none;background:none;min-width:auto!important;text-decoration:underline;font-size:.875rem!important}.ieeesa-file-download--file-delete-button .ieeesa-icon-button__1{padding:0!important;margin-left:.25em}.ieeesa-file-download--file-delete-button .ieeesa-icon-button__svg{height:1.5em;width:1.5em;margin-top:.25em}\n"] }]
|
|
150
150
|
}], ctorParameters: function () { return [{ type: i1.FormUtilityService }, { type: i2.SharedService }, { type: i3.FileUploadService }]; }, propDecorators: { downloadFiles: [{
|
|
151
151
|
type: Input
|
|
152
152
|
}], fileDownloadConfig: [{
|
|
@@ -162,4 +162,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
162
162
|
}], apiBaseUrl: [{
|
|
163
163
|
type: Input
|
|
164
164
|
}] } });
|
|
165
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1kb3dubG9hZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzZW50YXRpb24vc3JjL2xpYi9jb21wb25lbnRzL2ZpbGUtZG93bmxvYWQvZmlsZS1kb3dubG9hZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzZW50YXRpb24vc3JjL2xpYi9jb21wb25lbnRzL2ZpbGUtZG93bmxvYWQvZmlsZS1kb3dubG9hZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUNOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEtBQUssU0FBUyxNQUFNLDZCQUE2QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRzNFLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUM7Ozs7Ozs7QUFVcEMsTUFBTSxPQUFPLHFCQUFxQjtJQWNoQztJQUNFLDBDQUEwQztJQUNuQyxrQkFBc0M7SUFDN0MsMENBQTBDO0lBQ25DLGFBQTRCO0lBQ25DLDBDQUEwQztJQUNsQyxpQkFBb0MsQ0FBQyw2Q0FBNkM7O1FBSm5GLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFFdEMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFFM0Isc0JBQWlCLEdBQWpCLGlCQUFp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SUFBSTtxS0FRNUIsYUFBYTtzQkFBckIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNJLG9CQUFvQjtzQkFBN0IsTUFBTTtnQkFDRyxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBRUUsVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybVV0aWxpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZm9ybS11dGlsaXR5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGaWxlVXBsb2FkU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ZpbGUtdXBsb2FkLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNYXRMaXN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGlzdCc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0ICogYXMgY29uc3RhbnRzIGZyb20gJy4uLy4uL2Fzc2V0cy9jb25zdGFudHMuanNvbic7XHJcbmltcG9ydCB7IEljb25CdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi9pY29uLWJ1dHRvbi9pY29uLWJ1dHRvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGaWxlRG93bmxvYWRDb25maWcgfSBmcm9tICcuLi8uLi9tb2RlbHMvZmlsZS1kb3dubG9hZC1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBEb3dubG9hZEF0dGFjaG1lbnQgfSBmcm9tICcuLi8uLi9tb2RlbHMvZG93bmxvYWQtZmlsZS5tb2RlbCc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBTaGFyZWRTZXJ2aWNlIH0gZnJvbSAnQGllZWVzYS1ucG0vc2hhcmVkJztcclxuaW1wb3J0IHsgc2F2ZUFzIH0gZnJvbSAnZmlsZS1zYXZlcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2llZWVzYS1maWxlLWRvd25sb2FkJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE1hdExpc3RNb2R1bGUsIE1hdEljb25Nb2R1bGUsIEljb25CdXR0b25Db21wb25lbnRdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9maWxlLWRvd25sb2FkLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9maWxlLWRvd25sb2FkLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEZpbGVEb3dubG9hZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBjb25zdGFudHMgPSBjb25zdGFudHM7XHJcbiAgZGVzdHJveSQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG4gIHByZVNpZ25lZFVybCE6IHN0cmluZztcclxuICBmaWxlTmFtZSE6IHN0cmluZztcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIEBJbnB1dCgpIGRvd25sb2FkRmlsZXM6IEZpbGUgfCBGaWxlTGlzdCB8IGFueSB8IERvd25sb2FkQXR0YWNobWVudFtdID0gW107XHJcbiAgQElucHV0KCkgZmlsZURvd25sb2FkQ29uZmlnITogRmlsZURvd25sb2FkQ29uZmlnO1xyXG4gIEBJbnB1dCgpIGlzUHVibGljQVBJPzogYm9vbGVhbjtcclxuICBASW5wdXQoKSBkb21haW5Vcmw/OiBzdHJpbmc7XHJcbiAgQE91dHB1dCgpIGRvd25sb2FkU2VsZWN0ZWRGaWxlID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlIHwgRG93bmxvYWRBdHRhY2htZW50PigpO1xyXG4gIEBPdXRwdXQoKSBkZWxldGVTZWxlY3RlZEZpbGUgPSBuZXcgRXZlbnRFbWl0dGVyPEZpbGUgfCBEb3dubG9hZEF0dGFjaG1lbnQ+KCk7XHJcbiAgZmlsZURlbGV0ZUJ0biA9IHRoaXMuY29uc3RhbnRzPy5maWxlRG93bmxvYWQ/LmJ1dHRvbnNbMF07XHJcbiAgQElucHV0KCkgYXBpQmFzZVVybCE6IHN0cmluZztcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHVibGljIGZvcm1VdGlsaXR5U2VydmljZTogRm9ybVV0aWxpdHlTZXJ2aWNlLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwdWJsaWMgc2hhcmVkU2VydmljZTogU2hhcmVkU2VydmljZSxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHJpdmF0ZSBmaWxlVXBsb2FkU2VydmljZTogRmlsZVVwbG9hZFNlcnZpY2UgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWVtcHR5LWZ1bmN0aW9uXHJcbiAgKSB7fVxyXG5cclxuICAvKipcclxuICAgKiBTZXRzIEFQSSBiYXNlIFVSTCB0byBmaWxlIHVwbG9hZCBzZXJ2aWNlXHJcbiAgICogQG1lbWJlcm9mIEZpbGVEb3dubG9hZENvbXBvbmVudFxyXG4gICAqL1xyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuYXBpQmFzZVVybCkge1xyXG4gICAgICB0aGlzLmZpbGVVcGxvYWRTZXJ2aWNlLnNldEFwaUJhc2VVcmwodGhpcy5hcGlCYXNlVXJsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIGRvd25sb2FkIEFXUyBwcmUtc2lnbmVkIFVSTCBmcm9tIEFQSSBvbiBidXR0b24gY2xpY2sgb3IgZW1pdCB0aGUgZG93bmxvYWRTZWxlY3RlZEZpbGUgaWYgaXNOb3REb3dubG9hZEZpbGVJbnRlcm5hbGx5IGZsZyBpcyB0cnVlLlxyXG4gICAqIEBwYXJhbSB7RmlsZSB9IGZpbGVcclxuICAgKiBAbWVtYmVyb2YgRmlsZURvd25sb2FkZWRDb21wb25lbnRcclxuICAgKi9cclxuICBvbkRvd25sb2FkRmlsZShmaWxlOiBGaWxlIHwgRG93bmxvYWRBdHRhY2htZW50KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5maWxlRG93bmxvYWRDb25maWc/LmlzTm90RG93bmxvYWRGaWxlSW50ZXJuYWxseSkge1xyXG4gICAgICB0aGlzLmRvd25sb2FkU2VsZWN0ZWRGaWxlLmVtaXQoZmlsZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmdldEZpbGVEb3dubG9hZFByZXNpZ25lZFVybHMoZmlsZSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyBwcmUtc2lnbmVkIFVSTCBmb3IgZG93bmxvYWRpbmcgdGhlIHNlbGVjdGVkIGZpbGUgZnJvbSBBbWF6b24gUzMgYnVja2V0LlxyXG4gICAqIEBtZW1iZXJvZiBGaWxlRG93bmxvYWRlZENvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldEZpbGVEb3dubG9hZFByZXNpZ25lZFVybHMoZmlsZTogRmlsZSB8IERvd25sb2FkQXR0YWNobWVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5maWxlVXBsb2FkU2VydmljZVxyXG4gICAgICAuZ2V0RmlsZURvd25sb2FkUHJlc2lnbmVkVXJscyhcclxuICAgICAgICBmaWxlLFxyXG4gICAgICAgIHRoaXMuaXNQdWJsaWNBUEksXHJcbiAgICAgICAgdGhpcy5kb21haW5VcmwsXHJcbiAgICAgICAgdGhpcy5maWxlRG93bmxvYWRDb25maWc/LmRvd25sb2FkVXJpXHJcbiAgICAgIClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIG5leHQ6IChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzcG9uc2UuYm9keSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgdGhpcy5wcmVTaWduZWRVcmwgPSByZXNwb25zZS5ib2R5O1xyXG4gICAgICAgICAgICB0aGlzLmZpbGVOYW1lID0gKGZpbGUgYXMgRG93bmxvYWRBdHRhY2htZW50KS5maWxlTmFtZTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMucHJlU2lnbmVkVXJsID0gcmVzcG9uc2UuYm9keS5wcmVTaWduZWRVcmw7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsZU5hbWUgPSByZXNwb25zZS5ib2R5LmZpbGVOYW1lO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHRoaXMucHJlU2lnbmVkVXJsKVxyXG4gICAgICAgICAgICB0aGlzLmRvd25sb2FkRmlsZUZyb21QcmVzaWduZWRVcmwodGhpcy5wcmVTaWduZWRVcmwsIHRoaXMuZmlsZU5hbWUpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnJvcjogRXJyb3IpID0+IHtcclxuICAgICAgICAgIHRoaXMuc2hhcmVkU2VydmljZS5oYW5kbGVFcnJvcnMoXHJcbiAgICAgICAgICAgIGVycm9yLFxyXG4gICAgICAgICAgICB0aGlzLmNvbnN0YW50cz8uZmlsZURvd25sb2FkPy5tZXNzYWdlLmVycm9yc1xyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlbW92ZXMgdGhlIHNlbGVjdGVkIGZpbGUgZnJvbSB0aGUgZG93bmxvYWRlZCBmaWxlcyBsaXN0LlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleFxyXG4gICAqIEBwYXJhbSB7RmlsZSB9IGZpbGVcclxuICAgKiBAbWVtYmVyb2YgRmlsZURvd25sb2FkZWRDb21wb25lbnRcclxuICAgKi9cclxuICBvbkRlbGV0ZUZpbGUoZmlsZTogRmlsZSB8IERvd25sb2FkQXR0YWNobWVudCwgaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZmlsZURvd25sb2FkQ29uZmlnPy5pc05vdERlbGV0ZUZpbGVJbnRlcm5hbGx5KSB7XHJcbiAgICAgIHRoaXMuZGVsZXRlU2VsZWN0ZWRGaWxlLmVtaXQoZmlsZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmRlbGV0ZUZpbGUodGhpcy5kb3dubG9hZEZpbGVzW2luZGV4XT8uYXR0YWNobWVudElkLCBpbmRleCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIERlbGV0ZXMgZmlsZSBieSBnaXZlbiBhZ2VuZGFBdHRhY2htZW50SWRcclxuICAgKiBAcGFyYW0ge3N0cmluZ30gYWdlbmRhQXR0YWNobWVudElkXHJcbiAgICogQG1lbWJlcm9mIFVwbG9hZEF0dGFjaG1lbnRzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZGVsZXRlRmlsZShhZ2VuZGFBdHRhY2htZW50SWQ6IHN0cmluZywgaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5maWxlVXBsb2FkU2VydmljZVxyXG4gICAgICAuZGVsZXRlRmlsZShgJHt0aGlzLmZpbGVEb3dubG9hZENvbmZpZy5kZWxldGVVcml9JHthZ2VuZGFBdHRhY2htZW50SWR9YClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZW1wdHktZnVuY3Rpb24sIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxyXG4gICAgICAgIG5leHQ6ICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuZG93bmxvYWRGaWxlcy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBlcnJvcjogKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMuc2hhcmVkU2VydmljZS5oYW5kbGVFcnJvcnMoXHJcbiAgICAgICAgICAgIGVycm9yLFxyXG4gICAgICAgICAgICB0aGlzLmNvbnN0YW50cz8uZmlsZURvd25sb2FkPy5tZXNzYWdlLmVycm9yc1xyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIGZpbGUgbGlzdC5cclxuICAgKiBAcGFyYW0ge251bWJlcn0gaW5kZXhcclxuICAgKiBAcmV0dXJuIHsobnVtYmVyIHwgc3RyaW5nKX1cclxuICAgKiBAbWVtYmVyb2YgRmlsZURvd25sb2FkQ29tcG9uZW50XHJcbiAgICovXHJcbiAgdHJhY2tCeUZuKGluZGV4OiBudW1iZXIpOiBudW1iZXIgfCBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGluZGV4O1xyXG4gIH1cclxuICAvKipcclxuICAgKiBDbGVhbnMgdXAgcmVzb3VyY2VzIHdoZW4gdGhlIGNvbXBvbmVudCBpcyBkZXN0cm95ZWQuXHJcbiAgICogQG1lbWJlcm9mIEZpbGVEb3dubG9hZENvbXBvbmVudFxyXG4gICAqL1xyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRG93bmxvYWQgdGhlIGZpbGUgdXNpbmcgZ2VuZXJhdGVkIHByZXNpZ25lZCBVcmwuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGZpbGVEb3dubG9hZFByZXNpZ25lZFVybFxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmaWxlTmFtZVxyXG4gICAqIEBtZW1iZXJvZiBGaWxlRG93bmxvYWRDb21wb25lbnRcclxuICAgKi9cclxuICBkb3dubG9hZEZpbGVGcm9tUHJlc2lnbmVkVXJsKFxyXG4gICAgZmlsZURvd25sb2FkUHJlc2lnbmVkVXJsOiBzdHJpbmcsXHJcbiAgICBmaWxlTmFtZTogc3RyaW5nXHJcbiAgKTogdm9pZCB7XHJcbiAgICBzYXZlQXMoZmlsZURvd25sb2FkUHJlc2lnbmVkVXJsLCBmaWxlTmFtZSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJpZWVlc2EtZmlsZS1kb3dubG9hZFwiPlxyXG4gIDxtYXQtbGlzdFxyXG4gICAgW25nQ2xhc3NdPVwiXHJcbiAgICAgIGZpbGVEb3dubG9hZENvbmZpZz8uaXNBbGlnbmVkVmVydGljYWxcclxuICAgICAgICA/ICcnXHJcbiAgICAgICAgOiAnaWVlZXNhLWZpbGUtZG93bmxvYWRfX2hvcml6YW50YWwtbGlzdC1pdGVtJ1xyXG4gICAgXCJcclxuICA+XHJcbiAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGRvd25sb2FkRmlsZXM7IGxldCBpbmRleCA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5Rm5cIlxyXG4gICAgPlxyXG4gICAgICA8bWF0LWxpc3QtaXRlbVxyXG4gICAgICAgIFtuZ0NsYXNzXT1cIlxyXG4gICAgICAgICAgZmlsZURvd25sb2FkQ29uZmlnPy5pc0FsaWduZWRWZXJ0aWNhbCA/ICcnIDogJ2Rvd25sb2FkLWxpc3QtaXRlbSdcclxuICAgICAgICBcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgbWF0LWJ1dHRvblxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImZpbGVEb3dubG9hZENvbmZpZz8uaXNGaWxlRG93bmxvYWROb3ROZWVkZWRcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cIm9uRG93bmxvYWRGaWxlKGl0ZW0pXCJcclxuICAgICAgICAgIGNsYXNzPVwiaWVlZXNhLWJ0bi1sYWJlbC1sZy1ib2xkLTE2IGllZWVzYS1maWxlLWRvd25sb2FkX19kb3dubG9hZC1maWxlLW5hbWVcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt7IGl0ZW0uZmlsZU5hbWUgfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8aWVlZXNhLWljb24tYnV0dG9uXHJcbiAgICAgICAgICAqbmdJZj1cImZpbGVEb3dubG9hZENvbmZpZz8uaXNEZWxldGVOZWVkZWRcIlxyXG4gICAgICAgICAgY2xhc3M9XCJpZWVlc2EtZmlsZS1kb3dubG9hZC0tZG93bmxvYWQtYnRuXCJcclxuICAgICAgICAgIFtpY29uQnV0dG9uXT1cImZpbGVEZWxldGVCdG5cIlxyXG4gICAgICAgICAgW2lzTGFiZWxOZWVkZWRdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgKGljb25CdXR0b25DbGljayk9XCJvbkRlbGV0ZUZpbGUoaXRlbSwgaW5kZXgpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgPC9pZWVlc2EtaWNvbi1idXR0b24+XHJcbiAgICAgIDwvbWF0LWxpc3QtaXRlbT5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvbWF0LWxpc3Q+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
165
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1kb3dubG9hZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzZW50YXRpb24vc3JjL2xpYi9jb21wb25lbnRzL2ZpbGUtZG93bmxvYWQvZmlsZS1kb3dubG9hZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzZW50YXRpb24vc3JjL2xpYi9jb21wb25lbnRzL2ZpbGUtZG93bmxvYWQvZmlsZS1kb3dubG9hZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUNOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEtBQUssU0FBUyxNQUFNLDZCQUE2QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRzNFLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUM7Ozs7Ozs7QUFVcEMsTUFBTSxPQUFPLHFCQUFxQjtJQWdCaEM7SUFDRSwwQ0FBMEM7SUFDbkMsa0JBQXNDO0lBQzdDLDBDQUEwQztJQUNuQyxhQUE0QjtJQUNuQywwQ0FBMEM7SUFDbEMsaUJBQW9DLENBQUMsNkNBQTZDOztRQUpuRix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBRXRDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBRTNCLHNCQUFpQixHQUFqQixpQkFB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QUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0ksb0JBQW9CO3NCQUE3QixNQUFNO2dCQUdHLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFFRSxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtVXRpbGl0eVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mb3JtLXV0aWxpdHkuc2VydmljZSc7XHJcbmltcG9ydCB7IEZpbGVVcGxvYWRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZmlsZS11cGxvYWQuc2VydmljZSc7XHJcbmltcG9ydCB7IE1hdExpc3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9saXN0JztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgKiBhcyBjb25zdGFudHMgZnJvbSAnLi4vLi4vYXNzZXRzL2NvbnN0YW50cy5qc29uJztcclxuaW1wb3J0IHsgSWNvbkJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uL2ljb24tYnV0dG9uL2ljb24tYnV0dG9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZpbGVEb3dubG9hZENvbmZpZyB9IGZyb20gJy4uLy4uL21vZGVscy9maWxlLWRvd25sb2FkLWNvbmZpZy5tb2RlbCc7XHJcbmltcG9ydCB7IERvd25sb2FkQXR0YWNobWVudCB9IGZyb20gJy4uLy4uL21vZGVscy9kb3dubG9hZC1maWxlLm1vZGVsJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFNoYXJlZFNlcnZpY2UgfSBmcm9tICdAaWVlZXNhLW5wbS9zaGFyZWQnO1xyXG5pbXBvcnQgeyBzYXZlQXMgfSBmcm9tICdmaWxlLXNhdmVyJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWVlZXNhLWZpbGUtZG93bmxvYWQnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTWF0TGlzdE1vZHVsZSwgTWF0SWNvbk1vZHVsZSwgSWNvbkJ1dHRvbkNvbXBvbmVudF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbGUtZG93bmxvYWQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ZpbGUtZG93bmxvYWQuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlsZURvd25sb2FkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIGNvbnN0YW50cyA9IGNvbnN0YW50cztcclxuICBkZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcbiAgcHJlU2lnbmVkVXJsITogc3RyaW5nO1xyXG4gIGZpbGVOYW1lITogc3RyaW5nO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgQElucHV0KCkgZG93bmxvYWRGaWxlczogRmlsZSB8IEZpbGVMaXN0IHwgYW55IHwgRG93bmxvYWRBdHRhY2htZW50W10gPSBbXTtcclxuICBASW5wdXQoKSBmaWxlRG93bmxvYWRDb25maWchOiBGaWxlRG93bmxvYWRDb25maWc7XHJcbiAgQElucHV0KCkgaXNQdWJsaWNBUEk/OiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGRvbWFpblVybD86IHN0cmluZztcclxuICBAT3V0cHV0KCkgZG93bmxvYWRTZWxlY3RlZEZpbGUgPSBuZXcgRXZlbnRFbWl0dGVyPFxyXG4gICAgRmlsZSB8IERvd25sb2FkQXR0YWNobWVudFxyXG4gID4oKTtcclxuICBAT3V0cHV0KCkgZGVsZXRlU2VsZWN0ZWRGaWxlID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlIHwgRG93bmxvYWRBdHRhY2htZW50PigpO1xyXG4gIGZpbGVEZWxldGVCdG4gPSB0aGlzLmNvbnN0YW50cz8uZmlsZURvd25sb2FkPy5idXR0b25zWzBdO1xyXG4gIEBJbnB1dCgpIGFwaUJhc2VVcmwhOiBzdHJpbmc7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHB1YmxpYyBmb3JtVXRpbGl0eVNlcnZpY2U6IEZvcm1VdGlsaXR5U2VydmljZSxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHVibGljIHNoYXJlZFNlcnZpY2U6IFNoYXJlZFNlcnZpY2UsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHByaXZhdGUgZmlsZVVwbG9hZFNlcnZpY2U6IEZpbGVVcGxvYWRTZXJ2aWNlIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1lbXB0eS1mdW5jdGlvblxyXG4gICkge31cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyBBUEkgYmFzZSBVUkwgdG8gZmlsZSB1cGxvYWQgc2VydmljZVxyXG4gICAqIEBtZW1iZXJvZiBGaWxlRG93bmxvYWRDb21wb25lbnRcclxuICAgKi9cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmFwaUJhc2VVcmwpIHtcclxuICAgICAgdGhpcy5maWxlVXBsb2FkU2VydmljZS5zZXRBcGlCYXNlVXJsKHRoaXMuYXBpQmFzZVVybCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXRzIHRoZSBkb3dubG9hZCBBV1MgcHJlLXNpZ25lZCBVUkwgZnJvbSBBUEkgb24gYnV0dG9uIGNsaWNrIG9yIGVtaXQgdGhlIGRvd25sb2FkU2VsZWN0ZWRGaWxlIGlmIGNhbkRvd25sb2FkRmlsZUludGVybmFsbHkgZmxnIGlzIHRydWUuXHJcbiAgICogQHBhcmFtIHtGaWxlIH0gZmlsZVxyXG4gICAqIEBtZW1iZXJvZiBGaWxlRG93bmxvYWRlZENvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uRG93bmxvYWRGaWxlKGZpbGU6IEZpbGUgfCBEb3dubG9hZEF0dGFjaG1lbnQpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmZpbGVEb3dubG9hZENvbmZpZz8uY2FuRG93bmxvYWRGaWxlSW50ZXJuYWxseSkge1xyXG4gICAgICB0aGlzLmdldEZpbGVEb3dubG9hZFByZXNpZ25lZFVybHMoZmlsZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmRvd25sb2FkU2VsZWN0ZWRGaWxlLmVtaXQoZmlsZSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyBwcmUtc2lnbmVkIFVSTCBmb3IgZG93bmxvYWRpbmcgdGhlIHNlbGVjdGVkIGZpbGUgZnJvbSBBbWF6b24gUzMgYnVja2V0LlxyXG4gICAqIEBtZW1iZXJvZiBGaWxlRG93bmxvYWRlZENvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldEZpbGVEb3dubG9hZFByZXNpZ25lZFVybHMoZmlsZTogRmlsZSB8IERvd25sb2FkQXR0YWNobWVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5maWxlVXBsb2FkU2VydmljZVxyXG4gICAgICAuZ2V0RmlsZURvd25sb2FkUHJlc2lnbmVkVXJscyhcclxuICAgICAgICBmaWxlLFxyXG4gICAgICAgIHRoaXMuaXNQdWJsaWNBUEksXHJcbiAgICAgICAgdGhpcy5kb21haW5VcmwsXHJcbiAgICAgICAgdGhpcy5maWxlRG93bmxvYWRDb25maWc/LmRvd25sb2FkRmlsZUFQSVVybFxyXG4gICAgICApXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBuZXh0OiAocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlc3BvbnNlLmJvZHkgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICAgIHRoaXMucHJlU2lnbmVkVXJsID0gcmVzcG9uc2UuYm9keTtcclxuICAgICAgICAgICAgdGhpcy5maWxlTmFtZSA9IChmaWxlIGFzIEZpbGUpLm5hbWU7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnByZVNpZ25lZFVybCA9IHJlc3BvbnNlLmJvZHkucHJlU2lnbmVkVXJsO1xyXG4gICAgICAgICAgICB0aGlzLmZpbGVOYW1lID0gcmVzcG9uc2UuYm9keS5maWxlTmFtZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuZG93bmxvYWRGaWxlRnJvbVMzKHRoaXMucHJlU2lnbmVkVXJsLCB0aGlzLmZpbGVOYW1lKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyb3I6IEVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNoYXJlZFNlcnZpY2UuaGFuZGxlRXJyb3JzKFxyXG4gICAgICAgICAgICBlcnJvcixcclxuICAgICAgICAgICAgdGhpcy5jb25zdGFudHM/LmZpbGVEb3dubG9hZD8ubWVzc2FnZS5lcnJvcnNcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFbWl0cyBkZWxldGVTZWxlY3RlZEZpbGUgZXZlbnQgb3IgZGVsZXRlcyB0aGUgc2VsZWN0ZWQgZmlsZSBieSBjYWxsaW5nIGRlbGV0ZUZpbGUoKSBpZiB0aGUgZmlsZSBjYW4gYmUgZGVsZXRlZCBpbnRlcm5hbGx5LlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleFxyXG4gICAqIEBwYXJhbSB7RmlsZSB9IGZpbGVcclxuICAgKiBAbWVtYmVyb2YgRmlsZURvd25sb2FkZWRDb21wb25lbnRcclxuICAgKi9cclxuICBvbkRlbGV0ZUZpbGUoZmlsZTogRmlsZSB8IERvd25sb2FkQXR0YWNobWVudCwgaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZmlsZURvd25sb2FkQ29uZmlnPy5jYW5EZWxldGVGaWxlSW50ZXJuYWxseSkge1xyXG4gICAgICB0aGlzLmRlbGV0ZUZpbGUodGhpcy5kb3dubG9hZEZpbGVzW2luZGV4XT8uYXR0YWNobWVudElkLCBpbmRleCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmRlbGV0ZVNlbGVjdGVkRmlsZS5lbWl0KGZpbGUpO1xyXG4gICAgfVxyXG4gIH1cclxuICAvKipcclxuICAgKiBEZWxldGVzIHRoZSBmaWxlIGJ5IGdpdmVuIGFnZW5kYUF0dGFjaG1lbnRJZCxpbmRleFxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhZ2VuZGFBdHRhY2htZW50SWRcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaW5kZXhcclxuICAgKiBAbWVtYmVyb2YgVXBsb2FkQXR0YWNobWVudHNDb21wb25lbnRcclxuICAgKi9cclxuICBkZWxldGVGaWxlKGFnZW5kYUF0dGFjaG1lbnRJZDogc3RyaW5nLCBpbmRleDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLmZpbGVVcGxvYWRTZXJ2aWNlXHJcbiAgICAgIC5kZWxldGVGaWxlKFxyXG4gICAgICAgIGAke3RoaXMuZmlsZURvd25sb2FkQ29uZmlnLmRlbGV0ZUZpbGVBUElVcmx9JHthZ2VuZGFBdHRhY2htZW50SWR9YFxyXG4gICAgICApXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWVtcHR5LWZ1bmN0aW9uLCBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cclxuICAgICAgICBuZXh0OiAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmRvd25sb2FkRmlsZXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgZXJyb3I6IChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNoYXJlZFNlcnZpY2UuaGFuZGxlRXJyb3JzKFxyXG4gICAgICAgICAgICBlcnJvcixcclxuICAgICAgICAgICAgdGhpcy5jb25zdGFudHM/LmZpbGVEb3dubG9hZD8ubWVzc2FnZS5lcnJvcnNcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBmaWxlIGxpc3QuXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGluZGV4XHJcbiAgICogQHJldHVybiB7KG51bWJlciB8IHN0cmluZyl9XHJcbiAgICogQG1lbWJlcm9mIEZpbGVEb3dubG9hZENvbXBvbmVudFxyXG4gICAqL1xyXG4gIHRyYWNrQnlGbihpbmRleDogbnVtYmVyKTogbnVtYmVyIHwgc3RyaW5nIHtcclxuICAgIHJldHVybiBpbmRleDtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ2xlYW5zIHVwIHJlc291cmNlcyB3aGVuIHRoZSBjb21wb25lbnQgaXMgZGVzdHJveWVkLlxyXG4gICAqIEBtZW1iZXJvZiBGaWxlRG93bmxvYWRDb21wb25lbnRcclxuICAgKi9cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuZGVzdHJveSQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERvd25sb2FkIHRoZSBmaWxlIHVzaW5nIGdlbmVyYXRlZCBwcmVzaWduZWQgVXJsLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmaWxlRG93bmxvYWRQcmVzaWduZWRVcmxcclxuICAgKiBAcGFyYW0ge3N0cmluZ30gZmlsZU5hbWVcclxuICAgKiBAbWVtYmVyb2YgRmlsZURvd25sb2FkQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZG93bmxvYWRGaWxlRnJvbVMzKGZpbGVEb3dubG9hZFByZXNpZ25lZFVybDogc3RyaW5nLCBmaWxlTmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBzYXZlQXMoZmlsZURvd25sb2FkUHJlc2lnbmVkVXJsLCBmaWxlTmFtZSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJpZWVlc2EtZmlsZS1kb3dubG9hZFwiPlxyXG4gIDxtYXQtbGlzdFxyXG4gICAgW25nQ2xhc3NdPVwiXHJcbiAgICAgIGZpbGVEb3dubG9hZENvbmZpZz8uaXNBbGlnbmVkVmVydGljYWxcclxuICAgICAgICA/ICcnXHJcbiAgICAgICAgOiAnaWVlZXNhLWZpbGUtZG93bmxvYWRfX2FsaWduLWhvcml6b250YWwnXHJcbiAgICBcIlxyXG4gID5cclxuICAgIDxuZy1jb250YWluZXJcclxuICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZG93bmxvYWRGaWxlczsgbGV0IGluZGV4ID0gaW5kZXg7IHRyYWNrQnk6IHRyYWNrQnlGblwiXHJcbiAgICA+XHJcbiAgICAgIDxtYXQtbGlzdC1pdGVtXHJcbiAgICAgICAgW25nQ2xhc3NdPVwiXHJcbiAgICAgICAgICBmaWxlRG93bmxvYWRDb25maWc/LmlzQWxpZ25lZFZlcnRpY2FsXHJcbiAgICAgICAgICAgID8gJydcclxuICAgICAgICAgICAgOiAnaWVlZXNhLWxpc3QtZmlsZS1ieS1ob3Jpem9udGFsJ1xyXG4gICAgICAgIFwiXHJcbiAgICAgID5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICBtYXQtYnV0dG9uXHJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhZmlsZURvd25sb2FkQ29uZmlnPy5pc0Rvd25sb2FkTmVlZGVkXCJcclxuICAgICAgICAgIChjbGljayk9XCJvbkRvd25sb2FkRmlsZShpdGVtKVwiXHJcbiAgICAgICAgICBjbGFzcz1cImllZWVzYS1idG4tbGFiZWwtbGctYm9sZC0xNiBpZWVlc2EtZmlsZS1kb3dubG9hZF9fZmlsZS1kb3dubG9hZC1idXR0b25cIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt7IGl0ZW0uZmlsZU5hbWUgfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8aWVlZXNhLWljb24tYnV0dG9uXHJcbiAgICAgICAgICAqbmdJZj1cImZpbGVEb3dubG9hZENvbmZpZz8uaXNEZWxldGVOZWVkZWRcIlxyXG4gICAgICAgICAgY2xhc3M9XCJpZWVlc2EtZmlsZS1kb3dubG9hZC0tZmlsZS1kZWxldGUtYnV0dG9uXCJcclxuICAgICAgICAgIFtpY29uQnV0dG9uXT1cImZpbGVEZWxldGVCdG5cIlxyXG4gICAgICAgICAgW2lzTGFiZWxOZWVkZWRdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgKGljb25CdXR0b25DbGljayk9XCJvbkRlbGV0ZUZpbGUoaXRlbSwgaW5kZXgpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgPC9pZWVlc2EtaWNvbi1idXR0b24+XHJcbiAgICAgIDwvbWF0LWxpc3QtaXRlbT5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvbWF0LWxpc3Q+XHJcbjwvZGl2PlxyXG4iXX0=
|