Your message dated Tue, 25 Sep 2018 08:25:17 +0200 with message-id <20180925062517.ohhor7mk6sx2u...@toy.home.lxtec.de> and subject line Re: [Pkg-alsa-devel] Bug#675857: pulseaudio creates .config/pulse in a root directory has caused the Debian Bug report #675857, regarding /etc/init.d/alsa-utils creates /.config/pulse under sysvinit to be marked as done.
This means that you claim that the problem has been dealt with. If this is not the case it is now your responsibility to reopen the Bug report if necessary, and/or fix the problem forthwith. (NB: If you are a system administrator and have no idea what this message is talking about, this may indicate a serious mail system misconfiguration somewhere. Please contact ow...@bugs.debian.org immediately.) -- 675857: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=675857 Debian Bug Tracking System Contact ow...@bugs.debian.org with problems
--- Begin Message ---Package: pulseaudio Version: 5.0-4 Severity: normal I haven't notices when exactly does this happen, but after a while, I see a /.config directory with pulseaudio config inside. Happens on at least two different machines with slightly different versions and different configurations. -- Package-specific info: File '/etc/default/pulseaudio' does not exist -- System Information: Debian Release: wheezy/sid APT prefers unstable APT policy: (500, 'unstable'), (500, 'stable'), (1, 'experimental') Architecture: i386 (i686) Kernel: Linux 3.12-1-686-pae (SMP w/4 CPU cores) Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8) (ignored: LC_ALL set to en_GB.UTF-8) Shell: /bin/sh linked to /bin/mksh Versions of packages pulseaudio depends on: ii adduser 3.112+nmu1 ii libasound2 1.0.27.2-3 ii libasound2-plugins 1.0.24-2 ii libc6 2.19-13 ii libcap2 1:2.24-6 ii libdbus-1-3 1.6.18-1 ii libfftw3-single3 3.3.3-5 ii libgcc1 1:4.9.2-7 ii libice6 2:1.0.5-1 ii libltdl7 2.4.2-1 ii liborc-0.4-0 1:0.4.21-1 ii libpulse0 5.0-4 ii libsamplerate0 0.1.7-2 ii libsm6 2:1.1.0-2 ii libsndfile1 1.0.25-9 ii libspeexdsp1 1.2~rc1-1 ii libstdc++6 4.9.2-7 ii libsystemd-login0 208-6 ii libtdb1 1.2.12-1 ii libudev1 215-10 ii libwebrtc-audio-processing-0 0.1-2 ii libx11-6 2:1.6.2-3 ii libx11-xcb1 2:1.4.1-4 ii libxcb1 1.10-3+b1 ii libxtst6 2:1.1.0-3 ii lsb-base 4.1+Debian13 ii pulseaudio-utils 5.0-4 ii udev 215-10 Versions of packages pulseaudio recommends: ii pulseaudio-module-x11 5.0-4 pn rtkit <none> Versions of packages pulseaudio suggests: ii paman 0.9.4-1 pn paprefs <none> ii pavucontrol 2.0-3 ii pavumeter 0.9.3-4 -- Configuration Files: /etc/pulse/default.pa changed: ..nofail ..fail load-module module-device-restore load-module module-stream-restore load-module module-card-restore load-module module-augment-properties load-module module-switch-on-port-available load-module module-alsa-sink device=dmix load-module module-alsa-source device=dsnoop ..ifexists module-udev-detect.so ..else load-module module-detect ..endif ..ifexists module-jackdbus-detect.so ..nofail load-module module-jackdbus-detect channels=2 ..fail ..endif ..ifexists module-bluetooth-policy.so load-module module-bluetooth-policy ..endif ..ifexists module-bluetooth-discover.so load-module module-bluetooth-discover ..endif ..ifexists module-esound-protocol-unix.so load-module module-esound-protocol-unix ..endif load-module module-native-protocol-unix ..ifexists module-gconf.so ..nofail load-module module-gconf ..fail ..endif load-module module-default-device-restore load-module module-rescue-streams load-module module-always-sink load-module module-intended-roles load-module module-suspend-on-idle load-module module-position-event-sounds load-module module-role-cork load-module module-filter-heuristics load-module module-filter-apply ..ifexists module-x11-publish.so load-module module-x11-publish ..endif -- no debconf information# This file is part of PulseAudio. # # PulseAudio is free software; you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # PulseAudio is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with PulseAudio; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 # USA. ## Configuration file for PulseAudio clients. See pulse-client.conf(5) for ## more information. Default values are commented out. Use either ; or # for ## commenting. ; default-sink = ; default-source = ; default-server = ; default-dbus-server = ; autospawn = yes ; daemon-binary = /usr/bin/pulseaudio ; extra-arguments = --log-target=syslog ; cookie-file = ; enable-shm = yes ; shm-size-bytes = 0 # setting this 0 will use the system-default, usually 64 MiB ; auto-connect-localhost = no ; auto-connect-display = no# This file is part of PulseAudio. # # PulseAudio is free software; you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # PulseAudio is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with PulseAudio; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 # USA. ## Configuration file for the PulseAudio daemon. See pulse-daemon.conf(5) for ## more information. Default values are commented out. Use either ; or # for ## commenting. ; daemonize = no ; fail = yes ; allow-module-loading = yes ; allow-exit = yes ; use-pid-file = yes ; system-instance = no ; local-server-type = user ; enable-shm = yes ; shm-size-bytes = 0 # setting this 0 will use the system-default, usually 64 MiB ; lock-memory = no ; cpu-limit = no ; high-priority = yes ; nice-level = -11 ; realtime-scheduling = yes ; realtime-priority = 5 ; exit-idle-time = 20 ; scache-idle-time = 20 ; dl-search-path = (depends on architecture) ; load-default-script-file = yes ; default-script-file = /etc/pulse/default.pa ; log-target = auto ; log-level = notice ; log-meta = no ; log-time = no ; log-backtrace = 0 # resample-method defaults to speex-float-1 on most architectures, # speex-fixed-1 on ARM ; resample-method = speex-float-1 ; enable-remixing = yes ; enable-lfe-remixing = no ; flat-volumes = yes ; rlimit-fsize = -1 ; rlimit-data = -1 ; rlimit-stack = -1 ; rlimit-core = -1 ; rlimit-as = -1 ; rlimit-rss = -1 ; rlimit-nproc = -1 ; rlimit-nofile = 256 ; rlimit-memlock = -1 ; rlimit-locks = -1 ; rlimit-sigpending = -1 ; rlimit-msgqueue = -1 ; rlimit-nice = 31 ; rlimit-rtprio = 9 ; rlimit-rttime = 1000000 ; default-sample-format = s16le ; default-sample-rate = 44100 ; alternate-sample-rate = 48000 ; default-sample-channels = 2 ; default-channel-map = front-left,front-right ; default-fragments = 4 ; default-fragment-size-msec = 25 ; enable-deferred-volume = yes ; deferred-volume-safety-margin-usec = 8000 ; deferred-volume-extra-delay-usec = 0#!/usr/bin/pulseaudio -nF # # This file is part of PulseAudio. # # PulseAudio is free software; you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # PulseAudio is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with PulseAudio; if not, write to the Free Software Foundation, # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. # This startup script is used only if PulseAudio is started per-user # (i.e. not in system mode) ..nofail ### Load something into the sample cache #load-sample-lazy x11-bell /usr/share/sounds/gtk-events/activate.wav #load-sample-lazy pulse-hotplug /usr/share/sounds/startup3.wav #load-sample-lazy pulse-coldplug /usr/share/sounds/startup3.wav #load-sample-lazy pulse-access /usr/share/sounds/generic.wav ..fail ### Automatically restore the volume of streams and devices load-module module-device-restore load-module module-stream-restore load-module module-card-restore ### Automatically augment property information from .desktop files ### stored in /usr/share/application load-module module-augment-properties ### Should be after module-*-restore but before module-*-detect load-module module-switch-on-port-available ### Load audio drivers statically ### (it's probably better to not load these drivers manually, but instead ### use module-udev-detect -- see below -- for doing this automatically) load-module module-alsa-sink device=dmix load-module module-alsa-source device=dsnoop #load-module module-oss device="/dev/dsp" sink_name=output source_name=input #load-module module-oss-mmap device="/dev/dsp" sink_name=output source_name=input #load-module module-null-sink #load-module module-pipe-sink ### Automatically load driver modules depending on the hardware available ..ifexists module-udev-detect.so #load-module module-udev-detect ..else ### Use the static hardware detection module (for systems that lack udev support) load-module module-detect ..endif ### Automatically connect sink and source if JACK server is present ..ifexists module-jackdbus-detect.so ..nofail load-module module-jackdbus-detect channels=2 ..fail ..endif ### Automatically load driver modules for Bluetooth hardware ..ifexists module-bluetooth-policy.so load-module module-bluetooth-policy ..endif ..ifexists module-bluetooth-discover.so load-module module-bluetooth-discover ..endif ### Load several protocols ..ifexists module-esound-protocol-unix.so load-module module-esound-protocol-unix ..endif load-module module-native-protocol-unix ### Network access (may be configured with paprefs, so leave this commented ### here if you plan to use paprefs) #load-module module-esound-protocol-tcp #load-module module-native-protocol-tcp #load-module module-zeroconf-publish ### Load the RTP receiver module (also configured via paprefs, see above) #load-module module-rtp-recv ### Load the RTP sender module (also configured via paprefs, see above) #load-module module-null-sink sink_name=rtp format=s16be channels=2 rate=44100 sink_properties="device.description='RTP Multicast Sink'" #load-module module-rtp-send source=rtp.monitor ### Load additional modules from GConf settings. This can be configured with the paprefs tool. ### Please keep in mind that the modules configured by paprefs might conflict with manually ### loaded modules. ..ifexists module-gconf.so ..nofail load-module module-gconf ..fail ..endif ### Automatically restore the default sink/source when changed by the user ### during runtime ### NOTE: This should be loaded as early as possible so that subsequent modules ### that look up the default sink/source get the right value load-module module-default-device-restore ### Automatically move streams to the default sink if the sink they are ### connected to dies, similar for sources load-module module-rescue-streams ### Make sure we always have a sink around, even if it is a null sink. load-module module-always-sink ### Honour intended role device property load-module module-intended-roles ### Automatically suspend sinks/sources that become idle for too long load-module module-suspend-on-idle ### If autoexit on idle is enabled we want to make sure we only quit ### when no local session needs us anymore. #.ifexists module-console-kit.so #load-module module-console-kit #.endif #.ifexists module-systemd-login.so #load-module module-systemd-login #.endif ### Enable positioned event sounds load-module module-position-event-sounds ### Cork music/video streams when a phone stream is active load-module module-role-cork ### Modules to allow autoloading of filters (such as echo cancellation) ### on demand. module-filter-heuristics tries to determine what filters ### make sense, and module-filter-apply does the heavy-lifting of ### loading modules and rerouting streams. load-module module-filter-heuristics load-module module-filter-apply # X11 modules should not be started from default.pa so that one daemon # can be shared by multiple sessions. ### Load X11 bell module #load-module module-x11-bell sample=bell-windowing-system ### Register ourselves in the X11 session manager #load-module module-x11-xsmp ### Publish connection data in the X11 root window ..ifexists module-x11-publish.so #.nofail load-module module-x11-publish #.fail ..endif ### Make some devices default #set-default-sink output #set-default-source input#!/usr/bin/pulseaudio -nF # # This file is part of PulseAudio. # # PulseAudio is free software; you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # PulseAudio is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with PulseAudio; if not, write to the Free Software Foundation, # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. # This startup script is used only if PulseAudio is started in system # mode. ### Automatically load driver modules depending on the hardware available ..ifexists module-udev-detect.so load-module module-udev-detect ..else ### Use the static hardware detection module (for systems that lack udev/hal support) load-module module-detect ..endif ### Load several protocols ..ifexists module-esound-protocol-unix.so load-module module-esound-protocol-unix ..endif load-module module-native-protocol-unix ### Automatically restore the volume of streams and devices load-module module-stream-restore load-module module-device-restore ### Automatically restore the default sink/source when changed by the user ### during runtime ### NOTE: This should be loaded as early as possible so that subsequent modules ### that look up the default sink/source get the right value load-module module-default-device-restore ### Automatically move streams to the default sink if the sink they are ### connected to dies, similar for sources load-module module-rescue-streams ### Make sure we always have a sink around, even if it is a null sink. load-module module-always-sink ### Automatically suspend sinks/sources that become idle for too long load-module module-suspend-on-idle ### Enable positioned event sounds load-module module-position-event-soundsnull Discard all samples (playback) or generate zero samples (capture) default:CARD=Intel HDA Intel, 92HD81B1X5 Analog Default Audio Device sysdefault:CARD=Intel HDA Intel, 92HD81B1X5 Analog Default Audio Device front:CARD=Intel,DEV=0 HDA Intel, 92HD81B1X5 Analog Front speakers surround40:CARD=Intel,DEV=0 HDA Intel, 92HD81B1X5 Analog 4.0 Surround output to Front and Rear speakers surround41:CARD=Intel,DEV=0 HDA Intel, 92HD81B1X5 Analog 4.1 Surround output to Front, Rear and Subwoofer speakers surround50:CARD=Intel,DEV=0 HDA Intel, 92HD81B1X5 Analog 5.0 Surround output to Front, Center and Rear speakers surround51:CARD=Intel,DEV=0 HDA Intel, 92HD81B1X5 Analog 5.1 Surround output to Front, Center, Rear and Subwoofer speakers surround71:CARD=Intel,DEV=0 HDA Intel, 92HD81B1X5 Analog 7.1 Surround output to Front, Center, Side, Rear and Woofer speakers hdmi:CARD=Intel,DEV=0 HDA Intel, HDMI 0 HDMI Audio Output hdmi:CARD=Intel,DEV=1 HDA Intel, HDMI 1 HDMI Audio Output hdmi:CARD=Intel,DEV=2 HDA Intel, HDMI 2 HDMI Audio Output default:CARD=pcsp pcsp, pcsp Default Audio Device sysdefault:CARD=pcsp pcsp, pcsp Default Audio Device front:CARD=pcsp,DEV=0 pcsp, pcsp Front speakersbug-pulseaudio-pactl_list_cards.8fI9Pl
Description: inode/emptySink #0 State: SUSPENDED Name: alsa_output.dmix Description: Built-in Audio Driver: module-alsa-sink.c Sample Specification: s32le 2ch 48000Hz Channel Map: front-left,front-right Owner Module: 5 Mute: no Volume: front-left: 65536 / 100% / 0.00 dB, front-right: 65536 / 100% / 0.00 dB balance 0.00 Base Volume: 65536 / 100% / 0.00 dB Monitor Source: alsa_output.dmix.monitor Latency: 0 usec, configured 0 usec Flags: HARDWARE DECIBEL_VOLUME LATENCY Properties: alsa.resolution_bits = "32" device.api = "alsa" device.class = "sound" alsa.class = "generic" alsa.subclass = "generic-mix" alsa.name = "92HD81B1X5 Analog" alsa.id = "92HD81B1X5 Analog" alsa.subdevice = "0" alsa.subdevice_name = "subdevice #0" alsa.device = "0" alsa.card = "0" alsa.card_name = "HDA Intel" alsa.long_card_name = "HDA Intel at 0xf5460000 irq 44" alsa.driver_name = "snd_hda_intel" device.bus_path = "pci-0000:00:1b.0" sysfs.path = "/devices/pci0000:00/0000:00:1b.0/sound/card0" device.bus = "pci" device.vendor.id = "8086" device.vendor.name = "Intel Corporation" device.product.id = "3b57" device.product.name = "5 Series/3400 Series Chipset High Definition Audio" device.form_factor = "internal" device.string = "dmix" device.buffering.buffer_size = "65536" device.buffering.fragment_size = "8192" device.access_mode = "mmap+timer" device.description = "Built-in Audio" device.icon_name = "audio-card-pci" Formats: pcmSource #0 State: SUSPENDED Name: alsa_output.dmix.monitor Description: Monitor of Built-in Audio Driver: module-alsa-sink.c Sample Specification: s32le 2ch 48000Hz Channel Map: front-left,front-right Owner Module: 5 Mute: no Volume: front-left: 65536 / 100% / 0.00 dB, front-right: 65536 / 100% / 0.00 dB balance 0.00 Base Volume: 65536 / 100% / 0.00 dB Monitor of Sink: alsa_output.dmix Latency: 0 usec, configured 0 usec Flags: DECIBEL_VOLUME LATENCY Properties: device.description = "Monitor of Built-in Audio" device.class = "monitor" device.icon_name = "audio-input-microphone" Formats: pcm Source #1 State: SUSPENDED Name: alsa_input.dsnoop Description: Built-in Audio Driver: module-alsa-source.c Sample Specification: s32le 2ch 48000Hz Channel Map: front-left,front-right Owner Module: 6 Mute: no Volume: front-left: 65536 / 100% / 0.00 dB, front-right: 65536 / 100% / 0.00 dB balance 0.00 Base Volume: 65536 / 100% / 0.00 dB Monitor of Sink: n/a Latency: 0 usec, configured 0 usec Flags: HARDWARE DECIBEL_VOLUME LATENCY Properties: alsa.resolution_bits = "32" device.api = "alsa" device.class = "sound" alsa.class = "generic" alsa.subclass = "generic-mix" alsa.name = "92HD81B1X5 Analog" alsa.id = "92HD81B1X5 Analog" alsa.subdevice = "0" alsa.subdevice_name = "subdevice #0" alsa.device = "0" alsa.card = "0" alsa.card_name = "HDA Intel" alsa.long_card_name = "HDA Intel at 0xf5460000 irq 44" alsa.driver_name = "snd_hda_intel" device.bus_path = "pci-0000:00:1b.0" sysfs.path = "/devices/pci0000:00/0000:00:1b.0/sound/card0" device.bus = "pci" device.vendor.id = "8086" device.vendor.name = "Intel Corporation" device.product.id = "3b57" device.product.name = "5 Series/3400 Series Chipset High Definition Audio" device.form_factor = "internal" device.string = "dsnoop" device.buffering.buffer_size = "65536" device.buffering.fragment_size = "8192" device.access_mode = "mmap+timer" device.description = "Built-in Audio" device.icon_name = "audio-input-microphone-pci" Formats: pcmModule #0 Name: module-device-restore Argument: Usage counter: n/a Properties: module.author = "Lennart Poettering" module.description = "Automatically restore the volume/mute state of devices" module.version = "5.0" Module #1 Name: module-stream-restore Argument: Usage counter: n/a Properties: module.author = "Lennart Poettering" module.description = "Automatically restore the volume/mute/device state of streams" module.version = "5.0" Module #2 Name: module-card-restore Argument: Usage counter: n/a Properties: module.author = "Lennart Poettering" module.description = "Automatically restore profile of cards" module.version = "5.0" Module #3 Name: module-augment-properties Argument: Usage counter: n/a Properties: module.author = "Lennart Poettering" module.description = "Augment the property sets of streams with additional static information" module.version = "5.0" Module #4 Name: module-switch-on-port-available Argument: Usage counter: n/a Properties: Module #5 Name: module-alsa-sink Argument: device=dmix Usage counter: 0 Properties: module.author = "Lennart Poettering" module.description = "ALSA Sink" module.version = "5.0" Module #6 Name: module-alsa-source Argument: device=dsnoop Usage counter: 0 Properties: module.author = "Lennart Poettering" module.description = "ALSA Source" module.version = "5.0" Module #7 Name: module-native-protocol-unix Argument: Usage counter: n/a Properties: module.author = "Lennart Poettering" module.description = "Native protocol (UNIX sockets)" module.version = "5.0" Module #8 Name: module-default-device-restore Argument: Usage counter: n/a Properties: module.author = "Lennart Poettering" module.description = "Automatically restore the default sink and source" module.version = "5.0" Module #9 Name: module-rescue-streams Argument: Usage counter: n/a Properties: module.author = "Lennart Poettering" module.description = "When a sink/source is removed, try to move its streams to the default sink/source" module.version = "5.0" Module #10 Name: module-always-sink Argument: Usage counter: n/a Properties: module.author = "Colin Guthrie" module.description = "Always keeps at least one sink loaded even if it's a null one" module.version = "5.0" Module #11 Name: module-intended-roles Argument: Usage counter: n/a Properties: module.author = "Lennart Poettering" module.description = "Automatically set device of streams based on intended roles of devices" module.version = "5.0" Module #12 Name: module-suspend-on-idle Argument: Usage counter: n/a Properties: module.author = "Lennart Poettering" module.description = "When a sink/source is idle for too long, suspend it" module.version = "5.0" Module #13 Name: module-position-event-sounds Argument: Usage counter: n/a Properties: module.author = "Lennart Poettering" module.description = "Position event sounds between L and R depending on the position on screen of the widget triggering them." module.version = "5.0" Module #14 Name: module-role-cork Argument: Usage counter: n/a Properties: module.author = "Lennart Poettering" module.description = "Mute & cork streams with certain roles while others exist" module.version = "5.0" Module #15 Name: module-filter-heuristics Argument: Usage counter: n/a Properties: module.author = "Colin Guthrie" module.description = "Detect when various filters are desirable" module.version = "5.0" Module #16 Name: module-filter-apply Argument: Usage counter: n/a Properties: module.author = "Colin Guthrie" module.description = "Load filter sinks automatically when needed" module.version = "5.0" Module #17 Name: module-x11-publish Argument: Usage counter: n/a Properties: module.author = "Lennart Poettering" module.description = "X11 credential publisher" module.version = "5.0"Server String: unix:/tmp/pulse-2L9K88eMlGn7/native Library Protocol Version: 29 Server Protocol Version: 29 Is Local: yes Client Index: 29 Tile Size: 65496 User Name: andrew Host Name: ileemo Server Name: pulseaudio Server Version: 5.0 Default Sample Specification: s16le 2ch 44100Hz Default Channel Map: front-left,front-right Default Sink: alsa_output.dmix Default Source: alsa_input.dsnoop Cookie: 989d:c5a8
--- End Message ---
--- Begin Message ---Hi gents, * Niels Thykier <ni...@thykier.net> [2018-09-24 06:24 +0000]: [...] > Hi, > > I added a MR on salsa for this issue[1] fixing a missing call to > alsactl. I could not see any (direct) calls to aumix, so these are not > covered. There are some calls to amixer but it does not seem to create > .config if missing despite looking for it. > > Admittedly, Daniel's solution of simply setting HOME is probably easier > to maintain in the long run and less like to "miss" a call. Just for the record: In stable we have 1.1.3-1 which doesn't fit to this bug. Debian alsa pkg maintainers won't fix any older version than that. So I close this bug hereby. BTW stable can run sysvinit very well. Elimar -- Never make anything simple and efficient when a way can be found to make it complex and wonderful ;-)
--- End Message ---