@simpleangularcontrols/sac-common 16.0.0-rc.22 → 16.0.0-rc.23
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/common/basedatetimecontrol.d.ts +45 -18
- package/common/basedatetimecontrol.d.ts.map +1 -1
- package/common/baseinputcontrol.d.ts +10 -8
- package/common/baseinputcontrol.d.ts.map +1 -1
- package/common/baselistcontrol.d.ts +16 -16
- package/common/baselistcontrol.d.ts.map +1 -1
- package/common/basemodelcontrol.d.ts +60 -44
- package/common/basemodelcontrol.d.ts.map +1 -1
- package/common/baseselectcontrol.d.ts +6 -6
- package/common/baseselectcontrol.d.ts.map +1 -1
- package/common/baseuploadcontrol.d.ts +78 -58
- package/common/baseuploadcontrol.d.ts.map +1 -1
- package/components/browser/browser.d.ts +86 -89
- package/components/browser/browser.d.ts.map +1 -1
- package/components/browser/models/browserfile.d.ts +6 -6
- package/components/browser/models/browserfile.d.ts.map +1 -1
- package/components/browser/models/browserfiledeleterequest.d.ts +7 -7
- package/components/browser/models/browserfiledeleterequest.d.ts.map +1 -1
- package/components/browser/models/browserfilerenamerequest.d.ts +10 -10
- package/components/browser/models/browserfilerenamerequest.d.ts.map +1 -1
- package/components/browser/models/browserfileresponse.d.ts +2 -2
- package/components/browser/models/browserfileresponse.d.ts.map +1 -1
- package/components/browser/models/browserfilesaverequest.d.ts +7 -7
- package/components/browser/models/browserfilesaverequest.d.ts.map +1 -1
- package/components/browser/models/browsernode.d.ts +13 -13
- package/components/browser/models/browsernode.d.ts.map +1 -1
- package/components/browser/models/browsernodedeleterequest.d.ts +6 -6
- package/components/browser/models/browsernodedeleterequest.d.ts.map +1 -1
- package/components/browser/models/browsernodenewrequest.d.ts +7 -7
- package/components/browser/models/browsernodenewrequest.d.ts.map +1 -1
- package/components/browser/models/browsernoderenamerequest.d.ts +7 -7
- package/components/browser/models/browsernoderenamerequest.d.ts.map +1 -1
- package/components/browser/models/browsernoderequest.d.ts +7 -7
- package/components/browser/models/browsernoderequest.d.ts.map +1 -1
- package/components/browser/models/browsernoderesponse.d.ts +1 -1
- package/components/browser/models/browsernoderesponse.d.ts.map +1 -1
- package/controls/buttons/button.d.ts +25 -19
- package/controls/buttons/button.d.ts.map +1 -1
- package/controls/checkbox/checkbox.d.ts +4 -4
- package/controls/checkbox/checkbox.d.ts.map +1 -1
- package/controls/checkbox/radiobutton.d.ts +19 -13
- package/controls/checkbox/radiobutton.d.ts.map +1 -1
- package/controls/checkbox/radiobuttons.d.ts +13 -10
- package/controls/checkbox/radiobuttons.d.ts.map +1 -1
- package/controls/confirm/confirm.button.d.ts +3 -3
- package/controls/confirm/confirm.button.d.ts.map +1 -1
- package/controls/confirm/confirm.d.ts +24 -23
- package/controls/confirm/confirm.d.ts.map +1 -1
- package/controls/confirm/confirm.service.d.ts +20 -20
- package/controls/confirm/confirm.service.d.ts.map +1 -1
- package/controls/contextmenu/contextmenu.d.ts +33 -27
- package/controls/contextmenu/contextmenu.d.ts.map +1 -1
- package/controls/contextmenu/contextmenu.interface.d.ts +6 -0
- package/controls/contextmenu/contextmenu.interface.d.ts.map +1 -1
- package/controls/contextmenu/contextmenuanchor.d.ts +4 -4
- package/controls/contextmenu/contextmenuanchor.d.ts.map +1 -1
- package/controls/contextmenu/contextmenucontainer.d.ts +4 -4
- package/controls/contextmenu/contextmenucontainer.d.ts.map +1 -1
- package/controls/contextmenu/contextmenuitembutton.d.ts +12 -12
- package/controls/contextmenu/contextmenuitembutton.d.ts.map +1 -1
- package/controls/datetime/date.d.ts +11 -11
- package/controls/datetime/date.d.ts.map +1 -1
- package/controls/datetime/dateselector.d.ts +47 -40
- package/controls/datetime/dateselector.d.ts.map +1 -1
- package/controls/datetime/datetime.d.ts +15 -14
- package/controls/datetime/datetime.d.ts.map +1 -1
- package/controls/datetime/time.d.ts +22 -12
- package/controls/datetime/time.d.ts.map +1 -1
- package/controls/dialog/dialog.d.ts +29 -23
- package/controls/dialog/dialog.d.ts.map +1 -1
- package/controls/form/form.d.ts +22 -17
- package/controls/form/form.d.ts.map +1 -1
- package/controls/grid/grid.d.ts +1 -0
- package/controls/grid/grid.d.ts.map +1 -1
- package/controls/grid/gridbutton.d.ts +1 -0
- package/controls/grid/gridbutton.d.ts.map +1 -1
- package/controls/grid/gridcolumn.d.ts +10 -6
- package/controls/grid/gridcolumn.d.ts.map +1 -1
- package/controls/grid/gridcolumnaction.d.ts +2 -2
- package/controls/grid/gridcolumnaction.d.ts.map +1 -1
- package/controls/grid/gridcolumnbase.d.ts +8 -3
- package/controls/grid/gridcolumnbase.d.ts.map +1 -1
- package/controls/grid/model.d.ts +22 -19
- package/controls/grid/model.d.ts.map +1 -1
- package/controls/grid/paging.d.ts +2 -3
- package/controls/grid/paging.d.ts.map +1 -1
- package/controls/input/input.d.ts +7 -7
- package/controls/input/inputarea.d.ts +8 -6
- package/controls/input/inputarea.d.ts.map +1 -1
- package/controls/input/inputcurrency.d.ts +4 -1
- package/controls/input/inputcurrency.d.ts.map +1 -1
- package/controls/input/inputdecimal.d.ts +15 -15
- package/controls/input/inputdecimal.d.ts.map +1 -1
- package/controls/input/inputemail.d.ts +5 -5
- package/controls/input/inputemail.d.ts.map +1 -1
- package/controls/input/inputinteger.d.ts +15 -15
- package/controls/input/inputinteger.d.ts.map +1 -1
- package/controls/input/inputpassword.d.ts +3 -3
- package/controls/input/inputpassword.d.ts.map +1 -1
- package/controls/input/inputsearch.d.ts +11 -8
- package/controls/input/inputsearch.d.ts.map +1 -1
- package/controls/layout/formlayout.d.ts +9 -6
- package/controls/layout/formlayout.d.ts.map +1 -1
- package/controls/list/buildvaluestring.d.ts +2 -2
- package/controls/list/buildvaluestring.d.ts.map +1 -1
- package/controls/list/dropdown.d.ts +23 -22
- package/controls/list/dropdown.d.ts.map +1 -1
- package/controls/list/dropdownoptions.d.ts +11 -11
- package/controls/list/dropdownoptions.d.ts.map +1 -1
- package/controls/list/listbox.d.ts +25 -23
- package/controls/list/listbox.d.ts.map +1 -1
- package/controls/multilanguage/multilanguageinput.d.ts +27 -27
- package/controls/multilanguage/multilanguageinput.d.ts.map +1 -1
- package/controls/multilanguage/multilanguageinputarea.d.ts +27 -27
- package/controls/multilanguage/multilanguageinputarea.d.ts.map +1 -1
- package/controls/static/formcontainer.d.ts +8 -8
- package/controls/static/formcontainer.d.ts.map +1 -1
- package/controls/static/staticlabel.d.ts +6 -6
- package/controls/static/staticlabel.d.ts.map +1 -1
- package/controls/tabs/tab.d.ts +2 -2
- package/controls/tabs/tabitem.d.ts +9 -9
- package/controls/tabs/tabitem.d.ts.map +1 -1
- package/controls/tinymce/tinymce.d.ts +37 -37
- package/controls/tinymce/tinymce.d.ts.map +1 -1
- package/controls/tinymce/tinymcedialogsettings.d.ts +11 -11
- package/controls/tinymce/tinymcedialogsettings.d.ts.map +1 -1
- package/controls/tinymce/tinymcedialogsettingsmeta.d.ts +2 -2
- package/controls/tinymce/tinymcedialogsettingsmeta.d.ts.map +1 -1
- package/controls/tinymce/tinymceinstance.d.ts +2 -2
- package/controls/tinymce/tinymceinstance.d.ts.map +1 -1
- package/controls/tooltip/tooltip.d.ts +10 -5
- package/controls/tooltip/tooltip.d.ts.map +1 -1
- package/controls/treeview/treeview.d.ts +50 -5
- package/controls/treeview/treeview.d.ts.map +1 -1
- package/controls/upload/dropzonemultiple.d.ts +16 -16
- package/controls/upload/dropzonemultiple.d.ts.map +1 -1
- package/controls/upload/dropzonesingle.d.ts +11 -11
- package/controls/upload/uploadmultiple.d.ts +12 -12
- package/controls/upload/uploadmultiple.d.ts.map +1 -1
- package/controls/upload/uploadsingle.d.ts +7 -7
- package/controls/upload/uploadsingle.d.ts.map +1 -1
- package/controls/validation/validationsummary.d.ts +12 -11
- package/controls/validation/validationsummary.d.ts.map +1 -1
- package/controls/wizard/wizard.d.ts +43 -36
- package/controls/wizard/wizard.d.ts.map +1 -1
- package/controls/wizard/wizarditem.d.ts +9 -9
- package/controls/wizard/wizarditem.d.ts.map +1 -1
- package/enums/ButtonRoleType.d.ts +26 -1
- package/enums/ButtonRoleType.d.ts.map +1 -1
- package/enums/ControlHeight.d.ts +1 -1
- package/enums/ControlHeight.d.ts.map +1 -1
- package/enums/IconType.d.ts +1 -1
- package/enums/IconType.d.ts.map +1 -1
- package/esm2022/common/basedatetimecontrol.mjs +59 -38
- package/esm2022/common/baseinputcontrol.mjs +16 -14
- package/esm2022/common/baselistcontrol.mjs +20 -18
- package/esm2022/common/basemodelcontrol.mjs +82 -71
- package/esm2022/common/baseselectcontrol.mjs +10 -9
- package/esm2022/common/baseuploadcontrol.mjs +74 -58
- package/esm2022/components/browser/browser.mjs +88 -90
- package/esm2022/components/browser/models/browserfile.mjs +3 -3
- package/esm2022/components/browser/models/browserfiledeleterequest.mjs +9 -7
- package/esm2022/components/browser/models/browserfilerenamerequest.mjs +9 -7
- package/esm2022/components/browser/models/browserfileresponse.mjs +3 -3
- package/esm2022/components/browser/models/browserfilesaverequest.mjs +8 -6
- package/esm2022/components/browser/models/browsernode.mjs +3 -3
- package/esm2022/components/browser/models/browsernodedeleterequest.mjs +9 -7
- package/esm2022/components/browser/models/browsernodenewrequest.mjs +9 -7
- package/esm2022/components/browser/models/browsernoderenamerequest.mjs +9 -7
- package/esm2022/components/browser/models/browsernoderequest.mjs +9 -7
- package/esm2022/components/browser/models/browsernoderesponse.mjs +3 -3
- package/esm2022/controls/buttons/button.mjs +29 -25
- package/esm2022/controls/checkbox/checkbox.mjs +7 -7
- package/esm2022/controls/checkbox/radiobutton.mjs +23 -18
- package/esm2022/controls/checkbox/radiobuttons.mjs +17 -14
- package/esm2022/controls/confirm/confirm.button.mjs +6 -6
- package/esm2022/controls/confirm/confirm.mjs +27 -28
- package/esm2022/controls/confirm/confirm.service.mjs +24 -24
- package/esm2022/controls/contextmenu/contextmenu.interface.mjs +3 -3
- package/esm2022/controls/contextmenu/contextmenu.mjs +32 -27
- package/esm2022/controls/contextmenu/contextmenuanchor.mjs +7 -7
- package/esm2022/controls/contextmenu/contextmenucontainer.mjs +7 -7
- package/esm2022/controls/contextmenu/contextmenuitem.mjs +4 -4
- package/esm2022/controls/contextmenu/contextmenuitembutton.mjs +13 -13
- package/esm2022/controls/datetime/date.mjs +16 -16
- package/esm2022/controls/datetime/dateselector.mjs +95 -94
- package/esm2022/controls/datetime/datetime.mjs +20 -19
- package/esm2022/controls/datetime/time.mjs +27 -17
- package/esm2022/controls/dialog/dialog.mjs +41 -37
- package/esm2022/controls/form/form.mjs +22 -19
- package/esm2022/controls/grid/grid.mjs +5 -4
- package/esm2022/controls/grid/gridbutton.mjs +5 -4
- package/esm2022/controls/grid/gridcolumn.mjs +13 -9
- package/esm2022/controls/grid/gridcolumnaction.mjs +6 -6
- package/esm2022/controls/grid/gridcolumnbase.mjs +12 -7
- package/esm2022/controls/grid/gridimage.mjs +3 -3
- package/esm2022/controls/grid/model.mjs +23 -21
- package/esm2022/controls/grid/paging.mjs +9 -10
- package/esm2022/controls/input/input.mjs +11 -11
- package/esm2022/controls/input/inputarea.mjs +12 -10
- package/esm2022/controls/input/inputcurrency.mjs +9 -7
- package/esm2022/controls/input/inputdecimal.mjs +22 -22
- package/esm2022/controls/input/inputemail.mjs +9 -9
- package/esm2022/controls/input/inputinteger.mjs +21 -21
- package/esm2022/controls/input/inputpassword.mjs +7 -7
- package/esm2022/controls/input/inputsearch.mjs +15 -13
- package/esm2022/controls/layout/formlayout.mjs +16 -10
- package/esm2022/controls/list/buildvaluestring.mjs +10 -8
- package/esm2022/controls/list/dropdown.mjs +31 -30
- package/esm2022/controls/list/dropdownoptions.mjs +26 -19
- package/esm2022/controls/list/listbox.mjs +32 -30
- package/esm2022/controls/multilanguage/multilanguageinput.mjs +33 -33
- package/esm2022/controls/multilanguage/multilanguageinputarea.mjs +34 -34
- package/esm2022/controls/static/formcontainer.mjs +13 -13
- package/esm2022/controls/static/staticlabel.mjs +15 -12
- package/esm2022/controls/tabs/tab.mjs +5 -5
- package/esm2022/controls/tabs/tabitem.mjs +9 -8
- package/esm2022/controls/tinymce/tinymce.mjs +38 -38
- package/esm2022/controls/tinymce/tinymcedialogsettings.mjs +9 -7
- package/esm2022/controls/tinymce/tinymcedialogsettingsmeta.mjs +3 -5
- package/esm2022/controls/tinymce/tinymceinstance.mjs +3 -3
- package/esm2022/controls/tooltip/tooltip.mjs +16 -11
- package/esm2022/controls/treeview/treeview.mjs +47 -11
- package/esm2022/controls/upload/dropzonemultiple.mjs +21 -21
- package/esm2022/controls/upload/dropzonesingle.mjs +15 -15
- package/esm2022/controls/upload/uploadmultiple.mjs +17 -17
- package/esm2022/controls/upload/uploadsingle.mjs +11 -11
- package/esm2022/controls/validation/validationsummary.mjs +17 -16
- package/esm2022/controls/wizard/wizard.mjs +43 -33
- package/esm2022/controls/wizard/wizarditem.mjs +8 -8
- package/esm2022/enums/ButtonRoleType.mjs +3 -3
- package/esm2022/enums/ControlHeight.mjs +4 -4
- package/esm2022/enums/IconType.mjs +4 -4
- package/esm2022/interfaces/ISacConfigurationService.mjs +3 -3
- package/esm2022/interfaces/ISacFileBrowserService.mjs +3 -3
- package/esm2022/interfaces/ISacLabelSizes.mjs +3 -3
- package/esm2022/interfaces/ISacLanguageService.mjs +3 -3
- package/esm2022/interfaces/ISacLocalisationService.mjs +3 -3
- package/esm2022/interfaces/ISacUploadEventCompleteState.mjs +3 -3
- package/esm2022/interfaces/ISacValidationKeyService.mjs +3 -3
- package/esm2022/interfaces/iabstractcontrollabel.mjs +3 -3
- package/esm2022/interfaces/iconfirmcomponent.mjs +3 -3
- package/esm2022/interfaces/idatetimecontrol.mjs +3 -3
- package/esm2022/interfaces/iuploadcontrol.mjs +3 -3
- package/esm2022/interfaces/treeviewaction.interface.mjs +3 -3
- package/esm2022/models/languagemodel.mjs +8 -6
- package/esm2022/public_api.mjs +4 -4
- package/esm2022/services/index.mjs +3 -3
- package/esm2022/services/sac-configuration.service.mjs +13 -11
- package/esm2022/services/sac-filebrowser.service.mjs +66 -52
- package/esm2022/services/sac-icon.service.mjs +5 -5
- package/esm2022/services/sac-language.service.mjs +11 -7
- package/esm2022/services/sac-localisation.service.mjs +15 -11
- package/esm2022/services/sac-validationkey.service.mjs +108 -6
- package/esm2022/utilities/convertion.mjs +10 -8
- package/esm2022/utilities/datatypes.mjs +8 -6
- package/esm2022/utilities/enums.mjs +4 -10
- package/esm2022/utilities/guid.mjs +8 -8
- package/esm2022/utilities/interpolation.mjs +21 -14
- package/esm2022/utilities/popuphelper.mjs +52 -32
- package/esm2022/utilities/positioncalculator.mjs +61 -0
- package/esm2022/utilities/positionelements.mjs +32 -0
- package/esm2022/utilities/testingattribute.pipe.mjs +19 -6
- package/esm2022/validation/email.validator.mjs +11 -3
- package/esm2022/validation/equals.validator.mjs +12 -3
- package/esm2022/validation/index.mjs +3 -3
- package/esm2022/validation/invaliddate.validator.mjs +11 -3
- package/esm2022/validation/isDateValid.mjs +12 -10
- package/esm2022/validation/maxdate.validator.mjs +13 -4
- package/esm2022/validation/maxtime.validator.mjs +13 -4
- package/esm2022/validation/maxvalue.validator.mjs +12 -3
- package/esm2022/validation/mindate.validator.mjs +13 -4
- package/esm2022/validation/minfiles.validator.mjs +13 -4
- package/esm2022/validation/mintextlength.validator.mjs +11 -4
- package/esm2022/validation/mintime.validator.mjs +13 -4
- package/esm2022/validation/minvalue.validator.mjs +12 -3
- package/esm2022/validation/multilanguagerequired.validator.mjs +12 -3
- package/esm2022/validation/multilanguagerequiredany.validator.mjs +12 -3
- package/esm2022/validation/notequals.validator.mjs +12 -3
- package/esm2022/validation/pattern.validator.mjs +12 -3
- package/esm2022/validation/required.validator.mjs +11 -3
- package/esm2022/validation/validation.mjs +86 -102
- package/esm2022/validation/validationerrorcreator.mjs +13 -3
- package/esm2022/validation/validationerroritem.mjs +14 -12
- package/fesm2022/simpleangularcontrols-sac-common.mjs +2693 -2164
- package/fesm2022/simpleangularcontrols-sac-common.mjs.map +1 -1
- package/interfaces/ISacConfigurationService.d.ts +9 -1
- package/interfaces/ISacConfigurationService.d.ts.map +1 -1
- package/interfaces/ISacFileBrowserService.d.ts +43 -43
- package/interfaces/ISacFileBrowserService.d.ts.map +1 -1
- package/interfaces/ISacLabelSizes.d.ts +9 -6
- package/interfaces/ISacLabelSizes.d.ts.map +1 -1
- package/interfaces/ISacLanguageService.d.ts +3 -3
- package/interfaces/ISacLanguageService.d.ts.map +1 -1
- package/interfaces/ISacLocalisationService.d.ts +2 -2
- package/interfaces/ISacLocalisationService.d.ts.map +1 -1
- package/interfaces/ISacUploadEventCompleteState.d.ts +6 -0
- package/interfaces/ISacUploadEventCompleteState.d.ts.map +1 -1
- package/interfaces/iabstractcontrollabel.d.ts +4 -1
- package/interfaces/iabstractcontrollabel.d.ts.map +1 -1
- package/interfaces/iconfirmcomponent.d.ts +6 -6
- package/interfaces/iconfirmcomponent.d.ts.map +1 -1
- package/interfaces/idatetimecontrol.d.ts +10 -1
- package/interfaces/idatetimecontrol.d.ts.map +1 -1
- package/interfaces/iuploadcontrol.d.ts.map +1 -1
- package/interfaces/treeviewaction.interface.d.ts +9 -0
- package/interfaces/treeviewaction.interface.d.ts.map +1 -1
- package/models/languagemodel.d.ts +9 -9
- package/models/languagemodel.d.ts.map +1 -1
- package/package.json +1 -1
- package/public_api.d.ts +2 -1
- package/public_api.d.ts.map +1 -1
- package/services/index.d.ts +3 -3
- package/services/index.d.ts.map +1 -1
- package/services/sac-configuration.service.d.ts +8 -0
- package/services/sac-configuration.service.d.ts.map +1 -1
- package/services/sac-filebrowser.service.d.ts +97 -89
- package/services/sac-filebrowser.service.d.ts.map +1 -1
- package/services/sac-language.service.d.ts +2 -2
- package/services/sac-language.service.d.ts.map +1 -1
- package/services/sac-localisation.service.d.ts +11 -7
- package/services/sac-localisation.service.d.ts.map +1 -1
- package/services/sac-validationkey.service.d.ts +152 -5
- package/services/sac-validationkey.service.d.ts.map +1 -1
- package/simpleangularcontrols-sac-common-16.0.0-rc.23.tgz +0 -0
- package/utilities/convertion.d.ts +4 -4
- package/utilities/convertion.d.ts.map +1 -1
- package/utilities/datatypes.d.ts +3 -3
- package/utilities/datatypes.d.ts.map +1 -1
- package/utilities/enums.d.ts +8 -1
- package/utilities/enums.d.ts.map +1 -1
- package/utilities/guid.d.ts +1 -1
- package/utilities/guid.d.ts.map +1 -1
- package/utilities/interpolation.d.ts +9 -8
- package/utilities/interpolation.d.ts.map +1 -1
- package/utilities/popuphelper.d.ts +47 -10
- package/utilities/popuphelper.d.ts.map +1 -1
- package/utilities/positioncalculator.d.ts +83 -0
- package/utilities/positioncalculator.d.ts.map +1 -0
- package/utilities/positionelements.d.ts +31 -0
- package/utilities/positionelements.d.ts.map +1 -0
- package/utilities/testingattribute.pipe.d.ts +16 -1
- package/utilities/testingattribute.pipe.d.ts.map +1 -1
- package/validation/email.validator.d.ts +7 -0
- package/validation/email.validator.d.ts.map +1 -1
- package/validation/equals.validator.d.ts +8 -0
- package/validation/equals.validator.d.ts.map +1 -1
- package/validation/index.d.ts.map +1 -1
- package/validation/invaliddate.validator.d.ts +7 -0
- package/validation/invaliddate.validator.d.ts.map +1 -1
- package/validation/isDateValid.d.ts +5 -2
- package/validation/isDateValid.d.ts.map +1 -1
- package/validation/maxdate.validator.d.ts +8 -0
- package/validation/maxdate.validator.d.ts.map +1 -1
- package/validation/maxtime.validator.d.ts +8 -0
- package/validation/maxtime.validator.d.ts.map +1 -1
- package/validation/maxvalue.validator.d.ts +8 -0
- package/validation/maxvalue.validator.d.ts.map +1 -1
- package/validation/mindate.validator.d.ts +8 -0
- package/validation/mindate.validator.d.ts.map +1 -1
- package/validation/minfiles.validator.d.ts +8 -0
- package/validation/minfiles.validator.d.ts.map +1 -1
- package/validation/mintextlength.validator.d.ts +8 -0
- package/validation/mintextlength.validator.d.ts.map +1 -1
- package/validation/mintime.validator.d.ts +8 -0
- package/validation/mintime.validator.d.ts.map +1 -1
- package/validation/minvalue.validator.d.ts +8 -0
- package/validation/minvalue.validator.d.ts.map +1 -1
- package/validation/multilanguagerequired.validator.d.ts +9 -1
- package/validation/multilanguagerequired.validator.d.ts.map +1 -1
- package/validation/multilanguagerequiredany.validator.d.ts +9 -1
- package/validation/multilanguagerequiredany.validator.d.ts.map +1 -1
- package/validation/notequals.validator.d.ts +8 -0
- package/validation/notequals.validator.d.ts.map +1 -1
- package/validation/pattern.validator.d.ts +8 -0
- package/validation/pattern.validator.d.ts.map +1 -1
- package/validation/required.validator.d.ts +7 -0
- package/validation/required.validator.d.ts.map +1 -1
- package/validation/validation.d.ts +83 -99
- package/validation/validation.d.ts.map +1 -1
- package/validation/validationerrorcreator.d.ts +9 -0
- package/validation/validationerrorcreator.d.ts.map +1 -1
- package/validation/validationerroritem.d.ts +16 -16
- package/validation/validationerroritem.d.ts.map +1 -1
- package/esm2022/utilities/positioning.mjs +0 -58
- package/simpleangularcontrols-sac-common-16.0.0-rc.22.tgz +0 -0
- package/utilities/positioning.d.ts +0 -83
- package/utilities/positioning.d.ts.map +0 -1
|
@@ -1,53 +1,67 @@
|
|
|
1
|
-
function cov_1yiupmxswl(){var path="/home/runner/work/simpleangularcontrols/simpleangularcontrols/ch.jnetwork.sac-controls/dist/sac-common/esm2022/services/sac-filebrowser.service.mjs";var hash="472eee0c667c53511706b44199a166deba75801a";var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"/home/runner/work/simpleangularcontrols/simpleangularcontrols/ch.jnetwork.sac-controls/dist/sac-common/esm2022/services/sac-filebrowser.service.mjs",statementMap:{"0":{start:{line:14,column:38},end:{line:14,column:78}},"1":{start:{line:19,column:13},end:{line:19,column:193}},"2":{start:{line:20,column:13},end:{line:20,column:168}},"3":{start:{line:23,column:0},end:{line:28,column:14}},"4":{start:{line:38,column:8},end:{line:38,column:16}},"5":{start:{line:39,column:8},end:{line:39,column:37}},"6":{start:{line:48,column:20},end:{line:48,column:40}},"7":{start:{line:49,column:8},end:{line:51,column:9}},"8":{start:{line:50,column:12},end:{line:50,column:22}},"9":{start:{line:52,column:24},end:{line:55,column:10}},"10":{start:{line:56,column:8},end:{line:58,column:11}},"11":{start:{line:67,column:20},end:{line:67,column:39}},"12":{start:{line:68,column:8},end:{line:70,column:9}},"13":{start:{line:69,column:12},end:{line:69,column:22}},"14":{start:{line:71,column:24},end:{line:74,column:10}},"15":{start:{line:75,column:8},end:{line:77,column:11}},"16":{start:{line:86,column:20},end:{line:86,column:42}},"17":{start:{line:87,column:8},end:{line:89,column:9}},"18":{start:{line:88,column:12},end:{line:88,column:22}},"19":{start:{line:90,column:24},end:{line:93,column:10}},"20":{start:{line:94,column:8},end:{line:96,column:11}},"21":{start:{line:104,column:20},end:{line:104,column:42}},"22":{start:{line:105,column:8},end:{line:107,column:9}},"23":{start:{line:106,column:12},end:{line:106,column:22}},"24":{start:{line:108,column:24},end:{line:110,column:10}},"25":{start:{line:111,column:8},end:{line:113,column:11}},"26":{start:{line:122,column:20},end:{line:122,column:40}},"27":{start:{line:123,column:8},end:{line:125,column:9}},"28":{start:{line:124,column:12},end:{line:124,column:22}},"29":{start:{line:126,column:24},end:{line:129,column:10}},"30":{start:{line:130,column:8},end:{line:132,column:11}},"31":{start:{line:142,column:20},end:{line:142,column:42}},"32":{start:{line:143,column:8},end:{line:145,column:9}},"33":{start:{line:144,column:12},end:{line:144,column:22}},"34":{start:{line:146,column:24},end:{line:150,column:10}},"35":{start:{line:151,column:8},end:{line:153,column:11}},"36":{start:{line:162,column:20},end:{line:162,column:42}},"37":{start:{line:163,column:8},end:{line:165,column:9}},"38":{start:{line:164,column:12},end:{line:164,column:22}},"39":{start:{line:166,column:24},end:{line:169,column:10}},"40":{start:{line:170,column:8},end:{line:172,column:11}},"41":{start:{line:182,column:20},end:{line:182,column:42}},"42":{start:{line:183,column:8},end:{line:185,column:9}},"43":{start:{line:184,column:12},end:{line:184,column:22}},"44":{start:{line:186,column:24},end:{line:190,column:10}},"45":{start:{line:191,column:8},end:{line:193,column:11}},"46":{start:{line:195,column:13},end:{line:195,column:216}},"47":{start:{line:196,column:13},end:{line:196,column:167}},"48":{start:{line:199,column:0},end:{line:204,column:81}},"49":{start:{line:204,column:42},end:{line:204,column:75}}},fnMap:{"0":{name:"(anonymous_0)",decl:{start:{line:37,column:4},end:{line:37,column:5}},loc:{start:{line:37,column:28},end:{line:40,column:5}},line:37},"1":{name:"(anonymous_1)",decl:{start:{line:47,column:4},end:{line:47,column:5}},loc:{start:{line:47,column:45},end:{line:59,column:5}},line:47},"2":{name:"(anonymous_2)",decl:{start:{line:66,column:4},end:{line:66,column:5}},loc:{start:{line:66,column:42},end:{line:78,column:5}},line:66},"3":{name:"(anonymous_3)",decl:{start:{line:85,column:4},end:{line:85,column:5}},loc:{start:{line:85,column:44},end:{line:97,column:5}},line:85},"4":{name:"(anonymous_4)",decl:{start:{line:103,column:4},end:{line:103,column:5}},loc:{start:{line:103,column:29},end:{line:114,column:5}},line:103},"5":{name:"(anonymous_5)",decl:{start:{line:121,column:4},end:{line:121,column:5}},loc:{start:{line:121,column:46},end:{line:133,column:5}},line:121},"6":{name:"(anonymous_6)",decl:{start:{line:141,column:4},end:{line:141,column:5}},loc:{start:{line:141,column:50},end:{line:154,column:5}},line:141},"7":{name:"(anonymous_7)",decl:{start:{line:161,column:4},end:{line:161,column:5}},loc:{start:{line:161,column:48},end:{line:173,column:5}},line:161},"8":{name:"(anonymous_8)",decl:{start:{line:181,column:4},end:{line:181,column:5}},loc:{start:{line:181,column:61},end:{line:194,column:5}},line:181},"9":{name:"(anonymous_9)",decl:{start:{line:204,column:28},end:{line:204,column:29}},loc:{start:{line:204,column:40},end:{line:204,column:77}},line:204}},branchMap:{"0":{loc:{start:{line:49,column:8},end:{line:51,column:9}},type:"if",locations:[{start:{line:49,column:8},end:{line:51,column:9}},{start:{line:49,column:8},end:{line:51,column:9}}],line:49},"1":{loc:{start:{line:68,column:8},end:{line:70,column:9}},type:"if",locations:[{start:{line:68,column:8},end:{line:70,column:9}},{start:{line:68,column:8},end:{line:70,column:9}}],line:68},"2":{loc:{start:{line:87,column:8},end:{line:89,column:9}},type:"if",locations:[{start:{line:87,column:8},end:{line:89,column:9}},{start:{line:87,column:8},end:{line:89,column:9}}],line:87},"3":{loc:{start:{line:105,column:8},end:{line:107,column:9}},type:"if",locations:[{start:{line:105,column:8},end:{line:107,column:9}},{start:{line:105,column:8},end:{line:107,column:9}}],line:105},"4":{loc:{start:{line:123,column:8},end:{line:125,column:9}},type:"if",locations:[{start:{line:123,column:8},end:{line:125,column:9}},{start:{line:123,column:8},end:{line:125,column:9}}],line:123},"5":{loc:{start:{line:143,column:8},end:{line:145,column:9}},type:"if",locations:[{start:{line:143,column:8},end:{line:145,column:9}},{start:{line:143,column:8},end:{line:145,column:9}}],line:143},"6":{loc:{start:{line:163,column:8},end:{line:165,column:9}},type:"if",locations:[{start:{line:163,column:8},end:{line:165,column:9}},{start:{line:163,column:8},end:{line:165,column:9}}],line:163},"7":{loc:{start:{line:183,column:8},end:{line:185,column:9}},type:"if",locations:[{start:{line:183,column:8},end:{line:185,column:9}},{start:{line:183,column:8},end:{line:185,column:9}}],line:183}},s:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0},f:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0},b:{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0]},inputSourceMap:{version:3,file:"sac-filebrowser.service.js",sourceRoot:"",sources:["../../../../projects/sac-common/src/services/sac-filebrowser.service.ts"],names:[],mappings:"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",sourcesContent:["import { HttpClient } from '@angular/common/http';\nimport { Injectable, InjectionToken } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { BrowserFileDeleteRequest } from '../components/browser/models/browserfiledeleterequest';\nimport { BrowserFileRenameRequest } from '../components/browser/models/browserfilerenamerequest';\nimport { IBrowserFileResponse } from '../components/browser/models/browserfileresponse';\nimport { BrowserFileSaveRequest } from '../components/browser/models/browserfilesaverequest';\nimport { BrowserNodeDeleteRequest } from '../components/browser/models/browsernodedeleterequest';\nimport { BrowserNodeNewRequest } from '../components/browser/models/browsernodenewrequest';\nimport { BrowserNodeRenameRequest } from '../components/browser/models/browsernoderenamerequest';\nimport { BrowserNodeRequest } from '../components/browser/models/browsernoderequest';\nimport { IBrowserNodeResponse } from '../components/browser/models/browsernoderesponse';\nimport { ISacFileBrowserService } from '../interfaces/ISacFileBrowserService';\n\n/**\n * Injection Token f\xFCr Language Service\n */\nexport const SACFILEBROWSER_SERVICE =\n new InjectionToken<ISacFileBrowserService>('FileBrowserService');\n\n/**\n * Abstrakte Implementierung des File Service f\xFCr die Browser Component\n */\n@Injectable({\n providedIn: 'root',\n})\nexport abstract class SacAbstractFileBrowserService\n implements ISacFileBrowserService\n{\n /**\n * Gibt einen Node zur\xFCck\n * @param apiurl URL zu API Service\n * @param path Pfad des Node welcher angefordert wird\n * @param allowedextensions Erlaubte Extensions die angezeigt werden d\xFCrfen\n */\n abstract GetNode(\n apiurl: string,\n path: string,\n allowedextensions: string\n ): Observable<IBrowserNodeResponse>;\n\n /**\n * Speichert einen Node\n * @param apiurl URL zu API Service\n * @param path Pfad in welchem der Node gespeichert werden soll\n * @param newFoldername Name des neuen Nodes\n */\n abstract SaveNode(\n apiurl: string,\n path: string,\n newFoldername: string\n ): Observable<IBrowserNodeResponse>;\n\n /**\n * Rename eines Nodes\n * @param apiurl URL zu API Service\n * @param path Pfad des Nodes welcher umbenannt werden soll\n * @param newFoldername Neuer Name des Nodes\n */\n abstract RenameNode(\n apiurl: string,\n path: string,\n newFoldername: string\n ): Observable<IBrowserNodeResponse>;\n\n /**\n * L\xF6scht einen Node\n * @param apiurl URL zu API Service\n * @param path Pfad des Nodes welcher gel\xF6scht werden soll\n */\n abstract DeleteNode(\n apiurl: string,\n path: string\n ): Observable<IBrowserNodeResponse>;\n\n /**\n * Methode welche die Dateien eines Nodes ausliest\n * @param apiurl URL zu API Service\n * @param path Pfad des Nodes in welchem die Files gelesen werden sollen\n * @param allowedextensions Erlaubte File Extensions\n */\n abstract GetFiles(\n apiurl: string,\n path: string,\n allowedextensions: string\n ): Observable<IBrowserFileResponse>;\n\n /**\n * Speichert eine Hochgeladene Datei in der Struktur\n * @param apiurl URL zu API Service\n * @param path Pfad in welchem das neue File gespeichert werden soll\n * @param id ID des Uploads\n * @param allowedextensions Erlaubte Extensions f\xFCr den Upload\n */\n abstract SaveFile(\n apiurl: string,\n path: string,\n id: string,\n allowedextensions: string\n ): Observable<IBrowserFileResponse>;\n\n /**\n * Methode welche eine Datei umbenannt\n * @param apiurl URL zu API Service\n * @param path Pfad zum File welches umbenannt werden soll\n * @param newFilename Neuer Dateiname\n * @param allowedextensions Erlaubte Extension f\xFCr Files\n */\n abstract RenameFile(\n apiurl: string,\n path: string,\n newFilename: string,\n allowedextensions: string\n ): Observable<IBrowserFileResponse>;\n\n /**\n * L\xF6scht eine Datei\n * @param apiurl URL zu API Service\n * @param path Pfad des Files welches gel\xF6scht werden soll\n * @param allowedextensions Erlaubte Extensions f\xFCr Files\n */\n abstract DeleteFile(\n apiurl: string,\n path: string,\n allowedextensions: string\n ): Observable<IBrowserFileResponse>;\n}\n\n/**\n * Standardimplementierung des Backend Service f\xFCr die File Browser Component\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SacDefaultFileBrowserService extends SacAbstractFileBrowserService {\n /**\n * Konstruktor\n * @param httpclient HTTP Client Service\n */\n constructor(private httpclient: HttpClient) {\n super();\n }\n\n /**\n * Gibt einen Node zur\xFCck\n * @param apiurl URL zu API Service\n * @param path Pfad des Node welcher angefordert wird\n * @param allowedextensions Erlaubte Extensions die angezeigt werden d\xFCrfen\n */\n public GetNode(\n apiurl: string,\n path: string,\n allowedextensions: string\n ): Observable<IBrowserNodeResponse> {\n const url = `${apiurl}/getnodes`;\n\n if (!path) {\n path = '';\n }\n\n const request = new BrowserNodeRequest({\n Path: path,\n AllowedTypes: allowedextensions,\n });\n\n return this.httpclient.post<IBrowserNodeResponse>(url, request, {\n withCredentials: true,\n });\n }\n\n /**\n * Speichert einen Node\n * @param apiurl URL zu API Service\n * @param path Pfad in welchem der Node gespeichert werden soll\n * @param newFoldername Name des neuen Nodes\n */\n public SaveNode(\n apiurl: string,\n path: string,\n newFoldername: string\n ): Observable<IBrowserNodeResponse> {\n const url = `${apiurl}/newnode`;\n\n if (!path) {\n path = '';\n }\n\n const request = new BrowserNodeNewRequest({\n Path: path,\n NewFoldername: newFoldername,\n });\n\n return this.httpclient.post<IBrowserNodeResponse>(url, request, {\n withCredentials: true,\n });\n }\n\n /**\n * Rename eines Nodes\n * @param apiurl URL zu API Service\n * @param path Pfad des Nodes welcher umbenannt werden soll\n * @param newFoldername Neuer Name des Nodes\n */\n public RenameNode(\n apiurl: string,\n path: string,\n newFoldername: string\n ): Observable<IBrowserNodeResponse> {\n const url = `${apiurl}/renamenode`;\n\n if (!path) {\n path = '';\n }\n\n const request = new BrowserNodeRenameRequest({\n Path: path,\n NewFoldername: newFoldername,\n });\n\n return this.httpclient.put<IBrowserNodeResponse>(url, request, {\n withCredentials: true,\n });\n }\n\n /**\n * L\xF6scht einen Node\n * @param apiurl URL zu API Service\n * @param path Pfad des Nodes welcher gel\xF6scht werden soll\n */\n public DeleteNode(\n apiurl: string,\n path: string\n ): Observable<IBrowserNodeResponse> {\n const url = `${apiurl}/deletenode`;\n\n if (!path) {\n path = '';\n }\n\n const request = new BrowserNodeDeleteRequest({\n Path: path,\n });\n\n return this.httpclient.post<IBrowserNodeResponse>(url, request, {\n withCredentials: true,\n });\n }\n\n /**\n * Methode welche die Dateien eines Nodes ausliest\n * @param apiurl URL zu API Service\n * @param path Pfad des Nodes in welchem die Files gelesen werden sollen\n * @param allowedextensions Erlaubte File Extensions\n */\n public GetFiles(\n apiurl: string,\n path: string,\n allowedextensions: string\n ): Observable<IBrowserFileResponse> {\n const url = `${apiurl}/getfiles`;\n\n if (!path) {\n path = '';\n }\n\n const request = new BrowserNodeRequest({\n Path: path,\n AllowedTypes: allowedextensions,\n });\n\n return this.httpclient.post<IBrowserFileResponse>(url, request, {\n withCredentials: true,\n });\n }\n\n /**\n * Speichert eine Hochgeladene Datei in der Struktur\n * @param apiurl URL zu API Service\n * @param path Pfad in welchem das neue File gespeichert werden soll\n * @param id ID des Uploads\n * @param allowedextensions Erlaubte Extensions f\xFCr den Upload\n */\n public SaveFile(\n apiurl: string,\n path: string,\n id: string,\n allowedextensions: string\n ): Observable<IBrowserFileResponse> {\n const url = `${apiurl}/uploadfile`;\n\n if (!path) {\n path = '';\n }\n\n const request = new BrowserFileSaveRequest({\n Path: path,\n UploadId: id,\n AllowedTypes: allowedextensions,\n });\n\n return this.httpclient.post<IBrowserFileResponse>(url, request, {\n withCredentials: true,\n });\n }\n\n /**\n * L\xF6scht eine Datei\n * @param apiurl URL zu API Service\n * @param path Pfad des Files welches gel\xF6scht werden soll\n * @param allowedextensions Erlaubte Extensions f\xFCr Files\n */\n public DeleteFile(\n apiurl: string,\n path: string,\n allowedextensions: string\n ): Observable<IBrowserFileResponse> {\n const url = `${apiurl}/deletefile`;\n\n if (!path) {\n path = '';\n }\n\n const request = new BrowserFileDeleteRequest({\n Path: path,\n AllowedTypes: allowedextensions,\n });\n\n return this.httpclient.post<IBrowserFileResponse>(url, request, {\n withCredentials: true,\n });\n }\n\n /**\n * Methode welche eine Datei umbenannt\n * @param apiurl URL zu API Service\n * @param path Pfad zum File welches umbenannt werden soll\n * @param newFilename Neuer Dateiname\n * @param allowedextensions Erlaubte Extension f\xFCr Files\n */\n public RenameFile(\n apiurl: string,\n path: string,\n newFilename: string,\n allowedextensions: string\n ): Observable<IBrowserFileResponse> {\n const url = `${apiurl}/renamefile`;\n\n if (!path) {\n path = '';\n }\n\n const request = new BrowserFileRenameRequest({\n Path: path,\n NewFilename: newFilename,\n AllowedTypes: allowedextensions,\n });\n\n return this.httpclient.put<IBrowserFileResponse>(url, request, {\n withCredentials: true,\n });\n }\n}\n"]},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"472eee0c667c53511706b44199a166deba75801a"};var coverage=global[gcv]||(global[gcv]={});if(!coverage[path]||coverage[path].hash!==hash){coverage[path]=coverageData;}var actualCoverage=coverage[path];{// @ts-ignore
|
|
2
|
-
cov_1yiupmxswl=function(){return actualCoverage;};}return actualCoverage;}cov_1yiupmxswl();import{
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
function cov_1yiupmxswl(){var path="/home/runner/work/simpleangularcontrols/simpleangularcontrols/ch.jnetwork.sac-controls/dist/sac-common/esm2022/services/sac-filebrowser.service.mjs";var hash="2bfda21659c6b6098d0980740044ac03ff618ad3";var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"/home/runner/work/simpleangularcontrols/simpleangularcontrols/ch.jnetwork.sac-controls/dist/sac-common/esm2022/services/sac-filebrowser.service.mjs",statementMap:{"0":{start:{line:15,column:38},end:{line:15,column:78}},"1":{start:{line:22,column:13},end:{line:22,column:193}},"2":{start:{line:23,column:13},end:{line:23,column:168}},"3":{start:{line:25,column:0},end:{line:30,column:14}},"4":{start:{line:41,column:8},end:{line:41,column:16}},"5":{start:{line:42,column:8},end:{line:42,column:37}},"6":{start:{line:54,column:20},end:{line:54,column:42}},"7":{start:{line:55,column:8},end:{line:57,column:9}},"8":{start:{line:56,column:12},end:{line:56,column:22}},"9":{start:{line:58,column:24},end:{line:61,column:10}},"10":{start:{line:62,column:8},end:{line:64,column:11}},"11":{start:{line:73,column:20},end:{line:73,column:42}},"12":{start:{line:74,column:8},end:{line:76,column:9}},"13":{start:{line:75,column:12},end:{line:75,column:22}},"14":{start:{line:77,column:24},end:{line:79,column:10}},"15":{start:{line:80,column:8},end:{line:82,column:11}},"16":{start:{line:92,column:20},end:{line:92,column:40}},"17":{start:{line:93,column:8},end:{line:95,column:9}},"18":{start:{line:94,column:12},end:{line:94,column:22}},"19":{start:{line:96,column:24},end:{line:99,column:10}},"20":{start:{line:100,column:8},end:{line:102,column:11}},"21":{start:{line:112,column:20},end:{line:112,column:40}},"22":{start:{line:113,column:8},end:{line:115,column:9}},"23":{start:{line:114,column:12},end:{line:114,column:22}},"24":{start:{line:116,column:24},end:{line:119,column:10}},"25":{start:{line:120,column:8},end:{line:122,column:11}},"26":{start:{line:133,column:20},end:{line:133,column:42}},"27":{start:{line:134,column:8},end:{line:136,column:9}},"28":{start:{line:135,column:12},end:{line:135,column:22}},"29":{start:{line:137,column:24},end:{line:141,column:10}},"30":{start:{line:142,column:8},end:{line:144,column:11}},"31":{start:{line:154,column:20},end:{line:154,column:42}},"32":{start:{line:155,column:8},end:{line:157,column:9}},"33":{start:{line:156,column:12},end:{line:156,column:22}},"34":{start:{line:158,column:24},end:{line:161,column:10}},"35":{start:{line:162,column:8},end:{line:164,column:11}},"36":{start:{line:175,column:20},end:{line:175,column:42}},"37":{start:{line:176,column:8},end:{line:178,column:9}},"38":{start:{line:177,column:12},end:{line:177,column:22}},"39":{start:{line:179,column:24},end:{line:183,column:10}},"40":{start:{line:184,column:8},end:{line:186,column:11}},"41":{start:{line:196,column:20},end:{line:196,column:39}},"42":{start:{line:197,column:8},end:{line:199,column:9}},"43":{start:{line:198,column:12},end:{line:198,column:22}},"44":{start:{line:200,column:24},end:{line:203,column:10}},"45":{start:{line:204,column:8},end:{line:206,column:11}},"46":{start:{line:208,column:13},end:{line:208,column:216}},"47":{start:{line:209,column:13},end:{line:209,column:167}},"48":{start:{line:211,column:0},end:{line:216,column:81}},"49":{start:{line:216,column:42},end:{line:216,column:75}}},fnMap:{"0":{name:"(anonymous_0)",decl:{start:{line:40,column:4},end:{line:40,column:5}},loc:{start:{line:40,column:28},end:{line:43,column:5}},line:40},"1":{name:"(anonymous_1)",decl:{start:{line:53,column:4},end:{line:53,column:5}},loc:{start:{line:53,column:48},end:{line:65,column:5}},line:53},"2":{name:"(anonymous_2)",decl:{start:{line:72,column:4},end:{line:72,column:5}},loc:{start:{line:72,column:29},end:{line:83,column:5}},line:72},"3":{name:"(anonymous_3)",decl:{start:{line:91,column:4},end:{line:91,column:5}},loc:{start:{line:91,column:46},end:{line:103,column:5}},line:91},"4":{name:"(anonymous_4)",decl:{start:{line:111,column:4},end:{line:111,column:5}},loc:{start:{line:111,column:45},end:{line:123,column:5}},line:111},"5":{name:"(anonymous_5)",decl:{start:{line:132,column:4},end:{line:132,column:5}},loc:{start:{line:132,column:61},end:{line:145,column:5}},line:132},"6":{name:"(anonymous_6)",decl:{start:{line:153,column:4},end:{line:153,column:5}},loc:{start:{line:153,column:44},end:{line:165,column:5}},line:153},"7":{name:"(anonymous_7)",decl:{start:{line:174,column:4},end:{line:174,column:5}},loc:{start:{line:174,column:50},end:{line:187,column:5}},line:174},"8":{name:"(anonymous_8)",decl:{start:{line:195,column:4},end:{line:195,column:5}},loc:{start:{line:195,column:42},end:{line:207,column:5}},line:195},"9":{name:"(anonymous_9)",decl:{start:{line:216,column:28},end:{line:216,column:29}},loc:{start:{line:216,column:40},end:{line:216,column:77}},line:216}},branchMap:{"0":{loc:{start:{line:55,column:8},end:{line:57,column:9}},type:"if",locations:[{start:{line:55,column:8},end:{line:57,column:9}},{start:{line:55,column:8},end:{line:57,column:9}}],line:55},"1":{loc:{start:{line:74,column:8},end:{line:76,column:9}},type:"if",locations:[{start:{line:74,column:8},end:{line:76,column:9}},{start:{line:74,column:8},end:{line:76,column:9}}],line:74},"2":{loc:{start:{line:93,column:8},end:{line:95,column:9}},type:"if",locations:[{start:{line:93,column:8},end:{line:95,column:9}},{start:{line:93,column:8},end:{line:95,column:9}}],line:93},"3":{loc:{start:{line:113,column:8},end:{line:115,column:9}},type:"if",locations:[{start:{line:113,column:8},end:{line:115,column:9}},{start:{line:113,column:8},end:{line:115,column:9}}],line:113},"4":{loc:{start:{line:134,column:8},end:{line:136,column:9}},type:"if",locations:[{start:{line:134,column:8},end:{line:136,column:9}},{start:{line:134,column:8},end:{line:136,column:9}}],line:134},"5":{loc:{start:{line:155,column:8},end:{line:157,column:9}},type:"if",locations:[{start:{line:155,column:8},end:{line:157,column:9}},{start:{line:155,column:8},end:{line:157,column:9}}],line:155},"6":{loc:{start:{line:176,column:8},end:{line:178,column:9}},type:"if",locations:[{start:{line:176,column:8},end:{line:178,column:9}},{start:{line:176,column:8},end:{line:178,column:9}}],line:176},"7":{loc:{start:{line:197,column:8},end:{line:199,column:9}},type:"if",locations:[{start:{line:197,column:8},end:{line:199,column:9}},{start:{line:197,column:8},end:{line:199,column:9}}],line:197}},s:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0},f:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0},b:{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0]},inputSourceMap:{version:3,file:"sac-filebrowser.service.js",sourceRoot:"",sources:["../../../../projects/sac-common/src/services/sac-filebrowser.service.ts"],names:[],mappings:"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",sourcesContent:["import { BrowserFileDeleteRequest } from '../components/browser/models/browserfiledeleterequest';\nimport { BrowserFileRenameRequest } from '../components/browser/models/browserfilerenamerequest';\nimport { IBrowserFileResponse } from '../components/browser/models/browserfileresponse';\nimport { BrowserFileSaveRequest } from '../components/browser/models/browserfilesaverequest';\nimport { BrowserNodeDeleteRequest } from '../components/browser/models/browsernodedeleterequest';\nimport { BrowserNodeNewRequest } from '../components/browser/models/browsernodenewrequest';\nimport { BrowserNodeRenameRequest } from '../components/browser/models/browsernoderenamerequest';\nimport { BrowserNodeRequest } from '../components/browser/models/browsernoderequest';\nimport { IBrowserNodeResponse } from '../components/browser/models/browsernoderesponse';\nimport { ISacFileBrowserService } from '../interfaces/ISacFileBrowserService';\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable, InjectionToken } from '@angular/core';\nimport { Observable } from 'rxjs';\n\n// #region Variables\n\n/**\n * Injection Token for Language Service\n */\nexport const SACFILEBROWSER_SERVICE = new InjectionToken<ISacFileBrowserService>('FileBrowserService');\n\n// #endregion Variables\n\n// #region Exported Classes\n\n/**\n * Abstract implementation of the file service for the browser component\n */\n@Injectable({\n providedIn: 'root',\n})\nexport abstract class SacAbstractFileBrowserService implements ISacFileBrowserService {\n // #region Public Methods\n\n /**\n * Deletes a file\n * @param apiurl URL to API Service\n * @param path Path of the file to be deleted\n * @param allowedextensions Allowed extensions for files\n */\n public abstract DeleteFile(\n apiurl: string,\n path: string,\n allowedextensions: string\n ): Observable<IBrowserFileResponse>;\n\n /**\n * Deletes a node\n * @param apiurl URL to API Service\n * @param path Path of the node to be deleted\n */\n public abstract DeleteNode(apiurl: string, path: string): Observable<IBrowserNodeResponse>;\n\n /**\n * Method that reads the files of a node\n * @param apiurl URL to API Service\n * @param path Path of the node from which the files should be read\n * @param allowedextensions Allowed file extensions\n */\n public abstract GetFiles(apiurl: string, path: string, allowedextensions: string): Observable<IBrowserFileResponse>;\n\n /**\n * Returns a node\n * @param apiurl URL to API Service\n * @param path Path of the node being requested\n * @param allowedextensions Allowed extensions that may be displayed\n */\n public abstract GetNode(apiurl: string, path: string, allowedextensions: string): Observable<IBrowserNodeResponse>;\n\n /**\n * Method that renames a file\n * @param apiurl URL to API Service\n * @param path Path to the file to be renamed\n * @param newFilename New filename\n * @param allowedextensions Allowed extension for files\n */\n public abstract RenameFile(\n apiurl: string,\n path: string,\n newFilename: string,\n allowedextensions: string\n ): Observable<IBrowserFileResponse>;\n\n /**\n * Rename a node\n * @param apiurl URL to API Service\n * @param path Path of the node to be renamed\n * @param newFoldername New name of the node\n */\n public abstract RenameNode(apiurl: string, path: string, newFoldername: string): Observable<IBrowserNodeResponse>;\n\n /**\n * Saves an uploaded file in the structure\n * @param apiurl URL to API Service\n * @param path Path where the new file should be saved\n * @param id ID of the upload\n * @param allowedextensions Allowed extensions for the upload\n */\n public abstract SaveFile(\n apiurl: string,\n path: string,\n id: string,\n allowedextensions: string\n ): Observable<IBrowserFileResponse>;\n\n /**\n * Saves a node\n * @param apiurl URL to API Service\n * @param path Path where the node should be saved\n * @param newFoldername Name of the new node\n */\n public abstract SaveNode(apiurl: string, path: string, newFoldername: string): Observable<IBrowserNodeResponse>;\n\n // #endregion Public Methods\n}\n\n/**\n * Standard implementation of the backend service for the file browser component\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SacDefaultFileBrowserService extends SacAbstractFileBrowserService {\n // #region Constructors\n\n /**\n * Constructor\n * @param httpclient HTTP Client Service\n */\n constructor(private httpclient: HttpClient) {\n super();\n }\n\n // #endregion Constructors\n\n // #region Public Methods\n\n /**\n * Deletes a file\n * @param apiurl URL to API Service\n * @param path Path of the file to be deleted\n * @param allowedextensions Allowed extensions for files\n * @returns Observable containing the file response after deletion\n */\n public DeleteFile(apiurl: string, path: string, allowedextensions: string): Observable<IBrowserFileResponse> {\n const url = `${apiurl}/deletefile`;\n\n if (!path) {\n path = '';\n }\n\n const request = new BrowserFileDeleteRequest({\n Path: path,\n AllowedTypes: allowedextensions,\n });\n\n return this.httpclient.post<IBrowserFileResponse>(url, request, {\n withCredentials: true,\n });\n }\n\n /**\n * Deletes a node\n * @param apiurl URL to API Service\n * @param path Path of the node to be deleted\n * @returns Observable containing the node response after deletion\n */\n public DeleteNode(apiurl: string, path: string): Observable<IBrowserNodeResponse> {\n const url = `${apiurl}/deletenode`;\n\n if (!path) {\n path = '';\n }\n\n const request = new BrowserNodeDeleteRequest({\n Path: path,\n });\n\n return this.httpclient.post<IBrowserNodeResponse>(url, request, {\n withCredentials: true,\n });\n }\n\n /**\n * Method that reads the files of a node\n * @param apiurl URL to API Service\n * @param path Path of the node from which the files should be read\n * @param allowedextensions Allowed file extensions\n * @returns Observable containing the file response\n */\n public GetFiles(apiurl: string, path: string, allowedextensions: string): Observable<IBrowserFileResponse> {\n const url = `${apiurl}/getfiles`;\n\n if (!path) {\n path = '';\n }\n\n const request = new BrowserNodeRequest({\n Path: path,\n AllowedTypes: allowedextensions,\n });\n\n return this.httpclient.post<IBrowserFileResponse>(url, request, {\n withCredentials: true,\n });\n }\n\n /**\n * Returns a node\n * @param apiurl URL to API Service\n * @param path Path of the node being requested\n * @param allowedextensions Allowed extensions that may be displayed\n * @returns Observable containing the node response\n */\n public GetNode(apiurl: string, path: string, allowedextensions: string): Observable<IBrowserNodeResponse> {\n const url = `${apiurl}/getnodes`;\n\n if (!path) {\n path = '';\n }\n\n const request = new BrowserNodeRequest({\n Path: path,\n AllowedTypes: allowedextensions,\n });\n\n return this.httpclient.post<IBrowserNodeResponse>(url, request, {\n withCredentials: true,\n });\n }\n\n /**\n * Method that renames a file\n * @param apiurl URL to API Service\n * @param path Path to the file to be renamed\n * @param newFilename New filename\n * @param allowedextensions Allowed extension for files\n * @returns Observable containing the file response after rename\n */\n public RenameFile(\n apiurl: string,\n path: string,\n newFilename: string,\n allowedextensions: string\n ): Observable<IBrowserFileResponse> {\n const url = `${apiurl}/renamefile`;\n\n if (!path) {\n path = '';\n }\n\n const request = new BrowserFileRenameRequest({\n Path: path,\n NewFilename: newFilename,\n AllowedTypes: allowedextensions,\n });\n\n return this.httpclient.put<IBrowserFileResponse>(url, request, {\n withCredentials: true,\n });\n }\n\n /**\n * Rename a node\n * @param apiurl URL to API Service\n * @param path Path of the node to be renamed\n * @param newFoldername New name of the node\n * @returns Observable containing the node response after rename\n */\n public RenameNode(apiurl: string, path: string, newFoldername: string): Observable<IBrowserNodeResponse> {\n const url = `${apiurl}/renamenode`;\n\n if (!path) {\n path = '';\n }\n\n const request = new BrowserNodeRenameRequest({\n Path: path,\n NewFoldername: newFoldername,\n });\n\n return this.httpclient.put<IBrowserNodeResponse>(url, request, {\n withCredentials: true,\n });\n }\n\n /**\n * Saves an uploaded file in the structure\n * @param apiurl URL to API Service\n * @param path Path where the new file should be saved\n * @param id ID of the upload\n * @param allowedextensions Allowed extensions for the upload\n * @returns Observable containing the file response after save\n */\n public SaveFile(\n apiurl: string,\n path: string,\n id: string,\n allowedextensions: string\n ): Observable<IBrowserFileResponse> {\n const url = `${apiurl}/uploadfile`;\n\n if (!path) {\n path = '';\n }\n\n const request = new BrowserFileSaveRequest({\n Path: path,\n UploadId: id,\n AllowedTypes: allowedextensions,\n });\n\n return this.httpclient.post<IBrowserFileResponse>(url, request, {\n withCredentials: true,\n });\n }\n\n /**\n * Saves a node\n * @param apiurl URL to API Service\n * @param path Path where the node should be saved\n * @param newFoldername Name of the new node\n * @returns Observable containing the node response after save\n */\n public SaveNode(apiurl: string, path: string, newFoldername: string): Observable<IBrowserNodeResponse> {\n const url = `${apiurl}/newnode`;\n\n if (!path) {\n path = '';\n }\n\n const request = new BrowserNodeNewRequest({\n Path: path,\n NewFoldername: newFoldername,\n });\n\n return this.httpclient.post<IBrowserNodeResponse>(url, request, {\n withCredentials: true,\n });\n }\n\n // #endregion Public Methods\n}\n\n// #endregion Exported Classes\n"]},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"2bfda21659c6b6098d0980740044ac03ff618ad3"};var coverage=global[gcv]||(global[gcv]={});if(!coverage[path]||coverage[path].hash!==hash){coverage[path]=coverageData;}var actualCoverage=coverage[path];{// @ts-ignore
|
|
2
|
+
cov_1yiupmxswl=function(){return actualCoverage;};}return actualCoverage;}cov_1yiupmxswl();import{BrowserFileDeleteRequest}from'../components/browser/models/browserfiledeleterequest';import{BrowserFileRenameRequest}from'../components/browser/models/browserfilerenamerequest';import{BrowserFileSaveRequest}from'../components/browser/models/browserfilesaverequest';import{BrowserNodeDeleteRequest}from'../components/browser/models/browsernodedeleterequest';import{BrowserNodeNewRequest}from'../components/browser/models/browsernodenewrequest';import{BrowserNodeRenameRequest}from'../components/browser/models/browsernoderenamerequest';import{BrowserNodeRequest}from'../components/browser/models/browsernoderequest';import{Injectable,InjectionToken}from'@angular/core';import*as i0 from"@angular/core";import*as i1 from"@angular/common/http";// #region Variables
|
|
3
|
+
/**
|
|
4
|
+
* Injection Token for Language Service
|
|
5
|
+
*/export const SACFILEBROWSER_SERVICE=(cov_1yiupmxswl().s[0]++,new InjectionToken('FileBrowserService'));// #endregion Variables
|
|
6
|
+
// #region Exported Classes
|
|
7
|
+
/**
|
|
8
|
+
* Abstract implementation of the file service for the browser component
|
|
9
|
+
*/export class SacAbstractFileBrowserService{static{cov_1yiupmxswl().s[1]++;this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"16.2.12",ngImport:i0,type:SacAbstractFileBrowserService,deps:[],target:i0.ɵɵFactoryTarget.Injectable});}static{cov_1yiupmxswl().s[2]++;this.ɵprov=i0.ɵɵngDeclareInjectable({minVersion:"12.0.0",version:"16.2.12",ngImport:i0,type:SacAbstractFileBrowserService,providedIn:'root'});}}cov_1yiupmxswl().s[3]++;i0.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"16.2.12",ngImport:i0,type:SacAbstractFileBrowserService,decorators:[{type:Injectable,args:[{providedIn:'root'}]}]});/**
|
|
10
|
+
* Standard implementation of the backend service for the file browser component
|
|
11
|
+
*/export class SacDefaultFileBrowserService extends SacAbstractFileBrowserService{// #region Constructors
|
|
12
|
+
/**
|
|
13
|
+
* Constructor
|
|
10
14
|
* @param httpclient HTTP Client Service
|
|
11
|
-
*/constructor(httpclient){cov_1yiupmxswl().f[0]++;cov_1yiupmxswl().s[4]++;super();cov_1yiupmxswl().s[5]++;this.httpclient=httpclient;}
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
*
|
|
15
|
-
* @param
|
|
16
|
-
|
|
17
|
-
*
|
|
18
|
-
* @
|
|
19
|
-
|
|
20
|
-
*
|
|
21
|
-
|
|
22
|
-
*
|
|
23
|
-
* @
|
|
24
|
-
|
|
25
|
-
*
|
|
26
|
-
|
|
27
|
-
*
|
|
28
|
-
* @param
|
|
29
|
-
* @
|
|
30
|
-
*/
|
|
31
|
-
*
|
|
32
|
-
* @param apiurl URL
|
|
33
|
-
* @param path
|
|
34
|
-
* @param allowedextensions
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
*
|
|
38
|
-
* @param
|
|
39
|
-
* @param
|
|
40
|
-
* @param
|
|
41
|
-
|
|
42
|
-
*
|
|
43
|
-
|
|
44
|
-
*
|
|
45
|
-
* @param
|
|
46
|
-
|
|
47
|
-
*
|
|
48
|
-
* @
|
|
49
|
-
|
|
50
|
-
*
|
|
51
|
-
* @param
|
|
52
|
-
*/RenameFile(apiurl,path,newFilename,allowedextensions){cov_1yiupmxswl().f[8]++;const url=(cov_1yiupmxswl().s[41]++,`${apiurl}/renamefile`);cov_1yiupmxswl().s[42]++;if(!path){cov_1yiupmxswl().b[7][0]++;cov_1yiupmxswl().s[43]++;path='';}else{cov_1yiupmxswl().b[7][1]++;}const request=(cov_1yiupmxswl().s[44]++,new BrowserFileRenameRequest({Path:path,NewFilename:newFilename,AllowedTypes:allowedextensions}));cov_1yiupmxswl().s[45]++;return this.httpclient.put(url,request,{withCredentials:true});}static{cov_1yiupmxswl().s[46]++;this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"16.2.12",ngImport:i0,type:SacDefaultFileBrowserService,deps:[{token:i1.HttpClient}],target:i0.ɵɵFactoryTarget.Injectable});}static{cov_1yiupmxswl().s[47]++;this.ɵprov=i0.ɵɵngDeclareInjectable({minVersion:"12.0.0",version:"16.2.12",ngImport:i0,type:SacDefaultFileBrowserService,providedIn:'root'});}}export{SacDefaultFileBrowserService};cov_1yiupmxswl().s[48]++;i0.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"16.2.12",ngImport:i0,type:SacDefaultFileBrowserService,decorators:[{type:Injectable,args:[{providedIn:'root'}]}],ctorParameters:function(){cov_1yiupmxswl().f[9]++;cov_1yiupmxswl().s[49]++;return[{type:i1.HttpClient}];}});//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FjLWZpbGVicm93c2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy9zZXJ2aWNlcy9zYWMtZmlsZWJyb3dzZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUVqRyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUM3RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUMzRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQzs7O0FBSXJGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQ2pDLElBQUksY0FBYyxDQUF5QixvQkFBb0IsQ0FBQyxDQUFDO0FBRW5FOztHQUVHO0FBQ0gsTUFHc0IsNkJBQTZCOytHQUE3Qiw2QkFBNkI7bUhBQTdCLDZCQUE2QixjQUZyQyxNQUFNOztTQUVFLDZCQUE2Qjs0RkFBN0IsNkJBQTZCO2tCQUhsRCxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7QUF1R0Q7O0dBRUc7QUFDSCxNQUdhLDRCQUE2QixTQUFRLDZCQUE2QjtJQUM3RTs7O09BR0c7SUFDSCxZQUFvQixVQUFzQjtRQUN4QyxLQUFLLEVBQUUsQ0FBQztRQURVLGVBQVUsR0FBVixVQUFVLENBQVk7SUFFMUMsQ0FBQztJQUVEOzs7OztP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O1lBQ1YsV0FBVyxFQUFFLFdBQVc7WUFDeEIsWUFBWSxFQUFFLGlCQUFpQjtTQUNoQyxDQUFDLENBQUM7UUFFSCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUF1QixHQUFHLEVBQUUsT0FBTyxFQUFFO1lBQzdELGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBbE9VLDRCQUE0QjttSEFBNUIsNEJBQTRCLGNBRjNCLE1BQU07O1NBRVAsNEJBQTRCOzRGQUE1Qiw0QkFBNEI7a0JBSHhDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBCcm93c2VyRmlsZURlbGV0ZVJlcXVlc3QgfSBmcm9tICcuLi9jb21wb25lbnRzL2Jyb3dzZXIvbW9kZWxzL2Jyb3dzZXJmaWxlZGVsZXRlcmVxdWVzdCc7XG5pbXBvcnQgeyBCcm93c2VyRmlsZVJlbmFtZVJlcXVlc3QgfSBmcm9tICcuLi9jb21wb25lbnRzL2Jyb3dzZXIvbW9kZWxzL2Jyb3dzZXJmaWxlcmVuYW1lcmVxdWVzdCc7XG5pbXBvcnQgeyBJQnJvd3NlckZpbGVSZXNwb25zZSB9IGZyb20gJy4uL2NvbXBvbmVudHMvYnJvd3Nlci9tb2RlbHMvYnJvd3NlcmZpbGVyZXNwb25zZSc7XG5pbXBvcnQgeyBCcm93c2VyRmlsZVNhdmVSZXF1ZXN0IH0gZnJvbSAnLi4vY29tcG9uZW50cy9icm93c2VyL21vZGVscy9icm93c2VyZmlsZXNhdmVyZXF1ZXN0JztcbmltcG9ydCB7IEJyb3dzZXJOb2RlRGVsZXRlUmVxdWVzdCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYnJvd3Nlci9tb2RlbHMvYnJvd3Nlcm5vZGVkZWxldGVyZXF1ZXN0JztcbmltcG9ydCB7IEJyb3dzZXJOb2RlTmV3UmVxdWVzdCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYnJvd3Nlci9tb2RlbHMvYnJvd3Nlcm5vZGVuZXdyZXF1ZXN0JztcbmltcG9ydCB7IEJyb3dzZXJOb2RlUmVuYW1lUmVxdWVzdCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYnJvd3Nlci9tb2RlbHMvYnJvd3Nlcm5vZGVyZW5hbWVyZXF1ZXN0JztcbmltcG9ydCB7IEJyb3dzZXJOb2RlUmVxdWVzdCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYnJvd3Nlci9tb2RlbHMvYnJvd3Nlcm5vZGVyZXF1ZXN0JztcbmltcG9ydCB7IElCcm93c2VyTm9kZVJlc3BvbnNlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9icm93c2VyL21vZGVscy9icm93c2Vybm9kZXJlc3BvbnNlJztcbmltcG9ydCB7IElTYWNGaWxlQnJvd3NlclNlcnZpY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL0lTYWNGaWxlQnJvd3NlclNlcnZpY2UnO1xuXG4vKipcbiAqIEluamVjdGlvbiBUb2tlbiBmw7xyIExhbmd1YWdlIFNlcnZpY2VcbiAqL1xuZXhwb3J0IGNvbnN0IFNBQ0ZJTEVCUk9XU0VSX1NFUlZJQ0UgPVxuICBuZXcgSW5qZWN0aW9uVG9rZW48SVNhY0ZpbGVCcm93c2VyU2VydmljZT4oJ0ZpbGVCcm93c2VyU2VydmljZScpO1xuXG4vKipcbiAqIEFic3RyYWt0ZSBJbXBsZW1lbnRpZXJ1bmcgZGVzIEZpbGUgU2VydmljZSBmw7xyIGRpZSBCcm93c2VyIENvbXBvbmVudFxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2FjQWJzdHJhY3RGaWxlQnJvd3NlclNlcnZpY2VcbiAgaW1wbGVtZW50cyBJU2FjRmlsZUJyb3dzZXJTZXJ2aWNlXG57XG4gIC8qKlxuICAgKiBHaWJ0IGVpbmVuIE5vZGUgenVyw7xja1xuICAgKiBAcGFyYW0gYXBpdXJsIFVSTCB6dSBBUEkgU2VydmljZVxuICAgKiBAcGFyYW0gcGF0aCBQZmFkIGRlcyBOb2RlIHdlbGNoZXIgYW5nZWZvcmRlcnQgd2lyZFxuICAgKiBAcGFyYW0gYWxsb3dlZGV4dGVuc2lvbnMgRXJsYXVidGUgRXh0ZW5zaW9ucyBkaWUgYW5nZXplaWd0IHdlcmRlbiBkw7xyZmVuXG4gICAqL1xuICBhYnN0cmFjdCBHZXROb2RlKFxuICAgIGFwaXVybDogc3RyaW5nLFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBhbGxvd2VkZXh0ZW5zaW9uczogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8SUJyb3dzZXJOb2RlUmVzcG9uc2U+O1xuXG4gIC8qKlxuICAgKiBTcGVpY2hlcnQgZWluZW4gTm9kZVxuICAgKiBAcGFyYW0gYXBpdXJsIFVSTCB6dSBBUEkgU2VydmljZVxuICAgKiBAcGFyYW0gcGF0aCBQZmFkIGluIHdlbGNoZW0gZGVyIE5vZGUgZ2VzcGVpY2hlcnQgd2VyZGVuIHNvbGxcbiAgICogQHBhcmFtIG5ld0ZvbGRlcm5hbWUgTmFtZSBkZXMgbmV1ZW4gTm9kZXNcbiAgICovXG4gIGFic3RyYWN0IFNhdmVOb2RlKFxuICAgIGFwaXVybDogc3RyaW5nLFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBuZXdGb2xkZXJuYW1lOiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxJQnJvd3Nlck5vZGVSZXNwb25zZT47XG5cbiAgLyoqXG4gICAqIFJlbmFtZSBlaW5lcyBOb2Rlc1xuICAgKiBAcGFyYW0gYXBpdXJsIFVSTCB6dSBBUEkgU2VydmljZVxuICAgKiBAcGFyYW0gcGF0aCBQZmFkIGRlcyBOb2RlcyB3ZWxjaGVyIHVtYmVuYW5udCB3ZXJkZW4gc29sbFxuICAgKiBAcGFyYW0gbmV3Rm9sZGVybmFtZSBOZXVlciBOYW1lIGRlcyBOb2Rlc1xuICAgKi9cbiAgYWJzdHJhY3QgUmVuYW1lTm9kZShcbiAgICBhcGl1cmw6IHN0cmluZyxcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgbmV3Rm9sZGVybmFtZTogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8SUJyb3dzZXJOb2RlUmVzcG9uc2U+O1xuXG4gIC8qKlxuICAgKiBMw7ZzY2h0IGVpbmVuIE5vZGVcbiAgICogQHBhcmFtIGFwaXVybCBVUkwgenUgQVBJIFNlcnZpY2VcbiAgICogQHBhcmFtIHBhdGggUGZhZCBkZXMgTm9kZXMgd2VsY2hlciBnZWzDtnNjaHQgd2VyZGVuIHNvbGxcbiAgICovXG4gIGFic3RyYWN0IERlbGV0ZU5vZGUoXG4gICAgYXBpdXJsOiBzdHJpbmcsXG4gICAgcGF0aDogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8SUJyb3dzZXJOb2RlUmVzcG9uc2U+O1xuXG4gIC8qKlxuICAgKiBNZXRob2RlIHdlbGNoZSBkaWUgRGF0ZWllbiBlaW5lcyBOb2RlcyBhdXNsaWVzdFxuICAgKiBAcGFyYW0gYXBpdXJsIFVSTCB6dSBBUEkgU2VydmljZVxuICAgKiBAcGFyYW0gcGF0aCBQZmFkIGRlcyBOb2RlcyBpbiB3ZWxjaGVtIGRpZSBGaWxlcyBnZWxlc2VuIHdlcmRlbiBzb2xsZW5cbiAgICogQHBhcmFtIGFsbG93ZWRleHRlbnNpb25zIEVybGF1YnRlIEZpbGUgRXh0ZW5zaW9uc1xuICAgKi9cbiAgYWJzdHJhY3QgR2V0RmlsZXMoXG4gICAgYXBpdXJsOiBzdHJpbmcsXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIGFsbG93ZWRleHRlbnNpb25zOiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxJQnJvd3NlckZpbGVSZXNwb25zZT47XG5cbiAgLyoqXG4gICAqIFNwZWljaGVydCBlaW5lIEhvY2hnZWxhZGVuZSBEYXRlaSBpbiBkZXIgU3RydWt0dXJcbiAgICogQHBhcmFtIGFwaXVybCBVUkwgenUgQVBJIFNlcnZpY2VcbiAgICogQHBhcmFtIHBhdGggUGZhZCBpbiB3ZWxjaGVtIGRhcyBuZXVlIEZpbGUgZ2VzcGVpY2hlcnQgd2VyZGVuIHNvbGxcbiAgICogQHBhcmFtIGlkIElEIGRlcyBVcGxvYWRzXG4gICAqIEBwYXJhbSBhbGxvd2VkZXh0ZW5zaW9ucyBFcmxhdWJ0ZSBFeHRlbnNpb25zIGbDvHIgZGVuIFVwbG9hZFxuICAgKi9cbiAgYWJzdHJhY3QgU2F2ZUZpbGUoXG4gICAgYXBpdXJsOiBzdHJpbmcsXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIGlkOiBzdHJpbmcsXG4gICAgYWxsb3dlZGV4dGVuc2lvbnM6IHN0cmluZ1xuICApOiBPYnNlcnZhYmxlPElCcm93c2VyRmlsZVJlc3BvbnNlPjtcblxuICAvKipcbiAgICogTWV0aG9kZSB3ZWxjaGUgZWluZSBEYXRlaSB1bWJlbmFubnRcbiAgICogQHBhcmFtIGFwaXVybCBVUkwgenUgQVBJIFNlcnZpY2VcbiAgICogQHBhcmFtIHBhdGggUGZhZCB6dW0gRmlsZSB3ZWxjaGVzIHVtYmVuYW5udCB3ZXJkZW4gc29sbFxuICAgKiBAcGFyYW0gbmV3RmlsZW5hbWUgTmV1ZXIgRGF0ZWluYW1lXG4gICAqIEBwYXJhbSBhbGxvd2VkZXh0ZW5zaW9ucyBFcmxhdWJ0ZSBFeHRlbnNpb24gZsO8ciBGaWxlc1xuICAgKi9cbiAgYWJzdHJhY3QgUmVuYW1lRmlsZShcbiAgICBhcGl1cmw6IHN0cmluZyxcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgbmV3RmlsZW5hbWU6IHN0cmluZyxcbiAgICBhbGxvd2VkZXh0ZW5zaW9uczogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8SUJyb3dzZXJGaWxlUmVzcG9uc2U+O1xuXG4gIC8qKlxuICAgKiBMw7ZzY2h0IGVpbmUgRGF0ZWlcbiAgICogQHBhcmFtIGFwaXVybCBVUkwgenUgQVBJIFNlcnZpY2VcbiAgICogQHBhcmFtIHBhdGggUGZhZCBkZXMgRmlsZXMgd2VsY2hlcyBnZWzDtnNjaHQgd2VyZGVuIHNvbGxcbiAgICogQHBhcmFtIGFsbG93ZWRleHRlbnNpb25zIEVybGF1YnRlIEV4dGVuc2lvbnMgZsO8ciBGaWxlc1xuICAgKi9cbiAgYWJzdHJhY3QgRGVsZXRlRmlsZShcbiAgICBhcGl1cmw6IHN0cmluZyxcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgYWxsb3dlZGV4dGVuc2lvbnM6IHN0cmluZ1xuICApOiBPYnNlcnZhYmxlPElCcm93c2VyRmlsZVJlc3BvbnNlPjtcbn1cblxuLyoqXG4gKiBTdGFuZGFyZGltcGxlbWVudGllcnVuZyBkZXMgQmFja2VuZCBTZXJ2aWNlIGbDvHIgZGllIEZpbGUgQnJvd3NlciBDb21wb25lbnRcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFNhY0RlZmF1bHRGaWxlQnJvd3NlclNlcnZpY2UgZXh0ZW5kcyBTYWNBYnN0cmFjdEZpbGVCcm93c2VyU2VydmljZSB7XG4gIC8qKlxuICAgKiBLb25zdHJ1a3RvclxuICAgKiBAcGFyYW0gaHR0cGNsaWVudCBIVFRQIENsaWVudCBTZXJ2aWNlXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHBjbGllbnQ6IEh0dHBDbGllbnQpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdpYnQgZWluZW4gTm9kZSB6dXLDvGNrXG4gICAqIEBwYXJhbSBhcGl1cmwgVVJMIHp1IEFQSSBTZXJ2aWNlXG4gICAqIEBwYXJhbSBwYXRoIFBmYWQgZGVzIE5vZGUgd2VsY2hlciBhbmdlZm9yZGVydCB3aXJkXG4gICAqIEBwYXJhbSBhbGxvd2VkZXh0ZW5zaW9ucyBFcmxhdWJ0ZSBFeHRlbnNpb25zIGRpZSBhbmdlemVpZ3Qgd2VyZGVuIGTDvHJmZW5cbiAgICovXG4gIHB1YmxpYyBHZXROb2RlKFxuICAgIGFwaXVybDogc3RyaW5nLFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBhbGxvd2VkZXh0ZW5zaW9uczogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8SUJyb3dzZXJOb2RlUmVzcG9uc2U+IHtcbiAgICBjb25zdCB1cmwgPSBgJHthcGl1cmx9L2dldG5vZGVzYDtcblxuICAgIGlmICghcGF0aCkge1xuICAgICAgcGF0aCA9ICcnO1xuICAgIH1cblxuICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgQnJvd3Nlck5vZGVSZXF1ZXN0KHtcbiAgICAgIFBhdGg6IHBhdGgsXG4gICAgICBBbGxvd2VkVHlwZXM6IGFsbG93ZWRleHRlbnNpb25zLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cGNsaWVudC5wb3N0PElCcm93c2VyTm9kZVJlc3BvbnNlPih1cmwsIHJlcXVlc3QsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTcGVpY2hlcnQgZWluZW4gTm9kZVxuICAgKiBAcGFyYW0gYXBpdXJsIFVSTCB6dSBBUEkgU2VydmljZVxuICAgKiBAcGFyYW0gcGF0aCBQZmFkIGluIHdlbGNoZW0gZGVyIE5vZGUgZ2VzcGVpY2hlcnQgd2VyZGVuIHNvbGxcbiAgICogQHBhcmFtIG5ld0ZvbGRlcm5hbWUgTmFtZSBkZXMgbmV1ZW4gTm9kZXNcbiAgICovXG4gIHB1YmxpYyBTYXZlTm9kZShcbiAgICBhcGl1cmw6IHN0cmluZyxcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgbmV3Rm9sZGVybmFtZTogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8SUJyb3dzZXJOb2RlUmVzcG9uc2U+IHtcbiAgICBjb25zdCB1cmwgPSBgJHthcGl1cmx9L25ld25vZGVgO1xuXG4gICAgaWYgKCFwYXRoKSB7XG4gICAgICBwYXRoID0gJyc7XG4gICAgfVxuXG4gICAgY29uc3QgcmVxdWVzdCA9IG5ldyBCcm93c2VyTm9kZU5ld1JlcXVlc3Qoe1xuICAgICAgUGF0aDogcGF0aCxcbiAgICAgIE5ld0ZvbGRlcm5hbWU6IG5ld0ZvbGRlcm5hbWUsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwY2xpZW50LnBvc3Q8SUJyb3dzZXJOb2RlUmVzcG9uc2U+KHVybCwgcmVxdWVzdCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbmFtZSBlaW5lcyBOb2Rlc1xuICAgKiBAcGFyYW0gYXBpdXJsIFVSTCB6dSBBUEkgU2VydmljZVxuICAgKiBAcGFyYW0gcGF0aCBQZmFkIGRlcyBOb2RlcyB3ZWxjaGVyIHVtYmVuYW5udCB3ZXJkZW4gc29sbFxuICAgKiBAcGFyYW0gbmV3Rm9sZGVybmFtZSBOZXVlciBOYW1lIGRlcyBOb2Rlc1xuICAgKi9cbiAgcHVibGljIFJlbmFtZU5vZGUoXG4gICAgYXBpdXJsOiBzdHJpbmcsXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIG5ld0ZvbGRlcm5hbWU6IHN0cmluZ1xuICApOiBPYnNlcnZhYmxlPElCcm93c2VyTm9kZVJlc3BvbnNlPiB7XG4gICAgY29uc3QgdXJsID0gYCR7YXBpdXJsfS9yZW5hbWVub2RlYDtcblxuICAgIGlmICghcGF0aCkge1xuICAgICAgcGF0aCA9ICcnO1xuICAgIH1cblxuICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgQnJvd3Nlck5vZGVSZW5hbWVSZXF1ZXN0KHtcbiAgICAgIFBhdGg6IHBhdGgsXG4gICAgICBOZXdGb2xkZXJuYW1lOiBuZXdGb2xkZXJuYW1lLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cGNsaWVudC5wdXQ8SUJyb3dzZXJOb2RlUmVzcG9uc2U+KHVybCwgcmVxdWVzdCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEzDtnNjaHQgZWluZW4gTm9kZVxuICAgKiBAcGFyYW0gYXBpdXJsIFVSTCB6dSBBUEkgU2VydmljZVxuICAgKiBAcGFyYW0gcGF0aCBQZmFkIGRlcyBOb2RlcyB3ZWxjaGVyIGdlbMO2c2NodCB3ZXJkZW4gc29sbFxuICAgKi9cbiAgcHVibGljIERlbGV0ZU5vZGUoXG4gICAgYXBpdXJsOiBzdHJpbmcsXG4gICAgcGF0aDogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8SUJyb3dzZXJOb2RlUmVzcG9uc2U+IHtcbiAgICBjb25zdCB1cmwgPSBgJHthcGl1cmx9L2RlbGV0ZW5vZGVgO1xuXG4gICAgaWYgKCFwYXRoKSB7XG4gICAgICBwYXRoID0gJyc7XG4gICAgfVxuXG4gICAgY29uc3QgcmVxdWVzdCA9IG5ldyBCcm93c2VyTm9kZURlbGV0ZVJlcXVlc3Qoe1xuICAgICAgUGF0aDogcGF0aCxcbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzLmh0dHBjbGllbnQucG9zdDxJQnJvd3Nlck5vZGVSZXNwb25zZT4odXJsLCByZXF1ZXN0LCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kZSB3ZWxjaGUgZGllIERhdGVpZW4gZWluZXMgTm9kZXMgYXVzbGllc3RcbiAgICogQHBhcmFtIGFwaXVybCBVUkwgenUgQVBJIFNlcnZpY2VcbiAgICogQHBhcmFtIHBhdGggUGZhZCBkZXMgTm9kZXMgaW4gd2VsY2hlbSBkaWUgRmlsZXMgZ2VsZXNlbiB3ZXJkZW4gc29sbGVuXG4gICAqIEBwYXJhbSBhbGxvd2VkZXh0ZW5zaW9ucyBFcmxhdWJ0ZSBGaWxlIEV4dGVuc2lvbnNcbiAgICovXG4gIHB1YmxpYyBHZXRGaWxlcyhcbiAgICBhcGl1cmw6IHN0cmluZyxcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgYWxsb3dlZGV4dGVuc2lvbnM6IHN0cmluZ1xuICApOiBPYnNlcnZhYmxlPElCcm93c2VyRmlsZVJlc3BvbnNlPiB7XG4gICAgY29uc3QgdXJsID0gYCR7YXBpdXJsfS9nZXRmaWxlc2A7XG5cbiAgICBpZiAoIXBhdGgpIHtcbiAgICAgIHBhdGggPSAnJztcbiAgICB9XG5cbiAgICBjb25zdCByZXF1ZXN0ID0gbmV3IEJyb3dzZXJOb2RlUmVxdWVzdCh7XG4gICAgICBQYXRoOiBwYXRoLFxuICAgICAgQWxsb3dlZFR5cGVzOiBhbGxvd2VkZXh0ZW5zaW9ucyxcbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzLmh0dHBjbGllbnQucG9zdDxJQnJvd3NlckZpbGVSZXNwb25zZT4odXJsLCByZXF1ZXN0LCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogU3BlaWNoZXJ0IGVpbmUgSG9jaGdlbGFkZW5lIERhdGVpIGluIGRlciBTdHJ1a3R1clxuICAgKiBAcGFyYW0gYXBpdXJsIFVSTCB6dSBBUEkgU2VydmljZVxuICAgKiBAcGFyYW0gcGF0aCBQZmFkIGluIHdlbGNoZW0gZGFzIG5ldWUgRmlsZSBnZXNwZWljaGVydCB3ZXJkZW4gc29sbFxuICAgKiBAcGFyYW0gaWQgSUQgZGVzIFVwbG9hZHNcbiAgICogQHBhcmFtIGFsbG93ZWRleHRlbnNpb25zIEVybGF1YnRlIEV4dGVuc2lvbnMgZsO8ciBkZW4gVXBsb2FkXG4gICAqL1xuICBwdWJsaWMgU2F2ZUZpbGUoXG4gICAgYXBpdXJsOiBzdHJpbmcsXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIGlkOiBzdHJpbmcsXG4gICAgYWxsb3dlZGV4dGVuc2lvbnM6IHN0cmluZ1xuICApOiBPYnNlcnZhYmxlPElCcm93c2VyRmlsZVJlc3BvbnNlPiB7XG4gICAgY29uc3QgdXJsID0gYCR7YXBpdXJsfS91cGxvYWRmaWxlYDtcblxuICAgIGlmICghcGF0aCkge1xuICAgICAgcGF0aCA9ICcnO1xuICAgIH1cblxuICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgQnJvd3NlckZpbGVTYXZlUmVxdWVzdCh7XG4gICAgICBQYXRoOiBwYXRoLFxuICAgICAgVXBsb2FkSWQ6IGlkLFxuICAgICAgQWxsb3dlZFR5cGVzOiBhbGxvd2VkZXh0ZW5zaW9ucyxcbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzLmh0dHBjbGllbnQucG9zdDxJQnJvd3NlckZpbGVSZXNwb25zZT4odXJsLCByZXF1ZXN0LCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogTMO2c2NodCBlaW5lIERhdGVpXG4gICAqIEBwYXJhbSBhcGl1cmwgVVJMIHp1IEFQSSBTZXJ2aWNlXG4gICAqIEBwYXJhbSBwYXRoIFBmYWQgZGVzIEZpbGVzIHdlbGNoZXMgZ2Vsw7ZzY2h0IHdlcmRlbiBzb2xsXG4gICAqIEBwYXJhbSBhbGxvd2VkZXh0ZW5zaW9ucyBFcmxhdWJ0ZSBFeHRlbnNpb25zIGbDvHIgRmlsZXNcbiAgICovXG4gIHB1YmxpYyBEZWxldGVGaWxlKFxuICAgIGFwaXVybDogc3RyaW5nLFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBhbGxvd2VkZXh0ZW5zaW9uczogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8SUJyb3dzZXJGaWxlUmVzcG9uc2U+IHtcbiAgICBjb25zdCB1cmwgPSBgJHthcGl1cmx9L2RlbGV0ZWZpbGVgO1xuXG4gICAgaWYgKCFwYXRoKSB7XG4gICAgICBwYXRoID0gJyc7XG4gICAgfVxuXG4gICAgY29uc3QgcmVxdWVzdCA9IG5ldyBCcm93c2VyRmlsZURlbGV0ZVJlcXVlc3Qoe1xuICAgICAgUGF0aDogcGF0aCxcbiAgICAgIEFsbG93ZWRUeXBlczogYWxsb3dlZGV4dGVuc2lvbnMsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwY2xpZW50LnBvc3Q8SUJyb3dzZXJGaWxlUmVzcG9uc2U+KHVybCwgcmVxdWVzdCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZGUgd2VsY2hlIGVpbmUgRGF0ZWkgdW1iZW5hbm50XG4gICAqIEBwYXJhbSBhcGl1cmwgVVJMIHp1IEFQSSBTZXJ2aWNlXG4gICAqIEBwYXJhbSBwYXRoIFBmYWQgenVtIEZpbGUgd2VsY2hlcyB1bWJlbmFubnQgd2VyZGVuIHNvbGxcbiAgICogQHBhcmFtIG5ld0ZpbGVuYW1lIE5ldWVyIERhdGVpbmFtZVxuICAgKiBAcGFyYW0gYWxsb3dlZGV4dGVuc2lvbnMgRXJsYXVidGUgRXh0ZW5zaW9uIGbDvHIgRmlsZXNcbiAgICovXG4gIHB1YmxpYyBSZW5hbWVGaWxlKFxuICAgIGFwaXVybDogc3RyaW5nLFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBuZXdGaWxlbmFtZTogc3RyaW5nLFxuICAgIGFsbG93ZWRleHRlbnNpb25zOiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxJQnJvd3NlckZpbGVSZXNwb25zZT4ge1xuICAgIGNvbnN0IHVybCA9IGAke2FwaXVybH0vcmVuYW1lZmlsZWA7XG5cbiAgICBpZiAoIXBhdGgpIHtcbiAgICAgIHBhdGggPSAnJztcbiAgICB9XG5cbiAgICBjb25zdCByZXF1ZXN0ID0gbmV3IEJyb3dzZXJGaWxlUmVuYW1lUmVxdWVzdCh7XG4gICAgICBQYXRoOiBwYXRoLFxuICAgICAgTmV3RmlsZW5hbWU6IG5ld0ZpbGVuYW1lLFxuICAgICAgQWxsb3dlZFR5cGVzOiBhbGxvd2VkZXh0ZW5zaW9ucyxcbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzLmh0dHBjbGllbnQucHV0PElCcm93c2VyRmlsZVJlc3BvbnNlPih1cmwsIHJlcXVlc3QsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
53
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJJbmplY3RhYmxlIiwiSW5qZWN0aW9uVG9rZW4iLCJCcm93c2VyRmlsZURlbGV0ZVJlcXVlc3QiLCJCcm93c2VyRmlsZVJlbmFtZVJlcXVlc3QiLCJCcm93c2VyRmlsZVNhdmVSZXF1ZXN0IiwiQnJvd3Nlck5vZGVEZWxldGVSZXF1ZXN0IiwiQnJvd3Nlck5vZGVOZXdSZXF1ZXN0IiwiQnJvd3Nlck5vZGVSZW5hbWVSZXF1ZXN0IiwiQnJvd3Nlck5vZGVSZXF1ZXN0IiwiU0FDRklMRUJST1dTRVJfU0VSVklDRSIsImNvdl8xeWl1cG14c3dsIiwicyIsIlNhY0Fic3RyYWN0RmlsZUJyb3dzZXJTZXJ2aWNlIiwiZGVwcyIsInRhcmdldCIsImkwIiwiybXJtUZhY3RvcnlUYXJnZXQiLCJwcm92aWRlZEluIiwiZGVjb3JhdG9ycyIsIlNhY0RlZmF1bHRGaWxlQnJvd3NlclNlcnZpY2UiLCJjb25zdHJ1Y3RvciIsImh0dHBjbGllbnQiLCJmIiwiR2V0Tm9kZSIsImFwaXVybCIsInBhdGgiLCJhbGxvd2VkZXh0ZW5zaW9ucyIsInVybCIsImIiLCJyZXF1ZXN0IiwiUGF0aCIsIkFsbG93ZWRUeXBlcyIsInBvc3QiLCJ3aXRoQ3JlZGVudGlhbHMiLCJTYXZlTm9kZSIsIm5ld0ZvbGRlcm5hbWUiLCJOZXdGb2xkZXJuYW1lIiwiUmVuYW1lTm9kZSIsInB1dCIsIkRlbGV0ZU5vZGUiLCJHZXRGaWxlcyIsIlNhdmVGaWxlIiwiaWQiLCJVcGxvYWRJZCIsIkRlbGV0ZUZpbGUiLCJSZW5hbWVGaWxlIiwibmV3RmlsZW5hbWUiLCJOZXdGaWxlbmFtZSIsInRva2VuIiwiaTEiLCJIdHRwQ2xpZW50Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FjLWNvbW1vbi9zcmMvc2VydmljZXMvc2FjLWZpbGVicm93c2VyLnNlcnZpY2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBCcm93c2VyRmlsZURlbGV0ZVJlcXVlc3QgfSBmcm9tICcuLi9jb21wb25lbnRzL2Jyb3dzZXIvbW9kZWxzL2Jyb3dzZXJmaWxlZGVsZXRlcmVxdWVzdCc7XG5pbXBvcnQgeyBCcm93c2VyRmlsZVJlbmFtZVJlcXVlc3QgfSBmcm9tICcuLi9jb21wb25lbnRzL2Jyb3dzZXIvbW9kZWxzL2Jyb3dzZXJmaWxlcmVuYW1lcmVxdWVzdCc7XG5pbXBvcnQgeyBJQnJvd3NlckZpbGVSZXNwb25zZSB9IGZyb20gJy4uL2NvbXBvbmVudHMvYnJvd3Nlci9tb2RlbHMvYnJvd3NlcmZpbGVyZXNwb25zZSc7XG5pbXBvcnQgeyBCcm93c2VyRmlsZVNhdmVSZXF1ZXN0IH0gZnJvbSAnLi4vY29tcG9uZW50cy9icm93c2VyL21vZGVscy9icm93c2VyZmlsZXNhdmVyZXF1ZXN0JztcbmltcG9ydCB7IEJyb3dzZXJOb2RlRGVsZXRlUmVxdWVzdCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYnJvd3Nlci9tb2RlbHMvYnJvd3Nlcm5vZGVkZWxldGVyZXF1ZXN0JztcbmltcG9ydCB7IEJyb3dzZXJOb2RlTmV3UmVxdWVzdCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYnJvd3Nlci9tb2RlbHMvYnJvd3Nlcm5vZGVuZXdyZXF1ZXN0JztcbmltcG9ydCB7IEJyb3dzZXJOb2RlUmVuYW1lUmVxdWVzdCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYnJvd3Nlci9tb2RlbHMvYnJvd3Nlcm5vZGVyZW5hbWVyZXF1ZXN0JztcbmltcG9ydCB7IEJyb3dzZXJOb2RlUmVxdWVzdCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYnJvd3Nlci9tb2RlbHMvYnJvd3Nlcm5vZGVyZXF1ZXN0JztcbmltcG9ydCB7IElCcm93c2VyTm9kZVJlc3BvbnNlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9icm93c2VyL21vZGVscy9icm93c2Vybm9kZXJlc3BvbnNlJztcbmltcG9ydCB7IElTYWNGaWxlQnJvd3NlclNlcnZpY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL0lTYWNGaWxlQnJvd3NlclNlcnZpY2UnO1xuXG4vKipcbiAqIEluamVjdGlvbiBUb2tlbiBmw7xyIExhbmd1YWdlIFNlcnZpY2VcbiAqL1xuZXhwb3J0IGNvbnN0IFNBQ0ZJTEVCUk9XU0VSX1NFUlZJQ0UgPVxuICBuZXcgSW5qZWN0aW9uVG9rZW48SVNhY0ZpbGVCcm93c2VyU2VydmljZT4oJ0ZpbGVCcm93c2VyU2VydmljZScpO1xuXG4vKipcbiAqIEFic3RyYWt0ZSBJbXBsZW1lbnRpZXJ1bmcgZGVzIEZpbGUgU2VydmljZSBmw7xyIGRpZSBCcm93c2VyIENvbXBvbmVudFxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2FjQWJzdHJhY3RGaWxlQnJvd3NlclNlcnZpY2VcbiAgaW1wbGVtZW50cyBJU2FjRmlsZUJyb3dzZXJTZXJ2aWNlXG57XG4gIC8qKlxuICAgKiBHaWJ0IGVpbmVuIE5vZGUgenVyw7xja1xuICAgKiBAcGFyYW0gYXBpdXJsIFVSTCB6dSBBUEkgU2VydmljZVxuICAgKiBAcGFyYW0gcGF0aCBQZmFkIGRlcyBOb2RlIHdlbGNoZXIgYW5nZWZvcmRlcnQgd2lyZFxuICAgKiBAcGFyYW0gYWxsb3dlZGV4dGVuc2lvbnMgRXJsYXVidGUgRXh0ZW5zaW9ucyBkaWUgYW5nZXplaWd0IHdlcmRlbiBkw7xyZmVuXG4gICAqL1xuICBhYnN0cmFjdCBHZXROb2RlKFxuICAgIGFwaXVybDogc3RyaW5nLFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBhbGxvd2VkZXh0ZW5zaW9uczogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8SUJyb3dzZXJOb2RlUmVzcG9uc2U+O1xuXG4gIC8qKlxuICAgKiBTcGVpY2hlcnQgZWluZW4gTm9kZVxuICAgKiBAcGFyYW0gYXBpdXJsIFVSTCB6dSBBUEkgU2VydmljZVxuICAgKiBAcGFyYW0gcGF0aCBQZmFkIGluIHdlbGNoZW0gZGVyIE5vZGUgZ2VzcGVpY2hlcnQgd2VyZGVuIHNvbGxcbiAgICogQHBhcmFtIG5ld0ZvbGRlcm5hbWUgTmFtZSBkZXMgbmV1ZW4gTm9kZXNcbiAgICovXG4gIGFic3RyYWN0IFNhdmVOb2RlKFxuICAgIGFwaXVybDogc3RyaW5nLFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBuZXdGb2xkZXJuYW1lOiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxJQnJvd3Nlck5vZGVSZXNwb25zZT47XG5cbiAgLyoqXG4gICAqIFJlbmFtZSBlaW5lcyBOb2Rlc1xuICAgKiBAcGFyYW0gYXBpdXJsIFVSTCB6dSBBUEkgU2VydmljZVxuICAgKiBAcGFyYW0gcGF0aCBQZmFkIGRlcyBOb2RlcyB3ZWxjaGVyIHVtYmVuYW5udCB3ZXJkZW4gc29sbFxuICAgKiBAcGFyYW0gbmV3Rm9sZGVybmFtZSBOZXVlciBOYW1lIGRlcyBOb2Rlc1xuICAgKi9cbiAgYWJzdHJhY3QgUmVuYW1lTm9kZShcbiAgICBhcGl1cmw6IHN0cmluZyxcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgbmV3Rm9sZGVybmFtZTogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8SUJyb3dzZXJOb2RlUmVzcG9uc2U+O1xuXG4gIC8qKlxuICAgKiBMw7ZzY2h0IGVpbmVuIE5vZGVcbiAgICogQHBhcmFtIGFwaXVybCBVUkwgenUgQVBJIFNlcnZpY2VcbiAgICogQHBhcmFtIHBhdGggUGZhZCBkZXMgTm9kZXMgd2VsY2hlciBnZWzDtnNjaHQgd2VyZGVuIHNvbGxcbiAgICovXG4gIGFic3RyYWN0IERlbGV0ZU5vZGUoXG4gICAgYXBpdXJsOiBzdHJpbmcsXG4gICAgcGF0aDogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8SUJyb3dzZXJOb2RlUmVzcG9uc2U+O1xuXG4gIC8qKlxuICAgKiBNZXRob2RlIHdlbGNoZSBkaWUgRGF0ZWllbiBlaW5lcyBOb2RlcyBhdXNsaWVzdFxuICAgKiBAcGFyYW0gYXBpdXJsIFVSTCB6dSBBUEkgU2VydmljZVxuICAgKiBAcGFyYW0gcGF0aCBQZmFkIGRlcyBOb2RlcyBpbiB3ZWxjaGVtIGRpZSBGaWxlcyBnZWxlc2VuIHdlcmRlbiBzb2xsZW5cbiAgICogQHBhcmFtIGFsbG93ZWRleHRlbnNpb25zIEVybGF1YnRlIEZpbGUgRXh0ZW5zaW9uc1xuICAgKi9cbiAgYWJzdHJhY3QgR2V0RmlsZXMoXG4gICAgYXBpdXJsOiBzdHJpbmcsXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIGFsbG93ZWRleHRlbnNpb25zOiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxJQnJvd3NlckZpbGVSZXNwb25zZT47XG5cbiAgLyoqXG4gICAqIFNwZWljaGVydCBlaW5lIEhvY2hnZWxhZGVuZSBEYXRlaSBpbiBkZXIgU3RydWt0dXJcbiAgICogQHBhcmFtIGFwaXVybCBVUkwgenUgQVBJIFNlcnZpY2VcbiAgICogQHBhcmFtIHBhdGggUGZhZCBpbiB3ZWxjaGVtIGRhcyBuZXVlIEZpbGUgZ2VzcGVpY2hlcnQgd2VyZGVuIHNvbGxcbiAgICogQHBhcmFtIGlkIElEIGRlcyBVcGxvYWRzXG4gICAqIEBwYXJhbSBhbGxvd2VkZXh0ZW5zaW9ucyBFcmxhdWJ0ZSBFeHRlbnNpb25zIGbDvHIgZGVuIFVwbG9hZFxuICAgKi9cbiAgYWJzdHJhY3QgU2F2ZUZpbGUoXG4gICAgYXBpdXJsOiBzdHJpbmcsXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIGlkOiBzdHJpbmcsXG4gICAgYWxsb3dlZGV4dGVuc2lvbnM6IHN0cmluZ1xuICApOiBPYnNlcnZhYmxlPElCcm93c2VyRmlsZVJlc3BvbnNlPjtcblxuICAvKipcbiAgICogTWV0aG9kZSB3ZWxjaGUgZWluZSBEYXRlaSB1bWJlbmFubnRcbiAgICogQHBhcmFtIGFwaXVybCBVUkwgenUgQVBJIFNlcnZpY2VcbiAgICogQHBhcmFtIHBhdGggUGZhZCB6dW0gRmlsZSB3ZWxjaGVzIHVtYmVuYW5udCB3ZXJkZW4gc29sbFxuICAgKiBAcGFyYW0gbmV3RmlsZW5hbWUgTmV1ZXIgRGF0ZWluYW1lXG4gICAqIEBwYXJhbSBhbGxvd2VkZXh0ZW5zaW9ucyBFcmxhdWJ0ZSBFeHRlbnNpb24gZsO8ciBGaWxlc1xuICAgKi9cbiAgYWJzdHJhY3QgUmVuYW1lRmlsZShcbiAgICBhcGl1cmw6IHN0cmluZyxcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgbmV3RmlsZW5hbWU6IHN0cmluZyxcbiAgICBhbGxvd2VkZXh0ZW5zaW9uczogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8SUJyb3dzZXJGaWxlUmVzcG9uc2U+O1xuXG4gIC8qKlxuICAgKiBMw7ZzY2h0IGVpbmUgRGF0ZWlcbiAgICogQHBhcmFtIGFwaXVybCBVUkwgenUgQVBJIFNlcnZpY2VcbiAgICogQHBhcmFtIHBhdGggUGZhZCBkZXMgRmlsZXMgd2VsY2hlcyBnZWzDtnNjaHQgd2VyZGVuIHNvbGxcbiAgICogQHBhcmFtIGFsbG93ZWRleHRlbnNpb25zIEVybGF1YnRlIEV4dGVuc2lvbnMgZsO8ciBGaWxlc1xuICAgKi9cbiAgYWJzdHJhY3QgRGVsZXRlRmlsZShcbiAgICBhcGl1cmw6IHN0cmluZyxcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgYWxsb3dlZGV4dGVuc2lvbnM6IHN0cmluZ1xuICApOiBPYnNlcnZhYmxlPElCcm93c2VyRmlsZVJlc3BvbnNlPjtcbn1cblxuLyoqXG4gKiBTdGFuZGFyZGltcGxlbWVudGllcnVuZyBkZXMgQmFja2VuZCBTZXJ2aWNlIGbDvHIgZGllIEZpbGUgQnJvd3NlciBDb21wb25lbnRcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFNhY0RlZmF1bHRGaWxlQnJvd3NlclNlcnZpY2UgZXh0ZW5kcyBTYWNBYnN0cmFjdEZpbGVCcm93c2VyU2VydmljZSB7XG4gIC8qKlxuICAgKiBLb25zdHJ1a3RvclxuICAgKiBAcGFyYW0gaHR0cGNsaWVudCBIVFRQIENsaWVudCBTZXJ2aWNlXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHBjbGllbnQ6IEh0dHBDbGllbnQpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdpYnQgZWluZW4gTm9kZSB6dXLDvGNrXG4gICAqIEBwYXJhbSBhcGl1cmwgVVJMIHp1IEFQSSBTZXJ2aWNlXG4gICAqIEBwYXJhbSBwYXRoIFBmYWQgZGVzIE5vZGUgd2VsY2hlciBhbmdlZm9yZGVydCB3aXJkXG4gICAqIEBwYXJhbSBhbGxvd2VkZXh0ZW5zaW9ucyBFcmxhdWJ0ZSBFeHRlbnNpb25zIGRpZSBhbmdlemVpZ3Qgd2VyZGVuIGTDvHJmZW5cbiAgICovXG4gIHB1YmxpYyBHZXROb2RlKFxuICAgIGFwaXVybDogc3RyaW5nLFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBhbGxvd2VkZXh0ZW5zaW9uczogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8SUJyb3dzZXJOb2RlUmVzcG9uc2U+IHtcbiAgICBjb25zdCB1cmwgPSBgJHthcGl1cmx9L2dldG5vZGVzYDtcblxuICAgIGlmICghcGF0aCkge1xuICAgICAgcGF0aCA9ICcnO1xuICAgIH1cblxuICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgQnJvd3Nlck5vZGVSZXF1ZXN0KHtcbiAgICAgIFBhdGg6IHBhdGgsXG4gICAgICBBbGxvd2VkVHlwZXM6IGFsbG93ZWRleHRlbnNpb25zLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cGNsaWVudC5wb3N0PElCcm93c2VyTm9kZVJlc3BvbnNlPih1cmwsIHJlcXVlc3QsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTcGVpY2hlcnQgZWluZW4gTm9kZVxuICAgKiBAcGFyYW0gYXBpdXJsIFVSTCB6dSBBUEkgU2VydmljZVxuICAgKiBAcGFyYW0gcGF0aCBQZmFkIGluIHdlbGNoZW0gZGVyIE5vZGUgZ2VzcGVpY2hlcnQgd2VyZGVuIHNvbGxcbiAgICogQHBhcmFtIG5ld0ZvbGRlcm5hbWUgTmFtZSBkZXMgbmV1ZW4gTm9kZXNcbiAgICovXG4gIHB1YmxpYyBTYXZlTm9kZShcbiAgICBhcGl1cmw6IHN0cmluZyxcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgbmV3Rm9sZGVybmFtZTogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8SUJyb3dzZXJOb2RlUmVzcG9uc2U+IHtcbiAgICBjb25zdCB1cmwgPSBgJHthcGl1cmx9L25ld25vZGVgO1xuXG4gICAgaWYgKCFwYXRoKSB7XG4gICAgICBwYXRoID0gJyc7XG4gICAgfVxuXG4gICAgY29uc3QgcmVxdWVzdCA9IG5ldyBCcm93c2VyTm9kZU5ld1JlcXVlc3Qoe1xuICAgICAgUGF0aDogcGF0aCxcbiAgICAgIE5ld0ZvbGRlcm5hbWU6IG5ld0ZvbGRlcm5hbWUsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwY2xpZW50LnBvc3Q8SUJyb3dzZXJOb2RlUmVzcG9uc2U+KHVybCwgcmVxdWVzdCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbmFtZSBlaW5lcyBOb2Rlc1xuICAgKiBAcGFyYW0gYXBpdXJsIFVSTCB6dSBBUEkgU2VydmljZVxuICAgKiBAcGFyYW0gcGF0aCBQZmFkIGRlcyBOb2RlcyB3ZWxjaGVyIHVtYmVuYW5udCB3ZXJkZW4gc29sbFxuICAgKiBAcGFyYW0gbmV3Rm9sZGVybmFtZSBOZXVlciBOYW1lIGRlcyBOb2Rlc1xuICAgKi9cbiAgcHVibGljIFJlbmFtZU5vZGUoXG4gICAgYXBpdXJsOiBzdHJpbmcsXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIG5ld0ZvbGRlcm5hbWU6IHN0cmluZ1xuICApOiBPYnNlcnZhYmxlPElCcm93c2VyTm9kZVJlc3BvbnNlPiB7XG4gICAgY29uc3QgdXJsID0gYCR7YXBpdXJsfS9yZW5hbWVub2RlYDtcblxuICAgIGlmICghcGF0aCkge1xuICAgICAgcGF0aCA9ICcnO1xuICAgIH1cblxuICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgQnJvd3Nlck5vZGVSZW5hbWVSZXF1ZXN0KHtcbiAgICAgIFBhdGg6IHBhdGgsXG4gICAgICBOZXdGb2xkZXJuYW1lOiBuZXdGb2xkZXJuYW1lLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cGNsaWVudC5wdXQ8SUJyb3dzZXJOb2RlUmVzcG9uc2U+KHVybCwgcmVxdWVzdCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEzDtnNjaHQgZWluZW4gTm9kZVxuICAgKiBAcGFyYW0gYXBpdXJsIFVSTCB6dSBBUEkgU2VydmljZVxuICAgKiBAcGFyYW0gcGF0aCBQZmFkIGRlcyBOb2RlcyB3ZWxjaGVyIGdlbMO2c2NodCB3ZXJkZW4gc29sbFxuICAgKi9cbiAgcHVibGljIERlbGV0ZU5vZGUoXG4gICAgYXBpdXJsOiBzdHJpbmcsXG4gICAgcGF0aDogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8SUJyb3dzZXJOb2RlUmVzcG9uc2U+IHtcbiAgICBjb25zdCB1cmwgPSBgJHthcGl1cmx9L2RlbGV0ZW5vZGVgO1xuXG4gICAgaWYgKCFwYXRoKSB7XG4gICAgICBwYXRoID0gJyc7XG4gICAgfVxuXG4gICAgY29uc3QgcmVxdWVzdCA9IG5ldyBCcm93c2VyTm9kZURlbGV0ZVJlcXVlc3Qoe1xuICAgICAgUGF0aDogcGF0aCxcbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzLmh0dHBjbGllbnQucG9zdDxJQnJvd3Nlck5vZGVSZXNwb25zZT4odXJsLCByZXF1ZXN0LCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kZSB3ZWxjaGUgZGllIERhdGVpZW4gZWluZXMgTm9kZXMgYXVzbGllc3RcbiAgICogQHBhcmFtIGFwaXVybCBVUkwgenUgQVBJIFNlcnZpY2VcbiAgICogQHBhcmFtIHBhdGggUGZhZCBkZXMgTm9kZXMgaW4gd2VsY2hlbSBkaWUgRmlsZXMgZ2VsZXNlbiB3ZXJkZW4gc29sbGVuXG4gICAqIEBwYXJhbSBhbGxvd2VkZXh0ZW5zaW9ucyBFcmxhdWJ0ZSBGaWxlIEV4dGVuc2lvbnNcbiAgICovXG4gIHB1YmxpYyBHZXRGaWxlcyhcbiAgICBhcGl1cmw6IHN0cmluZyxcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgYWxsb3dlZGV4dGVuc2lvbnM6IHN0cmluZ1xuICApOiBPYnNlcnZhYmxlPElCcm93c2VyRmlsZVJlc3BvbnNlPiB7XG4gICAgY29uc3QgdXJsID0gYCR7YXBpdXJsfS9nZXRmaWxlc2A7XG5cbiAgICBpZiAoIXBhdGgpIHtcbiAgICAgIHBhdGggPSAnJztcbiAgICB9XG5cbiAgICBjb25zdCByZXF1ZXN0ID0gbmV3IEJyb3dzZXJOb2RlUmVxdWVzdCh7XG4gICAgICBQYXRoOiBwYXRoLFxuICAgICAgQWxsb3dlZFR5cGVzOiBhbGxvd2VkZXh0ZW5zaW9ucyxcbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzLmh0dHBjbGllbnQucG9zdDxJQnJvd3NlckZpbGVSZXNwb25zZT4odXJsLCByZXF1ZXN0LCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogU3BlaWNoZXJ0IGVpbmUgSG9jaGdlbGFkZW5lIERhdGVpIGluIGRlciBTdHJ1a3R1clxuICAgKiBAcGFyYW0gYXBpdXJsIFVSTCB6dSBBUEkgU2VydmljZVxuICAgKiBAcGFyYW0gcGF0aCBQZmFkIGluIHdlbGNoZW0gZGFzIG5ldWUgRmlsZSBnZXNwZWljaGVydCB3ZXJkZW4gc29sbFxuICAgKiBAcGFyYW0gaWQgSUQgZGVzIFVwbG9hZHNcbiAgICogQHBhcmFtIGFsbG93ZWRleHRlbnNpb25zIEVybGF1YnRlIEV4dGVuc2lvbnMgZsO8ciBkZW4gVXBsb2FkXG4gICAqL1xuICBwdWJsaWMgU2F2ZUZpbGUoXG4gICAgYXBpdXJsOiBzdHJpbmcsXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIGlkOiBzdHJpbmcsXG4gICAgYWxsb3dlZGV4dGVuc2lvbnM6IHN0cmluZ1xuICApOiBPYnNlcnZhYmxlPElCcm93c2VyRmlsZVJlc3BvbnNlPiB7XG4gICAgY29uc3QgdXJsID0gYCR7YXBpdXJsfS91cGxvYWRmaWxlYDtcblxuICAgIGlmICghcGF0aCkge1xuICAgICAgcGF0aCA9ICcnO1xuICAgIH1cblxuICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgQnJvd3NlckZpbGVTYXZlUmVxdWVzdCh7XG4gICAgICBQYXRoOiBwYXRoLFxuICAgICAgVXBsb2FkSWQ6IGlkLFxuICAgICAgQWxsb3dlZFR5cGVzOiBhbGxvd2VkZXh0ZW5zaW9ucyxcbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzLmh0dHBjbGllbnQucG9zdDxJQnJvd3NlckZpbGVSZXNwb25zZT4odXJsLCByZXF1ZXN0LCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogTMO2c2NodCBlaW5lIERhdGVpXG4gICAqIEBwYXJhbSBhcGl1cmwgVVJMIHp1IEFQSSBTZXJ2aWNlXG4gICAqIEBwYXJhbSBwYXRoIFBmYWQgZGVzIEZpbGVzIHdlbGNoZXMgZ2Vsw7ZzY2h0IHdlcmRlbiBzb2xsXG4gICAqIEBwYXJhbSBhbGxvd2VkZXh0ZW5zaW9ucyBFcmxhdWJ0ZSBFeHRlbnNpb25zIGbDvHIgRmlsZXNcbiAgICovXG4gIHB1YmxpYyBEZWxldGVGaWxlKFxuICAgIGFwaXVybDogc3RyaW5nLFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBhbGxvd2VkZXh0ZW5zaW9uczogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8SUJyb3dzZXJGaWxlUmVzcG9uc2U+IHtcbiAgICBjb25zdCB1cmwgPSBgJHthcGl1cmx9L2RlbGV0ZWZpbGVgO1xuXG4gICAgaWYgKCFwYXRoKSB7XG4gICAgICBwYXRoID0gJyc7XG4gICAgfVxuXG4gICAgY29uc3QgcmVxdWVzdCA9IG5ldyBCcm93c2VyRmlsZURlbGV0ZVJlcXVlc3Qoe1xuICAgICAgUGF0aDogcGF0aCxcbiAgICAgIEFsbG93ZWRUeXBlczogYWxsb3dlZGV4dGVuc2lvbnMsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwY2xpZW50LnBvc3Q8SUJyb3dzZXJGaWxlUmVzcG9uc2U+KHVybCwgcmVxdWVzdCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZGUgd2VsY2hlIGVpbmUgRGF0ZWkgdW1iZW5hbm50XG4gICAqIEBwYXJhbSBhcGl1cmwgVVJMIHp1IEFQSSBTZXJ2aWNlXG4gICAqIEBwYXJhbSBwYXRoIFBmYWQgenVtIEZpbGUgd2VsY2hlcyB1bWJlbmFubnQgd2VyZGVuIHNvbGxcbiAgICogQHBhcmFtIG5ld0ZpbGVuYW1lIE5ldWVyIERhdGVpbmFtZVxuICAgKiBAcGFyYW0gYWxsb3dlZGV4dGVuc2lvbnMgRXJsYXVidGUgRXh0ZW5zaW9uIGbDvHIgRmlsZXNcbiAgICovXG4gIHB1YmxpYyBSZW5hbWVGaWxlKFxuICAgIGFwaXVybDogc3RyaW5nLFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBuZXdGaWxlbmFtZTogc3RyaW5nLFxuICAgIGFsbG93ZWRleHRlbnNpb25zOiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxJQnJvd3NlckZpbGVSZXNwb25zZT4ge1xuICAgIGNvbnN0IHVybCA9IGAke2FwaXVybH0vcmVuYW1lZmlsZWA7XG5cbiAgICBpZiAoIXBhdGgpIHtcbiAgICAgIHBhdGggPSAnJztcbiAgICB9XG5cbiAgICBjb25zdCByZXF1ZXN0ID0gbmV3IEJyb3dzZXJGaWxlUmVuYW1lUmVxdWVzdCh7XG4gICAgICBQYXRoOiBwYXRoLFxuICAgICAgTmV3RmlsZW5hbWU6IG5ld0ZpbGVuYW1lLFxuICAgICAgQWxsb3dlZFR5cGVzOiBhbGxvd2VkZXh0ZW5zaW9ucyxcbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzLmh0dHBjbGllbnQucHV0PElCcm93c2VyRmlsZVJlc3BvbnNlPih1cmwsIHJlcXVlc3QsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzJGQUNBLE9BQVNBLFVBQVUsQ0FBRUMsY0FBYyxLQUFRLGVBQWUsQ0FFMUQsT0FBU0Msd0JBQXdCLEtBQVEsdURBQXVELENBQ2hHLE9BQVNDLHdCQUF3QixLQUFRLHVEQUF1RCxDQUVoRyxPQUFTQyxzQkFBc0IsS0FBUSxxREFBcUQsQ0FDNUYsT0FBU0Msd0JBQXdCLEtBQVEsdURBQXVELENBQ2hHLE9BQVNDLHFCQUFxQixLQUFRLG9EQUFvRCxDQUMxRixPQUFTQyx3QkFBd0IsS0FBUSx1REFBdUQsQ0FDaEcsT0FBU0Msa0JBQWtCLEtBQVEsaURBQWlELEMseUVBSXBGOztHQUdBLE1BQU8sTUFBTSxDQUFBQyxzQkFBc0IsRUFBQUMsY0FBQSxHQUFBQyxDQUFBLE1BQ2pDLEdBQUksQ0FBQVYsY0FBYyxDQUF5QixvQkFBb0IsQ0FBQyxFQUVsRTs7R0FHQSxLQUdzQixDQUFBVyw2QkFBNkIsQyx1SEFBN0JBLDZCQUE2QixDQUFBQyxJQUFBLElBQUFDLE1BQUEsQ0FBQUMsRUFBQSxDQUFBQyxlQUFBLENBQUFoQixVQUFBLEksMkhBQTdCWSw2QkFBNkIsQ0FBQUssVUFBQSxDQUZyQyxNQUFNLEksUUFFRUwsNkJBQTZCLEVBQUFGLGNBQUEsR0FBQUMsQ0FBQSxNLG9GQUE3QkMsNkJBQTZCLENBQUFNLFVBQUEsRyxLQUhsRGxCLFVBQVUsQyxNQUFDLENBQ1ZpQixVQUFVLENBQUUsTSxDQUNiLEMsS0F1R0Q7O0dBR0EsS0FHYSxDQUFBRSw0QkFBNkIsUUFBUSxDQUFBUCw2QkFBNkIsQ0FDN0U7OztPQUlBUSxZQUFvQkMsVUFBc0IsRUFBQVgsY0FBQSxHQUFBWSxDQUFBLEtBQUFaLENBQUEsaUJBQUFDLENBQUEsTUFDeEMsS0FBSyxFQUFFLENBQUNELGNBQUEsR0FBQUMsQ0FBQSxNQURVLEtBQUFVLFVBQVUsQ0FBVkEsVUFBVSxDQUU5QixD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
|
|
15
|
+
*/constructor(httpclient){cov_1yiupmxswl().f[0]++;cov_1yiupmxswl().s[4]++;super();cov_1yiupmxswl().s[5]++;this.httpclient=httpclient;}// #endregion Constructors
|
|
16
|
+
// #region Public Methods
|
|
17
|
+
/**
|
|
18
|
+
* Deletes a file
|
|
19
|
+
* @param apiurl URL to API Service
|
|
20
|
+
* @param path Path of the file to be deleted
|
|
21
|
+
* @param allowedextensions Allowed extensions for files
|
|
22
|
+
* @returns Observable containing the file response after deletion
|
|
23
|
+
*/DeleteFile(apiurl,path,allowedextensions){cov_1yiupmxswl().f[1]++;const url=(cov_1yiupmxswl().s[6]++,`${apiurl}/deletefile`);cov_1yiupmxswl().s[7]++;if(!path){cov_1yiupmxswl().b[0][0]++;cov_1yiupmxswl().s[8]++;path='';}else{cov_1yiupmxswl().b[0][1]++;}const request=(cov_1yiupmxswl().s[9]++,new BrowserFileDeleteRequest({Path:path,AllowedTypes:allowedextensions}));cov_1yiupmxswl().s[10]++;return this.httpclient.post(url,request,{withCredentials:true});}/**
|
|
24
|
+
* Deletes a node
|
|
25
|
+
* @param apiurl URL to API Service
|
|
26
|
+
* @param path Path of the node to be deleted
|
|
27
|
+
* @returns Observable containing the node response after deletion
|
|
28
|
+
*/DeleteNode(apiurl,path){cov_1yiupmxswl().f[2]++;const url=(cov_1yiupmxswl().s[11]++,`${apiurl}/deletenode`);cov_1yiupmxswl().s[12]++;if(!path){cov_1yiupmxswl().b[1][0]++;cov_1yiupmxswl().s[13]++;path='';}else{cov_1yiupmxswl().b[1][1]++;}const request=(cov_1yiupmxswl().s[14]++,new BrowserNodeDeleteRequest({Path:path}));cov_1yiupmxswl().s[15]++;return this.httpclient.post(url,request,{withCredentials:true});}/**
|
|
29
|
+
* Method that reads the files of a node
|
|
30
|
+
* @param apiurl URL to API Service
|
|
31
|
+
* @param path Path of the node from which the files should be read
|
|
32
|
+
* @param allowedextensions Allowed file extensions
|
|
33
|
+
* @returns Observable containing the file response
|
|
34
|
+
*/GetFiles(apiurl,path,allowedextensions){cov_1yiupmxswl().f[3]++;const url=(cov_1yiupmxswl().s[16]++,`${apiurl}/getfiles`);cov_1yiupmxswl().s[17]++;if(!path){cov_1yiupmxswl().b[2][0]++;cov_1yiupmxswl().s[18]++;path='';}else{cov_1yiupmxswl().b[2][1]++;}const request=(cov_1yiupmxswl().s[19]++,new BrowserNodeRequest({Path:path,AllowedTypes:allowedextensions}));cov_1yiupmxswl().s[20]++;return this.httpclient.post(url,request,{withCredentials:true});}/**
|
|
35
|
+
* Returns a node
|
|
36
|
+
* @param apiurl URL to API Service
|
|
37
|
+
* @param path Path of the node being requested
|
|
38
|
+
* @param allowedextensions Allowed extensions that may be displayed
|
|
39
|
+
* @returns Observable containing the node response
|
|
40
|
+
*/GetNode(apiurl,path,allowedextensions){cov_1yiupmxswl().f[4]++;const url=(cov_1yiupmxswl().s[21]++,`${apiurl}/getnodes`);cov_1yiupmxswl().s[22]++;if(!path){cov_1yiupmxswl().b[3][0]++;cov_1yiupmxswl().s[23]++;path='';}else{cov_1yiupmxswl().b[3][1]++;}const request=(cov_1yiupmxswl().s[24]++,new BrowserNodeRequest({Path:path,AllowedTypes:allowedextensions}));cov_1yiupmxswl().s[25]++;return this.httpclient.post(url,request,{withCredentials:true});}/**
|
|
41
|
+
* Method that renames a file
|
|
42
|
+
* @param apiurl URL to API Service
|
|
43
|
+
* @param path Path to the file to be renamed
|
|
44
|
+
* @param newFilename New filename
|
|
45
|
+
* @param allowedextensions Allowed extension for files
|
|
46
|
+
* @returns Observable containing the file response after rename
|
|
47
|
+
*/RenameFile(apiurl,path,newFilename,allowedextensions){cov_1yiupmxswl().f[5]++;const url=(cov_1yiupmxswl().s[26]++,`${apiurl}/renamefile`);cov_1yiupmxswl().s[27]++;if(!path){cov_1yiupmxswl().b[4][0]++;cov_1yiupmxswl().s[28]++;path='';}else{cov_1yiupmxswl().b[4][1]++;}const request=(cov_1yiupmxswl().s[29]++,new BrowserFileRenameRequest({Path:path,NewFilename:newFilename,AllowedTypes:allowedextensions}));cov_1yiupmxswl().s[30]++;return this.httpclient.put(url,request,{withCredentials:true});}/**
|
|
48
|
+
* Rename a node
|
|
49
|
+
* @param apiurl URL to API Service
|
|
50
|
+
* @param path Path of the node to be renamed
|
|
51
|
+
* @param newFoldername New name of the node
|
|
52
|
+
* @returns Observable containing the node response after rename
|
|
53
|
+
*/RenameNode(apiurl,path,newFoldername){cov_1yiupmxswl().f[6]++;const url=(cov_1yiupmxswl().s[31]++,`${apiurl}/renamenode`);cov_1yiupmxswl().s[32]++;if(!path){cov_1yiupmxswl().b[5][0]++;cov_1yiupmxswl().s[33]++;path='';}else{cov_1yiupmxswl().b[5][1]++;}const request=(cov_1yiupmxswl().s[34]++,new BrowserNodeRenameRequest({Path:path,NewFoldername:newFoldername}));cov_1yiupmxswl().s[35]++;return this.httpclient.put(url,request,{withCredentials:true});}/**
|
|
54
|
+
* Saves an uploaded file in the structure
|
|
55
|
+
* @param apiurl URL to API Service
|
|
56
|
+
* @param path Path where the new file should be saved
|
|
57
|
+
* @param id ID of the upload
|
|
58
|
+
* @param allowedextensions Allowed extensions for the upload
|
|
59
|
+
* @returns Observable containing the file response after save
|
|
60
|
+
*/SaveFile(apiurl,path,id,allowedextensions){cov_1yiupmxswl().f[7]++;const url=(cov_1yiupmxswl().s[36]++,`${apiurl}/uploadfile`);cov_1yiupmxswl().s[37]++;if(!path){cov_1yiupmxswl().b[6][0]++;cov_1yiupmxswl().s[38]++;path='';}else{cov_1yiupmxswl().b[6][1]++;}const request=(cov_1yiupmxswl().s[39]++,new BrowserFileSaveRequest({Path:path,UploadId:id,AllowedTypes:allowedextensions}));cov_1yiupmxswl().s[40]++;return this.httpclient.post(url,request,{withCredentials:true});}/**
|
|
61
|
+
* Saves a node
|
|
62
|
+
* @param apiurl URL to API Service
|
|
63
|
+
* @param path Path where the node should be saved
|
|
64
|
+
* @param newFoldername Name of the new node
|
|
65
|
+
* @returns Observable containing the node response after save
|
|
66
|
+
*/SaveNode(apiurl,path,newFoldername){cov_1yiupmxswl().f[8]++;const url=(cov_1yiupmxswl().s[41]++,`${apiurl}/newnode`);cov_1yiupmxswl().s[42]++;if(!path){cov_1yiupmxswl().b[7][0]++;cov_1yiupmxswl().s[43]++;path='';}else{cov_1yiupmxswl().b[7][1]++;}const request=(cov_1yiupmxswl().s[44]++,new BrowserNodeNewRequest({Path:path,NewFoldername:newFoldername}));cov_1yiupmxswl().s[45]++;return this.httpclient.post(url,request,{withCredentials:true});}static{cov_1yiupmxswl().s[46]++;this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"16.2.12",ngImport:i0,type:SacDefaultFileBrowserService,deps:[{token:i1.HttpClient}],target:i0.ɵɵFactoryTarget.Injectable});}static{cov_1yiupmxswl().s[47]++;this.ɵprov=i0.ɵɵngDeclareInjectable({minVersion:"12.0.0",version:"16.2.12",ngImport:i0,type:SacDefaultFileBrowserService,providedIn:'root'});}}cov_1yiupmxswl().s[48]++;i0.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"16.2.12",ngImport:i0,type:SacDefaultFileBrowserService,decorators:[{type:Injectable,args:[{providedIn:'root'}]}],ctorParameters:function(){cov_1yiupmxswl().f[9]++;cov_1yiupmxswl().s[49]++;return[{type:i1.HttpClient}];}});//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FjLWZpbGVicm93c2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy9zZXJ2aWNlcy9zYWMtZmlsZWJyb3dzZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUVqRyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUM3RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUMzRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUlyRixPQUFPLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBRzNELG9CQUFvQjtBQUVwQjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLElBQUksY0FBYyxDQUF5QixvQkFBb0IsQ0FBQyxDQUFDO0FBRXZHLHVCQUF1QjtBQUV2QiwyQkFBMkI7QUFFM0I7O0dBRUc7QUFJSCxNQUFNLE9BQWdCLDZCQUE2QjsrR0FBN0IsNkJBQTZCO21IQUE3Qiw2QkFBNkIsY0FGbkMsTUFBTTs7NEZBRUEsNkJBQTZCO2tCQUhsRCxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7QUFzRkQ7O0dBRUc7QUFJSCxNQUFNLE9BQU8sNEJBQTZCLFNBQVEsNkJBQTZCO0lBQzNFLHVCQUF1QjtJQUV2Qjs7O09BR0c7SUFDSCxZQUFvQixVQUFzQjtRQUN0QyxLQUFLLEVBQUUsQ0FB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QUFJLENBQUMsSUFBSSxFQUFFO1lBQ1AsSUFBSSxHQUFHLEVBQUUsQ0FBQztTQUNiO1FBRUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxxQkFBcUIsQ0FBQztZQUN0QyxJQUFJLEVBQUUsSUFBSTtZQUNWLGFBQWEsRUFBRSxhQUFhO1NBQy9CLENBQUMsQ0FBQztRQUVILE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQXVCLEdBQUcsRUFBRSxPQUFPLEVBQUU7WUFDNUQsZUFBZSxFQUFFLElBQUk7U0FDeEIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzsrR0F6TlEsNEJBQTRCO21IQUE1Qiw0QkFBNEIsY0FGekIsTUFBTTs7NEZBRVQsNEJBQTRCO2tCQUh4QyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJyb3dzZXJGaWxlRGVsZXRlUmVxdWVzdCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYnJvd3Nlci9tb2RlbHMvYnJvd3NlcmZpbGVkZWxldGVyZXF1ZXN0JztcbmltcG9ydCB7IEJyb3dzZXJGaWxlUmVuYW1lUmVxdWVzdCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYnJvd3Nlci9tb2RlbHMvYnJvd3NlcmZpbGVyZW5hbWVyZXF1ZXN0JztcbmltcG9ydCB7IElCcm93c2VyRmlsZVJlc3BvbnNlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9icm93c2VyL21vZGVscy9icm93c2VyZmlsZXJlc3BvbnNlJztcbmltcG9ydCB7IEJyb3dzZXJGaWxlU2F2ZVJlcXVlc3QgfSBmcm9tICcuLi9jb21wb25lbnRzL2Jyb3dzZXIvbW9kZWxzL2Jyb3dzZXJmaWxlc2F2ZXJlcXVlc3QnO1xuaW1wb3J0IHsgQnJvd3Nlck5vZGVEZWxldGVSZXF1ZXN0IH0gZnJvbSAnLi4vY29tcG9uZW50cy9icm93c2VyL21vZGVscy9icm93c2Vybm9kZWRlbGV0ZXJlcXVlc3QnO1xuaW1wb3J0IHsgQnJvd3Nlck5vZGVOZXdSZXF1ZXN0IH0gZnJvbSAnLi4vY29tcG9uZW50cy9icm93c2VyL21vZGVscy9icm93c2Vybm9kZW5ld3JlcXVlc3QnO1xuaW1wb3J0IHsgQnJvd3Nlck5vZGVSZW5hbWVSZXF1ZXN0IH0gZnJvbSAnLi4vY29tcG9uZW50cy9icm93c2VyL21vZGVscy9icm93c2Vybm9kZXJlbmFtZXJlcXVlc3QnO1xuaW1wb3J0IHsgQnJvd3Nlck5vZGVSZXF1ZXN0IH0gZnJvbSAnLi4vY29tcG9uZW50cy9icm93c2VyL21vZGVscy9icm93c2Vybm9kZXJlcXVlc3QnO1xuaW1wb3J0IHsgSUJyb3dzZXJOb2RlUmVzcG9uc2UgfSBmcm9tICcuLi9jb21wb25lbnRzL2Jyb3dzZXIvbW9kZWxzL2Jyb3dzZXJub2RlcmVzcG9uc2UnO1xuaW1wb3J0IHsgSVNhY0ZpbGVCcm93c2VyU2VydmljZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvSVNhY0ZpbGVCcm93c2VyU2VydmljZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuLy8gI3JlZ2lvbiBWYXJpYWJsZXNcblxuLyoqXG4gKiBJbmplY3Rpb24gVG9rZW4gZm9yIExhbmd1YWdlIFNlcnZpY2VcbiAqL1xuZXhwb3J0IGNvbnN0IFNBQ0ZJTEVCUk9XU0VSX1NFUlZJQ0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48SVNhY0ZpbGVCcm93c2VyU2VydmljZT4oJ0ZpbGVCcm93c2VyU2VydmljZScpO1xuXG4vLyAjZW5kcmVnaW9uIFZhcmlhYmxlc1xuXG4vLyAjcmVnaW9uIEV4cG9ydGVkIENsYXNzZXNcblxuLyoqXG4gKiBBYnN0cmFjdCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgZmlsZSBzZXJ2aWNlIGZvciB0aGUgYnJvd3NlciBjb21wb25lbnRcbiAqL1xuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2FjQWJzdHJhY3RGaWxlQnJvd3NlclNlcnZpY2UgaW1wbGVtZW50cyBJU2FjRmlsZUJyb3dzZXJTZXJ2aWNlIHtcbiAgICAvLyAjcmVnaW9uIFB1YmxpYyBNZXRob2RzXG5cbiAgICAvKipcbiAgICAgKiBEZWxldGVzIGEgZmlsZVxuICAgICAqIEBwYXJhbSBhcGl1cmwgVVJMIHRvIEFQSSBTZXJ2aWNlXG4gICAgICogQHBhcmFtIHBhdGggUGF0aCBvZiB0aGUgZmlsZSB0byBiZSBkZWxldGVkXG4gICAgICogQHBhcmFtIGFsbG93ZWRleHRlbnNpb25zIEFsbG93ZWQgZXh0ZW5zaW9ucyBmb3IgZmlsZXNcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgRGVsZXRlRmlsZShcbiAgICAgICAgYXBpdXJsOiBzdHJpbmcsXG4gICAgICAgIHBhdGg6IHN0cmluZyxcbiAgICAgICAgYWxsb3dlZGV4dGVuc2lvbnM6IHN0cmluZ1xuICAgICk6IE9ic2VydmFibGU8SUJyb3dzZXJGaWxlUmVzcG9uc2U+O1xuXG4gICAgLyoqXG4gICAgICogRGVsZXRlcyBhIG5vZGVcbiAgICAgKiBAcGFyYW0gYXBpdXJsIFVSTCB0byBBUEkgU2VydmljZVxuICAgICAqIEBwYXJhbSBwYXRoIFBhdGggb2YgdGhlIG5vZGUgdG8gYmUgZGVsZXRlZFxuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBEZWxldGVOb2RlKGFwaXVybDogc3RyaW5nLCBwYXRoOiBzdHJpbmcpOiBPYnNlcnZhYmxlPElCcm93c2VyTm9kZVJlc3BvbnNlPjtcblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCB0aGF0IHJlYWRzIHRoZSBmaWxlcyBvZiBhIG5vZGVcbiAgICAgKiBAcGFyYW0gYXBpdXJsIFVSTCB0byBBUEkgU2VydmljZVxuICAgICAqIEBwYXJhbSBwYXRoIFBhdGggb2YgdGhlIG5vZGUgZnJvbSB3aGljaCB0aGUgZmlsZXMgc2hvdWxkIGJlIHJlYWRcbiAgICAgKiBAcGFyYW0gYWxsb3dlZGV4dGVuc2lvbnMgQWxsb3dlZCBmaWxlIGV4dGVuc2lvbnNcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgR2V0RmlsZXMoYXBpdXJsOiBzdHJpbmcsIHBhdGg6IHN0cmluZywgYWxsb3dlZGV4dGVuc2lvbnM6IHN0cmluZyk6IE9ic2VydmFibGU8SUJyb3dzZXJGaWxlUmVzcG9uc2U+O1xuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhIG5vZGVcbiAgICAgKiBAcGFyYW0gYXBpdXJsIFVSTCB0byBBUEkgU2VydmljZVxuICAgICAqIEBwYXJhbSBwYXRoIFBhdGggb2YgdGhlIG5vZGUgYmVpbmcgcmVxdWVzdGVkXG4gICAgICogQHBhcmFtIGFsbG93ZWRleHRlbnNpb25zIEFsbG93ZWQgZXh0ZW5zaW9ucyB0aGF0IG1heSBiZSBkaXNwbGF5ZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgR2V0Tm9kZShhcGl1cmw6IHN0cmluZywgcGF0aDogc3RyaW5nLCBhbGxvd2VkZXh0ZW5zaW9uczogc3RyaW5nKTogT2JzZXJ2YWJsZTxJQnJvd3Nlck5vZGVSZXNwb25zZT47XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2QgdGhhdCByZW5hbWVzIGEgZmlsZVxuICAgICAqIEBwYXJhbSBhcGl1cmwgVVJMIHRvIEFQSSBTZXJ2aWNlXG4gICAgICogQHBhcmFtIHBhdGggUGF0aCB0byB0aGUgZmlsZSB0byBiZSByZW5hbWVkXG4gICAgICogQHBhcmFtIG5ld0ZpbGVuYW1lIE5ldyBmaWxlbmFtZVxuICAgICAqIEBwYXJhbSBhbGxvd2VkZXh0ZW5zaW9ucyBBbGxvd2VkIGV4dGVuc2lvbiBmb3IgZmlsZXNcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgUmVuYW1lRmlsZShcbiAgICAgICAgYXBpdXJsOiBzdHJpbmcsXG4gICAgICAgIHBhdGg6IHN0cmluZyxcbiAgICAgICAgbmV3RmlsZW5hbWU6IHN0cmluZyxcbiAgICAgICAgYWxsb3dlZGV4dGVuc2lvbnM6IHN0cmluZ1xuICAgICk6IE9ic2VydmFibGU8SUJyb3dzZXJGaWxlUmVzcG9uc2U+O1xuXG4gICAgLyoqXG4gICAgICogUmVuYW1lIGEgbm9kZVxuICAgICAqIEBwYXJhbSBhcGl1cmwgVVJMIHRvIEFQSSBTZXJ2aWNlXG4gICAgICogQHBhcmFtIHBhdGggUGF0aCBvZiB0aGUgbm9kZSB0byBiZSByZW5hbWVkXG4gICAgICogQHBhcmFtIG5ld0ZvbGRlcm5hbWUgTmV3IG5hbWUgb2YgdGhlIG5vZGVcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgUmVuYW1lTm9kZShhcGl1cmw6IHN0cmluZywgcGF0aDogc3RyaW5nLCBuZXdGb2xkZXJuYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPElCcm93c2VyTm9kZVJlc3BvbnNlPjtcblxuICAgIC8qKlxuICAgICAqIFNhdmVzIGFuIHVwbG9hZGVkIGZpbGUgaW4gdGhlIHN0cnVjdHVyZVxuICAgICAqIEBwYXJhbSBhcGl1cmwgVVJMIHRvIEFQSSBTZXJ2aWNlXG4gICAgICogQHBhcmFtIHBhdGggUGF0aCB3aGVyZSB0aGUgbmV3IGZpbGUgc2hvdWxkIGJlIHNhdmVkXG4gICAgICogQHBhcmFtIGlkIElEIG9mIHRoZSB1cGxvYWRcbiAgICAgKiBAcGFyYW0gYWxsb3dlZGV4dGVuc2lvbnMgQWxsb3dlZCBleHRlbnNpb25zIGZvciB0aGUgdXBsb2FkXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IFNhdmVGaWxlKFxuICAgICAgICBhcGl1cmw6IHN0cmluZyxcbiAgICAgICAgcGF0aDogc3RyaW5nLFxuICAgICAgICBpZDogc3RyaW5nLFxuICAgICAgICBhbGxvd2VkZXh0ZW5zaW9uczogc3RyaW5nXG4gICAgKTogT2JzZXJ2YWJsZTxJQnJvd3NlckZpbGVSZXNwb25zZT47XG5cbiAgICAvKipcbiAgICAgKiBTYXZlcyBhIG5vZGVcbiAgICAgKiBAcGFyYW0gYXBpdXJsIFVSTCB0byBBUEkgU2VydmljZVxuICAgICAqIEBwYXJhbSBwYXRoIFBhdGggd2hlcmUgdGhlIG5vZGUgc2hvdWxkIGJlIHNhdmVkXG4gICAgICogQHBhcmFtIG5ld0ZvbGRlcm5hbWUgTmFtZSBvZiB0aGUgbmV3IG5vZGVcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgU2F2ZU5vZGUoYXBpdXJsOiBzdHJpbmcsIHBhdGg6IHN0cmluZywgbmV3Rm9sZGVybmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxJQnJvd3Nlck5vZGVSZXNwb25zZT47XG5cbiAgICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBNZXRob2RzXG59XG5cbi8qKlxuICogU3RhbmRhcmQgaW1wbGVtZW50YXRpb24gb2YgdGhlIGJhY2tlbmQgc2VydmljZSBmb3IgdGhlIGZpbGUgYnJvd3NlciBjb21wb25lbnRcbiAqL1xuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2FjRGVmYXVsdEZpbGVCcm93c2VyU2VydmljZSBleHRlbmRzIFNhY0Fic3RyYWN0RmlsZUJyb3dzZXJTZXJ2aWNlIHtcbiAgICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xuXG4gICAgLyoqXG4gICAgICogQ29uc3RydWN0b3JcbiAgICAgKiBAcGFyYW0gaHR0cGNsaWVudCBIVFRQIENsaWVudCBTZXJ2aWNlXG4gICAgICovXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwY2xpZW50OiBIdHRwQ2xpZW50KSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBDb25zdHJ1Y3RvcnNcblxuICAgIC8vICNyZWdpb24gUHVibGljIE1ldGhvZHNcblxuICAgIC8qKlxuICAgICAqIERlbGV0ZXMgYSBmaWxlXG4gICAgICogQHBhcmFtIGFwaXVybCBVUkwgdG8gQVBJIFNlcnZpY2VcbiAgICAgKiBAcGFyYW0gcGF0aCBQYXRoIG9mIHRoZSBmaWxlIHRvIGJlIGRlbGV0ZWRcbiAgICAgKiBAcGFyYW0gYWxsb3dlZGV4dGVuc2lvbnMgQWxsb3dlZCBleHRlbnNpb25zIGZvciBmaWxlc1xuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGUgY29udGFpbmluZyB0aGUgZmlsZSByZXNwb25zZSBhZnRlciBkZWxldGlvblxuICAgICAqL1xuICAgIHB1YmxpYyBEZWxldGVGaWxlKGFwaXVybDogc3RyaW5nLCBwYXRoOiBzdHJpbmcsIGFsbG93ZWRleHRlbnNpb25zOiBzdHJpbmcpOiBPYnNlcnZhYmxlPElCcm93c2VyRmlsZVJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke2FwaXVybH0vZGVsZXRlZmlsZWA7XG5cbiAgICAgICAgaWYgKCFwYXRoKSB7XG4gICAgICAgICAgICBwYXRoID0gJyc7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZXF1ZXN0ID0gbmV3IEJyb3dzZXJGaWxlRGVsZXRlUmVxdWVzdCh7XG4gICAgICAgICAgICBQYXRoOiBwYXRoLFxuICAgICAgICAgICAgQWxsb3dlZFR5cGVzOiBhbGxvd2VkZXh0ZW5zaW9ucyxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cGNsaWVudC5wb3N0PElCcm93c2VyRmlsZVJlc3BvbnNlPih1cmwsIHJlcXVlc3QsIHtcbiAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVsZXRlcyBhIG5vZGVcbiAgICAgKiBAcGFyYW0gYXBpdXJsIFVSTCB0byBBUEkgU2VydmljZVxuICAgICAqIEBwYXJhbSBwYXRoIFBhdGggb2YgdGhlIG5vZGUgdG8gYmUgZGVsZXRlZFxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGUgY29udGFpbmluZyB0aGUgbm9kZSByZXNwb25zZSBhZnRlciBkZWxldGlvblxuICAgICAqL1xuICAgIHB1YmxpYyBEZWxldGVOb2RlKGFwaXVybDogc3RyaW5nLCBwYXRoOiBzdHJpbmcpOiBPYnNlcnZhYmxlPElCcm93c2VyTm9kZVJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke2FwaXVybH0vZGVsZXRlbm9kZWA7XG5cbiAgICAgICAgaWYgKCFwYXRoKSB7XG4gICAgICAgICAgICBwYXRoID0gJyc7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZXF1ZXN0ID0gbmV3IEJyb3dzZXJOb2RlRGVsZXRlUmVxdWVzdCh7XG4gICAgICAgICAgICBQYXRoOiBwYXRoLFxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwY2xpZW50LnBvc3Q8SUJyb3dzZXJOb2RlUmVzcG9uc2U+KHVybCwgcmVxdWVzdCwge1xuICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2QgdGhhdCByZWFkcyB0aGUgZmlsZXMgb2YgYSBub2RlXG4gICAgICogQHBhcmFtIGFwaXVybCBVUkwgdG8gQVBJIFNlcnZpY2VcbiAgICAgKiBAcGFyYW0gcGF0aCBQYXRoIG9mIHRoZSBub2RlIGZyb20gd2hpY2ggdGhlIGZpbGVzIHNob3VsZCBiZSByZWFkXG4gICAgICogQHBhcmFtIGFsbG93ZWRleHRlbnNpb25zIEFsbG93ZWQgZmlsZSBleHRlbnNpb25zXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSBmaWxlIHJlc3BvbnNlXG4gICAgICovXG4gICAgcHVibGljIEdldEZpbGVzKGFwaXVybDogc3RyaW5nLCBwYXRoOiBzdHJpbmcsIGFsbG93ZWRleHRlbnNpb25zOiBzdHJpbmcpOiBPYnNlcnZhYmxlPElCcm93c2VyRmlsZVJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke2FwaXVybH0vZ2V0ZmlsZXNgO1xuXG4gICAgICAgIGlmICghcGF0aCkge1xuICAgICAgICAgICAgcGF0aCA9ICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IG5ldyBCcm93c2VyTm9kZVJlcXVlc3Qoe1xuICAgICAgICAgICAgUGF0aDogcGF0aCxcbiAgICAgICAgICAgIEFsbG93ZWRUeXBlczogYWxsb3dlZGV4dGVuc2lvbnMsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBjbGllbnQucG9zdDxJQnJvd3NlckZpbGVSZXNwb25zZT4odXJsLCByZXF1ZXN0LCB7XG4gICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYSBub2RlXG4gICAgICogQHBhcmFtIGFwaXVybCBVUkwgdG8gQVBJIFNlcnZpY2VcbiAgICAgKiBAcGFyYW0gcGF0aCBQYXRoIG9mIHRoZSBub2RlIGJlaW5nIHJlcXVlc3RlZFxuICAgICAqIEBwYXJhbSBhbGxvd2VkZXh0ZW5zaW9ucyBBbGxvd2VkIGV4dGVuc2lvbnMgdGhhdCBtYXkgYmUgZGlzcGxheWVkXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSBub2RlIHJlc3BvbnNlXG4gICAgICovXG4gICAgcHVibGljIEdldE5vZGUoYXBpdXJsOiBzdHJpbmcsIHBhdGg6IHN0cmluZywgYWxsb3dlZGV4dGVuc2lvbnM6IHN0cmluZyk6IE9ic2VydmFibGU8SUJyb3dzZXJOb2RlUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7YXBpdXJsfS9nZXRub2Rlc2A7XG5cbiAgICAgICAgaWYgKCFwYXRoKSB7XG4gICAgICAgICAgICBwYXRoID0gJyc7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZXF1ZXN0ID0gbmV3IEJyb3dzZXJOb2RlUmVxdWVzdCh7XG4gICAgICAgICAgICBQYXRoOiBwYXRoLFxuICAgICAgICAgICAgQWxsb3dlZFR5cGVzOiBhbGxvd2VkZXh0ZW5zaW9ucyxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cGNsaWVudC5wb3N0PElCcm93c2VyTm9kZVJlc3BvbnNlPih1cmwsIHJlcXVlc3QsIHtcbiAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kIHRoYXQgcmVuYW1lcyBhIGZpbGVcbiAgICAgKiBAcGFyYW0gYXBpdXJsIFVSTCB0byBBUEkgU2VydmljZVxuICAgICAqIEBwYXJhbSBwYXRoIFBhdGggdG8gdGhlIGZpbGUgdG8gYmUgcmVuYW1lZFxuICAgICAqIEBwYXJhbSBuZXdGaWxlbmFtZSBOZXcgZmlsZW5hbWVcbiAgICAgKiBAcGFyYW0gYWxsb3dlZGV4dGVuc2lvbnMgQWxsb3dlZCBleHRlbnNpb24gZm9yIGZpbGVzXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSBmaWxlIHJlc3BvbnNlIGFmdGVyIHJlbmFtZVxuICAgICAqL1xuICAgIHB1YmxpYyBSZW5hbWVGaWxlKFxuICAgICAgICBhcGl1cmw6IHN0cmluZyxcbiAgICAgICAgcGF0aDogc3RyaW5nLFxuICAgICAgICBuZXdGaWxlbmFtZTogc3RyaW5nLFxuICAgICAgICBhbGxvd2VkZXh0ZW5zaW9uczogc3RyaW5nXG4gICAgKTogT2JzZXJ2YWJsZTxJQnJvd3NlckZpbGVSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCB1cmwgPSBgJHthcGl1cmx9L3JlbmFtZWZpbGVgO1xuXG4gICAgICAgIGlmICghcGF0aCkge1xuICAgICAgICAgICAgcGF0aCA9ICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IG5ldyBCcm93c2VyRmlsZVJlbmFtZVJlcXVlc3Qoe1xuICAgICAgICAgICAgUGF0aDogcGF0aCxcbiAgICAgICAgICAgIE5ld0ZpbGVuYW1lOiBuZXdGaWxlbmFtZSxcbiAgICAgICAgICAgIEFsbG93ZWRUeXBlczogYWxsb3dlZGV4dGVuc2lvbnMsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBjbGllbnQucHV0PElCcm93c2VyRmlsZVJlc3BvbnNlPih1cmwsIHJlcXVlc3QsIHtcbiAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVuYW1lIGEgbm9kZVxuICAgICAqIEBwYXJhbSBhcGl1cmwgVVJMIHRvIEFQSSBTZXJ2aWNlXG4gICAgICogQHBhcmFtIHBhdGggUGF0aCBvZiB0aGUgbm9kZSB0byBiZSByZW5hbWVkXG4gICAgICogQHBhcmFtIG5ld0ZvbGRlcm5hbWUgTmV3IG5hbWUgb2YgdGhlIG5vZGVcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIGNvbnRhaW5pbmcgdGhlIG5vZGUgcmVzcG9uc2UgYWZ0ZXIgcmVuYW1lXG4gICAgICovXG4gICAgcHVibGljIFJlbmFtZU5vZGUoYXBpdXJsOiBzdHJpbmcsIHBhdGg6IHN0cmluZywgbmV3Rm9sZGVybmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxJQnJvd3Nlck5vZGVSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCB1cmwgPSBgJHthcGl1cmx9L3JlbmFtZW5vZGVgO1xuXG4gICAgICAgIGlmICghcGF0aCkge1xuICAgICAgICAgICAgcGF0aCA9ICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IG5ldyBCcm93c2VyTm9kZVJlbmFtZVJlcXVlc3Qoe1xuICAgICAgICAgICAgUGF0aDogcGF0aCxcbiAgICAgICAgICAgIE5ld0ZvbGRlcm5hbWU6IG5ld0ZvbGRlcm5hbWUsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBjbGllbnQucHV0PElCcm93c2VyTm9kZVJlc3BvbnNlPih1cmwsIHJlcXVlc3QsIHtcbiAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2F2ZXMgYW4gdXBsb2FkZWQgZmlsZSBpbiB0aGUgc3RydWN0dXJlXG4gICAgICogQHBhcmFtIGFwaXVybCBVUkwgdG8gQVBJIFNlcnZpY2VcbiAgICAgKiBAcGFyYW0gcGF0aCBQYXRoIHdoZXJlIHRoZSBuZXcgZmlsZSBzaG91bGQgYmUgc2F2ZWRcbiAgICAgKiBAcGFyYW0gaWQgSUQgb2YgdGhlIHVwbG9hZFxuICAgICAqIEBwYXJhbSBhbGxvd2VkZXh0ZW5zaW9ucyBBbGxvd2VkIGV4dGVuc2lvbnMgZm9yIHRoZSB1cGxvYWRcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIGNvbnRhaW5pbmcgdGhlIGZpbGUgcmVzcG9uc2UgYWZ0ZXIgc2F2ZVxuICAgICAqL1xuICAgIHB1YmxpYyBTYXZlRmlsZShcbiAgICAgICAgYXBpdXJsOiBzdHJpbmcsXG4gICAgICAgIHBhdGg6IHN0cmluZyxcbiAgICAgICAgaWQ6IHN0cmluZyxcbiAgICAgICAgYWxsb3dlZGV4dGVuc2lvbnM6IHN0cmluZ1xuICAgICk6IE9ic2VydmFibGU8SUJyb3dzZXJGaWxlUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7YXBpdXJsfS91cGxvYWRmaWxlYDtcblxuICAgICAgICBpZiAoIXBhdGgpIHtcbiAgICAgICAgICAgIHBhdGggPSAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgQnJvd3NlckZpbGVTYXZlUmVxdWVzdCh7XG4gICAgICAgICAgICBQYXRoOiBwYXRoLFxuICAgICAgICAgICAgVXBsb2FkSWQ6IGlkLFxuICAgICAgICAgICAgQWxsb3dlZFR5cGVzOiBhbGxvd2VkZXh0ZW5zaW9ucyxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cGNsaWVudC5wb3N0PElCcm93c2VyRmlsZVJlc3BvbnNlPih1cmwsIHJlcXVlc3QsIHtcbiAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2F2ZXMgYSBub2RlXG4gICAgICogQHBhcmFtIGFwaXVybCBVUkwgdG8gQVBJIFNlcnZpY2VcbiAgICAgKiBAcGFyYW0gcGF0aCBQYXRoIHdoZXJlIHRoZSBub2RlIHNob3VsZCBiZSBzYXZlZFxuICAgICAqIEBwYXJhbSBuZXdGb2xkZXJuYW1lIE5hbWUgb2YgdGhlIG5ldyBub2RlXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSBub2RlIHJlc3BvbnNlIGFmdGVyIHNhdmVcbiAgICAgKi9cbiAgICBwdWJsaWMgU2F2ZU5vZGUoYXBpdXJsOiBzdHJpbmcsIHBhdGg6IHN0cmluZywgbmV3Rm9sZGVybmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxJQnJvd3Nlck5vZGVSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCB1cmwgPSBgJHthcGl1cmx9L25ld25vZGVgO1xuXG4gICAgICAgIGlmICghcGF0aCkge1xuICAgICAgICAgICAgcGF0aCA9ICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IG5ldyBCcm93c2VyTm9kZU5ld1JlcXVlc3Qoe1xuICAgICAgICAgICAgUGF0aDogcGF0aCxcbiAgICAgICAgICAgIE5ld0ZvbGRlcm5hbWU6IG5ld0ZvbGRlcm5hbWUsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBjbGllbnQucG9zdDxJQnJvd3Nlck5vZGVSZXNwb25zZT4odXJsLCByZXF1ZXN0LCB7XG4gICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIE1ldGhvZHNcbn1cblxuLy8gI2VuZHJlZ2lvbiBFeHBvcnRlZCBDbGFzc2VzXG4iXX0=
|
|
67
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb3ZfMXlpdXBteHN3bCIsImFjdHVhbENvdmVyYWdlIiwiQnJvd3NlckZpbGVEZWxldGVSZXF1ZXN0IiwiQnJvd3NlckZpbGVSZW5hbWVSZXF1ZXN0IiwiQnJvd3NlckZpbGVTYXZlUmVxdWVzdCIsIkJyb3dzZXJOb2RlRGVsZXRlUmVxdWVzdCIsIkJyb3dzZXJOb2RlTmV3UmVxdWVzdCIsIkJyb3dzZXJOb2RlUmVuYW1lUmVxdWVzdCIsIkJyb3dzZXJOb2RlUmVxdWVzdCIsIkluamVjdGFibGUiLCJJbmplY3Rpb25Ub2tlbiIsIlNBQ0ZJTEVCUk9XU0VSX1NFUlZJQ0UiLCJzIiwiU2FjQWJzdHJhY3RGaWxlQnJvd3NlclNlcnZpY2UiLCJkZXBzIiwidGFyZ2V0IiwiaTAiLCLJtcm1RmFjdG9yeVRhcmdldCIsInByb3ZpZGVkSW4iLCJkZWNvcmF0b3JzIiwiU2FjRGVmYXVsdEZpbGVCcm93c2VyU2VydmljZSIsImNvbnN0cnVjdG9yIiwiaHR0cGNsaWVudCIsImYiLCJEZWxldGVGaWxlIiwiYXBpdXJsIiwicGF0aCIsImFsbG93ZWRleHRlbnNpb25zIiwidXJsIiwiYiIsInJlcXVlc3QiLCJQYXRoIiwiQWxsb3dlZFR5cGVzIiwicG9zdCIsIndpdGhDcmVkZW50aWFscyIsIkRlbGV0ZU5vZGUiLCJHZXRGaWxlcyIsIkdldE5vZGUiLCJSZW5hbWVGaWxlIiwibmV3RmlsZW5hbWUiLCJOZXdGaWxlbmFtZSIsInB1dCIsIlJlbmFtZU5vZGUiLCJuZXdGb2xkZXJuYW1lIiwiTmV3Rm9sZGVybmFtZSIsIlNhdmVGaWxlIiwiaWQiLCJVcGxvYWRJZCIsIlNhdmVOb2RlIiwidG9rZW4iLCJpMSIsIkh0dHBDbGllbnQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy9zZXJ2aWNlcy9zYWMtZmlsZWJyb3dzZXIuc2VydmljZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCcm93c2VyRmlsZURlbGV0ZVJlcXVlc3QgfSBmcm9tICcuLi9jb21wb25lbnRzL2Jyb3dzZXIvbW9kZWxzL2Jyb3dzZXJmaWxlZGVsZXRlcmVxdWVzdCc7XG5pbXBvcnQgeyBCcm93c2VyRmlsZVJlbmFtZVJlcXVlc3QgfSBmcm9tICcuLi9jb21wb25lbnRzL2Jyb3dzZXIvbW9kZWxzL2Jyb3dzZXJmaWxlcmVuYW1lcmVxdWVzdCc7XG5pbXBvcnQgeyBJQnJvd3NlckZpbGVSZXNwb25zZSB9IGZyb20gJy4uL2NvbXBvbmVudHMvYnJvd3Nlci9tb2RlbHMvYnJvd3NlcmZpbGVyZXNwb25zZSc7XG5pbXBvcnQgeyBCcm93c2VyRmlsZVNhdmVSZXF1ZXN0IH0gZnJvbSAnLi4vY29tcG9uZW50cy9icm93c2VyL21vZGVscy9icm93c2VyZmlsZXNhdmVyZXF1ZXN0JztcbmltcG9ydCB7IEJyb3dzZXJOb2RlRGVsZXRlUmVxdWVzdCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYnJvd3Nlci9tb2RlbHMvYnJvd3Nlcm5vZGVkZWxldGVyZXF1ZXN0JztcbmltcG9ydCB7IEJyb3dzZXJOb2RlTmV3UmVxdWVzdCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYnJvd3Nlci9tb2RlbHMvYnJvd3Nlcm5vZGVuZXdyZXF1ZXN0JztcbmltcG9ydCB7IEJyb3dzZXJOb2RlUmVuYW1lUmVxdWVzdCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYnJvd3Nlci9tb2RlbHMvYnJvd3Nlcm5vZGVyZW5hbWVyZXF1ZXN0JztcbmltcG9ydCB7IEJyb3dzZXJOb2RlUmVxdWVzdCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYnJvd3Nlci9tb2RlbHMvYnJvd3Nlcm5vZGVyZXF1ZXN0JztcbmltcG9ydCB7IElCcm93c2VyTm9kZVJlc3BvbnNlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9icm93c2VyL21vZGVscy9icm93c2Vybm9kZXJlc3BvbnNlJztcbmltcG9ydCB7IElTYWNGaWxlQnJvd3NlclNlcnZpY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL0lTYWNGaWxlQnJvd3NlclNlcnZpY2UnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbi8vICNyZWdpb24gVmFyaWFibGVzXG5cbi8qKlxuICogSW5qZWN0aW9uIFRva2VuIGZvciBMYW5ndWFnZSBTZXJ2aWNlXG4gKi9cbmV4cG9ydCBjb25zdCBTQUNGSUxFQlJPV1NFUl9TRVJWSUNFID0gbmV3IEluamVjdGlvblRva2VuPElTYWNGaWxlQnJvd3NlclNlcnZpY2U+KCdGaWxlQnJvd3NlclNlcnZpY2UnKTtcblxuLy8gI2VuZHJlZ2lvbiBWYXJpYWJsZXNcblxuLy8gI3JlZ2lvbiBFeHBvcnRlZCBDbGFzc2VzXG5cbi8qKlxuICogQWJzdHJhY3QgaW1wbGVtZW50YXRpb24gb2YgdGhlIGZpbGUgc2VydmljZSBmb3IgdGhlIGJyb3dzZXIgY29tcG9uZW50XG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNhY0Fic3RyYWN0RmlsZUJyb3dzZXJTZXJ2aWNlIGltcGxlbWVudHMgSVNhY0ZpbGVCcm93c2VyU2VydmljZSB7XG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogRGVsZXRlcyBhIGZpbGVcbiAgICAgKiBAcGFyYW0gYXBpdXJsIFVSTCB0byBBUEkgU2VydmljZVxuICAgICAqIEBwYXJhbSBwYXRoIFBhdGggb2YgdGhlIGZpbGUgdG8gYmUgZGVsZXRlZFxuICAgICAqIEBwYXJhbSBhbGxvd2VkZXh0ZW5zaW9ucyBBbGxvd2VkIGV4dGVuc2lvbnMgZm9yIGZpbGVzXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IERlbGV0ZUZpbGUoXG4gICAgICAgIGFwaXVybDogc3RyaW5nLFxuICAgICAgICBwYXRoOiBzdHJpbmcsXG4gICAgICAgIGFsbG93ZWRleHRlbnNpb25zOiBzdHJpbmdcbiAgICApOiBPYnNlcnZhYmxlPElCcm93c2VyRmlsZVJlc3BvbnNlPjtcblxuICAgIC8qKlxuICAgICAqIERlbGV0ZXMgYSBub2RlXG4gICAgICogQHBhcmFtIGFwaXVybCBVUkwgdG8gQVBJIFNlcnZpY2VcbiAgICAgKiBAcGFyYW0gcGF0aCBQYXRoIG9mIHRoZSBub2RlIHRvIGJlIGRlbGV0ZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgRGVsZXRlTm9kZShhcGl1cmw6IHN0cmluZywgcGF0aDogc3RyaW5nKTogT2JzZXJ2YWJsZTxJQnJvd3Nlck5vZGVSZXNwb25zZT47XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2QgdGhhdCByZWFkcyB0aGUgZmlsZXMgb2YgYSBub2RlXG4gICAgICogQHBhcmFtIGFwaXVybCBVUkwgdG8gQVBJIFNlcnZpY2VcbiAgICAgKiBAcGFyYW0gcGF0aCBQYXRoIG9mIHRoZSBub2RlIGZyb20gd2hpY2ggdGhlIGZpbGVzIHNob3VsZCBiZSByZWFkXG4gICAgICogQHBhcmFtIGFsbG93ZWRleHRlbnNpb25zIEFsbG93ZWQgZmlsZSBleHRlbnNpb25zXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IEdldEZpbGVzKGFwaXVybDogc3RyaW5nLCBwYXRoOiBzdHJpbmcsIGFsbG93ZWRleHRlbnNpb25zOiBzdHJpbmcpOiBPYnNlcnZhYmxlPElCcm93c2VyRmlsZVJlc3BvbnNlPjtcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYSBub2RlXG4gICAgICogQHBhcmFtIGFwaXVybCBVUkwgdG8gQVBJIFNlcnZpY2VcbiAgICAgKiBAcGFyYW0gcGF0aCBQYXRoIG9mIHRoZSBub2RlIGJlaW5nIHJlcXVlc3RlZFxuICAgICAqIEBwYXJhbSBhbGxvd2VkZXh0ZW5zaW9ucyBBbGxvd2VkIGV4dGVuc2lvbnMgdGhhdCBtYXkgYmUgZGlzcGxheWVkXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IEdldE5vZGUoYXBpdXJsOiBzdHJpbmcsIHBhdGg6IHN0cmluZywgYWxsb3dlZGV4dGVuc2lvbnM6IHN0cmluZyk6IE9ic2VydmFibGU8SUJyb3dzZXJOb2RlUmVzcG9uc2U+O1xuXG4gICAgLyoqXG4gICAgICogTWV0aG9kIHRoYXQgcmVuYW1lcyBhIGZpbGVcbiAgICAgKiBAcGFyYW0gYXBpdXJsIFVSTCB0byBBUEkgU2VydmljZVxuICAgICAqIEBwYXJhbSBwYXRoIFBhdGggdG8gdGhlIGZpbGUgdG8gYmUgcmVuYW1lZFxuICAgICAqIEBwYXJhbSBuZXdGaWxlbmFtZSBOZXcgZmlsZW5hbWVcbiAgICAgKiBAcGFyYW0gYWxsb3dlZGV4dGVuc2lvbnMgQWxsb3dlZCBleHRlbnNpb24gZm9yIGZpbGVzXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IFJlbmFtZUZpbGUoXG4gICAgICAgIGFwaXVybDogc3RyaW5nLFxuICAgICAgICBwYXRoOiBzdHJpbmcsXG4gICAgICAgIG5ld0ZpbGVuYW1lOiBzdHJpbmcsXG4gICAgICAgIGFsbG93ZWRleHRlbnNpb25zOiBzdHJpbmdcbiAgICApOiBPYnNlcnZhYmxlPElCcm93c2VyRmlsZVJlc3BvbnNlPjtcblxuICAgIC8qKlxuICAgICAqIFJlbmFtZSBhIG5vZGVcbiAgICAgKiBAcGFyYW0gYXBpdXJsIFVSTCB0byBBUEkgU2VydmljZVxuICAgICAqIEBwYXJhbSBwYXRoIFBhdGggb2YgdGhlIG5vZGUgdG8gYmUgcmVuYW1lZFxuICAgICAqIEBwYXJhbSBuZXdGb2xkZXJuYW1lIE5ldyBuYW1lIG9mIHRoZSBub2RlXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IFJlbmFtZU5vZGUoYXBpdXJsOiBzdHJpbmcsIHBhdGg6IHN0cmluZywgbmV3Rm9sZGVybmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxJQnJvd3Nlck5vZGVSZXNwb25zZT47XG5cbiAgICAvKipcbiAgICAgKiBTYXZlcyBhbiB1cGxvYWRlZCBmaWxlIGluIHRoZSBzdHJ1Y3R1cmVcbiAgICAgKiBAcGFyYW0gYXBpdXJsIFVSTCB0byBBUEkgU2VydmljZVxuICAgICAqIEBwYXJhbSBwYXRoIFBhdGggd2hlcmUgdGhlIG5ldyBmaWxlIHNob3VsZCBiZSBzYXZlZFxuICAgICAqIEBwYXJhbSBpZCBJRCBvZiB0aGUgdXBsb2FkXG4gICAgICogQHBhcmFtIGFsbG93ZWRleHRlbnNpb25zIEFsbG93ZWQgZXh0ZW5zaW9ucyBmb3IgdGhlIHVwbG9hZFxuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBTYXZlRmlsZShcbiAgICAgICAgYXBpdXJsOiBzdHJpbmcsXG4gICAgICAgIHBhdGg6IHN0cmluZyxcbiAgICAgICAgaWQ6IHN0cmluZyxcbiAgICAgICAgYWxsb3dlZGV4dGVuc2lvbnM6IHN0cmluZ1xuICAgICk6IE9ic2VydmFibGU8SUJyb3dzZXJGaWxlUmVzcG9uc2U+O1xuXG4gICAgLyoqXG4gICAgICogU2F2ZXMgYSBub2RlXG4gICAgICogQHBhcmFtIGFwaXVybCBVUkwgdG8gQVBJIFNlcnZpY2VcbiAgICAgKiBAcGFyYW0gcGF0aCBQYXRoIHdoZXJlIHRoZSBub2RlIHNob3VsZCBiZSBzYXZlZFxuICAgICAqIEBwYXJhbSBuZXdGb2xkZXJuYW1lIE5hbWUgb2YgdGhlIG5ldyBub2RlXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IFNhdmVOb2RlKGFwaXVybDogc3RyaW5nLCBwYXRoOiBzdHJpbmcsIG5ld0ZvbGRlcm5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8SUJyb3dzZXJOb2RlUmVzcG9uc2U+O1xuXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgTWV0aG9kc1xufVxuXG4vKipcbiAqIFN0YW5kYXJkIGltcGxlbWVudGF0aW9uIG9mIHRoZSBiYWNrZW5kIHNlcnZpY2UgZm9yIHRoZSBmaWxlIGJyb3dzZXIgY29tcG9uZW50XG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFNhY0RlZmF1bHRGaWxlQnJvd3NlclNlcnZpY2UgZXh0ZW5kcyBTYWNBYnN0cmFjdEZpbGVCcm93c2VyU2VydmljZSB7XG4gICAgLy8gI3JlZ2lvbiBDb25zdHJ1Y3RvcnNcblxuICAgIC8qKlxuICAgICAqIENvbnN0cnVjdG9yXG4gICAgICogQHBhcmFtIGh0dHBjbGllbnQgSFRUUCBDbGllbnQgU2VydmljZVxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cGNsaWVudDogSHR0cENsaWVudCkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gQ29uc3RydWN0b3JzXG5cbiAgICAvLyAjcmVnaW9uIFB1YmxpYyBNZXRob2RzXG5cbiAgICAvKipcbiAgICAgKiBEZWxldGVzIGEgZmlsZVxuICAgICAqIEBwYXJhbSBhcGl1cmwgVVJMIHRvIEFQSSBTZXJ2aWNlXG4gICAgICogQHBhcmFtIHBhdGggUGF0aCBvZiB0aGUgZmlsZSB0byBiZSBkZWxldGVkXG4gICAgICogQHBhcmFtIGFsbG93ZWRleHRlbnNpb25zIEFsbG93ZWQgZXh0ZW5zaW9ucyBmb3IgZmlsZXNcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIGNvbnRhaW5pbmcgdGhlIGZpbGUgcmVzcG9uc2UgYWZ0ZXIgZGVsZXRpb25cbiAgICAgKi9cbiAgICBwdWJsaWMgRGVsZXRlRmlsZShhcGl1cmw6IHN0cmluZywgcGF0aDogc3RyaW5nLCBhbGxvd2VkZXh0ZW5zaW9uczogc3RyaW5nKTogT2JzZXJ2YWJsZTxJQnJvd3NlckZpbGVSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCB1cmwgPSBgJHthcGl1cmx9L2RlbGV0ZWZpbGVgO1xuXG4gICAgICAgIGlmICghcGF0aCkge1xuICAgICAgICAgICAgcGF0aCA9ICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IG5ldyBCcm93c2VyRmlsZURlbGV0ZVJlcXVlc3Qoe1xuICAgICAgICAgICAgUGF0aDogcGF0aCxcbiAgICAgICAgICAgIEFsbG93ZWRUeXBlczogYWxsb3dlZGV4dGVuc2lvbnMsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBjbGllbnQucG9zdDxJQnJvd3NlckZpbGVSZXNwb25zZT4odXJsLCByZXF1ZXN0LCB7XG4gICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlbGV0ZXMgYSBub2RlXG4gICAgICogQHBhcmFtIGFwaXVybCBVUkwgdG8gQVBJIFNlcnZpY2VcbiAgICAgKiBAcGFyYW0gcGF0aCBQYXRoIG9mIHRoZSBub2RlIHRvIGJlIGRlbGV0ZWRcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIGNvbnRhaW5pbmcgdGhlIG5vZGUgcmVzcG9uc2UgYWZ0ZXIgZGVsZXRpb25cbiAgICAgKi9cbiAgICBwdWJsaWMgRGVsZXRlTm9kZShhcGl1cmw6IHN0cmluZywgcGF0aDogc3RyaW5nKTogT2JzZXJ2YWJsZTxJQnJvd3Nlck5vZGVSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCB1cmwgPSBgJHthcGl1cmx9L2RlbGV0ZW5vZGVgO1xuXG4gICAgICAgIGlmICghcGF0aCkge1xuICAgICAgICAgICAgcGF0aCA9ICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IG5ldyBCcm93c2VyTm9kZURlbGV0ZVJlcXVlc3Qoe1xuICAgICAgICAgICAgUGF0aDogcGF0aCxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cGNsaWVudC5wb3N0PElCcm93c2VyTm9kZVJlc3BvbnNlPih1cmwsIHJlcXVlc3QsIHtcbiAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kIHRoYXQgcmVhZHMgdGhlIGZpbGVzIG9mIGEgbm9kZVxuICAgICAqIEBwYXJhbSBhcGl1cmwgVVJMIHRvIEFQSSBTZXJ2aWNlXG4gICAgICogQHBhcmFtIHBhdGggUGF0aCBvZiB0aGUgbm9kZSBmcm9tIHdoaWNoIHRoZSBmaWxlcyBzaG91bGQgYmUgcmVhZFxuICAgICAqIEBwYXJhbSBhbGxvd2VkZXh0ZW5zaW9ucyBBbGxvd2VkIGZpbGUgZXh0ZW5zaW9uc1xuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGUgY29udGFpbmluZyB0aGUgZmlsZSByZXNwb25zZVxuICAgICAqL1xuICAgIHB1YmxpYyBHZXRGaWxlcyhhcGl1cmw6IHN0cmluZywgcGF0aDogc3RyaW5nLCBhbGxvd2VkZXh0ZW5zaW9uczogc3RyaW5nKTogT2JzZXJ2YWJsZTxJQnJvd3NlckZpbGVSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCB1cmwgPSBgJHthcGl1cmx9L2dldGZpbGVzYDtcblxuICAgICAgICBpZiAoIXBhdGgpIHtcbiAgICAgICAgICAgIHBhdGggPSAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgQnJvd3Nlck5vZGVSZXF1ZXN0KHtcbiAgICAgICAgICAgIFBhdGg6IHBhdGgsXG4gICAgICAgICAgICBBbGxvd2VkVHlwZXM6IGFsbG93ZWRleHRlbnNpb25zLFxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwY2xpZW50LnBvc3Q8SUJyb3dzZXJGaWxlUmVzcG9uc2U+KHVybCwgcmVxdWVzdCwge1xuICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGEgbm9kZVxuICAgICAqIEBwYXJhbSBhcGl1cmwgVVJMIHRvIEFQSSBTZXJ2aWNlXG4gICAgICogQHBhcmFtIHBhdGggUGF0aCBvZiB0aGUgbm9kZSBiZWluZyByZXF1ZXN0ZWRcbiAgICAgKiBAcGFyYW0gYWxsb3dlZGV4dGVuc2lvbnMgQWxsb3dlZCBleHRlbnNpb25zIHRoYXQgbWF5IGJlIGRpc3BsYXllZFxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGUgY29udGFpbmluZyB0aGUgbm9kZSByZXNwb25zZVxuICAgICAqL1xuICAgIHB1YmxpYyBHZXROb2RlKGFwaXVybDogc3RyaW5nLCBwYXRoOiBzdHJpbmcsIGFsbG93ZWRleHRlbnNpb25zOiBzdHJpbmcpOiBPYnNlcnZhYmxlPElCcm93c2VyTm9kZVJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke2FwaXVybH0vZ2V0bm9kZXNgO1xuXG4gICAgICAgIGlmICghcGF0aCkge1xuICAgICAgICAgICAgcGF0aCA9ICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IG5ldyBCcm93c2VyTm9kZVJlcXVlc3Qoe1xuICAgICAgICAgICAgUGF0aDogcGF0aCxcbiAgICAgICAgICAgIEFsbG93ZWRUeXBlczogYWxsb3dlZGV4dGVuc2lvbnMsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBjbGllbnQucG9zdDxJQnJvd3Nlck5vZGVSZXNwb25zZT4odXJsLCByZXF1ZXN0LCB7XG4gICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCB0aGF0IHJlbmFtZXMgYSBmaWxlXG4gICAgICogQHBhcmFtIGFwaXVybCBVUkwgdG8gQVBJIFNlcnZpY2VcbiAgICAgKiBAcGFyYW0gcGF0aCBQYXRoIHRvIHRoZSBmaWxlIHRvIGJlIHJlbmFtZWRcbiAgICAgKiBAcGFyYW0gbmV3RmlsZW5hbWUgTmV3IGZpbGVuYW1lXG4gICAgICogQHBhcmFtIGFsbG93ZWRleHRlbnNpb25zIEFsbG93ZWQgZXh0ZW5zaW9uIGZvciBmaWxlc1xuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGUgY29udGFpbmluZyB0aGUgZmlsZSByZXNwb25zZSBhZnRlciByZW5hbWVcbiAgICAgKi9cbiAgICBwdWJsaWMgUmVuYW1lRmlsZShcbiAgICAgICAgYXBpdXJsOiBzdHJpbmcsXG4gICAgICAgIHBhdGg6IHN0cmluZyxcbiAgICAgICAgbmV3RmlsZW5hbWU6IHN0cmluZyxcbiAgICAgICAgYWxsb3dlZGV4dGVuc2lvbnM6IHN0cmluZ1xuICAgICk6IE9ic2VydmFibGU8SUJyb3dzZXJGaWxlUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7YXBpdXJsfS9yZW5hbWVmaWxlYDtcblxuICAgICAgICBpZiAoIXBhdGgpIHtcbiAgICAgICAgICAgIHBhdGggPSAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgQnJvd3NlckZpbGVSZW5hbWVSZXF1ZXN0KHtcbiAgICAgICAgICAgIFBhdGg6IHBhdGgsXG4gICAgICAgICAgICBOZXdGaWxlbmFtZTogbmV3RmlsZW5hbWUsXG4gICAgICAgICAgICBBbGxvd2VkVHlwZXM6IGFsbG93ZWRleHRlbnNpb25zLFxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwY2xpZW50LnB1dDxJQnJvd3NlckZpbGVSZXNwb25zZT4odXJsLCByZXF1ZXN0LCB7XG4gICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbmFtZSBhIG5vZGVcbiAgICAgKiBAcGFyYW0gYXBpdXJsIFVSTCB0byBBUEkgU2VydmljZVxuICAgICAqIEBwYXJhbSBwYXRoIFBhdGggb2YgdGhlIG5vZGUgdG8gYmUgcmVuYW1lZFxuICAgICAqIEBwYXJhbSBuZXdGb2xkZXJuYW1lIE5ldyBuYW1lIG9mIHRoZSBub2RlXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSBub2RlIHJlc3BvbnNlIGFmdGVyIHJlbmFtZVxuICAgICAqL1xuICAgIHB1YmxpYyBSZW5hbWVOb2RlKGFwaXVybDogc3RyaW5nLCBwYXRoOiBzdHJpbmcsIG5ld0ZvbGRlcm5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8SUJyb3dzZXJOb2RlUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7YXBpdXJsfS9yZW5hbWVub2RlYDtcblxuICAgICAgICBpZiAoIXBhdGgpIHtcbiAgICAgICAgICAgIHBhdGggPSAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgQnJvd3Nlck5vZGVSZW5hbWVSZXF1ZXN0KHtcbiAgICAgICAgICAgIFBhdGg6IHBhdGgsXG4gICAgICAgICAgICBOZXdGb2xkZXJuYW1lOiBuZXdGb2xkZXJuYW1lLFxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwY2xpZW50LnB1dDxJQnJvd3Nlck5vZGVSZXNwb25zZT4odXJsLCByZXF1ZXN0LCB7XG4gICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNhdmVzIGFuIHVwbG9hZGVkIGZpbGUgaW4gdGhlIHN0cnVjdHVyZVxuICAgICAqIEBwYXJhbSBhcGl1cmwgVVJMIHRvIEFQSSBTZXJ2aWNlXG4gICAgICogQHBhcmFtIHBhdGggUGF0aCB3aGVyZSB0aGUgbmV3IGZpbGUgc2hvdWxkIGJlIHNhdmVkXG4gICAgICogQHBhcmFtIGlkIElEIG9mIHRoZSB1cGxvYWRcbiAgICAgKiBAcGFyYW0gYWxsb3dlZGV4dGVuc2lvbnMgQWxsb3dlZCBleHRlbnNpb25zIGZvciB0aGUgdXBsb2FkXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSBmaWxlIHJlc3BvbnNlIGFmdGVyIHNhdmVcbiAgICAgKi9cbiAgICBwdWJsaWMgU2F2ZUZpbGUoXG4gICAgICAgIGFwaXVybDogc3RyaW5nLFxuICAgICAgICBwYXRoOiBzdHJpbmcsXG4gICAgICAgIGlkOiBzdHJpbmcsXG4gICAgICAgIGFsbG93ZWRleHRlbnNpb25zOiBzdHJpbmdcbiAgICApOiBPYnNlcnZhYmxlPElCcm93c2VyRmlsZVJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke2FwaXVybH0vdXBsb2FkZmlsZWA7XG5cbiAgICAgICAgaWYgKCFwYXRoKSB7XG4gICAgICAgICAgICBwYXRoID0gJyc7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZXF1ZXN0ID0gbmV3IEJyb3dzZXJGaWxlU2F2ZVJlcXVlc3Qoe1xuICAgICAgICAgICAgUGF0aDogcGF0aCxcbiAgICAgICAgICAgIFVwbG9hZElkOiBpZCxcbiAgICAgICAgICAgIEFsbG93ZWRUeXBlczogYWxsb3dlZGV4dGVuc2lvbnMsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBjbGllbnQucG9zdDxJQnJvd3NlckZpbGVSZXNwb25zZT4odXJsLCByZXF1ZXN0LCB7XG4gICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNhdmVzIGEgbm9kZVxuICAgICAqIEBwYXJhbSBhcGl1cmwgVVJMIHRvIEFQSSBTZXJ2aWNlXG4gICAgICogQHBhcmFtIHBhdGggUGF0aCB3aGVyZSB0aGUgbm9kZSBzaG91bGQgYmUgc2F2ZWRcbiAgICAgKiBAcGFyYW0gbmV3Rm9sZGVybmFtZSBOYW1lIG9mIHRoZSBuZXcgbm9kZVxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGUgY29udGFpbmluZyB0aGUgbm9kZSByZXNwb25zZSBhZnRlciBzYXZlXG4gICAgICovXG4gICAgcHVibGljIFNhdmVOb2RlKGFwaXVybDogc3RyaW5nLCBwYXRoOiBzdHJpbmcsIG5ld0ZvbGRlcm5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8SUJyb3dzZXJOb2RlUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7YXBpdXJsfS9uZXdub2RlYDtcblxuICAgICAgICBpZiAoIXBhdGgpIHtcbiAgICAgICAgICAgIHBhdGggPSAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgQnJvd3Nlck5vZGVOZXdSZXF1ZXN0KHtcbiAgICAgICAgICAgIFBhdGg6IHBhdGgsXG4gICAgICAgICAgICBOZXdGb2xkZXJuYW1lOiBuZXdGb2xkZXJuYW1lLFxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwY2xpZW50LnBvc3Q8SUJyb3dzZXJOb2RlUmVzcG9uc2U+KHVybCwgcmVxdWVzdCwge1xuICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBNZXRob2RzXG59XG5cbi8vICNlbmRyZWdpb24gRXhwb3J0ZWQgQ2xhc3Nlc1xuIl0sIm1hcHBpbmdzIjoiMnlyQkFxQkE7QUFBQUEsY0FBQSxTQUFBQSxDQUFBLFNBQUFDLGNBQUEsV0FBQUEsY0FBQSxFQUFBRCxjQUFBLEdBckJBLE9BQVNFLHdCQUF3QixLQUFRLHVEQUF1RCxDQUNoRyxPQUFTQyx3QkFBd0IsS0FBUSx1REFBdUQsQ0FFaEcsT0FBU0Msc0JBQXNCLEtBQVEscURBQXFELENBQzVGLE9BQVNDLHdCQUF3QixLQUFRLHVEQUF1RCxDQUNoRyxPQUFTQyxxQkFBcUIsS0FBUSxvREFBb0QsQ0FDMUYsT0FBU0Msd0JBQXdCLEtBQVEsdURBQXVELENBQ2hHLE9BQVNDLGtCQUFrQixLQUFRLGlEQUFpRCxDQUlwRixPQUFTQyxVQUFVLENBQUVDLGNBQWMsS0FBUSxlQUFlLEMseUVBRzFEO0FBRUE7O0dBR0EsTUFBTyxNQUFNLENBQUFDLHNCQUFzQixFQUFBWCxjQUFBLEdBQUFZLENBQUEsTUFBRyxHQUFJLENBQUFGLGNBQWMsQ0FBeUIsb0JBQW9CLENBQUMsRUFFdEc7QUFFQTtBQUVBOztHQU1BLE1BQU0sTUFBZ0IsQ0FBQUcsNkJBQTZCLEMsdUhBQTdCQSw2QkFBNkIsQ0FBQUMsSUFBQSxJQUFBQyxNQUFBLENBQUFDLEVBQUEsQ0FBQUMsZUFBQSxDQUFBUixVQUFBLEksMkhBQTdCSSw2QkFBNkIs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
|