Commit 3659793b authored by Mikhail Tergoev's avatar Mikhail Tergoev

###Scripts version 2056###

parent 922ff25d
История изменений и дальнейшие планы: История изменений и дальнейшие планы:
----------------------------------------- -----------------------------------------
В планах: В планах:
* проверить сохранение настроек DB файлов (версия протона)
* перенести все библиотеки и бинарники добавленые нашим проектом в Portable * перенести все библиотеки и бинарники добавленые нашим проектом в Portable
* добавить проверку на существоваие каталога wine, если таковой нет, предложить стандартную версию, или скачать другую * добавить проверку на существоваие каталога wine, если таковой нет, предложить стандартную версию, или скачать другую
* добавить inxi в runtime и его вывод с аргументом -G в log * добавить inxi в runtime и его вывод с аргументом -G в log
* добавить проверку количества db файлов на один exe * добавить проверку количества db файлов на один exe
* заниматься только развитием проекта за счет вашей подписки на https://boosty.to/portwine-linux.ru * заниматься только развитием проекта за счет вашей подписки на https://boosty.to/portwine-linux.ru
----------------------------------------- -----------------------------------------
###Scripts version 2056###
* исключен xtrem из зависимостей (добавлено использование собственного эмулятора терминала с помощью yad)
* исправлена установка dotnet 4.5+ с помощью winetricks
* HOTFIX - скачивание библиотек и wine на некоторых системах (ТЕСТ)
* обновлен WINE_LOL_GE_6.16-5 со встроенными mono 6.3.0 + gecko 2.47.2
* добавлены эмуляторы duckstation epsxe project64 vba-m yabause (спасибо chal55rus)
* обновлен PROTON_STEAM до версии 6.3-8C_PW1 (обновлены dxvk и vkd3d)
###Scripts version 2055-1### ###Scripts version 2055-1###
* обновлен db AnomalyLauncher * обновлен db AnomalyLauncher
......
...@@ -96,7 +96,8 @@ check_process () { ...@@ -96,7 +96,8 @@ check_process () {
try_download () { try_download () {
set -o pipefail set -o pipefail
wget --no-check-certificate --content-disposition -t 3 -T 5 "$1" --output-document="$2" 2>&1 | \ wget -O "$2" --read-timeout 300 --retry-connrefused --timeout 15 --tries 3 \
--user-agent="Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)" "$1" 2>&1 | \
tr '\r' '\n' | sed -u 's/.* \([0-9]\+%\)\ \+\([0-9,.]\+.\) \(.*\)/\1\n#Downloading at \1\/, \2\/s, ETA \3/; s/^20[0-9][0-9].*/#Done./' | \ tr '\r' '\n' | sed -u 's/.* \([0-9]\+%\)\ \+\([0-9,.]\+.\) \(.*\)/\1\n#Downloading at \1\/, \2\/s, ETA \3/; s/^20[0-9][0-9].*/#Done./' | \
zenity --progress --percentage=0 --title="Download $(basename $1)" --text=Starting... --auto-close --auto-kill --width=500 --height=90 zenity --progress --percentage=0 --title="Download $(basename $1)" --text=Starting... --auto-close --auto-kill --width=500 --height=90
if [ "${PIPESTATUS[0]}" != 0 ] ; then if [ "${PIPESTATUS[0]}" != 0 ] ; then
...@@ -110,7 +111,8 @@ try_download () { ...@@ -110,7 +111,8 @@ try_download () {
try_download_to_path () { try_download_to_path () {
set -o pipefail set -o pipefail
wget --no-check-certificate --content-disposition -t 3 -T 5 "$1" --directory-prefix="$2" 2>&1 | \ wget --directory-prefix="$2" --read-timeout 300 --retry-connrefused --timeout 15 --tries 3 \
--user-agent="Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)" "$1" 2>&1 | \
tr '\r' '\n' | sed -u 's/.* \([0-9]\+%\)\ \+\([0-9,.]\+.\) \(.*\)/\1\n#Downloading at \1\/, \2\/s, ETA \3/; s/^20[0-9][0-9].*/#Done./' | \ tr '\r' '\n' | sed -u 's/.* \([0-9]\+%\)\ \+\([0-9,.]\+.\) \(.*\)/\1\n#Downloading at \1\/, \2\/s, ETA \3/; s/^20[0-9][0-9].*/#Done./' | \
zenity --progress --percentage=0 --title="Download $(basename $1)" --text=Starting... --auto-close --auto-kill --width=500 --height=90 zenity --progress --percentage=0 --title="Download $(basename $1)" --text=Starting... --auto-close --auto-kill --width=500 --height=90
if [ "${PIPESTATUS[0]}" != 0 ] ; then if [ "${PIPESTATUS[0]}" != 0 ] ; then
...@@ -122,7 +124,8 @@ try_download_to_path () { ...@@ -122,7 +124,8 @@ try_download_to_path () {
} }
try_download_silent () { try_download_silent () {
wget --no-check-certificate --content-disposition -t 3 -T 5 "$1" --output-document="$2" wget -O "$2" --read-timeout 300 --retry-connrefused --timeout 15 --tries 3 \
--user-agent="Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)" "$1"
if [ "${PIPESTATUS[0]}" != 0 ] ; then if [ "${PIPESTATUS[0]}" != 0 ] ; then
print_error "failed to download $1. Skipping." print_error "failed to download $1. Skipping."
try_remove_file "$2" try_remove_file "$2"
...@@ -133,7 +136,7 @@ try_download_silent () { ...@@ -133,7 +136,7 @@ try_download_silent () {
} }
zenity_error_download () { zenity_error_download () {
`zenity --error --title "Error..." --text "You will need to check internet connettion,\nand press OK for repeet download" --no-wrap ` `zenity --error --title "Error..." --text "You will need to check internet connection,\nand press OK for repeat download" --no-wrap `
[ "$?" != 0 ] && exit 1 || return 0 [ "$?" != 0 ] && exit 1 || return 0
} }
...@@ -364,7 +367,6 @@ pw_start_progress_bar_block () { ...@@ -364,7 +367,6 @@ pw_start_progress_bar_block () {
} }
pw_stop_progress_bar () { pw_stop_progress_bar () {
try_remove_file "${PORT_WINE_TMP_PATH}/update_pfx_log"
while [ ! -z "`pgrep -a yad | grep "\-\-progress" | awk '{print $1}'`" ] while [ ! -z "`pgrep -a yad | grep "\-\-progress" | awk '{print $1}'`" ]
do kill -n 9 `pgrep -a yad | grep "\-\-progress" | awk '{print $1}' | head -n 1` > /dev/null 2>&1 do kill -n 9 `pgrep -a yad | grep "\-\-progress" | awk '{print $1}' | head -n 1` > /dev/null 2>&1
done done
...@@ -823,11 +825,11 @@ gui_proton_downloader () { ...@@ -823,11 +825,11 @@ gui_proton_downloader () {
try_remove_file "${PORT_WINE_TMP_PATH}/tmp_proton_pw_set" try_remove_file "${PORT_WINE_TMP_PATH}/tmp_proton_pw_set"
try_remove_file "${PORT_WINE_TMP_PATH}/tmp_proton_set" try_remove_file "${PORT_WINE_TMP_PATH}/tmp_proton_set"
try_remove_file "${PORT_WINE_TMP_PATH}/tmp_installed_wine_set" try_remove_file "${PORT_WINE_TMP_PATH}/tmp_installed_wine_set"
`"${pw_yad}" --plug=$KEY_WINE --tabnum=2 --list --cheklist --separator="" --listen \ `"${pw_yad}" --plug=$KEY_WINE --tabnum=2 --list --separator="" --listen \
--column "Select WINE for download:" < "${PORT_WINE_TMP_PATH}/tmp_proton_pw_git" 1> "${PORT_WINE_TMP_PATH}/tmp_proton_pw_set"` & --column "Select WINE for download:" < "${PORT_WINE_TMP_PATH}/tmp_proton_pw_git" 1> "${PORT_WINE_TMP_PATH}/tmp_proton_pw_set"` &
`"${pw_yad}" --plug=$KEY_WINE --tabnum=1 --list --cheklist --separator="" --listen \ `"${pw_yad}" --plug=$KEY_WINE --tabnum=1 --list --separator="" --listen \
--column "Select WINE for download:" < "${PORT_WINE_TMP_PATH}/tmp_proton_ge_git" 1> "${PORT_WINE_TMP_PATH}/tmp_proton_set"` & --column "Select WINE for download:" < "${PORT_WINE_TMP_PATH}/tmp_proton_ge_git" 1> "${PORT_WINE_TMP_PATH}/tmp_proton_set"` &
`"${pw_yad}" --plug=$KEY_WINE --tabnum=3 --list --cheklist --separator="" --listen \ `"${pw_yad}" --plug=$KEY_WINE --tabnum=3 --list --separator="" --listen \
--column "Select installed WINE for delete:" < "${PORT_WINE_TMP_PATH}/tmp_installed_wine" 1> "${PORT_WINE_TMP_PATH}/tmp_installed_wine_set"` & --column "Select installed WINE for delete:" < "${PORT_WINE_TMP_PATH}/tmp_installed_wine" 1> "${PORT_WINE_TMP_PATH}/tmp_installed_wine_set"` &
`"${pw_yad}" --key=$KEY_WINE --notebook --width=500 --height=600 --text-align=center --center \ `"${pw_yad}" --key=$KEY_WINE --notebook --width=500 --height=600 --text-align=center --center \
--window-icon="$PW_GUI_ICON_PATH/port_proton.png" --title "Download..." --separator="" \ --window-icon="$PW_GUI_ICON_PATH/port_proton.png" --title "Download..." --separator="" \
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
#Rating=1-5 #Rating=1-5
################################################ ################################################
export WINEDLLOVERRIDES="galaxycommunication.exe=n;libglesv2=" export WINEDLLOVERRIDES="galaxycommunication.exe=n;libglesv2="
export LAUNCH_PARAMETERS="/runWithoutUpdating /deelevated" export LAUNCH_PARAMETERS=("/runWithoutUpdating" "/deelevated")
export PW_DLL_INSTALL="vcrun2019 mfc140" export PW_DLL_INSTALL="vcrun2019 mfc140"
add_in_start_portwine () add_in_start_portwine ()
{ {
......
...@@ -15,7 +15,7 @@ export PW_COMMENT_DB="${TEXT_OPSSL}Dwnload and start League of Legends can take ...@@ -15,7 +15,7 @@ export PW_COMMENT_DB="${TEXT_OPSSL}Dwnload and start League of Legends can take
##export PW_DLL_INSTALL="vcrun2017" # Install DDL in port prefix (used winetricks) ##export PW_DLL_INSTALL="vcrun2017" # Install DDL in port prefix (used winetricks)
##export WINEDLLOVERRIDES="blabla=n,b" ##export WINEDLLOVERRIDES="blabla=n,b"
export LAUNCH_PARAMETERS=("--launch-product=league_of_legends" "--launch-patchline=live") # Additional launch options export LAUNCH_PARAMETERS=("--launch-product=league_of_legends" "--launch-patchline=live") # Additional launch options
export PW_WINE_USE=WINE_LOL_GE_6.16-3 export PW_WINE_USE=WINE_LOL_GE_6.16-5
export PW_VULKAN_USE=1 export PW_VULKAN_USE=1
export PW_MUST_HAVE_DLL="" export PW_MUST_HAVE_DLL=""
##export PW_USE_DXR10=1 ##export PW_USE_DXR10=1
......
#!/bin/bash
# Author: chal55rus (Sergey P.)
########################################################################
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/duckstation-windows-x64-release.zip"
start_portwine
if try_download "https://github.com/stenzek/duckstation/releases/download/preview/duckstation-windows-x64-release.zip" "${PW_AUTOINSTALL_EXE}"
then
pw_start_progress_bar_block "Installing the VBA-M. Please wait..."
"$pw_7z" x -y "${PW_AUTOINSTALL_EXE}" -o"$WINEPREFIX/drive_c/Program Files (x86)/Duckstation"
portwine_exe="$WINEPREFIX/drive_c/Program Files (x86)/Duckstation/duckstation-qt-x64-ReleaseLTCG.exe"
try_remove_file "${PW_AUTOINSTALL_EXE}"
kill_portwine
pw_stop_progress_bar
export PORTWINE_CREATE_SHORTCUT_NAME="DuckStation"
portwine_create_shortcut
fi
stop_portwine
#!/bin/bash
# Author: chal55rus (Sergey P.)
########################################################################
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/ePSXe205.zip"
start_portwine
if try_download "http://www.epsxe.com/files/ePSXe205.zip" "${PW_AUTOINSTALL_EXE}"
then
pw_start_progress_bar_block "Installing the VBA-M. Please wait..."
"$pw_7z" x -y "${PW_AUTOINSTALL_EXE}" -o"$WINEPREFIX/drive_c/Program Files (x86)/EPSXe"
portwine_exe="$WINEPREFIX/drive_c/Program Files (x86)/EPSXe/ePSXe.exe"
try_remove_file "${PW_AUTOINSTALL_EXE}"
kill_portwine
pw_stop_progress_bar
export PORTWINE_CREATE_SHORTCUT_NAME="ePSXe"
portwine_create_shortcut
fi
stop_portwine
...@@ -6,7 +6,7 @@ export PW_AUTOINSTALL_EXE="${WINEPREFIX}/drive_c/live.na.exe" ...@@ -6,7 +6,7 @@ export PW_AUTOINSTALL_EXE="${WINEPREFIX}/drive_c/live.na.exe"
export LAUNCH_PARAMETERS=("--launch-product=league_of_legends" "--launch-patchline=live") export LAUNCH_PARAMETERS=("--launch-product=league_of_legends" "--launch-patchline=live")
export PW_MUST_HAVE_DLL="" export PW_MUST_HAVE_DLL=""
export PW_VULKAN_USE=1 export PW_VULKAN_USE=1
export PW_WINE_USE=WINE_LOL_GE_6.16-3 export PW_WINE_USE=WINE_LOL_GE_6.16-5
if [ ! -d "${PORT_WINE_PATH}/data/dist/${PW_WINE_USE}" ] ; then if [ ! -d "${PORT_WINE_PATH}/data/dist/${PW_WINE_USE}" ] ; then
if try_download "https://github.com/Castro-Fidel/wine_builds/releases/download/${PW_WINE_USE}/${PW_WINE_USE}.tar.xz" \ if try_download "https://github.com/Castro-Fidel/wine_builds/releases/download/${PW_WINE_USE}/${PW_WINE_USE}.tar.xz" \
......
#!/bin/bash
# Author: chal55rus (Sergey P.)
########################################################################
export LAUNCH_PARAMETERS=("/VERYSILENT")
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/Setup Project64 3.0.1-5664-2df3434.exe"
start_portwine
if try_download "https://www.pj64-emu.com/file/setup-project64-3-0-0-5632-f83bee9/" "${PW_AUTOINSTALL_EXE}"
then
pw_start_progress_bar_block "Installing the Project64. Please wait..."
pw_run "${PW_AUTOINSTALL_EXE}"
portwine_exe="$WINEPREFIX/drive_c/Program Files (x86)/Project64 3.0/Project64.exe"
try_remove_file "${PW_AUTOINSTALL_EXE}"
kill_portwine
pw_stop_progress_bar
export PORTWINE_CREATE_SHORTCUT_NAME="Project64"
portwine_create_shortcut
fi
stop_portwine
#!/bin/bash
# Author: chal55rus (Sergey P.)
########################################################################
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/visualboyadvance-m-Win-64bit.zip"
start_portwine
if try_download "https://github.com/visualboyadvance-m/visualboyadvance-m/releases/download/v2.1.4/visualboyadvance-m-Win-64bit.zip" "${PW_AUTOINSTALL_EXE}"
then
pw_start_progress_bar_block "Installing the VBA-M. Please wait..."
"$pw_7z" x -y "${PW_AUTOINSTALL_EXE}" -o"$WINEPREFIX/drive_c/Program Files (x86)/Visualboyadvance-m"
portwine_exe="$WINEPREFIX/drive_c/Program Files (x86)/Visualboyadvance-m/visualboyadvance-m.exe"
try_remove_file "${PW_AUTOINSTALL_EXE}"
kill_portwine
pw_stop_progress_bar
export PORTWINE_CREATE_SHORTCUT_NAME="VBA-M"
portwine_create_shortcut
fi
stop_portwine
#!/bin/bash
# Author: chal55rus (Sergey P.)
########################################################################
export LAUNCH_PARAMETERS=("/S")
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/yabause-0.9.15-win64.exe"
start_portwine
if try_download "https://download.tuxfamily.org/yabause/releases/0.9.15/yabause-0.9.15-win64.exe" "${PW_AUTOINSTALL_EXE}"
then
pw_start_progress_bar_block "Installing the Yabause. Please wait..."
pw_run "${PW_AUTOINSTALL_EXE}"
portwine_exe="$WINEPREFIX/drive_c/Program Files/yabause 0.9.15/yabause.exe"
try_remove_file "${PW_AUTOINSTALL_EXE}"
kill_portwine
pw_stop_progress_bar
export PORTWINE_CREATE_SHORTCUT_NAME="Yabause"
portwine_create_shortcut
fi
stop_portwine
...@@ -439,7 +439,7 @@ start_portwine () { ...@@ -439,7 +439,7 @@ start_portwine () {
init_wine_ver init_wine_ver
fi fi
${pw_runtime} env PATH="${PATH}" LD_LIBRARY_PATH="${LD_LIBRARY_PATH}" \ ${pw_runtime} env PATH="${PATH}" LD_LIBRARY_PATH="${LD_LIBRARY_PATH}" \
"${PORT_WINE_TMP_PATH}/winetricks" -q -r ${PW_DLL_NEED_INSTALL} &>>"${PORT_WINE_TMP_PATH}/update_pfx_log" "${PORT_WINE_TMP_PATH}/winetricks" -q -r -f ${PW_DLL_NEED_INSTALL} &>>"${PORT_WINE_TMP_PATH}/update_pfx_log"
if [ "${PW_WINE_VER_FROM_DB}" != "${PW_PROTON_STEAM_VER}" ] ; then if [ "${PW_WINE_VER_FROM_DB}" != "${PW_PROTON_STEAM_VER}" ] ; then
export PW_SILENT_RESTART=1 export PW_SILENT_RESTART=1
/bin/bash -c ${pw_full_command_line[*]} & /bin/bash -c ${pw_full_command_line[*]} &
......
...@@ -208,7 +208,14 @@ pw_winetricks () { ...@@ -208,7 +208,14 @@ pw_winetricks () {
init_wine_ver init_wine_ver
cabextract_fix cabextract_fix
start_portwine start_portwine
${PW_TERM} "${PORT_WINE_TMP_PATH}/winetricks" -q -r while [[ -f "${PORT_WINE_TMP_PATH}/update_pfx_log" ]] ; do
sleep 1
while read -r line ; do
echo "# ${line}"
done
done < "${PORT_WINE_TMP_PATH}/update_pfx_log" | "${pw_yad_new}" --text-info --tail --no-buttons --title="WINETRICKS" \
--center --auto-close --skip-taskbar --width=$PW_GIF_SIZE_X --height=$PW_GIF_SIZE_Y &
"${PORT_WINE_TMP_PATH}/winetricks" -q -r -f &>>"${PORT_WINE_TMP_PATH}/update_pfx_log"
stop_portwine stop_portwine
} }
...@@ -345,7 +352,12 @@ else ...@@ -345,7 +352,12 @@ else
--field=" RetroArch"!"$PW_GUI_ICON_PATH/retroarch.png":"BTN" '@bash -c "button_click PW_RETROARCH"' \ --field=" RetroArch"!"$PW_GUI_ICON_PATH/retroarch.png":"BTN" '@bash -c "button_click PW_RETROARCH"' \
--field=" PPSSPP Windows"!"$PW_GUI_ICON_PATH/ppsspp.png":"BTN" '@bash -c "button_click PW_PPSSPP"' \ --field=" PPSSPP Windows"!"$PW_GUI_ICON_PATH/ppsspp.png":"BTN" '@bash -c "button_click PW_PPSSPP"' \
--field=" Citra"!"$PW_GUI_ICON_PATH/citra.png":"BTN" '@bash -c "button_click PW_CITRA"' \ --field=" Citra"!"$PW_GUI_ICON_PATH/citra.png":"BTN" '@bash -c "button_click PW_CITRA"' \
--field=" Cemu"!"$PW_GUI_ICON_PATH/cemu.png":"BTN" '@bash -c "button_click PW_CEMU"' & --field=" Cemu"!"$PW_GUI_ICON_PATH/cemu.png":"BTN" '@bash -c "button_click PW_CEMU"' \
--field=" DuckStation"!"$PW_GUI_ICON_PATH/duckstation.png":"BTN" '@bash -c "button_click PW_DUCKSTATION"' \
--field=" ePSXe"!"$PW_GUI_ICON_PATH/epsxe.png":"BTN" '@bash -c "button_click PW_EPSXE"' \
--field=" Project64"!"$PW_GUI_ICON_PATH/project64.png":"BTN" '@bash -c "button_click PW_PROJECT64"' \
--field=" VBA-M"!"$PW_GUI_ICON_PATH/vba-m.png":"BTN" '@bash -c "button_click PW_VBA-M"' \
--field=" Yabause"!"$PW_GUI_ICON_PATH/yabause.png":"BTN" '@bash -c "button_click PW_YABAUSE"' &
"${pw_yad}" --plug=$KEY --tabnum=2 --form --columns=3 --scroll --height=500 \ "${pw_yad}" --plug=$KEY --tabnum=2 --form --columns=3 --scroll --height=500 \
--field=" Wargaming Game Center"!"$PW_GUI_ICON_PATH/wgc.png":"BTN" '@bash -c "button_click PW_WGC"' \ --field=" Wargaming Game Center"!"$PW_GUI_ICON_PATH/wgc.png":"BTN" '@bash -c "button_click PW_WGC"' \
......
...@@ -35,7 +35,7 @@ export WINE_WIN_START="start.exe /i /unix" ...@@ -35,7 +35,7 @@ export WINE_WIN_START="start.exe /i /unix"
export PW_WINE_USE=PROTON_STEAM export PW_WINE_USE=PROTON_STEAM
export PW_PLUGINS_VER="_v1" export PW_PLUGINS_VER="_v1"
###WINE_PROTON_STEAM### ###WINE_PROTON_STEAM###
export PW_STEAM_VER="6.3-8" export PW_STEAM_VER="6.3-8C_PW1"
export PW_PROTON_STEAM_VER="PROTON_STEAM_${PW_STEAM_VER}" export PW_PROTON_STEAM_VER="PROTON_STEAM_${PW_STEAM_VER}"
###WINE_PROTON_GE### ###WINE_PROTON_GE###
export PW_GE_VER="6.19-5" export PW_GE_VER="6.19-5"
......
...@@ -121,7 +121,10 @@ esac ...@@ -121,7 +121,10 @@ esac
export PORT_WINE_TMP_PATH="${PORT_WINE_PATH}/data/tmp" export PORT_WINE_TMP_PATH="${PORT_WINE_PATH}/data/tmp"
cd "${PORT_WINE_PATH}" cd "${PORT_WINE_PATH}"
try_download_scripts () { try_download_scripts () {
wget -c -t 5 -T 20 "https://github.com/Castro-Fidel/PortWINE/archive/refs/heads/master.tar.gz" --output-document="${PORT_WINE_TMP_PATH}/PortWINE-master.tar.gz" wget -O "${PORT_WINE_TMP_PATH}/PortWINE-master.tar.gz" -nd -c --read-timeout 300 \
--retry-connrefused --timeout 15 --tries 3 \
--user-agent="Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)" \
"https://github.com/Castro-Fidel/PortWINE/archive/refs/heads/master.tar.gz"
if [ "$?" = "0" ] ; then if [ "$?" = "0" ] ; then
tar -xvzf "${PORT_WINE_TMP_PATH}/PortWINE-master.tar.gz" -C "${PORT_WINE_TMP_PATH}" tar -xvzf "${PORT_WINE_TMP_PATH}/PortWINE-master.tar.gz" -C "${PORT_WINE_TMP_PATH}"
if [ "$?" = "0" ] ; then if [ "$?" = "0" ] ; then
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment