Friday, May 7, 2021

Recent Questions - Unix & Linux Stack Exchange

Recent Questions - Unix & Linux Stack Exchange


Zookeeper systemd service is not running

Posted: 07 May 2021 10:16 AM PDT

I have downloaded Kafka under /opt/kafka directory. I have created a user called kafkaadmin and added him to wheel group so that he can run as root user. Now, I have configured the zookeeper as systemd service and have created a file called zookeeper.service under /etc/systemd/system/zookeeper.properties. Below is the configuration

[Unit]  Requires=network.target remote-fs.target  After=network.target remote-fs.target    [Service]  Type=simple  User=kafkaadmin  Group=wheel  ExecStart=/opt/kafka/bin/zookeeper-server-start.sh -daemon /opt/kafka/config/zookeeper.properties  ExecStop=/opt/kafka/bin/zookeeper-server-stop.sh  Restart=on-abnormal    [Install]  WantedBy=multi-user.target  

When I run the systemctl start zookeeper and then run the journalctl -u zookeeper I get a message stating the service exited

May 07 16:38:29 kafka-node systemd[1]: Started zookeeper.service.  May 07 16:38:29 kafka-node systemd[1]: zookeeper.service: Control process exited, cod>May 07 16:38:29 kafka-node systemd[1]: zookeeper.service: Failed with result 'exit-co>May 07 16:43:41 kafka-node systemd[1]: Started zookeeper.service.  

Where am I going wrong?

Note: I am running the commands with kafkaadmin user and its is prompting me to enter the password

[kafkaadmin@kafka-node kafka]$ systemctl start zookeeper  ==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ====  Authentication is required to start 'zookeeper.service'.  Authenticating as: kafkaadmin  Password:  

How can I trigger an automount after manually unmounting an automounted USB drive?

Posted: 07 May 2021 10:26 AM PDT

I'm running Devuan GNU/Linux Beowulf.

Like many Linux desktop environments these days, when I plug in a USB flash drive, it gets automounted under /media/myusernamehere/XXXX-YYYY.

Now suppose I unmount that (not eject or power down, just unmount); and I want it to be re-automounted, and visible in the file explorer application (e.g. Nemo on Cinnamon).

How can I trigger such an automounting?

Note: This is a systemd-free system.

When I need to make that error appeare

Posted: 07 May 2021 09:46 AM PDT

make ARCH=x86_64 CROSS_COMPILE= -C /lib/modules/5.10.0-kali7-amd64/build M=/var/lib/apt/lists/rtl8812au modules  make[1]: *** /lib/modules/5.10.0-kali7-amd64/build: No such file or directory. Stop.  make: *** [Makefile:2244: modules] Error 2  

This message shown when I need to make when need to install drivers to run alfa any can help.

Access permissions have not been updated in open VNC sessions

Posted: 07 May 2021 09:22 AM PDT

I've updated group access permissions of a directory. Users that belong to authorized group can access the contents of the folder when they login via SSH. However, they cannot access that folder within their VNC session unless the VNC session is killed and started again.

Is there a workaround without killing the current VNC session? The OS is CentOS release 6.10.

I have downloaded NItrux Os (minimal version because I have low bandwidth) and I dont know how to get past this

Posted: 07 May 2021 09:08 AM PDT

enter image description here

I'm really new to Linux and only used only some Linux distros (Manjaro, Elementary, Archcraft, Mint and Garuda) And I find nitrux to 'fit my style' and I can't seem to get past this thing. On Reddit they said it was default i3wm. I'm still waiting for help and I am posting this here hoping to get some response here too. Thanks in advance c:

Harddrive bootable from EFI and BIOS

Posted: 07 May 2021 09:03 AM PDT

I have an external harddrive with Linux loaded onto it that I use with my home PC (BIOS enabled). When I try to boot into this harddrive on my Mac (EFI), it doesn't show up as an option. Is there any way I can reformat the harddrive so that it is bootable both from my PC and Mac machines? I couldn't find much on the web for how I would be able to do this.

Can't drop down to virtual console. All I see are the system login/boot messages (like a bootup screen) - can't type anthing

Posted: 07 May 2021 08:49 AM PDT

Ctrl+Alt+F1 workedgave me access to the console before, now it shows me the boot up and login process messages ("started CUPS, network manager etc.)

The funny thing is my graphical session works but I can't drop down to the console. If anything, it should be the other way around lol, since the latter is used to rescue the former in case of emergencies (well, that's Linux for you).

Does anyone know what's causing this nonsense and how to get the console back?process

Why can my statically compiled ARM binary of BusyBox run on my x86_64 PC? [duplicate]

Posted: 07 May 2021 09:10 AM PDT

Bit of a strange situation there. I compiled a static executable of BusyBox 1.32.1 for the ARM platform (32-bit) and strangely it runs without problems on both platforms. Look by yourself:

root@smallbuntu /m/n/b/i/n/rootfs# readelf -h bin/busybox-initrd  ELF Header:    Magic:   7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00     Class:                             ELF32    Data:                              2's complement, little endian    Version:                           1 (current)    OS/ABI:                            UNIX - System V    ABI Version:                       0    Type:                              EXEC (Executable file)    Machine:                           ARM    Version:                           0x1    Entry point address:               0x1f419    Start of program headers:          52 (bytes into file)    Start of section headers:          1482800 (bytes into file)    Flags:                             0x5000002, Version5 EABI, <unknown>    Size of this header:               52 (bytes)    Size of program headers:           32 (bytes)    Number of program headers:         6    Size of section headers:           40 (bytes)    Number of section headers:         27    Section header string table index: 26  root@smallbuntu /m/n/b/i/n/rootfs#   

then:

root@smallbuntu /m/n/b/i/n/rootfs# bin/busybox-initrd ls  bin         home        media       proc        srv         var  boot        kobo        mnt         root        sys  dev         lib         modules     run         tmp  etc         lost+found  opt         sbin        usr  root@smallbuntu /m/n/b/i/n/rootfs# bin/busybox-initrd uname -a  Linux smallbuntu 5.8.0-50-generic #56-Ubuntu SMP Mon Apr 12 17:18:36 UTC 2021 armv7l GNU/Linux  root@smallbuntu /m/n/b/i/n/rootfs#   

uname -a seems to return armv7l by the busybox binary. Here's the normal output:

Linux smallbuntu 5.8.0-50-generic #56-Ubuntu SMP Mon Apr 12 17:18:36 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux  

Any idea of what's going on?
Thanks!

Debian Apt: architecture not supported by selected mirror

Posted: 07 May 2021 10:03 AM PDT

Today I built a new PC, trying to install latest debian 10.9.0, but it always gets stuck on Apt: architecture not supported by selected mirror, I tried already 3 different mirrors. The PC is connected to the Internet, ping on google.com works.

Might it be because of a relatively new chipset that is not yet supported in stable version of debian ?

HW:

ASUS PRIME H510M-E (Intel H510)  Intel Core i3-10105  8 GB DDR4, 2666 Mhz, DIMM  2x 4TB WD RED Plus  

Mirrors I used:

deb.debian.org  ftp.cz.debian.org  ftp.at.debian.org  

It is stuck on this for past 2 hours and cancel button does not respond:

enter image description here

Coldplug or hotplug device?

Posted: 07 May 2021 09:00 AM PDT

Is there a way given a device file name to figure out if it was created by some udev rule or it was created "the cold way"?

How to put an $ variable inside the printing of a command variable?

Posted: 07 May 2021 09:21 AM PDT

Source part:

if [ $(jq -r '.patch_at' update.json) -ge "4" ]; then      recentlycheckedat=$(echo '('`date +"%s.%N"` ' * 1000000)/1' | bc)      contents="$(jq '.recently_checked_at = "$recentlycheckedat"' update.json)" && \      echo "${contents}" > update.json # have to fix, its literally writing $recentlycheckedat   fi  

It stores the current timestamp as a command on a variable, but this variable can't work inserted in a command inside another variable. How to achieve this? And feel free to edit with an more appropriate title.

Update: full source - https://github.com/DaniellMesquita/Web3Updater

Daemonize prometheus on Amazon EC2 with init.d

Posted: 07 May 2021 08:15 AM PDT

