Puppy Linux Discussion Forum Forum Index Puppy Linux Discussion Forum
Puppy HOME page : puppylinux.com
"THE" alternative forum : puppylinux.info
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

The time now is Sun 23 Sep 2018, 16:09
All times are UTC - 4
 Forum index » Advanced Topics » Additional Software (PETs, n' stuff) » Unsorted
SFS-Combiner - merge some squashfs addons
Moderators: deshlab, Flash, GuestToo, Ian, JohnMurga, Lobster
Post new topic   Reply to topic View previous topic :: View next topic
Page 6 of 7 [97 Posts]   Goto page: Previous 1, 2, 3, 4, 5, 6, 7 Next
Author Message
CatDude


Joined: 03 Jan 2007
Posts: 1570
Location: UK

PostPosted: Thu 07 Aug 2014, 13:35    Post subject:  

Hello phredo

phredo wrote:
..Alternatively, are there other ways to get beyond the 6 sfs loading limit?


I'm running Slacko-5.7 and i currently have 20 .sfs files loaded up
    devx_slacko_5.7.sfs
    kernel_sources-3.4.82-slacko_4g_f2fs.sfs
    filezilla-3.7.4.1_5.6.5.6.sfs
    virtualbox-4.3.8-x86_5.6.5.6.sfs
    scribus-1.4.1-i686-s.sfs
    LibreOffice_4.2.1.1_Linux_x86.sfs
    jre-1.7.0_25.sfs
    evince-2.32.0-i486-3sl.sfs
    openshot-1.4.2.sfs
    wxGTK-2.8.12.1.sfs
    qt-everywhere-opensource-src-4.8.2-i686-s14.sfs
    Gimp-gap-py-wine-2.6.10_s57.sfs
    vlc-2.1.0-i686-s14.sfs
    copy_agent-1.42.0277.sfs
    imagemagick-6.7.7_10-i486-1.sfs
    povray-3.7.0.RC7-i486-1_SBo.sfs
    cherrytree-0.33.4.sfs
    inkscape-0.48.3.1-i486-s.sfs
    tor-browser-3.6.3-x86.sfs
    skype-4.3.0.37-s57.sfs

i use SFS-Load on-the-fly and let it create new mount points as necessary,
even though it say's "(not recommended)", but i am rather reckless. Laughing

CatDude
.

_________________

Back to top
View user's profile Send private message 
phredo

Joined: 21 Oct 2013
Posts: 41

PostPosted: Fri 08 Aug 2014, 14:17    Post subject:  

Thanks, CatDude, Thats really good to learn. My savefile seems to grow more than it should and making more use of SFS-Load-On-The-Fly rather than installing PETs should help.

One of the things I love about Puppy is the quick and valuable help I can often find on this forum. Very Happy
Back to top
View user's profile Send private message 
musher0

Joined: 04 Jan 2009
Posts: 12695
Location: Gatineau (Qc), Canada

PostPosted: Fri 06 Apr 2018, 17:38    Post subject:  

Hello all.

As some of you may have noticed, MU's wonderful and quite practical
SFS-Combiner does not work anymore on recent Pups because (as I
understand it with my limited knowledge of BASIC) its BASIC foundation
has become obsolete.

It would be nice if a local BASIC expert would diagnose what's wrong with
it and suggest a cure.

In the meantime, please find attached a Bash script that does most of
the same.

It uses mount points at /mnt/zip instead of unsquashfs to preserve space

This script has:
-- its own progress bar,

-- its own icon,

-- a wrapper (so it will behave like a "quasi-GUI"),

-- a *.desktop file (so will appear in your menu, under Archiving),

-- some pretty ANSI colors,

-- a frame.

It is bilingual English-French. The messages appear automatically in the
language defined in the system $LANG variable -- or in English. It would
be great if additional translations could be contributed.

I did a fair amount of testing, and it works fine at this end. A couple of
confirmations that it works on your Pup would be nice.

Any questions about this script, please ask, I'll do my best to answer.

Of course constructive suggestions for improvements are welcome.

Enjoy.
SFS-combiner-1st.jpg
 Description   Top
 Filesize   62.42 KB
 Viewed   296 Time(s)

SFS-combiner-1st.jpg

SFS-combiner-2nd.jpg
 Description   Bottom
 Filesize   194.3 KB
 Viewed   296 Time(s)

SFS-combiner-2nd.jpg

Combineur-SFS-0.1.pet
Description 
pet

 Download 
Filename  Combineur-SFS-0.1.pet 
Filesize  6.32 KB 
Downloaded  105 Time(s) 

_________________
musher0
~~~~~~~~~~
Siempre será canción nueva... (V. Jara, Manifiesto)
Back to top
View user's profile Send private message 
davids45


Joined: 26 Nov 2006
Posts: 1151
Location: Chatswood, NSW

PostPosted: Fri 06 Apr 2018, 20:00    Post subject: Include Muppy-Filer?
Subject description: Comes with two basic files, one needed by the Combiner
 

G'day musher0,

With my present playing around making adrv-sfs for Pups here (I wonder who gave me that idea? Wink ), I have been using both MU's Muppy-filer and SFS-Combiner with no problems in the latest Xenial-Artful-Bionic builds.

SFS-Combiner needs one of the two extra files for the Muppy-Filer pet (the GtkBasic003e pet) so I've combined SFS-Combiner and Muppy-Filer into the one pet with, so far, no problems.

But given enough time and tinkering, I'm sure I can muck them up Rolling Eyes .

So I'd better look at your script for future salvation.

David S.
Back to top
View user's profile Send private message 
musher0

Joined: 04 Jan 2009
Posts: 12695
Location: Gatineau (Qc), Canada

PostPosted: Fri 06 Apr 2018, 20:26    Post subject:  

Hi davids45.

Eh? What? Extra file? Where? You produced something?

To tell you the truth I did not want to write this script, but I felt I had to.
Really. The original kept failing on me on xenial-7.0.6. and I could not
make sense of the long list of error messages I got when I tried to run it.

MU's was a very useful utility, and I thought it needed a replacement
ASAP. Puppy is all about sfs's, isn't? We Puppyists do not have something
like this, we Puppyists start sweating!

So if you are the silent strong man or the incognito genius, please share
your package, I for one will be most grateful.

BFN.

_________________
musher0
~~~~~~~~~~
Siempre será canción nueva... (V. Jara, Manifiesto)
Back to top
View user's profile Send private message 
nilsonmorales


Joined: 15 Apr 2011
Posts: 940
Location: El Salvador

PostPosted: Sat 07 Apr 2018, 12:19    Post subject:  

Hi musher0, spanish here

Code:
#!/bin/bash
# Va à /opt/local/bin/sfs-combine.sh ou encore à /root/my-applications/bin/sfs-combine.sh.
#
# Usage : Mettez les sfs que vous voulez combiner dans /mnt/home,
# --------- ouvrez une console et tapez < sfs-combine.sh > (sans les chevrons).
#
####
# © Christian L'Écuyer, Gatineau (Qc), Canada, 2018-04-05. GPL3.
# (Alias musher0 [forum Puppy].) # Rev. : 2018-04-06.
##########  Please see: https://opensource.org/licenses/GPL-3.0.
#    Ce programme est libre : vous pouvez le redistribuer ou modifier selon les termes de la
#   Licence Publique Générale GNU publiée par la Free Software Foundation (v. 3 ou toute
#   version ultérieure choisie par vous).
#         Ce programme est distribué dans l'espoir qu'il sera utile, mais SANS AUCUNE
#   GARANTIE, ni explicite ni implicite, y compris des garanties de commercialisation ou
#   d'adaptation à un but spécifique. Pour obtenir plus     de détails, veuillez vous reporter au
#   texte de cette licence à https://opensource.org/licenses/GPL-3.0 pour le texte officiel, à
#    http://www.linux-france.org/article/these/gpl.html pour une traduction et à
#    https://fr.wikipedia.org/wiki/Licence_publique_générale_GNU pour une explication en français.
################ set -xe
# LANGvx="$LANG";LANG=en_CA # for tests
nettoie () {
ls -1 --file-type /mnt/zip > /mnt/home/mnt-zip.lst
while read line;do umount /mnt/zip/$line;done < /mnt/home/mnt-zip.lst
rm -fr /mnt/zip/*
rmdir --ignore-fail-on-non-empty /mnt/zip/* 2>/dev/null
[ -d /mnt/home/tentative ] || mkdir -p /mnt/home/tentative
rm -fr /mnt/home/tentative/*
rmdir --ignore-fail-on-non-empty /mnt/home/tentative/* 2>/dev/null; }
cd /mnt/home

nettoie
clear
combien=""
case "${LANG:0:2}" in
     fr)echo -e "\t\e[33m\e[4m\e[1mCOMBINEUR D'ARCHIVES SFS, par musher0, 2018-04-05.\e[0m
\n\e[33mCombien de sfs voulez-vous combiner ?\e[0m"
     read combien
     echo -e "\n\e[33mEn voici la liste :\e[0m"
     ;;
     en|*)echo -e "\t\e[33m\e[4m\e[1mSFS ARCHIVES COMBINER, by musher0, 2018-04-05.\e[0m
\n\e[33mHow many sfs's do you wish to combine?\e[0m"
     read combien
     echo -e "\n\e[33mHere is the list:\e[0m"
     ;;
     es|*)echo -e "\t\e[33m\e[4m\e[1mCOMBINADOR DE ARCHIVOS SFS, por musher0,2018-04-05.\e[0m
\n\e[33mCuantos sfs's desea combinar?\e[0m"
     read combien
     echo -e "\n\e[33mAquí está el listado:\e[0m"
     ;;   
esac
ls -1 *.sfs | grep -v tentative | nl > fichiers;more fichiers

> liste.sfs
incorpor="";i="";i=1
echo;while [ "$i" -le "$combien" ]; do
case "${LANG:0:2}" in
     fr)echo -e "\e[33mS.v.p. taper le numéro d'un sfs à incorporer à partir de la liste ci-dessus :\e[0m"
     ;;
     en|*)echo -e "\e[33mPlease type the number of an sfs to incorporate from the list above:\e[0m"
     ;;
     es|*)echo -e "\e[33mPor favor, escriba el número de un sfs para incorporarlo de la lista anterior:\e[0m"
     ;;     
esac
     read incorpor
     awk '$1=='"$incorpor"' { print $2 }' fichiers >> liste.sfs
     i=$(($i + 1))
done

confirme="" # Vérif.
case "${LANG:0:2}" in
     fr)echo -e "\n\e[33mLes sfs suivants seront combinés. Est-ce bien ce que vous souhaitez ?
(Taper 'o' ou 'O' pour 'oui'; toute autre touche excepté 'y|Y' quitte.)\e[0m"
     ;;
     en|*)echo -e "\n\e[33mThe following sfs's will be combined. Is that your wish?
(Type 'y' or 'Y' for 'yes'; any other key except 'o|O' exits.)\e[0m"
     ;;
     es|*)echo -e "\n\e[33mLos siguientes sfs se combinarán. ¿Es ese tu deseo?
(Escriba 'y' o 'Y' para 'sí'; cualquier otra tecla excepto 'o | O' para salir.\e[0m"
     ;;     
esac
more liste.sfs;read confirme

case "${confirme}" in y|Y|o|O) # Action
     case "${LANG:0:2}" in
          fr)echo -e "\n\e[33mTrès bien. Merci de patienter pendant que la combinaison se fait.\e[0m"
          ;;
          en|*)echo -e "\n\e[33mExcellent. Thanks for waiting while the chosen archives are combined.\e[0m"
          ;;
          es|*)echo -e "\n\e[33mExcelente. Gracias por esperar mientras se combinan los archivos elegidos.\e[0m"
          ;;
     esac
     while read line;do
          mkdir /mnt/zip/"${line:0:6}"
          mount $line /mnt/zip/"${line:0:6}"
     done < liste.sfs

     > /mnt/home/liste.rep
     cd /mnt/zip
     ls -1 >> /mnt/home/liste.rep
     while read line;do rsync -az /mnt/zip/$line/* /mnt/home/tentative
     wait
     done < /mnt/home/liste.rep

     cd /mnt/home
     mksquashfs tentative/ tentative.sfs -no-progress -all-root -noappend -b 1048576 -comp xz -Xdict-size 100% > mksquashfs.rpt &
     # Pour voir les détails de l'opération, s.v.p. ouvrir le fichier texte mksquashfs.rpt dans votre éditeur ou lisez-le avec more.
     # To see the details of the operation, please open the mksquashfs.rpt text file in your editor or read it with more.
     while pgrep mksquashfs &> /dev/null;do
     echo -en "\e[34m¤";sleep 0.5
     # Source de cette barre : réponse no 0 par « purushothaman poovai » à https://
# stackoverflow.com/questions/238073/how-to-add-a-progress-bar-to-a-shell-script#238094
done ;;

     *)exit ;;
esac
nettoie
rm -f /mnt/home/mnt-zip.lst;rm -f /mnt/home/fichiers
rm -f /mnt/home/liste.sfs;rm -f /mnt/home/liste.rep
case "${LANG:0:2}" in
     fr)echo -e "\n\e[0m
\e[33m\e[4mLa combinaison est terminée. Il ne vous reste qu'à
renommer l'archive sfs résultante « tentative.sfs »
et à la monter avec l'utilitaire « sfs_load ». N'oubliez
pas de démonter les sfs d'origine s'il y a lieu. \e[24m
\e[1m-- Je vous souhaite une excellente journée !\e[0m\n"
     ;;
     en|*)echo -e "\n\e[0m
\e[33m\e[4m
The combining operation is now done. What is left for you to
do is rename the resulting sfs archive 'tentative.sfs' and
mount it with the 'sfs_load' utility. Do not forget to unmount
the originating sfs's.\e[24m \e[1m-- Have a great day!\e[0m\n"
     ;;
     es|*)echo -e "\n\e[0m
\e[33m\e[4m
La operación de combinación ahora está hecha. Lo que queda por hacer
es renombrar el archivo sfs resultante 'tentativo.sfs' y
móntelo con la utilidad 'sfs_load'. No te olvides de desmontar
los sfs de origen.\e[24m \e[1m-- Que tenga un buen dia!\e[0m\n"
     ;;     
esac
# set +xe
# LANG="$LANGvx" # for tests
read

when try to open in terminal the wrapper say urxvt: Loading image icon failed, continuing without. Icon is in the right place, then a blue terminal open and close.
Cheers.

_________________
My blog | | Github


Back to top
View user's profile Send private message 
musher0

Joined: 04 Jan 2009
Posts: 12695
Location: Gatineau (Qc), Canada

PostPosted: Sat 07 Apr 2018, 13:43    Post subject:  

Many thanks, nilsonmorales.

Translation has to go in like this:
Code:
 case "${LANG:0:2}" in
      fr)echo -e "\n\e[0m
 \e[33m\e[4mLa combinaison est terminée. Il ne vous reste qu'à
 renommer l'archive sfs résultante « tentative.sfs »
 et à la monter avec l'utilitaire « sfs_load ». N'oubliez
 pas de démonter les sfs d'origine s'il y a lieu. \e[24m
 \e[1m-- Je vous souhaite une excellente journée !\e[0m\n"
      ;;
      es)echo -e "\n\e[0m
 \e[33m\e[4mLa operación de combinación ahora está hecha. Lo que queda
 por hacer  es renombrar el archivo sfs resultante 'tentativo.sfs'
 y móntelo con la utilidad 'sfs_load'. No te olvides de desmontar
 los sfs de origen.\e[24m \e[1m-- Que tenga un buen dia!\e[0m\n"
      ;;   
      en|*)echo -e "\n\e[0m
 \e[33m\e[4m
 The combining operation is now done. What is left for you to
 do is rename the resulting sfs archive 'tentative.sfs' and
 mount it with the 'sfs_load' utility. Do not forget to unmount
 the originating sfs's.\e[24m \e[1m-- Have a great day!\e[0m\n"
      ;;
 esac

But your translation is much appreciated. I can juggle the paragraphs
at the proper place.

Because we keep the English as last resort. The " * " in the formula
means if everything else fails, we try English. This is a peculiarity of
the case...esac structure. We can make the last item the catch-all.


As to the urxvt problem, what version of urxvt? If old urxvt I will have
to remove the ICON line in the wrapper. Edit: don't bother! My error,
icon was wrong. Thanks for spotting it. Corrected.


I have posted the now multilingual version of this utility here.

Again, thanks, nilsonmorales!

BFN.

_________________
musher0
~~~~~~~~~~
Siempre será canción nueva... (V. Jara, Manifiesto)
Back to top
View user's profile Send private message 
davids45


Joined: 26 Nov 2006
Posts: 1151
Location: Chatswood, NSW

PostPosted: Sat 07 Apr 2018, 18:45    Post subject: Combined Muppy-Filer & SFS-Combiner
Subject description: Pets by MU from many years ago but still good
 

G'day musher0,

I've attached the pet I made merging Muppy-Filer and SFS-Combiner.

Both need MU's GtkBasic003e pet and Muppy-Filer also needs his PuppyBasic pet.

I can attach the PuppyBasic pet (below) but not the GTKBasic pet which I believe is too large at just over 500kB.

These/this run(s) for me in recent Pups such as Xenial and Bionic.

I'm curious to know if they work for you, given the often imperfect tinkering to Pups I've done on my computer, and continue to do Smile .

Still, it "keeps me off the streets".

David S.
MuppyFilerSFSCombiner.pet
Description  Merged pets of MU's Muppy-Filer & SFS-Combiner pets
pet

 Download 
Filename  MuppyFilerSFSCombiner.pet 
Filesize  33.12 KB 
Downloaded  86 Time(s) 
PuppyBasic-2.6.pet
Description  Needed by Muppy-Filer only
pet

 Download 
Filename  PuppyBasic-2.6.pet 
Filesize  61.16 KB 
Downloaded  91 Time(s) 
Back to top
View user's profile Send private message 
musher0

Joined: 04 Jan 2009
Posts: 12695
Location: Gatineau (Qc), Canada

PostPosted: Sat 07 Apr 2018, 20:53    Post subject:  

Godd evening, all.

I have made available a revised multilingual version for ALL Puppies
starting from version 5.7.0 (AFAIK !) here.

Edits, in short:
-- nl utility replaced with a while...done loop that numbers the sfs list;

-- in the wrapper,
---- selected the correct icon (nilsonmorales was right);
---- enabled it to fall back on urxvt-9.05 if urxvt-9.2? is not present;
---- reduced the transparency;
---- reduced the width of the window.

Please report below any undiagnosed bug with this updated version. TIA.

~~~~~~~~~~~

@davids45:

Thanks for your files. If you have a download URL for the Basic-003 that
is required for MU's utilities, could you please provide it? I could perhaps
split it in 2 or 3 parts so they would fit as attachments in this thread. TIA.

BFN.

_________________
musher0
~~~~~~~~~~
Siempre será canción nueva... (V. Jara, Manifiesto)
Back to top
View user's profile Send private message 
musher0

Joined: 04 Jan 2009
Posts: 12695
Location: Gatineau (Qc), Canada

PostPosted: Sat 07 Apr 2018, 23:03    Post subject:  

Hello davids45 and all.

With what David attached above, I was able to reconstruct Mark's original
SFS-Combiner with its PuppyBasic and GTKBasic003 dependencies.

Upon testing, I discovered that the substantial set of GTKBasic demo files
which MU had originally included was not needed . So I removed these
demos, along with the MuppyFiler that was in David's input (to focus on
the SFS Combiner only). I retested, and it went fine. I ended up with a
file that I can actually attach to a forum post! Unbelievable! Smile

I must say I am quite glad I could do this -- with David's precious help, of
course, and with ally's copy of the GTKBasic003 at archive.org.

This is an important Puppy utility -- everything in Puppy is closely or
distantly related to sfs's. IMO, we must not let this work by MU fall into
disrepair, or worse, oblivion.

So... please find attached a streamlined reconstruction. It seems to work
well on my xenialPup-706 machine. Feedback appreciated.

Enjoy!

~~~~~~~~~~~~~~
Note -- The "0.1" number in the file name of the pet does not mean
anything. It's there because the dir2pet utility needs a number, any
number, at the end of the directory name, otherwise it goes on strike!

The "r", however, stands for "reconstructed", to distinguish this pet from
MU's original, if you are lucky enough to have it in your software
collection.

Finally -- this may be important for some -- I used gzip to create this pet
archive, so it can be installed in most Puppies, whatever their age.
SFS-Combiner_MU-0.1r.pet
Description  Reconstructed and streamlined, as explained above, with all needed dependencies.
pet

 Download 
Filename  SFS-Combiner_MU-0.1r.pet 
Filesize  244.81 KB 
Downloaded  105 Time(s) 

_________________
musher0
~~~~~~~~~~
Siempre será canción nueva... (V. Jara, Manifiesto)

Last edited by musher0 on Sun 08 Apr 2018, 03:10; edited 2 times in total
Back to top
View user's profile Send private message 
nilsonmorales


Joined: 15 Apr 2011
Posts: 940
Location: El Salvador

PostPosted: Sun 08 Apr 2018, 00:51    Post subject:  

musher0, sorry, forget the .desktop
Quote:
[Desktop Entry]
Encoding=UTF-8
Version=1.0
Name=SFS Combiner
Name[fr]=Combineur de SFS
Name[es]=Combinador de SFS
Icon=/usr/share/icons/SFS-Combiner-bleu.png
Comment=SFS Combiner
Comment[fr]=Combineur de SFS
Comment[es]=Combinador de SFS
Exec=/opt/local/bin/wrap-sfs-combine.sh
Terminal=false
Type=Application
Categories=Archiving
GenericName=SFS Combiner
GenericName[fr]=Combineur de SFS
GenericName[es]=Combinador de SFS

_________________
My blog | | Github


Back to top
View user's profile Send private message 
sfs

Joined: 02 Nov 2013
Posts: 43
Location: Russia

PostPosted: Sun 08 Apr 2018, 02:51    Post subject:  

https://github.com/pfs-utils/pfs-utils-cli
_________________
PuppyRus-Arch
Back to top
View user's profile Send private message Visit poster's website 
musher0

Joined: 04 Jan 2009
Posts: 12695
Location: Gatineau (Qc), Canada

PostPosted: Sun 08 Apr 2018, 02:58    Post subject:  

nilsonmorales wrote:
musher0, sorry, forget the .desktop
Quote:
[Desktop Entry]
Encoding=UTF-8
Version=1.0
Name=SFS Combiner
Name[fr]=Combineur de SFS
Name[es]=Combinador de SFS
Icon=/usr/share/icons/SFS-Combiner-bleu.png
Comment=SFS Combiner
Comment[fr]=Combineur de SFS
Comment[es]=Combinador de SFS
Exec=/opt/local/bin/wrap-sfs-combine.sh
Terminal=false
Type=Application
Categories=Archiving
GenericName=SFS Combiner
GenericName[fr]=Combineur de SFS
GenericName[es]=Combinador de SFS
Thanks nilson. I will include it in the next version.
_________________
musher0
~~~~~~~~~~
Siempre será canción nueva... (V. Jara, Manifiesto)
Back to top
View user's profile Send private message 
musher0

Joined: 04 Jan 2009
Posts: 12695
Location: Gatineau (Qc), Canada

PostPosted: Sun 08 Apr 2018, 03:09    Post subject:  

sfs wrote:
https://github.com/pfs-utils/pfs-utils-cli
Thanks sfs.
According to the reverso online Russian to English translation, those are
"Pfs-utils. Utilities to work with squash modules. Version 2"
Correct ?

_________________
musher0
~~~~~~~~~~
Siempre será canción nueva... (V. Jara, Manifiesto)
Back to top
View user's profile Send private message 
sfs

Joined: 02 Nov 2013
Posts: 43
Location: Russia

PostPosted: Sun 08 Apr 2018, 03:35    Post subject:  

musher0 wrote:

"Pfs-utils. Utilities to work with squash modules. Version 2"
Correct ?

Yes. Version 3
merge , extract squash
Only english in scripts
Doc : http://wiki.puppyrus.org/puppyrus/pr218/pfs3 - only russian

_________________
PuppyRus-Arch
Back to top
View user's profile Send private message Visit poster's website 
Display posts from previous:   Sort by:   
Page 6 of 7 [97 Posts]   Goto page: Previous 1, 2, 3, 4, 5, 6, 7 Next
Post new topic   Reply to topic View previous topic :: View next topic
 Forum index » Advanced Topics » Additional Software (PETs, n' stuff) » Unsorted
Jump to:  

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group
[ Time: 0.0904s ][ Queries: 14 (0.0167s) ][ GZIP on ]