neonmodem
neonmodem copied to clipboard
Remove trailing slash from URLs on `connect`
When a post is being viewed and I type "o" to open the post an extra forward slash is added to the URL. I was able to recreate the issue with multiple lemmy instances.
Would you mind posting your neonmodem.toml
configuration file? The only relevant part is the actual lemmy config, also make sure to remove credentials.
Debug = false Log = '/home/marcos/.cache/neonmodem.log' Proxy = '' Browser = '' RenderShadows = true RenderImages = true
[[Systems]] Type = 'lemmy'
[Systems.Config] proxy = '' url = 'https://iusearchlinux.fyi/'
[Theme] [Theme.Header] [Theme.Header.Selector] Padding = [0, 1, 0, 1] Margin = [0, 0, 0, 0]
[Theme.Header.Selector.Foreground] Light = '#6ca1d0' Dark = '#6ca1d0'
[Theme.Header.Selector.Background] Light = '' Dark = ''
[Theme.Header.Selector.Border] Sides = [true, true, true, true]
[Theme.Header.Selector.Border.Foreground] Light = '#6ca1d0' Dark = '#6ca1d0'
[Theme.Header.Selector.Border.Background] Light = '' Dark = ''
[Theme.Header.Selector.Border.Border] Top = '─' Bottom = '─' Left = '│' Right = '│' TopLeft = '┌' TopRight = '┐' BottomRight = '┘' BottomLeft = '└'
[Theme.DialogBox] [Theme.DialogBox.Window] [Theme.DialogBox.Window.Focused] Padding = [0, 0, 0, 0] Margin = [0, 0, 0, 0]
[Theme.DialogBox.Window.Focused.Foreground] Light = '' Dark = ''
[Theme.DialogBox.Window.Focused.Background] Light = '' Dark = ''
[Theme.DialogBox.Window.Focused.Border] Sides = [false, true, true, true]
[Theme.DialogBox.Window.Focused.Border.Foreground] Light = '#82e4dc' Dark = '#82e4dc'
[Theme.DialogBox.Window.Focused.Border.Background] Light = '' Dark = ''
[Theme.DialogBox.Window.Focused.Border.Border] Top = '━' Bottom = '━' Left = '┃' Right = '┃' TopLeft = '┏' TopRight = '┓' BottomRight = '┛' BottomLeft = '┗'
[Theme.DialogBox.Window.Blurred] Padding = [0, 0, 0, 0] Margin = [0, 0, 0, 0]
[Theme.DialogBox.Window.Blurred.Foreground] Light = '' Dark = ''
[Theme.DialogBox.Window.Blurred.Background] Light = '' Dark = ''
[Theme.DialogBox.Window.Blurred.Border] Sides = [false, true, true, true]
[Theme.DialogBox.Window.Blurred.Border.Foreground] Light = '#cccccc' Dark = '#333333'
[Theme.DialogBox.Window.Blurred.Border.Background] Light = '' Dark = ''
[Theme.DialogBox.Window.Blurred.Border.Border] Top = '━' Bottom = '━' Left = '┃' Right = '┃' TopLeft = '┏' TopRight = '┓' BottomRight = '┛' BottomLeft = '┗'
[Theme.DialogBox.Titlebar] [Theme.DialogBox.Titlebar.Focused] Padding = [0, 1, 0, 1] Margin = [0, 0, 1, 0]
[Theme.DialogBox.Titlebar.Focused.Foreground] Light = '#ffffff' Dark = '#000000'
[Theme.DialogBox.Titlebar.Focused.Background] Light = '#82e4dc' Dark = '#82e4dc'
[Theme.DialogBox.Titlebar.Focused.Border] Sides = []
[Theme.DialogBox.Titlebar.Focused.Border.Foreground] Light = '' Dark = ''
[Theme.DialogBox.Titlebar.Focused.Border.Background] Light = '' Dark = ''
[Theme.DialogBox.Titlebar.Focused.Border.Border] Top = '' Bottom = '' Left = '' Right = '' TopLeft = '' TopRight = '' BottomRight = '' BottomLeft = ''
[Theme.DialogBox.Titlebar.Blurred] Padding = [0, 1, 0, 1] Margin = [0, 0, 1, 0]
[Theme.DialogBox.Titlebar.Blurred.Foreground] Light = '#ffffff' Dark = '#000000'
[Theme.DialogBox.Titlebar.Blurred.Background] Light = '#cccccc' Dark = '#333333'
[Theme.DialogBox.Titlebar.Blurred.Border] Sides = []
[Theme.DialogBox.Titlebar.Blurred.Border.Foreground] Light = '' Dark = ''
[Theme.DialogBox.Titlebar.Blurred.Border.Background] Light = '' Dark = ''
[Theme.DialogBox.Titlebar.Blurred.Border.Border] Top = '' Bottom = '' Left = '' Right = '' TopLeft = '' TopRight = '' BottomRight = '' BottomLeft = ''
[Theme.DialogBox.Bottombar] Padding = [0, 1, 0, 1] Margin = [1, 0, 0, 0]
[Theme.DialogBox.Bottombar.Foreground] Light = '#aaaaaa' Dark = '#999999'
[Theme.DialogBox.Bottombar.Background] Light = '' Dark = ''
[Theme.DialogBox.Bottombar.Border] Sides = []
[Theme.DialogBox.Bottombar.Border.Foreground] Light = '' Dark = ''
[Theme.DialogBox.Bottombar.Border.Background] Light = '' Dark = ''
[Theme.DialogBox.Bottombar.Border.Border] Top = '' Bottom = '' Left = '' Right = '' TopLeft = '' TopRight = '' BottomRight = '' BottomLeft = ''
[Theme.ErrorDialogBox] [Theme.ErrorDialogBox.Window] [Theme.ErrorDialogBox.Window.Focused] Padding = [0, 0, 0, 0] Margin = [0, 0, 0, 0]
[Theme.ErrorDialogBox.Window.Focused.Foreground] Light = '' Dark = ''
[Theme.ErrorDialogBox.Window.Focused.Background] Light = '' Dark = ''
[Theme.ErrorDialogBox.Window.Focused.Border] Sides = [false, true, true, true]
[Theme.ErrorDialogBox.Window.Focused.Border.Foreground] Light = '#dc143c' Dark = '#dc143c'
[Theme.ErrorDialogBox.Window.Focused.Border.Background] Light = '' Dark = ''
[Theme.ErrorDialogBox.Window.Focused.Border.Border] Top = '━' Bottom = '━' Left = '┃' Right = '┃' TopLeft = '┏' TopRight = '┓' BottomRight = '┛' BottomLeft = '┗'
[Theme.ErrorDialogBox.Window.Blurred] Padding = [0, 0, 0, 0] Margin = [0, 0, 0, 0]
[Theme.ErrorDialogBox.Window.Blurred.Foreground] Light = '' Dark = ''
[Theme.ErrorDialogBox.Window.Blurred.Background] Light = '' Dark = ''
[Theme.ErrorDialogBox.Window.Blurred.Border] Sides = [false, true, true, true]
[Theme.ErrorDialogBox.Window.Blurred.Border.Foreground] Light = '#cccccc' Dark = '#333333'
[Theme.ErrorDialogBox.Window.Blurred.Border.Background] Light = '' Dark = ''
[Theme.ErrorDialogBox.Window.Blurred.Border.Border] Top = '━' Bottom = '━' Left = '┃' Right = '┃' TopLeft = '┏' TopRight = '┓' BottomRight = '┛' BottomLeft = '┗'
[Theme.ErrorDialogBox.Titlebar] [Theme.ErrorDialogBox.Titlebar.Focused] Padding = [0, 1, 0, 1] Margin = [0, 0, 1, 0]
[Theme.ErrorDialogBox.Titlebar.Focused.Foreground] Light = '#ffffff' Dark = '#000000'
[Theme.ErrorDialogBox.Titlebar.Focused.Background] Light = '#dc143c' Dark = '#dc143c'
[Theme.ErrorDialogBox.Titlebar.Focused.Border] Sides = []
[Theme.ErrorDialogBox.Titlebar.Focused.Border.Foreground] Light = '' Dark = ''
[Theme.ErrorDialogBox.Titlebar.Focused.Border.Background] Light = '' Dark = ''
[Theme.ErrorDialogBox.Titlebar.Focused.Border.Border] Top = '' Bottom = '' Left = '' Right = '' TopLeft = '' TopRight = '' BottomRight = '' BottomLeft = ''
[Theme.ErrorDialogBox.Titlebar.Blurred] Padding = [0, 1, 0, 1] Margin = [0, 0, 1, 0]
[Theme.ErrorDialogBox.Titlebar.Blurred.Foreground] Light = '#ffffff' Dark = '#000000'
[Theme.ErrorDialogBox.Titlebar.Blurred.Background] Light = '#cccccc' Dark = '#333333'
[Theme.ErrorDialogBox.Titlebar.Blurred.Border] Sides = []
[Theme.ErrorDialogBox.Titlebar.Blurred.Border.Foreground] Light = '' Dark = ''
[Theme.ErrorDialogBox.Titlebar.Blurred.Border.Background] Light = '' Dark = ''
[Theme.ErrorDialogBox.Titlebar.Blurred.Border.Border] Top = '' Bottom = '' Left = '' Right = '' TopLeft = '' TopRight = '' BottomRight = '' BottomLeft = ''
[Theme.ErrorDialogBox.Bottombar] Padding = [0, 1, 0, 1] Margin = [1, 0, 0, 0]
[Theme.ErrorDialogBox.Bottombar.Foreground] Light = '#aaaaaa' Dark = '#999999'
[Theme.ErrorDialogBox.Bottombar.Background] Light = '' Dark = ''
[Theme.ErrorDialogBox.Bottombar.Border] Sides = []
[Theme.ErrorDialogBox.Bottombar.Border.Foreground] Light = '' Dark = ''
[Theme.ErrorDialogBox.Bottombar.Border.Background] Light = '' Dark = ''
[Theme.ErrorDialogBox.Bottombar.Border.Border] Top = '' Bottom = '' Left = '' Right = '' TopLeft = '' TopRight = '' BottomRight = '' BottomLeft = ''
[Theme.PostsList] [Theme.PostsList.List] [Theme.PostsList.List.Focused] Padding = [1, 1, 1, 1] Margin = [0, 0, 0, 0]
[Theme.PostsList.List.Focused.Foreground] Light = '' Dark = ''
[Theme.PostsList.List.Focused.Background] Light = '' Dark = ''
[Theme.PostsList.List.Focused.Border] Sides = [true, true, true, true]
[Theme.PostsList.List.Focused.Border.Foreground] Light = '#82e4dc' Dark = '#82e4dc'
[Theme.PostsList.List.Focused.Border.Background] Light = '' Dark = ''
[Theme.PostsList.List.Focused.Border.Border] Top = '═' Bottom = '═' Left = '║' Right = '║' TopLeft = '╔' TopRight = '╗' BottomRight = '╝' BottomLeft = '╚'
[Theme.PostsList.List.Blurred] Padding = [1, 1, 1, 1] Margin = [0, 0, 0, 0]
[Theme.PostsList.List.Blurred.Foreground] Light = '' Dark = ''
[Theme.PostsList.List.Blurred.Background] Light = '' Dark = ''
[Theme.PostsList.List.Blurred.Border] Sides = [true, true, true, true]
[Theme.PostsList.List.Blurred.Border.Foreground] Light = '#cccccc' Dark = '#333333'
[Theme.PostsList.List.Blurred.Border.Background] Light = '' Dark = ''
[Theme.PostsList.List.Blurred.Border.Border] Top = '═' Bottom = '═' Left = '║' Right = '║' TopLeft = '╔' TopRight = '╗' BottomRight = '╝' BottomLeft = '╚'
[Theme.PostsList.Item] [Theme.PostsList.Item.Focused] Padding = [0, 0, 0, 2] Margin = []
[Theme.PostsList.Item.Focused.Foreground] Light = '#333333' Dark = '#cccccc'
[Theme.PostsList.Item.Focused.Background] Light = '' Dark = ''
[Theme.PostsList.Item.Focused.Border] Sides = []
[Theme.PostsList.Item.Focused.Border.Foreground] Light = '' Dark = ''
[Theme.PostsList.Item.Focused.Border.Background] Light = '' Dark = ''
[Theme.PostsList.Item.Focused.Border.Border] Top = '' Bottom = '' Left = '' Right = '' TopLeft = '' TopRight = '' BottomRight = '' BottomLeft = ''
[Theme.PostsList.Item.Blurred] Padding = [0, 0, 0, 2] Margin = []
[Theme.PostsList.Item.Blurred.Foreground] Light = '#cccccc' Dark = '#333333'
[Theme.PostsList.Item.Blurred.Background] Light = '' Dark = ''
[Theme.PostsList.Item.Blurred.Border] Sides = []
[Theme.PostsList.Item.Blurred.Border.Foreground] Light = '' Dark = ''
[Theme.PostsList.Item.Blurred.Border.Background] Light = '' Dark = ''
[Theme.PostsList.Item.Blurred.Border.Border] Top = '' Bottom = '' Left = '' Right = '' TopLeft = '' TopRight = '' BottomRight = '' BottomLeft = ''
[Theme.PostsList.Item.Selected] Padding = [0, 0, 0, 1] Margin = []
[Theme.PostsList.Item.Selected.Foreground] Light = '#f119a0' Dark = '#f119a0'
[Theme.PostsList.Item.Selected.Background] Light = '' Dark = ''
[Theme.PostsList.Item.Selected.Border] Sides = [false, false, false, true]
[Theme.PostsList.Item.Selected.Border.Foreground] Light = '#ffd500' Dark = '#ffd500'
[Theme.PostsList.Item.Selected.Border.Background] Light = '' Dark = ''
[Theme.PostsList.Item.Selected.Border.Border] Top = '─' Bottom = '─' Left = '│' Right = '│' TopLeft = '┌' TopRight = '┐' BottomRight = '┘' BottomLeft = '└'
[Theme.PostsList.ItemDetail] [Theme.PostsList.ItemDetail.Focused] Padding = [0, 0, 0, 2] Margin = []
[Theme.PostsList.ItemDetail.Focused.Foreground] Light = '#666666' Dark = '#4d4d4d'
[Theme.PostsList.ItemDetail.Focused.Background] Light = '' Dark = ''
[Theme.PostsList.ItemDetail.Focused.Border] Sides = []
[Theme.PostsList.ItemDetail.Focused.Border.Foreground] Light = '' Dark = ''
[Theme.PostsList.ItemDetail.Focused.Border.Background] Light = '' Dark = ''
[Theme.PostsList.ItemDetail.Focused.Border.Border] Top = '' Bottom = '' Left = '' Right = '' TopLeft = '' TopRight = '' BottomRight = '' BottomLeft = ''
[Theme.PostsList.ItemDetail.Blurred] Padding = [0, 0, 0, 2] Margin = []
[Theme.PostsList.ItemDetail.Blurred.Foreground] Light = '#666666' Dark = '#4d4d4d'
[Theme.PostsList.ItemDetail.Blurred.Background] Light = '' Dark = ''
[Theme.PostsList.ItemDetail.Blurred.Border] Sides = []
[Theme.PostsList.ItemDetail.Blurred.Border.Foreground] Light = '' Dark = ''
[Theme.PostsList.ItemDetail.Blurred.Border.Background] Light = '' Dark = ''
[Theme.PostsList.ItemDetail.Blurred.Border.Border] Top = '' Bottom = '' Left = '' Right = '' TopLeft = '' TopRight = '' BottomRight = '' BottomLeft = ''
[Theme.PostsList.ItemDetail.Selected] Padding = [0, 0, 0, 1] Margin = []
[Theme.PostsList.ItemDetail.Selected.Foreground] Light = '#000000' Dark = '#FFFFFF'
[Theme.PostsList.ItemDetail.Selected.Background] Light = '' Dark = ''
[Theme.PostsList.ItemDetail.Selected.Border] Sides = [false, false, false, true]
[Theme.PostsList.ItemDetail.Selected.Border.Foreground] Light = '#ffd500' Dark = '#ffd500'
[Theme.PostsList.ItemDetail.Selected.Border.Background] Light = '' Dark = ''
[Theme.PostsList.ItemDetail.Selected.Border.Border] Top = '─' Bottom = '─' Left = '│' Right = '│' TopLeft = '┌' TopRight = '┐' BottomRight = '┘' BottomLeft = '└'
[Theme.PopupList] [Theme.PopupList.List] [Theme.PopupList.List.Focused] Padding = [1, 1, 1, 1] Margin = [0, 0, 0, 0]
[Theme.PopupList.List.Focused.Foreground] Light = '' Dark = ''
[Theme.PopupList.List.Focused.Background] Light = '' Dark = ''
[Theme.PopupList.List.Focused.Border] Sides = [true, true, true, true]
[Theme.PopupList.List.Focused.Border.Foreground] Light = '#82e4dc' Dark = '#82e4dc'
[Theme.PopupList.List.Focused.Border.Background] Light = '' Dark = ''
[Theme.PopupList.List.Focused.Border.Border] Top = ' ' Bottom = ' ' Left = ' ' Right = ' ' TopLeft = ' ' TopRight = ' ' BottomRight = ' ' BottomLeft = ' '
[Theme.PopupList.List.Blurred] Padding = [1, 1, 1, 1] Margin = [0, 0, 0, 0]
[Theme.PopupList.List.Blurred.Foreground] Light = '' Dark = ''
[Theme.PopupList.List.Blurred.Background] Light = '' Dark = ''
[Theme.PopupList.List.Blurred.Border] Sides = [true, true, true, true]
[Theme.PopupList.List.Blurred.Border.Foreground] Light = '#cccccc' Dark = '#333333'
[Theme.PopupList.List.Blurred.Border.Background] Light = '' Dark = ''
[Theme.PopupList.List.Blurred.Border.Border] Top = ' ' Bottom = ' ' Left = ' ' Right = ' ' TopLeft = ' ' TopRight = ' ' BottomRight = ' ' BottomLeft = ' '
[Theme.PopupList.Item] [Theme.PopupList.Item.Focused] Padding = [0, 0, 0, 2] Margin = []
[Theme.PopupList.Item.Focused.Foreground] Light = '#333333' Dark = '#cccccc'
[Theme.PopupList.Item.Focused.Background] Light = '' Dark = ''
[Theme.PopupList.Item.Focused.Border] Sides = []
[Theme.PopupList.Item.Focused.Border.Foreground] Light = '' Dark = ''
[Theme.PopupList.Item.Focused.Border.Background] Light = '' Dark = ''
[Theme.PopupList.Item.Focused.Border.Border] Top = '' Bottom = '' Left = '' Right = '' TopLeft = '' TopRight = '' BottomRight = '' BottomLeft = ''
[Theme.PopupList.Item.Blurred] Padding = [0, 0, 0, 2] Margin = []
[Theme.PopupList.Item.Blurred.Foreground] Light = '#cccccc' Dark = '#333333'
[Theme.PopupList.Item.Blurred.Background] Light = '' Dark = ''
[Theme.PopupList.Item.Blurred.Border] Sides = []
[Theme.PopupList.Item.Blurred.Border.Foreground] Light = '' Dark = ''
[Theme.PopupList.Item.Blurred.Border.Background] Light = '' Dark = ''
[Theme.PopupList.Item.Blurred.Border.Border] Top = '' Bottom = '' Left = '' Right = '' TopLeft = '' TopRight = '' BottomRight = '' BottomLeft = ''
[Theme.PopupList.Item.Selected] Padding = [0, 0, 0, 1] Margin = []
[Theme.PopupList.Item.Selected.Foreground] Light = '#f119a0' Dark = '#f119a0'
[Theme.PopupList.Item.Selected.Background] Light = '' Dark = ''
[Theme.PopupList.Item.Selected.Border] Sides = [false, false, false, true]
[Theme.PopupList.Item.Selected.Border.Foreground] Light = '#ffd500' Dark = '#ffd500'
[Theme.PopupList.Item.Selected.Border.Background] Light = '' Dark = ''
[Theme.PopupList.Item.Selected.Border.Border] Top = '─' Bottom = '─' Left = '│' Right = '│' TopLeft = '┌' TopRight = '┐' BottomRight = '┘' BottomLeft = '└'
[Theme.PopupList.ItemDetail] [Theme.PopupList.ItemDetail.Focused] Padding = [0, 0, 0, 2] Margin = []
[Theme.PopupList.ItemDetail.Focused.Foreground] Light = '#666666' Dark = '#4d4d4d'
[Theme.PopupList.ItemDetail.Focused.Background] Light = '' Dark = ''
[Theme.PopupList.ItemDetail.Focused.Border] Sides = []
[Theme.PopupList.ItemDetail.Focused.Border.Foreground] Light = '' Dark = ''
[Theme.PopupList.ItemDetail.Focused.Border.Background] Light = '' Dark = ''
[Theme.PopupList.ItemDetail.Focused.Border.Border] Top = '' Bottom = '' Left = '' Right = '' TopLeft = '' TopRight = '' BottomRight = '' BottomLeft = ''
[Theme.PopupList.ItemDetail.Blurred] Padding = [0, 0, 0, 2] Margin = []
[Theme.PopupList.ItemDetail.Blurred.Foreground] Light = '#666666' Dark = '#4d4d4d'
[Theme.PopupList.ItemDetail.Blurred.Background] Light = '' Dark = ''
[Theme.PopupList.ItemDetail.Blurred.Border] Sides = []
[Theme.PopupList.ItemDetail.Blurred.Border.Foreground] Light = '' Dark = ''
[Theme.PopupList.ItemDetail.Blurred.Border.Background] Light = '' Dark = ''
[Theme.PopupList.ItemDetail.Blurred.Border.Border] Top = '' Bottom = '' Left = '' Right = '' TopLeft = '' TopRight = '' BottomRight = '' BottomLeft = ''
[Theme.PopupList.ItemDetail.Selected] Padding = [0, 0, 0, 1] Margin = []
[Theme.PopupList.ItemDetail.Selected.Foreground] Light = '#000000' Dark = '#FFFFFF'
[Theme.PopupList.ItemDetail.Selected.Background] Light = '' Dark = ''
[Theme.PopupList.ItemDetail.Selected.Border] Sides = [false, false, false, true]
[Theme.PopupList.ItemDetail.Selected.Border.Foreground] Light = '#ffd500' Dark = '#ffd500'
[Theme.PopupList.ItemDetail.Selected.Border.Background] Light = '' Dark = ''
[Theme.PopupList.ItemDetail.Selected.Border.Border] Top = '─' Bottom = '─' Left = '│' Right = '│' TopLeft = '┌' TopRight = '┐' BottomRight = '┘' BottomLeft = '└'
[Theme.Post] [Theme.Post.Author] Padding = [0, 1, 0, 1] Margin = []
[Theme.Post.Author.Foreground] Light = '#f119a0' Dark = '#f119a0'
[Theme.Post.Author.Background] Light = '' Dark = ''
[Theme.Post.Author.Border] Sides = []
[Theme.Post.Author.Border.Foreground] Light = '' Dark = ''
[Theme.Post.Author.Border.Background] Light = '' Dark = ''
[Theme.Post.Author.Border.Border] Top = '' Bottom = '' Left = '' Right = '' TopLeft = '' TopRight = '' BottomRight = '' BottomLeft = ''
[Theme.Post.Subject] Padding = [0, 1, 0, 1] Margin = []
[Theme.Post.Subject.Foreground] Light = '#FFFFFF' Dark = '#FFFFFF'
[Theme.Post.Subject.Background] Light = '#f119a0' Dark = '#f119a0'
[Theme.Post.Subject.Border] Sides = []
[Theme.Post.Subject.Border.Foreground] Light = '' Dark = ''
[Theme.Post.Subject.Border.Background] Light = '' Dark = ''
[Theme.Post.Subject.Border.Border] Top = '' Bottom = '' Left = '' Right = '' TopLeft = '' TopRight = '' BottomRight = '' BottomLeft = ''
[Theme.Reply] [Theme.Reply.Author] Padding = [0, 1, 0, 1] Margin = []
[Theme.Reply.Author.Foreground] Light = '#000000' Dark = '#00000'
[Theme.Reply.Author.Background] Light = '#ffd500' Dark = '#ffd500'
[Theme.Reply.Author.Border] Sides = []
[Theme.Reply.Author.Border.Foreground] Light = '' Dark = ''
[Theme.Reply.Author.Border.Background] Light = '' Dark = ''
[Theme.Reply.Author.Border.Border] Top = '' Bottom = '' Left = '' Right = '' TopLeft = '' TopRight = '' BottomRight = '' BottomLeft = ''
It looks like when I added the lemmy server i added a "/" at the end of the URL (ie 'https://iusearchlinux.fyi/'). When I added it again without the extra "/" ('https://iusearchlinux.fyi') it worked fine.
Heh, yup, that was my guess as well. Although that's something that could still be fixed, by automagically removing the trailing slash on connect
, so that this won't happen in first place. Hence let me quickly re-open and rename this issue!