I am attempting to install and run Prometheus on an AWS EC2 instance that is running "Amazon Linux." It's important to note that it is not Amazon Linux 2. We'd like to have Prometheus start with the instance and be manageable as a service, but this flavor of Linux does not have systemd, so requires an init.d script. The system also does not have "start-stop-daemon" installed, and I'd rather not add it. I've been trying to write a script (sorry, I'm new to this stuff), but have not had much success. Here's what I have so far:

#!/bin/sh  ### BEGIN INIT INFO  # Provides:          Prometheus  # Required-Start:    $local_fs $network $named $time $syslog  # Required-Stop:     $local_fs $network $named $time $syslog  # Default-Start:     2 3 4 5  # Default-Stop:      0 1 6  # Description:       Prometheus - Monitoring system & time series database  ### END INIT INFO    EXEC="/opt/prometheus/prometheus --config.file=/etc/prometheus/prometheus.yml --storage.tsdb.path=/var/lib/prometheus --web.console.templates=/etc/prometheus/consoles --web.console.libraries=/etc/prometheus/console_libraries --web.listen-address=0.0.0.0:9090 --web.external-url="  NAME="prometheus"  USER="prometheus"  PIDFILE=/var/run/$name.pid  LOGFILE=/var/log/prometheus/$name.log  LOCKFILE=/var/lock/subsys/$name    # execute init.d functions  . /etc/rc.d/init.d/functions    do_start() {      echo -n "Starting prometheus"      if [ -f $PIDFILE ]; then          pid = `cat $PIDFILE`          echo prometheus already running: $pid          exit 2;      else          daemon --user $USER --pidfile=$PIDFILE $EXEC >> $LOGFILE 2>&1          RETVAL=$?          echo          [ $RETVAL -eq 0 ] && touch $LOCKFILE          return $RETVAL      fi  }    do_stop() {      echo -n "Shutting down prometheus"      echo      killproc -p $PIDFILE $NAME      echo      rm -f $LOCKFILE  }    case "$1" in      start)          do_start          ;;      stop)          do_stop          ;;      status)          status $NAME          ;;      restart)          do_stop          do_start          ;;      *)          echo "Usage: {start|stop|status|restart}"          exit 1          ;;  esac    exit 0  

If I run the script…

sudo /etc/init.d/prometheus start  

…it echoes the "Starting prometheus" message and then hangs. When I break the hanging init.d script, I can find that Prometheus is indeed running (using ps ax), but the PID and log files do not exist.

How do I write this script so it behaves like an init.d script, e.g., firing Prometheus in a separate daemon process? And why aren't my log and PID files working? Again, this is my first time writing an init.d script, thanks for your patience.

Troubleshooting KVM guest's anaconda installer logs

Posted: 07 May 2021 08:01 AM PDT

I am trying to install RHEL7.9 KVM guest on Ubuntu 18.04 Azure VM. The anaconda installer fails due to some error but the virt-viewer screen got closed so fast, I was unable to read what is the exact error. I know all anaconda logs get stored in /tmp/anaconda.log file on the KVM guest disk image but I am unable to figure out a way to check the contents of the file. I tried mounting the KVM guest disk image using "mount -o loop .img " command but it fails with NTFS signature is missing, thats probably because the installation fails before the KVM guest's disk is partitioned properly. I am looking for ways to check the contents of that file. Is there any way to redirect the anaconda logs of the guest machine to the Ubuntu host machine ? Pasting the virt-install script and kickstart file used. The RHEL7.9 installation media was downloaded from https://developers.redhat.com/products/rhel/download site.

virt-install.sh

 virt-install --location /datadrive/iso_images/rhel7.9-dvd.iso \               --disk /datadrive/rhel79-oracle-$1.img,size=40,format=raw \               --os-variant rhel7.0 \               --initrd-inject ./ks-rhel79-oracle.cfg \               --extra-args="ks=file:/ks-rhel79-oracle.cfg" \               --vcpus 2 \               --memory 2048 \               --noreboot \               --name rhel79-oracle-$1               

ks-rhel79-oracle.cfg

#version=DEVEL  # System authorization information  auth --passalgo=sha512 --useshadow    text  firstboot --disable  # Keyboard layouts  keyboard --vckeymap=us --xlayouts='us'  # System language  lang en_US.UTF-8  # Installation logging level  logging --level=debug  # Network information  network  --bootproto=dhcp --device=link --activate  network  --bootproto=dhcp --hostname=Azure-image  # Shutdown after installation  shutdown  # Root password  rootpw --plaintext password  # SELinux configuration  selinux --disabled  # System services  services --enabled="sshd,chronyd"  # Do not configure the X Window System  skipx  # System timezone  timezone US/Eastern  # System bootloader configuration  bootloader --append="rootdelay=60 mpath crashkernel=2048M intel_idle.max_cstate=1 processor.max_cstate=1 transparent_hugepage=never numa_balancing=disable mce=ignore_ce modprobe.blacklist=kvm_intel,kvm,iTCO_wdt,iTCO_vendor_support,sb_edac,edac_core" --location=mbr  # Partition scheme  zerombr  clearpart --all  # Disk partitioning information  part swap --fstype="swap" --size=32768  part / --fstype="xfs" --grow --size=6144    %post --logfile=/root/anaconda-composer.log --erroronfail  # Remove random-seed  rm /var/lib/systemd/random-seed    # Clear /etc/machine-id  rm /etc/machine-id  touch /etc/machine-id  %end    %packages  @base  %end    %addon com_redhat_kdump --enable --reserve-mb=2048    %end  

What does "[ "$foo_user" = 'foo' ] && foo_user='bar' || true" do?

Posted: 07 May 2021 08:34 AM PDT

I found this line in one of our repositories without any comments explaining what it does. I am fixing a bug that I found in this repository and don't know what to make of this line. I am unsure of how to research for this in a time efficient manner, so I'm asking here.

[ "$foo_user" = 'foo' ] && foo_user='bar' || true  

It looks like an if statement that tests if $foo_user='foo' then return true, and then sets foo_user to "bar" if it is not set? I really have no idea what to make of this.

What does this code do?

Need to install the same script across multiple linux servers

Posted: 07 May 2021 07:50 AM PDT

please excuse my ignorance but I am very new to the linux and server management space

Use case scenario -

I have 20 linux servers and I need to install the same package/script across all these servers. The challenge is that during installation of this script, there are few steps where it would prompt for some inputs(such as password, Y/N options, etc..).

Solution researched -

I found some videos on how to use ansible to send commands across multiple remote servers, however the challenge that when the installation is running on the remote server, they would promt to input password or Y/N questions in order for the installation to continue and end on completion.

Question

I could not find a solution that would enable me to do this unless I manually SSH into each of these server and enter the inputs.

Can anyone help me? Also please remember I am very new to this so any help in details would be highly appreciated.

Remove lines from pattern to next empty line

Posted: 07 May 2021 10:31 AM PDT

I need to remove lines from a pattern to the next empty line.

For example:

pets:  - cat  - dog  - fish    fruits:  - apple  - banana  - orange    colors:  - red  - blue  - pink  

And I want to delete all the lines from "fruit" (pattern) to the next empty line, resulting in a file like this:

pets:  - cat  - dog  - fish    colors:  - red  - blue  - pink  

I overwrite /bin/sh how do I restore it?

Posted: 07 May 2021 09:51 AM PDT

I am new to Linux and thought /bin/sh was a folder.

I did mv path/to/file /bin/sh and now I can't open terminal and Ubuntu Software anymore. There are probably more broken programs I haven't noticed yet.

I get the error:

Failed to spawn child process /bin/sh Too many layers of symbolic links

Any advice?

I am running Ubuntu 20.04

Special Characters in bash

Posted: 07 May 2021 07:54 AM PDT

What is the difference between . (or ..) and ~ character with respect to how they are treated by the bash? If i use ~ character, bash expands it to absolute path but if is use . (or ..) bash does not expand it to absolute path?

My pwd is home directory. Now, when i run the command: ls '.' (or ls .) it shows me the contents of the pwd but if i run the command: ls '~', it gives the error that the file or directory does not exists. This means ~ is expanded by shell before passing it to the ls command but . is not. Is . not a special character? When is . (or ..) treated as special character and expanded by the shell?

How to translate a non sugary syntactic shell (Bash) command into "lower" types of code such as assembly or even machine code?

Posted: 07 May 2021 09:19 AM PDT

Please consider:

cd ~  cd $HOME  

I would say that the first command is a possible sugar syntax of the second command, and that the second is less abstract.


Just for the sake of demonstrating how commands can become less and less abstract to newcomers to programming (in the context of explaining what is abstraction), focusing on shell, I ask:
How to translate a non sugary syntactic shell (Bash) command into "lower" types of code such as assembly or even machine code (or to anything coming between, say cd $HOME to its assembly representation)?
What software I could use, perhaps in shell, to achieve this goal to demonstrate how a computer command goes from the simple to the complicated?

How can I set the amount by which the sound keys increase/decrease volume?

Posted: 07 May 2021 10:03 AM PDT

On my laptop, when I press the volumeup/volumedown key, the sound lever go up/down by 10 units.

I can check that with alsamixer: when I press volume up, the sound level indeed go up by 10 points.

But I would like these keys to be less sensible: it would be nice if the level could go up/down by 5 points when I press a key.

I know that these rules are configured in /lib/udev/hwdb.d, but the only thing I found in these files is the use of the "volumeup" and "volumedown" keywords, but not the amount the button increase/decrease.

How could I do that ?

Is there a config file somewhere ?

Edit

I'm on arch, and I would like to know where the config is stored (if there is one)

Block Screen Sharing

Posted: 07 May 2021 09:02 AM PDT

Is there any part of my system that I can block access to from the firefox process on a Linux system that will break screen sharing?

I noticed during a video call that Firefox has the ability to do screen sharing, which means the process can read the contents displayed on my screen.

I don't like the idea of everything on my screen being available to my browser, whats the mechanism behind this?

How to take command arguments from a file, one per line? [duplicate]

Posted: 07 May 2021 10:35 AM PDT

Say I have a file of filenames like this:

requests.log  responses.log  resources used.log  

and I want to view all of those files. I'd be tempted to do:

$ vi `cat /tmp/list`  

but that winds up opening the files "requests.log", "responses.log", "resources", and "used.log" which is not what I want.

I tried

$ cat /tmp/list | xargs -L 99 vi  

but that results in the error message "Warning: input not from a terminal"

I've tried editing the file and quoting each of the individual lines, but that was no help either.

Is there a way to do this short of writing some sort of front-end script?

rsync_xal_set: lremovexattr("/my/path/file.zPXUj1","security.selinux") failed: Permission denied (13)

Posted: 07 May 2021 08:55 AM PDT

I am currently migrating from Ubuntu 20.04 to Fedora 34. Following backup script has worked fine so far:

rsync                        \    -avixXEH                   \    --stats                    \    --delete                   \    --numeric-ids              \    --log-file="$LOG_FILE"     \    --link-dest "$LATEST"      \    --exclude '/some/exclude'  \    admin@nas:/{a,b,c}         \ # source is remote nas (via ssh)    "$TARGET"                  \ # $TARGET is ext. USB disk on fedora OS desktop  

Unfortunately on Fedora, every copied path now results in a warning, polluting the log:

rsync_xal_set: lremovexattr("/my/path/file.zPXUj1","security.selinux") failed: Permission denied (13)

Research

This seems to be an issue with rsync wanting to preserve/erase extended attributes (-X) and SELinux.

Recent quote from Michal Ruprich, Red Hat:

This was 'fixed' in RHEL5 by suppressing the error message so that it does not disrupt running systems. [...]

"rsync-2.6 does not remove extended attribute of target file in the case that this attribute has been erased in the source file. Lets call it bug.

rsync-3.0 correctly tries to remove erased extended attributes.

If the selinux is present on the target system, rsync can't erase security context of file and it outputs mentioned error. The behaviour of 2.6 and 3.0 is therefore identical except the informational error message."

Using rsync 3.2.3 with a non-SELinux source, my interpretation is - please correct me otherwise:

Copying files from a source without SELinux to a target using this security feature is interpreted as deleting the extended "security.selinux" file attribute. And rsync cannot remove it due to SELinux security restrictions on the target.

Which raises the question:

How to suppress these warnings?

I still would like to copy extended attributes with -X and not temporarily disable complete SELinux as suggested here. Also, stumbled over an alternative that suggests setsebool -P rsync_full_access 1 - not sure, what that does exactly.

It really would be nice to solve the problem at its root only for this particular case: Given USB disk mount point /run/media/user/<SOME-UID>, is there some way to grant necessary permissions in SELinux just for this path or similar?

Thanks in advance

A fresh install of snapd and notepad-plus-plus leads to a failure with "unsupported features: snapd2.43"

Posted: 07 May 2021 08:37 AM PDT

On a fresh Debian 10 install, I did :

sudo apt install snapd  sudo snap install notepad-plus-plus  

but I received the message :

error: cannot perform the following tasks:

  • Mount snap "notepad-plus-plus" (260) (snap "notepad-plus-plus" assumes unsupported features: snapd2.43 (try to update snapd and refresh the core snap))

Then, a sudo snap refresh notepad-plus-plus says it is not installed.

but a sudo snap refresh --list returns :

snap list  Name                    Version                     Rev   Tracking  Publisher   Notes  core18                  20210309                    1997  stable    canonical✓  base  gnome-3-28-1804         3.28.0-19-g98f9e67.98f9e67  145   stable    canonical✓  -  gtk-common-themes       0.1-52-gb92ac40             1515  stable    canonical✓  -  wine-platform-5-stable  5.0.3                       16    stable    mmtrt       -  wine-platform-runtime   v1.0                        216   stable    mmtrt       -  

All is looking ok,
and no apt-get update/upgrade or sudo snap refresh find anything to change.
What's the problem ?

How to copy files from windows virtual machine to ubuntu host machine?

Posted: 07 May 2021 10:03 AM PDT

I have ubuntu installed in my work laptop and windows installed in my virtualbox. I installed windows in virtual machine so that I can download origin games on it. I want to copy those origin game files form the windows virtual machine to my ubuntu main host so that I can copy it from ubuntu to my gaming pc later. How should I do it?

Have remind send out notifications some days in advance

Posted: 07 May 2021 09:39 AM PDT

I have been trying to use the Unix program remind, and so far I enjoy the flexibility. I have set up this command to warn me of any upcoming reminders:

~$ remind -z -k'notify-send "Reminder"  "%s"' .reminders/reminders.rem  

It works, but for some reason it doesn't respect remind's feature to start warning some days in advance (it does for minutes though), e.g. reminders like this don't provide output to the command listed in the -k flag:

REM September 28 +5 AT 20:11 +1 Get some foo bar %b  

At this moment, the above example will only trigger notify-send at september 28 one minute before 20:11 (and not any other days for some reason). I would like to trigger notify-send 5 days in advance (in case of this example), and everyday from that. How do I achieve this? (a different syntax is okay too, but others also didn't achieve what I want)

Why ICU lib is so big?

Posted: 07 May 2021 07:47 AM PDT

I'm trying to reduce the size of an embedded system. So I'm studying what I could remove.

One of the biggest file is : libicudata.so.52.1 which length is 23 Mo. This is a big part of my system.

  • I'm using java and apache : are they using libicu ?
  • Why this file is so big ?
  • Is there any alternative library ?

When using apt-get without an internet connection, how does one tell which packages are missing?

Posted: 07 May 2021 08:01 AM PDT

Like many others before me, I'm stuck having to install a package on Ubuntu without having any external internet access to the machine. However, I've already attempted dry-runs and transferred all the packages listed to the archive directory, and yet when I attempt a --no-download --fix-missing install attempt, it fails due to missing packages but does not specify which ones are missing. How do I find out what's missing?

Thanks all.

bcmwl-kernel-source driver issues on install

Posted: 07 May 2021 09:06 AM PDT

I am installing Mint 17.1 (MATE) on my MacBook Pro Retina (due to it having much better hardware than my PC, on which I successfully installed Mint 17.1 in the past).

I followed the instructions from this tutorial.

Everything goes great until the ability to connect to my WiFi. I followed the steps in the tutorial:

From the menu, run Administration -> Driver Manager The Driver Manager warns that it cannot install drivers... (because we're offline) Plug in the Linux Mint USB stick you used to install the operating system. Once it's mounted, press the "OK" button in the Driver Manager to dismiss the warning. Select the "bcmwl-kernel-source" driver Press "Apply changes"

So when I insert the Mint USB, the Warning message does indeed go away, but when I press "Apply Changes" , it shows a loading bar for just a second, but then goes right back to the old selection. I tried restarting it, with no luck.

The funny thing is, when I tried the above method when I was running just from the USB before the install, I was able to select the bcmwl-kernel-source and connect to the WiFi. It was only after the install was successfully completed that I could not repeat this.

Any and all help is really appreciated!

No comments:

Post a Comment